DE60015939T2 - Verfahren und schaltung um an zwei enden getakten daten zu empfangen - Google Patents

Verfahren und schaltung um an zwei enden getakten daten zu empfangen Download PDF

Info

Publication number
DE60015939T2
DE60015939T2 DE60015939T DE60015939T DE60015939T2 DE 60015939 T2 DE60015939 T2 DE 60015939T2 DE 60015939 T DE60015939 T DE 60015939T DE 60015939 T DE60015939 T DE 60015939T DE 60015939 T2 DE60015939 T2 DE 60015939T2
Authority
DE
Germany
Prior art keywords
data
signal
output
bus
local clock
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE60015939T
Other languages
English (en)
Other versions
DE60015939D1 (de
Inventor
Kha Nguyen
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.)
QLogic LLC
Original Assignee
QLogic LLC
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 QLogic LLC filed Critical QLogic LLC
Application granted granted Critical
Publication of DE60015939D1 publication Critical patent/DE60015939D1/de
Publication of DE60015939T2 publication Critical patent/DE60015939T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Circuits Of Receivers In General (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Communication Control (AREA)
  • Bus Control (AREA)

Description

  • Hintergrund der Erfindung
  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich allgemein auf Verbesserungen an Computersystemen und, genauer gesagt, aber ohne hierauf beschränkt zu sein, auf eine Vorrichtung zum Empfangen von Daten an beiden Flanken eines Steuersignals.
  • Beschreibung des verwandten Standes der Technik
  • Computersysteme enthalten üblicherweise eine oder mehrere periphere Speichereinrichtungen, die verwendet werden, um Daten zu speichern oder Zugriff auf Daten zu gewähren. Ein üblicher Typ von peripheren Speichereinrichtungen ist ein Festplattenlaufwerk. Andere Typen peripherer Speichereinrichtungen umfassen Bandlaufwerke, CD-Laufwerke (sowohl nur lesbare als auch lesbare/schreibbare) und DVD-Einrichtungen.
  • Die grundlegendsten Teile eines Festplattenlaufwerks umfassen zumindest eine Platte oder "Scheibe", welche rotiert, einen Betätiger, welcher einen Wandler an verschiedene Positionen über der Platte bewegt, und eine elektrische Schaltung, die verwendet wird, um Daten auf die Platte zu schreiben und von der Platte zu lesen. Das Plattenlaufwerk weist außerdem eine Schaltung auf, um Daten zu codieren, so daß Daten erfolgreich von der Plattenoberfläche beschafft und auf die Plattenoberfläche geschrieben werden können. Die Schaltung zum Codieren der Daten und die Schaltung, die verwendet wird, um die Lese- und Schreibvorgänge auf der Platte auszuführen, befinden sich üblicherweise in einer Steuerung. Die Steuerung kann als ein integrierter Schaltkreis hergestellt sein, welcher innerhalb des Festplattenlaufwerks angeordnet ist. Ein Festplattenmikroprozessor ("Mikroprozessor") kann entweder in den integrierten Schaltkreis der Steuerung eingebettet sein oder extern hierzu angeordnet sein.
  • Der Mikroprozessor steuert die meisten Vorgänge des Festplattenlaufwerks, indem er den Betrieb der Steuerung konfiguriert und überwacht. Beispielsweise kann ein Host-Computer einen Vorgang auslösen, indem er einen Lesebefehl an die Steuerung sendet. Der Mikroprozessor erkennt den Befehl und stellt die Register in der Steuerung ein, so daß sie den Lesevorgang ausführen. Die Daten werden dann von der Platte in einen Puffer gelesen. Wenn ein minimaler Betrag an Daten sich in dem Puffer befindet, stellt der Mikroprozessor die Steuerung so ein, daß sie die Daten von dem Puffer an den Host sendet.
  • Der Vorgang des Übertragens von Daten von einem Host zu einer Festplatte umfaßt typischerweise zwei Schritte. Zunächst werden die Daten von einem Bus, der mit dem Host verbunden ist, an einen Datenpuffer innerhalb der Plattensteuerung oder in Verbindung mit der Plattensteuerung verschoben. Als zweites werden die Daten von dem Puffer auf die Platte übertragen durch Magnetisierung von Bereichen der Platte. Der erste Schritt wird allgemein als der "externe Datentrans fer" bezeichnet. Der einfachste Puffer ist einfach ein Array aus Speicherzellen innerhalb der Steuerung. Ein Puffer kann auch ein externer dynamischer Speicher mit wahlfreiem Zugriff (DRAM) außerhalb der Steuerung sein. Die Festplattensteuerung ermöglicht diese Übertragung von Daten von einem Host-Bus zu dem Puffer unter Verwendung einer Puffersteuerung. Die Puffersteuerung umfaßt eine Logik für das Übertragen von Daten zu und von dem Puffer. Die Trennung zwischen den Übertragungen von dem Host zu dem Puffer und von dem Puffer zu der Platte wird verwendet, um die Tatsache zu berücksichtigen, daß ein Sektor üblicherweise als eine einzige Einheit beschrieben oder gelesen wird. Auf diese Weise wird der Puffer verwendet, um zwei Datenraten bereitzustellen, nämlich eine für Datenübertragungen von dem System zu dem Puffer und die andere für Datenübertragungen von dem Puffer zu der physikalischen Platte.
  • Das Host-System weist üblicherweise einen Host-Mikroprozessor auf, der verwendet wird, um die Vorgänge des Host-Systems zu steuern. Die Host-Einheit enthält typischerweise einen Adapter für periphere Geräte, wie z.B. eine IDE-Plattensteuerung, um die Schnittstelle zwischen dem Host-System und einer Speichereinrichtung zu ermöglichen. Das Host-System enthält auch einen Speicher, der während des Betriebs durch den Host verwendet wird.
  • Die externe Datenübertragung kann entweder als eine synchrone oder als eine asynchrone Übertragung erfolgen. Digitale Schaltkreise in einem elektronischen System werden typischerweise durch ein gemeinsames Taktsignal oder durch eine Mehrzahl von Taktsignalen gesteuert, die von einem gemeinsamen Taktsignal abgeleitet werden. Demnach werden die Schaltkreise in Bezug aufeinander "synchronisiert", so daß ein Signal, welches durch einen ersten Schaltkreis in dem System erzeugt wird, von anderen Schaltkreisen in dem System empfangen und von deren Takt aufgenommen werden kann, da die Signale, die durch den ersten Schaltkreis erzeugt wurden, eine bekannte Phasenbeziehung bezüglich der gemeinsamen Systemtaktsignale haben. Die bekannten Phasenbeziehungen existieren typischerweise nicht für Schaltkreise, die durch unabhängige Taktsignale gesteuert werden. Beispielsweise verwenden periphere Komponenten eines Computersystems oftmals unabhängige Takte, so daß die periphere Komponente mit einer bekannten Frequenz ohne Bezug zu der Betriebsfrequenz des Computersystems arbeitet, mit welchem sie verbunden ist. Auch wenn die Taktsignale einer peripheren Komponente und eines Computersystems dieselbe oder ähnliche Frequenzen haben mögen, verursachen selbst sehr kleine Unterschiede in den Taktfrequenzen, daß die Phasenbeziehungen zwischen den Taktsignalen variieren. Demnach sind die unabhängigen Taktsignale relativ zueinander "asynchron". Wenn daher ein Signal durch einen Schaltkreis erzeugt wird, welcher durch einen Takt gesteuert wird, der asynchron mit dem Systemtakt ist, so kann das Signal nicht einfach durch die Schaltkreise des Computersystems bereitgestellt und durch die von dem Systemtakt abgeleiteten Taktsignale getaktet werden. Stattdessen muß das Signal mit dem Systemtakt synchronisiert werden, bevor das Signal den Schaltkreisen des Computersystems zugeführt werden kann. Eine Synchronisation erreicht man durch Bereitstellen desselben asynchronen Signals, welches am Schaltkreisausgang empfangen wurde, mit einer Phase und Rate bzw. Geschwindigkeit, die durch einen lokalen Takt verwendet wird. Demnach beinhaltet eine asynchrone Übertragung von Daten im Gegensatz zu einer synchronen Übertragung den zusätzlichen Schritt der Synchronisierung der Datenphase zu derjenigen, die durch den Empfänger verwendet wird. Daher muß eine Empfangseinheit in einem asynchronen Übertragungsbetrieb zwei Funktionen bereitstellen, einen der Datenerfassung und den anderen der Datensynchronisation. Die Synchronisation von Daten, die übertragen werden, wird üblicherweise erreicht durch Senden von asynchronen Steuersignalen zusammen mit den Daten, um das Vorhandensein gültiger Daten auf einem Bus anzuzeigen.
  • Die ATA- (AT-Anbringungs-) oder IDE-Schnittstelle ist ein Beispiel eines Protokolls, das asynchrone Datenübertragungen verwendet. Die ATA-Schnittstelle wurde ursprünglich definiert als ein Standard für einen eingebetteten festen Plattenspeicher auf IBM-ATTM kompatiblen Personal Computern. "AT" steht für Advanced Technology (fortgeschrittene Technik), was sich auf den zur damaligen Zeit revolutionären 16-Bit-Bus bezog, der in dem ATTM-Computer verwendet wurde. Eine DMA-Übertragung (Direct Memory Access – Übertragung mit direktem Speicherzugriff) ist ein Beispiel einer asynchronen Datenübertragung innerhalb der ATA-Schnittstelle. Beispielsweise würde ein DMA-Schreibvorgang damit beginnen, daß der Host eine Adresse an ein ATA-Zielregister der Steuerung schreibt, um die logischen Blockadressen (LBA) der Position in dem Plattenlaufwerk anzugeben, wo die Daten gespeichert werden sollen. Dann schreibt der Host einen Befehl an ein Befehlsregister, welches von der Steuerung verwendet wird, um die auszuführende Operation zu spezifizieren. Beispielsweise könnte ein Schreibvorgangsbefehl ein "Schreibe DMA"-Befehl sein, der in das Befehlsregister geschrieben wird. Der Mikroprozessor stellt dann die Register in der Steuerung entsprechend einem auf einem ROM gespeicherten Firmware-Programm ein. Die Firmware umfaßt die Abläufe, denen der Mikroprozessor folgt, wenn er Befehle in dem Befehlsregister verarbeitet. Diese Prozedur kann in Abhängigkeit von dem verwendeten Übertragungsprotokoll variieren.
  • Wenn der Host die Register einrichtet bzw. konfiguriert, ist die Steuerung bereit, Daten zu empfangen oder bereitzustellen. Beispielsweise sendet während eines DMA-Schreibvorgangs die Host-Bussteuerung Daten herüber, indem Daten auf dem Datenbus angeordnet und Abtastsignale vorgebracht werden, die den dort plazierten Daten entsprechen. Die Steuerung erfaßt die vorgebrachten Abtastsignale und empfängt Daten von dem Bus, und zwar ein Datensegment für jeden erfaßten Abtasttakt. Die Steuerung synchronisiert auch die Daten für den Steuerungstakt. Auf diese Weise kann der Host so viele Daten übermitteln, wie er möchte, ohne auf die Taktphase der Zielseite Rücksicht zu nehmen, solange jeweils ein Datenabschnitt durch ein Abtast- bzw. Taktsignal begleitet wird, welches mit den Busspezifikationen übereinstimmt.
  • Die Rate der Datenübertragung von dem Bus wird durch die Busspezifikation bestimmt, welche die erforderlichen Pulsbreiten und -geschwindigkeiten bzw. -raten für die speziell verwendete Schnittstelle definiert. Der ATA-1-Standard erfordert eine minimale Zykluszeit von 480 ns für den Schreibvorgang. Daher kann bei Verwendung eines ATA-1-Busses, welcher 16 Bit breit ist, eine Steuerung Daten mit einer maximalen Rate von einmal alle 480 ns oder 4,1 MB/sec empfangen. Der ATA-2- und der ATA-3-Standard erfordern eine minimale Zykluszeit von 120 ns, was einen Grenzwert von 16,66 MB/sec für die Datenübertragungsrate mit sich bringt. Der Standard kann verbessert werden, um die Datenübertragungsrate zu steigern, indem die minimale Zykluszeit reduziert wird, wenn Abschlußeinrichtungen und eine neue Verkabelung, wie z.B. PCI-Adapter, verwendet werden.
  • Andere Verkabelungen und Abschlußeinrichtungen sind jedoch teuer und können nicht in einfacher Weise in bereits vorhandenen Systemen installiert werden.
  • Es ist ein neuer Standard angenommen worden, der als Ultra-ATA- oder Ultra-DMA-Protokoll bekannt ist. Das neue Ultra-DMA-Protokoll verdoppelt die vorherige Übertragungsrate im Burst-Betrieb von 16,6 MB/sec auf 33 MB/sec, indem es zuläßt, daß Daten unter Ansprechen auf beide Flanken eines Abtast- bzw. Taktsignals gesendet werden. Auf diese Weise werden zweimal so viele Daten pro Abtast- bzw. Taktzyklus übertragen, ohne die Frequenz des Abtastsignals zu verändern und ohne das Erfordernis von Abschlußeinrichtungen oder einer anderen Verkabelung.
  • Um das Ultra-DMA-Protokoll zu unterstützen, müssen Festplattensteuerungen in der Lage sein, Daten, die durch den Host an beiden Flanken des Abtastsignals gesendet werden, zu empfangen. ATA-Prozessoren für den ATA-Standard vor den Ultra-DMA-Versionen sind dafür ausgelegt, Daten an einer einzigen Flanke des Abtastsignals zu empfangen. Die Taktrate für die Steuerungen ist so eingestellt, daß sie das Empfangen der Daten an einer einzelnen Flanke eines Abtast- bzw. Abtastfenstersignals empfangen kann und nicht an beiden Flanken. Daher müssen die Steuerungen schnellere Taktraten verwenden, um mit dem schnelleren Strom eingehender Daten schrittzuhalten. Die Daten von dem Bus müssen schnell genug eingetaktet werden, bevor sie nicht mehr gültig sind. Der Schaltkreis und das Verfahren gemäß der vorliegenden Erfindung bieten ein effizientes und zuverlässiges Verfahren, entlang beider Flanken getaktete Daten ohne das Erfordernis einer schnelleren Taktrate der Steuerung zu empfangen.
  • Die US 4,811,364 offenbart eine Anordnung zum Senden von Daten zwischen zwei Teilsystemen eines Computersystems. Ein Takt, der durch ein Senden des Teilsystems erzeugt wird, wird mit den Daten an ein empfangendes Teilsystem mit in etwa derselben Verzögerung übermittelt. Die Daten werden in Form eines Datenvektors gesendet, der parallel in einem Paar von Zustandseinrichtungen empfangen wird, wobei die Daten abwechselnd aufgenommen werden und eine Daten an der steigenden Flanke des übermittelten Taktes und die andere Daten an der fallenden Flanke des übermittelten Taktes aufnimmt.
  • Die US 5,844,844 offenbart ein programmierbares Speicherelement, welches dafür ausgelegt ist, neue Daten sowohl entlang der steigenden als auch entlang der fallenden Flanken des Taktes einzutakten und dadurch optional mit der doppelten Frequenz eines verteilten bzw. übermittelten Taktes zu arbeiten. Das Speicherelement enthält zwei Zwischenspeicher, von denen einer mit der steigenden Flanke des Taktes und der andere mit der fallenden Flanke des Taktes angesteuert bzw. ausgelöst wird.
  • Die europäische Patentanmeldung EP 0 468 732 A2 offenbart eine Sequenzsteuerung für die Verwendung in einer Speichereinrichtung, die in der Weise wirksam ausgelegt ist, daß sie eine Mehrzahl von Ausgangssignalen bereitstellt, welche wahlweise entweder auf der steigenden oder auf der fallenden Flanke eines Taktsignals beruhen. Die Vorrichtung enthält eine Mehrzahl von Gruppen bistabiler Einrichtungen, wie z.B. Flip-Flops. Eine Gruppe der bistabilen Einrichtungen wird mit der steigenden Flanke des Taktes getriggert (ausgelöst), die andere Gruppe wird mit der fallenden Flanke des Takts getriggert. Die Ausgänge der Flip-Flops werden mit einer Mehrzahl von Ga teeinrichtungen verbunden, welche ihrerseits durch logische Eingangsauswahlsignale gesteuert werden, um die Ausgangssignale für Zwecke der Speichersteuerung bereitzustellen.
  • Zusammenfassung der Erfindung
  • Verschiedene Aspekte und Merkmale der vorliegenden Erfindung sind in den anhängenden Ansprüchen definiert.
  • Ausführungsformen der vorliegenden Erfindung stellen einen Schaltkreis bereit, um Daten zu empfangen, die asynchron an beiden Flanken eines Steuersignals empfangen werden. Der Schaltkreis kann beispielsweise in einer Ultra-DMA-Steuerung oder in einer anderen Art von Einrichtung verwendet werden, die Daten entsprechend dem an zwei Flanken getakteten, asynchronen Übertragungsschema empfängt. Ein wichtiger Vorteil des Schaltkreises liegt darin, daß er es ermöglicht, daß die an beiden Flanken getakteten Daten unter Verwendung derselben Taktfrequenz der Steuerung empfangen werden können, die verwendet werden würde, falls die Daten nur entsprechend einer einzigen Flanke übertragen werden würden. Demnach ermöglicht der Schaltkreis beispielsweise, daß eine Ultra-DMA-Steuerung verwendet wird, die den üblichen 16,66 MHz Steuerungstakt verwendet, der üblicherweise in ATA-3-Steuerungen verwendet wird.
  • Der Schaltkreis umfaßt einen Abtast- bzw. Übertragungstakt-Generator, der Abtast- bzw. Übertragungssignale in Reaktion auf die Flanken des Steuersignals erzeugt, welches die Daten begleitet. Die Daten von dem Bus werden für zwei temporäre Speichereinheiten bereitgestellt. Daten, welche einer ersten Flanke des Steuersignals entsprechen, werden in einer ersten temporären Speichereinheit angeordnet. Daten, die einer zweiten Flanke des Steuersignals entsprechen, werden in einer zweiten temporären Speichereinheit angeordnet. Die Daten werden dann synchron an einem Ausgang bereitgestellt, indem die Abtast- bzw. Übertragungssignale verwendet werden, die durch den Abtastgenerator erzeugt werden, um je eine der temporären Speichereinheiten auszuwählen, um von dort die Daten weiterzuleiten.
  • Der Abtastgenerator liefert Impulse in Reaktion auf beide Flanken eines Steuersignals, während er dieselbe Taktrate verwendet, die für das Bereitstellen von Impulsen in Reaktion auf eine einzelne Flanke desselben Steuersignals bereitgestellt werden. Der Abtastgenerator ist in der Lage, eine langsame Taktrate zu verwenden, als diejenige, die für einen Impulsgenerator einer einzelnen Einheit benötigt wird, indem er die Aufgaben zur Erzeugung von Impulsen zwischen zwei Sätzen von Komponenten aufteilt. Ein Satz wird verwendet, um Impulse für eine erste Flanke zu erzeugen, und der andere wird verwendet, um Impulse für eine zweite Flanke zu erzeugen.
  • Zusätzlich stellt die vorliegende Erfindung ein Verfahren zum Empfangen von Daten von einem Bus bereit, wobei die Daten auf dem Bus sowohl an der steigenden als auch an der fallenden Flanke eines Steuersignals plaziert werden. Das Verfahren umfaßt das Erzeugen eines synchronen Impulses (synchronisiert zu dem Takt der Steuerung) in Reaktion auf jeden Übergang des Steuersignals und leitet die Daten an temporäre Speichereinheiten, so daß alle entlang einer ersten Flanke des Steuersignals empfangenen Daten an eine erste Einheit weitergeleitet werden und alle entlang einer zweiten Flanke des Steuersignals empfangenen Daten an eine zweite Einheit weitergeleitet werden. Die Daten werden dann synchron zu dem Steuerungstakt an einem Ausgang des Empfangsschaltkreises bereitgestellt, indem die synchronisierten Impulse verwendet werden, um mit einer Auswahl der Daten zwischen den beiden temporären Speichereinheiten abzuwechseln.
  • Der synchrone Impulsgenerator kann aus einem Paar von Impulserzeugungseinheiten aufgebaut sein, die mit der Steuerleitung verbunden sind. Eine der Impulserzeugungseinheiten weist einen invertierten Eingangsanschluß auf. Die Impulserzeugungseinheiten können drei Zwischenspeicher aufweisen. Der erste Zwischenspeicher wird verwendet, um die Flanke des Steuersignals zu erfassen. Der zweite Zwischenspeicher wird verwendet, um die Antwort des ersten Zwischenspeichers auf die Flanke für die Dauer eines einzigen Taktzyklus zu speichern. Der dritte Zwischenspeicher wird verwendet, um den Zustand des zweiten Zwischenspeichers an einen Ausgang weiterzuleiten und um den Schaltkreis für einen Taktzyklus zurückzusetzen, so daß der resultierende Impuls einen Taktzyklus breit ist. Der Systemtakt wird mit den zweiten und dritten Zwischenspeichern verbunden, so daß der sich ergebende Impuls mit dem Systemtakt synchronisiert ist. Dadurch wird die Empfangseinheit verwendet, um asynchrone Daten von einem an zwei Flanken getakteten Bus zu empfangen und die Daten synchron für eine Steuerung eines Datenpuffers bereitzustellen.
  • Kurze Beschreibung der Figuren
  • Die vorstehenden Merkmale und weitere Merkmale der vorliegenden Erfindung werden nun unter Bezug auf die Figuren einer bevorzugten Ausführungsform eines Plattenlaufwerks beschrieben. In den Figuren haben dieselben Bauteile jeweils dieselben Bezugszahlen. Die dargestellte Ausführungsform soll die Erfindung veranschaulichen, jedoch nicht beschränken. Die Zeichnungen enthalten die folgenden Figuren:
  • 1 ist ein Blockdiagramm eines Plattenlaufwerks, welches die vorliegende Erfindung verwirklicht,
  • 2 ist ein Blockdiagramm des in der Plattensteuerung nach 1 enthaltenen Empfangsschaltkreises,
  • 3, welche aus 3A3I besteht, ist ein Zeitablaufdiagramm, welches die Betriebsweise des Empfangsschaltkreises nach 2 veranschaulicht,
  • 4 ist ein Blockdiagramm des Abtastsignal-Erzeugungsschaltkreises, der in dem Empfangsschaltkreis nach 2 enthalten ist, und
  • 5, welche aus 5A5H besteht, ist ein Zeitablaufdiagramm, welches die Betriebsweise des Abtastsignalgenerators nach 4 veranschaulicht.
  • Genaue Beschreibung der bevorzugten Ausführungsform
  • Um ein Verständnis der bevorzugten Ausführungsform zu erleichtern, wird zunächst die allgemeine Architektur und Betriebsweise eines Plattenlaufwerks beschrieben. Die spezielle Architektur und Betriebsweise der bevorzugten Ausführungsform wird dann unter Bezug auf die allgemeine Architektur und Betriebsweise eines Plattenlaufwerks beschrieben. Das Plattenlaufwerk nach 1 ist ein Beispiel eines Plattenlaufwerks mit interner (Fest-)Platte, wie es in einem Computersystem enthalten ist. Der Host-Computer und das Plattenlaufwerk kommunizieren miteinander und übertragen Daten über einen Anschluß 1, der mit einem Datenbus (nicht dargestellt) verbunden ist. In einer alternativen Ausführungsform (nicht dargestellt) ist das Plattenlaufwerk ein externes Plattenlaufwerk, welches über einen Datenbus mit einem Computer verbunden ist. In jedem Fall entspricht der Bus der Spezifikation einer Ultra-DMA-ATA-Schnittstelle. Fachleute auf diesem Gebiet erkennen, daß andere mit beiden Flanken getaktete Übertragungsprotokolle ebenfalls verwendet werden könnten, um Daten zwischen dem Plattenlaufwerk und dem Computer zu übertragen, einschließlich der Ultra-DMA66- und SCSI-Protokolle, ohne jedoch hierauf beschränkt zu sein.
  • Wie in 1 gezeigt, umfaßt das Plattenlaufwerk eine Steuerung 2, die mit einem ATA-Anschluß 1, einem Plattenanschluß 3, einem Datenpuffer 4 und einem Mikroprozessor 5 verbunden ist. Die Schnittstelle 6 dient dazu, den Mikroprozessorbus 66 mit dem Mikroprozessor 5, beispielsweise einem Intel 80186- oder 80188-Mikroprozessor, zu verbinden. Ein ROM, der verwendet wird, um Firmwarecode zu speichern, der durch den Mikroprozessor ausgeführt wird, ist aus der Figur fortgelassen. Der Plattenanschluß 3 verbindet die Steuerung 2 mit einer oder mehreren Platten 7, die hier gemeinsam als die "Platte" bezeichnet wird. Die Festplattensteuerung verwendet einen speziellen Taktgenerator, um ein Steuerungstaktsignal auf einer Taktleitung (Steuerungstaktleitung) bereitzustellen, so daß die verschiedenen Signale, die durch die Komponenten erzeugt werden, synchronisiert werden.
  • Wie es in der Industrie üblich ist, werden die Daten auf der Platte 7 in Sektoren gespeichert. Jeder Sektor ist nach Bytes strukturiert und besteht aus mehreren Feldern, die als das Sektorformat bezeichnet werden. Beispielsweise enthält ein typisches Sektorformat eine logische Blockadresse (LBA) von etwa 4 Bytes, gefolgt von einem Datenfeld von etwa 512 Bytes. Die LBA enthält Positionsinformation, beispielsweise Zylinder, Kopf- und Sektornummern. Auf das Datenfeld folgt typischerweise ein Feld für die Prüfsumme eines zyklischen Redundanzcodes (CAC) von etwa 2–4 Byte. Ein anschließendes Feld für eine Anzahl von Bytes eines Fehlerkorrekturcodes (ECC), beispielsweise 24–40 Bytes, befindet sich am Ende des Sektors.
  • Die Steuerung 2 kann ein integrierter Steuerungsschaltkreis (IC) sein, welcher mehrere funktionelle Module aufweist, die für das Schreiben und Lesen von Plattendaten vorgesehen sind. Die Steuerung 2 ist mit dem ATA-Anschluß 1 für die Verbindung zu dem ATA-Bus verbunden und sie ist mit dem Plattenanschluß 3 für eine Verbindung zu der Platte 7 verbunden. Der Mikroprozessor 5 ist über eine Schnittstelle 6 mit der Steuerung 2 verbunden, um die Übertragung von Daten, Adressen, Zeittakt und Steuerungsinformation zu ermöglichen. Der Datenpuffer 4 ist über Anschlüsse mit der Steuerung 2 verbunden, um die Übertragung von Daten, Zeittakt und Adreßinformation zu ermöglichen. Die Schnittstelle 6 ist mit dem Mikroprozessorbus 66 verbunden, an welchen verschiedene Module angeschlossen sind. Eine Datenstromsteuerung 40 ist mit dem Mikroprozessorbus 66 und der Puffersteuerung 36 verbunden. Ein ECC-Modul 38 und ein Plattenformatierer 44 sind beide mit dem Mikroprozessorbus 66 und der Puffersteuerung 36 verbunden. Der Plattenformtierer 44 ist zusätzlich mit einem Daten- und Steuerungsanschluß 56 und mit dem Datenbus 64 verbunden. Der ATA-Prozessor 32 ist mit dem Mikroprozessorbus 66 verbunden. Der ATA-Prozessor 32 ist weiter hin mit der Puffersteuerung 36 und mit dem Datenbus 64 verbunden. Der ATA-Prozessor 32 empfängt Daten und Steuersignale von den Anschlüssen 48 bzw. 46.
  • Der ATA-Prozessor 32 besteht in erster Linie aus programmierbaren Registern und einer Ablaufsteuerung für Zustandsmaschinen bzw. endliche Automaten, welche eine Schnittstelle zu dem ATA-Anschluß 36 auf der einen Seite und zu einem schnellen, gepufferten Kanal für direkten Speicherzugriff (DMA) auf der anderen Seite bildet. Der ATA-Prozessor 32 enthält auch einen Empfangsschaltkreis 34, um ATA-Busdaten zu empfangen, die bei beiden Flanken des Host-Abtast-(H-STROBE) Signals gesendet werden. Der Empfangsschaltkreis 34 ist mit der Puffersteuerung 36, dem Datenbus 64 und dem ATA-Datenanschluß 48 verbunden. In der hier beschriebenen bevorzugten Ausführungsform ist für den ATA-Prozessor 32 das Ultra-DMA-Protokoll implementiert.
  • Der Plattenformatierer 44 ist eine Plattenschnittstellensteuerung. Die Lese/Schreibeinheit 42 der Platte enthält den Plattenformatierer 44, einen Datenspeicher (nicht dargestellt), das ECC-Modul 38 und eine Zustandsmaschine mit beschreibbarem Steuerspeicher (veritable control store – WCS) (nicht dargestellt). Der Plattenformatierer 44 führt in erster Linie Steueroperationen aus, wenn der Mikroprozessor 5 alle erforderliche Steuerinformation und Parameterwerte in einen WCS-RAM lädt und einen Befehl ausgibt. Der Plattenformatierer 44 kann automatisch den Befehl ohne weitere Intervention von dem Mikroprozessor 5 ausführen.
  • Die Puffersteuerung 36 kann eine vierkanalige Hochgeschwindigkeits-DMA-Steuerung sein. Die Puffersteuerung 36 regelt alle Datenübertragungen in den Datenpuffer 4 und aus diesem heraus. Die Puffersteuerung 36 verbindet den Datenpuffer 4, d.h. einen Ausgang seines erweiterten Datenausgangs DRAM (EDO) mit einem Plattenkanal (Plattenformatierer 44), mit einem ECC-Kanal (ECC-Modul 38), mit einem ATA-Kanal (ATA-Prozessor 32) und dem Mikrocontrollerbus 66.
  • In der Puffersteuerung 36 steuert die DMA-Steuerung (nicht dargestellt) mehrere DMA-Kanäle. Jeder DMA-Kanal hat zugehörige Steuer-Konfigurations- und Pufferspeicheradreßregister. Kommunikationen mit der Platte und dem ATA-Bus erfolgen über Plattenkanäle und ATA-Kanäle, die jeweils einen 32 Worte tiefen First-In-First-Out-(FIFO-) Speicher aufweisen. Die Puffersteuerung 36 stellt auch eine Prioritätsvermittlung für Pufferressourcen, eine zyklische Redundanzüberprüfung des Puffers (BCRC) und eine automatische Erneuerungssteuerung für den DRAM bereit.
  • Die Datenstromsteuerung 40 dient dazu, die Datenübertragungszeit zwischen der Platte 7 und der Steuerung 2 zu reduzieren, indem der Datenstrom zwischen der Platte und den ATA-Kanälen automatisch überwacht und gesteuert wird. Diese Steuerung erfolgt durch Reduzierung der Anzahl von Interrupts, die bei einer typischen Datenübertragung von Platte zu ATA-Bus auftreten. Wenn die Datenübertragungsraten der Platte und des ATA-Busses dieselben sind, übertragen beide Kanäle mit der maximalen Rate, was ein Durchrutschen von Sektoren in dem Plattenanschluß 3 und ebenso auch Perioden von Inaktivität während einer Datenphase einer ATA-Busübertragung verhindert.
  • Die Datenstromsteuerung 40 verhindert automatisch einen Überlauf des Puffers 4, ebenso wie ein Leerlaufen des Puffers 4, indem sie zeitweise den Plattenformatierer 44 oder den ATA-Prozessor 32 aussetzt, bevor der Puffer 4 voll oder leer wird.
  • 2 veranschaulicht den inneren Aufbau des Empfangsschaltkreises 34. Der Empfangsschaltkreis enthält einen Abtastsignalgenerator 22, von welchem ein Eingang mit der Taktleitung der Steuerung verbunden ist, ein Eingang mit der Signalleitung H_STROBE und einem Paar von Ausgangssignalleitungen für die ACK1- und ACK2-Signale verbunden ist. Ein Paar von Registern, beispielsweise 16-Bit-Register, sind darin enthalten, um die Daten von dem ATA-Anschluß 1 aufzunehmen. Ein erstes Flip-Flop 24 hat einen Dateneingang, der mit dem Datenbus 48 des ATA-Anschlusses 1 verbunden ist, einen Takteingang, der durch eine abfallende Flanke getriggert wird, welcher mit der H_STROBE-Signalleitung verbunden ist, und einen Ausgang, der mit einem Eingang eines Multiplexers 28 verbunden ist. Ein zweites Flip-Flop 24 hat einen Dateneingang, der mit dem Datenbus 48 des ATA-Anschlusses 1 verbunden ist, einen Takteingang, der bei einer ansteigenden Flanke ausgelöst wird, welcher mit der H_STROBE-Signalleitung verbunden ist, und einen Ausgang, der mit einem Eingang des Multiplexers 28 verbunden ist. Ein Ausgang des Multiplexers 28 ist mit dem Dateneingang eines FIFO-Speichers 50 verbunden, und eine Auswahlleitung (des Multiplexers) ist mit dem Ausgang eines SET-RESET-Schalters (S-R-Schalter – Einstell-Rückstell-Schalter) 52 verbunden. Der S-R-Schalter 42 hat einen Einstelleingang, der mit der ACK1-Signalleitung von dem Abtastsignalgenerator 22 verbunden ist, einen Rückstelleingang, der mit der ACK2-Signalleitung von dem Abtastsignalgenerator 22 verbunden ist, und einen Ausgang, der mit der Auswahlleitung des Multiplexers 28 verbunden ist. Der FIFO hat einen Datenausgangsanschluß, der mit dem ATA-Datenbus 48 verbunden ist, wobei ein Datenanschluß mit der Puffersteuerung 36 und ein Takteingang (FIFO_CLK), welcher auf eine abfallende Flanke eines Signals von einem OR-Gatter 54 reagiert. Das OR-Gatter 54 ist mit einem ersten Eingang mit der ACK1-Signalleitung und mit dem zweiten Eingang mit der ACK2-Signalleitung verbunden.
  • Die Betriebsweise des Schaltkreises nach 2 versteht man einfacher unter Bezug auf die Darstellungen der Signalniveaus nach 3. Die Signaldarstellungen nach 3 geben die verschiedenen Signalniveaus wieder, wenn Daten durch den Empfangsschaltkreis empfangen werden. Wenn der Host Daten unter Verwendung eines Ultra-DMA-Protokolls an die Steuerung sendet, sind die Daten auf dem Datenbus sowohl bei ansteigenden als auch bei fallenden Flanken des H_STROBE-Signals gültig, welches durch den Host erzeugt wird, wie man anhand der 3B und 3C erkennen kann. Das H_STROBE-Signal kann zu jedem Zeitpunkt relativ zu dem lokalen Takt einen Übergang haben. Der Abtastsignal- (STROBE-) Generator 22 (der unten erläutert wird) erfaßt die ansteigende Flanke 502 des H_STROBE-Signals und erzeugt einen Impuls auf der ACK2-Signalleitung, wie es in 3G dargestellt ist. Die Daten D0 werden durch die ansteigende Flanke des H_STROBE-Signals in das Flip-Flop 26 getaktet, wie es in 3E dargestellt ist. Der ACK2-Signalleitungsimpuls wird auch für den Rückstelleingang des S-R-Schalters 52 bereitgestellt, was bewirkt, daß der Ausgang des Schalters auf logisch tief oder Null geht. Der Ausgangswert auf niedrigem Niveau des S-R-Schalters 52 wählt den Eingang 0 des Multiplexers aus, so daß dieser den Inhalt des Registers 26 in den Ausgangs-FIFO_DIN-Bus weiterleitet, wie es in 3H dargestellt ist. Gleichzeitig wird das ACK2-Signal durch das OR-Gatter 54 geleitet, um einen Taktimpuls für das Signal FIFO_CLK bereitzustellen, wie es in 3I dargestellt ist. Der vorgebrachte FIFO_CLK- Impuls bewirkt, daß die Daten auf dem FIFO DIN-Bus in den FIFO 50 eingetaktet werden. Für das nächste Datenwort D1 stellt der Abtastsignalgenerator 22 einen Impuls auf der ACK1-Signalleitung bereit, nachdem eine fallende Flanke 504 des Abtastsignals nach 3B erfaßt wurde. Die Daten D1, welche der abfallenden Flanke entsprechen, werden in den Flip-Flop 24 eingetaktet, wie es in 3D dargestellt ist. Das ACK1-Signal wird dann für den Einstelleingang des S-R-Schalters 52 bereitgestellt, was bewirkt, daß der Ausgangswert des Schalters logisch hoch oder Eins wird. Der Ausgangswert des S-R-Schalters 52 auf hohem Niveau wählt den 1-Eingang des Multiplexers aus, um die Inhalte des Registers 24 an den ausgehenden FIFO_DIN-Bus weiterzuleiten, wie es in 3H dargestellt ist. Gleichzeitig wird das ACK1-Signal durch das OR-Gatter 54 geleitet, um für das FIFO_CLK-Signal einen Taktimpuls bereitzustellen, wie es in 3I dargestellt ist, was bewirkt, daß die Daten D1 in das FIFO 50 eingetaktet werden. Dieser Prozeß wiederholt sich für jede Flanke des H_STROBE-Signals, bis alle Daten empfangen worden sind.
  • Der Abtastsignalgenerator wird nunmehr unter Bezug auf 4 beschrieben. Der Schaltkreis enthält eine erste Gruppe von Zwischenspeichern 401403, die verwendet werden, um das ACK1-Signal zu erzeugen, und eine zweite Gruppe von Zwischenspeichern 404, 406, die verwendet werden, um das ACK2-Signal zu erzeugen. Ein Dateneingang des Zwischenspeichers 401 ist mit einer Freigabeleitung (VCC/ENABLE) verbunden, wobei ein durch eine abfallende Flanke getriggerter Takteingang mit der H_STROBE-Signalleitung verbunden ist, ein Rückstelleingang mit dem Ausgang des Zwischenspeichers 403 verbunden ist, und ein Datenausgang mit dem Eingang des Zwischenspeichers 402 verbunden ist. Ein Eingang des Zwischenspeichers 402 ist mit dem Datenausgang des Zwischenspeichers 401 verbunden, ein Takteingang für eine ansteigende Flanke ist mit der Taktsignalleitung verbunden, ein Rückstelleingang ist mit dem Ausgang des Zwischenspeichers 403 verbunden und ein Datenausgang ist mit dem Eingang des Zwischenspeichers 403 verbunden. Der Zwischenspeicher 403 hat einen Dateneingang, der mit dem Datenausgang des Zwischenspeichers 402 verbunden ist, einen durch eine ansteigende Flanke getriggerten Takteingang, der mit der Taktsignalleitung verbunden ist, und einen Datenausgang, der den Ausgangswert der Leitung des Abtastsignalgenerators ACK1 bereitstellt und mit den Rückstelleingängen der Zwischenspeicher 401 und 402 verbunden ist.
  • Die zweite Gruppe von Zwischenspeichern ist in derselben Art und Weise ausgelegt wie die erste Gruppe, mit der Ausnahme, daß der Takteingang des ersten Zwischenspeichers 404 auf eine ansteigende Flanke anspricht. Ein Dateneingang des Zwischenspeichers 404 ist mit einer Freigabeleitung (VCC/ENABLE) verbunden, ein Takteingang, der durch eine abfallende Flanke getriggert wird, ist mit der Signalleitung H_STROBE verbunden, ein Rückstelleingang ist mit dem Ausgang des Zwischenspeichers 406 verbunden, und ein Datenausgang ist mit dem Eingang des Zwischenspeichers 405 verbunden. Der Zwischenspeicher 405 hat einen Dateneingang, welcher mit dem Datenausgang des Zwischenspeichers 404 verbunden ist, einen Takteingang für eine ansteigende Flanke, der mit der Taktsignalleitung verbunden ist, einen Rückstellanschluß, der mit dem Ausgang des Zwischenspeichers 406 verbunden ist, und einen Datenausgang, der mit dem Eingang des Zwischenspeichers 406 verbunden ist. Der Zwischenspeicher 406 hat einen Dateneingang, welcher mit dem Datenausgang des Zwischenspeichers 405 verbunden ist, einen Takteingang, welcher durch eine ansteigende Flanke ausgelöst wird, der mit der Taktsignalleitung verbunden ist, und einen Datenausgang, welcher den Ausgangswert der Leitung des Abtastsignalgenerators ACK1 bereitstellt, und mit den Rückstellanschlüssen der Zwischenspeicher 404 und 405 verbunden ist.
  • Die Betriebsweise des Schaltkreises nach 4 kann man besser verstehen unter Bezug auf die Signale, die in den 5A5H dargestellt sind. Die Übergänge des H_STROBE-Signals von logisch niedrig nach logisch hoch liefern eine ansteigende Flanke 502. Die ansteigende Flanke 502 bewirkt, daß der Ausgang des Zwischenspeichers 404 sich auf ein logisch hohes Niveau verändert, wie es in 5F dargestellt ist. Der Ausgang des Zwischenspeichers 404 wird dann mit der nächsten ansteigenden Flanke des Systemtakts in den Zwischenspeicher 405 eingetaktet, wie es in 5G dargestellt ist. Der Ausgang bzw. Ausgangswert des Zwischenspeichers 405 wird bei der nächsten ansteigenden Flanke des Systemtakts in den Zwischenspeicher 406 eingetaktet, wie es in 5H dargestellt ist. Der Ausgang des Zwischenspeichers 406 stellt dann beide Zwischenspeicher 404 und 405 zurück, was bewirkt, daß deren Ausgangswerte auf ein logisch niedriges Niveau gehen, wie es in den 5F und 5G dargestellt ist. Der Ausgang des Zwischenspeichers 405 wird dann mit der nächsten ansteigenden Flanke des Systemtakts in den Zwischenspeicher 406 eingetaktet, um einen Ausgangswert auf logisch niedrigem Niveau bereitzustellen, wie es in 5H dargestellt ist. Daher wird ein Impuls auf der ACK2-Leitung in Reaktion auf eine ansteigende Flanke des Signals H_STROBE erzeugt. Der Impuls hat eine Breite von einem Taktzyklus und ist um zumindest zwei Taktzyklen gegenüber der ansteigenden Flanke des Signals H_STROBE verzögert. Derselbe Satz von Vorgängen in der Signalausbreitung erfolgt in Bezug auf die Zwischenspeicher 401, 402 und 403, wenn die abfallende Flanke 504 von H_STROBE ankommt. Wie in den 5B, 5C, 5D und 5E dargestellt ist, wird auf der ACK1-Signalleitung ein Impuls erzeugt, der einen Taktzyklus breit ist, und der höchstens zwei Taktzyklen hinter der fallenden Flanke von H_STROBE ankommt. Jede Gruppe von Zwischenspeichern 401, 402, 403 und 404, 405, 406 wird verwendet, um einen Impuls zu erzeugen, um Daten an einer einzigen Flanke bzw. einzigen Art von Flanke zu empfangen. Indem die beiden Sätze kombiniert werden, werden Abtast- bzw. Abfragesignale für das Empfangen von Daten an beiden Flanken erzeugt.
  • Aus der obigen Beschreibung kann man verstehen, daß das Aufteilen der Abtastsignalerzeugung zwischen zwei Einheiten, nämlich dem ersten Satz von Zwischenspeichern bzw. -schaltern 401, 402, 403 und dem zweiten Satz von Zwischenspeichern bzw. -schaltern 404, 405, 406 die Fähigkeit bereitstellt, das System mit einer Taktrate und mit einer Zykluslänge zu betreiben, die nur die Hälfte der minimalen Breite von H_STROBE beträgt. Nur zwei Taktzyklen der Steuerung müssen in die Breite des Impulses H_STROBE passen. Den Vorteil des Schaltkreises der vorliegenden Erfindung kann man ermessen, da der Schaltkreis der bevorzugten Ausführungsform einen 66 MHz-Takt für einen H_STROBE-Impuls von 30 ns verwendet. Die Fähigkeit, einen langsameren Takt zu verwenden, wird durch die Aufteilung der Impulserzeugungsarbeit zwischen zwei verschiedenen Einheiten gewährleistet. In dem ersten Satz von Zwischenspeichern bzw. -schaltern werden keine Impulse von ansteigenden Flanken erzeugt. In dem zweiten Satz von Zwischenspeichern bzw. -schaltern werden keine Impulse mit fallenden Flanken erzeugt.
  • Die beiden Datenempfangsregister stellen zusätzliche wichtige Vorteile für den Empfangsschaltkreis bereit. Da die Daten zwischen den beiden Registern des Schaltkreises nach 2 aufgeteilt werden, wird praktisch eine Datenrate mit der Hälfte der Eingangsdatenrate erzielt, um den Empfangsschaltkreis mit einem höheren Niveau an Datenintegrität auszustatten. Die Datenrate wird abgesenkt durch gezieltes Bereitstellen der Daten an zwei zeitweilige Speichereinheiten, so daß ein Datenwort in einer Speichereinheit empfangen und aus einer Speichereinheit gelesen wird mit jedem vollständigen H_STROBE-Zyklus, oder mit jeder zweiten Flanke des H_STROBE-Signals. Daten, die in Register geschrieben werden, müssen für eine gewisse Zeit vor und nach der Flanke, mit welcher sie empfangen werden, stabil sein, um ordnungsgemäß gespeichert zu werden. Daher erhöht die Tatsache, daß das Ausdehnen der Zeit, während der die Daten auf der Datenleitung verfügbar sind, üblicherweise die Integrität der Daten in der Speichereinheit. Durch gezieltes bzw. ausgewähltes Weiterleiten der Daten an zwei Speichereinheiten ermöglicht der Schaltkreis, daß die Daten mehr Zeit haben, sich zu setzen, bevor sie an den FIFO weitergeleitet werden. Die Datenraten innerhalb des Empfangsschaltkreises können beschrieben werden als eine erste hohe Rate, eine zweite niedrigere Rate und eine dritte höhere Rate. Die Daten aus dem Bus kommen mit einer hohen Rate an, Daten, die für jedes einzelne Register bereitgestellt werden, haben eine niedrigere Rate (die Hälfte der Busrate) und Daten, die an den FIFO auf dem FIFO_DIN-Bus geliefert werden, haben erneut eine höhere Rate (im wesentlichen die Busrate).
  • Ein weiterer wichtiger Vorteil, der durch die Aufteilung der Daten auf zwei Empfangselemente bereitgestellt wird, liegt darin, daß die Daten sich für eine längere Zeitdauer auf der Datenleitung befinden, so daß sie in flexiblerer Weise durch den FIFO gelesen werden können. Indem die Daten für zwei zeitweilige Elemente bereitgestellt werden, werden die Daten "gestreckt", wie man anhand eines Vergleichs der 3C und 3H erkennen kann. Dieselben Daten werden sowohl auf der Leitung nach 3C als auch auf der Leitung nach 3H bereitgestellt. Der Unterschied zwischen den beiden liegt darin, daß die einen vor dem Empfang in den Registern dargestellt sind und die anderen nach dem Lesen aus den Registern. Die Daten in 3H bleiben länger auf der Leitung und sind daher stabiler als die Daten auf der Leitung 3C, was es erlaubt, daß die Daten über eine längere, flexiblere Zeitdauer hinweg in den FIFO eingetaktet werden.
  • Der Empfangsschaltkreis kann in gleicher Weise in dem Host-System verwendet werden, um Daten zu empfangen, die aus der peripheren Einrichtung gelesen werden. Die periphere Einrichtung verwendet dasselbe Abtastsignal und denselben Zeitablauf der Daten, wenn Daten herüber an das Host-System gesendet werden. Daher kann der Empfangsschaltkreis, der oben beschrieben wurde, in einen Chipsatz integriert werden oder in einen IC auf einem Host-Adapter, um im Ergebnis an zwei Flanken getaktete Daten von einem Bus zu empfangen.
  • Der Empfangsschaltkreis kann für alle Protokolle mit Takten an beiden Flanken verwendet werden, einschließlich des Ultra-DMA 66 und jeglicher künftiger Protokolle mit erhöhter Rate.
  • Auch wenn die Erfindung im Hinblick auf gewisse bevorzugte Ausführungsformen beschrieben worden ist, liegen auch andere Ausführungsformen, die für Fachleute offensichtlich sind, ebenfalls im Schutzumfang dieser Erfindung. Dementsprechend soll der Schutzumfang der Erfindung durch die folgenden Ansprüche definiert sein.

Claims (14)

  1. Empfangsschaltkreis (34) für ein Computersystem, in welchem Daten asynchron auf einem Bus (48) zwischen einem Host und einer peripheren Speichereinrichtung übertragen werden, wobei der Empfangsschaltkreis (34) Daten von dem Bus (48) empfängt und die Daten an einem Ausgang synchron zu einem lokalen Takt bereitstellt, wobei der Empfangsschaltkreis aufweist: einen Generator (22) für ein Auswahlsignal, welcher auf eine ansteigende Flanke und eine abfallende Flanke eines asynchronen Abtastsignals reagiert und ein erstes Auswahlsignal (ACK1) und ein zweites Auswahlsignal (ACK2) erzeugt, die mit dem lokalen Takt synchronisiert sind, eine erste Datenspeichereinheit (24), welche Daten, die auf dem Bus bei ansteigenden Flanken des asynchronen Abtastsignals übertragen werden, empfängt und speichert, eine zweite Datenspeichereinheit (26), welche Daten, die auf dem Bus bei abfallenden Flanken des asynchronen Abtastsignals übertragen werden, empfängt und speichert, und eine Auswahleinheit (50, 54), welche auf die ersten und zweiten Auswahlsignale reagiert, indem sie abwechselnd eine Auswahl zwischen der ersten Datenspeichereinheit und der zweiten Datenspeichereinheit trifft, um Daten synchron zu dem lokalen Takt für den Ausgang bereitzustellen.
  2. Empfangsschaltkreis nach Anspruch 1, wobei der Empfangsschaltkreis Daten empfängt, die auf dem Bus unter Verwendung eines Ultra-DMA-Protokolls gesendet werden, und wobei der lokale Takt eine Frequenz von etwa 66,7 MHz hat.
  3. Empfangsschaltkreis nach Anspruch 1, wobei der Empfangsschaltkreis (34) Daten empfängt, die unter Verwendung eines Ultra-DMA- (66) Protokolls gesendet werden.
  4. Empfangsschaltkreis nach Anspruch 1, wobei der Schaltkreis in einer Steuerung für Peripheriegeräte enthalten ist.
  5. Empfangsschaltkreis nach Anspruch 1, wobei der Schaltkreis innerhalb einer Host-Adaptereinrichtung enthalten ist.
  6. Empfangsschaltkreis nach Anspruch 1, wobei der Schaltkreis innerhalb eines Chipsatzes in einem Personal-Computer-System enthalten ist.
  7. Empfangsschaltkreis nach Anspruch 1, wobei die lokale Taktrate eine Periode hat, die größer ist als ein Viertel der minimalen Zeit zwischen den ansteigenden und abfallenden Flanken des Abtastsignals.
  8. Empfangsschaltkreis nach Anspruch 1, wobei der Generator (22) für das Auswahlsignal aufweist: einen ersten Satz von Zwischenspeichern (401, 402, 403), welche verwendet werden, um in Reaktion auf eine ansteigende Flanke des Abtastsignals einen Puls zu erzeugen, der synchron zu dem lokalen Takt ist, und einen zweiten Satz von Zwischenspeichern bzw. Verregelungen (404, 405, 406), der verwendet wird, um in Reaktion auf eine abfallende Flanke des Abtastsignals einen Puls zu erzeugen, der synchron zu dem lokalen Takt ist.
  9. Empfangsschaltkreis nach Anspruch 8, wobei das Daten- und das Abtastsignal entsprechend einem Ultra-DMA-Datenübertragungsprotokoll bereitgestellt werden.
  10. Empfangsschaltkreis (34) nach Anspruch 8, wobei der erste Satz von Verriegelungen bzw. Zwischenspeichern (401, 402, 403) aufweist: einen ersten Zwischenspeicher (401), der verwendet wird, um in Reaktion auf die ansteigende Flanke des Abtastsignals ein Erfassungssignal zu erzeugen, und zumindest einen zweiten und einen dritten Zwischenspeicher (402, 403), der verwendet wird, um in Reaktion auf das Erfassungssignal den Impuls synchron zu dem lokalen Takt zu erzeugen, wobei eine Ausgangsgröße des dritten Zwischenspeichers die ersten und zweiten Zwischenspeicher zurücksetzt, jedoch die Ausgangsgröße nicht den dritten Zwischenspeicher zurücksetzt, und wobei der zweite Satz von Zwischenspeichern aufweist: einen ersten Zwischenspeicher, der verwendet wird, um in Reaktion auf die abfallende Flanke des Abtastsignals ein Erfassungssignal zu erzeugen, und zumindest einen zweiten und einen dritten Zwischenspeicher, die verwendet werden, um in Reaktion auf das Erfassungssignal einen Impuls zu erzeugen, der synchron zu dem lokalen Takt ist, wobei eine Ausgangsgröße des dritten Zwischenspeichers die ersten und zweiten Zwischenspeicher zurücksetzt, die Ausgangsgröße jedoch nicht den dritten Zwischenspeicher zurücksetzt.
  11. Verfahren zum Empfangen asynchroner Daten von einem Bus sowohl bei ansteigenden als auch bei abfallenden Flanken eines Abtastsignals und zum Bereitstellen der Daten an einem Ausgang synchron zu einem lokalen Takt, wobei das Verfahren aufweist: Erzeugen von Impulssignalen, die mit dem lokalen Takt synchronisiert sind, in Reaktion auf ansteigende und abfallende Flanken eines Abtastsignals, Weiterleiten der Daten an zwei Speichereinheiten, so daß die Daten, welche eintreffen, wenn eine steigende Flanke des Abtastsignals erfaßt wird, an eine erste Speichereinheit geleitet werden, und Daten, welche ankommen, wenn eine abfallende Flanke des Abtastsignals erfaßt wird, an eine zweite Speichereinheit geleitet werden, und in Reaktion auf die synchronen Impulse abwechselndes Auswählen zwischen den ersten und zweiten Speichereinheiten, um die Daten synchron für den Ausgang bereitzustellen.
  12. Verfahren nach Anspruch 11, wobei der Schritt des Erzeugens von Impulssignalen, die mit dem lokalen Takt synchronisiert sind, und zwar in Reaktion auf die ansteigenden und abfallenden Flanken des Abtastsignals, weiterhin aufweist: Reagieren auf eine Flanke des Abtastsignals durch Weiterleiten eines ersten Logikniveaus an eine erste Speichereinheit, Speichern des ersten Logikniveaus in einer zweiten Speichereinheit durch Weiterleiten der Ausgangsgröße der ersten Speichereinheit an den Eingang der zweiten Speichereinheit in Reaktion auf eine Flanke des lokalen Takts, Speichern des ersten Logikniveaus in einer dritten Speichereinheit durch Weiterleiten der Ausgangsgröße der zweiten Speichereinheit an den Eingang der dritten Speichereinheit in Reaktion auf eine Flanke des lokalen Takts, Zurücksetzen der ersten und zweiten Speichereinheiten, so daß ein zweites Logikniveau in diesen enthalten ist, wobei der Ausgang der dritten Speichereinheit sich auf dem ersten Logikniveau befindet, und Speichern des zweiten Logikniveaus in der dritten Speichereinheit in Reaktion auf eine Flanke des lokalen Takts.
  13. Verfahren nach Anspruch 11, welches weiterhin aufweist: Empfangen der asynchronen Daten von dem Bus mit einer ersten Rate, Weiterleiten der Daten an die erste Speichereinheit mit einer zweiten Rate, wobei die zweite Rate geringer ist als die erste Rate, und Bereitstellen der Daten am Ausgang mit einer dritten Rate, wobei die dritte Rate größer ist als die zweite Rate und die dritte Rate mit dem lokalen Takt synchronisiert ist.
  14. Computersystem mit einem Host und einer peripheren Speichereinrichtung, einem Bus zum Übertragen von Daten zwischen dem Host und der peripheren Speichereinrichtung und mit einem Empfangsschaltkreis nach Anspruch 1, um Daten asynchron von dem Bus zu empfangen.
DE60015939T 1999-02-16 2000-02-16 Verfahren und schaltung um an zwei enden getakten daten zu empfangen Expired - Fee Related DE60015939T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US249873 1999-02-16
US09/249,873 US6317842B1 (en) 1999-02-16 1999-02-16 Method and circuit for receiving dual edge clocked data
PCT/US2000/003862 WO2000049485A1 (en) 1999-02-16 2000-02-16 Method and circuit for receiving dual edge clocked data

Publications (2)

Publication Number Publication Date
DE60015939D1 DE60015939D1 (de) 2004-12-23
DE60015939T2 true DE60015939T2 (de) 2005-11-10

Family

ID=22945371

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60015939T Expired - Fee Related DE60015939T2 (de) 1999-02-16 2000-02-16 Verfahren und schaltung um an zwei enden getakten daten zu empfangen

Country Status (8)

Country Link
US (1) US6317842B1 (de)
EP (1) EP1163569B1 (de)
JP (1) JP2003523548A (de)
AT (1) ATE282852T1 (de)
AU (1) AU3232700A (de)
CA (1) CA2362174A1 (de)
DE (1) DE60015939T2 (de)
WO (1) WO2000049485A1 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6470397B1 (en) * 1998-11-16 2002-10-22 Qlogic Corporation Systems and methods for network and I/O device drivers
JP3278621B2 (ja) * 1998-12-24 2002-04-30 松下電器産業株式会社 データ伝送装置
US6606360B1 (en) * 1999-12-30 2003-08-12 Intel Corporation Method and apparatus for receiving data
US6892252B2 (en) * 2000-09-21 2005-05-10 Michael Tate Asymmetric data path media access controller
DE102004010562B4 (de) 2004-03-01 2008-04-24 Infineon Technologies Ag Schnittstellenvorrichtung und Verfahren zur Synchronisation von Daten
DE102004011672B4 (de) * 2004-03-10 2007-04-05 Texas Instruments Deutschland Gmbh Vorrichtung zur Datensynchronisation
US7242235B1 (en) * 2005-02-25 2007-07-10 Exar Corporation Dual data rate flip-flop
US20080183948A1 (en) * 2007-01-31 2008-07-31 Satoshi Sugawa Flash memory system with higher data transmission rate and method thereof
EP2308054B1 (de) * 2008-07-01 2016-04-13 LSI Corporation Verfahren und vorrichtungen für schnittstellen zwischen einem flash-speichercontroller und einem flash-speicherarray
TWI389104B (zh) * 2009-02-11 2013-03-11 Via Tech Inc 支援硬碟最高傳輸速率的硬碟存取方法及系統
US10996272B2 (en) * 2014-08-27 2021-05-04 Teradyne, Inc. One-shot circuit

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3988716A (en) 1974-08-05 1976-10-26 Nasa Computer interface system
US4050097A (en) 1976-09-27 1977-09-20 Honeywell Information Systems, Inc. Synchronization technique for data transfers over an asynchronous common bus network coupling data processing apparatus
US4275457A (en) 1977-05-18 1981-06-23 Martin Marietta Corporation Apparatus and method for receiving digital data at a first rate and outputting the data at a different rate
JPS57189231A (en) 1981-05-18 1982-11-20 Advantest Corp Data transferring system
US4451898A (en) 1981-11-09 1984-05-29 Hewlett-Packard Company Asynchronous interface message transmission using source and receive devices
US4625321A (en) * 1985-05-23 1986-11-25 Standard Microsystems Corporation Dual edge clock address mark detector
IT1200896B (it) * 1985-12-18 1989-01-27 Sgs Microelettronica Spa Circuito di risincronizzazione di segnali impulsivi,particolarmente per periferiche di microprocessori
US4812769A (en) 1986-04-30 1989-03-14 Tektronix, Inc. Programmable sampling time base circuit
US5276807A (en) 1987-04-13 1994-01-04 Emulex Corporation Bus interface synchronization circuitry for reducing time between successive data transmission in a system using an asynchronous handshaking
US4811364A (en) * 1988-04-01 1989-03-07 Digital Equipment Corporation Method and apparatus for stabilized data transmission
US4970418A (en) * 1989-09-26 1990-11-13 Apple Computer, Inc. Programmable memory state machine for providing variable clocking to a multimode memory
US5261081A (en) * 1990-07-26 1993-11-09 Ncr Corporation Sequence control apparatus for producing output signals in synchronous with a consistent delay from rising or falling edge of clock input signal
US5440751A (en) 1991-06-21 1995-08-08 Compaq Computer Corp. Burst data transfer to single cycle data transfer conversion and strobe signal conversion
US5745793A (en) * 1995-06-07 1998-04-28 Seagate Technology, Inc. Apparatus having a circular buffer that maintains a one entry gap between elements written to the microprocessor and elements operated on by the clock
US5850422A (en) 1995-07-21 1998-12-15 Symbios, Inc. Apparatus and method for recovering a clock signal which is embedded in an incoming data stream
US5692165A (en) * 1995-09-12 1997-11-25 Micron Electronics Inc. Memory controller with low skew control signal
KR0170905B1 (ko) 1995-11-06 1999-03-30 김주용 디램
US5758188A (en) 1995-11-21 1998-05-26 Quantum Corporation Synchronous DMA burst transfer protocol having the peripheral device toggle the strobe signal such that data is latched using both edges of the strobe signal
US5719516A (en) * 1995-12-20 1998-02-17 Advanced Micro Devices, Inc. Lock generator circuit for use with a dual edge register that provides a separate enable for each use of an input clock signal
US5854918A (en) * 1996-01-24 1998-12-29 Ricoh Company Ltd. Apparatus and method for self-timed algorithmic execution
US5818886A (en) * 1996-08-22 1998-10-06 Unisys Corporation Pulse synchronizing module
US5925135A (en) * 1996-09-26 1999-07-20 Intel Corporation Clock rate compensation for a low frequency slave device
KR100225951B1 (ko) 1996-10-22 1999-10-15 김영환 노이즈 감소형 반도체 메모리 장치
US5950223A (en) * 1997-06-19 1999-09-07 Silicon Magic Corporation Dual-edge extended data out memory
US5844844A (en) * 1997-07-09 1998-12-01 Xilinx, Inc. FPGA memory element programmably triggered on both clock edges
US5968180A (en) * 1997-09-30 1999-10-19 Intel Corporation Data capture circuit for asynchronous data transfer
US6041417A (en) * 1998-06-04 2000-03-21 Hewlett-Packard Company Method and apparatus for synchronizing data received in an accelerated graphics port of a graphics memory system
US6029250A (en) * 1998-09-09 2000-02-22 Micron Technology, Inc. Method and apparatus for adaptively adjusting the timing offset between a clock signal and digital signals transmitted coincident with that clock signal, and memory device and system using same

Also Published As

Publication number Publication date
WO2000049485A1 (en) 2000-08-24
EP1163569A1 (de) 2001-12-19
AU3232700A (en) 2000-09-04
JP2003523548A (ja) 2003-08-05
EP1163569B1 (de) 2004-11-17
EP1163569A4 (de) 2002-05-15
ATE282852T1 (de) 2004-12-15
US6317842B1 (en) 2001-11-13
DE60015939D1 (de) 2004-12-23
CA2362174A1 (en) 2000-08-24

Similar Documents

Publication Publication Date Title
DE69826863T2 (de) Verfahren und vorrichtung zur abstimmung eines zur verrieglung digitaler signalen gebrauchten taktsignals und speichervorrichtung die sie verwendet
DE60036777T2 (de) Gerät zur Signalsynchronisierung zwischen zwei Taktbereichen
DE3107232C2 (de)
DE4307449C2 (de) Verfahren und Schaltung zur Resynchronisation einer synchronen seriellen Schnittstelle
DE19941196B4 (de) Zweikanal-FIFO mit synchronisierten Lese- und Schreibzeigern
DE112007002619B4 (de) Speichersteuerung mit einer Speicherverbindung mit zwei Betriebsmodi
DE19900245B4 (de) Vorrichtung und Verfahren zum Senden von Daten von einem USB-Endpunkt an einen USB-Host
DE10212642A1 (de) Speichersteuerung mit 1X/MX-Lesefähigkeit
DE3038639C2 (de) Anordnung zur Datenübertragung zwischen einer Zentraleinheit und n E/A-Einheiten
DE19649258C2 (de) Bussystem und Verfahren zur Datenübertragung
DE60015939T2 (de) Verfahren und schaltung um an zwei enden getakten daten zu empfangen
DE2448212A1 (de) Asynchrone sammelleitung zur selbstbestimmten kommunikation zwischen mutterrechnergeraeten und tochtergeraeten
DE19914986B4 (de) Vorrichtung zum Verzögern eines Taktsignals
EP0574598A1 (de) Datenpufferspeicher
DE3110196A1 (de) Datenverarbeitungssystem
DE19900369A9 (de) Vorrichtung und Verfahren zur Ausführung einer Steuerübertragung auf einem Universal Serial Bus
DE60106929T2 (de) Methode und vorrichtung zur ankopplung von single master geräten an eine multimaster wired-and busumgebung
DE69817925T2 (de) Chipkartenleser unter Verwendung eines schnellen Übertragungsprotokolls
DE60205531T2 (de) Datentransfersteueranlage, elektronisches Gerät und Datentransfersteuerverfahren
DE19923249A1 (de) Synchrones Transferprotokoll für eine Übertragung mit direktem Speicherzugriff (DMA)
DE10031649A1 (de) Can-Controller und Einchip-Computer mit einem eingebauten Can-Controller
DE19900251A1 (de) Vorrichtung und Verfahren zum Steuern eines vielseitigen USB-Endpunktkanals
DE2707820C3 (de) Datenverarbeitungsanlage
DE2423195A1 (de) Wartungsvorrichtung
DE102006036823B4 (de) Datensynchronisier- und -pufferschaltung zur Synchronisation von seriell empfangenen Datensignalen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee