DE1524164C - Einrichtung zur Datenübertragung zwischen einer Datenverarbeitungseinheit und einer oder mehreren Anschlußeinheiten - Google Patents

Einrichtung zur Datenübertragung zwischen einer Datenverarbeitungseinheit und einer oder mehreren Anschlußeinheiten

Info

Publication number
DE1524164C
DE1524164C DE1524164C DE 1524164 C DE1524164 C DE 1524164C DE 1524164 C DE1524164 C DE 1524164C
Authority
DE
Germany
Prior art keywords
data
data group
subgroup
transmission
buffer memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
Other languages
English (en)
Inventor
Michael Chandlers Ford Hampshire Flinders (Großbritannien)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Publication date

Links

Description

5 6
Kennzeichens zur Wirkung kommende Inkrement- wählte Ausgabevorrichtung eingeführt. Bei einer Einbzw. Dekrement-Schaltmittel aufweist, durch die in gabeoperation findet der umgekehrte Vorgang statt. Abhängigkeit vom Ein- oder Ausschaltzustand der Im vorliegenden Beispiel besitzt das Datenver-Datengruppengrenze-Anzeigeschaltung der zur vor- arbeitungssystem Unterbrechungseinrichtungen, mit ausgehenden oder zur laufenden Datengruppe gehö- 5 denen es möglich ist, eine erste, Folge von Operarende Untergruppenzählstand um den von der zu- tionen, die gemäß einer ersten Folge von Befehlen sätzlichen Untergruppen-Zähleinrichtung angezeigten ausgeführt wird, zu unterbrechen, damit eine zweite Wert zurückverändert wird. Folge von Operationen entsprechend einer zweiten
Weitere vorteilhafte Einzelheiten der Erfindung Folge von Befehlen ausgeführt werden kann. Eine
sind aus den Ansprüchen ersichtlich. io solche Unterbrechung kann bei Abschluß einer Ein-
Nachfolgend wird ein Ausführungsbeispiel der Er- gabe-Ausgabe-Datenübertragung stattfinden und wird
findung an Hand von Zeichnungen erläutert. Es zeigt in diesem Falle als 7/0-Unterbrechung bezeichnet.
Fig. 1 ein vereinfachtes Blockschaltbild eines Wenn ein Punkt in einem Programm erreicht wird,
Datenverarbeitungssystems, bei dem die Erfindung wo es nötig ist, die Resultate von Rechenvorgängen verwendet wird, .15 auszugeben und zusätzliche Eingangsinformationen
F i g. 2 ein vereinfachtes Blockschaltbild eines· einzugeben, wird ein »7/0-Starten«-Befehl 91 erteilt.
Datenübertragungskanals, wie er im Datenverarbei- Wie Fig. 3 zeigt, gibt dieser Befehl die auszufüh-
tungssystem von F i g. 1 Verwendung findet, rende Operation OP, ein Kanalkommandowort CCW,
Fig. 3 eine schematische Darstellung der Wort- die Nummer des zu benutzenden Kanals und die formate der verschiedenen vom Datenübertragungs- 20 Nummer der an diesen.Kanal angeschlossenen Vorkanal nach F i g. 2 verwendeten Steuerworte, richtung an. Der »7/0-Starten«-Befehl 91 leitet eine
Fig. 4 das Beispiel einer Folge von drei Korn- durch Mikroprogramm gesteuerte Ablauffolge ein,
mandowörtern, von denen das erste ein Kanalkom- durch welche Register in dem Kanal mit Informa-
mandowort, das zweite ein »Übertragung-im-Kanal«- tionen beladen werden, die die auszuführende UO-
Kommandowort und das dritte ein weiteres Kanal- »5 Operation näher kennzeichnen. Diese Informationen
kommandowort ist, werden aus dem. »7/0-Starten«-Befehl 91 und dem
F i g. 5 die schematische Darstellung eines Schalt- _; von diesem adressierten CCW-Wort abgeleitet und
zustandes der erfindungsgemäßen Einrichtung bei der zu einem Einheitssteuerwort UCW innerhalb des
Verarbeitung der Kommandowortfolge nach F i g. 4, Kanals zusammengestellt. Na^' Zusammenstellung
Fi g. 6 ein detailliertes Blockschaltbild des Daten- 30 des [/CW-Wortes läuft die bezeichnete Eingabe- oder
Verarbeitungssystems nach Fig. 1, bei dem die erfin- Ausgabeoperation ab.
dungsgemäße Einrichtung verwendet wird, Es sei z. B. angenommen, daß eine Ausgabeopera-
Fig. 7 und 8 den Aufbau von Speicherregistern tion angegeben worden ist. Bei Abschluß der Ope-
des Datenverarbeitungssystems nach Fig. 6 und ration liefert die Ausgabevorrichtung, z.B. der
F i g. 9 ein Schaltbild einer Registerstufe der Regi- 35 Kartenlocher 88, ein Endsignal, und bei Beendigung
ster nach den F i g. 7 und 8. der Datenübertragung erfolgt eine Unterbrechung.
In dem dargestellten Äusführungsbeispiel besitzt Beim Auftreten eines solchen Unterbrechungssignals das Datenverarbeitungssystem (F i g. 1) eine zentrale spricht der Kanal an und veranlaßt die Zusammen-Verarbeitungseinheit der Art, die einen Hauptspei- stellung eines Kanalstatuswortes CSW. Das CSW-cher 81 zum Speichern von Programmbefehlen zu- 40 Wort wird im Hauptspeicher 81 der zentralen Versammen mit Daten, eine Recheneinheit 82, mehrere arbeitungseinheit gespeichert
Register 83 und gesteuerte Datenflußpfade 84, welche Für das Verständnis der vorstehenden Beschrei-
den Hauptspeicher 81, die Recheneinheit 82 und die bung ist zu betonen, daß der »7/0-Starten«-Befehl 91
Register 83 verbinden, umfaßt und bei der die Über- und das CCW-Wort vom Programmierer geschrieben
tragung von Daten über die Datenflußpf ade durch 45 und unter seiner Überwachung in ein Programm eiii-
Durchschaltsignale gesteuert wird, welche aus einem geführt werden. Das UCW-Wort wird im Kanal unter
adressierbaren Festwertspeicher 85 (ROS) abgeleitet Mikroprogrammsteuerung gebildet, wobei die nötige
werden. Die zentrale Verarbeitungseinheit ist einer Mikroprogrammsteuerungs-Operationsfolge auf den
Vielzahl von Eingabe-Ausgabe-Vorrichtungen züge- »7/O-Starten«-Befehl hin eingeleitet wird. Ebenso
ordnet, mit welchen der Hauptspeicher 81 über meh- 50 wird das G5W-Wort unter Mikroprogrammsteuerung
rere Datenübertragungskanäle, von denen in F i g. 1 gebildet und gespeichert, wobei die entsprechende
. nur einer dargestellt ist, in Verbindung steht. Die ver- Mikroprogrammsteuerungs-Operationsfolge auf das
schiedenen Kanäle sind durch Zahlen und die an »7/O-Unterbrechung«-Signal hin eingeleitet wird,
einen Kanal angeschlossenen Einheiten durch eine Das Programm enthält also Informationen im »7/0-
zweite Zahlenserie gekennzeichnet. 55 Starten«-Befehl und im CCW-Wort, die es dem Kanal
Der Aufbau des Kanal 86 ist in Fig. 2 schema- übermittelt, damit das E/CW-Wort vor einer Ein-
tisch dargestellt. Grundsätzlich besteht dieser Kanal gabe-Ausgabe-Operation gebildet wird, und bei Ab-
aus einer Reihe von fünf Pufferregistern 90, in welche Schluß einer Eingabe-Ausgäbe-Operation enthält der
Daten während einer Datenübertragung zwischen Kanal 86 Informationen im UCW-Wort, die er dem
einer peripheren Vorrichtung 87 bis 89 und dem 60 Programm in Form eines CSW-Wortes übermittelt.
Hauptspeicher 81 eingeführt werden. Dabei spielt es Wie es Fi g. 3 zeigt, enthält das Kanalkommando-
keine Rolle, ob die Datenübertragung vom Speicher wort CCW einen Teil, der den Kommandocode (d. h.
zu einer peripheren Vorrichtung oder in umgekehrter Eingabe oder Ausgabe) definiert, eine Gruppe, von
Richtung stattfindet. Während einer Ausgabeopera- . Kennzeichenbits, die Adresse im Speicher 81, in die
tion werden Wörter nacheinander in ein und dasselbe 65 beim Lesen das erste Datenbyte eingeführt oder aus
Pufferregister eingeführt, durch die Pufferregister der beim Schreiben das erste Datenbyte entnommen
hindurchgeschoben oder indexiert und dann aus dem werden soll und eine Zählstandanzeige, die die
fünften Puffcrregister entnommen und in die ausge- Gesamtzahl der zu übertragenden Bytes angibt. Ein
Byte entspricht dabei acht Datenbits mit einem Paritätsbit.
Ein UCW-VJort ist seiner entsprechenden Eingabe-Ausgabe-Einheit fest zugeordnet und enthält gemäß Fig. 3 Informationen über den Status dieser Einheit, die Startadresse des zu übertragenden Datenblocks, einen die auszuführende Operation definierenden Code, eine Gruppe von Kennzeichen-Bits, die Byte-Zahl der zu übertragende Daten und die Adresse des derzeitigen CCW-Wortes. Bei einer Datenverkettung enthält das UCW-Wort außerdem die Adresse des vorhergehenden CCBMVortes, wie es nachstehend erläutert wird. Die Startadresse und die Byte-Zahl werden in den Registern5, T (Fig. 2) festgehalten, und bei jeder Übertragung eines Bytes zwischen den Pufferregistern 90 und dem Hauptspeicher 81 wird die Startadresse um eins erhöht und der Zählerstand um eins vermindert. Wenn die Zähleranzeige den Stand Null erreicht, ist der im derzeitigen CCW7-Wort bezeichnete Datenblock in den Speicher eingeführt oder aus dem Speicher entnommen, und die Operation wird durch den Kanal 86 beendet. Die Operation kann aber auch durch ein Endsignal aus der Ein- und Ausgabeeinheit beendet werden, bevor die Zähleranzeige den Stand Null erreicht. Für jede //0-Operation wird bei ihrer Beendigung ein CSW-Wort gespeichert und, wie aus F i g. 3 hervorgeht, gibt das GW-Wort die Adresse der Einheit, die Adresse des nächsten CCW-Wortes (bestimmt durch die Addition von 8 zur laufenden CCW-Adresse),. den Status der Einheit und den endgültigen Wert der Zähleranzeige an. Dies geschieht auch, wenn die Eingabe-Ausgabe-Operation durch ein »//O-Unterbrechung«-Signal beendet wird.
Während der Ausführung einer Eingabe-Ausgabe-Operation kann die zentrale Verarbeitungseinheit andere Aufgaben ausführen. Jedoch ist eine Verbindung der Pufferregister 90 mit dem Hauptspeicher 81 nötig, damit Daten zwischen ihnen übertragen werden 'können. Um eine solche Datenübertragung zu "ermöglichen, muß die Operation der zentralen Verarbeitungseinheit unterbrochen werden. Eine derartige Unterbrechung wird als Kanalunterbrechung bezeichnet. Während einer Kanalunterbrechung'wird die Operation der zentralen Verarbeitungseinheit für einen Speicherumlauf gestoppt, und während dieser Zeit wird das Pufferregister 90 bedient. Eine Kanalunterbrechung wird eingeleitet durch ein Signal aus dem Kanal, das anzeigt, daß eine Bedienung des Puffers erforderlich ist. Dieses Unterbrechungssignal leitet eine Mikroprogramm-Operationsfolge ein, welche die Speicherung des Inhalts einiger Register der zentralen Verarbeitungseinheit und eine Adressierung des Festwertspeichers durch ein Adressenregister 92 (Fig. 6) anstatt durch ein sonst wirksames Adressenregister 93 veranlaßt, nachdem eine ausgewählte von mehreren Festwertspeicher-Adressen zwangsweise im Adressenregister 92 gespeichert worden ist. Die ausgewählte Adresse wird durch logische Schaltungen gebildet, welche ihre Eingangssignale in Abhängigkeit von den derzeitigen Maschinenbedingungen, dem laufenden UCW-Wort und der auszuführenden Datenübertragung empfangen.
Die vorstehende Beschreibung befaßt sich mit dem einfachsten Fall, bei dem ein Eingabe-Ausgabe-Befehl auf die Verwendung nur eines CCW-Wortes beschränkt ist. Allgemein ist dies nicht der Fall, da gewöhnlich mehrere CCHMVörter nacheinander benutzt werden. Das Herbeiholen eines neuen CCW-Wortes, wenn die Zähleranzeige im vorhergehenden den Stand Null erreicht, wird als »Datenverkettung« bezeichnet. Die Datenverkettung wird angezeigt durch das Vorhandensein eines »1«-Bits in der Datenverkettungs-Kennzeichen-Bitstelle in einem CCW-Wort. CCW-Wörter werden normalerweise in nebeneinanderliegenden Speicherstellen gespeichert, und die Adresse des nächsten CCHMVortes wird durch einfachen Addieren der Zahl acht zu der Adresse des benutzten CCW-Wortes erhalten. Während der Datenverkettung wird kein CSHMVort bei Abschluß einer Datenübertragung gebildet, welche durch ein CCW-Wort mit einem Datenverkettungs-Kennzeichen-Bit spezifiziert wird. Die Steuerung verbleibt somit im Kanal.
Manchmal ist jedoch nötig, CCHMVörter zu verketten, die nicht in nebeneinanderliegenden Speicherstellen gespeichert sind, und in diesem Falle erfolgt die Ansteuerung des zweiten CCW-Wortes mittels eines »Übertragung im Kanal«-Kommandos TIC. Fig. 4 veranschaulicht die Verwendung eines TIC-Kommandos. Das derzeitige CCW-Wort befindet sich im Register X und definiert eine Aufzeichnung mit η Bytes. Wenn die CCW-Zähleranzeige den Stand Null erreicht und das Verkettungs-Kennzeichen-Bit gesetzt ist, wird das nächste CCW-Wort angesteuert. Dies geschieht durch ein T/C-Kommando, welches einfach anzeigt, daß das nächste CCW-Wort aus der Speicherstelle Y zu entnehmen ist. An der Speicherstelle Y definiert das CCW-Wort eine Aufzeichnung mit m Bytes.
Während einer Ausgabeoperation werden Datenbytes bei ihrer Eingabe in die Pufferregister 90 gezählt. Vom Standpunkt des Programmierers ist jedoch von größtem Interesse,'welche Datenmenge tatsächlich zur Ausgabevorrichtung übertragen worden ist, wenn die Operation beendet ist. Es ist daher notwendig, die Zahl der Bytes zählen zu können,, die in den Pufferregistern 90 zurückbleiben, wenn die Operation durch die Vorrichtung beendet wird, bevor der Zählstand Null erreicht worden ist.
In diesem Ausführungsbeispiel wird diese Fähigkeit in vorteilhafter Form dadurch erreicht, daß in jedem Pufferregister 90 eine zusätzliche Bitstelle vor-, gesehen wird. Es kann hierzu aber .auch ein herkömmliches Schieberegister verwendet werden. Wenn jeweils das letzte Byte eines durch die Adresse und die Zähleranzeige im CCW-Wort definierten Datenblocks in die Pufferregister 90 eingegeben wird, wird ein »1«-Bit in die zusätzliche Bitstelle des empfangenden Pufferregisters 90 eingesetzt und durch die Register weitergeschoben, wenn das Byte, mit dem es eingegeben worden ist, durch die Pufferregister 90 geschoben wird. Daher kann jederzeit die Position dieses »1«-Bits verwendet werden, um die Zahl der im Puffer verbliebenen Bytes zu bestimmen. Wenn also z. B. eine Beendigung durch eine //O-Einheit eintritt, während noch drei Datenbytes zu dieser Einheit zu übertragen sind, brauchen nur die Informationen in den Pufferregistern weitergeschoben zu werden, bis das Vorhandensein des »1«-Bits in der letzten Stufe entdeckt wird. Die Zahl der ausgeführ-• ten Schiebevorgänge ergibt die Zahl der im Pufferregister 90 verbliebenen Bytes. Die Zählstandanzeige im Kanalstatuswort kann dann um diese Zahl erhöht werden, bevor das Kanalstatuswort zusammengestellt und gespeichert wird.
■ 209 650/127
Die Lage ist jedoch komplizierter, wenn eine Datenverkettung ausgeführt wird. Wie F i g. 5 zeigt, wo die Situation nach der in Fig. 4 dargestellten Folge von Kanalkommandos veranschaulicht ist, enthalten die Pufferregister 90 die Bytes Afn-1 und Xn aus dem durch CCW X definierten Datenblock und die Bytes Y0, Y1 und Y2 aus dem durch CCW Y definierten Datenblock. Das derzeit im Kanal wirksame Kommando ist CCW Y, und wenn in diesem Stadium eine Beendigung durch die //O-Einheit erfolgte, würde durch den vorstehenden Prozeß eine Erhöhung des Zählstandes von CCW Y um zwei bewirkt werden, während der Zählstand von CCW X unverändert bliebe. Dadurch würde eine falsche Maschinenbedingung gespeichert, was zu Fehlern führen würde.
Zur Überwindung dieser Schwierigkeit ist im vorliegenden Beispiel eine Verkettungsgrenze-Selbsthalteschaltung vorgesehen, die in den Eins-Zustand gebracht wird, wenn das letzte Byte eines durch ein CCW-Wort definierten Datenblocks aus dem Speicher in die Pufferregister eingeführt wird. Die Verkettungsgrenze-Seibsthalteschaltung wird in den Null-Zustand rückgestellt, wenn dieses letzte Byte zur Ausgabevorrichtung übertragen wird. Die Verkettungsgrenze-Selbsthalteschaltung 94 dient somit zur Anzeige einer im Pufferregister 90 befindlichen Grenze zwischen zwei Datengruppen; sie wird deshalb nachfolgend auch als Datengruppengrenze-Anzeigeschaltung bezeichnet. Weiter ist das Einheitssteuerwort so ausgebildet, daß es nicht nur die Adresse des derzeitigen CCW-Wortes angibt, sondern auch die Adresse des vorhergehenden CCWMVortes mit umfaßt (F i g. 3). In dem in den F i g. 4, 5 gezeigten Beispiel enthält das bei der dargestellten Bedingung wirksame i/CW-Wort die Adresse von CCW Y als laufende CCW-Adresse und die Adresse von CCW X als vorhergehende CCW-Adresse. Wenn unter den in F i g. 5 veranschaulichten Bedingungen eine //O-Unterbrechung erfolgte, würde eine Zähleranzeige erkennen lassen, daß zwei Bytes des durch CCW X definierten Datenblockes in den Pufferregistern verblieben sind, und da die Verkettungsgrenze-Selbsthalteschaltung 94 im Eins-Zustand ist, würde die Zähleranzeige des durch die vorhergehende CCW-Adresse definierten CCW-Wortes (d. h. CCW X) um zwei erhöht werden. Wäre die Verkettungsgrenze-Selbsthalteschaltung nicht im Einstell-Zustand, würde die Zähleranzeige des durch die laufende CCW-Adresse definierten CCHMVortes (d. h. CCW Y) erhöht.
Während der Datenverkettung wird das UCW-Wort bei der Entnahme jedes CCW-Wortes auf den neuesten Stand gebracht. Wenn also im vorstehenden Beispielsfall ein neues CCW Z angesteuert wird, wird die Adresse von CCW X aus dem t/CW-Wort gelöscht. Die Adresse von CCW Y wird als vorhergehende CCW-Adresse eingesetzt, und die Adresse von CCW Z wird als derzeitige CCJF-Adresse eingesetzt. Das Kanalstatuswort wird üblicherweise dadurch zusammengestellt, daß die laufende CCW-Adresse aus dem UCW-Wort genommen und die Zahl acht dazu addiert wird.
Wenn jedoch die Verkettungsgrenze-Selbsthalteschaltung 94 zum Zeitpunkt einer Unterbrechung der Übertragung durch ein »//O-Unterbrechunge-Signal im Einschaltzustand ist, wird dadurch bewirkt, daß an Stelle der laufenden die vorhergehende CCW-Adresse. aus dem UC W-Wort genommen und die Zahl acht dazu addiert wird. Dadurch wird sichergestellt, daß bei Wiederaufnahme der Übertragungsoperation die Steuerung auf das CCBMVort eingestellt wird, dessen Bytes zwar zum Teil bereits in ' den Puffer 90 eingegeben, aber noch nicht übertragen worden waren, bevor die Unterbrechung eintrat. In den F i g. 4 und 5 ist dies z. B. das CCW Y.
Im dargestellten Beispiel wird während einer Eingabeoperation, wenn die IJO-Einheit die Datenübertragung beendet, der restliche Inhalt der Puffer zum Speicher geleitet. Falls also eine Beendigung durch die Vor1 richtung erfolgt, während sich Daten in den Pufferregistern befinden, wird die Eingabe in die Pufferregister gestoppt, aber die Übertragung aus den Pufferregistern in den Hauptspeicher wird fortgesetzt, bis die Pufferregister leer sind. Im allgemeinen ist es jedoch durchaus möglich, eine Eingabeoperation in ähnlicher Weise zu beenden, wie es oben in bezug auf eine Ausgabeoperation beschrieben worden ist.
F i g. 6 zeigt ein detailliertes Blockschaltbild . des Systems nach Fig. 1, wobei für gleiche Teile die Bezugszeichen von F i g. 1 beibehalten wurden. Das System wird gesteuert durch einen Mikroprogramm-Festwertspeicher 85, der normalerweise über ein Adressenregister 93 adressiert wird. Lediglich während der Kanaloperation wird er über ein zweites Adressenregister 92 adressiert. Das aus dem Festwertspeicher 85 entnommene Mikroprogramm-Steuerwort steuert die Errichtung von Datenflußpfaden in der zentralen Verarbeitungseinheit und im Kanal. Der Hauptspeicher 81 ist ein Kernspeicher und wird normalerweise vom Register A aus angesteuert. Während der Kanaloperation kann der Hauptspeicher jedoch vom Register S im Kanal aus adressiert werden. Daten, die in den Hauptspeicher 81 gelangen oder ihn verlassen, werden in das Register D eingeführt, welches für Datenübertragungen in den und aus dem Hauptspeicher 81 sowohl während der normalen Operation als auch während der Kanaloperation benutzt wird. Die Register B und C sind allgemeine Register, die durch Mikroprogrammierung zugänglich sind, und zwar wird das Register B hauptsächlich für die vorübergehende Speicherung von Daten während Rechenoperationen und das Register C hauptsächlich zum Festhalten der als nächste zu verwendenden Hauptspeicheradresse benutzt. Das System enthält einen zusätzlichen Speicher 95 mit schnellem Zugriff, der von einem Adressenregister LSAR aus angesteuert wird. Dieses Register LSAR s wird in Verbindung mit zwei Stützregistern H und / verwendet. Die Eingabe und Entnahme von Daten in den bzw. aus dem Schnellspeicher 95 erfolgt über das Register R.
Außer dem Register S ist ein Register T vorgesehen, das zum Festhalten der Byte-Zählstandsanzeige des Taufenden CC W-Wortes benutzt wird. Das Register T wird zunächst mit der Byte-Zählstandsanzeige aus dem CC W-Wort beladen, wenn es vom Hauptspeicher aus angesteuert wird. Während der Eingabe-Ausgabe-Datenübertragungen wird es dadurch jeweils um eins vermindert, daß der Inhalt durch die Recheneinheit 82 geleitet und dabei die Zahl eins subtrahiert wird.
Das Register X ist das sogenannte Kanal-Kennzeichen-Register und dient zum Festhalten der Kanalsteuerungs-Kennzeichen. F i g. 7 zeigt die Bitstellen des Registers und veranschaulicht, wie sie eingestellt
werden. Es hat eine Breite von acht Bits, und die Bitstellen 0 bis 3 werden durch Mikroprogramm während der Kanal-Ingangsetzung mit den Bits 32 bis 35 aus dem CCW-Wort beladen. Das Bit 0 wird in die CDA-Stelle des Registers eingeführt, die die Kanalverkettungsinformation speichert. Die Bits 4 und 5 werden eingestellt unter Verwendung der Bits 1 und 3 des Senden-Feldes eines Mikn'programmsteuerwortes, das aus dem Festwertspeicher 85 entnommen wird. Die Mikroprogramm-Sieuerwörter weisen 54 wirksame Bitstellen auf, und das Senden-FeId umfaßt die Bits 14 bis 17. Die Bits 6 und 7 des Registers X werden eingestellt entspreche id den Bedingungen der zentralen Verarbeitungseinheit und des Kanals, welche logisch festgestellt werden.
Das Register Y ist das sogenannte Kanalprüf- und -Statusregister und dient zum Festhalten von Kanalprüfund -Statusinformationen. Dieses Register ist in F i g. 8 gezeigt. Bit 0 des y-Registers wird entsprechend dem y4Lt/-Zustand eingestellt, und die Bits 1 bis 7 werden im allgemeinen entsprechend den Bedingungen der zentralen Verarbeitungseinheit, der Eingabe-Ausgabe-Vorrichtungen und des Kanals eingestellt, die durch logische Bauelemente festgestellt werden.
Das Festwertspeicher-Adressenregister 92 hat eine Breite von zwölf Bits.. Während einer Kanalunterbrechung wird eine Startadresse in dieses Register eingegeben, die neun feste Bitwerte und drei' veränderliche Bitwerte aufweist. In F i g. 6 sind die veränderlichen Bits mit »Λ'« markiert. Der Wert dieser drei Bits wird, wie schon erwähnt, durch logische Bauelemente bestimmt, welche auf Bits im laufenden Kommando, auf Maschinenbedingungen und die auszuführende //O-Operation ansprechen. Die drei veränderlichen Bits werden verwendet, um den Eintritt in sechs verschiedene Mikroprogramm-Abläufe zu gestatten. Während der Kanaloperation werden vier der Bitstellen 2 bis 10 des Registers 92 entsprechend den Bitwerten des CL4-Feldes, d. h. der Bits 0 bis 3, des Mikroprogramm-Steuerwortes eingestellt.
Die Pufferregister WO bis W4 (Fig. 6) stellen Pufferspeicherraum für fünf Bytes zwischen dem Hauptspeicher 81 und den Koppeleinheitsleitungen, die zu den peripheren Vorrichtungen führen, zur Verfügung. Jedes Register besteht aus zehn logischen Selbsthalteschaltungen 0 bis 9 ebenso wie die anderen Register. Eine einzelne Selbsthalteschaltung ist in F i g. 9 dargestellt. Die Selbsthalteschaltungen 0 bis 8 speichern ein aus acht Bits und einem Paritätsbit bestehendes Datenbyte, und die Selbsthalteschaltung 9 dient zum Speichern eines Eins-Bits zur Darstellung einer Grenze zwischen zwei durch zwei CCW-Wörter definierten Datenblöcken.
Fig. 9 veranschaulicht eine Selbsthalteschaltung 21 der Art, aus der die verschiedenen Register bestehen, und zwar besteht sie aus den Transistoren 22, 23 und 24. Eine Dateneingangsleitung ist an die Emitterklemme des Transistors 22 angeschlossen, eine Steuereingangsleitung führt an die Basisklemme des Transistors 22 über einen Widerstand 25 uhd außerdem direkt an die Emitterklemme des Transistors 23. Die Kollektorklemmen der Transistoren 22 und 23 sind über einen Widerstand 26 mit einer positiven Spannungsklemme verbunden und außerdem an die Basisklemme 24 angeschlossen. Die Emitterklemme des. Transistors 24 liegt an Erdspannung, und die Kollektorklemme ist über einen Widerstand 27 mit einer positiven Spannungsklemme verbunden. Eine verriegelnde Rückkopplungsverbindung wird von der Kollektorklemme des Transistors 24 über einen Widerstand 28 zur Basis des Transistors 23 hergestellt.
Logische »1«- und »O«-Bedingungen auf der Datenleitung werden dargestellt durch Erdspannung und plus 3 Volt. Die Steuerleitung hat normalerweise Erdspannüng und wird durch einen Steuerimpuls auf plus 3 Volt angehoben.
Im normalen, die logische »0« darstellenden Zustand der Selbsthalteschaltung sind die Transistoren 22 und 23 nichtleitend und der Transistor 24 leitend. Wenn ein die logische »1« darstellender Signalzustand an der Datenleitung und ein positiv verlaufender Steuerimpuls an der Steuerleitung anliegen, wird der PN-Übergang zwischen Basis und Emitter des Transistors 22 in Durchlaßrichtung vorgespannt, und dieser Transistor wird leitend und leitet die Erdspannung zur Basisklemme des Transistors 24. Der Transistor 24 wird nichtleitend und schickt dabei eine positive Spannung zur Basisklemme des Transistors 23. Wenn der Steuerimpuls vor dem Ende des Datenimpulses endet (s. F i g. 6 a), wird der Transistor 23 leitend und hält dadurch den Transistor 24 im nichtleitenden Zustand fest. Der Transistor 22 wird durch das Ende des Steuerimpulses abgeschaltet.
Der stabile, der logischen »1« entsprechende Zustand der Selbsthalteschaltung ist daher gekennzeich-
3u net durch den leitenden Zustand des Transistors 23 und den nichtleitenden Zustand des Transistors 24.
Die Selbsthalteschaltung wird nur dann in ihren logischen »O«-Zustand rückgestellt, wenn ein Steuerimpuls zugeführt wird, während auf der Datenleitung plus 3 Volt (d. h. die logische »0«) vorliegt.
Wie aus der vorstehenden Beschreibung zu entnehmen ist, umfaßt das hier erläuterte System einen Datenübertragungskanal, an welchen der Hauptspeicher sowie periphere Einheiten angeschlossen sind, damit Datenblöcke (definiert durch CCW-Wörter) zwischen ihnen übertragen werden können. Alle in den Hauptspeicher eingeführten oder aus ihm entnommenen Daten werden in das Register D (F i g. 6) eingegeben, und alle in die peripheren Einheiten eingeführten oder aus ihnen entnommenen Daten werden in die Pufferregister 90 eingegeben. Während der Übertragung aus den Registern 90 in das Register D werden alle Daten im Register R gespeichert. Wenn eine Datenverkettung erfolgt, was durch ein Eins-Bit in der Bitstelle 32 des CC W-Wortes angezeigt wird, wird die Selbsthalteschaltung CDA im Register X in den Einstellzustand gebracht. Wenn eine Grenze zwischen zwei durch zwei CCW-Wörter definierten Datenblöcken in den Registern 90 vorliegt, wird die zehnte Selbsthalteschaltung desjenigen Registers 90 das das letzte Byte des ersten Datenblocks enthält, auf »Eins« eingestellt. Weiter wird die Verkettungsgrenze-Selbsthalteschaltung 94 des Registers Y auf »Eins« gesetzt, wodurch das Vorliegen der Grenze angezeigt wird. Beim Auftreten einer Unterbrechung während des Vorliegens eines Grenz-Kennzeichens in den Registern 90 werden die Bytes durch die Register 90 geschoben, und die Zahl von Verschiebungen, welche nötig sind, um das Grenz-Kennzeichen aus den Registern 90 hinauszuschiebdn, wird gezählt. Falls die Verkettungsgrenze-Selbsthalteschaltung in dem Eins-Zustand steht, wird diese gezählte Zahl zu der Zähleranzeige des CCW-
Wortes addiert, das durch die vorhergehende CCW-Adresse im derzeitigen t/CW-Wort definiert ist. Falls die Verkettungsgrenze-Selbsthalteschaltung nicht in den Einstellzustand gelangt ist, wird diese gezählte Zahl zu der Zähleranzeige des CCW-Wortes addiert, das durch die laufende CCW-Aäresse im laufenden UC W-Wort definiert ist. Die CC W-Adresse in dem
CSW-Wort wird normalerweise durch das Addieren einer Acht zur derzeitigen CCJ^-Adresse im UCW-Wort gebildet, aber wenn die Verkettungsgrenze-Selbsthalteschaltung im Einstellzustand ist, wird die CCW-Adresse im UCW-VJorl durch die Addition einer Acht zur vorhergehenden' CCW-Adresse im l/CW-Wort gebildet.
Hierzu 2 Blatt Zeichnungen

Claims (8)

Patentansprüche:
1. Einrichtung zur Übertragung von Datengruppen zwischen dem Speicher einer Datenverarbeitungseinheit und mit dieser gekoppelten Anschlußeinheiten, wie Karteneinheiten oder externe Speichereinheiten, mit einem Datenkanal, mit einem Pufferspeicher, der nacheinander Untergruppen der Datengruppen empfängt und nach einer Zwischenspeicherperiode in der gleichen Reihenfolge wieder abgibt, mit einer Adressierschaltung zur Bildung der Adresse, auf der die als nächste zu übertragende Datengruppe im Speicher der Datenverarbeitungseinheit gespeichert ist bzw. wird, mit einer Untergruppen-Zähleinrichtung zur Überwachung der Anzahl der für eine Datengruppe noch zu übertragenden Untergruppen und mit einer Kanalsteuerschaltung, die nach Auftreten eines Übertragungsbefehles die Übertragung einer oder mehrerer Datengruppen einleitet, überwacht und beendet und die Unterbrechungssteuerschalter umfaßt, welche auf Übertragung-Unterbrechen-Signaie von den An-Schlußeinheiten ansprechen, um eine Datenüber- tragung abzubrechen und den durch die. jeweilige Datengruppenadresse und den jeweiligen Untergruppenzählstand angezeigten Übertragungsstatus abspeichern, dadurch gekennzeichnet, daß eine bistabile Datengruppengrenze-Anzeigeschaltung (94) vorgesehen ist, die für die Dauer, in der jeweils die letzte Untergruppe eines von mehreren zu übertragenden Datenwörtern im Pufferspeicher gespeichert ist, im Ein-Zustand gehalten wird, daß der Pufferspeicher (90) zusätzliche Speicherstellen enthält, in die bei Eingabe der letzten Untergruppe einer zu übertragenden Datengruppe ein Datengruppenende-Kennzeichen zusammen mit dieser Untergruppe eingespeichert wird, daß eine mit dem Pufferspeicher verbundene zusätzliche Untergruppen-Zähleinrichtung vorgesehen ist, die durch Auftreten eines Übertragung-Unterbrechen-Signals wirksam wird und die Zahl der Untergruppenentnahmen bis zum Auftreten des Datengruppenende-Kennzeichens am Pufferspeicherausgang ermittelt, und daß die Kanalsteuerschaltung (82 bis 85, S, T) mit Auftreten des Datengruppenende-Kennzeichens zur Wirkung kommende Inkrement- bzw. Dekrement-Schaltmittel aufweist, durch die in Abhängigkeit vom Ein- oder Ausschaltzustand der Datengruppengrenze-Anzeigeschaltung der zur vorausgehenden oder zur laufenden Datengruppe gehörende Untergruppenzählstand um den von der zusatzliehen Untergruppen-Zähleinrichtung angezeigten Wert z'urückverändert wird.
2. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß ein eine Datenübertragung mehrerer miteinander in Beziehung stehender Datengruppen einleitendes Kanalkommandowort (CCW) Kennzeichenbits für das Vorliegen einer Datengruppen-Verkettung aufweist und daß diese Kennzeichenbits zur Vorbereitung einer Einschaltung der Datengruppengrenze-Anzeigeschaltung (94) dienen.
3. Einrichtung nach den Ansprüchen 1 und 2, dadurch gekennzeichnet, daß ein Signal von der Datengruppengrenze-Anzeigeschaltung (94) zur Eingabe eines Datengruppenende-Kennzeichens ■ zusammen mit der letzten Untergruppe der betreffenden Datengruppe in die zusätzlichen Speicherstellen des Pufferspeichers (90) dient.
4. Einrichtung nach den Ansprüchen 1 bis 3, dadurch gekennzeichnet, daß in der Kanalsteuerschaltung (82 bis 85, S, T) Speicherregister (83) zur Aufnahme eines einer zu. übertragenden Datengruppe fest zugeordneten Kanalkommandowortes (CCW) und eines einer Anschlußeinheit fest zugeordneten, aus den Daten des Kanalkommandowortes gebildeten Anschlußeinheit-Kommandowortes (UCW) besitzen, daß das Kanalkommandowort den Kommandocode, die Adresse einer zugeordneten Datengruppe, die Kennzeichenbits und einen die Zahl der zu übertragenden Untergruppen anzeigenden Zählstand umfaßt, und daß das Anschltißeinheit-Kommandowort aus dem Kanalkommandowort (CCW) die Datengruppenadresse, die Kennzeichenbits und den Untergruppen-Zählstand empfängt und außerdem je ein Speicherfeld für die Adresse des laufenden und des vorhergehenden Kanalkommandowortes enthält.
5. Einrichtung nach den Ansprüchen 1 bis 4, dadurch gekennzeichnet, daß die Kanalsteuerschaltung (82 bis 85, S, T) in Abhängigkeit vom Vorliegen eines Übertragung-Unterbrechen-Signals zur Veränderung der im Anschlußeinheit-Kommandowort (UCW) enthaltenen Kanalkommandowort-Adresse um eine der Wortlänge entsprechende konstante Zahl dient, wobei in Abhängigkeit vom Ein- oder Auszustand der Datengruppengrenze-Anzeigeschaltung (94) die Adresse des vorhergehenden Kanalkommandowortes oder die des laufenden Kanalkommandowortes verändert wird.
6. Einrichtung nach den Ansprüchen 1 bis 5, dadurch gekennzeichnet, daß die Kanalsteuerschaltung (82 bis 85, 5, T) in Abhängigkeit vom Vorliegen eines Übertragung-Unterbrechen-Signals und eines Signals von der Datengruppengrenze-Anzeigeschaltung (94) zum Aufruf des vorhergehenden Kanalkommandowortes (CCW) mit Hilfe der im Anschlußeinheit-Kommandowort (UCW) enthaltenen Adresse dient und dessen Untergruppen-Zählstand um" den von der zusätzlichen Zähleinrichtung ermittelten Untergruppenrest zurückverändert.
7. Einrichtung nach den Ansprüchen 1 bis 6, dadurch gekennzeichnet, daß der Pufferspeicher (90) mehrere nach Art eines VieTfach-Schieberegisters miteinander gekoppelte Register (WO bis W 4) aufweist, von denen jedes zur Aufnahme einer Untergruppe dient, daß ein synchron zu den Registern des Pufferspeichers betriebenes Schieberegister zur Aufnahme der Datengruppenende-Kennzeicheninformation dient, und daß die zusätzliche Untergruppen-Zähleinrichtung zur Zählung der Verschiebezyklen zwischen dem Auftreten eines Übertragung-Unterbrechen-Signals und dem Erscheinen des Datengruppenende-Kennzeichens am Pufferausgang eingerichtet ist.
8. Einrichtung nach Anspruch 7, dadurch gekennzeichnet, daß das Schieberegister zur Aufnahme der Datengruppenende-Kennzeicheninformation durch je eine zusätzliche Speicherstelle in
den Registern (WO bis W4) des Pufferspeichers gebildet wird.
Die Erfindung bezieht sich auf eine Einrichtung zur Übertragung von Datengruppen zwischen dem Speicher einer Datenverarbeitungseinheit und mit dieser gekoppelten Anschlußeinheiten, wie Karteneinheiten oder externe Speichereinheiten, mit einem Datenkanal, mit einem Pufferspeicher, der nacheinander Untergruppen der Datengruppen empfängt und nach einer Zwischenspeicherperiode in der gleichen Reihenfolge wieder abgibt, mit einer Adressierschaltung zur Bildung der Adresse, auf der die als nächste zu übertragende Datengruppe im Speicher der Datenverarbeitungseinheit gespeichert ist bzw. wird, mit einer Untergruppen-Zähleinrichtung zur Überwachung der Anzahl der für. eine Datengruppe noch zu übertragenden Untergruppen und mit einer Kanalsteuerschaltung, die nach Auftreten eines Übertragungsbefehles die Übertragung einer oder mehrerer Datengruppen einleitet, überwacht und beendet und die Unterbrechungssteuerschalter umfaßt, welche auf Übertragung-Unterbrechen-Signale. von den Anschlußeinheiten ansprechen, um eine Datenübertragung abzubrechen und den durch die jeweilige Datengruppenadresse und den jeweiligen Untergruppen-Zählstand angezeigten Übertragungsstatus abspeichern.
Wird bei einer derartigen Einrichtung die Weiterschaltung der Untergruppen-Zähleinrichtung davon abhängig gemacht, daß die zu zählende Untergruppe den Pufferspeicher verläßt, ist zu jedem Zeitpunkt, in dem ein Übertragung-Unterbrechen-Signal von einer Anschlußeinheit eintrifft, der endgültige Zählstand der übertragenen Untergruppen verfügbar und kann als Übertragungsinformation abgespeichert werden. Da der Zugriff zu einer neuen Datengruppe aber stets davon abhängig ist, daß der Untergruppen-Zählstand der vorhergehenden Datengruppe den Wert Null erreicht hat (es erfolgt mit jeder Übertragung einer Untergruppe eine Abwärtszählung um eins), kann bei einer derartigen Arbeitsweise erst dann mit dem Aufsuchen einer neuen Datengruppe begonnen werden, wenn alle Datengruppen aus dem als Schiebespeicher ausgebildeten Pufferspeicher entnommen sind. Bei der Übertragung aufeinanderfolgender Datengruppen ergeben sich daher Lücken entsprechend der Kapazität des Pufferspeichers zwischen je zwei Datengruppen. Dieses hat zur Folge, daß die Übertragungskapazität der Einrichtung nicht voll ausgenutzt ist.
Wird andererseits die Weiterschaltung der Untergruppen-Zähleinrichtung bereits vorgenommen, wenn die Untergruppen in den Pufferspeicher eingegeben werden, dann kann zwar eine neue Datengruppe bereits aufgerufen werden, wenn der Rest der vorhergehenden noch im Pufferspeicher steht und übertragen wird, so daß eine Lückenbildung vermieden wird. Bei Eintreffen eines Übertragen-Unterbrechen-Signals von einer der AnschluBeinheiten zu einem Zeitpunkt, wenn sich gerade die letzte Untergruppe einer Datengruppe im Pufferspeicher befindet, kann jedoch der Fall eintreten, daß eine unkontrollierte Anzahl Untergruppen, für die bereits eine Zählstand-Reduzierung erfolgt ist, im Pufferspeicher verbleiben. Es kann sich auf diese Weise eine ungenaue Registrierung der bereits übertragenen Daten bzw. sogar der Verlust von Daten ergeben.
Ein weiterer Nachteil der bekannten Einrichtungen zeigt sich dann, wenn eine Kettung mehrerer Datengruppen (Blöcke) zum Zwecke einer gesammelten Übertragung erfolgt. Mit Eingabe der letzten Untergruppe in den Pufferspeicher ist die Übertragung einer Datengruppe beendet, und die Kanalsteuerung geht auf das
ίο Übertragungskommando für die nachfolgende Datengruppe über. Es erfolgt daraufhin die Eingabe der ersten Untergruppen der neuen Datengruppe. Wenn in dieser Situation eine Unterbrechung der Übertragung verlangt wird, ist die Zugehörigkeit der im Pufferspeicher enthaltenen Untergruppen zur voraus- - gehenden oder zur neuen Datengruppe nicht mehr möglich, da die zu einer Datengruppe gehörenden Untergruppen nur durch den Untergruppen-Zählstand im zugeordneten Ubertragungskommando bestimmt werden. Bei den bekannten Anlagen wird deshalb eine Anzahl Füll-Untergruppen ohne Wertbedeutung zwischen je zwei geketteten Datengruppen eingefügt, um sicherzustellen, daß die Übertragung der nächsten Datengruppe erst begonnen wird, wenn die letzte Untergruppe der vorausgehenden Datengruppe den Pufferspeicher verlassen hat. Diese Arbeitsweise führt aber zu einer Reduzierung der Übertragungskapazität.
Neben der Begrenzung der zu übertragenden
Datengruppe durch Zählung der einzelnen Daten-Untergruppen ist es auch bekannt, bei der Verarbeitung und Übertragung sogenannte Wortende-Zeichen bzw. Satzende-Zeichen zur Begrenzung einer Datenfolge zu benutzen. Diese Zeichen haben die Funktion von Steuerinformationen, die, nachdem sie in der Verarbeitungs- bzw. Übertragungsfolge die ausführenden Schaltungen erreichen, diese zur Beendigung der jeweiligen Operation beeinflussen. Wird eine derartige Betriebsweise in Verbindung mit einer fortlaufenden Adresseninkrementierung für die oben erläuterte gepufferte Übertragung benutzt, so treten die gleichen Probleme auf, da auch hier im Falle einer Unterbrechung keine Kontrolle über die zum Zeitpunkt der Unterbrechung im Puffer befindlichen Daten besteht.
Aufgabe vorliegender Erfindung ist es, Maßnahmen anzugeben, durch die bei einer Einrichtung der Eingangs erläuterten Art sowohl die Bildung von Lücken zwischen aufeinanderfolgenden Datengruppen als auch eine Einschränkung der Übersicht über die tatsächlich übertragenen Daten vermieden wird.
Dies wird erfindungsgemäß dadurch erreicht, daß
eine bistabile Datengruppengrenze-Anzeigeschaltung vorgesehen ist, die für die Dauer, in der jeweils die letzte Untergruppe eines von mehreren zu übertragenden Datenwörtern im Pufferspeicher gespeichert ist, im Ein-Zustand gehalten wird, daß der Pufferspeicher zusätzliche Speicherstellen enthält, in die bei Eingabe der letzten Untergruppe einer zu übertragenden Datengruppe ein Datengruppenende-Kennzeichen zusammen mit dieser Untergruppe eingespeichert wird, daß eine mit dem Pufferspeicher verbundene zusätzliche Untergruppen-Zähleinrichtung vorgesehen ist, die durch Auftreten eines Übertragung-Unterbrechen-Signals wirksam wird und die
6S Zahl der Untergruppenentnahmen bis zum Auftreten des Datengruppenende-Kennzeichens am Pufferspeicherausgang ermittelt und daß die Kanalsteuerschaltung mit Auftreten des Datengruppenende-

Family

ID=

Similar Documents

Publication Publication Date Title
DE4019135C2 (de) Serieller Speicher auf RAM-Basis mit parallelem Voraus-Lesen und Verfahren zum Speichern von Datenelementen in eine serielle Speichervorrichtung
DE1449765C3 (de) Einrichtung zur Abfrage eines assoziativen Speichers
DE2331589A1 (de) Datenverarbeitungsanordnung
DE2130299A1 (de) Eingabe/Ausgabe-Kanal fuer Datenverarbeitungsanlagen
DE1299145B (de) Schaltungsanordnung zum Steuern von peripheren Ein- und Ausgabegeraeten von Datenverarbeitungssystemen
DE1275800B (de) Steuerwerk fuer datenverarbeitende Maschinen
DE2258460B2 (de) Programmierbare Steueranordnung
DE1286789B (de) Einrichtung an einem elektronischen Ziffernrechner zum schnellen Datenaustausch zwischen der Verarbeitungseinheit und dem zentralen Speicher
DE2363846A1 (de) Verfahren zum steuern des transfers von daten zwischen einem speicher und einem oder mehreren peripheren geraeten und nach diesem verfahren arbeitende datenverarbeitungsanlage
DE1499206B2 (de) Rechenanlage
DE1574499B2 (de) Speicheranordnung für binare Daten unter Verwendung einer ge schlossenen Datenumlaufschleife
DE2935101C2 (de)
DE2221442A1 (de) Assoziativspeicher
DE2054941C2 (de) Anordnung zur Auswahl von Datensätzen
DE2558417A1 (de) Datenverarbeitungssystem
DE2404887C2 (de) Schaltungsanordnung für den Informationsaustausch mit einem Rechner
DE2610428C3 (de) Anordnung zur Steuerung der Zwischenspeicherung von zwischen zwei Funktionseinheiten zu übertragenden Daten in einem Pufferspeicher
DE1524164C (de) Einrichtung zur Datenübertragung zwischen einer Datenverarbeitungseinheit und einer oder mehreren Anschlußeinheiten
DE2306679A1 (de) Einrichtung zum bearbeiten digitaler daten
DE1549434A1 (de) Datenverarbeitungsanlage
DE1449774A1 (de) Speichersystem mit kurzer Zugriffzeit
DE2801707C2 (de) Gerät zur Textbe- und verarbeitung, wie Schreibautomat, Dateneingabeplatz o.dgl.
DE1524164B2 (de) Einrichtung zur datenuebertragung zwischen einer datenverar beitungseinheit und einer oder mehreren anschlusseinheiten
DE1449581B2 (de) Vorrichtung zum auslesen eines rechenmaschinen grosspeichers
DE1474090B2 (de) Datenverarbeitungsanlage