DE2720864A1 - Verfahren und anordnung zum lueckenfreien einspeichern einer anzahl von datenblocks unbestimmter laenge - Google Patents
Verfahren und anordnung zum lueckenfreien einspeichern einer anzahl von datenblocks unbestimmter laengeInfo
- Publication number
- DE2720864A1 DE2720864A1 DE19772720864 DE2720864A DE2720864A1 DE 2720864 A1 DE2720864 A1 DE 2720864A1 DE 19772720864 DE19772720864 DE 19772720864 DE 2720864 A DE2720864 A DE 2720864A DE 2720864 A1 DE2720864 A1 DE 2720864A1
- Authority
- DE
- Germany
- Prior art keywords
- address
- channel
- data
- register
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Bus Control (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
Anmelderin:
Amtliches Aktenzeichen:
Vertreter:
Bezeichnung:
Böblingen, 15. April 1977 heb-pi
International Business Machines Corporation, Armonk, N.Y. 10504
Neuanmeldung
Aktenzeichen d. Anmelderin: PO 975 039
Patentanwalt
Dipl.-Ing.
H. E. Böhmer
7030 Böblingen
Dipl.-Ing.
H. E. Böhmer
7030 Böblingen
Verfahren und Anordnung zum lückenfreien Einspeichern einer
Anzahl von Datenblocks unbestimmter Länge
709849/0760
Die Erfindung betrifft ein Verfahren und eine Anordnung zum Einspeichern von Datenblocks unbestimmter Länge, welche nacheinander an einer Eingangs/Ausgangsschnittstelle eintreffen,
in einem von der Zentraleinheit einer Datenverarbeitungsanlage aus adressierbaren Speicher.
Damit betrifft die Erfindung ganz allgemein die Benutzung des Hauptspeichers in einer Datenverarbeitungsanlage und insbesondere ein neues Verfahren, bei der eine Verschwendung
von Speicherplatz durch Zuordnung von allzuviel Speicherstellen für aufeinanderfolgende (miteinander verkettete) Eingabeoperationen mit Datenblocks nicht definierter Länge.
Die Erfindung betrifft demnach ein Verfahren und eine Anordnung zum Betreiben von an sich in üblicher Weise aufgebauten
Eingangs/Ausgabekanälen zur Durchschaltung von Datenblöcken unbestimmter Länge in aufeinanderfolgenden (verketteten)
Eingangsoperationen nach unmittelbar aufeinanderfolgenden Positionen im Hauptspeicher, bei gleichzeitig möglichst geringer Wechselwirkung zwischen dem Kanal und den Steuerprogrammen der Zentraleinheit und ohne Änderung des Anschlusses
von peripheren Geräten.
Eine ordnungsgemäße überwachung und Benutzung verstreuter '
(nicht zusammenhängender) Bereiche im Hauptspeicher einer : Datenverarbeitungsanlage wird ausführlich in den US-Patent- i
Schriften 2 968 027 und 3 241 125 beschrieben.
Ein Aufsatz von R. K. Lucas in IBM Technical Disclosure Bulletin, Band 13, Nr. 8, vom Januar 1971, Seite 2382 mit dem
Titel "Address Chaining Mode In Channel Operations" offenbart die Benutzung eines zusätzlichen Bit in einem im IBM
System/360 oder 370 verwendeten Kanalsteuerwort (CCW) als
709849/0760
PO"975 039
Flagbit, durch das bei einer Kanaleingabeoperation in bezug auf verstreut liegende Speicherbereiche im Hauptspeicher
mit vorbestimmter Länge eine indirekte Adressierung durchgeführt wird. Bei diesem Verfahren wird jede Datenadresse im
Kanalsteuerwort zum Adressieren einer Eintragung in einer
Adressentabelle benutzt, welche wiederum als Anfangsadresse für einen vorbestimmten Block von reservierten Adressen dient.
Wenn der Block ausgeschöpft ist, dann wird die CCW-Datenadresse um 1 vermindert und zur Auswahl der nächsten Eintragung in der Tabelle als die Anfangsadresse eines weiteren
. (normalerweise nicht benachbarten) Blocks verwendet, und die Operation des laufenden Kanalsteuerworts wird fortgesetzt.
Ferner gibt es umfangreiche Literatur (Veröffentlichungen und Patentschriften), die sich mit der Befehlsverkettung und
Datenverkettung in den Eingabe/Ausgabekanälen der IBM
Systeme/360 und 370 befassen.
Bisher gibt es nach Kenntnis der Anmelderin jedoch keine Möglichkeit, über einen Kanal eine Anzahl von Datenblocks
unbestimmter Länge in aneinander anschließende Bereiche eines Speichers zu übertragen, wenn man nicht entweder eine extensive und zeitaufwendige Wechselwirkung zwischen dem Kanal
und den zentralen Steuerprogrammen oder Anwendungsprogrammen oder aber eine Modifikation der peripheren Geräte in Kauf
ι nimmt. Eine solche Betriebsart wäre für einen Kanal sehr erwünscht, und man könnte damit in einfacher und wirtschaftlicher Weise die Aufspaltung des Hauptspeichers durch eine
iübermäßige Zuweisung von Speicherplatz bei solchen Operationen
!verringern. Man kann also sagen, daß die Erfindung einerseits
in der Feststellung besteht, daß eine solche besondere Be-
!triebsart notwenig ist und ferner in dem Auffinden von einfachen und preiswerten Mitteln, mit der existierende Kanäle
für eine solche Betriebsart eingerichtet werden können.
709849/0760
PO 975 039
Die Erfindung soll also eine kontinuierliche Speicherung von
Datenblöcken unbestimmter und unterschiedlicher Länge durch Eingabeoperationen eines Eingabe/Ausgabekanals ermöglichen
und damit eine Speicherplatzverschwendende Aufspaltung des
I
Speichers vermeiden, ohne dabei die Steuer- und/oder Anwen-
ί dungsprogramme der Zentraleinheit zu überlasten oder den An-' Schluß von peripheren Geräten schwieriger zu machen.
Dies soll dadurch erreicht werden, daß man zwischen solchen aufeinanderfolgenden Datenblöcken eine wirksame Abgrenzung
der Blockgrenzen schafft und diese Abgrenzung erreicht, ohne daß dadurch die Operationen der Zentraleinheit (CPU) unterbrochen werden müssen.
Diese der Erfindung zugrundeliegende Aufgabe wird durch eine Modifizierung eines sonst in üblicher Weise aufgebauten Kanals
gelöst, die neben den anderen bereits vorhandenen verketteten Eingabeoperationen eine weitere wahlweise Verkettungsoperation durchzuführen vermag, die hier als Pufferverkettung bezeichnet werden soll. Bei dieser Operation speichert der
Kanal die letzte auf den neuesten Stand gebrachte Datenadresse und den Restzählerstand nach Beendigung einer Eingabeoperation
einer Kette und benutzt diese als Anfangsdatenadresse und Restzählerstand für die nächste Eingabeoperation. In einer
bevorzugten Ausfuhrungsform speichert der Kanal außerdem die
gerettete Datenadresse in einem Speicherplatz, der ein Kanalsteuerwort (CCW) enthält, das die nächste Operation bestimmt,
nachdem die ursprünglich in diesem Wort enthaltene Information wiedergewonnen und bestätigt war. Die gespeicherte Datenadresse steht dann der Zentraleinheit als begrenzende Information (ohne CPU-Unterbrechung) nach Beendigung der Block-Übertragung zur Verfügung. Begrenzung heißt dabei, daß dadurch
im Speicher die Anfangsadresse des bei der nächstfolgenden Operation übertragenen Datenblocks bezeichnet wird.
1)0975 °39 709849/0760
Zur Bestimmung der Länge aller Datenblocks, mit Ausnahme des
letzen auf diese Weise übertragenen Datenblocks, muß die
Zentraleinheit (das Steuerprogramm) nur auf die Anfangsadreßimformation
zurückgreifen, die in dem jeweiligen und den nachfolgenden Kanalsteuerworten abgespeichert ist. Die Länge
des letzten Datenblocks kann auf verschiedene Weise bestimmt werden, beispielsweise, in dem man die Summe des endgültigen
Restzählerstandes (in dem CSW (Kanalstatuswort)) und die zusammengefaßten Längen der vorhergehenden Datenblöcke vom ursprünglichen
Zählerstand abzieht.
;Die Bestimmung der Länge des letzten Datenblocks kann dadurch
vereinfacht werden, daß man den Kanal in der Weise erweitert, daß nunmehr die Möglichkeit besteht, a) dynamisch eine Längenzählung
in bezug auf die einzelnen Datenblöcke in einer pufferverketteten Gruppe abzuleiten und b) diese jeweiligen
Zählerstände in den Zählerfeldern der zugehörigen Adrefiplätze der Kanalsteuerworte während der Beendigung von Folgen
der jeweiligen Eingabeoperationen abspeichert. Für diesen Zweck ist ein zusätzlicher (Längen)Zähler erforderlich und
es kann notwendig sein, daß der Kanal die CCW-Adresse in einem weiteren Befehlsadreßregister (CA2) abspeichert, wobei
dieses Register, das derzeit für eine Befehlswiederholung Ibenutzte Register sein kann (damit der Kanal die erneute
;Durchführung des zuletzt eingeleiteten Befehls versuchen
ίkann, vergleiche beispielsweise US-Patentschrift 3 688
'vom 29. August 1974).
Die Erfindung wird nunmehr anhand eines Ausführungsbeiepiels
in Verbindung mit den beigefügten Zeichnungen im einzelnen beschrieben. Die unter Schutz zu stellenden Merkmale der
Erfindung finden sich in den Patentansprüchen.
In den Zeichnungen zeigt:
*° '"" w" 709849/0760
Fig. 1 schematisch die Organisation und den Arbeitsablauf eines Kanals üblicher Bauart, wie er
beispielsweise in der US-Patentschrift 3 488 633 beschrieben ist,
Erweiterung des in der obengenannten US-Patenschrift beschriebenen Kanalsystems,
Fig. 3 ein Flußdiagramm zur Darstellung des Operationsablaufs in dem Kanal gemäß Fig. 1 mit
der Pufferverkettung gemäß der zusätzlichen logischen Schaltung in Fig. 2,
Fig. 4 die Arbeitsweise der Erfindung bei der Datenfernübertragung , bei der drei von einer gemeinsamen Datenquelle kommende Datenblocks
(Nachrichten) nach Art einer Pufferverket- ,
tung in einanderstoßende Bereiche des Hauptspeichers übertragen werden, und durch die
erfindungsgemäße Operation begrenzt werden
(ohne Unterbrechung durch die CPU), so daß
die Zentraleinheit die drei Datenblöcke getrennt verarbeiten kann,
i Stimmung der Blocklängen innerhalb der Daten, ■
die aneinander stoßend durch die in Fig. 4 erläuterte Operation eingespeichert werden,
von zur Befehlsverknüpfung miteinander ver- ! bundener Kanalsteuerworten und |
709849/0760
PO 975 Ö39
der durch Pufferverkettung übertragenen
Datenblöcke, die entweder als Ergänzung oder als Alternative zur Datenadreßbegrenzung i
gemäß Flgn. 2 und 3 eingesetzt werden kann.
Die folgenden Patentschriften und Handbücher sind Beispiele
von Maschinenlogik, Systemen und Steuerprograminen, bei denen
die vorliegende Erfindung eingesetzt werden kann.
1. "IBM System/360 Principles of Operation", IBM Form Nr. G22-6821 und "IBM System/370 Principles of Operation"
IBM Form Nr. GA22-7000 offenbaren Systemarchitekturbeschreibungen, bei welchen die Erfindung benutzt werden
kann.
2. US-Patentschriften 3 400 371 "Data Processing System" und 3 626 427 "Large-Scale Data Processing System" offenbaren kleine und große Datenverarbeitungsanlagen mit der
Systemarchitektur des Systems/360.
3. US-Patentschrift 3 488 633 "Automatic Channel Apparatus" offenbart einen Eingabe/Ausgabekanal zur Benutzung mit
den oben genannten Datenverarbeitungsanlagen.
4. Eine Zusammenstellung der Handbücher, die die oben genannten Systeme und die zugehörigen Systembetriebsprogramme und Anschlußmöglichkeiten zeigen, findet man in
"IBM System/360 and System/370 Bibliography", IBM Form Nr. GA22-6822-21 und Technical Newsletter Supplement
GN2O-O37O-2; die Eingabe/Ausgabekanäle für diese Systeme
sind in den Form Nr. GA33-1516, -1512, -3010, GA24-3573,
GA22-6962, -7012 und GA2O-173O, -1755 beschrieben.
709849/0760
PO 975 039
5. Datenfernverarbeitungsgeräte, bei denen die vorliegende
Erfindung eingesetzt werden kann, sind In den Form Nr.
GA27-3O99, "System Network Architecture - System Summary" und GA24-39O9, "IBM Teleprocessing Systems Summary" offenbart.
6. Weitere Veröffentlichungen über den Einsatz der "Systems Network Architecture" und entsprechender übertragungsverfahren finden eich in IBM Systems Journal, Band 15, Nr. 1,
1976, auf den Seiten 2 bis 80.
In Fig. 1 ist der Eingabe/Ausgabekanal, bei dem die Erfindung
eingesetzt werden kann und wie er beispielsweise in der oben erwähnten US-Patentschrift 3 488 633 beschrieben ist,
gezeigt und soll Im Zusammenhang mit der oben angesprochenen
Systemarchitektur und Organisation kurz dargestellt werden.
Während der Durchführung eines Start-E/A-Befehls durch Zusammenwirken zwischen Zentralverarbeitungseinheit (CPU) und
Kanal, gibt der Kanal eine Speicherzugriffsanforderung an
die Zentraleteuereinheit (BCU) ab, zum Abrufen eines 32-Bit (4 Byte) Kanaladreöwortes (CAW) aus einem vorbestimmten
Speicherplatz (72), der zuvor durch das Steuerprogramm der Zentraleinheit geladen worden ist. Dieses KanaladreBwort
wird in das Befehlsadreßregister 101 und an nicht dargestellte Treiberstufen für die Speicheradreß-Sammelleitung (SAB) abgegeben, die mit dem HauptSystemspeicher verbunden sind. Der
Wert des 24-Bit-Steuerbefehls in den Bitpositionen 8 bis 31
des aufgerufenen Kanaladreßwortes wird in das Datenadreßregister 102 des Kanals geladen. Der Kanal führt gleichzeitig in
bezug auf die Peripherieschnittstelle Operationen durch und wählt den entsprechenden Peripherieanschluß, die Adresse der
Einheit, aus und schaltet nach dieser Einheit durch, welche durch eine in einem nicht dargestellten Einheitenadreßregi-
709849/0760
PO 975 039
- si -
ster eingespeicherte Information bestimmt ist (diese Information wird durch den Start-E/A-Befehl geliefert).
Datenadreßregister 102 zum Aufruf eines Kanalbefehlswortes (CCW). Ein anderer Aufruf wird an die Zentralsteuereinheit
(BCU) abgegeben und die Befehlsadresse wird vom Register 102 an die SAB-Treiberstufen abgegeben. Der Wert der Befehlsadresse wird außerdem im Befehlsadreßregister 101 eingespeichert. Die verschiedenen Teile des aufgerufenen Kanalbefehlswortes (CCW) werden von den Datensammelleitungen des
Speichers (SDBO) des Hauptspeichers an die verschiedenen zugeordneten Kanalregister abgegeben.
Das aus 64-Bit (8 Byte) bestehende Kanalbefehlswort CCW ent-'hält einen 8-Bit-Befehlscode (Bits 0 bis 7), der in das
I Operationsregister 103 eingespeichert wird und die durch den
Kanal durchzuführende Operation kennzeichnet (z.B. Lesen
'für eine Eingabeoperation). Das Kanalbefehlswort CCW enthält
j außerdem eine aus 24-Bit bestehende Datenadresse (Bit 8 bis
j 31), die an das Datenregister 102 abgegeben werden, ein aus
6-Bit bestehenden Flagteil (Bits 32 bis 37), der an das Flagregister 104 durchgeschaltet wird und einen 12-Bit-Zählabschnitt (CT) (Bits 48 bis 63), der nach dem Zählerregister 105 weitergeleitet wird. Nach dieser einleitenden
Phase der Kanaloperation gibt der Kanal einen Bedingungscode ab und gibt die CPU frei, wodurch tatsächlich die Durchführung des Start-E/A-Befehls durch die CPU beendet wird.
Der Kanal arbeitet dann unabhängig von der CPU und führt die durch den Inhalt des Registers 103 gekennzeichnete
Operation in bezug auf den ausgewählten Anschluß (Gerät) aus, der durch die oben erwähnte Einheitenadresse festgelegt
ist. Im Falle einer im Augenblick laufenden Lese(Eingabe)-Operationen werden die von dem gekennzeichneten Anschluß ein-
lJJ 9_/07JJ0
PO T75 ÖT9
zein angesammelten Datenbytes in den A- und B-Wartepuffern
106 des Kanals eingespeichert und als Doppelworte (64-Bit) an den Hauptspeicher übertragen. Die Speicheradressen im
Hauptspeicher für eine derartige Datenübertragung werden j durch den Inhalt des Registers 102 gekennzeichnet. Nach
jeder derartigen Datenübertragung wird die im Register 102 :eingespeicherte Datenadresse (DA) auf den neuesten Stand gebracht
(d.h. für normales Lesen um 1 erhöht oder für Lesen rückwärts um 1 erniedrigt), und der Zählerstand im Register
105 wird um 1 erniedrigt und stellt damit den Restzählwert dar.
Nachdem das letzte Byte eines Datenblocks übertragen worden ist (Gerät-Ende), bestimmt der Kanal, ob Befehlsverkettung
wirksam ist, indem auf das Bit CC im Flagregister 104 (Bit 33 des derzeit wirksamen CCW) Bezug genommen wird. Ist Befehl
sver kettung wirksam (CC=D dann wird der Gerätanschluß beibehalten (oder erneut hergestellt, falls er aufgegeben
war), und der CA-Wert im Register 101 wird erhöht und zeigt damit den Ort eines nächsten (verketteten) CCV7 in dem Doppelwortspeicherplatz
im Hauptspeicher an, der auf das derzeit wirksame CCW folgt.
Dieses nächste CCW wird durch den Kanal wiedergewonnen und wenn es sich dabei nicht um einen Befehl "übertragung im Kanal,
(TIC)" handelt, werden die einzelnen Teile, wie zuvor be- \
schrieben, nach den Registern 102 bis 105 geleitet, und die
Operation wird fortgesetzt (die Datenadresse eines TIC-Be- j
fehls wird als indirekte Adressierung benutzt, die sich nicht !
auf die derzeitige Ausführungsform der Erfindung bezieht), ;
um einen Befehl an einer nicht benachbarten Adresse auszu- j
wählen.
709849/0760
PO 975 039
-ν - i
Ist die Befehlsverkettung nicht länger wirksam (Bit CC=O) und wird ein Signal "Geratende" aufgenommen, dann führt der
Kanal eine Schlußfolge durch, die schließlich zu einer E/A-Unterbrechung der CPU führt. Die die Unterbrechung verarbeitende Schaltung (IOS) der Zentraleinheit stellt dann für
den Kanal in einem speziellen Doppelwortspeicherbereich im Speicher (Adresse 64) ein Kanalstatuswort bereit (CSW), in
dem dann Statusinformation (Restzählerstand, letzte Befehlsadresse und Status von Kanal und angeschlossenen Gerät) für
die nachfolgende Assimilierung durch das zentrale Systemprogramm zur Verfügung steht.
In Fig. 2 wird gemäß der vorliegenden Erfindung das normalerweise unbenutzte Bit 38 des CCW nach einer zusätzlichen
Pufferverkettungs-Verriegelungsschaltung (BUF CH LTH) 201 dann übertragen, wenn das CCW nach dem Kanal abgerufen wird.
Ist die Verriegelungsschaltung 201 eingestellt, was vereinbarungsgemäß nur dann zulässig ist, wenn gleichzeitig mit
einer Befehlsverkettung eine Leseoperation angezeigt ist, dann wird die Operation "Pufferverkettung" eingeleitet. Dabei
wird der Betriebszustand der eingestellten Verriegelungsschaltung 201 vor dem Abruf des CCW auf Gültigkeit untersucht. Ist die Verriegelungsschaltung 201 zu diesem Zeitpunkt eingeschaltet, ist jedoch die Befehlsverkettung nicht
wirksam oder ist die Befehlsoperation nicht Lesen (CC nicht ein oder Operation Nicht-Lesen), dann liefert das UND-Glied
202 eine Fehleranzeige 203, worauf eine Programmprüffolge eingeleitet wird.
In der zur Zeit beschriebenen bevorzugten Ausführungsform
der Erfindung wird der Betriebszustand der Verriegelungsschaltung 201 durch die Kanallogik in der Schlußfolge nach
7098^9/0760
PO 975 039
Gerätende zur Bestimmung des Betriebszustandes einer zugeordneten Verriegelungsschaltung (RBC)(Remember Buffer Chaining)
benutzt. Das UND-Glied 204 (Flg. 2), das bei 206 nach dem
Entscheidungspunkt "Gerät frei" dieser Folge teilweise ent- \
sperrt ist, wird durch das Signal "BC Ein" entsperrt und überträgt diesen Einzustand an die RBC-Verriegelungsschaltung ;
208. Wenn RBC eingeschaltet ist, dann ist das UND-Glied 209 teilweise entsperrt, dessen zweiter Eingang 210 anschließend
nach Beendigung des Aufrufs und der Gültigfeststellung des nächsten verketteten CCW ein zweites Entsperrsignal liefert. ,
Die Betätigung der Ausgangsleitung 211 und des UND-Gliedes '
209 veranlaßt eine Speicheranforderung an die Steuereinheit (BCU) und leitet einen Speicherzugriffszyklus nach der im CA-Register 101 angegebenen Adresse ein für ein überschreiben
des Datenadreßfeldes (Bit 8 bis 31) der gespeicherten Darstellung des derzeit wirksamen CCW (d.h. des gerade eben
aufgerufenen CCW). In Verbindung mit dieser Operation und unmittelbar nach der Kenntnisnahme durch die BCU (BCU RESP ;
fällt ab) wird das UND-Glied 212 entsperrt und liefert ein j Entsperrsignal für die übertragung des derzeitig auf den neue-!
sten Stand gebrachten DA-Wertes im DA-Register 102 nach den Speicherdatenleitung-Eingangspositionen 8 bis 31 (SDBI), wodurch der DA-Wert im Datenadreßspeicherfeld des derzeit benutzten CCW als begrenzende Information überschrieben wird,
ohne daß dabei eine Unterbrechung an die CPU abgegeben wird.
Das Signal "Nicht RBC" (Rückstellzustand der Verriegelungsschaltung 208) entsperrt die übertragung der Datenadresse
und des Zählerstandes (DA und CT) des aufgerufenen CCW von SDBO 8 bis 31 und 48 bis 63 nach den Registern 102 bzw. 105
(siehe Leitungen 208.1 und 208.2, Fig. 2). Wenn daher das
709849/0760
PO 975 039
Signal RBC vorhanden ist, dann werden diese Übertragungen gesperrt, und damit werden tatsächlich die letzten auf den neuesten Wert gebrachten Werte von DA und CT in diesen Registern
gespeichert gehalten und als die jeweiligen Anfangswerte einer nächsten (pufferverknüpften) Blockübertragungsoperation und
als Begrenzungsinformation (nur DA) verwendet.
Fig. 3 stellt eine Kurzfassung einer vollen Ablauffolge von
Kanaloperationen dar und dient der Erläuterung der in diesem Zusammenhang bedeutsamen Operationen des Aufbewahrens oder Erhaltene von Adresse und Restzählwert sowie der Abgrenzungsoperation. Während der Ausführung eines Start-E/A-Befehls j
gibt die CPU Signale an den Kanal ab, durch die die einleiten-! de Kanalbefehlsfolge 301 abläuft. Das führt dazu, daß über j
die Kanaloperation 301.1 das CAW abgerufen, über Operation | 301.2, RBC gesperrt und eine entsprechende Anschlußeinheit
ausgewählt wird. Die Folge läuft dann über den Eingang 303 nach der Kanaleinstellfolge 305.
Die hier eingeschobene Operation 307 prüft die Gültigkeit des Betriebszustandes der Verrlegelungsschaltung 201 für Pufferverkettung. Ist diese Verriegelungsschaltung eingeschaltet
und ist die Befehlsverkettung nicht wirksam (CC nicht Ein) oder wird statt Lesen eine andere Befehlsoperation angezeigt
(was durch ein Sternchen bei der überprüfung auf CC Ein angedeutet ist) , wird eine Programmprüffolge eingeleitet. Ist das
die Pufferverkettung angebende Signal auf Aus oder ist die Befehlsverknüpfung Ein, dann läuft das Programm in die Ablauffolge 309 zum Aufsuchen eines CCW Ein. Der CA-Wert wird nach
dem SAB mit einer Abrufanforderung an das BCU weitergeleitet.
Bei 301 (BCU RESP fällt ab) wird das aufgerufene CCW an den Ausgängen des Speichers (SDBO 0 bis 63) verfügbar, und seine
verschiedenen Teile werden selektiv nach den zugehörigen
709849/0760
PO 975 039
! - vs -
j Kanalregistern übertragen. Bei 311.1 werden die gewöhnliche
Flaginformation (Bit 32 bis 37) und das eine Pufferverkettung
ι anzeigende Flagbit (Bit 38) des CCW bedingungslos nach dem
i entsprechenden Register 104 und der BC-Verriegelungsschaltung
201 übertragen. Bei 311.2 wird die im CCW enthaltene Zählinformation (Bit 48 bis 63) unter der Bedingung nach dem
Zählregister 105 weitergeleitet, daß die Pufferverkettung im Augenblick nicht wirksam ist (RBC nicht Ein). Bei 311.3
wird die Datenadreßinformation (Bit 8 bis 31) unter der Bedingung nach dem DA-Register 102 weitergeleitet, daß die
:Pufferverknüpfung nicht wirksam ist (RBC nicht Ein). Ist RBC
Ein, dann werden die vorhergehend angegebenen Adressen und ι Zählerstandsübertragungen unterdrückt und die derzeit in den
\ jeweiligen Registern 102 bzw. 105 liegenden Werte (bei Bejendigung einer vorhergehenden Operation auf den neuesten
Stand gebrachte Werte) als jeweilige Anfangswerte der kommenden Datenübertragungsoperation aufrechterhalten. Bei 311.4
wird der Befehlsteil (Bit 0 bis 7) dann an das Operationsregister 103 abgegeben, wenn RBC nicht Ein und die Datenverkettung unwirksam ist. Datenverkettung ist eine für die Bei Schreibung der Erfindung nicht bedeutsame Arbeitsweise oder
Betriebsart, bei der eine unbeendete Operation nach Aus- !Schöpfung eines nicht fragmentierten Speicherraums fortgesetzt wird (die Restzählung wird 0), wobei ein neues CCW
einen weiteren Speicherplatz kennzeichnet. Bei der Datenverkettung bleiben Status des angeschlossenen Geräts und Verknüpfung unverändert. Das neue CCW liefert nur eine neue Anfangsadresse und einen neuen Zählerstand.
Sobald bei 314 die Gültigkeit des soeben abgerufenen CCW
festgestellt ist, führt der Kanal den CPU-Befehlstest 316 durch und unterscheidet damit zwischen dem Aufruf eines
ersten (oder einzigen) CCW nach Durchführung eines Start-E/A-Befehles durch die CPU und nachfolgende Aufrufen von
709849/0760
PO 975 039
verketteten Befehlen. Ist ein diesem Punkt die Entscheidung
ein Ja, dann wird bei 318 ein Freigabesignal an die CPU
abgegeben, das bei der CPU die Ausführung des Start-E/ABefehls wirksam beendet.
Ist als Folge einer am Ausgang des Test 316 auftretenden Nein-Entscheidung die Pufferverknüpfung wirksam (RBC Ein),
dann wird bei 320 eine Speicherzyklusanforderung abgegeben, und der im Register 101 abgespeicherte CA-Wert (d.h. die
Adresse des eben aufgerufenen CAW) wird der SpeicheradreB-sammelleitung
SAB zugeführt. Wenn bei 322 BCU RESP abfällt,
was eine Zugriffsmöglichkeit zum Speicher anzeigt, dann wird
der im Register 102 liegende DA-Wert (d.h. die aufrechterhaltene, auf den neuesten Stand gebrachte Datenadresse) bei
323 nach den entsprechenden SDBI-Positionen 8 bis 31 übertragen
und damit in das DA-FeId der gespeicherten Darstellung des eben aufgerufenen und für gültig befundenen CCW als begrenzende
Information überschrieben. Bei 324 bestimmt eine Adressenschutzprüfung die mögliche Verzweigung 325. Wird eine
Ausnahme beim Adressenschutz festgestellt, dann wird eine Fehlerroutine (Programmprüfung) eingeleitet, und die Operation
wird beendet.
:Ist die Entscheidung bei 325 ein Ja, dann läuft die normale
!Übertragung bei 329 mit den Befehlsfolgen 330 ab, wobei die Verbindung durch den Buchstaben A in einem Kreis angedeutet
ι ist, und bewirken damit Datenübertragung mit Einheitslängen
j und eine Erhöhung bzw. Verringerung der zugehörigen Datenadressen und Zählerfaktoren in den Registern 102 und 105.
Am Ende einer Eingabeoperation (die angeschlossene Einheit hat ein entsprechendes Signal abgegeben) werden die letzten
Befehlsfolgen des Kanals bei 336 eingeleitet. Bei Befehlsverknüpfung (CC Ein) wird am Prüfpunkt 34O der Geräteanschlufi
709849/0760
PO 975 039
wieder hergestellt (wenn er beendet worden war), und wenn dies bei 341 durchgeführt ist (nach Aufnahme eines eine freie
Einheit anzeigenden Signals), wird der Betriebszustand der BC-Verriegelungsschaltung mit den Operationen 344 nach der :
RBC-Verriegelungsschaltung 108 übertragen, während gleichzeitig
die Befehlsadresse CA im Register 101 auf den neuesten Stand gebracht wird. Sobald RBC eingeschaltet ist, bleibt
es eingeschaltet, bis die mit Pufferverkettung arbeitende Operation beendet ist. Anschließend läuft die Ablauffolge
über das in einem Kreis liegende B über 346 wieder über Leitung 347 in die Einstell- und CCW-Abruffolgen ein. Die Wirkungsweise
der RBC-Verriegelungsschaltung besteht darin, die Betriebsart Pufferverkettung während der Dauer der mit Pufferverkettung
arbeitenden Folge von Operationen anzuzeigen.
'Die Anwendung der soeben beschriebenen Operationen im Betrieb
j von Pufferverkettung sollen an einem einfachen Beispiel anhand von Fig. 4 dargestellt werden. Ein als Beispiel angegebenes
Kanalprogramm bestehe dabei aus drei pufferverketteten CCWs, die im Hauptspeicher oder Systemspeicher 401 bei den !
Adressen CA, CA + 1 und CA + 2 eingespeichert sind. Diese ; Befehlsworte sollen dabei drei aufeinanderfolgende Lese/Eingabeoperationen
unbestimmter Länge (typischerweise drei auf- ! einanderfolgende Übertragungen von Datenfernverarbeitungs- :
nachrichten) bezeichnen, die von einem gemeinsamen Ursprung, einer peripheren Einheit nach einem zusammenhängenden, d.h.
nicht fragmentierten Speicherbereich von 100 Bytes (CT = 100) mit der einleitenden Datenadresse 1000 übertragen werden.
Die Operation 403 zeigt die Verarbeitung des ersten CCW (CCW1) im Kanal, die durch gemeinsame Verarbeitung des
Start-E/A-Befehls durch CPU/Kanal eingeleitet wird. Die
709849/0760
PO 975 039
10 272086A
- US -
durch den CAW-Aufruf bestimmte Adresse CA des CCW1 wird durch
den Kanal dazu benutzt/ das CCW1 abzurufen und damit auch die Anfangswerte von DA und CT, 1CXX) bzw. 100 zu gewinnen. Nach
,Gültigfeststellung des CCW1 und Freigabe der CPU (Beendigung
der Ausführung des Befehls Start-E/A durch die CPU) führt der Kanal die Eingabedatenübertragungen nach den Speicheradressen
\ 1OOO, 1001 und 1002 durch. Dabei werden zwischenzeitlich
;zwischen aufeinanderfolgenden Datenübertragungen die Datenadresse und der Restzählwert auf den neuesten Stand gebracht.
Dies wird solange fortgesetzt, bis ein äußeres Schlußsignal
!eintrifft oder bis ein eine vorzeitige Beendigung erzwingender Fehler eintritt. Bei diesem Beispiel ist die Aufnahme
eines das Übertragungsende einer peripheren Einheit anzeigenden Signals nach 29 Byteübertragungen angenommen. Der neueste
Wert Im DA-Register 102 wäre demnach 1029, und der neueste
Wert im CT-Register 105 wäre 71. Da die Pufferverkettung wirk-
:sam ist (BC Ein), wird die RBC-Verriegelungsechaltung 208 ein-
geschaltet. Die Befehlsadresse wird fortgeschrieben (CA «
!das nächste CCW (CCW2) von dem durch die fortgeschriebene Befehlsadresse gekennzeichneten Speicherplatz geholt, wodurch
die Operation 405 eingeleitet wird. Da RBC Ein ist, werden nur die Flagbits 32 bis 37 des CCW2 nach den entsprechenden
Kanalregistern 103 und der BC-Verriegelungsschaltung 201
übertragen, während der Inhalt der anderen Register 102, 103 und 104 erhalten bleibt. Da das Bit 38 des CCW2 das
gleiche ist wie das Bit 38 des CCW1 (beide 1) bleibt die BC-Verriegelungsschaltung 201 eingestellt. Da das Bit 33 des
CCW2 eine 1 ist, bleibt die Befehlsverknüpfung wirksam.
Da RBC Ein 1st, wird der derzeit im Register 102 liegende Wert der Datenadresse (1029), der den Wert der auf die letzte Datenübertragung der beendeten Operation folgenden Fortechreibung darstellt, als Anfangswert der nächsten Operation durch
709849/0760
PO 975 039
: die Unterdrückung der Übertragung des CA-Teils des CCW2 beibe-
halten. Dieser Wert wird außerdem als Begrenzungsinformation in die Bitpositionen 8 bis 31 der Adresse CA + 1 überschrie- :
ben (d.h. in das DA-FeId der gespeicherten Kopie von CCW2), i ohne daß dabei die CPU unterbrochen wird oder teilnimmt.
Bei der Ausführung des CCW1 fährt der Kanal mit der Datenübertragung
nach den Speicheradressen 1029, 1030, ... solange fort, bis von dem angeschlossenen Gerät ein das Ende
der übertragung anzeigendes Signal aufgenommen wird. Das dargestellte Beispiel nimmt dabei willkürlich an, daß durch '.
das CCW2 50 Bytes übertragen werden, so daß der zugehörige letzte Wert im DA-Register 102 sich auf 1O79 erhöht hätte,
während der letzte im CT-Register 105 liegende Wert 21 wäre.
In der Schlußfolge der Operation von CCW2 wird die Befehls- : adresse um 1 erhöht (CA = CA + 1), und der derzeitige (Ein) \
Zustand der BC-Verriegelungsschaltung wird nach dem derzeitigen
Ein-Zustand der RBC-Verriegelungsschaltung 208 übertragen.
Da die Befehlsverknüpfung immer noch wirksam ist, ruft der j
Kanal bei 407 ein drittes (in diesem Beispiel das letzte) CCW, nämlich CCW3 ab. In diesem CCW hat das Bit 38, das die
Pufferverkettung bewirkende Flagbit, den Wert 0, wodurch die BC-Verriegelungsschaltung 201 gesperrt wird, so daß damit
nach der noch kommenden Operation die Pufferverkettung beendet werden wird. Da die RBC-Verriegelungsschaltung 208
immer noch eingeschaltet ist, wird nur die Flaginformation
des CCW3 übertragen. Das übertragene, die Befehlsverknüpfung anzeigende Bit 33 kann entweder 1 oder 0 sein. Wie noch im
Zusammenhang mit Fig. 6 zu erläutern ist, kann die Befehlsverknüpfung oder Befehlsverkettung nach Beendigung der Pufferverkettung
fortgesetzt werden.
709849/0760
PO 975 039
Da die Pufferverkettung in der Operation 407 immer noch wirksam ist, wird der Wert (1079) im Datenadreßregister 102 in
das Datenadreßfeld (Bitpositionen 8 bis 31) des CCW3 in der neuesten Befehlsadreßspeicherposition als begrenzende Information überschrieben. Der Kanal fährt nunmehr damit fort, die
Leseübertragung nach den Adressen 1079, 1080, ... auszuführen, bis wiederum ein das Ende der übertragung anzeigendes Signal aufgenommen wird. In dem Beispiel der Operation
407 soll dieses das Ende der übertragung anzeigende Statussignal nach 15 Bytes aufgenommen werden, so daß der letzte
neueste Adressenwert bei 1094 liegen würde, während der letzte Restzählerstand bei 6 liegen müßte. Die Befehlsadresse
wird um 1 erhöht, und der Aus-Zustand der BC-Verriegelungsschaltung 201 wird an die RBC-Verriegelungsschaltung 208 übertragen und schaltet diese ab. Unter der Annahme, daß keine
weiteren Befehle ausgeführt werden müssen (CC Aus), wäre die laufende Operation und die Verkettungsfolge beendet,
:und der Kanal würde nunmehr mit seiner Schlußroutine fortfahren und den Schluß- oder Endstatus in das CCW (Kanalstatuswort) an der vorbestimmten Adresse (Adresse 64 im
Hauptspeicher) laden. Die abschließende Statusinformation enthält auch den Restzählerstand (z.B. 6). Die Benutzung
:des CSW-Speicherplatzes 64 wird durch Unterbrechung der
CPU und Bestätigung durch die CPU koordiniert, so daß eine
'Benutzung bei mehreren Kanälen geordnet abläuft.
j Die in den Datenadreßfeidern von CCW2 und CCW3 übersehriebene
j begrenzende Information und die ursprüngliche einleitende, im CCW1 erhaltene Datenadreßinformation kennzeichnen die Anfangsadressen der drei nebeneinander liegenden Informationsblocks, die durch die durch die CCW bestimmten Operationen
übertragen wurden. Obgleich die Art und Weise, in der die Zentraleinheit diese Information benutzt, nicht ohne weiteres
für die vorliegende Erfindung von Bedeutung ist, zeigt doch
PO 975 039
, 272086Α -ΚFIg. 5 ein Verfahrensbeispiel, das zur Bestimmung der Blocklängen benutzt werden könnte. Die Adresse (1000) Im CCW1
könnte von der Anfangsadresse (1029) im CCW2 abgezogen werden und ergäbe einen Rest 29, der der Länge des ersten, durch
die Operation des CCW1 übertragenen Datenblocks entspräche
und dadurch zur Auffindung des ersten Datenblocks benutzt werden könnte. Die Anfangsadresse (1029) im CCW2 könnte
I von der Anfangsadresse (1079) Im CCW3 abgezogen werden und ergäbe einen Rest 50, der der Länge des durch das CCW2
übertragenen Datenblocks entspräche.
Die Länge des letzten (dritten) durch CCW3 übertragenen Datenblocks könnte beispielsweise dadurch bestimmt werden, daß
man die Summe (z.B. 79) der Längen der beiden vorhergehenden Datenblocks bildet, in dem man die Differenz (z.B. 94) zwischen der Anfangszählung im CCW1 (d.h. 100) und der im CSW
gespeicherten Restzählung (z.B. 6) bildet und drittens diese Summe von dieser Differenz abzieht, wodurch man als Ergebnis
die Zahl 15 erhält, die die Länge des letzten Datenblocks richtig wiedergibt.
Die Blocklängen könnten einfacher bestimmt werden, wenn man die Kanaloperation darauf abstellen könnte, Blocklängen zu
speichern, während die jeweiligen pufferverketteten Übertragungen durchgeführt werden. Eine zweite Ausführungsform gemäß Fig. 7 zeigt eine derartige Abwandlung bei etwas höherem
Aufwand. Eine solche Längenbegrenzung macht die zuvor beschriebene Adressenbegrenzung nicht wertlos, da die Adresseninformation auch das Auffinden und Abrufen dieser Datenblocks
erleichtert.
Wie in Fig. 7 gezeigt, werden die bereits vorhandenen Register des Kanals um ein Befehlsadreßregister 701 (CA2 REG) und
einen Blocklängenzähler 703 vermehrt. Mit diesen beiden
709849/0760
PO 975 039
a.M 272086A
- 2Λ -
Schaltungen kann der Kanal die Adresse (CA) des derzeit wirksamen
CAW gespeichert halten, nachdem diese Adresse (in der Schlußfolge) auf den letzten Stand gebracht wurde, um gleichzeitig
getrennte Längenzählungen für die einzelnen in einer mit Pufferverkettung übertragenen Reihe von Datenblockübertragungen
abzuleiten. Diese beiden Register werden in der Schlußfolge einer jeden Operation mit Pufferverkettung zum
Abspeichern der die Blocklänge in der Speicherposition des jeweiligen CCW begrenzenden Information benutzt. Das CA2-Register
701 wird dann nicht benötigt, wenn die Folgestufe bei der Befehlsadreßfortschreibung nach der CCW-Abrufstufe
weitergeschaltet wird.
Das CA2-Register wird mit Befehlsadreßinformation geladen,
d.h. entweder die Datenadresse im CAW (während des Abrufes des einleitenden CCW einer Pufferverkettung) oder der neueste
an das CA-Register 100 gelieferte Wert (in der Fortschreibe-Suboperation der Schlußfolge, die auf das Schlußzeichen
folgt). Während des CCW-Aufrufs wird der Zähler zurückgestellt und anschließend nach jeder Übertragung einer
Einheitslänge von Eingangsdaten nach dem Hauptspeicher erhöht. Damit stellt aber der im Register 703 eingestellte
Endwert bei Aufnahme der Schlußzeichens die Länge des durch das gerade wirksame CCW übertragenen Datenblocks dar.
In der Schlußfolge einer jeden Blockübertragung mit Pufferverkettung
wird der im CA-Register 701 liegende Wert nach der Speicheradreßleitung im Zusammenwirken mit einer Speicherzyklusanforderung
an das BCU weitergeleitet. Bei der dafür geeigneten nachfolgenden Phase der Speicheroperation (BCU
RESP fällt ab) wird die im Längenzähler 703 abgespeicherte Information nach den SDBI Positionen 48 bis 63 übertragen
und damit im Zählerfeld des derzeit wirksamen CCW als längen-
709849/0760
PO 975 039
begrenzende Anzeige überschrieben.
Aus Flg. 6 erkennt man, daß die Befehlsverknüpfung auch nach
Beendigung der Pufferverkettung fortgesetzt werden kann. Die ersten drei CCWs sind als Gruppe pufferverkettet, ebenso die
zweiten drei CCWs. Zwischen dem dritten und vierten CCW gibt
; es lediglich eine Befehlsverknüpfung, jedoch keine Pufferverkettung. Durch die Schlußoperation des dritten CCW würde die
RBC-Verrlegelungsschaltung 208 abgeschaltet. Damit könnte die
Durchführung des vierten CCW an der Im CCW angegebenen (nicht unmittelbar anschließenden) Adresse beginnen.
Das bisher beschriebene Verfahren mit Pufferverkettung 1st
auf jede Datenverarbeitungsanlage anwendbar, die Eingabe/ Ausgabegeräte aufweist, bei denen Eingangsdatenblöcke In ver-
ketteter Form Übertragen werden können. In bestimmten Systemen j dieser Art - Insbesondere IBM System/360 und IBM System/370 -j werden die Eingabe/Ausgabegerate (Kanäle) in Abhängigkeit
von einem die Datenübertragung über den Kanal in die Datenverarbeitungsanlage einleitenden Befehl in einer Befehlskette
veranlaßt, das nächstfolgende CCW der Kette aus einer nicht unmittelbar nachfolgenden Befehlsadresse abzurufen, die im
Datenadreßfeld des TIC CCW bezeichnet ist, wobei diese nicht unmittelbar anschließende Adresse Im Datenadreßregister des
Kanals (z.B. Register 102) liegt. Die Pufferverknüpfung, wie
sie jetzt derzeit betrachtet wird, erfordert jedoch die Beibehaltung der auf den letzten Stand gebrachten Datenadresse,
so daß diese später als die Anfangsadresse einer nächsten Eingabeoperation benutzt werden kann. Dies hat zur Folge,
daß bei der Programmierung darauf zu achten ist, daß bei der Bildung von pufferverketteten Gliedern in Befehlsketten die
so verknüpften Befehle keinen TIC-Befehl enthalten dürfen.
8A9./0
PO 975 039
-νε-
Obwohl es, technisch gesehen, nicht besonders schwierig sein dürfte, ein zusätzliches Register für die Speicherung der
letzten fortgeschriebenen Datenadresse während der Abarbeitung eines TIC-Befehls vorzusehen, oder das TIC-Abrufen so zu
modifizieren, daß das Datenadreßfeld des TIC-Befehls nach dem
Hilfsbefehlsadreßregister CA2 umgeleitet würde, so würde dies
doch eine pufferverkettete Operation beträchtlich erschweren
und deren Kosten erhöhen, so daß dies derzeit als nicht besonders erwünscht angesehen wird.
B) Erschöpfung des Restzählers (vollständiger Verbrauch der zugewiesenen Speicherplätze)
Normalerweise wird der Zählerrestwert nach jedem Dekrement überprüft (d.h. nach jeder Übertragung einer Einheitslänge
von Daten nach dem Speicher). Wenn jedoch der Zählerrestwert
den Wert O erreicht, bevor alle Übertragungen in einer pufferverketteten
Reihe von Übertragungen beendet sind, dann wird eine Speicher-Überlauf-Folge eingeleitet. Die Operation wird
beendet, und durch die Programme der Zentraleinheit wird neuer Speicherplatz zugewiesen, die Operation wird erneut
eingeleitet und erneut versucht. Es wird dabei angenommen, daß in der Mehrheit aller Fälle, bei denen mit Pufferverkettung
gearbeitet wird, ein derartiger überlauf nicht auftritt und wenn er doch einmal auftreten sollte, dann wird nur diejenige
Operation, die durch die Erschöpfung des Zählerstandes unterbrochen wurde, nach dem Neuanlauf wieder durchgeführt
werden müssen.
Wie bereits erwähnt, wird eine Datenverkettung oder Datenverknüpfung
(eine 1 in CCW Flagbitposition 32) normalerweise
PO 975 039
709849/0760
durch den Kanal (ohne Pufferverkettung) dazu benutzt, eine
ιunbeendete Operation dann fortzusetzen, wenn der für die Ope-I
ration vorgesehene Speicherplatz verbraucht ist (Restzähler-J stand wird O), bevor das Schlußzeichen aufgenommen ist. Gemäß
j der vorliegenden Erfindung können die Flagbits für Datenver-
kettung und Pufferverkettung in einem CCW gemeinsam dazu benutzt
werden, daß der Kanal auf ein nicht abschließendes Signalbit, das an der Schnittstelle mit der angeschlossenen Einheit/peripheres
Gerät dargeboten wird und Blockuntergrenzen I angibt, die in einem sonst kontinuierlichen Datenblock auftreten.
An jeder solchen Blockuntergrenze könnte der Kanal ein nächstes CCW abrufen, die Begrenzungsinformation in einem
gespeicherten CCW überschreiben und die Eingabeoperation fortsetzen. Bei dieser Betriebsart würde der Restzählerstand
j O als normaler Überlauf bei einem Betrieb mit nicht verketteten
Daten angesehen. Eine intelligente periphere Steuereinheit könnte dabei wirksam eine Reihe unabhängig entstandener
Unterblocks zu einem Block kombinieren und die oben erwähnten nicht abschließenden Signale dazu benutzen, eine fliegende
'Pufferverkettung durchzuführen, mit den entsprechenden Be-Igrenzungsoperationen
für die Subblocks. So könnten beispielsweise eine Reihe von unabhängigen über Datenfernverarbeitung
!ankommende Nachrichten, die für eine getrennte Verarbeitung i
vorgesehen sind, effektiv als eine fortlaufende Eingabeoperation mit zwischenzeitlicher Begrenzung durch die eben erwähnte
Unterblockverkettung in der Betriebsart mit Daten/ Pufferverkettung behandelt werden.
D) Herstellung einer Pufferverkettung
Durch befehlsverkettende Flagbits in einem Kanalprogramm miteinander verbundene CCWs können außerdem für eine Pufferverkettung
dadurch miteinander verbunden werden, daß in Bit-
_ _ 709849/0760
PO 975 039
272086A
-imposition 38 vor Einleiten der zugehörigen Kanaloperation
Pufferverkettungsflagbit, eingesetzt werden. Das Systemprogramm der Zentraleinheit kann dabei einen nicht zerstreut
liegenden Speicherraum für jede beliebige Anzahl aufeinanderfolgender Befehle in einer Reihe miteinander verketteter
Befehle vorsehen (vergleiche Fig. 6). Dies kann insbesondere dann wirksam sein, wenn das den Speicherplatz zuordnende
Programm so gute Information enthält, daß eine ziemlich ge- '
naue Abschätzung der erwarteten zusammengefaßten Datenübertragung für eine Reihe von CCW-Operationen ermöglicht wird.
Wenn beispielsweise angenommen werden kann, daß der zur Ver- ! fügung stehende, nicht zerstreut liegende Speicherraum durch j
die erwartete Eingabe von vier aufeinanderfolgenden CCW-Lese- j
befehlen in einer befehlsverketteten Serie fast vollständig mit Daten geladen werden wird (jedoch nicht bis zum überlauf)
, dann könnte das Zuordnungsprogramm die Pufferkettenflagbits
in die ersten drei dieser CCWs einsetzen sowie die entsprechenden Werte der Datenadressen und Zählerstände in
das erste CCW, so daß von dem zur Verfügung stehenden Speicherraum ein wirksamer Gebrauch gemacht werden kann.
709849/0 78 0
PO 975 039
Leerseite
Claims (7)
- PATENTANSPRÜCHEAnordnung zum lückenfreien Einspeichern von aufeinanderfolgenden von angeschlossenen Geräten nach einem Speicher zu übertragenden Datenblöcken von zunächst unbekannter Länge, mit einem an den Speicher anschaltbaren üatenkanal mit Kanaladreßregister, Datenadreßregister, Zählregister, Kennzeichenregister, Operationsregister und üatenpufferregistern und einer Steuerung des Kanals durch aus dem Speicher abrufbare Kanalsteuerworte, dadurch gekennzeichnet, daß für eine Pufferverknüpfung für eine Anzahl von Eingabeoperationen, welche miteinander verkettet nacheinander ohne Verbindung zwischen dem Kanal und anderen durch den Speicher bedienten Einheiten durchführbar ist, ein durch ein Steuersignal (Bit 38) in einem aufgerufenen Kanalsteuerwort (CCW) umsteuerbarer, selbsthaltender Schalter (201, 2Ο8) vorgesehen ist, durch dessen von dem Steuersignal abhängige Einstellung am Ende der Übertragung eines Datenblocks der Länge L die um L erhöhte Datenadresse in das Datenadreßregister (102) und der um L erniedrigte Zählerstand im Zählregister (105), in die entsprechenden Felder des nächstfolgenden Kanalsteuerwortes eintragbar sind, und daß bei Durchführung der im nächsten Kanalsteuerwort angegebenen Übertragungsoperation diese bei der abgespeicherten Speicheradresse und dem abgespeicherten Zählerstand beginnt.
- 2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß bei Auftreten des Steuersignals (Bit 38) im Kanalspeicherwort die im Datenadreßregister (102) liegende Adresse (z.B. 1OOO) und der im Zählregister (105) stehende Zählwert (CT) aus ihrer zu Beginn der Operation eingespeicherten Anfangsposition das eine in positiver und das andere in negativer Richtung durch die übertragenen Datensätze in der Weise fortschaltbar sind,7 098^9/0760PO 975 039ORIGINAL INSPECTEDdas am Ende dieser Operation das Datenadreßregister (102) die Folgeadresse für die nächste Speicheroperation und das Zählregister (105) die dafür noch verfügbaren Speicherplätze anzeigt.
- 3. Anordnung nach den Ansprüchen 1 und 2, dadurch gekennzeichnet, daß die Pufferverkettung (BC) über den umsteuerbaren Schalter (201, 208) nur dann durchführbar ist, wenn das aufgerufene Kanalsteuerwort außerdem noch ein Signal zur Befehlsverkettung (CC) enthält.
- 4. Anordnung nach Anspruch 3, dadurch gekennzeichnet, daß bei Aufnahme eines Schlußzeichens eines an dem Kanal (403) angeschlossenen Gerätes die letzte Datenadresse und der letzte Zählerstand zunächst abspeicherbar sind (101, 105), und daß bei Aufruf des nächsten Kanalsteuerwortes dann, wenn dieses wieder das Steuersignal enthält, die in diesem Kanalsteuerwort enthaltene Datenadresse und der ebenfalls enthaltene Zählerstand unterdrückt und durch die letzte Datenadresse und den letzten Zählerstand in den Registern (101, 105) ersetzt werden. :
- 5. Anordnung nach den Ansprüchen 1 bis 4, dadurch gekennzeichnet, daß bei fehlendem Steuersignal (Bit 38) der umsteuerbare Schalter (201, 208) rückstellbar ist, und daß damit die zuletzt im Datenadreßregister (102) ; abgespeicherte neueste Datenadresse und der im Zählregister (105) liegende Restzählerstand in den Speicher j in einem Kanalstatuswort (CSW) abspeicherbar sind.
- 6. Anordnung nach den Ansprüchen 1 bis 5, dadurch gekennzeichnet, daß für die Umschaltung des Kanals auf pufferverketteten Betrieb der umsteuerbare, selbsthaltende Schalter eine erste und eine damit verbundene, durch7Q98A9/0760PO 975 039das Steuersignal einstellbare und bei Fehlen dieses Signals rückstellbare zweite Verriegelungsschaltung (201, 208) enthält, wobei die zweite Verriegelungsschaltung (RBC, 208) bei Ende einer ersten Übertragungsoperation während der Durchführung der nächstfolgenden Operation eingestellt bleibt, und daß durch den Rückstellzustand dieser Verriegelungsschaltung (208) betätigbare logische Schaltungen (212) vorgesehen sind, die normalerweise die Anfangsdatenadresse und den Anfangszählerstand bei Einleiten einer verketteten Verarbeitung an das Datenadreßregister (102) und das Zählregister (105) übertragen.
- 7. Anordnung nach Anspruch 6, dadurch gekennzeichnet, daß der Kanal ein Befehlsadreßregister (CA REG, 101) enthält, das die Adresse des gerade wirksamen Kanalsteuerwortes (CCW) gespeichert hält, und daß dieses Befehlsadreßregister für jede Ubertragungsoperation zur Erhöhung der eingespeicherten Befehlsadresse fortschaltbar ist, wobei die am Ende einer Ubertragungsoperation in diesem Adreßregister eingespeicherte Befehlsadresse bei Befehlsverkettung die Adresse eines nächsten abzurufenden Kanalsteuerwortes darstellt, daß ferner ein Hilfs-Befehlsadreßregister vorgesehen ist, in dem die Adresse des gerade wirksamen Befehls zwischen dem Ende einer Operation und dem Beginn der nächstfolgenden Operation abspeicherbar ist, und daß der Speicher für die Abspeicherung des Endzählerstandes an den das dieser Operation zugeordnete Steuerwort enthaltenden Speicherplatz adressierber ist.709849/0760PO 975 039
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/691,953 US4040037A (en) | 1976-06-01 | 1976-06-01 | Buffer chaining |
Publications (3)
Publication Number | Publication Date |
---|---|
DE2720864A1 true DE2720864A1 (de) | 1977-12-08 |
DE2720864B2 DE2720864B2 (de) | 1979-06-28 |
DE2720864C3 DE2720864C3 (de) | 1980-02-28 |
Family
ID=24778666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2720864A Expired DE2720864C3 (de) | 1976-06-01 | 1977-05-10 | Anordnung zum lückenfreien Einspeichern einer Anzahl von Datenblocks unbestimmte r Lange |
Country Status (7)
Country | Link |
---|---|
US (1) | US4040037A (de) |
JP (1) | JPS52147032A (de) |
CA (1) | CA1084632A (de) |
DE (1) | DE2720864C3 (de) |
FR (1) | FR2353900A1 (de) |
GB (1) | GB1579165A (de) |
IT (1) | IT1115480B (de) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4302818A (en) * | 1979-07-10 | 1981-11-24 | Texas Instruments Incorporated | Micro-vector processor |
JPS5660933A (en) * | 1979-10-22 | 1981-05-26 | Nec Corp | Information processor |
DE3382684T2 (de) * | 1982-11-16 | 1993-08-26 | Unisys Corp | Blockzaehlersystem zur ueberwachung des datentransfers. |
CA1211573A (en) * | 1982-12-07 | 1986-09-16 | Glenn T. Hotchkin | System for regulating data transfer operations |
US4542457A (en) * | 1983-01-11 | 1985-09-17 | Burroughs Corporation | Burst mode data block transfer system |
EP0412268B1 (de) * | 1989-08-11 | 1996-09-11 | International Business Machines Corporation | Vorrichtung zur Verbindung von einer Steuereinheit mit parallelem Bus mit einem Kanal mit serieller Verbindung |
US5459838A (en) * | 1992-09-24 | 1995-10-17 | International Business Machines Corporation | I/O access method for using flags to selectively control data operation between control unit and I/O channel to allow them proceed independently and concurrently |
US5584039A (en) * | 1993-11-08 | 1996-12-10 | International Business Machines Corporation | System for coordinating execution of multiple concurrent channel programs without host processor involvement using suspend and resume commands to control data transfer between I/O devices |
US6230218B1 (en) * | 1998-10-14 | 2001-05-08 | International Business Machines Corporation | Apparatus for transferring execution of certain channel functions to a control unit and having means for combining certain commands and data packets in one sequence |
US6240446B1 (en) | 1998-10-14 | 2001-05-29 | International Business Machines Corporation | Multiplexing of multiple data packets for multiple input/output operations between multiple input/output devices and a channel subsystem having multiple channels |
US6330585B1 (en) | 1998-10-14 | 2001-12-11 | International Business Machines Corporation | Transfer information using optical fiber connections |
US6185631B1 (en) | 1998-10-14 | 2001-02-06 | International Business Machines Corporation | Program for transferring execution of certain channel functions to a control unit and having means for combining certain commands and data packets in one sequence |
US6609165B1 (en) | 1999-09-27 | 2003-08-19 | International Business Machines Corporation | Method and apparatus for using fibre channel extended link service commands in a point-to-point configuration |
US6499066B1 (en) | 1999-09-27 | 2002-12-24 | International Business Machines Corporation | Method and apparatus for using fibre channel test extended link service commands for interprocess communication |
US20080181399A1 (en) * | 2007-01-29 | 2008-07-31 | Sun Microsystems, Inc. | Composite cryptographic accelerator and hardware security module |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3488633A (en) * | 1964-04-06 | 1970-01-06 | Ibm | Automatic channel apparatus |
US3688274A (en) * | 1970-12-23 | 1972-08-29 | Ibm | Command retry control by peripheral devices |
US3725864A (en) * | 1971-03-03 | 1973-04-03 | Ibm | Input/output control |
US3728693A (en) * | 1972-04-28 | 1973-04-17 | Burroughs Corp | Programmatically controlled interrupt system for controlling input/output operations in a digital computer |
-
1976
- 1976-06-01 US US05/691,953 patent/US4040037A/en not_active Expired - Lifetime
-
1977
- 1977-04-26 FR FR7713444A patent/FR2353900A1/fr active Granted
- 1977-05-10 DE DE2720864A patent/DE2720864C3/de not_active Expired
- 1977-05-13 JP JP5450177A patent/JPS52147032A/ja active Granted
- 1977-05-20 CA CA278,860A patent/CA1084632A/en not_active Expired
- 1977-05-24 IT IT23900/77A patent/IT1115480B/it active
- 1977-05-27 GB GB22586/77A patent/GB1579165A/en not_active Expired
Also Published As
Publication number | Publication date |
---|---|
DE2720864C3 (de) | 1980-02-28 |
JPS5611333B2 (de) | 1981-03-13 |
IT1115480B (it) | 1986-02-03 |
DE2720864B2 (de) | 1979-06-28 |
JPS52147032A (en) | 1977-12-07 |
FR2353900B1 (de) | 1979-03-09 |
CA1084632A (en) | 1980-08-26 |
FR2353900A1 (fr) | 1977-12-30 |
US4040037A (en) | 1977-08-02 |
GB1579165A (en) | 1980-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2161886C2 (de) | Befehlsausführungseinheit in einer elektronischen Datenverarbeitungszentrale für die gleichzeitige Verarbeitung mehrerer Befehle | |
DE4244266C2 (de) | Verfahren und Schaltungseinrichtung zum dynamischen Konfigurieren von Gerätetreibern für Computersystem-Betriebsmittel | |
DE2720864C3 (de) | Anordnung zum lückenfreien Einspeichern einer Anzahl von Datenblocks unbestimmte r Lange | |
DE1424732C3 (de) | Einrichtung zum gegenseitigen Austausch von Angabenwörtern zwischen einem unmittelbar zugänglichen Hauptspeicher eineT Ziffernrechenmaschine und einem an diese angeschlossenen Sekundärspeicher vergleichsweise längerer Zugriffszeit | |
DE2551239C3 (de) | Datenverarbeitungsanlage | |
DE3131341A1 (de) | "pufferspeicherorganisation" | |
DE2415900A1 (de) | Rechenautomat mit mehreren mit je einem vorratsspeicher versehenen rechenanlagen | |
DE2411963B2 (de) | Datenverarbeitungsanlage | |
DE3015875A1 (de) | Speicherzugriffssystem und verfahren fuer einen zugriff zu einem digitalen speichersystem | |
DE2856680C2 (de) | ||
DE2657848A1 (de) | Steuereinheit fuer ein datenverarbeitungssystem | |
DE1931966A1 (de) | Elektronische Datenverarbeitungsanlage | |
DE1499206C3 (de) | Rechenanlage | |
DE2429067B2 (de) | Speicherschaltung | |
DE2218630C3 (de) | Schaltungsanordnung zur Steuerung von Unterbrechungssignalen in Datenverarbeitungsanlagen | |
DE2454613C2 (de) | Kanaleinheit für die Steuerung der Datenübertragung auf einer Vielzahl von Kanälen zwischen den peripheren Einrichtungen und dem Hauptspeicher einer digitalen Datenverarbeitungsanlage | |
EP1079307B1 (de) | Verfahren zum Betrieb eines Speichersystems sowie Speichersystem | |
DE2739525A1 (de) | Prozessor | |
DE1499224C3 (de) | Datenverarbeitungsanlage mit Kellerspeichereinrichtungen | |
DE2900460A1 (de) | Warteschlangenstruktur | |
DE2610428C3 (de) | Anordnung zur Steuerung der Zwischenspeicherung von zwischen zwei Funktionseinheiten zu übertragenden Daten in einem Pufferspeicher | |
DE2557787A1 (de) | Einrichtung und verfahren zum verarbeiten von maschinenbefehlen unterschiedlicher formate in einem mikroprogrammierten datenverarbeitungssystem | |
DE2343501B2 (de) | Steuerschaltung für zumindest eine Rechenanlage mit mehreren für die Durchführung von EuWAusgabe-Programmen bestimmten Registern | |
DE10059006A1 (de) | Verfahren und System zur sicheren Verwaltung von Dateien in nichtflüchtigen Speichern | |
DE1499286B2 (de) | Datenbearbeitungsanlage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OD | Request for examination | ||
C3 | Grant after two publication steps (3rd publication) | ||
8339 | Ceased/non-payment of the annual fee |