DE60035780T2 - Schaltung für plattenantriebskontroller und verfahren zur überschlagung von defekten oder ungewünschten sektoren - Google Patents

Schaltung für plattenantriebskontroller und verfahren zur überschlagung von defekten oder ungewünschten sektoren Download PDF

Info

Publication number
DE60035780T2
DE60035780T2 DE60035780T DE60035780T DE60035780T2 DE 60035780 T2 DE60035780 T2 DE 60035780T2 DE 60035780 T DE60035780 T DE 60035780T DE 60035780 T DE60035780 T DE 60035780T DE 60035780 T2 DE60035780 T2 DE 60035780T2
Authority
DE
Germany
Prior art keywords
sectors
skip
sector
disk drive
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60035780T
Other languages
English (en)
Other versions
DE60035780D1 (de
Inventor
Daniel R. Pinvidic
Gregory T. Orange ELKINS
Stanley K. Los Angeles CHEONG
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.)
Marvell World Trade Ltd
Original Assignee
Marvell World Trade Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Marvell World Trade Ltd filed Critical Marvell World Trade Ltd
Publication of DE60035780D1 publication Critical patent/DE60035780D1/de
Application granted granted Critical
Publication of DE60035780T2 publication Critical patent/DE60035780T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1883Methods for assignment of alternate areas for defective areas
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft im Allgemeinen Computersystem-Massenspeichervorrichtungen. Insbesondere betrifft die vorliegende Erfindung eine Plattenlaufwerk-Controllerschaltung und ein Verfahren zum Prüfen und Verwalten defekter und/oder unerwünschter Sektoren auf einer Platte.
  • Kurzbeschreibung des Stands der Technik
  • Computersysteme umfassen oft ein Host-System und eine oder mehrere periphere Speichervorrichtungen, welche Daten speichern und/oder bereitstellen. Eine Art einer peripheren Speichervorrichtung ist ein Festplattenlaufwerk. Ein Festplattenlaufwerk besteht typischerweise aus wenigstens einer Magnetscheibe (zusammengefasst als die "Platte" bezeichnet), welche durch einen Motor gedreht wird, einem Betätigungselement, das einen Wandler an verschiedene Stellen über der Platte bewegt, einem Mikroprozessor, einem Plattenlaufwerk-Controller ("Controller") und verschiedenen weiteren elektrischen Schaltungen. Der Controller ist typischerweise eine integrierte Schaltung, welche in eine gedruckten Leiterplatte innerhalb des Plattenlaufwerks eingebaut ist. Der Mikroprozessor kann physikalisch in der oder außerhalb der integrierten Controllerschaltung eingebettet sein.
  • Der Controller steuert (unter der Steuerung des Mikroprozessors) üblicherweise die Operationen des Plattenlaufwerks, einschließlich der Handhabung der Daten aus dem Host-Computer ("Host"-System) oder einfach "Host", die auf einer Platte während eines Schreibvorgangs zu speichern sind, und das Zurückgeben von Daten an einen anfordernden Host-Computer während eines Lesevorgangs. Der Controller wird dazu verwendet, Daten von der Plattenoberfläche auszulesen und an diese zu senden. Der Controller codiert üblicherweise die Daten so, dass sie erfolgreich auf die und von der Platte übertragen werden können.
  • Die Platte beinhaltet oft rotierende Magnetscheiben, welche Daten speichern. Daten können auf die Platte oder von der Platte eine beliebige Anzahl von Malen geschrieben oder gelesen werden, und die Daten bleiben intakt, nachdem das Plattenlaufwerk abgeschaltet ist. Eine Magnetscheibe kann zwei beschreibbare Oberflächen aufweisen. Jede beschreibbare Oberfläche speichert Daten auf als Spuren bezeichneten konzentrischen Ringen. Die Anzahl der Spuren kann von Platte zu Platte variieren. Die Spuren sind radial in Sektoren unterteilt, welche die kleinste beschreibbare/lesbare Einheit einer Spur sind. Die Anzahl von Sektoren kann pro Spur variieren und kann von Platte zu Platte variieren, da Plattenhersteller unterschiedlich dicke Plattenkonfigurationen haben können. Es können 200 oder mehr Sektoren pro Spur vorhanden sein. Jeder Sektor enthält Daten, Information über den Sektor und Synchronisationsinformation.
  • Es gibt zwei allgemeine Arten von Defekten, weiche auf einer Magnetscheibe auftreten können: Herstellungsdefekte und gewachsene Defekte. Herstellungsdefekte sind während der Herstellung auftretende und detektierte Defekte. Wenn Platten in der Fabrik während der Herstellung formatiert werden, ermittelt ein Fabrikalgorithmus, welche Sektoren zu Beginn defekt sind und erzeugt eine Liste von Sektoradressen aller detektierten Herstellungsdefekte. Die Prozedur der Aufzeichnung von Herstellungsdefekten kann von Platte zu Platte unterschiedlich und für jeden Plattenhersteller einzigartig sein. Der Fabrikalgorithmus speichert die Liste der Herstellungsdefektadressen auf der Platte des Plattenlaufwerks entweder als physikalische Adressen oder logische Blockadressen abhängig von der durch den Hersteller definierten Implementation seines Plattenlaufwerks. Das Plattenlaufwerk verwendet die Liste, um "Überspringen" durchzuführen, was für jeden Sektor mit einem Herstellungsdefekt bedeutet, dass die Adresse (entweder die physikalische oder logische, abhängig von der vom Hersteller definierten Implementation, des nächsten zu lesenden oder zu beschreibenden Sektors logisch von der Adresse des letzten guten Sektors aus inkrementiert wird. Somit liest oder beschreibt während des Plattenlaufwerkbetriebs das Plattenlaufwerk keinen Sektor mit einem Herstellungsdefekt, da die Adresse dieses Sektors bis zu dem nächsten guten Sektor inkrementiert wurde.
  • Der andere allgemeine Typ von Defekten sind die so genannten gewachsenen Defekte, welche nach der Herstellung auftreten und/oder detektiert werden. Gewachsene Defekte umfassen Sektoren, welche das Plattenlaufwerk als unlesbar oder unbenutzbar ermittelt, wie z.B. während eines Formatierungsvorgangs. Gewachsene Defekte werden detektiert und typischerweise aufgezeichnet, wenn ein Sektor gelesen wird, aber der Prozess kann sich von der durch den Hersteller definierten Implementation unterscheiden. Die Daten aus jedem Sektor mit einem gewachsenen Defekt werden einem defektfreien Sektor neu zugeordnet.
  • Wie bei den Herstellungsdefekten werden die Stellen der gewachsenen Defekte und deren neu zugeordneten Sektoradressen typischerweise auf der Platte abhängig von der durch den Hersteller definierten Implementation entweder als physikalische oder logische Adressen gespeichert. Die Stellen der gewachsenen Defekte können von der Platte jedes Mal, wenn das Plattenlaufwerk eingeschaltet wird, an einen Arbeitsspeicher (RAM) übertragen werden. Einige Plattenlaufwerk-Controller enthalten ein oder mehrere Register, welche verwendet werden, um kurzzeitig die Adressen defekter Sektoren zu speichern, die während eines aktuellen Lese- oder Schreibvorgangs zu überspringen oder neu zuzuordnen sind.
  • Ein bekannter Plattencontroller ist in US 5 500 848 beschrieben.
  • Dieses System weist vorab bei einer Herstellerplattenformatierung Reservesektoren zu, um Platz zur Verschiebung von Daten in dem Falle einer Aufdeckung eines Defektes anschließend an die anfängliche Plattenformatierung bereitzustellen. Alle Sektoren einer Spur, die einem entdeckten Defekt folgen, werden den Reservesektoren zusammen mit dem defekten Sektor neu zugeordnet.
  • Zusammenfassung der Erfindunag
  • Ein Nachteil bei einigen Plattenlaufwerk-Controllern ist die eingeschränkte Anzahl von Registern in dem Plattenlaufwerk-Controller, welche zur Identifizierung defekter Sektoren auf einer zu überspringenden oder neu zuzuordnenden Spur während eines Lese- oder Schreib-Vorgangs zugeordnet sind. Die Anzahl der Register beschränkt die Gesamtanzahl defekter Sektoren, die während eines Lese- oder Schreib-Vorgangs übersprungen oder neu zugeordnet werden können. In einigen Plattenlaufwerken kann die Anzahl von Defekten auf einer speziellen Spur größer als die Anzahl verfügbarer Register sein, die zum Identifizieren auf einer Spur verwendet werden. Das Hinzufügen von mehr Registern würde das Hinzufügen von mehr Gattern erfordern, was die Kosten der Herstellung des Plattenlaufwerk-Controllers erhöht.
  • Zusätzlich zu der Erhöhung der Fertigungskosten besteht ein weiterer Nachteil der Hinzufügung von mehr Registern in dem Versuch, im Voraus abzuschätzen, wie viele Register ausreichend sind, um alle Defekte einer speziellen Spur einer speziellen Platte zu verwalten. Unterschiedliche Platten können unterschiedliche Anzahlen von Sektoren pro Spur und eine unterschiedliche Anzahl von Spuren enthalten. Ferner kann, wenn sich die Plattentechnologie verbessert, die Anzahl der Sektoren pro Spur zunehmen, was zu mehr zu verwaltenden, zu überspringenden und/oder neu zuzuordnenden defekten Sektoren durch den Plattenlaufwerk-Controller führt.
  • Eine Lösung besteht in der Unterteilung der Defektverwaltungsvorgang in mehrere Teile, da der Controller nur eine bestimmte Anzahl von defekten Sektoren für einen gegebenen Lese- oder Schreib-Vorgang (auf der Basis der eingeschränkten Anzahl von Registern) überspringen kann. Wenn jeder Teil einer mehrteiligen Defektverwaltungsvorgangs eine spezielle Anzahl defekter Sektoren übersprungen oder neu zugeordnet hat, können dann genug Register vorhanden sein, um die meisten oder alle Defekte auf einer speziellen Spur zu verwalten. Jedoch verlängert die Unterteilung des Defektverwaltungsvorgangs in mehrere Teile die Zeit des gesamten Defektverwaltungsvorgangs und verschlechtert das Verhalten des Plattenlaufwerks. Ein wichtiges Ziel bei derzeitigen Plattenlaufwerken besteht in der Minimierung der Zeitspanne für Lese- und Schreibvorgänge.
  • Die vorliegende Erfindung betrifft eine Plattenlaufwerk-Controllerschaltung und ein Verfahren zur Verfolgung defekter und/oder unerwünschter Sektoren auf einer Platte und das Überspringen derartiger defekter oder unerwünschter Sektoren während Lese- oder Schreib-Vorgängen gemäß Definition in den abhängigen Ansprüchen 1 und 9. Die vorliegende Erfindung erkennt und nutzt den Vorteil der Tatsache, dass defekte Sektoren sich tendenziell in unmittelbarer Nähe zueinander befinden und oft zusammen in Gruppen zusammenhängender oder aufeinander folgender Sektoren gefunden werden. Der Plattenlaufwerk-Controller der vorliegenden Erfindung verwendet "Übersprungbereichprüfregister" oder "Übersprungprüfregister", welche die Stellen von Bereichen aufeinander folgender defekter Sektoren speichern können.
  • Indem die Information über defekte Sektoren innerhalb des Controllers als Bereiche defekter Sektoren gespeichert wird, kann die vorliegende Erfindung die Größe der Register und/oder der benötigten Registerlogik reduzieren, um die Defekte zu verfolgen. Alternativ kann die vorliegende Erfindung (gegenüber früheren Konstruktionen) die Anzahl von defekten Sektoren vergrößern, die während eines Lese- oder Schreibvorgangs ohne eine erhebliche Vergrößerung der Registerlogik verwaltet werden können.
  • Ferner ermöglichen, da das Plattenlaufwerk dafür konfiguriert ist, Daten auf einer Spur kontinuierlich Sektor für Sektor zu lesen oder zu schreiben, die Übersprungsbereichprüfregister der Steuerung schnell die defekten Sektoren in Gruppen anstelle von einzelnen Einheiten zu überspringen. Somit reduziert die Plattenlaufwerk-Controllerschaltung und das Verfahren der vorliegenden Erfindung das Problem der Hinzufügung von mehr Registern, indem versucht wird, abzuschätzen, wie viele Register mehr benötigt werden, und indem der Defektverwaltungsvorgang in mehrere Teile unterteilt wird.
  • Verschiedene Plattenlaufwerkhersteller können unterschiedliche Defektverwaltungsverfahren verwenden. Jedes von einer Vielfalt bekannter Defektverwaltungsverfahren kann mit der vorliegenden Erfindung verwendet werden. Eine Ausführungsform ermöglicht dem Host-System auch bestimmte unerwünschte Sektoren während eines Lese- oder Schreibvorgangs zu überspringen oder zu maskieren. Diese Sektoren sind nicht defekt, sind aber von dem Host-System während eines speziellen Lese- oder Schreibvorgangs nicht gewünscht.
  • Spezifische Aspekte der vorliegenden Erfindung werden im Detail in den beigefügten unabhängigen und abhängigen Ansprüchen beschrieben.
  • Kurzbeschreibung der Zeichnungen
  • 1 stellt ein Host-System und ein Plattenlaufwerk gemäß einer Ausführungsform der Erfindung dar und stellt ein mit dem Plattenformatierer verbundenes Host-System dar.
  • 2A stellt ein Beispiel einer Spur auf einer Platte und zwei Übersprungregister dar.
  • 2B stellt ein Beispiel einer Spur und eine Konfiguration eines Übersprungbereichprüfregisters in dem Plattenlaufwerk von 1 dar.
  • 3 stellt eine Konfiguration eines Satzes von Übersprungbereichprüfregistern in dem Plattenlaufwerk von 1 dar.
  • 4 stellt eine Konfiguration einer durch das Plattenlaufwerk von 1 verwendeten Bitmap dar.
  • 5 stellt eine Konfiguration eines von dem Plattenlaufwerk von 1 durchgeführten Ablaufsteuer- bzw. Zustandsmaschinenverfahrens dar.
  • 6 stellt ein Beispiel einer Spur auf einer Platte und einen Satz von Übersprungbereichprüfregistern von 3 dar.
  • 7 stellt eine Konfiguration eines von dem Plattenlaufwerk von 1 durchgeführten Firmware-Verfahrens dar.
  • Detaillierte Beschreibung der bevorzugten Ausführungsformen
  • Es wird hierin eine bevorzugte Ausführungsform der vorliegenden Erfindung beschrieben, welche veranschaulichen und nicht den Schutzumfang der Erfindung einschränken soll. 1 stellt ein Plattenlaufwerk 2 gemäß einer Ausführungsform der Erfindung dar. Das Plattenlaufwerk 2 ist zusammen mit einem Host-System (Host 5) dargestellt, welches beispielsweise ein Personal Computer (PC) sein kann. Das Plattenlaufwerk 2 weist eine Plattenlaufwerk-Controllerschaltung (Controller) 15, einen Host-Schnittstellenport 10, einen Plattenport 27, einen lokalen oder Plattenlaufwerk-Mikroprozessor (Mikroprozessor) 20, einen Mikroprozessorport 22, einen Datenpufferport 75, einen Nur-Lese-Speicher (ROM) 70, einen Arbeitsspeicher (RAM) 60 und einen Datenpuffer 60 auf. Der Plattenlaufwerk-Controller 15 liest und schreibt Daten auf eine Platte 25.
  • Der Host-Schnittstellenport 10 kann beispielsweise ein Small Computer Standard Interface-(SCSI)-Port, ein Advance Technology Attachment-(ATA)-Bus-Port oder ein Fibre Channel Port sein. Der Mikroprozessor 20 ist bevorzugt ein Allzweckmikrocontroller und kann entweder physikalisch innerhalb des Controllers 15 oder außerhalb des Controllers 15 eingebettet sein. Der Datenpuffer 80 kann sich entweder innerhalb oder außerhalb des Controllers 15 befinden. Der ROM 70 speichert eine ausführbare Firmware 65, welche beim Booten in den RAM 60 kopiert und durch den Mikroprozessor 20 ausgeführt werden kann. Alternativ kann der ROM 70 einen Satz von Befehlen zum Herunterladen von Firmware von der Platte 25 zu dem RAM speichern.
  • Der RAM 60 speichert eine Defektliste 62, welche von der Platte 25 oder irgendeiner anderen geeigneten Stelle durch die Firmware 65 bei dem Bootvorgang geladen wird. Die Defektliste 62 kann eine Haupt-Liste aller Herstellungsfehler und gewachsenen Fehler für die gesamte Platte 25 sein. Alternativ kann in einer weiteren Konfiguration die Defektliste 62 in den RAM 60 durch die Firmware 65 zu Beginn jeder Lese- oder Schreibvorgang geladen werden. In dieser Konfiguration kann die Defektliste 62 ein Abschnitt der Haupt-Liste aller Fertigungsfehler oder gewachsenen Fehler für die gesamte Platte 25 sein. In dieser Konfiguration kann die Firmware 65 einen Teil der Haupt-Liste auf einer Spur-für-Spur-Basis oder einer Zonen-für-Zonen-Basis (abhängig von der durch den Hersteller definierten Implementation) nach Bedarf durch einen Lese- oder Schreibbefehl laden.
  • In der dargestellten Ausführungsform von 1 weist der Plattenlaufwerk-Controller 15 eine Mikroprozessorschnittstelle 40, eine Datenfluss-Controller 35, eine Puffer-Controller 45, ein Fehlerkorrekturcode-(ECC)-Modul 50, einen Plattenformatierer 30 und eine Host-Schnittstellen-Controller 55 auf. Die Host-Schnittstellen-Controller 25 kann aus einem SCSI-Controller oder einem SCSI Prozessor, einem ATA Prozessor oder einem Fibre Chanel Schnittstellenmanager bestehen. Der Puffer-Controller 45 enthält wenigstens einen logischen Blockadressen-(LBA)-Zähler 47, welcher einem Lese- oder Schreibvorgang zugeordnete logische Blockadressen der Sektoren zählt.
  • Der Plattenformatierer 30 umfasst eine Hauptzustandsmaschine 90, einen Sektorimpulsgenerator 92, ein Gatter 95 mit logischer UND-Funktion, eine Befehlszustandsmaschine 102, eine Übersprungprüfzustandsmaschine 100 und einen Satz von Übersprungprüfregistern 105. Die Plattenformatierregister umfassen ein Plattenformatier-Steuerregister 100, ein SEC_REQ-Register 103 und ein SEC_CNT-Register 104. Alter nativ können in weiteren Konfigurationen weitere Schaltungsarchitekturen verwendet werden, um die offenbarten Funktionen zu implementieren.
  • Controller und Mikroprozessor für den allgemeinen Betrieb
  • Der allgemeine Betrieb des Platenlaufwerk-Controllers 14 und des Mikroprozessors 20 wird unter Bezugnahme auf die 1 und 7 beschrieben. 7 stellt eine Konfiguration eines durch das Plattenlaufwerk 2 von 1 durchgeführten Firmwareverfahrens dar. In einem Prozessblock 700 von 7 empfängt und verarbeitet das Plattenlaufwerk 2 einen Lese- oder Schreibbefehl von dem Host-System 5. Insbesondere initiiert der Host 5 einen Plattenlaufwerksvorgang, indem er einen Lese- oder Schreibbefehl an den Host-Schnittstellen-Controller 55 des Plattenlaufwerk-Controllers 15 sendet. Der Mikroprozessor 20 liest den Lese- oder Schreibbefehl aus dem Host-Schnittstellen-Controller 55. Der Lese- oder Schreibbefehl startet bei einer ausgewählten logischen Blockadresse und kann mehr als nur eine Spur beinhalten.
  • In einem Prozessblock 702 führt der Mikroprozessor 20 Firmware 65 aus, welche zu die lesende oder beschreibende Spuren) identifiziert. Die Firmware 65 wandelt oder übersetzt die logischen Blockadressen des Lese- oder Schreibbefehls in spezifische physikalische Sektorstellen (Adressen), die auf der Platte 25 zu lesen oder zu schreiben sind. Die Übersetzung ist durch die Herstellerimplementation seines Plattenlaufwerks definiert.
  • In einem Prozessblock 704 erzeugt die Firmware 65 eine Liste innerhalb der identifizierten Spuren) zu überspringenden Sektoren des Lese- oder Schreibvorgangs. Um diese Liste zu erzeugen, kann die Firmware 65 eine dem Lese- oder Schreibbefehl und der Defektliste 62 aus der Platte 25 zugeordnet Bitmap, falls vorhanden, (wie z.B. die in 4 dargestellte) verwenden. Wie vorstehend beschrieben, kann die von der Firmware 65 verwendete Defektliste 62 eine Haupt-Liste aller Herstellungsfehler und gewachsenen Fehler auf der Platte 25 oder ein Teil der Haupt-Liste sein.
  • In einem Prozessblock 706 wandelt die Firmware 65 die Liste 62 der zu überspringenden Sektoren in ein geeignetes Format zum Laden der Übersprungbereichprüfregister 105 um. Dieses beinhaltet beispielsweise eine Kombination aufeinander folgender Ad ressen von defekten Sektoren in eine Startadresse und in einen Bereich (oder Länge) aufeinander folgender Adressen defekter Sektoren. Somit wird die Defektliste 62 zu einer kondensierten oder komprimierten Liste umgewandelt. Die Firmware 65 verwendet die Defektliste 62 auch, um ein Neuzuordnungsbit (das in das Neuzuordnungsbit 162 des Übersprungprüfregistersatzes 170 zu laden ist) für durch den Lese- oder Schreibbefehl spezifizierte Sektoren mit gewachsenen Defekten zu erzeugen.
  • In einem Prozessblock 708 lädt die Firmware 65 alle erforderlichen Steuerparameter zum Ausführen des Befehls in die geeigneten Register des Controllers 15, wie z.B. das Plattenformatierer-Steuerregister 101, das SEC_REQ-Register 103, das SEC_CNT-Register 104 und die Übersprungregister 105. Für die Übersprungprüfregisterkonfiguration von 3 lädt die Firmware 65 die vier Felder 162-168 nach Bedarf.
  • Einer der Zwecke der Steuerparameter besteht darin, zu spezifizieren, welche physikalischen Sektoren und welche Spuren beschrieben oder gelesen werden. Das SEC_REQ-Register 103 enthält zu Beginn die Startadresse oder Adresse des ersten Sektors (Adresse des niedrigsten physikalischen Sektors), welche durch Ausführen eines Lese- oder Schreibbefehls von dem Host-System 5 identifiziert wird. Das SEC_CNT-Register 104 spezifiziert am Anfang die Gesamtanzahl der durch den Lese- oder Schreibbefehl identifizierten Sektoren und spezifiziert während des Verlaufs des Vorgangs die Anzahl der zu verarbeitenden verbleibenden Sektoren.
  • Nachdem die Register 101, 103, 104 und 105 geladen sind, gibt die Firmware 65 einen Lese- oder Schreibbefehl an den Plattenformatierer 30 gemäß Darstellung in einem Prozessblock 710 aus. Der Plattenformatierer 30 führt bevorzugt den Befehl automatisch ohne weitere Intervention durch den Mikroprozessor 20 aus. Der Sektorimpulsgenerator 92 erzeugt einen Startbefehlssektorimpuls (CMD_START_SP) für das Gatter 95 mit der logischen UND-Funktion. Der CMD_START_SP identifiziert den ersten spezifizierten Sektor ID, SEC_REQ. Der Sektorimpulsgenerator 99 sendet auch den CMD_START_SP an die Übersprungprüfzustandsmaschine 100.
  • Die Übersprungprüfzustandsmaschine 100 ermittelt, ob der in dem SEC_REQ-Register 103 gespeicherte Wert sich auf einen zu überspringenden Sektor bezieht. Die Übersprungprüfzustandsmaschine 100 erzeugt ein Ausgangssignal, welches in das Und- Gatter 95 zusammen mit dem Signal CMD_START_SP aus dem Sektorimpulsgenerator 92 eingegeben wird. Wenn der Ausgang der Übersprungprüfzustandsmaschine 100 "niedrig" ist, wird der Sektor übersprungen. Wenn das Ausgangssignal der Übersprungprüfzustandsmaschine 100 "hoch" ist, wird der Sektor dann nicht übersprungen. Das Ausgangssignal des Und-Gatters 95 wird in die Hauptzustandsmaschine 90 eingegeben.
  • Die Übersprungprüfzustandsmaschine 100 prüft auch defekte Sektoren unter Verwendung der Inhalte der Übersprungprüfregister 105. Die Übersprungprüfzustandsmaschine 100 stoppt den Vorgang, wenn sie eine Adresse zu einem Sektor detektiert, der als ein Sektor angegeben ist, der aufgrund eines gewachsenen Defektes neu zuzuweisen ist. Die Firmware 65 verwendet dann einen Neuzuordnungsalgorithmus, um die Daten einem Sektor ohne gewachsene Defekte (z.B. für einen Schreibvorgang) zuzuweisen, oder um einen Ersatzsektor (z.B. für einen Lesevorgang) zu identifizieren.
  • Wenn der Befehl abgeschlossen ist, sendet der Plattenformatierer 30 einen Interrupt an den Mikroprozessor 20 und/oder setzt ein Flag. Der Interrupt kann anzeigen, dass der Befehl abgeschlossen ist, und dass der Plattenformatierer 30 zur Ausführung eines weiteren Befehls bereit ist.
  • Lesen oder Schreiben
  • In einer Konfiguration werden, wenn der Befehl aus dem Host 5 ein Lesebefehl ist, die angeforderten Daten von der Platte 25 in den Datenpuffer 80 gelesen. Wenn sich eine bestimmte Datenmenge in dem Puffer 80 befindet, veranlasst der Mikroprozessor 20 den Controller 15, die Daten von dem Puffer 80 an den Host 5 zu senden. Wenn der Befehl aus dem Host 5 ein Schreibbefehl ist, codieren der Plattenformatierer 30 und das ECC-Modul 50 die Daten, bevor diese auf der Platte 25 gespeichert werden.
  • Firmwarefunktionen
  • Die Firmware 65 ist bevorzugt dafür konfiguriert, drei primäre Funktionen auszuführen, die das Defektverwaltungsschema betreffen. Beim Booten veranlasst die Firmware 65, wenn sie durch den Mikroprozessor 20 ausgeführt wird, den Plattenlaufwerk-Controller 15 zum Auslesen der Liste der Sektoren mit Herstellungsfehlern aus der Platte 25 und speichert diese Liste in dem RAM 60, einem Datenpuffer oder einem anderen (dem Plattencontroller unbekannten) Bereich. Die Liste kann eine Zone, eine Magnetscheibe oder irgendeine andere Einheit betreffen, die von dem Plattenlaufwerkhersteller angegeben ist. Während eines Lese- oder Schreibvorgangs überträgt die Firmware 65 einen Teil dieser Liste in den Plattenformatierer 30. Der übertragene Teil der Liste deckt die spezielle Spuren) ab, welche zu den durch das Host-System 5 spezifizierten Sektoren in Beziehung stehen. Der Plattenformatierer 30 überspringt bestimmte Sektoren der Spur(en) gemäß der übertragenen Teilliste. Dieses ist Teil des vorstehend beschriebenen Defektverwaltungsvorgangs.
  • Die Firmware 65 ordnet auch Sektoren mit gewachsenen Defekten neu zu. Die Neu-Zuordnungs-Prozedur kann abhängig von der Implementation des Plattenlaufwerkherstellers variieren. Wenn ein Fehler während eines derartigen Lesevorgangs angetroffen wird, versucht die Firmware 65 die Daten wiederherzustellen und die Daten einem alternativen "guten" Sektor neu zuzuordnen, der nicht defekt ist. Der gute Sektor kann sich irgendwo auf der Platte 25 befinden. Die Firmware 65 steuert und bewahrt einen Aufzeichnungssatz von Sektorneuzuordnungen auf. Nach dem Beginn eines anschließenden Lese- oder Schreibvorgangs (nachdem die Daten neu zugeordnet worden sind) programmiert die Firmware 65 die Stelle von einem oder mehreren zu überspringenden defekten Sektoren in die Übersprungprüfregister 105 innerhalb des Plattenlaufwerkformatierers 30. Die neu zugeordneten Sektoren veranlassen die Firmware 65 (und den Plattenformatierer 30) die Neuzuordnungsadressen zu lesen oder zu beschreiben, die Adresse des neu zugeordneten Sektors zu ermitteln, diesen Sektor zu lesen oder zu beschreiben, und dann zu den restlichen Sektoren des Lese- oder Schreibbefehls zurückzukehren.
  • Vor einem Lese- oder Schreib-Vorgang kann die Firmware 65 auch den Plattenformatierer 30 programmieren, bestimmte Sektoren zu überspringen, welche aufgrund des Lese- oder Schreibbefehls aus dem Host 5 unerwünscht sind. Unerwünschte Sektoren sind nicht defekt (sie enthalten gültige, lesbare Daten), sie werden jedoch von dem Host-System 5 aus verschiedenen Gründen nicht zur Übertragung identifiziert. Beispielsweise können bestimmte Sektoren in einem spezialisierten Befehlssatz, wie z.B. "scip mask read" und "scip mask write" verwendet werden, der in einem redundanten Array preis werter Platten-(RAID)-Controller verwendet wird. Das SCSI-Protokoll besitzt beispielsweise spezielle Befehle, welche dazu verwendet werden, bestimmte unerwünschte Sektoren oder einen Bereich von Sektoren auszuschließen.
  • Die Firmware 65 programmiert bevorzugt die Register 101, 103, 104 und die Übersprungregister 105 vor jedem neuen Lese- oder Schreibvorgang, da sich die Steuerparameter für jeden Lese- oder Schreibvorgang unterscheiden können.
  • Übersicht über den Defektverwaltungsvorgang – Funktion wer Hauptzustandsmaschine und Übersgrungzustandsmaschine
  • Ein Teil des Defektverwaltungsvorgangs wird unter Bezugnahme auf 1 beschrieben. Nachdem der erste Sektor geprüft ist, arbeitet die Hauptzustandsmaschine 90 des Plattenformatierers 30 bevorzugt parallel mit der Übersprungprüfzustandsmaschine 100. Die Übersprungprüfzustandsmaschine 100 führt eine Übersprungprüfprozedur an aufeinander folgend identifizierten Sektoren aus, während die Hauptzustandsmaschine 90 weitere Verarbeitungsfunktionen ausführt.
  • SEC_ERQ und SEC_CNT
  • Die Übersprungprüfzustandsmaschine 100 prüft die Übersprungregister 105, um zu ermitteln, ob die Sektoradresse eines angeforderten Sektors (SEC_REQ) als ein Übersprungsektor durch die Firmware 65 angegeben ist. Das SEC_REQ-Register 103 arbeitet bevorzugt als ein Zähler, welcher um 1 inkrementiert wird, nachdem jede angeforderte Sektoradresse (angefordert durch den Lese- oder Schreibvorgang) gegenüber den Übersprungsektoradressen (angegeben als ein Übersprungsektor durch die Firmware 65) geprüft ist, die in den Übersprungregistern 105 gespeichert ist.
  • Wenn der angeforderte Sektor (SEC_REQ) als ein Übersprungsektor angegeben ist, überspringt die Übersprungprüfzustandsmaschine 100 diesen Sektor und prüft den nächst folgenden Sektor (SEC_REQ + 1) auf der Spur. Wenn der Sektor nicht als Übersprungsektor angegeben ist, erlaubt die Übersprungprüfzustandsmaschine 100 der Hauptzustandsmaschine 90 den Sektor zu verarbeiten, und die Hauptzustandsmaschine 90 liest oder schreibt Daten auf den oder von dem Sektor. Die Hauptzustandsmaschine 90 dekrementiert die Gesamtanzahl der angeforderten Sektoren (SEC_CNT) um 1, nachdem jeder Sektor erfolgreich gefunden und gelesen oder beschrieben wurde. Wenn SEC_CNT auf Null dekrementiert ist, ist der Lese- oder Schreibvorgang abgeschlossen.
  • Vorhandene Übersprungregisterkonfiguration
  • 2A stellt ein Beispiel einer Spur 120 auf der Platte 25, ein erstes Übersprungregister 125 und ein zweites Übersprungregister 127 dar, und wird dazu verwendet, einen Mangel in bestehenden Konstruktionen darzustellen. Nur 6 Sektoren 130-140 und zwei Übersprungregister 125, 127 sind für Zwecke dieses Beispiels dargestellt. Eine Spur kann jedoch 200 oder mehr Sektoren aufweisen und ein Plattenformatierer 30 kann mehrere Übersprungregister aufweisen.
  • In 2A kann jedes Übersprungregister 125, 127 die Stelle (auch als Sektoradresse oder Sektor ID bezeichnet) eines einzelnen defekten Sektors speichern oder aufzeichnen. Aber die Anzahl defekter Sektoren auf einer zu lesenden oder zu beschreibenden Spur kann größer als die Anzahl der Übersprungregister sein. Beispielsweise gibt es gemäß Darstellung in 2A drei defekte Sektoren 132-136 und nur zwei Übersprungregister 125, 127. In einem bestehenden Verfahren unterteilt der Plattenformatierer 30 für die Spur 120 vorgesehenen Lese- oder Schreibvorgang in wenigstens zwei Vorgänge, da dessen Defektverwaltungsvorgang nur eine beschränkte Anzahl zu überspringender Sektoren handhaben kann, welche in diesem Beispiel zwei ist. Ein erster Defektverwaltungsvorgang würde das erste Übersprungregister 125 zum Speichern der Stelle des ersten Sektordefektes 132 und das zweite Übersprungregister 127 zum Speichern der Stelle des zweiten Defektes 134 verwenden. Ein zweiter Verwaltungsvorgang würde das erste Übersprungregister 125 zum Speichern der Stelle des dritten Sektordefektes 136 verwenden. Ein erster Lesevorgang würde den Sektor n 130 lesen und ein zweiter Lesevorgang würde von n + 1 bis zu allen anderen Sektoren weiter entlang der Spur 120 lesen.
  • Ein Nachteil der Unterteilung des Defektverwaltungsvorgangs besteht darin, dass er die Zeit verlängert, die zum Abschließen des Lese- oder Schreib-Vorgangs erforderlich ist, und dadurch das Plattenlaufwerkverhalten verschlechtert.
  • Übersprungbereichprüfregister
  • 2B stellt eine Plattenspur 120 und eine Konfiguration eines Übersprungbereichprüfregisters 150 gemäß einer Ausführungsform der vorliegenden Erfindung dar. In 2B weist das Übersprungbereichsregister 150 eine Übersprungsektorstelle oder ein ID Feld 154 (SKIP_ID) und ein Längenfeld 152 (LENGTH) auf. Das ID Feld 154 des Übersprungsektors spezifiziert die Sektorstelle eines ersten auf der Spur 120 zu überspringenden Sektors, wie z.B. des in 2B dargestellten ersten defekten Sektors 132. In einer bevorzugten Konfiguration ist diese Sektor ID eine physikalische Adresse und keine logische Adresse.
  • Das LENGTH Feld 152 spezifiziert die Anzahl aufeinander folgender defekter Sektoren, welche beginnend mit dem ersten Defekt 132 übersprungen werden sollen. Eine LENGTH von "1" zeigt an, dass nur der Sektor an der SKIP_ID Adresse zu überspringen ist. Eine LENGTH von "2" zeigt an, dass die zwei Sektoren bei den Adressen SKIP_ID und SKIP_ID + 1 zu überspringen sind. Beispielsweise ist für die in 2B dargestellte Spur 120 das LENGTH Feld 152 gleich drei. Das LENGTH Feld 152 ermöglicht dem Plattenformatierer 30, mehr als einen Sektor zu überspringen, wobei er nur ein Schieberegister 150 benötigt.
  • Das Sprungbereichprüfregister 150 nutzt den Umstand, dass defekte Sektoren oft in Gruppen zusammenhängender oder aufeinander folgender Sektoren gefunden werden. Ein Plattenformatierer 30 (1) mit nur einem einzigen Bereichsprüfregister 150 (2B) kann einen Lese- oder Schreib-Vorgang auf der Spur 120 (mit den dargestellten Defekten) mit einem einzigen Defektverwaltungsvorgang anstelle einer Unterteilung des Vorgangs in mehrere Teile durchführen. Dieses reduziert die Zeit eines Lese- oder Schreib-Vorgangs und verbessert das Festplattenlaufwerkverhalten.
  • 3 stellt eine Konfiguration eines Satzes 170 von Übersprüngbereichprüfregistern 180-210 dar. Jedes Register 180-210 kann einen Bereich schlechter Sektoren von aufeinander folgenden schlechten Sektoren repräsentieren. Die Übersprungbereichprüfregister 180-210 von 3 weisen ein 10-Bit SKIP_ID Feld 168, ein 4-Bit LENGTH Feld 166, ein INCREMENT LBA Bit 164, und ein RE-ASSIGN Bit 162 auf. Die SKIP_ID 168 spezifiziert die Stelle eines auf der Spur 120 zu überspringenden oder neu zuzu ordnenden ersten Sektors. Das LENGTH Feld 166 spezifiziert die Anzahl zu überspringender oder neu zuzuordnender aufeinander folgender Sektoren. Ein Wert von "0" in dem LENGTH Feld 166 zeigt an, dass das Übersprungbereichprüfregister 160 einen Eintrag enthält, der nicht gültig ist. Mit anderen Worten, wenn LENGTH = 0 ist, ist kein Überspringen erforderlich.
  • Die Einträge in den Übersprungregistern 180-210 werden bevorzugt durch die Firmware 65 in aufsteigender Reihenfolge geladen. Die Stelle des niedrigsten physikalischen Sektors oder der Bereich zu überspringender Sektoren wird in das erste Übersprungregister 180 geladen. Die Stelle des zweit niedrigsten physikalischen Sektors oder Bereichs zu überspringender Sektoren wird in das zweite Übersprungregister 182 usw. geladen. In dieser bevorzugten Konfiguration befinden sich keine leeren Register zwischen vollen Registern. Somit müssen, sobald ein leeres Register durch die Übersprungprüfzustandsmaschine 100 angetroffen wird, keine weiteren Übersprungprüfregister gelesen werden. Die Vorteile des Ladens der Einträge in aufsteigender Reihenfolge ohne leere Register zwischen den vollen Registern werden nachstehend unter Bezugnahme auf die 5 und 6 erläutert.
  • Obwohl 16 Übersprungregister 180-210 in 3 dargestellt sind, können andere Ausführungsformen der vorliegenden Erfindung mehr oder weniger als 16 Übersprungregister enthalten. Die Übersprungregister 105 in 1 weisen bevorzugt den Satz 170 der Übersprungbereichprüfregister 180-210 von 3 auf. Alternativ können in weiteren Ausführungsformen die Übersprungbereichprüfeinträge mit einem first-in-first-out (FIFO) Modul implementiert werden, oder in einem Speicher anstelle der Register 180-210 gespeichert werden.
  • Logische Blockadressen
  • Das INKREMENT LBA Bit 164 erlaubt einem Lese- oder Schreib-Vorgang von dem Host-System 5 bestimmte unerwünschte Sektoren zu überspringen, welche nicht defekt sind. Im Allgemeinen nimmt das Host-System 5 Daten als in einer zusammenhängenden Reihenfolge logischer Blockadressen (LBAs) gespeicherte Daten wahr. Der Plattencontroller 15 steuert die Anordnung, wie die Daten auf der Platte gespeichert werden, und die Firmware 65 steuert die Übersetzung zwischen LBAs und physikalischen Sek toradressen. Die Abbildung von LBAs auf physikalische Adressen findet bevorzugt für das Host-System 5 transparent statt. Somit müssen logische Blockadressen nicht mit physikalischen Sektor IDs auf der Platte übereinstimmen.
  • Beispielsweise können von dem Host 5 verwendete logische Blockadressen 1-19 auf Speichern 8-26 einer ersten Spur einer ersten (nicht dargestellten) Magnetplattenscheibe gespeichert sein, LBA 20-22 können auf Sektoren 1, 5 und 6 einer zweiten Spur der ersten Magnetplattenscheibe (wie in 2B) gespeichert sein und LBA 23-30 können auf Sektoren 1-8 einer Spur der zweiten Platte gespeichert sein. Ferner können die Datensektoren in verschiedenen physikalischen Sektor IDs neu zugeordnet werden, aber die logischen Blockadressen bleiben noch sequentiell.
  • Der LBA Zähler 47 (1) verfolgt die logischen Blockadressen der auf der Platte 25 gespeicherten Datensektoren. Wenn der Plattencontroller 50 Daten auf die Platte 25 schreibt, wird der LBA Zähler 47 automatisch inkrementiert und ein zugeordneter LBA Wert wird mit den Daten eingefügt, wenn diese auf einem Sektor der Platte 25 gespeichert werden. Es gibt keinen LBA Wert in Verbindung mit übersprungenen defekten Sektoren, welche während der Herstellung detektiert wurden. Der Plattenformatierer 30 kann automatisch den LBA Wert jedes Sektors prüfen, sobald dieser von der Platte 25 gelesen wird.
  • Inkrementieren von LBA Bits
  • 4 stellt eine Konfiguration einer Liste oder einer Bitmap 180 dar, welche von dem Host-System 5 (1) in Verbindung mit einem Lese- oder Schreibbefehl aus dem Host 5 erzeugt werden kann. Die Bitmap 180 wird in dem RAM 60 gespeichert, wenn das Plattenlaufwerk 2 die Bitmap 180 aus dem Host-System 5 empfängt. Alternativ können weitere Einrichtungen zum Informieren des Plattenlaufwerk-Controllers 15 zum Überspringen bestimmter unerwünschter Sektoren anstelle von oder zusätzlich zu der Bitmap 180 von 4 verwendet werden.
  • Im Betrieb verwendet die Firmware 65 die Bitmap 180 um zu ermitteln, welche logischen Blockadressen erwünscht sind und welche logischen Blockadressen von dem Host-System in einem speziellen Lese- oder Schreib-Vorgang nicht erwünscht sind. Jedes Bit 182-204 in der Bitmap 180 repräsentiert eine logische Blockadresse, welche einer physikalischen Sektoradresse eines Sektors auf einer Spur zugeordnet ist. Eine "1" gibt eine logische Blockadresse an, die von dem Host 5 in einem speziellen Lese- oder Schreibbefehl gewünscht ist. Eine "0" zeigt eine unerwünschte logische Blockadresse und einen von dem Plattencontroller 15 zu überspringenden Sektor an. Die Firmware 65 verwendet diese Bitmap von 5 und das INCREMENT LBA Bit 164 (3) um den LBA Zähler 47 mit Sektoren zu koordinieren, welche für einen speziellen Lese- oder Schreib-Vorgang unerwünscht sind. Insbesondere verwendet die Firmware 65 die Bitmap 180, um Einträge in die Übersprungprüfregister 105 (1) zu konfigurieren.
  • Beispielsweise sind in 4 die ersten drei Bits 182-186 "1-sen" und die nächsten zwei Bits 188190 sind "0-len". Dieses zeigt an, dass die logischen Blockadressen 1-3 in dem Lese- oder Schreib-Vorgang verwendet werden, und dass die logischen Blockadressen 4–5 nicht verwendet werden (unerwünscht sind). Die Firmware 65 (1) wandelt die Bitmap 180 in einen Eintrag für ein Übersprungbereichprüfregister 180-210 (3) um, um den logischen Blockadressen 4-5 zugeordnete Sektoren zu überspringen. Die Firmware 65 setzt das INCREMENT LBA Bit 164 des Übersprungprüfregistereintrags auf einen vorbestimmten Zustand wie z.B. "1" und lädt das Längen (Bereichs) Feld 166 (3) mit dem Wert "2". Dieses zeigt an, dass der LBA Zähler 47 um 2 für die zwei übersprungenen Sektoren erhöht wird.
  • Somit zeigt das INCREMENT LBA Bit 164 an, ob der LBA Zähler 47 inkrementiert werden sollte oder nicht. Die unerwünschten (aber nicht defekten) Sektoren werden übersprungen (nicht gelesen oder geschrieben) und das INCREMENT LBA Bit 164 veranlasst den LBA Zähler 47, die übersprungenen Sektoren zu zählen, so als ob sie gültig gewesen oder gelesen oder beschrieben worden wären. Die Möglichkeit, bestimmte Sektoren als unerwünscht durch einen speziellen Lese- oder Schreib-Vorgang zu markieren, verleiht dem Plattencontroller 15 und dem Übersprungprüfverfahren mehr Flexibilität, ist jedoch nicht unbedingt erforderlich.
  • Neuzuordnungs-Bit
  • Wie vorstehend beschrieben wird das Neuzuordnungs-Bit 162 von 3 von der Firmware 65 zusammen mit dem Rest der Felder 164-168 geladen. Wenn das Neuzuord nungs-Bit 162 auf 1 gesetzt ist, zeigt dieses an, dass alle durch das Übersprungsektor ID Feld 168 und das Lengenfeld 166 spezifizierten Sektoren neu zugeordnet worden sind und übersprungen werden sollen. Mit anderen Worten, alle Sektoren in dem Bereich von SKIP_ID bis SKIP_ID + (LENGTH – 1) sind zu überspringen. Übersprungene Sektoren werden nicht als Teil des Sektorzählers (SEC_CNT) gezählt.
  • Zugriff auf Übersprungregister
  • Der Zugriff durch den Mikroprozessor 20 auf den Satz 170 der Übersprungprüfregister 190-210 erfolgt über eine (nicht dargestellte) FIFO-artige Schnittstelle, welche einen 2 Byte-Adressenraum belegt. Bevor die Firmware 65 die Übersprungprüfregister 180-210 für einen Lese- oder Schreib-Vorgang lädt, initialisiert der Plattenformatierer 30 bevorzugt die FIFO-Schnittstelle, indem er ein "Übersprung-FIFO-Initialisierungs"-Bit in dem Steuerregister 101 von 1 des Plattenformatierers setzt. Das Setzen des Übersprung-FIFO-Initialisierungs-Bits veranlasst, dass alle Felder jedes Übersprungprüfregisters 190-210 einschließlich der Längenfelder und der Neuzuordnungsbits auf 0 zurückgesetzt werden.
  • Adressenlogik und Zeiger
  • Der Plattenformatierer 30 weist ferner eine Übersprungregisteradressenlogik, wie z.B. einen Übersprungregisteradressenzeiger PNTR 172 auf, welcher auf ein ausgewähltes Übersprungprüfregister 180-210 gemäß Darstellung in 3 zeigt. Eine Ladezeigervariable wird von der Firmware 65 zum Laden der Register 180-210 verwendet. Eine Lesezeigervariable wird von der Übersprungprüfzustandsmaschine 100 zum Lesen der Register 180-210 verwendet, nachdem die Register 180-210 durch die Firmware 65 geladen wurden.
  • An dem Beginn eines Lese- oder Schreib-Vorgangs setzt der Plattenformatierer 30 den Zeiger PNTR 172 (Ladezeigervariable) auf "0". Wenn die (von dem Mikroprozessor 20 ausgeführte) Firmware 65 die Übersprungprüfregister 180-210 lädt, greift die Firmware 65 auf die einzige durch den Zeiger 172 (Ladezeigervariable) bezeichnete Adresse zu und beschreibt diese. Der Plattenformatierer 30 inkrementiert automatisch den PNTR 172 (Ladezeigervariable) so, dass die Übersprungprüfregister 180-210 in dem Satz 170 inkrementell geladen werden. In einer Konfiguration umrundet, wenn mehr als 16 Einträge (mehr als die Gesamtanzahl implementierter Register 190-210) durch die Firmware 65 in die Register 180-210 geschrieben werden, der Zeiger 172 (Ladezeigervariable) das letzte Register 210 und führt die Inkrementierung über die aufeinander folgenden Register 180-210 fort. Die Umrundungsart des Zeigers 172 (Ladezeigervariable) bewirkt, dass der Plattenformatierer 30 vorherige Daten in den Registern 180-210 überschreibt.
  • Wenn der Zeiger 172 durch die Übersprungprüfzustandsmaschine 100 verwendet wird, umrundet der Zeiger 172 (Lesezeigervariable) die Übersprungprüfbereichregister 180-210, aber die Übersprungprüfzustandsmaschine 100 stoppt sobald sie eine Umrundung beginnt und bewirkt, dass der Controller 15 das SEC_REQ verarbeitet.
  • Übersprungprüfzustandsmaschine-5 und 6
  • 5 stellt eine Ausführungsform des von der Übersprungprüfzustandsmaschine 100 von 1 dargestellten Übersprungprüfverfahrens dar. 6 stellt ein Beispiel einer Spur 250 mit mehreren Sektoren 252-268 und einem Satz von Übersprungbereichprüfregistern 270-276 dar, welche im Aufbau ähnlich den in 3 dargestellten Übersprungbereichprüfregistern 180-210 sind.
  • Der Betrieb der Übersprungprüfzustandsmaschine 100 wird unter Bezugnahme auf die 1-6 beschrieben. In 1 initialisiert und startet die Firmware 65 die Hauptzustandsmaschine 90 und die Befehlszustandsmaschine 102. Die Befehlszustandsmaschine 102 startet die Übersprungprüfzustandsmaschine 100 und kann warten, bis die Übersprungprüfzustandsmaschine 100 endet. In 5 befindet sich die Übersprungprüfzustandsmaschine 100 zu Beginn in einem Leerlaufzustand 210, in welchem sie auf einen SKIP_START Befehl aus der Befehlszustandsmaschine 102 wartet. Wenn die Übersprungprüfzustandsmaschine 100 einen SKIP_START Befehl empfängt, geht die Übersprungprüfzustandsmaschine 100 zu einem SKIP:STATE_1 215 über. Die Befehlszustandsmaschine 102 überträgt das SEC_REQ 103 (ID des nächsten angeforderten Sektors) auf den Sektorimpulsgenerator 92. Im SKIP_STATE_1 215 empfängt die Übersprungprüfzustandsmaschine 100 einen ersten in dem SEC_REQ-Register 103 von 1 gespeicherten Wert aus dem Sektorimpulsgenerator 92 und vergleicht diesen Wert mit der Übersprungsektor ID (SKIP_ID) des ersten Übersprungprüfregisters 270. Zu Beginn befindet sich der PNTR 298 auf dem ersten Übersprungprüfregister 270.
  • Neuzuordnung
  • Wenn im SKIP_STATE_1 215 das SEC_REQ gleich der Übersprungsektor ID des ersten Übersprungprüfregisters 270 ist, und das Neuzuordnungsbit 290 auf 1 gesetzt ist, setzt dann die Übersprungprüfzustandsmaschine 100 den Interrupt (wie nachstehend diskutiert) neu und gibt die Steuerung an die Befehlszustandsmaschine 102 (oder die Hauptzustandsmaschine 90) zurück. Die Übersprungprüfzustandsmaschine 100 geht von dem SKIP_STATE_1 215 auf den Leerlaufzustand 210 über. Beispielsweise ist in 6, wenn SEC_REQ = 2 und SKIP_ID = 2 ist, dann SEC_REQ = SKIP_ID. Wenn das Neuzuordnungsbit auf 1 gesetzt ist, kann der Plattenformatierer 30 die Spur oder die Platte 30 für die angeforderten neu zugeordneten Datensektoren suchen. Diese Suche nach den neu zugeordneten Sektoren kann durch die Firmware 65 geführt werden und ist bevorzugt ein von dem Übersprungprüfzustands-Maschinenverfahren gemäß Darstellung in 5 getrennter Prozess.
  • Wenn im SKIP_STATE_1 215 SEC_REQ kleiner oder gleich zu (SKIP_ID + (LENGTH – 1)) ist, bedeutet dieses, dass SEC_REQ innerhalb des Bereichs von Sektoren liegt, die von dem ersten Übersprungprüfregister 270 als zu überspringen gekennzeichnet sind. Beispielsweise fällt in 6, wenn SEC_REQ = 3, und (SKIP_ID + (LENGTH – 1)) = 2 + (2-1) = 3 ist, dann SEC_REQ in den Bereich von Sektoren, die durch das erste Übersprungprüfregister 270 als zu überspringen gekennzeichnet sind. Wenn das Neuzuordnungsbit 290 auf 1 gesetzt ist, setzt dann die Übersprungprüfzustandsmaschine 100 ihren Betrieb aus (geht in den Leerlaufzustand 210 über), setzt einen Neuzuordnungs-Interrupt und gibt die Steuerung an die Befehlszustandsmaschine 102 (oder die Hauptzustandsmaschine 90) zurück.
  • Der Neuzuordnungs-Interrupt informiert die Firmware 65 (1), dass die Daten einer anderen Sektorstelle neu zugeordnet wurden. Wie vorstehend beschrieben, werden gewachsene Defekte typischerweise dann detektiert und aufgezeichnet, wenn ein Sektor gelesen wird, wobei sich aber der Prozess abhängig von der durch den Hersteller definierten Implementation unterscheiden kann. Die Daten aus jedem Sektor mit einem ge wachsenen Defekt werden einem nicht-defekten Sektor neu zugeordnet. Als Reaktion auf den Neuzuordnungs-Interrupt ermittelt die Firmware 65, wo die Daten bereits neu zugeordnet worden sind, beispielsweise unter Verwendung einer Liste neu zugeordneter Sektoradressen. Die Firmware 65 sendet die neu zugeordnete Sektoradresse mit einem neuen Befehl an den Plattenformatierer 30 für den neu zugeordneten Sektor. Die Übersprungprüfzustandsmaschine 100 verbleibt in dem Leerlaufzustand 210 bis ein weiterer SKIP_START Befehl von der Befehlszustandsmaschine 102 empfangen wird.
  • LENGTH = 0
  • Wenn im SKIP_STATE_1 215 das LENGTH Feld 294 gleich "0" ist, ist der Übersprungprüfeintrag nicht gültig und es ist kein Überspringen erforderlich. Beispielsweise sind, wenn in 6 die LENGTH Felder aller Register 270-276 "0" sind, dann keine weiteren Überspringungen erforderlich. Die Übersprungprüfzustandsmaschine 100 erzeugt dann einen SKIP_STATE_3 225, welcher anzeigt, dass ein "guter" Sektor durch die Übersprungprüfzustandsmaschine 100 gefunden wurde, und der Plattenformatierer 30 kann von dem Sektor wie nachstehend beschrieben lesen oder diesen beschreiben.
  • SEC_REQ < SKIP_ID
  • Wenn im SKIP_STATE_1 215, das LENGTH Feld nicht gleich 0 ist, und SEC_REQ kleiner als SKIP_ID ist, bedeutet dieses, dass die angeforderte Sektoradresse niedriger als die SKIP_ID des derzeit durch den Zeiger PNTR 298 angegebenen Übersprungprüfregisters ist, welches in diesem Falle das erste Übersprungregister 270 ist. Beispielsweise ist in 6, wenn SEC_REQ = 1 und SKIP_ID = 2 ist, dann SEC_REQ < SKIP_ID. Wenn SEC_REQ kleiner als SKIP_ID des ersten Übersprungprüfregisters 270 ist, ist dann die angeforderte Sektoradresse (SEC_REQ) niedriger als SKIP_ID von allen Übersprungprüfregistern 270-276 aufgrund der ansteigenden Reihenfolge.
  • Dieses ist ein Vorteil der ansteigenden Reihenfolge der Übersprungprüfregister, da die Übersprungprüfzustandsmaschine 100 nicht die Einträge aller Übersprungprüfregister 270-276 prüfen muss. Sobald die Übersprungprüfzustandsmaschine 100 einen Zustand SEC_REQ < SKIP_ID findet, kann die Übersprungprüfzustandsmaschine 100 sofort ein Freigabesignal an die Befehlszustandsmaschine 102 und/oder die Hauptzu standsmaschine 90 zurückgeben, um den angeforderten Sektor SEC_REQ zu lesen oder zu beschreiben. Die Übersprungprüfzustandsmaschine 100 geht von dem SKIP_STATE_1 215 zu dem SKIP_STATE_3 225 über.
  • Übersprungprüfung ausgeführt
  • Im SKIP_STATE_3 225 geht die Übersprungprüfzustandsmaschine 100 zu einem SKIP_STATE_4 230 über, welcher anzeigt, dass die Übersprungprüfprozedur für den durch SEC_REQ bezeichneten Sektor ausgeführt ist. Die Maschine gibt die Steuerung an die Befehlszustandsmaschine 102 und/oder die Hauptzustandsmaschine 90 zurück. Der Plattenformatierer 30 veranlasst das Plattenlaufwerk 15 (1), einen durch SEC_REQ angegebenen Sektor auf der Spur 250 zu lesen oder zu beschreiben. Beispielsweise veranlasst in 6 der Plattenformatierer 30 das Plattenlaufwerk 15, den Sektor 252 bei SEC_REQ = 1 zu lesen.
  • Die Befehlszustandsmaschine 102 dekrementiert die Gesamtanzahl der angeforderten Sektoren (SEC_CNT) in dem SEC_CNT Register 104, nachdem ein Sektor erfolgreich gefunden und gelesen wurde. Wenn der SEC_CNT Null erreicht, gibt es keine weiteren Sektoren mehr, die einem speziellen Lese- oder Schreib-Vorgang zugeordnet sind, und der Lese- oder Schreib-Vorgang ist abgeschlossen.
  • Übersprungprüfungsfortsetzung
  • Im SKIP_STATE_4 230 wartet die Übersprungprüfzustandsmaschine 100 auf ein Signal aus der Befehlszustandsmaschine 102 und/oder der Hauptzustandsmaschine 90. Wenn mehr Sektoren in dem Lese- oder Schreib-Vorgang zu lesen oder zu schreiben sind (SEC_CNT = nicht gleich Null), veranlasst die Befehlszustandsmaschine 102 den Sektorimpulsgenerator 92 einen weiteren Sektorimpuls an die Übersprungprüfzustandsmaschine 100 zu senden. Die Befehlszustandsmaschine 102 sendet einen Befehl SKIP_CONT an die Übersprungprüfzustandsmaschine 100, um den Übersprungprüfprozess für den nächsten Sektor fortzusetzen. Die Übersprungprüfzustandsmaschine 100 geht von dem SKIP_STATE_4 230 zu einem SKIP_STATE5 235 über. Die Übersprungprüfzustandsmaschine 100 inkrementiert den angeforderten Sektor SEC_REQ, um auf den nächsten Sektor auf der Spur zu zeigen und startet das Übersprungprüfverfahren noch einmal.
  • Beispielsweise wird, wenn SEC_REQ_1 ist, diese auf SEC_REQ + 1 = 2 inkrementiert. Die Übersprungprüfzustandsmaschine 100 geht dann zu dem SKIP_STATE_1 215 über, und führt die Übersprungprüfprozedur an dem nächsten SEC_REQ Wert aus, welcher SEC_REQ + 1 = 2 ist.
  • Die Übersprungprüfzustandsmaschine 100 prüft bevorzugt den nächsten angeforderten Sektor (SEC_REQ + 1), der zu lesen oder zu beschreiben ist, während der Plattenformatierer 30 den nächsten angeforderten Sektor (SEC_REQ) liest. Dieses spart Zeit und verbessert den Wirkungsgrad eines Lese- oder Schreib-Vorgangs.
  • Zeiger inkrementieren
  • Im SKIP_STATE_1 215 bedeutet, wenn SEC_REQ größer als (SKIP_ID + (LENGTH – 1)) ist, dieses, dass die angeforderte Sektoradresse höher als die SKIP_ID des derzeit durch den Zeiger PNTR 298 angegebenen Übersprungprüfregisters ist. Wenn beispielsweise in 6 SEC:_REQ = 4, SKIP_ID = 2 und (LENGTH – 1) = 1 ist, ist dann (SKIP_ID + (LENGTH – 1)) = 1, und SEC_REQ > (SKIP_ID + (LENGTH – 1)). Die Übersprungprüfzustandsmaschine 100 geht von dem SKIP_STATE_1 215 zu dem in 5 dargestellten SKIP_STATE_2 220 über. Die Übersprungprüfzustandsmaschine 100 inkrementiert den Zeiger PNTR 298, um auf das nächste Übersprungprüfregister 272 zu zeigen. Da die Übersprungprüfregister-Werte in aufsteigender Reihenfolge organisiert sind, enthält das nächste Übersprungprüfregister 272 die Sektoradresse des nächst höheren Sektors oder Sektorbereichs, falls vorhanden, die auf der Spur 250 zu überspringen sind.
  • READ_All Signal
  • Im SKIP_STATE_2 220 liest die Übersprungprüfzustandsmaschine 100 die SKIP_ID des nächsten Übersprungprüfregisters 272. Wenn keine Einträge mehr in den Übersprungprüfregistern vorhanden sind, d.h. die Übersprungprüfregister 272 bis 272 leer sind, oder LENGTH = 0 ist, wird dann ein internes Signal READ_All für die Befehlszu standsmaschine 102 erzeugt, welches anzeigt, dass die Übersprungprüfzustandsmaschine 100 alle Übersprungprüfregister 270-276 überprüft und keine Sektoren zum Überspringen mehr gefunden hat. Dieses ist ein Vorteil davon, dass man keine leeren Übersprungprüfregister zwischen vollen Übersprungprüfregistern hat. Die Übersprungprüfzustandsmaschine 100 muss jedoch nicht jedes Übersprungprüfregister 270-276 prüfen. Die Übersprungprüfzustandsmaschine 100 geht von dem SKIP_STATE_2 220 zu dem SKIP_STATE_3 225 über.
  • Im SKIP_STATE_2 220 kehrt dann, wenn keine Einträge in den Übersprungprüfregistern 270-276 mehr vorhanden sind, die Übersprungprüfzustandsmaschine 100 dann zu dem SKIP_STATE_1 215 zurück. Beispielsweise wird in 6 der PNTR 298 inkrementiert, dass er auf das zweite Übersprungprüfregister 272 zeigt. Das zweite Übersprungprüfregister 272 enthält einen Eintrag. Die Übersprungprüfzustandsmaschine 100 kehrt zu dem SKIP_STATE_1 215 zurück, um den aktuellen Wert in dem SEC_REQ-Register 103 mit dem in dem zweiten Übersprungprüfregister 272 gespeicherten Werten zu vergleichen.
  • SEC_REQ fällt in den Übersprungbereich Neuzuordnung = 0, Inkrementieren von SEC_REQ
  • Im SKIP_STATE_1 inkrementiert, wenn der angeforderte Sektor SEC_REQ gleich dem SKIP_ID 296 ist oder innerhalb des Bereichs von Sektoren liegt, die von dem ersten Übersprungprüfregister 270 als zu überspringen gekennzeichnet sind, und das neue Zuordnungsbit 290 gleich 0 ist, dann die Übersprungprüfzustandsmaschine 100 SEC_REQ auf SEC_REQ + 1. Somit wird der Sektor bei SEC_REQ entlang der Spur 250 durch die Übersprungprüfzustandsmaschine 100 übersprungen und nicht während des Lese- oder Schreib-Vorgangs bearbeitet. Beispielsweise wird in 6, wenn SEC_REQ = 2, SKIP_ID = 2 und (SKIP_ID + (LENGTH – 1)) = 3 ist, dann der Sektor 254 bei SEC_REQ = 2 übersprungen, da SEC_REQ um 1 inkrementiert wird. Die Übersprungprüfzustandsmaschine 100 geht dann von dem SKIP_STATE_1 215 zu dem SKIP_STATE_2 220 über.
  • Wie vorstehend beschrieben, liest im SKIP_STATE_2 die Übersprungprüfzustandsmaschine 100 die SKIP_ID des nächsten Übersprungprüfregisters 272. Wenn kein Eintrag in dem nächsten Übersprungprüfregister 272 vorliegt, erzeugt dann die Übersprungprüfzustandsmaschine 100 ein Signal READ_All für die Befehlszustandsmaschine 102. Die Übersprungprüfzustandsmaschine 100 geht dann von dem SKIP_STATE_2 220 zu dem SKIP_STATE_3 225 über. Wenn ein weiterer Eintrag in dem nächsten Übersprungprüfregister 272 vorhanden ist, kehrt dann die Übersprungprüfzustandsmaschine 100 zum SKIP_STATE_1 215 zurück. Die Übersprungprüfzustandsmaschine 100 führt dann eine Übersprungprüfung bei dem nächsten SEC_REQ Wert (SEC_REQ + 1) durch.
  • Zusammengefasst inkrementiert, wenn die Übersprungprüfzustandsmaschine 100 vom SKIP_STATE_1 215 zum SKIP_STATE_2 220 übergeht, die Übersprungprüfzustandsmaschine 100 entweder das SEC_REQ-Register 103 (um einen defekten Sektor zu überspringen) oder inkrementiert den Zeiger PNTR 298, um auf das nächste Übersprungprüfregister zu zeigen). Der Weg vom SKIP_STATE_2 220 zurück zum SKIP_STATE_1 215 zeigt, dass die Übersprungprüfzustandsmaschine 100 nicht alle möglichen Einträge der Übersprungprüfregister 270-276 geprüft hat. Der Weg vom SKIP_STATE_2 220 zum SKIP_STATE_3 225 zeigt, dass die Maschine alle Einträge der Übersprungprüfzustandsregister 270-276 geprüft und keine zu überspringenden defekten Sektoren mehr gefunden hat.
  • Obwohl Ausführungsformen und Anwendungen dieser Erfindung dargestellt und beschrieben wurden, dürfte es für den Fachmann auf diesem Gebiet offensichtlich sein, dass verschiedene Modifikationen ohne Abweichung von dem Schutzumfang der Erfindung möglich sind. Es dürfte sich daher verstehen, dass innerhalb des Schutzumfangs der beigefügten Ansprüche diese Erfindung anders als wie vorstehend beschrieben ausgeführt werden kann.

