DE2829668A1 - Kanaldatenpufferspeicher - Google Patents
KanaldatenpufferspeicherInfo
- Publication number
- DE2829668A1 DE2829668A1 DE19782829668 DE2829668A DE2829668A1 DE 2829668 A1 DE2829668 A1 DE 2829668A1 DE 19782829668 DE19782829668 DE 19782829668 DE 2829668 A DE2829668 A DE 2829668A DE 2829668 A1 DE2829668 A1 DE 2829668A1
- 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- 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
ENJ9-76-028
28296661
Anmelderin: International Business Machines
Corporation, Armonk, N. Y. 10504
ru-bz
Die Erfindung betrifft einen Kanaldatenpufferspeicher nach dem Oberbegriff :
des Patentanspruchs 1. j
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 Nr. 3 488 633 und 3 432 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.
809885/0744
EN9-76-028
In der US-Patentschrift Nr, 3 643 221 ist ein Kanalpuffer
beschrieben, in dem Daten zwischen dem Kanalpuffer und dem Hauptspeicher in Segmenten von vier Bytes und nicht 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.
Vom Eingabe/Ausgabegerät empfangene Datenbytes werden am linken Ende des Schieberegisters eingegeben,und
die in den Hauptspeicher übertragenen Datenbytes werden parallel den äußersten vier 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 der US-Patentschrift Nr. 3 699 530 wird ein Kanalpuffersystem
beschrieben, in dem für jeden Eingabe/Ausgabekanal mehrere Puffer vorgesehen sind.
In der US-Patentschrift Nr. 3 249 924 wird ein Kanalpuffer in Form eines ein Byte breiten Kernspeichers 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 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.
809885/0744
EN9-76r-028
Die in den oben erwähnten Patentschriften beschrieJ^efieHi" öÖo
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 den 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. Zur Erzielung einer höheren Datenrate sollte also eine grössere Anzahl von
Datenbytes vom oder zum Hauptspeicher pro gegebenem Mass von Verwaltungsarbeiten übertragen werden. In dem hier zu beschreibenden
Ausführungsbeispiel werden bis zu 64 Datenbytes zwischen dem Datenpuffer und dem Hauptspeicher während jeder
Speicherübertragungsoperation übertragen, oder mit anderen fiorten, pro Einheitsmass 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 Speicherübertragungsoperation benötigte Gesamtzeit
wesentlich reduziert.
Um diese grösseren Datenmengen vom oder zum Hauptspeicher in sehr kurzer Zeit übertragen zu können, muss der Kanaldatenpuffer
eine wesentlich grössere Datenpufferkapazität haben, als sie in den oben beschriebenen Datenpuffern vorhanden ist.
Aus Wirtschaftlichkeitsgründen und ähnlichen üeberlegungen wird diese erhöhte Pufferkapazität vorzugsweise in Form
integrierter Halbleiterspeicher als Datenpuffer vorgesehen. Die Benutzung eines Speichers als Kanaldatenpuffer wirft jedoch
Probleme der Datenausrichtung für den Hauptspeicher des Datenprozessors auf.
809885/0744
ORIGINAL INSPECTED
EN9-76-028
Um Daten von einem Kanalpufferspeicher in den Hauptspeicher zu
übertragen, sollten z.B.. die aus dem Kanalpuffer während eines Zugriffs gelesenen 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 Reihenfolge 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öglichkeit 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.
Aehnliche Ueberlegungen gelten bei der Datenübertragung in der Gegenrichtung, nämlich vom Hauptspeicher zum Kanal.
Die US-Patente mit der Nr. 3 380 038 und 3 626 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 Uebertragung von Daten zwischen zwei Speichern mit unterschiedlicher Speicherwortlänge oder Datenzugriff
slänge beschrieben. Zu einer vollständigen Uebertragung sind zwei Maschinenzyklen oder Speicherzugriffsoperationen
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ünscht ist.
In dem zweiten oben genannten Patent wird eine Schaltung zum Verschieben der vom Datenpuffer an den Hauptspeicher über-
809885/0744
EN9-76-028
tragenen Datenbytes beschrieben, wenn die Anfangsbyteposition
im Hauptspeicher rechts von der äussersten linken Byteposition liegt. Ein Hardwareregister ist vorgesehen, um Bytes aufzunehmen
und festzuhalten, die jenseits der rechten Grenze des Hauptspeichers liegen würden. Bei nachfolgenden Uebertragungen
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 nachfolgenden Hauptspeicherzugriff gerettet.
In diesem Gerät wird für die vorliegenden Zwecke ungünstig ein zusätzliches Hardwareregister verwendet, und ausserdem
wird der Fall nicht berücksichtigt, in dem die Startbyteposition im Datenpuffer nicht'das äusserste linke Byte im Datenpuffer
ist.
Obwohl in den US-Patentschriften Nr. 3 602 896 und 3 916 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 Kerntreiberleitungssteuerschaltung
verfügt, wodurch die vier adressierten Bytes an jeder Byteposition des vier Byte grossen Speicher-Wortes
beginnen können. Das adressierte vier Byte grosse 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.
809885/0744
EN 9-76-028
- 11 -
In der zweiten obenerwähnten Patentschrift wird ein acht Byte großer
,.. Datenschieber zur automatischen Ausrichtung eines aus mehreren Bytes
bestehenden 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-Zugriffs-1
operationen sind erforderlich, wenn das Datensegment über eine Speicher-
■ wortgrenze 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.
j Der Erfindung liegt die Aufgabe zugrunde, einen verbesserten Kanal-
! datenpufferspeicher für eine Datenverarbeitungsanlage zu schaffen, der , es erlaubt, daß der Datendurchsatz bei der Übertragung zwischen einem
, Eingabe-/Ausgabekanal und einem Speicher ohne hohen Aufwand an Schal-
-; tungsmitteln erhöht wird und der daruberhinaus zusätzlich die Kanaldaten-Verkettungsrate
verbessert.
8 09 8.8 5/07 A A
EN 9-76-028
Die Lösung besteht insbesondere im Kennzeichen des Patentanspruchs 1.
Weitere Lösungen bestehen im Kennzeichen der Patentansprüche 2 bis 7.
Dadurch, daß der Pufferspeicher für jedes seiner Spalten eine eigene Adressierungseinrichtung
aufweist, ist es möglich. Daten, insbesondere Datensegmente, die sich über zwei Speicherzeilen erstrecken, in nur einem
Zugriff abzurufen oder zu speichern.
Ein Ausführungsbeispiel der Erfindung ist in den beiliegenden Zeichnungen
dargestellt und wird anschließend näher beschrieben.
Es zeigen:
Fig. 1 ein digitales Datenverarbeitungssystem und darin einen
erfindungsgemäßen Kanaldatenpuffer,
Fig. 2 den Kanaldatenpuffer, den Hauptspeicher und die
Instruktionsverarbeitungseinheit gemäß Fig. 1 mit weiteren Einzelheiten,
809885/0744
EN9-76-028
Fig. 3 ein Zeitdiagramm zur Erklärung der Arbeitsweise des Kanaldatenpuffers,
Fig. 4 allgemein einen Assembler, der in verschiedener Form an verschiedenen Stellen im Kanaldatenpuffer verwendet
wrid,
Fig. 5A die Konstruktion des Kanaldatenpuffers im einzelnen, und 5B
Fig. 6A in Diagrammen eine typische Datenübertragung vom bis 6F Kanal zum Kanaldatenpuffer,
Fig. 7A in Diagrammen eine typische Datenübertragung vom bis 7E Kanaldatenpuffer zum Hauptspeicher,
Fig. 8 Schematisch im einzelnen die Konstruktion des in Fig. 5A gezeigten Schreibtreibers,
Fig. 9 schematisch im einzelnen die Konstruktion der Speicherübertragungspuff
eradresssteuerung der Fig. 5A,
Fig. 10 im einzelnen die Konstruktion eines in Fig. 9 verwendeten Assemblerelementes,
Fig. 11 im einzelnen die Konstruktion der in der Speicherübertragungs-Pufferadresssteuerung
der Fig. 9 verwendeten Wahlsteuerschaltung,
Fig. 12 in einer Tabelle die Erklärung des Pufferadress-Assemblers
in Fig. 9,
Fig. 13 schematisch im einzelnen die Konstruktion der Kanalübertragungspuffer-Adresssteuerung,
der Kanalübertragungs-Schreibsteuerung und der Kanalübertragungs-Lesesteuerung der Fig. 5A,
809885/0744
EN9-76-028
Fig. 14 im einzelnen die Konstruktion des Kanalübertragungspuff er-AdressZählers der Fig. 5A,
Fig. 15 im einzelnen die Konstruktion des Speicherübertragungs-Pufferadresszählers
und der Uebertragungssteuerung der Fig. 5A, und
Fig. 16 im einzelnen die Konstruktion der Datenpufferzählsteuerung
der Fig. 5A.
809885/0744
282966a
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 peripheren E/A-Gerät 10 an einen
E/A-Kanal 11 übertragen. Die Daten werden dann durch eine
zwei Byte breite Datensammelleitung an einen Kanaldatenpuffer 12 zur vorübergehenden Speicherung übertragen. Die im
Kanaldatenpuffer 12 angesammelten Daten werden in entsprechenden Intervallen über eine acht Byte große Datensammelleitung
an den Hauptspeicher 13 über 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,
den Kanaldatenpuffer 12 und den E/A-Kanal 11. Der Kanaldatenpuffer
12 ist erfindungsgemäß konstruiert und optimiert den gesamten Datenübertragungsprozeß so, daß trotz der unterschiedlichen
Betriebsforderungen 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
beispielsweise die Form eines Kartenlesers oder einer Magnetbandeinheit haben. Danach wird das Programm durch die Instruktionsverarbeitungseinheit,
IPU 14, 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
EN 976 028
809885/0744
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/AOperation
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 Status- 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 diesm Fall kann das E/AGerä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
EN 976 028
8.09885/Q744
2829663
gilt entsprechend für die Numerierungsfolge nebeneinanderliegender
Bytepositionen, die ebenfalls von links nach rects 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
gelesen werden. Der Ausdruck bezieht sich auf eine Eingabd/
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-Schreiboperation1
bezieht sich auf den Fall, in dem Daten in eines der E/AGeräte 10 geschrieben werden. Der Ausdruck bezieht sich auf
eine Eingabe/Ausgabeoperation, bei der Daten vom Hauptspeicher 13 in den Kanaldatenpuffer 12 und von dort in den E/AKanal
11 übertragen werden. Dieser Ausdruck wird auch abgekürzst
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
EN 976 028
809885/0744
282966a
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übe:
gehend speichert. Eine Datenübertragungsschaltung, die ein zwei Byte großes Kanal-Eingangsdatenregiter (CIDR) 21 enthält,
dient der übertragung von jeweils zwei Datenbytes vom E/AKanal 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 Speicherdatenü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 Speicheradreßregister 26 (SAR) adressiert wird. Dieser Haptspeicherbereich 25 ist als integrierter
Halbleiterspeicher ausgeführt und wird nicht destruktiv gelesen. Er hat eine Speicherζugriffslä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
EN 976 028
809885/0 744
acht Bytes aktiviert eine Bytewahleinheit 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ührungsbeispiel nutzt die Datenpuffer/
Hauptspeicher-Datenübertragungsschaltung einen acht Byte brei ten Fluß durch einen Byteschieber 30, der in der Instruktionsverarbeitungseinheit
14 liegt, um die in verschiedenen Instruktionsverarbeitungsoperationen benötigte Schiebewirkung
zu erzielen. Der Byteschieber 30 ist vorzugsweise von dem in der.US-Patentschrift Nr. 3 916 388 beschriebenen Typ und
kann insbesondere Daten in Byteschritten nach rechts oder links verschieben. Mit anderen Worten, der Byteschieber 30
kann acht Bytes von Eingangsdaten empfangen und sie (1.) entweder ohne Verschiebung direkt zur Ausgabe durchleiten
oder (2.) sie mit einer Verschiebung von 1 bis 7 Bytes nach
rechts oder (3.) mit einer Verschiebung von 1 bis 7 Bytes nach links weiterleiten. Der Byteschieber 30 arbeitet im Umlaufbetrieb,
in dem an einem Ende ausgeschobene Daten wieder eingegeben und in das andere Ende des Schiebers wieder eingeschoben
werden. In diesem Umlaufbetrieb werden Daten vom Pufferspeicher 20 an den Hauptspeicherbereich 25 und umgekehrt
übertragen.
Der Byteschieber 30 ist in der Instruktionsverarbeitungseinheit
14 enthalten und sorgt für die verschiedenen Daten-Schiebeoperationen,
die zeitweise während der Datenmanipulation innerhalb der instruktionsverarbeitungseinheit
benötigt werden. Außerdem sorgt er für die Datenausrichtung,
809885/UM4
EN 976 028
282966a
die bei der Datenübertragung vom Hauptspeicher 25 in ein Hardwareregister
in der IPU 14 oder umgekehrt gebraucht werden kann. Der Byteschieber 30 wird also auch für andere Zwecke
als nur für die Datenübertragung zwischen dem Pufferspeicher 20 un dem Hauptspeicherbereich 25 gebraucht. Während
es natürlich für die übertragungsschaltung zwischen dem Pufferspeicher und dem Hauptspeicher wirtschaftlicher ist,
den Byteschieber 30 zu benutzen, ist es nicht unbedingt erforderlich. Wenn das aus irgendeinem Grund nicht bequem
ist oder die IPU keinen Umlaufbyteschieber hat, kann der Kanal
datenpuffer 12 auch mit einem eigenen separaten Byteschieber ausgerüstet werden.
Alle in Fig. 2 dargestellten primären Datensammelleitungen sind acht Bytes breit, mit Ausnahme der für die Datenübertragung
zwischen dem E/A-Kanal 11 und dem Pufferspeicher 20 verwendeten Sammelleitungen. Diese sind zwei Bytes breit.
Jede acht Byte breite Datensammelleitung besteht aus 72 Leitern für die gleichzeitige parallele übertragung von 72 Bits
(64 Datenbits und 8 Paritätsbits). Die zwei Byte großen Sammelleitungen bestehen aus 18 Leitern zur gleichzeitigen
parallelen Übertragung von 18 Bits (16 Datenbits und zwei
Paritätsbits).
Im vorliegenden Ausführungsbeispiel enthält die Schaltung zur übertragung von Daten zwischen dem Pufferspeicher 20 und
dem Hauptspeicherbereich 25 in der genannten Reihenfolge ein Speicherdaten-Übertragungsregister (STDR) 23, den Byteschieber
30, das Hauptspeicher-Datenregister 27 und eine acht Byte große Datensammelleitung 31. Die aus dem Pufferspeicher 2D
ausgelesenen Daten werden zum gegebenen Zeitpunkt in das STDR 23 gesetzt. Die Daten im STDR 23 laufen durch den Byteschieber
30 und werden zum gegebenen Zeitpunkt in das Hauptspeicher-Datenregister (MSDR) 27 gesetzt. Die Daten im
MSDR 27 werden über die Datensammelleitung 31 an die Schreib-
EN 976 028
809885/0 7 44
schaltung im Hauptspeicherbereich 25 gegeben und zum geeigneten
Zeitpunkt im Hauptspeicherbereich 25 an die acht Byte große Speicherwortstelle geschrieben, die durch die Adresse
im SAR 26 bezeichnet ist.
Wenn Daten in der Gegenrichtung, nämlich vom Hauptspeicher 25 zum Pufferspeicher 20 übertragen werden, enthält der Datenübertragungsschaltkreis
das MSDR 27, den Byteschieber 30, das STDR 23 und eine acht Byte große Datensammelleitung 32.
Die Daten werden aus dem Hauptspeicher 25 nach der Adresse im SAR 26 ausgelesen und in das MSDR 27 gesetzt. Die Daten im
MSDR 27 laufen durch den Byteschieber 30 und werden zum entsprechenden Zeitpunkt in das STDR 23 gesetzt. Die Daten im
STDR 23 werden über die Datensammelleitung 32 an eine Schreib· schaltung im Pufferspeicher 20 geleitet und zum entsprechenden
Zeitpunkt dorthinein an einer Stelle geschrieben, die durch die von der Puffersteuerung 24 kommende Pufferadresse
bestimmt wird.
Im vorliegenden Ausführungsbeispiel wird angenommen, daß die Hauptsteuerung 15 mikroprogrammiert ist. Sie enthält einen
Steuerspeicher zum Speichernder Steuermikrowörter, ein Steuerregister
zum Empfang der einzelnen Mikrowörter und eine Decodierschaltung zum Decodieren der Mikrowörter, zwecks
Entwicklung der Steuersignale,die die verschiedenen (nicht
dargestellten)Steuertore steuern, die zu den Datensammelleitungen,
den Adreßsainmelleitungen usw. gehören, sowie verschiedene andere Steuersignale umfassen, die in der IPU gebraucht
werden. Für den Steuerspeicher ist eine entsprechende
Adreßschaltung vorgesehen, um die richtige Startadress« für die jeweils ausgeführte Programminstruktion zu wählen und
so die Mikrowörter nacheinander und zum Verzweigen auf andere Mikrowörter anzusteuern, wenn die Bedingungen das vorschreiber
809885/0744
Die IPU 14 enthält eine arithmetische und logische Einheit
(ALU 33), einen Lokalspeicher 34 und verschiedene Hardwareregister wie das acht Byte große A-Register 35, das acht
Byte große B-Register 36 und das acht Byte große Bestimmungsregister oder D-Register 37, zur Verwendung bei der
Ausführung der verschiedenen arithmetischen und logischen Operationen auf den verarbeiteten Daten. Bei einer typischen
Programminstruktion in Maschinensprache besteht der erste Schritt im Abruf der Instruktion aus dem Hauptspeicher 25
und ihrer Übertragung in ein Instruktionsregister 38. Dazu nimmt man die Instruktionsadresse von einem Instruktionszähler 39 und setzt sie in das SAR 26 über einen Assembler
und die Adreßsammelleitung 29. Die adressierte Instruktion wird aus dem Hauptspeicher 25 gelesen und an das Instruktionsregister
38 über das MSDR 27, den Byteschieber 30 und das D-Register 37 gegeben. Als Teil der Instruktionsabrufoperation
werden die Operandenadressen aus den Basisadressen und den relativen Adressen errechnet, die in der Instruktion
enthalten sind, und die Ergebnisse werden in die entsprechenden Operandenadreßregister im Lokalspeicher 34
gesetzt. Außerdem wird der Instruktionszähler 39 über den Fortschreibungsaddierer 41 so fortgeschrieben, daß er die
Adcesse der nächsten Programminstruktion enthält. Der Operationscodeteil
(OP-CODE-Teil) der Programminstruktion in Maschinensprache im Instruktionsregister 38 wird an die
mikroprogrammierte Hauptsteuerung 15 gegeben, um die richtige
Folge von Mikrowörtern zur Ausführung der jeweiligen Programminstruktion
aufzurufen. In einem mehr oder weniger typischen Fall (da gibt es viele verschiedene Variationen) wird
die Instruktion ausgeführt durch Abrufen der Operanden vom Hauptspeicherbereich 25 und Einsetzen dieser Operanden in
die entsprechenden 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 vm Lokalspeicher 34 gelesen und in die entspre-
976 028 809885/074
chende Stelle (typischerweise eine der Operandenstellen)
im Hauptspeicherbereich. 25 geschrieben. Die Datenübertragung vom Lokalspeicher 34 zum Hauptspeicher 25 erfolgt über das
B-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 Lokalspeicher-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 die 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 A-Register 35 und das B-Register 36 gesetzt. Die Datenwerte in diesen beiden Registern werden dann durch die ALU
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 Daten·
Verschiebung 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 B-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 A-Register
35 oder das B-Register 36 je nach Bedarf der jeweils ausgeführten Operation gesetzt werden. Der Bit-
EN 976 028
80 9 885/0744
schieber 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 eingeleitet, daß man eine E/A-Instruktion (z.B. eine Instruktion START I/O)
vom Hauptspeicher 25 abruft und in das Instruktionsregister 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 B-Register 36, die
ALU 33, das D-Register 37 und eine Steuersammelleitung 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 Hardwareregister gesetzt. Der Befehlscode wird unter anderem an das 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-Information im Lokalspeicher 34, wird zusammen
mit der Adressierung des Hauptspeichers 25 benutzt. Wenn die eigentliche Adressierung der Eingabe/Ausgabedaten
im Hauptspeicher 25 begonnen werden soll, wird z.B» der Datenadreßteil
des CCW aus dem Lokalspeicher 34 gelesen und in das
EN 976 028
8.0 9885/07U
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 die Eingabe/Ausgabe-Operation weiterläuft/ wird as CCW-Datenadreßfeld im Lokalspeicher 34 auf
den neuesten Stand fortgeschrieben.
Fig. 3 zeigt zur Erklärung der Arbeitsweise des Kanaldatenpuffers 12 ein Zeiteinteilungsdiagramm. 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 TaktintervalIe geliefert. Ein Zug von CO-Taktimpulsen
ist beispielsweise für die Taktierung der während der CO-Taktintervalle auszuführenden Operationen vorgesehen.
Der Kanaldatenpuffer 12 wird auf Zyklusteilerbasis 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 Fig. 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 Zyklus belegt. Separate Züge wiederholter CT- und ST-Impulse sind für
die Taktierung der verschieedenen während der entsprechenden Zeitabschnitte auszuführenden Operationen vorgesehen. Durch
diesen geteilten Zyklusbetrieb stören sich Übertragungen zwischen Kanal und Puffer einerseits und Speicher und Puffer
andererseits nicht.
EN 976 028
809885/07U
Fig. 4 zeigt in einer allgemeinen Darstellung einen Assembler (ASM), von dem verschiedene Formen an verschiedenen Stellen
in der detaillierten Konstruktion 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 V bis Z ist 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 X-Eingangssammelleitung mit der Z-Ausgangssammelleitung verbunden.
Legt man die Fign. 5A und 5B so nebeneinander, daß die Fig. 5A links liegt, so ist die Konstruktion des in Fig. 2 dargestellten
Kanaldatenpuffers 12 im Detail gezeigt. Insbesondere
in Fig. 5B ist der Pufferspeicher 20 dargestellt, der elek--'
trisch 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 einen Adreßmechanismus zum Ansteuern einer
jeden 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
EN 976 028
809885/0744
■-- 27 -
ü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 Speichermechanismen 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 wi£d 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 AO bis A7 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 W7 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
A4 muß den Adreßcode 10001 geben. (Hinweis: die erste Zeile hat die Adresse 00000) . Wennudiesebbedlden
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.
EN 976 028
809885/13744
In einer Gesamtübersieht kann man sich den Pufferspeicher
als einen einheitlichen Speicher von 256 Byte Größe mit 32 adressierbaren Zeilen 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 acht
Speichergruppen 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 zusammenzuhängen und Zeilen und
Spalten im physikalischen Sinne zu bilden. Hier soll lediglich gesagt werden, daß die Speicherstellen so verdrahtet
sind, daß sie elektrisch gesehen in Zeilen und Spalten angeordnet erscheinen oder sich genauso verhalten. Die zum Pufferspeicher
20 gehörende Datenübertragungsschaltung für mehrere Bytes enthält zwei Hauptteile, nämlich die M-Bytedatenübertragungsschaltung
für die Übertragung von M-Byte-Datensegmenten
zwischen dem Pufferspeicher 20 und dem Hauptspeicher 25,
und eine N-Byte-Datenübertragungsschaltung zur übertragung
von N-Byte-Datensegmenten zwischen dem Datenpuffer 20 und der Kanalschaltung im E/A-Kanal 11. M und N sind ganze Zahlen,
M ist die Anzahl der Bytespalten im Pufferspeicher 20. Im vorliegenden Ausführungsbeispiel hat M den Wert acht und N
den Wert zwei. Jeder dieser Hauptteile enthält wiederum zwei Unterteile. Die M-Byte-Datenübertragungsschaltung enthält eine
erste Datenübertragungsschaltung zur Übertragung von 8 Byte großen Datensegmenten vom Hauptspeicher 25 in den Puffer-
EN 976 028
809885/0744
speicher 2O 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 N-Byte-Datenübertragungsschaltung eine erste Datenübertragungsschaltung
für die Übertragung von 2 Byte großen Datensegmenten vom E/A-Kanal 11 an den Pufferspeicher 20
und eine zweite Datenübertragungsschaltung zur übertragung
von zwei Byte großen Datensegmenten in Gegenrichtung, nämlich vom Pufferspeicher 2O zum E/A-Kanal 11.
Betrachtet man den ersten Teil der acht Byte großen Datenübertragungsschaltung
für die bertragung vom Speicher zum Puffer, so enthält dessen in Fig. 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 Fig. 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
mit verschiedenen Assemblern 80 bis 87 gekoppelt und somit mi 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 Torschaltung 88, das STDR 23 und
809885/0744
EN 976 028
7F29668
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 O bis
der von den Gruppen 50 bis 57 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 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, W4 und W6 während eines gegebenen CT-Impulses und
nur eine ungeradzahlige Schreibsteuerleitung W1, W3, W5 und W7 während eines gegebenen CT-Impulses erregt werden.
So können günstigstensfalls 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 ungeradzahliges Byte während eines
EN 976 028
809885/0744
gegebenen CT-Intervalles in den Pufferspeicher 20 geschrieben.
In anderen Fällen werden auch gar keine Bytes geschrieben.
Jeder der Assembler 80 bis 87 ist eine Version des in Fig. 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-Impulses werden somit die acht Bytepositionen
der vom Speicher zum Puffer laufenden Datensammelleitung 32 mit entsprechenden ByteeingangsSammelleitungen 60
bis 67 verbunden. Andererseits werden die Kanalübertragungsimpulse
(CT) an eine zweite Wahlsteuerleitung für jeden Assembler 80 bis 87 angelegt. Während jedes CT-Impulses sind
somit die Ausgangsleitungen vom CIDR 21 mit den Eingangssammelleitungen
60 bis 67 verbunden, wobei die geradzahlige Ausgangsleitung
mit einer geradzahligen Eingangsleitung und die ungerac
zahlige Ausgangsleitung mit einer ungeradzahligen Eingangssammelleitung 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 Kanalzykünisaaiäf.
Die CT- und ST-Impulse kommen von einer Pulsgeneratorschaltung
91 (Fig. 5a), die von den Kanaltaktimpulsen CO bis C3 vom E/A-Kanal 11 gespeist wird. Diese Pulsgeneratorschaltung 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 C1
zurückgestellt 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übertragungsschaltung, so enthält de:
EN 976 028
809885/Q7U
in Fig. 5b gezeigte Teil die acht jeweils ein Byte großen Ausgangs
Sammelleitungen 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 angeschlossen ist.
Die Assembler 92 und 93 haben die in Fig. 4 gezeigte Form. Vier geradzahlige Lesesteuerleitungen RO, R2, R4 und R6 sind
einzeln an die vier Wahlsteuerleitungen des Assemblers 92 angeschlossen,
und zwar so, daß die Leitung RO die Wahl der Byte-Null-Ausgangs leitung 70, die Leitung R2 die Wahl der Byte-2-Ausgangsleitung
72 usw. einschalten. Nur eine der vier geradzahligen Lesesteuerleitungen RO, R2, R4 und R6, 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 R1, R3, R5 und R7 mit den vier Wahlsteuerleitungen im Assembler 93 verbunden.
Die Leitung R1 schaltet die Wahl der Byte-Eins-AusgangsSammelleitung
71, die Leitung R3 die Wahl der Byte-Drei-Ausgangssammelleitung 73 usw. ein. Nur eine dieser ungeradzahligen
Lesesteuerleitungen kann zu einem gegebenen Zeitpunkt aktiviert werden, und somit kann jeweils nur eine ungeradzahlige
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übertragungsschaltungsteile benutzt. :'. " ·" -" -
EN 976 028
809885/0744
282966a
Die Paarungen sind folgende:
1.) Schaltung für Kanalübertragung iiiit Puffer.schreiben (CTBW)
2.) Schaltung für Speicherübertragung mit Puffer lesen (STBR)
1.) Schaltung für Speicherübertragung mit Puffer schreiben (STBW)
2.) Schaltung für Kanalübertragung mit Puffer lesen (CEBR)
Dem Datenpuffer wird durch die vom E/A-Kanal 11 gelieferten
Steuersignale CTBW, CTBR, STBW und 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 Kanalzyklus, 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 Signal CTBW 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 CO bis C3 wie der E/AKanal 11.
EN 976 028
809885/Q7U
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 Byteposition 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, STDR 23, die Datensammelleitung 89/den Byteschieber
30 (Fig. 2) und das MSDR 27 (Fig. 2) zu übertragen.
Wenn Daten während einer E/A-Leseoperation empfangen werden, ist das Steuersignal CTBW auf 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 raktimpulse C1 erregt, um den Datensatz im CIDR 21 in den
Pufferspeicher 20 zu schreiben. Wenn Daten während der E/A-Leseoperation
in den Hauptspeicher 25 zu übertragen sind, aktiviert das Steuersignal STBR die Torschaltung 88, damit
die an ihrer Eingangsseite gelieferten Daten an die Ausgangsseite weitergeleitet werden. Dieses Steuersignal STBR aktiviert
weiterhin ein UND-Glied 96, um die Taktimpulse C3 an den Eingangssteueranschluß des STDR 23 über das UND-Glied 96
und ein ODER-Glied 97 zu liefern. Dadurch kann jeder Impuls C3 die Daten auf den Ausgangssammelleitungen 70 bis 77 in das
STDR 23 setzen.
Für den Pufferspeicher 20 sind zwei separate Adreßmechanismen 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
EN 976 028
809885/0744
Umschaltung von einer Adresse zur andern gesteuert wird. Insbesondere der an jeden Assembler der Gruppe 100 angelegte
Impuls CT läßt die fünf Bit großen Kanalübertragungsadressen
an die ebensogroßen Adreßsammelleitungen AO bis A7 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 Speicherübertragungsadressen
an die fünf Bit großen Adreßsammelleitungen AO bis A7 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 ausgelesenen Daten von einer anderen Speicherstelle
entnommen werden können.
Die Fign. 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ämliche die Zeile 0, Spalte 0, geschrieben oder dort gespeichert.
Während des zweiten in Fig. 6b gezeigten Zyklus wird das Datenbyte Eins in der Zeile 0, Spalte 1, gespeichert.
Während des dritte Zyklus (Fig. 6c), wird das Datenbyte 2 in die Zeile 0, Spalte 2, gespeichert. Während der ersten
drei gezeigten Übertragungen wird 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 Fig. 6e gezeigten fünften Zyklus, werden die Datenbytes 5 und 6 in die Zeile 0, 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 1, Spalte 0 gespeichert,
Damit ist der Fall gezeigt, in dem während eines
EN 976 028
809885/0744
einzigen Zugriffs Pufferspeicherstellen adressiert werden müssen, die in zwei verschiedenen Zeilen des Pufferspeichers ί
liegen.
Die schwarzen Punkte in einigen Speicherstellen bezeichnen in den Fign. 6b bis 6f das Vorhandensein von Daten und die Zahlei
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 werden auf die geradzahlige Byteposition null im CIDR 21 und die ungeradzahligen Bytes in die ungeradzahlige
Byteposition 1 gesetzt.
Die Fign. 7a bis 7e zeigen typische Datenübertragungen vom Pufferspeicher 20 zum Hauptspeicher 25. Jede der Fign. 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 des jeweiligen Zyklus interessanten
Stellen. Der Stern 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 11 hereingekommen sind und im 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
die Bits 101 sind.
Das erste Ziel besteht darin, eine acht-Byte-Grenze im Hauptspeicher
25 zu bekommen. Dazu liest man die ganze Zeile null
EN 976 028
809885/Q7U
aus dem Pufferspeicher 20 und setzt sie in das STDR 23. Die
Ausgabe des STDR 23 fließt durch den Byteschieber 30 (Fig. 2), und zu gegebener Zeit wird sie in das MSDR 27 gesetzt (Fig. 2)
Nach Darstellung in Fig. 7a wird der Byteschieber 30 so eingestellt, daß er eine Rechtsverschiebung um fünf Bytepositionen
vornimmt. Die Byte-Wahleinheit 28 (Fig. 2) läßt nur die drei am weitesten rechts stehenden Bytepositionen im MSDR 27 in den
Hauptspeicher 25 schreiben. Nach Darstellung in Fig. 7a werden die Daten dadurch an eine acht-Byte-Grenze im Hauptspeicher 25
gebracht.
Fig. 7b zeigt, was im nächsten Kanalzyklus passiert. Wieder werden acht weitere Bytes aus dem Pufferspeicher 20 gelesen
und in das STDR 23 gesetzt. In diesem Fall kommen jedoch einig« 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 Fign. 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 Fign. 7a und 7b sind hierzu zwei Zugriffe zum Pufferspeicher 20 erforderlich. Nachdem dann genügend Daten
EN 976 028
809885/0744
im Pufferspeicher 20 gesammelt sind, wird eine volle Speicherübertragungsoperation
ausgeführt, um die nächsten 64 Datenbytes in den Hauptspeicher 25 zu übertragen. Dazu nimmt man
acht Übertragungen mit je acht Bytes vom Pufferspeicher 20 zum Hauptspeicher 25 vor. In Fig. 7c ist die erste derartige
Üertragung und in Fig. 7d die letzte gezeigt. Danach folgt eine weitere Speicher-Teilübertragungsoperation, um die übrige^.
vier Datenbytes in den Hauptspeicher 25 zu übertragen. Diese Teilübertragung ist in Fig. 7e gezeigt.
Die Daten vom E/A-Kanal 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 infragekommende Leseoperation gelesen wurden. An entsprechenden dazwischengeschobenen
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 mit
der möglichen Ausnahme der ersten und letzten übertragung jeweils acht Datenbytes in den Hauptspeicher 25 geschrieben.
Abhängig von der Startadresse im Hauptspeicher und der Länge der vom E/A-Gerät gelesenen Daten können während der ersten
und letzten übertragung oder während einer dieser Übertragungen
oder auch keiner Übertragung weniger als acht Bytes in den Hauptspeicher 25 geschrieben werden. Die infragekommende jeweilige
Eingabe/Ausgabe-Leseoperation wird beendet, nachdem das letzte Datenbyte in den Hauptspeicher 25 geschrieben wurde
Eine Eingabe/Ausgabe-Schreiboperation läuft in ziemlich der umgekehrten Reihenfolge ab, wie die gerade beschriebene
Eingabe/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 E/A-Schreiboperation auf dem Einerpegel und das S
r\ i
<=>
EN 976 028
809885/0744
Torschaltung 78 geöffnet, so dass sie Datensignale leitet ,und die Torschaltung 88 wird abgeschaltet. Die durch die
Torschaltung 78 weitergeleiteten Daten werden durch die über das UND-Glied 98 weitergeleiteten Taktimpulse C1 in das STDR
23 gesetzt. Die Daten im STDR 23 werden der Schreibschaltung 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
20 geschrieben. Jeder an das UND-Glied 101 angelegte Impuls C3 aktiviert alle acht Schreibsteuerleitungen
WO bis W7. Das Mass 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-Schreiboperatiön bleibt das UND-Glied 95 abgeschaltet (CTBW auf Null-Pegel), so daß keine Daten in
das CIDR 21 gesetzt werden. Während der CT-Zeitintervalle
wird auch keine der Schreibsteuerleitungen WO bis W7 erregt, was noch viel wichtiger ist. Somit werden während einer E/A-Schreiboperation
nur Daten vom Hauptspeicher 25 in den Puffer speicher 20 geschrieben.
In einer 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 ausgeglichen, 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
EN 976 028
809 885/074
282966a
Verfügung stehen. Die Daten werden an den E/A-Kanal 11 in
Einheiten von je zwei Bytes über das Kanal-Ausgabedatenregistei
CODR 22 und die zwei Byte breite Datensammelleitung 94 übertragen. Jeder vom UND-Glied 99 an das CODR 22 angelegte Taktimpuls
C1 setzt also zwei weitere Datenbytes in das CODR 22, wobei das geradzahlige Byte vom Assembler 92 und das ungeradzahlige
vom Assembler 93 gewählt wird.
Wie vorher sind mit den Assemblern 100 zwei separate Adreßmechanismen
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 Zyklusteilung durch die Impulse CT und ST für die Assembler 100 können die Einschreibungen vom Hauptspeicher
25 unabhängig von den Auslesungen an den E/A-Kanal 11 weiterlaufen,und bei Bedarf können während desselben Kanalzyklus
acht Bytes geschrieben und zwei Bytes ausgelesen werden
Sowohl für E/A-Leseoperationen als auch für E/A-Schreiboperationen
arbeitet der Pufferspeicher im Umlaufbetrieb. Wenn also
in einer gegebenen E/A-Operation mehr als 256 Bytes zu übertragen sind, dann kehrt die Puffers ehr eiboper at ion in die erst«;
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 wird. Die Pufferleseoperation
läuft in ähnlicher Weise 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 Fig. 8 ist im einzelnen die Konstruktion eines Schreibtreibers
102 gezeigt, der gemäß Darstellung in Fig. 5a die Treibersignale für die Schreibsteuerleitungen WO bis W7 lieferb
Der Schreibtreiber 102 besteht aus einem Satz von acht
EN 976 028
809885/0
2829666
ODER-Gliedern/ von denen je ein Eingang mit der Ausgangsleitung 103 vom UND-Glied 101 verbunden ist (Fig. 5a).
Wenn das Steuersignal während einer E/A-Schreiboperation auf dem binären Einerpegel liegt, aktiviert jeder Taktimpuls C3
den ganzen Satz von Schreibsteuerleitungen WO bis W7.
Während einer E/A-Leseoperation werden andererseits die zu den Gruppen 50 bis 57 laufenden Schreibsteuerleitungen WO
bis W7 einzeln über einzelne Signale gesteuert, die an den zweiten Eingang der ODER-Glieder im Sehreibtreiber 102 über
die Leiter 104 geleitet werden. Während eines gegebenen Kana zyklus sind keine, eine oder zwei Schreibsteuerleitungen
WO bis W7 aktiv gesteuert.
In Fig. 5a sind die Hauptfunktionseinheiten einschließlich der Puffersteuerung 24, die in Fig. 2 gezeigt ist, dargestellt.
Zu diesen Funktionseinheiten gehören zwei separate Sätze von Pufferspeicher-Adreßschaltungen zur einzelnen
Lieferung mehrere Bits umfassender Adressen an den Adreßmechanismus einer jeden Speichergruppe 50 bis 57. Die Speicherübertragungs-Datenpufferadreßschaltung
liefert insbesondere mehrere Bits umfassende Adreßfelder während der ST-Zeitabschnitte an die Adreßsammelleitungen AO bis A7.
Diese Speicherübertragungsadreßfelder dienen der Adressierung des Pufferspeichers 20 zur Datenübertragung von und zum Hauptspeicher
25. Ähnlich ist eine Kanalübertragungs-Datenpufferadreßschaltung vorgesehen für die Lieferung von mehrere
Bits umfassenden Adreßfeldern während der CT-Zeitabschnitte an die Adreßsammelleitungen AO bis A7. Diese CT-Adreßfeider
dienen der Adressierung des Pufferspeichers 20 zur Datenübertragung von und zum E/A-Kanal 11.
Die Speicherübertragungs-Datenpufferadreßschaltung enthält
einen Speicherübertragungs-Pufferadreßzähler mit Uebertragungssteuerung
105. Der Adreßzählerteil dieser Einheit liefert eine Speicherübertragungs-Pufferadresse (STBA) an die
Speicherübertragungs-Pufferadreßsteuerung (ST-Pufferadreß-
976 028
9885/0744
2829663
steuerung) 106. Diese ST-Pufferadreßsteuerung 106 wiederum
liefert eine fünf Bit große Adresse an einen ersten Eingang der Adreßsammelleitungs-Asseinbler AO bis A7 in der Assembler-Gruppe
100. Die Übertragungssteuerung 105 empfängt verschiedene Hauptspeicheradreßsignale, Zählerrückstellsignale und
Datenlängensignale von der IPU 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
AO bis A7 treiben. Der CT-Schreibsteuerteil der CT-Zugriffssteuerung 108 empfängt ein CTBW-Steuersignal und die
Taktimpulse C1 vom E/A-Kanal 11. Der CT-Schreibsteuerteil
empfängt ebenfalls die Steuersignale GERADE und UNGER.von E/AKanal
11. Das Signal GERADE.steht auf dem aktiven Pegel, wenn ein gültiges Datenbyte auf dem Teil der Datensammelleitung
liegt, der ein Datenbyte an die geradzahlige Byteposition (Byte 0) im CIDR 21 liefert. Auf ähnliche Weise ist das UNGER.
Steuersignal auf dem aktiven Pegel, wenn ein gültiges Datenbyte auf dem Byteteil der Datensammelleitung 90 liegt, der
ein Datenbyte an die ungeradzahlige Byteposition (Byte 1) im CIDR 21 gibt. Der CT-Pufferadreßzähler 107 empfängt ein
Zählerrückstellsignal von der IPU 14 über die Steuersammelleitung 46. Dieser CT-Pufferadreßzähler 107 empfängt auch
ein Kanalübertragungslängensignal (CTL) vom E/A-Kanal 11.
Dises Signal gibt an, ob null, ein oder zwei Bytes gültiger Daten auf der Datensammelleitung 90 stehen.
EN 976 028
809885/0 74A ORIGINAL INSPECTED
ine Datenpufferzählsteuerung 109 ist ebenfalls vorgesehen, um
unter anderem dem E/A-Kanal 11 mitzuteilen, wenn genügend
Daten im Pufferspeicher 20 zur Einleitung einer Puffer-Speicherübertragung gesammelt wurden. In diesem Fall gibt der
E/A-Kanal 11 die entsprechenden Steuersignale an die Hauptsteuerung
15 (Fig. 2), um die Puffer - Speicherübertragung einzuleiten.
In Fig. 9 ist im einzelnen die Konstruktion der in Fig. 5a allgemein dargestellten ST-Pufferadreßsteuerung 106 gezeigt.
Außerdem ist ein Speicherübertragungs-Pufferadreßregister (STBAR) 110 gezeigt, das indem ST-Pufferadresszähler 105
liegt und einen Teil davon bildet. Das STBAR 110 wird nach
Bedarf so fortgeschrieben, daß es die Lage des laufenden Anfangsbyte im Pufferspeicher 20 für die Speicherübertragung
enthält. Das STBAR 110 ist B Bits breit, wobei B der Logarithmus zur Basis zwei des Produktes MxR ist. Im vorliegenden
Beispiel ist M (Anzahl der Spalten im Pufferspeicher 20) gleich acht und R (Anzahl der 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 reicht aus zur eindeutigen Bezeichnung jeder gegebenen je ein Byte grossen
Stelle in dem 256 Stellen großen Pufferspeicher 20.
Der Teil der in Fig. 9 dargestellten ST-Pufferadreßschaltung
enthält weiterhin eine Schaltung, die auf den Satz von r höherwertigen Adreßbits im STBAR 110 anspricht und einen
modifizierten Satz höherwertiger Adreßbits erzeugt, deren Wert um eine Zahl höher ist als der Wert des nicht modifizierten
Satzes. Wie bereits gesagt, ist der Faktor r der Logarithmus zur Basis zwei von R, die Anzahl der Zeilen im
Pufferspeicher 20. Im vorliegende Beispiel ist R = 32 und somit r = 5. Die auf den Satz von fünf werthöheren Adreßbits
(Bits 0 bis 4) im STBAR 110 ansprechende Schaltung
EN 976 028
809885/0744
erzeugt den modifizierten Satz werthöherer Adreßbits und ist
clargstellt als eine + 1-Erhöhungsschaltung 111. Der unveränder
Satz der fünf werthöheren Adreßbits wird als Satz A bezeichnet und der modifizierte Satz als Satz MA. Der MA-Adreßwert ist um
eine Zahl höher als der A-Adreßwert.
Die in Fig. 9 gezeigte ST-Adreßschaltung enthält weiterhin
eine Wahlschaltung, um in jaden Adressiermechanismus 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 einem Ausgang und eine nichtgeschaltete Ausgangsleitung
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ßsammelleitungen AO
bis A7 (Fig. 5b) über entsprechende Assembler 100 (Fig. 5a). Gemäß Darstellung durch die nichtgeschaltete Ausgangsleitung
119 empfängt die Adreßsammelleitung A7 immer den unveränderten
Satz A der fünf werthöheren Adreßbits in den ST-Zeitintervallen.
Fig. 10 zeigt im einzelnen als Beispiel die Konstruktion des Assemblers 115, der die Adreßbits für die Adreßsammelleitung
A3 wählt. Durch die Verwendung des Inverters 120 wird nur eine externe Wahlsteuerleitung 121 benötigt. Wenn die Wahlsteuerleitung
121 auf binär null steht, wird der unveränderte Satz A der fünf Adreßbits an die Adreßsammelleitung A3 gegeben.
Wenn andererseits die Wahlsteuerleitung 121 auf binär eins steht, wird der modifizierte Satz MA der fünf Adreßbits
stattdessen an die Adreßsammelleitung A3 gegeben.
Die anderen Assembler der Gruppe 112 bis 118 in Fig. 9 sind
genauso aufgebaut wie der in Fig. 10 gezeigte Assembler 115.
EN 976 028
809885/0744
Die ST-Pufferadreßschaltung in Fig. 9 enthält auch eine mit
der Wahlschaltung 112 bis 119 gekoppelte Wahlsteuerung, die
auf den Satz von m wertniederen Adreßbits im STBAR 110 anspricht
und feststellt, welcher Satz von werthöheren Adreßbits an jeden Adreßmechanismus für jede Speichergruppe 50
bis 57 gegeben wird. Der Fktor m ist der Logarithmus zur Basis zwei von M, wobei M die Anzahl von Spalten im Pufferspeicher
20 ist, die im vorliegenden Beispiel acht beträgt/ und somit ist m = 3. Die Wählersteuerung, die in Fig. 9 durch
die Wahlsteuerschaltung 122 dargestellt ist, spricht auf den Satz der drei wertniederen Adreßbits (Bits 5 bis 7) im STBAR 1'
an.
Fig. 11 zeigt im einzelnen die Konstruktion der Wahlsteuerschaltung
122 der Fig. 9. Die verschiedenen Ausgangssteuerleitungen
0 bis 6 sind entsprechend mit den Wahlsteuereingängen der Assembler 112 bis 118 verbunden. Die von der Wahlsteuerschaltung
122 vorgenommene logische Verknüpfung ist dargestellt in der Tabelle der Fig. 12. Wenn z.B. die drei wertniederen Adreßbits (Bits 5 bis 7) im STBAR 110 den Wert 000
haben, dann wird die unveränderte Adresse A an jede der acht Adreßsammelleitungen AO bis A7 gegeben. In diesem Fall 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
z.B. den Wert 011 haben, dann wird die unveränderte
Adresse A an die Adreßsammelleitungen A3 bis A7 gegeben und di« veränderte Adresse MA würde an die Adreßsammelleitungen AO
bis A2 gegeben. Dadurch ist ein Fall dargestellt, wo ein acht Byte großes Speichersegment adressiert werden muß, das in
zwei verschiedenen nebeneinanderliegenden Zeilen des Puffer speichers 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
EN 976 028
809885/0744
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-Zugrififssteuerung
108. Diese enthält, wie schon gesagt, einen CT-Pufferadreßsteuerteil,
einen CT-Schreibsteuerteil und einen CT-Lese,-steuerteil. Der CT-Pufferadreßsteuerteil liefert fünf Bit
große Ädreßfelder während der CT-Zeitintervalle über die entsprechenden
Assembler 100 an die Adreßsammelleitungen AO bis A7. Der CT-Schreibsteuerteil liefert die Schreibsteuersignale
WO bis W7 an die in Fig. 5a gezeigten Schreibtreiber 102. Der CT-Lesesteuerteil steuert die Aktivierung der Lesesteuerleitungen
RO bis R7, die zu den in Fig. 5b gezeigten Kanalausgangsassemblern 92 und 93 laufen.
In Fig. 13 ist auch ein Kanalübertragungs-Pufferadreßregister
(CTBAR) 124 gezeigt, das im CT-Pufferadreßzähler 107 liegt und einen Teil davon bildet. Dieses CTBAR 124 liefert eine
B-Bit-Datenpufferadresse zur Adressierung einer gewünschten
Startbytestelle im Pufferspeicher 20 während des CT-Intervalles.
Der Faktor B hat dieselbe Bedeutung wie oben in Verbindung mit dem STBAR 110 beschrieben. Im vorliegenden Ausführungsbeispiel
ist also das CTBAR 124 ein acht Bit großes Adreßregister,und die darin stehende Adresse wird während einei
Eingabe/Ausgabeoperation wiederholt fortgeschrieben, so daß si« die nächste gewünschte Startbytestelle im Pufferspeicher 20
adressiert.
Der in Fig. 13 gezeigte Teil der Kanalübertragungsadreßschaltung enthält auch ein ungerades Gruppenregister 125 und ein
gerades Gruppenregister 126 zur Aufnahme der B -1 höherwertigei Adreßbits (Bits 0 bis 6) vom CTBAR 124. Der CT-Adreßschaltungsteil
in Fig. 13 enthält weiterhin eine Erhöhungsschaltung 127
EN 976 O28 809885/0744
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 O bis 6 des CTBAR 124
unverändert auf das gerade Gruppenregister 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ßschaltung enthält weiter eine Schaltung
zur Lieferung des Satzes von r-höherwertigen Adreßbits im ungeraden Gruppenregister 125 an den Adreßmechanismus 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-Zeitabschnitte von der Adreßsammelleitung 129 und den entsprechenden Assemblern 100 an jede der ungerade numerierten
Adreßsammelleitungen A1, A3, A5 und A7 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ßsammelleitung AO, A2, A4 und A6 über die Adreßsammelleitung
130 und die entsprechenden Assembler 100 während der CT-Zeitintervalle zugeführt.
EN 976 028
809885/Q7U
Für die Mehrzahl der Zugriffe zum Pufferspeicher 20 zwecks
Kanalübertragung sind die geradzahligen Gruppenadressen AO,
A2, A4 und A6 dieselben wie die ungeradzahligen A1 , A3, A5 und A7. 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 Adressen AO, A2, A4 und A6 jedoch um eine Zahl höher als die ungeradzahligen Adressen A1, A3, A5 und A7.
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 111. Durch Erhöhung
um +1 in der Erhö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 Bytes umfassenden Kanalübertragung adressiert wird. 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-Zugriffssteuerung 108 in Fig. 13 enthält auch eine Lese/Schreibsteuerung, die auf einem Satz wertniederer Adreßbits
im CTBAR 124 anspricht und 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 ungeradzahlige Speichergruppe 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 Einerpegel stehen kann. Die aktivierte Ausgangs-
EN 976 028
809885/07U
leitung 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 W1, W3, W5 und 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 Taktimpuls
C1 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 C1 vorbereitet, aber nur wenn eine CT-Pufferschreiboperation durchzuführen ist (CTBW auf Pegel
eins) und gültige Daten in der ungeradzahligen Byteposition im CIDR 21 stehen (UNG.-Signal auf binär eins). Nimmt man an,
daß diese Bedingungen erfüllt sind, so wird das Datenbyte in der Byteposition 1 des CIDR in dem Pufferspeicher 20 während
eines Taktimpulses C1 an der Spaltenstelle geschrieben, die durch die Schreibsteuerleitung W1, 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 A1, A3, A5 oder A7 bestimmt ist. Somit
bestimmen die Bits 0 bis 4 des ungeraden Gruppenregisters die Zeilenkoordinate, die Bits 5 und 6 die Spaltenkoordinate
und der Taktimpuls C1 den Zeitpunkt, zu dem das ungerade Daten byte tatsächlich in den Pufferspeicher 20 geschrieben wird.
Wenn keine E/A-Leseoperation ausgeführt wird, bleiben die UND-Glieder 136 abgeschaltet (CTBW bleibt auf binär null)
und keine der Schreibsteuerleitungen W1, W3, W5 und W7 wird
aktiviert, so daß während der Kanalübertragungsabschnitte keine Daten in den Pufferspeicher 20 geschrieben werden.
EN 976 028
809885/0744
2823668
Für Lesesteuerzwecke während einer E/A-Schreiboperation werden die einzelnen Decodierer-Ausgangsleitungen 132 bis
135 mit den entsprechenden Lesesteuerleitungen R1, R3, R5 und R7 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 auf die ungerade Byteposition im CODR 22 weiterleiten. Das ausgewählte
ungerade Byte wird bestimmt durch die Codierung der Bits 5 und 6 im ungeraden Gruppenregister 125.
Während jedes CT-Zeitintervalles, werden die Gruppenadreßsammelleitungen
AO bis A7 so aktiviert, daß sie acht Byte große Speicherstellen im Pufferspeicher 20 adressieren. Der
Inhalt dieser Speicherstellen erscheint auf den Ausgangssammelleitungen
70 bis 77. Eine der ungeraden Ausgangssammelleitungen 71, 73, 75 und 77 wird durch den Assembler 93 gewählt,
und was auf dieser Sammelleitung erscheint, an das CODR 22 weitergeleitet. Nur die während eines Taktimpulses
C1 bei der Ausführung einer E/A-Schreiboperation (CTBR auf binär eins) vom Assembler 93 weitergeleiteten Daten, werden
jedoch tatsächlich in das CODR 22 gesetzt. Daten die zu eine anderen Zeit als C1 erscheinen, werden ignoriert. Gesteuert
wird dieser Vorgang durch das UND-Glied 99 (Fig. 5b), das die auf die Steuerleitung 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 wird. Für Kanalübertragungszwecke ist also effektiv der Moment, in dem Daten aus dem
Pufferspeicher 20 ausgelesen werden derjenige, zu dem am Ausgang des UND-Gliedes 99 der Taktimpuls C1 auftritt.
Die Kanalübertragungs-Lese/Schreibsteuerung enthält weiterhin
für die geradzahligen Spalten 0, 2, 4 und 6 im Pufferspeicher 20 ähnliche aber separate Steuereinrxchtungen.
EN976028 809885/0744
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 wert- | niederer 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
Ausgangsleitungen 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 WO7
W2, W4 und W6 gekoppelt. Die UND-Glieder 144 werden als Gruppe durch ein weiteres UND-Glied 145 gesteuert, das vom E/A-Kanal '
das Steuersignal CTBW, die Taktimpulse C1 und das Steuersignal GERADE empfängt. Das Steuersignal GEEADE steht auf binär
eins, wenn ein gültiges Datenbyte in die geradzahlige Byteposition null, im CIDR 21 gesetzt wurde. Wenn man annimmt, daß
das der Fall ist und eine E/A-Leseopefation ausgeführt wird und das Signal CTBW auf binär eins steht, dann werden die
Daten in der Byteposition null des CIDR 21 während eines Taktimpulses
CI in den Pufferspeicher 20 an eine geradzahlige Spaltenstelle geschrieben, die durch die Erregung einer der
vier Leitungen WO, W2, W4 und W6 bestimmt wird. Die Zeilenstelle wird bestimmt durch den Adreßwert AO, A2, A4 oder A6-
Für Lesesteuerzwecke werden die Decodierer-Ausgangsleitungen
140 bis 143 einzeln mit den entsprechenden Lesesteüerleitungen RO, R2, R4 und R6 verbunden, die zu dem zum CODR 22 (Fig. 5b)
gehörenden Assembler 92 führen. Die aktive Leitung der Lesesteuerleitungen
RO, R2, R4 und R6 läßt den Assembler 92 die entsprechende Ausgangssammelleitung 70, 72, 74 und 76 wählen
EN 976 028
809885/07U
und die Daten auf der Ausgangssammelleitung an den geradzahligen Byte-O-Eingang des CODR 22 weiterleiten. Das gerade
Datenbyte wird in das CODR 22 gesetzt, wenn der Taktimpuls C1 am Ausgang des UND-Gliedes 99 auftritt.
Die Kanalübertragungs-Lese/Schreibsteuerung ist also so aufgebaut,
daß Speichersteilen in der Größe eines Byte im Pufferspeicher
20 paarweise adressiert werden können, wobei ein Glied dieses Paares eine geradzahlige Bytestelle und das
andere eine ungeradzahlige Bytestelle ist. Die geradzahligen Bytestellen liegen in den geradzahligen Spalten 0, 2, 4 und
und die ungeradzahligen Bytestellen in den ungeradzahligen Spalten 1,3,5 und 7. Zur einfacheren Erklärung wird hier
der Begriff "Gerade-Ungerade-Zugriff" benutzt, um den Fall zu beschreiben, in dem die niedriger numerierte Speicherstelle
eine geradzahlige Bytestelle ist und die höher numerierte Speicherstelle eine ungeradzahlige. Diese Art Zugriff erhält
man, wenn die Adreßwerte in den Gruppenregistern 126 und 125 dieselben sind. Die folgende Tabelle gibt die verschiedenen
Schreibsteuerpaare und Lesesteuerpaare 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.
Bit 6-7 Aktive Schreibleitungen Aktive Leseleitungen
Code
00
01
10
11
01
10
11
W0-W1 W2-W3 W4-W5 W6-W7
R0-R1 R2-R3 R4-R5 R6-R7
In der Spalte "aktive Schreibleitungen" wird angeommen, daß ein Zugriff zu zwei Bytes vorgenommen wird. Bei Zugriff zu
EN 976 028
809885/0744
.- 53 -
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
Speichersteile 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 seigt die aktiven Schreibleitungspaare und die aktiven Leseleitungspaare
für die verschiedenen Codebeziehungen der Bits 6 bis 7,
die in den Registern 125 und 126 für den Fall einer Ungerade-Gerade- Adressierung vorliegen können.
Unger. Bit 6-7 Ger. Bit 6-7 aktive Schreib- aktive Lese-Code Code leitungen leitungen
00 | 01 | W1-W2 | R1-R2 |
01 | 10 | W3-W4 | R3-R4 ■ |
10 | 11 | W5-W6 | R5-R6 |
11 | OO | W7-W0 | R7-R0 |
Für die Spalte "aktive Schreibleitungen" wird angenommen, daß
zwei Bytes adressiert werden. Bei einer Adressierung nur eines Bytes würde die entsprechende geradzahlige Schreibsteuerleitung
nicht aktiviert, weil das an das UND-Glied 145 gegebene Steuersignal GERADE auf dem abschaltenden binären Null-Pegel
stünde.
Die Fign. 6d, 6e und 6f zeigen Beispiele für Ungerade-Gerade-Zugriffe
zu zwei Bytes im Pufferspeicher 20 für den Fall einer
EN 976 028
809885/Q7U
Kanal - Puffer-Datenübertragung. Die Fing. 6a und 6c 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-Gerade-Zugriff zu einem Byte, wo die geradzahlige Schreibsteuerleitung
(die Leitung W2) abgeschaltet bleibt.
Wie in den Fign. 6a bis 6f weiter gezeigt ist, wird das erste vom E/A-Gerät 10 empfangene Datenbyte (Byte null) in die
Byteposition null des CIDR 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 Byte·-
position eins im CIDR 21 gesetzt usw. Mit anderen Worten, abwechselnd empfangene Datenbytes werden abwechselnd als
gerade und ungerade numerierte Datenbytes behanndelt, wobei das erste empfangene Datenbyte als gerades Byte behandelt
wird. Unter diesen Umständen werden die geraden Datenbytes immer in die geradzahlig numerierte Byteposition null im
CIDR 21 und die ungeraden Datenbytes immer in die ungeradzahlige Byteposition 1 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änjt,
können die Datenübertragungen vom CODR 22 an den E/A-Kanal Einzelbyteübertragungen oder Doppelbyteübertragungen oder eins
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.
en 976 028 809885/0744
In Fig. 14 ist im einzelnen die Konstruktion des in Fig. 5a
gezeigten CT-Pufferadreßzahlers 107 gezeigt. Wie schon im
Zusammenhang mit Fig. 14 erwähnt wurde, ist das CTBAR 124 der Fig. 13 eigentlich ein Teil des CT-Pufferadreßzahlers
Der Adreßzähler 107 enthält weiterhin eine Fortsehreibungsschaltung
zur Fortschreibung des CTBAR 124 um die Zahl der übertragenen Datenbytes bei jeder Datenübertragung zischen
dem Pufferspeicher 20 und dem E/A-Kanal 11. Diese Fortschreibungsschaltung
enthält ein Kanalübertragungslängenregister (CTLR) 146, das vom E/A-Kanal 11 einen zwei Bit großen Code
zur Angabe der Anzahl der während des nächsten Kanalzykus 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 C3 erscheint,
der auch den Adreßwert im CTBAR 124 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 (CTBAB) 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ächsten Kanalübertragungspufferadresse addiert.
Diese nächste CT-Pufferadresse wird dann durch den Taktimpuls CO für den jetzt laufenden Kanalzyklus in das CTBAR
gesetzt. Auf diese Weise wird das CTBAR 124 jedesmal bei einer Datenübertragung zwischen dem Pufferspeicher 12 und
dem E/A-Kanal 11 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ßsamme1leitung 149 an die CT-Zugriffssteuerung
in der in Fig. 13 gezeigten Art geliefert. Das CTBAR 124 kann auch auf einen Adreßwert gestellt werden, der von der
EN 976 028
809885/0744
IPU 14 über die Steuersammelleitung 46 geliefert wird. Dabei
handelt es sich um einen Vorbereitungsschritt für eine E/AOperation, um das CTBR 124 auf null zurückzustellen. Das
CTBAR 124 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.) Eine Einrichtung zur Bestimmung
der Übertragungslänge, mit der die Anzahl der während
des laufenden Kanalzyklus von oder zum Hauptspeicher 25 zu übertragenden Datenbytes bestimmt wird; (2.) einen Pufferadreßzähler
zur Fortschreibung des STBAR 110 so, daß es die AnfangsbytespeicherStellenadresse im Pufferspeicher 20 für den
laufenden Kanalzyklus enthält; (3.) einen Datenlängenzähler, mit dem festgestellt wird, wenn alle Datenbytes für eine bestimmte
Speicher/Puffer-Übertragungsoperation übertragen wurden und (4.) eine Vorrichtung zur Ermittlung des Schiebebetrages,
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
Speicherübertragungen für Hintergrundaufgaben ausführen, die sonst zusätzliche IPU-Zeit belegen würden.
Jede neue Lese- oder Schreiboperation mit E/A-Geräten wird eingeleitet entweder durch Abruf einer E/A-Startinstruktion
vom Hauptspeicher 25 in die IPU 14 oder durch Kommandoverkettung
von einem vorher ausgeführten Kanalkommandowort.
TSN y/b U2Ö
809885/0744
Die Fign. 7a bis 7e zeigen ein Beispiel für eine E/A-Lesesperation,
in dem 79 Datenbytes (Bytes 0 bis 78) von einem Destimmten E/A-Gerät zu lesen und in den Hauptspeicher 25
zu übertragen und dort zu speichern sind. Gemäß Darstellung Ln den Fign. 7a bis 7e, kann die ganze Lese- oder Schreiboperabion
an einem E/A-Gerät unterteilt werden in zwei oder mehr peicher/Puffer-übertragungsoperationen, wobei in jeder derartigen
Operation bis zu 64 Datenbytes zwischen dem Pufferpeicher 20 und dem Hauptspeicher 25 übertragen werden können.
flach Darstellung in Fig. 15 enthält die übertragungssteuerung
105 drei Hauptregister, nämlich das STBAR 110, das oben schon in Verbindung mit Fig. 9 erwähnt wurde, ein Hauptspeicher
Adreßregister (MSAR) 150 und ein Kanaldaten-Längenregister
(CHDLR) 151. Diese Register werden am Anfang über mehrere Bits umfassende Binärsignale eingeschaltet oder zurückgestellt, die
von der IPU 14 über die Steuersammelleitung 46 gegeben werden. Das STBAR 110 wird am Anfang auf lauter Nullen zurückgestellt,
und zwar zu Beginn einer neuen Lese- oder Schreiboperation, und wird danach während des Ablaufes dieser Operation durch
die IPU 14 nicht zurückgestellt. Andererseits empfangen das MSAR 150 und das CHDLR 151 von der IPU 14 zu Beginn einer
jeden Speicher/Puffer-Übertragungsoperation, die während einer E/A-Geräte Leseoperation oder Schreiboperation auftreten kann,
eine Anfangseinstellung.
Zu Beginn einer jeden Speicher/Puffer-Übertragungsoperation
wird das MSAR 150 von der IPU 14 so eingestellt oder geladen,
daß es die drei wertniedersten Adreßbits der kompletten Startbyteadresse für den Hauptspeicher 25 enthält. Diese drei
wertniedersten Adreßbits geben an, welches der acht Bytes in einem Speicherwort als Startbyte zu benutzen ist. Natürlich
bezeichnen sie nicht das infragekommende Speicherwort. Das MSAR 150 enthält also mit anderen Worten ausgedrückt, nicht
EN 976 028
809885/0744
die komplette Hauptspeicheradresse/ sondern nur deren drei wertniederste Bits. Um die Arbeitsweise des in Fig. 15 gezeigten
Gerätes zu erklären, werden diese drei wertniederen Adreßbits mit den Bits 5 bis 7 bezeichnet. Es ist jedoch nicht
die wirkliche Bitnummer, wie sie in der Hauptspeicheradreßsammelleitung 29 in Fig. 2 erscheint. Im Augenblick ist die
Hauptsache jedoch, daß sie die drei wertniedersten Adreßbits auf der Hauptspeicheradreßsammelleitung 29 sind.
Zu Beginn einer jeden Speicher/Pufferoperation für eine gegebene E/A-Geräte -Leseschreiboperation wird das CHDLR 151
am Anfang von der IPU 14 über die Steuersammelleitung 46 so
eingestellt oder geladen, daß es eine binäre Darstellung der Anzahl der während dieser Speicher/Pufferoperation zu übertragenden
Datenbytes enthält. In den meisten Fällen wird das CHDLR 151 höchstwahrscheinlich mit dem Wert 64 geladen.
Das ist die Anzahl der für eine volle Speicher/Puffer-Übertragungsoperation
im Gegensatz zu einer Teiloperation zu übertragenden Bytes.
Das Anfangsladen oder Rückstellen der Register 110, 150 und
151 wird zeitlich durch die von der IPU 14 gelieferten Taktimpulse T2 und T3 gesteuert. Beim Auftreten des nächsten
Kanaltaktimpulses C1 werden die Register 110, 150 und 151
auf die entsprechenden Werte der Pufferregister 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 übertragungs länge inFig.15
enthält eine Achter-Komplementschaltung 155, die die MSA-Bits empfängt und deren Achter-Komplement bildet. Die Bezie-
EN 976 °28 809885/0744
hung 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 | 0111 |
010 | 6 | 0110 |
011 | 5 | 0101 |
100 | 4 | 0100 |
101 | 3 | 0011 |
110 | 2 | 0010 |
111
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 di 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 Kanaltaktimpulse
C3 an seinem Eingang den Wert 000 hat. Dadurch geht der BL-Wert für alle Übertragungen nach der ersten
Datenübertragung auf den Wert 8. Mit anderen Worten, soweit der Grenzlängenwert betroffen ist, wird man durch die erste
Übertragung auf eine Acht-Byte-Grenze geführt und die nachfolgenden Übertragungen sind Vollübertragungen von 8 Bytes.
EN 976 028
809885/0744
Der Datenlängenwert DL im CHDLB-Register 154 ist gleich der
Anzahl der Datenbytes, die während einer gegebenen Speicher/ Pufferoperation zu übertragen bleiben. Solange die verbleibende
Datenlänge nicht kleiner ist als der Grenzlängenwert am
Ausgang der Achter-Komplementschaltung 155, wird die Grenzlänge
oder der BL-Wert über das UND-Glied 156 und ein ODER-Glied
157 auf die STL-Sammelleitung 158 geleitet und wird zum
Speicherübertragungslängenwert (STL). Die Beziehung zwischen den beiden Werten BL und DL wird durch die Vergleicher 159
und 160 überwacht. Solange die Datenlänge größer oder gleich
8 ist, gibt der Vergleicher-159 eine binäre Eins aus, die über das ODER-Glied 161 geführt wird und das UND-Glied 156
einschaltet. Gleichzeitig wird die Ausgabe des ODER-Gliedes 16' durch einen Inverter 162 invertiert und schaltet das DL-Tor
ab. Solange der aus den Bits 5 bis 7 bestehende Teil der Datenlänge größer oder genausogroß ist wie der BL-Wert, gibt er
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 Worten, sobald der DL-Wert der noch zu übertragenden Daten kleiner wird als der Grenz längenwert zum Erreichei
der nächsten 8-Byte-Grenze, wird der DL-Datenlängenwert als
Speicherübertragungslänge benutzt. Die zu übertragende Länge
kann somit niemals die Länge der noch zu übertragenden Daten überschreiten.
Der in Fig. 15 gezeigte ST-Pufferadreßzählermechanismus umfaßt
das STBAR 110, das STBAB 152 und einen binären Addierer
166. Der Addierer 166 schreibt die laufende Pufferadresse im STBAB 152 fort durch Addition der laufenden Speicherübertragungslänge
auf das STL-Leitung 158. Dadurch erscheint am
EN 976 028
809885/0744
Ausgang des Addierers 166 die Speicherubertragungspufferadresse
für den nächsten Kanalzyklus. Diese Adresse wird in das STBAR 110 durch den nächsten Taktimpuls CO gesetzt, so daß
sie dann die laufende Speicherubertragungspufferadresse wird.
Der Adreßwert im STBAR 110 wird an die ST-Pufferadreßsteuerung
106 über die 8 Bit große Sammelleitung 167 gegeben, die die Sammelleitung der Bits 0 bis 4 und die Sammelleitung der
Bits 5 bis 7 in Fig. 9 enthält. Das STBAR 110 kann auf 0 zurücklaufen, wenn es seine Höchstzahl erreicht hat. Dadurch
kann die ST-Adressierung von Daten zur Eingabe und Ausgabe im Pufferspeicher 20 sooft wie nötig auf die Zeile 0 des
Pufferspeichers 20 zurücklaufen, wenn die E/A-Operation eine
relativ große Datenlänge betrifft.
Der in Fig. 15 gezeigte Datenlängenzählerteil umfaßt das CHDLR 151, den CHDLB 154 und einen 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 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 Subtrahierers 168 und erzeugt ein Signal
ST ENDE, wenn der nächste DL-Wert null wird. Dieses Signal ST ENDl
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 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 Subtrahierer
subtrahiert die drei wertniederen Pufferadreßbits im STBAB von den drei wertniederen Hauptspeicheradreßbxts im MSAB 153.
EN 976 028
809865/Q7U
2829666
as am Ausgang des Subtrahierers 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 Hauptspeocher 25,
in den die Daten übertragen werden sollen. Dieses drei Bit große Schiebe-Betragssignal wird durch den ersten Taktimpuls Ci
für die laufende Speicher/Pufferoperation in das Schiebe-Betragsregister 171 gesetzt. Nach Darstellung in den Fign. 7a
bis 7e bleibt der Schiebebetrag während einer gegebenen Speicher/Pufferoperation
derselbe, und somit braucht das Schiebe-Betragsregister171
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 C2 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 wertniederen Hauptspeicheradrebits 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 Rechtsverschiebung von fünf Bytepositionen wird ebenfalls für die acht-Byte-Übertragung gebraucht, die in
Fig. 7b gezeigt ist.
en 976 028 80988S/Q7U
282966E
Der Schiebe-Betrag im Register 171 wird über die Sammelleitung
172 an die Schiebesteuerung 45 in Fig. 2 geleitet. DU 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
einr Speicher - Pufferübertragung verschiebt der Byteschieber
30 nach links. Die Schieberichtung wird der Schiebesteuerung 4!
von der Hauptsteuerung 15 abhängig davon angegeben, ob eine
E/A-Leseoperation oder eine E/A-Schreiboperation ausgeführt wird.
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 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, einen acht Bit große.
Binäraddierer 177 und eine Erhöhungs/Erniedrigungsschaltung
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 Nullen bestehenden Wert, der von der IPü 14 über die Steuersammelleitung
46 gegeben wird. Danach kann das Pufferspeicher-Zählregister
175 während jeder Hälfte eines jeden Kanalzyklus (Taktimpulse C1 und C3) entsprechend der Speicherübertragungslänge
(STL) und der Kanalübertragungslänge (CTL) fortgeschrieben
werden, die während der betreffenden Zyklushä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öhuns- oder Erniedrigungsfaktor) den Wert null. Die Zahl im Pufferspeicher-Zählregister 175
wird also nicht unbedingt während jedes Halbzyklusinter-
EN 976 028
809885/0744
282966S
valles verändert. Sie wird nur verändert,- wenn während eines
solchen 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ählregister 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ählregister 125 heruntergesetzt durch Addieren
des vom STL-Komplementierer 179 gelieferten
Wertes. Wenn andererseits die ausgelesenen Daten an den E/AKanal 11 übertragen werden (CTBR =1), wird die Zahl im
Register 175 heruntergesetzt durch Addieren des vom CTL-Komplementierer 180 gelieferten Wertes. Auf
diese Weise zählt das Pufferspeicher-Zählregister 175 die Anzahl der nichtgelesenen Datenbytes im Pufferspeicher 20.
Die Datenpuffer zählsteuerung 109 umfasst auch ein Fangwertregister
das von der IPU 14 über die Steuersammelleitung 46 mit Zahlen werten geladen wird. Dieses Register 181 wird während der
Ausführung der Vorbereitungsschritte unmittelbar nach dem Abruf einer neuen START I/O-Instruktion oder einer Befehlskette von einem vorhergehenden CCW am Anfang geladen. Danach
wird es als Teil einer Endfolge für jede Speicher/Pufferübertragungsoperation
neu geladen, um es so für die nächste Speicher/Pufferübertragungsoperation vorzubereiten.
Die Datenzählpuffersteuerung 109 enthält weiter eine Vergleichsschaltung
182, die mit dem Pufferspeicher-Zählpuffer 176
EN 976 028
809885/0744
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 Datelä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
Anforderungssignal wird über einen Assembler 183 (die IOR-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 Kana
adresse an die Hauptsteuerung 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 ein~ zuleiten, sobald die Anzahl der ungelesenen Datenbytes 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
EN 976 028
809885/0744
282966a
vorgegebene Wert ist beispielsweise 176. Das vom Vergleicher 1
erzeugte Anforderungssignal wird auch über einen Assembler (IOW ist auf dem aktiven Pegel) und über die Signalleitung
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 Fig. 2 gezeigten Datenverarbeitungssystems und insbesondere des Kanaldatenpuffers, der in den
Fign. 5a und 5b gezeigt ist, wird jetzt für den Fall der in den Fign. 6a bis 6f und in den Fign. 7a bis 7e gezeigten
repräsentativenE/A-Leseoperation beschrieben. In diesem Beispiel sollen insgesamt 79 Datenbytes (Bytes 0 bis 78) vom E/AGerä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-ΙΟ-Instruktion vom Hauptspeiher
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-Mikroprogrammleseroutine- 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 11.0 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-5renze im Hauptspeicher
EN 976 028
809885/0744
282966E
zu erreichen. In dem in den Fign. 7a bis 7e gezeigten Beispie müssen dazu in einer Speicher/Puffer-Teilübertragungsoperation
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 IPü 14'
als weiteren Vorbereitungsschritt die Zahl elf in das Fangwer register 181 (Fig. 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 11 mit der Datenübertragung an den Pufferspeicher 20 in Einheiten
von jeweils T oder 2 Bytes in der im Zusammenhang mit den Fign. 6a bis 6f beschriebenen Art. Während jedes Kanalzyklus
werden also ein oder zwei Bytes in das CIDR 21 gesetzt. In jedem Fall wird der Inhalt des CTBAR 124 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 die 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.
EN 976 028
809B85/07U
282966S
Wenn' die Datenpufferzählsteuerung 1O9 das ST-Anforderungssignal
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 Fign. 7a 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 sendet die IPÜ 14 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 Fign. 7a und 7b dargestellten Teilübertragung zu
übertragenden Daten geladen. In diesem Beispiel wird das CHDLR 151 mit dem Wert elf geladen. Zu diesem Zeitpunkt wird in der
Hauptsteuerung 15 das richtige Speichermikrowort 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 übertragungssteuerung 105
über den in Fig. 15 gezeigten Mechanismus gesteuert. Im einzelnen stellt die Schiebe-Betragsbestimmungseinrichtung fest,
daß eine Verschiebung von fünf Bytes vom Byteschieber 30 vorgenommen werden sollte und die Schiebesteuerung 45 erhält
entsprechende Anweisung. Gleichzeitig bestimmt der Mechanismus zur Festlegung der Übertragungslänge 155 bis 163, daß die
Speicherübertragungslänge für den ersten Kanalzyklus den Wert drei hat (Fig. 7a). Für den ersten Zyklus führt der aus lauter
Nullen bestehende Wert im STBAR 110 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 Datenbytes im
en 976 028 809885/0744
STDR 23 werden dann im Umlaufbetrieb durch den Byteschieber
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 Steuerwirkung der Byte-Wahleinheit
28 (Fig. 2) nur die Bytes in den drei äußersten rechten Bytepositionen im MSDR 27 in den Hauptspeicher geschrieben.
Durch dieses Beschreiben des Hauptspeichers 25 gelangen die eingeschriebenen Daten an die nächste acht-Byte-Grenze
im Hauptspeicher 25.
Zu Beginn des nächsten Kanalzyklus (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 STBAR110 wird um drei Zahlen erhöht und der
Datenlängenwert im CHDLR 151 um drei Zahlen heruntergesetzt. Zu diesem Zeitpunkt wurde der Hauptspeicheradreßwert im MSAR
150 auf null gesetzt. Die nächste Gruppe von Datenbytes
wird dann aus dem Pufferspeicher 20 ausgelesen und in den Hauptspeicher 25 genauso wie für die erste Gruppe übertragen,
jedoch ist der STL-Wert für die zweite Gruppe acht. In diesem zv/eiten Zyklus (Fig. 7b) führt der Adreßwert von drei
im STBAR 110 außerdem zu einer zweizeiligen Adressierung des
Pufferspeichers 20" in der in Fig. 7b gezeigten Art. Zu diesem Zeitpunkt hat die nächste Datenlänge am Ausgang des in
Fig..15 gezeigten Subtrahierers 168 den Wert null erreicht. Dadurch gibt der Null-Detektor 169 das Signal ST ENDE an den E/i
Kanal 11, der wiederum der Hauptsteuerung 15 mitteilt, daß
die Speicher-Teilübertragungsoperation beendet ist. Damit wird das Speichermikrowort beendet und die Mikroprogrammroutine
für die Puffer - Speicherübertragung führt einen Endlauf aus und gibt die Steuerung dann an die IPU 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/Speicher-Übertragungsmikroroutine ver-
976 028 8098B5/07U
schiedene Verwaltungsaufgaben für die E/A-Operation durch.
So wird z.B. das CCW-Bytezahlenfeld im Lokalspeicer 34 der
IPÜ (Fig. 2) um die Anzahl von Datenbytes, in diesem Fall 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 Über
tragungsoperation ü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
(Fign. 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 Mikroroutine für die Puffer - Speicher-Teilübertragung beendet ist, bleibt der Puffer - Speicher-Übertragungsmechanismus
inaktiv, bis das nächste ST-Anforderungs signal von der Datenpufferzählsteuerung 109 gegeben wird. Dieses
Ariforderungssignal leitet die volle Übertragungsoperation
von 64 Bytes ein, deren erster und letzter Zyklus in den Fign. 7c und 7d gezeigt it. Diese volle Übertragungsoperation
unterscheidet sich von der oben beschriebenen Teilübertragungsoperation nur dadurch, daß das in Fig. 15 gezeigte
CHDLR 151 am Anfang mit dem Wert 64 und das drei Bit große, ebenfalls in Fig. 15 gezeigte MSAR 150 mit dem Wert
000 geladen wird, weil der Hauptspeicher 25 jetzt auf einer acht-Byte-Grenze steht. Wegen der in das CHDLR 151 geladener
größeren Zahl werden Daten in den Hauptspeicher 25 in acht Kanalzyklen übertragen. In diesem Fall werden also
Daten vom Pufferspeicher 20 in den Hauptspeicher 25 in acht aufeinanderfolgenden Übertragungen von jeweils acht
Bytes übertragen. Dadurch wird der Hauptspeicher 25 auf die zweite 64-Byte-Grenze gebracht und das vom Null-Detektor
169 erzeugte SignalST ENDE lässt die Mikroprogrammroutine
für diese Übertragungsoperation vom Puffer zum Hauptspeiche]
EN9/6Q2a 809885/0744
282966E
eine Endfolge durchlaufen und dann die Steuerung an die IPU
für andere Aufgaben zurückgeben. Der Puffer - Speicherübertragungsmechanismus bleibt dann inaktiv, bis ein weiteres
ST-Anforderungssignal von der Datenpufferzählsteuerung 109 abgegeben
wird.
Im vorliegenden Beispiel leitet das nächste ST-Anforderungssignal
die in Fig. 7e gezeigte Puffer - Speicher-Teilübertragung ein. In diesem Fall werden nur vier Bytes übertragen
und es ist nur ein Zyklus erforderlich.
In dem in den Fign. 7a bis 7e dargestellten Beispiel einer
E/A-Leseoperation ist eine relativ kleine Gesamtdatenlänge zu übertragen (der Anfangswert der CCW-Bytezahl) und
somit ist nur eine volle übertragungsoperation von 64 Bytes erforderlich. Eine beträchtliche Anzahl von Eingabe/Ausgabeoperationen
betrifft jedoch eine Gesamtdatenlänge von mehreren tausend Bytes. In so einem Fall finden für eine
E/A-Leseoperation oder E/A-Schreiboperation viele Vollübertragungen von 64 Bytes statt. Demzufolge ergibt sich
eine beträchtliche Zeitersparnis bei der Ausführung der zugehörigen E/A-Verwaltungsoperationen. Diese Operationen
werden nur einmal für jede Vollübertragung von 64 Bytes zwischen Speicher und Puffer ausgeführt.
EN 976 028
809885/0744
Leerseite
Claims (1)
- EN 9-76-028282966dPATENTANSPRÜCHE(\y Kanaldatenpufferspeicher zur Zwischenspeicherung von zwischen einer Ein-/Ausgabe-Kanaleinheit und einem Hauptspeicher übertragenen Daten, der in Spalten und Zeilen angeordnete Byte-Speicherstellen aufweist, wobei jede Spalte eine Anordnung von ! mehreren, jede zu einer Zeile gehörenden Speicherstellen mit jej einem Byte Kapaziät ist und eine eigene Adressiereinrichtungzur zeilenmäßigen Adressierung jeder einzelnen Speicherzelle aufweist, mit Pufferspeicher-Adressierschaltungen zur Abgabej von Adressen für die einzelnen Spalten des Pufferspeichers,; dadurch gekennzeichnet,j daß Modifizierungsschaltungen (111, 127) zur Modifizierung einer! gegebenen Adresse für mindestens eine der Adressiereinrichtungen,wenn zu übertragende Daten Speicherstellen in zwei verschiedenen 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 und wobei jede Spalte zu je einer Zeile gehörende Byte-Speicherstellen umfaßt, daß jede der Spalten des Pufferspeichers mit je einem, für die Parallelübertragung von einem Datenbyte ausgelegten Datenpfad verbunden ist und daß die Pufferadressierschaltungen (106, 108, 110, 124) an jede der Adressiereinrichtungen der Spalten des8744OR|0IN.!A! INSPECTEDEN 9-76-028Pufferspeichers (20) eine r-Bit-Adresse abgeben, wobei r der Zweierlogarithmus von R ist, und wobei die Modifizierschaltungen (111, 127) die gegebene Adresse für mindestens eine Spalte umeine Einheit erhöhen.j 2. Kanaldatenpufferspeicher nach Anspruch 1, dadurch gekennzeichnet,ι daß in den Übertragungseinrichtungen zwischen dem Pufferspei-eher (20) und dem Hauptspeicher (13) eine rückgekoppeltej Schiebeeinrichtung (30) angeordnet ist, die eine Kapazität vonM Datenbytes aufweist.3. Kanalpufferspeicher nach den Ansprüchen 1 und 2, dadurch gekennzeichnet, daß die Pufferadressierungsschaltungen aus einem Speicherübertragungs-Pufferadreßregister (110) zur Aufnahme einer binären Bytestellenadresse für den Pufferspeicher (20) einer Modifizierschaltung (111), 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 Adreßbits abgibt, dessen Zahlenwert um eine Einheit höher ist als der des unmodifizierten Satzes, einef-Auswahlschaltung (112 bis 118), um wahlweise an jede der Adressiereinrichtungen derEN 9-76-028282968^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 M ist, besteht.4-, Kanalpufferspeicher 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 Übertragungseinrichtungen zwischen Pufferspeicher (20) und dem Hauptspeicher (13) ist, mit einer Schiebebetrags-Bestimmungsschaltung (170, 171) verbunden ist, die aus den niederwertigen Adreßbits einer Pufferadresse (STBA) und denen einer Hauptspeicheradresse (MSA) ein Schiebebetrags-Steuersignal erzeugt und an die Schiebeeinrichtung (30) zur Steuerung weiterleitet.5. Kanaldatenpufferspeicher nach den Ansprüchen 1 bis 4, dadurch gekennzeichnet, daß die Übertragungseinrichtungen zur Parallelübertragung von zwei Datenbytes zwischen Pufferspeicher (20) und einer Ein-/Ausgabekanaleinheit (H) einen ersten (0) und809885/0744EN 9-76-0282829666- 4-ernen 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 Gruppen reg ister (125), die zur Aufnahme von B-I höherwertigen Adreßbits aus dem Kanalübertragungs-Pufferadreßregister (124), eine Erhöhungsschaltung (127), die an die niederwertigste Bitposition (Bit 7) des Pufferadreßregisters (124) angeschlossen ist und den Zahlenwert der B-1 höherwertigen Adreßbits aus dem Pufferregister für das erste Gruppenregister (126) um809885/0744EN 9-76-0282829666!eine Einheit erhöht, wenn das niederwertige Adreßbit den entsprechenden Binärwert aufweist, erste und zweite Verbindungseinrichtungen (100, 129 bzw. 130) zur Übertragung des Inhalts des ersten Gruppenregisters (126) und des zweiten Cruppenregisters (125) an die Adressierungseinrichtungen der geradzahligen bzw. ungeradzahligen Spalten des Pufferspeichers die Pufferadressierungseinrichtungen bilden.Kanaldatenpufferspeicher nach Anspruch 7, dadurch gekennzeichnet, daß die Lese/Schreib-Zugriffssteuereinrichtung aus einer ersten Decodierschaltung (138), die mit dem ersten Cruppenregister (126) verbunden ist und einer zweiten Decodierschaltung (131), die mit dem zweiten Gruppenregister (125) verbunden ist, besteht.809885/0744
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 true DE2829668A1 (de) | 1979-02-01 |
DE2829668B2 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 (47)
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 |
WO1983003487A1 (en) * | 1982-03-31 | 1983-10-13 | Univ Leland Stanford Junior | Page printing system |
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 |
JPS59138702U (ja) * | 1983-03-09 | 1984-09-17 | 野上 真良 | 砥石ドレッサ |
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 |
US5729708A (en) * | 1989-12-04 | 1998-03-17 | Canon Kabushiki Kaisha | Portable data buffer apparatus with manually controlled reception/transmission |
US5687396A (en) * | 1989-12-04 | 1997-11-11 | Canon Kabushiki Kaisha | Data buffer apparatus with interrupted transmission/reception |
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 |
EP0580109B1 (de) * | 1992-07-23 | 1997-12-10 | Rockwell International Corporation | 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 | データ転送装置 |
US5471598A (en) * | 1993-10-18 | 1995-11-28 | Cyrix Corporation | Data dependency detection and handling in a microprocessor with write buffer |
US5584009A (en) * | 1993-10-18 | 1996-12-10 | Cyrix Corporation | System and method of retiring store data from a 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 |
US5740398A (en) * | 1993-10-18 | 1998-04-14 | Cyrix Corporation | Program order sequencing of data 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 |
---|---|
JPS5423439A (en) | 1979-02-22 |
BE868423A (fr) | 1978-10-16 |
FR2399064A1 (fr) | 1979-02-23 |
IT7825101A0 (it) | 1978-06-29 |
ES471718A1 (es) | 1979-02-01 |
AU3555678A (en) | 1979-11-01 |
DE2829668C3 (de) | 1980-08-07 |
BR7804787A (pt) | 1979-04-17 |
CA1102006A (en) | 1981-05-26 |
US4131940A (en) | 1978-12-26 |
SE431038B (sv) | 1983-12-27 |
FR2399064B1 (de) | 1980-06-13 |
GB1573895A (en) | 1980-08-28 |
CH634939A5 (de) | 1983-02-28 |
DE2829668B2 (de) | 1979-11-15 |
JPS5732803B2 (de) | 1982-07-13 |
IT1111190B (it) | 1986-01-13 |
AU517198B2 (en) | 1981-07-16 |
SE7807964L (sv) | 1979-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2829668A1 (de) | Kanaldatenpufferspeicher | |
DE2819571C2 (de) | ||
DE2350884C2 (de) | Adreßumsetzungseinheit | |
DE2318069C2 (de) | Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix | |
DE2912287C3 (de) | Datenverarbeitungsanlage | |
DE1956604A1 (de) | Datenverarbeitungsanlage mit einem Speichersystem | |
DE2719247B2 (de) | Datenverarbeitungssystem | |
DE2130299A1 (de) | Eingabe/Ausgabe-Kanal fuer Datenverarbeitungsanlagen | |
DE2355993A1 (de) | Datenverarbeitungseinheit einschliesslich mikroprogramm-steuereinrichtung | |
DE2230103A1 (de) | Adressiereinrichtung fuer einen speicher | |
DE1931966B2 (de) | Datenverarbeitungsanlage mit Assoziativspeichern | |
DE2717658A1 (de) | Anordnung zur ansteuerung eines mikroprogrammspeichers | |
DE2339636A1 (de) | Programmsteuereinrichtung | |
DE1929010B2 (de) | Modular aufgebaute datenverarbeitungsanlage | |
DE3114921C2 (de) | Mikroprogramm-Speicheranordnung | |
DE68927202T2 (de) | Paralleler Prozessor | |
DE3043653A1 (de) | Datenverarbeitungsanlage | |
DE2353635A1 (de) | Datenverarbeitungssystem und verfahren zur datenverarbeitung | |
DE2556617A1 (de) | Datenverarbeiter zum rotierbaren verschieben von bits eines datenwortes | |
DE2454613C2 (de) | Kanaleinheit für die Steuerung der Datenübertragung auf einer Vielzahl von Kanälen zwischen den peripheren Einrichtungen und dem Hauptspeicher einer digitalen Datenverarbeitungsanlage | |
DE1190706B (de) | In zwei abwechselnden Zyklen arbeitende programmgesteuerte elektronische digitale Rechenmaschine | |
DE3650642T2 (de) | Speichermittel mit Mehrwortauslesen und Schreiben | |
DE2926351A1 (de) | Look-ahead-speicheradressen- steuereinrichtung | |
DE2739525C2 (de) | Rechner | |
DE2245284A1 (de) | Datenverarbeitungsanlage |
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 |