CH699207B1 - Circuit processeur à mémoire partagée. - Google Patents

Circuit processeur à mémoire partagée. Download PDF

Info

Publication number
CH699207B1
CH699207B1 CH01177/08A CH11772008A CH699207B1 CH 699207 B1 CH699207 B1 CH 699207B1 CH 01177/08 A CH01177/08 A CH 01177/08A CH 11772008 A CH11772008 A CH 11772008A CH 699207 B1 CH699207 B1 CH 699207B1
Authority
CH
Switzerland
Prior art keywords
memory
processor circuit
unit
data
instructions
Prior art date
Application number
CH01177/08A
Other languages
English (en)
Other versions
CH699207A1 (fr
Inventor
Yves Theoduloz
Hugo Jaeggi
Tomas Toth
Original Assignee
Em Microelectronic Marin Sa
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Em Microelectronic Marin Sa filed Critical Em Microelectronic Marin Sa
Priority to CH01177/08A priority Critical patent/CH699207B1/fr
Priority to PCT/EP2009/059524 priority patent/WO2010010164A2/fr
Publication of CH699207A1 publication Critical patent/CH699207A1/fr
Publication of CH699207B1 publication Critical patent/CH699207B1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)

Abstract

Le circuit processeur (1) comprend une unité de calcul (2), un premier élément mémoire (3) pour le stockage des données et un second élément mémoire (4) pour le stockage des instructions. Lesdits premier et second éléments mémoires (3, 4) sont reliés par au moins un bus de communication (5, 6) à l’unité de calcul. Les premier et deuxième éléments mémoires forment une seule unité mémoire (7) pour réaliser une mémoire du type mémoire partagée.

Description

[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/0184 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/0184 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 cœur 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 en train 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.

Claims (5)

1. Circuit processeur (1) comprenant une unité de calcul (2), un premier élément mémoire (3) pour le stockage des données et un second élément mémoire (4) pour le stockage des instructions, lesdits premier et second éléments mémoires (3, 4) étant reliés par au moins un bus de communication (5, 6) à l’unité de calcul, caractérisé en ce que les premier et deuxième éléments mémoires forment une seule unité mémoire (7) pour réaliser une mémoire du type mémoire partagée.
2. Circuit processeur (1) selon la revendication 1, caractérisé en ce qu’il comprend en outre des moyens de gestion (8) des communications entre l’unité de calcul (2) et la mémoire partagée (7).
3. Circuit processeur (1) selon la revendication 2, caractérisé en ce que les moyens de gestion (8) sont prévus pour fournir un signal de blocage (S_block) prévu pour agir sur l’unité de calcul (2) afin de bloquer le fonctionnement de ladite unité de calcul (2) et d’empêcher l’exécution d’une instruction.
4. Circuit processeur (1) selon la revendication 3, caractérisé en ce que le signal de blocage (S_block) agit sur l’entrée d’horloge (CLK) de l’unité de calcul (2).
5. Circuit processeur (1) selon l’une des revendications 2 à 4, caractérisé en ce que les moyens de gestion comprennent une interface mémoire (8) reliée à l’unité de calcul (2) au moyen d’au moins un premier bus (5, 6) et reliée à la mémoire partagée (7) par un second bus de communication (9).
CH01177/08A 2008-07-25 2008-07-25 Circuit processeur à mémoire partagée. CH699207B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CH01177/08A CH699207B1 (fr) 2008-07-25 2008-07-25 Circuit processeur à mémoire partagée.
PCT/EP2009/059524 WO2010010164A2 (fr) 2008-07-25 2009-07-23 Circuit processeur à mémoire partagée

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CH01177/08A CH699207B1 (fr) 2008-07-25 2008-07-25 Circuit processeur à mémoire partagée.

Publications (2)

Publication Number Publication Date
CH699207A1 CH699207A1 (fr) 2010-01-29
CH699207B1 true CH699207B1 (fr) 2013-05-15

Family

ID=41506465

Family Applications (1)

Application Number Title Priority Date Filing Date
CH01177/08A CH699207B1 (fr) 2008-07-25 2008-07-25 Circuit processeur à mémoire partagée.

Country Status (2)

Country Link
CH (1) CH699207B1 (fr)
WO (1) WO2010010164A2 (fr)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5175841A (en) * 1987-03-13 1992-12-29 Texas Instruments Incorporated Data processing device with multiple on-chip memory buses
JPS6414648A (en) * 1987-07-08 1989-01-18 Mitsubishi Electric Corp Arithmetic processor
JPH08147161A (ja) * 1994-11-21 1996-06-07 Nec Corp データ処理装置
GB2345770B (en) * 1999-01-15 2003-06-25 Advanced Risc Mach Ltd Data processing memory system
JP2001043180A (ja) * 1999-08-03 2001-02-16 Mitsubishi Electric Corp マイクロプロセッサおよびそのための記憶装置
JP2001202285A (ja) * 2000-01-18 2001-07-27 Nec Ic Microcomput Syst Ltd マイクロプロセッサ及びそのプログラム命令とデータの格納方法
JP2002073406A (ja) * 2000-08-30 2002-03-12 Matsushita Electric Ind Co Ltd メモリアクセス制御装置
JP2005267354A (ja) * 2004-03-19 2005-09-29 Renesas Technology Corp 半導体装置

Also Published As

Publication number Publication date
CH699207A1 (fr) 2010-01-29
WO2010010164A3 (fr) 2010-03-25
WO2010010164A2 (fr) 2010-01-28

Similar Documents

Publication Publication Date Title
EP0377368B1 (fr) Dispositif de traitement de données comportant une mémoire non volatile électriquement effaçable et reprogrammable
FR2609175A1 (fr) Carte a circuits integres et systeme pour verifier le bon fonctionnement de la carte
FR2708364A1 (fr) Carte de mémoire non volatile à implantation interactive d&#39;adresses.
FR2667706A1 (fr) Antememoire hierarchique a circuits integres.
EP2940690B1 (fr) Compteur bidirectionnel en mémoire flash
EP3259674A1 (fr) Circuit dram muni d&#39;un processeur integre
FR3087020A1 (fr) Procede d&#39;acces a une memoire
FR2880963A1 (fr) Points d&#39;arrets logiciels destines a etre utilises avec des dispositifs a memoire
FR2683342A1 (fr) Circuit d&#39;interface pour carte a circuit integre.
FR2723794A1 (fr) Micro-ordinateur comprenant une memoire eprom et procede de fabrication de celui-ci
FR2711832A1 (fr) Carte de mémoire non volatile avec indication prêt occupé et minimisation de compte de broches.
CH699207B1 (fr) Circuit processeur à mémoire partagée.
CH699208B1 (fr) Circuit processeur à mémoire partagée et système tampon.
FR3089322A1 (fr) Gestion des restrictions d’accès au sein d’un système sur puce
FR2823364A1 (fr) Dispositif et procede de protection partielle en lecture d&#39;une memoire non volatile
FR3117226A1 (fr) Procédé de gestion du fonctionnement d’un système sur puce, par exemple un microcontrôleur, et système sur puce correspondant
EP1168184A1 (fr) Microprocesseur sécurisé comprenant un systeme d&#39;attribution de droits a des librairies
EP1607878A1 (fr) Procédé et programme d&#39;ordinateur de traitement d&#39;une adresse virtuelle pour la programmation d&#39;un contrôleur de DMA et système sur puce associé
EP1098525A2 (fr) Décodeur MPEG utilisant une mémoire partagée
FR2513778A1 (fr) Dispositif et procede d&#39;informatique
EP4036916B1 (fr) Dispositif comportant un circuit mémoire non volatile
EP0952587A1 (fr) DRAM à structure rapide
FR3086409A1 (fr) Procede de gestion de la fourniture d&#39;informations, en particulier des instructions, a un microprocesseur et systeme correspondant
EP3188024B1 (fr) Stockage dans une mémoire flash
FR2756410A1 (fr) Dispositif de protection apres une ecriture de page d&#39;une memoire electriquement programmable