DE2829668B2 - Kanaldatenpufferspeicher - Google Patents
KanaldatenpufferspeicherInfo
- Publication number
- DE2829668B2 DE2829668B2 DE2829668A DE2829668A DE2829668B2 DE 2829668 B2 DE2829668 B2 DE 2829668B2 DE 2829668 A DE2829668 A DE 2829668A DE 2829668 A DE2829668 A DE 2829668A DE 2829668 B2 DE2829668 B2 DE 2829668B2
- Authority
- DE
- Germany
- Prior art keywords
- data
- buffer
- memory
- address
- byte
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/122—Program 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)
- Bus Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
Description
Die Erfindung betrifft einen Kanaldatenpufferspeicher nach dem Oberbegriff des Patentanspruchs 1.
Ein erstes Problem bei der Datenübertragung zwischen peripheren Eingabe/Ausgabegeräten und dem
Hauptspeicher eines Datenprozessors ist der Längenunterschied zwischen den von einem Eingabe/Ausgabegerät
abgegebenen oder empfangenen Datensegmenten einerseits und den Datensegmenten, die in einem
Zugriff in den Hauptspeicher geschrieben oder aus ihm gelesen werden können. Das Eingabe/Ausgabegerät
empfängt (liefert) typischerweise Daten vom (bzw. zum) Datenprozessorkanal byteweise. Die Hauptspeichereinheit
liest oder schreibt aber jeweils z. B. acht Datenbytes. Bekannte Lösungen dieses Problems sind
beschrieben in den US-Patentschriften 34 88 633 und 32 813. In den dort beschriebenen Einheiten eines
Selektorkanals bzw. eines Multiplexerkanals werden
diskrete Hardwareregister zum Zusammensetzen der einzeln vom Eingabe/Ausgabegerät empfangenen Bytes
verwendet. Nachdem genug Bytes zum Erreichen der Speicherwortgrenze angesammelt sind, werden die
zusammengesetzten Bytes als Gruppe in den Hauptspeicher übertragen. Ein umgekehrtes Verfahren läuft
ab, wenn Daten vom Hauptspeicher an das Eingabe/ Ausgabegerät übertragen werden.
In der US-Pitentschrift 36 43 221 ist ein Kanalpuffer
beschrieben, in dem Daten zwischen dem Kanalpuffer und dem Hauptspeicher in Segmenten von vier Bytes
und viicht von acht Bytes übertragen werden. Dieser Kanalpuffer ist ein Spezialtyp eines acht Byte großen
Schieberegisters, gekennzeichnet durch die Möglichkeit, Daten in jeder Byteposition wahlweise nicht zu
verschieben oder um eine oder zwei Bytepositionen nach rechts zu verschieben, abhängig von dem vollen
oder leeren Zustand der beiden nachfolgenden Bytepositionen. Vim Eingabe/Ausgabegerät empfangene Datenbytes
werden am linken Ende des Schieberegisters eingegeben, und die in den Hauptspeicher übertragenen
Datenbytes werden parallel den äußersten v.er rechten Bytepositionen des Schieberegisters entnommen. Umgekehrt
werden die Daten bei der Übertragung zum Eingabe/Ausgabegerät vom Hauptspeicher parallel in
die äußersten linken vier Bytepositionen des Schieberegisters eingegeben und byteweise vom rechten Ende des
Schieberegisters an das Eingabe/Ausgabegerät übertragen, in
In der US-Patentschrift 36 99 530 wird ein Kanalpuffersystem
beschrieben, in dem für jeden Eingabe/ Ausgabekanal mehrere Puffer vorgesehen sind.
In der US-Patentschrift 32 49 924 wird ein Kanalpuffer
in Form eines ein Byte breiten Kernspeichers r> beschrieben, der bis zu 16 Datenbytes pro Kanal
aufnehmen kann. Die Datenbytes werden einzeln vom Puffer an ein acht Byte großes Zusammensetzungsregister
übertragen, und von dort als Gruppe in den Hauptspeicher, nachdem das ganze Speicherwort in w
diesem Register zusammengesetzt ist. Der Übertragungsprozeß der Bytes an das Zusammensetzungsregister
wird vorübergehend unterbrochen, wenn eine Bedienungsanforderung von einem Eingabe/Ausgabegerät
von einer Kanaleinheit empfangen wird.
Die in den oben erwähnten Patentschriften beschriebenen Mechanismen arbeiten für den vorgesehenen
Zweck ganz zufriedenstellend. Sie sind jedoch keineswegs zur Verwendung in sehr schnellen Datenverarbeitungssystemen
mit wesentlich höheren Datenraten -,<> geeignet, wie sie in dei; meisten heute gebräuchlichen
Systemen auftreten. Eine Begrenzung in vielen heutigen Systemen ist die für Verwaltung und sonstige Arbeiten
zur Vorbereitung der Hauptspeichereinheit für das eigentliche Lesen oder Schreiben von Daten nötige Zeit. r>
Zur Erzielung einer höheren Datenrate sollte also eine größere Anzahl von Datenbytes vom oder zum
Hauptspeicher pro gegebenem Maß von Verwaltungsarbeiten übertragen werden. In dem hier zu beschreibenden
Ausführungsbeispiel werden bis zu 64 Datenby- bo tes zwischen dem Datenpuffer und dem Hauptspeicher
während jeder Speicherübertragungsoperation übertragen, oder mit anderen Worten, pro Einheitsmaß an
Verwaltungsarbeit. Physikalisch werden die Daten in Segmenten von acht Bytes bewegt, wobei acht derartige μ
Segmente während einer Speicherübertragungsoperation bewegt werden. Durchschnittlich wird dadurch die
für die Speichcrübertr.gungsoperation benötigte Gesamtzeit wesentlich reduziert
Um diese größeren Dsitenmengen vom oder zum
Hauptspeicher in sehr lmrzer Zeit abertragen zu
können, muß der Kanalclatenpuffer eine wesentlich größere Datenpufferkapaziität haben, als die in den oben
beschriebenen Datenpuffeim vorhanden ist Aus Wirtsehaftlichkeitsgründen
und ähnlichen Überlegungen wird diese erhöhte Pufferkapazität vorzugsweise in Form integrierter Halbleiterspeicher als Datenpuffer
vorgesehen. Die Benutzung eines Speichers als Kanaldatenpuffer wirft jedoch I*robleme der Datenausrichtung
für den Hauptspeicher des Datenprozessors auf.
Um Daten von einem Kanalpufferspeicher in den Hauptspeicher zu übertragen, sollten z. B. die aus dem
Kanalpuffer während eines Zugriffs gelessenen Daten die vom Hauptspeicher benötigte Grenzausrichtung
haben. Dazu kann man die Daten z. B. entsprechend in den Puffer setzen. Dadurch wird jedoch wieder die
Datenübertragung vom Kanal in den Puffer kompliziert Einfacher und besser wäre es, die Daten von der
Kanaleinheit einfach in der Reihenfr'ge in den Puffer zu
packen, in der sie empfangen wurden, ohne Rücksicht auf die Ausrichtforderungen des Hauptspeichers. Auch
wenn die Daten im Kanalpuffer auf den Hauptspeicher ausgerichtet sind, ist die Datenverkettungsmögiichkeit
ungenügend. Das Packen von Daten im Puffer ohne willkürliche, durch die Ausrichtforderungen des Hauptspeichers
hervorgerufene Lücken würde daher die Datenverkettungsmöglichkeit ebenso verbessern.
Ähnliche Überlegungen gelten bei der Datenübertragung in der Gegenrichtung, nämlich vom Hauptspeicher
zum Kanal.
Die US-Patente mit der Nr. 33 80 038 und 36 26 376 befassen sich mit dem Problem der Datenausrichtung
bei der Datenübertragung zwischen einem Kanaldatenpuffer und einem Speicher. In dem erstgenannten Patent
wird eine Durchschalt- und Hardwareregisteranordnung zur Übertragung von Daten zwischen zwei
Speichern mit unerschiedlicher Speicherwortlänge oder Datenzugriffslänge beschrieben. Zu einer vollständigen
Übertragung sind zwei Maiichinenzyklen oder Speicher-ZU
jriffsoperationen erforderlich, wenn die zu übertragenden Daten in zwei verschiedenen Zeilen im
Quellenspeicher liegen. Das beschriebene Gerät ist unter anderem langsamer und fordert mehr Steuerhardware,
als für die heutigen Zwecke erwürijcht ist.
In dem zweiten oben genannten Patent wird eine Schaltung zum Verschieben der vom Datenpuffer an
den Hauptspeicher übertragenen Datenbytes beschrieben, wenn die Anfangsbyteposition im Hauptspeicher
rechts von der äußersten liinken Byteposition liegt. Ein
Hardwareregister ist vorgesehen, um Bytes aufzunehmen und festzuhalten, die jenseits der rechten Grenze
des Hauptspeichers liegen würden. Bei nachfolgenden Übertragungen werden Daten simultan vom Datenpuffer
und vom Hardwareregister übertragen zur Bildung eines vollständigen Wortes zum Abspeichern im
Hauptspeicher. Irgendwelche Bytes vom Datenpuffer werden hinterher in das Hardwareregister eingegeben
und für einen .lachfolgenden Hauptspeicherzugriff gerettet, h diesem Gerät wird für die vorliegenden
Zwecke ungünstig ein zusätzliches Hardwareregister verwendet, und außerdem wird der Fa.". nicht berücksichtigt,
in dem die Startbyteposition im Datenpuffer nicht das äußerste linke Byte im Datenpuffer ist.
Obwohl in den US-Patentschriften 36 02 896 und 39 16 388 Kanaldatenpuffer nicht ausdrücklich erwähnt
werden, sind sie insofern von Interesse, als sie sich mit
der Ausrichtung der von bzw. zu einem Hauptspeicher übertragenen Daten befassen. Die Daten sind in diesem
Fall von der Instruktionsverarbeitungseinheit zu senden
oder zu empfangen. In der zuersterwähnten Patentschrift wird ein dreidimensionaler Kern-Hauptspeicher
beschrieben, dessen Speicherwortlänge oder Speicherzugriffslänge vier Byte beträgt, und der über eine
Kemtreiberleitungssteuerschaltung verfügt, wodurch die vier adressierten Bytes an jeder Byteposition des
vier Byte großen Speicherwortes beginnen können. Das adressierte vier Byte große Datenwort kann somit eine
Speicherwortgrenze in einem benachbarten Speicherwort überlappen. Dadurch ist das Problem der
Speicherausrichtung umgangen und es können jeweils vier zusammenhängende Bytes während eines Speicherzugriffs
adressiert werden.
In der zweiten obenerwähnten Patentschrift wird ein
acht Byte großer Datenschieber zur automatischen Aiisrirhtiinir pines aus mrhrrrrn Rvlp«; hrJslrhrnHpn
Datensegmentes beschrieben, das von einem Hauptspeicher adressiert wird, so daß es rechtsbündig in ein
Prozessorregister geladen werden kann. Umgekehrt werden ebenso automatisch aus dem Prozessor
entnommene Daten so verschoben, daß sie richtig ausgerichtet sind, wenn sie in den Hauptspeicher gesetzt
werden. Zwei Hauptspeicher-Zugriffsoperationen sind erforderlich, wenn das Datensegmenl über eine
Speicherwortgrenze hinausgeht. Dieser Datenschieber ist insofern von besonderem Interesse, als er auch dazu
benutzt werden kann, die Datenverschiebung in Verbindung mit der vorliegenden Erfindung auszuführen.
Außerdem ist es aus der DE-AS 22 09 136 bekannt, Datenverarbeitungsanlagen zur Speicheradressierung
mit Modifizierungsschaltungen zu versehen, die eine gegebene Adresse um eine Einheit erhöhen. Dabei wird
während jedes Operationszyklus des Speichers für Mikroprogramm-Routinen von Ein- und Ausgabegeräten,
der von der zentralen Datenverarbeitungsanlage ausgelöst wird, jede seiner Speicherzellen der Reihe
nach durch ein Speicheradreßregister, eine Inkrcmentierschaltung und ein Pufferregister adressiert, wobei
die zentrale Datenverarbeitungseinheit eine Adreßerhöhung für jeweils einen Zyklus im Pufferspeicher
unterbrechen kann, wenn die Adresse im Speicheradreßregister nicht vom Pufferspeicher, sondern von
einem Zentral-Adreß-Pufferregister anliegt. Obwohl hier bereits eine Modifizierung der Adressen gezeigt ist,
ist diese Schaltung nicht ohne weiteres auf Kanaldatenpufferspeicher anwendbar.
Der Erfindung liegt die Aufgabe zugrunde, einen Kanaldatenpufferspeicher der eingangs genannten Art
zu schaffen, der es erlaubt, daß der Datendurchsatz bei der Übertragung zwischen einem Eingabe-/Ausgabekanal
und einem Speicher ohne hohen Aufwand an Schaltungsmitteln erhöht wird und der darüberhinaus
zusätzlich die Kanaldaten-Verkettungsrate verbessert
Die Lösung besteht im Kennzeichen des Patentanspruchs 1.
Weitere vorteilhafte Lösungen finden sich in den Patentansprüchen 2 bis 7.
Dadurch, daß der Pufferspeicher für jedes seiner Spalten eine eigene Adressiereinrichtung aufweist, ist es
möglich. Daten, insbesondere Datensegmente, die sich
über zwei Speicherzeilen erstrecken, in nur einem Zugriff abzurufen oder zu speichern.
Ein Ausführungsbeispiei der Erfindung ist in den Zeichnungen dargestellt und wird anschließend näher
beschrieben.
Es zeigt
Fig. I ein digitales Datenverarbeitungssystem line
darin einen erfindungsgemäßen Kanaldatenniiffer,
F i g. 2 den Kanalpuffer, den Hauptspeicher und die Instruktionsverarbeitungseinheit gemäß Fig. I mil
weiteren Einzelheiten,
Fig.3 ein Zeitdiagramm zur Erklärung der Arbeits
weise des Kanaldatenpuffers,
F i g. 4 allgemein einen Assembler, der in verschiede
ner Form an verschiedenen Stellen im Kanaldatenpuffei
verwendet wird,
F i g. 5a und 5b die Konstruktion des Kanaldatenpuf fers im einzelnen,
[■'ig. 6A bis 6F in Diagrammen eine typische Datenübertragung vom Kanal zum Kanaldatenpuffer.
Fig. 7A bis 7E in Diagrammen eine typischt
Datenübertragung vom Kanaldatenpuffer zum Haupt speicher.
F i g. 8 schematisch im einzelnen die Konstruktion dein F i g. 5a gezeigten Schreibtreibers,
Fig. 9 schematisch im einzelnen die Konsttuktior der Speicherübertragungspufferadreßsteuerung dci
Fig. 5a,
Fig. 10 im einzelnen die Konstruktion eines in F i g.ς
verwendeten Assemblerelementes.
Fig. Il im einzelnen die Konstruktion der in dci Speich?rübertragungs-Pufferadreßsteuerung der F i g.c
verwendeten Wahlsteuerschaltung.
Fig. 12 in einer Tabelle die Erklärung des Puffer
adreß-Assemblers in F i g. 9,
Fig. 13 schematisch im einzelnen die Konstruktior der Kanalübertragungspuffer-Adreßsteuerung, der Ka
nalübertragungs-Schreibsteuerung und der Kanalüber
tragungs-Lesesteuerung der F i g. 5a,
Fig. 14 im einzelnen die Konstruktion des Kanal übertragungspuffer-Adreßzählers der F i g. 5a.
Fig. 15 im einzelnen die Konstruktion des Speicher
übertragungs-Pufferadreßzählers und der Übertra gungssteuerung der F i g. 5a, und
Fig. 16 im einzelnen die Konstruktion der Daten
pufferzählsteuerung der F i g. 5a.
Fig. 1 zeigt im allgemeinen die Hauptfunktionsteile
eines typischen Digitalrechners oder digitalen Datenverarbeitungssystems, in denen die vorliegende Erfindung
vorteilhaft verwendet werden kann. Die in durchgezogenen Linien dargestellten Verbindungen
stellen Datensignalleitungen und die in unterbrochenen Linien gezeigten Verbindungen Steuersignalleitungen
dar. Bei einer Leseoperation vom Eingabe/Ausgabegerät werden Daten byteweise von einem peri' herer
E/A-Gerät 10 an einen E/A-Kanal 11 übertragen. Die Daten werden dann durch eine zwei Byte breit«
Datensammelleitung an einen Kanaldatenpuffer 12 zui vorübergehenden Speicherung übertragen. Die irr
Kanaldatenpuffer 12 angesammelten Daten werden ir entsprechenden Intervallen über eine acht Byte großf
Datensammelleitung an den Hauptspeicher 13 übei einen Teil einer Instruktionsverarbeitungseinheit 14
nachfolgend kurz IPU genannt, übertragen. Für eine Schreiboperation über ein Eingabe/Ausgabegerät werden
die Daten in entgegengesetzter Richtung bewegt nämlich vom Hauptspeicher 13 zu einem der E/A-Geräte
10 über die Instruktionsverarbeitungseinheit 14, der Kanaldatenpuffer 12 und den E/A-Kanal 11. Dei
Kaisaidatenpuffer 12 ist erfindungsgeniäß konstruier
und optimiert den gesamten DatenübertragungsprozeO
so, daß trotz der unterschiedlichen Betriebsforderunger
des E/A-Kanales 11 und des Hauptspeichers 13 Daten
von einem zum anderen mit relativ hoher Rate übertragen werden können.
In einem typischen Fall werden die Instruktionsdaten
und die Operandendaten für ein bestimmtes Computerprogramm in der oben beschriebenen Art von einem
E/A-Gerät 10 an den Hauptspeicher 13 übertragen. In diesem Fall kann das E/A-Gerät 10 beispielsweise die
Form eines Kartenlesers oder einer Magnetbandeinheit haben. Danach wird das Programm durch die Instruktionsverarbeitungseinheit,
IPU14, ausgeführt. Die IPU 14 holt die Instruktionen und Operanden sequentiell
vom Hauptspeicher 13. führt die von den Instruktionen angegebenen Berechnungen oder anderen
Verfahren durch und gibt die Ergebnisse an den Hauptspeicher 13 zurück. Bis zu acht Datenbytes
können auf einmal vom Hauptspeicher 13 an die IPU 14 oder umgekehrt über eine diese Einheiten verbindende
acht Byte breite Datensammelleitung übertragen werden. Die Elementaroperationen in der IPU 14
werden durch Steuersignale von einer Hauptsteuerung 15 gesteuert. Im Falle einer E/A-Operation dienen
einige dieser Steuervorgänge dazu, weitere Steuersignale zu entwickeln, die an die anderen Einheiten 11 bis
13 gegeben werden. Für Steuerzwecke senden die Einheiten 11 bis 13 verschiedene Statur- und Anforderungssignale
an die IPU 14, die wiederum verschiedene Statussignale der Hauptsteuerung 15 zur Verfügung
stellt.
An einem Punkt während oder nach Beendigung des Programmes werden die Ergebnisdaten in den Hauptspeicher
13 über den Kanaldatenpuffer 12 und den E/A-Kanal 11 an die entsprechenden E/A-Geräte 10
übertragen. In diesem Fall kann das E/A-Gerät 10 beispielsweise die Form einer Schreibmaschine oder
eines Druckers haben.
Hier scheint eine Erklärung der Terminologie angebracht. Ein Byte ist bekanntlich eine Folge von
benachbarten binären Stellen oder Bits, die als eine Einheit behandelt werden und die kleinste adressierbare
Dateneinheit im System bilden. Als Beispiel wird hier angenommen, daß jedes Byte aus acht binären
Datenbits und einem Paritätsprüfbit besteht. Der Einfachheit halber wird das Paritätsprüfbit im allgemeinen
nicht erwähnt.
Die Hardware-Datenbitpositionen werden hier von links nach rechts in aufsteigender Zahlenfolge numeriert,
wobei die äußerste linke Position die werthöchste Bitposition und die äußerste rechte Position die
wertniederste Bitposition in der betrachteten Gruppe sind. Je höher also die Bitpositionsnummer, um so
niedriger ist die Wertstufe des Bits. Dasselbe gilt entsprechend für die Numerierungsfolge nebeneinanderliegender
Bytepositionen, die ebenfalls von links nach rechts beginnend mit der Nummer 0 numeriert
werden. In der Wertfolge ist das linke Byte das werthöhere und das rechte Byte das wertniedere Byte.
Mit der Bezeichnung »Eingabe/Ausgabe-Leseoperation«,
wird hier der Fall bezeichnet, in dem Daten von einem der E/A-Geräte 10 gelesen werden. Der
Ausdruck bezieht sich auf eine Eingabe/Ausgabe-Operation, in der Daten vom E/A-Kanal 11 in den
Kanaldatenpuffer 12 und von dort zum Hauptspeicher 13 übertragen werden. Dieser Ausdruck wird manchmal
abgekürzt mit »E/A-Lesen« oder »EAL«.
Der hier verwendete Ausdruck »Eingabe/Ausgabe-Schreiboperation«
bezieht sich auf den Fall, in dem Daten in eines der E/A-Geräte 10 geschrieben werden.
Der Ausdruck bezieht sich auf eine Eingabc/Ausgabeoperation, bei der Daten vom Hauptspeicher 13 in
den Kanaldatenpuffer 12 und von dort in den E/A-Kanal 11 übertragen werden. Dieser Ausdruck wird auch
abgekürzt mit »E/A Schreiben« oder »EAS«.
Der Ausdruck »Kanal/Pufferübertragung« (oder manchmal auch einfach Kanalübertragung) wird hier
zur Bezeichnung einer Datenübertragung zwischen dem E/A-Kanal 11 und dem Kanaldatenpuffer 12 im
allgemeinen Sinne und ohne Einschränkung auf die Übertragungsrichtung gebraucht. Die Übertragung
kann in jeder Richtung erfolgen, d. h. vom Kanal zum Datenpuffer und umgekehrt.
In ähnlicher Weise wird mit dem Ausdruck »Speicher/Pufferübertragung«
(manchmal einfach Speicherübertragung) eine Datenübertragung zwischen dem Kanaldatenpuffer 12 und dem Hauptspeicher 13 im
allgemeinen Sinne ohne Einschränkung auf die Übertragungsrichtung bezeichnet. Die Übertragung kann in
beiden Richtungen erfolgen, nämlich vom Kanaldatenpuffer 12 zum Hauptspeicher 13 oder umgekehrt.
Der in Fig. 2 gezeigte Kanaldatenpuffer 12 enthält einen Pufferspeicher 20. der in integrierter Halbleitertechnik
ausgeführt ist, nicht destruktiv gelesen wird und Daten vorübergehend speichert, Eine Datenübertragungsschaltung,
die ein zwei Byte großes Kanal-Eingangsdatenregister (CIDR) 21 enthält, dient der
Übertragung von jeweils zwei Datenbytes vom E/A-Kanal 11 in den Datenpuffer 20.'Eine weitere
Datenübertragungsschaltung, die ein zwei Byte großes Kanal-Ausgangsdatenregister (CODR) 22 enthält, dient
der Übertragung von bis zu zwei Datenbytes vom Pufferspeicher 20 an den E/A-Kanal 11. Ein acht Byte
großes Speicherdntenübertragungsregister 23 (STDR) dient der Übertragung von Daten vom Pufferspeicher
20 an den Hauptspeicher 13 und umgekehrt. Die Adressierung des Pufferspeichers 20 und andere
zugehörige Steuerfunktionen werden von einer Puffersteuerung 24 wahrgenommen.
Der Hauptspeicher 13 enthält einen sehr großen Hauptspeicherbereich 25, der durch ein Speicheradrel·
register 26 (SAR) adressiert wird. Dieser Hauptspeicherbereich 25 ist als integrierter Halbleiterspeicher
ausgeführt und wird nicht destruktiv gelesen. Er hat eine Speicherzugriffslänge von acht Bytes. Während eines
Zugriffs können also acht zusammenhängende Datenbytes in den Hauptspeicherbereich 25 geschrieben oder
von dort gelesen werden. Die acht während eines Zugriffs adressierbaren Bytesegmente werden auch
Speicherwörter genannt. Die Adresse des ersten Byte in einem solchen Speicherwort ist ein Vielfaches von acht.
Ein acht Byte großes Hauptspeicher-Datenregister (MSDR) 27 wird zum Empfang der aus dem
Hauptspeicherbereich 25 gelesenen Daten und zum Festhalten der in diesem Bereich zu schreibenden Daten
verwendet. Für Übertragungen von weniger als acht Bytes aktiviert eine Bytewahieinheit 28 während einer
Schreiboperation weniger als das volle Komplement von acht Schreibsteuerleitungen und während einer
Leseoperation setzt sie weniger als das volle Komplement von acht Bytepositionen im Hauptspeicherdatenregister
27. Die Bytewahleinheit 28 wird durch die drei wertniedersten Adreßbits auf einer Speicheradreßsammelleitung
29 und einen drei Bit großen Längencode gesteuert, der von der Hauptsteuerung 15 kommt
Im vorliegenden Ausführungsbeispie! nutzt die Datenpuffer/Hauptspeicher-Datenübertragungsschaltung
einen acht Byte breiten Fluß durch einen
9 10
Byteschieber 30, der in der Instruktionsverarbeitungs- Hauptspeicher 25 zum Pufferspeicher 20 übertragen
einheit 14 liegt, um die in verschiedenen Instruktions- werden, enthält der Datenübertragungsschaltkreis das
Verarbeitungsoperationen benötigte Schiebewirkung zu MSDR 27, den Byteschieber 30, das STDR 23 und eine
erzielen. Der Byteschieber 30 ist vorzugsweise von dem acht Byte gro3e Datensammelleitung 32. Die Daten
in der US-Patentschrift 39 16 388 beschriebenen Typ ■-, werden aus dem Hauptspeicher 25 nach der Adresse im
und kann insbesondere Daten in Byteschritten nach SAR 26 ausgelesen und in das MSDR 27 gesetzt. Die
rechts oder links verschieben. Mit anderen Worten, der Daten im MSDR 27 laufen durch den Byteschieber 30
Byteschieber /0 kann acht Bytes von Eingangsdaten und werden zum entsprechenden Zeitpunkt in das
empfangen und sie 1. entweder ohne Verschiebung STDR 23 gesetzt. Die Daten im STDR 23 werden über
direkt zur Ausgabe durchleiten oder 2. sie mit einer io die Datensammelleitung 32 an eine Schreibschaltung im
Verschiebung von 1 bis 7 Bytes nach rechts oder 3. mit Pufferspeicher 20 geleitet und zum entsprechenden
einer Verschiebung von 1 bis 7 Bytes nach links Zeitpunkt dorthinein an einer Stelle geschrieben, die
weiterleiten. Der Byteschieber 30 arbeitet im Umlaufbe- durch die von der Puffersteuerung 24 kommende
trieb, in dem an einem Ende ausgeschobene Daten Pufferadresse bestimmt wird.
wieder eingegeben und das in das andere Ende des π Im vorliegenden Ausführungsbeispiel wird angenom-
Schiebers wieder eingeschoben werden. In diesem rnen, daß die Hauptsteuerung 15 inikroprogrammiert ist.
Umlaufbetrieb werden Daten vom Pufferspeicher 20 an Sie enthält einen Steuerspeicher zum Speichern der
den Hauptspeicherbereich 25 und umgekehrt übertra- Steuermikrowörter, ein Steuerregister zum Empfang
gen. der einzelnen Mitkrowörter und eine Decodierschal-
Der Byteschieber 30 ist in der Instruktionsverarbei- >o tung zum Decodieren der Mikrowörter, zwecks
tungseinheit 14 enthalten und sorgt für die verschiede- Entwicklung der Steuersignale, die die verschiedenen
nen Datenschiebeoperationen, die zeitweise während (nicht dargestellten) Steuertore steuern, die zu den
der Datenmanipulation innerhalb der Instruktionsverar- Datensammelleitungen, den Adreßsammelleitungen
beitungseinheit 14 benötigt werden. Außerdem sorgt er usw. gehören, sowie verschiedene andere Steuersignale
für die Datenausrichtung, die bei der Datenübertragung >ϊ umfassen, die in der IPU gebraucht werden. Für den
vom Hauptspeicher 25 in ein Hardwareregister in der Slciierspeicher ist eine entsprechende Adreßschaltung
IPU 14 oder umgekehrt gebraucht werden kann. Der vorgesehen, um die richtige Startadresse für die jeweils
Byteschieber 30 wird also auch für andere Zwecke als ausgeführte Programminstruktion zu wählen und so die
nur für die Datenübertragung zwischen dem Pufferspei- Mikrowörter nacheinander und zum Verzweigen auf
eher 20 und dem Hauptspeicherbereich 25 gebraucht, so andere Mikrowörter anzusteuern, wenn die Bedingun-
Während es natürlich für die Übertragungsschaltung gen das vorschreiben.
zwischen dem Pufferspeicher und dem Hauptspeicher Die IPU 14 enthält eine arithmetische und logische
wirtschaftlicher ist, den Byteschieber 30 zu benutzen, ist Einheit (ALU 33), einen Lokalspeicher 34 und verschiees
nicht unbedingt erforderlich. Wenn das aus dene Hardwareregister wie das acht Byte große
irgendeinem Grund nicht bequem ist oder die IPU ι·ί 4-Rcgister 35, das acht Byte große ß-Register 36 und
keinen Umlaufbyteschieber hat, kann der Kanaldaten- das acht Byte große Bestimmungsregister oder D-Regipuffer
12 auch mit einem eigenen separaten Byteschie- ster 37, zur Verwendung bei der Ausführung der
ber ausgerüstet werden. verschiedenen arithmetischen und logischen Operatio-AIIe
in Fig. 2 dargestellten primären Datensammel- nen auf den verarbeiteten Daten. Bei einer typischen
leitungen sind acht Bytes breit, mit Ausnahme der für die 40 Programminstruktion in Maschinensprache besteht der
Datenübertragung zwischen dem E/A-Kanal 11 und erste Schritt im Abruf der Instruktion aus dem
dem Pufferspeicher 20 verwendeten Sammelleitungen. Hauptspeicher 25 und ihrer Übertragung in ein
Diese sind zwei Bytes breit. Jede acht Byte breite Instruktionsregister 38. Dazu nimmt man die Instruk-Datensammelleitung
besteht aus 72 Leitern für die tionsadresse von einem Instruktionszähler 39 und setzt
gleichzeitige parallele Übertragung von 72 Bits (64 -t>
sie in das SAR 26 über einen Assembler 40 und die Datenbits und 8 Paritätsbits). Die zwei Byte großen Adreßsammelleitung 29. Die adressierte Instruktion
Sammelleitungen bestehen aus 18 Leitern zur gleichzei- wird aus dem Hauptspeicher 25 gelesen und an das
tigen parallelen Übertragung von 18 Bits (16 Datenbits Instruktionsregister 38 über das MSDR 27, d:n Byte-
und zwei Paritätsbits). schieber 30 und das D-Register 37 gegeben. Als Teil der
Im vorliegenden Ausführungsbeispiel enthält die so Instruktionsabrufoperation werden die Operanden-Schaltung
zur Übertragung von Daten zwischen dem adressen aus den Basisadressen und den relativen
Pufferspeicher 20 und dem Hauptspeicherbereich 25 in Adressen errechnet, die in der Instruktion enthalten
j«. der genannten Reihenfolge ein Speicherdaten-Übertra- sind, und die Ergebnisse werden in die entsprechenden
gungsregister (STDR) 23, den Byteschieber 30, das Operandenadreßregister im Lokalspeicher 34 gesetzt
% Hauptspeicher-Datenregister 27 und eine acht Byte 55 Außerdem wird der Instruktionszähler 39 über den
ΪΛ große Datensammelleitung 31. Die aus dem Pufferspei- Fortschreibungsaddierer 41 so fortgeschrieben, daß er
}| eher 20 ausgelesenen Daten werden zum gegebenen die Adresse der nächsten Programminstruktion enthält.
% Zeitpunkt in das STDR 23 gesetzt Die Daten im Der Operationscodeteil (OP-CODE-Teil) der Profi STDR 23 laufen durch den Byteschieber 30 und werden gramminstruktion in Maschinensprache im Instruk-S|
zum gegebenen Zeitpunkt in das Hauptspeicher-Daten- 50 tionsregister 38 wird an die mikroprogrammierte
Sj register (MSDR) 27 gesetzt. Die Daten im MSDR 27 Hauptsteuerung 15 gegeben, um die richtige Folge von
|| werden über die Datensammelleitung 31 an die Mikrowörtern zur Ausführung der jeweiligen Proj|
Schreibschaltung im Hauptspeicherbereich 25 gegeben gramminstruktion aufzurufen. In einem mehr oder
m und zum geeigneten Zeitpunkt im Hauptspeicherbe- weniger typischen Fall (da gibt es viele verschiedene
■|| reich 25 an die acht Byte große Speicherwor'stelle 65 Variationen) wird die Instruktion ausgeführt durch
If geschrieben, die durch die Adresse im SAR 28 Abrufen der Operanden vom Hauptspeicherbereich 25
H bezeichnet ist und Einsetzen dieser Operanden in die entsprechenden
i$: Wenn Daten in der Gegenrichtung, nämlich vom Register im Lokalspeicher 34. Die Operanden werden
dann in der gewünschten Art manipuliert und das Ergebnis in den Lokalspeicher 34 zurückgesetzt.
Danach wird das Ergebnis im Lokalspeicher 34 gelesen und in die entsprechende Stelle (typischerweise eine der
Operandenstellen) im Hauptspeicherbereich 25 geschrieben. Die Datenübertragung vom Lokalspeicher 34
zum Hauptspeicher 25 erfolgt über das ß-Register 36,
einen Bitschieber 42, einen Byteschieber 30, das MSDR 27 und die Datensammelleitung 31. Während
dieser Operationen wird der Hauptspeicher 25 über das IPU-Speicheradreßregister 43, auch IPU-SAR genannt,
adressiert, das die entsprechenden Operandenadressen vom Lokalspeicher 34 geliefert bekommt. Die verschiedenen
Registerstellen im Lokalspeicher 34 werden über ein Lokalspeieher-Adreßregister 44 adressiert, das von
der Hauptsteuerung 15 wiederum den Lokalspeicher-Adreßfeldteil derjenigen MikroWörter empfängt, die
eine Datenübertragung von oder zum Lokalspeicher 34 vornehmen.
Für eine arithmetische Addition beispielsweise werden dir beiden zu addierenden Operanden vom
Hauptspeicher 25 gelesen und in den Lokalspeicher 34 gesetzt. Danach werden die beiden Operanden sukzessive
vom Lokalspeicher 24 adressiert und in das /\-Register 35 und das ß-Register 36 gesetzt. Die
Datenwerte in diesen beiden Registern werden dann durch die ALU 33 addiert und das Ergebnis über das
D-Register 35 an den Lokalspeicher 34 zurückgesendet.
Der Bitschieber 42 und der Byteschieber 30 sind für die Datenverschiebung während der Ausführung verschiedener
Programminstruktionen in Maschinensprache vorgesehen. Der Bitschieber 42 schiebt die Daten in
Schritten von einem Bit und der Byteschieber 30 in Schritten von ein Byte. Um einen im Lokalspeicher 34
stehenden gegebenen Operanden zu verschieben, wird dieser in das ß-Register 36 gesetzt und danach
sukzessive durch den Bitschieber 42 und den Byteschieber 43 geleitet und in das D-Register 37 gesetzt. Von da
an kann er in den Lokalspeicher 34 zurückgeführt oder in das /4-Register 35 oder das ß-Register 36 je nach
Bedarf der jeweils ausgeführten Operation gesetzt werden. Der Bitschieber 42 sowie der Byteschieber 30
gehören zum bekannten Durchlauftyp. Das Ausmaß der Schiebung durch jede dieser Einheiten wird durch eine
Schiebesteuerung 45 gesteuert, die die richtige Schiebesteuerinformation von der Hauptsteuerung 15 empfängt.
Eine Eingabe/Ausgabeoperation wird dadurch einge-'eitet, daC man eine E/A-Instruktion (z. B. eine
Instruktion START I/O) vom Hauptspeicher 25 abruft und in das Instruktionsregister 38 setzt. Zu Beginn der
Eingabe/Ausgabeoperation werden ein Einheitensteuerwort (UCW) und eines oder mehrere Kanalkommandowörter
(CCW) für das infragekommende E/A-Gerät vom Hauptspeicher 25 abgerufen und in den Lokalspeicher
34 in einen Bereich gesetzt, der für diejenige Kanaleinheit reserviert ist, an die das E/A-Gerät
angeschlossen ist Diese Steuer- und Kommandowörter dienen den verschiedenen Steuer-, Adreß- und Statusinformationen,
die für die Durchführung der E/A-Operation gebraucht werden. Ein Teil dieser Information, z. B.
der Befehlscodeteil eines CCW, wird an den E/A-Kanal 11 weitergeleitet, indem man die entsprechende
Information aus dem Lokalspeicher 34 liest und sie über das ß-Register 36, die ALU 33, das D-Register 37 und
eine Steuersammeüeitung 46 an den E/A-Kanal 11
sendet Der Befehlscodeteil und der Kennzeichenteil eines CCW sowie die Geräteadresse, werden beispielsweise
in dieser Art an den E/A-Kanal 11 gesendet und
dort in die Hardwareregistur gesetzt. Der Befehlscode wird unter anderem an da« E/A-Gerät weitergeleitet,
um diesem zu sagen, was es zu tun hat. Außerdem erfüllt
er Steueraufgaben im E/A-Kanal.
Andere UCW/CCW-Infarmation im Lokalspeicher
34, wird zusammen mit der Adressierung des Hauptspeichers 25 benutzt. Wenn die eigentliche Adressierung der
Eingabe/Ausgabedaten im Hauptspeicher 25 begonnen
in werden soll, wird z. B. der Datenadreßteil des CCW aus
dem Lokalspeicher 34 gelesen und in das Kanalspeicheradreßregister 47 gesetzt. Von dort wird der
Adreßteil über den Assembler 40 und die Adreßsammelleitung 29 an das SAR 26 geleitet, um die Anfangsstelle
ι") im Hauptspeicher 25 für die zu übertragenden
Eingabe/Ausgabedaten zu adressieren. Während r'ie Eingabe/Ausgabe-Operation weiterläuft, wird das
CCW-Datenadreßfeid im Lokalspeicher 34 auf den neuesten Stand fortgeschrieben.
Fig. 3 zeigt zur Erklärung der Arbeitsweise des Kanaldatenpuffers 12 ein Zeiteinteilungsprogramm.
Der Kanaldatenpuffer 12 benutzt dieselben Grundtakte wie der E/A-Kanal 11. Jeder Kanalzyklus ist in vier
Zyklusintervalle CO bis C3 unterteilt. Ein separater Zug wiederholter Taktimpulse wird für jedes dieser Taktintervalle
geliefert. Ein Zug von CO-Taktimpulsen ist beispielsweise für die Taktierung der während der
C0-Taktintervalle auszuführenden Operationen vorgesehen. Der Kanaldatenpuffer 12 wird auf Zyklusteiler-
«) basis betrieben. Insbesondere wird eine Hälfte eines
jeden Kanalzyklus für die Adressierung der Kanaldaten in oder aus dem Pufferspeicher 20 benutzt, während die
andere Hälfte des Kanalzyklus der Adressierung von Hauptspeicherdaten in oder aus dem Pufferspeicher 20
π dient. Diese Unterteilung ist dargestellt in F i g. 3 durch
die Unterteilung eines jeden Zyklus in einen CT-Abschnitt (Kanalübertragung) und einen ST-Abschnitt
(Speicherübertragung), von denen der erstere die erste Hälfte und der letztere die letzte Hälfte eines jeden
■to Zyklus belegt. Separate zvjge wiederholter CT- und
ST-Impulse sind für die Taktierung der verschiedenen
während der entsprechenden Zeitabschnitte auszuführenden Operationen vorgesehen. Durch diesen geteilten
Zyklusbetrieb stören sich Übertragungen zv'ischen
■Γ) Kanal und Puffer einerseits und Speicher und Puffer
andererseits nicht.
Fig.4 zeigt in einer allgemeinen Darstellung einen
Assembler (ASM), von dem verschiedene Formen an verschiedenen Stellen in der detaillierten Konstruktion
so des Kanaldatenpuffers 12 benutzt werden. Mit dem
Ausdruck Assembler soll hier eine Wahlschaltung mit mehreren Eingängen und einem Ausgang bezeichnet
werden, die durch mehrere Wahlsteuersignale so gesteuert wird, daß sie nur die Daten von einer
gewählten Eingangssammelleitung V/W/X/Y an die eine Ausgangssammelleitung Z überträgt. Jede der
Sammelleitungen Kbis Zist mehrere Bits breit und hat
dieselbe Anzahl von Bitleitungen. Hebt man z. B. die Wahlsteuerleitung »X-AUSW.« auf den binären Einerpegel
an, so wird dadurch die A"-Eingangssammel!eitung mit der Z-Ausgangssammelleitung verbunden.
Legt man die F i g. 5a und 5b so nebeneinander, daß die Fig.5a links liegt, so ist die Konstruktion des in
Fig.2 dargestellten Kanaldatenpuffers 12 im Detail
b5 gezeigt Insbesondere in Fig.5b ist der Pufferspeicher
20 dargestellt, der elektrisch so aufgebaut ist daß er M Spalten und R Zeilen aus ein Byte breiten Speicherstellen
aufweist wobei M und R ganze Zahlen als Potenzen
von zwei sind, und jede der M Spalten besteht aus einer
ein Byte breiten Speichergruppe aus R Zeilen mit ihrem eigenen Adreßmechanismus zum Ansteuern jeder
gewünschten Zeile. Im vorliegenden Ausführungsbeispiel hat M den Wert acht und R den Wert 32. Der
Pufferspeicher 20 besteht also aus einem Satz von acht spaltenbildenden Speichermechanismen 50 bis 57. Jeder
dieser Mechanismen enthält eine ein Byte breite Speicheranordnung mit 32 Zeilen und einem Adreßmechanismus zum Ansteuern einer jeder dieser 32 Zeilen.
Der Speicherteil in jedem der Mechanismen 50 bis 57 ist in integrierter Halbleiterschaltung mit nichtzerstörendem Auslesen ausgeführt Jede Zeile in jeder derartigen
ein Byte breiten Gruppe hat neun Bitspeicherstellen und bildet damit die ein Byte große Zeilenlänge. Daten
werden an die Speicherteile der Mechanismen 50 bis 57 über entsprechende neun Bit breite Eingangssammelleitungen 60 bis 67 gegeben. Daten werden aus den
Speicherteilen der Mechanismen 50 bis 57 über neun Bit große Ausgangssammelleitungen 70 bis 77 gelesen.
Jeder der Speicherrncchanisnicn 50 bis 57 enthält
auch seinen eigenen Adreßdecodierteil zum Empfang eines r-Bit-Adreßfeldes, durch dessen Decodierung eine
bestimmte Zeile aus den R Zeilen im Speicherteil gewählt wird, r ist der Logarithmus zur Basis zwei von
R. Da R im vorliegenden Beispiel den Wert 32 hat, hat r
den Wert 5. Jeder derartige Adreßdecodierer ist in integrierter Halbleiterschaltung ausgeführt und wird auf
demselben integrierten Schaltungschip ausgebildet wie der zugehörige ein Byte breite Speicherteil. Die an den
Adreßdecodierer angelegte Adresse steuert eine bestimmte Zeile an und läßt die darin gespeicherten Daten
auf der 9 Bit großen Datenausgangssammelleitung für diese Gruppe erscheinen. Adressen werden an die
Decodierteile der Mechanismen 50 bis 57 über entsprechende 5 Bit große Adreßsammelleitungen A 0
bis A 7 gegeben.
Der Speicherteil in jedem der Mechanismen 50 bis 57 enthält weiterhin eine Schreibsteuerleitung, die aktiviert
werden muß, bevor Daten in den Speicherteil geschrieben werden können. Die äußeren Enden dieser
Schreibsteuerleitungen sind bezeichnet mit WO bis Wl
in Fig.5b. Um z. B. Daten in die achtzehnte Zeile der
Spalte 4 zu schreiben, muß die Schreibleitung W4 aktiv sein und die 5 Bit große Adreßsammelleitung A 4 muß
den Adreßcode 10001 geben. (Hinweis: die erste Zeile hat die Adresse 00000). Wenn diese beiden Bedingungen
erfüllt sind, werden die auf der 9 Bit großen Eingangssammelleitung 64 für die Spalte 4 erscheinenden Daten in die achtzehnte Zeile der Speicherspalte 4
gesetzt.
In einer Gesamtübersicht kann man sich den Pufferspeicher 20 als einen einheitlichen Speicher von
256 Byte Größe mit 32 adressierbaren Zellen vorstellen, die jeweils eine Länge von acht Bytes haben. Zur
Datenübertragung von und zum Hauptspeicher 25 können während eines Zugriffs acht Datenbytes aus
dem Pufferspeicher 20 ausgelesen oder in ihn geschrieben werden.
Der Pufferspeicher 20 ist eine Speicheranordnung aus to
acht Speiehergfuppen mit jeweils ein Byte Breite. Wenn
hier vom Speicher ohne nähere Angaben gesprochen wird, so ist damit die ganze Sammlung der jeweils ein
Byte breiten Gruppe als Einheit gemeint.
Wenn hier von Spalten und Zeilen gesprochen wird, so ist das im elektrischen und nicht im physikalischen
oder mechanischen Sinne zu verstehen. Die Speicherstellen brauchen insbesondere physikalisch nicht zusam
menzuhängen und Zeilen und Spalten im physikalischer Sinne zu bilden. Hier soll lediglich gesagt werden, dal
die Speicherstellen so verdrahtet sind, daß sie elektrisch gesehen in Zeilen und Spalten angeordnet erscheiner
oder sich genauso verhalten. Die zum Pufferspeicher 2i gehörende Datenübertragungsschaltung für mehrere
Bytes enthält zwei Hauptteile, nämlich die Af-Byteda
tenübertragungsschaltung für die Übertragung vor M-Byte-Datensegmenten zwischen dem Pufferspeichei
20 und dem Hauptspeicher 25, und eine MByte-Datenübertragungsschaltung zur Übertragung von /V-Byte
Datensegmenten zwischen dem Datenpuffer 20 und dei Kanalschaltung im E/A-Kanal 11. A/und N sind ganze
Zahlen, M ist die Anzahl der Bytespalten irr Pufferspeicher 20. Im vorliegenden Ausführungsbeispie
hat M den Wert acht und Nden Wert zwei. Jeder diese!
Hauptteile enthält wiederum zwei Unterteile. Die Af-Byte-Datenübertragungsschaltung enthält eine erste
Datenübertragungsschaltung zur Übertragung von 8 Byte großen Datensegmenten vom Hauptspeicher 25 in
den Pufferspeicher 20 und eine zweite Datenübertragungsschaltung zur Übertragung von 8 Byte großen
Datensegmenten in Gegenrichtung vom Pufferspeicher 20 zum Hauptspeicher 25. Entsprechend enthält die
/V-Byte-Datenübert'-agungsschaltung eine erste Datenübertragungsschaltiiing für die Übertragung von 2 Byte
großen Datensegm snten vom E/A-Kanal 11 an den
Pufferspeicher 20 und eine zweite Datenüberträgungsschaltung zur Übertragung von zwei Byte großen
Datensegmenten in Gegenrichtung, nämlich vom Pufferspeicher 20 zum E/A-Kanal 11.
Betrachtet man den ersten Teil der seht Byte großen
Datenübertragungsschaltung für die Übertragung vom Speicher zum Puffer, so enthält dessen in F1 g. 5b
gezeigter Teil eine Torschaltung 78, eine Datensammelleitung 79, das Speicherübertragungsdatenregister
(STDR) 23, die Datensammelleitung 32, alle jeweils acht Bytes groß, einen Satz von jeweils ein Byte großen
Assemblern 80 bis 87 und die ein Byte großen Datensammelleitungen 60 bis 67. Die Torschaltung 78
empfängt ihren Eingang von dem in F i g. 2 gezeigten Byteschieber 30. Die numerierten Unterteilungen des
STDR 23 bezeichnen die verschiedenen Bytepositionen darin. Wie durch die Ausleitung von der Datensammelleitung 32 gezeigt ist, sind die einzelnen Bytepositionen
einer solchen Datensammelleitung 32 mit verschiedenen Assemblern 80 bis 87 gekoppelt und somit mit
verschiedenen spaltenbildenden Speichergruppen 50 bis 57. In den entsprechenden Augenblicken während einer
E/A-Schreiboperation (EAS), werden die Daten in der Byteposition 0 des STDR 23 an die die Bytespalte 0
bildende Gruppe 50 gegeben, die Daten in der Byteposition 1 werden an die Gruppe 51 gegeben usw.
für die anderen Bytepositionen.
Betrachtet man jetzt den für die Übertragungen vom Puffer zum Speicher zuständigen Teil der Datenübertragungsschaltung, so enthält der in Fig.5b gezeigte Teil
die Ausgangssammelleitungen 70 bis 77, die Torschal-' tung 88, das STDR 23 und die Datensammelleitung 89,
alle jeweils acht Bytes groß, die zur Eingabeseite des Byteschiebers 30 in Fig.2 läuft Während einer
E/A-Leseoperation (EAL), werden die Bytes 0 bis 7 der
von den Gruppen 50 bis 37 adressierten Daten in die entsprechenden Bytepositionen 0 bis 7 im STDR 23 zum
entsprechenden Zeitpunkt gesetzt Auf diese Weise empfangen die einzelnen Bytepositionen der Datensammelleitung 89 Daten von den verschiedenen, die Spalten
bildenden Speichergruppen 50 bis 57.
Betrachtet man jetzt den für die Übertragung zwischen Kanal und Pufferspeicher zuständigen zwei
Byte großen Teil der Übertragungsschaltung, von dem ein Teil in Fig.5b gezeigt ist, so enthält dieser eine
Datensammelleitung 90, das CIDR 21, beide jeweils zwei Bytes groß, die ein Byte großen Assembler 80 bis
87 und die acht jeweils ein Byte großen Eingangssammelleitungen 60 bis 67. Die geradzahlige Byteposition,
nämlich die Byteposition 0, im CIDR 21, ist mit jedem geradzahligen Assembler 80,82,84 und 86 und somit im
gegebenen Moment mit jeder Speichergruppe 50,52,54 und 56, die die geradzahligen Spalten 0, 2, 4 und 6 im
Pufferspeicher 20 bilden, verbunden. Auf ähnliche Weise ist die ungeradzahlige Byteposition eins im CIDR 21 mit
jedem ungeradzahligen Assembler 81,83,85 und 87 und somit zum entsprechenden Zeitpunkt mit jeder
Speichergruppe 51, 53, 55 und 57 verbunden, die die ungeradzahligen Spalten 1,3, 5 und 7 im Pufferspeicher
20 bilden. Bestenfalls kann nur eine geradzahlige Schreibsteuerleitung WO, W2, VV 4 und W6 während
eines gegebenen CT-Impulses und nur eine ungeradzahlige
Schreibsteuerleitung Wl, W3, WS und Wl während eines gegebenen CT-Impulses erregt werden.
So können günstigstenfalls während einer gegebenen Ansteuerung des Pufferspeichers 20 für Übertragungszwecke zwischen Kanal und Pufferspeicher nur zwei
Bytes in den Pufferspeicher 20 geschrieben werden. In manchen Fällen wird nur ein geradzahliges oder ein
ungcradzahliges Byte während eines gegebenen CT-Intcrvalles in den Pufferspeicher 20 geschrieben. In
anderen Fällen werden auch gar keine Bytes geschrieben.
lev'er der Assembler 80 bis 87 ist eine Version des in
F i g. 4 gezeigten allgemeinen Assemblers mit zwei Eingängen und einem Ausgang. Die Speicherübertragungsimpulse
(ST) werden an eine erste Wahlsteuerleitung eines jeden Assemblers 80 bis 87 angelegt.
Während jedes ST-Impulscs werden somit die acht Byteposilionen der vom Speicher zum Puffer laufenden
Datcnsammellcitung 32 mit entsprechenden Byteeingangssammelleitungcn
60 bis 67 verbunden. Andererseits werden die Kanalübertragungsimpulse (CT) an eine zweite Wahlstcucrleitung für jeden Assembler 80
bis 87 angelegt. Während jedes CT-Impulses sind somit die Ausgangsleitungcn vom CIDR 21 mit den Eingangssammelleitungen 60 bis 67 verbunden, wobei die
geradzahlige Ausgangsleitung mit einer geradzahligen Eingangslcitung und die ungeradzahlige Ausgangslcilung
mit einer ungcradzahligcn Eingangssammellcitung verbunden ist. Nach Darstellung in Fig. 3 tritt der
CT-Impuls in der ersten Hälfte und der ST-Impuls in der
zweiten Hälfte eines jeden Kanalzyklus auf.
Die CT- und ST-Impulse kommen von einer Pulsgencratorschallung 91 (Fig. 5a), die von den
Kanaltaktimpulsen CO bis C3 vom E/A-Kanal 11 gespeist wird. Diese Pulsgencratorschaltung 91 kann
z. B. ein paar Flip-Flop-Schaltungen enthalten, von denen eine durch die Vorderflanke eines jeden Impulses
CO eingeschaltet und durch die Hinterflanke eines jeden Impulses C"? zurückgestell! wird und so die
CT-Impulse erzeugt. Die andere Flip-Flop-Schaltung wird durch die Vorderflanke eines jeden Impulses C2
eingeschaltet und durch die Hinterflanke eines jeden Impulses C3 zurückgestellt und erzeugt so die
ST-Impulse.
Betrachtet man jetzt den Übertragungsteil vom Puffer zum Kanal der zwei Byte großen Datenübcrtragungsschaltung,
so enthält der in Fig. 5b gezeigte Teil
die acht jeweils ein Byte großen Ausgangssammelleitungen 70 bis 77, ein Paar Assembler 92 und 93 mit jeweils
vier Eingängen und einem Ausgang, das zwei Byte große Kanalausgangsdatenregister (CODR) 22 und eine
zwei Byte große Datensammelleitung 94, die zum E/A-Kanal 11 führt Die geradzahligen Ausgangsleitungen
70, 72, 74 und 76 von den geradzahligen Bytepositionen 50, 52, 54 und 56 sind mit den vier
Eingängen des geradzahligen Assemblers 92 verbunden,
κι dessen Ausgang an die geradzahlige Byteposition im
CODR 22 angeschlossen ist In ähnlicher Weise sind die ungeradzahligen Ausgangsleitungen 71, 73, 75 und 77
von den ungeradzahligen Bytepositionen 51,53,55 und 57 mit den vier Eingängen des ungeradzahligen
π Assemblers 93 verbunden, dessen Ausgang an die
ungeradzahlige Byteposition im CODR 22 anjischlossen
ist. Die Assembler 92 und 93 haben die in Fig.4
gezeigte Form. Vier geradzahlige Lesesteuerleitungen RO, R2, /?4 und R6 sind einzeln an die vier
>o Wahlsteuerleitungen des Assemblers 92 angeschlossen,
und zwar so, daß die Leitung RO die Wahl der Byte-Null-Ausgangsleitung 70, die Leitung R 2 die Wahl
der Byte-2-Ausgangsleilung 72 usw. einschalten. Nur eine der vier geradzahligen Lesesteuerleitungen RO,
>i R 2, RA und R 6, kann zu einem gegebenen Zeitpunkt
aktiviert und somit mit der Byteposition null im CODR 22 verbunden werden. Auf ähnliche Weise sind
die vier ungeradzahligen Lesesteuerleitungen RX, /7 3, R5 und Rl mit den vier Wahlsteuerieitungen im
ι« Assembler 93 verbunden. Die Leitung R 1 schaltet die
Wahl der Byte-Eins-Ausgangssammelleitung 71. die Leitung R 3 die Wahl der Byte-Drei-Ausgangssammelleitung
73 usw. ein. Nur eine dieser ungeradzahligen Lesesteucrleitungen kann zu einem gegebenen Zeit-
r> punkt aktiviert werden, uns somit kann jeweils nur eine ungeradzahligc Ausgangssammelleitung 71, 73, 75 oder
77 mit der Byteposition Eins im CODR 22 verbunden werden.
Im Lauf einer gegebenen Eingabe/Ausgabeoperation für ein bestimmtes E/A-Gerät werden nur zwei der vier
möglichen Datenübcrtragungsschaltungsteile benutzt.
Die Paarungen sind folgende:
Die Paarungen sind folgende:
Leseoperation vom
Eingabe/Ausgabegerät (EAL)
Eingabe/Ausgabegerät (EAL)
1. Schaltung für Kanalübertragung mit Puffer schreiben
(CTBW)
2. Schaltung für Speicherübertragung mit Puffer lesen (STBR)
Schrcibopcralion im
Eingabe/Ausgabegerät (EAS)
Eingabe/Ausgabegerät (EAS)
1. Schaltung für Spcicherübcrtragung mit Puffer
schreiben (STBW)
->■-) 2. Schaltung für Kanalübertragung mit Puffer lesen
(CTBR)
Dem Datenpuffer wird durch die vom E/A-Kanal 11
gelieferten Steuersignale CTBW; CTBR; STBW und
Wi STBR mitgeteilt, welche E/A-Operation auszuführen ist.
Diese Signale erhält man durch Decodierung des Kanalbefehlscode, der gegenwärtig im E/A-Kanal 11
steht. Jedes dieser Steuersignale ist auf dem aktiven Niveau, in diesem Fall dem binären Einerpegel, während
μ jedes Kanal/.yklus, wenn seine spezielle Funktion
auszuführen ist, und es ist in diesem Fall auf dem inaktiven Niveau, auf binär Null, während jedes
Kanalzyklus, in dem seine spezielle Funktion nicht
auszuführen ist. Obwohl also beispielsweise in einer E/A-Leseoperation beide Steuersignale CTBW und
STBR benutzt werden, ist in einigen Kanalzyklen nur das Signa! CTB W aktiv. Das Signal STBR steht dann für
die Kanalzyklen auf dem aktiven Pegel, in denen Daten tatsächlich vom Pufferspeicher 20 in den Hauptspeicher
25 übertragen werden. In ähnlicher Weise gibt es bei einer E/A-Schreiboperation einige Kanalzyklen, in
denen nur eines der beiden Steuersignale STBW und
CTBR auf dem aktiven Niveau liegt
Der Datenpuffer empfängt auch Daten vom E/A- Kanal 11 und benutzt dieselben Kanaltaktimpulse C(I bis
CZ wie der E/A-Kanal 11.
Betrachtet man eine typische E/A-Leseoperation genauer, so sieht man, daß Daten vom E/A-Kanal 11
empfangen und in das Kanal-Eingabedatenregister CIDR 21 gesetzt werden. Diese Daten werden dann in
der empfangenen Reihenfolge in den Pufferspeicher 20 geschrieben und dort gepackt gespeichert, beginnend an
der Byteposj.*:on Null der ersten Zeile (Zeile Null des
Pufferspeichers 20). Nachdem eine vorgegebene Datenmenge im Pufferspeicher 20 gesammelt ist, beginnt das
Gerät jeweils acht Bytes auszulesen und sie in den Hauptspeicher 25 über die Torschaltung 88, STDF; 23,
die Datensammelleitung 89, den Byteschieber 30 (F i g. 2) und das MSDR 27 (F i g. 2) zu übertragen.
Wenn Daten während einer E/A-Leseoperation
empfangen werden, ist das Steuersignal CTBWauf dem binären Einerpegel. Dadurch wird das UND-Glied 95
aktiviert und durch die Taktimpulse C3 Daten in das CIDR 21 gesetzt. Gleichzeitig werden die entsprechenden
Schreibsteuerleitungen (maximal zwei) durch die Taktimpulse Cl erregt, um den Datensatz im CIDR 21
in den Pufferspeicher 20 zu schreiben. Wenn Daten während der E/A-Leseoperation Ii den Hauptspeicher
25 zu übertragen sind, aktiviert das Steuersignal STBR die Torschaltung 88. damit die an ihrer Eingangsseite
gelieferten Daten an die Ausgangsseite weitergelcilet werden. Dieses Steuersignal STBR aktiviert weiterhin
ein UND-Glied 96, um die Taktimpulse C3 an den Eingangssteueranschluß des STDR 23 über das UND-Glied
% und ein ODER-Glied 97 zu liefern. Dadurch kann jeder Impuls C3 die Daten auf den Ausgangssanimelleitungen
70 bis 77 in das STDR 23 setzen.
Für den Pufferspeicher 20 sind zwei separate Adreßmcchanismen vorgesehen. Während einer
E/A-Leseoperation steuert der eine die Speicherung der von E/A-Kanal 11 hereinkommenden Daten und der
andere das Auslesen der an den Hauptspeicher 25 übertragenen Daten. Die zwei Adreßsätze werden an
den Pufferspeicher 20 über einen Satz von acht Assemblern 100 mit jeweils zwei Eingängen und einem
Ausgang angelegt, mit denen die Umschaltung von einer Adresse zur anderen gesteuert wird. Insbesondere der
an jeden Assembler der Gruppe 100 angelegte Impuls CTIäßt die fünf Bit großen Kanalübertragungsadressen
an die ebensogroßen Adreßsammellcitungen A 0 bis A 7
für die entsprechenden ein Byte breiten Speichergruppen 50 bis 57 anlegen. In ähnlicher Weise läßt der an
jeden Assembler 100 angelegte ST-Impuls die fünf Bit
großen Speieherübertragungsadressen an die fünf Bit großen Adreösammelleitungen A 0 bis A 7 gehen. Da
nach Darstellung in Fig. 3 die Impulse CT und ST verschachtelt auftreten, können die vom E/A-Kanal 11
hereinkommenden Daten an einer Stelle gespeichert werden, während in demselben Kanalzyklus die für die
Übertragung zum Hauptspeicher 25 ausgelesonen Daten von einer anderen Speichcrstelle entnommen
werden können.
Die Fig,6A bis 6F zeigen eine typische Datenübertragung
vom E/A-Kanal 11 zum Pufferspeicher 20. Diese sechs Figuren stellen die Datenübertragung für
■-> sechs aufeinanderfolgende Kanalzyklen dar. Während eines ersten in Fig.6A gezeigten Kanalzyklus wird ein
erstes Datenbyte, das Byte 0, in die erste Speicherstelle mit Bytegröße im Pufferspeicher 20, nämlich die Zeile 0,
Spalte 0, geschrieben oder dort gespeichert Während
in des zweiten in Fig.6B gezeigten Zyklus wird das
Datenbyte Eins in der Zeile 0, Spalte 1, gespeichert
Während der dritte Zyklus (Fig.6C), wird das
Datenbyte 2 in die Zeile 0, Spalte 2, gespeichert Während der ersten drei gezeigten Übertragungen wird
Ii also nur je ein Datenbyte gespeichert Während des in
Fig.6D gezeigten vierten Zyklus werden die beiden
Datenbytes 3 und 4 in die Zeile 0, Spalten 3 und 4 gespeichert Während des in F i g. 6E gezeigten fünften
Zyklus, werden die Datenbytes 5 und 6 in die Zeile 0,
jo Spalten 5 und 6 gespeichert. Während des in Fig.6F
gezeigten sechsten Zyklus, wird das Datenbyte 7 in Zeile 0, Spalte 7 gespeichert und das Datenbyte 8 wird in die
Zeile I, Spalte 0 gespeichert. Damit ist der Fall gezeigt in dem während eines einzigen Zugriffs Pufferspeicher-
2"> stellen adressiert werden müssen, die in zwei verschiedenen
Zeilen des Pufferspeichers 20 liefen.
Die schwarzen Punkte in einigen Speicherstellen bezeichnen in den Fig.6B bis 6F das Vorhandensein
von Daten, und die Zahlen geben nur die während des
κι laufenden Zyklus gespeicherten Daten an.
Der einfacheren Numerierung halber wird hier das erste vom E/A-Kanal 11 während einer gegebenen
E/A-Leseoperation empfangene Datenbyte als ein geradzahliges Byte, das nächste als ein ungeradzahliges
π Byte usw. behandelt. Die geradzahligen Bytes v/erden auf die geradzahlige Byt«.position null im CIDR 21 und
die ungeradzahligen Bytes in die ungeradz:ihlige Byteposition I gesetzt.
Die Fi g. 7A bis 7E zeigen typische Datenübertragun-
Ki gen vom Pufferspeicher 20 /um Hauptspeicher 25. Jede
der F i g. 7A bis 7E stellt einen anderen Kanalzyklus dar. Wie vorher geben die schwarzen Punkte in einer
Pufferspeicherstelle das Vorhandensein von Daten an dieser Stelle an, und die Zahlen bezeichnen die während
•n des jeweiligen Zyklus interessanten Stellen. Der Slern in
Zeile 1, Spalte 2 in Fig. 7A besagt, daß für dieses
Beispiel genügend Daten zum Einleiten einer Speicherübertragung vorhanden sind, nachdem 11 Datenbytes
vom E/A-Kanal Il hereingekommen sind und im
in Pufferspeicher 20 gespeichert wurden. Weiterhin wird angenommen, daß die Anfangsbytestelle im Hauptspeicher
25 die Bytestelle 5 in irgendeiner Zeile ist oder in anderen Worten, daß die drei wertniedersten Startadreßbits
für den Hauptspeicher 25 die Bits 101 r.iniJ.
μ Das erste Ziel besteht darin, eine acht-Byte-Grenze
im Hauptspeicher 25 zu bekommen. Dazu liest man die ganze Zeile Null aus dem Pufferspeicher 20 und sclzt sie
in das STDR 23. Die Ausgabe des STDR 23 fließt durch den Byteschieber 30 (Fig. 2), und zu gegebener Zeit
ho wird sie in das MSDR 27 gesetzt (Fig. 2). Nach
Darstellung in Flg. 7A wird der Byteschieber JO so eingestellt, daß er eine Rechtsverschiebung um fünf
Bytepositionen vornimmt. Die Byte-Wahleinheit 28 (F i g. 2) läßt nur die drei am weitesten rechts stehenden
hi Bytepositionen im MSDR 27 in den Hauptspeicher 25
schreiben. Nach Darstellung in Fig. 7A werden die Daten dadurch an eine acht-Byte-Grcnze im Haupispeichcr
25 gebracht.
F i g, 7B zeigt, was im nächsten Kana'zyklus passiert.
Wieder werden acht weitere Bytes aus dem Pufferspeicher 20 gelesen und in das STDR 23 gesetzt. In diesem
Fall kommen jedoch einige Datenbytes aus der Zeile null und andere aus der Zeile 1 des Pufferspeichers 20.
Diese acht zusammenhängenden Bytes in zwei verschiedenen Zeilen werden während eines Zugriffs zum
Pufferspeicher 20 adressiert. Somit werden die Datenbytes 3 bis 10 während des zweiten Kanalzyklus in das
STDR 23 gesetzt. Diese Datenbytes werden um fünf Bytepositionen in einem Durchlauf durch den Byteschieber
30 nach rechts verschoben und dann in das MSDR 27 gesetzt. Die Datenbytes 3 bis 10, werden dann
in die nächste Zeile des Hauptspeichers 25 geschrieben.
Die Fig.7A bis 7E stellen den Fall dar, in dem die
Länge der aus dem E/A-Gerät zu lesenden Daten 79 Bytes beträgt und die Anfangsstelle im Hauptspeicher
25 nicht mit einer 64-Byte-Grenze zusammenfällt In diesem Fall wird zuerst eine besondere Speicherübertragungsoperation
ausgeführt, um 11 Datenbytes in den Hauptspeicher 25 zu übertragen und so die nächste
64-Byte-Grenze im Hauptspeicher 25 zu erreichen. Nach Darstellung in den F i g. 7A und 7B sind hierzu
zwei Zugriffe zum Pufferspeicher 20 erforderlich. Nachdem dann genügend Daten im Pufferspeicher 20
gesammelt sind, wird eine volle Speicherübertragungsoperation ausgeführt, um die nächste 64 Datenbytes in
den Hauptspeicher 25 zu übertragen. Dazu nimmt man acht Übertragungen mit je acht Bytes vom Pufferspeicher
20 /.um Hauptspeicher 25 vor. In Fig. 7C ist die
erste derartige Übertragung und in Fig. 7D die letzte gezeigt. Danach folgt eine weitere Spcicher-Teilübertragungsopcration,
um die übrigen vier Dalcnbytes in den Hauptspeicher 25 zu übertragen. Diese Teilübertragung
ist in Fi g. 7F. gezeigt.
Die Daten vom E/A-Kunal 11 werden also während
aufeinander folgender Kanalzyklen in Gruppen von ein oder zwei Bytes in den Pufferspeicher 20 übertragen
und dort gespeichert, bis alle Daten vom E/A-Gerät für die infrage.'.ommendc Lcseoperation gelesen wurden,
An entsprechenden da/.wischengeschobenen Zeitpunkten, werden Daten aus dem Pufferspeicher 20 gelesen
und zur Speicherung in den Hauptspeicher 25 übertragen. Die Daten werden in Gruppen von jeweils
acht Bytes in den Hauptspeicher 25 gesetzt, und es werden während jedes Zugriffs .nit der möglichen
Ausnahme der ersten und letzten Übertragung jeweils acht Datenbytes in den Hauptspeicher 25 geschrieben.
Abhängig von der Stariadrcssc im Hauptspeicher und der Länge der vom E/A· Gerät gelesenen Daten können
währri'd der ersten und letzten Übertragung oder
wählend oincr dieser Übertragungen oder auch keiner
Übertragung weniger als acht Bytes in den Hauptspeicher 25 geschrieben werden. Die infragekommcndc
jeweilige F.ingabe/Ausgabe-Lcscoperalion wird beendel,
nachdem das letzte Dalenbytc in den Hauptspeicher 25 geschrieben wurde.
Eine Eingabc/Ausgabc-Schrciboperation läuft in ziemlich der umgekehrten Reihenfolge ab, wie die
gerade beschriebene Eingabc/Ausgabe-Leseoperation. Daten werden aus dem Hauptspeicher 25 in Gruppen
von acht Bytes ausgelesen, bei Bedarf durch den Byteschieber 30 verschoben und über die Torschaltung
78 an das STDR 23 gegeben. Da das Steuersignal STBW während einer F/A-Schreiboperation auf dem Einerpegel
und das Steuersignal STBR auf dem Null-Pegel steht, wird die Torschaltun./ 78 geöffnet, so daß sie
Datensignale leitet, und die Torschaltung 88 wird abgeschaltet. Die durch die Torschaltung 78 weitergeleiteten
Daten werden durch die über das UN D-GLied S8 weitergeleiteten Taktimpulse CX in das STDR 23
gesetzt. Die Daten im STDR 23 werden der Schreib-ΐ schaltung des Pufferspeichers 20 über die Datensammelleitung
32 und die Assembler 80 bis 87 zur Verfügung gestellt. Jedes Segment von acht Datenbytes
wird während verschiedener Taktimpulse C3, die an ein
UND-Glied 101 angelegt werden, in den Pufferspeicher
in 20 geschrieben. Jeder an das UND-Glied 101 angelegte
Impuls C3 aktiviert alle acht Schreibsteuerleitungen WO bis WT. Das Maß der Verschiebung durch den
Byteschieber 30 wird so eingestellt, daß das Anfangsdatenbyte vom Hauptspeicher 25 in der Position der
π Spalte 0 der ersten Zeile (Zeile 0) im Pufferspeicher 20
gespeichert wird.
Während einer E/A-Schreiboperation bleibt das UND-Glied 95 abgeschaltet (CTBW auf Null-Pegel), so
daß keini Daten in das CIDR 21 gesetzt werden.
.'ο Während der CT-Zeitintervalle w'J auch keine der
Schrcibsicücriciiungcfi WO bis W7 c^cgi, was noch
viel wichtiger ist. Somit werden während einer E/A-Schreiboperation nur Daten vom Hauptspeicher 25
in den Pufferspeicher 20 geschrieben.
>> In e;ner E/A-Schreiboperation werden immer acht
Bytes in den Pufferspeicher 20 geschrieben. Während der ersten Übertragung vom Speicher zum Puffer, kann
dadurch unerwünschter Abfall in den Pufferspeicher 20 gespeichert werden, das wird jedoch dadurch ausgegiichen,
daß dieser Abfall während der nächsten Übertragung von acht Bytes aus dem Hauptspeicher 25
in den Pufferspeicher 20 überlagert wird.
Für eine E/A-Schreiboperation beginnt die Datenübertragung vom Pufferspeicher 20 an den E/A-Kanal
11. sobald vom Hauptspeicher 25 übertragene Daten im
Pufferspeicher 20 zur Verfügung stehen. Die Daten werden an den E/A-Kanal 11 in Einheiten von je zwei
Bytes über das Kanal-Ausgabedatenregistor CODR 22
und die zwei Byte breite Datensammelleitung 94
jo übertragen, jeder vom UND-Glied 99 an das CODR 22
angelegte Taklimpuls Cl setzt also zwei weitere
Datenbytes in das CODR 22. wobei das geradzahlige Byte vom Assembler 92 und das ungeradzahlige vom
Assembler 63 gewählt wird.
π Wie vorher sind mit den Assemblern IW) zwei
separate Adreßmcchanismen gekoppelt, so daß vom Hauptspeicher 25 empfangene Daten an einer anderen
Stelle gespeichert werden können, als Daten zur Übertragung an den E/A-Kanal 11 ausgelesen werden.
>() Wegen dieser Zykhisleilung durch die Impulse CTund
ST für die Assembler 100 können die Einschreibungen
vom Hauptspeicher 25 unabhängig von den Auslesungen ;>n den E/A-Kanal 11 weiterlaufen, und bei Bedarf
können während desselben Kanalzyklus acht Bytes
Vi geschrieben und zv ei Bytes ausgelesen werden.
Sowohl für E/A-Leseoperationen als auch für E/A-Schreibopcrationen arbeitet der Pufferspeicher im
Umlaiifbetricb. Wenn also in einer gegebenen E/A-Operation mehr als 25υ Bytes zu übertragen sind, dann kehrt
(,ο die Puffcr.chreiboperation in die erste Zeile des
Pufferspeichers 20 zurück, nachdem die letzte Zeile des Pufferspeichers 20 gefüllt ist, und fährt dann dort mit
dem Schreiben fort, bis alle Daten übertragen wurden oder ein weiterer Umlauf in die Zeile 0 erforderlich
h> wird. Die Pufferleseoperation läuft in ähnlicher V/eise
um, und die Lese- und Schreiboperationen sind soweit koordiniert, daß neue Daten oberhalb noch nicht
gelesener früher gespeicherter Daten nicht überlagert
werden können.
In F'ig. 8 ist im einzelnen die Konstruktion eines
Schreibtreibers 102 gezeigt, der gemäß Darstellung in Fig. 5a die Treibersignale für die Schreibstcucrleitungen
WO bis W7 liefert. Der Schreibtreiber 102 besteht aus einem Satz von acht ODER-Gliedern, von denen je
ein Eingang mit der Ausgangsleitung 103 vom UND-Glied 101 verbunden ist (Fig. Sa). Wenn das
Steuersignal während einer E/A-Schreiboperation auf dem binären Einerpegel liegt, aktiviert jeder Taktimpuls
C'3 den ganzen Satz von Schreibstcuerlcitungcn WO bis WT. Während einer F./A-Leseoperalion werden andererseits
die zu den Gruppen 50 bis 57 laufenden Schrcibsteucrleitiingcn IVO bis VV7 einzeln über
einzelne Signale gesteuert, die an den zweiten Hingang ilcr ODER-Glieder im Schrcibtreibcr 102 über die
Leiter 104 geleitet werden. Wahrend eines gegebenen Kanal/.yklus sind keine, eine oder zwei Schreibsleuerlci
tiingcn HO bis W 7 aktiv gesteuert.
In Cig. 5a sind die Hauptfunktionseinhciten einschließlich
der Puffersteucrung 24, die in F i g. 2 gezeigt ist, dargestellt, /.ti diesen Funktionseinheiten gehören
zwei separate Sätze von Pufferspeieher-Adreßsehaltungen zur einzelnen Lieferung mehrere Bits umfassender
Adressen an den Adreßmechanismus einer jeden .Speichergruppe 50 bis 57. Die Spcicherübertragungs-Datcnpufferadreüschaltung
liefert insbesondere mehrere Bits umfassende Adreßfclder während der ST-Zcilabschnitie
an die Adrcßsammcllcitungcn A 0 bis A 7. Diese Spcicherübcrtragungsadrcßfcldcr dienen der
Adressierung des Pufferspeichers 20 zur Datenübertragung von und zum Hauptspeicher 25. Ähnlich ist eine
KanalübertragungsDatcnpuffcradreßschaltung vorgesehen
für die Lieferung von mehrere Bits umfassenden Adreßfeldcrn während der C'T-Zeitabschnittc an die
Adreßsammclleitungcn A 0 bis Λ 7. Diese CT-Adreßfeldcr
dienen der Adressierung des Pufferspeichers 20 zur Datenübertragung von und zum E/A-Kanal 11.
Die .Spcicherübertragungs-Datenpufferadreßschal
lung enthält einen Speicherübcrtragungs-Pufferadreßzähler mit (Jbertragungssteuerung 105. Der Adreßzählertcil
dieser Einheit 105 liefert eine Spcicherübertragungs-Pufferadresse
(STBA) an die Speicherübertragungs-Piifferadreßsteuerung
(ST-Pufferadreßsteuerung) 106. Diese ST-Pufferadrcßstcuerung 106 wiederum
liefert eine fünf Bit große Adresse an einen ersten Eingang der Adreßsammelleitungs-Assembler A 0 bis
A 7 in der Assembler-Gruppe 100. Die Übertragungssteuerung 105 empfängt verschiedene Hauptspeicheradreßsignale.
Zählerrückstellsignale und Datenlängensignale von der !PU 14 über die Steuersammelleitung
46.
Die Kanalübertragungsdatenpuffer-Adreßschaltung
enthält einen Kanalübertragungs-Pufferadreßzähler
(CT-Pufferadreßzähler) 107 und eine CT-Zugriffssteuerung
108. die einen CT-Pufferadreßsteuerteil. einen
CT-Schreibsteuerteil und einen CT-Lesesteuerteil enthält.
Der CT-Adreßzähler 107 liefert eine Kanalübertragungs-Pufferadresse
(CTBA) an den Adreßsteuerteil in der CT-Zugriffssteuerung 108, und dieser wiederum
liefert eine fünf Bit große Adresse an einen zweiten Eingang eines jeden Assemblers 100, die die Adreßsammelleitungen
A 0 bis A 7 treiben. Der CT-Schreibsteuerteil
der CT-Zugriffssteuerung 108 empfängt ein CTBW-Steuersignal und die Taktimpulse CX vom
E/A-Kanal 11. Der CT-Schreibsteuerteil empfängt ebenfalls die Steuersignale GERADE und UNCER.
vom E/A-Kanal 11. Das Signal GERADE steht auf dem aktiven Pegel, wenn ein gültiges Datcnbylc auf dem Teil
der Datensammellciiung 90 liegt, der ein Üatcnbylc an
die geradzahlige Bylcposition (Byte 0) im CIDR 21 liefert. Auf ähnliche Weise ist das UNGER.-Steticrsignal
ι auf dem aktiven Pegel, wenn ein gültiges Datenbyte auf dem Byteteil der Datcnsammclleilung 90 liegt, der ein
Datenbyle an die ungeradzahlige Byteposition (Byte I)
im CIDP 21 gibt. Der CT-Piifferadrcßzählcr 107
empfängt ein Zählerrückslellsignal von der IPU 14 über
in die Sleuersammellcitung 46. Dieser CT-Puffcradrcltzählcr
107 empfängt auch ein Kanalübertragungshingensi
gnal (CTI.) vom E/A-Kanal 11. Dieses Signal gibt an. ob
null, ein oder zwei Bytes gülliger Daten auf der
Datensammellciiung 90 stehen.
ι· Eine Datcnpuffcrzählsteucrung 109 ist ebenfalls
vorgesehen, um unter anderem dem E/A-Kanal 11 mitzuteilen, wenn genügend Daten im Pufferspeicher 20
zur Einleitung einer Puffer-Speiihcrübcrtragung gesammelt
wurden. In diesem lall gibt der E/A-Kanal 11
.ή die entsprechenden Steuersignale an die llaiiptsieuc
rung 15 (I ig. 2). um die Puffcr-Spcichcrübcriragung
einzuleiten.
In F i g. 9 ist im einzelnen die Konstruktion der in
F-" i g. 5a allgemein dargestellten ST-Pufferadreßstciie
:. rung 106 gezeigt. Außerdem isl ein Speichcrübertra
gungs-Pufferadreßregister (STBAR) 110 gezeigt, das in
dem STPuffcradrcßzähler 105 liegt und einen Teil davon bildet. Das STBAR 110 wird nach Bedarf so
fortgeschrieben, daß es die Lage des laufenden
Sn Anfangsbyte im Pufferspeicher 20 für die Spcichcrübcrtragung
enthält. Das STBAR 110 ist B Bits breit, wobei
/ider Logarithmus zur Basis zwei des Produktes Λ/ χ R
isl. Im vorliegenden Beispiel ist M(Anzahl der Spalten
im Pufferspeicher 20) gleich acht und R (Anzahl der
r> Zeilen im Pufferspeicher 20) gleich 32. Im vorliegenden
Ausführungsbeispiel ist somit MxR= 256 und B = 8.
Das STBAR 110 ist ein acht Bit großes Adreßregister.
Diese acht Bit große Adresse reich! aus zur eindeutigen Bezeichnung jeder gegebenen je ein Byte großen Stelle
in in dem 256 Stellen großen Pufferspeicher 20.
Der Teil der in F ig.9 dargestellten ST-Pufferadreßschallung
enthält weiterhin eine Schaltung, die auf den Satz von r höherwertigen Adreßbils im STBAR 110
anspricht und einen modifizierten Satz höherwertiger
4"i Adreßbus erzeugt, deren Wert um eine Zahl höher isl
als der Wert des nicht modifizierten Satzes. Wie bereits gesagt, ist der Faktor rder Logarithmus zur Basis zwei
von R. die Anzahl der Zeilen im Pufferspeicher 20. Im
vorliegenden Beispiel isl R = 32 und somit r = 5. Die
,ο auf den Satz von fünf werthöheren Adreßbits (Bit' 0 bis
4) im STBAR 110 ansprechende Schaltung erzeugt den
modifizierten Satz wcrthöherer Adreßbits und ist dargestellt als eine +1-Erhöhungsschaltung 111. Der
unveränderte Satz der fünf werthöheren Adreßbits wird
5-, als Satz A bezeichnet und der modifizierte Satz als Satz
MA. Der Af/4-Adreßwert ist um eine Zahl höher als der
/4-Adreßwert-
Die in Fig.9 gezeigte ST-Adreßschaltung enthält
weiterhin eine Wahlschaltung, um in jeden Adressier-
bo mechanismus der Speichergruppe 50 bis 57 (Fig.5b)
entweder den Satz der unveränderten Adreßbits A oder
den Satz der veränderten Adreßbits MA zu geben. Diese Wahlschaltung wird durch einen Satz von sieben
Assemblern 112 bis 118 mit jeweils zwei Eingängen und
bs einem Ausgang und eine nichtgeschaltete Ausgangsleitung
119 dargestellt. Diese Assembler 112 bis 118 und
die Ausgangsleitung 119 liefern den gewählten Satz von
Adreßbits an die einzelnen jeweils fünf Bit großen
Adreßsammclleitiingcn A O bis /W (ί ig. 5b) über
entsprechende Assembler 100 (Cig. 5a). Gemäß Darstellung
durch die nichtgcschalletc Ausgangslcitung 119
empfängt die Adreßsammellcitung A 7 immer den
unveränderten Satz A der fünf höherwcrtigen AdrcB-bits
in den ST-Zeitintcrvallen.
Fig. 10 zeigt im einzelnen als Beispiel die Konstruktion
Jcs Assemblers 115, der die Adreßbus für die
Adrcßsammcllcitung A 3 wählt. Durch die Verwendung des Inverters 120 wird nur eine externe Wahlsteuerleittinp
121 hcnotigt. Wenn die Wnhlstcucrl.Hlung 121 auf
binär null geht, wird der unveränderte Sat/ A der fünf
Adrellbits an ilie /ulreßsammellcitung A 3 gegeben.
Wenn andererseits die Wahlstciicrlcitung 121 auf binär
eins steht, wird der modifizierte Sat/ MA der fünf
Adreßbus stattdessen an die Adrcßsamniellcitung A 3
gegeben.
Die anderen Assembler der Gruppe 112 bis 118 in
I i H (J (.irut iicnunw) iuftw^h-tiil i»/io (Inr in Γ i rr IfI
tr tr- r- - "- e- ' "
gezeigte Assembler 115. Die ST-Puffcradrcßschaltung
in I i jr. 4 enthält auch eine mit der Wahlschaltung 112
bis 119 gekoppelte Wahlstcucrung. die auf den Satz von
/j) wertniederen Adrellbits im STBAK 110 anspricht und
feststellt, weither Satz von werthöheren Adrcßbits an
ieden Adrcllmechanisinus für jede Speichergruppe 50
bis 57 gegeben wird. Der Faktor /;; ist der Logarithmus
zur Basis zwei von M. wobei Λ/die Anzahl von Spalten im Pufferspeicher 20 ist, die im vorliegenden Beispiel
acht beträgt, und somit ist m = 3. Die Wählcrsteucrung.
die in ΙΊ g. 4 durch die Wahlsteiicrsehaltung 122
darf stellt ist. spricht auf den Satz der drei wertniederen
Adrcßbits (Bits 5 bis 7) im STBAR 110 an.
I i g. 11 zeigt im einzelnen die Konstruktion der
Wahlsicuerschaltung 122 der Γ i g. 9. Die verschiedenen
AiisgangsMeiierleiiiingen 0 bis 6 sind entsprechend mit
den Wahlsleucreingängcn der Assembler 112 bis 118
verbunden Die von der Wahlsteiicrsehaltung 122 vorgenommene logische Verknüpfung ist dargestellt in
tier Tabelle der Fig. 12. Wenn z. B. die drei wertniederen
Adreßbus (Bits 5 bis 7) im STBAR 110 den Wert 000
haben, dann wird die unveränderte Adresse A an jede
der acht Adrcßsammelleitungen A 0 bis A 7 gegeben. In
diesem FaI! liegen die im Pufferspeicher 20 adressierten zusammenhängenden acht Bytestellen alle in derselben
Zeile, die bestimmt wird durch den Wert von A. Wenn andererseits die drei wertniederen STBAR-Bits ζ. Β. den
Wert 011 haben, dann wird die unveränderte Adresse A
an die AdreBsammelleitungen A 3 bis A 7 gegeben und die veränderte Adresse MA würde an die AdreBsammelleitungen
A 0 bis A 2 gegeben. Dadurch ist ein Fall dargestellt, wo ein acht Byte großes Speichersegment
adressiert werden muß. das in zwei verschiedenen nebeneinanderliegenden Zeilen des Pufferspeichers 20
liegt. Der Wert von A bestimmt die erste der beiden Zeilen und der Wert von MA die zweite. Wenn A z. B.
den Wert acht hat (ein binärer Wert von 01000 für die
Bits 0 bis 4), dann hätte MA den Wert neun (binärer Wert 01001 für die Bits 0 bis 4), und das entspräche dem
in Fig. 7d gezeigten Fall. Dort werden die letzten fünf
Bytes der Zeile 8 und die ersten drei Bytes der Zeile 9 während ein und derselben Adressierung des Pufferspeichers 20 angesteuert.
Die in Fig. 13 gezeigte CT-Pufferadreßschaltung
zeigt im einzelnen die Konstruktion der in Fig.5a dargestellten CT-Zugriffssteuerung 108. Diese enthält,
wie schon gesagt, einen CT-Pufferadreßsteuerteii, einen
CT-Schreibsteuerteil und einen CT-Lesesteuerteil. Der
CT-Pufferadreßsteuerteil liefert fünf Bit große Adreß-
felder während der CT-Zeitintervallc über die entsprechenden
Assembler 100 an die Adreßsammclleitiingcn AO bis A 7. Der CT-Schreibslciierteil liefert die
Schreibsteucrsignale WO bis WJ an die in F i g. 5a gezeigten .Schreibtreiber 102. Der CT-Lescsteuerteil
steuert die Aktivierung der Lesesteuerleitungen RO bis RJ, die zu den in Fig. 5b gezeigten Kanalausgangsassemblcrn
92 und 93 laufen.
In Fig. 13 ist auch ein Kanalübertragungs-Pufferadreßrcgister
(CTBAR) 124 gezeigt, das im CT-Pufferadrcßzählcr
107 liegt und einen Teil davon bildet. Dieses CTBAR 124 liefert eine Ö-Bit-Datenpuffcradrcssc zur
Adressierung einer gewünschten Starlbylcstellc im Pufferspeicher 20 während des CT-Intcrvalles. Der
Faktor B hat dieselbe Bedeutung wie oben in Verbindung mit dem STBARlIO beschrieben. Im
vorliegenden Ausführungsbeispicl ist also das CTBAR 124 ein acht Bit großes Adreßregister, und die
Aiisgabeopcra.ion wiederholt fortgeschrieben, so daß
sie die nächste gewünschte Startbytestclle im Pufferspeicher
20 adressiert.
Der in F i g. 13 gezeigte Teil der Kanalübcriragungv
adreßschallung enthält auch ein ungerades Gruppcnregister
125 und ein gerades Gruppenregister 126 zur
Aufnahme der B — I höherwertigen Adrcßbits (Bits 0 bis 6) vom CTBAR 124. Der CT-Adreßschaltungsteil in
Fig. 13 enthält weiterhin eine Erhöhungsschaltung 127
zum Erhöhen des Wertes im geraden Gruppenregister
126 um Eins, wenn das wertniederste Bit (Bit 7) im
CTBAR 124 den binären Wert eins hat. Wenn das Bit 7 den binären Wert null hat, leitet die Erhöhungsschaltung
127 die Bits 0 bis b des CTBAR 124 unverändert auf das
gerade GruppenregiMcr 126. Wenn also das Bit 7 = 0 ist. wird in das gerade Gruppenregister 126 derselbe
binäre Wert gesetzt wie in das ungerade Gruppenregister 125. Wenn Bit 7=1 ist. wird in das gerade
Gruppenregister 126 ein um die Zahl Eins höherer Wert gesetzt als in das ungerade Gruppenregister 125.
Die Kanalübertragungsadreßschaluing enthält weiter
eine Schaltung zur Lieferung des Satzes von r-höherwertigen
Adreßbits im ungeraden Gruppenregister 125 an den Adreßmcchanismus in jeder der ungeradzahlig
numerierten, ein Byte großen Speichergruppen 51, 53, 55 und 57 (Spalte 1, 3. 5 und 7) im Pufferspeicher 20. Der
Faktor r hat dieselbe Bedeutung wie oben, es ist nämlich der Logarithmus zur Basis zwei von R, wobei R die
Anzahl von Zeilen im Pufferspeicher 20. im vorliegenden Beispiel also fünf ist. Die fünf werthohen Adreßbits
(Bit 0 bis 4) im ungeraden Gruppenregister 125 werden also während der CT-Zeitabschn;tte von der Adreßsammdleitung
129 und den entsprechenden Assemblern 100 an jede der ungerade numerierten Adreßsammelleitungen A 1, A 3, A 5 und A 7 gegeben.
In ähnlicher Weise ist eine Schaltung vorgesehen, um
den Satz der r-höherwertigen Adreßbits im geraden
Gruppenregister 126 an den Adreßmechanismus der geradzahligen Speichergruppen 50,52,54 und 56 (Spalte
0, 2, 4 und 6) im Pufferspeicher 20 zu geben. Insbesondere werden die fünf werthohen Adreßbits
(Bits 0 bis 4) im geraden Gruppenregister 126 der geradzahligen Adreßsammelleitungen AO, AZ A4 und
A 6 über die Adreßsammelleitung 130 und die entsprechenden Assembler 100 während der CT-Zeitintervalle zugeführt
Für die fviehrzahi der Zugriffe zum Pufferspeicher 20
zwecks Kanalübertragung sind die geradzahligen Gruppenadressen AO, A 2, A4 und A 6 dieselben wie
die ungcrad/ahligcn Ai, AJ, A 5 und A 7. In den
meisten Fällen wird also in jeder der acht Spalten des Pufferspeichers 20 dieselbe Zeile adressiert. Manchmal
wie bei dem in Fig. 6F gezeigten Fall, sind die geradzahligen A'lressen AO, A 2, A 4 und A 6 jedoch um
eine Zahl höher als die ungeradzahligen Adressen A i,
A3, A 5 und ai 7. Wenn also die Anfangsbytestelle für
die Kanalübertragung in der Bytespalte 7 des Pufferspeichers 20 liegt, haben die Bits 5, 6 und 7 im
CTBAR 124 den Wert III. Durch Erhöhung um + 1 in
der Frhöhungsschaltung 127 wird dann in die Bitposition vier der Adresse ein Wert übertragen, der durch die
Erhöhungsschaltung 127 läuft. Die Bits 0 bis 4 im geraden Gruppenregister 126, werden dadurch um eine
Zahl höher als die Bits 0 bis 4 im ungeraden Gruppenregister 125, so daß die nächste Zeile im
Pufferspeicher 20 für das zweite Byte der die beiden Flv/Int imifnccnnrlpn l£ ünaliiK^rtrQiTiinrr 'irlr^cctprl it/tr/l
E/A-Lescoperation ausgeführt wird, bleiben die UND-Glieder 136 abgeschaltet (CTBW bleibt auf binär null)
und keine der Schrcibsteuerleitungen W\, Wi, W5und
W7 wird aktiviert, so daß während der Kanalübertragungsabschnitte
keine Daten in den Pufferspeicher 20 geschrieben werden.
Für Lesesteuerzwecke während einer E/A-Schreiboperation werden die einzelnen Decodier-Ausgangsleitungen
132 bis 135 mit den entsprechenden Lesesteuerleitungcn Ri, R 3, /?5 und /?7 verbunden, die zu dem
Assembler 93 für das ungerade Byte führen, der zum CODR 22 (Fig. 5b) gehört. Dadurch kann der Assembler
93 nur ein ausgewähltes der vier an seinen Eingang gegebenen ungeradzahligen Bytes auswählen und ;<uf
die ungerade Byteposition im CODR 22 weiterleite-. Das ausgewählte ungerade Byte wird bestimmt durch
die Codierung der Bits 5 und b im ungeladen
Somit kann ein zwei Bytes umfassendes Speichersegment in zwei benachbarten Zeilen des Pufferspeichers
20 mit einem Zugriff zu diesem Pufferspeicher 20 adressiert werden.
Die CT-Zugriffssteucrung 108 in Fig. 13 enthält auch
eine Lese/Schreibsteuerung, die auf einem Satz wertniederer Adreßbits im CTBAR 124 anspricht u,id
eine geradzahlige und eine ungeradzahlige Speichergruppe im Pufferspeicher 20 für die Datenübertragung
auswählt. Diese Lese/Schreibsteuerung enthält einen mit dem ungeraden Gruppenregister 125 gekoppelten
ungeraden Gruppendecodierer 131, der auf einem Satz
wertniederer Adreßbits (Bits 5 und 6) anspricht und eine ein Byte breite ungcradzahiige Speichergruppc wählt.
Dieser ungerade Gruppendecodierer 131 hat vier Ausgangsleitungen 132 bis 135, von denen zu einem
gegebenen Zeitpunkt nur jeweils eine auf dem binären Einerpcgel stehen kann. Die aktivierte Ausgangsleitung
wird durch Codierung der Bits 5 und 6 bestimmt, die für jede Ausgangsleitung in der Zeichnung angegeben ist.
Für Zwecke der Schreibsteuerung während einer E/A-Leseoperation, werden die Decodierer-Ausgangsleitungen
132 bis 135 einzeln über UND-Glieder 136 mit den entsprechenden ungeradzahligen Schreibsteuerleitungen
Wl, W3, WS unf W7 gekoppelt, die über den
Schreibtreiber 102 zum Pufferspeicher 20 führen. Die UND-Glieder 136 werden als Gruppe durch ein
weiteres UND-Glied 137 gesteuert.das das Steuersignal
CTBW, die Taktimpulse Ci und das Steuersignal UNG.
vom E/A-Kanal 11 empfängt. Die UND-Glieder 136 werden somit zum Weiterleiten von Signalen während
der Taktimpulse Cl vorbereitet, aber nur wenn eine CT-Pufferschreiboperation durchzuführen ist (CTBW
auf Pegel eins) und gültige Daten in der ungeradzahligen Byteposition 1 im ClDR 21 stehen (UNG.-Signal auf
binär eins). Nimmt man an, daß diese Bedingungen erfüllt sind, so wird das Datenbyte in der Byteposition I
des CIDR in dem Pufferspeicher 20 während eines Taktimpulses Cl an der Spaltenstelle geschrieben, die
durch die Schreibsteuerleitung Wl, W3, W5 und W7
bestimmt wird, die auf dem Einerpegel steht (während eines gegebenen Kanalzyklus kann nur eine dieser
Leitungen auf dem Pegel stehen), und das Datenbyte wird an die Zeilenstelle geschrieben, die durch den
Adreßwert Ai, A3, AS oder A 7 bestimmt ist. Somit
bestimmen die Bits 0 bis 4 des ungeraden Gruppenregisters 125 die Zeilenkoordinate, die Bits 5 und 6 die
Spaltenkoordinate und der Taktimpuls Ci den Zeitpunkt, zu dem das ungerade Daienbyte tatsächlich in
den Pufferspeicher 20 geschrieben wird. Wenn keine
Während jedes CT-Zeitintcrvalles, werden die Gruppenadreßsammelleitungen
A 0 bis A 7 so aktivier!, daß sie acht Byte große Speieherstcllen im Pufferspeicher 20
adressieren. Der Inhalt dieser Speichcrstellen erscheint auf den Aiisgangssammellcitungen 70 bis 77. F.ini; der
ungeraden Ausgangssammellcitungen 71, 73, 75 und 77
wird durch den Assembler 93 gewählt, und was auf
dieser Sammelleitung erscheint, an das CODR 22 wcitergeleitet. Nur die während eines Taktimpulses C 1
bei der Ausführung einer E/A-Schreiboperation (CTBR auf binär eins) vom Assembler 93 weitergeleileten
Daten werden jedoch tatsächlich in das CODR 22 gesetzt. Daten die zu einer anderen Zeit als Cl
erscheinen, werden ignoriert. Gesteuert wird dieser Vorgang durch das UND-Glied 99 (F ig. 5b), das die auf
die Steuerlcitung des CODR 22 gesetzten Daten treibt. Wenn keine E/A-Schreiboperation ausgeführt wird,
bleibt auch das Steuersignal CTBR auf null und es wird alles ignoriert, was vom Assembler 93 geleitet win:. Für
Kanalübertragungszwecke ist also effektiv der Moment,
in dem Daten aus dem Pufferspeicher 20 ausgelesen werden derjenige, zu dem am Ausgang des ' IND-Gliedes99derTaktimpuls
Cl auftritt.
Die Kanalübertragungs-Lese/Schreibsteuerung enthält weiterhin für die geradzahligen Spalten 0, 2, 4 und b
im Pufferspeicher 20 ähnliche aber separate Steuereinrichtungen.
Die Lese/Schreibsteuerung insbesondere enthält weiter einen Decodierer 138 für die gerade Gruppe, der
mit dem geraden Gruppenregister 126 gekoppelt ist und auf einen Satz wertniederer darinstehender Adreßbits
(Bits 5 und 6) anspricht und eine der geradzahligen Speichergruppen 50,52,54 und 56 für die Datenübertragung
wählt. Der Decodierer 138 hat vier Ausgangslei tungen 140 bis 143, von denen zu einem gegebenen
Zeitpunkt nur eine auf binär eins stehen kann. Die zur Aktivierung der verschiedenen Ausgangsleitungen 140
bis 143 benötigten Codierungen der Bits 5 und 6, sind in der Zeichnung gezeigt.
Für Schreibsteuerzwecke werden die einzelnen Decodierer-Ausgangsleitungen 140 bis 143 über einzelne
UND-Glieder 144 mit den entsprechenden geradzahligen Schreibsteuerleitungen WO, WZ WA und W6
gekoppelt. Die UND-Glieder 144 werden als Gruppe durch ein weiteres UND-Glied gesteuert, das vom
E/A-Kanal 11 das Steuersignal CTBW, die Taktimpulse Cl und das Steuersignal GERADE empfängt. Das
Steuersignal GERADE steht auf binär eins, wenn ein gültiges Datenbyte in die geradzahlige BytepoMtion null
im CIDR 21 gesetzt wurde. Wenn man annimmt, daß
das der Fall ist und cine F./A-Lcscoperation ausgeführt
wird und c*as Signal CTbW auf binar eins steht, dann
werden die Daten in der Byteposition null des CIDR 21
während eines Taktimpulses CX in den Pufferspeicher 20 an eine geradzahlige Spaltcnstclle geschrieben, die
durch die Erregung einer der vier Leitungen WO, W2, WA und W6 bestimmt wird. Die Zeilenstelle wird
bestimmt durch den AdreBwerl A 0, A 2, A 4 oder A 6.
Für Lesesteuerzwecke werden die Decodierer-Ausgangslcitungcn
140 bis 143 einzeln mit dun entsprechenden l.escstcuerleitungcn RO, R 2, R 4 und Rf)
verbunden, die zu dem zum CODR 22 (F ig. 5b) gehörenden Assembler 92 führen. Die aktive Leitung
der Lesesteuerleitungen WO, R2, R4 und R6 läßt den
Assembler 92 die entsprechende Ausgangssammclleitung
70, 72, 74 und 76 wählen u:;d die Daten auf der Ausgangssammelleilung an den geradzahligen Byte-O-t:;.->.».>n.»
,to, (C)IiR 22 'A""i~r!ciiCM D;;1; ~crai«c
Datenbyte wird in das CODR 22 gesetzt, wenn der Taktimpuls Ci am Ausgang des UND-Gliedes 99
auftritt.
Die Kanalübertragungs-Lcsc/Schrcib .icucrung ist
also so aufgebaut, daß Spcicherstellcn in der Größe eines Byte im Pufferspeicher 20 paarweise adressiert
werden können, wobei ein Giu-d dieses Paares eine
geradzahlige Bytestclle und das andere eine ungeradzahlige Bytcstelle ist. Die geradzahligen Bytcstellen
liegen in den geradzahligen Spal'en 0, 2, 4 und 6 und die
i'ngcradzahligen Bytestellcn in di;n ungeradzahligen
Spalten I, 3, 5 und 7. Zur einfacheren Erklärung wird hier dei Begriff »Gerade-Ungeradc-Zugriff« benutzt,
um den Fall zu beschreiben, in dem die niedriger numerierte Speicherstcllc eine geradzahlige Bytcstelle
ist und die höher numerierte Speicherstelle eine ungerudzahlige. Diese Art Zugriff erhält man, wenn die
Adreßwerte in den Gruppenrcgistern 126 und 125 dieselben sind. Die folgende Tabelle gibt die verschiedenen
Schreibsteucrpaarc und Lcsestcuerpaare an. die für verschiedene Codewerte der Bits 6 und 7 aktiviert
werden, die in beiden Registern 125 und 126 bei einem Gerade-Ungerade-Zugriff erscheinen können.
Gerades und ungerades Register gleich
Bit 6-7
Code
Code
Aktive
Schreibleitungen
Aktive
Leseleitungen
Leseleitungen
| 00 | wo-wi | RO-R 1 |
| OI | Wl-WS | Rl-Ri |
| IO | 1^4-1^5 | R4-R5 |
| Il | Wf,-Wl | R6-R 1 |
Bits 6 und 7, die in den Registern 125 und 126 für den Fall
einer Ungeradc-Gersde-Adressiening vorliegen können.
Gerades Register eine Zahl höher
In der Spalte »aktive Schreibleitungen« wird angenommen, daß ein Zugriff zu zwei Bytes vorgenommen
wird. Bei Zugriff zu einem Byte würde die ungeradzahlige Schreibleitung nicht aktiviert, weil das
an das UND-Glied 137 gegebene Steuersignal UNG. auf binär null steht.
Zur Erklärung wird hier mit dem Ausdruck »Ungerade-Gerade-Zugriff« eine Kanalübertragung
bezeichnet, bei der die adressierte niedriger numerierte Speicherstelle eine ungerade Speicherstelle ist und die
höhernumerierte Speicherstelle die gerade Speicherstelle ist. Dieser Fall tritt ein, wenn der Adreßwert im
Register 126 um eine Zahl höher ist als der Adreßwert im Register 125. Die nachstehende Tabelle zeigt die
aktiven Schreibleitungspaare und die aktiven Leseleitungspaare für die verschiedenen Codebeziehungen der
Unger.
Bit 6-7
Code
Bit 6-7
Code
Ger.
Bit 6-7
Code
Bit 6-7
Code
Aktive Schreibleitungen
Aktive Leseleitungen
Ol
IO
IO
Il
00
00
W I - W 2
IF 3- U" 4 WS W"(t
WT- 111
RlRl R ?-Λ 4
R 5-R 6 RT-R 0
Für die Spalte »aktive Schreibleitiingen« wird
angenommen, daß zwei Bytes adressiert werden. Bei «j«^r hi]""™··"'"·"™ "\:r eines B'tci würde die
entsprechende geradzahlige Schreibsteuerleitung nicht aktiviert, wjil das an das UND-Glied 145 gegebene
Steuersignal ClRADH auf dem abschaltenden binären
Null-Pegel stünde.
Die F i g. 6D. 6E und hl zeigen Beispiele für
Ungciade-Gerade-Zugriffe zu zwei Bytes im Puffcrspeicher
20 für den Fall einer Kanal-Puffer-Datenübertragung. Die Fig.6A und bC zeigen Beispiele für
Gerade-Ungerade Zugriffe zu einem Byte, wo die ungeradzahlige Schreibsteuerleitung abgeschaltet
bleibt. Fig. 6B zeigt ein Beispiel für einen Ungerade-Gnrade-Zugriff
zu einem Byte, wo die geradzahlige Schreibsteuerleitung (die Leitung W2) abgeschaltet
bleibt.
Wie in den F i g. 6A bis 6F weiter gezeigt ist, wird das
erste vom E/A-Gerät IO empfangene Datenbyte (Byte null) in die Byteposition null des ClDR 21, das zweite
vom E/A-Gerät 10 empfangene Datenbyte (Byte eins) in
die Byteposition eins, das dritte empfangene Datenbyte (Byte 2) in die Byteposition null, das vierte empfangene
Datenbyte (Byte drei) in die Byteposition eins im CIDR 21 gesetzt usw. Mit anderen Worten, abwechselnd
empfangene Datenbytes werden abwechselnd als gerade und ungerade numerierte Datenbytes behandelt,
wobei das erste empfangene Datenbyte als gerades Byte behandek wird. Unter diesen Umständen werden
die geraden Datenbytes immer in die geradzahlig numerierte Rweposition null im CIDR 21 und die
ungeraden Datenbytes immer in die ungeradzahlige Byteposition I im CIDR 21 gesetzt.
Für den Fall einer E/A-Schreiboperation werden Daten vom Pufferspeicher 20 in das Kanalausgangsdatenregister
22 in Einheiten von jeweils zwei Bytes übertragen. Abhängig von der Datenrate des jeweiligen
E/A-Gerätes 10, das die Daten empfängt, können die Datenübertragungen vom CODR 22 an den E/A-Kanal
11 Einzelbyteübertragungen oder Doppelbyteübertragungen
oder eine Kombination der beiden Arten sein. Der E/A-Kanal 11 teilt dem CT-Pufferadreßzähler 107
mit, wieviele Bytes für jeden Kanalzyklus aus dem CODR 22 zu nehmen sind. Wenn nur ein Byte
genommen wird, wird das CTBAR 124 um nur eine Zahl fortgeschrieben. Während des nächsten Kanalzyklus ist
daher eines der in das CODR 22 gesetzten Bytes eine Wiederholung des nicht genommenen Byte vom
vorhergehenden Kanalzyklus.
In Fig. 14 ist im einzelnen die Konstruktion des in Fig.5a gezeigten CT-Pufferadreßzählers 107 gezeigt.
Wie schon im Zusammenhang mit Fig. 14 erwähnt wurde, ist das CTBAR 124 der Fig. 13 eigentlich ein
Teil des CT-PufferadreQzählers 107. Der Adreßzähler
107 enthält weiterhin eine Fortschreibungsschaltung zur Fortschreibung des CTBAR124 um die Zahl der
übertragenen Datenbytes bei jeder Datenübertragung zwischen dem Pufferspeicher 20 und dem E/A-Kanal 11.
Diese Fortschreibungsschaltung enthält ein Kanalübertragungslängenrsgister
(CTLR) 146, das vom E/A-Kanal 11 einen zwei Bit großen Code zur Angabe der
Anzahl der während des nächsten Kanalzyklus zu übertragenden Bytes (0. 1 oder 2) empfängt. Dieser
Übertragungslängencode wird in das CTLR 146 gesetzt, wenn am Ende des dann laufenden Kanalzyklus der
Taktimpuls CZ erscheint, der auch den Adreßwert im
CTBAR124 in einen Kanalübertragungsadreßpuffer
147 setzt. Gleichzeitig wird der CTBAR-Adreßwert in die Register 125 und 126 der Fig. 13 gesetzt. Der
Adreßwert im Kanalübertragungs-Adreßpuffer (CTBA2) 147 ist also die CT-Pufferadresse für den
neuen laufenden Kanalzyklus. Der binäre Längenwert im CTLR 146 wird zum binären Adreßwert im
CTBAB 147 im Binäraddierer 148 zur Ausgabe der nüriicipn Kiirislüb£rtr2tTiiniTsr*ijifersdre5se addiert. Diese
nächste CT-Pufferadresse wird dann durch den Taktimpuls CO für den jetzt laufenden Kana.zyklus in
das CTBAR 124 gesetzt. Auf diese Weise wird das CTBAR 124 jedesmal bei einer Datenübertragung
zwischen dem Pufferspeicher 12 und dem E/A-Kanal Il fortgeschrieben, so daß es auf die Startbyte-Speicherstelle
im Pufferspeicher 20 zeigt, die für den nächsten Kanalzyklus zu benutzen ist, in dem Daten übertragen
werden.
Der nächste Adreßwert im CTBAR 124 wird über eine acht Bit große Adreßsammelleitung 149 an die
CT-Zugriifssteuerung 108 in der in Fig. 13 gezeigten
Art geliefert. Das CTBAR 124 kann auch auf einen Adreßwert gestellt werden, der von der IPU 14 über die
Steuersammelleitung 46 geliefert wird. Dabei handelt es sich um einen Vorbereitungsschritt für eine E/A-Operation,
um das CTBAR 124 auf Null zurückzustellen. Das CTBAR !24 kann auch auf Null zurücklaufen, wenn es
seine höchste Zahl erreicht hat. Dadurch kann die CT-Adressierung von Daten in den oder aus dem
Pufferspeicher 20 auf die Zeile null des Speichers 20 zurücklaufen, wenn die Operation des E/A-Gerätes
Daten mit einer relativ großen Länge betrifft.
In Fig. 15 ist im einzelnen die Konstruktion der in
Fig. 5a gezeigten Übertragungssteuerung 105 dargestellt. Sie enthält vier Hauptmechanismen, nämlich: 1.
Fine Einrichtung zur Bestimmung der Übertragungslänge, mit der die Anzahl der während des laufenden
Kanalzyklus von oder /um Hauptspeicher 25 zu übertragenden Datenbytes bestimmt wird; 2. einen
Pufferadrcß/ähler zur Fortschreibung des STBAR 110
so. daß es die Anfangsbytespcicherstcllenüdressc im
Pufferspeicher 20 für den laufenden Kanalzyklus enthält; 3. einen Datenlängcnzählcr, mit dem festgestellt
wird, wenn alle Dalenbytcs für eine bestimmte
Speicher/Puffer-Übertragungsopera tion übertragen wurden und 4. eine Vorrichtung zur Ermittlung des
Schicbcbctragcs. der vom Byteschieber 30 (Fig. 2) verlangt wird. Wenn einmal eine bestimmte Speicher/
Puffer-Übertragungsoperation tatsächlich begonnen hat. steuert die Übertragungssteuerung 105 die Bewegung
der Datenbytes zwischen dem Pufferspeicher 20 und dem Hauptspeicher 25 ohne Unterstützung von der
IPU 14. Dadurch wird die IPU 14 freigesetzt und kann verschiedene Speichcriibertragungen für Hintergrundaufgaben
ausführen, die sonst zusätzliche IPU-Zeit belegen wurden.
jede neue Lese- oder Schreiboperation mit E/A-Ge
raten wird eingeleitet entweder durch Abruf einei E/A-Startinstruklion vom Hauptspeicher 25 in dit
j IPU 14 oder durch Kommandoverkettung von einen
vorher ausgeführten Kanalkommandowort.
Die Fig.7A bis 7E zeigen ein Beispiel für eint E/A-Leseoperation, in dem 79 Datenbytes (Bytes 0 bh
78) von einem bestimmten E/A-Gerät zu lesen und ir
to den Hauptspeicher 25 zu übertragen und dort zi
speichern sind. Gemäß Darstellung in den Fig. 7A bi; 7E, kann die ganze Lese- oder Schreiboperation ar
einem E/A-Gerät unterteilt werden in zwei oder mehl Speicher/Puffer-Übertragungsoperationen, wobei ir
jeder derartigen Operation bis zu 64 Datenbyte! zwischen dem Pufferspeicher 20 und dem Hauptspei
eher 25 übertragen werden können.
Nach Darstellung in Fig. 15 enthält die Übertra gungssteuerung 105 drei Hauptregister, nämlich da«
2(i STBAR 110, das oben schon in Verbindung mit Fig.
erwähnt wurde, tin Hauptspeicher-Adreßregister (MSAR) 150 und ein Kanaidaien-LängcnrcgisiCi
(CHDLR) 151. Diese Register werden am Anfang übei mehrere Bits umfassende Binärsignale eingeschalte
r> oder zurückgestellt, die von der IPU 14 über die
Steuersammelleitung 46 gegeben werden. Da STBAR 110 wird aim Anfang auf lauter Nuller
zurückgestellt, und zwar zu Beginn einer neuen Lese oder Schreiboperatson, und wird danach während de:
i'i Ablaufes dieser Operation durch die IPU 14 nich zurückgestellt. Andererseits empfangen das MSAR 15(
und das CHDLR 151 von der IPU 14 zu Beginn eine jeden Speicher/Puffer-Übertragungsoperation. di<
während einer E/A-Geräte Leseoperation ode
Γ> Schreiboperation auftreten kann, eine Anfangseinstel
lung.
Zu Beginn einer jeden Speicher/Puffer-Übertra gungsoperation wird das MSAR 150 von der IPU 14 s(
eingestellt oder geladen, daß es die drei wertniederstcr
4(i Adreßbits der kompletten Startbyteadresse für der
Hauptspeicher 25 enthält. Diese drei wertniederstei Adreßbiis geben an, welches der acht Bytes in einen
Speicherwort als Startbytc zu benutzen ist. Natürlicl bezeichnen sie nicht das infragckommendc Speicher
■»> wort. Das MSAR 150 enthält also mit anderen Worter
ausgedrückt, nicht die komplette Hauptspeichcradrcssc sondern nur deren drei wcrlnicdcrstc Bits. Um di
Arbeitsweise des in Fig. 15 gezeigten Gerätes /x erklären, werden diese drei wertniederen Adreßbits mi
")» den Bits 5 bis 7 bezeichnet. Es ist jedoch nicht di
wirkliche Bitnummer, wie sie in der Hauptspeicher adreßsammclleilung 29 in Fig. 2 erscheint. Im Augen
blick ist die Hauptsache jedoch, daß sie die dre weirtnicderstcn Adreßbits auf der Haiiplspeichcraclrcß
">"> Sammelleitung 29 sind.
Zu Beginn einer jeden Spcicher/Puffcroperation fii eine gegebene E/A-Gcrätc-Leseschreiboperation win
das CHDLR 151 am Anfang von der IPU 14 über dii Stcucrsammellcitiing 4* so eingestellt oder geladen, dal
Mi es eine binäre Darstellung der Anzahl der währen
dieser Spcicher/Pufferopcration zu übertragender Datenbytes enthält. In den meisten Fällen wird da
CHDLR 151 höchstwahrscheinlich mit dem Wert 6< geladen. Das ist die Anzahl der für eine voll
hi Speicher/Puffer-Übcrtragungsopcration im Gegensat
zu einer Teiloperation zu übertragenden Bytes.
Das Anfangsladcn oder Rückstellen der Register 110
150 und 151 wird /eillich durch die von der IPU l<
gelieferten Taktimpulse 72 und T3 gesteuert. Beim
Auftreten des nächsten Kanaltaktimpulses CI werden die Register 110, 150 und 151 auf die entsprechenden
Werte der Pufierregister 152, 153 und 154 eingestellt.
Die STBA-Register 110 und 152 sind acht Bits breit, die
MSA-Register 150 und 153 sind drei Bits breit und die
CHDL-Register 151 und 154 sind acht Bits breit. Bezogen auf die anderen Register und für Kombinationszwecke
werden die MSA-Bits so behandelt, als ob sie auf den Bitpositionen 5,6 und 7 stehen.
Die Einrichtung zur Bestimmung der Übertragungslänge in Fig. 15 enthält eine Achter-Komplementschaltung
155, die die MSA-Bits empfängt und deren Achter-Komplement bildet. Die Beziehung zwischen
den Eingabebits und den Ausgabebits für die Achter-Komplementschaltung 155 ist in der nachstehenden
Tabelle aufgezeigt.
| MSA | BL | BL |
| Bits 5-7 | Grenzlänge | Bits 4-7 |
| 000 | 8 | 1000 |
| 001 | 7 | Olli |
| 010 | 6 | 0110 |
| 011 | 5 | 0101 |
| 100 | 4 | 0100 |
| 101 | 3 | 0011 |
| 110 | 2 | 0010 |
| Hl | I | 0001 |
Die Ausgabe der Achter-Komplementschaltung (BL-Bits 4 bis 7) wird Grenzlängenwert (BL) genannt. Dieser
BL-Wert ist gleich der Anzahl der Bytes, die zum Erreichen der nächsten Speicherwortgrenze oder
Acht-Byte-Grenze im Hauptspeicher 25 gebraucht werden Für das in Fig. 7A gezeigte Beispiel hätten die
MSA-Bits den Wert 101 und somit ist das Byte 1 die Startbyteposition in der ersten Speicherwortstelle. In
diesem Fall braucht man drei weitere Datenbytes, um die nächste Acht-Byte-Grenze im Hauptspeicher 25 zu
erreichen, und somit wäre die Ausgabe der Achter-Komplementschaltung
155 der Wert 0011.
Nach der ersten Datenübertragung für eine gegebene Speicher/Pufferoperation nimmt das MSAR 150 den
Wert 000 für den Rest dieser Operation an, weil es während der nachfolgenden Kanaltaktimpulsc C3 an
seinem Eingang den Wert 000 hat. Dadurch geht der BL-Wcrt für alle Übertragungen nach der ersten
Datenübertragung auf den Wert 8. Mil anderen Worten, soweit der Grenzlängenwert betroffen ist, wird man
durch die erste Übertragung auf eine Acht-Bytc-Grcnzc geführt und die nachfolgenden Übertragungen sind
Vollübertragungen von 8 Bytes.
Der Datenlängenweri DL im CIIDLB-Rcgistcr 154
ist gleich der Anzahl der Datenbytes, die während einer gegebenen Speicher/Pufferoperation zu übertragen
bleiben. Solange die verbleibende Datenlängc nicht kleiner ist als der Grenzlängenwert am Ausgang der
Achtcr-Koinplernentschaltung 155, wird die Grenzlänge
oder der BL-Wert über das UND-Glied 156 und ein ODER-Glied l!>7 auf die STL-Sammelleitung 158
geleitet und wird zum Spcicherübcrtragungslängenwert (STL). Die Beziehung zwischen den beiden Werten BL
und DL wird durch die Verglcichcr 159 und 160
überwacht. Solange die Datenlängc größer oder gleich 8 ist. gibl der Vcrgleichcr 159 eine binäre Fins aus, die
über das ODER-Glied 161 geführt wird und das UND-Glied 156 einschaltet. Gleichzeitig wird die
Ausgabe des ODER-Gliedes 161 durch einen Inverter 162 invertiert und schaltet das DL-Tor 163 ab. Solange
) der aus den Bits 5 bis 7 bestehende Teil der Datenlänge größer oder genausogroß ist wie der BL-Wert, gibt der
Vergleicher 160 eine binäre Eins aus, die ebenfalls über das ODER-Glied 161 geführt wird und das UND-Glied
156 ein- und das DL-Tor 163 ausschaltet.
κι Sobald der Datenlängenwert DL kleiner wird als der BL-Wert, wird das UND-Glied 156 abgeschaltet und das
DL-Tor 163 eingeschaltet. Dadurch werden die Bits 4 bis 7 des DL-Wertes auf die STL-Sammelleitung 158
gegeben und werden zum STL-Wert. Mit anderen
Ii Worten, sobald der DL-Wert der noch zn übertragenden
Daten kleiner wird als der Grenzlängenwert zum Erreichen der nächsten 8-Byte-Grenze, wird der
DL-Datenlängenwert als Speicherübertrag^gslänge benutzt. Die zu übertragende Länge kann somit niemals
2(i die Länge der noch zu übertragenden Daten überschreiten.
Der in Fig. 15 gezeigte ST-Pufferadreßzählermechanismus
umfaßt das STBARIlO, das STBAB 152 und
einen binären Addierer 166. Der Addierer 166 schreibt
r, die laufende Pufferadresse im STBAB 152 fort durch Addition der laufenden Speicherübertragungslänge auf
die STL-Leitung 158. Dadurch erscheint am Ausgang des Addierers 166 die Speicherübertragungspufferadresse
für den nächsten Kanalzyklus. Diese
jo Adresse wird in das STBARIlO durch den nächsten
Taktimpuls CO gesetzt, so daß sie dann die laufende Speicherübertragungspufferadresse wird. Der
Adreßwert im STBAR 110 wird an die ST-Puff eradreßsteuerung
106 über die 8 Bit große Sammelleitung 167
j) gegeben, die die Sammelleitung der Bits 0 bis 4 und die
Sammelleitung der Bits 5 bis 7 in Fig. 9 enthält. Das STBAR110 kann auf 0 zurücklaufen wenn es seine
Höchstzahl erreicht hat. Dadurch kann die ST-Adressierung von Daten zur Eingabe und Ausgabe im
an Pufferspeicher 20 so oft wie nötig auf die Zeile 0 des
Pufferspeichers 20 zurücklaufen, wenn die E/A-Operation eine relativ große Daienlänge betrifft.
Der in Fig. 15 gezeigte Datenlängenzählerteil umfaßt das CHDLR 151. den CHDLB 154 und einen
r, binären Subtrahierer 168. Der Subtrahierer 168
subtrahiert von dem laufenden Datenlängenwert im CHDLB 154 den laufenden Übertragungslängenwert
auf der STL-Leitung 158 und gibt den Datenlängenwert für den nächsten Kanalzyklus aus. Dieser nächste
Vi DL- Wert wird durch den nächsten Taktimpuls CO in das
CHDLR 151 gesetzt und wird dann zum laufenden DL-Wert. Ein Null-Detektor 169 überwacht den
Ausgang des Sub'rahierers 168 und erzeugt ein Signal STFNDl-. wenn der nächste DL-Wen null wird. Dieses
-Γι Signal STENDf: bezeichnet die Beendigung der
laufenden Speicher/Pufferoperation und wird zur Mitteilung dieser Tatsache an den E/A-Kanal 11
gegeben. Daraufhin sendet der E/A-Kanal 11 ein Endsignal an die Hauptsteuerung 15, um die laufende
w) Speicher/Pufferoperation abzuschließen und zu beenden.
Die in Fig. 15 gezeigte Schiebübertrags-Bestimmungseinrichtung
enthält einen drei Bit großen binären Subtrahierer 170 und ein Schiebebetragsregister 171.
Der Sublrahierer 170 subtrahiert die drei wertniederen Puffcradrcßbits im STBAB 152 von den drei wcrtnicdcrcn
Hauptspcichcradrcßbitsim MSAB 153.
Das am Ausgang des Subtrahicrcrs 170 erscheinende
Ergebnis ist gleich dem Betrag, um den der Byteschieber
30 (Fig.2) die Bytes verschieben muß für die richtige
Speicherausrichtung der Daten im Pufferspeicher 20 und im Hauptspeicher 25, in den die Daten übertragen
werden sollen. Dieses drei Bit große Schiebe-Betrags- ί signal wird durch den ersten Taktimpuls C2 für die
laufende Speicher/Pufferoperation in das Schiebe-Betragsregister
171 gesetzt. Nach Darstellung in den F i g. 7A bis 7E bleibt der Schiebebetrag während einer
gegebenen Speicher/Pufferoperation derselbe, und somit braucht das Schiebe-Betragsregister 171 nicht
mehr eingestellt zu werden. Es kann jedoch gezeigt werden, daß der richtige drei-Bit-Wert trotzdem am
Ausgang des Subtrahierers 170 während jedes nachfolgenden Taktimpulses C2 erscheint, falls das Schiebe-Betragsregister
171 durch jeden Impuls CI eingestellt werden soll.
In dem in Fig. 7A gegebenen Beispiel haben die drei
wertniederen Hauptspeicheradreßbits den Wert 101 und die drei wertniederen Pufferadreßbits den Wert
000. Der am Ausgang des Subtrahierers 170 erscheinende Unterschied hat somit einen Wert von 5, und das ist
der Betrag der für die vom Hauptspeicher 25 benötigte Datenausrichtung erforderliche Rechtsverschiebung. In
dem in Fig.7B gezeigten Fall haben die drei i=,
wertniederen Hauptspeicheradreßbits den Wert 000 und die drei wertniederen Pufferspeicheradreßbits den
Wert 011. Wenn der zweite Wert von dem ersten in dem
drei-Bit-Subtrahierer subtrahiert wird, ist die Ausgabe 101, und das ist wieder der Wert 5. Eine Rechtsverschie- jo
bung von fünf Bytepositionen wird ebenfalls für die acht-Byte-Üben.agung gebraucht, die in Fig. 7B
gezeigt ist.
Der Schiebe-Betrag im Register 171 wird über die Sammelleitung 172 an die Schiebe.?' »uerung 45 in F i g. 2 1
> geleitet. Die Schiebesteuerung 45 stellt den Byteschieber 30 so ein, daß er die Verschiebung vornimmt, die
durch den Betrag im Schiebe-Betragsregister 171 angegeben ist. Bei einer Puffer-Speicherübertragung
verschiebt der Byteschieber 30 nach rechts. Bei einer Speicher-Pufferübertragung verschiebt der Byteschieber
30 nach links. Die Schieberichtung wird der Schiebesteuerung 45 von der Hauptsteuerung *5
abhängig davon angegeben, ob eine E/A-Leseoperation oder eine E/A-Schreiboperation ausgeführt wird. -r>
In Fig. 16 ist im einzelnen die Konstruktion der Datenpufferzählsteuerung 109 der Fig. 5a gezeigt. Sie
enthält einen bidirektionalen Datenpuffer-Zählmechanismus, der auf die Anzahl der in den Pufferspeicher 20
geschriebenen oder aus ihm ausgelesenen Datenbytes w anspricht und eine laufende Zahl der gegenwärtig im
Pufferspeicher 20 vorhandenen nichtgelesenen Datenbytes hält. Dieser Datenpuffer-Zählmechanismus umfaßt
ein acht Bit großes Pufferspeicher-Zählregister 175, einen acht Bit großen Pufferspeicher-Zählpuffer 176, v>
einen acht Bit großen Binäraddierer 177 und eine Ernöhungs/Erniedrigungsschaltung 178. Das Pufferspeicher-Zählregister
175 wird am Anfang während der Vorbereitungsschritte für eine neue E/A-Operation auf
lauter Nullen zurückgestellt. Durch einen aus lauter ho
Nullen bestehenden Wert, der von der IPU 14 über die
Steuersammelleitung 46 gegeben wird. Danach kann das Pufferspeicher-Zählregister 175 während jeder Hiilfte
eines jeden Kanalzyklus (Taktimpulse Ci und C3) entsprechend der Speicherübertragungslänge (STL) und hr>
der Kanaltibcrtragungslänge (CTL) fortgeschrieben werden, die während der betreffenden Zykliishälften
vorliegen, für jeden gegebenen Kanalzyklus können einer oder beide Werte für STL und CTL null sein. In
diesem Fall hat der Fortschreibungsfaktor (Erhöhungsoder Erniedrigungsfaktor) den Wert null. Die Zahl im
Pufferspeicher-Zählregister 175 wird also nicht unbedingt während jedes Halbzyklusintervalles verändert.
Sie wird nur verändert, wenn während eines solcher. Halbzyklus Daten in den Pufferspeicher 20 oder aus ihm
übertragen werden.
Die Erhöhungs/Erniedrigungsschaltung 178 erhöht
die Zahl im Pufferspeicher-Zählregister 175 jedesmal, wenn Daten in den Pufferspeicher 20 geschrieben
werden. Wenn die Daten vom Hauptspeicher 25 geschrieben werden (STBW = 1), wird die Zahl im
Pufferspeicher-Zählregi-iter 175 um den STL-Wert
erhöht. Wenn die geschriebenen Daten vom E/A-Kanal 11 kommen (CTBW = 1), wird die Zahl im Register 175
um den CTL-Wert erhöht. Die Erhöhungs-Erniedrigungsschaltung 178 setzt den Zahlenwert im Register
175 jedesmal herunter, wenn Daten aus dem Pufferspeicher 20 gelesen werden. Wenn die ausgelesenen Daten
zum Hauptspeicher 25 übertragen werden (STBR = 1), wird die Zahl im Zähiregister Ϊ25 heruntergesetzt durch
Addieren des vom STL-Komplementierer 179 gelieferten Wertes. Wenn andererseits die ausgelesenen Daten
an den E/A-Kanal 11 übertragen werden (CTBR = 1), wird die Zahl im Register 175 heruntergesetzt durch
Addieren des vom CTL-Komplementicrer 180 gelieferten
Wertes. Auf diese Weise zählt das Pufferspeicher-Zählregister 175 die Anzahl der nichtgelesenen
Datenbytes im Pufferspeicher 20.
Die Datenpufferzählsteuerung 109 umfaßt auch ein Fangwertregister 181, das von der IPU 14 über die
Steuersammelleitung 46 mit Zahlenwerten geladen wird. Dieses Register 181 wird während der Ausführung
der Vorbereitungsschritte unmittelbar nach dem Abruf einer neuen START l/O-'nstruktion oder einer Befehlskette von einem vorhergehenden CCW am Anfang
geladen. Danach wird es als Teil einer Endfolge für jede Speicher/Pufferübertragungsopcration neu geladen, um
es so für die nächste Speicber/Pirii'erübertragungsoperation
vorzubereiten.
Die Datenzählpuffersteuerung iO9 enthält weiter eine
Vergleichsschaltung 182, die mit dem Pufferspeicher-Zählpuffer 176 und dem Fangwertregister 181 gekoppelt
ist, um bei einer E/A-Leseoperation ein Anforderungssignal zur Einleitung einer Puffer-Speicherübertragungsoperation
abzugeben, wenn die Zahl der ungelesenen Daten im Puffer (CNT) genausogroß oder größer ist als die vorgegebene in das Register 181
gesetzte Zahl Fangwert. Bei einer E/A-Leseoperation wird von der IPU 14 in das Register 181 eine Zahl
gesetzt, die gleich der Anzahl der Datenbytes ist, die zum Erreichen der nächsten 64-Byte-Grenze im
Hauptspeicher 25 gebraucht werden, ausgenommen, wenn die zu übertragende oder noch zu übertragende
Datenlänge nicht zum Erreichen der nächsten 64-Byte-Grenze ausreichen. Dann ist der in das Register 181
gesetzte Wert gleich der zu übertragenden oder noch zu übertragenden Datenlänge. Die 64-Byte-Grenzen im
Hauptspeicher 25 liegen am unteren Ende derjenigen Bytestellen, deren Adressen Vielfaches von 64 sind. Das
von der Vergleicherschaltung 182 erzeugte Anfordcrungssignal wird über einen Assembler 183 (die
lOR-Steuerleitung ist auf dem aktiven Pegel) und die
Signalleitung 184 an den E/A-Kanal 11 gegeben, der wiederum diese Anforderung und andere zugehörige
Steuerinformation wie die Kanaladresse an die Hauptsleucrung 15 weitergibt. Die Anforderung teilt der
Hauptsteuerung 15 mit, daß genügend Daten im Pufferspeicher 20 stehen, um mit einer Puffer-Speicherübertragungsoperation
zu beginnen. Daraufhin verzweigt das Mikroprogramm in der Hauptsteuerung 15 zu der notwendigen Routine, um die Puffer-Speicherübertragungsoperation
einzuleiten und auszuführen.
Um in einer E/A-Schreiboperation ein Anforderungssignal zur Einleitung einer Speicher-Pufferübertragungsoperation
einzuleiten, sobald die Anzahl der ungelesenen üatenbytes im Pufferspeicher 20 unter
einen vorgegebenen Wert fällt, der von der IPU 40 in
das Register 181 gesetzt wird, ist ein weiterer Vergleicher 185 vorgesehen. Im vorliegenden Fall hat
der Pufferspeicher 20 eine Kapazität von 256 Bytes, und der vorgegebene Wert ist beispielsweise 176. Das vom
Vergleicher 185 erzeugte Anforde.-ungssignal wird auch über einen Assembler 183 (IOW ist auf dem aktiven
Pegel) und über die Signalleitung 184 an den E/A-Kanal
11 gegeben. Dieses Anforderungssignal teilt dem E/A-Kanal 11 und dadurch auch der Hauptsteuerung 15
mit, daß der Pufferspeicher 20 weitere Daten gebrauchen kann. Wenn noch Daten an den Pufferspeicher 20
zu übertragen sind, verzweigt das Mikroprogramm in der Hauptsteuerung 15 zur entsprechenden Routine.
Wenn nicht, wird das Anforderungssignal vom E/A-Kanal 11 ignoriert.
Die Arbeitsweise des in Fi g. 2 gezeigten Datenverarbeitungssystems
und insbesondere des Kanaldatenpuffers, der in den Fi g. 5a und 5b gezeigt ist, wird jetzt für
den Fall der in den F i g. 6A bis 6F und in den F i g. 7A bis 7E gezeigten repräsentativen E/A-Leseoperation beschrieben.
In diesem Beispiel sollen insgesamt 79 Datenbytes (Bytes 0 bis 78) vom E/A-Gerät 10 gelesen
und über den E/A-Kanal 11 und den Pufferspeicher 20 in den Hauptspeicher 25 übertragen werden. Die
E/A-Operation soll beginnen, wenn die IPU 14 den entsprechenden Kanallesebefehl an den E/A-Kanal 11
gibt. Dieser Befehl kann entweder durch Abruf einer Start-IO-Instruktion vom Hauptspeicher 25 oder
aufgrund einer Befehlskette von einem vorhergehenden Kanalbefehlswort gegeben werden. Nach der Abgabe
des neuen Kanalbefehles an den E/A-Kanal 11 werden von einer E/A-Mikroprogrammleseroutint bestimmte
Vorbereitungsschritte in der Hauptsteuerung 15 ausgeführt. Insbesondere wird die IPU 14 dazu veranlaßt, das
STBAR 110, das CTBAR 124 und das Pufferspeicher-Zählregister 175 auf den Wert null zu stellen. Durch
Einstellen des STBAR UO und des CTBAR 124 auf null können Daten für den Pufferspeicher 20 beginnend in
der Bytespalte null und Zeile null, gespeichert und ausgelesen werden.
Das erste Ziel der gesamten E/A-Leseoperation für die 79 Bytes besteht darin, die nächste 64-Byte-Grenze
im Hauptspeicher 25 zu erreichen. In dem in den Fi g. 7A bis 7E gezeigten Beispiel müssen dazu in einer
Speicher/Puffer-Teilübcrtragungsoperation die ersten elf Datenbytes (Bytes 0 bis 10) in den Hauptspeicher 25
übertragen werden. Da zum Erreichen der nächsten 64-Byte-Grenze elf Bytes gebraucht werden, setzt die
IPU 14 als weiteren Vorbereitungsschritt die Zahl elf in das Fangwertregister 181 (F ig. 16) und signalisiert dann
dem E/A-Kanal 11, daß er mit der eigentlichen Datenübertragung an den Pufferspeicher 20 beginnen
kann. Danach beginnt der E/A-Kanal U mit der Datenübertragung an den Pufferspeicher 20 in Einheiten
von jeweils I odrr 2 Bytes in der im Zusammenhang mit den F i g. 6a bis 6f beschriebenen Art. Während
jedes Kanalzyklus wcrcen also ein oder zwei Bytes in das CJDR 21 gesetzt. In jedem Fall wird der Inhalt des
CTBAR J 24 entsprechend der Menge der übertragenen Daten erhöht, wobei der Betrag durch das Kanalübertragungslängensignal
(CTL) angegeben wird. In gleicher Weise wird der Zahlenwert im Pufferspeicher-Zählregister
175 (Fig. 16) in jedem Zyklus entsprechend dem CTL-Wert erhöht. Der Puffer-Speicherübertragungsmechanismus
bleibt inaktiv, bis die Anzahl der zum Erreichen der ersten 64-Byte-Grenze erforderlichen
ίο Bytes in den Pufferspeicher 20 geschrieben wurde. Das
Speichern einer ausreichenden Anzahl von Bytes, in diesem Falle elf Bytes, in den Pufferspeicher 20, wird
durch Abgabe des ST-Anforderungssignales von der Vergleichsschaltung 182 (Fig. 16) signalisiert. Die
Kanal-Pufferübertragungen werden von diesem Anforderungssignal nicht beeinflußt und der E/A-Kanal
sendet weiter Daten an den Pufferspeicher 20, bis die gesamte Datenlänge, in diesem Fall also 79 Bytes, in den
Pufferspeicher 20 übertragen wurde. Auf diese Weise laufen dh Kanal-Pufferübertragungen von den Puffer-Speicherübertragungen
unabhängig Auch nach Beginn der Kanal-Pufferübertragungen kann die IPU 14 zu
anderen Aufgaben zurückkehren bis zum Auftreten der ST-Anforderung.
2~> Wenn die Datenpufferzählsteuerung 109 das ST-Anforden
ngssignal abgibt, beginnt die Hauptsteuerung 15 mit der Ausführung einer Mikroprogrammroutine zur
teilweisen Übertragung vom Puffer in den Speicher. Diese Mikroprogrammroutine führt die in den F i g. 7A
jo und 7B gezeigte Teilübertragung (weniger als 64 Bytes)
aus. Als Vorbereitungsschritt in dieser Routine wird die Hauptspeicherstartadresse für die Puffer-Speicherübertragung
aus dem Lokalspeicher 34 ausgelesen und in das Kanalspeicheradreßregister 47 gesetzt. Gleichzeitig
r> sendet die IPU i4 die drei wertniedersten Hauptspeicheradreßbits
für dieselbe Adresse an das MSAR 150 in der Übertragungssteuerung 105(Fig. 15).
Als weiterer Vorbereitungsschritt wird von der IPU 14 das CHDLR 151 (Fig. 15) mit der Länge der an den
Hauptspeicher 25 in der in den Fig. 7A und 7B dargestellten Teilübertragung zu übertragenden Daten
geijden. In diesem Beispiel wird das CHDLR 151 mit dem Wert elf geladen. Zu diesem Zeitpunkt wird in der
Hauptsteuerung 15 das richtige Speichermikrowort
4-, erreicht und die Adresse im Kanalspeicheradreßregister 47 in das SAR 26 geladen. Jetzt beginnt die eigentliche
Datenverschiebung vom Pufferspeicher 20 in den Hauptspeicher 25.
Diese Datenbewegung wird von der Übertragungs-
-,Ii steuerung 105 über den in Fig. 15 gezeigten Mechanismus
gesteuert. Im einzelnen stellt die Schiebebetragsbestimmungseinrichtung
fest, daß eine Verschiebung von fünf Bytes vom Bytescbieber 30 vorgenommen werden
sollt'- und die Schiebesteuerung 45 erhält entsprechende
Vi Anweisung. Gleichzeitig bestimmt der Machanismus zur
Festlegung der Üt :rtragungslänge 155 bis !63. daß die Speicherübertragungslänge für den ersten Kanalzyklus
den Wert drei hat (F i g. 7A). Für den ersten Zyklus führt der aus lauter Mullen bestehende Wert im STBAR HC
ho zu einer Adressierung nur der Zeile null des Pufferspeichers 20. Der Inhalt der Zeile null wird somit
während des ersten Kanalzyklus adressiert und in das STDR 23 (Fig. 5b) gesetzt. Die acht Üatenbytes im
STDR 23 werden dann im Umlaufbetrieb durch den
hr) Byteschieber 30 um fünf Bytepositionen nach rechts
versetzt und dann in das MSDR 27 gespeichert. Bei der nächsten Einschreibung in den Hauptspeicher 25
werden aufgrund der Stellerwirkung der Byte-Wahlein-
licit 28 (Fig. 2) nur clic Bytes in den drei äußersten
rechten Bylcpositioncn im MSI)R 27 in den Hauptspeicher
geschrieben. Durch dieses Beschreiben des Hauptspeichers 25 gelangen die eingeschriebenen
Daten an die nächste acht-Byte-Grenzc im Hauptspeicher
25.
Zu Beginn des nächsten Kanal/yklus (Taktimpuls CO.
fig. 7B) wird der Inhalt des STBAR 110 und des
CHDLR 151 durch den STL-Wert für den ersten Zyklus
fortgeschrieben. Der Pufferadreßwert im STBAR 110
wird um drei Zahlen erhöht und der Datenlangenwert im CHDI.R 151 um drei Zahlen heruntergesetzt. Zu
diesem Zeitpunkt wurde der llauptspeichcradre'IKvert
im MSAR 150 auf null gesetzt. Die nächste Gruppe von Datenbwes wird dann aus dem Pufferspeicher 20
ausgelesen und in den Hauptspeicher 25 genauso wie fiir
die erste Gruppe übertragen, jedoch ist der STI.-Wer!
für die zweite Gruppe acht. In diesem zueilen Zyklus (F i g. 7B) führt der Adrellwert von drei im STBAR 110
außerdem zu einer zweizeiligen Adressierung des Pufferspeichers 20 in der in Fig. 7B gezeigten Art. Zu
diesem Zeitpunkt hai die nächste Datenlänge am Ausgang des in Γ i g. 1 5 gezeigten Subtrahieren 168 den
Wert null erreicht. Dadurch gibt der Null-Detektor Ιβ9
das Signal STI-NDl: an den E/A-Kanal 11. der
wiederum der Hauptstcuerung 15 mitteilt, daß die
Speichcr-Teilübertragungsoperation beendet ist. Damn
wird das Speichermikrowort beendet und die Mikroprogrammroutine für die Puffer-Speicherübertragung führt
einen F-ndlauf aus und gibt die Steuerung dann an die
IPlI 14 zu der Aufgabe zurück, die vor dem Auftreten der ST-Anforderung ausgeführt wurde.
Irgendwann vor der Rückkehr zur nächsten Prozessoraufgabe führt die Puffer/Speichcr-Übertragungsmikroroutine
verschiedene Verwaltungsatifgaben für die
E/A-Operation durch. So wird z. B. das CCW-Bytezahlenfcld
im Lokalspeicher 34 der IPU (Fig. 2) um die Anzahl von Datenbytes, in diesem F:all elf. heruntergesetzt,
die w ährend der Übertragungsoperation übertragen wurden. Außerdem wird das CCW-Datenadreßfeld
im Lokalspeicher 34 entsprechend der Menge der während der Übertragungsoperation übertragenen
Daten erhöht. Außerdem wird das Register 181 (Fig. 16) so geladen, daß es den für die nächste
Puffer-Speicherübertragungsoperation benötigten Fangwert enthält. Die nächste Übertragungsoperation
(F i g. 7C und 7D). ist im vorliegenden Beispiel eine volle Übertragungsoperation von 64 Bytes, so daß das
Register 181 so geladen wird, daß es den Wert 64 enthält.
Nachdem die Mikroroutinc für die Pufferspeicher
Teilüberiragiing beendet ist, bleibt der Puffer-Speicher
Übertragungsmechanismtis inaktiv, bis das nächst!
ST Anforderungssignal von der Datcnpufferzählsteuc ·, rung 109 gegeben wird. Dieses Anforderungssigna
leitet die volle Übertragungsoperation von 64 Bytes ein deren erster und letzter Zyklus in den (·" i g. 7C und 7Γ
gezeigt ist. Diese volle Übertragungsoperation unter scheidet sich von der oben bcscnricbcnen Tcilübcrtra
in giingsoperation nur dadurch, daß das in F'ig. I'
gezeigte CHDLR 151 am Anfang mit dem Wert 64 unc
das drei BiI große, ebenfalls in Γ ig. 15 gezeigte
MSAR 150 mit dem Wert (XK) geladen wird, weil de
Hauptspeicher 25 jetzt auf einer acht-Byte-Grenzi
:, steht Wegen der in das CHDLR 151 " geladenei
grölleren Zahl werden Daten in den Hauptspeicher 2e
in acht Kanalzyklen übertragen. In diesem I all werdet also Daten vom Pufferspeicher 20 in den llaiipispeichei
25 in acht aufeinanderfolgenden Übertragungen voi
.•n jeweils acht Bytes tibertragen Dadurch wird de
Hauptspeicher 25 auf die zweite 64-Byte-Grenze gebracht und eins vom Null-Detektor 169 er/.eugii
Signal STHNI)I: lälit die Mikroprogrammroutine fü
für diese Ubertragiingsoperalion vom Puffer zun
_>-, Hauptspeicher eine Fndfolgc durchlaufen und dann du.
Steuerung an die IPU 14 für andere Aufgäbet
zurückgeben. Der Puffer SpeieherübcrIragungsmecha
nismiis bleibt dann inaktiv, bis ein weiteres ST-Anfoidc
rungv;i|inal von der Datenpuffcrzählsteuerung 10l
in abgegeben wird.
Im vorliegenden Beispiel leitet das nächste STAn forderungssignal die in Fig. 71. gezeigte Puffer-Spci
cher-Teilübcrlragiing ein. In diesem F'all werden nur die
vier Bytes übertragen und es ist nur ein Zyklti'
r. erforderlich.
In dem in den Fig. 7A bis 7E dargestellten Beispic
einer E/A-I.eseoperation ist eine relativ kleine Gesamt datenlänge zu übertragen (der Anfangswert dci
CCW-Bytezahl) und somit ist nur eine volle Übertra
κι gungsoperation von 64 Bytes erforderlich. Eine
beträchtliche Anzahl von Eingabe/Ausgabeoperationcr betrifft jedoch eine Gesamtdatenlänge von mehrerer
tausend Bytes. In so einem Fall finden für eine E/A-Leseoperation oder E/A-Schreiboperation viele
■ι-, Vollübertragungcn von 64 Bytes statt. Demzufolge
ergibt sich eine beträchtliche Zeitersparnis bei der
Ausführung der zugehörigen E/A-Verwaltungsopcra tionen. Diese Operationen werden nur einmal für jede
Vollübertragung von 64 Bytes zwischen Speicher unc
-,η Puffer ausgeführt.
Hierzu I I MIaIl Z.eichmintien
Claims (7)
1. Kanaldatenpufferspeicher zur Zwischenspeicherung von zwischen einer Ein-ZAusgabe-Kanaleinheit
und einem Hauptspeicher übertragenen Daten, der in Spalten und Zeilen angeordnete
Byte-Speicherstellen aufweist, wobei jede Spalte eine Anordnung von mehreren, je zu einer Zeile
gehörenden Speicherstellen mit je einem Byte Kapazität ist und eine eigene Adressiereinrichtung
zur zeilenmäßigen Adressierung jeder einzelnen Speicherzelle aufweist, mit Pufferspeicheradressierschaltungen
zur Abgabe von Adressen für die einzelnen Spalten des Pufferspeichers, dadurch
gekennzeichnet, daß ModifizierungsschaEtungen (111, 127) zur Modifizierung einer gegebenen
Adresse für die Adressiereinrichtung bzw. die Pufferspeicher-Adressierschaltungen, wenn zu übertragende
Daten Speicherstellen in zwei verscniedenen Zeilen des Pufferspeichers belegen, angeordnet
sind, daß der Pufferspeicher (20) aus M Spalten und R Zeilen besteht, wobei M und R ganzzahlige
Potenzen von zwei sind, daß jede der Spalten des Pufferspeichers (20) mit je einem, für die Parallelübertragung
von einem Datenbyte ausgelegten Datenpfad verbunden ist und daß die Pufferadressierschaltungen
(105, 108, 110, 124) an jede der Adressiereinrichtungen der Spalten des Pufferspeichers
(20) eine r-Bit-Adresse abgeben, wobei r der jo Zweierlogarithmus von R ist, und wobei die
Modifiziert'-gsschaltungen (111, 127) die gegebene
Adresse für mindestens eine Spalte um eine Einheit erhöhen.
2. Kanaldatenpufferspiiche.·- nach Anspruch 1,
dadurch gekennzeichnet, daß in den Übertragungseinrichtungen zwischen dem Pufferspeicher (20) und
dem Hauptspeicher (13) eine rückgekoppelte Schiebeeinrichtung (30) angeordnet ist, die eine Kapazität
von M Datenbytes aufweist.
3. Kanaldatenpufferspeicher nach den Ansprüchen 1 und 2, dadurch gekennzeichnet, daß die
Pufferadressierungsschaltungcn aus einem Speicherübertragungs-Pufferadreßregister
(UO) zur Aufnahme einer binären Bytestellenadresse für den Pufferspeicher (20) einer Modifizierschaltung (Uli),
die an die r höherwertigen Bitpositionen des Pufferadreöregisters (110) angeschlossen ist und
aufgrund eines gegebenen Satzes von Adressenbits (A) einen modifizierten Satz (MA) von AdreElbits
abgibt, dessen Zahlenwert um eine Einheit höher ist als der des unmodifizierten Satzes, einer Auswahlschaltung
(112 bis 118), um wahlweise an jede der Adressiereinrichtungen der M Spalten des Pufferspeichers
(20) den unmodifizierten oder den γ, modifizierten Satz von Adressenbits zu geben und
einer Wahlsteuerschaltung (122), die an die: m niederwertigen Bitpositionen des Pufferadreßregisters
(110) angeschlossen ist, wobei m der Zweierlogarithmus
von Af ist, besteht. M)
4. Kanaldatenpufferspeicher nach den Ansprüchen 2 und 3, dadurch gekennzeichnet, daß die
rückgekoppelte Schiebeeinrichtung (30) mit einer Kapazität von M Bytes, welche ein Teil der
Obertragungseinrichtungen zwischen Pufferspei- μ
eher (20) und dem Hauptspeicher (13) ist, mit einer Schiebebetrags-Bestimmungsschaltung (170, 171)
verbunden ist, die aus den niederwertigen Adrellbits einer Pufferadresse (STBA) und denen einer
Hauptspeicheradresse (MSA) ein Schiebebeirags-Steuersignal erzeugt und an die Schiebeeinrichtung
(30) zur Steuerung weiterleitet.
5. Kanaldatenpufferspeicber nach den Ansprüchen
1 bis 4, dadurch gekennzeichnet, daß die Obertragungseinrichtungen zur Parallelübertragung
von zwei Datenbytes zwischen Pufferspeicher (20) und einer Ein-/Ausgabekanaleinheit (11) einen
ersten (0) und einen zweiten (1) Datenpfad aufweisen, wobei der erste Datenpfad (0) mit den
geradzahligen (50,52,54,56) Spalten des Pufferspeichers
und der zweite Datenpfad (1) mit den ungeradzahligen Spalten (51, 53, 55, 57) des
Pufferspeichers verbunden ist und daß eine Lese/ Schreib-Zugriffssteuereinrichtung (108) angeordnet
ist, die an das Pufferadreßregister (124) angeschlossen ist und aufgrund des Inhalts der niederwertigen
Bitpositionen des Pufferadreßregisters Steuersignale zur Auswahl je einer der geradzahligen und je
einer der ungeradzahligen Spalten des Pufferspeichers erzeugt
6. Kanaldatenpufferspeicher nach den Ansprüchen 1 bis 5, dadurch gekennzeichnet, daß ein erstes
Gruppenregister (126) und ein zweites Gruppenregister (125), die zur Aufnahme von B— 1 höherwertigen
Adreßbits aus dem Kanalübenragungs-Pufferadreßregister (ί24), eine Erhöhungsschaltung (127),
die an die niederwertigste Bitposition (Bit 7) des Pufferadreßregisters (124) angeschlossen ist und den
Zahlenwert der B— I höherwertigen Adreßbits aus dem Pufferregister für das erste Gruppenregister
(126) um eine Einheit erhöht, wenn das niederwertige Adreßbit den entsprechenden Binärwert aufweist,
erste und zweite Verbindungseinrichtungen (100, 129 bzw. 130) 7jr Übertragung des Inhalts des
ersten Gruppenregisters (126) und des zweiten Gruppenregisters (125) an die Adressierungseinrichtungen
der geradzahligen bzw. ungeradzahligen Spalten des Pufferspeichers dit Pnfferadressierungseinrichtungen
bilden.
7. Kanaldatenpufferspeicher nach Anspruch 7, dadurch gekennzeichnet, daß die Lese/Schreib-Zugriffssteuereinrichtung
aus einer ersten Decodierschaltung (138), die mit dem ersten Gruppenregister (126) verbunden ist und einer zweiten Decodierschaltung
(131), die mit dem zweiten Gruppenregister (125) verbunden ist, besteht.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US05/818,797 US4131940A (en) | 1977-07-25 | 1977-07-25 | Channel data buffer apparatus for a digital data processing system |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| DE2829668A1 DE2829668A1 (de) | 1979-02-01 |
| DE2829668B2 true DE2829668B2 (de) | 1979-11-15 |
| DE2829668C3 DE2829668C3 (de) | 1980-08-07 |
Family
ID=25226433
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE2829668A Expired DE2829668C3 (de) | 1977-07-25 | 1978-07-06 | Kanaldatenpufferspeicher |
Country Status (13)
| Country | Link |
|---|---|
| US (1) | US4131940A (de) |
| JP (1) | JPS5423439A (de) |
| AU (1) | AU517198B2 (de) |
| BE (1) | BE868423A (de) |
| BR (1) | BR7804787A (de) |
| CA (1) | CA1102006A (de) |
| CH (1) | CH634939A5 (de) |
| DE (1) | DE2829668C3 (de) |
| ES (1) | ES471718A1 (de) |
| FR (1) | FR2399064A1 (de) |
| GB (1) | GB1573895A (de) |
| IT (1) | IT1111190B (de) |
| SE (1) | SE431038B (de) |
Families Citing this family (46)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS556667A (en) * | 1978-06-30 | 1980-01-18 | Fujitsu Ltd | Data transfer system with buffer register |
| US4408271A (en) * | 1979-01-02 | 1983-10-04 | Honeywell Information Systems Inc. | Circuit for implementing a digital computer instruction |
| US4309754A (en) * | 1979-07-30 | 1982-01-05 | International Business Machines Corp. | Data interface mechanism for interfacing bit-parallel data buses of different bit width |
| CA1148265A (en) * | 1979-07-30 | 1983-06-14 | John M. Dinwiddie, Jr. | High performance i/o controller for transferring data between a host processor and multiple i/o units |
| JPS5652454A (en) * | 1979-10-05 | 1981-05-11 | Hitachi Ltd | Input/output control method of variable word length memory |
| DE2943903A1 (de) * | 1979-10-31 | 1981-05-14 | Robert Bosch Gmbh, 7000 Stuttgart | Rechnersystem |
| DE3018408A1 (de) * | 1980-05-14 | 1981-11-19 | Ibm Deutschland Gmbh, 7000 Stuttgart | Steuerschaltung fuer einen metallpapierdrucker-schreibkopf mit auf einer schraege angeordneten elektroden |
| US4435762A (en) | 1981-03-06 | 1984-03-06 | International Business Machines Corporation | Buffered peripheral subsystems |
| US4654781A (en) * | 1981-10-02 | 1987-03-31 | Raytheon Company | Byte addressable memory for variable length instructions and data |
| EP0105340A1 (de) * | 1982-03-31 | 1984-04-18 | The Board Of Trustees Of The Leland Stanford Junior University | Blattdrucksystem |
| US4556806A (en) * | 1982-05-10 | 1985-12-03 | Texas Instruments Incorporated | Gate alterable output buffer |
| US4506345A (en) * | 1982-07-02 | 1985-03-19 | Honeywell Information Systems Inc. | Data alignment circuit |
| US4507731A (en) * | 1982-11-01 | 1985-03-26 | Raytheon Company | Bidirectional data byte aligner |
| US4613954A (en) * | 1982-11-16 | 1986-09-23 | Burroughs Corporation | Block counter system to monitor data transfers |
| US4510581A (en) * | 1983-02-14 | 1985-04-09 | Prime Computer, Inc. | High speed buffer allocation apparatus |
| US4556978A (en) * | 1983-07-20 | 1985-12-03 | Sperry Corporation | Error checked high speed shift matrix |
| US5038277A (en) * | 1983-11-07 | 1991-08-06 | Digital Equipment Corporation | Adjustable buffer for data communications in a data processing system |
| US4626829A (en) * | 1985-08-19 | 1986-12-02 | Intelligent Storage Inc. | Data compression using run length encoding and statistical encoding |
| JP2684362B2 (ja) * | 1986-06-18 | 1997-12-03 | 株式会社日立製作所 | 可変長データの記憶方式 |
| US4841435A (en) * | 1986-10-29 | 1989-06-20 | Saxpy Computer Corporation | Data alignment system for random and block transfers of embedded subarrays of an array onto a system bus |
| US4839796A (en) * | 1987-07-16 | 1989-06-13 | Icon International, Inc. | Static frame digital memory |
| DE3786080D1 (de) * | 1987-08-20 | 1993-07-08 | Ibm | Speicherzugriffssteuerungsvorrichtung in einem gemischtdatenformatsystem. |
| US5163132A (en) * | 1987-09-24 | 1992-11-10 | Ncr Corporation | Integrated controller using alternately filled and emptied buffers for controlling bi-directional data transfer between a processor and a data storage device |
| GB2216305A (en) * | 1988-03-01 | 1989-10-04 | Ardent Computer Corp | Cache block transfer in a computer system |
| US5212778A (en) * | 1988-05-27 | 1993-05-18 | Massachusetts Institute Of Technology | Message-driven processor in a concurrent computer |
| US5073969A (en) * | 1988-08-01 | 1991-12-17 | Intel Corporation | Microprocessor bus interface unit which changes scheduled data transfer indications upon sensing change in enable signals before receiving ready signal |
| US5113516A (en) * | 1989-07-31 | 1992-05-12 | North American Philips Corporation | Data repacker having controlled feedback shifters and registers for changing data format |
| US5687396A (en) * | 1989-12-04 | 1997-11-11 | Canon Kabushiki Kaisha | Data buffer apparatus with interrupted transmission/reception |
| US5729708A (en) * | 1989-12-04 | 1998-03-17 | Canon Kabushiki Kaisha | Portable data buffer apparatus with manually controlled reception/transmission |
| US6807609B1 (en) * | 1989-12-04 | 2004-10-19 | Hewlett-Packard Development Company, L.P. | Interleaving read and write operations on a bus and minimizing buffering on a memory module in a computer system |
| DE69122520T2 (de) * | 1990-01-31 | 1997-02-13 | Hewlett Packard Co | Vielfachbus-Systemspeicherarchitektur |
| US5101477A (en) * | 1990-02-16 | 1992-03-31 | International Business Machines Corp. | System for high speed transfer of data frames between a channel and an input/output device with request and backup request count registers |
| DE69315630T2 (de) * | 1992-07-23 | 1998-07-16 | Rockwell International Corp | Datenzugriff in einem RISC-Digitalsignalprozessor |
| US5517627A (en) * | 1992-09-18 | 1996-05-14 | 3Com Corporation | Read and write data aligner and method |
| JPH07105128A (ja) * | 1993-10-07 | 1995-04-21 | Mitsubishi Electric Corp | データ転送装置 |
| US5740398A (en) * | 1993-10-18 | 1998-04-14 | Cyrix Corporation | Program order sequencing of data in a microprocessor with write buffer |
| US5615402A (en) * | 1993-10-18 | 1997-03-25 | Cyrix Corporation | Unified write buffer having information identifying whether the address belongs to a first write operand or a second write operand having an extra wide latch |
| US6219773B1 (en) * | 1993-10-18 | 2001-04-17 | Via-Cyrix, Inc. | System and method of retiring misaligned write operands from a write buffer |
| US5584009A (en) * | 1993-10-18 | 1996-12-10 | Cyrix Corporation | System and method of retiring store data from a write buffer |
| US5471598A (en) * | 1993-10-18 | 1995-11-28 | Cyrix Corporation | Data dependency detection and handling in a microprocessor with write buffer |
| US5687328A (en) * | 1995-05-16 | 1997-11-11 | National Semiconductor Corporation | Method and apparatus for aligning data for transfer between a source memory and a destination memory over a multibit bus |
| US5930158A (en) | 1997-07-02 | 1999-07-27 | Creative Technology, Ltd | Processor with instruction set for audio effects |
| JP2007313953A (ja) * | 2006-05-23 | 2007-12-06 | Yanmar Co Ltd | 作業車両 |
| KR101529290B1 (ko) * | 2008-10-02 | 2015-06-17 | 삼성전자주식회사 | 반도체 디스크 장치 및 그것의 데이터 처리 방법 |
| CN105812620B (zh) * | 2016-03-30 | 2018-12-11 | 豪威科技(上海)有限公司 | 数据转换器及其工作方法 |
| JP2019217454A (ja) | 2018-06-19 | 2019-12-26 | 三菱日立パワーシステムズ株式会社 | 竪型粉砕機 |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3249924A (en) * | 1962-12-31 | 1966-05-03 | Ibm | Asynchronous data processing system |
| US3488633A (en) * | 1964-04-06 | 1970-01-06 | Ibm | Automatic channel apparatus |
| US3380030A (en) * | 1965-07-29 | 1968-04-23 | Ibm | Apparatus for mating different word length memories |
| US3432813A (en) * | 1966-04-19 | 1969-03-11 | Ibm | Apparatus for control of a plurality of peripheral devices |
| US3602896A (en) * | 1969-06-30 | 1971-08-31 | Ibm | Random access memory with flexible data boundaries |
| US3643221A (en) * | 1970-04-16 | 1972-02-15 | Ibm | Channel buffer for data processing system |
| US3626376A (en) * | 1970-05-14 | 1971-12-07 | Ibm | Skewing circuit for memory |
| US3699530A (en) * | 1970-12-30 | 1972-10-17 | Ibm | Input/output system with dedicated channel buffering |
| BE801430A (nl) * | 1973-06-26 | 1973-10-15 | Belge Lampes Mat Electr Mble | Een geheugensysteem |
| FR2260141A1 (en) * | 1974-02-01 | 1975-08-29 | Honeywell Bull Soc Ind | Data transfer control for data processor - is used between periodic and non-periodic units employing buffer memory |
| US3916388A (en) * | 1974-05-30 | 1975-10-28 | Ibm | Shifting apparatus for automatic data alignment |
| JPS5171750A (en) * | 1974-12-19 | 1976-06-21 | Fujitsu Ltd | Deetatensoseigyohoshiki |
| US4020470A (en) * | 1975-06-06 | 1977-04-26 | Ibm Corporation | Simultaneous addressing of different locations in a storage unit |
-
1977
- 1977-07-25 US US05/818,797 patent/US4131940A/en not_active Expired - Lifetime
-
1978
- 1978-04-24 CA CA301,808A patent/CA1102006A/en not_active Expired
- 1978-04-28 AU AU35556/78A patent/AU517198B2/en not_active Expired
- 1978-05-10 GB GB18801/78A patent/GB1573895A/en not_active Expired
- 1978-06-20 FR FR7819407A patent/FR2399064A1/fr active Granted
- 1978-06-23 BE BE188822A patent/BE868423A/xx not_active IP Right Cessation
- 1978-06-29 CH CH709478A patent/CH634939A5/de not_active IP Right Cessation
- 1978-06-29 IT IT25101/78A patent/IT1111190B/it active
- 1978-07-06 DE DE2829668A patent/DE2829668C3/de not_active Expired
- 1978-07-07 JP JP8214178A patent/JPS5423439A/ja active Granted
- 1978-07-14 ES ES471718A patent/ES471718A1/es not_active Expired
- 1978-07-19 SE SE7807964A patent/SE431038B/sv not_active IP Right Cessation
- 1978-07-25 BR BR7804787A patent/BR7804787A/pt unknown
Also Published As
| Publication number | Publication date |
|---|---|
| BE868423A (fr) | 1978-10-16 |
| JPS5423439A (en) | 1979-02-22 |
| SE7807964L (sv) | 1979-01-26 |
| ES471718A1 (es) | 1979-02-01 |
| CA1102006A (en) | 1981-05-26 |
| BR7804787A (pt) | 1979-04-17 |
| IT7825101A0 (it) | 1978-06-29 |
| US4131940A (en) | 1978-12-26 |
| GB1573895A (en) | 1980-08-28 |
| CH634939A5 (de) | 1983-02-28 |
| AU517198B2 (en) | 1981-07-16 |
| AU3555678A (en) | 1979-11-01 |
| FR2399064A1 (fr) | 1979-02-23 |
| JPS5732803B2 (de) | 1982-07-13 |
| DE2829668C3 (de) | 1980-08-07 |
| SE431038B (sv) | 1983-12-27 |
| IT1111190B (it) | 1986-01-13 |
| FR2399064B1 (de) | 1980-06-13 |
| DE2829668A1 (de) | 1979-02-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE2829668B2 (de) | Kanaldatenpufferspeicher | |
| DE2515696C2 (de) | Datenverarbeitungssystem | |
| DE2540975C2 (de) | Datenverarbeitungseinrichtung zur Ausführung mehrerer gleichzeitig ablaufender Prozesse | |
| DE2224537C2 (de) | Einrichtung und Verfahren zur Instruktionsauswahl in einem Fließbandprozessor | |
| EP0097725B1 (de) | Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen | |
| DE1956604B2 (de) | Datenverarbeitungsanlage | |
| DE2318069C2 (de) | Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix | |
| DE2912287C3 (de) | Datenverarbeitungsanlage | |
| DE3302922A1 (de) | Verfahren und vorrichtung fuer speichersteuerungen | |
| DE2620220B2 (de) | Schaltungsanordnung zum Übertragen von Datenpaketen über einen Zwischenspeicher | |
| DE2230103A1 (de) | Adressiereinrichtung fuer einen speicher | |
| DE2717658A1 (de) | Anordnung zur ansteuerung eines mikroprogrammspeichers | |
| DE4216905C2 (de) | Superskalarprozessor | |
| DE2542010A1 (de) | Datenverarbeitende anlage | |
| DE2452214A1 (de) | Mikroprozessor mit unmittelbarer und indirekter adressierung | |
| DE2339636A1 (de) | Programmsteuereinrichtung | |
| DE3148099C2 (de) | Anordnung zum Erkennen einer Digitalfolge | |
| DE2556617A1 (de) | Datenverarbeiter zum rotierbaren verschieben von bits eines datenwortes | |
| DE1190706B (de) | In zwei abwechselnden Zyklen arbeitende programmgesteuerte elektronische digitale Rechenmaschine | |
| DE3121742A1 (de) | Mikroprogrammsteuerverfahren und -einrichtung zu dessen durchfuehrung | |
| DE2739525C2 (de) | Rechner | |
| DE2458525B2 (de) | Speicheranordnung mit Haupt- und Pufferspeicher | |
| DE2747304C3 (de) | Einrichtung zur Mikrobefehlssteuerung | |
| DE2704560C2 (de) | Datenverarbeitende Anlage mit paralleler Bereitstellung und Ausführung von Maschinenbefehlen | |
| DE2110458C3 (de) | Speicheranordnung in einem datenverarbeitenden System |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| OAP | Request for examination filed | ||
| OD | Request for examination | ||
| C3 | Grant after two publication steps (3rd publication) | ||
| 8339 | Ceased/non-payment of the annual fee |