DE3502147C2 - - Google Patents

Info

Publication number
DE3502147C2
DE3502147C2 DE3502147A DE3502147A DE3502147C2 DE 3502147 C2 DE3502147 C2 DE 3502147C2 DE 3502147 A DE3502147 A DE 3502147A DE 3502147 A DE3502147 A DE 3502147A DE 3502147 C2 DE3502147 C2 DE 3502147C2
Authority
DE
Germany
Prior art keywords
memory
data
signal
read
address
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
Application number
DE3502147A
Other languages
English (en)
Other versions
DE3502147A1 (de
Inventor
Tadahiko Sagamihara Kanagawa Jp Nishimukai
Atsushi Koganei Tokio/Tokyo Jp Hasegawa
Masaru Hachioji Tokio/Tokyo Jp Matsumura
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Microcomputer System Ltd
Hitachi Ltd
Original Assignee
Hitachi Ltd
Hitachi Microcomputer Engineering Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP59008572A external-priority patent/JPH0630074B2/ja
Priority claimed from JP59110764A external-priority patent/JPH06100984B2/ja
Application filed by Hitachi Ltd, Hitachi Microcomputer Engineering Ltd filed Critical Hitachi Ltd
Publication of DE3502147A1 publication Critical patent/DE3502147A1/de
Application granted granted Critical
Publication of DE3502147C2 publication Critical patent/DE3502147C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass

Description

Die Erfindung betrifft ein Datenverarbeitungssystem mit Pufferspeicher gemäß dem Oberbegriff des Anspruchs 1. Es ist insbesondere für Mikroprozessoren, die ein auf einer Speichertabelle beruhendes Ein/Ausgabe-System aufweisen und für einen gemeinsamen Speicher aufweisende Multiprozessorsysteme geeignet.
Ein Datenverarbeitungssystem mit Puffer-(Cache-)Speicher gemäß dem Oberbegriff des Anspruchs 1 ist aus der US-PS 44 10 944 bekannt.
Zunächst wird der Stand der Technik allgemein anhand der Fig. 1 bis 4 erläutert. Zur Steuerung der Eingabe/Ausgabeeinrichtung eines Mikrocomputers wurde bislang in weitem Maße ein E/A-System aufgrund einer gespeicherten Tabelle verwendet. Durch den Zugriff zu einem Eingabe/Ausgabe-Steuerregister, das im selben Adreßraum wie der Arbeitsspeicher liegt, entfallen besondere Ein/Ausgabebefehle zur Steuerung der Ein/Ausgabeeinrichtungen.
Ein Blockschaltbild eines solchen Speichertabellen-E/A-Systems ist in Fig. 1 dargestellt, in der ein Prozessor 1 einen Arbeitsspeicher 2 und Ein/Ausgabesteuerschaltungen 3 und 5 für entsprechende Eingabe/Ausgabeeinrichtungen 4 und 6 über einen Systembus 100 steuert. Dem Hauptspeicher 2 und den Eingabe/Ausgabesteuerschaltungen 3 und 5 sind jeweils eigene Adressen zugeordnet. In nicht gezeigten Steuerregistern der Eingabe/Ausgabesteuerschaltungen 3 und 5 gespeicherte Werte werden vom Prozessor 1 erneuert, und die Eingabe/Ausgabeeinrichtungen 4 und 6 werden aufgrund der in den Steuerregistern stehenden neuen Werte gesteuert. Außerdem erneuern die Eingabe/Ausgabeeinrichtungen 4 und 6, wenn deren eigene Zustände sich ändern, die in den (nicht gezeigten) Zustandsregistern in den Eingabe/Ausgabesteuerschaltungen 3 und 5 gespeicherte Werte. Wenn auf einen Speicherbefehl die Inhalte des Arbeitsspeichers 2 zu erneuern sind, legt der Prozessor 1 eine dem Arbeitsspeicher 2 zugeteilte Schreibadresse, die zu schreibenden Daten und einen Schreibbefehl auf den Systembus 100. Wenn die Inhalte des Arbeitsspeichers 2 entsprechend einem Ladebefehl auszulesen sind, wird eine dem Arbeitsspeicher 2 zugeteilte Leseadresse und ein Lesebefehl auf den Systembus 100 gelegt, und die vom Arbeitsspeicher 2 dem Systembus 100 übergebenen Daten vom Prozessor 1 als Lesedaten empfangen. Die Eingabe/Ausgabeeinrichtung 4 beginnt ihren Betrieb, sobald ein Startbild in einem (nicht gezeigten) Steuerregister in der Eingabe/Ausgabesteuerschaltung 3 auf 1 gesetzt wird. Beispielsweise beginnt die Eingabe/Ausgabeeinrichtung 4 zu arbeiten, wenn der Speicherbefehl für das Steuerregister auszuführen ist und eine dem Steuerregister eigene Adresse als Schreibadresse des Speicherbefehls verwendet wird. Andererseits wird, um das Ende der Operation der Eingabe/Ausgabeeinrichtung 4 zu erfassen, das (nicht gezeigte) Statusregister der Eingabe/Ausgabesteuerschaltung 3 mittels des obengenannten Lesebefehls gelesen, und das Betriebsendebit des Statusregisters geprüft, ob es im Ein- oder Auszustand ist. Wenn das Betriebsendebit eingeschaltet ist, werden weitere Bits des Statusregisters geprüft, um die Endebedingung wie ein normales Ende oder ein unnormales Ende zu erfassen. Mittels des obengenannten Speichertabellen-E/A-Systems (englisch: "memory mapped I/O system") kann die Eingabe/Ausgabeeinrichtung durch gewöhnliche Befehle ohne besondere Eingabe/Ausgabebefehle gesteuert werden, wodurch sich unter anderem der Adreßraum flexibler einteilen läßt.
Häufig enthält der Mikroprozessor zur Leistungserhöhung einen cache (Pufferspeicher). Falls jedoch ein mit einem Pufferspeicher ausgerüstetes System das obengenannte Speichertabellen-E/A-System enthält, ergibt sich ein anhand der Fig. 2 erläutertes Problem, die ein Blockschaltbild eines mit einem Pufferspeicher ausgerüsteten Speichertabellen-E/A-System zeigt.
In Fig. 2 besteht der Prozessor 1 aus einer Zentralverarbeitungseinheit (CPU) 10, die Befehle ausführt und einem Pufferspeicher 11, der Adressen für den Zugriff zum Arbeitsspeicher 2 sowie Daten enthält, die in den von den Adressen angegebenen Bereichen des Arbeitsspeichers gespeichert sind. Falls die CPU 10 nun einen Zugriff zu den in Bereichen des Arbeitsspeichers 2 gespeicherten Daten, um Befehle oder Daten auszulesen, anfordert, prüft sie zuerst den Pufferspeicher 11. Wenn die gewünschten Daten im Pufferspeicher 11 gefunden wurden, werden diese der CPU 10 zugesandt, wodurch das Daten- oder Befehlsauslesen beendet ist. Wenn jedoch die Daten nicht im Pufferspeicher 11 gefunden wurden, werden diese aus dem Arbeitsspeicher 2 über den Systembus 100 ausgelesen. Die ausgelesenen Daten werden der CPU 10 übertragen und gleichzeitig zusammen mit ihren Leseadressen im Pufferspeicher 11 gespeichert. Wenn die CPU 10 in den Arbeitsspeicher 2 Daten einschreiben will, werden sie zusammen mit den von der CPU 10 erzeugten Schreibadressen über den Systembus 100 dem Arbeitsspeicher 2 zugesendet, und die entsprechenden Schreibdaten in den Arbeitsspeicher 2 eingeschrieben. Gleichzeitig werden die Schreibdaten und die Schreibadressen auch im Pufferspeicher 11 gespeichert.
Der Pufferspeicher 11 hat eine höhere Zugriffsgeschwindigkeit als der Arbeitsspeicher 2. Deshalb kann, da die aus dem Arbeitsspeicher 2 ausgelesenen oder in diesen eingeschriebenen Daten auch im Pufferspeicher 11 gespeichert sind, die Zugriffszeit zu diesen Daten, wenn ein erneuter Zugriff zu diesen Daten erfolgt, verringert werden, da diese aus dem Pufferspeicher 11 erhältlich sind.
Die Erfinder stellten jedoch ein beim Zugriff zum Statusregister der Eingabe/Ausgabesteuerschaltung 3 oder 5 des obenbeschriebenen Systemtyps entstehendes Problem fest, das nachstehend beschrieben wird.
Es sei angenommen, daß der Prozessor 1 ein Programm ausführt, das das (nicht gezeigte) Statusregister prüft und auf das Ende der Operation der Eingabe/Ausgabeeinrichtung 4 wartet. Sowie die CPU 10 zum Statusregister der Eingabe/Ausgabesteuerschaltung 3 zugreift, wird der im Statusregister gespeicherte Wert der CPU 10 zugesendet und auch im Pufferspeicher 11 abgespeichert. Die CPU 10 prüft das Endebit des Statusregisters. Wenn das Endebit im Ein-Zustand ist, soll der Betrieb mit den nächsten Programmbefehlen fortgesetzt werden. Wenn das Endebit im Aus-Zustand ist, soll das Statusregister wiederholt gelesen werden und das Endebit wiederholt geprüft werden. Wenn ein Statusregister-Lesebefehl zum zweiten oder wiederholten Male ausgeführt wird, wird jedoch der im Pufferspeicher 11 gespeicherte Wert als Wert des Statusregisters der CPU 10 zugesendet. Deshalb kann, auch wenn die Eingabe/Ausgabeoperation der Eingabe/Ausgabeeinrichtung 4 beendet ist und das Endebit des Statusregisters in der Eingabe/Ausgabesteuerschaltung 3 eingeschaltet ist, der Prozessor 1 diesen Sachverhalt nicht erfassen, da er ein altes, im Pufferspeicher 11 gespeichertes Datum ansieht. Die Erfinder bemerkten ebenfalls, daß sich ein weiteres Problem ergab, wenn die Inhalte des Statusregisters ausgelesen werden sollten und an deren Stelle die Werte des Steuerregisters ausgelesen wurden. Dies tritt dann auf, wenn der Steuerregisterbereich und der Statusregisterbereich unterschiedlichen Bits desselben Registers mit derselben Adresse zugeordnet sind oder, wenn das Steuerregister und das Statusregister derselben Adresse zugeordnet sind und zum Steuerregister beim Dateneinschreiben und zum Statusregister beim Datenauslesen zugegriffen wird. Dies rührt daher, daß der im Steuerregister eingeschriebene Wert im Pufferspeicher 11 gespeichert ist und, wenn ein Lesebefehl zum Lesen des Statusregisters ausgeführt wird, die im Pufferspeicher 11 für das Steuerregister gespeicherten Daten ausgelesen werden.
Nachstehend wird ein Problem beschrieben, das sich ergibt, wenn eine Nachricht zwischen dem Pufferspeicher und mehreren zur Verteilung der Last miteinander verbundenen Prozessoren eines Multiprozessorsystems ausgetauscht wird.
Ein System, bei dem die Verarbeitung durch Übertragung von Nachrichten zwischen zwei miteinander verbundenen Prozessoren ausführt, wird nachstehend anhand von in Fig. 3 und 4 dargestellten Blockschaltbildern beschrieben.
Fig. 3 zeigt ein System, das aus Prozessoren 1 und 7, Ortsspeichern 2 und 2′, die nur jeweils für den Prozessor 1 bzw. 7 vorgesehen sind und einen zur Übertragung von Nachrichten über die Busleitungen 100 und 101 dienenden Hauptspeicher 8, besteht. Gewöhnlich führt jeder der Prozessoren 1 und 7 eine Verarbeitung mit Hilfe seines eigenen Ortsspeichers 2 bzw. 2′ aus. Wenn der Prozessor 1 jedoch den Prozessor 7 zur Ausführung einer Verarbeitung anfordert, schreibt der Prozessor 1 die auszuführende Verarbeitung und die zur Verarbeitung nötigen Daten in vorbestimmte Bereiche des Hauptspeichers 8 und unterbricht dann den Prozessor 7. Auf die Unterbrechung hin liest der Prozessor 7 die Inhalte des Speichers 8 und führt die angeforderte Verarbeitung aus. Wenn die Verarbeitung beendet ist, schreibt der Prozessor 7 die Ergebnisse in den Speicher 8, um sie dem Prozessor 1 mitzuteilen und unterbricht den Prozessor 1. Dann nimmt der Prozessor 7 die vorangehende Verarbeitung wieder auf. Nachdem der Prozessor 11 vom Prozessor 7 unterbrochen wurde, holt der Prozessor 1 die Verarbeitungsergebnisse aus dem Speicher 8 und setzt die Verarbeitung fort. Wenn die Verarbeitung, für die der Prozessor 7 angefordert wurde, ausgeführt ist, führt der Prozessor 1 andere Verarbeitungen mittels des Ortsspeichers 2 aus.
Fig. 4 zeigt ein Blockschaltbild eines Systems, bei dem die zwei Prozessoren 1 und 7 mit einem gemeinsamen Systembus 100 verbunden sind und gemeinsam den Hauptspeicher 2 verwenden. Diese Prozessoren greifen zum Hauptspeicher 2 unabhängig voneinander zu. Wenn jedoch der eine Prozessor zum Hauptspeicher 2 zugreift, wird der andere Prozessor so gesteuert, daß seine Zugriffsanforderung im Wartezustand ist. Bei diesem System tauschen die zwei Prozessoren Nachrichten aus, in dem sie einen besonderen Bereich des Hauptspeichers 2 verwenden. Das in Fig. 4 dargestellte System ist somit dasselbe wie das in Fig. 3 dargestellte, mit der Ausnahme, daß der für das Einschreiben der Nachricht verwendete Bereich ein besonderer Bereich des Hauptspeichers 2 ist.
Falls bei den beiden Systemen gemäß Fig. 3 und Fig. 4 die Prozessoren 1 und 7 allgemeine Pufferspeicher 11 und 71 aufweisen, ergibt sich folgendes Problem: Wenn beispielsweise der Prozessor 1 zur Übertragung einer Nachricht die Daten in einen Bereich einschreibt, werden, sowie die Daten eingeschrieben werden, die Werte im Pufferspeicher 11, der zum Prozessor 1 gehört, erneuert. Der Wert derselben Adresse wird jedoch nicht gleichzeitig, wenn sie im Pufferspeicher 71 des Prozessors 7 steht, erneuert. Demgemäß werden, wenn der Prozessor 7 zum Nachrichtenbereich zugreift, die Daten des Pufferspeichers 71 ausgelesen und der Prozessor 7 empfängt nicht die richtige Nachricht des Prozessors 1.
Die ein Datenverarbeitungssystem gemäß dem Oberbegriff des Anspruchs 1 offenbarende US-PS 44 10 944 verwendet, um die Datenkoinzidenz zwischen dem Inhalt eines einem jeweiligen Prozessor zugeordneten Pufferspeichers (Cache-Speicher) und dem Inhalt von durch mehrere Prozessoren gemeinsam benutzten Speicherbereichen aufrechtzuerhalten, zwischen diesen und den Cache-Speichern ausgetauschte Schlüsselworte jeweils für Schreib- und Leseoperationen der einzelnen Prozessoren. Die Schlüsselworte werden jeweils mittels einer Vergleichslogik auf Koinzidenz geprüft und bei vorliegender Nichtkoinzidenz wird ein Auffrischvorgang sowohl für den einem Prozessor zugeordneten als auch für den einem anderen Prozessor zugeordneten Cache-Speicher einschließlich der zum Vergleich dienenden Schlüsselworte eingeleitet.
In jedem gemeinsamen Speicher ist die genannte Schlüsselwort-Vergleichslogik einzeln für jeden angeschlossenen Prozessor, der zum gemeinsamen Speicher zugreift, vorgesehen. Die daraus sich ergebende, bekannte Lösung, ist zwar wirkungsvoll zur Aufrechterhaltung der Datenkoinzidenz, jedoch sehr aufwendig. Eine Lösung zur Aufrechterhaltung der Datenkoinzidenz für ein nur einen einzigen Prozessor aufweisendes Datenverarbeitungssystem mit dem genannten Speichertabellen-E/A-System ist in der US-PS 44 10 944 nicht offenbart.
Es ist Aufgabe der Erfindung, ein Datenverarbeitungssystem, wie ein Speichertabellen-E/A-System oder ein Multiprozessorsystem mit allgemein verwendbaren Mikroprozessoren zu ermöglichen, bei denen in vereinfachter Weise ein Datenzugriff ohne Inkonsistenz, auch wenn die Mikroprozessoren Cache-Speicher zur Erhöhung der Leistung aufweisen, bei gleichzeitiger Verringerung der Stiftzahl des Mikroprozessorchips möglich ist.
Die obige Aufgabe wird bei einem Datenverarbeitungssystem mit Pufferspeicher gemäß dem Oberbegriff des Anspruchs 1 erfindungsgemäß durch die in seinem Kennzeichen angegebenen Merkmale gelöst.
Die Unteransprüche 2 bis 12 kennzeichnen vorteilhafte Weiterbildungen davon.
Die Erfindung wird im folgenden anhand der Zeichnungen näher beschrieben. Es zeigen:
Fig. 5 ein Blockschaltbild eines Ausführungsbeispiels gemäß der Erfindung.
Fig. 6 ein Schaltbild eines in Fig. 5 gezeigten Cache-Speichers;
Fig. 7 ein Schaltbild einer Cache-Speichersteuerschaltung aus Fig. 5;
Fig. 8 ein Schaltbild einer in Fig. 5 dargestellten Lese/Schreibsteuerschaltung;
Fig. 9 ein Schaltbild einer Eingabe/Ausgabesteuerschaltung aus Fig. 5;
Fig. 10 ein Schaltbild einer gemeinsamen Speichersteuerschaltung aus Fig. 5;
Fig. 11 ein Schaltbild einer Arbeitsspeichersteuerschaltung aus Fig. 5;
Fig. 12 ein Schaltbild einer Speicherverwaltungseinheit aus Fig. 5;
Fig. 13 eine im System von Fig. 5 verwendeten Adreßtabelle; und
Fig. 14 ein Schaltbild eines weiteren Ausführungsbeispiels gemäß der Erfindung.
Im folgenden wird ein erstes Ausführungsbeispiel gemäß der Erfindung anhand der Fig. 5 bis 13 erläutert.
Fig. 5 zeigt ein Blockschaltbild der Struktur eines erfindungsgemäßen Ausführungsbeispiels, und die Fig. 6 bis 12 zeigen Schaltbilder der Blöcke in Fig. 5.
Das in Fig. 5 dargestellte Ausführungsbeispiel der Erfindung enthält einen Mikroprozessor 1 (weiterhin als MPU bezeichnet), eine Speicherverwaltungseinheit 9 (weiterhin als MMU bezeichnet), einen Arbeitsspeicher 2, einen gemeinsamen Speicher 8, eine Eingabe/Ausgabesteuerschaltung 3, eine Eingabe/AusgabeEinrichtung 4, einen Systembus 100, einen weiteren Mikroprozessor 1 A (weiterhin als MPUX bezeichnet), der mit dem Systembus verbunden ist und eine zugehörige Speicherverwaltungseinheit 9 A aufweist.
Die MPU 1 besteht aus einer Zentralverarbeitungseinheit (CPU) 10, die Befehle ausführt, einem cache-Speicher (Pufferspeicher) 11, einer cache-Speichersteuerschaltung 13, eine Lese/Schreibsteuerschaltung 14 und einem ODER-Glied 15. Die MPU 1 ist mit der MMU 9 über eine Adreßsignalleitung 116, eine Datensignalleitung 122, eine Lesesignalleitung 125, eine Schreibsignalleitung 110, eine Freigabe(PURGE)-Signalleitung 126, eine ACK-Signalleitung 128 und eine RMA-Signalleitung 127 verbunden und außerdem mit dem Systembus 100 durch die Datensignalleitung 122, die Lesesignalleitung 125, die Schreibsignalleitung 110, die ACK-Signalleitung 128 und die RMA-Signalleitung 127 verbunden. Die ACK-Signalleitung gibt das Ende einer Operation an, und die RMA-Signalleitung gibt an, ob die Daten in den cache-Speicher 11 geschrieben werden können oder nicht.
Die MMU, die einen Adreßzuordner für ein virtuelles Speichersystem darstellt, setzt eine von der CPU 10 auf eine Leitung 116 gelegte logische Adresse auf der Basis einer Adreßzuordnungstabelle 900, die logische und physikalische Adreßtabellen 901 und 902 enthält, in eine physikalische Adresse um und sendet diese an den Systembus 100 über eine Adreßsignalleitung 129.
Der Arbeitsspeicher 2 weist eine Arbeitsspeichersteuerschaltung 21 und eine Arbeitsspeichereinheit 22 auf und ist mit dem Systembus 100 über eine Datensignalleitung 152, eine Adreßsignalleitung 159, eine Lesesignalleitung 155, eine Schreibsignalleitung 154 und eine ACK-Signalleitung 158 verbunden. Es muß herausgestellt werden, daß die RMA-Signalleitung nicht mit dem Arbeitsspeicher 2 verbunden ist. Der Arbeitsspeicher 2 speichert Befehle und Daten, die von der MPU 1 zu verarbeiten sind.
Der gemeinsame Speicher 8 besteht aus einer Steuerschaltung 81 und einer Speichereinheit 82 und ist mit dem Systembus 100 durch eine Datensignalleitung 142, eine Adreßsignalleitung 149, eine Lesesignalleitung 145, eine Schreibsignalleitung 144, eine ACK-Signalleitung 148 und eine RMA-Signalleitung 147 verbunden. Der gemeinsame Speicher 8 speichert Daten für den Verkehr zwischen der MPU 1 und der MPUX 1 A, sowie Befehle und Daten, die von der MPUX 1 A zu verarbeiten sind.
Die Eingabe/Ausgabesteuerschaltung 3 ist mit dem Systembus 100 durch eine Datensignalleitung 132, eine Adreßsignalleitung 139, eine Lesesignalleitung 135, eine Schreibsignalleitung 134, eine ACK-Signalleitung 138 und eine RMA-Signalleitung 137 verbunden und steuert die Eingabe/Ausgabeeinrichtung 4 über eine Signalleitung 130, um die Eingabe/Ausgabedaten, die von der Eingabe/Ausgabeeinrichtung 4 abgegeben werden bzw. dieser einzugeben sind, zu übertragen.
Im Systembus 100 werden alle Leitungen für dieselben Signale, wie die ACK-Signalleitung 138, 148, 158 und die RMA-Signalleitungen 137, 147 von den verschiedenen Einrichtungen jeweils mittels einer verdrahteten Oder-(wired OR)-Verknüpfung verbunden. Die mit der MPU 1 verbundenen Leitungen 128 oder 127 für das ACK-Signal bzw. das RMA-Signal werden freigegeben, wenn das ACK-Signal bzw. das RMA-Signal von einer der Einrichtungen MMU 9, Arbeitsspeicher 2, gemeinsamen Speicher 8 oder der Eingabe/Ausgabesteuerschaltung 3 eingeschaltet werden. Umgekehrt wird die ACK-Signalleitung 128 oder die RMA-Signalleitung 127 ausgeschaltet, wenn sämtliche ACK-Signale bzw. RMA-Signale der obengenannten Einrichtungen ausgeschaltet sind.
In Fig. 13 ist eine im System von Fig. 5 verwendete Adreßtabelle dargestellt. Dem Arbeitsspeicher 2 sind Adressen von 0 bis A 1-1 und dem gemeinsamen Speicher 8 Adressen von A 1 bis A 3-1 zugeteilt. Der Adreßbereich von A 2-A 3-1 innerhalb des gemeinsamen Speichers 8 ist ein Bereich für den Nachrichtenverkehr zwischen der MPU 1 und der MPUX 1 A. Das Statusregister 67, das Steuerregister 75 und das Datenregister 77 sind jeweils mit den Adressen A 4, A 5 und A 6 versehen. Die logische Adreßtabelle 910 und die physikalische Adreßtabelle 902 der Adreßzuordnungstabelle 90 in der MMU 9 erhalten jeweils Adressen A 7 bis A 8-1 und A 8 bis A 9-1.
Nachfolgend wird das Hauptprinzip des Speichertabellen-E/A-Systems im Falle einer Eingabe/Ausgabeeinrichtung 4 eines Kartenlesers beschrieben.
Beim Lesen von Kartendaten schreibt die Eingabe/Ausgabesteuerschaltung 3 Daten, die einen Unterbrechungsfaktor kennzeichnen und unterbricht die MPU 1. Zur Vereinfachung ist die Leitung, die das Unterbrechungsssignal der MPU 1 liefert, in Fig. 5 nicht eingezeichnet. Die MPU 1 startet ein Programm, das das Statusregister 67 liest und den Unterbrechungsfaktor untersucht. Sobald die MPU 1 weiß, daß sie wegen gelesener Kartendaten unterbrochen wurde, führt sie ein Programm aus, das die Kartendaten über das Datenregister 77 liest und sie in den Arbeitsspeicher 2 einspeichert. Nachdem alle Kartendaten in den Arbeitsspeicher 2 gespeichert sind, führt die MPU 1 einen Befehl aus, der ein Lese-OK-Bit in das Steuerregister 75 schreibt, um das Lesen der nächsten Karte durch den Kartenleser zu ermöglichen. Dann wird die oben dargestellte Operation wiederholt. Es muß hervorgehoben werden, daß das Auslesen des Statusregisters 67 und das Schreiben in das Steuerregister 75 in der ganz gleichen Weise wie das Auslesen oder Einschreiben des Arbeitsspeichers 2 erfolgt, jedoch mit unterschiedlich zugeordneten Adressen.
Im folgenden wird die Funktion des in Fig. 5 dargestellten Systems erläutert. Nach Einschalten der Stromversorgung und nachdem die Schaltung in Fig. 5 zurückgesetzt ist, setzt die CPU 10 eine Rücksetzsignalleitung 113 ein und teilt der cache-Steuerschaltung 13 den Befehl mit, den cache-Speicher 11 zu löschen. Die Steuerschaltung 13 schaltet die Löschsignalleitung 117 ein und macht damit alle im cache-Speicher 11 gespeicherten Daten ungültig.
Zum Datenlesen erzeugt die CPU 10 Adressen auf der Adreßsignalleitung 116 und schaltet die Leseanforderungssignalleitung 111 ein. Die Daten werden auf die Datenleitung 115 entweder vom cache-Speicher 11, dem Arbeitsspeicher 2, dem gemeinsamen Speicher 8 oder der Eingabe/Ausgabesteuerschaltung 3 ausgelesen. Wie nachstehend genauer erläutert, wird die Signalleitung 112 nach dem Ende des Lese- oder Schreibvorgangs für die Daten eingeschaltet. Auf das Signal 112 hin empfängt die CPU 10 die Daten auf der Leitung 115 als Lesedaten und beendet das Adresssignal auf der Leitung 116. Deshalb wird die Adreßsignalleitung 111 ausgeschaltet und der Lesevorgang ist beendet.
Der cache-Speicher 11 prüft, ob in ihm Daten für die auf der Adresssignalleitung 116 liegende Adresse enthalten sind oder nicht und schaltet die Gültigkeitssignalleitung 121 ein, wenn die Daten enthalten sind, und liest die Daten aus einem im cache-Speicher 11 befindlichen Assoziationsspeicher 16 (Fig. 6) aus und legt sie auf eine innere Leitung 160 (Fig. 6). Dazu parallel schaltet die cache-Steuerschaltung 13 eine Schaltsteuersignalleitung 119 ein, wenn die Signalleitung 111 für die Leseanforderung und die Signalleitung 121 für das Gültigkeitssignal eingeschaltet sind und steuert Schalter 19 (Fig. 6) innerhalb des cache-Speichers 11, so daß die ausgelesenen Daten von dem inneren Assoziativspeicher 16 über die Datensignalleitung 115 mittels des inneren Schalters 19 übertragen werden (Fig. 6).
Inzwischen trifft die Lese-Schreibsteuerschaltung 14, wenn das Leseanforderungssignal auf Leitung 11 und das Gültigkeitssignal auf Leitung 121 eingeschaltet sind, die Entscheidung, daß die Daten aus dem cache-Speicher 11 auszulesen sind und schaltet die Ende-Signalleitung 114 ein, um über das ODER-Glied 15 die Ende-Signalleitung 112 einzuschalten. Damit wird der CPU 10 mitgeteilt, daß die Datenleseoperation beendet ist. Nach Empfang des Endesignals 112 empfängt die CPU 10 die Daten auf der Leitung 115 und beendet die Leseoperation.
Das Gültigkeitssignal 121 bleibt ausgeschaltet, wenn die entsprechenden Daten nicht im cache-Speicher 11 enthalten sind. Wenn das Leseanforderungssignal auf der Leitung 111 ein und das Gültigkeitsbitsignal auf Leitung 121 aus ist, schaltet die Lese/Schreib-Steuerschaltung 14 das Leseanforderungssignal auf Leitung 125 ein und liefert dem Systembus 100 die Leseanfrage, um Daten von außen in die MPU 1 einzulesen. Die von der MPU 1 erzeugte logische Adresse wird durch die MMU 9 in eine physikalische Adresse umgesetzt, die dem Systembus 100 durch die Leitung 129 zugeführt wird. Auf das Adreßsignal und das Leseanforderungssignal auf den Leitungen 159 bzw. 155, die mit dem Systembus 100 verbunden ist, erfaßt die Arbeitsspeichersteuerschaltung 21, ob die Adresse auf der Adreßleitung 159 für den Arbeitsspeicher 2 gilt und wenn dies der Fall ist, das heißt, wenn die Adresse zwischen 0 und A 1-1 liegt, liest die Arbeitsspeichersteuerschaltung 21 die entsprechenden Daten von der Arbeitsspeichereinheit 22, indem sie die Adresse und Steuersignale über Leitungen 900 und 920 überträgt und die Arbeitsspeichereinheit 22 so steuert, daß die von ihr ausgelesenen Daten auf der Leitung 152 als Datensignale erzeugt werden, wonach sie über den Bus 100 auf die Leitung 222 übertragen werden. Nachdem die Daten komplett gelesen sind, schaltet die Arbeitsspeichersteuerschaltung 21 das ACK-Signal auf der Leitung 158 ein, worauf über den Systembus 100 die ACK-Signalleitung 128 den Ein-Zustand annimmt. Da die Arbeitsspeichersteuerschaltung 21 das RMA-Signal nicht erzeugt, bleibt die Leitung 127 für das RMA-Signal ausgeschaltet. Die ACK-Signalleitung 128 ist mit der CPU 10 über das ODER-Glied 15 verbunden und liefert der CPU 10 das Endesignal 112. Zu diesem Zeitpunkt schaltet die cache-Speichersteuerschaltung 13 das Signal auf Leitung 119 entsprechend dem Gültigkeitsbitsignal 121 aus und teilt dem internen Schalter 19 (Fig. 6) des cache-Speichers 11 mit, daß das Datensignal auf Leitung 122 mit dem Datensignal auf Leitung 115 zu verbinden ist, woraufhin die Daten, die aus der Arbeitsspeichereinheit 122 ausgelesen wurden, der CPU 10 übertragen werden. Mit der Bedingung, daß die ACK-Signalleitung 128 eingeschaltet und die RMA-Signalleitung 127 ausgeschaltet ist, schaltet die cache-Speichersteuerschaltung 13 das Schreibfreigabesignal auf Leitung 118 und auf die Abwesenheit des Gültigkeitsbitsignals auf Leitung 118 hin die Signalleitung 120 ein und gibt somit an, daß die gelesenen Daten in einem neuen Eintrag des cache-Speichers 11 zu speichern sind. Auf diese beiden Signale hin löscht der cache-Speicher 11 eines der in ihm bereits gespeicherten Daten und speichert die von der Leitung 115 gelesenen Daten und deren von der CPU 10 auf der Leitung 116 erzeugte Adresse ab. Deshalb werden, falls die Daten unter derselben Adresse zu einem späteren Zeitpunkt angefordert werden, die gerade in den cache-Speicher 11, statt der im Arbeitsspeicher 2 gespeicherten Daten zu ausgelesen. Die Eingabe/Ausgabesteuerschaltung 3 empfängt auch das Leseanforderungssignal auf der Leitung 125 und die Adresse auf der Leitung 129 jeweils über Leitungen 135 und 139, die beide mit dem Systembus 100 verbunden sind. Die Eingabe/Ausgabesteuerung 3 erfaßt, ob das Steuerregister 75, das Datenregister 77 oder das Statusregister 67 in der Eingabe/Ausgabesteuerschaltung 3 aufgrund des Adreßsignals 139 und des Leseanforderungssignals 135 auszulesen sind. Wenn dies der Fall ist, das heißt, wenn die Adresse einen der Werte A 4, A 5 oder A 6 annimmt, werden die Daten im Steuerregister 75 oder im Statusregister 67 der Datensignalleitung 132 übergeben, und die ausgelesenen Daten an die Datensignalleitung 122 über den Bus 100 zusendet. Gleichzeitig schaltet die Eingabe/Ausgabesteuerschaltung 3 das ACK-Signal auf Leitung 138 und das RMA-Signal auf Leitung 137 ein, wodurch jeweils die ACK-Signalleitung 128 und die RMA-Signalleitung 127, die mit den Leitungen 138 und 137 über den Systembus 100 verbunden sind, in den Ein-Zustand gehen. Auch wenn das Leseanforderungssignal auf Leitung 111 ein und das ACK-Signal 128 ein sind, schaltet die cache-Speichersteuerschaltung 13 das Schreibfreigabesignal 118 nicht ein, falls das RMA-Signal auf Leitung 127 ein ist, und die Daten auf der Leitung 122 werden nicht in den cache-Speicher 11 geschrieben. Da das Gültigkeitssignal 121 im Aus-Zustand ist, hält die cache-Speichersteuerschaltung 13 das Schaltersteuersignal 119 ausgeschaltet. Deshalb verbindet der innere Schalter 19 (Fig. 6) des cache-Speichers 11 die Datensignalleitungen 122 und 115 und ermöglicht damit das Auslesen der Daten aus dem Steuerregister 75 oder dem Statusregister 67, die dann der CPU 10 übertragen werden. So wie beim Auslesen aus dem Arbeitsspeicher 2, wird das ACK-Signal 128 zum ODER-Glied 15 übertragen, wodurch die CPU 10 das Ende-Signal 112 erhält.
Dieselbe Operation, wie sie die Eingabe/Ausgabesteuerschaltung 3 ausführt, führt auch die gemeinsame Speichersteuerschaltung 81 aus, die das Adreßsignal 129 und Leseanforderungssignal 125 jeweils über den Bus und die Leitung 149 bzw. den Bus und die Leitung 145 empfängt. Der gemeinsame Speicher 8 ist in zwei Bereiche eingeteilt, das ist ein Adreßbereich von A 2 bis A 3-1 zum Nachrichtenverkehr zwischen der MPU 1 und der MPUX 1 A und ein Bereich der von Adresse A 1 bis A2-1 reicht, um Befehle und Daten zu speichern, die von der MPUX 1 A zu verarbeiten sind. Die MPU 1 greift nur zum Bereich für den Nachrichtenaustausch zu. Wenn die gemeinsame Speichersteuerung 81 aufgrund des Adreßsignals auf der Leitung 149 und des Leseanforderungssignals auf der Leitung 145 erfaßt, das die Daten aus dem Bereich für den Nachrichtenaustausch im gemeinsamen Speicher 82 zu lesen sind, führt die gemeinsame Speichersteuerung 81 die Leseoperation aus, um die auszulesenden Daten auf die Leitung 132 zu legen und schaltet das RMA-Signal auf der Leitung 147 und das ACK-Signal auf der Leitung 148 ein. Wie die Daten des zuvor genannten Steuerregisters und Statusregisters in der Eingabe/Ausgabesteuerschaltung 3 werden deshalb die Daten des im gemeinsamen Speicher 82 befindlichen Nachrichtenaustauschbereichs der CPU 10 zugesendet, jedoch nicht im cache-Speicher 11 der MPU 1 abgespeichert. Falls die MPUX 1 A in derselben Weise aufgebaut ist, wie die MPU 1, kann die MPUX 1 A zu den Daten im Bereich für den Nachrichtenaustausch über den Bus 100 in derselben Weise zugreifen, und die aus dem gemeinsamen Speicher 82 ausgelesenen Daten werden im (nicht gezeigten) cache-Speicher der MPUX 1 A abgespeichert. Andererseits schaltet, wenn die MPUX 1 A zu Daten in einem Bereich, der für die MPUX 1 A Befehle und Daten speichert, zugreift, die gemeinsame Speichersteuerungsschaltung 81 das RMA-Siganl 147 aus. Deshalb schreibt die MPUX 1 A die aus diesem Bereich geholten Daten in ihren (nicht gezeigten) cache-Speicher, um diese in derselben Weise, wie die MPU 1 die aus dem Arbeitsspeicher geholten Daten verarbeitet, zu verarbeiten.
Diese Steueroperation wird mittels der gemeinsamen Speichersteuerschaltung 81 mit einer Schaltung realisiert, die beurteilt, ob die Adresse auf der Leitung 149 zum Bereich der MPU 1 oder zum Bereich der MPUX gehört.
Deshalb kann in diesem Multiprozessorsystem eine Nachricht ohne Inkonsistenz zwischen dem cache-Speicher 11 und dem gemeinsamen Speicher 82 zu erzeugen, übertragen werden.
Die obige Beschreibung befaßte sich mit einem Multiprozessorsystem, das zwei Prozessoren aufweist. Es ist jedoch deutlich, daß dieselben Steuerfunktion auch wenn drei oder mehr Prozessoren verwendet werden, erzielt werden kann.
Als nächstes wird der Zugriff zu der in der MMU 9 enthaltenen Adreßzuordnungstabelle 900 erläutert. Das Leseanforderungssignal 125 oder das Schreibanforderungssignal 110 sowie die logische Adresse 116 und die Daten 122 werden ebenfalls der MMU 9 zugeführt. Die MMU 9 antwortet auf die Lese- oder Schreibanforderungssignale 125 bzw. 110, wenn die logische Adresse 116 innerhalb des der logischen Adreßtabelle 901 oder der physikalischen Adreßtabelle 902 zugeteilten Adreßbereichs ist, das heißt im Falle der Fig. 13 die Adreßbereiche von A₇ bis A₈-1 oder von A₈ bis A₉-1. In diesem Falle führt die MMU 9 keine Adreßumsetzung aus, sondern liest, wenn das Leseanforderungssignal 125 der MMU 9 zugeführt wird, die Daten einer der zwei Tabellen 901 bzw. 902 über die Leitung 122 aus und erzeugt das ACK-Signal und das RMA-Signal jeweils auf den Leitungen 128 und 127. Das ACK-Signal wird zum ODER-Glied 15 übertragen, das das Ende-Signal 112 erzeugt und der CPU 10 zusendet. Die cache-Speichersteuerschaltung 13 schreibt die Daten auf der Leitung 122 nicht ein, da das Signal RMA der Steuerschaltung 13 eingegeben wurde, wie dies beispielsweise in Verbindung mit dem Datenlesen von der Eingabe/Ausgabesteuerschaltung 3 beschrieben wurde.
Der cache-Speicher 11 wird so gesteuert, daß er keine Daten aus der Tabelle 900 einschreibt. Dies wird aus der nachstehenden Erklärung deutlich. Deshalb bleibt das Gültigkeitsbitsignal 121 ausgeschaltet, auch wenn die Adresse 116 dem cache-Speicher 11 anliegt. Deshalb verbindet der Schalter 19 (Fig. 6) im cache-Speicher 11 die Leitung 115 mit der Leitung 122 und gibt damit die CPU 10 zum Empfangen der aus der Adreßtabelle 90 ausgelesenen Daten frei.
Nachfolgend wird die Operation erläutert, wenn die CPU 10 einen Befehl ausführt, der ein Einschreiben von Daten in den Arbeitsspeicher 2, den gemeinsamen Speicher 8 oder die Eingabe/Ausgabesteuerschaltung 3 erfordert. Um die Daten einzuschreiben, erzeugt die CPU 10 eine Datenschreibadresse auf der Adreßsignalleitung 116, legt die Schreibdaten auf die Datensignalleitung 115 und schaltet das Schreibanforderungssignal auf Leitung 110 ein. Die Daten werden in den cache-Speicher 11 und entweder dem Arbeitsspeicher 2, dem gemeinsamen Speicher 8 oder der Eingabe/Ausgabesteuerschaltung 3 eingeschrieben. Nach dem Ende des Einschreibvorgangs wird das Ende-Signal auf Leitung 112 eingeschaltet, wie dies beim Datenlesen der Fall war, und die CPU 10 beendet die Verwendung des Adreßsignals auf Leitung 116 oder des Datensignals auf Leitung 115 und schaltet außerdem das Schreibanforderungssignal auf Leitung 110 aus.
Als nächstes wird die zum Einschreiben von Daten erforderliche Operation beschrieben. Wenn das Lesesignal 111 nicht eingeschaltet wird, hält die cache-Speichersteuerschaltung 13 das Schaltersteuersignal 119 ausgeschaltet und teilt dem cache-Speicher 11 mit, daß die Datensignalleitungen 115 und 122 zu verbinden sind. Auf diesen Befehl hin werden die Schreibdaten von der CPU 10 zum Systembus 100 über die Leitung 115 und 122 und zur MMU 9 übertragen. Wenn das Schreibanforderungssignal 110 eingeschaltet wird, sendet die Lese/Schreibsteuerschaltung 14 das Schreibanforderungssignal 110 an die MMU 9 und an den Systembus 100. Dann wird die Adresse auf der Adreßsignalleitung 116 durch die MMU 9 umgewandelt und dem Systembus 100 zugesendet. Der Arbeitsspeicher 2 ist mit dem Systembus 100 über die Schreibanforderungssignalleitung 154 verbunden. Auf das Adreßsignal 159 und das Schreibanforderungssignal 154 führt die Arbeitsspeichersteuerschaltung 21 dieselbe Operation wie beim Datenlesen aus, mit der Ausnahme, daß sie die Arbeitsspeichereinheit 22 so steuert, daß die Datensignale 152 an der entsprechenden Adreßstelle der Arbeitsspeichereinheit 22 eingeschrieben werden. Das heißt, daß die Arbeitsspeichersteuerschaltung 21 das ACK-Signal 158 einschaltet, wenn die Datenschreiboperation beendet ist. Deshalb wird das ACK-Signal 128 eingeschaltet, und das Ende-Signal 112 der CPU 10 über das ODER-Glied 15 zugeführt. Das RMA-Signal 127 bleibt ausgeschaltet.
Auch während der Zeit, während der die Daten eingeschrieben werden, prüft der cache-Speicher 11, ob die Daten der logischen Adressen auf der Leitung 116 eingespeichert wurden und erzeugt, falls das Prüfergebnis dies bestätigt, ein Gültigkeitsbitsignal auf Leitung 121. Mit dem Einschalten der ACK-Signalleitung 128 wird die RMA-Signalleitung 127 ausgeschaltet, das Schreibanforderungssignal 110 ist eingeschaltet und die cache-Speichersteuerschaltung 113 schaltet das Schreibanforderungssignal 118 ein, unabhängig von der Anwesenheit des Gültigkeitsbitsignals auf Leitung 121. Wenn das Gültigkeitssignal 121 eingeschaltet ist, schaltet die cache-Speichersteuerschaltung 13 das Signal 120 aus und ersetzt die Daten im cache-Speicher 11 an einer durch die Adresse auf der Leitung 116 gekennzeichneten Stelle durch die Daten auf der Leitung 115. Wenn das Signal 121 ausgeschaltet bleibt, schaltet die cache-Speichersteuerschaltung 13 jedoch das neue Eintragsschreibsignal 120 ein, löscht eines der bereits eingespeicherten Daten und speichert die Schreibadresse auf der Leitung 116 und die Daten auf der Leitung 115 an der Stelle ein, wo die gelöschten Daten gespeichert waren.
Wenn die von der CPU 10 erzeugten Daten in das Steuerregister 75, das Datenregister 77 oder das Statusregister 67 in der Eingabe/Ausgabesteuerschaltung 3 einzuschreiben sind, erfaßt die Eingabe/Ausgabesteuerschaltung 3, ob die Anforderung vom Adreßsignal 139 und das Schreibsignal 134, das von der Leitung 125 über den Bus 110 übertragen wurde, vorhanden sind. Dann schreibt die Eingabe/Ausgabesteuerschaltung 3 das Datensignal 132 in ein gekennzeichnetes Register und schaltet das ACK-Signal 138 und das RMA-Signal 137 ein. Auch wenn das Signal 110 und das ASCK-Signal 128 eingeschaltet ist, schaltet die cache-Speichersteuerschaltung 13 nicht das Schreibfreigabesignal 118 ein, wenn das RMA-Signal 127 eingeschaltet ist. Deshalb werden die Adressen und die Daten des Steuerregisters 75, des Datenregisters 77 oder des Statusregisters 67 in der Eingabe/Ausgabesteuerschaltung 3 nicht in dem cache-Speicher 11 eingeschrieben.
Beim Lesen der Daten vom oder Einschreiben der Daten in das Steuerregister 75, das Datenregister 77 oder das Statusregister 67 in der Eingabe/Ausgabesteuerschaltung 3 prüft der cache-Speicher 11, ob die Daten darin gespeichert sind. Da jedoch von den drei Registern keine Daten gespeichert wurden, bleibt das Gültigkeitsbitsignal 121 immer ausgeschaltet. Wenn Daten auszulesen sind, werden diese von den drei Registern und nicht vom cache-Speicher 11 ausgelesen.
Demgemäß kann das Eingeben und Ausgeben von Daten, auch wenn hier ein cache-Speicher vorgesehen ist, ohne jede Inkonsistenz im Speichertabellen-Eingabe/Ausgabe-System gesteuert werden.
Wenn von der CPU 10 erzeugten Daten in den Bereich der gemeinsamen Speichereinheit 82 zum Nachrichtenverkehr zwischen der MPU 1 und der MPUX 1 A eingeschrieben werden sollen, antwortet die gemeinsame Speichersteuerschaltung 81 auf die Adressen auf der Leitung 149 und die Schreibanforderung auf der Leitung 144, die mit der Leitung 124 für das Schreibanforderungssignal über den Bus 100 verbunden ist und führt eine Operation gleich der Datenleseoperation zum Lesen von Daten aus der gemeinsamen Speichereinheit 82 aus, mit der Ausnahme, daß die Steuerschaltung 81 für den gemeinsamen Speicher 8 die Speichereinheit 82 so steuert, daß diese die Daten auf der Leitung 142 einspeichert. Der Betrieb des cache-Speichers 11 ist der gleiche wie beim Datenschreiben in die Eingabe/Ausgabesteuerschaltung 3.
Als nächstes wird das Einschreiben in die MMU 9 erläutert. Falls das Schreibanforderungssignal 124 der MMU 9 zugeführt wird, werden die Daten in eine der zwei Tabellen 901 und 902 eingeschrieben, falls die Adresse auf der Leitung 116 in einen Bereich von A₇ bis A₉-1 fällt. Auch in diesem Fall wird das ACK-Signal und das RMA-Signal wie beim Lesen der Adreßzuordnungstabelle 9 erzeugt, so daß in den cache-Speicher 11 nichts eingeschrieben wird. Die MMU 9 erzeugt ein Freigabesignal auf der Leitung 126. Auf den Empfang des Freigabesignals 126 schaltet die cache-Speichersteuerschaltung 13 das Löschsignal 117 ein und macht alle cache-Speicher 11 ungültig. Aufgrund dieses Löschvorgangs wird die Beziehung zwischen den Daten an den logischen Adressen im cache-Speicher 11 und den Daten an den physikalischen Adressen im Speicher aufrechterhalten. Wenn man beispielsweise annimmt, daß die Daten an einer logischen Adresse 100 im cache-Speicher 11 gespeichert sind, und falls diese ausgelesenen Daten, die Daten an der physikalischen Adresse 1000 entsprechen, wegen der Adressumsetzung durch Neuschreiben der Adressumsetztabelle nun der Adresse 500 entsprechen, werden die Daten an der physikalischen Adresse 1000 im cache-Speicher 11 ausgelesen, wenn der Prozessor die Daten der Adresse 100 liest, woraus dann eine Inkonsistenz entsteht. Beim Überschreiben der Adreßumsetztabelle wird das Freigabesignal erzeugt, das den cache-Speicher 11 ungültig macht. Damit wird dieses Problem vermieden.
Nun werden anhand der Fig. 6 bis 10 Schaltungseinzelheiten der Hauptblöcke von Fig. 5 beschrieben.
Fig. 6 zeigt ein Schaltbild des cache-Speichers 11, der einen Assoziativspeicher 16, einen Zähler 17, ein UND-Glied 18 und einen Schalter 19 aufweist. Der Assoziativspeicher 16 hat eine Vielzahl von Einträgen, die jeweils eine Adresse, Daten und ein Gültigkeitsbit speichern. Wenn am Anfangsbetriebsschritt des Systems das Löschsignal 117 eingeschaltet wird, werden die effektiven Bits des Assoziativspeichers 16 ausgeschaltet und der Speicher gelöscht. Wenn im cache-Speicher 11 geprüft wird, ob Daten vorhanden sind, liest der Assoziativspeicher 16 eine Datengruppe und ein Gültigkeitsbit eines Eintrags aus, der eine Adresse speichert, die mit dem Adreßsignal 116 auf den internen Signalleitungen 160 und 121 übereinstimmt. Wenn keine gleiche Adresse vorhanden ist, wird das Signal 121 ausgeschaltet. Der Assoziativspeicher 16 führt eine Schreiboperation aus, wenn ein Schreibfreigabesignal 118 eingeschaltet ist. Wenn das Neueintrags-Schreibsignal aus ist, wird das Datensignal 115 in eine Datenfeld eines Eintrags geschrieben, dessen gespeicherte Adresse mit dem Adreßsignal 116 übereinstimmt, und das Gültigkeitsbit dieses Eintrags wird eingeschaltet. Wenn das Neueintragssignal 120 ein ist, werden das Adreßsignal 116 und das Datensignal 115 in die vom Adreßzähler 17 angegebene Speicherstelle eingeschrieben und das Gültigkeitsbit eingeschaltet. In diesem Falle wird der Ausgang des UND-Glieds 18, das dem Schreibfreigabesignal 118 folgt und das Neueintragsschreibsignal 120 eingeschaltet, und der Zähler 17 wird mit +1 inkrementiert. Das heißt, daß, wenn ein Adreßsignal, Daten und ein Gültigkeitsbit dem Assoziativspeicher 16 einzuspeichern sind, der Zähler 17 sequentiell den für das Einschreiben der Daten zu verwendenden Eingang verändert. Der Schalter 19 ist ein Zweirichtungsschalter, der zum einen, wenn das Schaltersteuersignal 119 ein ist, die Datensignalleitung 116 mit der Datensignalleitung 115 verbindet und wenn das Schaltersteuersignal 119 aus ist, die Datensignalleitung 122 mit der Datensignalleitung 115 verbindet.
Fig. 7 zeigt ein Schaltbild der cache-Speichersteuerschaltung 13, die aus ODER-Gliedern 51 und 53, UND-Gliedern 52 und 54, Invertern 50 und 220 und einer Latch-Schaltung 55 besteht. Die UND-Glieder 52, das ODER-Glied 53 und der Inverter 50 erzeugen das Schreibfreigabesignal 118 auf das Leseanforderungssignal 111 hin oder das Schreibanforderungssignal 110 und teilen auf das ACK-Signal 128 und ein invertiertes Signal vom RMA-Signal 127 hin, dem cache-Speicher 11 mit, eine Schreiboperation auszuführen. Es muß hervorgehoben werden, daß das Schreibfreigabesignal 118 nicht erzeugt wird, wenn das RMA-Signal 127 ein ist.
Das ODER-Glied 51 erzeugt auf das Rücksetzsignal 113 oder das Freigabesignal 126 hin das Löschsignal 117, um den cache-Speicher 11 ungültig zu machen. Das UND-Glied 54 antwortet auf das Lesesignal 11 und ein verzögertes Signal des Gültigkeitsbitsignals 121, das von der latche-Schaltung 55 verzögert wurde, die das Gültigkeitsbitsignal 121 bis auf die aus dem Arbeitsspeicher 2 ausgelesenen Daten der cache-Speicher 11 erreichen, verzögert. Das Neueintragsschreibsignal 120 erzeugt der Inverter 220 auf das verzögerte Signal des Gültigkeitsbitsignals 121 und zeigt dem cache-Speicher 11 an, einen neuen Daten-, Adress- und Gültigkeitsbitsignaleintrag einzuschreiben.
Fig. 8 zeigt ein Schaltbild der Lese/Schreibsteuerschaltung 14, die aus einer Verzögerungsschaltung 56, UND-Glieder 57, 58 und einem Inverter 59 besteht. Das Schreibanforderungssignal 110 wird durch die Lese/Schreibsteuerschaltung 14 geleitet und liefert dem Bus 100 das Schreibanforderungssignal 110 (Fig. 5).
Das UND-Glied 58 erzeugt das Leseanforderungssignal 125 auf das Leseanforderungssignal 111, das die Verzögerungsschaltung 56 verzögert hat und auf ein vom Inverter 59 invertiertes Gültigkeitsbitsignal 121. Das UND-Glied 57 liefert das Ende-Signal 114 auf das Gültigkeitsbitsignal 121 und auf das verzögerte Signal des Leseanforderungssignals 111 hin. Die Verzögerungsschaltung 56 ist so ausgelegt, daß zum Gültigkeitsbitsignal 121 von den UND-Gliedern 57 und 58 nicht zugegriffen werden kann, bis das Gültigkeitsbitsignal 121 als Ergebnis der Adreßprüfung vom cache-Speicher 11 bestimmt ist.
Fig. 9 zeigt ein Schaltbild der Eingabe/Ausgabesteuerschaltung 3, die aus einem Decodierer 60, UND-Glieder 63, 65, 66, 76, 78, 79, ODER-Gliedern 64, 90, Tristate-Pufferverstärkern 68 und 88, Pufferverstärkern 61, 62 mit offenem Emitter, einem Statusregister 67, dem Steuerregister 75 und dem Datenregister 77 besteht. Das Statusregister 67 empfängt von der Eingabe/Ausgabeeinrichtung über die Leitung 400 Statusdaten.
Das Steuerregister 75 sendet seinen Inhalt an die Eingabe/Ausgabeeinrichtung 4 über die Leitung 410, um die Eingabe/Ausgabeeinrichtung 4 zu steuern.
Das Datenregister 77 empfängt von der MPU 1 über die Leitung 132 Daten und sendet diese der Eingabe/Ausgabeeinrichtung 4 über die Leitung 420 oder umgekehrt.
Der Decodierer 60 decodiert das Adreßsignal 139 und unterscheidet, ob die Eingabe/Ausgabesteuerschaltung 3 gewählt ist oder nicht und unterscheidet außerdem, welches Register gewählt ist. Wenn die Adresse 139 gleich A 4, A 5 oder A 6 ist, wie Fig. 13 zeigt, heißt dies, daß das Statusregister 67, das Steuerregister 75 oder das Datenregister 77 jweils gewählt ist. Wenn der Decodierer 60 erfaßt, daß die Adresse 139 gleich A 4 ist, schaltet er die Leitung 300 A ein.
Wenn dem Statusregister 67 Daten einzuschreiben sind, das ist, wenn die Schreibanforderung auf der Leitung 134 liegt, wird der Ausgang des UND-Glieds 65 eingeschaltet und legt die Daten auf die Leitung 132. Wenn Daten vom Statusregister 67 zu lesen sind, das ist der Fall, wenn die Leitung 135 die Leseanforderung führt, wird der Ausgang des UND-Glieds 66 und damit der Tristate-Puffer 68 eingeschaltet, der die Daten des Statusregisters 67 an die Datensignalleitung 132 überträgt. Das ODER-Glied 90 sendet das RMA-Signal auf der Leitung 300 D auf das Signal auf der Leitung 300 A hin und sendet damit das RMA-Signal mittels eines Pufferverstärkers 61 mit offenem Emitter über die Leitung 137 aus. Das UND-Glied 63 empfängt den Ausgang des ODER-Glieds 64, das entweder das Leseanforderungssignal 135 oder das Schreibanforderungssignal 134 empfängt. Auf diese Weise erzeugen die Glieder 63 und 64 das ACK-Signal auf das RMA-Signal auf der Leitung 300 D und das Leseanforderungssignal 135 hin und ermöglichen dem Puffer 62 das ACK-Signal auf der Leitung 138 abzugeben.
Wenn die Adresse auf der Leitung 139 gleich A 5 ist, schaltet der Decoder 60 die Leitung 300 B ein. Das UND-Glied 76 wird durch das Signal auf der Leitung 300 B freigegeben, wenn die Schreibanforderung von der Leitung 134 geliefert wird. Wenn das UND-Glied 76 freigegeben ist, empfängt das Steuerregister 75 die Daten auf der Leitung 132 abhängig vom Ausgang des UND-Glieds 76. Das RMA-Signal 137 und das ACK-Signal 138 werden abhängig vom Signal auf der Leitung 300 B und von der Schreibanforderung auf der Leitung 134 wie im Falle der Wahl des Statusregisters 76 erzeugt. Wenn die Adresse 139 gleich A 6 ist, gibt der Decoder 60 die Leitung 300 C und damit die UND-Glieder 78 und 79 frei, wenn das Schreibanforderungssignal 134 oder das Leseanforderungssignal 135 geliefert werden. Der Tristate-Pufferverstärker 88 wird abhängig von einem Ausgang des UND-Glieds 79 freigegeben, wenn diesem das Leseanforderungssignal 135 anliegt und ermöglicht damit das Auslesen der Daten aus dem Datenregister 77 über die Leitung 132. Der Ausgang des UND-Glieds 78 gibt das Datenregister 77 frei und Daten über die Leitung 132 im Datenregister 77 zu speichern, falls die Schreibanforderung auf der Leitung 134 dem UND-Glied 78 anliegt. Das ACK-Signal 138 und das RMA-Signal 137 werden abhängig von einem Ausgang des ODER-Glieds 90 erzeugt, das freigegeben wird, wenn die Leitung 300 C freigegeben ist.
Fig. 10 zeigt ein Schaltbild der Steuerschaltung 81 des gemeinsamen Speichers 8, die aus Dekodierern 69 und 80, Pufferverstärkern 86 und 87 mit offenem Emitter, einem ODER-Glied 83, einem UND-Glied 84 und einer Zeitsteuerschaltung 85 besteht. Der Dekodierer 69 erfaßt, ob der gemeinsame Speicher 8 gewählt ist, das heißt, ob die Adresse auf der Leitung 149 im Bereich A 1 bis A 3-1 liegt, schaltet daraufhin die Leitung 810 ein und sendet die auf der Leitung 149 liegende Adresse an die gemeinsame Speichereinheit 82 über die Leitung 800, wenn das Erfassungsergebnis des Dekodierers 69 wahr ist. Der Dekodierer 80 erfaßt, ob die Speicherstelle, zu der unter der Adresse auf der Leitung 149 zugegriffen werden soll, im Adreßbereich A 2 bis A 3-1 zum Nachrichtenaustausch liegt. Wenn dieser besondere Bereich gewählt ist, sendet der Decodierer 80 das RMA-Signal. Der Pufferverstärker 86 mit offenem Emitter legt das RMA-Signal auf die Leitung 147. Der Ausgang des ODER-Glieds 83 wird nur eingeschaltet, wenn ein Leseanforderungssignal 145 oder ein Schreibanforderungssignal 144 vorhanden ist. Das UND-Glied 84 antwortet auf das Signal 810 und den Ausgang des ODER-Glieds 83 und aktiviert die Zeitsteuerschaltung 85 nur, wenn zum gemeinsamen Speicher 8 zugegriffen wird.
Die Zeitsteuerschaltung 85 antwortet auf das Schreibanforderungssignal 144 und das Leseanforderungssignal 145, wenn ein freigebender Ausgang des UND-Glieds 84 anliegt und erzeugt Steuersignale auf der Leitung 820, die für den Zugriff zur gemeinsamen Speichereinheit 82 benötigt werden. Ferner erzeugt die das ACK-Signal zum Ende der Operation. Das ACK-Signal wird über den Pufferverstärker 87 mit offenem Emitter auf die Leitung 148 gelegt.
Fig. 11 zeigt ein Schaltbild der Arbeitsspeichersteuerschaltung 21 , in dem Bezugsziffern mit einem Strich dieselbe Schaltung oder dasselbe Schaltelement wie das mit derselben Bezugsziffer in Fig. 10 angibt. Ein Vergleich der Schaltung von Fig. 10 mit der Schaltung in Fig. 11 ergibt, daß sich die Arbeitsspeichersteuerschaltung 21 von der gemeinsamen Speichersteuerschaltung 81 darin unterscheidet, daß der Dekoder 80 von Fig. 10, der das RMA-Signal erzeugt, in der Arbeitsspeichersteuerschaltung 21 nicht enthalten ist.
Fig. 12 zeigt ein Schaltbild der MMU 9, deren Adreßzuordnungstabelle 90 auf die logiaschen Adressen 116 hin die physikalischen Adressen 129 mittels der logischen Adreßtabelle 901 und der physikalischen Adreßtabelle 902 erzeugt. Der Dekodierer 91 antwortet auf die logischen Adressen 116 und schaltet jeweils die Leitung 163 oder 161 ein, abhängig davon, ob die Adresse 116 zum Adreßbereich A 7 bis A 8-1 oder zum Adreßbereich A 8 bis A 9-1 gehört. Der Dekodierer 91 erzeugt außerdem ein Zeilenwählsignal 162, wenn zu einer der zwei Tabellen 901 und 902 mittels der Adresse 116 zugegriffen werden soll.
Falls eine Schreibanfrage zur logischen Adreßtabelle 901 vorliegt, wird das UND-Glied 92 freigegeben, da ihm das Schreibanforderungssignal 124 und das Auswahlsignal 163 für die logische Adreßtabelle anliegen. Deshalb werden die Daten 122 in eine Zeile der logischen Adreßtabelle 901 (die durch das Signal 162 gekennzeichnet ist) eingeschrieben.
In gleicher Weise wird im Falle einer Schreibanforderung für die physikalische Adreßtabelle 902 das UND-Glied 93 eingeschaltet und die Daten 122 in die physikalische Adreßtabelle 902 eingeschrieben. Wenn eines der UND-Glieder 92 bzw. 93 eingeschaltet ist, erzeugt das ODER-Glied 94 das Freigabesignal auf der Leitung 126. Außerdem wird der Ausgang des ODER-Glieds 94 jeweils zu den Leitungen 128 bzw. 127 als ACK-Signal und RMA-Signal mittels des ODER-Glieds 98 und des Pufferverstärkers 89 mit offenem Emitter bzw. mittels des ODER-Glieds 98 und des Pufferverstärkers 99 mit offenem Emitter übertragen.
Bei einer Leseanforderung zur logischen Adreßtabelle 901 wird jeweils die logische Adresse und die physikalische Adresse in einer vom Zeilensignal 162 gekennzeichneten Zeile in der logischen Adreßtabelle 901 und der physikalischen Adreßtabelle 902 über die Tristate-Puffer 73 und 74 ausgelesen. Wenn die Adresse 116 für die logische Adreßtabelle 901 gilt, wird das UND-Glied 96 eingeschaltet und die ausgelesene logische Adresse zur Datensignalleitung 122 mittels des freigegebenen Tristate-Puffers 73 übertragen.
In gleicher Weise wird bei der Leseanforderung zur physikalischen Adreßtabelle 902 das UND-Glied 95 eingeschaltet und die ausgelesene physikalische Adresse auf die Datensignalleitung 122 gelegt. Wenn das UND-Glied 95 oder das UND-Glied 96 eingeschaltet ist, erzeugen die Ausgänge dieser beiden UND-Glieder das ACK-Signal und das RMA-Signal jeweils auf den Leitungen 127 und 128 mittels der ODER-Glieder 97 bzw. 98 und der Pufferverstärker mit offenem Emitter 89 und 99.
Die obige Beschreibung macht deutlich, daß gemäß dem Ausführungsbeispiel verhindert wird, wenn der Prozessor zu einem Speicher zugreift, der einen besonderen Bereich enthält, dessen Inhalte abhängig von verschiedenen Faktoren geändert werden, wie beim Speichertabellen-E/A-System und beim Multiprozessorsystem, daß der cache-Speicher die Daten zum Zeitpunkt des Zugriffs zum besonderen Bereich erhält und einspeichert, so daß keine Inkonsistenz zwischen den Daten, zu denen zugegriffen wurde, auftreten kann.
Deshalb kann vorteilhafterweise ein einen cache-Speicher verwendendes System verbessert werden, wobei die Vorteile des Speichertabellen-E/A-Systems, das die Eingabe/Ausgabereinrichtungen abhängig von allgemeinen Befehlen genau steuert, als auch die Vorteile des Multiprozessorsystems, das eine Last wirksam verteilt, aufrechterhalten werden können.
Bei beschriebenen erfindungsgemäßen Ausführungsbeispiel enthält der Mikroprozessor 1 den cache-Speicher 11 und die cache-Speichersteuerschaltung 13. Außerdem empfängt die cache-Speichersteuerschaltung 13 im Mikroporzessor 1 das RMA-Signal, das verhindert, daß die Daten in den cache-Speicher 11 eingeschrieben werden. Deshalb kann der cache-Speicher unabhängig vom Mikroprozessor 1 mit der Voraussetzung, daß die einen besonderen Bereich betreffenden Daten nicht eingeschrieben werden, ausgebildet sein. Dementsprechend ist der Aufbau eines allgemein verwendbaren Mikroprozessorsystems möglich.
Die bekannte Steuerschaltung für den gemeinsamen Speicher oder die Steuerschaltung für die E/A-Einrichtung hat keinen Schaltungsteil, der das RMA-Signal, das über die Leitungen 137 bzw. 147 geführt ist, erzeugt. Dies bedeutet, daß die bekannte Steuerschaltung für den gemeinsamen Speicher und dergleichen nicht mit dem in Fig. 5 dargestellten Mikroprozessor 1 ohne Modifikation verwendet werden kann.
Fig. 14 zeigt ein weiteres Ausführungsbeispiel eines Datenverarbeitungssystems gemäß der Erfindung, bei dem die bekannte Steuerschaltung für den gemeinsamen Speicher und dergleichen mit der Mikroprozessoreinheit 1 A gemäß der Erfindung verbindbar ist. Fig. 14 zeigt nur den inneren Aufbau der Mikroprozessoreinheit MPU 1 A. Die Mikroprozessoreinheit 1 A ist mit dem Arbeitsspeicher 2, dem gemeinsamen Speicher 8 und der E/A-Steuerung 3 mit geringfügigen Modifikationen der beiden zuletzt genannten Schaltungen verbunden.
Dieselben Bezugsziffern in Fig. 14 wie die in Fig. 5 bis 8 bezeichnen dieselben Schaltungselemente.
Die Mikroprozessoreinheit 1 A in Fig. 4 unterscheidet sich von der Mikroprozessoreinheit 1 in Fig. 5 nur darin, daß die Mikroprozessoreinheit 1 A einen Schaltungsteil aufweist, der das im Ausführungsbeispiel von Fig. 5 verwendete RMA-Signal erzeugt. In Fig. 14 ist der Schaltungsteil, der das Löschen des cache-Speichers 11 oder das Freigeben des cache-Speichers 11 betrifft, zur Vereinfachung nicht dargestellt.
Die Register 302 bis 307, die Decodierer 314 bis 316 und ein ODER-Glied 320 erzeugen das RMA-Signal auf der Leitung 127, wie dies nachstehend im einzelnen erläutert ist.
Deshalb braucht die Mikroprozessoreinheit 1 A das RMA-Signal nicht von außerhalb zu empfangen. Aus diesem Grunde können die Steuerschaltung für den gemeinsamen Speicher, die Steuerschaltung für den Arbeitsspeicher und die E/A-Steuerschaltung, die alle in Fig. 14 nicht gezeigt sind, wenn sie mit der Mikroprozessoreinheit 1 A verbunden werden sollen, unverändert verwendet werden und brauchen keine Schaltungsteile, die das RMA-Signal erzeugen.
Beim ersten Operationsschritt des Systems setzt die CPU 10 die Adreßuntergrenze A 2 und die Adreßobergrenze A 3-1 des Nachrichtenverkehrsbereichs des in Fig. 13 gezeigten logischen Adreßbereichs jeweils in die Register 302 und 303. In gleicher Weise setzt die CPU die Adressen A 4 und A 6 (Fig. 13) jeweils in die Register 304 und 305. Die CPU setzt außerdem die Adressen A 7 und A 9-1 jeweils in die Register 306 und 307. In diesem Zusammenhang soll Fig. 13 eine Speichertabelle für logische Adressen des Ausführungsbeispiels von Fig. 14 darstellen.
Wenn die CPU 10 ein Leseanforderungssignal 111 oder ein Schreibanforderungssignal 110 ausgibt, gibt sie ebenfalls die dem ausgegebenen Anforderungssignal zugehörige logische Adresse auf die Leitung 116. Der Dekoder 314 erzeugt das RMA-Signal, wenn die auf die Leitung 116 gegebene logische Adresse in den durch die Register 304 und 305 angegebenen Adreßbereich von A 2 + A3-1 fällt. Der Dekoder 315 erzeugt das RMA-Signal, wenn die auf der Leitung 116 ausgegebene logische Adresse in den durch die Register 306 und 307 angegebenen Adreßbereich von A 4 bis A 6 fällt.
Der Dekoder 316 erzeugt das RMA-Signal, wenn die auf der Leitung 116 ausgegebene logische Adresse in einen von A 7 bis A 9-1 reichenden Adreßbereich, den die Register 306 und 307 angeben, fällt.
Das von einem der Dekodierer 314 bis 316 erzeugte RMA-Signal wird zum Inverter 50 über das ODER-Glied 320 geleitet. Wenn das RMA-Signal auf der Leitung 127 liegt, werden die Daten nicht eingeschrieben, genau in der gleichen Weise wie dies in Verbindung mit dem Ausführungsbeispiel von Fig. 5 erläutert wurde.
Da der Betrieb der Mikroprozessoreinheit 1 A derselbe wie der der Mikroprozessoreinheit 1 von Fig. 5 ist, kann zur Vereinfachung eine genaue Erläuterung des Betriebs der Mikroprozessoreinheit 1 A entfallen.
Gemäß dem in Fig. 14 dargestellten Ausführungsbeispiel kann die CPU 10 die Adressen in die Register 302 bis 307, in dem sie Programmbefehle ausführt, setzen. Deshalb kann dieses Ausführungsbeispiel in jedem System angewendet werden, das besondere Adreßbereiche hat, deren Daten nicht in den cache-Speicher eingeschrieben werden sollen, und die bekannte Steuerschaltung für den gemeinsamen Speicher oder für die I/O-Einrichtung braucht keinen Schaltungsteil zur Erzeugung des RMA-Signals. Da die Mikroprozessoreinheit 1 A keine äußere Signalleitung zum Empfang des RMA-Signals benötigt, verringert dies die Stiftzahl für die Mikroprozessoreinheit 1 A, die für äußere Signale benötigt wird.
Die Anzahl äußerer Schaltungen, die mit der Mikroprozessoreinheit 1 A verbindbar sind, ist jedoch durch die Anzahl der Register 302 bis 307 und die Decodierer 314 bis 316 begrenzt. Diese Einschränkung ist beim Ausführungsbeispiel von Fig. 5 nicht vorhanden.

Claims (14)

1. Datenverarbeitungssystem mit einer ersten Speichereinheit (2, 8), die Daten speichert,
mindestens einer Zentralverarbeitungseinheit (CPU 10; MPUX 1 A), die mit der ersten Speichereinheit (2, 8) verbunden ist und Befehle ausführt, die zur ersten Speichereinheit zu Adressen, die zu einem ersten bzw. zweiten Speicherbereich (22, 82) der ersten Speichereinheit (2, 8) gehören, zugreifen,
einer mit der ersten Speichereinheit (2, 8) verbundenen zweiten Speichereinheit (11), zu deren Speicherplätzen durch von der Zentralverarbeitungseinheit (CPU 10) ausgeführten Befehle zugegriffen wird, die eine erste Einrichtung (16 C) enthält, die ein Gültigkeitsbitsignal (V) erzeugt, wenn die zweite Speichereinheit (11) bereits Daten eines Speicherplatzes, zu dem mittels einer Zugriffsadresse und einer Leseanforderung, die die Zentralverarbeitungseinheit (CPU 10) als Ergebnis eines Befehls erzeugt, zugegriffen wird, speichert,
einer Lese-Schreibsteuereinrichtung (13, 14), die mit der Zentralverarbeitungseinheit (CPU 10) sowie der ersten und der zweiten Speichereinheit (2, 8, 11) verbunden ist und aus diesen Daten auf eine Leseanforderung und die Zugriffsadresse hin ausliest, wobei für die Zugriffsadresse nicht erzeugtem Gültigkeitsbitsignal (V) aus der ersten Speichereinheit (2, 8) und bei erzeugtem Gültigkeitsbitsignal (V) aus der zweiten Speichereinheit (11) gelesen wird,
einer mit der Zentralverarbeitungseinheit (CPU 10) verbundenen Speicherverwaltungseinrichtung (MMU 9), die erfaßt, ob die Zugriffsadresse einen Speicherplatz im zweiten Speicherbereich (82) adressiert und
einer Lese-Schreibsteuereinrichtung (13, 14), die mit der Zentralverarbeitungseinheit (CPU 10), der Lesesteuereinrichtung und der Speicherverwaltungseinrichtung (MMU 9) verbunden ist,
dadurch gekennzeichnet,
daß die Lese-Schreibsteuereinrichtung (13, 14) auf die Leseanforderung und die Zugriffsadresse hin ausgelesene Daten in die Speichereinheit (11) nur einschreibt, wenn die Speicherverwaltungseinrichtung (MMU 9) erfaßt, daß die Adresse nicht den zweiten Speicherbereich (82) adressiert.
2. Datenverarbeitungssystem nach Anspruch 1, dadurch gekennzeichnet, daß
die Lese-Schreibsteuereinrichtung (13, 14),
wenn die erste Einrichtung (16 C) das Gültigkeitsbitsignal (V) nicht erzeugt, die Leseanforderung und die Zugriffsadresse an die erste Speichereinheit (2, 8) sendet, und
eine Speicherzugriffseinrichtung (21, 81) mit der ersten Speichereinheit (2, 8) verbunden ist und Daten aus dieser auf die übertragene Leseanforderung und die Zugriffsadresse hin ausliest, und
die Speicherverwaltungseinrichtung (MMU 9) eine mit der Speicherzugriffseinrichtung (21, 81) verbundene Erfassungseinrichtung (90) enthält, die aufgrund der der Speicherzugriffseinrichtung (21, 81) zugesendeten Zugriffsadresse erfaßt, ob diese den zweiten Speicherbereich (82) adressiert.
3. Datenverarbeitungssystem nach Anspruch 2, dadurch gekennzeichnet, daß die Speicherzugriffseinrichtung aufweist:
eine erste und zweite Zugriffseinrichtung (21, 81), die jeweils mit dem ersten und zweiten SpeicherBereich (22 und 82) der ersten Speichereinheit (2, 8) verbunden sind und auf die übertragene Zugriffsadresse hin jeweils abhängig davon, ob die Zugriffsadresse dem ersten oder zweiten Bereich der ersten Speichereinheit (2, 8) zugeordnet ist, ein Lesesignal dem ersten und zweiten Speicherbereich (22, 82) zuführen, und
die Erfassungseinrichtung (90) mit der zweiten Zugriffseinrichtung (81) verbunden ist und auf die dieser zugesendeten Zugriffsadressen anspricht.
4. Datenverarbeitungssystem nach Anspruch 3, gekennzeichnet durch einen mit der Lese- und Schreibsteuereinrichtung (13, 14) der ersten und zweiten Zugriffseinrichtung (21, 81) und der Speicherverwaltungseinrichtung (MMU 9) verbundenen Signalbus (100), der die Lesezugriffsanforderung und die Zugriffsadresse von der Lese-Schreibsteuereinrichtung (13, 14) an die erste und zweite Zugriffseinrichtung (21, 81) sowie ein das Erfassungsergebnis der Speicherverwaltungseinrichtung (MMU 9) angebendes Signal an die Lese-Schreibsteuereinrichtung (14) überträgt.
5. Datenverarbeitungssystem nach Anspruch 4, gekennzeichnet durch eine Eingabe/Ausgabeeinrichtung (3, 4), die mit dem Signalbus (100) verbunden ist und der Zentralverarbeitungseinheit (CPU 10) einzugebende Daten auf den Bus legt oder von der Zentralverarbeitungseinheit (CPU 10) ausgegebene Daten vom Bus (100) empfängt, wobei der erste Speicherbereich (22) der ersten Speichereinheit (2, 8) einen Arbeitsspeicher (22) der Zentralverarbeitungseinheit (CPU 10) bildet und
der zweite Speicherbereich (82) der ersten Speichereinheit (2, 8) zumindest ein Register (67) als Zustandsregister, das einen Betriebszustand der Eingabe/Ausgabeeinrichtung (3, 4) angibt oder ein Datenregister (77), das von der Eingabe/Ausgabeeinrichtung (3, 4) gelieferte Daten speichert, enthält.
6. Datenverarbeitungssystem nach Anspruch 4, dadurch gekennzeichnet, daß eine zweite Zentralverarbeitungseinheit (MPUX 1 A) vorgesehen ist, die mit dem Signalbus (100) verbunden ist und Befehle ausführt, und
der erste Speicherbereich (22) der ersten Speichereinheit (2, 8) einen Arbeitsspeicher (22) der ersten Zentralverarbeitungseinheit (CPU 10) bildet und der zweite Speicherbereich (82) der ersten Speichereinheit (2, 8) einen gemeinsamen Speicherbereich (Adressen A 2 bis A 3-1 in Fig. 13) aufweist, der Daten speichert, die zwischen der ersten Zentralverarbeitungseinheit (CPU 10) und der zweiten Zentralverarbeitungseinheit (MPUX 1 A) ausgetauscht werden.
7. Datenverarbeitungssystem nach Anspruch 3, dadurch gekennzeichnet, daß der erste Bereich (22) der ersten Speichereinheit (2, 8) einen Arbeitsspeicher (22) der Zentralverarbeitungseinheit (CPU 10) bildet, und
der zweite Bereich (82) der ersten Speichereinheit (2, 8) eine Adreßzuordnungstabelle (900; Adressen A 7 bis A 9-1 in Fig. 13) aufweist, die Daten enthält, die zur Umsetzung einer von der Zentralverarbeitungseinheit (CPU 10) erzeugten logischen Zugriffsadresse in eine physikalische Zugriffsadresse verwendet werden.
8. Datenverarbeitungssystem nach Anspruch 7, dadurch gekennzeichnet, daß die Speicherverwaltungseinrichtung (MMU 9) eine Einrichtung (91, 92, 93), die auf eine von der Zentralverarbeitungseinheit (CPU 10) erzeugte Schreibanforderung und eine zugehörige Zugriffsadresse hin Daten von der Zentralverarbeitungseinheit (CPU 10), in die Adreßzuordnungstabelle (900) einschreibt, wenn die Zugriffsadresse die Speicherplätze der Tabelle adressiert, und
eine Einrichtung (94) aufweist, die ein Freigabesignal erzeugt, wenn die Einrichtung (91, 92, 93) Daten in die Tabelle (900) einschreibt, wobei auf das Freigabesignal hin die bereits in der zweiten Speichereinheit (11) gespeicherten Daten ungültig gemacht werden.
9. Datenverarbeitungssystem nach Anspruch 2, dadurch gekennzeichnet, daß die Speicherzugriffseinrichtung (21, 81) einen Ende-Indikator (85, 87 in Fig. 10) aufweist, der ein Endesignal (ACK) erzeugt, wenn das Auslesen der Daten aus der ersten Speichereinheit beendet ist, um das Ende der Leseoperation der Lese-Schreibsteuereinrichtung (13, 14) mitzuteilen, die darauf die ausgelesenen Daten in die zweite Speichereinheit (11) einschreibt, wenn das Erfassungsergebnis der Erfassungseinrichtung (90) der Speicherverwaltungseinrichtung (MMU 9) falsch ist und nicht in die zweite Speichereinheit (11) einschreibt, wenn das Erfassungsergebnis der Erfassungseinrichtung (90) wahr ist.
10. Datenverarbeitungssystem nach Anspruch 9, dadurch gekennzeichnet, daß die Speicherverwaltungseinrichtung (MMU 9) eine mit der Lese-Schreibsteuereinrichtung (13, 14) verbundene Indikatoreinrichtung (97, 98, 99 in Fig. 12) aufweist, die auf die Leseanforderung und die Zugriffsadresse ein Auswahlkennzeichnungssignal (RMA) erzeugt, wenn die Zugriffsadresse zum zweiten Speicherbereich (82) der ersten Speichereinheit (2, 8) gehört, um einen selektiven Zugriff zu diesem Speicherbereich mittels der Zugriffsadresse der Lese-Schreibsteuereinrichtung (13, 14) anzugeben, die ihrerseits eine mit der Lesesteuereinrichtung und der Indikatoreinrichtung (97, 98, 99) verbundene Einrichtung (52 in Fig. 7) enthält, die die ausgelesenen Daten in die zweite Speichereinrichtung (11) bei Empfang des Endekennzeichnungssignals (ACK), wenn das Auswahlkennzeichnungssignal (RMA) nicht empfangen wurde, einschreibt und nicht einschreibt, wenn das Endekennzeichnungssignal (ACK) und das Auswahlkennzeichnungssignal (RMA) empfangen wurde.
11. Datenverarbeitungssystem nach Anspruch 10, dadurch gekennzeichnet, daß die Speicherzugriffseinrichtung aufweist: eine erste und eine zweite Zugriffseinrichtung (21, 81), die jeweils mit dem ersten Speicherbereich (22) und dem zweiten Speicherbereich (82) der ersten Speichereinheit (2, 8) verbunden sind, um aus diesen Speicherbereichen Daten auf eine Leseanforderung hin jeweils abhängig von einer zum ersten Bereich bzw. zum zweiten Bereich der ersten Speichereinheit gehörigen Zugriffsadresse hin auszulesen, wobei der Ende-Indikator eine erste und zweite Indikatoreinheit aufweist, die jeweils der ersten und zweiten Zugriffseinrichtung (21, 81) zugehören und jeweils ein eigenes Endekennzeichnungssignal (ACK) erzeugen, wenn das Auslesen jeweils des ersten Speicherbereichs (22) und des zweiten Speicherbereichs (82) beendet ist und wobei die in der Lese-Schreibsteuereinrichtung (13, 14) enthaltene Einrichtung (52) jeweils das erste und das zweite Endekennzeichnungssignal empfängt.
12. Datenverarbeitungssystem nach Anspruch 11, weiterhin gekennzeichnet durch einen mit der Schreibsteuereinrichtung (13, 14), der ersten und zweiten Zugriffseinrichtung (21, 81) und der zweiten Einrichtung verbundenen Signalbus (100), über den die Leseanforderung und die Zugriffsadresse von der Lese-Schreibsteuereinrichtung (13, 14) zur ersten und zweiten Zugriffseinrichtung (21, 81) sowie eine Zugriffsadresse von der Lese-Schreibsteuereinrichtung (13, 14) zur Speicherverwaltungseinrichtung (MMU 9), das erste und das zweite Endekennzeichnungssignal (ACK) an die Lese-Schreibsteuereinrichtung (13, 14) als einzelnes Endekennzeichnungssignal und das Auswahlkennzeichnungssignal (RMA) von der zweiten Einrichtung an die in der Lese-Schreibsteuereinrichtung (13, 14) enthaltene Einrichtung (52) übertragen werden.
DE19853502147 1984-01-23 1985-01-23 Datenverarbeitungssystem mit verbesserter pufferspeichersteuerung Granted DE3502147A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP59008572A JPH0630074B2 (ja) 1984-01-23 1984-01-23 プロセッサ
JP59110764A JPH06100984B2 (ja) 1984-06-01 1984-06-01 マイクロプロセッサ

Publications (2)

Publication Number Publication Date
DE3502147A1 DE3502147A1 (de) 1985-08-08
DE3502147C2 true DE3502147C2 (de) 1987-10-01

Family

ID=26343109

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19853502147 Granted DE3502147A1 (de) 1984-01-23 1985-01-23 Datenverarbeitungssystem mit verbesserter pufferspeichersteuerung

Country Status (2)

Country Link
US (7) US5148526A (de)
DE (1) DE3502147A1 (de)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5838946A (en) * 1990-04-14 1998-11-17 Sun Microsystems, Inc. Method and apparatus for accomplishing processor read of selected information through a cache memory
JP3169599B2 (ja) * 1990-08-03 2001-05-28 株式会社日立製作所 半導体装置、その駆動方法、その読み出し方法
US5259803A (en) * 1991-04-09 1993-11-09 Lyman Ronald L Toy construction set featuring gears and radiant connectors
JPH06208505A (ja) * 1992-11-13 1994-07-26 Cyrix Corp アドレス領域によりメモリ・サブシステム動作を制御するための領域構成システム及び方法
JP3230898B2 (ja) * 1993-06-02 2001-11-19 シャープ株式会社 データ駆動型情報処理システム
JP2634141B2 (ja) * 1994-01-19 1997-07-23 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチプロセッサ・システム
US5900014A (en) * 1994-12-08 1999-05-04 Ast Research, Inc. External means of overriding and controlling cacheability attribute of selected CPU accesses to monitor instruction and data streams
US5983025A (en) * 1995-06-07 1999-11-09 International Business Machines Corporation Computer system buffers for providing concurrency and avoid deadlock conditions between CPU accesses, local bus accesses, and memory accesses
GB2302604B (en) * 1995-06-23 2000-02-16 Advanced Risc Mach Ltd Data memory access control
JPH0916472A (ja) * 1995-07-04 1997-01-17 Fujitsu Ltd キャッシュメモリ試験方法
JP3123413B2 (ja) * 1995-11-07 2001-01-09 株式会社日立製作所 コンピュータシステム
KR0174711B1 (ko) * 1996-04-24 1999-04-15 김광호 하드디스크 캐시의 제어방법
US6298355B1 (en) * 1996-09-20 2001-10-02 Hitachi, Ltd. Computer system
US5870109A (en) * 1997-06-06 1999-02-09 Digital Equipment Corporation Graphic system with read/write overlap detector
US6014737A (en) * 1997-11-19 2000-01-11 Sony Corporation Of Japan Method and system for allowing a processor to perform read bypassing while automatically maintaining input/output data integrity
JP2000181796A (ja) * 1998-12-14 2000-06-30 Nec Corp 情報処理装置
US20050268019A1 (en) * 2004-06-01 2005-12-01 Che-Hui Chang Chien [interface and system for transmitting real-time data ]
KR100792213B1 (ko) * 2005-08-11 2008-01-07 삼성전자주식회사 메모리 컨트롤러와 메모리를 인터페이싱하는 랩퍼 회로
US8510509B2 (en) * 2007-12-18 2013-08-13 International Business Machines Corporation Data transfer to memory over an input/output (I/O) interconnect
US20090327564A1 (en) * 2008-06-30 2009-12-31 Nagabhushan Chitlur Method and apparatus of implementing control and status registers using coherent system memory
CN104317728B (zh) * 2014-10-13 2018-03-23 大唐移动通信设备有限公司 一种安全复位存储设备的方法和装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3845474A (en) * 1973-11-05 1974-10-29 Honeywell Inf Systems Cache store clearing operation for multiprocessor mode
US4055851A (en) * 1976-02-13 1977-10-25 Digital Equipment Corporation Memory module with means for generating a control signal that inhibits a subsequent overlapped memory cycle during a reading operation portion of a reading memory cycle
US4075686A (en) * 1976-12-30 1978-02-21 Honeywell Information Systems Inc. Input/output cache system including bypass capability
US4136386A (en) * 1977-10-06 1979-01-23 International Business Machines Corporation Backing store access coordination in a multi-processor system
US4161024A (en) * 1977-12-22 1979-07-10 Honeywell Information Systems Inc. Private cache-to-CPU interface in a bus oriented data processing system
US4167782A (en) * 1977-12-22 1979-09-11 Honeywell Information Systems Inc. Continuous updating of cache store
JPS54128634A (en) * 1978-03-30 1979-10-05 Toshiba Corp Cash memory control system
US4197580A (en) * 1978-06-08 1980-04-08 Bell Telephone Laboratories, Incorporated Data processing system including a cache memory
US4264953A (en) * 1979-03-30 1981-04-28 Honeywell Inc. Virtual cache
US4467421A (en) * 1979-10-18 1984-08-21 Storage Technology Corporation Virtual storage system and method
US4322795A (en) * 1980-01-24 1982-03-30 Honeywell Information Systems Inc. Cache memory utilizing selective clearing and least recently used updating
US4371928A (en) * 1980-04-15 1983-02-01 Honeywell Information Systems Inc. Interface for controlling information transfers between main data processing systems units and a central subsystem
US4323967A (en) * 1980-04-15 1982-04-06 Honeywell Information Systems Inc. Local bus interface for controlling information transfers between units in a central subsystem
JPS5714636A (en) * 1980-06-13 1982-01-25 Exxon Research Engineering Co Chlorinated butyl rubber/brominated butyl rubber blend compound with improved adhesive properties
US4399506A (en) * 1980-10-06 1983-08-16 International Business Machines Corporation Store-in-cache processor means for clearing main storage
US4445170A (en) * 1981-03-19 1984-04-24 Zilog, Inc. Computer segmented memory management technique wherein two expandable memory portions are contained within a single segment
US4410944A (en) * 1981-03-24 1983-10-18 Burroughs Corporation Apparatus and method for maintaining cache memory integrity in a shared memory environment
US4445174A (en) * 1981-03-31 1984-04-24 International Business Machines Corporation Multiprocessing system including a shared cache
JPS5848289A (ja) * 1981-09-17 1983-03-22 Fuji Electric Co Ltd バツフアメモリ制御方式
JPS59160899A (ja) * 1982-12-09 1984-09-11 セコイア・システムス・インコ−ポレ−テツド メモリ−・バツク・アツプ・システム
US4467921A (en) * 1983-04-08 1984-08-28 Colgate-Palmolive Company Visually clear dentifrice

Also Published As

Publication number Publication date
US5148526A (en) 1992-09-15
US5479625A (en) 1995-12-26
US5502825A (en) 1996-03-26
US5619677A (en) 1997-04-08
DE3502147A1 (de) 1985-08-08
US5509133A (en) 1996-04-16
US6381680B1 (en) 2002-04-30
US5822761A (en) 1998-10-13

Similar Documents

Publication Publication Date Title
DE3502147C2 (de)
DE3011552C2 (de)
EP0013737B1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE3803759C2 (de)
DE3146356C2 (de) Vorrichtung zur Steuerung der Übertragung von Gerätesteuerinformation in einem Datenendgerät
DE69233655T2 (de) Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedenartiger Prozessoren
DE2226382C3 (de) Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern
EP0010198B1 (de) Vorrichtung zur Steuerung des Seitenaustausches in einem Datenverarbeitungssystem mit virtuellem Speicher
DE3439302C2 (de)
DE69724355T2 (de) Erweiterte symmetrische Multiprozessorarchitektur
DE2240433C3 (de) Hierarchische Datenspeicheranordnung für mehrere über Pufferspeicher angeschlossene Einheiten und ein Verfahren zu deren Betrieb
DE2807476C2 (de) Speichereinrichtung mit mehreren virtuellen Adreßräumen
EP0600112A1 (de) Datenverarbeitungsanlage mit virtueller Speicheradressierung und schlüsselgesteuertem Speicherzugriff
DE3102150A1 (de) "schaltungsanordnung mit einem cachespeicher fuer eine zentraleinheit einer datenverarbeitungsanlage
DE2415900A1 (de) Rechenautomat mit mehreren mit je einem vorratsspeicher versehenen rechenanlagen
DE4417068A1 (de) Verfahren und Einrichtung zum Betreiben eines Einzel-Prozessor-Computersystems als Mehr-Prozessor-System
EP1249744A1 (de) Verfahren zum Herstellen konsistenter Speicherinhalte in redundanten Systemen
DE3642324A1 (de) Multiprozessoranlage mit prozessor-zugriffssteuerung
DE3046912C2 (de) Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE3012951A1 (de) Datenverarbeitungssystem
DE69822364T2 (de) Aufspürung von heissen Stellen in einer Maschine mit nichtuniformen Speicherzugriffen
DE69724732T2 (de) Atomare Operation in Fernspeicher und Vorrichtung zur Durchführung der Operation
EP0062141B1 (de) Schaltungsanordnung zur Eingabe von Steuerbefehlen in ein Mikrocomputersystem
DE3936339C2 (de) DMA-Controller

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition