FR2892838A1 - 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
FR2892838A1
FR2892838A1 FR0511043A FR0511043A FR2892838A1 FR 2892838 A1 FR2892838 A1 FR 2892838A1 FR 0511043 A FR0511043 A FR 0511043A FR 0511043 A FR0511043 A FR 0511043A FR 2892838 A1 FR2892838 A1 FR 2892838A1
Authority
FR
France
Prior art keywords
memory
input
interface
processor
random 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
FR0511043A
Other languages
English (en)
Other versions
FR2892838B1 (fr
Inventor
Michael Vergoz
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to FR0511043A priority Critical patent/FR2892838B1/fr
Priority to EP06830976A priority patent/EP1960889A1/fr
Priority to PCT/FR2006/002357 priority patent/WO2007048907A1/fr
Publication of FR2892838A1 publication Critical patent/FR2892838A1/fr
Application granted granted Critical
Publication of FR2892838B1 publication Critical patent/FR2892838B1/fr
Priority to US12/154,819 priority patent/US20080301361A1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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

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

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 I linéaire, la mémoire virtuelle l dynamique, la mémoire virtuelle I 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 1 o 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 15 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 20 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. Il 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 l 0 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 15 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 20 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 1 o 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 t s 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. 20 s 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 lb représente une vue simplifiée d'une mémoire à accès aléatoire - La figure le 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 1 a et lb 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 le 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 (7). Chaque espace virtuel (7a, 7b, ..) correspondant à un processus ou une tâche du processeur. Une application pouvant regrouper plusieurs processus. Les espaces virtuels (7a, 7b, ..) 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 (7a) 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 (15la, 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 1s 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 20 à 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 (1 x, 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 (lx) 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 4a représente plus particulièrement la section neutre (lx). La section neutre (lx) ou section dite sécurisée est une mémoire séparée qui permet de ts 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 1 l) interne permet à la section neutre (lx) d'écrire dans l'unité de stockage dédiée interface (190). Une entrée de demande de recherche (I 12) interne permet 20 à la zone neutre (lx) 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 (1 13). La figure 4b 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 (lx) 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 (lx) par l'entrée d'écriture (I 11). La figure 4c représente la section lo 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 ouvre 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 Is 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) 20 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 (1 38) vers (1 12) et par le biais de l'entrée (I 39) venant de (1 13). La figure 4d 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 (1 x) est ensuite sollicitée par la sortie (I 51) vers (1 12) pour savoir par le biais de l'entrée (1 52) venant de (1 13) si l'entrée (E 41) a le droit d'allouer de la mémoire linéaire réelle (1 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 (lx) par la sortie (1 49) vers l'entrée (1 11) de la section neutre (lx). 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 (lx) est ensuite sollicitée par la sortie (1 51) vers (1 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 (lx) 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 (1 48) venant de (E 32) informe de l'adresse aléatoire qui devra être utilisée. La section neutre (lx) est ensuite sollicitée par la sortie (I 51) vers (1 12) pour savoir par le biais de l'entrée (I 52) venant de (I 13) si l'entrée (E 41) a ls 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 (lx) par la sortie 20 (1 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 (lx) est sollicitée par la sortie (I 51) vers (1 12) pour savoir par le biais de l'entrée (1 52) venant de (1 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 (lx) 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 (lx) 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 (1 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 (lx) par (I 49) vers (I 11).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 4e 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 duldes 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 15 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 20 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 (lx) est ensuite sollicitée par la sortie (I 66) vers (I 12) pour savoir par le biais de l'entrée (1 67) venant de (1 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 (lx) par la sortie (I 65) vers l'entrée (I 11) 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 (lx) est sollicitée par la sortie (I 66) vers (I 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 (lx) par (I 65) vers (I 11).
La figure 4f 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 (lx) est sollicitée par la sortie (I 86) vers (I 12) pour savoir par le biais de l'entrée (1 87) venant de (1 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 (lx) est sollicitée par la sortie (I 86) vers (1 12) pour savoir par le biais de l'entrée (I 87) venant de (1 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 (1)

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 et traite 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).
FR0511043A 2005-10-28 2005-10-28 Gestionnaire specialise de flux entre le processeur et la memoire a acces aleatoire Expired - Fee Related FR2892838B1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
FR0511043A FR2892838B1 (fr) 2005-10-28 2005-10-28 Gestionnaire specialise de flux entre le processeur et la memoire a acces aleatoire
EP06830976A EP1960889A1 (fr) 2005-10-28 2006-10-20 Gestionnaire specialise de flux entre le processeur et la memoire a acces aleatoire
PCT/FR2006/002357 WO2007048907A1 (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 (1)

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

Publications (2)

Publication Number Publication Date
FR2892838A1 true FR2892838A1 (fr) 2007-05-04
FR2892838B1 FR2892838B1 (fr) 2008-04-25

Family

ID=37037032

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0511043A Expired - Fee Related FR2892838B1 (fr) 2005-10-28 2005-10-28 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
WO2007048907A1 (fr) 2007-05-03
EP1960889A1 (fr) 2008-08-27
US20080301361A1 (en) 2008-12-04

Similar Documents

Publication Publication Date Title
TWI262397B (en) Method and multiprocessor computer apparatus for controlling access to a shared resource using a task synchronization mechanism
CN110245001B (zh) 数据隔离方法及装置、电子设备
US8706973B2 (en) Unbounded transactional memory system and method
JP6620595B2 (ja) 情報処理システム、情報処理装置、管理装置、処理プログラム、及び処理方法
KR101658070B1 (ko) 연속 월드 스위치 보안을 갖는 데이터 센터
JP5085180B2 (ja) 情報処理装置およびアクセス制御方法
CN103927277A (zh) Cpu和gpu共享片上高速缓存的方法及装置
CN101859287B (zh) 微处理器、存储器子系统以及快取数据的方法
JP2008515069A5 (fr)
US8140825B2 (en) Systems and methods for selectively closing pages in a memory
US9817754B2 (en) Flash memory management
CN108369553A (zh) 用于范围保护的系统、方法和装置
TW201935305A (zh) 用於後快取互鎖之系統和方法
FR2814555A1 (fr) Systeme et procede de gestion memoire de coherence de donnees et reseau multiprocesseur associe
JP5338435B2 (ja) 情報処理プログラム、情報処理装置および情報処理方法
KR20140139610A (ko) 고속 캐시를 셧다운시키는 장치 및 방법
CN109791584A (zh) 用于标识和避免虚拟机监视程序和客户虚拟机之间的跟踪冲突的处理器扩展
US20190129754A1 (en) Trusted memory zone
CN106030602B (zh) 基于虚拟化的块内工作负荷隔离
US10802971B2 (en) Cache memory transaction shielding via prefetch suppression
US9477518B1 (en) Method to automatically redirect SRB routines to a zIIP eligible enclave
FR2892838A1 (fr) Gestionnaire specialise de flux entre le processeur et la memoire a acces aleatoire
JP2018029267A (ja) プログラマブルロジック装置、情報処理装置、処理方法、及び処理プログラム
US8838902B2 (en) Cache layer optimizations for virtualized environments
US11307999B2 (en) Data cache segregation for spectre mitigation

Legal Events

Date Code Title Description
TP Transmission of property
ST Notification of lapse

Effective date: 20100630

CA Change of address

Effective date: 20130329