FR3038752A1 - - Google Patents
Download PDFInfo
- Publication number
- FR3038752A1 FR3038752A1 FR1556621A FR1556621A FR3038752A1 FR 3038752 A1 FR3038752 A1 FR 3038752A1 FR 1556621 A FR1556621 A FR 1556621A FR 1556621 A FR1556621 A FR 1556621A FR 3038752 A1 FR3038752 A1 FR 3038752A1
- Authority
- FR
- France
- Prior art keywords
- address
- data
- circuit
- write
- bus
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
- 238000012795 verification Methods 0.000 claims description 20
- 238000000034 method Methods 0.000 claims description 13
- 238000001914 filtration Methods 0.000 claims 1
- 238000012545 processing Methods 0.000 description 12
- 230000008901 benefit Effects 0.000 description 3
- 238000013524 data verification Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/24—Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/145—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1016—Error in accessing a memory location, i.e. addressing error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1678—Details of memory controller using bus width
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/404—Coupling between buses using bus bridges with address mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4078—Safety or protection circuits, e.g. for preventing inadvertent or unauthorised reading or writing; Status cells; Test cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/41—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
- G11C11/412—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger using field-effect transistors only
- G11C11/4125—Cells incorporating circuit means for protecting against loss of information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Quality & Reliability (AREA)
- Storage Device Security (AREA)
Abstract
L'invention concerne un circuit de protection de données d'adresse mémoire, le circuit étant adapté à : recevoir, sur un bus de données d'entrée (126), des données d'écriture à écrire dans un dispositif mémoire (104), et sur un bus d'adresse (122), une adresse d'écriture correspondante ; générer une valeur de protection d'adresse sur la base de l'adresse d'écriture ; et générer des données d'écriture modifiées (WRITE DATA') sur un bus de données de sortie (128), les données d'écriture modifiées comprenant les données d'écriture et la valeur de protection d'adresse, la largeur du bus de données de sortie (128) étant plus grande que la largeur du bus de données d'entrée.
Description
PROCEDE ET CIRCUIT POUR PROTEGER ET VERIFIER DES DONNEES
D’ADRESSE
Domaine
La présente description concerne le domaine des interfaces mémoire, et en particulier une interface mémoire fournissant un procédé et un circuit pour protéger et vérifier des données d'adresse.
Exposé de 1'art antérieur
Lors de l'écriture dans tout type de dispositif mémoire comme un dispositif DRAM (mémoire dynamique à accès aléatoire) ou SRAM (mémoire statique à accès aléatoire), il est possible que les signaux transitant sur les lignes d'entrée et/ou de sortie de la mémoire soient endommagés par exemple suite à l'occurrence d'un évènement unique.
Bien que les interfaces mémoires comprennent souvent un mécanisme de protection et/ou de correction pour les données écrites et lues dans la mémoire, il y a aussi un problème en ce que les données d'adresse peuvent être endommagées. Il est difficile de détecter que les données d'adresse ont été endommagées, puisque cela a pour résultat que des données sont écrites ou lues à une adresse incorrecte. Les données mémorisées à l'adresse incorrecte peuvent ne pas être endommagées, et ainsi les mécanismes de protection concernant le signal de données ne vont pas réussir à identifier/corriger l'erreur.
Le fait d'avoir des données d'adresse endommagées sur les lignes d'entrée/sortie d'une mémoire peut être considéré comme relativement peu fréquent. Toutefois, pour certaines applications, comme les applications automobiles, l'aviation, et/ou les applications spatiales, il est souhaitable d'obtenir des dispositifs mémoires extrêmement fiables, puisque la sécurité humaine peut dépendre d'un fonctionnement correct.
Il existe donc un besoin dans la technique pour un procédé et un dispositif de protection et de vérification de données d'adresse transmises sur les lignes d'entrée/sortie d'une mémoire. Résumé
Un objet de modes de réalisation de la présente description est de répondre au moins partiellement à un ou plusieurs besoins de l'art antérieur.
Selon un aspect, on prévoit un circuit pour protéger des données d'adresse mémoire, le circuit étant adapté à : recevoir, sur un bus de données d'entrée, des données d'écriture à écrire dans un dispositif mémoire, et sur un bus d'adresse, une adresse d'écriture correspondante ; générer une valeur de protection d'adresse sur la base de 1'adresse d'écriture ; et générer des données d'écriture modifiées sur un bus de données de sortie, les données d'écriture modifiées comprenant les données d'écriture et la valeur de protection d'adresse, la largeur du bus de données de sortie étant plus grande que la largeur du bus de données d'entrée.
Selon un mode de réalisation, le circuit est en outre adapté à générer une valeur de protection de données sur la base des données d'écriture, les données d'écriture modifiées comprenant en outre la valeur de protection de données.
Selon un mode de réalisation, le circuit comprend en outre un circuit de génération d'adresse adapté à générer une adresse d'écriture modifiée sur un bus d'adresse de sortie vers le dispositif mémoire.
Selon un mode de réalisation, le circuit de génération d'adresse est adapté à générer l'adresse d'écriture modifiée en décalant l'adresse d'écriture d'un bit vers la gauche.
Selon un mode de réalisation, le nombre N de bits des données d'écriture est inférieur à la largeur M du bus de données d'entrée, et la valeur de protection d'adresse est générée sur la base d'une sous-adresse correspondant à la position des N bits de données d'écriture dans la largeur du bus d'adresse.
Selon un mode de réalisation, la largeur M du bus de données d'entrée est égale à un multiple P du nombre de bits N des données d'écriture, le circuit comprenant P codeurs d'adresse dont chacun est adapté à générer la valeur de protection d'adresse sur la base de l'une correspondante des sous-adresses.
Selon un mode de réalisation, un circuit de génération de données de protection est adapté à générer la valeur de protection d'adresse en codant l'adresse d'écriture pour générer une valeur de Y bits, Y étant inférieur au nombre de bits de 1'adresse d'écriture.
Selon un mode de réalisation, le circuit comprend en outre un circuit de filtrage de plage d'adresses adapté à déterminer si 1'adresse d'écriture est dans une plage d'adresses à protéger, la valeur de protection d'adresse étant générée seulement si l'adresse est dans la plage d'adresses à protéger.
Selon un mode de réalisation, le circuit comprend en outre un chemin de contournement pour fournir les données d'écriture directement au büs de sortie de données d'écriture si l'adresse d'écriture n'est pas dans une plage d'adresses à protéger, le chemin de contournement comprenant un circuit de pontage adapté à convertir N bits de données d'écriture en au moins N+Y bits de données d'écriture.
Selon un autre aspect on prévoit un circuit de vérification de données d'adresse mémoire, le circuit étant adapté à : recevoir, sur un bus d'adresse, une adresse de lecture ; générer une valeur de protection d'adresse. de référence sur la base de 1'adresse de lecture ; recevoir, sur un bus d'entrée de données de lecture provenant d'un dispositif mémoire, des données lues et une valeur de protection d'adresse lue dans le dispositif mémoire ; et vérifier les données d'adresse mémoire en comparant la valeur de protection d'adresse lue dans le dispositif mémoire à la valeur de protection d'adresse de référence.
Selon un mode de réalisation, le nombre N de bits des données de lecture est inférieur à la largeur M d'une portion de données de lecture du bus d'entrée de données de lecture, et la valeur de protection d'adresse de référence est générée sur la base d'une sous-adresse correspondant à la position des N bits de données de lecture dans la largeur de la portion de données de lecture du bus d'entrée de données de lecture.
Selon un mode de réalisation, la largeur M de la portion de données de lecture du bus d'entrée de données de lecture est égale à un multiple P du nombre N de bits de données de lecture, le circuit comprenant P codeurs d'adresse dont chacun est adapté à générer la valeur de protection d'adresse sur la base de l'une correspondante des sous-adresses.
Selon un autre aspect, on prévoit un circuit de protection/vérification d'adresse comprenant le circuit susmentionné de protection de données d'adresse mémoire et le circuit susmentionné de vérification dé données d'adresse mémoire.
Selon encore un autre aspect, on prévoit un procédé de protection de données d'adresse mémoire comprenant : recevoir, sur un bus de données d'entrée, des données d'écriture à écrire dans un dispositif mémoire et, sur un bus d'adresse, une adresse d'écriture correspondante ; générer une valeur de protection d'adresse sur la base de l'adresse d'écriture ; et générer des données d'écriture modifiées sur un bus de données de sortie, les données d'écriture modifiées comprenant les données d'écriture et la valeur de protection d'adresse, la largeur du bus de données de sortie étant plus grande que la largeur du bus de données d'entrée.
Selon encore un autre aspect, on prévoit un procédé de vérification de données d'adresse mémoire comprenant : recevoir, sur un bus d'adresse, une adresse de lecture ; générer une valeur de protection d'adresse de référence sur la base de l'adresse de lecture ; recevoir, sur un bus d'entrée de données de lecture provenant d'un dispositif mémoire, des données lues et une valeur de protection d'adresse lue dans le dispositif mémoire ; et vérifier les données d'adresse mémoire en comparant la valeur de protection d'adresse lue dans le dispositif mémoire à la valeur de protection d'adresse de référence.
Brève description des dessins
Les caractéristiques et avantages susmentionnés, et d'autres, apparaîtront clairement à la lecture de la description détaillée suivante de modes de réalisation, donnés à titre d'illustration et non de limitation, en faisant référence aux dessins joints dans lesquels : la figure 1 illustre schématiquement un circuit intégré en communication avec un dispositif mémoire selon un exemple de réalisation ; la figure 2 représente des donnés d'écriture modifiées selon un exemple de réalisation ; la figure 3 est un organigramme illustrant des opérations dans un procédé de protection de données d'adresse selon un exemple de réalisation ; la figure 4 illustre schématiquement un circuit de protection d'adresse d'écriture de la figure 1 plus en détail selon un exemple de réalisation ; la figure 5 est un organigramme illustrant des opérations dans un procédé de vérification de données d'adresse selon un exemple de réalisation de la présente description ; et la figure 6 illustre schématiquement un circuit de vérification d'adresse de la figure 1 plus en détail selon un exemple de réalisation.
Description détaillée
La figure 1 représente schématiquement un circuit intégré 102 et un dispositif mémoire 104. Le dispositif mémoire 104 est par exemple un dispositif à mémoire DRAM ou SRAM, ou un autre type de dispositif mémoire adressable. Le dispositif mémoire 104 est par exemple situé hors de la puce de circuit intégré, ce qui signifie que les lignes d'entrée/sortie 106 entre le circuit intégré 102 et le dispositif mémoire 104 ont la forme de fils et/ou de pistes conductrices. Dans des variantes de réalisation, le dispositif mémoire 104 pourrait être intégré sur la puce, en tant que partie du circuit intégré 102.
Le circuit intégré 102 comprend des circuits destinés à s'interfacer avec le dispositif mémoire 104, et par exemple comprend une couche d'interface physique 108, couplée aux lignes d'entrée/sortie 106, un contrôleur de mémoire 110 couplé à la couche d'interface physique 108, un circuit de protection / vérification d'adresse 112, une interconnexion SoC (système sur puce) 114, et un dispositif de traitement 116. Le dispositif de traitement 116 est par exemple un CPU (unité centrale de traitement) , un GPU (unité de traitement graphique), une unité DMA (accès direct en mémoire), etc.
Le dispositif de traitement 116 est par exemple couplé au contrôleur mémoire 110 par l'intermédiaire d'une interconnexion SoC 114, et par l'intermédiaire du circuit de protection/vérification d'adresse 112. Toutefois, dans des variantes de réalisation, le circuit de protection/vérification d'adresse 112 pourrait être incorporé dans le contrôleur mémoire 110 ou dans le dispositif de traitement 116. Un avantage du fait de placer le circuit 112 entre le dispositif de traitement 116 et le contrôleur mémoire 110 est qu'il est possible d'utiliser des dispositifs de traitement 116 et des contrôleurs mémoire 110 existants, et que le circuit 112 peut être mis en œuvre de telle façon qu' il soit transparent pour les circuits existants.
Le circuit 112 comprend par exemple un circuit de protection d'adresse 118, et un circuit de vérification d'adresse 120.
Le circuit de protection d'adresse 118 reçoit une adresse d'écriture (WRITE ADDR) sur un bus d'entrée 122, l'adresse d'écriture étant par exemple fournie au circuit de protection d'adresse sur deux chemins. L'un des chemins est utilisé pour générer, sur un bus de sortie 124, une adresse modifiée à fournir au dispositif mémoire 104. L'adresse modifiée a par exemple une plage d'adresses étendue. L'autre chemin est par exemple utilisé pour générer une valeur de protection d'adresse sur la base de l'adresse d'écriture. Le circuit 118 reçoit aussi des données d'écriture (WRITE DATA) sur un bus d'entrée 126, et fournit, sur un bus de sortie 128, les données à écrire à l'adresse modifiée dans le dispositif mémoire 104, qui comprend les données d'écriture et la valeur de protection d'adresse.
Le circuit de vérification d'adresse 120 reçoit une adresse de lecture (READ ADDR) sur un bus d'entrée 130, 1'adresse de lecture étant par exemple fournie au circuit de vérification d'adresse 120 sur deux chemins. L'un des chemins est utilisé pour générer, sur un bus de sortie 132, une adresse de lecture modifiée à fournir au dispositif mémoire 104. L'adresse modifiée a par exemple une plage d'adresses étendue. L'autre chemin est par exemple utilisé pour générer une valeur de protection d'adresse de référence sur la base de l'adresse de lecture. En résultat de l'opération de lecture, le circuit 120 reçoit, sur un bus d'entrée 134 provenant du dispositif mémoire 104, les données lues, qui comprennent la valeur de protection d'adresse qui a été écrite en même temps que les données. Le circuit 120 compare par exemple la valeur de protection d'adresse lue dans le dispositif mémoire 104 à la valeur de protection d'adresse de référence générée sur la base de l'adresse de lecture. Le circuit 120 fournit des données lues (READ DATA) sur un bus de sortie 136, mais ces données sont par exemple produites seulement si la valeur de protection d'adresse concorde avec la valeur de protection d'adresse de référence. Dans une variante, les données lues peuvent être produites toujours, mais un signal d'erreur séparé (non illustré en figure 1) peut être activé sur une sortie du circuit de vérification d'adresse 120 pour indiquer que les données d'adresse ont été endommagées. En effet, la valeur de protection d'adresse lue dans le dispositif mémoire ne va pas concorder avec la valeur de protection d'adresse de référence si l'adresse d'écriture a été endommagée et les données ont été écrites par erreur dans l'adresse lue, ou si l'adresse lue a été endommagée, et qu'une adresse non souhaitée a par conséquent été lue.
Chaque circuit de protection/vérification d'adresse 112 peut mettre en œuvre un découpage en tranches de sorte que la largeur complète du bus de données soit traitée en plus petites largeurs de N bits. Par exemple, en supposant que le bus de données a une largeur de M bits, le bus de données est par exemple traité en P tranches de N bits, avec M=PxN.
En outre, comme cela est représenté en figure 1, dans certains modes de réalisation il peut y avoir une pluralité de circuits de protection/vérification d'adresse 112 opérant en parallèle, chaque circuit 112 étant associé à un port séparé du contrôleur mémoire 110.
La figure 2 représente un exemple du contenu des données d'écriture fournies sur le bus 128, à écrire à une adresse mémoire du dispositif mémoire 104. Le même contenu va aussi être lu pendant une opération de lecture.
Comme cela est illustré, les données d'écriture comprennent N bits de données système (DATA), qui correspondent aux données fournies par le dispositif de traitement 116, à écrire à l'adresse mémoire. N est par exemple un entier égal à au moins 4, et est par exemple une puissance de 2, égale ou supérieure à 8. Dans certains modes de réalisation, N est égal à la largeur M du bus d'entrée de données 126 du circuit 118 de la figure 1. Toutefois, dans des variantes de réalisation, on peut avantageusement obtenir une vérification d'adresse plus précise en prenant N inférieur à la largeur du bus. Par exemple, dans certains modes de réalisation, la largeur du bus 126 est de 64 bit, et N est égal à 8. Plus généralement, N est par exemple égal à M/P, où P est un entier supérieur ou égal à 2.
Les données d'écriture par exemple comprennent aussi X bits formant une valeur de protection de données (DATA PROTECTION) et Y bits formant la valeur de protection d'adresse (ADDRESS PROTECTION). La valeur de protection de données est optionnelle, puisque dans certains modes de réalisation la protection de données n'est pas mise en œuvre, ou elle est mise en œuvre par un circuit différent, comme le contrôleur mémoire 110.
Dans certains modes de réalisation, X+Y=N, de sorte que N+X+Y=2N, où X est égal à 0 ou à un entier positif, et Y est égal à au moins 1. Le mode de codage particulier utilisé pour générer la valeur de protection d'adresse est par exemple sélectionné sur la base des bits disponibles. Une valeur de protection d'adresse d'un seul bit est par exemple une simple valeur de contrôle de parité. Y a par exemple une limite supérieure de Q, où Q est le nombre de bits de l'adresse correspondant aux données de N bits. Dans un tel cas, l'adresse est simplement recopiée, sans réduire le nombre de bits par un codage.
Dans un mode de réalisation, N est égal à 8, X est égal à 5, et Y est égal à 3.
La figure 3 est un organigramme représentant des opérations, mises en œuvre par le circuit 118, d'un procédé de protection de données d'adresse selon ion exemple de réalisation.
Dans une opération 301, le circuit 118 reçoit N bits de données à écrire dans un dispositif mémoire, et une adresse d'écriture correspondante.
Dans une opération suivante 302, le circuit 118 génère une valeur de protection d'adresse de Y bits, sur la base de l'adresse d'écriture. Dans certains modes de réalisation, une valeur dérivée de l'adresse d'écriture est générée, et la valeur de protection d'adresse est générée sur la base de cette valeur dérivée. Par exemple, si le bus de données d'écriture 126 est de M bits, où M est égal à P fois N, alors P sous-adresses sont par exemple générées sur la base de l'adresse d'écriture, et une valeur de protection d'adresse différente est générée pour chacune des sous-adresses. La valeur de protection d'adresse est par exemple toute valeur permettant de vérifier l'exactitude des données d'adresse avec au moins un certain niveau de certitude. Par exemple, la valeur de protection d'adresse pourrait comprendre une ou plusieurs valeurs de contrôle de parité, un code de correction d'erreur tel qu' un code de Hamming, un code de contrôle de redondance cyclique (CRC), ou même une copie de certains ou de la totalité des bits d'adresse.
Dans une opération suivante 303, la plage d'adresses d'écriture est par exemple augmentée pour couvrir des blocs de données d'au moins N+Y bits. En effet, l'adresse fournie sur le bus d'adresse 122 est par exemple basée sur les blocs de N bits de données système. Ainsi, la taille de l'espace d'adressage est par exemple augmentée par le circuit 118 afin que la valeur de protection d'adresse puisse être mémorisée en plus des données système. Par exemple, dans le cas où la largeur du bus de données est doublée, et en supposant que le bit le moins significatif (lsb) de l'adresse corresponde à un multiplet, le fait de doubler l'adresse va entraîner que l'adresse couvre deux multiplets plutôt qu'un seul multiplet. Dans des variantes de réalisation, il serait toutefois possible de ne pas modifier l'adresse, et au lieu de cela, pour chaque adresse il serait possible de couvrir un mot qui est deux fois plus large que chaque mot fourni sur le bus de données.
Dans une opération 304, les N+Y bits sont écrits dans l'adresse d'écriture modifiée dans le dispositif mémoire.
La figure 4 illustre schématiquement le circuit de protection d'adresse d'écriture 118 de la figure 1 plus en détail selon un exemple de réalisation.
Le bus d'adresse d'entrée (WRITE ADDR) 122 est par exemple couplé à un filtre de plage d'adresses (ADDR RANG FILT) 402, qui par exemple permet de fournir la protection / vérification d'adresse à seulement certaines plages d'adresses dans le dispositif mémoire. Par exemple, le dispositif mémoire pourrait être subdivisé en une première portion pour laquelle la protection/vérification d'adresse doit être assurée, et une autre portion pour laquelle aucune protection/vérification d'adresse ne doit être assurée.
La sortie du circuit 402 est couplée à un circuit d'alignement d'adresse (ADDR ALIGN) 404, qui par exemple augmente la plage d'adresses d'écriture pour permettre d'insérer la valeur de protection d'adresse, et optionnellement une valeur de protection de données. Dans un exemple très simple, le dispositif mémoire peut avoir une plage adressable (exprimée en hexadécimal) allant de 0x00 à OxFF, mais le dispositif de traitement 116 peut ne voir qu'une plage d'adresses égale seulement à la moitié du total, par exemple la plage de 0x00 à 0x7F. Ainsi, chacune de ces adresses est par exemple convertie en deux adresses physiques adjacentes dans le dispositif mémoire, l'adresse 0x01 devenant 0x02, l'adresse 0x02 devenant 0x04, et ainsi de suite, l'adresse 0x7F devenant OxFE. Ces conversions correspondent à un simple décalage vers la gauche de, un bit de chaque adresse. L'adresse d'écriture modifiée WRITE ADDR' est fournie sur le bus d'adresse de sortie 124. L'adresse d'écriture provenant du filtre d'adresse 402 est aussi par exemple fournie à un tampon du type premier entré, premier sorti (FIFO) 406, qui par exemple mémorise une ou plusieurs des adresses, et les fournit sur demande à un dispositif d'incrémentation d'adresse (ADRR INC) 408, qui est par exemple utilisé pour générer, sur la base de l'adresse d'écriture, les adresses à accéder pendant l'opération d'écriture. Le dispositif d'incrémentation d'adresse 408 est par exemple adapté à incrémenter 1'adresse par des incréments correspondant à la largeur du bus de données d'écriture 122. Par exemple, si le bus de données d'écriture 122 a une largeur de 8 multiplets, et si le bit le moins significatif de l'adresse désigne un multiplet, avec chaque nouveau bloc de données d'écriture sur le bus de données d'écriture 126, le dispositif d'incrémentation d'adresse 408 est par exemple adapté à incrémenter l'adresse par incréments de 8.
La sortie du dispositif d'incrémentation d'adresse 408 est fournie à un codeur d'adresse (ADDR ENC) 410, qui par exemple génère une valeur de protection d'adresse de Y bits sur la base de la valeur d'adresse, et fournit la valeur de Y bits à un circuit de concaténation 412. Le codeur d'adresse 410 génère par exemple la valeur de protection d'adresse sur la base de l'adresse de la valeur de données de N bits correspondante. Dans le cas où la largeur M du bus de données est égale à N, le codeur d'adresse 410 va simplement générer la valeur de protection d'adresse sur la base de l'adresse fournie par le dispositif d'incrémentation d'adresse 408. Cependant, si M est égal à PxN, P étant un entier supérieur ou égal 2, le codeur d'adresse génère par exemple P valeurs de protection différentes, une pour chaque bloc de N bits sur la largeur du bus de données.
Par exemple, dans le cas où la largeur du bus de données est égale à 2N, le codeur d'adresse 408 génère par exemple une première valeur de protection d'adresse pour les N premiers bits des données d'écriture sur la base de l'adresse fournie par le dispositif d'incrémentation d'adresse 408, puis génère une deuxième valeur de protection d'adresse pour les N deuxièmes bits des données d'écriture sur la base de l'adresse fournie par le dispositif d'incrémentation d'adresse 408, incrémentée de 1.
Le circuit de concaténation 412 reçoit aussi les N bits de données système fournis sur le bus de données d'écriture d'entrée 126. Dans l'exemple de la figure 4, le bus 126 est aussi couplé à un circuit codeur de données 414 (DATA ENC), qui par exemple code les données pour générer une valeur de protection de données de X bits, aussi fournie au circuit de concaténation 412.
Le circuit 412 concatène les valeurs de N, X et Y bits pour former les données d'écriture à écrire dans le dispositif mémoire. La sortie du circuit de concaténation 412 est par exemple couplée à une entrée d'un multiplexeur 416 qui fournit, sur sa sortie, des données d'écriture (WRITE DATA') sur le bus de données 128. Une autre entrée du multiplexeur 416 est par exemple couplée de façon à recevoir les données d'écriture provenant du bus d'entrée 126, sans l'ajout d'une valeur de protection d'adresse ou d'une valeur de protection de données. Par exemple, les données d'écriture sont fournies par l'intermédiaire d'un circuit de pontage (BRIDGE) 418, qui convertit N bits de données d'écriture fournis sur un seul cycle d'accès mémoire en 2N bits de données d'écriture sur deux cycles d'accès mémoire. Par exemple, sur un premier cycle, les N bits de données d'écriture sont mémorisés par le pont 418, et sur un cycle suivant, lorsque N autres bits ont été reçus, les 2N bits sont fournis sur le bus 128. Le multiplexeur 416 est par exemple adapté à sélectionner le chemin passant par le pont 418 si l'opération d'écriture concerne une plage d'adresses qui ne doit pas se voir ajouter une protection d'adresse et de données.
Dans certains modes de réalisation, le circuit de protection/vérification d'adresse 112 met en œuvre un découpage en tranches de telle sorte que des portions différentes de la largeur du bus de données sont traitées en parallèle. Dans un tel cas, le codeur d'adresse 410, le circuit de concaténation 412, et le codeur de données 414 sont chacun par exemple reproduits plusieurs fois sur la base du nombre de tranches. Les éléments 410, 412, 414 de chaque tranche traitent par exemple un bloc correspondant de N bits du bus de données. Les instances du codeur d'adresse 410 fonctionnent par exemple chacune sur un décalage fixe correspondant de l'adresse, représentant la position des N bits de données dans la largeur du bus de données. En outre, dans certains modes de réalisation, la granularité d'un accès en lecture ou en écriture est inférieure à la largeur du bus de données, et correspond par exemple à un multiplet, alors que le bus de données a une largeur égale à une pluralité de multiplets. Ainsi, l'opération de lecture ou d'écriture peut pointer vers un multiplet de départ spécifique dans la largeur du bus de données.
Pour prendre un exemple spécifique, dans un mode de réalisation, M est égal à 2N, et N est égal à 8. Il y a par exemple 2 tranches, ce qui signifie que chacun du codeur d'adresse 410, du circuit de concaténation 412 et du codeur de données 414 est reproduit deux fois. Le tableau suivant donne des exemples des adresses consécutives fournies par le dispositif d'incrémentation d'adresse (ADDR INC) 408 et codées par le premier des codeurs d'adresse (ADDR ENC#1) et par le deuxième des codeurs d'adresse (ADDR ENC#2) dans un tel mode de réalisation :
La figure 5 est un organigramme illustrant des opérations dans un procédé de vérification d'adresses selon un exemple de réalisation.
Dans une opération 501, une adresse de lecture est reçue.
Dans une opération suivante 502, l'adresse de lecture est traitée pour générer une valeur de protection d'adresse de référence de Y bits. L'algorithme de codage appliqué dans
l'opération 502 est le même que celui appliqué dans l'opération 302 de la figure 3.
Dans une opération suivante 503, la plage d'adresses de l'accès en lecture est augmentée pour couvrir au moins des blocs de N+Y bits. Cela implique de faire la même modification que celle décrite en relation avec l'opération 303 de la figure 3, excepté qu'elle est appliquée à une adresse de lecture plutôt qu'à une adresse d'écriture.
Dans une opération suivante 504, l'accès mémoire est réalisé, et les N+Y bits sont lus dans le dispositif mémoire.
Dans une opération suivante 505, la valeur de protection d'adresse de Y bits lue dans le circuit mémoire est comparée à la valeur de protection d'adresse de référence. Si elle concorde, on considère par exemple qu'aucun dommage n'est survenu dans l'adresse. Par contre, si elle ne concorde pas, on génère par exemple une alerte, et les données lues peuvent être éliminées.
La figure 6 illustre le circuit de vérification d'adresse 120 de la figure 1 plus en détail selon un exemple de réalisation.
Comme cela est illustré, l'adresse de lecture (READ ADDR) sur le chemin d'adresse 130 est par exemple fournie à un filtre de plage d'adresses (ADDR RANGE FILT) 602, qui est par exemple similaire au circuit 402 de la figure 4.
La sortie du filtre de plage d'adresses 602 est par exemple fournie à un circuit d'alignement d'adresse (ADDR ALIGN) 604, qui par exemple fonctionne aussi de la même façon que le circuit 404 de la figure 4, en augmentant la plage d'adresses de lecture pour couvrir à la fois les données systèmes et la valeur de protection d'adresse correspondante. Le circuit 604 fournit l'adresse de lecture READ ADDR' sur le bus d'adresse de sortie 132.
La sortie du filtre de plage d'adresses 602 est par exemple fournie à un FIFO 606, qui est couplé par l'intermédiaire d'un multiplexeur (MUX) 608 à un dispositif d'incrémentation d'adresse (ADDR INC) 610. La sortie du dispositif d'incrémentation d'adresse 610 est couplée à un codeur d'adresse (ADDR ENC) 612 qui génère la valeur de protection d'adresse de référence (REF ADDR PROT) sur la base d'adresse de lecture. Le dispositif d'incrémentation d'adresse 610 et le codeur d'adresse 612 opèrent par exemple de façon similaire au dispositif d'incrémentation d'adresse 408 et au codeur d'adresse 410.
Le multiplexeur 608 est par exemple commandé par un signal READ DATA ID provenant du dispositif mémoire 104, qui par exemple indique qu'elles sont les données lues fournies sur le bus 134, de sorte que le multiplexeur 608 sélectionne l'adresse de lecture correspondante dans le FIFO 606. Le dispositif d'incrémentation d'adresse 610 reçoit par exemple un ou plusieurs signaux de suivi de phase (PHASE TRACKING), et est utilisé pour garantir que les adresses générées par le dispositif d'incrémentation 610 correspondent aux données lues présentes sur le bus 134. Dans le cas où l'interface avec le dispositif mémoire est une connexion AXI, lesdits un ou plusieurs signaux de suivi de phase comprennent par exemple des signaux RVALID, RREADY et RLAST, ces signaux étant connus de l'homme de l'art.
Le circuit 120 comprend aussi un circuit séparateur 614, qui reçoit, sur le bus 134 provenant du dispositif mémoire, les données lues provenant de l'adresse READ ADDR', et qui extrait la valeur de protection d'adresse. Cette valeur de protection d'adresse (ADDR PROT) est fournie à un comparateur (COMPARE) 616, qui reçoit aussi la valeur de protection d'adresse de référence provenant du codeur d'adresse 612. Le comparateur 616 compare la valeur de protection d'adresse à la valeur de protection d'adresse de référence, et génère un signal d'erreur (ERROR) sur une ligne de sortie 618 du comparateur. Si les valeurs de protection d'adresse concordent, le signal d'erreur n'est pas activé. Par contre s'il y a une discordance entre ces valeurs, le signal d'erreur est activé. Dans certains modes de réalisation, la ligne 618 est couplée au dispositif de traitement 116 réalisant l'accès mémoire, et le signal d'erreur indique au dispositif de traitement 116 qu'on ne peut pas compter sur les données lues, vu que le signal d'adresse est endommagé.
Dans certains modes de réalisation, un circuit de vérification/correction de données (DATA CHECKING/CORRECTING) 620 est aussi prévu, qui reçoit du circuit séparateur 614 les données systèmes (DATA) extraites des données lues par le séparateur 614, et aussi la valeur de protection de données de X bits (DATA PROT) extraite des données lues par le séparateur 614. La sortie du circuit 620 est par exemple couplée à un multiplexeur de données (DATA MCJX) 622, qui fournit les données lues sur le bus de sortie 136.
Le multiplexeur 622 reçoit aussi les données lues provenant du bus d'entrée 134 par l'intermédiaire d'un circuit de pontage (BRIDGE) 624, qui permet de contourner les circuits 614, 616 et 620 si l'adresse de l'opération de lecture ne correspond pas à une plage d'adresses protégée. Le circuit de pontage 624 convertit par exemple 2N bits de données lus fournis sur un seul cycle d'accès mémoire en N bits de données lus sur deux cycles d'accès mémoire. Par exemple, sur un premier cycle, les 2N bits de données lus provenant du bus 134 sont mémorisés par le pont 624 et fournis sur le bus 136 sur deux cycles. Le multiplexeur 622 est par exemple adapté à sélectionner le chemin passant par le pont 624 si l'opération de lecture concerne une plage d'adresses qui n'a pas reçu l'ajout d'une protection d'adresse et de données.
Dans certains modes de réalisation, un découpage en tranches peut être mis en œuvre dans le circuit de vérification d'adresse 120 d'une manière similaire à celle décrite précédemment en relation avec la figure 4. Dans le mode de réalisation de la figure 6, les éléments 612, 614, 616 et 620 sont par exemple dupliqués de telle sorte que chaque instance de ces éléments traite un bloc de N bits correspondant.
Un avantage des modes de réalisation décrits ici est que la protection d'adresse est assurée de façon relativement simple, tout en conservant une interface standard avec le dispositif mémoire. En effet, la seule modification est par exemple l'augmentation de la largeur du bus de données vers le dispositif mémoire, par exemple en doublant sa largeur.
Avec la description ainsi faite d'au moins un mode de réalisation illustratif, diverses altérations, modifications et améliorations apparaîtront facilement à l'homme de l'art.
En particulier, bien qu' on ait décrit des exemples dans lesquels la somme des X bits de la valeur de protection de données et des Y bits de la valeur de protection d'adresse soit égale au nombre N de bits des données système, de nombreux autres formats seraient possibles. Par exemple, il serait possible que X+Y soit égal à N/2 ou N/4.
Claims (15)
- REVENDICATIONS1. Circuit de protection de données d'adresse mémoire, le circuit étant adapté à : recevoir, sur un bus de données d'entrée (126), des données d'écriture à écrire dans un dispositif mémoire (104), et sur un bus d'adresse (122), une adresse d'écriture correspondante ; générer une valeur de protection d'adresse sur la base de l'adresse d'écriture ; et générer des données d'écriture modifiées (WRITE DATA') sur un bus de données de sortie (128), les données d'écriture modifiées comprenant les données d'écriture et la valeur de protection d'adresse, la largeur du bus de données de sortie (128) étant plus grande que la largeur du bus de données d'entrée.
- 2. Circuit selon la revendication 1, dans lequel le circuit est en outre adapté à générer une valeur de protection de données sur la base des données d'écriture, les données d'écriture modifiées comprenant en outre la valeur de protection de données.
- 3. Circuit selon la revendication 1 ou 2, comprenant en outre un circuit de génération d'adresse (404) adapté à générer une adresse d'écriture modifiée (WRITE ADDR') sur un bus d'adresse de sortie (124) vers le dispositif mémoire.
- 4. Circuit selon la revendication 3, dans lequel le circuit de génération d'adresse (404) est adapté à générer l'adresse d'écriture modifiée (WRITE ADDR') en décalant l'adresse d'écriture d'un bit vers la gauche.
- 5. Circuit selon l'une quelconque des revendications 1 à 4, dans lequel le nombre N de bits des données d'écriture est inférieur à la largeur M du bus de données d'entrée (126), et la valeur de protection d'adresse est générée sur la base d'une sous-adresse correspondant à la position des N bits de données d'écriture dans la largeur du bus d'adresse.
- 6. Circuit selon l'une quelconque des revendications 1 à 5, dans lequel la largeur M du bus de données d'entrée (126) est égale à un multiple P du nombre N de bits des données d'écriture, le circuit comprenant P codeurs d'adresse dont chacun est adapté à générer la valeur de protection d'adresse sur la base de l'une correspondante des sous-adresses.
- 7. Circuit selon l'une quelconque des revendications 1 à 6, dans lequel un circuit de génération de données de protection (410) est adapté à générer la valeur de protection d'adresse en codant l'adresse d'écriture pour générer une valeur de Y bits, Y étant inférieur au nombre de bits de l'adresse d'écriture.
- 8. Circuit selon l'une quelconque des revendication 1 à 7, comprenant en outre un circuit de filtrage de plage d'adresses (402) adapté à déterminer si l'adresse d'écriture est dans une plage d'adresses à protéger, dans lequel la valeur de protection d'adresse est générée seulement si l'adresse est dans la plage d'adresses à protéger.
- 9. Circuit selon leur revendication 8, comprenant en outre un chemin de contournement pour fournir les données d'écriture directement au bus de sortie de données d'écriture (128) si l'adresse d'écriture n'est pas dans une plage d'adresses à protéger, le chemin de contournement comprenant un circuit de pontage (418) adapté à convertir N bits de données d'écriture en au moins N+Y bits de données d'écriture.
- 10. Circuit de vérification de données d'adresse mémoire, le circuit étant adapté à : recevoir, sur un bus d'adresse (130), une adresse de lecture ; générer une valeur de protection d'adresse de référence (REF ADDR PROT) sur la base de l'adresse de lecture ; recevoir, sur un bus d'entrée de données de lecture (134) provenant d'un dispositif mémoire (104), des données lues et une valeur de protection d'adresse lue dans le dispositif mémoire ; et vérifier les données d'adresse mémoire en comparant la valeur de protection d'adresse lue dans le dispositif mémoire à la valeur de protection d'adresse de référence.
- 11. Circuit selon la revendication 10, dans lequel le nombre N de bits des données de lecture est inférieur à la largeur M d'une portion de données de lecture du bus d'entrée de données de lecture (134), et la valeur de protection d'adresse de référence est générée sur la base d'une sous-adresse correspondant à la position des N bits de données de lecture dans la largeur de la portion de données de lecture du bus d'entrée de données de lecture (134).
- 12. Circuit selon la revendication 11, dans lequel la largeur M de la portion de données de lecture du bus d'entrée de données de lecture (134) est égale à un multiple P du nombre N de bits de données de lecture, le circuit comprenant P codeurs d'adresse dont chacun est adapté à générer la valeur de protection d'adresse sur la base de l'une correspondante des sous-adresses.
- 13. Circuit de protection/vérification d'adresse (112) comprenant le circuit de l'une quelconque des revendications 1 à 9 et le circuit de l'une quelconque des revendications 10 à 12.
- 14. Procédé de protection de données d'adresse mémoire comprenant : recevoir, sur un bus de données d'entrée (126), des données d'écriture à écrire dans un dispositif mémoire (104) et, sur un bus d'adresse (122), une adresse d'écriture correspondante ; générer une valeur de protection d'adresse sur la base de l'adresse d'écriture ; et générer des données d'écriture modifiées (WRITE DATA') sur un bus de données de sortie (128), les données d'écriture modifiées comprenant les données d'écriture et la valeur de protection d'adresse, la largeur du bus de données de sortie (128) étant plus grande que la largeur du bus de données d'entrée.
- 15. Procédé de vérification de données d'adresse mémoire comprenant : recevoir, sur un bus d'adresse (130), une adresse de lecture ; générer une valeur de protection d'adresse de référence (REF ADDR PROT) sur la base de l'adresse de lecture ; recevoir, sur un bus d'entrée de données de lecture (134) provenant d'un dispositif mémoire (104), des données lues et une valeur de protection d'adresse lue dans le dispositif mémoire ; et vérifier les données d'adresse mémoire en comparant la valeur de protection d'adresse lue dans le dispositif mémoire à la valeur de protection d'adresse de référence.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1556621A FR3038752B1 (fr) | 2015-07-10 | 2015-07-10 | Procede et circuit pour proteger et verifier des donnees d'adresse |
CN201610108842.8A CN106340319B (zh) | 2015-07-10 | 2016-02-26 | 用于保护和验证地址数据的方法和电路 |
CN201620148491.9U CN205692570U (zh) | 2015-07-10 | 2016-02-26 | 用于保护和验证存储器地址数据的电路和地址保护/验证电路 |
US15/055,896 US10248580B2 (en) | 2015-07-10 | 2016-02-29 | Method and circuit for protecting and verifying address data |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1556621 | 2015-07-10 | ||
FR1556621A FR3038752B1 (fr) | 2015-07-10 | 2015-07-10 | Procede et circuit pour proteger et verifier des donnees d'adresse |
Publications (2)
Publication Number | Publication Date |
---|---|
FR3038752A1 true FR3038752A1 (fr) | 2017-01-13 |
FR3038752B1 FR3038752B1 (fr) | 2018-07-27 |
Family
ID=54848669
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR1556621A Expired - Fee Related FR3038752B1 (fr) | 2015-07-10 | 2015-07-10 | Procede et circuit pour proteger et verifier des donnees d'adresse |
Country Status (3)
Country | Link |
---|---|
US (1) | US10248580B2 (fr) |
CN (2) | CN106340319B (fr) |
FR (1) | FR3038752B1 (fr) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3038752B1 (fr) * | 2015-07-10 | 2018-07-27 | Stmicroelectronics (Rousset) Sas | Procede et circuit pour proteger et verifier des donnees d'adresse |
US10489241B2 (en) * | 2015-12-30 | 2019-11-26 | Arteris, Inc. | Control and address redundancy in storage buffer |
CN108733311B (zh) * | 2017-04-17 | 2021-09-10 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法和设备 |
FR3077893B1 (fr) * | 2018-02-14 | 2020-09-11 | St Microelectronics Rousset | Systeme de controle d'acces a une memoire |
US10824560B2 (en) * | 2019-02-18 | 2020-11-03 | Nxp B.V. | Using a memory safety violation indicator to detect accesses to an out-of-bounds or unallocated memory area |
US11789647B2 (en) * | 2019-12-20 | 2023-10-17 | Micron Technology, Inc. | Address verification for a memory device |
CN113312294B (zh) * | 2020-02-27 | 2024-06-18 | 瑞昱半导体股份有限公司 | 电子装置以及通讯方法 |
CN112948167B (zh) * | 2021-03-31 | 2022-10-18 | 地平线征程(杭州)人工智能科技有限公司 | 数据通路的保护电路、方法、装置及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0674258A1 (fr) * | 1994-03-24 | 1995-09-27 | Texas Instruments France | Dispositif de gestion de conflit d'accès entre un CPU et des mémoires |
EP1873649A1 (fr) * | 2006-06-28 | 2008-01-02 | Hitachi, Ltd. | Système de stockage et procédé de protection de données correspondant |
US20120144277A1 (en) * | 2010-12-06 | 2012-06-07 | Lee Douglas C | Two Dimensional Data Randomization for a Memory |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10320913A (ja) * | 1997-05-23 | 1998-12-04 | Sony Corp | データ記録装置および方法、データ再生装置および方法、データ記録再生装置および方法、並びに伝送媒体 |
US20060218332A1 (en) | 2005-03-25 | 2006-09-28 | Via Technologies, Inc. | Interface circuit, system, and method for interfacing between buses of different widths |
US7433980B1 (en) * | 2005-04-21 | 2008-10-07 | Xilinx, Inc. | Memory of and circuit for rearranging the order of data in a memory having asymmetric input and output ports |
FR3038752B1 (fr) | 2015-07-10 | 2018-07-27 | Stmicroelectronics (Rousset) Sas | Procede et circuit pour proteger et verifier des donnees d'adresse |
-
2015
- 2015-07-10 FR FR1556621A patent/FR3038752B1/fr not_active Expired - Fee Related
-
2016
- 2016-02-26 CN CN201610108842.8A patent/CN106340319B/zh active Active
- 2016-02-26 CN CN201620148491.9U patent/CN205692570U/zh not_active Withdrawn - After Issue
- 2016-02-29 US US15/055,896 patent/US10248580B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0674258A1 (fr) * | 1994-03-24 | 1995-09-27 | Texas Instruments France | Dispositif de gestion de conflit d'accès entre un CPU et des mémoires |
EP1873649A1 (fr) * | 2006-06-28 | 2008-01-02 | Hitachi, Ltd. | Système de stockage et procédé de protection de données correspondant |
US20120144277A1 (en) * | 2010-12-06 | 2012-06-07 | Lee Douglas C | Two Dimensional Data Randomization for a Memory |
Also Published As
Publication number | Publication date |
---|---|
CN205692570U (zh) | 2016-11-16 |
CN106340319A (zh) | 2017-01-18 |
CN106340319B (zh) | 2020-05-12 |
US10248580B2 (en) | 2019-04-02 |
FR3038752B1 (fr) | 2018-07-27 |
US20170010980A1 (en) | 2017-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR3038752A1 (fr) | ||
US7350127B2 (en) | Error correction method and system | |
FR2938358A1 (fr) | Interface de memoire securisee | |
JP7303408B2 (ja) | 欠陥検出を備えるエラー補正ハードウェア | |
US9141473B2 (en) | Parallel memory error detection and correction | |
JP2003507985A (ja) | 2ビット・エラーを検出し、構成要素の障害によるエラーを訂正するためのシステムおよび方法 | |
US9734008B2 (en) | Error vector readout from a memory device | |
US7137057B2 (en) | Method and apparatus for performing error correction code (ECC) conversion | |
US20160124803A1 (en) | Storage Device Data Access Method and Storage Device | |
CN113065169B (zh) | 一种文件存证方法、装置及设备 | |
FR3025041A1 (fr) | ||
US9733870B2 (en) | Error vector readout from a memory device | |
FR2941806A1 (fr) | Procede de codage correcteur d'erreurs avec bits de parite totale et procede de detection d'erreurs multiples | |
CN110679090B (zh) | 减少延迟错误校正解码 | |
US10044500B2 (en) | Error correction coding redundancy based data hashing | |
EP2865100B1 (fr) | Dispositif de correction de deux erreurs avec un code de distance de hamming trois ou quatre | |
US9299456B2 (en) | Matrix and compression-based error detection | |
FR2873468A1 (fr) | Bus de donnees parallele | |
US10250279B2 (en) | Circuits and methods for writing and reading data | |
EP3893117B1 (fr) | Circuit de vérification du contenu de registres | |
FR2963128A1 (fr) | Procédé de détection d'une attaque par injection de faute dans un dispositif de mémoire, et système de détection correspondant | |
FR2808903A1 (fr) | Systeme d'acces memoire | |
WO2010128068A1 (fr) | Procede de protection de circuits electroniques, dispositif et systeme mettant en œuvre le procede | |
CN117785782A (zh) | 基于NVMe 2.0协议的数据检测方法、装置、设备及介质 | |
FR2992091A1 (fr) | Procede d'enregistrement de donnees, procede de detection des erreurs d'acces a une memoire et dispositif associe |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 2 |
|
PLSC | Publication of the preliminary search report |
Effective date: 20170113 |
|
PLFP | Fee payment |
Year of fee payment: 3 |
|
PLFP | Fee payment |
Year of fee payment: 4 |
|
PLFP | Fee payment |
Year of fee payment: 5 |
|
ST | Notification of lapse |
Effective date: 20210305 |