[go: up one dir, main page]

DE60203019T2 - Datensynchronisation auf einem peripheriebus - Google Patents

Datensynchronisation auf einem peripheriebus Download PDF

Info

Publication number
DE60203019T2
DE60203019T2 DE60203019T DE60203019T DE60203019T2 DE 60203019 T2 DE60203019 T2 DE 60203019T2 DE 60203019 T DE60203019 T DE 60203019T DE 60203019 T DE60203019 T DE 60203019T DE 60203019 T2 DE60203019 T2 DE 60203019T2
Authority
DE
Germany
Prior art keywords
data
component
bus
clock
synchronization
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
DE60203019T
Other languages
English (en)
Other versions
DE60203019D1 (de
Inventor
Frederic Boutaud
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.)
MediaTek Inc
Original Assignee
Analog Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Analog Devices Inc filed Critical Analog Devices Inc
Publication of DE60203019D1 publication Critical patent/DE60203019D1/de
Application granted granted Critical
Publication of DE60203019T2 publication Critical patent/DE60203019T2/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Description

  • Die vorliegende Erfindung bezieht sich ganz allgemein auf das Gebiet der Synchronisierung asynchroner Daten, insbesondere auf die Synchronisierung von Daten, die von einem asynchronen Peripheriegerät auf einen Bustaktgeber ausgelesen wurden.
  • Häufig werden Flipflops als Speicherelemente in digitalen Logiksystemen verwendet. Flipflops greifen ihre Eingangsinformationen an der Anstiegsflanke oder der abfallenden Flanke des Taktimpulses ab und halten die abgegriffenen Eingangsinformation weiterhin als ihre Ausgangsinformation bis zur nächsten Taktflanke. Wegen der Verwendung von Flipflops in digitalen Logiksystemen stellt die Metastabilität eine wichtige Überlegung in der Auslegung dar, mit der nahezu alle Entwickler von digitalen Logiksystemen zu kämpfen haben. Wenn ein Flipflop in einen metastabilen Zustand umschaltet, ist seine Ausgangsinformation unbekannt und kann zwischen einem logischen HOHEN Pegel und einem logischen NIEDRIGEN Pegel liegen oder auch schwingen. Wenn sich die Ausgangsinformation vor der nächsten Taktflanke nicht auf einen stabilen Wert auflöst bzw. umsetzt, kann der metastabile Zustand zu anderen Logikbausteinen weitergeleitet werden, die mit dem Ausgang des Flipflops verbunden sind. Auch wenn sich die Ausgangsinformation vor der nächsten Taktflanke auflöst, kann außerdem der Wert unrichtig sein, was dazu führt, dass unzulässige Daten zu anderen Logikbausteinen weitergeleitet werden, welche mit dem Ausgang des Flipflops verbunden sind. Metastabilität ergibt sich dann, wenn sich während der Einstell- und/oder Haltezeit eines Flipflops ein Fipflop-Eingang verändert.
  • Bei den meisten digitalen Logiksystemen verändern sich die Eingänge zu den Flipflops während der Einstell- und der Haltezeiten nicht, weil die Systeme als völlig synchrone Systeme konzipiert sind, welche die technischen Vorgaben für ihre Bauelemente erfüllen oder übertreffen. Bei einer vollständig synchronen Auslegung weisen die Eingänge zu den Flipflops eine feste Beziehung zum Taktgeber auf, was bedeutet, dass sie mit dem Taktgeber synchronisiert sind. Es gibt jedoch einige Systeme, bei denen eine völlig synchrone Auslegung unter Verwendung eines einzigen Haupt- bzw. Bezugstaktgebers nicht möglich ist oder bei denen bestimmte Vorteile aufgrund der Verwendung einer asynchronen Auslegung erzielt werden. Bei diesen Systemen besteht die Notwendigkeit, Teilsysteme miteinander zu verbinden, die keine definierte Beziehung zwischen ihren Taktgebern besitzen, also unterschiedliche Taktgeberbereiche aufweisen. Dies führt häufig zu einer Notwendigkeit, Daten von einem der Taktgeberbereiche als asynchronen Eingang in einen Flipflop im anderen Taktgeberbereich zu liefern. Damit diese Systeme korrekt funktionieren, ist es erforderlich, den einlaufenden asynchronen Eingang mit dem Taktgeberbereich des Flipflops zu synchronisieren. Auch wenn die Beschreibung hier auf Flipflops bezogen ist, bezieht sich der metastabile Zustand mit den zugehörigen Schwierigkeiten auch auf andere Arten von Speicherelementen in einem digitalen logischen System, wie zum Beispiel bei Einrast-Kippschaltern („Latches") oder aus Einrast-Kippschaltern aufgebauten Kombinationen.
  • Line derartige Synchronisierung wird häufig benötigt, um Daten von asynchronen Peripheriegeräten zu einem Busmaster bzw. Busleitungs-Hauptbauelement in einer Rechneranlage zu übertragen. 1 stellt ein Blockschaltbild einer Rechneranlage mit einem asynchronen Peripheriegerät 106 dar. Die meisten modernen Bussysteme sind mit irgendeiner Art von Bus-Schnittstellenlogik 100 ausgerüstet, welche die Datenübertragung zwischen einem Peripheriegerät 106 und einem Busmaster 104 unter Verwendung einer Busleitung 102 steuert. Die Bus-Schnittstellenlogik 100 arbeitet dabei in einem Taktgeberbereich, der mit dem Taktgeberbereich des Busmasters 104 synchronisiert werden kann. Das Peripheriegerät 106 arbeitet jedoch in seinem eigenen Taktgeberbereich, der anders ist als der Taktgeberbereich der Bus-Schnittstellenlogik 100. Im typischen Fall ist die Frequenz des Taktgeberbereichs des Peripheriegeräts 106 niedriger als die Frequenz im Taktgeberbereich der Bus-Schnittstellenlogik 100. Wenn Daten aus einem asynchronen Peripheriegerät 106 ausgelesen werden, werden die Daten auf die Busleitung 102 gelegt. Die Daten auf der Busleitung werden dann unter Einsatz von Flipflops abgegriffen, die in Form eines Registers entweder in der Bus-Schnittstellenlogik 102 oder im Busmaster 104 eingerichtet sind.
  • Ohne Synchronisierung der ausgelesenen Daten mit dem Bustakt kann ein asynchrones Peripheriegerät die Daten während der Einstell- und/oder Halte-Zeiten der von der Bus-Schnittstellenlogik 100 verwendeten Flipflops auf die Busleitung zuliefern, wobei eines oder mehrere der Flipflops zum Umschalten in einen metastabilen Zustand veranlasst wird bzw. werden. Deshalb synchronisiert in den meisten Systemen das Peripheriegerät 106 die Verbringung von Daten auf die Busleitung 102 mit dem Taktgeberbereich der Bus-Schnittstellenlogik 100 unter Verwendung der Synchronisierlogik 108 am oder im Peripheriegerät 106. Das Peripheriegerät 106 empfängt dann den Takt von der Busleitung und die Synchronisierlogik 108 synchronisiert die Übertragung der ausgelesenen Daten auf der Busleitung 108 mit dem Bustaktgeber.
  • 2 stellt eine typische Logik im Peripheriegerät 106 für die Ausgabe ausgelesener Daten auf die Busleitung 102 dar, wobei diese eine Synchronisierlogik 108 einschließt. Damit ein Peripheriegerät die Daten mit dem Bustaktgeber synchronisiert und für einen stabilen Wert auf der Busleitung sorgt, setzt die Synchronisierlogik 108 im allgemeinen einen Lesepufferspeicher 202 voraus, der den internen bzw. die interne Daten-Austausch/-Aktualisierung innerhalb des Peripheriegeräts von den auf die Busleitung geleiteten ausgelesenen Daten isoliert. Ein „update_enable"-Signal bzw. Aktualisierungs-Freigabesignal wird aktiviert, um Daten, die auf die Busleitung geführt werden sollen, in ein internes Register 206 auszulesen. Ganz allgemein ist das Aktualisierungs-Freigabesignal lang genug, damit es mit dem Bustaktgeber synchronisiert werden kann. Gegebenenfalls verwenden jedoch einige Anwendungen ein kürzeres Aktualisierungs-Freigabesignal mit einer Logik, welche das Aktualisierungs-Freigabesignal zur korrekten Synchronisierung mit dem Bustaktgeber erweitert. Logik 204 synchronisiert dann das Aktualisierungs-Freigabesignal mit dem Bustaktgeber, so dass die Daten in den Lesepufferspeicher 202 übertragen und infolgedessen in einer mit dem Bustaktgeber synchronisierten Weise auf die Busleitung geführt werden.
  • Die an jedem Peripheriegerät vorgenommene Synchronisierung ist jedoch von Nachteil, da bei jeder Peripherieeinheit eine Synchronisierlogik benötigt wird. Wenn außerdem jedes Peripheriegerät die Synchronisierung vornimmt, wird die Synchronisierung dezentralisiert und damit nicht unbedingt in gleicher Weise für jedes Peripheriegerät durchgeführt. Es wäre deshalb vorteilhaft, wenn man in der Lage wäre, stabile zulässige Daten von einem asynchronen Peripheriegerät auf einen Busmaster zu leiten, ohne dass es erforderlich ist, dass jedes Peripheriegerät ihren Ausgang mit dem Bustaktgeber synchronisiert. Ganz allgemein gesprochen wäre es von Vorteil, wenn eine zentralisierte Synchronisierung für die Weiterleitung von Daten zwischen Bauelementen in unterschiedlichen Taktgeberbereichen vorgesehen ist.
  • Die Druckschrift US 5345453 offenbart Abgreifung aufeinander folgender Abtastwerte eines Datensignals in einem ersten und einen zweiten Taktzyklus des Taktgebers des Empfängers beschrieben, woraufhin die Abtastwerte dann verglichen werden. Wenn die Abtastwerte identisch sind, werden die abgegriffenen Daten ausgegeben. Wenn die Abtastwerte nicht identisch sind, werden weitere Abgreifungen in anschließenden dritten und vierten Taktzyklen vorgenommen, und wenn dann auch die dritten und vierten Abtastwerte nicht identisch sind, könnte eine Metastabilität eingetreten sein und es wird ein vorgegebener Ersatzwert erzeugt.
  • KURZBESCHREIBUNG DER ERFINDUNG
  • Gemäß einem Aspekt der vorliegenden Erfindung ist eine Schaltung für die synchronisierte Weiterleitung von Daten von einem ersten Bauteil mit einem ersten Taktgeberbereich zu einem zweiten Bauteil mit einem zweiten Taktgeberbereich vorgesehen. Die Schaltung weist ein Datenregister zum Abgreifen von Daten auf, die während eines ersten Bustaktzyklus von dem ersten Bauteil auf eine Datenbusleitung gegeben werden, sowie einen Vergleichen bzw. Komparator zum Vergleichen der Daten auf der Datenbusleitung während eines zweiten darauf folgenden Bustaktzyklus mit den durch das Datenregister abgegriffenen Daten. Die Schaltung besitzt außerdem einen Multiplexer zur Ausgabe der abgegriffenen Daten an das zweite Bauteil während eines dritten, darauf folgenden Buszyklus, wenn die abgegriffenen Daten gleich den Daten auf der Datenbusleitung während des zweiten, nachfolgenden Bustaktzyklus sind, und zur Ausgabe von Daten auf der Datenbusleitung an das zweite Bauteil während des dritten nachfolgenden Bustaktzyklus, wenn die abgegriffenen Daten nicht gleich den Daten auf der Datenbusleitung während des zweiten Bustaktzyklus sind.
  • Ein weiterer Aspekt der vorliegenden Erfindung sieht ein Verfahren für die synchronisierte Weiterleitung von Daten von einem ersten Bauteil mit einem ersten Taktgeberbereich zu einem zweiten Bauteil mit einem zweiten Taktgeberbereich vor. Dabei werden während eines ersten Bustaktzyklus Daten, die von dem ersten Bauteil auf eine Datenbusleitung gegeben wurden, abgegriffen. Daten auf der Datenbusleitung werden während eines zweiten darauf folgenden Bustaktzyklus mit den abgegriffenen Daten verglichen. Wenn die abgegriffenen Daten gleich den Daten auf der Datenbusleitung während eines zweiten nachfolgenden Bustaktzyklus sind, werden die abgegriffenen Daten an das zweite Bauteil während eines dritten nachfolgenden Buszyklus ausgegeben. Wenn die abgegriffenen Daten nicht gleich den Daten auf der Datenbusleitung während des zweiten nachfalgenden Bustaktzyklus sind, werden Daten auf die Datenbusleitung während des dritten nachfolgenden Bustaktzyklus an das zweite Bauteil ausgegeben.
  • Gemäß einem anderen Aspekt der vorliegenden Erfindung ist ein Computer vorgesehen, welcher ein asynchrones Peripheriegerät aufweist, welches ausgelesene Daten dadurch an einen Busmaster bzw. ein Busleitungs-Hauptbauelement übermittelt, dass die ausgelesenen Daten auf eine Peripherie-Busleitung und eine Bus-Schnittstellenlogik gegeben werden, um die ausgelesenen Daten zu synchronisieren. Die Bus-Schnittstellenlogik umfasst ein Datenregister zum Abgreifen von ausgelesenen Daten auf der Peripherie-Busleitung während eines ersten Bustaktzyklus; ferner einen Vergleichen zum Vergleichen der ausgelesenen Daten auf der Peripherie-Busleitung während eines zweiten darauf folgenden Bustaktzyklus mit den abgegriffenen ausgelesenen Daten; und ferner einen Multiplexer zur Ausgabe der abgegriffenen ausgelesenen Daten während eines dritten darauf folgenden Buszyklus, wenn die abgegriffenen ausgelesenen Daten gleich den ausgelesenen Daten auf der Datenbusleitung während eines zweiten nachfolgenden Bustaktzyklus sind, und zur Ausgabe von ausgelesenen Daten auf die Datenbusleitung während des dritten darauf folgenden Bustaktzyklus, wenn die abgegriffenen ausgelesenen Daten nicht gleich den ausgelesenen Daten auf der Datenbusleitung während eines zweiten darauf folgenden Bustaktzyklus sind.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 stellt ein Blockschaltbild eines Rechnersystems mit einem asynchronen Peripheriegerät dar;
  • 2 ist die Ansicht einer Synchronisierlogik gemäß Stand der Technik an oder in einem Peripheriegerät zur Ausgabe ausgelesener Daten auf eine Peripherie-Busleitung;
  • 3 zeigt ein Blockschaltbild eines Computersystems gemäß der vorliegenden Erfindung, das ein asynchrones Peripheriegerät umfasst;
  • 4 stellt das Verfahren gemäß der vorliegenden Erfindung dar, das mittels einer Synchronisierlogik realisiert wurde;
  • 5a ist die Darstellung eines Ausführungsbeispiels einer Synchronisierlogik, mit welcher das in 4 darstellte Verfahren durchgeführt wird;
  • 5b ist die Darstellung von Zeitsteuerungs-Wellenformen in dem Fall, dass nPWAIT für einen Bustaktzyklus nicht aktiviert ist; und
  • 5c zeigt Zeitsteuerungs-Wellenformen für den Fall, das nPWAIT von einem asynchronen Peripheriegerät über mehr als einen Taktzyklus nicht aktiviert wurde, um die Dauer des Lesezugriffs zu verlängern.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • Auch wenn die vorliegende Erfindung nachstehend anhand eines bevorzugten Ausführungsbeispiels für die Synchronisierung zwischen einem Peripheriegerät und einem Busmaster bei einer Rechneranlage beschrieben wird, ist sie nicht auf diese Ausführungsform beschränkt. Die vorliegende Erfindung ist in der Form vorgesehen, dass sie für die Weiterleitung digitaler Daten von einem beliebigen Ursprungs-Bauteil mit einem ersten Taktgeberbereich zu irgendeinem Ziel-Bauteil mit einem zweiten Taktgeberbereich einsetzbar ist.
  • 3 stellt ein Blockschaltbild eines Computersystems gemäß der vorliegenden Erfindung dar, das ein asynchrones Peripheriegerät 306 umfasst. Das Computersystem gemäß der vorliegenden Erfindung ist ähnlich dem Computersystem aus 1. Wie bei der Rechneranlage aus 1 weist das Computersystem gemäß der vorliegenden Erfindung eine Bus-Schnittstellenlogik 300 auf, welche die Übertragung von Daten zwischen einem Peripheriegerät 306 und einem Busmaster 304 unter Verwendung der Busleitung 302 steuert. Die Bus-Schnittstellenlogik 300 arbeitet in einem Taktgeberbereich, der normalerweise mit dem Taktgeberbereich des Busmasters 304 synchronisiert ist. Das Peripheriegerät 306 arbeitet jedoch in seinem eigenen Taktgeberbereich, der sich vom Taktgeberbereich der Bus-Schnittstellenlogik 300 unterscheidet. Die Frequenz des Taktgebers im Peripheriegerät 306 ist im typischen Fall – wenn auch nicht immer – niedriger als die Frequenz des Taktgebers der Bus-Schnittstellenlogik 300. Das asynchrone Peripheriegerät 306 verändert jedoch die ausgelesenen Daten nicht schneller als die Frequenz des Taktgebers in der Bus-Schnittstellenlogik 300. Wenn Daten aus dem Peripheriegerät 306 gerade ausgelesen werden, gibt das Gerät die Daten auf die Busleitung 302, und die Bus-Schnittstellenlogik 300 arbeitet mit Flipflops, die als Register zum Abgreifen der Daten ausgelegt sind. Statt jedoch in jedem Peripheriegerät eine Synchronisierlogik vorzusehen, ist die Logik 308 in die Bus-Schnittstellenlogik 302 eingebaut, um sicherzustellen, dass die von der Busleitung 102 gelesenen Daten zulässig und stabil sind, ehe sie zum Busmaster 304 weitergeleitet werden.
  • Deshalb übermittelt das Peripheriegerät 306 für ein Auslesen bzw. einen Auslesevorgang aus dem Peripheriegerät 306 die ausgelesenen Daten auf die Busleitung 302 asynchron vom Bustaktgeber. Die Logik 308 stellt dann sicher, dass zulässige Daten dadurch zum Busmaster 304 weitergeleitet werden, dass das in 4 dargestellte Verfahren durchgeführt wird. Gemäß der Darstellung ermittelt die Logik 308 als erstes, ob bzw. dass das Peripheriegerät 306 asynchron ist (Schritt 400). Die Logik 308 greift dann die Daten, welche das Peripheriegerät 306 auf die Busleitung legt, zweimal oder öfter ab (Schritt 402). Die Logik 308 vergleicht die Werte der aufeinander folgenden abgegriffenen Daten (Schritt 404). Wenn die abgegriffenen Daten gleich sind, werden sie zum Busmaster 304 als zulässige Daten zurückgeführt (Schritt 406). Wenn sie sich unterscheiden, werden die Daten im nächsten Zyklus als zulässige Daten zum Busmuster 304 zurückgeleitet (Schritt 408).
  • 5a stellt ein Ausführungsbeispiel für eine Synchronisierlogik 308 dar, welche mit dem Verfahren nach 4 arbeitet. Bei diesem Ausführungsbeispiel handelt es sich bei den Daten um eine Menge aufeinander bezogener Bits, welche ein einzelne Information repräsentieren, beispielsweise ein Datenwort. Diese Bits werden zusammenhängend bzw. kohärent gehalten, um eine zulässige Information zu erhalten. Auch wenn dies nicht dargestellt ist, sind auch Ausführungsbeispiele, bei denen die Daten eine Kombination aus voneinander unabhängigen Bits darstellen, im Rahmen der vorliegenden Erfindung vorgesehen. In diesem Fall ist es nicht notwendig, den Zusammenhang bzw. die Kohärenz zwischen den Bits aufrechtzuerhalten, und sie können unabhängig voneinander geändert werden. Auch wenn hier ein Register mit einem torgesteuerten Takt als Mechanismus zum Zuleiten von Daten auf die Busleitung vorgesehen ist, sind in ähnlicher Weise auch andere Formen der Realisierung vorgesehen. Zum Beispiel lässt sich ein Register mit Rückmelde- bzw. Rückkopplungs-Multiplexer, ein Einzelregister mit seinem eigenen Takt für jedes Bit oder ein nicht-torgesteuerter Taktgeber verwenden. Auch wenn hier die Busleitung als Busleitung mit drei Zuständen dargestellt ist, würde in gleicher Weise ein Fachmann auf diesem Gebiet erkennen, dass jede Art von Busleitung in den Rahmen der vorliegenden Erfindung fällt.
  • Wenn ein Lesevorgang eingeleitet wird (z. B. durch ein Lese-Freigabesignal (Read Enable), das vom Busmaster 304 geliefert wird) liefert das Peripheriegerät 306 an die Bus-Schnittstellenlogik 300 ein Signal – nPWAIT – um die Bus-Schnittstellenlogik 300 darüber zu informieren, dass das Peripheriegerät 306 asynchron ist und infolgedessen eine Synchronisierung vorgenommen werden muss. Bei vielen Bussystemen wird auch ein Signal dazu verwendet, die Dauer des Lesezugriffs bei langsamen Peripheriegeräten zu verlängern, also bei Peripherieeinheiten, die mit einer niedrigeren Frequenz laufen oder aus irgendwelchen anderen Gründen innerhalb eines Bus-Taktzyklus ihre Daten nicht bereit haben. Das dargestellte Ausführungsbeispiel für die Synchronisierlogik 308 kombiniert die Verwendung von nPWAIT dazu, der Bus-Schnittstellenlogik mitzuteilen, dass eine Synchronisierung vorgenommen werden muss, und um die Dauer des Lesezugriffs zu verlängern.
  • Anstatt im Peripheriegerät 306 einen Lesepufferspcicher zu verwenden, werden direkt nach einem Lesezugriff die Daten von einem Register 506 direkt zu einer Peripherie-Busleitung 510 geleitet. Gleich nach einem Lesezugriff sendet außerdem das Peripheriegerät 306 das Signal nPWAIT auf niedrigem Pegel (LOW). Wenn das Peripheriegerät 306 die Dauer des Lesezugriffs verlängern muss, wird nPWAIT über die Anzahl der Bustaktzyklen auf niedrigem Pegel gesendet, um welche das Peripheriegerät 306 eine Verlängerung des Lesezugriffs benötigt. Wenn das Peripheriegerät 306 nur die Bus-Schnittstellenlogik 300 darüber informieren muss, dass eine Synchronisierung vorzunehmen ist, wird nPWAIT auf niedrigem Pegel (LOW) über einen Bustaktzyklus gesendet. In diesem Fall dauert der Zugriff auf die Peripherie-Busleitung 3 Bustaktzyklen.
  • Wenn das Peripheriegerät 306 anzeigt, dass Synchronisierung erforderlich ist, führt die Bus-Schnittstellenlogik 300 Synchronisierung unter Verwendung der Synchronisierlogik 308 aus. Die Synchronisierlogik 308 umfasst ein Datenregister 500, das an die Peripherie-Busleitung 510 angeschlossen ist, sowie einen Vergleicher, dessen einer Eingang mit der Peripherie-Busleitung 510 verbunden ist und dessen anderer Eingang mit dem Ausgang des Datenregisters 500 verbunden ist, und ferner einen Multiplexer 504 zum Auswählen zwischen der Peripherie-Busleitung 510 und dem Ausgang des Datenregisters 500 als Eingang DIN zum Busmaster 304. Der Eingang DIN wird an ein (hier nicht dargestelltes) Register geliefert, das der Busmaster 304 verwendet, um die Daten vom Peripheriegerät 306 abzugreifen und zu übernehmen. Die Synchronisierlogik 308 umfasst außerdem die Logik 508 zum Steuern des Betriebs des Datenregisters 500, des Vergleichens 502 und des Multiplexers 504, um das in 4 dargestellte Verfahren durchzuführen.
  • Die Funktionsweise der Synchronisierlogik 508 wird in Verbindung mit 5b erläutert, in welcher Zeitsteuerungs-Wellenformen in dem Fall, dass nPWAIT für einen Bustaktzyklus nicht aktiviert ist, dargestellt sind, das für einen Bustaktzyklus nicht aktiviert ist. Auch wenn hier der Bustaktgeber PCLK in der Weise dargestellt ist, dass er die gleiche Frequenz und die gleiche Phasenbeziehung wie der Haupttaktgeber MCLK der Busleitung aufweist, ist dies nicht notwendig. Gelegentlich mag es zu einer geringfügigen Verschiebung zwischen diesen beiden Taktgebern kommen, oder es kann der Takt von PCLK von MCLK abgeteilt werden, weshalb eine geringere Frequenz vorliegt, was jeweils von der Realisierung des Systems abhängig ist. Im Verlauf eines Lesezugriffs wird gemäß der Darstellung nPWAIT während des ersten Bustaktzyklus des Lesevorgangs nicht aktiviert. Wenn nPWAIT nicht aktiviert wird, werden die während des ersten Buszyklus auf die Busleitung 510 gebrachten Daten – Data 1 – am Ende des ersten Bustaktzyklus in das Datenregister 500 eingelesen. Der Vergleicher 502 vergleicht während des zweiten Bustaktzyklus die Daten auf der Busleitung 510 – Data 2 – mit den Daten Data 1 im Datenregister 500. Zu Beginn des dritten Bustaktzyklus wird das Ergebnis des Vergleichens 502 dazu verwendet, den Multiplexer 504 so anzusteuern, dass entweder die Daten Data 1 aus dem Datenregister 500 oder die Daten auf der Busleitung 510 wähnend des dritten Bustaktzyklus ausgegeben wenden. Es ist ersichtlich, dass dann, wenn die Daten Data 1 gleich den Daten Data 2 sind, der Ausgang aus dem Datenregister 500 (also die Daten 1) vom Multiplexer 504 als Eingang DIN auf den Busmaster 304 ausgegeben wird. Wenn aber die Daten Data 1 nicht gleich den Daten Data 2 sind, werden die auf der Busleitung 510 vorhandenen Daten vom Multiplexer 504 als Eingang DIN auf den Busmaster 304 ausgegeben.
  • Die Bus-Schnittstellenlogik 308 liefert ein Wartesignal nWAIT, das den Busmaster 306 in einen Wartezustand versetzt, bis DIN gültig bzw. zulässig ist. Das Signal nWAIT versetzt den Busmaster 306 auf jede geeignete Weise in einen Wartezustand, zum Beispiel unter Deaktivierung bzw. Sperren des Taktgebers des Busmasters oder dadurch, dass eine Weiterschaltung bzw. ein Weiterschreiten des Busmasters 306 zum nächsten Zustand unter Ausführung von NOP-Operationen verhindert wird.
  • 5c stellt Zeitsteuerungs-Wellenformen in dem Fall dar, dass nPWAIT länger als über einen Taktzyklus vom Peripheriegerät 306 nicht aktiviert wird, um so die Dauer des Lesezugriffs zu verlängern. Wenn nPWAIT gemäß der Darstellung länger als über einen Bustaktzyklus nicht aktiviert wird, handelt es sich bei den Daten, die der Multiplexer 504 als DIN ausgibt, um die Daten auf der Busleitung 510 auf dem bzw. im letzten Zyklus des Zugriffs (d. h. dem Zyklus, der auf die Anstiegsflanke von nPWAIT folgt).
  • Auch wenn nPWAIT hier in der Weise dargestellt ist, dass angezeigt wird, dass Synchronisierung notwendig ist, und es zum Verlängern des Lesezugriffs herangezogen wird, ist es möglich, für jede Funktion zwei separate Signale zu verwenden. Weiterhin ist es auch möglich, die Notwendigkeit für ein Signal zu beseitigen, das darauf hinweist, dass das Peripheriegerät asynchron ist. Durch Führen einer Liste mit den Peripheriegeräten, die asynchron sind, und automatische Realisierung der vorliegenden Erfindung für diese Peripheriegeräte kann die Bus-Schnittstellenlogik immer noch Synchronisierung vornehmen, ohne dass ein Signal notwendig ist, um anzeigen, dass Synchronisierung benötigt wird.
  • Die vorliegende Erfindung wurde zwar im Zusammenhang mit einem bevorzugten Ausführungsbeispiel dargestellt und beschrieben, doch können daran verschiedene Veränderungen, Weglassungen und Ergänzungen in ihrer Form und in Einzelheiten vorgenommen werden, ohne vom Umfang der Erfindung abzuweichen, wie er in den Ansprüchen definiert wird.

Claims (17)

  1. Schaltung (308), welche für eine synchronisierte Weiterleitung von Daten von einem ersten Bauteil mit einem ersten Taktgeberbereich zu einem zweiten Bauteil mit einem zweiten Taktgeberbereich sorgt, die folgendes aufweist: – ein Datenregister (500) zum Abgreifen von Daten, die während eines ersten Bustaktzyklus von dem ersten Bauteil auf eine Datenbusleitung (510) gegeben werden; – einen Vergleicher (502) zum Vergleichen der Daten auf der Datenbusleitung während eines zweiten, darauf folgenden Bustaktzyklus mit den vom Datenregister abgegriffenen Daten, dadurch gekennzeichnet, dass sie des Weiteren folgendes aufweist: einen Multiplexer (504) zur Ausgabe der abgegriffenen Daten an das zweite Bauteil während eines dritten, darauf folgenden Buszyklus, wenn die abgegriffenen Daten gleich den Daten auf der Datenbusleitung während des zweiten, nachfolgenden Bustaktzyklus sind, und zur Ausgabe von Daten auf der Datenbusleitung an das zweite Bauteil während des dritten, nachfolgenden Bustaktzyklus, wenn die abgegriffenen Daten nicht gleich den Daten auf der Datenbusleitung während des zweiten Bustaktzyklus sind.
  2. Schaltung, welche für eine synchronisierte Weiterleitung von Daten von einem ersten Bauteil mit einem ersten Taktgeberbereich zu einem zweiten Bauteil mit einem zweiten Taktgeberbereich sorgt, nach Anspruch 1, bei welcher das erste Bauteil ein asynchrones Peripheriegerät in einem Computersystem ist und das zweite Bauteil ein Busleitungs-Hauptbauelement ist.
  3. Schaltung, welche für eine synchronisierte Weiterleitung von Daten von einem ersten Bauteil mit einem ersten Taktgeberbereich zu einem zweiten Bauteil mit einem zweiten Taktgeberbereich sorgt, nach Anspruch 1, bei welcher das erste Bauteil in einer Liste gehalten wird, in welcher angegeben ist, dass Synchronisierung erforderlich ist, wenn Daten zu dem zweiten Bauteil weitergeleitet werden, und bei welcher die Schaltung die Synchronisierung automatisch vornimmt, wenn die Daten zu dem zweiten Bauteil weitergeleitet werden.
  4. Schaltung, welche für eine synchronisierte Weiterleitung von Daten von einem ersten Bauteil mit einem ersten Taktgeberbereich zu einem zweiten Bauteil mit einem zweiten Taktgeberbereich sorgt, nach Anspruch 1, bei welcher das erste Bauteil an die Schaltung ein Signal liefert, das anzeigt, dass Synchronisierung nötig ist, wenn die Daten zu dem zweiten Bauteil weitergeleitet werden.
  5. Schaltung, welche für eine synchronisierte Weiterleitung von Daten von einem ersten Bauteil mit einem ersten Taktgeberbereich zu einem zweiten Bauteil mit einem zweiten Taktgeberbereich sorgt, nach Anspruch 1, bei welcher das erste Bauteil ein Signal liefert, das anzeigt, dass eine Zeitdauer für die Weiterleitung von Daten zu dem zweiten Bauteil einer Verlängerung bedarf.
  6. Schaltung, welche für eine synchronisierte Weiterleitung von Daten von einem ersten Bauteil mit einem ersten Taktgeberbereich zu einem zweiten Bauteil mit einem zweiten Taktgeberbereich sorgt, nach Anspruch 1, bei welcher das erste Bauteil an die Schaltung ein einzelnes Signal liefert, das sowohl zur Anzeige dessen dient, dass Synchronisierung nötig ist, als auch zur Anzeige, dass eine Zeitdauer für die Weiterleitung von Daten zu dem zweiten Bauteil einer Verlängerung bedarf.
  7. Verfahren für die synchronisierte Weiterleitung von Daten von einem ersten Bauteil mit einem ersten Taktgeberbereich zu einem zweiten Bauteil mit einem zweiten Taktgeberbereich, welches folgende Schritte umfasst: – Abgreifen von Daten (402), die von dem ersten Bauteil während eines ersten Bustaktzyklus auf eine Datenbusleitung gegeben werden, – Vergleichen der Daten (404) der Daten auf der Datenbusleitung während eines zweiten, darauf folgenden Bustaktzyklus mit den abgegriffenen Daten, – wenn die abgegriffenen Daten gleich den Daten auf der Datenbusleitung während eines zweiten, nachfolgenden Bustaktzyklus sind: Ausgeben der abgegriffenen Daten an das zweite Bauteil während eines dritten, nachfolgenden Buszyklus (406), und – wenn die abgegriffenen Daten nicht gleich den Daten auf der Datenbusleitung während des zweiten, nachfolgenden Bustaktzyklus sind: Ausgeben von Daten auf die Datenbusleitung während des dritten, nachfolgenden Bustaktzyklus an das zweite Bauteil (408).
  8. Verfahren für eine synchronisierte Weiterleitung von Daten von einem ersten Bauteil mit einem ersten Taktgeberbereich zu einem zweiten Bauteil mit einem zweiten Taktgeberbereich nach Anspruch 7, bei welchem das erste Bauteil ein asynchrones Peripheriegerät in einem Computersystem ist und das zweite Bauteil ein Busleitungs-Hauptbauelement ist.
  9. Verfahren für eine synchronisierte Weiterleitung von Daten von einem ersten Bauteil mit einem ersten Taktgeberbereich zu einem zweiten Bauteil mit einem zweiten Taktgeberbereich nach Anspruch 7, bei welchem das erste Bauteil in einer Liste gehalten wird, in welcher angegeben ist, dass Synchronisierung erforderlich ist, wenn Daten zu dem zweiten Bauteil weitergeleitet werden, und bei welchem die Schaltung die Synchronisierung automatisch vornimmt, wenn die Daten zu dem zweiten Bauteil weitergeleitet werden.
  10. Verfahren für eine synchronisierte Weiterleitung von Daten von einem ersten Bauteil mit einem ersten Taktgeberbereich zu einem zweiten Bauteil mit einem zweiten Taktgeberbereich nach Anspruch 7, bei welchem das erste Bauteil ein Signal an die Schaltung liefert, das anzeigt, dass Synchronisierung nötig ist, wenn die Daten zu dem zweiten Bauteil weitergeleitet werden.
  11. Verfahren für eine synchronisierte Weiterleitung von Daten von einem ersten Bauteil mit einem ersten Taktgeberbereich zu einem zweiten Bauteil mit einem zweiten Taktgeberbereich nach Anspruch 7, bei welchem das erste Bauteil ein Signal liefert, das anzeigt, dass eine Zeitdauer für die Weiterleitung von Daten zu dem zweiten Bauteil einer Verlängerung bedarf.
  12. Verfahren für eine synchronisierte Weiterleitung von Daten von einem ersten Bauteil mit einem ersten Taktgeberbereich zu einem zweiten Bauteil mit einem zweiten Taktgeberbereich nach Anspruch 7, bei welchem bei welcher das erste Bauteil an die Schaltung ein einzelnes Signal liefert, das sowohl zur Anzeige dessen dient, dass Synchronisierung nötig ist, als auch zur Anzeige, dass eine Zeitdauer für die Weiterleitung von Daten zu dem zweiten Bauteil einer Verlängerung bedarf.
  13. Computer, welcher folgendes aufweist: ein asynchrones Peripheriegerät (306), welches ausgelesene Daten dadurch an ein Busleitungs-Hauptbauelement (304) übermittelt, dass die ausgelesenen Daten auf eine Peripherie-Busleitung (302) gegeben werden; eine Bus-Schnittstellenlogik (308) zum Synchronisieren der ausgelesenen Daten, wobei die Bus-Schnittstellenlogik folgendes umfasst: – ein Datenregister (500) zum Abgreifen von Lesedaten auf der Peripherie-Busleitung während eines ersten Bustaktzyklus; – einen Vergleicher (502) zum Vergleichen der Lesedaten auf der Peripherie-Busleitung während eines zweiten, darauf folgenden Bustaktzyklus mit den abgegriffenen Lesedaten; dadurch gekennzeichnet, dass er des Weiteren folgendes aufweist: einen Multiplexer (504) zur Ausgabe der abgegriffenen Lesedaten während eines dritten, darauf folgenden Buszyklus, wenn die abgegriffenen Lesedaten gleich den Lesedaten auf der Datenbusleitung während eines zweiten, nachfolgenden Bustaktzyklus sind, und zur Ausgabe von abgegriffenen Lesedaten auf die Datenbusleitung während des dritten, nachfolgenden Bustaktzyklus, wenn die abgegriffenen Lesedaten nicht gleich den Lesedaten auf der Datenbusleitung während eines zweiten Bustaktzyklus sind.
  14. Computer nach Anspruch 13, bei welchem das Peripheriegerät in einer Liste gehalten wird, in welcher angegeben ist, dass Synchronisierung für einen Lesezugriff erforderlich ist, und bei welchem die Schaltung die Synchronisierung automatisch vornimmt, wenn ein Lesezugriff vorgenommen wird.
  15. Computer nach Anspruch 13, bei welchem das Peripheriegerät an die Buslogik ein Signal liefert, das anzeigt, dass bei Vornahme eines Lesezugriffs Synchronisierung benötigt wird.
  16. Computer nach Anspruch 13, bei welchem das Peripheriegerät ein Signal liefert, das anzeigt, dass eine Zeitdauer für die Übermittlung von Daten an das zweite Bauteil einer Verlängerung bedarf.
  17. Computer nach Anspruch 13, bei welchem das Peripheriegerät an die Buslogik ein einzelnes liefert, das sowohl zur Anzeige dessen dient, dass Synchronisierung nötig ist, als auch zur Anzeige, dass eine Zeitdauer für die Weiterleitung von Daten zu dem zweiten Bauteil einer Verlängerung bedarf.
DE60203019T 2001-10-16 2002-10-09 Datensynchronisation auf einem peripheriebus Expired - Lifetime DE60203019T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/981,021 US6907538B1 (en) 2001-10-16 2001-10-16 Circuit and method for providing centralized synchronization for the transportation of data between devices in a different clock domains on a data bus
US981021 2001-10-16
PCT/US2002/032402 WO2003034236A2 (en) 2001-10-16 2002-10-09 Data synchronization on a peripheral bus

Publications (2)

Publication Number Publication Date
DE60203019D1 DE60203019D1 (de) 2005-03-24
DE60203019T2 true DE60203019T2 (de) 2005-10-27

Family

ID=25528037

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60203019T Expired - Lifetime DE60203019T2 (de) 2001-10-16 2002-10-09 Datensynchronisation auf einem peripheriebus

Country Status (6)

Country Link
US (1) US6907538B1 (de)
EP (1) EP1436685B1 (de)
CN (1) CN100405253C (de)
AT (1) ATE289432T1 (de)
DE (1) DE60203019T2 (de)
WO (1) WO2003034236A2 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003157228A (ja) * 2001-11-20 2003-05-30 Fujitsu Ltd データ転送回路
US7116601B2 (en) * 2004-12-28 2006-10-03 Via Technologies, Inc. Pseudo-synchronization of the transportation of data across asynchronous clock domains
US7643591B2 (en) * 2006-07-26 2010-01-05 International Business Machines Corproation Transition balancing for noise reduction /Di/Dt reduction during design, synthesis, and physical design
US8255708B1 (en) * 2007-08-10 2012-08-28 Marvell International Ltd. Apparatuses and methods for power saving in USB devices
US7823107B2 (en) * 2007-10-19 2010-10-26 International Business Machines Corporation Transition balancing for noise reduction/Di/Dt reduction during design, synthesis, and physical design
DE102008004857B4 (de) * 2008-01-17 2013-08-22 Entropic Communications, Inc. Verfahren zur Übertragung von Daten zwischen wenigstens zwei Taktdomänen
US9265953B2 (en) * 2012-04-25 2016-02-23 Medtronic, Inc. Handling race conditions during data transfer between multiple modules of an electronic device

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0375794A1 (de) * 1988-12-24 1990-07-04 International Business Machines Corporation Methode zur Synchronisierung von Signalen, die auf verschiedenen Chips mit On-Chip-Taktgebern verschiedener Frequenz erzeugt werden
DE4139340A1 (de) 1991-11-29 1993-06-03 Philips Patentverwaltung Schaltungsanordnung zum abtasten eines signals
US5602878A (en) 1994-09-23 1997-02-11 Intel Corporation Method of delivering stable data across an asynchronous interface
US5905766A (en) 1996-03-29 1999-05-18 Fore Systems, Inc. Synchronizer, method and system for transferring data
US6260152B1 (en) 1998-07-30 2001-07-10 Siemens Information And Communication Networks, Inc. Method and apparatus for synchronizing data transfers in a logic circuit having plural clock domains
US6715095B1 (en) * 2000-10-02 2004-03-30 Iomeca Corporation Method and circuitry for switching from a synchronous mode of operation to an asynchronous mode of operation without any loss of data

Also Published As

Publication number Publication date
WO2003034236A3 (en) 2003-11-06
EP1436685B1 (de) 2005-02-16
CN100405253C (zh) 2008-07-23
ATE289432T1 (de) 2005-03-15
DE60203019D1 (de) 2005-03-24
US6907538B1 (en) 2005-06-14
CN1568448A (zh) 2005-01-19
WO2003034236A2 (en) 2003-04-24
EP1436685A2 (de) 2004-07-14

Similar Documents

Publication Publication Date Title
DE69229162T2 (de) Synchronisiergerät und Verfahren
DE69305049T2 (de) Hochfrequenz- cmos-schaltung mit geringen verbrauch
DE60216811T2 (de) Störungsfreie taktauswahlschaltung
DE68923834T2 (de) Leistungsfähiges Protokoll für die Übertragung zwischen asynchronen Vorrichtungen.
DE69733407T2 (de) Schnittstelle zur datenübertragung zwischen zwei taktbereichen
DE69634529T2 (de) Serielle schnittstelle die, in zwei unterschiedlichen modi, serielle daten zu übertragen imstande ist
DE69509932T2 (de) Vorrichtung und Verfahren um Chips mit grösserer Geschwindigkeit als die des Buses synchron zu betreiben
DE60036777T2 (de) Gerät zur Signalsynchronisierung zwischen zwei Taktbereichen
DE69028253T2 (de) Mikrocomputersystem mit Mikroprozessor-Rücksetzschaltung
EP0190554B1 (de) Verfahren und Schaltungsanordnung zum Umschalten einer taktgesteuerten Einrichtung mit mehreren Betriebszuständen
DE19882870C2 (de) Verfahren und Einrichtung zum Weiterleiten eines Signals zwischen synchronen Taktdomänen, die bei einem nicht-ganzzahligen Frequenzverhältnis arbeiten
DE19914986B4 (de) Vorrichtung zum Verzögern eines Taktsignals
DE3110196A1 (de) Datenverarbeitungssystem
DE69819648T2 (de) Zweitorpuffer
DE69802426T2 (de) Taktschema für digitales signalprozessorsystem
DE60203019T2 (de) Datensynchronisation auf einem peripheriebus
DE102004014201B4 (de) Steuerungsanordnung für einen programmierbaren Taktsynchronisierer und Computersystem mit einer solchen Anordnung
DE3235762A1 (de) Verfahren und vorrichtung zur synchronisation von datenverarbeitungsanlagen
DE60003164T2 (de) Reduzierung von digitalem schaltungsrauschen in ic's mit gemischten signalen
DE102005019568B4 (de) Speichereinrichtung, Verwendung derselben und Verfahren zur Synchronisation eines Datenwortes
DE102004011673B3 (de) Vorrichtung zur Datensynchronisation
DE19952747B4 (de) Rechnerchipanordnung für eine Rechnerhauptplatine und Verfahren zu deren Verwendung
DE2938929A1 (de) Dv-system
DE19519944A1 (de) Kommunikationsschaltung
EP0576711B1 (de) Datenverarbeitungssystem mit mehreren Taktfrequenzen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: MEDIA TEK INC., HSIN-CHU, HSIEN, TW