-
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 3A–3I 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 5A–5H 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 401–403,
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 5A–5H 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.