DE69228661T2 - Universelles Ankopplungsgerät mit Steuerung für mehrfache Datenübertragungen zwischen einer Mehrzahl von Speichern und einem Rechnerbus - Google Patents

Universelles Ankopplungsgerät mit Steuerung für mehrfache Datenübertragungen zwischen einer Mehrzahl von Speichern und einem Rechnerbus

Info

Publication number
DE69228661T2
DE69228661T2 DE1992628661 DE69228661T DE69228661T2 DE 69228661 T2 DE69228661 T2 DE 69228661T2 DE 1992628661 DE1992628661 DE 1992628661 DE 69228661 T DE69228661 T DE 69228661T DE 69228661 T2 DE69228661 T2 DE 69228661T2
Authority
DE
Germany
Prior art keywords
channel
bus
microprocessor
controller
hand
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
DE1992628661
Other languages
English (en)
Other versions
DE69228661D1 (de
Inventor
Patrick F-91140 Villebon Sur Yvette Le Quere
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.)
Bull SAS
Original Assignee
Bull SAS
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 Bull SAS filed Critical Bull SAS
Publication of DE69228661D1 publication Critical patent/DE69228661D1/de
Application granted granted Critical
Publication of DE69228661T2 publication Critical patent/DE69228661T2/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)

Description

  • Die vorliegende Erfindung betrifft eine universelle Vorrichtung zur Kopplung eines Rechnerbusses mit einem Controller einer Gruppe von Peripheriegeräten oder Terminals, die untereinander durch eine spezifische Verbindung verbunden sind, mit der der Controller physisch verbunden ist, wobei die Vorrichtung einen durch einen Mikroprozessor organisierten Mehrfachdatenübertragungs-Controller zwischen mehreren Speichern, wovon wenigstens einer dem Mikroprozessor zugeordnet ist, und dem Rechnerbus, mit dem der Controller verbunden ist, enthält. Diese Verbindung kann ein ringförmiges Datenübertragungsnetz des Typs FDDI, dessen Übertragungsträger durch Lichtwellenleiter gebildet ist, oder auch eine Verbindung des Typs SCSI sein, die diese Magnetplattenspeicher miteinander verbindet. Sowohl die Verbindungen des Typs FDDI als auch diejenigen des Typs SCSI sind durch ANSI (American National Standard Institute) und durch die internationale Organisation für Normierung ISO (International Standard Organization) normiert.
  • Eine universelle Kopplungsvorrichtung ist in der französischen Patentanmeldung 91.08908 beschrieben, die von der Firma der Anmelderin unter dem Titel "Dispositif universel de couplage d'un bus d'ordinateur à un contrôleur d'un groupe de périphériques" am 15.07.91 eingereicht wurde (FR-A-2 679 352, veröffentlicht am 22.01.93).
  • Zum besseren Verständnis des Aufbaus und der Funktionsweise des Mehrfachdatenübertragungs-Controllers soll an die wesentlichen Elemente der in der obenerwähnten Anmeldung beschriebenen universellen Kopplungsvorrichtung erinnert werden, wobei die Beschreibung jener Anmeldung selbstverständlich als Bestandteil der vorliegenden Beschreibung anzusehen ist.
  • Im folgenden wird auf Fig. 1 Bezug genommen, die die wesentlichen Elemente der betreffenden universellen Kopplungsvorrichtung zeigt.
  • Der Rechnerbus ist der Bus PSB des parallelen Typs, der z. B. durch einen MULTIBUS 11 (eingetragenes Warenzeichen der Firma INTEL) dargestellt, der gemäß IEEE 1296 (Institute of Electrical and Electronic Engineers) normiert ist. Dieser Bus verbindet die verschiedenen Elemente des Rechners (Hauptprozessor oder Eingangs-/Ausgangsprozessoren, Speicher usw.) miteinander.
  • Die wesentlichen Elemente der universellen Kopplungsvorrichtung GPUI sind folgende:
  • - der Coprozessor MCP (z. B. des Typs VL82c389 der Firma INTEL), der als Schnittstelle mit dem PSB dient,
  • - der Mikrocontroller MIC, der die mit "Durchverbinden" bezeichnete Verbindungsfunktion des MULTIBUS II (ebenfalls durch die Norm IEEE 1296 definiert) unterstützt,
  • - der Mikroprozessor MPU, der eigentlich die Zentraleinheit der GPUI ist, der mit seinem internen Bus BI ausgestattet ist und dem jeweils ein programmierbarer, löschbarer Speicher EPROM&sub1;, ein Arbeitsspeicher SRAM und eine Unterbrechungssteuerung, nämlich MFP, zugeordnet sind. Die Elemente EPROM&sub1;, SRAM und MFP sind alle an den internen Bus BI des Mikroprozessors MPU angeschlossen,
  • - der mit VRAM bezeichnete Speicher des Typs Dual-Port- Video-RAM,
  • - die logischen Trennelemente FLI&sub1; und FLI&sub2;,
  • - der Direktspeicherzugriff-Controller DMAC, der an den Bus B&sub2; angeschlossen ist, der den VRAM mit dem Coprozessor MPC verbindet.
  • Der Dual-Port-Speicher (VRAM) ist über einen Bus (B1) mit einer Schnittstelle (IHA) verbunden, die die universelle Kopplungsvorrichtung GPUI mit einem Controller DEA einer Gruppe von Peripheriegeräten oder Terminals verbindet, die ihrerseits mit der genannten spezifischen Verbindung verbunden ist.
  • Eine Beschreibung dieses Controllers DEA und der Schnittstelle IHA findet sich in dem französischen Patent Nr. 2650412, das durch die Firma der Anmelderin am 27.07.89 eingereicht und am 01.02.91 veröffentlicht wurde.
  • Der Rechnerbus BI ist ebenfalls mit der Schnittstelle IHA verbunden.
  • Das Ziel der universellen Kopplungsvorrichtung ist die Datenübertragung von durch den Rechner ORD gesendeten Rahmen, der den Bus PSB in Richtung der spezifischen Verbindung über den Controller DEA und in umgekehrter Richtung enthält, indem er die Anpassung und die Steuerung der verschiedenen Übertragungsprotokolle umsetzt, die sowohl auf dem Bus PSB als auch durch den Rechner ORD auf der genannten Verbindung verwendet werden. Die universelle Kopplungsvorrichtung GPUI überträgt also die Daten von dem PSB zur Schnittstelle IHA und umgekehrt, wobei er gleichzeitig die Umsetzung der Protokolle und den Datendurchsatz zwischen dem Bus PSB und der spezifischen Verbindung (FDDI, SCSI, ...) durchführt.
  • Der Mikroprozessor MPU ist ein 32-Bit-Mikroprozessor mit einer Taktfrequenz von 25 MHz. Er steuert den internen Bus BI, der ein nicht multiplexierter Bus mit 32-Bit-Daten und 32-Bit- Adressen ist.
  • Der Festwertspeicher EPROM&sub1; mit einer Kapazität von 128 oder 256 Kilobytes enthält die Programme für die Selbsttests und für die Initialisierung des im statischen Speicher SRAM enthaltenen Betriebssystems GPOS des Mikroprozessors CPU für die Kopplungsvorrichtung GPUI. Der Speicher SRAM hat eine Kapazität von 512 Kilobytes oder 1 Megabyte.
  • Das Betriebssystem GPOS organisiert den Betrieb der Mikroprozessoreinheit und überwacht folglich die Übertragung der Rahmen vom PSB zur Schnittstelle IHA und umgekehrt. Ein Beispiel für das Betriebssystem GPOS ist in der französischen Patentanmeldung Nr. 91.08907 beschrieben, die durch die Firma der Anmelderin unter dem Titel "Systeme d'exploitation pour dispositif universelle de couplage d'un bus d'ordinateur à une liaison spécifique d'un réseau" am 15.07.91 eingereicht wurde (FR-A-2 679 351, veröffentlicht am 22.01.93).
  • Das Programm zur Adaptation der Protokolle, die einerseits von dem Rechner ORD und der Kopplungsvorrichtung über den Bus PSB und andererseits in dem Speicher, der die spezifische Verbindung (FDDI, SCSI, usw.) verwendet, benutzt werden, ist im Speicher SRAM enthalten.
  • Der Mikroprozessor MPU ist das Gehirn der Kopplungsvorrichtung, da er die Datenübertragung initialisiert, die Adaptation der Protokolle durchführt, seinen Code ausführt und die Nutzdaten zwischen dem DEA und dem Rechner ORD und umgekehrt überträgt, indem er mit dem DEA im Dialog steht, mit dem er Befehle und Stati in der Weise, die z. B. in dem obenerwähnten französischen Patent 2 650 412 angegeben ist, austauscht.
  • Somit wird die Datenübertragung einerseits zwischen der Schnittstelle IHA und dem Speicher VRAM und andererseits zwischen dem letzten und dem Bus PSB über den MPC durch den Mikroprozessor MPU organisiert, wobei die letzte Übertragung unter der Steuerung der Direktspeicherzugriffsschaltung DMAC durchgeführt wird. Die Umsetzung der spezifischen Steuerblöcke der auf dem Rechnerbus verwendeten Protokolle in jene, die auf der Verbindung verwendet werden, und umgekehrt wird durch den Mikroprozessor durchgeführt, der für ihre Übertragung auf seinem internen Bus BI zu oder von der Verbindungsschnittstelle IHA sorgt.
  • Die Elemente FLI&sub1; und FLI&sub2; verhindern die Datenübertragung zwischen dem Bus B&sub2; und dem Bus BI und zwischen dem Bus B&sub1; und dem Bus BI.
  • Der Direktspeicherzugriff-Controller DMAC sorgt für die Nutzdatenübertragung zwischen dem Coprozessor MPC und einem der Speicher SRAM oder VRAM. Er besitzt zwei Kanäle:
  • - einen als "In-Kanal" oder Eingangskanal bezeichneten Kanal, der zur Nutzdatenübertragung vom Coprozessor MPC zum Speicher VRAM oder zum SRAM dient,
  • - einen als "Out-Kanal" oder Ausgangskanal bezeichneten Kanal, der zur Nutzdatenübertragung vom Speicher VRAM oder (SRAM) zum Coprozessor MPC dient.
  • Um eine Datenübertragung durchzuführen, empfängt der Controller DMAC von seiten des Mikroprozessors MPU eine Startadresse (entweder in dem Speicher VRAM oder in dem Coprozessor MPC), einen Zählwert, d. h. die Anzahl der zu übertragenden Bytes, und einen Startbefehl für die Datenübertragung. Mit dem Empfang dieser Informationen von seiten des MPU organisiert der DMAC die Nutzdatenübertragung. Er ist somit Slave des MPU für die Informationen, die die Adresse und den Zählwert angeben. Der Controller DMAC hat keine Kenntnis über die Daten, die von dem Speicher zum Coprozessor und umgekehrt verkehren (dasselbe gilt selbstverständlich auch für den Datenverkehr vom MPC zum SRAM und umgekehrt). Er steuert nur den Datenfluß auf Anforderung des MPU.
  • Das Ziel der vorliegenden Erfindung besteht darin, nicht nur alle Elemente, die die Funktionen des DMAC gewährleisten, sondern auch das Element FLI&sub1; und einen Teil der Diensteelemente des Coprozessors MPC auf einem Chip zu integrieren, wodurch neue Funktionen hinzugefügt werden, die die GPUI nicht besitzt, z. B. den weiter unten genauer beschriebenen "Array Chaining"-Modus (Deskriptor-Verkettung), und die Verwendung eines der Übertragungsmodi "little endian" oder "big endian" (siehe weiter unten).
  • In der vorliegenden Erfindung ist der Direktspeicherzugriffs- Controller zwischen einem der beiden Speicher SRAM, VRAM und dem Coprozessor in der Weise in Serie angeordnet, daß der Direktspeicherzugriff-Controller, der hier als Mehrfachübertragungs-Controller bezeichnet wird, direkt über die Datenwege durchlaufen wird.
  • Die Erfindung schlägt eine universelle Kopplungsvorrichtung vor, wie sie in Anspruch 1 definiert ist.
  • Weitere Merkmale und Vorteile der vorliegenden Erfindung gehen aus der folgenden Beschreibung hervor, die anhand eines nicht einschränkenden Beispiels gegeben wird und sich auf die beigefügte Zeichnung bezieht.
  • In der Zeichnung:
  • - ruft Fig. 1 in Erinnerung, wie eine universelle Kopplungsvorrichtung einschließlich eines Mehrfachübertragungs-Controllers gemäß des Standes der Technik aufgebaut ist,
  • - zeigt Fig. 2 die verschiedenen wesentlichen Elemente einer universellen Kopplungsvorrichtung mit einem integrierten Mehrfachübertragungs-Controller gemäß der Erfindung,
  • - zeigt Fig. 3 die verschiedenen wesentlichen Elemente des Mehrfachübertragungs-Controllers
  • - legt Fig. 4 die interne Busstruktur des Mehrfachübertragungs-Controllers genauer dar,
  • - zeigt Fig. 5 die verschiedenen Datenwege, die über den Mehrfachübertragungs-Controller verlaufen,
  • - legen Fig. 6 bis 11 die interne Struktur jedes der jedem Kanal zugeordneten Register, die zum Mehrfachübertragungs- Controller gehören, genauer dar,
  • - zeigt Fig. 12 die Deskriptorentabelle für die Datenpakete, die sich in dem Speicher SRAM befindet, in dem Fall, in dem die Nutzdatenübertragung in dem "Array Chaining" genannten Modus durchgeführt wird.
  • Im folgenden wird auf Fig. 2 Bezug genommen, die eine Weiterentwicklung der universellen Kopplungsvorrichtung GPUI nach Fig. 1 zeigt, die einen Mehrfachübertragungs-Controller verwendet.
  • Wie in dieser Figur zu sehen ist, ist der Mehrfachübertragungs- Controller, nämlich der CTMI, einerseits zwischen dem Dual- Port-Speicher VRAM und dem Coprozessor MPC und andererseits zwischen dem internen Bus B&sub1; des Mikroprozessors MPU und demselben Coprozessor MPC in Serie angeordnet. Zu diesem Zweck enthält der Mehrfachübertragungs-Controller CTMI einen internen Bus mit zwei Zweigen, wobei der eine Zweig BC die Verbindung des Speichers VRAM mit dem Coprozessor MPC ermöglicht und der andere Zweig BI&sub1; die Verbindung des internen Bus BI des Mikroprozessors mit dem Coprozessor ermöglicht. Der interne Bus BC des CMTI ist mit einem Bus B&sub2; verbunden, der wiederum mit dem zweiten Anschluß SAM des Speichers VRAM verbunden ist. Ferner ist der BC mit einem Bus B&sub3; verbunden, der selbst mit dem Coprozessor MPC verbunden ist.
  • Aufgrund der Anordnung des Controllers CTMI in Serie zwischen dem MPC und dem VRAM und zwischen dem MPC und dem SRAM arbeitet dieser Controller in einer Weise, die als "Fly-by Mode" oder auch als Einfachzyklus (single cycle im Englischen) bezeichnet wird, was bedeutet, daß die Nutzdaten direkt zwischen einem der Speicher VRAM oder SRAM und dem Coprozessor MPC übertragen werden, ohne jemals in dem Coprozessor gespeichert zu werden, wobei der Nutzdatenfluß direkt durch den Controller über einen der beiden Zweige des internen Busses, d. h. entweder über den BC oder den Bus BC&sub1;, geht.
  • Dieser Controller besitzt wie der DMAC-Controller aus Fig. 1 zwei Kanäle des Typs DMA (Direct Memory Access im Englischen), nämlich einen Eingangskanal "in" und einen Ausgangskanal "out". Der Datendurchsatz innerhalb des Controllers CTMI kann bis zu 32 Megabyte pro Sekunde erreichen, wobei dieser Controller in zwei verschiedenen Modi arbeiten kann, nämlich im Normalmodus und in dem als "Array Chaining" bezeichneten Modus. Im Normalmodus werden die Daten in aufeinanderfolgenden Datenpaketen (Datenpaket heißt im Englischen "buffer", wobei von Fachleuten meist dieser Ausdruck benutzt wird) in Form von 32-Bit-Wörtern übertragen. Der MPU schreibt dann in eines der Register des CTMI die Adresse dieses Datenpaketes in dem Speicher VRAM (oder SRAM) ein, damit in diesen geschrieben oder aus diesem gelesen werden kann, sowie die Länge (auch als Zählwert bezeichnet) des Datenpaketes, d. h. die Anzahl der Bytes, die das zu übertragende Datenpaket enthält. Wenn diese Angaben von dem betreffenden Register empfangen worden sind, beginnt der Controller CTMI, die Informationen in einen der beiden betrachteten Speicher zu schreiben oder aus diesem zu lesen. Es ist zu sehen, daß in diesem Modus der CTMI Slave des Mikroprozessors MPU ist. Im Gegensatz dazu teilt in dem "Array Chaining" genannten Modus der Mikroprozessor dem Controller CTMI nur die Adresse und den Zählwert des ersten zu übertragenden Datenpakets mit, wobei diese Angaben ebenfalls in eines der Register des Controllers eingeschrieben werden. Was die dem ersten folgenden Datenpakete betrifft, beginnt der Controller CTMI selbst die Adresse und den Zählwert in bezug auf jene in einer diese Informationen enthaltenden Deskriptorentabelle, die in dem Speicher SRAM enthalten ist, zu suchen, wobei ein gegebener Deskriptor einem bestimmten Datenpaket zugeordnet ist. In diesem Modus können bis zu 15 aufeinanderfolgende Datenpakete übertragen werden. Genau vor der Übertragung dieser Pakete teilt der Mikroprozessor MPU dem CTMI mit, welches der erste der Deskriptoren ist und wieviele der Deskriptoren durch die Übertragung betroffen sind.
  • Auf gleiche Weise wie der Controller DMAC aus Fig. 1 vergibt der erfindungsgemäße Controller die höchste Priorität dem Eingangskanal (Übertragung der Daten von dem Coprozessor zu einem der beiden Speicher). Er kann den Ausgangskanal, wenn dieser gerade arbeitet (Übertragung der Daten von einem der beiden Speicher zu dem Coprozessor), am Ende der Übertragung eines Datenpakets unterbrechen oder diesen für die gesamte Datenübertragung sperren, d. h. für die Übertragung der Gesamtheit der betreffenden Datenpakete.
  • Ein Kanal wird aktiv genannt, wenn er für die Durchführung einer Datenübertragung von oder zu dem Coprozessor freigegeben ist: das bedeutet, daß, wenn dieser letzte eine DMA-Übertragung anfordert, der betreffende Kanal (für den Eingang oder den Ausgang) die Übertragung durchführen kann.
  • Wenn der Eingangskanal und der Ausgangskanal gleichzeitig aktiv sind, wird dies in der Fachsprache mißbräuchlich als Simultanübertragung bezeichnet, ohne daß dies deshalb bedeuten würde, daß die Daten derselben gleichzeitig physisch über die Datenbusse B&sub2;, BC, B&sub3; übertragen werden (die physische Datenübertragung wird durch den Multiplexer MULT zeitlich multiplexiert, siehe weiter unten).
  • Wenn der Speicher VRAM aus einer einzigen Speicherbank aufgebaut ist, kann eine gleichzeitige Übertragung auf allen beiden Kanälen erfolgen, jedoch ist dies mit einem Verlust an Leistung verbunden: tatsächlich bringt jede Unterbrechung eines Kanals durch einen anderen die Notwendigkeit mit sich, den Kontext der Übertragung, die auf dem unterbrochenen Kanal gerade durchgeführt worden ist, zu sichern.
  • Dies ist nicht der Fall, wenn der Speicher VRAM aus zwei getrennten Speicherbänken aufgebaut ist (z. B. aus zwei getrennten Speicherbänken mit jeweils einer Kapazität von 1 Megabyte). Dann bringt jede gleichzeitige Übertragung keinen Verlust an Leistung mit sich (es muß kein Sichern des Kontexts durchgeführt werden).
  • Gemäß einer zweckmäßigen Ausführung der Erfindung umfaßt der Controller CTMI eine Paritätsbiterzeugung für jede Übertragung von Datenpaketen und für eine Paritätskontrolle.
  • Ferner unterstützt der Controller CTMI einen der mit "little endian" und "big endian" bezeichneten und durch die Hersteller INTEL bzw. MOTOROLA definierten Übertragungsmodi. Jeder dieser Modi besteht darin, eine Reihenfolge zu definieren, in der die Bits der Bytes zeitlich übertragen werden, d. h., ob diese von der höheren zur niedrigeren Wertigkeit oder umgekehrt übertragen werden. Die Anpassung eines der beiden Übertragungsmodi "little endian" oder "big endian" durch den erfindungsgemäßen Controller bedeutet, daß, wenn dieser Controller über den PSB Informationen in einem der Modi empfängt, die z. B. von einem Mikroprozessor des Typs 80386 von INTEL stammen, er in der Lage ist, die Konvertierung zwischen dem Modus "little endian" des letzten und dem durch den Mikroprozessor MPU eingenommen Modus "big endian" durchzuführen, wenn dieser vom Typ MOTOROLA ist, z. B. vom Typ 68030, (was in dem realisierten zweckmäßigen Beispiel der Kopplungsvorrichtung GPUI nach Fig. 2 der Fall ist).
  • Die Gesamtheit der Elemente des erfindungsgemäßen Controllers CTMI, die in Fig. 3 gezeigt sind, ist in einer einzigen Halbleiterkomponente bzw. einem Chip untergebracht.
  • Die Hauptelemente sind folgende:
  • - die Gesamtheit der sechs Register, die dem Eingangskanal zugeordnet sind, nämlich die Register MARI, MTCI, BARI, BTCI, CCRI, CSRI,
  • - die Gesamtheit der sechs Register, die dem Ausgangskanal zugeordnet sind, nämlich die Register MARO, MTCO, BARO, BTCO, CCRO, CSRO,
  • - der Eingangskanal-Controller CCI,
  • - der Ausgangskanal-Controller CCO,
  • - die Arbitrierungsvorrichtung ARB für Zugriffskonflikte auf den verschiedenen Datenwegen, die infolge der im voraus definierten Prioritäten zu den zwei Speichern VRAM, SRAM hin oder von diesen weg führen,
  • - die Synchronisationsvorrichtung für die verschiedenen Signale, die in den Mehrfachübertragungs-Controller CTMI eingegeben oder von diesem ausgegeben werden, nämlich SYN,
  • - den Multiplexer MULT zum zeitlichen Multiplexieren der für den einen oder den anderen der Eingangs- bzw. Ausgangskanäle bestimmten Datenpakete an den einen oder den anderen der Speicher VRAM, SRAM
  • - die Vorrichtung zur Steuerung des Zugriffs des Mikroprozessors auf den Coprozessor MPC, nämlich MPUCB,
  • - die internen Busse BC und BC&sub1;,
  • - die jeweiligen Schnittstellen des Controllers CTMI mit dem Coprozessor, dem Speicher VRAM und dem Mikroprozessor über die Busse B&sub3;, B&sub2;, BI, wobei diese Schnittstellen mit I&sub3;, I&sub2; bzw. I&sub1; bezeichnet werden.
  • Die Schnittstelle I&sub3; (siehe Fig. 3) empfängt Nutzdaten DU&sub1; und Steuerinformationen (Schreiben/Lesen) CO&sub1;, die vom Coprozessor MPC zum Mehrfachübertragungs-Controller CTMI und umgekehrt verkehren.
  • Die Schnittstelle I&sub2; empfängt Nutzdaten DU&sub2;, Adressierungsinformationen AD&sub2; und Steuerinformationen CO&sub2;, die zum oder vom Mikroprozessor MPU verkehren.
  • Die Schnittstelle I&sub3; empfängt Nutzdaten DU&sub3;, Adressierungsinformationen AD&sub3; und Steuerinformationen CO&sub3;, die zum oder vom Speicher VRAM verkehren.
  • Die Gesamtheit der dem Eingangskanal zugeordneten Register wird mit REGI bezeichnet, während die Gesamtheit der dem Ausgangskanal zugeordneten Register mit REGO bezeichnet wird.
  • Sowohl die Gesamtheit REGI als auch die Gesamtheit REGO enthalten Informationen, die dem erfindungsgemäßen Controller ermöglichen, Nutzdatenpakete über den einen oder den anderen der Eingangs- bzw. Ausgangskanäle zu dem einen oder dem anderen der zwei Speicher VRAM bzw. SRAM oder auch zum Coprozessor MPC zu übertragen. Die genauere Beschreibung jedes der Register, die die eine oder die andere der zwei Gesamtheiten REGI, REGO bilden, wird weiter unten im Zusammenhang mit den Fig. 6 bis 11 gegeben.
  • Der Eingangskanal-Controller CCI besteht in Wirklichkeit aus zwei Abschnitten, wovon der eine Slave-Zustandsmaschine genannt wird, hier mit CCIS bezeichnet, und der andere Master- Zustandsmaschine genannt wird, hier mit CCIM bezeichnet.
  • Die Slave-Zustandsmaschine CCIS steuert den Schreibzugriff des Mikroprozessors MPU auf alle Register des betreffenden Kanals, d. h. auf die Register, die zu REGI gehören. Sie führt ferner die Steuerung der Fehleranzeige in dem Register CSRI durch (genaueres siehe weiter unten).
  • Die Master-Zustandsmaschine CCIM steuert alle Operationen, die darin bestehen, die Informationen in den in dem Speicher SRAM enthaltenen Deskriptoren aufzufinden, wenn der Modus "Array Chaining" verwendet wird. Wenn es sich um den Normalmodus oder den Modus "Array Chaining" handelt, sendet sie darüber hinaus die Steuersignale (Schreiben/Lesen) sowohl für den Coprozessor MPC als auch für den einen oder den anderen der zwei Speicher SRAM bzw. VRAM. Dieselbe Maschine CCIM steuert außerdem das Aktualisieren der Adressenregister und der Zählregister von REGI.
  • Dieselbe Maschine CCIM führt außerdem die Übertragung von Nutzdatenseiten in dem Speicher VRAM durch. Es ist nämlich bekannt, daß das Beschreiben des Speichers VRAM (und auch das Lesen desselben) Seite um Seite und für jede Seite Zeile um Zeile durchgeführt wird (siehe die obenerwähnte französische Patentanmeldung 91.08908). Die durch die Master-Zustandsmaschine CCIM organisierte Übertragung von Nutzdatenseiten in dem Speicher VRAM berücksichtigt die Bedingungen, die in der technischen Notiz in bezug auf den betreffenden Video-RAM, z. B. in der Notiz in bezug auf den Video-RAM TOSHIBA mit der Bezugsnummer TC524256 des Typs Z-10, formuliert sind.
  • Der Ausgangskanal-Controller CCO ist in zwei Abschnitte unterteilt, nämlich in eine Slave-Zustandsmaschine CCOS und eine Master-Zustandsmaschine CCOM.
  • Die Slave-Zustandsmaschine CCOS steuert alle Zugriffe des Mikroprozessors MPU auf alle Register des betreffenden Kanals, d. h. auf jene der Gesamtheit REGO. Ferner führt sie die Steuerung der Fehleranzeige in dem Register CSRO durch (siehe weiter unten).
  • Die Master-Zustandsmaschine CCOM steuert die Operation, die darin besteht, die Informationen in den in dem Speicher SRAM enthaltenen Deskriptoren in dem Fall aufzufinden, in dem im Modus "Array Chaining" gearbeitet wird, und sie steuert außerdem die DMA-Übertragungsoperationen (sowohl im Normalmodus als auch im Modus "Array Chaining"), d. h. sie steuert die Steuersignale für den Coprozessor MPC und den einen oder den anderen der zwei Speicher SRAM bzw. VRAM sowie das Aktualisieren der Adressenregister und der Zählregister der Gesamtheit REGO.
  • Die Seitenübertragung von dem Speicher VRAM wird unter den durch das technische Handbuch für den Speicher VRAM, z. B. von TOSHIBA mit der Bezugsnummer 524256, definierten Bedingungen ebenfalls über diese Master-Zustandsmaschine CCOM durchgeführt.
  • Im folgenden wird das Element MPUCB betrachtet.
  • Diese Element steuert den Zugriff des Mikroprozessors auf den Coprozessor MPC. Eigentlich delegiert in diesem Fall der Mikroprozessor seine Befugnis über den MPUCB an den Controller CTMI. Dieser MPUCB führt für den MPU die Steuerung der Quittierungssignale der Datenübertragung durch, die unter ihrer angelsächsischen Abkürzung DSACK (für Data Transfer Acknowledge, zum Mikroprozessor MOTOROLA 68030 gehörende Signale) bekannter ist. Es empfiehlt sich zu präzisieren, daß im Rahmen der universellen Kopplungsvorrichtung nach Fig. 1 die durch das Element MPUBC ausgefüllten Funktionen durch den Mikroprozessor MPU selbst umgesetzt werden.
  • Im folgenden werden die Fig. 4 und 5 betrachtet, die ein besseres Verständnis für die Arbeitsweise der Arbitrierungsvorrichtung ARB ermöglichen.
  • Die Vorrichtung ARB ist einerseits verantwortlich für die Zuweisung eines Datenweges an den, der einen solchen anfordert, wobei der letzte der eine oder der andere der zwei Eingangs- bzw. Ausgangskanäle oder der Mikroprozessor ist, und dient andererseits zur Lösung der Konflikte, die auftreten können, wenn gleichzeitige Anforderungen durch verschiedene Elemente (z. B. durch den Mikroprozessor und den Coprozessor auf den einen oder den anderen der zwei Kanäle) bewirkt werden. Die verschiedenen benutzten Datenwege sind in Fig. 5 gezeigt. Physisch werden sie durch die in Fig. 4 gezeigte physische Struktur unterstützt und benutzen den einen oder den anderen der zwei Zweige BC oder BC&sub1;, wobei BC mit den Schnittstellen I&sub3; und 12 verbunden ist, und BC&sub1; der abgeleitete Zweig ist, der einerseits mit dem BC und andererseits mit der I&sub1; verbunden ist. In derselben Fig. 4 ist zu sehen, daß die Registergesamtheit REG an den Hauptzweig BC über einen sekundären Zweig des Busses BC&sub2; angeschlossen ist. Die interne physische Struktur der Busse BC, BC&sub1;, BC&sub2; ist identisch.
  • In Fig. 5 sind die verschiedenen Möglichkeiten zu sehen, die die Arbitrierungsvorrichtung berücksichtigen muß, bevor sie ihre Entscheidung trifft. Die verschiedenen Datenwege sind nämlich folgende:
  • Der Datenweg A leitet die Daten vom Coprozessor MPC über den Bus BC zum Speicher VRAM. Für diesen Datenweg führt der CTMI die Operationen durch. Dieser wird auch als Master für die Übertragung bezeichnet.
  • Der Datenweg B leitet die Daten des Coprozessors über den BC, dann über den BC&sub1; und den internen Bus B&sub1; zum Speicher SRAM und umgekehrt. Für diesen Datenweg ist der Controller CTMI der Master.
  • Der Datenweg C besteht im Beschreiben oder Lesen der Register des Coprozessors MPC. Für diesen Datenweg ist der Mikroprozessor MPU der Master.
  • Der Datenweg D ist der, der im Lesen oder Beschreiben der Register der Gesamtheit REG (REGI + REGO) besteht. Für diesen Datenweg ist der Mikroprozessor MPU der Master.
  • Der Datenweg E besteht im Auffinden der Daten in der Deskriptorentabelle in dem Speicher SRAM. Für diesen Datenweg ist der Controller CTMI der Master.
  • Was die Datenwege D und E betrifft, ist deutlich, daß der eingeschlagene physische Weg der über B&sub1; + BC&sub1; + BC&sub2; ist.
  • Die Zugriffe auf bestimmte Datenwege sind konfliktbehaftet. Dies gilt für die Datenwege A und B oder A und C. Die Zugriffe auf die Datenwege A und D oder A und E sind ebenfalls konfliktbehaftet. Bei anderen Zugriffen sind der eine oder der andere exklusiv. Dies gilt für C und D oder B und E. Unter Berücksichtigung des oben beschriebenen sind die wesentlichen Merkmale des durch die Vorrichtung ARB durchgeführten Arbitrierungsschemas folgende:
  • - der Eingangskanal hat eine höhere Priorität als der Ausgangskanal,
  • - eine momentane DMA-Anforderung auf einen Eingangskanal, solange der Ausgangskanal aktiv ist, besitzt Priorität gegenüber dem letzten, und der Ausgangskanal muß den Bus (BC, BC&sub1;) so früh als möglich freigeben,
  • - im Verlauf der Seitenübertragungen zum oder vom Dual-Port- Speicher VRAM, auch wenn keine Übertragungsaktivität auf dem Bus BC des CTMI stattfindet, bleibt dieser letzte dennoch aktiv, da der serielle Anschluß des Speichers VRAM in die Übertragung einbezogen bleibt,
  • - die Zugriffe des Mikroprozessors MPU auf diese internen Busse (BC, BC&sub1;) des Controllers CTMI müssen warten, bis der Bus frei ist.
  • Im folgenden werden die Fig. 6 bis 11 betrachtet.
  • Fig. 6 zeigt den Inhalt des einen oder des anderen der zwei Register CCRI bzw. CCRO (die verschiedenen Bits, die diese enthalten, besitzen unabhängig vom Kanal eine gleiche Bedeutung).
  • Es ist zu sehen, daß das Steuerregister des Kanals CCRI (oder CCRO) 8 Bits enthält, nämlich STR, SAB, INTE, ARCH, PTYD, ENDIAN, DBK, HP. Die Bedeutung jedes dieser Bits ist folgende, wobei bekannt sein sollte, daß der grundsätzliche Zweck dieses Steuerregisters CCRI (oder CCRO) darin besteht, der Steuervorrichtung für den Kanal CCI (oder CCO) die notwendigen Parameter zu liefern, die dieser die Art und Weise angeben, in der sie arbeiten muß (im Normalmodus, in den Modi "Array Chaining", "big endian" oder "little endian" usw.).
  • Das Bit STR (was Start Channel bedeutet) wird vom Mikroprozessor mit dem Ziel auf 1 gesetzt, den betreffenden Kanal (den Eingangskanal für das CCRI, den Ausgangskanal für das CCRO) zu aktivieren. Um dieses Bit auf 1 setzen zu können, ist es notwendig, daß die 4 Register BARI, BTCI, MARI, MTCI, die Register für die Adresse und den Zählwert, bereits programmiert sind. Dann kann die Anforderung auf eine Benutzung des DMA- Kanals durch den Coprozessor MPC quittiert werden. Dies bedeutet, daß der letzte ein Quittierungssignal an die betreffende Kanalsteuervorrichtung CCI (oder CCO) schickt. Ein Fehler kann auftreten, wenn mehrere Bedingungen erfüllt sind, so daß dasselbe Bit STR gleich 1 ist. Dies kann z. B. eintreten, wenn der Inhalt des Zählers MTC (siehe weiter unten) null ist, so daß gleichzeitig der Inhalt des Bits ARCH null ist (d. h. in diesem Fall, daß der Modus "Array Chaining" nicht verwendet wird). Dies kann außerdem eintreten, wenn das Bit SAB gleich 1 ist (siehe Bedeutung von SAB weiter unten) oder auch wenn der in Frage kommende Kanal bereits aktiv ist oder auch wenn die Übertragung auf dem Kanal gerade beendet wird. Dies kann ferner eintreten, wenn der Inhalt des Registers BTCI null ist, falls der Modus "Array Chaining" angewandt wird (siehe Beschreibung des Registers BTCI weiter unten).
  • Wenn ein Fehler aufgetreten ist, wird ein Fehlerbit in dem Register CSRI auf 1 gesetzt (siehe weiter unten, an gleicher Stelle, an der die Bedeutung des Fehlers in demselben Register angegeben ist). In diesem Fall wird eine Unterbrechung an den Mikroprozessor geschickt, wenn das in dem CCRI (oder CCRO) enthaltene Bit INTE gleich 1 ist. Wenn ein Fehler aufgetreten ist, werden die anderen Bits desselben Registers nicht weiter beschrieben und bleiben unverändert.
  • Das Bit SAB, wenn es durch den Mikroprozessor MPU auf 1 gesetzt ist, bedeutet, daß dieser den Befehl ausgibt, den betreffenden Kanal zu deaktivieren, wodurch jegliche Übertragung, unmittelbar nachdem das letzte Wort des letzten Paktes an den gewünschten Ort (im VRAM, SRAM oder MPC) übertragen worden ist, gesperrt wird. In diesem Fall wird das in dem Register CSRI oder CSRO enthaltene Bit ERR auf 1 gesetzt, wenn in diesem Register gleichzeitig angegeben wird, daß es sich um einen Befehl des Mikroprozessors handelt, den betreffenden Kanal zu deaktivieren.
  • Das Bit INTE bedeutet, wenn es durch den Mikroprozessor MPU auf 1 gesetzt ist, daß jede momentane oder künftige Unterbrechung, auf dem betreffenden Kanal für gültig erklärt wird. Der Wert dieses Bits kann nur geändert werden, wenn der betreffende Kanal inaktiv ist (Bit ACT = 0 in dem Register CSRI oder CSRO).
  • Das durch den Mikroprozessor MPU auf 1 gesetzte Bit ARCH validiert die Anwendung des Modus "Array Chaining" für eine DMA-Übertragung auf dem betreffenden Kanal. Wenn dieses Bit gleich 0 ist, wird der Normalmodus angewandt. Der Wert dieses Bits kann nur geändert werden, wenn der betreffende Kanal inaktiv ist (Bit ACT = 0, siehe weiter unten).
  • Das durch den Mikroprozessor auf 1 gesetzte Bit PTYD, das nur auf dem Ausgangskanal verwendet wird, setzt die Paritätskontrolle für die Datenübertragung zwischen dem Speicher VRAM und dem Coprozessor außer Kraft. Wenn dieses Bit gleich 0 ist, ist die Paritätskontrolle wirksam. Dieses Bit kann nur geändert werden, wenn der betreffende Kanal inaktiv ist (Bit ACT = 0).
  • Das durch den Mikroprozessor MPU auf 1 gesetzte Bit ENDIAN bedeutet, daß für die Datenübertragungen zwischen dem einen oder dem anderen Speicher SRAM bzw. VRAM und dem Coprozessor der Modus "big endian" gewählt wird. Wenn dieses Bit gleich 0 ist, wird der Modus "little endian" gewählt. Es soll angemerkt werden, daß einer der beiden Kanäle im Modus "big endian" arbeiten kann, während der andere im gegensätzlichen Modus arbeitet. Der Wert dieses Bits ENDIAN kann nur geändert werden, wenn der Kanal inaktiv ist.
  • Das Bit DBK (was die Abkürzung für Dual Bank Mode ist) wird nur für die Übertragung zu dem Dual-Port-Speicher VRAM verwendet. Es wird durch den Mikroprozessor auf 1 gesetzt hinsichtlich der Zuweisung einer getrennten Speicherbank an jeden Kanal. Wenn das Bit DBK gleich 0 ist, weist dies auf den Modus "single bank" hin, d. h., daß die Daten nur über einen Kanal auf einmal übertragen werden können.
  • Das Bit HP definiert einen Betriebsmodus, der Prioritätsmodus (High Priority Mode) genannt wird und nur auf dem Eingangskanal anwendbar ist, während der Ausgangskanal gesperrt ist (ein gesperrter Kanal ist ein aktiver Kanal, dessen vom Coprozessor MPC stammenden DMA-Anforderungen maskiert oder gesperrt werden; er erkennt die Anforderungen also nicht und kann diese somit nicht beantworten). In diesem Prioritätsmodus wird das Bit HP durch den MPU auf 1 gesetzt. Wenn HP gleich 0 ist, weist dies auf den Normalmodus hin.
  • Im folgenden wird Fig. 7 betrachtet.
  • Das Zustandsregister CSRI des Eingangskanals (CSRO für den Ausgangskanal) gibt den Betriebszustand des betreffenden Kanals an und enthält die 8 folgenden Bits:
  • Das Bit COC (englische Abkürzung für Channel Operation Completed) wird durch die betreffende Kanalsteuervorrichtung CCI (oder CCO) gleich 1 gesetzt, wenn eine Übertragung auf dem Kanal gerade beendet ist. Es wird also gleich 1 gesetzt, sowie eine Übertragung eines Datenpakets im Normalmodus beendet ist oder wenn eine Übertragung im Modus "Array Chaining" beendet ist oder wenn das Bit SAB in dem CCRI (oder CCRO) gleich 1 ist, wenn während der Übertragung (nur auf dem Ausgangskanal) ein Paritätsfehler aufgetreten ist, wenn irgendein Fehler aufgetreten ist (z. B. wenn der betreffende Kanal aktiv ist und versucht wird, entweder das CCRI oder das CSRI neu zu beschreiben) sowie wenn ein Zählfehler aufgetreten ist. Wenn das Bit COC gleich 1 ist, wird eine Unterbrechung an den Mikroprozessor gesendet, falls das Bit INTE gleich 1 ist.
  • Das ebenfalls durch die Steuervorrichtung CCI (oder CCO) auf 1 gesetzte Bit ACT gibt an, daß der betreffende Kanal aktiv ist. Sowie eine Übertragung über diesen Kanal beendet ist, wird dieses Bit auf 0 gesetzt. Die Bedingungen, unter denen eine Übertragung beendet wird, sind jene, die oben in dem das Bit COC betreffenden Absatz beschrieben worden sind.
  • Das Bit ERR gibt an, daß ein Fehler aufgetreten ist: es wird durch die Vorrichtung CCI (CCO) auf 1 gesetzt, sobald ein Fehler auftritt, d. h., wenn entweder SAB gleich 1 ist, wenn ein Paritätsfehler aufgetreten ist, wenn ein Fehler während der momentanen Operation aufgetreten ist oder wenn ein Zählfehler in einem der Zählregister BTCI oder MTCI aufgetreten ist.
  • Die zwei Bits ERR0, ERR1 geben gemeinsam an, welcher Art der aufgetretene Fehler ist. Wenn sie beide gleich 0 sind, handelt es sich um einen aufgrund der Übertragung aufgetretenen Fehler. Wenn ERR1 gleich 0 ist, während ERR0 gleich 1 ist, handelt es sich um einen Zählfehler, entweder im Register MTCI (oder MTCO) oder auch im Register BTCI (oder BTCO).
  • Wenn ERR1 gleich 1 ist, während ERR0 gleich 0 ist, handelt es sich um einen Paritätsfehler, und wenn die zwei Fehlerbits beide gleich 1 sind, handelt es sich um ein Außerkraftsetzen des betreffenden Kanals durch den Mikroprozessor (SAB = 1).
  • Im folgenden wird Fig. 8 betrachtet.
  • Das Basiszählregister BTCI (oder BTCO) für die Übertragung, ist ein Zählregister mit 8 Bits, das die Anzahl der Deskriptoren auf dem betreffenden Kanal im Modus "Array Chaining" angibt. In dem hier beschriebenen Ausführungsbeispiel können in diesem Modus einer Übertragung bis zu 15 Deskriptoren zugewiesen werden.
  • Dieses Register muß in den Bits der Wertigkeit 0 bis 3, nämlich den Bits BTC0 bis BTC3, mit einem Wert ungleich null belegt sein, auf daß das Bit STR in dem betreffenden Register CCRI (oder CCRO) nicht mit 1 belegt ist. Wenn dies nicht der Fall ist, wird das Fehlerbit in dem CSRI auf 1 gesetzt, und durch die zwei Bits ERR0 und ERR1 wird ein Zählfehler angezeigt. Der Zähler BTCI wird jedesmal, wenn die Steuervorrichtung CCI einen Deskriptor (Deskriptor, dessen Inhalt aus dem SRAM gelesen worden ist) in die Register MARI und MTCI lädt, um eine Einheit dekrementiert. Wenn der BTCI sowie der MTCI (siehe auch bezüglich des letzten die Beschreibung weiter unten) gleich 0 sind, sobald ein Übertragungszyklus beendet ist, wird das Bit COC in dem betreffenden Register CSRI (oder CSRO) auf 1 gesetzt. Das Bit ACT wird dann auf 0 gesetzt, und eine Unterbrechung wird an den Mikroprozessor gesendet, wenn diese validiert worden ist.
  • Im folgenden wird Fig. 9 betrachtet.
  • Das Zählregister für den Übertragungsspeicher, nämlich MTCI (oder MTCO) ist ein Register mit 18 Bits, das die Übertragungslänge in Bytes angibt, wenn der Normalmodus gewählt ist. In dem Modus "Array Chaining" wird es durch den betreffenden Kanal-Controller CCI auf der Grundlage eines Deskriptors aus dem Speicher SRAM geladen. Die zwei niedrigerwertigen Bits, nämlich den Wertigkeiten 0 und 1, sind immer gleich 0. In diesem Fall zählt der Zähler MTCI (MTCO) nur 32-Bit-Worte. Tatsächlich zählt der MTCI, der mit 16 Bits zählt, nur jedes vierte Byte, da die Bits mit den Wertigkeiten 0 und 1 gleich 0 sind. Es werden somit tatsächlich 32-Bit-Worte gezählt. Die Werte ungleich null für die Bits mit den Wertigkeiten 0 und 1 werden ignoriert.
  • Die maximale Übertragungslänge im Normalmodus beträgt 256 Kilobyte - 4, während diese im Modus "Array Chaining" 2 Megabyte (maximale Größe des VRAM in dem hier beschriebenen Ausführungsbeispiel) beträgt. Wenn der Inhalt des MTCI (oder MTCO) gleich 0 ist, falls der betreffende Kanal im Normalmodus aktiviert ist, wird ein Zählfehler in dem CSRI (oder CSRO) angezeigt und eine Unterbrechung erzeugt. Wenn für einen gegebenen Deskriptor der Inhalt des MTCI gleich 0 ist, wird ebenfalls in dem betreffenden Register CSRI oder CSRO ein Zählfehler angezeigt und dies zu dem Zeitpunkt, zu dem in das MTCI der betreffende Deskriptor geladen wird (ein Deskriptor kann nur geladen werden, wenn das MTCI einen vorherigen Inhalt gleich 0 aufweist). Während einer Übertragungsoperation wird der Inhalt des MTC jedesmal, wenn ein Wort übertragen ist, um 4 dekrementiert (jedes 32-Bit-Wort umfaßt 4 Bytes).
  • Im folgenden wird Fig. 10 betrachtet.
  • Das Basisregister BARI (oder BARO) für die Adressen ist ein Register mit 21 Bit, das mit der Startadresse der Deskriptorentabelle des betreffenden Kanals programmiert wird. Dieses Register wird wohl bemerkt nur im Modus "Array Chaining" verwendet. Dieses Bits sind mit BAR2 bis BAR20 bezeichnet, wobei die ersten zwei Bits mit der Wertigkeit 0 und 1 ständig gleich 0 sind. Die Bits BAR0 bis BAR6 bilden einen Adressenzähler, während die Bits BAR7 bis BAR20 zur Adressierung des ganzen Speichers SRAM dienen.
  • Jeder Deskriptor enthält zwei Abschnitte, von denen jeder aus einem 32-Bit-Wort besteht (4 Bytes). Der erste enthält den Rahmenzählwert, d. h. die Länge des Rahmens (buffer) in 32-Bit- Worten, die für die Übertragung zum oder vom Speicher VRAM oder SRAM vorgesehen ist. Der zweite enthält die Adresse, von der ausgehend dieser Rahmen in denselben Speicher geschrieben oder aus demselben gelesen wird. In einer solchen Tabelle können bis zu 16 Deskriptoren adressiert werden, von denen nur 15 wirklich durch den Kanal verwendet werden (z. B. wird der Deskriptor 0 nicht verwendet). Sobald ein Wort eines Deskriptors aus der Tabelle durch den Kanal-Controller CCI gelesen worden ist, werden die Bits BAR0 und BAR6 um 4 inkrementiert, um auf das nachfolgende Wort zu zeigen. Dieses Wort kann entweder das zweite Wort (Rahmenadresse) desselben Deskriptors oder das erste Wort des nachfolgenden Deskriptors sein.
  • Im folgenden wird Fig. 11 betrachtet.
  • Das Speicheradressenregister MARI (oder MARO) ist ein Zählregister mit 23 Bit, das mit der Startadresse des Datenpakets im Speicher VRAM programmiert wird, das im Normalmodus in diesen übertragen oder aus diesem empfangen werden soll. Im Modus "Array Chaining" wird dieses Register MARI (oder (MARO) durch den Kanal-Controller CCI (oder CCO) auf der Grundlage eines Deskriptors aus dem Speicher SRAM geladen. Wie oben bereits erwähnt worden ist, wird sein Inhalt nach jeder Übertragung eines Wortes um 4 inkrementiert. Das Bit MAR22 ermöglicht dem Kanal-Controller CCI, zwischen dem Speicher VRAM und SRAM zu unterscheiden. Wenn dieses letzte Bit gleich 0 ist, handelt es sich um den Speicher VRAM. Wenn es gleich 1 ist, handelt es sich um den Speicher SRAM.
  • In bezug auf den Speicher VRAM, der in Seiten mit 2 Kilobyte organisiert ist (siehe die obenerwähnte französische Patentanmeldung), unterteilt sich das Speicheradressenregister (MARI, MARO) in zwei getrennte Zähler, nämlich einerseits in einen Wortadressenzähler PAR, der bei jeder Übertragung eines Wortes zwischen dem Coprozessor MPC und dem seriellen Anschluß des Speichers VRAM inkrementiert wird, und andererseits in einen Seitenadressenzähler WAR, der nach jeder Seitenübertragung inkrementiert wird, wenn der Inhalt des zuvor genannten Wortadressenzählers null ist. Für Übertragungen zum Speicher SRAM werden die zwei zuvor genannten Zähler verknüpft, so daß sie einen Zähler mit 19 Bit bilden. Was den Ausgangskanal betrifft, gibt es ferner nur einen einzigen Zähler mit 19 Bit.
  • Im folgenden wird Fig. 12 betrachtet, die zeigt, wie eine Deskriptorentabelle für eine Übertragung im Modus "Array Chaining" aufgebaut ist. Diese im Speicher SRAM enthaltene Tabelle umfaßt z. B. 16, von 0 bis 15 durchnumerierte Deskriptoren.
  • Diese Tabelle enthält eine Startadresse als Adresse, unter der der erste Deskriptor 0 zu finden ist. Nach Übereinkunft ist dieser erste Deskriptor leer. Der Deskriptor 1 enthält den Zählwert und die Adresse in bezug auf das erste zu übertragende Datenpaket usw. bis zum Deskriptor 15, der den Zählwert und die Adresse in bezug auf das 15-te zu übertragende Datenpaket enthält.
  • Es sei daran erinnert, daß jeder Deskriptor den Zählwert und die Adresse in bezug auf das zu übertragende Datenpaket enthält, das ihm in (oder aus) dem VRAM oder SRAM entspricht, wobei der Zählwert dazu vorgesehen ist, an das MTCI (oder MTCO) und die Adresse an das MARI (oder MARO) geschickt zu werden.
  • Im Modus "Array Chaining" beginnt der Controller CTMI über seinen Kanal-Controller CCI (oder CCO) die Adresse des in der Deskriptorentabelle im Speicher SRAM nachfolgenden Deskriptors zu suchen, sobald ein Rahmenpaket übertragen ist.
  • Es gibt keine besondere Einschränkung für eine festgeschriebene Anordnung der einem Kanal entsprechenden Deskriptorentabelle innerhalb des Speichers SRAM mit der Ausnahme, daß die Deskriptoren derselben Tabelle hintereinander angeordnet sein müssen.
  • Wenn eine Übertragung durchgeführt werden soll, wird das Register BARI (oder BARO) mit der Adresse des ersten Deskriptors in der Deskriptorentabelle des Speichers SRAM programmiert. Dieses Register wird um 8 erhöht, um die Adresse des nachfolgenden Deskriptors zu erhalten. Wenn dem Mehrfachübertragungs-Controller eine DMA-Anforderung geschickt wird, lädt sein Kanal-Controller CCI das erste, den Rahmenzählwert angebende Wort des durch das Register BARI (oder BARO) angezeigten Deskriptors in das MTCI. Danach wird der Inhalt des BARI (oder (BARO) um 4 inkrementiert, und das zweite Wort des Deskriptors im Speicher SRAM wird durch den CCI gelesen und in das Register MARIl (oder MARO) geladen. Es dreht sich also um die Adresse, unter der der betreffende Rahmen in dem Speicher VRAM oder SRAM abgelegt wird oder aus denselben gelesen wird. Anschließend wird das BARI oder BARO wieder um 4 inkrementiert, so daß es auf den nachfolgenden Deskriptor zeigt, und das Register BTCI (BTCO) wird um 1 inkrementiert. Der Rahmenzählwert wird danach durch den CTMI überprüft usw., wenn der Zählwert ungleich null ist. Falls dieser null ist, werden die Fehlerbits ERR in dem Register CSRI (oder CSRO) auf 1 gesetzt. Der Kanal wird dann inaktiv, das Bit COC wird auf 1 gesetzt und eine Unterbrechung an den Mikroprozessor geschickt, wenn diese validiert ist.

Claims (8)

1. Universelle Vorrichtung (GPUI) zur Kopplung eines Rechnerbusses (PSB) mit einem Controller (DEA) einer Gruppe von Peripheriegeräten, die miteinander über eine spezifische Verbindung verbunden sind, mit der der Controller physisch verbunden ist, mit:
- einem Mikroprozessor (MPU), dem wenigstens ein Speicher (SRAM) zugeordnet ist, der sein eigenes Betriebssystem enthält, und einen internen Bus (BI) besitzt,
- einer Schnittstelle (IHA) für die Verbindung mit dem Controller (DEA) der Peripheriegerät-Gruppe, die die Übertragung von Datenrahmen entweder zur Verbindung oder zum Bus sicherstellt,
- einem Doppelanschluß-Puffer-Arbeitsspeicher (VRAM), der über einen ersten Bus (B&sub1;) mit der Schnittstelle (IHA) verbunden ist und mit dem Rechnerbus über eine spezifische Schnittstelle (MPC) dieses Busses verbunden ist, wobei die Datenübertragung zwischen der Verbindungsschnittstelle (IHA) und dem Doppelanschluß-Speicher einerseits und zwischen diesem (VRAM) und dem Rechnerbus (PSB) andererseits durch den Mikroprozessor (MPU) organisiert wird,
dadurch gekennzeichnet, daß die Übertragung von Informationen zwischen dem Doppelanschluß-Speicher und dem Rechnerbus einerseits und zwischen dem Rechnerbus und dem dem Mikroprozessor zugeordneten Speicher andererseits unter der Steuerung eines Mehrfachübertragungs-Controllers (CTMI) erfolgt, der zwischen der spezifischen Schnittstelle des Rechnerbusses und dem Doppelanschluß-Arbeitsspeicher (VRAM) in Serie geschaltet ist, wobei der Mehrfachübertragungs-Controller über den zweiten Bus (B&sub2;) mit dem Doppelanschluß-Speicher und über einen dritten Bus (B&sub3;) mit der spezifischen Schnittstelle verbunden ist, wobei die Übertragung auf einem ersten logischen Datenausgangskanal und auf einem zweiten logischen Dateneingangskanal erfolgt, wobei diese zwei Kanäle einer ersten bzw. einer zweiten Gesamtheit von Registern (REGI, REGO) zugeordnet sind, die durch den Mikroprozessor programmiert werden, um in sie Informationen einzuschreiben, die die Organisation jeder Übertragung auf dem ersten und auf dem zweiten Kanal ermöglichen,
wobei der Übertragungs-Controller enthält:
a) einen zentralen Bus (BC, BC1), der einerseits über eine erste Schnittstelle (I&sub3;) mit dem dritten Bus (B&sub3;) und andererseits über eine zweite Schnittstelle (I&sub1;) mit dem internen Bus (BI) des Mikroprozessors und über eine dritte Schnittstelle (I&sub2;) mit dem zweiten Bus (B&sub2;) verbunden ist, wobei die Register jeder der zwei Gesamtheiten (REGI, REGO), die einem Kanal zugeordnet sind, mit diesem zentralen Bus verbunden sind,
b) einen ersten und einen zweiten Kanal-Controller (CCI, CCO), die dem ersten bzw. dem zweiten Kanal zugeordnet sind und mit jedem der Register der demselben Kanal zugeordneten Gesamtheit (REGI, REGO) verbunden sind,
c) eine Arbitrierungsvorrichtung (ARB), die einerseits über die zweite Schnittstelle (I&sub1;) mit dem Mikroprozessor (MPU) und andererseits mit jedem der Kanal-Controller (CCI, CCO) verbunden ist,
wobei die Arbitrierungsvorrichtung (ARB), die die Zuweisung jedes der zwei Kanäle an den zu den verschiedenen Speichern oder dem Mikroprozessor führenden Datenweg entsprechend im voraus definierter Prioritäten festlegt und wobei die Kanal- Controller (CCI, CCO) für den Kanal, der ihnen zugeordnet ist, einerseits den Schreibzugriff des Mikroprozessors auf die diesem Kanal zugeordneten Register (REGI, REGO) und andererseits die Datenübertragung bei einem Direktspeicherzugriff auf einen der Speicher steuern.
2. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß der Übertragungs-Controller einen Multiplexer (MULT) enthält zum zeitlichen Multiplexieren der für den einen oder den anderen der Eingangs- bzw. Ausgangskanäle bestimmten Datenpakete an die Speicher, wobei dieser Multiplexer einerseits mit der zweiten Schnittstelle (I&sub1;) und andererseits mit jedem der zwei Kanal-Controller verbunden ist.
3. Vorrichtung nach irgendeinem der Ansprüche 1, 2, dadurch gekennzeichnet, daß der Übertragungs-Controller eine Vorrichtung (SYN) zur Synchronisation der verschiedenen Signale enthält, die in den Übertragungs-Controller eingegeben oder von diesem ausgegeben werden, die einerseits mit der zweiten Schnittstelle (I&sub1;) und andererseits mit dem ersten und mit dem zweiten Kanal-Controller verbunden ist.
4. Vorrichtung nach einem der Ansprüche 1, 2, 3, dadurch gekennzeichnet, daß der Übertragungs-Controller außerdem eine Vorrichtung (MPUCB) zur Steuerung des Zugriffs des Mikroprozessors auf die spezifische Schnittstelle (MPC) des Rechnerbusses enthält, die einerseits mit der ersten Schnittstelle (I&sub3;) und andererseits über die zweite Schnittstelle (I&sub1;) mit dem internen Bus (BI) des Mikroprozessors (MPU) verbunden ist.
5. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß der erste Kanal-Controller eine Slave-Zustandsmaschine (CCIS) und eine Master-Zustandsmaschine (CCIM) enthält, wobei die Slave-Zustandsmaschine die Schreibzugriffe des Mikroprozessors auf sämtliche Register des ersten Kanals steuert und darüber hinaus die Fehleranzeigesteuerung in einem diesem Kanal zugeordneten besonderen Register (CSRI) ausführt.
6. Vorrichtung nach einem der Ansprüche 1 und 5, dadurch gekennzeichnet, daß der zweite Kanal-Controller eine Slave- Zustandsmaschine (CCOS) und eine Master-Zustandsmaschine (CCOM) enthält, wobei die Slave-Zustandsmaschine sämtliche Zugriffe des Mikroprozessors (MPU) auf sämtliche Register des zweiten Kanals steuert und darüber hinaus die Fehleranzeigesteuerung in einem besonderen Register (CSRO) desselben Kanals ausführt.
7. Vorrichtung nach einem der Ansprüche 1, 5, 6, dadurch gekennzeichnet, daß sie im Deskriptor-Verkettungsmodus oder "Array Chaining"-Modus arbeitet, der darin besteht, automatisch eine Folge aus n Datenpaketen nacheinander von den Speichern oder an die Speicher zu übertragen, wobei den n Datenpaketen jeweils ein Datenpaket-Deskriptor zugeordnet ist, wobei die Gesamtheit von Deskriptoren, die mit jedem dieser Pakete in Beziehung stehen, in einen Speicher geschrieben werden, der dem Mikroprozessor zugeordnet und mit diesem letzteren über dessen internen Bus verbunden ist.
8. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, daß jeder Deskriptor zwei Teile enthält, wovon der erste den die Länge angebenden Datenpaket-Zählwert enthält, d. h. die Anzahl von binären Informationen, die jedes zu übertragende Datenpaket aufweist, und der zweite die Adresse enthält, an die das Datenpaket in dem Speicher, für den es bestimmt ist, geschickt werden muß.
DE1992628661 1991-12-19 1992-12-17 Universelles Ankopplungsgerät mit Steuerung für mehrfache Datenübertragungen zwischen einer Mehrzahl von Speichern und einem Rechnerbus Expired - Fee Related DE69228661T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9115814A FR2685512B1 (fr) 1991-12-19 1991-12-19 Controleur de transfert multiple de donnees entre une pluralite de memoires et un bus d'ordinateur.

Publications (2)

Publication Number Publication Date
DE69228661D1 DE69228661D1 (de) 1999-04-22
DE69228661T2 true DE69228661T2 (de) 1999-07-22

Family

ID=9420242

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1992628661 Expired - Fee Related DE69228661T2 (de) 1991-12-19 1992-12-17 Universelles Ankopplungsgerät mit Steuerung für mehrfache Datenübertragungen zwischen einer Mehrzahl von Speichern und einem Rechnerbus

Country Status (5)

Country Link
EP (1) EP0547976B1 (de)
JP (1) JP2571905B2 (de)
DE (1) DE69228661T2 (de)
FR (1) FR2685512B1 (de)
WO (1) WO1993012485A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2692381B1 (fr) 1992-06-15 1997-01-24 Bull Sa Systeme de transmission de donnees entre un bus d'ordinateur et une memoire de masse.
KR101652694B1 (ko) * 2010-05-04 2016-09-09 삼성전자주식회사 적응적 연산 장치 및 적응적 연산 장치 작동 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH077955B2 (ja) * 1989-05-13 1995-01-30 株式会社東芝 データ通信制御装置
FR2650412B1 (fr) * 1989-07-27 1991-10-11 Bull Sa Dispositif passerelle de connexion d'un bus d'ordinateur a un reseau fibre optique en forme d'anneau

Also Published As

Publication number Publication date
JPH06510878A (ja) 1994-12-01
FR2685512A1 (fr) 1993-06-25
DE69228661D1 (de) 1999-04-22
WO1993012485A1 (fr) 1993-06-24
EP0547976B1 (de) 1999-03-17
FR2685512B1 (fr) 1994-02-11
JP2571905B2 (ja) 1997-01-16
EP0547976A1 (de) 1993-06-23

Similar Documents

Publication Publication Date Title
DE69131840T2 (de) Verfahren zur Vervielfältigung eines geteilten Speichers
DE69130106T2 (de) Arbitrierung von paketvermittelten Bussen, einschliesslich Bussen von Multiprozessoren mit gemeinsam genutztem Speicher
DE3854594T2 (de) Programmierbare Steuerung mit parallelen Prozessoren.
DE3586487T2 (de) Kohaerentes interface mit zurueckgeschleiften sende- und empfangsspeichern.
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE69326429T2 (de) Netzwerkschnittstelle mit unabhängiger pufferverwaltung
DE3587378T2 (de) Abtastloser Nachrichtenkonzentrator und Multiplexer.
DE3689087T2 (de) Modularer Mehrfachportdatenknoten.
DE3854361T2 (de) Programmierbare Protokollvorrichtung.
DE3689226T2 (de) Multiprozessorsystem mit multihierarchischen Ebenen.
DE69030861T2 (de) Bus-Master-Steuerprotokoll
DE3751091T2 (de) Übertragungsprotokoll zwischen Prozessoren.
DE69028462T2 (de) Vorrichtung zur Verbindung von einer Steuereinheit mit parallelem Bus mit einem Kanal mit serieller Verbindung
DE3586486T2 (de) Interface-vorrichtung zwischen mindestens einem kanal und mindestens einem bus.
DE69334165T2 (de) Netzwerkanpassungseinrichtung mit hauptrechnerunterbrechung und indikationsverwaltung
DE69323861T2 (de) Multiprozessorsystem mit gemeinsamem Speicher
DE3689198T2 (de) Systembus für Kommunikation zwischen Prozessoren.
DE69230656T2 (de) Universelle Koppeleinrichtung zwischen einem Rechnerbus und einer Steuereinheit einer Gruppe von Periphergeräten
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
CH656728A5 (de) Schnittstellenschaltungsanordnung zur verbindung eines prozessors mit einem nachrichtenkanal.
CH522921A (de) Rechneranlage
DE69114961T2 (de) Vorrichtung für Zusammenschaltungskanäle.
DE4035837A1 (de) Bus-hauptschnittstellenschaltung mit transparenter unterbrechung einer datenuebertragungsoperation
DE69130946T2 (de) Verfahren zur ausschliesslichen steuerung für einen gemeinsamen speicher
DE69111764T2 (de) Übereinstimmungsprotokolle für Mehrprozessoren mit gemeinsam genutztem Speicher.

Legal Events

Date Code Title Description
8339 Ceased/non-payment of the annual fee