DE3687947T2 - Schnittstelle und Verfahren für Buszugriff in einem Rechner. - Google Patents
Schnittstelle und Verfahren für Buszugriff in einem Rechner.Info
- Publication number
- DE3687947T2 DE3687947T2 DE86308026T DE3687947T DE3687947T2 DE 3687947 T2 DE3687947 T2 DE 3687947T2 DE 86308026 T DE86308026 T DE 86308026T DE 3687947 T DE3687947 T DE 3687947T DE 3687947 T2 DE3687947 T2 DE 3687947T2
- Authority
- DE
- Germany
- Prior art keywords
- signal
- system bus
- data
- bus
- 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 - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 15
- 230000015654 memory Effects 0.000 claims abstract description 154
- 238000012546 transfer Methods 0.000 claims abstract description 26
- 230000004044 response Effects 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 3
- 230000002045 lasting effect Effects 0.000 claims 1
- 238000012937 correction Methods 0.000 description 35
- 238000012360 testing method Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 3
- 230000009849 deactivation Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000009225 memory damage Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 208000011580 syndromic disease Diseases 0.000 description 2
- 101000874179 Homo sapiens Syndecan-1 Proteins 0.000 description 1
- 101000692109 Homo sapiens Syndecan-2 Proteins 0.000 description 1
- 102100035721 Syndecan-1 Human genes 0.000 description 1
- 102100026087 Syndecan-2 Human genes 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/368—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
- G06F13/378—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a parallel poll method
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
- G06F13/4243—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Communication Control (AREA)
- Small-Scale Networks (AREA)
- Information Transfer Systems (AREA)
- Medicines That Contain Protein Lipid Enzymes And Other Medicines (AREA)
Description
- Diese Erfindung betrifft ein Busprotokoll, das den Zugriff zu einem Systembus zuteilt und herstellt, der von einer Anzahl von Modulen in einem Rechnersystem genutzt wird. Insbesondere betrifft die Erfindung das Protokoll und die Einrichtung zur Implementierung des Busprotokolls.
- In Rechnersystemen, in denen eine Anzahl von Modulen einen Systembus gemeinsam nutzt, ist es allgemein üblich, jeden Modul in bezug auf den Bus mit einer unterschiedlichen Priorität zu versehen. In manchen Systemen ist die Priorität jedes Moduls festgelegt, während in anderen ein gegebenes Paketvermittlungssystem (token passing) vorgesehen ist, in welchem die Priorität von einem Modul zum nächsten weitergegeben wird. In allen diesen Systemen mit zugeteilter Benutzung kann ein Modul mit der höchsten Priorität die Nutzung der Busleitung zum Nachteil der Module mit geringerer Priorität beherrschen. Eine solche Monopolisierung ergibt sich unabhängig von der Wichtigkeit der einzelnen Befehle, die vom Modul mit der höchsten Priorität zum Bus gerade ausgeführt werden. Die Leistungsfähigkeit solcher Systeme kann Schaden erleiden, wenn wichtige Befehle in Modulen mit geringer Priorität auf ihre Ausführung warten müssen.
- Ein Systembus weist Leitungen zur Weiterleitung von Adressen, Befehlen, Daten und Steuersignalen zwischen den Modulen auf. Instruktionen werden oft in einer Phase zur Übersendung einer Adresse zusammen mit ihrem Befehl und in einer Phase zur Übersendung von Daten abgegeben.
- Der Datenbus kann daher in einem gesonderten Vorgang genutzt werden, während gleichzeitig ein neuer Befehl auf dem Systemadressenbus abgegeben wird. Systeme nach dem Stand der Technik übertragen oft die Aufgabe der Bestimmung von Beginn und Ende einer Daten- oder Befehlsphase an einen einzigen Modul im Rechnersystem. Dies kann sich als Belastung auswirken, die das System verlangsamt, weil Steuersignale von und zum zugewiesenen Bussteuermodul übertragen werden.
- Das USA-Patent US-A3-3.603.935 offenbart ein Speicherzugriffssystem, bei welchem eine Vielzahl von Prozessoren Zugriff zu einer Vielzahl von Speicherbanken hat. Wenn eine bestimmte Speicherbank gleichzeitig Zugriff von mehr als einem Prozessor erhalten soll, erfolgt der Zugriff nach dem folgenden Prioritätsschema. Wenn gerade keiner der Prozessoren Zugriff zu einer gegebenen Speicherbank hat, dann kann während einer einzigen Taktperiode eine Vielzahl von Zugriffsanforderungen akzeptiert werden. In den nachfolgenden Taktperioden können keine weiteren Zugriffsanforderungen akzeptiert werden, bis alle anhängigen Anforderungen berücksichtigt worden sind. Die Vielzahl der gleichzeitig zugeschalteten Zugriffsanforderungen wird nach einem festgelegten Prioritätsschema bedient.
- Es ist eine Aufgabe der vorliegenden Erfindung, die Steuerung des Buszugriffs aufzuteilen. Es ist ferner Aufgabe der vorliegenden Erfindung, die Leistungsfähigkeit eines Systems zu steigern, indem aus der Überlappung zwischen Systemadressen- und Systemdatenbussen Vorteile gezogen werden.
- Die vorliegende Erfindung bezieht sich auf ein Verfahren und eine Einrichtung, die ein besonderes Busprotokoll implementieren. Die Erfindung ist in den Ansprüchen l und 9 definiert. Die Einrichtung enthält eine Vielzahl von Anforderermodulen an einem Systembus. Ein Systemtakt legt die Folge der Taktzyklen auf dem Bus fest. Jeder Anforderer kann seine Anforderungsleitung in einem Taktzyklus aktivieren, in dem die System-belegt- Leitung nicht beansprucht ist. Anforderer, die ihre Anforderungsleitung aktiviert haben, erhalten in der Reihenfolge der Priorität Zugriff zum Bus. Das System gilt als von einem Anforderer belegt, wenn ein Anforderer seine Anforderungsleitung aktiviert. Die Systembelegt-Leitung wird durch einen Anforderer freigegeben, wenn er beginnt, einen Befehl auf den Systembus abzugeben. Einen Takt später gibt der Anforderer seine Anforderungsleitung frei. Das System-belegt-Signal wird von einer verdrahteten ODER-Leitung geführt, welche demzufolge nur freigegeben wird, nachdem alle Anforderer die Ansteuerung der System-belegt-Leitung beendet haben.
- Die Erfindung sieht ferner einen Speichermodul und für die Anforderer Mittel zur Abgabe eines Haltesignals während der Adressenphase eines Befehls vor. Das Haltesignal verlängert die Adressenphase auf dem Systembus. Durch eine Speichersteuereinheit wird während der Datenphase eines Befehls ein Wartesignal erzeugt. Das Haltesignal wird durch eine verdrahtete ODER-Leitung und das Wartesignal durch eine "Totempfahl"-(Totem- Pole-)Leitung weitergeleitet.
- Die vorliegende Erfindung gestattet vorteilhafterweise jedem Anforderer, unabhängig von seiner Priorität Zugriff zu einem Bus zu erhalten, weil alle Teilnehmer, die ihre Anforderungsleitung ansteuern, ihren Zugriff zum Bus erhalten, wenn die System-belegt-Leitung deaktiviert ist. Somit können Anforderer mit hoher Priorität nicht einfach das System monopolisieren, bloß weil sie eine hohe Priorität haben. Ein weiterer Vorzug der vorliegenden Erfindung ist die erhöhte Leistung, die durch die Aufteilung der Steuerung mittels des Haltesignals sowohl auf die Speichermodule und Anforderer als auch auf die Speichersteuereinheit möglich wird.
- Andere Aufgaben und Vorteile der Erfindung werden in der nachfolgenden Beschreibung der gegenwärtig bevorzugten Ausführungsform der Erfindung in Verbindung mit den Zeichnungen deutlich werden.
- Fig. 1 zeigt ein Übersichts-Blockschaltbild des ganzen Systems, das von der Erfindung Gebrauch macht;
- Fig. 2 ist ein Zeitablaufdiagramm der Signale auf einem Systembus der vorliegenden Erfindung;
- Fig. 3 ist eine schematische, logische Darstellung der Buszuteilungslogik der vorliegenden Erfindung in einem Anforderer des Systems von Fig. 1;
- Fig. 4 ist eine schematische Darstellung der Adressenphasenlogik der vorliegenden Erfindung, wie man sie in einem Anforderer des Systems von Fig. 1 findet;
- Fig. 5 ist eine schematische Darstellung der Datenphasenlogik der vorliegenden Erfindung, wie man sie in einem Anforderer des Systems von Fig. 1 findet;
- Fig. 6 ist eine schematische Darstellung der Buszugriffslogik der vorliegenden Erfindung in einem Speichermodul des Systems von Fig. 1;
- Fig. 7 ist eine vereinfachte schematische Darstellung der Logik zur Erzeugung des Haltesignals nach der vorliegenden Erfindung in einem Anforderer des Systems von Fig. 1;
- Fig. 8 ist eine schematische logische Darstellung der Legik zur Erzeugung des Haltesignals in einer Speichersteuereinheit nach Fig. 1; und
- Fig. 9A-I sind schematische Darstellungen der Erzeugung des Wartesignals in der Speichersteuereinheit der Fig. 1.
- Ein Gesamtsystem unter Nutzung der erfindungsgemäßen Technik ist in Fig. 1 dargestellt, worin ein oder mehrere Zentraleinheiten (CPU) 10 über einen Systembus 11 mit einer oder mehreren I/O-Kanalsteuerungen 17, einer Speichersteuerung 19 und mindestens einem Speichermodul 13 verbunden sind. Eine CPU enthält einen Datencachespeicher 12 und einen Befehlscachespeicher 14. In der bevorzugten Ausführungsform sind diese Cachespeicher Durchschreibecaches. Jeder Cachespeicher kann für sich den Zugang zum Systembus benötigen. Daher hat jeder Cachespeicher seine eigene Anforderungslogik, um Zugriff zum Bus zu erlangen. Die I/O-Kanalsteuerungen haben Verbindung zu einem programmierten I/O-DCH-Bus 15 und zu einem BMC-Bus 16 für die Übertragung von Daten von und zu Steuereinheiten 21 für externe Eingangs/Ausgangs-BMC-Geräte (BMC: Burst-Multiplexer-Kanal) und Steuereinheiten 22 für DCH-I/O-Geräte (DCH: Datenkanal). Der programmierte I/O-DCH-Bus 15 ist in der gegenwärtig bevorzugten Ausführungsform ein NOVA ECHLIPSE(R)-Bus, hergestellt von der Data General Corporation in Westboro/ Massachusetts. Die BMC-I/O-Geräte-Steuereinheiten 21 haben Verbindung sowohl mit dem PIO-Bus 15 als auch mit dem BMC-Bus 16. Die DCH-Geräte-Steuereinheiten 22 sind nur mit dem PIO-Bus 15 verbunden. Die Speichersteuerung 19 überwacht die Aktivitäten auf dem Systembus 11 und ist für die Korrektur jeglicher korrigierbarer Fehler verantwortlich, die bei den vom Speicher abgerufenen Daten auftreten. Eine Bedienkonsole 24 kann über einen Ferndiagnoseprozessor 26 an das System angeschlossen werden. In der gegenwärtig bevorzugten Ausführungsform sind die Speichersteuerung 19, der Ferndiagnoseprozessor 26 und die erste Eingang/Ausgang-Steuerung 17 alle auf der gleichen Modul- Karte angeordnet. Der Ferndiagnoseprozessor 26 veranlaßt regelmäßig Diagnoseroutinen und kommuniziert mit der Bedienkonsole 24.
- Um eine ordnungsgemäße Nutzung des Systembus durch alle Module und einzelne Anforderer, die durch ihn in Verbindung stehen, sicherzustellen, soll nun das Busprotokoll der vorliegenden Erfindung unter Bezugnahme auf das Zeitablaufdiagramm von Fig. 2 beschrieben werden. Ein Anforderer kann ein Datencachespeicher 12, ein Befehlscachespeicher 14, die Speichersteuerung 19 oder eine Eingang/Ausgang-Kanalsteuerung 17 sein. Die Signale sind in Fig. 2 invers dargestellt. Viele Leitungen sind offene Kollektorleitungen, die logisch eine UND-Funktion zur Folge haben, die an den Eingängen der Leitung ausgeführt wird. Bei mehr als einem Eingang zu einer Systembusleitung sind bei der vorliegenden Ausführungsform der Erfindung verdrahtete ODER-Verknüpfungen vorgesehen. Um eine verdrahtete ODER-Leitung mit offenen Kollektoreingängen zu erreichen, werden die Signale invertiert, wenn sie auf die Leitung abgegeben werden.
- Ein Anforderer löst einen Systembusarbeitsgang durch Ansteuerung seiner Anforderungsleitung (SDREQx) aus. Jedem Anforderer ist eine Anforderungsleitung mit unterschiedlicher Priorität zugewiesen. Der Zugriff zum Bus wird teilweise durch die Priorität der Anforderungsleitung eines Teilnehmers geregelt. In Fig. 2 hat der Anforderer, der SDREQ1 erzeugt, Priorität vor den Anforderern geringerer Priorität, die SCREQ2, SDREQ3 und SDREQ4 erzeugen.
- Erfindungsgemaß ist eine System-belegt-Leitung (SDBUSY) vorgesehen, um dabei zu helfen, daß eine Monopolisierung des Systembus durch einen Anforderer hoher Priorität verhindert wird. Ein Anforderer kann seine Anforderungsleitung nur ansteuern, wenn die System-belegt-Leitung nicht angesteuert ist. Wenn jedoch in einem Taktzyklus die Systembelegt-Leitung nicht angesteuert ist, kann eine beliebige Anzahl von Anforderern ihre Anforderungsleitung ansteuern, um eine Gelegenheit zur Nutzung des Bus zu bekommen. In Fig. 2 wird SDBUSY im Taktzyklus 2 freigegeben, was es den Anforderern, die den Bus benötigen, erlaubt, ihre Anforderungsleitung im Taktzyklus 3 anzusteuern. Alle Anforderer, die im Taktzyklus mit nicht beanspruchter System-belegt-Leitung ihre Anforderung geltend gemacht haben, haben nun in der Reihenfolge ihrer Priorität Gelegenheit zum Zugriff zum Systembus 11. Diese Verfahrensweise verhindert, daß ein Modul hoher Priorität die Benutzung des Bus beherrscht. Der Modul mit der hohen Priorität kann seine Anforderungsleitung nicht erneut ansteuern, bis die System-belegt-Leitung wieder freigegeben worden ist. Die System-belegt-Leitung wird angesteuert bleiben, bis jeder der Anforderer, der seine Anforderung geltend machen konnte, seinen Arbeitsgang beendet und die System-belegt-Leitung freigegeben hat. Die System-belegt-Leitung nach der vorliegenden Erfindung ist eine offene Kollektorleitung, die ein invertiertes Signal führt, um als verdrahtetes ODER zu funktionieren. Die Anforderungsleitungen sind Totem-Pole- Leitungen (Totempfahl-Leitungen).
- Ein Anforderer steuert die System-belegt-Leitung gleichzeitig mit seiner Anforderungsleitung an. Ein Anforderer setzt die Ansteuerung der System-belegt-Leitung fort, bis alle Anforderer höherer Priorität, die im gleichen Taktzyklus ebenfalls Anspruch erhoben haben, alle ihre Arbeitsgänge abgeschlossen haben. Hat ein Anforderer einmal die höchste Priorität, macht er die System-belegt-Leitung frei und startet seine Adressenphase, indem er eine Adresse über die Adressenleitungen des Systembus sendet. Der System-belegt- Zustand bleibt jedoch erhalten, wenn noch andere Anforderer mit geringerer Priorität ihren Zyklus erwarten und daher die System-belegt-Leitung ansteuern. Einen Takt nach der Freigabe des System-belegt-Zustands gibt der Anforderer dann seine Anforderungsleitung frei.
- Zu Beginn der Adressenphase betätigt ein Anforderer, der die Priorität erhalten hat, die Adressen- und Befehlsleitungen (SDC) des Systembus und zusätzlich eine Halteleitung (FREZ). In der gegenwärtig bevorzugten Ausführungsform der Erfindung gibt es drei Befehlsleitungen, die sieben Arbeitsgänge definieren und zur Anzeige, daß kein Arbeitsgang vorliegt (no-op), alle Null sind. Die Halteleitung informiert die Speichersteuerung 19 und die Speichermodule 13, daß eine neue Adressenphase begonnen hat. Der Anforderer gibt ein Haltesignal nur für einen Systemtakt ab. Die Speichersteuerung 19, ein Cachespeicher oder ein Speichermodul 13 können mit anderen Aktivitäten belegt sein und die Ausdehnung der Adressenphase benötigen, um ihnen Gelegenheit zu geben, die neue Adresse in einer späteren Taktperiode zu prüfen. Die Adressenphase wird ausgedehnt, wenn irgendein Modul die Halteleitung ansteuert, um sie beansprucht zu halten. Die Speichersteuerung 19 betätigt die Halteleitung, um den Abschluß gerade ablaufender Datenübertragungen zu ermöglichen, bevor anderen der Start erlaubt wird. Die Adressenphase müßte auch verlängerbar sein, wenn sie abläuft, während die Speichersteuerung 19 gerade eine Fehlerkorrektur durchführt. Die Beanspruchung der Halteleitung verhindert die Beendigung einer Adressenphase, so daß eine Übertragung, die eine Anzahl von Datenübertragungen beinhaltet, bis zu ihrer Vervollständigung fortgesetzt werden kann. Im Falle einer Fehlerkorrektur wird die Adressenphase ausgedehnt, bis korrigierte Daten auf die Datenleitungen abgegeben sind. Wenn das letzte Datenwort abgegeben ist, wird die Speichersteuerung FREZ (Halten) deaktiviert. Die Halteleitung ist ähnlich der Systembelegt-Leitung eine offene Kollektorleitung.
- In der gegenwärtig bevorzugten Ausführungsform ist auch eine Wartesignalleitung (WAIT) vorgesehen. Die WAIT-Leitung ist eine Totem-Pole-Leitung, die nur durch die Speichersteuerung 19 angesteuert werden kann. Die gegenwartig bevorzugte Ausführungsform sieht auch eine Fehlerleitung (ERCC) vor, durch die die Speichersteuerung 19 den Speicher von einem Fehler informieren und dem Speichermodul mitteilen kann, den Bus 11 zu verlassen. WAIT wird nicht an den Speicher gesandt; es wird an die Anforderer gesandt, um sie zu informieren, daß die Datenphase verlängert wird. Ein Anforderer kann keine neue Adressenphase starten, bevor nicht die laufende Datenphase abgeschlossen worden ist. Zum Starten einer Adressenphase müssen entweder die Halteleitung und die Warteleitung freigegeben werden oder FREZ muß für zwei aufeinanderfolgende Takte deaktiviert bleiben. Die Warteleitung kann daher die Adressenphase eines Anforderers verlängern, wenn ein Speicherfehler entdeckt wird. WAIT wird von der Speichersteuerung 19 zu Beginn jeder Datenphase aufgeprägt und bleibt aufgeprägt, bis die Speichersteuerung 19 feststellt, daß gültige Daten bereit für eine Übertragung sind. Wenn Daten auf den Datenbus gegeben werden, wird WAIT zurückgesetzt, wenn die Speichersteuerung nicht einen Fehler feststellt. Wenn es einen Fehler gibt, wird das Fehlersignal erzeugt und WAIT bleibt erhalten, bis die korrigierten Daten auf den Datenbus gegeben sind, wie in den Taktzyklen 19 und 20 in Fig. 2 dargestellt ist. FREZ ist ein zu langsames Signal, um die Adressenphase zu verlängern, wenn es einen Fehler gibt. Daher ist eine "Totempfahl"- Warteleitung erwünscht. FREZ ist eine langsame Leitung, weil sie an eine große Anzahl von Ein- und Ausgangs-Modulen angeschlossen ist. Die Warteleitung wird andererseits allein von der Speichersteuerung 19 angesteuert und ausschließlich zu den Anforderern gesandt. Weniger Anschlüsse und weniger benötigte geätzte Leiterbahnen machen WAIT zu einem schnelleren Signal. WAIT kann als Antwort auf einen Fehler beansprucht werden, selbst wenn der Fehler erst spät in einem Taktzyklus entdeckt wird. Das Setzen von WAIT hält weitere Anforderer von den Adressenleitungen fern.
- Wenn wie in der bevorzugten Ausführungsform ein Rechnersystem mit einer Doppelbitfehlerkorrektur in der Speichersteuerung 19 ausgerüstet ist, dann wird durch die Speichersteuerung ein Bussperrsignal (BUSINH) für die Übertragung angefügt. In der bevorzugten Ausführungsform kann ein Doppelbitfehler nur korrigiert werden, wenn es einen Plattenfehler in dem Speicher gibt, aus dem die Daten entnommen wurden. Ein durch einen Plattenfehler verursachter Doppelfehler kann durch die den Fachleuten geläufigen Verfahren korrigiert werden, indem der für die Korrektur verantwortliche Modul zur Manipulation der Daten und zu einem Zurückschreiben der Daten an den Speicherplatz veranlaßt wird. Die Doppelfehlerkorrektur ist nicht Bestandteil der vorliegenden Erfindung und wurde schon in vielen Aufsätzen beschrieben. Jegliche bekannte Verfahren der Doppelfehlerkorrektur können in Verbindung mit der vorliegenden Erfindung benutzt werden.
- Ein Bussperrsignal wird einen Anforderer, der eine Adresse auf die Adressenleitungen gegeben hat, dazu veranlassen, einen Taktzyklus nach der Aktivierung der Bussperrleitung von den Adressenleitungen entfernt zu werden. Das System wird davon in Kenntnis gesetzt, daß eine Doppelbitfehlerkorrektur durchzuführen ist und daß der Bus für diesen Zweck benötigt wird. Nach Deaktivierung der Bussperrleitung wird jener Anforderer wieder in die Adressenphase eintreten und seine Adresse auf den Bus zurückbringen. Der Anforderer wird dann auch wieder FREZ für ein Taktsignal aufprägen.
- Wenn ein zweiter Anforderer in die Adressenphase eintritt, während ein erster Anforderer in seiner Datenphase ist, wird die Speichersteuerung 19 die Halteleitung ansteuern, wie in den Taktzyklen 10 bis 14 von Fig. 2 dargestellt ist. Die Halteleitung wird bis zum letzten Systemakt der Datenphase angesteuert. Nach der Freigabe der Halteleitung kann der zweite Anforderer seine Datenphase starten, unmittelbar nachdem der erste Anforderer seine Datenphase beendet hat. Dies ermöglicht die maximale Nutzung der Datenleitungen des Systems und macht so das System schneller.
- Bei einer Speicherleseoperation erzeugt der Speicher ein Daten-nicht-bereit-Signal (DNREADY), bis er bereit ist, das erste adressierte Wort auf den Systembus zu geben. Die Speichersteuerung 19 erzeugt WAIT, sobald die Datenphase beginnt und hält WAIT aufrecht, solange die Daten nicht fertig sind, wie in den Takten 16 bis 18 von Fig. 2 dargestellt ist. Beim der Deaktivierung von DNREADY folgenden Takt wird die Speichersteuerung 19 die auf den Bus gegebenen Daten in herkömmlicher Weise auf Fehler untersuchen. Wenn ein Fehler gefunden wird, setzt die Speichersteuerung die Aufprägung des WAIT-Signals fort. Auch wird ein Fehlersignal (ERCC) abgegeben, um dem Speicher zu sagen, daß die Abgabe von Daten auf den Systembus zu unterbrechen ist. Die Speichersteuerung hat dann die Gelegenheit, den Fehler zu korrigieren und korrigierte Daten auf den Bus abzugeben, wie in den Takten 20 und 21 dargestellt ist. WAIT wird während der ganzen Korrekturphase aufgeprägt. Nach der Schaffung korrigierter Daten auf dem Systembus wird die Speichersteuerung WAIT deaktivieren. Dies informiert den Anforderer, daß die Daten nunmehr gültig sind. Ein Anforderer, der eine Leseoperation ausführt, überwacht daher die Warteleitung und wird keine Daten von den Datenleitungen entnehmen, bis WAIT deaktiviert worden ist.
- Bei einer Schreiboperation oder einer Systemdatenübertragung von einem Modul zu einem anderen wird ein Anforderer, beginnend bei der Rückflanke der Adressenphase, Daten an den Systembus abgeben. Die Daten werden weiter abgegeben, bis das WAIT-Signal von der Speichersteuerung deaktiviert wird. Die Deaktivierung von WAIT zeigt an, daß der Speicher oder der empfangende Modul zur Annahme der Daten des Anforderers bereit ist. Wenn bei einer Schreiboperation oder bei einer Systemdatenübertragung zwischen Modulen ein Paritätsfehler auftritt, wird ein Schreibabbruchsignal den Speichermodul veranlassen, den Arbeitsgang durch Ausführung einer Leseoperation anstatt einer Schreiboperation zu annullieren. Der Daten auf den Bus abgebende Anforderer setzt diese Datenabgabe fort, bis WAIT durch die Speichersteuerung 19 deaktiviert wird. Das System wird das Auftreten dieses Fehlers, der nicht korrigierbar ist, als einen fatalen Fehler behandeln.
- Jeder Anforderer im Rechnersystem ist mit einer Logik ausgestattet, die den Systembus 11 überwacht und feststellt, wann dieser Teilnehmer Priorität hat, den Bus zu steuern und Befehle sowie Daten über den Bus abzusenden. Für die gegenwärtig bevorzugte Ausführungsform ist die Logik zur Ausführung der Buszuteilung entsprechend dem Busprotokoll der vorliegenden Erfindung in Fig. 3 dargestellt. Wenn ein Anforderer Zugriff zum Systembus haben möchte, prägt er intern das Signal SETREQ auf. Jedoch kann nach dem Busprotokoll der vorliegenden Erfindung Zugriff zum Bus nur erlangt werden, wenn das System-belegt-Signal (SDBUSY) nicht vorhanden ist. Während eines Taktzyklus, in dem SDBUSY nicht vorhanden ist, kann eine beliebige Anzahl von Anforderern ihre Anforderungsleitungen ansteuern. Wenn SDBUSY nicht vorhanden ist und der Anforderer wünscht, Zugriff zum Systembus zu erhalten, wird SETREQ ein UND-Tor 74 und folglich ein Flipflop 76 setzen. Das Flipflop 76 setzt im nächsten Taktzyklus REQ. REQ veranlaßt die Beanspruchung der Anforderungsleitung und das Setzen von SDBUSY.
- Alle Anforderer, die während dieser Taktperiode ihre Anforderungsleitungen angesteuert haben, warten in einer Warteschlange in der Reihenfolge ihrer Priorität auf den Zugriff zum Systembus. Jeder Anforderer hat ein UND-Tor 72, welches festlegt, ob er Priorität hat. Für jeden Anforderer sind die Anforderungsleitungen jedes Anforderers höherer Priorität dem UND-Tor 72 zugeführt. Priorität wird durch einen Anforderer aufgeprägt, wenn keiner der Teilnehmer höherer Priorität seine Anforderungsleitung ansteuert. Bei der gegenwärtig bevorzugten Ausführungsform wird die höchste Prioritätsanforderung durch einen Auffrischzyklus veranlaßt, der durch das Anforderungssignal REFREQ ausgelöst wird. Auffrischen ist ein nach dem Stand der Technik wohlbekanntes Verfahren zum Auffrischen der Kondensatoren an den Speicherplätzen.
- REQ ist mit einem internen Treiberhaltesignal DRVFREZ in einem UND-Tor 78 kombiniert. Wenn REQ einmal vorhanden ist, hält das Tor 78 REQ aufrecht, bis der Anforderer Priorität hat und in die Adressenphase eingetreten ist. Wenn der Anforderer in die Adressenphase eintritt, prägt er DRVFREZ auf, was das Tor 78 deaktiviert und das Flipflop 76 veranlaßt, die Anforderungsleitung beim nächsten Takt freizugeben. DRVFREZ wird auch zu einem Tor 80 geleitet, das sofort die System-belegt-Leitung deaktiviert. Die Erzeugung und Anwendung von DRVFREZ in der Adressenphase wird weiter unten in dem Abschnitt über die Adressenphasenlogik besprochen.
- Es gibt gewisse Situationen, in denen ein Anforderer den Bus für eine längere Zeit benötigen wird, weil ein Befehl hoher Priorität die Abarbeitung einer Anzahl Befehle erfordert. Ein Semaphore ist ein Beispiel für einen solchen erweiterten Befehl. Unter diesen Umständen, unter denen eine erweiterte Benutzung des Bus erforderlich ist, prägt ein Anforderer das Signal SETLOCK auf. SETLOCK wird mit einem Signal SETR in einem UND-Tor 81 kombiniert. SETR wird durch ein ODER-Tor 82 aufgeprägt, wenn einem Anforderer gestattet ist, seine Anforderungsleitung anzusteuern. Eine Kombination von SETLOCK und SETR aktiviert über das Tor 81 und das Flipflop 84 BUSLOCK (BUS- VERRIEGELUNG). Bei Erledigung eines Arbeitsganges in einer Serie, die für Semaphore erforderlich ist, wird SDBUSY nicht wie üblich freigegeben, weil BUSLOCK an einem ODER-Tor 86 anliegt. Deshalb bleibt SDBUSY aufgeprägt, und die Kombination von BUSLOCK, PRORITY und SETREQ an einem UND-Tor 88 bewirkt, daß die Anforderungsleitung für den nächsten Arbeitsgang des Semaphore angesteuert bleibt. Ein busblockierter Satz von Befehlen kann durch eine Anforderung höherer Priorität, wie RE- FREQ, unterbrochen werden. Das vorliegend beschriebene System gibt REFREQ die höchste Priorität und erlaubt die Beanspruchung von REFREQ sogar während eines SDBUSY. Daher ist es nach jeder Operation erforderlich, die Priorität zu prüfen, selbst wenn zu Beginn des Semaphore Priorität gegeben war. Bei der letzten Operation einer busblockierten Folge wird SETLOCK nicht mehr länger aufgeprägt, so daß, wenn SETR aufgeprägt wird, die Kombination von BUSLOCK und Nicht-SETR am Tor 81 das Zurücksetzen von BUSLOCK auslöst. Das Zurücksetzen erfolgt, wenn die letzte Operation die Priorität hat, weiterzumachen, wie im Tor 88 bestimmt ist, das SETR aufprägt. Von nun an wird diese letzte Operation in normaler Weise behandelt.
- Stellt ein Anforderer fest, daß er Priorität für den Zugriff zum Systembus erhalten hat, kann er anschließend in seine Adressenphase eintreten. Die Adressenphasenlogik für einen Anforderer ist in Fig. 4 dargestellt. Die Adressenphase wird, wie dargestellt, an einem Kombinationstor 90 eingegeben. Zwei der Anforderungen für das Beginnen einer Adressenphase sind, daß der Anforderer eine Anforderung beansprucht, wie es durch REQ angezeigt ist, und daß der Anforderer Priorität hat, was beides in der Buszuteilungslogik festgestellt wird. Es ist auch erforderlich, zu prüfen, ob das Haltesignal (FREZ) nicht aufgeprägt ist, da jeder Modul das FREZ-Signal über den Systembus aufprägen kann, um die vorhergehende Adressenphase zu verlängern. Ein Anforderer kann seine Adressenphase nicht starten, bevor nicht der vorhergehende Anforderer seine Adressenphase beendet hat. Wenn eine Adressenphase beendet ist, beginnt unmittelbar danach die Datenphase. Daher ist zusätzlich zum Haltesignal das Wartesignal ein Kriterium für das Starten der Adressenphase. Die Adressenphase kann beginnen, wenn sowohl WAIT als auch FREZ deaktiviert sind. Wenn WAIT noch aufgeprägt ist, würde das bedeuten, daß die Datenphase verlängert ist, um eine Fehlerkorrektur oder eine Blockübertragung durchzuführen. Es ist auch möglich, eine neue Adressenphase zu starten, wenn das Haltesignal und ein Haltesicherungssignal (FREZSV) beide nicht aufgeprägt sind. Das Haltesicherungssignal ist eine um einen Takt verzögerte Version des in einem Flip-Flop 91 erzeugten Haltesignals. Die das Haltesicherungssignal enthaltende Kombination würde den Beginn einer Adressenphase in einer Situation wie derjenigen beim Taktzyklus 8 der Fig. 2 gestatten, in der WAIT in einer zweiten Datenphase einer Blockübertragung aufgeprägt wurde, aber keine Adressenphase in Bearbeitung war.
- Nach Erfüllung der Bedingungen für den Beginn einer Adressenphase veranlaßt ein Flipflop 92 die Aufprägung eines Adressenabgabesignals (DRVSA) und ein Flip-Flop 94 die Aufprägung von DRVFREZ. Das DRVFREZ-Signal wird von der Buszuteilungslogik der Fig. 3 genutzt, um SDBUSY zu deaktivieren. Wenn der Anforderer DRVFREZ aufprägt, wird ein Tor 96 normalerweise FREZ aufprägen. FREZ wird in das Tor 90 zurückgeführt und dadurch setzt das Flipflop 94 wieder DRVFREZ. Somit gibt ein Anforderer nur während des ersten Taktzyklus einer Adressenphase das Haltesignal ab. Das DRVSA-Signal jedoch, das die Adressenleitungen veranlaßt, von Anforderern gespeist zu werden, wird weiterhin aufgeprägt bleiben, wenn FREZ durch einige andere Module abgegeben oder wenn WAIT aufgeprägt wird. FREZ kann von einem Modul abgegeben werden, der mehr Zeit benötigt, bevor er die Adressenleitungen liest. Wenn ein Befehl anhängig ist, während eine neue Adressenphase angefordert wird, dann wird die Speichersteuerung FREZ aufprägen, bis das letzte Datenwort übertragen ist. Wenn es jedoch bei der letzten Datenübertragung einen Fehler gibt, weil FREZ langsamer auf einen Fehler reagiert als WAIT, dann wird es erforderlich, das WAIT-Signal zu prüfen, bevor die Abgabe von Adressensignalen auf die Adressenleitungen unterbrochen wird. Daher wird eine Adressenphase nicht beendet, bevor nicht FREZ als auch WAIT deaktiviert sind.
- Das Bussperrsignal (BUSINH) ist ein Signal, das in einem System vorgesehen werden kann, um zu helfen, eine Doppelbitfehlerkorrektur zu implementieren. Das Bussperrsignal ist vorgesehen, um einen Anforderer in der Mitte seiner Adressenphase an den Punkt zurückzubringen, wo er etwa zu Beginn seiner Adressenphase war. Die Bussperre veranlaßt den Anforderer, die Abgabe von Signalen auf Adressen- und Befehlsleitungen zu stoppen. Somit ist der Anforderer vom Systembus abgeschaltet. Der Anforderer wird in die Lage versetzt, wieder Zugriff zum Systembus zu erhalten und seinen Arbeitsgang neu zu starten, wenn die Doppelbitfehlerkorrektur vollendet und das Bussperrsignal deaktiviert ist. Das Bussperrsignal wird gesichert, um in einem Flipflop 93 eine um einen Takt verzögerte Version BUSINHFF zu erzeugen. Das gesicherte Bussperrsignal setzt in Kombination mit DRVSA am Tor 90 die Flipflops 92 und das Flipflop 94. Somit ist der Anforderer im Takt nach der Deaktivierung des Bussperrsignals bereit, DRVSA und DRVFREZ aufzuprägen. Die Deaktivierung der Bussperre wird den Toren 96 und 98 zugeführt, um FREZ und die Adressenleitungen zu aktivieren.
- Ein Anforderer beginnt seine Datenphase unmittelbar nach Abschluß seiner Adressenphase.
- Die Datenphase wird nun unter Bezugnahme auf die Fig. 5 beschrieben. Dies kann einfach durch Eingabe des Adressenabgabesignals DRVSA in einen Datenphasenstatusgeber 100 bestimmt werden. Nach der Deaktivierung von DRVSA aktiviert der Datenphasenstatusgeber 100 die Datenleitungstreiber, wenn der durch die Signale SDC 0-2 von den Befehlsleitungen festgelegte Befehl eine Schreiboperation enthält. Wenn der Befehl Lesen vorgibt, dann werden die Daten von den Datenleitungen in ein Dateneingangsregister gegeben.
- Eine Datenphase ist bis zur Deaktivierung des Wartesignals nicht abgeschlossen. Deshalb wird WAIT in den Datenphasenstatusgeber 100 eingegeben. Wenn WAIT aufgeprägt wird, bleiben in Anhängigkeit vom anhängigen Befehl die Datenleitungstreiber aktiviert oder die Daten werden nicht von den Datenleitungen in das Dateneingangsregister gegeben. Bei einer Schreiboperation nach der Deaktivierung von WAIT werden die Datenleitungstreiber ausgeschaltet. Für eine Leseoperation bewirkt die Deaktivierung von WAIT, daß die Daten, die nun gültig sein müssen, von den Datenleitungen in das Dateneingangsregister 102 gegeben werden.
- Unter Bezugnahme auf die Fig. 6 wird jetzt eine vereinfachte schematische Speichermodul-Buszugriffslogik illustriert. Ein Adressendecoder 120 empfängt das Befehlssignal (SDC) und die notwendigen Adressensignale vom Systembus, um zu bestimmen, ob dieser bestimmte Speichermodul durch die auf dem Systembus anhängige Operation ausgewählt worden ist. Die Auswahl des Speichermoduls hängt davon ab, ob der Befehl ein Speicherbefehl ist, und wenn ja, ob der Speichermodul der adressierte ist. Wenn der Modul ausgewählt ist, wird ein Kartenauswahlsignal erzeugt. Zu Beginn der Datenphase, festgelegt durch einen Datenphasendecoder 122, setzt ein Flip-Flop 124 MEMACK, wenn die Kartenauswahl aktiviert ist. Der Datenphasendecoder 122 bestimmt, daß mit dem Erhalt eines Adressenphasenendesignals von einem Adressenphasendecoder 126 die Datenphase beginnt. Eine Adressenphase endet, wenn FREZ und die Fehlerleitung (ERCC) nicht aktiviert sind. Die Datenphase beginnt unmittelbar auf das Ende der Adressenphase folgend.
- Wenn der Speichermodul ausgewählt worden ist, ist es wichtig, daß der Speichermodul Gelegenheit hat, die vollständige Adresse vom Systembus abzunehmen, um sie für die vorgeschriebene Operation zu benutzen. Um die Adresse auf den Adressenleitungen zu halten, kann der Speichermodul nach der vorliegenden Erfindung FREZ aktivieren. Das FREZ-Signal verlängert die Adressenphase eines Anforderers. Der Speichermodul enthält eine Lese-/Schreib-Steuerung 128, die ein Signal erzeugt, wenn der Adreßspeicher 132 voll und gegenwärtig nicht in der Lage ist, die Adresse vom Systembus anzunehmen. Eine Haltesteuerung 130 erzeugt ein Haltesignal (FREZ), wenn der Adreßspeicher voll und der Speichermodul ausgewählt worden ist. FREZ wird nach Eingabe der Adressenphase und nach dem ersten Taktzyklus der Adressenphase erzeugt. Während des ersten Taktzyklus der Adressenphase erzeugt der Anforderer das Haltesignal.
- Die Lese-/Schreib-Steuerung empfängt ein Schreibabbruchsignal (WRTABORT), das bei einer Doppelbitfehlerkorrektur von Nutzen ist. Wenn ein System eine Doppelbitfehlerkorrektur enthält, ist es wünschenswert, daß der Speichermodul in der Lage ist, einen Schreibvorgang abzubrechen und ihn später nach Abschluß der Doppelbitfehlerkorrektur neu zu starten. Das Schreibabbruchsignal kann auch benutzt werden, wenn es einen Adressenparitätsfehler gibt, um das Einschreiben in eine falsche Adresse zu verhindern. Bei der Doppelbitfehlerkorrektur wird auch das ERCC-Signal benutzt, welches der Lese-/Schreib-Steuerung 128 mitteilt, die sequentielle Abtastung ihrer Speichermatrix zu stoppen und sich vom Bus zu trennen. Die Lese-/Schreib-Steuerung 128 steuert zusammen mit dem Adreßspeicher 132 die Adressierung des Speichers.
- Die Lese-/Schreib-Steuerung 128 ist die Quelle des Daten-nicht-bereit-Signals (DNREADY), das bis zum Beginn einer Datenphase ausgesandt wird, wenn der Speichermodul für das Lesen ausgewählt ist, außer der Modul hat die adressierten Daten fertig zur Abgabe auf die Datenleitungen. Wenn Daten-nicht-bereit gesetzt ist, wird es deaktiviert, nachdem der Speichermodul Zugriff zu den angeforderten Daten vom RAM 134 hat, und zwar mit den den Daten zugeordneten Prüfbits (CBIT) zur Fehlerfeststellung und -korrektur. Ein Dateneingangsregister 136 ist vorgesehen, um die Daten- und Prüfbits von einem Bus aufzunehmen und sie für zwei Takte stabil zu halten, bis sie während eines Schreibvorgangs in den Speicher 134 eingeschrieben sind. In der gegenwärtig bevorzugten Ausführungsform ist der Speicher 134 ein dynamischer RAM mit 264 kbit. Jedoch kann die Erfindung mit Speichern jeglicher Art und Größe ausgeführt werden. Tatsächlich schafft das Busprotokoll der vorliegenden Erfindung in vorteilhafter Weise Flexibilität und erlaubt auch langsamere Speicher, da FREZ erzeugt werden kann, um die Adressenphase zu verlängern, und da DNREADY die Datenphase auf dem Systembus verlängern kann.
- Entsprechend der verteilten Kontrolle über das Haltesignal der vorliegenden Erfindung können der Befehlscachespeicher 14 und der Datencachespeicher 12 FREZ erzeugen, um die Adressenphase zu verlängern, wenn der Cache seine Ungültigkeitsprozedur an der neuen Adresse momentan nicht ausführen kann. In der Fachwelt ist es gut bekannt, Durchschreibecaches mit einem Mechanismus zu versehen, der Daten, die er gespeichert hat, ungültig macht, wenn der betreffende Speicherbereich eingeschrieben wird. Unter Bezugnahme auf Fig. 7 ist ein Ungültigkeitsstatusgeber 140 vorgesehen, der die Ungültigkeitsprozedur steuert. Ein Adreßspeicher 142 nimmt eine Adresse vom Systembus auf, wenn es sich um einen Schreibvorgang handelt, was von den Befehlsbits bestimmt wird, die vom Ungültigkeitsstatusgeber 140 vom Bus abgenommen werden. Ein Kennwortspeicher 146 enthält ein Kennwort für jeden Speicherplatz im Cache. Das Kennwort gibt an, von welcher Seite im Speichermodul die Daten im Cache entnommen wurden. Ein Adressencomparator 144 stellt fest, ob der adressierte Speicherplatz einer der Seitenadressen im Kennwortspeicher entspricht. Ein Gültigkeitsbitspeicher 148 enthält einen Bit für jeden Speicherplatz im Cache, um anzuzeigen, ob die im Cache gespeicherten Daten gültig bleiben. Wenn ein Schreibvorgang auf einem Speicherplatz ausgeführt wird, der einem Cachespeicherplatz entspricht, wird der Gültigkeitsbit für diesen Cachespeicherplatz ungültig gemacht.
- Entsprechend der vorliegenden Erfindung wird in einer Situation, in der der Adreßspeicher 142 bei Abgabe einer neuen Schreiboperation auf den Adressenbus voll ist, vom Cache FREZ erzeugt, um die Adressenphase zu verlängern, bis der Cache die Adresse in seinen Speicher 142 nehmen kann, um seine Ungültigkeitsprozedur abzuschließen. Der Ungültigkeitsstatusgeber 140 kann unter diesen Bedingungen FREZ erzeugen, wobei jegliche geeignete Logiktore benutzt werden können, wie sie ein Fachmann angeben kann.
- Unter Bezugnahme auf Fig. 8 wird nun die Logik zur Erzeugung von FREZ in der Speichersteuerung beschrieben. Ein Großteil der dargestellten Logik betrifft die Erzeugung von FREZ während einer Doppelbitfehlerkorrektur. Da die Doppelbitfehlerkorrektur nicht Gegenstand der vorliegenden Erfindung ist, wird diese Logik hier nicht weiter beschrieben. Es reicht aus, festzustellen, daß die Speichersteuerung 19 FREZ in Abhängigkeit von geeigneten Signalen erzeugen kann, wann immer dies während einer Doppelbitfehlerkorrektur erforderlich ist. FREZ wird durch die Speichersteuerung auch erzeugt, um einen Schnüffelvorgang (sniff operation) durchzuführen. Schnüffeln wird von der Speichersteuerung 19 durchgeführt, um an Speicherplätzen Fehler festzustellen und zu korrigieren, die sich als Ergebnis eines Alphateilcheneinschlages eingestellt haben können. Das Signal FREZFF wird als Folge von geeigneten Signalen erzeugt, die eine Doppelbitfehlerkorrektur oder einen Schnüffelvorgang anzeigen.
- Die Speichersteuerung 19 ist verantwortlich für die Erzeugung von FREZ, wenn eine Adressenphase während einer verlängerten Datenphase begonnen worden ist, die ihrerseits beispielsweise durch einen Blockbefehl verursacht wurde, wobei in Fig. 2 ein vom dritten Anforderer beanspruchtes Blocklesen dargestellt ist. Ein Tor 150 bestimmt, daß es die Erzeugung von FREZ über ein Flip-Flop 158 noch nicht gestartet hat und entweder Daten nicht bereit sind, am adressierten Platz kein Speicher vorhanden ist (EXTEND) oder noch eine Blockübertragung mit mehr als einem Datenwort läuft, wie es durch negiertes ZEROCNT angezeigt wird. Der Haltebefehl wird solange über das Tor 152 auf dem Bus gehalten, wie ein anhängiger Befehl 152 im gültigen Zustand bleibt, und bis in Abhängigkeit davon, wer von ihnen FREZ ausgelöst hat, die Daten bereit sind, die Blockübertragung ihr letztes Wort erreicht (ZEROCNT aufgeprägt) oder EXTEND deaktiviert wird. Da es einem Anforderer möglich ist, einen Befehl durch Ändern seines Treibers in der Weise abzubrechen, daß dieser anstelle des ursprünglich abgegebenen Befehls ein no-op abgibt, ist es für die Speichersteuerung wünschenswert, zu prüfen, ob auf den Leitungen ein gültiger Befehl ist, um nicht die Adreßleitungen mit no-op oder einem ungültigen Befehl unnütz zu belegen. Ein Befehlsabbruch kann in einer Situation auftreten, in der ein Datencachespeicher adressiert ist, sich aber herausstellt, daß der Speicherinhalt im Cache nicht mehr länger ein gültiger Ausdruck dessen ist, was im tatsächlichen Speicher vorliegt. Der Anforderer, der dieses Schnellverfahren der Suche vom Cache anstatt direkt vom Speicher versucht, bricht seinen Befehl ab, weil er nicht genügend Zeit hat, den Befehl neu zu formulieren, um die Daten im Speicher anstatt im Cache zu suchen.
- Die Erzeugung von FREZ durch die Speichersteuerung muß außerdem so erfolgen, daß die Situation erfaßt wird, in der in einer Datenphase eine Fehlerkorrektur stattfindet bei der letzten Übertragung eines Wortes innerhalb einer Blockübertragung einer Anzahl von Worten. FREZ wird beim letzten Datenwort deaktiviert und ist daher auch deaktiviert, während die Korrektur ausgeführt und das korrigierte Wort durch die Speichersteuerung auf den Systembus gegeben wird. Daher wird es für einen anderen Modul möglich, seine Adressenphase zu starten, weil zwei folgende Taktzyklen ohne FREZ sind. Um ein solches Ereignis zu verhindern, erzeugt die Speichersteuerung FREZ über ein Tor 154. Das Tor 154 wird die Erzeugung von FREZ veranlassen, wenn das Fehlersignal aufgeprägt wird, das Fehlersignal im letzten Taktzyklus nicht aufgeprägt war (ERCVS) und es auf dem Systembus einen gültigen Befehl gibt oder FREZ auf dem Bus aktiviert ist. Tor 156 behandelt die Doppelbitfehlersituation.
- Das Wartesignal WAIT wird von der Speichersteuerung 19 zu Beginn einer Datenphase aufgeprägt und bleibt aufgeprägt, bis die auf den Datenleitungen befindlichen Daten als gültig und richtig festgestellt sind. Wenn ein Befehl einen Block von Datenworten durchläßt, wird WAIT nach jedem Datenwort, das gültig über den Systembus übertragen wurde, deaktiviert. WAIT wird erneut aktiviert, wenn die Datenleitungen auf den Übertragungsbeginn des nächsten Datenwortes vorbereitet sind. Die in der gegenwärtig bevorzugten Ausführungsform der Speichersteuerung zur Erzeugung von WAIT benutzte Logik ist in den Fig. 9A-I dargestellt.
- Ein erster Bestandteil des Wartesignals ist das Ladezählsignal (LDCNT), das erzeugt wird, wie in Fig. 9A dargestellt ist. Das Ladezählsignal zeigt an, daß sich das System entweder am Beginn einer Datenphase befindet oder der Bus leer läuft. Das Ladezählsignal wird aufgeprägt, sofern sich das System nicht in der Mitte einer Datenphase befindet (ZEROCNT), die Adressenphase nicht durch ein Haltesignal verlängert ist, das System sich nicht in der Mitte eines Doppelbitfehlerkorrekturzyklus befindet (DBEC) und die letzte Datenphase abgeschlossen worden ist (WAIT nicht). Wenn die Zählung etwas anderes als Null ergibt, dann befindet sich das System in der Mitte einer Blockübertragung, die mehr als ein Datenwort umfaßt, und damit sind wir auch in der Mitte einer Datenphase. Die Datenphase wird nicht beginnen, bevor FREZ deaktiviert worden ist. Daher wird die Ladezählung nicht erzeugt, während FREZ aktiv ist. DBEC ist ein Signal, das anzeigt, daß gerade eine Doppelbitfehlerkorrektur stattfindet. Einzelheiten der Bearbeitung einer Doppelbitfehlerkorrektur sind nicht Teil der vorliegenden Erfindung, ausgenommen der Umstand, daß das System der vorliegenden Erfindung ein Protokoll vorsieht, welches die durch eine Doppelbitfehlerkorrektur verursachten Verzögerungen zuläßt. Wenn WAIT gerade aktiv ist, ist die gegenwärtige Datenphase noch nicht abgeschlossen. Eine neue Datenphase kann nicht beginnen, bevor die alte Datenphase abgeschlossen worden ist, was durch Deaktivierung von WAIT angezeigt wird.
- Da das Ladezählsignal benutzt wird, um den Beginn einer Datenphase anzuzeigen, wird es auch benutzt, um den Zähler zu laden, der angewandt wird, wenn ein Befehl wie ein Blockbefehl die Übertragung von mehr als einem Datenwort erfordert. Die Ladezählung wird auch als ein Kriterium für ein Erste-Daten-Signal (FSTDATA) benutzt.
- Die gegenwärtig bevorzugte Ausführungsform sieht acht Befehle vor, die in drei Befehlsbits SDC0, SDC1 und SDC2 kodiert sind. Unter Bezugnahme auf die Fig. 9B ist es wünschenswert, den Befehl während der Datenphase zusätzlich zu einigen Adressenbits, die bei Beendigung der Datenphase nützlich sein werden, zu sichern. Ein Sicherungstaktsignal (SVCLK) wird erzeugt, das während der Datenphase aktiv bleibt. Wie bei einem Speicher 160 dargestellt ist, wird SVCLK synchron zum Systemtakt (SYSCLK) erzeugt, wenn ein Ladezählsignal aufgeprägt ist. Der Speicher 160 verhindert auch die Aufprägung von SVCLK, wenn eine Doppelbitfehlerkorrektur erfolgt, wie durch das Signal BDBEC angezeigt wird. Das Signal SVCLK wird in einem Speicher 162 benutzt, um ein passendes Adressensignal während der ganzen Datenphase zu sichern. In der bevorzugten Ausführungsform wird das Adressensignal SA31 als Signal SA31SV gesichert. Zusätzlich werden alle Befehlsbits in den Speichern 164, 166 und 168 gesichert.
- Die Befehlssignale werden in Verbindung mit dem Ladezählsignal benutzt, um den Zähler zu laden, wie in Fig. 9C dargestellt ist. Der Zähler in der bevorzugten Ausführungsform hat zwei Bits, das höchstwertige Bit CNBITO und das niederwertigste Bit CNBITI. Ein System, in welchem Blockoperationen vorkommen, die die Übertragung von mehr als vier Worten erfordern, würde weitere Bits in seinem Zähler erfordern. Logische Tore 170 und 172 dekodieren Befehle, die mit LSDC0, LSDC1 und BLK bezeichnet sind. BLK wird von den Befehlssignalen erzeugt, um anzuzeigen, ob eine Blockübertragung vorhanden ist. Wenn das Ladezählsignal aktiviert ist, kann jedes Bit des Zählers über Flipflops 174 und 176 mit seinem richtigen Wert geladen werden. Der Zähler wird die Anzahl der Worte in einer Übertragung minus eins anzeigen.
- Der Zähler der vorliegenden Erfindung ist kein zyklischer Zähler. Mit anderen Worten wird der Zähler, wenn er auf Null decrementiert wurde, auf Null bleiben, wenn ein Versuch gemacht wird, ihn weiter herunterzuzählen. Bei Vollendung der Datenübertragung eines jeden Wortes in einem Block oder einem partiellen Schreibbefehl wird der Zähler herabgezählt. Ein Abwärtszählsignal DEC-CNT wird in einem Tor 178 erzeugt. Der Zähler wird zu Beginn der Übertragung eines Datenwortes während der Datenphase decrementiert. Zu Beginn der Übertragung eines jeden Datenwortes wird ein Signal FORCE WAIT erzeugt. FORCE WAIT wird ohne Beachtung von Datenfehlern erzeugt. Wenn die Speichersteuerung in den Daten auf dem Systembus einen Fehler feststellt, wird sie fortfahren, WAIT aufzuprägen, und eine Datenkorrektur durchführen, so daß korrigierte Daten für den Systembus bereitgestellt werden können. Die Speichersteuerung wird ein Fehlersignal ERCC erzeugen, wenn sie einen Fehler festgestellt hat und dabei ist, diesen Fehler zu korrigieren. Daher wird der Zähler bei Beendigung von FORCE WAIT, wenn es keinen Fehler gibt, als Reaktion auf DEC-CNT heruntergezählt. Der Zähler wird nicht heruntergezählt, wenn ein Fehlersignal ERCC aktiv ist. Tore 179 bis 182 zeigen den Gebrauch des Abwärtszählsignals zur Abwärtszählung des Zählers an.
- In Fig. 9D wird ein Tor 184 benutzt, um ANYSDC zu erzeugen, was anzeigt, daß es einen gültigen Befehl gibt, der über die Befehlsleitungen des Systembus ausgesandt wird. Wenn alle Befehlsbits Null sind, wird ein no-op angezeigt. Ein Tor 186 wird benutzt, um ein Nullzählsignal ZEROCNT zu erzeugen, das anzeigt, wenn ein Zähler auf Null steht.
- Unter nunmehriger Bezugnahme auf Fig. 9D ist ein Flipflop 188 vorgesehen, um die Erste-Daten-Signale (FSTDATA) und gespeicherte Erste-Daten-Signale (LFSTDATA) zu erzeugen. Die Erste-Daten-Signale werden erzeugt, wenn das Ladezählsignal aktiv und ein gültiger Befehl auf den Befehlsleitungen vorhanden ist. Wie oben angegeben, zeigt LDCNT an, daß entweder eine Datenphase beginnt oder der Bus leer läuft. Das Signal ANYSDC zeigt an, daß es auf dem Systembus einen gültigen Befehl gibt. Daher zeigt die Kombination dieser Signale den Beginn der Datenphase an.
- Ein Speicher 190 erzeugt eine gesicherte Version eines Seitensperrsignals. Das Seitensperrsignal (PAGEINH) wird von einem Speichermodul im Falle eines Speicherschadens ausgesandt, wenn ein ausgefallener Speicher adressiert wird. Dies ist ein Merkmal der bevorzugten Ausführungsform der Erfindung, das für die Erfindung nicht erforderlich ist. Jedoch ist es sehr nützlich, um unnötige Operationen eines Speichers zu verhindern, der nicht länger zu gebrauchen ist. Beispielsweise werden REFRESH- und SNIFF-Operationen, die normalerweise über einen Speicher als Ganzes ausgeführt werden, durch das Seitensperrsignal dahingehend gewarnt, daß ein Speicherschaden vorliegt und daß diese Seite des Speichers übersprungen werden kann. Ein Speicher 192 sorgt für eine gesicherte Version von MEMACK. MEMACK ist ebenfalls ein von einem oben beschriebenen Speichermodul erzeugtes Signal. Es ist ein Quittungszeichen vom Speichermodul dafür, daß ein gültiger Speicherplatz adressiert worden ist.
- Mit Bezugnahme auf Fig. 9F ist ein Erweiterungssignal als ein zusätzliches Merkmal des hier beschriebenen Systems vorgesehen, um Situationen zu bearbeiten, in denen bei einem Lesearbeitsgang kein gültiger Speicher adressiert ist. Ein solches Lesen vom Speicher würde sofort auf allen Datenleitungen Nullen hervorrufen. Die I/O-Kanalsteuerungen 17 wären nicht mehr in der Lage, die schnelle Lieferung dieser Nullen über den Datenkanal zu handhaben, und sie haben kein Mittel zum Abbruch des Lesens, bevor die Nullen ausgesandt werden. Da der Adressenplatz im Speicher ungültig ist, wird der Speichermodul kein Daten-nicht-bereit-Signal (DNREADY) erzeugen. Aus diesem Grund ersetzt das Erweiterungssignal das Daten-nicht-bereit-Signal, um dadurch zu verhindern, daß der Speichermodul schneller arbeitet, als die I/O-Kanalsteuerung verarbeiten kann. Das Signal EXT wird in Tor 194 erzeugt, wenn ein Lesen aus dem Speicher zustande kommt, und es ist das erste Taktsignal einer Datenlesephase. EXT wird mit dem negierten MEMACK kombiniert, was anzeigt, daß kein gültiger Speicherplatz adressiert worden ist. In einem solchen Fall wird der Speichermodul Nullen über die Datenleitungen liefern. Wenn eine Leseoperation an einem ungültigen Speicherplatz stattfindet, wird durch ein Flip-Flop 196 das EXTEND-Signal erzeugt.
- Unter Bezugnahme auf die Fig. 9G wird die Erzeugung des FORCE WAIT-Signals beschrieben. Ein Flipflop 198 wird FORCE WAIT aktivieren, wann immer eine Datenphase startet, wie es durch das Signal LFSTDATA angezeigt wird. FORCE WAIT wird in einen Multiplexer 200 zurückgeführt, um nach dem ersten Taktzyklus der Datenphase zwischen zwei möglichen Kriterien hin und her zu kippen. Wenn FORCE WAIT gesetzt worden ist, sieht der Multiplexer nach, ob die Daten bereit sind und ob ein EXTEND- Signal aktiv ist. FORCE WAIT wird aktiv bleiben, bis die Daten bereit sind und das EXTEND-Signal deaktiviert wird. Sobald die Daten bereit sind, wird WAIT nicht länger erzwungen, aber davon abhängig, ob es einen Fehler in den Daten gibt. FORCE WAIT wird daher deaktiviert, wenn DNREADY und EXTEND nicht aktiv sind. Während es inaktiv ist, wird sich der Multiplexer auf den Zähler einstellen. Wenn der Zähler auf Null steht, bleibt FORCE WAIT inaktiv. Wenn es jedoch in dieser Datenphase mehr zu übertragende Worte gibt, wird das FORCE WAIT-Signal erneut aktiviert.
- Die Auslösung von Prüfvorgängen in der Speichersteuerung ist vorgesehen, wie in Figur 9H dargestellt. Wenn FORCE WAIT aufgeprägt ist und die Daten bereit sind, wird ein Flip-Flop 202 die Erzeugung von TESTFF auslösen. Das TESTFF-Signal zeigt der Speichersteuerung den richtigen Zeitpunkt zur Durchführung einer Fehlerprüfung an dem über den Systembus übertragenen Speicherinhalt an. Die Prüfungen werden durchgeführt, sobald die Daten bereit sind.
- Das Signal MEMTEST wird nur benutzt, wenn Daten aus dem Speicher entnommen werden. Daher werden Tore 203 bis 205, die MEMTEST festlegen, die Befehlssignale decodieren, um festzustellen, ob ein Befehl zum Auslesen des Speichers vorliegt. Bei einer komplexen Operation wie z. B. durch Lesen modifiziertes Schreiben wird ein MEMTEST nur am zweiten Wort der Datenphase durchgeführt, das das aus dem Speicher entnommene Wort ist. Eine Prüfung des Speichers wird nicht durchgeführt, wenn durch den anhängigen Befehl kein gültiger Speicherplatz adressiert wird. Daher wird MEMACKSV in ein Tor 205 eingegeben. Außerdem wird MEMTEST auch dann nicht gebraucht, wenn eine Seitensperrung vorliegt, die anzeigt, daß ein toter Speicher adressiert worden ist. Auch gibt es kein MEMTEST in der Mitte eines Doppelbitfehlerkorrekturzyklus. Das Signal ERCSV zeigt an, daß korrigierte Daten durch die Speichersteuerung auf dem Systembus betrieben werden. Es ist daher nicht erwünscht, diese schon korrigierten Daten zu prüfen. LOOKEQ und COUNTEQ sind Signale, die im Zusammenhang mit der Doppelbitfehlerkorrektur benutzt werden.
- PARTEST zeigt eine Paritätsprüfung an, die zu gegebener Zeit, bestimmt durch TESTFF, durchgeführt wird, wenn es einen Schreibbefehl oder eine Datenübertragung von einem Anforderer zu einem anderen gibt. Beim partiellen Schreiben wird nur der erste Datenphasentakt auf Parität geprüft. Die Paritätsprüfung wird nicht während der Auffrischung (REV-SV) oder der Doppelbitfehlerkorrektur (DBEC) durchgeführt. Die Speichersteuerung wird PARTEST auch dann nicht erzeugen, wenn sie diejenige ist, die den Datenbus betreibt (DRVSDFF).
- Unter Bezugnahme auf die Fig. 9I kann nun die endgültige Bestimmung des WAIT-Signals beschrieben werden. Das FORCE WAIT-Signal, das schon oben beschrieben wurde, wird zu Beginn der Datenphase aktiviert und bleibt aktiv, solange das Daten-nichtbereit-Signal durch einen Speichermodul aufgeprägt ist. Wie in Fig. 9I dargestellt ist, veranlaßt FORCE WAIT die Erzeugung von MIDWAIT, welches wiederum das WAIT-Signal erzeugt. Wenn FORCE WAIT deaktiviert ist, kann WAIT auch durch eine Doppelbitfehlerkorrektur oder ein Fehlersignal und Speicherprüfung im vorigen Taktzyklus erzwungen werden (MEMTESTSV und ERCSV).
- Wenn WAIT nicht erzwungen wird, wird es davon abhängig, ob es einen durch die Speichersteuerung 19 festgestellten Fehler in den Daten auf dem Systembus 11 gibt. Bei der dargestellten Ausführungsform ist eine Anzahl Syndrombits (SYND 0-6) vorgesehen, die anzeigen, ob ein Fehler ein Einzelbitfehler oder ein Mehrfachbitfehler ist und, wenn es ein Einzelbitfehler ist, welcher Bit fehlerhaft ist. Wenn durch die Speichersteuerung 19 ein Fehler festgestellt wird, wird mindestens einer der Syndrombits erzeugt. Die Fehlerfeststellung ist der Fachwelt geläufig. Das Verfahren der Fehlerfeststellung ist nicht Teil dieser Erfindung, außer insofern, als das Auftreten von Fehlern den Zeitablauf von Operationen auf dem Systembus beeinflußt. Ein Fehler, der als Ergebnis einer Speicherprüfung erscheint, wird das WAIT-Signal aktiv halten, während die Speichersteuerung Daten korrigiert und dann korrigierte Daten auf den Systembus treibt. Die Datenkorrektur durch die Speichersteuerung mag im Falle einer Einzelbitfehlerkorrektur einfach sein oder kompliziertere Operationen, wie sie sich aus einer Doppelbitfehlerkorrektur ergeben, erfordern. Die Aufprägung des WAIT-Signals durch die Speichersteuerung zeigt allen Anforderern auf dem Systembus an, daß die Daten noch nicht gültig sind. Nach der Deaktivierung des WAIT-Signals werden die Daten auf dem Systembus gültig und die Bearbeitung kann normal erfolgen.
- Vorzugsweise sind die logischen Tore der vorliegenden Erfindung als Gate-Arrays ausgeführt. Gate-Arrays haben einige Vorteile einschließlich ihrer kompakten Ausführung, Geschwindigkeit, geringer Energiebedarf und Zuverlässigkeit. Jedoch kann auch eine andere gut bekannte Halbleitertechnologie, wie die TTL-Logik, anstelle der Gate-Arrays eingesetzt werden.
- Es versteht sich von selbst, daß verschiedene Änderungen oder Abwandlungen der oben beschriebenen bevorzugten Ausführungsform dem Fachmann deutlich werden. Beispielsweise kann eine andere gleichwertige Logik anstelle der hierin dargestellten gesetzt und noch zum Implementieren des Busprotokolls der vorliegenden Erfindung verwendet werden. Auch kann es Fälle geben, wo eine Eingangs-/Ausgangs-Kanalsteuerung die Erzeugung eines Haltesignals erfordert. Obwohl hierin keine spezielle Logik beschrieben wurde, kann ein Fachmann eine Haltesignalerzeugungslogik für eine I/O-Kanalsteuerung oder jeden anderen in einem System benutzten Modul vorsehen.
Claims (12)
1. Rechnersystem mit einem Systembus (11), enthaltend: eine Anzahl von an den
Systembus angeschlossenen Anforderern (12, 14, 17, 19), von denen jeder eine andere Priorität für
den Zugriff zum Bus hat; an den Systembus angeschlossene Mittel zur Erzeugung eines
Systemtaktes (SYSCLK), der eine Folge von Taktzyklen bestimmt; Mittel (86) bei jedem
der Anforderer zur Abgabe eines System-belegt-Signals (SD-BUSY) an den Systembus;
Mittel (74) bei jedem der Anforderer, die auf ein System-belegt-Signal damit reagieren,
daß sie ihr entsprechendes eigenes Anforderungssignal (REQ, SDREQX) entsprechend der
Priorität des Anforderers unterdrücken, wenn ihr entsprechendes Anforderungssignal nicht
schon erzeugt wird; und Mittel (72) bei jedem Anforderer zum Empfang von
Anforderungssignalen höherer Priorität (SDREQ1 bis SDREQX-1) von anderen Anforderern am
Systembus und zur Erzeugung eines Prioritätssignals (PRIORITY), wenn kein
Anforderungssignal höherer Priorität von den anderen Anforderern empfangen wird,
gekennzeichnet durch Mittel (82, 76) in mindestens einem der Anforderer zur Erzeugung eines
ersten Anforderungssignals (REQ, SDREQX) während eines Taktzyklus, wenn dieser
Anforderer einen Befehl (SETREQ) an den Systembus (11) abgeben möchte, der eine
Adressenphase von mindestens zwei Taktzyklen gefolgt von einer Datenphase umfaßt und
wenn kein System-belegt-Signal (SD-BUSY) auf dem Systembus liegt, wobei das erste
Anforderungssignal (REQ) die Treibermittel des Anforderers veranlaßt, ein System-belegt-Signal
(SD-BUSY) an den Systembus (11) abzugeben; Mittel bei diesem mindestens einen
Anforderer zur Verlängerung der Erzeugung seines ersten Anforderungssignals und der
Abgabe des System-belegt-Signals bis zu demjenigen Taktzyklus, in dem der (die)
Anforderer die Ausgabe des Befehls auf den Systembus beginnt (beginnen), wobei die Mittel zur
Verlängerung umfassen: Mittel (90, 94) zur Erzeugung eines Treiberhaltesignals
(DRVFREZ) infolge des Prioritätssignals (PRIORITY) und anderer Signale
(FREZ, WAIT, FREZSV) vom Systembus, die anzeigen, daß die Adressenphase eines
Befehls von einem anderen Anforderer abgeschlossen wurde; und Mittel (80), die auf das
erste Anforderungssignal (REQ) und das Fehlen des Treiberhaltesignals (DRVFREZ)
durch Verlängerung der Erzeugung des ersten Anforderungssignals und Abgabe des
System-belegt-Signals ansprechen, bis das Treiberhaltesignal erzeugt wird.
2. Rechnersystem nach Anspruch 1, gekennzeichnet durch einen an den Systembus
angeschlossenen Speichermodul (13) mit einem Adreßspeicher (132) und Mitteln (130) zur
Erzeugung eines Haltesignals, um die Adressenphase des Befehls von dem mindestens
einen Anforderer auf dem Systembus zu verlängern, wenn der Befehl an den
Speichermodul gerichtet und der Adreßspeicher voll ist.
3. Rechnersystem nach Anspruch 1 oder 2, gekennzeichnet durch Mittel (152, 158) am
Systembus zur Erzeugung eines Haltesignals, um die Adressenphase des Befehls von dem
mindestens einen Anforderer zu verlängern, wenn der Befehl eine
Mehrfachdatenübertragung umfaßt.
4. Rechnersystem nach Anspruch 3, dadurch gekennzeichnet, daß die Mittel (152, 158) zur
Erzeugung eines Haltesignals einen Zähler zum Abwärtszählen jeder Datenübertragung in
einer Mehrfachdatenübertragung aufweisen und die Mittel zur Erzeugung des Haltesignals
ein Haltesignal erzeugen, solange der Zähler ungleich Null ist.
5. Rechnersystem nach den Ansprüchen 1, 3 oder 4, gekennzeichnet durch einen an den
Systembus angeschlossenen Speichermodul (13) mit Mitteln zur Bildung eines
Daten-nichtbereit-Signals (DNREADY) als Antwort auf die Adressenphase des Befehls von dem
mindestens einen Anforderer, wenn der Speichermodul nicht zur Abgabe der angeforderten
Daten auf den Systembus bereit ist, sowie durch an den Systembus angeschlossene Mittel
(150, 152, 158) zur Erzeugung eines Haltesignals, um die Adressenphase des Befehls von
dem mindestens einen Anforderer zu verlängern, wenn das Daten-nicht-bereit-Signal
(DNREADY) vorhanden ist und die Adressenphase einen gültigen Befehl enthält.
6. Rechnersystem nach einem der Ansprüche 1 bis 5, gekennzeichnet durch an den
Systembus angeschlossene Mittel (Fig. 9A . . . 9I) zur Abgabe eines Wartesignals (WAIT)
zu Beginn der Datenphase des Befehls, welches angezeigt wird, wenn es kein Haltesignal,
kein Wartesignal und einen gültigen Befehl auf dem Systembus gibt.
7. Rechnersystem nach Anspruch 6, gekennzeichnet durch an den Systembus
angeschlossene Mittel (194, 196) zur Verlängerung der Abgabe eines Wartesignals, wenn bei
den auf dem Systembus übertragenen Daten ein Fehler festgestellt wird.
8. Rechnersystem nach Anspruch 7, dadurch gekennzeichnet, daß die Mittel (90, 94) zur
Erzeugung eines Treiberhaltesignals (DRVFREZ) den Abschluß der Adressenphase
feststellen, wenn der Systembus kein Haltesignal (FREZ) und kein Wartesignal (WAIT)
führt oder wenn der Systembus in zwei aufeinanderfolgenden Taktzyklen kein Haltesignal
(FREZ) gehabt hat.
9. Verfahren zur Steuerung des Zugriffs zu einem Systembus, an den in einem
Rechnersystem eine Anzahl von Anforderern angeschlossen ist, enthaltend folgende Schritte:
Abgabe eines Systemtaktes, der eine Folge von Taktzyklen bestimmt;
Erzeugung eines oder mehrerer Anforderungssignale und eines System-belegt-Signals im
Systembus während eines Taktzyklus;
Unterdrückung der Erzeugung jeglicher weiterer Anforderungssignale, während ein
System-belegt-Signal erzeugt wird; und
Herstellung des Zugriffs eines jeden Anforderers, der ein Anforderungssignal erzeugt hat,
zum Systembus in der Reihenfolge der Priorität,
gekennzeichnet durch die folgenden Schritte:
Abgabe eines Haltesignals, wenn einer der Anforderer Zugriff zum Systembus erhält,
wobei das Haltesignal vom Anforderer zu Beginn der Adressenphase an den Systembus
abgegeben und zur Verlängerung der Adressenphase benutzt wird;
Abgabe einer Adresse an den Systembus, sobald Zugriff zu demselben erreicht ist, wobei
die Abgabe einer Adresse eine Adressenphase umfaßt, die mindestens zwei Taktzyklen
dauert;
vollständige Aufhebung des System-belegt-Signals, wenn jeder Anforderer, der ein
Anforderungssignal erzeugt hat, Zugriff zum Systembus erhalten hat, so daß einen
Taktzyklus, nachdem die Adressenphase für den letzten Teilnehmer beginnt, um Zugriff
zum Systembus zu erhalten, die Erzeugung weiterer Anforderungssignale nicht mehr
unterdrückt wird;
Abgabe eines Wartesignals von einer an den Systembus angeschlossenen Speichersteuerung
zu Beginn einer Datenphase, wobei der Beginn der Datenphase angezeigt wird, wenn kein
Haltesignal, kein Wartesignal und ein gültiger Befehl auf dem Systembus vorhanden ist;
und Verlängerung der Abgabe des Wartesignals, wenn bei Daten, die auf dem Systembus
übertragen werden, ein Fehler festgestellt wird.
10. Verfahren nach Anspruch 9, gekennzeichnet durch den Schritt der Abgabe eines
Haltesignals von der Speichersteuerung, wenn die Adressenphase infolge einer
Mehrfachdatenübertragung verlängert wird.
11. Verfahren nach Anspruch 9 oder 10, gekennzeichnet durch den Schritt der Abgabe
eines Haltesignals von einem Speichermodul an den Systembus, wenn Daten nicht bereit
sind, um aus dem Speichermodul ausgelesen zu werden.
12. Verfahren nach Anspruch 9, 10 oder 11, gekennzeichnet durch den Schritt der Abgabe
eines Haltesignals, wenn ein Adressenspeicher voll ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/798,595 US4908749A (en) | 1985-11-15 | 1985-11-15 | System for controlling access to computer bus having address phase and data phase by prolonging the generation of request signal |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3687947D1 DE3687947D1 (de) | 1993-04-15 |
DE3687947T2 true DE3687947T2 (de) | 1993-10-21 |
Family
ID=25173804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE86308026T Expired - Fee Related DE3687947T2 (de) | 1985-11-15 | 1986-10-16 | Schnittstelle und Verfahren für Buszugriff in einem Rechner. |
Country Status (7)
Country | Link |
---|---|
US (1) | US4908749A (de) |
EP (1) | EP0222520B1 (de) |
JP (1) | JPS62163160A (de) |
AT (1) | ATE86772T1 (de) |
AU (1) | AU590626B2 (de) |
CA (1) | CA1273117A (de) |
DE (1) | DE3687947T2 (de) |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4796176A (en) | 1985-11-15 | 1989-01-03 | Data General Corporation | Interrupt handling in a multiprocessor computing system |
EP0606102A1 (de) * | 1986-09-19 | 1994-07-13 | International Business Machines Corporation | Ein-Ausgabeschnittstellensteuerung zum Verbinden eines synchronen Busses mit einem asynchronen Bus und Verfahren zur Operationsausführung auf den Bussen |
US5034883A (en) * | 1987-05-01 | 1991-07-23 | Digital Equipment Corporation | Lockhead bus arbitration system with override of conditional access grants by bus cycle extensions for multicycle data transfers |
US4947368A (en) * | 1987-05-01 | 1990-08-07 | Digital Equipment Corporation | Lookahead bus arbitration system with override of conditional access grants by bus cycle extensions for multicycle data transfers |
US5111424A (en) * | 1987-05-01 | 1992-05-05 | Digital Equipment Corporation | Lookahead bus arbitration system with override of conditional access grants by bus cycle extensions for multicycle data transfer |
US4845663A (en) * | 1987-09-03 | 1989-07-04 | Minnesota Mining And Manufacturing Company | Image processor with free flow pipeline bus |
JPH0215378A (ja) * | 1988-03-23 | 1990-01-19 | Du Pont Pixel Syst Ltd | グラフィックス処理システムおよびその方法 |
GB8808353D0 (en) * | 1988-04-09 | 1988-05-11 | Int Computers Ltd | Data processing system |
CA1320767C (en) * | 1988-05-11 | 1993-07-27 | Robert C. Frame | Atomic sequence for phase transitions |
US5230067A (en) * | 1988-05-11 | 1993-07-20 | Digital Equipment Corporation | Bus control circuit for latching and maintaining data independently of timing event on the bus until new data is driven onto |
US5261057A (en) * | 1988-06-30 | 1993-11-09 | Wang Laboratories, Inc. | I/O bus to system interface |
US4987529A (en) * | 1988-08-11 | 1991-01-22 | Ast Research, Inc. | Shared memory bus system for arbitrating access control among contending memory refresh circuits, peripheral controllers, and bus masters |
GB8820183D0 (en) * | 1988-08-25 | 1988-09-28 | Int Computers Ltd | Data processing apparatus |
US4979099A (en) * | 1988-10-25 | 1990-12-18 | Apollo Computer Inc. | Quasi-fair arbitration scheme with default owner speedup |
US5167022A (en) * | 1988-10-25 | 1992-11-24 | Hewlett-Packard Company | Multiprocessor bus locking system with a winning processor broadcasting an ownership signal causing all processors to halt their requests |
US5239638A (en) * | 1988-12-30 | 1993-08-24 | Intel Corporation | Two strobed memory access |
US5088024A (en) * | 1989-01-31 | 1992-02-11 | Wisconsin Alumni Research Foundation | Round-robin protocol method for arbitrating access to a shared bus arbitration providing preference to lower priority units after bus access by a higher priority unit |
US5127089A (en) * | 1989-07-03 | 1992-06-30 | Motorola, Inc. | Synchronous bus lock mechanism permitting bus arbiter to change bus master during a plurality of successive locked operand transfer sequences after completion of current sequence |
EP0514428B1 (de) * | 1990-01-19 | 1999-07-07 | Codex Corporation | Entscheidung zwischen mehreren benutzern bei einem gemeinsamen betriebsmittel |
US5263163A (en) * | 1990-01-19 | 1993-11-16 | Codex Corporation | Arbitration among multiple users of a shared resource |
EP0453268B1 (de) * | 1990-04-20 | 1997-10-22 | Hitachi, Ltd. | Mikroprozessor zur Buszykluseinfügung zwecks Informationslieferung für eine Emulation |
EP0468553A3 (en) * | 1990-06-08 | 1992-10-21 | N.V. Philips' Gloeilampenfabrieken | Instrumentation system and instrumentation devices adapted for use in such a system |
DE69118781T2 (de) * | 1990-08-31 | 1996-10-31 | Advanced Micro Devices Inc | Übertragungssteuerungssystem für einen Rechner und Peripheriegeräte |
JPH04141757A (ja) * | 1990-10-03 | 1992-05-15 | Fujitsu Ltd | バス制御方式 |
US5301330A (en) * | 1990-10-12 | 1994-04-05 | Advanced Micro Devices, Inc. | Contention handling apparatus for generating user busy signal by logically summing wait output of next higher priority user and access requests of higher priority users |
US5301282A (en) * | 1991-10-15 | 1994-04-05 | International Business Machines Corp. | Controlling bus allocation using arbitration hold |
US5263139A (en) * | 1992-05-19 | 1993-11-16 | Sun Microsystems, Inc. | Multiple bus architecture for flexible communication among processor modules and memory subsystems and specialized subsystems |
US5430848A (en) * | 1992-08-14 | 1995-07-04 | Loral Fairchild Corporation | Distributed arbitration with programmable priorities |
US5379403A (en) * | 1992-11-27 | 1995-01-03 | Ncr Corporation | Method and interface adapter for interfacing an ISA board to an MCA system by the issuance of an ILLINI-CDCHRDY signal from the interface adapter |
CA2109043A1 (en) * | 1993-01-29 | 1994-07-30 | Charles R. Moore | System and method for transferring data between multiple buses |
US5832253A (en) * | 1993-12-06 | 1998-11-03 | Cpu Technology, Inc. | Multiprocessors system for selectively wire-oring a combination of signal lines and thereafter using one line to control the running or stalling of a selected processor |
US6256694B1 (en) * | 1994-06-30 | 2001-07-03 | Compaq Computer Corporation | Distributed early arbitration |
US5502835A (en) * | 1994-08-31 | 1996-03-26 | Motorola, Inc. | Method for synchronously accessing memory |
US7043656B2 (en) * | 2003-01-28 | 2006-05-09 | Hewlett-Packard Development Company, L.P. | Methods and apparatus for extending a phase on an interconnect |
US7765350B2 (en) * | 2005-09-14 | 2010-07-27 | Koninklijke Philips Electronics N.V. | Method and system for bus arbitration |
US10606596B2 (en) * | 2013-07-15 | 2020-03-31 | Texas Instruments Incorporated | Cache preload operations using streaming engine |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3551894A (en) * | 1967-12-28 | 1970-12-29 | Ibm | Serial cross-bar bussing system |
US3603935A (en) * | 1969-05-12 | 1971-09-07 | Xerox Corp | Memory port priority access system with inhibition of low priority lock-out |
US4090238A (en) * | 1976-10-04 | 1978-05-16 | Rca Corporation | Priority vectored interrupt using direct memory access |
US4281380A (en) * | 1978-12-27 | 1981-07-28 | Harris Corporation | Bus collision avoidance system for distributed network data processing communications system |
US4371925A (en) * | 1980-02-11 | 1983-02-01 | Data General Corporation | Data processing system having unique bus control operation |
JPS6019819B2 (ja) * | 1980-04-02 | 1985-05-18 | 富士電機株式会社 | バス使用権制御方式 |
NL8002346A (nl) * | 1980-04-23 | 1981-11-16 | Philips Nv | Multi databron- en dataontvangersysteem met communicatiebus. |
US4390944A (en) * | 1980-05-13 | 1983-06-28 | Bti Computer Systems | System for controlling access to a common bus in a computer system |
JPS5723132A (en) * | 1980-07-18 | 1982-02-06 | Nippon Telegr & Teleph Corp <Ntt> | Acquisition system for priority right of interruption |
US4375639A (en) * | 1981-01-12 | 1983-03-01 | Harris Corporation | Synchronous bus arbiter |
US4442502A (en) * | 1981-03-30 | 1984-04-10 | Datapoint Corporation | Digital information switching system |
FR2503898B1 (fr) * | 1981-04-08 | 1986-02-28 | Thomson Csf | Procede et dispositif d'allocation d'une ressource dans un systeme comportant des unites de traitement de donnees autonomes |
US4573118A (en) * | 1983-03-31 | 1986-02-25 | Fairchild Camera & Instrument Corporation | Microprocessor with branch control |
US4620278A (en) * | 1983-08-29 | 1986-10-28 | Sperry Corporation | Distributed bus arbitration according each bus user the ability to inhibit all new requests to arbitrate the bus, or to cancel its own pending request, and according the highest priority user the ability to stop the bus |
US4627018A (en) * | 1983-09-08 | 1986-12-02 | Sperry Corporation | Priority requestor accelerator |
JPS6097459A (ja) * | 1983-10-18 | 1985-05-31 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | デ−タ処理システム同期方法 |
US4594590A (en) * | 1983-11-04 | 1986-06-10 | Control Data Corporation | Demand driven access mechanism |
US4570220A (en) * | 1983-11-25 | 1986-02-11 | Intel Corporation | High speed parallel bus and data transfer method |
-
1985
- 1985-11-15 US US06/798,595 patent/US4908749A/en not_active Expired - Lifetime
-
1986
- 1986-10-15 AU AU63945/86A patent/AU590626B2/en not_active Ceased
- 1986-10-16 AT AT86308026T patent/ATE86772T1/de not_active IP Right Cessation
- 1986-10-16 DE DE86308026T patent/DE3687947T2/de not_active Expired - Fee Related
- 1986-10-16 CA CA000520578A patent/CA1273117A/en not_active Expired
- 1986-10-16 EP EP86308026A patent/EP0222520B1/de not_active Expired - Lifetime
- 1986-11-14 JP JP61271670A patent/JPS62163160A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP0222520A3 (en) | 1989-02-08 |
CA1273117A (en) | 1990-08-21 |
ATE86772T1 (de) | 1993-03-15 |
AU6394586A (en) | 1987-05-21 |
DE3687947D1 (de) | 1993-04-15 |
US4908749A (en) | 1990-03-13 |
AU590626B2 (en) | 1989-11-09 |
JPS62163160A (ja) | 1987-07-18 |
EP0222520A2 (de) | 1987-05-20 |
EP0222520B1 (de) | 1993-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3687947T2 (de) | Schnittstelle und Verfahren für Buszugriff in einem Rechner. | |
DE3782335T2 (de) | Speichersteuersystem. | |
DE69233655T2 (de) | Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedenartiger Prozessoren | |
DE68920435T2 (de) | Steuereinheit für den speicher. | |
DE3750107T2 (de) | Cachespeicherkohärenzsteuerung mit einem Speicher, der ein laufendes Lesen anzeigt. | |
DE69319763T2 (de) | Verfahren und Gerät zur Durchführung eines Busarbitrierungsprotokolls in einem Datenverarbeitungssystem | |
DE68924306T2 (de) | Mehrprozessorrechneranordnungen mit gemeinsamem Speicher und privaten Cache-Speichern. | |
DE3854368T2 (de) | Cachespeicher mit einer Elastizität in der Verarbeitung verschiedener Adressenfehler. | |
DE69636452T2 (de) | Mehrprozessor-cachespeicherkohärenzprotokoll für einen lokalbus | |
DE69531933T2 (de) | Busarchitektur in hochgradiger pipeline-ausführung | |
DE69604564T2 (de) | Busbrückenschaltung und verfahren mit vorhersage-snoopoperationen | |
DE69312192T2 (de) | Aufteilung des buszugriffs zwischen mehreren endlichen automaten mit minimaler wartezeit und priorisierung von ähnlichen zyklustypen | |
DE68913914T2 (de) | Multiprozessorsystem mit Vervielfältigung von globalen Daten. | |
DE69426447T2 (de) | Verfahren zur Durchführung von Bustransaktionen in einem Rechnersystem und Rechnersystem | |
DE69423874T2 (de) | Verbessertes Schema zur geordneten Cachespeicherkohärenz | |
DE3486299T2 (de) | Bus-Arbitrierungssystem. | |
DE69812685T2 (de) | System und verfahren zur spekulativen arbitrierung bei datenübertragung | |
DE69222060T2 (de) | Semaphore umgehung. | |
DE69031411T2 (de) | Verfahren und Anordnung zum Lesen, Schreiben und Auffrischen eines Speichers mit direktem virtuellem oder physikalischem Zugriff | |
DE69424272T2 (de) | Auf Warteschlangen basierender prädiktiver Durchflusssteuerungsmechanismus | |
DE69223304T2 (de) | Arbitrierungsverriegelungverfahren und -vorrichtung für einen entfernten Bus | |
DE69031547T2 (de) | Befehlsausgabe für ein Rechnersystem | |
DE69030931T2 (de) | Mehrfachsequenzprozessorsystem | |
DE69219848T2 (de) | Verfahren zur Behandlung von Datenübertragungen in einen Computersystem mit einem Zweibusbau | |
DE3909948A1 (de) | Mikrocomputersystem mit mehrfachbus und buszuteilung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |