DE4234194A1 - SYSTEM AND METHOD FOR MEMORY SEGMENTATION FOR A MICROPROCESSOR - Google Patents

SYSTEM AND METHOD FOR MEMORY SEGMENTATION FOR A MICROPROCESSOR

Info

Publication number
DE4234194A1
DE4234194A1 DE4234194A DE4234194A DE4234194A1 DE 4234194 A1 DE4234194 A1 DE 4234194A1 DE 4234194 A DE4234194 A DE 4234194A DE 4234194 A DE4234194 A DE 4234194A DE 4234194 A1 DE4234194 A1 DE 4234194A1
Authority
DE
Germany
Prior art keywords
segment
descriptor
format
selector
cache
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.)
Ceased
Application number
DE4234194A
Other languages
German (de)
Inventor
Gary N Hammond
Pradeep Dubey
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE4234194A1 publication Critical patent/DE4234194A1/en
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation

Description

Die Erfindung bezieht sich allgemein auf ein Speichermana­ gementsystem für Computer und insbesondere auf ein Speicher- Segmentierungssystem für Mikroprozessoren, das eine erhöhte Da­ ten-Zugriffsgeschwindigkeit und Effizienz ermöglicht.The invention relates generally to a storage man management system for computers and in particular on a storage Segmentation system for microprocessors, which has an increased Da access speed and efficiency.

Speichermanagement ist ein Hardware-Mechanismus, der Be­ triebssysteme veranlaßt, vereinfachte Programm-Ablaufbedingun­ gen zu schaffen. Hierbei können mehreren gleichzeitig ablaufen­ den Programmen jeweils unabhängige Adreßräume zugeordnet wer­ den, um eine gegenseitige Störung zu vermeiden. Das Speicherma­ nagement besteht typischerweise aus Segmentierung und Seiten­ wechsel (paging). Segmentierung wird verwendet, um jedem Pro­ gramm mehrere unabhängige, geschützte Adreßräume ("Segmente") zu geben. Paging dient der Unterstützung einer Umgebung, wenn große Adreßräume unter Verwendung eines kleinen Direktzugriffs­ speicher-("HAM-")Raums und eines Plattenspeichers simuliert werden. Systemdesigner können jeden einzelnen oder beide Mecha­ nismen auswählen. Wenn mehrere Programme gleichzeitig ablaufen, kann jeder Mechanismus zum Schutz der Programme vor Störungen durch andere Programme verwendet werden.Memory management is a hardware mechanism that Be drive systems causes simplified program execution conditions to create conditions. Several can run simultaneously Independent address spaces are assigned to the programs to avoid mutual interference. The storage ma Management typically consists of segmentation and pages change (paging). Segmentation is used by every pro several independent, protected address spaces ("segments") to give. Paging is used to support an environment when large address spaces using a small direct access memory - ("HAM -") space and a disk memory simulated will. System designers can use any one or both of the Mecha Select mechanisms. If several programs are running at the same time, can any mechanism to protect programs from interference used by other programs.

Die Segmentierung ermöglicht die Verwendung eines vollstän­ dig unstrukturierten und einfachen Speichers, ähnlich dem Spei­ chermodell eines einfachen 8-Bit-Prozessors, oder eines hoch­ strukturierten Speichers mit Adreßübersetzung und Schutz. Jedes Segment ist ein unabhängiger, geschützter Adreßraum. Der Zu­ griff auf Segmente wird von Daten gesteuert, welche deren Größe, das zum Zugriff erforderliche Zugriffsprivilegniveau, die Arten von Speicherreferenzen, die vorgenommen werden können (Heranholen von Befehlen, Stapelein- oder -ausgabe, Leseopera­ tion, Schreiboperation usw.) beschreiben und angeben, ob sie im Speicher vorhanden sind.The segmentation enables the use of a complete dig unstructured and simple memory, similar to the Spei Model of a simple 8-bit processor, or one high structured memory with address translation and protection. Each Segment is an independent, protected address space. The To access to segments is controlled by data which their Size, the access privilege level required for access, the types of memory references that can be made (Command fetch, batch input or output, read opera tion, write operation, etc.) and indicate whether they are in the Memory are available.

Im folgenden wird auf Fig. 1(a) Bezug genommen, in der eine bildhafte Darstellung des Speicheradressen-Übersetzungsmecha­ nismus gezeigt ist. Der Segmentierungsmechanismus 105 über­ setzt die segmentierte (logische) Adresse 100 in eine lineare Adresse 110 genannte Adresse für einen kontinuierlichen, unseg­ mentierten Adreßraum. Wenn ein Seitenwechsel freigegeben wird, übersetzt der Seitenwechselmechanismus 115 die lineare Adresse 110 in eine physikalische Adresse 120. Wenn Seitenwechsel 115 nicht freigegeben ist, wird die lineare Adresse 110 als physi­ kalische Adresse 120 verwendet. Die physikalische Adresse 120 erscheint schließlich auf dem aus dem Prozessor herauskommenden Adreßbus.Referring now to Fig. 1 (a), a pictorial representation of the memory address translation mechanism is shown. The segmentation mechanism 105 converts the segmented (logical) address 100 into an address called linear address 110 for a continuous, non-segmented address space. When a page break is enabled, the page break mechanism 115 translates the linear address 110 into a physical address 120 . If page change 115 is not enabled, linear address 110 is used as physical address 120 . The physical address 120 finally appears on the address bus coming out of the processor.

Ein Beispiel für ein Speichermanagementsystem ist im i486- Mikroprozessor der Firma INTEL CORPORATION, der Anmelderin, re­ alisiert. In den i486-Mikroprozessoren besteht eine logische Adresse aus dem 16-Bit-Segmentselektor für dessen Segment und einem 32-Bit-Offset in das Segment. Bei dem Ausführungsbeispiel gemäß Fig. 1(a) wird die logische Adresse 100 in die lineare Adresse 110 übersetzt, indem das Offset 101 zur Basisadresse 103 des Segments addiert wird. Die Basisadresse 103 wird vom Segmentdeskriptor 104 abgeleitet. Dieser ist eine Datenstruktur im Speicher, welche die Größe und den Ort eines Segments sowie Zugriffssteuerinformationen liefert. Der Segmentdeskriptor in einem i486-Mikroprozessor wird beispielweise aus einer von zwei Tabellen gewonnen, der globalen Deskriptortabelle (GDT) oder der lokalen Deskriptortabelle (LDT). Es gibt eine GDT für alle Programme im System und eine LDT für jedes getrennte Programm oder jede ablaufende Task. Wenn es das Betriebssystem zuläßt, können verschiedene Programme auf dieselbe LDT gemeinsam zu­ greifen. Das System kann außerdem ohne LDT′s aufgebaut werden; alle Programme benutzen dann die GDT. Für mehr Informationen bezüglich der i486-Mikroprozessoren wird auf das zum i486-Mi­ kroprozessor gehörige Programmierer-Referenzhandbuch verwiesen.An example of a memory management system is implemented in the i486 microprocessor from INTEL CORPORATION, the applicant. In the i486 microprocessors, a logical address consists of the 16-bit segment selector for its segment and a 32-bit offset into the segment. In the embodiment of FIG. 1 (a), the logical address 100 is translated into the linear address 110 by adding the offset 101 to the base address 103 of the segment. The base address 103 is derived from the segment descriptor 104 . This is a data structure in memory that provides the size and location of a segment as well as access control information. For example, the segment descriptor in an i486 microprocessor is obtained from one of two tables, the global descriptor table (GDT) or the local descriptor table (LDT). There is a GDT for all programs in the system and an LDT for each separate program or running task. If the operating system allows it, different programs can access the same LDT together. The system can also be built without LDT's; all programs then use the GDT. For more information regarding the i486 microprocessors, see the Programmer Reference Guide for the i486 microprocessor.

Die übersetzte Adresse ist die lineare Adresse 110. Wenn der Paging- bzw. Seitenwechselmechanismus nicht gebraucht wird, ist die lineare Adresse 110 die physikalische Adresse 120. Wenn Paging benutzt wird, wird eine zweite Ebene der Adreßüberset­ zung benötigt, um die physikalische Adresse 120 zu erzeugen. The translated address is linear address 110 . When the paging mechanism is not needed, the linear address 110 is the physical address 120 . If paging is used, a second level of address translation is needed to generate the physical address 120 .

Wiederum wird auf Fig. 1(a) Bezug genommen. Der Segment­ selektor 102 weist dort auf den Segmentdeskriptor 104 hin, der ein Segment definiert. Ein Programm im i486-Mikroprozessor kann mehr Segmente aufrufen als die Segmentselektoren derzeit Seg­ mentregister belegen. Ist dies der Fall, so verwendet das Pro­ gramm MOVE-Befehle zur Änderung des Inhalts der Segmentregi­ ster, wenn es auf ein neues Segment zugreifen muß. Wie in Fig. 1(b) gezeigt ist, identifiziert der Segmentselektor 132 einen Segmentdeskriptor durch Angabe der Deskriptortabelle 133 und des Deskriptorindexes 134 innerhalb dieser Tabelle.Again reference is made to Fig. 1 (a). The segment selector 102 there points to the segment descriptor 104 , which defines a segment. A program in the i486 microprocessor can call up more segments than the segment selectors currently occupy segment registers. If this is the case, the program uses MOVE commands to change the content of the segment register when it needs to access a new segment. As shown in Fig. 1 (b), the segment selector 132 identifies a segment descriptor by specifying the descriptor table 133 and the descriptor index 134 within that table.

Im folgenden wird auf Fig. 2 Bezug genommen, in der ein De­ skriptorformat im i486-Mikroprozessor dargestellt ist. Da das Deskriptorformat Rückwärtskompatibilität für frühere Prozes­ sorarchitekturen gewährleisten muß, wird das Deskriptorformat bei der Speicherung im Speicher gescrambelt (bzw. umforma­ tiert). Um die internen Prozessorinformationen zu vereinfachen, muß ein gescrambelter, unverarbeiteter Deskriptor in einen un­ gescrambelten Deskriptor transformiert werden. Die Transforma­ tion eines gescrambelten Segmentdeskriptors 300 in einen unge­ scrambelten Deskriptor 310 ist für den i486-Prozessor in Fig. 3 dargestellt.Referring now to Figure 2, a descriptor format in the i486 microprocessor is shown. Since the descriptor format must ensure backward compatibility for previous process architectures, the descriptor format is scrambled (or reformatted) when stored in memory. To simplify the internal processor information, a scrambled, unprocessed descriptor must be transformed into an unscrambled descriptor. The transformation of a scrambled segment descriptor 300 into an unscrambled descriptor 310 is shown for the i486 processor in FIG. 3.

Die Erfindung stellt ein verbessertes Speichermanagement­ system für Speicheroperationen in Mikroprozessoren zur Verfü­ gung. Wie beschrieben werden wird, dient ein Segmentdeskriptor- Cache zum Halten zuvor geholter, ungescrambelter und getesteter Deskriptoren derart, daß bei nachfolgenden Segmentregisterla­ dungen der Segmentdeskriptor vom Cache zur Quelle verfolgt und direkt in einem Takt in die Segmentdeskriptor-Registerdatei ge­ laden werden kann. Dadurch können die für gewöhnlich mit dem Laden von Segmentregistern verbundenen Arbeiten und Operationen umgangen werden. Wie dem Fachmann klar ist, ermöglicht das Speichersystem nach der vorliegenden Erfindung, daß Segmentde­ skriptoren direkt in das Segmentregister geladen werden, wenn die Segmentdeskriptoren nach dem assoziativen Suchen durch den Segmentselektor im Segmentdeskriptor-Cache gespeichert sind. Wenn der Deskriptor im Deskriptor-Cache nicht vorhanden ist, dient der Selektor zum Holen des Deskriptors aus einer Deskrip­ tortabelle im Speicher, zum Entscrambeln und Testen des De­ skriptors und zum Aktualisieren des Deskriptor-Caches mit dem neu geholten, nicht gescrambelten und getesteten Deskriptor, so daß letzterer nachfolgend zur Verfügung stehen kann.The invention provides improved memory management system for memory operations in microprocessors supply. As will be described, a segment descriptor is used Cache for holding previously fetched, unscrambled and tested Descriptors such that in subsequent segment registers traces the segment descriptor from cache to source and directly into the segment descriptor register file in one cycle can be loaded. This can usually be done with the Loading of segment related work and operations be circumvented. As is clear to the expert, this enables Storage system according to the present invention that segment end descriptors can be loaded directly into the segment register if the segment descriptors after the associative search by the  Segment selector are stored in the segment descriptor cache. If the descriptor doesn't exist in the descriptor cache, the selector is used to get the descriptor from a descript Tortabelle in memory, for descrambling and testing the De scriptors and to update the descriptor cache with the newly fetched, unscrambled and tested descriptor, see above that the latter may subsequently be available.

Der Erfindung liegt die Aufgabe zugrunde, ein verbessertes Speicher-Segmentierungssystem zur Erhöhung der Datenzugriffsge­ schwindigkeit und Effizienz zur Verfügung zu stellen. Das Spei­ chersystem soll dabei mit einem Segmentdeskriptor-Cache derart versehen sein, daß zuvor geholte und nicht gescrambelte Seg­ mentdeskriptoren für die nachfolgende Verwendung Cache-gespei­ chert werden können.The invention has for its object an improved Memory segmentation system to increase data access to provide speed and efficiency. The Spei The chersystem is said to use a segment descriptor cache be provided that previously fetched and not scrambled Seg cache descriptors for subsequent use can be saved.

Diese Aufgabe wird erfindungsgemäß durch die Merkmale des Patentanspruchs 1 bzw. verfahrensmäßig durch diejenigen des Pa­ tentanspruchs 4 gelöst.This object is achieved by the features of Claim 1 or procedural by those of Pa claim 4 solved.

Bei einem erfindungsgemäßen Speichermanagementsystem für Mikroprozessoren wird ein Segmentdeskriptor in Abhängigkeit von einem Segmentselektor erzeugt. Bei einem Ausführungsbeispiel der Erfindung weist das Speichersystem einen Deskriptor-Cache zum Halten zuvor geholter, nicht gescrambelter und getesteter Deskriptoren zum nachfolgenden Zugriff durch die gleichen Se­ lektoren auf. Wenn der Deskriptor im Deskriptor-Cache nicht ge­ funden wird, dient der Selektor zum Holen eines gescrambelten, unverarbeiteten Deskriptors aus dem Speicher. Der gescrambelte Deskriptor wird dann entscrambelt, bevor er in ein Segmentregi­ ster geladen wird. Derselbe entscrambelte Deskriptor wird auch zum Aktualisieren des Deskriptor-Caches derart verwendet, daß er nachfolgend gefunden werden kann.In a memory management system according to the invention for Microprocessors becomes a segment descriptor depending on generated a segment selector. In one embodiment According to the invention, the memory system has a descriptor cache for holding previously fetched, unscrambled and tested Descriptors for subsequent access by the same se proofreaders. If the descriptor is not in the descriptor cache is found, the selector is used to fetch a scrambled, unprocessed descriptor from memory. The scrambled one The descriptor is then descrambled before entering a segment register is loaded. The same descrambled descriptor is also used used to update the descriptor cache such that it can be found below.

Im folgenden wird die Erfindung anhand der Zeichnung näher erläutert. In der Zeichnung zeigen:In the following, the invention will be described with reference to the drawing explained. The drawing shows:

Fig. 1(a) eine Darstellung eines Speicheradreß-Überset­ zungsmechanismus; Fig. 1 (a) is an illustration of a memory address translation mechanism;

Fig. 1(b) das Format eines Segmentselektors; Fig. 1 (b) the format of a segment selector;

Fig. 2 das Format eines Segmentdeskriptors; FIG. 2 shows the format of a segment descriptor;

Fig. 3 das Verfahren des Entscrambelns eines gescram­ belten Segmentdeskriptors; Fig. 3, the method of descrambling a gescram Belts segment descriptor;

Fig. 4 eine Blockdiagrammdarstellung des Verfahrens des Ladens eines Segmentregisters im geschützten Mo­ dus; Fig. 4 is a block diagram representation of the method of loading a segment register in protected mode;

Fig. 5 eine Blockdiagrammdarstellung eines die Lehre der Erfindung beinhaltenden Speicher-Segmentie­ rungssystems; Fig. 5 is a block diagram representation of the teaching of the invention-containing memory segmentation assurance system;

Fig. 6 ein Ablaufdiagramm der Operation des Ladens ei­ nes Segmentdeskriptors; Fig. 6 is a flowchart of the operation of loading a segment descriptor;

Fig. 7 einen aktuell implementierten Deskriptor-Cache; Fig. 7 is a currently implemented descriptor cache;

Fig. 8 einen aktuell implementierten Pseudo-LRU-Ersatz- Algorithmus. Fig. 8 is a currently implemented pseudo-LRU replacement algorithm.

Beschrieben wird ein verbessertes Speichermanagementsystem für Speicheroperationen in Computern, das besondere Anwendungs­ möglichkeiten für Mikroprozessor-Speichersysteme unter Verwen­ dung der Segmentierungstechnik bietet und die Speicherzugriffs­ effizienz verbessert. In der folgenden Beschreibung werden zum Zwecke der Erläuterung spezielle Speicher, Organisationen, Ar­ chitekturen, Datenraten usw. angegeben, um das Verständnis für die vorliegende Erfindung zu erleichtern. Es ist jedoch für den Fachmann klar, daß die Erfindung auch ohne diese speziellen Einzelheiten realisiert werden kann. In anderen Fällen werden bekannte Schaltungen nur in Blockform dargestellt, um die Er­ findung nicht mit unnötigen Einzelheiten zu belasten.An improved memory management system is described for storage operations in computers, the special application Possibilities for microprocessor memory systems under use of segmentation technology and memory access efficiency improved. In the following description, the Purpose of explanation special stores, organizations, ar chitectures, data rates, etc. given to the understanding of to facilitate the present invention. However, it is for the Those skilled in the art will appreciate that the invention can be practiced without this particular Details can be realized. In other cases known circuits shown only in block form to the Er not burden the invention with unnecessary details.

Im folgenden wird auf Fig. 4 Bezug genommen, in der der Vorgang des Ladens eines Segmentregisters in Blockdiagrammform dargestellt ist. Zu beachten ist, daß der Segmentregister-Lade­ vorgang eine Basisoperation für jedes Segmentierungs-Speicher­ managementschema darstellt. Wenn der Prozessor einem Selektor aus einem Befehl, wie MOVE SEG REG, begegnet, testet der Pro­ zessor zunächst den Selektor nach irgendwelchen Privilegverlet­ zungen, und zwar derart, daß ein weniger privilegiertes Pro­ gramm kein höher priviligiertes Programm zum Zugriff auf ge­ schützte Daten benutzen kann. Wenn keine Privilegverletzung er­ mittelt wird, so wird auf der Grundlage der Identifikation ei­ ner Deskriptortabelle und eines Deskriptors innerhalb dieser Tabelle durch den Selektor ein 8-Byte-Deskriptor vom Prozessor aus dem Speicher/Daten-Cache geholt. Dieser Deskriptor wird auf Privilegverletzungen geprüft. Wird keine Privilegverletzung ge­ funden, so wird der Deskriptor entscrambelt, und Informationen bezüglich des Segments, wie Größe und Ort des Segments, sowie Steuer- und Statusinformationen können in das Segmentregister geladen werden, um vom Programm ausgeführt zu werden.Referring now to Fig. 4, the process of loading a segment register is shown in block diagram form. Note that segment register loading is a basic operation for each segmentation memory management scheme. When the processor encounters a selector from a command such as MOVE SEG REG, the processor first tests the selector for any privilege violations, such that a less privileged program cannot use a more privileged program to access protected data . If no privilege violation is detected, an 8-byte descriptor is fetched from the memory / data cache by the processor based on the identification of a descriptor table and a descriptor within that table by the selector. This descriptor is checked for privilege violations. If no privilege violation is found, the descriptor is descrambled and information related to the segment, such as segment size and location, and control and status information can be loaded into the segment register to be executed by the program.

Wie für den Fachmann verständlich ist, stellt die Erfindung ein verbessertes Speichersystem zur Verfügung, indem sie zuvor geholte und getestete Deskriptoren in einem Assoziativspeicher zurückzuhalten ermöglicht. Bei nachfolgenden Segmentdeskriptor­ ladungen desselben Deskriptors wird der Segmentdeskriptor-Cache durchsucht. Wenn der Segmentdeskriptor-Cache die gewünschte Eingabe enthält, kann die Segmentregisterdatei direkt aus dem Segmentdeskriptor-Cache geladen werden, wodurch alle in einem Prozessor ohne Segmentdeskriptor-Cache erforderlichen Schritte übergangen werden. Auf diese Weise wird das Leistungsvermögen des Speichersegmentierungssystems wesentlich erhöht.As is understood by those skilled in the art, the invention provides an improved storage system is available by using previously fetched and tested descriptors in an associative memory allows to hold back. With subsequent segment descriptor Loads of the same descriptor become the segment descriptor cache searched. If the segment descriptor cache is the one you want Contains the segment register file directly from the Segment descriptor cache can be loaded, making it all in one Processor with no segment descriptor cache steps required be ignored. This way the performance the memory segmentation system significantly increased.

Im folgenden wird auf Fig. 5 Bezug genommen, in der das Speichersystem für eine Segmentregisterladung entsprechend der Lehre der vorliegenden Erfindung gezeigt ist. Für den Fachmann dürfte es verständlich sein, daß die Dimensionen der Busse nur aus Anschaulichkeitsgründen angegeben sind und daß die Erfin­ dung ohne die speziellen Details dieser Darstellung realisiert werden kann. Wie in Fig. 5 gezeigt ist, enthält das System 500 einen Selektorprivileg-Prüfer 510 zum Prüfen von Privilegver­ letzungen im Selektor 501 derart, daß ein weniger privilegier­ tes Programm nicht Zugriff auf geschützte Daten gewinnen kann. In der aktuellen Implementierung übergeht der Selektor das Pri­ vilegierungsniveau des Programms, wenn das Privilegfeld des Segmentselektors ein Privilegniveau höheren Werts (d. h. niedri­ ger privilegiert) als das Programm enthält. Wenn der Selektor 501 den Privilegprüfer 510 passiert, wird er zum Deskriptor- Adreßgenerator 520 übertragen. Der Deskriptor-Adreßgenerator 520 erzeugt danach die für den Selektor richtige Deskriptora­ dresse in der Deskriptortabelle. Derzeit werden zwei Deskrip­ tortabellen verwendet - globale und lokale Deskriptortabellen. Das Adreßerzeugungsverfahren umfaßt die Änderung des aktuellen Segments zum Spezifizieren einer Tabelle auf der Basis der Aus­ wahl durch den Selektor 501 und das Einstellen der Effektiva­ dresse auf den Selektor-Indexwert. Mit der Effektivadresse kann ein Deskriptor aus dem Speicher 530 geholt und in den Ent­ scrambler 550 und den Deskriptor-Prüfer 540 zwischengespeichert werden. Der Deskriptor-Prüfer 540 prüft den Deskriptor, um des­ sen Zugriff auf das Segment zu kontrollieren. Wenn eine Zu­ griffsverletzung auftritt, wird an den Prozessor ein Fehler ge­ geben. Wenn keine Zugriffsverletzung auftritt, transformiert der Entscrambler 550 den Deskriptor in eine interne entscram­ belte Form, wie dies in Fig. 3 gezeigt ist. Ein erfolgreicher Deskriptor wird in die Segmentregisterdatei 560 geladen und ak­ tualisiert den Deskriptor-Cache 570 zur zukünftigen Verwendung.Referring now to Figure 5, the segment register load memory system is shown in accordance with the teachings of the present invention. It should be understandable for a person skilled in the art that the dimensions of the buses are given only for reasons of clarity and that the invention can be realized without the special details of this illustration. As shown in FIG. 5, system 500 includes a selector privilege checker 510 for checking privilege violations in selector 501 such that a less privileged program cannot gain access to protected data. In the current implementation, the selector overrides the privilege level of the program if the privilege field of the segment selector contains a privilege level higher (ie, less privileged) than the program. When the selector 501 passes the privilege checker 510 , it is transferred to the descriptor address generator 520 . The descriptor address generator 520 then generates the correct descriptor address for the selector in the descriptor table. Two descriptor tables are currently used - global and local descriptor tables. The address generation process involves changing the current segment to specify a table based on the selection by selector 501 and setting the rms address to the selector index value. With the effective address, a descriptor can be fetched from the memory 530 and temporarily stored in the descrambler 550 and the descriptor checker 540 . Descriptor checker 540 checks the descriptor to control its access to the segment. If an access violation occurs, an error is given to the processor. If there is no access violation, the descrambler 550 transforms the descriptor into an internal descrambled form, as shown in FIG. 3. A successful descriptor is loaded into segment register file 560 and updates descriptor cache 570 for future use.

Im folgenden wird auf Fig. 6 Bezug genommen. In dieser ist ein Ablaufdiagramm gezeigt, das die Operationsfolge des Ladens eines Segmentdeskriptors angibt. Wenn - wie in einem MOV-Sreg- Befehl - der Selektor 501 auftritt, wird der Deskriptor-Cache 570 durchsucht. Wenn ein entsprechender Deskriptor gefunden wird ("ein Treffer"), so wird der Deskriptor aus dem Deskrip­ tor-Cache 570 in die Segmentregisterdatei 560 zusammen mit dem Selektor 501 geladen. Wenn kein entsprechender Deskriptor ge­ funden wird ("ein Fehlversuch"), so wird der Selektor 501 auf Privilegverletzungen geprüft, wobei ein Fehler bei einem Selek­ tor mit unzureichendem Privilegniveau erzeugt werden kann. Wenn der Selektor 501 den Privileg-Prüfer 510 passiert, so kann die lineare Deskriptoradresse berechnet werden, und der Deskriptor wird aus dem Speicher 530 geholt. Der Deskriptor wird ebenfalls auf sein Privilegniveau überprüft, und bei Privilegverletzungen wird ein Fehler erzeugt. Der Deskriptor wird entscrambelt bzw. umformatiert und danach in die Segmentregisterdatei 560 gela­ den. Der entscrambelte Deskriptor wird auch zur Aktualisierung des Deskriptor-Cache 570 verwendet.In the following, reference is made to FIG. 6. In this is shown a flow chart indicating the sequence of operations of loading a segment descriptor. When the selector 501 occurs, as in a MOV Sreg instruction, the descriptor cache 570 is searched. If a corresponding descriptor is found ("a hit"), the descriptor is loaded from the descriptor cache 570 into the segment register file 560 together with the selector 501 . If no corresponding descriptor is found ("a failed attempt"), the selector 501 is checked for privilege violations, and an error can be generated in a selector with an insufficient level of privilege. When selector 501 passes privilege checker 510 , the linear descriptor address can be calculated and the descriptor is fetched from memory 530 . The descriptor is also checked for its privilege level, and an error is generated in the event of privilege violations. The descriptor is descrambled or reformatted and then loaded into the segment register file 560 . The descrambled descriptor is also used to update descriptor cache 570 .

Im folgenden wird auf Fig. 7 Bezug genommen, in der ein Diagramm eines Segmentdeskriptor-Cache in aktueller Implemen­ tierung gezeigt ist. Wenn auch ein 4-zu-16-Satz-Assoziativ- Cache dargestellt ist, sollte für den Fachmann klar sein, daß andere Organisationen zum Erreichen der gewünschten Funktiona­ lität ohne weiteres realisiert werden können. Der Deskriptor- Cache 770 ist in drei Datenfelder bzw. Arrays unterteilt: ein Tag-Array 720, ein Daten-Array 730 und ein Am-längsten-unbe­ nutzt(LRU)-Array 710. Die Selektorbits (4:3) dienen als die Satznummer und als Index in den Deskriptor-Cache. Jeder Satz besteht aus 4 "Wegen" von denen jeder assoziativ nach dem ge­ wünschten Eintrag durchsucht wird.Referring now to Fig. 7, a diagram of a segment descriptor cache is shown in current implementation. While a 4-by-16 set associative cache is shown, it should be apparent to those skilled in the art that other organizations can be readily implemented to achieve the desired functionality. The descriptor cache 770 is divided into three arrays: a tag array 720 , a data array 730, and a longest unused (LRU) array 710 . The selector bits (4: 3) serve as the record number and as an index in the descriptor cache. Each sentence consists of 4 "paths", each of which is searched associatively for the desired entry.

Der LRU-Eintrag 715 besteht aus 3 Bits, die zur Bestimmung desjenigen Weges verwendet werden, der im Satz am längsten un­ benutzt worden ist. Wenn ein neuer Eintrag in den Deskriptor- Cache eingegeben werden soll, so bestimmt der LRU-Eintrag des Satzes, welcher Eintrag mit minimaler Leistungsbeeinträchtigung ersetzt werden kann. Wie in Fig. 8 gezeigt ist, dient ein Pseudo-LRU-Algorithmus in Verbindung mit den drei LRU-Bits, ge­ nannt L0, L1 und L2, zur Bestimmung des zu ersetzenden Ein­ trags.The LRU entry 715 consists of 3 bits, which are used to determine the path that has been used the longest in the block. When a new entry is to be entered into the descriptor cache, the LRU entry of the set determines which entry can be replaced with minimal performance degradation. As shown in Fig. 8, a pseudo LRU algorithm in conjunction with the three LRU bits, called L0, L1 and L2, is used to determine the entry to be replaced.

Das Deskriptor-Tag 740 aus dem Tag-Array 720 enthält die restlichen Selektorbits und das Privilegniveau des Prozessors, wenn der Eintrag in den Deskriptor-Cache eingesetzt wurde. Das Tag enthält auch ein Gültigkeitsbit 741, das anzeigt, ob der Eintrag gültig ist, und ein Codesegment-Flag (CS) 742. Das CS- Flag 742 dient zur Identifizierung der Art des Cache-gespei­ cherten Deskriptors, da - anders als bei Datensegmenten - un­ terschiedliche Schutzprüfungen für CS angewendet werden. Das Daten-Array 730 enthält ungescrambelte Segmentdeskriptoren, von denen jeder Zugriffsrechte 751, Basisadresse 752 und Grenze 753 enthält.Descriptor tag 740 from tag array 720 contains the remaining selector bits and processor privilege level when the entry was placed in the descriptor cache. The tag also contains a valid bit 741 , which indicates whether the entry is valid, and a code segment flag (CS) 742 . The CS flag 742 is used to identify the type of cache-stored descriptor, because - unlike data segments - different protection checks are used for CS. The data array 730 contains unscrambled segment descriptors, each of which contains access rights 751 , base address 752 and boundary 753 .

Claims (6)

1. Speicher-Segmentierungssystem für einen Mikroprozessor, wobei ein in einem zweiten Format befindlicher Segmentdeskrip­ tor (350) in Abhängigkeit von einem Ladebefehl mit einem Seg­ mentselektor (501) in ein Segmentregister (560) geladen wird, gekennzeichnet durch ,
den Segmentselektor (501) aufnehmende Deskriptor-Cachemit­ tel (570; 770) zur Speicherung mehrerer Segmentdeskriptoren (350) in dem zweiten Format, die jeweils mehreren Segmentselek­ toren (501) derart zugeordnet sind, daß die Deskriptor-Cache­ mittel (570; 770) einen Segmentdeskriptor (350) in dem zweiten Format an das Segmentregister (560) ausgeben, wenn der Segment­ deskriptor (350) in dem zweiten Format dem Segmentselektor (501) zugeordnet ist;
Selektor-Prüfmittel (510), welche den Segmentselektor (501) aufnehmen, wenn kein in den Deskriptor-Cachemitteln (570; 770) befindlicher Segmentdeskriptor dem Segmentselektor (501) zuge­ ordnet ist, wobei die Selektor-Prüfmittel (510) so ausgebildet sind, daß sie feststellen, ob der Segmentselektor ein erstes vorgegebenes Privilegniveau hat;
Deskriptor-Linearadressen-Generatormittel (520), die mit den Selektor-Prüfmitteln (510) gekoppelt sind und eine lineare Deskriptoradresse aus dem Segmentselektor (501) erzeugen;
Deskriptor-Abrufmittel, die auf der Basis der linearen De­ skriptoradresse einen Segmentdeskriptor (300) in einem ersten Format aus einer Deskriptortabelle holen;
Deskriptor-Testmittel (540), die feststellen, ob der Seg­ mentdeskriptor (300) in dem ersten Format ein zweites vorgege­ benes Privilegniveau hat; und
Deskriptor-Formatierungsmittel (550) zum Umformatieren des im ersten Format befindlichen Segmentdeskriptors in das zweite Format, wenn der Segmentdeskriptor (300) im ersten Format das zweite vorgegebene Privilegniveau hat, wobei die Formatierungs­ mittel (550) den Segmentdeskriptor (350) im zweiten Format an die Deskriptor-Cachemittel (570) ausgeben, um deren Inhalt der­ art zu aktualisieren, daß der Segmentdeskriptor (350) in dem zweiten Format dem Segmentselektor (501) zugeordnet wird, wobei die Deskriptor-Cachemittel (570) auch den Segmentdeskriptor (350) in dem zweiten Format an das Segmentregister (560) ausge­ ben und wobei der Segmentdeskriptor (350) in dem zweiten Format direkt aus den Deskriptor-Cachemitteln (570) ladbar ist, wenn der Segmentselektor (501) von den Deskriptor-Cachemitteln (570) aufgenommen wird.
1. Memory segmentation system for a microprocessor, a segment descriptor ( 350 ) in a second format being loaded into a segment register ( 560 ) as a function of a load command with a segment selector ( 501 ), characterized by
the segment selector ( 501 ) receiving descriptor cache ( 570 ; 770 ) for storing a plurality of segment descriptors ( 350 ) in the second format, which are each assigned to a plurality of segment selectors ( 501 ) such that the descriptor cache means ( 570 ; 770 ) output a segment descriptor ( 350 ) in the second format to the segment register ( 560 ) if the segment descriptor ( 350 ) in the second format is assigned to the segment selector ( 501 );
Selector checking means ( 510 ) which receive the segment selector ( 501 ) if no segment descriptor located in the descriptor cache means ( 570 ; 770 ) is assigned to the segment selector ( 501 ), the selector checking means ( 510 ) being designed in such a way that that they determine whether the segment selector has a first predetermined privilege level;
Descriptor linear address generator means ( 520 ) coupled to the selector checking means ( 510 ) and generating a linear descriptor address from the segment selector ( 501 );
Descriptor fetching means that, based on the linear descriptor address, fetches a segment descriptor ( 300 ) in a first format from a descriptor table;
Descriptor test means ( 540 ) for determining whether the segment descriptor ( 300 ) in the first format has a second predetermined privilege level; and
Descriptor formatting means ( 550 ) for reformatting the segment descriptor in the first format into the second format when the segment descriptor ( 300 ) in the first format has the second predetermined privilege level, the formatting means ( 550 ) indicating the segment descriptor ( 350 ) in the second format output the descriptor cache means ( 570 ) to update their content such that the segment descriptor ( 350 ) in the second format is assigned to the segment selector ( 501 ), the descriptor cache means ( 570 ) also the segment descriptor ( 350 ) in output the second format to the segment register ( 560 ) and wherein the segment descriptor ( 350 ) in the second format can be loaded directly from the descriptor cache means ( 570 ) when the segment selector ( 501 ) is received by the descriptor cache means ( 570 ) .
2. Speicher-Segmentierungssystem nach Anspruch 1, dadurch gekennzeichnet, daß die Deskriptor-Cachemittel (570; 770) ent­ halten:
ein Satz-Array (710) mit mehreren Sätzen, von denen einer von dem Segmentselektor (501) ausgewählt wird und jeder nach einem vorgegebenen Ersetzungsalgorithmus (Fig. 8) ersetzbar ist;
ein Tag-Array (720) mit mehreren Deskriptor-Tags (740), wo­ bei das Tag-Array in mehrere Sätze organisiert ist, von denen jeder aus mehreren mit den Sätzen aus dem Satz-Array satzasso­ ziativen Wegen besteht; und
einem Daten-Array (730) mit mehreren Segmentdeskriptoren (750) im zweiten Format, wobei das Daten-Array satzassoziativ mit jedem der Sätze des Tag-Array ist.
2. Memory segmentation system according to claim 1, characterized in that the descriptor cache means ( 570 ; 770 ) contain ent:
a set array ( 710 ) with a plurality of sets, one of which is selected by the segment selector ( 501 ) and each can be replaced according to a predefined replacement algorithm ( FIG. 8);
a tag array ( 720 ) having a plurality of descriptor tags ( 740 ) where the tag array is organized into multiple sets, each of which consists of multiple paths associative with the sets from the set array; and
a data array ( 730 ) with a plurality of segment descriptors ( 750 ) in the second format, the data array being set associative with each of the sets of the tag array.
3. Speicher-Segmentierungssystem nach Anspruch 2, dadurch gekennzeichnet, daß das Satz-Array (710) so ausgebildet ist, daß es einen Am-längsten-unbenutzt-Ersetzungsalgorithmus (LRU) implementiert.3. Memory segmentation system according to claim 2, characterized in that the set array ( 710 ) is designed such that it implements a longest-unused replacement algorithm (LRU). 4. Verfahren zum Laden eines in einem zweiten Format be­ findlichen Segmentdeskriptors in ein Segmentregister in Abhän­ gigkeit von einem Segmentselektor-Ladebefehl unter Verwendung eines Mikroprozessor-Speichermanagementsystems, bei dem ein Segment des Speichers durch den im zweiten Format in einem Seg­ mentregister befindlichen Segmentdeskriptor spezifiziert wird und wobei der Segmentdeskriptor in dem zweiten Format von einem Segmentselektor spezifiziert wird, dadurch gekennzeichnet,
daß ein Segmentselektor in einen Deskriptor-Cache eingege­ ben wird,
daß der Deskriptor-Cache durchsucht wird, um festzustellen, ob ein dem Segmentselektor entsprechender Segmentdeskriptor in dem zweiten Format im Deskriptor-Cache vorhanden ist, daß im Falle des Vorhandenseins der Segmentdeskriptor in dem zweiten Format in das Segmentregister geladen wird, wobei der Deskrip­ tor-Cache mehrere Segmentdeskriptoren in dem zweiten Format enthält, die mehreren entsprechenden Segmentselektoren zugeord­ net sind;
daß bei Fehlen des Segmentdeskriptors in dem zweiten Format in dem Deskriptor-Cache der Segmentselektor einer Selektorprü­ fung unterworfen wird, um festzustellen, ob der Segmentselektor ein erstes vorgegebenes Privilegniveau hat;
daß eine lineare Deskriptoradresse erzeugt wird;
daß der Segmentdeskriptor in einem ersten Format aus einer Deskriptortabelle auf der Basis der linearen Deskriptoradresse geholt wird, wobei die Deskriptortabelle mehrere Segmentde­ skriptoren in dem ersten Format speichert;
daß der Segmentdeskriptor in dem ersten Format einer Prü­ fung unterworfen wird, um festzustellen, ob der Segmentdeskrip­ tor in dem ersten Format ein zweites vorgegebenes Privilegni­ veau hat;
daß der Segmentdeskriptor in dem ersten Format in das zweite Format umformatiert wird,
daß der Segmentdeskriptor in dem zweiten Format in das Seg­ mentregister geladen wird und
daß der Deskriptor-Cache mit dem Segmentdeskriptor im zwei­ ten Format derart aktualisiert wird, daß der Deskriptor-Cache bei nachfolgendem Empfang des gleichen Segmentselektors ein La­ den des im zweiten Format befindlichen Segmentdeskriptors di­ rekt in das Segmentregister bewirkt,
wodurch ein Segment spezifiziert wird, das auf der Basis des Segmentdeskriptors im zweiten Format in das Segmentregister geladen wird.
4. A method of loading a segment descriptor in a second format into a segment register in response to a segment selector load using a microprocessor memory management system in which a segment of the memory is specified by the segment descriptor in the second format in a segment register and wherein the segment descriptor in the second format is specified by a segment selector, characterized in that
that a segment selector is entered into a descriptor cache,
that the descriptor cache is searched to determine whether a segment descriptor corresponding to the segment selector is present in the second format in the descriptor cache, that if the segment descriptor is present in the second format it is loaded into the segment register, the descriptor Cache contains a plurality of segment descriptors in the second format which are assigned to a plurality of corresponding segment selectors;
that in the absence of the segment descriptor in the second format in the descriptor cache, the segment selector is subjected to a selector check to determine whether the segment selector has a first predetermined privilege level;
that a linear descriptor address is generated;
that the segment descriptor is fetched in a first format from a descriptor table based on the linear descriptor address, the descriptor table storing a plurality of segment descriptors in the first format;
that the segment descriptor in the first format is checked to determine whether the segment descriptor in the first format has a second predetermined privilege level;
that the segment descriptor is reformatted in the first format into the second format,
that the segment descriptor is loaded into the segment register in the second format and
that the descriptor cache is updated with the segment descriptor in the second format such that the descriptor cache causes the segment descriptor in the second format to be loaded directly into the segment register when the same segment selector is subsequently received,
thereby specifying a segment that is loaded into the segment register based on the segment descriptor in the second format.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß ein Deskriptor-Cache mit einem Satz-Array, einem Tag-Array und einem Daten-Array verwendet wird und daß beim Durchsuchen des Deskriptor-Caches wie folgt vorgegangen wird:
der Selektor spezifiziert einen Satz aus dem Satz-Array,
ein Tag aus dem Tag-Array entsprechend dem Satz aus dem Satz-Array wird ausgewählt, wobei das Tag-Array in mehrere mit dem Satz-Array satzassoziative Wege organisiert ist, und
der Segmentdeskriptor dem zweiten Format wird entsprechend dem Tag aus dem Tag-Array ausgewählt.
5. The method according to claim 4, characterized in that a descriptor cache with a set array, a tag array and a data array is used and that the search of the descriptor cache is carried out as follows:
the selector specifies a sentence from the sentence array,
a tag from the tag array corresponding to the sentence from the sentence array is selected, the tag array being organized in several ways associative with the sentence array, and
the second format segment descriptor is selected according to the tag from the tag array.
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, daß jeder der Sätze aus dem Satz-Array entsprechend einem vorgege­ benen Ersetzungsalgorithmus ersetzt wird.6. The method according to claim 5, characterized in that each of the sentences from the sentence array corresponds to a given one replacement algorithm is replaced.
DE4234194A 1991-10-16 1992-10-10 SYSTEM AND METHOD FOR MEMORY SEGMENTATION FOR A MICROPROCESSOR Ceased DE4234194A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US77715591A 1991-10-16 1991-10-16

Publications (1)

Publication Number Publication Date
DE4234194A1 true DE4234194A1 (en) 1993-04-22

Family

ID=25109440

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4234194A Ceased DE4234194A1 (en) 1991-10-16 1992-10-10 SYSTEM AND METHOD FOR MEMORY SEGMENTATION FOR A MICROPROCESSOR

Country Status (4)

Country Link
JP (1) JPH05210593A (en)
DE (1) DE4234194A1 (en)
FR (1) FR2683061B1 (en)
GB (1) GB2260629B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4234695A1 (en) * 1991-10-16 1993-04-22 Intel Corp STORAGE MANAGEMENT SYSTEM AND METHOD FOR MAINTAINING THE CACHE COHERENCY BETWEEN A DATA CACHE AND A SEGMENT DESCRIPTOR CACHE

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590297A (en) * 1994-01-04 1996-12-31 Intel Corporation Address generation unit with segmented addresses in a mircroprocessor
US6041396A (en) * 1996-03-14 2000-03-21 Advanced Micro Devices, Inc. Segment descriptor cache addressed by part of the physical address of the desired descriptor
US6609199B1 (en) 1998-10-26 2003-08-19 Microsoft Corporation Method and apparatus for authenticating an open system application to a portable IC device
US7174457B1 (en) 1999-03-10 2007-02-06 Microsoft Corporation System and method for authenticating an operating system to a central processing unit, providing the CPU/OS with secure storage, and authenticating the CPU/OS to a third party
US6775779B1 (en) 1999-04-06 2004-08-10 Microsoft Corporation Hierarchical trusted code for content protection in computers
US6651171B1 (en) 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
US6757824B1 (en) 1999-12-10 2004-06-29 Microsoft Corporation Client-side boot domains and boot rules
US6938164B1 (en) 2000-11-22 2005-08-30 Microsoft Corporation Method and system for allowing code to be securely initialized in a computer
US7159240B2 (en) 2001-11-16 2007-01-02 Microsoft Corporation Operating system upgrades in a trusted operating system environment
US7243230B2 (en) 2001-11-16 2007-07-10 Microsoft Corporation Transferring application secrets in a trusted operating system environment
US7890771B2 (en) 2002-04-17 2011-02-15 Microsoft Corporation Saving and retrieving data based on public key encryption
US7487365B2 (en) 2002-04-17 2009-02-03 Microsoft Corporation Saving and retrieving data based on symmetric key encryption

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3812602A1 (en) * 1987-04-17 1988-11-03 Hitachi Ltd Method and system to control a virtual memory

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3800286A (en) * 1972-08-24 1974-03-26 Honeywell Inf Systems Address development technique utilizing a content addressable memory
GB2176918B (en) * 1985-06-13 1989-11-01 Intel Corp Memory management for microprocessor system
AU603167B2 (en) * 1986-12-23 1990-11-08 Bull Hn Information Systems Inc. Segment descriptor unit

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3812602A1 (en) * 1987-04-17 1988-11-03 Hitachi Ltd Method and system to control a virtual memory

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Intel, Microprocessors, 1990, S. 4-14, 4-15, 4-51, 4-46, 4-53, 4-29, 4-71 bis 4-73 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4234695A1 (en) * 1991-10-16 1993-04-22 Intel Corp STORAGE MANAGEMENT SYSTEM AND METHOD FOR MAINTAINING THE CACHE COHERENCY BETWEEN A DATA CACHE AND A SEGMENT DESCRIPTOR CACHE

Also Published As

Publication number Publication date
JPH05210593A (en) 1993-08-20
FR2683061A1 (en) 1993-04-30
FR2683061B1 (en) 1995-02-17
GB2260629B (en) 1995-07-26
GB9216731D0 (en) 1992-09-23
GB2260629A (en) 1993-04-21

Similar Documents

Publication Publication Date Title
DE3833933C2 (en) Information processing device with an address expansion function
DE19526007C2 (en) Horizontally partitioned instruction cache
DE69721590T2 (en) A RANGE BASED SIDE-TABLE-WALK-BIT USING METHOD AND DEVICE
DE10002120B4 (en) An address translation buffer arrangement and method for operating an address translation buffer arrangement
DE3618163C2 (en) Memory management arrangement for a microprocessor system
DE60003273T2 (en) Method and device for generating an input address
DE3151745C2 (en)
DE69634315T2 (en) Method and apparatus for using a load command that does not cause an error
DE2517276A1 (en) DATA PROCESSING SYSTEM
DE60036960T2 (en) DISTINCTION OF FINE CORR TRANSLATION
DE2948285A1 (en) ADDRESS CONTROL SYSTEM FOR SOFTWARE SIMULATION
DE4234194A1 (en) SYSTEM AND METHOD FOR MEMORY SEGMENTATION FOR A MICROPROCESSOR
DE2630323A1 (en) DATA STORAGE DEVICE
DE3131204A1 (en) ADDRESS CONVERSION AND GENERATOR ARRANGEMENT
DE4234695C2 (en) Computer storage system and method for maintaining cache coherence between a data cache and a segment descriptor cache
DE69816714T2 (en) Instrumentation arrangement for a machine with non-uniform memory accesses
DE3911721C2 (en)
DE3919802C2 (en) Memory control system for a multiprocessor system
DE3832758C2 (en) Method for addressing a write-back virtual cache
EP1449091B1 (en) Method for synchronising a memory with the main memory of a computer
DE69626263T2 (en) System for dispatching multiple instructions without branch break in a pipeline processor
DE10127194B4 (en) Method and device for hiding non-functional memory cells
DE19957612A1 (en) Memory access management, e.g. for synchronous dynamic random access memories, involves comparing accessed memory location in access request with locations in page index
EP0966711B1 (en) Microcomputer with a memory management unit
EP1564754B1 (en) Method and device for managing data in a non-volatile memory

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8131 Rejection