DE69131840T2 - Process for duplicating shared memory - Google Patents

Process for duplicating shared memory

Info

Publication number
DE69131840T2
DE69131840T2 DE69131840T DE69131840T DE69131840T2 DE 69131840 T2 DE69131840 T2 DE 69131840T2 DE 69131840 T DE69131840 T DE 69131840T DE 69131840 T DE69131840 T DE 69131840T DE 69131840 T2 DE69131840 T2 DE 69131840T2
Authority
DE
Germany
Prior art keywords
shared memory
unit
module
access
memory module
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.)
Expired - Fee Related
Application number
DE69131840T
Other languages
German (de)
Other versions
DE69131840D1 (en
Inventor
Akira Kabemoto
Toshio Ogawa
Katsuhiko Shioya
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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
Priority claimed from JP24820390A external-priority patent/JP3246736B2/en
Priority claimed from JP02248204A external-priority patent/JP3112280B2/en
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Application granted granted Critical
Publication of DE69131840D1 publication Critical patent/DE69131840D1/en
Publication of DE69131840T2 publication Critical patent/DE69131840T2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2087Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring with a common controller
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/88Masking faults in memories by using spares or by reconfiguring with partially good memories

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)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)

Description

Hintergrund der ErfindungBackground of the invention 1. Gebiet der Erfindung1. Field of the invention

Die vorliegende Erfindung bezieht sich auf ein einen gemeinsam benutzten Speicher duplizierendes System zur Verwendung mit einem Multiprozessorsystem, in welchem Prozessormodule und gemeinsam benutzte Speichermodule durch einen Systembus verbunden sind.The present invention relates to a shared memory duplicating system for use with a multiprocessor system in which processor modules and shared memory modules are connected by a system bus.

2. Beschreibung der verwandten Technik2. Description of related technology

Eine gemeinsam benutzte Speichervorrichtung eines Multiprozessorsystems speichert Anweisungen und Daten, die zum Verarbeiten durch Mehrfach-Prozessormodule notwendig sind. Diese Prozessormodule greifen häufig auf die gemeinsam benutzte Speichervorrichtung zu. Falls die Frequenz eines Zugriffs auf die gemeinsam benutzte Speichervorrichtung hoch ist, wird die Zahl von Prozessormodulen, die in das System eingebaut werden können, begrenzt sein, und folglich wird die Leistungsfähigkeit des Systems begrenzt sein. Überdies ist eine Abnormität in einem Prozessormodul wahrscheinlich direkt mit einer Abnormität innerhalb des gesamten Systems verbunden. Folglich ist eine Systemkonfiguration mit gemeinsam benutzten Speichern erwünscht, die einen effizienten Zugriff auf die gemeinsam benutzte Speichervorrichtung gestattet und eine Zugriffsfrequenz verringert.A shared memory device of a multiprocessor system stores instructions and data necessary for processing by multiple processor modules. These processor modules frequently access the shared memory device. If the frequency of access to the shared memory device is high, the number of processor modules that can be installed in the system will be limited, and thus the performance of the system will be limited. Moreover, an abnormality in a processor module is likely to be directly related to an abnormality within the entire system. Thus, a shared memory system configuration that allows efficient access to the shared memory device and reduces access frequency is desired.

Im einzelnen erfordert ein gemeinsam benutzter Speicher für ein fehlertolerantes System ein Duplizieren. Da die Duplexkonfiguration des gemeinsam benutzten Speichers durch Hardware fest spezifiziert ist, wird jedoch keine flexible Steuerung beim Duplizieren der Konfiguration ermöglicht. Außerdem überwacht beim Zugreifen auf einen Duplexspeicher die Software den Zugriff als einen Duplexzugriff, wobei sie folglich einer großen Prozeßlast ausgesetzt ist, die durch ein Duplexschreiben verursacht wird. Deshalb wird ein verbessertes Duplizierverfahren sehr gefordert, das eine Änderung in einer Duplexkonfiguration und eine Reduzierung in der Last auf der Software während des Duplexzugriffs erlaubt.In particular, a shared memory for a fault-tolerant system requires duplication. However, since the duplex configuration of the shared memory is fixedly specified by hardware, flexible control is not allowed in duplicating the configuration. Moreover, when accessing a duplex memory, the software monitors the access as a duplex access, thus subjecting it to a large process load caused by duplex writing. Therefore, an improved duplication method is highly demanded which allows a change in a duplex configuration and a reduction in the load on the software during the duplex access.

Ein herkömmliches Multiprozessorsystem umfaßt eine Mehrzahl von Prozessormodulen und eine Mehrzahl von gemeinsam benutzten Speichermodulen, die durch einen Systembus zur Übertragung von Information verbunden sind, dadurch ein Computersystem bildend.A conventional multiprocessor system includes a plurality of processor modules and a plurality of shared memory modules connected by a system bus for transferring information, thereby forming a computer system.

In solch einem Multiprozessorsystem werden Anweisungen und Daten, die für eine zentrale Verarbeitungseinheit jedes Prozessormoduls notwendig sind, in den gemeinsam benutzten Speichermodulen gespeichert. Jedes Prozessormodul bildet daher ein TCMP-(eng gekoppeltes Multiprozessor-)-System (Tightly Coupled Multiprocessor), das häufig auf die gemeinsam benutzten Speichermodule zugreift.In such a multiprocessor system, instructions and data necessary for a central processing unit of each processor module are stored in the shared memory modules. Each processor module therefore forms a Tightly Coupled Multiprocessor (TCMP) system that frequently accesses the shared memory modules.

Außerdem ist ein einen gemeinsam benutzten Speicher duplizierendes Verfahren unerläßlich zum Realisieren eines fehlertoleranten Multiprozessorsystems, das zu einem kontinuierlichen Betrieb imstande ist, selbst wenn ein Fehler in einem Teil des betriebenen Systems auftritt.In addition, a shared memory duplicating method is indispensable for realizing a fault-tolerant multiprocessor system capable of continuous operation even if a fault occurs in a part of the operating system.

Eine Duplexkonfiguration eines herkömmlichen, gemeinsam benutzten Speichers ist durch die Hardware bestimmt, und eine abnorme Bedingung in einem der Duplexspeicher wird durch ein duplizierendes Schreiben, bei dem die gleichen Daten geschrieben werden, gemäß einer Schreibanweisung eines Prozessors auf der Basis der Software in ein Paar gemeinsam benutzte Speichermodule korrigiert, die als ein Duplex spezifiziert sind.A duplex configuration of a conventional shared memory is determined by hardware, and an abnormal condition in one of the duplex memories is corrected by a duplicative write in which the same data is written according to a write instruction of a processor based on software into a pair of shared memory modules specified as a duplex.

Mit dem TCMP-System, in welchem jedes Prozessormodul häufig auf die gemeinsam benutzten Speichermodule zugreift, gibt es jedoch eine Grenze für die Informationsübertragungsfähigkeit pro Zeiteinheit des Systembusses. Falls die Zahl von Zugriffen zunimmt, wird folglich die Zahl von Prozessormodulen, die in das System eingebaut werden können, auf eine beträchtlich kleine Zahl begrenzt sein. Folglich wird auch die Systemleistungsfähigkeit begrenzt sein.However, with the TCMP system in which each processor module frequently accesses the shared memory modules, there is a limit to the information transfer capability per unit time of the system bus. Consequently, if the number of accesses increases, the number of processor modules that can be installed in the system will be limited to a considerably small number. Consequently, the system performance will also be limited.

Beim Implementieren eines fehlertoleranten Computersystems, das ein Arbeiten fortsetzen kann, ohne auszufallen oder herunterzufahren, selbst wenn in einem Teil des Systems ein Fehler auftritt, ergeben sich mit dem herkömmlichen System Probleme dadurch, daß, falls in einem Prozessormodul aufgrund eines Zugriffsfehlers eine Abnormität auftritt, der Systembus nach einer Verzögerung mit dem Ergebnis freigegeben wird, daß in anderen Prozessoren aufgrund des extrem häufigen Zugriffs auf das gemeinsam benutzte Speichermodul ein Aufwand auftritt, was bewirken kann, daß leicht eine Abnormität des gesamten Systems auftritt.In implementing a fault-tolerant computer system that can continue operating without failing or shutting down even if a fault occurs in a part of the system, problems arise with the conventional system in that if an abnormality occurs in a processor module due to an access error, the system bus is released after a delay with the result that an overhead occurs in other processors due to extremely frequent access to the shared memory module, which may cause an abnormality of the entire system to easily occur.

Außerdem ist in dem herkömmlichen System der Speicherbereich, auf den durch die zentrale Verarbeitungseinheit eines Prozessormoduls zugegriffen werden kann, durch die absoluten Adressen der zentralen Verarbeitungseinheit begrenzt, und folglich kann der Bereich außerhalb der absoluten Adreßkapazität nicht als Speicherraumbereich verwendet werden. Daher war es extrem schwierig, ein Computersystem zu bauen, das einen enormen Speicherraum erfordert, z. B. eines zum Verarbeiten einer Großdatenbank.Furthermore, in the conventional system, the memory area that can be accessed by the central processing unit of a processor module is limited by the absolute addresses of the central processing unit, and thus the area outside the absolute address capacity cannot be used as a memory space area. Therefore, it has been extremely difficult to build a computer system that requires a huge memory space, such as one for processing a large database.

Eine Duplizierung eines gemeinsam benutzten Speichers in einem fehlertoleranten System erfordert jedoch keine Duplizierung aller Speicherbereiche, sondern führt eine Duplizierung nur von spezifischen Speicherbereichen nach Bedarf aus.However, duplication of shared memory in a fault-tolerant system does not require duplication of all memory areas, but performs duplication of only specific memory areas as needed.

In dem Duplizierverfahren in der Technologie nach dem Stand der Technik ist jedoch die Duplexkonfiguration eines gemeinsam benutzten Speichers fest durch die Hardware bestimmt. Falls die Größe der während des Duplizierprozesses zu verwendenden Speicherbereiche während einer Systemoperation fluktuiert, muß daher das System gestoppt werden, so daß die Duplexkonfiguration durch die Hardware geändert werden kann. Dies schafft insofern ein Problem, als die Duplexkonfiguration nicht flexibel bestimmt werden kann.However, in the duplication method in the prior art technology, the duplex configuration of a shared memory is fixedly determined by the hardware. Therefore, if the size of the memory areas to be used during the duplication process fluctuates during a system operation, the system must be stopped so that the duplex configuration can be changed by the hardware. This creates a problem in that the duplex configuration cannot be flexibly determined.

In dem Duplizierverfahren der Technologie nach dem Stand der Technik erkennt Software einen Duplexzugriff beim Zugreifen auf einen Duplexspeicher und überwacht den Zustand des Zugriffs, bis Daten zweimal in den gemeinsam benutzten Duplexspeicher geschrieben sind. Folglich wird die Last auf die Software groß, und die Systemeffizienz wird reduziert.In the duplication method of the prior art technology, software detects a duplex access when accessing a duplex memory and monitors the state of the access until data is written twice into the shared duplex memory. As a result, the load on the software becomes large and the system efficiency is reduced.

EP-A-0 262 452 offenbart ein einen gemeinsam benutzten Speicher duplizierendes Verfahren. Dieses Verfahren umfaßt die Schritte eines Teilens eines Speicherraums der gemeinsam benutzten Speichervorrichtung in Abhängigkeit von einer Adresse in Teile von gemeinsam benutzten Speicherräumen, einschließlich eines spezifischen Bit (Parität) als ein Teil der Adresse, und Spezifizierens eines ersten Speicherraums, der einer der geteilten Speicherräume ist, durch eine Adresse mit einem invertierten Wert eines spezifischen Bit (Parität) im Gegensatz zur Adresse eines zweiten Speicherraums, der ein anderer der geteilten Speicherräume entsprechend dem ersten Speicherraum ist. Dieses Verfahren sieht auch ein Prüfen der Adresse vor, die verwendet wird, um auf die gemeinsame benutzte Speichervorrichtung zuzugreifen.EP-A-0 262 452 discloses a shared memory duplicating method. This method comprises the steps of dividing a memory space of the shared memory device into parts of shared memory spaces depending on an address including a specific bit (parity) as a part of the address, and specifying a first memory space which is one of the shared memory spaces by an address having an inverted value of a specific bit (parity) in contrast to the address of a second memory space which is another of the shared memory spaces corresponding to the first memory space. This method also provides for checking the Address used to access the shared storage device.

Zusammenfassung der ErfindungSummary of the invention

Eine Aufgabe der vorliegenden Erfindung besteht darin, ein einen gemeinsam benutzten Speicher duplizierendes Verfahren für ein fehlertolerantes Computersystem zu realisieren, wo eine Duplexkonfiguration während einer Operation geändert und die Last auf der Software während eines Duplexzugriffes reduziert werden kann.An object of the present invention is to realize a shared memory duplicating method for a fault-tolerant computer system, where a duplex configuration can be changed during an operation and the load on the software during a duplex access can be reduced.

Gemäß der vorliegenden Erfindung wird ein einen gemeinsam benutzten Speicher duplizierendes Verfahren zur Verwendung in einem Computersystem geschaffen mit: einem oder mehr Prozeßmodulen, die jeweils mindestens einen Hauptspeicher, eine zentrale Verarbeitungseinheit und eine Verbindungseinheit zur Verbindung mit einem Systembus aufweisen; und einer Mehrzahl von gemeinsam benutzten Speichermodulen mit zumindest einer gemeinsam benutzten Speichereinheit und einer Verbindungseinheit für eine Verbindung mit dem Systembus, wobei jedes der gemeinsam benutzten Speichermodule eine jeweilige Einheit-ID aufweist; worin das Verfahren ein zweites gemeinsam benutztes Speichermodul entsprechend einem ersten gemeinsam benutzten Speichermodul für eine Verwendung in einer Duplexoperation spezifiziert durch die Schritte: Teilen eines gemeinsam benutzten Speicherraums, auf den in Abhängigkeit von einer absoluten Adresse zugegriffen werden kann, in eine Mehrzahl von partiell gemeinsam benutzten Speicherräumen; Definieren der Existenz einer Duplexkonfiguration des ersten gemeinsam benutzten Speichermoduls für jeden der partiell gemeinsam benutzten Speicherräume; und Spezifizieren des zweiten gemeinsam benutzten Moduls durch dessen Einheit-ID mit einem invertierten Wert an einem spezifischen Bit im Gegensatz zu der Einheit-ID des ersten gemeinsam benutzten Speichermoduls; gekennzeichnet durch: ein Mittel zum Ändern der Duplexkonfiguration gemäß einer Anweisung der zentralen Verarbeitungseinheit auf der Grundlage von Software.According to the present invention there is provided a shared memory duplicating method for use in a computer system comprising: one or more process modules each having at least a main memory, a central processing unit and a connection unit for connection to a system bus; and a plurality of shared memory modules having at least one shared memory unit and a connection unit for connection to the system bus, each of the shared memory modules having a respective unit ID; wherein the method specifies a second shared memory module corresponding to a first shared memory module for use in a duplex operation by the steps of: dividing a shared memory space accessible in dependence on an absolute address into a plurality of partially shared memory spaces; defining the existence of a duplex configuration of the first shared memory module for each of the partially shared memory spaces; and specifying the second shared module by its unit ID with an inverted value at a specific bit in contrast to the unit ID of the first shared memory module; characterized by: means for changing the duplex configuration according to an instruction of the central processing unit on a software basis.

Kurze Beschreibung der ZeichnungenShort description of the drawings

Fig. 1A bis 1E sind Diagramme zum Erklären der Grundlagen der vorliegenden Erfindung;Figs. 1A to 1E are diagrams for explaining the principles of the present invention;

Fig. 2 veranschaulicht eine Multiprozessor-Systemkonfiguration der vorliegenden Erfindung;Fig. 2 illustrates a multiprocessor system configuration of the present invention;

Fig. 3 ist ein Blockdiagramm eines Prozessormoduls der vorliegenden Erfindung;Fig. 3 is a block diagram of a processor module of the present invention;

Fig. 4 ist ein Blockdiagramm eines gemeinsam benutzten Speichermoduls der vorliegenden Erfindung;Figure 4 is a block diagram of a shared memory module of the present invention;

Fig. 5 ist ein Blockdiagramm einer Verbindungseinheit der vorliegenden Erfindung, die in das Prozessormodul eingebaut ist;Fig. 5 is a block diagram of an interconnect unit of the present invention incorporated into the processor module;

Fig. 6 ist ein Blockdiagramm einer Verbindungseinheit der vorliegenden Erfindung, die in das gemeinsam benutzte Speichermodul eingebaut ist;Fig. 6 is a block diagram of an interconnect unit of the present invention incorporated into the shared memory module;

Fig. 7 ist ein Diagramm zum Erklären von Übertragungsbefehlen auf dem Systembus gemäß der vorliegenden Erfindung;Fig. 7 is a diagram for explaining transfer commands on the system bus according to the present invention;

Fig. 8 ist ein Diagramm zum Erklären von Schreib- und Übertragungsoperationen gemäß der vorliegenden Erfindung;Fig. 8 is a diagram for explaining writing and transferring operations according to the present invention;

Fig. 9 ist ein Diagramm zum Erklären von Lese- und Übertragungsoperationen gemäß der vorliegenden Erfindung;Fig. 9 is a diagram for explaining reading and transferring operations according to the present invention;

Fig. 10 ist ein Diagramm zum Erklären einer Adreßraumabbildung gemäß der vorliegenden Erfindung;Fig. 10 is a diagram for explaining an address space mapping according to the present invention;

Fig. 11 ist ein Diagramm zum Erklären eines erweiterten SSU-Raums gemäß der vorliegenden Erfindung;Fig. 11 is a diagram for explaining an extended SSU space according to the present invention;

Fig. 12 ist ein Diagramm zum Erklären von SSM-Konfigurationsdefinitionen durch das erste Steuerregister gemäß der vorliegenden Erfindung;Fig. 12 is a diagram for explaining SSM configuration definitions by the first control register according to the present invention;

Fig. 13 ist ein Diagramm zum Erklären von SSM-Konfigurationsdefinitionen durch das zweite Steuerregister gemäß der vorliegenden Erfindung;Fig. 13 is a diagram for explaining SSM configuration definitions by the second control register according to the present invention;

Fig. 14 ist ein Diagramm zum Erklären eines Packens der gemeinsam benutzten Speichermodule entsprechend den Konfigurationsdefinitionen der Fig. 12 und 13;Fig. 14 is a diagram for explaining packing of the shared memory modules according to the configuration definitions of Figs. 12 and 13;

Fig. 15A und 15B sind Flußdiagramme eines Zugriffsprozesses in dem Programm-Modus gemäß der vorliegenden Erfindung;Figs. 15A and 15B are flowcharts of an access process in the program mode according to the present invention;

Fig. 16A und 16B sind Flußdiagramme eines Zugriffsprozesses in dem DMA-Modus gemäß der vorliegenden Erfindung; undFigs. 16A and 16B are flowcharts of an access process in the DMA mode according to the present invention; and

Fig. 17 ist ein Diagramm zum Erklären eines Deskriptors, der in dem DMA-Modus-Zugriff gemäß der vorliegenden Erfindung verwendet wird.Fig. 17 is a diagram for explaining a descriptor used in the DMA mode access according to the present invention.

Ausführliche Beschreibung der bevorzugten AusführungsformDetailed description of the preferred embodiment

Fig. 1A bis 1E veranschaulichen die Grundlagen der vorliegenden Erfindung.Figures 1A through 1E illustrate the principles of the present invention.

Wie in Fig. 1A gezeigt ist, ist der Gegenstand der vorliegenden Erfindung ein Computersystem mit einer Mehrzahl von Verarbeitungsmodulen (Prozessormodule) 10, die jeweils zumindest einen Hauptspeicher 20, eine zentrale Verarbeitungseinheit 18 und eine Verbindungseinheit 22 für eine Verbindung mit einem Systembus 16 aufweisen, und einer Mehrzahl von gemeinsam benutzten Speichermodulen 12, die jeweils zumindest eine gemeinsam benutzte Speichereinheit 26 und eine Verbindungseinheit 28 für eine Verbindung mit dem Systembus 16 aufweisen.As shown in Fig. 1A, the subject of the present invention is a computer system having a plurality of processing modules (processor modules) 10, each having at least a main memory 20, a central processing unit 18 and a connection unit 22 for connection to a system bus 16, and a plurality of shared memory modules 12, each having at least a shared memory unit 26 and a connection unit 28 for connection to the system bus 16.

Wie in Fig. 1B gezeigt ist, ist zusätzlich zu einem im Verarbeitungsmodul inhärenten Raum 100, auf den durch absolute Adressen der zentralen Verarbeitungseinheit 18 des Verarbeitungsmoduls 10 zugegriffen werden kann, ein gemeinsam benutzter Speicherraum 200 vorgesehen. Auf diesen Raum kann gleichfalls durch die absoluten Adressen der zentralen Verarbeitungseinheit 18 zugegriffen werden.As shown in Fig. 1B, in addition to a processing module inherent space 100 that can be accessed by absolute addresses of the central processing unit 18 of the processing module 10, a shared memory space 200 is provided. This space can also be accessed by the absolute addresses of the central processing unit 18.

Der gemeinsam benutzte Speicherraum 200 ist in eine Mehrzahl von partiell gemeinsam benutzten Speicherräumen 300 geteilt, und die Beziehung mit den gemeinsam benutzten Speichermodulen 12 ist für jeden der teilweise benutzten Speicherbereiche 300 definiert.The shared memory space 200 is divided into a plurality of partially shared memory spaces 300, and the relationship with the shared memory modules 12 is defined for each of the partially shared memory spaces 300.

Die gemeinsam benutzten Speichermodule 12, deren Beziehungen mit den partiell gemeinsam benutzten Speicherbereichen 300 definiert sind, speichern Daten, die unter allen Verarbeitungseinheiten 10 gemeinsam benutzt werden sollen.The shared memory modules 12, whose relationships with the partially shared memory areas 300 are defined, store data to be shared among all processing units 10.

Der Hauptspeicher 20 ist dem dem Verarbeitungsmodul inhärenten Raum 100 zugeordnet, um dadurch einen Mehrfach-Raum für jedes der Verarbeitungsmodule 10 zu bilden.The main memory 20 is associated with the processing module inherent space 100 to thereby form a multiple space for each of the processing modules 10.

Der Hauptspeicher 20, der dem dem Verarbeitungsmodul inhärenten Raum 200 zugeordnet ist, speichert Operanden und die eigenen Daten des Verarbeitungsmoduls, die durch die zentrale Verarbeitungseinheit 18 verlangt werden.The main memory 20, which is associated with the processing module’s inherent space 200, stores operands and the processing module’s own data required by the central processing unit 18.

Die Verbindungseinheit 22 der Verarbeitungseinheit 10 weist ein Programm-Modus-Zugriff-Steuermittel 32 und ein DMA- Modus-Zugriff-Steuermittel 34 auf (dargestellt in Fig. 5).The connection unit 22 of the processing unit 10 has a program mode access control means 32 and a DMA mode access control means 34 (shown in Fig. 5).

Das Programm-Modus-Zugriff-Steuermittel 32 dient zum Zugreifen auf ein beliebiges, gemeinsam benutztes Speichermodul 12, das dem gemeinsam benutzten Speicherraum 200 zugeordnet ist, durch die absoluten Adressen der zentralen Verarbeitungseinheit 18, und das DMA-Modus-Zugriff-Steuermittel 34 dient zum Übersetzen der absoluten Adressen der zentralen Verarbeitungseinheit 18 in relative Adressen zum Zugreifen auf ein beliebiges, gemeinsam benutztes Speichermodul (12), das dem gemeinsam benutzten Speicherraum 200 zugeordnet ist.The program mode access control means 32 is for accessing any shared memory module 12 associated with the shared memory space 200 through the absolute addresses of the central processing unit 18, and the DMA mode access control means 34 is for translating the absolute addresses of the central processing unit 18 into relative addresses for accessing any shared memory module (12) associated with the shared memory space 200.

Wenn die zentrale Verarbeitungseinheit 18 durch ihre absolute Adresse auf den gemeinsam benutzten Speicherraum 200 zugreift, übersetzt das Programm-Modus-Zugriff-Steuermittel 32 der Verbindungseinheit 22 sie in die Einheit-ID eines gemeinsam benutzten Speichermoduls 12, das ein Kandidat für ein Zugreifen ist, und greift auf das gemeinsam benutzte Speichermodul 12 unter Verwendung der resultierenden Einheit-ID als ein Identifikator auf dem Systembus 16 zu.When the central processing unit 18 accesses the shared memory space 200 by its absolute address, the program mode access control means 32 of the interconnect unit 22 translates it into the unit ID of a shared memory module 12 that is a candidate for accessing, and accesses the shared memory module 12 using the resulting unit ID as an identifier on the system bus 16.

Das Programm-Modus-Zugriff-Steuermittel 32 der Verbindungseinheit 22 erzeugt einen Ziel-ID-Code (DID), der das gemeinsam benutzte Speichermodul 12 identifiziert, das ein Kandidat für ein Zugreifen wurde, einen Quellen-ID-Code (SID), der eine Quelle darstellt, einen Operanden, der den Zugriffstyp angibt, und einen Start-Übertragung-Befehl EC, der aus einer Zugriffsdatenkapazität BCT besteht. Das Programm- Modus-Zugriff-Steuermittel 32 überträgt dann den Start- Übertragung-Befehl EC zusammen mit einer Zugriffsadresse A des gemeinsam benutzten Ziel-Speichermoduls 12 zum Systembus 16.The program mode access control means 32 of the connection unit 22 generates a destination ID code (DID) identifying the shared memory module 12 that has become a candidate for access, a source ID code (SID) representing a source, an operand indicating the access type, and a start transfer command EC consisting of an access data capacity BCT. The program mode access control means 32 then transmits the start transfer command EC together with an access address A of the target shared memory module 12 to the system bus 16.

Im einzelnen überträgt das Programm-Modus-Zugriff-Steuermittel 32 der Verbindungseinheit 22 einen Start-Übertragung- Befehl oder Startbefehl SC und eine Zugriffsadresse A zur Zeit eines Abrufzugriffs und einen Start-Übertragung-Befehl SC, eine Zugriffsadresse A und zu schreibende Daten D zur Zeit eines Speicherzugriffs.Specifically, the program mode access control means 32 of the connection unit 22 transmits a start transfer command SC and an access address A at the time of a fetch access, and a start transfer command SC, an access address A and data to be written D at the time of a memory access.

Zur Zeit der Übertragung vom Verarbeitungsmodul 10 überwacht die Verbindungseinheit 28 des gemeinsam benutzten Speichermoduls 12 den Systembus 16 und empfängt den Start-Übertragung-Befehl SC, wenn deren Einheit-ID mit dem Ziel-ID-Code in dem Start-Übertragung-Befehl SC zusammenpaßt.At the time of transfer from the processing module 10, the connection unit 28 of the shared memory module 12 monitors the system bus 16 and receives the start transfer command SC if its unit ID matches the destination ID code in the start transfer command SC.

Anschließend antwortet die Verbindungseinheit 28 des gemeinsam benutzten Speichermoduls 12 auf den Empfang des Start-Übertragung-Befehls SC, um einen ID-Code DID zu erzeugen, der das Ziel-Verarbeitungsmodul 10 angibt, einen Quellen-ID-Code SID, der die Quelle angibt, und einen Antwort- Übertragung-Befehl oder einen Endbefehl EC, der einen Abschlußcode bei der Beendigung des Zugriffs auf die gemeinsam benutzte Speichereinheit 26 enthält, und sendet oder überträgt sie dann zum Systembus 16.Subsequently, the connection unit 28 of the shared memory module 12 responds to the reception of the start transfer command SC to generate an ID code DID indicating the destination processing module 10, a source ID code SID indicating the source, and a response transfer command or an end command EC containing a completion code upon completion of access to the shared memory unit 26, and then sends or transmits them to the system bus 16.

Im einzelnen überträgt die Verbindungseinheit 28 des gemeinsam benutzten Speichermoduls 12 nur den Antwort-Übertragung-Befehl EC zu der Zeit eines Speicherzugriffs und den Antwort-Übertragung-Befehl EC und Auslesedaten zur Zeit eines Abrufzugriffs.Specifically, the connection unit 28 of the shared memory module 12 transmits only the response transfer command EC at the time of memory access and the response transfer command EC and readout data at the time of retrieval access.

Als Antwort auf die Übertragung der Antwort von dem gemeinsam benutzten Speichermodul 12 überwacht die Verbindungseinheit 22 der Verarbeitungseinheit 10 den Systembus 16 und empfängt den Antwort-Übertragung-Befehl EC, wenn deren Einheit-ID mit dem Ziel-ID-Code in dem Antwort-Übertragung- Befehl EC zusammenpaßt.In response to the transmission of the response from the shared memory module 12, the connection unit 22 of the processing unit 10 monitors the system bus 16 and receives the response transmission command EC if its unit ID matches the destination ID code in the response transmission command EC.

Außerdem ist die Verbindungseinheit 22 des Verarbeitungsmoduls 10 mit einem Konfigurationssteuerregister 44 ausgestattet, das ein Packen oder Entpacken der gemeinsam benutzten Speichereinheit 12 entsprechend dem partiell gemeinsam benutzten Speicherraum 300 anzeigt.In addition, the connection unit 22 of the processing module 10 is equipped with a configuration control register 44 that indicates packing or unpacking of the shared memory unit 12 corresponding to the partially shared memory space 300.

Wie als nächstes in Fig. 1C gezeigt ist, ist zusätzlich zum gemeinsam benutzten Speicherbereich, auf den durch die absoluten Adressen des Verarbeitungsmoduls 10 zugegriffen werden kann, ein erweiterter, gemeinsam benutzter Speicherbereich 400 vorgesehen, auf den durch relative Adressen durch die zentrale Verarbeitungseinheit 18 zugegriffen werden kann.As shown next in Fig. 1C, in addition to the shared memory area accessible by the absolute addresses of the processing module 10, an extended shared memory area 400 is provided which can be accessed by relative addresses by the central processing unit 18.

Der gemeinsam benutzte Speicherbereich 400 ist in die gemeinsam benutzten Speichereinheiten 12 geteilt, die jeweils eine feste Speicherkapazität aufweisen.The shared storage area 400 is divided into the shared storage units 12, each of which has a fixed storage capacity.

Der erweiterte, gemeinsam benutzte Speicherbereich 400 enthält auch die gemeinsam benutzten Speichermodule 12, die dem gemeinsam benutzten Speicherraum 200 zugeordnet sind, auf den durch die absoluten Adressen der zentralen Verarbeitungseinheit 18 zugegriffen werden kann.The extended shared memory area 400 also includes the shared memory modules 12 associated with the shared memory space 200, which can be accessed by the absolute addresses of the central processing unit 18.

Ein Zugriff auf die gemeinsam benutzten Speichermodule 12, die den erweiterten, gemeinsam benutzten Speicherraum 400 bilden, wird durch das DMA-Modus-Zugriff-Steuermittel 34 in der Verbindungseinheit 22 der Verarbeitungseinheit 14 vorgenommen.Access to the shared memory modules 12 forming the extended shared memory space 400 is performed by the DMA mode access control means 34 in the connection unit 22 of the processing unit 14.

Das DMA-Modus-Zugriff-Steuermittel 34 spezifiziert ein gemeinsam benutztes Speichermodul 12 in dem erweiterten, gemeinsam benutzten Speicherbereich 400 mit einem Ziel-ID-Code DID in dem Start-Übertragung-Befehl SC und spezifiziert eine Adresse des spezifizierten, gemeinsam benutzten Speichermoduls 12 mit einer Zugriffsadresse A.The DMA mode access control means 34 specifies a shared memory module 12 in the extended shared memory area 400 with a destination ID code DID in the start transfer command SC and specifies an address of the specified shared memory module 12 with an access address A.

Die zentrale Verarbeitungseinheit 18 des Verarbeitungsmoduls 10 ordnet eine feste Zahl von Bit einer Adreßinformation einem Selektor zum Auswählen unter den gemeinsam benutzten Speichermodulen 12 und die verbleibenden Bit einer internen Adresse eines gemeinsam benutzten Speichermoduls 12 zu, das durch den Selektor spezifiziert ist, wenn auf den gemeinsam benutzten Speicherbereich 200 im Programm-Modus zugegriffen wird.The central processing unit 18 of the processing module 10 allocates a fixed number of bits of address information to a selector for selecting among the shared memory modules 12 and the remaining bits to an internal address of a shared memory module 12 specified by the selector when accessing the shared memory area 200 in program mode.

Die vorliegende Erfindung ist nicht auf das Computersystem von Fig. 1A beschränkt und kann aus einem einzigen Verarbeitungsmodul 10 und mehr als einer gemeinsam benutzten Speichereinheit 12 aufgebaut sein, die einem gemeinsam benutzten Speicherraum 200 zugeordnet ist, auf den durch die absoluten Adressen des Verarbeitungsmoduls 10 zugegriffen werden kann. Es kann auch mehr als ein Systembus vorgesehen sein. In diesem Fall sind in jedem der Verarbeitungsmodule 10 und gemeinsam benutzten Speichermodule 12 den Systembussen zahlenmäßig entsprechende Verbindungseinheiten vorgesehen.The present invention is not limited to the computer system of Fig. 1A and may be constructed of a single processing module 10 and more than one shared memory unit 12 associated with a shared memory space 200 accessible by the absolute addresses of the processing module 10. More than one system bus may also be provided. In this case, connection units corresponding in number to the system buses are provided in each of the processing modules 10 and shared memory modules 12.

Die Systemkonfiguration mit gemeinsam benutzten Speichern der vorliegenden Erfindung, das wie oben beschrieben konfiguriert ist, liefert die folgenden Effekte.The shared memory system configuration of the present invention configured as described above provides the following effects.

Erstens werden Anweisungscodes und Daten in getrennten Stellen gespeichert, wodurch die Frequenz eines Zugriffs auf das gemeinsam benutzte Speichermodul verringert werden kann. Deshalb kann das Problem einer begrenzten Systemleistungsfähigkeit infolge der hohen Zugriffsfrequenz gelöst werden.First, instruction codes and data are stored in separate locations, which can reduce the frequency of access to the shared memory module. Therefore, the problem of limited system performance due to the high access frequency can be solved.

Die Trennung von Anweisungen und Daten wird durch die absoluten Adressen der Verarbeitungsmodule vorgenommen, und der gemeinsam benutzte Speicherraum wird einem Raum zugeordnet, der ihnen allen gemeinsam ist. Der lokale Hauptspeicher jedes Verarbeitungsmoduls wird jedoch einem in dessen Verarbeitungseinheit inhärenten Raum zugeordnet.The separation of instructions and data is done by the absolute addresses of the processing modules, and the shared memory space is assigned to a space, which is common to all of them. However, the local main memory of each processing module is mapped to a space inherent in its processing unit.

Die Anweisungscodes der zentralen Verarbeitungseinheit in dem Verarbeitungsmodul werden in der Hauptspeichereinheit gespeichert, die dem eigenen Raum des Verarbeitungsmoduls zugeordnet ist. Nur Daten, die unter den Prozessormodulen gemeinsam benutzt werden müssen, werden in den gemeinsam benutzten Speichermodulen gespeichert, die den gemeinsam benutzten Speicherraum bilden.The instruction codes of the central processing unit in the processing module are stored in the main storage unit allocated to the processing module's own space. Only data that must be shared among the processor modules are stored in the shared storage modules that constitute the shared storage space.

Folglich ist die Frequenz eines Zugriffs auf die gemeinsam benutzten Speichermodule beträchtlich reduziert, was somit die Zahl von Prozessormodulen erhöht, die in das System eingebaut werden können, und die Systemleistungsfähigkeit verbessert.As a result, the frequency of access to the shared memory modules is significantly reduced, thus increasing the number of processor modules that can be installed in the system and improving system performance.

Da der unter mehr als einem Verarbeitungsmodul gemeinsam benutzte Speicherbereich reduziert ist, wird die Unabhängigkeit jedes Prozessormoduls gesteigert, was somit gestattet, daß ein fehlertolerantes System gebaut wird.Since the memory area shared among more than one processing module is reduced, the independence of each processing module is increased, thus allowing a fault-tolerant system to be built.

Indem man zusätzlich zu dem gemeinsam benutzten Speicherraum, der als der absolute Adreßraum der zentralen Verarbeitungseinheit dient, den erweiterten gemeinsam benutzten Speicherraum vorsieht, auf den nur durch Software-DMA-Anweisungen zugegriffen werden kann, wird es überdies möglich, einen Speicherraum zu bauen, der viel größer als der absolute Adreßraum ist.Furthermore, by providing the extended shared memory space, which can only be accessed by software DMA instructions, in addition to the shared memory space that serves as the absolute address space of the central processing unit, it becomes possible to build a memory space that is much larger than the absolute address space.

In der Konfiguration des oben beschriebenen Computersystems, das mit der vorliegenden Erfindung verbunden ist, wie in Fig. 1D gezeigt ist, wird ein gemeinsam benutzter Speicherraum 200, auf den in Abhängigkeit von der absoluten Adresse des Prozeßmoduls 10 zugegriffen werden kann, durch eine Mehrzahl von partiell gemeinsam benutzten Speicherräumen 300 geteilt, und die Existenz einer Duplexkonfiguration gemeinsam benutzter Speichermodule 12 ist für jeden Teil des geteilten, partiell gemeinsam benutzten Speicherraums definiert. Um einen Duplexspeicher mit einem gemeinsam benutzten Speichermodul 12 zu schaffen, der als eine Duplexkonfiguration aufweisend definiert ist, kann ein anderes, gemeinsam benutztes Speichermodul 12 mit einem invertierten Wert an einem spezifischen Bit in dessen Einheit-ID spezifiziert werden. Dieses Modul wird folglich als ein entsprechendes Modul in einem Duplexspeicher erzeugt.In the configuration of the above-described computer system associated with the present invention, as shown in Fig. 1D, a shared memory space 200 accessible depending on the absolute address of the process module 10 is divided by a plurality of partially shared memory spaces 300, and the existence of a duplex configuration of shared memory modules 12 is defined for each part of the divided partially shared memory space. To create a duplex memory with a shared memory module 12 defined as having a duplex configuration, another shared memory module 12 may be specified with an inverted value at a specific bit in its unit ID. This module is therefore created as a corresponding module in a duplex memory.

Um einen Duplexspeicher mit einem gemeinsam benutzten Speichermodul 12, der als eine Duplexkonfiguration aufweisend definiert ist, herzustellen, wird z. B. ein anderes, gemeinsam benutztes Speichermodul 12 mit einem invertierten Wert an dem niedrigstwertigen Bit in dessen Einheit-ID im Gegensatz zur entsprechenden, oben beschriebenen Einheit-ID als ein entsprechendes Modul in einem Paar Duplexspeichermodule spezifiziert.For example, to fabricate a duplex memory with a shared memory module 12 defined as having a duplex configuration, another shared memory module 12 having an inverted value at the least significant bit in its unit ID as opposed to the corresponding unit ID described above is specified as a corresponding module in a pair of duplex memory modules.

In einem Duplexzugriff führt, wenn eine Duplexkonfiguration gemäß einer Schreibanweisung der zentralen Verarbeitungseinheit 18 auf der Basis der Software bestimmt ist, die Hardware der Verbindungseinheit 22 ein erstes Schreiben in ein gemeinsam benutztes Speichermodul 12 mit einer spezifizierten Einheit-ID aus, und dann ein zweites Schreiben in das andere, gemeinsam benutzte Speichermodul 12 mit einem invertierten Wert am niedrigstwertigen Bit in dessen Einheit-ID im Gegensatz zur spezifizierten Einheit-ID.In a duplex access, when a duplex configuration is determined according to a write instruction of the central processing unit 18 based on the software, the hardware of the connection unit 22 performs a first write to a shared memory module 12 with a specified unit ID, and then a second write to the other shared memory module 12 with an inverted value at the least significant bit in its unit ID in contrast to the specified unit ID.

Außerdem ist die Verbindungseinheit 22 in dem Prozeßmodul 10 mit einem Konfigurationsdefinitionsregister 44 zum Spezifizieren der Existenz einer Duplexkonfiguration des gemeinsam benutzten Speichermoduls 12 vorgesehen und führt dann einen duplizierenden Schreibzugriff aus, bezugnehmend auf das Konfigurationsdefinitionsregister 44, wenn sie eine Schreibanweisung von der zentralen Verarbeitungseinheit 18 empfängt.In addition, the connection unit 22 in the process module 10 is provided with a configuration definition register 44 for specifying the existence of a duplex configuration of the shared memory module 12 and then performs a duplicative write access referring to the configuration definition register 44 when it receives a write instruction from the central processing unit 18.

Das Konfigurationsdefinitionsregister 44 zum Spezifizieren der Existenz einer Duplexkonfiguration nimmt gemäß der Anweisung der zentralen Verarbeitungseinheit 18 auf der Basis der Software eine Änderung während der Operation vor.The configuration definition register 44 for specifying the existence of a duplex configuration makes a change during the operation according to the instruction of the central processing unit 18 on the basis of the software.

In dem Lesezugriff wird, wenn die Verbindungseinheit 22 in dem Prozeßmodul 10 von der zentralen Verarbeitungseinheit 18 eine Anweisung empfängt, ein Paar gemeinsam benutzte Speichermodule 12 zu lesen, die als eine Duplexkonfiguration aufweisend spezifiziert sind, durch die Leseanweisung der zentralen Verabeitungseinheit 18 ein Lesezugriff auf eines der beiden, gemeinsam benutzten Speichermodule 12 mit einer Einheit-ID ausgegeben oder ausgeführt.In the read access, when the connection unit 22 in the process module 10 receives an instruction from the central processing unit 18 to read a pair of shared memory modules 12 specified as having a duplex configuration, a read access to one of the two shared memory modules 12 with a unit ID is issued or executed by the read instruction of the central processing unit 18.

In der Übertragung durch den Systembus 16, wie in Fig. 1E gezeigt ist, erzeugt die Verbindungseinheit 22 im Prozeß modul 10 einen Start-Übertragung-Befehl (SC) mit einem Ziel- ID-Code (DID), der ein gemeinsam benutztes Speichermodul 12 anzeigt, auf das zugegriffen werden soll, einem Quellen-ID- Code (SID), der eine Quelle anzeigt, einem den Zugriffstyp anzeigenden Operanden und der Zugriffsdatenkapazität (BCT). Sie überträgt dann den Start-Übertragung-Befehl (SC) an den oben beschriebenen Systembus 16 mit der Zugriffsadresse (A) des gemeinsam benutzten Ziel-Speichermoduls 12.In the transmission through the system bus 16, as shown in Fig. 1E, the connection unit 22 generates in the process module 10 a start transfer command (SC) with a destination ID code (DID) indicating a shared memory module 12 to be accessed, a source ID code (SID) indicating a source, an operand indicating the access type, and the access data capacity (BCT). It then transmits the start transfer command (SC) to the system bus 16 described above with the access address (A) of the target shared memory module 12.

Die Verbindungseinheit 28 in dem gemeinsam benutzten Speichermodul 12 wiederum überwacht den Systembus 16 und führt einen Zugriff gemäß dem Operanden aus, nachdem der Start-Übertragung-Befehl (SC) akzeptiert ist, wenn sie bestimmt, daß der Ziel-ID-Code des Start-Übertragung-Befehl (SC) mit ihrer eigenen Einheit-ID zusammenpaßt.The interconnect unit 28 in the shared memory module 12, in turn, monitors the system bus 16 and performs an access according to the operand after the start transfer command (SC) is accepted if it determines that the destination ID code of the start transfer command (SC) matches its own unit ID.

Die Verbindungseinheit 22 in dem Prozeßmodul 10 umfaßt die folgende Bardware zum Ausführen eines duplizierenden Schreibens gemäß der Spezifikation einer Duplexkonfiguration: ein Programm-Modus-Zugriff-Steuergerät 32 zum Zugreifen auf das gemeinsam benutzte Speichermodul 12 gemäß der absoluten Adresse der zentralen Verarbeitungseinheit 18 und ein DMA- Modus-Zugriff-Steuergerät 34 zum Zugreifen auf das gemeinsam benutzte Speichermodul 12 nach Umwandeln der absoluten Adresse der zentralen Verarbeitungseinheit 18 in eine relative Adresse.The connection unit 22 in the process module 10 includes the following hardware for performing duplicative writing according to the specification of a duplex configuration: a program mode access controller 32 for accessing the shared memory module 12 according to the absolute address of the central processing unit 18 and a DMA mode access controller 34 for accessing the shared memory module 12 after converting the absolute address of the central processing unit 18 into a relative address.

Falls jedoch während des Zugriffs auf das gemeinsam benutzte Speichermodul 12 eine abnorme Bedingung detektiert wird, werden ein Beendigungscode, der die ausführliche Information der abnormen Bedingung anzeigt, und eine Einheit-ID des defekten gemeinsam benutzten Speichermoduls 12 der Software des Prozeßmoduls 10 gemeldet.However, if an abnormal condition is detected during access to the shared memory module 12, a termination code indicating the detailed information of the abnormal condition and a unit ID of the defective shared memory module 12 are reported to the software of the process module 10.

Im einzelnen werden während eines Duplexzugriffes ein Beendigungscode, der die ausführliche Information einer abnormen Bedingung anzeigt, und nur das niedrigstwertige Bit in der Einheit-ID in dem defekten, gemeinsam benutzten Speichermodul 12 der Software des Prozeßmoduls gemeldet.Specifically, during a duplex access, a completion code indicating detailed information of an abnormal condition and only the least significant bit in the unit ID in the defective shared memory module 12 are reported to the process module software.

Das heißt, da jede Einheit-ID eines duplizierten Speichers einer gerad- oder ungeradzahligen ID zugewiesen ist, reicht ein Melden allein des niedrigstwertigen Bit aus, um das defekte Modul in dem Paar zu bestimmen.That is, since each unit ID of a duplicated memory is assigned to an even or odd ID, reporting only the least significant bit is sufficient to determine the defective module in the pair.

Wenn der Software des Prozeßmoduls 10 das abnorme Ende des Duplexzugriffs gemeldet wird, wird ein Erholungs- oder Wiederherstellungsprozeß, wie z. B. eine Freigabe einer Duplizierung, eine Neuschreib-Anweisung, ein Wechsel des zu lesenden, gemeinsam benutzten Speichermoduls 12 etc., ausgeführt, indem der Inhalt des in der Verbindungseinheit 22 vorgesehenen Konfigurationsdefinitionsregisters 44 ausgewählt wird.When the abnormal end of the duplex access is reported to the software of the process module 10, a recovery or restoration process such as a release of a duplication, a rewrite instruction, a change of the shared memory module 12 to be read, etc., is executed by selecting the content of the configuration definition register 44 provided in the connection unit 22.

Das in Fig. 1A gezeigte Computersystem kann ein einziges Prozeßmodul 10 und eine Mehrzahl von gemeinsam benutzten Speichereinheiten 12 aufweisen, die mit einem gemeinsam benutzten Speicherbereich versehen sind, auf den in Abhängigkeit von der absoluten Adresse des Prozeßmoduls 10 zugegriffen werden kann.The computer system shown in Fig. 1A may include a single process module 10 and a plurality of shared memory units 12 provided with a shared memory area that can be accessed depending on the absolute address of the process module 10.

Ferner sind mehrere Systembusse 16 vorgesehen, um zu gestatten, daß mehrere Verbindungseinheiten 22 in den Prozeßmodulen 10 und mehrere Verbindungseinheiten 28 in den gemeinsam benutzten Speichermodulen 12 in Abhängigkeit von der Anzahl von Systembussen 16 angebracht werden.Furthermore, a plurality of system buses 16 are provided to allow a plurality of interconnect units 22 to be mounted in the process modules 10 and a plurality of interconnect units 28 to be mounted in the shared memory modules 12 depending on the number of system buses 16.

Der gemeinsam benutzte Speicherraum umfaßt eine Mehrzahl von gemeinsam benutzten Speichermodulen, und der gemeinsam benutzte Speicherraum ist in eine Mehrzahl von partiell gemeinsam benutzten Speicherräumen geteilt. Gemäß der Konfigurationsdefinition zum Definieren der Beziehung zwischen jedem der geteilten, partiell gemeinsam benutzten Speicherräume und der gemeinsam benutzten Speichermodule kann die Existenz einer Duplexkonfiguration und eines gemeinsam benutzten Speicherbereichs bezeichnet oder bestimmt werden.The shared memory space includes a plurality of shared memory modules, and the shared memory space is divided into a plurality of partially shared memory spaces. According to the configuration definition for defining the relationship between each of the divided partially shared memory spaces and the shared memory modules, the existence of a duplex configuration and a shared memory area can be designated or determined.

Eine Duplexkonfiguration kann optional so definiert sein, daß der Zusatz/Entfernung eines gemeinsam benutzten Speichermoduls und der Wechsel zu einer Simplex/Duplexkonfiguration zugelassen sind.A duplex configuration can optionally be defined to allow the addition/removal of a shared memory module and the change to a simplex/duplex configuration.

Das durch Hardware betriebene duplizierende Schreiben kann leicht ausgeführt werden, indem es auf ein Paar gemeinsam benutzte Speichermodule mit einem invertierten Wert an einem spezifischen Bit und gleichen Werten an allen anderen Bit in den jeweiligen Einheit-ID begrenzt wird.Hardware-driven duplicate writing can be easily accomplished by limiting it to a pair of shared memory modules with an inverted value on a specific bit and equal values on all other bits in the respective unit IDs.

Das heißt, in einem Schreibprozeß in ein gemeinsam benutztes Speichermodul, wo eine Duplexkonfiguration spezifiziert ist, veranlaßt eine Schreibanweisung der Software die Hardware, in ein gemeinsam benutztes Speichermodul mit einer spezifizierten Einheit-ID zu schreiben und dann in das andere, gemeinsam benutzte Speichermodul in der Duplexkonfiguration mit einem invertierten Wert zu schreiben, der im Gegensatz zur ersten Einheit-ID einem spezifischen Bit zugeordnet ist. Die Prozeßlast auf der Software kann daher ohne jeglichen weiteren Softwareprozeß für den Duplexzugriff reduziert werden, was folglich die Systemleistungsfähigkeit außerordentlich verbessert.That is, in a write process to a shared memory module where a duplex configuration is specified, a software write instruction causes the hardware to write to a shared memory module with a specified unit ID and then write to the other shared memory module in the duplex configuration with an inverted value that is associated with a specific bit other than the first unit ID. The process load on the software can therefore be reduced without any additional software process for duplex access, thus greatly improving the system performance.

Fig. 2 veranschaulicht eine Systemkonfiguration eines Multiprozessorsystems, für das ein Konfigurationssystem für gemeinsam benutzte Speicher gemäß der vorliegenden Erfindung verwendet wird.Fig. 2 illustrates a system configuration of a multiprocessor system to which a shared memory configuration system according to the present invention is applied.

Das Multiprozessorsystem weist mehr als ein Prozessormodul (PM) 10 und mehr als ein gemeinsam benutztes Speichermodul (SSM) 12 auf. Die Prozessormodule 10 und die gemeinsam benutzten Speichermodule 12 sind jeweils mit einem gemeinsam benutzten Systembus (SS-BUS) 16, einem geteilten Bus, durch eine Verbindungseinheit (SSBC-P) 22 verbunden. Der gemeinsam benutzte Systembus 16 wird durch einen Handler für den gemeinsam benutzten Systembus (SSBH) 14 gesteuert, und die Entscheidung des gemeinsam benutzten Systembusses 16 wird zentral durch den Handler 14 für den gemeinsam benutzten Systembus gesteuert.The multiprocessor system includes more than one processor module (PM) 10 and more than one shared memory module (SSM) 12. The processor modules 10 and the shared memory modules 12 are each connected to a shared system bus (SS-BUS) 16, a shared bus, through a connection unit (SSBC-P) 22. The shared system bus 16 is controlled by a shared system bus handler (SSBH) 14, and the arbitration of the shared system bus 16 is centrally controlled by the shared system bus handler 14.

Die Einheit-ID-Zahlen der #0 bis #2 Prozessormodule 10 sind wie folgt zugeordnet:The unit ID numbers of the #0 to #2 processor modules 10 are assigned as follows:

PM #0; UID = 1000000PM #0; UID = 1000000

PM #1; UID = 1000001PM #1; UID = 1000001

PM #2; UID = 1000010PM #2; UID = 1000010

Auch die ID-Zahlen der #0 bis #2 gemeinsam benutzten Speichermodule 12 sind folgendermaßen zugeordnet:The ID numbers of the #0 to #2 shared memory modules 12 are also assigned as follows:

SSM #0, UID = 0000000SSM #0, UID = 0000000

SSM #1; UID = 0000001SSM #1; UID = 0000001

SSM #"; UID = 0000010SSM #"; UID = 0000010

Obwohl die Prozeßmodule 10 und die gemeinsam benutzten Speichermodule 12 jeweils durch den #0 und #1 gemeinsam benutzten Systembus 16 gesteuert werden, der zu fehlertoleranten Zwecken verdoppelt ist, können sie mit mehreren gemeinsam benutzten Systembussen 16 verbunden sein.Although the process modules 10 and the shared memory modules 12 are each controlled by the #0 and #1 shared system bus 16, which is duplicated for fault-tolerant purposes, they may be connected to multiple shared system buses 16.

Fig. 3 ist ein Blockdiagramm des in Fig. 2 gezeigten Prozessormoduls.Fig. 3 is a block diagram of the processor module shown in Fig. 2.

Das Prozessormodul weist eine zentrale Verarbeitungseinheit (uP) 18, eine lokale Hauptspeichereinheit (LSU) 20 und zwei Verbindungseinheiten (SSBC-P) 22 für die beiden, gemeinsam benutzten Systembusse 16 auf, die alle durch einen internen Bus 24 verbunden sind.The processor module has a central processing unit (uP) 18, a local main storage unit (LSU) 20 and two connection units (SSBC-P) 22 for the two shared system buses 16, all of which are connected by an internal bus 24.

Im Prozessormodul 10 läuft Software (OS) auf der zentralen Verarbeitungseinheit 18 und der Hauptspeichereinheit 20. Stücke der Software von den Prozessormodulen 10 arbeiten miteinander zusammen, um eine verteilte OS zum Ausführen eines Satzes von Operationen zu bilden. Die zentrale Verarbeitungseinheit 18 jedes Prozessormoduls ruft Anweisungscodes nur von ihrer Hauptspeichereinheit 20 ab.In the processor module 10, software (OS) runs on the central processing unit 18 and the main storage unit 20. Pieces of software from the processor modules 10 work together to form a distributed OS for executing a set of operations. The central processing unit 18 of each processor module retrieves instruction codes only from its main storage unit 20.

Fig. 4 ist ein Blockdiagramm des in Fig. 2 gezeigten, gemeinsam benutzten Speichermoduls 12.Fig. 4 is a block diagram of the shared memory module 12 shown in Fig. 2.

Das gemeinsam benutzte Speichermodul 12 weist eine gemeinsam benutzte Speichereinheit (SSU) 26 und zwei Verbindungseinheiten (SSBC-S) 28 entsprechend den beiden, gemeinsam benutzten Systembussen 16 auf, die alle durch einen internen Bus 30 verbunden sind. Die gemeinsam benutzte Speichereinheit 26 speichert Daten, die unter den in Fig. 2 gezeigten Prozessormodulen 10 gemeinsam benutzt werden sollen.The shared memory module 12 includes a shared memory unit (SSU) 26 and two interconnect units (SSBC-S) 28 corresponding to the two shared system buses 16, all connected by an internal bus 30. The shared memory unit 26 stores data to be shared among the processor modules 10 shown in Fig. 2.

Fig. 5 ist ein Blockdiagramm der Verbindungseinheit 22 im Prozessormodul 10 von Fig. 3.Fig. 5 is a block diagram of the interconnect unit 22 in the processor module 10 of Fig. 3.

Die Verbindungseinheit 22 greift über den gemeinsam benutzten Systembus 16 auf die gemeinsam benutzte Speichereinheit 12 von Fig. 2 in den folgenden beiden Modi zu:The connection unit 22 accesses the shared memory unit 12 of Fig. 2 via the shared system bus 16 in the following two modes:

(1) Programm-Modus(1) Program mode

(2) DMA-Modus(2) DMA mode

Die Verbindungseinheit 22 weist eine Programm-Modus-Zugriff- Steuerschaltung 32 und eine DMA-Modus-Zugriff-Steuerschaltung 34 auf, die für die beiden Zugriffsmodi vorgesehen sind. Sie weist ferner eine Sender-Empfänger-Schaltung 36 zum Senden oder Übertragen von Daten zum oder Empfangen von Daten vom gemeinsam benutzten Systembus 16 und einen Dual-Port-RAM 38 auf, der als ein Puffer dient. Die Programm-Modus-Steuerschaltung 32 weist einen Adreßdecodierer 40, ein Zeitsteuerung-Steuergerät 42 und ein Konfigurationsdefinitionsregister 44 auf. Die DMA-Modus-Zugriff-Steuerschaltung 34 weist einen Adreßgenerator 46, ein Zeitsteuerung-Steuergerät 48 und ein DMA-Steuerregister 50 auf.The connection unit 22 includes a program mode access control circuit 32 and a DMA mode access control circuit 34 provided for the two access modes. It also includes a transceiver circuit 36 for sending or transmitting data to or receiving data from the shared system bus 16 and a dual port RAM 38 serving as a buffer. The program mode control circuit 32 includes an address decoder 40, a timing controller 42 and a configuration definition register 44. The DMA mode access control circuit 34 includes an address generator 46, a timing controller 48 and a DMA control register 50.

Fig. 6 ist ein Blockdiagramm der Verbindungseinheit (SSBC-S) 28 des gemeinsam benutzten Speichermoduls 12, das in Fig. 4 gezeigt ist.Fig. 6 is a block diagram of the interconnect unit (SSBC-S) 28 of the shared memory module 12 shown in Fig. 4.

Die Verbindungseinheit 28 ist aus einer DMA-Steuerschaltung 52, einer Interner-Bus-Arbiter-Schaltung 54, einer Sender-Empfänger-Schaltung 56 und einem Dual-Port-RAM 58 aufgebaut. Die DMA-Steuerschaltung besteht aus einer Interner-Bus- Steuerschaltung 74 zum Steuern des internen Busses 30, einem Adreßgenerator 70 und einem Zeitsteuerung-Steuergerät 72; die Interner-Bus-Entscheider-Schaltung 54 führt die Entscheidung des internen Busses 30 aus, wenn mehr als eine Verbindungseinheit 28 in dem gemeinsam benutzten Speichermodul 12 installiert ist, wie in Fig. 4 gezeigt ist; die Sender- Empfänger-Schaltung 56 ist für den gemeinsam benutzten Systembus 16 gedacht, und der Dual-Port-RAM 58 dient als ein Puffer.The connection unit 28 is constructed of a DMA control circuit 52, an internal bus arbiter circuit 54, a transceiver circuit 56 and a dual port RAM 58. The DMA control circuit consists of an internal bus control circuit 74 for controlling the internal bus 30, an address generator 70 and a timing controller 72; the internal bus arbiter circuit 54 carries out the arbitration of the internal bus 30 when more than one connection unit 28 is installed in the shared memory module 12 as shown in Fig. 4; the transceiver circuit 56 is for the shared system bus 16, and the dual port RAM 58 serves as a buffer.

Die Verbindungseinheiten 22 und 28, die Verbindungen zwischen den Prozessormodulen 10 und den gemeinsam benutzten Speichermodulen 12 über den gemeinsam benutzten Systembus 16 herstellen, übernehmen ein geteiltes Übertragungssystem, in welchem jeder Zugriff in eine Startübertragung und Antwortübertragung geteilt ist.The connection units 22 and 28, which establish connections between the processor modules 10 and the shared memory modules 12 via the shared system bus 16, adopt a shared transmission system in which each access is divided into a start transmission and a response transmission.

In der Bussteuerung des geteilten Übertragungssystems ist eine Einheit-ID-Zahl jedem Modul zugeordnet, welche Einheit- ID als ein Modul-Identifikator auf dem Bus verwendet wird.In the bus control of the shared transmission system, a unit ID number is assigned to each module, which unit ID is used as a module identifier on the bus.

Fig. 7 veranschaulicht Beispiele eines Start- Übertragung-Befehls SC und eines Antwort-Übertragung-Befehls EC, die durch die Verbindungseinheiten 22 und 28 verwendet werden.Fig. 7 illustrates examples of a start transmission command SC and a response transmission command EC used by the connection units 22 and 28.

In dem Start-Übertragung-Befehl SC von Fig. 7 zeigt die DID (Ziel-ID) die Einheit-ID eines Zielmoduls an, und die SID (Quellen-ID) zeigt die Einheit-ID eines Quellenmoduls an. Der Operand zeigt einen Zugriffstyp an. Die Zugriffstypen umfassen einen Speicherzugriff auf die gemeinsam benutzten Speichermodule 12, einen Zugriff auf die gemeinsam benutzten Speichereinheiten 12 und die anderen Prozessormodule 10, um sie zu stoppen, und einen Zugriff auf das Steuerregister, um es zurückzusetzen. Die BCT (Byte-Zählung) zeigt die Datenkapazität beim Zugreifen auf die gemeinsam benutzten Speichermodule 12 an.In the start transfer command SC of Fig. 7, the DID (destination ID) indicates the unit ID of a destination module, and the SID (source ID) indicates the unit ID of a source module. The operand indicates an access type. The access types include a memory access to the shared memory modules 12, an access to the shared memory units 12 and the other processor modules 10 to stop them, and an access to the control register to reset it. The BCT (byte count) indicates the data capacity when accessing the shared memory modules 12.

In dem Antwort-Übertragung-Befehl EC sind die DID und SID dieselben wie diejenigen in dem Start-Übertragung-Befehl SC, und der Abschlußcode zeigt einen Abschlußzustand des Ziels an, d. h. einen normalen Abschluß oder einen abnormen Abschluß.In the response transmission command EC, the DID and SID are the same as those in the start transmission command SC, and the completion code indicates a completion state of the destination, i.e., a normal completion or an abnormal completion.

Fig. 8 ist ein Diagramm zum Erklären einer Operation eines Schreibzugriffs (Speicherzugriffs) zum Übertragen von Daten von einem Quellenprozessormodul 10 zu einem gemeinsam benutzten Speichermodul 12 über den gemeinsam benutzten Systembus 16 und Schreiben dieser in dem Speichermodul 12.Fig. 8 is a diagram for explaining an operation of a write access (memory access) for transferring data from a source processor module 10 to a shared memory module 12 via the shared system bus 16 and writing it in the memory module 12.

Zunächst bereitet das (zugreifende) Quellenprozessormodul 10 einen Start-Übertragung-Befehl SC vor. Das heißt, der durch das Quellenprozessormodul vorbereitete Start- Übertragung-Befehl besteht aus der SID, die dessen eigene Einheit-ID anzeigt, der DID, der die Einheit-ID eines gemeinsam benutzten Speichermoduls 12 anzeigt, auf das zugegriffen wird, einem Operanden, der den Schreibzugriff anzeigt, und der die Zugriffskapazität anzeigenden BCT. Nach dem Start- Übertragung-Befehl SC werden eine Zugriffsadresse A des gemeinsam benutzten Ziel-Speichermoduls 12 und darin zu schreibende Daten D auf den Systembus 16 geschickt.First, the source (accessing) processor module 10 prepares a start transfer command SC. That is, the start transfer command prepared by the source processor module consists of the SID indicating its own unit ID, the DID indicating the unit ID of a shared memory module 12 being accessed, an operand indicating write access, and the BCT indicating the access capacity. After the start transfer command SC, an access address A of the target shared memory module 12 and data D to be written therein are sent to the system bus 16.

Das gemeinsam benutzte Ziel-Speichermodul 12 überwacht den gemeinsam benutzten Systembus 16 und vergleicht die das Ziel anzeigende DID, die in dem Start-Übertragung-Befehl SC enthalten ist, mit seiner eigenen Einheit-ID. Wenn eine Übereinstimmung auftritt, führt das gemeinsam benutzte Speichermodul 12 eine Empfangsoperation aus. Das gemeinsam benutzte Speichermodul nimmt dann einen Schreibzugriff auf die gemeinsam benutzte Speichereinheit 26 vor (siehe Fig. 4) und überträgt zum Quellenprozessormodul einen Antwort-Übertragung- Befehl EC, der den Abschlußcode des Schreibzugriffs enthält und worin die DID und SID gegeneinander vertauscht sind, weil die Start-Übertragung und die Antwort-Übertragung in der Übertragungsrichtung einander entgegengesetzt sind.The target shared memory module 12 monitors the shared system bus 16 and compares the target indicating DID contained in the start transfer command SC with its own unit ID. If a match occurs, the shared memory module 12 performs a receive operation. The shared memory module then makes a write access to the shared memory unit 26 (see Figure 4) and transmits to the source processor module a response transfer command EC containing the completion code of the write access and in which the DID and SID are swapped because the start transfer and the response transfer are opposite in the transfer direction.

Das Quellenprozessormodul 10 überwacht den gemeinsam benutzten Systembus 16 und führt die Empfangsoperation aus, wenn zwischen der Ziel-ID in dem Antwort-Übertragung-Befehl EC und seiner eigenen Einheit-ID eine Übereinstimmung auftritt, wodurch ein einmaliger Zugriff beendet wird.The source processor module 10 monitors the shared system bus 16 and performs the receive operation when a match occurs between the destination ID in the response transmission command EC and its own unit ID, thereby terminating a one-time access.

Während der Stillstandzeit vor der Beendigung einer Übertragung des Start-Übertragung-Befehls SC bis zur Einleitung der Übertragung des Antwort-Übertragung-Befehls EC kann der Systembus verwendet werden, um den Start-Übertragung-Befehl SC oder den Antwort-Übertragung-Befehl EC für einen anderen Zugriff zu übertragen.During the idle time before the completion of a transmission of the start transfer command SC until the initiation of the transmission of the response transfer command EC, the system bus can be used to transmit the start transfer command SC or the response transfer command EC for another access.

Fig. 9 ist ein Diagramm zur Verwendung beim Erklären der Operation eines Lesezugriffs (Abrufzugriffs) zum Lesen von Daten von einem gemeinsam benutzten Speichermodul 12 und Übertragen dieser zu einem Prozessormodul 10.Fig. 9 is a diagram for use in explaining the operation of a read access (fetch access) for reading data from a shared memory module 12 and transferring it to a processor module 10.

Zuerst bereitet ein Quellenprozessormodul 10 einen Start- Übertragung-Befehl SC vor, der aus der seine eigene Einheit- ID anzeigenden SID, der DID, die die Einheit-ID eines gemeinsam benutzten Ziel-Speichermoduls 12 anzeigt, auf das zugegriffen wird, einem den Lesezugriff anzeigenden Operanden und der die Zugriffskapazität anzeigenden BCT besteht. Nach dem Start-Übertragung-Befehl oder Start-Befehl SC wird eine Zugriffsadresse A des gemeinsam benutzten Speichermoduls 12, auf das zugegriffen wird, auf den Systembus 16 geschickt.First, a source processor module 10 prepares a start transfer command SC consisting of the SID indicating its own unit ID, the DID indicating the unit ID of a target shared memory module 12 being accessed, an operand indicating the read access, and the BCT indicating the access capacity. After the start transfer command or start command SC, an access address A of the accessed shared memory module 12 is sent to the system bus 16.

Das gemeinsam benutzte Ziel-Speichermodul 12 überwacht den gemeinsam benutzten Systembus 16 und vergleicht die DID in dem Start-Übertragung-Befehl SC mit seiner eigenen Einheit-ID. Wenn der Vergleich Gleichheit anzeigt, führt das Modul 12 die Empfangsoperation aus. Das gemeinsam benutzte Ziel-Speichermodul 12 nimmt dann einen Lesezugriff auf die gemeinsam benutzte Speichereinheit 26 (siehe Fig. 4) des gemeinsam benutzten Speichermoduls 12 vor und überträgt zum Quellenspeichermodul 10 einen Antwort-Übertragung-Befehl oder End-Befehl EC, der den Abschlußcode des Lesezugriffs enthält. Ferner sind in dem Antwort-Übertragung-Befehl EC die DID und SID gegeneinander vertauscht, weil die Start-Übertragung und die Antwort-Übertragung in der Übertragungsrichtung einander entgegengesetzt sind, und Auslese-Daten D.The target shared memory module 12 monitors the shared system bus 16 and compares the DID in the start transfer command SC with its own unit ID. If the comparison indicates equality, the module 12 performs the receive operation. The target shared memory module 12 then reads the shared memory unit 26 (see Fig. 4) of the shared memory module 12 and transmits to the source memory module 10 a response transfer command or end command EC containing the completion code of the read access. Furthermore, in the response transfer command EC, the DID and SID are swapped because the start transfer and the response transfer are opposite in the transfer direction, and read data D.

Das Quellenprozessormodul 10 überwacht den gemeinsam benutzten Systembus 16 und führt die Empfangsoperation aus, wenn zwischen der Ziel-ID in dem Antwort-Übertragung-Befehl EC und seiner eigenen Einheit-ID eine Übereinstimmung auftritt, wodurch ein einmaliger Lesezugriff beendet wird.The source processor module 10 monitors the shared system bus 16 and performs the receive operation when a match occurs between the destination ID in the response transfer command EC and its own unit ID, thereby completing a one-time read access.

Der Lesezugriff wird in dem Programm-Zugriffsmodus oder dem DMA-Zugriffsmodus durchgeführt. In jedem Zugriffsmodus sind die Operationen auf dem Systembus 16 dieselben.The read access is performed in the program access mode or the DMA access mode. In each access mode the operations on the system bus 16 are the same.

Fig. 10 ist ein Diagramm zum Erklären einer Adreßraumabbildung in der vorliegenden Ausführungsform der vorliegenden Erfindung.Fig. 10 is a diagram for explaining an address space mapping in the present embodiment of the present invention.

In Fig. 10 ist der absolute Adreßraum jedes Prozessormoduls grob in einem gemeinsam benutzten Speichermodulraum (worauf im folgenden als SSU-Raum verwiesen wird) und einen Raum klassifiziert, der in dem Prozessormodul inhärent ist (worauf im folgenden als PM-inhärenter Raum verwiesen wird).In Fig. 10, the absolute address space of each processor module is roughly classified into a shared memory module space (hereinafter referred to as SSU space) and a space inherent in the processor module (hereinafter referred to as PM inherent space).

Der PM-inhärente Raum ist ein Raum, der in den Hardwarehilfsmitteln jedes Prozessormoduls 10 inhärent ist und in jedem Prozessormodul 10 vorliegt. Der PM-inhärente Raum bildet einen Mehrfach-Adreßraum für die gesamte Zahl von Prozessormodulen im System. In der vorliegenden Ausführungsform wird angenommen, daß der Umfang eines PM-inhärenten Raums 2 GB ist.The PM inherent space is a space inherent in the hardware resources of each processor module 10 and present in each processor module 10. The PM inherent space forms a multi-address space for the entire number of processor modules in the system. In the present embodiment, the size of a PM inherent space is assumed to be 2 GB.

Der SSU-Raum ist allen Prozessormodulen 10 gemeinsam. Das heißt, der SSU-Raum wird durch mehr als ein gemeinsam benutztes Speichermodul 12 gebildet und bildet einen Raum, der den Prozessormodulen 10 im System gemeinsam ist; auf ihn kann durch die absoluten Adressen der Prozessormodule 10 auch direkt zugegriffen werden. Folglich sind in dem SSU-Raum nur Daten gespeichert, die unter allen Prozessormodulen 10 gemeinsam benutzt werden sollen.The SSU space is common to all processor modules 10. That is, the SSU space is formed by more than one shared memory module 12 and forms a space that is common to the processor modules 10 in the system; it can also be directly accessed through the absolute addresses of the processor modules 10. Consequently, only data that is to be shared among all processor modules 10 is stored in the SSU space.

In der vorliegenden Ausführungsform wird der 2-GB-SSU- Raum als ein Beispiel verwendet. Wie auf der linken Seite der Figur gezeigt ist, ist der SSU-Raum weiter in acht partielle SSU-Räume #0 bis #7 in einer 256-MB-Einheit geteilt. Jeder der partiellen SSU-Räume #0 bis #7 ist aus einem der gemeinsam benutzten Speichermodule 12 der vorliegenden Erfindung gebildet.In the present embodiment, the 2 GB SSU space is used as an example. As shown on the left side of the figure, the SSU space is further divided into eight partial SSU spaces #0 to #7 in a 256 MB unit. Each of the partial SSU spaces #0 to #7 is formed of one of the shared memory modules 12 of the present invention.

Der PM-Raum jedes Prozessormoduls 10 ist außerdem in einen LSU-Raum und einen Steuerraum geteilt. Operanden, die von jedem Prozessormodul verlangt werden, und dessen eigene Daten sind in dem LSU-Raum gespeichert, der ein Teil des PM- inhärenten Raums ist. Es ist das Vorhandensein des LSU-Raums, das gestattet, daß die Zahl von Zugriffen, die von jedem Prozessormodul auf den SSU-Raum (gebildet durch die gemeinsam benutzten Speichermodule 12) vorgenommen werden, verringert wird.The PM space of each processor module 10 is further divided into an LSU space and a control space. Operands required by each processor module and its own data are stored in the LSU space, which is part of the PM inherent space. It is the presence of the LSU space that allows the number of accesses made by each processor module to the SSU space (formed by the common used memory modules 12).

Falls eine durch die zentrale Verarbeitungseinheit 18 jedes Prozessormoduls bezeichnete Zugriffsadresse auf den LSU- Raum zeigt, wird dann innerhalb des Prozessormoduls 10 ein geschlossener Zugriff ausgeführt.If an access address designated by the central processing unit 18 of each processor module points to the LSU space, then a closed access is performed within the processor module 10.

Wenn die durch die zentrale Verarbeitungseinheit 18 bezeichnete Zugriffsadresse (absolute Adresse) auf den SSU-Raum zeigt, erkennt die Verbindungseinheit 22 des Prozessormoduls 10, daß der Zugriff gerade auf den SSU-Raum vorgenommen wird, und greift über den Systembus 16 auf ein entsprechendes gemeinsam benutztes Speichermodul 12 zu.If the access address (absolute address) designated by the central processing unit 18 points to the SSU space, the connection unit 22 of the processor module 10 recognizes that access is being made to the SSU space and accesses a corresponding shared memory module 12 via the system bus 16.

Durch Abbilden des SSU-Raums und des LSU-Raums in den absoluten Adreßraum auf den Prozessormodulen 10 wird es für die Software möglich, auf den SSU-Raum und den LSU-Raum zuzugreifen, ohne zwischen dem SSU-Raum und dem LSU-Raum umschalten zu müssen.By mapping the SSU space and the LSU space into the absolute address space on the processor modules 10, it becomes possible for the software to access the SSU space and the LSU space without having to switch between the SSU space and the LSU space.

Da der SSU-Raum direkt in den absoluten Adreßraum jedes Prozessormoduls abgebildet wird, wie in Fig. 10 gezeigt ist, kann ein Zugriff auf den aus mehr als einem gemeinsam benutzten Speichermodul 12 gebildeten SSU-Raum in den folgenden beiden Zugriffsmodi ausgeführt werden.Since the SSU space is directly mapped into the absolute address space of each processor module, as shown in Fig. 10, access to the SSU space formed by more than one shared memory module 12 can be carried out in the following two access modes.

(1) Programm-Modus, in welchem absolute Adressen verwendet werden, um einen direkten Zugriff durch Softwareanweisungen der zentralen Verarbeitungseinheit 18 auszuführen; oder(1) program mode in which absolute addresses are used to perform direct access by software instructions of the central processing unit 18; or

(2) DMA-Modus, in welchem ein gemeinsam benutztes Speichermodul, auf das zugegriffen werden soll, ausgewählt wird und eine Datenübertragung zwischen einem Prozessormodul 10 und dem gemeinsam benutzten Speichermodul 12 gestartet wird, indem eine Zugriffsadresse und die Übertragungslänge spezifiziert werden.(2) DMA mode in which a shared memory module to be accessed is selected and data transfer between a processor module 10 and the shared memory module 12 is started by specifying an access address and the transfer length.

Der SSU-Raum, auf den zugegriffen werden kann, ändert sich mit dem Zugriffsmodus. In der vorliegenden Ausführungsform ist der SSU-Raum, auf den durch den Programm-Modus zugegriffen werden kann, nur der 2-GB-Raum, der in den absoluten Adreßraum jedes Prozessormoduls direkt abgebildet wurde. Im DMA-Modus wird es jedoch durch Bezeichnen eines gemeinsam benutzten Speichermoduls 12, auf das unter Verwendung seiner Einheit-ID zugegriffen werden soll, möglich, auf einen viel größeren SSU-Raum, d. h. einen erweiterten SSU-Raum zuzugreifen.The SSU space that can be accessed changes with the access mode. In the present embodiment, the SSU space that can be accessed by the program mode is only the 2 GB space that has been directly mapped into the absolute address space of each processor module. In the DMA mode, however, by designating a shared memory module 12 to be accessed using its unit ID, it becomes possible to access a much larger larger SSU space, i.e. an extended SSU space.

Im DMA-Modus-Zugriff ist die Einheit-ID eines gemeinsam benutzten Speichermoduls 10, auf das zugegriffen werden soll, durch die DID in dem Start-Übertragung-Befehl SC bezeichnet, der in den Fig. 8 und 9 gezeigt ist, und das gemeinsam benutzte Speichermodul wird durch die folgende Adresse A adressiert. Daher wird es theoretisch möglich, auf einen erweiterten SSU-Raum mit einer Kapazität von 2n (n ist eine Adreßbitbreite einer zentralen Verarbeitungseinheit 18 plus eine Bitbreite der Einheit-ID) zuzugreifen. Das heißt, der erweiterte SSU-Raum bildet Mehrfachräume, die durch die als Identifikatoren dienenden Einheit-ID-Zahlen unterschieden werden.In DMA mode access, the unit ID of a shared memory module 10 to be accessed is designated by the DID in the start transfer command SC shown in Figs. 8 and 9, and the shared memory module is addressed by the following address A. Therefore, it becomes theoretically possible to access an extended SSU space having a capacity of 2n (n is an address bit width of a central processing unit 18 plus a bit width of the unit ID). That is, the extended SSU space forms multiple spaces distinguished by the unit ID numbers serving as identifiers.

Fig. 11 ist ein Diagramm zum Erklären des SSU-Raums, der in den absoluten Adreßraum des Prozessormoduls 10 abgebildet wurde, und des erweiterten SSU-Raums, auf den nur in dem DMA- Modus zugegriffen werden kann.Fig. 11 is a diagram for explaining the SSU space mapped into the absolute address space of the processor module 10 and the extended SSU space accessible only in the DMA mode.

In Fig. 11 beträgt die Zahl von Bit von jeder der Einheit-ID-Zahlen der gemeinsam benutzten Speichermodule 12, die den erweiterten SSU-Raum bilden, sieben, und 64 Einheit-ID- Zahlen, 0000000 bis 0111111, sind den gemeinsam benutzten Speichermodulen 12 zugeordnet.In Fig. 11, the number of bits of each of the unit ID numbers of the shared memory modules 12 constituting the extended SSU space is seven, and 64 unit ID numbers, 0000000 to 0111111, are assigned to the shared memory modules 12.

Acht Einheit-ID-Zahlen, 0000000 bis 0000111, auf die in dem Programm-Modus und dem DMA-Modus zugegriffen werden kann, sind dem absoluten Adreßraum mit 2 GB zugeordnet, um für Konfigurationsdefinitionen der gemeinsam benutzten Speichermodule 12 verwendet zu werden, die einen (später beschriebenen) doppelt gemeinsam benutzten Speicher bilden. Die restlichen 56 Einheit-ID-Zahlen entsprechend im DMA-Modus verwendeten 56 SSU-Modulen sind jeweils 4 GB zugeordnet. Folglich kann in dem DMA-Modus auf den erweiterten SSU-Raum mit insgesamt 226 GB zugegriffen werden.Eight unit ID numbers, 0000000 through 0000111, accessible in the program mode and the DMA mode, are allocated to the 2 GB absolute address space to be used for configuration definitions of the shared memory modules 12 that form a dual shared memory (described later). The remaining 56 unit ID numbers corresponding to 56 SSU modules used in the DMA mode are allocated to 4 GB each. Thus, the expanded SSU space of 226 GB in total can be accessed in the DMA mode.

Natürlich ist die Zahl von Einheit-ID-Zahlen nicht auf acht begrenzt, wie in Fig. 11 gezeigt ist, und 16 gemeinsam benutzte Speichermodule 0000000 bis 0001111 können verwendet werden, um einen doppelt gemeinsam benutzten Speicherraum (nicht erweiterten 2-GB-Raum) vollständig zu bilden.Of course, the number of unit ID numbers is not limited to eight, as shown in Fig. 11, and 16 shared memory modules 0000000 to 0001111 can be used to completely form a double shared memory space (non-extended 2 GB space).

Durch Erhöhen der Zahl von Bit der Einheit-ID oder der Zuweisungsrate der Einheit-ID-Zahlen zu den gemeinsam benutz ten Speichermodulen 12 ist es außerdem möglich, den erweiterten SSU-Raum mit dem DMA-Zugriffsmodus zu erweitern.By increasing the number of bits of the unit ID or the allocation rate of the unit ID numbers to the shared ten memory modules 12, it is also possible to extend the extended SSU space with the DMA access mode.

Obwohl der SSU-Raum der vorliegenden Erfindung, auf den durch die absoluten Adressen zugegriffen werden kann, durch mehr als ein gemeinsam benutztes Speichermodul 12 gebildet wird, müssen alle Speichervorrichtungen für den SSU-Raum nicht gepackt sein; ungepackte Bereiche können ebenfalls existieren. Außerdem kann der gesamte oder ein Teil des SSU- Raums für eine Fehlertoleranz doppelt konfiguriert sein.Although the SSU space of the present invention, which can be accessed by the absolute addresses, is formed by more than one shared memory module 12, all of the memory devices for the SSU space need not be packed; unpacked areas may also exist. In addition, all or part of the SSU space may be dual configured for fault tolerance.

Die ungepackten Bereiche und die Doppelkonfiguration, wie in dem SSU-Raum der Prozessormodule 10 von Fig. 10 gezeigt, können realisiert werden, indem der SSU-Raum der Prozessormodule 10 in partielle SSU-Räume geteilt und eine Beziehung mit den gemeinsam benutzten Speichermodulen 12 für jeden der partiellen SSU-Räume definiert wird, d. h. eine Beziehung mit den gemeinsam benutzten Speichermodulen 12 mit den Einheit- ID-Zahlen 0000000 bis 0000111, die den in Fig. 11 gezeigten erweiterten SSU-Raum bilden.The unpacked areas and the dual configuration as shown in the SSU space of the processor modules 10 of Fig. 10 can be realized by dividing the SSU space of the processor modules 10 into partial SSU spaces and defining a relationship with the shared memory modules 12 for each of the partial SSU spaces, i.e., a relationship with the shared memory modules 12 having the unit ID numbers 0000000 to 0000111 that form the extended SSU space shown in Fig. 11.

In der Ausführungsform von Fig. 10 ist der 2-GB-SSU-Raum in 8 Räume mit jeweils 256 MB geteilt, und die Konfigurationsdefinitionen, die die Korrespondenzbeziehung von jedem der partiellen SSU-Räume #0 bis #7 mit den gemeinsam benutzten Speichermodulen 12 anzeigen, sind gegeben.In the embodiment of Fig. 10, the 2 GB SSU space is divided into 8 spaces of 256 MB each, and the configuration definitions indicating the correspondence relationship of each of the partial SSU spaces #0 to #7 with the shared memory modules 12 are given.

Die Konfigurationsdefinitionen der gemeinsam benutzten Speichermodule 12 werden realisiert, indem das Konfigurationsdefinitionsregister 44 (siehe Fig. 5) betrieben wird, das in jedem Speichermodul eingebaut ist. Das Konfigurationsregister 44 ist aus einem in Fig. 12 gezeigten ersten Steuerregister 60 und in Fig. 13 gezeigten zweiten Steuerregistern 62-1 und 62-2 aufgebaut.The configuration definitions of the shared memory modules 12 are realized by operating the configuration definition register 44 (see Fig. 5) built into each memory module. The configuration register 44 is constructed of a first control register 60 shown in Fig. 12 and second control registers 62-1 and 62-2 shown in Fig. 13.

Das erste Steuerregister 60 von Fig. 12 spezifiziert das Vorhandensein oder Nichtvorhandensein der gemeinsam benutzten Speichermodule 12 entsprechend dem SSU-Raum, der in 8 Räume mit jeweils 256 MB geteilt ist, wie in Fig. 10 gezeigt ist, mit anderen Worten, ob die gemeinsam benutzten Speichermodule 12 gepackt oder ungepackt sind. In dieser Ausführungsform zeigt Fig. 12, daß fünf partielle SSU-Räume #0, #1, #2, #4, #7 entsprechend I0, I1, I2, I4, I7, die jeweils durch ein hohes Bit (1) angezeigt sind, gepackt wurden, und drei partielle SSU-Räume #3, #5, #6 entsprechend I3, I5, I6, die jeweils durch ein niedriges Bit (0) angezeigt sind, nicht gepackt wurden.The first control register 60 of Fig. 12 specifies the presence or absence of the shared memory modules 12 corresponding to the SSU space divided into 8 spaces of 256 MB each as shown in Fig. 10, in other words, whether the shared memory modules 12 are packed or unpacked. In this embodiment, Fig. 12 shows that five partial SSU spaces #0, #1, #2, #4, #7 corresponding to I0, I1, I2, I4, I7, each indicated by a high bit (1), have been packed, and three partial SSU spaces #3, #5, #6 corresponding to I3, I5, I6, each indicated by a high bit (1), have been packed. indicated by a low bit (0) were not packed.

Die in Fig. 13 gezeigten zweiten Steuerregister 62-1 und 62-2 spezifizieren, welches der gemeinsam benutzten Speichermodule 12 den durch hohe Bit im ersten Steuerregister 60 angezeigten partiellen SSU-Räumen entsprechen und folglich gepackt wurden, die Einfach- oder Doppelkonfiguration und die Zugriffssequenz, wenn die Doppelkonfiguration spezifiziert ist.The second control registers 62-1 and 62-2 shown in Fig. 13 specify which of the shared memory modules 12 correspond to the partial SSU spaces indicated by high bits in the first control register 60 and have thus been packed, the single or dual configuration, and the access sequence when the dual configuration is specified.

In dieser Ausführungsform sind nur Bit D0, D1, D2, D4 und D7 entsprechend den partiellen SSU-Räumen #0, #1, #2, #4 und #7 gültig und spezifizieren die Konfigurationen entsprechender, gemeinsam benutzter Speichermodule 12 und Zugriffsformen. Das heißt, die Bit D0, D1 und D7 sind 0, was anzeigt, daß die partiellen SSU-Räume #0, #1 und #7 von einer einfachen Konfiguration sind. Wenn auf die partiellen SSU-Räume #0, #1 und 447 zugegriffen wird, wird auf die durch die Einheit-ID = 0, 1, 7 identifizierten, gemeinsam benutzten Speichermodule 12 zugegriffen.In this embodiment, only bits D0, D1, D2, D4 and D7 corresponding to the partial SSU spaces #0, #1, #2, #4 and #7 are valid and specify the configurations of corresponding shared memory modules 12 and access forms. That is, bits D0, D1 and D7 are 0, indicating that the partial SSU spaces #0, #1 and #7 are of a simple configuration. When the partial SSU spaces #0, #1 and #447 are accessed, the shared memory modules 12 identified by the unit ID = 0, 1, 7 are accessed.

Andererseits sind Bit D2 und D4 1, die die Doppelkonfiguration definieren. Wenn auf die partiellen SSU-Räume #2 und #4 der Doppelkonfiguration zugegriffen wird, werden von den durch die Einheit-ID2 und die Einheit-ID4 identifizierten, gemeinsam benutzten Speichermodule Daten gelesen.On the other hand, bits D2 and D4 are 1, which define the dual configuration. When the partial SSU spaces #2 and #4 of the dual configuration are accessed, data is read from the shared memory modules identified by the unit ID2 and the unit ID4.

In die gemeinsam benutzten Speichermodule der Doppelkonfiguration wird wie folgt geschrieben: Beim ersten Schreiben wird in ein gemeinsam benutztes Speichermodul 12 geschrieben, das durch die Einheit-ID in den zweiten Steuerregistern 62-1 und 62-2 identifiziert ist, und beim zweiten Schreiben wird in ein anderes, gemeinsam benutztes Speichermodul 12 geschrieben, das die Einheit-ID aufweist, in der ein spezifisches Bit in der ersten Einheit-ID, z. B. das niedrigstwertige Bit, invertiert ist.The shared memory modules of the dual configuration are written to as follows: the first write writes to a shared memory module 12 identified by the unit ID in the second control registers 62-1 and 62-2, and the second write writes to another shared memory module 12 having the unit ID in which a specific bit in the first unit ID, e.g. the least significant bit, is inverted.

Ein Paar gemeinsam benutzte Duplex-Speichermodule 12, die durch das zweite Steuerregister spezifiziert werden können, um die Doppelkonfiguration zu nehmen, weist Einheit-ID-Zahlen auf, die bis auf ihre niedrigstwertigen Bit, z. B. 0000100 und 0000101, gleich sind.A pair of shared duplex memory modules 12, which can be specified by the second control register to take the dual configuration, have unit ID numbers that are the same except for their least significant bits, e.g., 0000100 and 0000101.

In der Ausführungsform von Fig. 13 sind zwei partielle SSU-Räume #2 und #4 durch Bit D4 und D4 = 1 spezifiziert, um die Doppelkonfiguration zu nehmen. Für den partiellen SSU- Raum #2 ist das folgende Paar eingestelltIn the embodiment of Fig. 13, two partial SSU spaces #2 and #4 are specified by bit D4 and D4 = 1 to to take the double configuration. For the partial SSU room #2 the following pair is set

Partieller SSU-Raum Einheit-IDPartial SSU Space Unit ID

#2 0000010#2 0000010

#3 0000011#3 0000011

Für den partiellen SSU-Raum #4 ist das folgende Paar festgelegt.For partial SSU space #4, the following pair is fixed.

Partieller SSU-Raum Einheit-IDPartial SSU Space Unit ID

#4 0000100#4 0000100

#5 0000101#5 0000101

Fig. 14 ist ein Diagramm zum Erklären des gepackten Zustands und von Konfigurationsdefinitionen der gemeinsam benutzten Speichermodule 12, die auf den Spezifikationen durch die zweiten Steuerregister der Fig. 12 und 13 basieren.Fig. 14 is a diagram for explaining the packed state and configuration definitions of the shared memory modules 12 based on the specifications by the second control registers of Figs. 12 and 13.

Acht gemeinsam benutzte Speichermodule 12 sind vorgesehen, um den SSU-Räumen #0 bis #7 der Prozessormodule 10 zu entsprechen, aber das dem SSU-Raum #6 entsprechende, gemeinsam benutzte Speichermodul ist nicht gepackt. Da die SSU- Räume #3 und #5 mit den gemeinsam benutzten Speichermodulen der SSU-Räume #2 bzw. #4 verdoppelt sind, existieren keine gemeinsam benutzten Speichermodule 12 entsprechend den SSU- Räumen #3 und #5. Die verbleibenden SSU-Räume #0, #1 und #7 weisen wegen ihrer Einfachkonfiguration eine Eins-zu-Eins- Korrespondenz mit den gemeinsam benutzten Speichermodulen 12 auf.Eight shared memory modules 12 are provided to correspond to the SSU spaces #0 to #7 of the processor modules 10, but the shared memory module corresponding to the SSU space #6 is not packed. Since the SSU spaces #3 and #5 are duplicated with the shared memory modules of the SSU spaces #2 and #4, respectively, there are no shared memory modules 12 corresponding to the SSU spaces #3 and #5. The remaining SSU spaces #0, #1, and #7 have a one-to-one correspondence with the shared memory modules 12 because of their single configuration.

Durch Teilen des SSU-Raums, auf den durch die absoluten Adressen der Prozessormodule 10 zugegriffen werden kann, und Angeben von deren Konfigurationsdefinitionen wie oben beschrieben wird es möglich, Gültigkeit/Ungültigkeit oder Einfach/Doppelkonfiguration der gemeinsam benutzten Speichermodule für jede der geteilten SSU-Raumeinheiten zu spezifizieren, selbst wenn das System implementiert ist.By dividing the SSU space accessible by the absolute addresses of the processor modules 10 and specifying their configuration definitions as described above, it becomes possible to specify validity/invalidity or single/dual configuration of the shared memory modules for each of the divided SSU space units even when the system is implemented.

In dieser Ausführungsform dienen im Programm-Modus, in welchem auf die SSU-Räume durch die absoluten Adressen basierend auf Software-Anweisungen der zentralen Verarbeitungseinheit direkt zugegriffen wird, vier Bit b0 bis b3 in der 32- Bit-SSU-Raum-Adresse als ein Selektor für die gemeinsam benutzten Speichermodule 12, und die verbleibenden 28 Bit b4 bis b31 dienen als Adresse der gemeinsam benutzten Speichereinheiten 12.In this embodiment, in the program mode, in which the SSU spaces are directly accessed by the absolute addresses based on software instructions of the central processing unit, four bits b0 to b3 in the 32- Bit SSU space address as a selector for the shared memory modules 12, and the remaining 28 bits b4 to b31 serve as the address of the shared memory units 12.

Wo die in den gemeinsam benutzten Speichermodulen 12 eingebaute Speicherkapazität 256 MB übersteigt, bleibt die Bedeutung des Selektors zum Auswählen unter den gemeinsam benutzten Speichermodulen 12 unverändert, aber die internen Adressen der gemeinsamen benutzten Speichermodule 12 läßt man der Speicherkapazität entsprechen, die in die gemeinsam benutzten Speichermodule 12 eingebaut ist. Wenn z. B. die Speicherkapazität 512 MB beträgt, d. h. 256 MB doppelt, werden 29 Bit b3 bis b31 einer Adreßinformation verwendet, um interne Adressen der gemeinsam benutzten Speichermodule 12 zu bezeichnen. Wenn die Speicherkapazität 1 GB ist, werden 30 Bit b2 bis b31 verwendet, um interne Adressen der gemeinsam benutzten Speichermodule 12 zu bezeichnen. Wenn die Speicherkapazität auf bis zu 2 GB erweitert ist, werden außerdem alle 31 Bit verwendet, um interne Adressen der gemeinsam benutzten Speichermodule zu bezeichnen. Wo die Speicherkapazität der gemeinsam benutzten Speichermodule 12 256 MB übersteigt, nimmt die Zahl von Bit des Selektors zum Auswählen unter den gemeinsam benutzten Speichermodulen ab, wie oben beschrieben wurde. Folglich wird die gleiche Einheit-ID für die in 256- MB-Einheiten geteilten partiellen SSU-Räume spezifiziert.Where the memory capacity built into the shared memory modules 12 exceeds 256 MB, the meaning of the selector for selecting among the shared memory modules 12 remains unchanged, but the internal addresses of the shared memory modules 12 are made to correspond to the memory capacity built into the shared memory modules 12. For example, when the memory capacity is 512 MB, i.e., 256 MB double, 29 bits b3 to b31 of address information are used to designate internal addresses of the shared memory modules 12. When the memory capacity is 1 GB, 30 bits b2 to b31 are used to designate internal addresses of the shared memory modules 12. In addition, when the memory capacity is expanded up to 2 GB, all 31 bits are used to designate internal addresses of the shared memory modules. Where the memory capacity of the shared memory modules exceeds 12 256 MB, the number of bits of the selector for selecting among the shared memory modules decreases as described above. Consequently, the same unit ID is specified for the partial SSU spaces divided into 256 MB units.

In der vorliegenden Erfindung wird ein Zugriff im Programm-Modus gemäß in Fig. 15A und 15B gezeigten Flußdiagrammen vorgenommen.In the present invention, access is made in the program mode according to flowcharts shown in Figs. 15A and 15B.

In Fig. 15A greift Software auf den SSU-Raum als Anweisung der zentralen Verarbeitungseinheit in Schritt S1 zu. In Schritt S2 entscheidet die Verbindungseinheit 22, welche der gemeinsam benutzten Speichereinheiten 12 den adressierten SSU-Raum aufweist, auf der Grundlage von vier Adreßbit b0 bis b3 von der zentralen Verarbeitungseinheit 18 und den Inhalten der zweiten Steuerregister 62-1 und 62-2 zum Geben von Konfigurationsdefinitionen der gemeinsam benutzten Speichermodule 12. Außerdem wird in Schritt S3 eine Entscheidung diesbezüglich getroffen, ob das gemeinsam benutzte Speichermodul 12, das durch die Inhalte des ersten Steuerregisters 60 spezifi ziert ist, gepackt wurde oder nicht. Falls nicht, wird die Operation in Schritt S4 abnorm beendet.In Fig. 15A, software accesses the SSU space as an instruction of the central processing unit in step S1. In step S2, the connection unit 22 decides which of the shared memory units 12 has the addressed SSU space based on four address bits b0 to b3 from the central processing unit 18 and the contents of the second control registers 62-1 and 62-2 for giving configuration definitions of the shared memory modules 12. In addition, in step S3, a decision is made as to whether the shared memory module 12 specified by the contents of the first control register 60 ed, has been packed or not. If not, the operation is abnormally terminated in step S4.

Wenn in Schritt S3 entschieden wird, daß das durch die zweiten Steuerregister spezifizierte, gemeinsam benutzte Speichermodul 12 gepackt ist, gibt die Verbindungseinheit 22 in Schritt S5 ein Wiederholungssignal an die zentrale Verarbeitungseinheit 18 zurück, so daß die zentrale Verarbeitungseinheit 18 in den Wartezustand versetzt wird.When it is decided in step S3 that the shared memory module 12 specified by the second control registers is packed, the connection unit 22 returns a retry signal to the central processing unit 18 in step S5 so that the central processing unit 18 is placed in the waiting state.

In Schritt S6 wird eine Entscheidung diesbezüglich getroffen, ob eine Anweisung von der zentralen Verarbeitungseinheit 18 eine Abrufanweisung ist, um Daten von dem gemeinsam benutzten Speichermodul zu lesen, oder eine Speicheranweisung, um Daten in das gemeinsam benutzte Speichermodul 12 zu schreiben.In step S6, a decision is made as to whether an instruction from the central processing unit 18 is a fetch instruction to read data from the shared memory module or a store instruction to write data to the shared memory module 12.

Falls die Anweisung von der zentralen Verarbeitungseinheit 18 eine Abrufanweisung ist, wird in Schritt S7 ein Start-Übertragung-Befehl SC aus den Inhalten der zweiten Steuerregister 62-1 und 62-2 mit der Einheit-ID des gemeinsam benutzten Ziel-Speichermoduls vorbereitet, die als die DID verwendet wird. Nachdem das Bus-Recht für den gemeinsam benutzten Systembus 16 in Schritt S8 akquiriert wurde, werden der Start-Übertragung-Befehl SC und eine Adresse A zum gemeinsam benutzten Systembus 16 übertragen.If the instruction from the central processing unit 18 is a fetch instruction, a start transfer command SC is prepared from the contents of the second control registers 62-1 and 62-2 with the unit ID of the target shared memory module used as the DID in step S7. After the bus right for the shared system bus 16 is acquired in step S8, the start transfer command SC and an address A are transferred to the shared system bus 16.

Falls andererseits in Schritt S3 entschieden wird, daß die Anweisung eine Speicheranweisung ist, wird in Schritt S14 gleichfalls ein Start-Übertragung-Befehl SC aus den Inhalten der zweiten Steuerregister 62-1 und 62-2 mit der Einheit-ID des gemeinsam benutzten Ziel-Speichermoduls vorbereitet, die als die DID verwendet wird. In Schritt S14 werden der Start- Übertragung-Befehl SC, die Adresse A und zu schreibende Daten D nach einer Reservierung des Bus-Rechts für den gemeinsam benutzten Systembus 16 auf den gemeinsam benutzten Systembus 16 geschickt.On the other hand, if it is decided in step S3 that the instruction is a memory instruction, in step S14, a start transfer command SC is also prepared from the contents of the second control registers 62-1 and 62-2 with the unit ID of the target shared memory module used as the DID. In step S14, the start transfer command SC, the address A and data to be written D are sent to the shared system bus 16 after reserving the bus right for the shared system bus 16.

In dem gemeinsam benutzten Speichermodul 12 überwacht andererseits, wie im Flußdiagramm von Fig. 15B gezeigt ist, die Verbindungseinheit 28 den gemeinsam benutzten Systembus 16 in Schritt S1 und vergleicht in Schritt S2 seine Einheit- ID mit der DID in dem Start-Übertragung-Befehl. Wenn der Vergleich Gleichheit anzeigt, werden in Schritt S3 Empfangsdaten in den eingebauten Dual-Port-RAM 56 geschrieben.In the shared memory module 12, on the other hand, as shown in the flowchart of Fig. 15B, the connection unit 28 monitors the shared system bus 16 in step S1 and compares its unit ID with the DID in the start transfer command in step S2. If the comparison indicates equality, receive data is written into the built-in dual-port RAM 56 in step S3.

In Schritt S4 wird bestimmt, ob die Anweisung eine Abrufanweisung oder eine Speicheranweisung ist.In step S4, it is determined whether the instruction is a fetch instruction or a store instruction.

Falls sie eine Abrufanweisung ist, gestattet die Verbindungseinheit 28 eine Datenübertragung zwischen dem Dual-Port- RAM 56 und der gemeinsam benutzten Speichereinheit 26 unter der Steuerung der Interner-Bus-Steuerschaltung 64 in Schritt S5 nach einer Reservierung des Bus-Rechts für den internen Bus 30. In Schritt S5 antwortet die Verbindungseinheit 28 auf das Quellenprozessormodul 10 bei der Beendigung einer Datenübertragung innerhalb des gemeinsam benutzten Speichermoduls 12.If it is a fetch instruction, the connection unit 28 allows data transfer between the dual-port RAM 56 and the shared memory unit 26 under the control of the internal bus control circuit 64 in step S5 after reserving the bus right for the internal bus 30. In step S5, the connection unit 28 responds to the source processor module 10 upon completion of data transfer within the shared memory module 12.

Das heißt, in Schritt S6 wird ein Antwort-Übertragung- Befehl EC, der einen Abschlußcode enthält, vorbereitet, wird ein Bus-Recht für den gemeinsam benutzten Systembus 16 in Schritt S7 reserviert, und dann werden in Schritt S8 der Antwort-Übertragung-Befehl EC und die ausgelesenen Daten D auf den gemeinsam benutzten Systembus 16 geschickt.That is, in step S6, a response transmission command EC containing a completion code is prepared, a bus right is reserved for the shared system bus 16 in step S7, and then in step S8, the response transmission command EC and the read-out data D are sent to the shared system bus 16.

Falls in Schritt S4 bestimmt wird, daß die Anweisung eine Speicheranweisung ist, gestattet die Verbindungseinheit 28 eine Datenübertragung zwischen dem Dual-Port-RAM 56 und der gemeinsam benutzten Speichereinheit 26 in Schritt S9 unter der Steuerung der Interner-Bus-Steuereinheit 64 nach einer Reservierung des Bus-Rechts für den internen Bus 30. Die Verbindungseinheit 28 antwortet auf das Quellenprozessormodul 10 bei der Beendigung der Datenübertragung (des Schreibens von Daten) innerhalb des gemeinsam benutzten Speichermoduls 12.If it is determined in step S4 that the instruction is a storage instruction, the connection unit 28 allows data transfer between the dual-port RAM 56 and the shared memory unit 26 in step S9 under the control of the internal bus control unit 64 after reserving the bus right for the internal bus 30. The connection unit 28 responds to the source processor module 10 upon completion of the data transfer (writing of data) within the shared memory module 12.

Das heißt, in Schritt S10 wird ein einen Abschlußcode enthaltender Antwort-Übertragung-Befehl EC vorbereitet, wird das Bus-Recht für den gemeinsam benutzten Systembus 16 in Schritt S11 reserviert, und dann wird in Schritt S12 der Antwort-Übertragung-Befehl EC auf den gemeinsam benutzten Systembus 16 geschickt.That is, in step S10, a response transmission command EC containing a completion code is prepared, the bus right for the shared system bus 16 is reserved in step S11, and then in step S12, the response transmission command EC is sent to the shared system bus 16.

Zurückkehrend zum Flußdiagramm von Fig. 15A für die Prozessormodule überwacht die Verbindungseinheit 22 den gemeinsam benutzten Systembus 16, wie in Schritt S9 oder S16 angegeben ist, und vergleicht in Schritt S10 oder S17 ihre eigenen Einheit-ID mit der DID in dem Antwort-Übertragung-Befehl EC. Wenn der Vergleich in Schritt S10 oder S17 Gleichheit anzeigt, werden in Schritt S11 für eine Abrufanweisung der Antwort-Übertragung-Befehl EC und Daten D empfangen, oder in Schritt S18 wird für eine Speicheranweisung der Antwortübertragung-Befehl EC empfangen.Returning to the flow chart of Fig. 15A for the processor modules, the interconnect unit 22 monitors the shared system bus 16 as indicated in step S9 or S16 and compares its own unit ID with the DID in the response transfer command EC in step S10 or S17. If the comparison in step S10 or S17 indicates equality, the response transfer command EC and data D are received in step S11 for a fetch instruction, or in step S12 In step S18, the response transfer command EC is received for a storage instruction.

Im folgenden Schritt S12 oder S20 wird ein an die zentrale Verarbeitungseinheit 18 ausgegebenes Wiederholungssignal zurückgezogen, so daß der Wartezustand der zentralen Verarbeitungseinheit 18 aufgehoben wird. Für eine Abrufanweisung wird an die zentrale Verarbeitungseinheit 18 zusammen mit empfangenen Daten in Schritt S13 ein Abschlußsignal des internen Busses 24 zurückgegeben. Für eine Speicheranweisung wird in Schritt S20 ein Abschlußsignal DC des internen Busses 24 an die zentrale Verarbeitungseinheit 18 zurückgegeben.In the following step S12 or S20, a retry signal output to the central processing unit 18 is withdrawn so that the wait state of the central processing unit 18 is canceled. For a fetch instruction, a completion signal of the internal bus 24 is returned to the central processing unit 18 together with received data in step S13. For a store instruction, a completion signal DC of the internal bus 24 is returned to the central processing unit 18 in step S20.

Der Zugriff im Programm-Modus ist somit beendet.Access in program mode is thus terminated.

Der Doppel-Schreibprozeß in Schritten S19 und S22 bis S28 von Fig. 15A wird später geklärt.The double writing process in steps S19 and S22 to S28 of Fig. 15A will be clarified later.

Als nächstes wird auf die Flußdiagramme der Fig. 16A und 16B verwiesen, um einen Zugriff im DMA-Modus der vorliegenden Erfindung zu beschreiben.Next, reference is made to the flow charts of Figs. 16A and 16B to describe an access in the DMA mode of the present invention.

Für einen Zugriff im DMA-Modus plaziert zuerst in Schritt S1 die zentrale Verarbeitungseinheit 18 auf dem Hauptspeicher 20 des Prozessormoduls 10 einen Deskriptor, der Steuerinhalte enthält, wie z. B. die Einheit-ID eines gemeinsam benutzten Ziel-Speichermoduls 12, eine Zugriffsadresse, die Übertragungslänge etc., die in Fig. 17 gezeigt sind.For access in DMA mode, first in step S1, the central processing unit 18 places on the main memory 20 of the processor module 10 a descriptor containing control contents such as the unit ID of a shared target memory module 12, an access address, the transfer length, etc. shown in Fig. 17.

Das heißt, im Deskriptor von Fig. 17 gibt die BCT die Anzahl von Übertragungsbyte an, gibt die Pufferadresse BUFA die absolute Startadresse des Datenpuffers an, der auf dem Hauptspeicher 20 plaziert ist, und die DID gibt die Einheit- ID eines gemeinsam benutzten Speichermoduls an, das ein Kandidat für einen Zugriff ist. Außerdem gibt die SSUA eine relative Adresse (eine interne Adresse innerhalb des durch die DID spezifizierten, gemeinsam benutzten Speichermoduls 12) innerhalb des gemeinsam benutzten Speichermoduls 12 an, auf das zugegriffen werden soll, die sich von der absoluten Adresse des SSU-Raums im Programm-Modus unterscheidet.That is, in the descriptor of Fig. 17, the BCT indicates the number of transfer bytes, the buffer address BUFA indicates the absolute start address of the data buffer placed on the main memory 20, and the DID indicates the unit ID of a shared memory module that is a candidate for access. In addition, the SSUA indicates a relative address (an internal address within the shared memory module 12 specified by the DID) within the shared memory module 12 to be accessed, which is different from the absolute address of the SSU space in the program mode.

Nach Plazierung des Deskriptors in Schritt S1 werden die Übertragungsrichtung, ein Doppelschreiben in die gemeinsam benutzten Speichermodule 12 und die Adresse des Deskriptors auf dem Hauptspeicher 20 in dem DMA-Steuerregister 50 der DMA-Steuerschaltung 34 in der Verbindungseinheit 22 in Schritt S2 eingestellt, wodurch ein DMA-Modus-Zugriff gestartet wird.After placing the descriptor in step S1, the transfer direction, double writing to the shared memory modules 12 and the address of the descriptor on the main memory 20 are stored in the DMA control register 50 of the DMA control circuit 34 in the connection unit 22 in Step S2 is set, which starts a DMA mode access.

Wenn in Schritt S2 der DMA-Modus-Zugriff gestartet wird, reserviert die Verbindungseinheit 22 das Bus-Recht für den internen Bus 24 des Prozessormoduls 10. Folglich wird der Verbindungseinheit 22 gestattet, direkt auf den Hauptspeicher 20 unter der Steuerung der DMA-Steuerschaltung 34 zuzugreifen, um dadurch den Deskriptor aus dem Hauptspeicher 20 zu lesen und eine Datenübertragung vom Hauptspeicher 20 zum Dual-Port-RAM 38 in der Verbindungseinheit zu gestatten.When the DMA mode access is started in step S2, the connection unit 22 reserves the bus right for the internal bus 24 of the processor module 10. Consequently, the connection unit 22 is allowed to directly access the main memory 20 under the control of the DMA control circuit 34, to thereby read the descriptor from the main memory 20 and allow data transfer from the main memory 20 to the dual-port RAM 38 in the connection unit.

Nach Beendigung einer Datenübertragung zum Dual-Port-RAM 38 in der Verbindungseinheit 22 wird in Schritt S4 die Richtung der Datenübertragung geprüft. Falls die Auslesedatenübertragungsrichtung vom gemeinsam benutzten Speichermodul 12 zum Hauptmodul 20 verläuft (worauf im folgenden als (SSU → LSU)-Richtung verwiesen wird), wird in Schritt S5 durch die Sender-Empfänger-Schaltung 36 ein Start-Übertragung-Befehl SC vorbereitet, der die Einheit-ID des gemeinsam benutzten Speichermoduls 12 und die Übertragungslänge enthält, wie in Fig. 7 gezeigt ist. Falls andererseits die Schreibdatenübertragungsrichtung vom Hauptspeicher 20 zum gemeinsam benutzten Speichermodul 12 verläuft (worauf im folgenden als (LSU → SSU)-Richtung verwiesen wird), wird gleichfalls in Schritt S13 der Übertragung-Start-Befehl SC durch die Sender- Empfänger-Schaltung 36 vorbereitet.After completion of data transfer to the dual port RAM 38 in the connection unit 22, the direction of data transfer is checked in step S4. If the read data transfer direction is from the shared memory module 12 to the main module 20 (hereinafter referred to as (SSU → LSU) direction), a start transfer command SC containing the unit ID of the shared memory module 12 and the transfer length is prepared by the transceiver circuit 36 in step S5, as shown in Fig. 7. On the other hand, if the write data transfer direction is from the main memory 20 to the shared memory module 12 (hereinafter referred to as (LSU → SSU) direction), the transfer start command SC is also prepared by the transceiver circuit 36 in step S13.

Anschließend reserviert die Sender-Empfänger-Schaltung 36 das Bus-Recht für den gemeinsam benutzten Systembus 16 in Schritten S6 und S14.The transmitter-receiver circuit 36 then reserves the bus right for the shared system bus 16 in steps S6 and S14.

Falls die Übertragung in der (SSU → LSU)-Richtung erfolgt, geht die Operation von Schritt S6 zu Schritt S7 weiter, so daß der Start-Übertragung-Befehl SC und die Adresse A auf den gemeinsam benutzten Systembus 16 geschickt werden. Falls die Übertragung in der (LSU→SSU)-Richtung erfolgt, geht die Operation von Schritt S15 zu Schritt S16 weiter, so daß der Start-Übertragung-Befehl SC, die Adresse A und Daten D zum gemeinsam benutzten Systembus 16 übertragen werden.If the transfer is in the (SSU → LSU) direction, the operation proceeds from step S6 to step S7, so that the start transfer command SC and the address A are sent to the shared system bus 16. If the transfer is in the (LSU→SSU) direction, the operation proceeds from step S15 to step S16, so that the start transfer command SC, the address A and data D are transferred to the shared system bus 16.

Andererseits überwacht die Verbindungseinheit 22 des gemeinsam benutzten Speichermoduls 12 den gemeinsam benutzten Systembus 16 in Schritt S1 von Fig. 16B und vergleicht in Schritt S2 ihre Einheit-ID mit der DID in dem Start-Übertra gung-Befehl DC. Wenn der Vergleich Gleichheit anzeigt, schreibt in Schritt S3 die Verbindungseinheit empfangene Daten in den Dual-Port-RAM 56.On the other hand, the connection unit 22 of the shared memory module 12 monitors the shared system bus 16 in step S1 of Fig. 16B and compares its unit ID with the DID in the start transfer in step S2. ung command DC. If the comparison indicates equality, in step S3 the connection unit writes received data into the dual-port RAM 56.

Als nächstes wird die Übertragungsrichtung in Schritt S4 geprüft. Wenn die Übertragung in der (LSU→SSU)-Richtung erfolgte geht die Operation zu Schritt S5 weiter. Wenn die Übertragung in der (SSU→LSU)-Richtung erfolgt, geht die Operation zu Schritt S9 weiter. In Schritt S5 oder S9 reserviert die Interner-Bus-Steuerschaltung 64 der DMA-Steuerschaltung 52 in der Verbindungseinheit 28 das Bus-Recht für den internen Bus 30, so daß eine Datenübertragung zwischen dem Dual- Port-RAM 56 und der gemeinsam benutzten Speichereinheit 26 zugelassen wird. In diesem Fall werden von der gemeinsam benutzten Speichereinheit 26 in Schritt S5 Daten gelesen, während in Schritt S9 Daten in die gemeinsam benutzte Speichereinheit 26 geschrieben werden.Next, the transfer direction is checked in step S4. If the transfer was in the (LSU→SSU) direction, the operation proceeds to step S5. If the transfer was in the (SSU→LSU) direction, the operation proceeds to step S9. In step S5 or S9, the internal bus control circuit 64 of the DMA control circuit 52 in the connection unit 28 reserves the bus right for the internal bus 30 so that data transfer between the dual port RAM 56 and the shared memory unit 26 is permitted. In this case, data is read from the shared memory unit 26 in step S5, while data is written to the shared memory unit 26 in step S9.

Wenn ein Zugriff in dem DMA-Modus in Schritt S5 oder S9 beendet wird, wird in Schritt S6 oder S10 der Antwort- Übertragung-Befehl EC, der den Abschlußbefehl enthält, gezeigt in Fig. 7, vorbereitet, und das Bus-Recht für den gemeinsam benutzten Systembus 16 wird in Schritt S7 oder S11 reserviert. Die Operation geht dann zu Schritt S8 oder S12 weiter. Das heißt, in Schritt S8, in welchem (LSU→SSU) gilt, werden ausgelesene Daten D zu dem Antwort-Übertragung-Befehl EC addiert und dann zum gemeinsam benutzten Systembus 16 übertragen. In Schritt S12, in dem (SSU→LSU) gilt, wird der Antwort-Übertragung-Befehl EC zum gemeinsam benutzten Systembus übertragen.When access in the DMA mode is completed in step S5 or S9, the response transfer command EC containing the completion command shown in Fig. 7 is prepared in step S6 or S10, and the bus right for the shared system bus 16 is reserved in step S7 or S11. The operation then proceeds to step S8 or S12. That is, in step S8 in which (LSU→SSU) holds, read-out data D is added to the response transfer command EC and then transferred to the shared system bus 16. In step S12 in which (SSU→LSU) holds, the response transfer command EC is transferred to the shared system bus.

Nun zum Flußdiagramm von Fig. 16A für die Prozessormodule 10 zurückkehrend, überwacht die Verbindungseinheit 22 des Prozessormoduls 10 den gemeinsam benutzten Systembus 16 wie in Schritt S8 oder S17. Wenn zwischen ihrer Einheit-ID und der DID in dem Antwort-Übertragung-Befehl Gleichheit gefunden wird, geht die Operation zu Schritt S10 oder S19 für eine Empfangsoperation weiter. Die empfangenen Daten werden in dem Dual-Port-RAM 38 in der Verbindungseinheit 22 gespeichert.Returning now to the flow chart of Fig. 16A for the processor modules 10, the interconnect unit 22 of the processor module 10 monitors the shared system bus 16 as in step S8 or S17. If equality is found between its unit ID and the DID in the response transmit command, the operation proceeds to step S10 or S19 for a receive operation. The received data is stored in the dual port RAM 38 in the interconnect unit 22.

Anschließend wird für eine Übertragung in der (SSU→LSU)- Richtung das Bus-Recht für den internen Bus 24 in Schritt S11 reserviert, so daß durch den Dual-Port-RAM 38 empfangene Da ten D unter der DMA-Steuerung zum Hauptspeicher 20 übertragen werden. Schließlich wird in Schritt S12 der Abschlußcode im DMA-Steuerregister 50 eingestellt, und der Abschluß wird der zentralen Verarbeitungseinheit 18 als Unterbrechungssignal gemeldet.Subsequently, for a transmission in the (SSU→LSU) direction, the bus right for the internal bus 24 is reserved in step S11, so that data received by the dual-port RAM 38 ten D are transferred to the main memory 20 under the DMA control. Finally, in step S12, the completion code is set in the DMA control register 50 and the completion is reported to the central processing unit 18 as an interrupt signal.

Für eine Übertragung in der (LSU→SSU)-Richtung geht die Operation über Schritt S20 zu Schritt S21 weiter, wodurch der Abschlußcode in dem DMA-Steuerregister 50 eingestellt wird, und der Abschluß wird als Unterbrechungssignal der zentralen Verarbeitungseinheit 18 gemeldet.For a transfer in the (LSU→SSU) direction, the operation proceeds via step S20 to step S21, whereby the completion code is set in the DMA control register 50, and the completion is reported as an interrupt signal to the central processing unit 18.

Ein einmaliger Zugriff in dem DMA-Modus ist somit beendet.A one-time access in the DMA mode is thus completed.

Der Doppelschreibprozeß in Schritten S20 und S22 bis S27 wird später geklärt.The double writing process in steps S20 and S22 to S27 will be clarified later.

Die den SSU-Raum der vorliegenden Erfindung bildenden, gemeinsam benutzten Speichermodule 12 können für eine Fehlertoleranz verdoppelt werden. Wenn auf verdoppelte, gemeinsam benutzte Speichermodule 12 zugegriffen wird, wird die Schreiboperation auf beiden verdoppelten, gemeinsam benutzten Speichermodulen ausgeführt, während die Leseoperation auf einem der gemeinsam benutzten Speichermodule 12 ausgeführt wird.The shared memory modules 12 forming the SSU space of the present invention may be duplicated for fault tolerance. When duplicated shared memory modules 12 are accessed, the write operation is performed on both duplicated shared memory modules while the read operation is performed on one of the shared memory modules 12.

Der Schreibzugriff auf die verdoppelten, gemeinsam benutzten Speichermodule 12 wird durch eine Hardwaresteuerung der Verbindungseinheit 22 als Antwort auf eine Zugriffsanweisung von der zentralen Verarbeitungseinheit 18 auf der Grundlage von Software ausgeführt. Der Schreibzugriff auf die verdoppelten, gemeinsam benutzten Speichermodule wird aus Gründen der Hardwaresteuerung nicht gleichzeitig vorgenommen. Das heißt, zuerst wird die Schreiboperation auf einem der gemeinsam benutzten Speichermodule ausgeführt, und, wenn die erste Schreiboperation abgeschlossen ist, wird in das andere geschrieben. Die spezifischen Zugriffsverfahren können sich zwischen dem Programm-Modus und dem DMA-Modus unterscheiden.The write access to the duplicated shared memory modules 12 is performed by a hardware control of the interconnect unit 22 in response to an access instruction from the central processing unit 18 on a software basis. The write access to the duplicated shared memory modules is not performed simultaneously for hardware control reasons. That is, first the write operation is performed on one of the shared memory modules, and when the first write operation is completed, the other is written to. The specific access methods may differ between the program mode and the DMA mode.

Das Doppelzugriffsverfahren im Programm-Modus wird gemäß dem Prozeß in den Schritten S19 und S22 bis S28 ausgeführt, die in Fig. 15A gezeigt sind.The double access process in the program mode is executed according to the process in steps S19 and S22 to S28 shown in Fig. 15A.

Das heißt, der erste Speicherzugriff wird in der gleichen Art und Weise wie in der Einzelkonfiguration verarbeitet. Wenn in Schritt S18 ein eine normale Beendigung anzeigender Antwort-Übertragung-Befehl EC bei der Beendigung des ersten Schreibzugriffs auf das gemeinsam benutzte Speichermodul 12 empfangen wird, wird in Schritt S19 auf die zweiten Steuerregister 62-1 und 62-2 Bezug genommen.That is, the first memory access is processed in the same manner as in the single configuration. If a normal termination indicating Response transfer command EC is received upon completion of the first write access to the shared memory module 12, reference is made to the second control registers 62-1 and 62-2 in step S19.

In die zweiten Steuerregister 62-1 und 62-2 werden ein Bit zum Spezifizieren der Doppelkonfiguration gemeinsam benutzter Speichermodule, die Einheit-ID eines gemeinsam benutzten Speichermoduls, von dem gelesen werden soll, und die Einheit-ID eines gemeinsam benutzten Speichermoduls eingegeben, in das zuerst geschrieben werden soll.A bit for specifying the dual configuration of shared memory modules, the unit ID of a shared memory module to be read from, and the unit ID of a shared memory module to be written to first are input to the second control registers 62-1 and 62-2.

Wenn auf die zweiten Steuerregister 62-1 und 62-2 Bezug genommen wird, nimmt dann, falls das gemeinsam benutzte Speichermodul, auf das zugegriffen werden soll, als Einzelkonfiguration definiert ist, die Verbindungseinheit 22 den ersten Schreibzugriff auf das gemeinsam benutzte Speichermodul, auf das zugegriffen werden soll, in Schritt S20 vor.When referring to the second control registers 62-1 and 62-2, if the shared memory module to be accessed is defined as a single configuration, the connection unit 22 makes the first write access to the shared memory module to be accessed in step S20.

Wenn die Doppelkonfiguration definiert ist, wird in Schritt S22 ein Übertragung-Start-Befehl SC zur Speicherung in der DID vorbereitet, die der Einheit-ID des gemeinsam benutzten Speichermoduls gleich ist, die in den zweiten Steuerregistern zuerst spezifiziert ist und schon einem Zugriff unterzogen wurde, mit Ausnahme des niedrigstwertigen Bit. Im folgenden Schritt S23 wird das Bus-Recht für den gemeinsam benutzten Systembus 16 reserviert, um den Start-Übertragung- Befehl SC, die Adresse A und Daten D zu übertragen, die dieselben wie die in dem ersten Zugriff sind, und greift auf das andere der doppelt konfigurierten, gemeinsam benutzten Speichermodule zu.When the dual configuration is defined, in step S22, a transfer start command SC is prepared for storage in the DID equal to the unit ID of the shared memory module that is specified in the second control registers first and has already undergone access except for the least significant bit. In the following step S23, the bus right is reserved for the shared system bus 16 to transfer the transfer start command SC, the address A and data D that are the same as those in the first access, and accesses the other of the dual-configured shared memory modules.

Im zweiten Zugriff, mit dem ersten Zugriff, wird der in Schritten S1 bis S4 und S9 bis S12 von Fig. 15A angegebene Prozeß durch die gemeinsam benutzten Speichermodule ausgeführt, und schließlich wird ein Antwort-Übertragung-Befehl EC, der einen Abschlußcode enthält, zum gemeinsam benutzten Systembus übertragen.In the second access, with the first access, the process indicated in steps S1 to S4 and S9 to S12 of Fig. 15A is executed by the shared memory modules, and finally a response transfer command EC containing a completion code is transmitted to the shared system bus.

Vom gemeinsam benutzten Speichermodul übertragene Daten werden in Schritt S24 von Fig. 15A überwacht, und, wenn zwischen dessen eigener Einheit-ID und der DID in Schritt S25 Gleichheit gefunden wird, wird der Antwort-Übertragung-Befehl EC in Schritt S26 empfangen. Dadurch wird wie in den Schrit ten S12 und S13 ein Satz von Speicherzugriffen auf doppelt konfigurierte, gemeinsam benutzte Speichermodule beendet.Data transferred from the shared memory module is monitored in step S24 of Fig. 15A, and when equality is found between its own unit ID and the DID in step S25, the response transfer command EC is received in step S26. Thereby, as in steps S12 and S13 a set of memory accesses to doubly configured, shared memory modules is terminated.

Durch Festlegen von Konfigurationsdefinitionen der gemeinsam benutzten Speichermodule in den zweiten Steuerregistern, wie oben beschrieben wurde, wenn die zentrale Verarbeitungseinheit 18 einen Zugriff im Programm-Modus (Zugriff auf den SSU-Raum) auf eine absolute Adresse eines gemeinsam benutzten Speichermoduls auf der Grundlage von Software vornimmt, prüft die Verbindungseinheit 22 an der Prozessorstelle, ob die gemeinsam benutzte Speichereinheit von einer Einfachkonfiguration oder Doppelkonfiguration ist und die Einheit-ID sich automatisch ändern kann, um den zweiten Zugriff bei der Beendigung des ersten Zugriffs vorzunehmen, falls sie von einer Doppelkonfiguration ist.By setting configuration definitions of the shared memory modules in the second control registers as described above, when the central processing unit 18 makes a program mode access (access to the SSU space) to an absolute address of a shared memory module based on software, the interconnect unit 22 at the processor site checks whether the shared memory unit is of a single configuration or dual configuration, and the unit ID can automatically change to make the second access upon completion of the first access if it is of a dual configuration.

Selbst wenn ein in den zweiten Steuerregistern 62-1 und 62-2 spezifiziertes, gemeinsam benutztes Speichermodul als Doppelkonfiguration definiert ist, kann eines der verdoppelten, gemeinsam benutzten Speichermodule wegen eines Fehlers darin gegen Zugriff gesperrt sein. Eine Situation, in der eine komprimierte Operation vorübergehend verwendet werden muß, kann durch Ändern des Operationsmodus der zweiten Steuerregister von dem Modus der Doppelkonfiguration zum Modus der Einfachkonfiguration bewältigt werden, wenn der abnorme Abschlußcode in dem bei der Beendigung eines Zugriffs erhaltenen Antwort-Übertragung-Befehl EC gefunden wird.Even if a shared memory module specified in the second control registers 62-1 and 62-2 is defined as a double configuration, one of the duplicated shared memory modules may be locked against access due to a fault therein. A situation in which a compressed operation must be used temporarily can be dealt with by changing the operation mode of the second control registers from the double configuration mode to the single configuration mode when the abnormal completion code is found in the response transfer command EC obtained at the completion of an access.

Wenn zur Zeit des Doppelmoduszugriffs ein Zugriff auf gemeinsam benutzte Speichermodule abnorm beendet wird, ist es möglich, das Vorhandensein oder Nichtvorhandensein von Gleichheit der Inhalte von zwei verdoppelten, gemeinsam benutzten Speichermodulen und auch die Zugriffssequenz auf der Grundlage der Einheit-ID des abnormen, gemeinsam benutzten Speichermoduls und der Inhalte der zweiten Steuerregister 62- 1 und 62-2 zu prüfen. Da der Erfolg oder das Versagen beim Zugriff auf einer Wort-für-Wort-Basis grundsätzlich erkannt werden kann, selbst wenn Datengleichheit zwischen den doppelt konfigurierten, gemeinsam benutzten Speichermodulen verloren wird, muß insbesondere im Programm-Modus der Wiedergewinnungsprozeß nur unter Berücksichtigung ungleicher Worte und des gemeinsam benutzten Speichermoduls ausgeführt werden, das beim Zugriff versagt hat.When an access to shared memory modules is abnormally terminated at the time of the dual mode access, it is possible to check the presence or absence of equality of the contents of two duplicated shared memory modules and also the access sequence based on the unit ID of the abnormal shared memory module and the contents of the second control registers 62-1 and 62-2. Since the success or failure of access can be basically recognized on a word-by-word basis even if data equality between the duplicated shared memory modules is lost, particularly in the program mode, the recovery process needs to be carried out only in consideration of unequal words and the shared memory module that failed in access.

Als nächstes wird in Schritten S20, S22 bis S27 von Fig. 16A das DMA-Modus-Doppelzugriffsverfahren veranschaulicht.Next, in steps S20, S22 to S27 of Fig. 16A, the DMA mode double access method is illustrated.

Das heißt, der erste DMA-Zugriff, in welchem eine Datenübertragung in der (LSU→SSU)-Richtung erfolgt, wird in der gleichen Weise wie in der Einfachkonfiguration verarbeitet. Nachdem in Schritt S19 ein Antwort-Übertragung-Befehl EC empfangen ist, der eine normale Beendigung des ersten Zugriffs auf das gemeinsam benutzte Speichermodul anzeigt, wird in Schritt S20 das Vorhandensein oder Nichtvorhandensein der Definition eines Doppelschreibens geprüft.That is, the first DMA access in which data transfer is performed in the (LSU→SSU) direction is processed in the same manner as in the simple configuration. After a response transfer command EC indicating normal completion of the first access to the shared memory module is received in step S19, the presence or absence of the definition of double writing is checked in step S20.

Obwohl der DMA-Modus-Zugriff durch Auswählen eines gemeinsam benutzten Ziel-Speichermoduls und Spezifizieren einer Zugriffsadresse des gemeinsam benutzten Speichermoduls und der Übertragungslänge gestartet wird, sind die Übertragungsrichtung und Einfach/Doppelkonfiguration im DMA-Steuerregister 50 der Verbindungseinheit 22 spezifiziert.Although the DMA mode access is started by selecting a target shared memory module and specifying an access address of the shared memory module and the transfer length, the transfer direction and single/double configuration are specified in the DMA control register 50 of the connection unit 22.

Aus diesem Grund wird in Schritt S20 auf das DMA- Steuerregister 50 Bezug genommen, das die Konfiguration des gemeinsam benutzten Speichermoduls definiert, um das Vorhandensein oder Nichtvorhandensein der Definition eines Doppelschreibens zu prüfen.For this reason, in step S20, reference is made to the DMA control register 50 which defines the configuration of the shared memory module to check the presence or absence of the definition of double writing.

Als Folge der Bezugnahme auf das DMA-Steuerregister 50 geht, falls das gemeinsam benutzte Speichermodul, auf das zugegriffen werden soll, als Einzelkonfiguration definiert ist, der Prozeß zu Schritt S21 weiter, und die Verbindungseinheit 22 beendet einen Zugriff auf die gemeinsam benutzte Speichereinheit mit nur einem Schreibzugriff.As a result of referring to the DMA control register 50, if the shared memory module to be accessed is defined as a single configuration, the process proceeds to step S21, and the connection unit 22 completes access to the shared memory unit with only one write access.

Falls jedoch die Doppelkonfiguration definiert ist, wird in Schritt S22 ein Übertragung-Start-Befehl SC zum Schreiben vorbereitet, und dieser hat bis auf das niedrigstwertige Bit die gleiche DID wie die Einheit-ID des gemeinsam benutzten Speichermoduls, die in dem DMA-Steuerregister 50 zuerst bezeichnet ist und auf das schon zugegriffen wurde. Im folgenden Schritt S23 wird das Bus-Recht für den gemeinsam benutzten Systembus reserviert, um den Start-Übertragung-Befehl SC, die Adresse A und Daten D zu übertragen, die die gleichen wie die im ersten Zugriff auf den gemeinsam benutzten Systembus 16 sind, und nimmt einen DMA-Schreibzugriff auf das andere der doppelt konfigurierten Speichermodule vor.However, if the dual configuration is defined, in step S22, a transfer start command SC is prepared for writing, and it has the same DID as the unit ID of the shared memory module first designated in the DMA control register 50 and already accessed, except for the least significant bit. In the following step S23, the bus right is reserved for the shared system bus to transfer the transfer start command SC, the address A and data D which are the same as those in the first access to the shared system bus 16, and makes a DMA write access to the other of the dual-configuration memory modules.

Im zweiten DMA-Zugriff wird wie beim ersten der Prozeß in Schritten S1 bis S4 und S9 bis S12, die in Fig. 16B gezeigt sind, durch die gemeinsam benutzten Speichermodule ausgeführt, und schließlich wird ein Antwort-Übertragung-Befehl EC, der einen Abschlußcode enthält, zum gemeinsam benutzten Systembus 16 übertragen.In the second DMA access, as in the first, the process in steps S1 to S4 and S9 to S12 shown in Fig. 16B is carried out by the shared memory modules, and finally a response transfer command EC containing a completion code is transmitted to the shared system bus 16.

Das heißt, vom gemeinsam benutzten Speichermodul übertragene Daten werden in Schritt S24 von Fig. 16A überwacht, und, wenn zwischen seiner eigenen Einheit-ID und der DID in Schritt S25 Gleichheit gefunden wird, wird in Schritt S26 der Antwort-Übertragung-Befehl EC empfangen. Wie in den Schritten S11 und S12 wird in Schritten S26 und S27 ein DMA-Zugriff- Schreiben in die doppelten, gemeinsam benutzten Speichermodule beendet.That is, data transferred from the shared memory module is monitored in step S24 of Fig. 16A, and when equality is found between its own unit ID and the DID in step S25, the response transfer command EC is received in step S26. As in steps S11 and S12, DMA access writing to the duplicate shared memory modules is terminated in steps S26 and S27.

Wie beim Doppelschreiben im Programm-Modus wird auch im DMA-Modus, falls der Operationsmodus spezifiziert ist, das Doppelschreiben automatisch durch die Hardware ausgeführt.As with double writing in program mode, in DMA mode, if the operation mode is specified, double writing is automatically performed by the hardware.

Wenn während eines DMA-Zugriffs auf die verdoppelten, gemeinsam benutzten Speichermodule eine abnorme Beendigung auftritt, ist es möglich, Datengleichheit zwischen zwei verdoppelten, gemeinsam benutzten Speichermodulen und auch die Zugriffssequenz auf der Grundlage der Einheit-ID, auf die zugegriffen wird, und des niedrigstwertigen Bit der Einheit-ID des gemeinsam benutzten Speichermoduls zu prüfen, die zur Zeit des ersten Zugriffs spezifiziert ist.When abnormal termination occurs during DMA access to the duplicated shared memory modules, it is possible to check data equality between two duplicated shared memory modules and also the access sequence based on the accessed unit ID and the least significant bit of the shared memory module's unit ID specified at the time of the first access.

Obwohl mehr als ein Prozessormodul in der Ausführungsform von Fig. 2 angegeben ist, kann das System ein einziges Prozessormodul aufweisen.Although more than one processor module is indicated in the embodiment of Fig. 2, the system may include a single processor module.

Wie oben beschrieben wurde, ist gemäß der vorliegenden Erfindung die Anweisung von den Daten getrennt, wodurch die Frequenz eines Zugriffs auf ein gemeinsam benutztes Speichermodul verringert und die Zahl von Prozessormodulen erhöht wird, mit denen das System ausgestattet werden soll. Folglich kann die vorliegende Erfindung die Systemleistungsfähigkeit außerordentlich verbessern.As described above, according to the present invention, the instruction is separated from the data, thereby reducing the frequency of access to a shared memory module and increasing the number of processor modules to be equipped in the system. Consequently, the present invention can greatly improve the system performance.

Da der Speicherbereich oder -raum, der durch mehrere Prozessormodule zusammen genutzt oder beansprucht wird, verringert ist, ist die Unabhängigkeit jedes Prozessors erhöht, und folglich kann ein zuverlässigerer fehlertoleranter Computer konfiguriert werden.Since the memory area or space shared or occupied by multiple processor modules is reduced, the independence of each processor is increased and, consequently, a more reliable fault-tolerant computer can be configured.

Ferner ist ein erweiterter, gemeinsam benutzter Speicherraum vorgesehen, auf den durch eine DMA-Anweisung unter Verwendung von Software zugegriffen werden kann, und folglich kann ein Computersystem mit einem sehr großen Speicherraum konfiguriert werden.Furthermore, an extended shared memory space is provided which can be accessed by a DMA instruction using software, and thus a computer system with a very large memory space can be configured.

Eine Duplexkonfiguration kann während einer Systemoperation geändert werden, was folglich fehlertolerante Fähigkeiten in Abhängigkeit vom notwendigen Speichervolumen realisiert, wo eine Duplizierung für einen gemeinsam benutzten Speicherraum gefordert wird.A duplex configuration can be changed during system operation, thus realizing fault-tolerant capabilities depending on the necessary memory volume where duplication is required for a shared memory space.

Da die Hardware gemäß der Schreibanweisung von der Software zweimal automatische duplizierende Schreibvorgänge ausführt, kann die Prozeßlast der Software ohne irgendeinen weiteren Softwareprozeß reduziert werden, was folglich die Systemleistungsfähigkeit sehr verbessert.Since the hardware performs automatic duplicate writes twice according to the write instruction from the software, the process load of the software can be reduced without any additional software process, thus greatly improving the system performance.

Claims (12)

1. Gemeinsam benutzten Speicher duplizierendes Verfahren zur Verwendung in einem Computersystem mit:1. Shared memory duplication method for use in a computer system comprising: einem oder mehr Prozeßmodulen (10), jeweils mindestens einen Hauptspeicher (20), eine zentrale Verarbeitungseinheit (18) und eine Verbindungseinheit (22) für eine Verbindung mit einem Systembus (16) aufweisend; undone or more process modules (10), each having at least a main memory (20), a central processing unit (18) and a connection unit (22) for connection to a system bus (16); and einer Mehrzahl von gemeinsam benutzten Speichermodulen (12) mit mindestens einer gemeinsam benutzten Speichereinheit (26) und einer Verbindungseinheit (28) für eine Verbindung mit dem Systembus (16), jedes der gemeinsam benutzten Speichermodule (12) eine jeweilige Einheit-ID aufweisend;a plurality of shared memory modules (12) having at least one shared memory unit (26) and a connection unit (28) for connection to the system bus (16), each of the shared memory modules (12) having a respective unit ID; worin das Verfahren ein zweites, gemeinsam benutztes Speichermodul (12) entsprechend einem ersten, gemeinsam benutzten Speichermodul (12) zur Verwendung in einer Duplexoperation spezifiziert durch die Schritte:wherein the method specifies a second shared memory module (12) corresponding to a first shared memory module (12) for use in a duplex operation by the steps of: Teilen eines gemeinsam benutzten Speicherraums (200), auf den in Abhängigkeit von einer absoluten Adresse zugegriffen werden kann, in eine Mehrzahl von partiell gemeinsam benutzten Speicherräumen (300);Dividing a shared memory space (200) that can be accessed depending on an absolute address into a plurality of partially shared memory spaces (300); Definieren der Existenz einer Duplexkonfiguration des ersten, gemeinsam benutzten Speichermoduls (12) für jeden der partiell gemeinsam benutzten Speicherräume (300); undDefining the existence of a duplex configuration of the first shared memory module (12) for each of the partially shared memory spaces (300); and Spezifizieren des zweiten, gemeinsam benutzten Moduls (12) durch dessen Einheit-ID mit einem invertierten Wert an einem spezifischen Bit im Gegensatz zu der Einheit-ID des ersten, gemeinsam benutzten Speichermoduls (12); gekennzeichnet durch:Specifying the second shared module (12) by its unit ID with an inverted value at a specific bit in contrast to the unit ID of the first shared memory module (12); characterized by: Mittel (44) zum Ändern der Duplexkonfiguration gemäß einer Anweisung der zentralen Verarbeitungseinheit (18) auf der Grundlage von Software.Means (44) for changing the duplex configuration according to an instruction from the central processing unit (18) on a software basis. 2. Gemeinsam benutzten Speicher duplizierendes Verfahren nach Anspruch 1, worin das spezifische Bit ein niedrigstwertiges Bit ist.2. A shared memory duplicating method according to claim 1, wherein the specific bit is a least significant bit. 3. Gemeinsam benutzten Speicher duplizierendes Verfahren nach Anspruch 1, worin falls eine Duplexkonfiguration gemäß einer ersten Schreibanweisung der zentralen Verarbeitungseinheit (18) auf der Grundlage von Software bestimmt wird, die Hardware der Verbindungseinheit (22) ein erstes Schreiben in das erste, gemeinsam benutzte Speichermodul (12) mit einer spezifizierten Einheit-ID und dann ein zweites Schreiben in das zweite, gemeinsam benutzte Speichermodul (12) ausführt.3. A shared memory duplicating method according to claim 1, wherein if a duplex configuration is specified according to a first write instruction of the central processing unit (18) on determined on the basis of software, the hardware of the connection unit (22) performs a first write to the first shared memory module (12) with a specified unit ID and then a second write to the second shared memory module (12). 4. Gemeinsam benutzten Speicher duplizierendes Verfahren nach Anspruch 1, worin die Verbindungseinheit (22) in dem Prozeßmodul ein Konfigurationsdefinitionsregister (44) zum Spezifizieren der Existenz einer Duplexkonfiguration des gemeinsam benutzten Speichermoduls (12) aufweist und einen Zugriff für ein duplizierendes Schreiben ausführte indem auf das Konfigurationsdefinitionsregister (44) auf ein Empfangen einer Schreibanweisung von der zentralen Verarbeitungseinheit (18) des Prozeßmoduls (10) hin Bezug genommen wird, welches Konfigurationsdefinitionsregister (44) das Mittel zum Ändern der Duplexkonfiguration bildet.4. A shared memory duplicating method according to claim 1, wherein the connection unit (22) in the process module has a configuration definition register (44) for specifying the existence of a duplex configuration of the shared memory module (12) and performs an access for a duplicative write by referring to the configuration definition register (44) upon receiving a write instruction from the central processing unit (18) of the process module (10), which configuration definition register (44) constitutes the means for changing the duplex configuration. 5. Gemeinsam benutzten Speicher duplizierendes Verfahren nach Anspruch 1, worin falls die Verbindungseinheit (22) in dem Prozeßmodul (10) von der zentralen Verarbeitungseinheit (18) eine Leseanweisung von einem Paar gemeinsam benutzter Speichermodule (12) empfängt, wo eine Duplexkonfiguration spezifiziert ist, ein Lesezugriff nur von dem gemeinsam benutzten Speichermodul (12) mit einer Einheit-ID ausgeführt wird, die durch die Leseanweisung der zentralen Verarbeitungseinheit (18) bestimmt ist.5. A shared memory duplicating method according to claim 1, wherein if the connection unit (22) in the process module (10) receives from the central processing unit (18) a read instruction from a pair of shared memory modules (12) where a duplex configuration is specified, a read access is performed only from the shared memory module (12) with a unit ID determined by the read instruction of the central processing unit (18). 6. Gemeinsam benutzten Speicher duplizierendes Verfahren nach Anspruch 1, worin6. Shared memory duplicating method according to claim 1, wherein die Verbindungseinheit (22) in dem Prozeßmodul (10) einen Start-Übertragung-Befehl (EC) erzeugt, der einen Ziel-ID-Code (DID), der das gemeinsam benutzte Speichermodul (12) anzeigt, auf das zugegriffen werden soll, einen Quellen-ID-Code (SID) zum Anzeigen der Quelle, einen den Zugriffstyp anzeigenden Operanden und eine Zugriffsdatenkapazität (BCT) umfaßt, und dann zum Systembus (16) den Start-Übertragung-Befehl (EC) zusammen mit einer Zugriffsadresse (A) des gemeinsam benutzten Speichermoduls (12) am Ziel sendet; undthe connection unit (22) in the process module (10) generates a start transfer command (EC) comprising a destination ID code (DID) indicating the shared memory module (12) to be accessed, a source ID code (SID) for indicating the source, an operand indicating the access type and an access data capacity (BCT), and then sends to the system bus (16) the start transfer command (EC) together with an access address (A) of the shared memory module (12) at the destination; and die Verbindungseinheit (22) in dem gemeinsam benutzten Speichermodul (12) den Systembus (16) überwacht und den Start-Übertragung-Befehl (SC) akzeptiert, wenn sie bestimmt, daß der Ziel-ID-Code des Start-Übertragung-Befehls (SC) und ihre Einheit-ID zusammenpassen, dadurch einen operandenabhängigen Zugriff ausführend.the connection unit (22) in the shared memory module (12) monitors the system bus (16) and the Start Transfer Command (SC) when it determines that the destination ID code of the Start Transfer Command (SC) and its unit ID match, thereby performing an operand-dependent access. 7. Gemeinsam benutzten Speicher duplizierendes Verfahren nach Anspruch 1, worin7. Shared memory duplicating method according to claim 1, wherein die Verbindungseinheit (22) in dem Prozeßmodul (10) Hardware zum Durchführen eines duplizierenden Schreibens gemäß der Spezifikation einer Duplexkonfiguration aufweist:the connection unit (22) in the process module (10) has hardware for performing duplicative writing according to the specification of a duplex configuration: Programm-Modus-Zugriff-Steuermittel (32) zum Zugreifen auf das gemeinsam benutzte Speichermodul (12) in Abhängigkeit von einer absoluten Adresse der zentralen Verarbeitungseinheit (18); undProgram mode access control means (32) for accessing the shared memory module (12) in dependence on an absolute address of the central processing unit (18); and DMA-Modus-Zugriff-Steuermittel (34) zum Zugreifen auf das gemeinsam benutzte Speichermodul (12) nach Umwandeln der absoluten Adresse der zentralen Verarbeitungseinheit (18) in eine relative Adresse.DMA mode access control means (34) for accessing the shared memory module (12) after converting the absolute address of the central processing unit (18) into a relative address. 8. Gemeinsam benutzten Speicher duplizierendes Verfahren nach Anspruch 1, worin falls während des Zugriffs auf das gemeinsam benutzte Speichermodul (12) eine abnorme Bedingung existiert, ein Beendigungscode, der die ausführliche Information der abnormen Bedingung beschreibt, und die Einheit-ID des defekten, gemeinsam benutzten Speichermoduls (12) der Software des Prozeßmoduls (10) gemeldet werden.8. A shared memory duplicating method according to claim 1, wherein if an abnormal condition exists during access to the shared memory module (12), a completion code describing the detailed information of the abnormal condition and the unit ID of the defective shared memory module (12) are reported to the software of the process module (10). 9. Gemeinsam benutzten Speicher duplizierendes Verfahren nach Anspruch 8, worin der Software des Prozeßmoduls (10) der Beendigungscode, der die ausführliche Information der abnormen Bedingung beschreibt, und nur das niedrigstwertige Bit in der Einheit-ID des defekten, gemeinsam benutzten Speichermoduls gemeldet werden.9. A shared memory duplicating method according to claim 8, wherein the software of the process module (10) is notified of the termination code describing the detailed information of the abnormal condition and only the least significant bit in the unit ID of the defective shared memory module. 10. Gemeinsam benutzten Speicher duplizierendes Verfahren nach Ansprüchen 4 und 8, worin falls die Software des Prozeßmoduls (10) eine Meldung empfängt, die eine abnorme Beendigung eines Duplexzugriffs anzeigt, ein Wiedergewinnungsprozeß ausgeführt wird, indem der Inhalt des Konfigurationsdefinitionsregisters (44) ausgewählt wird, das in der Verbindungseinheit (22) vorgesehen ist, wobei die Inhalte eine Freigabe einer Duplizierung, eine Neuschreib-Anweisung und einen Wechsel eines gemeinsam benutzten Speichermoduls (12) umfassen, um gelesen zu werden.10. A shared memory duplicating method according to claims 4 and 8, wherein if the software of the process module (10) receives a message indicating abnormal termination of a duplex access, a recovery process is carried out by selecting the contents of the configuration definition register (44) provided in the connection unit (22), the contents including an enable of duplication, a rewrite instruction and a change of a shared memory module (12) to be read. 11. Gemeinsam benutzten Speicher duplizierendes Verfahren nach Anspruch 1, worin das gemeinsam benutzte Speichermodul (12) mehrere gemeinsam benutzte Speichereinheiten (26) aufweist, die jeweils einem gemeinsam benutzten Speicherraum zugeordnet sind, auf den in Abhängigkeit von einer absoluten Adresse des Prozeßmoduls (10) zugegriffen werden kann.11. A shared memory duplicating method according to claim 1, wherein the shared memory module (12) comprises a plurality of shared memory units (26) each associated with a shared memory space that can be accessed in dependence on an absolute address of the process module (10). 12. Gemeinsam benutzten Speicher duplizierendes Verfahren nach Anspruch 1, worin das Computersystem aufweist12. A shared memory duplicating method according to claim 1, wherein the computer system comprises mehrere Systembusse (16); undseveral system buses (16); and mehrere Verbindungseinheiten (22), die in dem Prozeßmodul (10) vorgesehen sind, und mehrere Verbindungseinheiten (28), die in dem gemeinsam benutzten Speichermodul (12) vorgesehen sind, jeweils in einer der Zahl der Systembusse (16) entsprechenden Anzahl.a plurality of connection units (22) provided in the process module (10) and a plurality of connection units (28) provided in the shared memory module (12), each in a number corresponding to the number of system buses (16).
DE69131840T 1990-09-18 1991-09-17 Process for duplicating shared memory Expired - Fee Related DE69131840T2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP24820390A JP3246736B2 (en) 1990-09-18 1990-09-18 Computer system
JP02248204A JP3112280B2 (en) 1990-09-18 1990-09-18 Computer system

Publications (2)

Publication Number Publication Date
DE69131840D1 DE69131840D1 (en) 2000-01-13
DE69131840T2 true DE69131840T2 (en) 2000-04-20

Family

ID=26538659

Family Applications (2)

Application Number Title Priority Date Filing Date
DE69131840T Expired - Fee Related DE69131840T2 (en) 1990-09-18 1991-09-17 Process for duplicating shared memory
DE69129960T Expired - Fee Related DE69129960T2 (en) 1990-09-18 1991-09-17 System for designing a shared memory

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE69129960T Expired - Fee Related DE69129960T2 (en) 1990-09-18 1991-09-17 System for designing a shared memory

Country Status (3)

Country Link
US (2) US5963976A (en)
EP (2) EP0809185B1 (en)
DE (2) DE69131840T2 (en)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997011426A1 (en) 1995-09-18 1997-03-27 Cyberstorage Systems, Inc. Universal storage management system
KR100258079B1 (en) * 1997-12-17 2000-06-01 이계철 Simultaneous write redundancy by memory bus expansion in tightly coupled fault-tolerant systems
US7010532B1 (en) 1997-12-31 2006-03-07 International Business Machines Corporation Low overhead methods and apparatus for shared access storage devices
US5950203A (en) * 1997-12-31 1999-09-07 Mercury Computer Systems, Inc. Method and apparatus for high-speed access to and sharing of storage devices on a networked digital data processing system
US6658417B1 (en) 1997-12-31 2003-12-02 International Business Machines Corporation Term-based methods and apparatus for access to files on shared storage devices
US6694317B1 (en) 1997-12-31 2004-02-17 International Business Machines Corporation Method and apparatus for high-speed access to and sharing of storage devices on a networked digital data processing system
JPH11259372A (en) * 1998-03-09 1999-09-24 Fujitsu Ltd Redundant memory controller
US6230253B1 (en) * 1998-03-31 2001-05-08 Intel Corporation Executing partial-width packed data instructions
US6178471B1 (en) * 1998-07-21 2001-01-23 International Business Machines Corporation Method of sharing buffers for the streaming of unchanged data
US6256683B1 (en) * 1998-12-23 2001-07-03 Bops, Inc. Methods and apparatus for providing direct memory access control
US6718347B1 (en) * 1999-01-05 2004-04-06 Emc Corporation Method and apparatus for maintaining coherence among copies of a database shared by multiple computers
US6775830B1 (en) * 1999-09-24 2004-08-10 Hitachi, Ltd. Computer system and a program install method thereof
US6421744B1 (en) * 1999-10-25 2002-07-16 Motorola, Inc. Direct memory access controller and method therefor
US6763437B1 (en) 2000-09-07 2004-07-13 Maxtor Corporation Control system, storage device and method for controlling access to a shared memory using a bus control or handshaking protocol
US7024662B2 (en) 2001-03-14 2006-04-04 Microsoft Corporation Executing dynamically assigned functions while providing services
US7539747B2 (en) 2001-03-14 2009-05-26 Microsoft Corporation Schema-based context service
US7302634B2 (en) 2001-03-14 2007-11-27 Microsoft Corporation Schema-based services for identity-based data access
US7284271B2 (en) 2001-03-14 2007-10-16 Microsoft Corporation Authorizing a requesting entity to operate upon data structures
US20020166004A1 (en) * 2001-05-02 2002-11-07 Kim Jason Seung-Min Method for implementing soft-DMA (software based direct memory access engine) for multiple processor systems
US6944787B2 (en) * 2001-10-01 2005-09-13 International Business Machines Corporation System-managed duplexing of coupling facility structures
GB2386441B (en) * 2002-03-12 2006-09-27 Advanced Risc Mach Ltd Bus interface selection by page table attributes
US9886309B2 (en) 2002-06-28 2018-02-06 Microsoft Technology Licensing, Llc Identity-based distributed computing for device resources
US20050038946A1 (en) * 2003-08-12 2005-02-17 Tadpole Computer, Inc. System and method using a high speed interface in a system having co-processors
US8726279B2 (en) * 2006-05-06 2014-05-13 Nvidia Corporation System for multi threaded multi processor sharing of asynchronous hardware units
JP4997950B2 (en) * 2006-12-11 2012-08-15 富士通株式会社 Network management system, network management program, and network management method
JP2009023118A (en) * 2007-07-17 2009-02-05 Canon Inc Wiping method of ink jet recording head
US20100017569A1 (en) * 2008-07-16 2010-01-21 Agere Systems Inc. Pcb including multiple chips sharing an off-chip memory, a method of accessing off-chip memory and a mcm utilizing fewer off-chip memories than chips

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3480914A (en) * 1967-01-03 1969-11-25 Ibm Control mechanism for a multi-processor computing system
US3576982A (en) * 1968-12-16 1971-05-04 Ibm Error tolerant read-only storage system
US4130865A (en) * 1974-06-05 1978-12-19 Bolt Beranek And Newman Inc. Multiprocessor computer apparatus employing distributed communications paths and a passive task register
US4181938A (en) * 1975-10-15 1980-01-01 Tokyo Shibaura Electric Co., Ltd. Processor device
JPS52110539A (en) * 1976-03-15 1977-09-16 Toshiba Corp Multiple data processing system
JPS52123127A (en) * 1976-04-09 1977-10-17 Toshiba Corp Color videoboard unit
JPS52123137A (en) * 1976-04-09 1977-10-17 Hitachi Ltd Duplication memory control unit
JPS54131845A (en) * 1978-04-05 1979-10-13 Masahiro Sowa Multiprocessor system
JPS5642868A (en) * 1979-09-17 1981-04-21 Shinko Electric Co Ltd Access method for common memory in multiprocessor system
US4313161A (en) * 1979-11-13 1982-01-26 International Business Machines Corporation Shared storage for multiple processor systems
JPS56152063A (en) * 1980-04-25 1981-11-25 Oki Electric Ind Co Ltd Common storage control system
US4403283A (en) * 1980-07-28 1983-09-06 Ncr Corporation Extended memory system and method
JPS57162200A (en) * 1981-03-31 1982-10-05 Nec Corp Doubling system for memory device
JPS5858601A (en) * 1981-10-05 1983-04-07 Yokogawa Hokushin Electric Corp Split type process control system
US4648035A (en) * 1982-12-06 1987-03-03 Digital Equipment Corporation Address conversion unit for multiprocessor system
US4591977A (en) * 1983-03-23 1986-05-27 The United States Of America As Represented By The Secretary Of The Air Force Plurality of processors where access to the common memory requires only a single clock interval
JPS60173655A (en) * 1984-01-27 1985-09-07 Nippon Telegr & Teleph Corp <Ntt> Memory system of multiprocessor
JPS60225264A (en) * 1984-04-24 1985-11-09 Hitachi Ltd Control system of shared dual memory
US4823256A (en) * 1984-06-22 1989-04-18 American Telephone And Telegraph Company, At&T Bell Laboratories Reconfigurable dual processor system
US4710868A (en) * 1984-06-29 1987-12-01 International Business Machines Corporation Interconnect scheme for shared memory local networks
US4805097A (en) * 1984-08-03 1989-02-14 Motorola Computer Systems, Inc. Memory management unit with dynamic page allocation
JPS61133453A (en) * 1984-11-30 1986-06-20 Nec Corp Memory controller
JPS61165170A (en) * 1984-12-19 1986-07-25 Fujitsu Ltd Bus controlling system
JPS61195444A (en) * 1985-02-26 1986-08-29 Toshiba Corp Computer system
JPS61255451A (en) * 1985-05-07 1986-11-13 Mitsubishi Electric Corp Data processing unit
JPH0625987B2 (en) * 1985-10-31 1994-04-06 株式会社東芝 Complex computer system
JPS62179044A (en) * 1986-01-31 1987-08-06 Toshiba Corp Multicomputer system
EP0240667B1 (en) * 1986-03-12 1993-07-21 Hitachi, Ltd. Processor
GB2195038A (en) * 1986-07-05 1988-03-23 Narayanaswamy D Jayaram A multi-microprocessor system with confederate processors
US4774712A (en) * 1986-10-01 1988-09-27 International Business Machines Corporation Redundant storage device having address determined by parity of lower address bits
JPS63149748A (en) * 1986-12-15 1988-06-22 Nec Corp Storage device
JPH0771088B2 (en) * 1987-04-06 1995-07-31 古河電気工業株式会社 Multiplex transmission system
CH675781A5 (en) * 1987-04-16 1990-10-31 Bbc Brown Boveri & Cie
US4792950A (en) * 1987-06-17 1988-12-20 Ford Motor Company Multiplex wiring system
JP3066753B2 (en) * 1987-12-24 2000-07-17 富士通株式会社 Storage controller
JPH02166535A (en) * 1988-12-21 1990-06-27 Fujitsu Ltd Processor system including common memory
US5210847A (en) * 1989-05-19 1993-05-11 Compaq Computer Corporation Noncacheable address random access memory
DE69028517D1 (en) * 1990-05-11 1996-10-17 Ibm Method and device for deriving the state of a mirrored unit when reinitializing a system
US5544347A (en) * 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
US5237567A (en) * 1990-10-31 1993-08-17 Control Data Systems, Inc. Processor communication bus
US5276684A (en) * 1991-07-22 1994-01-04 International Business Machines Corporation High performance I/O processor

Also Published As

Publication number Publication date
EP0476962B1 (en) 1998-08-12
DE69129960T2 (en) 1998-12-24
EP0809185B1 (en) 1999-12-08
US5890218A (en) 1999-03-30
EP0476962A2 (en) 1992-03-25
EP0476962A3 (en) 1995-03-01
US5963976A (en) 1999-10-05
EP0809185A1 (en) 1997-11-26
DE69131840D1 (en) 2000-01-13
DE69129960D1 (en) 1998-09-17

Similar Documents

Publication Publication Date Title
DE69131840T2 (en) Process for duplicating shared memory
DE69033679T2 (en) Data transmission adapter device
DE69329904T2 (en) REAL-TIME PROCESSING SYSTEM
DE69130946T2 (en) METHOD FOR EXCLUSIVE CONTROL FOR A COMMON STORAGE
DE3750938T2 (en) Multiprocessor system.
DE4221278C2 (en) Bus-linked multi-computer system
DE3689226T2 (en) Multiprocessor system with multi-hierarchical levels.
DE2856483C2 (en)
DE69130203T2 (en) Consistent packet-switched memory bus for multiprocessors with shared memory
DE3685876T2 (en) MASTER SLAVE MICROPROCESSOR SYSTEM WITH A VIRTUAL MEMORY.
DE69022709T2 (en) Synchronization command for multiprocessor network.
DE69223304T2 (en) Arbitration lockout method and apparatus for a remote bus
DE69708933T2 (en) ADDRESS TRANSLATION IN COMPUTER BUS BRIDGE DEVICES
DE4208924A1 (en) Communication between processors in parallel processing computers - is achieved by transmission between computers involving real and virtual memory sectors
CH656729A5 (en) INTERFACE CIRCUIT ARRANGEMENT FOR CONNECTING A PROCESSOR TO A MESSAGE CHANNEL.
DE69129840T2 (en) MESSAGE CONTROL METHOD FOR A DATA COMMUNICATION SYSTEM
DE2054830C3 (en) Information processing system with means for accessing memory data fields of variable length
DE3502147A1 (en) Data processing system with improved buffer memory control
EP0739509B1 (en) Arrangement with master and slave units
DE3854770T2 (en) Bus adapter for digital computing system
DE69508034T2 (en) Fault detection system and method for mirrored storage between double disk storage controllers
DE3142504A1 (en) MULTIPLE DISK STORAGE TRANSMISSION SYSTEM
DE69817852T2 (en) STORAGE PROTECTION SYSTEM FOR A MULTITASKING SYSTEM
DE69129841T2 (en) MESSAGE CONTROL SYSTEM IN A DATA COMMUNICATION SYSTEM
EP0265636A1 (en) Multiprocessor with several processors provided with cache memories and a shared memory

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee