MICROPROGRAMMED INPUT/OUTPUT CONTROLLER AND METHOD FOR INPUT/OUTPUT OPERATIONS

Abstract: 1. Micro-programme controlled input/ouptut device (I/O) comprising a plurality of microprocessors which cooperate via local stores (LS) and in which, triggered by a central processing device (CPU) of a data processing system, input/output transfers are automatically executed via the internal interface to the main store (MM) and via external interfaces to a plurality of peripheral device control units which are connected via channels equipped with their own channel control units (CH1 to CHn), characterized in that the microprocessors (DVP, AVP) which are provided in addition to the channel control units (CH1...CHn) for the implementation of control and monitoring functions and which operate automatically have access to the main store (MM) independently of one another via a common interface control unit (MINT) during the running of the functions which they are assigned, that one of the microprocessors (AVF) undertakes the role of function administration, in particular the initiation and conclusion of an input/output transfer, and at least one other of the microprocessors (DVP) undertakes the role of data administration, in particular the control of the actual data exchange between the channel control units (CH1 to CHn) and the main store (MM), that in order that the sub-functions may be passed from one microprocessor (e.g. AVP) to the other (e.g. DVP) and vice versa, in dependence upon the particular progress of the data transfer, only the items of control data required for the purpose are made available in transfer zone (LS3, LS4) of the local store (LS) which is common to the two microprocessors (AVP, DVP), and that in order to safeguard the continuous processing of channel commands by the microprocessor (DVP) which executes the data transfer, in particular in the case of command chains, these are made available in the local store (LS) having been previously read out and prepared by the other processor (AVP).

Description: Mikorprogratnmgesteuerte Ein-/Ausgabeeinrichtung und Verfahren zum Durchführen von Ein-/Ausgabeo#erationen Die Erfindung bezieht sich auf eine mikroprogrammgesteu- erte Ein-/Ausgabeeinrichtung für ein datenverarbeitendes System gemäss dem Oberbegriff des Hauptanspruches und auf ein Verfahren zum Durchführen von Ein-/Ausgabeoperationen mit einer derartigen Einrichtung. Das Ziel fast aller Planungen von Rechnern ist es, kon kurrenzfähige Produkte mit immer höherer Betriebssicherheit bei geringeren Kosten in kürzerer Entwickluggszeit herzustellen. Ins Auge fallen dabei vor allem die beachtlichen Leistungssteigerungen in der elektronischen Datenverarbeitung, die bisher bei ständig sinkenden Preisen erzielt worden sind. Diese Fortschritte gründen sich auf mehrere Ursachen: Dazu zählen zunächst strukturelle Massnahmen, wie modularer Aufbau oder auch Pipeline-Strukturen. Ein anderer Aspekt ist der immer weiter fortschreitende Einsatz von programmierten Steuerungen anstelle spezialisierter Schaltungen, z.B. die Weiterentwicklung von Mikroprogramml steuerungen. Dazu kommen die Fortschritte in der Technologie, vor allem der Halbleitertechnologie, die heute bereits zu integrierten Schaltkreisen mit einer Vielzahl von logischen Funktionen auf einem Baustein geführt haben. Die genannten Einzelaspekte sind sicherlich nicht voneinander unabhängig zu betrachten, so sind manche struktu rellen Massnahmen erst durch Fortschritte in der Technolo gie sinnvoll einsetzbar. Bei Ei.n-/Ausgabeeinrichtungen enes datenverarbeitenden Systems haben aber gerade auch strukturelle Massnahmen in der bisherigen Entwicklung der Datenverarbeitungstechnik eine grosse Leistungssteigerung bei Ein-/Ausgabetransfers bewirkt. Im Zuge dieser Entwicklung sind Ein-/Ausgabeeinrichtungen gegentiber den zentralen Verarbeitungseinrichtungen des datenverarbeitenden Systems immer selbständiger geworden. Sie haben Prozessoreigenschaft bekommen und führen von der zentralen Verarbeitungseinrichtung des datenverarbeitenden Systems nur noch zu initiierende Ein-/Ausgabetransfers selbständig durch. Die Abläufe während einer Ein-/Ausgabeoperation sind dann in Form eines Kanalprogrammes eindeutig festgelegt, das für di e die Ein-/Ausgabeeinrichtung zum Zeitpunkt der Einlei- tung verfügbar wird. Von diesem Kanalprogramm wird ein Kanalbefehl nach dem anderen ausgeführt, wobei jeder einen Transfer von Daten oder Steuerinformationen zwischen einem Speicher des datenverarbeitenden Systems und den peripheren Geräten umfasst. Die Kommunikation mit einer peripheren Einheit wird üblicherweise über eine externe Standardschnittstelle durchgeführt. Die Steuerung dieser externen Schnittstelle ist eine wesentliche Funktion der Ein-/Ausgabeeinrichtung. Dabei müssen vielfach auch Realzeitbedingungen eingehalten werden, besonders dann, wenn der Datentransfer nicht von den physikalischen Eigenschaften der peripheren Geräte, zum Beispiel durch Puffer, entkoppelt ist. Ub#er eine interne Schnittstelle verkehrt die Ein-/Ausgabeeinrichtung mit dem Hauptspeicher des datenverarbeitenden Systems. Die Steuerung dieser internen Schnittstelle ist eine andere wesentliche Funktion der Ein-/Ausgabeeinrichtung. Weiterhin müssen während einer Datenübertra- gung die diesen Vorgang definierenden Parameter aufbe- wahrt werden. In diesem Zusammenhang ist häufig auch eine Adressrechnung notwendig, wenn z.B. mit virtuellen Adressen gearbeitet wird. Daneben sind die Kanalbefehls- worte zu lesen, zu aktualisieren und es ist ihre Ausfüh- rung eizzllleiten. Ist der laufende Kanalbefehl der letzte eines Kanalprogrammes, so muss die Ein-/Ausgabeein richtung den damit verbundenen Ein-/Ausgabetransfer abschliessen und dem Prozess in der zentralen Verarbeitungs- einrichtung, der den Ein-/Ausgabetransfer hervorgerufen hat, eine entsprechende Endemitteilung übergeben. Hier sind teilweise auch Realzeitbedingungen einzuhalten, beispielsweise muss ein nächster Kanalbefehl in der Lücke zwischen zwei Datenblöcken auf einem Plattenspeicher aktualisiert werden. Dies ist einfacher zu erreichen, wenn Kanalbefehle im voraus gelesen werden, weil dann der einem aktuellen folgende Kanalbefehl früher aktualisiert werden kann. Die komplexesten Funktionen der Ein-/Ausgabeeinrichtung liegen aber in der Aufgabenverwaltung, die die Kommunikation mit dem verailiassenden Prozess umfasst. Diese gegenüber anderen genannten ionen wesentlich rechenintensiveren Vorgänge sind allerdings in Bezug auf Real Zeichebingungen nicht kr#tisch. Zu diesen Funktionen ge hörte dass von der zentralen Verarbeitungseinrichtung des datenverarbeitenden Systems eingeleitete Ein-/Ausgabetransfers angenommen, und, falls erforderlich, für eine spätere Ausführung in einer Warteschlange eingereiht werden. Weiterhin müssen die jeweils betroffenen peripheren Steuerungen und Geräte ausgewählt werden, um ihnen Befehle übermitteln zu können. Am Ende einer Ein-/ Ausgabeoperation muss die periphere Einheit stillgesetzt werden, eine Statusinformation aufgenommen und eine Endemitteilung an den initiierenden Prozess abgegeben werden. Ein-/Ausgabeeinrichtungen eines datenverarbeitenden Systems haben also sehr unterschiedliche Funktionen wahrzunehmen. Manche dieser Funktionen werden sehr häufig benutzt, snd Jedoch kurz in Bezug auf ihre Ausführungs- zeit, andere wiederum sind sehr komplex, werden allerdings auch nicht so häufig benötigt. Diese differenzierten Funktionen sind in der bisherigen Entwicklung datenverarbeitender Systeme erst allmählich mehr und mehr direkt in die Ein-/Ausgabe einrichtungen gelegt worden, um die zentrale Verarbeltungseilrichtung nicht mehr zu belasten. Die so entstandenen Ein-/Ausgabeeinrichtungen erlaubten eine beachtliche Leistungssteigerung bei komplexen datenverarbeitenden Systemen mit einer Vielzahl von peripheren Geräten unterschiedlicher interner Verarbeitungsgeschwindigkeit bzw. Datenübertragungsrate. Diese ständig fortentwickelte Verlagerung von Steuerfunktionen in Richtung auf die Peripherie zur Entlastung zentraler Einrichtungen geht bis zum sogenannten intelligenten Endgerät, das gewisse einfache Verarbeitungs- funktionen selbst auszuführen vermag, ohne dabei zentrale Verarbeitungseinrichtungen des datenverarbeitenden Systems zu benötigen. Vor diesem Hintergrund ist als bekannt vorauszusetzen, dass der Ein-/Ausgabeverkehr bei bekannten datenverar beitenden Systemen mit Hilfe selbständiger Ein-/Ausgabeprozessoren durchgeführt wird, die lediglich zu Beginn eines Ein-/Ausgabetransfers zur Durchführung dieser Operation angestossen werden. Jeder Transfer läuft über einen an den Ein-/Ausgabeprozessor angeschlossenen Kanal mit Hilfe eines Kanalprogrammes. Der einzelne Kanal umfasst eine Kanalsteuerung, die wiederum einen der Kanal befehle des Kanalprogrammes nach dessen Einleitung selbständig ausführen kann. An beiden Kanal ist eine Mehrzahl von peripheren Geräten angeschlossen. Enthalten diese peripheren Geräte gleichartige Gerätegnippen, so sind diesen häufig periphere Steuerungen vorgeschaltet, die gerätespezifische Steuerfunktionen wahrnehmen. Bei den heute üblichen Datentransferraten und vielfach sehr komplexen datenverarbeitenden Systemen mit einer Vielzahl von peripheren Geräten verlangt jedoch bereits auch diese Aufteilung der Steuerungsaufgaben einen sehr leistungsfähigen Ein-/Ausgabeprozessor bzw. aufwendige Ein-/Ausgabeeinrichtungen Man hat deshalb auch bereits versucht, Multiprozessorsysteme so aufzubauen, dass eine Mehrzahl von Prozessoren7 die jedoch nicht unbedingt spezialisierte Ein-/Ausgabeprozessoren sein müssen, auch den Ein-/Ausgabeverkehr übernehmen kann. Jede Aufteilung von Datenströmen auf eine Mehrzahl von Prozessoren bedeutet jedoch immer zugleich eine Verwaltung der aktuellen Verteilung der Teilströme. Daraus folgt, dass ein solches Multiprozessorsystem als Ganzes von aussen betrachtet wohl leistungsfähiger wird, die mögliche in teine Verarbeitungsleistung jedoch durch derartige zu sätzliche Verwaltungsaufgaben belastet wird. Neben die sem systematischen Nachteil besteht ein weiterer im be QrSch;ichen Schaltungsaufwand, da alle oben geschilderten Funktionen in jedem der parallel arbeitenden Ein-/ Aus#abeorozessoren realisiert sein müssen. Ausgehend von diesen Uberlegungen liegt daher. der Erfindung die Aufgabe zugrunde, eine mikroprogrammgesteuerte Ein-/Ausgabeeinrichtung der eingangs genannten Art zu schaffen, die eine besonders transparente Struktur aufweist, bei der bisherige Betriebssysteme eines datenverarbeitenden Systems erhalten bleiben können. Mit anderen Worten bedeutet dies, dass die Struktur einer derartigen Ein-/Ausgabeeinrichtung keine wesentlich neuen Verwaltungsaufgaben für die Verteilung von Datenströmen erfordern darf und dass das Ein-/Ausgabesystem aus der Sicht der zentralen Verarbeitungseinrichtungen transpa rent sein soll, d.h. t die interne Schnittstelle zwischen diesen Teilen des datenverarbeitenden Systems erhalten bleiben soll. Diese Aufgabe wird bei einer mikroprogrammgesteuerten Ein-/Ausgabeeinrichtung der eingangs genannten Art erfindungsgemäss durch die im Kennzeichen des Hauptanspruches angegebenen Merkmale gelöst. Auch wenn bis heute bei mittleren bis grossen datenverarbeitenden Systemen vielfach in diskreter Technik aufgebaute zentrale Prozessoren verwendet werden, so ist es doch gerade bei langsamen peripheren Geräten, wie Drukkern oder Kartenlesern, bereits länger gebräuchlich, zum Ausführen der Steuerfunktionen relativ langsame Mikroprozessoren einzusetzen. Mit wachsender Leistungsfähigkeit der marktublichen Mikroprozessoren werden sogar mehr und mehr schnellere periphere Geräte, wie Magnetband- oder Plattenspeicher, durch Mikroprozessoren gesteuert. Der Einsatz von Mikroprozessoren, auch dann, wenn sie verhältnismässig langsam sind, ist daher hier nur ein vordergründiges Merkmal der Erfindung. Viel wesentlicher für die gesamte Struktur der Ein-/Ausgabeeinrichtung ist die hier durchgeführte Art der Aufteilung der bei einem Ein- /Ausgabetransf er durchzuführen- den Funktionen auf selbständige, im wesentlichen identisch ausge Prozessoren. Die erfindungsgemässe Lösung entspricht im Prinzip allerdings eher einer Pipe linie-Struktur als einem Multiprozessorsystem mit einer Mehrzahl von identischen Prozessoren. Bei datenverarbeitenden Systemen mit Pipelinie-Struktur wird ein Maschinenbefehl in eine Mehrzahl von Einzelfunktionen zerlegt und eine Kette von hintereinandergeschalteten spezialisierten Verarbeitungsstationen verwendet, die je- weils eine dieser Einzelfunktionen ausführen. Die Verarbeitungsstationen arbeiten simultan, jedoch an verschiedenen, aufeinanderfolgenden Befehlen eines Befehlsstromes. Hinsichtlich der Spezialisierung in ihrer Funktion könnten die beiden Mikroprozessoren der erfindungsgemässen Lösung noch mit sdchen Verarbeitungsstationen eines Pi peline-Systems verglichen werden. Der wesentliche Unterschied zu einer solchen Pipeline-Struktur besteht aber darin, dass die Mikroprozessoren untereinander in beiden Richtungen kommunizieren und vom anderen wieder Aufgaben übernehmen, wenn dieser mit seiner Teilfunktion fertig ist Praktisch bedeutet dies, dass der Auftragsver- waltungsprozessor die Kontrollfunktion über die Schnittstelle zum Speichersystem in der datenverarbeitenden Anlage und die Aufgabenverwaltung übernimmt und diese komplexen Funktionen parallel zu der Arbeit des von ihm angest-ossenen Datenverwaltungsprozessors ausführt, der sie kurzen, jedoch häufig auftretenden Routinen bei der Einleitung eines einzelnen Kanalbefehles wahrnimmt, den eigentlichen Datentransfer überwacht, aber seinerseits wieder den ersteren aktiviert, um z.B. den AbschluB eines Kanalprogrammes auszuführen und der zentralen Verar beitungse#nricbtung zu übermitleln. Mit dieser Äu#teilung sind bestimmte Steuer- und Kon trolifunktionen wieder aus der Peripherie in die Ein-/ Ausgabeeinrichtung zurückzuverlagern. Deshalb ist es ohne Leistungsverlust möglich, weniger aufwendige Kanal steuerungen einzusetzen. Ein weiterer Vorteil liegt also darin, dass in Richtung der Peripherie einfache und schnelle Hardware-Einrichtungen eingesetzt werden können während alle aufwendigeren Kontrollfunktionen zentralisiert in den beiden selbständig arbeitenden Mikroprozessoren der Ein-/Ausgabeeinrichtung realisiert sind. Im Vergleich zu vertikal gegliederten Multiprozessorsystemen besteht ein weiterer Vorteil der erfindungsgemässen Lösung darin, dass die beiden Mikroprozessoren gemeinsam einen Lokalspeicher benutzen, der in mehrere Teilbereiche gegliedert ist, die entweder nur von einem der beiden Mikroprozessoren oder in einem Fall auch von beiden gemeinsam benutzt werden können. Gegenüber Multiprozessorsystemen verringert sich daher an dieser Stelle der Aufwand für den Kontrollspeicher beträchtlich, der sonst bei einer Anzahl von n Ein-/Ausgabeprozessoren ebenfalls n-fach vorgesehen werden müsste. Neben diesem geringeren schaltungstechnischen Aufwand bedeutet aber die gewählte Ebenen-Struktur bei einer Spezialisierung der Funktionen auch eine wesentlich einfachere Lösung vom Betriebssystem her, da die eindeutige Aufgabenzu- ordnung keine zusätzlichen Verwaltungsaufgaben erfordert. Weiterbildungen der Erfindung sind in. den Unteransprüchen beschrieben. Ein Ausführungsbeispiel der Erfindung wird im folgenden anhand der Zeichnung näher erläutert. Dabei zeigt: Fig. 1 ein Blockschaltbild eines datenverarbeitenden Systems mit einer erfindungsgemäss ausgebildeten Ein-/Ausgabe einrichtung, Fig. 2 in einem Blockschaltbild den Aufbau in der Ein-/ Ausgabe einrichtung, Fig. 3 in einem Flussdiagramm die Steuerung einer Ein-/ Ausgabeoperation, und Fig. 4 in einer anderen Darstellung den zeitlichen Ab lauf eines Ein-/Ausgabetransfers. In Fig. 1 ist ein datenverarbeitendes System dargestellt, in dem eine zentrale Verarbeitungseinrichtung CPU ebenso an einen Hauptspeicher MM angeschlossen ist wie eine Ein-/Ausgabeeinrichtung I/O. Diese besitzt, angeschlossen an den Hauptspeicher MM eine Schnittstellensteuereinheit MINE zum Hauptspeicher. Diese Einheit stellt eine spezialisierte Steuereinheit für den Verkehr von zwei an sie angeschlossenen Mikroprozessoren AVP bzw. DVP mit dem Hauptspeicher MM dar. Der eine der beiden Mikroprozessoren ist dabei als Auftragsverwaltungsprozessor AVP bezeichnet. Er steuert die Kommunikation mit der zentra len Verarbeltungseinrichtung CPU und übernimmt damit alle komplexen Funktionen für die Einleitung, aber auch den Abschluss eines Ein-/Ausgabetransfers. Der andere Mikroprozessor ist als Datenverwaltungsprozessor DVP bezeichnet, er wickelt den eigentlichen Datentransport im Verkehr mit hier nicht dargestellten peripheren Geräten ab. Dazu ist in dem Blockschaltbild von Fig. 1 nur angedeutet, dass er an eine Mehrzahl von Kanälen CHI bis CHn angeschlossen ist, über die er dann mit einzelnen peripheren Geräten verkehrt. Die Kanäle CH1 bis CEn stellen damit die externe Schnittstelle der Eir-/Ausgabeeinrichtung I/O dar. Beide Prozessoren haben gemeinsam Zugriff zu einem Lokalspeicher LS, über den sie miteinander kommun#z'eren. Der aufbau der Ein-/Ausgabeeinrichtung I/O ist in Fig. 2 anhand eines Blockschaltbildes naher dargestellt. Dabei entspricht der linke Teil des Blockschaltbildes im wesentlichen dem Datenverwaltungsprozessor DVP mit den an ihn angeschlossenen Einrichtungen. Dies sind vor allem die Kanäle CHI bis CHn, ¯die an ein Bussystem DBUS des Datenverwaltungsprozessors DVP angeschlossen sind. An diesem Bussystem liegt auch ein schematisch angedeuteter Registersatz RSD von Arbeitsregistern des Datenverwaltungsprozessors DVP, zu dem insbesondere auch ein Parameterregister PARD zu zählen ist, dessen Funktion noch erläutert wird. Die eigentliche Verarbeitungseinheit DPU des Datenverwaltungsprozessors DyP ist über einen Eingangsmultiplexer DMUI unter anderem auch an das Bussystem DBUS angeschlossen. Sie enthält einen Schnellspeicher FM, der über weitere Multiplexer NUX an ein Steuer- und Rechenwerk ALU angeschlossen ist. Dieses wiederum ist zur Vervollständigung einer internen Verarbeitungsschleife mit dem Schnellspeicher FM verbunden, aber auch über einen weiteren Multiplexer an einen Byterücktauscher BRC angeschlossen. In diesem Netzwerk wird die im Eingangs =itiplexer DZ'JE durchgeführte Yerschiebeoperation w e- der ruckgängig gemacht. Der Ausgang dieses Netzwerkes und das Bussystem DBUS des Datenverwaltungsprozessors DVP sind über einen weiteren Multiplexer LMUX an den Lokalspeicher LS angeschlossen. Dieser Lokalspeicher LS ist in vier Speicherbereiche T S1 bis LS4 aufgeteilt. Die beiden ersten Speicherbereiche LSI und LS2 sind für den Auftragsverwaltungsprozessor AVP bzw. den Datenverwaltungsprozessor DVP reserviert. Der dritte Speicherbereich stellt einen allgemeinen Ubergabebereich dar, zu dem beide Prozessoren Zugriff haben. Der vierte Speicherbereich ist als Ubergabebe- reich für vorausgelesene Kanalbefehle reserviert. In Fig. 2 ist angedeutet, dass der Ausgang des Lokalspei chers LS über den Eingangsmultiplexer DMUX des Datenverwaltungsprozessors DVP wieder an die Verarbeitungseinheit DPU angeschlossen ist. An das Bussystem DBUS des Datpnverwaltungsprozessors DVP ist ausserdem eine AnschluBeinheit MMD zum Hauptspeicher MM angeschlossen, über die gepufferte Daten vom Hauptspeicher übernommen bzw. zum Hauptspeicher übertragen werden. Zum Datenverwaltungsprozessor DVP ist schliesslich noch ein Kontrollspeicher DCM zu rechnen, der entweder als Festwertspeicher, aber auch als beschreibbarer Steuerspeicher ausgebildet sein kann und für einen nicht dargestellten Decodierteil des Datenverwaltungsprozessors die Informationen zur Verfügung stellt. Im rechten Teil von Fig. 2 sind die entsprechenden Einrichtungen des Auftragsverwaltungsprozessors AVP dargestellt. Auch dieser besitzt ein Bussystem ABUS, an das ein Registersatz RSA mit einem Parameterregister PARA und eine Anschlusseinheit MMA, sowie über einen als Bytetauscher ausgebildeten Eingangsmultiplexer M= die Verarbeitungseinheit APU angeschlossen ist. Diese ist analog zu der des Datenverwaltungsprozessors DVP ausgebildet und besitzt ebenso im Ausgang einen Byterücktauscher BRC, der wie das Bussystem ABUS des Auftragsverwaltungsprozessors AVP über den Eingangsmultiplexer LMUX an den Lokalspeicher LS angeschlossen ist. Auch zum Auftragsverwaltungsprozessor AVP gehört ein Kontrollspeicher ACM, der hier nun an das Bussystem DBUS des Datenverwal tungsprozessors DVP angeschlossen ist. Aus der Darstellung in Fig. 2 geht hervor, dass die beiden Mikroprozessoren, der Auftragsverwaltungsprozessor AVP und der Datenverwaltungsprozessor DVP im wesentli chen identisch aufgebaut sind und über einen gemeinsamen Speicher, den Lokalspeicher LS, miteinander korrespondieren. Die beiden Prozessoren teilen sich in die bei einem Ein-/Ausgabetransfer auszuführenden Funktionen. Dabei übernimmt der Datenverwaltungsprozessor DVP die Steuerung über die externen Schnittstellen zu der Peripherie des datenverarbeitenden Systems, während der Auf tragsverwaltuzigsprozessor AVP im wesentlichen die Aufgaben zur Steuerung über die interne Schnittstelle zum Hauptspeicher MM wahrnimmt. Diese Aufgabenteilung sei im folgenden anhand yon Fig. 3, in der der Ablauf von Einzelfunktionen bei einem Ein-/ Ausgabetransfer für beide Prozessoren AVP bzw. DVP sowie für die Kanäle CHI bis CHn dargestellt ist. Die Darstel lung in Gestalt eines Flussdiagrammes ist so gewählt, dass in der linken Spalte die vom AuNtragsverwaltlmgsprozes- sor AVP, in der mittleren Spalte die vom Datenverwaltungsprozessor DVP und in der rechten Spalte die von den Kanälen CHI bis CBn durchzuftihrenden Aufgaben bei einer Ein-/Ausgabeoperation dargestellt sind. Mit einer von der zentralen Verarbeitungseinrichtung - CPU abgegebenen Anforderung wird der Auftragsverwaltungsprozessor AVP aktiv. Er empfängt den Einleitungsauftrag einschliesslich der Adresse des entsprechenden Eanalprogrammes und transferiert die ersten Kanalbef eh- le dieses Programmes in den für Kanalbefehle reservierten Speicherbereich LS4 des Lokalspeichers LS. Der Auftragsverwaltungsprozessor AVP formatiert diese entsprechend, um sie für ihre weitere Verwendung durch den Da tenverwaltungsprozessor DVP vorzubereiten. Um den Transfer von Parametern von dem Auftrgsverwaltungsprozessor AVP zum Datenverwaltungsprozessor DVP zu erleichtern, sind Bereiche des Lokalspeichers LS, wie beschrieben, beiden gemeinsam. Die Steuerung des Zugriffes zu dem Lokalspeicher LS für beide Prozessoren ist noch verhältnismässig' einfach. Falls beide Prozessoren gleichzeitig einen Zugriff verlangen, wird der Zugriff des Auftragsverwaltungsprozes sors AVP um einen Zyklus verzögert, indem ihm hardwaremässig eine Null operation aufgezwungen wird. Der Datenverwaltungsprozessor DVP, der durch den Auftragsverwaltungsprozessor AVP angestossen wird, wählt den adressierten Kanal', z.B. CH1, aus und übergibt diesem eine Aufforderung seinerseits, die entsprechende Gerätesteuerung bzw. das periphere Gerät auszuwählen. Danach übergibt er den ersten Kanalbefehl. Handelt es sich dabei um einen Ausgabebefehl, dann fordert der ausgewählte Kanal unmittelbar Daten an, um seinen Puffer zu füllen. Danach-werden die Daten an die Peripherie auf deren Anforderung hin übertragen. Sobald der Kanal freie Pufferkapazität besitzt, fordert er vom Datenverwaltungsprozessor DVP neue Daten an. Im Falle eines Lesebefehles empfängt der Kanal die Daten von der peripheren Steuerung bzw. dem peripheren Gerät. Sobald der Puffer des Kanals gefüllt ist, gibt er eine Aufforderung an den Da tenverwaltungsprozessor DVP ab, um den Pufferinhalt in den Hauptspeicher MM übertragen zu lassen. Ausserdem übergibt der tätige Kanal an den Datenverwaltungsprozessor DVP jedesmal dann eine Endeanforderung, wenn er eine Endebedingung feststellt. Während der Datenübertragung werden vom Datenverwaltungsprozessor DVP die Ubertragungsparameter auf den neuesten Stand gebracht, d.h., der Bytezähler erniedrigt die Adresse entsprechend erhöht bzw. übersetzt, falls bei virtueller Adressierung eine Speicherseite-überschritten wird. Ein Endetest für die laufenden Befehle eines Kanalpro grammes beendet normalerweise diese Verwaltungs funktion. Nur wenn ein Befehlsende festgestellt wird, muss eine Kettungsbedingung abgefragt werden. Gegebenenfalls ersetzt der vorausgelesene nächste Kanalbefehl den aktuellen Befehl und der Auftragsverwaltungsprozessor AVP wird nun aufgerufen, den nächsten Kanalbefehl vorauszulesen. Dies ist eigentlich eine Organisationsfunktion einer Ubertragungsprozedur. Da der Auftragsverwaltung spro z e s - sor AVP jedoch in der Lage sein soll, Kanalbefehle zur Zeit der Befehlseinleitung zu lesen, wird ihm auch dieses Vorauslesen übertragen. Auf diese Weise wird eine bessere Belastungsverteilung zwischen beiden Prozessoren erhalten. Im Falle des Datenkettens ist jedoch die Funktion des Datenverwaltungsprozessors DVP hier beendet. Beim Befehlsketten jedoch arbeitet der Datenverwalt'ungs- prozessor wie in der Einleitungsphase. Ist jedoch das Ergebnis des Tests der Edbungsbedingung negativ, dann hat der Datenverwaltungsprozessor AVP nur noch die Aufgabe, die Statusinformation der am Transfer beteiligten Reripherie sicherzustellen und eine Endeanforderung an den AuStragsverwaltungsprozessor AVP abzu- geben. Dieser seinerseits übergibt darauf'nun die Statusinformation in einen reservierten Bereich des Hauptspeichers MM und benachtichtigt die zentrale Verarbeitungseinrichtung CPU. Das Betriebssystem innerhalb der zentralen Verarbeitungseinrichtung CPU setzt damit dann den zugehörigen Prozess in den Fertigstatus. Diese Vorgänge sind in Fig. 4 nochmals in anderer Form zeitlich besser aufgegliedert dargestellt. Fig. 4 zeigt dazu ein Funktionsdiagramm für die Tätigkeiten des Auftragsverwaltungsprozessors AVP im linken Teil, des Datenverwaltungsprozessors DVP im mittleren Teil und der Kanäle, z.B. CH1, als der Hardwareschnittstelle zu den Gerätesteuerungen im rechten Teil. Die Abläufe sind fortlaufend längs einer Zeitachse t von oben nach unten dargestellt. Dabei liegen simultan zueinander ablaufende Funktionen in gleicher Höhe. Der Auftragsverwaltungsprozessor AVP übernimmt von der zentralen Verarbeitungseinrichtung CPU die Anforderung auf einen E/A-Transfer in der Einleitungsphase eines Maschinenbefehles "START DEVICE#. Er übergibt zur Aufbereitung der Befehlsparameter die ersten Kanalbefehle eines Kanalprogrammes an den Datenverwaltungsprozessor DVP, der wie dargestellt, den zugehörigen Kanal, z.B. CE1, auswählt. über diesen läuft die eigentliche Datenübertragung gesteuert ab, der Da tenverwaltungsprozessor DVP wird nur eingeschaltet, wenn der Kanal CH1 eine neue Datenanforderung abgibt. Parallel dazu wird vom Auftragsverwaltungsprozessor AVP der nächste Kanalbefehl vorausgelesen, so dass dieser dem Datenverwaltungsprozessor DVP bei einer Endeanforderung des ausgewählten Kanals CH zur Verfügung steht. Dies setzt sich solange fort, bis entweder das Kanalprogramm vollständig abgearbeitet ist, oder aber, wie beim Datenketten, eine Unterbrechungsbedingung INT auftritt. Diese wird dann vom Auftragsverwaltungsprozessor AVP aufbereitet und ergibt wie bei einem normalen Ende eines Kanal programmes eine Rückmeldung zur zentralen Verarbeitungseinheit CPU. Der Datenverwaltuqffiprozessor ist sehr leistungsfähig, wenn die Aufbereitung der Parameter und der Datentransfer zwischen der externen Schnittstelle und der internen Schnittstelle zum Hauptspeicher MM gleichzeitig durchgeführt werden kann. Dazu ist es allerdings notwendig, wie in Fig. 2 dargestellt, die entsprechenden Datenwege, insbesondere DBUS und ABUS, zu entkoppeln. Die aktualisierten Parameter werden aus den alten Werten in dem Lokalspeicher LS, aus Literalen LIT oder Registerinhalten des Registersatzes RSD errechnet. Sie werden im Lokalspeicher LS im selben Mikrobefehl wieder gespeichert. Der zweifache Zugriff zum Lokalspeicher LS verlänger zwar den Maschinenzyklus, Jedoch reduziert er die Anzahl der Befehle. Kanäle mit niedriger Leistung, z.3. Byte-Multiplex-Kanäle ohne eigene Puffereinrichtun- gen, werden bei jedem Bytetransfer unterstützt. Dabei verwaltet der Datenverwaltungsprozessor DVP das Zwischenspeichern im Lokalspeicher LS. In diesem Fall muss das Befehisaufbereiten und der Datentransfer nacheinander ausgeführt werden. Wegen möglicher Realzeitbedingungen ist es zwingend notwendig, dass über den Maschinenzustand bestimmte Funktionen direkt beeinflussbar sind. Umgekehrt muss dieser Zustand oft sehr schnell geändert werden, dies ist dann nur durch Hardwareschaltungen möglich. Ein Beispiel für ein solches Zustandsregister, das im Registersatz RSD des Datenverwaltungsprozessors DVP enthalten ist, ist das Parameterregister PARD für die laufenden Parameter, welches ein schnelles Umschalten von einem Kontext auf den anderen erlaubt. Dessen Bedeutung sei-nachfolgend erläutert: Beide Prozessoren, der Datenverwaltungsprozessor DVP und der Auftragsverwaltungsprozessor AVP müssen zum Lokalspei- cher LS mit Adressen zugreifen können, die von den Gerä tenugmern der an einem Transfer beteiligten Kanäle abgeleitet sind. Dazu hat jeder ein Parameterregister PARA bis PARD, das als ein Indexregister für die Adressierung des Lokalspeichers LS gilt. Auch ein weiterer Teil der Register der Registersätze RSA bzw. RSD sind offene Re gistPr. > T > r Inhalt muss fortlaufend für die Hardware ver fügbar sein. Wenigstens im Fall des Datenverwaltungs- prozessors DVP müssen diese offenen Register auch durch die Hardware ladbar sein. Hierfür dient ein nicht darge- stelltes konventionelles Proritätsnetzwerk. Es wählt einen priorisierten Kanal aus, sofern mehrere Kanalan- forderungen anstehen. Es überträgt dann die Gerätenummer des ausgewählten Kanals in dieses Parameterregister. Zweckmässigerweise sollte auch ein Laden dieser offenen Register des Datenverwaltungsprozessors DVP durch Hardware möglich sein4 Beim Äuftragsverwaltungsprozessor AVP jedoch ist eine derartige Hardwarefunktion nicht erforderlich, da er keine direkte Verbindung mit der externen Schnittstellensteuerung hat. Diese Einfu¯hrung offener Register einerseits und die Tatsache, dass der Lokalspeicher LS beiden Mikroprozessoren zugänglich ist, erlaubt die Verwendung an sich verhältnismässig langsamer handels üblicher Mikroprozessoren trotz der vorgegebenen Realzeitbedingungen. Der Einsatz von Mikroprozessoren in einer Ein-/Ausgabe einrichtung wird, wie beschrieben, in der Weise möglich, dass Funktionen, die eine komplexe Steuerung erfordern, den "intelligenteren" Mikroprozessoren zugeordnet werden und die Funktionen mit Realzeitbedingungen und weniger Steuerungsaufwand spezialisierten Hardwareeinrichtungen übertragen werden. Die unterschiedlichen Funktionsein- heiten, die die besonderen Funktionen wiedergeben, arbeiten in einer unterschiedlichen Weise. Die Funktionseinheiten, die am häufigsten in einer Ein-/Ausgabeopera tion benötigt werden,# die Kanalsteuerungen, arbeiten in der Art einer Programmablauffolge. Alle anderen F¯unX- tionseinheiten, insbesondere der Datenverwaltungsprozessor DVP und der Auftragsverwaltungsprozessor AVP werden innerhalb einer Ein-/Ausgabeoperation seltener gebraucht und arbeiten dementsprechend als spezialisierte Steuereinheiten, die zwar miteinander kommunizieren, äe- doch an sich unabhängig voneinander arbeiten. 7 Patentanspr'#che 4 FIguren

Claims: Patentansprüche 1. Mikroprogrammgesteuerte Ein-/Ausgabeeinrichtung, in der ausgelöst von einer zentralen Verarbeitungseinrichtung eines datenverarbeitenden Systems selbständig Ein-/Ausgabe transfers zwischen einer internen Schnittstelle zum Haupt- speicher und externen Schnittstellen zu einer Vielzahl peripherer Geräte bzw. peripherer Gerätesteuerungen, die über mit eigenen Kanal steuerungen ausgestattete Kanäle angeschlossen sind, durchgeführt werden, d a d u r c h g e k e n n z e i c h n e t, dass neben den Kanalsteuerungen (CHl...CHh) für die Ausführung von Steuer- und Kontrollfunktionen selbständig arbeitende, im wesentlichen identisch aufgebaute Mikroprozessoren (DVP, AVP) eingesetzt sind, von denen einer (AVP) die Funktionen der Aufgabenverwaltung, also insbesondere die Steuerung der internen Schnittstelle zum Hauptspeicher (MM) und mindestens ein anderer (DVP) die Steuerung der externen Schnittstellen übernimmt > aass den simultan arbeitenden Prozessoren gemeinsam ein Lokal- speicher (LS) zugeordnet ist, über den sie miteinander kommunizieren und dass jeder Prozessor mit einem Sontroll- speicher (DCM, ACM) des anderen verbunden ist, um diesen zu aktivieren. 2. Mikroprogrammgesteuerte Ein-/Ausgabee'inr'-.chtung nach Anspruch 1, d a d u r c h g e k e n n z e i c h n e t, dass die Mikroprozessoren (DVP, AVP) ein Bussystem (DBUS bzw. ABUS) mit einem angeschlossenen internen Registersatz (RSD bzw. RSA) und eine Verarbeitungseinheit (DPU bzw. APU) mit eigenem Schnellspeicher (FM) und arithmetisch logischem Rechenwerk (ALU), die untereinander über Multwplexer ¯?er- bunden sind, aufweisen. n. Mikroprogrammgesteuerte Ein-/Ausgabeeinrichtung nach Anspruch 2, d a d u r c h g e k e n n z e i c h n e t, dass zum Lösen von Speicherzugriffskonflikten bei glench- zeitigen Speicheranforderungen dieses Aufgabenverwaltungs prozessors (AVP) und des Datenverwaltungsprozessors (DVP) zum Lokalspeicher (LS) dem Aufgabenverwaltungsprozessor hardwaremässig eine Nulloperation aufgezwungen wird, so dass sich sein Speicherzugriff um einen Zyklus verschiebt. 4. MikropzoOr?mmgesteuerte Ein-/Ausgabeeinrichtung nach anspruch 2 oder 3, d a d u r c h g e k e n n z e i c h n e t, dass die Mikroprozessoren (DVP, AVP) zum Adressieren des Lokalspeichers (LS) in ihren Registersätzen (RSD bzw. RSA) je ein Register (PARD bzw. PARA) für die laufenden Parameter aufweisen, die zumindestens teilweise als offene, d. h. ausser über das Bussystems (DBUS bzw. ABUS) ständig an weitere Schaltungen der Prozessoren angeschlossene Register ausgebildet sind und dass zumindestens das Parameterregister (PARD) des Datenverwaltungsprozesscrs sowohl über das Bussystem als auch unmittelbar über die Hardware ladbar ist. 5. Mikropgrammgesteuerte Ein-/Ausgabeeinn'chtung nach 4n- spruch 4, d a d u r c h g e k e n n z e i c h n e t, dass ein Prioritätsnetzwerk vorgesehen ist,- das bei gleichzeitigen Anforderungen mehrerer Kanäle (CH1...CHn) an den Datenverwaltungsprozessor (DVP) den höchstpriorisierten Kanal auswählt und seine Identifikationsnummer in das Parameterregister (PERD) des Datenverwaltungsprozessors überträgt. 6. Mikroprogrammgesteuerte Ein-/Ausgabe,eenrichtung nach einem der Ansprüche 4 oder 5, d a d u r c h g e k e n nz e i c h n e t, dass ein Sperrnetzwerk vorgesehen ist, das die Übergabe einer kanalinternen Anforderung an den Datenverwaltungsprozessor (DVP) so lange unterdrückt, bis eine vom Datenverwaltungsprozessor an den Aufgabenverwaltungsprozessor (AVP) abgegebene Anforderung auf Lesen eines Kanalbefehles im voraus durch den Aufgabenverwaltungs- prozessor abgeschlossen ist. 7. Verfahren zum Durchführen von Ein-/Ausgabeoperationen mit einer mikroprogrammgesteuerten Ein-/Ausgabeeinrichtung nach einem der Ansprüche 1 bis 6, d a d u r c h g e k e n n z e i c h n e t, dass - die zentrale Verarbeitungseinrichtung (CPU)zum Einleiten einer Ein-/Ausgabe-Operation an den Aufgabenverwaltungs- prozessor (AVP) eine Anforderung mit einem Befehl 11START DEVICE" mit der Adresse eines im Hauptspeicher (MM) gespeicherten Kanalprogrammes übergibt, - der Auftragsverwaltungsprozessor daraufhin aus dem Hauptspeicher Parameter und die ersten Kanalbefehle des Kanal programms entsprechend formatiert in den Lokalspeicher' (LS) überträgt und anschliessend den Datenverwaltungsprozessor (DVP) aktiviert, - der Datenverwaltungsprozessor den betröffenen Kanal (CH1... CHn) auswählt, diesen zur Adressierung des betroffenen peripheren Geräts aufforderl und ihm den ersten Kanalbefehl übergibt, - die Steuereinheit des ausgewählten Kanals bei einem Ausgabebefehl unmittelbar den Datenverwaltungsprozessor a"if- fordert, Daten in einen Kanalpuff er zu übertragen, bei einem Eingabebefehl jedoch erst, wenn der Kanalpuffer durch das periphere Gerät gefüllt ist, den Datenverwaltungsprozessor auffordert, die gepufferten Daten in den Hauptspeicher zu übertragen, - der Datenverwaltungsprozessor in dieser Zeit die Parameter aktualisiert, d. h. fortlaufend den Bytezähler erniedrigt, die Adresse erhöht und auch übersetzt, falls eine Speicherseite überschritten wird, - der Datenverwaltungsprozessor nach dem Ausführen eines Ranalbefehls feststellt, ob eine Befehlskettung vorliegt und gegebenenfalls den nächsten Kanalbefehl aus dem Lokalspeicher liest und aufbereitet, der Auftragsverwaltungsprozessor zugleich aufgefordert wird, einen weiteren Kanalbefehl des Kanalprogramms aus dem Hauptspeicher in den Lokal speicher im voraus zu übertragen, - der Datenverwaltungsprozessor am Ende eines Kanalprogrammes die Statusinformation des am Transfer beteiligten peripheren Geräts im Lokalspeicher speichert und dem AuQtragsverwaltungsprozessor eine Endeanforderung übergibt, - und der Auftragsverwaltungsprozessor darauonin die Statusinformation in den Hauptspeicher, sowie der zentralen Verarbeitungseinheit die Endeinitteilung überträgt.

Inventors: RENSCH, VEIT, DIPL.-ING., RUBNER, WOLFGANG, DIPL.-ING.
Applicants: SIEMENS AKTIENGESELLSCHAFT
Application year: 1979
Main classification: G06F3
IPC codes: G06F13