FR2497374A1 - Machine informatique pour traitement multitache - Google Patents
Machine informatique pour traitement multitache Download PDFInfo
- Publication number
- FR2497374A1 FR2497374A1 FR8124447A FR8124447A FR2497374A1 FR 2497374 A1 FR2497374 A1 FR 2497374A1 FR 8124447 A FR8124447 A FR 8124447A FR 8124447 A FR8124447 A FR 8124447A FR 2497374 A1 FR2497374 A1 FR 2497374A1
- Authority
- FR
- France
- Prior art keywords
- memory
- signals
- address
- translation
- page
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
UNE MACHINE INFORMATIQUE METTANT EN OEUVRE LE PRINCIPE DE MEMOIRE VIRTUELLE COMPORTE NOTAMMENT UN PROCESSEUR CENTRAL 12, UNE MEMOIRE DE CONTROLE 14, UNE MEMOIRE CENTRALE RAPIDE 16 ET UNE MEMOIRE AUXILIAIRE LENTE 20 QUI COMMUNIQUENT PAR UN BUS 15. UNE OPERATION D'ACCES EN MEMOIRE NECESSITE DE TRADUIRE UNE ADRESSE VIRTUELLE EN UNE ADRESSE PHYSIQUE. LE PROCESSEUR CENTRAL COMPORTE EN PARTICULIER UNE MEMOIRE VIVE DE TRADUCTION 42 QUI ENREGISTRE DES ADRESSES TRADUITES PRECEDEMMENT, CE QUI EVITE D'EFFECTUER LA TRADUCTION A CHAQUE ACCES EN MEMOIRE.
Description
12 4 9 j37 4
MACHINE INFORMATIQUE POUR TRAITEMENT MULTITACHE
La présente invention concerne la gestion de
mémoire dans les machines informatiques.
L'invention porte plus particulièrement sur des perfectionnements à la gestion de mémoire dans les machines
informatiques pouvant travailler avec une mémoire virtuelle.
De façon générale, dans les structures physiques de mémoire ou d'enregistrement destinées à être utilisées dans les machines informatiques, le coût de la mémoire (par élément de mémoire) varie en fonction inverse de la vitesse à laquelle on peut accéder à un élément de mémoire. Les mémoires à accès très rapide sont plus coûteuses que les mémoires qui nécessitent un temps d'accès plus long. Il en
résulte que, dans le but de concevoir des machines informa-
tiques économiques, de nombreuses machines comportent une hiérarchie de mémoires, dans laquelle certaines mémoires sont lentes mais ont une grande capacité, tandis que d'autres sont rapides mais ont une faible capacité. Pendant le fonctionnement de la machine informatique, les contenus des mémoires sont transférés ou copiés entre les mémoires de
la manière nécessaire.
En particulier, les machines informatiques possè-
dent généralement une "mémoire centrale" qui se trouve à l'intérieur de la machine et qui est directement accessible par le processeur central de la machine. Cette mémoire est constituée de façon habituelle par des mémoires vives dynamiques. De plus, ces machines possèdent généralement une
"mémoire auxiliaire" (ou "fichiers"), établie dans des uni-
tés périphériques telles que des bandes ou des disques magnétiques. Le temps d'accès à la mémoire centrale est de façon représentative de 500 ns, tandis que le temps d'accès à un disque magnétique est de façon représentative de ms.
Enfin, ces machines informatiques possèdent géné-
ralement une mémoire de contrôle, qui peut être distincte de la mémoire centrale ou peut être une partie de la mémoire centrale protégée contre l'écriture, et une antémémoire très rapide, qui contient un sous-ensemble du contenu de la
mémoire centrale, ce sous-ensemble variant au cours du temps.
L'antémémoire est généralement située dans le processeur cen-
tral. Si les données (qui peuvent comprendre le macro- programme) qui sont utilisées par la machine informatique nécessitent une capacité de mémoire supérieure à celle qui
est disponible dans la mémoire centrale, la mémoire auxiliai-
re offre une capacité de mémoire supplémentaire. Avant le
développement des mémoires virtuelles, le programmeur divi-
sait les données en parties, appelées segments de recouvre-
ment, chacune de ces parties pouvant tenir dans la mémoire centrale. Les segments de recouvrement étaient amenés dans
la mémoire centrale, un seul à la fois, pendant le fonction-
nement de la machine; et une partie des données amenée
ultérieurement en mémoire centrale était écrite sur la par-
tie amenée précédemment dans la mémoire centrale. Le pro-
grammeur avait la responsabilité de la division de ses données en segments de recouvrement, de la détermination de la position à laquelle chaque segment de recouvrement
devait être conservé en mémoire auxiliaire, de la détermina-
tion de la nécessité d'amener chaque nouveau segment de recouvrement en mémoire centrale, de l'accomplissement du
transfert des segments de recouvrement entre la mémoire cen-
trale et la mémoire auxiliaire et, de façon générale, de la gestion de l'ensemble du processus lié aux segments de recouvrement, sans aucune aide de la part de la machine informatique. Le développement de la mémoire virtuelle a permis de faire en sorte que cette gestion soit accomplie par la
machine informatique, sans que le programmeur doive comman-
der le processus, ou m8me en avoir connaissance. Conformé-
ment à cette technique, on définit un grand espace d'adresse,
adressable par le processeur central de la machine informati-
que, et appelé l'espace d'adresse virtuelle. L'espace
d'adresse virtuelle peut être beaucoup plus grand que l'espa-
ce de mémoire physique disponible dans la mémoire centrale.
Les données sont enregistrées dans la mémoire auxiliaire en blocs de taille généralement égale, appelés pages, et elles
sont transférées une page à la fois vers la mémoire centra-
le. La mémoire centrale est divisée en blocs appelés cadres de page, de même taille que les pages. Une page de données est enregistrée dans un cadre de page, en étant alignée
avec son début et sa fin.
Pendant le fonctionnement de la machine informati-
que, lorsque la nécessité d'un accès en mémoire se présente, le processeur central génère des signaux représentatifs d'une adresse de mémoire virtuelle. L'adresse virtuelle comprend un numéro de page qui désigne la page contenant
l'article nécessaire, et un paramètre d'adresse supplémen-
taire, appelé un décalage, qui désigne l'emplacement de l'article dans la page. Pour accomplir l'accès en mémoire, le numéro de page de l'adresse virtuelle doit être traduit en un numéro de cadre de page d'adresse physique, concernant l'espace physique dans la mémoire centrale. Si les données sont déjà dans la mémoire centrale, elles sont prélevées à l'emplacement physique et le traitement se poursuit. Il
peut y avoir une étape supplémentaire consistant à détermi-
ner si les données sont dans l'antémémoire rapide et, dans l'affirmative, à prélever directement les données dans l'antémémoire; cependant, l'invention ne concerne pas cette étape supplémentaire. Si les données ne sont pas dans la mémoire centrale, la machine informatique doit prélever dans la mémoire auxiliaire la page de données contenant l'article nécessaire et la placer dans la mémoire centrale, après quoi
l'article nécessaire est prélevé dans cette page et le trai-
tement se poursuit.
Une telle structure présente un intérêt pratique
par le fait que, dans la majorité des programmes, l'enchaî-
nement logique du traitement est tel qu'il n'est pas néces-
saire que le programme complet réside en permanence en mémoi-
re centrale pendant l'exécution du programme. Par exemple, les sousprogrammes d'initialisation et de terminaison ne sont exécutés qu'une seule fois au cours du déroulement d'un programme. Toute procédure de traitement d'exception, comme
un sous-programme d'erreur, n'est nécessaire que si la con-
dition d'exception apparaît. En d'autres termes, à r'impcrte quel moment donné au cours de l'exécution du programme, il
n'est nécessaire d'accéder qu'à un sous-ensemble du program-
me complet, et les éléments de ce sous-ensemble sont généra-
lement proches les uns des autres. On appelle quelquefois
ceci la caractéristique de "proximité de référence" des pro-
grammes. L'emploi d'une mémoire virtuelle offre de grands
avantages dans la gestion de la mémoire, en libérant le pro-
grammeur de la gestion des segments de recouvrement et des préoccupations concernant le dépassement de la capacité de mémoire centrale disponible de la machine informatique. En outre, une machine utilisant une mémoire virtuelle peut
fonctionner avec une capacité relativement grande de mémoi-
re auxiliaire (lente) relativement économique, et une capa-
cité relativement faible de mémoire centrale (rapide) rela-
tivement coûteuse, ce qui réduit le coût de la machine.
Cependant, l'utilisation de la mémoire virtuelle
nécessite qu'un certain temps de fonctionnement soit consa-
cré à l'exécution d'instructions appropriées pour déterminer
l'adresse physique à partir de l'adresse virtuelle. La tra-
duction de l'adresse virtuelle en adresse physique nécessite d'accéder à une table de pages, identifiée par un numéro de
segment et enregistrée dans la mémoire centrale, qui con-
tient une information concernant l'emplacement en mémoire centrale de toutes les pages du segment considéré de l'espace d'adresse virtuelle qui est établi au moment considéré. La table de pages est adressée par le numéro de page virtuelle, de façon à localiser la rubrique désirée dans la table de pages. Chaque rubrique de la table de pages comprend un bit de défaut qui indique si la page a été amenée ou non en mémoire centrale. En outre, la rubrique de la table de pages comprend des bits de protection et le numéro de cadre de page (concernant la mémoire centrale physique) o se trouve
la page, si elle est dans la mémoire centrale.
Le processus de traduction fait donc intervenir les opérations suivantes, qui doivent être accomplies par le processeur (exécutant un microprogramme) ou par un matériel spécialisé faisant partie du processeur: application du
numéro de segment pour localiser la table de pages, applica-
tion du numéro de page virtuelle pour adresser une rubrique dans la table de pages, obtention de la rubrique de la table de pages, contr8le de l'état du bit de défaut, et (si la page n'est pas en mémoire centrale) combinaison du numéro de cadre de page avec le décalage provenant de l'adresse virtuelle
pour former l'adresse physique.
Le processus de traduction prend donc un temps fini, chaque fois qu'il est accompli. Si le processus doit être accompli chaque fois qu'un accès en mémoire a lieu, le fonctionnement de la mémoire de la machine informatique sera notablement ralenti. Il serait donc souhaitable de réduire
le temps de traduction nécessaire.
Une technique qui a été proposée pour résoudre ce problème consiste à employer un petit registre tampon, hors du processeur central (dans le contrôleur de mémoire), pour enregistrer des signaux représentatifs d'adresses traduites récemment. Ce tampon a été conçu, par exemple, sous la forme d'un ensemble de huit à trente-deux registres associatifs, contenant chacun deux-zones. La première zone contient des signaux représentatifs du numéro de page d'une adresse de
mémoire virtuelle traduite récemment. La seconde zone con-
tient des signaux représentatifs du cadre de page courant qui est affecté à la page de mémoire virtuelle. Chaque fois qu'une adresse de mémoire virtuelle est traduite pendant l'exécution d'une instruction, des signaux représentatifs du numéro de page de l'adresse de mémoire virtuelle et du numéro de cadre de page résultant de l'adresse de mémoire réelle sont placés dans ce tampon. On utilise un critère "information la moins récemment utilisée" pour sélectionner le registre dans lequel la nouvelle traduction est placée
(en remplaçant une traduction plus ancienne).
Lorsqu'un accès en mémoire, spécifié par une adresse virtuelle, est exigé au cours du fonctionnement de la machine informatique, les huit registres sont explorés simultanément (en parallèle). Les signaux représentatifs du numéro de page virtuelle dans chaque registre sont comparés avec les signaux représentatifs du numéro de page virtuelle
de l'adresse virtuelle de l'opération de mémoire courante.
Si on trouve une correspondance, les signaux de numéro de cadre de page sont prélevés dans ce registre et ils sont combinés avec les signaux de décalage pour former l'adresse
physique. Si on ne trouve pas de correspondance, on accom-
plit la procédure de traduction normale.
Cette structure présente plusieurs inconvénients.
Premièrement, si l'exploration en parallèle (adressa-
ge associatif) est rapide, les circuits destinés à cette exploration sont coûteux. En outre, les circuits d'adressage sont physiquement complexes et leur complexité augmente très rapidement lorsqu'on augmente le nombre de registres à explorer. Il existe donc en pratique une limitation sévère de la taille possible du tampon, imposée à la fois par le coût et la complexité. Il en résulte qu'on ne peut conserver
qu'un sous-ensemble très limité d'adresses traduites récem-
ment.
En outre, dans une machine informatique fonction-
nant en traitement multitâche, le contenu du tampon complet (huit à trente-deux registres) doit être effacé lorsque la machine informatique passe d'une tâche à une autre. Ceci peut se produire assez fréquemment. Cette exigence a deux conséquences désavantageuses. Premièrement, un certain temps
est nécessaire pour effacer le contenu du tampon. Seconde-
mentune fois que le contenu du tampon a été effacé, on ne
dispose d'aucune adresse traduite, ce qui fait que pour cha-
que accès en mémoire ultérieur, le tampon doit être exploré, puis la nouvelle adresse traduite doit être écrite dans le tampon, jusqu'à ce que ce dernier soit rempli. Ceci prend
encore un temps supplémentaire.
Un but de l'invention est donc de réaliser des
moyens qui améliorent le rendement et la vitesse de fonc-
tionnement d'une machine informatique utilisant une mémoire virtuelle, en réduisant le temps total nécessaire pour la
traduction d'adresse.
L'invention est mise en oeuvre dans une machine
informatique fonctionnant en traitement multitâche qui uti-
249737Y
lise une mémoire virtuelle comprenant un certain nombre de segments. La machine informatique comporte un processeur central qui comprend un verrouillage (réseau de bascules en général), un
registre d'adresse de mémoire et un registre de données de mémoire.
Une mémoire de contrôle est connectée au processeur central. Un bus connecté au processeur central comprend des lignes de signaux d'adresse recevant des signaux d'adresse à partir du registre d'adresse de mémoire et des lignes de signaux de données recevant: des signaux de données à partir du-registre de données de mémoire et appliquant des signaux de données au registre de données de mémoire. La machine informatique comporte une mémoire physique capable d'enregistrer des
signaux de données représentatifs de données et de macro-
instructions.
La mémoire physique comprend une mémoire auxiliai-
re à accès relativement lent, connectée au bus, et définis-
sant un ensemble de pages de taille (nombre de multiplets) uniforme, chaque page contenant un ensemble de signaux de données, et une mémoire centrale à accès relativement rapide qui est connectée au bus de façon à recevoir et à fournir
des signaux de données et à recevoir des signaux d'adresse.
La mémoire centrale définit un ensemble de cadres de page, et chacun d'eux peut contenir le même nombre de signaux de données qu'une page de la mémoire auxiliaire, et il peut
être adressé par des signaux d'adresse physique qui com-
prennent des signaux de numéro de cadre de page et des signaux de décalage. Le processeur central, la mémoire de contrôle et le bus constituent conjointement des moyens capables de commander le transfert d'un nombre de signaux de données de la mémoire auxiliaire correspondant à une page, vers des cadres de page particuliers de la mémoire
centrale qui sont adressés par les signaux d'adresse physi-
que, et inversement.
La machine informatique est conçue de façon à travailler sous la dépendance de certains signaux de données
représentatifs de macro-instructions prévues dans la mémoi-
re physique; le processeur central et la mémoire de con-
trôle réagissent conjointement à des signaux représentatifs
2497D74
de macro-instructions particulières d'accès en mémoire pour la lecture et l'écriture, afin de générer des signaux d'adresse virtuelle qui comprennent des signaux de numéro de segment, des signaux de numéro de page et des signaux de décalage, et afin d'appliquer les signaux d'adresse virtuel-
le au réseau de bascules. Le processeur central et la mémoi-
re de contrôle réagissent en outre aux macro-instructions d'accès en mémoire en effectuant une traduction des signaux
d'adresse virtuelle en signaux d'adresse physique ccrrespon-
dants. La traduction comprend l'application des signaux de numéro de segment et de numéro de page à la mémoire centrale,
pour adresser des parties particulières de la mémoire centra-
le contenant des signaux de numéro de cadre de page, et la transmission des signaux de numéro de cadre de page vers le
registre d'adresse de mémoire, à partir de la mémoire centra-
le, et en compagnie de signaux de décalage provenant du
réseau de bascules.
Le processeur central et la mémoire de contrôle réagissent en outre aux macro-instructions d'accès en mémoire pour la lecture en appliquant au registre de données de mémoire les signaux de données qui proviennent des cadres de page adressés dans la mémoire centrale, et ils réagissent aux macro-instructions d'accès en mémoire pour l'écriture en
appliquant aux cadres de page adressés de la mémoire centra-
le les signaux qui proviennent du registre de données de mémoire.
Confornméent à un aspect de l'invention, la machine informa-
tique comporte une mémoire vive indexée (qu'on appellera
ci-après mémoire vive de traduction) contenue dans le pro-
cesseur central, dont les moyens d'indexation sont connectés à certaines des sorties du réseau de bascules. Il existe en
outre des moyens de multiplexage dont les sorties sont con-
nectées aux entrées du registre d'adresse de mémoire et qui comportent deux ensembles d'entrées. Les sorties de la mémoire vive sont connectées au premier ensemble d'entrées et les sorties du réseau de bascules sont connectées au
second ensemble d'entrées. Le processeur central et la mémoi-
re de contrôle réagissent initialement de façon conjointe à
24973.74
une macro-instruction d'accès en mémoire en appliquant aux
moyens d'indexation de la mémoire vive des signaux représen-
tatifs du numéro de page d'adresse virtuelle, provenant du réseau de bascules, pour faire apparaître sur les sorties de cette mémoire l'ensemble de signaux qui sont enregistrés à la position indexée, comprenant des signaux représentatifs du numéro de cadre de page et un signal de défaut ayant un
état parmi deux.
Les moyens de multiplexage réagissent à un premier état du signal de défaut en transmettant les signaux de numéro de cadre de page indexé, de la mémoire vive vers le registre d'adresse de mémoire, pour adresser la mémoire centrale, et ils réagissent à un second état du bit de
défaut en transmettant vers-le registre d'adresse de mémoi-
re, pour traduction, les signaux d'adresse virtuelle qui
sont fournis par le réseau de bascules. Le processeur cen-
tral et la mémoire de contr8le réagissent en outre au second état du signal de défaut en effectuant la traduction des signaux d'adresse virtuelle et en appliquant à la position indexée dans la mémoire vive des signaux représentatifs du numéro de cadre de page traduit, en compagnie d'un signal de
défaut ayant le premier état.
Selon un autre aspect de l'invention, le proces-
seur central de la machine informatique comporte en outre un registre d'état qui comprend plusieurs bits d'état pouvant être positionnés, pour indiquer l'état de fonctionnement de la machine informatique, et des moyens de mémorisation de signal indexés qui comportent une table de référence et de changement, fournissant un bit de référence qui peut être positionné et un bit de changement qui peut être positionné, pour chaque cadre de page dans la mémoire centrale. La
table de référence et de changement est connectée à la sor-
tie de la mémoire vive indexée, de façon à indexer cette table par le numéro de cadre de page. Le processeur central et la mémoire de contrôle réagissent conjointement à une macro-instruction d'accès en mémoire en positionnant le bit de référence indexé, et à une macro-instruction d'accès en mémoire pour l'écriture en positionnant le bit de changement indexé. La sortie de la table de référence et de changement est connectée au registre d'état pour positionner des bits d'état particuliers sous la dépendance de l'état des bits de
référence et de changement indexés.
Selon un autre aspect encore de l'invention, la
machine informatique comprend en outre un bit de surveillan-
ce dans la mémoire centrale, associé à chaque segment de mémoire virtuelle, et ayant un état parmi deux; et des moyens de mémorisation de signal sous la forme d'une pile de mémoire, dans le processeur central. Le processeur central et la mémoire de contrôle réagissent conjointement au second état du signal de défaut et aux signaux de numéro de segment
d'adresse virtuelle, pendant la traduction de l'adresse vir-
tuelle, en adressant le bit de surveillance pour le segment considéré et en testant son état. Le processeur central et la mémoire de contrôle réagissent. à un premier état du bit de surveillance en appliquant les signaux de numéro de page d'adresse virtuelle aux moyens de mémorisation de signal
sous forme de pile de mémoire, en vue de leur enregistrement.
Le processeur central et la mémoire de contr6le
réagissent à un changement de tâche pendant le fonctionne-
ment de la machine en prélevant les signaux de numéro de page d'adresse virtuelle enregistrés, dans les moyens de mémorisation de signal sous forme de pile de mémoire, et en appliquant les signaux enregistrés de façon à indexer la mémoire vive pour positionner le signal de défaut dans son
second état.
L'invention sera mieux comprise à la lecture de
la description qui va suivre d'un mode de réalisation, donné
à titre non limitatif. La suite de la description se réfère
aux dessins annexés sur lesquels': La figure 1 est une représentation schématique d'une machine informatique dans laquelle l'invention est incorporée; La figure 2 est un schéma synoptique simplifié du processeur central de la machine informatique de la figure 1; La figure 3 est une représentation matérialisant
249737 '
l'espace d'adresse virtuelle de la machine informatique de la figure 1; La figure 4 montre le format d'une rubrique dans la mémoire vive de traduction de l'invention; La figure 5 montre le format d'une adresse virtuelle; La figure 6 montre le format d'une rubrique de la table de pages;
La figure 7 montre le format d'un registre de dé-
finition de segment;
La figure 8 montre le format d'une adresse physi-
que; La figure 9 représente schématiquement la mémoire de contrôle et ses sorties; La figure 10 représente des circuits destinés à élaborer des signaux de commande particuliers à partir de certaines sorties de la mémoire de contrôle; La figure 11 représente en détail les circuits
du réseau de bascules d'adresse de la mémoire vive de tra-
duction; La figure 12 représente en détail les circuits de la mémoire vive de traduction; Les figures 13, 14 et 15 représentent des circuits destinés à élaborer des signaux de commande particuliers; La figure 16 représente en détail les circuits du multiplexeur de mémoire vive de traduction; La figure 17 représente en détail les circuits de la table de référence/changement; La figure 18 montre les signaux d'horloge qu'on
utilise pour commander les opérations de la machine infor-
matique;
La figure 19 montre en détail des éléments du pro-
cesseur central liés à la fonction de surveillance; La figure 20 est une représentation montrant le principe du processus d'effacement de rubriquessurveillées dans la mémoire vive de traduction; La figure 21 représente en détail les circuits du multiplexeur de registre d'adresse de mémoire; et
24973 7'T
Les figures 22 et 23 montrent les caractéristiques temporelles de l'accès à la mémoire vive de traduction et du chargement d'une rubrique dans la mémoire vive de traduction,
conformément à l'invention.
On va maintenant se référer aux dessins, et en particulier à la figure 1, qui représente schématiquement une machine informatique employant une mémoire virtuelle. La machine informatique 10 comprend un processeur central 12
qui accède directement à une mémoire de contrôle 14, conte-
nant des groupes de signaux de commande destinés à commander le fonctionnement du matériel de la machine informatique. Le processeur accède à des groupes particuliers de signaux de commande sous la dépendance d'instructions introduites par des dispositifs périphériques, ou sous la dépendance de conditions de fonctionnement courantes dans le processeur
central, tout ceci s'effectuant d'une manière bien connue.
La machine informatique 10 comprend en outre une mémoire centrale 16 et un contrôleur de mémoire 18, qui ont
pour fonction de répartir l'accès en mémoire entre le pro-
cesseur central et les dispositifs périphériques. Parmi les dispositifs périphériques figurent une mémoire auxiliaire , et d'autres dispositifs tels qu'un clavier, un visuel
à écran cathodique, une imprimante, une interface de télé-
communications, etc. Le processeur central adresse la mémoi-
re centrale 16 par l'intermédiaire d'un bus 15 (comprenant des lignes de données et d'adresse) et du contrôleur de
mémoire 18.
La mémoire centrale 16 a une capacité de 8 méga-
multiplets (8 388 608 multiplets), avec une taille de mot de 32 bits (quatre multiplets). La mémoire centrale 16 est adressée par 24 lignes, ce qui donne une adresse physique à 24 bits. On considère que le contenu de la mémoire centrale 16 est divisé en cadres de page. La taille d'un cadre de page est de 2 K multiplets. En considérant la figure 8, on voit que le format d'adresse physique à 24 bits comprend un numéro de cadre de page à 13 bits et un décalage à 11 bits qui spécifie un multiplet dans le cadre de page. Le bit supplémentaire (de rang supérieur) dans le numéro de cadre de page permet une extension future de la mémoire par un facteur de deux.) On considère que le contenu des fichiers ou de la mémoire auxiliaire 20 est divisé en pages, chaque page ayant la même taille qu'un cadre de page dans la mémoire centrale 16, c'est-à-dire 2 K multiplets. Le transfert des données entre la mémoire auxiliaire et la mémoire centrale s'effectuepar blocs, soit plus précisément par pages. La manière particulière selon laquelle ceci est effectué ne
fait pas partie de l'invention.
On considérera ensuite la figure 2, sur laquelle certains éléments du processeur central 12 qui se rapportent
à l'invention sont représentés sous forme de schéma synopti-
que de façon plus détaillée que sur la figure 1. En parti-
culier, le processeur central 12 comporte une unité arith-
métique 22 de conception connue, qui comprend deux bus d'entrée à 32 bits, le bus A, 21, et le bus B, 23, et dont
l'information de sortie est appliquée à un bus de destina-
tion à 32 bits, le bus C, 24. Entre autres destinations, le bus C, 24, attaque:une pile 30 qui comprend 256 registres à 32 bits; un multiplexeur bus C/mémoire 32; un réseau de bascules d'adresse de mémoire vive de traduction 38; et un registre d'adresse virtuelle à 24 bits, 26. Une partie de
la pile 30 constitue ce qu'on appelle la zone de surveil-
lance 34, et elle comprend des registres contenant 128 mots ue 32 bits chacun. Comme il apparaîtra par la suite, on utilise la zone desurveillance 34 pour conserver une liste d'adresses virtuelles traduites récemment. La fonction de
la zone de surveillance apparaîtra par la suite, en particu-
lier en relation avec la description de la figure 19.
On utilise une autre partie 36 de la pile 30 pour enregistrer un ensemble de signaux qu'on appelle une table de descripteurs de segments. Il y a huit descripteurs de segments dans la table, soit un pour chaque segment de l'espace d'adresse virtuelle qui est établi par le matériel à un moment quelconque. La figure 7 montre le format d'un descripteur de segment et on expliquera son utilisation en
relation avec la description de la figure 19.
Le multiplexeur bus C/mémoire 32 est commuté par des signaux de commande de mémoire qui n'entrent pas dans le cadre de l'invention, de façon à transmettre soit les données
provenant de la mémoire centrale 16, soit les données prove-
nant du bus C, 24, et l'information de sortie du multiple- xeur 32 est appliquée à un ensemble de cinq registres de données de mémoire (0 - 4) 40. L'information de sortie des registres de données de mémoire 40 est transmise soit vers un tampon de données 44, et ensuite vers la mémoire centrale
16, soit vers un ensemble de registres de travail et un cir-
cuit logique de décalage et de multiplication qui ne sont pas représentés en détail du fait que leur configuration
particulière ne fait pas partie de l'invention.
Le registre d'état à 32 bits, 46, n'est pas con-
necté aux bus A, B ou C; ses bits sont positionnés et
détectés individuellement par le matériel du processeur cen-
tral 12 pendant le fonctionnement. Les bits d'état particu-
liers qui interviennent dans l'invention sont les bits "M2H" et "M2B", qui sont positionnés par le circuit de la figure 17, d'une manière qu'on décrira, et le bit "ETAT" qui est appliqué à l'entrée du circuit de la figure 14. Le bit "ETAT" indique soit "état système" (ETAT - 0), soit "état utilisateur" (ETAT, 1). Le système d'exploitation
fonctionne dans l'état système, tandis que tous les program-
mes sont exécutés dans l'état utilisateur. Certaines fonc-
tions de la machine peuvent ne pas âtre disponibles dans un état ou l'autre. Les détails de ceci ne font pas partie de l'invention.
La mémoire centrale 16 est adressée par un ensem-
b le de trois registres d'adresse de meénire (nupérotés de MAR - O à
MAR - 2) qui sont désignés globalement par la référence 28.
Lesregistres d'adresse de mémoire 28 sont chargés à partir d'un multiplexeur de registres d'adresse de mémoire 52 qui
est représenté de façon plus détaillée sur la figure 21.
Les trois registres d'adresse de mémoire individuels ont respectivement 24, 32 et 32 bits. Des registres individuels
parmi les trois registres d'adresse de mémoire sont sélec-
* tionnés pour l'exécution de différentes fonctions par le processeur central 12, mais cette sélection n'entre pas dans le cadre de l'invention et elle ne sera pas spécifiée dans
ce qui suit. L'information de sortie des registres d'adres-
se de mémoire 28 est appliquée au bus B 23 ainsi qu'à un réseau de bascules d'adresse de mémoire (non représenté), à partir duquel les signaux d'adresse physique sont émis de façon à adresser la mémoire centrale 16 d'une manière
classique qui ne fait pas partie de l'invention.
Pour procurer les avantages qu'offre l'invention en ce qui concerne la gestion de mémoire, le processeur central 12 comporte en outre une mémoire vive locale 42, appelée mémoire vive de traduction, qui contient 4K (4096) rubriques de 16 bits chacune. La mémoire vive de traduction 42 est indexée par 12 lignes définissant un index à 12
bits. La mémoire vive de traduction 42 contient une rubri-
que par page (chaque page contenant 2 K multiplets) pour
l'ensemble de l'espace d'adresse virtuelle de huit méga-
multiplets qui est établi par le matériel à un moment quel-
conque. Dans une machine informatique fonctionnant en traitement multitâche, on peut considérer que l'espace d'adresse virtuelle est subdivisé en segments. Dans la
machine particulière qui est décrite ici, l'espace d'adres-
se virtuelle est divisé en huit segments, d'un mégamultiplet chacun. En se reportant à la figure 3, qui matérialise l'espace d'adresse virtuelle qu'établit le matériel à un moment quelconque, on voit que le Segment 0 contient le système d'exploitation de la machine informatique, le Segment 1 contient un programme d'utilisateur, le Segment
2 contient des données d'utilisateur, et des segments sup-
plémentaires sont disponibles pour une extension. Chaque
utilisateur de la machine voit un espace d'adresse virtuel-
le à huit segments, avec le système d'exploitation dans le Segment 0 dans chacun de ces espaces, mais avec son propre
programme et ses propres données dans les segments restants.
La figure 5 montre le format d'adresse virtuelle à 24 bits. Le premier bit (VO) (bit de rang supérieur) dans les signaux d'adresse virtuelle est un bit invalide qui est égal à zéro dans une adresse à 23 bits valides; si ce bit est égal à un, l'adresse est plus grande que ce qui est autorisé. (Le format d'adresse virtuelle à 24 bits permet une extension future de l'espace d'adresse virtuelle qui peut être employé.) L'état du bit d'ordre supérieur VO est testé par matériel dans la machine, comme on le décrira. Les bits Vl à V12 forment un ensemble qu'on appelle l'index de mémoire vive de traduction. Cette partie de l'adresse est divisée logiquement en deux parties, à savoir un numéro de segment et un numéro de page, au cours du fonctionnement du processeur central. Cependant, aucune distinction n'est faite au point de vue du matériel. L'index de mémoire vive de traduction est traduit au cours du processus faisant correspondre l'adresse virtuelle à une adresse physique,
comme on le décrira. La partie restante de l'adresse vir-
tuelle (V13 - V23) est le décalage à 11 bits, ou la position du multiplet dans la page. Cette partie de l'adresse n'est pas traduite du fait qu'elle est la même pour l'adresse
virtuelle et pour l'adresse physique.
Pour enregistrer des signaux dans la mémoire vive
de traduction ou pour prélever des signaux dans cette mémoi-
re, on indexe la mémoire vive de traduction au moyen des douze signaux "d'index de mémoire vive de traduction" qui sont émis par le réseau de bascules d'adresse de mémoire vive de traduction 38, qui reçoit les vingtquatre signaux d'adresse virtuelle (représentés sur la figure 5) par le
bus C, 24. Pendant le fonctionnement de la machine informa-
tique, la mémoire vive de traduction est chargée, une
rubrique à la fois, à partir du registre d'adresse virtuel-
le 26, d'une manière qu'on décrira par la suite.
La figure 4 montre le format d'une rubrique de la mémoire vive de traduction. La rubrique complète comprend 16 bits; le bit 0 est un bit de défaut, le bit 1 est un bit de protection de lecture, le bit 2 est un bit de protection d'écriture et les bits 3 à 15 constituent un numéro de cadre de page. En retournant à la figure 2, on note que les signaux de numéro de cadre de page d'une rubrique adressée sont lus dans la mémoire vive de traduction 42 et sont appliqués au multiplexeur de mémoire vive de traduction 54, qui reçoit également un signal d'entrée provenant du réseau de bascules d'adresse de mémoire vive de traduction 38. On envisagera le fonctionnement du multiplexeur de mémoire vive de traduction 54 en relation avec la figure 16. La partie de numéro de cadre de page (bits 3 15) de l'information de sortie de la émoire vive de traduction T/RAM 42 est également appliquée de façon à indexer la table de référence et de changement, 50, qui contient une rubrique à 2 bits pour chaque numéro de cadre de page. L'utilisation d'une table de référence et de changement est de façon générale bien connue en elle-même, et on ne l'expliquera pas en détail ici. Les deux bits comprennent un bit de référence et un bit de changement pour chaque cadre de page; le bit de référence est positionné à l'état haut pour indiquer une référence au cadre de page considéré en mémoire centrale et le bit de changement est positionné à l'état haut pour
indiquer que la rubrique correspondante dans la mémoire cen-
trale a été modifiée. Dans le cadre de ses opérations de servitude, le système d'exploitation consulte le bit de changement et récrit le contenu de la partie correspondante
de la mémoire auxiliaire de façon à le maintenir en concor-
dance avec la mémoire centrale. Les bits de référence ou de changement sont positionnés uniquement lorsqu'une traduction est effectuée, et non à chaque référence en mémoire. (On
envisagera par la suite l'apparition de références en mémoi-
re ne faisant pas intervenir de traduction.) Les bits de référence et de changement sont restaurés lorsque le cadre
de page est réutilisé, c'est-à-dire lorsqu'une partie diffé-
rente de la mémoire auxiliaire est chargée dans le cadre de page considéré de la mémoire centrale, normalement à un
moment auquel la machine informatique change de tâche.
En ce qui concerne l'invention, les registres d'adresse de mémoire 28 reçoivent de l'information d'entrée de deux manières. Premièrement, à l'apparition d'un "défaut de mémoire vive de traduction", qu'on décrira par la suite,
les signaux de numéro de page (virtuelle) sont reçus à par-
tir du réseau de bascules d'adresse de mémoire vive de tra-
duction 38.Au contraire, lorsqu'il n'y a pas de défaut de la mémoire vive de traduction, les signaux de numéro de cadre de page (physique) sont reçus à partir du multiplexeur de mémoire vive de traduction 54. Dans un cas comme dans l'autre, les signaux de décalage (11 bits de rang inférieur) sont reçus à partir du réseau de bascules d'adresse de
mémoire vive de traduction 38.
En considérant maintenant plus particulièrement la figure 9, on note que la mémoire de contrôle 14 contient des
signaux de commande auxquels on accède par groupes de qua-
rante-huit signaux présentés en sortie sur quarante-huit lignes en parallèle. Le signal présent sur chaque ligne peut être à l'état haut (1) ou bas (O), et il est appliqué directement aux circuits de matériel du processeur central 12, pour commander le fonctionnement de ce dernier. Parmi les signaux présents sur les lignes, certains seulement ont rapport à l'invention. Ces signaux sont les signaux O - 6,
qui sont appliqués en groupe à un circuit de décodage (figu-
re 10) pour élaborer les signaux de commande appelés "LT/
RAM" (chargement d'une rubrique dans la mémoire vive de tra-
duction), "TRCT" (test dé la table de référence/changement) et "RRCT" (restauration de la table de référence/changement);
les signaux 22 et 23 qui sélectionnent l'un des trois regis-
tres d'adresse de mémoire 28 et dont l'application sera mentionnée par la suite; et les signaux 27-29 qui sont appliqués en groupe à un circuit de décodage (figure 10) pour élaborer l'un *des signaux de commande de traduction désignés par "WT" (opération de traduction de type écriture) et "TRAN" (traduction), ou les deux. La manière particulière
dont sont appliqués les signaux de commande élaborés ressor-
tira de la suite-de la description.
La manière générale dont s'effectue l'accès à des
groupes particuliers de signaux de commande, sous la dépen-
dance de macro-instructions et de conditions de la machine ne fait pas partie de l'invention, et elle est bien connue
dans le domaine de la commande des machines informatiques.
On décrira par la suite l'accès à des groupes particuliers,
entrant dans le cadre de l'invention.
249737'i On va maintenant considérer la figure 11 qui représente en détail les circuits du réseau de bascules d'adresse de mémoire vive de traduction, 38. Les bits 8 - 31 provenant du bus C à 32 bits, 24, qui constituent l'adresse virtuelle à 24 bits, sont appliqués à l'entrée du réseau de bascules 38. Le réseau de bascules 38 est commandé par un
signal appliqué sur une entrée "CK" qui-résulte de la combi-
naison d'un signal de commande et d'un signal d'horloge; le signal de commande est l'un de ceux désignés par TRAN, LT/RAM, TRCT, ou RRCT, qui sont élaborés de la manière représentée sur la figure 10, tandis que le signal d'horloge est "T2" (figure 18). Lorsque le réseau de bascules reçoit un signal sur son entrée d'horloge, il émet les bits O - 13, comprenant le bit VO ("IVA") et l'index de mémoire vive de
traduction à 12 bits (voir la figure 5) de l'adresse vir-
tuelle. Les signaux de sortie restants du réseau de bascu-
les 38 constituent le décalage à 11 bits (voir la figure 5) et ils sont appliqués au multiplexeur de registres d'adresse
de mémoire, 52.
On va maintenant considérer la figure 12 qui représente en détail les circuits de la mémoire vive de traduction 42. Les douze bits d'index de mémoire vive de traduction provenant du réseau de bascules 38 (figure 11)
sont appliqués de façon à indexer la mémoire vive de traduc-
tion pour une opération d'entrée or de sortie. Des signaux représentant une rubrique de la mémoire vive de traduction peuvent être appliqués à cette mémoire sur les accès d'entrée de données ("DI") à partir du registre d'adresse virtuelle 26, sous l'effet de l'application du signal de commande
"LT/RAM" (provenant du circuit de la figure 10), en compa-
gnie du signal d'horloge T2 (figure 18). Les signaux sont enregistrés à la position indexée. Des signaux représentatifs de la rubrique indexée sont émis sur les accès de sortie de données ("DO") et les bits 3 (représentant le numéro de cadre de page) sont appliqués au multiplexeur de mémoire
vive de traduction 54 (figure 16) dont on décrira le fonc-
tionnement ultérieurement.
On va maintenant considérer la figure 4 qui montre que les signaux enregistrés sous la forme d'une rubrique de la mémoire vive de traduction comprennent le bit de défaut (F), les bits de protection de lecture (RP) et de protection
d'écriture (WP), et un numéro de cadre de page à 13 bits.
Comme le montre la figure 12, ces 16 signaux sont émis par les accès de sortie de données (DO) de la mémoire vive de traduction 42. En considérant la figure 13, on voit que le bit de défaut, ainsi que le bit "IVA" provenant du réseau de bascules d'adresse de mémoire vive de traduction 38 (figure 11), les signaux de commande Cll 22 et 23 provenant
de la mémoire de contrôle 14 (signaux de sélection de regis-
tre d'adresse de mémoire) et TRAH (provenant de la figure
) sont appliqués au circuit logique de défaut de traduc-
tion, 56, qui génère un signal parmi deux signaux de défaut possibles, ttO et ttl. Ces signaux représentent tous deux des défauts de traduction; la distinction entre eux dépend du registre d'adresse de mémoire qui doit recevoir les signaux d'adresse, ce qui n'entre pas dans le cadre de l'invention. En considérant la figure 14, on voit que les bits WP et RP provenant de la mémoire vive de traduction 42 sont appliqués, en compagnie du bit d'état ETAT (figure 2) et des signaux de commande WT et TRAN (provenant de la figure ), à un circuit logique de défaut de protection, 58. Ce circuit génère un signal de défaut tt2. L'utilisation du bits de protection est de façon générale bien connueet on
ne la décrira pas ici.
Les trois signaux de défaut sont appliqués au circuit 60 de la figure 15 qui, si aucun signal de défaut n'est généré (c'est-à-dire s'il n'y a ni défaut de mémoire vive de traduction ni défaut de protection), génère un
signal de commande "absence de défaut" TT. On décrira-ulté-
rieurement la fonction supplémentaire des trois signaux de défaut. En considérant maintenant la figure 16, on voit que le signal de commande TT est appliqué, en compagnie du
signal d'horloge TI, au multiplexeur de mémoire vive de tra-
duction 54, pour sélectionner une de ses deux entrées (cha-
que entrée consistant en un ensemble de lignes). S'il n'y a pas de défauts, la partie de numéro de cadre de page à 13 bits de la rubrique, de mémoire vive de traduction qui est lue dans la mémoire vive de traduction 42 (adresse physique) est transmise par le multiplexeur 54 vers le multiplexeur de registres d'adresse de mémoire 52 (figure 2), par les lignes TR O - 12. D'autre part, dans le cas d'un défaut, les bits
8 - 20 du bus C (adresse virtuelle) sont transmis au multi-
plexeur de registres d'adresse de mémoire 52 par les lignes
TR O - 12.
On va maintenant considérer la figure 17 qui
représente en détail la table de référence/changement 50.
Les signaux de commande qui commandent le fonctionnement de cette table sont désignés par WT (opération de traduction du type écriture), RRCT (restauration de la table de référence/ changement), RF (positionnement du bit de référence), et TRCT (test de la table de référence/changement), provenant tous de la figure 10; TRAN (traduction), provenant de la figure 13; TT (absence de défaut) provenant de la figure 15; CM 22 (l'un des signaux de commande de sélection des registres d'adresse de mémoire) provenant de la figure 9 et CL 9 et CL 10, qui sont des signaux de sortie du réseau
de bascules de mémoire vive de traduction 38 (figure 11).
Des signaux d'horloge Tl et TA (figure 18) commandent égale-
mont le fonctionnement de la table d- référence,'changement.
Le signal RRCT restaure à "00" (les deux bits sont position-
nés à l'état bas) la rubrique à deux bits qui est indexée par les bits 3 15 de la mémoire vive de traduction. Le signal RF positionne à l'état haut le bit de "référence" de la rubrique indexée. Le signal WT en présence du signal TT positionne à l'état haut le bit de "changement" de la rubrique indexée. L'utilisation du numéro de cadre de page provenant de la mémoire vive de traduction 42 pour indexer la table de référence/changement 50 augmente la vitesse et
le rendement du fonctionnement de la machine informatique.
Le signal TRCT positionne les bits d'état "M2H" et "M2B" du registre d'état 46 (figure 2) aux valeurs des
bits de référence et de changement de la rubrique adressée.
Les bits d'état sont testés ultérieurement par le système d'exploitation afin de déterminer quelles sont les parties de la mémoire auxiliaire qui doivent être récrites pour être
maintenues en concordance avec le contenu de la mémoire cen-
traie. Cette procédure est bien connue dans l'exploitation
des machines informatiques et ne fait pas partie de l'inven-
tion. En considérant la figure 9, on voit que les signaux de défaut ttO, ttl, et tt2 accèdent à des groupes particuliers de signaux de commande enregistrés dans la mémoire de contrôle. Les détails des signaux de commande
particuliers nécessaires pour remplir les fonctions indi-
quées dépendent de la structure détaillée de la machine dans laquelle ils doivent être utilisés, et la sélection de tels signaux particuliers est de la compétence des concepteurs de machines informatiques. Cet aspect du fonctionnement de la machine sera donc décrit de façon générale, sans donner de détails concernant les signaux de commande, à l'exception
du signal nécessaire pour charger la mémoire vive de tra-
duction T-RAM.
De façon générale, le groupe de signaux de com-
mande relatif au traitement de défaut pour la mémoire vive de traduction commande le processeur central de façon à
transférer de la partie 36 de la pile 30 (table de descrip-
teurs de segment) vers l'un des registres de données de mémoire 40 des signaux représentatifs d'un descripteur de segment particulier qui est indiqué par la partie de segment (trois bits de rang supérieur) de l'index de mémoire vive de traduction des signaux d'adresse virtuelle, qui ont été
transférés vers un registre de travail à partir des regis-
tres d'adresse de mémoire 28, par l'intermédiaire du bus B, 23. En considérant la figure 7 on voit que chaque descripteur de segment comprend 32 bits, parmi lesquels le
bit 0 est appelé le "bit de surveillance", dont on expli-
quera l'utilisation; les bits 1. - 10 représentent la lon-
gueur de la table de pages pour le segment; les bits 11 -
représentent l'adresse de la table de pages pour le
249737'
segment; et le bit 31 est un "bit d'adresse virtuelle/
physique", qui indique si l'adresse est virtuelle ou physi-
que. Si l'adresse de la table de pages est physique, il n'est pas nécessaire de la traduire; si elle est virtuelle, elle doit être traduite avant de passer aux opérations sui- vantes. La partie d'adresse de table de pages des signaux de descripteur de segment est utilisée pour adresser la table de pages, dans la mémoire centrale 16. La figure 6 montre le format d'une rubrique de la table de pages, et on voit qu'il est identique à celui d'une rubrique de la mémoire vive de traduction. La rubrique de table de pages
particulière dans la table de pages est adressée en utili-
sant la partie de page de la partie d'index de mémoire vive
de traduction (bits Vi - V13) des signaux d'adresse virtuel-
le (qui sont maintenant dans un registre de travail). Les signaux représentatifs de la rubrique adressée de la table de pages sont amenés dans le registre d'adresse virtuelle 26 à partir de la mémoire centrale. Le bit de défaut de la rubrique de table de pagesest testé. Si le bit de défaut est égal à 1, la page n'est pas en mémoire et doit y être amenée par des moyens classiques, et le bit de défaut est restauré à 0. Si le bit de défaut est égal à 0, le signal
de commande LT/RAM (figure 10) charge les signaux de rubri-
que de table de pages dans la mémoire vive de traduction à
la position indexée, en compagnie d'un bit de défaut posi-
tionné à 0, et de bits de protection dont l'état est déter-
miné d'une manière qui n'entre pas dans le cadre de l'in-
vention. En considérant la figure 19, on voit que le "bit de surveillance" des signaux de descripteur de segment est testé par le circuit 62. Si le test indique que le bit de surveillance est à l'état bas, l'interprétation de la macro-instruction est redémarrée. Si le test indique que le bit de surveillance est à l'état haut, un signal de commande "MVE VA" est émis et provoque l'application à la
pile 30 des signaux d'adresse virtuelle provenant du regis-
tre de travail. Le circuit logique d'adresse de pile 64 adresse une position dans la zone de surveillance 34 de la pile; les signaux d'adresse virtuelle sont enregistrés dans la zone de surveillance. Le nombre d'adresses virtuelles enregistrées dans la zone de surveillance peut aller jusqu'à 128. On conserve un compte qui est employé par le circuit
logique d'adresse de pile 64 pour charger des adresses vir-
tuelles supplémentaires. Une fois que les signaux d'adresse virtuelle ont été enregistrés dans les zones de surveillance
34, l'interprétation de la macro-instruction est redémarrée.
Les signaux d'adresse virtuelle enregistrés dans
la zone de surveillance 34 sont disponibles pour l'efface-
ment de rubriques particulières dans la mémoire vive de tra-
duction 42. On peut accomplir ceci de diverses manières, en fonction de conditions de fonctionnement qui n'entrent pas dans le cadre de l'invention. En particulier, lorsque la
machine informatique passe d'une tâche à une autre, le sys-
tème d'exploitation efface les rubriques surveillées, en
liaison avec des opérations de "servitude" qui sont accom-
plies conjointement au passage d'une tâche à une autre, et
qui sont par ailleurs étrangères à l'invention. En considé-
rant la figure 9, on voit qu'un signal de "changement de tâche" (provenant du système d'exploitation) accède à des signaux de commande particuliers dans la mémoire de contr8le
afin d'effacer les rubriques surveillées.
Comme le montre la représentation de principe de la figure 20, pendant l'effacement d'une rubrique de la mémoire vive de traduction, les signaux d'adresse virtuelle enregistrés dans la zone de surveillance 34 de la pile 30 sont appliqués au réseau de bascules d'adresse de mémoire vive, 38, pour indexer la rubrique particulière qui doit être effacée. Le bit de rang supérieur (bit de défaut) de la rubrique est positionné à l'état haut, et les bits restants sont positionnés à l'état bas à la position indexée, pour
effacer la rubrique. En utilisant les adresses qui provien-
3F nent Ce la zone de surveillance, on peut effacer rapidement les rubriques particulières qui sont surveillées, sans qu'il soit nécessaire d'effacer la totalité de la mémoire vive de traduction. Simultanément, les rubriques qui ne sont pas surveillées (comme des signaux représentatifs d'adresses relatives au segment du système d'exploitation) demeurent
dans la mémoire vive de traduction et il n'est pas nécessai-
re de les effacer ou de les recharger à l'accès en mémoire suivant. Ceci fait encore gagner du temps d'exécution. On va considérer à titre d'exemple l'utilisation
du Segment 1 de l'espace d'adresse virtuelle (figure 3).
Lorsque le fonctionnement de la machine informatique commen-
ce, il n'y a pas de rubriques valides dans la mémoire vive de traduction pour l'espace d'adresse virtuelle du segment
1. Le système d'exploitation charge initialement le descrip-
teur de segment pour le Segment 1, avec M 1 (ce qui indi-
que la fonction de surveillance; voir la figure 7). La
tâche qui utilise le Segment 1 commence alors.
On supposera que l'exécution de cette tâche fait intervenir des accès en mémoire portant sur neuf pages du Segment 1, avant que la tâche soit interrompue. Chaque fois que le système accède à l'une de ces pages, son adresse virtuelle est traduite par référence au descripteur de segment et à la table de pages; et à chaque référence, l'état du bit de surveillance est noté, et chaque fois qu'une adresse physique est enregistrée dans la mémoire vive de traduction, l'adresse virtuelle est enregistrée dans la zone de surveillance 34. Lorsque la tâche est interrompue,
les rubriques de la mémoire vive de traduction qui concer-
nent le Segment 1 doivent être effacées. Dans cet exemple, il y aura à ce moment neuf adresses virtuelles enregistrées dans la zone de surveillance 34 de la pile 30. Il suffit donc d'effacer ces neuf rubriques de la mémoire vive de
traduction. Pendant le fonctionnement, la fonction de tra-
duction est appelée au cours du fonctionnement du processeur
central 12, sous l'effet d'une macro-instruction, c'est-à-
dire une instruction qui fait partie du programme qu'exécute la machine informatique. Le processeur central 12 interprète chaque macroinstruction, et les éléments de matériel du
processeur central 12 fonctionnent conformément à l'inter-
prétation de façon à accomplir l'opération spécifiée. Cette interprétation par matériel des macro-instructions est de
2497374'
façon générale bien connue dans la technique, et les détails ne font pas partie de l'invention, sauf dans la mesure
décrite ci-après. Si,au cours de l'interprétation de la macro-
instruction,le processeur central 12 reconnaît qu'une opéra- tion d'accès en mémoire est spécifiée, il accède
dans la mémoire de contrôle 14 à des signaux de commande-
particuliers, parmi lesquels figurent des signaux particu-
liers qui apparaissent sur les lignes CM 27 - 29 (figure 10). Une opération de traduction n'est pas exigée pour chaque accès en mémoire. Des opérations successives d'accès en mémoire portent fréquemment sur des positions contiguës dans la mémoire et, au lieu de générer une adresse complète
à 23 bits pour chaque opération successive d'accès en mémoi-
re, il est possible d'incrémenter ou de décrémenter une adresse déjà générée (et déjà présente dans les registres d'adresse de mémoire 28), pour spécifier la position de
l'opération suivante d'accès en mémoire. Ces opérations con-
sistant à incrémenter ou à décrémenter l'adresse sont appe-
lées opérations de "glissement", et dans la machine qui est décrite ici, la fonction de-"glissement" est spécifiée par des combinaisons des signaux de commande sur les lignes CM 27-29, autres que ceux représentés sur la figure 10. La sélection de groupes de signaux de commande de "glissement" ou de "traduction" dans la mémoire de contrôle est commandée
par d'autres aspects de l'interprétation des macro-instruc-
tions par le processeur central 12, qui sont étrangers à l'invention.
Si l'adresse physique suivante doit être détermi-
née par traduction, et non par un "glissement", et selon que l'opération qui intervient est une opération de-lecture ou d'écriture, les signaux émis sur les trois lignes CM 27-29 commandent soit une opération "lecture en mémoire centrale avec traduction" (RTRAN), soit une opération "écriture en mémoire centrale avec traduction" (WTRAN). Il existe deux sortes d'opérations "RTRAN" qui sont exécutées sous la dépendance de certaines conditions de fonctionnement qui
249737'
n'entrent pas dans le cadre de l'invention.
Le groupe de signaux de commande comprenant la combinaison de signaux RTRAN ou WTRAN sur les lignes CM
27-29 comprend également des signaux de commande de destina-
tion pour le bus C, sous l'effet desquels les signaux repré-
sentatifs de l'adresse virtuelle à laquelle l'accès en mémoi-
re doit 6tre effectué sont placés sur le bus C, 24, et sont appliqués par ce dernier au registre d'adresse virtuelle 26
et au réseau de bascules d'adresse de mémoire vive de tra-
duction 38. Le signal de commande TRAN charge dans la mémoi-
re vive de traduction 42 la partie d'index de mémoire vive
de traduction des signaux d'adresse virtuelle qui provien-
nent du réseau de bascules d'adresse de mémoire vive 38. Les
signaux de la rubrique indexée de la mémoire vive de traduc-
tion apparaissent sur les accès de sortie de données de la
mémoire vive de traduction 42. Les bits de.défaut et de pro-
tection (TR 0 - TR 2) sont appliqués aux circuits de défaut des figures 13 et 14, tandis que les bits de numéro de cadre
de page (TR 3 - 15) sont appliqués au multiplexeur de mémoi-
re vive de traduction 54 (figure 16). En l'absence de défauts, le signal "absence de défaut" TT commute le multiplexeur 54 de façon à transmettre les signaux de numéro de cadre de page vers le multiplexeur de registres d'adresse de mémoire 52 (figure 2), qui transmet ces signaux, en compagnie des signaux
de décalage (V14 - 23), vers les registres d'adresse de mémoi-
re 28, de façon à former l'ensemble de signaux représentatif de l'adresse physique. La rubrique indexée dans la table de
référence/changement 50 est mise à jour à ce moment.
Si au contraire il y a un défaut pour la mémoire vive de traduction, le bit de défaut (TR 0) qui est appliqué à l'entrée du circuit 56 de la figure 13 fait apparaître un
signal de défaut de traduction ttO ou ttl. Le signal de sor-
tie du circuit 60 (figure 15) commute le multiplexeur 54 de façon qu'il émette vers le multiplexeur de registres d'adresse
de mémoire 52 les signaux d'adresse de mémoire vive de tra-
duction qui proviennent du bus C, 24. Le signal de défaut de traduction accède dans la mémoire de contrôle 14 à un groupe
particulier de signaux de commande, ce qui conduit à I'utili-
249737'i sation d'un descripteur de segment dans la table 36 de la pile 30, pour localiser dans la mémoire centrale 16 la table de pages pour le segment considéré. La rubrique de table de pages est trouvée dans la table de pages du segment, et le signal de commande particulier qui est décodé,LT/RAM,(figure ) provoque le chargement des signaux de rubrique de table de pages dans la mémoire vive de traduction 42 (figure 12), à partir du registre d'adresse virtuelle 26, à la position qui est indiquée par les signaux d'index de mémoire vive de traduction qui proviennent du réseau de bascules d'adresse de mémoire vive de traduction 38. Le bit de surveillance du descripteur de segment est testé par le circuit 62 et s'il est à l'état haut, les signaux d'Iadresse virtuelle sont enregistrés dans la zone de surveillance 34 de la pile 30, pour être utilisés dans l'effacement sélectif de la rubrique
de mémoire vive de traduction à un moment ultérieur.
L'interprétation de la macro-instruction est alors redémarrée. Les signaux de commande W TRAN ou RTRAN sont appliqués à nouveau au circuit de la figure 10 et les signaux de la rubrique indexée sont lus dans la mémoire vive de traduction 42. Cette fois-ci, le bit de défaut est égal à
0, ce qui permet aux signaux de numéro de cadre de page tra-
duit d'être placés dans les registres d'adresse de mémoire 28, pour accomplir l'opération de lecture ou d'écriture qui est spécifiée par la macro-instruction. A ce moment, la
table de référence/changement 50 est mise à jour, à la posi-
tion indexée par les signaux de numéro de cadre de page
(figure 17).
S'il existe un défaut de protection, détecté par
le circuit 58 de la figure 14, le signal de défaut de protec-
tion tt2 accède à des signaux de commande particuliers dans la mémoire de contrôle 14 (figure 9), pour que le processeur central 12 effectue une opération appropriée, d'une manière
qui n'entre pas dans le cadre de l'invention.
La figure 22 montre les caractéristiques temporel-
les de l'indexation de la mémoire vive de traduction 42.
Comme le montre cette figure, un cycle du processeur central comprend les quatre intervalles d'horloge TA, T/, Tl, et T2
249737 $
(ces signaux sont générés de la manière représentée sur la figure 18). Chaque opération de traduction nécessite deux cycles du processeur central, soit un cycle de transfert "MVE" et un cycle de traduction "TRAN". Les caractéristiques temporelles sont les mêmes qu'il y ait ou non un défaut pour
la mémoire vive de traduction.
Le signal d'horloge T2 est appliqué à l'entrée du réseau de bascules d'adresse 38 (figure 11) pour charger les signaux d'adresse virtuelle qui proviennent du bus C, 24, et qui sont destinés à indexer la mémoire vive de traduction 42. Les bits F, WP et RP de la sortie de la mémoire vive de traduction sont appliqués aux circuits des figures 13 et 14 pour générer les signaux de défaut, et le signal de sortie du circuit 60 (figure 15) est appliqué, avec le signal d'horloge TI, au multiplexeur de mémoire vive de traduction 54. Dans le cas d'un défaut pour la mémoire vive, les signaux d'adresse virtuelle sont transmis au multiplexeur
de registres d'adresse de mémoire 52; et dans le cas con-
traire, ce sont les signaux de numéro de cadre de page (adresse physique) qui sont transmis. Les signaux de sortie
du multiplexeur de registres d'adresse de mémoire 52 (figu-
re 23) sont chargés dans les registres d'adresse de mémoire 28 pendant l'intervalle T2. Enfin, la table de référence et de changement 50 est mise à jour pendant l'intervalle Tl suivant (s'il n'y a pas de défaut pour la mémoire vive de traduction). Comme décrit précédemment, dans le cas d'un défaut pour la mémoire vive de traduction, un signal de défaut est appliqué à la mémoire de contrôle 14 pour accéder aux signaux de commande appropriés pour traiter le défaut. L'un des signaux élaboré à partir des signaux auxquels on accède ainsi est le signal LT/RAM (chargement de la mémoire vive de traduction, figure 10) qui, comme on l'a décrit, provoque le chargement des signaux de numéro de table de page dans la
mémoire vive de traduction. La figure 23 montre les caracté-
ristiques temporelles du chargement d'une rubrique dans la
mémoire vive de traduction 42, après un défaut pour la mémoi-
re vive de traduction.
Une fois que la machine informatique a exécuté une certaine partie du programme d'un premier utilisateur, elle
* passe à l'exécution du programme d'un autre utilisateur.
Ceci signifie habituellement que de nouvelles données seront amenées en mémoire centrale à partir des fichiers (mémoire auxiliaire 20, figure 1). Le système d'exploitation construit une table de pages (pour chaque segment de l'espace d'adresse virtuelle du second utilisateur), pour enregistrer les cadres de page particuliers de la mémoire centrale dans lesquels des pages particulières de la mémoire auxiliaire
sont écrites. Ces tables de pages seront utilisées pour tra-
duire les adresses virtuelles en adresses physiques pour la mémoire virtuelle que voit le second utilisateur. Les tables de pages pour le système de l'utilisateur précédent ne sont plus valides (du fait que le programme ou les données du second utilisateur peuvent maintenant se trouver dans des
cadres de page utilisés précédemment par le premier utilisa-
teur), et les rubriques de la mémoire vive de traduction qui
concernent les premières tables de pages doivent être inva-
lidées.
Le système d'exploitation réagit à ce changement de tâche en accomplissant un certain nombre d'opérations de "servitude", comprenant la mise en fonction des nouvelles tables de pages, en amenant dans la partie 36 de la pile 30 de nouveaux descripteurs de segments provenant de la mémoire centrale, pour désigner les tables Je pages. Au cours de ces opérations, le système d'exploitation efface les rubriques surveillées dans la mémoire vive de traduction, comme le montre la figure 20, en employant les adresses virtuelles enregistrées dans la zone de surveillance 34 de la pile 30, de la manière qui a été décrite. Cependant, toutes les
rubriques de la mémoire vive de traduction ne sont pas inva-
lides; celles qui concernent le segment du système d'exploi-
tation (Segment 0) demeurent valides. Ces parties du système
d'exploitation comprennent par exemple un module programma-
teur, un module d'appel sélectif, des fonctions de gestion
de fichiers ou des fonctions de gestion de base de données.
Dans de tels cas, le descripteur de segment pour le segment 249737't contenant le module aurait un bit de surveillance positionné à l'état bas et, de ce fait, aucune adresse virtuelle de ce segment ne serait enregistrée dans la zone de surveillance 34. Par conséquent, aucune des rubriques de la mémoire vive de traduction pour ce segment ne serait effacée au moment d'un changement de tâche. Conformément à l'invention, seules les rubriques de la table de pages pour un segment surveillé
sont invalidées lorsqu'une nouvelle tâche est mise en fonc-
tion. Il va de soi que de nombreuses modifications peuvent être apportées au dispositif décrit et représenté,
sans sortir du cadre de l'invention.
REVEUrDICATI0I S 1. Machine informatique fonctionnant en traitement
multitâche en permettant l'utilisation d'une mémoire virtuel-
le qui comprend un ensemble de segments, cette machine infor-
- matique comprenant: un processeur central (12) qui comporte un réseau de bascules (38), un registre d'adresse de mémoire (28) et un registre de données de mémoire (40); une mémoire de contrôle (14) qui est connectée au processeur central un bus (15) qui est connecté au processeur central et qui comprend des lignes de signaux d'adresse recevant des signaux d'adresse à partir du registre d'adresse de mémoire, et des lignes de signaux Ce données recevant des signaux de données à partir du registre de données de mémoire et fournissant des signaux de données au registre de données de mémoire une mémoire physique qui est conçue de façon à enregistrer
des signaux de données représentatifs de données et de macro-
instructions, cette mémoire comprenant une mémoire auxiliai-
re (20) à accès relativement lent qui est connectée au bus et qui comporte un ensemble de pages, chaque page contenant un certain nombre des signaux de données, et une mémoire centrale (16) à accès relativement rapide qui est connectée au bus de façon à recevoir et à fournir des signaux de données et à recevoir des signaux d'adresse, cette mémoire
centrale comportant un ensemble de cadresde page, et cha-
cun d'eux pouvant contenir un nombre de-signaux de données identique à celui que peut contenir une page de la mémoire
auxiliaire, et pouvant être adressé par des signaux d'adres-
se physique qui comprennent des signaux de numéro de cadre de page et des signaux de décalage; le processeur central (12) la mémoire de contrôle (14) et le bus (15) constituent
conjointement des moyens permettant de commander le trans-
fert d'un nombre des signaux de données correspondant à la taille d'une page, de la mémoire auxiliaire vers des cadres de page adressés dans la mémoire centrale, et inversement <C la machine informatique est capable de travailler sous la dépendance de certains des signaux de données représentatifs
de macro-instructions qui sont placés dans la mémoire physi-
que, le processeur central et la mémoire de contrôle réagis-
sant conjointement à des signaux représentatifs de macro-
instructions particulières d'accès en mémoire pour la lectu-
re et l'écriture en générant des signaux d'adresse virtuelle qui comprennent des signaux de numéro de segment, des signaux de numéro de page et des signaux de décalage, et en
appliquant ces signaux d'adresse virtuelle au réseau de bas-
cules (38); le processeur central (12) et la mémoire de contrôle (14) réagissent en outre aux macro-instructions d'accès en mémoire en accomplissant une traduction des signaux d'adresse virtuelle en signaux. d'adresse physique correspondants, cette traduction comprenant l'application des signaux de numéro de segment et de numéro de page à la mémoire centrale pour adresser des parties particulières de la mémoire centrale contenant des signaux de numéro de cadre de page, et la transmission des signaux de numéro de cadre de page de la mémoire centrale vers le registre d'adresse de
mémoire, en compagnie des signaux de décalage qui provien-
nent du réseau de bascules; et le processeur central et la
mémoire de contrôle réagissent en outre aux macro-instruc-
tions d'accès en mémoire pour la lecture en appliquant au registre de données de mémoire des signaux de données qui
proviennent des cadres de page adressés de la mémoire centra-
le, et aux macro-instructions d'accès en mémoire pour l'écri-
ture en appliquant aux cadres de page adressés de la mémoire centrale les signaux qui proviennent du registre de données de mémoire; caractérisée en ce qu'elle comprend: une
mémoire vive indexée (42) qui fait partie du processeur cen-
tral et dont les moyens d'indexation sont connectés à cer-
taines des sorties du réseau de bascules (38); et des moyens de multiplexage (54, 52) dont les sorties sont connectées
aux entrées du registre d'adresse de mémoire et qui compor-
tent deux ensembles d'entrées, le premier ensemble d'entrées étant connecté aux sorties de la mémoire vive, tandis que le second ensemble d'entrées est connecté aux sorties du réseau
de bascules; et en ce que le processeur central et la mémoi-
re de contrôle réagissent initialement conjointement à une macroinstruction d'accès en mémoire en appliquant aux moyens d'indexation de la mémoire vive des signaux représentatifs du numéro de page d'adresse virtuelle provenant du réseau de
bascules, pour faire apparaître sur les sorties de la mémoi-
re vive l'ensemble de signaux enregistrés à la position indexée, ces signaux comprenant des signaux représentatifs du numéro de cadre de page et un signal de défaut ayant un état parmi deux; les moyens de multiplexage réagissent à un premier état du signal de défaut en transmettant les signaux de numéro de cadre de page indexé de la mémoire vive vers le registre d'adresse de mémoire, pour adresser la mémoire centrale, et ils réagissent à un second état du signal de défaut en transmettant les signaux de sortie d'adresse virtuelle du réseau de bascules au registre d'adresse de mémoire, pour effectuer une traduction; et le processeur central et la mémoire de con,-rôle réagissent en outre au second état du signal de défaut en effectuant cette traduction des signaux d'adresse virtuelle et en appliquant
des signaux représentatifs du numéro de cadre de page tra-
duit à la position indexée de la mémoire vive, en compagnie
d'un signal de défaut ayant le premier état.
2. Machine informatique selon la revendication 1, caractérisé en ce que le processeur central comprend en outre: un registre d'état (46) qui comprend plusieurs bits d'état pouvant être positionnés pour indiquer l'état de fonctionnement de la machine informatique; et une table de référence et de changement indexée (50) qui comporte un
bit de référence qui peut être positionné et un bit de chan-
gement qui peut être positionné, pour chaque cadre de page
dans la mémoire centrale; et en ce que la table de référen-
ce et de changement est connectée à la sortie de la mémoire vive indexée, de façon à indexer cette table par le numéro de cadre de page; le processeur central et la mémoire de contr8le réagissent conjointement à une macro-instruction
d'accès en mémoire en positionnant le bit de référence inde-
xé, et à une macro-instruction d'accès en mémoire pour l'écriture en positionnant le bit de changement indexé; et la sortie de la table de référence et de changement est
connectée au registre d'état pour positionner des bits par-
ticuliers parmi les bits d'état, sous la dépendance de
l'état des bits de référence et de changement indexés.
3. Machire informatique selon l'une quelconque des
revendications 1 et 2, caractérisée en ce qu'elle comporte en
outre un bit de surveillance dans la mémoire centrale, asso- ciée à chaque segment de mémoire virtuelle et ayant un état parmi deux, et des moyens de mémorisation de signal sous forme de pile de mémoire (30) dans le processeur central et en ce que le processeur central (12) et la mémoire de contrôle (14) réagissent conjointement au second état du
signal de défaut et aux signaux de numéro de segment d'adres-
se virtuelle, pendant la traduction de l'adresse virtuelle, en adressant le bit de surveillance pour le segment et en testant son état; le processeur central et la mémoire de contrôle réagissent au premier état du bit de surveillance
en appliquant les signaux de numéro de page d'adresse vir-
tuelle aux moyens de mémorisation de signal sous forme de
pile de mémoire, pour les mémoriser; et le processeur cen-
tral et la mémoire de contrôle réagissent à un changement
de tâche pendant le fonctionnement de la machine en préle-
vant les signaux de numéro de page d'adresse virtuelle mémorisés dans les moyens de mémorisation de signal sous forme de pile de mémoire, et en appliquant ces signaux
mémorisés de façon à indexer la mémoire vive pour position-
ner le signal de défaut dans son second état.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/220,902 US4410941A (en) | 1980-12-29 | 1980-12-29 | Computer having an indexed local ram to store previously translated virtual addresses |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2497374A1 true FR2497374A1 (fr) | 1982-07-02 |
FR2497374B1 FR2497374B1 (fr) | 1988-05-06 |
Family
ID=22825488
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR8124447A Expired FR2497374B1 (fr) | 1980-12-29 | 1981-12-29 | Machine informatique pour traitement multitache |
Country Status (11)
Country | Link |
---|---|
US (1) | US4410941A (fr) |
JP (1) | JPS57135493A (fr) |
BE (1) | BE891653A (fr) |
CA (1) | CA1165898A (fr) |
CH (1) | CH657218A5 (fr) |
DE (1) | DE3151745A1 (fr) |
FR (1) | FR2497374B1 (fr) |
GB (1) | GB2090448B (fr) |
IT (1) | IT1145635B (fr) |
NL (1) | NL192144C (fr) |
SE (1) | SE445269B (fr) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4464713A (en) * | 1981-08-17 | 1984-08-07 | International Business Machines Corporation | Method and apparatus for converting addresses of a backing store having addressable data storage devices for accessing a cache attached to the backing store |
US4525778A (en) * | 1982-05-25 | 1985-06-25 | Massachusetts Computer Corporation | Computer memory control |
JPS6047624B2 (ja) * | 1982-06-30 | 1985-10-22 | 富士通株式会社 | アドレス変換制御方式 |
US4513371A (en) * | 1982-07-29 | 1985-04-23 | Ncr Corporation | Computer interface apparatus using split-cycle lookahead addressing for faster access to paged memory |
US4926316A (en) * | 1982-09-29 | 1990-05-15 | Apple Computer, Inc. | Memory management unit with overlapping control for accessing main memory of a digital computer |
US4524415A (en) * | 1982-12-07 | 1985-06-18 | Motorola, Inc. | Virtual machine data processor |
USRE37305E1 (en) * | 1982-12-30 | 2001-07-31 | International Business Machines Corporation | Virtual memory address translation mechanism with controlled data persistence |
DE3300223A1 (de) * | 1983-01-05 | 1984-07-05 | Siemens AG, 1000 Berlin und 8000 München | Anordnung zur umwandlung einer virtuellen adresse in eine physikalische adresse fuer einen in seiten organisierten arbeitsspeicher einer datenverarbeitungsanlage |
US4580217A (en) * | 1983-06-22 | 1986-04-01 | Ncr Corporation | High speed memory management system and method |
US4538241A (en) * | 1983-07-14 | 1985-08-27 | Burroughs Corporation | Address translation buffer |
US4747043A (en) * | 1984-02-10 | 1988-05-24 | Prime Computer, Inc. | Multiprocessor cache coherence system |
US4669043A (en) * | 1984-02-17 | 1987-05-26 | Signetics Corporation | Memory access controller |
US4873629A (en) * | 1984-06-20 | 1989-10-10 | Convex Computer Corporation | Instruction processing unit for computer |
US4757438A (en) * | 1984-07-12 | 1988-07-12 | Texas Instruments Incorporated | Computer system enabling automatic memory management operations |
EP0182501A3 (fr) * | 1984-11-20 | 1988-01-20 | Tektronix, Inc. | Procédé et appareil de transformation topographique de mémoire |
EP0203601B1 (fr) * | 1985-05-29 | 1992-08-05 | Kabushiki Kaisha Toshiba | Système antémémoire à procédé LRU et unité de commande de disques magnétiques l'incorporant |
US4972338A (en) * | 1985-06-13 | 1990-11-20 | Intel Corporation | Memory management for microprocessor system |
US4698749A (en) * | 1985-10-18 | 1987-10-06 | Gte Communication Systems Corporation | RAM memory overlay gate array circuit |
JPH0814803B2 (ja) * | 1986-05-23 | 1996-02-14 | 株式会社日立製作所 | アドレス変換方式 |
US4930065A (en) * | 1987-08-20 | 1990-05-29 | David Computer Corporation | Automatic data channels for a computer system |
US4937736A (en) * | 1987-11-30 | 1990-06-26 | International Business Machines Corporation | Memory controller for protected memory with automatic access granting capability |
US5155834A (en) * | 1988-03-18 | 1992-10-13 | Wang Laboratories, Inc. | Reference and change table storage system for virtual memory data processing system having a plurality of processors accessing common memory |
US5155826A (en) * | 1988-12-05 | 1992-10-13 | Fadem Richard J | Memory paging method and apparatus |
US5099415A (en) * | 1989-02-15 | 1992-03-24 | International Business Machines | Guess mechanism for virtual address translation |
US5644787A (en) * | 1993-08-03 | 1997-07-01 | Seiko Epson Corporation | Apparatus for controlling data transfer between external interfaces through buffer memory using table data having transfer start address transfer count and unit selection parameter |
US5479628A (en) * | 1993-10-12 | 1995-12-26 | Wang Laboratories, Inc. | Virtual address translation hardware assist circuit and method |
US5842225A (en) * | 1995-02-27 | 1998-11-24 | Sun Microsystems, Inc. | Method and apparatus for implementing non-faulting load instruction |
US5838893A (en) | 1996-12-26 | 1998-11-17 | Microsoft Corporation | Method and system for remapping physical memory |
US5956754A (en) * | 1997-03-03 | 1999-09-21 | Data General Corporation | Dynamic shared user-mode mapping of shared memory |
KR100546403B1 (ko) * | 2004-02-19 | 2006-01-26 | 삼성전자주식회사 | 감소된 메모리 버스 점유 시간을 가지는 시리얼 플레쉬메모리 컨트롤러 |
US7506009B2 (en) * | 2005-01-28 | 2009-03-17 | Dell Products Lp | Systems and methods for accessing a shared storage network using multiple system nodes configured as server nodes |
GB0505289D0 (en) * | 2005-03-15 | 2005-04-20 | Symbian Software Ltd | Computing device with automated page based rem shadowing and method of operation |
US20070039060A1 (en) * | 2005-08-12 | 2007-02-15 | Jamieson Georges E | Methods and systems for programming secure data into programmable and irreversible cells |
US9588902B2 (en) * | 2012-12-04 | 2017-03-07 | Advanced Micro Devices, Inc. | Flexible page sizes for virtual memory |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3976978A (en) * | 1975-03-26 | 1976-08-24 | Honeywell Information Systems, Inc. | Method of generating addresses to a paged memory |
DE2641722A1 (de) * | 1976-09-16 | 1978-03-23 | Siemens Ag | Hierarchisch geordnetes speichersystem fuer eine datenverarbeitende anlage mit virtueller adressierung |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3829840A (en) * | 1972-07-24 | 1974-08-13 | Ibm | Virtual memory system |
JPS51115737A (en) * | 1975-03-24 | 1976-10-12 | Hitachi Ltd | Adress conversion versus control system |
JPS52149444A (en) * | 1976-06-08 | 1977-12-12 | Fujitsu Ltd | Multiplex virtual space processing data processing system |
JPS53121538A (en) * | 1977-03-31 | 1978-10-24 | Fujitsu Ltd | Information processor |
-
1980
- 1980-12-29 US US06/220,902 patent/US4410941A/en not_active Expired - Lifetime
-
1981
- 1981-12-23 GB GB8138738A patent/GB2090448B/en not_active Expired
- 1981-12-24 CA CA000393216A patent/CA1165898A/fr not_active Expired
- 1981-12-24 NL NL8105849A patent/NL192144C/nl not_active IP Right Cessation
- 1981-12-29 DE DE19813151745 patent/DE3151745A1/de active Granted
- 1981-12-29 IT IT68706/81A patent/IT1145635B/it active
- 1981-12-29 BE BE0/206958A patent/BE891653A/fr not_active IP Right Cessation
- 1981-12-29 FR FR8124447A patent/FR2497374B1/fr not_active Expired
- 1981-12-29 CH CH8338/81A patent/CH657218A5/de not_active IP Right Cessation
- 1981-12-29 JP JP56216089A patent/JPS57135493A/ja active Granted
- 1981-12-29 SE SE8107831A patent/SE445269B/sv not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3976978A (en) * | 1975-03-26 | 1976-08-24 | Honeywell Information Systems, Inc. | Method of generating addresses to a paged memory |
DE2641722A1 (de) * | 1976-09-16 | 1978-03-23 | Siemens Ag | Hierarchisch geordnetes speichersystem fuer eine datenverarbeitende anlage mit virtueller adressierung |
Non-Patent Citations (1)
Title |
---|
IBM TECHNICAL DISCLOSURE BULLETIN, vol. 14, no. 5, octobre 1971 NEW YORK (US) W. SPRUTH: "Dynamic address translation (DAT) for multiprocessing system", pages 1608-1609. * |
Also Published As
Publication number | Publication date |
---|---|
DE3151745A1 (de) | 1982-08-19 |
NL192144B (nl) | 1996-10-01 |
NL192144C (nl) | 1997-02-04 |
CH657218A5 (de) | 1986-08-15 |
GB2090448B (en) | 1984-11-28 |
CA1165898A (fr) | 1984-04-17 |
JPH0425579B2 (fr) | 1992-05-01 |
SE445269B (sv) | 1986-06-09 |
DE3151745C2 (fr) | 1991-05-16 |
NL8105849A (nl) | 1982-07-16 |
IT8168706A0 (it) | 1981-12-29 |
IT1145635B (it) | 1986-11-05 |
US4410941A (en) | 1983-10-18 |
GB2090448A (en) | 1982-07-07 |
JPS57135493A (en) | 1982-08-21 |
BE891653A (fr) | 1982-04-16 |
FR2497374B1 (fr) | 1988-05-06 |
SE8107831L (sv) | 1982-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR2497374A1 (fr) | Machine informatique pour traitement multitache | |
US4078254A (en) | Hierarchical memory with dedicated high speed buffers | |
US3275991A (en) | Memory system | |
JPH04233642A (ja) | キャッシュアクセスと並列的にメモリアクセスを行なうプロセッサ及びそれに用いられる方法 | |
FR2624994A1 (fr) | Systeme de commande de registre intermediaire de traduction | |
JPH05503381A (ja) | 算術パイプラインをオペレーティングする方法及びデータプロセッシング装置 | |
FR2645986A1 (fr) | Procede pour accelerer les acces memoire d'un systeme informatique et systeme pour la mise en oeuvre du procede | |
CN111158858B (zh) | 一种虚拟机的克隆方法和装置,及计算机可读存储介质 | |
US4700330A (en) | Memory for a digital data processing system including circuit for controlling refresh operations during power-up and power-down conditions | |
US5283890A (en) | Cache memory arrangement with write buffer pipeline providing for concurrent cache determinations | |
CN115485668A (zh) | 存储器页标记作为基于处理器的执行跟踪的日志记录线索 | |
US3839704A (en) | Control for channel access to storage hierarchy system | |
EP0306357A1 (fr) | Unité de gestion d'accès en mémoire, à identifiants logiques invariants, notamment pour la gestion de bases de données | |
GB2037466A (en) | Computer with cache memory | |
US11615109B1 (en) | Efficient deserialization from standardized data files | |
FR2513778A1 (fr) | Dispositif et procede d'informatique | |
JP3144814B2 (ja) | キャッシュメモリの制御方式およびキャッシュタグメモリの制御方式 | |
JP3442207B2 (ja) | 記憶装置 | |
FR2611939A1 (fr) | Dispositif de traduction d'adresse comportant une memoire tampon de traduction d'adresse chargee avec les bits de presence | |
JP2538993B2 (ja) | オペランドストアのキャッシュメモリヘのストア制御方式 | |
JP3074897B2 (ja) | メモリ回路 | |
JPH01255028A (ja) | 外部記憶装置のアクセス方法 | |
JPH03225452A (ja) | ビットエンコードデータ処理システム及びデータワードにおいてダグビットをそう入/抽出する処理方法 | |
CN116126471A (zh) | 容器创建处理方法、***、电子设备和可读存储介质 | |
JP2702356B2 (ja) | デバッグ情報アクセス方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AM | Act modifying the rights related to an application or a patent | ||
GC | Lien (pledge) constituted | ||
TP | Transmission of property | ||
TP | Transmission of property | ||
TP | Transmission of property |
Free format text: CORRECTION |
|
ST | Notification of lapse |