DE10084612B4 - Ein Verfahren und eine Einrichtung für einen isochronen Datentransport über einen Asynchronen Bus - Google Patents

Ein Verfahren und eine Einrichtung für einen isochronen Datentransport über einen Asynchronen Bus Download PDF

Info

Publication number
DE10084612B4
DE10084612B4 DE10084612T DE10084612T DE10084612B4 DE 10084612 B4 DE10084612 B4 DE 10084612B4 DE 10084612 T DE10084612 T DE 10084612T DE 10084612 T DE10084612 T DE 10084612T DE 10084612 B4 DE10084612 B4 DE 10084612B4
Authority
DE
Germany
Prior art keywords
bus
transaction
isochronous
transactions
asynchronous
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE10084612T
Other languages
English (en)
Other versions
DE10084612T1 (de
Inventor
John I. Portland Garney
Brent S. Hillsboro Baxter
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE10084612T1 publication Critical patent/DE10084612T1/de
Application granted granted Critical
Publication of DE10084612B4 publication Critical patent/DE10084612B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/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/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4054Coupling between buses using bus bridges where the bridge performs a synchronising function where the function is bus cycle extension, e.g. to meet the timing requirements of the target bus

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)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)

Abstract

Ein Verfahren, umfassend:
Einstellen eines Konkurrenzschemas für einen asynchronen Bus derart, daß die Konkurrenzverzögerung isochroner Transaktionen auf dem asynchronen Bus begrenzt wird; wobei das Einstellen des Konkurrenzschemas für den asynchronen Bus ferner ein Setzen der Zuteilungsentscheidungspriorität für eine Leseanforderungstransaktion auf einen Wert, der größer als eine Zuteilungsentscheidungspriorität für eine Leseantwortransaktion ist, und ein Setzen der Zuteilungsentscheidungspriorität für eine Leseantworttransaktion auf einen Wert, der größer als eine Zuteilungsentscheidungsriorität für eine Schreibanforderungstransaktion ist, umfasst;
Koppeln einer ersten Einrichtung mit dem asynchronen Bus zum Aufnehmen einer isochronen Transaktion aus einer isochronen Einrichtung und zum Ausgaben der isochronen Transaktion auf den asynchronen Bus; und
Koppeln einer zweiten Einrichtung mit dem asynchronen Bus zum Aufnehmen der isochronen Transaktionen aus dem asynchronen Bus und zum Ausgeben der isochronen Transaktionen an eine dritte Einrichtung.

Description

  • Die Erfindung bezieht sich auf ein Verfahren zum Übertragen einer isochronen Transaktion auf einem asynchronen Bus sowie ein System mit einem asynchronen Bus, einer mit dem Bus gekoppelten ersten Einrichtung zum Aufnehmen einer isochronen Transaktion aus einer isochronen Einrichtung und zum Ausgeben der isochronen Transaktion auf den Bus und mit einer mit dem Bus gekoppelten zweiten Einrichtung zum Aufnehmen der isochronen Transaktion aus dem Bus und zum Ausgeben der isochronen Transaktion an eine dritte Einrichtung.
  • Bei digitalen Systemen können Daten zwischen Einrichtungen oder Geräten und einer geteilten Ressource (beispielsweise einem Speicher) übertragen werden. Die Daten können in Einheiten übertragen werden, die als Transaktionen bekannt sind. Eine Transaktion ist eine Ansammlung von Informationen, die erforderlich sind, um eine Operation zu initiieren oder abzuschließen, wie beispielsweise eine Operation zum Lesen von Daten aus einem Speicher oder zum Schreiben von Daten in den Speicher. Ein geteilter (oder gemeinsam benutzter Bus) könnte für derartige Transaktionen benutzt werden. Der Bus kann verschiedene Konkurrenzstrategien benutzen, um gleichzeitige Anforderungen des Busses aus mehreren Einrichtungen zu handhaben. zuteilungsentscheidungsregeln hängen üblicherweise von irgendeiner Form von Prioritätseinstellungen zum Auflösen der Zugriffskonkurrenz ab. Eine Strategie der Konkurrenzauflösung wird oftmals als "asynchron" bezeichnet. Asynchrone Strategien hängen stärker von den konkurrierenden Benutzungen zugewiesenen Prioritäten als von der zeitlichen Anordnung der einzelnen Transaktionen ab. Eine Transaktionen (beispielsweise eine Lese- oder Schreibanforderung) kann hin und wieder lange, unvorhersagbare Verzögerungen erfahren, während eine Übertragung über einen asynchronen Bus anhängig ist.
  • Eine asynchrone Konkurrenzauflösung benutzende Busse können verschiedenen Faktoren ausgesetzt sein, die eine zeitgenaue Übertragung von Transaktionen behindern. Typischerweise wird eine vollständige Transaktion über den Bus übertragen, bevor die Kontrolle über den Bus an weitere Transaktionen freigegeben wird. Während eine Transaktion voranschreitet, muß eine anhängige Transaktion (eine, die auf eine Übertragung über den Bus wartet) die nächste Zuteilungsentscheidungsmöglichkeit abwarten. Eine Zuteilungsentscheidungsmöglichkeit ist ein Zeitpunkt, zu welchem die Steuerlogik für den Bus bestimmt, welche an dem Bus anhängige Transaktion als nächstes übertragen wird. Die so benötigte Zeit wird als "Kollisionsverzögerung" bezeichnet.
  • Sobald die aktuelle Transaktion beendet ist, könnte die anhängige Transaktion eine weitere Verzögerung erfahren. Diese weitere Verzögerung kann sich ergeben, wenn eine weitere Transaktion mit einer höheren Priorität anhängig ist. Dies wird als "Zuteilungsentscheidungsverzögerung" bezeichnet.
  • Sobald die anhängige Transaktion den Zugriff auf den Bus erlangt, kann eine endliche Zeit vergehen, bevor die Transaktion in ihrer Gesamtheit über den Bus übertragen worden ist. Dies wird als "Übertragungsverzögerung" bezeichnet. Alle drei Arten der Verzögerung sind bei Bussen üblich, die eine prioritätsbasierte Konkurrenzauflösung benutzt, d. h. bei asynchronen Bussen.
  • Die kombinierte Wirkung dieser Verzögerung kann es sein, die die Abschlußzeit einer Transaktion unvorhersagbar und unbegrenzt werden läßt. Viele medienorientierte Einrichtungen (Audio- und Videoaufnahme- und -wiedergabeeinrichtungen beispielsweise) können für einen korrekten Betrieb von zeitgenauen Transaktionen abhängig sein. Isochrone Einrichtungen erfordern die Übertragung von Daten bis zu einer spezifizierten Maximalmenge X mit Hilfe einer oder mehrerer Transaktionen während jeder Periode in einer Reihe von Zeitperioden fester Dauer T. Dieses Erfordernis (im folgenden als isochroner X-T-Kontrakt bezeichnet) kann angesichts der nichtvorhersagbaren Lieferzeiten, die durch asynchrone Da tenübertragungsstrategien geboten werden, schwierig zu erfüllen sein.
  • Die Unterstützung isochroner Einrichtungen unter Verwendung eines asynchronen Busses kann unter Benutzung verschiedener Puffer- und Flußkontrolltechniken ausgeführt werden. Jedoch vertrauen viele Puffertechniken auf unangemessen hohe Puffergrößen. Diese übermäßigen Puffergrößen versuchen die nicht vorhersagbaren Verzögerungen, die den asynchronen Bussen innewohnen, zu berücksichtigen. Eine übermäßige Pufferung könnte unerwünschte Verarbeitungsverzögerungen, Kosten und Schaltungsgrößen für Komponenten, die einen X-T-Kontrakt implementieren, bringen. Eine Flußkontrolle könnte solchen Komponenten eine unnötige Komplexität geben.
  • Aus dem US-Patent Nr. 5,758,105 ist ein Arbiter bekannt, der einen normalen Arbitrierungsalgorithmus für Standard-Eingabe/Ausgabe-Geräte implementiert und darüber hinaus einen isochronen Arbitrierungsalgorithmus, der für isochrone Geräte arbeitet. Die isochronen Geräte können einen Impuls auf einer Busanforderungsleitung anlegen, und den Arbiter zu veranlassen, einen isochronen Arbitrierungszyklus abzuarbeiten. Der isochrone Arbitrierungsalgorithmus berücksichtigt die zeitlichen Anforderungen sämtlicher isochroner Geräte und gibt diesen Geräten eine höhere Priorität als Standardgeräten.
  • Aus der Veröffentlichung WO 96/13777 ist eine Schaltungsanordnung für einen Bus-Controller bekannt, die eine serielle Schnittstelle zu einer Anzahl isochroner Geräte bildet und Verzögerungen und Bandbreiten für die Funktionen der Peripherieeinrichtungen auf der Basis eines Abfragezeitplans (polling schedule) garantiert. Die isochronen Funktionen der seriellen isochronen Geräte werden in einem oder mehreren Soft-Frames eines Super-Frame so oft abgefragt, wie es erforderlich ist, um die Funktionsverzögerung und Bandbreite zu garantieren, während der Rest des Abfragens um das Abfragen der isochronen Funktionen herum eingeplant wird, typischerweise in anderen Soft-Frames.
  • Aus dem US-Patent 5,621,898 ist ein serieller Host-Bus-Controller-Arbiter bekannt, der Datenübertragungsereignisse in periodische Datenübertragungen (z. B. isochrone Übertragungen), aperiodische Übertragungen und Steuerübertragungen organisiert. Zu Beginn jeder Periode wechselt der Arbiter vorzugsweise zwischen periodischen Übertragungen und Steuerübertragungen ab, wobei den periodischen Ereignissen die Präferenz gegeben wird, und verschachtelt die Steuerereignisse mit den periodischen Ereignissen während der freien Zeit. Wenn sämtliche periodischen Übertragungen abgeschlossen worden sind, stellt der Arbiter einen Zugriff auf verschiedene asynchrone Übertragungen zur Verfügung.
  • Aufgabe der Erfindung ist es, eine Übertragung isochroner Transaktionen über einen asynchronen Bus ohne übermäßige Puffergrößen und komplexe Ablaufsteuerungen zu ermöglichen.
  • Diese Aufgabe wird erfindungsgemäß durch ein Verfahren mit den Merkmalen des Anspruchs 1 beziehungsweise ein System mit den Merkmalen des Anspruchs 5 oder ein Verfahren mit den Merkmalen des Anspruchs 9 gelöst.
  • Vorteilhafte und/oder bevorzugte Weiterbildungen der Erfindung sind in den Unteransprüchen gekennzeichnet.
  • Die Erfindung wird nachfolgend unter Bezugnahme auf die beigefügten Zeichnungen näher beschrieben.
  • 1 ist eine schematische Darstellung, die ein Ausführungsbeispiel eines isochronen Datentransports gemäß der vorliegenden Erfindung veranschaulicht.
  • 2 ist eine schematische Darstellung, die ein Ausführungsbeispiel einer Datenverarbeitungseinrichtung veranschaulicht, die ein Ausführungsbeispiel eines isochronen Datentransports gemäß der vorliegenden Erfindung benutzt.
  • Es wird ein Ausführungsbeispiel der Erfindung beschrieben, das Grenzen und Bedingungen einstellt, unter welchen isochrone Transaktionen über einen asynchronen Bus übertragen werden können. Derartige isochrone Transaktionen können in Übereinstimmung mit einem spezifizierten isochronen X-T-Kontrakt (bis zu X Bytes Daten werden in jeweils in T Sekunden verarbeitet) übertragen werden. Gemäß der vorliegenden Erfindung kann es möglich sein, Kollisions-, Zuteilungsentscheidungs- und Übertragungsverzögerungen für die Transaktionen auf dem asynchronen Bus genau zu bestimmen und zu begrenzen. Es kann somit möglich sein, einen Umfang der FIFO-Pufferung zum Erfüllen des isochronen X-T-Kontrakts genau zu bestimmen. Demzufolge können isochrone Daten und asynchrone Daten in Übereinstimmung mit einem X-T-Kontrakt über einen asynchronen Bus übertragen werden. Übermäßige Puffergrößen und Ablaufsteuerungen werden vermieden.
  • Ein Ausführungsbeispiel ermöglicht den Transport von Daten bis zu einer spezifizierten Maximalmenge (X) in jeder isochronen Periode (T) über einen asynchronen Bus. Bei einem Ausführungsbeispiel kann der asynchrone Bus halb-duplex sein. Auf einem Halb-Duplex-Bus können Daten in beiden Richtungen, aber nicht gleichzeitig in beiden Richtungen, übertragen werden.
  • 1 veranschaulicht ein vier-Stufen-Ausführungsbeispiel 100 einer Einrichtung zum Bereitstellen eines isochronen Datentransports gemäß der vorliegenden Erfindung. Eine solche Einrichtung kann als isochroner Datentransport oder einfach isochroner Transport bezeichnet werden. Die Erfindung ist in ihrem Umfang nicht auf vier Stufen beschränkt. Andere Datentransport-Ausführungsbeispiele könnten eine abweichende Anzahl von Stufen enthalten. Die Figur veranschaulicht ein Ausführungsbeispiel der Erfindung, jedoch findet die Erfindung auf einen beliebigen asynchronen Bus Anwendung, der mit den hier beschriebenen Einschränkungen und begrenzenden Bedingungen übereinstimmt. Beispielsweise findet die Erfindung auf Voll-Duplex-Verbindungen ebenso wie auf Halb-Duplex-Verbindungen Anwendungen.
  • Die bei dem Ausführungsbeispiel 100 benutzten Abschnitte, Stufen und Puffer werden jetzt beschrieben. Außerdem wird für dieses Ausführungsbeispiel der Fluß der Transaktionen zwischen den Stufen und Puffern beschrieben.
  • Bei dem veranschaulichten Ausführungsbeispiel weist jede Stufe einen oder mehrere Zuerst-Hinein-Zuerst-Hinaus(FIFO)-Puffer auf. Die FIFOs sind von ausreichender Größe, um die der bei dem asynchronen Bus 135 benutzten Konkurrenzauflösungsstrategie zugeordneten Verzögerungen zu tolerieren. Die Stufe-A-FIFOs 100, 120 können Signale für Transaktionen (im folgenden einfach als "Transaktionen" bezeichnet), die auf eine Übertragung über den Bus 135 warten, speichern. Die FIFOs 150, 160 in Stufe B können Transaktionen speichern, die auf einen Zugriff auf das Speichersystem warten. Bus 135 koppelt die Stufe A mit der Stufe B und kann beispielsweise einen Bus umfassen, der der Peripheral Component Interconnect (PCI) Specification, Ref. 2.2., ausgegeben am 01. Juni 1995 und erhältlich von der PCI Special Interest Group unter www.pcisig.com., entspricht. Ebenso können die Stufen C und D mit dem selben Bus 135 gekoppelt sein. Die Natur des Busses kann implementierungsabhängig variieren und kann beispielsweise einen seriellen oder parallelen Halb-Duplex-Bus oder Voll-Duplex-Bus umfassen.
  • Das veranschaulichte Ausführungsbeispiel 100 zeigt einen isochronen Transport, der zwei Abschnitte umfaßt. Ein Abschnitt 117 bildet eine Schnittstelle zwischen isochronen Einrichtungen und dem Bus 135. Ein weiterer Abschnitt 118 bildet eine Schnittstelle zwischen dem Bus 135 und dem Speichersystem 180. Fachleuten ist es klar, daß beide Abschnitte in einem einzigen Schaltungsgehäuse implementiert sein können. Darüber hinaus ist die Erfindung nicht auf zwei Abschnitte beschränkt, sondern wird aus Gründen der Vereinfachung anhand von zwei Abschnitten veranschaulicht. Es ist klar, daß der Speicher 180 nur ein Beispiel der Einrichtungen und Schaltungen ist, welche mit dem Abschnitt 118 gekoppelt werden können. Bei diesem Ausführungsbeispiel treten sämtliche isochronen Transaktionen (beispielsweise Leseanforderungen und Schreibanforderungen zum/aus dem Speicher 180) in den isochronen Transport bei Stufe A ein. Beispiele von Arten der Transaktionen, welche bei der Stufe A eintreten können, umfassen Leseanforderungstransaktionen und Schreibanforderungstransaktionen. Die Leseanforderungstransaktion kann eine Adresse im Speicher enthalten, aus welcher Daten in einer Leserückgabetransaktion zurückgegeben werden. Eine Schreibtransaktion kann eine Adresse aufweisen, welche das Ziel im Speicher spezifiziert, zu welchem die Daten gespeichert werden sollen. Die Schreibtransaktion kann darüber hinaus die zu schreibenden Daten enthalten. Eine Schreibanforderung kann zu einer Rückgabetransaktion führen, was von der Implementierung abhängt. Bei einem Ausführungsbeispiel können sich asynchrone Einrichtungen den Bus 135 mit dem isochronen Transport teilen. Diese asynchronen Einrichtungen können bewirken, daß asynchrone Transaktionen über den asynchronen Bus 135 weitergeleitet werden. Diese asynchronen Transaktionen werden nicht durch die veranschaulichten FIFOs des isochronen Transports 100 durchgeleitet.
  • Eine isochrone Einrichtung kann eine Leseanforderungstransaktion an das Speichersystem 180 übermitteln. Die an die Einrichtung in Erwiderung einer Leseanforderungstransaktion zurückgegebenen Daten werden Leserückgabetransaktion genannt. Bei einem Ausführungsbeispiel, bei welchem Schreibtransaktionen keine Antwort erzeugen, empfängt die Stufe C nur Leserückgabetransaktionen aus dem Speichersystem 180. Stufe C leitet diese Leserückgabetransaktionen zu Stufe D über den Bus 135 weiter. Stufe D leitet die Leserückgabetransaktionen aus dem isochronen Transport 100 zu der (nicht gezeigten) isochronen Einrichtung weiter. Leserückgabetransaktionen erreichen die Einrichtung eine Anzahl von isochronen Perioden (T) nach der Leseanforderungstransaktion, auf welche sie antworten. Die Anzahl der isochronen Perioden (T), die der Leseanforderungstransaktion folgen, wird durch den X-T-Kontrakt bestimmt.
  • Die Raten, bei welcher Daten in den verschiedenen Stufen übertragen werden, werden jetzt beschrieben. Außerdem werden die am Ausgang jeder Stufe anzutreffenden Verzögerungen beschrieben.
  • Bei einem Ausführungsbeispiel werden Puffer zwischen den Stufen benutzt. Die Puffer stellen eine Speicherung für zwischen den Stufen übertragene Transaktionen zur Verfügung. Stufe A umfaßt die FIFOs 110 und 120. FIFO 120 kann aus einer isochronen Einrichtung außerhalb des isochronen Transports empfangene Leseanforderungen speichern. FIFO 110 kann aus der isochronen Einrichtung empfangene Schreibanforderungen speichern. Der Lese-FIFO 120 weist eine zugeordnete Ausgabeverzögerung Dar 140 auf. In gleicher Weise weist der Schreib-FIFO 110 eine zugeordnete Ausgabeverzögerung Daw 130 auf. Dies sind diejenigen Verzögerungen, die von den Trans aktionen, die die Stufe A in Richtung des Busses 135 verlassen, angetroffen werden. Stufe B umfaßt den Schreibanforderungs-FIFO 150 der mit dem Schreibanforderungs-FIFO 110 in Stufe A gekoppelt ist. Die Koppelung zwischen den Stufen wird mit Hilfe des Busses 135 erreicht. Stufe B weist ferner einen Leseanforderungs-FIFO 160 auf, der mit dem Leseanforderungs-FIFO 120 in Stufe A gekoppelt ist. Der Ausgang der Stufe B ist mit dem Speicher 180 gekoppelt. Stufe B weist eine zugehörige Ausgabeverzögerung Db 170 auf. Dies ist die von Transaktionen, die die Stufe B in Richtung des Speichers 180 verlassen, erfahrene Verzögerung. Bei einem Ausführungsbeispiel kann angenommen werden, daß die Verzögerung Db der Stufe B 170 für den Lese-FIFO 160 und den Schreib-FIFO 150 wegen der hohen I/O-Geschwindigkeit des Speichers 180 gleich ist.
  • Stufe C umfaßt einen Leserückgabe-FIFO 190 und eine Ausgabeverzögerung Dc 105. Der FIFO 190 ist über den Bus 135 mit dem Leserückgabe-FIFO 115 in Stufe D gekoppelt. Stufe D weist eine Ausgabeverzögerung Dd 125 auf. Gegebenenfalls werden Schreibanforderungs-FIFOs in den Stufen C und D nicht benutzt, wenn Schreibanforderungen keine Rückgabetransaktionen aus dem Speicher 180 erzeugen.
  • Fachleuten ist es klar, daß die in 1 dargestellten Verzögerungsblöcke nicht notwendigerweise tatsächliche Schaltungen repräsentieren. Stattdessen sind diese Verzögerungsblöcke angegeben, um den Ort innerhalb des isochronen Transports zu veranschaulichen, an dem von den Transaktionen, die sich durch den isochronen Transport hindurch bewegen, Verzögerungen angetroffen werden können.
  • Ein Pfad, dem die Transaktionen von der isochronen Einrichtung bis zum Speicher 180 folgen, umfaßt die Stufen A und B. Transaktionen können von den FIFOs 110, 120 bei der isochronen Rate Ra gemäß dem X-T-Kontrakt empfangen werden. Transaktionen können aus den FIFOs 110, 120 über den Bus 135 bei einer Rate Rby zu den FIFOs 150, 160 übertragen werden. Das Symbol y wird auf "r" für Lesetransaktionen und auf "w" für Schreibtransaktionen gesetzt. Transaktionen können aus den FIFOs 150, 160 zum Speicher 180 bei einer Rate Rm transportiert werden. Ein Rückgabepfad für Transaktionen aus dem Speicher zu der isochronen Einrichtung 180 umfaßt die Stufen C und D. Antworttransaktionen können aus dem Speicher 180 zum FIFO 190 bei einer Rate Rm transportiert werden. Mit anderen Worten, zu Zwecken dieser Analyse wird von dem Speicher 180 angenommen, daß seine Eingaberate gleich seiner Ausgaberate ist. Diese Annahme findet typischerweise auf Hochgeschwindigkeitsspeicher Anwendung.
  • Transaktionen können aus dem FIFO 190 über den Bus 135 bei einer Rate Rd zum FIFO 115 transportiert werden. Transaktionen können aus dem FIFO 115 bei der isochronen Rate Ra in Übereinstimmung mit dem X-T-Kontrakt ausgegeben werden. Mit anderen Worten, ein X-T-Kontrakt kann spezifizieren, daß Antworttransaktionen von dem isochronen Transport bei derselben Rate zur Verfügung gestellt werden, bei welcher Leseanforderungstransaktionen von dem isochronen Transport empfangen werden.
  • Sämtliche Raten können zu Zwecken der Veranschaulichung in Einheiten der Transaktionsgröße ausgedrückt werden. Beispielsweise kann bei Leseanforderungen Rbr als ein Vielfaches der Größe einer Leseanforderungstransaktion ausgedrückt werden. Die Rate Rd kann als ein Vielfaches der Leseantworttransaktionsgröße ausgedrückt werden. Wenn sie als solche ausgedrückt werden, können Rby und Rd als Bustransaktionsraten definiert werden.
  • Die Ratensymbole in 1 können in Übereinstimmung mit den folgenden Definitionen interpretiert werden:
  • Symbol
    = Rxy
    R
    = Rate
    x
    = Eingangsstufe
    y
    = Lesen oder Schreiben. Wird nicht verwendet, wenn die Rate für Lese- und Schreibtransaktionen identisch ist.
  • Beispielsweise ist Rbr die Buslesetransaktionsrate in die Stufe B. Ra ist die isochrone Datenrate in die Stufe A. Bei einem Ausführungsbeispiel ist sie für Lese- und Schreibanforderungen gleich und es wird somit keine Lese/Schreib-Buchstabenkennzeichnung benutzt.
  • Wie zuvor beschrieben, können Transaktionen über einen gemeinsamen asynchronen Bus Verzögerungen unterworfen sein. Diese Verzögerungen umfassen die Kollisionsverzögerung, die Zuteilungsentscheidungsverzögerung und die Übertragungsverzögerung. Die Kollisionsverzögerung ist die Verzögerung, welche eine Transaktion erfahren kann, während sie darauf wartete, daß eine andere Transaktion auf dem Bus abgeschlossen wird. Die Zuteilungsentscheidungsverzögerung ist diejenige Verzögerung, welche eine Transaktion erfahren kann, während es anderen anhängigen Transaktionen gestattet wird, den Bus zu verwenden. Sobald einer Transaktion die Kontrolle über den Bus gewährt wird, ist die Übertragungsverzögerung diejenige Zeit, die benötigt wird, um die Transaktionsdaten über den Bus bei der Bustransaktionsrate zu transportieren.
  • Es können den Transaktionen über den Bus 135 Einschränkungen auferlegt werden, um die Bestimmung geeigneter Puffergrößen für den Transport 100 zu unterstützen. Es ist klar, daß die unten beschriebenen Einschränkungen bloß Beispiele für ein Ausführungsbeispiel der Erfindung sind. Andere Einschränkungen können für andere Implementierungen benutzt werden, wie es die Anwendung diktiert. Fachleuten ist es klar, daß derartige Einschränkungen auferlegt werden können, indem der Bus mit einer Bussteuereinrichtung gekoppelt wird, welche derartige Einschränkungen verkörpert und erzwingt. Selbstverständlich ist die Erfindung nicht auf irgendeine spezielle Technik zum Auferlegen dieser Einschränkungen eingeschränkt, und zahlreiche weitere Möglichkeiten dies auszuführen sollen im Umfang der vorliegenden Erfindung liegen.
  • Bei einem Ausführungsbeispiel kann eine maximale Bustransaktionsgröße für den Bus 135 gesetzt werden. Die ma ximale Bustransaktionsgröße bestimmt die Maximalanzahl von Datenbytes, welche eine Transaktion umfassen kann. Das Setzen einer maximalen Bustransaktionsgröße kann der Kollisionsverzögerung, die eine Transaktion erfahren kann, eine Begrenzung auferlegen. Die maximale Bustransaktionsgröße kann darüber hinaus die maximale Übertragungsverzögerung, die eine Transaktion erfährt, einschränken. Um der Zuteilungsentscheidungsverzögerung eine Grenze aufzuerlegen, kann eine höhere Buszuteilungsentscheidungspriorität den auf den Bus 135 aus dem FIFOs 110, 120 ausgegebenen isochronen Transaktionen und den auf dem Bus 135 von dem FIFO 190 ausgegebenen Antworttransaktionen zugewiesen werden. Die Zuteilungsentscheidungspriorität dieser Transaktionen kann höher eingestellt werden als bei asynchronen Transaktionen, die auf den Bus 135 durch angeschlossene asynchrone Einrichtungen ausgegeben werden. Dies ist jedoch nur ein mögliches Ausführungsbeispiel. Beliebige Einschränkungen für Bustransaktionen, welche dazu dienen, die Verzögerung für isochrone Transaktionen zu begrenzen, liegen innerhalb des vorgesehenen Umfangs der Erfindung.
  • Bei einem Ausführungsbeispiel wird der Wert von T (der Zeitdauer für den X-T-Kontrakt) so gewählt, daß eine mit dem isochronen Transport 100 gekoppelte isochrone Einrichtung kontinuierlich Lesetransaktionsanforderungen liefern kann. Die Einrichtung kann darüber hinaus die zugehörigen kontinuierlichen Leserückgabetransaktionen empfangen. Die isochrone Einrichtung kann außerdem kontinuierliche Schreibanforderungstransaktionen liefern.
  • In Symbolen:
  • T
    = Isochrone Zeitperiode
    R
    = Größe der Leseanforderungstransaktion in Bytes
    W
    = Größe der Schreibanforderungstransaktion in Bytes
    S
    = Größe der Leserückgabetransaktion in Bytes
    T = max(R + S, W)·Cwobei C eine Konstante in der Einheit Sekunden pro Byte ist. Der tatsächliche Wert von C wird von der isochronen Rate des X-T-Kontrakts bestimmt. Bei einer isochronen Rate von 20 Megabyte (MB) pro Sekunde (s) beispielsweise ist C = 1/20.000.000. Fachleute erkennen den üblichen max-Operator, welcher aus seinen Argumenten das mit dem höchsten Wert zurückgibt.
  • Die Auswahl dieser isochronen Zeitperiode kann es einer isochronen Einrichtung ermöglichen, einen kontinuierlichen Strom von Leseanforderungstransaktionen an das Datentransportausführungsbeispiel 100 zu senden. Die Einrichtung kann darüber hinaus einen kontinuierlichen Strom von Leserückgabetransaktionen empfangen oder einen kontinuierlichen Strom von Schreibanforderungstransaktionen senden.
  • Die Bustransaktionsraten Rby und Rd können auf einen größeren Wert als die isochrone Rate Ra eingestellt werden. Die Raten Rby und Rd können darüber hinaus auf einen Wert gesetzt werden, der kleiner als die Speicherrate Rm ist. Beispielsweise kann eine isochrone 20 MB/s-Einrichtung eine Schnittstelle zur Stufe A bilden. Der Bus 135 kann ein 100 MB/s-PCI-Bus sein. Ein 1000 MB/s-Speicherbus kann eine Schnittstelle zwischen den Stufen B und C und dem Speicher bilden.
  • Als nächstes wird eine Strategie zum Bestimmen der Puffergrößen für den Transport 100 beschrieben. Diese Strategie wird im Lichte von den Zuteilungsentscheidungs-Übertragungs- und Kollisionszeiten für den Bus 135 auferlegten Einschränkungen bestimmt.
  • Bei einem Ausführungsbeispiel kann jeder der Puffer auf eine Größe eingestellt werden, die zumindest zum Teil von einer effektiven Entleerungsrate (drain rate) für jeden der Puffer bestimmt wird. Die Puffergrößen können darüber hinaus zumindest zum Teil durch eine Ausgabeverzögerung für jeden der Puffer bestimmt werden. Diese Puffergrößen können einen zuverlässigen isochronen Datentransport über den asynchronen Bus 135 ohne übermäßige Puffergrößen und ohne Benutzung übermäßiger Ablaufsteuerung ermöglichen. Eine effektive Entleerungsrate kann als diejenige Rate definiert werden, bei welcher ein Puffer entleert wird, wobei der Füllstatus vorhergehender Puffer in dem isochronen Transaktionspfad (dem Pfad, über welchem sich isochrone Transaktionen durch den Datentransport ausbreiten) berücksichtigt wird. Ein Ausführungsbeispiel einer Technik zum Bestimmen der Größen der Puffer eines Ausführungsbeispiels des Datentransports, das FIFOs benutzt, wird unten detaillierter beschrieben.
  • Puffergrößen können bestimmt werden, indem die Verzögerungen an den Pufferausgängen überprüft werden. Die Verzögerungen an den Ausgangsports der Stufen A und C können zum Teil durch Verzögerungen bestimmt werden, welche Transaktionen auf dem Bus 135 erfahren. Wie zuvor angemerkt, kann die Verzögerung, welche eine Transaktion auf dem Bus 135 erfährt, drei Komponenten umfassen: eine Kollisionsverzögerung, eine Zuteilungsentscheidungsverzögerung und eine Übertragungsverzögerung. In Gleichungsform: Dlink = Dcol + Darb + Dtrans
  • Die Kollisionsverzögerung Dcol ist die Zeit, welche eine Transaktion darauf warten muß, daß eine andere Transaktion abgeschlossen wird, bevor die Möglichkeit zum Benutzen des Busses 135 entsteht. Dcol kann durch Zuweisen einer maximalen Transaktionsgröße für den Bus 135 eingegrenzt werden.
  • Die maximale Transaktionsgröße kann darüber hinaus eine obere Begrenzung für Dtrans setzen, die etwa gleich der Zeit ist, die der Bus 135 benötigt, um eine Transaktion mit der maximalen Größe zu übermitteln.
  • Die Zuteilungsentscheidungsverzögerung Darb ist als diejenige Verzögerung definiert, die von einer Transaktion, die die Verwendung des Busses 135 wünscht, angetroffen wird, nachdem die nächste Möglichkeit zur Benutzung des Busses 135 entstanden ist. Die Zuteilungsentscheidungsverzögerung ist anzutreffen, wenn der Bus 135 verfügbar, aber andere Trans aktionen mit gleicher oder höherer Priorität anhängig sind, um den Bus 135 zu benutzen.
  • Die Zuteilungsentscheidungsverzögerungszeit kann durch die speziellen Zuteilungsentscheidungsregeln bestimmt werden, die für den Bus 135 benutzt werden. Verschiedene Implementierungen können verschiedene Zuteilungsentscheidungsregeln benutzen. Diese verschiedenen Zuteilungsentscheidungsregeln können zu verschiedenen Verzögerungszeiten für die Zuteilungsentscheidung führen. Beispielsweise kann ein Buszuteilungsentscheider, welcher Leseanforderungen eine höhere Priorität gibt, bewirken, daß eine Schreibtransaktion eine höhere Zuteilungsentscheidungsverzögerung erfährt als eine Lesetransaktion. Die Schreibtransaktion kann eine höhere Zuteilungsentscheidungsverzögerung dann erfahren, wenn sowohl Lese- als auch Schreib-Transaktionen auf die Benutzung des Busses 135 warten. Im Gegensatz dazu kann ein Buszuteilungsentscheider, welcher eine höhere Priorität den Schreibanforderungen gibt, bewirken, daß eine Lesetransaktion eine höhere Zuteilungsentscheidungsverzögerung erfährt als eine Schreibtransaktion. Die Lesetransaktion kann eine höhere Zuteilungsentscheidungsverzögerung erfahren, wenn sowohl Lese- als auch Schreibtransaktionen auf dem Bus 135 anhängig sind.
  • Puffergrößen und Verzögerungszeiten hängen voneinander ab, und es ist hilfreich, mit der Bestimmung der Puffergrößen fortzufahren, bevor eine Bestimmung der Verzögerungen ausgeführt wird.
  • In der folgenden Beschreibung werden FIFO-Größen in Einheiten der Transaktionen ausgedrückt. Wenn beispielsweise eine Leseanforderungstransaktion vier Bytes ist, würde ein Lesetransaktions-FIFO mit einer Größe von 16 Bytes eine Transaktionsgröße von 16/4 = 4 Transaktionseinheiten haben. FIFO-Ausgabeverzögerungen werden auf eine Weise ausgedrückt, die ähnlich den Transportraten ist:
  • Symbol
    = Dxy
    D
    = Verzögerung
    x
    = Stufe
    y
    = Lesen oder Schreiben. Wird nicht benutzt, wenn die Verzögerung für Lese- und Schreibtransaktionen identisch ist.
  • Im allgemeinen kann die Größe jedes FIFO als Funktion der Füll- und Entleerraten der FIFOs sowie der Ausgabeverzögerungszeit bestimmt werden. Symbole zum Ausdrücken der FIFO-Größen sind:
  • Symbol
    = FIFOxy
    x
    = Stufe
    y
    = Lese oder Schreibe. Wird nicht verwendet, wenn derselbe FIFO für Lese- und Schreibtransaktionen benutzt wird.
  • Unter Verwendung dieser Symbole kann eine FIFO-Größe für eine Stufe A bestimmt werden zu: FIFOar = ceiling[Ra·Dar] FIFOaw = ceiling[Ra·Daw](ceiling berechnet die kleinste ganze Zahl, die größer oder gleich dem Wert des in Klammeren gesetzten Ausdrucks ist)
  • Mit anderen Worten, die FIFO-Größen der Stufe A werden durch die Füllrate (Ra) multipliziert mit der Ausgabeverzögerung der Stufe A bestimmt. Das Produkt wird zum nächsten ganzzahligen Vielfachen der Transaktionsgröße aufgerundet.
  • Zur Berechnung der FIFO-Größe der Stufe B können zwei Zeitperioden betrachtet werden. Die erste Zeitdauer ist die Zeit, während welcher der FIFO der Stufe A nicht vollständig geleert ist. Die zweite Zeitdauer ist die Zeit, nachdem der Stufe-A-FIFO vollständig geleert ist. Der Wert Rby – Ra ist die effektive Entleerungsrate des Stufe-A-FIFO, wenn der Stufe-A-FIFO nicht vollständig entleert ist. Mit anderen Worten, dies ist die effektive Rate, bei welcher der Stufe-A-FIFO an gespeicherten Transaktionen verarmt, indem er sie auf den Bus 135 ausgibt. Die Raten werden subtrahiert, um den Umstand zu berücksichtigen, daß der Stufe-A-FIFO bei einer Rate Ra gefüllt wird, selbst wenn er bei der Rate Rby entleert wird. Der Wert Ra ist die effektive Entleerungsrate des Stufe-A-FIFO, wenn die Stufe A vollständig entleert ist. In diesem Zustand werden in die Stufe A bei der Rate Ra eintretenden Transaktionen im Ergebnis zur Stufe B über den asynchronen Bus 135 bei der Rate Ra "durchgeleitet".
  • Der Term FIFOay/(Rby – Ra) beschreibt die Zeit, die benutzt wird, um den Stufe-A-FIFO vollständig zu entleeren, sobald ein Aufbau von Transaktionen in der Stufe A auftritt. Wie bereits gesagt, können sich die Transaktionsraten erhöhen, wenn die Daten zum Speichersystem 180 fließen. Mit anderen Worten, Ra < Rby < Rm. Angenommen, die Zeit, die zum Entleeren des Stufe-A-FIFO benötigt wird, ist größer als die Stufe-B-Ausgabeverzögerung. Dann ist die Füllrate des Stufe-B-FIFO gleich Rby. Andernfalls wird der Stufe-B-FIFO bei der Rate Rby gefüllt, bis der Stufe-A-FIFO leer ist. Der Stufe B-FIFO wird dann bei der Rate Ra für den Rest der Stufe-B-Ausgabeverzögerung gefüllt. Diese Beziehung kann ausgedrückt werden als: FIFOby = Zeit, während welcher FIFOay nicht vollständig geleert ist + Zeit, nachdem FIFOay vollständig geleert ist und sich bei Rate Ra fülltZeit, während welcher FIFOay nicht vollständig geleert ist: ceiling[Rby·min(Dby, FIFOay/(Rby – Ra))]Zeit, nachdem FIFOay vollständig geleert ist und bei der Rate Ra gefüllt wird: ceiling[Ra·max(0,(Dby – FIFOay/(Rby – Ra)))]
  • Man beachte wiederum, daß Rby die Transaktionsrate über den asynchronen Bus 135 ist. Somit kann Rby für Leseanforderungen und Schreibanforderungen unterschiedlich sein. Die zwei Werte können verschieden sein, wenn die beiden Arten der Transaktionen von unterschiedlicher Größe sind.
  • Bei einem Ausführungsbeispiel werden nur Leserückgabetransaktionen für den Rückgabepfad (Stufen C und D) betrachtet. Bei diesem Ausführungsbeispiel erzeugen Schreibanforderungen keine Rückgabetransaktionen.
  • Für Stufe C können drei Zeitperioden betrachtet werden. Die erste Zeitperiode ist die Zeit, während welcher von der Stufe C ausgegebene Transaktionen verzögert werden. Während dieser Zeit wird der Stufe-C-FIFO mit Leserückgabetransaktionen aus dem Speicher gefüllt. Diese Leserückgabetransaktionen werden durch Leseanforderungen erzeugt, die aus Stufe B in den Speicher entleert werden.
  • Die zweite zu betrachtende Zeit ist die Zeit, während welcher aus Stufe C ausgegebene Transaktionen verzögert werden und der Stufe-C-FIFO durch Leserückgabetransaktionen gefüllt wird, die durch Leseanforderungen erzeugt werden, die durch Stufe B hindurch zum Speicher weitergeleitet wurden. Mit anderen Worten, Stufe B ist vollständig entleert. Die dritte zu betrachtende Zeit ist die Zeit, während welcher aus Stufe C ausgegebene Transaktionen nicht verzögert werden. FIFOc = Von Stufe C ausgegebene Transaktionen verzögert und Stufe B nicht vollständig geleert + Aus Stufe C ausgegebene Transaktionen verzögert und Stufe B vollständig geleert + Aus Stufe C ausgegebene Transaktionen nicht verzögertAus Stufe C ausgegebene Transaktionen verzögert und Stufe B nicht vollständig geleert: ceiling[Rm·min(Dc, FIFObr/(Rm – Rbr))]Aus Stufe C ausgegebene Transaktionen verzögert und Stufe B vollständig geleert: ceiling[max(0, FIFObr/(Rm – Rbr) – Dc)·(Rm – Rd)]Aus Stufe C ausgegebene Transaktionen nicht verzögert: ceiling[Ra·max(0,(Dbr – FIFObr/(Rm – Rbr)))]
  • Man beachte, daß bei diesem Ausführungsbeispiel jede Leseanforderungstransaktion, welche aus Stufe A an Stufe B weitergeleitet wird, eine Leserückgabetransaktion über die Stufen C und D erzeugen kann.
  • Wir kehren jetzt zur Bestimmung der Verzögerungen für die verschiedenen Stufen des Transports für dieses spezielle Ausführungsbeispiel der Erfindung zurück.
  • Bei Stufe D kann eine Verzögerung auf Leserückgabetransaktionen am Ausgangsport der Stufe D angelegt werden. Diese Verzögerung kann angelegt werden, um die Rückgabe der Leserückgabetransaktionen zu verhindern, bevor das Zeitintervall für die von dem X-T-Kontrakt bestimmte Transaktion abgelaufen ist. Die aufzuerlegende Verzögerung kann bestimmt werden, indem die minimal mögliche Umlaufverzögerung durch das Datentransportausführungsbeispiel von der maximal möglichen Umlaufverzögerung subtrahiert wird. Dmin = (1/Ra + 1/Rb + 1/Rm + 1/Rd + Dm) Dmax = Da + Db + Dc + Dm
  • Wobei Dm die dem Speicher beim Erfüllen einer Speicherleseanforderung innewohnende Verzögerung ist.
  • Die Größe des Stufe-D-Puffers kann bestimmt werden durch: FIFOd = (Dmax – Dmin)·Ra
  • Wie zuvor angemerkt, kann die Kollisionszeit für den asynchronen Bus 135 durch die maximale Transaktionsgröße eingegrenzt werden. Die maximale Übertragungszeit kann ebenfalls durch die maximale Transaktionsgröße begrenzt werden. Bei einem Ausführungsbeispiel kann die maximale Zuteilungsentscheidungszeit, welcher eine Transaktion ausgesetzt sein kann, zum Teil durch Zuteilungsentscheidungsprioritätsregeln bestimmt werden. Diese Regeln können für Lese-, Schreib- und Leserückgabetransaktionen gelten. Die maximale Zuteilungsentscheidungszeit kann außerdem durch die Anzahl von jedes Transaktionstyps, welche zu einem gegebenen Augenblick in den Puffern gespeichert werden kann, bestimmt werden.
  • Wie zuvor angemerkt, können bei den FIFOs benutzenden Ausführungsbeispielen die FIFO-Größen in Einheiten der Transaktionen ausgedrückt werden. Die maximale Anzahl der Transaktionen, welche in der Stufe A anhängig sein kann, ist:
    Maximalanzahl der anhängigen Lesetransaktionen, gespeichert in Stufe A: FIFOar
    Maximalanzahl der anhängigen Schreibtransaktionen, gespeichert in Stufe A: FIFOaw
  • In ähnlicher Weise ist die Maximalanzahl der Leserückgabetransaktionen, welche in der Stufe C anhängig sein können,
    Maximalanzahl der anhängigen Leserückgabetransaktionen, gespeichert in Stufe C: FIFOc
  • Bei einem Ausführungsbeispiel kann den auf dem asynchronen Bus 135 anhängigen isochronen Transaktionen eine Priorität gegenüber asynchronen Transaktionen gewährt werden. Asynchronen Transaktionen wird eine geringere Priorität zugewiesen, und sie tragen somit nicht zu irgendeiner Verzögerung der Zuteilungsentscheidungszeit der isochronen Transaktionen bei.
  • Eine Verzögerung kann an der Schnittstelle zwischen Stufe B und Speicher 180 eintreten. Eine weitere Verzögerung kann an der Schnittstelle des Speichers 180 und der Stufe C eintreten. Bei einem einen (nicht gezeigten) asynchronen Speicherbus benutzenden Ausführungsbeispiel können diese Verzögerungen auf ähnliche Weise bestimmt werden, wie die Verzögerungen auf dem asynchronen Bus 135. D. h., die Gesamtverzögerung an der Schnittstelle kann eine Zuteilungsent scheidungsverzögerung, eine Kollisionsverzögerung und eine Übertragungsverzögerung umfassen.
  • Bei einem Ausführungsbeispiel können Zuteilungsentscheidungsprioritäten derart zugewiesen sein, daß die Leseanforderungstransaktionen eine höhere Priorität als die Leserückgabetransaktionen haben. Leserückgabetransaktionen kann eine höhere Priorität zugewiesen sein als Schreibtransaktionen. Bei diesem Schema kann die maximale Leseanforderungstransaktions-Zuteilungsentscheidungszeit ausgedrückt werden als: Darb, max = 0
  • Leseanforderungen können keine Zuteilungsentscheidungsverzögerung verursachen, da ihnen eine höhere Zuteilungsentscheidungspriorität als Schreiboperationen oder Leserückgaben zugewiesen ist. Sobald der Bus 135 bereit ist, die nächste Transaktion zu akzeptieren, wird der nächsten anhängigen Leseanforderungstransaktion die Benutzung des Busses 135 gewährt.
  • Bei Leserückgabetransaktionen ist Darb, max = bus_turn_time + FIFOar/Rbr
  • Bei Halb-Duplex-Bussen ist die Busumkehrzeit die Zeit zum Umschalten der Bussignale aus einer Richtung in die andere (d. h. von Hinein nach Hinaus oder umgekehrt). Bei diesem Ausführungsbeispiel ist FIFOar/Rbr die Zeit zum Entleeren sämtlicher anhängiger Leseanforderungstransaktionen aus dem Stufe-A-Puffer.
  • Für Schreibtransaktionen ist Darb (schreib) = Darb (leserückgabe) + bus_turn_time + FIFOc/Rb + bus_turn_time + (max_burst_transaction_period/2·T)
  • Mit anderen Worten, damit einer Schreibtransaktion der Zugriff auf den Bus gewährt wird, muß diese darauf warten, daß die Maximalanzahl anhängiger Lesetransaktionen über den Bus 135 übertragen worden ist (Darb (leserückgabe)). Die Schreibtransaktion könnte dann den Bus umzukehren haben und darauf warten müssen, daß die Maximalanzahl von Leserückgabetransaktionen über den Bus 135 übertragen worden ist (FIFOc/Rd), um dann den Bus erneut umzukehren. Die abschließende Dauer (max_burst_transaction_period/2·T) setzt eine obere Grenze für die Verzögerung, die sich aus einem Strom kontinuierliche Lesetransaktionen ergibt. Da Schreibanforderungstransaktionen sowohl auf Leseanforderungstransaktionen als auch auf Leserückgabetransaktionen warten müssen, setzt diese Dauer eine Begrenzung für die Zeit, die eine Schreibtransaktion auf einen Übergang zwischen einer Leseanforderungstransaktion und einer Schreibtransaktion warten muß.
  • Die Dauer (max_burst_transaction_period) repräsentiert die Maximalanzahl isochroner Perioden T, die ausschließlich Leseanforderungstransaktionen (oder ausschließlich Schreibtransaktionen) enthalten dürfen. Bei einem Ausführungsbeispiel kann eine einer Serie von Leseanforderungstransaktionen folgende Schreibtransaktion verzögert werden, wenn sie auf dem Bus 135 mit Leserückgabetransaktionen kollidiert. Eine ausreichende Pufferung könnte benutzt werden, um diese anhängige Schreibtransaktion zu halten. Das Worst-Case-Szenarium ist eine Serie von max_burst_transaction_period/2 Schreibtransaktionen gefolgt von max_burst_transaction_period/2 Leseanforderungstransaktionen. In diesem Fall könnte eine Pufferung zum Aufnehmen von max_burst_transaction_period/2 anhängigen Schreibtransaktionen benutzt werden. Diese Dauer ist folglich in der Formel für Darb(schreib) enthalten, um den richtigen Pufferraum zu bestimmen. Mit anderen Worten, wenn der Transaktionsverkehr kontinuierlich ist, muß es nach einer Zeit von max_burst_transaction_period/2·T eine Periode T keiner Anforderungen oder einen Übergang von einer Leseanforderungstransaktion zu einer Schreibanforderungstransaktion oder umgekehrt geben. Wenn es Leseanforderungstransaktionen gestattet würde, stets kontinuierlich übermittelt zu werden, könnte eine auf dem Bus 135 anhängige Schreibtransaktion un endlich verzögert werden. Diese Dauer verhindert, daß dies geschieht.
  • Da in Richtung des Speichers die Raten ansteigen, treten keine zusätzlichen Verzögerungen auf.
  • Auf die beschriebene Weise können Verzögerungen und Puffergrößen für die vier Stufen des beschriebenen Datentransportausführungsbeispiels 100 genauer bestimmt werden. Ein zuverlässiger isochroner Datentransport über einen asynchronen Bus 135 kann ohne übermäßige Puffergrößen oder Ablaufsteuerung ausgeführt werden.
  • 2 zeigt ein Ausführungsbeispiel 200 einer ein Ausführungsbeispiel eines isochronen Datentransports benutzenden Datenverarbeitungseinrichtung. Das Ausführungsbeispiel 200 umfaßt einen Prozessor 220 zum Ausführen von Befehlen und zum Lesen von aus einem Speicherbus 240 gelieferten Daten. Befehle und Daten werden einem Speicher 210 zur Verfügung gestellt. Der Prozessor 220 kann unter Verwendung einer beliebigen Halbleiterherstellungstechnologie implementiert sein und kann einen beliebigen Befehlssatz ausführen einschließlich eines von einem Pentium®-Prozessor der Intel Corporation oder eines anderen kompatiblen Prozessors unterstützten Befehlssatzes, ist aber nicht darauf beschränkt. Das Systemausführungsbeispiel 200 kann darüber hinaus einen asynchronen I/O-Bus 230 enthalten, über welchen Einrichtungen oder (Geräte) Signale mit dem System austauschen können. Der Speicherbus 240 und der I/O-Bus 230 können unter Verwendung von Technologien zum Ausbreiten von Signalen implementiert sein, die elektronische und optische Leiter einschließen, sind aber nicht darauf beschränkt. Der Speicher 210 kann einen Speicher mit wahlfreiem Zugriff (RAM), einen Nur-Lese-Speicher (ROM) oder eine beliebige andere Form eines Speichers, der Befehle und Daten speichern kann, einschließen.
  • Um die Signaleingabe/ausgabe auszuführen, weist das Ausführungsbeispiel 200 eine Maus 280, eine Tastatur 205 (bei einem Ausführungsbeispiel sind sowohl die Maus 280 als auch die Tastatur 205 asynchrone Einrichtungen) und einen Scanner 270 (bei einem Ausführungsbeispiel eine isochrone Einrichtung) auf, die sämtlich mit dem I/O-Bus 230 gekoppelt sind. Eine isochrone I/O-Schnittstelle 260 weist bei einem Ausführungsbeispiel die Stufen A und C des Datentransportausführungsbeispiels gemäß 1 auf und kann benutzt werden, um isochrone Transaktionen aus einer isochronen Einrichtung, wie beispielsweise dem Scanner 270, zu dem I/O-Bus 230 zu transportieren. Eine isochrone Busbrücke 250, welche bei einem Ausführungsbeispiel die Stufen B und D des Datentransportausführungsbeispiels gemäß 1 aufweist, kann benutzt werden, um isochrone Transaktionen zwischen dem I/O-Bus 230 und dem Speicherbus 240 zu transportieren. Die Kombination der isochronen I/O-Schnittstelle 260 und der isochronen Busbrücke 250 kann einer isochronen Einrichtung 270 einen zuverlässigen isochronen X-T-Kontrakt für I/O-Transaktionen zum Speicher 210 trotz asynchroner Transaktionsaktivitäten auf dem I/O-Bus 230, die von anderen asynchronen Einrichtungen, wie beispielsweise der Tastatur 205 und der Maus 280, erzeugt werden, zur Verfügung stellen. Die Tastatur 205 und die Maus 280 sind mit dem I/O-Bus über asynchrone I/O-Schnittstellen 290 gekoppelt. Asynchrone Transaktionen auf dem I/O-Bus 230, die von asynchronen Einrichtungen erzeugt werden, können zum Speicherbus 240 mit Hilfe einer asynchronen Busbrücke 210 transportiert werden. Selbstverständlich ist die Erfindung in ihrem Umfang nicht auf dieses spezielle Ausführungsbeispiel beschränkt.
  • Während bestimmte Merkmale der Erfindung in der hier beschriebenen Weise veranschaulicht worden sind, können Fachleuten viele Modifikationen, Substitutionen, Änderungen und Äquivalente in den Sinn kommen. Es ist folglich klar, daß die anhängigen Ansprüche sämtliche derartigen Ausführungsbeispiele und Änderungen, soweit sie im wahren Geist der Erfindung liegen, abdecken sollen.

Claims (14)

  1. Ein Verfahren, umfassend: Einstellen eines Konkurrenzschemas für einen asynchronen Bus derart, daß die Konkurrenzverzögerung isochroner Transaktionen auf dem asynchronen Bus begrenzt wird; wobei das Einstellen des Konkurrenzschemas für den asynchronen Bus ferner ein Setzen der Zuteilungsentscheidungspriorität für eine Leseanforderungstransaktion auf einen Wert, der größer als eine Zuteilungsentscheidungspriorität für eine Leseantwortransaktion ist, und ein Setzen der Zuteilungsentscheidungspriorität für eine Leseantworttransaktion auf einen Wert, der größer als eine Zuteilungsentscheidungsriorität für eine Schreibanforderungstransaktion ist, umfasst; Koppeln einer ersten Einrichtung mit dem asynchronen Bus zum Aufnehmen einer isochronen Transaktion aus einer isochronen Einrichtung und zum Ausgaben der isochronen Transaktion auf den asynchronen Bus; und Koppeln einer zweiten Einrichtung mit dem asynchronen Bus zum Aufnehmen der isochronen Transaktionen aus dem asynchronen Bus und zum Ausgeben der isochronen Transaktionen an eine dritte Einrichtung.
  2. Das Verfahren nach Anspruch 1, bei welchem das Einstellen eines Konkurrenzschemas für den asynchronen Bus ferner umfasst: Setzen einer maximalen Transaktionsgröße für den asynchronen Bus.
  3. Das Verfahren nach Anspruch 1, wobei das Einstellen eines Konkurrenzschemas für den asynchronen Bus ferner umfasst: dass der isochronen Transaktion eine höhere Buszuteilungsentscheidungspriorität zugeordnet wird als einer asynchronen Transaktion.
  4. Das Verfahren nach Anspruch 1, bei welchem das Einstellen eines Konkurrenzschemas für den asynchronen Bus ferner umfasst: Setzen einer Maximalanzahl von Leseanforderungstransaktionen und Schreibanforderungstransaktionen, welche sequentiell durch den asynchronen Bus aufgenommen werden können.
  5. Ein System aufweisend: einen asynchronen Bus, der ein Konkurrenzschema aufweist, das die Konkurrenzverzögerung isochroner Transaktionen auf dem Bus begrenzt, wobei das Konkurrenzschema für den Bus ferner eine Zuteilungsentscheidungspriorität für eine Leseanforderungstransaktion umfasst, die größer als eine Zuteilungsentscheidungspriorität für eine Leseantworttransaktion ist, wobei die Zuteilungsentscheidungspriorität für die Leseantworttransaktion größer als eine Zuteilungsentscheidungspriorität für eine Schreibanforderungstransaktion ist; eine mit dem Bus gekoppelte erste Einrichtung zum Aufnehmen einer isochronen Transaktion aus einer isochronen Einrichtung und zum Ausgeben der isochronen Transaktion auf den Bus, und eine mit dem Bus gekoppelte zweite Einrichtung zum Aufnehmen der isochronen Transaktion aus dem Bus und zum Ausgeben der isochronen Transaktion an eine dritte Einrichtung.
  6. Das System nach Anspruch 5, wobei das Konkurrenzschema des Busses ferner umfasst: eine maximale Transaktionsgröße für Transaktionen auf dem Bus.
  7. Das System nach Anspruch 5, wobei das Konkurrenzschema für den Bus ferner umfasst: eine höhere Buszuteilungsentscheidungspriorität für die isochrone Transaktion als für eine asynchrone Transaktion.
  8. Das System nach Anspruch 5, wobei das Konkurrenzschema für den Bus ferner umfasst: eine Maximalanzahl von Leseanforderungstransaktionen und Schreibanforderungstransaktionen, welche sequentiell von dem Bus empfangen werden können.
  9. Ein Verfahren, umfassend: Empfangen einer isochronen Transaktion in einem ersten Puffer bei einer ersten Rate; Übermitteln der isochronen Transaktion aus dem ersten Puffer auf einen asynchronen Bus mit einem Konkurrenzschema derart, daß die Buskonkurrenzverzögerung der isochronen Transaktion begrenzt wird; Empfangen der isochronen Transaktion aus dem asynchronen Bus in einen zweiten Puffer bei einer zweiten Rate, die größer als die erste Rate ist.
  10. Das Verfahren nach Anspruch 9, ferner umfassend: Setzen einer maximalen Transaktionsgröße für den asynchronen Bus
  11. Das Verfahren nach Anspruch 9, ferner umfassend: Zuordnen einer höheren Buszuteilungsentscheidungspriorität für die isochrone Transaktion als für eine asynchrone Transaktion.
  12. Das Verfahren nach Anspruch 9, ferner umfassend: Setzen einer Zuteilungsentscheidungspriorität für eine Leseanforderungstransaktion, die größer als eine Zuteilungsentscheidungspriorität für eine Leseantworttransaktion ist, und Setzen der Zuteilungsentscheidungspriorität für eine Leseantworttransaktion, die größer als eine Zuteilungsent scheidungspriorität für eine Schreibanforderungstransaktion ist.
  13. Das Verfahren nach Anspruch 9, ferner umfassend: Setzen einer Maximalanzahl von Leseanforderungstransaktionen und Schreibanforderungstransaktionen, welche sequentiell von dem asynchronen Bus empfangen werden können.
  14. Das Verfahren nach Anspruch 11, ferner umfassend: Senden der isochronen Transaktion aus dem zweiten Puffer heraus bei einer dritten Rate, die größer als die zweite Rate ist.
DE10084612T 1999-05-20 2000-05-09 Ein Verfahren und eine Einrichtung für einen isochronen Datentransport über einen Asynchronen Bus Expired - Fee Related DE10084612B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/315,859 1999-05-20
US09/315,859 US6351783B1 (en) 1999-05-20 1999-05-20 Method and apparatus for isochronous data transport over an asynchronous bus
PCT/US2000/012852 WO2000072162A1 (en) 1999-05-20 2000-05-09 A method and apparatus for isochronous data transport over an asynchronous bus

Publications (2)

Publication Number Publication Date
DE10084612T1 DE10084612T1 (de) 2002-04-25
DE10084612B4 true DE10084612B4 (de) 2009-01-15

Family

ID=23226372

Family Applications (2)

Application Number Title Priority Date Filing Date
DE10085501.6A Expired - Fee Related DE10085501B3 (de) 1999-05-20 2000-05-09 Ein Verfahren und eine Einrichtung für einen isochronen Datentransport über einen asynchronen Bus
DE10084612T Expired - Fee Related DE10084612B4 (de) 1999-05-20 2000-05-09 Ein Verfahren und eine Einrichtung für einen isochronen Datentransport über einen Asynchronen Bus

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE10085501.6A Expired - Fee Related DE10085501B3 (de) 1999-05-20 2000-05-09 Ein Verfahren und eine Einrichtung für einen isochronen Datentransport über einen asynchronen Bus

Country Status (7)

Country Link
US (1) US6351783B1 (de)
AU (1) AU4837800A (de)
CA (1) CA2374046C (de)
DE (2) DE10085501B3 (de)
GB (1) GB2365604B (de)
HK (1) HK1041617B (de)
WO (1) WO2000072162A1 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3440984B2 (ja) * 1998-03-18 2003-08-25 ソニー株式会社 情報処理装置および方法、並びに記録媒体
US7158532B2 (en) * 1998-07-06 2007-01-02 Intel Corporation Half duplex link with isochronous and asynchronous arbitration
JP3608441B2 (ja) * 1999-07-15 2005-01-12 セイコーエプソン株式会社 データ転送制御装置及び電子機器
US6629220B1 (en) * 1999-08-20 2003-09-30 Intel Corporation Method and apparatus for dynamic arbitration between a first queue and a second queue based on a high priority transaction type
US6629253B1 (en) * 1999-12-30 2003-09-30 Intel Corporation System for efficient management of memory access requests from a planar video overlay data stream using a time delay
US7474670B2 (en) * 2002-07-08 2009-01-06 Brooktree Broadband Holding, Inc. Method and system for allocating bandwidth
US7640381B1 (en) * 2005-10-07 2009-12-29 Ji Zhang Input/output decoupling system method having a cache for exchanging data between non-volatile storage and plurality of clients having asynchronous transfers
US20150199134A1 (en) * 2014-01-10 2015-07-16 Qualcomm Incorporated System and method for resolving dram page conflicts based on memory access patterns

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996013777A1 (en) * 1994-10-31 1996-05-09 Intel Corporation Method and apparatus for dynamically generating and maintaining frame based polling schedules for polling isochronous and asynchronous functions that guarantee latencies and bandwidths to the isochronous functions
US5621898A (en) * 1994-11-29 1997-04-15 Compaq Computer Corporation Arbiter organization for serial bus transfers
US5758105A (en) * 1995-12-04 1998-05-26 International Business Machines Corporation Method and apparatus for bus arbitration between isochronous and non-isochronous devices

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4549292A (en) * 1984-02-17 1985-10-22 Burroughs Corporation Method of efficiently and simultaneously transmitting both isochronous and nonisochronous data in a computer network
CA2068847C (en) * 1991-07-01 1998-12-29 Ronald C. Roposh Method for operating an asynchronous packet bus for transmission of asynchronous and isochronous information
JP2753915B2 (ja) * 1992-03-25 1998-05-20 三菱電機株式会社 通信制御装置
GB9304636D0 (en) * 1993-03-06 1993-04-21 Ncr Int Inc A method of accessing a communication system
WO1994024626A1 (en) * 1993-04-16 1994-10-27 Data Translation, Inc. Video peripheral for a computer
US5528513A (en) * 1993-11-04 1996-06-18 Digital Equipment Corp. Scheduling and admission control policy for a continuous media server
US5487170A (en) * 1993-12-16 1996-01-23 International Business Machines Corporation Data processing system having dynamic priority task scheduling capabilities
EP0706297A1 (de) * 1994-10-07 1996-04-10 International Business Machines Corporation Verfahren zur Überlastregelung in einem Datenübertragungsnetzwerk und System zur Durchführung dieses Verfahrens
US5812799A (en) * 1995-06-07 1998-09-22 Microunity Systems Engineering, Inc. Non-blocking load buffer and a multiple-priority memory system for real-time multiprocessing
US6041354A (en) * 1995-09-08 2000-03-21 Lucent Technologies Inc. Dynamic hierarchical network resource scheduling for continuous media
US5898892A (en) * 1996-05-17 1999-04-27 Advanced Micro Devices, Inc. Computer system with a data cache for providing real-time multimedia data to a multimedia engine
US5784569A (en) * 1996-09-23 1998-07-21 Silicon Graphics, Inc. Guaranteed bandwidth allocation method in a computer system for input/output data transfers
US5982779A (en) * 1997-05-28 1999-11-09 Lucent Technologies Inc. Priority access for real-time traffic in contention-based networks
US5948081A (en) * 1997-12-22 1999-09-07 Compaq Computer Corporation System for flushing queued memory write request corresponding to a queued read request and all prior write requests with counter indicating requests to be flushed
US6032211A (en) * 1998-06-17 2000-02-29 Advanced Micro Devices, Inc. Method of mode control in a bus optimized for personal computer data traffic
US6148357A (en) * 1998-06-17 2000-11-14 Advanced Micro Devices, Inc. Integrated CPU and memory controller utilizing a communication link having isochronous and asynchronous priority modes
US6205524B1 (en) * 1998-09-16 2001-03-20 Neomagic Corp. Multimedia arbiter and method using fixed round-robin slots for real-time agents and a timed priority slot for non-real-time agents

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996013777A1 (en) * 1994-10-31 1996-05-09 Intel Corporation Method and apparatus for dynamically generating and maintaining frame based polling schedules for polling isochronous and asynchronous functions that guarantee latencies and bandwidths to the isochronous functions
US5621898A (en) * 1994-11-29 1997-04-15 Compaq Computer Corporation Arbiter organization for serial bus transfers
US5758105A (en) * 1995-12-04 1998-05-26 International Business Machines Corporation Method and apparatus for bus arbitration between isochronous and non-isochronous devices

Also Published As

Publication number Publication date
GB0127666D0 (en) 2002-01-09
CA2374046C (en) 2002-12-31
DE10085501B3 (de) 2018-09-06
GB2365604A (en) 2002-02-20
HK1041617A1 (en) 2002-07-12
US6351783B1 (en) 2002-02-26
CA2374046A1 (en) 2000-11-30
HK1041617B (zh) 2004-12-03
GB2365604B (en) 2004-06-09
DE10084612T1 (de) 2002-04-25
WO2000072162A1 (en) 2000-11-30
AU4837800A (en) 2000-12-12

Similar Documents

Publication Publication Date Title
DE3300260C2 (de)
DE3300261C2 (de)
DE3300262C2 (de)
DE69634358T2 (de) Verzögerungsverringerung in der übertragung von gepufferten daten zwischenzwei gegenseitig asynchronen bussen
DE3909948C2 (de)
DE69832410T2 (de) Pipeline-kommunikationssystem mit fester latenz-zeit unter verwendung von dynamischer echtzeit-bandbreitenzuweisung
DE19882418B4 (de) System einer quellensynchronen Schnittstelle zwischen Master- und Slave-Einrichtungen und zugehöriges Verfahren
EP1430406B1 (de) Verfahren zur arbitrierung eines zugriffs auf einen datenbus
DE69636825T2 (de) Verzögerungsminimalisierungssystem mit garantierter Bandbreite für Echtzeitverkehr
DE102005009174B4 (de) Bussystem, zugehöriges Busbelegungszuteilverfahren und Datenübertragungsverfahren
EP0179936B1 (de) Verfahren und Einrichtung zur Steuerung einer Sammelleitung
DE19580707C2 (de) PCI-ZU-ISA-Interrupt-Protokoll-Konverter und -Auswahlmechanismus
DE69936060T2 (de) Verfahren und Vorrichtung für eine verbesserte Schnittstelle zwischen Computerkomponenten
DE69829987T2 (de) E/a bus mit schnellen 16-bit zerteilten transaktionen
DE69828980T2 (de) System und verfahren zur flusskontrolle für ein hochgeschwindigkeitsbus
DE3642324A1 (de) Multiprozessoranlage mit prozessor-zugriffssteuerung
DE60122085T2 (de) Datenverarbeitungsgerät für serielles Kommunikationssystem
DE602005006338T2 (de) Vorrichtung und Verfahren zur Datenübertragungsverarbeitung
DE10084612B4 (de) Ein Verfahren und eine Einrichtung für einen isochronen Datentransport über einen Asynchronen Bus
DE10131307B4 (de) Verfahren und Bussystem zum Synchronisieren eines Datenaustausches zwischen einer Datenquelle und einer Steuereinrichtung
DE60204794T2 (de) Mechanismus zur kennzeichnung und arbitrierung in einem eingabe/ausgabe knoten eines rechnersystems
DE60303119T2 (de) Echtzeitdatenströmung von antworten auf lesezugriffe in einer verbindung zwischen zwei datenknoten
DE10314175A1 (de) Bussystem sowie Informationsverarbeitungssystem, das ein Bussystem einschliesst
DE60109069T2 (de) Paketvermittlungseinrichtung mit Eingabepuffern
DE60032805T2 (de) Vorrichtung zur arbitrierung eines speicherressources basiert auf zuteilung von zeitschlitzen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8172 Supplementary division/partition in:

Ref document number: 10085501

Country of ref document: DE

Kind code of ref document: P

Q171 Divided out to:

Ref document number: 10085501

Country of ref document: DE

Kind code of ref document: P

AH Division in

Ref document number: 10085501

Country of ref document: DE

Kind code of ref document: P

8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee