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.