DE4003759C2 - Verfahren und Anordnung zur Übertragung von Daten über einen Bus zwischen selektiv ankoppelbaren Stationen - Google Patents

Verfahren und Anordnung zur Übertragung von Daten über einen Bus zwischen selektiv ankoppelbaren Stationen

Info

Publication number
DE4003759C2
DE4003759C2 DE4003759A DE4003759A DE4003759C2 DE 4003759 C2 DE4003759 C2 DE 4003759C2 DE 4003759 A DE4003759 A DE 4003759A DE 4003759 A DE4003759 A DE 4003759A DE 4003759 C2 DE4003759 C2 DE 4003759C2
Authority
DE
Germany
Prior art keywords
bus
data
station
lines
address
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
DE4003759A
Other languages
English (en)
Other versions
DE4003759A1 (de
Inventor
Andreas Bechtolsheim
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of DE4003759A1 publication Critical patent/DE4003759A1/de
Application granted granted Critical
Publication of DE4003759C2 publication Critical patent/DE4003759C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
    • G06F13/4217Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous protocol
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Description

Die Erfindung bezieht sich auf ein Verfahren zur Übertragung von Daten nach dem Oberbegriff des Anspruchs 1 und ein Computersystem nach dem Oberbe­ griff des Anspruchs 9.
Bei einem typischen Computersystem bewirkt eine Zentraleinheit (CPU) das Lesen aus und Schreiben in periphere Geräte und andere Komponenten, die das Datenverarbeitungssystem ausmachen. Diese Daten­ verbindung zwischen Geräten erfolgt häufig mittels ei­ nes Busses, welcher alle Komponenten des Computer­ systems miteinander verbindet. Die Geschwindigkeit, mit der der Bus Daten zu übertragen vermag, begrenzt direkt die Gesamtgeschwindigkeit des Computersy­ stems. Protokoll- bzw. "Handshake"-Operationen sind die üblichen Ursachen für Beschränkungen der Daten­ übertragungsgeschwindigkeit zwischen Komponenten, die an den Bus angeschaltet sind. Diese Beschränkungen bedingen eine vorgegebene Folge von Ereignissen in­ nerhalb angegebener Zeitgrenzen vor einem aktuellen Austausch von Daten zwischen den mit dem Bus gekop­ pelten Geräten. Es ist daher wünschenswert, einen Hochgeschwindigkeitsbus mit großer Bandbreite zur Verfügung zu haben, der zur Minimierung der für eine spezielle Aufgabe erforderlichen Rechenzeit besonders rasch arbeitet. Das von dem Bus benutzte Protokoll sollte so gestaltet sein, daß es bei möglichst hoher Effek­ tivität die zur Datenübertragung benötigte Zeit mini­ miert.
Viele Systeme verwenden virtuelle Speicherschemata zur Erhöhung der Möglichkeiten des Datenverarbei­ tungssystems. Bekanntlich machen es virtuelle Spei­ chermethoden einer CPU möglich, mehr Speicherraum zu adressieren als im Hauptspeicher des Computersy­ stems physikalisch vorhanden ist. Wenn die CPU das Lesen oder Schreiben von Daten im Hauptspeicher braucht, erzeugt sie eine virtuelle Adresse für die Daten. Die virtuelle Adresse wird von einer Speichermanagem­ enteinheit (MMU) in eine physikalische Adresse über­ setzt.
Dies ist beispielsweise in Flik, Th.; Liebig, H.:16-Bit-Mikroprozessor­ systeme, Springer-Verlag Berlin Heidel­ berg New York 1982 im Abschnitt 4.2.5, Seite 122-125 beschrieben.
Die physikalische Adresse wird dann an den Hauptspeicher angelegt, um Daten unter dieser Adresse zu lesen oder zu schreiben. Da die von der CPU zum Zugriff auf den Hauptspeicher benötigte Zeit typischer­ weise wesentlich kürzer als die Zugriffszeit für ein Peri­ pheriegerät (beispielweise ein externes Plattenlauf­ werk) ist, wird die Gesamtgeschwindigkeit der Pro­ grammausführung erhöht.
Die MMU nimmt eine von der CPU erzeugte virtuel­ le Adresse auf und übersetzt sie in eine entsprechende physikalische Adresse im Hauptspeicher. Wenn die Da­ tenübersetzung derzeit nicht in der MMU gespeichert ist, so überträgt die MMU die richtigen Übersetzungs­ daten aus dem Hauptspeicher oder einem anderen Peri­ pheriegerät in ihren Speicher. MMU′s eröffnen auch weitere Möglichkeiten, wie Mehrfachadreßräume für separate Prozesse, die gemeinsame Benutzung eines Speichers durch mehrere Prozessoren und den Schutz der gewünschten Speicherplätze dadurch, daß nur be­ stimmte Operationen, wie Lesen, Schreiben oder Aus­ führen in solchen Bereichen zugelassen werden. Es gibt eine Vielzahl virtueller Speichersysteme auf dem Gebiet der Computersysteme; virtuelle Speichersysteme sind im Stande der Technik bei Computeranlagen inzwi­ schen üblich. Eine Ausführung einer solchen Speicher­ managementeinheit ist in der US-PS 45 50 368 beschrie­ ben.
Eine andere Beschränkung für einen Computerbus ist die Größe des Busses selbst. Im wesentlichen besteht ein Bus aus einem Bündel von Drähten, welche die verschie­ denen Komponenten eines Computersystems miteinan­ der verbinden. Zusätzlich zu Adreß- und Datenleitun­ gen enthält der Bus in typischer Ausführung Taktsignal­ leitungen, Betriebsstromleitungen und andere Steuersi­ gnalleitungen. In der Regel kann die Geschwindigkeit des Busses einfach dadurch erhöht werden, daß man die Anzahl der Leitungen des Busses erhöht. Dies macht es dem Bus möglich, mehr Daten während einer Zeitein­ heit zu übertragen. Mit zunehmender Anzahl von Lei­ tungen erhöhen sich jedoch auch die Kosten des Busses.
Diese Aufgabe wird erfindungsgemäß durch ein Verfahren mit den Merkmalen des Anspruchs 1 bzw. ein Computersystem mit den Merkmalen des Anspruchs 9 gelöst.
Der Erfindung liegt die Aufgabe zu­ grunde, ein Verfahren zur Datenüber­ tragung bzw. ein Computersystem zur Verfügung zu stellen, bei dem die Anzahl der Busleitungen bei einer hohen Übertra­ gungsgeschwindigkeit und bei einer virtuellen Adressierungsmöglichkeit minimiert werden kann.
Die Erfindung befaßt sich mit einem Hochgeschwin­ digkeitsbus mit virtuellen Speicherfähigkeiten. Der Bus findet bevorzugte Anwendung in Computersystemen mit Peripheriegeräten. Der Bus ermöglicht eine Hoch­ geschwindigkeitsdatenübertragung unter Verwendung eines virtuellen Speicherschemas. Darüberhinaus mini­ miert die Erfindung die Anzahl der für die Implementie­ rung der Busanordnung benötigten Leitungen. Die Er­ findung minimiert außerdem die für ein spezielles Gerät benötigte Wartezeit vor dem Zugriff auf den Bus und die Zeit zur Beendigung einer Datenübertragung. Der Bus weist eine Vielzahl von Leitungen, einschließlich Adreßleitungen, Datenleitungen und verschiedenen Be­ fehls- und Steuerleitungen auf. Verschiedene Datenver­ arbeitungseinheiten, die nachfolgend als Stationen oder Teilnehmer bezeichnet werden, sind mit dem Bus ge­ koppelt. Ein Steuergerät ist vorgesehen, welches den Zugriff auf den Bus durch die Stationen steuert. Eine Speichermanagementeinheit (MMU) und ein virtuelles Adreßlatch (VAL) sind mit dem Bus gekoppelt und die­ nen der Implementierung des virtuellen Adreßschemas nach der Erfindung.
Während der Operation des Busses werden Daten zwi­ schen den Stationen über den Bus übertragen. Eine an­ fordernde Station legt eine virtuelle Adresse über die Datenleitungen im Bus an. Diese virtuelle Adresse wird von der MMU in eine physikalische Adresse umgesetzt. Die physikalische Adresse wird an die Adreßleitungen im Bus angelegt. Die anfordernde Station legt eine vor­ gegebene Folge von Steuersignalen an, und die Empfän­ gerstation, welche die Daten speichert, legt die ge­ wünschten Daten an die Datenleitungen an. Bei einer vorteilhaften Weiterbildung der Erfindung ist ein Verfahren zur Verhinderung von Systemblockierungsbedingungen (Deadlock Bedingun­ gen) während der Operation des Busses vorgesehen. Wenn eine anfordernde Station eine virtuelle Adresse der MMU zuführt und die MMU nicht über die zur Erzeugung einer physikalischer Adresse notwendigen Überset­ zungsdaten verfügt, so gibt die MMU ein "Rücklauf"-Si­ gnal aus. Dieses Signal erlaubt der anfordernden Station "zurückzudrehen" und den laufenden Datenübertra­ gungsvorgang zeitweilig zu suspendieren. Die MMU kann danach die Kontrolle über den Bus gewinnen und die geeigneten Übersetzungsdaten holen. Nachdem die MMU die notwendigen Übersetzungsdaten gewonnen hat, wird der Datenübertragungsvorgang wieder aufge­ nommen. Ohne das Rücklaufsignal wäre die MMU nicht in der Lage, die Kontrolle über den Bus zu gewinnen. Dies könnte zu einer Deadlock-Bedingung führen, wenn keine Daten übertragen werden und der Bus "einfriert".
Die Erfindung beinhaltet auch ein Schema, mit dessen Hilfe gewisse Leitungen im Bus eine Tri-State-Charak­ teristik erhalten können und stets aktiv und inaktiv (an­ gesteuert und nicht-angesteuert durch aktiven Treiber) getrieben werden, bevor sie in den Tri-State-Zustand kommen. Dies ist im Gegensatz zu bekannten Busstruk­ turen, bei denen Leitungen mit Hilfe von Anhebe- oder Absenkwiderständen passiv abgetrennt wurden. Das Tri-State-Schema gemäß der Erfindung verringert die Leistungsaufnahme und ermöglicht es, daß der Bus von CMOS-Bauelementen direkt angesteuert wird.
Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen gekennzeichnet.
Im folgenden wird die Erfindung anhand von Beispie­ len unter Bezugnahme auf die Zeichnung nähert erläu­ tert. In der Zeichnung zeigen:
Fig. 1 eine schematische Darstellung eines Compu­ tersystems unter Verwendung eines bevorzugten Aus­ führungsbeispiels der Erfindung;
Fig. 2a schematisch verschiedene Bus-Teilstrukturen einschließlich des Hochgeschwindigkeitsbusses nach der Erfindung;
Fig. 2b die Struktur der Bestätigungsleitung bei dem beschriebenen Ausführungsbeispiel;
Fig. 3 ein Zeitdiagramm mit den Zeitprotokollen für Tri-State-Steuersignale, wie sie bei der Erfindung Ver­ wendung finden;
Fig. 4 ein Zeitdiagramm mit dem Treiberprotokoll für Tri-State-Nicht-Steuersignalleitungen, die bei der Erfin­ dung erwendet werden;
Fig. 5 eine Tabelle, die die möglichen codierten Bestä­ tigungsantworten einer zugegriffenen Station zeigt;
Fig. 6 eine Tabelle, welche die möglichen Übertra­ gungsleitungssignale und ihre Bedeutungen zeigt;
Fig. 7a ein Zeitdiagramm für einen CPU-Lesezyklus bei der Datenübertragung über den Bus;
Fig. 7b ein Zeitdiagramm für einen CPU-Schreibzy­ klus bei der Datenübertragung über den Bus;
Fig. 8a ein Zeitdiagramm für einen DMA-Geräte­ schreibzyklus bei der Datenübertragung über den Bus;
Fig. 8b ein Zeitdiagramm für einen DMA-Geräte-Le­ sezyklus bei der Datenübertragung über den Bus;
Fig. 9 ein Zeitdiagramm für einen Stoßschreibzyklus in den Speicher; und
Fig. 10 ein Zeitdiagramm für einen Rücklaufzyklus, wie er bei der Erfindung Verwendung findet.
Ein verbesserter Hochgeschwindigkeitsbus wird be­ schrieben, der bevorzugte Anwendung in Computersy­ stemen auf Chipebene mit virtuellen Speichertechniken findet. In der folgenden Beschreibung werden zu Erläuterungszwecken spezielle Speichergrößen, Bitanordnungen, Zahlen, Datenübertragungsgeschwindigkeiten usw. angegeben, um das Verständnis für die vorliegende Erfindung zu erleichtern. Es ist für den Fachmann je­ doch klar, daß die Erfindung auch ohne diese speziellen Einzelheiten realisiert werden kann. In anderen Fällen sind bekannte Schaltungen und Komponenten nur in Blockform gezeigt, um die Beschreibung der Erfindung nicht mit bekannten Einzelheiten zu belasten.
Im folgenden wird auf Fig. 1 Bezug genommen, in der die Hauptkomponenten eines die Erfindung beinhalten­ den Computersystems dargestellt sind. Eine Zentralein­ heit (CPU) 12 steht mit den Komponenten des Compu­ tersystems über Bus 10 in Verbindung. Bus 10 enthält eine Vielzahl einzelner Leitungen, welche Daten und Steuersignale zu verschiedenen Komponenten des Computersystems übertragen. Das in Fig. 1 gezeigte System weist außerdem einen Hauptspeicher 16, ein Vi­ deogerät 18, einen Direktzugriffsspeicher (DMA) 20, ei­ nen Koprozessor 22, ein Diskinterface 24 und ein Netz­ werkinterface 25 auf. Zusätzliche Einheiten, wie Be­ schleuniger oder weitere Speicher können gegebenen­ falls im System zusätzlich verwendet werden. Für die Zwecke der vorlie­ genden Beschreibung werden alle Datenverarbeitungs- und Peri­ pheriegeräte, die an den erfindungsgemäßen Bus angeschaltet sind, kollektiv als "Stationen" bezeichnet, und sie erhalten das allgemeine Bezugszeichen 26.
Die vorliegende Erfindung soll die Kommunikation zwischen den verschiedenen Elementen und Komponenten des Computersystems ermöglichen. Es wurde gefunden, daß die Erfindung für die Kommunikation unter Hochleistungsgeräten auf Chipniveau beson­ ders geeignet ist. Es ist häufig erwünscht, daß das Computer­ system mit anderen Systemen kommuniziert. Diese Systeme benut­ zen teilweise nicht die gleichen Kommunikationsprotokolle in dem vorhandenen Bussystem. Daher kann das Computersystem mit einem separaten Eingabe/Ausgabe-(I/O)-Bus 60 versehen sein. Dieser I/O-Bus 60 kann irgendeine Anzahl von bekannten Kommu­ nikationsschemata benutzen. Es ist für den Fachmann klar, daß das vorliegende Bussystem zum Kommunizieren mit externen Bau­ elementen benutzt werden kann, wenn diese Bauelemente oder Geräte die Zeitprotokolle nach der Erfindung benutzen oder verstehen.
Die Erfindung weist außerdem ein Steuer-/Zuteilungsgerät 14 auf, das mit dem Bus 10 gekoppelt ist. Wie weiter unten genau­ er beschrieben werden wird, führt das Steuergerät 14 verschie­ dene Funktionen, einschließlich Steuern und Zugriffszuteilung auf den Bus 10 zwischen den verschiedenen Stationen durch. Das Steuergerät bewirkt dies durch Anlegen eines Buszuteilungssi­ gnals über die Buszuteilungsleitung 49. Jede mit dem Bus ge­ koppelte Station hat spezielle Busanforderungs-, Busauswahl- und Buszuteilungsleitungen, die zwischen dem Steuer-/Zutei­ lungsgerät 14 und der speziellen Station verlaufen. Wenn eine Station die Buskontrolle verlangt, legt sie über ihre Busan­ forderungsleitung 49 ein Signal an. Das Steuergerät 14 emp­ fängt derartige Anforderungen, nimmt Prioritätsverteilungen vor und speichert sie, wartet, bis der Bus frei ist, und legt ein Buszuteilungssignal an die Buszuteilungsleitung 49 eines der anfordernden Geräte oder Teilnehmer. Bei dem bevorzugten Ausführungsbeispiel benutzt das Steuergerät ein Ringversuchs­ prioritätszuteilungsschema. Es ist für den Fachmann jedoch klar, daß verschiedene Zuteilungsschemata je nach Systemkonfi­ guration verwendet werden können. So kann beispielsweise das Steuergerät 14 Buszuteilungen in der Reihenfolge der Anforde­ rungen vornehmen. Alternativ könnte jeder Station eine beson­ dere Prioritätszahl zugeordnet werden, und das Steuergerät 14 könnte den Bus derjenigen Station zuteilen, die über die höch­ ste Priorität verfügt. Das Steuergerät verhindert auch das Auftreten von Deadlock-Bedingungen, die erwachsen, wenn zwei oder mehr Stationen gleichzeitig auf den Bus 10 Zugriff zu gewinnen suchen. Dies geschieht durch die Verwendung eines "Rücklauf-"Protokolls, das weiter unten beschrieben werden wird.
Die Erfindung weist einen Bus mit einer parallelen Hochge­ schwindigkeitsdatenübertragungsrate, niedriger Leistungsauf­ nahme und einer minimalen Anzahl von Leitungen auf. Außerdem minimiert die Erfindung die von einer speziellen Station zur Zugriffsgewinnung auf den Bus erforderliche Zeit. Obwohl Fig. 1 einen speziellen Prozessor und mit dem Bus 10 gekoppelte Peripherieeinheiten zeigt, ist es für den Fachmann klar, daß die Struktur der Erfindung auch eine Vielzahl anderer Verknüp­ fungen von Prozeßeinheiten und Peripheriegeräten in einer Vielzahl von Systemen unter Verwendung der beschriebenen Bus­ struktur ermöglicht.
Das beschriebene Ausführungsbeispiel der Busanordnung ist so ausgebildet, daß die CMOS-Technologie zum Einsatz kommen kann. Als solche sind gewisse Leistungsspezifikationen und Zeitpro­ tokolle optimiert, um die Energieaufnahme zu verringern und eine wirksame Arbeitsweise mit CMOS-Bauelementen zu ermögli­ chen. Es ist für den Fachmann klar, daß diese Spezifikationen ohne Abweichen vom vorliegenden Erfindungsgedanken geändert werden können.
In der nachfolgenden Beschreibung werden gewisse Busleitungen als "aktiv hoch" oder "aktiv niedrig" beschrieben. Diese Ter­ minologie soll angeben, ob ein spezielles Bussignal anliegt und für die Busoperation relevant ist. Es ist jedoch klar, daß es dem Konstrukteur überlassen bleibt, ob eine vorgegebene Busleitung aktiv hoch oder aktiv niedrig ist. Während das beschriebene Ausführungsbeispiel so konzipiert ist, daß die Datenübertragungsgeschwindigkeit optimiert und die Energieauf­ nahme minimiert ist, kann die Konstruktion des Busses so geän­ dert werden, daß eine aktiv hohe Leitung aktiv niedrig wird.
Wie weiter unten beschrieben werden wird, ist das bevorzugte Ausführungsbeispiel der Busanordnung vollständig synchron. Alle Bussignale ändern sich an der ansteigenden Flanke der Taktimpulse. Die synchrone Konstruktion ist erwünscht, da hohe Datenübertragungsgeschwindigkeiten hohe Taktgeschwindigkeiten bedingen, und es ist leichter, bei hohen Geschwindigkeiten Taktimpulsflanken zu bestimmen. Es ist klar, daß die Verwen­ dung der ansteigenden Taktimpulsflanke ein konstruktiv wählba­ rer Parameter ist, und daß die Synchronisation auch statt des­ sen an den abfallenden Flanken der Taktimpulse vorgenommen werden kann.
Im folgenden wird auf Fig. 2a Bezug genommen, die ein bevor­ zugtes Ausführungsbeispiel der Erfindung mit einem Bus 10 mit 96 Einzelleitungen darstellt. Wie gezeigt ist, ist der Bus mit verschiedenen Stationen 26 verbunden, welche das in Fig. 1 dargestellte Computersystem enthalten (einschließlich Haupt­ speicher 16, Videoport 18 und Plattenlaufwerk 24). Der Bus 10 enthält eine Taktleitung 40, welche ein zentrales Taktsignal auf die Stationen 26 verteilt. Der Bus 10 enthält auch physi­ kalische Adreßleitungen 42 und virtuelle Adreß/Datenleitungen 43. Bei dem beschriebenen Ausführungsbeispiel gibt es 28 phy­ sikalische Adreßleitungen und 32 virtuelle Adreß/Datenleitun­ gen. Es kann jedoch auch eine andere Zahl dieser Leitungen je nach Umfang der zu übertragenden Daten verwendet werden. Eine Adreßstrobeleitung 41 ist vorgesehen, die es einer Station ermöglicht, die auf den physikalischen Adreßleitungen 42 vor­ handene Adresse einzublenden (to strobe).
Während der Operation des Busses 10 werden zahlreiche Proto­ kollsignale zu speziellen Zeiten angelegt, um eine genaue Datenübertragung unter den Stationen 26 zu gewährleisten. Zu diesem Zweck weist die Erfindung Übertragungsgrößenleitungen 44 auf, welche den Umfang (in Bytes) der zu übertragenden Daten bezeichnen, und außerdem Bestätigungsleitungen 46, die es einer von der CPU 12 oder einer anderen Station zugegriffe­ nen Station ermöglichen, eine Datenanforderung zu bestätigen. Wie gesagt, liefert eine zugegriffene Station diese Antworten in verschlüsselter Form. Eine Speicherfehlerleitung 47 wird angesteuert, wenn eine Station, aus der Daten verlangt werden, während der Übertragung einen Fehler feststellt.
Der Bus 10 weist auch Leitungen zur Bussteuerung auf, die dafür sorgen, daß nur eine Station jeweils den Bus treibt. Wie zuvor gesagt, hat jede Station eine spezielle Busanforderungs­ leitung 48 und Buszuteilungsleitung 49. Es gibt auch Unterbre­ chungsanforderungsleitungen 50, die es einer Station ermögli­ chen, die Busoperation zu unterbrechen. Dies kann notwendig sein, wenn eine Station eine Aufgabe mit hoher Priorität been­ den muß und keinen normalen Zugriff auf den Bus wegen fortlau­ fender Datenübertragungen gewinnen kann. Bei dem bevorzugten Ausführungsbeispiel der Erfindung sind sieben Unterbrechungs­ anforderungsleitungen vorgesehen. Es ist für den Fachmann jedoch klar, daß eine größere oder kleine Anzahl derartiger Leitungen vorgesehen sein kann. Wenn erwartet wird, daß bei­ spielsweise die Stationen den Bus nur selten unterbrechen, kann eine einzige Unterbrechungsanforderungsleitung ausrei­ chen, in die sich alle Stationen teilen. Eine Busrücksetzlei­ tung 51 ist vorgesehen, welche zum Rücksetzen des Busses dient. Das Rücksetzen kann während anfänglicher Einschaltung oder bei Auftreten einer Fehlerbedingung notwendig werden. Schließlich sind Netzleitungen 42 zur Stromzufuhr für den Betrieb des Busses erforderlich.
Die meisten der den Bus bildenden Leitungen sind digitale Leitungen, welche entweder auf einen hohen Pegel (1) oder einen niedrigen Pegel (0) getrieben werden können. Das bevor­ zugte Ausführungsbeispiel enthält aber auch Steuerleitungen, die entsprechend einem speziellen Protokoll getrieben werden. In vielen bekannten Systemen können Digitalleitungen durch aktiv niedrig-Signale angesteuert werden. Wenn die Leitung unterbrochen werden soll, beendet die Station die Leitungsan­ steuerung mit einem niedrigen Potential, und Anhebewiderstände (pull-up resistors) führen die Leitung auf ihren normalerweise hohen Zustand zurück. Die Geschwindigkeit, mit der die Leitung in ihren inaktiven (hohen) Zustand zurückgeführt wird, ist eine Funktion der Leitungskapazität und des Werts des Anhebe­ widerstandes.
Immer wenn ein tri-state-fähiges Signal angelegt wird, zieht der Treiber für dieses Signal zunächst das Signal auf einen niedrigen Pegel (Signal anliegend). Nach der Signalanlage treibt der Treiber das Signal hoch (inaktiv) vor dem Abschal­ ten. Die tri-state-fähigen Steuersignale haben passive Zieh­ bzw. Anhebewiderstände, welche die Signale nach dem Abschalten der Treiber auf dem inaktiven Pegel halten. Wegen der leis­ tungsschwachen Gleichstromspezifikationen von CMOS-Bauelemen­ ten ist es nicht möglich, aktive Ziehwiderstände vorzusehen, welche innerhalb einer kurzen Zeit die Signale von dem aktiven zum inaktiven Pegel ändern. Daher findet das erfindungsgemäß vorgesehene Protokoll Verwendung. Die Widerstände auf den tri-state-fähigen Leitungen ändern das Signal nicht vom akti­ ven in den inaktiven Zustand. Sie halten nur das Signal auf dessen inaktiven Pegel. Durch Treiben der tri-state-fähigen Signale sowohl in den niedrigen als auch den hohen Zustand wird das bekannten Bussystemen anhaftende Problem der "schwe­ benden" Signale vermieden.
Ein weiteres Merkmal der Erfindung besteht darin, daß während des gleichen Taktzyklus keine einzige Leitung von zwei Statio­ nen angesteuert wird. Dies vermeidet das Problem einer Trei­ berüberlappung zwischen mehreren Treibern. Das Zeitprotokoll für dieses Merkmal ist in Fig. 4 gezeigt. An der ansteigenden Flanke des ersten Taktzyklus schaltet der eine spezielle Lei­ tung treibende Treiber der Station ab. Wenn die Leitung eine tri-state-fähige Leitung ist, wird sie auf ihrem tri-state-Pe­ gel von ihrem passiven Widerstand gehalten. Die Leitung wird auf ihrem tri-state-Pegel bis zum Ende des ersten Taktzyklus gehalten. Wenn die ansteigende Flanke des zweiten Taktzyklus festgestellt wird, schaltet der Treiber der zweiten Station ein und treibt die Leitung auf den gewünschten Pegel.
Die Busoperation wird im folgenden unter Bezugnahme auf Fig. 1 und die Fig. 5 bis 10 beschrieben. Es gibt zahlreiche Auf­ gaben, die unter Verwendung des Busses 10 durchgeführt werden. Wenn auch nicht jede dieser Aufgaben im einzelnen gezeigt werden kann, so kann die generelle Funktionsweise des Busses unter Bezugnahme auf einige Beispiele beschrieben werden.
Es sei beispielsweise angenommen, daß die CPU 12 Daten, die im Hauptspeicher 16 gespeichert sind, lesen soll. Ein Zeitdia­ gramm für diesen Prozeß ist in Fig. 7a gezeigt. Die CPU 12 erzeugt eine den zu lesenden Daten entsprechende virtuelle Adresse. Wie in Fig. 1 gezeigt ist, wird diese virtuelle Adresse direkt zur MMU 30 übertragen. Die MMU 30 setzt die virtuelle Adresse in eine physikalische Adresse um, und zwar nach irgendeiner an sich bekannten Methode, und überträgt die physikalische Adresse über die physikalischen Adreßleitungen 42 zum Bus 10. Wie in Fig. 7a gezeigt ist, legt die CPU 12 gleichzeitig mit dem Anlegen der physikalischen Adresse an die physikalischen Adreßleitungen 42 auch die Übertragungsgrößen­ leitungen 44 auf ihre vorgesehenen Pegel.
Die Übertragungsgrößenleitungen 44 liefern ein codiertes Si­ gnal an den Speicher 16, das den Umfang (in Bytes) der über den Bus 10 zu übertragenden Daten bezeichnet. Bei dem bevor­ zugten Ausführungsbeispiel gibt es drei Übertragungsgrößenlei­ tungen. Fig. 6 zeigt die verschiedenen möglichen Kombinationen der Ansteuerung der Übertragungsgrößenleitungen und mit Bezug auf die Länge bzw. den Umfang der Datenübertragung. Bei dem bevorzugten Ausführungsbeispiel kann sich der Bus 10 Daten­ übertragungen von 1, 2, 3, 4 oder 16 Bytes anpassen. Es ist dem Fachmann klar, daß verschiedene Codierschemata und ent­ sprechende Datenübertragungsgrößen nach Wahl des Konstrukteurs verwendet werden können. Die Datenleitungen 43 haben eine Breite von 32 Bits. Der Bus 10 kann daher bis zu vier Bytes an Daten gleichzeitig übertragen. Wie weiter unten noch genauer beschrieben werden wird, führt der Bus mehrere 4-Byte-Übertra­ gungen durch, wenn eine 16-Byte-Übertragung von den Übertra­ gungsgrößenleitungen angegeben ist.
Das Steuergerät 14 steuert die Busauswahlleitung 53 an. Wenn das Steuergerät 14 die Adreßstrobeleitung 41 ansteuert, er­ kennt der Speicher, daß auf ihn zugegriffen wird, und antwor­ tet mit einem Bestätigungssignal (ACK) über die Bestätigungs­ leitungen 46. Wie in Fig. 2b gezeigt ist, bestehen die Bestä­ tigungsleitungen 46 aus drei separaten Leitungen: 8-Bit-Bestä­ tigung 55, 32-Bit-Bestätigung 56 und Fehler 57.
Eine zugegriffene Station (bei dem beschriebenen Beispiel Speicher 16) hat vier Antwortmöglichkeiten. Sie kann die CPU 12 (oder eine andere zugreifende Station) anweisen, zu warten, eine "Rücklauf-"Antwort auszugeben (weiter unten beschrieben), den Zyklus abzubrechen, wenn eine Fehlerbedingung existiert, oder die Datenübertragung zu bestätigen, während gleichzeitig die Portgröße der zugegriffenen Station angegeben wird. Fig. 5 ist eine Tabelle der codierten Antworten, die bei dem be­ schriebenen Ausführungsbeispiel Verwendung finden. Wie ge­ zeigt, kann der Bus 10 Stationen mit Portgrößen von 8, 16 und 32 Bits (1, 2 und 4 Bytes) akkumulieren. Es liegt aber auch im Rahmen des Erfindungsgedankens, die Verwendung von Geräten mit anderen Portgrößen, beispielsweise 4 Bits oder 64 Bits, zu ermöglichen. Bei dem beschriebenen Ausführungsbeispiel sind die Bestätigungsleitungen im aktiven Zustand auf einem niedri­ gen Pegel.
Nach der Ansteuerung der Bestätigungsleitungen 46 treibt sie der Speicher 16 im nächsten Taktzyklus auf ein hohes Potenti­ al, bevor sie in der unter Bezugnahme auf Fig. 3 beschriebenen Weise auf den Tri-State gesetzt werden. Bei Empfang des Bestä­ tigungssignals unterbricht das Steuergerät 14 den Adreßstrobe 41 (der ein aktiv niedriges Signal ist). Einen Taktzyklus nach der Ansteuerung der Bestätigungsleitungen 46 steuert der Spei­ cher 16 die Datenleitungen 43 mit gültigen Daten an und hält die Daten über einen vollen Taktzyklus auf den Datenleitungen 45 gültig. Nach der Ansteuerung der Datenleitungen 43 bringt sie der Speicher 16 in den Tri-State und beendet den Lesezy­ klus.
Es sei beispielsweise angenommen, daß die CPU 12 Daten in den Speicher 16 schreibt. Das Zeitdiagramm für diesen Prozeß ist in Fig. 7b gezeigt. Die CPU 12 steuert die physikalischen Adreßleitungen 42 und die Übertragungsgrößenleitungen 44 an und legt Daten an die Datenleitungen 43. Das Steuergerät 14 steuert die Busauswahlleitung 53 und die Adreßstrobeleitung 54 im selben Taktimpuls an. Im wesentlichen gleichzeitig beauf­ schlagt die CPU 14 die Datenleitungen mit den Daten, die in den Speicher 16 geschrieben werden sollen. Wenn die Adreß­ strobe- 41 und Busauswahlleitungen 53 an der ansteigenden Flanke desselben Taktzyklus gültig sind, antwortet der Spei­ cher 16 mit einem Bestätigungssignal, wie dies oben beschrie­ ben ist. Bei Empfang eines gültigen Bestätigungssignals unter­ bricht das Steuergerät die Beaufschlagung der Adreßstrobelei­ tung 41, und die CPU 12 unterbricht die Ansteuerung der Daten­ leitungen 44. Wie in Fig. 1 gezeigt ist, ist die CPU 12 direkt mit der MMU 30 gekoppelt. Demgemäß liefert bei dem beschriebe­ nen Beispiel die CPU 12 virtuelle Adressen direkt an die MMU, wodurch das virtuelle Adreßlatch 28 und Bus 10 überbrückt werden. Es ist jedoch zu beachten, daß die CPU 12 ebenso wie irgendeine andere Station 26 direkt mit dem Bus 10 gekoppelt werden kann, so daß ihre virtuellen Adressen an die Datenlei­ tungen 43 angelegt werden, wie in den weiter unten unter Be­ zugnahme auf das DMA-Gerät 20 beschrieben werden wird.
Fig. 8a zeigt ein Zeitdiagramm für ein DMA-Gerät, das Daten direkt in den Speicher schreibt. Wie dargestellt, fordert das DMA-Gerät Zugriff auf den Bus dadurch an, daß es die Busanfor­ derungsleitung 48 ansteuert. Wie oben erörtert, ist die Anfor­ derungsleitung 48 hier eine aktiv niedrige Leitung. Das Steu­ ergerät wartet solange, bis der Bus inaktiv ist, und gibt ein Buszuteilungssignal entsprechend dem oben beschriebenen Zutei­ lungsschema an die anfordernde Station. In dem unmittelbar nachfolgenden Taktzyklus unterbricht das DMA-Gerät die Busan­ forderung und gibt eine virtuelle Adresse auf die Datenleitun­ gen 43. Gleichzeitig gibt das DMA-Gerät die Übertragungsgröße an, wie dies in Verbindung mit Fig. 6 erläutert worden ist, und beaufschlagt die Leseleitung.
Durch Treiben der virtuellen Adresse auf die Datenleitungen erzielt die Erfindung gegenüber bekannten Ausführungen einige Vorteile. Zunächst sind alle mit dem Bus verbundenen Stationen in der Lage, über die MMU auf den Speicher zuzugreifen. Da­ durch erübrigen sich separate virtuelle Adreßleitungen im Bus. Demzufolge nimmt die Gesamtanzahl von Leitungen im Bus ab, die Anordnung wird weniger kompliziert und die Herstellungskosten werden gesenkt.
Wie in Fig. 1 gezeigt ist, sind die Daten-/virtuellen Adreß­ leitungen 43 mit dem virtuellen Adreßlatch 28 gekoppelt. Wäh­ rend des ersten Taktzyklus, nachdem ein Busmaster (beispiels­ weise die CPU 12) eine Buszuteilung erhalten hat, legt der Master die virtuelle Adresse an die Datenleitungen 43 an. Das virtuelle Adreßlatch 28 speichert den virtuellen Adressenwert. Diese virtuelle Adresse wird dann in die MMU 30 übertragen, welche sie in eine der realen Adresse im Hauptspeicher 18 entsprechende physikalische Adresse umsetzt. Wie in Fig. 8a gezeigt ist, wird die physikalische Adresse nach dem Überset­ zen von der MMU 30 an die physikalischen Adreßleitungen ange­ legt. Im wesentlichen gleichzeitig mit dem Anlegen der physi­ kalischen Adresse durch die MMU 30 beaufschlagt das Steuerge­ rät 14 die Busauswahl 53 und Adreßstrobeleitungen 41. In Ab­ hängigkeit von gleichzeitig gültigen Adreßstrobe- 41, Busaus­ wahl- 53 und physikalischen Adreßsignalen 42 speichert das Slave-Gerät den Schreibzyklus rück und beendet ihn durch Anle­ gen von ACK 46. Sobald des Slave-Gerät ACK 46 anlegt, unter­ bricht das Steuergerät 14 das Buszuteilungssignal am Ende des Zyklus. Wenn das Buszuteilungssignal unterbrochen wird, hat das Mastergerät die Kontrolle über den Bus verloren und stoppt die Ausgabe aller Signale nach dem nächsten Zyklus, wodurch der Schreibzyklus beendet wird.
Fig. 8b zeigt ein Zeitdiagramm für die Leseoperation eines DMA-Geräts aus dem Speicher. Wie dargestellt, legt das DMA-Ge­ rät 20 ein Busanforderungssignal an die Busanforderungsleitung 48. Wenn der Bus inaktiv ist, gibt das Steuergerät 14 ein Buszuweisungssignal entsprechend dem oben beschriebenen Zuwei­ sungsschema aus. Danach unterbricht das DMA-Gerät 20 die An­ steuerung der Busanforderungsleitung 48 und legt an die Daten­ leitungen 43 die virtuelle Adresse des Speicherplatzes, an den die Daten zu schreiben sind. Gleichzeitig beaufschlagt das DMA-Gerät die Übertragungsgrößenleitungen 44 und treibt die Leseleitung 48 auf einen hohen Pegel. Nachdem die virtuelle Adresse auf die Datenleitungen gelegt worden ist, ruft das DMA-Gerät 20 auf den Datenleitungen Tri-States hervor, wie dies in Verbindung mit Fig. 3 erläutert worden ist. Die MMU 30 setzt die virtuelle Adresse in eine physikalische Adresse um und legt diese physikalische Adresse an die physikalischen Adreßleitungen 42. Wenn die physikalischen Adreßleitungen angesteuert sind, beaufschlagt das Steuergerät 14 den Adreß­ strobe 41 und die Busauswahlleitungen 53. Daraufhin antwortet der Speicher 16 mit einem gültigen ACK-Signal über die Bestä­ tigungsleitungen 46. Sobald ein gültiges ACK-Signal angelegt ist, treibt das DMA-Gerät 20 die zu schreibenden Daten auf die Datenleitungen 43. Gleichzeitig unterbricht das Steuergerät 14 das Signal auf der Buszuteilungsleitung 49. Beim nächsten Taktzyklus setzt das DMA-Gerät die Datenleitungen, die Über­ tragungsgrößenleitungen und das Leselatch in Tri-States und beendet dadurch den DMA-Lesezyklus.
Die Erfindung kann einen Übertragungsburstbetrieb mit hoher Bandbreite akkumulieren, wobei mehrere Bytes von der CPU 12 oder einer anderen Station 26 in den Speicher 16 geschrieben oder aus diesem gelesen werden können. Ein Zeitdiagramm einer solchen CPU-Leseoperation ist in Fig. 9 gezeigt. Die Station 26, welche Daten in den Speicher überträgt, fordert die Kon­ trolle über den Bus 10 durch Anlegen eines Busanforderungssi­ gnals an die Busanforderungsleitung 48 an. Wenn der Bus 10 inaktiv ist, gibt das Steuergerät 14 ein Buszuteilungssignal entsprechend den oben beschriebenen Zuteilungsprozeduren aus. Sobald eine Buszuteilung erfolgt ist, wird die Station 26, welche das Busanforderungssignal ausgegeben hat, zum Busmaster und erhält die Kontrolle über die Operation des Busses 10. Im Taktzyklus, der der Buszuteilung unmittelbar folgt, unter­ bricht der Busmaster das Signal auf der Busanforderungsleitung 48 und treibt die Lesesignalleitung 45 hoch. Im wesentlichen gleichzeitig werden die Datenleitungen 43 vom Busmaster mit einer virtuellen Adresse angesteuert. Der Busmaster gibt an, daß die Übertragung aus 16 Bytes besteht, und zwar durch An­ steuerung der Übertragungsgrößenleitungen 44 entsprechend dem Codierschema in Fig. 6.
Die virtuelle Adresse wird von der MMU 30 in eine physikali­ sche Adresse umgesetzt und an die physikalischen Adreßleitun­ gen 42 angelegt. An diesem Punkt muß der Speicher mit einem gültigen Signal auf der 32-Bit-Bestätigungsleitung 46 (aktiv niedrig) antworten. Bei Empfang eines gültigen Bestätigungssi­ gnal treibt der Busmaster die in den Speicher 16 zu schreiben­ den ersten vier Bytes auf die Datenleitungen 43. Der Speicher 16 antwortet dadurch, daß er die 32-Bit-Bestätigungsleitung 56 hoch und danach niedrig treibt. Der Speicher 16 inkrementiert ebenfalls automatisch die Adresse, in die die nächste Gruppe von vier Bytes übertragen wird. Nachdem die 32-Bit-Bestäti­ gungsleitung 46 auf ein niedriges Potential getrieben worden ist, hält der Busmaster eine neue Gruppe von vier Bytes auf den Datenleitungen 43, die in die neue Speicheradresse ge­ schrieben oder aus der neuen Speicheradresse gelesen werden sollen. Dieser Vorgang wird von jeder Gruppe von vier Bytes wiederholt. Nach der Übertragung von vier Datengruppen unter­ bricht das Steuergerät 14 das Signal auf der Bus-Zuteilungs­ leitung 49. Der Busmaster unterbricht danach den Adreßstrobe 41 und sorgt für Tri-States auf der Leseleitung 45 und den Übertragungsgrößenleitungen 44. Der Speicher setzt die 32-Bit- Bestätigungsleitung 46 auf Tri-State und beendet dadurch den Schreibzyklus.
Erfindungsgemäß wird auch ein "Rücklauf"-Protokoll implemen­ tiert, während dessen ein ablaufender Zyklus unterbrochen und später wieder gestartet werden kann. Dies ermöglicht die Auf­ lösung von Deadlocks zwischen der CPU und DMA-Geräten und stellt den Stationen große Leselatenzen ohne eine Aussperrung anderer Busanforderungen zur Verfügung.
Deadlocks können auftreten, wenn eine Station sowohl eine Slave-Station als auch ein Busmaster sein kann und einen Slave-Zugriff zu einem gegebenen Zeitpunkt nicht beenden kann. Die Station 26 muß diese Bedingung feststellen und eine Rück­ laufbestätigung dadurch anlegen, daß sie die 8-Bit-Bestäti­ gungsleitung 46 und die Fehlerleitung 47 in Fig. 5 ansteuert. Das Steuergerät 14 antwortet durch Beendigung des Zyklus, indem es die Busauswahlleitung 43 negiert und den Zyklus spä­ ter wiederholt. Vor dem Wiederholen des Zyklus können andere Busmaster den Bus 10 benutzen. Ein Beispiel für einen Rück­ laufzyklus ist in Fig. 10 gezeigt.
Das Rücklaufprotokoll ist aus einigen Gründen zweckmäßig. Einerseits erlaubt es neben der CPU auch anderen Stationen den Zugriff auf den Hauptspeicher 16 über die MMU 30. Es sei ange­ nommen, daß eine Station eine virtuelle Adresse über das VAL 28 an die MMU 30 sendet. Wenn die entsprechende physikalische Adresse nicht gleichzeitig in der MMU 30 gespeichert wird, geben die Übersetzungsdaten für die MMU ein Rücklaufsignal in der oben beschriebenen Weise aus. Die anfordernde Station "dreht zurück" und erlaubt der MMU 30, die richtigen Überset­ zungsdaten zu holen. Die MMU 30 führt diese Übertragung über den Bus 10 aus. Die anfordernde Station kann dann die Opera­ tion mit den notwendigen Daten in der MMU 30 neu versuchen, um eine Übersetzung der virtuellen Adresse in eine physikalische Adresse zu ermöglichen. Ohne das Rücklaufprotokoll wäre die MMU nicht in der Lage, die virtuelle Adresse in eine physika­ lische Adresse zu übersetzen. Die MMU 30 wäre nicht in der Lage, Kontrolle über den Bus zu gewinnen. Dies könnte zu einer Deadlock-Bedingung führen, bei der der Bus 10 das System "ein­ frieren" würde, so daß die Datenübertragung verhindert wäre.
Das Rücklaufmerkmal minimiert auch die Zeit, die eine speziel­ le Station warten muß, bis sie Zugriff auf den Bus gewinnen kann. Diese Wartezeit ist als Bus-Latenzzeit bekannt. Eine Buslatenz tritt auf, wenn eine spezielle Station auf eine Slave-Station mit einer großen Zugriffszeit zugreift, wodurch alle andere Stationen ausgesperrt werden. Dies kann auftreten, wenn eine zugegriffene Station eine lange Zeit zur Lieferung der gewünschten Daten auf den Bus benötigt.
Eine Station mit einer Bus-Latenzzeit, die größer als eine vorgegebene Zeitspanne (N) ist, muß vor der Auszeit mit einer Rücklaufbestätigung antworten. Wenn die zugegriffene Station zur Antwort eine längere Zeit als N-Zyklen benötigt, so wird der laufende (Lese- oder Schreib-)Zyklus unterbrochen und eine anhängige Anforderung bedient. Nach dem Bedienen der anhängi­ gen Busanforderung wird der ursprüngliche Zyklus neu begonnen. Während der Rücklaufperiode verriegelt die zugegriffene Stati­ on beaufschlagte Adreß- und Datenleitungen, da diese Signale nach dem Suspendieren des Rücklaufzyklus nicht gültig sind.

Claims (21)

1. Verfahren zum Übertragen von Daten zwischen einer anfor­ dernden Station und einer einer physikalischen Adresse zugeord­ neten zugegriffenen Station in einem Computersystem mit einer Anzahl von Datenverarbeitungsgeräten ("Stationen"), die selektiv an eine Einzelbusstruktur gekoppelt sind, und einer Steuerstation
wobei ein Busanforderungssignal von der anfordernden Station über eine Busanforderungsleitung an die Steuerstation ausgegeben wird,
ein Buszuteilungssignal über eine Buszuteilungsleitung von der Steuerstation an die anfordernde Station ausgegeben wird, wenn der Bus zur Verwendung durch die anfordernde Station verfügbar ist und
das Busanforderungssignal der anfordernden Station zur Steuerstation von der Busanforderungsleitung zurückgenommen wird,
dadurch gekennzeichnet,
daß nach Rücknahme des Busanforderungssignals von der anfordernden Station eine virtuelle Adresse an Datenleitungen in dem Bus angelegt wird;
die virtuelle Adresse in einem Latch-Mittel für eine virtuelle Adresse (VAL) zwischengespeichert wird;
die virtuelle Adresse von den Datenleitungen zurückgenommen wird;
die virtuelle Adresse von dem VAL an eine Speichermana­ gementeinheit (MMU) gesendet wird;
mit Hilfe von in der MMU gespeicherten Übersetzungsda­ ten die virtuelle Adresse in eine physikalische Adresse übersetzt wird;
die physikalische Adresse an Adreßleitungen in dem Bus angelegt wird;
ein Übertragungsgröße-Signal von der anfordernden Sta­ tion an die der physikalischen Adresse zugeordnete Station ausgegeben wird;
ein Busauswahlsignal von der Steuerstation an die der physikalischen Adresse zugeordnete zugegriffene Station ausgegeben wird;
ein Bestätigungssignal von der der physikalischen Adresse zugeordneten zugegriffenen Station über Bestätigungsleitungen in dem Bus gesendet wird; und die Daten an die Datenleitungen angelegt werden;
wobei die Daten zwischen der anfordernden Station und der der physikalischen Adresse zugeordneten zugegriffenen Station bei einer hohen Geschwindigkeit über die Einzelbusstruktur übertragen werden.
2. Verfahren zur Datenübertragung nach Anspruch 1, dadurch gekennzeichnet, daß nach dem Senden der virtuellen Adresse an die Speichermanagementeinheit (MMU)
von der MMU geprüft wird, ob in ihr die Übersetzungsdaten zum Übersetzen in die physikalische Adresse vorhanden sind, und,
sofern die Übersetzungsdaten fehlen,
von der MMU ein "Rücklauf" -Signal an die anfordernde Station ausgegeben wird,
von der anfordernden Station die Datenübertragung beendet wird,
von der MMU ein Datenübertragungszyklus ausgeführt wird, bei dem sie die erforderlichen Übersetzungsdaten heranholt, und
die Datenübertragung von der anfordernden Station wiederholt wird.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß der Bus Taktleitungsmittel enthält, die den Stationen ein Taktsignal zur Verfügung stellen, wobei die Taktleitungsmittel mit jeder der Stationen und einem Bustaktgeber gekoppelt sind und wobei die über den Bus gesendeten Signale ihren Zustand synchron mit einem Abschnitt des Taktsignals ändern.
4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß der Abschnitt des Taktsignals die ansteigende Flanke des Takt­ signals ist.
5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch ge­ kennzeichnet, daß die Steuerstation mit Hilfe eines vorgegebe­ nen Zuteilungsschemas den Zugriff auf den Bus zuteilt.
6. Verfahren nach einem der Ansprüche 1 bis 4, dadurch ge­ kennzeichnet, daß die Steuerstation den anfordernden Stationen den Zugriff auf den Bus auf der Basis einer zyklisch vergebenen Priorität zuteilt.
7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch ge­ kennzeichnet, daß 32 Datenleitungen vorgesehen werden.
8. Verfahren nach einem der Ansprüche 1 bis 7, dadurch ge­ kennzeichnet, daß während eines beliebigen Taktzyklus jeweils nur eine der Stationen den Bus treibt.
9. Computersystem mit einem Hochgeschwindigkeitsbus (10), der eine virtuelle Speicherdaten-Übertragungsfähigkeit auf­ weist, wobei eine Mehrzahl von Datenverarbeitungsgeräten ("Stationen") (16-26) selektiv mit dem Bus (10) gekoppelt ist und Übersetzungsmittel (30) mit dem Bus gekoppelt sind zum Übersetzen virtueller Adressen in physikalische Adressen; dadurch gekennzeichnet,
daß ein Steuermittel (14) zum Steuern des Zugriffs auf den Bus mit dem Bus gekoppelt ist; und
daß der Bus (10) Adreß/Daten-Leitungsmittel (43) zum Über­ tragen sowohl der virtuellen Adressen als auch von Daten ent­ hält.
10. Computersystem nach Anspruch 9, dadurch gekennzeichnet, daß der Bus (10) eine erste Anzahl von Leitungen (40-53) auf­ weist, daß die Adreß/Daten-Leitungsmittel (43) eine zweite An­ zahl von Leitungen der ersten Anzahl von Leitungen sind, über die sowohl die virtuellen Adressen als auch Daten übertragen werden können, und daß die virtuellen Adressen von den Statio­ nen (16-26) über den Bus zur Verfügung gestellt werden.
11. Computersystem nach Anspruch 9 oder 10, dadurch gekenn­ zeichnet, daß die Übersetzungsmittel eine Speichermanage­ menteinheit (30) sind und daß das Steuermittel (14) mit der Mehrzahl von Datenverarbeitungsgeräten (16-26) gekoppelt ist.
12. Computersystem nach einem der Ansprüche 9 bis 11, da­ durch gekennzeichnet, daß eine zentrale Verarbeitungseinheit (CPU; 12) mit den Übersetzungsmitteln (30) gekoppelt ist.
13. Computersystem nach einem der Ansprüche 9 bis 11, da­ durch gekennzeichnet, daß eine zentrale Verarbeitungseinheit (CPU; 12) mit dem Bus (10) gekoppelt ist.
14. Computersystem nach einem der Ansprüche 9 bis 13, da­ durch gekennzeichnet, daß der Bus (10) aufweist:
Taktleitungsmittel (40) zum Verteilen eines zentralen Takt­ signals auf die Geräte (14, 16-26);
Leitungsmittel (42) für physikalische Adressen zum Versor­ gen der Geräte mit physikalischen Adressen;
Strobe-Adreßleitungsmittel (41) zum Einblenden einer auf den Leitungsmitteln (42) für physikalische Adressen präsenten physikalischen Adresse;
Übertragungsgrößenleitungsmittel (44) zum Anzeigen der Breite der über den Bus (10) zu übertragenden Daten;
Bestätigungsleitungsmittel (46) zum Bestätigen einer Daten­ anforderung durch die Geräte;
Speicherfehlerleitungsmittel (47) zum Anzeigen eines wäh­ rend der Datenübertragung erkannten Fehlers durch die Geräte; Busanforderungsleitungsmittel (48) zum Anfordern eines Zu­ griffs auf den Bus durch ein anforderndes Gerät;
Buszuteilungsleitungsmittel (49) zum Anzeigen an ein anfor­ derndes Gerät, daß ihm der Zugriff auf den Bus zugeteilt ist;
Interrupt-Anforderungsleitungsmittel (50) zum Unterbrechen einer Busoperation durch ein Gerät;
Busauswahlleitungsmittel (53) zum Auswählen eines Gerätes für die Übertragung von Daten.
15. Computersystem nach einem der Ansprüche 9 bis 14, da­ durch gekennzeichnet, daß Latch-Mittel (28) zum Speichern der virtuellen Adressen mit den Übersetzungsmitteln (30) gekoppelt sind.
16. Computersystem nach Anspruch 15, dadurch gekennzeich­ net, daß die Latch-Mittel (28) zum Empfangen der virtuellen Adressen mit dem Bus (10) gekoppelt sind.
17. Computersystem nach einem der Ansprüche 9 bis 16, da­ durch gekennzeichnet, daß die Übersetzungsmittel (30) Mittel zum vorübergehenden Unterbrechen des Übersetzens einer virtuel­ len Adresse in eine physikalische Adresse aufweisen, um ge­ eignete Übersetzungsdaten über den Bus (10) erlangen zu können.
18. Computersystem nach einem der Ansprüche 12 bis 17, da­ durch gekennzeichnet, daß ein Ein/Ausgabe-Bus (60) mit der CPU (12) gekoppelt ist.
19. Computersystem nach einem der Ansprüche 9 bis 18, da­ durch gekennzeichnet, daß die Datenverarbeitungsgeräte ("Stationen") ein Gerät für den direkten Speicherzugriff (DMA) (20) enthalten.
20. Computersystem nach einem der Ansprüche 9 bis 19, da­ durch gekennzeichnet, daß die Datenverarbeitungsgeräte ferner einen Hauptspeicher (16) enthalten.
21. Computersystem nach einem der Ansprüche 9 bis 20, da­ durch gekennzeichnet, daß die Datenverarbeitungsgeräte ferner ein Videogerät (18), einen Coprozessor (22), eine Disketten­ schnittstelle (24) und eine Netzwerkschnittstelle (25) enthal­ ten.
DE4003759A 1989-02-21 1990-02-08 Verfahren und Anordnung zur Übertragung von Daten über einen Bus zwischen selektiv ankoppelbaren Stationen Expired - Fee Related DE4003759C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/313,250 US5121487A (en) 1989-02-21 1989-02-21 High speed bus with virtual memory data transfer capability using virtual address/data lines

Publications (2)

Publication Number Publication Date
DE4003759A1 DE4003759A1 (de) 1990-08-23
DE4003759C2 true DE4003759C2 (de) 1997-01-09

Family

ID=23214975

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4003759A Expired - Fee Related DE4003759C2 (de) 1989-02-21 1990-02-08 Verfahren und Anordnung zur Übertragung von Daten über einen Bus zwischen selektiv ankoppelbaren Stationen

Country Status (9)

Country Link
US (1) US5121487A (de)
JP (1) JPH0661075B2 (de)
KR (1) KR930009063B1 (de)
AU (1) AU628407B2 (de)
CA (1) CA2007690C (de)
DE (1) DE4003759C2 (de)
FR (1) FR2643476B1 (de)
GB (3) GB2228349B (de)
HK (1) HK72094A (de)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR930002316B1 (ko) * 1989-05-10 1993-03-29 미쯔비시덴끼 가부시끼가이샤 버스제어방법 및 화상처리 장치
US5461723A (en) * 1990-04-05 1995-10-24 Mit Technology Corp. Dual channel data block transfer bus
US5253348A (en) * 1990-12-28 1993-10-12 Apple Computer, Inc. Method of arbitration for buses operating at different speeds
US5386566A (en) * 1991-03-20 1995-01-31 Hitachi, Ltd. Inter-processor communication method for transmitting data and processor dependent information predetermined for a receiving process of another processor
US5280591A (en) * 1991-07-22 1994-01-18 International Business Machines, Corporation Centralized backplane bus arbiter for multiprocessor systems
GB2258069B (en) * 1991-07-25 1995-03-29 Intel Corp High speed computer graphics bus
US5355455A (en) * 1991-11-19 1994-10-11 International Business Machines Corporation Method and apparatus for avoiding deadlock in a computer system with two or more protocol-controlled buses interconnected by a bus adaptor
GB2283596B (en) * 1993-11-01 1998-07-01 Ericsson Ge Mobile Communicat Multiprocessor data memory sharing
US5526496A (en) * 1994-04-22 1996-06-11 The University Of British Columbia Method and apparatus for priority arbitration among devices in a computer system
US5689660A (en) * 1995-02-28 1997-11-18 Hewlett-Packard Co. Enhanced peripheral component interconnect bus protocol
US5797018A (en) * 1995-12-07 1998-08-18 Compaq Computer Corporation Apparatus and method of preventing a deadlock condition in a computer system
US6141769A (en) 1996-05-16 2000-10-31 Resilience Corporation Triple modular redundant computer system and associated method
US5928346A (en) * 1996-09-11 1999-07-27 Hewlett-Packard Company Method for enhanced peripheral component interconnect bus split data transfer
US6282625B1 (en) 1997-06-25 2001-08-28 Micron Electronics, Inc. GART and PTES defined by configuration registers
US6249853B1 (en) 1997-06-25 2001-06-19 Micron Electronics, Inc. GART and PTES defined by configuration registers
US6069638A (en) * 1997-06-25 2000-05-30 Micron Electronics, Inc. System for accelerated graphics port address remapping interface to main memory
US6112316A (en) * 1997-12-03 2000-08-29 Micron Electronics, Inc. System for use of bus parking states to communicate diagnostic information
US6092219A (en) * 1997-12-03 2000-07-18 Micron Technology, Inc. Method for use of bus parking states to communicate diagnostic information
US6157398A (en) 1997-12-30 2000-12-05 Micron Technology, Inc. Method of implementing an accelerated graphics port for a multiple memory controller computer system
US6252612B1 (en) 1997-12-30 2001-06-26 Micron Electronics, Inc. Accelerated graphics port for multiple memory controller computer system
US7071946B2 (en) * 1997-12-30 2006-07-04 Micron Technology, Inc. Accelerated graphics port for a multiple memory controller computer system
US6378013B1 (en) * 1998-09-17 2002-04-23 Micron Technology, Inc. System for assessing performance of computer systems
US6366969B1 (en) * 1998-09-17 2002-04-02 Micron Technology, Inc. Method of determining data transfer rate of a device by measuring the transfer rate of data between a virtual drive and the device
US7159128B2 (en) * 2003-04-16 2007-01-02 Seiko Epson Corporation Method and apparatus for selectively reducing the depth of digital data
US8406076B2 (en) * 2010-06-28 2013-03-26 Sandisk Technologies Inc. FRDY pull-up resistor activation
US8416905B2 (en) 2010-09-24 2013-04-09 Intel Corporation Digital NRZI signal for serial interconnect communications between the link layer and physical layer

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3938098A (en) * 1973-12-26 1976-02-10 Xerox Corporation Input/output connection arrangement for microprogrammable computer
JPS5676654A (en) * 1979-11-29 1981-06-24 Fujitsu Ltd Bus transmission system
WO1981002479A1 (en) * 1980-02-28 1981-09-03 Intel Corp Microprocessor interface control apparatus
JPS5786180A (en) * 1980-11-17 1982-05-29 Hitachi Ltd Memory device having address converting mechanism
US4550368A (en) * 1982-07-02 1985-10-29 Sun Microsystems, Inc. High-speed memory and memory management system
US4494193A (en) * 1982-09-30 1985-01-15 At&T Bell Laboratories Deadlock detection and resolution scheme
US4628480A (en) * 1983-10-07 1986-12-09 United Technologies Automotive, Inc. Arrangement for optimized utilization of I/O pins
GB8405491D0 (en) * 1984-03-02 1984-04-04 Hemdal G Computers
US4933835A (en) * 1985-02-22 1990-06-12 Intergraph Corporation Apparatus for maintaining consistency of a cache memory with a primary memory
US5067071A (en) * 1985-02-27 1991-11-19 Encore Computer Corporation Multiprocessor computer system employing a plurality of tightly coupled processors with interrupt vector bus
US4910655A (en) * 1985-08-14 1990-03-20 Apple Computer, Inc. Apparatus for transferring signals and data under the control of a host computer
US4694395A (en) * 1985-11-25 1987-09-15 Ncr Corporation System for performing virtual look-ahead memory operations
US4763244A (en) * 1986-01-15 1988-08-09 Motorola, Inc. Paged memory management unit capable of selectively supporting multiple address spaces
US4766334A (en) * 1986-03-07 1988-08-23 The Singer Company Level clamp for Tri-state CMOS bus structure
US4774659A (en) * 1986-04-16 1988-09-27 Astronautics Corporation Of America Computer system employing virtual memory
US4803621A (en) * 1986-07-24 1989-02-07 Sun Microsystems, Inc. Memory access system
US4713827A (en) * 1986-11-10 1987-12-15 Ncr Corporation Terminator for a cmos transceiver device
JPS63163648A (ja) * 1986-12-26 1988-07-07 Hitachi Ltd メモリ管理装置
JPH01502626A (ja) * 1987-05-01 1989-09-07 ディジタル イクイプメント コーポレーション バックプレーンバス

Also Published As

Publication number Publication date
GB2263378A (en) 1993-07-21
GB2228349B (en) 1993-10-27
GB2263349B (en) 1993-10-06
FR2643476B1 (fr) 1994-11-04
FR2643476A1 (fr) 1990-08-24
GB8924639D0 (en) 1989-12-20
GB9304140D0 (en) 1993-04-14
GB9304139D0 (en) 1993-04-14
DE4003759A1 (de) 1990-08-23
GB2228349A (en) 1990-08-22
JPH0661075B2 (ja) 1994-08-10
CA2007690A1 (en) 1990-08-21
JPH02289017A (ja) 1990-11-29
GB2263378B (en) 1993-10-06
KR900013402A (ko) 1990-09-05
AU628407B2 (en) 1992-09-17
US5121487A (en) 1992-06-09
CA2007690C (en) 1998-04-28
AU4379389A (en) 1990-08-30
HK72094A (en) 1994-08-05
KR930009063B1 (ko) 1993-09-22
GB2263349A (en) 1993-07-21

Similar Documents

Publication Publication Date Title
DE4003759C2 (de) Verfahren und Anordnung zur Übertragung von Daten über einen Bus zwischen selektiv ankoppelbaren Stationen
DE69027515T2 (de) Vorrichtung für Prioritätsarbitrierungskonditionierung bei gepufferter Direktspeicheradressierung
DE69932400T2 (de) Steuerungsvorrichtung für einen Portverwalter zur Verbindung von verschiedenen Funktionsmodulen
DE3909948C2 (de)
DE2760322C2 (de)
DE2944497C2 (de)
DE3750938T2 (de) Multiprozessorsystem.
DE3810231C2 (de)
DE3704056A1 (de) Peripherer dma-controller fuer datenerfassungssysteme
DE3642324C2 (de) Multiprozessoranlage mit Prozessor-Zugriffssteuerung
DE3146356A1 (de) Datenverarbeitungssystem
DE69223304T2 (de) Arbitrierungsverriegelungverfahren und -vorrichtung für einen entfernten Bus
DE4142756A1 (de) Datenweg-einrichtung zur kopplung zweier busse
EP0929041A2 (de) Verfahren und Anordnung zum Betreiben eines Bussystems
DE3606211A1 (de) Multiprozessor-computersystem
DE102005048581B4 (de) Teilnehmerschnittstelle zwischen einem FlexRay-Kommunikationsbaustein und einem FlexRay-Teilnehmer und Verfahren zur Übertragung von Botschaften über eine solche Schnittstelle
DE4035837A1 (de) Bus-hauptschnittstellenschaltung mit transparenter unterbrechung einer datenuebertragungsoperation
EP1787204A1 (de) Botschaftsverwalter und verfahren zur steuerung des zugriffs auf daten eines botschaftsspeichers eines kommunikationsbausteins
DE19614237C1 (de) Kommunikationssystem mit einer Meisterstation und mindestens einer Sklavenstation
DE69119149T2 (de) Struktur zur direkten Speicher-zu-Speicher-Übertragung
DE69718710T2 (de) Busbrückenanordnung
DE60314641T2 (de) Verfahren, system und programm zur konfiguration von teilnehmern auf einem bus fürein-/ausgabeoperationen
DE10306285A1 (de) Mikrocomputersystem
DE69320732T2 (de) Verfahren zur Gerätadressierung und zur Datensignalübertragung auf einem Bus
DE19846914C2 (de) Datenbus und Verfahren zum Kommunizieren zweier Baugruppen mittels eines solchen Datenbusses

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee