DE20022764U1 - Servo-Prozessor-Code-Bewertung mit einem virtuellen Plattenlaufwerk - Google Patents
Servo-Prozessor-Code-Bewertung mit einem virtuellen PlattenlaufwerkInfo
- Publication number
- DE20022764U1 DE20022764U1 DE20022764U DE20022764U DE20022764U1 DE 20022764 U1 DE20022764 U1 DE 20022764U1 DE 20022764 U DE20022764 U DE 20022764U DE 20022764 U DE20022764 U DE 20022764U DE 20022764 U1 DE20022764 U1 DE 20022764U1
- Authority
- DE
- Germany
- Prior art keywords
- head
- software
- disk drive
- processor
- instructions
- 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
Links
- 238000011156 evaluation Methods 0.000 title description 7
- 238000004088 simulation Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 10
- 238000000034 method Methods 0.000 claims description 6
- 238000012937 correction Methods 0.000 claims description 4
- 238000001228 spectrum Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims 5
- 238000013461 design Methods 0.000 description 9
- 238000011161 development Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000012546 transfer Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 4
- 230000000875 corresponding effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000001276 controlling effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000004907 flux Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000005415 magnetization Effects 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B5/00—Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
- G11B5/48—Disposition or mounting of heads or head supports relative to record carriers ; arrangements of heads, e.g. for scanning the record carrier to increase the relative speed
- G11B5/54—Disposition or mounting of heads or head supports relative to record carriers ; arrangements of heads, e.g. for scanning the record carrier to increase the relative speed with provision for moving the head into or out of its operative position or across tracks
- G11B5/55—Track change, selection or acquisition by displacement of the head
- G11B5/5521—Track change, selection or acquisition by displacement of the head across disk tracks
- G11B5/5526—Control therefor; circuits, track configurations or relative disposition of servo-information transducers and servo-information tracks for control thereof
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B21/00—Head arrangements not specific to the method of recording or reproducing
- G11B21/02—Driving or moving of heads
- G11B21/08—Track changing or selecting during transducing operation
- G11B21/081—Access to indexed tracks or parts of continuous track
- G11B21/083—Access to indexed tracks or parts of continuous track on discs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B19/00—Driving, starting, stopping record carriers not specifically of filamentary or web form, or of supports therefor; Control thereof; Control of operating function ; Driving both disc and head
- G11B19/20—Driving; Starting; Stopping; Control thereof
- G11B19/2009—Turntables, hubs and motors for disk drives; Mounting of motors in the drive
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B21/00—Head arrangements not specific to the method of recording or reproducing
- G11B21/02—Driving or moving of heads
- G11B21/10—Track finding or aligning by moving the head ; Provisions for maintaining alignment of the head relative to the track during transducing operation, i.e. track following
- G11B21/106—Track finding or aligning by moving the head ; Provisions for maintaining alignment of the head relative to the track during transducing operation, i.e. track following on disks
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B5/00—Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
- G11B5/48—Disposition or mounting of heads or head supports relative to record carriers ; arrangements of heads, e.g. for scanning the record carrier to increase the relative speed
- G11B5/54—Disposition or mounting of heads or head supports relative to record carriers ; arrangements of heads, e.g. for scanning the record carrier to increase the relative speed with provision for moving the head into or out of its operative position or across tracks
- G11B5/55—Track change, selection or acquisition by displacement of the head
- G11B5/5521—Track change, selection or acquisition by displacement of the head across disk tracks
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B5/00—Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
- G11B5/48—Disposition or mounting of heads or head supports relative to record carriers ; arrangements of heads, e.g. for scanning the record carrier to increase the relative speed
- G11B5/54—Disposition or mounting of heads or head supports relative to record carriers ; arrangements of heads, e.g. for scanning the record carrier to increase the relative speed with provision for moving the head into or out of its operative position or across tracks
- G11B5/55—Track change, selection or acquisition by displacement of the head
- G11B5/5521—Track change, selection or acquisition by displacement of the head across disk tracks
- G11B5/5526—Control therefor; circuits, track configurations or relative disposition of servo-information transducers and servo-information tracks for control thereof
- G11B5/553—Details
- G11B5/5534—Initialisation, calibration, e.g. cylinder "set-up"
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/15—Plc structure of the system
- G05B2219/15085—Windows NT
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B2020/10935—Digital recording or reproducing wherein a time constraint must be met
- G11B2020/10944—Real-time recording or reproducing, e.g. for ensuring seamless playback of AV data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/20—Disc-shaped record carriers
- G11B2220/25—Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
- G11B2220/2508—Magnetic discs
- G11B2220/2516—Hard disks
Landscapes
- Control Of Position Or Direction (AREA)
- Moving Of The Head To Find And Align With The Track (AREA)
- Feedback Control In General (AREA)
- Moving Of Head For Track Selection And Changing (AREA)
- Testing And Monitoring For Control Systems (AREA)
- Debugging And Monitoring (AREA)
Description
PCT/USO0/1041O ■·
SEAGATE TECHNOLOGY LLC
SEAGATE TECHNOLOGY LLC
SERVO-PROZESSSOR-CODE-BEWERTUNG MIT EINEM VIRTUELLEN PLATTENLAUFWERK
Erfindungsgebiet
Die Erfindung betrifft allgemein das Gebiet der Plattenlaufwerk-Speichervorrichtungen und insbesondere - aber nicht begrenzend - Verbesserungen bei der Erzeugung und Bewertung des Plattenlaufwerk-Firmware-Code.
Festplattenlaufwerke werden für gewöhnlich als primäre 0 Datenspeicher und als Wiederherstellungsvorrichtungen (retrieval devices) in modernen Computer-Systemen eingesetzt. Ein typisches Plattenlaufwerk ist mit einem Wellenmotor ausgestattet, um eine oder mehrere starre Magnetaufzeichnungsplatten mit einer konstant hohen Geschwindigkeit zu drehen. Benutzerdaten werden magnetisch auf auf den Oberflächen der Platten festgelegten Spuren mittels eines Arrays von Lese/Schreib-Köpfen gespeichert, die von einer Aktuatoranordnung gehalten werden. Ein Aktuatormotor, wie etwa ein Schwingspulenmotor (voice coil motor; VCM), wird verwendet, um die Aktuatoranordnung, und somit die Köpfe, über die Plattenoberflächen zu drehen.
Ein Prozessor basierendes Servo-Regelsystem (closed loop, processor-based servo system) wird betrieben, um die Plattenrotation und die Bewegung der Köpfe über den
Plattenoberflächen zu steuern. Der Servo-Prozessor (typischerweise ein digitaler Signalprozessor oder DSP) ist mit zugehöriger Programmierung ausgestattet, um Ausgabestrom-Befehlssignale sowohl an Wellentreiberschaltungen als auch an Aktuatortreiberschaltungen auszugeben, um den Strom einzustellen, der an den Wellenmotor und den Aktuatormotor angelegt wird.
Der Servo-Prozessor führt somit drei Hauptvorgänge durch: ein Steuern der Wellenmotorgeschwindigkeit, einen Aktuatorsuchvorgang und einen Aktuatorspurverfolgungsvorgabg. Die Wellenmotorsteuerung enthält das Abfühlen - anfangs bei Ruhe - der Position der Motornabe, den Anstieg (ramping) der Wellenmotorgeschwindigkeit und Regulieren der Geschwindigkeit des Motors innerhalb bestimmter Toleranzen.
Ein Suchvorgang umfasst die Bewegung eines ausgewählten Kopfs von einer Anfangsspur zu einer Bestimmungsspur auf der entsprechenden Plattenoberfläche. Zu Beginn einer Suche 0 berechnet der Prozessor ein geeignetes Geschwindigkeitsprofil, das eine gewünschte Trajektorie des Kopfes beruhend auf der Länge des Suchvorgangs (nämlich der Anzahl der Spuren von der Anfangsspur zur Bestimmungsspur) anzeigt. Anschließend bestimmt der Prozessor wiederholt einen 5 Geschwindigkeitsfehler als die Differenz zwischen der gewünschten Geschwindigkeit und der tatsächlichen Geschwindigkeit des Kopfes, und gibt Strombefehlssignale aus, um den Kopf zu veranlassen, der gewünschten Geschwindigkeits-Trajektorie zu folgen und über der Bestimmungsspur zur Ruhe 0 zu kommen.
Der Spurverfolgungsvorgang enthält das kontinuierliche Positionieren des Kopfes über einer ausgewählten Spur. Während des Spurverfolgungsvorgangs empfängt der Prozessor 5 Positionseingaben von umgesetzten Servo-Daten von der Spur
und gibt geeignete Strombefehlssignale aus, um den Kopf in einer gewünschten Beziehung zu der ausgewählten Spur (wie etwa über der Mitte der Spur) zu halten. Es sei angemerkt, dass Daten während des Spurverfolgungsvorgangs in Datenblöcke (Sektoren) auf der Spur geschrieben bzw. von diesen gelesen werden. Prozessor-basierende Servo-Systeme werden beispielsweise in US 5 262 907 von Duffy u.a. diskutiert, das an den Anmelder der vorliegenden Erfindung übertragen ist.
Um die benötigten Servo-Steuerfunktionen durchzuführen, muss die von dem Servo-Prozessor verwendeten Programmierung im allgemeinen auf die speziellen elektromechanischen Ansprechcharakteristika des Plattenlaufwerks angepasst sein. Während das Grund-Layout der Servo-Prozessor-Programmierung (auch als „Firmware" und „Code" bezeichnet) gleichzeitig mit anderen Plattenlaufwerk-Designfunktionen entwickelt werden kann, kann die Programmierung typischerweise nicht vollständig geschrieben und auf Fehler überprüft werden, bis die mechanische Konfiguration des Plattenlaufwerks (Aktuator, Platten, Wellenmotor) und die relevante elektrische Konfiguration des Plattenlaufwerks (Motortreiber, Servo-Datendemodulator) zumindest auf dem Niveau eines Entwicklungs-Prototyps erhältlich ist. Somit fügen Servo-Code-Entwicklungs- und Fehlerbeseitigungsvorgänge unerwünscht 5 eine beachtliche Zeit zu dem Entwicklungszyklus für neue Generationen von Plattenlaufwerkprodukten hinzu.
Bei weiterhin bestehender Nachfrage nach Plattenlaufwerken mit ständig steigenden Datenspeicherpegeln und Übertragungsleistung wird die Herstellungszeitdauer (production life) für jedes neue Plattenlaufwerkprodukt ständig kürzer, und ist .zur Zeit in der Gegend von nur wenigen Monaten. Somit sind PlattenlaufWerkhersteller ständig gefordert, neue Plattenlaufwerkprodukte zu entwickeln und in sehr kurzen Zeitfenstern auf dem Markt einzuführen. Es
' - 4 -. ■ ■■
besteht daher eine beachtliche Notwendigkeit für die Verbesserungen bezüglich der Art, in der neue Plattenlaufwerke gestaltet und bewertet werden, und es ist auf solche Verbesserungen, auf die sich die Erfindung bezieht.
Die Erfindung ist auf (ein Verfahren und) eine Vorrichtung zum Bewerten der Programmierung für eine programmierbare Prozessorvorrichtung in einem Plattenlaufwerk gerichtet, um Servo-Steuerung eines Kopfes bezüglich einer sich drehenden Platte durchzuführen.
Entsprechend bevorzugter Ausführungsformen wird die Programmierung zunächst als eine Reihe von Befehlen erzeugt, die von einer programmierbaren Prozessorvorrichtung ausführbar sind. Kommerziell erhältliche „off-the-shelf"-Prozessor-Emulations-Software wird zum Simulieren der Ausführung der Befehle in einem Computer eingesetzt. Ein dynamisches Modell der elektrischen und mechanischen Abschnitte des Plattenlaufwerks wird mit kommerziell erhältlicher „off-the-shelf"-Anlagen-Simulations-Software erzeugt. Ein dynamisches Verbindungsprogramm (dynamic linking program) wird für die Synchronisation und den Daten-Transfer zwischen der Prozessor-Emulations-Software und der Anlagen-Simulations-Software konfiguriert. Alle drei Programme werden anschließend gleichzeitig in dem Computer ausgeführt, um den Echtzeitbetrieb der Programmierung zu bewerten.
Auf diese Art kann die Servo-Prozessor-Programmierung geschrieben und auf Fehler überprüft werden, noch bevor Ehtwicklungs-Prototypen physisch erhältlich sind. Darüber hinaus kann eine extensive Toleranzstapelbewertung (extensive tolerance stack evaluation), durchgeführt werden, um die
• ·
Plattenlaufwerk-Designkonfiguration zu verbessern, ohne dass die Notwendigkeit bestünde, verschiedene physikalische Laufwerke zu erzeugen, und Tests der Laufwerke unter Laborbedingungen über längere Zeitabschnitte durchzuführen. 5
Diese und verschiedene andere Merkmale sowie Vorteile, die die Erfindung kennzeichnen, werden durch Lesen der folgenden detaillierten Beschreibung und Durchsicht der zugehörigen Zeichnungen ersichtlich.
10
10
Fig. 1 zeigt eine Aufsicht auf ein Plattenlaufwerk, das
entsprechend bevorzugter erfindungsgemäßer Ausführungsformen ausgestaltet und aufgebaut ist.
Fig. 2 liefert ein Funktionsblockdiagramm des
Plattenlaufwerks aus Fig. 1 mit einem Servo-Prozessor (Digitalsignalprozessor; DSP), dessen Programmierung entsprechend der bevorzugten erfindungsgemäßen Ausführungsform bewertet ist.
Fig. 3 ist ein Funktionsdiagramm eines Computers, der . Prozessor-Emulations-Software, Anlagenmodell-Simulations-Software und ein dynamisches Verbindungsprogramm entsprechend bevorzugter Ausführungsformen speichert und ausführt.
Fig. 4 ist eine Steuerblockdarstellung der Programmierung des Servo-Prozessors, der zum Durchführen der Geschwindigkeitssteuerung verwendet wird, wie etwa während eines Suchvorgangs.
Fig. 5 ist eine Steuerblockdarstellung der Programmierung
des Servo-Prozessors, der zum Durchführen der Positionssteuerung verwendet wird, wie etwa während des Spurverfolgungsvorgangs.
■ - 6 - ■ ■
Fig. 6 ist eine Steuerblockdarstellung des dynamischen Anlagenmodells des Plattenlaufwerks, das von der Anlagenmodell-Simulations-Software verwendet wird.
Fig. 7 ist ein Flussdiagramm der „SERVO DSP CODE EVALUATION"-Routine, die allgemein Schritte darstellt, die entsprechend bevorzugten erfindungsgemäßen Ausführungsformen durchgeführt werden.
- 7 Detaillierte Beschreibung
Um eine detaillierte Beschreibung verschiedener bevorzugter erfindungsgemäßer Ausführungsformen zu geben, wird zunächst auf Fig. 1 Bezug genommen, die eine Aufsicht auf ein Plattenlaufwerk 100 des Typs bietet, der mit einem Host-Computer schnittstellenmäßig verbunden ist, um Benutzerdaten magnetisch zu speichern und wieder herzustellen. Das Plattenlaufwerk 100 enthält ein Basisdeck 1.02, .an dem verschiedene Komponenten des Plattenlaufwerks 10 0 angebracht . sind. Ein oberer Deckel 104 (in Teilschnitt dargestellt) wirkt mit dem Basisdeck 102 zusammen, um eine innere, abgedichtete Umgebung für das Plattenlaufwerk zu schaffen.
Ein Wellenmotor (allgemein als 106 dargestellt) ist vorgesehen, um eine Mehrzahl axial ausgerichteter, starrer Magnetaufzeichnungsplatten 108 mit einer konstanten Geschwindigkeit (Tausende Umdrehungen pro.Minute) zu drehen, wie es durch den Vektor 109 angezeigt ist. Benutzerdaten 0 werden auf Spuren (nicht gezeigt) auf den Platten 108 mit einer Aktuatoranordnung 110 geschrieben und von dort gelesen, die um eine Lagerwellenanordnung 112 dreht, welche benachbart den Platten 108 angeordnet ist.
Die Aktuatoranordnung 110 enthält eine Mehrzahl starrer Aktuatorarme 114, die sich hin zu den Platten 108 erstrecken, mit flexiblen Aufhängungsanordnungen 116 (flexures), die sich von diesen erstrecken. Am entfernten Ende jeder der Aufhängungsanordnungen 116 ist ein Kopf 118 gehalten, der 0 eine Gleitstückanordnung (nicht getrennt bezeichnet) enthält, die ausgestaltet ist, um in unmittelbarer Nähe der entsprechenden Oberfläche der zugehörigen Platte 108 zu schweben. Die Köpfe 118 sind vorzugsweise als magnetoresistive Köpfe (MR-Köpfe) gekennzeichnet, die jeweils ein
Dünnfilm-Induktionsschreibelement und ein MR-Leseelement enthalten. "
Wenn das Plattenlaufwerk 100 nicht im Einsatz ist, werden die Köpfe 118 zu Landezonen 120 in der Nähe des inneren Durchmessers der Platte 108 bewegt und kommen dort zur Ruhe, und die Aktuatoranordnung 110 wird mit einer magnetischen Haltevorrichtung 112 gesichert.
Die Radialposition der Köpfe 118 wird mittels eines Schwingspulenmotors (VCM) 124 gesteuert, der eine mit der Aktuatoranordnung 110 verbundene Spule 126 sowie einen Permanentmagneten 12 8 enthält, der ein magnetisches Feld bildet, in das die Spule 126 eingetaucht ist. Ein zweiter Magnetflussweg wird oberhalb des Permanentmagneten 12 8 angeordnet, aber ist aus Klarheitsgründen nicht gezeigt. Die Köpfe 118 werden über die Oberflächen der Platten 108 durch Anlegen von Strom an die Spule 12 6 bewegt.
Eine flexible Anordnung 130 liefert die benötigten elektrischen Verbindungswege für die Aktuatoranordnung 110, während sie die Drehbewegung der Aktuatoranordnung 110 während des Betriebe ermöglicht. Die flexible Anordnung 130 enthält eine Vorverstärker-/Treiber-Schaltung 132 (preamp), 5 die Schreibströme an die Schreibelemente der Köpfe 118 während eines Schreibvorgangs anlegt und Lesevorlastströme (read bias currents) an die MR-Leseelemente der Köpfe 118 während eines Lesevorgangs anlegt. Der Preamp 132 verstärkt weiterhin Rücklesesignale, die während eine Lesevorgangs 0 erhalten werden, und liefert diese an die Plattenlaufwerk-Steuerelektronik (nicht gezeigt), die auf einer gedruckten Leiterplatte (PCB) des Plattenlaufwerks angeordnet ist, die an der Unterseite des Basisdecks 102 angebracht ist.
t r t· #■· r · t■ * t*
* « · ittt
Fig. 2 zeigt ein Funktionsblockdiagramm des Plattenlaufwerks 100 aus Fig. 1 im Zusammenhang mit einem zugehörigen Host-Computer 140. Das Plattenlaufwerk 100 enthält einen Treiberprozessor 142, der Top-Level-Steuerfunktionen für das Laufwerk durchführt. Auf den Platten 108 zu speichernde Benutzerdaten werden von dem Host-Computer 140 über eine Schnittstellenschaltung (i/F-circuit) 144, die die Daten puffert und sequenziert, einen Lese-/Schreib-Kanal (R/W-channel) 146, der die Daten codiert und serialisiert, und den Preamp 132 durchgeleitet, der eine Reihe von sich ändernden Schreibströmen an ein Schreibelement des Kopfes 118 anlegt, um die Platte 108 selektiv zu magnetisieren. Während eines Lesevorgangs legt der Preamp 132 einen Lesevorspannstrom an ein Leseelement des Kopfes 118 an und übersetzt die selektive Magnetisierung der Platte 118 in Bezug auf Änderungen der Spannung über das Leseelement. Dies führt zu Rücklesesignalen, die mit den ursprünglich geschriebenen Daten korreliert sind. Die Rücklesesignale werden von dem R/W-Kanal 146 decodiert und über die I/F-Schaltung 144 zu dem Host-Computer 140 durchgeleitet.
Fig. 2 zeigt weiterhin eine Servo-Schaltung 148, die Rücklesesignale von auf den Platten 108 geschriebenen Servo-Daten empfängt, und in Abhängigkeit hiervon Strom an die Spule 126 anlegt, um die Position der Köpfe 118 zu steuern. Die Servo-Schaltung 148 ist als Prozessor basierend dargestellt, wobei die Schaltung einen Digitalsignalprozessor (DSP) 150 mit zugehöriger, in einem Speicher (MEM) 151 gespeicherten Software darstellt. Letztlich stellt Fig. 2 0 eine Wellenmotorsteuerschaltung 152 bereit, die in Abhängigkeit von Befehlen von dem DSP 150 Mehrphasenströme an den Wellenmotor 106 anlegt, um die Platten 108 zu drehen.
Fig. 3 zeigt ein Blockdiagramm verschiedener Software-Programme, die bei der Entwicklung und Bewertung der DSP-
Programmierung verwendet werden. Zunächst wird ein DSP-Emulationsmodul 200 betrachtet, das als ein Software-Programm basierend auf „off-the-shelf"-Personal-Computer (PC) erkannt wird, welches von dem Hersteller des DSP 150 erhältlich ist, und das als Entwicklungs-Tool für die Emulation der Funktion des DSP 150 arbeitet.. Das heißt, ein Code-Entwickler kann die DSP-Programmierung in einer geeigneten Source-Code-Sprache schreiben, einen maschinenausführbaren Befehlssatz kompilieren und dann den Code in einer gesteuerten Schrittfür-Schritt-Form von dem Emulationsmodul 200 ausführen lassen.
Das Emulationsmodul 2 00 arbeitet vorteilhafterweise, wie es für den Fachmann leicht ersichtlich ist, so dass es durch jeden Befehl der Reihe nach durchgeht und die Befehle, Register- und Speicherinhalte, Fehlermeldungen, usw. nach Wunsch anzeigt. Beispielsweise ist ein geeigneter DSP 150 der CMS320C2700 Digital Signal-Prozessor von Texas Instruments, Dallas, Texas, U.S.A., wobei in diesem Fall das zugehörige Emulationsmodul 200 die CMS320C2700 Simulator-Software aus der gleichen Quelle enthält.
Die CMS320C2700 Simulator-Software arbeitet in einer Windows(R)-Betriebsumgebung von der Microsoft Corporation (wie etwa Windows NT, und ermöglicht das Erzeugen einer benutzerdefinierten Schnittstellen-Subroutine, die einmal bei jedem Prozessorzyklus aufgerufen wird und verwendet werden kann, um den Zustand des simulierten Prozessors zu modifizieren, um die Speicherplätze zu modifizieren und Daten bezüglich der Simulation auszugeben. Fig. 3 zeigt eine solche benutzerdefinierte Schnittstellen-Subroutine („DSP I/Fw) bei 201, die vorzugsweise als eine „Dynamic Link Library"-Datei (*.dll-Datei) gekennzeichnet ist,· und in das DSP-Emulationsmodul 200 aufgenommen ist. Wie für den Fachmann ersichtlich ist, ermöglicht eine *.dll-Datei eine Verbindung
; - li -
in Echtzeit und führt Aufruffunktionen und von Daten-Eingabe/Ausgabe-Übertragungsfunktionen aus. Es ist ersichtlich, dass eine Vielzahl von DSPs von einer Vielzahl verschiedener Quellen mit entsprechenden Emulationsmodulen mit ähnlichen Merkmalen erhältlich ist.
Fig. 3 zeigt des weiteren ein Anlagenmodell 2 02 (auch als Plattenlaufwerkmodul bezeichnet) ,. das eine dynamische Simulations-Software-Routine ist, die zum mathematischen Modellieren der relevanten elektromechanischen Konfiguration des Plattenlaufwerks 100 ausgestaltet ist. Das Anlagenmodell 202 wird auch vorzugsweise, mit einem „off-the-shelf"-Software-Paket erzeugt, das üblicherweise von dem Plattenlaufwerk-Herstellern verwendet wird, um die Ansprechcharakteristika der Plattenlaufwerk-Mechanik und Elektrik·zu modellieren und zu bewerten. Beispielsweise ist ein geeignetes Simulations-Software-Paket das „Simulink(R)-Dynamic System Simulation-Modul" von Matlab, das von The Mathworks, Inc., Natick, Massachusetts, U.S.A., erhältlich 0 ist. Das Simulinkm)-Modul arbeitet auch in einer Windows(R1-Betriebssystemumgebung von der Microsoft Corporation (wie Windows NT, Version 4.0).
Das Simulink"*1 -Modul erlaubt es den Benutzer, eine benutzerdefinierte Programmunterroutine zu schreiben, die einmal bei jedem Simulationsschritt aufgerufen wird, um Änderungen in dem Zustand des simulierten dynamischen Systems zu ermöglichen, um das Ergebnis der Simulation zu beeinflussen. Datenübertragungen können auch durch solche 0 Subroutinen erleichtert werden, je nach Wunsch. Fig. 3 zeigt
eine benutzerdefinierte Schnittstellen-Subroutine („Plant i/F") bei 203, die in die Anlagenmodell-Simulation inkorporiert ist, und vorzugsweise als eine *.dll-Datei gekennzeichnet ist.
35
35
Ein dynamisches Verknüpfungs- bzw. Verbindungsprogramm 204 (dynamic linking program, auch als „Link" bezeichnet) liefert eine dynamische Verbindung oder schnittstellenmäßige Kopplung, zwischen dem DSP-Emulationsmodul 200 und dem Anlagenmodell 202. Das Link 204 ist vorzugsweise als eine ausführbare Programmdatei (*.exe) gekennzeichnet, die auch in einer Windows-Betriebssystemumgebung von Microsoft Corporation (wie etwa Windows NT, Version 4.0) arbeitet. Wie es anschließend ausführlicher diskutiert wird, stellt das Link 204 die jeweilige Simulationszeitsteuerung des Emulationsmodells 200 (Ausführungszyklen) und des Anlagenmodells 204 (Zeitschritte) her und reguliert diese, lässt Daten zwischen diesen zwei Modulen durchlaufen, und erzeugt Interrupts für das Emulationsmodul 200. Das DSP-I/F 201, das Anlagen-I/F 203 und das Link 204 sind vorzugsweise mit Visual Basic C++v6.0 oder anderer geeigneter Programmiersprachen geschrieben und anschließend in die gewünschten Formate kompiliert.
Anfangs wird das Emulationsmodul 200, das Anlagenmodell 202 und das Link 204 in einen Computer (dargestellt durch den gestrichelten Kasten 206) geladen und dort betrieben, auf dem das vorgenannte Windows NT-Betriebssystem von Microsoft Corporation, wie etwa das Windows NT-Betriebssystem, läuft, 5 wobei vorzugsweise die gleichzeitige Ausführung mehrerer Programme ermöglicht wird. Die zu bewertende DSP-Programmierung (dargestellt mit 2 08) wird dem Emulationsmodell 200 zugeführt. Die Plattenlaufwerks-Konfigurationinformation, die das Plattenlaufwerk-Design (dargestellt mit 210) beschreibt, wird der Simulations-Software in Form des Anlagenmodells 202 zugeführt. Der Benutzer gibt das gewünschte Verhältnis der Ausführungszyklen zu Zeitschritten (wie es durch den Eingabeblock 212 angezeigt ist) ein und führt dann das Programm aus.
- 13 -
Bei jedem entsprechenden Schritt werden Systemzustände von dem Anlagenmodell 202 als Eingaben dem Emulationsmodul· 200 zugeführt, und Strombefehlssignale werden von dem Emulationsmodell 200 als Eingaben dem Anlagenmodell 202 zugeführt. Ausgabedaten werden ebenfalls (nach Bedarf) von den Programmen erzeugt, wie es durch die Blöcke 214, 216 bzw. 218 dargestellt ist. Beispielsweise kann das Emülationsmodul 200 eine Datei schreiben, die die ausgeführten Schritte und die Registerinhalte darstellt, das Anlagenmodell 2 02 kann Geschwindigkeit, Position und Stromsignalverlauf darstellen, und das Link 204 kann eine Überträgungsdatei schreiben, die die während des Simulationsbetriebs weitergegebenen Daten zeigt.
Fig. 4 und 5 sind vereinfachte Funktionsblockdiagramme, die allgemein für die DSP-Programmierung 210 repräsentativ sind, welche von dem Emulationsmodul 200 aus Fig. 3 bewertet wird. Insbesondere zeigt Fig. 4 Teile des Codes, der während einer geschwindigkeitsgesteuerten Suche verwendet wird. Ein Profiler-Block 220 gibt ein Geschwindigkeitsprofil als Folge von geforderten Geschwindigkeiten aus. Ein Observer 222 arbeitet als ein mathematisches Modell des Anlagenmodells und liefert Schätzwerte der Kopfposition und Geschwindigkeit. Die geschätzte Geschwindigkeit wird mit der geforderten Geschwindigkeit bei dem Summierknoten (summing junction) 224 aufsummiert, um einen Geschwindigkeitsfehler zu erzeugen, der von dem Notch-Filter 226 gefiltert wird. Die Ausgabe des Filters 22 6 wird mit einem Vorlastwert bei dem Summierknoten 228 aufsummiert, um ein Strombefehlssignal zu bilden, das der Anlage (dem Anlagenmodell) zugeführt wird. Von dem Kopf umgesetzte Servo-Daten werden demoduliert (durch das Anlagenmodell), um ein tatsächliches Positionssignal zu liefern, das mit der geschätzen Position bei den Summierknoten 232 aufsummiert wird, um eine Rückkopplung an den Observer 222 zu liefern.
Fig. 5 zeigt Abschnitte des während des Positionssteuervorgangs verwendeten Codes, wie etwa während der Spurverfolgung. Ein Observer 234 gibt Geschwindigkeits- und Positionsschätzwerte aus, die mit jeweiligen Verstärkungsfaktoren Kv, Kx bei den Verstärkungsblöcken 236, 238 multipliziert werden, und die resultierenden Produkte werden bei dem Summierknoten 240 aufsummiert. Geschätzte Vorlastwerte von dem Observer 234 werden beim Summierknoten 242 aufsummiert, und die Ausgabe wird auf den Observer zurückgekoppelt, sowie auch über einen ersten Servo-Verstärkungsblock 244 (mit Verstärkungsfaktor Kp), um ein Strombefehlssignal für die Anlage (Anlagenmodell) zu erzeugen. Wie vorher werden die von dem Kopf umgesetzten Servo-Werte demoduliert (durch das Anlagenmodell), um ein tatsächliches Positionssignal zu liefern, das mit der geschätzten Position beim Summierknoten 246 aufsummiert wird, um eine Rückkopplung zu dem Observer 234 zu liefern.
Fig. 6 ist ein vereinfachtes Funktionsblockdiagramm der von dem Anlagenmodell 2 02 aus Fig. 3 verwendeten Plattenlaufwerk-Konfiguration 212. Es ist zu verstehen, dass Fig. 6 ein genaues Modell hoher Ordnung verschiedener physikalischer, elektrischer und mechanischer Komponenten des Plattenlaufwerks 100 liefert, die vorangehend in den Fig. 1 und 2 dargestellt und diskutiert wurden.
Das Emulationsmodul 2 00 liefert die vorgenannten Strombefehlssignale als ein Folge digitaler Werte an einen Digital/Analog-Wandler 250 vom Pulsweitenmodulations-Typ (pulse width modulation (PWM) digital-to-analog (D/A) converter), der die eingegebenen Digitalwerte in entsprechende Analogwerte umwandelt. Ein PWM-Übertragungsfunktionsblock 252 moduliert die Antwortcharakteristika des PWM-Wandlers 250, und ein
Kopf/Platten-Anordnungsverzögerungsblock 2 54 (head/disc assembly (HDA) delay block) moduliert die physikalische Verzögerung durch die elektromechanischen Abschnitte des Plattenlaufwerks 100. Die resultierenden Analogstromführungssignale werden über einen Leistungsverstärker 2 56 weitergeleitet, der die Spulenströme erzeugt, welche an einen HDA-Mechanikblock 258 angelegt werden, welcher den Aktuator 110 und die Platten 108 (Fig. 1) repräsentiert. Externe Störungen (wie etwa Vibrationen, Toleranzeffekte, usw.) können selektiv eingeführt werden, um verschiedene reale Bedingungen (real-world conditions) mittels des Störungsblocks 260 zu modellieren.
Die Ausgabe des HDA-Mechanikblock 258 wird einem Demodulationsblock (Demod) 2 62 zugeführt, der, wie vorangehend dargestellt, die von den Platten gelesenen Servo-Daten konditioniert, um Servo-Datenpositionseingaben an das Emulationsmodul 200 zu liefern. Diese Eingaben enthalten tatsächliche Positions- sowie Spuradresseninformation (Gray code), Indexinformation, usw., je nach Bedarf. Der Demod 262 . modelliert im allgemeinen den Betrieb des Demod 148 aus Fig. 2 .
Aus Fig. 2 war ersichtlich, dass der DSP 150 Wellenmotor-Geschwindigkeitssteuerung zur Steuerung der Drehgeschwindigkeit des Wellenmotors 106 liefert. Die Steuerprogammierung für das Bereitstellen dieser Funktion kann fertig implementiert werden, und muss nicht in der Darstellung der DSP-Programmierung der Fig. 4 und 5 enthalten sein. Es reicht anzumerken, dass ein Wellenmotor-Geschwindigkeitskorrektursignal von dem Emulationsmodul 2 00 an einen PWM-D/A-Wandler 264 geliefert wird, um ein Treibersignal zu erzeugen, das von einem Wellenmotor-Treiberblock 2 66 zum Anlegen von Strom an einen
- 16 -
Schwellenmotorblock 268 (der den Wellenmotor 106 simuliert) verwendet wird.
Während des Abfühlens der Wellenmotor-Rotorposition wird die Anstiegszeitmessung des tatsächlichen Wellenmotorstroms in Abhängigkeit des Befehlsstroms, der von dem Wellenmotor-Treiberblock 2 66 getrieben wird, für jeden der sechs Kommutatorzustände des Motor-Timer-Blocks 270 gemessen. Die Ergebnisse werden zu dem DSP-Emulationsmodul 200 zurückgekoppelt, so dass die Rotorruheposition, der Start-Up-Strom und die Anfangstreiberkommutatorphase berechnet werden können. Dann liefert während des Anstiegs der Wellenmotor-Geschwindigkeit der Motor-Timer-Block 27 0 Messungen der Wellenmotor-Kommutatorperiode zu dem DSP-Emulationsmodul 200, um die Ausführung geeigneter Geschwindigkeitssteuerbefehle zu ermöglichen, um den Wellenmotor zu beschleunigen, bis die gewünschte Geschwindigkeit erreicht ist. Während des darauffolgenden Betriebs wird die Winkelpositionsinformation von dem Wellenblock 268 zu dem Demod 262 zugeführt, so dass der Demod 262 sowohl Radialpositionsinformation für den Kopf bezüglich der Platte als auch Winkelpositionsinformation bezüglich der Rate empfängt, mit der die Platte sich unter dem Kopf dreht.
Aus den Fig. 4 bis 6 ist nun ersichtlich, dass der durch das Link 204 ermöglichte Datenaustausch die Strombefehlssignale und die Wellenmotor-Geschwindigkeitkorrektursignale von dem Emulationsmodul 2 00 an das Anlagenmodell 2 02 und Positionsinformation von dem Anlagenmodell 2 02 zu dem Emulationsmodul 200 umfaßt. Eine vorbekannte getrennte Verwendung dieser Programme enthielt typischerweise das Erzeugen von „data files", die die benötigten Eingabedaten enthielten, die dann zum Ausführen der Programme verwendet wurden. Im Gegensatz dazu ermöglicht das Link 204 den beiden
Ln::.
Programmen, dynamisch den nächsten Eingabedatensatz für das andere Programm zu berechnen.
Das Link 2 04 synchronisiert des weiteren den Betrieb der jeweiligen Module, wobei das Emulationsmodul 2 00 den DSP-Code mit einer vorgewählten Rate (Prozessorzyklen) ausführen wird, und wobei das Anlagenmodell 202 die Antwort des Systems in Zeitschritten (in der Größenordnung von Mikrosekunden) simulieren wird. Typischerweise wird der DSP-Code mehrere Befehle für jeden entsprechenden Zeitschritt von der Anlage durchführen. Somit wird während des Betriebs das Link 2 04 die jeweiligen Eingaben an die zwei Programme bereitstellen, beiden das Vorwärtsschreiten über die jeweilige Anzahl von Zyklen oder Zeitschritten ermöglichen und die nötigen Prozessor-Interrupts erzeugen.
Ein Flußdiagramm für eine „SERVO DSP CODE EVALUATION"-Routine 300 ist in Fig. 7 ausgeführt, um den Betrieb der Programmierungskonfiguration der Fig. 3 bis 6 zusammenzufassen. Bei Schritt 302 wird zunächst der DSP-Code für ein Computer-basiertes Software-Emulationsmodul erzeugt, Schritt 3 04. Ein dynamisches Modell der relevanten elektrischen und mechanischen Abschnitte wird bei Schritt 3 06 erzeugt, und ein dynamisches Verbindungsprogramm, das für das dynamische Modell und das Emulationsmodul geeignet ist, wird bei Schritt 3 08 erzeugt und kompiliert.
Der Benutzer wählt als nächstes die jeweiligen Ablaufraten (Prozessorzyklen pro Zeitschrit) bei Schritt 310 und, wenn gewünscht, wählt er zusätzlich Eingaben für den Simulationslauf 312. Solche Eingaben können beispielsweise ein externes Störungsspektrum (eingegeben über den Störungsblock 260 aus Fig. 6) enthalten, um die Einflüsse von außen einwirkender Vibration während des Simulationslaufs zu modellieren. Das Emulationsmodul, das dynamische
I ·
♦ ··
■ ■ - 18 -
Anlagenmodell und das Verbindungsprogramm werden daraufhin gleichzeitig von dem Computer ausgeführt (Schritt 304), und der Benutzer bewertet die Ergebnisse in Schritt 316. Dann endet die Routine bei Schritt 318.
5
5
Es ist nun offensichtlich, dass die hier verkörperte Erfindung verschiedene beachtliche Vorteile für Plattenlaufwerk-Hersteller während der Entwicklungsphase eines neuen Plattenlaufwerk-Designs bietet. Zunächst ermöglicht die Bewertung des Servo-Prozessor-Codes mit einem „virtuellen" Plattenlaufwerk, dass der Code im wesentlichen vervollständigt und von Fehlern befreit wird, bevor das mechanische Design des HDA (Basisdeck, Platten, Aktuatorkonfiguration) und das elektrische Design des HDA (Motortreiberschaltungen, Demodulationsschaltungen) vollständig entwickelt und physisch zugänglich sind. Dies kann potentiell das Auslassen dessen ermöglichen, was historisch als „bread-board"-Stufe der Entwicklung bezeichnet wurde, in der Entwicklungsprototypen erzeugt wurden, in einem 0 Versuch physisch eine erste Version des Plattenläufwerks herzustellen, bevor die End-Design-Entscheidungen vollständig getroffen wurden.
Die Erfindung ermöglicht des weiteren, dass eine sehr große Datenmenge in sehr kurzer Zeit erhalten werden. Es kann buchstäblich Tausende von Toleranzbedingungen unter den verschiedenen elektrischen und mechanischen Komponenten des tatsächlichen Designs geben, wobei in der Vergangenheit Plattenlaufwerk-Hersteller Hunderte von Plattenlaufwerken 0 hergestellt und diese Laufwerke unter Laborbedingungen über eine lange Zeitspanne bewertet hätten, um die verschiedenen Effekte dieser Toleranzen zu beurteilen. Im Gegensatz dazu kann das Anlagenmodell 2 02 leicht Einstellungen vornehmen, und das Zusammenspiel dieser Einstellungen und des Codes kann unmittelbar bewertet werden, ohne dass ein einziges Laufwerk
• ·
B ·
- 19 -
gebaut wird. Der tatsächliche Zeitmaßstab kann nach Bedarf eingestellt werden, und die Zeitschritte können häufiger als die normal eingesetzten Abtastperioden während des tatsächlichen Laufwerkbetriebs sein. Zum Zweck der Darstellung kann die Konfiguration aus Fig. 3 beispielsweise mit einem Verhältnis von 2000/1 laufen, so dass zwei Millisekunden Plattenlaufwerkbetrieb in 2 Sekunden simuliert werden können.
Ein weiterer beachtlicher Vorteil liegt in den mit der Erfindung verbundenen Kosteneinsparungen bezüglich der Emulationsausrüstung. Eine typische Emulationsstation (die einem „Prozessoremulator" ermöglichen, physisch in den Slot des Prozessors in einem arbeitenden Laufwerk eingesteckt zu werden) kosten mehrere Zehntausend Dollar und kann nur von einem einzigen Benutzer verwendet werden. Im Gegensatz dazu kann die Erfindung on-line innerhalb der Design-Abteilung zugänglich gemacht werden, wodurch es mehreren Benutzern möglich wird, auf die verschiedenen Bibliotheken und Dateien zuzugreifen, wobei kommerziell erhältliche „off-the-shelf"-Emulationsmodule und dynamische Modellierprogramme verwendet werden.
Entsprechend bevorzugter Ausführungsformen ist die Erfindung auf (ein Verfahren und) eine Vorrichtung zur Bewertung von Programmierung 212 gerichtet, die von einer programmierbaren Prozessorvorrichtung 150 in einem Plattenlaufwerk 100 verwendet wird, um Servo-Steuerung eines Kopfes 118 in bezug auf eine sich drehende Platte 108 durchzuführen, und um das 0 Hochfahren (spin-up) und den normalen Betrieb eines Wellenmotors 106, um den sich die Platte 108 dreht, zu steuern.
Die Programmierung wird zunächst als eine Reihe von Befehlen, die von.einer programmierbaren Prozessorvorrichtung
ausgeführt werden können, erzeugt. Prozessoremulations-Software 200 wird dann zum Simulieren der Ausführung der Befehle in einem Computer 206 verwendet. Ein dynamisches Modell der elektrischen und mechanischen Abschnitte des Plattenlaufwerks wird mit einer Anlagen-Simulations-Software 202 erzeugt. Ein dynamisches Verbindungsprogramm 204 wird ausgestaltet, um die Synchronisation und den Daten-Transfer zwischen der Prozessoremulations-Software und der Anlagen-Simulations-Software durchzuführen. Alle drei Programme werden anschließend gleichzeitig in dem Computer ausgeführt, um den Echtzeitbetrieb der Programmierung zu bewerten.
Es ist klar, dass die Erfindung zum Erzielen des Ergebnisses und der genannten sowie inhärenten Vorteile gut angepasst ist. Während eine derzeit bevorzugten Ausführungsform zum Zweck der Offenbarung beschrieben wurde, können verschiedene Änderungen, die sich leicht von selbst für den Fachmann ergeben, und die im Geist der offenbarten Erfindung enthalten sind, wie sie in den beiliegenden Ansprüchen festgelegt ist, 0 vorgenommen werden.
Claims (10)
1. Computer-Programm-Produkt mit Programm-Code-Mitteln, die ausgestaltet sind, um - wenn sie in den Arbeitsspeicher eines Computers geladen sind - folgendes Verfahren zur Bewertung der Programmierung für eine programmierbare Prozessorvorrichtung in einem Plattenlaufwerk zur Ausführung von Servo-Steuerung eines Kopfes bezüglich einer sich drehenden Platte auszuführen, wobei das Verfahren die Schritte umfaßt:
a) Bereitstellen der Programmierung als eine Folge von Befehlen, die von einer programmierbaren Prozessorvorrichtung ausgeführt werden können;
b) Bereitstellen von Prozessor-Emulations-Software, die zur gleichzeitigen Ausführung einer Reihe von Befehlen durch die programmierbare Prozessorvorichtung konfiguriert ist, wobei die Prozessoremulations-Software Strombefehlssignale ausgibt, die für den an einen Aktuatormotor angelegten Strom repräsentativ sind, der zur Steuerung der Kopfposition in Abhängigkeit von für die Kopfposition repräsentativen Positionseingaben verwendet wird;
c) Verwenden von Anlagen-Simulations-Software zur Erzeugung eines dynamischen Modells der elektrischen und mechanischen Abschnitte des Plattenlaufwerks, einschließlich des Kopfes, der Platte und des Aktuatormotors, wobei die Anlagen-Simulations-Software Kopfpositionssignale ausgibt, die für die Kopfposition in Abhängigkeit von den Strombefehlssignalen repräsentativ sind;
d) Bereitstellen eines dynamischen Verbindungsprogramms, das ausgestaltet ist, um Strombefehlssignale von der Prozessor-Emulations-Software zu der Anlagen-Simulations-Software zu übertragen, und um Kopfpositionssignale von der Anlagen-Simulations-Software zu der Prozessor-Emulations-Software zu übertragen; und
e) gleichzeitiges Ausführen der ProzessorEmulations- Software, der Anlagen-Simulations-Software und des dynamischen Verbindungsprogramms in einem Computer zur Bewertung des Echtzeitbetriebs der Programmierung.
2. Computer-Programm-Produkt nach Anspruch 1 mit Programm- Code-Mitteln, derart dass die von dem Bereitstellungsschritt (a) erzeugten Befehle umfassen: Befehle zum Ausführen von Geschwindigkeitssteuerung des Kopfes während eines Suchvorgangs und Befehle zum Ausführen einer Positionssteuerung des Kopfes während eines Spurverfolgungsvorgangs.
3. Computer-Programm-Produkt nach Anspruch 1 mit Programm- Code-Mitteln, derart dass das dynamische Modell des Verwendungsschritts (c) des weiteren einen Wellenmotor moduliert, der zum Drehen der Platte verwendet wird; und wobei die Prozessor-Emulations-Software des Bereitstellungsschritts (b) des weiteren Wellenmotor- Geschwindigkeitskorrektursignale ausgibt.
4. Computer-Programm-Produkt nach Anspruch 1 mit Programm- Code-Mitteln, derart dass des weiteren das Verfahren einen Schritt umfasst:
a) Bereitstellen eines Störungsspektrums für die Anlagen-Simulations-Software zum Simulieren extern angelegter Vibration während des Betriebs des Simulations- Ausführungsschritts (e).
5. Computer-Programm-Produkt nach Anspruch 1, bei dem das dynamische Verbindungsprogramm als eine ausführbare Datei (*.exe-Datei) gekennzeichnet ist, die in einer Betriebssystemumgebung läuft, die mit Microsoft Windows NR(R), Version 4.0, kompatibel ist.
6. Vorrichtung zur Bewertung der Programmierung für eine programmierbare Prozessorvorrichtung in einem Plattenlaufwerk zur Ausführung von Servo-Steuerung eines Kopfes bezüglich einer sich drehenden Platte, wobei die Programmierung eine Folge von Befehlen enthält, die von der programmierbaren Prozessorvorrichtung ausführbar sind, wobei die Vorrichtung umfasst:
einen Computer mit einem Computer-Speicher;
eine Prozessor-Emulations-Software, die in dem Computer- Speicher gespeichert ist, ausgestaltet zum gleichzeitigen Ausführen einer Folge von Befehlen durch die programmierbare Prozessorvorrichtung, wobei die Prozessor-Emulations-Software Strombefehlssignale ausgibt, die den Strom anzeigen, der an einen Aktuatormotor anzulegen ist, welcher zur Steuerung der Kopfposition in Abhängigkeit von Positionseingaben, die die Position des Kopfes angeben, verwendet wird;
eine Anlagen-Simulations-Software, die in dem Computer- Speicher gespeichert ist und zur Erzeugung eines dynamischen Modells der elektrischen und mechanischen Abschnitte des Plattenlaufwerks, einschließlich des Kopfes, der Platte und des Aktuatormotors ausgestaltet ist, wobei die Anlagen- Simulations-Software Kopfpositionssignale ausgibt, die die Kopfposition in Abhängigkeit von den Strombefehlssignalen anzeigen; und
ein dynamisches Verbindungsprogramm, das ausgestaltet ist, um die Strombefehlssignale von der Prozessor-Emulations- Software zu der Anlagensimulations-Software zu übertragen, und um die Kopfpositionssignale von der Anlagen-Simulations- Software zu der Prozessor-Emulations-Software zu übertragen, und wobei der Computer ausgestaltet ist, um gleichzeitig die Prozessor-Emulations-Software, die Anlagen-Simulations- Software und das dynamische Verbindungsprogramm durchzuführen, um den Echtzeitbetrieb der Programmierung zu bewerten.
einen Computer mit einem Computer-Speicher;
eine Prozessor-Emulations-Software, die in dem Computer- Speicher gespeichert ist, ausgestaltet zum gleichzeitigen Ausführen einer Folge von Befehlen durch die programmierbare Prozessorvorrichtung, wobei die Prozessor-Emulations-Software Strombefehlssignale ausgibt, die den Strom anzeigen, der an einen Aktuatormotor anzulegen ist, welcher zur Steuerung der Kopfposition in Abhängigkeit von Positionseingaben, die die Position des Kopfes angeben, verwendet wird;
eine Anlagen-Simulations-Software, die in dem Computer- Speicher gespeichert ist und zur Erzeugung eines dynamischen Modells der elektrischen und mechanischen Abschnitte des Plattenlaufwerks, einschließlich des Kopfes, der Platte und des Aktuatormotors ausgestaltet ist, wobei die Anlagen- Simulations-Software Kopfpositionssignale ausgibt, die die Kopfposition in Abhängigkeit von den Strombefehlssignalen anzeigen; und
ein dynamisches Verbindungsprogramm, das ausgestaltet ist, um die Strombefehlssignale von der Prozessor-Emulations- Software zu der Anlagensimulations-Software zu übertragen, und um die Kopfpositionssignale von der Anlagen-Simulations- Software zu der Prozessor-Emulations-Software zu übertragen, und wobei der Computer ausgestaltet ist, um gleichzeitig die Prozessor-Emulations-Software, die Anlagen-Simulations- Software und das dynamische Verbindungsprogramm durchzuführen, um den Echtzeitbetrieb der Programmierung zu bewerten.
7. Vorrichtung nach Anspruch 6, bei der die von der programmierbaren Prozessorvorrichtung ausführbaren Befehle umfassen: Befehle für die Geschwindigkeitssteuerung des Kopfes während eines Suchvorgangs und Befehle für die Positionssteuerung des Kopfes während eines Spurverfolgungsvorgangs.
8. Vorrichtung nach Anspruch 6, bei der das dynamische Modell des weiteren einen Wellenmotor modelliert, der zum Drehen der Platten verwendet wird, und wobei die Prozessor- Emulations-Software des weiteren Wellenmotor- Geschwindigkeitskorrektursignale ausgibt.
9. Vorrichtung nach Anspruch 6, bei der der das dynamische Verbindungsprogramm des weiteren ein Störungsspektrum für die Anlagen-Simulations-Software zur Simulation extern angelegter Vibration während der Simulations-Ausführung der Prozessor- Emulations-Software, der Anlagen-Simulations-Software und des dynamischen Verbindungsprogramms bereitstellt.
10. Vorrichtung nach Anspruch 6, bei der das dynamische Verbindungsprogramm als eine ausführbare Datei (*.exe-Datei) gekennzeichnet ist, die unter einer Betriebssystemumgebung lauffähig ist, die mit Microsoft Windows NT(R)-, Version 4.0, kompatibel ist.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13031699P | 1999-04-21 | 1999-04-21 | |
PCT/US2000/010410 WO2000063893A1 (en) | 1999-04-21 | 2000-04-18 | Servo processor code evaluation using a virtual disc drive |
Publications (1)
Publication Number | Publication Date |
---|---|
DE20022764U1 true DE20022764U1 (de) | 2002-03-14 |
Family
ID=22444119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE20022764U Expired - Lifetime DE20022764U1 (de) | 1999-04-21 | 2000-04-18 | Servo-Prozessor-Code-Bewertung mit einem virtuellen Plattenlaufwerk |
Country Status (6)
Country | Link |
---|---|
US (1) | US6389384B1 (de) |
KR (1) | KR100629035B1 (de) |
CN (1) | CN1357138A (de) |
DE (1) | DE20022764U1 (de) |
GB (1) | GB2363661A (de) |
WO (1) | WO2000063893A1 (de) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3803019B2 (ja) * | 2000-08-21 | 2006-08-02 | 富士通株式会社 | 制御プログラム開発支援装置 |
JP4837844B2 (ja) * | 2001-07-19 | 2011-12-14 | 富士通株式会社 | シミュレーションシステム、方法、プログラム及び記録媒体 |
US7124237B2 (en) * | 2002-10-03 | 2006-10-17 | Seagate Technology Llc | Virtual machine emulation in the memory space of a programmable processor |
US8589140B1 (en) | 2005-06-10 | 2013-11-19 | Wapp Tech Corp. | System and method for emulating and profiling a frame-based application playing on a mobile device |
US7813910B1 (en) | 2005-06-10 | 2010-10-12 | Thinkvillage-Kiwi, Llc | System and method for developing an application playing on a mobile device emulated on a personal computer |
US20070006166A1 (en) * | 2005-06-20 | 2007-01-04 | Seagate Technology Llc | Code coverage for an embedded processor system |
US7319570B2 (en) * | 2005-09-19 | 2008-01-15 | Seagate Technology Llc | Random vibration and shock compensator using a disturbance observer |
US20080021694A1 (en) | 2006-07-20 | 2008-01-24 | Broadcom Corporation, A California Corporation | Virtual disk drive architecture |
US7525307B2 (en) * | 2006-12-27 | 2009-04-28 | Hitachi Global Storage Technologies Netherlands B.V. | System and method for hard drive component testing |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4575776A (en) * | 1982-12-20 | 1986-03-11 | International Business Machines Corporation | Magnetic recording disk file servo control system including an actuator model for generating a simulated head position error signal |
US4609855A (en) * | 1984-11-09 | 1986-09-02 | Motorola, Inc. | Adaptive servomotor control |
US4697127A (en) * | 1986-06-09 | 1987-09-29 | International Business Machines Corporation | Adaptive control technique for a dynamic system |
JP2954378B2 (ja) | 1991-04-25 | 1999-09-27 | 三菱電機株式会社 | 電動機サーボ系の制御装置 |
US5262907A (en) | 1991-07-31 | 1993-11-16 | Seagate Technology, Inc. | Hard disc drive with improved servo system |
JP3875294B2 (ja) * | 1995-11-17 | 2007-01-31 | 富士通株式会社 | ディスク装置 |
US6157984A (en) * | 1997-05-15 | 2000-12-05 | Seagate Technology, Llc | Integrated controller/processor for disc drive having direct memory access |
US6084738A (en) * | 1997-08-15 | 2000-07-04 | Seagate Technology, Inc. | Writing servo information to a disc drive at a constant density |
JP2003526865A (ja) * | 1997-08-15 | 2003-09-09 | シーゲート テクノロジー,インコーポレイテッド | ディスク・ドライブにおける一定密度のサーボ情報 |
-
2000
- 2000-04-18 CN CN00809200A patent/CN1357138A/zh active Pending
- 2000-04-18 US US09/551,418 patent/US6389384B1/en not_active Expired - Fee Related
- 2000-04-18 WO PCT/US2000/010410 patent/WO2000063893A1/en active Search and Examination
- 2000-04-18 DE DE20022764U patent/DE20022764U1/de not_active Expired - Lifetime
- 2000-04-18 GB GB0125944A patent/GB2363661A/en not_active Withdrawn
- 2000-04-18 KR KR1020017013775A patent/KR100629035B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR100629035B1 (ko) | 2006-09-26 |
WO2000063893A9 (en) | 2002-01-10 |
GB0125944D0 (en) | 2001-12-19 |
KR20010113902A (ko) | 2001-12-28 |
US6389384B1 (en) | 2002-05-14 |
GB2363661A (en) | 2002-01-02 |
CN1357138A (zh) | 2002-07-03 |
WO2000063893A1 (en) | 2000-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR950006297B1 (ko) | 학습 모드 코스웨어 도구 | |
US6950269B1 (en) | System and methods for using servopositioning signals | |
DE19634167B4 (de) | Verfahren zum Optimieren des Zugriffs für einen Festplattenantrieb | |
DE19916104B4 (de) | Verfahren und Vorrichtung zur Erkennung von Defekten auf einer Platte in einem Plattenlaufwerk | |
DE69018382T2 (de) | Positionierung der Lese- und Aufnahmeköpfe in einem Plattenantrieb. | |
DE112010004295B4 (de) | Löschen zeitveränderlicher periodischer Störungen in Servoregelungssystemen | |
US6995944B1 (en) | Head positioning control method for a storage device and head positioning control device | |
DE20022764U1 (de) | Servo-Prozessor-Code-Bewertung mit einem virtuellen Plattenlaufwerk | |
US20080007863A1 (en) | Method and apparatus for single written-in Repeatable Run-Out correction function used in multi-stage actuation control of hard disk drive | |
JP2002093088A (ja) | 磁気ヘッドまたは磁気ディスクの試験装置および試験方法 | |
DE3881314T2 (de) | Datenaufzeichnungs-Plattendatei mit digitaler Nachlaufregelung. | |
DE19723227A1 (de) | Verfahren zum Optimieren eines Schreibstroms während eines Servo-Beschreibens einer Magnetplatten-Aufzeichnungsvorrichtung | |
DE102008046096A1 (de) | Verfahren und Vorrichtung zum Bestimmen von Anforderungsparametern an mindestens eine physische Hardwareeinheit | |
DE19721320A1 (de) | Verfahren zum Messen des Positionsfehlersignals in einem Plattenlaufwerk | |
DE69516914T2 (de) | Dynamisch programmierbarer schreibstrom und lese-vorstrom für einen magnetoresistiven kopf | |
Ord-Smith et al. | Computer simulation of continuous systems | |
DE19737155B4 (de) | Automationssystem für die Herstellung eines Festplattenlaufwerkes und Verfahren zum Betreiben desselben | |
DE60220732T2 (de) | Verfahren zur Suche einer Grenzposition zwischen einer aufgezeichneten Region und einer nicht aufgezeichneten Region einer Aufzeichnungsplatte, und Informationsaufzeichnungsgerät | |
Ehrlich et al. | Rejecting oscillatory, non-synchronous mechanical disturbances in hard disk drives | |
US5404492A (en) | Head disk assembly simulator | |
US7489471B2 (en) | Bias calculation, bias compensation, and bias table editing methods for HDD, recording media storing computer programs for executing the same, and HDD using the same | |
DE19717886C2 (de) | Verfahren zur Verstärkungs-Kalibrierung eines Servosteuersystems in einem Plattenlaufwerk-Aufzeichnungsgerät | |
US20060145721A1 (en) | Testing printed circuit boards of disk drives and servo track writers | |
US20100309578A1 (en) | Method and apparatus for estimating flying height in a hard disk drive | |
EP3812885A1 (de) | Integrierte simulationscode- und produktionscodegenerierung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R207 | Utility model specification |
Effective date: 20020418 |
|
R150 | Utility model maintained after payment of first maintenance fee after three years |
Effective date: 20030403 |
|
R157 | Lapse of ip right after 6 years |
Effective date: 20061101 |