DE69119076T2 - Plattenlaufwerksynchronisierung - Google Patents
PlattenlaufwerksynchronisierungInfo
- Publication number
- DE69119076T2 DE69119076T2 DE69119076T DE69119076T DE69119076T2 DE 69119076 T2 DE69119076 T2 DE 69119076T2 DE 69119076 T DE69119076 T DE 69119076T DE 69119076 T DE69119076 T DE 69119076T DE 69119076 T2 DE69119076 T2 DE 69119076T2
- Authority
- DE
- Germany
- Prior art keywords
- data
- controller
- disk
- link
- synchronization signals
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
-
- 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/02—Control of operating function, e.g. switching from recording to reproducing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- 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/28—Speed controlling, regulating, or indicating
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/10—Indexing; Addressing; Timing or synchronising; Measuring tape travel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/40—Combinations of multiple record carriers
- G11B2220/41—Flat as opposed to hierarchical combination, e.g. library of tapes or discs, CD changer, or groups of record carriers that together store one title
- G11B2220/415—Redundant array of inexpensive disks [RAID] systems
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/002—Programmed access in sequence to a plurality of record carriers or indexed parts, e.g. tracks, thereof, e.g. for editing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Description
- Die vorliegende Erfindung betrifft den Bereich der Plattenlaufwerke und insbesondere ein Verfahren für das Synchronisieren der Rotationen der Spindel(n) eines oder mehrerer Plattenlaufwerke mit einer externen Quelle.
- In den letzten Jahren wuchs das Interesse an Plattenlaufwerk- Arrays, die aus einer Anzahl von Plattenlaufwerken bestehen, die über ein oder mehrere Controller-Elemente, die die Übertragung von Daten von und zu den Plattenlaufwerken steuern, mit einem verwendenden System verbunden werden können. Ein Platten-Array ist so ausgelegt, daß es eine Datenspeicherung mit großer Kapazität, eine hohe Zuverlässigkeit und hohe Datenübertragungsraten von und zu dem verwendenden System bietet.
- Es wurde eine Reihe verschiedener Array-Schemata vorgeschlagen. Eine Abhandlung mit dem Titel 'A Case for Redundant Arrays of Inexpensive Disks (RAID)' (Ein Fall für redundante Arrays kostengünstiger Platten (RAIDs)), (ACM SIGMOD-Konferenz, Chicago, IL., 1.-3. Juni 1988, Seite 109-116) beschreibt fünf Stufen von Arrays (RAIDs 1 bis 5), die verschiedene Datenverwaltungsstufen bieten. Jede der RAID-Stufen ermöglicht es den Benutzern, ihre Datenspeicherungskapazität zu erhöhen, indem sie eine Reihe von kostengünstigen Plattenlaufwerken miteinander verbinden. Das RAID-System bietet einen Schutz gegen Datenverlust bei Ausfall eines Laufwerks, indem es entweder zwei Kopien der Daten auf zwei Laufwerken (RAID 1) speichert oder indem es die Daten streifenweise auf zwei oder mehr Laufwerke des Arrays verteilt, die Parität der streifenweise verteilten Daten berechnet und die Paritätsdaten auf einem anderen Laufwerk speichert. Im Fall, daß eines der die Daten enthaltenden Laufwerke ausfällt, ist es möglich, mit den Paritätsdaten und den verbleibenden Daten des Streifens die Daten auf dem ausgefallenen Laufwerk wiederherzustellen (RAIDs 2 bis 5).
- Es ist bekannt, daß die Synchronisierung der Spindelmotoren von mehreren Plattenlaufwerken Leistungsvorteile in einem Array von Plattenlaufwerken bringen kann, in dem die Daten streifenförmig über die Laufwerke des Arrays verteilt sind. Dies ist darauf zurückzuführen, daß sich bei einer Operation zum Lesen der Daten aufgrund der rotationalen Latenz eine verzögerung beim Zugriff auf die Daten ergibt. Bei einem einzelnen Plattenlaufwerk beträgt die durchschnittliche rotationale Latenz T/2, wobei T die Rotationsdauer der Platte ist. Bei einer Platte, die sich mit 3600 Umdrehungen/Minute dreht, beträgt die durchschnittliche Latenz 8,3 ms.
- Wenn die Plattenlaufwerke des Arrays nicht synchronisiert sind, beträgt die durchschnittliche rotationale Latenz zum Auffinden der benötigten Daten, nachdem der Kopf bei der korrekten Spur angelangt ist, NxT/(N+1), wobei N die Anzahl der Plattenlaufwerke ist, auf die die Daten verteilt sind. Bei einem Array mit vier Laufwerken beträgt diese durchschnittliche Latenz 13 ms, wobei diese Zahl steigt, wenn die Anzahl der Platten im Array steigt. Wenn die Laufwerke jedoch synchronisiert sind, wird die durchschnittliche Latenz auf den Wert für ein einzelnes Laufwerk reduziert, wodurch die Leistung des Arrays verbessert wird.
- Bis zum heutigen Datum wurde die Spindelsynchronisierung mit einem der beiden Hauptverfahren erzielt.
- Bei einem ersten Verfahren wird eines der Plattenlaufwerke zum Master-Laufwerk ernannt, und die übrigen Laufwerke werden zu Slave-Laufwerken ernannt. Ein derartiges Verfahren wird in der US-Patentschrift 3 893 178 und in der US-Patentschrift 4 907 105 beschrieben. Das Master-Laufwerk ist für die Synchronisierung der Slave-Laufwerke verantwortlich und erzielt dies, indem es bei jeder Umdrehung an jedes der Slave-Laufwerke über ein Kabel, das das Master-Laufwerk und die Slave-Laufwerke miteinander verbindet, 'Synchronisierungsimpulse' ausgibt. Der Synchronisierungsimpuls wird von den Slave-Laufwerken verwendet, um ihre Motoren mit dieser zeitlichen Abstimmung zu synchronisieren. Das Synchronisierungskabel ist nicht identisch mit der Verbindung, die verwendet wird, um das Plattenlaufwerk mit dem System zu koppeln und auf der Befehle, Statusangaben und Daten gesendet werden.
- Bei einem zweiten Synchronisierungsverfahren werden die Plattenlaufwerke in bezug auf ein externes Signal synchronisiert, das vom Controller oder einer anderen Einrichtung ausgegeben wird. Ein derartiges Verfahren wird in EP 320 107 beschrieben, in der ein Master-Controller, der mit fünf Plattenlaufwerken verbunden ist, über eine Leitung ein Spindelbezugssignal an alle Laufwerke ausgibt. Diese 'Synchronisierungsleitung' ist zusätzlich zu dem Master-Kanal vorhanden, über den Daten und Befehle zwischen dem Controller und den Plattenlaufwerken ausgetauscht werden. In jedem Laufwerk wird das Spindelbezugssignal mit einem Laufwerkindeximpuls verglichen, der bei jeder Umdrehung von einer Markierung auf der Platte erzeugt wird, und aufgrund dieses Vergleichs stellt das Plattenlaufwerk fest, ob der Plattenmotor verlangsamt oder beschleunigt werden muß, um eine Synchronisierung zwischen Bezugssignal und Indeximpuls zu erzielen.
- Das zweite Verfahren, das in EP 320 107 beschrieben wird, hat gegenüber dem ersten Verfahren den Vorteil, daß die Synchronisierung nicht verlorengeht, wenn das Master-Laufwerk ausfällt. Bei beiden Verfahren wird jedoch zusätzlich zur Daten- und Befehlsschnittstelle zwischen den Plattenlaufwerken und dem Steuersystem eine zusätzliche Leitung benötigt, um die Synchronisierung zu erzielen.
- Obwohl die Synchronisierung in Platten-Array-Umgebungen offensichtlich von Vorteil ist, können Vorteile erzielt werden, wenn eine Synchronisierung in einem System verwendet wird, das über ein einzelnes Plattenlaufwerk verfügt, das mit einem Controller verbunden ist. Wenn die Indexmarkierung auf einer Platte im einzelnen Laufwerk mit einem Signal synchronisiert wird, das vom Controller ausgegeben wird, kann der Controller die Kenntnis über die rotationale Position des Plattenlaufwerks, die er aus der Synchronisierung gewonnen hat, und die Kenntnis der Position der von ihm benötigten Daten auf dem Plattenlauf nutzen, um die effizienteste Methode für den Zugriff auf die Daten zu bestimmen. Wenn der Controller beispielsweise zwei Blöcke von Daten von zwei unterschiedlichen Positionen auf einer Platte benötigt, kann er seine Kenntnis über die rotationale Position der Platte nutzen, um zu bestimmen, welcher der beiden Blöcke zuerst unter dem Lese-/Schreibkopf vorbeikommt. Er kann dann die Lesebefehle für die beiden Datenblöcke in der effizientesten Weise ausgeben.
- Die vorliegende Erfindung strebt danach, die Nachteile der früheren Synchronisierungsverfahren zu überwinden und stellt dementsprechend ein Plattenlaufwerk-Untersystem nach Anspruch 2 bereit, das folgendes umfaßt: eine Plattenspeichereinheit, die über mindestens eine Datenspeicherungsplatte verfügt, welche zur Drehung auf einer motorgetriebenen Spindel befestigt ist; einen Controller für das Steuern der Übertragung von Daten und Befehlsdaten über eine Übertragungsverbindung, die den Controller mit der Einheit verbindet, dadurch gekennzeichnet, daß die Plattenspeichereinheit Einrichtungen für das Extrahieren der vom Controller ausgegebenen Synchronisierungssignale aus den über die Verbindung gesendeten Daten und Befehlsdaten, wobei die Synchronisierungssignale mit den Daten und den Befehlsdaten auf derselben Übertragungsverbindung verschachtelt sind, sowie eine Einrichtung für das Synchronisieren der Rotation der motorgetriebenen Spindel mit den extrahierten Synchronisierungssignalen umfaßt.
- Auf diese Weise wird eine Synchronisierung im Plattenuntersystem der vorliegenden Erfindung erzielt, indem man in Wirklichkeit die Synchronisierung in das Protokoll integriert, das für die Übertragungsverbindung verwendet wird. Eine Plattenspeichereinheit nach Anspruch 1, der über die Verbindung Synchronisierungssignale gesendet werden, ist in der Lage, diese Signale zu extrahieren und die Rotation ihrer Spindel in bezug auf die Signale zu synchronisieren. Dies hat gegenüber Verfahren des Stands der Technik den Vorteil, daß kein zusätzliches 'sync'- Kabel zu den einzelnen Laufwerken benötigt wird. Dies ist besonders vorteilhaft, wenn die Anzahl von Plattenlaufwerken in einem Array zunimmt und die Größe der einzelnen Platten abnimmt.
- Obwohl die Erfindung aus den oben beschriebenen Gründen nützlich ist, wenn sie auf die Synchronisierung der Spindel eines einzelnen Laufwerks mit einem vom Controller ausgegebenen Synchronisierungssignal angewandt wird, ist der Controller in einem bevorzugten Untersystem über die Übertragungsleitung mit einer Vielzahl von Plattenlaufwerken verbunden, und jedes Plattenlaufwerk ist in der Lage, die ihm über die Verbindung gesendeten Synchronisierungssignale aus den anderen Daten und Befehlsdaten zu extrahieren. Jedes Laufwerk synchronisiert die Rotation seiner Spindel mit den Synchronisierungssignalen, und wenn der Controller die Signale gleichzeitig an die Geräte ausgab, ist jede Spindel mit den anderen Spindeln synchronisiert. Auf diese Weise ist der Controller in der Lage, die Spindeln der angeschlossenen Plattenlaufwerke miteinander zu synchronisieren.
- Gemäß einem zweiten Aspekt liefert die Erfindung nach Anspruch 10 ein Verfahren zum Synchronisieren der Spindel einer Plattenspeichereinheit mit einem Synchronisierungssignal, das von einem Controller ausgegeben wird, der über eine Übertragungsverbindung mit der Einheit verbunden ist, wobei die Daten und die Befehlsdaten über diese Übertragungsverbindung zwischen dem Controller und der Einheit übertragen werden und wobei das Verfahren folgendes umfaßt: das Übertragen einer Vielzahl von Synchronisierungssignalen an die Einheit, wobei die Synchronisierungssignale auf der Übertragungsverbindung mit den Daten und den Befehlsdaten verschachtelt sind; das Extrahieren der Synchronisierungssignale an der Einheit aus den Daten, die vom Controller über die Übertragungsverbindung gesendet wurden; und das Synchronisieren der Rotation der Spindel mit den extrahierten Synchronisierungssignalen.
- Aus einem anderen Sichtwinkel heraus wird ein Datenübertragungsprotokoll für das Übertragen von Daten und Befehlsdaten über eine Übertragungsverbindung zwischen dem Controller und einem Plattenlaufwerk eines Plattenlaufwerk-Untersystems bereitgestellt, wobei das Protokoll folgendes umfaßt: Daten- und Befehlsrahmen, die aus einer Vielzahl von Mehrbit-Datenzeichen bestehen; Mehrbit-Protokollzeichen für das Steuern des Rahmenflusses über die Verbindung; und ein spezielles Mehrbit-Synchronisierungszeichen mit zuvor definiertem Format für die Übertragung vom Controller zum Plattenlaufwerk über die Übertragungsverbindung.
- Es ist anzuerkennen, daß die vorliegende Erfindung gemeinsam mit dem zweiten oben beschriebenen und dem Stand der Technik entsprechenden Verfahren den Vorteil hat, daß sich der Ausfall eines Plattenlaufwerks nicht auf die Synchronisierung der übrigen Plattenlaufwerke auswirkt.
- In einer Erweiterung des Synchronisierungsverfahrens der vorliegenden Erfindung kann ein Paar Plattenlaufwerk-Untersysteme über separate Verbindungen an ein verwendendes System angeschlossen werden. Unter Verwendung des Verfahrens der vorliegenden Erfindung kann das verwendende System Synchronisierungssignale ausgeben, um die Zeitgeber in den einzelnen Controllern zu synchronisieren. Auf diese Weise ist es möglich, die einzelnen Plattenlaufwerke in verschiedenen Untersystemen zu synchronisieren.
- In einer anderen Erweiterung dieses Verfahrens kann eine Plattenspeichereinheit mit Hilfe zweier Verbindungen mit zwei Controllern verbunden werden. Im Fall, daß der die Synchronisierungssignale ausgebende Controller ausfällt, wird der andere Controller eingeschaltet, und nach kurzer Verzögerung beginnt er mit dem Ausgeben von Synchronisierungssignalen an die Einheit.
- Im folgenden werden bevorzugte Ausführungsbeispiele der Erfindung, die lediglich als Beispiel dienen, unter Bezugnahme auf die beigefügten Zeichnungen beschrieben, in denen:
- Figur 1 ein Platten-Array-Untersystem gemäß der vorliegenden Erfindung einschließlich eines an vier Plattenlaufwerke angeschlossenen Controllers zeigt;
- Figur 2 ein Blockschaltbild der wichtigsten Komponenten des Controllers von Fig. 1 ist;
- Figur 3 ein Blockschaltbild der wichtigsten Komponenten der nach außen gerichteten Verbindungsportion (Sendeverbindungsportion) (für ein Plattenlaufwerk) des in Fig. 2 gezeigten Controller- Verbindungs-Chip ist, der über eine serielle Verbindung mit der nach innen gerichteten Verbindungsportion (Empfangsverbindungsportion) des entsprechenden Laufwerkverbindungs-Chips verbunden ist;
- Figur 4 ein Blockschaltbild ist, das die Servokomponenten eines Plattenlaufwerks von Fig. 1 in Relation zu einem Synchronisierungs-Steuerschaltkreis zeigt;
- Figur 5 ein Blockschaltbild des Synchronisierungs-Steuerschaltkreises von Fig. 4 ist;
- Figur 6 ein Blockschaltbild ist, das eine Systemkonfiguration mit einem Paar von Controllern zeigt, die mit einem Paar von Platten-Arrays verbunden sind;
- Figur 7 das Format eines Rahmens zeigt, der im Übertragungsprotokoll verwendet wird;
- Figur 8 ein Blockschaltbild der wichtigsten Komponenten der Plattenlaufwerklogik einschließlich des Laufwerk-Mikroprozessors und des Laufwerk-Verbindungs-Chip ist.
- Das Platten-Array-Speicheruntersystem von Fig. 1 umfaßt vier Plattenlaufwerke 40, 41, 42 & 43, die mit Hilfe von vier seriellen Vollduplex-Verbindungen 25, 26, 27 & 28 mit einem Plattenlaufwerk-Controller 20 verbunden sind. Der Controller ist wiederum über die Verbindung 15, bei der es sich ebenfalls um eine serielle Vollduplexverbindung handeln kann, mit einem Host-Adapter 10 verbunden. Der Controller empfängt Befehle und Daten vom Host-Adapter und reagiert auf diese Befehle, um Anweisungen an die Plattenlaufwerke zu geben und so die Übertragung von Daten zwischen dem Plattenlaufwerk und dem Controller zu steuern.
- Die wichtigsten Komponenten des Controllers, die für die vorliegende Erfindung relevant sind, werden in Fig. 2 gezeigt. Der Mikroprozessor-Chip 200 führt die Funktionen eines DMA- Controllers sowie eines allgemeinen System-Controllers aus, wobei er unter diesem letzten Aspekt unter der Steuerung des Programmcodes arbeitet, der im EPROM 220 und im statischen RAM 210 gespeichert ist, die beide über den CS-Bus (Control Store- Bus) 225 mit dem Mikroprozessor verbunden sind. Der Mikroprozessor ist desweiteren mit Hilfe eines DMA-Bus 230, eines E/A-Bus 240 und eines Sync-Bus 235 mit einem Paar von Controller-Verbindungs-Chips 260 verbunden. Jeder Controller- Verbindungs-Chip steuert den Betrieb von drei seriellen Verbindungen, von denen zwei die Kommunikation mit zwei Plattenlaufwerken ermöglichen und eine die Kommunikation mit einem angeschlossenen Adapter ermöglicht. Jede serielle Verbindung verfügt über eine Sendeverbindung und eine Empfangsverbindung (in Fig. 1 gezeigt). Die Daten werden über die Sendeverbindung an ein angeschlossenes Laufwerk übertragen, und über die Empfangsverbindung werden Daten vom Plattenlaufwerk empfangen. Der Mikroprozessor-Chip steuert in seiner Funktion als DMA- Controller die Übertragung von Daten durch DMA in beiden Richtungen zwischen den Plattenlaufwerken und dem Puffer DRAM 250 sowie ebenfalls in beiden Richtungen zwischen dem Puffer DRAM und dem Host-Adapter (den Host-Adaptern).
- Fig. 4 und Fig. 8 zeigen in Form eines Blockdiagramms die wichtigsten Komponenten eines Plattenlaufwerks, die für die Beschreibung der vorliegenden Erfindung relevant sind, sowie deren Verbindung mit dem Sync-Steuerschaltkreis 400 der Spindel, der bei der Synchronisierung der Plattenlaufwerkspindel gemäß der vorliegenden Erfindung verwendet wird. Das Plattenlaufwerk umfaßt einen Stapel Magnetplatten 110, die auf einer Spindel 125 angebracht sind, die durch einen Spindelmotor 130 in Drehung versetzt wird. Die Platte 115 des Stapels ist eine dedizierte Servoplatte mit den Servodaten, die vom dedizierten Servokopf 120 gelesen werden. Die Servodaten, die von der Platte 120 gelesen werden, werden an einen Servosteuerschaltkreis 150 übertragen, der die Daten auf herkömmliche Weise verwendet, um die Positionierung der Lese-/Schreibköpfe (nicht gezeigt) in bezug auf die Datenspuren auf den Datenplatten zu steuern.
- Während das Plattenlaufwerk in Betrieb ist, liest der Servokopf einmal pro Umdrehung eine Indexmarkierung auf der Servoplatte. Beim Feststellen der Markierung wird vom Indeximpuisgenerator 160 ein Indeximpuls erzeugt. Dieser Impuls wird dann an die Spindel-Sync-Steuerschaltung 400 weitergeleitet und im Spindelsynchronisierungsverfahren der vorliegenden Erfindung verwendet. Der Prozeß des Lesens der Indexmarkierung und des Erzeugens eines Indeximpulses ist in Fachkreisen gut bekannt und kann mit Hilfe von Schaltkreisen durchgeführt werden, die ebenfalls in Fachkreisen gut bekannt sind. Aus diesem Grund wird das Erzeugen des Indeximpulses nicht weiter beschrieben.
- Fig. 8 zeigt die Komponenten des Plattenlaufwerks, die im allgemeinen den in Fig. 2 gezeigten Controller-Komponenten entsprechen. Der Laufwerk-Mikroprozessor 330 verwaltet den Betrieb der anderen Komponenten von Fig. 8 unter der Steuerung des Mikrocodes, der im Steuerspeicher 332 gespeichert ist, welcher über den Bus 326 mit dem Laufwerk-Mikroprozessor verbunden ist. Während einer Schreiboperation werden Datenrahmen mit Schreibdaten, die vom angeschlossenen Controller gesendet werden, über die Empfangsverbindung der seriellen Verbindung 25 empfangen und über den Plattenformatierer- und Puffer-Controller 334 in den Puffer-RAM 338 geladen. Die Schreibdaten werden dann über den Datenkanal 336 auf die Platte geschrieben. Während einer Leseoperation werden die Daten von einer der Platten gelesen und im Puffer-RAM 338 gespeichert, bis sie für die Übertragung über die Sendeverbindung der seriellen Verbindung (nicht gezeigt) bereit sind.
- Als nächstes wird das Protokoll der seriellen Verbindung beschrieben, das bei der Übertragung von Daten über eine serielle Verbindung zwischen dem Controller und einem angeschlossenen Plattenlaufwerk verwendet wird.
- Bei dem verwendeten Protokoll handelt es sich um ein Zweischichtenprotokoll, in dem Daten in Mehrfeldrahmen übertragen werden. Die erste Schicht des Protokolls ist eine Transportschicht, die das Format der Rahmen und die Einrichtung, mit der der Datenfluß gesteuert wird, definiert. Bei der zweiten Schicht handelt es sich um einen Plattenanweisungssatz niedriger Stufe, der die Anweisungen definiert, die vom Controller an die Plattenlaufwerke ausgegeben werden.
- Wenn man mit einer Beschreibung des Protokolls der Transportschicht beginnt, werden (mit Hilfe eines 8B/10B Codierers 270) acht Bit Datenbyte und Protokollfunktionen für die Übertragung auf dem physischen Medium zu 10 Bit-Zeichen codiert. Es gibt 256 gültige Datenzeichen, die ein Byte darstellen, und eine sehr viel geringere Anzahl von gültigen Protokollzeichen, die beispielsweise verwendet werden, um Rahmen zu begrenzen, eine Flußsteuerung bereitzustellen und anzuzeigen, wann sich die serielle Verbindung in einem deaktivierten Zustand befindet. Ein Rahmen besteht aus einer Folge von mindestens vier Datenzeichen, die an jedem Ende durch FLAG-Zeichen begrenzt sind. Das Format eines Rahmens wird in Fig. 7 gezeigt und besteht aus einer Folge von drei oder vier Feldern, d.h. dem Steuerfeld (1 Datenzeichen), dem Adreßfeld (1 Datenzeichen), dem Datenfeld (optional und mit einer variablen Anzahl von Datenzeichen) und einem CRC-Feld (2 Datenzeichen). Der kürzestmögliche Rahmen - ohne Datenfeld - enthält vier Datenzeichen.
- Die Transportschicht unterscheidet zwei Typen von Rahmen, nämlich Steuerrahmen und Anwendungsrahmen. Die beiden Rahmentypen werden von der zweiten Schicht des Protokolls auf unterschiedliche Weise genutzt.
- Ein Steuerrahmen wird z.B. beim Wiederherstellen von Verbindungsfehlern und beim Abbrechen von Verbindungsanweisungen genutzt. In einem Ausführungsbeispiel der Erfindung wird ein Typ eines Steuerrahmens auch als Spindelsynchronisierungssignal verwendet. Ein Steuerrahmen unterscheidet sich dadurch von einem Anwendungsrahmen, daß die höchstwertigen sechs Bit des Steuerfelds einen Wert ungleich Null aufweisen. Ein Steuerrahmen kann jederzeit vom Controller gesendet werden, da er nicht den Pacing-Rules unterliegt, die für Anwendungsrahmen gelten.
- Ein Anwendungsrahmen hat in den höchstwertigen sechs Bit des Steuerfelds ausschließlich Nullen und kann so von einem Steuerrahmen unterschieden werden. Die zweite Schicht des Protokolls verwendet zwei Typen von Anwendungsrahmen - Nachrichtenrahmen und Datenrahmen. Das Adreßfeld in einem Anwendungsrahmen gibt die Adresse des Rahmenziels an. Nachrichtenrahmen sind an einem eindeutigen Wert im Adreßfeld zu erkennen.
- Nachrichtenrahmen werden verwendet, um Daten zwischen den Mikroprozessoren im Controller und dem Plattenlaufwerk auszutauschen, z.B. um Anweisungen an das Plattenlaufwerk zu senden und vom Laufwerk eine Statusangabe zurückzuerhalten. Das Format eines Nachrichtenrahmens ist im wesentlichen mit dem Rahmenformat identisch, das in Fig. 7 gezeigt wird; in einem Nachrichtenrahmen enthält das Datenfeld jedoch eine Nachricht. Das erste Byte des Datenfelds ist ein Code, der die erforderliche Funktion kennzeichnet, und die Länge des Nachrichtenfelds hängt von der jeweiligen Nachricht ab. Die verschiedenen Anweisungen an die Plattenlaufwerke (z.B. LESEN, SCHREIBEN usw.) bilden das Nachrichtenfeld in einem Nachrichtenrahmen. Jede Nachricht ist in einem einzigen Rahmen vollständig enthalten. Das Protokoll der zweiten Schicht definiert für jede Anweisung eine Nachricht vom Controller zur Einheit. Außerdem definiert es Nachrichten von der Einheit zum Controller, um das Schreiben von Daten und das Zurücksenden des Status anzufordern.
- Datenrahmen werden verwendet, um Daten (z.B. Lese-/Schreibdaten) zwischen dem Controller und dem Plattenlaufwerk zu übertragen. Die Länge des Datenfelds ist variabel, und bei einer einzelnen Datenübertragung werden üblicherweise mehrere Datenrahmen benötigt.
- Das Verbindungsprotokoll definiert das Verfahren zum Übertragen von Rahmen von einer Quelle (z.B. Controller) zu einem Ziel (z.B. ein Plattenlaufwerk). Um die erforderliche Flußsteuerung zu implementieren, sendet das Ziel der Quelle für jeden empfangenen Rahmen zwei Antworten:
- 1. Bestätigung (Acknowledgement) - ein Paar aufeinanderfolgender ACK-Protokollzeichen
- 2. Empfänger bereit (Receiver ready) - ein Paar aufeinanderfolgender RR-Protokollzeichen
- Diese Protokollzeichen werden paarweise verwendet, um die Antworten davor zu schützen, daß sie durch Übertragungsfehler hervorgerufen werden. Auf eine Antwort wird nur dann reagiert, wenn beide Zeichen des Paars ohne dazwischenliegende Zeichen empfangen werden.
- Im Vollduplexbetrieb möchte der Empfänger möglicherweise eine Antwort für einen empfangenen Rahmen senden, während er gerade dabei ist, einen anderen Rahmen zu übertragen. In diesem Fall räumt der Sender der Antwort Priorität ein und verschachtelt sie im Rahmen. Durch dieses Schema wird die Latenz sowie die im Sender und Empfänger für das Aufrechterhalten der vollen Datenrate der Verbindung erforderliche Puffermenge reduziert. Da Antworten aus Protokollzeichen bestehen, kann der Empfänger sie leicht von den Datenzeichen, die einen Rahmen bilden, unterscheiden.
- Die Erzeugung und Übertragung von Rahmen und Protokollzeichen wird nun unter Bezugnahme auf Fig. 2 und Fig. 3 beschrieben. Weitere Details bezüglich der Erzeugung und Übertragung von Rahmen und Protokollzeichen über die Verbindung finden sich in der internationalen Veröffentlichung WO 92/10894. Es ist zu beachten, daß die 'rahmen' und 'Zeichen' der vorliegenden Erfindung jeweils mit den 'Paketen' und 'Rahmen' der obigen numerierten Anmeldung identisch sind.
- Fig. 3 zeigt die wichtigsten funktionalen Komponenten einer der zum Senden vorgesehenen Verbindungen des Controller-Verbindungs- Chip 260 und einen Bereich der zugehörigen für das Empfangen vorgesehenen Verbindung eines Verbindungs-Chip 300 in einem angeschlossenen Plattenlaufwerk.
- Die zehn Bitprotokollzeichen wie beispielsweise die bereits beschriebenen Zeichen ACK und RR werden vom Protokollzeichengenerator 272 unter der Steuerung der Protokoll-Finite State Machine 268 als Antwort auf den Empfang von Rahmen auf der entsprechenden Empfangsverbindung generiert. Die Zeichen werden vom Parallel-Seriell-Umsetzer 276 serialisiert und über einen Verbindungstreiber (nicht gezeigt) an die für das Senden vorgesehene serielle Verbindung weitergeleitet.
- Vom Controller-Verbindungs-Chip werden als Antwort auf über den E/A-Bus gesendete Signale oder über den DMA-Bus gesendete Daten Anwendungsrahmen (d.h. Nachrichten- und Datenrahmen) generiert. Die Informationen (Proto-Rahmen), die schließlich einen Rahmen bilden, der für die Übertragung über die serielle Verbindung geeignet ist, werden im Rahmenpuffer 262 gespeichert. Für jeden Proto-Rahmen, der von den Rahmenpuffern weitergeleitet wird, berechnet der CRC-Generator 270 den CRC-Wert, der in zwei CRC- Zeichen gestellt wird, die zum vollständigen Rahmen hinzugefügt werden müssen. Jeder Satz von acht Bit im Proto-Rahmen wird vom 8/10-Codierer 274 in ein Zehnbitzeichen codiert und vom Parallel-Seriell-Umsetzer 276 serialisiert, und anschließend wird der vollständige Rahmen über den Verbindungstreiber an die Sendeverbindung weitergeleitet.
- Im Plattenlaufwerk werden die Rahmen und Protokollzeichen vom Seriell-Parall-Umsetzer 302 deserialisiert und vom Decoder 304 decodiert. Die Protokollzeichen werden vom Sonderzeichen-Decoder 306 unter der Steuerung der Protokoll-Finite State Machine 310 decodiert. Ein Paar von RR-Zeichen veranlaßt beispielsweise das Laufwerk, einen weiteren Rahmen von Daten zu senden, und ein Paar ACK-Zeichen informiert das Laufwerk, daß der vorherige Rahmen korrekt vom Controller empfangen wurde. Das Plattenlaufwerk kann dann den korrekt empfangenen Rahmen aus seinem Übertragungsrahmenpuffer (nicht gezeigt) löschen.
- Die deserialisierten Rahmen werden vom 8/10-Decoder 304 decodiert, der CRC-Wert wird vom CRC-Prüfer 308 geprüft, um sicherzustellen, daß der Rahmen während der Übertragung nicht beschädigt wurde, und wenn es sich bei dem Rahmen um einen Anwendungsrahmen handelt, wird er im Rahmenpuffer 312 gespeichert, um entweder an den Puffer-RAM 338 von Fig. 8 (im Fall eines Datenrahmens) oder für eine Maßnahme durch den Laufwerk- Mikroprozessor 330 (im Fall eines Nachrichtenrahmens) weitergeleitet zu werden.
- Das Protokoll für die Handhabung von Plattenlaufwerkanweisungen lautet wie folgt:
- 1. Der Controller sendet in einem Nachrichtenrahmen eine Anweisung an das Plattenlaufwerk.
- . 2. Wenn für die Anweisung erforderlich ist, daß das Plattenlaufwerk Daten (d.h. LESE-Anweisung) übertragen soll, gibt der erste Parameter der Anweisung den Wert an, der in das Adreßfeld der Datenrahmen gestellt werden soll. Wenn (und falls) das Plattenlaufwerk Daten übertragen möchte, sendet es einen oder mehrere Datenrahmen mit dem angegebenen Wert im Adreßfeld.
- 3. Wenn das Plattenlaufwerk alle geforderten Daten gesendet hat, sendet es in einem Nachrichtenrahmen den Status an den Controller.
- Der Anweisungssatz des Protokolls der zweiten Schicht definiert die Anweisungen, die für die Übertragung von Daten zwischen dem Plattenlaufwerk und dem Controller erforderlich sind (z.B. READ, WRITE, MOTOR START, MOTOR STOP usw.). Der Anweisungssatz umfaßt auch die Anweisung SET POSITION (Position festlegen), die für das vorliegende Synchronisierungsverfahren relevant ist. Die Anweisung SET POSITION definiert die rotationale Versatzposition der Indexmarkierung des Laufwerks in bezug auf den Synchronisierungsimpuis des Controllers. Ein Wert von Null gibt an, daß die Position des Laufwerksindeximpulses in bezug auf den Synchronisierungsimpuis des Controllers nicht versetzt sein darf. Die Anweisung SET POSITION wird weiter unten detaillierter beschrieben.
- Um die Spindelsynchronisierung unter Verwendung einer derartigen seriellen Verbindung zu erzielen, generiert der Controller exakt ein Signal mit der Frequenz der Nennrotationszeit der Plattenlaufwerke. Das Synchronisierungssignal kann eines der beiden folgenden Formate aufweisen:
- 1. Ein spezielles 10 Bit-Protokoll-SYNC-Zeichen. Das SYNC-Zeichen ähnelt in seiner Form den bereits beschriebenen ACK- und den RR-Protokollzeichen, obwohl es offensichtlicherweise ein bestimmtes Format aufweist, das es als ein SYNC-Zeichen definiert. Ein Zeitgeber im Mikroprozessor-Chip 200 des Controllers gibt mit einer Frequenz, die der Nennrotationszeit der Platte entspricht, über den Sync-Bus 235 Zeitgeber-Signale an den Controller-Verbindungs-Chip 260 aus. Die Zeitgeber-Signale werden an den Sonderzeichen-Generator 272 weitergeleitet, wo das SYNC-Zeichen generiert wird. Das SYNC-Zeichen wird in der bereits beschriebenen Weise an die Verbindung und an das Plattenlaufwerk weitergeleitet. Das SYNC-Zeichen wird vom Sonderzeichen-Decoder 306 im Laufwerk-Verbindungs-Chip decodiert, und es wird ein SYNC-Signal erzeugt, das über die Leitung 320 an den Spindel-Sync-Steuerschaltkreis weitergeleitet wird.
- In einem bevorzugten Verfahren generiert der Zeichengenerator 272 ein Paar SYNC-Zeichen. Das Plattenlaufwerk reagiert in diesem Fall nur dann auf die SYNC-Zeichen, wenn beide Zeichen empfangen wurden. Hierdurch wird sichergestellt, daß die Synchronisierung nicht bei Empfang eines beschädigten Zeichens fälschlicherweise eingeleitet wird. Da das SYNC-Signal eines der Sonderprotokollzeichen ist, kann es innerhalb eines über die Verbindung übertragenen Rahmens verschachtelt werden. Die Übertragung eines SYNC-Zeichens kann verzögert werden, bis ein Paar anderer Protokollzeichen, z.B. RR oder ACK, übertragen wurden, sie werden jedoch nicht durch andere Aktivitäten der Verbindung verzögert.
- 2. Alternativ kann das Synchronisierungssignal die Form eines Spindel-Sync-Steuerrahmens (SS-Rahmens), d.h. eines Steuerrahmens, in dem ein Spindel-Sync-Bit im Steuerfeld gesetzt ist, annehmen. Ein SS-Rahmen wird vom Steuerrahmengenerator 264 im Controller-Verbindungs-Chip 260 als Reaktion auf ein Zeitgeber- Signal, das vom Mikroprozessor über den Sync-Bus 235 gesendet wurde, generiert. Der SS-Rahmen wird dann in derselben Weise, die bereits für Anwendungsrahmen beschrieben wurde, an die serielle Verbindung weitergeleitet, und er wird vom Laufwerk- Verbindungs-Chip 300 empfangen. Wie bei einem Anwendungsrahmen wird der SS-Rahmen deserialisiert, durch den 8/10-Decoder 304 decodiert und vom CRC-Prüfer 308 geprüft. Der SS-Rahmen wird vom Steuerrahmendecoder 314 als SS-Rahmen identifiziert, und der Steuerrahmendecoder gibt über Leitung 320 ein Synchronisierungssignal an den Spindel-Sync-Steuerschaltkreis 400 aus.
- Diese Implementierung ist weniger exakt, als wenn ein spezielles SYNC-Zeichen auf der Verbindung verwendet wird, da im Fall, daß vom Controller zu dem Zeitpunkt, an dem ein SS-Rahmen gesendet werden soll, ein weiterer Rahmen übertragen wird, die Übertragung des SS-Rahmens verzögert wird, bis die aktuelle Rahmenübertragung abgeschlossen ist. Unter bestimmten Umständen könnte es jedoch wünschenswert sein, die Verwendung von Sonderzeichen auf der Verbindung auf diejenigen Zeichen zu begrenzen, die für das Verbindungsprotokoll und nicht für die Übertragung von Steuerdaten einschließlich Synchronisierungssignalen benötigt werden.
- Die Implementierung mit SYNC-Protokollzeichen wird als die Grundlage für den Rest dieser Beschreibung verwendet.
- Wenn der Plattenlaufwerk-Verbindungs-Chip den Empfang eines Paares von SYNC-Zeichen am Spindel-Sync-Detektor 306 feststellt, gibt er ein Signal an den Spindel-Sync-Steuerschaltkreis 400 im Laufwerk aus, wo vom Spindel-Sync-Impulsgenerator 410 ein SYNC- Impuls generiert wird. Der SYNC-Impuls wird dann mit dem von der Indexmarkierung auf der Servoplatte erzeugten Indeximpuis verglichen, und der Komparator 420 stellt fest, ob der Indeximpuls vor oder nach dem SYNC-Impuls erfolgt, und berechnet anhand dieser Feststellung, ob der Spindelmotor beschleunigt oder verlangsamt werden muß. Das Ergebnis dieser Berechnung wird an den Spindelmotorsteller 140 weitergeleitet, der die Geschwindigkeit und die Phase des Spindelmotors in Relation zum Indeximpuls steuert. Wenn man annimmt, daß der Indeximpuls nicht gleichzeitig mit dem SYNC-Impuls erfolgte, ändert der Spindelmotorsteller die Geschwindigkeit des Motors, damit sich die Platten schneller oder langsamer drehen. Nach Eingang des nächsten SYNC- Impulses berechnet der Spindel-Sync-Steuerschaltkreis den Phasenunterschied zwischen den Indeximpuls und dem SYNC-Impuls erneut und gibt, falls erforderlich, ein weiteres Signal an den Spindelmotorsteller 140 aus. Der Prozeß wird fortgesetzt, bis die SYNC-Impulse und die Indeximpulse synchronisiert sind.
- Die Geschwindigkeit des Spindelmotors kann exakt gesteuert werden, so daß die Abweichung von einem festen, von der Geschwindigkeitsbezugslogik bereitgestellten Bezugs-Timing-wert im Bereich von plus oder minus 0,1% liegen kann. Dies entspricht bei hochleistungsfähigen Plattenlaufwerken ungefähr plus oder minus 10 Mikrosekunden. Wenn SYNC-Zeichen als Synchronisierungssignale verwendet werden, beträgt die Verzögerung beim Ausgeben von SYNC-Zeichen aufgrund von anderen Aktivitäten der Verbindung ungefähr 0,2 Mikrosekunden, wenn man eine Verbindungsgeschwindigkeit von 10 Mbyte/Sekunde annimmt.
- Wenn jedoch die Spindel-Sync-Steuerrahmen als Synchronisierungssignale verwendet werden, zittert der Bezugs-Timing-Wert der Motorsteuerung je nach der Verzögerung aufgrund der aktuellen Verbindungsaktivität (d.h. ob gegenwärtig vom Controller ein Rahmen übertragen wird). Wenn die Verbindungsgeschwindigkeit 10 Mbyte/Sekunde beträgt und die Daten in Rahmen von 64 Byte übertragen werden, beträgt die maximale Verzögerung für den Synchronisierungssteuerrahmen ungefähr 7 Mikrosekunden. In einigen Fällen kann die Steuerrahmen-Option aufgrund dieser Verzögerung unerwünscht sein. In anderen Situationen, in denen die Schwankung der Geschwindigkeit jedoch nicht so kritisch ist, kann der Vorteil des Spindel-Sync-Steuerrahmens, daß kein spezielles Protokollzeichen definiert werden muß, den Nachteil der größeren Verzögerung aufwiegen.
- Um die rotationalen Positionen der Plattenlaufwerke im Array zu synchronisieren, gibt der Controller Zeitgeber-Signale an beide Controller-Verbindungs-Chips aus, die dann über die serielle Verbindung Synchronisierungssignale an das angeschlossene Plattenlaufwerk ausgeben: Wenn beispielsweise gewünscht wird, die Rotation aller vier in Figur 1 gezeigten Laufwerke zu synchronisieren, werden Synchronisierungssignale generiert und von vier in Figur 3 gezeigten Sendeverbindungsportionen des Controller- Verbindungs-Chips übertragen. Vier Laufwerk-Verbindungs-Chips, wie sie in Figur 3 gezeigt werden, empfangen die Synchronisierungssignale und decodieren sie.
- Das Synchronisierungsverfahren der vorliegenden Erfindung bietet auch die Möglichkeit, die Rotation der Spindel in bezug auf das Synchronisierungssignal vom Controller zeitlich zu versetzen. Die Indexmarkierung auf der Plattenlaufwerk kann um einen in der an das Plattenlaufwerk ausgegebenen Anweisung SET POSITION festgelegten Betrag zum SYNC-Zeichen versetzt werden. Auf diese Weise können verschiedene Laufwerke im System zueinander versetzt sein. Ein gespiegeltes Paar von Plattenlaufwerken (d.h. ein Paar von Laufwerken, die jeweils über eine Kopie derselben Daten verfügen) könnte beispielsweise mit einer Phasenverschiebung von 180 Grad angeordnet werden, um die Latenz beim Auffinden der benötigten Daten von einem der Laufwerke auf ein Minimum zu reduzieren.
- Der Controller bildet einen Nachrichtenrahmen einschließlich einer Anweisung SET POSITION im Datenfeld und sendet diesen an ein ausgewähltes Laufwerk bzw. an ausgewählte Laufwerke, wo er im Rahmenpuffer 312 gespeichert wird, damit der Laufwerk-Mikroprozessor eine Maßnahme ergreift. Der Versatzwert in der Anweisung SET POSITION wird vom Laufwerk-Mikroprozessor 330 gelesen, und der Wert wird über den Mikroprozessor-Bus 326 in die programmierbare Verzögerung 440 geladen. Der Indeximpuls der Platte wird über die programmierbare Verzögerung weitergeleitet, die die Übertragung des Impulses an die Vergleichsschaltung um einen in der Anweisung SET POSITION angegebenen Betrag verzögert. Der Phasenunterschied zwischen der Indexmarkierung und dem Empfang des SYNC-Zeichens vom Controller kann so von der Anweisung SET POSITION auf einen beliebigen Wert gesetzt werden.
- In der obigen Beschreibung ist jedes Plattenlaufwerk über eine dedizierte serielle Verbindung an einen einzelnen Controller angeschlossen. In einer Erweiterung des Verfahrens der vorliegenden Erfindung kann jedes Plattenlaufwerk mit Hilfe mehrerer serieller Verbindungen an mehrere Controller angeschlossen sein. Eine solche Konfiguration, bei der zwei Controller angeschlossen werden, wird in Fig. 6 gezeigt, in der die Plattenlaufwerke (40, 41, 42, 43) eines ersten Arrays mit Hilfe der seriellen Verbindungen 25, 26, 27 und 28 an Controller 20 und über die seriellen Verbindungen 25', 26', 27' und 28' an den Controller 21 angeschlossen sind. Auf ähnliche Weise sind die Plattenlaufwerke 44, 45, 46 und 47 über die seriellen Verbindungen 29, 30, 31 und 32 an den Controller 21 und über die seriellen Verbindungen 29', 30', 31' und 32' an den Controller 20 angeschlossen. Wenn während des Betriebs der Controller 20, der SYNC-Zeichen an die Plattenlaufwerke 40, 41, 42 und 43 ausgibt, ausfällt, werden die Plattenlaufwerke vom Controller 21 reserviert, der mit dem Übertragen von SYNC-Zeichen über die Anschlußverbindungen an die Laufwerke beginnt. Die Synchronisierung kann so nach einer kurzen Zeitspanne aufrechterhalten werden, wenn ein Controller ausfällt. Auf ähnliche Weise kann der Controller 20 bei einem Ausfall von Controller 21 die Synchronisierung der Plattenlaufwerke 44, 45, 46 und 47 übernehmen.
- Das oben beschriebene Synchronisierungsverfahren kann auf höherer Ebene implementiert werden. In der Konfiguration von Fig. 6 werden die Controller 20 und 21 über dedizierte serielle Verbindungen, die den für das Anschließen der Plattenlaufwerke beschriebenen Verbindungen ähneln, an das verwendende System angeschlossen. Der Adapter wäre in der Lage, Synchronisierungsbefehle an beide Controller auszugeben, was dazu führen würde, daß die Zeitgeber in beiden Controller-Mikroprozessoren synchronisiert wären. Auf diese Weise könnten alle acht (oder weniger) Plattenlaufwerke, die an die synchronisierten Controller angeschlossen sind, miteinander synchronisiert werden.
- Es ist anzuerkennen, daß der Controller bei dem vorliegenden Verfahren einen Teilsatz der angeschlossenen Plattenlaufwerke synchronisieren kann. Es kann beispielsweise wünschenswert sein, ein Paar der vier Laufwerke mit phasengleichen Indexmarkierungen und das zweite Paar mit um 180 Grad zueinander versetzten Indexmarkierungen zu synchronisieren.
- Wenn in der Konfiguration von Fig. 6 ein einzelnes Laufwerk ausfällt, könnte der angeschlossene Controller ein Plattenlaufwerk ('Hot Spare') aus dem Satz der an den zweiten Controller angeschlossenen Laufwerke einschalten. Auf diese Weise wäre im Fall eines Ausfalls bei einem der Laufwerke die Leistung des Arrays nicht beeinträchtigt. So kann ein Array dynamisch aus einem Pool von Einheiten konfiguriert und die Synchronisierung aufrechterhalten werden, wenn eine Einheit ausfällt. Hiermit können unbenutzte Plattenlaufwerke dynamisch in ein Array konfiguriert werden, wenn eine Einheit ausfällt.
- Der Controller erzeugt die Synchronisierungs-Zeitgeber-Impulse, die von den einzelnen Laufwerken zum Synchronisieren ihrer Motoren verwendet werden. Wenn der Controller daher die physische Anordnung der Datenblöcke auf der Platte und deren Position in Relation zu diesem Synchronisierungsimpuls kennt, weiß er die rotationale Position der benötigten Daten auf allen Platten. Dies kann verwendet werden, um festzustellen, welches Laufwerk eines gespiegelten Paares, dessen Laufwerke um 180 Grad phasenversetzt sind, gelesen werden soll und um so die Latenz beim Suchen der benötigten Daten auf ein Minimum zu reduzieren.
- Obwohl die obige Beschreibung auf die Synchronisierung von Plattenlaufwerken ausgerichtet war, die über dedizierte serielle Verbindungen mit einem Controller verbunden sind, ist offensichtlich, daß sich das Konzept der vorliegenden Erfindung auch auf parallele Schnittstellen anwenden läßt, sofern es die Schnittstelle zuläßt, daß Synchronisierungssignale ohne übermäßige Verzögerung gesendet werden.
Claims (11)
1. Eine Plattenspeichereinheit (40) für das Speichern von
Daten, die folgendes umfaßt:
mindestens eine Datenspeicherplatte (115), die zur Rotation
auf einer motorgetriebenen Spindel (125) befestigt ist;
Einrichtungen (300, 330) für das Kommunizieren mit einem
Einheiten-Controller (20) über eine Übertragungsverbindung
(25), die die Einheit mit dem Controller verbindet, wobei
Daten und Befehlsdaten über die Verbindung vom Controller
zur Einheit übertragen werden;
dadurch gekennzeichnet, daß die Plattenspeichereinheit
desweiteren folgendes umfaßt:
eine Einrichtung (300) für das Extrahieren der vom
Controller ausgegebenen Synchronisierungssignale aus Daten
und Befehlsdaten, die über die Verbindung gesendet werden,
wobei die Synchronisierungssignale mit den Daten und den
Befehlsdaten auf derselben Übertragungsverbindung
verschachtelt sind; und
eine Einrichtung (400) für das Synchronisieren der Rotation
der motorgetriebenen Spindel mit den extrahierten
Synchronisierungssignalen.
2. Ein Plattenlaufwerk-Untersystem, das folgendes umfaßt:
eine Plattenspeichereinheit (40), die über mindestens eine
Datenspeicherpiatte (115) verfügt, die zur Rotation auf
einer motorgetriebenen Spindel (125) angebracht ist;
einen Controller (20) für das Steuern der Übertragung von
Daten und Befehlsdaten über eine Übertragungsverbindung
(25), die den Controller mit der Einheit verbindet, dadurch
gekennzeichnet, daß:
die Plattenspeichereinheit eine Einrichtung (300) zum
Extrahieren von Synchronisierungssignalen, die vom
Controller ausgegeben werden, aus den über die Verbindung
gesendeten Daten und Befehlsdaten, wobei die
Synchronisierungssignale mit den Daten und Befehlsdaten auf derselben
Übertragungsverbindung verschachtelt sind, sowie eine
Einrichtung (400) für das Synchronisieren der Rotation der
motorgetriebenen Spindel mit den extrahierten
Synchronisierungssignalen umfaßt.
3. Ein Plattenlaufwerk-Untersystem nach Anspruch 2, das eine
Vielzahl von Plattenspeichereinheiten (40, 41, 42, 43)
umfaßt, die mit Hilfe der Übertragungsverbindung mit dem
Controller verbunden sind, wobei jede Speichereinheit über
mindestens eine Datenspeicherpiatte verfügt, die zur
Rotation auf einer motorgetriebenen Spindel befestigt ist, und
wobei jede Speichereinheit die Einrichtung für das
Extrahieren der Synchronisierungssignale umfaßt, die vom
Controller über die Übertragungsverbindung gesendet werden,
um die Rotation der motorgetriebenen Spindel mit den
extrahierten Synchronisierungssignalen zu synchronisieren.
4. Ein Plattenlaufwerk-Untersystem nach Anspruch 3, in dem die
Übertragungsverbindung aus einer dedizierten seriellen
Punkt-zu-Punkt-Verbindung (25, 26, 27, 28) zwischen dem
Controller und den einzelnen Plattenspeichereinheiten
besteht und wobei Daten und Befehlsdaten über die einzelnen
Verbindungen zwischen dem Controller und einer Einheit in
Form von Rahmen, die eine Vielzahl von Mehrbit-Datenzeichen
enthalten, übertragen werden.
5. Ein Plattenlaufwerk-Untersystem nach einem der Ansprüche 2
bis 4, in dem das Synchronisierungssignal die Form eines
Mehrbit-SYNC-Zeichens von vordefiniertem Format annimmt.
6. Ein Plattenlaufwerk-Untersystem nach Anspruch 5, welcher
von Anspruch 2 abhängt, in dem das Mehrbit-SYNC-Zeichen
zwischen den Datenzeichen eines über die Verbindung
übertragenen Rahmens verschachtelt ist.
7. Ein Plattenlaufwerk-Untersystem nach einem der Ansprüche 2
bis 6, in dem das Synchronisierungssignal vom Controller
mit der Frequenz der Nennrotationszeit der motorgetriebenen
Spindel der Plattenspeichereinheit ausgegeben wird.
8. Ein Plattenlaufwerk-Untersystem nach einem der Ansprüche 3
bis 7, in dem eine Datenspeicherplatte jedes
Speichereinheiten-Laufwerks eine Indexmarkierung aufweist und in
dem der Controller so betrieben werden kann, daß er über
die Übertragungsverbindung Versatzsignale an ausgewählte
Laufwerke ausgeben kann, damit die Indexmarkierung eines
Laufwerks in bezug auf die Indexmarkierung eines zweiten
Laufwerks um einen im Versatzsignal angegebenen Betrag
phasenversetzt ist.
9. Ein Plattenlaufwerk-Untersystem nach einem der Ansprüche 4
bis 8, das desweiteren über einen zweiten Controller
verfügt, der mit Hilfe einer zweiten seriellen Punkt-zu-Punkt-
Verbindung mit jeder der Plattenspeichereinheiten aus einer
Vielzahl von Plattenspeichereinheiten verbunden ist.
10. Ein Verfahren für das Synchronisieren der Spindel einer
Plattenspeichereinheit mit einem Synchronisierungssignal,
das von einem Controller ausgegeben wird, der über eine
Übertragungsverbindung an die Einheit angeschlossen ist,
wobei Daten und Befehlsdaten über diese
Übertragungsverbindung zwischen dem Controller und der Einheit
übertragen werden, und wobei das Verfahren gekennzeichnet ist
durch die Schritte zum:
Übertragen einer Vielzahl von Synchronisierungssignalen an
die Einheit, wobei die Synchronisierungssignale auf der
Übertragungsverbindung mit den Daten und den Befehlsdaten
verschachtelt sind;
Extrahieren der Synchronisierungssignale an der Einheit aus
den Daten, die vom Controller über die
Übertragungsverbindung gesendet wurden; und
Synchronisieren der Rotation der Spindel gemäß den
extrahierten Synchronisierungssignalen.
11. Ein Verfahren nach Anspruch 10, in dem eine Vielzahl von
Plattenspeichereinheiten über die Übertragungsverbindung
mit dem Controller verbunden ist, wobei jede
Speichereinheit Synchronisierungssignale aus Daten und Befehlsdaten
extrahiert, die vom Controller an die Einheit gesendet
werden, und die Rotation seiner Spindel mit den extrahierten
Synchronisierungssignalen synchronisiert.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP91311325A EP0544954B1 (de) | 1991-12-05 | 1991-12-05 | Plattenlaufwerksynchronisierung |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69119076D1 DE69119076D1 (de) | 1996-05-30 |
DE69119076T2 true DE69119076T2 (de) | 1996-11-21 |
Family
ID=8208494
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69119076T Expired - Fee Related DE69119076T2 (de) | 1991-12-05 | 1991-12-05 | Plattenlaufwerksynchronisierung |
Country Status (6)
Country | Link |
---|---|
US (1) | US6118612A (de) |
EP (1) | EP0544954B1 (de) |
JP (1) | JPH07117880B2 (de) |
KR (1) | KR960014886B1 (de) |
CA (1) | CA2078914C (de) |
DE (1) | DE69119076T2 (de) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5640584A (en) * | 1994-12-12 | 1997-06-17 | Ncr Corporation | Virtual processor method and apparatus for enhancing parallelism and availability in computer systems |
US6262993B1 (en) | 1996-11-08 | 2001-07-17 | Kevin Kirmse | Computer and peripheral networking device permitting the practical use of buffer insertion-based networks while communicating over unshielded twisted pair conductive media |
DE69819129T2 (de) * | 1998-02-19 | 2004-07-29 | International Business Machines Corp. | Flusssteuerungsverfahren unter Verwendung eines Ausserband-Flusssteurungkanals |
US6603625B1 (en) * | 2000-09-11 | 2003-08-05 | Western Digital Technologies, Inc. | Spindle synchronizing a plurality of spindles connected to a multi-dimensional computer network |
JP2003030018A (ja) * | 2001-07-13 | 2003-01-31 | Sony Corp | データ通信装置および方法、データ通信システム、情報処理装置および方法、記録媒体、並びにプログラム |
US7295555B2 (en) * | 2002-03-08 | 2007-11-13 | Broadcom Corporation | System and method for identifying upper layer protocol message boundaries |
JP2004013827A (ja) * | 2002-06-11 | 2004-01-15 | Fujitsu Ltd | 磁気ディスク装置 |
US8452929B2 (en) | 2005-04-21 | 2013-05-28 | Violin Memory Inc. | Method and system for storage of data in non-volatile media |
US9384818B2 (en) | 2005-04-21 | 2016-07-05 | Violin Memory | Memory power management |
US9286198B2 (en) | 2005-04-21 | 2016-03-15 | Violin Memory | Method and system for storage of data in non-volatile media |
US8200887B2 (en) | 2007-03-29 | 2012-06-12 | Violin Memory, Inc. | Memory management system and method |
US8028186B2 (en) | 2006-10-23 | 2011-09-27 | Violin Memory, Inc. | Skew management in an interconnection system |
US9632870B2 (en) | 2007-03-29 | 2017-04-25 | Violin Memory, Inc. | Memory system with multiple striping of raid groups and method for performing the same |
US11010076B2 (en) | 2007-03-29 | 2021-05-18 | Violin Systems Llc | Memory system with multiple striping of raid groups and method for performing the same |
US7949825B2 (en) * | 2007-04-10 | 2011-05-24 | At&T Intellectual Property I, Lp | Disk array synchronization using power distribution |
US8095729B2 (en) * | 2008-12-22 | 2012-01-10 | At&T Intellectual Property I, Lp | Disk drive array synchronization via short-range RF signaling |
WO2010144587A2 (en) * | 2009-06-12 | 2010-12-16 | Violin Memory, Inc. | Memory system having persistent garbage collection |
WO2014081414A1 (en) * | 2012-11-20 | 2014-05-30 | Empire Technology Development Llc | Multi-element solid-state storage device management |
US9626997B1 (en) * | 2015-10-30 | 2017-04-18 | Netapp, Inc. | Variable spinning rates for hard disk drives |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3710324A (en) * | 1970-04-01 | 1973-01-09 | Digital Equipment Corp | Data processing system |
US3893178A (en) * | 1973-12-19 | 1975-07-01 | Information Storage Systems | Synchronization of multiple disc drives |
US4368512A (en) * | 1978-06-30 | 1983-01-11 | Motorola, Inc. | Advanced data link controller having a plurality of multi-bit status registers |
US4410942A (en) * | 1981-03-06 | 1983-10-18 | International Business Machines Corporation | Synchronizing buffered peripheral subsystems to host operations |
JPS58501695A (ja) * | 1981-10-05 | 1983-10-06 | デイジタル イクイプメント コ−ポレ−シヨン | ドライブとコントロ−ラの間で直列通信を使用する二次記憶装置 |
US4618897A (en) * | 1985-02-11 | 1986-10-21 | Ixi Laboratories, Inc. | System for synchronizing plural data storage devices to a common master |
US4675864A (en) * | 1985-06-04 | 1987-06-23 | Hewlett-Packard Company | Serial bus system |
US4862411A (en) * | 1987-02-26 | 1989-08-29 | International Business Machines Corporation | Multiple copy data mechanism on synchronous disk drives |
US4870643A (en) * | 1987-11-06 | 1989-09-26 | Micropolis Corporation | Parallel drive array storage system |
US4907105A (en) * | 1988-03-11 | 1990-03-06 | Maxtor Corporation | Synchronized spindle control for disk drives |
US5237466A (en) * | 1989-11-02 | 1993-08-17 | International Business Machines Corporation | Method and apparatus for programmably controlling spindle synchronization and phase among disk drives in a storage subsystem |
JPH0814927B2 (ja) * | 1991-11-01 | 1996-02-14 | 富士通株式会社 | 回転同期制御方式 |
GB2270790A (en) * | 1992-09-18 | 1994-03-23 | Ibm | Disk drive synchronisation |
US5491593A (en) * | 1993-09-10 | 1996-02-13 | International Business Machines Corporation | Disk drive spindle synchronization apparatus and method |
-
1991
- 1991-12-05 DE DE69119076T patent/DE69119076T2/de not_active Expired - Fee Related
- 1991-12-05 EP EP91311325A patent/EP0544954B1/de not_active Expired - Lifetime
-
1992
- 1992-09-23 CA CA002078914A patent/CA2078914C/en not_active Expired - Fee Related
- 1992-11-04 JP JP4295176A patent/JPH07117880B2/ja not_active Expired - Fee Related
- 1992-11-19 KR KR1019920021695A patent/KR960014886B1/ko not_active IP Right Cessation
-
1997
- 1997-09-22 US US08/935,157 patent/US6118612A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR930014459A (ko) | 1993-07-23 |
EP0544954B1 (de) | 1996-04-24 |
EP0544954A1 (de) | 1993-06-09 |
KR960014886B1 (ko) | 1996-10-21 |
JPH05233154A (ja) | 1993-09-10 |
JPH07117880B2 (ja) | 1995-12-18 |
CA2078914A1 (en) | 1993-06-06 |
DE69119076D1 (de) | 1996-05-30 |
CA2078914C (en) | 1997-03-25 |
US6118612A (en) | 2000-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69119076T2 (de) | Plattenlaufwerksynchronisierung | |
DE2647241C2 (de) | Übertragungseinrichtung für die synchrone Datenübertragung | |
DE2759128C2 (de) | ||
DE60004043T2 (de) | Aufzeichnung und synchronisierung eines datensatzes auf speichermedien | |
DE3280451T2 (de) | Verfahren zur Initialisierung eines Datenverarbeitungssystems. | |
DE69221279T2 (de) | Plattenlaufwerkmatrix mit redundanten Kanälen | |
DE68926725T2 (de) | Atomare Sequenz für Phasenübergänge | |
DE69231204T2 (de) | Gerät und Verfahren zur Steuerung von Hintergrundverarbeitung in einer Speicherplattenanordnung | |
DE4003759C2 (de) | Verfahren und Anordnung zur Übertragung von Daten über einen Bus zwischen selektiv ankoppelbaren Stationen | |
DE19900345A1 (de) | Vorrichtung und Verfahren für die Bereitstellung einer Schnittstelle für eine Verbundsteuereinheit eines Universellen Seriellen Buses | |
DE19900245A1 (de) | Vorrichtung und Verfahren zum Senden und Empfangen von USB-Isochrondaten | |
DE3301628A1 (de) | Schaltungsanordnung fuer den datenaustausch zwischen zwei rechnern | |
DE69710274T2 (de) | Mehrplattenantriebsnetzwerk mit mehreren paritätsgruppen | |
DE4307449A1 (de) | ||
DE69515081T2 (de) | Redundantes Speicherplattensystem | |
EP1648116A1 (de) | Verfahren zur Übertragung von Daten in einem Kommunikationssystem | |
DE69834220T2 (de) | Serielle Datenübertragung zwischen einem Datenverarbeitungsgerät und einer externen Speicheranordnung | |
DE69730399T2 (de) | Schnittstellengerät zur Anpassung von Datenbreite an Systembusbreite | |
DE69508034T2 (de) | Fehlererkennungs-System und -Verfahren für gespiegelten Speicher zwischen doppelten Plattenspeichersteuerungen | |
EP0350016B1 (de) | Verfahren und Einrichtung zum Duplizieren des Inhalts von Datenträgern | |
DE69224800T2 (de) | Gerät und Verfahren zur Datenprüfung in einem Datenspeichersystem | |
DE3889944T2 (de) | Einrichtung und Verfahren zur Nachrichtenübertragung. | |
DE2312461A1 (de) | Schaltungsanordnung zur verbindung einer datenverarbeitungseinheit mit einer vielzahl von uebertragungsleitungen | |
DE2254696B2 (de) | Schaltungsanordnung zur Neuorientierung von Aufzeichnungen in einem Plattenspeicher | |
DE69522611T2 (de) | Festplatte und Festplattenuntersystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |