DE3334579A1 - DEVICE FOR STORING IN A CACHE - Google Patents

DEVICE FOR STORING IN A CACHE

Info

Publication number
DE3334579A1
DE3334579A1 DE19833334579 DE3334579A DE3334579A1 DE 3334579 A1 DE3334579 A1 DE 3334579A1 DE 19833334579 DE19833334579 DE 19833334579 DE 3334579 A DE3334579 A DE 3334579A DE 3334579 A1 DE3334579 A1 DE 3334579A1
Authority
DE
Germany
Prior art keywords
address
data
cache
base
frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19833334579
Other languages
German (de)
Other versions
DE3334579C2 (en
Inventor
Paul 27607 Raleigh N.C. Bowden
Gary 9404 Mountain View Calif. Davidian
Thomas Monk 27514 Chapel Hill N.C. Jones
James Thomas 27511 Cary N.C. Nealon
John Frederick 27609 Raleigh N.C. Pilat
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.)
EMC Corp
Original Assignee
Data General 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
Priority claimed from US06/425,027 external-priority patent/US4652996A/en
Priority claimed from US06/425,030 external-priority patent/US4652995A/en
Priority claimed from US06/425,029 external-priority patent/US4473881A/en
Application filed by Data General Corp filed Critical Data General Corp
Publication of DE3334579A1 publication Critical patent/DE3334579A1/en
Application granted granted Critical
Publication of DE3334579C2 publication Critical patent/DE3334579C2/de
Granted 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/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

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)

Description

A ΑΠ,A ΑΠ, -

f.1 -f.1 -

Anmelder: Stuttgart, 23. September 1983 Applicant: Stuttgart, September 23, 1983

Data General Corp. P 4417 R/C vieatboro, Mass. 01581Data General Corp. P 4417 R / C vieatboro, Mass. 01581

Vertreter:Representative:

Kohler - Schrfindling - Späth Patentanwälte iiohenWielstraße 41 7000 Stuttgart 1Kohler - Schrfindling - Späth Patent attorneys iiohenWielstraße 41 7000 Stuttgart 1

Vor richtung zum Speichern in einem Cache Before direction for storing in a cache

Querverweise auf verwandte_ Anmeldungen Cross-references to related_ registrations

Die vorliegende Patentanmeldung ist verwandt mit der US-Patentanmeldung Nr. 266 539, angemeldet am 22.Mai 1981, und der US-Patentanmeldung Hr. 301 999» angemeldet am 11.September 1981, und mit anderen sich auf diese Patentanmeldungen beziehenden Patentanmeldungen.The present application is related to U.S. Patent Application No. 266,539, filed May 22, 1981, and US patent application Mr. 301 999 »registered on September 11, 1981, and others refer to these patent applications related patent applications.

Hintergrund der Erfindung H invention ackground of Fiction

1 Gebiet der Erfindung:1 Field of the invention:

Die vorliegende Erfindung bezieht sich allgemein auf digitale Computersyteme, die in ihren CPUs Caches verwenden, und mehr im einzelnen auf digitale Computersysteme, die Caches zum Interpretieren von Operanden in Befehlen verwenden.The present invention relates generally to digital computer systems that use caches in their CPUs and more specifically to digital computer systems that use caches to interpret operands in instructions.

2 Beschreibung des Stands der Technik - Pig· 1 und 2 2.1 Einführung in die Caches:2 Description of the prior art - Pig 1 and 2 2.1 Introduction to the caches:

Viele bekannte Computersysteme verwenden Caches in ihren CPUs. Ein Caches ist ein schneller Speicher Innerhalb der CPU, der dazu verwendet wird, von der CPU bei der Ausführung von Programmen häufig verwendete Datenelemente zu speichern. Der Zugriff zu in dem Cache gespeicherten Datenelementen istMany known computer systems use caches in their CPUs. A cache is a fast memory within the CPU used to store data items frequently used by the CPU when executing programs. Access to data items stored in the cache is

W. · ♦ w „ 6 <W. · ♦ w "6 <

schneller als der Zugriff zu Datenelementen, die in dem Hauptspeicher des Computersystems enthalten 3ind, und folglich kann das Einspeichern von häufig verwendeten Datenelementen in einen Cache (im folgenden als "Eincachen" "bezeichnet) die Ausführung von Programmen durch das Computersystem beschleunigen.faster than accessing data items stored in the Main memory of the computer system contain 3ind, and consequently can store frequently used data elements in a cache (hereinafter referred to as "caching") speed up the execution of programs by the computer system.

Der Zugriff zu einem Cache erfolgt mittels eines Schlüssels. Datenelemente, die eingecacht werden können, sind mit Schlüsseln verbunden, und der Schlüssel wird in den Cache eingegeben. Wenn der Cache das dem Schlüssel zugeordnete Datenelement enthält, gibt der Cache das Datenelement aus; anderenfalls erzeugt der Cache ein Cachefehlsignal. Die CPU antwortet auf das Cachefehlsignal dadurch, daß sie das dem Schlüssel entsprechende Datenelement in den Cache lädt.A cache is accessed using a key. Data elements that can be cached are with Keys are connected, and the key is entered into the cache. If the cache is the one associated with the key Contains data item, the cache outputs the data item; otherwise the cache generates a cache miss signal. The CPU responds to the cache miss signal by loading the data element corresponding to the key into the cache.

Im allgemeinen werden Caches für zwei Arten von Datenelementen verwendet: für solche, die Kopien von im Hauptspeicher enthaltenen Datenelementen sind, und für solche, die das Ergebnis von durch die CPU ausgeführten Operationen sind. Fig. 1 ist ein Blockdiagramm, das beide Verwendungen von Cachee bei bekannten Computersystemen illustriert. Ein Computersystem 101 hat zwei Hauptkomponenten: eine CPU 102 und einen Hauptspeicher 103« Der Hauptspeicher 103 enthält Datenelemente und Befehle (Instruktionen) und die CPU 102 führt Operationen mit den Datenelementen im Hauptspeicher 103 als Folge von Befehlen aus. Die CPU 102 enthält zwei Caches, eine Resultatcache 105 und einen Datenkopiecache 10^. Der Hauptspeicher 103 enthält eine Tabelle 109, die Tabelleneinträge (TEs) 111 (1) bis 111 (n) enthält, eine Tabelle 109' mit TEs 111 (1)' bis 111 (k )', eine Tabelle Rechendaten (TCD) 117 und eincachebare Daten 113> äie einca-In general, caches are used for two types of data items: those that hold copies of in main memory and for those that are the result of operations performed by the CPU are. Figure 1 is a block diagram illustrating both uses of Cachee in known computer systems. A Computer system 101 has two main components: a CPU 102 and a main memory 103. The main memory 103 contains Data items and commands (instructions) and the CPU 102 performs operations on the data items in main memory 103 as a sequence of commands. The CPU 102 includes two caches, a result cache 105 and a data copy cache 10 ^. The main memory 103 contains a table 109, contains the table entries (TEs) 111 (1) to 111 (n), a Table 109 'with TEs 111 (1)' to 111 (k) ', a table Calculation data (TCD) 117 and cacheable data 113> aie single

chebare Datenelemente (EDI) 115 (1) bis 115 (ft) enthält. Die TEs 111 werden durch Tabellenschlüssel (TKs) 110 identifiziert und die EDIs 115 werden durch Datenschlüssel (DKs) identifiziert.contains editable data elements (EDI) 115 (1) to 115 (ft). the TEs 111 are identified by table keys (TKs) 110 and EDIs 115 are identified by data keys (DKs) identified.

Der Resultatcache·105 enthält Resultateinträge (REs) 106. Jeder RE 106 enthält ein VR-PeId 104, da3 anzeigt, ob der RE 106 gültig ist. Ein gültiger RE 106 entspricht einem : einzelnen TE 111 (a) und enthält Resultate, die bei Berechnungen erhalten wurden, die den TE 111 (a) xind die TCD 117 verwenden. Ein gültiger RE 106 (a) entsprechend einem TE 111 (a) ist mittels des TK 110 (a) entsprechend dem TE 111 (a) zugänglich.The result cache · 105 contains result entries (REs) 106. Each RE 106 contains a VR PeId 104, which indicates whether the RE 106 is valid. A valid RE 106 corresponds to a : single TE 111 (a) and contains results obtained from calculations using the TE 111 (a) and the TCD 117. A valid RE 106 (a) corresponding to a TE 111 (a) can be accessed using the TK 110 (a) corresponding to the TE 111 (a).

Der Datenkopiecache 107 enthält Kopieeinträge (CE) 108. Jeder CE 108 enthält ein VC-FeId 114, das anzeigt, ob der CE 108 gültig ist. Wenn dies der Fall ist, enthält der CE 106 eine Kopie der Daten in einem einzelnen EDI 115 (b) und ist mittels des DK 112 (b) entsprechend dem EDI 115 (b) zugänglich.The data copy cache 107 contains copy entries (CE) 108. Each CE 108 contains a VC field 114 that indicates whether the CE 108 is valid. If so, the CE 106 contains a copy of the data in a single EDI 115 (b) and is via the DK 112 (b) in accordance with EDI 115 (b) accessible.

Sowohl im Datenkopiecache 107 sowie im Resultatcache 105 tritt ein Cachefehlsignal auf, wenn dem Cache ein Schlüssel angeboten wird und der Cache entweder keinen dem Schlüssel entsprechenden Eintrag aufweist oder' der dem 'Jchlüssel entsprechende Eintrag ungültig ist. Die CPU 102 antwortet auf das Cachefehlsignal dadurch, daß sie den Cacheeintrag entsprechend dem SchhlüS3el lädt. Im Fall des Datenkopiecache 107 geschieht nicht mehr als daß die Daten im richtigen EDI 115 aus dem Speicher abgerufen werden und in den Datenkopiecache 107 in einem CE 108 eingespeichert werden, zu dem durch den entsprechenden DK 112 zugegriffen wird. ImA cache miss signal occurs in both data copy cache 107 and result cache 105 if the cache has a key is offered and the cache either does not have an entry corresponding to the key or the one corresponding to the key corresponding entry is invalid. The CPU 102 responds to the cache miss signal by making the cache entry charges according to the SchhlüS3el. In the case of the data copy cache 107, nothing more happens than that the data is in the correct one EDI 115 can be retrieved from memory and transferred to the Data copy cache 107 can be stored in a CE 108, which is accessed by the corresponding DK 112. in the

Pall des Resultatcaohe 105 müssen Daten aus dem richtigen TE 111 und TCD 117 abgerufen werden, es müssen Berechnungen ausgeführt werden, und das Resultat muß in dem richtigen RE 106 im Rsultatcache 105 gespeichert werden.Pall desresultcaohe 105 need data from the correct TE 111 and TCD 117 are called up, calculations are required and the result must be stored in the correct RE 106 in the result cache 105.

.2.2 Grenzen der bekannten Caches:.2.2 Limits of the known caches:

Die Verwendung von Caches in jedem digitalen Computersystem wird durch die Tatsache eingeschränkt, daß die eingecachten Datenelemente ungültig werden können. Bei den Caches der Fig. 1 kann ein eingecachtes Datenelement auf dreierlei Weise ungiltig werden:The use of caches in any digital computer system is limited by the fact that the cached Data elements can become invalid. In the caches of FIG. 1, a cached data element can be of three types Wisely become invalid:

Wenn, ein Datenelement im Hauptspeicher 103 ist, wird das eingecachte Datenelement ungültig, wenn das Datenelement im Hauptspeicher 103 seinen Wert ändert. If there is a data item in main memory 103, the cached data item becomes invalid when the data item in main memory 103 changes value.

Wenn ein Schlüssel seine Bedeutung ändert, wird daseingecachte Datenelement ungültig, zu dem durch den Schlüssel zugegriffen wird.When a key changes its meaning, it becomes cached Invalid data item accessed by the key.

- Wem. ein eingecachtes Resultat unter Verwendung eines anderen Datenelements berechnet wird und jenes Datenelement seinen Wert ändert, wird das eingecachte Resiltat ungültig.- Whom. a cached result is calculated using another data item and that If the data element changes its value, the cached resilience becomes invalid.

Pig. 1 zeigt alle diese Möglichkeiten. Falls das EDI 115 (b) seinen Wert ändert, dann ist der CE 108 (b) nicht langer eine Kopie des EDI 115 (b) und der CE 108 (b) muß ungültig gemacht werden. Der TK 110 mag als ein Schlüssel entweder zur Tabelle 109 oder zur Tabelle 109' dienen; falls diePig. 1 shows all of these possibilities. If the EDI 115 (b) changes value, then the CE 108 (b) is no longer a copy of the EDI 115 (b) and CE 108 (b) must be invalidated. The TK 110 likes to be used as a key either serve for table 109 or table 109 '; if the

C 3.C 3.

CPU 102 die Verwendung der Tabelle 109 beendet und mit der Verwendung der Tabelle 109' beginnt, entsprechen die REs 106 nicht den TEa 111' und alle REs 106 im Resultatcache 105 müssen ungültig gemacht werden; falls ein Datenelement in der TCD 117 seinen Wert ändert, müssen alle REs 106 im ,Resultatcache 105, die von jenem Datenelement abhängen, ungülig gemacht werden. Im letzten Fall ist e3 im allgemeinen unmöglich, festzustellen, welcher RE 106 von einem gegebenen Datenelement in der TCD 117 abhängt, und somit erfordert im allgemeinen jede Änderung' das Ungültigmachen von allen REs 106.CPU 102 terminated the use of table 109 and with the If the use of table 109 'begins, the REs 106 correspond not the TEa 111 'and all REs 106 in the result cache 105 must be made invalid; if a data element is in the TCD 117 changes its value, all REs 106 must im , Result cache 105 that depend on that data item will be invalidated. In the latter case, e3 is in general impossible to determine which RE 106 depends on a given data item in TCD 117, and so in general, any change will require 'invalidation' of all REs 106.

Manchmal ist es möglich, den ungültig gemacht3n Cacheeintrag erneut zu laden, wenn er ungültig gemacht ist. Im allgemeinen wird jedoch der ungültige Cacheeintrag ge Laden, wenn ein Cachefehlsignal auftritt. Daher wird, nachdem eine Änderung in der TCD 117 den Resultatcache 105 ungültig gemacht hat, der Resultatcache 105 schrittweise, entsprechand dem Auftrerten von Fehlsignalen bei den TKs 110 mit von lern neuen Wert der TCD 117 berechneten Resultaten wieder geladen. Falls die /**>. · TCD 117 ihren Wert nicht oft ändert, überwiegt die durch die Benutzung des Resultatcaches 105 gewonnene Leistung die zum Laden des Resultatcache 105 benötigte Zeit; wann jedoch die Änderungen häufig auftreten, sind die REs 106 im allgemeinen ungültig und die Verwendung des Resultatcache 106 in der CPU 102 führt zu keinem Gewinn oder sogar zu ainem Verlust an Effektivität.Sometimes it is possible to invalidate the 3n cache entry reload if invalidated. In general, however, the invalid cache entry will be loaded when a Cache miss occurs. Therefore, after a change in the TCD 117 has made the result cache 105 invalid, the result cache 105 step by step, corresponding to the display of incorrect signals in the TKs 110 are reloaded with the results calculated by the new value of the TCD 117. if the / **>. · TCD 117 does not change its value often, that outweighs by that Use of result cache 105 performance gained, the time required to load result cache 105; when, however, the Changes occur frequently, the REs 106 are generally invalid and the use of the result cache 106 in the CPU 102 leads to no gain or even a loss of effectiveness.

2.3 Eincachen von Speicheradressen in Abhängigkeit von Operanden - Fig. 2 und 2A2.3 Caching of memory addresses depending on Operands - Figures 2 and 2A

Die soeben beschriebenen Schwierigkeiten von Caches in Verbindung mit gewissen charakteristischen Eigenschaften von Standardcoinputerarchitekturen machen die Verwendung von Caches bisher in einem Schlüsselfeld schwierig: die Übersetzung eines Daten in einem Befehl spezifizierenden Operanden in die Speicheradresse dieser Daten. Wie in Pig. 2 dargestellt ist, enthält ein typischer Befehl 201 für die CPU einen Befe:ilscode 203 und einen oder mehr Operanden 205- Der Befehlscode 203 spezifiziert eine durch die· CPlT 102 mit den durch den Operanden 205 gekennzeichneten auszuführende Operation. Im allgemeinen ist der Operand ein Relativadresse-Operand 207· Bei solchen Operanden gibt es mindestens zwei Felder: Ein RS-FeId 209, das ein Mehrzweckregidter in der CPU 102 spezifiziert, und ein DISP-FeId 213, das eine binäre ganze Zahl enthält. Die ganze Zahl spezifiziert eine relative Adressierung, und das spezifizierte Register in der CPU 102 enthält eine Basisadresse. Die Adresse der durch den Relativadresse-Operanden 207 repräsentierten Daten wird erhalten durch Addition der durch das DISP-FeId 203 spezifizierten relatien Adresse zu der in dem Mehrzweckregister durch das RS-FeId 207 spezifizierten Ba3isadres3e. Zusätzlich mag der Relativadresse-Operand 207 andere Felder enthalten. Hier enthält der Relativadresse-Operand 207 noch ein Indirekt-Bit IB 211 , das angibt, daß die Adresse im Hauptspeicher 103, die durch Addition des Werts des DISP-Felds 213 zu dem in dem durch das RS-FeId 207 spezifizierten Register enthaltenen Wert nichb die Adresse der durch den Operanden repräsentierten Daten ist, sondern vielmehr die Adresse eines Zeigers, derThe difficulties of caches just described in connection with certain characteristic properties of Standard coin computer architectures make the use of Caches have so far been difficult in one key field: the translation of an operand specifying data in an instruction into the memory address of this data. Like in Pig. 2 includes a typical instruction 201 for the CPU a command: ilscode 203 and one or more operands 205- Der Instruction code 203 specifies one to be executed by the CPIT 102 with the operand 205 identified Surgery. In general, the operand is a relative address operand 207 · There are at least one such operand two fields: an RS field 209, which is a multipurpose register specified in the CPU 102, and a DISP field 213 which contains a binary integer. The integer specified relative addressing, and the specified register in CPU 102 contains a base address. the Address of the data represented by the relative address operand 207 is obtained by adding the data represented by the DISP field 203 related address to the in the general purpose register specified by the RS field 207 Ba3isadres3e. In addition, the relative address operand 207 may contain other fields. Here contains the relative address operand 207 still has an indirect bit IB 211, which indicates that the address in the main memory 103 which is carried out by Addition of the value of DISP field 213 to that in the by the RS field 207 specified value contained in the register is not the address of the data represented by the operand, but rather the address of a pointer that

ÄffApe

auf die Daten zeigt. Ein Zeiger iat ein Datenelement, dessen Wert die Adresse von Daten ist.pointing to the data. A pointer is a data element whose value is the address of data.

Fig.2 B gi"bt ein Beispiel dafür, wie eine Adresse aus Operanden "berechnet wird, die ein Register spezifizieren, das eine Basi3adresse und eine relative Adresse erthält. Die GPU 102 enthält einen Mehrzweckregistersatz GPRS 225, der Mehrzweckregister R 223 (O) bis R 223 (n) enthält. Für die Zwecke dieser Besprechung ist ein Mehrzweckregister jedes Register, das ein durch die CPU 102 ausgeführter Befehl auf einen willkürlichen Wert setzen kann. Der Inhalt eines Registers R 223 ist in Fig. 2 A durch cont(x) angegeben, wobei χ die Nummer von R 223 ist. Der Speicher 103 enthält einen Speicherabschnitt 215» der wiederum ein Datenelement 217 enthält. Das Datenelement 217 wird in einem Befehl durch BDO 219 repräsentiert, einen Relativadresse-Operanden (Base-Displacement Operand) 205 der soeben beschriebenen Art. Im BDO 219 repräsentiert b den Wert des RS-Felds 209, und c den Wert von DISP 213· R (b), das durch das RS-FeId 209 spezifiziert ist, enthält die Adresse im' Speicherabschnitt 215» die durch cont(b) spezifiziert wird. Der Pfeil 221 identifiziert den durch cont(b) spezifizierten Speicherplatz im Speicherabschnitt 215. Die GPU 102. erthält die Adresse des Datenelements 217 durch Aasführung der Rechnung cont(b) + c.Fig.2 B gives an example of how an address is made up of operands "that specify a register that receives a base address and a relative address. The GPU 102 includes a general purpose register set GPRS 225, the Contains general purpose registers R 223 (O) through R 223 (n). For the purposes of this discussion, each is a general purpose register Register that an instruction executed by CPU 102 can set to an arbitrary value. The content of a Register R 223 is indicated in Fig. 2A by cont (x), where χ is the number of R 223. The memory 103 contains a storage section 215 which in turn is a data item 217 contains. The data element 217 is represented in an instruction by BDO 219, a relative address operand (Base-Displacement Operand) 205 of the type just described. In BDO 219, b represents the value of RS field 209, and c is the value of DISP 213 · R (b) indicated by the RS field 209 is specified, the address in the memory section 215 contains »specified by cont (b). Of the Arrow 221 identifies the memory location in memory section 215 specified by cont (b). GPU 102 receives the address of the data element 217 by executing the invoice cont (b) + c.

Der Relativadresse-Operand 207, der sich auf das Datenelement 217 bezieht, mag immer wieder in einem Computerprogramm auftreten, das in der CPU 102 läuft, und die Adresse des Datenelements 217 ändert sich nicht. Dennoch ist es unpraktisch, die Adresse des Datenelements 217 in einen Cache einzucachen, der Relativadresse-Operanäen 207 alsThe relative address operand 207, which relates to the data element 217, may appear again and again in a computer program that runs in the CPU 102 and the address of data element 217 does not change. However, it is impractical to convert the address of data element 217 into a Cache, the relative address operands 207 as

: :,". . ι ι 3 ο ο ::, ".. ι ι 3 ο ο

Schlüssel verwendet. Dies ist deswegen der Fall, weil solch ein Cache tatsächlich ein Resultatcache ähnlich dem Resultatcache 105 der Fig. 1 iat. Der Inhalt jedes Eintrags im Cache wird unter Verwendung des Werts des in dem Operanden spezifizierten R 223 "berechnet. Jedoch können durch die CPU 102 ausgeführte Befehle den Wert jenes R 223 jederzeit und in einer zufällign Weise ändern, und so steht das spezifizierte R 223 im selben Verhältnis zu der eingecachten Adresse wie ein Datenelement in der TCD 117 im Verhältnis zu einem aus ihm berechneten RE 106 steht. Genauso wie der R 106 jedesmal, wenn das Datenelement in der TCD 117, von dem er abgeleitet ist, seinen Wert ändert, ungültig gemacht werden muß, so muß die eingecachte Adresse ungültig gemacht werden jedesmal dann, wenn das in dem der Adresse entsprechenden Operanden spezifizierte R 223 seinen Wert ändert.Key used. It is because of such a cache is actually a result cache similar to the result cache 105 of FIG. 1. The content of each entry in the Cache is calculated using the value of the R 223 "specified in the operand. However, the Instructions executed by CPU 102 change the value of that R 223 at any time and in a random manner, and so is the specified R 223 in the same proportion to the cached address as a data element in the TCD 117 in relation to a RE 106 calculated from it. Just like the R 106 every time the data element in the TCD 117, from from which it is derived, changes its value, must be invalidated, the cached address must be invalidated every time the R 223 specified in the operand corresponding to the address changes its value.

Die vorliegende Erfindung schafft ein verbessertes Computersysbem, bei dem die aus Operanden übersetzten Adressen eingecacht werden können, und eine Eincachvorrichtung, bei der gewisse Änderungen der zum Berechnen der eingecachten Daten verwendeten Werte die eingecachten Daten nicht ungültig machen. Die vorliegende Erfindung überwindet daher die oben erwähnten Nachteile der bekannten Computersysteme und Eincachvorrichtungen.The present invention seeks to provide an improved computer system that in which the addresses translated from operands can be cached, and a caching device at that certain changes in the values used to calculate the cached data will not invalidate the cached data do. The present invention therefore overcomes the above mentioned disadvantages of the known computer systems and Caching devices.

ORiGiNAL INSPECTEDORiGiNAL INSPECTED

■J \J O H ■ Y \ JO H

Zusammenfassende Darstellung der Erfiiidung Zusamme nfassende Dars tellung of Erf iiidung

Die vorliegende Erfindung "befaßt sich mit einer Eincachvorrichtung in einem digitalen Computersystem zum Eincachen von Werten, die aus Komponentenwerten "bestehen, die sich in Abhängigkeit von verschiedenen Operationen des digitalen ' Computer systems ändern. Eine Art von Componentenwerten wird in einem Cache gehalten, zusammen mit Spezifizierern, die andere Art des Komponentenwerts spezifizieren. In Abhängigkeit von einem Schlüssel gibt der erste Cache einen ersten Komponentenwert der ersten Art und einen Specifizierer aus; der Spezifizierer wird dann verwendet, um die zweite Art des Komponentenwerts aus einem zweiten Cache oder Register zu erhalten. Die zwei Komponentenwerte werden dann gleichzeitig aus dem ersten Cache und dem zweiten Cache oder Register zu einem Kombiniergerät, beispielsweise einem Aldierer, ausgegeben, und das Kombiniergerät kombiniert die Werte, um den gewünchten Wert zu bilden. Ein Register oder Cache, das eine gegebene Art einer Komponente enthält, muß nar neu geladen werden, wenn das digitale Computersystem eins Operation ausführt, die jene Komponente ändert, und folglich muß die Vorrichtung zum Eincachen weniger häufig als bekannte Cachevorrichtungen vollständig neu geladen werden.The present invention "is concerned with a caching device in a digital computer system for caching values made up of component values "residing in Change depending on various operations of the digital 'computer system. One type of component value becomes kept in a cache, along with specifiers that specify another type of component value. Depending on a key, the first cache gives a first Component value of the first type and a specifier; the specifier is then used to represent the second kind of Component value from a second cache or register. The two component values then become simultaneous output from the first cache and the second cache or register to a combining device, for example an alder, and the combining device combines the values to form the desired value. A register or cache, the one A given type of component must only be reloaded when the digital computer system carries out an operation that changes that component, and consequently the device has to cach in less frequently than known cache devices completely reloaded.

Die Vorrichtung zum Eincachen der soeben beschriebenen Art ist besonders vorteilhaft in einem digitalen Computeraystem, das Operanden verwendet, die Daten durch Spezifizieren eines Eintrags in einer Tabelle repräsentieren. Der Tabelleneintrag spezifiziert eine direkte Relativadrestse mittels eines Basis-Spezifizierers, der eine Basisa·. rease identifi-The device for caching of the type just described is particularly advantageous in a digital computer system, that uses operands that represent data by specifying an entry in a table. The table entry specifies a direct relative address using a base specifier which is a base a ·. rease identi-

ORIGiNAL INSPECTED COPYORIGiNAL INSPECTED COPY

ziert, und eines Spenaifizierers für einen Adressenversatz, aus dem ein Adressenversatz gegenüber der Basisadresse berechnet werden kann. Die durch den Operanden repräsentierten Daten sind an derjenigen Adresse lokalisiert, die durch Addition des Adressenversatzes ju der Basisadresse erhalten rfird.adorned, and a spenaifier for an address offset, from which an address offset from the base address can be calculated. Those represented by the operand Data is located at the address obtained by adding the address offset ju to the base address rfird.

Bei einigen digitalen Computersystemen, die eine direkte relative Adressierung verwenden, ändern sich gewisse Basisadressen bei jeder Aufruf-und Return-Operation, wogegen sich gewisse Adreßversätze nur bei bestimmten Aufruf- und Return-Operationen ändern. Bei einem derartigen digitalen Computersystem, das eine Eincachvorrichtung der soeben beschriebenen Art verwendet, mag ein auf die Operanden ansprechender Cache Adreßversätze enthalten, die aus Tabelleneinträgen und Cachebasisspezifizierern, die dieselbe Basisadresse wie die eine in dem Tabelleneintrag spezifizierte Adresse spezifizieren, berechnet sind. Bin Registersatz mag die Basisadressen enthalten. Die Adressen aus den Registern und der Adressenversatz aus dem Cache'werden beide zu einer tvomb inier einrichtung, die einen Addierer enthält, ausgegeben. Eine auf die Cachebasispszifizierer ansprechende Steuervorrichtung wählt die durch den Cachebasisspezifizierer spezifizierte Basisadresse aus, und der Addierer addiert die ausgewählte Basisadresse zu dem Adressenversatz. Während gewisse Basisadressen in den Registern bei jeder Aufruf-Operation und jeder Return-Operation geändert werden müssen, muß der Cache nur bei den relativ seltenen Aufruf- und Return-Operationen ungültig gemacht werden, die die Tabelle ändern.In some digital computer systems that use direct relative addressing, certain base addresses change with every call and return operation, whereas certain address offsets only occur with certain call and return operations change. In such a digital computer system comprising a caching device of the just is used, a cache responsive to the operands may contain address offsets derived from table entries and cache base specifiers that have the same Base address as specifying an address specified in the table entry are calculated. Am register set may contain the base addresses. The addresses from the registers and the address offset from the cache 'will both be to a tvomb inier device that contains an adder, issued. A controller responsive to the cache base specifier selects those specified by the cache base specifier specified base address, and the adder adds the selected base address to the address offset. While certain base addresses in the registers can be changed with each call operation and each return operation must, the cache only needs to be invalidated for the relatively infrequent call and return operations that the Change table.

Eine verwandte Art einer Eincachvorrichtung ist vorteilhaft, wenn ein digitales Computersystem der soeben beschriebenen Art eine indirekte relative Adressierung unter Verwendung von Basiszeigern benutzt, deren Werte sich nicht zwischen gewissen Operationen des digitalen Computersystems ändern. Bei einer derartigen relativen Adressierung enthält der Tabelleneintrag einen Basisspezifizierer, einen ersten Adressenversatzspezifizierer und einen zweiten Adressenversatzspezifizierer. Bin aus dem ersten Adreasenversatzspezifizierer errechneter erster Adressenversatz gibt dem Adressenversatz des Basiszeigers gegenüber der durch den Basisadressenspezifizierer identifizierten Basisadresse, und ein aus dem zweiten Adressenversatzspezifizierer berechneter zweiter Adressenversatz gibt den Adressen/ersatz der Daten, die durch den dem Tabelleneintrag entsprechenden Operanden repräsentiert werden, gegenüber der durch den Basiszeiger spezifizierten Adresse. Die Eincachvorrichtung mag einen ersten Cache aufweisen, der den ersten Adressenversatz und den zweiten Adressenversatz enthält, und einen zweiten, mit dem ersten verbundenen Cache, der die Basiszeiger enthält und den ersten Adressenversatz aus dem ersten Cache empfängt. Die Ausgänge sowohl des ersten Cache als auch den zweiten Cache sind mit einer Kombiniervorrichtung verbunden. Wenn dem ersten Cache ein Operand angebote wird, werden der zweite Adressenversatz und der durch den ersten Adressenversatz spezifizierte Basiszeiger gleichzeitig an das Kombiniergerät ausgegeben. Wiederum muß α er erste Cache nur dann ungültig gemacht werden, wenn eine Cperation des digitalen Computersystems die Tabelle ändert, und der zweite Cache muß nur dann ungültig gemacht werden, wenn eine Operation die zur Lokalisierung des Basiszeiger.s verwendete Ba3isadresse ändert.A related type of caching device is advantageous when using a digital computer system of the type just described using indirect relative addressing used by base pointers whose values do not change between certain operations of the digital computer system. With such a relative addressing, the table entry contains a base specifier, a first Address offset specifier and a second address offset specifier. Am from the first address offset specifier The calculated first address offset gives the address offset of the base pointer compared to that of the Base address specifiers identified base address, and a second address offset calculated from the second address offset specifier gives the address / substitute of the Data that corresponds to the table entry Operands are represented opposite the address specified by the base pointer. The caching device may have a first cache containing the first address offset and the second address offset, and a second cache connected to the first, containing the base pointers and the first address offset from the first Cache receives. The outputs of both the first cache and the second cache are connected to a combiner tied together. When an operand is presented to the first cache, the second address offset and that by the first Address offset specified base pointers are simultaneously output to the combining device. Again, α must be the first cache can only be invalidated if an operation of the digital computer system changes the table, and the second The cache only needs to be invalidated if an operation used the one to locate the base pointer Base address changes.

Die zwei Arten von Eincaohgeräten, die soeben beschrieben wurden, können in einem einzigen Gerät zum Eincachen von sowohl direkt als auch indirekt abgeleiteten Adressen kombiniert werden. Ein derartiges Gerät besteht aus einem ersten Cache, einem zweiten Cache, einem Satz von Registern, einem Kombiniergerät und einem Steuergerät. Der erste Cache empfängt die Operanden und apricht auf diese an. Br enthält Cachebasisspezifizierer, die eine Baaisadresse spezifizieren und spezifizieren, ob eine direkte oder indrekte relative Adressiervoag verwendet werden muß, den ersten Adressenversatz und, wenn der Basisspezifizierer es so angibt, den zweiten Adressenversatz. Der zweite Cache enthält die Basiszeiger und empfängt den zweiten Adressenversatz aus dem ersten Cache. Der Satz von Registern enthält Basisadressen. Die Ausgä ige des ersten Cache, des zweiten Cache und des Registersitzes sind alle mit dem Kombiniergerät verbunden. Das Kontr Dllgerät empfängt den Cachebasisspezifizierer aus dem erste.ι Cache und wählt zu dem Kombiniergerät führende Eingänge aus. Wenn der Cachebasisspezifizierer eine direkte Adressierung angibt, wählt das Steuergerät die geeignete Basisadretfse aus dem Satz von Registern aus, und das Kombiniergerät kombiniert sie mit dem ersten Adressenversatz. Wenn der üachebasisspezifizierer eine indirekte Adressierung spezifiziart, selektiert das Steuergerät den Ausgang des zweiten Ciche, und das Kombiniergerät kombiniert den durch den zweiten Cache ausgegebenen Basiszeiger in Abhängigkeit von dem zweiten Adressenveraatz mit dem ersten Adressenveraatz. The two types of incaoh devices just described can be combined into a single device for caching both directly and indirectly derived addresses will. Such a device consists of a first cache, a second cache, a set of registers, a Combination device and a control device. The first cache receives the operands and responds to them. Contains br Cache base specifiers that specify a base address and specify whether a direct or indirect relative Adressiervoag must be used, the first address offset and, if the base specifier so specifies, the second address offset. The second cache contains the base pointers and receives the second address offset from the first cache. The set of registers contains base addresses. The outputs of the first cache, the second cache and the Register seat are all connected to the combining device. The control dll device receives the cache base specifier from the first cache and selects leading to the combining device Inputs off. If the cache base specifier specifies direct addressing, the control unit chooses the appropriate one Basic address from the set of registers, and the combining device combines them with the first address offset. If the base specifier is indirect addressing specified, the control unit selects the output of the second ciche, and the combiner combines the through the base pointer returned as a function of the second cache from the second address offset to the first address offset.

Gewisse Basiszeiger in einem digitalen Computersystem, das das Eincachegerät verwendet, mögen im Rahmen aines Stapelspeichers (Stack) in dem Speicher des digitalen Computersystems enthalten sein. Eine der Basisadressen in dem digitalen Computersystem spezifiziert den obersten Rahmen (frame) ' des Stapels'. Der Cache, der Kopien der im Rahaen des Speicherstapels enthaltenen Basiszeiger enthält, kann seihst einen Stapel enthalten. Rahmen des Cachestapels entsprechen Rahmen des Stapels im Speicher. Ein Cachestapelrahmen, der einem Speicherstapelrahmen entspricht, enthält Kopien der Basiszeiger aus dem Speicherstapelrahmen, dem er entspricht. Die Reihenfolge der Basiszeiger in dem Cachestapel entspricht ihrer Reihenfolge in dem entsprechenden Speicherstapel. Ein laufender Rahmen im Cachestapel entspricht dem obersten Rahmen des Speicherstapels. Wie oben beschrieben, dienen Adressenversätze gegenüber der Basisadresse, die den obersten Rahmen spezifiziert, als Schlüssel zu dem Basiszeigercache. Wenn der Schlüssel dem Basiszeigercache angeboten wird, gibt der Cache den Basiszeiger im laufenden Rahmen aus, der eine Kopie des durch den Adressenve-satz spezifizierten Basiszeigers ist.Certain base pointers in a digital computer system using the caching device may be contained within the scope of a stack in the memory of the digital computer system. One of the base addresses in the digital computer system specifies the top frame 'of the stack '. The cache, which contains copies of the base pointers contained in the framework of the memory stack, can itself contain a stack. Frames of the cache stack correspond to frames of the stack in memory. A cache stack frame corresponding to a storage stack frame contains copies of the base pointers from the storage stack frame to which it corresponds. The order of the base pointers in the cache stack corresponds to their order in the corresponding memory stack. A current frame in the cache stack corresponds to the top frame of the memory stack. As described above, address offsets from the base address specifying the top frame serve as keys to the base pointer cache. When the key is presented to the base pointer cache, the cache returns the base pointer in the current frame, which is a copy of the base pointer specified by the address set.

Jedesmal dann, wenn ein Operation des digitalen Computersystems einen neuen obersten Rahmen zu dem SpeLcherstapel hinzufügt, wird ein neuer Cacherahmen zu dem Cachestapel hinzugefügt und mit Kopien der Basiszeiger a is dem neuen obersten Rahmen geladen. Der neue Cacherahme ι wrd dann der laufende Rahmen. Jedesmal, wenn eine Operatim des digitalen Computersystems den laufenden obersten Rahme \ entfernt und den zuvor obersten Rahmen zum neuen laufende! obersten Rahmen macht, wird der dem zuvor obersten Raimen entsprechende Cacherahmen der netto laufende Rahmen. Der CachestapelEach time a digital computer system operation adds a new top frame to the memory stack, a new cache frame is added to the cache stack and loaded with copies of the base pointers to the new top frame. The new cache acquisition would then become the current frame. Each time a Operatim the digital computer system the current top Rahme \ removed and the previously top frame running the new! makes the uppermost frame, the cache frame corresponding to the previously uppermost frame becomes the net current frame. The cache stack

ist zirkulär: es besteht eine feste Anzahl von Rahmen in·dem Cachestapel, und falls der laufende Rahmen der letzte Rahmen in dem Cachestapel ist und ein neuer oberster Rahmen zum Speicherstapel hinzugefügt wird, wird der erste Rahmen in dem Cachestapel der neue laufende Rahmen. Um zu verhindern, daß neue Cachestapelrahmen alte Cachestapelrahmen überlappen, werden jedesmal, wenn der laufende Rahmen sich ändert, die Daten in dem Rahmen oberhalb des laufenden Rahmens ungültig gemacht.is circular: there is a fixed number of frames in that Cache stack, and if the current frame is the last frame in the cache stack and a new top frame to the When the memory stack is added, the first frame in the cache stack becomes the new current frame. To prevent, that new cache stack frames overlap old cache stack frames every time the current frame changes, invalidated the data in the frame above the current frame.

Die Verwendung eines Cachestapels in dem Basiszeigercache weist zwei Vorteile auf: Erstens kann dann, wennn ein neuer oberster Rahmen geschaffen wird, der dem neuen obersten Rahmen entsprechende Cachestapelrahmen durch denselben Befehl geladen werden, der den neuen obersten Rahmen erzeugt, so daß Kopien der Basiszeiger in dem neuen obersten Rahmen in dem laufenden Rahmen des Cachestapels beim Abschluß dea Befehls verfügbar sind. Zweitens ist es deswegen, weil eine Anzahl von Cachestapelrahmen, die den Speicherstapelrahmen entsprechen, die dem obersten Rahmen vorangehen, in dem Cache enthalten sind, im allgemeinen nicht erforderlich, einen Cachestapelrahmen zu laden, wenn ein vorhergehender Speicherstapelrahmen der neue oberste Rahmen wird.Using a cache stack in the base pointer cache has two advantages. First, if a new one top frame is created, the cache stack frame corresponding to the new top frame by the same Instruction that creates the new top frame so that copies of the base pointers in the new top Frames are available in the current frame of the cache stack upon completion of the command. Second, it is because of this because a number of cache stack frames corresponding to the storage stack frames preceding the top frame, are contained in the cache, generally not required to load a cache stack frame if a previous one The storage stack frame becomes the new top frame.

Das Cache^erät enthält weiter ein Gerät oder eine Vorrichtung zum rchnellen Ungültigmachen von Cacherahmen und eine Anordnung der Register für die Basisadressen, die ein schnelles Ausgeben der Basisadressen an die Kombiniereinrichtung erlaubt.The cache device further contains a device or a device to quickly invalidate cache frames and a Arrangement of the registers for the base addresses, which enable the base addresses to be output quickly to the combining device permitted.

* *

Ba iat daher ein Vorteil der vorliegenden Erfindung, daß aie ein verbessertes digitales Gomputerayatem schafft.It is therefore an advantage of the present invention that aie creates an improved digital gomputerayatem.

Bin weiterer Vorteil der Erfindung "besteht, darin, daß ein Gerät oder eine Vorrichtung zum Eincachen von Daten geschaffen wird, die aus Komponenten bestehen, deren Werte aioh als Folge von verachiedenen Operationen des Coraputersystems ändern.Another advantage of the invention is that a Apparatus or a device for caching data is provided which consists of components whose values aioh as Sequence of different operations of the computer system change.

Ein weiterer Vorteil der Erfindung liegt darin, daß sie ein Gerät oder eine Vorrichtung zum Eincachen von Relativadressen achafft, die aua einer Basisadresser komponente bestehen, die sich bei jeder Aufruf-Operation und jeder Return-Operation ändert, und aus einer Adressenversatzkomponente, die sich nur bei bestimmten Aufruf-Operationen und bestimmten Return-Operationen ändert.Another advantage of the invention is that it is a device or a device for caching relative addresses achaff, which also consist of a base address component, which is in each call operation and each Return operation changes, and from an address offset component, which only changes with certain call operations and certain return operations.

Ein weiterer Vorteil der Erfindung liegt dar;n, daß sie ein Gerät schafft, das auf Operanden anspricht, die Tabelleneinträge spezifizieren, die Basisadressenspei ifizierer und Adresaenversatzapezifizierer enthalten, um ui<ter Verwendung dar Tabelleneinträge berechnete Relativadre3;;en einzucachen. Another advantage of the invention is that it is a Provides device that responds to operands specifying table entries, base address stores and Address offset encoders included for use The relative addresses calculated from the table entries must be cached.

Ein weiterer Vorteil der Erfindung besteht darin, daß sie ein Gerät zum Eincachen von unter Verwendung von Basiszeigern berechneten indirekten Relativadressen schafft.Another advantage of the invention is that it provides an apparatus for caching using base pointers creates calculated indirect relative addresses.

Ein weiterer Vorteil der Erfindung besteht darin, daß sie ein Elncachgerät schafft, das einen Stapel aufweist und das auf Schlüssel durch Ausgeben lediglich solcher Daten antwortet, die in einem laufenden Rahmen des Stapels enthalten sind.Another advantage of the invention is that it provides an in-cache device that has a stack and that responds to keys by issuing only data contained in a current frame of the stack are.

Bin weiterer Vorteil der Erfindung liegt darin, daß sie ein verbessertes Gerat zum üngültigmachen von Cacheeinträgen schafft·.Bin another advantage of the invention is that it is a improved device for invalidating cache entries creates ·.

Weitere Merkmale und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung eines bevorzugten AusfÜhrungsbeii3piels der Erfindung anhand der Zeichnung, die erfindun^wesentliche Einzelheiten zeigt, und aus den Ansprüchen. Die einzelnen Merkmale können je einzeln für sich oder zu aehreren in beliebiger Kombination bei einer Ausführungsfor-a der Erfindung verwirklicht sein.Further features and advantages of the invention emerge from the following description of a preferred exemplary embodiment of the invention with reference to the drawing, which shows essential details of the invention, and from the claims. The individual characteristics can each individually for themselves or several in any combination in one embodiment of the invention be realized.

Kurze Beschreibung der FigurenBrief description of the figures

Pig. 1 ist eine Darstellung, die das Einoachen bei bekannten Computersystemen zeigt;Pig. Fig. 1 is an illustration showing oaching at shows known computer systems;

Fig. 2 ist eine Darstellung, die bekannte Operanden mit indirekter Adressierung zeigt;Fig. 2 is a diagram showing known operands with shows indirect addressing;

Fig. 2A ist eine Darstellung, die eine bekannte übersetzung vom Operanden in die Adresse zeigt;Fig. 2A is a diagram showing a prior art translation points from the operand to the address;

Fig. 3 ist ein konzeptionelles Blockdiagramm eines verbesserten Computersystems unter Verwendung von relativer und indirekter relativer Adressierung und Namenstabellen;Fig. 3 is a conceptual block diagram of a improved computer system using relative and indirect relative addressing and name tables;

Pig. 4 i3t eine Darstellung von Namen in de α verbesserten Computersystem der Fig. 3;Pig. 4 i3t a representation of names in de α improved The computer system of Figure 3;

Fig. 5 ist ein Blockdiagramm der verbesserten Adressencaches, die in dem verbesserten Compitersystem der Fig. 3 verwendet werden;Figure 5 is a block diagram of the enhanced address caches; those in the improved computer system of the Fig. 3 can be used;

Fig. 6 ist eine konzeptionelle Darstellung ier logischen Struktur des Argumentbasiscache der i?ig. 5;6 is a conceptual illustration of the logical structure of the argument base cache of the i? Ig. 5;

Fig. 6A ist ein konzeptionelles Diagramm der logischen Struktur des Ursprungsmaterialnamenscaches der Fig. 5;6A is a conceptual diagram of the logical structure of the source material name cache of FIG Fig. 5;

Fig. 7 und Fig. 7A sind Logikdiagramme, die eine bevoraugte Ausführungsform des Argumentba3isoaches der-Fig. 5 zeigen;Figs. 7 and 7A are logic diagrams anticipated Embodiment of the argument base of FIG. 5 show;

Fig. 8 ist eine Blockdarstellung, die eine bevorzugte Ausführungsform des Ursprungsmatericslnamenscaohes der Fig. 5 zeigt; undFigure 8 is a block diagram showing a preferred one Embodiment of the original material name caohes Fig. 5 shows; and

Fig. 9 ist eine Darstellung eines beispielhaften Rohmaterialnamenscache-Eintrags.Figure 9 is an illustration of an exemplary raw material name cache entry.

Beschreibung der bevorzugten. Ausführungsbeispiele Description of the preferred. Execution examples

Die Beschreibung der bevorzugten Ausführungsbeispiele beginnt mit einem Überblick über ein verbessertes digitales Computersystem (ICP, nachfolgend auch einfach Computersystem genannt), das das Eincachen von Datenadressen und der zu deren Ableitung benötigten Information gestattet, zeigt dann einen Überblick auf eine Eincachvorrichtung, die besonders vorteilhaft in dem Computersytem verwendet werden kann, und bietet se lließlich eine detaillierte Beschreibung einer bevorzugt3n Ausführungsform der Eincachvorrichtung oder des Eincachge"äts.The description of the preferred embodiments begins with an overview of an improved digital one Computer system (ICP, also simply called computer system in the following), which caches data addresses and the the derivation of which permits the required information then shows an overview of a caching device that is particularly can be used advantageously in the computer system, and Finally, it provides a detailed description of a preferred embodiment of the caching device or the Eincachge "äts.

1. Ein verbessertes digitales Computersystem, das das Eincachen von Datenadressen gestattet1. An improved digital computer system that supports the Caching of data addresses permitted

Das Computersystem (ICS) ist im Deteil in der US-Patentanmeldung Kr. 26έ 539» angemeldet am 22.Mai 1981, und der US-Patentanmeldung Nr. 301 999, angemeldet am 11.September 1981, und in anderen mit diesen Patentanmeldungen verwandten Pafcentanmldungen beschrieben, und es wird hier nur in dem zum Verständnis der vorliegenden Erfindung erforderlichen Umfang bischrieben.The computer system (ICS) is detailed in US patent application Kr. 26,539 »filed on May 22, 1981, and U.S. Patent Application No. 301,999, filed September 11 1981, and in other Pafcentanmldungen related to these patent applications, and it is here only in that described in the scope necessary to understand the present invention.

1.1 Überblick über das Compute rays tem (ICS) 301 - Figur1.1 Overview of the Compute rays system (ICS) 301 - Figure

Fig. 3 zeigt ein konzeptionelles Bloctediagramii des Computersystems 301. Das Computeraystem 301 hat zwei hauptkomponenten: Einen Speicher 305 zum Speichern von Dat< η und Befehlen, und einen Prozessor 303 zum Ausführen vo] Operationen an den aus dem Speicher 305 empfangenen Daten als Antwort auf die aus dem Speicher 305 empfangenen Befehle. Der Prozessor 303 ist mit dem Speicher 305 durch einen Speicherausgabebus 323 verbunden, der im Speicher 305 gespeicherte Daten und Befehle zum Prozessor 303 liefert, durch einen Speichereingabebua 341, der Daten vom Prozessor 303 zum Speicher 305 liefert, und durch einen Speichersignalbus 339, der Speichersignale vom Prozessor 303 zum Speicher 305 transportiert. Die Speichersignale spezifizieren mindestens einen Speicherplatz im Speicher 305 und ob der Inhalt des Speicherplatzes durch einen Zugriff vom Speicher 305 zum Prozessor 303 gebracht werden soll oder ob Daten aus dem Prozessor 303 an jenem Speicherplatz gespeichert werden mUssen. 3 shows a conceptual blocted diagram of the computer system 301. The computer system 301 has two main components: A memory 305 for storing data η and commands, and a processor 303 for performing operations to the data received from the memory 305 in response to the commands received from memory 305. The processor 303 is connected to memory 305 through a memory output bus 323, the one stored in memory 305 Provides data and instructions to processor 303, through a Memory input bua 341 that carries data from processor 303 to the Memory 305 supplies, and through a memory signal bus 339, the memory signals from processor 303 to memory 305 transported. The memory signals specify at least one memory location in memory 305 and whether the content of the Storage space is to be brought by an access from the memory 305 to the processor 303 or whether data from the Processor 303 must be stored in that memory location.

1.1.1 Inhalt des Speichers 305:1.1.1 Content of memory 305:

Wenn das Computersystem 301 dabei ist, Befehle für einen Benutzer auszuführen, so enthält der Speicher 305 mindestens den Exekutablen Code 307 und-einen Stapel 317, und er kann auch Statische Daten 313 enthalten. Der Exekutable Code enthält mindestens eine Prozedur 311 und mindestens eine Namentabelle 309« Die Prozedur 311 enthält ein 3 Sequenz von durch den Prozessor 303 ausführbaren Befehlen, und die Uamentabelle 309 enthält iTamentabelleneinträge JJTEs (310) When the computer system 301 is in the process of executing commands for a user, the memory 305 contains at least the executable code 307 and a stack 317, and it can also contain static data 313. The executable code contains at least one procedure 311 and at least one name table 309. The procedure 311 contains a sequence of instructions that can be executed by the processor 303, and the name table 309 contains information table entries JJTEs (310)

entsprechend gewissen in Befehlen in der Prozedur 311 enthaltenen Operanden. Der einem Operanden entsprechende NTB 310 enthält eine Information, aus der ein Deskriptor fUr das durch den Operanden repräaentierte Datenelement abgeleitet werden kann. Im Computersystem 301 spezifiziert ein Deskriptor die Adresse des Datenelements, seine Länge und andere Information. Die folgende Diskussion "befaßt sich nunmehr mit jenem Teil des Deskriptors, der die Adresse spezifiziert.corresponding to certain operands contained in instructions in procedure 311. The one corresponding to an operand NTB 310 contains information from which a descriptor for the data element represented by the operand can be derived. In the computer system 301, a specified Descriptor the address of the data element, its length and other information. The following discussion "deals with now with that part of the descriptor that specifies the address.

Durch den Prozessor 303 ausführbaren Befehlen gehören ein Aufrufbefehl und ein Return-Befehl (Rückkehr-Befehl). Wenn der Prozessor 303 einen Aufrufbefehl in einer Prozedur 311 ausführt, beendet er die weitere Ausführung von Befehlen in der Prozedur 311 und beginnt die Ausführung von Befehlen in einer Prozedur 311'» die in dem Aufrufbefehl spezifiziert •ist. Wenn der Prozessor 303 einen Return-Bef ehl in der Prozedur 311' ausführt, beendet er die Ausführung von Befehlen in der Prozedur 311' und nimmt die Ausführung von Befehlen in der Prozedur 311 wieder auf.Instructions executable by processor 303 include Call command and a return command (return command). if the processor 303 a call command in a procedure 311 executes, it stops further execution of commands in procedure 311 and begins executing commands in a procedure 311 '' specified in the call command •is. When processor 303 executes a return command in procedure 311 ', it stops executing commands in procedure 311' and resumes execution of commands in procedure 311 again.

Eine Befehlsausführung der Prozedur 3111 beginnt mit der Ausführung eines Aufrufbefehls in einer Prozedur 311» der die Prozedur 311' spezifiziert, und endet mit der .Ausführung eines Return-Befehls in der Prozedur 311'· Falls die Prozedur 311' selbst einen Aufrufbefehl enthält, der eine Prozedur 311'' spezifiziert, wird die Ausführung der Prozedur 311' während der Ausführung der Prozedur 311'' und alle anderen Prozeduren 311» die als Ergebnis Jener Ausführung aufgerufen worden sind, ausgesetzt. Somit gibt es zu jedem Zeitpunkt nur eine einzige Prozedur 311» deren Ausführung nicht ausgesetzt ist, das heißt jene Prozedur, deren Befehle gerade ausgeführt werden.A command execution of the procedure 311 1 begins with the execution of a call command in a procedure 311 'which specifies the procedure 311', and ends with the execution of a return command in the procedure 311 '· If the procedure 311' itself contains a call command, that specifies a procedure 311 ", the execution of procedure 311" is suspended during the execution of procedure 311 "and all other procedures 311" that have been called as a result of that execution. Thus, at any given time, there is only one single procedure whose execution is not suspended, that is, the procedure whose commands are currently being executed.

Neben der Spezifizierung der auszuführenden Prozedur 311' kann ein Aufrufbefehl auch Argumente spezifizieren, das heißt Daten, die verfügbar sind für die Ausfüirung der Prozedur 311» die den Aufrufbefehl ausführt, len jene Ausführung zu der Ausführung der Prozedur 311' liefert, die durch den Aufrufbefehl begonnen wurde. Die PrDzedur 311' in derselben Sektion des Exekutablen Codes 30 7 wie die Prozedur 311 enthalten sein, oder in einer anieren Sektion des Exekutablen Gods 307, und sie mag dieselbe Namentabelle 309 wie die Prozedur 311 verwenden oder eine verschiedene Namentabelle 309·In addition to specifying the procedure to be carried out 311 ' a call command can also specify arguments that means data available for the execution of the procedure which executes the call instruction, len that execution to the execution of the procedure 311 'started by the call command. Procedure 311 ' in the same Section of Executive Code 30 7 as the Procedure 311 must be included, or in an anterior section of Executable God 307, and she may use the same name table 309 as Procedure 311 or a different one Name table 309

Der Stapel 317 enthält eine Sequenz von Rahmen 319· Jeder Rahmen 319 enthält Daten, die bei einer einzelnen Ausführung einer Prozedur 311 verwendet werden. Der oberete Rahmen 321 ist ein Rahmen 319, der Daten enthält, die bei der Ausführung der Prozedur 311 gerade verwendet werden, für die der Prozessor 303 zur Zeit gerade Befehle ausführt. Die übrigen Rahmen 319 enthalten Daten, die in ausgesetzten oder aufgeschobenen Befehlsausführungen der Prozeduren 311 verwendet werden, vfenn ein Aufrufbefehl in der Prozedur 311 ausgeführt wird, wird ein neuer Rahmen 319' für die Ausführung der Prozedur 311' geschaffen, die in dem Aufrufbefehl spezifiziert ist, und der Rahmen 319' wird der oberste Rahmen 321; bei der Ausführung eines Return-Befehls in der Prozedur 311' endet die Ausführung der dem obersten Rahmen 321 entsprechenden Prozedur 311', die aufgeschobene Ausführung der Prozedur 311 wird wieder aufgenommen, und der Rahmen 319 unterhalb des obersten Rahmens 321 wird wieder der oberste Rahmen 321. Der frühere oberste Rahmen 321 hcrt auf zu existieren, und das durch ihn eingenommene Gebiet im Speicher 305 kann für neue Rahmen 319 oder andere Daten verwendet werden. · ■The stack 317 contains a sequence of frames 319 · Each frame 319 contains data that is used in a single execution a procedure 311 can be used. The top frame 321 is a frame 319 which contains data which is currently being used in the execution of the procedure 311 for which the Processor 303 is currently executing instructions. The remaining Frames 319 contain data used in procedures 311 in suspended or deferred instruction executions if a call command is executed in procedure 311 a new frame 319 'is created for the execution of the Procedure 311 'was created which is specified in the call command and the frame 319 'becomes the top frame 321; when executing a return command in procedure 311 ' the execution of the procedure 311 'corresponding to the top frame 321 ends, the deferred execution of the Procedure 311 resumes and frame 319 The uppermost frame 321 becomes again below the uppermost frame 321. The former uppermost frame 321 opens exist, and the area it occupies in memory 305 can be used for new frames 319 or other data will. · ■

t <J M « » il W k « 4t <J M «» il W k «4

Jeder Rahmen 319 mag Gebiete für drei unterschiedliche Arten von Daten enthalten. Ein lokales Speichergebiet 314 enthält Datenelemente, deren Werte sich während der Ausführung der Prozedur 311, die dem Rahmen 319 entspricht, ändern. Ein Returngebiet 318 enthält Datenelemente, die bei einem Return-Befehl verwendet werden, der die Ausführung der dem Rahmen 319 entsprechenden Prozedur 311' beendet,· um die Ausführung der Prozedur 311 wieder aufzunehmen. Ein Argumentzeigergebiet 316 enthält Argumentzeiger, das heißt Zeiger, die die Adressen der Datenelemente enthalten, die als Argumente in den Aufrufbefehlen verwendet werden, die■ die Ausführung der dem Rahmen 319 entsprechenden Prozedur 311 begonnn haben. Im Computersystem 301 kann nur der Aufrufbefehl, dessen Ausführung die Bildung eines Rahmens 319 zur Folge hat, die Werte von Datenelementen in dem Returngebiet 318 und die Werte der Argumentzeiger in dem Argumentzeigergebiet 316 setzen; andere Befehlen können diesen Gebieten keine Werte zuweisen. Folglich ändern sich die rferte der Zeiger und Datenelemente in diesen Gebieten während der Lebenszeit des Rahmens 319 nicht.Each frame 319 likes areas for three different types of data included. A local storage area 314 contains data elements whose values change during execution of the Change procedure 311 corresponding to frame 319. A return area 318 contains data elements that are in a Return command can be used to initiate the execution of the dem The procedure 311 'corresponding to frame 319 is terminated in order to complete the Resume execution of procedure 311. An argument pointer area 316 contains argument pointers, i.e. pointers containing the addresses of the data elements that are used as arguments in the call commands that ■ execute the procedure corresponding to frame 319 311 have started. In the computer system 301, only the Call command, the execution of which results in the formation of a frame 319 results in the values of data elements in the return area 318 and the values of the argument pointers in the Set argument pointer area 316; other commands can do not assign values to these areas. As a result, the values of the pointers and data elements in these areas change not during the lifetime of frame 319.

ßinem Stapel 317 können ein oder mehr Statische-Daten-Gebiete 313 zugeordnet sein. Jedes Statische-Daten-Gebiet 313 enthält Daten, die für eine oder mehr der Ausführungen der Prozeduren 311» die Rahmen 319 auf dem Stapel 317 haben, verfügbar sind. Das Statisch-Daten-Gebiet enthält Gebiete für zwei unterschiedliche Arten von Daten. Das Schreibbare-Statische-Datengebiet 320 enthält Daten, deren Werte während der Lebenszeit des Statische-Daten-Gebiet 313 sich ändern können. Das Verbindungszeiger-Gebiet 315 enthält Verbindungszeiger, das heißt Zeiger aufA stack 317 can contain one or more static data areas 313 must be assigned. Each static data area 313 contains data relevant to one or more of the executions of procedures 311 »which have frames 319 on stack 317 are available. The static data area contains areas for two different types of data. The writable static data area 320 contains data the values of which can change during the lifetime of the static data area 313. The link pointer area 315 contains connection pointers, i.e. pointers to

η ftη ft

'«.II'«.II

Prozeduren 311 und Zeiger auf Datenelemente, iie "bei· einer Ausführung einer Prozedur 311 verwendet werde i, die einen Rahmen 319 auf dem Stapel 317 hat, die aber w.jder in den zu jenem Rahmen 319 gehörenden Automatischen Daten 3H noch in den Schreibbaren-Statische-Daten-Gebiet 313 entsprechend der Befehlsausführung enthalten sind. Das Computersystem plaziert automatisch Verbindungazeiger in dem Verbindungszeigergebiet 315» wenn das Statische-Daten-G-ebiet 313 geschaffen ist. Keine Befehle für das Computersystem 3'01 gestatten es, daß vierte dem Verbindungszeigergebiet 315 übertragen werden,und somit änndern die Zeiger in dem Verbindungszeigergebiet 315 ihre Werte während der Lebenszeit des Statische-Daten-Gebiets 313 nicht.Procedures 311 and pointers to data elements, iie "at · a Execution of a procedure 311 will be used i that a Frame 319 has on the stack 317, but each in the to Automatic data 3H belonging to that frame 319 still in the writable static data area 313 are included in accordance with the instruction execution. The computer system is in place automatic connection pointer in connection pointer area 315 »when static data area 313 is created is. No instructions to computer system 3'01 allow fourths to be transferred to link pointer area 315 and thus the pointers in the link pointer area change 315 their values during the lifetime of the static data area 313 do not.

1.1.2. Komponenten des Prozessors 3031.1.2. Components of processor 303

Die Komponenten des Prozessors 303 arbeiten unter Kontrolle einer Steuerung 327· Bei einer vorliegenden Ausführungsform des Computersystems 301 führt die Steuerung 327 Mikrobefehlssequenzen aus. Mikrokommandos in den Mikrobefehlen spezifizieren Operationen, die durch die Hardwaregeräte auszuführen sind, die den Prozessor 303 bilden, und Decoder decodieren die Mikrokommandoa, um Signale zu liefern, die die Hardwaregeräte je nach Anforderung aktivieren oder unwirksam machen. Die Steuerung 32 führt Mikrobefehlssequenzen als Reaktion auf Befehle aus den Prozeduren 311 und auf Signale aus, die durch die den Prozessor 303 bildenden Hardwaregeräte erzeugt werden.The components of processor 303 operate under the control of a controller 327. In a present embodiment of the computer system 301, the controller 327 executes sequences of microinstructions. Micro-commands in the micro-commands specify operations performed by the hardware devices which form the processor 303, and decoders decode the microcommands to provide signals which activate or deactivate the hardware devices as required. Controller 32 executes sequences of microinstructions in response to commands from procedures 311 and for signals generated by the processor 303 forming Hardware devices are generated.

Für die Zwecke der vorliegenden Diskussion hat der Prozessor 303 zisätzlich zu der Steuerung 327 folgende funktioneile Abteilungen: Einen Befehlaleser 325, einen Befehlscode (Opcode)-Decoder 326, einen Deskriptor-Prozessor 329, einen Speichersignalgenerator 335 und einen Datenprozessor 337· Die Abteilungen werden in er obengenannten Reihenfolge diskutiert.For the purposes of the present discussion, the processor has 303 in addition to the controller 327 the following functional elements Departments: an instruction reader 325, an instruction code (opcode) decoder 326, a descriptor processor 329, a memory signal generator 335 and a data processor 337 · The divisions are in the order given above discussed.

Befehlsleser 325Command reader 325

Der Befehlsleser 325 unterteilt Befehle in Befehlscodes und Operanden und bringt die Befehlscodes und die Operanden auf einen Namenbus 328. Der Befehlsleser 325 liefert auch einen Deskriptor für den nächsten Befehl, den er auf einen Deskriptorbvs 333 bringt.The command reader 325 divides commands into command codes and Operands and puts the opcodes and operands on a name bus 328. The instruction reader 325 also provides one Descriptor for the next command that it is in a descriptor vs 333 brings.

Befehlscode-Decodierer 326Opcode decoder 326

Der Befehlscodedecodierer 326 empfängt jeden Befehlscode vom Befehlsleser 325 und decodiert ihn und gewinnt dadurch die Speicherstelle der Sequenz von Mikrobefehlen, die den Befehl ausführt. Br liefert diese Speicherstelle an die Steuerung 327, die dann die Mikrobefehlssequenz ausführt.The opcode decoder 326 receives each opcode from the Instruction reader 325 and decodes it, thereby retrieving the location of the sequence of microinstructions making up the instruction executes. Br provides this memory location to controller 327 which then executes the microinstruction sequence.

Deskriptor-Prozessor 329 Descriptor Processor 329

Der Deskriptor-Prozessor 329 empfängt Datenelemente im Speicher 305 repräsentierende Operanden aus dem Befehlsleser 325 über den Namenbus 328 und adressierende Daten aus dem Speicherausgabebus 323· Die adressierenden Daten enthal-Descriptor processor 329 receives operands representing data items in memory 305 from the instruction reader 325 via name bus 328 and addressing data from memory output bus 323

ti.ti.

ten Zeiger und andere Werte, die zum Berechnen von Adressen verwendet werden. Mit Operanden, die NTBs 31C entsprechen, umfassen die adressierenden Daten den dem Nairen entsprechenden NTE 310. Der Deskriptor-Prozessor 329 übersetzt die Operanden und die Zeiger in Deskriptoren und übersetzt Deskriptoren in Zeiger. Deskriptoren aus dem Deskriptor-Prozessor 329 werden auf den Descriptorbus 333 gebracht, während Zeiger aus dem Deskriptor-Prozessor 329 auf den Speichereingabebus 341 gebracht werden.ten pointers and other values used to calculate addresses. With operands corresponding to NTBs 31C, the addressing data include those corresponding to the Nairen NTE 310. Descriptor Processor 329 translates the operands and pointers to descriptors and translates Descriptors in pointers. Descriptors from the descriptor processor 329 are placed on the descriptor bus 333, while pointers from descriptor processor 329 are brought onto memory input bus 341.

Speichersignalgenerator 305Memory signal generator 305

Der Speichersignalgenerator 305 empfängt Deskriptoren aus dem Deskriptor-Prozessor 329 und Befehlsleser 325· Der Speichersignalgenerator 305' antwortet auf die Deskriptoren und die Signale von der Steuerung 327, indem -ar Speichersignal auf dem Speichersignalbus 339 erzeugt.The memory signal generator 305 receives descriptors the descriptor processor 329 and instruction reader 325 · The Store signal generator 305 'responds to the descriptors and signals from controller 327 by adding -ar store signal generated on the memory signal bus 339.

Datenprozessor 337Data processor 337

Der Datenprozessor 337 schließlich empfängt Datenelemente von dem Speicherausgabebus 323, verarbeitet diese unter Kontrolle der Steuerung 327 und bringt die Resultate auf den Speichereingabebus 341.Finally, data processor 337 receives data items from memory output bus 323, subprocessing them Control of the controller 327 and brings the results to the memory input bus 341.

1.2. Berechnung von Adressen im Computersystem 3011.2. Calculation of addresses in the computer system 301

Das Computersystem 301 verwendet eine relative Adressierung. Jedoc-h sind die Basisadressen nicht in Mehrzweckregistern enthalten, die es gestatten, sie zu beliebigen Zeiten und in beliebiger rfeise zu ändern. In dem Computersystem 301 werden Adressen, unter Verwendung von architekturalen Basisadressen berechnet. Die architekturalen Basisadressen des Computersystems 301 ändern sich nur, wenn das Computersystem. 301 einen Aufruf-Befehl oder einen Return-Befehl ausfuhrt, und die Art, in der sie sich ändern, unterliegt nicht der Kontrolle des Programmierers. Stattdessen 3etzt der durch die Steuerung 327 als Antwort auf einen Aufruf- oder Return-Befehl ausgeführte Mikrocode die architekturalen Basisadressen zurück, wie dies für die Ausführung einer Prozedur 311 erforderlich ist, die durch einen Aufruf-Befehl begonnen wird oder durch einen Return-Befehl wieder aufgenommenThe computer system 301 uses relative addressing. However, the base addresses are not contained in general-purpose registers that allow them to be stored at any time and in to change any rate. In the computer system 301, addresses are set using architectural base addresses calculated. The architectural base addresses of computer system 301 only change when the computer system. 301 one Executes a call command or a return command, and the The way in which they change is beyond the control of the programmer. Instead, it is set by the controller 327 in response to a call or return command executed microcode returns the architectural base addresses, as is the case for the execution of a procedure 311 is required, started by a call command is resumed or by a return command

1.2.1 Architekturale Basisadressen1.2.1 Architectural base addresses

Es gibt drei durch das Computersystem 301 verwendete architekturale Basisadressen, nämlich FP, SDP und PBP. In Pig. 3 zeigen Pfeile im Speicher 305, die mit den Hamen der architekturalen. Basisadressen gekennzeichnet sind, die durch diese spezifizierten Speicherstellen an. PP spezifiziert das untere En ie der Automatischen Daten 314 im obersten Rahmen 321; 3DP spezifiziert das untere Ende der Schreibbaren 3DA 32O in. dem Statische-Daten-Gebiet 313, die durch die Ausführung der Prozedur 311 verwendet werden, die durch den obersten Rahmen 321 repräsentiert wird; PBP repräsentiertThere are three architectural ones used by computer system 301 Base addresses, namely FP, SDP and PBP. In Pig. 3 show arrows in memory 305 that are labeled with the hams of the architectural. Base addresses are identified by these specified storage locations. PP specifies that lower line of the automatic data 314 in the uppermost frame 321; 3DP specifies the lower end of the writable 3DA 32O in. The static data area 313, which is determined by the Execution of Procedure 311, which can be used by the top frame 321 is represented; PBP represents

eine Speicherstelle in dem Exekutablen Gode 307, der eine oder mehr Prozeduren 311 zugeordnet ist. Adr'jssenversätze aus FP können nicht Adressen außerhalb des obersten Rahmens 321 spezifizieren; Adressenversätze aus SDP können nicht Adressen außerhalb des laufenden Statische-Daten-Gebiets 313 spezifizieren; Adressenversätze aus PBP schließlich können nicht Adressen außerhalb der mit jener PBP verbundenen Prozeduren 311 spezifizieren. Eine weitere wichtige Adresse ist NTP, die die durch die Prozedur 311 verwendete Speicherstelle der Rahmentabelle 309 repräsentiert. Adressenversätze aus NTP können nur Speicherstellen in der Namentabelle 309 spezifizieren.a location in the Executable Code 307, the one or more procedures 311 are assigned. Address offsets from FP cannot specify addresses outside of top frame 321; Address offsets from SDP can do not specify addresses outside of the current static data area 313; Finally, address offsets from PBP cannot specify addresses outside of the 311 procedures associated with that PBP. Another The important address is NTP, which represents the storage location of the frame table 309 used by the procedure 311. Address offsets from NTP can only specify storage locations in the name table 309.

Die Werte von FP, SDP, PBP und NTP ändern sich nur, wenn ein Aufruf-Befehl oder ein Return-Befehl durch das Computersystem 301 ausgeführt wird. Da jede Ausführung einer Prozedur 311 ihren eigenen Rahmen 319 hat, ändert sich FP jedesmal, wenn ein Aufruf-Befehl oder ein Return-Eefehl ausgeführt wird, SDP ändert sich immer, wenn ein Aufruf-Befehl eine Ausführung einer Prozedur 311' veranlaßt, die ein Statisehe-Daten-Grebiet 313 verwendet, das abweicht von dem der Prozedur 311, die den Aufruf-Befehl enthält, oder ein Return-Befehl eine Ausführung einer Prozedur 311' beendet, die ein Statische-Daten-Gebiet 313 verwendet, das von dem der Prozedur 311 verschieden i3t. PBP ändert sich immer, wenn ein Aufruf-Befehl eine Prozedur 311' spezifiziert, die nicht dieselbe PBP wie die Prozedur 311 hat, oder ein Return-Befehl eine Ausführung einer Prozedur 311' beendet, die nicht dieselbe PBP wie jene der Prozedur 311 hat. NTP schließlich ändert sich immer dann, wenn ein Aufruf-Befehl eine Prozedur 311' spezifiziert, die eine Naraentabelle 309 verwendet, die von der durch die Prozedur 311 verwendetenThe values of FP, SDP, PBP and NTP only change when a call command or a return command is executed by the computer system 301. Since each execution of a procedure 311 has its own frame 319, FP changes every time a call command or a return command is executed, SDP changes every time a call command causes a procedure 311 'to be executed Statisehe data Grebiet used 313, which differs from the command return terminates the procedure 311 that contains the call instruction, or a an embodiment of a procedure 311 'that uses a static data area 313, from that of the Procedure 311 different i3t. PBP changes whenever a call command specifies a procedure 311 'that does not have the same PBP as procedure 311, or a return command terminates execution of a procedure 311' that does not have the same PBP as that of procedure 311. Finally, NTP changes whenever a call command specifies a procedure 311 'that uses a nare table 309 that is used by the procedure 311

ORIGINAL INSPECTEDORIGINAL INSPECTED

Sc,Sc,

verschieden ist, oder ein. Return-Befehl eine Ausführung einer Prozedur 311' "beendet, die eine Namentabelle 309 hat, die verschieden ist von der durch die Prozedur 311 verwendeten. Meistens ändern Aufrufe und Returns im Computersystem 301 nur PP.is different, or a. Return command an execution a procedure 311 '"which has a name table 309 is terminated, which is different from that used by procedure 311. Most of the time, calls and returns change in the computer system 301 PP only.

Wenn der Prozessor 303 dabei ist, Befehle "bei der Ausführung der durch den obersten Rahmen 321 repräsentierten Prozedur 311 auszuführen, enthalten die Ba3isregi3ter 331 im Deskriptor-Prozessor 329 PP, SDP und PBP. Ein anderes Register, das Namentabellenregister 332, enthält NTP. Die Werte in diesen Registern ändern sich nur als Folge der Ausführung eines Auf:*uf-Befehls oder eines Return-Befehls. Bei der Ausführung eines Aufruf-Befehls bringt der Prozessor 303 die Werte jen^r Adressen in diese Register, deren Werte sich als Folge des Aufrufbefehls in dem Returngebiet 316 des obersten Rahmens 3-1 ändern, der durch die Ausführung des Aufruf-Befehls gäschaffen wurde, berechnet neue Werte für die architekt iralen Basisadressen, wie dies für die aufgerufene Prozedur 511' erforderlich ist, und setzt die Register auf diese neusn Werte. Bei der Ausführung eines Return-Befehls setzt der Prozessor 303 Basisregister 331 und das Namentabellenregister 332 auf die Werte, die in dem Returngebiet 316 ies obersten Rahmens 321 gerettet wurden.When processor 303 is at it, "instructions" on execution to execute the procedure 311 represented by the uppermost frame 321, the base registers 331 in the Descriptor Processor 329 PP, SDP and PBP. Another register, the name table register 332, contains NTP. The values in these registers only change as a result of execution an up: * uf command or a return command. In the The processor 303 executes a call command Values of those ^ r addresses in these registers, the values of which are Change the sequence of the call command in the return area 316 of the top frame 3-1, which is caused by the execution of the call command gäschaffen was calculated new values for the architect irish base addresses, such as this for the called Procedure 511 'is required and sets the registers to these new values. When executing a return command Processor 303 sets base register 331 and name table register 332 to the values that are in the return area 316 his top frame 321 was saved.

1.2.2 Relative Adressierung unter Verwendung von arcaitekturalen Basisadressen1.2.2 Relative addressing using architectural base addresses

Das Computersystem. 301 verwendet zwei unterschiedliche Methoden ler Berechnung von Adressen unter Verwendung vonThe computer system. 301 uses two different ones Methods of calculating addresses using

' ORIGINAL INSPECTED'ORIGINAL INSPECTED

architekturalen Basisregistern. Bei der direkten relativen Adressierung ist die architekturale Basisadretsse die Basisadresse, und der Adressenversatz wird berechnet und zu ihr hinzuaddiert, um die Adresse der Daten zu erhalten.architectural base registers. With the direct relative Addressing is the architectural basic address the basic address, and the address offset is calculated and added to it to obtain the address of the data.

Bei der indirekten relativen Adressierung ist die Basisadresse nicht eine architekturale .Basisadresse, sondern stattdessen ein Zeiger, der um einen Adressenversatz gegenüber einer der architekturalen Basisadressen versetzt lokalisiert ist. Der Deskriptor-Prozessor 329 berechnet zunächst die Adresse des Zeigers, der, wie oben beschrieben, die Basisadresse für die.direkte relative Adressierung ist, und berechnet dann die Adresse der Daten durch Addition eines Adressenversatzes zur durch den Zeiger spezifizierten Adresse. In the case of indirect relative addressing, the base address is not an architectural base address, but instead a pointer which is located offset by an address offset with respect to one of the architectural base addresses. The descriptor processor 329 first calculates the address of the pointer, the base address for die.direkte relative addressing as described above, and then calculates the address of the data by adding an address offset to by the pointer i specif ed address.

1 .3 Operanden in dem Computer sys tem 3OI - Pi,;ur 41 .3 operands in the computer system 3OI - Pi,; ur 4

Die Operanden in dem Computersystem 301 werden als Namen bezeichnet. Ein Name mag selbst eine Basisadr )sse und einen Adressenversatz spezifizieren, oder er mag eiien NTE 310 spezifizieren, der die Basisadresse und den Airessenversatz spezifiziert. Fig. 4 zeigt einen Überblick üb ir jene Merkmale der Namen 4OI und des Namentabelleneintrigs 310, die. zum Verständnis der vorliegenden Erfindung er :?orderlieh sind; eine detaillierte Diskussion der Namen and Namentabelleneinträge im Computersystem 301 kann in .der US-Patentanmeldung Nr. 301 999 gefunden werden.The operands in the computer system 301 are called names designated. A name may itself specify a base address and address offset, or it may like an NDE 310 which specifies the base address and the air food offset. Figure 4 shows an overview of those features the name 4OI and the name table entrant 310, the. In order to understand the present invention:? are ordered; a detailed discussion of names and name table entries in computer system 301 can be found in U.S. Patent Application No. 301,999.

1-3-1 Namen 401 im Computersystem 3011-3-1 names 401 in computer system 301

Es gibt zwei Arten von Namen 4-01 im Computersystem 301 , nämlich Tabellennamen 403, die einen NTE 310 spezifizieren, und unmittelbare Namen 409, die direkt eine architekturale Basisadresse und einen Adressenversatz spezifizieren. Beide Arten von Namen 401 enthalten ein NTY-PeId 405, das Codes enthält, die spezifizieren, ob ein Name 401 ein Tabellenname 403 oder ein unmittelbarer Name 409 ist, und wenn das Letztere zutrifft, welche architekturale Basisadresse bei der Berechnung der Adresse verwendet werden muß. Die Tabellennamen 403 haben ein anderes Feld, nämlich das Feld NT-IND 407, das der Index von NTE 310 entsprechend dem Tabellennamen 403 in der Namentabelle 309 ist. Die Adresse von NTE 310 entsprechend dem Tabellennamen 403 wird durch Addition des Werts des NT-IND-Felds 407 zu dem Wert von NTP berechnet. Die unmittelbaren Namen 409 haben zwei andere Felder: Ein DISP-FeId 413 und ein IB-FeId 411. Das DISP-feld 413 spezifiziert einen Adressenversatz gegenüber der architek";uralen Basisadresse, die durch NTY 405 angezeigt wird. Daa IB-PeId 411 zeigt an, ob'das Datenelement bei der durch Adcition des spezifizierten Adressenversatzes zu der spezifizierten architekturalen Basisadresse erhaltenen Adresse ein Zeiger auf das durch den unmittelbaren Namen repräsentierte Datenelement ist, oder das Datenelement selbst.There are two types of names 4-01 in computer system 301, namely table names 403 specifying an NTE 310, and immediate name 409, which is directly an architectural Specify the base address and an address offset. Both types of names 401 contain an NTY PeId 405, the codes that specify whether a name 401 is a table name 403 or an immediate name 409, and if that is The latter applies which architectural base address must be used when calculating the address. The table names 403 have another field, namely the field NT-IND 407, which is the index of NTE 310 corresponding to the table name 403 in the name table 309. The address of NTE 310 corresponding to the table name 403 is obtained by adding the value of the NT-IND field 407 to the value of NTP calculated. The immediate names 409 have two other fields: a DISP field 413 and an IB field 411. The DISP field 413 specifies an address offset with respect to the architeque base address indicated by NTY 405 will. Daa IB-PeId 411 indicates whether the data element in the obtained by adding the specified address offset to the specified architectural base address Address is a pointer to the data item represented by the immediate name, or the data item self.

Bei einem vorhandenen Ausführungsbeispiel des Computersystems 301 enthalten die Namen 401 eine Anzahl von 16 Bits. Das NTY-PeId 405 enthält einen Zweibit-Code mit den folgenden Bedeutungen:In an existing embodiment of the computer system 301, the names 401 contain a number of 16 bits. The NTY-PeId 405 contains a two-bit code with the following Meanings:

ORIGINAL INSPECTEDORIGINAL INSPECTED

3334533345

Code BedeutungCode meaning

00 Unmittelbarer Name; Basis = PP00 Immediate name; Basis = PP

01 Unmittelbarer Name; Basis = SDP01 Immediate name; Basis = SDP

10 Unmittelbarer Name; Basis = PBP10 Immediate name; Base = PBP

11 Tabellenname11 Table name

Bei Tabellennamen 403 bilden die übrigen 14 Bits das NT-IND-FeId 407· Bei unmittelbaren Namen 409 enthalten die übrigen 14 Bits das IB-PeId 411» ein reserviertes Bit, und ein DISP-PeId 413 mit 12 Bits. Bei dem vorliegenden Ausführungsbeispiel des Computersystems 301 enthält das DISP-PeId 413 eine in der Zweikomplement-Notation repräsentierte vorzeichenbehaftete ganze Zahl. Bei einer Multiplikation mit 32 (d.h. bei einer Linksverschiebung um 5 Plätze) liefert der viert im DISP-PeId 413 den Adressenversatz- Weitere zur Bildung eines Deskriptors aus einem unmittelbaren Namen 409 erforderliche Informationen werden aus dem Kontext oder Zusammenhang abgeleitet, in dem der unraittelbire Name 409 erscheint. Bei anderen, Ausführungsformen des Oomputersystems 301 mögen die Namen 401 unterschiedliche Längen haben und andere Mittel zum Spezifizieren einer Basisadresee und eines Adressenversatzes verwenden.In the case of table names 403, the remaining 14 bits form the NT-IND field 407 the other 14 bits the IB-PeId 411 »a reserved bit, and a DISP-PeId 413 with 12 bits. In the present embodiment of the computer system 301, the DISP-PeId 413 contains one represented in two-complement notation signed integer. When multiplied by 32 (i.e. with a left shift by 5 places) the fourth in DISP-PeId 413 supplies the additional address offset Formation of a descriptor from an immediate name 409 required information is taken from the context or Context derived in which the unraittelbire name 409 appears. In other embodiments of the computer system 301, names 401 may have different lengths and other means of specifying a base address and an address offset.

1.3-2 Namentabelleneinträge (NTEs) 310 im Computersystem 3011.3-2 Name table entries (NTEs) 310 in the computer system 301

Die Namentabelleneintragung 310, wie in Pig. 4 dargestellt, idt. eine schematische Darstellung der vier Arten von Infor-Name table entry 310, as in Pig. 4 shown, idt. a schematic representation of the four types of information

ORlGINAL INSPECTEDORlGINAL INSPECTED

fr. fr.

mation, die in einem NTE 310 der vorliegenden Ausführungsform enthalten sein können:mation included in an NTE 310 of the present embodiment may contain:

Eine Eintrag-Interpretation-Information (EII) 417 spezifiziert, wie ein Deskriptor aus der im NTE 310 enthaltenen Information abgeleitet werden muß.Entry Interpretation Information (EII) 417 specifies such as a descriptor from the one in NTE 310 contained information must be derived.

Eine Basisinformation (BI) 419 ist eine Information, aus der die zum Berechnen- der Deskriptoradresse verwendete Basisadresse abgeleitet werden kann.Basic information (BI) 419 is information from which the descriptor address to be calculated is used used base address can be derived.

- Eine Adressenversatzinformation (DISPI) 421 ist eine Information, aus der der zur Berechnung der Deakriptoradresse verwendete Adressenversatz abgeleitet werden kann.Address offset information (DISPI) 421 is one Information from which the address offset used to calculate the descriptor address can be derived.

Eine Deskriptorinformation (DESCI) 423 ist eine Iniformation, aus der eine andere für den Deskriptor benötigte Information berechnet oder erhalten werden kann.Descriptor information (DESCI) 423 is information from which another for the descriptor required information can be calculated or obtained.

BI 419, DISPI 421 und DESCI 423 mögen Konstanten oder Namen 401 oder Kombinationen hiervon enthalten. Zum Beispiel: In einem NTE 310 für ein Element eines Feldes spezifiziert BI 419 die Adresse des Feldes. Es kann dies tun durch Spezifizieren einer architekturalen Basisadresse und eines Adressenversatzes, die die Adresse liefern, durch Spezifizieren einer arohitekturalen Basisadresse und eines Adressenversatzes, die die Adresse eines Zeigers auf das Feld liefern, mittels eines unmittelbren Namer-a 409» der die Basisadresse liefert, oder mittels eines Tabellennamens 403, der sich aufBI 419, DISPI 421, and DESCI 423 like constants or names 401 or combinations thereof. For example: Specified in an NTE 310 for an element of a field BI 419 the address of the field. It can do this by specifying an architectural base address and an address offset, which provide the address, by specifying an architectural base address and an address offset, which supply the address of a pointer to the field, by means of an immediate Namer-a 409 »which is the base address supplies, or by means of a table name 403, which is based on

einen ΝΤΕ 310 in derselben Namentabelle 309 bezieht. Jener NTE 310 enthält Information, die die Adresse des Feldes liefert. DISPI 421 in einem NTE 310 für ein Feldelement mag einen konstanten Wert enthalten, der den Umfang des Feldelements spezifiziert, und einen Namen 401, der einen Deskriptor für Daten liefert, deren Wert der Index des Feldelementes ist. DCI 421 mag eine Konstante enthalten, die die Länge spezifiziert, oder sie mag einen Namen 401 enthalten, der einen Deskriptor für Daten liefert, deren Wert die Länge ist.a ΝΤΕ 310 in the same name table 309. That one NTE 310 contains information that provides the address of the field. DISPI 421 in an NTE 310 for a field element mag contain a constant value representing the scope of the field element specified, and a name 401 which supplies a descriptor for data, the value of which is the index of the field element is. DCI 421 may contain a constant specifying length, or it may contain a name 401, which supplies a descriptor for data whose value is length.

T.4 Namenresolution im Computersystem 301T.4 Name resolution in the computer system 301

Die Namenreaolution (Namenauflösung) ist die Operation, die durch den Deskriptor-Prozessor 329 ausgeführt wird, wenn er einen Deskriptor für ein durch einen Namen 401 repräsentiertes Datenelement aus dem Namen 401 ableitet unter Verwendung der in den Basisregistern 331 enthaltenen architekturalen Basisadressen, von Zeigern, und im Fall eines Tabellnamens 403 des NTE 310 für den Tabellennamen 403 und vonName resolution is the operation performed by descriptor processor 329 when it derives a descriptor for a data item represented by a name 401 from the name 401 using of the architectural base addresses contained in the base registers 331, of pointers, and in the case of a table name 403 of the NTE 310 for the table name 403 and from

NTEs 310 für irgendwelche in jenem NTE 310 enthaltenen Tabellennamen 403·NTEs 310 for any table names 403 contained in that NTE 310

Im Fall eines unmittelbaren Namens 409, der direkt eine Basis und einen Adressenversatz spezifiziert, löst der Deskriptor-Prozessor 329 den unmittelbaren Naiien 409 auf durch Addition des im DISP-FeId 413 spezifizierten Adressenversatzes zum Inhalt des Registers in den 3asisregistern 331, das die durch das NTY-FeId 405 spezifizierte architkturale Basisadresse enthält.In the case of an immediate name 409 that directly specifies a base and an address offset, the resolves Descriptor Processor 329 to immediate Naiien 409 by adding the address offset specified in DISP field 413 to the content of the register in the base registers 331 which is specified by the NTY field 405 Contains architectural base address.

Im Fall eines unmittelbaren Namens 409', dessen IB-Peld 4-11 anzeigt, daß die Basis gerade indirekt spezifiziert wird, erhält der Deskriptor-Prozessor 329 die Adresse der durch den unmittelbaren Namen 409' spezifizierten Daten durch Addition des im DISP-FeId spezifizierten Adressenversatzes zu der architekturalen Basisadresse, wie sie oben spezifiziert wurde, um eine Adresse zu erhalten und dann den Zeiger an jener Adresse aus dem Speicher 305 abzurufen. Der Zeiger wird danr zur Bildung des Deskriptors verwendet.In the case of an immediate name 409 ', its IB field 4-11 indicates that the base is being specified indirectly, the descriptor processor 329 obtains the address of the by data specified by the immediate name 409 ' Addition of the address offset specified in the DISP field to the architectural base address as specified above to get an address and then the pointer to be retrieved from memory 305 at that address. The pointer is then used to form the descriptor.

Im Pall ^ on Tabellennamen 403 addiert der Deskriptor-Prozessor 329 den Wert dea NT-IND-Felds 407 zu dem Wert im Namentabellenregister 332, um die Adresse des dem Tabellennamen 40;) entsprechenden NTE 310 zu erhalten, ruft den NTE 310 ;ius dem Speicher 305 ab, und leitet dann die Adresse des durci den Tabellennamen 403 repräsentierten Datenelements aus; der im NTE 310 enthaltenen Information ab in der Weise, w e durch das EU-Feld 417 und den Inhalt des NTE vorgesch-ieben ist. Falls NTE 310 unmittelbare Namen 409 oder Tab illennamen 403 enthält, werden sie in der Weise aufgelöst;, wie soeben beschrieben wurde.The descriptor processor adds in the Pall ^ on table name 403 329 the value of the NT-IND field 407 to the value in Name table register 332 to get the address of the NTE 310 corresponding to the table name 40;) calls the NTE 310; i from memory 305 and then derives the address of the data element represented by the table name 403 the end; the information contained in the NTE 310 in the W e advances through the EU field 417 and the content of the NDE. If NDE 310 immediate names 409 or contains tab names 403, they will be resolved in the manner just described.

2· Eincaihen von Adressen im Computersystem 301 .2 · Cache addresses in computer system 301.

Im folgenden werden die Eigenschaften von Adressen im Gomputeraysten 301, die sie eincachbar machen, beschrieben, und ein Überblick über ein verbessertes Cachegerät, das zum Eincachea von Adressen bei einem vorliegenden Ausführungsbeispiel des Computersystems 301 verwendet wird, wird gegeben .The following are the properties of addresses in Gomputeraysten 301, which make them cacheable, and an overview of an improved cache device that can be used for the Cachea of addresses used in a present embodiment of computer system 301 is given .

2.1 Eincachbare Adressen2.1 Cacheable addresses

Bei bekannten Computersystemen, in denen die Basisadressen aas Mehrzweckregistern erhalten wurden, konnten durch Addition eines konstanten Adressenversatzes zu einer Basisadresse erhaltene Adressen nicht in auf Operanden ansprechenden Caches eingecacht werden, weil die Werte der Basisregister «·*. sich zu willkürlichen Zeiten und in willkürlicher Weise ändern konnten. Beim Computersystem 301 können solche Adressen in auf Namen 401 ansprechenden Caches eingecacht werden, weil die architekturalen Basisadressen und M1P ihre Werte nur bei der Ausführung eines Aufruf-Befehle cder eines Return-Befehls ändern. Die Adressen im Cache bleiben daher gültig mindestens während der Periode zwischen der Ausführung eines Aufruf-Befehls oder eines Return-Befehls und der Ausführung eines anderen Aufruf- Befehls oder. Return-Befehls. Adressen, die während dieser Periode gültig bleiben, werden hier als eincachbare Adressen bezeichnet.In known computer systems in which the base addresses were obtained from general-purpose registers, addresses obtained by adding a constant address offset to a base address could not be cached in operand-responsive caches because the values of the base register «· *. could change at arbitrary times and in arbitrary ways. In the computer system 301, such addresses can be cached in caches responding to names 401 because the architectural base addresses and M 1 P change their values only when a call command or a return command is executed. The addresses in the cache therefore remain valid at least during the period between the execution of a call command or a return command and the execution of another call command or. Return command. Addresses that remain valid during this period are referred to herein as cacheable addresses.

Eincachbare Adressen werden im Lauf jeder Namenresolution (Namenauflösung)-Operation erzeugt. In einig.m Fällen ist die Adresse der durch den Namen 401 repräsentierten Daten eincachbar; in anderen Fällen ist diese Adresse nicht eincachbar, aber es sind zur Bestimmung jener Adresse verwendete Zwischenadressen eincachbar.Cacheable addresses are generated in the course of each name resolution operation. In some cases it is the address of the data represented by name 401 cacheable; in other cases this address cannot be cached, but intermediate addresses used to determine that address can be cached.

Ea gibt zwei Fälle, in denen die Adresse der durch den Namen 401 repräsentierten Daten eincachbar ist:Ea are two cases where the address of the Name 401 represented data can be cached:

334579334579

Wenn, ein unmittelbarer Name 409 oder ein NTE 310 für einen Tabellennamen 403 eine architekturale Basisadr-3S3e und einen konstanten Adreasenversatz spezifiziert. If so, an immediate name 409 or an NTE 310 for a table name 403 an architectural base address 3S3e and specifies a constant address offset.

Wenn ein unmitelbarer Name 409 oder ein NTE 310 einen konstanten Adreasenversatz und eine Basisadresse spezifiziert, die ein Zeiger auf einen negativen Adr^ssenversatz gegenüber FP oder SDP ist.If an immediate name 409 or an NTE 310 is a constant address offset and a base address specified which is a pointer to a negative Address offset compared to FP or SDP.

Im letztgenannten Pail sind die durch Addition der konstanten Adrea.3enveraätze zu den Zeigern berechneten Adressen eincachbar, weil die Zeiger ihre Werte während der Lebenszeit des Statische-Daten-Gebiet 313 oder des sie enthaltenden Rahmens 319 nicht ändern, und PP und SDP sich nur bei der Ausfüarung eines Aufruf-Befehls oder Return-Befehls ändern.In the latter pail are those by adding the constants Adrea.3enveraätze to the pointers calculated addresses can be cached, because the pointers keep their values during the lifetime of the static data area 313 or the one containing them Frame 319 does not change, and PP and SDP only differ when the execution of a call command or a return command change.

In allen anderen Fällen sind nur Zwischenadressen eincachbar. BispLelaweise kann sich dann, wenn ein unmitelbarer Name 409 ainen Zeiger als Basisadresse spezifiziert, und wenn der Seiger auf einen positiven Adressenversatz gegenüber PP odar SDP weist, der Wert des Zeigers ändern. Deutlich sind aus lern Zeiger abgeleitete Adressen nicht eincachbar. Jedoch weist der Zeiger einen konstanten Adressenversatz gegenüber einer architekturalen Basisadresse auf, und folglich ist die Adresse des Zeigers eincachbar. Wenn einmal die Zeigeradresse eingecacht ist, kann der Deskriptor-Prozessor 329 den unmittelbaren Namen 409 durch Abrufen des Zeigers au3 dem Speicher 305 an der durch die eingecachte Adresse spezifizierten Speicherstelle auflösen.In all other cases only intermediate addresses can be cached. BispLelaweise can then, if a direct Name 409 specifies a pointer as the base address, and if the pointer is opposed to a positive address offset PP or SDP instructs to change the value of the pointer. Clear addresses derived from learning pointers cannot be cached. However, the pointer has a constant address offset against an architectural base address, and hence the address of the pointer is cacheable. Once the Pointer address is cached, the descriptor processor 329 can obtain the immediate name 409 by retrieving the pointer au3 resolve the memory 305 at the memory location specified by the cached address.

2.2 Cachevorrichtung für eincachbare Adresse ι2.2 Cache device for cacheable addresses ι

Um den Vorteil von eincachbaren Adressen voll auszunutzen, verwendet ein vorliegendes Ausführungsbeispiel eines Computersystems 501 ein spezielles Cachegerät öder eine spezielle Cachevorrichtung. Die folgende Diskussion beschreibt zunächst die Beschränkungen der bekannten Cachevorrichtung, wenn sie für eincachbare Adressen verwendet wird und beschreibt anschließend die Cachevorrichtung, die zur Benut-/***■ zung mit eincachbaren Adressen oder in anderer, Situationen, in denen eincachbare Werte von anderen Werten abhängen, die nicht willkürlichen Änderungen unterworfen sind, besonders geeignet ist.To take full advantage of cacheable addresses, a present embodiment uses a computer system 501 a special cache device or a special one Cache device. The following discussion first describes the limitations of the known cache device, if used for cacheable addresses and then describes the cache device that is used for user - / *** ■ cacheable addresses or in other situations where cacheable values depend on other values that are not subject to arbitrary changes, is particularly suitable.

2.2.1 Die bekannte Vorrichtung im Computersysbem 3012.2.1 The known device in the computer sysbem 301

Der Nutzen des bekannten Cachegerät oder der bekannten Cachevorrichtung bei Ausführungsformen des Computersystems 301 ist durch zwei Tatsachen beschränkt:The utility of the known cache device or apparatus in embodiments of the computer system 301 is limited by two facts:

Eincachbare Adressen hängen entweder direkt oder indirekt von Werten von PP, PBP, SDP und NTP ab, und diese Werte sind bei der Ausführung jede;? Aufruf- oder Return-Befehls Änderungen unterworfen.Cacheable addresses depend either directly or indirectly on values of PP, PBP, SDP and NTP, and these values are when running each ;? Call or return commands are subject to change.

Bei der modernen Programmierpraxis werden große Programme aus einer großen Anzahl von kurzen Prozeduren konstruiert, und Aufruf- und Return-BefeKle treten häufig auf.In modern programming practice, large programs Constructed from a large number of short procedures, and call and return commands occur often on.

©RIGJNAU INSPiECTED© RIGJNAU INSPiECTED

Bei einem Cachegerät nach dem Stand der Technik ist ein Cacheeintrag, auf den durch einen Schlüssel zugegriffen wird, entweder ungültig oder er enthält komplett berechnete Adressen; folglich muß dann, wenn ein zur Berechnung der Adressen verwendeter Wert sich ändert, der Eintrag, auf den mit dem Schlüssel zugegriffen wird, ungültig gemacht werden. So müssen, wenn das Cachegerat nach dem Stand der Technik eincachbare Adressen enthält, alle Cacheeinträge, die von FP abgeleitete eincachbare Adressen enthalten, jedesmal ungültig gemacht werden, wenn ein Aufruf- oder Return-Befehl ausgeführt wird, und Cacheeinträge, die eincachbare Adressen enthalten, die aus PBP oder SDP abgeleitet wurden, müssen immer dann ungültig gemacht werden, wenn ein Aufruf-Befehl oder ein Return-Befehl jene Werte ändert. Es iat jedoch unmöglich, von einer eingecachten Adresse zu sagen, welches der Basisregiater 331 bei der Erzeugung der Adrease verwendet wurde, und außerdem ist es unmöglich, von einem Tabellennamen 403 zu sagen, welche Basisregister 331 durch seinen NTE 310 spezifiziert werden. Folglich ist ea dann, wenn bei dem Cachegerät nach dem Stand der Technik eincachbare Adressen eingecacht werden, erforderlich, alle Cacheeinträge immer dann ungültig zu machen, wenn ein Aufruf-Befehl oder ein Return-Befehl ausgeführt wird. Da diese Befehle mit hoher Frequenz in durch das Computerayatem 301 ausgeführten Programmen auftreten, sind die Cacheeinträge bei der Cacheeinrichtung gemäß dem Stand der Technik im allgemeinen ungültig, und die meisten Vorteile des Eincachens gehen verloren.In a prior art cache device, a Cache entry that is accessed by a key is either invalid or contains completely calculated Addresses; consequently, if one is used to calculate the Addresses value used changes, the entry accessed with the key will be made invalid. Thus, if the prior art cache device contains cacheable addresses, all cache entries that FP contain derived cacheable addresses, are invalidated each time a call or return command and cache entries that contain cacheable addresses derived from PBP or SDP must always be invalidated when a call command or a return command changes those values. However, it is impossible to say which of a cached address the base register 331 is used in generating the adrease and it is also impossible to tell of a table name 403 which base registers 331 its NTE 310 must be specified. Thus, when cachable addresses are cached in the prior art caching device, all cache entries are required To be invalidated whenever a call command or a return command is executed. Since these commands start with occur at high frequency in programs executed by the computer ayatem 301, the cache entries are at the cache facility generally invalid in the prior art, and most of the benefits of caching go lost.

":33345": 33345

2.2.2 Verbesserte Adressencaches im Computersystem 301 Figur 52.2.2 Improved address caches in the computer system 301 Figure 5

. 5 liefert eine konzeptionelle Darstellung eines verbesserten Adressencaches 501, das bei einem Ausfuhrungsbeispiel des Computersystems 301 verwendet wird. In der Pig. 5 bedeuten ausgezogene Pfeile Eingangesignale Zu- oder Ausgangssignale von den verbesserten Adressencaches 501 , und gestrichelte Pfeile bedeuten Steuersignale. Die verbesserten Adressencaches 501 machen vorteilhaften Gebrauch von drei Eigenschaften der relativen Adressierung im Computersystem 301 : ·. 5 provides a conceptual illustration of an improved address cache 501 used in one embodiment of computer system 301. In the pig. 5, solid arrows indicate input signals, input signals or output signals from the improved address caches 501, and dashed arrows indicate control signals. The improved address caches 501 make advantageous use of three properties of relative addressing in computer system 301:

Bei eincachbaren Adressen ist der Adressenversatz konstant, und nur die Basisadresse wird durch die Ausführung von Aufruf-Befehlen und Return-Befehlen beeinflußt. Der Zusammenhang zwischen einem Namen 401 und einem konstanten Adressenversatz bleibt unverändert, solange wie die Namentabelle 309 weiterhin verwendet wird. Venn eine neue Namentaballe 309 die frühere Namentabelle 309 ersetzt, ändert NTP seinen rfert. Somit müssen eingecachte Adressen/ersätze nicht ungültig gemacht werden, es sei denn, die Ausführung eines Aufruf-Befehls oder eines Return-Befehls ändert den Viert von NTP.The address offset is constant for cacheable addresses, and only the base address is influenced by the execution of call commands and return commands. The relationship between a name 401 and a constant address offset remains unchanged as long as the name table 309 is still used. Venn Namentaballe a new 309 replaces the earlier name table 309, NTP changes its rfert. This means that cached addresses / replacements do not have to be made invalid, unless the execution of a call command or a return command changes the fourth of NTP.

Adressen, die aus Argumentzeigern und Vsrbindungszeigern und konstanten Adre3senvers-itzen abgeleitet werden, sind während der Lebenszeit des Ra-imen.j 319 oder des Statische-Daten-G-ebiets 313» das diise enthält, eincachbar.Addresses consisting of argument pointers and Vsrbinding pointers and constant address offsets can be derived, are during the lifetime of the ra-imen.j 319 or of the static data area 313 »which contains this, cacheable.

Ar,*umentzeiger in einem gegebenen Rahmen 519 dienen al.3 Baaiaadreaaen nur dann, wenn FP jenen Rahmen 319 spezifiziert, und Verbindungszeiger in einem gegebenen Statische-Daten-Gebiet 313 werden im Computersystem 301 nur dann benutzt, wenn SDP jenes Statische-Daten-Gebiet 313 apezifiziert.Ar, * umentzeiger serve in a given frame 519 al.3 Baaiaadreaaen only if FP that frame 319 is specified, and connection pointers in a given static data area 313 are set in the computer system 301 is only used if SDP specifies that static data area 313.

Die verbesserten Adressencaches der vorliegenden Ausführungsform des Computersystems 301 verwenden den Vorteil der ersten Eigenschaft, indem sie eincachbare Basiaadressen getrennt von den konstanten Adresaenveraatzwerten eincachen und dann den eingecachten Adressenversatz zu der eingecachten Basisadreaae zur Erzeugung der Relativadresse addieren. Die Adressenversätze sind in einem Ursprungsmaterial-Namencache (Raw Materials Name Cache) (RMNC) 517 enthalten, der Tabellennamen 403 als Schlüsael verwendet. Der RMNC 517 wird ao bezeichnet, weil er Uraprungamaterialien enthält, aus denen Adressen gebildet werden können.The improved address caches of the present embodiment of computer system 301 take advantage of this the first property by caching basic addresses that can be cached separately from the constant address processing values and then add the cached address offset to the cached base address to generate the relative address. The address offsets are contained in a Raw Materials Name Cache (RMNC) 517, the Table name 403 used as key. The RMNC 517 will ao because it contains Uraprunga materials from which addresses can be formed.

Die Basisadressen sind in zwei Basisadreßcaches enthalten. Das eine, das Architekturale Basisregistercache (ABRC) 504 enthält die laufenden Werte von FP, SDP und PBP. Das andere, das Argument Baaiscache (ABC) 502, enthält Basisadressen, die aus Ln den Rahmen 319 enthaltenen Zeigern abgeleitet sind. Das ABC 502 verwendet Argumentzeiger repäsentierende unmittelbare Namen 409 als Schlüssel. Wie oben erklärt wurde, spezifizieren diese unmittelbaren Namen 409 nur Argumentzeiger im obersten Rahmen 321. Ansprechend auf diese unmittelbaren Namen 409 erzeugt der ABC 501 Adressen, die aas Argumentzeigern abgeleitet werden, die durch diese unmittebaren Namen 409 spezifiziert sind. Den Adressenver-The base addresses are contained in two base address caches. One, the Architectural Base Register Cache (ABRC) 504 contains the current values of FP, SDP and PBP. The other, the Baaiscache (ABC) 502 argument, contains base addresses, the pointers contained in Ln in frame 319 are derived are. The ABC 502 uses representing argument pointers immediate name 409 as a key. As explained above specify these immediate names 409 only Argument pointer in top frame 321. In response to these immediate names 409, ABC 501 generates addresses that aas argument pointers specified by these direct names 409 can be derived. The address book

--33345--33345

Sätzen im RMMG 517 zugeordnete Gode3 spezifizieren, welcher der Basisadreßcachea die Basisadres3e enthält, die mit dem Adressenversatz kombiniert werden maß. Wenn der Code einen Argumentzeiger als Basisadrease spezifiziert, so ist; dem Adreasenversatz weiter ein Schlüssel zugeordnet, auf den der ABC 501 in der gleichen v/eise anspricht, in der er auf einen unmittelbaren Hamen 409 anspricht.Code3 assigned to sentences in RMMG 517 specify which of the base address cache contains the base address which is combined with the address offset. If the code specifies an argument pointer as the base adrease, then is; The address offset is further assigned a key to which the ABC 501 responds in the same way as it responds to an immediate Hamen 409.

Die verbesserten Adreßcaches machen vorteilhaften Gebrauch von den zweiten und dritten Eigenschaften, wie nun erklärt wird: Erstens werden deswegen, weil SDP sich sehr viel weniger häufig ändert als PP, und weil die Verbindungszeiger ihre vierte nie ändern, aus den Verbindungszeigern abgeleitete komplette Adressen zusammen mit den Adressenversätzen im RMNC 517 eingecacht. Der RMN 517 wird folglich·jedesmal dann vollständig ungültig gemacht, wenn sich SDP, PBP oder NTP ändert. Zweitens enthält deswegen, weil die Argumentzeiger · niemals ihre Werte ändern, der ABC 502 nicht nur Argumentzeiger au3 dem obersten Rahmen 321, sondern aach Argumentzeiger aus Rahmen 319 unterhalb des obersten Rahmens 321. Er muß daher nicht bei der Ausführung jedes Return-Befehla ungültig gemacht werden.The improved address caches make advantageous use of the second and third properties, as will now be explained: First, because SDP is very much changes less frequently than PP, and because the connection pointer their fourth never change, complete addresses derived from the connection pointers together with the address offsets in the RMNC 517 cached. The RMN 517 will thus · each time completely invalidated when SDP, PBP, or NTP changes. Second, because the argument pointers never change their values, the ABC 502 does not just contain argument pointers au3 the top frame 321, but aach argument pointer from frame 319 below the uppermost frame 321. He therefore does not have to be invalidated when executing each return command.

2-3 Überblick über die verbesserten Adreßcaclies 501 im Computersystem 3012-3 Overview of the improved address cookies 501 in computer system 301

Ü3 wird nun Pig. 5 genauer betrachtet; dort wird zunächst der Zusammenhang zwischen den verbesserten Adreßcaches 501 mit dem Coraputersystem 301 beschrieben, und anschließend werden die Struktur- und Arbeitsweise der verbesserten Adreßcaches 501 beschrieben.Ü3 is now Pig. 5 considered in more detail; there will be first the relationship between the improved address caches 501 and the coraputer system 301 is described, and then the structure and operation of the improved address caches 501 are described.

2.3-1 Zusammenhang der verbesserten. Adreßcaches 501 mit dem Computersystem 3012.3-1 Correlation of the improved. Address cache 501 with the computer system 301

Die verbesserten Adreßoaches 501 sind in dem Deskriptor-Prozessor 329 des Computersystems 301 enthalten. Die verbesserten Adreßcaches 501 empfangen Namen 401 über den Namenbus 328. Namen von Feldern in den Namen 401 erscheinen als Marken auf Eingangssignalen für Komponenten der verbesserten Adreßcaches 501 in Fig. 5, um anzuzeigen, welche Abschnitte eines Namens 501 durch jene Komponente empfangen werden. Die verbesserten Adreßcaches 501 liefern Adressen und andere Daten an den Deskriptor-Prozessor 329 über den Deskripttrbus 333· Ein Cacheladebus 527 innerhalb des Deskriptor-1rozessors 329 ermöglicht es, daß Caches in den verbesserten Adreßcaches 501 mit Datenelementen aus dem Speicher 305 und mit durch den Deskriptor-Prozessor 329 erzeugten Werten geladen werden. Die verbesserten Adreßcaches 501 arbeiten unter Kontrolle der Steuerung 327 und von durch CTL 515 als Antwort auf Namen 401 erzeugten Signalen, Hit-Signalen aus dem ABC 502 und KMNC 517, und in den RMNCEs 519"enthaltenen Codes. Mikrobefehlssequenzen werden wiederum durch die Steuerung 327 als Antwort auf Signale aus dem CTL 515 und auf in RMNCEs 519 enthaltene Codes ausgeführt. The enhanced address cache 501 is in the descriptor processor 329 of the computer system 301 included. The improved Address caches 501 receive names 401 via name bus 328. Names of fields in names 401 appear as marks on input signals for components of the enhanced address cache 501 in FIG. 5 to indicate which Sections of a name 501 are received by that component. The improved address caches 501 provide addresses and other data to descriptor processor 329 via descriptor bus 333 · A cache load bus 527 within descriptor processor 329 enables caches in the improved address caches 501 to be created with data elements from the Memory 305 and with by descriptor processor 329 generated values are loaded. The enhanced address caches 501 operate under control of the controller 327 and 327 of signals generated by CTL 515 in response to name 401, hit signals from ABC 502 and KMNC 517, and in the Codes contained in RMNCEs 519 ". Sequences of microinstructions again performed by controller 327 in response to signals from CTL 515 and to codes contained in RMNCEs 519.

2·3·2 Komponenten der verbesserten Adreßcaches 5012 x 3 x 2 components of the enhanced address cache 501

Die hauptsächlichen Komponenten der verbesserten Adreßcaches 501 sind die folgenden:The major components of the improved address caches 501 are the following:

/104./ 104.

Der ABC 502, der zwei Hauptkomponenten hat: Eine BAC-Adressierlogik 533 und ABC-Register Die ABC-Register 504 enthalten ABC-Einträge (ABCEs) 503, in denen Basisadressen gespeichert sind, die aus in dem Stapel 317 enthaltenen Argumentzeigern abgeleitet sind. Die ABC-Adressierlogik 533 leitet Adressen in den ABC-Registern 504 aus Schlüsseln ab, die sie entweder vom Namenbus 328 oder vom EMC 517 empfangen hat. Der ABC 502 spricht auf die Schlüssel dadurch an, daß er Basisadressen an einen Basismultiplexer 511 und ABC-Hit-Fehl-Signale (Hit/Miss-Signale) an den CTL ausgibt. Die ABC-Adressierlogik 533 mag auch die Adresse des ABC-Eintrags 503 ausgeben, der zuletzt durch den Deskriptorbus 333 adressiert wurde.The ABC 502, which has two main components: BAC addressing logic 533 and ABC registers The ABC registers 504 contain ABC entries (ABCEs) 503, in which base addresses are stored from argument pointers contained in stack 317 are derived are. The ABC addressing logic 533 derives addresses in the ABC registers 504 from keys which they either from name bus 328 or from EMC 517. The ABC 502 responds to the key by sending base addresses to a base multiplexer 511 and ABC hit / miss signals to the CTL issues. The ABC addressing logic 533 also likes the address of the ABC entry 503, which was last given by the Descriptor bus 333 was addressed.

Der ABRC 504, der drei Register enthält: FPR 505, das den laufenden TSfert von PP enthält; SDPR 507, das den laufenden Wert von SDP enthält; und PBPR 509, das den laufenden Wert von PBP enthält.The ABRC 504, which contains three registers: FPR 505, the contains the current TSfert from PP; SDPR 507, which supports the contains current value of SDP; and PBPR 509, which contains the current value of PBP.

RMNC 517, der RMNC-Eintraäge (RMNCEs) 519 enthält und auf Schlüssel vom Namenbus 328 anspricht. Die RMNCEs mögen konstante Werte, die zum Berechnen von Adreßversätze verwendet werden, oder aus den Verbindungszeigern abgeleitete komplette Adressen enthalten. Der RMNC 517 gibt ein RMNC-Hit/Fehl-Signal an CTL 515 aus, und bei einem Hit-Signal können Daten aus einem RMNCE 519 entsprechend einem Schlüssel direkt an den Deskriptorbus 333 ausgegeben werden, oder Teile eines RMNCE 519RMNC 517, which contains RMNC entries (RMNCEs) 519 and responds to key from name bus 328. The RMNCEs like constant values that are used to calculate address offsets can be used or derived from the connection pointers complete addresses included. The RMNC 517 outputs an RMNC hit / miss signal to CTL 515, and at a hit signal can send data from an RMNCE 519 corresponding to a key directly to the descriptor bus 333, or parts of an RMNCE 519

können an einen Adressenversatz-Multiplexer 525, an OTL 515, ABC 502, und die Steuerung 327 ausgegeben werden.can be output to address offset multiplexer 525, OTL 515, ABC 502, and controller 327 will.

Eine Namenkontrolle (Name Trap) 531> die den Wert des letzten in die verbesserten Adreßcaches 501 eingegebenen Namens 401 enthält;A name control (Name Trap) 531> which the value of the last name 401 entered into enhanced address caches 501;

Ein Adreßaddierer 513, der die aus dem Basis-Multiplexer 511 erhaltenen Basisadressen und die aus dem Adressenversatz-Multiplexer 525 erhaltenen Adressenversätze addiert, oder entweder eine Basis oder einen Adressenversatz ungeändert passieren läßt.An address adder 513, the base addresses obtained from the base multiplexer 511 and those from the Address offset multiplexer 525 received address offsets added, or either a base or an address offset can pass unchanged.

Ein Basis-Multiplexer 511, der eine Basisadresse auswählt, die durch den ABC 502 oder eines der Register 505 bis 509 aus dem ABRC 504 ausgegeben wird.A base multiplexer 511 which selects a base address given by the ABC 502 or one of the registers 505 to 509 is output from the ABRC 504.

Ein Adressenversatz-Multiplexer 525, der einen Adressenversatzwert aus dem Adressenversatz fällt, eines RMNC 515 oder von dem Namenbus 328 auswählt.An address offset multiplexer 525 that has an address offset value falls out of the address offset, selects an RMNC 515 or from the name bus 328.

Ein CTL 515, der Eingangssignale vom Namenbus 328, von dem durch einen Schlüssel spezifizierten RMNCE 519, vom RMNC 51? und vom ABC 512 empfängt und auf jene Eingangssignale durch Erzeugen von Steuersignalen für den Basis-Multiplexer 511, den Adressenversatz-Multiplexer 525, den Adreßaddierer 513 und die Steuerung 327 reagiert.A CTL 515, which receives input signals from name bus 328, from the RMNCE 519 specified by a key, from the RMNC 51? and receives from the ABC 512 and on those Input signals by generating control signals for the base multiplexer 511, the address offset multiplexer 525, the address adder 513 and the controller 327 responds.

2.3·3 Arbeitsweise der verbesserten Adreßcaches 5012.3 · 3 Mode of Operation of the Improved Address Caches 501

Allgemein ausgedrückt arbeiten die verbesserten Adreßcaches 501 wie folgt: Wenn ein Name 401 auf dem Namenbus erscheint, empfängt CTL 515 das NTY-FeId 4-04, das IB-FeId 411 und gewisse Bits des UISP-FeId 413. CTL 515 bestimmt aus den Werten dieser Felder, zu welcher der folgenden Klassen ein Name 401 gehört:Generally speaking, the improved address caches work 501 as follows: If a name 401 is on the name bus appears, CTL 515 receives the NTY field 4-04, the IB field 411 and certain bits of the UISP field 413. CTL 515 determined the values of these fields to which of the following classes a name 401 belongs:

Unmittelbare Namen 409> die ein architekturales Basisregister als Basis spezifizieren.Immediate names 409> die an architectural Specify the base register as the base.

- Unmittelbare Namen 409, die einen Argumentzeiger als eine Basis epezifizieren·- Immediate names 409, which take an argument pointer as a specify a base

Unmittelbare Namen 409, die einen schreibbaren Zeiger· als eine Basis spezifizieren.Immediate names 409 that have a writable pointer specify as a basis.

- Tabellennamen 403.- Table names 403.

Die Diskussion befaßt sich zunächst mit der Arbeitsweise der verbesserten Adreßcaches 501 als Antwort auf unmittelbaren Eahmen 409 und dann mit ihrer Operation als Antwort auf Tabellennamen 403.The discussion first turns to the operation of the enhanced address caches 501 in response to immediate Frame 409 and then with its operation in response to table name 403.

2.3·3·1 Arbeitsweise der verbesserten Adreßcaches 501 als Antwort auf unmittelbare Namen 4-092.3 · 3 · 1 Mode of Operation of the Improved Address Caches 501 in response to immediate names 4-09

Im Fall eines unmittelbaren Namens 409, der ein architektu-In the case of an immediate name 409, which is an architectural

rales Basisregister als eine Basis spezifiziert, spricht GTL 515 auf das NOJX-FeId 405 des unmittelbaren Namens 409 dadurch an, daß es veranlaßt, daß der Basis-Multiplexer 511 das Register im ABRC 504 auswählt, das den laufenden Wert der architekturalen Basisadresse enthält, die in dem unmittelbaren Namen spezifiziert ist, und es veranlaßt den Adreßversatz-Multiplexer 525, das DISP-FeId 413 des unmittelbaren Namens 409 auszuwählen. Der Adreßaddierer 513 addiert dann den Wert aus dem spezifizierten Register im ABRC 504 zu dem Wert aus dem DISP-FeId 413, um die durch den unmittelbaren Namen 409 spezifizierte Adresse zu erzeugen. Bei der vorliegenden Ausführungsform des Computersystems 301 wandelt der Adressenversatz-Multiplexer 525 auch das DISP-FeId 413 in einen 32-Bit-Wert um. Er tut dies durch Verschieben des DISP-Felds 413 um fünf Plätze nach links und durch Zeichenergänzung des sich ergebenden Werts auf 32 Bits.real base register specified as a base speaks GTL 515 on the NOJX field 405 of the immediate name 409 by causing the base multiplexer 511 to select the register in ABRC 504 that has the current value of the architectural base address specified in the immediate name and it causes the Address offset multiplexer 525, the DISP field 413 of the immediate Name 409. The address adder 513 then adds the value from the specified register in the ABRC 504 to the value from the DISP field 413 to obtain the through to generate the immediate name 409 specified address. In the present embodiment of the computer system 301 converts the address offset multiplexer 525 also converts the DISP field 413 to a 32-bit value. He does this by shifting the DISP field 413 by five places to the left and by adding characters to the resulting value to 32 bits.

Im Fall eines unmittelbaren Namens 409, der einen Argumentzeiger spezifiziert, empfängt dann, falls die durch den Argumentzeiger spezifizierte Adresse im ABC 502 eingecacht ist, CTL 515 ein Hit-Signal aus dem ABC 502 und antwortet · auf das Hit-Signal und die NTY-, IB-, und DISP-Felder des unmittelbaren Namens 409, indem es veranlaßt, daß der Basis-Multiplexer 51Ί ABC 502 auswählt, und daß der Adreßaddierer 513 den aus dem Bais-Multiplexer 511 empfangenen Wert ungeändert zum Deskriptorbus 333 durchleitet.In the case of an immediate name 409 specifying an argument pointer, then, if the received by the Argument pointer specified address in ABC 502 cached is, CTL 515 is a hit signal from ABC 502 and responds to the hit signal and the NTY, IB, and DISP fields of the immediate name 409 by causing the base multiplexer 51Ί to select ABC 502 and the address adder 513 the value received from the basic multiplexer 511 unchanged to descriptor bus 333.

Im Fall eines unmittelbaren Namens 4-09, der einen schreibbaren Zeiger als eine Basis spezifiziert, das heißt, einen Zeiger auf einen positiven Adressenversatz bezüglich SDP oder FP, kann der schreibbare Zeiger nicht eingecacht werden. CTL 515 stellt den positiven Wert des DISP-Felds 413 fest und erzeugt ein Signal für die Steuerung 327· Die durch die Steuerung 327 als Antwort auf das Signal ausgeführte Mikrocodesequents gewinnt den unmittelbaren Namen 409 aus der Namenkontrolle oder Namenfalle (Name Trap) 531 wieder, verwendet die durch das NTX-FeId 405 spezifizierte architekturale Basisadresse und den Wert des DISP-FeId 413 zur Bildung der Adresse des Zeigers, und holt dann den Zeiger aus dem Speicher 305 und wandelt ihn in einen Deskriptor für die durch den unmittelbaren Namen 409 repräsentierten Daten um.In the case of an immediate name 4-09 that has a writable Pointer specified as a base, that is, a pointer to a positive address offset with respect to SDP or FP, the writable pointer cannot be cached. CTL 515 represents the positive value of DISP field 413 fixed and generates a signal for the controller 327 · Die through the controller 327 in response to the signal executed microcode sequences extracts the immediate name 409 the name control or name trap 531 again uses the architectural specified by the NTX field 405 Base address and the value of the DISP field 413 to form the address of the pointer, and then fetches the pointer from memory 305 and converts it into a descriptor for the data represented by the immediate name 409.

2.3.3.2 Arbeitsweise der verbesserten Adreßcaches 501 als Antwort auf Tabellennamen 4032.3.3.2 Mode of operation of the improved address caches 501 in response to table name 403

Im Fall von Tabellennamen 403 hängt das Verhalten der verbesserten Adreßcaches 501 von Codes ab, die im EMNCE 519 enthalten sind, auf den durch den Tabellennamen 403 zugegriffen wird. Wenn es einen SMNCE 519 entsprechend einem Tabellennamen 403 gibt und der Tabellenname 403 dem BMNC 517 angeboten wird, wird der Code in dem Tabellennamen 403 entsprechenden RMNCE 519 an CTL 515 ausgegeben. Der Code bestimmt dann die Art, in der die verbesserten Adreßcaches 501 auf den Tabellennamen 403 ansprechen.In the case of table names 403, the behavior of the improved address caches 501 depends on codes that are in the EMNCE 519 are contained, to which the table name 403 is accessed. If there is an SMNCE 519 corresponding to a table name 403 and the table name 403 corresponds to the BMNC 517 is offered, the code is in the table name 403 corresponding RMNCE 519 is output to CTL 515. The code then determines the manner in which the enhanced address caches 501 respond to the table name 403.

Der in einem HMDTCE 519 enthaltene Code wird durch die Mikrobefehlsequenz gesetzt, die den EMEJCE 519 lädt.The code contained in an HMDTCE 519 is supported by the Microinstruction sequence set that loads the EMEJCE 519.

Der einfachste Fall ist ein EMNCE 519 für einen Tabellennamen 4-03, der einen Verbindungszeiger repräsentiert. Aus Verbindungszeigern abgeleitete Adressen werden vollständig im EMITCE 519 eingecacht, und so antwortet CTL 515 auf den einen derartigen EMITCE 519 spezifizierenden Code, indem er bewirkt, daß der Adressenversatz-Multoplexer 525 den EMITC 517 auswählt und bewirkt, daß der Adreßaddierer 513 das Eingangssignal aus dem Adressenversatz-Multiplexer 525 ungeändert zum Deskriptor-Bus 333 durchläßt.The simplest case is an EMNCE 519 for a table name 4-03, which represents a connection pointer. the end Addresses derived from connection pointers are completely cached in EMITCE 519, and so CTL 515 responds to the such an EMITCE 519 specifying code by it causes address offset multiplexer 525 to select EMITC 517 and causes address adder 513 to do the Input signal from the address offset multiplexer 525 unchanged to descriptor bus 333 passes.

Falls der EMITCE 519 einen konstanten Adressenversatz enthält, der zu einer der architekturalen Basisadressen zur Erzeugung der gewünschten Adresse hinzuaddiert wird, so spezifiziert der Code weiter, welche Basisadresse zur Erzeugung der Adresse verwendet werden muß. CTL 515 antwortet auf den diesen Typ eines Eintrags spezifizierenden Code, indem er bewirkt, daß der Basis-Multiplexer 511 das Register des ABRC 504- auswählt, das die spezifizierte Basisadresse enthält, und indem er den Adressenversatz-Multi- · plexer 525 veranlaßt, den RMC. auszuwählen. Der Adreßaddierer 513 addiert dann die Basisadresse und den Adressenversatz zur Erzeugung der durch den Namen repräsentierten Adresse.If the EMITCE 519 contains a constant address offset, to one of the architectural base addresses for If the desired address is added to the generation of the desired address, the code further specifies which base address is to be generated the address must be used. CTL 515 answers to the code specifying that type of entry by causing the base multiplexer 511 to open the register of the ABRC 504- selects the specified base address contains, and by causing the address offset multiplexer 525, the RMC. to select. The address adder 513 then adds the base address and the address offset to generate the address represented by the name.

Venn EMNCE 519 einen konstanten Adressenveraatz enthält, der zu einer durch einen Argumentzeiger spezifizierten Basis zur Erzeugung der Adresse addiert wird, so enthält HMITCE 519 auch einen Wert, der dem DISP-FeII eines unmittelbaren Hamens 413 äquivalent ist. Dieser Wert wird an ABC 502 ausgegebn. Wenn ein Tabellenname 40 5 auf dem Namenbus 328 erscheint, so wählt ABC 50 als sein Eingangssignal RMNCE 519 und gibt den Wert von ABCE 503 entsprechend dem vom EMNCE 519 empfangenen Wert aus. Wie bei anderen Typen von EMNCE 5I9, wird der den Typ von EMNCE 519 spezifizierende Code an CTL 515 ausgegeben, der dadurch .antwortet, daß 'er bewirkt, daß der Basis-Multiplexer 511 ABC 502 auswählt und daß der Adressenversatz-Multiplexer 525 EMNC 517 auswählt. Die Folge hiervon ist, daß der Adreßaddierer 513 den konstanten Adressenversatzwert, der im EMNCC 519 eingecacht ist, zu der Adresse addiert, die durch ABC .[5O2 als Antwort auf den Wert, den er aus jenem BMNCE 519 empfing, erzeugt wurde.If EMNCE 519 contains a constant address offset that is added to a base specified by an argument pointer to generate the address, then HMITCE 519 also contains a value which is equivalent to the DISP-FeII of an immediate Hamens 413. This value is output to ABC 502. When a table name 40 5 appears on name bus 328, ABC 50 selects RMNCE 519 as its input and outputs the value of ABCE 503 corresponding to the value received from EMNCE 519. As with other types of EMNCE 5I9, the code specifying the type of EMNCE 519 is output to CTL 515 which "responds" by causing base multiplexer 511 to select ABC 502 and address offset multiplexer 525 to select EMNC 517 selects. The result is that address adder 513 adds the constant address offset value cached in EMNCC 519 to the address indicated by ABC. [ 502 was generated in response to the value it received from that BMNCE 519.

In komplexeren Fällen enthält EMNCE 517 Information, aus der Adressen von MikrobefeiSequenzen abgeleitet werden können. Diese Information wird an die Steuerung 327 ausgegeben, die darauf durch- Ausführung der durch EMNCE 517 spezifizierten Mikrobefehlsequenz antwortet. Die spezifizierte Mikrobefehlsequenz verwendet den Inhalt von EMNC entsprechend dem Tabellennamen 403 zur Konstruktion der durch den Tabellennamen 403 repräsentierten Adresse.In more complex cases, EMNCE 517 contains information from the addresses can be derived from micro-command sequences can. This information is output to the control 327, the subsequent execution of the EMNCE 517 specified microinstruction sequence responds. The specified Microinstruction sequence uses the contents of EMNC corresponding to the table name 403 to construct the address represented by table name 403.

":333457ί": 333457ί

Wenn beispielsweise der Adressenversatz der durch den Tabellennamen 403 repräsentierten Adresse unter Verwendung von Daten berechnet wird, die im Speicher 305 enthalten sind, so mag der BMNC-Eintrag 519 entsprechend dem Tabellennamen 403 selbst einen die Daten repräsentierenden Tabellennamen 4-03' enthalten, und die durch GTL 327 ausgewählte Mikrobefehlsequenz mag den Adressenversatz dadurch berechnen, daß sie den Tabellennamen 403' an BMWC 517 liefert, um die Adresse der Daten zu erhalten, daß sie die Daten aus dem Speicher 305 abruft und die Daten zur Berechnung des Adressenversatzes verwendet.For example, when using the address offset of the address represented by table name 403 from data stored in memory 305 are included, the BMNC entry 519 may accordingly the table name 403 itself a representing the data Table names 4-03 'included, and those by GTL 327 selected microinstruction sequence may compute the address offset by sending the table name 403 'to BMWC 517 supplies, in order to obtain the address of the data, that it fetches the data from the memory 305 and sends the data to the Calculation of the address offset used.

Falls, wie oben beschrieben, kein gültiger ABGE 503 entsprechend einem aus dem Namenbus 328 oder dem BMNC 517 empfangenen Schlüssel vorhanden ist, empfängt. CTL 515 ein Fehlsignal aus dem ABC 502. CTL 515 antwortet auf das Fehlsignal (Miss-Signal) durch Lieferung eines Signals an die Steuerung 327, auf das die Steuerung 327 durch Ausführung einer ABC-Fehl-Mikrobefehlsequenz antwortet. Unter Steuerung dieser Mikrobefehlsequenz erhält der Deskriptor-Prozessor 329 die Adresse des gültigen ABCE 503 aus der ABC-Adressierlogik 533 über den Deskriptorbus 333, verwendet die Adresse zur Bildung des unmittelbaren Namens 409, der das Fehlsignal verursacht hat, verwendet den unmittelbaren Namen 409 zum Lokalisieren des durch den unmittelbaren Namen 409 repräsentierten Argumentzeiger im obersten Rahmen .521,und verwendet dann die Adresse, um den Argumentzeiger m die geeignete Speicherstelle im ABC 502 zu laden.If, as described above, no valid ABGE 503 accordingly one from the name bus 328 or the BMNC 517 received key is present, receives. CTL 515 a Missing signal from ABC 502. CTL 515 replies to the Missing signal (Miss signal) by supplying a signal to the controller 327, to which the controller 327 by executing responds to an ABC miss microinstruction sequence. Under The descriptor processor 329 receives the address of the valid ABCE 503 from the control of this microinstruction sequence ABC addressing logic 533 via the descriptor bus 333, uses the address to form the immediate name 409, that caused the miss uses the immediate name 409 to locate the one caused by the immediate Names 409 represented argument pointers in the top one Frame .521, and then uses the address to load the argument pointer m to the appropriate location in ABC 502.

GKusMÄt INSPECTEDGKusMÄt INSPECTED

i-:i-:

:.":33345:. ": 33345

Danach wird die Operation, die das Fehlsignal verursacht hat, wiederholt.After that, the operation that caused the false signal becomes has repeated.

Ähnlich empfängt, falls kein gültiger BMCE 519 entsprechend einem Tabellennamen 403 vorhanden ist, GTL 515 ein Feblsignal aus dem EMNG 517 und erzeugt ein Signal, auf das die Steuerug 32? durcn Ausführen einer RMNC-?ehl-Mikrobefehlsequenz antwortet. Unter Steuerung dieser Mikrobefehlsequenz gewinnt der Deskriptor.Prozessor 329 den Tabellennamen 403, der das Fehlsignal verursacht hat, aus der Namenkontrolle 531 wieder, ruft NTE 310 entsprechend dem Tabellennamen 403 aus dem Speicher 103 ab, verwendet den Tabellennamen 403 zum Lokalisieren des entsprechenden RMNC-Eintrags 519 und macht einen BMCE 519 unter Verwendung der im NTE 310 enthaltenen Daten. Wenn einmal der BMNC-Eintrag 519 entsprechend dem Tabellennanen 403 geladen ist, wird die Operation, die das Fehlsr.gnal verursacht hat, wiederholt.Similarly, if not a valid BMCE 519 receives accordingly a table name 403 is present, GTL 515 a feble signal from the EMNG 517 and generates a signal to the the control 32? by executing an RMNC ehl microinstruction sequence answers. Under control of this sequence of microinstructions, the descriptor processor 329 wins the table name 403, which caused the faulty signal, from the Name control 531 again, calls NTE 310 according to the Table names 403 from memory 103, uses the Table names 403 to locate the corresponding RMNC entry 519 and makes a BMCE 519 using of the data contained in the NTE 310. Once the BMNC entry 519 is loaded according to the table name 403 is, the operation that is causing the error signal becomes has repeated.

2.4 Ungültigmachen in den verbesserten Adreßcaches 5012.4 Invalidation in the improved address caches 501

In den verbesserten Adreßcaches 501 muß FPR '505 bei Jeder Ausführung eines Aufruf- oder Return-Befehls auf den neuesten Stand gebracht werden,und SDPR 507 und J3BPR 509 müssen immer dann auf den neuesten Stand gebracht werden, wenn die Ausführung eines Aufruf— oder Return-Bef<ihls es erfordert, daß sie geändert werden.In the improved address caches 501, FPR '505 must be updated every time a call or return command is executed, and SDPR 507 and J 3 BPR 509 must be updated every time a call- or return commands require that they be changed.

Im ABC 502 ist eine komplette Uhgültigmachung so lange nicht erforderlich, wie das Computersystem 301 denselben Stapel 317 verwendet. Bei der Ausführung eines Aufruf-Befehls müssen Adressen entsprechend den im obersten Rahmen 321 angeordneten Argument zeigern nach ABC 502 geladen werden, aber die Argumentzeiger in den früheren Rahmen 519 ändern ihre Werte nicht, und daher besteht keine Notwendigkeit, die diese enthaltenden ABCEs 503 ungültig zu machen. Da die Argumentzeiger aus den früheren Rahmen 319 im ABC 503 aufbewahrt werden, erfordert es der Return-Befehl lediglich, die die Argumentzeiger aus dem früheren obersten Rahmen 321 enthaltenden ABCEs 503 ungültig zu machen· In ABC 502 a complete validation is so long not required, as computer system 301 does Stack 317 used. When executing a call command addresses must point to ABC 502 according to the arguments arranged in the uppermost frame 321 loaded, but the argument pointers in the earlier Frame 519 does not change its values, and therefore exists no need to use the ABCEs 503 invalidate. Since the argument pointers from earlier frames 319 are kept in ABC 503, the Return command merely retrieves the argument pointers from the invalidate previous top frame 321 containing ABCEs 503

Im RMNC 517 wird eine vollständige ungültigmachung nur erforderlich, wenn die Ausführung eines Aufruf- oder Return-Befehls den Wert von SDP, PBP oder NTP ändert, oder wenn das Computersystem 301 einen neuen Stapel benötigt. Vollständige Adressen in den RMNCEs 519 werden niemals aus JTP abgeleitet, und daher werden sie nicht ungültig, wenn sich EP ändert. Die RMNCEs 519, die nur Adressenversätze enthalten, werden nur ungültig, wenn ein Aufruf- oder Return-Befehl eine Prozedur 311 aufruft oder zu ihr zurückkehrt, die eine Namentabelle 309 hat, die von der der Prozedur 311 verschieden ist, die den Aufruf- oder Return-Befehl enthält, oder wenn das Compur tersystem 301 ein Programm ausführt, das einen anderen Stapel 517 verwendet. Aufrufe und Returns, die nur PPIn the RMNC 517 a full invalidation is only done required if the execution of a call or return command changes the value of SDP, PBP or NTP, or when the computer system 301 needs a new batch. Complete addresses in the RMNCEs 519 will be never derived from JTP and therefore they do not become invalid if EP changes. The RMNCEs 519 that only Contain address offsets are only invalid if a call or return command calls a 311 procedure or returns to it, which has a name table 309 different from that of procedure 311 which controls the Contains call or return command, or if the computer system 301 is executing a program that another Stack 517 used. Calls and Returns that are PP only

ändern, sind weit häufiger als andere Aufrufe und Returns, und Aufrufe und Returns, die mehr als PP andern, ändern häufig mehr als eine der Adressen PBP, SDP oder NTP. Folglich wird in einem vorliegenden Ausführungsbeispiel des Computersystems 301 EMNC 517 immer ungültig gemacht, wenn das Conputersystem 301 ein Programm ausführt, das einen unterschiedlichen Stapel 317 verwendet, oder wenn ein Aufruf oder Return mehr als eine Änderung des Werts von I1P mit sich bringt. Bei anderen Ausführungsformen mag es sein, daß EMCTC 517 nicht komplette Adressen enthält, und bei solchen Ausführungsformen muß RMKC 517 nur dann ungültig gemacht werden, wenn ein Aufruf- oder Return-Befehl eine abweichende Namentabelle 309 erfordert oder wenn das Computersystem 301 ein Programm ausführt, das einen anderen Stapel 317 verwendet·change are far more frequent than other calls and returns, and calls and returns that change more than PP often change more than one of the addresses PBP, SDP or NTP. Consequently, in a present embodiment of the computer system 301, EMNC 517 is always invalidated when the computer system 301 executes a program that uses a different stack 317, or when a call or return brings about more than one change in the value of I 1 P. In other embodiments EMCTC 517 may not contain complete addresses, and in such embodiments RMKC 517 need only be invalidated if a call or return command requires a different name table 309 or if the computer system 301 is executing a program, that uses another stack 317

Andere Ausführungsformen der verbesserten 4dreßcaches mögen getrennte Caches für eincachbare Zeiger enthalten, die von den Argumentzeigern verschieden sind. Solche Caches könnten mit dem Basis-Multiplexer 511 gemeinsam mit ABC 502 und ABRC 504 verbunden sein, und könnten Schlüssel vom Namenbus 328 oder EMNC 517 in der gleichen Weise wie ABC 502 empfangen. Codes in den RMNCEs 510 könnten auch solche zusätzlichen Caches als die Quellen von Basisadressen auswählen*Other Embodiments of the Improved Three-Way Caches may contain separate caches for cacheable pointers that are different from the argument pointers. Such Caches could be shared with the base multiplexer 511 connected to ABC 502 and ABRC 504, and could Keys from name bus 328 or EMNC 517 in the same Way like ABC 502 received. Codes in the RMNCEs 510 could also select such additional caches as the sources of base addresses *

ORIGINAL INSPECTEDORIGINAL INSPECTED

2.5 Detallierte logische Struktur von ABC 502 und BMC 517 - Fig. 6 und 6A2.5 Detailed logical structure of ABC 502 and BMC 517 - Figures 6 and 6A

Die Diskussion wendet sich nun zu der detaillierten logischen Struktur des ABC 502, das durch Fig. 6 dargestellt ist, und zu jener des EMNC 51?» die durch die •Fig. 6A dargestellt ist.The discussion now turns to the detailed logical structure of ABC 502 illustrated by FIG is, and that of the EMNC 51? » the through the • Fig. 6A is shown.

2.5.1 Detallierte logische Struktur des ABC 502 - Fig. 62.5.1 Detailed logical structure of ABC 502 - Fig. 6

Fig. 6 zeigt die detaillierte logische Struktur des ABC 502 und illustriert die Beziehung zwischen dem ABC 502 und dem Stapel 317- Fig. .6 enthält eine Darstellung des Inhalts des ABC 502, nämlich eine Darstellung des ABC-Inhalts 613, eine detaillierte Darstellung des laufenden ABC-Eahmens 6Ο7 in einer Detaildarstellung 615 5 und eine Darstellung des Stapels 317·Fig. 6 shows the detailed logical structure of the ABC 502 and illustrates the relationship between the ABC 502 and the stack 317- Fig. 6 contains a representation of the contents of the ABC 502, namely a representation of the ABC content 613, a detailed representation of the running ABC frame 6Ο7 in a detailed representation 615 5 and a representation of the stack 317

Zuerst wird der ABC-Inhalt 613 betrachtet. Der ABC 502 besteht aus ABC-Rahmen 603. Jeder ABC-Eahmen enthält eine Anzahl von ABCEs 503· Bei einem vorliegenden Ausführungsbeispiel des ABC 502 gibt es 16 ABC-Rahmen 603, und jeder ABC-Rahmen 603 enthält 16 ABCEs 503. Die Anzahl der ABC-Rahmen 603 im ABC 502 und die Anzahl von ABCEs 503 in einem Eahmen mag bei anderen Ausführungsformen unterschiedlich sein,und bei einigen Ausführungsformen mag die Anzahl der ABC-Rahmen 603 und die Anzahl derFirst, consider the ABC content 613. The ABC 502 consists of ABC frames 603. Each ABC frame contains a number of ABCEs 503 · In a present embodiment the ABC 502 has 16 ABC frames 603, and each ABC frame 603 contains 16 ABCEs 503. The number the ABC frame 603 in ABC 502 and the number of ABCEs 503 in a frame may in other embodiments may be different, and in some embodiments likes the number of ABC frames 603 and the number of

copycopy

"h za ABGEs 503 in einem ABC-Rahmen 6Ο3 nicht i'esi; sein. Jeder ABCE 503 enthält zwei getrennt ladbare Felder: Ein Adreßfeld 609» das eine Adresse enthält, die aus einem Argumentzeiger abgeleitet wird, wenn ABCE 503 gültig ist, und ein .Gültigkeits (V)-PeId 611, das angibt, ob ABOE 503 gültig ist. Wenn alle einen ABC-Rahmen 603 bildenden ABCEs 503 ungültig sind, dann ist dieser ABC-Bahmen 6Ο3 ungültig. "h za ABGEs 503 in an ABC frame 6Ο3 not i'esi ;. Each ABCE 503 contains two separately loadable fields: An address field 609 contains an address that is derived from an argument pointer if ABCE 503 is valid and a .validity (V) -PeId 611, which indicates whether ABOE 503 is valid. If all ABCEs 503 forming an ABC frame 603 are invalid, then this ABC frame 6Ο3 is invalid.

Jeder gültige ABC-Rahmen 6Ο3 entspricht einem Rahmen 319 im Stapel 317· Der laufende ABC-Rahmen 607 entspricht dem obersten Rahmen 321, und die ABC-Rahmen 603 unterhalb des laufenden ABC-Rahmens 6Ο7 entsprechen den Rahmen 319 unterhalb des obersten Rahmens 321. So entsprich": in Fig. 6 der ABC-Rahmen 6Ο3 (4) dem Rahmen 319 (1), der jJ3C-Rahmen 603(3) dem Rahmen 319 (2). j u*Ld so weiter. Innerhalb eines ABC-Rahmens 6Ο3 sind Adressen, die durch Argumentζeiger im Rahmen 319 entsprechend dem ABC-Rahmen 603 spezifiziert sind, in einer Reihenfolge entsprechend der der Argumentζeiger im Rahmen 319 angeordnet. Im Detail 615 des laufenden ABC-Rahmens sind die Argument ζ eiger 601 im oberjsten Rahmen in der Reihenfolge 601 (0), 601 (1) und 601 (2), angeordnet, und im laufenden ABC-Rahmen 6Ο7 sind die ABGEs 503, die Adressen aus diesen Argumentzeigern 601 entlalten, in der gleichen Reihenfolge angeordnet. Jedoch ist jede entsprechende Reihenfolge, beispielsweise eine zu dor Reihenfolge im Rahmen 319 umgekehrte Reihenfolge, möglic 1.Each valid ABC frame 6Ο3 corresponds to a frame 319 in the stack 317 · The current ABC frame 607 corresponds to the top frame 321, and the ABC frames 603 below the current ABC frame 6Ο7 correspond to the frames 319 below the top frame 321. So Corresponds ": in Fig. 6 the ABC frame 6Ο3 (4) to the frame 319 (1), the jJ3C frame 603 (3) to the frame 319 (2). j u * Ld so on. Within an ABC frame 6Ο3 addresses specified by argument pointers in frame 319 corresponding to ABC frame 603 are arranged in an order corresponding to that of the argument pointers in frame 319. In detail 615 of the current ABC frame, arguments own 601 are in the top frame in the sequence 601 (0), 601 (1) and 601 (2), and in the current ABC frame 6Ο7, the ABGEs 503 containing addresses from these argument pointers 601 are arranged in the same order. However, each corresponding order is, for example one to the order in the frame n 319 reverse order, possible 1.

. COPY. COPY

ABCEs 5()3» <ϋβ keine Adresse enthalten, sind ungültig, und wenn ein Estinnen 319 mehr als 16 Argumentzeiger 601 enthält, werden nur Adressen von den ersten 16 in den ABC-Rahmen 603 eingecacht. CTL 5^5 detektiert unmittelbare Warnen 409, die Argumentzeiger 601 spezifizieren, die nicht im ABC 502 eingecacht werden können, aus dem Wert des DISP-Felds 413 und spricht auf solche unmittelbaren Namen 9 dadurch an, daß es die Steuerung 327 veranlaßt, einen Microcode auszuführen ' ähnlich dem, der bei der Diskussion der unmittelbaren Namen 409, ä.±a schreibbare Zeiger als Basisadressen spezifizieren, beschrieben wurde. Der nächste ABC-Rahmen 605, oberhalb des laufenden ABC-Rahmens 607, ist immer ungültig. So kann bei dem vorliegenden Ausführungsbeispiel ABC 502 Adressen aus Argumentzeigern nur in den obersten 15 Rahmen 319 des Stapels 321 enthalten. Der Stapel im ABC 502 ist kreisförmig geschlossen; das heißt, falls der ABC-Rahmen 603 (0) dem Rahmen 319 (a) entspricht, dann entspricht der ABC-Rahmen (15) dem Rahmen 319 (a + 1).ABCEs 5 () 3 »<ϋβ contain no address are invalid, and if an Estinnen 319 contains more than 16 argument pointers 601, only addresses from the first 16 are cached in the ABC frame 603. CTL 5 ^ 5 detects immediate warnings 409 specifying argument pointers 601 that cannot be cached in ABC 502 from the value of DISP field 413 and responds to such immediate names 9 by causing controller 327 to generate a microcode to execute 'similar to that described in the discussion of immediate names 409, Ä. ± a specifying writable pointers as base addresses. The next ABC frame 605, above the current ABC frame 607, is always invalid. Thus, in the present exemplary embodiment, ABC 502 can contain addresses from argument pointers only in the top 15 frames 319 of the stack 321. The stack in ABC 502 is closed in a circle; that is, if ABC frame 603 (0) corresponds to frame 319 (a), then ABC frame (15) corresponds to frame 319 (a + 1).

Wenn der Prozessor 303 einen Aufruf-Befehl ausführt, werden Adresser entsprechend Argumentzeigern 601 für die in dem Aufruf-i.efehl verwendeten Argumente in den nächsten ABC-Rahmen 605 geladen. Dann wird der nächste ABC-Rahmen 605 der neue laufende ABC-Rahmen 607, und der ABC-Rahmen 603 oberhalb des neuen laufenden ABC-Rahmens 607 wird ungültig gemacht, indem man ihn zum neuen nächsten ABC-Rahmen 605 macht. Bei der Ausführung eines Return-Befehls wird derWhen processor 303 executes a call instruction, Addressers corresponding to argument pointers 601 for the in the Call-i-command arguments used in the next ABC frame 605 loaded. Then the next ABC frame 605 becomes the new current ABC frame 607, and the ABC frame 603 above the new current ABC frame 607 is invalidated by moving it to the new next ABC frame 605 power. When a return command is executed, the

ABC-Rahmen 603 unterhalb des laufenden ABC-Rahmens 6Ο7 der neue laufende ABC-Rahmen 6Ο7, und der frühere laufende ABC-Rahmen 607 wird ungültig gemacht, indem man ihn zum neuen nächsten ABC-Rahmen 6Ο5 macht· Somit entspricht der laufende ABC-Rahmen 6Ο7 immer dem obersten Rahmen 321.ABC frame 603 below the current ABC frame 6Ο7 of the new running ABC frame 6Ο7, and the previous running ABC frame 607 is invalidated by adding it to the makes new next ABC frame 6Ο5 · Thus, the current ABC frame 6Ο7 always corresponds to the top frame 321.

Wie oben erwähnt, wird das DISP-FeId 4-13 der unmittelbaren Namen 409j die Argumentzeiger 601 als Basen spezifizieren, als Schlüssel für ABC 502 verwendet. Alle Argumentzeiger 601, die durch das DISP-FeId 413 spezifiziert werden können, sind im obersten Rahmen 321 entsprechend dem laufenden ABC-Rahmen 6Ο7 enthalten, und folglich spricht nur der laufende ABC-Rahmen 6Ο7 auf die Schlüssel an. Weil der Vert des DISP-Felds 413 von der Speicherstelle des Argumentζeigers 601 im obersten Rahmen 312 abhängt und die Reihenfolge der Adressen in einem ABC-Rahmen 603 derjenigen der Argument zeige1? 601 im Rahmen 319 entsprechend dem ABC-Rahmen 603 entspricht, kann das DISP-FeId 413 verwendet werden, um die -U3CEs 503 innerhalb des laufenden ABC-Rahmens 6Ο7 direkt zu adressieren. Falls der durch das DISP-FeId 413 adressierte ABCE 503 gültig ist, enthält er die Adresse aus dem durch den unmittelbaren Namen 409 spezifizierten Argumeiitzeiger 601.As mentioned above, the DISP field 4-13 of the immediate names 409j specifying the argument pointers 601 as bases is used as the key for ABC 502. All argument pointers 601 that can be specified by the DISP field 413 are contained in the uppermost frame 321 corresponding to the current ABC frame 67, and consequently only the current ABC frame 6Ο7 responds to the keys. Because the vert of the DISP field 413 depends on the storage location of the argument owner 601 in the top frame 312 and the order of the addresses in an ABC frame 603 that of the arguments show 1 ? 601 in frame 319 corresponds to the ABC frame 603, the DISP field 413 can be used to directly address the -U3CEs 503 within the current ABC frame 6Ο7. If the ABCE 503 addressed by the DISP field 413 is valid, it contains the address from the argument pointer 601 specified by the immediate name 409.

Bei einem vorliegenden Ausführungsbeispiel des Computersystems 301 werden nur die Bits 8 bis 11 de;; DISP-Felds 413 als Schlüssel zum ABC 502 verwendet. Die weniger signifikanten Bits des DISP-Felds 413 werden nicht benötigt, weilIn a present embodiment of the computer system 301, only bits 8 through 11 de ;; DISP field 413 used as a key to the ABC 502. The less significant bits of DISP field 413 are not needed because

:334579: 334579

die Argumentzeiger 601 in dem Computersystem 301 mit negativen Adressenversätzen bezüglich FP gespeichert werden, die ohne Best durch 128 teilbar sind. In der Zweikomplement-Notation, die im DISP-FeId 413 verwendet wird, haben Adressenversätze von Argumentzeigern 701 Nullen in •ihren sieben niedrigstwertigen Stellen. Das Bit 12 des DlSP-Jj'elds 413 wird nicht benötigt, weil ein ABC-Rahmen bei der bevorzugten Ausführungsform 701 nicht mehr als 16 Argumentzeiger 601 enthalten kann.the argument pointers 601 in the computer system 301 with negative address offsets with respect to FP are stored, which are divisible by 128 without Best. In two complement notation, which is used in the DISP field 413, Address offsets of argument pointers 701 have zeros in their seven least significant digits. Bit 12 of the DlSP-Jj'elds 413 is not required because it is an ABC frame in the preferred embodiment 701 no more than 16 can hold argument pointer 601.

Falls der durch das DISP-FeId 413 spezifizierte ABCE 503 gültig ist, gibt ABC 502 ein "Hit"-Signal an CTL 515 ab; wenn dies nicht der Fall ist, gibt ABC 502 ein Fehlsignal ab und CTL 515 erzeugt ein Signal, auf das die Steuerung dadurch anspricht, daß sie einen ABC-Fehl-Mikrocodesequenz-Code ausführt, der den Wert des DISP-Felds 413 verwendet, um den unmittelbaren Namen 409 zu rekonstruieren, der das Fehlsignal verursacht hat, verwendet jenen unmittelbaren Namen 409 zum Lokalisieren des durch den unmittelbaren Namen 409 repräsentierten Argumentζeigers 601, und lädt die aus dem Argumentzeiger 601 abgeleitete Adresse in den geeigneten ABCE 503 Im laufenden ABC-fiahmen 6Ο7. Veil Adressen in den laufenden ABC-Eahmen 6Ο7 bei der Ausführung eines Aufruf»Befehls geladen werden, treten solche Fehlsignale nur auf, wenn als Resultat eines Return-Befehls ein ungültiger ABC-Rahmen 603 zum laufenden ABC-Rahmen 607 · geworden ist, oder wenn irgendeine Operation des Prozessors 60-j das Ungültigmachen aller ABC-Rahmen 603 erforderlich gemacht hat.If the ABCE 503 specified by the DISP field 413 is valid, ABC 502 outputs a "hit" signal to CTL 515; if this is not the case, ABC 502 emits an error signal and CTL 515 generates a signal on which the controller responds responds by having an ABC miss microcode sequence code using the value of DISP field 413, to reconstruct the immediate name 409 that caused the miss signal use that immediate Name 409 to locate the argument owner 601 represented by immediate name 409, and loads the address derived from the argument pointer 601 in the appropriate ABCE 503 in the current ABC picture 6Ο7. Veil Addresses in the current ABC frame 6Ο7 are loaded when executing a call »command, such false signals occur only on if the result of a return command is an invalid ABC frame 603 for the current ABC frame 607 or if any operation of processor 60-j requires invalidation of all ABC frames 603 has made.

2.5.2 Logische Struktur des EMNC 519 - Figur 6A2.5.2 Logical structure of the EMNC 519 - Figure 6A

Der BMNG 519 enthält eine Mehrzahl von EMNCKs 519. Die logische Form des EMNCE 519 ist bei einer bevorzugten Ausführungsform der vorliegenden Erfindung :n Fig. 6A gezeigt. Jeder EMNCE 519 besteht aus vier EHNCE-Begistern 627, die hier als EMNCEE 627 (0...3) "bezeichnet sind. Zusätzlich ist ein Satz von Steuerfeldern 620 dem EMNCEE 627 (0) jedes EMNCE 519 zugeordnet. Ein gültiger EMNCE 519 entspricht einem einzelnen NTE 310 in der Namentabelle 309, die durch die Prozedur 311 gerade benutzt wird, die gerade von dem Prozessor 303 ausgeführt wird. Zu dem gültigen EMNCE 519 wird im EMNC 519 durch den Tabellennamen 4-03 zugegriffen, der den NTE 310 spezifiziert, dem der gültige EMNCE 519 entspricht. Eine Adresse kann aus den in einem gültigen EMNCE 519 enthaltenen Daten in zweierlei Weise erzeugt werden: Direkt aus den Daten im BMNCEE 627 (0) und mittels einer Mikrocode-Intervention aus in jeder EMNCEE 627 gespeicherten Daten.The BMNG 519 includes a plurality of EMNCKs 519. The logical form of the EMNCE 519 is at a preferred Embodiment of the present invention: shown in Figure 6A. Each EMNCE 519 consists of four EHNCE enthusiasts 627, referred to herein as EMNCEE 627 (0 ... 3) ". In addition, a set of control fields 620 is the EMNCEE 627 (0) assigned to each EMNCE 519. A valid one EMNCE 519 corresponds to a single NTE 310 in the name table 309 being used by procedure 311 which is currently being executed by processor 303. The EMNC 519 becomes the valid EMNCE 519 through the Accessed table name 4-03 specifying NTE 310, to which the valid EMNCE 519 corresponds. An address can be generated from the data contained in a valid EMNCE 519 in two ways: Directly from the data in the BMNCEE 627 (0) and by means of a microcode intervention from data stored in each EMNCEE 627.

2.5·2.1 Direkte Erzeugung von Adressen aus dem EMNCEE 627 (0)2.5 2.1 Direct generation of addresses from the EMNCEE 627 (0)

Wenn eine Adresse direkt aus dem BMNCEE 627 (°) erhalten wird, gehen unterschiedliche Felder von EMNCEE 627 (0) und Steuerfelder 620 zu unterschiedlichen Teilen des verbesserten Adreßcaches 501. Die Felder und ihre Bestimmungen oder ZieleIf an address is obtained directly from the BMNCEE 627 (°), different fields go from EMNCEE 627 (0) and Control fields 620 to different parts of the enhanced address cache 501. The fields and their destinations or destinations

sind die folgenden:are the following:

Ein. Adressenversatzfeld 629, das direkt an den Adressenversatz-Multiplexer 525 ausgegeben wird.A. Address offset field 629 which is output directly to address offset multiplexer 525.

Ein. Basisfeld 641, das an das CTL 515 ausgegeben wird. Das Basisfeld 641 enthält zwei Unterfelder:A. Base field 641 which is output to the CTL 515 will. The base field 641 contains two subfields:

a) Ein BS-FeId 635, das einen Wert.enthält, der den ABH, falls vorhanden, spezifiziert, der bei der Bildung der Adresse verwendet werden muß.a) A BS field 635 that contains a value that represents the ABH, if available, is specified that must be used when creating the address.

b) Ein (6) -Feld 637, ias angibt, daß die Basis ein Zeiger ist.b) A (6) field 637, ias indicates that the base is a Pointer is.

Ein ADISP-FeId 639, das die Bits 8 bis 11 des DISP-Felds enthält, das zu einem unmittelbaren Famen 409 gehört, der einen Argumentzeiger 601 im NTE 310 entsprechend dem BMTiTCE 519 repräsentiert. Das ADISP-FeId 639 wird an den ABC 502 ausgegeben, und falls das Basisfeld 641 es so angibt, wird die im ABCE 503 entsprechend dem ADISP-FeId 639 enthaltene Adresse als die Basisadresse verwendet.An ADISP field 639 containing bits 8 to 11 of the DISP field that leads to an immediate Famen 409 belongs to an argument pointer 601 represented in the NTE 310 corresponding to the BMTiTCE 519. The ADISP field 639 is output to the ABC 502, and if the base field 641 so specifies, the contained in the ABCE 503 according to the ADISP field 639 Address used as the base address.

Die Steuerfelder 620 steuern die Art, in der die verbesserten Adreßcaches 501 die Information im BMCE 519 unter Kontrolle des CTL 515 oder von durch die Steuerung ausgeführten Mikrobefehlen verarbeiten. Die UnterfelderThe control fields 620 control the manner in which the enhanced address caches 501 store the information in the BMCE 519 under the control of the CTL 515 or by the controller process executed microinstructions. The subfields

_„, 33345_ ", 33345

V/t« 1.V / t «1.

sind die folgenden:are the following:

Ein ABOF-FeId 621 zeigt an, ob der Name 401 entsprechend dem,EMNCE 519 aufgelöst wird unter Verwendung des ABC 502 und auch des EMNO 517. Das ABCF-FeId 621 wird an CTL 515 ausgegeben.An ABOF field 621 indicates whether the name 401 is appropriate dem, EMNCE 519 is resolved using of the ABC 502 and also of the EMNO 517. The ABCF field 621 is output to CTL 515.

- . JDaä V-FeId 622 zeigt an, ob EMNCE 519 gültig ist und wird an CTL 515 ausgegeben.-. JDaä V-Field 622 indicates whether EMNCE 519 is valid and is output to CTL 515.

Das ID.-Feld 62$ enthält Daten, aus denen die Steuerung 327 eine Mikrobefehlsequenz zum Verarbeiten des. Inhalts des EMCE 519, zu dem das ID-FeId 623 gehört, lokalisiert. Das ID-FeId 623 wird an die Steuerung 327 ausgegeben.The ID. Field $ 62 contains data from which the Controller 327 a sequence of microinstructions for processing des. Contents of the EMCE 519, for which the ID field 623 heard, localized. The ID field 623 is output to the controller 327.

Das BC-FeId 625 enthält eine Kopie des Basisfelds 64-< im EMEfCEE 627 (0) und wird an CTL 515 ausgegeben. CTL 515 spricht auf das BC-FeId 625 dadurch an, daß es Ziele für das Ausgangssignal des EMNCEE 627 (0) wählt, wie dies durch den Inhalt von EMNCEE 627 (0) verlangt wird.The BC field 625 contains a copy of the base field 64- < in EMEfCEE 627 (0) and is output to CTL 515. CTL 515 responds to BC field 625 in that it selects targets for the output of EMNCEE 627 (0) as indicated by the contents of EMNCEE 627 (0) is required.

Fig. 6A enthält einen beispielhaften EMNCEE 627 (0) und seine zugeordneten Steuerfelder 620. Der beispielhafte EMNCEE 627 (0) entspricht einem NTE 310, der eine Adresse· mit einem konstanten Adressenversatz bezüglich eines Argumentzeigers 601 spezifiziert. Das Adressenversatz-6A includes an exemplary EMNCEE 627 (0) and its associated control fields 620. The exemplary EMNCEE 627 (0) corresponds to an NTE 310 which has an address specified with a constant address offset with respect to an argument pointer 601. The address offset

ORiGINAL INSPECTEDORiGINAL INSPECTED

feld 629 enthält den Vert des konstanten Adressenversatzes, das BS-FeId 655 enthält den Code 00, der IT spezifiziert, das (S) -Feld 657 enthält den Wert 1, wodurch es eine indirekte Referenz anzeigt, und das ADISP-FeId 659 enthält einen negativen Wert, der den Adressenversatz des Argumentzeigers 601 gegenüber FP spezifiziert. In den Steuerfeldern 620 spezifiziert ABOF, daß ABC 502 die Basisadresse liefern wird, das V-FeId 622 , daß der Eintrag gültig ist, und das ID-FeId 625» daß keine Mikrocodeintervention "benötigt wird. Das BC-FeId 625 enthält eine Kopie des Basisfelds 641.field 629 contains the vert of the constant address offset, the BS field 655 contains the code 00, which specifies IT, the (S) field 657 contains the value 1, whereby it indicates an indirect reference, and the ADISP field 659 contains a negative value specifying the address offset of the argument pointer 601 from FP. In the control panels 620 specifies ABOF that ABC 502 will supply the base address, the V field 622 that the entry is valid, and the ID field 625 "that no microcode intervention" is required will. The BC field 625 contains a copy of the base field 641.

Wenn ein Tabellenname 4-05 entsprechend dem EMNCER 627, der den beispielhaften RMNCER 627 (0) enthält, der insgesamt mit dem Bezugszeichen 645 versehen ist, dem RMNC 517 eingegeben wird, geschieht folgendes: Das ABCF-FeId 621 und das BC-FeId 625 werden an CTL 515 ausgegeben, das ADISP-Feld 659 wird an ABC 502 ausgegeben, und das Adressenversatzfeld 629 wird an den Adressenversatz-Multiplexer 525 ausgegeben. Der ABC 502 gibt eine Adresse als Antwort auf das ADIilP-Feld 659 aus, CTL antwortet auf das BC-FeId 525 dadurch, daß es bewirkt, daß der Basis-Multiplexer 511 ABC 502 als seinen Eingang auswählt, und der Adressenaddiere? 515 addiert den Wert des Adressenversatzfeldes zu der «lurch ABC 502 ausgegebenen Basisadresse.If a table name is 4-05 according to the EMNCER 627, the the exemplary RMNCER 627 (0), which is provided overall with the reference numeral 645, is input to the RMNC 517 the following happens: The ABCF field 621 and the BC field 625 are output to CTL 515, the ADISP field 659 is output to ABC 502 and the address offset field 629 is passed to the address offset multiplexer 525 issued. The ABC 502 outputs an address in response to the ADIilP field 659, and CTL responds to the BC field 525 in that it causes the base multiplexer 511 Selects ABC 502 as its input, and the address add? 515 adds the value of the address offset field to the base address issued by ABC 502.

2.5·2.2 Erzeugung von Adressen aus dem HMNCE 519 mit Mikrocode-Intervention2.5 · 2.2 Generation of addresses from the HMNCE 519 with microcode intervention

Durch die Steuerung 327 als Antwort auf Codes im ID 623 ausgeführte Mikrobefehlsequenzen können den Inhalt von jedem EMNCER 627 in einem EMNCE 617 entsprechend dem Tabellennamen 403, der sich gerade auf dem Namenbus 328 befindet, auf zweierlei Weise verwenden: Dadurch, daß er den Geräten und Einrichtungen der verbesserten Adreßcaches 501 als Eingangssignal zugeführt wird, und dadurch, daß er direkt an den Deskriptorbus 333 ausgegeben wird. Im ersten Pail enthält EMNCER 627 das Adressenversatzfeld 629, das Basisfeld 64-1 und das ADISP-FeId 639. Der Code im Basisfeld 641 wird an CTL 515 ausgegeben und bestimmt, wie die Geräte und Einrichtungen der verbesserten Adceßcaches 501 den Inhalt von EMNCER 627 verarbeiten. Beispielsweise würde ein RMNCER 627» dessen Felder in der gleichen Weise gesetzt sind wie im "beispielhaften EMNCER 627 (0) 643, in der gleichen Weise verarbeitet werden. Im zweiten Fall wird RMNCER als ein einzelnes Feld behandelt, das direkt an den Deskriptorbus 333 ausgegeben wird.By controller 327 in response to codes in ID 623 executed microinstruction sequences can the contents of each EMNCER 627 in an EMNCE 617 according to the Table name 403, which is currently on name bus 328 can be used in two ways: By allowing the devices and facilities of the improved address caches 501 is supplied as an input signal, and in that it is output directly to the descriptor bus 333. In the first Pail, EMNCER 627 contains the address offset field 629, the Base field 64-1 and the ADISP field 639. The code in the base field 641 is output to CTL 515 and determines how the Devices and facilities of the improved address caches 501 process the content of EMNCER 627. For example, would an RMNCER 627 »whose fields are set in the same way as in the" exemplary EMNCER 627 (0) 643, in the same way Way to be processed. In the second case, RMNCER is treated as a single field that is sent directly to the descriptor 333 is issued.

3 Detaillierte Beschreibung eines bevorzugten Ausführungsbeispiels der verbesserten Adreßcaches 5C1 3 Detailed description of a preferred embodiment of the improved address caches 5C1

Im folgenden werden detaillierte Beschreibungen von bevorzugten Ausführungsbeispielen aller Komponenten der verbesserten Adreßcaches 501 gegeben.The following are detailed descriptions of preferred Embodiments of all components of the improved address cache 501 are given.

3.1 Beschreibung einer bevorzugten Ausführungsform von GTL 5153.1 Description of a preferred embodiment of GTL 515

Cl1L 515 besteht aus Standardlogikgliedern. Die Art, in der CTL 515 auf Eingangssignale aus dem Namenbus 328, dem RMIiC 517, und dem ABC 502 antwortet, wurde bereits beschrieben. Die Technik, Standardlogikglieder zur Erzielung der beschriebenen Funktionen zu kombinieren, ist dem Fachmann gut bekannt, und CTL 515 wird daher hier nicht weiter beschrieben.Cl 1 L 515 consists of standard logic elements. The manner in which the CTL 515 responds to inputs from the name bus 328, the RMIiC 517, and the ABC 502 has already been described. The technique of combining standard logic gates to achieve the functions described is well known to those skilled in the art and CTL 515 is therefore not described further here.

3.2 Beschreibung einer bevorzugten Ausführungsform des ABRC 5043.2 Description of a preferred embodiment of the ABRC 504

Bei einer bevorzugten Ausführungsform des ABR(J 504-konnen Ji1PR 505» SDPR 5Oy und Ji1BJr1R 509 jeweils aus vier T-M.state-D-Flipriops mit 8 Bits vomIn a preferred embodiment of the ABR (J 504-can Ji 1 PR 505 »SDPR 50y and Ji 1 BJr 1 R 509 each consist of four TM.state-D flip triops with 8 bits from

Typ 74-S374 bestehen. Die Eingangssignale für jedes der Register 505 bis 509 kommen vom Cacheladebus 527 und die Ausgangssignale gehen zum Basis-Multiplexer 511. Die Register 505 bis 509 sind immer zum Lesen aktiviert. Zum Schreiben werden sie unter Mikrocodesteuerung aktiviert. FPR 505 wird auf FP für einen neuen obersten Rahmen 321 durch Mikrocodesequenzen gesetzt, die als Antwort auf alle Aufruf- und Return-Befehle ausgeführt werden; wenn PBP oder SDP als Folge eines Aufruf-Befehls oder eines Return-Befehls sich ändert, setzen Mikrocodesequenzen, die als Antwort auf jene Aufruf- und Return-Befehle ausgeführt werden, SDPR 507 und PBPR 509 zurück. Bei anderen "Type 74-S374 exist. The input signals for each of the Registers 505 to 509 come from cache load bus 527 and the Output signals go to the base multiplexer 511. The registers 505 to 509 are always activated for reading. To the Writing is activated under microcode control. FPR 505 goes to FP for a new top frame 321 set by microcode sequences executed in response to all call and return commands; if PBP or SDP as a result of a call command or a Return command changes, set microcode sequences, which executed in response to those call and return commands will return, SDPR 507 and PBPR 509. With others "

Ausführungsformen mag ABRC 504 mittels eines die Register 505 bis 509 enthaltenden Ram und einer einzigen Verbindung zwischen dem Basis-Multiplexer 511 und dem ABRC 505 implementiert werden. Die Verwendung von separaten Flipflops für die Register 505 bis 509 und von separaten Verbindungen zwischen den Flipflops und dem Basis-Multiplexer 511 macht es möglich, alle Register 505 bis 509 ständig für das Lesen zu aktivieren und dadurch eine Verzögerung zu beseitigen, die durch die Notwendigkeit der Adressierung eines einzelnen Registers des RAM verursacht wird. \ Embodiments may implement ABRC 504 using a ram including registers 505 through 509 and a single connection between base multiplexer 511 and ABRC 505. The use of separate flip-flops for the registers 505 to 509 and of separate connections between the flip-flops and the base multiplexer 511 makes it possible to activate all registers 505 to 509 continuously for reading and thereby eliminate a delay caused by the need the addressing of a single register of the RAM. \

3.3 Detaillierte Beschreibung des Basis-Multiplexers 511 und des: Adressenversatz-Multiplexers 5253.3 Detailed description of the base multiplexer 511 and the: address offset multiplexer 525

Eine bevorzugte Ausführungsform des Basis-Multiplexers mag aus 16 Doppel-4:1-Leitungsmultiplexern des Typs 74S153 bestehen. Jeder Multiplexer empfängt Zweibit-Eingangssignale vom ABC 502, FPR 505, SDPR 507 und PBPR 509 und liefert ein Zweibit-Ausgangssignal an den Adreßaddierer 513.A preferred embodiment of the basic multiplexer may consist of 16 double 4: 1 line multiplexers of the type 74S153 exist. Each multiplexer receives and delivers two-bit inputs from the ABC 502, FPR 505, SDPR 507 and PBPR 509 a two bit output to address adder 513.

Eine bevorzugte Ausführungsform des Adressenversatz-Multiplexers 525 mag aus acht Vierfach- 2 : 1-Leitungs-Multiplexern (quad 2-to-1) vom Typ 74S258 bestehen. Jeder Multiplexer empfängt 4 Bits des Eingangssignals aus den RMNCERs 627 und 4 Bits des Eingangssignals, das aus Bits aus dem Namenbus 328 besteht, und Bits, die immer auf 0 gesetzt sind. Jeder Multiplexer gibt 4 Bits des jeweils ausgewählten Eingangssignals aus, oder wenn kein Eingangssignal ausgewählt wurde, gibt er 0 aus.A preferred embodiment of the address offset multiplexer 525 may consist of eight quadruple 2: 1 line multiplexers (quad 2-to-1) of type 74S258 exist. Each multiplexer receives 4 bits of the input signal from the RMNCERs 627 and 4 bits of the input signal, which consists of bits from name bus 328 and bits that are always set to 0. Every multiplexer there 4 bits of the selected input signal off, or if no input signal is selected, it outputs 0.

i i

• *• *

■ fr■ fr

• «• «

Bei der vorliegenden Ausführungsform empfängt der Adressenversatz-Multiplexer 525 ein Eingangssignal vom Namenbus nur dann, wenn ein unmittelbarer Name 409 auf dem Namenbus 328 ist· In diesem Fall ist das Eingangssignal das DISP-FeId 413, und der Adressenversatz-Multiplexer 525 erzeugt einen 32-Bit-Adressenversatz durch tatsächliche Verschiebung des DISP-Felds 413 um 5 Bits nach links und Zeichenergänzung um 15 Bits nach links. Die Verschiebeoperation ist eine Folge der Art, in der die Eingangssignale aus dem Namenbus 328 zum Adressenversatz-Multiplexer geliefert werden. Die 16 höchstwertigen Bits, die von dem Adressenversatz-Multiplexer 525 aus dem Namenbus 328 empfangen werden, stammen vom Bit 4 des Namenbusses 328, der das höchstwertige Bit des DISP-Felds 413 transportiert. Die nächsten 11 höchstwertigen Bits stammen von den Bits 5 bis 15 des Namenbusses 328, die den Rest des DISP-Felds 413 transportieren. Die übrigen 5 Bits werden von geerdeten Eingängen empfangen und haben daher immer den Wert 0.In the present embodiment, the address offset multiplexer receives 525 an input signal from the name bus only if an immediate name 409 is on the name bus 328 is · In this case the input signal is that DISP field 413, and the address offset multiplexer 525 creates a 32-bit address offset by actually shifting DISP field 413 5 bits to the left and Character completion by 15 bits to the left. The shift operation is a consequence of the way in which the input signals from name bus 328 to the address offset multiplexer. The 16 most significant bits used by the Address offset multiplexers 525 received from name bus 328 come from bit 4 of name bus 328, which is the most significant bit of DISP field 413 transported. the The next 11 most significant bits come from bits 5 to 15 of name bus 328, the remainder of DISP field 413 transport. The remaining 5 bits are received from grounded inputs and therefore always have the value 0.

3.4 Detaillierte Diskussion einer bevorzugten Ausführungsform des Adreßaddierers 5133.4 Detailed discussion of a preferred embodiment of the address adder 513

Der Adreßaddierer 513 ist ein 32-Bit-Addierer mit carry look ahead. Der Addierer mag aus acht 4-Bit-ALUs vom Typ 74S181 und aus drei look ahead carry-Generatoren vom Typ 74S182 bestehen. Bei der vorliegenden AusführungsformThe address adder 513 is a 32-bit adder with carry look ahead. The adder mag consists of eight 4-bit ALUs of the 74S181 type and three look ahead carry generators from Type 74S182 exist. In the present embodiment

ό 3 3 4 b 7 9 ό 3 3 4 b 7 9

ist der Addierer immer aktiviert, um eine von zwei Funktionen auszuführen: Den aus dem Adressenversatz-Multiplexer empfangenen Wert unverändert auf den Deskripcorbus 330 durchzulassen, oder um den aus dem Adressenversatz-ttultiplexer 525 empfangenen Wert zu dem aus dem Basis-Multiplexer 5*11 empfangenen Wert zu addieren. Da ler Adressenversatz-Multiplexer 525 den Vert O erzeugt, wenn keines der Eingangssignale ausgewählt ist, kann der Addierer 513 tatsächlich den entweder aus dem Basis-Multiplexer 511 oder dem Adressenversatz-Multiplexer 525 empfangenen Wert ungeändert zum Deskriptorbus 533 durchlassen.the adder is always activated to one of two functions to run: The one from the address offset multiplexer received value unchanged on Deskripcorbus 330 or to pass the value received from the address offset multiplexer 525 to that from the base multiplexer Add 5 * 11 received value. Because the address offset multiplexer 525 generates the vert O if none of the Input signals is selected, the adder 513 can actually the value received from either the base multiplexer 511 or the address offset multiplexer 525 unchanged let through to descriptor bus 533.

3.5 Detaillierte Diskussion einer "bevorzugten Ausführungsform des ABG 502 - Fig. 7 und 7A3.5 Detailed Discussion of a "Preferred Embodiment of ABG 502 - Figs. 7 and 7A

Eine bevorzugte Ausführungsform des ABC 502 wird in Fig. 7 und 7A gegeben. Fig. 7 enthält eine bevorzugte Äusführungsform 701 der Adressierlogik 533 j und Fig. 7^ enthält eine bevorzugte Ausführungsform 772 des ABC-Regii»ters 5Ο4-. Unter Bezugnahme auf diese Figuren wird zunächst <dn Überblick über die Komponenten und die Operation der "bevorzugten Ausführungsform von ABC 502 gegeben, gefolgt von einer detail-: lierten Diskussion seiner Komponenten und Arbeitsweisen.A preferred embodiment of the ABC 502 is given in Figures 7 and 7A. Fig. 7 contains a preferred embodiment 701 of the addressing logic 533j and Fig. 7 ^ contains one preferred embodiment 772 of the ABC register 5Ο4-. Under Referring to these figures, an overview of the components and operation of the "preferred embodiment" is first provided given by ABC 502 followed by a detailed: lated discussion of its components and working methods.

3.5.1 Eingangssignale für die bevorzugte A isführungsform 7C der Adressierlogik 5333.5.1 Input signals for the preferred embodiment 7C the addressing logic 533

Das Verhalten der bevorzugten Ausführungsform von ABC 502 ·. wird durch Eingangssignale von zwei Quellen gesteuert: von The behavior of the preferred embodiment of ABC 502 ·. is controlled by input signals from two sources: from

Mikrobefehlen und dem Namenbus 328. Vie man in Pig. 7 sehen kann, werden bei der bevorzugten Ausführungsform für die Adressierlogik Mikrokommandos, die das ABC 502 beeinflussen, durch die^RMREG-Leitung 724 und durch zwei Decoder empfangen: MDA 702 und MDB 703. Der MDA 702 und MDB 703 haben drei Bits des Mikrokommandos als Eingangssignal und Leitungen 705 "bis 717 als Ausgänge. Hur eine der Leitungen 705 bis 715 ist zu jedem gegebenen Zeitpunkt inaktiv; die übrigen Leitungen 705 bis 715 sind aktiv. Welche der Leitungen 705 "bis 715 inaktiv-ist, wird durch die drei Bits des Mikrokommando-Eingangssignals für den MDA 702 und MDB 7O3 bestimmt. Bei der bevorzugten Adressierungsausführungsform 7OI sind die MDA 702 und MDB 703 8.1 Decoder.Microinstructions and the name bus 328. Vie man in Pig. 7 can be seen in the preferred embodiment for the addressing logic micro-commands that the ABC 502 affect, through the ^ RMREG line 724 and through two Receiving decoder: MDA 702 and MDB 703. The MDA 702 and MDB 703 have three bits of the micro command as input signal and lines 705 "to 717 as outputs. Hur one lines 705-715 is at any given time inactive; the remaining lines 705 to 715 are active. Which of the lines 705 ″ to 715 is inactive is indicated by the three bits of the microcommand input signal for the MDA 702 and MDB 7O3. In the preferred addressing embodiment 7OI are the MDA 702 and MDB 703 8.1 decoder.

Steuereingangssignale aus dem Namenbus 328 werden aus dem NTY-Feld 405 cLer Namen 401 abgeleitet. Wie oben beschrieben wurde, zeigen die Codes im NTY-FeId 405 an, ob ein Name ein Tabollenname 403 oder ein unmittelbarer Name 409 ist, und fall-s er ein unmittelbarer Name 409 ist, ob seine Ba- · sis FP, SDP oder PBP ist.-Control inputs from name bus 328 are obtained from the NTY field 405 derived from name 401. As described above the codes in the NTY field 405 indicate whether a name a tab name is 403 or an immediate name is 409, and if it is an immediate name 409, whether its ba- sis is FP, SDP or PBP.

3.5.2 ·,i.dreßerzeugungskomponenten3.5.2, i stress-generating components

Fortfahrend mit Fig. 7, umfassen die zu der Adressierlogik 533 gehörenden Komponenten einen Nächster-Rahmen-Zähler (NFG) 7 53,'einen Laufender-Rahmen-Zähler (CFC) 749, einContinuing with Figure 7, those to include addressing logic 533 components belonging to a next-frame counter (NFG) 7 53 'a current frame counter (CFC) 749

Zustandsregister A (SA) 74-3 und B (SB) 735, einen Flush.-Zähler (FLC) 729, einen I-Name-Multiplexer 718, Mikrobefehldecoder A (HDA) 702 und B (MDB) 703, einen FA-MuItiplexer 781, einen Flush-Puffer (FB) 730, eine ABC-Steuerung oder -Falle 770 und zugeordnete Logik.Status registers A (SA) 74-3 and B (SB) 735, a flush counter (FLC) 729, an I-Name multiplexer 718, microinstruction decoder A (HDA) 702 and B (MDB) 703, an FA multiplexer 781, a flush buffer (FB) 730, an ABC control or -trap 770 and associated logic.

Wie oben beschrieben, ist der ABC-Cache 50? in 16 ABC-Rahmen 6O3 unterteilt, von denen jeder 16 ABCEs 503 enthält. Eine Adresse für einen gegebenen ABCiI 503 spezifiziert sowohl einen Eahmen als auch ein Register innerhalb eines Rahmens. Bei der bevorzugten Ausführungsform von ABC 502 sind die Adressen für die ABCEs 505 8-Bit-Werte; von diesen 8 Bits sind die vier niedrigstwertigen die Registeradresse, und die vier höchstwertigen sind die Rahmenadresse· Die Adressen werden durch Adressenleitungen ADDR (O...7)774- (Fig. 7A) transportiert. Die Rahmenadresse FRA 765 wird durch die Leitungen 0....3 von ADDR (0...7) transportiert, und die Registeradresse RA 767 wird durch die Leitungen 4·...7 von ADDR (O...7) transportiert.As described above, is the ABC cache 50? in 16 ABC frames 6O3, each of which contains 16 ABCEs 503. An address for a given ABCiI 503 is specified both a frame and a register within a frame. In the preferred embodiment of ABC 502 are the addresses for the ABCEs 505 8-bit values; Of these 8 bits, the least significant four are the register address and the most significant four are the Frame address · The addresses are carried by address lines ADDR (O ... 7) 774- (Fig. 7A). The frame address FRA 765 is carried on lines 0 ... 3 of ADDR (0 ... 7), and the register address RA 767 is passed through the lines 4 · ... 7 of ADDR (O ... 7) transported.

FRA 765 und RA 767 sind mit Dateneingängen DI der ABC-Falle 770 verbunden. Die ABC-Falle 770 mag mit zwei 74-3194— Schieberegistern implementiert sein. Die ABC-Falle 770 ist immer dann zum Schreiben aktiviert, wenn ABC 502 dabei ist, einen unmittelbaren Namen 4-09 aufzulösen, und folglich wird der laufende Wert von ADDR (0..7) in die ABC-Falle 770 bei jeder Auflösungsoperation verriegelt. Die ABC-Falle 770FRA 765 and RA 767 are the ABC trap with data inputs DI 770 connected. The ABC trap 770 may have two 74-3194- Shift registers be implemented. The ABC trap 770 is enabled for writing whenever ABC 502 is about to resolve an immediate name 4-09, and hence becomes the current value of ADDR (0..7) latched into ABC trap 770 on each resolve operation. The ABC Trap 770

mag zu anderen Zeiten durch eine RABC-Leitung 717 zum Schreiben aktiviert sein. Die ABC-Falle 77O ist immer zum Lesen aktiviert und gibt ADDR (4...7) an dem Deskriptor-Prozessor 329 aus. Bei einem Fehls gnal im ABG 502 verwen- ■ det die ABC-Fehl-Mikrobefehl-Sequenz den Inhalt der ABC7FaIIe 770 zur Bildung des unmittelbaren Namens 409, der das Fehlsignal oder den Fehler veranlaßt hat.may be activated for writing at other times by a RABC line 717. The ABC trap 77O is always activated for reading and outputs ADDR (4 ... 7) to the descriptor processor 329. In the event of a missing signal in ABG 502, the ABC-Missing microcommand sequence uses the contents of ABC 7 case 770 to form the immediate name 409 that caused the missing signal or the error.

3.5.2.1 Quellen von RA 7673.5.2.1 Sources of RA 767

Es gibt zwei Quellen von RA 767: Wenn ein ganzer ABC-Rahmen 6O3 gerade ungültig gemacht wird, ist die Quelle von RA 767 der FLC 729; für alle anderen Operationen ist die Quelle von RA 767 der I-Name-Multiplexer 7I8.There are two sources of RA 767: If a whole ABC frame 6O3 is in the process of being invalidated, the source of RA 767 is the FLC 729; for all other operations is the Source of RA 767 the I-Name-Multiplexer 7I8.

Bei der bevorzugten Ausführungsform 7OI der Adressierlogik 533 ist der I-Name-Multiplexer 7I8 ein Vierfach-2.1-Leitungs-Multiplexer, wie zum Beispiel der 74-S258. Der I-Name-Multiplexer 7I8 wird aktiviert, wenn sein E-Eingang inaktiv ist. Wie unten genau beschrieben wird, ist der Ε-Eingang inaktiv, ausgenommen wenn ein ABC-Rahmen 603 gerade ungültig gemacht wird, oder der ganze ABC 501 und RMNC 517 gerade ungültig gemacht werden. Wenn der I-Name-Multiplexer 7Ί8 aktiviert ist, wählt er Eingangssignale aus dem Namenbus 328 oder dem ADISP 639 entsprechend dem Zustand des S-Eingangs. Wenn der S-Eingang aktiv ist, wählt der I-Name-Multiplexer 7^8 Eingangssignale vom ADISP 639; wenn er inaktiv ist, wählt der I-Name-Multiplexer 7I8 Eingangssignale aus dem Namebus 328. Ob derIn the preferred embodiment 70I the addressing logic 533 the I-Name-Multiplexer 7I8 is a quadruple 2.1-line multiplexer, such as the 74-S258. The I-name multiplexer 7I8 is activated when its I input is inactive. As will be described in detail below, the Ε input is inactive, except when an ABC frame 603 is just being invalidated, or the entire ABC 501 and RMNC 517 is about to be invalidated. When the I name multiplexer 7Ί8 is activated, it selects input signals from the name bus 328 or the ADISP 639 according to the status of the S input. If the S input is active, the I-Name multiplexer selects 7 ^ 8 input signals from the ADISP 639; if it is inactive, the I-name multiplexer 7I8 selects input signals from the name bus 328. Whether the

— Copy- Copy

S-Eingang aktiv ist, wird durch das Ausgangssignal des ODER-Glieds 726 bestimmt. Das ODER-Glied 726 empfängt Eingangssignale von der RRMRßG-Leitung, 722I- und einem UND-Glied 725, und folglich ist der S-Eingang aktiv, wenn die RRMREG-Ieitung 724- aktiv ist, oder wenn beide Eingangssignale des UND-Glieds 725 aktiv sind. Die RRMREG-Leitung 724 wird als Antwort auf Mikrobefehle aktiviert; die Eingangssignale des UND-Glieds 725 sind die Bits 0 und 1 des Namebus 328, die das NTY-FeId 405 der Namen 401 transportieren. Wenn das NTY-FeId 405 den Wert 11 hat, das heißt, wenn der Name 401 ein Tabellenname 403 ist, wählt der I-Name-Multiplexer 718 sein Eingangssignal aus dem ADISP 639 > im anderen Fall wählt er das Eingangssignal aus dem Namebus 328.S input is active is determined by the output of OR gate 726. The OR gate 726 receives input signals from the RRMRßG line, 72 2 I- and an AND gate 725, and consequently the S input is active when the RRMREG line 724- is active, or when both inputs of the AND- Link 725 are active. The RRMREG line 724 is asserted in response to microinstructions; the input signals of the AND element 725 are bits 0 and 1 of the name bus 328, which transport the NTY field 405 of the names 401. If the NTY field 405 has the value 11, that is, if the name 401 is a table name 403, the I name multiplexer 718 selects its input signal from the ADISP 639> in the other case it selects the input signal from the name bus 328.

Die Eingangssignale aus dem Namebus 328 können entweder die Bits 8 bis 11 desDISP-Felds 413 aus einem unmittelbaren Namen 409 sein, der aus einem Befehl empfangen wurde, oder sie können durch den Mikrocode gelieferte Werte sein. Das ADISP-FeId 639 wird aus einem der RMNCERs 627 (0...3) im RMNCE 519 eingegeben, der durch den zur Zeit auf dem Namebus 328 befindlichen Wert spezifiziert wird. Die Werte im ADISP-FeId 639 bestehen aus den Bits 8 bis 11 des DISP-Felds 413 der unmittelbaren Namen 409, die in den NTEs 309 enthalten sind.The inputs from Namebus 328 can either be bits 8-11 of DISP field 413 from an immediate 409 names received from a command, or they can be supplied by the microcode Be values. The ADISP field 639 is entered from one of the RMNCERs 627 (0 ... 3) in the RMNCE 519, which is activated by the value currently on Namebus 328 is specified. The values in ADISP field 639 consist of bits 8 through 11 of DISP field 413 of the immediate Names 409 contained in NDEs 309.

Die zweite Quelle von RA 727 ist der FLC 729. Der FLC kann ein 4-Bit-Zähler des Typs 743163 sein. Der FLC 729 inkrementiert den Wert, den er enthält, wenn seine Eingänge P und T aktiv sind und er einen Taktimpuls an seinemThe second source of RA 727 is the FLC 729. The FLC can be a 4-bit counter of the type 743163. The FLC 729 increments the value it contains when its inputs P and T are active and it has a clock pulse on its

CLK-Eingang empfängt. Der laufende Wert des FLC 729 wird auf den Leitungen 0...3 ausgegeben. Wenn der L-Eingang des PLG 729 inaktiv ist, wird der FLC 729 auf den Wert an seinen Dateneingängen zurückgesetzt. Bei seiner Verwendung in dem bevorzugten Adressierungs-Ausführungsbeispiel 701 sind die Eingänge des FLC 729 ständig auf 0 gesetzt. Der FLC 729 gibt seinen laufenden Wert an FB 730 aus, der ein Tristate-Leitungs-Treiber-Empfanger des Typs 74-S244- sein kann. Der FB 730 wird aktiviert, wenn sein Ε-Eingang inaktiv ist. Wie genauer bei der Beschreibung der Flush-Operation erklärt werden wird, wird dann, wenn ein ABC-Rahmen 6O3 gerade ungültig gemacht wird, der I-Name-Multiplexer 7^8 inaktiviert oder ausgeschaltet und der FB 730 wird aktiviert. Der J1LC 7^9 zählt, und der FB 73O treibt die durch den FLC 729 erzeugten Werte zum EA 727. Wenn der FLC 729 nicht gerade zählt, gibt er den binären Wert 8 aus, das heißt, die Datenausgangsleitung 3 ist aktiv und die anderen Datenausgangsleitungen sind inaktiv. Die Operation des FLC 729 wird durch das SA-Register 7^3 und das SB-Register 735 gesteuert; beide Register enthalten den Wert 0, ausgenommen während einer Flush-Operation. CLK input receives. The current value of the FLC 729 is output on lines 0 ... 3. If the L input of the PLG 729 is inactive, the FLC 729 is reset to the value at its data inputs. When used in the preferred addressing embodiment 701, the inputs of the FLC 729 are always set to zero. The FLC 729 outputs its current value to FB 730, which can be a tri-state line driver receiver of the type 74-S244-. FB 730 is activated when its Ε input is inactive. As will be explained in more detail in the description of the flush operation, if an ABC frame 6O3 is currently being invalidated, the I-name multiplexer 7 ^ 8 is deactivated or switched off and the FB 730 is activated. The J 1 LC 7 ^ 9 counts, and the FB 73O drives the values generated by the FLC 729 to the EA 727. If the FLC 729 is not counting, it outputs the binary value 8, that is, the data output line 3 is active and the other data output lines are inactive. The operation of the FLC 729 is controlled by the SA register 7 ^ 3 and the SB register 735; both registers contain the value 0, except during a flush operation.

3.5.2.2 Quellen für FRA 7653.5.2.2 Sources for FRA 765

Wie oben beschrieben, sind die ABCEs 503 in nur zwei ABC-Raumen 603 zu -jedem gegebenen Zeitpunkt adressierbar. Die zwei adressierbaren ABC-Rahmen 603 sind der laufendeAs described above, the ABCEs 503 are in only two ABC spaces 603 addressable at any given time. The two addressable ABC frames 603 are the current one

OHO I ΌOHO I Ό

ABC-Rahmen 607 entsprechend dem obersten Rahmen 321 im Stapel 317 und der nächste ABC-Rahmen 6Oy oberhalb des laufenden ABG-Rahmens 6O7. Bei der bevorzugten Ausführungsi'orm 701 werden die Adressen des laufenden ABC-Rahmens 6O7 und des nächsten ABG-Rahmens 609 zum FRA 76r? durch NFG 753, GPO 749 und den FA-Multiplexer 761 geliefert. NFG 753 lie-'fert die Adresse des nächsten ABC-Rahmens 6U9, GFG 749 liefert die Adresse des laufenden ABC-Rahmens 6O7, und der FA-MuItiplexer 761 wählt eine der Adressen, die durch CFC 7^-9 und ITFG 753 geliefert werden, zur Ausgabe zum FRA 765. ·ABC frame 607 corresponding to the top frame 321 in the stack 317 and the next ABC frame 6Oy above the current ABG frame 6O7. In the preferred embodiment 701, the addresses of the current ABC frame 6O7 and the next ABG frame 609 are transferred to FRA 76 ? provided by NFG 753, GPO 749 and the FA multiplexer 761. NFG 753 supplies the address of the next ABC frame 6U9, GFG 749 supplies the address of the current ABC frame 6O7, and the FA multiplexer 761 selects one of the addresses which are supplied by CFC 7 ^ -9 and ITFG 753 , for output to the FRA 765. ·

Sowohl Nü'C 753 als auch CFC 74-9 können zyklische 4-Bit-Auf-Ab-Zähler vom Typ 74-S169 sein. Wenn ihre Eingänge P und T inaktiv sind, zählen ITFC 753 und CFC 74-9 aufwärts oder abwärts als Reaktion auf einen Impuls an ihrem CLK-Eingang. Die Richtung des Zählens wird durch den U/D (up/ down, Auf-Ab)-Eingang bestimmt; Wenn er aktiv ist, zählt der Zähler aufwärts. Wenn der Zähler von 15 auf 0 oder von 0 auf 15 übergeht, erzeugt der OY-Ausgang einen Impuls, indem er für einen kurzen Zeitraum inaktiv wird. Wenn der L-Eingang aktiv ist, werden die Zähler auf die Werte an ihren Eingangsleitungen zurückgesetzt. Bei der vorliegenden Ausführungsform sind die Eingangsleitungen des CFC 7^-9 ständig so geschaltet, daß sie den Wert 0 eingeben, und die Eingangsleitungen des NFG 753 sind ständig so geschaltet, daß sie den Wert 1 eingeben. Wie genauer bei der Diskussion der Flush-Operation beschrieben wird, wird der L-Eingang nur dann aktiv, wenn alle ABC-Rahmen 6O7 ungültig gemacht sind.Both Nü'C 753 and CFC 74-9 can be cyclic 4-bit up-down counters of the type 74-S169. When their P and T inputs are inactive, ITFC 753 and CFC 74-9 count up or down in response to a pulse on their CLK input. The direction of counting is determined by the U / D (up / down, up-down) input; When it is active, the counter counts up. When the counter goes from 15 to 0 or from 0 to 15, the OY output generates a pulse by going inactive for a short period of time. When the L input is active, the counters are reset to the values on their input lines. In the present embodiment, the input lines of the CFC 7 ^ -9 are constantly switched to enter the value 0, and the input lines of the NFG 753 are constantly switched to enter the value 1. As will be described in more detail in the discussion of the flush operation, the L input only becomes active when all ABC frames 6O7 are invalidated.

ORIGINAL INSPECTEDORIGINAL INSPECTED

Jedesmal, wenn der Prozessor 303 einen Aufrufbefehl, ausführt, inkrementiert einer der als Antwort auf den Aufruf-Befehl ausgeführten Mikrobefehle den GPC 74-9 und NPG 753 um 1, und Jedesmal, wenn der Prozessor 303 einen Return-Befehl ausführt, dekrementiert einer der als Antwort auf den Return-Befehl ausgeführten Mikrobefehle den CPC 74-9 und NPC 753 um 1. Somit wird der CPC 74-9 jedesmal inkrementiert, wenn ein neuer Rahmen 319 zum Stapel .317 hinzugefügt wird, und r wird jedesmal dann dekrementiert, wenn ein Rahmen 319 vom Stapel 317 entfernt wird, und folglich entspricht der laufende ABC-Rahmen 607 immer dem obersten Rahmen 321. Weiterhin ist deswegen, weil der NPC 753 immer zur selben Zeit wie CPC 7^9 inkrementiert oder dekrementiert wird, der nächst ABC-Rahmen 605 immer der ABC-Rahmen 603 oberhalb des laufenden ABC-Rahmens 607«Whenever processor 303 executes a call instruction, one of the microinstructions executed in response to the call command increments the GPC 74-9 and NPG 753 by 1, and every time processor 303 sends a Executes the return command, one of the microinstructions executed in response to the return command decrements the CPC 74-9 and NPC 753 at 1. So the CPC 74-9 will every time incremented when a new frame 319 is added to the stack .317 is added and r is decremented each time a frame 319 is removed from stack 317, and hence the current ABC frame 607 always corresponds to the top frame 321. Furthermore, because the NPC 753 always incremented or decremented at the same time as CPC 7 ^ 9 the next ABC frame 605 is always the ABC frame 603 above the current ABC frame 607 «

Welcher der Zähler CPC 74-9 und NPC 753 eine Rahmenadresse zum PRA 765 liefert, wird durch den PA-MuItiplexer 761 bestimmt, Der PA-Multiplexer 761 ist ein Vierfach^: 1-Leitungs-Multiplexer, beispielswexse einer vom Typ 74-S158. Wenn der S-Eingang des PA-MuItiplexers 761 aktiv ist, wählt der PA-Multiplexer 761 den NPC 753; anderenfalls wählt er den CPC 74-9 aus. Der S-Eingang ist aktiv, wenn ein Eingang des ODER-Glieds 7^3 hoch ist. Da diese Eingangssignale komplementiert werden, ist der S-Eingang immer aktiv, wenn CPL 74-7 oder LNEXT 715 inaktiv ist. Wie genauer bei der Diskussion der Operation der bevorzugtenWhich of the counters CPC 74-9 and NPC 753 has a frame address to the PRA 765, the PA multiplexer 761 determined, the PA multiplexer 761 is a quad ^: 1 line multiplexer, for example one of the type 74-S158. If the S input of the PA multiplexer 761 is active, selects the PA multiplexer 761 the NPC 753; otherwise he chooses the CPC 74-9. The S input is active when there is an input of the OR gate is 7 ^ 3 high. Since these input signals are complemented, the S input is always active when CPL 74-7 or LNEXT 715 is inactive. As more precisely when discussing the operation of the preferred

Ausführungsform 7OI erläutert wird, ist CFL 7^-7 inaktiv, wenn der nächste ABG-Sahmen 605 gerade ungültig gemacht wird. UJEXT 715 ist inaktiv, wenn ein Mikrobefehl, der einen ABGE 503 im nächsten ABC-Rahmen 605 lädt, gerade ausgeführt wird.Embodiment 7OI is explained, CFL 7 ^ -7 is inactive, when the next ABG frame 605 is in the process of being invalidated will. UJEXT 715 is inactive when a microinstruction that loads an ABGE 503 in the next ABC frame 605, just now is performed.

■3.5.3 Daten-RAMs 773■ 3.5.3 Data RAMs 773

Die Daten-RAMs 773 bestehen aus zwölf 256 χ 4- IiAfIs, die alle ADDR 777 (0...7) als ihre.Adresseneingänge und LABC 771 als ihr Schreibaktivier-Eingangssignal haben. Alle Daten-RAMs 773 sind ständig für Leseoperationen aktiviert, und sie sind für Schreiboperationen aktiviert, wenn der VE-Eingang inaktiv ist, das heißt, wenn LABG 77I inaktiv ist. Die Daten-RAMs 773 können vom Typ 934-22 DC des Herstellers Fairchild Camera and Instrument Corporation sein.The data RAMs 773 consist of twelve 256 χ 4- IiAfIs, all of them ADDR 777 (0 ... 7) as their address inputs and LABC 771 as its write enable input to have. All of the data RAMs 773 are always enabled for reads and they are for write operations activated when the CE input is inactive, i.e. when LABG 77I is inactive. The data RAMs 773 can of the type 934-22 DC from the manufacturer Fairchild Camera and Instrument Corporation.

Da alle Daten-BAMs 773 mit ADDR 777 (0...7) verbunden sind, adressiert ein vorgegebener Wert auf den Adreßleitungen ADDR (0...7) ein logisches Register mit 4-8 Bit, das aus einem einzigen Register in jedem der RAMs in den Daten-RAMs 773 gebildet wird. Dieses logische Register enthält das Adressenfeld 6Ο9 des ABOE 503, und falls ABCE 503 gültig ist, enthält das logische Register eine durch einen Argumentzeiger 601 spezifizierte Adresse. Datenausgänge (DO) 79Ogeben Daten zum · Basis-Multiplexer 511 aus, und wenn LABC 77I inaktiv ist empfangen Dateneingänge (DI) 776 Daten aus dem Cacheladebus 527· Wie unten genauer beschrieben wird, wird LABC 771 durch Ladeoperationen am. ABC 502 spezifizierende inaktiv gemacht.Since all data BAMs 773 are connected to ADDR 777 (0 ... 7) a specified value on the address lines ADDR (0 ... 7) also addresses a logic register 4-8 bits formed from a single register in each of the RAMs in the data RAMs 773. This logical Register contains address field 6Ο9 of ABOE 503, and if ABCE 503 is valid, the logical register contains one specified by argument pointer 601 Address. Data outputs (DO) 79O Output data to the base multiplexer 511 and when LABC 77I is inactive Receive data inputs (DI) 776 data from the cache load bus 527 · As detailed below, LABC 771 by load operations on. ABC 502 specifying made inactive.

INSPECTEDINSPECTED

3.5«4- Komponenten zum Speichern der Gültigkeitsinformation3.5 «4- components for storing the validity information

Wie oben beschrieben, enthält jeder ABGE 503 ein Gültigkeitsfeld 611, das angibt, ob der Inhalt des Adreßfeldes 609 gültig ist. Bei der bevorzugten Ausführungsform 501 wird das Gültigkeitsfeld 611 in zwei Gültigkeits-RAMs gespeichert, nämlich VRE 797 und VRO 795. VRE 797 und VRO 795 sind jeweils 128 χ 1 RAMs, beispielsweise vom Typ 94-325A. Sowohl im VRE 797 wie im VRO 795 empfangt der DI-Eingang ein einziges Bit der Daten und der DO-Ausgang gibt ein " einziges Datenbit aus. Damit die Daten aus dem VRE.797 oder VRO 795 gelesen oder in diese eingeschrieben werden, muß der CF-Eingang inaktiv sein, und damit die Daten in den VRE 797 oder VRO 795 eingeschrieben werden,muß der WE-Eingang inaktiv sein.As described above, each ABGE 503 contains a validity field 611, which indicates whether the content of the address field 609 is valid. In the preferred embodiment 501 the validity field 611 is stored in two validity RAMs, namely VRE 797 and VRO 795. VRE 797 and VRO 795 are each 128 χ 1 RAMs, for example of the type 94-325A. The DI input receives in both the VRE 797 and the VRO 795 a single bit of the data and the DO output enters " single data bit off. So that the data can be read from or written to the VRE.797 or VRO 795, the CF input must be inactive, and so that the data can be written to the VRE 797 or VRO 795, the WE input must be inactive.

Jedes Register im VRE 797 und VRO 795 entspricht einem einzigen logischen Register in den Daten-RAMs 773; die 128 Register im VRE 797 entsprechen den 128 geradzahligen logischen Registern in den Daten-RAMs 773, und die 128 Register im VRO 795 entsprechen den 128 ungeradzahlig nummerierten Registern in den Daten-RAMs 773· Der Wert · des einzigen Bits in jedem Register des VRE 797 und des VRO 795 zeigt an, ob das logische Register in den Daten-RAMs 773, das jenem Register entspricht, eine gültige Adresse enthält. Bei der bevorzugten Ausführungsform 772 ist das entsprechende oder korrespondierende Register gültig, falls das Bit den Wert 0 hat; anderenfalls ist es ungültig.Each register in VRE 797 and VRO 795 corresponds to a single logical register in data RAMs 773; the 128 registers in the VRE 797 correspond to the 128 even-numbered logical registers in the data RAMs 773, and the 128 registers in the VRO 795 correspond to the 128 odd-numbered registers in the data RAM 773 The value the only bit in each register of the VRE 797 and VRO 795 indicates whether the logical register in the data RAMs 773 corresponding to that register contains a valid address. In the preferred embodiment, 772 is the corresponding or corresponding register valid if the bit has the value 0; otherwise it is invalid.

ο ο ο 4 υ / ο ο ο 4 υ /

Die Korrespondenz zwischen den logischen Registern in den Daten-RAMs 773 und den Registern im VRE 797 und VRQ 795 wird dadurch erhalten, daß ADDR (0...6) 793, bestehend aus den Leitungen 0...6 von ADDR (0...7) 774-1 mit YRE 797 und VRO 795 verbunden ist, und ADDR (7) 777, bestehend aus der Leitung 7 von ADDR (0...7) mit der Logik verbunden ist, die VRO 795 auswählt, wenn ein ungeradzahlig-nummeriertes logisches Register in den Daten-RAMs 773 adressiert wird, und die VRE 795 auswählt, wenn ein geradzahlig-nummeriertes logisches Register adressiert wird. Die Art, in der VRE 797 und VRO 795 ausgewählt werden, hängt davon ab, ob ABC gerade auf Namen 401 anspricht, oder gerade geladen wird, oder gerade geflusht wird, und wird genauer bei der Diskussion dieser Operationen beschrieben.The correspondence between the logical registers in data RAMs 773 and the registers in VRE 797 and VRQ 795 is obtained by ADDR (0 ... 6) 793, consisting of lines 0 ... 6 from ADDR (0 ... 7) 774-1 connected to YRE 797 and VRO 795, and ADDR (7) 777, consisting of line 7 from ADDR (0 ... 7) to the Logic is connected which VRO 795 selects when an odd-numbered logical register is in the Data RAM 773 is addressed and the VRE 795 selects when addressing an even-numbered logical register. The way in the AER 797 and VRO 795 depends on whether ABC is currently responding to name 401 or is currently loaded is being or is being flushed and will be described in more detail in the discussion of these operations.

3.6 Arbeitsweise der bevorzugten Ausführungsform des ABC 5023.6 Operation of the Preferred Embodiment of the ABC 502

Die bevorzugte Ausführungsform des ABC 502 führt die folgende Operation als Antwort auf Eingangssignale aus dem Namenbus 328, ADISP 639 und Mikrobefehlen aus:The preferred embodiment of the ABC 502 performs the perform the following operation in response to input signals the name bus 328, ADISP 639 and micro-commands:

Wenn die bevorzugte Ausführungsform des ABC einen entweder aus dem Namenbus 328 oder dem ADISP 639 empfangenen unmittelbaren Namen auflöst, erzeugt die bevorzugte Ausführungsform ein Datenausgangssignal bei DO 790 und ein Hit/Miss-(Fehl)-Ausgangssignal bei ABC H/M 7^05;If the preferred embodiment of the ABC uses either name bus 328 or the ADISP 639 resolves received immediate names, generates the preferred embodiment one Data output signal for DO 790 and a hit / miss (miss) output signal at ABC H / M 7 ^ 05;

ORIGINAL INSF>£CT£DORIGINAL INSF> £ CT £ D

4 ·4 ·

Als Antwort auf ein Lese-HMHC-Eegister-Mikrokommando spricht die bevorzugte Ausführungsform des ABC 502 auf ADISP 639 von einem spezifizierten RMtTCER 627, wie soeben beschrieben, für die Auflöseoperation an.In response to a read HMHC register microcommand the preferred embodiment of the ABC 502 on ADISP 639 speaks of a specified RMtTCER 627, as just described, for the release operation.

Als Antwort auf ein Aufruf-Mkrokommando inkrementiert die bevorzugte Ausführungsform den . OFG 749 und NFC 753 und macht den nächsten ABC-Rahmen 605 ungültig;Incremented in response to an invoke microcommand the preferred embodiment den. OFG 749 and NFC 753 and makes the next ABC frame 605 invalid;

Als Antwort auf ein Return-Mikrokommando dekrementiert die bevorzugte Ausführungsform den CFC 7^-9 und NFC 753 und macht den neuen nächsten ABC-Rahmen 606 ungültig;Decremented in response to a return microcommand the preferred embodiment the CFC 7 ^ -9 and NFC 753 and invalidates the new next ABC frame 606;

Als Antwort auf ein Mikrokommando zum Ungültigmachen von ABCE macht die bevorzugte Ausführungsform einen spezifizierten ABCE 503 im laufenden Rahmen 6Ο7 ungültig;In response to an invalidate microcommand from ABCE, the preferred embodiment makes a specified ABCE 503 on the fly Frame 6Ο7 invalid;

Als Antwort auf ein "Lade laufend"-Mikrokommando lädt die bevorzugte Ausführungsform einen spezifizierten ABCE 503 im. laufenden Rahmen 6O7 und macht «jenen ABCE 503 gültig;In response to a "loading" microcommand the preferred embodiment loads a specified one ABCE 503 in. running frame 6O7 and makes «Those ABCE 503 valid;

Als Antwort auf ein "Lade nächst"-Mikrokommando lädt die bevorzugte Ausführungsform einen spezifizierten ABCE 503 im nächsten Rahmen 605 und macht jenen ABCE 503 gültig;In response to a "load next" microcommand The preferred embodiment loads a specified ABCE 503 in the next frame 605 and does those ABCE 503 valid;

- Als Antwort auf ein Flush-Mikrokommando macht die bevorzugte Ausführungsform den ganzen ABC 502 ungültig. - In response to a flush micro-command, the preferred embodiment makes the whole ABC 502 invalid.

Die Operationen werden in der obigen Reihenfolge be- . schrieben.The operations are loaded in the above order. wrote.

3.6.1 Namenauflösung3.6.1 Name resolution

Wenn die bevorzugte Ausführungsform des ABC 502 dabei ist, einen unmittelbaren Namen 4-09 aufzulösen, spezifiziert •keine der Leitungen 705 bis 711 und 724 eine Operation, und alle sind aktiv. Folglich gelten folgende Bedingungen:If the preferred embodiment of the ABC 502 is included, Resolving an immediate name 4-09 does not specify • none of lines 705 to 711 and 724 an operation, and everyone is active. As a result, the following conditions apply:

Die SFL-Leitung 723 ist inaktiv;The SFL line 723 is inactive;

FLC 729 gibt den Wert 1 auf seiner dritten Ausgangsleitung aus; undFLC 729 outputs the value 1 on its third output line; and

Das SA-.Register 74-3 und das oB-Register 735 enthalten den Wert 0.The SA register 74-3 and the oB register 735 contain the value 0.

Weil, diese Bedingungen gelten, i.st die GFL-Leitung 74-7 aktiv. Als Antwort hierauf wird der I-Name-Multiplexer aktiviert und der FB-Driver 730 wird abgeschaltet, so daßBecause these conditions apply, i.e. the GFL line 74-7 active. In response to this, the I name multiplexer activated and the FB driver 730 is switched off so that

ORIGINAL INSPECTEDORIGINAL INSPECTED

RA 767 durch den I-Name-Multiplexer 718 geliefert wird. Weiterhin ist auch die LNEXT-Leitung 715 aktiv, daher ist der Ausgang des ODER-Glieds 763 inaktiv, und der FA-MuItiplexer 761 wählt den CFC 759 als die Quelle des FRA 765 aus.RA is supplied by the 767 I-plex name -Multi 718th Furthermore, the LNEXT line 715 is also active, therefore the output of the OR gate 763 is inactive, and the FA multiplexer 761 selects the CFC 759 as the source of the FRA 765.

Welcher Eingang durch den I-Name-Multiplexer 718 als die Quelle von RA 767 ausgewählt wird, hängt von dem Wert des ΝΤΓ-Felds 4-05 des zur Zeit auf dem Namebus 328 befindlichen Namen 401 ab. Dieses Feld wird als Eingangssignal dem UND-Glied 725 zugeführt. Falls der Name 401 ein Tabellenname 403 ist, das heißt falls er ein NTT-FeId 405 mit dem Wert 11 hat, ist der Ausgang des UND-Glieds 725 aktiv, der Ausgang des ODER-Glieds 726 ist aktiv, und der I-Name-Multiplexer 718 wählt ADISP 639 aus; anderenfalls wählt er den Namebus 328 aus. Die Daten-RAMs 773 sind zum Lesen aktiviert, und sie geben den Inhalt des Adreßfelds 609 des durch ADDR 774 spezifizierten ABCE 503 beim DO 790 aus.Which input through the I-Name multiplexer 718 than the Source is selected by RA 767 depends on the value of ΝΤΓ-field 4-05 of the one currently on Namebus 328 Name 401. This field is fed to the AND gate 725 as an input signal. If the name 401 is a table name 403, that is, if it has an NTT field 405 with has the value 11, the output of AND gate 725 is active, the output of OR gate 726 is active, and the I-Name multiplexer 718 selects ADISP 639; otherwise it selects name bus 328. The data RAMs 773 are for reading activated, and they output the content of the address field 609 of the ABCE 503 specified by ADDR 774 at DO 790.

ADDR (0..6) 793 adressiert weiterhin ein Register im VRE 797 sowie im VRO 795. 4DDR (7) 777 wird mit dem DO 796'beim UND-Glied 7101 UND-verknüpft und wird durch den Inverter 7IOO invertiert und mit dem DO 798 des VRE 795 beim UND-Glied 799 UND-verknüpft. Die Ausgangssignale der UND-Glieder 799 und 7IOI werden dann durch das ODER-Glied 7103 zur Erzeugung des ABC H/M 7105 ODER-verknüpft. Falls ADDR (0..7) 774 ein geradzahlig- ' nummeriertes logisches Register in den Daten-RAMs 773 adressiert, ist ADDR (7) 777 inaktiv. Folglich ist dasADDR (0..6) 793 still addresses a register in VRE 797 and VRO 795. 4DDR (7) 777 is used with the DO 796 'with AND element 7101 AND-linked and is activated by the inverter 7IOO is inverted and with the DO 798 of the VRE 795 with AND element 799 AND-linked. The output signals the AND gates 799 and 7IOI are then through the OR gate 7103 for generating the ABC H / M 7105 OR linked. If ADDR (0..7) 774 an even-numbered logical register in the data RAMs 773 addressed, ADDR (7) 777 is inactive. Hence this is

,02 ^ 3*., 02 ^ 3 *.

Ausgangssignal des UND-Glieds 7101 inaktiv und das Ausgangssignal des Inverters 7100 ist aktiv. Palis DO 798 dabei ist, eine 1 auszugeben, wodurch angezeigt wird, daß der durch ADDR (0..7) 77*\ spezifizierte ABCE 503 ungültig ist, sind die Ausgange des UlTD-GIieds 799 und des ODER-Glieds 7IO3 "beide aktiv, wodurch ein ABC-Fehlsignal auf der Leitung 7105 erzeugt wird, !'"alls ADDR (0...7) 774- ein ungeradzahlig-nummeriertes logisches Register in den Daten-RAMs 773 adressiert, ist ADDR.(7) 777 aktiv, was ein inaktives Ausgangssignal des Inverters 7IOO und aktive Ausgangssignale des UND-Glieds 7IOI und des; ODER-Glieds 7103 erzeugt, falls DO 796 aktiv ist. So wird ein ABC-Fehlsignal auf der Leitung 7105 nur dann erzeugt, wenn ABCE 503, das durch ADDR (0..7) 77^· adressiert wird, ungültig ist.The output signal of the AND gate 7101 is inactive and the output signal of the inverter 7100 is active. Palis DO 798 is about to output a 1, which indicates that the ABCE 503 specified by ADDR (0..7) 77 * \ is invalid, the outputs of the UlTD element 799 and the OR element 7IO3 "are both active , whereby an ABC miss signal is generated on line 7105,! '"all ADDR (0 ... 7) 774- addresses an odd-numbered logical register in the data RAMs 773, ADDR. (7) 777 is active, which is an inactive output signal of the inverter 7IOO and active output signals of the AND gate 7IOI and the; OR gate 7103 generated if DO 796 is active. An ABC error signal is only generated on line 7105 if ABCE 503, which is addressed by ADDR (0..7) 77 ^ · is invalid.

3.6.2 Die Lese-RMNC-Register-Operation3.6.2 The Read RMNC Register Operation

D iese Operation tritt auf, wenn die RRMREG-Leitung 72^ aktiv ist. In diesem Fall wählt der I-Name-Multiplexer /7I8 ADISP 639 als die Quelle von RA 727 aus, und die bevorzugte Ausführungsform 7OI spricht an, wie soeben für die Namensauflösungsoperation beschrieben wurde. This operation occurs when the RRMREG line 72 ^ is active. In this case the I-Name Multiplexer / 7I8 selects ADISP 639 as the source of RA 727 and the preferred embodiment addresses 70I, as just described for the name resolution operation.

3.6.3 Die Aufrufoperation3.6.3 The call operation

Bei der Aufrufoperation werden NFC 753 und CFC 74-9 inlcrementiert und der nächste ABC-Rahmen 605 wird ungültig gemacht. Wenn ein Mikrobefehl eine Aufrufoperation spezifiziert, ist CALL 707 während einer faktperiode inaktiv,During the call operation, NFC 753 and CFC 74-9 are incremented and the next ABC frame 605 is invalidated. When a microinstruction specifies a call operation, if CALL 707 is inactive during a fact period,

ORiCiWAL !MSPECTEDORiCiWAL! MSPECTED

und der Rest der Leitungen 705 bis 717 bleibt aktiv. Während CALL 'inaktiv ist, ist das Ausgangssignal des NOR-Glieds 721, SFL 723 inaktiv. Das inaktive Signal Sl1L inaktiviert die P-Eingänge des NFC 753 und CFC 749 über das NOR-Glied 755. Die U/D-Eingänge des NFC 753 und CFC 749 sind mit "RET'70y verbunden, welches aktiv ist. Folglich werden NFC 753 und CFC 74-9 um 1 inkrementiert. and the remainder of lines 705 through 717 remain active. While CALL 'is inactive, the output signal of NOR gate 721, SFL 723 is inactive. The inactive signal Sl 1 L inactivates the P inputs of the NFC 753 and CFC 749 via the NOR element 755. The U / D inputs of the NFC 753 and CFC 749 are connected to “RET'70y, which is active NFC 753 and CFC 74-9 incremented by 1.

Das Aulruf-Mikrokommando beginnt auch das Ungültigmachen des neuen nächsten ABC-Rahmens 6O5. Während des Ungültig- · machens wird FRA 765 durch NFC 753 .geliefert, und RA wird durch FLC 729 geliefert. Das Bit 4 von RA 767 wird durch das Bit O aus FLC 729 geliefert, das Bit 5 aus dem Bit 1 und so weiter. Folglich ist das durch FLC 729 gelieferte höchstwertige Bit das niedrigstwertige Bit. von RA 767· Wie später genauer erläutert wird, zählt FLC 729 nur von 0 bis 7; das Bit 3 hat demzufolge immer den Wert 0, wenn FLC 729 gerade zählt, und die an RA gelieferten Werte sind Adressen für geradzahlig-nummerierte Register in den Daten-RAMs 773.The call microcommand also begins invalidating of the new next ABC frame 6O5. During the invalid In doing so, FRA 765 is delivered by NFC 753, and RA is supplied by FLC 729. Bit 4 of RA 767 becomes supplied by bit O from FLC 729, bit 5 off bit 1 and so on. Thus the most significant bit provided by FLC 729 is the least significant bit. von RA 767 · As will be explained in more detail later, counts FLC 729 only from 0 to 7; Bit 3 therefore always has the value 0 when FLC 729 is counting, and that at RA The values supplied are addresses for even-numbered registers in the data RAMs 773.

Wie oben beschrieben, führt die Inaktivierung von CALL wahrem: eines Taktimpulses auch zur Inaktivierung von "SFL'723 während derselben Zeitspanne. SFL 723 ist mit dem L-Eingang des FLC 729 verbunden und wird komplementi ert und einem Eingang des ODER-Gates 741. zugeführt. FolglichAs described above, deactivating CALL true: a clock pulse also deactivates "SFL'723 during the same period. SFL 723 is with the L input of the FLC 729 and is complemented and an input of the OR gate 741st. Consequently

wird dann, wenn SFL 723 inaktiv wird, der FLC 729 auf O zurückgesetzt, und das SA-Register 743 wird auf 1 gesetzt. Venn FLC 729 auf O zurückgesetzt wird, wird die Ausgangsleitung des FLC 729 inaktiv. Jene Ausgangsleitung wird durch den Inverter 736 invertiert und als Eingang für die NAND-Glieder 745 und 737 verwendet.then, when SFL 723 becomes inactive, FLC 729 is reset to 0 and the SA register 743 becomes set to 1. When the FLC 729 is reset to O, the output line of the FLC 729 becomes inactive. That output line is inverted by inverter 736 and used as input for NAND gates 745 and 737.

Es wird mit dem NAND-Glied 745 begonnen. Das andere Einangssignal des NAND-Glieds 745 ist das Ausgangssignal von SA 74-3, das nun 1 ist. Folglich wird der Ausgang CFL* 747 des NAND-Glieds 745 inaktiv. CFL~747 ist mit dem Ε-Eingang des FB 730, dem ODER-Glied 763 und dem NOR-Glied 785 verbunden. Es wird durch den Inverter 728 komplementiert und dem Ε-Eingang des I-Nan.e-Multiplexers 7I8 und dem T-Eingang des FLC 729 zugeführt. Daher sind FB 730 und FLC 729 aktiviert und der I-Nan.e-Multiplexer ist abgeschaltet, so daß FLC 729 die Quelle von RA 767 ist. Schließlich wählt der FA-Multiplexer 761 NFC 753 als die Quelle von FRA 763 aus. Weiterhin ist das Ausgangssignal des NOR-Glieds 785 inaktiv und sowohl VRO 795 als auch VRE 797 sind zum Schreiben aktiviert.It is started with the NAND gate 745. The other input signal of NAND gate 745 is the output of SA 74-3, which is now 1. Hence the exit CFL * 747 of NAND gate 745 inactive. CFL ~ 747 is with the Ε input of the FB 730, the OR gate 763 and the NOR gate 785 are connected. It is made by the inverter 728 complemented and the Ε input of the I-Nan.e multiplexer 7I8 and the T input of the FLC 729. Hence are FB 730 and FLC 729 activated and the I-Nan.e multiplexer is switched off so that FLC 729 is the source of RA 767 is. Finally, FA multiplexer 761 selects NFC 753 as the source from FRA 763. Furthermore, the output signal of the NOR gate 785 is inactive and both VRO 795 as VRE 797 are also activated for writing.

Es wird mit dem NANd-Glied 737 fortgefahren. Beim Beginn einer Ungültigmachungsoperation enthält SB 735 den Wert 0; wenn FLC 729 mxt 0 geladen wird, wird die Leitung 3 inaktiv, ihr Komplement wird aktiv, das NAND-Glied 737 hat ein aktives und ein inaktives Eingangssignal, und die . SF-Leitung 739 ist aktiv. Die FL-Leitung 705 ist auch aktiv und entsprechend ist das Ausgangssignal des ODER-Glieds 733 inaktiv und das SB-Register 735 wird bei 0It continues with the NANd gate 737. At the beginning an invalidation operation, SB 735 contains the value 0; when FLC 729 mxt 0 is loaded, line 3 becomes inactive, its complement becomes active, the NAND gate 737 has an active and an inactive input signal, and the. SF line 739 is active. The FL line 705 is also active and accordingly the output signal of the OR gate 733 is inactive and the SB register 735 becomes 0

INSPECTEDINSPECTED

~ GOPY~ GOPY

gehalten. Solange wie das FB-Register 735 den Wert 0 hat-, ist das Ausgangs signal des NAND-Glieds 731 aktiv, und der P-Eingang des FLC 729 ist aktiv. Weil der T-Eingang ebenfalls aktiviert war, als PLC 729 auf O gesetzt wurde,-inkrementiert I1LC 729 sich selbst bei jeder Taktperiode, bis. es den Wert 8 (binär 1000) erreicht. An diesem Punkt ändert die Leitung 3 des FLC 729 ihren Wert von 0 nach 1, die CFL-Leitung 739 wird aktiv, das SA-Register 735 wird auf 0 gesetzt, und der T-Eingang des FLC 729 wird inaktiv, wodurch er den Zählvorgang stoppt. Weiterhin wird der FB-Driver 730 abgeschaltet und der I-Name-Multipiexer wird aktiviert, so daß FLC 729 nicht langer die Quelle von HA 767 ist.held. As long as the FB register 735 has the value 0, the output signal of the NAND element 731 is active and the P input of the FLC 729 is active. Because the T input was also activated when the PLC 729 was set to 0, I 1 LC 729 increments itself at every clock period until. it reaches the value 8 (binary 1000). At this point, line 3 of the FLC 729 changes its value from 0 to 1, the CFL line 739 becomes active, the SA register 735 is set to 0, and the T input of the FLC 729 becomes inactive, causing it to count stops. Furthermore, the FB driver 730 is switched off and the I-Name multiplexer is activated, so that FLC 729 is no longer the source of HA 767.

Für jeden vom FLC 729 während seines Zählens von 0 bis 7 erzeugten Wert adressiert ADDR (0...6) 793 gleichzeitig ein Register sowohl im FRE 797 als auch FRO 795. Wie bereits beschrieben wurde, sind sowohl FRE 797 .als auch FRO 795 zum Schreiben aktiviert; weiterhin sind die INABC-Leitung 711 und die LABC-Leitung 771 beide aktiv. . Als Ergebnis ist der Ausgang des ODER-Glieds 783 inaktiv, die Ausg;änge der UND-Glieder 787 und 789 sind beide inaktiv, und die OS-Eingänge sowohl des VRE 797 als auch des VRO 795 sind inaktiv. Die LABC-Leitung 771 ist weiter mit den DI-Eingängen sowohl des VRE 797 als auch des VRO 795 verbunden, und es wird daher gleichzeitig eine 1 in die .-iegister im VRE 797 und VRO 795 geschrieben, die durch AJDR (0..6) 793 adressiert werden. Somit werden während der acht Taktperioden,die für das FLC 729 zum Zählen von 0 bis 7 benötigt werden, alle 16 Register desFor each of the FLC 729 during its counting from 0 to 7 ADDR (0 ... 6) 793 simultaneously addresses a register in both the FRE 797 and FRO 795. As already has been written, both FRE 797 and FRO 795 are activated for writing; continue to be INABC line 711 and LABC line 771 are both active. . As a result, the output of the OR gate 783 is inactive, the outputs of AND gates 787 and 789 are both inactive, and the OS inputs of both VRE 797 and VRO 795 are inactive. LABC line 771 is on connected to the DI inputs of both the VRE 797 and the VRO 795, and therefore a 1 written in the.-iegister in VRE 797 and VRO 795, the addressed by AJDR (0..6) 793. Thus become during the eight clock periods required for the FLC 729 to count from 0 to 7, all 16 registers of the

·» ♦· »♦

VRE 797 und des VRO 795, die zu dem durch NFC 753 spezifizierten neuen nächsten ABC-Rahmen 605 gehören, ungültig gemacht.VRE 797 and VRO 795 that correspond to the one specified by NFC 753 new next ABC frame 605 belong, invalidated.

3.6.4· Die Return-Operation3.6.4 · The return operation

Bei der Return-Operation werden NPC 753 und CFC 749 dekrementiert anstatt inkrementiert, und der durch NFC 753 spezifizierte neue nächste ABC-Rahmen 605 wird ungültig gemacht. Der einzige Unterschied zwischen der Return-Operation und der Aufruf-rOperation besteht darin, daß die RET-Leitung 709 während einer Taktperiode inaktiv •wird anstatt der CALL-Leitung 707· Wie oben erläutert, ist die RET-Leitung 709 mit den U/D-Eingängen von NFC 753 und CFC 749 verbunden; wenn sie inaktiv ist, zählen NFC und CFC 7^9 abwärts. Hier ist sie während einer Taktperiode inaktiv, und folglich werden NFC 753 und CFC 749 um 1 dekrementiert.During the return operation, NPC 753 and CFC 749 decrements instead of increment, and the new next ABC frame 605 specified by NFC 753 becomes invalidated. The only difference between the return operation and the call operation is that that RET line 709 is inactive during a clock period • instead of the CALL line 707 · As explained above, is the RET line 709 with the U / D inputs of NFC 753 and CFC 749 connected; when it is inactive, NFC counts and CFC 7 ^ 9 downwards. Here it is for a clock period inactive, and consequently NFC 753 and CFC 749 are decremented by 1.

3.6.5 Die Operation zum Ungültigmachen von ABCE3.6.5 The ABCE invalidation operation

Die Operation zum Ungültigmachen von ABCE macht ein spezifiziertes ABCE 503 im laufenden Rahmen 6O7 ungültig. Die ABCE 6O3 spezifizierende RA 727 wird aus dem I-Name-Multipi exer 7^8 empfangen.The ABCE invalidation operation does a specified one ABCE 503 invalid in current frame 6O7. the ABCE 6O3 specifying RA 727 becomes from the I-Name-Multipi exer 7 ^ 8 received.

ORIGINAL INSPECTEDORIGINAL INSPECTED

/7 V if./ 7 V if.

Während der Operation ist INABG 7II inaktiv und alle anderen Leitungen 705 bis 717 sind aktiv. Weil SPL 723 aktiv ist und FLC 729 gerade den Wert 1 auf der Ausgangsleitung 3 ausgibt, wird SA 743 auf 1 gesetzt'und CFL ist .aktiv, wie früher beschrieben wurde. Folglich wird de=r FB-Driver 730 abgeschaltet und der I-Name-Multiplexer 718 wird zur Lieferung von RA 727 aktiviert. Wie früher beschrieben,bestimmen die Werte auf der RRTiREG-Leitung 724 oder die Bits 0...1 des Namebus 328, ob der I-Name-Multiplexer 728 RA 727 aus dem Namebus 328 oder aus ADISP 739 liefert. Weiterhin sind sowohl CFL 747 aisjauch LNEX(P 715 aktiv, wodurch bewirkt wird, daß der FA-MuItiplexer 781 CFC 749 als die Quelle von FRA 76r5 auswählt. ADDR (0...6) 7^3 von ADDR (0...7) lieferi somit Adressen an je ein Register im VRE 797 und 7RO 795. Wie hier erklärt werden wird, wählt ADDR (7) 777 aus, in welches der Elemente VRE 797 und VRO eingeschrieben werden wird.During the operation INABG 7II is inactive and all other lines 705 to 717 are active. Because SPL 723 is active and FLC 729 is currently outputting the value 1 on output line 3, SA 743 is set to 1 and CFL is active, as described earlier. As a result, the FB driver 730 is switched off and the I-Name multiplexer 718 is activated to deliver RA 727. As described earlier, the values on the RRTiREG line 724 or the bits 0 ... 1 of the name bus 328 determine whether the I name multiplexer 728 delivers RA 727 from the name bus 328 or from ADISP 739. Furthermore, both CFL 747 and LNEX (P 715 are active, causing FA multiplexer 781 to select CFC 749 as the source of FRA 76 r 5. ADDR (0 ... 6) 7 ^ 3 of ADDR (0. ..7) thus deliver addresses to one register each in VRE 797 and 7RO 795. As will be explained here, ADDR (7) 777 selects which of the elements VRE 797 and VRO will be written into.

Wenn INABC 7II inaktiv ist, ist der Ausgang des ODER-Glieds 783 aktiv. Das Ausgangssignal des ODER-Glieds dient als ein Eingangssignal des NOR-Glieds 785, cLes UND-Glieds 789 und des UND-Glieds 787. Ein aktives Eingangssignal aus dem' ODER-Glied 783 für diese genannten Verknüpfungsglieder hat die nachstehenden Folgen:When INABC 7II is inactive, the output of the OR gate is 783 active. The output of the OR gate serves as an input to the NOR gate 785, cLes AND gate 789 and AND gate 787. An active input signal from the 'OR gate 783 for this mentioned Linking links has the following consequences:

Der Ausgang des NOR-Glieds 785 ist mit den WE-Eingängen sowohl des VEE 797 als auch des YRO 795 verbunden; wenn der Ausgang des"ODER-Glieds 783 aktiv ist, sind diese Eingänge inaktiv und VRE 797 und VRO 795 sind zum Schreiben aktiviert.The output of NOR gate 785 is with the WE inputs of both the VEE 797 and the YRO 795 connected; when the output of the "OR" gate 783 is active, these inputs are inactive and VRE 797 and VRO 795 are for writing activated.

Venn der Ausgang des ODER-Glieds 783 aktiv ist, "bestimmt der Wert von ADDR (7) 780, dessen Wert das Komplement des Werts von ADDR (7) 777 ist, ob die Ausgänge der UND-Glieder 787 und 789 inaktiv sind.If the output of the OR gate 783 is active, "the value of ADDR (7) 780, the value of which is the complement of the value of ADDR (7) 777, determines whether the outputs of AND gates 787 and 789 are inactive.

Der Ausgang des UND-Glieds 787 ist mit dom CS-Eingang des VRE 797 verbunden, und der Ausgang dos UND-Glieds ist mit dem CS-Eingang des VRO 795 verbunden. Daher ist dann, wenn ADDR (7) aktiv ist, der Ausgang des UND-Glieds 789 inaktiv und es wird VRO 795 aasgewählt; wenn' ADDR (7) inaktiv ist, so ist der Ausgang des UND-Glieds 787 inaktiv und VRE 797 wird ausgewählt. Veil LGUR"7I3 und LNEXT'715 aktiv sind, ist LABG 771 aictiv, und die DI-Eingänge von VRE 797 und VRO 795 sind aktiv. Daher wird, falls ADDR (7) 777 den VRO 795 auswählt, das Register im VRO 795, das durch ADDR (0...6) 793 spezifiziert wird, auf 1 gesetzt; falls ADDR (7) 777 VRE auswählt, wird das entsprechende Register im VRE 797 auf 1 gesetzt. Als Ergebnis wird das durch ADDR (O...7) spezifizierte ABCE 503 ungültig gemacht.The output of the AND gate 787 is connected to the CS input of the VRE 797, and the output of the AND gate is connected to the CS input of the VRO 795. Therefore, when ADDR (7) is active, the output of AND gate 789 is inactive and VRO 795 is selected; when ADDR (7) is inactive, the output of AND gate 787 is inactive and VRE 797 is selected. Veil LGUR "7I3 and LNEXT'715 are active, LABG 771 is active and the DI inputs of VRE 797 and VRO 795 are active. Therefore, if ADDR (7) 777 selects VRO 795, the register in VRO 795, that is specified by ADDR (0 ... 6) 793 is set to 1; if ADDR (7) 777 selects VRE, the corresponding register in VRE 797 is set to 1. As a result, this is set by ADDR (O ... 7 ) specified ABCE 503 invalid.

3.6.6 Die "Lade-Laufend-Operation3.6.6 The "loading-in-progress" operation

Die Lade-Laufend-Operation lädt eine aus einem Argumentzeiger 601 abgeleitete Adresse in einen ABCE 503 im laufenden ABC-Rahmen 603. Die Adresse wird über den Cache-Ladebus 527 eingegeben und die Quelle von RA 767 ,ist der I-Name-Multiplexer 718. Die Operation liefert ADDR (0...7) 774 an die Daten-RAMs 773 und ADDR (0...6) 793 an VRO 795 und TRE 797 und wählt genau eines der beiden Elemente VRO 795 und VRE 797 entsprechend dem Wert von ADDR (7) 777 in derselben Weise wie dies für die Operation zum Ungultigmachen von ABCE beschrieben wurde. Jedoch ist bei der Lade-Laufend-Operation LCUR 7^3 inaktiv. Folglich ist der Ausgang LABC 771 des NOR-Glieds 769 inaktiv. LÄBCT711 ist mit den I-Eingängen des VRO 795 und VRE 797 verbunden und mit dem WE-Eingang der Daten-RAMs 773» und sein Komplement dient als ein Eingangssignal für das NOR-Glied 785. Der Ausgang des NOR-Glieds 785 ist mit den WE-Eingängen des VRO 795 und VRE 797 verbunden. Entsprechend sind die Daten-RAMs 773, VRO 795 und VRE 797 alle zum Schreiben aktiviert. Der Wert an den DI-Eingängen von VRO 795 und VRE 797 ist 0, und am Ende der Operation wird die Adresse auf dem Cacheladebus 527 ins Adreßfeld 609 im ABCE 503 geschrieben, der durch CFC 7^-9 und den durch den I-Name-Multiplexer 7I8 gelieferten Wert spezifiziert wird, und das zum ABCE 503 gehörende Gültigkeitsfeld 611 wird auf 0 gesetzt, wodurch angezeigt wird, daß ABCE 503 gültig ist.The load-in-progress operation loads an address derived from an argument pointer 601 into an ABCE 503 in the current ABC frame 603. The address is entered via cache load bus 527 and the source from RA 767 , is the I-Name multiplexer 718. The operation supplies ADDR (0 ... 7) 774 to the data RAMs 773 and ADDR (0 ... 6) 793 to VRO 795 and TRE 797 and select exactly one of the two Elements VRO 795 and VRE 797 corresponding to the value of ADDR (7) 777 in the same manner as described for the ABCE invalidation operation. However is inactive during the loading-in-progress operation LCUR 7 ^ 3. Consequently output LABC 771 of NOR gate 769 is inactive. LÄBCT711 is connected to the I inputs of the VRO 795 and VRE 797 and connected to the WE input of the data RAMs 773 »and its complement serves as an input to the NOR gate 785. The output of the NOR gate 785 is connected to the WE inputs of the VRO 795 and VRE 797 connected. Accordingly, the data RAMs 773, VRO 795 and VRE 797 are all activated for writing. The value at the DI inputs of VRO 795 and VRE 797 is 0, and at the end of the operation will the address on the cache load bus 527 is written into the address field 609 in the ABCE 503, which is processed by CFC 7 ^ -9 and by the value supplied by the I name multiplexer 7I8 is specified and the validity field 611 belonging to ABCE 503 is set to 0, indicating that ABCE 503 is valid.

ό ό ό 4 O / ό ό ό 4 O /

3.6.7 Die "Lade-Nächst"-Operation3.6.7 The "load next" operation

Die Lade-Nächst-Operation ist mit der Lade-Lauf end-Operation identisch, ausgenommen daß der ABGE 503, der geladen wird, im nächsten ABC-Rahmen 607 ist. Während der Operation ist LHEXT inaktiv. Als Ergebnis ist der Ausgang des ODER-Glieds 763 aktiv und der FA-Multiplexer 761 wählt Ni1G 753 als die Quelle von FRA 765 aus.Next, the charging operation is identical to the charge-run end-operation, except that the ABGE 503 that is loaded, is in the next ABC frame 607th LHEXT is inactive during the operation. As a result, the output of OR gate 763 is active and FA multiplexer 761 selects Ni 1 G 753 as the source of FRA 765.

3.6.8 Die Flush-Operation3.6.8 The flush operation

Die Flush-Operation macht alle ABGEs 503 im ABC 502 ungültig. Adressen werden durch FLC 729 und NFG 753 erzeugt. FLG 729 wird auf 0 gehalten, während NFG 753 von 1 über I5 nach 0 zählt; dann wird FLC 729 inkrementiert, und NFG 753 zählt wiederum von 1 über 15 nach 0. Wie bei der Diskussion der Operation zum Ungültigmachen von ABC beschrieben wurde, haben sowohl VRE 797 als auch VRO 795 inaktive Cü-und WE-Eingänge und aktive Di-Eingänge; folglich werden jedesmal, wenn eine Adresse durch CFG 74-9 und FLC 729 erzeugt wird, die durch ADDR (0...6). spezifizierten Register sowohl im VRE 797 als auch VRO ungültig gemacht; wenn FLC 729 den Wert 8 erreicht, sind alle Register im VRE 797 und VRO 795 ungültig gemacht worden und die Flush-Operation wird beendet.The flush operation invalidates all ABGEs 503 in ABC 502. Addresses are generated by FLC 729 and NFG 753. FLG 729 is held at 0 while NFG 753 counts from 1 through I5 to 0; then FLC 729 is incremented, and NFG 753 counts again from 1 through 15 to 0. As in the discussion of the invalidate operation ABC, both VRE 797 and VRO 795 have inactive Cü and WE inputs and active Di inputs; thus every time an address is generated by CFG 74-9 and FLC 729, that by ADDR (0 ... 6). specified register in both VRE 797 and VRO invalidated; when FLC 729 reaches the value 8, are all registers in VRE 797 and VRO 795 have been invalidated and the flush operation is terminated.

Die Flush-Operation beginnt, wenn die FL-Leitung 705 während einer Taktperiode inaktiviert ist. Folglich ist die üFL-Leitung 723 ebenfalls inaktiv.i erb. Die inaktiveThe flush operation begins when the FL line 705 is inactivated during a clock period. As a result, the UFL line 723 is also inactive. The inactive

SFL-Leitung 723 setzt den FLC 729 auf O zurück, setzt das SA-Register 735 auf 1 zurück, und inaktiviert die P-Eingänge des GPC 74-9 und NFG 753 über das NOR-Glied 755. Die inaktive FL-Leitung 705 setzt das SB-Register 735 auf 1 und setzt CFG 74-9 zurück auf 0 und NFC 753 auf Solange das SB-Register 735 den Wert 1 hat und die Ausgangsleitung 3 des FLC 729 den Wert 0 hat, ist sF 739 inaktiv. SF dient als ein Eingangssignal für das NOR-Glied 755j und somit werden "beide Zähler bei jeder Taktperiode inkrementiert, bis sich eine der oben angegebenen Bedingungen ändert.SFL line 723 resets FLC 729 to O, resets the SA register 735 back to 1, and inactivates the P inputs of the GPC 74-9 and NFG 753 via the NOR gate 755. The inactive FL line 705 sets the SB register 735 to 1 and sets CFG 74-9 back to 0 and NFC 753 As long as the SB register 735 has the value 1 and the output line 3 of the FLC 729 has the value 0, sF is 739 inactive. SF serves as an input to NOR gate 755j, and thus "both counters are" on every clock period increments until one of the above conditions changes.

.Weil die Leitung 3 des FLC 729 den Wert 0 hat und SA 74-3 den Wert 1, ist CFÜT 74-7 inaktiv genauso wie "SF~ 739. Das inaktive CFL 74-9 liefert ein aktives Eingangssignal über das ODER-Glied 763 an FA-Multiplexer 761, und bewirkt dadurch, daß der FA-Muliiplexer 761 den NFC 754· als die Quelle von FRA 765 auswählt. Das inaktive CFL 74-7 schaltet auch den I-Name-Multiplexer 718 aus und aktiviert F3 730, und es wählt dadurch den FLC 729 als die Quelle von RA aus. Schließlich aktiviert das inaktive CFL den T-Eingang des FLC 729.Because line 3 of the FLC 729 has the value 0 and SA 74-3 the value 1, CFÜT 74-7 is inactive just like "SF ~ 739. Das inactive CFL 74-9 supplies an active input signal via OR gate 763 to FA multiplexer 761, thereby causing that the FA multiplexer 761 uses the NFC 754 as the Source of FRA 765 selects. The inactive CFL 74-7 switches also turn off the I-Name multiplexer 718 and activate F3 730, and thereby selects the FLC 729 as the source of RA. Finally, the inactive CFL activates the T input of the FLC 729.

Während der CFC 74-9 gerade von 0 bis 15 zählt und der NFC 753 von 1 über 15 nach 0, sind der OV-Ausgang des CFC 74-9 und die mit diesem verbundene CO-Leitung 751 akbiv. Die CO-Leitung 75'' dient als ein Eingang für dasWhile the CFC 74-9 is counting from 0 to 15 and the NFC 753 from 1 to 15 to 0 are the OV output of the CFC 74-9 and the associated CO line 751 active. The CO line 75 '' serves as an input for the

NAND-Glied 731, und SB 735 liefert den anderen Eingang. Weil SB denWert 1 hat, ist der Ausgang des NAND-Glieds so lange inaktiv, wie die GO-Leitung 751 aktiv ist und der FLC 729 nicht zählt. Wenn der Wert im GPC 749 sich von 15 auf O ändert, wird jedoch der OV-Ausgang des Ci1C 759 inaktiv und erzeugt einen kurzen Impuls. Weil SB 735 weiterhin den Wert 1 hat, wird der Ausgang des NAND-Glieds 731 aktiv und der FLC 729 wird um 1 inkrementiert. Der* soeben beschriebene Prozeß hält an, bis der FLC 729 den Wert 8 erreicht. An diesem Punkt ändert die Leitung 3 des FLC 729 ihren Wert von 0 nach 1 und die ClD-Leitung 747 und die SF-Leitung 739 werden beide aktiv. Die aktive CF!L-Le«'tung 745 setzt das SA-Register 743 auf 0, schaltet FB 730 ab und aktiviert den I-Name-Multiplexer 718. Die aktive SF-Leitung 739 setzt d*as SB-Register 735 auf und bewirkt, daß die P-Eingänge des NFC 753 und CFC 749 und der T-Eingang des FLC 729 aktiv werden, wodurch NFC 753, CFC 749 und FLC 729 angehalten werden. Während des 'Stillstands enthält NFC 753 den Wert 1, CFC 749 den ' Wert 0 und FLC 729 den Wert 8.NAND gate 731, and SB 735 supplies the other input. Because SB has the value 1, the output of the NAND gate is inactive as long as the GO line 751 is active and the FLC 729 does not count. If the value in the GPC 749 changes from 15 to 0, however, the OV output of the Ci 1 C 759 becomes inactive and generates a short pulse. Because SB 735 still has the value 1, the output of NAND gate 731 becomes active and FLC 729 is incremented by 1. The process just described continues until the FLC 729 reaches a value of 8. At this point line 3 of the FLC 729 changes its value from 0 to 1 and the CLD line 747 and SF line 739 both become active. The active CFL line 745 sets the SA register 743 to 0, switches off FB 730 and activates the I-Name multiplexer 718. The active SF line 739 sets the SB register 735 on and causes the P inputs of the NFC 753 and CFC 749 and the T input of the FLC 729 to become active, whereby NFC 753, CFC 749 and FLC 729 are stopped. During the 'standstill, NFC 753 contains the value 1, CFC 749 the' value 0 and FLC 729 the value 8.

3.7 Die bevorzugte Ausfiihrungsform des ABC 502 in den Operationen des Prozessors 3013.7 The preferred version of the ABC 502 in the operations of processor 301

Die Operationen der bevorzugten Ausfiihrungsform des ABC 502, die soeben beschrieben wurden, werden bei bestimmten Operationen des Prozessors 301 kombiniert. Wenn der Prozessor 301 einen Aufrufbefehl ausführt, lädt der durch die Steuerung 327 als Antwort auf den AufrufbefehlThe operations of the preferred embodiment of the ABC 502 just described are used in certain Processor 301 operations combined. When processor 301 executes a call instruction, loads that by controller 327 in response to the call command

ausgeführte Mikrocode zunächst die Argumentzeiger 601 für bei dem Aufruf-Befehl verwendete Argumente in den neuen obersten .Rahmen 321, der durch den Aufruf-Befehl geschaffen wurde. Jedesmal, wenn er einen Argumentzeiger 601 in den neuen obersten Rahmen 321 lädt, verwendet er die Lade-Nächst-Operation, um eine dem Argumentzeiger entsprechende Adresse in die Speicherstelle im nächsten ABC-fiahmen 605 zu laden, die der Speicherstelle des Argumentζeigers 601 im neuen obersten Rahmen 321 entspricht. Dann führt der Microcode, der den Aufruf-Befehl ausführt, die Aufruf-Operation aus. Wie beschrieben,, inkrementiert die Aufruf-Operation den CFC 749 und NFC 753 und transportiert dadurch den nächsten ABC-Rahmen 605 in den laufenden ABC-Rahmen 607, und macht dann den neuen nächsten ABC-Rahmen 605 ungültig.executed microcode first the argument pointers 601 for arguments used in the call command in the new top frame 321, which is created by the call command was created. Every time it loads an argument pointer 601 into the new top frame 321, is used it does the load next operation to one of the argument pointer to load the corresponding address into the memory location in the next ABC file 605 that corresponds to the memory location of the Argument 601 in the new top frame 321 corresponds. Then the microcode that executes the call instruction performs the call operation. As described, incremented the call operation the CFC 749 and NFC 753 and thereby transports the next ABC frame 605 into the current ABC frame 607, and then makes the new next one ABC frame 605 invalid.

Wenn der Prozessor 301 einen Return-Befehl ausführt, führt der durch die Steuerung 327 als Antwort auf den Return-Befehl ausgeführte Mikrocode die Return-Operation aus, welche den CFC 7^9 und NFC 753 dekrementiert, wodurch der laufende ABC-Rahmen 607 in den neuen nächsten ABC-Rahmen 605. transportiert wird, und macht dann den neuen nächsten ABC-Rahmen 605 ungültig.When processor 301 executes a return command, it executes through controller 327 in response to the return command executed microcode from the return operation, which decrements the CFC 7 ^ 9 and NFC 753, whereby the current ABC frame 607 is transported into the new next ABC frame 605th, and then makes the new next one ABC frame 605 invalid.

Wenn der Prozessor 301 einen Namen 401 auflöst und ein ABC-Fehlsignal auftritt, gewinnt der durch die Steuerung 317 als Antwort auf das ABC-Fehlsignal ausgeführte Mikrocode den laufenden Wert von RA 767 aus der ABC-Falle zurück, konstruiert aus diesem Wert den unmittelbaren Namen 409, aus dem RA 767 erhalten worden war, ruft denIf processor 301 resolves a name 401 and an ABC miss occurs, control wins 317 microcode executed in response to the ABC miss signal the current value of RA 767 from the ABC trap back, constructs the immediate name 409 from this value, from which RA 767 was obtained, calls the

dem unmittelbaren Namen 409 entsprechenden Argumentζeiger 601 aus dem obersten Rahmen 321 ab, und verwendet die Lade-Laufend-Operation, um die dem Argumentζeiger 601 entsprechende Adresse in das Adreßfeld 609 des ABCE 503 im laufenden ABC-Rahmen 607 zu laden, der durch den aus der ABC-Falle 770 konstruierten unmittelbaren Namen 409 spezifiziert wird.the immediate name 409 corresponding Argumentζeiger 601 from the top frame 321 from, and uses the charge-Ongoing operation to the the Argumentζeiger 503 for frame ABC 607 in the current u invite 601 corresponding address in the address field 609 of the ABCE defined by the Immediate name 409 constructed from ABC trap 770 is specified.

3·8· Beschreibung einer bevorzugten Ausführungsform des RMNC 517 - Fig. 83x8x Description of a Preferred Embodiment of the RMNC 517 - Fig. 8

Die Diskussion wendet sich nun zu einer bevorzugten •Ausführungsform des RMNC 5^7. Die Fig. 8 zeigt eine bevorzugte Ausführungsform 801 des RMNC 517· Während der Besprechung wird auch auf die die logische Struktur eines RMNCE 519 zeigende Fig. 6a Bezug genommen. Die schraffierten Teile der Fig. 8 zeigen Felder in einem einzelnen RMNCE 519 und zeigen ihren Zusammenhang mit der bevorzugten Ausführungsform 801 des RMNC.The discussion now turns to a preferred embodiment of the RMNC 5 ^ 7. Fig. 8 shows a preferred one Embodiment 801 of the RMNC 517 · During the Reference is also made to Figure 6a, which shows the logical structure of an RMNCE 519 for discussion. The hatched ones Portions of Figure 8 show fields in a single RMNCE 519 and show how they relate to the preferred one Embodiment 801 of the RMNC.

Die bevorzugte Ausführungsform 801 des RHNC ist ein direct-mapping (Direkt-Kartierung) Cache mit 256 Einträgen, der durch die aus dem Namenbus 328 empfangenen Tabellennamen 403 adressiert wird. Jeder gültige Eintrag in dem bevorzugten Ausführungsbeispiel 801 des RMNC entspricht einem Tabellennamen 403 mit einem NTE 310 in der Namentabelle 309» die durch die Prozedur 311 verwendet . wird, die zu diesem Zeitpunkt gerade durch das Computersystem 301 ausgeführt wird. Jedoch kann eine NamentabelleThe preferred embodiment 801 of the RHNC is a direct-mapping cache with 256 entries, which is addressed by the table names 403 received from the name bus 328. Any valid entry in the preferred embodiment 801 of the RMNC corresponds to a table name 403 with an NTE 310 in the Name table 309 »used by procedure 311. which is being executed by the computer system 301 at this point in time. However, a table of names

14 309 im Computersystem 301 bis zu 2 NTEs 310 haben, während das bevorzugte Ausführungsbeispiel 801 des RNNC14 309 have up to 2 NTEs 310 in the computer system 301, while the preferred embodiment 801 of the RNNC

ORIGINAL INSPECTEDORIGINAL INSPECTED

nur 28 RMNCEs 519 hat. Die 28 BMNCEs 519 werden durch die acht niedrigstwertigen Bits des NT-IND-Felds 407 in den auf dem Namenbus 328 erscheinenden Tabellennamen 403 adressiert. Diese Bits bilden die Bits 8 bis 15 des Namenbus 328 und sind als IND (8..15) 817 in Fig. 8 markiert.only has 2 8 RMNCEs 519. The 2 8 BMNCEs 519 are addressed by the eight least significant bits of NT-IND field 407 in the menu appearing on the 328 Namenbus table name 403rd These bits form bits 8-15 of name bus 328 and are marked as IND (8..15) 817 in FIG.

•Natürlich können Tabellennamen 403} die bis zu 2 verschiedenen NTEs 310 entsprechen, identische Bits 8 bis haben. Ob ein EDiDTCE ·519 tatsächlich einem gegebenen Tabellennamen 403 entspricht, wird durch ein Eintragkennzeichen (entry tag) bestimmt, das-Jedem gültigen RMNCE 519 in der bevorzugten Ausführungsform 801 des RMNC zugeordnet ist. Das Eintragkennzeichen für einen gültigen RMNCE 519 besteht aus den sechs höchstwertigen Bits des NT-IND-Felds 407 aus dem Tabellennamen 403 entsprechend dem RMNCE 519. Wenn ein Tabellenname 403 der bevorzugten Ausführungsform 801 des RMNC angeboten wird, werden die sechs höchstwertigen Bits des NT-IND-Felds auf den Bits 2 bis 7 cLes Namenbus 328 transportiert. Diese Bits sind in Fig. 8 als TAG (2..7) 819 markiert. Der durch TAG 819 transportierte Wert wird verglichen mit dem Eintragkennzeichen, das dem RMNC 519 zugeordnet ■ ist, das durch IND 8I7 adressiert wird. Falls TAG 819 und das Eintragkennzeichen identisch sind und RMNCE gültig ist, dann entspricht RMNCE 519 dem Tabellennamen 403. Falls TAG 813 und das Eintragkennzeichen nicht identisch sind oder falls RMNCE 519 ungültig ist, ergibt sich ein RMNC-Fehl(miss)-Signal.• Of course, table names 403} which correspond to up to 2 different NTEs 310 can have identical bits 8 to. Whether an EDiDTCE * 519 actually corresponds to a given table name 403 is determined by an entry tag associated with each valid RMNCE 519 in the preferred embodiment 801 of the RMNC. The entry identifier for a valid RMNCE 519 consists of the six most significant bits of the NT-IND field 407 from the table name 403 corresponding to the RMNCE 519. If a table name 403 of the preferred embodiment 801 of the RMNC is offered, the six most significant bits of the NT- IND field on bits 2 to 7 of the name bus 328. These bits are marked as TAG (2..7) 819 in FIG. The value transported by TAG 819 is compared with the entry identifier assigned to the RMNC 519, which is addressed by IND 8I7. If TAG 819 and the entry identifier are identical and RMNCE is valid, then RMNCE 519 corresponds to table name 403. If TAG 813 and the entry identifier are not identical or if RMNCE 519 is invalid, an RMNC miss signal results.

COPY _COPY _

3.8.1 Komponenten der bevorzugten Ausführur.gsform 801 des BMNC3.8.1 Components of Preferred Embodiment 801 of the BMNC

Es werden zunächst die Busse "betrachtet, dio die Schlüssel und Daten zu der bevorzugten Ausführungsforn 801 des MC liefern und Ausgangssignale von der bevorzugten Ausführungsform 801 des RMNC empfangen. Die bevorzugte Ausführungsform 801 des BMNC empfängt Schlüssel von dem Namenbus 328. Der Namenbus 328 ist in Fig. 8 in Komponenten ^ erteilt, deren Werte bei der bevorzugten Au.sführungsform 801 des EMNC unterschiedliche Funktionen ha >en:First of all, we will consider the buses, dio the keys and data on the preferred embodiment 801 of the MC provide and receive output signals from the preferred embodiment 801 of the RMNC. The preferred embodiment 801 of the BMNC receives keys from name bus 328. Name bus 328 is in FIG. 8 in components ^ granted, their values for the preferred embodiment 801 of the EMNC have different functions:

- Die Bits 0..1 des Namenbus 328, die hier als NT (0..1) 821 markiert sind, transportieren das NTf-FeId 405- The bits 0..1 of the name bus 328, which are marked here as NT (0..1) 821, transport the NTf field 405

■ der Namen 401.■ the name 401.

- Die Bits 2..7 des Namenbus 328, die hier als TAG (2..7) 819 markiert sind, transportieren die se^hs höchstwertigen Bits des NT-IND-Felds 407 der Tabellennamen 403.- Bits 2..7 of name bus 328, which are here as TAG (2..7) 819 are marked, transport the most significant bits of the NT-IND field 407 of the table names 403

- Die Bits 8..15 des Namenbus 328, die hier als IND (8..1Ü ***** 817 markiert sind, transportieren die acht niedrigstwertigen Bits des NT-IND-Felds 407.- Bits 8..15 of name bus 328, which are shown here as IND (8..1Ü ***** 817 are marked, carry the eight least significant Bits of NT-IND field 407.

Das bevorzugte Ausführungsbeispiel 807 des RMNC empfängt Daten von dem Cache-Ladebus 527» dem VL-Bus 810, und dem ID-Ladebus 808. Die Funktion des Cache-Ladebuses 527 wurde bereits beschrieben; der VL-Bus 810 liefert eine •Gültigkeitsinformation für das V-FeId 622 cer RMNCEs 519,The preferred embodiment 807 of the RMNC receives Data from cache load bus 527 »VL bus 810, and the ID load bus 808. The function of the cache load bus 527 has already been described; the VL bus 810 provides • validity information for the V field 622 cer RMNCEs 519,

INSPECTEDINSPECTED

und der ID-Ladebus 808 liefert Speicherstellencodes für das ID-FeId 623. Das bevorzugte Ausführungsbeispiel 801 des RMNC gibt Daten an den Adreßversatzmultiplexer 525, den Deskriptorbus 333, die Steuerung 327, an CTL 515 und an ABC 502 aus, wie bei der Diskussion der RMNCEs 519 beschrieben wurde.and ID load bus 808 provides memory location codes for ID field 623. The preferred embodiment 801 of the RMNC outputs data to the address offset multiplexer 525, the descriptor bus 333, the controller 327, to the CTL 515 and at ABC 502, as described in the discussion of RMNCEs 519.

Das bevorzugte Ausführungsbeispiel 801 des EMNC besteht aus den folgenden Geräten oder Einrichtungen:The preferred embodiment 801 of the EMNC consists of the following devices or facilities:

Ein Datenspeicher 813, der 1024 Datenspeicherregister 815 enthält. Jeder EMNCE 519 enthält vier Datenspeicherregister 815, die zum Speichern von EMNCER 627 (0) bis (3) verwendet werden.A data memory 813 containing 1024 data storage registers 815. Each EMNCE 519 contains four data storage registers 815 that are used to store EMNCER 627 (0) through (3).

- Ein Kennzeichenspeicher (TAG STORE) 806, der 256 Kennzeichenspeicherregister 807 enthält. Jedes Kennzeichenspeicherregister 807 ist einem RMNCE 519 zugeordnet. Das Kennzeichenspeicherregister 807 für einen gegebenen RMNCE 519 enthält das Eintragkennzeichen, das dem. RMNCE 519 zugeordnet ist, und Teile des Steuerfelds 620.A tag storage (TAG STORE) 806, the 256 tag storage registers 807 contains. Each tag storage register 807 is associated with an RMNCE 519. The tag storage register 807 for a given RMNCE 519 contains the entry tag assigned to the. RMNCE 519 is assigned, and parts of control field 620.

- Ein Gültigkeitsspeicher 804, der 256 V-Register 805 enthält. Jedes V-Register 805 ist einem RMNCE 519 zugeordnet und enthält ein V-FeId 622 für jenen RMNCE 519.A validity memory 804, the 256 V register 805 contains. Each V register 805 is assigned to an RMNCE 519 and contains a V field 622 for that RMNCE 519

- Ein ABC-FLAGspeicher 802, der 256 ABC-FLAGregister 8O3 enthält. Jedes ABC-FLAGregister 803 ist einem RMNCE zugeordnet und enthält ein ABCF-FeId 621 für jenen RMNCE 519 ο An ABC-FLAG memory 802 containing 256 ABC-FLAG registers 8O3. Each ABC-FLAG register 803 is assigned to an RMNCE and contains an ABCF field 621 for that RMNCE 519 ο

Ein Komparator 811. Der Komparator 811 vergleicht das Eintragkennzeichen für den durch IND 817 adressierten EMCE 519 mit dem Wert des TAG 819, und wenn sie übereinstimmen, prüft er, ob jener EMCTCE 519 gültig ist. Wenn das Eintragkennzeichen und TAG 819 übereinstimmen und jener EKNGE 519 gültig ist, liefert der Komparator 811 ein EMNC-Hit-Signal an CTL 515; andernfalls liefert er ein EMNC-i1ehl(mis)-Signal.A comparator 811. The comparator 811 compares the entry identifier for the EMCE 519 addressed by IND 817 with the value of TAG 819, and if they match, it checks that that EMCTCE 519 is valid. If the entry identifier and TAG 819 match and that EKNGE 519 is valid, the comparator 811 provides an EMNC hit signal to CTL 515; otherwise it delivers an EMNC-i 1 ehl (mis) signal.

Jede dieser Komponenten wird unten genauer beschrieben, und anschließend wird die Operation der bevorzugten Ausführungsform 801 des EHNC beschrieben.Each of these components are described in greater detail below, and then operation of the preferred embodiment is described 801 of the EHNC.

3.8.1.1 Datenspeicher 8133.8.1.1 Data memory 813

Bei der bevorzugten Ausführungsform 801 des EMNC- mag der Datenspeicher 813 bestehen aus 15 statischen 1024 χ 4-M0ti-EAMs des Typs 2149 mit einer Zugriffzeit für Lesedaten von 45 ns. Die acht höchstwertigen Bits der Adressen für die EAMs werden durch IND 817 aus dem Namenbus 328 geliefert. Die übrigen zwei Bits werden durch die EM-Eegister Adresse 812 geliefert. Die BM-Begister-Adresse 812 hat eine Standardeinstellung (default setting) von 0. Folglich spezifizieren die durch IND 817 gelieferten Bits BMNCER (0) 627 für einen gegebenen EMNCE 519. Der durch die steuerung 327 ausgeführte Mikrocode kann die EM-Register-· Adresse 812 auf andere Werte setzen und kann dadurch jeden EMNCEE 627 in einem durch IND 817 spezifizierten RMNüii 519 adressieren.In the preferred embodiment 801 of the EMNC-mag 813 data memories consist of 15 static 1024 χ 4-M0ti-EAMs of type 2149 with an access time for read data from 45 ns. The eight most significant bits of the addresses for the IOMs are provided by IND 817 from name bus 328. The remaining two bits are supplied by EM register address 812. The BM Begister address is 812 a default setting of 0. Consequently, the bits supplied by IND 817 specify BMNCER (0) 627 for a given EMNCE 519. The one given by the control 327 executed microcode can the EM register Set address 812 to other values and can therefore each EMNCEE 627 in an RMNüii 519 specified by IND 817 address.

Die Dateneingangssignale für den Datenspeicher 813 werden durch den Cache-Ladebus 527 geliefert; der Inhalt eines gegebenen RMITCER 627 mag vollständig an den Deskriptorbus 333 ausgegeben werden, oder es können Felder eines gegebenen RMNCER 627 in folgender Weise ausgegeben werden: Das Adressenversatzfeld 629 an den Adressenversatzmultiplexer 525; das Basisfeld 64-1 an die CTL 515; und das ADISP-FeId 639 an ABC 502.The data inputs to data memory 813 are provided by cache load bus 527; the content of a A given RMITCER 627 may be output completely to the descriptor bus 333, or fields of a given RMNCER 627 can be output in the following way: The address offset field 629 to the address offset multiplexer 525; the base field 64-1 to the CTL 515; and the ADISP field 639 to ABC 502.

3.8.1.2 Kennzeichenspeicher 8063.8.1.2 Number plate memory 806

Der Kennzeichenspeicher 806 mag aus 13 1024 χ 1 RAMs des Typs 2125 H3 mit einer Zugriffzeit bei einer Leseoperation von 30 ns bestehen. Die acht höchstsignifikanten Bits der Adressen für die RAMs im Kennzeichenspeicher 806 werden vom IND 817 geliefert; die zwei niedrigstwertigen Bits werden auf 0 gehalten, und folglich sind nur die Kennzeichenspeicherregister 807, die den RMNCERs 617 (0) entsprechen, adressierbar. Jedes adressierbare Kennzeichenspeicherregister 807 enthält ein ID-FeId 623 und ein BC-FeId 625, eine Kopie, des Basisfelds 641 des RMNCE 619; sie enthalten weiter ein E-TAG-FeId 809, dessen Wert das Eintragkennzeichen für den an Jener Adresse im RMNC 517 zur Zeit gespeicherten RfJNCE 519 ist. Das E-TAG-FeId 806 wird aus dem TAG 819 geladen, das BC-FeId 625 wird aus dem Cache-Ladebus 527 geladen zur selben Zeit, zu der RMNCER (0) 627 im Datenspeicher 813 geladen wird, und das ID-FeId 623 wird über den ID-Ladebus 808 geladen.The identifier memory 806 may consist of 13 1024 χ 1 RAMs of the type 2125 H3 with an access time for a read operation of 30 ns. The eight most significant bits of the addresses for the RAMs in tag memory 806 are supplied by the IND 817; the two least significant bits are held at 0, and hence are only the tag storage registers 807, the correspond to the RMNCERs 617 (0), addressable. Each addressable tag storage register 807 contains an ID field 623 and a BC field 625, a copy of the Base field 641 of RMNCE 619; they also contain an E-TAG field 809, the value of which is the entry identifier for those currently stored at that address in the RMNC 517 RfJNCE is 519. The E-TAG field 806 becomes the TAG 819 loaded, the BC field 625 is loaded from the cache load bus 527 at the same time as the RMNCER (0) 627 in the data memory 813 is loaded, and the ID field 623 is loaded via the ID load bus 808.

Bei der bevorzugten. Ausführungsform 801 des RMNG enthält das ID-FeId 623 einen Vierbit-Wert, aus den, die Steuerung 327 die Speicherstelle des ersten Mikrobefehls in der Mikrobefehlsequenz ableitet, die EMlTCE 519 verarbeitet, zu welchem das ID-FeId 623 gehört. Der Inhslt des ID-Felds 623 wird bei der bevorzugten Ausführungsform 801 des EMNC durch ein PEOM geliefert. Bei anderen Ausführungsformen mag der Mikrocode je nach Anforderung durch .das ID-FeId 623 gesetzt werden und mag das ID-FeId 623With the preferred. Embodiment 801 of the RMNG includes the ID field 623 is a four-bit value from which the controller 327 is the location of the first microinstruction in the Derives micro-instruction sequence that EMITCE 519 processes, to which the ID field 623 belongs. The content of the ID field 623 is provided by a PEOM in the preferred embodiment 801 of the EMNC. In other embodiments The microcode may be set by the ID field 623, depending on the requirements, and the ID field 623 may

lesen, um zu bestimmen, wie RMNCE 519» zu aem das ID-FeId 613 gehört, verarbeitet werden muß. Des Datenausgangssignal aus dem ID-FeId 623 wird der Steuerung 327 zugeführt. Das Datenausgangssignal aus dem BC-Feld 625 geht zum CTL 515» das Datenausgangssignal von dem E-TAG-FeId 8O9 wird dem Komparator 8T1 zugeführt.read to determine how RMNCE 519 »to aem the ID field 613 heard, must be processed. The data output signal The controller 327 is fed from the ID field 623. The data output from BC field 625 goes to the CTL 515 »the data output signal from the E-TAG field 8O9 is fed to the comparator 8T1.

3.8.I.3 Gültigkeitsspeicher 8043.8.I.3 Validity memory 804

Der Gültigkeitsspeicher 804- besteht aus zwbi 1024 χ 1 RAMs des Typs 2125 H3 mit einer Zugriffszeit bei. einer Leseoperation von 30 ns. Der Gültigkeit sspeicher 804- wird in derselben Weise verwirklicht, wie bei der Diskussion der bevorzugten Ausführungsform 772 des ABO-Hegisters beschrieben wurde. Eines der beiden RAMs eathält V-Felder 622 für geradzahlige EMNCEs 519, und der andere enthält V-Felder 622 für ungradzahlige EMNCEs 519. Die sieben höchstwertigen Bits von IND 8I7 werden verwendet, um die' höchstwertigen Bits der Adressen für beide RAMs zu bilden, und die übrigen Bits der Adressen werden auf 0 gesetzt. Folglich ist nur jedes achte Register in jedem RAM adressierbar.The validity memory 804- consists of between 1024 χ 1 RAMs of type 2125 H3 with one access time. a read operation from 30 ns. The validity memory 804- is implemented in the same manner as in the discussion the preferred embodiment 772 of the ABO register has been described. One of the two RAMs holds V-fields 622 for even EMNCEs 519, and the other contains V-fields 622 for odd EMNCEs 519. The seven most significant bits of IND 8I7 are used to ' to form the most significant bits of the addresses for both RAMs, and the remaining bits of the addresses are set to 0. As a result, only every eighth register in any RAM is addressable.

10.10.

AssAss

Wenn RMUC 517 Daten ausgibt, wählt eine auf das niedrigstwertige Bit von IND 817 ansprechende Logik entweder das Ausgangssignal aus dem RAM, der V-Felder für gradzahlige KMNCEs 519 enthält, oder das Ausgangssignal aus dem RAM, der V-Felder für ungradzahlige EMNCEs 519 enthält, in derselben Weise aus, wie für die ABC-Gültigkeits-RAMs VRE 797 und 7RO 795 beschrieben wurde. In ähnlicher Weise wählt, wenn Daten in das V-FeId 622 geschrieben werden, eine auf das niedrigstwertige Bit ansprechende Logik das eine RAM oder das andere aus in Abhängigkeit von dem Wert des niedrigstwertigen Bits. Wenn alle RMNCEs 519 ungültig gemacht werden müssen, werden beide RAMs ausgewählt, und die Register in beiden RAMs werden parallel ungültig gemacht. Die Adressen „für die Ungultigmachungsoperation werden durch die Adressierlogik 733 erzeugt, wie bei der Diskussion, des ABC 502 beschrieben wurde.When RMUC 517 outputs data, one chooses the least significant Bit of IND 817 responsive logic either the output signal from the RAM, the V-fields for even numbers KMNCEs 519 contains, or the output signal from the RAM, which contains V-fields for odd EMNCEs 519, in in the same manner as described for the ABC valid RAMs VRE 797 and 7RO 795. In a similar way selects when data is written to the V-Field 622, logic responsive to the least significant bit selects one RAM or the other depending on the value of the least significant bit. If all RMNCEs 519 are invalid need to be done, both RAMs are selected and the registers in both RAMs are invalidated in parallel. The addresses "for the invalidation operation are generated by addressing logic 733, as described in the discussion of ABC 502.

Der Gültigkeitsspeicher 804 wird mittels der VL-Leitung 810 geladen, die einen Wert 0 liefert, wenn RMNCER 627 (0) des RMNCE 519» zu dem das Gültigkeitsspeicherregister 8O5 gehört, geladen wird und einen Wert von 1, wenn jener RMNCE 519 ungültig gemacht wird. Das Ausgangssignal aus dem Gültigkeitsspeicher 804 geht zum Komparator 811.The validity memory 804 is loaded by means of the VL line 810, which supplies a value 0 if RMNCER 627 (0) of the RMNCE 519 to which the validity memory register 805 belongs is loaded and a value of 1 if that RMNCE 519 is invalidated . The output signal from validity memory 804 goes to comparator 811.

3.8.1.4 Der ABC-FLAGspeicher 8023.8.1.4 The ABC FLAG memory 802

Der ABC-FLAGspeicher 802 in der bevorzugten Ausführungsform 801 des RMNC besteht aus einem einzigen 1024 χ 1 RAM des Typs 2125 H1 mit einer Zugriffzeit bei der Leseoperation von 20 ns. Der ABC-FLAGspeicher 802 wird inThe ABC FLAG memory 802 in the preferred embodiment 801 of the RMNC consists of a single 1024 χ 1 RAM of type 2125 H1 with an access time during the read operation from 20 ns. The ABC FLAG memory 802 is used in

derselben Weise adressiert wie der Kennzeichenspeicher 802 (TAG STORE). Jedes adressiertare Register im ABC-FLAGspeicher 802 enthält ein ABCP-FeId 621 für den durch IND 817 spezifizierten RMETCE 519. Daten werden in den ABC-FLAGspeicher 802 aus dem Cache--uadebus eingegeben, und sie werden zum CTL 515 ausgegeben.addressed in the same way as the tag store 802 (TAG STORE). Each addressable register in the ABC-FLAG memory 802 contains an ABCP field 621 for the RMETCE 519 specified by IND 817 into the ABC-FLAG memory 802 from the cache - uadebus and they are output to the CTL 515.

3.8.1.5 Komparator 8113.8.1.5 Comparator 811

Der Komparator 811 besteht aus einer Logik, die folgendes bestimmt:The comparator 811 consists of a logic which determines the following:

- Ob der Wert in dem E-TAG-FeId 809, das dem durch DiD 817 spezifizierten RMCE 517 zugeordnet ist, derselbe ist wie der Vert auf dem TAG 819.- Whether the value in the E-TAG field 809 that the DiD 817 is assigned to specified RMCE 517, is the same as the vert on TAG 819.

- Ob das Gültigkeitsfeld 622 des RMNCE 51? anzeigt, daß RMNCE 517 gültig ist.- Whether the validity field 622 of the RMNCE 51? indicates that RMNCE 517 is valid.

Falls der Wert auf dem TAG 819 derselbe ist wie der in E-TAG 809 gespeichert, und falls das Gültipkeitsfeld 622 einen gültigen RMNCE angibt, liefert der Komparator 811 ein RMNC-Hit-Signal, das anzeigt, daß der Tabellenneme 403 einen Eintrag in RMNC 517 zum CTL 515 hat. Andernfalls liefert der Komparator 811 ein RMNC-Fehl(mis)-Signal· If the value on TAG 819 is the same as that stored in E-TAG 809, and if the validity field 622 indicates a valid RMNCE, the comparator 811 provides an RMNC hit signal, which indicates that the table name 403 has an entry in RMNC 517 for CTL 515. Otherwise, the comparator 811 supplies an RMNC error (mis) signal

Der Komparator 811 wird bei der bevorzugten Ausführungsform 301 dea RMIiG verwirklicht durch einen ersten Sata von U1 1ID-Gliedern, die die Bits des ersten au vergleichenden Elements und die negierten Bits des zweiten zu vergleichendenIn the preferred embodiment 301 dea RMIiG, the comparator 811 is implemented by a first Sata of U 1 1 ID elements which compare the bits of the first au comparing element and the negated bits of the second

Elements empfangen und an ein erstes NOR-Glied ausgeben, und durch einen zweiten Satz von UND-Gliedern, die die negierten Bit3 de3 eraten Elements und die Bits des zweiten Elements empfangen und an ein zweites NOR-Glied ausgeben, und durch ein UND-1JIied, dessen Eingangssignal die Ausgangesignale der zwei NOR-Glieder sind.Elements received and output to a first NOR gate, and by a second set of AND gates that receive the negated Bit3 de3 element and the bits of the second element and output to a second NOR gate, and by an AND- 1 JIied, whose input signal are the output signals of the two NOR gates.

3.9 Arbeitsweise der bevorzugten Ausführungsform 801 des EMWG3.9 Operation of the Preferred Embodiment 801 of the EMWG

Die Diskussion der Arbeitsweise der bevorzugten Ausführungsform 801 des BMNC befaßt sich zunächst mit ihrer Arbeitsweise während der Namenauflösungoperation und dann mit ihrer Arbeitsweise unter Mikrocodesteuerung.The discussion of the operation of the preferred embodiment 801 of the BMNC turns to theirs first How it works during the name resolution operation and then with their operation under microcode control.

3·9·1 · Nanienauf lösung bei der bevorzugten Ausführungs form 801 des BMNC3 x 9 x 1 x nanometer resolution in the preferred embodiment form 801 of the BMNC

Die Diskussion der Namenauflösung bei der bevorzugten Ausführungsform 801 des EMNC befaßt sich zunächst mit jenen Fällen, in denen die bevorzugte Ausführungsform 801 des RMNC einen einem Namen 401 entsprechenden 519 nicht enthält, und dann mit jenen, in denen sie einen derartigen RMNCi) 519 enthält.The discussion of name resolution in the case of the preferred Embodiment 801 of the EMNC deals first with those cases where the preferred embodiment 801 of the RMNC has a name 401 corresponding to it 519 does not contain, and then with those in which they such an RMNCi) 519 contains.

Der ersbe JTaIl, in dem die bevorzugte Ausführungsform 801 des RMNC einen einem Namen 401 entsprechenden 519 nicht enthält, liegt vor, wenn der Name 401 ein unmittelbarer Name 409 ist. In diesem Fall hat das --Feld 405 einen von binär 11 abweichenden Wert.The first table in which the preferred embodiment 801 of the RMNC does not contain a 519 corresponding to a name 401 occurs when the name 401 is an immediate name 409. In this case, the - field 405 has a value that differs from binary 11.

333457333457

CTL 515 spricht auf von 11 abweichende Werte dadurch an, daß es eine von EMlTC 5I7 abweichende Quelle für den Adressenversatzmultiplexer 525 aktiviert, und wie oben erläutert, spricht ABC 502 auf solche Werte durch Auswählen des Namenbuses 328 als die Quelle für EA 727 an. Somit wird, wenn dies durch Werte des NiDY-PeIds 405, die von binär 11 abweichen, gefordert wird, die durch die verbesserten Adreß-Caches 501 ausgegebene Adresse gebildet, ohne den HMNC 517 hiermit, zu befassen.CTL 515 responds to values deviating from 11 by that it activates a source other than EMITC 5I7 for the address offset multiplexer 525, and as above explains, ABC 502 responds to such values by selecting name bus 328 as the source for EA 727. Thus, if this is indicated by values of the NiDY PeIds 405, which differ from binary 11, the address output by the improved address caches 501 is required formed without involving the HMNC 517.

Im zweiten und dritten Pail hat das NTI-FeId 405 einen Wert von binär 11 und EMNC 517 mag einen dem Tabellen-. namen 403 entsprechenden EMNCE 519 enthalten. Das Fehlen eines solchen EMNCE 519 mag auf zweierlei Wegen festgestellt werden: Der EMNCE 519 kann ein V-PeId 622 haben, das so gesetzt ist, daß es einen ungültigen EMNCE 519 anzeigt, oder dem EMNC 519 mag ein E-TAG-PeId 802 zugeordnet sein, das einen Wert enthält, der von dem auf dem TAG 819 abweicht.In the second and third pail the NTI field 405 has one Value of binary 11 and EMNC 517 like one of the table. name 403 corresponding to EMNCE 519 included. The missing such an EMNCE 519 may be ascertained in two ways : The EMNCE 519 can have a V-PeId 622, which is set in such a way that it is an invalid EMNCE 519 indicates, or an E-TAG PeId 802 may be assigned to the EMNC 519 that contains a value that differs from that on TAG 819.

In beiden Fällen geben der Kennzeichenspeicher 806 (TAG STOEE) und der Gültigkeitsspeicher 622 ein V-PeId 622 und ein E-TAG 809 für EMNCE 519 zum Komparator 811 aus. Der Komparator 811 stellt die Tatsache fest, daß EMNCE 519 ungültig ist und liefert ein Pehl(miss)-Signal an CTL 515. Als Antwort auf dieses Pehlsignal erzeugt CTL 515 ein Signal für die Steuerung 327, das die Steuerung 327 veranlaßt, mit der Ausführung einer EMNC-Cache-Fehl-Mikrobefehlsequenz zu beginnen. Wie bei der Beschreibung des Gultigkextsspeichers 804 und des Kennzeichenspeichers 806 erwähnt wurde, haben die dieseIn both cases, the identifier memory 806 (TAG STOEE) and the validity memory 622 give a V-PeId 622 and an E-TAG 809 for EMNCE 519 to comparator 811. The comparator 811 detects the fact that EMNCE 519 is invalid and delivers a Pehl (miss) signal CTL 515. In response to this fault signal, CTL 515 generates a signal for controller 327 that the Controller 327 causes an EMNC cache miss microinstruction sequence to be executed to start. As with the description of the validkext memory 804 and the identifier memory 806 was mentioned, they have this

ORlGSiMAL IiSSSPECTgOORlGSiMAL IiSSSPECTgO

Komponenten bildenden HAMs eine höhere Operationsgeschwindigkeit als jene, die den Datenspeicher 8I3 bilden. Folglich beginnt die Ausführung der Cache-Fehl-Mikrocodesequenz zur selben Zeit, zu der die ungültigen Daten zum Adreßaddierer 513 geliefert werden, und die ungültigen Daten werden ignoriert.Components forming HAMs have a higher speed of operation than those constituting the data memory 8I3. As a result, the cache miss microcode sequence begins execution at the same time the invalid data is supplied to address adder 513, and the invalid data is ignored.

Die Cache-Fehl-Mikrobefehlsequenz gewinnt den Tabellennamen 4-03, der das Fehlsignal verursachte, aus der Namenfalle 4-31 wieder und verwendet dann den laufenden Wert in dem Namentabellenregister 332 und NT-IND-FeId 407 zur Lokalisierung des NTE 310 entsprechend dem Tabellennamen 403. Die Mikrobefehlsequenz cacht dann Information ein, die aus dem NTE 310 im RMNG 519 abgeleitet wurde, der durch IND 819 aus dem Tabellennamen 403, der das Fehlsignal verursachte, spezifiziert wird. Die Art, in der EMNCE 519 geladen wird, befindet sich unter Mikrobefehlsteuerung und entspricht der Art, wie NTE 310, das die Information enthält, geladen wird. Wenn der Ladevorgang abgeschlossen ist, verarbeitet die Mikrocodesequenz die eingecachte Information, wie sie dies im Fall eines Hit-Signals auf dem BMNG 517 tun würde, und liefert den gewünschten Deskriptor an den Deskriptorbus 333.The cache miss microinstruction sequence wins the table name 4-03, which caused the false signal, from the Name trap 4-31 again and then use the current one Value in the name table register 332 and NT-IND-Field 407 for the localization of the NTE 310 according to the Table names 403. The microinstruction sequence then caches Information derived from the NTE 310 in the RMNG 519 specified by IND 819 from the table name 403 that caused the miss signal. The way EMNCE 519 is loaded is in under micro-instruction control and corresponds to the way of how NTE 310 containing the information is loaded. When the loading is complete, processed the microcode sequence contains the cached information, as it does in the case of a hit signal on the BMNG 517 would, and delivers the desired descriptor to the descriptor bus 333.

Wenn RMNC 517 einen EMNGE 519 für einen Tabellennamen 403 enthält, hängt die Operation des HMNC 517 von dem Inhalt des ID-Felds 623 und des BC-Felds 625 im RMlTCE 519 ab. Allgemein gesprochen, spezifiziert das ID-FeId 623, ob eine Mikrocodeintervention erforderlich istIf RMNC 517 an EMNGE 519 for a table name 403, the operation of the HMNC 517 depends on that Contents of the ID field 623 and the BC field 625 in the RMITCE 519 from. Generally speaking, the ID field specifies 623 whether microcode intervention is required

333457!333457!

j c 3.j c 3.

zur Verarbeitung des Inhalts von EMTCE 519, und falls dies der Fall ist, welche Mikrocodesequenz durch den Prozessor 303 ausgeführt werden muß. Das BC-FeId 625 spezifiziert die Art, in der CTL 5^5 Eingangssignale für den Basismultiplexer 511 und den Adressenversatzmultiplexer 525 auswählen muß. Bei der bevorzugten Ausführungsform 801 hat das BC-FeId 625 die folgenden Codes:to process the content of EMTCE 519, and if this is the case, which microcode sequence is to be executed by processor 303. The BC field 625 specifies the way in which CTL 5 ^ 5 input signals for the base multiplexer 511 and the address offset multiplexer 525 must be selected. In the preferred embodiment 801, the BC field 625 has the following codes:

Code BedeutungCode meaning

000 direkte Adresse; Basis = FP 010 direkte Adresse; Basis = SDP 100 direkte Adresse; Basis = PBP000 direct address; Base = FP 010 direct address; Basis = SDP 100 direct address; Base = PBP

001 indirekte Adresse; Basis in ABC 111 komplette Adresse001 indirect address; Base in ABC 111 complete address

Es wird mit den Fällen begonnen, in denen eine riikrocodeintervention unnötig ist. Falls RIlNCE 519 eine komplette Adresse enthält, hat das BC-FeId 625 den Code 111 und die Adresse wird in dem Adressenversatzfeld 629 des RMITCER 627 (0) gespeichert. Das ID-FeId 623 spezifiziert keine Mikrocodeintervention und CTL 515 spricht auf das BC-FeId 625 an durch Auswählen von RMNC 517 als das Eingangssignal für den Adressenversatzmultiplexer 525 und dadurch, daß es den Adreßaddierer 513 veranlaßt, den Wert aus dem Adressenversatzmultiplexer 525 ungeändert zum Deskriptorbus 333 durchzulassen. Wie oben erwähnt wurde, ist die durch ROTC 517 aus IND 817 erzeugte Adresse jene von KMNCER 627 (0), und der Inhalt des Adressenversatzfeldes 629 aus RMNCER 627 (0) wird somit über den Adreßaddierer 513 an den Deskriptorbus 333 ausgegeben.It is started with the cases in which a riikrocodeintervention is unnecessary. If RIINCE 519 has a contains the complete address, the BC field 625 has the code 111 and the address is in the address offset field 629 of the RMITCER 627 (0). The ID field 623 does not specify any microcode intervention and CTL 515 responds to BC field 625 by selecting from RMNC 517 as the input to the address offset multiplexer 525 and in that it is the address adder 513 causes the value from the address offset multiplexer 525 to pass unchanged to descriptor bus 333. As mentioned above, it's through ROTC 517 from IND 817 generated address that of KMNCER 627 (0), and the content of the address offset field 629 from RMNCER 627 (0) is thus via the address adder 513 is output to the descriptor bus 333.

Falls EMNGE 519 einen Adressenversatz gegenüber IFP, SDP oder PBP enthält, hat das BC-FeId 625 die Codes 000, 010 oder 100, das IO-FeId 623 spezifiziert keine Mikro-. Codeintervention, und das Adressenversatzfeld 629 des HMNCER 627 (0) enthält den Adressenversatz. CTL 515 spricht auf die Codes im BC-FeId 625 durch Auswahl des Registers von ABRC 504, da*die durch das BC-FeId 625 spezifizierte Basisadresse enthält, als die Quelle für den Basismultiplexer 511 und durch die Auswahl von RMC 517 als das Eingangssignal für den Adressenversatzmultiplexer 525 an. Folglich addiert der Adreßaddierer 513 die. Basisadresse in dem spezifizierten Register des ABRC 504 zu dem Adressenversatz im RMNCER 627 (0) zur Erzeugung der gewünschten Adresse.If EMNGE 519 has an address offset from IFP, SDP or contains PBP, the BC field 625 has the codes 000, 010 or 100, the IO field 623 does not specify any micro. Code intervention, and the address offset field 629 of the HMNCER 627 (0) contains the address offset. CTL 515 speaks to the codes in the BC field 625 by selecting the register from ABRC 504, since the BC field 625 contains specified base address as the source for base multiplexer 511 and by selecting RMC 517 as the input to the address offset multiplexer 525 at. As a result, the address adder adds 513 the. Base address in the specified register of the ABRC 504 to the address offset in RMNCER 627 (0) to Generation of the desired address.

Falls RMNCE 519 einen Adressenversatz gegenüber einem Argumentzeiger 601 enthält, wird das ABCF-FeId 621 gesetzt, das BC-FeId 625 hat den Code 001, das Adressenversatzfeld 629 des RMNCER 627 (0) enthält den Adressenversatz, und das ADISP-FeId 639 jenes RMNCER enthält die Abweichung des Argumentenzeigers 601 gegenüber FP. Wie oben erwähnt wurde, ist der ABC-FLAGspeicher 802 ein 20-ns-RAM. Folglich erreicht der Wert des ABCF-Felds 621 CTL 515' vor den Werten des BC-Felds 625, des Adressenversatzfelds 629 oder des ADISP-Felds 639· Bei der bevorzugten Ausführungsform 801 spricht CTL 515 auf das ABCF-FeId 621 durch Erzeugung eines Signals an, das bewirkt, daß die Steuerung 327 den laufenden Maschinenzyklus des Prozessors 301 ausdehnt, bis der Wert des ADISP-Felds 639 als ein Eingangssignal für ABC 502 verwendet werden kann.If RMNCE 519 has an address offset from a Contains argument pointer 601, the ABCF field becomes 621 set, the BC field 625 has the code 001, the address offset field 629 of the RMNCER 627 (0) contains the address offset, and the ADISP field 639 contains that RMNCER the deviation of the argument pointer 601 from FP. As mentioned above, the ABC FLAG memory is 802 a 20 ns RAM. Consequently, the value of the ABCF field 621 reaches CTL 515 'before the values of the BC field 625, des Address offset field 629 or ADISP field 639 In the preferred embodiment 801, CTL speaks 515 on the ABCF field 621 by generating a signal, this causes the controller 327 to extend the current machine cycle of the processor 301 until the value of the ADISP field 639 can be used as an input to ABC 502.

m λ * * m λ * *

CTL 515 spricht auf den Code im BC-FeId 625 dadurch an, daß der Basismultiplexer 511 veranlaßt wirdv, sein Eingangssignal vom ABC 502 auszuwählen, und daß der Adressenversatzmultiplexer 525 veranlaßt wird, das Adressenversatzfeld 629 auszuwählen. Wie bei der Diskussion des ABC 502 erläutert wurde, bewirkt der Code auf dem NTY 821, daß der ABC 502 das durch BMC 3V gelieferte ADISP-FeId 639 als seinen Eingang auswählt. Wenn keine Mikrocodeintervention stattgefunden hat, kommt das ADISP-FeId 639 von BMCEE 627 (0). Wenn ein gültiger ABCE 502 entsprechend dem Wert des ADISP-Felds 639 existiert, gibt ABC 502 seinen Inhalt an den Basismultiplexer 511 aus· Der Adreßaddierer 513 kombiniert dann die Basisadresse aus ABC 502 mit dem Wert des Adressenversatzfeldes 629 in EMCEB 627 (0) zur Erzeugung der durch den Tabellennamen 4-03 repräsentierten Adresse. Falls ABC 502 nicht die Adresse enthält, die von dem Argumentzeiger abgeleitet ist, der durch das ADISP-FeId 639 spezifiziert ist, ist die Folge ein ABC-Cache-Fehlsignal und wird wie oben beschrieben behandelt, Nachdem der richtige ABCE 503 geladen worden ist, wird die beschriebene Operation wiederholt.CTL 515 is responsive to the code in the BC-field 625 of the fact that the base multiplexer is caused to 511 v to select its input from ABC 502, and that the address offset multiplexer is caused to 525 to select the address offset field 629th As explained in the discussion of ABC 502, the code on NTY 821 causes ABC 502 to select ADISP field 639 provided by BMC 3V as its input. If no microcode intervention has taken place, the ADISP field 639 comes from BMCEE 627 (0). If a valid ABCE 502 exists corresponding to the value of the ADISP field 639, ABC 502 outputs its content to the base multiplexer 511.The address adder 513 then combines the base address from ABC 502 with the value of the address offset field 629 in EMCEB 627 (0) for generation the address represented by the table name 4-03. If ABC 502 does not contain the address derived from the argument pointer specified by ADISP field 639, the result is an ABC cache miss and is handled as described above. After the correct ABCE 503 has been loaded, the described operation is repeated.

3.9.2' Unter Mikrocodesteuerung ausgeführte Operationen der bevorzugten Ausführungsform 801 des BMNC3.9.2 'Operations performed under microcode control the preferred embodiment 801 of the BMNC

Unter Mikrocodesteuerung führt die bevorzugte Ausführungsform 801 des BMC die folgenden Operationen aus:The preferred embodiment performs under microcode control 801 of the BMC performs the following operations:

- RMNCER laden: EMiTCER 627 O, 1, 2, oder 3 des durch IND 815 spezifizierten BMFCE 519 wird aus dem Cache-Ladebus 527 geladen. Das Mikrokommando spezifiziert den gewünschten BMCTCEH 627.- Load RMNCER: EMiTCER 627 O, 1, 2, or 3 of the BMFCE 519 specified by IND 815 is taken from the cache load bus 527 loaded. The microcommand specifies the desired BMCTCEH 627.

- RMIiGE ungültig machen: RMNCE 519, spezifiziert durch IND 817» wird ungültig gemacht durch Setzen des V-Felds 622 so, daß es anzeigt, daß RMNCE 5I9 ungültig ist.- Make RMIiGE invalid: RMNCE 519, specified by IND 817 'is invalidated by setting V field 622 to indicate that RMNCE 5I9 is invalid is.

- Flush: RMNC 517 und ABC 502 werden ungültig gemacht. Die Adressen für die Ungultigmachung werden erzeugt, wie bei der Diskussion des ABC 502 beschrieben wurde.- Flush: RMNC 517 and ABC 502 are made invalid. The addresses for the invalidation are generated, as described in the discussion of ABC 502.

- RMNCER auflösen: CTL 515 spricht auf RMNCER 627 0, 1, oder 3 des durch IND 8I7 spezifizierten RMNCE 519 in derselben Weise an, wie es auf RMNCER 627 0 bei der Auflösungsoperation anspricht.- Resolve RMNCER: CTL 515 speaks to RMNCER 627 0, 1, or 3 of the RMNCE 519 specified by IND 8I7 in in the same way as it responds to RMNCER 627 0 in the resolve operation.

- RMNCER lesen: Der Inhalt von RMNCER 627 0, 1, 2, oder des durch IND 817 spezifizierten RFlNCE 519 wird direkt auf den Deskriptorbus 333 gegeben. Das Mikrokommando spezifiziert den gewünschten RMNCER 627.- Read RMNCER: The content of RMNCER 627 0, 1, 2, or the RFINCE 519 specified by IND 817 is sent directly given to descriptor bus 333. The microcommand specifies the desired RMNCER 627.

Die Operationen werden in der obigen Reihenfolge diskutiert. The operations are discussed in the order above.

3.9.2.1 Die Operation RMNCER laden3.9.2.1 Load the RMNCER instruction

Die Operation RMNCER laden wird durch die RMNC-Fehl-Mikrobefehlsequenz verwendet. RMNCE 519, das geladenThe RMNCER load operation is carried out by the RMNC miss microinstruction sequence used. RMNCE 519 being loaded

333457$$ 333,457

wird, wird ausgewählt durch den Wert auf dem Namenbus 328 während der Ladeoperation; EfJlTGER 62? innerhalb . BMNCE 519 wird durch das Mikrokommando für den Ladebefehl spezifiziert. Falls nicht RMNCER 627 (0) für die Ladeoperation spezifiziert ist, ergibt sich ein EMNC-Fehlsignal, falls der Wert im E-TAG 809 nicht mit dem Wert auf dem TAG 819 übereinstimmt, oder falls das V-FeId 622 in RMNCE 519 einen ungültigen RMNCE 519 spezifiziert. Wenn eine Ladeoperation an RMNCER 627 0 ausgeführt wird, setzt RMNC 517 automatisch das BC-FeId 625 auf denselben Wert wie das Basisfeld 641, E-TAG 809 auf den Wert von TAG 819, und das V-FeId 622 so, daß es einen gültigen RMNCE 519 spezifiziert. Falls das Basisfeld 641 eine in ABC 502 eingecachte Adresse als eine Basis spezifiziert, setzt RMNC 517 auch automatisch ABCF so, daß es so spezifiziert. Bei der bevorzugten Ausführungsform 801 von RMNC wird das ID-FeId 623 automatisch gesetzt, falls RMNCER 627 (0) oder EMNCER 627 O) das letzte geladene Register ist; falls RMNCER 627 (2) oder RMNCER 627 (3) das zuletzt geladene Register ist, kann die Mikrobefehlsequenz den Wert des ID-Felds 623 spezifizieren. is selected by the value on name bus 328 during the load operation; EfJlTGER 62? within . BMNCE 519 is activated by the microcommand for the load command specified. If RMNCER 627 (0) is not specified for the load operation, the result is a EMNC error signal if the value in E-TAG 809 is not included matches the value on TAG 819, or if the V-Field 622 in RMNCE 519 is an invalid RMNCE 519 specified. If a load operation is carried out on RMNCER 627 0, RMNC 517 automatically sets the BC field 625 to the same value as the base field 641, E-TAG 809 to the value of TAG 819, and the V-Field 622 so that it specifies a valid RMNCE 519. If the base field 641 specifies an address cached in ABC 502 as a base, RMNC 517 also automatically sets ABCF so that it specifies so. In the preferred embodiment 801 of RMNC, the ID field 623 becomes automatic set if RMNCER 627 (0) or EMNCER 627 O) the last loaded register is; if RMNCER 627 (2) or RMNCER 627 (3) is the last loaded register, can the microinstruction sequence specify the value of the ID field 623.

3.9·2.2 Die Operation zum Ungültigmachen von RMNCE und die Flush-Operation3.9 · 2.2 The RMNCE invalidation operation and the flush operation

Die Operation zum TJngultigmachen von RMNCE wird verwendet, wenn es erforderlich ist, einen einzigen RMNCE 519 ungültig zu machen, beispielsweise, um einen RMNGThe RMNCE invalidation operation is used when a single RMNCE is required 519, for example to invalidate an RMNG

als ungültig zu markieren, "bis alle BMNCERs 627 geladen worden sind. Der EMCTGE, der gerade ungültig gemacht wird, wird durch den Wert von IUD 817 spezifiziert;· die Operation setzt einfach das "V-FeId 622 des spezifizierten EMNGE 519 so, daß es einen ungültigen EMFCE spezifiziert.mark as invalid "until all BMNCERs 627 are loaded have been. The EMCTGE that was just invalidated is specified by the value of IUD 817; the operation simply sets the "V-field 622 of the specified EMNGE 519 so that there is an invalid EMFCE specified.

Die Flush-Operation wird verwendet, wenn alle Einträge in den verbesserten Adreß-Caches 501 ungültig gemacht werden müssen. Ni1G 753 und FLC 729 liefern Adressen von RMNCEs 610, wie bei der Diskussion des ABC 602 beschrieben wurde, und während jeder EMNCE 610 adressiert wird, wird sein V-Feld 622 auf O gesetzt, wie dies bei der Diskussion des Gültigkeitsspeichers 804 erklärt wurde. Wie oben erläutert, wird eine derartige allgemeine Uhgültigmachung nur benötigt, wenn die Ausführung eines Aufruf- oder Eeturn-Befehls zu einem Wechsel des Werts von SDP, PBP oder NTP führt, oder wenn das Computersystem 301 ein Programm ausführt, das einen anderen Stapel 317 benötigt.The flush operation is used when all entries in the enhanced address caches 501 need to be invalidated. Ni 1 G 753 and FLC 729 provide addresses of RMNCEs 610 as described in the discussion of ABC 602, and while each EMNCE 610 is being addressed, its V field 622 is set to 0 as explained in the discussion of validity memory 804 became. As explained above, such a general validation is only required if the execution of a call or return instruction results in a change in the value of SDP, PBP or NTP, or if the computer system 301 is executing a program that requires a different stack 317 .

3.9.2.3 Die Operation RMNCER lesen und die Operation RMNCEE auflösen3.9.2.3 Read the RMNCER instruction and resolve the RMNCEE instruction

Die Operation RMNCER lesen gibt den Inhalt des RMNCER 627, äer spezifiziert ist durch das Mikrokommando in RMNCE 519, der durch den Wert auf dem Namenbus 328 spezifiziert ist, auf den Deskriptorbus 333 aus. Falls der Wert im E-TAG-FeId 809 nicht mit dem Wert des TAGThe read RMNCER instruction returns the contents of the RMNCER 627, which is specified by the microcommand in RMNCE 519 identified by the value on name bus 328 is specified on the descriptor bus 333. If the value in the E-TAG field 809 does not match the value of the TAG

333457333457

übereinstimmt, oder falls der spezifizierte RMNOE 519 ungültig ist, ergibt sich ein RMNC-Fehlsignal und es wird die RMNC-Fehl-Mikrobefehlsequenz ausgeführt.matches, or if the specified RMNOE 519 is invalid, an RMNC false signal results and it the RMNC miss microinstruction sequence is executed.

Bei der Operation EPWCEH auflösen, spezifiziert das Mikrokommando einen RMNCEH 627 im HMNCE 519, der durch den Wert auf dem Namenbus 328 adressiert wird. Bei der Operation spricht CTL 515 auf den Inhalt des Basisfelds 641 in dem spezifizierten HMNCER 627 in derselben Weise an, wie es auf den Inhalt des BC-Felds 625 bei der Auflösungsoperation anspricht. Somit bewirkt CTL 515» daß der Adressenversatzmultiplexer 525 das Adressenversatzfeld 629 auswählt, und daß der Basismultiplexer 5.11 ein Register in ABRC 504 oder das Ausgangssignal von ABC 502 auswählt. Falls es keinen RMNCE 519 entsprechend dem Wert auf dem Namenbus 328 gibt, ist ein RMNC-.Fehlsignal die Folge.When the EPWCEH operation is resolved, the microcommand specifies an RMNCEH 627 in the HMNCE 519, which is carried out by the value is addressed on name bus 328. In the Operation speaks CTL 515 on the content of the base field 641 in the specified HMNCER 627 in the same way as it relates to the content of BC field 625 during the resolution operation appeals to. Thus, CTL 515 does "that the address offset multiplexer 525 the address offset field 629 and that the base multiplexer 5.11 selects a register in ABRC 504 or the output of ABC 502 selects. If there is no RMNCE 519 accordingly the value on name bus 328 is an RMNC. miss signal the consequence.

3.9.3 Beispiel der Operation des EMNC 517 unter Mikrοcodesteuerung - Fig. 93.9.3 Example of the operation of the EMNC 517 under Microcode control - Fig. 9

Die Art, in der RMNC 517 unter Mikrocodesteuerung arbeitet, kann dadurch dargestellt werden, daß beschrieben wird, wie ein Tabellenname 4-03, der ein Element eines Gebiets spezifiziert, aufgelöst wird. NTE 310 in dem Computersystem 301 für ein Element eines Felds spezifiziert drei Dinge:The way in which the RMNC 517 operates under microcode control can be represented by describing how a table name 4-03 is an element of a Area specified, is resolved. NTE 310 specified in computer system 301 for an element of a field three things:

- Den Adressenversatz des Felds (array) gegenüber einer Basisadresse.- The address offset of the field (array) compared to a base address.

ORIGINAL INSPECTEDORIGINAL INSPECTED

• ο β ··• ο β ··

- Den Index des 'Feldelements.- The index of the 'field element.

- Die Größe des Seidelements.- The size of the silk element.

In den NTEs 310 im Computersystem 3Oi können die Basisadresse, der Wert des Index, und die Abmessung jeweils durch einen Namen 401 repräsentiert werden. Für das vorliegende ,Beispiel wird angenommen, daß die Basisadresse für das Feld SDP ist, daß der Adressenversatz 64 ist, daß der Feldindex das erste Argument ist, das verwendet wird, um die den Tabellennamen 403 enthaltende Prozedur aufzurufen, und daß die Größe des Seidelements 80'ist. Da der "Feldindgx,- ein Argument ist,.kann er in NTE 310 durch einen einen Argumentzeiger 601 spezifizierenden unmittelbaren Namen 409 repräsentiert werden« Wenn der Tabellenname 403 das erste Mal dem HMNC 517 angeboten wird, tritt ein RMNC-Fehlsignal auf und der Mikrocode lädt RMNCE 519 entsprechend dem Tabellennamen 403 mit Information vom NTE 310.In the NTEs 310 in the computer system 30i, the base address, the value of the index, and the dimension, respectively can be represented by a name 401. For the present example it is assumed that the base address for the field SDP is that the address offset is 64 that the field index is the first argument used to the procedure containing the table name 403 and that the size of the silk element is 80 '. Since the "fieldindgx, - is an argument, it can be entered in NTE 310 be represented by an immediate name 409 specifying an argument pointer 601 «If the Table name 403 is offered to the HMNC 517 for the first time an RMNC miss occurs and the microcode RMNCE 519 loads with it according to table name 403 Information from NTE 310.

Fig. 9 zeigt den resultierenden RMNCE 519. Für die Zwecke dieses Beispiels wird angenommen, daß RMNCER 627 (0) Information enthält, aus der die Adresse des Index herausgelöst werden kann, daß RMNCER 627 (1) die Elementgröße enthält, und daß RMNCER 627 (2) Information enthält, aus der die Adresse des Felds herausgelöst werden kann. RMNCER 627 (3) wird nicht verwendet. Andere Anordnungen sind natürlich möglich. Im allgemeinen jedoch wird die Information für den Index in RMNCER 627 (0) plaziert, weil der Indexwert benötigt wird, um die Adresse desFigure 9 shows the resulting RMNCE 519. For purposes In this example it is assumed that RMNCER 627 (0) contains information from which the address of the index is extracted that RMNCER 627 (1) contains the element size and that RMNCER 627 (2) contains information from which the address of the field can be extracted. RMNCER 627 (3) is not used. Other arrangements are of course possible. In general, however, the information for the index is placed in RMNCER 627 (0), because the index value is needed to find the address of the

Feldelements zu "berechnen, und daher aus dem SpeicherField element to "compute, and therefore from memory

305 abgerufen werden muß, während die Adresse des Felds selbst gerade aus der Information in HMNCER 627 (2) erhalten wird.305 must be obtained while the address of the Field itself is just obtained from the information in HMNCER 627 (2).

Das ABCF-FeId 621 von RMNCER 627 (O) wird so gesetzt, daß es anzeigt, daß ABC 502 die Basis liefert; das ID-FeId 623 enthält einen Wert, aus dem die Steuerung 327 die Speicherstelle der Mikrobefehlsequenz ableiten kann, die zum Verarbeiten der EMNCEs 617 für Felder verwen-. det wird; das BC-FeId 625 und das Basisfeld 641 enthalten beide den Code 001, der anzeigt, daß eine Basis in ABC eingecacht istj das Adressenversatzfeld 629 enthält den Wert 0, und das ADISP-FeId 639 spezifiziert den Argumentzeiger 601 mit einem Adressenversatz von -128 gegenüber FP. BMNCER 627 (1) enthält nur die Elementgröße, nämlich 80, im Adressenversatzfeld 629. Das Basisfeld 64-1 und das ADISP-FeId 639 sind unbenutzt. In RMNCER 627 (2) enthält das Adressenversatzfeld 629 den Wert 64, den Adressenversatz des !Felds gegenüber SDP, und- das Basisfeld 641 enthält den Code 010, der eine direkte Adresse, basierend auf SDP, spezifiziert. Das ADISP-FeId 639 ist unbenutzt.The ABCF field 621 of RMNCER 627 (O) is set in such a way that that it indicates that ABC 502 provides the base; the ID field 623 contains a value from which the controller 327 can derive the memory location of the microinstruction sequence, which are used to process the EMNCEs 617 for fields. is det; the BC field 625 and the base field 641 contain both the code 001, which indicates that a base is cached in ABCj the address offset field 629 contains the Value 0, and the ADISP field 639 specifies the argument pointer 601 with an address offset of -128 compared to FP. BMNCER 627 (1) only contains the element size, namely 80, in the address offset field 629. The base field 64-1 and the ADISP field 639 are unused. In RMNCER 627 (2), the address offset field 629 contains the value 64 den Address offset of the! Field compared to SDP, and that Base field 641 contains the code 010 which specifies a direct address based on SDP. The ADISP field 639 is not used.

Wenn der Tabellenname 403 entsprechend dem beispielhaften RMNCE 519 auf dem Namenbus 328 erscheint, tritt ein RMNC-Hit-Signal auf. Als Antwort auf das BC-FeId 625 von RMNCER 627 (0) veranlaßt CTL 515 den Adressenversatz multiplexer 525j das Adressenversatzfeld 629 als seinen Eingang auszuwählen, und veranlaßt den BasismultiplexerIf the table name is 403 according to the example RMNCE 519 appears on name bus 328, enters RMNC hit signal on. In response to the BC field 625 of RMNCER 627 (0) causes CTL 515 the address offset multiplexer 525j the address offset field 629 as its Select input and cause the base multiplexer

ORIGINAL INSPECTEDORIGINAL INSPECTED

ABC 501 als seinen Eingang auszuwählen. ABC 502 verwendet den Wert von ADISP 639, um ABCE 503 im laufenden ABC-Rahmen 607 zu lokalisieren, der die durch den ersten Argumentzeiger 601 im obersten Bahmen 321 repräsentierte Adresse enthält, und gibt die Adresse aus. Der Adreß-· addierer 503 addiert die im Adressenversatz 629 enthaltene O'zu der Adresse aus ABC 502, und daher wird die dem Argumentzeiger 601 für das erste Argument ent- · sprechende Adresse zum Deskriptorbus 333 ausgegeben.Select ABC 501 as its input. ABC 502 used the value of ADISP 639 to ABCE 503 in the current ABC frame 607, which is represented by the first argument pointer 601 in the top frame 321 Contains address and outputs the address. The address adder 503 adds those contained in the address offset 629 O'to the address from ABC 502, and therefore the argument pointer 601 for the first argument is Speaking address to descriptor bus 333 is output.

Gleichzeitig wird der Wert des ID-Felds 623 zur Steuerung 627 ausgegeben, und die Steuerung 627 beginnt die Ausführung der Mikrobefehlseq.uenz für die Verarbeitung der Feld - BMNCEs 519· Die Mikrobefehlsequenz beginnt, indem sie die Adresse, die aus der'Auslösung von BMNCER 627 0 erhalten wurde, zur Ausführung einer Speicher-Lese-Operation verwendet. Die Leseoperation wird den Wert des .Feldindex zum Deskriptorprozessor 329 zurückbringen. Während des Wartens auf das Wiederauftreten des Indexwerts verwendet die Mikrobefehlsequenz die Operation BMNCER auflösen für EMNCER 627 (2), um die .Feldadresse zu erhalten. Bei dieser Operation wird das Basisfeld 641 an CTL 5^5 ausgegeben, das in der Weise anspricht, daß es den Basismultiplexer 511 zur Auswahl des SDP-Begisters 507 als seinen Eingang veranlaßt und den Adressenversatzmultiplexer 525 zur Auswahl des Adressenversatzfeldes 629 aus dem RMNCER 627 (2) veranlaßt. Der Adreßaddierer 513 addiert dann den Wert 64, der in dem Adressenversatzfeld 629 ist, zu dem laufenden Wert des. SDP-Registers. 507 und gibt das Resultat an den Deskriptorbus 333 aus.At the same time, the value of the ID field 623 becomes the control 627 is output and the controller 627 begins executing the microinstruction sequence for processing the Field - BMNCEs 519 The microinstruction sequence begins by getting the address obtained from the triggering of BMNCER 627 0 was used to perform a memory read operation. The read operation will be the Return the value of the .field index to the 329 descriptor processor. While waiting for the index value to recur, the microinstruction sequence uses the operation Resolve BMNCER for EMNCER 627 (2) to get the .field address to obtain. In this operation, the base field 641 is output to CTL 5 ^ 5, which responds in such a way that there is the base multiplexer 511 for selecting the SDP master 507 as its input and the address offset multiplexer 525 to select the address offset field 629 from the RMNCER 627 (2). Address adder 513 then adds the value 64 that is in the address offset field 629, at the current value of the. SDP register. 507 and outputs the result to the descriptor bus 333.

Die Mikrobefehlsequenz speichert die auf diese Weise erzeugte .Feldadresse in einem Register im Deskriptor-Prozessor 329 und verwendet die RMNCER-Lesen-Operation, um die Elementgröße aus dem Adressenversatzfeld 629 des RtWCER 627 (1) zu erhalten..Die RWiTCER-Lesen-Operation gibt einfach den Inhalt von RMDTCER 627 (1) an den Deskriptorbus 333 aus, und die Mikrocodesequenz manipuliert ihn, um den Wert des Adressenversatzfeldes 629 zu erhalten. Spätestens zu diesem Zeitpunkt ist der Indexwert vom Speicher 305 zurückgekommen, und die Mikrobefehlsequenz verwendet Komponenten des Deskriptorprozessors 329 zum Berechnen der Adresse des Feldelements durch ■ Multiplizieren des Indexwerts mit der KLeinentgroße und * durch Addition des Resultats zu der JFeldadresse. ■The microinstruction sequence stores the field address generated in this way in a register in the descriptor processor 329 and uses the RMNCER read operation to obtain the element size from the address offset field 629 of the RtWCER 627 (1). The RWiTCER read operation simply outputs the contents of RMDTCER 627 (1) to descriptor bus 333 and the microcode sequence manipulates it to obtain the value of address offset field 629. At this point at the latest, the index value has come back from memory 305, and the microinstruction sequence uses components of descriptor processor 329 to calculate the address of the field element by multiplying the index value by the small size and * by adding the result to the J field address. ■

Die beschriebene Eincachvorrichtung besteht aus einem ersten Cache, einem zweiten Cache, der mit dem ersten Cache verbunden ist, aus Registern zum Speichern von Daten, einem Addierer, der Eingangssignale aus einem mit dem ersten Cache verbundenen ersten Multiplexer und aus einem mit dem zweiten Cache und den Registern verbundenen zweiten Multiplexer empfängt, und aus einer Steuervorrichtung, die mit dem ersten Cache, dem ersten Multiplexer und dem zweiten Multiplexer verbunden ist. Der erste Cache gibt als Antwort auf einen Schlüssel einen Cacheeintrag aus. Der Cacheeintrag enthalt einen ersten Adressenversatzwert, einen Basis-Spezifizierer, der entweder eines der Register oder den zweiten Cache spezifiziert, und im .Fall von Einträgen, die den zweiten Cache spezifizieren, einen zweiten Adressenversatzwert. Der erste Adressenversatzwert wird an den ersten Multiplexer ausgegeben, der Basis-Spezifizierer wird an die Steuervorrichtung ausgegeben, und der zweite Adressenversatz, falls vorhanden, wird an den zweiten Cache ausgegeben. Die SteuervorrichtungThe caching device described consists of a first one Cache, a second cache connected to the first cache, made up of registers for storing data, a Adder, the input signals from a first multiplexer connected to the first cache and from one to the second Cache and the registers connected to the second multiplexer, and from a control device connected to the first Cache, the first multiplexer and the second multiplexer is connected. The first cache gives in response to one Key out a cache entry. The cache entry contains a first address offset value, a base specifier specifying either one of the registers or the second cache, and in the case of entries that specify the second cache specify a second address offset value. The first address offset value is output to the first multiplexer, the base specifier is output to the controller, and the second address offset, if any, is issued to the second cache. The control device

antwortet auf den Basis-Spezifizierer dadurch, daß der erste Multiplexer den durch den Cache ausgegebenen Adressenversatzwert auswählt, und bewirkt, daß der zweite Multiplexer einen der Werte auswählt, die in den Eegistern enthalten sind, oder den durch den zweiten Cache in Reaktion auf den zweiten Adressenversatz ausgegebenen Wert auswählt. Der Addierer addiert dann den durch den ersten Multiplexer ausgewählten Wert zu dem durch den zweiten Multiplexer ausgewählten Wert und gibt aas Ergebnis aus.responds to the base specifier by the first multiplexer issuing the Address offset value and causes the second multiplexer to select one of the values specified in contained in the E registers, or by the second Cache in response to the second address offset selects value returned. The adder then adds that value selected by the first multiplexer to the value selected by the second multiplexer and gives aas result.

Die Erfindung kann auch noch in anderen speziellen Ausführuncsformen verwirklicht sein, ohne den Kern und die wesentlichen Eigenschaften der Erfindung zu verlassen. Daher sind die vorliegenden Ausführungsformen in jeder Hinsicht nur zur Erläuterung vorgesehen und sollen keine Beschränkung bewirken.The invention is also capable of other specific embodiments be realized without departing from the essence and essential characteristics of the invention. Therefore, the present embodiments are intended to be illustrative in all respects only and are not intended to be Cause restriction.

Claims (1)

PatentansprücheClaims M.JVorrichtung zum Einspeichern ("Eincachen") bestimmter Datenelemente in einen Cache in einer datenverarbeitenden Einheit, die auf bestimmte Datenelemente anspricht, die eine erste Komponente enthalten, deren Wert sich als Antwort auf eine erste Operation der datenverarbeitenden Einheit ändert, und eine zweite Komponente, deren Wert sich als Antwort &uf eine zweite Operation der datenverarbeitenden Einheit ändert,
dadurch gekennzeichnet, daß die Eincachvorrichtung aufweist:
M.JApparatus for storing ("caching") certain data elements in a cache in a data processing unit which is responsive to certain data elements which contain a first component, the value of which changes in response to a first operation of the data processing unit, and a second component whose value changes as a response to a second operation of the data processing unit,
characterized in that the caching device comprises:
(1) Einen ersten Cache zum Speichern und Ausgeben der ersten Komponenten;(1) A first cache for storing and outputting the first components; (2) einen zweiten Cache zum Speichern und Ausgeben der zweiten Komponenten; und(2) a second cache for storing and outputting the second components; and (3) eine ein Ausgangssignal kombinierende Einrichtung, die mit dem ersten Cache und dem zweiten Cache verbunden ist und die von dem ersten Cache ausgegebene erste Komponente und die von dem zweiten Cache ausgegebene zweite Komponente empfängt und diese beiden Komponenten zur Bildung des bestimmten Datenelements kombiniert.(3) an output combining means connected to the first cache and the second cache and the first component output from the first cache and that output from the second cache second component receives and these two components to form the specific data element combined. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die zentrale datenverarbeitende Einheit Aufruf- und Return-Operationen ausführt; daß die "bestimmten Datenelemente Adressen sind; daß die erste Komponente eine Basisadresse ist; daß die erste Operation jede einzelne der genannten Aufruf- und Return-Operationen ist; daß die zweite Komponente ein Adressenversatz ist; undDevice according to claim 1, characterized in that that the central data processing unit executes call and return operations; that the "particular data items are addresses; that the first component is a base address;" that the first operation is any one of said call and return operations; that the second component is an address offset; and daß die zweite Operation durch "bestimmte Operationen der genannten Aufruf- und Return-Operationen gebildet wird.that the second operation by "certain operations the named call and return operations is formed. Vorrichtung nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Kombiniereinrichtung den Adressenversatz zu der Basisadresse zwecks Erzeugung der Adresse addiert.Device according to claim 1 or 2, characterized in that that the combining means the address offset to the base address for the purpose of generating the Address added. Vorrichtung nach Anspruch 2, dadurch gekennzeichnet, daß der zweite Cache bestimmte Adressen enthält, deren Werte sich nur als Reaktion auf die bestimmten Befehle aus den genannten Aufruf- und Return-Befehlen ändern; undDevice according to Claim 2, characterized in that the second cache contains certain addresses their values are only in response to the specific commands from the call and return commands mentioned change; and daß die Kombiniereinrichtung die Adresse aus einer der bestimmten Adressen ohne Verwendung der Basisadresse erzeugt.that the combining device takes the address from one of the specific addresses without using the base address generated. 5« Vorrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet,5 «device according to one of the preceding claims, characterized, daß der erste Cache eine erste Einrichtung zum Ungültigmachen in Abhängigkeit von den ersten Operationen aufweist; undthat the first cache has a first means of invalidation depending on the first Operations; and daß der zweite Cache eine zweite Einrichtung zum Ungültigmachen in Abhängigkeit von den zweiten Operationen aufweist.that the second cache has a second means for invalidating depending on the second Operations. 6. Vorrichtung, insbesondere nach einem der vorhergehenden Ansprüche, zur Verwendung in einem Digital-Computer sy st em mit6. Device, in particular according to one of the preceding claims, for use in a digital computer sy st em with (1) einer Verarbeitungseinrichtung zur Ausführung von Operationen mit Daten als Antwort auf Befehle;(1) processing means for performing operations on data in response to commands; (2) einer Speichereinrichtung zum Speichern von Datenelementen der Daten und der Befehle und zum Empfangen der Datenelemente aus der.Verarbeitungseinrichtung und zum Liefern der Datenelemente und der Befehle an die Verarbeitungseinrichtung als Antwort auf bestimmte Signale aus der Verarbeitungseinrichtung einschließlich Adressen, die Speicherplätze in der Speichereinrichtung spezifizieren, und(2) a memory device for storing data items of the data and the commands and for Receiving the data elements from the processing device and for delivering the data elements and the commands to the processing device in response to certain signals from the processing device including addresses, the memory locations specify in the storage device, and (3) einer Nachrichtenübertragungseinrichtung zum Übertragen der Befehle, der bestimmten Signale und der Datenelemente zwischen der Verarbeitungseinrichtung und der Speichereinrichtung, und.wobei(3) a message transmission device for transmitting the commands, the specific signals and the data elements between the processing device and the storage device, and.wherein die Speichereinrichtung enthältthe storage device contains (a) Prozeduren, die mindestens die befehle enthalten, und(a) procedures that contain at least the commands, and Cb) einen Stapelspeicher zum Speichern der "bei der Ausführung der Prozeduren durch die Yerarbeitungseinrichtung verwendeten Datenelemente, wobei der Stapelspeicher einen Rahmen aufweist, der jeder *unbeendeten Ausführung (execution) zugeordnet ist, wobei die Rahmen einen mit der Ausführung der Prozedur, für die die Verarbeitungseinrichtung gerade die Befehle ausführt, zugeordneten obersten Rahmen umfassen, die Operationen mindestens umfassenCb) a stack to store the "when executing the procedures data elements used by the processing device, the Stack has a frame that every * unfinished execution (execution) is assigned, whereby the framework is associated with the execution of the Procedure for which the processing device is currently executing the instructions include associated top frames, which at least include operations (a) eine Aufruf-Operation zum Aussetzen(a) a call operation to suspend der gerade in der Ausführung begriffenen Ausführung, zum Beginnen einer anderen Ausführung, und zum Schaffen des der anderen Ausführung zugeordneten Rahmens undthe execution in progress, to start another Execution, and to create the frame assigned to the other execution and (b) eine Return-Operation zum Beenden der anderen Ausführung und zum Wiederaufnehmen der Ausführung der durch die die andere Ausführung beginnende Aufruf-Operation ausgesetzten Prozedur(b) a return operation to terminate the other execution and resume the execution of the procedure suspended by the call operation beginning the other execution bestimmte Adressen spezifiziert sind durchcertain addresses are specified by (a) eine Basisadressenkomponente, die eine Basis der Adressen spezifiziert, und(a) a base address component specifying a base of the addresses, and (b) eine Adressenversatzkomponente, die einen Adressenversatz gegenüber der Basisadresse spezifiziert, die durch die Basisadreßkomponente spezifiziert ist, und(b) an address offset component which is an address offset from the Base address specified as specified by the base address component is and * fr* fr die "bestimmten Adressen rahmen-basierte Adressen umfassen, die durch eine Rahmen-Basis-Komponente der Basiskomponenten und der Adressenversatzkomponenten spezifiziert werden, die bei der Addition zu der Basiskomponente die Adressen in dem obersten Rahmen spezifizieren, dadurch gekennzeichnet, daß die in der Prozessoreinrichtung vorgesehene Eincachvorrichtung zum Eincachen der rahmen-basierten Adressen aufweist:The "specific addresses" include frame-based addresses defined by a frame-based component of the basic components and the address offset components used in the Addition to the basic component specify the addresses in the top frame, characterized in that the caching device provided in the processor device for Caching the frame-based addresses includes: (1) eine Registereinrichtung zum Speichern der Rahmen-Basis-Komponente und zum Ausgeben der Rahmen-Basis-Komponente;(1) register means for storing the frame base component and outputting the Frame base component; (2) einen Cache zum Speichern der Adressenversatzkomponenten und zum Ausgeben der Adressenversatzkomponenten; und(2) a cache to store the address offset components and for outputting the address offset components; and (3) eine Ausgangssignale kombinierende Einrichtung, die mit der Registereinrichtung und dem Cache zum Empfangen der Rahmen-Basis-Komponente aus der Registereinrichtung und zum Empfangen des Adressenversatzes aus dem Cache verbunden ist und die Rahmen-Basis-Komponente und den Adressenversatz zur Bildung der rahmen-basierten Adressen kombiniert.(3) an output combining means connected to the register means and the cache for Receiving the frame base component from the register means and receiving the address offset from the cache and the frame base component and the address offset combined to form the frame-based addresses. 7-. Vorrichtung nach einem der vorhergehenden Ansprüche, insbesondere nach Anspruch 6, dadurch gekennzeichnet, daß die Vorrichtung aufweist:7-. Device according to one of the preceding claims, in particular according to claim 6, characterized in that the device has: (1) eine Ladeeinrichtung zum Laden der Kegistereinrichtung als Antwort auf jede Aufruf-Operation und jede Return-Operation, wobei die Ladeeinrichtung(1) a loading device for loading the kegister device in response to each call operation and each return operation, the loader ti · *ti * auf jede Aufruf«Operation durch Laden der Rahmen-Basis-Eomponente für den obersten Rahmen entsprechend der durch die Aufruf-Operation gerade "begonnenen Ausführung in die Registereinrichtung anspricht, und auf jede Return-Operation durch Laden der Rahmen-Basis-Komponente für den obersten Rahmen entsprechend der durch die Aufruf-Operation wieder aufgenommene Ausführung in die Registereinrichtung lädt; und (2) eine Einrichtung zum Ungültigmachen, die auf bestimmte Aufruf-Operationen und bestimmte Return-Operationen anspricht, zum Ungültigmachen der Cache-Einrichtung. on each invocation operation by loading the frame base component for the top frame corresponding to the "just started" by the call operation Execution in the register device responds, and to each return operation by loading the frame base component for the top frame corresponding to that resumed by the call operation Loads execution into register facility; and (2) means for invalidating the addresses certain call operations and certain return operations for invalidating the cache device. 8. Digits1-Rechnersystem mit8. Digits1 computer system with (1) einer Verarbeitungseinrichtung zum Ausführen von Operationen an Daten als Antwort auf Befehle,(1) a processing device for executing Operations on data in response to commands, (2) einer Speichereinrichtung zum Speichern von Datenelementen der Daten und der Befehle und zum Empfangen der Datenelemente aus der Verarbeitungseinrichtung und zum Liefern der Datenelemente und der Befehle an die Verarbeitungseinrichtung in Reaktion auf bestimmte Signale aus der Verarbeitungseinrichtung einschließlich Adressen, die Speicherplätze in der Speichereinrichtung spezifizieren, und(2) a memory device for storing data items of the data and the commands and for Receiving the data elements from the processing device and for delivering the data elements and the commands to the processing device in response to certain signals from the processing device including addresses, the memory locations specify in the storage device, and (3) einer Übertragungseinrichtung zum Übertragen der Befehle, der bestimmten Signale und der Datenelemente zwischen der Verarbeitungseinrichtung und der Speichereinrichtung, (3) a transmission device for transmitting the commands, the specific signals and the data elements between the processing device and the storage device, und wobeiand where bestimmte Befehle einen ersten Namen enthalten, der ein Datenelement repräsentiert;certain commands contain a first name representing a data item; bestimmte Adressen spezifiziert werden durch (a) eine Basis-Adreß-Komponente, die eine Basisadresse der Adressen spezifiziert undcertain addresses are specified by (a) a base address component, which is a Base address of the addresses specified and ("b) eine Adressenversatzkomponente, die einen Adressenversatz gegenüber der Basisadresse spezifiziert, die durch die Basis-Adreß-Komponente spezifiziert ist,("b) an address offset component that specifies an address offset from the base address specified by the base address component is, die Speichereinrichtung enthält,the storage device contains (a) Prozeduren, die mindestens die Befehle enthalten, und(a) Procedures that contain at least the commands, and (b) eine jeder einzelnen Prozedur zugeordnete Namentabelle, die einen Namentabelleneintrag umfaßt, der jedem ersten Narien zugeordnet ist, der in den Befehlen in den der Namentabelle zugeordneten Prozedur enthalten ist, wobei der Namentabelleneintrag für den ersten Namen einen ersten Basisspezifizierer enthält, der eine der Basisadressen spezifiziert, und einen Adressenversatzspezifizierer enthält, aus dem der Adressenversatz abgeleitet werden kann,(b) a name table assigned to each individual procedure, which contains a name table entry which is assigned to each first line is the procedure assigned to the commands in the name table is included, with the name table entry for the first name contains a first base specifier specifying one of the base addresses and a Contains address offset specifiers from which to derive the address offset can, die Operationen mindestens umfassenwhich at least include operations (a) eine Aufruf-Operation zum Aussetzen einer Ausführung einer der Prozeduren und zum Beginnen einer anderen Ausführung,(a) a call operation to suspend execution of one of the procedures and to Start another execution, (b) eine Eeturn-Operation zum Beenden der anderen Ausführung und zum Wiederaufnehmen der Ausführung der Prozedur, die durch die dies andere Ausführung beginnende Aufruf-Operation ausgesetzt wurde,(b) an eeturn operation to terminate the other execution and resume the execution of the procedure, the call operation beginning this other execution was exposed, (, U ·■ » τ. —(, U · ■ »τ. - jeder Ausführung eine Mehrzahl der Basisadressen zugeordnet ist unda plurality of the base addresses is assigned to each execution and die ersten Basisspezifizierer in den Namentabelleneinträgen für die ersten Kamen in den Befehlen in der gerade ausgeführten Prozedur die Basisadressen in der Mehrzahl von Basisadressen, die der Ausführung zugeordnet sind, spezifizieren, eine Eincachvorrichtung, die auf die ersten Namen durch Eincachen der ersten Adressen in der Prozessoreinrichtung anspricht, und die auf einen der ersten Hamen anspricht durch Ausgeben der bestimmten Adresse, deren Basiskomponente die Basisadresse ist, die durch den ersten Basisspezifizierer spezifiziert wird, und deren Adressenversatz der aus dem Adressenversatzspezifizierer in dem Namentabelleneintrag für den ersten Namen abgeleitete Adressenversatz ist, und daß die Eincachvorrichtung aufweist:the first base specifiers in the name table entries for the first names in the commands in the procedure just executed, the base addresses specify in the plurality of base addresses assigned to the execution, a caching device that accesses the first names by caching the first addresses in the processor means responds, and which responds to one of the first Hamen by issuing the specific Address whose base component is the base address specified by the first base specifier and its address offset is obtained from the address offset specifier in the name table entry for is the address offset derived from the first name and that the caching device comprises: (1) einen ersten Cache zum Empfangen des einen ersten Namens und zum Reagieren auf den einen ersten Namen durch Ausgeben des Adressenversatzes, der aus dem Adressenversatzspezifizierer in dem Namentabelleneintrag für den Namen und aus einem zweiten Basisspezifizierer, der die Basis-Adressen-Komponente spezifiziert, die durch den ersten Basisspezifizierer in dem Namentabelleneintrag für den· einen ersten Namen spezifiziert wird, abgeleitet ist;(1) a first cache to receive the one first name and to react to the first name by outputting the address offset, that from the address offset specifier in the name table entry for the name and from a second base specifier specifying the base address component identified by the first base specifier in the name table entry for which a first name is specified is derived; (2) eine auf die Aufruf-Operationen und Return-Operationen ansprechende Einrichtung zum Uhgültigmachen des ersten Cache nur dann, wenn die Aufruf-Operation die andere Ausführung für die einer ersten abweichenden Namentabelle zugeordnete Prozedur beginnt, und wenn die Return-Operation(2) one on the call operations and return operations nice facility for invalidating the first cache only when the call operation the other version for those assigned to a first different name table Procedure begins and when the return operation die Ausführung für die einer zweiten abweichenden Namentabelle zugeordnete Prozedur wieder aufnimmt;resumes execution for the procedure associated with a second differing name table; (3) einen zweiten Cache zum Empfangen des zweiten Basisspezifizierers aus dem ersten Cache und zum Reagieren auf den zweiten Basisspezifizierer durch Ausgeben der Basisadresse, die durch den zweiten Basisspezifizierer spezifiziert wird,,, wobei der zweite Cache die Mehrzahl der Basisadressen enthält, die der zur Zeit durch die Prozessoreinrichtung durchgeführten Ausführung zugeordnet ist;(3) a second cache to receive the second base specifier from the first cache and to the Responding to the second base specifier by returning the base address identified by the second Base specifier is specified ,,, where the second cache contains the plurality of base addresses, that of the currently by the processor facility is assigned to the executed execution; (4) eine Einrichtung zum Indern von bestimmten Basisadressen aus der Mehrzahl der Basisadressen als Antwort auf jeden Aufruf-Befehl und ,jeden Return-Befehl, der durch die Prozessoreinrichtung ausgeführt wird j und(4) means for indexing certain base addresses from the plurality of base addresses in response to every call command and, every return command, which is executed by the processor device j and (5) eine Einrichtung zum Empfangen der Basis-Adreß-Komponente aus dem zweiten Cache und der Adressenversatzkomponente aus dem ersten Cache und zum Kombinieren der Basis-Adreß-Komponente und der Adressenversatzkomponente zur Erzeugung der bestimmten Adresse für das durch den ersten Namen repräsentierte Datenelement. (5) means for receiving the base address component from the second cache and the address offset component from the first cache and to combine the base address component and the address offset component to generate the particular address for the data element represented by the first name. 9. Eineachvorrichtung nach einem der vorhergehenden Ansprüche, insbesondere nach Anspruch 8, dadurch gekennzeichnet, daß9. Eineachvorrichtung according to one of the preceding Claims, in particular according to claim 8, characterized in that die Datenelemente die Adressen spezifizierende Zeiger umfassen;the data elements include pointers specifying the address; daß bestimmte Zeiger Basiszeiger sind, die einer Ausführung zugeordnet sind und ihren Werb bis zum Ende der Ausführung nicht ändern;that certain pointers are base pointers associated with an execution and their advertising up to Do not change end of execution; 10 ' ' ■10 '' ■ daß die in dem zweiten Cache eingecachten Basisadressen die Adressen aus den Basiszeigern umfassen; undthat the base addresses cached in the second cache comprise the addresses from the base pointers; and daß die Eincachvorrichtung weiter eine Einrichtung aufweist, die auf jede Aufruf-Operation anspricht, um die Adressen aus den Basiszeigern, die der durch die Aufruf-Operation gerade begonnenen Ausführung zugeordnet ist, in den zweiten Cache zu laden.that the caching device further comprises means responsive to each call operation, the addresses from the base pointers that correspond to the execution just started by the call operation is assigned to load into the second cache. 10. Vorrichtung nach einem der vorhergehenden Ansprüche, inabesondere nach Anspruch 9, dadurch gekennzeichnet, daß10. Device according to one of the preceding claims, in particular according to claim 9, characterized in that that die Basiszeiger, die einer Ausführung zugeordnet sind, die Adressen der Datenelemente spezifizieren, die als Argumente für die eine Ausführung verwendet werden.the base pointers associated with an execution specify the addresses of the data elements to be used as Arguments to be used for an execution. 11. Vorrichtung nach einem der vorhergehenden Ansprüche, insbesondere nach Anspruch 8, dadurch gekennzeichnet, daß die Speichereinrichtung aufweist:11. Device according to one of the preceding claims, in particular according to claim 8, characterized in that that the storage device comprises: (a) einen Stapel zum Speichern der Datenelemente, die bei der Ausführung der Prozeduren durch die Verarbeitungseinrichtung verwendet werden, wobei der otapel für jede unbeendete Ausführung einen dieser zugeordneten Rahmen aufweist, wobei die Rahmen einen obersten Rahmen umfassen, der der Ausführung der Prozedur zugeordnet ist, für die die Prozessoreinrichtung gerade die Befehle ausführt, und(a) a stack to store the data items that are generated when the Procedures used by the processing facility, the otapel for each unfinished execution one of these associated frames, wherein the frames comprise a top frame, the implementation of the Procedure is assigned for which the processor device is currently executing the instructions, and •j xi *>*• j xi *> * (b) ein Statische-Daten-Gebiet (statJc data area), das dein .Stapel zugeordnet ist, ur: weiter die Datenelemente zu speichern, die \ ei der Ausführung der Prozeduren in der Verarbeitungseinricbtung verwendet werden;(b) a Static Data Area (statJc data area) that is associated with your .Stapel, ur: to further store the data items, the performance of procedures used in the Verarbeitungseinricbtung \ ei; außerdem dadurch gekennzeichnet, daß die Aufruf-Operation weiterhin den Stapelrahmen schafft, der der durch die Aufruf-Operation begonnenen Ausführung zugeordnet ist;
daß die Basisadressen umfassen
further characterized in that the call operation continues to create the stack frame associated with the execution initiated by the call operation;
that the base addresses include
(a) eine Rahmenbasisadresse, die eine Adresse spezifiziert, zu der die Adressenversätze addiert werden, um die Adressen der ßpeicherstellen in dem obersten Rahmen zu erhalten,(a) a frame base address specifying an address to which the address offsets are added to get the addresses of the memory locations in the top frame, (b) eine Statische-Daten-Basisadresse, die eine Adresse spezifiziert, zu der die Adressenversätze addiert werden, um die Adressen der Speicherstellen in dem Statische-Daten-Gebiet zu erhalten, und(b) a static data base address specifying an address to which the address offsets are added to the addresses of the storage locations in the static data area to get, and (c) eine Prozedur-Basisadresse, die eine Adresse spezifiziert, zu der die Adressenversätze addiert werden, um die Adressen der Speicher-(c) a procedure base address specifying an address to which the address offsets be added to the addresses of the memory /•s. ■ stellen in der durch die Prozessoreinrichtung gerade ausgeführten Prozedur zu erhalten, und/ • s. ■ put in by the processor device to get the currently running procedure, and daß die Einrichtung zum Ändern der bestirimten Basisadressen die Prozedur-Basisadresse md die Statische-Daten-Basisadresse nur als Reaktion auf bestimmte Aufruf-Operationen und bestimmte Return-Operationen ändert und die Rahmen-Basisadresse so setzt, daß diese als Antwort auf jede Aufruf-Operation den Rahmen für die durch die Aufruf-Operationthat the facility for changing the determined Base addresses the procedure base address and the static data base address only as Reaction to certain call operations and certain return operations changes and sets the frame base address to be used in response to each call operation Framework for by the call operation ■begonnene Ausführung setzt, und daß sie die Rahmen-Basisadresse so setzt, daß sie als Antwort auf jeden Return-Befehl den Rahmen für die durch den Return-Befehl wieder aufgenommene Ausführung spezifiziert,■ sets execution started, and that it sets the frame base address so that it in response to each return command, the framework for the return command specified resumed execution, 12. Vorrichtung nach einem der vorhergehenden Ansprüche, insbesondere nach einem der Ansprüche 8, 9 oder 11, dadurch gekennzeichnet, daß12. Device according to one of the preceding claims, in particular according to one of claims 8, 9 or 11, characterized in that der erste Cache zweite "bestimmte Einträge enthält, die eine vollständige Adresse und einen zweiten Basisspezifizierer enthalten, der keine der Basisadressen spezifiziert; undthe first cache second "contains specific entries that have a full address and a second Contain base specifier that does not contain any of the base addresses specified; and daß die Oache-Vorrichtung auf die ersten Namen entsprechend den zweiten bestimmten Einträgen durch Ausgeben der ungeänderten kompletten Adresse reagiert.that the Oache device corresponds to the first name responds to the second specific entries by outputting the unchanged complete address. 13· Digital-Rechnersystem, insbesondere nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß es aufweist:13 · Digital computer system, in particular according to one of the preceding claims, characterized in that it comprises: (1) eine Verarbeitungseinrichtung zum Durchführen von Operationen mit Daten als Reaktion auf Befehle,(1) processing means for performing operations on data in response to commands; (2) eine Speichereinrichtung zum Speichern von Datenelementen der Daten und der Befehle und zum Empfangen der Datenelemente aus der Verarbeitungseinrichtung und zum Liefern der Datenelemente und der Befehle an die Verarbeitungseinrichtung als Antwort auf bestimmte Signale aus der Verarbeitungseinrichtung, wobei die bestimmten Signale Adressen umfassen, die Speicherplätze in der Speichereinrichtung spezifizieren, und(2) memory means for storing data items of the data and commands and for Receiving the data elements from the processing device and for supplying the data elements and the instructions to the processing device as Response to specific signals from the processing device, the specific signals being addresses which specify storage locations in the storage device, and (5) eine Übertragungseinrichtung zum Übertragen der Befehle der "bestimmten Signale und der Datenelemente zwischen der Verarbeitungseinrichtung und der Speichereinrichtung,
und wobei
(5) a transmission device for transmitting the commands of the "specified signals and the data elements between the processing device and the storage device,"
and where
die Datenelemente die Adressen spezifizierende Zeiger umfassen;
die Speichereinrichtung enthält:
the data elements include pointers specifying the address;
the storage device contains:
(a) Prozeduren, die mindestens die Befehle umfassen, und(a) Procedures comprising at least the commands, and Cb) einen Stapel zum Speichern der Datenelemente, die "bei der Ausführung der Prozeduren durch die Verarbeitungseinrichtung verwendet werden, wobei der Stapel einen öeder nicht beendeten Ausführung zugeordneten Rahmen aufweist, wobei die Rahmen einen obersten Rahmen umfassen, der der Ausführung der Prozedur zugeordnet ist, für die die Verarbeitungseinrichtung gerade die Befehle ausführt, und wobei bestimmte Rahmen Basiszeiger der Zeiger enthalten, deren Werte bis zur Beendigung der dem Rahmen zugeordneten Ausführung unverändert bleiben, und daß die Operationen mindestens umfassenCb) a stack for storing the data elements, which "are used in the execution of the procedures by the processing facility, wherein the stack has a frame associated with the unfinished execution, wherein the frames comprise a top frame associated with the execution of the procedure for which the processing device is currently executing the instructions, and where certain frames base pointer is the Contain pointers, their values up to the completion of the execution associated with the frame remain unchanged, and that the operations include at least (a) eine Aufruf-Operation zum Aussetzen der gerade in der Ausführung begriffenen Ausführung, die eine andere Ausführung beginnt, und zum Schaffen des der anderen Ausführung zugeordneten Rahmens und(a) a call operation to suspend the one currently being executed Execution that begins another execution and to accomplish that of the other Execution associated frame and (b) eine Return-Operation zum Beenden der anderen Ausführung und zum Wiederaufnehmen der Ausführung der Prozedur,(b) a return operation to terminate the other execution and resume the execution of the procedure, die durch die die andere Ausführung "beginnende Aufruf-Operation ausgesetzt wurde, undthe call operation initiated by the "other execution" suspended was, and daß bestimmte Befehle einen Operanden umfassen, der einen der Basiszeiger in dem obersten Rahmenrepräsentiert und einen Adressenversatz enthält» der bei seiner Addition zu einer bestimmten Adresse die Adresse des durch den Operanden repräsentierten Basiszeigers liefert, und daß eine Eincachvorrichtung zum Eincachen der Basis2eiger vorgesehen ist, welche Eincachvorrichtung euf jeden der Operanden durch Ausgeben der Adresse antwortet, die durch den Basiszeiger spezifiziert wird, der durch den Operanden repräsentiert wird, und daß die Eincachvorrichtung aufweist:that certain instructions include an operand representing one of the base pointers in the topmost frame and contains an address offset when it is added to a particular one Address supplies the address of the base pointer represented by the operand, and that a caching device is provided for caching the base hands, which caching device e responds to each of the operands by returning the address specified by the base pointer represented by the operand and that the caching device comprises: (1) eine Speichereinrichtung mit einer Mehrzahl von Registereinrichtungen zum Speichern der Adressen, die durch die Basiszeiger in dem obersten Rahmen spezifiziert werden, und zum Ausgeben der in einer der Registereinrichtungen enthaltenen Adresse als Antwort auf eine in der Speichereinrichtung empfangene Adresse;(1) a memory device with a plurality of register devices for storing the addresses, which are specified by the base pointers in the top frame, and for outputting the in a the address contained in the register facilities as Response to an address received in the storage device; (2) eine Adressiereinrichtung zum Empfangen des Adressenversatzes und zum Liefern der Register— adres.se an die Speichereinrichtung als Antwort auf den Airessenversatz; und(2) an addressing device for receiving the Address offset and to supply the register address to the memory device in response to the air food offset; and (3) eLne auf die Aufruf-Operation ansprechende Einrichtang zum Speichern Jedes der Basiszeiger, der in de;n Rahmen enthalten ist, der durch die Aufruf-Operation in dem Rahmen geschaffen wurde, und zum Laden jeder der durch den Basiszeiger repräsentierten(3) eLne device responsive to the call operation for storing each of the base pointers contained in the frame identified by the call operation was created in the frame, and for loading each of those represented by the base pointer Adressen in die Registereinrichtung, die curch die Adressiereinrichtung als Antwort auf den Adressenversatz adressiert ist, der die Speicherstelle des Basiszeigers in dem Rahmen spezifiziert.Addresses in the register device, which are provided by the addressing device in response to the address offset which specifies the location of the base pointer in the frame. 14. Vorrichtung nach Anspruch 13» dadurch gekonnzeichnet, daß die Registereinrichtung die durch die Basiszeiger spezifizierten Adressen in einer Mehrzahl der bestimmten Rahmen enthält;14. The device according to claim 13 »characterized in that that the register means the addresses specified by the base pointers in a plurality of the determined Frame includes; daß die Eincachvorrichtung eine Einrichtung zum Zuordnen einer Jeden durch den Basiszeiger spezifizierten Adresse zu "bestimmten Rahmen aufweist, die den die Adresse repräsentierenden Basiszeiger enthält; und daß die Eincachvorrichtung nur diese durch die Basiszeiger in dem obersten Rahmen repräsentierten Adressen in Reaktion auf die Operanden ausgibt.that the caching device has a means for allocating of each address specified by the base pointer to "has certain frames that contain the contains base pointer representing the address; and that the caching device only provides these through the base pointers outputs addresses represented in the top frame in response to the operands. 15· Vorrichtung nach Anspruch 13 oder 14, dadurch gekennzeichnet, 15. Device according to claim 13 or 14, characterized in that daß die Basiszeiger die Adressen der Datenelemente repräsentieren, die als Argumente in der Aufruf-Operation verwendet werden, die den die Bisiszeiger enthaltenden Rahmen schafft.that the base pointers represent the addresses of the data elements that are used as arguments in the call operation be used that indicate the bisis pointer containing framework creates. 16. Vorrichtung zum Speichern (Eincachen) von Daten in einem Cache in einem digitalen Computersystem, insbesondere nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß sie aufweist:16. Device for storing (caching) data in a cache in a digital computer system, in particular according to one of the preceding claims, characterized in that it comprises: (1) einen ersten Cache zum Ausgeben erster Daten als Antwort auf einen ersten Schlüssel;(1) a first cache for outputting first data in response to a first key; (2) einen zweiten Cache zum Ausgeben von zweiten Daten als Antwort auf einen zweiten Schlüssel; und(2) a second cache for outputting second data in response to a second key; and (3) eine Korabiniereinrichtung, die mit dem ersten und zweiten Cache verbunden ist und die ersten Daten vom ersten Cache und die zweiten Daten vom zweiten Cache im wesentlichen gleichzeitig empfängt und die ersten Daten und die zweiten Daten zur Erzeugung von dritten Daten kombiniert.(3) a corabinetic device that begins with the first and second cache is connected and the first data from the first cache and the second data from the second Cache essentially simultaneously receives and generates the first data and the second data combined by third data. 17· Vorrichtung nach Anspruch 16, dadurch gekennzeichnet, da 5 die Kombiniereinrichtung ein Addierer ist und daß di-3 dritten Daten die idumme der ersten Daten und der zw-iiten Daten sind..17 · Device according to claim 16, characterized in that since 5 the combining device is an adder and that di-3 third data is the idum of the first data and the two dates are .. 18. Vorrichtung nach Anspruch 16 oder 175 dadurch gekennzeichnet, daß sie aufweist:18. Apparatus according to claim 16 or 17 5, characterized in that it comprises: : "::":· j L* ' :. : -./33 3 k : "::": · j L * ' : . : -./33 3 k (1) eine erste Ungültigmachungseinrichtung zum Ungültigmachen des ersten Cache als Antwort auf erste bestimmte Operationer des Digitalrechnersystems, und(1) a first invalidation facility for Invalidating the first cache in response to first specific operators of the digital computer system, and (2) eine zweite Ungülbigmachungseir.riclitung zum Ungültigmachen des zweiten Cache als Antwort auf zweite bestimmte Operationen des Digitalrechnersystems. (2) a second revocation directive for Invalidating the second cache in response to certain second operations of the digital computing system. 19· Vorrichtung zum Eincachen in einem digitalen Computersystem, insbesondere nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß sie aufweist:19 device for caching in a digital computer system, in particular according to one of the preceding Claims, characterized in that it comprises: (1) einen Cache zum Ausgeben von ersten Daten und zweiten Daten als Antwort auf einen Schlüssel;(1) a cache for outputting first data and second data in response to a key; (2) eine Speichereinrichtung, die eine Mehrzahl von Registern zum Speichern und Ausgeben dritter Daten enthält: und(2) a storage device having a plurality of registers for storage and output third data contains: and (3) eine mit dem Cache und der Speichereinrichtung • verbundene Steuereinrichtung zum Auswählen(3) a controller connected to the cache and the storage device for selection der dritten Daten in einem Register aus der Mehrzahl der Register als Antwort auf die zweiten Daten.of the third data in one of the plurality of registers in response to the second dates. 20. Vorrichtung nach Anspruch 19, dadurch gekennzeichnet, daß sie aufweist:20. Apparatus according to claim 19, characterized in that that it has: (1) eine ühgültigmachungseinrichtung zum Ungültigmachen des ersten Cache als Antwort auf ersfte bestimmte Operationen des digitalen Rechnersystems ; und (1) a ühgültigmachungseinrichtung invalidation of the first cache in response to ERS f te certain operations of the digital computer system; and (?) eine .Ladeeinrichtung zum Laden mindestens eines aus der Mehrzahl der Register als Antwort auf zweite bestimmte Operationen des digitalen Rechnersystems.(?) a .charger for charging at least one from the plurality of registers in response to a second particular operation of the digital Computer system. 21. Vorrichtung nach Anspruch 19j dadurch gekennzeichnet, daß sie eine Kombiniereinrichtung aufweist, die mit der Steuereinrichtung, dem Cache und der Speichereinrichtung verbunden ist, um die ersten und die dritten Daten im wesentlichen gleichzeitig zu empfangen, mit den ersten Daten und den dritten . Daten eine Operation unter Kontrolle der Steuereinrichtung durchzuführen und ein Resultat dieser Operation auszugeben; und21. Device according to claim 19j, characterized in that that it has a combining device with of the control device, the cache and the storage device is connected to the first and the receive third data substantially simultaneously with the first data and the third. Data to perform an operation under the control of the control device and a result of this Output operation; and daß die Steuereinrichtung die Kombiniereinrichtung j η Abhängigkeit von den zweiten Daten steuert.that the control device is the combining device j η controls dependence on the second data. 22. Vorrichtung nach Anspruch 21, dadurch gekennzeichnet,-daß die Steuereinrichtung auf die zweiten Daten dadurch anspricht, daß sie bewirkt, daß die Kombiniereinrichtung eine der folgenden Operationen ausführt: Addieren der ersten Daten und der dritten22. The device according to claim 21, characterized in that the control means is responsive to the second data by causing the combining means performs one of the following operations: adding the first data and the third »rf. »Μ Λ · ♦ · · -»Rf. »Μ Λ · ♦ · · - 1919th Daten zur Erzeugung von vierten Daten, Ausgeben der ungeänderten ersten Daten, und Ausgeben dex* ungeänderten dritten Daten.Data for generating fourth data, outputting the unchanged first data, and outputting dex * unchanged third dates. 23. Eineachvorrichtung in einem digitalen Computersystem, insbesondere nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß sie aufweist:23. A teaching device in a digital computer system, in particular according to one of the preceding claims, characterized in that it has: (1) einen ersten Cache, der auf einen ersten Schlüssel" .anspricht, zum Ausgeben erster Daten und eines zweiten Schlüssels;(1) a first cache, responsive to a first key, for outputting first data and a second key; (2) einen zweiten Cache, der mit dem ersten Cache verbunden ist, zum Ausgeben von zweiten Daten als Antwort auf den zweiten Schlüssel; und(2) a second cache connected to the first cache for outputting second data in response to the second key; and (3) eine Kombiniereinrichtung, die mit dem ersten Cache und dem zweiten Cache verbunden ist, um im wesentlichen gleichzeitig die ersten Daten(3) a combining device connected to the first cache and the second cache to essentially simultaneously the first data - und die zweiten Daten zu empfangen und ein- and to receive the second data and a Ergebnis einer Operation an den ersten Daten und den zweiten Daten auszugeben.Output the result of an operation on the first data and the second data. 24. Vorrichtung nach Anspruch 23, dadurch gekennzeichnet, daß sie aufweist:24. The device according to claim 23, characterized in that that it has: ... . (1_) . eine erste Ungültigmachungseinrichtung zum -. .;. · Ungültigmachen des ersten Cache als Antwort... (1_) . a first invalidation facility for -. . ; . · Invalidate the first cache in response auf erste bestimmte Operationen des digitalen Computersystems; undto first specific operations of the digital computer system; and (2) eine zweite ungültigmachungseinrichtung zum. Ungültigmachen des zweiten Cache als Antwort auf zweite bestimmte Operationen des digitalen Rechnersystems.(2) a second invalidation facility for. Invalidating the second cache in response to certain second operations of the digital Computer system. 25. Verrichtung nach Anspruch 231 dadurch gekennzeichnet, dtß der zweite Cache eine Mehrzahl von durch Indices acressierbaren Registereinrichtungen enthält, wobei25. Performing according to claim 231, characterized in that That is, the second cache has a plurality of indexes contains addressable register facilities, wherein ^ . . jeder Index eine Registereinrichtung der Mehrzahl der Registereinrichtungen spezifiziert; und daß der zweite Schlüssel einen der Indices enthält.^. . each index one register device of the plurality the registry facilities specified; and that the second key contains one of the indices. 26. Verrichtung nach Anspruch 23, dadurch gekennzeichnet,' ai-B der zweite Cache eine Auswahleinrichtung aufweist, die mit dem ersten Cache und mit einer zusätzlichen Quelle des zweiten Schlüssels verbunden ist, uii den zweiten Schlüssel aus dem ersten Cache oder d'ir zusätzlichen Quelle auszuwählen.26 performing according to claim 23, characterized 'ai-B has a selection means, the second cache which is connected to the first cache, and with an additional source of the second key, the second key uii from the first cache or additional d'ir Select source. ?.'('. Vorrichtung nach einem der Ansprüche 23 bis 26, dadurch gekennzeichnet, daß die Kombiniereinrichtung d e Operation der -Addition der ersten Daten mit den zweiten Daben ausführt. ?. '('. Apparatus as claimed in any one of claims 23 to 26, that the combining operation performed by the de-addition of the first data with the second Daben. 28. Vorrichtung nach Anspruch 27, dadurch gekennzeichnet, daß der erste Cache außerdem dritte Daten als Antwort auf den ersten Schlüssel ausgabt; '28. Apparatus according to claim 27, characterized in that the first cache also provides third data as a response spent on the first key; ' daß die Kombiniereinrichtung außerdem die Operation .des Ausgebens der ungeänderten ersten Daten und des - ·, Ausgebens der ungeänderten zweiten Daten ausführt; undthat the combining device also performs the operation of outputting the unchanged first data and the · Executes outputting of the unchanged second data; and daß die Eincachvorrichtung außerdem eine Steuereinrichtung enthält, die mit dem.ersten Cache und· der Kombiniereinrichtung verbunden ist, um eine der Operationen in Abhängigkeit von den dritten Daten auszuwählen.that the caching device also includes a control device associated with the first cache and the Combining device is connected to one of the operations depending on the third data to select. 29. Eincachvorrichtung in einem digitalen Computersystem, insbesondere nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß sie aufweist:29. caching device in a digital computer system; in particular according to one of the preceding claims, characterized in that it has: (1) eine Schlüsselempfangseinrichtung zum Empfangen eines ersten Schlüssels und eines zweiten · Schlüssels aus dem digitalen .Rechner sy st em;(1) a key receiving device for receiving a first key and a second Key from the digital .computing system; (2) einen ersten Cache, der mit der üchlüsselempfangseinrichtung verbunden ist und auf(2) a first cache associated with the key receiving device connected and on den ersten Schlüssel anspricht, um erste Daten und einen zweiten Schlüssel auszugeben; undresponsive to the first key to output first data and a second key; and (3) einen zweiten Cache, der mit der Schlüsselempfangseinrichtung und mit Cem ersten Cache verbunden ist und auf den ersten Schlüssel und den zweiten Schlüssel anspricht, um auf den(3) a second cache connected to the key receiving device and to Cem first cache and responsive to the first key and the second key to access the ersten Schlüssel dadurch zu reagieren, daß er den zweiten Schlüssel aus dem ersten Cache empfängt und anderenfalls den zweiten Schlüssel aus der Schlüsselempfangseinrichtung empfängt und auf den zweiten Schlüssel durch Ausgeben der zweiten Daten reagiert.first key to respond by getting the second key from the first cache receives and otherwise receives the second key from the key receiving device and respond to the second key by outputting the second data. 30. Vorrichtung nach Anspruch 29» dadurch gekennzeichnet-, daß sie aufweist:30. The device according to claim 29 »characterized-, that it has: (1) eine erste Ungültigmachungseinrichtung zum ungültigmachen des ersten -Gache als Antwort auf erste bestimmte Operationen des digitalen Rechnersystems; (1) a first invalidation facility to invalidate the first -Gache in response to first particular operations of the digital computing system; (2) eine zweite Ungültigmachungseinrichtung zum Ungültigmachen des zweiten Cache als Reaktion auf zweite bestimmte Operationen des digitalen Rechnersystems; und(2) a second invalidation facility for Invalidating the second cache in response to certain second operations of the digital Computer system; and (3) eine Ladeeinrichtung zum Laden mindestens eines der Register als Antwort auf die zweiten bestimmten Operationen.(3) a loader for loading at least one of the registers in response to the second determined one Operations. 31. Vorrichtung nach Anspruch 29, dadurch gekennzeichnet, daß sie eine Kombiniervorrichtung aufweist, die mit dem ersten Gache und dem zweiten Cache verbunden ist, um die ersten Daten und die zweiten Daten im wesentlichen gleichzeitig zu empfangen und die ersten Daten U]id die zweiten Daten zu addieren, wenn der zweite C.iche den zweiten Schlüssel aus dem ersten Cache e.ip fängt.31. The device according to claim 29, characterized in that that it has a combining device connected to the first cache and the second cache, to receive the first data and the second data substantially simultaneously and the first data U] id to add the second data if the second C.iche the second key from the first cache e.ip catches. 32. . Eineachvorrichtung in einem digitalen Computersystem, insbesondere nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß sie aufweist:32nd. A teaching device in a digital computer system, in particular according to one of the preceding claims, characterized in that it has: (1) einen ersten auf einen erstem Schlüssel ansprechenden Cache zum Ausgeben von ersten Daten, zweiten Daten und eine s zweiten Schlüssels;(1) a first responsive to a first key Cache for outputting first data, second data and a second key; (2) einen zweiten, auf den zweitem Schlüssel ansprechenden Cache, der mit dem ersten Cache zum Ausgeben dritter Dc ben verbunden ist;(2) a second, on the second key responsive cache connected to the first cache for outputting third dc ben is; (3) . eine Speichereinrichtung zum Ausgeben einer Mehrzahl von vierten Datenelementen;(3). storage means for outputting a plurality of fourth data items; (4). eine Kombiniereinrichtung, die mit dem ersten Cache, dem zweiten Cache und der Speichereinrichtung verbunden ist, um in wesentlichen gleichzeitig Eingangsdaten unter Einschluß der ersten Daten, der dritten Daten und der Mehrzahl von vierten Datenelementen zu empfangen, an den Eingangsdaten eine Operation aus einer Mehrzahl von Operationen auszuführen, und ein Ergebnis der Operation auszugeben; und(4). a combining device associated with the first Cache, the second cache and the storage device is connected to essentially simultaneously input data including the first data, the third data and the To receive a plurality of fourth data elements, an operation is performed on the input data perform a plurality of operations and output a result of the operation; and _ COPY_ COPY (5) eine Steuereinrichtung, die mit dem ersten(5) a control device that works with the first Cache und der Kombiniereinrichtung verbunden ist, um die zweiten Daten zu empfangen und die durch die Kombiniereinrichtung ausgeführte . · · Operation in Abhängigkeit von den zweiten Daten zu bestimmen.Cache and the combining device is connected to receive the second data and the one executed by the combining device. · · Operation depending on the second Data to determine. 33· " Vorrichtung nach Anspruch 32, dadurch gekennzeichnet, daß. der zweite Cache eine Mehrzahl von .Registereinrichtungen aufweist, die durch einen Index adressierbar sind, der eine Registereinrichtung aus der Mehrzahl der Registereinrichtungen spezifiziert; und daß der zweite Schlüssel den Index umfaßt.33 · "Device according to claim 32, characterized in that that. the second cache has a plurality of register facilities which can be addressed by an index, the one register device from the plurality of register devices specified; and that the second key comprises the index. 34. Vorrichtung nach Anspruch 33» dadurch gekennzeichnet, daß der zweite Cache eine Auswahleinrichtung umfaßt, die mit dem ersten Cache und einer zusätzlichen Quelle des aweiten Schlüssels verbunden ist, um den zweiten Schlüssel aus dem ersten Cache oder der zusätzlichen Quelle auszuwählen.34. Device according to claim 33 »characterized in that that the second cache comprises a selector, which is connected to the first cache and an additional source of the second key to the second Select keys from the first cache or the additional source. 35· Eineach-Vorrichtung in einem digitalen Computersystem, insbesondere nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß sie aufweist:35 Single-teaching device in a digital computer system, in particular according to one of the preceding claims, characterized in that it has: (1) eine Schlüsselempfangseinrichtung zum Empfangen eines ersten Schlüssels, eines zweiten Schlüssels, und eines dritten Schlüssels einschließlich erster Daten aus dem digitalen Rechnersystem;(1) a key receiving device for receiving a first key, a second key, and a third key including the first Data from the digital computer system; (2) einen ersten Cache, der mit der Schlüsselempfangseinrichtung verbunden ist; und auf den ersten Schlüssel anspricht, um zweite Daten, dritte Daten und den zweiten Schlüssel auszugeben;(2) a first cache associated with the key receiving device; and on the responsive to the first key to output second data, third data and the second key; (3) einen zweiten Cache, der mit der Schlüsselempfangseinrichtung und dem ersten Cache verbunden ist und auf den ersten Schlüssel und den zweiten Schlüssel anspricht, um auf den ersten Schlüssel durch Empfangen des zweiten Schlüssels aus dem ersten Cache anzusprechen und anderenfalls den zweiten Schlüssel aus der Schlüsselempfangseinrichtung zu empfangen und auf den zweiten Schlüssel durch Ausgeben von vierten Diten zu reagieren;(3) a second cache connected to the key receiving device and the first cache and responsive to the first key and the second key to respond to the first key by receiving the second key from the first cache and otherwise the second key from the Receiving key receiving means and responding to the second key by issuing fourth digits; (4) eine Speichereinrichtung zum Aus jeben einer Mehrzahl von fünften Datenelementen;(4) a storage device for storing a plurality of fifth data items; (5) eine Kombinier einrichtung, die m.i.t der Schlüsselempfangseinrichtung, dem ersten Cache, dem zweiten Cache und der Speichereinrichtung verbunden ist, um Eingangsdaten einschließlich der ersten Daten, der zweiten Daten, der vierten Daten und der Mehrzahl von fünfton Datenelementen im wesentlichen gleichzeitig zu empfangen, eine Operation aus einer Mehrzahl von Operationen an den Eingangsdaten auszuführen, und ein Ergebnis der Operation auszugeben; und(5) a combining device, which m.i.t the key receiving device, the first cache, the second cache and the storage device is connected to input data including the first data, the second data, the fourth data and the plurality of five-tone data elements receive substantially simultaneously, one of a plurality of operations perform on the input data and output a result of the operation; and (6) eine Steuereinrichtung, die mit der Schlüsselempfangseinrichtung, dem ersten Cache und der Kombiniereinrichtung verbunden ist, um die dritten Daten und Teile der Schlüssel zu empfangen . . und die von der Kombiniereinrichtung in Abhängigkeit von den dritten Daten und den Teilen der Schlüssel ausgeführte Operation zu bestimmen.(6) a control device that communicates with the key receiving device, the first cache and the combiner is connected to the third parties to receive data and parts of the key. . and that of the combining device as a function of determine the operation performed by the third data and the parts of the keys. 36. Vorrichtung nach Anspruch 35, dadurch gekennzeichnet, daß die Operationen umfassen:36. Apparatus according to claim 35, characterized in that the operations comprise: ' (a) die Addition der ersten Daten und eines ausgewählten Elements aus der.Mehrzahl der fünften Datenelemente;'(a) the addition of the first data and a selected one Elements from the majority of the fifth data elements; (t) die Addition der zweiten Daten und eines ausgewählten Elements aus der Mehrzahl der fünften Datenelemente;(t) the addition of the second data and a selected one One of the plurality of fifth data items; (c) das Ausgeben der ungeänderten zweiten Daten;(c) outputting the unchanged second data; (c) die Addition der zweiten Daten und der vierten Daten;(c) adding the second data and the fourth data; («·) das Ausgeben der ungeänderten vierten Daten, und(«·) Outputting the unchanged fourth data, and (.Γ) das Ausgeben des ungeänderten ausgewählten Elements aus den fünften Datenelementen.(.Γ) output of the unchanged selected element from the fifth data elements. 37· Vorrichtung nach Anspruch 35» dadurch gekennzeichnet, daß die Kombiniereinrichtung enthalt:37 · Device according to claim 35 »characterized in that that the combining device contains: (a) einen Addierer mit einem erste.·ι Eingang, einem zweiten Eingang und einem Ausg.ing;(A) an adder with a first input, a second input and one output; (b) eine erste Auswahleinrichtung, die mit dem ersten Cache, der Schlüsselemp/angseinrichtunn;, der Steuereinrichtung und dem ersten Einsang verbunden ist, um alternativ die ersten Daten und die zweiten Daten dem Addierer in Abhängigkeit von der Steuereinrichtung zuzuführen; und(b) a first selection device connected to the first cache, the key input device, the control device and the first input is connected to alternatively the first data and to supply the second data to the adder in dependence on the control means; and (c) eine zweite Auswahleinrichtung, die mit dem zweiten Cache, der Steuereinrichtung und dem zweiten Eingang verbunden ist, um alternativ ein Element aus der Hehrzahl der fünften Daben-(c) a second selection device associated with the second cache, the control device and the second input is connected to alternatively an element from the majority of the fifth Daben- - elemente oder das vierte Datenelement dem Audierer in Reaktion auf die Steuereinrichtung zuzuführen.- elements or the fourth data element to the auditor in response to the control device to feed. 38. EineachVorrichtung in einem digitalen Rechnersystem, das 'auf Operanden einschließlich erster Operanden einschließlich eines Schlüssels und zweiter Operanden einschließlich eines ersten Basiswert-Spezifizierers und eines ersten Adressenversatzwerts anspricht, dadurch gekennzeichnet"., daß die Eincachvorrichtunp; aufweist:38. A teaching device in a digital computer system, the 'on operands including the first Operands including a key and second operands including a first Base value specifier and a first address offset value, characterized by "., that the caching device; having: original jmsfected -original jmsfected - — copy- copy 2828 (1) eine Einrichtung zum Empfangen der Operanden aus dem digitalen Rechnersystem;(1) means for receiving the operands from the digital computer system; (2) einen mit der Operandenempfangseinrichtung verbundenen Cache zum Ausgeben eines zweiten Basiswert-Spezifizierers und eines zweiten Adressenversatzwerts als Antwort auf den Schlüssel;(2) one connected to the operand receiving device Cache for outputting a second base value specifier and a second address offset value in response to the key; (3) eine Speichereinrichtung zum Speichern einer Mehrzahl von Basiswerten und zum Ausgeben der Mehrzahl der Basiswerte;(3) a storage device for storing a plurality of base values and for outputting the Majority of the underlyings; (4) eine Kombiniereinrichtung, die mit dem Cache, der Speichereinrichtung und der Operandenempfangseinrichtung verbunden ist, um gleichzeitig Eingangswerte.'einschließlich des ersten Adressenversatzwerts aus den zweiten Operanden, des zweiten Adressenversatzwerts aus dem Cache, und der Mehrzahl von Basiswerten aus der Speichereinrichtung zu empfangen, an den Werten eine Operation aus einer Mehrzahl von Operationen auszuführen, und ein Ergbnis auszugeben; und(4) a combining means associated with the cache, the storage means and the operand receiving means connected to simultaneous input values. 'including the first The address offset value from the second operands, the second address offset value from the cache, and to receive the plurality of base values from the storage device, one of the values Perform one of a plurality of operations and output a result; and (5) eine Steuereinrichtung, die mit der Operanden-, empfangseinrichtung, dem Cache und der Kombi-.niereinrichtung verbunden ist, um zu bewirken, daß die Kombiniereinrichtung bestimmte Eingangswerte auswählt und eine aus der Mehrzahl der Operationen mit den bestimmten Eingangswerten ■ ausführt als Reaktion auf den ersten Operanden(5) a control device in communication with the operand, receiving device, cache and combining device is connected to cause the combiner to select certain input values and one of the plurality of Operations with the specified input values ■ Execute in response to the first operand und den zweiten Basiswert-Spezifizierer oder als Reaktion auf den zweiten Operanden und den ersten Basiswert-Spezifizierer.and the second base value specifier or in response to the second operand and the first base specifier. 39· Vorrichtung nach Anspruch 38, dadurch gekennzeichnet, daß die Steuereinrichtung auf den durch die Operandenempfangseinrichtung empfangenen ersten Operanden und auf den zweiten Basiswert-Spezifizierer dadurch anspricht, daß sie bewirkt, daß die Kombiniereinrichtung einen ersten ausgewählten Basiswert aus der Mehrzahl von Basiswerten als Reaktion auf den zweiten Basiswert-Spezifizierer auswählt, und eine erste Operation des Kombinierens des ersten ausgewählten Basiswerts mit. dem zweiten Adressenversatzwert ausführt; und daß die Steuereinrichtung auf den durch die Operandenempfangs einrichtung empfangenen zweiten Operanden dadurch anspricht, daß sie bewirkt, daß die Kombiniereinrichtung einen zweiten ausgewählten Basiswert aus der Wehrzahl der Basiswerte als Reaktion auf den ersten Basiswert-Spezifizierer auswählt und eine zweite Operation des Kombinierens des zweiten ausgewählten Basiswerts mit dem ersten Adressenversatzwert ausführt.39 · Device according to claim 38, characterized in that that the control device is based on the first operand received by the operand receiving device and is responsive to the second base specifier by causing the combining means a first selected base value from the plurality of base values in response to the second base value specifier and a first operation of combining the first selected base value with. the second address offset value; and that the control means is responsive to the reception of the operands device responds to the second operand received by causing the combining device a second selected base value from the defense number of base values in response to the first Base value specifier and a second operation of combining the second selected Base value with the first address offset value. 40. Vorrichtung nach Anspruch 39, dadurch gekennzeichnet, daß der Cache komplette Werte in Reaktion auf bestimmte erste Operanden ausgibt;40. Apparatus according to claim 39, characterized in that that the cache return complete values in response to certain first operands; daß ein bestimmter zweiter Basiswert-Spezifizierer weiterhin keinen aus der Mehrzahl der Basiswerte spezifiziert;that a certain second base value specifier still does not contain one of the plurality of base values specified; daß die Kombiniereinrichtung die kompletten Werte . , aus dem. Cache empfängt; undthat the combining device contains the complete values . , from the. Cache receives; and daß die Steuereinrichtung auf den bestimmten zweiten Easiswert-Spezifizierer dadurch reagiert, daß sie bewirkt, daß die Kombiniereinrichtung eine dritte Operation des Ausgebens des ungeänderten kompletten Werts ausführt.that the control device on the specific second The base value specifier responds by causing the combiner to generate a third Executes the operation of outputting the unchanged complete value. 41. Vorrichtung nach Anspruch 39, dadurch gekennzeichnet, daß die erste Operation den. ausgewählten Basiswert mit dem zweiten Adressenversatz durch Addition des41. Apparatus according to claim 39, characterized in that the first operation is the. selected underlying with the second address offset by adding the . zweiten Adressenversatzes mit dem ausgewählten Basiswert kombiniert; und . the second address offset combined with the selected base value; and daß die zweite Operation den ausgewählten Basiswert mit dem ersten Adressenversatz durch Linksverschiebung und Zeichenergänzung des ersten Adressenversatzes und durch Addition des linksverschobenen und zeichen-ergänzten ersten Adressenversatzes zu dem ausgewählten Basiswert kombiniert.that the second operation shifts the selected base value with the first address offset to the left and character completion of the first address offset and by adding the left-shifted and character-supplemented first address offset combined to the selected base value. 42. Vorrichtung nach einem der Ansprüche 38 bis 41, dadurch gekennzeichnet,42. Device according to one of claims 38 to 41, characterized marked, daß das Digitalrechnersystem eine Aufrufoperation und eine Returnoperation ausführt; und daß die Eineachvorrichtung weiterhin enthält:that the digital computer system performs a call operation and a return operation; and that the calibration device also contains: (1) eine Speicherladeeinrichtung, die auf jede Aufrufoperation und jede .Returnoperation anspricht, zum Laden der Basiswerte in die Speichereinrichtung; und(1) a memory loader responsive to each call operation and each return operation, for loading the base values into the storage device; and (2) eine Cache-Ungültigmachungseinrichtung, die auf bestimmte Aufrufoperationen und bestimmte Returnoperationen anspricht, um den Cache ungültig zu machen·(2) a cache invalidator based on addresses certain call operations and certain return operations to invalidate the cache do· 43. Eincachvorrichtung in einem digitalen Rechnersystem, das auf Operanden einschließlich erster Operanden einschließlich eines Schlüssels, zweiter Operanden einschließlich eines ersten Basiswert-Sjezifizierer und eines ersten Adressenversatzwerts, und dritter Operanden einschließlich eines zweiten Basi swert-üpezifizierers und des ersten Adressenversatzwerts anspricht, dadurch gekennzeichnet, daß die Eincachvorrichtung aufweist:43. caching device in a digital computer system; that on operands including first operands including a key, second operands including a first base value discriminator and a first address offset value, and third operands including a second base value over-specifier and the first address offset value, characterized in that the caching device having: (1) eine Einrichtung zum Empfangen der Operanden aus dem digitalen Rechnersysten;(1) means for receiving the operands from the digital computing system; (2) einen ersten Cache, der mit der Operandenempfangs einrichtung verbunden ist, zum Ausgeben von Werten einschließlich eines dritten Basiswert-Spezifizierers, des ersten Adressenversatzwerts, und eines zweite.l Adressenversatzwerts in Reaktion auf den Schlüssel;(2) a first cache that handles operand reception means connected for outputting values including a third base value specifier, the first address offset value, and a second address offset value in response to the key; GHIGIINAL INSPECTEDGHIGIINAL INSPECTED 3232 (3) einen zweiten Cache, der mit der Operandenempfangseinrichtung und dem ersten Cache verbunden ist, um auf den ersten Operanden dadurch, anzusprechen, daß er einen ersten Basiswert ausgibt in Reaktion auf den ersten Adressenversatzwert, der durch den ersten Cache in Reaktion auf den Schlüssel ausgegeben wurde, und um auf bestimmte dritte Operanden dadurch anzusprechen, daß er den ersten Basiswert als Reaktion auf den ersten Adressenversatzwert in dem dritten Operanden ausgibt;(3) a second cache connected to the operand receiving means and the first cache is to respond to the first operand by outputting a first base value in response to the first address offset value obtained by the first cache in response to the key has been issued, and in order to address certain third operands, that it has the first base value in response to the first address offset value in the third Outputs operands; (4) eine Speichereinrichtung zum Speichern einer Mehrzahl von zweiten Basiswerten und zum Ausgeben der zweiten Basiswerte;(4) a memory device for storing a plurality of second base values and for outputting them the second base value; (50 eine Kombiniereinrichtung, die mit der Operandenempfangseinrichtung, dem ersten Cache, dem zweiten Cache, und der Speichereinrichtung, verbunden ist, um gleichzeitig Eingangswerte einschließlich des ersten Adressenversatzwerts aus den zweiten Operanden, den zweiten Adressenversatzwert aus äem ersten Cache, des ersten Basiswerts aus dem zweiten Cache, und der zweiten Basiswerte aus der Speichereinrichtung zu .empfangen, mit diesen Werten eine Operation aus einer Mehrzahl von Operationen auszuführen, und ein Ergebnis auszugeben; und(50 a combining device which communicates with the operand receiving device, the first cache, the second cache, and the storage device is to simultaneously input values including the first address offset value from the second operands, the second address offset value from the first cache, the first base value from the second cache, and to .receive the second base values from the storage device, to perform one of a plurality of operations with these values, and a Output result; and (6) eine Steuereinrichtung, die mLt der Operandenempfangseinrichtung, dem erstsn Cache, und der Kombiniereinrichtung verbünde ι ist, um zu bewirken, daß die Kombiniereinrichtung die eine Operation als'Reaktion auf dej. ersten Basiswert-Spezifizierer ausführt, rfenn die Operandenempfangseinrichtung einen ler zweiten Operanden empfängt, in Reaktion auf den zweiten Basiswert-Spezifizierer, wenn die Operandenempfangseinrichtung einen der dritten Operanden empfängt, und in Reaktion auf den dritten Basiswert-Spezifizierer, wenn die Operandenenpfangseinrichtung einen der ersten Operanden empfängt.(6) a control device, the mLt of the operand receiving device, the first cache, and the Combining device ι is to bring about that the combining device the one Operation as a reaction to dej. first base specifier executes, renn the operand receiving means receives a second operand in response to the second base specifier, when the operand receiving means receives one of the third operands, and in response to the third base value specifier, if the operand receiving device receives one of the first operands. Vorrichtung nach Anspruch 43, dadurch gekennzeichnet, daß die Steuereinrichtung auf den ersten durch die Operandenempfangseinrichtung empfangenen Operanden und auf den dritten Basiswert-Spezifizierer dadurch anspricht, daß sie bewirkt, daß die iombiniereinrichtung einen ausgewählten Basiswert aus dem ersten Basiswert und die Mehrzahl der zweiten Basiswerte in Abhängigkeit von den zweiten Basiswerb-Spezifizierern auswählt und eine erste Operation des Kombinierens des ausgewählten Basiswerts mit dem zweiten Adressen-.versatzwert ausführt;Apparatus according to claim 43, characterized in that the control device is activated on the first by the Operand receiving means received operands and to the third base value specifier thereby responds that it causes the combining device a selected base value from the first base value and the plurality of the second base values in Depending on the second basic advertising specifiers and a first operation of combining executes the selected base value with the second address offset value; daß die Steuereinrichtung auf den zweiten durch die Operandenempfangseinrichtung empfangenen Operanden dadurch anspricht, daß sie bewirkt, daß die Korabihiereinrichtung einen zweiten Basiswerfc aus der Mehrzahlthat the control device is based on the second operand received by the operand receiving device is responsive by causing the korabihi device to pick a second base number from the plurality (i.er zweiten Basiswerte in Reaktion auf den ersten Basiswert-Spezifizierer auswählt und- eine zweite Operation des Kombinierens des ausgewählten zweiten 3asiswerts mit dem ersten Adressenversatzwert . . ausführt; und(i.er selects a second base value in response to the first base value specifier and - a second Operation of combining the selected second base value with the first address offset value . . executes; and laß die Steuereinrichtung auf den dritten durch die Operandenempfangseinrichtung empfangenen Operanden iadurch anspricht,, daß sie bewirkt, daß die Kombiaiereinrichtung den ersten Basiswert auswählt und " eine dritte Operation des ungeänderten Ausgebens des ersten Basiswerts ausführt.let the control device respond to the third operand received by the operand receiving device i by responding, that it causes the combiner selects the first base value and "a third operation of unchanged spending of the first underlying. 45. Vorrichtung nach Anspruch 44, dadurch gekennzeichnet, 45. Apparatus according to claim 44, characterized in that daß der erste Cache komplette Werte in Reaktion auf bestimmte erste Namen ausgibt;that the first cache return complete values in response to certain first names; daß ein bestimmter zweiter Baiswert-Spezifizierer-' weder den ersten Basiswert noch einen zweiten Basiswert spezifiziert; that a certain second base value specifier - 'specifies neither the first base value nor a second base value; daß die Kombiniereinrichtung die kompletten Werte aus dem Cache empfängt; undthat the combining device receives the complete values from the cache; and daß äLe Steuereinrichtung auf den ersten Operanden und auf den bestimmten zweiten Basiswert-Spezifizierer dadurch anspricht, daß sie bewirkt, daß die Kombiniereinrichtung eine vierte Operation des ungeänderten Ausgebens des kompletten Werts ausführt.that ä Le control means to the first operand and to the particular underlying second specifier is responsive characterized in that it causes the combining means performs a fourth operation of the outputting of the unmodified full value. 46. Vorrichtung nach Anspruch 44, dadurch gekennzeichnet, daß die erste Operation den ausgewählten Basiswert mit dem zweiten Adressenversatz durch Addition des zweiten Adressenversatzes zu dem ausgewählten Basiswert kombiniert; und 46. Apparatus according to claim 44, characterized in that the first operation uses the selected base value combined with the second address offset by adding the second address offset to the selected base value; and daß die zweite Operation den ausgeählten zweiten Basiswert mit dem ersten Adressenversatz durch Linksverschiebung und Zeichenergänzung des ersten Adressenversatzes und durch Addition den links-verschobenen und ζeichen-ergänzten ersten Adressenversatzes zu dem ausgewählten Basiswer~ kombiniert.that the second operation executes the selected second base value with the first address offset Left shift and character completion of the first address shift and by addition the left shifted and ζ oak-supplemented first address offset combined to the selected base value. 47. Vorrichtung nach einem- der Ansprüche 43 bis 46, dadurch gekennzeichnet,47. Device according to one of claims 43 to 46, characterized, daß das. digitale Rechnersystem eine Aufrufoperation und eine Returnoperation ausführt; daß die Eincachvorrichtung weiterhin aufweist:that the digital computer system is a call operation and executes a return operation; that the caching device further comprises: (1) eine Speicherladeeinrichtung, die auf jede einzelne Auf ruf operation und jec-e einzelne . Returnoperation anspricht, um mindestens einen aus der Mehrzahl der zweiten Ba&iswerte in die Speichereinrichtung zu laden;(1) a memory loader that responds to every single call operation and jec-e individual. Return operation responds to at least one of the plurality of second base values in the Load storage device; (2) eine erste Cache-Ungültigmachun^s-Einrichtung, die auf bestimmte· Aufrufoperationen und bestimmte Returnoperationen anspricht, um den ersten Cache ungültig zu machen; und(2) a first cache invalidation facility, which responds to certain call operations and certain return operations to the first Invalidate cache; and (?) eine zweite Cache-Ungültigmachungs-Einrichtung, die auf jede einzelne Aufrufoperation und jede einzelne Returnoperation anspricht, um einen Teil des zweiten Cache ungültig zu machen.(?) a second cache invalidation facility, on every single call operation and every responds to a single return operation to invalidate part of the second cache. 4-8. Digitales Rechnersystem, insbesondere nach einem der verhergehenden Ansprüche, mit4-8. Digital computer system, in particular according to one of the passing claims, with (1) einer Verart» eitungs einrichtung zum Verarbeiten von Daten in Reaktion auf Befehle;(1) a processing facility for processing data in response to commands; (2) einer Speichereinrichtung von Datenelementen der Daten und der Befehle und zum Empfangen der Datenelemente aus der Verarbeitungseinrichtung und zum Liefern der Datenelemente
und der Befehle an die Verarbeitungseinrichtung in Reaktion auf aus der Verarbeitungseinrichtung empfangene Signale, und
(2) storage means of data items of the data and commands and for receiving the data items from the processing means and for delivering the data items
and commanding the processing device in response to signals received from the processing device, and
(5) einer Übertragungseinrichtung zum Übertragen der Befehle, der bestimmten Signale, und der Datenelemente zwischen der Verarbeitungseinrichtung land der Speichereinrichtung,
und wobei die Prozessoreinrichtung interne Adres-S3n verwendet, um die Speichereinrichtung zu adress Leren, und wobei die ii f;ernen Adressen enthalten:
(5) a transmission device for transmitting the commands, the specific signals, and the data elements between the processing device and the storage device,
and wherein the processor device uses internal addresses S3n to read the memory device, and wherein the addresses contain:
(a) eine Basisadreßkomponente, die eine Basisadresse in der Speichereinrichtung spezifiziert, und(a) a base address component specifying a base address in the memory device, and (b) eine Adressenversatzkomponente, die einen Adressenversatz gegenüber der Basisadre ßkomponente spezifiziert,(b) an address offset component which is an address offset specified in relation to the base address component, und wobei bestimmte Befehle einen ein Datenelement in der Speichereinrichtung repräsentii renden ersten Namen umfassen,and wherein certain instructions have a first representative of a data item in the storage device Names include, und wobei die Speichereinrichtung weiterhin enthält:and wherein the storage device further includes: (a) Prozeduren, die mindestens die Befehle enthalten und(a) Procedures that contain at least the commands and (b) eine jeder Prozedur zugeordnete N;unentabelle, wobei die Hamentabelle einen jeden ersten Namen, der in den Befehlen in der der Nanentabelle zugeordneten Prozedur enthalten i:;t, zugeordneten Namentabelleneintrag enthält, und wobei der Namentabelleneintrag für den ersten Naaen enthält(b) an N; un table assigned to each procedure, where the table of threads contains every first name in the instructions in the table of threads associated procedure contain i:; t, associated name table entry contains, and where the name table entry for the first Naaen contains (I) einen ersten Basis-Spezifizierer, der eine aus der Mehrzahl der Basisadrassen spezifiziert, und(I) a first base specifier which is a specified from the majority of the base addresses, and (II) einen Adressenversatz-Spezifizierer, der ' Information enthält, aus der der Adressen-(Ii) an address offset specifier which is' Contains information from which the address . versatz gegenüber der einen Basisadresse berechnet werden kann, die durch den Basis-Spezifizierer spezifiziert v/lrd,. offset from the one base address can be calculated by the base specifier specified v / lrd, 3838 daß eine Eincachvorrichtung vorgesehen ist, die auf die ersten Namen anspricht, um die internen Adressen einzucachen, und daß die Eincachvorrichtung aufweist:that a caching device is provided which is responsive to the first names to the internal addresses caching, and that the caching device comprises: (1) einen auf den ersten Kamen ansprechenden Cache zum Ausgeben von Daten, die aus den Namentabelleneinträgen abgeleitet sind, wobei die abgeleiteten Daten enthalten:(1) an on-the-fly cache for outputting data obtained from the name table entries are derived, where the derived data include: (a) einen zweiten Basis-Spezifizierer, aer aus dem ersten Basis-Spezifizierer abgeleitet ist,(a) a second base specifier derived from the first base specifier is, (b) den Adressenversatz, der unter Verwendung des Adressenversatz-Spezifizierers Derechnet ist,(b) the address offset calculated using the address offset specifier D, eine eine Mehrzahl von Registern enthaltende Speichereinrichtung zum Speichern und Ausgeben einer Mehrzahl der Basisadressen;a memory device containing a plurality of registers for storing and outputting a plurality of the base addresses; (30 eine K-ombiniereinrichtung, die mit dem uache und der Speichereinrichtung verbunden ist, um den Adressenversatz und die in der Speichereinricntung gespeicherten Adressen im wesentlichen gleichzeitig zu empfangen und eine erste Operation des Addierens einer ausgewählten gespeicherten Basisadresse zu dem Adressenversatz auszuführen; und(30 a K-combining device, which with the uache and the memory device is connected to the address offset and in the memory device stored addresses essentially simultaneously and a first operation of the Perform adding a selected stored base address to the address offset; and ""eine Steuereinrichtung, die mit lern (Jache und der Kombiniereinrichtung verbunden ist, um die ausgewählte gespeicherte Basisaüresse auszuwählen und zu bewirken, daß die Kombiniereinrichtung die erste Operation in Reaktion aui den zweiten Basis-Spezifizierer ausführt."" a control device that learns with (Jache and the combining means is connected to select the selected stored basic data and causing the combining means to respond to the first operation second base specifier. 4-9. Vorrichtung nach Anspruch 48, dadurch gekennzeichnet, daß jeder Ausführung einer der Prozeduren eine bestimmte Mehrzahl der Basisadressen zugeordnet ist; daß das digitale Eeeimersystern eine Aufrufoperation ausführt, die eine Ausführung einer aufrufenden Operation aussetzt, die bestimmte Mehrzahl der Basisadressen für die Ausführung einer aufgerufenen Prozedur, die durch die Aufrufoperation begonnen wurde, bestimmt, und die Ausführung der aufgerufenen Prozedur beginnt; daß das digitale Rechnersystem eine Returnoperation ausführt, um die Ausführung der aufgerufenen Prozedur zu beenden, die Mehrzahl der Basisadressen, die der Ausführung der aufrufenden Prozedur zugeordnet sind, zu bestimmen, und um die Ausführung der aufrufenden Prozedur wieder aufzunehmen;4-9. Device according to Claim 48, characterized in that that every execution of one of the procedures a certain A plurality of the base addresses are assigned; that the digital bucket system is a call operation that suspends execution of a calling operation, executes the determined plurality of the base addresses intended for the execution of a called procedure that was started by the call operation, and execution of the called procedure begins; that the digital computer system carries out a return operation in order to execute the called procedure to terminate the majority of the base addresses assigned to the execution of the calling procedure, determine and resume execution of the calling procedure; daß die Eincachvorrichtung eine Einrichtung enthält, die auf die Aufrufoperation anspricht, um die gespeicherten Basisadressen auf die bestimmte fiehrzahl der Basisadressen zu setzen, die der Ausführung der aufgerufenen Prozedur, die durch die Aufrufoperation begonnen wurde, zugeordnet sind; undthat the caching device includes means responsive to the call operation to the stored Set base addresses to the specific number of base addresses that are used to execute the called Procedure started by the call operation has been assigned; and diiß die Eincachvorrichtung eine Einrichtung enthält, die auf die Returnoperation anspricht, um die gespeicherten Basisadressen auf die bestimmte Mehrzahl der Basisadressen zu setzen, die der Ausführung der aufrufenden Prozedur, die durch die Return-' ' operation wieder aufgenommen wird, zugeordnet sind.that the caching device includes a device which responds to the return operation to the stored Set base addresses to the specific majority of base addresses that are to be executed assigned to the calling procedure, which is resumed by the return '' operation. 50. Vorrichtung nach Anspruch 4-9, dadurch gekennzeichnet ,50. Device according to claim 4-9, characterized , daß bestimmte erste Aufrufoperationen die Ausfuhrung dar aufgerufenen Prozedur beginnen, die eine erste gegenüber der durch die aufrufende Prozedur verwendeten Namentabelle abweichende Namentabelle verwendet; daß erste bestimmte Returnoperationen die Ausführung der aufrufenden Prozedur wieder aufnehmen, die eine gegenüber der durch die aufgerufene Prozedur verwendeten Namentabelle abweichende zweite Namentabelle verwendet ; undthat certain first call operations execute The procedure called start with a first compared to that used by the calling procedure Name table uses different name table; that first certain return operations the execution of the calling procedure resume the one The second name table used differs from the name table used by the called procedure ; and daß die Eincachvorrichtung eine Einricntung enthält, die auf die ersten bestimmten Aufrufbefehie und die zweiten bestimmten Returnbefehle anspricht, um den Cache ungültig zu machen.that the caching device includes a facility that is responsive to the first particular call command and the responds to the second specific return command to invalidate the cache. 51. Vorrichtung nach Anspruch 49, dadurch gekennzeichnet, 51. Apparatus according to claim 49, characterized in that daß die abgeleiteten Daten komplette Adressen enthalten, die aus den NamentabeIleneinträgen abgeleitet sind, die eine bestimmte Basisadresse spezifizieren, und daß bestimmte zweite Basis-Spezifizierer die kompletten Adressen spezifizieren;that the derived data contain complete addresses that are derived from the name bar entries specifying a particular base address and that particular second base specifier specify the complete addresses; daß die Kombiniereinrichtung weiterhin eine zweite Operation des Empfangens der kompletten. Adresse aus dem Cache und des Ausgebens der ungeänderten kompletten Adresse ausi'ührt;that the combining device continues a second operation of receiving the complete. address from the cache and outputting the unchanged complete address; • daß die Steuereinrichtung weiterhin auf die bestimmten zweiten Basis-Spezifizierer anspricht, indem sie bewirkt, daß die Kombiniereinrichtung die zweite Operation ausrührt;• That the control device continues to respond to the specific second base specifier by causing the combiner to execute the perform second operation; daß erste bestimmte Aufrufoperationen die Ausführung der aufgerufenen Prozedur beginnen, die eine gegenüber der durch die aufrufende Prozedur verwendeten bestimmten Basisadresse abweichende erste bestimmte Basisadresse verwendet; daß erste bestimmte Returnoperationen die Ausführung der aufrufenden Prozedur wieder beginnen, die eine von der durch die aufgerufene Prozedur verwendeten bestimmten Basisadresse abweichende zweite bestimmte Basisadresse verwendet; unc. daß die Eincachvorrichtung eine Einrichtung enthält, die auf die ersten bestimmten Aufrufbefehle und die ersten bestimmten Returnbefehle anspricht, um den Cache ungültig zu machen.that the first specific call operations begin the execution of the called procedure, the one The first one differs from the specific base address used by the calling procedure uses certain base address; that first certain return operations the execution restart the calling procedure that used one of the called procedure specific base address uses different second specific base address; unc. that the caching device includes means responsive to the first specific call commands and the responds to the first specific return command to invalidate the cache. 52, Cache zum Ausgeben von Daten in Reaktion auf einen Schlüssel in einem digitalen Rechnersystem, insbesondere nach einem der vorhergehenden Ansprüche,, dadurch gekennzeichnet, daß der Cache aufweist:52, cache for outputting data in response to a Keys in a digital computer system, in particular according to one of the preceding claims, characterized in that the cache has: (1) eine Einrichtung zum Empfangen des Schlüssels; (1) means for receiving the key; (2) eine nehrzahl von Rahmen, wobei jeder Rahmen aus der neiirzahl der Rahmen eine Registereinrichtung zum speichern der Daten enthält; (2) a plurality of frames, each frame of the plurality of frames being a register device to save the data contains; (3) eine Rahmenauswahleinrichtung zum Auswählen eines ersten Rahmens aus der Mehrzahl der Rahmen als laufenden Rahmen; und (3) frame selection means for selecting a first frame from the plurality of frames as a current frame; and (4) eine Einrichtung, die mit der Schlüsselempfangseinrichtung der Registereinrichtung und der Rahmenauswahleinrichtung verbundenist, um die Daten aus der Registereinrichtung in dem laufenden Rahmen in Reaktion aur den Schlüssel auszugeben.(4) a device associated with the key receiving device of the register device and the frame selection means is connected to retrieve the data from the register means in response to issuing the key in the current frame. Cache nach Anspruch 52, dadurch gekennzeichnet, daß jeder Rahmen eine Mehrzahl der Registereinrichtung en aufweist;The cache of claim 52, characterized in that each frame includes a plurality of said register means has en; dab der Schlüssel einen Index enthält, der eine Registereinrichtung aus der Mehrzahl der Registereinrichtungen spezifiziert; undthat the key contains an index which a register facility specified from the plurality of register devices; and daß die Datenausgabeeinrichtung auf die Rahmenauswahleinrichtung und den Schlüssel dadurch anspricht, daß sie die in der einen Registereinrichtung, die durch den Index in dem laufenden Rahmen spezifiziert wird, enthaltenen Daten ausgibt.that the data output device responds to the frame selection device and the key, that they are in the one register device that specified by the index in the current frame. Vorrichtung nach Anspruch 52, dadurch gekennzeichnet, daß die Rahmenauswahl einrichtung einen neuen laufenden Rahmen in Reaktion auf bestimmte Operationen des digitalen Rechnersystems auswählt.Apparatus according to Claim 52, characterized in that the frame selection device generates a new current one Selects frames in response to certain operations of the digital computing system. 55· Vorrichtung nach Anspruch 54·» dadurch gekennzeichnet, daß die Rahmenauswahleinrichtung den laufenden Rahmen aus einer Aufeinanderfolge der Mehrzahl von Rahmen auswählt; und55 · Device according to claim 54 · »characterized in that that the frame selector is the current frame selects from a sequence of the plurality of frames; and daß der neue laufende Rahmen dem laufenden Rahmen in der Aufeinanderfolge unmittelbar benachbart ist.that the new current framework is in the current framework the sequence is immediately adjacent. 56. Vorrichtung nach Anspruch 52, dadurch gekennzeichnet, 56. Apparatus according to claim 52, characterized in that daß die Rahmenauswahleinrichtung weiterhin einen zweiten Rahmen aus der Mehrzahl von Rahmen als einen nächsten Rahmen auswählt; und
daß der Cache außerdem enthält:
that the frame selection means further selects a second frame from the plurality of frames as a next frame; and
that the cache also contains:
(1) eine Einrichtung zum Empfangen der in dem Cache zu speichernden Daten und(1) means for receiving the data to be stored in the cache and (2) eine juatenschreibeinrichtung, die mit der .Datenempfangseinrichtung, aer Rahmenauswahleinrichtung und der üchlusselempfangseinrichtung verbunden ist und auf die Rahmenempfangseinrichtung und den Schlüssel anspricht, um die Daten (2) a data writing device which is connected to the data receiving device, the frame selection device and the key receiving device and which is responsive to the frame receiving device and the key in order to convert the data . ' in die Registereinrichtung in dem laufenden Rahmen oder in dem nächsten Rahmen einzuschreiben, der durch die Rahmenauswahleinrichtung spezifiziert ist.. '' to write in the register facility in the current frame or in the next frame, which is specified by the frame selector. 57. Vorrichtung nach Anspruch i>6, dadurch gekennzeichnet, daß die Rahmenauswahleinrichtung einen neuen laufenden Rahmen und einen neuen nächsten Rahmen in Reaktion auf bestimmte Operationen des digitalen Rechnersystems auswählt.57. Device according to claim i> 6, characterized in that that the frame selector creates a new one current frame and a new next frame in response to certain operations of the digital Computer system selects. 58'. Vorrichtung nach Anspruch 5'Λ dadurch gekennzeichnet ,58 '. Device according to claim 5'Λ characterized , daß die Rahmenau swahl einrichtung den laufenden Rahmen und den nächsten Rahmen aus einer Aufeinanderfolge aer Mehrzahl von Rahmen auswählt; und daß der nächste Rahmen jener Rahmen ist, der dem laufenden Rahmen in der Aufeinanderi'olge folgt.that the frame selection device matches the current frame and select the next frame from a sequence of the plurality of frames; and that the next frame is the frame that follows the current frame in sequence. 59. Vorrichtung nach Anspruch 57 oaer 5Ö, dadurch gekennzeichnet ,59. Apparatus according to claim 57 or 5Ö, characterized , - aaß das digitale Reoimersystem Aufrufoperationen und Returnoperationen ausführt;- the digital Reoimer system ate call operations and perform return operations; daß die bestimmten Operationen die Aufrufoperationen und die Returnoperationen einschließen; daß die Rahmenauswahleinrichtung auf die Aufruxoperation dadurch anspricht, daß sie den Rahmen, der dem laufenden Rahmen in der Aufeinanderfolge folgt, als den neuen laufenden Rahmen auswählt; und daß die Rahmenauswahleinrichtung auf die Returnoperafcion dadurch anspricht, daß sie den Rahmen, der dem laufenden Rahmen in der Aufeinanderfolge vorausgeht, als den neuen laufenden Rahmen auswählt.that the specified operations include the call operations and the return operations; that the frame selector responds to the call-up operation by having the frame, which follows the current frame in sequence, selects as the new current frame; and that the frame selection device on the return operafcion by addressing the frame that precedes the current frame in the sequence, as the new current frame. 60. Vorrichtung nach einem der Ansprüche i?6 "bis 5ö,
dadurch gekennzeichneg,
60. Device according to one of claims i? 6 "to 5ö,
characterized by
daß der Cache weiterhin eine Einrichtung zum
Empfangen eines ersten Signals, da3 den laufenden
Rahmen spezifiziert, und eines zweiten Signals, das den nächsten Rahmen spezifiziert;, aufweist;
daß jeder Rahmen eine Wehrzahl von Registereinrichtungen enthält; ' .
that the cache continues to have a facility for
Receiving a first signal that the current one
Frame specified, and a second signal specifying the next frame;
that each frame contains a number of registers; '.
daß der Schlüssel einen Index enthält, der eine Registereinrichtung aus der Mehrzahl von Registereinrichtungen spezifiziert;that the key contains an index which a register facility specified from the plurality of register devices; daß die Datenausgabeeinrichtung auf aie Rahmenaus-■ wähleinrichtung und den Schlüssel dadurch anspricht, daß sie die Daten ausgibt, die in der durch den Index spezifizierten einen Registereinrichtung in dem laufenden Rahmen enthalten sind;that the data output device responds to the frame selection ■ device and the key, that it outputs the data in the one register device specified by the index in the current Frames are included; daß die Rahmenauswahleinrichtung mit der signalempfangseinrichtung verbunden ist und auf das erste Signal dadurch anspricht, daß sie den laufenden Rahmen auswählt, und auf das zweite Signal dadurch anspricht, daß sie den nächsten Rahmen auswählt; und daß die Dateneinschreibeinrichtung weiterhin auf den Index anspricht und die Daten in das in den Index spezifizierte Register in dem durch die Rahmenauswahleinrichtung spezifizierten Rahmen einschreibt.that the frame selection device with the signal receiving device and is responsive to the first signal by passing the current frame selects and is responsive to the second signal by selecting the next frame; and that the data writing device continues to respond to the index and specified the data in the in the index Writes registers in the frame specified by the frame selector. 61. Eincachvörrichtung in einem digitalen .Rechnersystem, insbesondere nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß es einen Stapelspeicher enthält, der aufweist:61. Caching device in a digital computer system, in particular according to one of the preceding claims, characterized in that it is a stack memory contains, which has: (1) eine erste Mehrzahl von Registereinrichtungen zum Speichern von Daten und zum Ausgeben der gespeicherten Daten aus einer der Registereinrichtungen in Reaktion auf eine Adresse, die eine Registereinrichtung spezifiziert, daß die erste Hehrzahl der Registereinrichtungen in eine Mehrzahl von Rahmen unterteilt ist, daß jeder Rahmen eine zweite Mehrzahl von Registereinrichtungen enthält, und daß die Adresse eine einen Rahmen aus der Mehrzahl von Rahmen spezifizierende Rahmenadresse und eine eine Registereinrichtung aus der zweiten Mehrzahl der Registereinrichtungen in dem durch die Rahmenadresse spezifizierten Rahmen spezifizierende Registeradresse enthält;(1) a first plurality of register means for storing data and outputting the stored data Data from one of the register devices in response to an address provided to a register device specifies that the first plurality of registers are divided into a plurality of frames is subdivided in that each frame contains a second plurality of register devices, and that the address, a frame address specifying one frame out of the plurality of frames, and a one Register device from the second plurality of register devices in that by the frame address specified frame specifying register address contains; (2) eine Einrichtung zum Empfangen eines Schlüssels in der Eincachvorrichtung; (2) means for receiving a key in the caching device; (3) eine Adressiereinrichtung, die mit der Schlüsselempfangseinrichtung und der ersten Mehrzahl der(3) an addressing device associated with the key receiving device and the first plurality of ^. Registereinrichtungen verbunden ist, um die Adresse in Reaktion auf den (Schlüssel zu liefern, und die enthält:^. Register facilities connected to the address in response to the (key to be delivered, and which includes: (a.) eine Rahmenadressiereinrichtung zum .Liefern einer laufenden Rahmenadresse einer Aufeinanderfolge von Rahmenadressen als die Rahmenadresse in der Adresse,(a.) A frame addressing device for delivering a current frame address of a sequence of frame addresses as the frame address in the address, 4?4? (bj eine Inkrementiereinrichtung, die auf die erste Operation des digitalen Rechnersystems anspricht, um die laufende Rahmenadresse in die Rahmenadresse in der Aufeinanderfolge umzuändern, die der laufenden Rahmenadresse folgt,(bj an incrementing device that works on the first Operation of the digital computer system responds to the current frame address in the Change the frame address in the order that follows the current frame address, (c; eine Dekrementiereinrichtung, die auf eine(c; a decrementer, which is based on a zweite Operation des digitalen Rechnersystems anspricht, um die laufende Rahmenadresse in die Rahmenadresse in der Aufeinanderfolge umzuwandein, die der laufenden Rahmenadresse vorangeht , undsecond operation of the digital computer system responds to the current frame address in the Frame address in the order preceding the current frame address , and Cd) eine Einrichtung zum liefern einer Registeradresse, um die Registeradresse in der Adresse aus dem Schlüssel abzuleiten.Cd) a device for supplying a register address, to derive the register address in the address from the key. 6'd. Vorrichtung nach Anspruch 61, dadurch gekennzeichnet, daß die Registereinrichtung in der ersten Mehrzahl von ■ Registereinrichtungen weiterhin eine Gültigkeitsinformation enthält, die die Gültigkeit der gespeicherten Daten spezifiziert und die Gültigkeitsinformation in Reaktion auf die Adresse ausgibt; und 6'd. Apparatus according to claim 61, characterized in that the register means in the first plurality of ■ register means further contains validity information which specifies the validity of the stored data and outputs the validity information in response to the address; and daß eine Einrichtung vorgesehen ist, die auf die Gültigkeitsinformation anspricht, um die in Abhängigkeit von dem Schlüssel adressierte Registereinrichtung zu laden, wenn die Gültigkeitsinformation anzeigt, daß die in der adressierten Registereinrichtung gespeicherten Daten ungültig sind.that a device is provided which is based on the validity information responds to load the register device addressed as a function of the key, if the validity information indicates that the addressed register device invalid are. 6j>* Vorrichtung nach Anspruch 61, dadurch gekennzeichnet, daß die Aufeinanderfolge der Rahmenadressen eine zirkulare Aufeinanderfolge der Eahmenadressen ist, einschließlich der Rahmenadressen der Bahmen in der Mehrzahl von Rahmen von dem ersten Rahmen in der ersten Mehrzahl von Registereinrichtungen bis zum letzten Rahmen in der ersten Mehrzahl von Registereinrichtungen; und daß die Rahmenadresse für den letzten Rahmen in der ersten Mehrzahl der Registereinrichtungen der Rahmenadresse für den ersten Rahmen in der ersten Mehrzahl der Registereinrichtungen in der zirkulären Aufeinanderfolge vorausgeht. 6y> * apparatus according to claim 61, characterized in that the succession of frame addresses is a circular sequence of Eahmenadressen, including the frame addresses of the Bahmen in the plurality of frames of the first frame in said first plurality of register means to the last frame in the first Plurality of register devices ; and in that the frame address for the last frame in the first plurality of register devices precedes the frame address for the first frame in the first plurality of register devices in circular succession. 64. Vorrichtung nach Anspruch 6$, dadurch gekennzeichnet, daß die Einrichtung zum Liefern der laufenden Rahmenadresse ein zyklischer Zähler zum Zählen einer Aufeinanderfolge von Werten ist, die so viele Werte umfassen, wie es Rahmen in der Mehrzahl von Rahmen gibt; daß die Inkrementiereinrichtung den zyklischen Zähler inkrementiert; und64. Device according to claim 6, characterized in that that the means for supplying the current frame address is a cyclic counter for counting a sequence of values including as many values as there are frames in the plurality of frames; that the incrementing device increments the cyclic counter; and daß die Dekrementiereinrichtung den zyklischen Zähler dekrementiert.that the decrementer the cyclic counter decremented. Vorrichtung nach Anspruch 61, dadurch gekennzeichnet, ^Apparatus according to claim 61, characterized in that ^ daß 3ie Rahmenadressiereinrichtung weiterhin eine nächste Rahmenadresse liefert, die der laufenden Rahmenadresse in der Aufeinanderfolge von Rahmenadressen folgt;that the frame addressing device continues to deliver a next frame address, that of the current frame address follows in the sequence of frame addresses; daJi die Inkremental ereinri chtung weiterhin die nächste Rahmenadresse in die Rahmenadresse in der Aufeinander folge ändert, die der nächsten Bahmenadresse folgt; daß die Dekrement!ereinrichtung weiterhin die nächste Rahmenadresse in die Rahmenadresse in der Aufeinanderfolge ändert, die der nächsten Hahmenadresse vorausgeht ; und
daß die Eineachvorrichtung weiterhin aufweist:
that the incremental device continues to change the next frame address to the frame address in the sequence that follows the next frame address; that the decrement device continues to change the next frame address to the frame address in the sequence which precedes the next frame address; and
that the Eineach device furthermore has:
(1) eine Einrichtung zum Empfangen der in der Eincachvorrichtung zu speichernden Daten und(1) means for receiving the data to be stored in the caching device and (2) eine Datenschreibeinrichtung, die auf die Adressiereinrichtung anspricht, um die Daten in die Registereinrichtung in aem laufenden Rahmen oder dem nächsten Rahmen einzuschreiben, der durch die Adressiereinrichtung spezifiziert ist.(2) a data writing device based on the Addressing device responds to the data in the register device in aem current Frame or the next frame specified by the addressing means is. 66· Torrichtung nach Anspruch 6>, dadurch gekennzeichnet, etaß die Einrichtung zum Liefern der laufenden Rahmenadresse ein erster zyklischer Zähler zum Liefern eines ersten Werts einer Aufeinanderfolge von Werten ist, die so viele Werte umfassen, wie es Rahmen in der Mehrzahl von Rahmen gibt;66 · Door direction according to claim 6>, characterized in that etass the facility for supplying the current frame address is a first cyclic counter for supplying a first value of a sequence of values which include as many values as there are frames in the plurality of frames; daß die Einrichtung zum Liefern der nächsten Rahmenadresse ein zweiter zyklischer Zähler ist, der einen zweiten Wert der Aufeinanderfolge von Werten liefert, der dem ersten Wert in der Aufeinanderfolge von Werten unmittelbar folgt;that the means for supplying the next frame address is a second cyclic counter that supplies a second value of the sequence of values, which immediately follows the first value in the sequence of values; daß die Inkrementiereinrichtung den ersten zyklischen Zähler una den zweiten zyklischen Zähler gleichzeitig inkrementiert; undthat the incrementer the first cyclic Counter and the second cyclic counter at the same time incremented; and daß die Dekrementiereinrichtung den ersten zyklischen Zähler und den zweiten zyklischen Zähler gleichzeitig dekrementiert.that the decrementing means the first cyclic counter and the second cyclic counter at the same time decremented. 67· Vorrichtung nach Anspruch 65, dadurch gekennzeichnet, daß die Registereinrichtung in der ersten Mehrzahl der Registereinrichtungen weiterhin eine Gültigkeitsinformation enthält, die die Gültigkeit der gespeicherten JJaten spezifiziert und die Gültigkeitsinformation in Reaktion auf die Adresse ausgibt; und daß die Eincachvorricntung weiterhin eine Einrichtung aufweist, die auf die Gültigkeitsinformation anspricht, um die in Reaktion auf den Schlüssel adressierte Registereinrichtung im laufenden Rahmen zu laden, wenn die Gültigkeitsinformation anzeigt, daß die in der adressierten Registereinrichtung gespeicherten Daten ungültig sind.67 · Device according to claim 65, characterized in that that the register means in the first plurality of Register devices continue to have validity information which specifies the validity of the stored data and the validity information in Outputs response to the address; and that the caching device continues to be a facility which is responsive to the validity information to the register means addressed in response to the key to load in the current frame if the validity information indicates that the addressed register device are invalid. 68. Vorrichtung nach Anspruch 65, dadurch gekennzeichnet, daß die Adressiereinrichtung die nächste Rahuienadresse in Reaktion auf die erste Operation liefert ^ und daß die Dateneinschreibeinrichtung Daten in die Registereinrichtung einschreibt, die durch die Adressiereinrichtung in Reaktion auf die erste Operation spezifiziert wird.68. Apparatus according to claim 65, characterized in that that the addressing means the next Rahuien address in response to the first operation, the data writing device supplies data in the register device that is specified by the addressing means in response to the first operation will. 69- Vorrichtung zum Setzen der Gültigkeitsinformation · für eine Mehrzahl von ersten Registern, insbesondere für ein ßechnersystem und/oder eine Eincachvorrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß sie aufweist:69- Device for setting the validity information · For a plurality of first registers, in particular for a computer system and / or a caching device according to one of the preceding claims, characterized in that it comprises: (1) einen ersten Schreib-Lese-Speicher, insbesondere Eandomspeicher, der η erste Register und eine Einrichtung zum.Empfangen einer ersten Adresse aufweist, die eines der η ersten Re-• gister adressiert;(1) a first read-write memory, in particular Eandom memory, the η first register and a device for receiving a first Has an address that addresses one of the η first registers; ·· ' (2) eine Mehrzahl von m zweiten bchreib-Lese-Speichern, insbesondere Randomspeiehern, zum Speichern der Gültigkeitsinformation, wobei · jeder der zweiten Schreib-Lesa-Schreiber min- ·: destens - zweite Register entiiält, wobei jedes der zweiten Register in einem ersten Speicher der zweiten Schreib-Lese-Speioher einem ersten Register entspricht, dessen erste Adresse ohne' Rest durch m teilbar ist, wobei jedes der zweiten Register in einem zweiten Speicher der zweiten Schreib-Lese-Speicher einem ersten Register entspricht, dessen erste Adresse bei der Division durch m einen Rest von 1 hat, und so weiter bis zu einem m-ten Speicher der zweiten Schreib-Lese-Speicher, wobei jedes·· '(2) a plurality of m second write-read memories, in particular random storage, for storing the validity information, where each of the second read-write writers contains at least two registers, each the second register in a first memory; the second read / write memory; a first Corresponds to a register whose first address is divisible by m without a remainder, where each of the second register in a second memory of the second read-write memory a first register whose first address has a remainder of 1 when divided by m, and so on up to an m-th memory of the second read-write memory, each : Register der bestimmten zweiten Register in: Register of the specific second register in dem m-ten Speicher einem ersten Registerthe m-th memory to a first register entspricht, dessen ersue Adresse bei der Division durch m einen fiest von m - 1 hat, und jeder .Speicher von den zweiten Schreib-Lese-Speichern eine Einrichtung zum Empfangen einer zweiten Adresse enthält;whose first address when divided by m has a fiest of m - 1, and each .Memory of the second read / write memories, a device for receiving a second Address contains; '(3) eine Adressiereinrichtung für die zweiten üchreib-Lese-Speicher, die mit der Mehrzahl von zweiten Schreib-Lese-Speichern verbunden ist, um gleichzeitig eine zweite Adresse an die Einrichtung zum Empfangen der zweiten Adresse in jedem zweiten Schreib-Lese-Speicher zu liefern;'(3) an addressing device for the second read / write memories, which is connected to the plurality of second read-write memories to simultaneously a second address to the means for receiving the second address in every other Supply read-write memory; (4-) eine Einrichtung zum Liefern einer Gültigkeitsinformation, die mit der Mehrzahl der zweiten Schreib-Lese-Speicher verbunden ist, um gleichzeitig die Gültigkeitsinformation an jeden zweiten Schreib-Lese-Speicher zu liefern; und(4-) means for providing validity information associated with the plurality of the second Read / write memory is connected to simultaneously send the validity information to every second Supply read-write memory; and /■ ·/ ■ · eine Aktivierungseinrichtung, die mit der nehrzahl der zweiten Schreib-Lese-Speicher verbunden ist, um gleichzeitig jeden zweiten Schreib-Lese-Speicher dazu zu aktivieren, die Gültigkeitsinformation in das zweite Register in jedem zweiten Schreib-Lese-Speicher einzuspeichern, der durch die zweite Adresse adressiert wird.an activation device with the number the second read-write memory is connected to simultaneously every second read-write memory to activate the validity information in the second register in every second To store read / write memory that is addressed by the second address. : ::-:. *: : :. ' *: 333457 53: :: - :. *:::. '* : 333457 53 VO. Vorrichtung zum üetzen der Gültigkeit.3infοrmation nach Anspruch 69» dadurch gekennzeichnet, daß die Vorrichtung zum üetzen der Gültigkeitsinformation weiterhin aufweistVO. Device for enforcing the validity. 3 information according to claim 69 »characterized in that the device for setting the validity information continues to have (1) eine erste tichreib-Lese-tipeicher-Adressiereinrichtung, die mit der Einrichtung zum Empfangen der ersten Adresse verbunden ist, um die erste Adresse an den ersten tichreib-Lese-Speicher zu liefern,(1) a first write-read-write-memory addressing device, which is connected to the device for receiving the first address in order to transfer the first address to the first write-read memory to deliver, (2) eine erste tiignalempfangseinrichtung zum Empfangen eines ersten tiignals, das spezifiziert, daß die Gültigkeitsiniormation in das bestimmte zweite Register geladen werden muß, das dem ersten durch die erste Adresse adressierten Register entspricht; und(2) a first signal receiving device for Receiving a first tisignal specifying that the validation iniormation in the particular second register must be loaded, which corresponds to the first by the first address corresponds to the addressed register; and {j>) eine zweite Signal empfangseinrichtung zum Empfangen eines zweiten üignals, aas spezifiziert, daß die Gültigkeitsinformation gleichzeitig in eine Mehrzahl der bestimmten zweiten Register geladen werden muß; {j>) a second signal receiving device for receiving a second signal which specifies that the validity information must be loaded simultaneously into a plurality of the specific second registers; daß die zweite üchreib-Lese-üpeicher-Adressiereinrichtung aufweist:that the second write-read-memory addressing device having: eine erste Adreßtransformationseinrichtung, die mit der ersten Schreib-Lese-Speicher-Einrichtung verbunden ist und auf das erste Signal anspricht, um die ersten Adressen aus der ersten Schreib-liese-Speicher-Adressiereinrichtung zu empfangen und die zweiten Adressen zu liefern, die gleich sind dem ganzzahligen Ergebnis (Integer-Ergebnis) der Division der ersten Adresse durch m in Reaktion auf das erste Adressensignal, undfirst address transformation means coupled to the first read / write memory means and responsive to the first signal for receiving the first addresses from the first read / write memory addressing means and providing the second addresses which are the same to the integer results (integer result) of the division of the first address by m in response to the first address signal, and (bj eine zweite Adressenerzeugungseinrichtung, die auf das zweite Signal anspricnt, um die zweiten Adressen zu erzeugen; und(bj a second address generating device, responsive to the second signal to generate the second addresses; and aaß die Aktivierungseinrichtung mit der ersten Signal empfangseinrichtung, der zweiten signal emprangseinrichtung und der ersten Schreib-Lese-Speicherüdressiereinrichtung verbunden ist, eine Einrichtung enthält, um alternativ einen Speicher aus der Mehrzahl von Schreib-Lese-Speichern gleichzeitig zu aktivieren, und auf das erste Signal dadurch anspricht, daß sie den einen aus den zweiten Schreib-Lese-Speichern aktiviert, der das zweite Eegister enthält, das dem ersten Register entspricht, das durch die Adresse adressiert wird, und daß sie auf das zweite Signal dadurch anspricht, daß sie gleichzeitig alle zweiten Scnreib-Lese-Speicher aktiviert,aass the activation device with the first signal receiving device, the second signal receiving device and the first read / write memory addressing means is connected, contains means for alternatively a memory from the plurality to activate read / write memories at the same time, thereby responding to the first signal, that it activates one of the second read / write memories that activates the second register which corresponds to the first register addressed by the address and that it is on the second signal responds in that it simultaneously activates all second read / write memories, _ COPY_ COPY 5555 wobei die Vorrichtung zum Setzen der Gültigkeits- · information auf die erste Adresse und das erste Signal dadurch anspricht, daß sie die Gültigkeitsinformation in das bestimmte zweite Register ent-. ' sprechend dem ersten Register lädt, das durch die erste Adresse spezifiziert wird, und daß sie auf das zweite Signal dadurch reagiert, daß sie die Gül-• tigkeitsinformation gleichzeitig in las bestimmte zweite Register, das durch die zweite Adresse spezifiziert wird, in jedem aus der Mehrzahl der zweiten Schreib-Lese-Speicher lädt.whereby the device for setting the validity information responds to the first address and the first signal in that they ent- the validity information in the specific second register. 'Speaking of the first register specified by the first address, and that it loads on the second signal reacts by simultaneously determining the validity information in read second register specified by the second address in each of the plurality of the second Read / write memory is loading. 71. Vorrichtung zum üetzen der Gültigkeitsinformation nach Anspruch 69 oder 70> dadurch gekennzeichnet, daß der erste Schreib-Lese-Speicher 2^ erste Register enthält, wobei j eine positive Ganzzahl ist, und71. Device for putting the validity information according to claim 69 or 70> characterized in that that the first read-write memory 2 ^ first register contains, where j is a positive integer, and daß die Mehrzahl der zweiten Schreib-Lese-Speicher 2 zweite Schreib-Lese-Speicher enthält, wobei k eine positive Ganzzahl ist, die kleiner ist als j.that the plurality of second read-write memories 2 contains second read-write memories, where k is one is a positive integer that is less than j. 72. Vorrichtung zum üetzen der Gültigkei^sinformation nach Anspruch 69 oder '/0, dadurch gekennzeichnet, daß die ersten Register in eine Mehrzahl von Rahmen unterteilt sind; und72. Device for putting the validity information according to claim 69 or '/ 0, characterized in that the first registers are divided into a plurality of frames are divided; and daß die zweite Adreßerzeugungseinrichtung auf cias. zweite Signal dadurch reagiert, daß nie die zweiten Adressen erzeugt, die die bestimmten zweiten Register entsprechend den ersten Registern in einem spezifizierten Rahmen spezifizieren.that the second address generating device on cias. second signal responds by never generating the second addresses specifying the particular second registers corresponding to the first registers in a specified frame. Vorrichtung zum betzen der Gültigkeitsinformation nach Anspruch 70» dadurch gekennzeichnet, daß die ersten Register in eine Mehrzahl von Rahmen . unterteilt sind;Device for setting the validity information according to Claim 70 »characterized in, that the first registers in a plurality of frames. are divided; daß die zweite üignaiempfangseinrichtung eine Mehrzahl der zweiten Signale empfängt, einschließlichthat the second üignaiempfangseinrichtung a plurality the second receives signals including (a) ein Rahmen-ilush-Üignal, das angibt, daß .die Gültigkeitsinformation in die bestimmten zweiten Register geladen werden muß, die den ersten Registern in einem der Rahmen entsprechen, und(a) a frame ilush signal indicating that .The validity information must be loaded into the specific second registers that correspond to the first registers in one of the frames, and (bj ein Voll-ülush-Signal, das angibt, daß die Gültigkeitsinformation in alle bestimmten zweiten Register geladen werden muji;(bj a full ulush signal, which indicates that the Validity information is loaded into all the designated second registers muji; daß die erste öchreib-Lese-öpeicher-Adressiereinrich- · tung mit der zweiten üignalempfangseinrichtung verbunden ist, eine Einrichtung zum juiefern einer Rahmenadresse enthält, die einen Rahmen aus der nebrzahi eier Rahmen spezifiziert, und daß sie auf aas Rahmen-Flush-Signal dadurch reagiert, daß sie eine einzelne Rahmenadresse liefert, und daß sie auf das Voll-Flush-Signal dadurch reagiert, daß sie eine Sequenz von Rahmenadressen einschließlich der Rahmenadresse für jeden Rahmen in dem ersten ßchreib-ijese-üpeicher liefert; undthat the first read-write-memory addressing device device connected to the second signal receiving device is a device for supplying a frame address Contains a frame from the nebrzahi eggs Frames specified and that they respond to aas frame flush signal responds by providing a single frame address and responding to the full flush signal respond by providing a sequence of frame addresses including the frame address for each frame supplies in the first write-ijese-memory; and daü die zweite Adreüerzeugungseinrichtung mit aer Bahmenadreii-Lieferungs-Einrichtung verbunden ist und. auf aas Eahmen-Flush-Signal dadurch anspricht,daü the second address generating device with aer Bahmenadreii delivery facility is connected and. responds to the frame flush signal by cL&B.- sie die zweiten Adressen erzeugt unter Verwendung der durch die Eahmenadrelierzeugungseinrichtung gelieferten Eahmenadresse, und daß sie aui" das VoIi-Flusti-Signal durch Erzeugung der zweiten Adressen unter Verwendung der üequenz von Eahmenadressen, die durch die ßahmenadr eiil ie ferung s einrichtung geliefert wird, reagiert. cL & B.- it generates the second addresses using the frame address supplied by the frame address generating device and that it generates the VoIi-Flusti signal by generating the second addresses using the sequence of frame addresses supplied by the frame address generating device will respond. 74-. Eechnersystem und Eincach-Vorrichtung, dadurch gekennzeichnet, daß die Eineachvorrichtung einen ersten Cache und einen mit diesem verbundenen zweiten Cache aufweist,74-. Computer system and caching device, characterized in that that the Eineachvorrichtung a first Has a cache and a second cache connected to it, 75· . Eechnersystem und Eincachvorrichtung nach Anspruch 7^» gekennzeichnet durch ihre Ausbildung nach einem der Ansprüche 1 bis 73.75 ·. Computer system and caching device according to claim 7 ^ » characterized by their design according to one of Claims 1 to 73. 76. Eechnersystem und Eincachvorrichtung nach Anspruch oder 75» dadurch gekennzeichnet, daß die Eincachvorrichtung aufweist: Einen ersten Cache, einen mit diesem verbundenen zweiten Cache, Eegister.zum Speichern von Daten, einen Addierer, der Eingangssignale aus einem mit dem ersten Cache verbundenen ersten Multiplexer und aus einem mit dem zweiten Cache und den Eegistern verbundenen zweiten Multiplexer empfängt, und eine mit dem ersten Cache, dem ersten Multiplexer und dem zweiten Multiplexer verbundene steuereinrichtung.76. Computer system and caching device according to claim or 75 »characterized in that the caching device comprises: a first cache, one with this connected second cache, Eegister. for storing Data, an adder, the input signals from a first multiplexer connected to the first cache and receives from a second multiplexer connected to the second cache and the registers, and a control means connected to the first cache, the first multiplexer and the second multiplexer.
DE19833334579 1982-09-27 1983-09-24 DEVICE FOR STORING IN A CACHE Granted DE3334579A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US06/425,027 US4652996A (en) 1982-09-27 1982-09-27 Encachment apparatus using multiple frames and responding to a key to obtain data therefrom
US06/425,030 US4652995A (en) 1982-09-27 1982-09-27 Encachement apparatus using multiple caches for providing multiple component values to form data items
US06/425,029 US4473881A (en) 1982-09-27 1982-09-27 Encachement apparatus

Publications (2)

Publication Number Publication Date
DE3334579A1 true DE3334579A1 (en) 1984-05-24
DE3334579C2 DE3334579C2 (en) 1989-12-07

Family

ID=27411451

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19833334579 Granted DE3334579A1 (en) 1982-09-27 1983-09-24 DEVICE FOR STORING IN A CACHE

Country Status (3)

Country Link
EP (1) EP0105815B1 (en)
DE (1) DE3334579A1 (en)
GB (1) GB2127998B (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2853926A1 (en) 1977-12-16 1979-06-21 Philips Nv WORD-ORGANIZED, CONTENTLY ADDRESSABLE MEMORY
EP0010185A1 (en) * 1978-10-23 1980-04-30 International Business Machines Corporation Virtual-addressing device for a computer

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2230258A5 (en) * 1973-05-16 1974-12-13 Honeywell Bull Soc Ind
US4084225A (en) * 1976-09-24 1978-04-11 Sperry Rand Corporation Virtual address translator
US4264953A (en) * 1979-03-30 1981-04-28 Honeywell Inc. Virtual cache
US4481573A (en) * 1980-11-17 1984-11-06 Hitachi, Ltd. Shared virtual address translation unit for a multiprocessor system
US4458310A (en) * 1981-10-02 1984-07-03 At&T Bell Laboratories Cache memory using a lowest priority replacement circuit

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2853926A1 (en) 1977-12-16 1979-06-21 Philips Nv WORD-ORGANIZED, CONTENTLY ADDRESSABLE MEMORY
EP0010185A1 (en) * 1978-10-23 1980-04-30 International Business Machines Corporation Virtual-addressing device for a computer

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
DE-Z., Elektronik 5, 12.3.1982, S. 59-68
DE-Z.: Elektronik 5, 12.03.1982, S. 59-68
DE-Z.: Elektronik 5, 12.03.82, S. 59-68
Elektronik, 12.3.1982, S.59-68 *
EP-OS 52370, S.1-15 u. Fig. 1 *

Also Published As

Publication number Publication date
EP0105815A3 (en) 1985-06-19
DE3334579C2 (en) 1989-12-07
EP0105815A2 (en) 1984-04-18
GB2127998A (en) 1984-04-18
GB2127998B (en) 1986-06-18
GB8325341D0 (en) 1983-10-26
EP0105815B1 (en) 1988-08-24

Similar Documents

Publication Publication Date Title
DE3151745C2 (en)
DE69534113T2 (en) Compression of the command words of a computer
DE69133302T2 (en) Register mapping in a single clock cycle
DE69723286T2 (en) REAL TIME PROGRAMMING LANGUAGE ACCELERATOR
DE69433621T2 (en) DEVICE FOR PROCESSING COMMANDS IN A COMPUTER SYSTEM
DE69534148T2 (en) Computer system for executing branch instructions
DE2226382C3 (en) Data processing system with several processors and buffer memories assigned to them
DE69738188T2 (en) METHOD AND APPARATUS FOR INCREASED ACCURACY IN THE BRANCHING FORECAST IN A SUPERSCALAR MICROPROCESSOR
DE60203612T2 (en) DATA PROCESSING WITH MULTI-COMMAND PHRASES
DE19855806A1 (en) Device for execution of sub routines and jump operations in computer
DE2948668A1 (en) BUFFER UNIT
DE2715073C3 (en) Microprogrammed computer control device
DE2417795C2 (en) Data processing system
DE4335475A1 (en) Data processing circuit with cache memory - has first and second command transfer memories for single and multiple line commands, and transfers required commands to cache memory
DE60036960T2 (en) DISTINCTION OF FINE CORR TRANSLATION
DE2630323B2 (en) Data storage device with a main memory, an auxiliary memory and a look-ahead logic
DE102015101414A1 (en) Improved return stack buffer
DE10297624T5 (en) Control levels of compatibility of binary code translations between instruction set architectures
DE4237417A1 (en) Memory processor that allows aggressive execution of load commands
DE3833933A1 (en) INFORMATION PROCESSING DEVICE WITH AN ADDRESS EXTENSION FUNCTION
DE2944419A1 (en) DIGITAL COMPUTER SYSTEM
DE112017005014B4 (en) Qualifying the browsing of a branch predictor using the prediction of a data stream length
DE19824289C2 (en) Pipeline processing machine
DE2134816C3 (en) Address translation facility
DE3932695A1 (en) DATA PROCESSING SYSTEM OF MULTIPLE VIRTUAL ADDRESS ROOM TYPE

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8125 Change of the main classification

Ipc: G06F 12/08

8131 Rejection
8170 Reinstatement of the former position
8172 Supplementary division/partition in:

Ref country code: DE

Ref document number: 3348295

Format of ref document f/p: P

Ref country code: DE

Ref document number: 3348297

Format of ref document f/p: P

Q171 Divided out to:

Ref country code: DE

Ref document number: 3348295

Ref country code: DE

Ref document number: 3348297

8172 Supplementary division/partition in:

Ref country code: DE

Ref document number: 3348296

Format of ref document f/p: P

Ref country code: DE

Ref document number: 3348298

Format of ref document f/p: P

Q171 Divided out to:

Ref country code: DE

Ref document number: 3348298

Ref country code: DE

Ref document number: 3348296

AH Division in

Ref country code: DE

Ref document number: 3348298

Format of ref document f/p: P

Ref country code: DE

Ref document number: 3348296

Format of ref document f/p: P

Ref country code: DE

Ref document number: 3348295

Format of ref document f/p: P

Ref country code: DE

Ref document number: 3348297

Format of ref document f/p: P

D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee