DE69132652T2 - Rechnerdatenleitweglenkungssystem - Google Patents

Rechnerdatenleitweglenkungssystem Download PDF

Info

Publication number
DE69132652T2
DE69132652T2 DE69132652T DE69132652T DE69132652T2 DE 69132652 T2 DE69132652 T2 DE 69132652T2 DE 69132652 T DE69132652 T DE 69132652T DE 69132652 T DE69132652 T DE 69132652T DE 69132652 T2 DE69132652 T2 DE 69132652T2
Authority
DE
Germany
Prior art keywords
output
input
data
multiplexer
byte
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69132652T
Other languages
English (en)
Other versions
DE69132652D1 (de
Inventor
Charles R. Zeller
Terry J. Parks
Michael D. Durkin
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.)
Dell USA LP
Original Assignee
Dell USA LP
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 Dell USA LP filed Critical Dell USA LP
Application granted granted Critical
Publication of DE69132652D1 publication Critical patent/DE69132652D1/de
Publication of DE69132652T2 publication Critical patent/DE69132652T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • G06F13/4018Coupling between buses with data restructuring with data-width conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure

Landscapes

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

Description

  • Die Erfindung bezieht sich auf Verfahren und Vorrichtung zum Leiten von Datenwörtern zwischen den Komponenten eines Computersystems und insbesondere auf Verfahren und Vorrichtung zum Leiten von Datenwörtern zwischen den Komponenten eines Computer-Systems, wie z. B. dem Prozessor, dem Speicher und/oder Eingangs/Ausgangs-Vorrichtungen unabhängig davon, ob die Komponenten so konfiguriert sind, daß sie Datenwörter mit der gleichen Breite verarbeiten.
  • Wie den Fachleuten wohlbekannt ist, besteht ein Computer-System aus einer Anzahl Teilsysteme, die durch die Pfade untereinander verbunden sind, die Daten zwischen den Teilsystemen übertragen. Zwei derartige Teilsysteme sind die Zentraleinheit ("Prozessor") oder das Prozessor-Teilsystem und ein Speicher und das Speicher-Teilsystem ("Speicher"), das mehrere Speichervorrichtungen umfassen kann. Der Prozessor steuert den Betrieb des Computer-Systems, indem er eine Folge von Befehlen ausführt, um eine Folge mathematischer Operationen an den Daten auszuführen. Sowohl die Befehle als auch die Daten sind im Speicher des Computers als binäre Informationen, Muster aus logischen Einsen und Nullen, gespeichert. Während der Prozessor und der Speicher die wesentlichsten Teilsysteme eines Computer-Systems darstellen, enthalten praktisch alle Computer-Systeme außerdem irgendeine Anzahl an Eingangs/Ausgangs-Vorrichtungen ("E/A"-Vorrichtungen) für die Übertragung von Informationen in das und aus dem Computer-System. Die häufigsten E/A-Vorrichtungen, die mit einem Computer-System verwendet werden, umfassen eine Tastatur zum Eingeben von Informationen und Befehlen, einen Videomonitor und einen Drucker, um die Informationen für den Anwender zurückzuerhalten, und ein Diskettenlaufwerk oder eine Festplatte, um permanente Aufzeichnungen der gespeicherten Informationen zu machen oder um zusätzliche Software auszuführen. Um eine E/A-Vorrichtung in einem Computer-System zu installieren, wird die E/A-Vorrichtung an einen Ausgang des Computers ("E/A-Anschluß") angeschlossen, der wiederum einen Pfad zwischen der E/A-Vorrichtung und den Teilsystemen des Computers bereitstellt.
  • Es ist den Fachleuten weiter wohlbekannt, daß alle Computer-Systeme ferner Kommunikationskanäle oder "Busse" zwischen dem Prozessor, dem Spei cher und allen anderen Teilsystemen, die in einem speziellen Computer-System enthalten sind, enthalten. Typischerweise sind Computer-Systeme mit einem Datenbus, der die Daten zum und vom Speicher überträgt, einem Adressenbus, der Signale überträgt, um eine gegebene Speicheradresse zu lokalisieren, und einen Steuerbus, der Takt- und Steuerimpulse an alle Teilsysteme überträgt, die in einem Computer-System enthalten sind, versehen. Außerdem sind die E/A-Anschlüsse ebenfalls an die Busse angeschlossen, um die E/A-Vorrichtungen mit dem Computer-System zu verbinden.
  • Die Informationen werden zwischen den Computer-Komponenten in der Form von Datenwörtern übertragen. Ein Datenwort ist eine Folge binärer Ziffern oder "Bits", wobei jedes Bit zu einer "1" oder einer "0" äquivalent ist. Während die Größe eines Datenwortes zwischen den Computer-Komponenten mit verschiedener Konstruktion variieren kann, weisen die Datenwörter am häufigsten eine Länge zwischen 8 und 32 Bits auf. Im allgemeinen, da zunehmend schnellere Computer-Systeme gesucht sind, hat die Größe der Datenwörter zugenommen, so daß die Daten in größeren Einheiten verarbeitet werden können, wobei pro Zeiteinheit mehr Datenbits durch das System bewegt werden. Während z. B. Prozessor-Teilsysteme, die 16-Bit-Wörter verwendeten, erst vor ein paar Jahren üblich waren, verwenden die Prozessor-Teilsysteme des gegenwärtigen Standes der Technik, wie z. B. die von der Intel Corporation hergestellten Mikroprozessoren 80386 und 80486, 32-Bit Architekturen, sogenannte Doppelwort-Architekturen, um die Daten schneller zu handhaben. Ähnlich können die Speicher-Teilsysteme des Computer-Systems abermals für den schnelleren Zugriff nun Daten in Einheiten von 64 Bits speichern und handhaben, d. h. vier zusammenhängende Wörter aus jeweils 16 Bits oder zwei zusammenhängende Doppelwörter aus jeweils 32 Bits.
  • Jedes Computer-Teilsystem und/oder jede E/A-Vorrichtung, die kombiniert sind, um ein Computer-System zu bilden, sind konfiguriert, um die Daten in Einheiten zu übertragen, die eine spezifizierte Anzahl von Bits umfassen. Die Anzahl der Bits, die ein Teilsystem oder eine E/A-Vorrichtung als eine einzelne Einheit verarbeiten kann, wird im allgemeinen als seine "Datenbreite" bezeichnet. Wenn ein Teilsystem-Paar, wie z. B. ein E/A-Vorrichtungs-Paar oder eine E/A-Vorrichtung und ein Teilsystem so konfiguriert sind, daß sie die gleiche Datenbreite aufweisen, sind die zwei "homogen" oder aneinander "angepaßt". Wenn die sendende Vorrichtung die Daten in Einheiten mit der gleichen Größe ausgibt, für deren Zugriff die empfangende Vorrichtung konstruiert ist, sind die Datenübertragun gen zwischen homogenen Vorrichtungen entlang eines Verbindungsbusses relativ einfach. Falls jedoch ein Teilsystem-Paar, ein E/A-Vorrichtungs-Paar oder eine E/A-Vorrichtung und das Teilsystem mit verschiedenen Datenbreiten konfiguriert sind, sind die zwei "heterogen" oder "fehlangepaßt". Da heterogene Vorrichtungen den Verbindungsbus nicht mit Dateneinheiten in der gleichen Größe adressieren können, sind die Datenübertragungen zwischen heterogenen Vorrichtungen komplizierter.
  • Computer-Systeme, die aus fehlangepaßten Teilsystemen und/oder E/A-Vorrichtungen aufgebaut sind, ergeben sich aus irgendeiner Anzahl von Gründen. Die technologischen Entwicklungen, die die Übertragung von Daten in zunehmend größeren Einheiten erlauben, sind z. B. oft chronologisch unregelmäßig verteilt. Während folglich eine bestehende E/A-Vorrichtung an ein älteres 8- oder sogar 16-Bit-Prozessor-Teilsystem angepaßt sein kann, würde die gleiche E/A-Vorrichtung fehlangepaßt sein, falls sie an ein neueres 32-Bit-Prozessor-Teilsystem angeschlossen wird. Im Ergebnis würde ein Systemkonstrukteur gezwungen sein, um aus einer Verbesserung der Betriebsgeschwindigkeit eines Computer-Teilsystems zu profitieren, die sich aus einem verbesserten Teilsystem ergibt, das größerer Dateneinheiten handhabt, alle Teilsysteme und E/A-Vorrichtungen zu ersetzen, die nicht auf die gleiche Größe einer Dateneinheit zugreifen können, wenn es nicht irgendeinen Weg gibt, um die Fehlanpassung der Vorrichtungen zu kompensieren.
  • Das US-Patent Nr. 4.716.527 an Graciotti ist z. B. auf eine Vorrichtung gerichtet, die einen Mikroprozessor mit einem 16-Bit-Datenbus mit Peripheriegeräten, Erweiterungsvorrichtungen und zugeordneter Software, die für einen 8-Bit-Datenbus konstruiert sind, kompatibel macht, indem es einen Busumsetzer vorsieht, der die Daten vom 16-Bit-Datenbus empfängt und den Datenbus in hohe und tiefe Abschnitte unterteilt. Die hohen und tiefen Abschnitte können dann selektiv an den 8-Bit-Datenbus gekoppelt werden. Das heißt, falls ein 16-Bit-Wort vom Mikroprozessor zu einer 8-Bit-breiten externen Vorrichtung übertragen wird, werden die oberen und unteren Abschnitte selektiv an die 8-Bit-breite externe Vorrichtung gekoppelt.
  • Während die Verbindung eines breiteren Datenbusses an einen schmalen Datenbus mittels eines Datenregisters, das eine Breite aufweist, die der des breiteren Datenbusses entspricht, und einer Wähl-Schaltungsanordnung, die die verschiedenen Abschnitte des Datenregisters, einen zu einem Zeitpunkt, in einer geeigneten Reihenfolge an den schmaleren Datenbus anschließt, einen zufriedenstellenden Betrieb schaffen kann, können derartige Typen von Schnittstellenmechanismen einen Engpaß für die Bewegung der Daten in anderen Anwendungen darstellen. Insbesondere wenn mehrere Einheiten, die Daten handhaben, an eine Seite des Schnittstellenmechanismus angeschlossen sind, während die Einheften, die Daten handhaben, auf den entgegengesetzten Seiten des Schnittstellenmechanismus nicht immer bereit sind, um zum gleichen Zeitpunkt eine Datenübertragung auszuführen, dann kann Verzögerungen begegnet werden, wenn eine der mehreren Einheiten auf den Abschluß einer Datenübertragung von einer anderen der mehreren Einheiten warten muß.
  • Ähnlich ist das US-Patent Nr. 4.309.754 an Dinwiddie Jr. auf einen Daten-Schnittstellenmechanismus gerichtet, um Busse mit verschiedenen Bitbreiten zu koppeln. Um die Datenbytes in Datenwörter mit mehreren Bytes umzusetzen, sieht Dinwiddie Jr. mehrere Schreib-Lese-Speichereinheiten (RAM-Speichereinheiten), die sich zwischen den zwei Datenbussen befinden, und eine Adressierungsstruktur, die Steuersignale erzeugt, vor. Für aufeinanderfolgende Datenübertragungen zu dem oder von dem schmaleren Datenbus wählt eine . Folge verschiedener Chip-Auswahlsignale die verschiedenen RAM-Einheiten, eine nach der anderen, in einer sich wiederholenden Folge, um aufeinanderfolgende Datenbytes zu übertragen. Wie Graciotti macht jedoch die sich wiederholende Zugriffsfolge Dinwiddie Jr. besonders unflexibel, sollten sich die relativen Breiten der gekoppelten Busse ändern. Außerdem würden die durch die Schaltungsanordnung von Dinwiddie Jr. erzeugten Chip-Auswahlsignale nicht in der Lage sein, Daten zwischen Schnittstellenunterschieden mit sich ändernder Breite zu übertragen.
  • Die europäische Patentanmeldung Nr. 0 255 593 offenbart ein Busschnittstellen-System, das Informationssignale zwischen zwei Bussen mit unterschiedlicher Breite durch die Verwendung eines Mehrwort-Pufferspeichers und eines Registers übertragen kann, die durch einen Mikroprozessor gesteuert werden, wobei die Informationssignale von einem Bus mit einer ersten Breite in den Mehrwort-Speicher gelesen und in Informationssignale einer zweiten Breite in dem Register für die Übertragung zu einem Bus mit der zweiten Breite zusammengesetzt werden.
  • Die französische Anmeldung Nr. 2 634 919 offenbart einen Mikroprozessorbus, wobei sie GB 2 221 553A als äquivalent besitzt. Entsprechend ihrer Zusammenfassung offenbart GB 2 221 553A einen Mikroprozessor, der eine Breite des internen Datenbusses von n Bytes aufweist, wobei n größer als 2 ist (in der bevorzugten Ausführungsform ein 32-Bit-Bus), wobei sie Adressensignale für eine n-Byte-Übertragung (Lesen oder Schreiben) der Daten vorsieht, einen Eingang, der wenigstens ein "Größen"-Signal empfängt, das die Anzahl der Bytes anzeigt, die ein externer Speicher beim nächsten Bereitsignal übertragen wird, wobei der Mikroprozessor Logikmittel und einen Ausgang umfaßt, die ein "letztes" Signal bereitstellen, das anzeigt, daß eine Datenübertragungs-Anforderung durch den Mikroprozessor mit der Datenübertragung erfüllt wird, die beim nächsten Bereitsignal erfolgt, wobei dieses Logikmittel, das die Anzahl der Bytes verfolgt, die periodisch übertragen worden sind, das Byte-Bemessungssignal abtasten und . den Status des "letzten" Signals liegend" ändern können; deshalb kann der externe Speicher beispielhaft ein spezielles Byte-Größensignal als einen vorgegebenen Zustand bereitstellen und dann das Signal ändern, wenn der Speicher die Anzahl der Bytes bestimmt, die der Speicher tatsächlich übertragen kann, wobei das "letzte" Signal dementsprechend geändert wird. GB 2 221 553A enthält die spezifische Offenbarung, daß in einigen Mikroprozessoren ein interner Datenbus aus z. B. 32 Bits direkt mit einem externen Datenbus gekoppelt werden kann, der weniger Leitungen aufweist, wie z. B. im Fall des Intel 80386, in dem ein 8-Bit-Datenbus direkt mit den unteren 8 Leitungen/Bits des internen Datenbusses diees Mikroprozessors gekoppelt werden kann, wobei Signale an den Mikroprozessor angelegt werden, um anzuzeigen, daß lediglich die unteren 8 Leitungen des Datenbusses im Gebrauch sind, obwohl fast immer der Mikroprozessor einen internen Multiplexer enthält, der erlaubt, daß die Leitungen des externen Datenbusses selektiv an die vier Byte-Leitungen des internen Datenbusses gekoppelt werden.
  • Die vorliegende Erfindung schafft eine Vorrichtung zum Leiten von Datenwörtern zwischen Komponenten eines Computersystems, umfassend:
    einen ersten Eingangs/Ausgangs-Anschluß zum Anschließen an eine erste Eingangs/Ausgangs-Vorrichtung, die eine erste Komponente des Computersystems bildet und Datenwörter mit einer Breite von n Bits handhaben kann,
    einen zweiten Eingangs/Ausgangs-Anschluß zum Anschließen an eine zweite Eingangs/Ausgangs-Vorrichtung, die eine zweite Komponente des Computersystems bildet und Datenwörter mit einer Breite eines Vielfachen von n Bits handhaben kann, wobei ein erster Teil des zweiten Eingangs/Ausgangs-Anschlus ses n Bits handhabt, die den n Bits entsprechen, die von dem ersten Eingangs/Ausgangs-Anschluß gehandhabt werden, und ein zweiter Teil des zweiten Eingangs/Ausgangs-Anschlusses die übrigen Bits handhabt,
    mehrere Eingangs-Schaltmultiplexer, die erste Eingangsanschlüsse enthalten, die an den ersten Eingangs/Ausgangs-Anschluß und an den ersten Teil des zweiten Eingangs/Ausgangs-Anschlusses angeschlossen sind, wobei die Eingangs-Schaltmultiplexer weitere Eingangsanschlüsse enthalten, die an den zweiten Teil des zweiten Eingangs/Ausgangs-Anschlusses angeschlossen sind,
    eine erste Speichervorrichtung, die einen Eingangsanschluß enthält, der an den ersten Eingangs/Ausgangs-Anschluß und an den ersten Teil des zweiten Eingangs/Ausgangs-Anschlusses angeschlossen ist, wobei die erste Speichervorrichtung einen Ausgangsanschluß enthält,
    mehrere weitere Speichervorrichtungen, die Eingangsanschlüsse, die an die Ausgangsanschlüsse der Eingangs-Schaltmultiplexer angeschlossen sind, sowie jeweilige Ausgangsanschlüsse enthalten,
    einen dritten Eingangs/Ausgangs-Anschluß, der Datenwörter mit einer Breite von m Bits handhaben kann und an die Ausgangsanschlüsse der ersten und der weiteren Speichervorrichtungen angeschlossen ist,
    einen ersten Ausgangs-Schaltmultiplexer, der einen ersten Eingangsanschluß enthält, der an die Ausgangsanschlüsse der ersten und der weiteren Speichervorrichtungen angeschlossen ist,
    weitere Ausgangs-Schaltmultiplexereinrichtungen, die Eingangsanschlüsse enthalten, die an den Ausgangsanschluß des ersten Ausgangs-Schaltmultiplexers angeschlossen sind,
    mehrere Ausgangs-Speicherpuffer, die Eingangsanschlüsse, die an den Ausgangsanschluß der weiteren Ausgangs-Schaltmultiplexereinrichtungen angeschlossen sind, sowie jeweilige Ausgangsanschlüsse enthalten, wobei der Ausgangsanschluß eines ersten der Ausgangs-Speicherpuffer an den ersten Eingangs/Ausgangs-Anschluß und an den ersten Teil des zweiten Eingangs/Ausgangs-Anschlusses angeschlossen ist und die Ausgangsanschlüsse der verbleibenden Ausgangs-Speicherpuffer an den zweiten Teil des zweiten Eingangs/Ausgangs-Anschlusses angeschlossen sind,
    einen Eingangs-Lenkungscode-Decodierer, der so angeschlossen ist, daß er erste Steuersignale empfängt und die Eingangs-Schaltmultiplexer und die ersten und weiteren Speichervorrichtungen in Übereinstimmung mit den ersten Steuersignalen steuert, um Daten von den ersten und zweiten Eingangs/Ausgangs-Anschlüssen an den dritten Eingangs/Ausgangs-Anschluß zu leiten, wobei Böcke der Datenwörter gegebenenfalls durch die Eingangs-Schaltmultiplexer und die ersten und weiteren Speichervorrichtungen umgruppiert werden, um die Daten dem dritten Eingangs/Ausgangs-Anschluß in Wörtern mit einer Breite von m Bits zu präsentieren, und
    einen Ausgangs-Lenkungscode-Decodierer, der so angeschlossen ist, daß er zweite Steuersignale empfängt und den ersten Ausgangs-Schaltmultiplexer die weiteren Ausgangs-Schaltmultiplexereinrichtungen und die Ausgangs-Speicherpuffer in Übereinstimmung mit den zweiten Steuersignalen steuert, um Daten von den Ausgangsanschlüssen der ersten und weiteren Speichervorrichtungen an die ersten und zweiten Eingangs/Ausgangs-Anschlüsse zu leiten, indem Daten vom ersten Eingangsanschluß des ersten Ausgangs-Schaltmultiplexers gewählt werden, wobei Datenwörter gegebenenfalls durch den ersten Ausgangs-Schaltmultiplexer, die weiteren Ausgangs-Schaltmultiplexereinrichtungen und die Ausgangs-Speicherpuffer umgruppiert werden, um die Daten den ersten und zweiten Eingangs/Ausgangs-Anschlüssen in Wörtern mit einer Breite von n Bits bzw. in Wörtern mit einer Breite eines Vielfachen von n Bits zu präsentieren.
  • Vorzugsweise enthält der erste Ausgangs-Schaltmultiplexer einen zweiten Eingangsanschluß, wovon ein Teil an den ersten Eingangs/Ausgangs-Anschluß angeschlossen ist und der Rest an die Eingangsanschlüsse der weiteren Speichervorrichtungen angeschlossen ist, wobei der Ausgangs-Lenkungscode-Decodierer so angeschlossen ist, daß er die Eingangs-Schaltmultiplexer und die ersten und weiteren Speichervorrichtungen in Übereinstimmung mit weiteren Steuersignalen steuert, um durch die Wahl von Daten vom zweiten Eingangsanschluß des ersten Ausgangs-Schaltmultiplexers Daten zwischen den ersten und zweiten Eingangs/Ausgangs-Anschlüssen über die Eingangsanschlüsse der ersten und der weiteren Speichervorrichtungen zu leiten.
  • In einer Anordnung umfaßt die Vorrichtung eine erste zusätzliche Speichervorrichtung, wovon ein Eingangsanschluß dem Anschluß an einen Prozessor dient, wobei der erste Ausgangs-Schaltmultiplexer einen dritten Eingangsanschluß enthält und Einrichtungen enthalten sind, um einen Ausgangsanschluß der ersten zusätzlichen Speichervorrichtung an den dritten Eingangsanschluß des ersten Ausgangs-Schaltmultiplexers anzuschließen.
  • Vorzugsweise umfaßt die Vorrichtung eine zweite zusätzliche Speichervor richtung und einen zweiten Ausgangs-Schaltmultiplexer, wobei die zweite zusätzliche Speichervorrichtung einen Eingangsanschluß für den Anschluß an einen Speicher enthält und der zweite Ausgangs-Schaltmultiplexer so betreibbar ist, daß er entweder den Ausgangsanschluß der ersten zusätzlichen Speichervorrichtung oder einen Ausgangsanschluß der zweiten zusätzlichen Speichervorrichtung an den dritten Eingangsanschluß des ersten Ausgangs-Schaltmultiplexers anschließt.
  • Vorzugsweise umfaßt die Vorrichtung eine dritte zusätzliche Speichervorrichtung, die zwischen einen Ausgangsanschluß des zweiten Ausgangs-Schaltmultiplexers und den dritten Eingangsanschluß des ersten Ausgangs-Schaltmultiplexers geschaltet ist.
  • Vorzugsweise umfaßt die Vorrichtung eine vierte zusätzliche Speichervorrichtung, die einen Eingangsanschluß für den Anschluß an den Speicher und einen Ausgangsanschluß, der an einen zusätzlichen Eingangsanschluß des zweiten Ausgangs-Schaltmultiplexers angeschlossen ist, enthält.
  • Die Vorrichtung kann in einem Computer-System enthalten sein.
  • Die vorliegende Erfindung kann besser verstanden werden, wobei ihre zahlreichen Aufgaben, Merkmale und Vorteile für die Fachleute durch Bezugnahme auf die beigefügte Zeichnung offensichtlich werden, worin:
  • 1 ein Basisblockschaltplan eines Computer-Systems ist;
  • 2 ein Blockschaltplan eines Prozessor-Teilsystems ist, wie es z. B. in dem Computer-System nach 1 verwendet werden könnte;
  • 3 ein Blockschaltplan eines Speicher-Teilsystems ist, wie es z. B. in dem Computer-System nach 1 verwendet werden könnte; und
  • 4 ein Blockschaltplan der Schnittstelle zwischen dem Prozessorbus des Computer-Systems nach 1 und einer E/A-Vorrichtung ist.
  • In der Zeichnung, in der gleiche Bezugszeichen völlig gleiche oder ähnliche Elemente durch die verschiedenen Ansichten hindurch bezeichnen, ist in 1 ein allgemeiner Basisblockschaltplan eines Computer-Systems dargestellt. Die vorliegende Erfindung wird hierin anfangs auf dieser Ebene und einer Anzahl aufeinanderfolgender, ausführlicherer Ebenen betrachtet, um ein vollständiges Verständnis und eine vollständige Anerkennung der Rolle und des Betriebs der vorliegenden Erfindung in einer Umgebung zu sichern, in der sie zweckmäßig verwendet werden kann.
  • 1 veranschaulicht ein Personal-Computer-System, das die vorliegende Erfindung verwendet. Es sind vier Hauptbusse zu sehen, die die Haupt schnittstellen auf der höchsten Ebene darstellen. Diese Hauptbusse sind ein erster Speicherverbinder 2, ein zweiter Speicherverbinder 4, ein Prozessorbus 16 und ein E/A-Bus 20. Der erste Speicherverbinder ist eine proprietäre Schnittstelle zwischen einem Prozessor-Teilsystems 6, einem ersten Speicher-Teilsystem 10, das für das Prozessor-Teilsystem 6 dediziert ist, und einen zweiten Speicher-Teilsystem 12, das ebenfalls für das Prozessor-Teilsystem 6 dediziert ist. Vorzugsweise sind das erste Speicher-Teilsystem 10 und das zweite Speicher-Teilsystem 12 jedes als ein verschachtelter 64-Bit-Speicher mit zwei zugeordneten Bänken für die Speicherung jeweils eines 32-Bit-Doppelworts, einer ungeraden und einer geraden, konfiguriert. Das Prozessor-Teilsystem 6, das erste Speicher-Teilsystem 10 und das zweite Speicher-Teilsystem 12 sind durch die Speicher-Schnittstellen 3, 102 bzw. 5 an den Speicherverbinder 2 angeschlossen. Das Prozessor-Teilsystem 6 ist außerdem durch eine Prozessorschnittstelle 11 an den Prozessorbus 16 angeschlossen.
  • Der zweite Speicherverbinder 4 ist ebenfalls eine proprietäre Schnittstelle, hier zwischen einem ersten Computer-Teilsystem 8 und einem zweiten Computer-Teilsystem 14. Es ist vorstellbar, daß verschiedene Typen von Teilsystemen, abhängig von den speziellen, für das Gesamt-Computer-System gewünschten Betriebsfähigkeiten, als die Computer-Teilsysteme 8, 14 installiert sind. Das Computer-Teilsystem 8 kann z. B. ein Prozessor-Teilsystem oder eine E/A-Vorrichtung sein, obwohl für die Zwecke der folgenden Erörterung ein Prozessor 8 als das Computer-Teilsystem 8 ausgewählt werden sollte. Außerdem kann das Computer-Teilsystem 14 ein Prozessor-Teilsystem, eine E/A-Vorrichtung oder ein Speicher-Teilsystem sein, obwohl für die Zwecke der folgenden Erörterung eine intelligente E/A-Vorrichtung 14 als das Computer-Teilsystem 14 ausgewählt werden sollte. Jedes Computer-Teilsystem 8, 14 ist mit einer Speicherschnittstelle 7 bzw. 9, um an den Speicherverbinder 4 angeschlossen zu werden, und einer Prozessorschnittstelle 13 bzw. 15, um an den Prozessorbus 16 angeschlossen zu werden, versehen.
  • Der Prozessorbus 16 ist ein Mehrfach-Master-Bus, der die architektonische Bruchstelle zwischen den Verarbeitungs-Teilsystemen (dem Prozessor 6 und dem Prozessor 8) und der E/A-Vorrichtung ist, die eine E/A-Vorrichtung 18, die E/A-Vorrichtung 14 und über einen E/A-Bus 20 die E/A-Erweiterungssteckplätze 22, 24, 26, 28, 30, 32, 34, 36, 38, 40 enthält. Der Prozessorbus 16 führt verschiedene Funktionen aus. Zuerst dient der Prozessorbus 16 als eine Verbindung zwi schen den Prozessoren 6 und 8 und der intelligenten E/A-Vorrichtung 14; allem Systemspeicher einschließlich des ersten Speicher-Teilsystems 10 und des zweiten Speicher-Teilsystems 12; und den E/A-Vorrichtungen, die die E/A-Vorrichtung 18 und die E/A-Erweiterungssteckplätze 22, 24, 26, 28, 30, 32, 34, 36, 38, 40 enthält, die alle für die Installation einer E/A-Vorrichtung darin konfiguriert sind.
  • Wie oben beschrieben ist, erlaubt der Prozessorbus 16 jedem Prozessor-Teilsystem 6, 8, auf das Speicher-Teilsystem eines anderen Prozessor-Teilsystems 8, 6 zuzugreifen. Dieser Zugriff wird "durch" den Prozessor erlaubt, der direkt an den Speicher angeschlossen ist. Das heißt, wenn ein Prozessor, der an den Prozessorbus 16 angeschlossen ist, den Zugriff auf eine Speicherstelle im Speicher irgendeines anderen Prozessors anfordert, vervollständigt der andere Prozessor den Zugriff lokal, empfängt die Adresse vom Prozessorbus 16 und überträgt die Daten vom und zum Prozessorbus 16. Außerdem dient der Prozessorbus 16 als eine Kommunikationsverbindung zwischen den Prozessoren 6 und B. Durch einen Kommunikationsmechanismus zwischen den Prozessoren kann jeder Prozessor jeden anderen Prozessor adressieren und unterbrechen.
  • Außer dem vorangegangenen wirkt der Prozessorbus 16 außerdem als eine Schnittstelle zwischen den Prozessor-Speicherkomplexen und der E/A-Vorrichtung 18. Durch einen System- und Bus-Controller 42 werden die Adressen und die Daten zwischen dem Prozessorbus 16 und dem E/A-Bus 20 durch eine Gruppe von Sendern/Empfängern 44, 46 (wie z. B. den Sendern/Empfängern des von Texas Instruments Incorporated hergestellten Modells 74ALS245) umgesetzt. Durch diese Schnittstelle kann der Prozessor-Bus-Master sowohl auf die E/A-Vorrichtung 18 als auch auf die E/A-Erweiterungssteckplätze 22, 24, 26, 28, 30, 32, 34, 36, 38, 40 zugreifen. Noch weiter wirkt der Prozessorbus 16 als der Datenpfad für E/A-zu-E/A-Zugriffe. Wie im folgenden ausführlicher beschrieben ist, erzeugt der System- und Bus-Controller 42 "Lenkungscodes", die das für die Kommunikation zwischen den Vorrichtungen notwendige Protokoll formatieren und die erlauben, daß intelligente Karten in einen E/A-Erweiterungssteckplatz gesteckt werden, um auf andere E/A-Karten oder sogar den Prozessorbus-Speicher zuzugreifen. Außer der Bereitstellung der Lenkungsinformationen und der Erzeugung der Lenkungscodes handhabt der System- und Bus-Controller 42 außerdem die gesamte Arbitrierung des Prozessorbusses 16 und verbindet alle Steuersignale mit der System-E/A 18 (wie z. B. ISA-"Befehle", DMA-Steuersignale und Unterbrechungen).
  • In 2 ist ein Blockschaltplan der Hauptkomponenten einer Prozessorkarte gezeigt. Unter Bezugnahme auf 1 kann dieses Prozessor-Teilsystem 6 als über den Speicherverbinder 2 und den Prozessorbus 16 an den Rest des Computer-Systems angeschlossen betrachtet werden. Das Prozessor-Teilsystem 6 enthält einen Mikroprozessor 48 (z. B. einen Intel 80386), einen numerischen Coprozessor 50 (z. B. einen Intel 80387), einen optischen Coprozessor 52 (z. B. einen Weitek 3167), ein Cache-Teilsystem (das im folgenden erörtert ist), eine Taktschaltung 54, einen Festwertspeicher mit Selbsttest beim Einschalten oder "POST-ROM" 56, einen Datenfluß- und ECC-Controller 58 und einen Speicherund Bus-Controller 60.
  • Das Cache-Teilsystem enthält einen Cache-Speicher (der als aus zwei separaten SRAM-Bänken 62A, 62B und einem Cache-Controller 64 (z. B. einen Intel 82385) bestehend gezeigt ist). Es sollte für die Fachleute selbstverständlich sein, daß das Cache-Teilsystem als ein äußerst schneller, "notizblockartiger" Speicher funktioniert, der einen schnellen Zugriff auf die Daten bereitstellt, die vom Prozessor am häufigsten benötigt werden. Das System der vorliegenden Erfindung kann einen Cache-Speicher mit Cache-Zeilengrößen von jeweils 4 Doppelwörtern verwenden, so daß, falls ein cache-barer Lesevorgang vom Prozessor ausgeführt wird, der Speicher-Controller 4 aufeinanderfolgende Doppelwörter aus dem Systemspeicher in den Cache zurückschickt.
  • Der Betrieb des Cache-Teilsystems ist in US-A-5325508, veröffentlicht am 28. 06. 1994, ausführlicher beschrieben.
  • Für Systeme mit einem Cache 62A, 62B ist ein Abfrage-Adressenspeicher 66 enthalten, um jede Prozessoradresse zu erfassen, die erzeugt wird, um, falls notwendig, Adressen ungültig zu machen. Außerdem ist in Systemen mit einem Cache-Speicher eine Zeilenerweiterungslogik 68 in Form einer programmierbaren Anordnungslogik ("PAL") enthalten, um Adressen- und Steuersignale zu steuern, die zwischen dem Cache 62A, 62B, dem Cache-Controller 64 und dem Speicherund Bus-Controller 60 geleitet werden.
  • Das Prozessor-Teilsystem 6 enthält außerdem lokale Adressen-, Datenund Steuerbusse (die durch die verschiedenen Pfeile angegeben sind, die in 2 gezeigt sind), die den Mikroprozessor 48, die Coprozessoren 50, 52, die Caches 62A, 62B, den Datenfluß- und ECC-Controller 58 und den Speicher- und Bus-Controller 60 untereinander verbinden. Diese Busse werden für lokale Zyklen verwendet, wie z. B. Lesevorgänge des POST-ROMs 56, Coprozessor-Zyklen und Cache-Lesertreffer. Der Zugriff auf den POST-ROM 56 kann über den Betrieb des Datenfluß- und ECC-Controllers 58 erreicht werden. Für globale Zyklen, wie z. B. Cache-Schreibvorgänge, Cache-Lese-Fehltreffer, nicht-cache-bare Zyklen und E/A-Zyklen muß das Prozessor-Teilsystem 6 seinen Zugriff jedoch außerhalb der Leiterplatte abschließen.
  • Für Zyklen außerhalb der Leiterplatte decodiert der Speicher- und Bus-Controller 60 die lokalen Adressen- und Steuersignale und bestimmt, ob der Zugriff für den Prozessorbus 16 oder für den dedizierten Speicher bestimmt ist. Für einen Speicherzyklus erzeugt der Speicher- und Bus-Controller 60 die Speichersteuersignale (d. h. RAS, CAS und WE) und die Adressen für den Zugriff auf die Speicherkarte. Der Speicher- und Bus-Controller 60 erzeugt außerdem die Auftrischsignale für die Speicherkarte, z. B. das Element 10, für jede Auffrischperiode. Im Zusammenhang mit dem Speicherbus-Controller 60 führt der Datenflußund ECC-Controller 58 außerdem die Fehlerprüfung und -korrektur aus. Die Fehlerprüfung und -korrektur ist in US 5598422 , veröffentlicht am 28. 01. 1997, ausführlich beschrieben.
  • Für Zyklen außerhalb der Leiterplatte, die nicht für die Speicherkarte 10 bestimmt sind, erzeugt der Speicher- und Bus-Controller 60 ein Prozessorbus-Anforderungssignal und übernimmt die Steuerung des Prozessorbusses 16, wenn sie gewährt wird. Der Speicher- und Bus-Controller 60 schließt in Zusammenarbeit mit dem Datenfluß- und ECC-Controller 58 abermals den Zugriff auf den Prozessorbusses 16 ab.
  • In 3 ist ein Blockschaltplan der Hauptkomponenten der Speicherkarte 10 dargelegt. Unter Bezugnahme auf 1 ist die Speicherkarte 10 über den Speicherverbinder 2 an den Rest des Systems angeschlossen. Wie oben erörtert ist, implementiert jede Speicherkarte 10 vorzugsweise die Speicherung von virtuellen 64-Bit-Wörtern in der Form von 2 verschachtelten Bänken aus 32-Bit-Doppelwörtern, einer ungeraden und einer geraden. Jede Karte 10 enthält einen RAS-, CAS- und Auffrisch-Controller 68, vier Adressenpuffer 70, 72, 74, 76, acht SIMM-Einbauplätze (Einbauplätze für Speichermodule mit einseitiger, geradliniger Anschlußfolge) 78, 80, 82, 84, 86, 88, 90, 92, und vier Verschachtelungs-Controller 94, 96, 98, 100. Der RAS-, CAS- und Auffrisch-Controller 68, der in der ebenfalls anhängigen US-Patentanmeldung mit der SerienNr. 07/540.049 mit dem Titel "A Digital Computer Having a System for Sequentially Refreshing an Expandable Dynamic RAM Memory Circuit", eingereicht am 19. Juni 1990, auf den Anmelder dieser Erfindung, dem diese Erfindung übertragen wurde, übertragen und hiermit durch Literaturhinweis eingefügt, ausführlicher beschrieben ist, empfängt die Steuersignale von der Speicherschnittstelle 102 (siehe 1) und wird vom Speicher- und Bus-Controller 60 angesteuert (siehe 2). Der RAS-, CAS- und Auffrisch-Controller 68 steuert wiederum die Steuersignale für die SIMM-Einbauplätze 68, 80, 82, 84, 86, 88, 90, 92 für Lese-, Schreib- und Auffrischvorgänge an. Jeder der vier Verschachtelungs-Controller 94, 96, 98, 100, die in der ebenfalls anhängigen US-Patentanmeldung mit der SerienNr. 07/530.137 mit dem Titel "Dual Path Memory Retrieval System for an Interleaved Dynamic RAM Memory Unit", eingereicht am 25. Mai 1990, auf den Anmelder dieser Erfindung, dem diese Erfindung übertragen wurde, übertragen und hiermit durch Literaturhinweis eingefügt, ausführlicher beschrieben sind, multiplexieren acht Datenbits zwischen dem Speicherverbinder 2 und den SIMM-Einbauplätzen 78, 80, 82, 84, 86, 88, 90, 92.
  • Wie im folgenden ausführlicher erklärt wird, werden die Daten zwischen den geraden und ungeraden Bänken aus 32 Datenbits aufgeteilt, um eine wahre Verschachtelung zu erreichen. Das heißt, für jeden Lesevorgang wird auf 64 Datenbits zugegriffen, wobei die vier Verschachtelungs-Controller 94, 96, 98, 100 32 Bits (entweder die geraden oder die ungeraden Daten) für den aktuellen Zugriff auswählen. Der anschließende Zugriff kann in einem einzigen Prozessortaktzyklus abgeschlossen werden, weil auf das zweite 32-Bit-Doppelwort bereits zugegriffen wurde und es bereits aufgefangen wurde.
  • Wie oben erwähnt ist, enthält die Speicherkarte 10 die Adressenpuffer 70, 72, 74, 76 und die SIMM-Einbauplätze 78, 80, 82, 84, 86, 88, 90, 92. Lediglich beispielhaft könnten die von VTC hergestellten Datenpuffer der Modelle 74FCT828 und 74FCT827 als die Adressenpuffer 70, 72, 74, 76 verwendet werden. Es werden invertierende (74FCT828) und nichtinvertierende (74FCT827) Puffer verwendet, um die durchschnittliche Signalumschaltung der Adressenleitung zu minimieren, um das elektrische Rauschen zu minimieren. Die SIMM-Einbauplätze 78, 80, 82, 84, 86, 88, 90, 92 können angepaßt werden, um 1-, 2-, 4-oder 8-MByte-SIMMs mit Parität oder ECC-Organisation aufzunehmen.
  • Bevor die Datenschnittstelle und die Daten-Leittechniken beschrieben werden, die das Leiten der Daten zwischen einer E/A-Vorrichtung und einem fehlangepaßten Prozessorbus oder zwischen einem Paar fehlangepaßter E/A-Vorrichtungen erlauben, müssen zuerst bestimmte Definitionsmerkmale des in den 13 veranschaulichten Computersystems dargelegt werden.
  • Das hierin beschriebene Computer-System verarbeitet die Informationen in Einheiten von 32-Bit-Datenblöcken, wobei jedes Bit das äquivalent einer logischen "1" oder einer logischen "0" darstellt. Im folgenden wird jede 32-Bit-Dateneinheit als ein Daten-"Wort" bezeichnet. Ähnlich wird ein Block aus 16 Datenbits im folgenden als ein "Halbwort" bezeichnet, während ein Block aus 8 Datenbits im folgenden als ein "Byte" bezeichnet wird. Folglich ist jedes 32-Bit-Wort aus zwei Halbwörtern zusammengesetzt, von denen jedes aus zwei Bytes zusammengesetzt ist. Abermals lediglich für Definitionszwecke werden im folgenden die Bytes und die Halbwörter, die in jeweils 32 Bits enthalten sind, in Übereinstimmung mit dem Folgenden bezeichnet:
  • 32-Bit-Wort
    Figure 00140001
  • Wie oben erörtert ist, sind die Prozessor-Teilsysteme 6, 8, die Speicher-Teilsysteme 10, 12, die Speicherverbinder 2, 4 und der Prozessorbusses 16 alle konfiguriert, um die Daten in 32-Bit-Wörtern zu verarbeiten. Die E/A-Vorrichtungen verarbeiten jedoch die Daten typischerweise nicht in 32-Bit-Einheiten. Statt dessen verarbeiten die E/A-Vorrichtungen die Daten am häufigsten in Einheiten von 8 oder 16 Bits. Für 16-Bit-E/A-Vorrichtungen erfolgen die Datenübertragungen während des Halbwortes 0. Für 8-Bit-E/A-Vorrichtungen erfolgen die Datenübertragung in während des Bytes 0.
  • Für ein vollständiges Verständnis der vorliegenden Erfindung muß außerdem das "Byte-Freigabe"-Signal erörtert werden. Es ist beabsichtigt, daß 32-Bit-Wörter, 16-Bit-Halbwörter und 8-Bit-Bytes zwischen den E/A-Vorrichtungen und dem Prozessorbus 16 übertragen werden. Um dies auszuführen, steuert die vorliegende Erfindung das Leiten jedes Datenbytes, ob das Byte die Dateneinheit selbst oder eine Komponente eines größeren Datenblocks ist, wie r. B. eines Halbwortes oder eines Wortes. Demzufolge muß die Übertragung jedes Bytes innerhalb eines Wortes oder einer anderen Einheit gesteuert werden. Wie im folgenden ausführlicher beschrieben ist, wird die Übertragung der Datenbytes durch eine Folge von Signalen gesteuert, die als "Byte-Freigabe"-Signale bezeichnet werden. Falls das Byte-Freigabesignal für ein spezielles Byte gesendet wird, wird dieses Byte dann durch die spezielle Schaltungsanordnung übertragen, an die das im Byte-Freigabesignal gesendet wird. Demzufolge gibt es für jedes Datenbyte B0, B1, B2 und B3 ein entsprechendes Byte-Freigabesignal BE0, BE1, BE2 und BE3, das nach der Sendung an die geeignete Schaltungsanordnung die Übertragung des entsprechenden Datenbytes steuern wird.
  • Unter Bezugnahme auf 4 werden nun die Schnittstelleneinrichtung und die Daten-Leittechniken ausführlich beschrieben, die die Übertragung von Daten zwischen dem 32-Bit-Prozessorbus 16 (oder angepaßten Computer-Komponenten wie z. B. dem Prozessor 6 oder dem Prozessor 8, die daran angeschlossen sind) und einer E/A-Vorrichtung erlauben, die konfiguriert ist, um die Daten lediglich in 8-, 16- oder 32-Bit-Einheiten zu verarbeiten. Wie in der ebenfalls anhängigen US-Patentanmeldung mit der SerienNr. 490.003 mit dem Titel "Method and Apparatus for Performing Multi-Master Bus Pipelining ", eingereicht am 7. März 1990, auf den Anmelder dieser Erfindung, dem diese Erfindung übertragen wurde, übertragen und hiermit durch Literaturhinweis eingefügt, ausführlicher beschrieben ist, können sowohl das Prozessor-Teilsystem 6 als auch das Prozessor-Teilsystem 8 als ein Bus-Master dienen, um die Übertragung der Informationen über den Prozessorbus 16 zu und von einer Slave-Vorrichtung, wie z. B. der E/A-Vorrichtung 18, steuern. Wie in der obenerwähnten Patentanmeldung außerdem beschrieben ist, kann, während sowohl das Prozessor-Teilsystem 6 als auch das Prozessor-Teilsystem 8 Berechnungen gleichzeitig ausführen können, lediglich eines zu einem Zeitpunkt ein Bus-Master sein. Um der Bus-Master zu werden, muß das Prozessor-Teilsystem 6 oder 8 den Prozessorbus 16 anfordern, wobei ihm der Zugriff auf den Prozessorbus 16 gewährt werden muß, damit es der Bus-Master wird. Der Prozessor 6, 8 muß dann die beabsichtigter Transaktion abschließen und den Bus loslassen.
  • Wie in der Patentanmeldung, auf die oben Bezug genommen wird, ferner beschrieben ist, enthält der System- und Bus-Controller 42 einen Busverwalter, der zwischen zwei oder mehr anfordernden Prozessoren, wie z. B. dem Prozessor-Teilsystem 6 und dem Prozessor-Teilsystem 8, arbitriert, falls beide Prozessoren zum gleichen Zeitpunkt den Prozessorbus 16 anfordern, wobei er den Bus einem der anfordernden Prozessor-Teilsysteme gewährt. Das ausgewählte Prozessor-Teilsystem wird sich danach aus einem anfordernden Zustand in einen ausgewählten Adressen-Master-Zustand bewegen, wenn der aktuelle Bus-Master die Adressenleitungen des Busses freigibt. Der ausgewählte Adressen-Master adressiert dann die Slave-Vorrichtung, z. B. die E/A-Vorrichtung 18, um die Übertragung der Daten auszulösen. Zum gleichen Zeitpunkt wird der aktuelle Bus-Master der aktuelle Daten-Master, wobei die Daten zu der vorausgehend adressierten Speicherstelle übertragen werden. Wenn der aktuelle Daten-Master anzeigt, daß er die Datenleitungen des Busses freigibt, wird der ausgewählte Adressen-Master der ausgewählte Bus-Master, während der aktuelle Daten-Master aus dem Bus- in einen Ruhezustand übergeht. Es ist offensichtlich, daß deshalb der aktuelle Master der Daten-Master ist, während der ausgewählte Master der Adressen-Master ist. In dem Fall, in dem es lediglich zwei mögliche Master-Vorrichtungen gibt, gibt es keine Arbitrierung, weil eine der Vorrichtungen immer eine Master-Vorrichtung sein wird, ohne die Notwendigkeit zu arbitrieren. In der bevorzugten Ausführungsform wird der Busverwalter trotzdem verwendet, um ein Bus-Gewährungssignal an die anfordernde Vorrichtung zu erzeugen.
  • In 4 werden nun die Schnittstelle zwischen den Computer-Teilsystemen und/oder den E/A-Vorrichtungen und die Techniken für das Leiten der Daten zwischen derartigen Teilsystemen und/oder E/A-Vorrichtungen beschrieben, die der Gegenstand der vorliegenden Erfindung sind. Spezifischer werden nun die Datenschnittstelle und das Leiten der Daten von einer fehlangepaßten E/A-Vorrichtung 18, die konfiguriert ist, um entweder 8, 16, 24 oder 32 Bits (1, 2, 3 oder 4 Bytes) zu verarbeiten, zu dem 32-Bit-Prozessorbus (4-Byte-Prozessorbus) 16 ausführlicher beschrieben.
  • Während eines Lesezyklus des Prozessors sind die Daten von der Slave-E/A-Vorrichtung 18 über den Prozessorbus 16 zum Master-Daten-Prozessor-Teilsystem 6 zu übertragen. Während eines derartigen Zyklus sendet die Slave-E/A-Vorrichtung 18 Dateneinheiten einer ihrer Breite entsprechenden Größe von der Slave-E/A-Vorrichtung 18 an die ersten, zweiten und dritten Eingangs-Byte-Austausch-Multiplexer (oder "IS-Multiplexer") 108, 110 bzw. 112 und an einen Eingangs-Signalspeicher (oder "IL") 114. Abhängig von der Breite der E/A-Vorrichtung wird sich jede Dateneinheit aus 8, 16 oder 32 Bits zusammensetzen, wobei jede Gruppe der Bits 0–7 im folgenden als ein "erstes" Byte, jede Gruppe der Bits 8–15 als ein "zweites" Byte, jede Gruppe der Bits 16–23 als ein "drittes" Byte und jede Gruppe der Bits 24–31 als ein "viertes" Byte bezeichnet werden.
  • Jeder der IS-Multiplexer 108, 110, 112 ist an die Ausgangstreibereinrichtung 106 angeschlossen, so daß jeder IS-Multiplexer 108, 110, 112 eine Gruppe von Bits empfängt, die von der Slave-E/A-Vorrichtung 18 ausgegeben wird, die einem Mehrfachen der Anzahl der oben bezeichneten Bytegruppierungen entspricht. Spezifischer ist der die IS-Multiplexer 108 konfiguriert, jede Gruppe aus Datenbits, die von der Slave-E/A-Vorrichtung ausgegeben wird, die als das erste Byte B0 bezeichnet wird, und jede Gruppe der Ausgangsdatenbits, die als das zweite Byte B1 bezeichnet wird, zu empfangen. Der IS-Multiplexer 110 ist konfiguriert, um jede Gruppe aus Datenbits zu empfangen, die als das erste Byte B0 und ein drittes Byte B2 bezeichnet worden ist. Schließlich ist der IS-Multiplexer 112 konfiguriert, um jede Gruppe aus Datenbits zu empfangen, die als die erste Bytegruppe B0, die zweite Bytegruppe B1 und die vierte Bytegruppe B3 bezeichnet worden ist.
  • Während jeder IS-Multiplexer 108, 110, 112 konfiguriert ist, um mehrere Bytegruppen zu empfangen, wird für die Ausgabe lediglich eine der Eingangsbytegruppen durch den speziellen Multiplexer ausgewählt. Die Auswahl der Eingangsbytegruppe für die Ausgabe durch jeden Multiplexer wird durch eine Folge aus Lenkungscodes (oder "RC"s) gesteuert, die durch den System- und Bus-Controller 42 erzeugt wird und dann zu einem ersten Lenkungscode-Decodierer 104 übertragen wird. Der erste Lenkungscode-Decodierer 104 decodiert den vom System- und Bus-Controller 42 übertragenen RC, wobei er, abhängig vom speziellen empfangenen RC, entweder ein Byte-Freigabesignal BE0 oder ein Byte-Freigabesignal BE1 an den IS-Multiplexer 108, um entweder B0 oder B1 für die Ausgabe auszuwählen, entweder das Byte-Freigabesignal BE0 oder das Byte-Freigabesignal BE2 an den IS-Multiplexer 110, um entweder B0 oder B2 für die Ausgabe auszuwählen, und entweder das Byte-Freigabesignal BE0 und das Byte-Freigabesignal BE1 oder das Byte-Freigabesignal BE3 an den IS-Multiplexer 112, um entweder B0, B1 oder B3 für die Ausgabe auszuwählen, sendet. Derartige durch den ersten Lenkungscode-Decodierer erzeugten Datenübertragungssignale sind mit dem IOCLK-Signal von der E/A-Vorrichtung 18 und einer taktgesteuerten Dienstprogramm-SCLK-Eingabe von der E/A-Vorrichtung 18 synchronisiert.
  • Weil der Eingang des Eingangs-Signalspeichers 114 direkt an die Ausgangstreibereinrichtung 106 angeschlossen ist, während die Eingänge der Eingangs-Signalspeicher 116, 118 und 120 an die Ausgängen der IS-Multiplexer 108, 110 bzw. 112 angeschlossen sind, wird eine Kombination der Bytes B0, B1, B2 und B3, die durch die durch den System- und Bus-Controller 42 erzeugten RCs gesteuert wird, an die Eingänge der Eingangs-Signalspeicher 114, 116, 118 bzw. 120 geliefert. Der System- und Bus-Controller 42 erzeugt außerdem die Signal speicher-Freigabesignale LE0, LE1, LE2 und LE3 für die Signalspeicher 114, 116, 118 bzw. 120, um eine spezielle Kombination der Bytes B0, B1, B2 und B3 aufzufangen, die von den Eingängen der Signalspeicher 114, 116, 118 und 120 an die Ausgänge der Signalspeicher geliefert werden. Durch das Auffangen der Ausgaben wird ein 32-Bit-Datenwort (4-Byte-Datenwort) am Ausgang der Eingangs-Signalspeicher 114, 116, 118 und 120 für die Übertragung zum Prozessor 6 gesammelt.
  • Die durch den System- und Bus-Controller 42 erzeugten Lenkungscodes sowohl für die Steuerung der Prozessor-Leseoperation als auch für irgendeine andere Datenübertragung von einer Slave-E/A-Vorrichtung zu einem 32-Bit-Computer-Teilsystem, das an den Prozessorbus 16 angeschlossen ist, sind in der folgenden Tabelle 1 dargelegt:
    Figure 00180001
    Figure 00190001
  • Wenn die Datenschnittstelle inaktiv ist, d. h. keine Daten übertragen werden, erzeugt der Systembus-Controller 42 den Lenkungscode "04". Der Lenkungscode 04 gibt weder die IS-Multiplexer 108, 110 oder 112 noch die IL-Signalspeicher 114, 116, 118 oder 120 frei. Das System ist inaktiv, wobei kein Byteaustausch erfolgt.
  • Wenn eine 8-Bit-Slave-Vorrichtung Daten an den 32-Bit-Prozessorbus 16 liefert (und an das Computer-Teilsystem angeschlossen ist), erzeugt der Systemund Bus-Controller 42 während jedes Zyklus des Prozessorbusses 16.4 Teilzyklen, indem er die Lenkungscodes "05", "01", "03" und "02" aufeinanderfolgend erzeugt. Wie aus der obigen Tabelle entnommen werden kann, steuert jeder erzeugte Teilzyklus das Auffangen des von der E/A-Vorrichtung ausgegebenen ersten Bytes 0 für das Byte 0 des Prozessorbusses 16. Das von der E/A-Vorrichtung ausgegebene zweite Byte 0 wird für das Byte 1 des Prozessorbusses 16 aufgefangen, das dritte Byte 0 für das Byte 2 und das vierte Byte 0 für das Byte 3.
  • Wenn spezifischer eine 8-Bit-Slave-E/A verwendet wird, wird ein einzelnes Byte von der E/A-Vorrichtung 18 in die Treibereinrichtung 106 eingegeben. Der Ausgang aus der Treibereinrichtung 106 ist direkt an den Signalspeicher 114 und die B0-Eingänge der IS-Multiplexer 108, 110 bzw. 112 angeschlossen. Während des ersten E/A-Teilzyklus (RC = 05) liefert der Lenkungscode-Decodierer 104 ein Freigabesignal an den Eingangs-Signalspeicher 114, wobei dadurch die Ausgabe der E/A im Signalspeicher 114 aufgefangen und das Byte 0 der E/A-Vorrichtung 18 im Byte 0 des Prozessorbusses angeordnet wird. Während des zweiten E/A-Teilzyklus (RC = 01) liefert der Lenkungscode-Decodierer 104 ein Byte-Freigabesignal an den IS-Multiplexer 108, der den Ausgang des IS-Multiplexers 108 an den B0-Eingang schaltet, und ein Freigabesignal an den Eingangs-Signalspeicher 116, wobei dadurch die Ausgabe der E/A-Vorrichtung 18 während des zweiten Teilzyklus im Signalspeicher 116 aufgefangen wird und das nächste Byte 0 der E/A-Vorrichtung 18 im Byte 1 des Prozessorbusses angeordnet wird. Während des dritten E/A-Teilzyklus (RC = 03) liefert der Lenkungscode-Decodierer 104 ähnlich ein Byte-Freigabesignal an den IS-Multiplexer 110 und während des dritten E/A-Teilzyklus ein Freigabesignal an den Eingangs-Signalspeicher 118, um im Signalspeicher 118 die Ausgabe der E/A-Vorrichtung im dritten Teilzyklus aufzufangen und das nächste Byte 0 von der E/A-Vorrichtung 18 im Byte 2 des Prozessorbusses anzuordnen. Schließlich liefert der Lenkungscode-Decodierer 104 während des vierten E/A-Teilzyklus (RC = 02) ein Byte-Freigabesignal an den IS-Multiplexer 112 und ein Freigabesignal an den Eingangs-Signalspeicher 120, um dadurch im Eingangs-Signalspeicher 120 die Ausgabe des vierten E/A-Teilzyklus aufzufangen und das nächste Byte 0 von der E/A-Vorrichtung 18 im Byte 3 des Prozessorbusses anzuordnen.
  • Wenn eine 16-Bit-E/A-Vorrichtung an den Prozessorbus angeschlossen ist, ist keine zusätzliche Scheidungsanordnung erforderlich, um das 16-Bit-Teilsystem an den 32-Bit-Datenbus anzupassen. Eine 16-Bit-E/A-Vorrichtung wird während jedes Prozessorbus-Zyklus zwei E/A-Teilzyklen aufweisen. In einer derartigen Konfiguration erzeugt der System- und Bus-Controller 42 während des ersten E/A-Teilzyklus einen ersten Lenkungscode und während des zweiten E/A-Teilzyklus einen zweiten Lenkungscode, wobei er diese an den Lenkungscode-Decodierer 104 sendet. Während des ersten E/A-Teilzyklus (RC = 07) wird ein Byte-Freigabesignal an den IS-Multiplexer 108 gesendet, während Signalspeicher-Freigabesignale an die Signalspeicher 114, 116 gesendet werden. Folglich wird das von der E/A-Vorrichtung 18 ausgegebene Byte B0 des ersten Halbwortes durch den Signalspeicher 114 aufgefangen, während das von der E/A-Vorrichtung 18 ausgegebene Byte B1 des ersten Halbwortes am B1-Eingang des IS-Multiplexers 108 bereitgestellt wird, wobei auf den Empfang des BE1-Signals der IS-Multiplexer 108 das Byte B1 an den Signalspeicher 116 für das Auffangen ausgibt. Ein zweites Halbwort wird durch die E/A-Vorrichtung 18 gesendet und während des zweiten E/A-Teilzyklus (RC = 06) als die oberen Bytes des Prozessorworts aufgefangen. Während des zweiten E/A-Teilzyklus wird das Byte B0 an den Eingang des Signalspeichers 114 und an den B0-Eingang der IS-Multiplexer 110 und 112 ausgegeben. Während dieser Periode erzeugt der Lenkungscode-Decodierer 104 ein Byte-Freigabesignal BE für den IS-Multiplexer 110, wobei dadurch der Multiplexer so geschaltet wird, daß das Byte B0 am Ausgang des IS-Multiplexers 110 bereitgestellt wird. Der Lenkungscode-Decodierer 104 sendet außerdem ein Signalspeicher-Freigabesignal LE2 an den Signalspeicher 118, wobei dadurch am Ausgang des Signalspeichers 118 das Byte B0 aufgefangen wird. Während der zweiten Hälfte des zweiten Teilzyklus sendet die E/A-Vorrichtung 18 das Byte B1 an die B1-Eingänge der IS-Multiplexer 108, 112. Während der zweiten Hälfte des zweiten Teilzyklus sendet der Lenkungscode-Decodierer 104 das Byte-Freigabesignal BE1 an den IS-Multiplexer 112, wobei dadurch der Multiplexer so geschaltet wird, daß das Byte B1 am Ausgang des IS-Multiplexers 112 bereitgestellt wird. Der Len kungscode-Decodierer sendet außerdem ein Signalspeicher-Freigabesignal LE3 an den Signalspeicher 120, wobei dadurch am Ausgang des Signalspeichers 120 das Byte B1 aufgefangen wird.
  • Wenn eine 32-Bit-E/A-Vorrichtung (4-Byte-E/A-Vorrichtung) 18 an den Prozessorbus 16 angeschlossen ist, sind die E/A-Vorrichtung und der Prozessorbus 16 angepaßt, wobei die Lenkungscodes abermals geändert werden müssen, um die Steuerung der 32-Bit-Ausgabe aus der E/A-Vorrichtung 18 zu modifizieren. Es ist abermals keine zusätzliche Schaltungsanordnung notwendig. In der angepaßten-Konfiguration erzeugt die Lenkungscode-Erzeugungseinrichtung des System- und Bus-Controllers 42 einen einzelnen Lenkungscode RC = 00 und sendet diesen an den Lenkungscode-Decodierer 104. Während der Datenübertragung wird das Byte B0 an den Signalspeicher 114 und an die B0-Eingänge der IS-Multiplexer 108, 110 und 112 geliefert. Das Byte B1 wird an die B1-Eingänge der IS-Multiplexer 108 und 112, das Byte B2 an den B2-Eingang des IS-Multiplexer 110 und das Byte B3 an den B3-Eingang des IS-Multiplexer 112 geliefert. Der Lenkungscode-Decodierer 104 sendet das Byte-Freigabesignal BE1 an den IS-Multiplexer 108, das Byte-Freigabesignal BE2 an den IS-Multiplexer 110 und das Byte-Freigabesignal BE3 an den IS-Multiplexer 112, wobei dadurch die IS-Multiplexer 108, 110 und 112 so geschaltet werden, daß die Bytes B1, B2 und B3 an den Ausgängen der IS-Multiplexer 108, 110 bzw. 112 bereitgestellt werden. Der Lenkungscode-Decodierer 104 sendet außerdem ein Signalgeber-Freigabesignal LE0 an den Signalspeicher 114, LE1 an den Signalspeicher 116, LE2 an den Signalspeicher 118 und LE3 an den Signalspeicher 120, wobei dadurch am Ausgang der Signalspeicher 114, 116, 118 und 120 die Bytes B0, B1, B2 bzw. B3 aufgefangen werden.
  • Nachdem das Leiten der Daten von einer E/A-Vorrichtung 18 zum Prozessorbus 16 beschriebenen wurde, der wiederum die Daten zu einem Computer-Teilsystem übertragen wird, wie z. B. dem Prozessor-Teilsystem 6, wird nun das Leiten der Daten vom Prozessorbus 16 zur E/A-Vorrichtung 18 beschrieben. Während einer Schreiboperation werden die Daten vom Prozessor-Teilsystem 6 in einen Signalspeicher 122 eingegeben. Da das Speichersystem 10 verschachtelt ist, werden die Daten aus dem Speicher 10 während einer Schreibe-aus-dem-Speicher-Operation an einem geraden Signalspeicher 124 und an einem ungeraden Signalspeicher 126 bereitgestellt. Sobald die Ausgaben aus den Daten-Signalspeichern 122, 124 und 126 durch die (nicht gezeigten) entsprechenden vom System- und Bus-Controller 42 gesendeten Signalspeicher-Freigabesignale freigegeben sind, werden sie als die entsprechenden Eingaben in einen Multiplexer 128 bereitgestellt. Abhängig vom Typ der Schreiboperation, die geleitet wird, wird ein Schaltsignal in den Multiplexer eingegeben, um den Multiplexer 128 so zu schalten, daß entweder die Daten aus dem Speicher-Teilsystem 10 oder dem Prozessor-Teilsystem 6 an den Eingang eines Signalspeicher 130 ausgegeben werden.
  • Während den entsprechenden Speicher- oder Prozessor-Schreiboperationen wird ein (nicht gezeigtes) Signalspeicher-Freigabesignals an dem Signalspeicher 130 bereitgestellt, um die Ausgabe der Daten aus dem Speicher-Teilsystem 10 oder dem Prozessor-Teilsystem 6 an einem ersten Eingang eines Multiplexers 134 aufzufangen. Ein zweiter Lenkungscode-Decodierer 132 sendet dann ein Schaltsignal an den Multiplexer 134, um den Ausgang des Multiplexers 134 an den Eingang zu schalten, der an den Signalspeicher 130 angeschlossen ist. In einer derartigen Weise gibt der Multiplexer 134 das 32-Bit-Datenwort aus, das entweder vom Prozessor-Teilsystem 6 oder vom Speicher-Teilsystem 10 zur E/A-Vorrichtung 18 zu übertragen ist, die eine Datenbreite von entweder 8, 16 oder 32 Bits aufweist. Um dies auszuführen, wird der Ausgang des Multiplexer 134 an einen ersten Ausgangsbyte-Austauschmultiplexer ("OS"-Multiplexer) 136 und einen zweiten OS-Multiplexer 138 angeschlossen. Das Byte B0 wird als eine erste Eingabe in den OS-Multiplexer 138, das Byte B1 als eine zweite Eingabe in den OS-Multiplexer 138 und eine erste Eingabe in den OS-Multiplexer 136, das Byte B2 als eine dritte Eingabe in den OS-Multiplexer 138 und als eine erste Eingabe in die Ausgangstreibereinrichtung 140, die die ersten, zweiten, dritten und vierten Ausgangstreiber 140a, 140b, 140c und 140d enthalten kann, und das Byte B3 als eine vierte Eingabe in den OS-Multiplexer 138, eine zweite Eingabe in den OS-Multiplexer 136 und als eine zweite Eingabe in die Ausgangstreibereinrichtung 140a–d bereitgestellt. Die Ausgaben der OS-Multiplexer 136, 138 werden außerdem in die Ausgangstreibereinrichtung 140a–d eingegeben.
  • Der zweite Lenkungscode-Decodierer 132 empfängt die RC-Signale vom System- und Bus-Controller 42, wobei er wiederum die Byte-Freigabesignale BE0–BE3 an den OS-Multiplexer 138, die Byte-Freigabesignale BE1 und BE3 an den OS-Multiplexer 136 und die Freigabesignale OD an die Ausgangstreibereinrichtung 140a–d sendet, wie es erforderlich ist, um den Byteaustausch zu erreichen, der für eine spezielle Schreiboperation erforderlich ist, z. B. von einem 32-Bit-Computer-Teilsystem zu entweder einer 8-, 16- oder 32-Bit-E/A-Vorrichtung. Die Lenkungscodes, die Byte-Freigabesignale und die Ausgangstreiber-Freigabesignale, die die verschiedenen angemerkten Schreiboperationen erfolgreich abschließen werden, sind in der folgenden Tabelle 2 dargelegt:
    Figure 00230001
  • Nach dem Abschluß einer Erörterung des Leitens der Daten zwischen einer 8-, 16- und 32-Bit-E/A-Vorrichtung und einem 32-Bit-Computer-Teilsystem, das an den 32-Bit-Prozessorbus 16 angeschlossen ist, wird die spezielle Aufmerksamkeit nun auf die notwendigen Modifikationen an den Techniken gerichtet, die hierin beschrieben sind, um die Daten zwischen einem Paar 8-, 16- oder 32-Bit-E/A-Vorrichtungen über den Prozessorbus 16 zu leiten. In einer E/A-zu-E/A-Übertragung muß eine E/A als der E/A-Bus-Master bezeichnet werden, während die andere als der E/A-Bus-Slave bezeichnet wird. Um die Daten zwischen Slaveund Master-E/As zu leiten, müssen die Daten zuerst von der Slave-E/A-Vorrichtung 18 zum Prozessorbus 16 und dann zur Master-E/A-Vorrichtung übertragen werden. Während einer derartigen Übertragung sendet die Slave-E/A-Vor richtung 18 die Dateneinheiten in einer Größe, die ihrer Breite entspricht, von der Slave-E/A-Vorrichtung 18 zu den ersten, zweiten und dritten IS-Multiplexern 108, 110 bzw. 112 und an den IL-Signalspeicher 114. Abhängig von der Breite der E/A-Vorrichtung wird jede Dateneinheit aus 8-, 16- oder 32 Bits zusammengesetzt sein, wobei jede Gruppe aus den Bits 0–7 ein erstes Byte, jede Gruppe aus den Bits 8–15 ein zweites Byte, jede Gruppe aus den Bits 16–32 ein drittes Byte und jede Gruppe aus den Bits 24–31 ein viertes Byte ist.
  • Jeder der IS-Multiplexer 108, 110, 112 ist an die Ausgangstreibereinrichtung 106 angeschlossen, so daß jeder IS-Multiplexer 108, 110; 112 eine von der Slave-E/A-Vorrichtung 18 ausgegebene Gruppe von Bits empfängt, die einem Mehrfachen der Anzahl der oben bezeichneten Bytegruppierungen entspricht. Spezifischer ist der die IS-Multiplexer 108 konfiguriert, jede Gruppe aus Datenbits, die von der Slave-E/A-Vorrichtung 18 ausgegeben wird, die als das erste Byte B0 bezeichnet wird, und jede Gruppe der Ausgangsdatenbits, die als das zweite Byte B1 bezeichnet wird, zu empfangen. Der IS-Multiplexer 110 konfiguriert, um jede Gruppe aus Datenbits zu empfangen, die als das erste Byte B0 oder ein drittes Byte B2 bezeichnet worden ist. Schließlich ist der IS-Multiplexer 112 konfiguriert, um jede Gruppe aus Datenbits zu empfangen, die als die erste Bytegruppe B0, die zweite Bytegruppe B1 und die vierte Bytegruppe B3 bezeichnet worden ist.
  • Während jeder IS-Multiplexer 108, 110, 112 konfiguriert ist, um mehrere Bytegruppen zu empfangen, wird für die Ausgabe lediglich eine der Eingangsbytegruppen durch den speziellen Multiplexer ausgewählt. Die Auswahl der Eingangsbytegruppe für die Ausgabe durch jeden Multiplexer wird durch eine Folge aus Lenkungscodes (oder "RC"s) gesteuert, die durch den System- und Bus-Controller 42 erzeugt wird und dann zu einem ersten Lenkungscode-Decodierer 104 übertragen wird. Der erste Lenkungscode-Decodierer 104 decodiert den vom System- und Bus-Controller 42 übertragenen RC, wobei er, abhängig vom speziellen empfangenen RC, entweder ein Byte-Freigabesignal BE0 oder ein Byte-Freigabesignal BE1 an den IS-Multiplexer 108, um entweder B0 oder B1 für die Ausgabe auszuwählen, entweder das Byte-Freigabesignal BE0 oder das Byte-Freigabesignal BE2 an den IS-Multiplexer 110, um entweder B0 oder B2 für die Ausgabe auszuwählen, und entweder das Byte-Freigabesignal BE0 und das Byte-Freigabesignal BE1 oder das Byte-Freigabesignal BE3 an den IS-Multiplexer 112, um entweder B0, B1 oder B3 für die Ausgabe auszuwählen, sendet. Derartige durch den ersten Lenkungscode-Decodierer erzeugten Datenübertragungssignale sind mit dem IOCLK-Signal von der Slave-E/A-Vorrichtung 18 und einer taktgesteuerten Dienstprogramm-SCLK-Eingabe von der Slave-E/A-Vorrichtung 18 synchronisiert.
  • Weil der Eingang des Eingangs-Signalspeichers 114 direkt an die Ausgangstreibereinrichtung 106 angeschlossen ist, während die Eingänge der Eingangs-Signalspeicher 116, 118 und 120 an die Ausgänge der IS-Multiplexer 108, 110 bzw. 112 angeschlossen sind, wird eine Kombination der Bytes B0, B1, B2 und B3, die durch die durch den System- und Bus-Controller 42 erzeugten RCs steuert wird, an die Eingänge der Eingangs-Signalspeicher 114, 116, 118 bzw. 120 geliefert. Der System- und Bus-Controller 42 erzeugt außerdem die Signalspeicher-Freigabesignale LE1, LE2, LE3 und LE4 für die Signalspeicher 114, 116, 118 bzw. 120, um eine spezielle Kombination der Bytes B0, B1, B2 und B3, die an die Eingänge der Signalspeicher 114, 116, 118 und 120 geliefert werden, an den Ausgängen der Signalspeicher aufzufangen.
  • Die durch den System- und Bus-Controller 42 erzeugten Lenkungscodes für die Steuerung der Übertragung der Daten von der Slave-E/A-Vorrichtung 18 zum 32-Bit-Prozessorbus 16 als Teil der nachfolgenden Übertragung der Daten von der Slave-E/A-Vorrichtung 18 zur Master-E/A-Vorrichtung sind in der folgenden Tabelle 3 dargelegt:
    Figure 00250001
    Figure 00260001
  • Wenn eine 8-Bit-Slave-Vorrichtung die Daten an den 32-Bit-Prozessorbus 16 als Teil der Übertragung zur Master-Slave-Vorrichtung liefert, erzeugt der System- und Bus-Controller 42 während jedes Zyklus des Prozessorbusses 16 4 Teilzyklen, indem er aufeinanderfolgend die Lenkungscodes "15", "11", "13" und "12" erzeugt. Wie aus der obigen Tabelle entnommen werden kann, steuert jeder erzeugte Teilzyklus das Auffangen des von der Slave-E/A-Vorrichtung 18 ausgegebenen ersten Bytes 0 für das Byte 0 des Prozessorbusses 16. Das von der Slave-E/A-Vorrichtung 18 ausgegebene zweite Byte 0 wird für das Byte 1 des Prozessorbusses 16 aufgefangen, das dritte Byte 0 für das Byte 3 und das vierte Byte 0 für das Byte 4.
  • Wenn spezifischer eine 8-Bit-Slave-E/A-Vorrichtung verwendet wird, wird ein einzelnes Byte von der Slave-E/A-Vorrichtung 18 in die Treibereinrichtung 106 eingegeben. Der Ausgang aus der Treibereinrichtung 106 ist direkt an den Signalspeicher 114 und die B0-Eingänge der IS-Multiplexer 108, 110 bzw. 112 angeschlossen. Während des ersten E/A-Teilzyklus (RC = 15) liefert der Lenkungscode-Decodierer 104 ein Freigabesignal an den Eingangs-Signalspeicher 114, wobei dadurch die Ausgabe der Slave-E/A-Vorrichtung 18 im Signalspeicher 114 aufgefangen und das Byte 0 der Slave-E/A-Vorrichtung 18 im Byte 0 des Prozessorbusses angeordnet wird. Während des zweiten E/A-Teilzyklus (RC = 11) liefert der Lenkungscode-Decodierer 104 ein Byte-Freigabesignal an den IS-Multiplexer 108, der den Ausgang des IS-Multiplexers 108 an den B0-Eingang schaltet und ein Freigabesignal an den Eingangs-Signalspeicher 116 liefert, wobei dadurch die Ausgabe der Slave-E/A-Vorrichtung 18 während des zweiten Teilzyklus im Signalspeicher 116 aufgefangen wird und das nächste Byte 0 der Slave-E/A-Vorrichtung 18 im Byte 1 des Prozessorbusses angeordnet wird. Während des dritten E/A-Teilzyklus (RC = 13) liefert der Lenkungscode-Decodierer 104 ähnlich ein Byte-Freigabesignal an den IS-Multiplexer 110 und während des dritten E/A-Teilzyklus ein Freigabesignal an den Eingangs-Signalspeicher 118, um im Signalspeicher 118 die Ausgabe der E/A-Vorrichtung im dritten Teilzyklus aufzufangen und das nächste Byte 0 von der Slave-E/A-Vorrichtung 18 im Byte 3 des Prozessorbusses anzuordnen. Schließlich liefert der Lenkungscode-Decodieren 104 während des vierten E/A-Teilzyklus (RC = 12) ein Byte-Freigabesignal an den IS-Multiplexer 112 und ein Freigabesignal an den Eingangs-Signalspeicher 120, um dadurch im Eingangs-Signalspeicher 120 die Ausgabe des vierten E/A-Teilzyklus aufzufangen und das nächste Byte 0 von der Slave-E/A-Vorrichtung 18 im Byte 0 des Prozessorbusses anzuordnen.
  • Wenn eine 16-Bit-Slave-E/A-Vorrichtung Daten an den 32-Bit-Prozessorbus 16 als Teil der Übertragung an die Master-E/A-Vorrichtung 18 liefert, wird die 16-Bit-Slave-E/A-Vorrichtung während der Übertragung von der Slave-E/A-Vorrichtung zum Prozessorbus 16 zwei E/A-Teilzyklen aufweisen. In einer derartigen Konfiguration erzeugt der System- und Bus-Controller 42 während des ersten E/A-Teilzyklus einen ersten Lenkungscode und während des zweiten E/A-Teilzyklus einen zweiten Lenkungscode, wobei er diese an den Lenkungscode-Decodierer 104 sendet. Während des ersten E/A-Teilzyklus (RC = 17) wird ein Byte-Freigabesignal an den ersten IS-Multiplexer 108 gesendet, während Signalspeicher-Freigabesignale an die Signalspeicher 114, 116 gesendet werden. Folglich wird das von der Slave-E/A-Vorrichtung 18 ausgegebene Byte B0 des ersten Halbwortes durch den Signalspeicher 114 aufgefangen, während das von der Slave-E/A-Vorrichtung 18 ausgegebene Byte B1 des ersten Halbwortes am B1-Eingang des IS-Multiplexers 108 bereitgestellt wird, wobei auf den Empfang des BE1-Signals der IS-Multiplexer 108 das Byte B1 an den Signalspeicher 116 für das Auffangen ausgibt. Während des zweiten E/A-Teilzyklus (RC = 16) wird ein zweites Halbwort durch die Slave-E/A-Vorrichtung 18 gesendet und als die oberen Bytes des Prozessorworts aufgefangen. Während des zweiten E/A-Teilzyklus wird das Byte B0 an den Eingang des Signalspeichers 114 und an den B0-Eingang der IS-Multiplexer 110 und 112 ausgegeben. Während dieser Periode erzeugt der Lenkungscode-Decodieren 104 ein Byte-Freigabesignal BE für den IS-Multiplexer 110, wobei dadurch der Multiplexer so geschaltet wird, daß das Byte B0 am Ausgang des IS-Multiplexers 110 bereitgestellt wird. Der Lenkungscode-Decodierer 104 sendet außerdem ein Signalspeicher-Freigabesignal LE2 an den Signalspeicher 118, wobei dadurch am Ausgang des Signalspeichers 118 das Byte B0 aufgefangen wird. Während der zweiten Hälfte des zweiten Teilzyklus sendet die Slave-E/A-Vorrichtung 18 das Byte B1 an die B1-Eingänge der IS-Multiplexer 108, 112. Wäh rend der zweiten Hälfte des zweiten Teilzyklus sendet der Lenkungscode-Decodierer 104 das Byte-Freigabesignal BE1 an den IS-Multiplexer 112, wobei dadurch der Multiplexer so geschaltet wird, daß das Byte B1 am Ausgang des IS-Multiplexers 112 bereitgestellt wird. Der Lenkungscode-Decodierer 104 sendet außerdem ein Signalspeicher-Freigabesignal LE3 an den Signalspeicher 120, wobei dadurch am Ausgang des Signalspeichers 120 das Byte B1 aufgefangen wird.
  • Wenn eine 32-Bit-Slave-E/A-Vorrichtung (4-Byte-Slave-E/A-Vorrichtung) 18 an den Prozessorbus 16 für die Datenübertragung von der Slave-E/A-Vorrichtung zur Master-E/A-Vorrichtung angeschlossen ist, sind die E/A-Vorrichtung und der Prozessorbus 16 angepaßt, wobei die Lenkungscodes abermals geändert werden müssen, um die Steuerung der 32-Bit-Ausgabe aus der Slave-E/A-Vorrichtung 18 zu modifizieren. In der angepaßten Konfiguration erzeugt die Lenkungscode-Erzeugungseinrichtung des System- und Bus-Controllers 42 einen einzelnen Lenkungscode RC = 10 und sendet diesen an den Lenkungscode-Decodierer 104. Während der Datenübertragung wird das Byte B0 an den Signalspeicher 114 und an die B0-Eingänge der IS-Multiplexer 108, 110 und 112 geliefert. Das Byte B1 wird an die B1-Eingänge der IS-Multiplexer 108 und 112, das Byte B2 an den B2-Eingang des IS-Multiplexers 110 und das Byte B3 an den B3-Eingang des IS-Multiplexers 112 geliefert. Der Lenkungscode-Decodierer sendet das Byte-Freigabesignal BE1 an den IS-Multiplexer 108, das Byte-Freigabesignal BE2 an den IS-Multiplexer 110 und das Byte-Freigabesignal BE3 an den IS-Multiplexer 112, wobei dadurch die IS-Multiplexer 108, 110 und 112 so geschaltet werden, daß die Bytes B1, B2 und B3 an den Ausgängen der IS-Multiplexer 108, 110 bzw. 112 bereitgestellt werden. Der Lenkungscode-Decodierer 104 sendet außerdem ein Signalspeicher-Freigabesignal LE0 an den Signalspeicher 114, LE1 an den Signalspeicher 116, LE2 an den Signalspeicher 118 und LE3 an den Signalspeicher 120, wobei dadurch am Ausgang der Signalspeicher 114, 116, 118 und 120 die Bytes B0, B1, B2 bzw. B3 aufgefangen werden.
  • Nachdem das Leiten der Daten von der Slave-E/A-Vorrichtung 18 zum Prozessorbus 16 während der Datenübertragung von der Slave-E/A-Vorrichtung zur Master-E/A-Vorrichtung beschriebenen wurde, wird nun das Leiten der Daten vom Prozessorbus 16 zur Master-E/A-Vorrichtung beschrieben. Das Leiten der Daten vom Prozessorbus 16 zur Master-E/A-Vorrichtung unterscheidet sich signifikant von den vorausgehend beschriebenen Leittechniken. Abhängig vom speziellen Byteaustausch, der für die gewünschte Übertragung zu der Master-E/A-Vor richtung erforderlich ist, werden hier die zum Prozessorbus 16 übertragenen Daten sowohl von den aufgefangenen als auch den nicht aufgefangenen Seiten der Eingangs-Signalspeicher 114, 116, 118, 120 gelenkt, indem die Eingänge der Signalspeicher 114, 116, 118, 120 an einen zweiten Eingang des Multiplexers 134 und die Ausgänge der Signalspeicher 114, 116, 118, 120 an einen dritten Eingang des Multiplexers 134 angeschlossen werden. Während des Leitens der Daten zur Master-E/A-Vorrichtung wird der zweite Lenkungscode-Decodierer 132 entweder die aufgefangenen oder die nicht aufgefangenen Daten für das Leiten auswählen, indem er ein Schaltsignal an den Multiplexer 134 sendet, um den Eingang des Multiplexers 134 entweder an die aufgefangenen oder die nicht aufgefangenen Daten anzuschließen. Das Leiten der durch den Multiplexer 134 ausgegebenen Daten an die Master-E/A-Vorrichtung wird dann für die aufgefangenen und nicht aufgefangenen Daten getrennt weitergehen.
  • Für die Übertragung der nicht aufgefangenen Daten vom Prozessorbus 16 zur Master-E/A-Vorrichtung empfängt der zweite Lenkungscode-Decodierer 132 die RC-Signale vom System- und Bus-Controller 42 in Übereinstimmung mit der folgenden Tabelle 4:
    Figure 00290001
    Figure 00300001
  • Da der Ausgang des Multiplexers 134 an den ersten OS-Multiplexer 136 und an den zweiten OS-Multiplexer 138 angeschlossen ist, wird das Byte B0 als eine erste Eingabe in den OS-Multiplexer 138; das Byte B1 als eine zweite Eingabe in den OS-Multiplexer 138 und eine erste Eingabe in den OS-Multiplexer 136, das Byte B2 als eine dritte Eingabe in den OS-Multiplexer 138 und als eine erste Eingabe in die Ausgangstreibereinrichtung 140, die erste, zweite, dritte und vierte Ausgangstreiber 140a, 140b, 140c und 140d enthalten kann, und das Byte B3 als eine vierte Eingabe in den OS-Multiplexer 138, eine zweite Eingabe in den OS-Multiplexer 136 und als eine zweite Eingabe in die Ausgangstreibereinrichtung 140a–d bereitgestellt. Die Ausgaben der OS-Multiplexer 136, 138 werden außerdem in die Ausgangstreibereinrichtung 140a–d eingegeben.
  • Als Antwort auf die von dem System- und Bus-Controller 42 empfangenen RC-Signale sendet der zweite Lenkungscode-Decodierer 132 die Byte-Freigabesignale BE0 an die IS-Multiplexer 108, 110, 112, BE1 an die IS-Multiplexer 108 und 112, BE2 an den IS-Multiplexer 110 und BE3 an den IS-Multiplexer 112, so daß die gewünschten nicht aufgefangenen Daten über den Multiplexer 134 in die OS-Multiplexer 136, 138 eingegeben werden. Der zweite Lenkungscode-Decodierer 132 sendet ferner die Byte-Freigabesignale BE1, BE2 und BE3 an den OS-Multiplexer 136, das Byte-Freigabesignal BE3 an den OS-Multiplexer 138 und die Ausgangstreiber-Freigabesignale ODE an die Ausgangstreiber 140a, 140b, 140c und 140d, um den Byteaustausch zu erreichen, der für eine Übertragung von der nicht aufgefangenen Seite der Signalspeicher 114, 116, 118 und 120 für die spezielle Datenübertragung erforderlich ist, z. B. entweder von einer 8-, 16- oder 32-Bit-Slave-E/A-Vorrichtung 18 zu entweder einer gewünschten 8-, 16- oder 32-Bit-Master-E/A-Vorrichtung.
  • Für die Übertragungen der aufgefangenen Daten vom Prozessorbus 16 zur Master-E/A-Vorrichtung empfängt der zweite Lenkungscode-Decodierer 132 die RC-Signale vom System- und Bus-Controller 42 in Übereinstimmung mit der folgenden Tabelle 5:
    Figure 00310001
  • Da der Ausgang des Multiplexers 134 an den ersten OS-Multiplexer 136 und den zweiten OS-Multiplexer 138 angeschlossen ist, wird ähnlich das Byte B0 als die erste Eingabe in den OS-Multiplexer 138, das Byte B1 als die zweite Eingabe in den OS-Multiplexer 138 und die erste Eingabe in den OS-Multiplexer 136, das Byte B2 als die dritte Eingabe in den OS-Multiplexer 138 und als die erste Eingabe in die Ausgangstreibereinrichtung 140, die erste, zweite, dritte und vierte Ausgangstreiber 140a, 140b, 140c und 140d enthalten kann, und das Byte B3 als die vierte Eingabe in den OS-Multiplexer 138, die zweite Eingabe in den OS-Multiplexer 136 und als die zweite Eingabe in die Ausgangstreibereinrichtung 140a–d bereitgestellt. Die Ausgaben der OS-Multiplexer 136, 138 werden außerdem in die Ausgangstreibereinrichtung 140a–d eingegeben.
  • Als Antwort auf die von dem System- und Bus-Controller 42 empfangenen RC-Signale sendet der zweite Lenkungscode-Decodierer 132 die Byte-Freigabesignale BE1 und BE3 an den OS-Multiplexer 136, die Byte-Freigabesignale BE0, BE1, BE2 und BE3 an den OS-Multiplexer 138 und die Ausgangstreiber-Freigabesignale OD an die Ausgangstreibereinrichtung 140a–d, wie erforderlich, um den Byteaustausch zu erreichen, der für eine Übertragung von der aufgefangenen Seite der Signalspeicher 114, 116, 118 und 120 für die spezielle Datenübertragung erforderlich ist, z. B. entweder von einer 8-, 16- oder 32-Bit-Slave-E/A-Vorrichtung 18 zu entweder einer gewünschten 8-, 16- oder 32-Bit-Master-E/A-Vorrichtung.
  • Wie aus der obigen Beschreibung der vorliegenden Erfindung ersichtlich ist, wird eine Schnittstelle zwischen einem 32-Bit-Prozessorbus und einer 8-, 16- oder 32-Bit-E/A-Vorrichtung geschaffen, so daß die gleiche Schnittstelle für die Datenübertragungen zwischen einer 8-, 16- oder 32-Bit-E/A-Vorrichtung und einem 32-Bit-Computer-System verwendet werden kann, indem das Lenken der Datenbytes modifiziert wird, die zwischen den beiden übertragen werden. Wie aus der obigen Beschreibung der vorliegenden Erfindung außerdem entnommen werden kann, kann die gleiche Schnittstelle für die Datenübertragungen zwischen einer ersten 8-, 16- oder 32-Bit-E/A-Vorrichtung und einer zweiten 8-, 16- oder 32-Bit-E/A-Vorrichtung verwendet werden, abermals durch das Modifizieren des Lenkens der Datenbytes, die zwischen den beiden übertragen werden. Folglich ist eine Schnittstelle für die Übertragung von Daten zwischen zahlreichen Kombinationen sowohl von unangepaßten als auch angepaßten Vorrichtungen vorgesehen. Die hierin beschriebene Form der Erfindung ist lediglich beispielhaft, wobei sie nicht als Einschränkung des Umfangs der Erfindung beabsichtigt ist.

Claims (7)

  1. Vorrichtung zum Leiten von Datenwörtern zwischen Komponenten eines Computersystems, umfassend: einen ersten Eingangs/Ausgangs-Anschluß zum Anschließen an eine erste Eingangs/Ausgangs-Vorrichtung, die eine erste Komponente des Computersystems bildet und Datenwörter mit einer Breite von n Bits handhaben kann, einen zweiten Eingangs/Ausgangs-Anschluß zum Anschließen an eine zweite Eingangs/Ausgangs-Vorrichtung, die eine zweite Komponente des Computersystems bildet und Datenwörter mit einer Breite eines Vielfachen von n Bits handhaben kann, wobei ein erster Teil des zweiten Eingangs/Ausgangs-Anschlusses n Bits handhabt, die den n Bits entsprechen, die von dem ersten Eingangs/Ausgangs-Anschluß gehandhabt werden, und ein zweiter Teil des zweiten Eingangs/Ausgangs-Anschlusses die übrigen Bits handhabt, mehrere Eingangs-Schaltmultiplexer (108, 110, 112), die erste Eingangsanschlüsse enthalten, die an den ersten Eingangs/Ausgangs-Anschluß und an den ersten Teil des zweiten Eingangs/Ausgangs-Anschlusses angeschlossen sind, wobei die Eingangs-Schaltmultiplexer (108, 110, 112) weitere Eingangsanschlüsse enthalten, die an den zweiten Teil des zweiten Eingangs/Ausgangs-Anschlusses angeschlossen sind, eine erste Speichervorrichtung (114), die einen Eingangsanschluß enthält, der an den ersten Eingangs/Ausgangs-Anschluß und an den ersten Teil des zweiten Eingangs/Ausgangs-Anschlusses angeschlossen ist, wobei die erste Speichervorrichtung (114) einen Ausgangsanschluß enthält, mehrere weitere Speichervorrichtungen (116, 118, 120), die Eingangsanschlüsse, die an die Ausgangsanschlüsse der Eingangs-Schaltmultiplexer (108, 110, 112) angeschlossen sind, sowie jeweilige Ausgangsanschlüsse enthalten, einen dritten Eingangs/Ausgangs-Anschluß, der Daten mit einer Breite von m Bits handhaben kann und an die Ausgangsanschlüsse der ersten und der weiteren Speichervorrichtungen (114, 116, 118, 120) angeschlossen ist, einen ersten Ausgangs-Schaltmultiplexer (134), der einen ersten Eingangsanschluß enthält, der an die Ausgangsanschlüsse der ersten und der weiteren Speichervorrichtungen (114, 116, 118, 120) angeschlossen ist, weitere Ausgangs-Schaltmultiplexereinrichtungen (136, 138), die Eingangsanschlüsse enthalten, die an den Ausgangsanschluß des ersten Ausgangs-Schaltmultiplexers (134) angeschlossen sind, mehrere Ausgangs-Speicherpuffer (140a, 140b, 140c, 140d), die Eingangsanschlüsse, die an den Ausgangsanschluß der weiteren Ausgangs-Schaltmultiplexereinrichtungen (136, 138) angeschlossen sind, sowie jeweilige Ausgangsanschlüsse enthalten, wobei der Ausgangsanschluß eines ersten der Ausgangs-Speicherpuffer an den ersten Eingangs/Ausgangs-Anschluß und an den ersten Teil des zweiten Eingangs/Ausgangs-Anschlusses angeschlossen ist und die Ausgangsanschlüsse der verbleibenden Ausgangs-Speicherpuffer an den zweiten Teil des zweiten Eingangs/Ausgangs-Anschlusses angeschlossen sind, einen Eingangs-Lenkungscode-Decodierer (104), der so angeschlossen ist, daß er erste Steuersignale empfängt und die Eingangs-Schaltmultiplexer (108, 110, 112) und die ersten und weiteren Speichervorrichtungen (114, 116, 118, 120) in Übereinstimmung mit den ersten Steuersignalen steuert, um Daten von den ersten und zweiten Eingangs/Ausgangs-Anschlüssen an den dritten Eingangs/Ausgangs-Anschluß zu leiten, wobei Datenwörter gegebenenfalls durch die Eingangs-Schaltmultiplexer (108, 110, 112) und die ersten und weiteren Speichervorrichtungen (114, 116, 118, 120) umgruppiert werden, um die Daten dem dritten Eingangs/Ausgangs-Anschluß in Wörtern mit einer Breite von m Bits zu präsentieren, und einen Ausgangs-Lenkungscode-Decodierer (132), der so angeschlossen ist, daß er zweite Steuersignale empfängt und den ersten Ausgangs-Schaltmultiplexer (134), die weiteren Ausgangs-Schaltmultiplexereinrichtungen (136, 138) und die Ausgangs-Speicherpuffer (140a, 140b, 140c, 140d) in Übereinstimmung mit den zweiten Steuersignalen steuert, um Daten von den Ausgangsanschlüssen der ersten und weiteren Speichervorrichtungen (114, 116, 118, 120) an die ersten und zweiten Eingangs/Ausgangs-Anschlüsse zu leiten, indem Daten vom ersten Eingangsanschluß des ersten Ausgangs- Schaltmultiplexers (134) gewählt werden, wobei Datenwörter gegebenenfalls durch die weiteren Ausgangs-Schaltmultiplexereinrichtungen (136, 138) und die Ausgangs-Speicherpuffer (140a, 140b, 140c, 140d) umgruppiert werden, um die Daten den ersten und zweiten Eingangs/Ausgangs-Anschlüssen in Wörtern mit einer Breite von n Bits bzw. in Wörtern mit einer Breite eines Vielfachen von n Bits zu präsentieren.
  2. Vorrichtung nach Anspruch 1, wobei der erste Ausgangs-Schaltmultiplexer (134) einen zweiten Eingangsanschluß enthält, wovon ein Teil an den Eingangsanschluß der ersten Speichervorrichtung (114) angeschlossen ist und der Rest an die Eingangsanschlüsse der weiteren Speichervorrichtungen (116, 118, 120) angeschlossen ist, wobei der Ausgangs-Lenkungscode-Decodierer (132) so angeschlossen ist, daß er die Eingangs-Schaltmultiplexer (108, 110, 112) und die ersten und weiteren Speichervorrichtungen (114, 116, 118, 120) in Übereinstimmung mit weiteren Steuersignalen steuert, um durch die Wahl von Daten vom zweiten Eingangsanschluß des ersten Ausgangs-Schaltmultiplexers (134) Daten zwischen den ersten und zweiten Eingangs/Ausgangs-Anschlüssen über die Eingangsanschlüsse der ersten und der weiteren Speichervorrichtungen (114, 116, 118, 120) zu leiten.
  3. Vorrichtung nach Anspruch 1 oder Anspruch 2, umfassend eine erste zusätzliche Speichervorrichtung (122), wovon ein Eingangsanschluß dem Anschluß an einen Prozessor (6) dient, wobei der erste Ausgangs-Schaltmultiplexer (134) einen dritten Eingangsanschluß enthält und Einrichtungen enthalten sind, um einen Ausgangsanschluß der ersten zusätzlichen Speichervorrichtung (122) an den dritten Eingangsanschluß des ersten Ausgangs-Schaltmultiplexers (134) anzuschließen.
  4. Vorrichtung nach Anspruch 3, umfassend eine zweite zusätzliche Speichervorrichtung (124) und einen zweiten Ausgangs-Schaltmultiplexer (128), wobei die zweite zusätzliche Speichervorrichtung (124) einen Eingangsanschluß für den Anschluß an einen Speicher (10) enthält und der zweite Ausgangs-Schaltmultiplexer (128) so betreibbar ist, daß er entweder den Ausgangsanschluß der ersten zusätzlichen Speichervorrichtung (122) oder einen Ausgangsanschluß der zweiten zusätzlichen Speichervorrichtung (124) an den dritten Eingangsanschluß des ersten Ausgangs-Schaltmultiplexers (134) anschließt.
  5. Vorrichtung nach Anspruch 4, umfassend eine dritte zusätzliche Speichervorrichtung (130), die zwischen einen Ausgangsanschluß des zweiten Ausgangs-Schaltmultiplexers (128) und den dritten Eingangsanschluß des ersten Ausgangs-Schaltmultiplexers (134) geschaltet ist.
  6. Vorrichtung nach Anspruch 4 oder Anspruch 5, umfassend eine vierte zusätzliche Speichervorrichtung (126), die einen Eingangsanschluß für den Anschluß an den Speicher (10) und einen Ausgangsanschluß, der an einen zusätzlichen Eingangsanschluß des zweiten Ausgangs-Schaltmultiplexers (128) angeschlossen ist, enthält.
  7. Computersystem, das eine Vorrichtung nach einem der Ansprüche 1 bis 6 umfaßt.