Claims (19)

  1. Plattenlaufwerk-Controller (15) in einem Plattenlaufwerk (2), der so konfiguriert ist, dass er Daten auf Anforderung von einem Host-System (5) auf einem oder mehreren Sektor/en auf einer oder mehreren Spur/en einer Platte (25) liest und schreibt, wobei der Plattenlaufwerk-Controller umfasst: wenigstens ein Register (105), das so konfiguriert ist, dass es speichert: eine Sektor-Adresse (168) eines ersten Sektors, der während eines Lese- oder Schreibvorgangs zu überspringen ist, einen Bereichswert (166), der eine Anzahl aufeinanderfolgender Sektoren anzeigt, die während des Lese- oder Schreibvorgangs zu überspringen sind, wobei wenigstens einige der zu überspringenden Sektoren gewachsene Fehler aufweisen, und ein Neuzuordnungs-Bit (162), das anzeigt, ob der Plattenlaufwerk-Controller Daten auf einem oder mehreren zu überspringenden Sektor/en anderen verfügbaren Sektoren auf der Platte neu zugewiesen hat, wenn wenigstens einige der zu überspringenden Sektoren nach einem Hersteller-Plattenformatierungsvorgang entdeckte Fehler aufweisen, und wobei wenigstens einer der anderen verfügbaren Sektoren während des Hersteller-Plattenformatierungsvorgangs nicht als ein Ersatzsektor reserviert wurde; und eine Steuerschaltung (100), die so konfiguriert ist, dass sie die Sektoradresse und den Bereichswert verwendet, um einen Bereich aufeinanderfolgender Sektoren während des Lese- oder Schreibvorgangs zu überspringen.
  2. Plattenlaufwerk-Controller nach Anspruch 1, wobei die Steuerschaltung so konfiguriert ist, dass sie jeden Sektor, der von dem Host-System angegeben wird, während eines Lese- oder Schreibvorgangs mit dem einen oder den mehreren aufeinanderfolgenden zu überspringenden Sektoren vergleicht, und die Steuerschaltung das Plattenlaufwerk veranlasst, die Sektoren an der einen oder den mehreren aufeinanderfolgenden Sektoradressen zu überspringen, die in dem wenigstens einen Register gespeichert sind.
  3. Plattenlaufwerk-Controller, nach Anspruch 1, wobei wenigstens einige der zu überspringenden Sektoren Herstellungsfehler aufweisen.
  4. Plattenlaufwerk-Controller, nach Anspruch 1, der des Weiteren eine Vielzahl von Registern (182) umfasst, die jeweils so konfiguriert sind, dass sie speichern: eine Sektoradresse (186) eines ersten während des Lese- oder Schreibvorgangs zu überspringenden Sektors; und einen Bereichswert (166), der eine Anzahl während des Lese- oder Schreibvorgangs zu überspringender aufeinanderfolgender Sektoren anzeigt.
  5. Plattenlaufwerk-Controller nach Anspruch 4 in Kombination mit Firmware, die so konfiguriert ist, dass sie auf einen Lese- oder Schreibbefehl von dem Host-System reagiert, indem wenigstens auf eine Liste (162) fehlerhafter Sektoren zugegriffen wird, um einen oder mehrere Bereiche aufeinanderfolgender zu überspringender Sektoren zu identifizieren, und der identifizierte eine oder die identifizierten mehreren Bereiche aufeinanderfolgender zu überspringender Sektoren in das wenigstens eine Register geladen werden.
  6. Plattenlaufwerk-Controller nach Anspruch 4 in Kombination mit einem Mikroprozessor (120), der so programmiert ist, dass er auf einen Lese- oder Schreibbefehl von dem Host-System reagiert, indem wenigstens auf eine Liste (162) fehlerhafter Sektoren zugegriffen wird, um einen oder mehrere Bereiche aufeinanderfolgender zu überspringender Sektoren zu identifizieren, und der identifizierte eine oder die identifizierten mehreren Bereiche aufeinanderfolgender zu überspringender Sektoren in das wenigstens eine Register geladen werden.
  7. Plattenlaufwerk-Controller nach Anspruch 1, wobei die Steuerschaltung eine Zustandsmaschine (100) umfasst.
  8. Plattenlaufwerk-Controller nach Anspruch 1, wobei das Register des Weiteren so konfiguriert ist, dass es ein Inkrement-Bit (164) logischer Blockadressen speichert, so dass, wenn sich das Inkrement-Bit logischer Blockadressen in einem vordefinierten Zustand befindet, ein Zähler logischer Blockadressen in dem Plattenlaufwerk während des Lese- oder Schreibvorgangs um die Anzahl aufeinanderfolgender Sektoren, die zum Überspringen vorgesehen sind, inkrementiert wird.
  9. Verfahren zum Überspringen eines oder mehrerer Sektoren auf einer Platte (25) eines Plattenlaufwerkes (2) während eines Lese- oder Schreibvorgangs, der von einem Host-System (5) angefordert wird, wobei das Verfahren umfasst: Erzeugen einer Liste von Sektoren, die während eines Lese- oder Schreibvorgangs zu überspringen sind, unter Verwendung wenigstens einer Haupt-Fehlerliste (62) und wenigstens eines Sektors, der als ein Sektor identifiziert wird, der aufgrund eines nach einem Hersteller-Plattenformatierungsvorgang entdeckten Fehlers neu zugewiesen wurde, wobei der wenigstens eine Sektor einen während des Hersteller-Plattenformatierungsvorgangs nicht als ein fehlerhafter Sektor behandelten Sektorumfasst. Identifizieren wenigstens eines Bereiches aufeinanderfolgender zu überspringender Sektoren innerhalb der erzeugten Liste; Erzeugen einer komprimierten Liste durch Umwandeln des Bereiches in eine Adresse (168) und einen Bereichswert (166), und Einschließen eines Neuzuweisungs-Bits, das den wenigstens einen Sektor identifiziert und anzeigt, ob Daten in dem wenigstens einem Sektor wenigstens einem verfügbaren Sektor auf der Platte neu zugewiesen worden sind, wobei der wenigstens eine verfügbare Sektor während des Hersteller-Plattenformatierungsvorgangs nicht als ein Ersatzsektor reserviert wurde; Laden der komprimierten Liste in eine Gruppe von Registern (105) eines Plattenlaufwerk-Controllers (15); und Überspringen der mit der Adresse und dem Bereichswert in der komprimierten Liste identifizierten Sektoren während des Lesens von der Platte oder des Schreibens auf diese.
  10. Verfahren nach Anspruch 9, das des Weiteren Suchen nach dem wenigstens einem Sektor umfasst, der neu zugewiesen worden ist.
  11. Verfahren nach Anspruch 9, wobei die Liste wenigstens einige Sektoren mit Herstellungsfehlern umfasst.
  12. Verfahren nach Anspruch 9, wobei die Haupt-Fehlerliste wenigstens einige Sektoren mit nach einem Hersteller-Plattenformatierungsvorgang entdeckten Fehlern umfasst.
  13. Verfahren nach Anspruch 9, wobei die Haupt-Fehlerliste wenigstens einige Sektoren mit Herstellungsfehlern und wenigstens einige Sektoren mit nach einem Hersteller-Plattenformatierungsvorgang entdeckten Fehlern umfasst.
  14. Verfahren nach Anspruch 9, wobei der Vorgang des Erzeugens der Liste von Sektoren, des Identifizierens wenigstens eines Bereiches aufeinanderfolgender Sektoren, des Erzeugens der komprimierten Liste und des Ladens der komprimierten Liste von einem Mikroprozessor gesteuert durch ein Firmware-Programm (65) durchgeführt wird.
  15. Verfahren nach Anspruch 9, wobei der Vorgang des Ladens der komprimierten Liste die Gruppe von Registern des Plattenlaufwerk-Controllers Laden der Register in aufsteigender Reihenfolge ohne leere Register zwischen zwei vollen Registern umfasst.
  16. Verfahren nach Anspruch 9, wobei der Vorgang des Überspringens der Sektoren von einer Zustandsmaschine durchgeführt wird.
  17. Verfahren nach Anspruch 9, wobei der Vorgang des Erzeugens der Liste von Sektoren das Verwenden einer Bitmap umfasst, die mit dem Lese- oder Schreibvorgang verbunden ist.
  18. Verfahren nach Anspruch 17, wobei der Plattenlaufwerk-Controller einen LBA (logical block adress)-Zähler für jeden durch die Bitmap angegebenen Sektoren implementiert.
  19. Verfahren nach Anspruch 9, wobei die Liste wenigstens einige Sektoren ohne Fehler umfasst.
DE60035780T 1999-06-07 2000-06-01 Schaltung für plattenantriebskontroller und verfahren zur überschlagung von defekten oder ungewünschten sektoren Expired - Lifetime DE60035780T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US326851 1989-03-21
US09/326,851 US6470461B1 (en) 1999-06-07 1999-06-07 Disk drive controller circuit and method for skipping defective and/or undesired sectors
PCT/US2000/015084 WO2000075926A1 (en) 1999-06-07 2000-06-01 Disk drive controller circuit and method for skipping defective and/or undesired sectors

Publications (2)

Publication Number Publication Date
DE60035780D1 DE60035780D1 (de) 2007-09-13
DE60035780T2 true DE60035780T2 (de) 2007-12-06

Family

ID=23273995

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60035780T Expired - Lifetime DE60035780T2 (de) 1999-06-07 2000-06-01 Schaltung für plattenantriebskontroller und verfahren zur überschlagung von defekten oder ungewünschten sektoren

Country Status (9)

Country Link
US (1) US6470461B1 (de)
EP (1) EP1188163B1 (de)
JP (1) JP4652642B2 (de)
KR (1) KR100699062B1 (de)
AT (1) ATE368925T1 (de)
AU (1) AU5592400A (de)
CA (1) CA2375672C (de)
DE (1) DE60035780T2 (de)
WO (1) WO2000075926A1 (de)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1018116B1 (de) * 1998-07-28 2005-09-21 Lg Electronics Inc. Datenaufzeichnungsverfahren und gerät auf optischem aufzeichnungsmedium
EP1130516A1 (de) * 2000-03-01 2001-09-05 Hewlett-Packard Company, A Delaware Corporation Adressabbildung in einer Halbleiter-Speichervorrichtung
JP3989665B2 (ja) * 2000-03-03 2007-10-10 株式会社リコー 光情報記録媒体
US6732292B2 (en) * 2001-09-17 2004-05-04 Seagate Technology Llc Adaptive bi-directional write skip masks in a data storage device
US7000067B2 (en) * 2002-06-07 2006-02-14 Seagate Technology Llc Virtual expansion of program RAM size
US20040015731A1 (en) * 2002-07-16 2004-01-22 International Business Machines Corporation Intelligent data management fo hard disk drive
US6961877B2 (en) 2002-07-19 2005-11-01 Qlogic Corporation System and method for in-line error correction for storage systems
JP2006134364A (ja) * 2002-12-04 2006-05-25 Matsushita Electric Ind Co Ltd ハードディスクの情報書き込みシステム
US7007114B1 (en) 2003-01-31 2006-02-28 Qlogic Corporation System and method for padding data blocks and/or removing padding from data blocks in storage controllers
WO2004072815A2 (en) * 2003-02-10 2004-08-26 Netezza Corporation Rapid regeneration of failed disk sector in a distributed database system
US7870346B2 (en) 2003-03-10 2011-01-11 Marvell International Ltd. Servo controller interface module for embedded disk controllers
US7492545B1 (en) 2003-03-10 2009-02-17 Marvell International Ltd. Method and system for automatic time base adjustment for disk drive servo controllers
US7080188B2 (en) 2003-03-10 2006-07-18 Marvell International Ltd. Method and system for embedded disk controllers
US7039771B1 (en) 2003-03-10 2006-05-02 Marvell International Ltd. Method and system for supporting multiple external serial port devices using a serial port controller in embedded disk controllers
US7013378B2 (en) * 2003-04-30 2006-03-14 Hewlett-Packard Development Company, L.P. Method and system for minimizing the length of a defect list for a storage device
EP1484667A1 (de) * 2003-06-05 2004-12-08 Deutsche Thomson-Brandt Gmbh Verfahren zur schnellen Überprüfung von Sektoradressen
CA2532297A1 (en) * 2003-07-17 2005-01-27 Koninklijke Philips Electronics N.V. Device and method for recording information with reorganization of defect management information
US7139150B2 (en) 2004-02-10 2006-11-21 Marvell International Ltd. Method and system for head position control in embedded disk drive controllers
US7155592B2 (en) * 2004-05-03 2006-12-26 Hitachi Global Storage Technologies Netherlands, B.V. System and method for onboard HDD defragmentation and combining multiple G-list entries
US8166217B2 (en) 2004-06-28 2012-04-24 Marvell International Ltd. System and method for reading and writing data using storage controllers
US7757009B2 (en) 2004-07-19 2010-07-13 Marvell International Ltd. Storage controllers with dynamic WWN storage modules and methods for managing data and connections between a host and a storage device
US9201599B2 (en) 2004-07-19 2015-12-01 Marvell International Ltd. System and method for transmitting data in storage controllers
US8032674B2 (en) 2004-07-19 2011-10-04 Marvell International Ltd. System and method for controlling buffer memory overflow and underflow conditions in storage controllers
US7386661B2 (en) 2004-10-13 2008-06-10 Marvell International Ltd. Power save module for storage controllers
US7240267B2 (en) 2004-11-08 2007-07-03 Marvell International Ltd. System and method for conducting BIST operations
US7802026B2 (en) 2004-11-15 2010-09-21 Marvell International Ltd. Method and system for processing frames in storage controllers
US20060143506A1 (en) * 2004-12-29 2006-06-29 Lsi Logic Corporation RAID storage controller assist circuit, systems and methods
US7609468B2 (en) 2005-04-06 2009-10-27 Marvell International Ltd. Method and system for read gate timing control for storage controllers
US7774643B2 (en) * 2006-01-06 2010-08-10 Dot Hill Systems Corporation Method and apparatus for preventing permanent data loss due to single failure of a fault tolerant array
US7490263B2 (en) * 2006-01-17 2009-02-10 Allen King Apparatus, system, and method for a storage device's enforcing write recovery of erroneous data
US20070174678A1 (en) * 2006-01-17 2007-07-26 Allen King Apparatus, system, and method for a storage device's enforcing write recovery of erroneous data
US7924521B1 (en) * 2007-04-10 2011-04-12 Marvell International Ltd. Data wedge format table synchronization
US8892807B2 (en) * 2011-04-18 2014-11-18 International Business Machines Corporation Emulating a skip read command
US10379972B1 (en) * 2016-11-02 2019-08-13 Seagate Technology Llc Minimizing reads for reallocated sectors
US11042439B1 (en) * 2016-11-07 2021-06-22 Seagate Technology Llc Efficient read and recovery with outer code
JP2019164853A (ja) * 2018-03-19 2019-09-26 株式会社東芝 ディスク装置およびメディアスキャン方法
CN111722950B (zh) * 2019-03-21 2023-08-25 武汉思托福科技有限公司 一种硬盘故障维修方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5271018A (en) * 1990-04-27 1993-12-14 Next, Inc. Method and apparatus for media defect management and media addressing
JP2625609B2 (ja) 1991-07-10 1997-07-02 インターナショナル・ビジネス・マシーンズ・コーポレイション ディスク記憶装置
MY112118A (en) * 1993-12-23 2001-04-30 Hitachi Global Storage Tech Netherlands B V System and method for skip-sector mapping in a data recording disk drive.
EP0718827A2 (de) * 1994-12-22 1996-06-26 International Business Machines Corporation Vorrichtung und Verfahren zur Zielspurbestimmung in einem Plattenspeicherlaufwerk
US5835930A (en) * 1996-04-09 1998-11-10 International Business Machines Corporation One or more logical tracks per physical track in a headerless disk drive
US5822142A (en) 1996-07-26 1998-10-13 Western Digital Corporation Method of mapping logical sectors to physical sectors in a disk drive sparing partition
JPH1196686A (ja) * 1997-09-19 1999-04-09 Hitachi Ltd 回転型記憶装置
US6526476B2 (en) * 1998-02-27 2003-02-25 Stmicroelectronics N.V. Defective data sector management system
US6223303B1 (en) * 1998-06-29 2001-04-24 Western Digital Corporation Disk drive having two tiered defect list comprising marginal and reserved data sectors
US6279089B1 (en) * 1999-04-12 2001-08-21 Western Digital Technologies, Inc. Defective data site management through a shared defect management table

Also Published As

Publication number Publication date
EP1188163B1 (de) 2007-08-01
EP1188163A1 (de) 2002-03-20
KR20020011996A (ko) 2002-02-09
DE60035780D1 (de) 2007-09-13
ATE368925T1 (de) 2007-08-15
KR100699062B1 (ko) 2007-03-27
WO2000075926A1 (en) 2000-12-14
AU5592400A (en) 2000-12-28
CA2375672A1 (en) 2000-12-14
JP2003501778A (ja) 2003-01-14
CA2375672C (en) 2009-08-18
JP4652642B2 (ja) 2011-03-16
US6470461B1 (en) 2002-10-22

Similar Documents

Publication Publication Date Title
DE60035780T2 (de) Schaltung für plattenantriebskontroller und verfahren zur überschlagung von defekten oder ungewünschten sektoren
DE19964405B4 (de) Verfahren und Vorrichtung zum Suchen des ersten verfügbaren, guten Ersatzblocks eines optischen Aufzeichnungsmediums
DE19615948C2 (de) Flash-Festkörper-Plattenspeicher-Karte
DE69533570T2 (de) Verfahren und System zum Erkennen von Datenverlust in einem hierarchischen Datenspeichersystem
DE69927345T2 (de) Datenaufzeichnungsverfahren und gerät auf optischem aufzeichnungsmedium
DE60001993T2 (de) Audiovisueller Daten und Rechnerdaten Aufzeichnungsverfahren und Wiedergabeverfahren, und Aufzeichnungsgerät und Wiedergabegerät, Informationsaufzeichnungssystem und Informationswiedergabesystem, und Informationsaufzeichnungsträger zur Anwendung dieser Verfahren
DE60006779T2 (de) Verfahren zum schreiben eines geänderten bios codes in den rompeicherchip einer hostschnittstelle
DE19782041B4 (de) Verfahren zum Durchführen eines kontinuierlichen Überschreibens einer Datei in einem nicht-flüchtigen Speicher
DE60217883T2 (de) Verfahren zum schreiben von daten in einen nicht-flüchtigen speicher
DE60019903T2 (de) Speichersystem
DE69632219T2 (de) Speicherplattenanordnungssystem
DE69034227T2 (de) EEprom-System mit Blocklöschung
DE69926873T2 (de) Verfahren zum zuordnen von freien zonen von einem optischen aufzeichnungsmedium
DE60025749T2 (de) Dateisystemabbildübertragung zwischen ungleichen dateisystemen
DE69920293T2 (de) Aufzeichnungsträger zur Aufzeichnung von Echtzeit-Aufzeichnung/Wiedergabeinformation
DE102012208141B4 (de) Ausgleich nachlassender Funktionsfähigkeit
DE102005022893B3 (de) Verfahren zum Zugreifen auf Speicherbereiche einer Speicherkarte durch eine anfordernde Anwendung und Speicherkarte
DE19859529A1 (de) Optische Scheibe und Vorrichtung zum Behandeln einer optischen Scheibe
DE102008057219A1 (de) Verfahren zum Betreiben eines Solid-State-Speichersystems, Solid-State-Speichersystem und Computersystem
EP0151789B1 (de) Speicherungsverfahren für eine in Fernmeldeanlagen, insbesondere Fernsprechvermittlungsanlagen eingesetzte Speichereinrichtung
DE102016004276A1 (de) Gebietspartitionierung in festplatten
DE112020003062T5 (de) Dynamische anpassung einer logischen speicherkapazität für speicherlaufwerke
DE102005051265B4 (de) Verfahren und System zum Zugreifen auf Daten in einem Computer
DE19654588A1 (de) Programmierbare Ablaufsteuerung einer Plattensteuerung und ein Verfahren für eine zugehörige Kartenzuweisung
DE10248008B4 (de) System und Verfahren zum konfigurieren eines entfernbaren Speichermediums

Legal Events

Date Code Title Description
8364 No opposition during term of opposition