-
ALLGEMEINER
STAND DER TECHNIK
-
Computer-Festplattenlaufwerke,
die auch als Festplattenlaufwerke oder Festplatten bekannt sind, sind
zu einem De-facto-Datenspeicherstandard für Computersysteme geworden.
Ihre ungeheure Verbreitung kann direkt auf ihre niedrigen Kosten,
hohe Speicherkapazität
und Zuverlässigkeit
zurückgeführt werden,
sowie auf große
Verfügbarkeit,
niedrigen Stromverbrauch, schnelle Datentransfergeschwindigkeiten
und kleiner werdende physische Abmessungen.
-
Plattenlaufwerke
enthalten in der Regel einen oder mehrere rotierende Magnetplatten,
die in einem umweltgeregelten Gehäuse eingeschlossen sind. Die
Festplatte kann mehrere Lese-/Schreibköpfe aufweisen, die mit den
Magnetplatten eine Schnittstelle aufweisen. Ferner kann das Plattenlaufwerk Elektronik
zum Lesen und Schreiben von Daten und als Schnittstelle mit anderen
Geräten
enthalten. Die Elektronik ist mit den Lese-/Schreibköpfen gekoppelt und
enthält
Schaltungen zur Steuerung von Kopfpositionierung oder zur Erzeugung
oder Messung von elektromagnetischen Feldern auf den Platten. Die Elektronik
codiert von einem Host-Gerät
wie zum Beispiel einem PC empfangene Daten und übersetzt die Daten in magnetische
Codierungen, die auf die Platte geschrieben werden. Wenn Daten angefordert
werden, findet die Elektronik die Daten, mißt die magnetischen Codierungen
und übersetzt
die Codierungen in binäre
digitale Informationen. Außerdem
kann Fehlerprüfung
und -korrektur angewandt werden, um ein genaues Speichern und Abrufen
von Daten sicherzustellen.
-
Die
codierten Daten werden von den Lese-/Schreibköpfen als Bereiche mit magnetischem Fluß detektiert
und aufgezeichnet. Die Daten werden durch die Anwesenheit oder Abwesenheit
einer Flußumkehrung
zwischen zwei zusammenhängenden Bereichen
der Platte codiert. Daten können
durch Verwendung eines als „Spitzendetektion
bekannten Verfahrens gelesen werden, bei dem eine in dem Lese-/Schreibkopf
vermittelte Spannungsspitze erkannt wird, wenn eine Flußumkehr
an dem Lese-/Schreibkopf vorbeiläuft.
Zunehmende Speicherdichten, die verringerte Spitzenamplituden, bessere
Signaldiskrimination und höhere
Plattendrehgeschwindigkeiten erfordern, drängen die Spitzen jedoch näher zueinander.
Spitzendetektionsverfahren werden somit immer komplexer.
-
Es
wurden Fortschritte bei Lese-/Schreibköpfen und den Verfahren zum
Interpretieren magnetischer Codierungen erreicht. Zum Beispiel wurden magnetoresistive
(„MR"-) Lese-/Schreibköpfe entwickelt.
MR-Köpfe
wurden mit größerer Empfindlichkeit und
größerer Signaldiskrimination
entwickelt. Zusätzlich
wurde als PRML (Partial Response Maximum Likelihood) bekannte Technologie
entwickelt. Auf PRML basierende Plattenlaufwerke arbeiten auf der Basis
eines Algorithmus, der in der Plattenlaufwerkelektronik implementiert
wird, um durch die Magnetflußumkehrungen
erzeugte analoge Signalformen zu lesen. Statt nach Spitzenwerten
zu suchen, tasten auf PRML basierende Laufwerke die analoge Signalform
digital ab („Partial
Response") und führen fortgeschrittene
Signalverarbeitungstechniken aus, um ein wahrscheinlichstes Bitmuster
zu bestimmen, das durch die Signalform repräsentiert wird („Maximum Likelihood"). PRML-Technologie
toleriert mehr Rauschen in den magnetischen Signalen, so daß Platten und
Lese-/Schreibköpfe
niedrigerer Qualität
verwendet werden können,
wodurch auch die Herstellungsausbeuten zunehmen und die Kosten sinken.
-
Da
Festplatten typischerweise durch Faktoren wie etwa Kosten/Speichereinheit,
Datentransferrate, erforderlicher Strom und Formfaktor, physische Abmessungen)
differenziert werden, sind erweiterte Festplattenkomponenten notwendig,
die sich in bezug auf vergrößerte Speicherkapazität, Betriebsgeschwindigkeit,
Zuverlässigkeit
und Wirkungsgrad als kosteneffektiv erweisen. Zum Beispiel kann PRML-Elektronik
einen Phasenregelkreis („PLL") enthalten, der
ein Rückkopplungstaktsignal
liefert, mit dem Lese-/Schreiboperationen für die auf PRML basierende Festplatte
synchronisiert werden. Das Rückkopplungstaktsignal
kann durch einen Zähler von
einem Ausgangstaktsignal eines spannungsgesteuerten Oszillators
(„VCO") abgeleitet werden.
Der Zähler,
der auch als Teiler bezeichnet wird, leitet das Rückkopplungstaktsignal
ab, indem er einen Taktimpuls erzeugt, wenn eine gewünschte Anzahl
der schnellen Taktimpulse gezählt
wurden. Folglich liefert der Zähler
ein Rückkopplungstaktsignal
mit einer Teilungsrest-Frequenz des Ausgangstakts.
-
Mit
zunehmender VCO-Ausgangstaktsignalfrequenz werden auch größere Zähler zur
Bereitstellung eines Rückkopplungstaktsignals
mit einer gewünschten
Teilungsrest-Frequenz der VCO-Ausgangstaktsignalfrequenz notwendig.
Mit wachsender Zählergröße nimmt
jedoch auch die Zählergeschwindigkeit
des Zählers
ab. Zählerentwürfe können vergrößerte Geschwindigkeit
bereitstellen, sind aber nicht programmierbar. Ein programmierbarer N+M-Bitzähler gemäß dem Oberbegriff
der unabhängigen
Ansprüche
ist aus
EP 0 204 588
A bekannt. Weitere programmierbare Zählerentwürfe sind aus
US 5,337,339 A ,
EP 0 174 150 A und
US 4,553,218 A bekannt.
-
Folglich
wird in der Technik ein schneller programmierbarer Synchron-Zähler benötigt.
-
KURZFASSUNG
-
Es
wird ein schneller programmierbarer Synchron-Zähler offengelegt, der in einem
Lese-/Schreibkanal des Typs PRML (Partial Response, Maximum Likelihood)
verwendet werden kann. Der Zähler,
der auch als Teiler bezeichnet wird, kann in einer Rückkopplungsschaltung
eines Phasenregelkreises („PLL") vorgesehen werden.
Der Zähler
leitet aus einem Ausgangstaktsignal eines spannungsgesteuerten Oszillators
(„VCO") des Phasenregelkreises („PLL") ein Rückkopplungstaktsignal
ab.
-
Eine
Ausführungsform
für einen
programmierbaren schnellen Synchron-Zähler umfaßt folgendes: Einen Takteingang;
einen Niedrigstwertiges-Bit-Zähler;
einen Höchstwertiges-Bit-Zähler; eine
Zähleingangsschaltung;
und eine Zählerausgangsschaltung.
Der Takteingang kann so konfiguriert werden, daß er ein Taktsignal an einem
Eingangsknoten empfängt.
Das Taktsignal kann durch einen VCO gelieferter schneller Ausgangstakt
sein.
-
Der
Niedrigstwertiges-Bit-Zähler
kann mit dem Takteingangsknoten gekoppelt werden. Der Niedrigstwertiges-Bit-Zähler ist
so konfiguriert, daß er
einen Niedrigstwertiges-Bit-Zähler
als Reaktion auf ein Taktsignal dekrementiert. Der Niedrigstwertiges-Bit-Zähler liefert ferner an einem
Ausgangsknoten ein Signal für
den Niedrigstwertiges-Bit-Zähler, wenn
der Niedrigstwertiges-Bit-Zähler
auf einen Null-Zählwert
dekrementiert.
-
Der
Höchstwertiges-Bit-Zähler kann
mit dem Niedrigstwertiges-Bit-Ansgangsknoten gekoppelt werden. wenn
der Niedrigstwertiges-Bit-Zähler
das Null-Zählwertsignal
an dem Ausgangsknoten liefert, dekrementiert der Höchstwertiges-Bit-Zähler einen Höchstwertiges-Bit-Zählwert.
Der Höchstwertiges-Bit-Zähler liefert außerdem an
einem Ausgangsknoten ein Signal für das Höchstwertiges-Bit-Null, wenn
der Höchstwertiges-Bit-Zähler auf
einen Null-Zählwert
dekrementiert.
-
Der
Niedrigstwertiges-Bit-Zähler
kann ferner mit dem Ausgangsknoten für den Höchstwertiges-Bit-Zähler gekoppelt
werden. Der Niedrigstwertiges-Bit-Zähler setzt sich auf einen höchsten Zählwert für den Niedrigstwertiges-Bit-Zähler zurück, wenn der
Niedrigstwertiges-Bit-Zähler
einen Null-Zählwert aufweist
und das Höchstwertiges-Bit-Ausgangssignal
einen von Null verschiedenen Zählwert
aufweist. Der Niedrigstwertiges-Bit- und der Höchstwertiges-Bit-Zähler laden sich wieder auf
einen Anfangszustand, wenn der Niedrigstwertiges-Bit- und der Höchstwertiges-Bit-Zähler einen Null-Zählwert aufweisen.
-
Die
Zähleingangsschaltung
empfängt
einen Zählwert,
der in den Zähler
programmiert werden soll. Der Zählwert
enthält
niedrigstwertige Bit und höchstwertige
Bit. Die Zähleingangsschaltung
programmiert den Anfangszustand für den Niedrigstwertiges-Bit-Zähler mit
den niedrigstwertigen Bit und den Anfangszustand für den Höchstwertiges-Bit-Zähler mit
den höchstwertigen
Bit.
-
Der
Zählerausgang
ist mit den Ausgängen des
Niedrigstwertiges-Bit-Zählers
und des Höchstwertiges-Bit-Zählers verbunden.
Die Zählerausgangsschaltung
liefert an einem Zählerausgangsknoten
als Reaktion auf das Niedrigstwertiges-Bit-Null-Zustandssignal und
das Höchstwertiges-Bit-Null-Zustandssignal
einen Taktimpuls.
-
Eine
Ausführungsform
eines Verfahrens zum Zählen
schneller Taktimpulse umfaßt
die folgenden Schritte: Empfangen eines Taktsignals; Empfangen eines
niedrigstwertige Bit und höchstwertige
Bit enthaltenden Zählwerts;
Programmieren eines Niedrigstwertiges-Bit-Zähler
mit den niedrigstwertigen Bit und eines Höchstwertiges-Bit-Zähler mit
den höchstwertigen
Bit; Dekrementieren des Niedrigstwertiges-Bit-Zählers als Reaktion auf das
Taktsignal und Erzeugen eines Niedrigstwertiges-Bit-Null-Zählwertsignals,
wenn der Niedrigstwertiges-Bit-Zähler einen
Nullwert aufweist; Dekrementieren des Höchstwertiges-Bit-Zählers als
Reaktion auf das Niedrigstwertiges-Bit-Null-Zählwert signal und Erzeugen eines Höchstwertiges-Bit-Null-Zählwertsignals, wenn der Höchstwertiges-Bit-Zähler einen
Nullwert aufweist und Erzeugen eines Ausgangssignals als Reaktion auf
das Niedrigstwertiges-Bit-Null-Zählwertsignal und
das Höchstwertiges-Bit-Null-Zählwertsignal.
-
Die
obige Besprechung der Kurzfassung der Erfindung wird lediglich als
Einführung
angegeben. In diesem Abschnitt sollte nichts als Beschränkung bezüglich der
Ansprüche
betrachtet werden, die den Schutzumfang der Erfindung definieren.
Zusätzliche Aufgaben
und Vorteile der vorliegenden Erfindung werden in der folgenden
Beschreibung dargelegt, und werden teilweise aus der Beschreibung
offensichtlich sein oder durch Ausübung der vorliegenden Erfindung
erlernt werden. Die Aufgaben und Vorteile der vorliegenden Erfindung
können
mittels der insbesondere in den Ansprüchen dargelegten Instrumentalitäten und
Kombinationen realisiert und erhalten werden.
-
Kurze Beschreibung
der mehreren Ansichten der Zeichnungen
-
1A zeigt
ein Blockschaltbild einer beispielhaften, mit einem Host-Gerät gekoppelten
Festplatte;
-
1B zeigt
ein Blockschaltbild des Lese-/Schreibkanals zur Verwendung mit einer
Festplatte;
-
2 ist
ein Blockschaltbild eines beispielhaften Phasenregelkreises für einen
Lese-/Schreibkanal;
-
3 ist
ein Blockschaltbild eines schnellen programmierbaren Synchron-Zählers für einen
Phasenregelkreis gemäß der Erfindung;
-
4 zeigt
Zustandsdiagramme für
einen schnellen programmierbaren Synchron-Zähler;
-
5 ist
ein Blockschaltbild für
eine Niedrigstwertiges-Bit-Zähler-Komponente
des schnellen programmierbaren Synchron-Zählers;
-
6 ist
ein Blockschaltbild für
eine Höchstwertiges-Bit-Zähler-Komponente
des schnellen programmierbaren Synchron-Zählers;
-
7 ist
ein Schaltbild für
eine Logikschaltung des Niedrigstwertiges-Bit-Zählers;
-
8 ist
ein Schaltbild für
eine Logikschaltung des Höchstwertiges-Bit-Zählers; und
-
9 zeigt
ein Flußdiagramm
gemäß einem beispielhaften
Verfahren zum Zählen
von schnellen Taktimpulsen.
-
AUSFÜHRLICHE
BESCHREIBUNG
-
Die
hier beschriebenen Ausführungsformen betreffen
einen auf PRML (Partial Response, Maximum Likelihood) basierenden
Lese-/Schreibkanal. Der Lese-/Schreibkanal ist mit den Lese-/Schreibköpfen einer
Festplatte gekoppelt. Der Ausdruck „gekoppelt mit" ist hier so definiert,
daß er
direkt verbunden oder indirekt durch eine oder mehrere Zwischenkomponenten
verbunden bedeutet. Solche Zwischenkomponenten können zum Beispiel sowohl auf Hardware
als auch auf Software basierende Komponenten sein. Der Lese-/Schreibkanal
setzt digitale Daten von einem Host-Gerät in elektrische Impulse zur
Steuerung eines Lese-/Schreibkopfs zum magnetischen Lesen und Aufzeichnen
von Daten auf der Festplatte um. Während Leseoperationen empfängt der
Lese-/Schreibkanal eine magnetisch durch die Lese-/Schreibköpfe gemessene
Analog-Signalform und setzt diese Signalform in die auf dem Laufwerk gespeicherten
digitalen Daten um.
-
Die
dargestellten Ausführungsformen
liefern einen schnellen programmierbaren Synchron-Zähler („schnellen
Zähler") zur Verwendung
in einem Phasenregelkreis („PLL") eines auf PRML
basierenden Lese-/Schreibkanals. Der schnelle Zähler leitet aus einem durch
einen spannungsgesteuerten Oszillator („VCO") erzeugten schnellen Ausgangstakt ein
Taktsignal ab. Das Taktsignal wird abgeleitet, indem ein Taktsignalimpuls an
einem Zählerausgangsknoten erzeugt
wird, wenn an einem Zählereingangsknoten eine
programmierte Anzahl von Impulsen des VCO-Ausgangstaktsignals empfangen
wurde. Folglich liefert der schnelle Zähler ein Taktsignal, das eine Teilungsrest-Frequenz
des VCO-Ausgangstaktsignals
aufweist.
-
Der
schnelle Zähler
kann so programmiert werden, daß er
ein Taktsignal mit der gewünschten Teilungsrest-Frequenz des VCO-Ausgangstaktsignals
erzeugt. Das Taktsignal kann in einer Rückkopplungsschaltung eines
PLL zur Steuerung der Frequenz des VCO-Ausgangstaktsignals verwendet werden.
Wenn zum Beispiel gewünscht
wird, daß das VCO-Ausgangstaktsignal
eine Frequenz aufweist, die 20 mal die Frequenz eines Referenztaktsignals beträgt, wird
der Zähler
mit einem Zählwert
von 20 programmiert. Mit einem Zählwert
von 20 erzeugt der schnelle Zähler
für alle
20 Impulse des VCO-Ausgangstaktsignals ein Taktsignalimpuls. Die
Taktsignalimpulse bilden kollektiv ein Rückkopplungstaktsignal. Das
Rückkopplungstaktsignal
kann mit dem Referenztaktsignal verglichen und der VCO eingestellt werden,
um ein VCO-Ausgangstaktsignal bereitzustellen, das 20 mal das des
Referenztaktsignals beträgt.
Wenn das Referenztaktsignal eine Frequenz von zum Beispiel 40 MHz
aufweist, wird das VCO-Ausgangstaktsignal mit 20 mal der Referenztaktsignalfrequenz
synchronisiert, um eine Frequenz von 800 MHz aufzuweisen.
-
Die
vorliegenden Ausführungsformen
werden mit Bezug auf die beigefügten 1 bis 9 erläutert. Nunmehr
mit Bezug auf 1A ist ein Blockschaltbild für eine Festplatte 100 gezeigt,
die mit einem Host-Gerät 112 gekoppelt
ist. Der Klarheit halber sind bestimmte Komponenten, wie zum Beispiel
eine Servo-/Stellgliedmotorsteuerung nicht gezeigt. Das Laufwerk 100 enthält die magnetischen Oberflächen und
den Spindelmotor 102, die Lese-/Schreibköpfe und
die Stellgliedbaugruppe 104, Lese-/Schreibvorverstärker 106,
einen Lese-/Schreibkanal 108 und eine Steuerung 110.
Die Vorverstärker 106 sind über Schnittstellen 114 und 116 mit
dem Lese-/Schreibkanal 108 gekoppelt. Die Steuerung 110 weist über die
Schnittstellen 118 und 120 Schnittstellen mit
dem Lese-/Schreibkanal 108 auf.
-
Für Leseoperationen
von der Festplatte 100 stellt das Host-Gerät 112 eine
Speicherstellenkennung bereit, die die Speicherstelle der Daten
auf der Festplatte identifiziert (z.B. eine Zylinder- und Sektoradresse).
Die Steuerung 110 empfängt
diese Adresse und bestimmt die physische Speicherstelle der Daten
auf den Platten 102. Die Steuerung 110 bewegt
die Lese-/Schreibköpfe
dann an die richtige Position, damit die Daten in der Nähe der Lese-/Schreibköpfe 104 rotieren.
Während
die Daten rotieren, mißt
der Lese-/Schreibkopf 104 die Anwesenheit oder Abwesenheit
von Flußumkehrungen, wodurch
ein Strom analoger Signaldaten erzeugt wird. Die Daten werden zu
den Vorverstärkern 106 geleitet,
die das Signal verstärken
und die Daten über die
Schnittstelle 114 zu den Lese-/Schreibkanal 108 leiten.
Wie später
besprochen werden wird, empfängt der
Lese-/Schreibkanal die verstärkte
analoge Signalform aus den Vorverstärkern 106 und decodiert diese
Signalform zu den digitalen Binärdaten,
die sie repräsentiert.
Diese digitalen Binärdaten
werden dann über
die Schnittstelle 118 zu der Steuerung 110 geleitet.
Die Steuerung 110 erzeugt eine Schnittstelle der Festplatte 100 mit
dem Hostgerät 112 und
kann zusätzliche
Funktionalität
enthalten, wie zum Beispiel Cache-Speicherung oder Fehlererkennungs-/-korrekturfunktionalität, die dafür beabsichtigt
ist, die Betriebsgeschwindigkeit und/oder Zuverlässigkeit der Festplatte 100 zu
vergrößern.
-
Für Schreiboperationen
führt das
Host-Gerät 112 der
Steuerung 110 die zu schreibenden binären digitalen Daten und die
Speicherstelle zu, z.B. Zylinder- und Sektoradresse, wo die Daten
geschrieben werden sollen.
-
Die
Steuerung 110 bewegt die Lese-/Schreibköpfe 104 dann zu einer
designierten Stelle und sendet die zu schreibenden binären digitalen
Daten über
die Schnittstelle 130 zu dem Lese-/Schreibkanal 108.
Der Lese-/Schreibkanal 108 empfängt die binären digitalen Daten, codiert
sie und erzeugt analoge Signale, mit denen der Lese-/Schreibkopf 104 angesteuert
wird, um die richtigen Flußumkehrungen
auf die Magnetplatten 102 zu vermitteln, die die binären digitalen
Daten repräsentieren.
Die Signale werden dann über
die Schnittstelle 116 zu den Vorverstärkern 106 geleitet,
wodurch die Lese-/Schreibköpfe 104 angesteuert
werden.
-
Mit
Bezug auf 1B ist ein beispielhafter Lese-/Schreibkanal 108 gezeigt,
der Codierungstechnologie des Typs PRML (Partial Response Maximum
Likelihood) zur Verwendung mit der Festplatte 100 von der 1A unterstützt. Der
Klarheit halber wurden einige Komponenten weggelassen. Der Lese-/Schreibkanal 108 kann
als eine integrierte Schaltung implementiert werden, wobei für Transistoren mit
einer effektiven Kanallänge
von 0,18 μm
ein CMOS-Prozeß (complementary
metal oxide semiconductor) verwendet wird. Es versteht sich, daß andere
Prozeßtechnologien
und Strukturelementgrößen verwendet
werden können
und daß die
hier offengelegten Schaltkreise weiter mit andern Schaltkreisen
integriert werden können,
die die Festplattenelektronik, wie zum Beispiel die Festplatten-Controller-Logik,
umfassen. Wie beschrieben, setzt der Lese-/Schreibkanal 108 zwischen
binären
digitalen Informationen und den magnetischen Fluß auf den Platten 102 repräsentierenden
Analogsignalen um. Der Lese-/Schreibkanal 108 ist
in zwei Hauptteile aufgeteilt, Leseweg 156 und Schreibweg 158.
-
Der
Schreibweg 158 enthält
einen Parallel/Seriell-Umsetzer 144,
einen lauflängenbegrenzten
(„RLL"-) Codierer 146,
einen Paritätscodierer 148,
eine Schreibvorkompensationsschaltung 150 und eine Treiberschaltung 152.
Der Parallel/Seriell-Umsetzer 144 empfängt Daten von dem Host-Gerät 112 über die
Schnittstelle 120 (8 Bit auf einmal). Der Umsetzer 144 serialisiert
die Eingangsdaten und sendet einen seriellen Bitstrom zu dem RLL-Codierer 164.
Der RLL-Codierer 146 codiert den seriellen Bitstrom zur
Aufzeichnung auf den Platten 102 gemäß einem lauflängenbegrenzten
Algorithmus 161 zu symbolischen Binärsequenzen. Der beispielhafte RLL-Codierer kann einen
32/33-Bit-Symbolcode verwenden, um sicherzustellen, daß Flußumkehrungen ordnungsgemäß beabstandet
sind und daß keine langen
Läufe von
Daten ohne Flußumkehrungen
aufgezeichnet werden. Die RLL-codierten
Daten werden dann zu dem Paritätscodierer 148 geleitet,
der ein Paritätsbit
zu den Daten hinzufügt.
In dem beispielhaften Paritätscodierer 148 wird
ungerade Parität verwendet,
um sicherzustellen, daß nicht
aufgrund der magnetischen Eigenschaften solcher aufgezeichneten
Daten lange Läufe
von 0en und 1en aufgezeichnet werden. Die paritätscodierten Daten können danach
statt als ein Digitalsignal als ein Analogsignal behandelt werden.
Das Analogsignal wird zu einer Schreibvorkompensationsschaltung 150 geleitet,
das die Impulsbreiten des Bitstroms dynamisch einstellt, um magnetische
Verzerrungen während
des Aufzeichnungsprozesses zu berücksichtigen. Das eingestellte
Analogsignal wird zu einer Treiberschaltung 152 geleitet,
die das Signal über
die Schnittstelle 116 an die Vorverstärker 106 ansteuert,
um die Lese-/Schreibköpfe 104 anzusteuern
und die Daten aufzuzeichnen. Die beispielhafte Treiberschaltung 152 enthält eine
Treiberschaltung des Typs PECL (pseudo emitter coupled logic), die
ein Differenzausgangssignal für
die Vorverstärker 106 erzeugt.
-
Der
Leseweg 156 enthält
eine Dämpfungsschaltung
bzw. einen Eingangswiderstand 122, einen variablen Verstärker („VGA") 124, einen
magnetoresistiven asymmetrischen Linearisierer („MRA") 126, ein zeitkontinuierliches
Filter („CTF") 128, einen
Puffer 130, einen Analog/Digital-Umsetzer („ADC") 132, ein
nichtrekursives („FIR")-Filter 134,
eine Schaltung für
interpolierte Timing-Wiederherstellung („ITR"), einen Viterbi-Algorithmus-Detektor 138,
einen Paritätsdecoder 140 und
einen lauflängenbegrenzten („RLL")-Decoder 142.
Die aus den Platten 102 durch den Lese-/Schreibkopf 104 bemessenen
verstärkten magnetischen
Signale werden über
die Schnittstelle 114 durch den Lese-/Schreibkanal 108 empfangen. Die
die gemessenen magnetischen Signale repräsentierende Analog-Signalform
wird zuerst durch einen Eingangswiderstand 122 geleitet,
bei dem es sich um ein Schaltnetzwerk zum Dämpfen des Signals zur Berücksichtigung
eines etwaigen Eingangswiderstands handelt. Das gedämpfte Signal
wird zu einem VGA 124 geleitet, der das Signal verstärkt. Das
verstärkte
Signal wird zu dem MRA 126 geleitet, der das Signal in
bezug auf etwaige, durch den Aufzeichungsprozeß erzeugte Verzerrungen einstellt.
Im wesentlichen führt
der MRA 126 die umgekehrte Funktion wie die Schreibvorkompensationsschaltung 150 in
dem Schreibweg 158 aus. Als nächstes wird das Signal durch
das CTF 128 geleitet, bei dem es sich im wesentlichen um
ein Tiefpaßfilter
handeln kann, um Rauschen auszufiltern. Das gefilterte Signal wird über den
Puffer 130 dem ADC 132 zugeführt, der das Analogsignal abtastet
und es in ein Digitalsignal umsetzt. Das Digitalsignal wird dann
zu einem FIR-Filter 138 und dann zu einer Timing-Wiederherstellungsschaltung 136 geleitet.
-
Die
Timing-Wiederherstellungsschaltung 136 kann (in der Figur
nicht gezeigt) in einer Rückkopplungsorientierung
mit dem FIR-Filter 134, dem MRA 126 und dem VGA 124 verbunden
werden, um diese Schaltungen abhängig
von den empfangenen Signalen einzustellen, um Timing-Kompensation
bereitzustellen. Das beispielhafte FIR-Filter 134 kann ein
FIR-Filter mit 10 Abgriffen sein. Das digitale Signal wird dann
zu dem Viterbi-Algorithmus-Detektor 138 geleitet,
der das durch das digitale Signal repräsentierte binäre Bitmuster
unter Verwendung von Techniken der digitalen Signalverarbeitung
bestimmt. Der beispielhafte Viterbi-Algorithmus-Detektor 138 kann
ein Viterbi-Prozessor mit 32 Zuständen sein. Die durch das digitale
Signal repräsentierten
binären Daten
werden dann zu dem Paritätsdecoder 140 geleitet,
der das Paritätsbit
entfernt, und dann zu dem RLL-Decoder 142. Der RLL-Decoder 142 decodiert die
binären
RLL-Codierungssymbole zu den eigentlichen Binärdaten. Diese Daten werden über die Schnittstelle 118 zu
der Steuerung 110 geleitet.
-
Der
Lese-/Schreibkanal 108 enthält ferner einen Taktsynthesizer 154,
der einen Phasenregelkreis enthalten kann („PLL"). Nunmehr mit Bezug auf 2 ist
eine beispielhafte Schaltung 200 für einen PLL mit einem schnellen
programmierbaren Synchron-Zähler
(Zähler) 210 gezeigt.
Der PLL enthält einen
Phasendetektor 202, eine Ladungspumpe 204, ein
Schleifenfilter 206, einen spannungsgesteuerten Oszillator
(„VCO") 208 und
den in einer Rückkopplungsschleife
zwischen VCO 208 und dem Phasendetektor 202 vorgesehenen
Zähler 210.
-
Der
Phasendetektor 202 vergleicht zwei Eingangssignale, bestimmt
eine Verzögerung
zwischen den Eingangssignale und erzeugt Steuersignale an einem
Ausgang in Korrelation mit der Verzögerung. Der Ausgang des Phasendetektors 202 kann
mit der Ladungspumpe 204 gekoppelt werden. Als Reaktion auf
die Steuersignale aus dem Phasendetektor lädt oder entlädt die Ladungspumpe 204 das
Schleifenfilter 206 durch Bereitstellung eines positiven
bzw. negativen Stroms an einem Schleifenfilterknoten 220. Das
Schleifenfilter 206 erhält
an dem Schleifenfilterknoten 220 eine Spannung aufrecht.
Der VCO 208 ist mit dem Schleifenfilterknoten 220 gekoppelt.
Der VCO erzeugt ein VCO-Ausgangstaktsignal an einem Ausgangstaktknoten 222 als
Reaktion auf die Spannung an dem Schleifenfilterknoten 220.
Der VCO 208 variiert die Frequenz des VCO-Ausgangstakt signals auf
der Basis des Potentials an den Schleifenfilterknoten 220.
-
Die
Ladungspumpe 204 kann eine beliebige herkömmlich entworfene
Ladungspumpe sein, die so konfiguriert ist, daß sie einen Schleifenfilterknoten Strom
zuführt.
Die Ladungspumpe 204 kann eine Aufwärtsstromquelle 224 enthalten,
die selektiv an dem Schleifenfilterknoten 220 mit dem Schleifenfilter 206 gekoppelt
ist. Die Ladungspumpe 204 kann ferner eine Abwärtsstromquelle 226 enthalten,
die selektiv an dem Schleifenfehlerknoten 220 mit dem Schleifenfilter 206 gekoppelt
ist.
-
Das
Schleifenfilter 206 kann mit der Ladungspumpe 204 und
dem VCO 208 an dem Schleifenfilterknoten 220 gekoppelt
werden. Das Schleifenfilter 206 kann ein herkömmliches
Tiefpaßfilter
sein, das kapazitive und resistive Bauelemente (nicht gezeigt) enthält. Das
Schleifenfilter 206 kann an dem Schleifenfilterknoten auf
der Basis eines dem Schleifenfilterknoten 220 zugeführten Stroms
eine Spannung aufrechterhalten.
-
Der
VCO 208 kann an dem Schleifenfilterknoten 220 mit
dem Schleifenfilter 206 gekoppelt sein. Der VCO 208 erzeugt
an einem Ausgangsknoten 222 ein VCO-Ausgangstaktsignal.
Das VCO-Ausgangstaktsignal dient zum Synchronisieren von Lese-/Schreiboperationen
für die
auf PRML basierende Festplatte.
-
Der
Zähler 210 kann
mit dem Ausgangstaktknoten 222 gekoppelt werden. Das VCO-Ausgangstaktsignal
wird an einem Eingang des schnellen Zählers 210 empfangen.
Der Zähler 210 leitet
ein Rückkopplungstaktsignal
ab, indem er Impulse des VCO-Ausgangstaktsignals zählt und
für jedes
Auftreten einer programmierten Anzahl sequentieller Ausgangstaktimpulse
einen Rückkopplungstaktimpuls liefert.
Der Zähler
liefert den Rückkopplungstaktimpuls
an einem Zählerausgangsknoten 228.
-
Wenn
beispielsweise ein VCO-Ausgangstaktsignal an dem Ausgangstaktknoten 222 eine
Frequenz von 800 MHz aufweist und der Zähler 210 dafür programmiert
ist, 20 Ausgangstaktzyklen zu zählen,
liefert der Zähler 210 für alle 20
Ausgangstaktimpulse einen Ausgangstaktimpuls. Folglich wird das
Rückkopplungstaktsignal
eine Frequenz von 40 MHz (1/20 des VCO-Ausgangstaktsignals) aufweisen.
-
Der
Phasendetektor 202 steuert die Ladungspumpe 204, um das
Potential an dem Schleifenfilterknoten 238 zu laden oder
zu entladen. Der Phasendetektor 202 enthält einen
ersten Phasendetektoreingang und einen zweiten Phasendetekoreingang 232.
Der Phasendetektor 202 bestimmt, ob das Schleifenfilter 206 aufgeladen
oder entladen werden soll, auf der Basis einer Verzögerung zwischen
Eingangssignalen an dem ersten Eingang 230 und dem zweiten
Eingang 232. Bei einer herkömmlichen PLL-Schaltung wird an
dem ersten Phasendetektor 230 ein Referenzsignal und an
dem zweiten Phasendetektoreingang 232 das Rückkopplungstaktsignal zugeführt. Der
Phasendetektor 202 vergleicht die Verzögerung zwischen dem Rückkopplungstaktsignal
und steuert die Ladungspumpe 204, um das Schleifenfilter 206 zu
entladen oder zu laden. Das Potential an dem Schleifenfilterknoten 220 wird
so eingestellt, daß eine
ansteigende Flanke des Rückkopplungstakts
mit einer ansteigenden Flanke des Referenztaktsignals synchronisiert
wird.
-
Nunmehr
mit Bezug auf 3 ist eine Ausführungsform
eines schnellen programmierbaren Synchron-Zählers (Schneller Zähler) 210 gezeigt. Der
Zähler 210 besitzt
einen Zählwerteingangsknoten 312,
einen Takteingangsknoten 314 und einen Ausgangsknoten 320.
Der Zähler 210 kann
mit einem an dem Zählwerteingangsknoten 312 bereitgestellten Zählwert N
programmiert werden. Der Zählwert
N designiert eine Zahl, durch die das VCO-Ausgangstaktsignal dividiert wird, um
das Rückkopplungstaktsignal
abzuleiten. Der Zählwert
N wird in binärer
Form durch mehrere Bit, einschließlich niedrigstwertiger Bits
a<2:0> und mehrer höchstwertiger
Bit a<5:3> repräsentiert.
-
An
den Takteingangsknoten 314 wird ein Taktsignal zugeführt. Das
Taktsignal kann ein Ausgangstaktsignal des VCO 208 sein.
Der Zähler 210 ist
so konfiguriert, daß er
an dem Ausgangsknoten 320 für alle sequentiellen N Impulse
des an den Takteingangsknoten 314 zugeführten Taktsignals den Rückkopplungstaktsignalimpuls
ableitet. Folglich erzeugt der Zähler 210 ein
Rückkopplungstaktsignal mit
einer Frequenz, die 1/N der Frequenz des an dem Takteingangsknoten 314 zugeführten Taktsignals
beträgt.
-
Der
Zähler 201 enthält einen
Niedrigstwertiges-Bit-Zähler („LSB-Zähler") 302, einen
Höchstwertiges-Bit-Zähler („MSB-Zähler") 304 und eine Ausgangsschaltung 306.
Die niedrigstwertigen Bit a<2:0>, die an dem Zählwerteingangsknoten 312 empfangen
werden, werden dem LSB-Zähler 302 zugeführt. Ähnlich werden
die an dem Zählwerteingangsknoten 312 empfangenen
höchstwertigen
Bit a<5:3> dem MSB-Zähler 304 zugeführt. Der LSB-Zähler 302 und
der MSB-Zähler 304 sind
so konfiguriert, daß sie
mehrere programmierbare sequentielle Zählzustände aufweisen. Der LSB-Zähler 302 wird
auf einen Anfangszählzustand
programmiert, der mit den niedrigstwertigen Bit a<2:0> assoziiert ist, und
der MSB-Zähler 304 wird
auf einen mit den höchstwertigen
Bit assoziierten Anfangszustand programmiert.
-
Der
LSB-Zähler 302 dekrementiert
den Niedrigstwertiges-Bit-Zählzustand
von dem Anfangszustand auf einen Nullzählzustand. Für jeden
Impuls des Taktsignals dekrementiert der LSB-Zähler 302 einen einzigen
Zählzustand.
Wenn der LSB-Zähler 302 einen
Null-Zählzustand
aufweist, erzeugt der LSB-Zähler
ein Null-Zustandsignal „lhit" an dem LSB-Ausgangsknoten 316.
Wenn der LSB-Zähler
einen von Null verschiedenen Zustand aufweist, erzeugt der LSB-Zähler an
dem LSB-Ausgangsknoten 316 ein
Nicht-Null-Zustandssignal „n_lhit". Wenn beispielsweise
die niedrigstwertigen Bit a<2:0> einen Zählwert von „3" aufweisen, ist der
LSB-Zähler 302 auf
den mit „3" assoziierten Anfangszustand
programmiert. Während
jedes nachfolgenden, an dem Takteingangsknoten 314 empfangenen
Taktimpulses dekrementiert der LSB-Zähler 302 einen einzigen
Zustand. Wenn der LSB-Zähler 302 einen
Nullzustand aufweist, was nach drei Taktsignalimpulsen auftritt, erzeugt
der LSB-Zähler 302 ein
Null-Zustandssignal "lhit" an dem LSB-Ausgangsknoten 316.
-
Der
MSB-Zähler 304 ist
mit dem LSB-Ausgangsknoten 314 gekoppelt. Der LSB-Zähler 304 ist so
konfiguriert, daß er
den Höchstwertiges-Bit-Zählzustand
von dem Anfangszustand auf einen Null-Zählzustand dekrementiert. Für jeden
Impuls des Taktsignals bestimmt der MSB-Zähler 304, ob auf einen
nachfolgenden MSB-Zählerzustand
dekrementiert werden soll. Der MSB-Zähler 304 dekrementiert
während
eines Taktimpulses, wenn der LSB-Zähler 302 das
Null-Zustandssignal „lhit" an dem LSB-Ausgangsknoten 316 erzeugt,
einen einzigen Zustand. Der MSB-Zähler 304 ändert den MSB-Zählerzustand
während
eines Taktimpulssignales, wenn der LSB-Zähler das Nicht-Null-Zustandssignal „n_lhit" an dem LSB-Ausgangsknoten 316 erzeigt,
nicht. Wenn der MSB-Zähler 304 einen Null-Zählzustand
aufweist, erzeugt der MSB-Zähler 304 ein
Null-Zustandssignal „mhit" an dem MSB-Ausgangsknoten 318.
Wenn der MSB-Zähler
einen Nicht-Null-Zustand
aufweist, erzeugt der MSB-Zähler an
dem MSB-Ausgangsknoten 318 ein Nicht-Null-Signal „n_mhit".
-
Bei
einer Ausführungsform
kann der LSB-Zähler 302 mit
dem Ausgangsknoten 318 des MSB-Zählers gekoppelt werden. Der
LSB-Zähler 302 kann
so konfiguriert werden, daß er
den LSB-Zählzustand
während
eines Taktimpulses, wenn der LSB-Zähler 302 einen Nullzustand
aufweist und der MSB-Zähler 304 ein
Nicht-Null-Zustandssignal „n_mhit" an dem MSB-Ausgangsknoten
bereitgestellt hat, auf einen höchsten
Zustand zurücksetzt.
Während
nachfolgender Taktimpulse dekrementiert der LSB-Zähler 302 den
LSB-Zählerzustand
auf einen Nullzustand für
den LSB-Zähler 302.
Wenn der LSB-Zähler 302 und
der MSB-Zähler 304 jeweils
einen Null-Zählzustand
aufweisen, kann der LSB-Zähler 302 auf
den Anfangszustand mit den niedrigstwertigen Bit a<2:0> programmiert werden.
Wenn der LSB-Zähler 302 und
der MSB-Zähler 304 beide
einen Null-Zählzustand
aufweisen, kann der MSB-Zähler 304 ähnlich auf
den Anfangszustand mit den höchstwertigen
Bit a<5:3> programmiert werden.
Der Null-Zählzustand
für den
LSB-Zähler 302 kann
bestimmt werden, indem man das Null-Zählsignal „lhit", das an dem LSB-Zählerausgangsknoten 316 erzeugt wird,
detektiert. Der Null-Zählzustand
für den MSB-Zähler 304 kann
bestimmt werden, indem man das Null-Zählsignal „mhit", das an dem MSB-Zählerausgangsknoten 318 erzeugt
wird, detektiert.
-
Das
an dem Takteingangsknoten 314 bereitgestellte Taktsignal
kann eine variable Frequenz aufweisen. Bei einer Ausführungsform
besitzt das Taktsignal eine Maximalfrequenz von 2,5 GHz. Der Zähler 210 kann
mindestens ein 6-Bit-Synchron-Zähler mit
einem 3-Bit-Synchron-MSB-Zähler 304 sein,
der mit einem 3-Bit-Synchron-LSB-Zähler 302 synchronisiert
ist. Andere Ausführungsformen,
wie zum Beispiel ein 8-Bit-Zähler
mit 2 4-Bit-Synchron-Zählern oder
ein 7-Bit-Zähler
mit einem 3-Bit-Zähler
und einem 4-Bit-Zähler
können
implementiert werden.
-
Die
Ausgangsschaltung 306 ist so konfiguriert, daß sie den
Rückkopplungstaktimpuls
an dem Ausgangsknoten 320 latcht. Die Ausgangsschaltung 306 liefert
den Rückkopplungstaktimpuls,
wenn der MSB-Zähler 304 ein
Null-Zählzustandssignal „mhit" erzeugt und der
LSB-Zähler 302 ein
Null-Zählzustandssignal „lhit" erzeugt. Die Ausgangsschaltung 306 kann
ein Gatter 308 und ein Latch 310 enthalten. Das
Gatter 308 ist mit den Ausgangsknoten 316 und 318 gekoppelt.
Wenn „mhit" und „lhit" einen Logikwert „1" aufweisen, liefert
das Gatter 308 ein Signal an das Latch 310. Als
Reaktion erzeugt das Latch 310 einen Taktimpuls zu dem
Ausgangsknoten 320. Bei einer Ausführungsform ist das Gatter 308 ein
logisches AND-Gatter und das Latch 310 ein D-Flipflop.
Die Ausgangsschaltung 306 kann mit einer beliebigen Kombination
aus Logikgatter 308 und Latch 310 implementiert
werden. Zum Beispiel kann das Gatter 308 ein beliebiges
Logikgatter mit mehreren Eingängen
und einem einzigen Ausgang sein, wie zum Beispiel ein OR-Gatter,
ein NAND-Gatter, NOR-Gatter, XOR-Gatter oder ein Multiplexer. Ähnlich kann
das Latch 310 ein Flipflop mit beliebigem Design sein,
wie zum Beispiel ein S/R-Flipflop oder ein J/K-Flipflop.
-
Nunmehr
mit Bezug auf 4 sind beispielhafte Zustandsdiagramme 400 für einen
6-Bit-Synchron-Zähler
mit zwei 3-Bit-Zählern
gezeigt. Die Zustandsdiagramme enthalten ein LSB-Zählerzustandsdiagramm 402 und
ein MSB-Zählerzustandsdiagramm 404.
Das LSB-Zählerzustandsdiagramm 402 enthält ein Zustandsdiagramm 406 für eine Zählschaltung
für den
LSB-Zähler 302 und
ein Zustandsdiagramm 408 für das Ausgangssignal des LSB-Zählers 302. Das MSB-Zählerzustandsdiagramm 404 enthält ein Zustandsdiagramm 410 für eine Zählschaltung
für den
MSB-Zähler 304 und
ein Zustandsdiagramm 412 für das Ausgangssignal für den MSB-Zähler 304.
Die Zustandsdiagramme 402 und 404 veranschaulichen
einen Betrieb für
jeden 3-Bit-Zähler
des schnellen 6-Bit-Synchron-Zählers 210.
Die Zustandsdiagramme 406 und 410 für einen Zählzustand
veranschaulichen, wann der Zustand für den LSB-Zähler 302 bzw. der
Zustand für
den MSB-Zähler 304 dekrementiert
werden. Die Zustandsdiagramme 408 und 412 veranschaulichen, wann
das Ausgangssignal „lhit" des LSB-Zählers 302 und
das Ausgangssignal „mhit" des MSB-Zählers 304 umgeschaltet
werden.
-
Nunmehr
mit Bezug auf 5 ist ein Blockschaltbild für einen
beispielhaften 3-Bit-LSB-Zähler 302 gezeigt,
der so konfiguriert ist, daß er
gemäß dem Zustandsdiagramm 402 von 4 arbeitet.
Der LSB-Zähler 302 enthält eine
LSB-Zustandsschaltung 502 und eine LSB-Zählschaltung 504.
Der LSB-Zähler 302 kann
ferner einen Decoder 512 enthalten. Der Decoder 512 kann
mit dem Zählwert-Eingangsknoten 312 gekoppelt
werden. Der Decoder kann so konfiguriert sein, daß er die
niedrigstwertigen Bit a<2:0> empfängt. Bei
einer Ausführungsform
kann der Decoder 512 so konfiguriert sein, daß er den
LSB-Zähler 302 auf
den mit den niedrigstwertigen Bit a<2:0> assoziierten
Anfangszustand programmiert. Wenn der LSB-Zähler 302 so konfiguriert
ist, daß er
sequentiell gemäß einem
Gray-Code dekrementiert, kann
der Decoder dafür
konfiguriert sein, die niedrigstwertigen Bit a<2:0> in
einen entsprechenden Gray-Codewert umzusetzen. Der Decoder 512 programmiert
den LSB-Zähler 302 auf
den mit den Gray-codierten niedrigstwertigen Bit a<2:0> assoziierten Anfangszustand.
-
Die
LSB-Zählschaltung 504 ist
so konfiguriert, daß sie
einen Niedrigstwertiges-Bit-Zählwert
erzeugt. Die LSB-Zählschaltung 504 enthält eine LSB-Dekrementierschaltung 508,
entsprechend jedem der niedrigstwertigen Bit a<2:0>.
Die LSB-Dekrementierschaltungen 506 besitzen einen Biteingang
b0, b1 und b2 und einen Bitwertausgang d0, d1 und d2. Die Dekrementierschaltung 506 kann
eine LSB-Zählerlogikschaltung 508 und
ein Latch 510 aufweisen. Ein Eingang für das Latch 510 ist
mit einem Ausgang der LSB-Zählerlogikschaltung 508 verbunden.
Ein Ausgang für
das Latch 510 liefert den Bitwert d0, d1 und d2. Es wird
bevorzugt, daß das
Latch 510 ein D-Flipflop ist. Das Latch 510 kann
eine beliebige Art von digitalem Flipflop mit einem Datenspeicherzustand
sein, wie zum Beispiel ein J/K-Flipflop oder
ein S/R-Flipflop.
-
Der
Anfangszustand für
den LSB-Zähler 302 wird
durch Setzen des Zustands jedes Latch 510 auf einen entsprechenden
Wert b0, b1 und b2, der durch den Decodierer 512 bereitgestellt
wird, programmiert. Für
jeden Taktimpuls dekrementiert die LSB-Zählschaltung 504 den
Niedrigstwertiges-Bit-Zählwert.
Die LSB-Zählerlogik 508 bestimmt einen
nächsten
Zustand für
das entsprechende Latch 510 auf der Basis der Zählerausgaben „mhit", „lhit", „n_mhit" und „n_lhit" und der Ausgaben
d0, d1 und d2, die an einem Eingang der Zählerlogik 508 zugeführt werden.
Die LSB-Zählerlogik 508 erzeugt
ein Signal, das dem nächsten
Zustand für
das Latch 510 entspricht. Das Latch 510 stellt
den nächsten
Zustand an den Ausgängen
d0, d1 und d2 bereit. Kollektiv stellen die Ausgänge d0, d1 und d2 den Zählwert für den Zustand
des LSB-Zählers 302 bereit.
-
Die
LSB-Nullzustandsschaltung 502 erzeugt die Nullzustandsausgabe „lhit" gemäß dem Ausgangssignalzustandsdiagramm 408 von 4.
Die LSB-Nullzustandsschaltung 502 kann
Logikschalter 516 und ein mit den Logikschaltern gekoppeltes Latch 514 enthalten.
Die Logikschalter 516 können mit
CMOS-Transistoren
(complementary metal-oxide semiconductor) konfiguriert sein. Die
CMOS-Transistoren sind so ausgelegt, daß sie den Nullzustand für den LSB-Zähler 302 bestimmen.
Die Logikschalter 516 bestimmen den Nullzustand für den LSB-Zähler 302 während eines
Taktimpulses vor dem Nullzustand des LSB-Zählers 302. Während eines
Taktimpulses, wenn der LSB-Zähler 302 einen
Nullzustand aufweist, verschieben die Logikschalter 516 den
Zustand des Latch 514, um das Nullzustandssignal „lhit" bereitzustellen.
Bei einer Ausführungsform
ist das Latch 514 ein D-Flipflop. Das Latch 514 kann
eine beliebige Art von digitalem Flipflop mit Datenspeicherzustand
sein, wie zum Beispiel ein J/K-Flipflop oder ein S/R-Flipflop.
-
Nunmehr
mit Bezug auf 6 ist ein Blockschaltbild für einen
beispielhaften 3-Bit-MSB-Zähler 304 gezeigt,
der gemäß dem Zustandsdiagramm 404 von 4 konfiguriert
ist. Der MSB-Zähler 304 enthält eine
MSB-Nullzustandsschaltung 602 und
eine MSB-Zählschaltung 604.
Der MSB-Zähler 304 kann ferner
einen Decoder 312 enthalten. Der Decoder 612 kann
mit dem Zählwerteingang 312 gekoppelt werden.
Der Decoder kann so konfiguriert werden, daß er die höchstwertigen Bit a<5:3> empfängt. Bei einer
Ausführungsform
kann der Decoder 612 so konfiguriert werden, daß er dem
MSB-Zähler 304 auf den
mit den niedrigstwertigen Bit a<5:3> assoziierten Anfangszustand
programmiert. Wenn der MSB-Zähler 304 so
konfiguriert ist, gemäß einem
Gray-Code zu dekrementieren, kann der Decoder dafür konfiguriert
werden, die höchstwertigen
Bit in einen entsprechenden Gray-Codewert umzusetzen. Der Decoder 612 ist
so konfiguriert, daß er
den MSB-Zähler 304 auf
den mit den Gray-codierten höchstwertigen
Bit a<5:3> assoziierten Anfangszustand
programmiert.
-
Die
MSB-Zählschaltung 604 ist
so konfiguriert, daß sie
einen Höchstwertiges-Bit-Zählwert erzeugt.
Die MSB-Zählschaltung 604 enthält eine MSB-Dekrementierschaltung 608 entsprechend
jedem der höchstwertigen
Bit a<5:3>. Die MSB-Dekrementierschaltungen 606 besitzen
einen Biteingang b3, b4 und b5 und einen Bitwertausgang d3, d4 und d5.
Die Dekrementierschaltung 606 kann eine MSB-Zählerlogikschaltung 601 und
ein Latch 610 aufweisen. Ein Eingang für das Latch 610 ist
mit einem Ausgang der MSB-Zählerlogikschaltung 608 verbunden.
Ein Ausgang für
das Latch 610 liefert den Bitwert d3, d4 und d5. Es wird
bevorzugt, daß das Latch 610 ein
D-Flipflop ist.
Das Latch 610 kann eine beliebige Art von digitalem Flipflop
mit einem Datenspeicherzustand sein, wie zum Beispiel ein J/K-Flipflop
oder ein S/R-Flipflop.
-
Der
Anfangszustand für
den MSB-Zähler 304 wird
programmiert, indem der Zustand für jedes Latch 610 auf
einen entsprechenden Wert b3, b4 und b5, der durch den Decodierer 612 bereitgestellt
wird, programmiert wird. Die MSB-Zählschaltung 604 dekrementiert
den Höchstwertiges-Bit-Zählwert,
wenn der LSB-Zähler 302 das
Null-Zählwertsignal
an dem Ausgangsknoten 316 liefert. Die MSB-Zählerlogik 608 bestimmt
einen nächsten
Zustand für
das Latch 610 auf der Basis der Zählerausgaben „mhit", „lhit", „n_mhit" und „n_lhit" und der Ausgaben
d3, d4 und d5, die an einem Eingang der Zählerlogik 608 zugeführt werden.
Die MSB-Zählerlogik 608 erzeugt
ein Steuersignal entsprechend dem nächsten Zustand für das entsprechende
Latch 610. Das Latch liefert den nächsten Zustand an den Ausgängen d3,
d4 und d5. Kollektiv liefern die Ausgänge d3, d4 und d5 den Zählwert für den Zustand
des MSB-Zählers 304 bereit.
-
Die
MSB-Nullzustandsschaltung 602 erzeugt die Nullzustandsausgabe „mhit" gemäß dem Ausgangssignalzustandsdiagramm 410 von 4.
Die MSB-Nullzustandsschaltung 602 kann
Logikschalter 616 und ein mit den Logikschaltern gekoppeltes Latch 614 enthalten.
Die Logikschalter 616 können mit
CMOS-Transistoren
konfiguriert werden, die so angeordnet sind, daß der Nullzustand für den MSB-Zähler 304 bestimmt
wird. Die Logikschalter 616 bestimmen den Nullzustand für den MSB-Zähler 304 während eines
Taktimpulses vor dem Nullzustand des MSB-Zählers. Während eines Taktimpulses, wenn
der MSB-Zähler 304 einen
Nullzustand aufweist, verschieben die Logikschalter 616 den
Zustand des Latch 614, um das Nullzustandssignal „mhit" bereitzustellen.
Bei einer Ausführungsform
ist das Latch 614 ein D-Flipflop. Das Latch 614 kann eine
beliebige Art von digitalem Flipflop mit einem Datenspeicherzustand
sein, wie zum Beispiel ein J/K-Flipflop oder ein S/R-Flipflop.
-
Nunmehr
mit Bezug auf 7, ist eine beispielhafte Schaltung
für die
LSB-Zählerlogik 508 gezeigt.
Die LSB-Zählerlogik 508 kann
mit Transistoren implementiert werden, die in einer CMOS-Konfiguration
mit einem oder mehreren PMOS-Transistoren und einem oder mehreren
NMOS-Transistoren angeordnet sind. Bei einer Ausführungsform
kann der PMOS-Transistor als ein Pull-up-Bauelement konfiguriert sein und die
NMOS-Transitoren sind so konfiguriert, daß eine Logikumschaltung für den LSB-Zählerlogikausgang
bereitgestellt wird. Bei einer anderen Ausführungsform ist der PMOS-Transistor
ein resistives Pull-up-Bauelement.
-
Nunmehr
mit Bezug auf 8 ist eine beispielhafte Schaltung
für die
MSB-Zählerlogik 608 gezeigt.
Die LSB-Zählerlogik 608 kann
mit Transistoren implementiert werden, die in einer CMOS-Konfiguration
angeordnet sind, die einen oder mehrere PMOS-Transistoren und einen
oder mehrere NMOS-Transistoren aufweist. Bei einer Ausführungsform
kann der PMOS-Transistor als ein Pull-up-Bauelement konfiguriert
sein und die NMOS-Transitoren sind
so konfiguriert, daß eine
Logikumschaltung den MSB-Zählerlogikausgang
bereitgestellt wird. Bei einer anderen Ausführungsform ist der PMOS-Transistor ein resistives
Pull-up-Bauelement.
-
Es
wird bevorzugt, daß die
hier beschriebenen CMOS-Transistoren
so konfiguriert werden, daß sie
mit einer Versorgungsspannung von weniger als 2,0 V arbeiten. Bei
einer Ausführungsform
besitzen die CMOS-Transistoren eine Kanallänge von weniger als 0,18 μm und sind
mit einer Versorgungsspannung von weniger als 1,9 V betreibbar.
-
Mit
Bezug auf 9 ist ein Flußdiagramm
für ein
Verfahren 900 zum Zählen
von schnellen Taktimpulsen gezeigt. Das Verfahren umfaßt die folgenden Schritte:
Empfangen 902 eines Taktsignals; Empfangen 904 eines
Zählwerts;
Programmieren 906 eines LSB-Zählers und eines MSB-Zählers; Dekrementieren 908 des
LSB-Zählers
als Reaktion auf das Taktsignal; Dekrementieren 910 des
MSB-Zählers
als Reaktion auf ein Niedrigstwertiges-Bit-Zähler-Nullzählwerts-Signal;
und Erzeugen 912 eines Ausgangssignals als Reaktion auf
das Niedrigstwertiges-Bit-Nullzählwertsignal
und ein Höchstwertiges-Bit-Nullzählwertsignal.
-
Der
Schritt des Empfangens 904 eines Zählwerts umfaßt das Empfangen
von niedrigstwertigen Bit und höchstwertigen
Bit. Die niedrigstwertigen Bit und die höchstwertigen Bit repräsentieren
kollektiv den Zählwert
für den
schnellen Zähler.
-
Der
Schritt des Programmierens 906 umfaßt das Programmieren des LSB-Zählers mit
den niedrigstwertigen Bit und des MSB-Zählers mit dem MSB-Zähler. Das
Programmieren des LSB-Zählers und
des MSB-Zählers
setzt den LSB-Zähler
und den MSB auf einen Anfangszustand.
-
Der
Schritt des Dekrementierens 908 eines LSB-Zählers umfaßt das Erzeugen
eines Niedrigstwertiges-Bit-Null-Zählwertsignals,
wenn der LSB-Zähler
einen Nullzustand aufweist. Ähnlich
umfaßt
das Dekrementieren eines MSB-Zählers das
Erzeugen eines Höchstwertiges-Bit-Null-Zählwertsignals, wenn der Höchstwertiges-Bit-Zähler einen
Nullzustand aufweist. Das Niedrigstwertiges-Bit-Null-Zählwertsignal wird an einem
Ausgangsknoten für
den LSB-Zähler
und das Höchstwertiges-Bit-Zählwertsignal
an einem Ausgangsknoten für den
LSB-Zähler
bereitgestellt.
-
Es
können
verschiedene Implementierungen von Verfahren realisiert werden,
die in den Schutzumfang der vorliegenden Erfindung fallen. Man kann einen
schnellen programmierbaren Synchron-Zähler erhalten, der aus einem
schnellen Taktsignal ein Rückkopplungstaktsignal
ableiten kann. Die vorliegende Ausführungsform ist auf einen schnellen
programmierbaren Synchron-Zähler
für einen
auf PRML basierenden Lese-/Schreibkanal für ein Festplattenlaufwerk anwendbar.
Insbesondere kann der schnelle programmierbare Synchron-Zähler als
eine Komponente einer Rückkopplungsschaltung
eines Phasenregelkreises vorgesehen werden.
-
Alle
Komponenten des schnellen programmierbaren Synchron-Zählers können mit
dem Lese-/Schreibkanal auf einem einzigen integrierten Halbleiterchip
integriert werden. Alternativ dazu können alle Komponenten der Zählerschaltung
oder ein Teil davon in einer oder mehreren außerhalb des Lese-/Schreibkanals
angeordneten integrierten Schaltungen implementiert werden.