DE69132652T 1990-07-27 1991-07-29 Rechnerdatenleitweglenkungssystem Expired - Lifetime DE69132652T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US55987290A 1990-07-27 1990-07-27
US559872 1990-07-27

Publications (2)

Publication Number Publication Date
DE69132652D1 DE69132652D1 (de) 2001-08-16
DE69132652T2 true DE69132652T2 (de) 2004-04-22

Family

ID=24235405

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69132652T Expired - Lifetime DE69132652T2 (de) 1990-07-27 1991-07-29 Rechnerdatenleitweglenkungssystem

Country Status (6)

Country Link
US (1) US5590287A (de)
EP (1) EP0468823B1 (de)
JP (1) JPH06124261A (de)
KR (1) KR0181471B1 (de)
DE (1) DE69132652T2 (de)
TW (1) TW202507B (de)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4843695A (en) * 1987-07-16 1989-07-04 Digital Equipment Corporation Method of assembling tab bonded semiconductor chip package
WO1993019424A1 (en) * 1992-03-18 1993-09-30 Seiko Epson Corporation System and method for supporting a multiple width memory subsystem
US5519839A (en) * 1992-10-02 1996-05-21 Compaq Computer Corp. Double buffering operations between the memory bus and the expansion bus of a computer system
US5838334A (en) * 1994-11-16 1998-11-17 Dye; Thomas A. Memory and graphics controller which performs pointer-based display list video refresh operations
US6002411A (en) * 1994-11-16 1999-12-14 Interactive Silicon, Inc. Integrated video and memory controller with data processing and graphical processing capabilities
US6067098A (en) * 1994-11-16 2000-05-23 Interactive Silicon, Inc. Video/graphics controller which performs pointer-based display list video refresh operation
JPH08278916A (ja) * 1994-11-30 1996-10-22 Hitachi Ltd マルチチャネルメモリシステム、転送情報同期化方法及び信号転送回路
GB9509987D0 (en) * 1995-05-17 1995-07-12 Sgs Thomson Microelectronics Manipulation of data
US6148356A (en) * 1995-12-27 2000-11-14 Intel Corporation Scalable computer system
US6134622A (en) * 1995-12-27 2000-10-17 Intel Corporation Dual mode bus bridge for computer system
US5828865A (en) * 1995-12-27 1998-10-27 Intel Corporation Dual mode bus bridge for interfacing a host bus and a personal computer interface bus
US5872940A (en) * 1996-04-01 1999-02-16 Motorola, Inc. Programmable read/write access signal and method therefor
US5774482A (en) * 1996-04-30 1998-06-30 Sun Microsystems, Inc. Apparatus and method for processing errors associated with data transfers in a computer
JPH1078934A (ja) * 1996-07-01 1998-03-24 Sun Microsyst Inc パケット切替えコンピュータ・システムのマルチサイズ・バス結合システム
US5901298A (en) * 1996-10-07 1999-05-04 Intel Corporation Method for utilizing a single multiplex address bus between DRAM, SRAM and ROM
US5916312A (en) * 1997-05-06 1999-06-29 Sony Corporation ASIC having flexible host CPU interface for ASIC adaptable for multiple processor family members
US6230216B1 (en) * 1999-01-28 2001-05-08 Vlsi Technology, Inc. Method for eliminating dual address cycles in a peripheral component interconnect environment
US6301631B1 (en) * 1999-01-28 2001-10-09 Vlsi Technology, Inc. Memory mapping method for eliminating dual address cycles in a peripheral component interconnect environment
CA2265346A1 (en) * 1999-03-17 2000-09-17 Pmc-Sierra Ltd. Pos-phy interface for interconnection of physical layer devices and link layer devices
US6732203B2 (en) * 2000-01-31 2004-05-04 Intel Corporation Selectively multiplexing memory coupling global bus data bits to narrower functional unit coupling local bus
US6567091B2 (en) 2000-02-01 2003-05-20 Interactive Silicon, Inc. Video controller system with object display lists
US6510483B1 (en) * 2000-03-21 2003-01-21 Cypress Semiconductor Corp. Circuit, architecture and method for reading an address counter and/or matching a bus width through one or more synchronous ports
US7337227B1 (en) 2000-08-10 2008-02-26 Dell Products L.P. System and method for cabling computer equipment for a desired installation
US7061907B1 (en) 2000-09-26 2006-06-13 Dell Products L.P. System and method for field upgradeable switches built from routing components
US7117376B2 (en) * 2000-12-28 2006-10-03 Intel Corporation Platform and method of creating a secure boot that enforces proper user authentication and enforces hardware configurations
US7436954B2 (en) * 2001-02-28 2008-10-14 Cavium Networks, Inc. Security system with an intelligent DMA controller
US20040078608A1 (en) * 2001-04-02 2004-04-22 Ruban Kanapathippillai Method and apparatus for power reduction in a digital signal processor integrated circuit
US6789180B1 (en) * 2001-09-28 2004-09-07 Cypress Semiconductor Corp. Method and apparatus for mask and/or counter address registers readback on the address bus in synchronous single and multi-port memories
US6633944B1 (en) * 2001-10-31 2003-10-14 Lsi Logic Corporation AHB segmentation bridge between busses having different native data widths
JP2003208399A (ja) * 2002-01-15 2003-07-25 Hitachi Ltd データ処理装置
KR100449721B1 (ko) * 2002-05-20 2004-09-22 삼성전자주식회사 서로 다른 데이터 버스 폭을 갖는 장치들을 위한인터페이스 및 이를 이용한 데이터 전송방법
US7796464B1 (en) 2003-06-27 2010-09-14 Cypress Semiconductor Corporation Synchronous memory with a shadow-cycle counter
US8284768B2 (en) * 2005-10-06 2012-10-09 Sierra Wireless, Inc. Dynamic bus-based virtual channel multiplexing device driver architecture
KR100706801B1 (ko) * 2006-01-04 2007-04-12 삼성전자주식회사 멀티 프로세서 시스템 및 그것의 데이터 전송 방법
KR100825258B1 (ko) * 2007-12-13 2008-04-25 한림기계 주식회사 자동세차기용 수직구동 안전장치
JP5216336B2 (ja) * 2008-01-23 2013-06-19 株式会社日立製作所 計算機システム、管理サーバ、および、不一致接続構成検知方法
US8219778B2 (en) * 2008-02-27 2012-07-10 Microchip Technology Incorporated Virtual memory interface
US10795767B2 (en) * 2018-12-26 2020-10-06 M31 Technology Corporation Error correcting system shared by multiple memory devices

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3979732A (en) * 1975-02-18 1976-09-07 Motorola, Inc. Asynchronous status interlock circuit for interface adaptor
US3975712A (en) * 1975-02-18 1976-08-17 Motorola, Inc. Asynchronous communication interface adaptor
US4092728A (en) * 1976-11-29 1978-05-30 Rca Corporation Parallel access memory system
US4447878A (en) * 1978-05-30 1984-05-08 Intel Corporation Apparatus and method for providing byte and word compatible information transfers
US4309754A (en) * 1979-07-30 1982-01-05 International Business Machines Corp. Data interface mechanism for interfacing bit-parallel data buses of different bit width
US4467443A (en) * 1979-07-30 1984-08-21 Burroughs Corporation Bit addressable variable length memory system
JPS5652454A (en) * 1979-10-05 1981-05-11 Hitachi Ltd Input/output control method of variable word length memory
US4443846A (en) * 1980-12-29 1984-04-17 Sperry Corporation Dual port exchange memory between multiple microprocessors
US4509113A (en) * 1982-02-02 1985-04-02 International Business Machines Corporation Peripheral interface adapter circuit for use in I/O controller card having multiple modes of operation
US4667305A (en) * 1982-06-30 1987-05-19 International Business Machines Corporation Circuits for accessing a variable width data bus with a variable width data field
CA1211219A (en) * 1982-06-30 1986-09-09 Hideo Kuroda Digital data code conversion circuit for variable- word-length data code
US4580129A (en) * 1983-11-14 1986-04-01 Northern Telecom Limited Variable word length decoder
KR900007564B1 (ko) * 1984-06-26 1990-10-15 모토로라 인코포레이티드 동적 버스를 갖는 데이터 처리기
US4716527A (en) * 1984-12-10 1987-12-29 Ing. C. Olivetti Bus converter
JPS61139866A (ja) * 1984-12-11 1986-06-27 Toshiba Corp マイクロプロセツサ
US4727477A (en) * 1985-03-22 1988-02-23 International Business Machines Corp. Logically transportable microprocessor interface control unit permitting bus transfers with different but compatible other microprocessors
US4683534A (en) * 1985-06-17 1987-07-28 Motorola, Inc. Method and apparatus for interfacing buses of different sizes
US4797850A (en) * 1986-05-12 1989-01-10 Advanced Micro Devices, Inc. Dynamic random access memory controller with multiple independent control channels
JPH0772886B2 (ja) * 1986-08-01 1995-08-02 インターナショナル・ビジネス・マシーンズ・コーポレーション データ処理システム
US5243701A (en) * 1987-09-17 1993-09-07 Mitsubishi Denki Kabushiki Kaisha Method of and system for processing data having bit length variable with modes of operation
JPH0697560B2 (ja) * 1987-11-19 1994-11-30 三菱電機株式会社 半導体記憶装置
US5014236A (en) * 1988-01-29 1991-05-07 International Business Machines Corporation Input/output bus expansion interface
US5023828A (en) * 1988-07-20 1991-06-11 Digital Equipment Corporation Microinstruction addressing in high-speed CPU
US5073969A (en) * 1988-08-01 1991-12-17 Intel Corporation Microprocessor bus interface unit which changes scheduled data transfer indications upon sensing change in enable signals before receiving ready signal
US5163145A (en) * 1989-04-25 1992-11-10 Dell Usa L.P. Circuit for determining between a first or second type CPU at reset by examining upper M bits of initial memory reference

Also Published As

Publication number Publication date
EP0468823B1 (de) 2001-07-11
JPH06124261A (ja) 1994-05-06
KR920003167A (ko) 1992-02-29
DE69132652D1 (de) 2001-08-16
TW202507B (de) 1993-03-21
KR0181471B1 (ko) 1999-05-15
US5590287A (en) 1996-12-31
EP0468823A2 (de) 1992-01-29
EP0468823A3 (en) 1992-09-30

Similar Documents

Publication Publication Date Title
DE69132652T2 (de) Rechnerdatenleitweglenkungssystem
DE19882696B4 (de) Speichertransaktionen auf einem Bus geringer Leitungsanzahl
DE69733384T2 (de) Prozessoruntersystem für den Gebrauch mit einer universellen Rechnerarchitektur
DE60026539T2 (de) Ein-/ausgabeadressübersetzung in einer brücke in unmittelbarer nähe eines lokalen ein-/ausgabebuses
DE19580707C2 (de) PCI-ZU-ISA-Interrupt-Protokoll-Konverter und -Auswahlmechanismus
DE69834739T2 (de) Ausgleichen von daten die zwischen verschiedenen leitern fliessen die auf unterschiedlichen frequenzen operieren
DE19580606C2 (de) Plattenlaufwerksverbinderschnittstelle zur Verwendung an einem PCI-Bus
DE602004012106T2 (de) Multikanal-DMA mit gemeinsamem FIFO-Puffer
DE69722117T2 (de) Einheitliche Speicherarchitektur mit dynamischer Grafikspeicherzuordnung
DE3146356C2 (de) Vorrichtung zur Steuerung der Übertragung von Gerätesteuerinformation in einem Datenendgerät
DE69828074T2 (de) Direkt-speicherzugriff / transaktionen auf ein bus mit niedriger pinanzahl
DE69930307T2 (de) Datenspeichersystem
DE60304455T2 (de) Usb host controller
DE4324521C2 (de) Vorrichtung zum Bestimmen einer Speicherkonfiguration von einem oder mehreren Paaren von Speichermodulen
DE10296959T5 (de) System und Verfahren zum Steuern der Buszuteilung während Cache-Speicher-Burstzyklen
DE19729618C2 (de) Mikroprozessor und Mehrprozessorsystem
DE69734551T2 (de) Verfahren und Gerät zur Erzeugung von Paritätsblöcken
DE19882975B4 (de) Zugreifen auf eine Nachrichtenaustauscheinheit von einem sekundären Bus aus
DE19908618A1 (de) Gemeinsam genutzter Hochleistungscachespeicher
US5796979A (en) Data processing system having demand based write through cache with enforced ordering
DE69034246T2 (de) Gerät zur Verarbeitung von Grafikdaten
EP0477595A2 (de) Cachespeichereinrichtung mit m Busanschlüssen
DE19900251A1 (de) Vorrichtung und Verfahren zum Steuern eines vielseitigen USB-Endpunktkanals
DE69034165T2 (de) Mikroprozessor mit einer Vielzahl von Buskonfigurationen
DE69932891T2 (de) Informationsverarbeitungsgerät und -verfahren, und Darstellungsmedium

Legal Events

Date Code Title Description
8332 No legal effect for de
8370 Indication of lapse of patent is to be deleted