WO2007048907A1 - Gestionnaire specialise de flux entre le processeur et la memoire a acces aleatoire - Google Patents

Gestionnaire specialise de flux entre le processeur et la memoire a acces aleatoire Download PDF

Info

Publication number
WO2007048907A1
WO2007048907A1 PCT/FR2006/002357 FR2006002357W WO2007048907A1 WO 2007048907 A1 WO2007048907 A1 WO 2007048907A1 FR 2006002357 W FR2006002357 W FR 2006002357W WO 2007048907 A1 WO2007048907 A1 WO 2007048907A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
processor
input
section
interface
Prior art date
Application number
PCT/FR2006/002357
Other languages
English (en)
Inventor
Michael Vergoz
Original Assignee
Touret, Richard
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 Touret, Richard filed Critical Touret, Richard
Priority to EP06830976A priority Critical patent/EP1960889A1/fr
Publication of WO2007048907A1 publication Critical patent/WO2007048907A1/fr
Priority to US12/154,819 priority patent/US20080301361A1/en

Links

Classifications

    • EFIXED CONSTRUCTIONS
    • E04BUILDING
    • E04FFINISHING WORK ON BUILDINGS, e.g. STAIRS, FLOORS
    • E04F21/00Implements for finishing work on buildings
    • E04F21/18Implements for finishing work on buildings for setting wall or ceiling slabs or plates
    • 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
    • EFIXED CONSTRUCTIONS
    • E04BUILDING
    • E04FFINISHING WORK ON BUILDINGS, e.g. STAIRS, FLOORS
    • E04F21/00Implements for finishing work on buildings
    • E04F21/18Implements for finishing work on buildings for setting wall or ceiling slabs or plates
    • E04F21/1805Ceiling panel lifting devices
    • E04F21/1811Ceiling panel lifting devices with hand-driven crank systems, e.g. rope, cable or chain winding or rack-and-pinion mechanisms

Definitions

  • the present invention relates to a method and its associated devices
  • the processor houses a
  • operating system or operating system operates in
  • Linear spaces are spaces where it is
  • processor and housed either in a processor register or in the
  • Pagination is a memory management device between the
  • processor to assign itself memory zones.
  • the memory area being
  • Pagination defined by a memory address and the requested size.
  • defect in this pagination method is that it is difficult to render totally random memory addresses allowing access to the
  • a main object of the invention is to secure the executions, the
  • An object of the invention is to optimize the allocation requests
  • An object of the invention is to facilitate memory management by the
  • This invention promotes system development
  • An object of the invention is to create a new management device
  • An object of the invention is for manufacturers to allow
  • the invention consists in securing the
  • the invention consists of recasting the system
  • FIG. 1a is a basic view of a processor
  • FIG. 1b represents a simplified view of an access memory
  • FIG. 1C represents a basic view of the memory spaces
  • FIG. 2 represents a simplified motherboard according to one aspect
  • FIG. 3 represents a particular shape in schematic view
  • chip memory access management interface (180) according to
  • FIGS. 4a, 4b, 4c, 4d, 4e, 4f describe more particularly
  • Figures la and Ib represent a principle view of a processor
  • main processor (151) which houses a computing space (154) and a space
  • register (152) and a buffer (153) also called
  • the main processor (151) communicates with the memory at
  • virtual devices (4a, 4b, ..) comprising a virtual linear space (5a) and a space
  • a bridge (8a, 8b, ..) makes it possible to establish a junction
  • FIG. 2 represents a simplified motherboard according to a
  • processors (151) Between the processors (151a, 151b) and the access memory
  • memory access management (180) is in bus interface (200)
  • this dedicated storage unit interface (190) is positioned at the bottom of a
  • memory access management system (180) which in this case is composed of six
  • section (Ix) is
  • section (2x) is a task management section
  • section (3x) is a number generation section
  • section (4x) is a real and virtual allocation section
  • linear, section (6x) is a real or virtual allocation section
  • section (8x) is an access management section (8x) of the
  • Figure 9a shows more particularly the neutral section (Ix).
  • the section is
  • An internal search request entry (I 12) allows
  • An entry (E 23) makes it possible to destroy a real or virtual task of the
  • An entry (E 25) gives the task identifier associated with the
  • optional inputs (E 34) and (E 35) can be used to delimit
  • An entrance (E 41) makes it possible to inform constantly, the
  • This request is associated with a size by the entry (E 43) and
  • the neutral section (Ix) is then biased by the output (I 51) to (I)
  • allocation section (4x) retransmits the input (E 48) to the output (E 45).
  • This request is associated with a memory address suggestion by
  • the neutral section (Ix) is
  • This request is associated with a size by the input (E 43) and of a type
  • a random address creation request is made to
  • This request is associated with an address by the entry (E 42).
  • neutral section (Ix) is biased by the output (I 51) to (I 12) for
  • This request is associated with an address by the entry (E 42) and a type
  • the neutral section (Ix) is then solicited by the output
  • Dynamic memory also called
  • memory in the heap is also part of random access memory and has the
  • the input (E 63) is used according to the needs of the inputs of
  • An output (E 64) is used according to the needs of a
  • An entry (E 62) defines the type of request to use:
  • This request is associated with a size per
  • the input size (E 63) does not create a collision, it is allocated and
  • neutral (Ix) is biased by the output (I 66) to (1 12) to know by the
  • Figure 9f shows the access management section (8x).
  • An entry (E 81) makes it possible to inform constantly, the management section
  • An output (E 88) can be used
  • the neutral section (Ix) is biased by the output (I 86) to (I) 12) to know through the input (I 87) from (I 13) whether the input (E
  • the output (E 88) informs the main processor that copying is allowed.
  • the invention therefore relates to a flow manager between the
  • the embodiment of this invention is either hardware or logic.

Landscapes

  • Engineering & Computer Science (AREA)
  • Architecture (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Civil Engineering (AREA)
  • Structural Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

L'invention propose un gestionnaire de flux entre le processeur principal et la mémoire à accès aléatoire qui améliore les performances et la sécurité avec un processeur interface de gestion d'accès mémoire positionné en interface entre le processeur principal et la mémoire à accès aléatoire, ce processeur interface de gestion d'accès mémoire sélectionnant les caractéristiques pertinentes de flux avec lesquelles il alimente une unité de stockage dédiée interface, l'unité de stockage dédiée interface étant uniquement accessible par le processeur interface de gestion d'accès mémoire, le mode de réalisation de cette invention pouvant être soit matériel soit logique.

Description

GESTIONNAIRE SPECIALISE DE FLUX ENTRE LE
PROCESSEUR ET LA MEMOIRE A ACCES ALEATOIRE
La présente invention concerne un procédé et ses dispositifs associés
de fiabilisation de flux numérique entre le processeur et les mémoires à
accès aléatoire. L'invention trouvant notamment son application dans les
domaines industriels de l'informatique et de l'électronique.
Pour l'exécution d'un programme il est nécessaire de disposer à la
fois, d'un processeur et d'une mémoire à accès aléatoire qui sous une forme
particulière est connue sous l'appellation RAM. Le processeur loge un
espace calcul et un espace mémoire dit registre. La mémoire à accès
aléatoire loge quatre types de mémoire dont la mémoire réelle / dynamique,
la mémoire réelle / linéaire, la mémoire virtuelle / dynamique, la mémoire
virtuelle / linéaire. Un espace réel est logé dans la mémoire à accès
aléatoire. L'espace réel est un espace dit non ponté, il accède directement à
la RAM sans passer par une translation d'adresse. A la différence d'un
espace réel, un espace virtuel a besoin de passer par une translation
d'adresse dite pont pour permettre à celui-ci d'accéder physiquement à la
mémoire à accès aléatoire. Un accès à la mémoire depuis un espace
virtualisé passe forcément par un espace réel. Un noyau logique également
appelé système d'opération ou système d'exploitation fonctionne en mode
réel ou dans un espace réel. Une tâche de ce noyau logique, un processus du noyau logique ou encore une application fonctionnent en mode virtuel
ou dans un espace virtuel. Certains de ces espaces sont dynamiques.
D'autres sont linéaires. Les espaces dynamiques ne nécessitant pas de
spécification de permission. Les espaces linéaires sont des espaces où il est
possible de spécifier les permissions.
Sur la carte mère le processeur et la mémoire à accès aléatoire
dialoguent selon une série d'instructions et de fonctions. Ils échangent des
informations qui contiennent des adresses mémoires qui sont allouées par
le processeur et logées soit dans un registre du processeur soit dans la
mémoire à accès aléatoire. Ce dialogue présente de nombreux
dysfonctionnements. Les dysfonctionnements principaux étant l'exécution
d'une adresse mémoire qui ne devrait pas être exécutée. La lecture d'une
adresse mémoire qui ne devrait pas être lue. L'écriture dans une adresse
mémoire qui ne devrait pas être écrite.
La pagination est un dispositif de gestion de mémoire entre le
processeur et la mémoire à accès aléatoire. La pagination permet au
processeur de s'attribuer des zones mémoires. La zone mémoire étant
définie par une adresse de mémoire et par la taille demandée. La pagination
permet aussi de gérer la permission d'accès à ces zones de mémoire. Les
permissions étant de type soit exécutable, soit lecture, soit écriture. Un
défaut dans cette méthode de pagination est qu'il est difficile de rendre totalement aléatoires les adresses de mémoire permettant d'accéder à la
mémoire à accès aléatoire. En effet, le système n'est pas prévu à cet effet et
se bloquera et/ou prendra un espace mémoire trop important sur la mémoire
à accès aléatoire.
II est donc bien évident que le système de dialogue entre le
processeur et la mémoire à accès aléatoire est extrêmement complexe.
Il est à noter que dans les processeurs actuels, le fait d'obtenir
la permission de lecture sous entend une permission d'exécution. Un défaut
extrêmement courant dans l'exécution des programmes est l'exécution
d'instruction stockées dans une zone mémoire normalement prévue pour
n'être qu'accessible en lecture. Certains industriels de l'art antérieur tentent
de pallier ce problème en ajoutant des bits de contrôle d'exécution au
système de mémoire conventionnel. Cela s'avère être insuffisant car le
système de pagination ne permet pas de rendre totalement aléatoires les
adresses de mémoire.
Un objet principal de l'invention est de sécuriser les exécutions, la
lecture et l'écriture entre le processeur et la mémoire à accès aléatoire. Les
débordements de mémoire étant une source connue de faille sont
notamment bloqués par l'invention.
Un objet de l'invention est d'optimiser les demandes d'allocation
mémoire faites par le processeur. Ces demandes d'allocation étant réelles/dynamiques ou réelles/linéaires ou virtuelles/dynamiques ou
virtuelles/linéaires .
Un objet de l'invention est de faciliter la gestion mémoire par le
processeur. Cette invention favorisant le développement de système
d'opération et ouvrant de nouvelles possibilités de lancer plusieurs
systèmes d'opérations à la fois et ce de manière totalement transparente.
Un objet de l'invention est de créer un nouveau dispositif de gestion
de mémoire entre le processeur et la mémoire à accès aléatoire. Ce
dispositif étant inter opérable ou interchangeable avec celui de l'art
antérieur.
Un objet de l'invention est de limiter les effets de chaleur dus à la
charge nécessaire au processeur pour gérer la mémoire.
Un objet de l'invention est pour les fabricants de permettre
d'abaisser les fréquences de leur processeur tout en gardant un taux de
performance équivalent ou plus élevé.
Dans un aspect principal, l'invention consiste à sécuriser les
exécutions, lectures et écritures entre le processeur et la mémoire à accès
aléatoire par une gestion améliorée des permissions et par la mise sous
contrainte des tâches des allocations linéaires réelles ou virtuelles.
Dans un aspect, l'invention consiste à refondre le système
d'allocation des ordinateurs notamment la pagination. Les figures annexées représentent un mode particulier de l'invention
sur lesquelles :
- La figure la représente une vue de principe d'un processeur
- La figure Ib représente une vue simplifiée d'une mémoire à accès
aléatoire
- La figure Ic représente une vue de principe des espaces mémoires
sur la mémoire à accès aléatoire
- La figure 2 représente une carte mère simplifiée selon un aspect
particulier de l'invention
- La figure 3 représente une forme particulière en vue schématique
de puce interface de gestion d'accès mémoire (180) selon
l'invention
- Les figures 4a, 4b, 4c, 4d, 4e, 4f décrivent plus particulièrement
certains composants de la figure 3
Les figures la et Ib représentent une vue de principe d'un processeur
principal (151) et de la mémoire aléatoire (155). Est représenté un
processeur principal (151) qui loge un espace calcul (154) et un espace
mémoire dit registre (152) et une mémoire tampon (153) également appelée
mémoire cache. Le processeur principal (151) dialogue avec la mémoire à
accès aléatoire (155) qui comprend des barrettes (156) au moyen de connexions dites bus (157). La figure Ic représente l'organisation mémoire
sur l'espace mémoire de la mémoire à accès aléatoire (155). L'organisation
générale de la mémoire de la mémoire à accès aléatoire (155) est un espace
réel (1) qui contient des mémoires linéaires réelles (2), des mémoires
dynamiques réelles (3) et plusieurs espaces virtuels (4). Chaque espace
virtuel (4a, 4b, ..) correspondant à un processus ou une tâche du processeur.
Une application pouvant regrouper plusieurs processus. Les espaces
virtuels (4a, 4b, ..) comprenant un espace linéaire virtuel (5a) et un espace
dynamique virtuel (6a). Un pont (8a, 8b, ..) permet d'établir une jonction
entre une adresse virtuelle de l'espace virtuel (4a) et une adresse réelle dans
l'espace réel (1). La figure 2 représente une carte mère simplifiée selon un
aspect particulier de l'invention. Dans cet exemple deux processeurs (151a,
151b) sont montés sur la carte mère. Etant bien entendu que l'invention
fonctionne aussi avec un seul processeur principal (151) ou plus de deux
processeurs (151). Entre les processeurs (151a, 151b) et la mémoire à accès
aléatoire (155) est disposé un nouveau processeur (180) dit un processeur
interface de gestion d'accès mémoire (180). Le processeur interface de
gestion d'accès mémoire (180) est en interface de liaison par des bus (200)
avec le processeur principal (151) pour la gestion de la validation de
lecture, d'écriture et l'exécution d'une suite d'instructions dans la mémoire
à accès aléatoire (155) et par le bus (301) venant de la mémoire à accès aléatoire (155). Dans une option de réalisation, pour des questions de
compatibilité avec les systèmes de l'art antérieur, une liaison directe (100)
dit bus direct (100) entre le processeur (180) et la mémoire à accès aléatoire
(155) est conservée. Pour des questions de sécurité, l'activation du
processeur interface de gestion d'accès mémoire (180) désactivant
l'utilisation du bus direct (100). Un autre aspect de l'invention consiste en
l'apport d'une unité de stockage (190) dédiée au stockage d'informations
spécifiques traitées par le processeur interface de gestion d'accès mémoire
(180) dite unité de stockage dédiée interface (190). Cette unité de stockage
dédiée interface (190) étant en liaison avec le processeur interface de
gestion d'accès mémoire (180) et uniquement avec le processeur interface
de gestion d'accès mémoire (180) par un bus (302) dit bus impasse (302).
Bien évidemment, physiquement, pour des raisons de commodité de
fabrication de carte mère, cette unité de stockage dédiée interface (190)
peut se situer dans la mémoire à accès aléatoire. La spécificité restant que
cette unité de stockage dédiée interface (190) est positionnée au fond d'une
impasse électronique en unique liaison avec l'interface de gestion d'accès
mémoire (180). La figure 3 décrit une composition de processeur interface
de gestion d'accès mémoire (180) qui dans ce cas est composée de six
sections (Ix, 2x, 3x, 4x, 6x, 8x). Ces sections effectuent chacune un certain
type d'opération et mettent sous contrainte la lecture, l'écriture et l'exécution d'espaces mémoires ainsi que les demandes d'allocations
effectuées par le processeur principal (151). Entre chaque section des
informations sont échangées. Certaines informations suivent des chemins
internes (I) au processeur interface de gestion d'accès mémoire (180).
Certaines informations suivent des chemins externes (E), le processeur
interface de gestion d'accès mémoire (180) en liaison avec un autre
processeur ou une autre mémoire. Plus particulièrement, la section (Ix) est
une section dite neutre, la section (2x) est une section de gestion des tâches
du processeur, la section (3x) est une section de génération de nombres
aléatoires, la section (4x) est une section d'allocation réelle et virtuelle
linéaire, la section (6x) est une section d'allocation réelle ou virtuelle
dynamique, la section (8x) est une section de gestion d'accès (8x) du
processeur principal (151) vers la mémoire à accès aléatoire (155). La
figure 9a représente plus particulièrement la section neutre (Ix). La section
neutre (Ix) ou section dite sécurisée est une mémoire séparée qui permet de
stocker différentes données relatives aux tâches du processeur interface de
gestion d'accès mémoire (180) aux adresses linéaires créées et aux adresses
dynamiques créées. Pour ce faire, une entrée d'écriture (I 11) interne
permet à la section neutre (Ix) d'écrire dans l'unité de stockage dédiée
interface (190). Une entrée de demande de recherche (I 12) interne permet
à la zone neutre (Ix) de rechercher une information dans l'unité de stockage dédiée interface (190) par la sortie (E 14) qui passe dans le bus
impasse (301) et qui est restituée par l'entrée (E 15) qui passe dans le bus
impasse (301). Le résultat de la recherche est ensuite transmis par la sortie
de recherche (I 13). La figure 9b représente la section de gestion des tâches
du processeur (2x). Pour permettre au dispositif de mettre sous contrainte
les accès physiques à la mémoire à accès aléatoire (155), le processeur
principal (151) doit informer le processeur interface de gestion des accès
mémoire (180) de gestion d'accès qu'un espace virtualisé a été créé. Une
entrée externe (E 21) permet au processeur principal (151) d'informer en
permanence la section de gestion des tâches du processeur (2x) du
processeur interface de gestion des accès mémoire (180) de la position du
curseur instruction du ou des processeurs principaux. Une entrée (E 22)
permet de rendre une tâche réelle ou virtuelle du processeur(151) connue
par l'ensemble du processeur interface de gestion des accès mémoire (180)
par le biais de la sortie (I 26) vers la section neutre (Ix) par l'entrée
d'écriture (I 11). Une identification est donnée par le biais de la sortie (E
24). Une entrée (E 23) permet de détruire une tâche réelle ou virtuelle du
processeur. Une entrée (E 25) donne l'identifiant de tâche associée à la
destruction. De façon optionnelle, il est possible, lorsqu'une tâche est
détruite, de déclencher volontairement et automatiquement la destruction
des mémoires qui lui sont attachées. La destruction agit dans la section neutre (Ix) par l'entrée d'écriture (I 11). La figure 9c représente la section
de génération de nombres aléatoires (3x). Pour permettre à la puce de
détecter les tentatives de débordement de mémoire - de quelque type que
ce soit - et ainsi mettre en œuvre des actions de contre-mesures, il est
nécessaire de fournir des adresses totalement aléatoires afin de rendre des
adresses ou des nombres imprévisibles. Pour ce faire une des entrées (E 31)
de la section de génération de nombres aléatoires (3x) permet de demander
à celle-ci de générer un nombre aléatoire dans la sortie (E 32). Deux
entrées optionnelles (E 34) et (E 35) peuvent être utilisées pour délimiter
une fourchette où doit se situer le nombre aléatoire. Une entrée (E 33)
permet d'informer en permanence la section de génération de nombres
aléatoires (3x) de la position du curseur instruction du ou des processeurs
principaux. Une autre entrée (E 36) permet de demander à la section de
génération de nombres aléatoires (3x) de générer un nombre aléatoire qui
corresponde à une adresse valide par rapport à l'entrée (E 33). Elle est
associée à l'entrée (E 37) qui informe de la taille qui sera utilisée par le
bloc de la future adresse. Comme pour l'entrée (E 31), un nombre aléatoire
est généré en sortie (E 32). Pour le traitement de l'entrée (E 36) il est
nécessaire de prendre en compte les données des tâches stockées dans
l'unité de stockage dédiée interface (190) pour savoir si l'entrée (E 33)
vient d'un espace virtualisé ou réel et si l'adresse proposée pour la sortie (E 32) ne crée pas une collision avec une autre adresse. Tout ceci s'effectue
par le biais de la sortie (I 38) vers (I 12) et par le biais de l'entrée (I 39)
venant de (I 13). La figure 9d représente la section d'allocation (4x) réelle
et virtuelle linéaire. Une entrée (E 41) permet d'informer en permanence, la
section d'allocation (4x) de la position du curseur instruction du/des
processeurs principaux (151). Trois entrées (E 42) (E 43) (E 44) seront
utilisées en fonction des besoins des entrées de demandes. Une sortie (E
45) peut être utilisée en fonction des besoins d'une demande. Une entrée (E
46) permet de définir le type de demande à utiliser :
- 1 Demande d'allocation d'un bloc de mémoire linéaire réelle
aléatoirement positionnée dans la zone physique de la mémoire à accès
aléatoire. Cette demande est associée à une taille par l'entrée (E 43) et
un type de permission par l'entrée (E 44) qui peut être soit la lecture,
l'écriture ou l'exécution. Une demande de création d'adresse aléatoire
est faite à la section de génération de nombres aléatoires (3x) par la
sortie (I 47) vers (E 36). L'entrée (E 43) est ensuite retransmise vers (E
37) par la sortie (I 53) pour informer la section de génération de
nombres aléatoires (3x) de la taille demandée. Ensuite l'entrée (I 48)
venant de (E 32) informe de l'adresse aléatoire qui devra être utilisée.
La section neutre (Ix) est ensuite sollicitée par la sortie (I 51) vers (I
12) pour savoir par le biais de l'entrée (I 52) venant de (I 13) si l'entrée (E 41) a le droit d'allouer de la mémoire linéaire réelle (I 48). Si
l'entrée (E 41) n'a pas le droit d'allouer de la mémoire linéaire réelle (E
48) alors la sortie (E 50) est utilisée sinon si l'adresse linéaire (I 48)
plus la taille (E 43) ne crée pas de collision, celle-ci est allouée et
enregistrée avec sa taille et ses permissions dans la section neutre (Ix)
par la sortie (I 49) vers l'entrée (I 11) de la section neutre (Ix). La
section d'allocation (4x) retransmet l'entrée (E 48) vers la sortie (E 45).
- 2 Demande d'allocation d'une mémoire linéaire réelle avec une adresse
de base fixe dans la zone physique de la mémoire à accès aléatoire.
Cette demande est associée à une suggestion d'adresse mémoire par
l'entrée (E 42), une taille par l'entrée (E 43) et d'un type de permission
par l'entrée (E 44) qui peut être soit la lecture, l'écriture ou l'exécution.
Contrairement à une demande d'allocation d'une mémoire linéaire
réelle aléatoire, cette demande permet au processeur de spécifier
l'adresse de base (E 42) qu'il préfère utiliser. La section neutre (Ix) est
ensuite sollicitée par la sortie (I 51) vers (I 12) pour savoir par le biais
de l'entrée (I 52) venant de (I 13) si l'entrée (E 41) a le droit d'allouer
de la mémoire linéaire réelle (E 42). Si l'entrée (E 41) n'a pas le droit
d'allouer de la mémoire linéaire réelle (E 42) alors la sortie (E 50) est
utilisée sinon si l'adresse linéaire réelle (E 42) plus la taille (E 43) ne
crée pas de collision, la mémoire linéaire réelle est allouée et enregistrée avec sa taille et ses permissions dans la section neutre (Ix)
par la sortie (I 49) vers l'entrée (I 11), la section d'allocation réelle et
virtuelle linéaire (4x) retransmet l'entrée (E 42) vers la sortie (E 45)
- 3 Demande d'allocation d'une mémoire linéaire virtuelle aléatoirement
positionnée dans la zone physique de la mémoire à accès aléatoire.
Cette demande est associée à une taille par l'entrée (E 43) et d'un type
de permission par l'entrée (E 44) qui peut être soit la lecture, l'écriture
ou l'exécution. Une demande de création d'adresse aléatoire est faite à
la section de génération de nombres aléatoires (3x) par la sortie (I 47)
vers (E 36). L'entrée (E 43) est ensuite retransmise vers (E 37) par la
sortie (I 53) pour informer la section de génération de nombres
aléatoires (3x) de la taille demandée. . Ensuite l'entrée (I 48) venant de
(E 32) informe de l'adresse aléatoire qui devra être utilisée. La section
neutre (Ix) est ensuite sollicitée par la sortie (I 51) vers (I 12) pour
savoir par le biais de l'entrée (I 52) venant de (I 13) si l'entrée (E 41) a
le droit d'allouer de la mémoire linéaire virtuelle (I 48). Si l'entrée (E
41) n'a pas le droit d'allouer de la mémoire linéaire virtuelle (E 48)
alors la sortie (E 50) est utilisée sinon si l'adresse linéaire (48) plus la
taille (E 43) ne crée pas de collision, celle-ci est allouée et enregistrée
avec sa taille et ses permissions dans la section neutre (Ix) par la sortie (I 49) vers l'entrée (I 11) et la section d'allocation réelle et virtuelle
linéaire (4x) retransmet l'entrée (E 48) vers la sortie (E 45).
- 4 Demande de destruction d'une zone mémoire linéaire virtuelle ou
réelle. Cette demande est associée à une adresse par l'entrée (E 42). La
section neutre (Ix) est sollicitée par la sortie (I 51) vers (I 12) pour
savoir par le biais de l'entrée (I 52) venant de (I 13) si l'entrée (E 41) a
le droit de détruire l'adresse mémoire (E 42) et/ou si celle-ci est valide.
Si l'entrée (E 41) n'a pas le droit de détruire l'adresse mémoire (E 42)
et/ou si celle-ci n'est pas valide alors la sortie (E 50) est utilisée sinon
une information de destruction est envoyée à la section neutre (Ix) par
(I 49) vers (I 11).
5 Demande de changement de permission d'une zone réelle ou virtuelle.
Cette demande est associée à une adresse par l'entrée (E 42) et un type
de permission par l'entrée (E 44) qui peut être soit la lecture, l'écriture
ou l'exécution. La section neutre (Ix) est ensuite sollicitée par la sortie
(I 51) vers (I 12) pour savoir par le biais de l'entrée (I 52) venant de (I
13) si l'entrée (E 41) a le droit de changer les permissions de l'adresse
mémoire (E 42) et si celle-ci est valide. Si l'entrée (E 41) n'a pas le
droit de changer les permissions de l'adresse mémoire (E 42) et/ou si
celle-ci n'est pas valide alors la sortie (E 50) est utilisée sinon les changements de permission sont ensuite mis à jour dans la section
neutre (Ix) par (I 49) vers (I l l).Une demande optionnelle de
réallocation d'une zone déjà allouée peut aussi être demandée à la section
d'allocation (4x) réelle et virtuelle linéaire Une autre demande optionnelle
d'une mémoire linéaire réelle ou virtuelle miroir d'un autre espace linéaire
réel ou virtuel peut aussi être demandée à la section d'allocation (4x) réelle
et virtuelle linéaire.La figure 9e représente la section d'allocation (6x)
réelle et virtuelle dynamique. La mémoire dynamique également appelée
mémoire dans le tas fait aussi partie de la mémoire à accès aléatoire et a la
particularité d'être une zone mémoire accessible notamment par au
minimum deux procédures qui lui sont spécifiques - demande de mémoire
- demande de libération de mémoire. Cette mémoire dynamique est utilisée
notamment pour stocker des variables permanentes.Une entrée (E 61)
permet d'informer en permanence, la section d'allocation (6x), de la
position du curseur instruction du/des processeurs principaux..
L'entrée (E 63) est utilisée en fonction des besoins des entrées de
demandes. Une sortie (E 64) est utilisée en fonction des besoins d'une
demande.
Une entrée (E 62) permet de définir le type de demande à utiliser :
- 1 Demande d'allocation d'un bloc de mémoire dynamique réelle ou
virtuelle aléatoirement positionnée dans la zone physique de la mémoire à accès aléatoire. Cette demande est associée à une taille par
l'entrée (E 63). Une demande de création d'adresse aléatoire est faite à
la section de génération de nombres aléatoires (3x) par la sortie (I 68)
vers (E 36). L'entrée (E 63) est ensuite retransmise vers (E 37) par la
sortie (I 70) pour informer la section de génération de nombres
aléatoires (3x) de la taille demandée. Ensuite l'entrée (E 69) venant de
(E 32) informe de l'adresse aléatoire qui devra être utilisée. La section
neutre (Ix) est ensuite sollicitée par la sortie (I 66) vers (I 12) pour
savoir par le biais de l'entrée (I 67) venant de (I 13) si l'entrée (E 61) a
le droit d'allouer de la mémoire dynamique (E 69). Si l'entrée (E 61)
n'a pas le droit d'allouer de la mémoire linéaire virtuelle (E 69) alors la
sortie (E 50) est utilisée sinon si l'adresse linéaire en entrée (E 69) plus
la taille en entrée (E 63) ne crée pas de collision, celle-ci est allouée et
enregistrée avec sa taille et ses permissions dans la section neutre (Ix)
par la sortie (I 65) vers l'entrée (I 1 1) et la section d'allocation réelle et
virtuelle linéaire (4x) retransmet l'entrée (E 69) vers la sortie (E 64). Il
est à noter que le processeur interface de gestion d'accès mémoire
empêche de spécifier une adresse de base lors d'une demande
d'allocation d'un bloc de mémoire dynamique réelle ou virtuelle. Cette
démarche volontaire permet de conserver des adresses totalement
aléatoires donc imprévisibles et donc sécurisées. - 2 Demande de libération d'une mémoire réelle ou virtuelle. Cette
demande est associée à une adresse par l'entrée (E 63). La section
neutre (Ix) est sollicitée par la sortie (I 66) vers (1 12) pour savoir par le
biais de l'entrée (I 65) venant de (I 13) si l'entrée (E 61) a le droit de
détruire l'adresse mémoire en entrée (E 63) et si celle-ci est valide. Si
l'entrée (E 61) n'a pas le droit de détruire l'adresse mémoire (E 63)
et/ou si celle-ci n'est pas valide alors la sortie (E 50) est utilisée sinon
une information de destruction est envoyé à la section neutre (Ix) par (I
65) vers (I 11).
La figure 9f représente la section de gestion d'accès (8x).
Une entrée (E 81) permet d'informer en permanence, la section de gestion
d'accès (8x) du processeur principal (151) vers la mémoire à accès
aléatoire (155) de la position du curseur instruction du/des processeurs
principaux (151). Deux entrées (E 83) (E 84) seront utilisées en fonction
des besoins des entrées de demandes. Une sortie (E 88) peut être utilisée
pour indiquer au processeur principal si la copie ou une exécution est
autorisée. Une demande de vérification de copie est demandée par le
processeur principal (151) via (E 82). Cette demande est associée aux
entrées (E 83) et (E 84) qui désignent respectivement la source et la
destination. La section neutre (Ix) est sollicitée par la sortie (I 86) vers (I 12) pour savoir par le biais de l'entrée (I 87) venant de (I 13) si l'entrée (E
81) à le droit de copier ou pas (E 83) dans (E 84). Si l'entrée (E 81) n'a pas
le droit de copier (E83) dans (E 84) alors la sortie (E 85) est utilisée sinon
la sortie (E 88) informe le processeur principal que la copie est autorisée.
Une demande de vérification de saut ou d'exécution est demandée par le
processeur via l'entrée (E 82). Cette demande est associée à l'entrée (E 83)
qui désigne l'adresse que le processeur doit exécuter. La section neutre (Ix)
est sollicitée par la sortie (I 86) vers (I 12) pour savoir par le biais de
l'entrée (I 87) venant de (I 13) si l'entrée (E 81) a le droit d'exécuter ou
pas (E 83). Si l'entrée (E 81) n'a pas le droit d'exécuter (E 82) alors la
sortie (E 85) est utilisée sinon la sortie (E 88) informe au processeur
principal que l'exécution est autorisée.
L'invention concerne donc un gestionnaire de flux entre le
processeur principal (151) et la mémoire à accès aléatoire (155) caractérisé
en ce qu'il comprend un processeur interface de gestion d'accès mémoire
(180) positionné en interface entre le processeur principal (151) et la
mémoire à accès aléatoire (155), ce processeur interface de gestion d'accès
mémoire (180) sélectionnant les caractéristiques pertinentes de flux avec
lesquelles il alimente une unité de stockage dédiée interface (190), l'unité
de stockage dédiée interface (190) étant uniquement accessible par le
processeur interface de gestion d'accès mémoire (180) On voit bien que de nombreuses variantes éventuellement
susceptibles de se combiner peuvent ici être apportées sans jamais sortir du
cadre de l'invention tel qu'il est défini ci-après.
On voit également que l'invention est constituée de modules qui, pris
isolément ou par groupes, peuvent constituer une invention pour certains
d'entre eux et sont donc également protégés par le présent brevet.
Le mode de réalisation de cette invention est soit matériel soit logique.

Claims

REVENDICATIONS
1 - Gestionnaire de flux entre le processeur principal (151) et la mémoire à
accès aléatoire (155) caractérisé en ce qu'il comprend un processeur
interface de gestion d'accès mémoire (180) positionné en interface entre le
processeur principal (151) et la mémoire à accès aléatoire (155), ce
processeur interface de gestion d'accès mémoire (180) sélectionnant les
caractéristiques pertinentes de flux avec lesquelles il alimente une unité de
stockage dédiée interface (190), l'unité de stockage dédiée interface (190)
étant uniquement accessible par le processeur interface de gestion d'accès
mémoire (180), le mode de réalisation de cette invention pouvant être
soit matériel soit logique.
PCT/FR2006/002357 2005-10-28 2006-10-20 Gestionnaire specialise de flux entre le processeur et la memoire a acces aleatoire WO2007048907A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP06830976A EP1960889A1 (fr) 2005-10-28 2006-10-20 Gestionnaire specialise de flux entre le processeur et la memoire a acces aleatoire
US12/154,819 US20080301361A1 (en) 2005-10-28 2008-05-28 Dedicated flow manager between the processor and the random access memory

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR051143 2005-10-28
FR0511043A FR2892838B1 (fr) 2005-10-28 2005-10-28 Gestionnaire specialise de flux entre le processeur et la memoire a acces aleatoire

Publications (1)

Publication Number Publication Date
WO2007048907A1 true WO2007048907A1 (fr) 2007-05-03

Family

ID=37037032

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2006/002357 WO2007048907A1 (fr) 2005-10-28 2006-10-20 Gestionnaire specialise de flux entre le processeur et la memoire a acces aleatoire

Country Status (4)

Country Link
US (1) US20080301361A1 (fr)
EP (1) EP1960889A1 (fr)
FR (1) FR2892838B1 (fr)
WO (1) WO2007048907A1 (fr)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643740B1 (en) * 2001-07-30 2003-11-04 Lsi Logic Corporation Random replacement generator for a cache circuit

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4631659A (en) * 1984-03-08 1986-12-23 Texas Instruments Incorporated Memory interface with automatic delay state
US5274795A (en) * 1989-08-18 1993-12-28 Schlumberger Technology Corporation Peripheral I/O bus and programmable bus interface for computer data acquisition
SE0000533D0 (sv) * 2000-02-18 2000-02-18 Ericsson Telefon Ab L M Static cache
US7502928B2 (en) * 2004-11-12 2009-03-10 Sony Computer Entertainment Inc. Methods and apparatus for secure data processing and transmission
KR100745369B1 (ko) * 2005-12-22 2007-08-02 삼성전자주식회사 포트상태 시그날링 기능을 갖는 멀티패쓰 억세스블 반도체메모리 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643740B1 (en) * 2001-07-30 2003-11-04 Lsi Logic Corporation Random replacement generator for a cache circuit

Also Published As

Publication number Publication date
FR2892838B1 (fr) 2008-04-25
EP1960889A1 (fr) 2008-08-27
US20080301361A1 (en) 2008-12-04
FR2892838A1 (fr) 2007-05-04

Similar Documents

Publication Publication Date Title
JP4388916B2 (ja) 複数の順序ベクトルで複数のメモリ順序モデルを実施する方法及び装置
US9875193B2 (en) Cache structure for a computer system providing support for secure objects
US8706973B2 (en) Unbounded transactional memory system and method
JP6620595B2 (ja) 情報処理システム、情報処理装置、管理装置、処理プログラム、及び処理方法
JP2008515069A5 (fr)
US8281154B2 (en) Encrypting data in volatile memory
US8140825B2 (en) Systems and methods for selectively closing pages in a memory
CN104620254A (zh) 用于低开销的存储器重播保护的并行化的计数器攀树
CN104813295A (zh) 安全区域内的日志记录
JP3982687B2 (ja) 分離実行環境での複数の分離メモリへのアクセスの制御
US9330027B2 (en) Register access white listing
CN103678991A (zh) 多线程处理器中的全局寄存器保护
CN108369553A (zh) 用于范围保护的系统、方法和装置
US11281495B2 (en) Trusted memory zone
US20130262780A1 (en) Apparatus and Method for Fast Cache Shutdown
TW201935305A (zh) 用於後快取互鎖之系統和方法
TW201337572A (zh) 推測式快取修改技術
CN109791584A (zh) 用于标识和避免虚拟机监视程序和客户虚拟机之间的跟踪冲突的处理器扩展
CN110036377A (zh) 可缓存的但不可通过推测指令访问的内存类型
JP4559552B2 (ja) 集積回路を有するチップカード
WO2007048907A1 (fr) Gestionnaire specialise de flux entre le processeur et la memoire a acces aleatoire
JP2005512192A (ja) キャッシュメモリをメインメモリに同期させる方法
Zhang Temporal politics and injustice in mega urbanization: Lessons from Yangzhou, China
US7664916B2 (en) Global smartcard cache methods and apparatuses
JP2007213473A (ja) 不揮発性記憶装置を用いるデータ処理装置およびデータ処理方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2006830976

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2006830976

Country of ref document: EP