Die vorliegende Erfindung bezieht sich auf eine Datenübertragungs-
Steuervorrichtung nach dem Gattungsbegriff des
Patentanspruches 1. Ein Datenverarbeitungssystem, bei dem
mehrere Systemeinheiten elektrisch an einen gemeinsamen
Dialog-Bus zwecks asynchroner Informationsübertragung angeschlossen
sind, ist aus der US-PS 39 93 981 bekannt. Bei
der Übertragung von einem Hauptspeicher eines solchen
Datenverarbeitungssystems zu einer peripheren Speichereinheit
kann ein Problem auftreten, wenn die periphere
Steuerung unmittelbar nach dem Empfang eines Datenwortes
auf Grund einer vorangegangenen Anforderung nicht ein zusätzliches
Datenwort vom Hauptspeicher anfordert. In diesem
Fall kann der Dialogbus von einer anderen Systemeinheit beansprucht
werden.
Es ist daher die Aufgabe der vorliegenden Erfindung, eine
Datenübertragungs-Steuervorrichtung anzugeben, die einem Datenpuffer
die Signalisierung der Aufnahmebereitschaft einer
weiteren Dateneinheit gestattet.
Die Lösung dieser Aufgabe gelingt gemäß der im Patentanspruch 1
gekennzeichneten Datenübertragungs-Steuervorrichtung.
Weitere vorteilhafte Ausgestaltungen der erfindungsgemäßen
Steuervorrichtung sind den Unteransprüchen entnehmbar.
Das bevorzugte Ausführungsbeispiel betrifft ein Datenverarbeitungssystem
mit mehreren Systemeinheiten, die elektrisch an
eine gemeinsame Dialog-Sammelschiene für eine asynchrone Informationsübertragung
angeschlossen sind, wobei ein logisches
Datenübertragungs-Steuersystem der Steuerung der Übertragung
von Datenworten von einem Hauptspeicher zu einer peripheren
Steuerung dient.
Das logische Steuersystem umfaßt insbesondere eine Anordnung
von FIFO-Datenpuffern (FIFO = First-In-First-Out) und eines
FIFO-Voraussagepuffers, die parallel betrieben werden. Wenn
eine Datenanforderung an den Hauptspeicher erfolgt, so wird
der FIFO-Voraussagepuffer mit einem Leerbyte bzw. einem
Hinweisbyte geladen.
Wenn das Datenbyte vom Hauptspeicher empfangen wird und in die
FIFO-Datenpuffer geladen wird und das Eingangsregister des Voraussagepuffers
nicht gefüllt ist, so wird eine nächste Datenanforderung
an den Hauptspeicher ausgegeben. Wenn das Eingangsregister
des Voraussagepuffers gefüllt ist, so erfolgt jedoch
keine zusätzliche Datenanforderung bis die Daten in dem Eingangsregister
in den FIFO-Stapel gefallen sind.
Wenn die FIFO-Datenpuffer gefüllt sind, so ist der FIFO-Voraussagepuffer
ebenfalls gefüllt, und es erfolgt keine weitere Datenanforderung an
den Hauptspeicher bis ein Datenbyte zu einer peripheren
Speichereinheit übertragen ist. In diesem Fall fällt das
Hinweisbyte in dem Eingangsregister des Voraussagepuffers in
den Pufferstapel. Das Eingangsregister signalisiert daraufhin
den Auftritt einer günstigen Voraussage hinsichtlich der Speicherkapazität,
und es wird ein zusätzliches Datenwort vom Hauptspeicher
angefordert. Wenn die Daten von dem Hauptspeicher empfangen
und in die Eingangsregister der Datenpuffer geladen werden,
so wird das Eingangsregister des Voraussagepuffers erneut
in der zuvor beschriebenen Weise abgetastet. Wenn durch die Datenbyteübertragung
zu der peripheren Speichereinheit das Eingangsregister
des Voraussagepuffers geleert worden ist, so wird eine
zusätzliche Datenanforderung an den Hauptspeicher ausgegeben.
Andernfalls erfolgen keine weiteren Datenanforderungen bis eine
Übertragung zu der peripheren Speichereinheit erfolgt ist.
Eine Ausführungsform der Erfindung sieht vor, daß von dem
Hauptspeicher empfangene Datenworte in einem Datenpuffer für
ein linkes Byte und einem Datenpuffer für ein rechtes Byte gespeichert
werden. Bei der Übertragung der Daten zu einer Plattenspeichereinheit
werden die linken und rechten Bytes abwechselnd
für die Übertragung ausgewählt. Wenn der Datenpuffer für das
rechte Byte entladen wird, so wird der Voraussagepuffer ebenfalls
entladen, um die Betriebsweise des Voraussagepuffers mit derjenigen
der Datenpuffer zu synchronisieren.
Anhand eines in den Figuren der Zeichnungen
dargestellten Ausführungsbeispieles sei die erfindungsgemäße
Steuervorrichtung im folgenden näher beschrieben.
Es zeigt
Fig. 1 ein Blockdiagramm eines Datenverarbeitungssystems
mit Systemeinheiten, die elektrisch an eine gemeinsame
Sammelschiene angeschlossen sind,
Fig. 2 ein Blockdiagramm der Plattenspeicher-Steuerung
gemäß Fig. 1,
Fig. 3 und 4 detailliertes Blockdiagramm der Plattenspeicher-
Steuerung gemäß Fig. 1 und
Fig. 5 ein detailliertes Logikdiagramm der FIFO-Dateneinheit
gemäß Fig. 3.
Fig. 1 veranschaulicht in Form eines funktionellen Blockdiagramms
ein Computersystem mit einer Plattenspeicher-Steuerung
MPDC-10 mittlerer Leistung in elektrischer Verbindung mit einer
Zentraleinheit 11 und einem Hauptspeicher 12, wobei die Verbindung
über eine gemeinsame Dialog-Sammelschiene erfolgt, die mit
hoher Leistung ausgestattet ist und nachstehend als Sammelkanal
13 (Megabus) bezeichnet ist. Die Steuerung MPDC-10 ist ein
mikroprogrammiertes peripheres Steuer-Subsystem für die Speicherung
und Wiederauffindung von Daten von einem Massenspeichermedium.
Diese Steuerung umfaßt einen Festwertspeicher (ROS =
Read Only Store) der in später noch zu beschreibenden Weise gespeicherte
Mikroprogrammbefehle aufweist. Der Festwertspeicher
steht im Nachrichtenaustausch mit Massenspeicher-Adaptern, wie
beispielsweise dem Geräteadapter 14, der die Fähigkeit aufweist,
mehrere hintereinander geschaltete Platteneinheiten 15 zu unterstützen.
Der Sammelkanal 13 bildet einen Informationsweg zwischen irgend
zwei Einheiten des Systems. Die Informationswege sind asynchron
aufgebaut und gestatten somit einen wirksamen Betrieb hinsichtlich
von Einheiten mit verschiedenen Arbeitsgeschwindigkeiten.
Die Sammelschiene gestattet eine Informationsübertragung, einschließlich
Dialoganforderungen, Steueranweisungen, Statussignalen
und Datenübertragungen, zwischen dem Hauptspeicher 12 und
den Plattenspeichereinheiten 15.
Irgendeine Systemeinheit, die einen Dialog mit irgendeiner anderen
Systemeinheit anfordert, gibt eine Sammelschienen-Zyklusanforderung
aus. Wenn der Sammelschienenzyklus gewährt wird, so
wird die anfordernde Einheit dominierend, und die adressierte
Systemeinheit wird nebengeordnet. Einige Sammelschienendialoge
erfordern sowohl einen Anwortzyklus als auch einen Anforderungszyklus.
Beispielsweise kann die Einheit mit Vorrang sich selbst
einer nebengeordneten Einheit zu erkennen geben und anzeigen, daß
eine Antwort gefordert wird. Wenn die angeforderte Information
verfügbar wird, so übernimmt die nebengeordnete Einheit die
Rolle der Einheit mit Vorrang und löst eine Übertragung zu der
anfordernden Einheit aus.
Bei der Behandlung von Sammelschienen-Zyklusanforderungen besitzt
die Zentraleinheit die niedrigste Priorität, die Steuerung
MPDC-10 die nächst niedrigste Priorität und der Hauptspeicher 12
die höchste Priorität.
Eine detaillierte Beschreibung des Systems gemäß Fig. 1 kann
der US-PS 39 93 981 entnommen werden.
Fig. 2 veranschaulicht in Form eines funktionellen Blockdiagramms
die Steuerung MPDC-10 gemäß Fig. 1, und Fig. 3 zeigt die
binären Befehlsformate, die für den Betrieb der Steuerung MPDC-10
erforderlich sind.
Der Sammelkanal 13 ist an eine Adreß-Logikeinheit 20 über ein
Adreßkabel 21 angeschlossen. Die Logikeinheit 20 besteht aus
Adressen-Sendern/Empfängern, über welche Speicheradressen, Kanal-
Bestimmungsnummern und Funktionscodes zwischen der Steuerung
MPDC-10 und dem Sammelkanal 13 übertragen werden. Die Logikeinheit
20 umfaßt ferner eine Steuerlogik für die Informationsverteilung
auf dem Andreßkabel 21 innerhalb der Steuerung MPDC-10.
Die Logikeinheit 20 ist an eine Bereichs- und Verschiebe-Logikeinheit
22 über ein Einweg-Steuerkabel 23 und an eine Recheneinheit
24 über ein Zweirichtungs-Steuerkabel 25 angeschlossen.
Die Logikeinheit 22 umfaßt einen 16-Bit-Bereichszähler, der mit
der Anzahl der Bytes geladen wird, die während einer Lese- bzw.
Schreiboperation zu übertragen sind. Die Logikeinheit 22 umfaßt
ferner einen 16-Bit-Verschiebebereichszähler, der mit einem
Zählstand geladen wird, der die Anzahl der führenden Datenbytes
anzeigt, die während einer Übertragung gelesener Daten zu unterdrücken
sind.
Die Recheneinheit ALU-24 bildet den Kernpunkt aller Datenoperationen
innerhalb der Steuerung MPDC-10. Solche Datenoperationen
können zwischen der Steuerung MPDC-10 und dem Sammelkanal 13 oder
zwischen der Steuerung MPDC-10 und dem Geräteadapter 14 auftreten.
Die Recheneinheit ALU-24 führt sowohl logische als auch
arithmetische Operationen hinsichtlich ankommender Daten durch
und besteht aus einem A-Operandenmultiplexer AMUX, einem B-
Operandenmultiplexer BMUX, einer Acht-Bit-Arithmetikeinheit AU
und einem Acht-Bit-Akkumulator ACU, was noch weiter zu beschreiben
sein wird. Unter Firmwaresteuerung wählt der Mutliplexer AMUX
eines von 8 Datenfeldern aus, und der Mutliplexer BMUX wählt eines
von vier Datenfeldern aus. Die Arithmetikeinheit AU führt arithmetische
und logische Operationen mit Daten von 8 Bit aus, die
durch die Multiplexer ausgewählt werden und liefert das Ergebnis
an den Akkumulator ACU zwecks temporärer Speicherung.
Die Recheneinheit ALU empfängt Bereichs- und Verschiebe-Steuersignale
von der Logikeinheit 22 über ein Steuerkabel 26 und Firmware-
Steuersignale von einer Mikroprogramm-Steuerspeicher-Logikeinheit
27 über ein Steuerkabel 28. Die Recheneinheit ALU -24
steht ferner im Dialog mit einer Adapter-Logikeinheit 29 über
ein Zweirichtungs-Steuerkabel 30 und mit einer Zwischenspeichereinheit
31 über ein Zweirichtungs-Steuerkabel 32. Weiterhin steht
die Recheneinheit ALU-24 mit dem Geräteadapter 14 über ein Zweirichtungs-
Steuerkabel 33 im Dialog, und sie liefert eine Steuerinformation
an eine Sammelschienen-Logikeinheit 34 über ein Einweg-
Steuerkabel 35. Die Recheneinheit ALU empfängt und überträgt
ferner Daten zu einer Daten-Logikeinheit 36 über ein Zweirichtungs-
Datenkabel 37.
Die Adapter-Logikeinheit 29 ist an den Geräteadapter 14 über
ein Zweirichtungs-Dialogkabel 38 angeschlossen. Die Logikeinheit
29 bildet einen Dialogweg für die Steuerung MPDC-10, um
die Übertragung von Daten und Statusinformation zwischen dem
Adapter 14 und der Steuerung MPDC-10 zu steuern.
Die Zwischenspeichereinheit 31 umfaßt eine Logik, bestehend aus
einem Indexregister, einem Adreßregister, einem Adreßselektor,
einem Zwischenspeicher und logischen Elementen, die die Operation
des Zwischenspeichers steuern. Der Zwischenspeicher ist
ein Lese/Schreibspeicher mit 1.024 KBit mal 8 Bit, der in indizierte
und nicht-indizierte Abschnitte unterteilt ist, wobei
jeder Abschnitt zwei Quadranten enthält. Der nicht-indizierte
Abschnitt des Speichers besteht aus 256 Arbeitsspeicherplätzen
und 256 Vorratsspeicherplätzen. Der indizierte Abschnitt des
Speichers besteht aus 256 Speicherplätzen für die Speicherung
von gerätebezogener Information und 256 Vorratsspeicherplätzen.
Die 256 Speicherplätze für die gerätebezogene Information sind
ferner in vier Abschnitte unterteilt, wobei jeder Abschnitt pro
Kanal 64 Speicherplätze umfaßt.
Das Adreßregister der Zwischenspeichereinheit 31 ist ein 10 Bit-
Register, wobei das hochrangige Bit entweder den indizierten
oder den nicht-indizierten Modus auswählt. Das zweithöchste Bit
wählt einen Quadranten mit 256 Speicherplätzen aus, und die
nächsten beiden Bits wählen 64 Speicherplätze innerhalb des Quadranten
aus. Die sechs niedrigrangigen Bits wählen eine Zwischenspeicheradresse
aus. Daten werden in die ausgewählte Adresse
der Zwischenspeichereinheit von dem Multiplexer AMUX der Recheneinheit
ALU-24 während der Ausführung einer Firmware-Speicher-
Schreibanweisung eingeschrieben. Die Ausgangsdaten des Zwischenspeichers
werden an die Multiplexer AMUX und BMUX zwecks Verteilung
innerhalb der Steuerung MPDC-10 ausgegeben.
Die Mikroprogramm-Steuerspeicher-Logikeinheit 27 weist einen
herkömmlichen Aufbau auf und umfaßt eine Rückkehr-Registereinheit,
einen Selektor, einen Mikroprogramm-Adreßzähler, einen
Festwertspeicher ROS, ein Mikroprogramm-Befehlsregister MPIR,
einen Decodierer und eine Firmware-Verteilungseinheit, die noch
näher zu beschreiben ist. Der Festwertspeicher ROS bildet einen
permanenten Speicher für die vorliegende Steuerfirmware und
Diagnose-Mikroprogramme und kann adressiert werden, um verschiedene
Mikrobefehlsfolgen für die Bearbeitung abzurufen. Der Festwertspeicher
ROS liefert ein Ausgangssignal mit einer Breite von
16 Bit, das von den Ausgängen von 16 programmierbaren Festwertspeicherchips
PROM mit 1.024 mal 4 Bit abgeleitet wird. Das Ausgangssignal
des Festwertspeichers ROS wird dem Mikroprogramm-
Befehlsregister MPIR zugeführt, das eine Breite von 16 Bit aufweist
und benutzt wird, um das Ausgangssignal des Festwertspeichers
ROS während einer Mikrobefehlsbearbeitung für einen Taktzyklus
zu speichern.
Die Sammelschienen-Logikeinheit 34 empfängt Steuersignale von
der Recheninheit ALU-24 über ein Kabel 35 und von der Mikroprogramm-
Steuerspeicher-Logikeinheit 27 über ein Kabel 28 und ein
Steuerkabel 39. Die Logikeinheit 34 ist an den Sammelkanal 13
über ein Zweirichtungs-Steuerkabel 40 angeschlossen. Die Sammelschienen-
Logikeinheit 34 führt asynchrone Bestätigungsoperationen
aus, indem sie auf Sammelschienen-Zyklusanforderungen antwortet
und solche erzeugt. Ferner werden gleichzeitige Anforderungen und
Gewährungen von Sammelschienenzyklen auf einer Prioritätsbasis
bearbeitet, wobei die Steuerung MPDC eine Priorität-Zwischenposition
und der Hauptspeicher eine Position mit erhöhter Priorität
einnimmt.
Die Daten-Logikeinheit 36 umfaßt Fehlerprüfer, fünf FIFO-Datenpuffer
für 16 Worte mit vier Byte und einen Leseselektor für die
Bearbeitung der Datenübertragung über ein Zweirichtungs-
Datenkabel 41 zwischen der Steuerung MPDC-10 und dem Sammelkanal
13. Irgendeine Information, die in die Steuerung MPDC-10
von dem Sammelkanal 13 eingegeben wird, wird Daten-Sendern/
Empfängern zugeführt und auf vorliegende Parität überprüft. Die
gleiche Logik wird verwendet, um die MPDC-Kanalnummer an den
Sammelkanal 13 aufgrund einer Sammelschienen-Zyklusanforderung
von einer Systemeinheit abzugeben. Vier der fünf FIFO-Puffer
empfangen Daten und der fünfte Puffer wird benutzt, um die
Steuerung MPDC-10 daran zu hindern, eine Zyklusanforderung abzugeben,
wenn die Daten-FIFO-Puffer voll sind. Die FIFO-Chips sind
in der Lage, 14 Worte zu stapeln, wobei zusätzlich ein Wort in
den Eingangs- und Ausgangsregistern zurückgehalten wird, so daß
sich eine Gesamtkapazität von 16 Worten ergibt.
Taktsignale für die Steuerung des Betriebes der Steuerung MPDC-10
werden durch eine System-Takteinheit 42 geliefert, die aus einem
8-MHz-Kristalloszillator besteht. Das System-Taktsignal wird
einer Takt-Logikeinheit 43 zugeführt, die einen 4-MHz-Rechteckimpulszug
liefert, der innerhalb der Steuerung MPDC-10 verteilt
wird. Die Takt-Logikeinheit 43 empfängt ferner Steuersignale von
der Mikroprogramm-Steuerspeicher-Logikeinheit 27 über eine Steuerleitung
44, um die Logikeinheit vorzubereiten oder zurückzustellen.
Die von der Steuerung MPDC-10 ausgeführten Operationen umfassen
einen direkten Speicher-Lesezugriff, einen direkten Speicher-
Schreibzugriff, eine E/A-Ausgabeanweisung, eine E/A-Eingabeanweisung
und eine Unterbrechungsoperation. Jede der Operationen
erfordert einen einzigen Sammelschienenzyklus mit Ausnahme des
direkten Speicher-Lesezugriffs und der E/A-Eingabeanweisung, die
zwei Sammelschienenzyklen erfordern.
Die Fig. 3 und 4 veranschaulichen in näheren Einzelheiten das
System gemäß Fig. 2. Ein 24-Bit-Adreß-Schieberegister 70 ist über
ein 24-Bit-Datenkabel 71 an den Sammelkanal 13 angeschlossen.
Der Ausgang des Schieberegisters wird dem Eingang A 2 eines 8 zu 1-
Multiplexers AMUX-72 zugeführt. Die Bits 15 und 16 des Schieberegisterausgangs
werden über ein Datenkabel 73 dem Eingang A 1
eines Indexregisters 74 zugeführt. Der Takteingang CK des Schieberegisters
70 ist an eine Steuerleitung 70 a angeschlossen, die zu
einem Firmware-Ausgangsanschluß führt, der noch weiter beschrieben wird.
Der Eingang A 1 des Multiplexers AMUX-72 ist an den 8-Bit-Ausgang
eines Akkumulators 75 angeschlossen, und der Eingang A 3 des Multiplexers
AMUX-72 ist über ein Datenkabel 76 mit dem Ausgang einer
Bereichs- und Verschiebesteuereinheit 77 verbunden, die noch
näher beschrieben wird. Der Eingang A 4 des Multiplexers AMUX-72
ist über ein Datenkabel 78 mit dem Ausgang eines 8-Bit-Zwischenspeicher-
Adressenzählers 79 verbunden. Der Eingang A 5 des Multiplexers AMUX-72 ist an ein Datenkabel 80 angeschlossen, das zu
dem Ausgang D 1 des Indexregisters 74 führt, und der Eingang A 6
des Multiplexers AMUX-72 ist mit dem 8-Bit-Ausgang eines 1 Kilobit
×8-Bit-Zwischenspeichers 81 verbunden. Der Eingang A 7 des Multiplexers
AMUX-72 ist an den Ausgang eines 16-Bit-Datenregisters
82 angeschlossen. Der Auswahleingang SEL des Multiplexers AMUX-72
ist über eine Steuerleitung 72 a an einen Firmware-Ausgangsanschluß
angeschlossen. Der 8-Bit-Ausgang des Multiplexers AMUX-72
ist mit dem Eingang A 1 einer ODER-Logikeinheit 83 verbunden.
Ein 4 zu 1-Multiplexer BMUX-84 weist einen 8-Bit-Ausgang auf, der
mit dem Eingang A 2 einer Recheneinheit 85 verbunden ist. Der Eingang
A 1 des Multiplexers BMUX-84 ist über ein Steuerkabel 86 an
die Firmware angeschlossen. Der Eingang A 2 des Multiplexers BMUX-
84 ist mit dem Ausgang des Zwischenspeichers 81 über ein Datenkabel
87 verbunden. Der Eingang A 3 des Multiplexers BMUX-84 ist
an ein Steuerkabel 88 und der Eingang A 4 ist über ein Datenkabel
89 mit dem Ausgang des Akkumulators 75 verbunden. Der Auswahleingang
SEL des Multiplexers ist über eine Steuerleitung 84 a an
die Firmware angeschlossen.
Der Eingang A 1 der Recheneinheit 85 ist über ein Datenkabel 90
mit dem 8-Bit-Ausgang D 1 der Logikeinheit 83 verbunden, und der Moduseingang
der Recheneinheit ist an den Ausgang einer arithmetischen
Steuereinheit 91 angeschlossen. Der 8-Bit-Ausgang der arithmetischen
Einheit ist an den Eingang des Akkumulators 75 und über
Datenkabel 92 und 93 an den Dateneingang des Zählers 79 angeschlossen.
Ferner ist der Ausgang der arithmetischen Einheit über
Datenkabel 92 und 94 mit dem Eingang A 2 des Geräteadapters 14
und über ein Datenkabel 95 an ein Datenkabel 96 angeschlossen.
Der Ausgang der arithmetischen Einheit ist ferner über Datenkabel
95 und 97 an den Eingang eines Leseregisters für die zweite
Hälfte SHRD-98 und über Datenkabel 95 und 99 an die 8-Bit-Dateneingänge
eines 16-Bit-Sammelkanal-Datenregisters 100 angeschlossen.
Der Ausgang der arithmetischen Einheit ist zusätzlich an
Datenkabel 95 und 101 angeschlossen, wobei das Datenkabel 101 zu
dem Dateneingang einer Test-Logikeinheit 102 führt.
Der Ausgang des Akkumulators 75 ist ferner an ein Datenkabel 103
und an den 2-Bit-Eingang A 2 des Indexregisters 74 angeschlossen.
Der Ladeeingang LD des Akkumulators ist über eine Steuerleitung
75 a mit einem Firmware-Ausgangsanschluß verbunden.
Der Eingang A 1 der arithmetischen Steuereinheit 91 ist über eine
Steuerleitung 106 an einen Ausgangsanschluß des Firmware-Steuersystems
angeschlossen, und der Eingang A 2 der Steuereinheit 91 ist
über eine Steuerleitung 107 mit dem Ausgang D 1 einer Hardware-
Steuereinheit 108 verbunden.
Der Eingang A 1 der Steuereinheit 108 ist an eine Steuerleitung
109 angeschlossen, die zu einem Ausgang des Firmware-Steuersystems
führt, und der Eingang A 2 der Steuereinheit 108 ist mit einer
Steuerleitung 108 a verbunden. Der Unterbrechungseingang A 3 der
Steuereinheit 108 ist über den Geräteadapter 14 an eine Steuerleitung
110 angeschlossen. Der Eingang A 4 der Steuereinheit ist
mit einer Steuerleitung 108 b verbunden, die zu dem Hardware-
Steuersystem führt. Der Ausgang D 2 der Steuereinheit 108 ist über
eine Steuerleitung 111 an den Eingang A 1 der Adapter-Logikeinheit
29 angeschlossen, und der Ausgang D 3 der Steuereinheit 108
ist mit einer Steuerleitung 112 verbunden, die zu dem Eingang A 1
der Daten-Steuereinheit 113 führt. Der Ausgang D 4 der Steuereinheit
108 ist über eine Steuerleitung 70 b mit dem Ladeeingang LD
des Schieberegisters 70 verbunden, und der Ausgang D 5 ist an den
Eingang A 1 der Test-Logikeinheit 102 angeschlossen. Der Ausgang
D 6 der Steuereinheit ist mit einer Steuerleitung 108 c verbunden,
die zu dem Hardware-Steuersystem führt.
Von der Firmware erzeugte Taktsignale auf einer Steuerleitung 79 b
werden dem Takteingang CK des Adreßzählers 79 zugeführt, und
Firmware-Steuersignale auf einer Steuerleitung 114 werden dem
Eingang LD des Zählers zugeführt. Ferner erhält der Auf/Abwärts-
Auswahleingang des Zählers Firmware-Steuersignale über eine Steuerleitung
79 b zugeführt. Zwei Ausgangsbits des Zählers werden auf
den Eingang A 1 des Selektors 115 geschaltet. Die niedrigrangigen
6 Bits am Ausgang des Zählers werden dem Eingang A 2 des Zwischenspeichers
81 zugeführt.
Der Eingang A 2 des Selektors 115 ist an den Ausgang D 2 des Indexregisters
74 angeschlossen, dessen Eingang LD von der Firmware
über eine Steuerleitung 74 a beaufschlagt wird. Der 3-Bit-Ausgang
des Selektors 115 ist an den Adreßeingang ADDR des Zwischenspeichers
81 angeschlossen, und der Eingang SEL des Selektors erhält
Firmware-Steuersignale über eine Steuerleitung 116 zugeführt.
Der Eingang A 1 des Zwischenspeichers 81 ist über ein Datenkabel
an den 8-Bit-Ausgang D 2 der Logikeinheit 83 angeschlossen. Der
Eingang A 2 der Logikeinheit 83 ist mit dem Ausgang D 1 der FIFO-
Datenpuffereinheit 118 verbunden, und der Eingang A 3 der Logikeinheit
83 ist an den Ausgang D 2 der Puffereinheit 118 angeschlossen.
Der Ladeeingang LD des Registers wird von der Hardware
über eine Steuerleitung 82 a gesteuert. Der Ausgang des Registers
ist ferner an Datenkabel 139 und 140 angeschlossen.
Der Eingang LD des Sammelkanal-Datenregisters 100 wird von der Daten-
Steuereinheit 113 über eine Steuerleitung 121 beaufschlagt. Der
Ausgang des Registers 100 wird dem Eingang A 2 eines 2 zu 1-
Datenmultiplexers 122 zugeführt. Der 16-Bit-Eingang A 1 des
Multiplexers wird von dem SHRD-Register 98 geliefert, dessen
Eingang LD über eine Steuerleitung 98 a an die Daten-Steuereinheit
113 angeschlossen ist. Der Ausgang des Multiplexers ist
über ein 16-Bit-Datenkabel 123 an den Sammelkanal 13 angeschlossen.
Hinsichtlich der Test-Logikeinheit 102 wird ein Statussignal
an deren Eingang A 2 durch das Firmware-Steuersystem über eine
Steuerleitung 124 angelegt. Die Sammelschienen-Logikeinheit 128
liefert ferner ein Statussignal über eine Steuerleitung 102 a an
den Eingang A 3 der Logikeinheit 102 und die Steuereinheit 77
liefert ein Bereichsendesignal an den Eingang A 4 der Logikeinheit
über eine Steuerleitung 102 b. Der Eingang A 5 der Logikeinheit
102 ist mit einer Steuerleitung 125 verbunden, die Unterbrechungssignale
von dem Ausgang D 1 des Geräteadapters 14 führt.
Die Test-Logikeinheit liefert ein Steuersignal an eine Steuerleitung
126, die zu einem noch weiter zu beschreibenden Firmware-
Steuersystem führt.
Die Adapter-Logikeinheit 29 empfängt ebenfalls ein Firmwaresignal
auf einer mit ihrem Eingang A 2 verbundenen Steuerleitung 127.
Der Ausgang der Logikeinheit wird dem Eingang A 1 des Geräteadapters
14 zugeführt. Eine Steuerleitung 29 a ist zwischen den Ausgang
der Logikeinheit und den Eingang A 5 der Daten-Steuereinheit
113 geschaltet und mit einer Steuerleitung 118 b verbunden, die
zu dem Parallelübertragungseingang TOP der FIFO-Datenpuffereinheit
118 führt.
Gemäß Fig. 4 ist der Sammelkanal 13 über ein Zweirichtungs-Datenkabel
129 an die Sammelkanal-Logikeinheit 128 angeschlossen. Der
Eingang A 2 der Logikeinheit 128 ist über ein Datenkabel 103 mit
dem Ausgang des Akkumulators 75 verbunden, und der Eingang A 3 der
Logikeinheit ist an eine Steuerleitung 130 angeschlossen, die zu
einem Ausgang des Firmware-Steuersystems führt. Der Eingang A 4
der Logikeinheit 128 ist mit dem Ausgang D 1 der Steuereinheit 77
verbunden, und der Eingang A 5 der Logikeinheit ist an den Ausgang
D 1 der FIFO-Puffereinheit 131 angeschlossen. Der Eingang A 6 der
Logikeinheit liegt über eine Steuerleitung 128 a an dem Hardware-
Steuersystem. Der Ausgang D 1 der Logikeinheit 128 ist an ein
Datenkabel 88 angeschlossen, und der Ausgang D 2 ist mit einer
Steuerleitung 132 verbunden, die zu dem Auswahleingang SEL des
Datenmultiplexers 122 führt. Der Ausgang D 3 der Logikeinheit ist
mit dem Eingang A 2 der Daten-Steuereinheit 113 verbunden, und
der Ausgang D 4 ist an den Eingang A 1 der FIFO-Puffereinheit 131
angeschlossen. Der Ausgang D 5 der Logikeinheit 128 ist mit dem
Auswahleingang SEL eines dualen 2 zu 1-Adressenmultiplexers 133
verbunden, und der Ausgang D 6 der Logikeinheit ist an eine Steuerleitung
102 a angeschlossen.
Der Eingang A 2 der FIFO-Puffereinheit 131 ist mit dem Ausgang D 1
der Steuereinheit 113 verbunden, und der Ausgang D 2 der FIFO-
Puffereinheit ist an den Eingang A 3 der Steuereinheit 113 angeschlossen.
Der Eingang A 4 der Steuereinheit 113 ist mit einem
Ausgang des Firmware-Steuersystems über eine Steuerleitung 134
verbunden, und der Eingang A 5 der Steuereinheit ist an eine Leitung
29 a angeschlossen. Der Ausgang D 2 der Steuereinheit ist mit
einer Steuerleitung 121 verbunden, und der Ausgang D 3 ist über
eine Steuerleitung 135 an einen Steuereingang CTR der FIFO-Daten-
Puffereinheit 118 angeschlossen. Der Ausgang D 4 der Daten-Steuereinheit
113 ist an den Eingang A 1 der Steuereinheit 77 gelegt,
und der Ausgang D 5 ist an eine Steuerleitung 98 a angeschlossen,
die zu dem Ladeeingang LD des Registers 98 führt.
Der Eingang A 2 der Steuereinheit 77 ist mit dem Ausgang D 1 eines
Sammelkanal-Adreßregisters 136 verbunden, und der Eingang A 3 der
Steuereinheit ist über eine Steuerleitung 137 an einen Ausgang
des Firmware-Steuersystems angeschlossen. Der Ausgang D 2 der
Steuereinheit 77 ist mit einem Datenkabel 76 verbunden, das zu
einem Eingang des Multiplexers AMUX-72 führt. Der Ausgang D 3 der
Steuereinheit 77 liegt an einer Steuerleitung 77 a, die zu dem
Eingang A 3 des Geräteadapters 14 führt, und an einer Steuerleitung
102 b, die zu dem Eingang A 4 der zuvor beschriebenen Test-
Logikeinheit 102 führt.
Das Sammelkanal-Adreßregister 136 besteht aus einem 24-Bit-Aufwärtszähler,
der so gesteuert sein kann, daß er entweder Bytes
odeer Worte zählt, wobei ein Wort aus zwei Bytes besteht. Der
8-Bit-Ausgang D 1 der Einheit 136 wird ferner dem Eingang B 1 des
Adressenmultiplexers 133 zugeführt, und der 8-Bit-Ausgang D 2 der
Einheit 136 ist mit dem Eingang B 2 des Multiplexers 133 verbunden.
Der 8-Bit-Ausgang D 3 der Einheit 136 wird über ein Datenkabel 138
dem Sammelkanal 13 zugeführt. Der Ladeeingang LD des Registers
136 wird von der Firmware über eine Steuerleitung 136 a angesteuert.
Die 8-Bit-Eingänge A 1 und A 2 des Adressenmultiplexers
133 sind über Datenkabel 139 und 140 an das Datenregister 82 angeschlossen.
Im Betrieb bildet die Steuerung MPDC-10 eine Schnittstelle mit
dem Plattenadapter 14, der seinerseits mehrere Platteneinheiten
bedienen kann, wie dies in Fig. 1 dargestellt ist.
Wenn eine ungebetene Sammelkanalanforderung von dem Sammelkanal
13 aufgenommen wird, so gibt die Sammelkanal-Logikeinheit 128 ein
Signal auf der Leitung 102 a aus, die zu der Test-Logikeinheit 102
führt. Ferner wird eine Anforderung hinsichtlich des Geräteadapters
14 durch ein Unterbrechungssignal auf der Steuerleitung 127
angezeigt. Die Logikeinheit vermerkt hierbei, ob eine Geräteadapteranforderung
oder eine Sammelkanalanforderung zu bedienen
ist. Die Test-Logikeinheit 102 zeigt daraufhin über ein Signal
auf der Steuerleitung 125 der Firmware an, welche Mikrobefehlsfolge
zu bearbeiten ist. Für den Fall, daß eine Anforderung an
eine Platteneinheit gerichtet ist, die bereits mit der Bearbeitung
einer Aufgabe befaßt ist, gibt die Sammelkanal-Logikeinheit 128
ein Nichtbestätigungs-(NAK-)Statussignal an den Sammelkanal 13
aus, der sich unter einer System-Hardwaresteuerung befindet. Wenn
eine Platteneinheit adressiert wird, die gegenwärtig nicht mit
der Bearbeitung einer Aufgabe befaßt ist, die Steuerung MPDC jedoch
gegenwärtig mit der Bearbeitung einer vorhergehenden Aufgabe,
betreffend eine zweite Platteneinheit, beschäftigt ist, so
kann die Logikeinheit 128 ein Warte-Statussignal an den Sammelkanal
13 ausgeben. Wenn die adressierte Platteneinheit nicht belegt
ist und die Steuerung MPDC während der Bearbeitung einer
vorausgehenden Aufgabe nicht mit der Bedienung der Einheit befaßt
ist, so wird ein Bestätigungs-(ACK-)Statussignal an den Sammelkanal
13 ausgegeben.
Es ist darauf zu verweisen, daß beim Betrieb der Steuerung MPDC
die Datenwege für eine Datenübertragung durch die mit dem System
gemäß den Fig. 3 und 4 zusammenarbeitende Fimware vorbereitet
werden. Die Datenübertragung erfolgt jedoch durch die Hardware/
Firmware-Steuerung des Systems. Eine detaillierte Beschreibung
dieser Harware kann der US-PS 39 93 981 und den folgenden
Honeywell-Handschriften entnommen werden: MPDC Reference Manual,
Doc. No. 71 010 241-100, Bestellnr. FM 55, Rev. O; MPDC Cartridge
Disc Adapter Reference Manual, Doc. No. 71 010 239-100, Bestellnr.
FM 57, Rev. O; und MPDC Disc Adapter Reference Manual, Doc. No.
71 010 441-100, Bestellnr. FK 90, Rev. O.
Bei einer Lese- oder einer Schreiboperation liefert die Zentraleinheit
CPU-11 gemäß Fig. 1 anfänglich eine Kanal-Bestimmungsnummer
und einen Funktionscode an das Adreß-Schieberegister 70.
Der Inhalt des Schieberegisters wird unter Steuerung durch die
System-Hardware mit einer Bestimmungsnummer verglichen, die durch
Drehschalter eingegeben wird, und bei einer festgestellten Übereinstimmung
bestätigt die Sammelkanal-Logikeinheit 128 dem Sammelkanal
13 die Übereinstimmung. Wie zuvor beschrieben, kann die
Bestätigung einen Warte-, einen Nicht-Annahme-(NAK-)- oder einen
Annahme-(ACK-)Status betreffen. Wenn eine ACK-Bestätigung durch
die Logikeinheit 128 an den Sammelkanal 13 ausgegeben wird, so
gibt die Logikeinheit zusätzlich ein Belegtsignal an den Sammelkanal
13 aus, um nachfolgende Sammelkanalanforderungen in einen
Wartestatus zu setzen. Die System-Hardware steuert danach die
Datenübertragung zwischen dem Sammelkanal 13 und der Steuerung
MPDC-10.
Um Mittel zur Steuerung des Betriebes der Platteneinheit während
einer Lese- oder einer Schreiboperation vorzusehen, liefert die
Zentraleinheit CPU-11 ferner ein Konfigurationswort A an den
Sammelkanal 13, das unter Hardwaresteuerung in das Hardwareregister
82 und das Adreß-Schieberegister 70 geladen wird. Bei
Vervollständigung der Ladeoperation gibt die System-Hardware ein
ACK-Signal an den Sammelkanal 13 aus, welchem ein Belegtsignal
folgt. Die Firmware fühlt das Belegtsignal ab und steuert die
Übertragung der Daten in dem Adreß-Schieberegister 70 und dem
Datenregister 82 über die arithmetische Einheit 85 zwecks Speicherung
in dem Zwischenspeicher 81. Wenn die Firmware die Speicheroperation
vervollständigt hat, so signalisiert sie dies der
System-Hardware, die sodann das Laden des Adreß- und Datenregisters
mit einem Konfigurationswort B steuert. Das Konfigurationswort
B wird sodann unter Firmwaresteuerung in den Zwischenspeicher
geladen, und der Prozeß wird wiederholt, um der Reihe
nach eine Hauptspeicheradresse, einen Bereichszählstand, eine
Aufgabe und eine Statusanforderung zu erhalten. Wenn die Aufgabe
in das Datenregister 82 geladen und in dem Zwischenspeicher 81
gespeichert ist, so wird sie unter Firmwaresteuerung bearbeitet.
Bei Vervollständigung der Aufgabenbearbeitung wird der Funktionscode
abgefragt, um das Vorliegen von Statusanforderungen festzustellen,
die beachtet werden können.
Bei der Speicheroperation fühlt die Firmware den Funktionscode ab,
um die Zwischenspeicheradresse festzustellen, unter der Information
von dem Datenreigster 82 zu speichern ist. Ferner ist die
Firmware in der Lage, durch Abfragen des Funktionscodes zwischen
Datenformaten zu unterscheiden. Ein Funktionscode von hexadezimal
07 zeigt an, daß eine Aufgabe in den Zwischenspeicher
geladen worden ist, ein Funktionscode von hexadezimal 1 1 legt
ein Konfigurationswort A fest, und ein Funktionscode von hexadezimal
1 3 legt ein Konfigurationswort B fest. Ferner legt ein
Funktionscode von hexadezimal 0 D einen Bereichszählstand (zu
übertragende Datenbytes) fest.
Während einer Leseoperation, bei der Daten von einer Platteneinheit
gelesen und im Hauptspeicher 12 gespeichert werden, lädt
die System-Hardware die hochrangigen Bits einer Hauptspeicheradresse,
einen Funktionscode und eine Kanal-Bestimmungsnummer
von dem Sammelkanal 13 in das Adreß-Schieberegister 70 und lädt
die niedrigrangigen Bits der Hauptspeicheradresse, einen Bereich
oder eine Aufgabe in das Datenregister 82. Unter Firmwaresteuerung
wird die in dem Adreß-Schieberegister 70 befindliche Information
durch den Multiplexer AMUX-72 und die ODER-Logikeinheit 83
zu dem Eingang A 1 der arithmetischen Einheit 85 getaktet. Ferner
gibt in Abhängigkeit von einer Firmwareanweisung auf der Leitung
106 die arithmetische Steuereinheit 91 einen Modus an die arithmetische
Einheit 85 aus, um den Eingang A 1 auszuwählen. Der Eingang
A 1 der arithmetischen Einheit wird daraufhin dem Eingang
des Zwischenspeicher-Adressenzählers 79 zugeführt und in den Adreßzähler
unter einer über die Steuerleitung 114 gelieferten
Firmwareanweisung geladen.
Zwei Bit des Ausgangs des Adreß-Schieberegisters auf dem Datenkabel
73 werden dem Eingang A 1 des Indexregisters 74 zugeführt,
um die Platteneinheit festzulegen, von der die Information zu
lesen ist. Die zwei Identifizierungsbits werden unter Firmwaresteuerung
über die Steuerleitung 74 a in das Indexregister geladen.
Der Ausgang des Indexregisters wird dem Selektor 115 ebenso
wie die zwei hochrangigen Bits des Adreßzählers 79 zugeführt.
Die Firmware löst ferner den Adreßzähler 79 aus, indem sie ein
Auf/Abwärts-Signal auf der Steuerleitung 79 a und ein Taktsignal
auf der Steuerleitung 79 b ausgibt. Der Zähler wird angewiesen,
auf- bzw. abwärts zu zählen mit einer Geschwindigkeit, die durch
das von der Firmware erzeugte Taktsignal vorgegeben ist. Aufgrund
der Eingangssignale von dem Indexregister und dem Adreßzähler
adressiert der Selektor 115 den Zwischenspeicher 81. Die in dem
Datenregister 82 vorliegenden Daten werden somit unter Firmwaresteuerung
zu der Zwischenspeicheradresse übertragen, die durch
den Selektor 115 über einen Datenweg durch den Multiplexer AMUX-
72, die ODER-Logikeinheit 83 und das Datenkabel 117 angezeigt
wird. Die Konfigurationsworte A und B, eine Hauptspeicheradresse,
ein Bereich und eine Aufgabe werden hierdurch in den Zwischenspeicher
geladen.
Bei Vervollständigung der Speicheroperation nimmt die Firmware
Zugriff auf den Funktionscode in dem Adreß-Schieberegister 70,
um festzustellen, ob eine Aufgabe vorgegeben ist. Insbesondere
liefert die Firmware einen hexadezimalen Code 0 7 über das Kabel
86 an den Eingang A 1 des Multiplexers BMUX-84. Der Multiplexer
BMUX wählt den Eingang A 1 durch ein Firmware-Steuersignal auf
der Steuerleitung 84 a aus. Der hexadezimale Code wird daraufhin
durch die arithmetische Einheit 85 geleitet und in dem Akkumulator
75 gespeichert. Danach wird der Ausgang des Adreßzählers 79
durch den Multiplexer AMUX-72 und die ODER-Logikeinheit 83 zu dem
Eingang A 1 der arithmetischen Einheit 85 geleitet. Die arithmetische
Einheit vergleicht unter Firmwaresteuerung den Code in
dem Akkumulator 75 mit dem Ausgang des Adreßzählers 79. Wenn eine
Übereinstimmung auftritt, so ist eine Aufgabe festgelegt, und
die Test-Logikeinheit 102 gibt über die Steuerleitung 126 ein
Signal an die Firmware aus, um die Bearbeitung einer nächsten
Mikrobefehlsfolge auszulösen.
Die Sammelkanal-Logikeinheit 128 bringt zusätzlich aufgrund von
Firmware-Steuersignalen auf der Leitung 130 den Kanal der adressierten
Platteneinheit in den Belegtzustand. Danach wird jede
weitere Information, die durch den Sammelkanal 13 gesendet wird,
um das Gerät zu adressieren, dem die vorliegende Aufgabe zugeordnet
ist, durch ein NAK-Statussignal bestätigt.
Bei der Feststellung des Vorhandenseins einer Aufgabe nimmt
die Firmware auf die in dem Zwischenspeichere 81 gespeicherte Aufgabe
Zugriff und überträgt diese Information über den Multiplexer
AMUX-72 und die ODER-Logikeinheit 83 zu der arithmetischen Einheit
85. Die arithmetische Einheit 85 und die Test-Logikeinheit
102 testet unter Firmwaresteuerung die Aufgabeninformation, um
die zu bearbeitende Anweisung festzustellen. Beispielsweise kann
die Aufgabe anzeigen, daß eine Plattenabsuche, eine Lese- oder
eine Schreiboperation gefordert ist. Die Ergebnisse dieser Tests
werden durch die Test-Logikeinheit 102 der Firmware über das
Steuerkabel 126 zugeführt.
Bei einer Schreiboperation, bei der Daten von dem Hauptspeicher
12 zu lesen und in eine Platteneinheit einzuschreiben sind, gibt
die Adapter-Logikeinheit 29 unter Firmwaresteuerung einen Tastimpuls
an den Geräteadapter 14 aus, um einen internen Datenzähler
mit einem Zählstand von vier zu laden. Ferner wird die Adapter-
Logikeinheit 29 angewiesen, eine Folge von vier Abtastimpulsen
auszugeben, um die Konfigurationsworte A und B in einen
Datenpuffer des Gerätes 14 zu laden. Insbesondere wird die Information
unter Firmwaresteuerung von dem Zwischenspeicher 81 durch
den Multiplexer BMUX-84 und die arithmetische Einheit 85 zu den
Datenkabeln 92 und 94 geleitet, die zu dem Geräteadapter 14 führen.
Bevor die Logikeinheit 29 eine Anweisung "Beginne Bearbeitung"
an den Geräteadapter 14 ausgibt, muß der Sammelkanal 13 für die
Datenübertragung vorbereitet werden. Die Firmware liefert zwei
Leerbytes des Verschiebebereiches an den Multiplexer BMUX-84
über das Kabel 86 und steuert die Übertragung der Bytes durch
die arithmetische Einheit 85 und entlang des Datenkabels 96 zu
dem Sammelkanal-Adreßregister 136. Das Laden des Adreßregisters
136 wird unter Firmwaresteuerung über die Leitung 136 a bewerkstelligt.
Die Firmware nimmt sodann Zugriff auf die in dem Zwischenspeicher
81 gespeicherte Bereichsinformation und überträgt
diese Information über den Multiplexer BMUX-84 und die arithmetische
Einheit 85 zu dem Datenkabel 96, das zu dem Sammelkanal-
Adreßregister 136 führt. Wenn die Bereichsdaten in das Register
136 geladen werden, werden die Verschiebebereichsdaten zu der
Steuereinheit 77 übertragen. Zwei Bytes der Bereichsdaten werden
danach von dem Sammelkanal-Adreßreigster 136 in die Steuereinheit
77 unter Firmwaresteuerung übertragen, und drei Bytes der Adreßinformation
im Zwischenspeicher werden in dem Sammelkanal-Adreßregister
136 gespeichert. Die Steuerung MPDC-10 ist daraufhin
bereit, Daten vom Hauptspeicher aufzunehmen, um diese in die festgelegte
Platteneinheit einzuschreiben.
Um eine Datenübertragung auszulösen, nimmt die Firmware Zugriff
auf den Zwischenspeicher 81, um die zuvor durch die Zentraleinheit
CPU-11 gelieferte MPDC-Kanalnummer zu übertragen, wobei diese
über den Multiplexer BMUX und die arithmetische Einheit 85 in
dem Sammelkanal-Datenregister 100 gespeichert wird. Zu diesem
Zeitpunkt befindet sich die Hauptspeicheradresse, unter der die
Daten anfänglich zu lesen sind, in dem Sammelkanal-Adreßregister
136, und die MPDC-Kanal-Bestimmungsnummer befindet sich in dem
Sammelkanal-Datenregister 100.
Die Firmware liefert ferner Sammelkanal-Logikanweisungen an den
Multiplexer BMUX-84 über das Kabel 86 und speichert diese Anweisungen
in dem Akkumulator 75. Von dem Akkumulator werden die Anweisungen
über das Datenkabel 103 an die Sammelkanal-Logikeinheit
128 geliefert. Diese Anweisungen weisen in ihrer logischen
Folge die Sammelkanal-Logikeinheit 128 an, eine eine Antwort erfordernde
Anforderung an den Hauptspeicher auszugeben, um zu bestätigen,
daß Daten an die Steuerung MPDC zu liefern sind, um
eine Hauptspeicher-Kanalnummer auszugeben, die die Hauptspeichereinheit
als die zu adressierende Systemeinheit identifizieren,
und um einen Hinweis daraufhin auszugeben, ob sich die Steuerung
MPDC in einem Byte- oder einem Wortmodus befindet.
Im Normalbetrieb geht einer Lese- oder einer Schreibanweisung
immer eine Suchanweisung voraus, bei der die Firmware die Adaptereinheit
14 zur Positionierung der Lese/Schreibköpfe der Platteneinheit
veranlaßt. Zusätzlich wird dem Geräteadapter mitgeteilt,
welchen Kopf er auszuwählen hat, der die Information zu lesen
oder zu sachreiben hat. Der Geräteadapter 14 vergleicht sodann die
Konfigurationsworte A und B mit den von der Platte gelesenen Daten.
Wenn eine Übereinstimmung festgestellt wird, die anzeigt,
daß ein festgelegter Datensatz sich in der richtigen Position befindet,
so gibt der Geräteadapter 14 eine Schreibanweisung an
die Platteneinheit aus und beginnt eine Anfangslücke hinsichtlich
des Datensatzes zu schreiben. Während dieser Periode gibt der
Geräteadapter 14 ebenfalls eine Unterbrechung über die Steuerleitung
110 an die Hardware-Steuereinheit 108 aus. Aufgrund dessen
gibt die Steuereinheit ein Signal an den Eingang A 1 der Test-
Logikeinheit 102 aus, um der Firmware über das Steuerkabel 126
zu bestätigen, daß die Steuerung von der zuvor beschriebenen
System-Hardware übernommen werden soll. Die Firmware gibt daraufhin
eine Freigabe-Hardwareanweisung an die Steuerleitung 109 aus,
und sie gibt ferner Anweisungen über die Steuerleitung 134 an
die Daten-Steuereinheit 113 aus, um den Betrieb der FIFO-Puffereinheit
131 bei der Anforderung von Daten vom Speicher zu steuern.
Die FIFO-Einheit 131 nimmt die Verfügbarkeit von Raum in der
FIFO-Dateneinheit 118 beim Empfang von Datenwörtern vom Hauptspeicher
vorweg. Insbesondere wird jedesmal, wenn die Sammelkanal-
Logikeinheit 128 ein Datenwort vom Hauptspeicher anfordert,
ein Leerbyte in die FIFO-Einheit 131 geladen. Die Sammelkanal-
Loghikeinheit 128 fordert danach ein zweites Datenwort nur an,
wenn das Leerbyte von dem Eingangsregister der FIFO-Einheit 131
in den FIFO-Stapel gefallen ist. Der Hauptspeicher gibt daraufhin
Datenworte über den Sammelkanal 13 an das Datenregister 82 aus.
Wenn die Sammelkanal-Logikeinheit 128 ein Datenwort vom Hauptspeicher
angefordert und dieses Wort akzeptiert hat, so gibt sie
ein Signal an den Eingang A 2 der Daten-Steuereinheit 113 aus.
Aufgrund dieses Signals gibt die Steuereinheit eine Anweisung auf
der Steuerleitung 135 an die FIFO-Dateneinheit 118 aus, um Daten
von dem Datenregister 82 zu speichern. Die zuvor beschriebene
Operation wird wiederholt, bis die FIFO-Dateneinheit 118 mit 32
Datenbytes gefüllt ist.
Wenn die FIFO-Dateneinheit gefüllt ist, so gibt sie über die
Steuerleitung 118 a ein Signal an die Hardware-Steuereinheit 108
aus. Die Steuereinheit 108 gibt daraufhin ein Abtastsignal über
die Steuerleitung 111 an die Adapter-Logikeinheit 29 aus. Die
Logikeinheit 29 gibt ihrerseits einen Abtastimpuls an den Geräteadapter
14 aus, um anzuzeigen, daß ein Datenbyte von der FIFO-
Dateneinheit zu dem Geräteadapter 14 übertragen werden kann. Der
gleiche Abtastimpuls wird über die Steuerleitung 29 a und 118 b
dem TOP-Anschluß der FIFO-Dateneinheit 118 zugeführt. Die Ausgänge
D 1 und D 2 der FIFO-Einheit werden daraufhin über die ODER-
Logikeinheit 83 und über die arithmetische Einheit 85 zu dem
Geräteadapter 14 über die Kabel 92 und 94 übertragen.
Der Abtastimpuls der Logikeinheit 29 wird ebenfalls über die
Steuerleitung 29 a der Daten-Steuereinheit 113 zugeführt. Der
Empfang zweier solcher Abtastimpulse zeigt an, daß ein Zweibyte-
Datenwort von der FIFO-Dateneinheit 118 zu dem Geräteadapter 14
übertragen worden ist. Die Daten-Steuereinheit 113 gibt daraufhin
ein Steuersignal an den Eingang A 2 der FIFO-Einheit 131, um ein Leerbyte
aus dem Ausgangsregister der FIFO-Stapels herauszuholen. Das
Eingangsregister der FIFO-Einheit wird hierdurch geleert und
gibt ein Signal an die Sammelkanal-Logikeinheit 128 aus, um eine
Anforderung nach einem zusätzlichen Datenwort vom Hauptspeicher
auszulösen. Der zuvor beschriebene Prozeß setzt sich fort, bis
die Geräteadaptereinheit 14 anzeigt, daß ein Datensatz geschrieben
worden ist.
Es ist erkennbar, daß der Geräteadapter 14 die Schreiboperation
der Platteneinheit steuert. Wenn die Daten auf der Platte geschrieben
werden, so signalisiert der Geräteadapter der Test-
Logikeinheit 102 über die Steuerleitung 125, mit der Zuführung
von Daten aufzuhören, bis die internen Puffer des Geräteadapters
geleert worden sind. Während dieser Periode bestätigt die Test-
Logikeinheit 102 dem Firmware-Steuersystem, daß die Steuerung
von der Hardware zu der Firmware übertragen werden kann. Wenn
der Geräteadapter 14 bereit ist, zusätzliche Daten aufzunehmen,
so wird der Logikzustand der Steuerleitung 125 geändert. Die Test-
Logikeinheit 102 meldet daraufhin der Firmware die Steuerungsrückkehr
zu der Hardware zwecks Wiederaufnahme der Datenübertragung.
Dieser Prozeß setzt sich fort, bis eine Datenübertragung
vervollständigt ist, was durch einen Bereichszählstand von Null
angezeigt wird.
Jedesmal, wenn die Sammelkanal-Logikeinheit 128 ein zusätzliches
Datenwort anfordert, erniedrigt die Daten-Steuereinheit 113 unter
der System-Hardwaresteuerung den Inhalt der Bereichszähler der
Steuereinheit 77 um eins. Nachdem eine Datenanforderung an den
Sammelkanal 13 ausgegeben worden ist, die eine Hauptspeicheradresse
umfaßt, und nachdem diese Anforderung durch den Hauptspeicher
12 angenommen worden ist, erhöht die Steuereinheit 77
den Inhalt des Sammelkanal-Adreßregisters 136 um zwei und erniedrigt
den Zählstand der Bereichszähler um eins. Wenn der Bereichszählstand
abgearbeitet worden ist, so gibt die Bereichs-
Steuereinheit 77 ein Bereichsendesignal EOR über die Steuerleitungen
77 a und 102 b an den Geräteadapter 14 und die Test-Logikeinheit
102.
Es sei darauf verwiesen, daß das Steuerkabel 125 zwei Unterbrechungsleitungen
enthält. Eine erste Unterbrechungsleitung ist
eine Firmware-Anforderungsleitung um anzuzeigen, daß die Steuerung
zu der Firmware zurückkehren sollte, während sich der Geräteadapter
14 zwischen Datensätzen befindet. Die zweite Unterbrechungsleitung
wird benutzt, um der Firmware anzuzeigen, daß keine
Daten betreffenden Behandlungsanforderungen behandelt werden können.
Eine solche Aktion zeigt normalerweise an, daß irgendein
Fehlertyp in dem Geräteadapter 14 vorliegt.
Wenn das Bereichsendesignal EOR während eines Datensatzes oder
am Ende enes Datensatzes auf der Platteneinheit ausgegeben wird,
beendet die Firmware den Schreibbefehl. Wenn das Signal EOR durch
den Geräteadapter 14 empfangen wird, bevor ein Datensatzende auftritt,
so füllt der Geräteadapter den verbleibenden Teil des
Datensatzes mit Leerbytes. Wenn ein Signal EOR nicht auftritt
und kein Geräteadapterfehler durch das Unterbrechungskabel 127
angezeigt wird, so schreibt die Firmware die Konfigurationsworte
A und B in dem Geräteadapter 14 fort, um auf einen nächsten
logischen Sektor der Platteneinheit zu verweisen.
Fig. 5 zeigt ein detailliertes logisches Schaltungsdiagramm
der FIFO-Puffereinheit 131 gemäß Fig. 4. Es sei darauf verwiesen,
daß ein kleiner Kreis am Eingang einer logischen Einheit anzeigt,
daß dieser Eingang durch ein "0"-Signal freigegeben wird. Ferner
zeigt ein kleiner Kreis am Ausgang einer Logikeinheit an, daß
bei Erfüllung der logischen Bedingungen für diese spezielle Einheit
dieser Ausgang ein "0"-Signal abgibt.
Ein UND-Gatter 400 ist mit einem Eingang an eine Steuerleitung
401 und mit einem zweiten Eingang sowohl an eine Steuerleitung
402 als auch an einen Eingang enes UND-Gatters 403 angeschlossen.
Ein zweiter Eingang des Gatters 403 ist mit einer Steuerleitung
404 verbunden, die zu einer Leitung 110 gemäß Fig. 3 führt, und
ein dritter Eingang ist an eine Steuerleitung 405 angeschlossen.
Der Ausgang des Gatters 400 ist mit dem Eingang D eines Flip-
Flops 405 und mit dem Eingang D eines Flip-Flops 406 verbunden.
Der Ausgang des Gatters 403 ist an den Triggereingang T eines
Flip-Flops 407 angeschlossen.
Der Triggereingang des Flip-Flops 405 ist mit dem Ausgang Q
des Flip-Flops 407 verbunden, und der Rückstelleingang des Flip-
Flops 405 ist an den Ausgang OPR des Ausgangsregisters eines
FIFO-Puffers 408 für 16 Worte mit 8 Bit angeschlossen. Wenn das
Signal am Ausgang OPR einen "1"-Pegel aufweist, so ist das Ausgangsregister
gefüllt. Ferner ist das Ausgangsregister leer,
wenn das Signal am Ausgang OPR einen "0"-Pegel aufweist. Der Ausgang
des Flip-Flops 405 wird dem Parallelübertragungseingang
TOP dws FIFO-Puffers 408 zugeführt.
Der Ausgang des Flip-Flops 407 ist mit dessen Eingang D und
dem Eingang T des Flip-Flops 406 verbunden. Der Rückstelleingang
des Flip-Flops 406 ist an den Ausgang OPR eines FIFO-Puffers 410
für 16 Worte mit 8 Bit angeschlossen. Der Ausgang des Flip-
Flops 406 ist mit dem Eingang TOP des FIFO-Puffers 410 und mit
dem Eingang TOP eines FIFO-Puffers 411 für 16 Worte mit 8 Bit
angeschlossen.
Der Ladeeingang LD des FIFO-Puffers 408 ist mit einer Steuerleitung
412 verbunden, und der Dateneingang des FIFO-Puffers 408 ist
an ein Datenkabel 408 a angeschlossen, das zu dem Datenregister 82
gemäß Fig. 3 führt. Der Parallel-Datenausgang des FIFO-Puffers
408 ist mit einem Datenkabel 408 b verbunden, das zu dem Kabel 94
führt. Der Eingang LD des FIFO-Puffers 410 ist an eine Steuerleitung
413 angeschlossen, und der Dateneingang dieses Puffers
ist mit einem Datenkabel 410 a verbunden, das zu dem Datenregister
82 führt. Der Parallelausgang des Puffers ist über ein Datenkabel
410 b an das Kabel 94 angeschlossen.
Der Eingang LD des FIFO-Puffers 411 ist mit dem Ausgang eines
UND-Gatters 414 verbunden. Der Ausgang IPR des Eingangsregisters
des FIFO-Puffers 411 ist über eine Steuerleitung 415 an einen
Eingang eines UND-Gatters 416 angeschlossen. Das Signal am Ausgang
IPR befindet sich auf "1"-Pegel, wenn das Register leer
ist, und auf einem "0"-Pegel, wenn das Eingangsregister gefüllt
ist. Das Signal am Ausgang OPR des FIFO-Puffers 411 ist über
eine Steuerleitung 411 b an die Leitung 102 b gemäß Fig. 4 angeschlossen.
Ein zweiter Eingang des Gatters 416 ist mit einem dritten Eingang
des Gatters 403 und einer Steuerleitung 417 verbunden. Ein
dritter Eingang des Gatters 416 ist an einen Eingang des Gatters
414 und an eine Steuerleitung 416 a angeschlossen. Der Ausgang
des Gatters 416 wird dem EingangT eines Flip-Flops 418 zugeführt,
dessen Ausgang Q einer Steuerleitung 419 zugeführt wird, die
zu der Sammelkanal-Logikeinheit 128 führt.
Der Eingang D des Flip-Flops 418 ist mit dem Ausgang eines UND-
Gatters 420 verbunden, dessen einer Eingang an eine Steuerleitung
422 angeschlossen ist. Ein zweiter Eingang des Gatters 420
ist mit einer Steuerleitung 422 verbunden.
Ein zweiter Eingang des Gatters 414 ist an eine Steuerleitung 417
angeschlossen, und ein dritter Eingang des Gatters 414 ist mit
einer Steuerleitung 423 verbunden.
Bei einer Schreiboperation, bei der vom Hauptspeicher 12 gemäß
Fig. 1 gelesene Daten, unterstützt durch den Geräteadapter 14, in
eine Platteneinheit einzuschreiben sind, kann während der Übertragung
einer Folge von Datenbytes ein Problem auftreten. Wenn
von der Steuerung MPDC-10 keine Anforderung für zusätzliche Daten
ausgegeben wird, und wenn ein Datenbyte vom Hauptspeicher 12 empfangen
wird, so können andere Systemeinheiten sich für einen
Dialog mit dem Hauptspeicher melden. Die Steuerung MPDC-10 könnte
somit nicht in der Lage sein, eine Übertragungsgeschwindigkeit
zu der Platteneinheit aufrechtzuerhalten. Wenn eine Datenanforderung
ohne Rücksicht auf leere Pufferspeicherplätze erfolgt,
können in dem Datenregister 82 gemäß Fig. 3 gespeicherte Daten
verlorengehen, bevor der volle zu übertragende Datenbereich vom
Hauptspeicher in die Platteneinheit eingeschrieben worden ist.
Das Logiksystem gemäß Fig. 5 weist eine Einrichtung zur Vermeidung
dieses Problems auf.
Wenn im Betrieb Daten von dem Hauptspeicher 12 zu der Steuerung
MPDC-10 zu übertragen sind, so gibt die Firmware ein "1"-Signal
an die Steuerleitung 417 aus. Wenn der Sammelkanal 13 für eine
Datenübertragung bereit ist, so gibt die Sammelkanal-Logikeinheit
128 gemäß Fig. 4 ein "1"-Signal an die Steuerleitung 422
aus, um anzuzeigen, daß der Sammelkanal 13 bereit ist. Die
Steuerleitung 421, die von der Bereichs- und Verschiebebereichs-
Steuereinheit 77 kommt, verbleibt auf einem "1"-Pegel bis die
Datenübertragung vervollständigt ist, um anzuzeigen, daß der
Bereichszählstand nicht abgearbeitet worden ist. Das Ausgangssignal des
Gatters 420 verbleibt daher auf einem "1"-Pegel, der dem Eingang
D des Flip-Flops 418 zugeführt wird.
Vor irgendeiner Datenübertragung zu der Steuerung MPDC-10 sind
die FIFO-Puffer 408, 410 und 411 leer. Der Ausgang IPR des FIFO-
Puffers 411 befindet sich somit auf einem "1"-Pegel und zeigt an,
daß das Eingangsregister leer ist. Ferner liefert die Sammelkanal-
Logikeinheit 128 ein "1"-Signal während einer Zeitperiode
an die Steuerleitung 416 a, wenn die Steuerung MPDC-10 den
Sammelkanal 13 bei der Behandlung einer Sammelkanal-Zyklusanforderung
nicht benutzt. Der Ausgang des Gatters 416 befindet sich somit
auf einem "1"-Pegel, um das Flip-Flop 418 umzuschalten,
wodurch eine Sammelkanal-Zyklusanforderung auf der Leitung 419
ausgegeben wird, die zu der Sammelkanal-Logikeinheit 128 führt.
Bei der Erzeugung einer Sammelkanal-Zyklusanforderung zur Ausgabe
an den Sammelkanal 13 gibt die Sammelkanal-Logikeinheit 128
ein "1"-Signal an die Steuerleitung 423 aus, um anzuzeigen, daß
eine Sammelkanal-Zyklusanforderung der Steuerung MPDC-10
ausgegeben worden ist. Das Firmware-Steuersignal auf der Steuerleitung
417 wird daraufhin über das Gatter 414 an den Ladeeingang
des FIFO-Puffers 411 angelegt. Ein Leerbyte wird hierdurch in
den FIFO-Puffer unter Firmwaresteuerung geladen und der Ausgang
IPR des FIFO-Puffers schaltet auf einen "0"-Pegel um. Es ist
somit ersichtlich, daß jedesmal, wenn eine Zyklusanforderung am
Ausgang Q des Flip-Flops 418 erzeugt wird, um zusätzliche Daten
vom Hauptspeicher 12 anzufordern, ein Leerbyte in den FIFO-
Puffer 411 geladen wird.
Wenn der Hauptspeicher auf die Sammelkanal-Zyklusanforderung
antwortet, so gibt die Sammelkanal-Logikeinheit 128 ein "0"-
Signal an die Steuerleitung 423 und ein "1"-Signal an die
Steuerleitungen 412 und 413 aus. Datenbytes, die von dem Hauptspeicher
12 an den Sammelkanal 13 geliefert werden, werden dadurch von
den Datenkabeln 408 a und 410 a in die FIFO-Puffer 408 und 410
entsprechend geladen. Die Sammelkanal-Logikeinheit 128 schaltet
daraufhin die Steuerleitung 416 a auf einen "1"-Pegel um, um
anzuzeigen, daß die Sammelkanal-Zyklusanforderung für Daten inaktiv
geworden ist. Wenn das Leer-Datenbyte, das in den FIFO-Puffer 411
geladen worden ist, von dem Eingangsregister in den Stapel des
Puffers verschoben worden ist, so schaltet der Ausgang IPR des
Puffers auf einen "1"-Pegel um, um erneut das Flip-Flop 418 zu
triggern und eine andere Zyklusanforderung auf der Steuerleitung
419 auszugeben.
Der zuvor beschriebene Prozeß setzt sich fort, bis die FIFO-
Puffer 408 und 410 gefüllt sind, was durch die Ausgangssignale
der Ausgangsregister OPR der Puffer angezeigt wird. Der FIFO-
Puffer 411 dient somit der Vorausanzeige beim Laden eines Datenwortes
in die FIFO-Datenpuffer 408 und 410, daß das Datenwort
in den Pufferstapel gefallen werden kann. Insbesondere wird jedesmal,
wenn eine Datenanforderung an den Hauptspeicher 12 erfolgt,
ein Leerbyte in den FIFO-Puffer 411 geladen. Wenn das Leerbyte
in den FIFO-Stapel gefallen ist, bevor eine nächste Datenanforderung
an den Hauptspeicher erfolgt, so sind die Zeitverzögerungen
dergestallt, daß die Datenbytes in den FIFO-Puffern 408 und
410 in die entsprechenden Stapel fallen, bevor zusätzliche
Datenbytes vom Hauptspeicher empfangen werden.
Wenn die FIFO-Puffer 408 und 410 mit Daten gefüllt sind, so
befinden sich die Ausgänge OPR auf einem "0"-Pegel, der einen
gefüllten Zustand anzeigt. Ferner befindet sich der Ausgang IPR
des FIFO-Puffers 411 auf einem "0"-Pegel. Das Gatter 416 ist
somit gesperrt und die Erzeugung von Zyklusanforderungen auf der
Steuerleitung 419 wird beendet.
Wenn der Ausgang OPR des FIFO-Puffers 411 auf einen "1"-Pegel
umschaltet, um anzuzeigen, daß die FIFO-Datenpuffer 408 und 410
gefüllt sind, so gibt die Hardware-Steuereinheit 108 einen
Abtastimpuls an die Adapter-Logikeinheit 29 aus. Die Logikeinheit
29 gibt ihrerseits einen Abtastimpuls an den Geräteadapter 14 aus,
um anzuzeigen, daß die FIFO-Datenpuffer geleert werden können.
Der Geräteadapter 14 gibt daraufhin ein "1"-Hardware-Behandlungsanforderungssignal
an die Steuerleitung 404 aus, und die Firmware
gibt aufgrund dessen ein Hardware-Freigabesignal an die Steuerleitung
402 aus. Die Firmware gibt ferner ein "1"-Signal an die
Steuerleitung 401 aus, um anzuzeigen, daß eine Platten-Schreiboperation
ausgelöst worden ist.
Das Flip-Flop 407 wird durch den Ausgang des Gatters 403 getriggert
und schaltet zwischen dem Setz- und Rückstellzustand hin
und her. Wenn sich das Flip-Flop im gesetzten Zustand befindet,
so wird es beispielsweise bei seiner Triggerung zurückgestellt.
Ferner wird das Flip-Flop gesetzt, wenn es sich bei seiner
Triggerung im zurückgestellten Zustand befindet. Die Ausgänge Q und
des Flip-Flops triggern dadurch abwechselnd die Flip-Flops 405
und 406. Wenn das Flip-Flop 405 getriggert ist, so wird der
Ausgang des Flip-Flops dem Eingang TOP des FIFO-Puffers 408
zugeführt. Aufgrund dessen wird das Datenbyte in dem Ausgangsregister
des Puffers an das Datenkabel 408 b geliefert, das zu dem
Geräteadapter 14 führt. Wenn das Ausgangsregister geleert ist,
so stellt der Ausgang OPR des FIFO-Puffers 408 sofort das Flip-
Flop 405 zurück. In gleicher Weise liefert der Ausgang des
Flip-Flops 406 im getriggerten Zustand ein Lade-Sperrsignal an
den FIFO-Puffer 410. Wenn das Ausgangsregister des Puffers geleert
ist, so stellt der Ausgang OPR des Puffers das Flip-Flop
406 zurück. Es liegt auf der Hand, daß das Flip-Flop 407 zusammen
mit den Flip-Flops 405 und 406 abwechselnd Datenbytes von
den FIFO-Puffern 408 und 410 auswählt. Die zu dem Geräteadapter
14 übertragenen Datenbytes bestehen somit aus einem linken Byte
von dem FIFO-Puffer 408 und einem rechten Byte von dem FIFO-
Puffer 410.
Jedesmal wenn der FIFO-Puffer 410 entladen wird, wird der FIFO-
Puffer 411 ebenfalls entladen. Sobald das Eingangsregister des
FIFO-Puffers 411 geleert ist, schaltet der Ausgang IPR auf einen
"1"-Pegel um, um eine Zyklusanforderung in der zuvor beschriebenen
Weise zu erzeugen. Da Datenbytes in die FIFO-Puffer 408
und 410 geladen sind, werden diese Puffer erneut entladen. Bevor
eine Zyklusanforderung für ein nächstes Datenbyte vom Hauptspeicher
12 angefordert wird, muß jedoch das Eingangsregister des
FIFO-Puffers 411 geleert sein.
Zwei Bedingungen können auftreten, die die Erzeugung einer
Zyklusanforderung auf der Steuerleitung 419 verhindern können, wenn
das Eingangsregister des FIFO-Puffers 411 geleert ist. Wenn der
die Gesamtanzahl der von dem Hauptspeicher 12 zu dem Geräteadapter
14 zu übertragenden Datenbytes anzeigende Bereichszählstand
abgearbeitet ist, schaltet die Leitung 421 auf einen "0"-Pegel
um. Wenn ferner eine ungebetene Sammelkanalanforderung oder andere
Daten auf dem Sammelkanal 13 auftreten, die die Steuerung MPDC-10
zur Ausgabe eines NAK-Signals veranlassen, so wird das Gatter
420 gesperrt. Der Ausgang Q des Flip-Flops 418 schaltet somit
nicht auf einen "1"-Pegel um, wenn es getriggert wird und keine
weiteren Zyklusanforderungen erfolgen.