[0001] La présente invention concerne de manière générale un circuit processeur. Ce circuit processeur comprend une unité de calcul, un premier élément mémoire pour le stockage des données et un second élément mémoire pour le stockage des instructions. Lesdits premier et second éléments mémoires sont reliés par au moins un bus de communication à l'unité de calcul.
Arrière plan technologique
[0002] Les circuits processeurs de type Harvard sont connus dans l'art antérieur et sont représentés à la fig. 1. Cette architecture Harvard permet ainsi une rapidité accrue du circuit processeur du fait que l'accès aux instructions et aux données peut être effectué au même moment. Les circuits processeurs 1 possédant une telle architecture se présentent sous la forme d'une unité de calcul 2 communiquant avec deux unités mémoires distinctes 3, 4. L'une des unités mémoires 4 sert au stockage des instructions alors que l'autre unité mémoire 3 sert au stockage des données. Chaque unité mémoire 3, 4 communique avec l'unité de calcul 2 via un bus de communication 5, 6 respectif. Cette architecture se caractérise alors par une séparation des données mémorisées et des instructions mémorisées.
[0003] Néanmoins, ce type d'architecture possède certains inconvénients. En effet, cette architecture impose deux unités mémoires physiquement distinctes augmentant ainsi la surface dédiée auxdites unités mémoires et donc la surface du circuit processeur intégré.
[0004] D'autre part, ce type d'architecture à deux unités mémoires séparées n'est pas flexible d'utilisation. Effectivement, même s'il est possible d'adapter la taille des deux unités mémoires selon l'utilisation qui en sera faite, cette adaptation nécessite une modification physique de la taille des deux unités mémoires. Cette modification entraîne des coûts supplémentaires dus à la nécessité d'effectuer un travail de conception au niveau du composant en lui même.
[0005] Il est également connu de l'art antérieur le document de brevet US 2002/0 184 465 qui décrit un circuit processeur utilisant une architecture similaire à une architecture Harvard. Ce circuit processeur est conçu de sorte à posséder les avantages de vitesse de traitement de l'architecture Harvard. En effet, le circuit processeur décrit par le document de brevet US 2002/0 184 465 comprend une architecture où la zone mémoire contenant les instructions est également capable de stocker des données. Cette architecture possède néanmoins deux unités mémoires distinctes, une pour les instructions et une pour les données. Cette possibilité de stocker des données dans l'unité mémoire qui contient les instructions permet une certaine flexibilité d'utilisation.
Cette distinction a pour conséquences une surface importante ce qui ne permet pas de résoudre le problème de surface de l'architecture Harvard.
[0006] De plus, un autre inconvénient de ce circuit processeur est que celui-ci possède une flexibilité d'utilisation résultante d'une modification d'une architecture Harvard classique. Effectivement, le circuit processeur décrit une architecture Harvard classique qui possède bien deux unités mémoires distinctes et communiquant chacune avec l'unité de calcul via un bus de communication. Par contre, cette modification est réalisée de sorte que le bus de données est relié à la fois à la mémoire de données et à la mémoire programme. Ainsi, la flexibilité d'utilisation apportée par ce circuit processeur nécessite de modifier le circuit processeur dans sa profondeur et donc entraîne des coûts de fabrication non négligeables.
Résumé de l'invention
[0007] L'un des buts principaux de la présente invention est de pallier aux inconvénients susmentionnés de l'art antérieur à savoir réaliser un circuit processeur d'architecture Harvard qui est à la fois flexible dans son utilisation et de surface moindre, sans que ladite architecture ne soit modifiée.
[0008] A cet effet, l'invention concerne le circuit processeur exclusivement d'architecture Harvard citée ci-devant, caractérisé en ce que les premier et deuxième éléments mémoires forment une seule unité mémoire pour réaliser une mémoire du type mémoire partagée.
[0009] Des modes de réalisation avantageux du circuit processeur font l'objet des revendications dépendantes 2 à 5.
[0010] Un avantage du circuit processeur selon l'invention est que ce circuit processeur possède une surface moindre que celle d'une architecture Harvard selon l'art antérieur. En effet, l'utilisation d'une mémoire partagée permet au circuit processeur selon la présente invention de n'avoir qu'une seule unité mémoire physique pour contenir à la fois les données et les instructions, permettant ainsi de gagner en surface. Ainsi pour un volume de stockage équivalent, une mémoire partagée a une surface plus faible que deux unités mémoires distinctes. Cette différence de surface vient du fait, que pour le cas de deux unités mémoires distinctes, tout est doublé tel que les organes de contrôle et de commande alors que pour une mémoire partagée, c'est-à-dire une seule unité mémoire, tous les éléments ne sont présents qu'en un seul exemplaire.
[0011] Un second avantage est la flexibilité d'utilisation de la mémoire partagée. En effet, le fait d'avoir une seule unité mémoire permet plus de flexibilité dans l'allocation du volume mémoire. Cette flexibilité est une conséquence du regroupement des données et des instructions dans la même unité physique. Une séparation virtuelle peut être facilement réalisée et s'adapter pour allouer plus ou moins de volume mémoire aux données ou aux instructions.
Brève description des figures
[0012] Les buts, avantages et caractéristiques du circuit processeur apparaîtront plus clairement dans la description détaillée suivante d'au moins une forme de réalisation de l'invention donnée uniquement à titre d'exemple non limitatif et illustrée par les dessins annexés sur lesquels:
<tb>la fig. 1 <sep>représente de manière schématique le circuit processeur selon l'art antérieur;
<tb>la fig. 2 <sep>représente de manière schématique le circuit processeur selon la présente invention; et
<tb>la fig. 3 <sep>représente de manière schématique un mode de réalisation préférentiel du circuit processeur selon la présente invention.
Description détaillée de l'invention
[0013] Dans la description suivante, toutes les parties du circuit processeur qui sont bien connues d'un homme du métier dans ce domaine technique ne seront expliquées que de manière simplifiée.
[0014] La fig. 2 représente de manière schématique un circuit processeur 1 possédant une architecture Harvard selon la présente invention. Ce circuit processeur 1 comprend ainsi une unité de calcul 2 et deux éléments mémoires 3, 4 contenant pour l'une 3, les données et pour l'autre 4, les instructions. L'unité de calcul 2 aussi appelée unité arithmétique et logique est utilisée pour effectuer les opérations de base, cette unité 2 étant le coeur dudit circuit processeur. Cette unité de calcul 2 communique avec les éléments mémoires 3, 4 via des bus respectifs de communication 5, 6. Ces bus de communication 5, 6 relient respectivement ladite unité de calcul 2 à l'élément mémoire 3 contenant les données et ladite unité de calcul 2 à l'élément mémoire 4 contenant les instructions et sont appelés respectivement bus de données 5 et bus de programme 6.
[0015] Afin de gagner en flexibilité d'utilisation et de diminuer la surface du circuit processeur, la présente invention se propose de réunir les deux éléments mémoires 3, 4 en un seul bloc physique afin de constituer une seule unité mémoire 7 formant ainsi une mémoire partagée. Cette mémoire est dite partagée car elle contient à la fois les données et les instructions. Préférentiellement, les données et instructions sont regroupées entre elles, formant ainsi deux zones distinctes. Cet agencement permet avantageusement de gagner du temps et de permettre une facilité de programmation, car les données et les instructions ne sont pas mélangées.
[0016] Par ailleurs, cette séparation permet en outre à ladite invention d'être plus flexible dans son utilisation. Comme les données et les instructions sont regroupées entre elles, l'espace, qui leur est dévolu, peut être optimisé en fonction des applications. En effet, on peut considérer que les zones contenant les données et les instructions sont séparées par une limite virtuelle facilement adaptable. Ainsi, si une application du circuit processeur 1 nécessite peu d'instructions mais énormément d'espace pour sauvegarder les données alors cette limite virtuelle est déplacée pour permettre le stockage d'un plus grand nombre de données. Par contre, si l'application du circuit processeur 1 nécessite un grand nombre d'instructions mais peu de données alors la limite virtuelle est déplacée pour accorder aux instructions un espace plus important.
Cette flexibilité d'utilisation est d'autant plus appréciable qu'il est plus aisé de déplacer une limite virtuelle purement logicielle que d'optimiser physiquement la taille des mémoires 3, 4 comme c'est le cas des mémoires non partagées.
[0017] Sur la fig. 3 est représenté un mode de réalisation particulier. Ce mode de réalisation se particularise par des moyens de gestion 8 pour gérer les communications entre la mémoire partagée 7 et l'unité de calcul 2. Ces moyens de gestion 8 se présentent sous la forme d'une interface mémoire 8 située entre la mémoire partagée 7 et l'unité de calcul 2. Cette interface est d'une part reliée à la mémoire partagée 7 par un bus de communication 9 appelé bus mémoire et d'autre part reliée à l'unité de calcul 2 via le bus programme 6 et le bus de données 5.
[0018] Le fonctionnement de cette interface 8 consiste à recevoir les ordres de lecture de l'unité de calcul 2 pour lire des adresses mémoires données. Puis, l'interface 8 interprète ces ordres et va chercher les données ou instructions aux adresses mémoires correspondantes. Une fois ces adresses ciblées, l'interface 8 lit les données ou instructions qui y sont contenues et envoie le résultat vers l'unité de calcul 2 pour que cette dernière puisse le traiter.
[0019] Or un des problèmes qui pourrait se produire est que l'unité de calcul 2 exécute la prochaine instruction alors que l'interface 8 est en train de lire une adresse précédemment demandée par ladite unité de calcul 2. En effet, ce problème pourrait survenir du fait du nombre de temps de cycles nécessaire, pour la lecture, qui serait trop important.
[0020] Pour cela, l'invention se propose de résoudre ce problème en permettant à l'interface 8 de bloquer l'unité de calcul 2. Pour cela, l'interface 8 comprend un moyen de blocage permettant de résoudre le problème susmentionné. Ce moyen de blocage consiste en un signal de blocage S_block reliant ladite interface 8 et l'unité de calcul 2. Dans un mode de réalisation préférentiel, cette connexion se fait au niveau de l'unité de calcul 2 via l'entrée d'horloge 21, aussi appelée CLK.
[0021] Lors du fonctionnement du circuit processeur 1, tant que l'unité de calcul 2 demande à lire des instructions, le circuit processeur 1 agit comme expliqué auparavant. Ainsi, un ordre de lecture est envoyé à l'interface mémoire 8 qui l'interprète puis lit l'instruction correspondante. Une fois cette instruction lue, celle-ci est envoyée à l'unité de calcul 2 qui l'exécute.
[0022] Par contre, lorsque l'unité de calcul 2 donne l'ordre de lire une donnée, l'interface mémoire 8 va détecter que l'ordre vient du bus de données 5. Cette détection va alors enclencher le blocage de l'unité de calcul 2 par ladite interface 8 via le signal de blocage S_block. Ce blocage est réalisé en forçant l'entrée d'horloge CLK à un niveau logique. Préférentiellement, l'entrée CLK sera forcée à zéro. Pour cela, une porte logique ET est placée à l'entrée CLK et en entrée de cette porte sont connectés les signaux d'horloge et S_block. Le signal S_block est alors mis à un niveau logique zéro entraînant la mise à zéro de la sortie de ladite porte ET. Ce blocage entraîne alors une impossibilité pour ladite unité 2 d'exécuter des instructions.
Cette impossibilité est due au fait que le signal d'horloge n'est plus transmis vers l'unité de calcul 2 empêchant ainsi l'exécution d'instructions. Ainsi, il n'existe pas de risque que l'unité de calcul 2 exécute une instruction pendant qu'une donnée est entrain d'être lue.
[0023] Bien entendu, le blocage de l'unité de calcul 2 par action sur son entrée d'horloge n'est pas la seule manière de réaliser ce blocage. En effet, des entrées spécifiques ou existantes, telles qu'une entrée "enable" qui rend apte le composant à fonctionner et généralement présente, sont utilisables.
[0024] D'autre part, on peut signaler que ce blocage de l'unité de calcul 2 permet également une diminution de la consommation en énergie électrique. En effet, si le blocage permet de ne pas exécuter d'instruction en même temps que la lecture d'une donnée, ce blocage permet d'arrêter le fonctionnement de l'unité 2. Ainsi dans le cas où il n'y a pas d'instructions à exécuter, ce blocage de l'unité de calcul 2 permet de ne pas faire fonctionner ladite unité 2 dans le vide.
[0025] On comprendra que la ou les mémoires utilisées peuvent être une mémoire non volatile appelée aussi mémoire ROM (Read Only Memory), telle qu'une mémoire EEPROM (Electrically Erasable Programmable Read Only Memory) ou une mémoire volatile telle qu'une mémoire flash, RAM (Random Access Memory) ou autres.
[0026] On comprendra que diverses modifications et/ou améliorations et/ou combinaisons évidentes pour l'homme du métier peuvent être apportées aux différents modes de réalisation de l'invention exposés ci-dessus sans sortir du cadre de l'invention défini par les revendications annexées.
The present invention generally relates to a processor circuit. The processor circuit includes a computing unit, a first memory element for storing data, and a second memory element for storing instructions. Said first and second memory elements are connected by at least one communication bus to the computing unit.
Technological background
Harvard-type processor circuits are known in the prior art and are shown in FIG. 1. This Harvard architecture thus allows for faster processor circuitry because access to instructions and data can be performed at the same time. The processor circuits 1 having such an architecture are in the form of a calculation unit 2 communicating with two separate memory units 3, 4. One of the memory units 4 is used for storing the instructions while the other memory unit 3 used for storing data. Each memory unit 3, 4 communicates with the calculation unit 2 via a respective communication bus 5, 6. This architecture is then characterized by a separation of the stored data and stored instructions.
However, this type of architecture has some disadvantages. Indeed, this architecture imposes two physically distinct memory units thus increasing the area dedicated to said memory units and thus the surface of the integrated processor circuit.
[0004] On the other hand, this type of architecture with two separate memory units is not flexible to use. Indeed, even if it is possible to adapt the size of the two memory units according to the use that will be made, this adaptation requires a physical modification of the size of the two memory units. This change entails additional costs due to the need to perform design work at the component level itself.
It is also known from the prior art US patent document 2002/0184 465 which discloses a processor circuit using architecture similar to a Harvard architecture. This processor circuit is designed to have the processing speed advantages of Harvard architecture. Indeed, the processor circuit described by US patent document 2002/0184 465 includes an architecture where the memory area containing the instructions is also capable of storing data. This architecture nevertheless has two separate memory units, one for instructions and one for data. This ability to store data in the memory unit that contains the instructions allows some flexibility of use.
This distinction results in a large area which does not solve the surface problem of Harvard architecture.
In addition, another disadvantage of this processor circuit is that it has a flexibility of use resulting from a modification of a conventional Harvard architecture. Indeed, the processor circuit describes a conventional Harvard architecture which has two separate memory units and each communicating with the computing unit via a communication bus. On the other hand, this modification is carried out so that the data bus is connected to both the data memory and the program memory. Thus, the flexibility of use provided by this processor circuit requires modifying the processor circuit in its depth and therefore leads to significant manufacturing costs.
Summary of the invention
One of the main aims of the present invention is to overcome the aforementioned drawbacks of the prior art namely to achieve a Harvard architecture processor circuit that is both flexible in its use and less surface, without that said architecture is modified.
For this purpose, the invention relates to the processor circuit exclusively Harvard architecture cited above, characterized in that the first and second memory elements form a single memory unit to achieve a memory of the shared memory type.
Advantageous embodiments of the processor circuit are the subject of dependent claims 2 to 5.
An advantage of the processor circuit according to the invention is that this processor circuit has a smaller area than that of a Harvard architecture according to the prior art. Indeed, the use of a shared memory allows the processor circuit according to the present invention to have only one physical memory unit to contain both data and instructions, thus allowing to gain surface. Thus for an equivalent storage volume, a shared memory has a smaller area than two separate memory units. This surface difference comes from the fact that for the case of two separate memory units, everything is doubled such as the control and control elements whereas for a shared memory, that is to say a single memory unit, all the elements are only present in one copy.
A second advantage is the flexibility of use of the shared memory. Indeed, having a single memory unit allows more flexibility in the allocation of the memory volume. This flexibility is a consequence of grouping data and instructions in the same physical unit. Virtual separation can be easily realized and adapted to allocate more or less memory volume to data or instructions.
Brief description of the figures
The purposes, advantages and characteristics of the processor circuit will appear more clearly in the following detailed description of at least one embodiment of the invention given solely by way of nonlimiting example and illustrated by the appended drawings in which:
<tb> fig. 1 <sep> schematically represents the processor circuit according to the prior art;
<tb> fig. 2 <sep> schematically represents the processor circuit according to the present invention; and
<tb> fig. 3 <sep> schematically represents a preferred embodiment of the processor circuit according to the present invention.
Detailed description of the invention
In the following description, all parts of the processor circuit which are well known to a person skilled in the art in this technical field will be explained in a simplified manner.
Fig. 2 schematically shows a processor circuit 1 having a Harvard architecture according to the present invention. This processor circuit 1 thus comprises a calculation unit 2 and two memory elements 3, 4 containing for one, the data and for the other 4, the instructions. The calculation unit 2 also called arithmetic and logic unit is used to perform the basic operations, this unit 2 being the core of said processor circuit. This calculation unit 2 communicates with the memory elements 3, 4 via respective communication buses 5, 6. These communication buses 5, 6 respectively connect said calculation unit 2 to the memory element 3 containing the data and said data unit. calculation 2 to the memory element 4 containing the instructions and are respectively called data bus 5 and program bus 6.
In order to increase the flexibility of use and reduce the surface of the processor circuit, the present invention proposes to combine the two memory elements 3, 4 in a single physical block to form a single memory unit 7 thus forming a shared memory. This memory is said to be shared because it contains both data and instructions. Preferably, the data and instructions are grouped together, thus forming two distinct zones. This arrangement advantageously saves time and allows ease of programming because the data and instructions are not mixed.
Moreover, this separation also allows said invention to be more flexible in its use. Since the data and instructions are grouped together, the space that is devolved to them can be optimized according to the applications. Indeed, it can be considered that the areas containing the data and the instructions are separated by a virtual limit easily adaptable. Thus, if an application of the processor circuit 1 requires few instructions but a lot of space to save the data then this virtual limit is moved to allow storage of a larger amount of data. On the other hand, if the application of the processor circuit 1 requires a large number of instructions but few data then the virtual limit is moved to give the instructions a larger space.
This flexibility of use is all the more appreciable that it is easier to move a purely software virtual limit than to physically optimize the size of the memories 3, 4 as is the case of unshared memories.
In FIG. 3 is shown a particular embodiment. This embodiment is characterized by management means 8 for managing the communications between the shared memory 7 and the calculation unit 2. These management means 8 are in the form of a memory interface 8 located between the shared memory 7 and the computation unit 2. This interface is, on the one hand, connected to the shared memory 7 by a communication bus 9 called the memory bus and, on the other hand, connected to the calculation unit 2 via the program bus 6 and the data bus 5.
The operation of this interface 8 is to receive the read commands of the calculation unit 2 to read data memory addresses. Then, the interface 8 interprets these orders and fetches the data or instructions to the corresponding memory addresses. Once these addresses are targeted, the interface 8 reads the data or instructions contained therein and sends the result to the calculation unit 2 so that the latter can process it.
But one of the problems that could occur is that the calculation unit 2 executes the next instruction while the interface 8 is reading an address previously requested by said calculation unit 2. Indeed, this problem could occur because of the number of cycle times necessary, for reading, which would be too important.
For this, the invention proposes to solve this problem by allowing the interface 8 to block the calculation unit 2. For this, the interface 8 comprises a blocking means for solving the aforementioned problem. This blocking means consists of an S_block blocking signal connecting said interface 8 and the calculation unit 2. In a preferred embodiment, this connection is made at the level of the calculation unit 2 via the clock input. 21, also called CLK.
During operation of the processor circuit 1, as the computing unit 2 requests to read instructions, the processor circuit 1 acts as explained before. Thus, a read command is sent to the memory interface 8 which interprets it and reads the corresponding instruction. Once this instruction read, it is sent to the calculation unit 2 which executes it.
By cons, when the calculation unit 2 gives the order to read a data, the memory interface 8 will detect that the order comes from the data bus 5. This detection will then engage the blocking of the calculation unit 2 by said interface 8 via the blocking signal S_block. This blocking is accomplished by forcing the clock input CLK to a logic level. Preferably, the CLK input will be forced to zero. For this, an AND logic gate is placed at the CLK input and at the input of this gate are connected the clock and S_block signals. The S_block signal is then set to a logic zero level causing the zero of the output of said AND gate. This blocking then makes it impossible for said unit 2 to execute instructions.
This impossibility is due to the fact that the clock signal is no longer transmitted to the calculation unit 2 thus preventing the execution of instructions. Thus, there is no risk that the calculation unit 2 executes an instruction while a data item is being read.
Of course, the blocking of the calculation unit 2 by action on its clock input is not the only way to achieve this blocking. Indeed, specific or existing entries, such as an "enable" entry that makes the component to function and generally present, are usable.
On the other hand, it can be pointed out that this blocking of the calculation unit 2 also allows a reduction in the consumption of electrical energy. In fact, if the blocking makes it possible not to execute an instruction at the same time as the reading of a piece of data, this blocking makes it possible to stop the operation of the unit 2. Thus in the case where there is no instructions to execute, this blocking of the calculation unit 2 makes it possible not to operate said unit 2 in a vacuum.
It will be understood that the memory or memories used may be a non-volatile memory also called ROM (Read Only Memory), such as an EEPROM (Electrically Erasable Programmable Read Only Memory) or a volatile memory such as a memory flash, RAM (Random Access Memory) or others.
It will be understood that various modifications and / or improvements and / or combinations obvious to those skilled in the art can be made to the various embodiments of the invention set out above without departing from the scope of the invention defined by the appended claims.