DE69634358T2 - Verzögerungsverringerung in der übertragung von gepufferten daten zwischenzwei gegenseitig asynchronen bussen - Google Patents

Verzögerungsverringerung in der übertragung von gepufferten daten zwischenzwei gegenseitig asynchronen bussen Download PDF

Info

Publication number
DE69634358T2
DE69634358T2 DE69634358T DE69634358T DE69634358T2 DE 69634358 T2 DE69634358 T2 DE 69634358T2 DE 69634358 T DE69634358 T DE 69634358T DE 69634358 T DE69634358 T DE 69634358T DE 69634358 T2 DE69634358 T2 DE 69634358T2
Authority
DE
Germany
Prior art keywords
data
flag
bus
data valid
valid flag
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
DE69634358T
Other languages
English (en)
Other versions
DE69634358D1 (de
Inventor
Randall L. Mote
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE69634358D1 publication Critical patent/DE69634358D1/de
Application granted granted Critical
Publication of DE69634358T2 publication Critical patent/DE69634358T2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft Computersysteme im allgemeinen und betrifft insbesondere digitale Teilsysteme, die die Datenübertragung von einem synchronen Datenbus zu einem anderen synchronen Datenbus steuern, wobei die beiden Datenbusse zueinander asynchron sind.
  • BESCHREIBUNG DES STANDES DER TECHNIK
  • Die meisten modernen Computersysteme haben eine Vielzahl verschiedener Datenbusse, die mit verschiedenen Datenraten arbeiten. Siehe beispielsweise das Dokument US-A-5274763. Es ist in bestimmten Systemen möglich, die verschiedenen Datenraten mit einem gemeinsamen Takt abzustimmen, so daß die verschiedenen Datenbusse synchron miteinander arbeiten. In vielen Systemen arbeiten jedoch die verschiedenen Datenbusse asynchron zueinander. Das heißt, die Busse werden von verschiedenen Takten gesteuert, wobei die Frequenzen und Phasen der verschiedenen Takte keine festen Beziehungen haben. Die Daten auf einem Quellenbus können sich also zu beliebigen Zeiten in Bezug auf die Steuerungssignale auf einem Zielbus, zu dem die Daten übertragen werden, ändern. Da es notwendig ist, minimale Vorbereitungs- und Haltezeiten in digitalen Bauelementen, zum Beispiel in Registern oder anderen Speicherbauelementen einzuhalten, ist es notwendig, die Übertragung von Daten zwischen zwei Bussen zu synchronisieren. Dies wird durch Synchronisationsschaltungen erreicht. Beispielsweise kann die Quelle ein Datenstrobe-Signal erzeugen, um anzuzeigen, daß die Daten auf dem Quellenbus zur Datenübertragung bereit sind. Das Datenstrobe-Signal kann im allgemeinen nicht dazu verwendet werden, den Zielbus direkt zu steuern. Vielmehr wird das Datenstrobe-Signal zunächst in einer Steuerschaltung, die dem Zielbus zugeordnet ist registriert, indem das Datenstrobe-Signal mit dem Taktsignal, das den Zielbus steuert, getaktet wird. Das registrierte Datenstrobe-Signal wird dann verwendet, um die Datenspeicherbauelemente (zum Beispiel Register oder Zwischenspeicher) auf dem Zielbus zu steuern. Durch Synchronisation des Datenstrobe-Signals (oder eines anderen Steuerungssignals) mit dem Zielbus kann sichergestellt werden, daß die Daten vom Quellenbus in Bezug auf den Zielbus stabil sind und deshalb übertragen werden können.
  • Die Synchronisation des Datenstrobe-Signals stellt zwar sicher, daß die Datenübertragungen zwischen zwei zueinander asynchronen Bussen ohne Datenverlust erfolgt, aber es entsteht im Zusammenhang mit Synchronisation ein zusätzlicher Zeitaufwand. Insbesondere kann es immerhin zwei Zielbus-Taktzyklen dauern, um die Synchronisation zu erreichen. Für gelegentliche Datenübertragungen kann der Synchronisationsaufwand ohne weiteres toleriert werden; wenn jedoch größere Mengen von Daten mit Mehrfachübertragungen (zum Beispiel Burst-Übertragungen) übertragen werden, kann der kumulative Aufwand deutlich die Gesamtleistungsfähigkeit eines Computersystems reduzieren. Es ist also notwendig, den Synchronisationsaufwand für Übertragungen von Datenbursts zwischen zwei zueinander asynchronen Bussen zu reduzieren.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung ist im Vorrichtungsanspruch 1 und im Verfahrensanspruch 6 ausgeführt.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung wird nachstehend in Verbindung mit den Figuren der beigefügten Zeichnung beschrieben, die folgendes zeigen:
  • 1 stellt eine exemplarische Schnittstelle zwischen zwei asynchronen Bussen dar.
  • 2 stellt eine bevorzugte Ausführungsform eines Datengültigkeitsflag-Puffers zur Verwendung in der Schnittstelle gemäß 1 dar.
  • 3 stellt eine exemplarische Schnittstelle zwischen zwei synchronen Bussen gemäß 1 dar, wobei die Schnittstelle die verbesserte Synchronisationsschaltung gemäß der vorliegenden Erfindung einbezieht.
  • 4 stellt ein exemplarisches Zustandsdiagramm für den betreffenden Abschnitt der Bus 2-Schnittstellenzustandsmaschine gemäß 1 dar.
  • 5 stellt ein exemplarisches Zustandsdiagramm für den betreffenden Abschnitt der Bus 2-Schnittstellenzustandsmaschine gemäß 3 dar.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
  • 1 stellt eine exemplarische Schnittstelle 100 zwischen zwei zueinander asynchronen Bussen in bekannten Systemen dar. Wie in 1 dargestellt, ist die Schnittstelle mit einem ersten Bus (BUS1) 110 verbunden. In der hier beschriebenen Ausführungsform ist der Bus 110 vorzugsweise ein PCI-(Peripheriekomponenten-Interconnect)Bus, der nach dem Standard arbeitet, der für den PCI-Bus zur Verwendung in mikroprozessorgesteuerten Computern aufgestellt ist, zum Beispiel Computer, die auf der Mikroprozessorfamilie von INTEL® (zum Beispiel INTEL 80486, INTEL Pentium, INTEL P6 und dergleichen) beruhen. Grundsätzlich ist der erste Bus 110 ein 32-Bit-Datenbus mit einer Vielzahl von Datenleitungen (dargestellt als BUS1 DATA 112), die Daten auf dem ersten Bus 110 übertragen, einer Vielzahl von Adreßleitungen (nicht dargestellt), die eine Quell- oder Zieladresse für Daten bereitstellen, die auf dem ersten Bus 110 übertragen werden, und mit einer Vielzahl von Steuerungsleitungen (die als CONTROL 114 bezeichnet sind), die Steuerungssignale übermitteln, die die Übertragung von Daten auf dem ersten Bus 110 steuern. Der erste Bus 110 weist also eine erste Bustaktleitung (BUS1 CLK) 116 mit einem Taktsignal auf, das die Adresse, die Daten und die Steuerungssignale auf dem ersten Bus 110 synchronisiert. Beispielsweise arbeitet das Taktsignal auf der BUS1 CLK-Leitung 116 vorteilhafterweise mit 33 MHz. Der Betrieb des ersten Busses 110 ist dem Fachmann bekannt und wird hier nicht ausführlich beschrieben. Der erste Bus 110 stellt auch eine Verbindung zu anderen Komponenten (nicht dargestellt) in einem Computersystem her, zum Beispiel zu einem peripheren Controller, der eine Datenquelle für den ersten Bus 110 sein kann.
  • Die Schnittstelle ist auch mit einem zweiten Bus 120 verbunden, der in der hier beschriebenen Ausführungsform vorzugsweise ein Hochgeschwindigkeits-Prozessorbus ist, zum Beispiel ein P6-Bus. In der bevorzugten Ausführungsform ist der zweite Bus 120 ein 64-Bit-Bus, der dafür bestimmt ist, mit einem INTEL-P6-Mikroprozessor zu kommunizieren, und arbeitet asynchron zu dem ersten Bus 110. Beispielsweise kann der zweite Bus 120 vorteilhafterweise mit 50 MHz, 60 MHz oder irgendeiner anderen Frequenz entsprechend der Taktfrequenz eines P6-Mikroprozessors arbeiten, der mit dem zweiten Bus 120 gekoppelt ist. Obwohl hier anhand des zweiten Busses 120 beschrieben, können andere Prozessorbusse, die asynchron zu dem ersten Bus 110 arbeiten, auch verwendet werden. Die besondere Charakteristik des zweiten Busses 120 ist für die vorliegende Erfindung nur insofern relevant, als daß die Datenübertragungen auf dem zweiten Bus 120 asynchron zu den Datenübertragungen auf dem ersten Bus 110 erfolgen. Der zweite Bus 120 weist auch eine Vielzahl von Datenleitungen 122, eine Vielzahl von Adreßleitungen (nicht dargestellt), eine Vielzahl von Steuerungsleitungen 124 und eine BUS2 CLK-Leitung 126 auf.
  • Wegen der asynchronen Beziehung zwischen dem ersten Bus 110 und dem zweiten Bus 120 weist die Schnittstelle 100 ferner einen Datenpuffer 130 auf, der Daten vom ersten Bus 110 über die Datenleitungen 112 und unter Steuerung der Steuerungssignale des ersten Busses auf der Leitung 114 und des Taktsignals auf der BUS1 CLK-Leitung 116 empfängt. Die Datenpuffer 130 speichern die Daten zwischen und übergeben die zwischengespeicherten Daten an den zweiten Bus 120 unter Steuerung der Steuerungssignale auf den Steuerungsleitungen 124 vom zweiten Bus 120 und synchron mit dem Taktsignal auf der BUS2 CLK-Leitung 126.
  • Der Datenpuffer 130 umfaßt eine Vielzahl von Speicherplätzen 132. In der Ausführungsform gemäß 1 sind nur vier Speicherplätze 132 dargestellt, die mit DATABUF0, DATABUF1, DATABUF2 und DATABUF3 bezeichnet sind. Aus der nachstehenden Beschreibung geht hervor, daß zusätzliche Speicherplätze vorhanden sein können, um eine zusätzlichen Datenspeicherung zwischen den beiden Bussen zu ermöglichen. Beispielsweise sind in einer besonders bevorzugten Ausführungsform acht Speicherplätze vorhanden. Die Erfindung ist ohne weiteres anhand der vier gezeigten Speicherplätze verständlich. Jeder der Speicherplätze 132 speichert 64 Datensignale. Die Eingänge der Speicherplätze 132 sind gleichermaßen mit den BUS1 DATA-Leitungen 112 verbunden. Die Ausgangssignale der Speicherplätze 132 werden als Eingangssignale an einen 64 Bit breiten 4:1-Multiplexer (MUX) 134 übergeben. Wenn, wie bereits ausgeführt, zusätzliche Speicherplätze (zum Beispiel acht) bereitzustellen sind, wird der Multiplexer 134 erweitert, um dementsprechend zusätzliche Gruppen von Eingängen bereitzustellen (zum Beispiel würde der Multiplexer 134 in einer solchen Ausführungsform zu einem 8:1-Multiplexer werden). Der Multiplexer 134 wird durch eine Bus 2-Schnittstellenzustandsmaschine 140 über ein Paar Ansteuerungsleitungen 142 gesteuert. Insbesondere betreibt die Bus 2-Schnittstellenzustandsmaschine einen Ausgangszeiger, der auf den Speicherplatz mit der nächst höheren Nummer nach dem Speicherplatz zeigt, von der die vorherigen Daten zum zweiten Bus 120 übertragen wurden. Es versteht sich, daß der Ausgangszeiger ein Modulo-4-Ausgangszeiger ist, der 0, 1, 2, 3, 0 zählt, so daß der Ausgangszeiger zu dem DATABUF0-Speicherplatz zeigt, der auf den DATABUF3-Speicherplatz folgt.
  • Als Antwort auf den Ausgangszeigerwert auf den Ansteuerungsleitungen 142 wählt der Multiplexer 134 die Daten von einem der vier Speicherplätze 132 als die Quelle der Ausgangsdaten, um sie dem zweiten Bus 120 zu übergeben, vorausgesetzt, daß die Daten auf dem gewählten Speicherplatz gültig sind, wie nachstehend beschrieben wird. Die gewählten Daten werden in einem 64 Bit breiten Register 150 eingetragen, das durch das BUS2 CLK-Signal auf der Leitung 126 getaktet wird, so daß die Daten mit dem zweiten Bus 120 synchronisiert sind. Das Register 150 wird ferner durch ein Freigabeeingangssignal auf einer Freigabeleitung 152 gesteuert. Wenn die Freigabeleitung 152 nicht aktiv ist, sind die Datenausgänge des Registers 150 nicht aktiv, unabhängig von den Daten, die im Register 150 eingetragen sind. Wenn die Freigabeleitung 152 aktiv ist, gibt das Register 150 die eingetragenen Daten an den zweiten Bus 120 über eine Vielzahl von BUS2 DATA-Leitungen 122 aus. Die Freigabeleitung 152 wird von der Bus 2-Schnittstellenzustandsmaschine 140 gesteuert, um das Register 150 nur dann freizugeben, wenn die Schnittstelle 100 gewählt ist, um Daten zum zweiten Bus 120 zu übertragen.
  • Daten vom ersten Bus 110 werden im Datenpuffer 130 unter Steuerung einer Bus 1-Schnittstellenzustandsmaschine 160 gespeichert. Die Bus 1-Schnittstellenzustandsmaschine 160 empfängt die Steuerungssignale und das BUS1 CLK-Signal vom ersten Bus 110 über die Steuerungsleitungen 114 und die BUS1 CLK-Leitung 116. Die Bus 1-Schnittstellenzustandsmaschine 160 reagiert auf ein Datenbereit-Steuerungssignal, das von den Steuerungsleitungen 114 übergeben wird, um ein gewähltes Datenstrobe-Signal für die Datenspeicherplätze 132 über eine der acht Datenstrobe-Signalleitungen 164 zu erzeugen. (Zwei Datenstrobe-Leitungen sind für jeden Datenspeicherplatz 132 in der bevorzugten Ausführungsform vorgesehen, um 32 Datenbits aus dem ersten Bus 110 für entsprechende obere und untere Abschnitte jedes Datenspeicherplatzes 132 freizugeben.) Die Datenstrobe-Leitungen 164 arbeiten als Taktsignale für die Datenspeicherplätze 132, so daß die Daten auf den BUS1 DATA-Leitungen 112 in einem gewählten der Datenspeicherplätze 132 entsprechend der aktiven der Datenstrobe-Leitungen 164 gespeichert werden. Die Bus 1-Schnittstellenzustandsmaschine 160 arbeitet auf konventionelle Weise, um den Datenpuffer 130 als FIFO-Ringpuffer (Durchlaufpuffer) zu steuern. Das heißt, die Bus 1-Schnittstellenzustandsmaschine 160 betreibt einen Eingangszeiger auf einen aktuellen der Eingangsspeicherplätze 132, der der nächstverfügbare leere Speicherplatz im Datenpuffer 130 ist. Wenn Daten auf dem gewählten Speicherplatz 132 eingeschrieben sind, wird der Eingangszeiger auf die nächsthöhere Zahl erhöht. Der Eingangszeiger ist ein Modulo-4-Zeiger (in der beschriebenen Ausführungsform mit vier Speicherplätzen), so daß, wenn der Eingangszeiger von einem Wert 3 ausgehend inkrementiert wird, er zu 0 wird. Somit kann der Datenpuffer 130 als "Ringpuffer" angesehen werden, wobei DATABUF0 an DATABUF3 angrenzt.
  • Die Bus 1-Schnittstellenzustandsmaschine 160 gibt eine Vielzahl von Flagsetzsignalen auf einer Gruppe von Leitungen 166 aus, die als Eingangssignale für jeweilige Setzeingänge (S) der Flagpuffer 170 vorgesehen sind, die eine Vielzahl (zum Beispiel vier) von Datengültigkeitsflag-Pufferspeicherplätzen umfassen. Wie ausführlicher nachstehend in Verbindung mit 2 beschrieben, werden die Flagsetzsignale mit dem BUS1 CLK-Signal auf der Signalleitung 116 synchronisiert, die als jeweilige erste Takteingangssignale an jede der Flagspeicherzellen im Flagpuffer 170 übergeben werden. Der Flagpuffer 170 speichert vier Daten-gültig-Flags (FLAG0, FLAG1, FLAG2 und FLAG3), wobei ein Daten-gültig-Flag jeweils einem der Pufferspeicherplätze (DATABUF0 ... DATABUF3) 132 im Datenpuffer 130 entspricht. Ein nicht aktives Daten-gültig-Flag zeigt an, daß der entsprechende Pufferspeicherplatz 132 leer ist und daß Daten auf diesem Pufferspeicherplatze 132 gespeichert werden können. Ein aktives Daten-gültig-Flag zeigt an, daß auf dem entsprechenden Pufferspeicherplatz 132 gültige Daten gespeichert sind und daß keine weiteren Daten auf diesem Pufferspeicherplatz gespeichert werden können. Ein aktives Daten-gültig-Flag zeigt auch der Bus 2-Schnittstellenzustandsmaschine (nachstehend beschrieben) an, daß die Daten auf dem entsprechenden Pufferspeicherplatz zur Datenübertragung zum zweiten Bus 120 bereit sind. Das Daten-gültig-Flag wird gesetzt, wenn die Daten auf dem jeweiligen Datenpufferspeicherplatz gespeichert sind. Das Daten-gültig-Flag wird gelöscht, wenn die Daten aus dem jeweiligen Datenpufferspeicherplatz zum zweiten Bus 120 übertragen sind.
  • Die Daten-gültig-Flags im Flagpuffer 170 werden über eine Gruppe von Daten-gültig-Flag-Leitungen 172 als Eingangssignale zu einem ersten 4:1-Flagmultiplexer (MUX) 180 übergeben. Der erste Flagmultiplexer 180 wird durch ein Paar Bus 1-Ansteuerungsleitungen 182 von der Bus 1-Schnittstellenzustandsmaschine 160 gesteuert. Die Bus 1-Schnittstellenzustandsmaschine 160 steuert das Paar Bus 1-Ansteuerungsleitungen 182, um den aktuellen Wert des Eingangszeigers zu codieren. Der erste Flagmultiplexer 180 wählt das Daten-gültig-Flag entsprechend dem Datenspeicherplatz, zu dem der Eingangszeiger gegenwärtig zeigt, so daß das Ausgangssignal des Multiplexers 180 ein Daten-gültig-Flag ist, das anzeigt, ob die Daten auf dem aktuellen Eingangsspeicherplatz bereits gültig sind. Das heißt, das gewählte Daten-gültig-Flag zeigt an, ob die Daten, die vorher auf dem gewählten Datenpufferplatz gespeichert worden sind, bereits zum zweiten Bus 120 übertragen worden sind (das Daten-gültig-Flag ist dann schon "ungültig") oder ob die vorher auf dem gewählten Datenpufferspeicherplatz gespeicherten Daten noch nicht an den zweiten Bus 120 übertragen worden sind (das Daten-gültig-Flag ist noch "gültig").
  • Die Daten-gültig-Flags im Flagpuffer 170 sind in einen bekannten Zustand (zum Beispiel alle Daten-gültig-Flags nicht aktiv) über ein SYSTEM RESET-Signal auf einer Leitung 174 rücksetzbar. Das SYSTEM RESET-Signal ist ein herkömmliches Rücksetzsignal, das erzeugt wird, wenn die Stromversorgung für das Computersystem eingeschaltet wird, wenn das Computersystem vom Anwender zurückgesetzt wird oder dergleichen.
  • Das Ausgangssignal des ersten Flagmultiplexers 180 wird als Dateneingangssignal an einen Bus 1-Daten-gültig-Synchronisierer 190 mit einem ersten Bus 1-Synchronisierer-Flipflop 192 übergeben. Ein Datenausgangssignal des ersten Bus 1-Synchronisierer-Flipflops 192 wird als Dateneingangssignal an ein zweites Bus 1-Synchronisierer-Flipflop 194 übergeben. Die beiden Bus 1-Synchronisierer-Flipflops 192, 194 werden von dem BUS1 CLK-Signal auf der Taktleitung 116 getaktet. Die Daten, die vom zweiten Bus 1-Synchronisierer-Flipflop 194 ausgegeben werden, werden als Eingangssignal an die Bus 1-Schnittstellenzustandsmaschine 160 über eine DATA VALID 1-Datenleitung 196 übergeben. Das gewählte Gültig-Flag wird als Rückkopplung für die Bus 1-Schnittstellenzustandsmaschine bereitgestellt, um anzuzeigen, ob der Datenspeicherplatz, der gegenwärtig vom Eingangszeiger in der Zustandsmaschine gewählt ist, zur Speicherung neuer Daten verfügbar ist oder ob keine neuen Daten angenommen werden können. Es versteht sich, daß auch andere Typen von Datensynchronisierern verwendet werden können.
  • Die Daten-gültig-Flags im Flagpuffer 170 werden über eine Gruppe von Daten-gültig-Flagleitungen 172 als Eingangssignale an einen zweiten 4:1-Flagmultiplexer (MUX) 200 übergeben. Der zweite Flagmultiplexer 200 wird von einem Paar Bus 2-Ansteuerungsleitungen 202 von der Bus 2-Schnittstellenzustandsmaschine 140 gesteuert. Die Bus 2-Ansteuerungsleitungen 202 werden so gesteuert, daß sie den Ausgangszeigerleitungen 142 entsprechen, die den Datenspeicherplatz 132 im Datenpuffer 130 als die Quelle für Daten wählt, die an den zweiten Bus 120 auszugeben sind. Das Ausgangssignal des zweiten Flagmultiplexers 200 zeigt an, ob der gegenwärtig gewählte Datenspeicherplatz gültige Daten hat oder ob die Daten auf diesem Speicherplatz bereits übertragen worden sind und nicht mehr gültig sind.
  • Das Ausgangssignal des zweiten Flagmultiplexers 200 wird als Dateneingangssignal an einen Bus 2-Daten-gültig-Synchronisierer 210 übergeben, der ein erstes Bus 2-Synchronisierer-Flipflop 212 umfaßt. Ein Datenausgangssignal des ersten Bus 2-Synchronisierer-Flipflops 212 wird als Dateneingangssignal an das zweite Bus 2-Synchronisierer-Flipflop 214 übergeben. Die beiden Bus 2-Synchronisierer-Flipflops 212, 214 werden vom BUS2 CLK-Signal auf der Taktleitung 126 getaktet. Ein Ausgangssignal des zweiten Bus 2-Synchronisierer-Flipflops 214 wird als Eingangssignal an die Bus 2-Schnittstellenzustandsmaschine 140 über eine DATA VALID 2-Datenleitung 216 übergeben. Die Bus 2-Schnittstellenzustandsmaschine 140 ist also mit einer Rückkopplung in bezug auf die Gültigkeit der Daten auf dem Datenspeicherplatz, zu dem der Ausgangszeiger gegenwärtig zeigt, versehen.
  • Die Daten-gültig-Pufferspeicherplätze (das heißt, FLAG0, FLAG1, FLAG2 und FLAG3) im Flagpuffer 170 werden selektiv durch die vier Flaglöschleitungen 220 gelöscht, die von der Bus 2-Schnittstellenzustandsmaschine 140 erzeugt werden. Jede der Flaglöschleitungen 220 ist als jeweiliger Flaglöscheingang (C) einer der Datengültigpufferspeicherplätze vorgesehen, und zwar synchron mit dem BUS2 CLK auf der Signalleitung 126. Die jeweilige Flaglöschleitung wird aktiviert, wenn die Daten vom jeweiligen Speicherplatz im Datenpuffer 130 zum zweiten Bus 120 übertragen werden. Wenn beispielsweise die Bus 2-Schnittstellenzustandsmaschine 140 die Daten auf dem DATABUF2-Speicherplatz im Datenpuffer 130 als Ausgangsdaten für den zweiten Bus 120 wählt, aktiviert die Bus 2-Schnittstellenzustandsmaschine 140 die entsprechende der Flaglöschleitungen 220, die als das Lösch-(C-)Eingang des FLAG2-Daten-gültig-Pufferspeicherplatzes vorgesehen ist. Der FLAG2-Daten-gültig-Pufferspeicherplatz wird synchron mit dem BUS2 CLK auf der Signalleitung 126 gelöscht.
  • 2 stellt eine bevorzugte Ausführungsform einer der Daten-gültig-Speicherplätze 170 in 1 dar. Insbesondere stellt 2 den FLAG0-Daten-gültig-Speicherplatz 170A dar. Die anderen drei Daten-gültig-Speicherplätze für FLAG1, FLAG2 und FLAG3 sind vorzugsweise identisch mit dem FLAG0-Daten-gültig-Speicherplatz. Wie dargestellt, umfaßt Daten-gültig-Speicherplatz 170 ein erstes Trigger-Flipflop 300 und ein zweites Trigger-Flipflop 302.
  • Das erste Trigger-Flipflop 300 hat einen Takteingang 310, der das BUS1 CLK-Signal auf der Signalleitung 116 empfängt. Das erste Trigger-Flipflop 300 hat einen Triggerfreigabe-(TE-)Eingang 312, der ein Ausgangssignal eines ersten UND-Gatters mit zwei Eingängen 314 empfängt. Das erste UND-Gatter 314 hat einen ersten, hochpegelaktiven Eingang, der ein SET_VALID_0-Signal auf einer Signalleitung 166A (einer der Daten-gültig-Flag-Leitungen 166 in 1) von der Bus 1-Schnittstellenzustandsmaschine 160 empfängt. Das erste UND-Gatter 314 hat einen zweiten tiefpegelaktiven Eingang, der das FLAG0-Daten-gültig-Flag als Rückkopplung auf einer Signalleitung 172A empfängt (die eine der Signalleitungen 172 in 1 ist). Das erste Trigger-Flipflop 300 hat einen Q-Ausgang 316, der bei einem Tief-Hoch-Übergang des BUS1 CLK-Signals in der bevorzugten Ausführungsform Zustände ändert (zum Beispiel von einem logischen Tiefpegel in einen logischen Hochpegel oder von einem logischen Hochpegel in einen logischen Tiefpegel). Das Q-Ausgangssignal des ersten Trigger-Flipflops 300 ändert sich nur, wenn das SET_VALID_0-Signal auf der Signalleitung 166A zur gleichen Zeit aktiv ist, in der das FLAG0-Daten-gültig-Flag nicht aktiv ist. Wenn das SET_FLAG_0-Signal aktiv ist und das FLAG0-Daten-gültig-Flag nicht aktiv ist, ist das Ausgangssignal des UND-Gatters 314 aktiv, und der Q-Ausgang des ersten Trigger-Flipflops 300 wechselt einmal bei jedem Tief-Hoch-Übergang des BUS1 CLK-Signals von seinem Hochpegel in seinen Tiefpegel oder von seinem Tiefpegel in seinen Hochpegel. Wenn entweder das SET_VALID_0-Signal nicht aktiv ist oder das FLAG0-Daten-gültig-Flag aktiv ist, ändert sich das Q-Ausgangssignal des ersten Trigger-Flipflops 300 unabhängig von den Änderungen des BUS1 CLK-Signals nicht.
  • Das zweite Trigger-Flipflop 302 hat einen Takteingang 330, der das BUS2 CLK-Signal auf der Signalleitung 126 empfängt. Das zweite Trigger-Flipflop 302 hat einen Triggerfreigabe-(TE-)Eingang 332, der ein Ausgangssignal eines zweiten UND-Gatters mit zwei Eingängen 334 empfängt. Das zweite UND-Gatter 334 hat einen ersten, hochpegelaktiven Eingang, der ein CLR_VALID_0-Signal auf der Signalleitung 220A (eine der Daten-gültig-Flag-Löschleitungen 220 in 1) von der Bus 2-Schnittstellenzustandsmaschine 140 empfängt. Das zweite UND-Gatter 334 hat einen zweiten hochpegelaktiven Eingang, der das FLAG0-Daten-gültig-Flag als Rückkopplung auf der Signalleitung 172A empfängt. Das zweite Trigger-Flipflop 302 hat einen Q-Ausgang 336, der in der bevorzugten Ausführungsform bei einem Tief-Hoch-Übergang des BUS2 CLK-Signals den Zustand wechselt (nämlich von einem logischen Tiefpegel zu einem logischen Hochpegel oder von einem logischen Hochpegel zu einem logischen Tiefpegel). Das Q-Ausgangssignal des zweiten Trigger-Flipflops 302 ändert sich nur, wenn das CLR_VALID-0-Signal auf der Signalleitung 220A zu der gleichen Zeit aktiv ist, in der das FLAG0-Daten-gültig-Flag aktiv ist. Wenn das CLR_VALID_0-Signal aktiv ist und das FLAG0-Daten-gültig-Flag aktiv ist, ist das Ausgangssignal des UND-Gatters 334 aktiv, und der Q-Ausgang des zweiten Trigger-Flipflops 302 wechselt einmal bei jedem Tief-Hoch-Übergang des BUS2 CLK-Signals von seinem Hochpegel zu seinem Tiefpegel oder von seinem Tiefpegel zu seinem Hochpegel. Wenn entweder das CLR_VALID_0-Signal nicht aktiv oder das FLAG0-Daten-gültig-Flag nicht aktiv ist, ändert sich das Q-Ausgangssignal des zweiten Trigger-Flipflops 302 unabhängig von den Änderungen des BUS2 CLK-Signals nicht.
  • Das erste Trigger-Flipflop 300 hat einen Rücksetz-(RST-)Eingang 340, und das zweite Trigger-Flipflop 302 hat einen Rücksetz-(RST-)Eingang 342. Die RST-Eingänge 340, 342 empfangen das SYSTEM RESET-Signal auf der Signalleitung 174. Wenn das SYSTEM RESET-Signal aktiv ist, werden die beiden Trigger-Flipflops 300, 302 zurückgesetzt, so daß die jeweiligen Q-Ausgänge auf ihre nicht aktiven Tiefpegel zurückgesetzt werden.
  • Die Q-Ausgangssignale des ersten und zweiten Trigger-Flipflops 300, 302 werden als jeweilige erste und zweite Eingangssignale an ein Exklusiv-ODER-Gatter 350 übergeben. Ein Ausgangssignal des Exklusiv-ODER-Gatters 350 stellt das FLAG0-Daten-gültig-Flag auf der Leitung 172A bereit, die somit der Ausgang des FLAG0-Daten-gültig-Speicherplatzes ist. Das FLAG0-Daten-gültig-Flag auf der Leitung 172A wird auch als Rückkopplung an die beiden Trigger-Flipflops 300, 302 über jeweilige UND-Gatter 314, 334 übergeben, wie oben beschrieben. Das Exklusiv-ODER-Gatter 350 spricht an auf die beiden Eingangssignale, um ein aktives FLAG0-Daten-gültig-Flag auf der Leitung 172A bereitzustellen, wenn sich die beiden Q-Ausgangssignale voneinander unterscheiden (das heißt, wenn ein Q-Ausgangssignal ist hochpegelaktiv und das andere Q-Ausgangssignal tiefpegelaktiv ist), und um ein nicht aktives FLAG0-Daten-gültig-Flag auf der Leitung 172A bereitzustellen, wenn die beiden Q-Ausgangssignale den gleichen Logikpegel haben (nämlich wenn beide Q-Ausgangssignale hochpegelaktiv oder beide Q-Ausgangssignale tiefpegelaktiv sind). Wenn, wie oben beschrieben, das Ausgangssignal des Exklusiv-ODER-Gatters 350 hochpegelaktiv ist und damit anzeigt, daß sich das Q-Ausgangssignal des zweiten Trigger-Flipflops 302 vom Q-Ausgangssignal des ersten Trigger-Flipflops 300 unterscheidet, wird nur das zweite UND-Gatter 334 potentiell freigegeben, so daß, wenn die CLR_VALID_0-Signalleitung 220A aktiv ist, das zweite Trigger-Flipflop 302 freigegeben wird. Das zweite Trigger-Flipflop 302 schaltet beim nächsten Tief-Hoch- Übergang des BUS2 CLK-Signals auf der Signalleitung 126 um. Dies bewirkt, daß das Q-Ausgangssignal des zweiten Trigger-Flipflops 302 mit dem Q-Ausgangssignal des ersten Trigger-Flipflops 300 identisch wird, so daß das Ausgangssignal des Exklusiv-ODER-Gatters 350 nicht aktiv wird. Der nicht aktive Zustand des Ausgangssignals des Exklusiv-ODER-Gatters 350 zeigt an, daß das FLAG0-Daten-gültig-Flag gelöscht ist (das heißt, die Daten sind ungültig). Zusätzlich wird das zweite Trigger-Flipflop 302 am Umschalten gehindert, und das erste Trigger-Flipflop 300 wird zum Umschalten freigegeben, wenn die CLR_VALID_0-Signalleitung 166A durch die Bus 1-Schnittstellenzustandsmaschine 160 aktiviert wird. Man kann daraus erkennen, daß das FLAG0-Daten-gültig-Flag in bezog auf das BUS1 CLK-Signal synchron gesetzt wird und in Bezug auf das BUS2 CLK-Signal synchron gelöscht wird.
  • Zusätzliche Information in Bezug auf die vom Trigger-Flipflop gesteuerten, oben beschriebenen Datenspeicherplätze findet sich beispielsweise im US-Patent 5083049, das auf den Rechtsnachfolger der vorliegenden Anmeldung übertragen ist und das hierin durch Bezugnahme aufgenommen wird. Der Fachmann wird anerkennen, daß alternative Daten-gültig-Speicherplätze in Verbindung mit der vorliegenden Erfindung verwendet werden können.
  • Wiederum mit Bezug auf 1 kann man erkennen, daß der Zweck des Bus 1-Daten-gültig-Synchronisierers 190 und des Bus 2-Daten-gültig-Synchronisierers 210 darin besteht, sicherzustellen, daß die Änderungen der Daten-gültig-Flags an die Bus 1-Schnittstellenzustandsmaschine 160 und die Bus 2-Schnittstellenzustandsmaschine 140 synchron mit den jeweiligen Takten, die die beiden Zustandsmaschinen steuern, weitergegeben werden. Insbesondere werden, wie oben beschrieben, die Daten-gültig-Flags synchron mit dem BUS1 CLK-Signal gesetzt und synchron mit dem BUS2 CLK-Signal gelöscht. Das Daten-gültig-Flag wechselt also von seinem nicht aktiven Zustand zu seinem aktiven Zustand synchron mit dem BUS1 CLK-Signal und wechselt von seinem aktiven Zustand zu seinem nicht aktiven Zustand synchron mit dem BUS2 CLK. Da das BUS1 CLK-Signal asynchron zum BUS2 CLK-Signal ist, empfängt die Bus 1-Schnittstellenzustandsmaschine 160 die Aktiv/Nichtaktiv-Übergänge der Daten-gültig-Flags asynchron in Bezug auf ihre internen Zustandsübergänge. Es ist somit möglich, daß die Übergänge auftreten, während die Bus 1-Schnittstellenzustandsmaschine fordert, daß der Zustand der Daten-gültig-Flags stabil und unveränderlich ist. Der Bus 1-Synchronisierer 190 synchronisiert die Hoch-Tief-Übergänge der Daten-gültig-Flags mit dem BUS1 CLK und somit mit den internen Zustandsübergängen der Bus 1-Schnittstellenzustandsmaschine 160. Ebenso synchronisiert der Bus 2-Synchronisierer 210 die Tief-Hoch-Übergänge der Daten-gültig-Flags mit dem BUS2 CLK und somit mit den internen Übergängen der Bus 2-Schnittstellenzustandsmaschine 140. Es ist besonders wichtig, daß die Tief-Hoch-Übergänge der Daten-gültig-Flags mit BUS2 CLK synchronisiert werden, da das jeweilige Daten-gültig-Flag gesetzt wird, wenn die Daten in den gegenwärtig gewählten Eingangsspeicherplatz geschrieben werden. Wenn der gegenwärtig gewählte Eingangsspeicherplatz auch der gegenwärtig gewählte Ausgangsspeicherplatz ist (das heißt, wenn die Bus 2-Schnittstellenzustandsmaschine 140 alle bisherigen gespeicherten Daten ausgegeben hat), nimmt die Bus 2-Schnittstellenzustandsmaschine 140 unmittelbar wahr, daß das Daten-gültig-Flag aktiv geworden ist, und gibt die Daten an den zweiten Bus 120 aus. Dies bewirkt jedoch möglicherweise eine Metastabilität in der Bus 2-Schnittstellenzustandsmaschine 140 und einen Wettlaufzustand, insbesondere wenn das Daten-gültig-Flag aus seinem nicht aktiven Zustand in seinen aktiven Zustand übergeht, bevor die Daten auf dem jeweiligen Datenspeicherplatz gespeichert worden sind und über den Multiplexer 134 und das Register 150 weitergegeben worden sind. Der Bus 2-Synchronisierer stellt sicher, daß die Daten stabil sind, bevor die Bus 2-Schnittstellenzustandsmaschine 140 die Daten an den zweiten Bus 120 ausgibt.
  • Die Schnittstelle 100 zwischen Bus 1 und Bus 2 gemäß 1 erfüllt ihren beabsichtigten Zweck gut; die Schnittstelle 100 weist jedoch eine Synchronisationsverzögerung auf, die durch den Bus 1-Synchronisierer 190 und den Bus 2-Synchronisierer 210 verursacht wird, die die Gesamtdatenrate der Schnittstelle 100 reduziert, insbesondere wenn Daten zu oder von der Schnittstelle 100 in einen Burstmodus übertragen werden. Das Problem wird verständlich, wenn man den Betrieb der Bus 2-Schnittstellenzustandsmaschine 140 betrachtet, wenn alle vier Datenpufferspeicherplätze (DATABUF0 ... DATABUF3) im Datenpuffer 130 voll sind und die entsprechenden Daten-gültig-Flags (FLAG0 ... FLAG3) gesetzt sind. Nachdem die Bus 2-Schnittstellenzustandsmaschine 140 die Daten vom ersten Datenpufferspeicherplatz (zum Beispiel DATABUF0) übertragen hat, wählt die Bus 2-Schnittstellenzustandsmaschine 140 den nächsten Pufferspeicherplatz (zum Beispiel DATABUF1) über den Multiplexer 134 und wählt auch das nächste Daten-gültig-Flag (zum Beispiel FLAG1) über die Ansteuerungsleitungen 202 zum zweiten Flagmultiplexer 200. Obwohl die Daten auf dem zweiten Pufferspeicherplatz (DATABUF1) für eine große Anzahl von Taktzyklen stabil gewesen sein können, muß die Bus 2-Schnittstellenzustandsmaschine 140 dennoch warten, bis das Daten-gültig-Flag vom Bus 2-Synchronisierer 210 synchronisiert ist, bevor es die Daten an den zweiten Bus 120 ausgeben kann. Somit werden zwei unnötige Zyklen des BUS2 CLK-Signals eingeschoben, um das Daten-gültig-Flag zu synchronisieren.
  • Eine ähnliche unnötige Verzögerung wird eingeschoben, wenn die Bus 1-Schnittstellenzustandsmaschine den Eingangszeiger zum nächsten Speicherplatz inkrementiert. Obwohl der nächste Datenspeicherplatz für eine große Anzahl von Taktzyklen leer gewesen sein kann, muß die Bus 1-Schnittstellenzustandsmaschine, wenn sie die Ansteuerungsleitungen 182 zum ersten Flagmultiplexer 180 umschaltet, zwei Taktzyklen warten, bis das gewählte Flag durch den Bus 1-Synchronisierer 180 synchronisiert ist, bevor sie bestimmen kann, daß das Daten-gültig-Flag gelöscht wird und daß der Datenspeicherplatz dadurch verfügbar ist.
  • Der Anmelder hat erkannt, daß die unnötige Verzögerung vermieden werden kann, indem die Daten-gültig-Flags synchronisiert werden, bevor sie an den Bus 2-Flagmultiplexer 200 übergeben werden. Eine verbesserte Schnittstelle 400 ist in 3 dargestellt, wo gleiche Bezugszeichen gleiche Elemente bezeichnen, wie oben in Verbindung mit 1 beschrieben. Die Bus 2-Schnittstellenzustandsmaschine 140 ist modifiziert und ist als Bus 2-Schnittstellenzustandsmaschine 404 in 3 dargestellt. Ebenso ist die Bus 1-Schnittstellenzustandsmaschine 160 modifiziert und ist als Bus 1-Schnittstellenzustandsmaschine 406 in 3 dargestellt.
  • Wie in 3 dargestellt, ist der einzelne Bus 1-Synchronisierer 190 am Ausgang des ersten Flagmultiplexers 180 von 1 durch vier Bus 1-Synchronisierer 410, 412, 414 und 416 ersetzt worden. Ein entsprechende Eingang jedes Bus 1-Synchronisierers 410, 412, 414, 416 ist mit dem Ausgang eines jeweiligen der vier Daten-gültig-Flagpufferspeicherplätze 170 verbunden, und ein entsprechender Ausgang jedes Bus 1-Synchronisierers 410, 412, 414, 416 ist mit einer der vier Eingänge des ersten Flagmultiplexers 180 verbunden. Wie weiter anhand des ersten Bus 1-Synchronisierers 410 dargestellt, umfaßt jeder der Synchronisierer ein Paar Flipflops 420, 422, die in Tandemschaltung verbunden sind und vom BUS1 CLK-Signal auf der Signalleitung 116 getaktet werden.
  • Ebenso ist der einzelne Bus 2-Synchronisierer 210 durch vier Bus 2-Synchronisierer 430, 432, 434 und 436 ersetzt worden. Ein entsprechender Eingang jedes Bus 2-Synchronisierers 430, 432, 434, 436 ist mit dem Ausgang einer jeweiligen der vier Daten-gültig-Flagpufferspeicherplätze 170 verbunden, und ein entsprechender Ausgang jedes Bus 2-Synchronisierers 430, 432, 434, 436 ist mit einem der vier Eingänge des zweiten Flagmultiplexers 200 verbunden. Wie ferner anhand des ersten Bus 2-Synchronisierers 430 dargestellt, umfaßt jeder der Synchronisierer ein Paar Flipflops 440, 442, die in Tandemschaltung verbunden sind und durch das BUS2 CLK-Signal auf der Signalleitung 126 getaktet werden.
  • Man kann erkennen, daß die verbesserte Schnittstelle 400 den Zweck der Schnittstelle 100 in 1 erfüllt, indem sichergestellt wird, daß die Daten-gültig-Flags mit der Bus 1-Schnittstellenzustandsmaschine 406 und mit der Bus 2-Schnittstellenzustandsmaschine 404 richtig synchronisiert werden. Wenn beispielsweise die Bus 2-Schnittstellenzustandsmaschine 404 alle Daten im Datenpuffer 130 ausgegeben hat und darauf wartet, daß die nächsten Daten auf einem Speicherplatz 132 gespeichert werden, zeigen der Eingangszeiger und der Ausgangszeiger zum gleichen Speicherplatz 132. Wenn die Bus 1-Schnittstellenzustandsmaschine das Daten-gültig-Flag (zum Beispiel FLAG0) setzt, geht das Ausgangssignal des FLAG0-Flagpuffers 170A (2) in seinen aktiven Zustand über und durchläuft den ersten Bus 2-Synchronisierer 430 und wird mit der Bus 2-Schnittstellenzustandsmaschine 404 synchronisiert, bevor es als aktives Eingangssignal an die Bus 2-Schnittstellenzustandsmaschine 404 übergeben wird. Das aktive Ausgangssignal des FLAG0-Flagpuffers 170A wird also notwendigerweise mit dem Bus 2-Takt synchronisiert und somit mit der Bus 2-Schnittstellenzustandsmaschine 404 synchronisiert. Das aktive Ausgangssignal des FLAG0-Flagpuffers 170A wird verzögert, um die erforderliche Zeit zu gewinnen, damit sich die Daten, die gerade auf dem DATABUF0-Datenspeicherplatz 132 gespeichert worden sind, stabilisieren können. Wenn dagegen die Bus 2-Schnittstellenzustandsmaschine einen Datenburst aus dem Datenpuffer 130 ausgibt, in dessen nächsten zu wählenden Speicherplatz 132 die Daten für eine Anzahl von Taktzyklen gespeichert waren, dann hat das Daten-gültig-Flag (zum Beispiel FLAG1) bereits den jeweiligen Bus 2-Synchronisierer (zum Beispiel den Bus 2-Synchronisierer 432) durchlaufen und ist am Eingang des zweiten Flagmultiplexers 200 aktiv. Wenn die Bus 2-Schnittstellenzustandsmaschine die Ansteuerungsleitung 202 also wechselt, um das Ausgangssignal des FLAG1-Daten-gültig-Flagpuffers zu wählen, wird der aktive Zustand des Flags unmittelbar ohne eine weitere Verzögerung an die Bus 2-Schnittstellenzustandsmaschine 404 weitergegeben.
  • Um das weitere Verständnis der Vorteile der verbesserten Schnittstelle in 3 zu fördern, stellt 4 ein exemplarisches Zustandsdiagramm 500 eines entsprechenden Abschnitts der Bus 2-Schnittstellenzustandsmaschine 140 von 1 dar, und 5 stellt ein exemplarisches Zustandsdiagramm 510 eines entsprechenden Abschnitts der Bus 2-Schnittstellenzustandsmaschine 404 von 3 dar. Jede Zustandsmaschine 140, 404 weist zusätzliche Funktionen auf, die nicht in 4 und 5 dargestellt und die nicht für die vorliegende Erfindung relevant sind und hier nicht beschrieben werden. In 4 und 5 werden die relevanten internen Zustände der Zustandsmaschine auf konventionelle Weise als Kreise mit dem gleichen Zustandsnamen darin dargestellt. Die Leitungen, die die Kreise verbinden, stellen Zustandsübergänge von einem Zustand in den anderen Zustand oder von einem Zustand zurück in denselben Zustand dar, die synchron mit dem BUS2 CLK-Signal 126 in 1 und 2 auftreten.
  • Die Bedingungen, die dem Zustandsübergang vorausgehen, sind als Parameter an jedem Zustandsübergang dargestellt, wobei ein UND-Zeichen ("&") eine UND-Anforderung darstellt, was bedeutet, daß alle Bedingungen, die durch das UND-Zeichen gekoppelt sind, erfüllt sein müssen, damit der Zustandsübergang erfolgen kann. Ein Strich über einer Bedingung zeigt an, daß eine Bedingung sein muß: nicht aktiv. Eine "1" an einem Zustandsübergang zeigt an, daß der Übergang von einem Zustand in den nächsten bei Auftreten des nächsten Zyklus des BUS2 CLK-Signals bedingungslos auftritt. Ein "ELSE" neben einem Zustandsübergang zeigt an, daß der Zustandsübergang ein Standardübergang ist, der auftritt, wenn die Bedingungen für andere Übergänge von einem gegebenen Zustand nicht erfüllt sind. Wenn die Bus 2-Schnittstellenzustandsmaschine 140 eine entsprechende Operation bei Auftreten eines bestimmten Übergangs durchführt, wird jede Operation am Ende des Parameters durch einen Schrägstrich ("/") kenntlich gemacht, auf den der Name der Operation folgt.
  • Wie in 4 dargestellt, weist das Zustandsdiagramm 500 einen IDLE-Zustand 520, einen MASK1-Zustand 522, einen MASK2-Zustand 524 und einen DATA_XFR_IN_PROG-Zustand (Datenübertragung läuft) 526 auf. Das Zustanddiagramm 500 stellt den Ablauf einer Übertragung mehrerer 16-Byte-Wörter aus dem Datenpuffer 132 zum zweiten Bus 120 dar. Der IDLE-Zustand 520 ist der "normale" Zustand der Bus 2-Schnittstellenzustandsmaschine 140, der auftritt, wenn das Computersystem zurückgesetzt wird, wie durch einen RESET-Zustandsübergang 530 dargestellt. Wie nachstehend beschrieben wird, kehrt die Bus 2-Schnittstellenzustandsmaschine 140 in den IDLE-Zustand 520 zurück, wenn die Datenübertragung beendet ist.
  • Die Bus 2-Schnittstellenzustandsmaschine 140 verbleibt so lange im IDLE-Zustand 520, wie kein neuer Lesezyklus ausgelöst wird durch andere Abschnitte der Bus 2-Schnittstellenzustandsmaschine 140, die Steuerungssignale auf dem zweiten Bus 120 und andere Bedingungen überwachen, um zu bestimmen, wann ein neuer Lesezyklus ausgelöst worden ist. Die Operation der Bus 2-Schnittstellenzustandsmaschine 140 beim Verbleiben im IDLE-Zustand, bis ein neuer Zyklus ausgelöst wird, ist durch einen ELSE-Zustandsübergang 532 dargestellt, wobei dieser Abschnitt der Bus 2-Zustandsmaschine 140 die anderen Abschnitte der Bus 2-Schnittstellenzustandsmaschine 140 überwacht und bestimmt, wann ein neuer Lesezyklus ausgelöst worden ist. Insbesondere verbleibt die Bus 2-Schnittstellenzustandsmaschine 140 im IDLE-Zustand 520, wenn das interne NEW_RD-Signal nicht aktiv ist.
  • Wenn ein neuer Lesezyklus von der Bus 2-Schnittstellenzustandsmaschine 140 ausgelöst worden ist (NEW_RD ist aktiv) und die Bus 2-Schnittstellenzustandsmaschine 140 bestimmt hat, daß der zweite Bus 120 der Busschnittstelle 100 zugewiesen ist (ein als BUS_RD_TIME bezeichnetes Signal ist aktiv), dann führt die Bus 2-Schnittstellenzustandsmaschine 140 einen Zustandsübergang 540 in den MASK1-Zustand 522 durch. Wie ferner durch den "/LOAD_QW_CNT"-Abschnitt des Zustandsübergangsparameters dargestellt, lädt die Bus 2-Schnittstellenzustandsmaschine die 16-Byte-Wortanzahl in einen internen 16-Byte-Wortzähler (nicht dargestellt), wenn der Zustandsübergang 540 erfolgt. Der 16-Byte-Wortzähler zeigt die Anzahl der Übertragungen an, die erfolgen müssen, damit ein gegebener Datenburst vom ersten Bus 110 zum zweiten Bus 120 übertragen wird.
  • Der MASK1-Zustand 522 und der MASK2-Zustand 524 sind Verzögerungszustände, um sicherzustellen, daß das gewählte Daten-gültig-Flag eine ausreichende Zeit zur Verfügung hat, um vom Bus 2-Flagmultiplexer 200 kommend den Bus 2-Synchronisierer 210 zu durchlaufen, bevor die Bus 2-Schnittstellenzustandsmaschine 140 den Zustand des gewählten Daten-gültig-Flags prüft. Man kann also sehen, daß der Übergang 542 vom MASK1-Zustand 522 in den MASK2-Zustand 524 bedingungslos erfolgt (wie dargestellt durch den angrenzenden Parameter "1"). Ebenso erfolgt ein Übergang 544 vom MASK2-Zustand 524 in den DATA_XFR_IN_PROG-Zustand 526 bedingungslos.
  • Im DATA_XFR_IN_PROG-Zustand 526 prüft die Bus 2-Schnittstellenzustandsmaschine 140 den Zustand des DATA_VALID_2-Flags, und wenn es nicht aktiv ist, verbleibt die Bus 2-Schnittstellenzustandsmaschine im DATA_XFR_IN_PROG-Zustand 526, wie durch einen ELSE-Übergang 550 dargestellt. Wenn andernfalls das DATA_VALID_2-Flag aktiv ist und BUS_RD_TIME aktiv ist, geht die Bus 2-Schnittstellenzustandsmaschine 140 entweder in den IDLE-Zustand 520 oder in den MASK1-Zustand 522 über, und zwar durch einen Übergang 552 bzw. einen Übergang 554 und gibt die Daten auf einem der gegenwärtig gewählten Pufferspeicherplätze 132 aus. Dies ist durch den /OUT_DATA-Parameter an beiden Übergängen 552 und 554 dargestellt. Es ist verständlich, daß zusätzlich zum Ausgeben der Daten die Bus 2-Schnittstellenzustandsmaschine das CLR_VALID-Signal für den entsprechenden der Flagpuffer 170 aktiviert.
  • Die Wahl des Übergangs 552 oder des Übergangs 554 hängt von der Bedingung des DONE-Parameters ab. Der DONE-Parameter stellt die Bedingung des QW_CNT-Ausgangs des 16-Byte-Wortzählers dar. Wenn der QW_CNT null ist, ist DONE aktiv. Wenn QW_CNT ein Nichtnullwert ist, dann ist DONE nicht aktiv (das heißt, DONE wird aktiv). Wenn DONE aktiv ist, führt die Bus 2-Schnittstellenzustandsmaschine 140 einen Übergang 552 zurück zum IDLE-Zustand 520 durch und inkrementiert den Zeiger zum gegenwärtigen Ausgangspufferspeicherplatz, wie vom Parameter /INC_BUF_NUM angegeben, um zum nächsten Pufferspeicherplatz 132 als dem nächsten Pufferausgang zu zeigen. Wenn andererseits DONE nicht aktiv ist (das heißt, DONE wird aktiv), führt die Bus 2-Schnittstellenzustandsmaschine 140 einen Übergang zum MASK1-Zustand 522 durch, erhöht den Zeiger zum gegenwärtigen Ausgangspufferspeicherplatz und dekrementiert den 16-Byte-Wortzähler, wie durch den /DEC_QW_CNT-Parameter angegeben. Wie oben in Verbindung mit 1 beschrieben, ist es notwendig, den Zyklus mit dem MASK1-Zustand 522 und dem MASK2-Zustand 524 wieder zu durchlaufen, um Zeit zu gewinnen, damit daß vorher gewählte Daten-gültig-Flag den Bus 2-Synchronisierer verlassen und durch ein neu gewähltes Daten-gültig-Flag ersetzt werden kann, bevor die DATA_VALID_2-Signalleitung 216 am Eingang der Bus 2-Schnittstellenzustandsmaschine 140 vor dem DATA_VALID_2-Signal von der Bus 2-Schnittstellenzustandsmaschine 140 ausgewertet wird. Diese Verzögerung wird unabhängig davon eingeschoben, wie lange die Daten auf dem neu gewählten Ausgangspufferspeicherplatz gespeichert worden sind auf dem gewählten Datenpufferspeicherplatz 132 und wie lange das entsprechenden Daten-gültig-Flag aktiv gewesen ist.
  • Im Gegensatz zum Zustandsdiagramm 500 in 4 erfordert das Zustandsdiagramm 510 in 5 weniger Zustände und operiert wegen der Positionierung der mehreren Bus 2-Synchronisierer 430, 432, 434 und 436 effektiver zwischen den Ausgängen der Flagpuffer 170 und dem Eingang des Bus 2-Flagmultiplexers 200, wie in 3 gezeigt, anstatt nur einen Bus 2-Synchronisierer 210 zu haben, wie nach dem Multiplexer 200 dargestellt, wie in 1 dargestellt. Insbesondere weist das Zustandsdiagramm 510 in 5 nur den IDLE-Zustand 600 und einen DATA_XFR_IN_PROG-Zustand 610 auf. Der IDLE-Zustand tritt durch einen RESET-Übergang 620 ein, wie oben beschrieben. Die Bus 2-Schnittstellenzustandsmaschine 404 in 3 verbleibt im IDLE-Zustand 600, wie durch einen ELSE-Übergang 622 dargestellt, es sei denn, bestimmte Bedingungen sind erfüllt, wie durch die Parameter an einem Übergang 624 zum DATA_XFR_IN_PROG-Zustand 610 dargestellt. Insbesondere bleibt die Bus 2-Schnittstellenzustandsmaschine 404 im IDLE-Zustand, bis ein NEW_RD ausgelöst ist und der BUS_RD_TIME-Bedingung aktiv ist, wobei sie dann durch den Zustandsübergang 624 zum DATA_XFR_IN_PROG-Zustand 610 übergeht und den 16-Byte-Wortzähler mit der Anzahl von zu übertragenden 16-Byte-Wörtern lädt, wie durch den /LOAD_QW_CNT-Parameter dargestellt.
  • Im DATA_XFR_IN PROG-Zustand 610 überwacht die Bus 2-Schnittstellenzustandsmaschine 404 die Bedingung des DATA_VALID_2-Signals. Wenn das DATA_VALID_2-Signal aktiv ist und der BUS_RD_TIME aktiv bleibt, führt die Bus 2-Schnittstellenzustandsmaschine 404 einen der beiden Zustandsübergänge 630 und 632 entsprechend der DONE-Bedingung durch. Wenn die DONE-Bedingung nicht aktiv ist, dann verbleibt die Bus 2-Schnittstellenzustandsmaschine 404 im DATA_XFR_IN_PROG-Zustand 610, wie durch den Zustandsübergang 630 dargestellt, und gibt den Inhalt des gegenwärtig gewählten einen der Datenpufferspeicherplätze 132 aus, wie durch den /OUT_DATA-Parameter dargestellt. Die Bus 2-Schnittstellenzustandsmaschine 404 inkrementiert die gegenwärtige Puffernummer (/INC_BUF_NUM) und dekrementiert den 16-Byte-Wortzähler (/DEC_QW_CNT). Wenn die DONE-Bedingung aktiv ist, dann geht die Bus 2-Schnittstellenzustandsmaschine 404 über den Zustandsübergang 632 in den IDLE-Zustand 600 zurück, während das letzte 16-Byte-Wort (/OUT_DATA) ausgegeben wird und während die Puffernummer (/INC_BUF_NUM) inkrementiert wird. Wenn das DATA_VALID_2-Signal nicht aktiv ist und wenn die BUS_RD_TIME-Bedingung nicht erfüllt ist (zum Beispiel der zweite Bus 120 nicht gegenwärtig verfügbar ist), dann verbleibt die Bus 2-Schnittstellenzustandsmaschine 404 im DATA_XFR_IN PROG-Zustand 610, wie durch den ELSE-Übergang 634 dargestellt.
  • Wie durch das Zustandsdiagramm 510 dargestellt, hat die Bus 2-Schnittstellenzustandsmaschine 404 gemäß 3 und 5 nicht die Zeitverzögerung, die der Bus 2-Schnittstellenzustandsmaschine 140 in 1 und 4 eigen ist. Insbesondere kann man erkennen, daß die Bus 2-Schnittstellenzustandsmaschine 404, sobald sie die Puffernummer beim Zustandsübergang 630 inkrementiert, im DATA_XFR_IN_PROG-Zustand 610 verbleibt und unmittelbar das DATA_VALID_2-Signal prüft, um zu bestimmen, ob die Daten aus dem neugewählten Pufferspeicherplatz 132 ausgegeben werden können. Dies kann erfolgen, da das entsprechende Daten-gültig-Flag (FLAG0, FLAG1, FLAG2 oder FLAG3) den entsprechenden Bus 2-Synchronisierer 430, 432, 434 oder 436 durchlaufen hat und am Eingang des Flagmultiplexers 200 verfügbar ist, sobald der nächste Eingang des Flagmultiplexers 200 gewählt ist. Wenn man annimmt, daß der zweite Bus 120 der Bus 2-Schnittstellenzustandsmaschine 404 zugeordnet bleibt, und wenn man annimmt, daß der erste Bus 110 die Datenpufferspeicherplätze 132 gefüllt hat, dann können die Daten bei jedem nachfolgenden Taktzyklus aus den Pufferstellenspeicherplätzen 132 ausgegeben werden, und es muß keine Verzögerung von zwei Taktzyklen zwischen jedem Ausgangssignal eingeschoben werden.

Claims (10)

  1. Vorrichtung zur Übertragung von Daten zwischen einem ersten Bus (110) und einem zweiten Bus (120), die asynchron zueinander arbeiten, wobei der erste Bus (110) Daten synchron mit einem ersten Bustakt (BUS1 CLK) liefert und wobei der zweite Bus (120) Daten synchron mit einem zweiten Bustakt (BUS2 CLK) empfängt, wobei die Vorrichtung gekennzeichnet ist durch: einen Datenpuffer (132) mit zumindest einem ersten Pufferspeicherplatz (DATABUF 0) und einem zweiten Pufferspeicherplatz (DATABUF 1), in denen Daten vom ersten Bus (110) synchron mit dem ersten Bustakt (BUS1 CLK) gespeichert werden; zumindest eine erste Datengültigkeitskennzeichnung (FLAG 0) und eine zweite Datengültigkeitskennzeichnung (FLAG 1), die jeweils dem ersten Pufferspeicherplatz (DATABUF 0) bzw. dem zweiten Pufferspeicherplatz (DATABUF 1) zugeordnet sind, wobei die erste Datengültigkeitskennzeichnung (FLAG 0) synchron mit dem ersten Bustakt (BUS1 CLK) gesetzt wird, wenn Daten im ersten Pufferspeicherplatz (DATABUF 0) gespeichert werden, und die zweite Datengültigkeitskennzeichnung (FLAG 1) synchron mit dem ersten Bustakt (BUS1 CLK) gesetzt wird, wenn Daten im zweiten Pufferspeicherplatz (DATABUF 1) gespeichert werden; eine erste Synchronisationsschaltung (430), die die erste Datengültigkeitskennzeichnung (FLAG 0) empfängt und sie mit dem zweiten Bustakt (BUS2 CLK) synchronisiert, um eine erste synchronisierte Datengültigkeitskennzeichnung (Ausgang von 430) zu liefern; eine zweite Synchronisationsschaltung (432), die die zweite Datengültigkeitskennzeichnung (FLAG 1) empfängt und sie mit dem zweiten Bustakt (BUS2 CLK) synchronisiert, um eine zweite synchronisierte Datengültigkeitskennzeichnung (Ausgang von 432) zu liefern; einen Datengültigkeitskennzeichnungsselektor (200), der entweder die erste synchronisierte Datengültigkeitskennzeichnung (Ausgang von 430) oder die zweite synchronisierte Datengültigkeitskennzeichnung (Ausgang von 432) als Ausgangsdatengültigkeitskennzeichnung (DATA VALID 2) wählt; und eine erste Buszustandsmaschine (BUS 2 INTERFACE STATE MACHINE 404), die synchron mit dem zweiten Bustakt (BUS2 CLK) arbeitet und die Daten vom Datenpuffer (132) an den zweiten Datenbus (120) überträgt, wobei die erste Buszustandsmaschine (404) eine Wählschaltungsanordnung (142, 134) umfaßt, zum Wählen entweder des ersten Pufferspeicherplatzes (DATABUF 0) oder des zweiten Pufferspeicherplatzes (DATABUF 1) als Quelle von Daten, die zum zweiten Bus (120) zu übertragen sind, wobei die erste Buszustandsmaschine (404) ferner eine Wählschaltungsanordnung (202) umfaßt, zum Steuern des Datengültigkeitskennzeichnungsselektors (200), um entsprechend die erste synchronisierte Datengültigkeitskennzeichnung (Ausgang 430) bzw. die zweite synchronisierte Datengültigkeitskennzeichnung (Ausgang von 432) als Ausgangsdatengültigkeitskennzeichnung (DATA VALID 2) zu wählen, wobei die erste Buszustandsmaschine (404) die Ausgangsdatengültigkeitskennzeichnung (DATA VALID 2) überwacht, um zu bestimmen, wann Daten vom ersten Bus (110) entweder im ersten Pufferspeicherplatz (DATABUF 0) oder im zweiten Pufferspeicherplatz (DATABUF 1) gespeichert worden sind.
  2. Vorrichtung nach Anspruch 1, ferner gekennzeichnet durch eine Steuerschaltungsanordnung (410, 412, 406), um eine Übertragung von Daten zum Datenpuffer (132) so lange zu verhindern, bis zumindest eine, nämlich die erste Datengültigkeitskennzeichnung (FLAG 0) und/oder die zweite Datengültigkeitskennzeichnung (FLAG 1), als Antwort auf einen Datenempfang des zweiten Busses (120) gelöscht ist.
  3. Vorrichtung nach Anspruch 2, wobei die Steuerschaltungsanordnung (410, 412, 406) eine zweite Buszustandsmaschine (BUS1 INTERFACE STATE MACHINE 406) aufweist, die mit dem ersten Bustakt (BUS1 CLK) synchronisiert ist und die die Übertragung von Daten zum Datenpuffer (132) steuert, so daß Daten nur dann zum ersten Pufferspeicherplatz (DATABUF 0) übertragen werden, wenn die erste Datengültigkeitskennzeichnung (FLAG 0) gelöscht ist, und so daß Daten nur dann zum zweiten Pufferspeicherplatz (DATABUF 1) übertragen werden, wenn der zweite Datengültigkeitskennzeichnung (FLAG 1) gelöscht ist.
  4. Vorrichtung nach Anspruch 3, wobei die Steuerschaltungsanordnung (410, 412, 406) gekennzeichnet ist durch eine dritte Synchronisationsschaltung (410), die die erste Datengültigkeitskennzeichnung (FLAG 0) mit dem ersten Bustakt (BUS1 CLK) synchronisiert, um eine dritte synchronisierte Datengültigkeitskennzeichnung (Ausgang von 410) zu liefern, und durch eine vierte Synchronisationsschaltung (412), die die zweite Datengültigkeitskennzeichnung (FLAG 1) mit dem ersten Bustakt (BUS1 CLK) synchronisiert, um eine vierte synchronisierte Datengültigkeitskennzeichnung (Ausgang von 412) zu liefern.
  5. Vorrichtung nach Anspruch 4, wobei der Datengültigkeitskennzeichnungsselektor (200) ein erster Datengültigkeitskennzeichnungsselektor (200) ist, wobei die Vorrichtung ferner gekennzeichnet ist durch einen zweiten Datengültigkeitskennzeichnungsselektor (180), der als Eingangssignale die dritte synchronisierte Datengültigkeitskennzeichnung (Ausgang von 410) und die vierte synchronisierte Datengültigkeitskennzeichnung (Ausgang von 412) empfängt, wobei das Ausgangssignal des zweiten Datengültigkeitskennzeichnungsselektors (180) an die zweite Buszustandsmaschine (406) geliefert wird, um zu bewirken, daß die zweite Buszustandsmaschine (406) zumindest eine, nämlich die erste Datengültigkeitskennzeichnung (FLAG 0) und/oder die zweite Datengültigkeitskennzeichnung (FLAG 1), löscht.
  6. Vorrichtung zur Übertragung von Daten zwischen einem ersten Bus (110) und einem zweiten Bus (120), die asynchron zueinander arbeiten, wobei der erste Bus (110) Daten synchron mit einem ersten Bustakt (BUS1 CLK) liefert und wobei der zweite Bus (120) Daten synchron mit einem zweiten Bustakt (BUS2 CLK auf der Leitung 126) empfängt, wobei das Verfahren durch die folgenden Schritte gekennzeichnet ist: Speichern von Daten vom ersten Bus (110) in einem Datenpuffer (132) synchron mit einem ersten Bustakt (BUS1 CLK), wobei der Datenpuffer (132) zumindest einen ersten Pufferspeicherplatz (DATABUF 0) und einen zweiten Pufferspeicherplatz (DATABUF 1) umfaßt, in denen Daten vom ersten Bus (110) gespeichert werden, wobei der Datenpuffer (132) zumindest eine erste Datengültigkeitskennzeichnung (FLAG 0), die dem ersten Pufferspeicherplatz zugeordnet ist, und eine zweite Datengültigkeitskennzeichnung (FLAG 1), die dem zweiten Pufferspeicherplatz zugeordnet ist, aufweist; Setzen der ersten Datengültigkeitskennzeichnung (FLAG 0) synchron mit dem ersten Bustakt (BUS1 CLK), wenn Daten im ersten Pufferspeicherplatz (DATABUF 0) gespeichert werden; Setzen der zweiten Datengültigkeitskennzeichnung (FLAG 1) synchron mit dem ersten Bustakt (BUS1 CLK), wenn Daten im zweiten Pufferspeicherplatz (DATABUF 1) gespeichert werden; Synchronisieren der ersten Datengültigkeitskennzeichnung (FLAG 0) mit dem zweiten Bustakt (BUS2 CLK), um eine erste synchronisierten Datengültigkeitskennzeichnung (Ausgang von Schaltung 430) zu erzeugen; Synchronisieren der zweiten Datengültigkeitskennzeichnung (FLAG 1) mit dem zweiten Bustakt (BUS2 CLK), um eine zweite synchronisierten Datengültigkeitskennzeichnung (Ausgang von Schaltung 432) zu erzeugen; Wählen entweder der ersten synchronisierten Datengültigkeitskennzeichnung oder der zweiten Datengültigkeitskennzeichnung als gewählte Datengültigkeitskennzeichnung (DATA VALID 2) und entsprechendes Wählen des ersten Pufferspeicherplatzes (DATABUF 0) bzw. des zweiten Pufferspeicherplatzes (DATABUF 1) als Quelle von Daten, die zum zweiten Bus (120) zu übertragen sind; Überwachen der gewählten Datengültigkeitskennzeichnung (DATA VALID 2), um zu bestimmen, wann Daten vom ersten Bus (110) entweder im gewählten ersten Pufferspeicherplatz (DATABUF 0) oder zweiten Pufferspeicherplatz (DATABUF 1) gespeichert worden sind; und Übertragen von Daten von dem ersten Datenpuffer (132) zum zweiten Bus (120) synchron mit dem zweiten Bustakt (BUS2 CLK), wenn die Ausgangsdatengültigkeitskennzeichnung (DATA VALID 2) anzeigt, daß Daten vom ersten Bus (110) entweder im gewählten ersten Pufferspeicherplatz (DATABUF 0) oder zweiten Pufferspeicherplatz (DATABUF 1) gespeichert worden sind.
  7. Verfahren nach Anspruch 6, ferner dadurch gekennzeichnet, daß eine Datenübertragung zum Datenpuffer (132) so lange verhindert wird, bis zumindest eine, nämlich die erste Datengültigkeitskennzeichnung (FLAG 0) und/oder die zweite Datengültigkeitskennzeichnung (FLAG 1) als Antwort auf einen Datenempfang des zweiten Busses (120) gelöscht ist.
  8. Verfahren nach Anspruch 7, ferner dadurch gekennzeichnet, daß Daten nur dann zum ersten Pufferspeicherplatz (DATABUF 0) übertragen werden, wenn die erste Datengültigkeitskennzeichnung (FLAG 0) gelöscht ist, und Daten nur dann zum zweiten Pufferspeicherplatz (DATABUF 1) übertragen werden, wenn die zweite Datengültigkeitskennzeichnung (FLAG 1) gelöscht ist.
  9. Verfahren nach Anspruch 8, ferner dadurch gekennzeichnet, daß die erste Datengültigkeitskennzeichnung (FLAG 0) mit dem ersten Bustakt (BUS1 CLK) synchronisiert wird, um eine dritte synchronisierte Datengültigkeitskennzeichnung (Ausgang von 410) zu liefern, und die zweite Datengültigkeitskennzeichnung (FLAG 1) mit dem ersten Bustakt (BUS1 CLK) synchronisiert wird, um eine vierte synchronisierte Datengültigkeitskennzeichnung (Ausgang von 412) zu liefern.
  10. Verfahren nach Anspruch 9, ferner dadurch gekennzeichnet, daß entweder die dritte synchronisierte Datengültigkeitskennzeichnung oder die vierte synchronisierte Datengültigkeitskennzeichnung als zweite gewählte Datengültigkeitskennzeichnung (DATA VALID 1) gewählt wird und zumindest eine, nämlich die erste Datengültigkeitskennzeichnung (FLAG 0) und/oder die zweite Datengültigkeitskennzeichnung (FLAG 1), als Antwort auf eine Aktivierung der zweiten gewählten Datengültigkeitskennzeichnung gelöscht ist.
DE69634358T 1995-06-07 1996-06-06 Verzögerungsverringerung in der übertragung von gepufferten daten zwischenzwei gegenseitig asynchronen bussen Expired - Lifetime DE69634358T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US48350595A 1995-06-07 1995-06-07
US483505 1995-06-07
US51054595A 1995-08-02 1995-08-02
US510545 1995-08-02
PCT/US1996/008573 WO1996041267A1 (en) 1995-06-07 1996-06-06 Delay reduction in transfer of buffered data between two mutually asynchronous buses

Publications (2)

Publication Number Publication Date
DE69634358D1 DE69634358D1 (de) 2005-03-24
DE69634358T2 true DE69634358T2 (de) 2005-12-29

Family

ID=27047672

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69634358T Expired - Lifetime DE69634358T2 (de) 1995-06-07 1996-06-06 Verzögerungsverringerung in der übertragung von gepufferten daten zwischenzwei gegenseitig asynchronen bussen

Country Status (11)

Country Link
US (1) US5764966A (de)
EP (1) EP0834134B1 (de)
JP (2) JP3873089B2 (de)
KR (1) KR100258986B1 (de)
CN (1) CN1093963C (de)
AU (1) AU6035296A (de)
DE (1) DE69634358T2 (de)
IL (1) IL122260A (de)
RU (1) RU2176814C2 (de)
TW (1) TW303438B (de)
WO (2) WO1996041268A1 (de)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5898889A (en) * 1996-04-30 1999-04-27 3Com Corporation Qualified burst cache for transfer of data between disparate clock domains
US6119190A (en) 1996-11-06 2000-09-12 Intel Corporation Method to reduce system bus load due to USB bandwidth reclamation
JPH10269775A (ja) * 1997-03-27 1998-10-09 Mitsubishi Electric Corp 半導体集積回路および位相同期ループ回路
DE69811262T2 (de) 1997-10-10 2003-11-27 Rambus Inc Verfahren und vorrichtung zur ausfallsicheren resynchronisation mit minimaler latenzzeit
US6055597A (en) * 1997-10-30 2000-04-25 Micron Electronics, Inc. Bi-directional synchronizing buffer system
US6076160A (en) * 1997-11-20 2000-06-13 Advanced Micro Devices, Inc. Hardware-based system for enabling data transfers between a CPU and chip set logic of a computer system on both edges of bus clock signal
US6279065B1 (en) * 1998-06-03 2001-08-21 Compaq Computer Corporation Computer system with improved memory access
US6366989B1 (en) * 1998-09-17 2002-04-02 Sun Microsystems, Inc. Programmable memory controller
US6418494B1 (en) 1998-10-30 2002-07-09 Cybex Computer Products Corporation Split computer architecture to separate user and processor while retaining original user interface
EP1125210B1 (de) * 1998-10-30 2006-07-05 Avocent Huntsville Corporation Geteilter rechner
US6560652B1 (en) * 1998-11-20 2003-05-06 Legerity, Inc. Method and apparatus for accessing variable sized blocks of data
AU1458501A (en) * 1999-11-05 2001-06-06 Analog Devices, Inc. Generic serial port architecture and system
EP1150467A1 (de) * 2000-04-28 2001-10-31 STMicroelectronics S.r.l. Kodierstruktur für Parellelbusse
US6782486B1 (en) * 2000-08-11 2004-08-24 Advanced Micro Devices, Inc. Apparatus for stopping and starting a clock in a clock forwarded I/O system depending on the presence of valid data in a receive buffer
JP2003157228A (ja) * 2001-11-20 2003-05-30 Fujitsu Ltd データ転送回路
GB0204144D0 (en) * 2002-02-22 2002-04-10 Koninkl Philips Electronics Nv Transferring data between differently clocked busses
US7321623B2 (en) 2002-10-01 2008-01-22 Avocent Corporation Video compression system
US20040111563A1 (en) * 2002-12-10 2004-06-10 Edirisooriya Samantha J. Method and apparatus for cache coherency between heterogeneous agents and limiting data transfers among symmetric processors
CN100370415C (zh) * 2003-04-26 2008-02-20 华为技术有限公司 基于fifo队列的数据包线速处理方法及其装置
CN1323529C (zh) * 2003-04-28 2007-06-27 华为技术有限公司 一种数字信号处理器内部数据传输的方法
US7269783B2 (en) * 2003-04-30 2007-09-11 Lucent Technologies Inc. Method and apparatus for dedicated hardware and software split implementation of rate matching and de-matching
US9560371B2 (en) * 2003-07-30 2017-01-31 Avocent Corporation Video compression system
KR100546403B1 (ko) * 2004-02-19 2006-01-26 삼성전자주식회사 감소된 메모리 버스 점유 시간을 가지는 시리얼 플레쉬메모리 컨트롤러
US7457461B2 (en) * 2004-06-25 2008-11-25 Avocent Corporation Video compression noise immunity
JP2006113689A (ja) * 2004-10-12 2006-04-27 Fujitsu Ltd バスブリッジ装置およびデータ転送方法
WO2006056220A1 (en) * 2004-11-25 2006-06-01 Telecom Italia S.P.A. Joint ic card and wireless transceiver module for mobile communication equipment
JP4786262B2 (ja) * 2005-09-06 2011-10-05 ルネサスエレクトロニクス株式会社 インターフェイス回路
TWI310501B (en) * 2005-10-06 2009-06-01 Via Tech Inc Bus controller and data buffer allocation method
US7519754B2 (en) * 2005-12-28 2009-04-14 Silicon Storage Technology, Inc. Hard disk drive cache memory and playback device
US20070147115A1 (en) * 2005-12-28 2007-06-28 Fong-Long Lin Unified memory and controller
US7783820B2 (en) * 2005-12-30 2010-08-24 Avocent Corporation Packet-switched split computer having disassociated peripheral controller and plural data buses
WO2007077497A1 (en) 2006-01-05 2007-07-12 Freescale Semiconductor, Inc. Method for synchronizing a transmission of information and a device having synchronizing capabilities
US7782961B2 (en) * 2006-04-28 2010-08-24 Avocent Corporation DVC delta commands
CN100405343C (zh) * 2006-06-21 2008-07-23 北京中星微电子有限公司 一种异步数据缓存装置
EP2045775A4 (de) 2006-07-25 2017-01-18 Nikon Corporation Bildverarbeitungsverfahren, bildverarbeitungsprogramm und bildverarbeitungseinrichtung
WO2009069094A1 (en) * 2007-11-30 2009-06-04 Nxp B.V. Method and device for routing data between components
US8363766B2 (en) * 2008-06-06 2013-01-29 Freescale Semiconductor, Inc. Device and method of synchronizing signals
CN101944075B (zh) * 2010-07-21 2012-06-27 北京星网锐捷网络技术有限公司 总线系统、对低速总线设备进行读写操作的方法及装置
CN103440219B (zh) * 2013-08-23 2016-06-08 上海航天测控通信研究所 一种通用总线转换桥ip核
US9910818B2 (en) * 2013-10-02 2018-03-06 Lattice Semiconductor Corporation Serdes interface architecture for multi-processor systems
US20160173134A1 (en) * 2014-12-15 2016-06-16 Intel Corporation Enhanced Data Bus Invert Encoding for OR Chained Buses

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63255760A (ja) * 1987-04-14 1988-10-24 Mitsubishi Electric Corp 制御システム
US5117486A (en) * 1989-04-21 1992-05-26 International Business Machines Corp. Buffer for packetizing block of data with different sizes and rates received from first processor before transferring to second processor
EP0433520B1 (de) * 1989-12-22 1996-02-14 International Business Machines Corporation Elastischer konfigurierbarer Pufferspeicher zum Puffern von asynchronen Daten
US5274763A (en) * 1990-12-28 1993-12-28 Apple Computer, Inc. Data path apparatus for IO adapter
US5535341A (en) * 1994-02-24 1996-07-09 Intel Corporation Apparatus and method for determining the status of data buffers in a bridge between two buses during a flush operation

Also Published As

Publication number Publication date
CN1093963C (zh) 2002-11-06
JP2006202313A (ja) 2006-08-03
EP0834134A4 (de) 2002-05-08
RU2176814C2 (ru) 2001-12-10
JPH11506851A (ja) 1999-06-15
WO1996041268A1 (en) 1996-12-19
EP0834134B1 (de) 2005-02-16
CN1192282A (zh) 1998-09-02
IL122260A0 (en) 1998-04-05
DE69634358D1 (de) 2005-03-24
EP0834134A1 (de) 1998-04-08
US5764966A (en) 1998-06-09
KR100258986B1 (ko) 2000-06-15
JP4237769B2 (ja) 2009-03-11
JP3873089B2 (ja) 2007-01-24
TW303438B (de) 1997-04-21
WO1996041267A1 (en) 1996-12-19
KR19990022339A (ko) 1999-03-25
IL122260A (en) 2001-01-11
AU6035296A (en) 1996-12-30

Similar Documents

Publication Publication Date Title
DE69634358T2 (de) Verzögerungsverringerung in der übertragung von gepufferten daten zwischenzwei gegenseitig asynchronen bussen
DE19580707C2 (de) PCI-ZU-ISA-Interrupt-Protokoll-Konverter und -Auswahlmechanismus
DE19900245B4 (de) Vorrichtung und Verfahren zum Senden von Daten von einem USB-Endpunkt an einen USB-Host
DE69825915T2 (de) Verfahren und vorrichtung zur umschaltung zwischen quellen-synchron-takt/- und gemeinsam-takt-datenübertragungs-modi in einem mehragent-übertragungs-system
DE60002571T2 (de) Elastische schnittstelleanornung und verfahren dafür
DE3300261C2 (de)
DE4307449C2 (de) Verfahren und Schaltung zur Resynchronisation einer synchronen seriellen Schnittstelle
DE69829987T2 (de) E/a bus mit schnellen 16-bit zerteilten transaktionen
DE69819648T2 (de) Zweitorpuffer
DE3110196A1 (de) Datenverarbeitungssystem
DE4142756A1 (de) Datenweg-einrichtung zur kopplung zweier busse
DE102007012054B4 (de) Mehrmasterverkettungszweidrahtseriellbus
DE69828980T2 (de) System und verfahren zur flusskontrolle für ein hochgeschwindigkeitsbus
DE3732798A1 (de) Datenverarbeitungssystem mit ueberlappendem zugriff auf einen globalen speicher durch eine quelle mit hoher prioritaet
DE69837431T2 (de) Verfahren zur verfügungsstellung von zeitsynchronisierung in einem netzwerk
DE60008662T2 (de) FIFO-System mit Schnittstelle mit veränderlicher Breite zum Hostprozessor
DE102005019568B4 (de) Speichereinrichtung, Verwendung derselben und Verfahren zur Synchronisation eines Datenwortes
DE102004014201B4 (de) Steuerungsanordnung für einen programmierbaren Taktsynchronisierer und Computersystem mit einer solchen Anordnung
DE69825636T2 (de) Verfahren und gerät zum bereitstellen und einschliessen von kontrollinformation in einem bussystem
DE60211874T2 (de) Anordnung von zwei Geräten, verbunden durch einen Kreuzvermittlungsschalter
EP0409330B1 (de) Schaltungsanordnung zum Steuern des Zugriffs auf einen Speicher
DE60203019T2 (de) Datensynchronisation auf einem peripheriebus
DE10056152B4 (de) Verfahren zur Durchführung von Busarbitration zwischen Steuerchips eines Chipsatzes mit preemptiver Fähigkeit
DE10085501B3 (de) Ein Verfahren und eine Einrichtung für einen isochronen Datentransport über einen asynchronen Bus
DE102004011673B3 (de) Vorrichtung zur Datensynchronisation

Legal Events

Date Code Title Description
8364 No opposition during term of opposition