DE69131840T2 - Verfahren zur Vervielfältigung eines geteilten Speichers - Google Patents
Verfahren zur Vervielfältigung eines geteilten SpeichersInfo
- 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
Links
- 230000015654 memory Effects 0.000 title claims description 364
- 238000000034 method Methods 0.000 title claims description 65
- 238000012546 transfer Methods 0.000 claims description 99
- 238000012545 processing Methods 0.000 claims description 83
- 230000002159 abnormal effect Effects 0.000 claims description 13
- 230000002950 deficient Effects 0.000 claims description 5
- 238000011084 recovery Methods 0.000 claims description 3
- 230000001419 dependent effect Effects 0.000 claims 1
- 230000004044 response Effects 0.000 description 38
- 238000010586 diagram Methods 0.000 description 23
- 230000009977 dual effect Effects 0.000 description 22
- 230000005540 biological transmission Effects 0.000 description 20
- 230000005856 abnormality Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000012856 packing Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 1
- DOIRQSBPFJWKBE-UHFFFAOYSA-N dibutyl phthalate Chemical compound CCCCOC(=O)C1=CC=CC=C1C(=O)OCCCC DOIRQSBPFJWKBE-UHFFFAOYSA-N 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2056—Error 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/2087—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2002—Error 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/2007—Error 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/88—Masking 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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Fig. 1A bis 1E sind Diagramme zum Erklären der Grundlagen der vorliegenden Erfindung;
- Fig. 2 veranschaulicht eine Multiprozessor-Systemkonfiguration der vorliegenden Erfindung;
- Fig. 3 ist ein Blockdiagramm eines Prozessormoduls der vorliegenden Erfindung;
- Fig. 4 ist ein Blockdiagramm eines gemeinsam benutzten Speichermoduls der vorliegenden Erfindung;
- Fig. 5 ist ein Blockdiagramm einer Verbindungseinheit der vorliegenden Erfindung, die in das Prozessormodul eingebaut ist;
- Fig. 6 ist ein Blockdiagramm einer Verbindungseinheit der vorliegenden Erfindung, die in das gemeinsam benutzte Speichermodul eingebaut ist;
- Fig. 7 ist ein Diagramm zum Erklären von Übertragungsbefehlen auf dem Systembus gemäß der vorliegenden Erfindung;
- Fig. 8 ist ein Diagramm zum Erklären von Schreib- und Übertragungsoperationen gemäß der vorliegenden Erfindung;
- Fig. 9 ist ein Diagramm zum Erklären von Lese- und Übertragungsoperationen gemäß der vorliegenden Erfindung;
- Fig. 10 ist ein Diagramm zum Erklären einer Adreßraumabbildung gemäß der vorliegenden Erfindung;
- Fig. 11 ist ein Diagramm zum Erklären eines erweiterten SSU-Raums gemäß der vorliegenden Erfindung;
- Fig. 12 ist ein Diagramm zum Erklären von SSM-Konfigurationsdefinitionen durch das erste Steuerregister gemäß der vorliegenden Erfindung;
- Fig. 13 ist ein Diagramm zum Erklären von SSM-Konfigurationsdefinitionen durch das zweite Steuerregister gemäß der vorliegenden Erfindung;
- Fig. 14 ist ein Diagramm zum Erklären eines Packens der gemeinsam benutzten Speichermodule entsprechend den Konfigurationsdefinitionen der Fig. 12 und 13;
- Fig. 15A und 15B sind Flußdiagramme eines Zugriffsprozesses in dem Programm-Modus gemäß der vorliegenden Erfindung;
- Fig. 16A und 16B sind Flußdiagramme eines Zugriffsprozesses in dem DMA-Modus gemäß der vorliegenden Erfindung; und
- Fig. 17 ist ein Diagramm zum Erklären eines Deskriptors, der in dem DMA-Modus-Zugriff gemäß der vorliegenden Erfindung verwendet wird.
- Fig. 1A bis 1E veranschaulichen die Grundlagen der vorliegenden Erfindung.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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).
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Der gemeinsam benutzte Speicherbereich 400 ist in die gemeinsam benutzten Speichereinheiten 12 geteilt, die jeweils eine feste Speicherkapazität aufweisen.
- 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.
- 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.
- 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.
- 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.
- 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.
- Die Systemkonfiguration mit gemeinsam benutzten Speichern der vorliegenden Erfindung, das wie oben beschrieben konfiguriert ist, liefert die folgenden Effekte.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Eine Duplexkonfiguration kann optional so definiert sein, daß der Zusatz/Entfernung eines gemeinsam benutzten Speichermoduls und der Wechsel zu einer Simplex/Duplexkonfiguration zugelassen sind.
- 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.
- 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.
- Fig. 2 veranschaulicht eine Systemkonfiguration eines Multiprozessorsystems, für das ein Konfigurationssystem für gemeinsam benutzte Speicher gemäß der vorliegenden Erfindung verwendet wird.
- 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.
- Die Einheit-ID-Zahlen der #0 bis #2 Prozessormodule 10 sind wie folgt zugeordnet:
- PM #0; UID = 1000000
- PM #1; UID = 1000001
- PM #2; UID = 1000010
- Auch die ID-Zahlen der #0 bis #2 gemeinsam benutzten Speichermodule 12 sind folgendermaßen zugeordnet:
- SSM #0, UID = 0000000
- SSM #1; UID = 0000001
- SSM #"; 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.
- Fig. 3 ist ein Blockdiagramm des in Fig. 2 gezeigten Prozessormoduls.
- 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.
- 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.
- Fig. 4 ist ein Blockdiagramm des in Fig. 2 gezeigten, gemeinsam benutzten Speichermoduls 12.
- 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.
- Fig. 5 ist ein Blockdiagramm der Verbindungseinheit 22 im Prozessormodul 10 von 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:
- (1) Programm-Modus
- (2) DMA-Modus
- 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.
- Fig. 6 ist ein Blockdiagramm der Verbindungseinheit (SSBC-S) 28 des gemeinsam benutzten Speichermoduls 12, das in Fig. 4 gezeigt ist.
- 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.
- 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.
- 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.
- Fig. 7 veranschaulicht Beispiele eines Start- Übertragung-Befehls SC und eines Antwort-Übertragung-Befehls EC, die durch die Verbindungseinheiten 22 und 28 verwendet werden.
- 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 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ß.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Der Lesezugriff wird in dem Programm-Zugriffsmodus oder dem DMA-Zugriffsmodus durchgeführt. In jedem Zugriffsmodus sind die Operationen auf dem Systembus 16 dieselben.
- Fig. 10 ist ein Diagramm zum Erklären einer Adreßraumabbildung in der vorliegenden Ausführungsform der vorliegenden Erfindung.
- 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).
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- (1) Programm-Modus, in welchem absolute Adressen verwendet werden, um einen direkten Zugriff durch Softwareanweisungen der zentralen Verarbeitungseinheit 18 auszuführen; oder
- (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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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 eingestellt
- Partieller SSU-Raum Einheit-ID
- #2 0000010
- #3 0000011
- Für den partiellen SSU-Raum #4 ist das folgende Paar festgelegt.
- Partieller SSU-Raum Einheit-ID
- #4 0000100
- #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.
- 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.
- 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.
- 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.
- 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.
- In der vorliegenden Erfindung wird ein Zugriff im Programm-Modus gemäß in Fig. 15A und 15B gezeigten Flußdiagrammen vorgenommen.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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 Schritt S4 wird bestimmt, ob die Anweisung eine Abrufanweisung oder eine Speicheranweisung ist.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Der Zugriff im Programm-Modus ist somit beendet.
- Der Doppel-Schreibprozeß in Schritten S19 und S22 bis S28 von Fig. 15A wird später geklärt.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Anschließend reserviert die Sender-Empfänger-Schaltung 36 das Bus-Recht für den gemeinsam benutzten Systembus 16 in Schritten S6 und 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Ein einmaliger Zugriff in dem DMA-Modus ist somit beendet.
- Der Doppelschreibprozeß in Schritten S20 und S22 bis S27 wird später geklärt.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Als nächstes wird in Schritten S20, S22 bis S27 von Fig. 16A das DMA-Modus-Doppelzugriffsverfahren veranschaulicht.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Wie beim Doppelschreiben im Programm-Modus wird auch im DMA-Modus, falls der Operationsmodus spezifiziert ist, das Doppelschreiben automatisch durch die Hardware ausgeführt.
- 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.
- Obwohl mehr als ein Prozessormodul in der Ausführungsform von Fig. 2 angegeben ist, kann das System ein einziges Prozessormodul aufweisen.
- 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.
- 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.
- 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.
- 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.
- 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.
Claims (12)
1. Gemeinsam benutzten Speicher duplizierendes Verfahren
zur Verwendung in einem Computersystem mit:
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; und
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;
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:
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);
Definieren der Existenz einer Duplexkonfiguration des
ersten, gemeinsam benutzten Speichermoduls (12) für jeden der
partiell gemeinsam benutzten Speicherräume (300); und
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:
Mittel (44) zum Ändern der Duplexkonfiguration gemäß
einer Anweisung der zentralen Verarbeitungseinheit (18) auf der
Grundlage von Software.
2. Gemeinsam benutzten Speicher duplizierendes Verfahren
nach Anspruch 1, worin das spezifische Bit ein
niedrigstwertiges Bit ist.
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.
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.
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.
6. Gemeinsam benutzten Speicher duplizierendes Verfahren
nach Anspruch 1, worin
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; und
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.
7. Gemeinsam benutzten Speicher duplizierendes Verfahren
nach Anspruch 1, worin
die Verbindungseinheit (22) in dem Prozeßmodul (10)
Hardware zum Durchführen eines duplizierenden Schreibens gemäß
der Spezifikation einer Duplexkonfiguration aufweist:
Programm-Modus-Zugriff-Steuermittel (32) zum Zugreifen
auf das gemeinsam benutzte Speichermodul (12) in Abhängigkeit
von einer absoluten Adresse der zentralen
Verarbeitungseinheit (18); und
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.
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.
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.
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.
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.
12. Gemeinsam benutzten Speicher duplizierendes Verfahren
nach Anspruch 1, worin das Computersystem aufweist
mehrere Systembusse (16); und
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.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP24820390A JP3246736B2 (ja) | 1990-09-18 | 1990-09-18 | 計算機システム |
JP02248204A JP3112280B2 (ja) | 1990-09-18 | 1990-09-18 | 計算機システム |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69131840D1 DE69131840D1 (de) | 2000-01-13 |
DE69131840T2 true DE69131840T2 (de) | 2000-04-20 |
Family
ID=26538659
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69129960T Expired - Fee Related DE69129960T2 (de) | 1990-09-18 | 1991-09-17 | System zur Gestaltung eines geteilten Speichers |
DE69131840T Expired - Fee Related DE69131840T2 (de) | 1990-09-18 | 1991-09-17 | Verfahren zur Vervielfältigung eines geteilten Speichers |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69129960T Expired - Fee Related DE69129960T2 (de) | 1990-09-18 | 1991-09-17 | System zur Gestaltung eines geteilten Speichers |
Country Status (3)
Country | Link |
---|---|
US (2) | US5963976A (de) |
EP (2) | EP0809185B1 (de) |
DE (2) | DE69129960T2 (de) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1997011426A1 (en) | 1995-09-18 | 1997-03-27 | Cyberstorage Systems, Inc. | Universal storage management system |
KR100258079B1 (ko) * | 1997-12-17 | 2000-06-01 | 이계철 | 밀결합 결함 허용 시스템에서 메모리 버스 확장에 의한 동시 쓰기 이중화 장치 |
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 |
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 |
JPH11259372A (ja) * | 1998-03-09 | 1999-09-24 | Fujitsu Ltd | 二重化メモリ制御装置 |
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 |
US7539747B2 (en) | 2001-03-14 | 2009-05-26 | Microsoft Corporation | Schema-based context service |
US7024662B2 (en) | 2001-03-14 | 2006-04-04 | Microsoft Corporation | Executing dynamically assigned functions while providing services |
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 (ja) * | 2006-12-11 | 2012-08-15 | 富士通株式会社 | ネットワーク管理システム、ネットワーク管理プログラムおよびネットワーク管理方法 |
JP2009023118A (ja) * | 2007-07-17 | 2009-02-05 | Canon Inc | インクジェット記録ヘッドのワイピング方法 |
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)
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 |
JPS52123137A (en) * | 1976-04-09 | 1977-10-17 | Hitachi Ltd | Duplication memory control unit |
JPS52123127A (en) * | 1976-04-09 | 1977-10-17 | Toshiba Corp | Color videoboard 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 (ja) * | 1981-10-05 | 1983-04-07 | Yokogawa Hokushin Electric Corp | スプリツト形プロセス制御システム |
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 (ja) * | 1984-01-27 | 1985-09-07 | Nippon Telegr & Teleph Corp <Ntt> | マルチプロセツサのメモリ方式 |
JPS60225264A (ja) * | 1984-04-24 | 1985-11-09 | Hitachi Ltd | 共有二重化メモリ制御方式 |
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 (ja) * | 1984-11-30 | 1986-06-20 | Nec Corp | メモリ制御装置 |
JPS61165170A (ja) * | 1984-12-19 | 1986-07-25 | Fujitsu Ltd | バス制御方式 |
JPS61195444A (ja) * | 1985-02-26 | 1986-08-29 | Toshiba Corp | コンピユ−タシステム |
JPS61255451A (ja) * | 1985-05-07 | 1986-11-13 | Mitsubishi Electric Corp | デ−タ処理装置 |
JPH0625987B2 (ja) * | 1985-10-31 | 1994-04-06 | 株式会社東芝 | 複合計算機システム |
JPS62179044A (ja) * | 1986-01-31 | 1987-08-06 | Toshiba Corp | 複合計算機システム |
DE3786583T2 (de) * | 1986-03-12 | 1993-12-02 | Hitachi Ltd | Prozessor. |
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 (ja) * | 1986-12-15 | 1988-06-22 | Nec Corp | 記憶装置 |
JPH0771088B2 (ja) * | 1987-04-06 | 1995-07-31 | 古河電気工業株式会社 | 多重伝送方式 |
CH675781A5 (de) * | 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 (ja) * | 1987-12-24 | 2000-07-17 | 富士通株式会社 | 記憶制御装置 |
JPH02166535A (ja) * | 1988-12-21 | 1990-06-27 | Fujitsu Ltd | 共通メモリを備えるプロセッサシステム |
US5210847A (en) * | 1989-05-19 | 1993-05-11 | Compaq Computer Corporation | Noncacheable address random access memory |
DE69028517D1 (de) * | 1990-05-11 | 1996-10-17 | Ibm | Verfahren und Gerät zur Ableitung des Zustandes einer gespiegelten Einheit bei Reinitialisierung eines Systems |
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 |
-
1991
- 1991-09-17 EP EP97113654A patent/EP0809185B1/de not_active Expired - Lifetime
- 1991-09-17 EP EP91308453A patent/EP0476962B1/de not_active Expired - Lifetime
- 1991-09-17 DE DE69129960T patent/DE69129960T2/de not_active Expired - Fee Related
- 1991-09-17 DE DE69131840T patent/DE69131840T2/de not_active Expired - Fee Related
-
1995
- 1995-04-21 US US08/426,186 patent/US5963976A/en not_active Expired - Fee Related
-
1997
- 1997-10-20 US US08/954,594 patent/US5890218A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0476962A2 (de) | 1992-03-25 |
EP0809185A1 (de) | 1997-11-26 |
EP0476962B1 (de) | 1998-08-12 |
DE69129960T2 (de) | 1998-12-24 |
DE69131840D1 (de) | 2000-01-13 |
DE69129960D1 (de) | 1998-09-17 |
EP0809185B1 (de) | 1999-12-08 |
EP0476962A3 (de) | 1995-03-01 |
US5890218A (en) | 1999-03-30 |
US5963976A (en) | 1999-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69131840T2 (de) | Verfahren zur Vervielfältigung eines geteilten Speichers | |
DE69033679T2 (de) | Datenübertragungsadaptervorrichtung | |
DE69329904T2 (de) | Echtzeitverarbeitungssystem | |
DE69130946T2 (de) | Verfahren zur ausschliesslichen steuerung für einen gemeinsamen speicher | |
DE3750938T2 (de) | Multiprozessorsystem. | |
DE3689226T2 (de) | Multiprozessorsystem mit multihierarchischen Ebenen. | |
DE2856483C2 (de) | ||
DE69022709T2 (de) | Synchronisationsbefehl für Mehrprozessornetz. | |
DE4221278C2 (de) | Busgekoppeltes Mehrrechnersystem | |
DE69223304T2 (de) | Arbitrierungsverriegelungverfahren und -vorrichtung für einen entfernten Bus | |
DE69708933T2 (de) | Adressenuebersetzung in rechnerbusbrueckegeraeten | |
DE4208924A1 (de) | Verfahren zur kommunikation zwischen prozessoren und parallelverarbeitungscomputer hierfuer | |
CH656729A5 (de) | Schnittstellenschaltungsanordnung zur verbindung eines prozessors mit einem nachrichtenkanal. | |
DE69129840T2 (de) | Nachrichtensteuerungsverfahren für ein datenkommunikationssystem | |
DE3485980T2 (de) | Datenverarbeitungsapparat zur verbindung mit einem gemeinsamen uebertragungsbus in einem datenverarbeitungssystem. | |
CH615521A5 (de) | ||
DE3502147A1 (de) | Datenverarbeitungssystem mit verbesserter pufferspeichersteuerung | |
EP0739509B1 (de) | Anordnung mit master- und slave-einheiten | |
DE69508034T2 (de) | Fehlererkennungs-System und -Verfahren für gespiegelten Speicher zwischen doppelten Plattenspeichersteuerungen | |
DE3854770T2 (de) | Busadapter für digitales Rechensystem | |
DE3142504A1 (de) | Mehrfachplattenspeicher-uebertragungssystem | |
DE69817852T2 (de) | Speicherschutzsystem für ein multitaskingsystem | |
DE69129841T2 (de) | Nachrichtensteuerungssystem in einem datenkommunikationssystem | |
EP0265636A1 (de) | Multiprozessor mit mehreren mit Cache-Speichern ausgerüsteten Prozessoren und einem gemeinsamen Speicher | |
DE10306285A1 (de) | Mikrocomputersystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |