DE3932227A1 - MULTIPROCESSOR SYSTEM - Google Patents

MULTIPROCESSOR SYSTEM

Info

Publication number
DE3932227A1
DE3932227A1 DE19893932227 DE3932227A DE3932227A1 DE 3932227 A1 DE3932227 A1 DE 3932227A1 DE 19893932227 DE19893932227 DE 19893932227 DE 3932227 A DE3932227 A DE 3932227A DE 3932227 A1 DE3932227 A1 DE 3932227A1
Authority
DE
Germany
Prior art keywords
data
memory
buffer
buffer memory
working
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE19893932227
Other languages
German (de)
Inventor
Toshihisa Taniguchi
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE3932227A1 publication Critical patent/DE3932227A1/en
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

In a multiprocessor system containing a main store MS, first-level working buffer stores WS, second-level buffer stores BS, and buffer store directories BAA, WAA, having a WS storage capacity which is a multiple of the BS capacity and having a structure in which each BS is used exclusively in a processor unit 63a-d, a plurality of flag bits associated with any WAA indicate whether or not data in the WS corresponding to a given processor unit is stored in the WS corresponding to another processor unit or in the BS connected thereto. When the WS data is rewritten, storage control is executed by retrieving the WAA of the WS and invalidating the data in the WS corresponding to the other processor unit and in the BS connected thereto, according to the values of the flag bits of an entry of the corresponding directory. Invalidation of data one BS block at a time, rather than a line of blocks at a time, is thus possible. <IMAGE>

Description

Die Erfindung betrifft ein Multiprozessorsystem mit einer hierarchischen Speicherstruktur und insbesondere ein Multiprozessorsystem mit einer zwei oder mehr Ebenen aufweisenden Speicherstruktur, die einen Hauptspeicher und eine Pufferspeicheranordnung aufweist, wobei eine Speichersteuerung auf jeder Ebene und die Verarbeitung von einer Mehrzahl von Prozessoren ausgeführt wird, und in der eine exklusive Datensteuerung zwischen einer Mehrzahl von Pufferspeichern wirksam ausgeführt wird, wenn Daten mit der gleichen Adresse in die Mehrzahl der Pufferspeicher einer jeden Ebene eingegeben werden.The invention relates to a multiprocessor system a hierarchical memory structure and in particular a multiprocessor system with a two or more levels having memory structure, which is a main memory and has a buffer memory arrangement, wherein a Memory control at every level and processing executed by a plurality of processors, and in which an exclusive data control between a Plurality of buffers is effectively executed if data with the same address in the majority of Buffer memory of each level can be entered.

In herkömmlichen Datenverarbeitungsanlagen ist die eine hierarchische Speicherstruktur besitzende Multiprozes­ sorsystemtechnik verwendet worden, um die Verarbeitungs­ geschwindigkeit und die Verarbeitungskapazität zu stei­ gern.In conventional data processing systems, one is hierarchical memory structure having multiprocesses system technology has been used to process  speed and processing capacity too steep gladly.

In Fig. 6 ist ein Beispiel eines solchen herkömmlichen Multiprozessorsystems mit einer hierarchischen Speicher­ struktur erläutert.An example of such a conventional multiprocessor system with a hierarchical memory structure is explained in FIG. 6.

Wie in Fig. 6. gezeigt, weist die Speicherstruktur des Multiprozessorsystems eine hierarchische Dreiebenen­ struktur auf, die aus einem Hauptspeicher (HS) 61, einem in einer Speichersteuerung (SS) 62 enthaltenen Arbeits­ pufferspeicher (AS) 66 und aus Pufferspeichern (PS) 64 a und 64 b, die in entsprechenden Zentraleinheiten (CPU) 63 a und 63 b enthalten sind, besteht. Der AS 66, der SS 62 ist mit einem Eingabe/Ausgabeprozessor (EAP) 65 ver­ bunden, der eine Kanalverarbeitungsfunktion aufweist und die Eingabe/Ausgabesteuerung ausführt. Zwischen dem HS 61, dem AS 66 und den PS 64 a und 64 b wird eine Speicher­ steuerung ausgeführt, während die Datenverarbeitung an­ hand der Lesedaten der CPU 63 a bzw. 63 b und eines Pro­ gramms vom HS 61 ausgeführt wird.As shown in FIG. 6, the memory structure of the multiprocessor system has a hierarchical three-level structure which consists of a main memory (HS) 61 , a working buffer memory (AS) 66 contained in a memory controller (SS) 62 and buffer memories (PS) 64 a and 64 b , which are contained in corresponding central processing units (CPU) 63 a and 63 b . The AS 66 , the SS 62 is connected to an input / output processor (EAP) 65 , which has a channel processing function and performs the input / output control. A memory controller is executed between the HS 61 , the AS 66 and the PS 64 a and 64 b , while the data processing is carried out on the basis of the read data of the CPU 63 a and 63 b and a program from the HS 61 .

In einem solchen Multiprozessorsystem wird die Daten- Übertragung vom AS 66 zu den PS 64 a bzw. 64 b mittels Blockeinheiten ausgeführt, während die Datenübertragung vom HS 61 zum AS 66 mittels sogenannter Zeileneinheiten, die aus einem oder einer Mehrzahl (n) von Blöcken beste­ hen, ausgeführt wird. Die in Fig. 6 gezeigte Zeilenein­ heit (A) besteht aus vier Blockeinheiten (a 0, a 1, a 2 und a 3). Wenn beispielsweise die CPU 63 a im Block a 0 enthal­ tene Daten liest, dieser Block a 0 jedoch nicht im PS 64 a der CPU 63 a enthalten ist, so wird auf den AS 66 der SS 62 zugegriffen, damit die Eingabe des Blocks a 0 in den PS 64 a erfolgen kann. Wenn in diesem Fall im AS 66 keine den Block a 0 enthaltende Zeile A vorhanden ist, greift die SS 62 auf den HS 61 zu, liest die Zeile A aus dem HS 61 aus und gibt sie einerseits in den AS 66 ein und überträgt sie andererseits zum PS 64 a.In such a multiprocessor system, the data transfer from the AS 66 to the PS 64 a or 64 b is carried out by means of block units, while the data transfer from the HS 61 to the AS 66 by means of so-called line units, which consist of one or a plurality ( s ) of blocks hen is executed. The line unit ( A ) shown in Fig. 6 consists of four block units ( a 0 , a 1 , a 2 and a 3 ). For example, if the CPU 63 a reads data contained in block a 0 , but this block a 0 is not contained in the PS 64 a of the CPU 63 a , the AS 66 of the SS 62 is accessed so that the entry of block a 0 can be done in the PS 64 a . If in this case the AS 66 does not have line A containing the block a 0 , the SS 62 accesses the HS 61 , reads the line A from the HS 61 and on the one hand enters it into the AS 66 and transmits it on the other to PS 64 a .

Wenn z.B. die CPU 63 b Daten in den Block a 0 überträgt, dieser Block a 0 jedoch im PS 64 b nicht vorhanden ist, so wird der Block a 0 ebenfalls aus dem AS 66 eingegeben. Wenn, wie in Fig. 6 gezeigt, der Block a 0 in den PS 64 a eingetragen wird, ist der Block a 0 daher gleichzeitig sowohl im PS 64 a als auch im PS 64 B vorhanden.For example, if the CPU 63 b transfers data to block a 0 , but this block a 0 is not present in PS 64 b , block a 0 is also entered from AS 66 . If, as shown in FIG. 6, block a 0 is entered in PS 64 a , block a 0 is therefore present in both PS 64 a and PS 64 B at the same time.

In einem System mit einer solchen hierarchischen Spei­ cherstruktur wird als Speicherverfahren zum Schreiben von Daten in jeden der Pufferspeicher oftmals ein "Durchspeicher-Verfahren" (Store-Through-Verfahren), d.h. ein Verfahren, in dem gleichzeitig in einen Haupt- Speicher und in einer Pufferspeicher geschrieben wird, für den PS 64 a und PS 64 b verwendet, um die Steuerung zu erleichtern, während für den AS 66 ein "Einspeicher-Ver­ fahren" (Store-In-Verfahren), d.h. ein Verfahren, in dem nur in den Arbeitspufferspeicher geschrieben und in den Hauptspeicher nur für den Austausch wieder eingeschrie­ ben wird, verwendet, um die Durchsätze zu verringern. In dem in Fig. 6 gezeigten System werden für die PS 64 a und PS 64 b das "Durchspeicher-Verfahren" und für den AS 66 das "Einspeicher-Verfahren" verwendet.In a system with such a hierarchical storage structure, a "store-through" method is often used as the storage method for writing data into each of the buffer memories, that is, a method in which a main memory and a memory are used simultaneously Buffer memory is written, used for the PS 64 a and PS 64 b to facilitate control, while for the AS 66 a "Einspeicher process" (store-in process), ie a process in which only in the Working buffer memory is written and rewritten into the main memory only for the exchange, used to reduce the throughputs. In the system shown in FIG. 6, the "store-through method" is used for the PS 64 a and PS 64 b and the "store-in method" for the AS 66 .

Hierbei besteht die Möglichkeit, daß Daten desselben Blocks gleichzeitig in den PS 64 a und in den PS 64 b ein­ getragen werden, wie oben beschrieben worden ist. Wenn z.B. die CPU 63 a Daten in den Block a 0 des PS 64 a in ei­ nem solchen Zustand wieder einschreibt, in dem der Block a 0 gleichzeitig sowohl im PS 64 a als auch im PS 64 b vor­ handen ist, wird der Block a 0 im PS 64 a aktualisiert, während der Block a 0 im PS 64 b nicht aktualisiert wird, obwohl die Dateninhalte miteinander identisch sein soll­ ten, wodurch eine Datenfehlanpassung zwischen den Puf­ ferspeichern bewirkt wird.Here, there is a possibility that data of the same block in the PS 64 a and in the PS 64 b are carried simultaneously, as has been described above. If, for example, the CPU 63a writes data back into the block a 0 of the PS 64 a in such a state in which the block a 0 is present in both the PS 64 a and the PS 64 b at the same time, the block a 0 in PS 64 a updated, while block a 0 in PS 64 b is not updated, although the data contents should be identical to one another, which causes a data mismatch between the buffer memories.

Wenn ferner im AS 66 des SS 62 Daten des Blocks a 0 durch die Eingabe/Ausgabeverarbeitung mittels des EAP 65 wie­ der eingeschrieben oder geändert werden, wird der Block a 0 weder im PS 64 a noch im PS 64 b aktualisiert, so daß eine Datenfehlanpassung zwischen dem Block a 0 im AS 66 und dem Block a 0 im PS 64 a und im PS 64 b bewirkt wird.Further, if in the AS 66 of the SS 62, data of the block a 0 is written or changed by the input / output processing by the EAP 65 as that, the block a 0 is not updated in either the PS 64 a or the PS 64 b , so that data mismatch between block a 0 in AS 66 and block a 0 in PS 64 a and in PS 64 b .

Um die Datenfehlanpassung zwischen den Pufferspeichern zu verhindern, ist daher eine Verarbeitung erforderlich, die denjenigen Block des Pufferspeichers, dessen Daten nicht aktualisiert werden, ungültig macht.The data mismatch between the buffers processing is therefore necessary to prevent that block of the buffer memory, its data not be updated, invalidates.

In Fig. 7 ist ein Beispiel einer Blockinvalidierungsver­ arbeitung des Pufferspeichers im Multiprozessorsystem erläutert. In Fig. 7 bezeichnen die Bezugszeichen 67 a und 67 b PS-Verzeichnisse (Pufferadressenfelder: PAF), in denen Daten einer Hauptspeicheradresse, deren Daten im Pufferspeicher enthalten sind, gespeichert sind; diese PS-Verzeichnisse 67 a und 67 b entsprechen dem PS 64 a bzw. dem PS 64 b, d.h. das PS-Verzeichnis (PAF) 67 a ist ein Verzeichnis der im PS 64 a gespeicherten Daten, während das PAF 67 b ein Verzeichnis der im PS 64 b gespeicherten Daten ist. Die PAF 67 a und 67 b weisen eine Mehrzahl von Eintragungen auf, von denen jede so angeordnet ist, daß sie wenigstens in einem 1 : 1-Verhältnis jedem der Blöcke des PS 64 a und des PS 64 b entspricht. Wie in Fig. 8 ge­ zeigt, weist jede der Eintragungen einen Adressenbereich (ADR) 68, der Adreßdaten kennzeichnet, die die Entspre­ chung eines Pufferspeicherblocks mit einer Hauptspei­ cheradresse angeben, und einen Gültigkeitsbitbereich (G- Bit) 69, der die Gültigkeit einer Eintragung kennzeich­ net, auf.In Fig. 7, an example of block invalidation processing of the buffer memory in the multiprocessor system is explained. In Fig. 7, reference numerals 67 denote a and 67 b PS-directories (buffer address fields: PAF), in which data of a main memory address whose data is contained in the buffer memory are stored; these PS directories 67 a and 67 b correspond to the PS 64 a and the PS 64 b , ie the PS directory (PAF) 67 a is a directory of the data stored in the PS 64 a , while the PAF 67 b is a directory of data stored in PS 64 b . The PAF 67 a and 67 b have a plurality of entries, each of which is arranged so that it corresponds at least in a 1: 1 ratio to each of the blocks of the PS 64 a and the PS 64 b . As shown in FIG. 8, each of the entries has an address area (ADR) 68 that identifies address data indicating the correspondence of a buffer block with a main memory address, and a valid bit area (G bit) 69 that indicates the validity of an entry flag net on.

In Fig. 7 sind ferner Schnittstellen 71, 72 und 73 ge­ zeigt, die entsprechend die CPU 63 a, die CPU 63 b und den EAP 65 miteinander verbinden und zur Steuerung der Inva­ lidierungsverarbeitung verwendet werden. Jede der Schnittstellen 71, 72 und 73 stellt einen Signalweg für die Übertragung eines Signals an jede der CPU′s dar, wo­ bei diese Signale die Speicherung in jeder der entspre­ chenden CPU′s 63 a, 63 b und 63 c und die entsprechenden Speicheradressen kennzeichnen.In Fig. 7, interfaces 71 , 72 and 73 are also shown, which accordingly connect the CPU 63 a , the CPU 63 b and the EAP 65 to each other and are used to control the invalidation processing. Each of the interfaces 71 , 72 and 73 represents a signal path for the transmission of a signal to each of the CPU's, where with these signals the storage in each of the corresponding CPU's 63 a , 63 b and 63 c and the corresponding memory addresses mark.

Wenn der Block a 0 im PS 64 a und im PS 64 b vorhanden ist, wird im Adressenbereich 68 der entsprechenden Eintragung des PAF 67 a und des PAF 67 b eine Hauptspeicheradresse ADR a 0 im HS 61 für den Block a 0 eingetragen, während das G-Bit des Gültigkeitsbitbereichs 69 der entsprechen­ den Eintragung den Wert "1" besitzt und dadurch anzeigt, daß die Daten des Blocks gültig sind. Wenn die CPU 63 a Daten in den Block a 0 des PS 64 a in diesem Beispiel wie­ der einschreibt, wird über die Schnittstelle 71 der CPU 63 b mitgeteilt, daß der Block a 0 geschrieben wird. Damit kann die CPU 63 b im PAF 67 b den Block a 0 suchen; die Eintragung wird für ungültig erklärt, d.h. das G-Bit wird auf den Wert "0" gesetzt, wenn sich herausstellt, daß die über die Schnittstelle 71 geschickte Speicher­ adresse ADR a 0 der CPU 63 a im PAF 67 b eingetragen ist. If the block a 0 is present in the PS 64 a and the PS 64 b , a main memory address ADR a 0 is entered in the HS 61 for the block a 0 in the address area 68 of the corresponding entry of the PAF 67 a and the PAF 67 b , while the G bit of the valid bit area 69 which corresponds to the entry has the value "1" and thereby indicates that the data of the block are valid. If the CPU 63 a writes data into the block a 0 of the PS 64 a in this example like this, the interface 71 tells the CPU 63 b that the block a 0 is written. The CPU 63 b can thus search for the block a 0 in the PAF 67 b ; the entry is declared invalid, ie the G bit is set to the value "0" if it turns out that the memory address ADR a 0 of the CPU 63 a sent via the interface 71 is entered in the PAF 67 b .

Wenn sich herausstellt, daß die Adresse ADR a 0 nicht im PAF 67 b eingetragen ist, wird keine Invalidierungsverar­ beitung ausgeführt. Die Speicherverarbeitung in der CPU 63 b wird ebenso ausgeführt, wie oben bereits beschrieben worden ist. Wenn ferner der EAP 65 eine Speicherverar­ beitung im AS 66 (Fig. 6) ausführt, wird über die Schnittstelle 73 sowohl zur CPU 63 a als auch zur CPU 63 b eine Speicheradresse geschickt. Die Invalidierungsverar­ beitung für die CPU′s 63 a und 63 b wird ebenso ausge­ führt, wie oben bereits beschrieben worden ist.If it turns out that the address ADR a 0 is not entered in the PAF 67 b , no invalidation processing is carried out. The storage processing in the CPU 63 b is also carried out, as has already been described above. Furthermore, if the EAP 65 executes a memory processing in the AS 66 ( FIG. 6), a memory address is sent via the interface 73 to both the CPU 63 a and the CPU 63 b . The Invalidierungsverar processing for the CPU's 63 a and 63 b is also carried out, as has already been described above.

In Fig. 9 ist ein weiteres Beispiel der Blockinvalidie­ rungsverarbeitung für den Pufferspeicher im Multiprozes­ sorsystem erläutert. In diesem Beispiel ist in der Spei­ chersteuerung (SS) eine Kopie des Pufferadressenfeldes (PAF), das ein Verzeichnis des Pufferspeichers dar­ stellt, als Frontadressenfeld (FAF) vorgesehen, um für den Pufferspeicher eine Identitätskontrolle auszuführen. Wie in Fig. 9 gezeigt, ist also die SS 62 zusätzlich mit einem FAF 77 a, das eine Kopie des PAF 67 a darstellt, und mit einem FAF 77 b, das eine Kopie des PAF 67 b darstellt, ausgerüstet. Die Struktur des Frontadressenfeldes 77 a bzw. 77 b ist dieselbe wie diejenige des Pufferadressen­ feldes 67 a bzw. 67 b. Wenn im Pufferspeicher ein Daten­ block eingetragen wird und die Adressendaten im PAF ein­ getragen werden, werden dieselben Adressendaten zusätz­ lich im entsprechenden FAF eingetragen.In Fig. 9, another example of block invalidation processing for the buffer memory in the multiprocessor system is explained. In this example, a copy of the buffer address field (PAF) , which represents a directory of the buffer memory, is provided in the memory controller (SS) as a front address field (FAF) in order to carry out an identity check for the buffer memory. As shown in FIG. 9, the SS 62 is additionally equipped with a FAF 77 a , which is a copy of the PAF 67 a , and with a FAF 77 b , which is a copy of the PAF 67 b . The structure of the front address field 77 a and 77 b is the same as that of the buffer address field 67 a and 67 b . If a data block is entered in the buffer memory and the address data is entered in the PAF , the same address data is also entered in the corresponding FAF .

Wenn beispielsweise der Block a 0 gleichzeitig im PS 64 a und im PS 64 b vorhanden ist, wird die Blockadresse ADR a 0 sowohl im PAF 67 a und im PAF 67 b als auch im FAF 77 a und im FAF 77 b eingetragen. Um zu diesem Zeitpunkt der CPU 63 a das Wiedereinschreiben der Daten in den Block a 0 des PS 64 a zu ermöglichen, wird von der CPU 63 a über die Schnittstelle 74 an die SS 62 eine Speicheranforderung ausgegeben, da die Daten im PS entsprechend dem "Durch­ speicher-Verfahren" eingetragen werden. Die SS 62 schreibt in den Block a 0 im AS 66 die angeforderten Da­ ten wieder ein und untersucht das FAF 77 b, um zu ermit­ teln, ob der Block im PS 64 b vorhanden ist. Wenn die Adresse ADR a 0 des Blocks a 0 auch im FAF 77 b eingetragen ist, macht die SS 62 die Eintragung im FAF 77 b ungültig. Zur gleichen Zeit wird über die Schnittstelle 75 an die CPU 63 b eine Invalidierung der Eintragung im PAF 67 b an­ gefordert, woraufhin die CPU 63 b die Eintragung im PAF 67 b ungültig macht.For example, if block a 0 is present in PS 64 a and PS 64 b at the same time, block address ADR a 0 is entered in PAF 67 a and PAF 67 b as well as in FAF 77 a and FAF 77 b . To allow for this time, the CPU 63 a rewriting of the data in the block a 0 of the PS 64 a is a outputted from the CPU 63 via the interface 74 to the SS 62 is a store request because the data in the PS corresponding to the " By means of the storage method ". The SS 62 writes the requested data into the block a 0 in the AS 66 and examines the FAF 77 b to determine whether the block is present in the PS 64 b . If the address ADR a 0 of the block a 0 is also entered in the FAF 77 b , the SS 62 invalidates the entry in the FAF 77 b . At the same time b via the interface 75 to the CPU 63 invalidation of registration in the PAF 67 b on demand, whereupon the CPU 63 b, the entry in the PAF 67 b invalidates.

Wenn die CPU 63 b ebenso wie oben beschrieben eine Spei­ cheranforderung ausgibt, untersucht die SS 62 die FAF 77 a und macht die Eintragung ungültig, falls die Block­ adresse im PAF 67 b eingetragen ist; ferner veranlaßt sie über die Schnittstelle 74 die CPU 63 a, die Eintragung des PAF 67 a ungültig zu machen. Wenn der EAP 65 eine Speicherforderung ausgibt, untersucht die SS 62 sowohl das PAF 77 a als auch das PAF 77 b und macht deren Ein­ tragungen ungültig, falls die entsprechende Blockadresse eingetragen ist.If the CPU 63 b issues a storage request as described above, the SS 62 examines the FAF 77 a and invalidates the entry if the block address is entered in the PAF 67 b ; it also causes the CPU 63 a via the interface 74 to invalidate the entry of the PAF 67 a . When the EAP 65 issues a memory request, the SS 62 examines both the PAF 77 a and the PAF 77 b and invalidates their entries if the corresponding block address is entered.

Die SS 62 ist zusätzlich zu den Verzeichnissen FAF 77 a und FAF 77 b mit einem Arbeitspufferadressenfeld (AAF) 76, das ein Verzeichnis des AS 66 darstellt, versehen. Wie in Fig. 10 gezeigt, weist jede Eintragung im AAF 76 einen Gültigkeitsbitbereich 78, der eine gültige Eintra­ gung kennzeichnet, einen Adressenbereich 79, der eine der Eintragung entsprechende Hauptspeicheradresse einer Zeile des AS 66 kennzeichnet, und einen Wiedereinschrei­ be/Nichtwiedereinschreibe-Bitbereich (C-Bitbereich) 80, der angibt, daß die Zeile in den AS 66 eingetragen wor­ den ist und daß dann die Zeile wieder eingeschrieben wurde, auf. Da in den Arbeitspufferspeicher mittels des "Einspeicher-Verfahrens" eingetragen wird, bestimmt die SS 62 aufgrund der Anzahl der Bits im C-Bitbereich 80, ob die aus dem AS 66 geholte Zeile wieder in den HS 61 geschrieben werden muß, wenn die Zeile im AS 66 ersetzt wird.In addition to the directories FAF 77 a and FAF 77 b, the SS 62 is provided with a working buffer address field (AAF) 76 , which represents a directory of the AS 66 . As shown in FIG. 10, each entry in the AAF 76 has a valid bit area 78 indicating a valid entry, an address area 79 indicating a main memory address corresponding to the entry of a line of the AS 66 , and a rewriting / non-rewriting bit area ( C bit area) 80 , which indicates that the line was entered in the AS 66 and that the line was then rewritten. Since the "buffering" method is used to enter the working buffer memory, the SS 62 determines, based on the number of bits in the C-bit area 80 , whether the line fetched from the AS 66 must be written back to the HS 61 if the line in the AS 66 is replaced.

Es muß jedoch festgestellt werden, daß eine Erweiterung der Datenverarbeitungsanlage gefordert worden ist, um ein System auszubilden, mit dem Datenmengen, die in der letzten Zeit stark zugenommen haben, verarbeitet werden können oder das für verschiedene Einsatzformen geeignet ist.However, it must be noted that an extension the data processing system has been requested to to train a system with which amounts of data in the have increased significantly in recent times, are processed can or suitable for different types of use is.

Das Blockschaltbild von Fig. 11 erläutert ein Beispiel eines Multiprozessorsystems, das ein gegenüber dem in Fig. 6 gezeigten Multiprozessorsystem noch erweitertes System darstellt. Dieses erweiterte Multiprozessorsystem weist vier Zentraleinheiten (CPU#0 63 a, CPU#1 63 b, CPU#2 63 c und CPU#3 63 d) und zwei Eingabe/Ausgabeprozessoren (EAP#0 65 a und EAP#1 65 b) auf. Diese Systemstruktur wird durch Hinzufügung zweier Zentraleinheiten und eines Ein­ gabe/Ausgabeprozessors zur Systemstruktur des in Fig. 6 gezeigten Multiprozessorsystems ausgebildet. In dieser Datenverarbeitungsanlage werden die Zentraleinheiten (CPU) und die Eingabe/Ausgabeprozessoren (EAP), deren Anzahl jeweils doppelt so groß ist wie im in Fig. 6 ge­ zeigten Multiprozessorsystem, miteinander verbunden.The block diagram of FIG. 11 explains an example of a multiprocessor system, which represents a system which is still expanded compared to the multiprocessor system shown in FIG. 6. This extended multiprocessor system has four central processing units (CPU # 0 63 a , CPU # 1 63 b , CPU # 2 63 c and CPU # 3 63 d) and two input / output processors (EAP # 0 65 a and EAP # 1 65 b) . This system structure is formed by adding two central processing units and an input / output processor to the system structure of the multiprocessor system shown in FIG. 6. In this data processing system, the central processing units (CPU) and the input / output processors (EAP) , the number of each of which is twice as large as in the multiprocessor system shown in FIG. 6, are connected to one another.

Wenn ein Multiprozessorsystem mit der in Fig. 11 gezeig­ ten Systemstruktur erweitert werden soll, müssen die folgenden Probleme gelöst werden: in der Speichersteue­ rung (SS) 62 im in Fig. 11 gezeigten Multiprozessorsy­ stem ist die Ausführung einer Verarbeitung erforderlich, die sich durch die Annahme von Anforderungen von jeder der vier CPU′s und jedem der beiden EAP′s ergibt; daher sollte das System einen Durchsatz haben, mit dem Verar­ beitungsanforderungen von insgesamt sechs Maschinen be­ wältigt werden können. Hierfür ist in der Speichersteue­ rung dieses erweiterten Multiprozessorsystems eine in­ terne Hochgeschwindigkeitssteuerlogik erforderlich, wes­ halb die logische Steuereinheit kompliziert wird, die Anzahl der Hardware-Logikelemente ansteigt und ein Hoch­ geschwindigkeitsspeicherelement erforderlich wird. Um ferner die Trefferrate von Anforderungen von jedem der Anforderungsausgabeelemente, also der CPU′s 63 a, 63 b, 63 c und 63 d und der EAP′s 65 a und 65 b so hoch wie im in Fig. 6 gezeigten System zu halten, ist eine Arbeitspuf­ ferspeicherkapazität (AS-Kapazität) erforderlich, die doppelt so groß ist wie die Arbeitspufferspeicherkapazi­ tät des in Fig. 6 gezeigten Systems. Weiterhin ist die Verwendung einer großen Anzahl von Leitungen, die die CPU′s 63 a, 63 b, 63 c und 63 d und die EAP′s 65 a und 65 b mit der SS 62 verbinden, ebenso erforderlich wie die Ausstattung der SS 62 mit Anschlußöffnungen, deren An­ zahl derjenigen der Verbindungsleitungen entspricht.If a multiprocessor system with the system structure shown in FIG. 11 is to be expanded, the following problems must be solved: in the memory controller (SS) 62 in the multiprocessor system shown in FIG. 11, it is necessary to carry out processing which is characterized by the Acceptance of requests from each of the four CPU's and each of the two EAP's results; therefore, the system should have a throughput that can handle processing requirements from a total of six machines. This requires an internal high-speed control logic in the memory control of this expanded multiprocessor system, which is why the logic control unit becomes complicated, the number of hardware logic elements increases and a high-speed memory element becomes necessary. In addition, in order to keep the hit rate of requests from each of the request output elements, that is, the CPU's 63 a , 63 b , 63 c and 63 d and the EAP's 65 a and 65 b as high as in the system shown in FIG. 6, a working buffer storage capacity (AS capacity) is required which is twice as large as the working buffer storage capacity of the system shown in FIG. 6. Furthermore, the use of a large number of lines that connect the CPU's 63 a , 63 b , 63 c and 63 d and the EAP's 65 a and 65 b with the SS 62 is just as necessary as the equipment of the SS 62 with connection openings, the number of which corresponds to that of the connecting lines.

Wie oben beschrieben worden ist, kann der Kompliziert­ heitsgrad der Steuerlogik des in Fig. 11 gezeigten Mul­ tiprozessorsystems zur Erweiterung von dessen System­ struktur nicht erhöht werden, ohne daß die Steuerlogik aufgrund der Hardware-Leistungsfähigkeit verschiedene Einschränkungen erfährt. As described above, the degree of complexity of the control logic of the multiprocessor system shown in FIG. 11 for expanding its system structure cannot be increased without the control logic being subjected to various restrictions due to the hardware performance.

Alternativ dazu kann ein Multiprozessorsystem beispiels­ weise mit einer Struktur ausgebildet werden, in der ge­ trennte Speichersteuerungen eingebaut sind. Ein diesem Beispiel gemäßes Multiprozessorsystem wird mit Bezug auf Fig. 12 beschrieben, in der ein Blockschaltbild gezeigt ist, das eine Ausführungsform einer Multiprozessorsy­ stemstruktur, in der zwei Speichersteuerungen eingebaut sind, erläutert. Die Datenverarbeitungsanlage des in Fig. 12 gezeigten Multiprozessorsystems weist zwei Spei­ chersteuerungen (SS#0, SS#1) 62 a und 62 b; vier Zentraleinheiten (CPU#0, CPU#1 und CPU#3) 63 a, 63 b, 63 c und 63 d und zwei Eingabe/Ausgabeprozessoren (EAP#0, EAP#1) 65 a und 65 b auf. Wie in Fig. 12 gezeigt, ist bei einer solchen Systemstruktur die Anzahl der mit jeweils einer Speichersteuerung (SS) 62 a bzw. 62 b verbundenen CPU′s und EAP′s gleich derjenigen der in Fig. 6 erläu­ terten Systemstruktur. Daher sind die für die SS 62 a und 62 b geforderten Durchsätze in dem in Fig. 12 gezeigten System beinahe gleich dem für die SS 62 von Fig. 6 ge­ forderten Durchsatz, so daß die Systemstruktur nicht wie bei der in Fig. 11 gezeigten Systemstruktur durch die Hardware-Leistungsfähigkeit eingeschränkt ist.Alternatively, a multiprocessor system can be formed, for example, with a structure in which separate memory controllers are installed. A multiprocessor system according to this example will be described with reference to Fig. 12, which shows a block diagram illustrating an embodiment of a multiprocessor system structure in which two memory controllers are installed. The data processing system of the multiprocessor system shown in FIG. 12 has two memory controllers (SS # 0, SS # 1) 62 a and 62 b ; four central processing units (CPU # 0, CPU # 1 and CPU # 3) 63 a , 63 b , 63 c and 63 d and two input / output processors (EAP # 0, EAP # 1) 65 a and 65 b . As shown in Fig. 12, in such a system structure, the number of CPU's and EAP's connected to a memory controller (SS) 62 a and 62 b , respectively, is the same as that of the system structure explained in Fig. 6. Therefore, the throughputs required for the SS 62 a and 62 b in the system shown in FIG. 12 are almost the same as the throughput required for the SS 62 of FIG. 6, so that the system structure is not as in the system structure shown in FIG. 11 is limited by hardware performance.

In der in Fig. 12 gezeigten Systemstruktur ist es jedoch erforderlich, eine PS-Datenidentitätskontrolle in jeder der CPU′s sowohl für die PS 64 c und 64 d als auch für die PS 64 a und 64 b auszuführen. Weiterhin ist die Ausführung der Datenidentitätskontrolle für die AS 66 a und 66 b in den jeweiligen Speichersteuerungen 62 a bzw. 62 b erfor­ derlich.In the system structure shown in Fig. 12, however, it is necessary to perform a PS data identity check in each of the CPU's for both the PS 64 c and 64 d and the PS 64 a and 64 b . Furthermore, the execution of the data identity check for the AS 66 a and 66 b in the respective memory controllers 62 a and 62 b is necessary.

Wenn beispielsweise Daten des Blocks a 0 weder im AS noch im PS eingetragen sind, gibt die CPU 63 a an die SS 62 a eine Leseanforderung zum Lesen von Daten im Block a 0 aus. Dann werden die den Block a 0 enthaltende Zeile A in den AS 66 a und der Block a 0 in den PS 64 a eingetragen. Wenn in diesem Zustand auch die CPU 63 c eine Leseanfor­ derung zum Lesen der Daten des Blocks a 0 an die SS 62 b ausgibt, wird die Zeile A in den AS 66 b und der Block a 0 in den PS 64 c eingetragen. Wenn von der CPU 63 b und von der CPU 63 d eine Leseanforderung zum Lesen von Daten des Blocks a 0 in diesem Zustand an die SS 62 a bzw. an die SS 62 b ausgegeben wird, so wird der Block a 0 außerdem in den PS 64 b bzw. PS 64 d eingetragen. Folglich ist die Zeile A in beiden Arbeitspufferspeichern AS 66 a und 66 b eingetragen, während sämtliche Pufferspeicher PS 64 a, 64 b, 64 c und 64 d in einem Zustand sind, in dem der Block a 0 gleichzeitig eingetragen ist.For example, if a data block are neither registered in the AS 0 even in the PS, the CPU 63 outputs a to the SS 62 from a read request to read data in the block a 0th Then line A containing block a 0 is entered in AS 66 a and block a 0 in PS 64 a . If in this state the CPU 63 c issues a read request to read the data of block a 0 to SS 62 b , row A is entered in AS 66 b and block a 0 in PS 64 c . If a read request for reading data of block a 0 in this state is issued by the CPU 63 b and by the CPU 63 d to the SS 62 a and to the SS 62 b, respectively, the block a 0 becomes in the PS 64 b or PS 64 d entered. Consequently, line A is entered in both working buffer memories AS 66 a and 66 b , while all buffer memories PS 64 a , 64 b , 64 c and 64 d are in a state in which block a 0 is entered simultaneously.

In diesem Zustand bewirkt das Wiedereinschreiben der Da­ ten im Block a 0 durch die CPU 63 a die Wiedereinschreibe­ verarbeitung der Daten des Block a 0 im PS 64 a und in der Zeile A im AS 66 a. Jedoch werden weder die Daten des Blocks a 0 in den Pufferspeichern PS 64 b, 64 c und 64 d noch die Daten des Blocks a 0 in der Zeile A des Arbeits­ speichers AS 66 b wieder eingeschrieben. Daher ist es notwendig, sowohl den Block a 0 in den Pufferspeichern PS 64 b, 64 c und 64 d mittels der PS-Datenidentitätskontrolle als auch die Zeile A des Arbeitspufferspeichers AS 66 b mittels der AS-Datenidentitätskontrolle ungültig zu ma­ chen.In this state, the rewriting of the data in block a 0 by CPU 63 a causes the rewriting processing of the data of block a 0 in PS 64 a and in row A in AS 66 a . However, neither the data of block a 0 in the buffer memories PS 64 b , 64 c and 64 d nor the data of block a 0 in line A of the working memory AS 66 b are rewritten. It is therefore necessary to invalidate both the block a 0 in the buffer memories PS 64 b , 64 c and 64 d by means of the PS data identity control and the line A of the working buffer memory AS 66 b by means of the AS data identity control.

Um die Invalidierungsverarbeitung auszuführen, ist die AAF-Eintragung in Erweiterung ihres Eintragungsinhaltes so ausgebildet, daß sie zusätzlich zu einem G-Bitbereich 96, einem ADR-Bereich 97 und einem C-Bitbereich einen EX-Bitbereich 99 enthält, wie in Fig. 13 gezeigt ist. Der EX-Bitbereich 99 dient der Implementierung einer ex­ klusiven Steuerung der Invalidierungsverarbeitung: eine Zeile, deren EX-Bits, jeweils den Wert "1" besitzen, ist nur in derselben Speichersteuerung und nicht im Arbeits­ pufferspeicher der anderen Speichersteuerung und nur in denjenigen Pufferspeichern, die in der mit der einen Speichersteuerung verbundenen CPU enthalten sind und nicht in denjenigen Pufferspeichern, die in der mit der anderen Speichersteuerung verbundenen CPU enthalten sind, angeordnet.In order to carry out the invalidation processing, the AAF entry is designed to expand its entry content so that it contains an EX bit area 99 in addition to a G bit area 96 , an ADR area 97 and a C bit area, as shown in FIG. 13 is. EX bit area 99 is used to implement exclusive control of invalidation processing: a line whose EX bits each have the value "1" is only in the same memory controller and not in the working buffer of the other memory controller and only in those buffer memories, which are contained in the CPU connected to the one memory controller and not in those buffer memories which are contained in the CPU connected to the other memory controller.

Mit dieser Anordnung ist es möglich, lediglich durch Veranlassung derjenigen Speichersteuerung, die mit der die Wiedereinschreibeverarbeitung ausführenden CPU ver­ bunden ist, ihr eigenes AAF für den AS aufzusuchen, un­ mittelbar das Nichtvorliegen der den Block enthaltenden Zeile im AS der entsprechenden anderen Speichersteuerung festzustellen, wenn die CPU Daten dieses Blocks in den Arbeitspufferspeicher wieder einschreibt; folglich wird die andere Speichersteuerung nicht gestartet, wenn die Zeile in ihrem Arbeitspufferspeicher nicht vorhanden ist.With this arrangement, it is possible to immediately determine the non-existence of the line containing the block in the AS of the corresponding other memory controller only by causing the memory controller connected to the CPU performing the rewrite processing to find its own AAF for the AS , if the CPU writes data of this block into the work buffer memory again; consequently, the other memory controller will not start if the line is not in its working buffer.

Nun wird mit Bezug auf Fig. 14 die Operation in einem solchen Multiprozessorsystem eingehend beschrieben.The operation in such a multiprocessor system will now be described in detail with reference to FIG. 14.

Wie in Fig. 14 gezeigt, sind mit dem HS 61 zwei Spei­ chersteuerungen SS 62 a und 62 b verbunden, während die CPU′s 63 a und 63 b und der EAP 65 a mit der SS 62 a und die CPU′s 63 c und 63 d und der EAP 65 b mit der Speichersteue­ rung SS 62 b verbunden sind. Die CPU 63 a enthält den PS 64 a und dessen Verzeichnis PAF 67 a, während die CPU 63 b den PS 64 b und dessen Verzeichnis PAF 67 b enthält. Die Speichersteuerung SS 62 a enthält den Arbeitspufferspei­ cher AS 66 a und dessen Verzeichnis AAF 76 a sowie die Verzeichnisse FAF 77 a und 77 b, die Kopien der jeweiligen Pufferadressenfelder PAF 67 a bzw. 67 b darstellen. Die SS 62 b enthält den AS 66 b und dessen Verzeichnis AAF 76 b sowie die Verzeichnisse FAF 77 c und 77 d, die Kopien der jeweiligen PAF 67 c bzw. 67 d darstellen, die CPU 63 c bzw. CPU 63 d enthält den PS 64 c und dessen Verzeichnis PAF 67 c bzw. den PS 64 d und dessen Verzeichnis PAF 67 d. Der Inhalt einer jeden Eintragung in den PAF′s 67 a, 67 b, 67 c und 67 d weist ebenso wie die in Fig. 8 gezeigte Eintra­ gung einen Gültigkeitsbitbereich und einen Adressenbe­ reich auf. Der Inhalt einer jeden Eintragung der AAF′s 76 a und 76 b weist, wie in Fig. 13 gezeigt ist, einen Gültigkeitsbitbereich (G-Bitbereich) 96, einen Adressen­ bereich (ADR-Bereich) 97, einen Wiedereinschreibe/Nicht­ wiedereinschreibe-Bitbereich (C-Bitbereich) 98 und einen EX-Bitbereich 99 auf.As shown in Fig. 14, two memory controls SS 62 a and 62 b are connected to the HS 61 , while the CPU's 63 a and 63 b and the EAP 65 a with the SS 62 a and the CPU's 63 c and 63 d and the EAP 65 b are connected to the memory controller SS 62 b . The CPU 63 a contains the PS 64 a and its directory PAF 67 a , while the CPU 63 b contains the PS 64 b and its directory PAF 67 b . The memory controller SS 62 a contains the working buffer memory AS 66 a and its directory AAF 76 a as well as the directories FAF 77 a and 77 b , which represent copies of the respective buffer address fields PAF 67 a and 67 b . The SS 62 b contains the AS 66 b and its directory AAF 76 b as well as the directories FAF 77 c and 77 d , which represent copies of the respective PAF 67 c and 67 d , the CPU 63 c and CPU 63 d contains the PS 64 c and its directory PAF 67 c or the PS 64 d and its directory PAF 67 d . The content of each entry in the PAF's 67 a , 67 b , 67 c and 67 d , like the entry shown in FIG. 8, has a valid bit range and an address range. The content of each entry of the AAF's 76 a and 76 b has, as shown in Fig. 13, a valid bit area (G bit area) 96 , an address area (ADR area) 97 , a rewrite / non-rewrite bit area (C bit area) 98 and an EX bit area 99 .

Die SS 62 a beginnt mit dem Aufsuchen der AAF 76 a auf­ grund des Empfangs einer Schreibeanforderung zum Schrei­ ben von Daten in den Block a 0 der Zeile A über die Schnittstelle 74 von der CPU 63 a.The SS 62 a begins to look for the AAF 76 a due to the receipt of a write request to write data into block a 0 of line A via the interface 74 from the CPU 63 a .

Wenn einerseits die Zeile A im AAF 76 a eingetragen ist, wird die Wiedereinschreibeanforderung im AS 66 a verar­ beitet, so daß Daten des Block a 0 der Zeile A in den AS 66 a wieder eingeschrieben werden. Um für den PS 64 b die Datenidentitätskontrolle auszuführen, untersucht die SS 62 a das FAF 77 b und macht die Eintragung im FAF 77 b un­ gültig, wenn dort der Block eingetragen ist, woraufhin über die Schnittstelle 75 an die CPU 63 b die Ausgabe ei­ ner Anforderung zum Invalidieren des Blocks im PAF 67 b erfolgt. Wenn die Zeile im FAF 77 b nicht eingetragen ist, wird keine Verarbeitung ausgeführt.If, on the one hand, line A is entered in AAF 76 a , the rewrite request is processed in AS 66 a , so that data of block a 0 of line A are rewritten in AS 66 a . In order to carry out data identity control for the PS 64 b , the SS 62 a examines the FAF 77 b and invalidates the entry in the FAF 77 b if the block is entered there, whereupon the output ei via the interface 75 to the CPU 63 b A request to invalidate the block is made in PAF 67 b . If the line is not entered in the FAF 77 b , no processing is carried out.

Die Datenidentitätskontrollen für den AS 66 b und die PS 64 c und 64 d können mit dem Wert der EX-Bits derjenigen Eintragung, in der die Zeile A des AAF 76 a eingetragen ist, variieren. Wenn das EX-Bit den Wert "1" besitzt, ist die Zeile A weder im AS 66 b noch in den PS 64 c und 64 d vorhanden, so daß die SS 62 a die Schnittstelle 91 nicht initialisiert. Wenn das EX-Bit den Wert "0" be­ sitzt, besteht die Möglichkeit, daß die Zeile A im AS 66 b oder daß der Block (a 0, a 1, a 2, a 3) in der Zeile A in den PS 64 c und 64 d vorhanden ist, so daß die SS 62 a die Schnittstelle 91 initialisiert und eine Datenidenti­ tätskontrollanforderung an die SS 62 b ausgibt. Diese An­ forderung ermöglicht es der SS 62 a, die Schnittstelle 91 zu initialisieren und ferner an die SS 62 b eine Anfor­ derung zur Datenidentitätskontrolle auszugeben. Diese Anforderung veranlaßt die SS 62 b, das AAF 76 b wieder aufzusuchen und die Eintragung ungültig zu machen, falls die Zeile A eingetragen ist. Wenn die Blöcke in den FAF′s 77 c und 77 d vorhanden sind, werden sie (d.h. in diesem Beispiel: a 0, a 1, a 2 und a 3) wieder aufgefunden, weshalb die entsprechende Eintragung ungültig gemacht wird und ferner eine Anforderung zum Invalidieren des Blocks über die Schnittstellen 94 und 95 an die CPU′s 63 c bzw. 63 d ausgegeben wird. Diese Operationen machen die Daten der Zeile A im AS 66 b und in den PS′s 64 c und 64 d ungültig, so daß sie verschwinden; daher setzt die SS 62 a das EX-Bit der Eintragung, in der die Zeile A im AAF 76 a eingetragen ist, auf den Wert "1" zurück. The data identity checks for the AS 66 b and the PS 64 c and 64 d can vary with the value of the EX bits of the entry in which the line A of the AAF 76 a is entered. If the EX bit has the value "1", line A is neither in the AS 66 b nor in the PS 64 c and 64 d , so that the SS 62 a does not initialize the interface 91 . If the EX bit has the value "0", there is a possibility that row A in AS 66 b or that the block ( a 0 , a 1 , a 2 , a 3 ) in row A in PS 64 c and 64 d is present, so that the SS 62 a initializes the interface 91 and issues a data identity check request to the SS 62 b . This request enables the SS 62 a to initialize the interface 91 and also to issue a request for data identity control to the SS 62 b . This request causes the SS 62 b to visit the AAF 76 b again and to invalidate the entry if line A is entered. If the blocks in the FAF's 77 c and 77 d are present, they will be found again (ie in this example: a 0 , a 1 , a 2 and a 3 ), which is why the corresponding entry is invalidated and a request is also made to invalidate the block via the interfaces 94 and 95 to the CPU's 63 c and 63 d is output. These operations make the data of row A in the AS 66 b and in the PS's 64 c and 64 d invalid, so that they disappear; therefore the SS 62 a resets the EX bit of the entry in which the line A is entered in the AAF 76 a to the value "1".

Wenn andererseits die Zeile A im AAF 76 a nicht eingetra­ gen ist, schickt die SS 62 a eine Datenidentitätskon­ trollanforderung über die Schnittstelle 91 an die SS 62 b und unterbricht die Verarbeitung der Schreibanforderung an den AS 66 a. Dann sucht die SS 62 b das AAF 76 b auf und teilt das Suchergebnis, d.h. das Ergebnis, daß die Zeile A nicht im AAF 76 b eingetragen ist, oder den C-Bitwert der Eintragung, falls die Zeile A eingetragen ist, über die Schnittstelle 91 der SS 62 a mit; außerdem macht sie die Zeile im AAF 76 b ungültig. Ferner sucht die SS 62 b die FAF′s 77 c und 77 d auf gibt eine Anforderung zum In­ validieren der PS 64 c und 64 d an die CPU′s 63 c bzw. 63 d, wenn die Zeile A eingetragen ist.On the other hand, if row A is not entered in AAF 76 a , SS 62 a sends a data identity control request via interface 91 to SS 62 b and interrupts the processing of the write request to AS 66 a . Then the SS 62 b searches for the AAF 76 b and shares the search result, ie the result that row A is not entered in the AAF 76 b , or the C bit value of the entry, if row A is entered, via the interface 91 of SS 62 a with; it also invalidates the line in AAF 76 b . Furthermore, the SS 62 b searches the FAF's 77 c and 77 d and issues a request to validate the PS 64 c and 64 d to the CPU's 63 c and 63 d when line A is entered.

Wenn die SS 62 a das das AAF 76 b betreffende Suchergebnis der SS 62 b über die Schnittstelle 91 empfängt, liest sie die Zeile A aus dem HS 61, schreibt sie in den AS 66 a, verarbeitet die Schreibanforderung von der CPU 63 a und trägt die Eintragung der Zeile A im AAF 76 a ein. In die­ sem Moment wird die Zeile A vom AS 76 b und von den PS′s 64 c und 64 d wie oben beschrieben. Zu diesem Zeitpunkt wird die Zeile A wie oben beschrieben vom AS 66 b und den PS 64 c und 64 d abgeschickt, während das EX-Bit mit dem Wert "1" in das AAF 76 a eingetragen wird.If the SS 62 a which the AAF 76 b search result of the SS 62 in question b via the interface 91 receives, reads the line A of the HS 61, writes it to the AS 66 a, processes the write request from the CPU 63 a and carries the registration of the line a in the AAF 76 a a. At this moment the line A is from the AS 76 b and from the PS's 64 c and 64 d as described above. At this time, line A is sent by the AS 66 b and the PS 64 c and 64 d as described above, while the EX bit is entered with the value "1" in the AAF 76 a .

In jedem Fall wird das C-Bit der Eintragung, in der die Zeile A des AAF 76 a eingetragen ist, auf den Wert "1" gesetzt. Ferner wird festgestellt, daß die Möglichkeit besteht, daß das EX-Bit für eine Leseanforderung gesetzt wird. Wenn daher die Möglichkeit besteht, daß die Daten in die Zeile A wieder eingeschrieben werden, nachdem die Daten gelesen worden sind, wird das EX-Bit im voraus ge­ setzt. In any case, the C bit of the entry in which the line A of the AAF 76 a is entered is set to the value "1". It is also noted that there is a possibility that the EX bit will be set for a read request. Therefore, if there is a possibility that the data will be rewritten on line A after the data has been read, the EX bit is set in advance.

Nun wird die Operation der SS beschrieben, wenn die Le­ seanforderung für das EX-Bit der Zeile A von der CPU oder dem EAP ausgegeben wird.The operation of the SS when the read request for the EX bit of line A is issued by the CPU or the EAP will now be described.

Wie in Fig. 14 gezeigt, wird, wenn die CPU 63 a eine Le­ seanforderung zum Lesen der Daten der Zeile A ausgibt, um das EX-Bit zu setzen, diese Anforderung vom PS 62 a verarbeitet; wenn die Daten im PS 64 a vorhanden sind, wird das EX-Bit des AAF 76 a nicht gesetzt. Wenn die Daten im PS 64 a nicht vorhanden sind, wird die Lesean­ forderung des EX-Bits an die SS 62 a ausgegeben. Wenn die Zeile A im AAF 76 a eingetragen ist, wird die Verarbei­ tung in der SS 62 a ausgeführt, indem der AS 66 a gelesen wird, so daß das EX-Bit auch in diesem Fall nicht ge­ setzt wird. Wenn die Zeile A im AS 66 a jedoch nicht vor­ handen ist, wird über die Schnittstelle 91 bei der SS 62 b angefragt, ob die Zeile A in einem wiedereinge­ schriebenen Zustand im AS 66 b vorhanden ist. In diesem Moment sucht die SS 62 b das AAF 76 b sowie die FAF′s 77 c und 77 d und teilt über die Schnittstelle 92 mit, daß das EX-Bit gesetzt werden kann, falls die Zeile A nirgendwo vorhanden ist. In diesem Fall liest die SS 62 a die Daten der Zeile A aus dem HS 61, speichert sie im AS 66 a und setzt das EX-Bit auf den Wert "1", falls die Eintragung der Zeile A im AAF 76 a eingetragen ist.As shown in Fig. 14, when the CPU 63 a issues a read request to read the data of row A to set the EX bit, this request is processed by the PS 62 a ; if the data is available in PS 64 a , the EX bit of AAF 76 a is not set. If the data is not available in PS 64 a , the read request for the EX bit is issued to SS 62 a . If line A is entered in AAF 76 a , the processing in SS 62 a is carried out by reading AS 66 a , so that the EX bit is not set in this case either. If row A is not present in AS 66 a , an inquiry is made via interface 91 to SS 62 b as to whether row A is present in AS 66 b in a rewritten state. At this moment, the SS 62 b searches the AAF 76 b and the FAF's 77 c and 77 d and communicates via the interface 92 that the EX bit can be set if line A is nowhere available. In this case the SS 62 a reads the data of row A from HS 61 , stores it in AS 66 a and sets the EX bit to the value "1" if the entry of row A is entered in AAF 76 a .

Aus JP 60-1 38 653-A (1985) ist eine Technik zur nichtex­ klusiven Steuerung zwischen Pufferspeichern in einem er­ weiterten Multiprozessorsystem bekannt.JP 60-1 38 653-A (1985) describes a technique for non -ex exclusive control between buffer memories in one he advanced multiprocessor system known.

Es wird jedoch weiterhin festgestellt, daß dann, wenn eine exklusive Steuerung einer hierarchischen Puffer­ speicheranordnung in einem Multiprozessorsystem ausge­ führt wird, die Speicherverarbeitung durch Suchen der Zeile im AAF der jeweils anderen SS und durch Invalidie­ rung der Eintragung, falls die Zeile dann, wenn das EX- Bit derselben SS den Wert "0" besitzt, vorhanden ist, sowie durch Suchen aller Blöcke in der Zeile, um festzu­ stellen, ob die Blöcke in den PS, die mit der anderen SS verbunden sind vorhanden sind, und durch Invalidierung dieser Blöcke, falls sie vorhanden sind, ausgeführt wird. Dieses Verfahren ist bei der ununterbrochenen Speicherverarbeitung im Umfang einer Zeile wirksam. Wenn jedoch die Speicherverarbeitung nur für einen Blockbe­ reich einer Zeile ausgeführt werden soll, wird der Rest der an den PS geschickten Blöcke, die ursprünglich nicht ungültig gemacht werden sollten, nichtsdestoweniger un­ bedingt ungültig gemacht, so daß wegen des Anstiegs des NIPV ("Nicht-im-Pufferspeicher-Verhältnis" - die Wahr­ scheinlichkeit dafür, daß ein Block, auf den zugegriffen wird, nicht im PS vorhanden ist) ein Problem entsteht.However, it is further found that when exclusive control of a hierarchical buffer memory arrangement is carried out in a multiprocessor system, the memory processing is carried out by searching the line in the AAF of the other SS and by invalidating the entry, if the line is then when that EX bit of the same SS has the value "0" is present, and by searching for all blocks in the line to determine whether the blocks in the PS connected to the other SS are present and by invalidating these blocks , if they exist, is executed. This method is effective in continuous one-line memory processing. However, if the memory processing is only to be performed for a block area of a line, the rest of the blocks sent to the PS which were not originally intended to be invalid are nonetheless unconditionally invalidated, so that due to the increase in the NIPV ("non- in the buffer memory ratio " - the probability that a block which is being accessed is not present in the PS ) a problem arises.

Es ist daher die Aufgabe der vorliegenden Erfindung, ein Muliprozessorsystem zu schaffen, in dem zwischen den Pufferspeichern eine exklusive Steuerung ausgeführt wer­ den kann, ohne daß das NIPV erhöht wird.It is therefore the object of the present invention To create multi-processor system in which between the Buffer stores an exclusive control who executed can do that without increasing the NIPV.

Es ist eine weitere Aufgabe der vorliegenden Erfindung, ein Multiprozessorsystem zu schaffen, das mindestens ei­ ne Zweifachspeichersteuerungsstruktur mit jeweils einem Arbeitspufferspeicher mit einer Zeilengröße, die um ein Vielfaches größer ist als ein Block eines Pufferspei­ chers, aufweist, wobei die wenigstens zweifache Spei­ chersteuerungsstruktur die Dateninvalidierungsverarbei­ tung aufgrund einer Datenidentitätskontrolle zwischen den Pufferspeichern der jeweils anderen Speichersteue­ rung in einer Blockeinheit und nicht in einer Zeilenein­ heit ermöglicht.It is another object of the present invention to create a multiprocessor system that at least one ne dual memory control structure with one each Memory with a row size that is one Is many times larger than a block of a buffer chers, wherein the at least double memory control structure the data invalidation processing due to a data identity check between  the buffer memories of the other memory control block unit and not in a line unit enables.

Diese Aufgaben werden erfindungsgemäß gelöst durch ein Multiprozessorsystem, das einen Hauptspeicher (HS), eine Mehrzahl von Arbeitspufferspeichern (AS) zum Speichern einer Kopie von Daten des HS, eine Mehrzahl von Zentral­ einheiten, eine Mehrzahl von Pufferspeichern (PS) zum Speichern einer Kopie von Daten eines jeden der AS, wo­ bei jedem der AS wenigstens ein PS entspricht, und Puf­ feradressenfelder (AAF, PAF), in die eine Hauptspeicher­ adresse eingetragen ist, unter der im Hauptspeicher Da­ ten gespeichert sind, die den Daten entsprechen, die un­ ter der entsprechenden Adresse in jedem der AS bzw. der PS gespeichert sind, aufweist; das erfindungsgemäße Mul­ tiprozessorssystem besitzt eine hierarchische Speicher­ struktur, in der die Größe einer Dateneintragungseinheit des AS ein Vielfaches der Größe der Dateneintragungsein­ heit des PS ist, und eine Struktur, in der der PS aus­ schließlich für jede der CPU′s verwendet wird; im erfin­ dungsgemäßen Multiprozessorsystem sind Steuereinrichtun­ gen vorgesehen, in denen eine Mehrzahl besonderer Bits so angeordnet ist, daß sie einem einem AS entsprechenden Arbeitspufferadressenfeld (AAF) zugeordnet sind, wobei die Mehrzahl der besonderen Bits angibt, ob die im der einen CPU entsprechenden AS gespeicherten Hauptspeicher­ adressendaten im der anderen CPU entsprechenden AS und im damit verbundenen PS gespeichert sind, und in der beim Wiedereinschreiben von Daten des AS das AAF dieses AS aufgesucht wird, um zu ermitteln, ob die Daten des der anderen CPU entsprechenden AS und die Daten des mit diesen AS verbundenen PS durch die Mehrzahl der besonde­ ren Bits einer Eintragung des AAF ungültig gemacht wer­ den müssen.These objects are achieved according to the invention by a multiprocessor system which has a main memory (HS) , a plurality of working buffer memories (AS) for storing a copy of data from the HS , a plurality of central units, a plurality of buffer memories (PS) for storing a copy of Data of each of the AS , where at least one PS corresponds to each of the AS , and buffer address fields (AAF, PAF) , in which a main memory address is entered, under which data are stored in the main memory, which correspond to the data which is below the corresponding address is stored in each of the AS or PS ; The multi-processor system according to the invention has a hierarchical memory structure in which the size of a data entry unit of the AS is a multiple of the size of the data entry unit of the PS , and a structure in which the PS is finally used for each of the CPU's; In the multiprocessor system according to the invention, control devices are provided in which a plurality of special bits are arranged such that they are assigned to a working buffer address field (AAF) corresponding to an AS , the majority of the special bits indicating whether the main memory stored in the one CPU corresponds to the AS address data are stored in the AS corresponding to the other CPU and in the associated PS , and in which when the data of the AS is rewritten, the AAF of this AS is looked up in order to determine whether the data of the AS corresponding to the other CPU and the data of the AS AS connected PS invalidated by the majority of the special bits of an entry of the AAF .

Das erfindungsgemäße Multiprozessorsystem ist durch die Steuereinrichtungen gekennzeichnet, in denen die beson­ deren Bits, die angeben, ob die im der einen CPU ent­ sprechenden AS gespeicherten Hauptspeicheradressendaten im der anderen CPU entsprechenden AS und im damit ver­ bundenen PS gespeichert sind, in ein erstes besonderes Bit für die Ausführung einer Datenidentitätskontrolle zwischen den Arbeitspufferspeichern (AS) und in ein zweites besonderes Bit für die Ausführung einer Daten­ identitätskontrolle zwischen dem einen AS und dem mit dem anderen AS verbundenen PS aufgeteilt und als Teil einer Eintragung des Arbeitspufferadressenfeldes (AAF) des einen AS oder als der Eintragung entsprechende Spei­ cherfeldinformation angeordnet sind und in denen dann, wenn aufgrund eines Wertes der besonderen Bits die Daten des AS wieder eingeschrieben werden, eine Identitätskon­ trolle zwischen den Arbeitspufferspeichern und eine Identitätskontrolle zwischen dem einen Arbeitspuffer­ speicher und dem Pufferspeicher des anderen Arbeitspuf­ ferspeichers unabhängig voneinander ausgeführt werden können.The multiprocessor system according to the invention is characterized by the control means, in which the specifics bits indicating whether the in the ent a CPU speaking AS stored main memory address data in the other CPU corresponding AS and stored in that ensued PS, in a first particular bit for the execution of a data identity check between the work buffer memories (AS) and a second special bit for the execution of a data identity check between the one AS and the PS connected to the other AS and as part of an entry of the work buffer address field (AAF) of the one AS or as the corresponding storage field information are arranged and in which, when the data of the AS are rewritten due to a value of the special bits, an identity check between the work buffer stores and an identity check between the one work buffer stores and the buffer memory of the other working buffer can be executed independently of one another.

Es wird festgestellt, daß im erfindungsgemäßen Multipro­ zessorsystem eine Mehrzahl besonderer Bits vorgesehen ist, die angeben, ob die im der einen CPU entsprechenden AS gespeicherten Hauptspeicheradressendaten im der ande­ ren CPU entsprechenden AS und im damit verbundenen PS gespeichert sind; diese Mehrzahl besonderer Bits ent­ spricht dem jeweiligen Arbeitspufferadressenfeld (AAF) des Arbeitspufferspeichers. Wenn Daten des AS wieder eingeschrieben werden, wird das AAF des AS aufgesucht, um zu ermitteln, ob eine Invalidierungsverarbeitung der Daten des der anderen CPU entsprechenden Arbeitspuffer­ speichers und des mit diesem AS verbundenen PS erforder­ lich ist.It is found that in the multipro cessorsystem according to the invention a plurality of special bits are provided which indicate whether the main memory address data stored in the CPU corresponding AS is stored in the AS corresponding to the other CPU and in the associated PS ; this plurality of special bits corresponds to the respective working buffer address field (AAF) of the working buffer memory. When data from the AS are rewritten , the AAF of the AS is visited to determine whether invalidation processing of the data of the work buffer corresponding to the other CPU and the PS connected to this AS is necessary.

Die Mehrzahl besonderer Bits wird in ein EX-Bit zum Aus­ führen einer Datenidentitätskontrolle zwischen den Ar­ beitspufferspeichern und in ein EX-Bit zum Ausführen der Datenidentitätskontrolle zwischen dem einen Arbeitspuf­ ferspeicher und dem mit dem anderen Arbeitspufferspei­ cher verbundenen Pufferspeicher unterteilt. Diese Mehr­ zahl besonderer Bits ist als Teil der AAF-Eintragung oder als der AAF-Eintragung entsprechende Speicherfeld­ information vorgesehen. Durch den Rückgriff auf jedes der besonderen Bits kann unabhängig die Identitätskon­ trolle zwischen den Arbeitspufferspeichern und die Iden­ titätskontrolle zwischen dem einen Arbeitspufferspeicher und dem mit dem anderen Arbeitspufferspeicher verbunde­ nen Pufferspeicher ausgeführt werden.The majority of special bits are turned into an EX bit carry out a data identity check between the employees memory buffer and in an EX bit for executing the Data identity control between one work puff memory and with the other working buffer connected buffer storage divided. This more number of special bits is part of the AAF entry or as a memory field corresponding to the AAF entry information provided. By resorting to everything the special bits can independently the Identity Kon trolls between the working buffers and the idens tity control between the one working buffer and connected to the other working buffer a buffer memory can be executed.

Wenn das EX-Bit der besonderen Bits des einen AS, mit dem die Identitätskontrolle zwischen den Arbeitspuffer­ speichern ausgeführt wird, beispielsweise als EXL-Bit und wenn die dem PS-Block entsprechenden besonderen Bits beispielsweise als EX0-bis EX3-Bits gespeichert werden, wird die Verarbeitung so gesteuert, daß die Daten nur in dem einen AS gespeichert werden, weil dieselben Daten im anderen AS nicht vorhanden sind, falls das EXL-Bit der AAF-Eintragung den Wert "1" besitzt. Wenn das EXi-Bit (i =0, 1, 2, 3), das dem Block der Speicheradresse ent­ spricht, den Wert "1" besitzt, ist dieser Block nicht im anderen PS vorhanden, so daß eine Blockannulierungsan­ forderung an den anderen PS ausgegeben wird. Wenn das EXi-Bit den Wert "0" besitzt, wird eine AS-Speicherope­ ration ausgeführt und eine Blockannulierungsanforderung an den anderen PS ausgegeben. Wenn die entsprechende Eintragung in diesem dem AS entsprechenden AAF nicht vorhanden ist oder wenn das EXL-Bit selbst bei Vorhan­ densein der Eintragung den Wert "0" besitzt, wird das andere AAF aufgesucht und dessen Eintragung, wenn sie in diesem AAF vorhanden ist, ungültig gemacht; dabei wird dem EXL-Bit der Wert "1" gegeben, ferner werden die ak­ tualisierten Daten in dem einen AAF und in dem einen PS eingetragen. In diesem Moment werden die Blöcke des an­ deren PS, die den Blöcken 0 bis 3 entsprechen, nicht al­ le ungültig gemacht, vielmehr wird nur der der Speicher­ adresse des einen Arbeitspufferspeichers entsprechende Block ungültig gemacht, wobei das EXi-Bit (i = Blockzahl der Speicheradressen) den Wert "1" erhält und in dem ei­ nen AAF eingetragen wird.If the EX bit of the special bits of the one AS with which the identity check between the working buffers is stored is carried out, for example as an EXL bit and if the special bits corresponding to the PS block are stored as EX0 to EX3 bits, for example the processing is controlled in such a way that the data is only stored in one AS because the same data is not available in the other AS if the EXL bit of the AAF entry has the value "1". If the EXi bit (i = 0, 1, 2, 3) corresponding to the block of the memory address has the value "1", this block is not present in the other PS , so that a block cancellation request to the other PS is issued. If the EXi bit is "0", an AS memory operation is performed and a block cancel request is issued to the other PS . If the corresponding entry is not present in this AAF corresponding to the AS or if the EXL bit has the value "0" even if the entry exists, the other AAF is sought and its entry, if it is present in this AAF , is invalid made; the EXL bit is given the value "1", and the updated data are entered in one AAF and one PS . At this moment, the blocks of the other PS , which correspond to blocks 0 to 3 , are not all invalidated, rather only the block corresponding to the memory address of the one working buffer is invalidated, the EXi bit (i = block number of the Memory addresses) receives the value "1" and in which an AAF is entered.

Wenn daher die Datenidentitätskontrolle zwischen den Ar­ beitspufferspeichern ausgeführt wird, kann die Invali­ dierungsverarbeitung der Pufferspeicherdaten der anderen Speichersteuerung in Blockeinheiten und nicht in Zeilen­ einheiten ausgeführt werden. Das bedeutet, daß die die Speicheroperation begleitende Ausführung der Invalidie­ rungsverarbeitung der Daten im AS und im PS in bezug auf die Daten des mit der anderen Speichersteuerung verbun­ denen PS nur auf den Block, der die Speicheradresse ent­ hält, gerichtet ist, während die Daten der anderen Blöcke der Zeile ungeändert gelassen werden. Solange da­ her keine Speicheranforderung für sämtliche Blöcke in der Zeile ausgegeben wird, kann ein Absinken des Tref­ ferverhältnisses des Pufferspeichers verhindert werden.Therefore, when the data identity control between the working buffers is carried out, the invalidation processing of the buffer storage data of the other storage controller can be carried out in block units and not in line units. That is, the memory operation accompanying execution of Invalidie reasoning processing the data in the AS and PS with respect to the data of the other memory controller verbun which PS only on the block which holds the memory address ent, is directed, while the data of the other blocks of the line are left unchanged. As long as there is no memory request for all blocks in the line, the hit ratio of the buffer memory can be prevented from falling.

Die Erfindung wird im folgenden anhand von Ausführungs­ beispielen unter Bezug auf die Zeichnungen näher erläu­ tert; es zeigen:The invention is based on execution examples with reference to the drawings tert; show it:

Fig. 1 ein Blockschaltbild, das die Gesamtstruktur des wesentlichen Teils einer Ausführungsform des er­ findungsgemäßen Multiprozessorsystems erläutert; Fig. 1 is a block diagram which explains the overall structure of the essential part of an embodiment of the inventive multiprocessor system;

Fig. 2 ein Beispiel der Eintragungsstruktur eines Ver­ zeichnisses des Arbeitspufferspeichers gemäß ei­ ner Ausführungsform der vorliegenden Erfindung; FIG. 2 shows an example of the structure of a registration Ver isses drawing of the scratch pad memory according ei ner embodiment of the present invention;

Fig. 3 ein Blockschaltbild, das eine Ausführungsform einer Trefferbeurteilungsschaltung für den Ver­ gleich einer Anforderungsadresse mit der Eintra­ gung im Arbeitspufferadressenfeld erläutert; Fig. 3 is a block diagram supply indicated in the working buffer address field an embodiment of a hit judging circuit for the Ver equal to a request address with the regis;

Fig. 4 ein Schaltbild, das den wesentlichen Teil einer Steuerschaltung zum Ausführen der Treffersteue­ rung und zur exklusiven Steuerung des Arbeits­ pufferspeichers in der Speichersteuerung erläu­ tert; Fig. 4 is a circuit diagram which explains the essential part of a control circuit for executing the hit control and for exclusive control of the working buffer memory in the memory controller;

Fig. 5 ein Schaltbild, das eine weitere Ausführungsform einer Trefferbeurteilungsschaltung zum Vergleich der Anforderungsadresse mit der AAF-Eintragung erläutert; Fig. 5 is a circuit diagram illustrating another embodiment of a hit judgment circuit for comparing the request address with the AAF-registration;

Fig. 6 ein Blockschaltbild, das eine Ausführungsform eines Multiprozessorsystems mit einer hierarchi­ schen Speicherstruktur erläutert; Fig. 6 is a block diagram illustrating an embodiment of a multiprocessor system with a hierarchical rule memory structure;

Fig. 7 ein Beispiel der Blockinvalidierungsverarbeitung für den Pufferspeicher im Multiprozessorsystem; FIG. 7 shows an example of the Blockinvalidierungsverarbeitung for the buffer memory in the multiprocessor system;

Fig. 8 ein Beispiel der Eintragungsstruktur eines Ver­ zeichnisses des Pufferspeichers; Fig. 8 is an example of the structure of a registration Ver isses drawing of the buffer memory;

Fig. 9 ein weiteres Beispiel der Blockinvalidierungs­ verarbeitung für den Pufferspeicher im Multipro­ zessorsystem; Fig. 9 shows another example of block invalidation processing for the buffer memory in the multiprocessor system;

Fig. 10 ein Beispiel der Eintragungsstruktur eines Ver­ zeichnisses des Arbeitspufferspeichers; Fig. 10 shows an example of the entry structure of a directory of the working buffer memory;

Fig. 12 ein Blockschaltbild, in dem die Struktur eines Multiprozessorssystems mit zwei eingebauten Speichersteuerungen erläutert wird; Fig. 12 is a block diagram showing the structure of a multiprocessor system with two built-in memory controllers;

Fig. 13 ein weiteres Beispiel der Eintragungsstruktur eines Verzeichnisses des Arbeitspufferspeichers; und Fig. 13 shows another example of the entry structure of a directory of the working buffer memory; and

Fig. 14 ein Beispiel der Blockinvalidierungsverarbeitung für den Pufferspeicher im Multiprozessorsystem von Fig. 12. FIG. 14 shows an example of block invalidation processing for the buffer memory in the multiprocessor system of FIG. 12.

In Fig. 1 ist ein Blockschaltbild gezeigt, mit dem die Gesamtstruktur eines wesentlichen Teils des erfindungs­ gemäßen Multiprozessorsystems gemäß einer Ausführungs­ form erläutert wird, während in Fig. 2 ein Beispiel der Eintragungsstruktur eines Verzeichnisses des Arbeitspuf­ ferspeichers gemäß einer Ausführungsform der Erfindung erläutert wird. In Fig. 1 a block diagram is shown with which the overall structure of an essential part of the multiprocessor system according to the invention is explained in accordance with one embodiment, while in Fig. 2 an example of the entry structure of a directory of the working buffer is explained in accordance with an embodiment of the invention.

Wie in Fig. 1 gezeigt, sind mit dem Hauptspeicher (HS) 61 zwei Speichersteuerungen (SS) 62 a und 62 b verbunden, während mit der SS 62 a die Zentraleinheiten (CPU#0, CPU#1) 63 a und 63 b und der Eingabe/Ausgabeprozessor (EAP#0) 65 a und mit der SS 62 b die Zentraleinheiten (CPU#2, CPU#3) 63 c und 63 d und der Eingabe/Ausgabeprozessor (EAP#1) 65 b verbunden sind. Die CPU 63 a enthält einen Pufferspeicher (PS) 64 a und ein Pufferadressenfeld (PAF) 67 a, das ein Verzeichnis des PS 64 a darstellt, die CPU 63 b enthält genauso einen Pufferspeicher (PS) 64 b und ein Pufferadressenfeld (PAF) 67 b, das ein Verzeich­ nis des PS 64 b darstellt. Die SS 62 a enthält einen Ar­ beitspufferspeicher (AS) 66 a, ein Arbeitspufferadressen­ feld (AAF) 76 a, das ein Verzeichnis des AS 66 a dar­ stellt, sowie Frontadressenfelder (FAF) 77 a und 77 b, die Kopien der entsprechenden PAF′s 67 a und 67 b sind. Die SS 62 b, die CPU 63 c und die CPU 63 d sind genauso aufgebaut und weisen entsprechend einen Arbeitspufferspeicher, Pufferspeicher und deren Verzeichnisse bzw. Kopien die­ ser Verzeichnisses auf. Der Inhalt einer jeden Eintra­ gung der PAF′s 67 a, 67 b, 67 c und 67 d weist, wie in Fig. 8 gezeigt, einen Gültigkeitsbitbereich und einen Adres­ senbereich auf. Der Inhalt einer jeden Eintragung der AAF′s 76 a und 76 b weist einen Gültigkeitsbitbereich, ei­ nen Adressenbereich, einen Wiedereinschreibe/Nichtwie­ dereinschreibe-Bitbereich und einen Bereich für beson­ dere Bits, in den eine Mehrzahl besonderer Bits einge­ tragen wird, um die exklusive Steuerung zwischen den Pufferspeichern auszuführen, auf.As shown in Fig. 1, with the main memory (HS) 61 two memory controllers (SS) 62 a and 62 b are connected, while with the SS 62 a the central units (CPU # 0, CPU # 1) 63 a and 63 b and the input / output processor (EAP # 0) 65 a and with the SS 62 b the central processing units (CPU # 2, CPU # 3) 63 c and 63 d and the input / output processor (EAP # 1) 65 b are connected. The CPU 63 a contains a buffer memory (PS) 64 a and a buffer address field (PAF) 67 a , which represents a directory of the PS 64 a , the CPU 63 b also contains a buffer memory (PS) 64 b and a buffer address field (PAF) 67 b , which is a directory of the PS 64 b . The SS 62 a contains a working buffer memory (AS) 66 a , a working buffer address field (AAF) 76 a , which represents a directory of the AS 66 a , and front address fields (FAF) 77 a and 77 b , the copies of the corresponding PAF ' s are 67 a and 67 b . The SS 62 b , the CPU 63 c and the CPU 63 d are constructed in the same way and accordingly have a working buffer memory, buffer memory and their directories or copies of this directory. The content of each entry of the PAF's 67 a , 67 b , 67 c and 67 d has, as shown in Fig. 8, a valid bit area and an address area. The content of each entry of AAF's 76 a and 76 b has a valid bit area, an address area, a rewrite / non-rewrite bit area and an area for special bits, in which a plurality of special bits are entered, to the exclusive Execution of control between the buffer memories.

Wie oben beschrieben worden ist, ist die Struktur des in Fig. 1 gezeigten Multiprozessorsystems dieselbe wie die mit Bezug auf Fig. 12 beschriebene Multiprozessorsystem­ struktur, jedoch wird als Inhalt einer jeden Eintragung der Arbeitspufferadressenfelder 76 a und 76 b der in Fig. 2 gezeigte Eintragungsinhalt verwendet. Dieser Eintra­ gungsinhalt ist dadurch gekennzeichnet, daß die besonde­ ren Bits zum Ausführen der exklusiven Steuerung zwischen den Pufferspeichern mehrere sind. Wie in Fig. 2 gezeigt, weist die Mehrzahl der Bereiche für besondere Bits in der Eintragung 20 ein EXL-Bit 21 und die den jeweiligen Blöcken entsprechenden Bits EX 0 22, EX 1 23, EX 2 24 und EX 3 25 auf. Das EXL-Bit 21 ist ein Bit, das angibt, daß Zeilendaten im AS sich in einem ausschließenden Zustand zwischen den Arbeitspufferspeichern befinden. Wenn das EXL-Bit 21 den Wert "1" besitzt, ist gewährleistet, daß im AS der anderen SS keine identische Datenzeile vorhan­ den ist. Die Bits EX 0 22, EX 1 23, EX 2 24 und EX 3 25 sind Steuerbits und entsprechen der jeweiligen Anzahl der aus Zeilendaten der Eintragung 20 der Arbeitspufferspeicher bestehenden PS-Blöcke. Wenn jedes der Bits EX 0 22, EX 1 23, EX 2 24 und EX 3 25 den Wert "1" besitzt, ist gewähr­ leistet, daß in bezug auf jeden Block in den PS, die mit dem AS der anderen SS verbunden sind, keine identischen Daten vorhanden sind.As described above, the structure is the as the multiprocessor system described 12 structure is the same in Fig. 1 shown multiprocessor system with reference to FIG., But each entry of the working buffer address fields is called content 76 a and 76 b of the registration contents shown in FIG. 2 used. This entry is characterized in that the special bits for carrying out the exclusive control between the buffer memories are several. As shown in FIG. 2, the majority of the areas for special bits in the entry 20 have an EXL bit 21 and the bits EX 0 22 , EX 1 23 , EX 2 24 and EX 3 25 corresponding to the respective blocks. The EXL bit 21 is a bit that indicates that line data in the AS is in an exclusive state between the working buffers. If the EXL bit 21 has the value "1", it is ensured that there is no identical data line in the AS of the other SS . Bits EX 0 22 , EX 1 23 , EX 2 24 and EX 3 25 are control bits and correspond to the respective number of PS blocks consisting of line data from entry 20 of the working buffer memory. If each of the bits EX 0 22 , EX 1 23 , EX 2 24 and EX 3 25 has the value "1", it is guaranteed that, with respect to each block in the PS , which are connected to the AS of the other SS , no identical data is available.

Nun wird mit Bezug auf Fig. 3 die Trefferbeurteilungs­ operation und mit Bezug auf Fig. 4 die gegenseitige Ab­ frageoperation des AS und des PS für die Ausführung der exklusiven Steuerung beschrieben.Now, the hit judging operation will be described with reference to FIG. 3, and the mutual query operation of the AS and the PS for executing the exclusive control will be described with reference to FIG. 4.

Fig. 3 ist ein Blockschaltbild, in dem eine Ausführungs­ form einer Trefferbeurteilungsschaltung für den Ver­ gleich einer Anforderungsadresse mit einer AAF-Eintra­ gung erläutert wird. In Fig. 3 sind eine AAF-Eintragung 20, eine Anforderungsadresse 30, Eintragungsadressenda­ ten 30 a für die Anforderungsadresse, 2-Bitdaten 30 b, die die Blocknummer in der AS-Zeile angeben, ein 2-Bit-Deco­ der 31, eine Eintragungsadresse-Vergleichsschaltung 32, UND-Gatter 33 bis 37, ein ODER-Gatter 38, UND-Gatter 39 und 40, ein Invertierer 41, UND-Gatter 42 und 43 und ein ODER-Gatter 44 gezeigt. Mit der Eintragungsadressenver­ gleichsschaltung 32 werden die Eintragungsadressendaten 30 a für die Anforderungsadresse 30 mit der AAF-Eintra­ gung 20 verglichen. Anschließend wird über eine Logik­ schaltung anhand dieses Vergleichsergebnisses, anhand der EX0- bis EX3-Bits und anhand der Dekoderausgabe der Blockanzahl in jeder der AS-Zeilen ein Status beurteilt. Die Signale A, B, C und D des Beurteilungsergebnisses, die an den entsprechenden Ausgängen des ODER-Gatters 44, des Inverters 41, des UND-Gatters 42 und des UND-Gatters 43 anliegen, geben den jeweiligen Status wieder, wie er in Tabelle 1 angegeben ist: Fig. 3 is a block diagram in which an embodiment of a hit judgment circuit for the comparison of a request address with an AAF entry is explained. In Fig. 3 are an AAF entry 20 , a request address 30 , entry address data 30 a for the request address, 2-bit data 30 b , which indicate the block number in the AS line, a 2-bit deco of 31 , a registration address Comparison circuit 32 , AND gates 33 to 37 , an OR gate 38 , AND gates 39 and 40 , an inverter 41 , AND gates 42 and 43 and an OR gate 44 . With the entry address comparison circuit 32 , the entry address data 30 a for the request address 30 is compared with the AAF entry 20 . A status is then assessed via a logic circuit on the basis of this comparison result, on the basis of the EX0 to EX3 bits and on the basis of the decoder output of the number of blocks in each of the AS lines. The signals A , B , C and D of the evaluation result, which are present at the corresponding outputs of the OR gate 44 , the inverter 41 , the AND gate 42 and the AND gate 43 , reflect the respective status, as shown in the table 1 is given:

Tabelle 1Table 1

Signal A:
In einem "Trefferstatus" wird keine exklusive Steuerung für den anderen AS und den anderen PS gefordert. Dieser Fall tritt ein, wenn für eine von der Speicheranforderung verschiedene Anforderung eine Zeile vorhanden ist und im AS eine gewünschte Zeile mit EXL = 1 für die Speicheranforderung vorhanden ist.
Signal A :
In a "hit status", no exclusive control for the other AS and the other PS is required. This occurs when there is a line for a request other than the memory request and there is a desired line in the AS with EXL = 1 for the memory request.

Signal B:
kein "Trefferstatus".
Signal B :
no "hit status".

Signal C:
Obwohl im AS eine Zeile, auf die zugegriffen worden ist, vorhanden ist, wird für die andere SS eine exklusive Steuerung gefordert, da das EXL-Bit den Wert "0" besitzt, wenn eine Speicheranforderung ausgegeben wird.
Signal C :
Although a line that has been accessed is present in the AS , exclusive control is required for the other SS , since the EXL bit has the value "0" when a memory request is issued.

Signal D:
Obwohl im AS eine Zeile, auf die zugegriffen worden ist, vorhanden ist, ist für den mit dem anderen AS verbundenen PS eine Blockannulierung erforderlich, da das EXi-Bit des Blocks, auf den zugegriffen worden ist, den Wert "0" besitzt.
Signal D :
Although it has been accessed in a row on the AS is present, a Blockannulierung is connected to the other for the AS PS required because the EXi bit of the block has been accessed, has the value "0".

In Fig. 4 ist ein Blockschaltbild gezeigt, in dem ein wesentlicher Teil der Steuerschaltung zur Ausführung der Treffersteuerung und der exklusiven Steuerung des Ar­ beitspufferspeichers in der Speichersteuerung erläutert ist.In Fig. 4, a block diagram is shown in which an essential part of the control circuit for executing the hit control and the exclusive control of the working buffer memory is explained in the memory controller.

Nun wird mit Bezug auf Fig. 4 die Treffersteuerung und die exklusive Steuerung der SS mittels Integration der Signale A, B, C und D aus der Trefferbeurteilungsschal­ tung (Fig. 3) für jede Zeile im einzelnen beschrieben. In Fig. 4 bezeichnen die Bezugszeichen 45 a, 45 b, 45 c und 45 d Trefferbeurteilungsschaltungen für die Zeilennummern 0, 1, 2 bzw. 3. Die Signale A, B, C und D einer jeden Trefferbeurteilungsschaltung entsprechen je nach Zeilen­ nummer den Signalen A 0 bis A 3, B 0 bis B 3, C 0 bis C 3 bzw. D 0 bis D 3. In Fig. 4 sind ferner ODER-Gatter 46 a bis 46 d, 47, 48, 50, 54 und 56, UND-Gatter 49 und 51 bis 53, ein 4-Bit-Encoder 56 und ein Selektor 57 gezeigt. Das Signal 59 von einer Austauschlogik (WRA) dient zur Fest­ legung einer Zeile, die eine bestimmte Zeile, die im AS nicht vorhanden ist, ersetzen soll; diese Zeile besteht aus 2-Bit-Zeilendaten. Ferner ist in Fig. 4 ein Zeilen­ nummernregister 68 (2 Bits) des AS gezeigt.The hit control and the exclusive control of the SS by integrating the signals A , B , C and D from the hit judging circuit ( FIG. 3) for each line will now be described in detail with reference to FIG. 4. In Fig. 4, reference numerals 45 a , 45 b , 45 c and 45 d denote hit judgment circuits for the line numbers 0 , 1 , 2 and 3 , respectively. The signals A , B , C and D of each hit evaluation circuit correspond to the signals A 0 to A 3 , B 0 to B 3 , C 0 to C 3 and D 0 to D 3, depending on the line number. In FIG. 4 also OR gate 46 a to 46 d, 47, 48, 50, 54 and 56, AND gates 49 and 51 to 53, a 4-bit encoder 56, and a selector shown 57th The signal 59 from an exchange logic (WRA) is used to determine a line that is to replace a specific line that is not present in the AS ; this line consists of 2-bit line data. Also shown in Fig. 4 is a line number register 68 (2 bits) of the AS .

Die logischen Ausgaben I, II, III, IV, V und VI ergeben sich aus der aus den Logikgattern aufgebauten Logik­ schaltung und werden in Tabelle 2 erläutert:The logical outputs I, II, III, IV, V and VI result derive from the logic built up from the logic gates circuit and are explained in Table 2:

Tabelle 2Table 2

  • I: "Treffer"-Verarbeitungsanforderung; keine exklusive Steuerung für die anderen AS erforderlich.
    Wenn das EXi-Bit eines eine Speicheradresse enthaltenden Blocks den Wert "1" besitzt, wird von der logischen Ausgabe VI eine Blockannulierungsanforderung an die andere SS ausgegeben, während dasselbe EXi-Bit den Wert "1" behält.
    I: "hit" processing request; no exclusive control required for the other AS .
    If the EXi bit of a block containing a memory address has the value "1", a logical block VI issues a block cancellation request to the other SS , while the same EXi bit keeps the value "1".
  • II: "Treffer"-Verarbeitungsanforderung mit exklusiver Steuerung der anderen AS erforderlich.
    Da das EXL-Bit den Wert "0" besitzt, obwohl im selben AS die gewünschten Zeilendaten vorhanden sind, wird angefragt, ob die identische Zeile im AAF des anderen AS vorhanden ist; falls sie vorhanden ist, wird die Eintragung ungültig gemacht.
    II: "Hit" processing request with exclusive control of the other AS required.
    Since the EXL bit has the value "0", even though the desired line data is available in the same AS, the system asks whether the identical line is present in the AAF of the other AS ; if it exists, the entry will be invalidated.
  • III: "Kein Treffer"-Verarbeitungsanforderung für die Nur-Lese-Holanforderung.
    Wenn sich aufgrund des Aufsuchens des anderen AAF herausstellt, daß die letzten Daten in diesen anderen AAF vorhanden sind, werden diese Daten vom anderen AS übertragen, während die Bits EXL und EX 0 bis EX 3 des einen AAF mit dem Wert "0" erhalten.
    III: "No hit" processing request for the read-only fetch request.
    If it is found on the basis of the search for the other AAF that the last data are present in this other AAF , this data is transmitted from the other AS , while the bits EXL and EX 0 to EX 3 of the one AAF are given the value "0".
  • IV: "Kein Treffer"-Verarbeitungsanforderung für eine Holanforderung mit EX-Abruf.
    Wenn sich aufgrund des Aufsuchens des anderen AAF herausstellt, daß die letzten Daten in diesem anderen AAF vorhanden sind (falls die Daten im anderen AS verändert sind), werden die Daten vom anderen AS zu diesem AS übertragen und die Eintragung des anderen AAF ungültig gemacht.
    IV: "No hit" processing request for a fetch request with EX call.
    If, after searching for the other AAF, it turns out that the last data is present in this other AAF (if the data in the other AS has been changed), the data is transferred from the other AS to this AS and the entry of the other AAF is invalidated.
  • V: "Kein Treffer"-Verarbeitungsanforderung für die Speicheranforderung.
    Wenn sich aufgrund des Aufsuchens des anderen AAF herausstellt, daß die entsprechende Zeile in diesem anderen AAF vorhanden ist, wird die Eintragung ungültig gemacht und dem EXL-Bit der Wert "1" zugeteilt.
    Die letzten Daten werden vom anderen AS oder vom Hauptspeicher an diesen AS übertragen. An den anderen PS wird eine Invalidierungsanforderung nur für den Block ausgegeben, der die Speicheranforderung (IV) enthält, während das EXi-Bit den Wert "1" erhält (i ist die Blocknummer desjenigen Blocks, an den die Invalidierungsanforderung ausgegeben worden ist).
    V: "No hit" processing request for the memory request.
    If, on the basis of the search for the other AAF, it is found that the corresponding line is present in this other AAF , the entry is invalidated and the value "1" is assigned to the EXL bit.
    The last data is transferred from the other AS or from the main memory to this AS . At the other PS , an invalidation request is issued only for the block that contains the storage request (IV), while the EXi bit receives the value "1" (i is the block number of the block to which the invalidation request was issued).
  • VI: Blockannulierungsanforderung für den anderen PS während der Speicherverarbeitung.
    Für einen die Speicheradresse enthaltenden Block wird eine Blockannulierungsanforderung ausgegeben, während das EXi-Bit den Wert "1" erhält (i ist die Blocknummer desjenigen Blocks, der die Speicheradresse enthält).
    VI: Block cancellation request for the other PS during memory processing.
    A block cancel request is issued for a block containing the memory address while the EXi bit is given a value of "1" (i is the block number of the block containing the memory address).

Bei der von der SS 62 a ausgegebenen Blockannulierungsan­ anforderung für die PS wird die Blockannulierung der PS 64 c und 64 d im System auf der Seite der SS 62 b dadurch ermittelt, ob die entsprechende Eintragung in den PAF′s 67 c und 67 d vorhanden ist und daß eine Invalidie­ rungsanforderung der Eintragung an die PAF′s 67 c und 67 d nur dann ausgegeben wird, wenn sich aufgrund des Aufsu­ chens herausgestellt hat, daß die Eintragung vorhanden ist.In the case of the block cancellation request issued by the SS 62 a for the PS , the block cancellation of the PS 64 c and 64 d in the system on the side of the SS 62 b is determined by whether the corresponding entry in the PAF's 67 c and 67 d is present is and that an invalidation request of the entry to the PAF's 67 c and 67 d is only issued if it has emerged from the visit that the entry is present.

Die Holanforderung mit EX-Abfrage bedeutet eine Anfor­ derung, bei der ein Block oder eine Zeile, die mit hoher Wahrscheinlichkeit geholt wird, gespeichert wird.The fetch request with EX query means an inquiry change in which a block or a line with high Probability is fetched, saved.

In Fig. 6 ist ein Blockschaltbild gezeigt, das eine wei­ tere Ausführungsform der Trefferbeurteilungsschaltung für den Vergleich der Anforderungsadresse mit der AAF- Eintragung erläutert. Diese Trefferbeurteilungsschaltung hat im wesentlichen die gleiche Struktur wie die in Fig. 3 gezeigte Trefferbeurteilungsschaltung; im Unterschied zu der in Fig. 3 gezeigten Schaltung ist bei den beson­ deren Bits, die in die AAF-Eintragung eingetragen wer­ den, kein EXL-Bit vorgesehen. Anstatt des Signals vom EXL-Bit der Schaltung von Fig. 3 ist in der in Fig. 5 gezeigten Schaltung ein aus der logischen Summe der Si­ gnale der besonderen Bits EX 0 bis EX 3 sich ergebendes Signal vorgesehen. Daher ist gegenüber der in Fig. 3 ge­ zeigten Schaltung ein ODER-Gatter 60 vorgesehen, dessen Ausgangssignal anstatt des EXL-Bit-Signals verwendet wird. Bei der Anwendung einer solchen Trefferbeurtei­ lungsschaltung ergibt sich gegenüber der in Fig. 3 ge­ zeigten Trefferbeurteilungsschaltung, in der ein EXL-Bit vorgesehen ist, der Unterschied, daß das EXi-Bit in der Verarbeitung der Holanforderung mit EX-Abfrage den Wert "1" erhalten soll, selbst wenn das EXi-Bit des Blocks i, der der Zugriffadresse entspricht, nicht gespeichert ist.In FIG. 6, a block diagram is shown illustrating one embodiment of the white tere hit judgment circuit for comparing the request address with the AAF of records. This hit judging circuit has substantially the same structure as the hit judging circuit shown in Fig. 3; in contrast to the circuit shown in FIG. 3, no EXL bit is provided for the special bits that are entered in the AAF entry. Instead of the signal from the EXL bit of the circuit of FIG. 3, a signal resulting from the logical sum of the signals of the special bits EX 0 to EX 3 is provided in the circuit shown in FIG. 5. Therefore, compared to the circuit shown in FIG. 3, an OR gate 60 is provided, the output signal of which is used instead of the EXL bit signal. When using such a hit assessment circuit, compared to the hit assessment circuit shown in FIG. 3, in which an EXL bit is provided, the difference is that the EXi bit has the value "1" in the processing of the fetch request with EX query. should get, even if the EXi bit of block i , which corresponds to the access address, is not stored.

Wie oben beschrieben, kann der wesentliche Teil des er­ findungsgemäßen Multiprozessorsystems wie folgt zusam­ mengefaßt werden:As described above, the essential part of it multiprocessor system according to the invention together as follows be quantified:

  • 1. Die Identitätskontrolle zwischen den Arbeitspuffer­ speichern wird für die Speicheranforderung in einer Zeileneinheit ausgeführt, allerdings werden die Daten des Pufferspeichers im anderen System solange nicht ungültig gemacht, wie der Block nicht aktualisiert ist, um die Daten des Pufferspeichers in einer Block­ einheit zu verwalten. Damit wird eine Erhöhung des NIPV im anderen Pufferspeicher verhindert.1. Identity control between the work buffers will save for the storage request in a Line unit executed, however the data of the buffer memory in the other system as long as not invalidated as the block does not update is to store the data in a block manage unit. This will increase the NIPV prevented in the other buffer memory.
  • 2. Bei der Identitätskontrolle zwischen den Arbeitspuf­ ferspeichern für die Holanforderung mit EX-Abfrage wird die Eintragung des anderen Arbeitspufferspei­ chers ungültig gemacht, allerdings wird der andere Pufferspeicher solange nicht ungültig gemacht, bis eine Speicheranforderung ausgegeben wird. Daher kann das NIPV des anderen Pufferspeichers kleiner gemacht werden.2. When checking the identity between the work puffs save for the fetch request with EX query becomes the entry of the other work buffer chers invalidated, however, the other Buffer memory not invalidated until a memory request is issued. Therefore made the NIPV of the other buffer memory smaller will.

Obwohl die obigen Beispiele auf eine dreistufige hierar­ chische Speicherstruktur gerichtet sind, versteht es sich, daß die vorliegende Erfindung auf ein System ange­ wendet werden kann, in dem die Speicherstruktur eine Hierarchie mit vier oder mehr Ebenen aufweist. Es wird festgestellt, daß die Anzahl der CPU′s, EAP′s und AS′s leicht erhöht werden kann.Although the above examples are directed to a three-level hierarchical memory structure, it should be understood that the present invention can be applied to a system in which the memory structure has a hierarchy with four or more levels. It is found that the number of CPU's, EAP's and AS's can be increased slightly.

Wie erwähnt, ist die vorliegende Erfindung anhand von Beispielen beschrieben worden, aber es versteht sich, daß sie durch diese Beispiele nicht beschränkt werden soll, und daß verschiedene Änderungen und Abwandlungen möglich sind, ohne daß vom Geist und vom Umfang der vor­ liegenden Erfindung abgewichen wird.As mentioned, the present invention is based on Examples have been described, but it is understood that they are not limited by these examples should, and that various changes and modifications are possible without losing the spirit and scope of the previous deviated lying invention.

Erfindungsgemäß ist es im Multiprozessorsystem, der ei­ nen Hauptspeicher, eine Mehrzahl von Arbeitspufferspei­ chern und Pufferspeicher aufweist, möglich, daß der eine Arbeitspufferspeicher die Daten des anderen Arbeitspuf­ ferspeichers und gleichzeitig den die Speicheradresse enthaltenden Block im mit der anderen Speichersteuerung verbundenen Pufferspeicher ungültig machen kann, und dennoch die Daten der restlichen Blöcke der Zeile in ei­ nem nicht ungültig gemachten Zustand belassen kann, wenn die Daten im Arbeitspufferspeicher und im Pufferspeicher während einer Speicheroperation ungültig gemacht werden sollen. Folglich kann eine Abnahme des Trefferverhält­ nisses im Pufferspeicher solange verhindert werden, wie keine Speicheranforderung für sämtliche Blöcke der Zeile ausgegeben wird.According to the invention, it is in the multiprocessor system that the egg main memory, a plurality of working buffer memories chern and buffer memory, possible that the one Work buffer stores the data of the other work buffer memory and at the same time the memory address containing block in with the other memory controller connected buffer memory can invalidate, and nevertheless the data of the remaining blocks of the line in egg can not be left in an invalidated state if the data in the working buffer memory and in the buffer memory be invalidated during a store operation should. As a result, a decrease in the hit ratio nisse in the buffer memory can be prevented as long as no memory request for all blocks of the line is issued.

Claims (6)

1. Multiprozessorsystem, das
einen Hauptspeicher (61);
eine Mehrzahl von Arbeitspufferspeichern (66 a, 66 b) zum Speichern einer Kopie von Daten des Haupt­ speichers (61);
eine Mehrzahl von Zentraleinheiten (63 a, 63 b, 63 c, 63 d);
eine Mehrzahl von Pufferspeichern (64 a, 64 b, 64 c, 64 d) zur Speicherung einer Kopie von Daten in jedem der Arbeitspufferspeicher (66 a, 66 b); und
ein Verzeichnis, in das eine Hauptspeicheradresse eingetragen ist, unter der im Hauptspeicher (61) Da­ ten gespeichert sind, die den Daten entsprechen, die unter der entsprechenden Adresse in jedem der Ar­ beitspufferspeicher (66 a, 66 b) und der Pufferspeicher (64 a bis 64 d) gespeichert sind, aufweist,
eine hierarchische Speicherstruktur besitzt, bei der die Größe einer Dateneintragungseinheit des Ar­ beitspufferspeichers (66 a, 66 b) um ein Vielfaches größer ist als eine Dateneintragungseinheit des Puf­ ferspeichers (64 a bis 64 d); und
eine Struktur besitzt, in der jeder der Puffer­ speicher (64 a bis 64 d) exklusiv für eine Zentralein­ heit (63 a bis 63 d) verwendet wird, dadurch gekennzeichnet, daß
eine Mehrzahl von besonderen Bits vorgesehen ist, die dem Verzeichnis (76 a, 76 b) des Arbeitspufferspei­ chers (66 a, 66 b) korrespondieren und die angeben, ob die im der einen Zentraleinheit (63 a, 63 b; 63 c, 63 d) entsprechenden Arbeitspufferspeicher (66 a; 66 b) ge­ speicherte Hauptspeicheradressendaten im der anderen Zentraleinheit (63 c, 63 d; 63 a, 63 b) entsprechenden Arbeitspufferspeicher (66 b; 66 a) oder in den mit die­ sen Zentraleinheit verbundenen Pufferspeichern (64 c, 64 d; 64 a, 64 b) gespeichert sind; und
eine Invalidierungsverarbeitung ausgeführt wird, wenn Daten des Arbeitspufferspeichers (66 a; 66 b) wie­ der eingeschrieben werden, indem das Verzeichnis (76 a; 76 b) des Arbeitspufferspeichers (66 a; 66 b) auf­ gesucht und indem beurteilt wird, ob die Daten des der anderen Zentraleinheit (63 c, 63 d; 63 a, 63 b) ent­ sprechenden Arbeitspufferspeichers (66 b; 66 a) und die im mit dieser Zentraleinheit verbundenen Pufferspei­ cher (64 c, 64 d; 64 a, 64 b) enthaltenen Daten ungültig gemacht werden sollen, wofür ein Wert aus der Mehr­ zahl der besonderen Bits einer Eintragung des Ver­ zeichnisses (76 a; 76 b) verwendet wird.
1. multiprocessor system that
a main memory ( 61 );
a plurality of working buffer memories ( 66 a , 66 b ) for storing a copy of data of the main memory ( 61 );
a plurality of central units ( 63 a , 63 b , 63 c , 63 d );
a plurality of buffers ( 64 a , 64 b , 64 c , 64 d ) for storing a copy of data in each of the working buffers ( 66 a , 66 b ); and
a directory in which a main memory address is entered, under which data are stored in the main memory ( 61 ), which correspond to the data which are at the corresponding address in each of the working buffer memories ( 66 a , 66 b ) and the buffer memory ( 64 a up to 64 d ) are stored,
has a hierarchical storage structure in which the size of a data entry unit of the working buffer ( 66 a , 66 b ) is many times larger than a data entry unit of the buffer store ( 64 a to 64 d ); and
has a structure in which each of the buffer memories ( 64 a to 64 d ) is used exclusively for a central unit ( 63 a to 63 d ), characterized in that
a plurality of special bits is provided which correspond to the directory ( 76 a , 76 b ) of the working buffer memory ( 66 a , 66 b ) and which indicate whether the in the one central unit ( 63 a , 63 b ; 63 c , 63 d ) corresponding working buffer memory ( 66 a ; 66 b ) stored main memory address data in the other central unit ( 63 c , 63 d ; 63 a , 63 b ) corresponding working buffer memory ( 66 b ; 66 a ) or in the buffer memories connected to this central unit ( 64 c , 64 d ; 64 a , 64 b ) are stored; and
invalidation processing is performed when data of the work buffer memory ( 66 a ; 66 b ) such as that is written by searching the directory ( 76 a ; 76 b ) of the work buffer memory ( 66 a ; 66 b ) and by judging whether the data of the other central unit ( 63 c , 63 d ; 63 a , 63 b ) corresponding working buffer memory ( 66 b ; 66 a ) and the buffer memory connected to this central unit ( 64 c , 64 d ; 64 a , 64 b ) Data are to be made invalid, for which a value from the number of special bits of an entry in the directory ( 76 a ; 76 b ) is used.
2. Multiprozessorsystem gemäß Anspruch 1, dadurch gekennzeichnet, daß die entsprechend dem Verzeichnis (76 a; 76 b) des Arbeits­ pufferspeichers (66 a; 66 b) vorgesehene Mehrzahl von besonderen Bits eine Summe n+1 Bits aufweist, von de­ nen der der anderen Zentraleinheit (63 c, 63 d; 63 a, 63 b) entsprechende Arbeitspufferspeicher (66 b; 66 a′) ein Bit belegt und eine Blockeinheit des der einen Zentraleinheit (63 a, 63 b; 63 c, 63 d) entsprechenden Pufferspeichers (64 a, 64 b; 64 c, 64 d) oder jede der Einheiten, deren Größe ein Vielfaches der Größe einer Blockeinheit ist, n Bits belegt. 2. Multiprocessor system according to claim 1, characterized in that the according to the directory ( 76 a ; 76 b ) of the working buffer memory ( 66 a ; 66 b ) provided a plurality of special bits has a sum of n +1 bits, of which the one another central unit ( 63 c , 63 d ; 63 a , 63 b) corresponding working buffer memory ( 66 b ; 66 a ') occupies one bit and a block unit of the buffer unit corresponding to the one central unit ( 63 a , 63 b ; 63 c , 63 d ) ( 64 a , 64 b ; 64 c , 64 d ) or each of the units, the size of which is a multiple of the size of a block unit, occupies n bits. 3. Multiprozessorsystem gemäß Anspruch 1, dadurch gekennzeichnet, daß
die entsprechend dem Verzeichnis (76 a; 76 b) des Arbeitspufferspeichers (66 a; 66 b) vorgesehene Mehr­ zahl von besonderen Bits so ausgebildet ist, daß die Blockeinheit des der einen Zentraleinheit (63 a, 63 b; 63 c, 63 d) entsprechenden Pufferspeichers (64 a, 64 b; 64 c, 64 d) oder jeder der Einheiten, deren Größe ein Vielfaches der Größe einer Blockeinheit ist, n Bits aufweisen kann; und
ein Signal der besonderen Bits für den der anderen Zentraleinheit (63 c, 63 d; 63 a, 63 b) entspre­ chenden Arbeitspufferspeicher (66 b; 66 a) aus der lo­ gischen Summe der Signale der besonderen Bits, die n Bits aufweisen und für den Pufferspeicher (64 c, 64 d; 64 a, 64 b) vorgesehen sind, gebildet wird.
3. Multiprocessor system according to claim 1, characterized in that
the number of special bits provided in accordance with the directory ( 76 a ; 76 b ) of the working buffer memory ( 66 a ; 66 b ) is designed such that the block unit of the one central unit ( 63 a , 63 b ; 63 c , 63 d ) corresponding buffer memory ( 64 a , 64 b ; 64 c , 64 d ) or each of the units, the size of which is a multiple of the size of a block unit, can have n bits; and
a signal of the special bits for that of the other central processing unit ( 63 c , 63 d ; 63 a , 63 b ) corresponding working buffer memory ( 66 b ; 66 a ) from the logical sum of the signals of the special bits which have n bits and for the buffer memory ( 64 c , 64 d ; 64 a , 64 b ) are provided, is formed.
4. Multiprozessorsystem gemäß Anspruch 1, dadurch gekennzeichnet, daß dann, wenn Daten des Arbeitspufferspeichers (66 a; 66 b) wieder eingeschrieben werden, Daten des Arbeits­ pufferspeichers (66 b; 66 a) der anderen Zentraleinheit (63 c, 63 d; 63 a, 63 b) durch einen logischen Summenwert der besonderen Bits, die aus einem Bit für den Ar­ beitspufferspeicher (66 b; 66 a) und n Bits für den Pufferspeicher (64 c, 64 d; 64 a, 64 b) bestehen, ungül­ tig gemacht werden.4. Multi-processor system according to claim 1, characterized in that when data in the main buffer memory (66 a; 66 b) is rewritten, data (b 66; 66 a) of the working buffer memory of the other central processing unit (63 c, 63 d; 63 a , 63 b ) by a logical sum value of the special bits, which consist of one bit for the working buffer ( 66 b ; 66 a ) and n bits for the buffer memory ( 64 c , 64 d ; 64 a , 64 b ), are invalid be made. 5. Multiprozessorsystem gemäß Anspruch 1, dadurch gekennzeichnet, daß dann, wenn Daten des Arbeitspufferspeichers (66 a; 66 b) wieder eingeschrieben werden, Daten des Arbeits­ pufferspeichers (66 b; 66 a) der anderen Zentraleinheit (63 c, 63 d; 63 a, 63 b) durch einen Wert der besonderen Bits, der einem Pufferspeicherblock eines Verzeich­ nisses (76 b; 76 a) des Arbeitspufferspeichers (66 b; 66 a) entspricht, ungültig gemacht werden.5. Multi-processor system according to claim 1, characterized in that when data in the main buffer memory (66 a; 66 b) is rewritten, data (b 66; 66 a) of the working buffer memory of the other central processing unit (63 c, 63 d; 63 a , 63 b ) by a value of the special bits, which corresponds to a buffer block of a directory ( 76 b ; 76 a ) of the working buffer ( 66 b ; 66 a ), are invalidated. 6. Multiprozessorsystem, das
einen Hauptspeicher (61);
eine Mehrzahl von Arbeitspufferspeichern (66 a, 66 b) zum Speichern einer Kopie von Daten des Haupt­ speichers (61);
eine Mehrzahl von Zentraleinheiten (63 a bis 63 d);
eine Mehrzahl von Pufferspeichern (64 a bis 64 d) zur Speicherung einer Kopie von Daten eines jeden der Arbeitspufferspeicher (66 a, 66 b) und
Verzeichnisse (67 a bis 67 d, 76 a, 76 b), in die eine Hauptspeicheradresse eingetragen ist, unter der im Hauptspeicher (61) Daten gespeichert sind, die den Daten entsprechen, die unter der entsprechenden Adresse in jedem der Arbeitspufferspeicher (66 a, 66 b) bzw. der Pufferspeicher (64 a bis 64 d) gespeichert sind, aufweist,
eine hierarchische Speicherstruktur besitzt, in der eine Dateneintragungseinheit des Arbeitspuffer­ speichers (66 a, 66 b) um ein Vielfaches größer ist als eine Dateneintragungseinheit des Pufferspeichers (64 a bis 64 d); und
eine Struktur besitzt, in der jeder Pufferspei­ cher (64 a bis 64 d) exklusiv für eine der Zentralein­ heiten (63 a bis 63 d) verwendet wird, dadurch gekennzeichnet, daß
besondere Bits, die angeben, ob die im der einen Zentraleinheit (63 a, 63 b; 63 c, 63 d) entsprechenden Arbeitspufferspeicher (66 a; 66 b) gespeicherten Haupt­ speicheradressendaten im der anderen Zentraleinheit (63 c, 63 d; 63 a, 63 b) entsprechenden Arbeitspuffer­ speicher (66 b; 66 a) und im mit der anderen Zentral­ einheit verbundenen Pufferspeicher (64 c, 64 d; 64 a, 64 b) gespeichert sind, in ein erstes besonderes Bit zur Ausführung einer Datenidentitätskontrolle zwi­ schen den Arbeitspufferspeichern (66 a, 66 b) und in ein zweites besonderes Bit zur Ausführung einer Da­ tenidentitätskontrolle zwischen dem Arbeitspuffer­ speicher (66 a; 66 b) und dem mit dem anderen Arbeits­ pufferspeicher (66 b; 66 a) verbundenen Pufferspeicher (64 c; 64 d; 64 a, 64 b) aufgeteilt werden und die beson­ deren Bits als Teil einer Eintragung des Verzeichnis­ ses (76 a, 76 b) des Arbeitspufferspeichers (66 a, 66 b) oder als Speicherfeldinformation vorgesehen sind und
die Identitätskontrolle zwischen den Arbeitspuf­ ferspeichern (66 a, 66 b) aufgrund des Wiedereinschrei­ bens von Daten in den Arbeitspufferspeicher (66 a, 66 b) mittels des ersten besonderen Bits und die Iden­ titätskontrolle zwischen dem Arbeitspufferspeicher (66 a, 66 b) und dem anderen Pufferspeicher (64 c, 64 d; 64 a, 64 b) mittels des zweiten besonderen Bits unab­ hängig voneinander ausgeführt werden.
6. multiprocessor system that
a main memory ( 61 );
a plurality of working buffer memories ( 66 a , 66 b ) for storing a copy of data of the main memory ( 61 );
a plurality of central units ( 63 a to 63 d );
a plurality of buffer memories ( 64 a to 64 d ) for storing a copy of data from each of the working buffer memories ( 66 a , 66 b ) and
Directories ( 67 a to 67 d , 76 a , 76 b ), in which a main memory address is entered, under which data is stored in the main memory ( 61 ) which corresponds to the data which corresponds to the corresponding address in each of the working buffer memories ( 66 a , 66 b ) or the buffer memory ( 64 a to 64 d ) are stored,
has a hierarchical memory structure in which a data entry unit of the working buffer memory ( 66 a , 66 b ) is many times larger than a data entry unit of the buffer memory ( 64 a to 64 d) ; and
has a structure in which each buffer memory ( 64 a to 64 d ) is used exclusively for one of the central units ( 63 a to 63 d ), characterized in that
special bits that indicate whether the main memory address data stored in the one central unit ( 63 a , 63 b ; 63 c , 63 d ) corresponding main memory address data ( 66 a ; 66 b ) in the other central unit ( 63 c , 63 d ; 63 a , 63 b ) corresponding working buffer memory ( 66 b ; 66 a ) and in the buffer memory connected to the other central unit ( 64 c , 64 d ; 64 a , 64 b ) are stored, in a first special bit for executing a data identity check between the working buffer memories (66 a, 66 b) and in a second particular bit for performing Since tenidentitätskontrolle memory between the working buffer (66 a; 66 b) and the buffer memory with the other work (66 b; 66 a) connected to the buffer memory (64 c ; 64 d ; 64 a , 64 b ) and the special bits are provided as part of an entry in the directory ses ( 76 a , 76 b ) of the working buffer memory ( 66 a , 66 b ) or as memory field information u nd
the identity control between the working buffer ( 66 a , 66 b ) due to the rewriting of data in the working buffer ( 66 a , 66 b ) by means of the first special bit and the identity control between the working buffer ( 66 a , 66 b ) and the other buffer memory ( 64 c , 64 d ; 64 a , 64 b ) can be executed independently of one another by means of the second special bit.
DE19893932227 1988-09-27 1989-09-27 MULTIPROCESSOR SYSTEM Ceased DE3932227A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63241386A JPH0290259A (en) 1988-09-27 1988-09-27 Multiprocessor system

Publications (1)

Publication Number Publication Date
DE3932227A1 true DE3932227A1 (en) 1990-03-29

Family

ID=17073514

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19893932227 Ceased DE3932227A1 (en) 1988-09-27 1989-09-27 MULTIPROCESSOR SYSTEM

Country Status (3)

Country Link
JP (1) JPH0290259A (en)
DE (1) DE3932227A1 (en)
GB (1) GB2223868B (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5197139A (en) * 1990-04-05 1993-03-23 International Business Machines Corporation Cache management for multi-processor systems utilizing bulk cross-invalidate
CA2047888A1 (en) * 1990-07-27 1992-01-28 Hirosada Tone Hierarchical memory control system
GB2256512B (en) * 1991-06-04 1995-03-15 Intel Corp Second level cache controller unit and system
KR100515059B1 (en) * 2003-07-22 2005-09-14 삼성전자주식회사 Multiprocessor system and method to maintain cache coherence therefor
EP1986101B1 (en) * 2006-02-14 2012-06-20 Fujitsu Ltd. Coherency maintaining device and coherency maintaining method
JP2015182104A (en) 2014-03-24 2015-10-22 ファナック株式会社 Laser beam machine having function for monitoring laser beam propagation

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4675811A (en) * 1983-12-27 1987-06-23 Hitachi, Ltd. Multi-processor system with hierarchy buffer storages

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4797814A (en) * 1986-05-01 1989-01-10 International Business Machines Corporation Variable address mode cache

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4675811A (en) * 1983-12-27 1987-06-23 Hitachi, Ltd. Multi-processor system with hierarchy buffer storages

Also Published As

Publication number Publication date
JPH0290259A (en) 1990-03-29
GB2223868A (en) 1990-04-18
GB2223868B (en) 1993-01-20
GB8921803D0 (en) 1989-11-08

Similar Documents

Publication Publication Date Title
DE69317729T2 (en) Cache label storage
DE2847960C2 (en) Storage control device
DE2856133C2 (en) Data processing device with a main memory and an associative memory as buffer memory
DE69031086T2 (en) Cache memory control in multiprocessor networks
DE3803759C2 (en)
DE3932675C2 (en)
DE69733374T2 (en) Storage control device and system
DE3011552C2 (en)
DE69715203T2 (en) A data processing system with cc-NUMA (cache coherent, non-uniform memory access) architecture and cache memory contained in local memory for remote access
DE68902193T2 (en) DATA STORAGE ARRANGEMENT.
DE3621321A1 (en) CACHE STORAGE OR MULTIPROCESSOR SYSTEM AND OPERATING METHOD
DE69029173T2 (en) microprocessor
DE2241257A1 (en) DATA PROCESSING SYSTEM
DE2630323A1 (en) DATA STORAGE DEVICE
DE3502147C2 (en)
EP0013737A1 (en) Multilevel storage hierarchy for a data processing system
DE68928333T2 (en) Buffer memory that is suitable for storing command and data blocks in different block sizes
DE3588061T2 (en) Memory access control system and method for an information processing device.
DE69421340T2 (en) Coherent data exchange, administrative procedures between the levels of at least a three-level storage hierarchy
DE69230159T2 (en) Control circuit for two-gate memory
DE3873388T2 (en) CACHE STORAGE.
DE4117672A1 (en) CPU and cache memory control method - avoiding limitation of CPU operation due to cache memory operation
DE69131761T2 (en) Data processing for maintaining coherence of cache data
DE3919802C2 (en) Memory control system for a multiprocessor system
DE69131212T2 (en) Cache coherency in logical caches

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection