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 laenge

Info

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
Application number
DE19772720864
Other languages
English (en)
Other versions
DE2720864B2 (de
DE2720864C3 (de
Inventor
Francis Daniel Lawlor
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
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2720864A1 publication Critical patent/DE2720864A1/de
Publication of DE2720864B2 publication Critical patent/DE2720864B2/de
Application granted granted Critical
Publication of DE2720864C3 publication Critical patent/DE2720864C3/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program 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)
  • Bus Control (AREA)
  • Memory System Of A Hierarchy Structure (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
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.
Stand der Technik
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
Zusammenfassung der Erfindung
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,
Fig. 2 eine Darstellung der Erfindung als logische
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,
Fig. 5 beispielsweise den Arbeitsablauf bei der Be-
i Stimmung der Blocklängen innerhalb der Daten, ■
die aneinander stoßend durch die in Fig. 4 erläuterte Operation eingespeichert werden,
Fig. 6 eine gruppenweise Pufferverkettung innerhalb I
von zur Befehlsverknüpfung miteinander ver- ! bundener Kanalsteuerworten und |
709849/0760
PO 975 Ö39
Flg. 7 die Kanallogik für die Begrenzung der Länge
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.
Elnzelbeschrelbung
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).
Der Kanal benutzt die Befehlsadreßinformation des CAW im
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.
Pufferverkettung
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.
Anwendungsbeisplele
'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 «
CA + 1). Da eine Befehlsverknüpfung wirksam ist, wird nunmehr
!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
- -
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.
Diskussion
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.
C) Wahlweise Datenverkettung bei Pufferverkettung
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)

  1. PATENTANSPRÜCHE
    Anordnung 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. 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/0760
    PO 975 039
    ORIGINAL INSPECTED
    das 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. 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. 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. 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. 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, durch
    7Q98A9/0760
    PO 975 039
    das 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. 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/0760
    PO 975 039
DE2720864A 1976-06-01 1977-05-10 Anordnung zum lückenfreien Einspeichern einer Anzahl von Datenblocks unbestimmte r Lange Expired DE2720864C3 (de)

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)

* Cited by examiner, † Cited by third party
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
EP0316020B1 (de) * 1982-11-16 1993-05-19 Unisys Corporation Blockzählersystem zur Überwachung 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
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
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
US6330585B1 (en) 1998-10-14 2001-12-11 International Business Machines Corporation Transfer information using optical fiber connections
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
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)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
US4040037A (en) 1977-08-02
DE2720864B2 (de) 1979-06-28
IT1115480B (it) 1986-02-03
FR2353900B1 (de) 1979-03-09
GB1579165A (en) 1980-11-12
FR2353900A1 (fr) 1977-12-30
CA1084632A (en) 1980-08-26
JPS52147032A (en) 1977-12-07
JPS5611333B2 (de) 1981-03-13
DE2720864C3 (de) 1980-02-28

Similar Documents

Publication Publication Date Title
DE4244266C2 (de) Verfahren und Schaltungseinrichtung zum dynamischen Konfigurieren von Gerätetreibern für Computersystem-Betriebsmittel
DE2161886C2 (de) Befehlsausführungseinheit in einer elektronischen Datenverarbeitungszentrale für die gleichzeitige Verarbeitung mehrerer Befehle
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
DE69921733T2 (de) Mikroprozessorschnittstelle mit einem durch ein Vordekodierungssystem optimierten externen Speicher

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