DE3587910T2 - Peripheres Interface-System. - Google Patents

Peripheres Interface-System.

Info

Publication number
DE3587910T2
DE3587910T2 DE3587910T DE3587910T DE3587910T2 DE 3587910 T2 DE3587910 T2 DE 3587910T2 DE 3587910 T DE3587910 T DE 3587910T DE 3587910 T DE3587910 T DE 3587910T DE 3587910 T2 DE3587910 T2 DE 3587910T2
Authority
DE
Germany
Prior art keywords
data
multiplexer
channel
buffer
control
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.)
Expired - Fee Related
Application number
DE3587910T
Other languages
English (en)
Other versions
DE3587910D1 (de
Inventor
Robert James Halford
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cray Research LLC
Original Assignee
Cray Research LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cray Research LLC filed Critical Cray Research LLC
Publication of DE3587910D1 publication Critical patent/DE3587910D1/de
Application granted granted Critical
Publication of DE3587910T2 publication Critical patent/DE3587910T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/122Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware performs an I/O function other than control of data transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Bus Control (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)

Description

    Technisches Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft allgemein das Gebiet der Eingabe- Ausgabe-Systeme für Computer oder ähnliche Geräte, und insbesondere ein peripheres Interface-System in einer Eingabe-Ausgabe-Sektion eines Datenverarbeitungssytems
  • Hintergrund der Erfindung
  • Moderne Mainframe-Datenverarbeitungssysteme beinhalten zentrale Verarbeitungseinheiten (CPU), einen von der CPU direkt adressierbaren Zentralspeicher, Eingabe-Ausgabe-(E/A)-Speichergeräte zum Eingeben von Daten in das System und zum Aufzeichnen von Daten aus dem System, und E/A-Verarbeitungssysteme, welche den Datenfluß zwischen den E/A-Geräten und dem Zentralspeicher steuern und puffern. E/A-Verarbeitungssysteme entlasten die CPU von einer direkten Steuerung der E/A-Geräte und erlauben gleichzeitig mit E/A-Operationen die Fortsetzung der Datenverarbeitung
  • Um der E/A-Verarbeitung zu ermöglichen, unabhängig von der Datenverarbeitung zu arbeiten, ist es notwendig, daß der Zentralspeicher direkt durch das E/A-Verarbeitungssystem adressierbar ist. Typischerweise wird eine direkte Adressierung durch das E/A-Verarbeitungssystem entweder durch Teilen eines Speicherdirektzugriffs-(DMA)-Anschlusses mit der CPU oder durch Vorsehen zweier oder mehr DMA-Anschlüsse und Reservieren von mindestens einem für die ausschließliche Nutzung durch das E/A-System verwirklicht. In jedem Fall sind jedoch E/A-Datenübertragungen zu und von dem Zentralspeicher typischerweise begrenzt auf lediglich einige und oft nur einen Zentralspeicherzugriffspfad. Der Pfad oder die Pfade müssen effizient genutzt werden, sonst wird die Geschwindigkeit der Datenverarbeitung beeinträchtigt, insbesondere in großen oder schnellen Datenverarbeitungssystemen, welche schnelle Zugriffe auf große Blöcke von Daten erfordern, die über eine große Bibliothek verstreut sind, welche auf eine Mehrzahl von peripheren Speichergeräten verteilt ist. Deshalb muß ein E/A-Verarbeitungssystem, um effektiv zu sein, nicht nur in der Lage sein, einen schnellen Zugriff auf jedes einer beträchtlichen Anzahl von Peripheriegeräten und jede von vielen Aufzeichnungen in einem bestimmten Gerät zu verwirklichen, sondern es muß auch in der Lage sein, die jeder Aufzeichnung zugeordneten Daten schnell und effizient zu und von dem Zentralspeicher zu übertragen.
  • Die oben beschriebenen Anforderungen an effektive E/A-Verarbeitungssysteme diktieren bestimmte Aspekte von deren Design. Der Zentralspeicher- DMA-Anschluß oder die -Anschlüsse müssen z. B. gemultiplext sein, um einen Datenkanal zu und von jedem Peripheriegerät zur Verfügung zu stellen. Dies kann durch mindestens zwei verschiedene Techniken oder eine Kombination dieser beiden verwirklicht werden, wobei die eine eine Vielzahl unabhängiger Datenpfade, von denen jeder ein Peripheriegerät versorgt, und Hardware zur Verfügung stellt, die diese Pfade an dem DMA-Anschluß multiplext, oder die andere einen gemeinsam genutzten Datenpfad vorsieht, der zwei oder mehr Peripheriegeräte auf einer Zeitmultiplex-Basis bedient.
  • E/A-Verarbeitungssysteme müssen außerdem mindestens genug Intelligenz beinhalten, um bestimmte E/A-Aufgaben ohne Rückgriff auf die Mainframe- CPU auszuführen. Wieviel Intelligenz und wo die Intelligenz in den E/A- System implementiert ist, ist eine Angelegenheit großer Bedeutung für Gesamtkomplexität, Kosten und Flexibilität des E/A-Verarbeitungssystems. Einige bekannte Systeme konzentrieren E/A-Intelligenz an einer Stelle und multiplexen oder verteilen Steuerinformationen durch einen oder mehrere Steuerkanäle an zwei oder mehr relativ einfache Peripheriegeräte; in diesem Fall können die Peripheriegeräte, wenn überhaupt, einige Operationen unabhängig von der gemultiplexten Intelligenzquelle ausführen. Ein anderer Ansatz des Standes der Technik war, jedes Peripheriegerät mit einer relativ hohen Intelligenz zu versehen, so daß die Geräte, wenn sie einmal eingestellt sind, nur wenig oder gar keine Überwachung beim Ausführen einer E/A-Funktion benötigen. Der erste Ansatz hat den Vorteil der Zentralisierung der teueren und hochentwickelten Intelligenz-Hardware, was die Gesamtsystemkosten reduziert, aber die Antwortzeit von damit gesteuerten Peripheriegeräten begrenzt und kann in seiner Implementation kompliziert sein. Die zweite Annäherung ist teurer in der Implementation aber einfacher im Design (da der Multiplex-Bedarf verringert oder beseitigt ist), kann aber zu redundanten Resourcen in dem E/A-System führen.
  • Ein anderer, den meisten E/A-Verarbeitungssystemen gemeinsamer Aspekt ist die Datenpufferung zwischen dem Zentralspeicher-DMA-Anschluß und den Peripheriegeräten. Die Pufferung hat mehrere Zwecke, unter anderem die Synchronisation der Datenübertragungen zwischen den relativ langsamen Peripheriegeräten und dem relativ schnellen Zentralspeicher, und das Zusammenfügen oder Trennen von Datenworten in die unterschiedlichen Breiten der Datenpfade und der differierenden Organisation (d. h. 16 Bits, 32 Bits, etc.) des Zentralspeichers und der Peripheriegeräte, soweit erforderlich. Wie leicht erkennbar ist, gibt es eine Vielzahl von Gestaltungsmöglichkeiten für E/A-Verarbeitungssysteme, die unterschiedliche Stufen, Typen und Kombinationen von Multiplexen, Intelligenz und Pufferung verwenden. Die letztendliche Aufgabe ist jedoch in jedem Fall die Bereitstellung eines flexiblen, effizienten, verwaltbaren, zuverlässigen und preiswerten E/A-Verarbeitungssystem, das einen relativ hohen E/A-Durchsatz verwirklicht. Drei der vielen Möglichkeiten können US-Patent Nr. 3,432,813 - APPARATUS FOR CONTROL OF A PLURALITY OF PERIPHERAL DEVICES - E. J. Annunziata et al, US-Patent Nr. 3,725,864
  • - INPUT/OUTPUT CONTROL - Clark et al, und der europäischen Patentanmeldung EP-A-0 125 561 - DATA PROCESSING SYSTEM HAVING MULTI-BUFFER ADAP- TER BETWEEN A SYSTEM CHANNEL AND AN INPUT/OUTPUT BUS - Burns et al, entnommen werden.
  • Annunziata et al offenbaren ein E/A-Verarbeitungssystem, in welchem grundsätzlich ein Haupt-Multiplexkanal zwischen der CPU (einschließlich dem Zentralspeicher) und einer Mehrzahl von Steuereinheiten eingefügt ist, von denen jede in der Lage ist, mehrere E/A-Geräte wie z. B. Bandgeräte oder Disk-Laufwerke zu steuern. Der Hauptkanal stellt eine Vielzahl von Unterkanälen, von denen jeder für einen Anschluß an einem Paar Steuereinheiten vorgesehen ist und für die Unterkanäle gemeinsame Datenregister und Steuerungen beinhaltet, und einen lokalen Speicher zum Ablegen der auszuführenden E/A-Befehle oder Einheitensteuerworte zur Verfügung. Vier Selektor-Unterkanäle sind vorgesehen, um E/A-Geräte mit relativ hoher Geschwindigkeit wie "hyperspeed"-Bandeinheiten anzuschließen und ein Multiplexer-Unterkanal ist vorgesehen, um relativ langsame Geräte, wie z. B. Kartenleser, anzuschließen. Der Betrieb von einem der Selektor-Unterkanäle beginnt mit der Ausführung eines E/A- Start-Befehls durch die CPU, welche die Hauptkanalsteuerung veranlaßt, die zugeordneten Steuerworte von dem Zentralspeicher zu holen und diese im Lokalspeicher abzulegen. Der spezielle Unterkanal, der das E/A-Gerät anschließt, für das der E/A-Befehl vorgesehen ist, wird dann aktiviert, um sich über die korrespondierende Steuereinheit mit dem Gerät zusammenzukoppeln. Danach werden die Befehle von dem lokalen Speicher zu der Steuereinheit übertragen, welche dann das ausgewählte E/A-Gerät entsprechend steuert. Bei Lesezugriffen werden 8-Bit-Bytes von dem E/A- Gerät geholt und in dem Unterkanal zur Bildung eines 64-Bit-Wortes zusammengefügt. Sobald ein Wort zusammengefügt ist, wird es sofort in ein zweites Register übertragen und der Unterkanal fordert einen Zugriff auf den Zentralspeicher zum Ablegen darin an. Ein ähnlicher, aber umgekehrter Ablauf wird für Schreibzugriffe verwendet. Es ist anzumerken, daß, sobald ein Selektor-Unterkanal mit einem E/A-Gerät verbunden ist, dies so bleibt, bis die gesamte E/A-Operation abgeschlossen ist. Deshalb können nicht mehr als 4 E/A-Geräte zu einer bestimmten Zeit über die Selektor-Unterkanäle arbeiten und nur auf eines der Mehrzahl von Geräten, die über jeden Selektor-Unterkanal angeschlossen sind, kann zur Zeit zugegriffen werden. Beide Begrenzungen sind nicht erwünscht, und andere z. B. äußerst wünschenswerte wie Burst-Übertragungen von Daten zu und von dem Zentralspeicher können nicht verwirklicht werden.
  • Annunziatas Multiplexer-Unterkanal kann jedoch alle daran angeschlossenen Peripheriegeräte simultan betreiben. An den Multiplexer-Unterkanal angeschlossene Peripheriegeräte werden in der gleichen Weise in Betrieb gesetzt, wie die an die Selektor-Unterkanäle angeschlossenen. Sobald jedoch eine E/A-Übertragung ausgelöst ist, werden das Einheiten-Steuerwort oder die Steuerworte von dem Kanal zurück zu dem Lokalspeicher übertragen, wodurch der Multiplexer-Unterkanal frei ist, um andere Geräte zu betreiben, bis das gesteuerte Gerät Unterstützung benötigt, d. h., fertig ist, um ein Datenbyte entgegenzunehmen oder zu erzeugen. Jetzt werden das Einheiten-Steuerwort oder die Steuerworte wiederum zu dem Unterkanal übertragen und das Byte wird entweder entgegengenommen oder erzeugt. Zwischen den Unterstützungsperioden werden die Teile des 64 Bit-Wortes, das, von dem Peripheriegerät kommend, zusammengefügt oder zur Übertragung an das Gerät zerlegt wird, in dem Lokalspeicher abgelegt. Während jedoch das Multiplexer-Unterkanal-Design für relativ langsame Geräte funktionsbereit ist, ist es erkennbar ungeeignet für schnellere Geräte wie z. B. Disk-Laufwerke.
  • Clark et al offenbaren ein E/A-Verarbeitungssystem, das dem von Annunziata et al ähnlich ist, aber ein weiterentwickeltes Design aufweist. Z.B. verwenden Clark et al Koppelpunktschaltungen zwischen einer Vielzahl von Steuereinheiten (von denen jede verschiedenen Kanälen zugeordnet ist) und einer Vielzahl von E/A-Geräten, so daß auf jedes einzelne der E/A-Geräte über jeden der Kanäle zugegriffen werden kann. Dies verbessert die E/A-Verarbeitungsflexibilität gegenüber dem System von Annunziata et al. Clark et al offenbaren ein ähnliches System des Geräte- Steuereinheiten-Anschlusses, bei dem ein einzelnes E/A-Gerät selektiv an mindestens zwei verschiedene Steuereinheiten anschließbar ist, was ebenfalls eine Verbesserung gegenüber dem von Annunziata et al offenbarten System ist. Neben der verbesserten Flexibilität des Gerätezugriffes durch die verfügbaren Kanäle offenbaren Clark et al ebenfalls ein verbessertes System der Multiplexkanal-Steuermöglichkeiten im Zeitbereich. Dieses System ähnelt also der bei Annunziata et al verwendeten Technik, um eine Vielzahl von langsamen Peripheriegeräten durch einen einzelnen Kanal zu betreiben. Clark et al jedoch erweitern diese Technik, so daß zwei oder mehr Kanäle gemultiplext werden können, um eine Vielzahl von Geräten zu bedienen, wobei z. B. ein erster Kanal verwendet werden kann, um eine E/A-Operation in einem ersten Peripheriegerät auszulösen, und dann zur Verwendung bei der Unterstützung anderer Peripheriegeräte während der Latenzzeit des ersten Gerätes getrennt sein kann und ein zweiter Kanal zur Steuerung des ersten Peripheriegerätes verwendet werden kann, wenn es wiederum Unterstützung anfordert.
  • Somit bietet das System von Clark et al eine deutlich größere Flexibilität beim Zugreifen auf Peripheriegeräte durch Bereithalten mehrerer Kanalzugriffspfade zu jedem Gerät und zur besseren Auslastung der verfügbaren Kanalresourcen. Das System ist jedoch erheblich komplizierter als das von Annunziata et al vorgeschlagene, sowohl hinsichtlich der Verbindung der vielen Kanäle, Steuereinheiten und Peripheriegeräte als auch hinsichtlich der Menge und Entwicklungsstand der implementierten Steuerhardware. Außerdem schenken Clark et al der Optimierung der Datenhandhabung sowohl hinsichtlich der Maximierung verfügbaren E/A- Durchsatzpotentials als auch hinsichtlich der Sicherstellung einer kurzen Maximal-Reaktionszeit zum Holen oder Ablegen von Daten in einem gegebenen E/A-Peripheriegerät nur geringe Aufmerksamkeit.
  • Burns et al offenbaren ein Datenverarbeitungssystem mit einem Multi- Puffer-Adaptor (MBA), um Daten zwischen einem System-Kanalbus und einem Geräteebenen-Bus zu übertragen. Der MBA kommuniziert mit einem DMA-Anschluß und stellt eine Mehrzahl von Daten- und Steuerinformations-Kanälen zum Datenfluß zwischen dem DMA-Anschluß und einer korrespondierenden Anzahl von Peripheriegeräten zur Verfügung. Der MBA beinhaltet zwei Datenpuffer, welche eine Mehrzahl von Registern zum Halten von Datenpaketen beinhalten. Der MBA beinhaltet weiterhin einen Multiplexer zum Kommunizieren mit dem DMA-Anschluß und den Peripheriegeräten zum Multiplexen der Datenpakete in die und aus den zwei Datenpuffern von oder zu entweder dem DMA-Anschluß oder den Peripheriegeräten. Die MBA-Puffer werden automatisch zwischen den E/A-Geräten, die momentan Datenübertragung anfordern, umgeschaltet, und sie werden automatisch auf den Kanal umgeschaltet, um Datenketten zu übertragen.
  • Die vorliegende Erfindung gibt, im Gegensatz zu diesen drei Referenzen, ein schalterloses, peripheres Interface-System an, welches die Hardwareauslastung maximiert und garantiert, daß auf alle darüber angeschlossenen Peripheriegeräte in im wesentlichen der gleichen Zeit zugegriffen werden kann, so daß kein Peripheriegerät die verfügbaren E/A-Kanäle monopolisieren kann. Weiterhin ist eine solche E/A-Kapazität vorgesehen, daß alle Peripheriegeräte gleichzeitig mit im wesentlichen maximaler Kapazität unter typischen Betriebsbedingungen übertragen können, so daß der maximale Durchsatz primär durch die Anzahl der implementierten Peripheriegeräte begrenzt wird, und nicht durch verfügbare E/A-Kanalresourcen. Zusätzlich werden die Pufferungsanforderungen durch drei oder mehr Stufen von synchronisierten Puffern, die zwischen dem peripheren Speichergerät und der Mainframe-CPU angeordnet sind, und durch das paarweise Anordnen von Puffern in bestimmten Komponenten des Systems auf einem Minimum gehalten. Darüber hinaus verwendet das periphere Interface-System der vorliegenden Erfindung intelligente Steuerlogik in fast allen Komponenten des Interface-Systems, wobei die Intelligenz synchronisiert wird, um in einer intensiv koordinierten und effizienten Weise zu arbeiten.
  • Abriß der Erfindung
  • Die vorliegende Erfindung gibt ein peripheres Interface-System für ein Datenverarbeitungssystem mit einem Zentralprozessor, mit einem Zentralspeicher und einer Mehrzahl von Peripheriegeräten gemäß Anspruch 1 an.
  • Kurzbeschreibung der Zeichnungen
  • Fig. 1 ist ein konzeptionelles Blockschaltbild der bevorzugten Ausführungsform des peripheren Interface-Systems der vorliegenden Erfindung;
  • Fig. 2 ist ein vereinfachtes Blockschaltbild einer Multiplexereinheit gemäß der vorliegenden Erfindung;
  • Fig. 3 ist eine Darstellung der Verwendung des Registers in der Multiplexereinheit gemäß der vorliegenden Erfindung;
  • Fig. 4 zeigt andere Verwendungen des Registers in einer Multiplexereinheit gemäß der vorliegenden Erfindung;
  • Fig. 5 bis 7 sind Zeitdiagramme von Lese- und Schreib-Operationen durch die Multiplexereinheit gemäß der vorliegenden Erfindung;
  • Fig. 8A und 8B beinhalten ein vereinfachtes Blockschaltbild einer Steuereinheit gemäß der vorliegenden Erfindung; und
  • Fig. 9 ist ein vereinfachtes Blockschaltbild eines Disk- Laufwerkes gemäß der vorliegenden Erfindung.
  • Detaillierte Beschreibung der Erfindung Überblick
  • Ein konzeptioneller Überblick über die bevorzugte Ausführungsform des peripheren Interface-Systems der vorliegenden Erfindung ist in dem Blockdiagramm in Fig. 1 dargestellt. Ein Eingabe-Ausgabe-Prozessor (IOP) 10, der einen RAM-Speicher enthält, ist vorgesehen, um bestimmte Eingabe-Ausgabe-Aufgaben für eine CPU - zentrale Verarbeitungseinheit - (nicht dargestellt), z. B. das Lesen und Schreiben von Daten auf Disklaufwerke und von Disklaufwerken 0-3, bezeichnet durch die Bezugszeichen 60 bis 63, auszuführen. Der RAM-Speicher des IOP 10, nachfolgend als "lokaler oder RAM"-Speicher bezeichnet, ist über einen der Speicherdirektzugriffs-(DMA)-Anschlüsse 12 durch einen DMA-Datenkanal 14 an einem Kanalmultiplexer 30 angeschlossen, welcher wiederum durch die entsprechenden Steuereinheiten 0-3, die mit den Bezugszeichen 50 bis 53 bezeichnet sind, mit den Disklaufwerken 0-3 verbunden ist. Ein anderer Kanal, der Akkumulatorkanal 16, ist zum Befördern von Anweisungen, Befehlen und Parametern etc. von dem Akkumulatorregister des IOP 10 zu dem Multiplexer 30 vorgesehen.
  • Der Multiplexer 30, die Steuereinheiten 50-53 und die Disklaufwerke 60- 63 umfassen ein E/A-Subsystem 20. Wie dargestellt, kann der IOP 10 mit bis zu vier solcher Subsysteme verbunden sein. Die Subsysteme 21, 22 und 23 können über die entsprechenden DMA-Kanäle 24, 25 und 26 und den Akkumulatorkanal 16, welcher parallel an jeden angeschlossenen Multiplexer angeschaltet ist, an den IOP 10 angeschlossen sein.
  • Der IOP 10 ist bevorzugt ein schneller, 16-Bit-Vielzweckrechner, der in der Lage ist, Daten mit sehr hohen Geschwindigkeiten durch seinen lokalen RAM-Speicher (bevorzugt in einem schnellen Bipolar-Design) zu transportieren, wie sie sich zwischen den Peripheriegeräten und der CPU bewegen. Die gesamte Kommunikation mit dem Mainframe, wie z. B. Disk- und Band-Anforderungen oder Stations-Kommunikation, wird bevorzugt von einem zweiten "Master"-IOP (nicht dargestellt) gehandhabt, welcher in Verbindung mit dem IOP 10 arbeitet, wo Anforderungen an periphere Geräte unter der Steuerung des IOP 10 einbezogen sind. Ebenfalls nicht dargestellt, aber bevorzugt in Verbindung mit dem IOP 10 und dem Master- IOP verwendet, ist ein relativ großer Pufferspeicher, der mit dem Zentralspeicher über einen 100M-Byte/Sekunde-Kanal kommuniziert. Im Betrieb steuert der IOP 10 die Bewegung von Daten zwischen dem Zentralspeicher des Mainframes und dem Pufferspeicher durch den Kanal. Bei Schreib- und Lesezugriffen auf Peripheriegeräte überträgt der IOP 10 Daten zwischen seinem lokalen Speicher und dem Pufferspeicher und zwischen seinem lokalen RAM-Speicher und über die DMA-Kanäle angeschlossenen Peripheriegeräten, wie den Disklaufwerken 0-3. Es ist anzumerken, daß, auch wenn das oben beschriebene System aus Eingabe-Ausgabe-Prozessoren und Speichern bevorzugt wird, dies für die vorliegende Erfindung nicht unbedingt erforderlich ist.
  • Konzeptionell kann man sich den Kanalmultiplexer 30 als in vier Hardwarekanäle 0-3 unterteilt vorstellen, von denen jeder Daten, Befehle und zugehörige Pararmeter zwischen dem IOP 10 und einer korrespondierenden Steuerung (0-3) und dem Laufwerk (0-3) leitet. Zum Zweck der konzeptionellen Illustration sind vier einzelne Multiplexerkanäle (0-3) und Interfacepfade 40 bis 43 zwischen dem Multiplexer 30 und den Steuereinheiten (0-3) gezeigt. Aus dem Nachstehenden ergibt sich jedoch, daß in der Praxis ein einzelner Informationspfad mit Zugriff auf den Multiplexer 30 und danach auf den IOP 10, auf einer Zeitmultiplex-Basis zwischen den Steuerungen 0-3 geteilt wird.
  • Die Steuereinheiten 0-3 sind jeweils für ein entsprechendes Disklaufwerk 0-3 reserviert und über entsprechende Interfacepfade 55 bis 58 daran angeschlossen. Die primäre Funktion jeder Steuereinheit (0-3) ist es, Daten zwischen dem Multiplexer 30 und einem 64-Paket-FIFO-Entzerrungspuffer in einem korrespondierenden Disklaufwerk 0-3 zu puffern. Zum Puffern von Daten beinhaltet jede der Steuerungen 0-3 ein Paar Paketpuffer, welche versuchen, das Disklaufwerk bei Schreib- und Lesefunktionen entsprechend voreilen zu lassen oder zu verzögern. Die Daten werden in den und aus dem entsprechenden Disklaufwerk- Entzerrungspuffer in Multipaketströmen übertragen. Im Sinne dieser Beschreibung und der angefügten Ansprüche ist der Begriff "Paket" mit der Bedeutung des Begriffes "Wort" zu verstehen und bezeichnet eine parallele Gruppe einer vorbestimmten Anzahl von Datenbits.
  • Jedes der Disklaufwerke 0-3 beinhaltet unabhängige Steuerungen für das Timing interner Schreib- und Leseoperationen, z. B. das Lesen und Schreiben von Daten von der und auf die Disk. Somit ist die einzige zeitabhängige Operation über die Interfacepfade 55-58 die momentane Übertragung von Daten und Parametern (z. B. Funktionen). In einem Schreibmodus empfängt der Entzerrungspuffer eines Disklaufwerkes (0-3) Daten von einer korrespondierenden Steuerung (0-3) und gibt sie dann zum Ablegen auf der Disk-Platte in Synchronisation mit dem internen Disklaufwerks-Takt ab. Ähnlich werden im Lesemodus die Daten unter Verwendung des internen Laufwerks-Taktes von den Platten in den Entzerrungspuffer getaktet und aus dem Entzerrungspuffer an eine Steuerung ausgegeben.
  • Kanalmultiplexer
  • Das vorstehend in groben Zügen dargestellte System wird nun detaillierter beginnend mit Bezug auf die Fig. 2, welche die Multiplexer 30 der Subsysteme 20 bis 23 in einem vereinfachten Blockschaltbild zeigt, beschrieben. Wie vorstehend erwähnt ist die grundsätzliche Aufgabe des Multiplexers 30, Daten zwischen einem IOP-DMA-Anschluß und bis zu vier Disk-Steuereinheiten (0-3) zu multiplexen. Neben dem Puffern der Daten zwischen dem lokalen Speicher und den Steuerungen verwaltet der Multiplexer 30 einige Lokalspeicher-Adressen, einige Statusregister, "Aktiv" und "Fertig"-Kennzeichen, und Interrupts für jede einzelne der Steuerungen 0-3.
  • Zwei Datenpuffer A und B, entsprechend 100 und 101, sind aufgeteilt zwischen allen vier Kanälen, um Daten zu und von dem IOP 10-Lokalspeicher zwischenzuspeichern. Jeder Puffer 100 und 101 hält vier Datenpakete für jeden der Kanäle 0-3 (das sind die Informationspfade zwischen dem IOP 10 und den Steuerungen), wie z. B. anhand des Kanal es O eines jeden Puffers dargestellt.
  • Die IOP-10-Lokalspeicheradresse und Funktionsinformation werden am Eingang 104 des Akkumulatorkanals 16 eingegeben, in dem Register 124 gepuffert und durch den Multiplexer 134 (Adreßinformation) in den Steuerpuffer 125 eingetragen, oder an den Steuerausgang 112 (Steuerung/Laufwerksfunktionen) weitergegeben. Die Lokalspeicheradressen (LMAs) werden bei Bedarf gemultiplext an das IOP-Lokalspeicheradressregister ausgegebenen, wie unten detailliert erläutert. Ähnlich werden die von den Steuereinheiten (0-3) übertragenen Laufwerks-Statusparameter am Eingang 105 eingegeben, von dem Register 123 gepuffert und in dem Steuerpuffer 125 abgelegt. Auf Anforderung werden sie über den Multiplexer 131 und den Ausgang 133 an den IOP-10-Akkumulatorkanal 16 abgegeben.
  • Die nachstehend detaillierter besprochene Steuerlogik ermöglicht gleichzeitige Lese- und Schreibzugriffe auf unterschiedliche Disklaufwerke. Die Steuerlogik für den Multiplexer 30 ist funktionell in vier Logiksätze aufgeteilt, - ein Satz für jeden der vier möglichen Kanäle und jedes der Laufwerke 0-3, - welche zum Multiplexen des Datenflusses durch die Kanäle synchronisiert werden. Die Synchronisation der vier Steuereinheiten 0-3 durch den Multiplexer ermöglicht diesem, sich den DMA-Kanal zu und von dem IOP 10 zeitlich aufzuteilen.
  • Die Puffer 100, 101 und 125 sind, wie dargestellt, in vier Speicherbereiche unterteilt, einer für jeden Kanal und jeder unter der Steuerung eines Logiksatzes. Wie detaillierter in Fig. 3 dargestellt, beinhaltet jeder der Puffer 100 und 101 16 Register (vier pro Kanal), bezeichnet mit 0 bis 15, die jeweils ein 16-Bit-Datenpaket halten. Der Aufbau des Steuerpuffers 125 ist detaillierter aus Fig. 4 ersichtlich. Der Steuerpuffer 125 beinhaltet 16 Register, bezeichnet mit 0-15, vier für jeden der Kanäle 0-3. Die Register halten zwei Lokalspeicheradreßpakete, 0 und 1, ein internes (Steuer-)Statuspaket und ein externes (Disk-)Statuspaket pro Kanal.
  • Zwischen dem Multiplexer 30 und dem Lokalspeicher werden Daten in Gruppen von vier Paketen übertragen, wobei jeder Gruppe ein eigener Kanal zugeordnet ist, so daß jede Übertragung die einem speziellen Kanal in einem der Puffer A oder B zugeordneten vier Register vollständig füllt oder vollständig leert. Z.B. werden bei einer Übertragung von Paketen für den Kanal 0 vom A-Puffer 100 zum Lokalspeicher die in dem Kanalregister gehaltenen vier Pakete (0-3) in serieller Weise aus dem A-Puffer 100 durch den Multiplexer 110 und den Ausgang 111 über den DMA-Kanal 14 in den Lokalspeicher getaktet. Bei einer Übertragung von Paketen für Kanal 3 vom Lokalspeicher zu dem B-Puffer 101 werden Datenpakete in serieller Weise am Eingang 106 über den DMA-Kanal 14 empfangen, durch den Multiplexer 107 geführt und in den Kanal 3 zugeordneten vier Paketregistern abgelegt.
  • Zwischen dem Multiplexer 30 und einer Steuerung werden Pakete jedoch auf einer Zeit-gemultiplexten Abtastbasis übertragen, meistens eines alle vier Taktperioden pro Kanal. Somit erfordert z. B. das Füllen der vier Paketregister von Kanal 0 in dem A-Puffer mindestens 14 Taktperioden bei einer Verzögerung von einer Taktperiode gegenüber der Taktperiode, in der der Multiplexer ein Paket und die Speicherung des Paketes in einem Paketregister anfordert. Ebenso sind mindestens 14 Taktperioden erforderlich, um vier Pakete für einen bestimmten Kanal aus dem Puffer zu entnehmen.
  • Es wird nun Bezug genommen auf die Fig. 5A und 5B, welche nebeneinanderliegend ein einzelnes Zeitdiagramm bilden, das den illustrativen, obwohl in einer praktischen Anwendung ungewöhnlichen, Fall des Lesens des Multiplexers von allen vier Kanälen gleichzeitig darstellt. Der Multiplexer 30 beinhaltet einen Abtaster, welcher eine 0-3 Abtastsequenz für die gemultiplexte Daten- und Funktionspakete zwischen sich selbst und den vier Steuerungen, welche sich seinen Eingang 105 und seinen Ausgang 112 teilen, bereitstellt. Die Abtastersignale werden somit jeder mit dem Multiplexer verbundenen Steuerung zur Verfügung gestellt, um einer Steuerung anzuzeigen, in welcher Taktperiode sie Informationspakete senden oder entgegennehmen kann. In dem Beispiel in Fig. 5 (die Puffer sind anfangs leer) wird der A-Puffer 100 zwischen den Taktperioden N und N+16 mit 16 Datenpaketen, vier von jeder Steuerung, gefüllt. Während einer Taktperiode N z. B. signalisiert der Sequenzabtaster der Steuerung 0, ein Datenpaket zu erzeugen (wenn verfügbar), und in der Taktperiode N+1 wird ein erstes Datenpaket von der Steuerung 0 über den Eingang 105 und den Multiplexer 108 in der Kanal- 0-Paketgruppe des A-Puffers 100 abgelegt. Somit sind in einer Taktperiode N+13 die vier Kanal-0-Paketregister des A-Puffers gefüllt, die Kanal-1-Register in der Periode N+14, Kanal-2-Register bei N+15, und die Kanal-3-Register bei N+16.
  • Sobald eine Kanal-Paketgruppe in einem Puffer gefüllt ist, in diesem Beispiel Puffer A, wird die andere Kanalgruppe in dem anderen Puffer, wenn sie leer ist, gefüllt. In dem in Fig. 5 gezeigten Fall beginnt z. B. das Füllen der B-Puffergruppen in der Periode N+17, zu welchem Zeitpunkt in diesem Beispiel alle vier Kanalpaketgruppen in dem A-Puffer gefüllt sind.
  • Sobald eine bestimmte Paketgruppe gefüllt ist, wird der Multiplexer versuchen, die Pakete so schnell wie möglich zu dem Lokalspeicher zu übertragen. In dem Beispiel in Fig. 5 beginnt der Prozeß des Leerens der Puffer-A-Kanal-0-Gruppe in den Lokalspeicher in der Taktperiode N+15, synchronisiert, um auf den Abtastsequenz-abschnitt "2" in Periode N+14 zu antworten. Dieser Versatz von zwei Taktperioden der Synchronisation der Lokalspeicher-Übertragungslogikoperation bleibt für alle Lokalspeicherübertragungsoperationen bestehen und ist vorgesehen, um Speicherübertragungen so schnell wie möglich nach dem kompletten Leeren oder Füllen von - einem bestimmten Kanal in einem Puffer zugeordneten - Paketen auslösen zu können, wenn andere Bedingungen dies anzeigen.
  • Der Vorgang des Leerens einer Kanalgruppe für einen Puffer beginnt, wie z. B. bezogen auf Kanal 0, Puffer A gezeigt, in der Taktperiode N+15 mit einer Anforderung für eine Lokalspeicheradresse (LMA) an das Steuerpufferregister 125. In diesem Beispiel wird die Adreßanforderung sofort in der Taktperiode N+16 akzeptiert, so daß in der Taktperiode N+17 eine Lokalspeicheradresse durch den Multiplexer gemultiplext und zur Ausgabe an das Lokalspeicheradreßregister am Ausgang 132 vorbereitet wird. Gleichzeitig wird eine Lokalspeicher-Schreib-Zugriffsanforderung angelegt, welche dann in variabler Weise, abhängig von der Verfügbarkeit des Speichers für diese Operation, akzeptiert wird. In dem vorliegenden Beispiel wird die Anforderung sofort akzeptiert, so daß die Daten von der Kanal-0-Paketgruppe des A-Puffers in vier aufeinanderfolgenden Perioden, beginnend mit der Periode N+19, in den Speicher übertragen werden. Somit werden von Periode N+19 bis Periode N+22 vier 16 Bit Datenpakete von der Puffer-A-Kanal-0-Gruppe in den Speicher übertragen. Nachdem eine Zugriffsanforderung akzeptiert wurde, wird die korrespondierende LMA über den Inkrementor 126 und den Multiplexer 134 inkrementiert. Damit ist die LMA für den nächsten erforderlichen Speicherzugriff richtig vorbereitet. Diese Operation folgt ebenfalls in dem Fall der Übertragung von dem Speicher in den Puffer, wie nachfolgend erläutert.
  • Wie dargestellt kann der Vorgang des Leerens der Kanal-1-Gruppe des A- Puffers beginnen, bevor die Übertragung der Pakete von der Kanal-0- Gruppe des Puffers abgeschlossen ist. Somit erkennt in einer Taktperiode N+20 die vom Abtastabschnitt "3" in der Taktperiode N+19 synchronisierte Speicherübertragungslogik, daß die Kanal-1-Paketgruppe gefüllt ist und ein Übertragungsprozeß ausgelöst werden kann. Wegen des Überlappens dieser Operationen ist ein Speicherpaar in der Logik vorgesehen, welches es der Logik gestattet, die einer bereits abgeschlossenen Operation zugeordnete Kanalnummer zu "erinnern", während ein neuer Kanal bedient wird, so daß Pakete in die und aus den A- und B-Puffern zu und von den korrekten Kanalbereichen geleitet werden können. Da beide Puffer gleichzeitig aktiv sein können, wobei der eine Daten ausliest und der andere diese speichert, wird die letzte Stufe des Zwischenspeichers kopiert, um eine für jeden Puffer verfügbar zu machen, so daß jeder Puffer einen Zugriff auf die abgelegte Kanalnummer hat. Daher wird die den Speicherzugriff anfordernde Kanalnummer in einem ersten Register zwischengespeichert, in diesem Beispiel beginnend in einer Taktperiode N+16 (wenn die Speicherzugriffsanforderung angelegt wird), und die Kanalnummer wird an einen zweiten Zwischenspeicher weitergegeben, welcher zum Adressieren des Datenpuffers in einer Taktperiode N+17 gelesen werden kann. Zusätzliche Adressierungen sind zum Zeigen auf die zugehörigen Pakete (0-3) innerhalb einer Gruppe vorgesehen.
  • Obwohl die maximale DMA-Speicherzugriffsgeschwindigkeit einen Zugriff alle sechs Taktperioden gestattet, ist die Ausführung eines nächsten Speicherzugriffs während mindestens zwei Taktperioden, die der Akzeptanz einer Speicherzugriffsanforderung folgen, nicht erlaubt, wie z. B. bezogen auf die Ereignisfolge, die der Zugriffsakzeptanz in Taktperiode N+24 für Kanal 1 und in Taktperiode N+31 für Kanal 3 folgt, entnehmbar ist. Somit werden, wenn ein Zugriff akzeptiert ist, vier 16-Bit-Worte innerhalb der nächsten fünf Taktperioden übertragen. Damit kann, wenn die Taktperiode T ist und die maximale Speichergeschwindigkeit ein Zugriff alle 6 T ist, die E/A-Geschwindigkeit pro Kanal 16/6 T Bits pro Sekunde für 16-Bit-Datenpakete erreichen.
  • In der Taktperiode N+32 ist erkennbar, daß der B-Puffer vollständig gefüllt ist, daß aber der gesamte A-Puffer noch in den Lokalspeicher zu leeren ist. Somit werden von der Zeitperiode N+32 bis zur Zeitperiode N+41 keine Pakete von den Steuerungen angenommen, da Lokalspeicheroperationen mit einem Puffer die Adreßlogik des Puffers monopolisieren, so daß alle anderen Pufferoperationen verschoben werden. In der Taktperiode N+42 ist jedoch erkennbar, daß ein Paket von der Steuerung 2 akzeptiert und in der Kanal-2-Gruppe des Puffers A abgelegt wird. Von diesem Punkt an wird der Puffer A in der gleichen Weise wie oben dargelegt, gefüllt - nur daß die letzten zwei in dem Puffer abgelegten Pakete in diesem Fall von Steuerung 0 und von Steuerung 1 stammen.
  • In dem Moment, in dem das füllen des Puffers A wieder beginnt, sobald er in den Speicher entleert ist, beginnt das Leeren des Puffers B in den Speicher, sobald der A-Puffer geleert ist, vorausgesetzt daß der B- Puffer oder mindestens eine Kanalgruppe von diesem Puffer gefüllt ist. Somit wird in der Taktperiode N+39 der Vorgang des Leerens des B-Puffers und insbesondere von dessen Kanal 0 ausgelöst.
  • Damit läßt sich aus dem in Fig. 5 illustrierten Fall ersehen, daß in dem Fall einer Multiplexer-Leseoperation von allen vier Kanälen, diese aus dem Füllen des ersten Puffers von der Steuerung, dem Leeren des Puffers in den Lokalspeicher, während der andere Puffer gefüllt wird, und so weiter und so fort, besteht.
  • Bezug nehmend auf die Fig. 6A und 6B, welche nebeneinanderliegend ein einzelnes Zeitdiagramm bilden, wird der Fall eines synchronen Schreibens des Multiplexers in alle vier Kanäle dargestellt. Im Fall dieses Beispiel es beginnt das Diagramm damit, daß der A- und B-Puffer voll sind, da sie vorher aus dem Lokalspeicher aufgefüllt wurden. Dann wird in einer sehr ähnlichen Weise wie bei der Ausführung des Füllens der Puffer aus den Steuerungen der A-Puffer von der Taktperiode N+2 bis zu der Taktperiode N+17 in die vier Steuerungen geleert, ausgelöst durch die Abtastabschnitte, beginnend in der Taktperiode N und fortlaufend bis zu der Taktperiode N+15. Wie dargestellt wird ein Datenpaket von dem Multiplexer zu einer Steuerung in der zweiten, dem Abtast-Abschnittsignal zu der Steuerung folgenden Taktperiode übertragen. Zur Klarstellung zeigt das vorherige Beispiel aus Fig. 5 das Auftreten der Bestätigung und die Datenablage in dem Puffer, welches in derselben Taktperiode auftritt.
  • In einer Taktperiode N+14 ist erkennbar, daß der Vorgang des Leerens der Kanal-0-Gruppe des A-Puffers in die Steuerung 0 abgeschlossen ist und daß der Vorgang des Füllens des Puffers aus dem Lokalspeicher ausgelöst werden kann. Dazu ist, wie in dem Fall der vorstehend erläuterten Leseoperation, der Speicherübertragungslogikbetrieb mit der Abtastsequenz plus zwei Kanälen synchronisiert, so daß in dem Abtastkanal-2- Abschnitt in der Taktperiode N+14 die Logik bestimmt, ob die Kanal-0- Paketgruppen vollständig in ihren Puffern sind oder nicht und,zu dem Lokalspeicher übertragen werden können, was dem in Fig. 6 dargestellten Fall entspricht. Damit wird in der Taktperiode N+15 eine Adreßanforderung von dem Steuerpufferregister 125 abgegeben, welche als sofort durch den Steuerpuffer akzeptierte Anforderung dargestellt ist. Es ist jedoch zu berücksichtigen, daß im Fall eines Anforderungskonfliktes an den Steuerpuffer, z. B. für Statusinformationen oder Funktionsausgaben der Steuerung, die Adreßanforderung verzögerbar ist.
  • Sobald die Adreßanforderung akzeptiert und der Steuerpuffer 125 vorbereitet ist, um die richtige Adresse an ein Lokalspeicheradreßregister des Lokalspeichers über den Ausgang 132 abzugeben, wird eine Speicherlesezugriffsanforderung abgegeben, in dem vorliegenden Fall in Taktperiode N+17. In einer Taktperiode N+18 wird die Anforderung akzeptiert, welche sodann unvermeidlich zu dem Empfang von vier Paketen aus dem Speicher für die Kanal-0-Gruppe von Puffer A führt, in der Taktperiode N+26 beginnt und in der Taktperiode N+29 endet, wobei die Pakete in den vier Positionen der Kanal-0-Puffer-A-Gruppe, beginnend in der Taktperiode N+27 und endend in der Taktperiode N+30, abgelegt werden.
  • Wie in dem Fall des Lesezugriffs muß eine Kanalnummer, die einen Zugriff anfordert, und eine Lesezugriffs-Kanalnummer wegen des Überlappens der logischen Operationen zwischengespeichert oder "abgelegt" werden, wie aus der Darstellung entnehmbar ist. Beispielsweise wird der Vorgang des Auffüllens der vier dem Kanal 3 zugewiesenen Positionen von Puffer A vor dem Abschluß der Übertragung der Pakete und dem Ablegen dieser Pakete in den A-Puffer für Kanal 0, der in der Taktperiode N+15 ausgelöst wurde, aufgerufen. In dem Fall des Füllens des Puffers aus dem Lokalspeicher ist jedoch wegen der damit einhergehenden, längeren Verzögerungen von der Auslösung eines Speicherlesezugriffs zu der Beendigung eines solchen eine zusätzliche Ablageebene erforderlich. Deshalb wird die Kanalnummer, die einen Lesezugriff vom Speicher anfordert, zwischengespeichert, wenn der Zugriff erstmals angelegt wird, an einen zweiten Zwischenspeicher weitergegeben, wenn die Lesebestätigung (nicht dargestellt) von dem IOP empfangen wird, und schließlich sechs Taktperioden später an einen dritten Zwischenspeicher weitergeleitet, wo jeder vorherige Lesezugriff vom Lokalspeicher auf den Puffer abgeschlossen wird. Der dritte Zwischenspeicher kann deshalb zum Zeigen der Pufferadresse auf die richtige Kanalgruppe mit einer von einer anderen Adreß-Steuerung abgegebenen individuellen Paketadresse (0 bis 7) belegt werden. Wiederum sind, wie in dem Fall des Schreibens in den Lokalspeicher, für jeden Puffer unabhängige Zwischenspeicher vorgesehen.
  • Weiterhin das Überlappen der Leseoperationen im Lokalspeicher ist zu berücksichtigen, daß die Geschwindigkeit des Multiplexens von Daten aus dem Speicher in die Puffer durch die Geschwindigkeit begrenzt wird, mit welcher die Daten durch den Lokalspeicher bereitgestellt und zu dem Multiplexer übertragen werden. Deshalb sind einige Verbesserungen der Geschwindigkeit durch höhere Speicherzugriffsgeschwindigkeiten möglich. Es ist jedoch zu beachten, daß im Fall des Lesezugriffes die maximale DMA-Geschwindigkeit ein Zugriff alle sechs Taktperioden ist, so daß, wenn die Taktperiode T ist und die maximale Speichergeschwindigkeit ein Zugriff alle 6 T ist, die E/A-Geschwindigkeit pro Kanal 16/tT für 16- Bit-Datenpakete erreichen kann.
  • Wie in dem Beispiel in Fig. 6 gezeigt, wird, sobald der A-Puffer zu der Zeit N+17 leer ist, das Leeren des B-Puffers begonnen, und das Füllen des A-Puffers aus dem Lokalspeicher läuft gleichzeitig damit ab. In der Taktperiode N+33 ist der B-Puffer in die Steuerungen geleert worden, so daß die Steuerlogik versucht, irgendwelche verfügbaren Datenpakete von dem A-Puffer (tatsächlich von beiden Puffern) zu lokalisieren, die zu der Steuerung übertragen werden können. Deshalb prüft in der Taktperiode N+34 die Logik die Kanal-2-Gruppe in Puffer A und erkennt, daß die Gruppe augenblicklich aus dem Speicher gefüllt wird und deshalb nicht übertragen werden kann. Eine gleiche Prüfung wird für die Kanal-3-Gruppe in der Taktperiode N+35 ausgelöst und eine gleiche Feststellung wird getroffen. In der Taktperiode N+36 stellt die Steuerlogik fest, daß die Kanal-0-Gruppe in dem A-Puffer voll ist, und daß ein Paket zu der Kanal-0-Steuerung übertragen werden kann, wenn der A-Puffer nicht mit einer Speicherzugriffsoperation beschäftigt ist, wie in diesem Fall. Deshalb kann das Kanal-0-Paket nicht zu der Kanal-0-Steuerung übertragen werden. Der gleiche Ablauf wird für die Kanal-1-Gruppe in dem A-Puffer wiederholt. Wie jedoch durch die gestrichelten Linien für die Kanäle 2 und 3 angezeigt, sind die Worte von diesen Gruppen auch nicht verfügbar und somit können während der Taktperioden N+40 und N+41 keine Worte übertragen werden, auch wenn der Puffer nicht tätig wäre. Es ist jedoch erkennbar, daß Pakete von den Kanälen 0 und 3 zu ihren entsprechenden Steuerungen in den Taktperioden N+46 und N+53 bewegt werden können, weil Daten verfügbar sind und ein Speicherzugriff zu diesen Zeitpunkten nicht vorkommt.
  • Nochmals auf das Füllen der Puffer aus dem Speicher zurückkommend, ist erkennbar, daß in einer Taktperiode N+39 der Vorgang des Füllens der Kanal-0-Gruppe des Puffers B aus dem Lokalspeicher ausgelöst wird und daß dieser Vorgang in der Taktperiode N+55 abgeschlossen wird. Somit werden, wie im Fall eines Lesezugriffes, die Puffer schließlich in die Steuerungen geleert und aus dem Lokalspeicher gefüllt. Während des Vorgangs des Leerens und des Füllens wird jeder Puffer für jede Kanalgruppe der Puffer unabhängig gesteuert, wie gemäß dem Fall gemischter Lese- und Schreibzugriffe, wie in den Fig. 7A und 7B dargestellte besser erkennbar ist.
  • Von der Taktperiode N+1 bis zu der Taktperiode N+16 des in den Fig. 7A und 7B gezeigten Betriebes (die zusammen ein einzelnes Diagramm bilden), werden die Kanal-0- und die Kanal-2-Gruppen des A-Puffers durch einen Lesevorgang aus ihren entsprechenden Steuerungen gefüllt. Zusammen mit diesem Lesevorgang werden die A-Puffer für die Kanäle 1 und 3 mit einem Schreibvorgang in die entsprechenden Steuerungen 1 und 3 geleert. Somit sind in der Taktperiode N+16 die Kanäle 0 und 2 in dem A-Puffer voll und somit fertig zum Leeren in den Lokalspeicher, während die Kanäle 1 und 3 des A-Puffers leer sind und ein neues Auffüllen aus dem Lokalspeicher erfordern. In der Taktperiode N+17 wird der Betrieb für alle vier Kanäle auf den B-Puffer umgeschaltet und der B-Puffer für die Kanäle 0 und 2 gefüllt, während die Kanäle 1 und 3 geleert werden. Es ist jedoch zu berücksichtigen, daß der Multiplexer der vorliegenden Erfindung zum weiteren Mischen des Betriebes, wie z. B. zwischen den Puffern, in der Lage ist, obwohl eine solche Möglichkeit in den Beispielen nicht gezeigt wird. Beispielsweise ist in dem in Fig. 7 gezeigten Fall die Steuerlogik der vorliegenden Erfindung imstande, in verschachtelter Weise die A-Puffer für die Kanäle 0 und 2 zu füllen, während die B-Puffer für die gleichen oder andere Kanäle geleert werden, so daß in der ersten Taktperiode ein Lesevorgang ausgeführt werden kann, um die Kanal-0-Gruppe des A-Puffers zu füllen, und in der nächsten Taktperiode ein Schreibvorgang in einen anderen Kanal in dem B- Puffer ausgeführt werden kann und so weiter. In jedem Fall versucht die Steuerlogik des Multiplexers kontinuierlich, die Übertragung von Daten zwischen dem Multiplexer und einer Steuerung auszuführen und wird eine Datenübertragung vornehmen wenn immer es möglich ist, gleichgültig, ob es ein Lesen oder Schreiben ist, und ohne Rücksicht darauf, welcher Puffer für eine Übertragung vorbereitet ist.
  • Deshalb bildet der Fall von Fig. 7 eine relativ gleichmäßige Vermischungen der Vorgänge, bei der die 16 aufeinanderfolgenden Übertragungen zwischen der Taktperiode N+1 und der Taktperiode N+16 alle in dem gleichen Puffer auftreten, betreffen und ebenso in der durch die Taktperioden N+17 bis N+32 definierten Periode. In jedem Fall ist in der Taktperiode N+15 erkennbar, daß die Steuerlogik erkennt, daß ein Schreibvorgang von dem Kanal-0-A-Puffer in den Speicher ausgelöst werden kann und somit ausgeführt wird.
  • Ähnlich erkennt die Steuerung in der Taktperiode N+20, daß der Kanal-1- A-Puffer leer und aus dem Speicher zu füllen ist, und dieser Vorgang wird in dieser Taktperiode ausgelöst. Es ist jedoch zu beachten, daß die Auslösung des mit Kanal 1 des A-Puffers verbundenen Zugriffs nicht ausgeführt werden darf, bis der vorherige Zugriff akzeptiert wurde, was für alle Übertragungsoperationen zwischen den Puffern und dem Speicher gilt. Damit ist, nachdem die Schreibzugriffsanforderung für Kanal 1 des A-Puffers in der Taktperiode N+24 akzeptiert ist, der nächste verfügbare Kanal in der Abtastsequenz derjenige für Kanal 3, wobei der Vorgang des Füllens der Kanalgruppe deshalb in der Taktperiode N+26 ausgelöst wird.
  • Nachdem die Schreibzugriffsanforderung für Kanal 3 in der Taktperiode N+30 akzeptiert ist, versucht die Steuerlogik wiederum, die nächste verfügbare Kanalgruppe für einen Speicherzugriff zu finden, welche in der abtastsynchronen Folge unterstützt werden kann. Somit prüft die Steuerlogik in der Taktperiode N+31 (wie oben erwähnt, muß wenigstens eine Taktperiode Verzögerung zwischen der Akzeptanz einer Zugriffsanforderung und der Auslösung eines nachfolgenden Übertragungsprozesses eingefügt werden) Kanal 1 in den A- und B-Puffern, erkennt, daß Kanal 1 in dem A-Puffer in eine Speicherübertragungsvorgang einbezogen ist, daß aber Kanal 1 in dem B-Puffer ein Füllen aus dem Lokalspeicher erfordert, und deshalb wird in der Taktperiode N+32 der Vorgang des Füllens der Kanal-1-Gruppe in dem B-Puffer aus dem Lokalspeicher ausgelöst, der in der Taktperiode N+48 abgeschlossen wird.
  • Schließlich ist, Bezug nehmend auf die letzte dargestellte Speicherübertragungsoperation, erkennbar, daß in der Taktperiode N+41 der Vorgang des Leerens von Kanal 2 des B-Puffers in den Speicher ausgelöst wird. Somit ist, wie dargestellt, die Steuerlogik der vorliegenden Erfindung imstande, gleichzeitige Operationen in verschiedenen Puffern auszuführen. Es ist jedoch anzumerken, daß diese gleichzeitigen Operationen in den Puffern nicht mit gleichzeitigen Speicherzugriffsvorgängen gleichzusetzen sind. Speicheroperationen werden stets sequentiell ausgeführt. Durch bestimmte Verzögerungen zwischen dem Speicher und dem Empfangen von Daten durch den Multiplexer können jedoch Daten über den DMA-Kanal tatsächlich gleichzeitig in unterschiedlichen Richtungen übertragen werden.
  • Deshalb müssen, wie aus dem Vorstehenden erkennbar ist, die folgenden Übertragungsregeln durch die Logik eingehalten werden: (1) Jeder Zugriff muß bestätigt werden, bevor ein nachfolgender Zugriff ausgeführt werden darf; (2) eine Paketierung von Daten zu und von den Steuerungen wird stets synchronisiert mit den Abtastzeitabschnitten ausgeführt; (3) wenn Daten zwischen dem Puffer und dem Speicher bewegt werden, muß die Steuerung vollständig von dem Puffer getrennt sein; (4) die jedem Zugriff zugeordneten Kanalnummern müssen abgelegt sein, um die übereinstimmende Reihenfolge der Speicherzugriffe abzustimmen.
  • Ebenfalls bedeutsam für den Betrieb des Multiplexers 30, obwohl aus den obigen Beispielen nicht erkennbar, ist die Priorisierung des Zugriffes auf die Steuerregister wie folgt ("1" hat die höchste Priorität):
  • 1. Programm (Software) von LMA 0 oder 1 laden oder Status lesen durch IOP.
  • 2. LMA nach Zugriff inkrementieren.
  • 3. LMA-Anforderungs-Zugriff.
  • 4. Status aus der Steuerung ablegen.
  • Wie das Lesen und Schreiben von Daten von den und in die Steuerungen wird das Übertragen von Funktionsinformationen zwischen dem Multiplexer und einer Steuerung mit dem freilaufenden Abtaster synchronisiert. Wie vorstehend erwähnt, wird diese Information in dem Register 124 gespeichert und zu dem zugeordneten Zeitabschnitt durch den Ausgang 112 abgegeben. Somit kann es bis zu vier Taktperioden in Anspruch nehmen, eine Funktion von dem Multiplexer an eine Steuerung freizugeben, so daß der IOP 10 (durch Software) daran gehindert wird, Funktionen öfter als alle fünf Taktperioden abzugeben.
  • Nicht dargestellt, aber in dem Interface zwischen dem IOP 10 und dem Multiplexer 30 enthalten sind Leseanforderungsleitungen und Schreibanforderungsleitungen von dem Multiplexer zu dem IOP 10-Lokalspeicher, welche die Steuerlogik des Multiplexers bei Bedarf verwendet, wie in den Fig. 5, 6 und 7 gezeigt (Speicherlesezugriff anfordern, Speicherschreibzugriff anfordern). Weiterhin sind entsprechende Signalleitungen von dem IOP 10 zu dem Multiplexer vorgesehen, um die Bestätigung der Lese- oder Schreibanforderung anzuzeigen, wie ebenfalls in den Fig. 5, 6 und 7 aufgezeigt. Ähnlich sind Interrupt-Leitungen (eine für jeden Kanal) vom Multiplexer 30 zu dem IOP 10 vorgesehen, um den Abschluß eines Lokalspeicher-Zugriffsvorganges anzuzeigen. Dementsprechend jedem Interrupt folgend, prüft der IOP 10 die einwandfreie Beendigung eines Zugriffes durch Lesen des dem Zugriff zugeordneten LMA- Registers und prüft, ob die Adresse die vorgesehene abschließende Einstellung angenommen hat.
  • Steuerungen
  • Die Fig. 8A und 8B bilden nebeneinandergelegt ein vereinfachtes Blockschaltbild von einer der Steuerungen 0-3 mit der Verbindung der entsprechenden Leitungen, die durch a bis g bezeichnet werden. Wie vorstehend kurz beschrieben, hat eine Steuereinheit (0-3) die primäre Aufgabe, die Daten zwischen dem Multiplexer 30 und einem 64-Paket-FIFO- Entzerrungspuffer in dem entsprechenden Disk-Laufwerk (0-3) zu puffern. Ein Pufferpaar A und B, entsprechend 160 und 161, von denen jeder 512 Pakete mal 17 Bits groß ist, versucht während einer Schreib- oder Lesefunktion entsprechend die Disk zu beschleunigen oder zu verzögern. 16 der Bits bilden ein Datenwort, während das siebzehnte Bit ein ungerades Paritätsbit bildet.
  • Die Daten werden zu und von der Disk bevorzugt in 16-Paket-Blöcken (d. h. 216 Datenbits pro Block) mit einem einzelnen Anforderungs- oder Fortsetzungssignal pro Block übertragen. Jede Steuereinheit (0-3) ist an ihr entsprechendes Disklaufwerk (0-3) durch ein Kabel paar angeschlossen, welches die BUS-IN- und BUS-OUT-Informationspfade zur Verfügung stellt. Im Fall eines Schreibvorgangs auf das Disklaufwerk werden die Daten vom Multiplexer 30 am Eingang 165 empfangen, laufen durch ein Multiplexer-Eingangsregister 166 und einen Multiplexer 167 und werden zu einem von beiden A- oder B-Puffern 160 und 161 übertragen. Die ungerade Parität für Eingangsdaten wird in dem Paritätsgenerator 170 erzeugt und in 171 zu dem entsprechenden Puffer 160 und 161, der die übertragenen Daten empfängt, gemultiplext. Wenn das Laufwerk bereit ist, Daten anzunehmen, verlassen die Schreibdaten die Puffer 160 und 161 und laufen über das BUS-OUT-Kabel am Ausgang 172, durch den Multiplexer 173 und das Disk-Ausgangsregister 174. Im Falle eines Daten-Lesevorganges werden die Daten von der Disk von dem BUS-IN-Kabel bei 180 eingegeben und durch das BUS-IN-Register 181 und durch den Multiplexer 167 zu einem entsprechenden der beiden A- und B-Puffer 160 und 161 geführt, während das Paritätsbit durch den Multiplexer 171 läuft. Auf Befehl von dem Multiplexer 30 laufen die Lesedaten von den Puffern 160 und 161 durch den Ausgangsmultiplexer 182 und zu dem Multiplexer 30 Ausgang 183. Ein Leseparitäts-Fehlerdetektor 206 ist vorgesehen, um die Parität von Datenpaketen zu prüfen und ein Signal zu erzeugen, das dem Multiplexer die einwandfreie oder fehlerbehaftete Parität anzeigt, welcher bei Erkennen eines Fehlers die Datenübertragung abbrechen kann.
  • Wie mit Bezug auf den Multiplexer 30 beschrieben, teilen sich die Steuerparameter, z. B. einen Sektor bezeichnende Bits, den Informationspfad zwischen dem Multiplexer 30 und den Steuereinheiten 0-3. Diese Parameter werden wie Daten am Eingang 165 eingegeben, aber dann in Parameter- Register 184 und 185 eingetragen. Steuerparameter befinden sich im Register 184 und werden durch den Multiplexer 173 und das Disk-Ausgangsregister 174 zu dem Disk-BUS-OUT-Kabel am Ausgang 172 zusammen mit einem durch den Generator 186 erzeugten Paritätsbit gemultiplext. Das Nächstes-Lesen/Schreiben-Parameterregister 185 ist zur Implementation einer "fortsetzen"-Funktion vorgesehen, die in Disk/Laufwerken 0-3 verfügbar ist und ermöglicht, die nächste Disklaufwerksfunktion in einen Vielfach-Sektorlese- und -schreibvorgang einzureihen. Dazu kann eine Steuerung (0-3) ohne Unterstützung durch einen IOP 10-Interrupt ein Disklaufwerk (0-3) anweisen, eine Schreib- oder Lesevorgang in Übereinstimmung mit der im Lese/Schreib-Parameterregister 185 enthaltenen Anweisung auszuführen. Durch diesen Mechanismus ist die Antwortzeit auf einen Sektor-Interrupt nicht die Intersektor-Abstandszeit auf der Disk, sondern eine Gesamtsektorzeit, etwa 370 Mikrosekunden für die in der vorliegenden Ausführungsform verwendeten Disklaufwerke. In Verbindung mit der Fortsetzungsfunktion wird die im Steuerpuffer 125 des Multiplexers 30 gespeicherte zweite LMA zur Adressierung des Lokalspeichers verwendet, so daß sowohl der Multiplexer 30 als auch die Steuerung darauf vorbereitet sind, ohne Unterstützung durch den IOP 10 fortzufahren.
  • Disk-Funktionscodes, z. B. Lesen, Schreiben, Kopfauswahl und Zylinderauswahl, können entweder über den Eingang 192 oder den Eingang 165 an die Steuerung weitergeleitet werden. Am Eingang 165 empfangene Codes werden durch das Nächstes-Lesen/Schreiben-Parameterregister 185 geleitet, während am Eingang 192 empfangene Codes durch die Register 193 und 194 weiterlaufen, um über das Disk-BUS-OUT-Kabel am Ausgang 172 in Synchronisation mit den entsprechenden, in den Parameter-Registern 184 und 185 enthaltenen Parametern zu den Disk-Funktions-Eingangsleitungen übertragen zu werden. Der Disk-Status wird nach Eingabe in den Steuerpuffer 125 des Multiplexers 30 ebenfalls über einen Eingang 180, Bus- Eingangsregister 181, Disk-Statusregister 187, Multiplexer-Ausgangsregister 182 und den Ausgang 183 durch die Steuerungen 0-3 geleitet.
  • Zur Adressierung des A- und B-Puffers 160 und 161 ist die Adressierlogik 200 bis 205 vorgesehen. Ein Register 201 stellt eine Pufferadresse für Daten, die vom Multiplexer empfangen oder für den Multiplexer 30 bestimmt sind, bereit. Ein Register 204 stellt eine Pufferadresse für Daten, die von einem Disklaufwerk empfangen werden oder für ein Disklaufwerk (0-3) bestimmt sind, bereit. Das Register 204 wird über einen Addierer 203 synchron mit jedem von dem Disklaufwerk gelesenen oder auf das Disklaufwerk geschriebenen Paket inkrementiert. Das Register 201 wird über den Addierer 200 synchron mit jedem an den Multiplexer gesendeten oder von dem Multiplexer 30 empfangenen Paket inkrementiert. Die Multiplexer 202 und 205 sind vorgesehen, um die Adressen der Register 201 und 203 an jeden der Puffer 160 und 161 entsprechend weiterzuleiten.
  • Die A- und B-Puffer 160 und 161 füllen und leeren sich im Betrieb alternierend, um Daten zwischen einem Disklaufwerk (0-3) und dem Multiplexer 30 zu transportieren. Z.B. beginnt ein Lesevorgang von einem Disklaufwerk mit dem Füllen eines Puffers 160 mit 32 Datenblöcken (d. h. 512 Paketen), die Adressierung des A-Puffers 160 erfolgt über das Register 204. Sobald der A-Puffer 160 voll ist, werden die Daten von der Disk zu dem B-Puffer 161 geleitet. Gleichzeitig mit dieser Umschaltung beginnt der A-Puffer 160 mit dem Übertragen seiner Daten zu dem Multiplexer 30 unter der Steuerung des Adreßregisters 201. Wenn der B-Puffer 161 gefüllt und der A-Puffer 160 leer ist, wird der B-Pufferinhalt zu dem Multiplexer 30 übertragen und der A-Puffer von dem Disklaufwerk gefüllt und so weiter, bis der gesamte Lesevorgang beendet ist, welcher in der vorliegenden Ausführungsform eine Übertragung von 128 Datenblöcken umfaßt.
  • Schreibvorgänge laufen in der gleichen Weise wie Lesevorgänge ab, nur beginnen sie mit dem Füllen des A-Puffers 160 mit Daten von dem Multiplexer 30. Unter normalen Umständen verläuft die Abgabe der Daten an den Multiplexer 30 mit einer Geschwindigkeit, die die Geschwindigkeit der von einem Disklaufwerk empfangenen Daten überschreitet und anders herum kann der Multiplexer 30 Daten mit einer Geschwindigkeit bereitstellen, die die Höchstgeschwindigkeit der Übertragung zu einem Disklaufwerk überschreitet. Deshalb fordert eine Steuerung (0-3) bei einem Schreibvorgang Daten bei Bedarf von dem Multiplexer 30 an, um mit der Übertragung der Daten zu einem Disklaufwerk Schritt zu halten. Bei einem Lesevorgang versucht eine Steuerung (0-3), Daten an den Multiplexer 30 zu senden, um mit dem Empfang von Daten von einem Disklaufwerk Schritt zu halten. Unter bestimmten Umständen kann eine Steuerung jedoch nicht Daten an den Multiplexer abgeben oder Daten von dem Multiplexer 30 holen, um mit der Übertragung der Daten von dem oder zu dem Disklaufwerk Schritt zu halten. Dementsprechend kann der Entzerrungspuffer des Disklaufwerkes verwendet werden, um eine zusätzliche Zeitspanne zum Ausführen des Leerens oder des Füllens des A- und B-Puffers 160 und 161 zu erhalten.
  • Ein Diagnosemodus-Bitregister 208 ist vorgesehen, um unter Benutzereinfluß erzwungene Paritätsfehler des Disklaufwerkes und der Puffer 160 und 161 der Steuerung zu gestatten.
  • Peripheriegeräte
  • In Fig. 9 ist ein vereinfachtes Blockschaltbild des Entzerrungspuffersystems von einem der Disklaufwerke 0-3 dargestellt, welches das in dem vorliegenden System implementierte Peripheriegerät bildet. Es ist jedoch zu berücksichtigen, daß die Erfindung nicht auf die Anwendung mit Disklaufwerken beschränkt ist. Der Entzerrungspuffer 250 ist in der Lage, 64 16-Bits-Pakete in einem Lese- oder Schreib-Zyklus des Laufwerkes (0-3) zu puffern. Bei einem Lesevorgang beispielsweise werden die Daten von den Platten 271-277 über Köpfe 270-276 in serieller Weise gelesen, wobei die ersten vier Bits (0-3) über den Kopf 270 gelesen werden, die nächsten vier Bits (4-7) über Kopf 272 und so weiter, so daß die Bits 0, 4, 8 und 12 von den Platten im wesentlichen auf einmal gelesen werden, dann die Bits 1, 5, 9, 13 und so weiter. Jede Gruppe von 4 Bits wird in parallelen 4-Bits-Worten auf jedem der Pfade 280-286 angeordnet und dadurch in den Puffer 250 an den Eingängen/Ausgängen 254-260 in parallel er Weise eingegeben, um ein 16-Bits-Paket (0-16) zu bilden. Die Pakete werden damit von den Platten 271-277 in den Puffer 250 übertragen, bis ein Lesevorgang abgeschlossen ist. Da jedoch ein Lese- (oder Schreib-)Zugriff die Übertragung von 2048 Paketen von den Platten in den Puffer 250 mit einer im wesentlichen gleichmäßigen Geschwindigkeit beinhaltet, gibt der Puffer 250 die Datenpakete zu den Steuerungen am Ausgang 253 auf einer "First-in, First-out"-Basis asynchron mit den an den Eingängen 254-260 eingebenen Daten aus. In der vorliegenden Ausführungsform wird die Datenausgabe aus dem Puffer 250 synchron mit einem durch eine Steuerlogik 260 erzeugten Taktsignal mit 16 Paketen gleichzeitig in einem Einzelübertragungsvorgang ausgeführt, der als Antwort auf ein Einzelanforderungs- oder Fortsetzungssignal von einer Steuerung ausgelöst wird. Somit sind 128 solcher Übertragungsvorgänge, d. h. Blockübertragungen, erforderlich, um eine 2048-Paket- oder "record"-Übertragung zu vervollständigen.
  • Schreibvorgänge auf den Disklaufwerken werden in weitgehend gleicher Weise wie Lesevorgänge, lediglich in umgekehrter Reihenfolge, ausgeführt. Datenpakete von einer Steuerung (0-3) werden über einen Eingang 252 in den Puffer 250 übertragen, durch den Puffer getaktet und an den Eingängen/Ausgängen 254-260 ausgegeben und auf den Pfaden 280- 286 zum seriellen Schreiben auf die Platten 271-277 über die entsprechenden Köpfe 270-276 seriell-gewandelt. Im Gegensatz zu der Darstellung in Fig. 9 befinden sich die Datenbits jedoch in umgekehrter Reihenfolge. Die Steuerlogik 260 ist in jedem Disklaufwerk vorgesehen und empfängt Befehle und Parameter über einen Signalpfad 263 von einer Steuerungseinheit, um den Puffer 250 und die verschiedenen anderen Komponenten des Disklaufwerkes zu steuern. Zusätzlich überwacht die Steuerlogik 260 die Parität der eingehenden Daten mittels eines Paritäts- Detektors 261, durch welchen veränderte Daten verworfen werden können. Dementsprechend erzeugt der Paritätsgenerator 262 ein ungerades Paritätsbit für jedes vom Puffer 260 an das BUS-IN-Kabel übertragene Paket. Die Steuerlogik 260 überwacht ebenfalls den Laufwerksbetrieb und erzeugt Laufwerks-Statussignale, die über einen Signalpfad 264 und das BUS-IN-Kabel an die Steuerung abgegeben werden.

Claims (9)

1. Peripheres Interface-System für ein Datenverarbeitungssystem mit einem Zentralprozessor mit einem zentralen Speicher und einer Mehrzahl von peripheren Geräten (60-63), wobei das periphere Interface-System enthält:
einen E/A-Prozessor (10), der einen lokalen Speicher mit mindestens einem DMA-Anschluß (12) zum Senden und Empfangen von Daten und einen Akkumulator (16) zum Senden und Empfangen von Steuerinformationen enthält;
einen Kanal-Multiplexer (30), der mit dem DMA-Anschluß (12) und dem Akkumulator (16) kommuniziert und eine Mehrzahl von Daten- und Steuerinformations-Kanälen zum Datenfluß zwischen dem DMA-Anschluß (12) und dem Akkumulator (16) und einer entsprechenden Anzahl peripherer Geräte (60-63) bereitstellt, dadurch gekennzeichnet, daß der Kanal-Multiplexer (30) beinhaltet:
(a) einen Adreßstatus-Puffer (125) mit einer Mehrzahl von Registern zum Halten von Lokalspeicher-Adreßpaketen, Peripheriegeräte-Statuspaketen und Statuspaketen der internen Steuerung, wobei die Register funktionsweise in Kanalstatusregistergruppen unterteilt sind und jede Kanalstatusregistergruppe einem der Kanäle entspricht;
(b) erste und zweite Multiplexer-Datenpuffer (100, 101), von denen jeder eine Mehrzahl von Registern zum Halten von Datenpaketen beinhaltet, wobei die Register des ersten und zweiten Multiplexer-Datenpuffers funktionsweise in eine Mehrzahl von Kanalregistergruppen unterteilt sind, so daß jeder der ersten und zweiten Multiplexer-Datenpuffer eine Kanalregistergruppe für jeden der Kanäle hat;
(c) erste Multiplexer-Mittel (123, 124, 130, 131, 134), die mit dem Akkumulator (16) und den peripheren Geräten (60-63) kommunizieren, um Adreß- und Statuspakete in den und aus dem Adreßstatus-Puffer (125) und Peripheriegeräte-Steuerinformation von dem Akkumulator (16) an die peripheren Geräte (60-63) zu multiplexen;
(d) zweite Multiplexer-Mittel (107-110), die mit dem DMA-Anschluß (12) und den peripheren Geräten (60-63) zum Multiplexen von Datenpaketen in einen und aus einem der ersten und zweiten Multiplexer-Datenpuffer (100-101) von oder zu dem DMA-Anschluß (12) oder den peripheren Geräten (60-63) kommunizieren; und
(e) eine Kanal-Multiplexer-Steuerlogik, die funktional in eine Mehrzahl von Kanalgruppen unterteilt ist, wobei jede der Kanalgruppen den Datenfluß durch einen der Kanäle steuert und eine Kanalgruppe zur Zeit auf einer umlaufenden Zeitmultiplexbasis funktional aktiv ist, um die ersten und zweiten Multiplexmittel zu steuern und den ersten und zweiten Multiplexer-Datenpuffer zu adressieren, um eine der Kanalregistergruppen in einem der ersten oder zweiten Multiplexer-Datenpuffer zu füllen, während sich die entsprechende Kanal-Registergruppe in dem anderen der ersten oder zweiten Multiplexer-Datenpuffer während des aktiven Zeitabschnittes des korrespondierenden Kanalsatzes leert, so daß alle Pakete einer Kanalregistergruppe zwischen der Kanalregistergruppe und dem lokalen Speicher des E/A-Prozessors in aufeinanderfolgenden Taktperioden auf einer umlaufenden Zeitmultiplexbasis seriell übertragen werden; und
(f) daß die Kanalmultiplexer-Steuerlogik bewirkt, daß ein Datenpaket von einer der Kanalregistergruppen alle n Taktperioden an das zugeordnete periphere Gerät übertragen wird, wobei n die Anzahl der Kanalregistergruppen pro Datenpuffer ist, und daß in aufeinanderfolgenden Taktperioden verschiedene Registergruppen Datenpakete übertragen.
2. Peripheres Interface-System nach Anspruch 1, mit:
einer Mehrzahl von Steuerungsmitteln (50-53), von denen jedes mit einem der peripheren Geräte (60-63) und mit einer der Kanalregistergruppen des Kanalmultiplexers (30) kommuniziert, wobei jedes Steuerungsmittel (50-53) enthält:
(a) erste und zweite Steuerungs-Datenpuffer (160-161), von denen jeder eine Mehrzahl von Registern zum Halten von Datenpaketen beinhaltet;
(b) Datenmultiplexer-Mittel (167, 171, 173), die mit dem Kanalmultiplexer (30) und dem einen peripheren Gerät (60-63) zum Multiplexen von Datenpaketen in die und aus den ersten und zweiten Steuerungsdatenpuffern (160 - 161) von oder zu dem einen peripheren Gerät (60-61) oder dem Kanalmultiplexer (30) kommunizieren; und
(c) Steuerungslogikmittel (200-205), die mit dem Kanalmultiplexer (30) und dem einen peripheren Gerät (60-63) kommunizieren, um die Datenmultiplexer-Mittel zu steuern und die ersten und zweiten Steuerungs-Datenpuffer zu adressieren, um eines der Pakete des ersten oder zweiten Steuerungsdatenpuffers zu füllen, während das korrespondierende Paket des anderen der ersten oder zweiten Steuerungs-Datenpuffer geleert wird, so daß eine Übertragung eines Paketes von einem der Steuerungs-Datenpuffer zwischen dem einen peripheren Gerät und der einen Kanalgruppe des Kanalmultiplexers alle n Taktperioden vorkommt, wobei n die Anzahl der Kanalregistergruppen ist, und daß in aufeinanderfolgenden Taktperioden eine andere der Kanalregistergruppen Datenpakete empfängt und sendet.
3. Peripheres Interface-System nach Anspruch 2, bei dem das Steuerungsmittel (50-53) mit dem Kanalmultiplexer (30) periodisch auf einer umlaufenden Zeitmultiplexbasis kommuniziert und bei dem der Kanalmultiplexer (30) die aktive Kommunikationsperiode auslöst.
4. Peripheres Interface-System nach Anspruch 3, bei dem eine vorbestimmte Mehrzahl von Datenpaketen zwischen dem Kanalmultiplexer (30) und dem Steuerungsmittel (50-53) während jeder Kommunikationsperiode übertragen werden, wobei die vorbestimmte Mehrzahl als Zahl ein Bruchteil der Anzahl der Datenpakete ist, welche in den ersten oder zweiten Steuerungs-Datenpuffern gehalten werden können.
5. Peripheres Interface-System nach Anspruch 4, bei dem die Häufigkeit des Auftretens von Kommunikationsperioden zwischen dem Kanalmultiplexer (30) und den Steuerungsmitteln (50-53) so festgelegt ist, daß das Füllen oder Leeren von einem der ersten oder zweiten Steuerungs- Datenpuffer von oder zu dem Kanalmultiplexer (30) normalerweise mit einer Geschwindigkeit abläuft, die die Geschwindigkeit des Füllens oder Leerens der anderen der Steuerungs-Datenpuffer zu oder von dem einen peripheren Gerät überschreitet.
6. Periphers Interface-System nach Anspruch 5, bei dem das eine periphere Gerät (60-63) Datenpakete in Strömen sendet und empfängt, wobei jeder Strom eine vorbestimmte Mehrzahl von Datenpaketen beinhaltet, einer der Ströme zwischen den Steuerungsmitteln (50-53) und dem einen peripheren Gerät (60-63) als Reaktion auf ein einzelnes Anforderungssignal, das durch die Steuerungslogik erzeugt wird, übertragen wird, und wobei der erste und zweite Steuerungs-Datenpuffer zum Halten einer vorbestimmten Mehrzahl von Strömen ausgelegt sind.
7. Peripheres Interface-System nach Anspruch 2, bei dem das Steuerungslogikmittel erste und zweite Adreßsteuerungen (201-204) zum Ansprechen der ersten und zweiten Steuerungs-Datenpuffer (160, 161) beinhaltet, die ersten und zweiten Adreßsteuerungen zu einem der Steuerungs-Datenpuffer über erste und zweite Adreßmultiplexer (202- 205) in Verbindung mit dem entsprechenden ersten und zweiten Steuerungs-Datenpuffer gebündelt werden, eine der Adressierungssteuerungen Bezugsadressen für an das eine periphere Gerät gesendete oder von dem einen peripheren Gerät empfangene Datenpakete und die andere der Adressierungssteuerungen Bezugsadressen für an den Kanalmultiplexer (30) gesendete oder von dem Kanalmultiplexer (30) empfangene Datenpakete aufweist.
8. Peripheres Interface-System nach Anspruch 2, bei dem Datenpakete zwischen den Daten-Multiplex-Mitteln (167, 171, 173) und dem einen peripheren Gerät (60-63) durch einen parallelen Buseingangs-Datenpfad, der Datenpakete von dem einen peripheren Gerät zu den Multiplexermitteln transportiert, und einem parallelen Busausgangs-Datenpfad, der Datenpakete von den Multiplexer-Mitteln zu dem einen peripheren Gerät transportiert, ausgetauscht werden.
9. Peripheres Interface-System nach Anspruch 8, bei dem Datenpakete zwischen den Daten-Multiplex-Mitteln (167, 171, 173) und dem Kanalmultiplexer (30) durch einen parallelen Ausgangs-Datenpfad, der Datenpakete von den Datenmultiplex-Mitteln zu dem Kanalmultiplexer transportiert, und einen parallelen Ausgangs-Datenpfad, der Dateninformationseinheiten von dem Kanalmultiplexer zu den Datenmultiplexer-Mitteln transportiert, ausgetauscht werden.
DE3587910T 1984-06-21 1985-05-13 Peripheres Interface-System. Expired - Fee Related DE3587910T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US62278684A 1984-06-21 1984-06-21

Publications (2)

Publication Number Publication Date
DE3587910D1 DE3587910D1 (de) 1994-09-29
DE3587910T2 true DE3587910T2 (de) 1994-12-15

Family

ID=24495517

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3587910T Expired - Fee Related DE3587910T2 (de) 1984-06-21 1985-05-13 Peripheres Interface-System.

Country Status (6)

Country Link
US (1) US4807121A (de)
EP (1) EP0165915B1 (de)
JP (1) JPS6113359A (de)
AT (1) ATE110479T1 (de)
CA (1) CA1228677A (de)
DE (1) DE3587910T2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19830625B4 (de) * 1998-07-09 2008-04-03 Robert Bosch Gmbh Digitale Schnittstelleneinheit

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU1671688A (en) * 1987-06-03 1988-12-08 Honeywell Bull Inc. Peripheral controller and adapter interface
JPH01501661A (ja) * 1987-07-01 1989-06-08 ユニシス コーポレーシヨン タグ高速転送の改良
JP2527458B2 (ja) * 1988-03-04 1996-08-21 富士通株式会社 デ―タ転送制御装置
US5283791A (en) * 1988-08-02 1994-02-01 Cray Research Systems, Inc. Error recovery method and apparatus for high performance disk drives
US5218689A (en) * 1988-08-16 1993-06-08 Cray Research, Inc. Single disk emulation interface for an array of asynchronously operating disk drives
WO1990003031A1 (fr) 1988-09-05 1990-03-22 Seiko Epson Corporation Dispositif d'enregistrement/reproduction
US5179667A (en) * 1988-09-14 1993-01-12 Silicon Graphics, Inc. Synchronized DRAM control apparatus using two different clock rates
US5193193A (en) * 1988-09-14 1993-03-09 Silicon Graphics, Inc. Bus control system for arbitrating requests with predetermined on/off time limitations
WO1990006550A1 (en) * 1988-12-08 1990-06-14 Cray Research, Inc. Single disk emulation for asynchronous disk array
EP0374764B1 (de) * 1988-12-19 2001-04-04 Nec Corporation Datenübertragungsvorrichtung
EP0394514B1 (de) * 1989-04-25 1994-07-13 Siemens Aktiengesellschaft Verfahren zur Synchronisation von Datenverarbeitungsanlagen
US5347637A (en) * 1989-08-08 1994-09-13 Cray Research, Inc. Modular input/output system for supercomputers
US5303349A (en) * 1990-06-06 1994-04-12 Valitek, Inc. Interface for establishing a number of consecutive time frames of bidirectional command and data block communication between a Host's standard parallel port and a peripheral device
US5255372A (en) * 1990-08-31 1993-10-19 International Business Machines Corporation Apparatus for efficiently interconnecing channels of a multiprocessor system multiplexed via channel adapters
US5206952A (en) * 1990-09-12 1993-04-27 Cray Research, Inc. Fault tolerant networking architecture
US5276900A (en) * 1990-12-14 1994-01-04 Stream Computers Master connected to common bus providing synchronous, contiguous time periods having an instruction followed by data from different time period not immediately contiguous thereto
US5276684A (en) * 1991-07-22 1994-01-04 International Business Machines Corporation High performance I/O processor
GB2261537A (en) * 1991-11-14 1993-05-19 Techful International Limited Computer
US5388217A (en) * 1991-12-13 1995-02-07 Cray Research, Inc. Distributing system for multi-processor input and output using channel adapters
JPH07122865B2 (ja) * 1992-01-02 1995-12-25 インターナショナル・ビジネス・マシーンズ・コーポレイション バス動作の動作速度を制御するようにしたバス・インターフェースを有するコンピュータ・システム
US5640596A (en) * 1992-03-10 1997-06-17 Hitachi, Ltd. Input output control system for transferring control programs collectively as one transfer unit designated by plurality of input output requests to be executed
JP2587190B2 (ja) * 1992-09-04 1997-03-05 インターナショナル・ビジネス・マシーンズ・コーポレイション システム間チャネルページング機構
US5572691A (en) * 1993-04-21 1996-11-05 Gi Corporation Apparatus and method for providing multiple data streams from stored data using dual memory buffers
EP0641139B1 (de) * 1993-07-13 2002-09-11 Hewlett-Packard Company, A Delaware Corporation Kombinieren von Ton- und Fernsprech-Daten für einem Rechner
DE69300523T2 (de) * 1993-11-26 1996-03-14 Sgs Thomson Microelectronics Prozessorschnittstellenschaltung zum Austausch von seriellen digitalen Daten mit einem Peripheriegerät.
EP0685803B1 (de) 1994-06-03 2001-04-18 Hyundai Electronics America Herstellungsverfahren für einen elektrischen Vorrichtungs-Adapter
US5577213A (en) * 1994-06-03 1996-11-19 At&T Global Information Solutions Company Multi-device adapter card for computer
US5548791A (en) * 1994-07-25 1996-08-20 International Business Machines Corporation Input/output control system with plural channel paths to I/O devices
US5619731A (en) * 1994-09-23 1997-04-08 Ardent Teleproductions, Inc. Interactive music CD and data
US5495614A (en) * 1994-12-14 1996-02-27 International Business Machines Corporation Interface control process between using programs and shared hardware facilities
US5613162A (en) * 1995-01-04 1997-03-18 Ast Research, Inc. Method and apparatus for performing efficient direct memory access data transfers
US5864712A (en) * 1995-03-17 1999-01-26 Lsi Logic Corporation Method and apparatus for controlling (N+I) I/O channels with (N) data managers in a homogenous software programmable environment
DE69614291T2 (de) * 1995-03-17 2001-12-06 Lsi Logic Corp., Fort Collins (n+i) Ein/Ausgabekanälesteuerung, mit (n) Datenverwaltern, in einer homogenen Software-Programmierbetriebsumgebung
JP3518034B2 (ja) * 1995-03-30 2004-04-12 三菱電機株式会社 ソート方法並びにソート処理装置並びにデータ処理装置
WO1997006490A1 (en) * 1995-08-09 1997-02-20 Cirrus Logic, Inc. Parasitic personal computer interface
US5768624A (en) * 1996-02-28 1998-06-16 Opti Inc. Method and apparatus for employing ping-pong buffering with one level deep buffers for fast DRAM access
US6038621A (en) * 1996-11-04 2000-03-14 Hewlett-Packard Company Dynamic peripheral control of I/O buffers in peripherals with modular I/O
US6453394B2 (en) * 1997-10-03 2002-09-17 Matsushita Electric Industrial Co., Ltd. Memory interface device and memory address generation device
US6078968A (en) * 1997-10-03 2000-06-20 Vicom Systems, Inc. Platform-independent communications protocol supporting communications between a processor and subsystem controller based on identifying information
US6694381B1 (en) 1997-12-17 2004-02-17 Vicom Systems, Inc. Platform-independent communications protocol supporting communications between a processor and subsystem controller
GB2362777B (en) * 2000-05-25 2002-05-08 3Com Corp System for detection of asynchronous packet rates and maintenance of maximum theoretical packet rate
US6874043B2 (en) * 2000-10-17 2005-03-29 Bridgeworks Ltd. Data buffer
GB2372115A (en) * 2001-02-08 2002-08-14 Mitel Semiconductor Ltd Direct memory access controller
US6779055B2 (en) * 2001-06-20 2004-08-17 Freescale Semiconductor, Inc. First-in, first-out memory system having both simultaneous and alternating data access and method thereof
JP2003338200A (ja) * 2002-05-17 2003-11-28 Mitsubishi Electric Corp 半導体集積回路装置
US20050182863A1 (en) * 2004-02-18 2005-08-18 Arm Limited, Direct memory access control
US8165014B2 (en) * 2007-06-19 2012-04-24 Commscope, Inc. Of North Carolina Methods and systems for using managed port circuitry to map connections among structured cabling apparatus and network devices
CN103984659B (zh) * 2014-05-15 2017-07-21 华为技术有限公司 分时使用串口的方法和装置

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3319230A (en) * 1956-09-26 1967-05-09 Ibm Data processing machine including program interrupt feature
US3812475A (en) * 1957-12-26 1974-05-21 Ibm Data synchronizer
US3336582A (en) * 1964-09-01 1967-08-15 Ibm Interlocked communication system
US3427592A (en) * 1964-11-12 1969-02-11 Ibm Data processing system
US3400372A (en) * 1965-02-16 1968-09-03 Ibm Terminal for a multi-data processing system
US3432813A (en) * 1966-04-19 1969-03-11 Ibm Apparatus for control of a plurality of peripheral devices
US3564502A (en) * 1968-01-15 1971-02-16 Ibm Channel position signaling method and means
US3582906A (en) * 1969-06-27 1971-06-01 Ibm High-speed dc interlocked communication system interface
US3623155A (en) * 1969-12-24 1971-11-23 Ibm Optimum apparatus and method for check bit generation and error detection, location and correction
US3688274A (en) * 1970-12-23 1972-08-29 Ibm Command retry control by peripheral devices
US3725864A (en) * 1971-03-03 1973-04-03 Ibm Input/output control
US3812473A (en) * 1972-11-24 1974-05-21 Ibm Storage system with conflict-free multiple simultaneous access
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
US4313160A (en) * 1976-08-17 1982-01-26 Computer Automation, Inc. Distributed input/output controller system
US4115854A (en) * 1977-03-28 1978-09-19 International Business Machines Corporation Channel bus controller
US4300193A (en) * 1979-01-31 1981-11-10 Honeywell Information Systems Inc. Data processing system having data multiplex control apparatus
US4442504A (en) * 1981-03-09 1984-04-10 Allen-Bradley Company Modular programmable controller
US4495564A (en) * 1981-08-10 1985-01-22 International Business Machines Corporation Multi sub-channel adapter with single status/address register
US4460959A (en) * 1981-09-16 1984-07-17 Honeywell Information Systems Inc. Logic control system including cache memory for CPU-memory transfers
US4571671A (en) * 1983-05-13 1986-02-18 International Business Machines Corporation Data processor having multiple-buffer adapter between a system channel and an input/output bus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19830625B4 (de) * 1998-07-09 2008-04-03 Robert Bosch Gmbh Digitale Schnittstelleneinheit

Also Published As

Publication number Publication date
JPH0562382B2 (de) 1993-09-08
CA1228677A (en) 1987-10-27
JPS6113359A (ja) 1986-01-21
DE3587910D1 (de) 1994-09-29
EP0165915B1 (de) 1994-08-24
US4807121A (en) 1989-02-21
ATE110479T1 (de) 1994-09-15
EP0165915A2 (de) 1985-12-27
EP0165915A3 (en) 1988-12-07

Similar Documents

Publication Publication Date Title
DE3587910T2 (de) Peripheres Interface-System.
DE3689087T2 (de) Modularer Mehrfachportdatenknoten.
DE69032384T2 (de) Datenpuffer
DE69735936T2 (de) Seriendatenschnittstellenverfahren und vorrichtung #
DE60036777T2 (de) Gerät zur Signalsynchronisierung zwischen zwei Taktbereichen
DE3789104T2 (de) Netzwerkübertragungsadapter.
DE3751091T2 (de) Übertragungsprotokoll zwischen Prozessoren.
DE2448212C2 (de) Asynchrone Sammelleitung zur Kommunikation mit selbstbestimmter Priorität zwischen Mutterrechnergeräten und Tochterrechnergeräten
DE69323861T2 (de) Multiprozessorsystem mit gemeinsamem Speicher
DE3586245T2 (de) Bildverarbeitungsgeraet und interkommunikationsbus dafuer.
DE69217664T2 (de) Multimedia-signalprozessor-rechnersystem
DE69124946T2 (de) Bidirektionaler FIFO-Puffer zur Schnittstellenbildung zwischen zwei Bussen
DE69810132T2 (de) Multiport drams mit internen cache-speichern
DE69727721T2 (de) Rechnervorrichtung und Bussteuerungsschema
DE69031220T2 (de) Hochgeschwindigkeitsmultiport-FIFO-Pufferschaltung
DE3838240A1 (de) Datenprozessor
DE2162806A1 (de) Digitales Eingabe-Ausgabe-Steuersystem mit Kanalpufferung
CH634940A5 (en) Channel-adapter arrangement
DE102005048581B4 (de) Teilnehmerschnittstelle zwischen einem FlexRay-Kommunikationsbaustein und einem FlexRay-Teilnehmer und Verfahren zur Übertragung von Botschaften über eine solche Schnittstelle
EP0184706B1 (de) Schnittstelleneinrichtung
EP0185260B1 (de) Schnittstelle für direkten Nachrichtenaustausch
DE602004008712T2 (de) Speicherbandbreiten-Steuereinrichtung
DE3142504A1 (de) Mehrfachplattenspeicher-uebertragungssystem
DE68914577T2 (de) Pufferspeichereinrichtung.
DE69125815T2 (de) Anordnung und Verfahren zu einer variablen Datenzuweisung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee