DE60037036T2 - Vier-gepumpte busarchitektur-/protokoll - Google Patents

Vier-gepumpte busarchitektur-/protokoll Download PDF

Info

Publication number
DE60037036T2
DE60037036T2 DE60037036T DE60037036T DE60037036T2 DE 60037036 T2 DE60037036 T2 DE 60037036T2 DE 60037036 T DE60037036 T DE 60037036T DE 60037036 T DE60037036 T DE 60037036T DE 60037036 T2 DE60037036 T2 DE 60037036T2
Authority
DE
Germany
Prior art keywords
data
address
bus
pulse
signal
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
DE60037036T
Other languages
English (en)
Other versions
DE60037036D1 (de
Inventor
Gurbir Gig Harbor SINGH
Robert J. Beaverton GRENIER
Stephen S. Beaverton Pawlowski
David L. Cornelius HILL
Donald D. Beaverton PARKER
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 DE60037036D1 publication Critical patent/DE60037036D1/de
Application granted granted Critical
Publication of DE60037036T2 publication Critical patent/DE60037036T2/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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
    • G06F13/4217Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous protocol

Description

  • TECHNISCHES GEBIET
  • Die Erfindung betrifft im Allgemeinen Prozessoren und insbesondere eine Architektur und das Protokoll für einen Bus mit vierfacher Übertragungsrate (Quad-pumped-Bus).
  • Aufgrund der steigenden Komplexität und Vorgaben der heutigen Software und der Anwendungen, besteht ein Bedarf an Prozessoren, die einen größeren Durchsatz und größere Bandbreite aufweisen. Es kann eine oder mehrere Quellen geben, die so arbeiten, dass die Computerleistung eingeschränkt wird, wie beispielsweise Ein/Ausgabe(I/O)-Geschwindigkeit oder Bandbreite, Speichergröße usw. Eine Quelle, die die Computerleistung gewöhnlich einschränkt oder drosselt, ist die Geschwindigkeit und Bandbreite des Prozessorbusses oder Front Side-Busses, d. h. des Busses, der sich zwischen einem oder mehreren Prozessoren und dem Chipsatz befindet. Einige Pentium®-Prozessoren (wie der Pentium Pro®-Prozessor von der Intel Corporation), umfassen beispielsweise einen 64 Bit Datenbus und können 8 Bytes je Prozessor-Taktzyklus übertragen. Sie können eine 32 Byte Cache-Leitung in 4 Taktzyklen übertragen. Ist somit der Prozessor bei 100 MHz (beispielsweise) getaktet, beträgt die Datenübertragungsrate 800 MByte pro sec. Verschiedene Einzelheiten über die Architektur des Pentium-Pro-Prozessors finden sich in "Pentium Pro Family Developer's Manual, Volume 1: Specifications" Januar, 1996, ISBN 1-55512-259-0. Für viele Anwendungen ist zwar eine Datenübertragungsrate von 800 MByte pro sec hinreichend, jedoch bedarf es eines Prozessorbusses, der eine verbesserte Datenübertragungsrate oder Bandbreite bereitstellt.
  • OFFENBARUNG DER ERFINDUNG
  • Gemäß einem ersten Aspekt der vorliegenden Erfindung wird eine Vorrichtung nach dem unabhängigen Anspruch 1 bereitgestellt.
  • Gemäß einem zweiten Aspekt der vorliegenden Erfindung wird ein Verfahren nach Anspruch 14 bereitgestellt.
  • Weitere erfindungsgemäße Ausführungsformen sind in den beigefügten Unteransprüchen angegeben.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Das Vorstehende und ein besseres Verständnis der vorliegenden Erfindung ergeben sich aus der folgenden eingehenden Beschreibung der beispielhaften Ausführungsformen und der Ansprüche, wenn sie im Zusammenhang mit den beigefügten Zeichnungen gelesen werden, die jeweils einen Teil der Offenbarung dieser Erfindung bilden.
  • Es folgen kurze Beschreibungen der Zeichnungen. Es zeigt:
  • 1, ein Blockschema, einen Computer gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung.
  • 2, ein Schema, einen Prozessorbus gemäß einer beispielhaften Ausführungsform.
  • 3, ein Taktungsschema, beispielhafte Bustransaktions-Phasenbeziehungen für zwei beispielhafte Transaktionen gemäß einer Ausführungsform.
  • 4, ein beispielhaftes Taktungsschema, einen beispielhaften Betrieb des Taktsignalgebungsmodus gemäß einer Ausführungsform.
  • 5, ein Taktungsschema, einen Betrieb eines Signalgebungsmodus mit vierfacher Übertragungsrate gemäß einer Ausführungsform.
  • 6, ein Taktungsschema, den Betrieb eines beispielhaften Signalgebungsmodus mit doppelter Übertragungsrate gemäß einer Ausführungsform.
  • 7, ein Schema, die Mindestlatenz oder Verzögerung zwischen den Transaktionsphasen.
  • 8 ein Blockschema einer Vorrichtung zur Übertragung von Information zwischen Agenten gemäß einer Ausführungsform.
  • 9 ein Blockschema einer Vorrichtung zur Übertragung von Information zwischen Agenten gemäß einer weiteren Ausführungsform.
  • BESTE ART UND WEISE ZUR DURCHFÜHRUNG DER ERFINDUNG
  • I. Einführung
  • Gemäß einer Ausführungsform ist ein Prozessorbus an eine Anzahl von Busagenten angeschlossen.
  • Der Bus ist skalierbar, da einige Signaltypen mit einem allgemeinen Taktsignalgebungsmodus übertragen werden, wohingegen andere Signaltypen mit einem Signalgebungsmodus mit mehrfacher Übertragungsrate übertragen werden.
  • Bei einem allgemeinen Taktsignalgebungsmodus können Signale (wie Steuersignale) mit einer Geschwindigkeit, die im Wesentlichen der Frequenz eines allgemeinen Bustakts entspricht, zum Bus gesteuert werden. In diesem Modus identifizieren die Flanken der Bustakts Stellen zum Abfragen der Signale, die zum Bus gesteuert werden.
  • Der Busdurchsatz kann durch Betreiben des Busses in dem Signalgebungsmodus mit mehrfacher Übertragungsrate erhöht werden, in dem mehrere Informationselemente durch einen Treiberagenten mit einer Geschwindigkeit, die ein Mehrfaches der Frequenz des Bustaktes ist, zum Bus gesteuert werden. Der Treiberagent aktiviert vorübergehend ein Datenimpulssignal zur Identifizierung von Abfragestellen für die Informationselemente, die in dem Signalgebungsmodus mit mehrfacher Übertragungsrate gesteuert werden. Die Informationselemente für eine Anforderung können beispielsweise mit einem Signalgebungsmodus mit doppelter Übertragungsrate gesteuert werden, worin zwei Informationselemente während eines Bustaktzyklus gesteuert werden. Die Datenelemente für eine Datenleitungsübertragung können beispielsweise mit einem Signalgebungsmodus mit vierfacher Übertragungsrate gesteuert werden, worin vier Datenelemente während eines Bustaktzyklus gesteuert werden. Mehrere Datenimpulssignale lassen sich vorübergehend in einer versetzten oder gestaffelten Anordnung aktivieren, so dass die Frequenz der Datenimpulssignale reduziert wird. Die Abfragesymmetrie lässt sich mit nur einer Art Flanke (d. h. entweder den steigenden oder fallenden Flanken) der Datenimpulssignale zur Identifikation der Abfragestellen verbessern. Zudem können die Mindestlatenzen zwischen den Transaktionsphasen so modifiziert werden, dass sie besser mit der maximalen Geschwindigkeit des Busses übereinstimmen, der in dem Signalgebungsmodus mit mehrfacher Übertragungsrate arbeitet.
  • II. Architektur
  • 1 ist ein Blockschema, das einen Computer gemäß einer beispielhaften erfindungsgemäßen Ausführungsform zeigt. Der Computer umfasst einen oder mehrere Prozessoren, z. B. einen Prozessor 110, Prozessor 112 und einen Prozessor 114. Jeder Prozessor umfasst auch einen internen Cache (nicht gezeigt).
  • Jeder Prozessor ist ebenfalls an einen gemeinsamen Prozessorbus 117 (auch als Host-Bus oder Front Side Bus bezeichnet) angeschlossen. Die 2 ist ein Schema, das den Prozessorbus 117 gemäß einer beispielhaften Ausführungsform zeigt. Wie in der 2 gezeigt, umfasst der Prozessorbus 117 einen Steuerbus 202, einen Adressbus 204 und einen Datenbus 206. Gemäß einer Ausführungsform umfasst der Datenbus viele Signale, einschließlich 64 Datenleitungen D[63:0]. Der Adressbus 204 umfasst auch viele Signale, einschließlich 36 Adressleitungen A[35:0]. Der Prozessorbus 117 umfasst einen Bustakt (BCLK). Der Bustakt ist gemeinsam und wird bei allen Agenten über den Steuerbus 202 von Prozessorbus 117 bereitgestellt. Der Steuerbus 202 umfasst auch viele Signale. Der Adressbus 204, Steuerbus 202 und Datenbus 206 sind jeweils vorzugsweise Multidrop-Bidirectional-Busse. Gemäß einer Ausführungsform bedeutet der Begriff "Multidrop", dass die Busse an drei oder mehrere Busagenten angeschlossen sind, im Gegensatz zu einem Point to Point-Bus, der nur zwischen zwei Busagenten angeschlossen ist.
  • Eine Systemschnittstelle 116 (oder Chipsatz) ist ebenfalls an den Prozessor 117 angeschlossen, so dass sie als Schnittstelle für mehrere andere Komponenten an den Prozessorbus 117 dient. Die Systemschnittstelle 116 umfasst einen Speichercontroller 118 als Schnittstelle für ein Hauptspeichersubsystem 112 an Prozessorbus 117. Das Hauptspeichersubsystem 122 umfasst gewöhnlich eine oder mehrere Speicherkarten und eine Steuerschaltung. Die Systemschnittstelle 116 umfasst auch einen Ein/Ausgabe(I/O)-Controller 120 als Schnittstelle für eine oder mehreren Brücken oder I/O-Geräte an den Prozessorbus 117. In diesem Beispiel ist der I/O-Controller 120 eine Schnittstelle für die I/O-Brücke 124 an den Prozessorbus 117. Die I/O-Brücke 124 arbeitet als Busbrücke und Schnittstelle zwischen Systemschnittstelle 116 und einem I/O-Bus 130. Eine oder mehrere I/O-Controller und I/O-Geräte können an den I/O-Bus 130 angeschlossen sein, wie beispielsweise der I/O-Controller 132 und der I/O-Controller 134. Der I/O-Bus 130 kann ein Peripheral Component Interconnect (PCI)-Bus oder eine andere Art I/O-Bus sein.
  • III. Agenten
  • Die Busagenten erstellen Transaktionen am Prozessorbus 117 und übertragen Daten und Systeminformation. Ein Busagent ist eine beliebige Vorrichtung, die an den Prozessorbus 117 angeschlossen ist. Es kann mehrere Klassifizierungen von Busagenten geben:
    • 1) Zentralagent: verarbeitet den Reset, Hardware-Konfiguration und -Initialisierung, spezielle Transaktionen und zentralisierte Hardware-Fehlerermittlung und Handhabung. Ein Beispiel ist ein Prozessor.
    • 2) I/O-Agent: Schnittstelle zu I/O-Geräten mittels I/O-Port-Adressen. Kann eine Busüberbrückung zu einem anderen Bus sein, der für I/O-Geräte verwendet wird, wie eine PCI-Brücke.
    • 3) Speicheragent: Schafft Zugang zum Hauptspeicher, wie Speichercontroller 118.
  • Ein bestimmter Busagent kann eine oder mehrere Rollen in einer Transaktion spielen:
    • 1) Anforderungsagent: Dieser Busagent erstellt die Transaktion.
    • 2) Empfangsagent: Dieser Agent ist der Empfänger der Transaktion. Dieser wird auch als Zielagent bezeichnet. Eine Speicher- oder I/O-Transaktion wird an den Speicher- oder I/O-Agent adressiert, der die angegebene Speicher- oder I/O-Adresse erkennt. Eine verzögerte Antworttransaktion wird an den Agenten adressiert, der die ursprüngliche Transaktion erstellt hat.
    • 3) Snoop-Agent: Ein puffernder Busagent, der Bustransaktionen beobachtet ("erschnüffelt"), damit die Cache-Kohärenz aufrechterhalten wird.
    • 4) Antwortagent: Dieser Agent antwortet auf die Transaktion (üblicherweise der Empfangsagent). Gemäß einer Ausführungsform steuert der Antwortagent die Antwort auf den Steuerbus mit den Antwortimpulsen RS[2:0].
  • IV. Operationen, Transaktionen und Phasen
  • Gemäß einer Ausführungsform ist die Busaktivität am Prozessorbus 117 hierarchisch in Operationen, Transaktionen und Phasen unterteilt.
  • Eine Operation ist ein Busverfahren, das für die Software atomar erscheint (es scheint beispielsweise nicht mehr aufteilbar zu sein oder scheint einmalig aufzutreten), obgleich es am Bus 117 nicht atomar ist. Eine Operation kann aus einer einzelnen Bustransaktion bestehen, umfasst aber gelegentlich mehrfache Bustransaktionen oder eine einzelne Transaktion mit mehrfachen Datenübertragungen. Beispiele umfassen eine Leseoperation, eine Schreiboperation, eine Locked-read-modify-Write-Operation und verzögerte Operationen.
  • Eine Transaktion ist der Satz von Busaktivitäten, die eine einzelne Busanforderung betreffen. Eine Transaktion beginnt mit der Busentscheidung, und der Zusicherung des ADS#Signals (was anzeigt, dass eine Adresse angesteuert wird) und einer Transaktionsadresse. Transaktionen werden beispielsweise zur Übertragung von Daten gesteuert, so dass ein geänderter Cache-Zustand abgefragt wird, oder damit das System mit Information versorgt wird.
  • Eine Phase nutzt einen spezifischen Satz von Signalen zur Kommunikation einer bestimmten Informationsart. Diese Phasen sind u. a. Entscheidung, Anforderung, Snoop, Antwort und Daten. Nicht alle Transaktionen enthalten alle Phasen, und einige Phasen können sich überlappen. In der Entscheidungsphase bestimmen die Busagenten, welcher der nächste Businhaber ist (ein Agent muss den Bus innehaben, bevor er eine Transaktion erstellt – siehe US 5948094 für ein Entscheidungsverfahren zwischen Busagenten). Bei der Anforderungsphase wird die Transaktion zum Bus erstellt. In der Snoop-Phase wird die Cache-Kohärenz verstärkt. In der Antwortphase steuert der Empfangs- oder Zielagent eine Transaktionsreaktion zum Bus. In der Datenphase steuert der Anforderungs- oder Antwort- oder Snoop-Agent die Transaktionsdaten oder akzeptiert diese.
  • Vier Steuersignale, die über den Prozessorbus 117 übertragen werden, umfassen einen Bustakt BCLK[1:0], das Initialisierungssignal INIT# und das Reset-Signal RESET#. Der Bustakt BCLK[1:0] ist der differentielle Bustakt und kann durch einen Bustakt-Chip oder Takt-Schaltkreis erzeugt werden. Die beiden Bustaktsignale BCLK[1:0] sind logisch identisch und werden physikalisch als zwei getrennte Signale zur Reduktion des Taktungsversatzes vermittelt. Gemäß einer Ausführungsform steuern sämtliche Agenten ihre gemeinsamen Taktausgaben und arretieren ihre gemeinsamen Takteingaben an der steigenden Bustaktflanke. Jeder Prozessor leitet seinen internen Takt von dem Bustakt-BCLK-Signal durch Multiplikation und/oder Teilen der Bustaktfrequenz durch eine oder mehrere Zahlen ab.
  • Gemäß einer Ausführungsform setzt das RESET#-Eingabesignal sämtliche Busagenten auf bekannte Zustände zurück und annuliert ihre internen Caches. Der Inhalt modifizierter oder schmutziger Cache-Leitungen geht verloren. Nach der Deaktivierung von RESET# beginnt jeder Prozessor mit der Ausführung bei einem Power-on-Reset-Vektor, der während der Konfiguration definiert wird.
  • Gemäß einer Ausführungsform setzt das INIT#-Eingabesignal sämtliche Prozessoren ohne Beeinflussung ihrer internen Caches oder ihrer Floating-Point-Register zurück. Jeder Prozessor beginnt die Ausführung an einem während der Konfiguration definierten Power-on-Resetvektor.
  • 3 ist ein Taktungsschema, das beispielhafte Bustransaktions-Phasenbeziehungen für zwei beispielhafte Bustransaktionen gemäß einer Ausführungsform zeigt. Die Zyklen (1, 2, 3, 4, ... 19) des Bustaktes (BCLK[1:0] sind oben angezeigt. Die Rechtecke mit der Zahl 1 zeigen verschiedene Phasen für die Transaktion 1, wohingegen die Rechtecke mit der Zahl 2 Phasen für die Transaktion 2 zeigen. Der 3 zufolge erfolgen die Transaktionen in einer Pipeline-Weise. Für die Transaktion 1 erfolgt beispielsweise die Entscheidung in den Bustaktzyklen 1 und 2, die Anforderung erfolgt in den Zyklen 3 und 4, der Snoop erfolgt in den Zyklen 6 und 7, und die Antwort- und Datenübertragung erfolgt in den Zyklen 13 und 14. Somit lässt sich ersehen, dass eine Antwort- und Datenübertragung viele Buszyklen nach der ursprünglichen Anforderungsphase erfolgen kann. Es kann beispielsweise zu einer Überlappung zwischen Phasen unterschiedlicher Transaktionen kommen. Die Entscheidungsphase für die Transaktion 2 erfolgt etwa zur gleichen Zeit wie die Anforderungsphase für Transaktion 1.
  • V. Signalgebungsmodi
  • Gemäß einer Ausführungsform ist der Prozessorbus 117 skalierbar und unterstützt zwei Signalgebungsmodi. Der erste Modus ist ein gemeinsamer Taktsignalgebungsmodus, in dem sämtliche Signalaktivierungs- und Abfrage- oder Arretierungspunkte in Bezug auf einen gemeinsamen Bustakt (BLCK#) erfolgen, der kontinuierlich zwischen allen Agenten bereitgestellt wird. Der Bustakt wird gewöhnlich von einem Taktchip oder Taktschaltkreis, der auf einer Hauptplatine bereitgestellt wird, erzeugt und ist allen Prozessoren oder Agenten in einem Computer gemeinsam. Die Signaltaktung in Bezug auf den gemeinsamen Bustakt wird als gemeinsamer Takt(IX)-Signalgebungsmodus bezeichnet. Gemäß einer Ausführungsform werden viele Steuersignale über den Steuerbus mit dem gemeinsamen Takt(IX)-Signalgebungsmodus bereitgestellt.
  • Ein zweiter Signalgebungsmodus ist ein Signalgebungsmodus mit mehrfacher Übertragungsrate, der eine Informationsübertragungsrate ermöglicht, die ein Vielfaches der Übertragungsrate ist, die von dem gemeinsamen Taktsignalgebungsmodus unterstützt wird. Somit kann der Signalgebungsmodus mit mehrfacher Übertragungsrate gemäß einer Ausführungsform die Informationsübertragung über den Prozessorbus 117 zwischen den Agenten in einer Rate unterstützen, die ein Vielfaches der Frequenz des gemeinsamen (d. h. des System-)Bustaktes ist. Der Signalgebungsmodus mit mehrfacher Übertragungsrate kann beispielsweise einen Signalgebungsmodus kann beispielsweise einen Signalgebungsmodus mit doppelter Übertragungsrate bereitstellen, der es ermöglicht, dass Information (beispielsweise Daten, Adressen oder andere Information) mit der doppelten (2×) Geschwindigkeit der gemeinsamen Taktfrequenz übertragen wird, oder kann einen Signalgebungsmodus mit vierfacher Übertragungsrate bereitstellen, der eine Übertragungsrate mit der vierfachen (4×) Bustaktfrequenz bereitstellt. Zur Erleichterung der Übertragung der Information bei solchen Raten oder Frequenzen, die größer sind als der gemeinsame Bustakt, erstellt oder schafft der Treiberagent ein Begleitsignal, das als Taktungs-"Impuls" bekannt ist, das von dem Empfänger als Referenz zur Aufnahme oder Arretierung der Information mit mehrfacher Übertragungsrate verwendet wird.
  • Der Begriff "zugesichert" bedeutet, dass ein Signal zu seinem aktiven Wert gesteuert wird (d. h. für ein aktives niedriges Signal auf Null gesteuert wird) und der Begriff "deaktiviert" bedeutet, dass das Signal auf seinen inaktiven Wert gesteuert wird. Die Symbole Quadrat, Kreis, und Dreieck werden in einigen nachstehend beschriebenen Taktungsschemata verwendet, um anzuzeigen, wann bestimmte Signale gesteuert oder abgefragt werden. Das Quadrat zeigt, dass ein Signal in diesem Taktzyklus gesteuert (zugesichert, initialisiert) wird. Der Kreis zeigt, dass ein Signal in diesem Taktzyklus abgefragt (beobachtet, arretiert) wird. Der Kreis wird gewöhnlich verwendet, um einen Abfragepunkt auf der Basis einer steigenden (oder fallenden) Flanke des Bustakts (BCLK) in dem gemeinsamen Takt(IX)signalgebungsmodus zu zeigen. Das Dreieck zeigt, dass ein Signal auf der Basis einer steigenden oder fallenden Flanke eines Begleitsignals, das als "Impuls" bezeichnet wird, abgefragt oder erfasst wird. Der Impuls kann vorzugsweise auf oder aktiviert werden nur während der Übertragung von Information (beispielsweise Daten, Adressen, andere Information) über den Prozessorbus gewöhnlich in einem Modus mit mehrfacher Übertragungsrate.
  • A. Gemeinsamer Taktsignalgebungsmodus
  • Gemäß einer Ausführungsform des gemeinsamen Takts(IX)signalgebungsmodus müssen alle Agenten auf dem Prozessorbus 117 ihre aktiven Ausgaben und abfragepflichtigen Eingaben steuern. Gemäß einer Ausführungsform sollte jede Eingabe während eines gültigen Abfrageintervalls auf einer steigenden Flanke des Bustakts abgefragt werden, und seine Wirkung oder sein Ergebnis zu Bus 117 gesteuert werden, und zwar nicht vor der nächsten steigenden Bustaktflanke. Dieser beispielhafte Ansatz ermöglicht einen vollen Bustaktzyklus für eine Kommunikation zwischen den Komponenten (Signalübertragung und Verbreitung) und zumindest einen vollen Bustaktszyklus am Empfänger zur Interpretation der Signale und Berechnung und Ausgabe einer Antwort. Nachdem ein Agent Daten zum Prozessorbus in einem oder mehreren Bustaktzyklen steuert, besteht demnach eine Pause von einem Bustaktzyklus (beispielsweise ein Totzyklus oder inaktiver Zyklus), bevor ein anderer Agent den Prozessorbus 117 steuern kann.
  • Die 4 ist ein beispielhaftes Taktungsschema, das eine beispielhafte Operation des gemeinsamen Takt(IX)signalgebungsmodus gemäß einer Ausführungsform veranschaulicht. Die Signale sind so gezeigt, wie sie am Prozessorbus 117 erscheinen. Es sind vier Zyklen des Bustakts (BCLK) gezeigt. Es sind ebenfalls zwei zusätzliche beispielhafte Signale gezeigt, einschließlich A# und B#, welche beliebige Signaltypen sein können. A# kann beispielsweise ein erstes Steuersignal von einem ersten Agenten sein, wohingegen B# ein zweites Signal von einem zweiten Agenten sein kann. Die ersten und zweiten Steuersignale können beispielsweise als Teil eines Handshake- oder Busprotokolls bereitgestellt werden.
  • Wie in der 1 gezeigt, wird das Signal A# gesteuert (oder zugesichert) an der steigenden Flanke des Taktzyklus 1 (wie es durch das Quadrat in A# gezeigt ist) und wird am Empfänger an einer steigenden Flanke zu Beginn von Bustaktzyklus 2 arretiert (wie gezeigt durch den Kreis für A#) Somit wird der Taktzyklus 1 für die Signalausbreitung bereitgestellt. A# wird zwar zu Beginn von Zyklus 1 zugesichert, aber es wird nicht am Bus beobachtet, bis der Zyklus 2 beginnt. Dann kommt es zu einer Pause oder einem inaktiven Taktzyklus (während des Buszyklus 2 für Logikverzögerungen und für den Empfänger zur Interpretation der Signale). Der Empfänger steuert dann das B#-Signal zu Beginn von Bustaktzyklus 3 oder setzt dieses durch (wie durch das Quadrat für B#) gezeigt, die durch die die anderen Agenten zu Beginn von Zyklus 4 (wie gezeigt durch den Kreis für B#) beobachtet und erfasst werden.
  • Gemäß einer Ausführungsform umfasst ein Prozessor eine 64-Byte Cache-Leitung (statt einer 32-Byte-Cache-Leitung, die in einigen Pentium-Prozessoren verwendet wird). Werden Daten mit dem gemeinsamen Takt(IX)signalgebungsmodus und 64 Datenbusleitungen überfragen, können daher 64 Bytes (eine Cache-Leitung) an Daten in 8 Bustaktzyklen angesteuert oder übertragen werden. In vielen Anwendungen kann jedoch die Bereitstellung einer schnelleren Datenübertragungsrate oder größeren Bandbreite gewünscht sein.
  • B. Signalgebungsmodi mit mehrfachen Übertragungsraten
  • In vielen Beispielen kann die Länge der elektrischen Einschränkungen an Prozessorbus 11 (einschließlich der Latenz für die Signalausbreitung über den Bus) ein Ansteigen der Busfrequenz ausschließen. Statt einer Erhöhung der Prozessorbustaktfrequenz, steigert das Signalprotokoll mit mehrfacher Übertragungsrate gemäß einer Ausführungsform die Datenübertragungsrate (über den gemeinsamen Taktsignalgebungsmodus) durch Betreiben der geeigneten Bussignalgruppe (beispielsweise Adressbus oder Datenbus) bei einem Vielfachen der Frequenz des Bustakts (BCLK).
  • 1. Ein Beispiel für einen Signalgebungsmodus mit vierfacher Übertragungsrate
  • Bei dem Signalgebungsmodus mit vierfacher Übertragungsrate wird die geeignete Bussignalgruppe bei der vierfachen (4×) Frequenz des Bustaktes (BCLK) betrieben. Mit anderen Worten werden bei Signalgebungsmodi vier Informationselemente zum Bus 117 in einem Bustaktzyklus gesteuert (das die Zeit ist, die man benötigt, um ein Informationselement in dem gemeinsamen Takt- oder IX-Signalgebungsmodus zu steuern).
  • 5 ist ein Taktungsschema, das den Betrieb eines beispielhaften Signalgebungsmodus mit vierfacher Übertragungsrate gemäß einer Ausführungsform veranschaulicht. Der Signalgebungsmodus mit vierfacher Übertragungsrate kann zwar für jeden Signaltyp verwendet werden, jedoch wird das Signalgebungsprotokoll mit vierfacher Übertragungsrate zur Übertragung von Daten gemäß einer beispielhaften Ausführungsform verwendet. Zwei Bustaktzyklen und ein Teil eines dritten Bustaktzyklus sind in der 5 gezeigt. Die Flight-Zeit des schlimmsten Falls (oder Signalausbreitungszeit) über den Prozessorbus 117 ist derart, dass ein zweites Informationselement zum Prozessorbus 117 am Treiber gesteuert werden kann (d. h. den Agenten, der die Information auf den Prozessorbus steuert), bevor das erste Informationselement am Empfänger (an den Empfangsagenten) arretiert wurde.
  • Gemäß einer Ausführungsform sendet oder steuert der Treiber (oder Treiberagent) ein neues Informationselement an die steigende Flanke, und die 25%, 50%, und 75% Punkte des Bustakt(BCLK)zyklus.
  • Der Empfänger sendet auch ein Begleittaktungssignal, das als Datenimpulssignal bezeichnet wird, welches anzeigt, wann der Empfänger die Daten abfragen oder erfassen sollte. Das Impulssignal wird vorzugsweise nur dann gesendet oder gesteuert (aktiviert), wenn die Information mit dem Signalgebungsmodus mit mehrfacher Übertragungsrate gesendet wird.
  • Weil die Daten- und Impulssignale durch den gleichen Treiber oder die gleiche Quelle erzeugt werden, haben die Daten und Impulse den gleichen Weg. Demnach sollten das Impulssignal und die Datensignale den gleichen Weg haben und daher etwa die gleiche Verzögerung aufweisen. Daher ist ein Vorteil, der durch den Treiber oder die Quelle erzielt wird, die einen Impuls und Daten senden, dass die Datensignale und das Impulssignal in Phase (oder synchron) bei jedem Agenten an Bus 117 ankommen. Somit kann diese Technik eines Treibers, der die Daten und das Taktungs-Impulssignal sendet, als quellensynchrone Übertragung bezeichnet werden. In dem Signalgebungsmodus mit vierfacher Übertragungsrate sollten vier Datenimpulse (beispielsweise vier Taktungsimpulsflanken) die jeweils einen Informationsabfrage- und Erfassungspunkt identifizieren) in jedem Bustaktzyklus sein, und zwar einen für jeden der vier Datenelemente. Leider kann es beim Erzeugen eines Impulssignals bei relativ hohen Frequenzen zu Problemen kommen. Bei hohen Taktgeschwindigkeiten können die Unterschiede zwischen der Geschwindigkeit an der steigenden Flanke und der Geschwindigkeit an der fallenden Flanke signifikant sein. Zudem kann es schwierig sein, ein Taktsignal oder Impulssignal bereitzustellen, das einen 50% Arbeitszyklus hat. Bei einigen hohen Taktfrequenzen sollten demnach die steigende Flanke und die abfallende Flanke des Impulssignals nicht zur Identifikation der Abfragepunkte verwendet werden, da dies eine Asymmetrie erzeugen kann, oder einen Grad von Taktungs-Unschärfe einbringen kann. Es kann sich jedoch stattdessen als vorteilhaft erweisen, nur einen von zwei Flanken des Impulses (d. h. nur die steigenden Flanken oder nur die abfallenden Flanken der Impulssignale zum Abfragen oder Erfassen der Daten mit vierfacher Übertragungsrate zu verwenden), sodass symmetrischere oder gleichförmigere Taktungs- oder Abfrage-Intervalle erhalten werden.
  • Wenn nur eine der Flanken des Impulses verwendet wird, benötigt man eine Taktfrequenz, die ein Vielfaches der Bustaktfrequenz ist. Bei Daten mit vierfacher Übertragungsrate (vier Datenelemente pro Bustaktzyklus) sollte die Impulssignalfrequenz viermal (4×) so groß sein wie die Bustaktfrequenz, wenn nur eine Flanke zur Taktung verwendet wird.
  • Ist die Prozessortaktfrequenz (beispielsweise) 100 MHz, benötigt dies leider eine Impulssignalfrequenz von 400 MHz (in diesem Beispiel). Eine Impulssignalfrequenz, die viermal so groß ist wie die Bustaktfrequenz, kann Verzögerungen erfahren, die sich von den übertragenen Daten oder der Information unterscheiden, was die Ausrichtung der Daten und des Impulses am Empfänger beeinträchtigen kann. Eine solche Fehlausrichtung zwischen dem übertragenen Impulssignal und den übertragenen Daten führt dazu, dass der Empfänger schlechte oder falsche Daten erfasst. Zudem kann die Signalabschwächung signifikant höher bei solchen hohen Frequenzen (beispielsweise 400 MHz) sein.
  • Daher werden gemäß einer Ausführungsform mehrfache Datenimpulssignale verwendet zur Bereitstellung der vier Impulse pro Buszyklus ohne Verwendung einer Impulsfrequenz, die viermal (4×) so groß ist wie die Bustaktfrequenz. Gemäß einer Ausführungsform werden zwei Datenimpulssignale (DSTBp# und DSTBn#) jeweils mit der doppelten Frequenz des Bustaktes bereitgestellt. Ist die Bustaktfrequenz 100 MHz, haben die beiden Datenimpulssignale daher jeweils eine Frequenz von 200 MHz, wenn sie aktiviert werden oder vom Treiber (oder Treiberagent) aktiviert oder erzeugt werden. Alternativ können vier Datenimpulssignale verwendet werden (jeweils bei der gleichen Frequenz wie der Bustakt, wenn aktiviert), so dass jeweils ein Impuls oder eine fallende Flanke pro Bustaktzyklus bereitgestellt wird.
  • Wieder anhand des Taktungsschemas von 5 sendet oder steuert der Treiber ein neues Informations- oder Datenelement auf die steigende Flanke, und die 25%, 50% und 75%-Punkte des Bustaktzyklus 1. Die Datenelemente werden als D1, D2, D3 und D4 für die vier Datenelemente in diesem Beispiel bezeichnet. Diese Ausführungsform verwendet auch zwei Datenimpulssignale, einschließlich DSTBp# und DSTBn#. Gemäß einer Ausführungsform werden die beiden Datenimpulssignale phasenverschoben zu einander (oder in einer gestaffelten oder versetzten Anordnung) erzeugt. Dies ermöglicht einem der Impulssignale die Identifikation der Abfragepunkte für die ungeraden Datenelemente (beispielsweise D1, D3, D5, ....), und das andere Impulssignal wird für die geraden Datenelemente verwendet (beispielsweise D2, D4, D6, ...).
  • Es sind zwar nur zwei Impulssignale in dem Beispiel von 5 gezeigt, jedoch kann jede Zahl von Impulssignalen verwendet werden zur Identifikation von Abfragepunkten für die Daten einer quellensynchronen Übertragung. Wie oben erwähnt kann es besonders vorteilhaft sein, mehrfache Impulssignale bereitzustellen, so dass nur eine der beiden Flanken der Impulssignale zur Identifikation der Abfragepunkte (oder Impulse) verwendet werden kann, während die Frequenz der Impulssignale gesenkt wird. Wird beispielsweise ein Protokoll mit sechsfacher Übertragungsrate (anstelle einer vierfachen Übertragungsrate) verwendet, können drei Impulssignale verwendet werden, wobei alle drei Impulssignale ähnlich versetzt oder gestaffelt sein können, so dass Impuls 1 für die Datenelemente D1 und D4, Impuls 2 für die Datenelemente D2 und D5 und Impuls 3 für die Datenelemente D3 und D6 verwendet werden kann usw.
  • Gemäß einer Ausführungsform wird nur eine der beiden Flanken der Impulssignale zur Identifikation oder Synchronisation von Datenabfragepunkten verwendet. In dieser bestimmten Ausführungsform werden nur die fallenden Flanken der beiden Datenimpulssignale zur Identifikation von Punkten zum Abfragen von Information oder Daten verwendet. Die Datenimpulse (oder fallenden Flanken der Datenimpulssignale) werden in jedem der vier Informations- oder Datenelemente zentriert. Somit befinden sich die vier fallenden Flanken (oder Impulse) der Datenimpulssignale an den Punkten 12,5%, 37,5%, 62,5% und 87,5% des Bustakt(BCLK)zyklus. Daher stellen die beiden Impulssignale gleichermaßen beabstandete Impulse oder fallende Flanken bereit.
  • Wie in der 5 gezeigt wird ein DRDY# zu Beginn des Bustaktzyklus 1 (wie durch das Quadrat für DRDY# gezeigt) zum Bus 117 gesteuert. DRDY# zeigt, dass sich gültige Daten auf dem Prozessorbus 117 befinden und sie abgefragt oder erfasst werden müssen. Das erste Datenelement (D1) wird von dem Treiber zum Prozessorbus 117 an der steigenden Flanke des Bustaktzyklus 1 gesteuert (wie gezeigt durch das erste Rechteck für D#(@driver)). Ein erstes Datenimpulssignal (DSTBp#) wird dann durch den Treiber an dem 12,5%-Punkt des ersten Bustaktzyklus aktiviert, wie durch das erste Quadrat in DSTB#(@driver) gezeigt. Somit wird der erste Impuls (oder abfallende Flanke) für das erste Datenelement (D1) in dem ersten Datenelement zentriert. Sobald ein Impulssignal aktiviert oder angeschaltet ist bleibt es gewöhnlich aktiviert, bis der Datenbus die Daten zum Bus gesteuert wurden.
  • Ein zweitens Datenelemente wird ebenfalls von dem Treiber am 25% des Bustaktzyklus I gesteuert, wie gezeigt durch das zweite Rechteck für den D#(@driver). Das zweite Datenimpulssignal (DSTBn#) wird am 37% Punkt von Bustaktzyklus 1 aktiviert und stellt eine fallende Flanke (oder Impuls) dar, der in dem zweiten Datenelement (D2) zentriert ist.
  • Entsprechend werden die dritten und vierten Datenelemente (D3 bzw. D4) an dem 50%-Punkt und dem 75%-Punkt von Bustaktzyklus 1 gesteuert. Entsprechende Datenimpulse (fallende Flanken der Datenimpulssignale) werden zum Treiber gesteuert oder diesem am 62,5%-Punkt (durch das DSTBp#-Impulssignal) und am 87,5%-Punkt (durch das DSTBn#-Impulssignal) zugeführt. Da die Datenimpulssignale mit einer Frequenz bereitgestellt werden, die doppelt (2×) so groß ist wie die Frequenz des Bustakts, stellt jedes Datenimpulssignal in jedem ½ Bustakt einen Impuls oder eine fallende Flanke bereit. Somit stellt das DSTBp#-Impulssignal fallende Flanken oder Impulse an den 12,5%- und 62,5%-Punkten des Bustaktszyklus bereit, wohingegen das DSTBp#-Impulssignal abfallende Flanken oder Impulse an den 37,5%- und 87,5%-Punkten des Bustaktzyklus bereitstellt. Somit ist es ersichtlich, dass die beiden Datenimpulssignale (DSTBp# und DSTBn#) gestaffelt oder phasenverschoben zueinander sind. Dies ermöglicht, dass abwechselnde Impulssignale eine abfallende Flanke (oder Impuls) in jedem Viertel eines Bustaktzyklus (zwischen beiden Datenimpulssignalen) bereitstellen. Dies schafft vier Impulse oder fallende Flanken pro Bustaktzyklus zur Identifikation der Abfrage- oder Erfassungspunkte für die vier Datenelemente pro Bustaktzyklus, während die Frequenz jedes Impulses sinkt. Darüber hinaus wird die Taktung und der Schaltkreis vereinfacht, weil die gleiche Flanke (in diesem Beispiel die fallende Flanke) als Impuls in jedem Datenimpulssignal verwendet wird.
  • Gemäß einer Ausführungsform wird zur Gewährleistung einer korrekten Operation die Latenz der Informationsübertragung vom Treiberagent zu einem beliebigen Empfänger kleiner gleich einem Bustakt minus der Eingabe-Arretier-Setup-Zeit. Dies vermeidet eine Konkurrenz der Datenleitungen für die anschließende Datenphase, wenn der Empfänger der Businhaber während der nächsten Phase wird.
  • Die 5 zeigt auch die Erfassung der Daten am Empfänger. Nach Steuern der Signale (Daten und Datenimpulse) durch den Treiber, breiten sich diese Signale am Prozessorbus 117 herab aus und erreichen das Ziel oder den Empfänger. Das erste Datenelement wird am Empfänger empfangen, wie gezeigt durch das D#(@receiver)-Signal. Das erste Datenelemente (D1) wird am ersten Impuls abgefragt oder erfasst, welches die erste fallende Flanke von DSTBp#(@receiver) ist. Das erste Dreieck für DSTBp#(@receiver) identifiziert den Impuls oder den Punkt zum Abfragen oder Erfassen des ersten Datenelementes, und das zweite Dreieck für den DSTBp#(@receiver) identifiziert einen Punkt oder Impuls für die Abfrage des dritten Datenelementes am Empfänger. Entsprechend identifizieren die beiden Dreiecke für das zweite Datenimpulssignal (DSTBn#(@receiver)) die Punkte für den Empfänger zur Abfrage oder Erfassung der zweiten und vierten Datenelemente (D2, D4).
  • Der 5 zufolge kann das erste Datenelement D1 abgefragt oder erfasst (abgetastet) werden in den Empfänger, hinter der steigenden Flanke zu Beginn von Takt 2, und nicht vor dem 12,5% Punkt von Taktzyklus 2 (dem nächsten Taktzyklus). (Die Begriffe, wie hier verwendet "Erfassen" und "Abfragen" sowie "Arretieren" werden frei verwendet und bedeuten ungefähr das gleiche). Die Daten für alle Datenelemente sind jedoch in dem Empfänger bis zur steigenden Flanke von Bustaktzyklus 3 nicht arretiert. Das Datenelement D1 wird somit empfangen und nahe dem Beginn des Bustaktzyklus 2 erfasst, jedoch werden all diese Daten nicht für den Empfänger verfügbar gemacht, bis zu Beginn von Bustaktzyklus 3. Der Empfangsagent umfasst vorzugsweise einen FIFO (first in first out)-Puffer, der bis zu 8 Datenelemente speichern kann. Der 8-Datenelemente FIFO ist so groß, dass er die vier Elemente von einer Datenübertragung und die nächsten vier Datenelemente für die nächste Übertragung speichern kann. Daher können vier neue Datenelemente empfangen und erfasst werden, während die vorhergehenden vier Datenelemente aus dem FIFO zum Empfänger zugeführt oder arretiert werden. Die Nettowirkung ist die vierfache Bandbreite des gemeinsamen Taktsignalgebungsmodus, mit der Auswirkung, dass die erste Signalgruppe, die im Inneren des Empfängers oder des Geräts arretiert ist, zusätzliche Latenz erhält.
  • Gemäß einer Ausführungsform werden zudem mehrfache Leitungen verwendet, um mehrfache Kopien von jedem der beiden Datenimpulssignale (DSTBp# und DSTBn#) zu befördern. Gemäß einer Ausführungsform gibt es vier DSTBn#-Signale und vier DSTBp#-Signale, wie in der nachfolgenden Tabelle veranschaulicht. Beispielhafte Ausführungsform des Datenimpuls-Bereichs
    Datensignale Impulse
    D[15:0]# DSTBp0#, DSTBn0#
    D[31:16]# DSTBp1#, DSTBn1#
    D[47:32]# DSTBp2#, DSTBn2#
    D[63:48]# DSTBp3#, DSTBn3#
  • Die vier DSTBp#-Signale sind logisch identisch, sowie die vier DSTBn#-Signale, aber jedes der Datenimpulssignale wird physikalisch mit einem Subset der angeforderten Signale (d. h. einem Subset der Datenleitungen) geleitet, so dass eine Taktungs-Versetzung oder eine Fehlausrichtung zwischen den Daten und den Datenimpulssignalen reduziert wird.
  • Die 8 ist ein Blockschema einer Vorrichtung zum Übertragen von Information zwischen Agenten gemäß einer Ausführungsform. Ein erster Busagent 802 ist an einen zweiten Busagenten 832 angeschlossen. Der erste Busagent 802 umfasst einen Datenimpulsgeber 1/Empfänger 1 zum Erzeugen und Empfangen eines ersten Datenimpulssignals (beispielsweise DSTBp#) über eine erste bidirektionale Datenimpulssignalleitung 820, und einen Datenimpulsgeber 2/Empfänger 2 zum Erzeugen und Empfangen eines zweiten Datenimpulssignals (beispielsweise DSTBn#) über eine zweite bidirektionale Datenimpulssignalleitung 822. Der Busagent 802 umfasst auch einen Bustransceiver 806, einschließlich eines Übertragungsschaltkreises zum Übertragen oder Steuern von Datensignalen auf den Datenbus oder die Datensignalleitungen 826 und einen Empfangsschaltkreis zum Empfangen von Datensignalen, die über die Datensignalleitungen 826 empfangen werden. Der zweite Busagent 832 umfasst ähnlich einen Datenimpulsgeber 1 und einen Datenimpulsgeber 2 zum Erzeugen von zwei Datenimpulssignalen auf den Datenimpulssignalleitungen 820 bzw. 820. Ein gemeinsamer (oder System-)-Bustaktgeber 810 liefert den gemeinsamen oder System-Bustakt an die Busagenten 802 und 832.
  • 2. Anpassen der Geschwindigkeit des Adressbusses an den Datenbus
  • Gemäß einer Ausführungsform wurde die Cache-Leitungsgröße von 64 Bytes (die Cache-Leitungsgröße in einigen Pentium-Prozessoren ist 32 Bytes) erhöht. Somit kann mit dem Signalgebungsprotokoll mit vierfacher Übertragungsrate und einer Datenbusbreite von 64 Datenleitungen eine Cache-Leitung (oder 64 Bytes) in zwei Bustaktzyklen übermittelt oder übertragen werden: 64 Bytes = (2 Zyklen) × (4 Pumps/Zyklus)(8 Bytes pro Pump).
  • In einigen Pentium-Prozessoren wird eine Anforderung (einschließlich einer Adresse) in drei Bustaktzyklen übertragen. Die drei Bustaktzyklen für die Anforderungsphase für einige Pentium-Prozessoren umfassten die folgenden:
    Zyklus 1 – Subphase a – Adresse (bereitgestellt über den Adressbus) und eine Art Anforderung (beispielsweise Lesen, Schreiben).
    Zyklus 2 – Subphase b – Hilfsdetails für die Anforderung, einschließlich der Byte-Enables, Länge usw. (die über die Adressleitungen oder den Adressbus bereitgestellt werden).
    Zyklus 3 – ein Totzyklus oder Turnaround-Zyklus, der es ermöglicht, dass Signale am Bus nachlassen, so dass ein anderer Agent den Bus steuern kann.
  • Gemäß einer Ausführungsform kann somit eine Cache-Leitung über den Datenbus in zwei Bustaktzyklen übertragen werden. Bei einigen Pentium-Prozessoren erfordert die Adress- und Anforderungs-Taktung drei Bustaktzyklen zum Übertragen einer Anforderung. In einigen Pentium-Prozessoren stimmt somit die Adress-Bus-Taktung oder die Bandbreite nicht mit der Geschwindigkeit des verbesserten Datenbusses mit vierfacher Übertragungsrate überein, wie in der vorstehenden Ausführungsform beschrieben (siehe 5). Eine der selteneren und wertvolleren Quellen ist die Datenbusbreite und Datenbusbandbreite. Somit kann es gemäß einer Ausführungsform vorteilhaft sein, dass die Datenbusbandbreite den Prozessorbus drosselt oder einschränkt, aber nicht die Adressbusbandbreite. Damit der Adressbus daher den Prozessorbus nicht verlangsamt oder drosselt, möchte man daher die Adress- und Abfrage-Taktung am Adressbus so einstellen, dass es mindestens mit der Bandbreite oder Geschwindigkeit des Datenbusses übereinstimmt (in diesem Beispiel für die Übertragung von einer Cache-Leitung am Datenbus).
  • Die Taktung und die Geschwindigkeit der Anforderungsphase, die über den Adressbus geleitet wird, wurden so eingestellt, dass sie mit der allgemeinen Geschwindigkeit des Datenbusses übereinstimmen. Es wird am besten der Totzyklus oder Turnaround-Zyklus aufrechterhalten. Gemäß einer beispielhaften Ausführungsform hatte der Adressbus eine doppelte Übertragungsrate, damit zwei Informationselemente (Subphase a und Subphase b der Anforderung) in einem Bustaktzyklus bereitgestellt wurden.
  • 3. Ein Beispiel für einen Signalgebungsmodus mit doppelter Übertragungsrate
  • Gemäß einer Ausführungsform betreibt im Allgemeinen ein Signalgebungsmodus mit doppelter Übertragungsrate die geeignete Bussignalgebungsgruppe mit der doppelten (2×) Frequenz des Bustakts (BCLK). Die 6 ist ein Taktungsschema, das die Operation eines beispielhaften Signalgebungsmodus mit doppelter Übertragungsrate gemäß einer Ausführungsform veranschaulicht. Es können zwar einige Signale doppelte Übertragungsrate aufweisen, der Adressbus hat in dieser Ausführungsform jedoch doppelte Übertragungsrate.
  • Der 6 zufolge ist das ADS#-Signal zu Beginn der Anforderungs-Phase niedrig. In dem Signalgebungsmodus mit doppelter Übertragungsrate werden zwei Informationselemente zum Bus gesteuert, und zwar in der Zeit, die es zum Steuern von einem Element benötigt, wobei der gemeinsame Taktsignalgebungsmodus verwendet wird (d. h. während eines Bustaktzyklus). Aufgrund der Flight-Zeit (oder Signalausbreitungszeit am Prozessorbus 117) kann die zweite Signalgruppe oder das Informationselement zum Treiber gesteuert werden, bevor das erste Element an dem oder den Empfängern arretiert wird. Gemäß einer Ausführungsform sendet der Treiber ein neues Informationselement zu der steigenden Flanke des Bustaktzyklus.
  • Wie in der 6 gezeigt, wird eine Subphase der Anforderung (Aa), die die Transaktionsadresse bereitstellt, auf die erste Hälfte des Bustaktzyklus 1 gesendet, und zwar beginnend an der fallenden Flanke zu Beginn des Bustaktzyklus 1. Die Subphase b der Anforderung (Ab), die einige Hilfsdetails für die Transaktion bereitstellt, wird an die zweite Hälfte des Bustaktzyklus 1 gesendet, und zwar beginnend am 50% Punkt von Bustaktzyklus 1. Diese beiden Informationselemente sind in der 6 als zwei Rechtecke für Aa und Ab für die A#(@driver)-Leitungen gezeigt. (Aa zeigt die Subphase a für die Anforderung, die über die Adressleitungen bereitgestellt wird, wohingegen Ab die Subphase b der Anforderung anzeigt, die über die Adressleitungen bereitgestellt wird). Somit hat der Adressbus doppelte Übertragungsraten, weil zwei Informationselemente Aa und Ab) während eines Bustaktzyklus übertragen oder gesendet werden.
  • Weil die Information für die Anforderung zudem mit einem Signalgebungsmodus mit doppelter Übertragungsrate gesendet wird (zwei Informationselemente pro Buszyklus), wird die Information vorzugsweise als quellensynchrone Übertragung gesendet. Somit steuert oder aktiviert der Treiber neben den beiden Informationselementen ein Adressimpulssignal, so dass zwei Adressimpulse pro Bustaktzyklus (wenn aktiviert) bereitgestellt werden. Die Adressimpulse schaffen oder identifizieren Punkte zum Abfragen der beiden Informationselemente (Aa und Ab), die auf den Adressbus gesendet werden.
  • Gemäß einer Ausführungsform wird ein Adressimpulssignal (ADSTB#) verwendet, das die gleiche Frequenz wie der Bustakt (BCLK) hat. Zur Bereitstellung von zwei Impulsen während des einen Bustaktzyklus werden abfallende und steigende Flanken des Adressimpulssignals als Impulse verwendet oder zur Identifikation der Abfragepunkte für die beiden Informationselemente, die über dem Adressbus bereitgestellt werden. Wie in der 6 gezeigt aktiviert der Treiber ein Adressimpulssignal (ADSTB#) am 25%-Punkt von Bustaktzyklus 1, welches das Zentrum von Informationselement 1 (Aa) ist. Gemäß einer Ausführungsform wird der Adressimpuls für das erste Informationselement 1 (Aa oder Subphase a der Abfrage) an der fallenden Flanke des ADSTB#-Signals (gesteuert am 25%-Punkt des Bustaktzyklus 1) bereitgestellt, wohingegen der Adressimpuls für das zweite Informationselement (Ab oder Subphase b der Anforderung) als steigende Flanke des ADSTB#-Signals (gesteuert am 75%-Punkt des Bustaktzyklus 1) bereitgestellt wird.
  • Obwohl der Adressimpuls die gleiche Frequenz wie der Bustakt hat, sollte der Bustakt nicht als Impulssignal für die Informationselemente verwendet werden, weil das Bustaktsignal keine steigenden und fallenden Flanken zu den geeigneten Zeiten bereitstellt. Darüber hinaus ist das Bustaktsignal immer aktiviert (im Gegensatz zu einem Impulssignal, das nur bei einer quellensynchronen Übertragung aktiviert wird). Das Adressimpulssignal wird zur Bereitstellung von Signalen oder Abfragepunkten für die beiden Informationselemente verwendet, weil das Adressimpulssignal aktiviert (angeschaltet) und deaktiviert (abgeschaltet) werden kann, ungeachtet des Zustands oder der Phase des Bustakts. Indem der Impuls von der gleichen Quelle wie die Information gesteuert wird, stimmt die Verzögerung in dem Impuls mit der Informationsverzögerung überein, und ermöglicht somit, dass ein Bit mehr zur gleichen Zeit auf einer Leitung sein kann.
  • Die Informationselemente (Aa und Ab) und das Adressimpulssignal verbreiten sich am Prozessorbus 117 und kommen am Empfänger zu Beginn von Bustaktzyklus 2 an. Wie in der 6 gezeigt wird das erste Informationselement (Aa) erfasst oder abgefragt an der fallenden Flanke des ADSTB#(@receiver)-Signals und das zweite Informationselement wird auf der steigenden Flanke des ADSTB#(@receiver)-Signals erfasst oder abgefragt, wie gezeigt durch die beiden Dreiecke am ADSTB#(@receiver)-Signal. Somit lässt sich ersehen, dass der Empfänger deterministisch die Daten oder Information auf der Basis einer Indikation von Treiber erfasst, wenn die Daten gelten (und erfasst werden sollten).
  • Gemäß einer Ausführungsform sollte die Latenz der Datenübertragung vom Treiberagent kleiner gleich einem Bustaktzyklus minus die Eingabe-Arretiersetup-Zeit sein. Dies sollte eine Konkurrenz an den Datenleitungen (oder am Adressbus) und anderen Leitungen für die zweite oder anschließende Phase vermeiden, wenn der Empfänger Inhaber der nächsten Phase wird. Der Nettoeffekt ist doppelt so groß wie die Bandbreite eines allgemeinen Taktsignalgebungsmodus mit der Auswirkung dass die erste Signalgruppe, die im Inneren der Komponente oder im Empfänger arretiert wird, zusätzliche Latenz erhält.
  • Gemäß einer Ausführungsform umfasst der Empfänger einen Vier-Elemente-FIFO-Puffer zum Speichern von vier Informationselementen, die während der Anforderungsphase über den Adressbus übertragen werden. Dies ermöglicht, dass Elemente von der Subphase a und der Subphase b einer Anforderung empfangen werden und in dem FIFO erfasst werden, was gleichzeitig ermöglicht, dass Elemente von einer Subphase a und einer Subphase b einer vorhergehenden Anforderung aus dem FIFO gelesen und am Empfänger arretiert werden.
  • Daher wird gemäß einer Ausführungsform ein einzelnes Adressimpulssignal bei der gleichen Frequenz wie der Bustakt verwendet, so dass die Impulse für die beiden Informationselemente über den Adressbus übertragen werden. Bei diesen Frequenzen für den Adressimpuls (die gleiche Frequenz wie das Bustaktsignal), ist die Signalabschwächung kein Problem. Darüber hinaus ist die Asymmetrie im Impulsarbeitszyklus kein Problem, weil nur zwei Informationselemente pro Bustaktzyklus übertragen werden. Somit kann ein einzelner Adressimpuls mit der gleichen Frequenz wie der Bustakt, in dem steigende und fallende Flanken als Impulse verwendet werden, für das Adressimpulssignal verwendet werden.
  • Alternativ können mehrere (oder zwei) Adressimpulssignale verwendet werden, wobei nur eine der Flanken jedes Adressimpulssignals als Impuls verwendet wird. Ein erstes Adressimpulssignal, das am 25%-Punkt von Zyklus 1 aktiviert ist (eine fallende Flanke hat) und ein zweites Adressimpulssignal, das am 75%-Punkt von Zyklus 1 aktiviert ist (eine fallende Flanke hat), können verwendet werden. Somit sind die Aktivierungspunkte der beiden Adressimpulssignale versetzt oder gestaffelt. Weil nur zwei Elemente während eines Bustaktzyklus gesteuert werden, kann die Frequenz der Adressimpulssignale so gewählt werden, dass sie gleich der Bustaktfrequenz oder einer anderen Frequenz sind.
  • Die 9 ist ein Blockschema einer Vorrichtung zum Übertragen von Information zwischen den Agenten einer anderen Ausführungsform. Ein erster Busagent 802 ist an einen zweiten Busagenten 832 angeschlossen. Der erste Busagent 802 umfasst einen Adressimpulsgeber 940 zum Erzeugen eines Adressimpulssignals (beispielsweise ADSTB#) auf einer bidirektionale Adressimpulssignalleitung 920. Der Busagent 802 umfasst auch einen Bustransceiver 906, einschließlich eines Übertragungsschaltkreises zum Übertragen oder Steuern der Adresse und anderer Signale auf den Adressbus oder Adresssignalleitungen 926 und einen Empfangsschaltkreis zum Empfangen von Signalen, die über die Adresssignalleitungen 926 empfangen werden. Der zweite Busagent 832 umfasst entsprechend einen Adressimpulsgeber 942 zum Erzeugen eines Adressimpulssignals auf die bidirektionale Adressimpulssignalleitung 920. Der zweite Busagent 832 umfasst auch einen Bustransceiver 936, einschließlich eines Empfangsschaltkreises und eines Übertragungsschaltkreises zum Übertragen von Signalen bzw. Empfangen von Signalen, über die Adresssignalleitungen 926.
  • Wie oben erwähnt kann eine Datenübertragung von einer Cache-Leitung in zwei Bustaktzyklen übertragen werden, wobei ein Signalgebungsmodus mit vierfacher Übertragungsrate verwendet wird, und eine Adressanforderung kann in zwei Bustaktzyklen übertragen werden, wobei der Signalgebungsmodus mit doppelter Übertragungsrate verwendet wird. Somit haben sowohl der Adressbus als auch der Datenbus den gleichen Peak-Durchsatz, was einen ausbalancierten Prozessorbus bereitstellt. Wenn nicht anders vermerkt wird das meiste der, wenn nicht alle, verbleibenden Signale mit dem gemeinsamen Takt(IX)-Signalisierungsmodus übertragen.
  • VII. Umstimmen des Busprotokolls auf die neue Schlagzahl von 2 Taktzyklen
  • Wie oben beschrieben stellt der Prozessorbus eine gesteigerte Anforderungs- und Datenbandbreite durch die Verwendung von Signalgebungsprotokollen mit mehrfacher Übertragungsrate bereit. Der Anstieg der Anforderungsbandbreite (am Adressbus) und der Datenbandbreite (am Datenbus) erfolgt ohne Steigerung der Datenbusbreite (64 Leitungen), ohne Verwendung einer teuren Takt- oder Routing-Topologie, und während der gleiche Basistyp des Busprotokolls aufrechterhalten wird, wie er in einigen der Pentium-Prozessoren verwendet wird.
  • Bei einigen Pentium-Prozessoren, wurde ein gemeinsamer Taktsignalgebungsmodus verwendet, um 8 Byte Daten pro Bustaktzyklus mit 64 Datenleitungen zu übertragen, was es ermöglicht, dass eine 32 Byte Cache-Leitung in 4 Bustaktzyklen übertragen wird. Gemäß einer erfindungsgemäßen Ausführungsform wurde die Cache-Leitung auf 64 Leitungen erhöht, und ein Signalgebungsmodus mit vierfacher Übertragungsrate (der 32 Byte pro Bustaktzyklus überträgt) kann zum Senden einer 64 Byte Cache-Leitung in zwei Bustaktzyklen verwendet werden. Zudem wird bei einigen Pentium-Prozessoren, eine Anforderung in drei Bustaktzyklen übertragen, die eine Subphase a in Bustaktzyklus 1, Subphase b in Zyklus 2, und einen Turnaround-Zyklus (oder Totzyklus ) für Zyklus 3 enthalten. Gemäß einer Ausführungsform der Erfindung wird ein Signalgebungsmodus mit doppelter Übertragungsrate am Adressbus zur Übertragung oder Übermittlung beider Subphasen a und b der Anforderung in einem einzelnen Bustaktzyklus verwendet. Dies reduziert die Länge der Anforderungsphase auf zwei Bustaktzyklen, was mit der Länge der Cache-Leitungsübertragung übereinstimmt (also zwei Bustaktzyklen). Da eine Anforderungsphase eine Länge von zwei Bustaktzyklen hat, und eine Cache-Leitungsanforderung zwei Bustaktzyklen erfordert, kann die Schlagzahl oder Schlagfrequenz des Prozessorbusses im Allgemeinen als zwei Bustaktzyklen angesehen werden.
  • Gemäß einer erfindungsgemäßen Ausführungsform wurde das Busprotokoll umgestimmt oder modifiziert, damit die Latenz oder Verzögerung zwischen dem Beginn der aufeinander folgenden Phasen sehr genau mit der neuen Schlagfrequenz von zwei Bustaktzyklen für den Prozessorbus übereinstimmt. Die 7 ist ein Schaubild, das die Mindestlatenz oder Verzögerung zwischen Transaktionsphasen (wie u. a. der Entscheidungs-, Anforderungs-, Snoop-, und Antwortphasen) veranschaulicht. Die Entscheidungs-(Arb), Anforderungs-(Req), Snoop- und Antwort-(Resp)-Phasen sind für zwei Transaktionen (Transaktion 1 und Transaktion 2) gezeigt. Die gezeigten Zahlen sollen eine Latenz oder Verzögerung zwischen Phasen anzeigen. Die erste Zahl zeigt die minimale Anzahl von Bustaktzyklen zwischen dem Beginn der Phasen, wie es in einigen Pentium-Prozessoren ausgeführt wird, wohingegen die zweite Zahl (in Klammern) die neue Mindestlatenz zwischen den Phasen nach dem Einstellen oder Umstimmen des Busprotokolls auf eine genauere Übereinstimmung mit der neuen Schlagfrequenz der beiden Bustaktzyklen angibt. Ist nur eine Zahl gezeigt, bedeutet dies, dass es keine Änderung in der Verzögerung oder Latenz zwischen Phasen wie zwischen einigen Pentiumprozessoren und bei einer erfindungsgemäßen Ausführungsform gibt.
  • Wie oben erwähnt ist die Mindestlatenz zwischen den Phasen, die in der 7 gezeigt sind, gewöhnlich zwei Bustaktzyklen. Gemäß der 7 verbleibt die minimale Latenz zwischen dem Beginn einer Entscheidungsphase und dem Beginn einer Anforderungsphase für eine Transaktion (beispielsweise Transaktion 1) bei zwei Bustaktzyklen unverändert. Die Mindestlatenz vom Beginn einer Anforderungsphase zum Beginn einer Snoop-Phase einer Transaktion wurde von vier Bustaktzyklen auf drei Bustaktzyklen gesenkt. Die Mindestlatenz zwischen dem Beginn einer Snoop-Phase und dem Beginn einer Antwortphase bleibt bei zwei Bustaktzyklen unverändert. Die Mindestlatenz zwischen dem Beginn der Anforderungsphase und dem Zeitpunkt, an dem ein Zielagent das TRDY#-Signal zusichern kann, wurde von drei auf zwei Bustaktzyklen gesenkt. Die Mindestlatenz von der Zusicherung des TRDY#-Signals zum Beginn der Antwortphase bleibt bei zwei Bustaktzyklen unverändert.
  • Zudem wurde die Mindestlatenz zwischen den gleichen oder entsprechenden Phasen der aufeinanderfolgenden Transaktion so modifiziert, dass sie genauer mit der Schlagfrequenz von zwei Taktzyklen übereinstimmt. Der 7 zufolge wurde die Mindestlatenz zwischen aufeinanderfolgenden Entscheidungsphasen (beispielsweise die Mindestlatenz zwischen dem Beginn der Entscheidungsphase von Transaktion 1 und dem Beginn der Entscheidungsphase von Transaktion 2) von drei Bustaktzyklen auf zwei Zyklen gesenkt. Die Mindestlatenz zwischen aufeinanderfolgenden Anforderungsphasen wurde von drei Busttaktzyklen auf zwei gesenkt. Die Mindestlatenz zwischen aufeinanderfolgenden Snoop-Phasen wurde von drei Bustaktzyklen auf zwei gesenkt. Und die Mindestlatenz zwischen aufeinanderfolgenden Antwortphasen wurde von drei Bustaktzyklen auf zwei gesenkt.
  • Jede der Phasen wird anhand einer kurzen Erläuterung einiger Änderungen oder Modifikationen am Busprotokoll für diejenige Phase beschrieben, die zu einer Abnahme der Latenz zwischen den Phasen beigetragen hat (in denen eine Latenz aufgetreten ist).
  • Wenn ein Anforderungsagent keinen Bus besitzt, beginnt der Bus mit einer Entscheidungsphase, in der ein Anforderungsagent zum Businhaber wird. Nachdem der Anforderungsagent zum Businhaber geworden ist, tritt die Transaktion in die Anforderungsphase. In einer ersten Subphase (Subphase a) der Anforderungsphase, wird ein ADS#-Signal (das eine gültige Adresse anzeigt) zusammen mit der Transaktionsadresse und hinreichend Information gesteuert, so dass das Snooping und der Speicherzugriff erfolgt. In der zweiten Subphase (Subphase b) der Anforderungsphase werden verschiedene Hilfsinformationen für die Anforderung zum Bus 117 gesteuert, einschließlich der Byte-Enables (was anzeigt, welche Daten-Bytes auf den Datenleitungen bereitgestellt werden), einer verzögerten ID, Transaktionslänge und anderer Transaktionsinformation. Die ersten und zweiten Subphasen werden während eines Bustaktzyklus gesteuert. Demnach hat gemäß einer Ausführungsform die Anforderungs-Information (wovon beispielsweise ein Großteil über den Adressbus bereitgestellt wird) eine doppelte Übertragungsrate.
  • Gemäß einer Ausführungsform hat jede Transaktion eine Snoop-Phase. Die Snoop-Ergebnisse aus der Snoop-Phase zeigen, ob die Adresse, die für eine Transaktion gesteuert wird, eine gültige oder modifizierte (schmutzige) Cache-Leitung in einem Cache eins Busagenten betrifft. Die Snoop-Ergebnisse zeigen auch, ob eine Transaktion ordentlich beendet wird oder aufgrund einer möglichen außerordentlichen Beendigung verzögert wird. Ein Agent kann eine Transaktion verzögern, wenn er für einen Snoop nicht bereit ist, indem die Snoop-Phase mit einem Snoop-Stillstand verlängert wird.
  • Jede der Phasen wird beschrieben, und es werden die Unterschiede hervorgehoben, die zum Verringern der Latenz zwischen den Phasen herangezogen werden (wo anwendbar).
    • 1) Entscheidungsphase: Keine Transaktion kann erstellt werden, bis der Busagent den Prozessorbus 117 innehat. Eine Transaktion braucht nur diese Phase zu besitzen, wenn der Agent, der die Transaktion zum Prozessorbus 117 steuern möchte, nicht bereits den Bus 117 besitzt. Gemäß einer Ausführungsform wird ein Busentscheidungsprotokoll bereitgestellt, das zwei Klassen Busagenten unterstützt: symmetrische Agenten und Prioritätsagenten. Die Prozessoren an Bus 117 entscheiden gewöhnlich als symmetrische Agenten. Der Prioritätsagent (beispielsweise die System-Schnittstelle 116) entscheidet gewöhnlich im Namen des I/O-Subsystems (I/O-Brücke 124 oder I/O-Agenten) und des Speicher-Subsystems (Speicheragenten, die sich im Hauptspeicher-Subsystem 122 befinden).
  • Eine beispielhafte Signalgruppe, die zur Entscheidung für den Bus-Besitz verwendet werden kann, ist nachstehend gezeigt (wie hier verwendet, zeigt das Symbol # aktiv niedrige Signale): BEISPIELHAFTE ENTSCHEIDUNGSSIGNALE
    Portanschluss/Signalname Portanschluss-Mnemonik Signalmnemonik
    Anforderung symmetrischer Agentenbus BR[3:0]# BREQ[3:0]
    Anforderung Prioritätsagentenbus BPRI# BPRI#
    Blockieren nächste Anforderung BNR# BNR#
    Lock LOCK# LOCK#
  • Der Prozessorbus 117 ermöglicht eine Vielzahl von Agenten zur gleichzeitigen Entscheidung für Bus 117. Die symmetrischen Agenten entscheiden für Bus 117 auf der Basis des Round-Robin-Rotationsprioritäts-Schemas. Das Entscheidungsschema garantiert einen angemessenen Zugriff auf eine Anforderungsphase für alle symmetrischen Agenten. Jeder symmetrische Agent hat eine einzigartige Agenten-ID, die bei Reset erteilt wird (beispielsweise die Agenten 0, 1, 2, 3), und die Entscheidung erfolgt kreisförmig. Nach dem Reset hat der Agent 0 die höchste Priorität, gefolgt von den Agenten 1, 2 und 3. Jeder symmetrische Agent erhält eine gemeinsame Rotations-ID, die die symmetrische Agenten-ID des allerletzten Businhabers widerspiegelt. Bei jedem Entscheidungsereignis wird der symmetrische Agent mit der höchsten Priorität der Inhaber und kann in die Anforderungsphase eintreten, wenn es keine Aktion höherer Priorität gibt, die die Verwendung des Busses verhindert. Der oder die Prioritätsagenten haben eine höhere Priorität als der symmetrische Inhaber.
  • Ein symmetrischer Agent fordert den Bus an, durch Zusicherung seines BREQn#-Signals. Auf der Basis des Werts, der an BREQ[3:0] abgefragt wird und dem letzten symmetrischen Businhaber, können sämtliche Agenten zeitgleich den nächsten symmetrischen Businhaber bestimmen. Ein Prioritätsagent fragt nach dem Bus, durch Zusichern von BPRI#, das das Entscheidungsschema vorübergehend überläuft, weil kein anderer symmetrischer Agent eine weitere ungesperrte Bustransaktion erteilt, bis BPRI# inaktiv abgefragt wurde. Der Prioritätsagent ist immer der nächste Businhaber. Das BNR#-Signal kann von einem beliebigen Busagenten zugesichert werden, damit keine weiteren Transaktionen an den Bus erteilt werden (gewöhnlich verwendet, wenn Systemresourcen, wie Puffer, gefüllt werden und sie keine weitere Transaktion ausführen können). Die Zusicherung des LOCK#-Signals zeigt, dass der Busagent eine atomare Sequenz der Bustransaktionen ausführt, die nicht unterbrochen werden darf.
  • Das Prioritätssignal kann PBR1# deaktivieren und die Bus-Inhaberschaft in dem gleichen Zyklus freisetzen, in dem er seine letzte Anforderung erzeugt. In einigen Pentium-Prozessoren muss das BPR1#-Signal nach seiner Zusicherung für mindestens zwei Bustaktzyklen deaktiviert werden. Dies stimmt mit der alten 3 Bustaktzyklusrate (in einigen Pentium-Prozessoren) überein, und stellte so für symmetrische Agenten und Prioritätsagenten einen ausbalanciert Zugriff auf den Bus bereit. Gemäß einer Ausführungsform wurde das Protokoll so geändert, dass das BPR1#-Signal nur für mindestens einen Bustaktzyklus nach dem Zusichern deaktiviert wird. Diese Änderung in einer gängigen Ausführungsform unterstützt eine Schlagzahl über zwei Bustaktzyklen, wobei ein Bustaktzyklus zur Zusicherung, und ein Zyklus zur Deaktivierung dient.
  • Wie erwähnt kann das BNR#-Signal zur Verzögerung weiterer Anforderung dienen, beispielsweise wenn ein Agent nicht genügend Ressourcen zur Unterstützung einer anderen Transaktion hat. Gemäß einer Ausführungsform wird ein Anforderungsstillstandprotokoll durchgeführt und wird auf der Basis von drei Stufen bestimmt.
    • 1) Frei: In diesem Zustand ist die Fähigkeit des Agenten zur Erteilung von Abfragen nicht durch das BNR#-Anforderungsstillstandprotokoll eingeschränkt, sondern nur durch seine Eigentümerschaft des Busses und durch die Anforderungsrate. Bei einigen Pentium-Prozessoren erfolgt der BNR#-Abfragepunkt in dem freien Zustand drei Taktzyklen nach Zusicherung der ADS#-Abfrage. Gemäß einer Ausführungsform wurde der BNR#-Abfragepunkt so eingestellt, dass er zwei Taktzyklen (statt drei) nach der Abfragezusicherung des ADS#-Signals eingestellt wurde. Wenn ein Signal eine neue Anforderungserstellung in dem freien Zustand anhalten möchte, steuert der Agent BNR# vor einem gültigen BNR#-Abfragepunkt von ADS# aktiv in den Taktzyklus. Im nächsten Taktzyklus beobachten alle Agenten einen aktiven BNR# auf einem BNR#-Abfragepunkt und Übergang zum Stillstand-Zustand.
    • 2) Gedrosselt: Ein Agent kann eine Anforderung in diesem Zustand erteilen, sobald er die Eigentümerschaft des Busses übernommen hat und die maximale ADS#-Anforderungsrate erteilt wurde. Der BNR#-Abfragepunkt ist in dem ersten Taktzyklus des gedrosselten Zustands. Wird BNR# im gedrosselten Zustand aktiv auf einem BNR#-Abfragepunkt abgefragt, geht der Zustand in einen Stillstand-Zustand über. Wird BNR# inaktiv auf einem BNR#-Abfragepunkt abgefragt, geht der Zustand in den freien Zustand über.
    • 3) Stillstehend: In diesem Zustand kann ein Agent keine Anforderung erstellen, bis das am BNR#-Abfragepunkt abgefragte BNR# inaktiv war. Der BNR#-Abfragepunkt beginnt in dem Bustaktzyklus, wenn der Stillstand-Zustand einsetzt und jedem anderen nachfolgenden Taktzyklus, so lange BNR# an seinem Abfragepunkt abgefragt wird. Ein Anaforderungsstillstand-Zustand wird nach einem Reset-Ereignis immer zum Stillstand initialisiert (entweder INIT# oder RESET#). Ein Agent kann den Stillstand-Zustand durch Zusichern von BNR# alle zwei Bustaktzyklen (vor den gültigen Abfragepunkten) verlängern. Wird BNR# im Stillstand-Zustand nicht aktiv abgefragt, geht der Anforderungsstillstand-Zustand in den gedrosselten Zustand über.
  • Die Voraussetzung, dass das BPRI#-Signal für nur mindestens einen Bustaktzyklus (statt zwei) nach der Zusicherung deaktiviert wird und dass das Einstellen des BNR#-Abfragepunktes in dem freien Zustand zwei Taktzyklen (statt drei) nach der Anforderungszusicherung erfolgt, senkt daher die Mindestlatenz zwischen dem Beginn der aufeinander folgenden Entscheidungsphasen von drei Bustaktzyklen auf zwei Bustaktzyklen.
    • 2) Anforderungsphase: Die Anforderungsphase ist diejenige Phase, in der die Transaktion tatsächlich zum Bus erteilt wird oder zu diesem gesteuert wird. Gemäß einer Ausführungsform dauert die Anforderungsphase einen gemeinsamen Bustaktzyklus. Die Anforderungsphase umfasst zwei Subphasen, einschließlich der Subphase a (während der ersten Hälfte der Anforderungsphase) und Subphase b (während der zweiten Subphase der Anforderungsphase. Die Anforderungsinformation wird während der Anforderungsphase übertragen, einschließlich der Transaktionsaddresse. Die Anforderungsphase beginnt mit der Zusicherung des ADS#-Signals, des Adressimpulssignals. Es folgt eine beispielhafte Gruppe von Signalen, die zur Übertragung einer Anforderung verwendet werden kann.
    BEISPIELHAFTE ABFRAGESIGNALE
    Portanschluss-Name Portanschluss-Mnemonik Signalname Signalmnemonik Anzahl
    Adressimpuls ADS# Adressimpuls ADS# 1
    Anforderungsbefehl REQ[4:0]# Anforderunga REQa[4:0]# 5
    Erweiterte Anforderungb REQb[4:0]#
    Anforderungsimpulse ADSTB[1:0]# Anforderungsimpulse ADSTB[1:0]# 2
    Adresse A[35:3]# Adressen Aa[35:3]# 33
    Reserviertb Ab[35:32]#
    Attributeb ATTR[7:0]# oder Ab[31:24]#
    Verzögerte IDb DID[7:0]# oder Ab[23:16]#
    Byte-Enablesb BE[7:0]# oder Ab[15:8]#
    Erweiterte Funktionenb EXF[4:0]# oder Ab[1:0]#
  • Bemerkungen:
    • a. Diese Signale werden von dem angezeigten Portanschluss während der ersten Subphase (Subphase a) der Anforderungsphase gesteuert.
    • b. Diese Signale werden während der zweiten Subphase (Subphase b) der Anforderungsphase gesteuert.
  • Somit wird die Transaktionsadresse auf Aa[35:3] übertragen (wobei "A" die Adressleitungen oder Adressbus 204 veranschaulicht und "a" Signale veranschaulicht, die während der Subphase a übertragen werden), und zusätzliche Information (beispielsweise Byte-Enables, Attribute, erweiterte Funktionen), die die Transaktion beschreibt) wird auf Ab[35:3] übertragen (wobei "b" anzeigt, dass die zusätzliche Information während der Subphase b über die Adressleitungen übertragen wird). Die Zusicherung von ADS# definiert den Beginn der Anforderungsphase. ADSTB[1:0]# sollte vorzugsweise einmal in jedem Bustaktzyklus feststellen, dass ADS# zugesichert ist, und nicht in einem anderen Zyklus. REQa[4:0]# und REQb[4:0]# identifizieren den Transaktionstyp.
  • Gemäß einer Ausführungsform kann die Anforderung zum Prozessorbus gesteuert werden:
    • 1) Taktzyklus nach Beobachtung der Inhaberschaft; und
    • 2) zwei oder mehr Takte nach der ADS#-Zusicherung für die vorhergehende Transaktion; und
    • 3) BNR# wird inaktiv beobachtet; und
    • 4) LOCK# wird inaktiv beobachtet, wenn es nicht durch diesen Agenten aktiviert wird.
  • Einige Pentium-Prozessoren erforderten eine minimale Verzögerung von drei Taktzyklen nach der Zusicherung von ADS# der vorhergehenden Transaktion, bevor die Anforderung zum Prozessorbus gesteuert werden kann. Zur Minderung der Mindestlatenz zwischen Anforderungsphasen der aufeinander folgenden Transaktionen von drei Taktyzklen auf zwei Taktzyklen, kann ein Agent die Anforderung zum Bus nach nur zwei Bustaktzyklen nach Zusicherung des ADS#-Signals der vorherigen Transaktion, gemäß einer Ausführungsform steuern. Wie oben erwähnt identifiziert das ADS#-Signal den Beginn der Anforderungsphase, und zeigt, dass die Subphase a der Anforderung auf den Prozessorbus gesteuert wird, einschließlich einer Adresse (die über den Adressbus bereitgestellt wird) und der Anforderung (die über REQ#[4:0]-Leitungen bereitgestellt wird).
    • 3) Snoop-Phase: Gemäß einer Ausführungsform unterstützt der Prozessorbus die Cache-Kohärenz für mehrfache Cache-Agenten. Die Kohärenz (oder Datenkonsistenz) gewährleistet, dass ein System oder Computer mit mehreren Cache- und Speicher-Leveln und mehreren Cache-Agenten ein geteiltes Speichermodell bietet, in dem vorzugsweise kein Agent jemals abgelaufene (oder inkorrekte) Daten liest, und Aktionen bei Bedarf serialisiert werden können. Eine Leitung ist die Cache-Einheit in den Cache-Agenten. Gemäß einer Ausführungsform ist eine Cache-Leitung 64 Bytes, aber es können andere Cache-Leitungsgrößen eingesetzt werden.
  • Das Cache-Protokoll vereint Zustände mit Leitungen und definiert Regeln, die die Zustandstransaktionen steuern. Jede Leitung hat in jedem Cache einen Zustand. Gemäß einer Ausführungsform gibt es vier Leitungszustände, einschließlich M (modifiziert), was zeigt, dass die Leitung in diesem Cache ist, und eine aktuelleren Wert der Leitung als im Speicher hat, und die Leitung ist in allen anderen Agenten ungültig, E (ausschließlich), was zeigt, dass die Leitung in diesem Cache ist und den gleichen Wert wie im Speicher hat und in allen anderen Agenten ungültig ist; S (geteilt), was zeigt, dass die Leitung in diesem Cache ist, den gleichen Wert wie im Speicher enthält, und in anderen Agenten zugegen sein kann; und 1 (ungültig), was zeigt, dass die Leitung in diesem Cache nicht verfügbar ist, und von einem anderen Cache oder Agenten abgerufen werden sollte.
  • In der Snoop-Phase ist die Cache-Kohärenz verstärkt. Es folgt eine Beispielhafte Liste von Snoop-Signalen, die während einer Snoop-Phase verwendet werden können: BEISPIELHAFTE SNOOP-SIGNALE
    Signalfunktion Name des Portanschlusses Treiber
    Halten einer nicht-modifizierten Cache-Leitung HIT# Agent mit geteilter Leitung
    Hit zu modifizierter Cache-Leitung HITM# Agent mit schmutziger Leitung
    Verzögerung der Transaktionsbeendigung DEFER# Antwortender Agent
  • In der Snoop-Phase steuern alle cachenden -Agenten ihre Snoop-Ergebnisse und nehmen an der Auflösung der Cache-Kohärenz teil. Die Agenten erzeugen im Allgemeinen interne Snoop-Ergebnisse für fast alle Speicher-Transaktionen, die nicht ihre eigenen sind. Alle cachenden Agenten (Snoop-Agenten) steuern ihre Snoop-Ergebnisse auf den Bus in dieser Phase mit den HIT# und HITM#-Signalen. HIT# wird während der Snoop-Phase zugesichert und zeigt, dass eine Kopie einer Cache-Leitung, die die erforderlichen Daten enthält, im Cache eines anderen Agenten auf dieser Schnittstelle ruht. HITM# wird während der Snoop-Phase zugesichert, und zeigt, dass eine modifizierte Kopie der Cache-Leitung, die die angeforderten Daten enthält, im Cache eines anderen Agenten auf dieser Schnittstelle ruht. Wenn HIT# und HITM# gleichzeitig von einem Agenten während einer Snoop-Phase zugesichert werden, dann steht die Snoop-Phase still, und die derzeitige Snoop-Phase sollte verlängert werden. DEFER# wird während der Snoop-Phase zugesichert, damit angezeigt wird, dass es nicht garantiert werden kann, dass die derzeitige Transaktion beendet wird.
  • Bei einigen Pentium-Prozessoren wurden die Snoop-Ergebnisse vier Taktzyklen nach Zusicherung des ADS#-Signals und mindestens drei Taktzyklen von der Snoop-Phase der vorherigen Transaktion gesteuert. Gemäß einer Ausführungsform wurden diese Mindestlatenzen so modifiziert, dass sie genauer mit der neuen Schlagfrequenz des Prozessorbusses übereinstimmen. Gemäß einer Ausführungsform können die Snoop-Ergebnisse nun drei Taktzyklen nach Zusicherung des ADS#-Signals (d. h. drei Bustaktzyklen nach dem Beginn der Anforderungsphase) und mindestens zwei Taktzyklen nach der Snoop-Phase der vorherigen Transaktion gesteuert werden (d. h. mindestens zwei Taktzyklen nach Steuern der Snoop-Ergebnisse zum Bus für die vorhergehende Transaktion). Somit wurde die maximale Aktivierungsrate für die HIT#/HITM#/DEFER#-Signale (Snoop-Ergebnis) von einmal pro drei Bustaktzyklen zu einmal pro zwei Bustaktzyklen geändert. Man beachte, dass die Latenz von der Beendigung der Anforderungsphase (Subphase B) zur Snoop-Phase gleich bleibt, da die Anforderungsphase um einen Zyklus verkürzt wurde.
    • 4) Antwortphase: In dieser Phase steuert der Antwortagent die Transaktionsantwort zum Prozessorbus. Die in der Anforderungsphase eingeleitete Anforderungen treten in eine ordentliche Warteschlange, die von jedem Busagenten aufrecht gehalten wird. Der Antwortagent ist für die Beendigung der Transaktion am Anfang der ordentlichen Warteschlange verantwortlich. Der Antwortagent ist die Vorrichtung oder der Agent, der von der Transaktion während der Anforderungsphase adressiert wird. Es folgt eine beispielhafte Gruppe von Signalen, die in der Antwortphase verwendet werden können.
    BEISPIELHAFTE ANTWORTSIGNALE
    Typ Signalnamen Anzahl
    Antwortstatus RS[2:0]# 3
    Antwortparität RSP# 1
    Target Ready TRDY# 1
  • Die Transaktionsantwort wird auf den RS[2:0]#-Signalen codiert. Beispiele für mögliche Antworten umfassen: eine normale Datenantwort (wobei der Antwortagent Lesedaten zusammen mit der Antwort übertragen muss), eine Wiederholungsantwort (wenn DEFER# während der Snoop-Phase zugesichert wird, was anzeigt, dass die Transaktion erneut versucht werden muss), eine verzögerte Antwort (wobei der Antwortagent oder antwortende Agent die baldige Beendigung der Transaktion zusagt, wobei die Deferred Reply Transaktion eingesetzt wird), eine Null-Daten-Antwort (wobei keine Daten vom Empfangsagenten zurück geschickt werden), usw. TRDY# wird von dem antwortenden Agenten zugesichert, damit angezeigt wird, dass er Schreib- oder Writeback-Daten annehmen kann usw. Die RSP#-Signale liefern die Parität für die RS-Signale.
  • Bei einigen Pentium-Prozessoren kann die Antwort nach mindestens drei Bustaktzyklen nach der Antwortphase der vorherigen Transaktion gesteuert werden. Gemäß einer Ausführungsform wurde diese Mindestlatenz zwischen den Antwortphasen der aufeinander folgenden Transaktionen so eingestellt, dass sie genauer mit der neuen Schlagfrequenz des Prozessorbusses übereinstimmen. Gemäß einer Ausführungsform kann eine Antwort nach mindestens zwei Bustaktzyklen nach der Antwort der vorhergehenden Transaktion gesteuert werden. Die Mindestlatenz unterliegt gewöhnlich anderen Einschränkungen, die diese Latenz verlängern können. Aufgrund des Signalgebungsmodus mit doppelter Übertragungsrate, der für die Anforderungssignale verwendet wird, kann eine Antwort einmal pro zwei Bustaktzyklen (statt einmal pro drei Bustaktzyklen für einige Pentium-Prozessoren) gesteuert werden.
  • Bei einer anforderungsinitialisierten Transaktion muss der Anforderungsagent Schreibdaten übertragen. Der Empfangsagent sichert TRDY# zu, damit dessen Fähigkeit zum Empfangen von Daten des Anforderungsagenten angezeigt wird, der einen Schreibvorgang durchführen möchte. Bei einigen Pentium-Prozessoren kann das TRDY#-Signal nach mindestens drei Bustaktzyklen nach der Zusicherung des ADS#-Signals für die gleiche Transaktion zugesichert werden. Es gibt gewöhnlich andere Einschränkungen, die diese Latenz verlängern. Diese Latenz wurde so modifiziert, dass sie besser mit der neuen Schlagfrequenz des Prozessorbusses übereinstimmt. Gemäß einer Ausführungsform kann ein Empfangsagent das TRDY#-Signal nach mindestens zwei Bustaktzyklen nach Zusicherung des ADS#-Signals für die gleiche Transaktion zusichern. Man beachte, dass die Latenz vom Ende der Anforderungsphase zum TRDY# unverändert bleibt.
    • 5) Daten(Übertragungs-)Phase: Während der Datenphase werden Daten zwischen verschiedenen Busagenten über den Prozessorbus 117 übertragt. Auf der Basis der Anforderungsphase enthält eine Transaktion entweder eine "anforderungsinitialisierte" (Schreib(Daten)-Übertragung, eine "antwortinitialisierte" (Lese)-Datenübertragung oder Nulldaten-Übertragung. Die Datenphase kann mit der Anforderungsphase für eine Transaktion überlappen.
  • Es folgt eine beispielhafte Liste von Signalen, die sich in der Datenphase verwenden lassen: BEISPIELHAFTE DATENSIGNALE
    Typ Signalnamen Anzahl
    Data Ready DRDY# 1
    Datenbus BUsy DBSY# 1
    Datenimpulse DSTBp[3:0]# DSTBp[3:0]# 8
    Daten D[63:0]# 64
    Dateninversion DINV[3:0]# 4
    Datenparität DP[3:0]# 4
  • DRDY# zeigt, dass gültige Daten auf dem Bus 117 untergebracht wurden und arretiert werden müssen. Der Datenbusinhaber sichert DRDY# für jeden Bustaktzyklus zu, in dem gültige Daten übertragen werden müssen. DRDY# kann deaktiviert werden, damit Wartestadien in die Datenphase eingebracht werden. DBSY# kann zum Halten des Datenbusses vor der ersten DRDY#-Zusicherung und zwischen anschließenden DRDY#-Zusicherungen für eine mehrfache Bustaktdatenübertragung verwendet werden. DINV[3:0]# werden verwendet, um anzuzeigen, dass die Datenbits von der Datenquelle invertiert wurden.
  • Die Datensignale D[63:0]# des Datenbusses 206 (2) stellen einen 64-Bit-Datenweg zwischen den Busagenten dar. Für eine partielle Übertragung, einschließlich I/O-Lese- und I/O-Schreibtransaktionen, bestimmen die Byte-Enable-Signale (BE[7:0]#), welche Bytes des Datenbusses die gültigen Daten enthalten. Die DP-Signale können die Datensignale mit Parität versorgen.
  • Gemäß einer Ausführungsform können die Daten mit einem quellensynchronen arretierten Protokoll mit vierfacher Übertragungsrate (d. h. 4×) übertragen werden, worin die Datensignale D[63:0]# zur Übertragung von vier 8-Byte-Datenelementen in einem einzelnen Bustaktzyklus verwendet werden. Die ersten 8 Bytes (in der Reihenfolge der Signalfolge) werden in dem ersten Viertel des Bustaktes, das zweite 8 Byte-Element wird im zweiten Viertel des Bustakts, das dritte 8-Byte-Element im dritten Viertel des Bustakts und das vierte 8-Byte-Element im vierten Viertel des Bustakts übertragen. Die Daten können im ersten Viertel des Bustakts übertragen werden, wenn die zu übertragenen Daten 1 bis 8 Byte Länge haben, und die Daten können in den beiden ersten Vierteln des Bustakts übertragen werden, wenn die Daten 9 bis 16 Byte Länge haben.

Claims (18)

  1. Vorrichtung zum Übertragen von Daten an einen oder mehrere Empfangsagenten über einen Bus, wobei die Vorrichtung so betreibbar ist, dass sie ein gemeinsames Bustaktsignal von dem Bus empfängt, das eine Bustaktfrequenz aufweist, umfassend: eine Datenimpuls-Erzeugungslogik (1, 2), die ein erstes Datenimpulssignal (DSTBp#) und ein zweites Datenimpulssignal (DSTBn#) auf einer ersten Datenimpuls-Signalleitung (820) des Busses und einer zweiten Datenimpuls-Signalleitung (822) des Busses erzeugt, wobei das erste Datenimpulssignal (DSTBp#) und das zweite Datenimpulssignal (DSTBn#) auf das gemeinsame Bustaktsignal zu synchronisieren sind und eine Datenimpulsfrequenz mit einer ersten Vielfachen der Bustaktfrequenz aufweisen; eine Adressimpuls-Erzeugungslogik (940), die einen ersten Adressimpuls (ADSTB) auf einer Adressimpuls-Signalleitung (920) des Busses erzeugt, wobei der erste Adressimpuls (ADSTB) auf das gemeinsame Bustaktsignal synchronisiert ist und eine Adressimpulsfrequenz aufweist; eine Datenübertragungslogik (806), die Datenelemente synchronisiert zu einer ersten Flanke des ersten Datenimpulssignals (DSTBp#) auf einer Anzahl Datensignalleitungen (826) des Busses überträgt, und die Datenelemente synchronisiert zu einer ersten Flanke des zweiten Datenimpulssignals (DSTBn#) ebenfalls auf der Anzahl Datensignalleitungen (826) überträgt; und eine Adressübertragungslogik (906), die Adresselemente synchronisiert zu einer ersten Flanke des ersten Adressimpulses (ADSTB) auf einer Anzahl Adresssignalleitungen (926) des Busses überträgt, und die Adresselemente synchronisiert zu einer zweiten Flanke des ersten Adressimpulses (ADSTB) ebenfalls auf einer Anzahl Adresssignalleitungen (926) überträgt.
  2. Vorrichtung nach Anspruch 1, worin die Adressübertragungslogik dazu dient, Anforderungselemente synchronisiert zu einer ersten Flanke des ersten Adressimpulses (ADSTB) auf einer Anzahl Anforderungssignalleitungen zu übertragen, und dazu, Elemente synchronisiert zu einer zweiten Flanke des ersten Adressimpulses (ADSTB) ebenfalls auf der Anzahl Anforderungssignalleitungen anzufordern.
  3. Vorrichtung nach Anspruch 2, wobei die Vorrichtung so betreibbar ist, dass sie ein Paar Impulse für jeweils sechzehn Datensignalleitungen (826) liefert, und dass sie zwei Adressimpulse (ADSTB) liefert, und zwar einen Adressimpuls für jede der beiden Untermengen der Anzahl Adresssignalleitungen (926) und der Anzahl Anforderungssignalleitungen.
  4. Vorrichtung nach Anspruch 1 oder 2, wobei die erste Flanke des ersten Datenimpulses (DSTBp#) eine fallende Flanke ist, und die erste Flanke des zweiten Datenimpulses (DSTBn#) eine fallende Flanke ist.
  5. Vorrichtung nach Anspruch 1 oder 4, wobei die Vorrichtung so betreibbar ist, dass sie Steuersignale auf Steuersignalleitungen treibt und dass sie mit Hilfe eines gemeinsamen Taktprotokolls kommuniziert.
  6. Vorrichtung nach Anspruch 2, wobei der erste Adressimpuls (ADSTB) zwei im Wesentlichen identische Adressimpulse umfasst.
  7. Vorrichtung nach Anspruch 6, wobei ein erster Impuls der zwei im Wesentlichen identischen Adressimpulse synchronisiert zu einer ersten Untermenge der Anzahl Adresssignalleitungen (926) und der Anzahl Anforderungssignalleitungen übertragen wird, und wobei ein zweiter Impuls der zwei im Wesentlichen identischen Adressimpulse synchronisiert zu einer zweiten Untermenge der Anzahl Adressschnittstellen und der Anzahl Anforderungsschnittstellen übertragen wird, und die zweite Untermenge aus den verbleibenden Leitungen der Anzahl Adresssignalleitungen (926) und der Anzahl Anforderungssignalleitungen besteht, die sich nicht in der ersten Untermenge befinden.
  8. Vorrichtung nach Anspruch 2, zudem umfassend: eine Datenimpuls-Empfangslogik, die ein drittes Datenimpulssignal und ein viertes Datenimpulssignal auf der ersten Datenimpuls-Signalleitung (820) und der zweiten Datenimpuls-Signalleitung (822) empfängt, wobei das dritte Datenimpulssignal und das vierte Datenimpulssignal als Datenimpulsfrequenz die doppelte Bustaktfrequenz aufweisen; eine Adressimpuls-Empfangslogik, die einen zweiten Adressimpuls (ADSTB) auf der Adressimpuls-Signalleitung (920) empfängt, dessen Adressimpulsfrequenz gleich der Bustaktfrequenz ist; eine Datenempfangslogik, die Datenelemente synchronisiert zu einer ersten Flanke des dritten Datenimpulssignals auf der Anzahl Datensignalleitungen (826) empfängt, und die Datenelemente synchronisiert zu einer ersten Flanke des vierten Datenimpulssignals ebenfalls auf der Anzahl Datensignalleitungen (826) empfängt; und eine Adressempfangslogik, die Adresselemente synchronisiert zu einer ersten Flanke des zweiten Adressimpulses auf der Anzahl Adresssignalleitungen (926) empfängt, und die Adresselemente synchronisiert zu einer zweiten Flanke des zweiten Adressimpulses ebenfalls auf der Anzahl Adresssignalleitungen (926) empfängt.
  9. Vorrichtung nach Anspruch 1 oder 8, wobei die Vorrichtung irgendeine Vorrichtung oder eine Menge von Vorrichtungen ist, die besteht aus: einem Chipsatz; einem Prozessor; einem Speichercontroller; einem zentralen Agenten; einem Ein/Ausgabe-Agenten.
  10. Vorrichtung nach irgendeinem vorhergehenden Anspruch, wobei die erste Vielfache den Wert zwei hat und wobei die Adressimpulsfrequenz gleich der Bustaktfrequenz ist.
  11. Vorrichtung nach Anspruch 5, wobei die Anzahl Steuersignale umfasst: ADS#; BNR#; BPRI#; mindestens ein Busanforderungssignal; DBSY#; DEFER#; DP[3:0]#; DRDY#; HIT#; HITM#; INIT#; TRDY#.
  12. Vorrichtung nach irgendeinem der Ansprüche 1 bis 5, 7 oder 10, wobei die Vorrichtung ein System enthält, das zudem einen zweiten Busagenten (832) enthält, und der zweite Busagent (832) umfasst: einen zweiten Datentransceiver (836); einen zweiten Adresstransceiver (936); dass der zweite Busagent (832) so betreibbar ist, dass er das Bustaktsignal empfängt; eine Datenimpuls-Empfangslogik, die das erste Datenimpulssignal (DSTBp#) und das zweite Datenimpulssignal (DSTBn#) empfängt; eine Adressimpuls-Empfangslogik, die den ersten Adressimpuls (ADSTB) empfängt; eine Datenempfangslogik, die Datenelemente synchronisiert zur ersten Flanke des ersten Datenimpulssignals (DSTBp#) auf einer zweiten Anzahl Datensignalleitungen (820) empfängt, und die Datenelemente synchronisiert zur ersten Flanke des zweiten Datenimpulssignals (DSTBn#) ebenfalls auf der zweiten Anzahl Datensignalleitungen (822) empfängt; und eine Adressempfangslogik, die Adresselemente synchronisiert zur ersten Flanke des ersten Adressimpulses (ADSTB) auf einer zweiten Anzahl Adresssignalleitungen (920) empfängt, und die Adresselemente synchronisiert zu einer zweiten Flanke des ersten Adressimpulses (ADSTB) ebenfalls auf der zweiten Anzahl Adresssignalleitungen (920) empfängt.
  13. Vorrichtung nach Anspruch 12, wobei die Adressempfangslogik dazu dient, Anforderungselemente synchronisiert zur ersten Flanke des ersten Adressimpulses (ADSTB) auf einer zweiten Anzahl Anforderungssignalleitungen zu empfangen, und sie Anforderungselemente synchronisiert zu einer zweiten Flanke des ersten Adressimpulses (ADSTB) ebenfalls auf der zweiten Anzahl Anforderungssignalleitungen empfängt.
  14. Verfahren zum Steuern der Vorrichtung nach Anspruch 1, umfassend: das Bereitstellen einer Anzahl komplementärer Impulssignalpaare (DSTBp#, DSTBn#) in einer Datenphase; das Bereitstellen von vier Datenelementen je Bustaktzyklus übertragen in einer zur Quelle synchronisierten Weise in Verbindung mit der Anzahl komplementärer Impulssignalpaare (DSTBp#, DSTBn#); das Bereitstellen einer Anzahl Adressimpulse (ADSTB); und das Bereitstellen von zwei Anforderungselementen und zwei Adresselementen je Bustaktzyklus übertragen in einer zur Quelle synchronisierten Weise in Verbindung mit der Anzahl Adressimpulse (ADSTB).
  15. Verfahren nach Anspruch 14, wobei das Bereitstellen von vier Datenelementen umfasst: das Bereitstellen eines ersten Datenelements synchronisiert zu einer ersten Flanke einer ersten Art eines ersten Signals (DSTBp#) eines Paars Datenimpulssignale (DSTBp#, DSTBn#); das Bereitstellen eines zweiten Datenelements synchronisiert zu einer ersten Flanke der ersten Art eines zweiten Signals (DSTBn#) des Paars Datenimpulssignale (DSTBp#, DSTBn#); das Bereitstellen eines dritten Datenelements synchronisiert zu einer zweiten Flanke der ersten Art des ersten Signals (DSTBp#) des Paars Datenimpulssignale (DSTBp#, DSTBn#); und das Bereitstellen eines vierten Datenelements synchronisiert zu einer zweiten Flanke der ersten Art des zweiten Signals (DSTBn#) des Paars Datenimpulssignale (DSTBp#, DSTBn#).
  16. Verfahren nach Anspruch 15, wobei die erste Flankenart eine fallende Flanke ist.
  17. Verfahren nach Anspruch 15, wobei das Bereitstellen von zwei Anforderungselementen und zwei Adresselementen umfasst: das Bereitstellen eines ersten Adresselements und eines ersten Anforderungselements synchronisiert zu einer ersten Flanke mindestens eines Impulses der Anzahl Adressimpulse (ADSTB); und das Bereitstellen eines zweiten Adresselements und eines zweiten Anforderungselements synchronisiert zu einer zweiten Flanke der ersten Art eines zweiten Signals (DSTBn#) des Paars Datenimpulssignale (DSTBp#, DSTBn#).
  18. Verfahren nach Anspruch 17, wobei die erste Flanke die fallende Flanke eines Adressimpulses ist, und die zweite Flanke die ansteigende Flanke eines Adressimpulses ist.
DE60037036T 1999-12-29 2000-12-29 Vier-gepumpte busarchitektur-/protokoll Expired - Lifetime DE60037036T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/474,058 US6609171B1 (en) 1999-12-29 1999-12-29 Quad pumped bus architecture and protocol
US474058 1999-12-29
PCT/US2000/035520 WO2001048621A1 (en) 1999-12-29 2000-12-29 Quad pumped bus architecture and protocol

Publications (2)

Publication Number Publication Date
DE60037036D1 DE60037036D1 (de) 2007-12-20
DE60037036T2 true DE60037036T2 (de) 2008-08-21

Family

ID=23882019

Family Applications (2)

Application Number Title Priority Date Filing Date
DE10085385T Expired - Fee Related DE10085385B3 (de) 1999-12-29 2000-12-29 Vierfach gepumpte Bus-Architektur und Protokoll
DE60037036T Expired - Lifetime DE60037036T2 (de) 1999-12-29 2000-12-29 Vier-gepumpte busarchitektur-/protokoll

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE10085385T Expired - Fee Related DE10085385B3 (de) 1999-12-29 2000-12-29 Vierfach gepumpte Bus-Architektur und Protokoll

Country Status (16)

Country Link
US (6) US6609171B1 (de)
EP (2) EP1881414A3 (de)
JP (1) JP4194274B2 (de)
KR (1) KR100565101B1 (de)
CN (4) CN1900924B (de)
AT (1) ATE377797T1 (de)
AU (1) AU2463101A (de)
BR (1) BRPI0016834B1 (de)
DE (2) DE10085385B3 (de)
GB (1) GB2374264B (de)
HK (1) HK1046964B (de)
RU (1) RU2271566C2 (de)
SG (2) SG123610A1 (de)
TW (1) TW559704B (de)
WO (1) WO2001048621A1 (de)
ZA (1) ZA200203946B (de)

Families Citing this family (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6609171B1 (en) * 1999-12-29 2003-08-19 Intel Corporation Quad pumped bus architecture and protocol
US6965648B1 (en) * 2000-05-04 2005-11-15 Sun Microsystems, Inc. Source synchronous link integrity validation
US6745268B1 (en) * 2000-08-11 2004-06-01 Micron Technology, Lnc. Capacitive multidrop bus compensation
US6816932B2 (en) * 2000-10-06 2004-11-09 Broadcom Corporation Bus precharge during a phase of a clock signal to eliminate idle clock cycle
US6678767B1 (en) * 2000-10-06 2004-01-13 Broadcom Corp Bus sampling on one edge of a clock signal and driving on another edge
US6901475B2 (en) * 2000-12-07 2005-05-31 Micron Technology, Inc. Link bus for a hub based computer architecture
US6993612B2 (en) * 2000-12-07 2006-01-31 Micron Technology, Inc. Arbitration method for a source strobed bus
US7676588B2 (en) * 2001-10-05 2010-03-09 International Business Machines Corporation Programmable network protocol handler architecture
EP1316891B1 (de) * 2001-12-03 2007-10-10 Infineon Technologies AG Datenübertragungseinrichtung
US7000065B2 (en) * 2002-01-02 2006-02-14 Intel Corporation Method and apparatus for reducing power consumption in a memory bus interface by selectively disabling and enabling sense amplifiers
US6983348B2 (en) * 2002-01-24 2006-01-03 Intel Corporation Methods and apparatus for cache intervention
US7085889B2 (en) * 2002-03-22 2006-08-01 Intel Corporation Use of a context identifier in a cache memory
EP1512079B1 (de) * 2002-05-24 2019-02-27 Intel Corporation Pseudo-multiport datenspeicher mit haltfunktion
AU2003240948A1 (en) * 2002-05-28 2003-12-12 Cadence Design Systems, Inc. Assertion-based transaction recording
TWI282513B (en) * 2002-06-12 2007-06-11 Mediatek Inc A pre-fetch device of instruction for an embedded system
TW579467B (en) * 2002-07-24 2004-03-11 Via Tech Inc Method for blocking request to bus
US7234034B2 (en) * 2002-09-16 2007-06-19 Texas Instruments Incorporated Self-clocking memory device
US7200730B2 (en) * 2002-09-16 2007-04-03 Texas Instruments Incorporated Method of operating a memory at high speed using a cycle ready status output signal
US6956789B2 (en) * 2002-09-16 2005-10-18 Texas Instruments Incorporated Cycle ready circuit for self-clocking memory device
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US7051229B2 (en) * 2002-12-03 2006-05-23 Alcatel Canada Inc. Logical bus overlay for increasing the existing system bus data rate
US20040128416A1 (en) * 2002-12-11 2004-07-01 Tsvika Kurts Apparatus and method for address bus power control
US7152167B2 (en) * 2002-12-11 2006-12-19 Intel Corporation Apparatus and method for data bus power control
US7216240B2 (en) * 2002-12-11 2007-05-08 Intel Corporation Apparatus and method for address bus power control
US20040117708A1 (en) * 2002-12-16 2004-06-17 Ellis David G. Pre-announce signaling for interconnect built-in self test
US6922769B2 (en) * 2002-12-23 2005-07-26 Intel Corporation Apparatus and method for reduction of power consumption in OS that use flat segmentation memory model
US20040153611A1 (en) * 2003-02-04 2004-08-05 Sujat Jamil Methods and apparatus for detecting an address conflict
US7054988B2 (en) * 2003-04-17 2006-05-30 Lsi Logic Corporation Bus interface for processor
US7478025B1 (en) * 2003-04-18 2009-01-13 Unisys Corporation System and method to support dynamic partitioning of units to a shared resource
US20040230188A1 (en) * 2003-05-12 2004-11-18 Iulian Cioanta Treatment catheters with thermally insulated regions
US7287126B2 (en) * 2003-07-30 2007-10-23 Intel Corporation Methods and apparatus for maintaining cache coherency
US9087036B1 (en) 2004-08-12 2015-07-21 Sonics, Inc. Methods and apparatuses for time annotated transaction level modeling
US8504992B2 (en) * 2003-10-31 2013-08-06 Sonics, Inc. Method and apparatus for establishing a quality of service model
US7665069B2 (en) * 2003-10-31 2010-02-16 Sonics, Inc. Method and apparatus for establishing a quality of service model
US7113000B2 (en) * 2003-12-10 2006-09-26 Hewlett-Packard Development Company, L.P. Bus agent having multiple reference levels
US7178048B2 (en) * 2003-12-23 2007-02-13 Hewlett-Packard Development Company, L.P. System and method for signal synchronization based on plural clock signals
US7057414B2 (en) * 2004-01-07 2006-06-06 International Business Machines Corporation Avoiding oscillation in self-synchronous bi-directional communication system
US20050262376A1 (en) * 2004-05-21 2005-11-24 Mcbain Richard A Method and apparatus for bussed communications
US7539800B2 (en) * 2004-07-30 2009-05-26 International Business Machines Corporation System, method and storage medium for providing segment level sparing
US20060036826A1 (en) * 2004-07-30 2006-02-16 International Business Machines Corporation System, method and storage medium for providing a bus speed multiplier
US7296129B2 (en) * 2004-07-30 2007-11-13 International Business Machines Corporation System, method and storage medium for providing a serialized memory interface with a bus repeater
US7224595B2 (en) * 2004-07-30 2007-05-29 International Business Machines Corporation 276-Pin buffered memory module with enhanced fault tolerance
US7389375B2 (en) * 2004-07-30 2008-06-17 International Business Machines Corporation System, method and storage medium for a multi-mode memory buffer device
US20060075164A1 (en) * 2004-09-22 2006-04-06 Ooi Eng H Method and apparatus for using advanced host controller interface to transfer data
US7512762B2 (en) 2004-10-29 2009-03-31 International Business Machines Corporation System, method and storage medium for a memory subsystem with positional read data latency
US7331010B2 (en) * 2004-10-29 2008-02-12 International Business Machines Corporation System, method and storage medium for providing fault detection and correction in a memory subsystem
US7277988B2 (en) * 2004-10-29 2007-10-02 International Business Machines Corporation System, method and storage medium for providing data caching and data compression in a memory subsystem
US7395476B2 (en) * 2004-10-29 2008-07-01 International Business Machines Corporation System, method and storage medium for providing a high speed test interface to a memory subsystem
US7305574B2 (en) * 2004-10-29 2007-12-04 International Business Machines Corporation System, method and storage medium for bus calibration in a memory subsystem
US7299313B2 (en) 2004-10-29 2007-11-20 International Business Machines Corporation System, method and storage medium for a memory subsystem command interface
US7441060B2 (en) * 2004-10-29 2008-10-21 International Business Machines Corporation System, method and storage medium for providing a service interface to a memory system
US7356737B2 (en) * 2004-10-29 2008-04-08 International Business Machines Corporation System, method and storage medium for testing a memory module
TWI256558B (en) * 2004-11-02 2006-06-11 Via Tech Inc Method for coordinating bus data transmission specification and CPU and bridge chip used in the same
TWI268427B (en) * 2004-11-02 2006-12-11 Via Tech Inc Coordinating method of bus data transmission specification
TWI304935B (en) * 2004-11-02 2009-01-01 Via Tech Inc Method for determining data transmission specification and combination of bridge chipset and memory used in the same
US20060161743A1 (en) * 2005-01-18 2006-07-20 Khaled Fekih-Romdhane Intelligent memory array switching logic
US20060171233A1 (en) * 2005-01-18 2006-08-03 Khaled Fekih-Romdhane Near pad ordering logic
US7340568B2 (en) * 2005-02-11 2008-03-04 International Business Machines Corporation Reducing number of rejected snoop requests by extending time to respond to snoop request
KR100606244B1 (ko) * 2005-02-11 2006-07-28 삼성전자주식회사 데이터 스트로브 신호에 동기 되어 전송되는 데이터의 캡쳐 방법 및 이를 위한 데이터 캡쳐 회로
US7529955B2 (en) * 2005-06-30 2009-05-05 Intel Corporation Dynamic bus parking
US7457901B2 (en) * 2005-07-05 2008-11-25 Via Technologies, Inc. Microprocessor apparatus and method for enabling variable width data transfers
US7543094B2 (en) * 2005-07-05 2009-06-02 Via Technologies, Inc. Target readiness protocol for contiguous write
CN100461142C (zh) * 2005-07-05 2009-02-11 威盛电子股份有限公司 微处理器、处理器总线系统、及执行稀疏写入处理的方法
US7441064B2 (en) * 2005-07-11 2008-10-21 Via Technologies, Inc. Flexible width data protocol
US7502880B2 (en) * 2005-07-11 2009-03-10 Via Technologies, Inc. Apparatus and method for quad-pumped address bus
US7444472B2 (en) * 2005-07-19 2008-10-28 Via Technologies, Inc. Apparatus and method for writing a sparsely populated cache line to memory
CN100435123C (zh) * 2005-07-19 2008-11-19 威盛电子股份有限公司 用于稀疏线写操作的装置和方法
US7590787B2 (en) * 2005-07-19 2009-09-15 Via Technologies, Inc. Apparatus and method for ordering transaction beats in a data transfer
US7444448B2 (en) 2005-08-03 2008-10-28 Via Technologies, Inc. Data bus mechanism for dynamic source synchronized sampling adjust
US7634609B2 (en) * 2005-09-29 2009-12-15 Via Technologies, Inc. Data transmission coordinating method
US20070073977A1 (en) * 2005-09-29 2007-03-29 Safranek Robert J Early global observation point for a uniprocessor system
US7757031B2 (en) * 2005-10-24 2010-07-13 Via Technologies, Inc. Data transmission coordinating method and system
US7478259B2 (en) 2005-10-31 2009-01-13 International Business Machines Corporation System, method and storage medium for deriving clocks in a memory system
US7685392B2 (en) * 2005-11-28 2010-03-23 International Business Machines Corporation Providing indeterminate read data latency in a memory system
US7636813B2 (en) * 2006-05-22 2009-12-22 International Business Machines Corporation Systems and methods for providing remote pre-fetch buffers
US7594055B2 (en) * 2006-05-24 2009-09-22 International Business Machines Corporation Systems and methods for providing distributed technology independent memory controllers
US7584336B2 (en) * 2006-06-08 2009-09-01 International Business Machines Corporation Systems and methods for providing data modification operations in memory subsystems
US7669086B2 (en) 2006-08-02 2010-02-23 International Business Machines Corporation Systems and methods for providing collision detection in a memory system
US7581073B2 (en) * 2006-08-09 2009-08-25 International Business Machines Corporation Systems and methods for providing distributed autonomous power management in a memory system
US20080062892A1 (en) * 2006-09-07 2008-03-13 Honeywell International Inc. High speed bus protocol with programmable scheduler
US7870459B2 (en) 2006-10-23 2011-01-11 International Business Machines Corporation High density high reliability memory module with power gating and a fault tolerant address and command bus
US7477522B2 (en) * 2006-10-23 2009-01-13 International Business Machines Corporation High density high reliability memory module with a fault tolerant address and command bus
US8868397B2 (en) * 2006-11-20 2014-10-21 Sonics, Inc. Transaction co-validation across abstraction layers
KR20080047027A (ko) * 2006-11-24 2008-05-28 주식회사 하이닉스반도체 반도체 메모리 장치 및 그 구동 방법
KR100903381B1 (ko) * 2006-11-24 2009-06-23 주식회사 하이닉스반도체 반도체 메모리 장치 및 그의 구동 방법
KR100915811B1 (ko) * 2006-12-07 2009-09-07 주식회사 하이닉스반도체 반도체 메모리 장치의 데이터 입출력 제어 신호 생성 회로
US7721140B2 (en) 2007-01-02 2010-05-18 International Business Machines Corporation Systems and methods for improving serviceability of a memory system
US7603526B2 (en) * 2007-01-29 2009-10-13 International Business Machines Corporation Systems and methods for providing dynamic memory pre-fetch
US20090132747A1 (en) * 2007-11-19 2009-05-21 International Business Machines Corporation Structure for universal peripheral processor system for soc environments on an integrated circuit
US8139697B2 (en) * 2008-01-29 2012-03-20 United Microelectronics Corp. Sampling method and data recovery circuit using the same
US8020167B2 (en) * 2008-05-05 2011-09-13 Dell Products L.P. System and method for automatic throttling of resources in an information handling system chassis
KR101642833B1 (ko) * 2010-02-05 2016-07-26 삼성전자주식회사 클럭 임베디드 인터페이스 방법, 그 방법을 이용하는 송수신기 및 디스플레이 장치
JP5761331B2 (ja) * 2011-03-22 2015-08-12 富士通株式会社 入出力制御装置,情報処理システム,及びログ採取プログラム
US8312176B1 (en) * 2011-06-30 2012-11-13 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8683096B2 (en) * 2012-06-27 2014-03-25 Intel Corporation Configuration of data strobes
US9525621B2 (en) * 2012-08-29 2016-12-20 Marvell World Trade Ltd. Semaphore soft and hard hybrid architecture
US9755818B2 (en) * 2013-10-03 2017-09-05 Qualcomm Incorporated Method to enhance MIPI D-PHY link rate with minimal PHY changes and no protocol changes
CN105390982B (zh) * 2015-11-24 2018-07-17 国家电网公司 基于仿生视觉分析的输电设备总线型评价系统

Family Cites Families (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4763243A (en) * 1984-06-21 1988-08-09 Honeywell Bull Inc. Resilient bus system
US4858173A (en) * 1986-01-29 1989-08-15 Digital Equipment Corporation Apparatus and method for responding to an aborted signal exchange between subsystems in a data processing system
JPS62280948A (ja) * 1986-05-29 1987-12-05 Fanuc Ltd バス調停方式
US5341487A (en) * 1991-12-20 1994-08-23 International Business Machines Corp. Personal computer having memory system with write-through cache and pipelined snoop cycles
US5280587A (en) * 1992-03-31 1994-01-18 Vlsi Technology, Inc. Computer system in which a bus controller varies data transfer rate over a bus based on a value of a subset of address bits and on a stored value
US5469547A (en) * 1992-07-17 1995-11-21 Digital Equipment Corporation Asynchronous bus interface for generating individual handshake signal for each data transfer based on associated propagation delay within a transaction
JP3369227B2 (ja) * 1992-11-09 2003-01-20 株式会社東芝 プロセッサ
TW255022B (de) 1993-06-30 1995-08-21 Intel Corp
US5615343A (en) 1993-06-30 1997-03-25 Intel Corporation Method and apparatus for performing deferred transactions
US5568620A (en) 1993-06-30 1996-10-22 Intel Corporation Method and apparatus for performing bus transactions in a computer system
TW400483B (en) 1994-03-01 2000-08-01 Intel Corp High performance symmetric arbitration protocol with support for I/O requirements
US5784579A (en) * 1994-03-01 1998-07-21 Intel Corporation Method and apparatus for dynamically controlling bus access from a bus agent based on bus pipeline depth
US5572703A (en) * 1994-03-01 1996-11-05 Intel Corporation Method and apparatus for snoop stretching using signals that convey snoop results
US5548733A (en) 1994-03-01 1996-08-20 Intel Corporation Method and apparatus for dynamically controlling the current maximum depth of a pipe lined computer bus system
US5550988A (en) * 1994-03-01 1996-08-27 Intel Corporation Apparatus and method for performing error correction in a multi-processor system
GB2318487B (en) 1994-03-01 1998-12-16 Intel Corp High performance symmetric arbitration protocol with support for I/O requirements
BR9506997A (pt) * 1994-03-01 1997-11-18 Intel Corp Arquitetura de barramento altamente canalizada
US5535340A (en) * 1994-05-20 1996-07-09 Intel Corporation Method and apparatus for maintaining transaction ordering and supporting deferred replies in a bus bridge
US6029217A (en) * 1994-10-03 2000-02-22 International Business Machines Corporation Queued arbitration mechanism for data processing system
US5596729A (en) * 1995-03-03 1997-01-21 Compaq Computer Corporation First arbiter coupled to a first bus receiving requests from devices coupled to a second bus and controlled by a second arbiter on said second bus
US5925099A (en) * 1995-06-15 1999-07-20 Intel Corporation Method and apparatus for transporting messages between processors in a multiple processor system
US5710906A (en) * 1995-07-07 1998-01-20 Opti Inc. Predictive snooping of cache memory for master-initiated accesses
KR0164395B1 (ko) * 1995-09-11 1999-02-18 김광호 반도체 메모리 장치와 그 리이드 및 라이트 방법
US5696910A (en) * 1995-09-26 1997-12-09 Intel Corporation Method and apparatus for tracking transactions in a pipelined bus
US5948094A (en) 1995-09-29 1999-09-07 Intel Corporation Method and apparatus for executing multiple transactions within a single arbitration cycle
US5812803A (en) * 1995-09-29 1998-09-22 Intel Corporation Method and apparatus for controlling data transfers between a bus and a memory device using a multi-chip memory controller
US5778438A (en) * 1995-12-06 1998-07-07 Intel Corporation Method and apparatus for maintaining cache coherency in a computer system with a highly pipelined bus and multiple conflicting snoop requests
US5838995A (en) * 1995-12-18 1998-11-17 International Business Machines Corporation System and method for high frequency operation of I/O bus
US5802132A (en) * 1995-12-29 1998-09-01 Intel Corporation Apparatus for generating bus clock signals with a 1/N characteristic in a 2/N mode clocking scheme
EP0882266A1 (de) * 1996-02-20 1998-12-09 Intergraph Corporation Hochverfügbarer superserver
JP3643425B2 (ja) * 1996-02-29 2005-04-27 富士通株式会社 データ処理方法、データ処理装置及びインターフェイスコントローラ
AU3587097A (en) * 1996-09-06 1998-03-26 Intel Corporation A data flow control mechanism for a bus supporting two-and three-agent transactions
US5867728A (en) * 1996-12-17 1999-02-02 Compaq Computer Corp. Preventing corruption in a multiple processor computer system during a peripheral device configuration cycle
US6012118A (en) 1996-12-30 2000-01-04 Intel Corporation Method and apparatus for performing bus operations in a computer system using deferred replies returned without using the address bus
US5870567A (en) * 1996-12-31 1999-02-09 Compaq Computer Corporation Delayed transaction protocol for computer system bus
US6065101A (en) * 1997-06-12 2000-05-16 International Business Machines Corporation Pipelined snooping of multiple L1 cache lines
US6336159B1 (en) 1997-06-25 2002-01-01 Intel Corporation Method and apparatus for transferring data in source-synchronous protocol and transferring signals in common clock protocol in multiple agent processing system
US5919254A (en) * 1997-06-25 1999-07-06 Intel Corporation Method and apparatus for switching between source-synchronous and common clock data transfer modes in a multiple processing system
US5991855A (en) * 1997-07-02 1999-11-23 Micron Electronics, Inc. Low latency memory read with concurrent pipe lined snoops
US5978869A (en) 1997-07-21 1999-11-02 International Business Machines Corporation Enhanced dual speed bus computer system
US6108736A (en) * 1997-09-22 2000-08-22 Intel Corporation System and method of flow control for a high speed bus
US5964856A (en) * 1997-09-30 1999-10-12 Intel Corporation Mechanism for data strobe pre-driving during master changeover on a parallel bus
US6260091B1 (en) * 1997-10-20 2001-07-10 Intel Corporation Method and apparatus for performing out-of-order bus operations in which an agent only arbitrates for use of a data bus to send data with a deferred reply
US6092156A (en) 1997-11-05 2000-07-18 Unisys Corporation System and method for avoiding deadlocks utilizing split lock operations to provide exclusive access to memory during non-atomic operations
KR100255664B1 (ko) 1997-12-29 2000-05-01 윤종용 반도체 집적회로의 클락 포워딩 회로 및 클락포워딩 방법
US6006291A (en) * 1997-12-31 1999-12-21 Intel Corporation High-throughput interface between a system memory controller and a peripheral device
US6041380A (en) * 1998-01-21 2000-03-21 Micron Electronics, Inc. Method for increasing the number of devices capable of being operably connected to a host bus
US6223238B1 (en) * 1998-03-31 2001-04-24 Micron Electronics, Inc. Method of peer-to-peer mastering over a computer bus
US6172937B1 (en) * 1998-05-13 2001-01-09 Intel Corporation Multiple synthesizer based timing signal generation scheme
US6108721A (en) * 1998-06-29 2000-08-22 Hewlett-Packard Company Method and apparatus for ensuring data consistency between an i/o channel and a processor
US6275890B1 (en) * 1998-08-19 2001-08-14 International Business Machines Corporation Low latency data path in a cross-bar switch providing dynamically prioritized bus arbitration
US6205506B1 (en) * 1998-08-25 2001-03-20 Stmicroelectronics, Inc. Bus interface unit having multipurpose transaction buffer
US6449677B1 (en) * 1998-09-03 2002-09-10 Compaq Information Technologies Group, L.P. Method and apparatus for multiplexing and demultiplexing addresses of registered peripheral interconnect apparatus
US6102118A (en) * 1998-12-30 2000-08-15 Moore; Curt A. Multi-purpose adjustable centralizer system with tool
TW514788B (en) * 1999-04-23 2002-12-21 Via Tech Inc Method of delayed transaction in bus system and device using the method
US6272604B1 (en) * 1999-05-20 2001-08-07 International Business Machines Corporation Contingent response apparatus and method for maintaining cache coherency
US6487621B1 (en) * 1999-08-17 2002-11-26 Compaq Information Technologies Group, L.P. Architecture, system and method for ensuring an ordered transaction on at least one of a plurality of multi-processor buses that experience a hit-to-modified snoop cycle
US6615323B1 (en) * 1999-09-02 2003-09-02 Thomas Albert Petersen Optimizing pipelined snoop processing
US6591321B1 (en) * 1999-11-09 2003-07-08 International Business Machines Corporation Multiprocessor system bus protocol with group addresses, responses, and priorities
US6609171B1 (en) * 1999-12-29 2003-08-19 Intel Corporation Quad pumped bus architecture and protocol
US6681293B1 (en) * 2000-08-25 2004-01-20 Silicon Graphics, Inc. Method and cache-coherence system allowing purging of mid-level cache entries without purging lower-level cache entries
US6901475B2 (en) * 2000-12-07 2005-05-31 Micron Technology, Inc. Link bus for a hub based computer architecture
US6651122B2 (en) * 2000-12-07 2003-11-18 Micron Technology, Inc. Method of detecting a source strobe event using change detection

Also Published As

Publication number Publication date
DE60037036D1 (de) 2007-12-20
US20020147875A1 (en) 2002-10-10
CN1558337A (zh) 2004-12-29
GB2374264B (en) 2004-04-07
BRPI0016834B1 (pt) 2015-08-11
US20020038397A1 (en) 2002-03-28
CN1815463B (zh) 2014-03-05
CN1230762C (zh) 2005-12-07
US6807592B2 (en) 2004-10-19
TW559704B (en) 2003-11-01
CN1415095A (zh) 2003-04-30
DE10085385T1 (de) 2002-12-19
SG123609A1 (en) 2006-07-26
CN1900924A (zh) 2007-01-24
SG123610A1 (en) 2006-07-26
ATE377797T1 (de) 2007-11-15
US20020029307A1 (en) 2002-03-07
JP4194274B2 (ja) 2008-12-10
KR20020089308A (ko) 2002-11-29
US20010037421A1 (en) 2001-11-01
GB0216035D0 (en) 2002-08-21
US6804735B2 (en) 2004-10-12
EP1881414A2 (de) 2008-01-23
BR0016834A (pt) 2002-09-10
GB2374264A (en) 2002-10-09
EP1242898A1 (de) 2002-09-25
CN1900924B (zh) 2010-05-12
KR100565101B1 (ko) 2006-03-30
US6601121B2 (en) 2003-07-29
ZA200203946B (en) 2003-01-02
CN1815463A (zh) 2006-08-09
CN100375075C (zh) 2008-03-12
AU2463101A (en) 2001-07-09
RU2271566C2 (ru) 2006-03-10
HK1046964A1 (en) 2003-01-30
EP1242898B1 (de) 2007-11-07
US6907487B2 (en) 2005-06-14
US20010037424A1 (en) 2001-11-01
EP1881414A3 (de) 2008-07-30
US6609171B1 (en) 2003-08-19
US6880031B2 (en) 2005-04-12
RU2002120499A (ru) 2004-03-10
WO2001048621A1 (en) 2001-07-05
DE10085385B3 (de) 2011-12-08
JP2003518693A (ja) 2003-06-10
HK1046964B (zh) 2004-07-23

Similar Documents

Publication Publication Date Title
DE60037036T2 (de) Vier-gepumpte busarchitektur-/protokoll
DE69531933T2 (de) Busarchitektur in hochgradiger pipeline-ausführung
DE69936060T2 (de) Verfahren und Vorrichtung für eine verbesserte Schnittstelle zwischen Computerkomponenten
DE60013470T2 (de) Gerät zur initialisierung einer rechnerschnittstelle
DE19580990C2 (de) Verfahren und Einrichtung zum Ausführen verzögerter Transaktionen
DE69533599T2 (de) Leistungssteuerung in einem asynchronen Sender/Empfänger
DE19882418B4 (de) System einer quellensynchronen Schnittstelle zwischen Master- und Slave-Einrichtungen und zugehöriges Verfahren
DE69636452T2 (de) Mehrprozessor-cachespeicherkohärenzprotokoll für einen lokalbus
DE60125112T2 (de) PCI-Arbiter mit unter Spannung stellbarer Steuerungsunterstützung
DE69733384T2 (de) Prozessoruntersystem für den Gebrauch mit einer universellen Rechnerarchitektur
DE69727856T2 (de) Multiprozessorsystem mit Konsistenzfehler-Registrierung mit entsprechendem Verfahren
DE3909948C2 (de)
DE60313323T2 (de) Dram, der zugriffe verschiedener burst-länge unterstützt, ohne die burst-längeneinstellung im modusregister zu verändern
DE3704056A1 (de) Peripherer dma-controller fuer datenerfassungssysteme
DE2854485A1 (de) Datenverarbeitungssystem mit speicherhierarchie
DE69726302T2 (de) Busschnittstellensteuerungsschaltung
DE60304455T2 (de) Usb host controller
DE4018481C2 (de)
DE69822866T2 (de) System und verfahren zum beenden von lock-step-sequenzen in einem multiprozessorsystem
DE10234990B4 (de) Hostcontroller, Verfahren zum Betreiben, zugehöriges Southbridgebauelement und Computersystem zur Steuerung der Ersetzung im voraus geholter Deskriptoren in einem Cache
DE60017774T2 (de) Verfahren und vorrichtung zur unterstützung von mehrtaktübertragung in einem rechnersystem mit einer punkt-zu-punkt halb-duplex verbindung
DE60130300T2 (de) Bus, der auf einer Flanke eines Taktsignals abtastet und auf der anderen Flanke treibt
DE60217408T2 (de) Informationsaustausch zwischen lokal synchronen schaltungen
DE60028992T2 (de) Leistungssteuerungsverfahren für ein rechnersystem mit einer knotenpunktarchitektur
DE10061770B4 (de) Zugriffsregelung für Steuerchipsätzen bei Bustransaktion

Legal Events

Date Code Title Description
8364 No opposition during term of opposition