FR3077893A1 - Systeme de controle d'acces a une memoire - Google Patents

Systeme de controle d'acces a une memoire Download PDF

Info

Publication number
FR3077893A1
FR3077893A1 FR1851252A FR1851252A FR3077893A1 FR 3077893 A1 FR3077893 A1 FR 3077893A1 FR 1851252 A FR1851252 A FR 1851252A FR 1851252 A FR1851252 A FR 1851252A FR 3077893 A1 FR3077893 A1 FR 3077893A1
Authority
FR
France
Prior art keywords
task
circuit
memory
cpu
access
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
FR1851252A
Other languages
English (en)
Other versions
FR3077893B1 (fr
Inventor
Dragos Davidescu
Olivier Ferrand
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 FR1851252A priority Critical patent/FR3077893B1/fr
Priority to US16/274,336 priority patent/US20190251042A1/en
Priority to CN201910116850.0A priority patent/CN110162492A/zh
Publication of FR3077893A1 publication Critical patent/FR3077893A1/fr
Application granted granted Critical
Publication of FR3077893B1 publication Critical patent/FR3077893B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • 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/1425Protection 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 physical, e.g. cell, word, block
    • G06F12/1441Protection 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 physical, e.g. cell, word, block for a range
    • 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
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)
  • Use Of Switch Circuits For Exchanges And Methods Of Control Of Multiplex Exchanges (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

L'invention concerne un système de contrôle d'accès à une mémoire (14) comprenant : au moins un premier circuit d'accès direct à la mémoire (20) ; et au moins un second circuit (22), chaque second circuit étant associé à un premier circuit et étant programmé pour restreindre la zone de la mémoire accessible audit premier circuit.

Description

SYSTEME DE CONTROLE D'ACCES A UNE MEMOIRE
Domaine
La présente invention concerne le domaine des processeurs et, plus particulièrement, des droits d'accès à des zones mémoire selon les tâches exécutées.
Exposé de l’art antérieur
Dans le cadre des systèmes comprenant un processeur et une mémoire (par exemple les ordinateurs, les téléphones...), il est important d'être capable de restreindre l'accès à certaines zones de la mémoire. On peut, par exemple, vouloir restreindre l'accès à des données confidentielles ou à des données système.
Cela peut être, par exemple, effectué en incluant dans le système une unité de protection de la mémoire (MPU - Memory Protection Unit), associée à une unité centrale de traitement (CPU - Central Processing Unit), par exemple un processeur. La MPU est apte à refuser l'accès à des zones de la mémoire à certaines tâches effectuées par le CPU. Par exemple, on peut associer à certaines tâches un identifiant et une zone de la mémoire, et refuser l'accès à cette zone de la mémoire à toute tâche n'ayant pas l'identifiant associé.
Dans un tel système, le contrôle de la mémoire est effectué par la MPU associée au CPU. Il n'est possible de contrôler les tâches qu'une par une.
B16657 - 17-RO-0638
Résumé
Un mode de réalisation pallie tout ou partie des inconvénients des systèmes de contrôle d'accès à une mémoire.
Ainsi, un mode de réalisation prévoit un système de contrôle d'accès à une mémoire comprenant : au moins un premier circuit d'accès direct à la mémoire ; et au moins un second circuit, chaque second circuit étant associé à un premier circuit et étant programmé pour restreindre la zone de la mémoire accessible audit premier circuit.
Selon un mode de réalisation, le système comprend une unité centrale de traitement adaptée à programmer les seconds circuits.
Selon un mode de réalisation, le système comprend une unité de protection de la mémoire ayant accès aux adresses des zones à accès restreint.
Selon un mode de réalisation, le système comprend au moins huit premiers circuits.
Un autre mode de réalisation prévoit un procédé de lecture ou d'écriture d'une mémoire d'un système tel que celui décrit précédemment.
Selon un mode de réalisation, lorsqu'une tâche est démarrée, le second circuit vérifie à chaque changement de l'adresse de destination si la nouvelle adresse fait partie de la zone accessible à cette tâche, et si ce n'est pas le cas, la tâche est arrêtée.
Selon un mode de réalisation, le procédé précédent comprend les étapes suivantes : a) attribuer un premier circuit à une tâche à effectuer ; b) programmer le second circuit de manière à définir la zone mémoire accessible lors de cette tâche ; c) programmer le premier circuit de manière à définir l'adresse de la mémoire à laquelle commence la tâche ; et d) commencer la tâche.
Selon un mode de réalisation, l'étape b) est effectuée en mode privilégié.
B16657 - 17-RO-0638
Selon un mode de réalisation, l'étape c) est effectuée dans un mode limité associé à la tâche.
Selon un mode de réalisation, les étapes b) et c) sont effectuées par une unité centrale de traitement.
Selon un mode de réalisation, les étapes a) à d) sont reproduites pour chaque tâche à effectuer.
Selon un mode de réalisation, les tâches effectuées par les au moins un premier circuit peuvent s'effectuer en parallèle. Brève description des dessins
Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles :
la figure 1 représente, sous forme de blocs, un mode de réalisation d'un système de contrôle d'accès à une mémoire ;
la figure 2 représente un mode de mise en oeuvre d'un procédé de fonctionnement du système de la figure 1 ;
la figure 3 illustre une étape du procédé de la
figure 2 r
la figure 4 illustre une autre étape du procédé de la
figure 2 r
la figure 5 illustre une autre étape du procédé de la
figure 2 r
la figure 6 illustre une autre étape du procédé de la
figure 2 r
la figure 7 illustre une autre étape du procédé de la
figure 2 ; et
la figure 8 illustre une étape non représentée en figure
2.
Description détaillée
De mêmes éléments ont été désignés par de mêmes références dans les différentes figures. Par souci de clarté, seuls les éléments utiles à la compréhension des modes de réalisation décrits ont été représentés et sont détaillés. En
B16657 - 17-RO-0638 particulier, les systèmes décrits comprennent divers autres composants qui ne sont pas détaillés.
La figure 1 représente, sous forme de blocs, un mode de réalisation d'un système 10 de contrôle d'accès à une mémoire.
Le système 10 comprend une unité centrale de traitement (CPU) 12, une mémoire (MEMORY) 14 et une pluralité de périphériques 16 dont deux sont représentés (PERIPH1, PERIPH2). Les périphériques 16 correspondent à des circuits aptes à effectuer des tâches, c'est-à-dire à lire ou écrire dans la mémoire 14. Les périphériques 16 peuvent être des périphériques externes au système comme une imprimante ou des capteurs connectés au système. Les périphériques 16 peuvent aussi être internes au système, par exemple d'autres processeurs. Le système comprend de plus une unité de protection de la mémoire (MPU) 18 adaptée à refuser ou à accepter l'accès à certaines zones de la mémoire 14 au CPU dans certains modes d'utilisation autres qu'un mode privilégié, c'est-à-dire un mode dans lequel le CPU a toutes les autorisations et peut accéder à toutes les zones mémoire.
Le système comprend, de plus, des circuits 20 d'accès direct à la mémoire dont deux sont représentés (DMA1, DMA2 Direct Memory Access). De préférence, il y a par exemple au moins huit circuits DMA, par exemple entre huit et seize circuits DMA. Les circuits DMA correspondent à des canaux à travers lesquels des données peuvent être lues ou écrites par un périphérique 16 dans la mémoire 14 sans intervention du CPU 12 autre que le lancement de la lecture ou de l'écriture. Une adresse de destination d'un circuit DMA correspond à l'adresse à laquelle la lecture ou l'écriture par un périphérique est effectuée à un instant donné. Cette adresse peut être programmée, par exemple par le CPU, et change au fur et à mesure de l'écriture ou de la lecture.
Selon un mode de réalisation, chaque circuit DMA 20 est associé à un circuit (Ll, L2) 22 de protection locale de la mémoire. Chaque circuit 22 est apte à comparer l'adresse de destination du circuit DMA 20, avec les adresses des zones mémoire
B16657 - 17-RO-0638 autorisées du circuit DMA 20 à chaque changement d'adresse de destination et ainsi à restreindre la zone de la mémoire accessible par le circuit DMA. Chaque circuit 22 est, de plus, apte à arrêter la lecture ou l'écriture de la mémoire si l'adresse ne fait pas partie des zones autorisées. La zone de mémoire accessible par le circuit DMA peut être programmée dans le circuit 22 par le CPU en mode privilégié.
La figure 2 représente un mode de mise en oeuvre du système de la figure 1. Certaines étapes du procédé de la figure 2 sont illustrées par les figures 3 à 8.
Le CPU commence par déterminer, au cours d'une étape 30 (DETERMINING TASKS TO IMPLEMENT), si des tâches venant de périphériques 16 peuvent être exécutées par un circuit DMA. Pour simplifier, on utilise par la suite l'index i pour désigner un circuit DMA, le circuit 22, une tâche qui leur est associée, ou un périphérique qui leur est associé, i étant un entier allant de 1 à N, N étant le nombre de tâches pouvant être exécutées par des circuits DMA.
Le CPU exécute ensuite une étape 32 (ASSIGNING DMA) au cours de laquelle il attribue un circuit DMA à chaque tâche à exécuter. S'il y a plus de tâches que de circuits DMA, certaines tâches sont mises en attente jusqu'à ce qu'un circuit DMA devienne disponible.
L'étape 32 est suivie d'une étape 34 (PROGRAMMING LOCAL MEMORY PROTECTION UNITS Li) de programmation des circuits de protection locale de la mémoire.
Au cours de l'étape 34, le CPU passe en mode privilégié pour programmer les circuits 22. La programmation des circuits 22 n'est possible qu'en mode privilégié. La MPU a accès aux adresses des différentes zones mémoire autorisées pour chaque périphérique ou pour chaque tâche. Le CPU utilise, en mode privilégié, la MPU et ses informations pour programmer les circuits 22 associés aux circuits DMA auxquels une tâche a été attribuée de manière à ce que chaque circuit 22 autorise la lecture et l'écriture de la zone mémoire autorisée associée à la tâche correspondante.
B16657 - 17-RO-0638
L'étape 34 est suivie d'une étape 36 (PROGRAMMING DMAi CURRENT ADDRESS) au cours de laquelle le CPU quitte le mode privilégié et entre dans un mode limité associé à une tâche i à laquelle un circuit 20 DMAi a été attribuée. Le circuit 22 Li de ce DMAi a été programmé. La MPU assure alors que l'accès du CPU est restreint à la zone de la mémoire associée à cette tâche. Au cours de cette étape 36, le CPU programme l'adresse de destination du circuit DMAi comme étant l'adresse à laquelle l'écriture ou la lecture de la mémoire doit commencer pour cette tâche i. Cette programmation entraîne le démarrage de la tâche i (TASK i).
Une fois qu'il a lancé la tâche i, le CPU détermine (étape 40 - OTHER TASK TO IMPLEMENT ?) si une autre tâche à laquelle un circuit DMA a été attribué doit être effectuée.
Dans l'affirmative (sortie YES du bloc 40), le CPU passe à la tâche suivante (étape 42 - NEXT TASK) et revient à l'étape 36 pour cette nouvelle tâche, c'est-à-dire revient à l'étape de programmation de l'adresse de destination du circuit DMA attribuées à cette autre tâche.
Si, à l'étape 40, le CPU détermine que toutes les tâches auxquelles ont été attribuées un circuit DMA ont été exécutées (sortie NO du bloc 40), le CPU détermine (étape 44 - NEW TASK TO IMPLEMENT ?) si de nouvelles tâches, auxquelles n'ont pas été attribué un circuit DMA précédemment, doivent être exécutées.
Dans la négative (sortie NO du bloc 44), le système 10 de contrôle d'accès à la mémoire est en attente jusqu'à l'arrivée d'une nouvelle tâche.
Si une ou plusieurs nouvelles tâches doivent être exécutées avec un circuit DMA (sortie YES du bloc 44), on revient à l'étape 32 avec l'attribution des circuits DMA aux différentes nouvelles tâches.
Côté tâche i (bloc 60) , le circuit 22 du circuit DMA commence par déterminer (étape 46 - CURRENT ADDRESS IN AUTORIZED ZONE ?) , sans avoir recours au CPU, si l'adresse de destination est dans la zone autorisée, par exemple en la comparant avec les bornes d'une plage d'adresses programmée à l'étape 34.
B16657 - 17-RO-0638
Dans la négative (sortie NO du bloc 4 6) , la tâche est considérée comme terminée et le circuit DMA est de nouveau disponible pour être attribué à une autre tâche (étape 48 - DMA AVAILABLE).
Dans l'affirmative (sortie YES du bloc 46), le périphérique PERIPHi de la tâche lit ou écrit dans la ligne de mémoire à l'adresse de destination (étape 50 - READING/WRITING).
Le périphérique PERIPHi détermine ensuite si la tâche est terminée (étape 52 - TASK ENDED ?). Si oui (sortie YES du bloc 52), le circuit DMA est de nouveau disponible pour être attribué à une autre tâche (étape 48) . Si non (sortie NO du bloc 52) , l'adresse de destination du circuit DMA est changée pour devenir l'adresse suivante (étape 54 - NEXT ADDRESS) et on revient à l'étape 46.
Les étapes 46 à 54, correspondant à l'exécution proprement dite de la tâche, s'effectuent parallèlement, pour chaque tâche à laquelle on a attribué un circuit DMA, après la programmation par le CPU de l'adresse de destination.
Les figures 3 à 8 illustrent un exemple d'application des étapes du procédé de la figure 2 dans le cas du système 10 de la figure 1. Dans cet exemple, on considère que les deux périphériques 16, PERIPHI et PERIPH2, cherchent à avoir accès à la mémoire 14 par des circuits DMA. Les circuits DMA1 et DMA2 ont été respectivement attribués à la tâche 1 du périphérique PERIPHI et à la tâche 2 du périphérique PERIPH2.
La figure 3 illustre l'étape 34, au cours de laquelle le CPU passe en mode privilégié pour programmer les circuits 22 des circuits DMA1 et DMA2.
Le CPU 12 utilise, en mode privilégié, la MPU 18 pour programmer le circuit Ll, associé au circuit DMA1, de manière à ce qu'il restreigne la lecture et l'écriture par le périphérique PERIPHI à la zone mémoire comprise entre des adresses al et a2. De la même manière, le CPU programme le circuit L2, associé au circuit DMA2, de manière à ce qu'il restreigne la lecture et
B16657 - 17-RO-0638 l'écriture par le périphérique PERIPH2 à la zone mémoire comprise entre des adresses bl et b2.
Le système comprend aussi, dans cet exemple, un circuit DMA3 n'étant pas attribué à une tâche et son circuit 22 L3 n'est donc pas programmé par le CPU à cette étape.
La figure 4 illustre les étapes 36 et 46, pour la tâche 1 associée au périphérique PERIPH1.
Au cours de l'étape 36, le CPU quitte le mode privilégié et entre dans un mode limité associé à la tâche 1. La MPU assure alors que l'accès du CPU est restreint à la zone de la mémoire associée à cette tâche 1 (adresses al à a2) . Le CPU programme ensuite l'adresse de destination du circuit DMA1 pour être l'adresse à laquelle l'écriture ou la lecture de la mémoire doit commencer. Au cours de l'étape 46, le circuit L1 compare cette adresse aux zones autorisées et autorise ou non le début de la tâche, c'est-à-dire la lecture ou l'écriture de la mémoire (étape 50). Parallèlement à l'exécution de la tâche 1, le CPU détermine (étape 42) qu'un circuit DMA a été attribué à une autre tâche, par exemple la tâche 2, associée au périphérique PERIPH2.
La figure 5 illustre les étapes 36 et 46, pour la tâche
2.
Au cours de l'étape 36, le CPU entre dans un mode limité, associé à la tâche 2. De même que précédemment, l'accès du CPU est restreint à la zone (adresses bl à b2) de la mémoire associée à cette tâche. Le CPU programme ensuite l'adresse de destination du circuit DMA2 pour être l'adresse à laquelle l'écriture ou la lecture de la mémoire doit commencer. Au cours de l'étape 46, le circuit L2 compare cette adresse aux zones autorisées et autorise ou non le début de la tâche 2.
La tâche 1 du périphérique PERIPH1 peut être terminée, auquel cas le circuit DMA1 est rendu disponible (étape 48) pour être attribué à une nouvelle tâche. Si non, la tâche 1 du périphérique PERIPH1 se poursuit, c'est-à-dire que les étapes 46, 50, 52 et 54 se répètent. En effet, la présence du circuit DMA1
B16657 - 17-RO-0638 permet la lecture ou l'écriture sans l'utilisation du CPU, qui est alors occupé à programmer le circuit DMA2.
La figure 6 illustre les étapes 32 et 34 d'application du procédé de la figure 2.
Parallèlement à l'exécution des tâches 1 et 2 associées aux périphériques PERIPH1 et PERIPH2, un autre périphérique 16 (PERIPH3) cherche à effectuer une tâche 3 avec un circuit DMA, ce qui est déterminé par le CPU à l'étape 44 suivant la programmation du circuit DMA2.
Le procédé reprend donc à l'étape 32 au cours de laquelle le CPU entre dans le mode privilégié de manière à attribuer un circuit DMA, ici le circuit DMA3, à cette tâche 3. L'unité CPU programme ensuite le circuit L3 (étape 34) de manière à restreindre l'accès du circuit DMA3 à des adresses comprises entre cl et c2.
Les tâches 1 et 2 effectuées par les périphériques PERIPH1 et PERIPH2 peuvent toujours être en cours ou peuvent être terminées.
S'il n'y a plus de circuit DMA disponible lorsqu'une nouvelle tâche cherche à accéder à la mémoire à travers un circuit DMA, la tâche est par exemple mise en attente. Un système de priorité peut aussi être mis en place dans lequel une tâche de moindre niveau de priorité peut être mise en attente de manière à attribuer le circuit DMA à une autre tâche. La tâche de moindre niveau de priorité est reprise à la fin de la tâche prioritaire.
La figure 7 illustre les étapes 36 et 46, pour la tâche 3 associée au périphérique PERIPH3, au cours de laquelle le CPU entre un mode limité associé à la tâche 3 du périphérique PERIPH3. De même que précédemment, le CPU n'a accès qu'à la zone (adresses cl à c2) de la mémoire associée à cette tâche 3. L'unité CPU programme ensuite le circuit DMA3 (étape 36) de manière à définir l'adresse de destination du circuit DMA3 pour être l'adresse à laquelle l'écriture ou la lecture de la mémoire doit commencer. Le circuit L3 compare cette adresse de destination aux zones autorisées et autorise ou non le début de la tâche 3 (étape 46).
B16657 - 17-RO-0638
Les tâches 1 et 2 des périphériques PERIPH1 et PERIPH2 peuvent toujours être en cours ou être terminées.
La figure 8 illustre une étape, non représentée en figure 2, au cours de laquelle une tâche qui n'est pas programmée pour être effectuée par un circuit DMA est effectuée directement par le CPU. Pour ce faire, le CPU entre dans un mode limité dans lequel il n'a accès à aucune des zones protégées et attribuées de la mémoire, dont les adresses sont connues de la MPU. Cette tâche peut être effectuée après que les tâches aient été démarrées ou entre deux tâches, par exemple selon le niveau de priorité.
Le CPU lit ou écrit alors dans une zone 24 de la mémoire et la MPU s'assure que le CPU n'accède à aucune zone protégée.
Durant cette étape, les tâches effectuées par des circuits DMA continuent indépendamment du CPU.
Un avantage des modes de réalisation décrits est qu'il est impossible pour une tâche, par exemple provenant d'un programme malveillant, d'atteindre des zones mémoire protégées, même si cette tâche est exécutée par un circuit DMA et n'est donc pas contrôlée par la MPU.
Des modes de réalisation particuliers ont été décrits. Diverses variantes et modifications apparaîtront à l'homme de l'art. En particulier, la zone associée à chaque circuit DMA et programmée dans le circuit de protection locale de la mémoire 22 correspondant n'est pas limitée à une unique zone continue mais peut, par exemple, correspondre à plusieurs zones distinctes.

Claims (12)

  1. REVENDICATIONS
    1. Système de contrôle d'accès à une s mémoire (14) comprenant : au moins un premier circuit d'accès direct à la mémoire (20) ; et au moins un second circuit (22) , chaque second circuit étant associé à un premier circuit et étant programmé pour restreindre la zone de la mémoire accessible audit premier circuit.
  2. 2. Système selon la revendication 1, dans lequel le système comprend une unité centrale de traitement (12) adaptée à programmer les seconds circuits.
  3. 3. Système selon la revendication 1 ou 2, dans lequel le système comprend une unité de protection de la mémoire (18) ayant accès aux adresses des zones mémoire à accès restreint.
  4. 4. Système selon l'une quelconque des revendications 1 à 3, comprenant au moins huit premiers circuits (20).
  5. 5. Procédé de lecture ou d'écriture d'une mémoire d'un système selon l'une quelconque des revendications 1 à 4.
  6. 6. Procédé selon la revendication 5, dans lequel, lorsqu'une tâche (TASKi) est démarrée, le second circuit (22) vérifie (46) à chaque changement de l'adresse de destination si la nouvelle adresse fait partie de la zone mémoire accessible à cette tâche, et si ce n'est pas le cas, la tâche est arrêtée.
  7. 7. Procédé selon la revendication 5 ou 6 comprenant les étapes suivantes :
    a) attribuer un premier circuit à une tâche à effectuer (32) ;
    b) programmer le second circuit de manière à définir la zone mémoire accessible lors de cette tâche (34) ;
    c) programmer le premier circuit de manière à définir l'adresse de la mémoire à laquelle commence la tâche (36) ; et
    d) commencer la tâche (60) .
  8. 8. Procédé selon la revendication 7, dans lequel l'étape b) est effectuée en mode privilégié.
    B16657 - 17-RO-0638
  9. 9. Procédé selon la revendication 7 ou 8, dans lequel l'étape c) est effectuée dans un mode limité associé à la tâche.
  10. 10. Procédé selon l'une quelconque des revendications 7 à 9, dans lequel les étapes b) et c) sont effectuées par une unité
    5 centrale de traitement (12).
  11. 11. Procédé selon l'une quelconque des revendications 7 à 10, dans lequel les étapes a) à d) sont reproduites pour chaque tâche à effectuer.
  12. 12. Procédé selon l'une quelconque des revendications 7 10 à 11, dans lequel les tâches effectuées par les premiers circuits peuvent s'effectuer en parallèle.
FR1851252A 2018-02-14 2018-02-14 Systeme de controle d'acces a une memoire Active FR3077893B1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
FR1851252A FR3077893B1 (fr) 2018-02-14 2018-02-14 Systeme de controle d'acces a une memoire
US16/274,336 US20190251042A1 (en) 2018-02-14 2019-02-13 Memory access control system
CN201910116850.0A CN110162492A (zh) 2018-02-14 2019-02-13 存储器访问控制系统

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1851252A FR3077893B1 (fr) 2018-02-14 2018-02-14 Systeme de controle d'acces a une memoire
FR1851252 2018-02-14

Publications (2)

Publication Number Publication Date
FR3077893A1 true FR3077893A1 (fr) 2019-08-16
FR3077893B1 FR3077893B1 (fr) 2020-09-11

Family

ID=62683306

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1851252A Active FR3077893B1 (fr) 2018-02-14 2018-02-14 Systeme de controle d'acces a une memoire

Country Status (3)

Country Link
US (1) US20190251042A1 (fr)
CN (1) CN110162492A (fr)
FR (1) FR3077893B1 (fr)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080065855A1 (en) * 2006-09-13 2008-03-13 King Matthew E DMAC Address Translation Miss Handling Mechanism
WO2009138928A1 (fr) * 2008-05-13 2009-11-19 Nxp B.V. Accès direct sécurisé à la mémoire
CN102591824A (zh) * 2011-12-27 2012-07-18 深圳国微技术有限公司 Soc芯片系统中控制保密数据搬运的dma控制器
WO2013095461A1 (fr) * 2011-12-21 2013-06-27 Intel Corporation Accès mémoire direct sécurisé

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7689733B2 (en) * 2007-03-09 2010-03-30 Microsoft Corporation Method and apparatus for policy-based direct memory access control
JP4766498B2 (ja) * 2008-12-24 2011-09-07 株式会社ソニー・コンピュータエンタテインメント ユーザレベルdmaとメモリアクセス管理を提供する方法と装置
GB2525596B (en) * 2014-04-28 2021-05-26 Arm Ip Ltd Access control and code scheduling
FR3038752B1 (fr) * 2015-07-10 2018-07-27 Stmicroelectronics (Rousset) Sas Procede et circuit pour proteger et verifier des donnees d'adresse

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080065855A1 (en) * 2006-09-13 2008-03-13 King Matthew E DMAC Address Translation Miss Handling Mechanism
WO2009138928A1 (fr) * 2008-05-13 2009-11-19 Nxp B.V. Accès direct sécurisé à la mémoire
WO2013095461A1 (fr) * 2011-12-21 2013-06-27 Intel Corporation Accès mémoire direct sécurisé
CN102591824A (zh) * 2011-12-27 2012-07-18 深圳国微技术有限公司 Soc芯片系统中控制保密数据搬运的dma控制器

Also Published As

Publication number Publication date
US20190251042A1 (en) 2019-08-15
CN110162492A (zh) 2019-08-23
FR3077893B1 (fr) 2020-09-11

Similar Documents

Publication Publication Date Title
EP3032418A1 (fr) Procédé et dispositif de contrôle de permissions
JPH0242528A (ja) Icメモリカード
CN107196982A (zh) 一种用户请求的处理方法和装置
US20120303880A1 (en) Method and apparatus for encrypting and processing data in flash translation layer
US8677508B2 (en) Confidential information leakage prevention system, confidential information leakage prevention method and confidential information leakage prevention program
US8001348B2 (en) Method to qualify access to a block storage device via augmentation of the device's controller and firmware flow
CN101599114B (zh) 对病毒程序的驱动进行定位的方法及系统
CN106462716A (zh) 候选敏感数据项的可分解保护
US20060085629A1 (en) Mapping a reset vector
WO2020242890A1 (fr) Contrôle d'accès granulaire pour mémoire sécurisée
CN111523098A (zh) 数据权限管理方法及装置
FR2621719A1 (fr) Procede de conversion d'adresse
FR3077893A1 (fr) Systeme de controle d'acces a une memoire
KR102028704B1 (ko) 전자기기에서 코드 삽입 공격으로부터 보호를 위한 메모리 운용 방법
CN110990318B (zh) 一种PCIe总线地址扩展方法、装置、设备和介质
EP1489517B1 (fr) Protection d'un programme en attente d'exécution dans une mémoire utilisée par un microprocesseur
US6925569B2 (en) Secured microprocessor comprising a system for allocating rights to libraries
US11307999B2 (en) Data cache segregation for spectre mitigation
CN113761581A (zh) 区块链中的权限管控方法、装置和电子设备
CN114327005A (zh) 芯片的复位管理方法及模块和Flash复位装置及芯片结构
KR20140076454A (ko) 스크래치패드 메모리 관리 시스템 및 방법
US20170249173A1 (en) Guest protection from application code execution in kernel mode
JPS58211254A (ja) 蓄積プログラム制御方式
US20050144408A1 (en) Memory protection unit, memory protection method, and computer-readable record medium in which memory protection program is recorded
KR102514257B1 (ko) 제어 흐름 무결성 위반 탐지 장치 및 방법

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20190816

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7