DE69119076T2 - Plattenlaufwerksynchronisierung - Google Patents

Plattenlaufwerksynchronisierung

Info

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
Application number
DE69119076T
Other languages
English (en)
Other versions
DE69119076D1 (de
Inventor
Norman Apperley
Ian David Judd
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE69119076D1 publication Critical patent/DE69119076D1/de
Application granted granted Critical
Publication of DE69119076T2 publication Critical patent/DE69119076T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B19/00Driving, 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/02Control of operating function, e.g. switching from recording to reproducing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B19/00Driving, 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/20Driving; Starting; Stopping; Control thereof
    • G11B19/28Speed controlling, regulating, or indicating
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/40Combinations of multiple record carriers
    • G11B2220/41Flat 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/415Redundant array of inexpensive disks [RAID] systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/002Programmed 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.
  • SPINDELSYNCHRONISIERUNG
  • 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.
  • VERSATZ
  • 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.
DE69119076T 1991-12-05 1991-12-05 Plattenlaufwerksynchronisierung Expired - Fee Related DE69119076T2 (de)

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)

* Cited by examiner, † Cited by third party
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
US8200887B2 (en) 2007-03-29 2012-06-12 Violin Memory, Inc. Memory management system and method
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
US8028186B2 (en) 2006-10-23 2011-09-27 Violin Memory, Inc. Skew management in an interconnection system
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
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
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
CN102576330B (zh) 2009-06-12 2015-01-28 提琴存储器公司 具有持久化无用单元收集机制的存储系统
US20150331615A1 (en) * 2012-11-20 2015-11-19 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)

* Cited by examiner, † Cited by third party
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
AU560352B2 (en) * 1981-10-05 1987-04-02 Digital Equipment Corporation Secondary storage facility employing serial communications between drive and controller
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

Also Published As

Publication number Publication date
JPH05233154A (ja) 1993-09-10
KR960014886B1 (ko) 1996-10-21
JPH07117880B2 (ja) 1995-12-18
DE69119076D1 (de) 1996-05-30
EP0544954B1 (de) 1996-04-24
CA2078914A1 (en) 1993-06-06
EP0544954A1 (de) 1993-06-09
CA2078914C (en) 1997-03-25
US6118612A (en) 2000-09-12
KR930014459A (ko) 1993-07-23

Similar Documents

Publication Publication Date Title
DE69119076T2 (de) Plattenlaufwerksynchronisierung
DE68927214T2 (de) Verfahren zur Datenübertragung zwischen einem Medienzugriffskontroller und einem Pufferspeicher in einem Tokenring-Netz
DE2759128C2 (de)
DE69029833T2 (de) Plattenspeicher-Subsystem
DE60004043T2 (de) Aufzeichnung und synchronisierung eines datensatzes auf speichermedien
DE69724846T2 (de) Mehrweg-Ein/Ausgabespeichersysteme mit Mehrweg-Ein/Ausgabeanforderungsmechanismus
DE68926725T2 (de) Atomare Sequenz für Phasenübergänge
DE19900345A9 (de) Vorrichtung und Verfahren für die Bereitstellung einer Schnittstelle für eine Verbundsteuereinheit eines Universellen Seriellen Buses
DE4003759C2 (de) Verfahren und Anordnung zur Übertragung von Daten über einen Bus zwischen selektiv ankoppelbaren Stationen
DE69026346T2 (de) Technik zum Informationsschutz für fehlertolerante redundante Informationsspeichereinrichtungen
DE19900345A1 (de) Vorrichtung und Verfahren für die Bereitstellung einer Schnittstelle für eine Verbundsteuereinheit eines Universellen Seriellen Buses
DE19900369A1 (de) Vorrichtung und Verfahren zur Ausführung einer Steuerübertragung auf einem Universal Serial Bus
DE19900245A1 (de) Vorrichtung und Verfahren zum Senden und Empfangen von USB-Isochrondaten
DE3301628A1 (de) Schaltungsanordnung fuer den datenaustausch zwischen zwei rechnern
EP1648116A1 (de) Verfahren zur Übertragung von Daten in einem Kommunikationssystem
DE4307449A1 (de)
DE10236179A1 (de) Speichersystem und Verfahren zur Verwendung desselben
DE69834220T2 (de) Serielle Datenübertragung zwischen einem Datenverarbeitungsgerät und einer externen Speicheranordnung
DE69730399T2 (de) Schnittstellengerät zur Anpassung von Datenbreite an Systembusbreite
EP0350016B1 (de) Verfahren und Einrichtung zum Duplizieren des Inhalts von Datenträgern
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
DE2517170C2 (de) Schaltungsanordnung zum Unterbrechen des Programmablaufs in Datenverarbeitungsanlagen mit mehreren Ansteuereinrichtungen von Sekundärspeichern und dergleichen Speichereinheiten mit sequentiellem Zugriff
DE69927762T2 (de) Verfahren zur Übertragung von grossen Informationspaketen über Netze

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee