FR3038752A1 - - Google Patents

Download PDF

Info

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
Application number
FR1556621A
Other languages
English (en)
Other versions
FR3038752B1 (fr
Inventor
Eric Bernasconi
Richard O'connor
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics Rousset SAS
Original Assignee
STMicroelectronics Rousset SAS
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 STMicroelectronics Rousset SAS filed Critical STMicroelectronics Rousset SAS
Priority to FR1556621A priority Critical patent/FR3038752B1/fr
Priority to CN201610108842.8A priority patent/CN106340319B/zh
Priority to CN201620148491.9U priority patent/CN205692570U/zh
Priority to US15/055,896 priority patent/US10248580B2/en
Publication of FR3038752A1 publication Critical patent/FR3038752A1/fr
Application granted granted Critical
Publication of FR3038752B1 publication Critical patent/FR3038752B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/24Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection 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/145Protection 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1012Adding 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/1016Error in accessing a memory location, i.e. addressing error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/1678Details of memory controller using bus width
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital 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/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4078Safety or protection circuits, e.g. for preventing inadvertent or unauthorised reading or writing; Status cells; Test cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital 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/412Digital 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/4125Cells incorporating circuit means for protecting against loss of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security 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)

  1. REVENDICATIONS
    1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.
FR1556621A 2015-07-10 2015-07-10 Procede et circuit pour proteger et verifier des donnees d'adresse Expired - Fee Related FR3038752B1 (fr)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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