DE2130299B2 - Eingabe-/Ausgabekanal für eine Datenverarb eitungsanlage - Google Patents

Eingabe-/Ausgabekanal für eine Datenverarb eitungsanlage

Info

Publication number
DE2130299B2
DE2130299B2 DE19712130299 DE2130299A DE2130299B2 DE 2130299 B2 DE2130299 B2 DE 2130299B2 DE 19712130299 DE19712130299 DE 19712130299 DE 2130299 A DE2130299 A DE 2130299A DE 2130299 B2 DE2130299 B2 DE 2130299B2
Authority
DE
Germany
Prior art keywords
memory
input
output
data
channel
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
DE19712130299
Other languages
English (en)
Other versions
DE2130299A1 (de
DE2130299C3 (de
Inventor
John James Winchester Hampshire Holmes (Grossbritannien)
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 DE2130299A1 publication Critical patent/DE2130299A1/de
Publication of DE2130299B2 publication Critical patent/DE2130299B2/de
Application granted granted Critical
Publication of DE2130299C3 publication Critical patent/DE2130299C3/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • G11C15/04Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
    • 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
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/122Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware performs an I/O function other than control of data transfer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)

Description

rbeitungsaiilagc mit einem E/A-Kanal,
F i g. 2 ein genaueres Blockdiagramm der Prozessor- \nschlußeinheit,
Fig. 3 ein genaueres Bloekdiugramm der E/A-An-,chlußcinheit.
F ig. 4 eine Übersiehtsdarsiellung des inhaltes des Λ-Speichers aus F i g. 3.
F i g. 5 ein Blockschaltbild eines Paares von bistabilen Anordnungen zur Beschleunigung der Reaktion des Ε/Λ-Kanals auf Signale von E/A-Einheiten und
F ι g. b ein Blockdiagramm einer anderen Ausführung des Speichers ;n F i g. i /ur Erhöhung der Übertragungsgeschwindigkeit.
Fig. I zeigt eine digitale Datenverarbeitungsanlage nut einem Eingabe-/Ausgabekanai 10. im folgenden kurz als E/A-Kanal 10 bezeichnet. Die Anlage enthalt außerdem einen Hauptspeicher 11 und einen Prozessor <ΓΡίΊ2). Der Hauptspeicher 11 wird durch den Inhalt eines Speicheradreßregisters (SAR 13) adressiert /uc.-ks Datenübertragung zwischen der adressierten ti.inptspeicherstelle und einem .Speicherdatenregister (SDR 14). Der E/A-Kanal 10 besteht aus zwei Funktionseinheiten, die unabhängig voneinander arbci ten: einer Prozessor-Anschlußeinheil 15 und einer E/A- Anschlußeinheit 16.
Die Prozessor-Anschlußeinheit 15 empfängt »om Prozessor 12 Sieuerdaten. welche die vom «.anal auszuführenden Operationen festlegen. Diese Steiierdalen werden vorzugsweise über das SDR 14 übertragen. Wo mehrere E/A-Kanäle 10 in einer Datenverarbeilungsanlage vorgesehen sind, wie es allgemein üblich ist. ist auch für jeden Kanal ein entsprechendes SDR 14 vorgesehen, um eine gute Verbindung mii dem Prozessor 12 zu schaffen. Es ist jedoch auch in diesem Fall nur :in SAR 13 vorgesehen: gleichzeitige Anforderungen für Zugriffe zum Hauptspeicher 11 durch verschiedene Kanäle können dann mit bekannter Prioriiätsteehnik gelöst werden.
Die F./A-Anschlußeinheit 16 ist die Funktionseinheit, die einen Datenweg einschließlich Pufferspeicher zwischen den peripheren Einheiten und dem Hauptspeicher 11 herstellt. Die E/A-Anschlußeinheil 16 steuert sich selbst, wenn sie einmal die Sieuerinformation von der Prozessor-Anschlußeinheil 15 empfangen hai. Sie kann erkennen, wann die angeforderte Operation ausgeführt werden kann und wann sie beendet ist.
Bei dem als Beispiel zu beschreibenden F./A-Kana! handelt es sich um einen Selektorkanal. Der E/A-Kanal ist als eine Gruppe von untereinander verbundenen Assoziativspeichern ausgeführt, die die unabhängig v< arbeitende Prozessor-Anschlußeinheü 15 und E/A-Anschlußeinheit 16 der Fig. I bilden. Die Speicher unterscheiden sich untereinander nicht in ihrem Aufbau, sondern nur durch ihren Dateninhalt sowie durch ihre Verbindung mit den übrigen Teilen der Datenverarbei- ss tungsanlage und mit den peripheren Einheilen.
jeder der Assoziativspeicher besieht aus zwei Eingabe/Ausgabe Registern und mehreren Wortspeicherstellen, deren jede außerdem zwei Meiner (limärelemente) hai, die erster und zweiler Merker ho genannt werden. Ein Speicherzyklus besteht aus zwei Phasen, in deren erster die Speicherstelien für den Zugriff markiert und in deren zweiter bestimmte Teile markierter Speicherstelien gleichzeitig in einer l.ese- oder Schreiboperation auf ein ausgewähltes Eingabe/ (-5 Ausgabe-Register übertragen werden. Eine Speicherstelle wird markiert, indem man einen der beiden Merker setzt. Dieses Setzen kann aus einer .Suchopera
40
45 tion resultieren, in welcher ein Suchargument (der Inhalt bestimmter Teile eines ausgewählten Eingabe/Ausgabe-Registers) mit dem lnhah derselben Teile aller Wortstellen verglichen ivird. Wenn der Inhalt einer Wortstelle mit dem Suchargument übereinstimmt, wird die Wortsteile markiert. Die ersten und zweiten Merker bilden außerdem miteinander je ein Schieberegister, so daß ihre iuhalte um eine Woristelle verschoben werden können. Diese Operation (genannt »NAECHSTE«) kann mit einer assoziativen Suche kombiniert werden. In diesem Fall wird jeweils die Wortstelle hinter einer mit dem Suchargument übereinstimmenden Wortstelle markiert. Die »NAECHSTEw-Operation kann aber auch in der ersten Phase eines Zyklus ohne eine begleitende Suchoperation ausgeführt werden. Die bei der Suchoperation zu berücksichtigenden Teile der Wortstellen werden durch eine Maske ausgewählt, die bestimmte Verbindungen zwischen den Eingabe/Ausgabe-Registern und den Speicherstelien während der ersten Phase maskiert, während die Teile der Wortstellen, in denen gelesen oder geschrieben wird, durch eine Maske gewählt werden, die in der zweiten Phase verwendet wird, leder Assoziativspeicher verfügt über einen Maskenspeicher, der die Masken enthält und der am Anfang der ersten und der zweiten Phase adressiert wird. Zum Steuern eines Assoziativspeichers muß daher angegeben werden, welcher Merker (der erste oder der /weite) zu benutzen ist. ob eine Suchoperation auszuführen ist oder ob eine >>NAECHSTE«-Operation auszuführen ist. Außerdem ist anzugeben: die Maske für die Suchoperation: ob eine Lese- oder Schreiboperation auszuführen ist: die Maske für die Lese- oder .Schreiboperation·, und welches Eingabe/Ausgabe-Register in jeder Operationsphase zu benutzen ist.
In dem zu beschreibenden Ausführungsbeispiel besteht die Prozessor-Anschlußeinheit 15 aus zwei Assoziativspeichern, einem Sieuerspeichcr und einem Datenspeicher, die als S-Spcicher bzw. D-Speicher bezeichnet werden. Die E/A-Anschlußeinheit 16 besteht aus vier Assoziativspeichern, einem Adreßspeicher, einem Pufferspeicher, einem Zählspeichcr und einem Koordinationsspeicher, die als Λ-Speicher, P-Speicher, Z-Speicher und R-Speicher bezeichnet werden. Alle Assoziativspeicher arbeiten synchron und werden durch einen Taktgeber angesteuert.
Gemäß der Darstellung in Fig. 2 besteht die Prozessor-Anschlußeinheit 15 aus dem 5-Speicher und dem D-Speicher, hier werden nur die Teile eines Eingabe/Ausgabe-Registers eines Speichers gezeigt, die tatsächlich benutzt werden. In der Praxis ist der .S'-Speicher konstruktiv mit dem D-Speicher identisch. In Fig. 2 hat er die gleiche Kapazität wie der D-Speicher; es wurde jedoch ein Eingabe/Ausgabe-Re-L'isier vollständig und ungefähr eine Hälfte des anderen Registers weggelassen, da die Teile nicht benutzt werden. Die Eingabe/Ausgabe-Register sind auf einander gegenüberliegenden Seiten des einen Speicher darstellenden Blockes wiedergegeben. Üblicherweise wird das obere Register Ε/Λ-1 und das untere Ε/Λ-2 genannt. Wenn Felder der Eingabe/Ausgabc-Register gemeinsam benutzt werden, sind sie durch eine gestrichelte Linie verbunden dargestellt, wofür die 1 i g. 2 zwei Beispiele enthält.
Operationen im Kanal werden durch Absuchen von Funktionstabellen in den Assoziativspeichern ausgeführt, jede dieser Tabellen ist durch einen eindeutigen Schlüssel bezeichnet, und bestimmte Zeilen der Tabelle werden durch den oder die Operandci, gewählt, von
ienen die Funktion abzuleiten ist. Das Suchargument siner Suchoperation besteht daher normalerweise aus einem Schlüssel, der die auszuführende Funktion bestimmt und als eine Adresse betrachtet werden kann, und aus einem veränderlichen Teil, der die Operanden festlegt. Jeder Assoziativspeicher umfaßt ein Schlüsselfeld, welches die Tabellenschlüsse! enthält.
Der S-Speicher hat nur das Register E/A-2, welches ein erstes Schlüsselfeld 21, ein Bedingungsfeld 22, ein Feld »Nächste«-Adresse 23, ein D-Speicherschlüsselfeld 24, ein D-Speichersteuerfeld 25 und ein D-Speichermaskenfeld 26 enthält. Die einzige Funktion des S-Speichers ist die Steuerung des D-Speichers und der Felder 24 und 26, wobei die zum Steuern des D-Speichers nötigen Steuerdaten aus den Feldern 24 und 26 genommen werden. Feld 26 gibt die Maske oder das Maskenpaar an, welche in jedem D-Speicherzyklus zu verwenden sind. Feld 25 wird auf einen Decodierer übertragen und bestimmt die Operationen, wie Suchen, »Nächste«, Lesen, Primär, die durch den D-Speicher auszuführen sind; Feld 24 enthält den Schlüssel, der die im D-Speicher auszuführende Funktion vorschreibt. Der S-Speicher hat eine eigene Folgesteuerung: Das Feld »Nächste«-Adresse 23 ist mit dem Schlüsselfeld 21 des Registers E/A-2 des S-Speichers verbunden. Zusätzliche Informationen über das nächste aus dem DS-Speicher zu lesende Steuerwort werden vom D-Speicher selbst dadurch abgeleitet, daß zwei Bits auf das Bedingungsfeld 22 vom Bedingungsfeld 30 des D-Speichers gegeben werden können, welches beiden D-Speicher-Eingabe/Ausgabe-Registern gemeinsam ist. Der S-Speicher hat einen festgelegten Operationszyklus: Suchen in den Feldern 21 und 22 und Lesen aus den Feldern 23 bis 26. Der D-Speicher hat die Funktion. Steuerdaten vom Prozessor, die sich auf auszuführende E/A-Operationen beziehen, zusammenzusetzen und diese an die E/A-Anschlußeinheit 16 ( F i g. 1) zu leiten.
Der D-Speichcr empfängt aus dem Kanalsteuerwort die Datenadresse, die Längenangabe (Byteanzahl), die Kennzeichen und die Operationsangabe. Auch die Einheitensteuerwörter werden im D-Speicher festgehalten. Adreß-, Zähl- und Zustandsdaten werden von Zeit zu Zeit an die E/A-Anschlußeinheit 16 übertragen.
Register E/A-l des D-Speichers enthält das Bedingungsfeld 30, welches mit dem Bedingungsfeld 22 von E/A-2 des S-Speichers verbunden ist; das Daten vom Feld 24 des S-Speichers empfangende Schlüsselfeld 31; ein an die Sammelleitungs-Register 42 und 43 ( F i g. 3) und den P-Speicher angeschlossenes Feld 32; sowie die Felder 33 und 34, die beide an den P-Speicher and das SDR 14 (F i g. 1) angeschlossen sind.
Register E/A-2 des D-Speichers enthält außer dem Bedingungsfeld 30 und dem Schlüsselfeld 31, welche es mit E/A-l teilt, eine Gruppe von Steuerfeldern, die als ein Feld 35 dargestellt sind, zur Übertragung von Steuersignalen auf die E/A-Anschlußeinheit 16, ein an den /4-Speicher und das SAR angeschlossenes Feld 36 und ein an den Z-Speicher angeschlossenes Feld 37.
F i g. 3 zeigt die E/A-Anschlußeinheit 16, deren Aufgabe es ist, Steuersignale mit einer E/A-Einheit auszutauschen, einen Datenweg für die Datenübertragung zwischen der E/A-Einheit und dem Hauptspeicher herzustellen und offenzuhalten, die Zahl der übertragenen Datenbytes festzuhalten und für das SAR die Hauptspeicheradresse zu erzeugen, zu welcher oder von welcher Daten zu übertragen sind. Steuersignale werden zwischen der E/A-Anschlußeinheit und einer E/A-Einheit über ein Kennzeichen-Eingabe-Register 40 und ein Kennzeichen-Ausgabe-Register 41 übertragen. Daten werden vom Hauptspeicher über Register 42 und 43 für die abgehende und ankommende Sammelleitung übertragen. Die E/A-Anschlußeinhcit 16 enthalt vier Assoziativspeicher. Sie arbeitet als eine von der Prozessor-Anschlußeinheit 15, dem Prozessor und dem Hauptspeicher unabhängige Einheit mit eigener Ablaufsteuerung, obwohl diese Anschlußeinheit mit dem Hauptspeicher verbunden werden muß, wenn eine
ίο Datenübertragung erfolgt.
Der K-Speicher (Koordinations-Speicher) hat zwei Hauptfunktionen, nämlich erstens sich selbst und die anderen Speicher der Anschlußeinheit zu steuern und zweitens Steuersignale mit einer E/A-Einheit auszutausehen. Der Klarheit halber sind die Decodierer in F i g. 3, die die Steuersignale interpretieren und Treibersignale für die entsprechenden Assoziativspeicher erzeugen, als ein Block dargestellt, nämlich als Kanaldecodierer 44. In der Praxis hat jeder Speicher seinen eigenen Decodierer. E/A-l des Koordinations-Speichers hat ein Schlüsselfeld 45 mit E/A-2 gemeinsam und ein Feld 46, welches an den D-Speicher angeschlossen ist. Außer dem Schlüsselfeld 45 verfügt E/A-2 über ein Bytezählfeld 47, welches an den Z-Speicher angeschlossen ist, ein Nächste-Adresse-Feld 48, welches an das Schlüsselfeld 45 angeschlossen ist, und die Schlüsselfelder 49 und 50 für den Λ-Speicher bzw. den Z-Speicher. Als nächstes kommt eine Gruppe von Feldern, die an den Kanaldecodierer 44 angeschlossen sind und zum mindesten teilweise die durch andere Teile der Anschlußeinheit und den Hauptspeicher auszuführenden Operationen bestimmen. Das Feld 51 steuert den Hauptspeicher, Feld 52 den Pufferspeicher P und Feld 53 den Zählspeicher Z, den Adreßspeicher A und den Koordinationsspekher K. Feld 54 ist ein Bit groß und dient dazu, den Inhalt des Sammelleitungs-Registers 43 weiterzuleiten. Feld 55 ist an den /4-Speicher angeschlossen, und Feld 56 wird dazu benutzt, den Inhalt des Kennzeichen-Ausgabe-Registers 41 weiterzuleiien.
Feld 57 ist das Kennzeichen-Ausgabe-Feld, welches mit dem Kennzeichen-Ausgabe-Register 41 verbunden ist, und Feld 58 ist das Kennzeichen-Eingabe-Feld: es empfängt Daten vom Kennzeichen-Eingabe-Regisier 40. Feld 59 ist mit dem Z-Speicher verbunden.
Wie bereits gesagt, besteht eine Funktion des K-Speichers darin, Steuersignale mit einer E/A-Einheit auszutauschen. Zur Übernahme dieser Funktion enthält der /(-Speicher eine Funktionstabelle, in welcher die Antworten des Kanals an die E/A-Einheit gespeichert werden. Signale vom Kanal liefern ein SuQhargument zur Adressierung der Tabelle in das Kennzeichen-Eingabe-Feld 58, nachdem sie im Kennzeichen-Eingabe-Register 40 festgehalten worden sind. Die auf Grund des Suchargumentes aus der Tabelle in das Kennzeichen· Ausgabe-Feld 57 gelesenen Daten werden im Kennzei· chen-Ausgabe-Register 41 festgehalten und den peri pheren Einheiten zur Verfügung gestellt, wenn eir Einerbit im Feld 56 steht. Eine dritte wichtige Funktior des AC-Speichers besteht darin, eine Zählung dei Datenbytes im P-Speicher vorzunehmen. Der laufend! Zählstand ist im Feld 47 des Registers E/A-2 de K-Speichers festgehalten.
Der Z-Speicher oder Zählspeicher hat die Funktior die Anzahl der Datenbytes festzuhalten, die zwischei einer peripheren Einheit und dem Hauptspeiche übertragen wurden. Für eine Übertragungsoperatio wird die Adresse des ersten zu übertragende Datenbytes und die Anzahl der zu übertragende
Datenbytes angegeben. Diese Λη/.ahl wird im Z-Speicher festgehalten und mit fortschreitender Übertragung herunterge/.ählt. Es wird ein Signal abgegeben, wenn der Zählerstand im Z-Speicher gleich Null ist, und auch wenn der Zählerstand in Z gleich der Pufferbytezahl im TeId 47 des /(-Speichers ist. Die beiden E/A-Register des Z-Speichers haben ein vom Feld 50 des /(-Speichers gespeistes Schlüsselfcld 60 gemeinsam und ein Steuerfeld 61, welches dem Z-Speicher die Möglichkeit der eigenen Ablaufsteuerung gibt, indem es vorschreibt, welches der beiden Eingabe/Ausgabe-Register im nächsten Speicherzyklus zu benutzen ist. Feld 61 ist mit dem Kanaldecodierer 44 verbunden. Die übrigen Felder des Registers E/A-l mit den Bezeichnungen 62 bis 64 werden zum Herunterzählen benutzt und später beschrieben. Das Register E/A-2 des Z-Speichers weist außer den Feldern 60 und 61 ein Feld 65 auf, welches mit dem Feld 59 des /(-Speichers verbunden ist: ein Feld 66, welches an das Pufferbytezählfcld 47 des /(-Speichers angeschlossen ist; und die Felder 67 bis 69 für das I lerunterzählen. Die Felder 63 und 64 sind mit dem Feld 67 und die Felder 68 und 69 mit dem Feld 62 und außerdem mit dem D-Speicher verbunden. Ein Bit des Feldes 66 ist an den Kanaldecodierer 44 angeschlossen.
Der A-Speichcr oder Adreßspeicher dient zur Erstellung der im Hauptspeicher zu benutzenden Adresse. Die Anfangsadresse muß erhöht oder erniedrigt werden, abhängig davon, ob es sich um eine Vorwärts- oder Rückwärts-Leseoperation handelt. Der /t-Speicher ist ähnlieh organisiert wie der Z-Speicher; sie unterscheiden sich lediglich in der Größe:. Die Eingabe/Ausgabe-Register haben ein Schlüsselfeld 70 und ein Steuerfeld 71 gemeinsam. Das Schlüsselfeld wird vom /(-Speicher gespeist. Das Steuerfeld teilt dem Decodierer 44 mit, welches E/A-Register im nächsten Speicherzyklus zu benutzen ist. E/A-l hat die Felder 72 bis 75 und E/A-2 die Felder 76 bis 79. die alle zum Herauf- oder Herunterzählen benutzt werden. Die Felder 73 bis 75 sind an das Feld 76, das SAR und den D-Speicher angeschlossen. Die Felder 77 bis 79 sind mit dem Feld 72 und dem SAR verbunden.
Der P-Speicher dient als Puffer zwischen der peripheren Einheit und dem Hauptspeicher, oder genauer gesagt, zwischen den Sammelleitungs-Registern 43 einerseits und dem SDR 14 andererseits. E/A-1 hat die Felder 80 und 81, die an das SDR und den D-Speicher angeschlossen sind. E/A-2 hat die Felder 82 und 83, die an den D-Speieher und die Register 42 und 43 für die abgehende und die ankommende Sammelleitung angeschlossen sind. Außerdem weist E/A-2 ein Steuerfeld 84 auf, mit welchem der Inhalt des Registers 42 auf die periphere Einheit weitergeleitet wird. Im P-Speicher werden die zwei Merker (der erste und der zweiile), die jedem Wortregister zur Verfugung stehen, voll ausgenutzt. Datenbytes werden im P-Speicher als eine Liste gespeichert, die aufeinanderfolgende Wortregister des Speichers belegt. Ein gesetzter erster Merker miarkiert das Ende der Liste, d. h. die nächste Position, die zum Speichern eines Datenbytes zur Verfugung steht, und ein gesetzter zweiter Merker markiert den Anfang der Liste, d. h. die nächste aus dem P-Speicher zu lesende Position. Um die Liste zusammenhängend zu machen, wird der P-Speicher so modifiziert, daß erster und zweiter Merker des unteren Wortregisters (bezogen auf F i g. 4) mit dem ersten und zweiten Merker des oberen Wortregisters verbunden sind, so daß die durch die Merker gebildeten Schieberegister zu zyklischen Schieberegistern werden.
Wenn Daten von einer E/A-Einheit zum Hauptspeicher übertragen werden, werden sie byteweise in das Sammclleitungsregister 43 und von dort in die beiden Felder 82 und 83 des Registers E/A-2 und an das Ende der im P-Speicher gespeicherten Liste eingeschrieben. Die Übertragung zum SDR 14 kann von einem der beiden Felder 80 oder 81 des Registers E/A-l erfolgen. Diese Anordnung erspart einen Überkreuzungsweg zwischen dem SDR und dem P-Speicher, der sonst beim Rückwärtslesen oder bei der Übertragung einzelner Bytes nötig wäre, wenn ein Hauptspeicher-Halbwort zwei Bytes enthält.
Wenn Daten vom Hauptspeicher an die E/A-Einheit übertragen werden, wird ein Datenbyte vom SDR in jedes Wortregister gespeichert. Aufeinanderfolgende Bytes wechseln zwischen den Feldern 80 und 81 des Registers E/A-l ab, und die Maske wird bei der Leseoperation nach E/A-2 so abgewechselt, daß die Felder 82 und 83 abwechselnd nacheinander in das Register 42 gelesen werden. Da unter bestimmten Umständen die Maske nicht abgewechselt werden soll, wird ein zusätzliches Bit in jedem Datenbyte vorgesehen, welches auf den Operationsdecodierer des P-Speichers geleitet wird, um festzustellen, welche Maske im nächsten Speicherzyklus zu verwenden ist. Diese Einrichtung ist in F i g. 3 nicht gezeigt.
Die Kapazität des Puffers ist im vorliegenden Ausführungsbeispiel 16 Bytes.
Eine wichtige Funktion der E/A-Anschlußeinheit ist das Herauf- oder Herunterzählen von Zahlen. Es sind Verfahren bekannt, die hierfür mehrere Speicherzyklcn benötigen. Ein Selektorkanal erfordert jedoch eine solche Geschwindigkeit, daß das Herauf- oder Herunterzählen nur einen Zyklus belegen darf. Die Operation des /4-Speichers ist ähnlich wie die des Z-Speichers, und der zuerst genannte wird jetzt als Beispiel für beide Speicher beschrieben.
Fig.4 zeigt den Inhalt des 4-Speichers. Leerstellen bedeuten Speicherzellen im .Y-Zustand (weder Null noch Eins. d. h. ohne Einfluß bei einem Assoziativ-Suchvorgang). Um Platz zu sparen, ist nicht der gesamte Inhalt des Speichers dargestellt. Von der Tabelle zum Herauf- und Herunterzählen ist nur der Teil gezeigt, der zur Wiedergabe des Bitmusters der Tabelle ausreicht. Die Register E/A-l und E/A-2 sind in vereinfachter Form gezeigt, wobei die Felder wie in Fig. 3 bezeichnet sind. Die Felder 73 bis 75 sind mit Feld 76 und die Felder 77 bis 79 mit Feld 72 verbunden.
Der Aufbau der Inkrement/Dekrement-Tabelle, aucd Tabelle zum Herauf- und Herunterzählen genannt, gehl aus den vier mit der Nummer 100 bezeichneten Wörterr hervor. Feld 73 ist das Ergebnisfeld und erhält eir Ergebnisbit von »1« in der vierten Stelle eines neun Bn großen Resultates. Die übrigen Positionen des Feldes 7: werden mit Zellen im X-Zustand gefüllt, die als binär« Nullen gelesen werden. Feld 74 enthält die viei Bedingungen, unter denen bei einer Inkrementopera tion ein Einerbit in die vierte Bitposition gesetzt werder soll. Sie besagen, daß Einsen in den ersten dre Bitpositionen und eine Null in der vierten Bitpositior oder daß eine Eins in der vierten Bitposition unc mindestens eine Null in den niedrigeren Positionei stehen müssen. Wenn keine dieser Bedingungen erfüll ist. wird keine der mit der Zahl 100 bezeichnetet Leitungen zum Auslesen gewählt, so daß die vierti Position des E/A-l-Feldes 73 (oder Feld 77) am Endi eines Speicherzyklus Suchen/Lesen eine Null enthäli Feld 75 enthält die Bedingungen für ein Einerbit in de
509 543/21
10
vierten Position während einer Dekrenienu>per;iiion. Wenn wiederum keine der Bedingungen erfüllt wird, erscheint eine Null in der vierten Position des Ergebnisses.
Der /4-Speieher dient dazu, eine 18 Bit lange Hauptspeicheradresse zu erhöhen oder (bei einer Rückwärts-Leseoperation) zu vermindern, jede Adresse wird in zwei Teile aus neun Bits geteilt, die in der Beschreibung mit hoher und niedriger Teil bezeichnet werden. Die Operation des /4-Speichers wird gesteuert durch ein drei Bit großes Feld, von dem zwei Bits vom IC-Speicher und das dritte Bit vom Feld 70 des M-Speichers selbst gespeist werden. Außer der Bestimmung des Schlüssels und der Operation wählt das Steuerfeld die in den beiden Phasen eines Speicherzyklus zu verwendenden Masken. Wenn das Feld 70 eine 1 enthält, wird E/A-1 für die Eingabe und die Ausgabe verwendet, sonst E/A-2.
Die durch das Steuerfeld auswählbaren Operationen sind folgende (das äußerste linke Bit kommt vom Feld 70):
000 Suchen über den Feldern 76,79 und 71.
Lesen über den Feldern 76,79 und 71. Im Feld 76 werden der hohe Teil und im Feld 79 der niedrige Teil der Adresse unverändert in E/A-2 erhalten. 100 Suchen über den Feldern 72,75 und 71.
Lesen über den Feldern 72,75 und 71. Im Feld 72 werden der hohe Teil und im Feld 75 der niedrige Teil der Adresse unverändert in E/A-l erhalten. 010 Suchen über den Feldern 70. 76 und 79.
Lesen über den Feldern 76,77 und 71. Der hohe Teil wird im Feld 72 festgehalten, und der niedrige Teil um »1« dekrementiert durch Suchen über dem Feld 70.
Wenn die Überirags-Voraussagcleitung mit dem Schlüssel 10 gewählt wird, bedeutet das, daß der hohe Teil dekrementiert werden muß, und eine »1« wird in das Feld 71 gegeben und dadurch der Inhalt des E/A-Registers verändert.
110 Suchen über den Feldern 70.72 und 75.
Lesen über den Feldern 72.73 und 71. Dieser Vorgang resultiert aus der vorhergehenden Operation. Da die Felder 75 und 76 miteinander verbunden sind, wird der hohe Teil dekrementiert und das wertniedrigere Byte mit Einsen gefüllt. 001 Suchen über den Feldern 70.76 und 78.
Lesen über den Feldern 76, 77 und 71. Der hohe Teil wird aufrechterhalten, während der niedrige Teil inkrementiert wird. Wenn die Übertrags-Voraussageleitung mit einem Schlüssel 01 gewählt wird, wird dadurch ein Übertrag in den hohen Teil vorausgesagt, und das Feld 71 ist gleich 1, wodurch der Inhalt des verwendeten E/A-Registers verändert wird. 101 Suchen über den Feldern 70 und 74.
Lesen über Feld 77.
Der hohe Teil wird um »1« inkrementiert. da die Felder 76 und 74 miteinander verbunden sind.
Die Byte-Anzahl und die Adresse sind in dem Kanalsteuerwort (CCW) enthalten, welches die vom Kanal auszuführende Eingabe/Ausgabe-Operation steuert. Sie werden am Anfang in den D-Speicher übertragen, und von dort wird die Zahl in den ,4-Speicher übertragen, wobei der hohe Teil in das richtige Feld durch die Schiebetabelle verschober wird.
Art benutzt.
Die E/A-Operation wird eingeleitet durch eine Sturt-E/A-Insmiktion (SIO), welche die betroffene E/A-Einheit angibt und zur Wahl eines Kanalsleuerworles (CCW) vom Hauptspeicher führt, welches die auszuführende Operation und die /u verwendenden t iauplspeicheradressen angibt.
Ein CTVV umfaßt einen Operationsteil, der die auszuführende Operation — /. B. vorwärts oder ίο rückwärts Lesen oder Schreiben — angibt, eine Datenadresse, die die Position des ersten gewünschten Bytes im Hauptspeicher darstellt, das zu adressieren ist. fünf Kennzeichen sowie eine Zahl, die die Anzahl von Bytestellen im Hauptspeicherbereich angibt, die in der Operation zu benutzen sind. Die Kennzeichen sind unier anderem: ein Datenverkettungszeichen (CD), welches im Einerzustand anzeigt, daß die durch dieses Kanalkommandowort CCW definierte Operation mit dem Datenbereich des Hauptspeichers weiterzuführen ist, der durch ein weiteres CC'W definiert ist: ein Kommandovcrkettungszeichen (CC), welches im Einerzustand und bei Null-Zustand des Datcnverkettungs-Kennzeichens die Einleitung einer durch ein weiteres CCVV angegebenen Operation auf derselben E/A-Einheit veranlaßt. Die Datenverkcttung wird für Operationen mit nicht nebcneinanderliegenden Datenbereichen benutzt; die Kommandoverkettung erübrigt die Neuadressierung einer E/A-Einheit am Ende einer joden Operation, welche eine Reihe von Operationen auf derselben Einheit auszuführen ist. Eine weitere Operation, die durch ein CCW vorgeschrieben sein kann, ist eine Steueroperation. Dazu gehört die Datenübertragung von angegebenen Hauptspeicheradressen an die periphere Einheit, die dann die Daten als SiciierinformiMionen interpretiert, die /.. B. eine Platteneinheil beauftragen, einen Magnetkopf auf eine gegebene Spur zu setzen oder einer Magnetbandeinheit befehlen, da? Band zurückzuspulen oder um einen bestimmter Abstand zurückzusetzen. Der Kanal behandelt eine Steueroperation wie eine Schreiboperation, so daß siel" eine besondere Beschreibung erübrigt. Eine weitere möglicherweise angeforderte Operation ist eine Abfrageoperation, durch die die CPU den momentaner Zustand einer E/A-Einheit erfährt. Der Kanal behandcl eine Abfrageoperation wie eine Leseoperation, da da: den Zustand der E/A-Einheit beschreibende Byte füi den Kanal wie ein Datenbyte aussieht.
Jede Operation beginnt mit einem Austausch voi Steuersignalen, um eine Verbindung mit der angeforder ten E/A-Einheit herzustellen. Diese Steuersignal! benutzen die Kennzeichen-Eingabe- und Kennzeichen Ausgabe-Register 4i und 40. Die Antworten des Kanal sind bestimmt durch eine Funktionstabelle, die in /C-Speicher gespeichert ist und durch ein Suchargumen adressiert wird, welches die im Kennzeichen-Eingabe Register 40 festgehaltenen Signale von der F./A-Einhei umfaßt, die auf das Feld 58 des K-Speichers gegebei werden. Adreß- und Kommandodaten werden in da Sammelleitung«,-Register 42 vom D-Speichcr über de ta P-Speicher übertragen. Abhängig vom jeweilige Kommando führt der Kanal dann einen Lesevorgan oder einen Schreibvorgang oder einen Rückwärts-Lesc Vorgang aus. Die in den einzelnen Schritten beschriebe nen Vorgänge unterscheiden sich etwas dadurch, da
während der niedrige Teil durch Suchen und Lesen in 65 jeweils entweder nur ein Byte oder aber zwei Bytesode
der Dekrementiertabelle festgehalten wird. Eine separa- ein Halbwort zu und von dem Hauptspeicher übertrs
te Leitung wird für die Übertragung der beiden Teile gen werden. Eine normale .Speicheroperation besteht i
der 16 Bit großen Zahl in den Z-Speicher in derselben der Übertragung von zwei Byte:., was bedeutet, daß di
Speicheradresse, die Adresse des /u übertragenden wertniederen Bytes, normalerweise gerade ist. Wenn die Speicheradresse ungerade ist oder die l.ängenangabe »eins« betragt, wird dadurch gesagt, dall nur ein Byte in den oder aus dem Hauptspeicher zu übertragen ist, und dadurch erkannt, daß die Verarbeitung für nur ein Datenbyte angefordert ist.
l.esevorgang
K-Spcicher. Sdlrm '
Die Pufferbytezahl (anfangs Null) wird beibehalten. Wenn ein Bedienungsanforderungssignal im Feld 58 festgestellt wird, wird das Antwortsignal »Bedienung aus« auf das Kennzeichen-Ausgabe-Register 41 gesendet und durch das leid 56 auf die E/A-F.inheit geleitet. Wenn die Daten von der peripheren Einheit übertragen werden, ist das Signal »Bedienung ein« begleitet vom Signal »Operation ein«. Die Feststellung dieser Signalkombination durch den /C-Speicher führt zur Abgabe einer Eins aus dem Feld 54, um die Daten im Sammelleilungs-Register 43 festzuhalten.
■A-Spcicher.
Die Datenadresse wird um 1 erhöht.
Z-Spcicher.
Der Zählwert wird beibehalten und geprüft. Ist er Null, werden die Sieuerdaien vom Feld 65 in den K'-Speicher und den /^Speicher übertragen, um die Operation zu beenden.
/'-Speicher.
Keine Operation.
Die Durchführung des ersten Schrittes ist davon abhängig, ob der AC-Spcichcr das Signal »Bedienung ein« erhält. Bis es eintrifft, führen die Speicher keine Operation aus, wobei der /i-Speicher in Zyklen über ein l.esefeld lauft, welches das Feld 58 umfaßt.
Schritt 2
K'-Speieher.
Die Pufferbytezahl wird um 1 erhöht und mit einer Prüfung festgestellt, ob die Verarbeitung von ein oder zwei Datenbytes gefordert wird.
/\-Speicher.
Die Datenadres.se wird beibehalten.
Z-Speicher.
Der Zählwert wird beibehalten.
P-Speicher.
Mit der Operation Nächste/Schreibcn/Primär wird der Inhalt des Samnielleitungs-Registers 43 in den Pufferspeicher geschrieben.
Wenn eine Ubertragungsanforderung für zwei Datenbytes festgestellt wird und die Pufferbytezahl kleiner als 2 ist, wird zum Schritt 1 zurückgeganger., um das andere Datenbyte /u erhalten. Nach einer Wiederholung des Schrittes 1 folgt eine Wiederholung des Schrittes 2 zur Übertragung des empfangenen Bytes in den P-Speicher.
Schritt 3 (Übertragung von zwei Datenbytes}
A'-Speicher.
Die Pufferbytezahl wird um 1 erhöht. Das Signal »Bedienung ein« wird überwacht, indem Feld 58 in das Suchfeld eingeschlossen wird, so daß das Signal »Bedienung aus« beendet werden kann, sobald das Signal »Bedienung ein<: aufhört. Dadurch wird die periphere Einheit zur Übertragung des nächsten Signals im Auslausch freigegeben.
A-Speicher.
Die Adresse wird beibehalten. Z-Speicher.
[5er Zählwcrl wird um 1 heruntergesetzt. /'-Speicher.
> Mil der Operation Nächste/Lesen/Sekundär wird
ein Byte aus dem /'-Speicher in das SDR gelesen.
Schritt 4 (Übertragung von zwei Datenbytes)
Schritt 3 wird wiederholt, jedoch teilt der Α,'-Speicher ίο dem Hauptspeicher zusätzlich mit, daß eine Schreiboperation mit dem Inhalt des SDR erfolgen kann, welches jetzt die beiden Datenbyles enthält. Die Schreiboperation des Hauptspeichers erfolgt jedoch während des Schrittes 1 des Lesevorgangs.
'5 Schritt 3 (Übertragung von einem Datenbyte)
/v-Speicher.
Die Pufferbytezahl wird um 1 herabgesetzt. Das Signal »Bedienung ein« wird überwacht. Λ-Speichcr.
Die Adresse wird beibehalten. Z-Speicher.
Der Zählwen wird um 1 herabgesetzt. /'-Speicher.
Mit der Operation Nächste/Lesen/Sekundär wird
ein Byte aus dem P-Speicher in das SDR gelesen. Dem Hauptspeicher wird mitgeteilt, daß im SDR ein Byte zum Schreiben in den Hauptspeicher bereitsteht.
Ungeachtet dessen, ob ein oder zwei Datenbytes übertragen wurden, wird Schritt 1 jetzt wiederholt, und in den Hauptspeicher werden die Daten aus dem SDR eingeschrieben. Die Schleife wird erst nach Beendigung des Schrittes 1 verlassen. Bei Feststellung des Zählwertes 0 stoppi der Selektorkanal die Leseopcration. Wenn die Pufferbytezahl gleich der Längenangabe ist. wird ein Signal für das Ende der Datenübertragung von der E/A-Einheit abgegeben. Ohne Datenverkettung wird durch Feststellung dieser Bedingung im Z-Speicher die Änderung des Suchargumemes für den Ai-Speicher veranlaßt, so daß letzterer beim Beginn des Signals »Bedienung ein« antwortet mit »Kommando aus«. Wenn Datenvet kettung vorgeschrieben wurde, gibt der Z-Speicher ein Signal an den D-Speicher, der dann das nächste CCH7 abruft. In der Zwischenzeit wurde das Signal »Bedienung ein« mit »Bedienung aus« beantwortet, so daß die E/A-Einheit weiter Daten an den Kanal übertragen kann.
Schreibvorgang
Der Schreibvorgang läuft ähnlich ab wie der Lesevorgang und wird daher nicht im Detail beschrieben. Wie bereits gesagt, arbeitet die Datenübertragung vom SDR auf den P-Speicher mit der Operation Nächste/Lesen/Sekundär. Auf Datenverkettung wird während eines Schreibvorgangs geprüft, wenn dei Zählwert gleich oder kleiner als 16 (Kapazität de* P-Spcichers) ist. Wenn keine Datenverkettung erforder lieh ist, läuft die Operation weiter, bis der Z-Spcicher die Bedingung »Zählwerl = 0« feststellt. Wenn dei P-Speicher ieer ist, wird das Signal »Kommando aus< durch den Ai-Speicher abgegeben, und die Datenüber tragung wird beendet. Wenn Datenverkettung gefor deri ist, wird das nächste CCW in den D-Speiche übertragen, während die gegenwärtig im Kanc befindlichen Daten an die periphere Einheit übertrage werden. Wenn »Zählwert = 0« festgestellt wird, werde die Daten auf die Speicher Z, ,4 und κ verteilt. Ei
Kennzeichen »Verkettungs-renze« wird in die Speicherstelle des Puffers eingeschrieben, welche das letzte Datenbyte enthält, das durch das laufende CCW angegeben wurde. Es kann passieren, daß die Datenübertragung beendet wird, wenn zwar der Zählwcrt = ist, jedoch bevor alle zu einem CCM/gehörenden Daten aua dem Puffer übertragen wurden. Das Verkettungsgrenzzeiehen gestattei es, die verbleibenden Bytes /u zählen.
Ein Rückwärts-Lesevorgang unterscheidet sich von dem oben beschriebenen Lesevorgang dadurch, daß die Datenadresse herabgesetzt und nicht heraufgesetzt wird. Die Bedingungen für die Übertragung von ein und zwei Datenbytes sind auch etwas anders.
Um die Geschwindigkeit der Datenübertragung zu erhöhen, kann der in den Fig. 2 und 3 gezeigte Selektorkanal etwas modifizier» werden. Eine erste Modifikation betrifft den Austausch der Signale »Bedienung ein« und »Bedienung aus« wahrend eines Lesevorgangs. Der /(-Speicher überwacht nicht kontinuierlich die Leitung mit dem Signal »Bedienung ein«, prüft jedoch die Leitung jedesmal am Anfang der ersten Phase eines Speicherzyklus. Das Signal »Bedienung ein« wird nach der Übertragung eines jeden Datenbyte beendet, und anschließend muß auch das Signal »Bedienung aus« enden. In ähnlicher Weise muß das Signal »Bedienung aus« beginnen, wenn das Signal »Bedienung ein« beginnt, um die Übertragung eines Datenbytes an den Kanal zu signalisieren. Das Signal Bedienung ein<< wird festgestellt am Anfang eines Zyklus 1 (normalerweise Schritt 1) eines Lesevorgangs, und das Signal »Bedienung aus« wird am Finde des Zyklus 1 übertragen. Der frühcste Zeitpunkt an dem das Ende des Signals »Bedienung ein« festgestellt werden kann, ist der Beginn des Zyklus 3, da dieses Signal durch die Verzögerungen infolge Übertragungs- und Schaltvorgängen erst am Anfang des zweiten Zyklus nach Prüfen der Leitung aufhören kann. Am Ende des dritten Zyklus endet das Signal »Bedienung aus«, und wiederum kann der folgende Beginn des Signals »Bedienung ein« erst am Anfang des fünften Zyklus festgestellt werden.
Die Verzögerungen können ausgeschaltet werden, indem man zwei bistabile Schaltungsanordnungen für die kontinuierliche Überwachung der Leitung für das Signal »Bedienung ein« vorsieht. Ein Beispiel ist ir. F i g. 5 gezeigt. Die erste bistabile Anordnung 101 enthält die UND-Glieder 102 und 103. deren Ausgangssignale den Eingängen des ODER-Gliedes 104 zugeführt werden. Ein Signal auf der Leitung 105 für »Bedienung ein« stellt je einen Eingang für die UND-Glieder 102 und 103 dar; auf diese- Leitung gibt die periphere Einheit das Signal »Bedienung ein« ab. Der Ausgang 106 des ODER-Gliedes 104 gibt das Signal »Bedienung aus« an die periphere Einheit ab. Außerdem ist diese Leitung mit dem zweiten Eingang des UND-Gliedes 103 verbunden. Die zweite bistabile Anordnung 107 enthält ein ODER-Glied 108, dessen Ausgang als ein Eingang an das UND-Glied 109 geführt ist. Die Inverter HO und Ul sind in Reihe an den Ausgang des ODER-Gliedes 108 angeschlossen. Der mittlere Verbindungspunkt der Inverter ist als Eingang 112 an das UND-Glied 102 angeschlossen. Der zweite Eingang 114 des UND-Gliedes 109 ist über einen Inverter mit dem Feld 54 des K-Speichers (Fig. 3) verbunden, welches die Datenübertragung vom Sammelleitungs-Register 43 auf den P-Speichcr steuert.
Zunächst ist das Signal auf der Leitung 112 aktiv und bereitet die bistabile Anordnung 101 so vor, daß sie durch das Erscheinen des Signals »Bedienung ein« auf der Leitung 105 gesetzt werden kann. Das Antwortsignal »Bedienung aus« wird durch ein ODER-Glied Ί04 auf die Leitung 106 gegeben, wodurch außerdem die bistabile Anordnung 107 gesetzt wird. Das resultierende Ausgangssignal auf der Leitung 113 wird dem Ai-Speicher zugeführt, um den Empfang des Signals »Bedienung ein« zu signalisieren. Wenn das Signal »Bedienung ein« aufhört, wird die bistabile Anordnung 101 zurückgestellt, und das Signal »Bedienung aus« auf der Leitung 106 fällt schnell ab. Die bistabile Anordnung 107 bleib! gesetzt, bis der Eingang 114 zum UN D-Glied 109 inaktiv wird auf Grund eines Bits im Feld 54 des K-Registcrs, welches den Inhalt des Sammelleitungs-Registers 43 in den P-Speicher leitet. Die bistabile Anordnung 101 kann durch ein neues »Bedienung ein«- Signal auf der Leitung 105 nur gesetzt werden, nachdem die bistabile Anordnung 507 durch die Übertragung de^ empfangenen Byte auf den P-Spcicher zurückgestellt wurde. Diese Anordnung ersetzt einen Teil der Tabelle im AC-Speicher und schaltet die beiden Zyklen aus. di: gemäß obiger Beschreibung durch die zyklische Prüfung der Leitung, die das Signal »Bedienung ein« führ:, vergeudet wurden.
Zur Leseoperation gehört die byteweise Datenübertragung von P-Speicher auf das SDR, da jedes Wort des P-Speichers nur ein Datenbyte enthält. Wenn die oben beschriebenen bistabilen Anordnungen benutzt werden, ist eine andere Konstruktion des P-Spcichers möglich, um die Übertragung von zwei Bytes in einem Speicherzyklus zu ermöglichen. Ohne die bistabilen Anordnungen kann die zu beschreibende Speicher-Konstruktion auch benutzt werden. Man spart dann jedoch keine Speicherzyklcn im Gesamtlcsevorgang, da die durch die Konstruktion einsparbaren Zyklen d;i/u benutzt werden, auf den Beginn und das F.nde des Signals »Bedienung ein« zu warten.
Die spezielle Speicherkonstruktion ist in F i g. 6 gt.-:'cii.'t. Der P-SpeicliL·'· ist durch zwei Pufferspeicher PI und P2 ersetz; worden. Jedes Wort eines jeden Speichers enthält ein Datenbyte in doppelter Ausführung. Aufeinanderfolgende Bytes 1, 2, 3 ... werden abwechselnd in den Speichern PI und P2 gespeichert. Aus jedem der beiden Speicher wird je ein ausgewähltes Byte gleichzeitig gelesen, und zwar je ein Byte in je eine Hälfte des SDR: Jeder der Speicher PI und P2 in Standardform hat seine eigenen Merker, so daß die in das SDR gelesenen Bytes nicht unbedingt voneinander entsprechenden Wortregistern der Speicher kommen müssen. Das Datenbyte 1 kann z. B. bei Übertragung eines einzelnen Datenbytes in die geforderte Hälfte des SDR gelesen werden. Wenn die Bytes 2 und 3 für eine Zwei-Byte-Übertragung gelesen werden, wird die Operation Nächste/Lesen gleichzeitig in den Speichern Pl und P2 ausgeführt, und es wird das Byte 3 vorr Speicher PI und das Byte 2 vom Speicher P2 gelesen obwohl es sich nicht um entsprechende Wortregister ir den beiden Speichern handelt. Fig.6 zeigt außerden die Verbindung zwischen den Speichern P1 und P 2, da: Register 42 für die abgehende Sammelleitung und da: Register 43 für die ankommende Sammelleitung.
Die Benutzung der beschriebenen bistabilen Anord nungen zusammen mit dem aus zwei parallelei Teilspeichern bestehenden Pufferspeicher kann di Anzahl von Speicherzyklen für einen typische Lesevorgang von acht auf fünf reduzieren Es wurde ei E/A-Kanal beschrieben, der unabhängig voneinande arbeitende Funktionseinheiten enthält, von denen ein
■ine Anschlußeinheit zwischen Kanal und Prozessor •ines Datenverarbeitungssystems bildet, und die andere »ine Anschlußeinheit zwischen Kanal und den E/A-Einheiten Die Prozessor-Anschlußeinheit setzt die Steuerdaten zusammen, während die E/A-Anschlußeinheit mit der Übertragung von Daten oder Steuerinformationen zwischen dem Hauptspeicher des Systems und einer angewählten E/A-Einheit beschäftigt ist. Der Kanal ist aus Assoziativspeichern aufgebaut, und Operationen werden durch Tabellensuchvorgänge in Funktionstabel-
len ausgeführt.
In einer anderen Anordnung braucht es sich bei dem Steuerspeicher der Prozessor-Anschlußeinheit nicht um einen veränderlichen Assoziativspeicher zu handeln, es
kann auch ein konventioneller assoziativ adressierter Festwertspeicher sein. Der P-Speicher kann außerdem ersetzt werden durch einen konventionell adressierten Pufferspeicher, wobei der K-Speicher so modifiziert wird, daß er die Adressen der ersten und letzten
Datenbytes im P-Speicher festhält und fortschreib'.
Hierzu 4 Blatt Zeichnungen

Claims (21)

21 30 2S9 Patentansprüche:
1. Eingabe/Ausgabekanal für eine Datenverarbeitungsanlage mit Prozessoren, Hauptspeicher und Ein- und Ausgabeeinheiten, dadurch gekennzeichnet, daß der Eingabe-ZAusgabekanal (10) eine Prozessor-Anschlußeinheit (15) und eine Eingabe-/Ausgabe-Anschlußeinheit (16) enthält, wobei beide sowohl eingangsseitig als auch ausgangsseitig mit dem Speicherdatenregistjr (14) des Hauptspeichers (11) verbunden sind, daß beide Anschlußeinheiten zur Übertragung von Steuerdaten aus der Prozessor-Anschlußeinheit (15) und zur Übermittlung von Daten miteinander verbunden sind und daß die Eingabe-/Ausgabe-Aiischlußeinhe;t (16) mit dem Hauptspeicher (11) über dessen SpeicherudreSregister (13) und mit den periphercn Eingabe-/Ausgabetfinheiien zur Übertragung von Daten /wischen dem Hauptspeicher (11) und den peripheren Eingabe-/ Ausgabeeinheiten verbunden ist und daß jeweils die Steuerdaten für den nächsten DatPnübertragungsvorgang in der Prozessoranschlußeinheit (15) zusammengestellt werden, während der laufende Datenübertragungsvorgang mit Hilfe der Eingabe-/ Ausgabe-Anschlußeinheil (16) erfolgt.
2. Eingabe-/Ausgabekanal nach Patentanspruch 1. dadurch gekennzeichnet, daß die Prozessor-Anschlußeinheit einen Assoziativspeicher als Datenspeicher (D) enthält, in welchem die vom Prozessor gelieferten Steuerdaten zusammengestellt werden sowie einen Steuerspeicher (Sj für Mikroinstruktionen zur Steuerung des Betriebs des Datenspeichers (D).
3. Eingabc-/Ausgabekanal nach Patentanspruch 2. dadurch gekennzeichnet, daß der Steuerspeicher (S) ein Assoziativspeicher ist.
4. Eingabc-/Ausgabekanal n;;ch den Patentansprüchen 1 bis 3, dadurch gekennzeichnet, daß die Eingabe-/Ausgabe-Anschlußeinheit (16) einen Koordinationsspeieher (K) in Form eines Assoziativspeichers zur Speicherung von Funktionstabellen enthält, die zur Abgabe von Kanal-Antwortsignalen auf Grund von Steuersignalen aus Eingabe-ZAusgabcgeräten dienen.
5. Eingabe-ZAusgabekanal nach den Patentansprüchen 1 bis 4, dadurch gekennzeichnet, daß die Eingabe-ZAusgabe-Anschlußeinheit (16) einen assoziativen Adreßspeicher (A) enthält, durch den mit Hilfe gespeicherter Tabellen Hauptspeichcradressen modifiziert werden.
6. Eingabe-ZAusgabekanal nach den Patentansprüchen 1 bis 5, dadurch gekennzeichnet, daß die Eingabe-ZAusgabe-Anschlußeinheit (16) einen Assoziativspeicher als Pufferspeicher (Pjenthält.
7. Eingabe-ZAusgabekanal nach Patentanspruch 6, dadurch gekennzeichnet, daß zu jeder Wortspeicherstelle des Pufferspeichers (P) ein erster und ein zweiter Merker vorgesehen sind, derart, daß bei einer Wortspeicherstellc, in die zuletzt geschrieben wurde, jeweils der erste Merker und bei einer Wortspeicherstelle, aus der zuletzt gelesen wurde, jeweils der zweite Merker gesetzt wird.
Die Erfindung betrifft einen Eingabe-ZAusgabekanal gemäß Oberbegriff des Patentanspruchs!
Beim Entwurf von Datenübertragungskanalen achtet nun darauf daß der Kanal so unabhängig wie möglich vom Prozessor gemacht wird, so daß während der Prozessor Daten verarbeitet, andere Daten von Eingabegeräten hereingeholt oder an Ausgabegeräte abgegeben werden können.
So ist z.B. durch die deutsche Auslegeschrift 12 32 374 eine Zusammenschaltung einer Mehrzahl datenverarbeitender Maschinen bekanntgeworden, die dadurch gekennzeichnet ist. daß jede Ein" mgssehaltung Hilfsspeicher zur Aufnahme der die EingCangsinformationen bildenden Worte und eine Adresscnvergleichs-Einrichtung hat und. abhängig vom Ergebnis des Adressenvergleichs, entweder die Durchschaltung der Information zum Zwischenspeicher steuert oder, bei negativem Vergleichsergebnis, die Weiterleitung der ankommenden Information verhindert und die eigenen damit bereits angefüllten Hilfsspeicher löscht und daß jede Ausgangsschaltung Hilfsspeicher zur Aufnahme der die Ausgangsinformationen billieenden Worte und eine Prüfvorrichtung für die Prüfung der vollständigen Wortzahl und der Zulässigkeit der abgebenden Adresse hat und. abhängig von dem Prüferuebnis. die Durchschaltung der abzugebenden Information an den Übertragungskanal steuert oder, bei negativem Prüfergebnis, die Weiterleitung verhindert und die eigenen mit der nicht weiterzuleiienden Information angefüllten Zwischenspeicher sowie den Hilfsspeicher löscht.
Diese Datenübertragungssteucrimg hat jedoch den Nachteil, daß der Zentralprozessor für die Einleitung der Datenübertragung mitbenutzt wird, wodurch er für die eigentlichen internen Operationen blockiert wird.
Außerdem besteht ein wesentlicher Nachteil der bekannten Übertragungskanäle darin, daß sowohl für die Prozessoroperationen als auch für die Kanaloperationen nur ein gemeinsamer Steuerspeicher. der die Mikroprogramme für alle Operationen enthält, zur Verfügung steht.
Es wurde nun gefunden, daß die Kanalmikroprogranime relativ kurz, sind, d. h., sie bestehen zum größten Teil aus sechs Mikroinstruktionen. zu deren Durchführung jedesmal die Prozessoroperationen unterbrochen weiden müssen.
Der Erfindung liegt deshalb die Aufgabe zugrunde, einen Eingabe-/Ausgabekanal für Datenverarbeitungsanlagen zu schaffen, der mit einem Minimum an Steuerspeicheraufwand unabhängig vom Prozessor seine Mikroprogrammoperationen durchführt und ein überlapptes Arbeilen von Ein- und Ausgabegeräten und Prozessoren, die mit diesem Kanal verbunden sind, ermöglicht.
Die erfindungsgemäßc Lösung besteht im Kennzeichendes Patentanspruchs 1.
Der Vorteil für die mit dem Kanal verbundenen Anschlußeinheiten besteht vor allem darin, daß sie gleichzeitig und unabhängig voneinander arbeiten können, den Kanal entlasten und sowohl die Prozessoren als auch die Eingabc-ZAusgabeemheiten völlig von langwierigen Anpassungsoperationen und Synchronisieren freistellen.
Dies wird insbesondere technisch vorteilhaft bei Verwendung von Assoziativspeichern erreicht.
Ein Ausführungsbeispiel der Erfindung ist in den Zeichnungen dargestellt und wird im folgenden näher beschrieben.
Es zeigt
Fig.
I ein Blockdiagramm einer digitalen Datenvcr-
DE19712130299 1970-06-27 1971-06-18 Eingabe-/Ausgabekanal für eine Datenverarbeitungsanlage Expired DE2130299C3 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB3127870 1970-06-27

Publications (3)

Publication Number Publication Date
DE2130299A1 DE2130299A1 (de) 1972-01-05
DE2130299B2 true DE2130299B2 (de) 1975-10-23
DE2130299C3 DE2130299C3 (de) 1978-09-21

Family

ID=10320731

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19712130299 Expired DE2130299C3 (de) 1970-06-27 1971-06-18 Eingabe-/Ausgabekanal für eine Datenverarbeitungsanlage

Country Status (10)

Country Link
JP (1) JPS5118296B1 (de)
BE (1) BE766468A (de)
CA (1) CA935935A (de)
CH (1) CH526166A (de)
DE (1) DE2130299C3 (de)
ES (1) ES392443A1 (de)
FR (1) FR2095551A5 (de)
GB (1) GB1264096A (de)
NL (1) NL7108868A (de)
SE (1) SE360759B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2606295A1 (de) * 1976-02-17 1977-08-25 Siemens Ag Verfahren zum ausfuehren einer datenuebertragung zwischen peripheren einheiten und einem arbeitsspeicher ueber einen multiplexkanal

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2002936B (en) * 1977-08-04 1982-04-28 Honeywell Inf Systems Data transfer control systems
DE2845218C2 (de) * 1978-10-17 1986-03-27 Siemens Ag, 1000 Berlin Und 8000 Muenchen Mikroprogrammgesteuerte Ein-/Ausgabeeinrichtung und Verfahren zum Durchführen von Ein-/Ausgabeoperationen
EP0021489A1 (de) * 1979-06-08 1981-01-07 Koninklijke Philips Electronics N.V. Ein-/Ausgabekanal für ein schnelles Datenverarbeitungssystem
CA1162314A (en) * 1979-12-07 1984-02-14 Hideo Ota Data input/output method and system
AU555632B2 (en) * 1982-03-12 1986-10-02 Honeywell Information Systems Incorp. Multiplexing central to peripheral control signals
US4523310A (en) * 1983-01-28 1985-06-11 Gould Computer Systems Inc. Synchronous communications multiplexer
US7500023B2 (en) 2006-10-10 2009-03-03 International Business Machines Corporation Facilitating input/output processing by using transport control words to reduce input/output communications
US7502873B2 (en) 2006-10-10 2009-03-10 International Business Machines Corporation Facilitating access to status and measurement data associated with input/output processing
US8176222B2 (en) 2008-02-14 2012-05-08 International Business Machines Corporation Early termination of an I/O operation in an I/O processing system
US7904605B2 (en) 2008-02-14 2011-03-08 International Business Machines Corporation Computer command and response for determining the state of an I/O operation
US8001298B2 (en) 2008-02-14 2011-08-16 International Business Machines Corporation Providing extended measurement data in an I/O processing system
US8196149B2 (en) 2008-02-14 2012-06-05 International Business Machines Corporation Processing of data to determine compatability in an input/output processing system
US8117347B2 (en) 2008-02-14 2012-02-14 International Business Machines Corporation Providing indirect data addressing for a control block at a channel subsystem of an I/O processing system
US8095847B2 (en) 2008-02-14 2012-01-10 International Business Machines Corporation Exception condition handling at a channel subsystem in an I/O processing system
US8166206B2 (en) 2008-02-14 2012-04-24 International Business Machines Corporation Cancel instruction and command for determining the state of an I/O operation
US8214562B2 (en) 2008-02-14 2012-07-03 International Business Machines Corporation Processing of data to perform system changes in an input/output processing system
US8312189B2 (en) 2008-02-14 2012-11-13 International Business Machines Corporation Processing of data to monitor input/output operations
US7937507B2 (en) 2008-02-14 2011-05-03 International Business Machines Corporation Extended measurement word determination at a channel subsystem of an I/O processing system
US8478915B2 (en) 2008-02-14 2013-07-02 International Business Machines Corporation Determining extended capability of a channel path
US7941570B2 (en) 2008-02-14 2011-05-10 International Business Machines Corporation Bi-directional data transfer within a single I/O operation
US9052837B2 (en) 2008-02-14 2015-06-09 International Business Machines Corporation Processing communication data in a ships passing condition
US7890668B2 (en) 2008-02-14 2011-02-15 International Business Machines Corporation Providing indirect data addressing in an input/output processing system where the indirect data address list is non-contiguous
US7840718B2 (en) 2008-02-14 2010-11-23 International Business Machines Corporation Processing of data to suspend operations in an input/output processing log-out system
US7899944B2 (en) 2008-02-14 2011-03-01 International Business Machines Corporation Open exchange limiting in an I/O processing system
US7917813B2 (en) 2008-02-14 2011-03-29 International Business Machines Corporation Exception condition determination at a control unit in an I/O processing system
US8082481B2 (en) 2008-02-14 2011-12-20 International Business Machines Corporation Multiple CRC insertion in an output data stream
US8108570B2 (en) 2008-02-14 2012-01-31 International Business Machines Corporation Determining the state of an I/O operation
US7908403B2 (en) 2008-02-14 2011-03-15 International Business Machines Corporation Reserved device access contention reduction
US7840717B2 (en) * 2008-02-14 2010-11-23 International Business Machines Corporation Processing a variable length device command word at a control unit in an I/O processing system
US7937504B2 (en) 2008-07-31 2011-05-03 International Business Machines Corporation Transport control channel program message pairing
US8055807B2 (en) 2008-07-31 2011-11-08 International Business Machines Corporation Transport control channel program chain linking including determining sequence order
US7904606B2 (en) 2008-07-31 2011-03-08 International Business Machines Corporation Transport control channel program chain linked branching
US8332542B2 (en) 2009-11-12 2012-12-11 International Business Machines Corporation Communication with input/output system devices
RU2445673C1 (ru) * 2010-11-17 2012-03-20 Леонид Павлович Коршунов Устройство управления выводом данных
RU2445675C1 (ru) * 2010-11-17 2012-03-20 Леонид Павлович Коршунов Система управления выводом данных
US9021155B2 (en) 2011-06-01 2015-04-28 International Business Machines Corporation Fibre channel input/output data routing including discarding of data transfer requests in response to error detection
US8583988B2 (en) 2011-06-01 2013-11-12 International Business Machines Corporation Fibre channel input/output data routing system and method
US8364853B2 (en) 2011-06-01 2013-01-29 International Business Machines Corporation Fibre channel input/output data routing system and method
US8677027B2 (en) 2011-06-01 2014-03-18 International Business Machines Corporation Fibre channel input/output data routing system and method
US8738811B2 (en) 2011-06-01 2014-05-27 International Business Machines Corporation Fibre channel input/output data routing system and method
US8364854B2 (en) 2011-06-01 2013-01-29 International Business Machines Corporation Fibre channel input/output data routing system and method
US8312176B1 (en) 2011-06-30 2012-11-13 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8473641B2 (en) 2011-06-30 2013-06-25 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8549185B2 (en) 2011-06-30 2013-10-01 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8346978B1 (en) 2011-06-30 2013-01-01 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
RU2522025C1 (ru) * 2012-12-06 2014-07-10 Тимофей Леонидович Коршунов Система управления выводом данных
RU2551807C2 (ru) * 2012-12-18 2015-05-27 Леонид Павлович Коршунов Устройство управления выводом данных
US8918542B2 (en) 2013-03-15 2014-12-23 International Business Machines Corporation Facilitating transport mode data transfer between a channel subsystem and input/output devices
US8990439B2 (en) 2013-05-29 2015-03-24 International Business Machines Corporation Transport mode data transfer between a channel subsystem and input/output devices

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2606295A1 (de) * 1976-02-17 1977-08-25 Siemens Ag Verfahren zum ausfuehren einer datenuebertragung zwischen peripheren einheiten und einem arbeitsspeicher ueber einen multiplexkanal

Also Published As

Publication number Publication date
SE360759B (de) 1973-10-01
CH526166A (de) 1972-07-31
JPS5118296B1 (de) 1976-06-09
ES392443A1 (es) 1973-10-01
GB1264096A (de) 1972-02-16
FR2095551A5 (de) 1972-02-11
CA935935A (en) 1973-10-23
BE766468A (fr) 1971-09-16
DE2130299A1 (de) 1972-01-05
NL7108868A (de) 1971-12-29
DE2130299C3 (de) 1978-09-21

Similar Documents

Publication Publication Date Title
DE2130299B2 (de) Eingabe-/Ausgabekanal für eine Datenverarb eitungsanlage
DE2455803C2 (de) Mehrprozessor-Datenverarbeitungsanlage
DE2350225C2 (de)
DE2457312C3 (de) Anordnung zur Durchführung arithmetischer oder logischer Operationen an ausgewählten Gruppen aufeinanderfolgender Bits in einer Datenverarbeitungsanordnung
DE2717702C2 (de) Speicher-Zugriff-Steuersystem
DE1299145B (de) Schaltungsanordnung zum Steuern von peripheren Ein- und Ausgabegeraeten von Datenverarbeitungssystemen
DE1774296B2 (de) Restruktuierbare Steuereinheit für elektronische Digitalrechner
CH620779A5 (de)
DE1929010B2 (de) Modular aufgebaute datenverarbeitungsanlage
DE2457612B2 (de) Mikroprogrammier-Steuereinrichtung
DE2054830C3 (de) Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge
DE2332971C2 (de) Mikroprogrammsteuereinrichtung
DE2854782C2 (de) Datenverarbeitungssystem und Verfahren zum Ersetzen eines Datenblocks in einem Schnellspeicher
DE1197650B (de) Parallel-Addierer
DE2363846A1 (de) Verfahren zum steuern des transfers von daten zwischen einem speicher und einem oder mehreren peripheren geraeten und nach diesem verfahren arbeitende datenverarbeitungsanlage
DE1909477A1 (de) Speichersteueranlage fuer ein Multiprogramm-Datenverarbeitungssystem
DE2935101C2 (de)
DE1499191B2 (de) Elektronische einrichtung fuer eine datenverarbeitungsanlage
DE1956460C3 (de) Datenverarbeitungsanlage mit Assoziativspeichern
DE1277598C2 (de) Datenverarbeitungsanlage
DE2610428A1 (de) Anordnung zur steuerung der zwischenspeicherung von zwischen zwei funktionseinheiten zu uebertragenden daten in einem pufferspeicher
DE1549434A1 (de) Datenverarbeitungsanlage
DE2000608C3 (de) Schaltungsanordnung fuer eine Nachrichtenverarbeitungs-,insbesondere fuer eine Nachrichtenvermittlungsanlage
DE2217565A1 (de) Steuerteil eines Rechenautomaten, der die relative Basisadresse von Befehlen bildet
DE1069910B (de) Kommandowerk mit Indexregister

Legal Events

Date Code Title Description
C3 Grant after two publication steps (3rd publication)
8339 Ceased/non-payment of the annual fee