DE4225091A1 - Schaltungsanordnung zum automatischen aktualisieren von task-dateiregistern - Google Patents

Schaltungsanordnung zum automatischen aktualisieren von task-dateiregistern

Info

Publication number
DE4225091A1
DE4225091A1 DE4225091A DE4225091A DE4225091A1 DE 4225091 A1 DE4225091 A1 DE 4225091A1 DE 4225091 A DE4225091 A DE 4225091A DE 4225091 A DE4225091 A DE 4225091A DE 4225091 A1 DE4225091 A1 DE 4225091A1
Authority
DE
Germany
Prior art keywords
register
sector
drive
value
sectors
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.)
Withdrawn
Application number
DE4225091A
Other languages
English (en)
Inventor
Michael Holt
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.)
Silicon Systems Inc
Original Assignee
Silicon Systems Inc
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 Silicon Systems Inc filed Critical Silicon Systems Inc
Publication of DE4225091A1 publication Critical patent/DE4225091A1/de
Withdrawn 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral 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/0673Single storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Description

Die Erfindung betrifft das Gebiet der Festplatten-Steuersy­ steme, die mit dem IBM-AT-BIOS (Basis-Ein/Ausgabe-System) kom­ patibel sind und insbesondere die AT-Schnittstelle zwischen dem Leitrechner (host) und dem Mikroprozessor.
Computer und die ihnen zugeordneten Plattenlaufwerke werden zum Speichern großer Datenmengen benutzt. Üblicherweise werden die Daten auf einer Magnetplatte in einer Reihe von konzentri­ schen Spuren auf der Oberfläche der Platte gespeichert. Ein Schreib/Lese-Kopf bewegt sich auf der Platte in radialer Rich­ tung vorwärts und zurück, so daß er selektiv über jeweils einer der Spuren positioniert werden kann. Um die Daten wirksam zu lesen und zu schreiben, ist es notwendig, daß die Position der Spuren relativ zu dem Kopf bekannt ist. Zusätzlich zu der Kenntnis, über welcher Spur der Kopf sich befindet, ist es not­ wendig, die Stelle der bestimmten Spur zu kennen, an der der Kopf positioniert ist. Ein Servo-Muster wird zur Beschaffung der Positionsinformation verwendet. Eine Art des Servo-Musters ist das Sektor-Servo, welches auf der Plattenoberfläche zwi­ schen den Datengebieten angeordnete Impulse von Servo-Informa­ tionen aufweist.
Außerdem ist es notwendig zu wissen, an welcher Umfangspo­ sition der Spur der Kopf angeordnet ist. Dies wird durch einen "Index" erreicht, welcher im allgemeinen an einer speziellen Umfangsposition in dem Servo-Muster definiert ist, um die Start/Ende-Position jeder Datenspur anzuzeigen. Daneben ist für eine geeignete Adressierung eine Zylinderinformation erforder­ lich, wobei ein Zylinder die Kombination sämtlicher Spuren ist, auf die zu einem bestimmten Zeitpunkt durch die Köpfe in einem Laufwerk zugegriffen wird. Sobald der Kopf über eine Spurposi­ tion gebracht ist, verbleibt er an dieser Stelle, während die Spur unter ihm rotiert, was dem Kopf ein Lesen oder Schreiben von Daten von der bzw. auf die Spur gestattet.
Der Leitrechner kommuniziert mit dem Plattenlaufwerk über eine Schnittstelle, beispielsweise eine AT-Bus-Schnittstelle. Eine AT-Bus-Schnittstelle enthält oftmals verschiedene Regi­ ster, die der Leitrechner benutzt, um mit der Plattenlaufwerk- Steuereinheit zu kommunizieren. Der gesamte Satz der Register wird als eine AT-Task-Datei bezeichnet. Die Steuerregister der Schnittstelle werden zum Schreiben und Lesen von Daten und außerdem der zwischen dem Leitrechner und dem Plattenmikropro­ zessor ausgetauschten Befehle benutzt. Ferner stellen die Steu­ erregister Statusinformationen einschließlich einem Fehlersta­ tus für den Leitrechner zur Verfügung. Andere Register der AT- Task-Datei spezifizieren die physikalische Adresse für einen Lese- oder Schreib-Befehl. Alle diese in der Schnittstelle ent­ haltenen Register sind für eine geeignete Koordination zwischen dem Leitrechner und dem Laufwerk notwendig.
Folglich werden die Dateninformationen ebenso wie die Sta­ tusinformationen von der Platte der AT-Busschnittstelle zur Verfügung gestellt, bevor die Dateninformationen an den Leit­ rechner geliefert werden. Die AT-Task-Dateiregister innerhalb der AT-Schnittstelle empfangen die Statusinformationen von dem Laufwerk, um die Register zu aktualisieren. Jeweils nachdem ein Datensektor übertragen wurde, werden die AT-Task-Dateiregister der AT-Schnittstelle aktualisiert, um die physikalische Adresse des Sektors der übertragenen Daten anzuzeigen.
Eine Blockdarstellung der AT-Schnittstelle ist in Fig. 4 gegeben. Der Leitrechner 120 und der Mikroprozessor 110 des Plattenlaufwerks sind über die Busleitung 160 mit der AT- Schnittstelle 130 gekoppelt. Der Block der AT-Schnittstelle 130 ist außerdem mit dem Block der AT-Task-Datei 140 gekoppelt, welche ein Teil der AT-Schnittstelle 130 ist. Die AT-Task-Datei 140 ist mit dem Mikroprozessor 110 gekoppelt. Die AT-Schnitt­ stelle 130 ist mit einem anderen Elektronik-Block 170 gekop­ pelt, welcher mit der Kopfantriebseinheit (HDA) 150 gekoppelt ist. Die Kopfantriebseinheit 150 ist außerdem mit dem Mikropro­ zessor 110 gekoppelt. Der andere Elektronik-Block 170 bildet gemeinsam mit der AT-Schnittstelle 130 die Platten-Steuerein­ heit des Plattenlaufwerks. Im Betrieb werden Befehle zu dem Plattenlaufwerk gesandt, um Daten zu lesen oder zu schreiben. Diese Daten werden zurück zum Computer übertragen. Wenn die Da­ ten über die AT-Schnittstelle 130 und den Bus 160 zum Leitrech­ ner 120 oder zum Mikroprozessor 110 übertragen werden, wird der AT-Task-Dateiblock 140 durch den Mikroprozessor mit der Status­ information aktualisiert. Diese Task-Dateiregister (die nach dem Übertragen jedes Datenblocks oder Sektors aktualisiert wer­ den, um die physikalische Adresse des übertragenen Datensektors zur Verfügung zu stellen) weisen ein Sektorzählregister, ein Sektornummerregister, ein Laufwerk/Kopf-Nummerregister, ein un­ teres Zylinderregister und ein oberes Zylinderregister auf.
Das AT-Sektornummerregister ist ein Dual-Port-Schreib/Lese- Register, das sowohl für den Leitrechner als auch für den Mi­ kroprozessor verfügbar ist. Dieses Register ist ein 8-Bit-Para­ meter-Register, das das Sektor-ID zur Verfügung stellt. Dieses Register spezifiziert die Anfangssektornummer für den aktuellen Schreib/Lese-Sektor-Befehl. Üblicherweise wird dieses Register durch den lokalen Mikrocontroller inkrementiert, jeweils nach­ dem ein Sektor vom Leitrechner zum Controller oder vom Control­ ler zum Leitrechner (Leseoperation) übertragen wurde.
Wenn das Sektornummerregister soweit inkrementiert worden ist, daß der Registerwert den größten Sektor-ID auf der Spur erreicht (die obere Grenze des Sektornummerregisters), so muß der Mikroprozessor das Register für ein geeignetes Aktualisie­ ren zurücksetzen, sobald der nächste Datensektor übertragen wird. Der Mikroprozessor speichert diesen oberen Grenzwert und hindert das Register am Inkrementieren über diesen Wert hinaus.
Das AT-Sektorzählregister wird benutzt, um die Anzahl der während eines Sektor-Schreib/Lese-Befehls zu übertragenden Sek­ toren zu spezifizieren. Dieses Register wird üblicherweise je­ weils nach der Übertragung eines Sektors durch den lokalen Mi­ krocontroller dekrementiert. Wenn dieses Register mit einer Null geladen wird, dann werden 256 Sektoren übertragen.
Das AT-Laufwerk/Kopf-Register ist ein 8-Bit-Register, das vom Leitrechner benutzt wird, um die Kopfnummer und die Lauf­ werksnummer zu spezifizieren. Zusätzlich wird Bit 4 dieses Re­ gisters benutzt, um eines der beiden Laufwerkstatusregister 0 oder 1 auszuwählen, auf das der Leitrechner zugreifen kann. Die Bits 3-0 enthalten die binärcodierte Adresse des auszuwählenden Kopfes. In bisherigen AT-Task-Dateien ändert der Mikroprozessor die Kopfadresse immer dann, wenn eine Spur- oder Zylindergrenze überquert wird.
Das untere AT-Zylinderregister wird benutzt, um die nieder­ wertigen 8 Bits der Plattenzylinderadresse zu spezifizieren. Dieses Register bildet in Verbindung mit dem oberen Zylinderre­ gister eine 16-Bit-Zylinderadresse. Dieses Register wird durch den lokalen Mikrocontroller üblicherweise dann inkrementiert, wenn eine Zylindergrenze überquert wird. Am Ende des Befehls wird dieses Register aktualisiert, um die aktuelle Zylindernum­ mer wiederzugeben.
Das obere Zylinderregister enthält die Bits höherer Ordnung der Anfangszylinderadresse für jeglichen Plattenzugriff. Am Ende des Befehls wird dieses Register aktualisiert, um die ak­ tuelle Zylindernummer wiederzugeben. Die höchstwertigen Bits der Zylinderadresse werden in das obere Zylinderregister gela­ den.
Nach dem Abschluß jeder Sektor-Datenübertragung müssen die oben beschriebenen Register mit den aktuellen Sektor-, Kopf- und Zylinderinformationen aktualisiert werden. Üblicherweise wird dieses Verfahren bisher durch den Systemmikroprozessor ausgeführt. Dies erfordert, daß der Mikroprozessor jedes der Task-Dateiregister für jeden übertragenen Datenblock aufrecht­ erhält, inkrementiert und erneut lädt.
Leider reduziert dies die verfügbare Bandbreite des Mikro­ prozessors und erhöht den Zeitaufwand bei der Übertragung von Daten vom Plattenlaufwerk zum Leitrechner. Es ist erwünscht, Mikroprozessor-Bandbreite zur Aufrechterhaltung von Task-Datei­ registerwerten freizuhalten. Wenn ein einziger Mikroprozessor in Plattenlaufwerken benutzt wird, um alle Laufwerksfunktionen einschließlich der Task-Dateiaktualisierungen zu unterstützen, steht u. U. keine Bandbreite des Mikroprozessors zur Verfügung, um die Task-Dateiregisterwerte aufrechtzuerhalten. Es ist wün­ schenswert, den Mikroprozessor von der Aktualisierung der Task- Dateiregister und dem Aufrechterhalten der Task-Registerwerte zu befreien.
Die vorliegende Erfindung automatisiert die Arbeit der in Festplattenlaufwerken und Festplatten-Steuersystemen benutzten Task-Dateiregister. Die Erfindung stellt Register zur Verfü­ gung, die zwischen der Platten-Steuerschaltung und dem Leit­ rechner eine Schnittstelle bilden. Die Erfindung benutzt vier digitale 8-Bit-Zähler, einen digitalen 4-Bit-Zähler, ein 8-Bit- Datenregister und ein 4-Bit-Datenregister. Diese Zähler zeigen die physikalische Adresse des Sektors der übertragenen Daten an und werden inkrementiert oder erneut geladen, wie es erforder­ lich ist, wenn ein Sektor der Daten übertragen wird. Die Erfin­ dung benutzt das 8-Bit-Datenregister, das Register für maximale Sektoranzahl, um die Anzahl der Sektoren pro Spur auf dem Lauf­ werk zu speichern, und das 4-Bit-Register, das Register der ma­ ximalen Kopfanzahl, um die Anzahl der Köpfe auf dem Platten­ laufwerk zu speichern. Nach der Übertragung jeweils eines Sek­ tors werden sodann die Zähler ohne Mikroprozessorunterstützung erneut geladen oder inkrementiert, wie es auf der Basis der In­ halte der Register für die maximale Kopfanzahl und die maximale Sektoranzahl erforderlich ist.
Das Sektorzählregister der Erfindung wird automatisch de­ krementiert, jeweils nachdem ein Datensektor zwischen Leitrech­ ner und Plattenlaufwerk übertragen worden ist. Der Wert des Sektornummerregisters wird automatisch aktualisiert, wobei er mit dem Wert in dem Register für die maximale Sektoranzahl verglichen wird, nachdem jeweils ein Sektor übertragen wurde. Nach jedem Vergleich wird das Sektornummerregister mit Eins ge­ laden, sofern sein Wert gleich dem Register der maximalen Sek­ toranzahl ist. Anderenfalls wird es inkrementiert. Das Lauf­ werk/Kopf-Register wird bei der Erfindung ebenfalls automatisch aktualisiert, indem es mit dem Wert in dem Register für die ma­ ximale Kopfanzahl verglichen wird, sofern das Sektorzählregi­ ster erneut geladen wird. Nach jedem Vergleich wird das Lauf­ werk/Kopf-Register mit Null geladen, sofern die drei niederwer­ tigen Bit des Laufwerk/Kopf-Registers gleich dem Register für die maximale Kopfanzahl sind. Anderenfalls wird es inkremen­ tiert. Die Werte des oberen und unteren Zylinderregisters wer­ den ebenfalls automatisch aktualisiert. Der Wert des unteren Zylinderregisters wird auf der Grundlage des in dem Lauf­ werk/Kopf-Register gespeicherten Werts aktualisiert, und der Wert des oberen Zylinderregisters wird nachfolgend auf der Grundlage des in dem unteren Zylinderregister gespeicherten Werts aktualisiert. Eine externe Schaltungsanordnung (üblicherweise ein Mikroprozessor) ist bei keiner dieser Opera­ tionen erforderlich. Eine automatische Aktualisierung der AT- Task-Datei ist wünschenswert, da sie die Anforderungen an den Befehlsaufwand und die Mikroprozessorbandbreite bei der Unter­ stützung der AT-Task-Datei reduziert. Die erfindungsgemäße Schaltung ist mit der ATA(AT-Anhang)-Spezifikation kompatibel (ANSI-Standardisierung für die BIOS-Kompatibilität).
Im folgenden wird die Erfindung anhand eines in der Zeich­ nung dargestellten Ausführungsbeispiels näher erläutert. In der Zeichnung zeigen:
Fig. 1 ein Ablaufdiagramm, welches das Aktualisierungs­ verfahren für den Sektornummerregisterwert be­ schreibt;
Fig. 2 ein Ablaufdiagramm, welches das Aktualisierungs­ verfahren für den Kopf-Registerwert ebenso wie für die Werte des unteren und des oberen Zylin­ derregisters beschreibt;
Fig. 3 ein Blockdiagramm eines bevorzugten Ausführungs­ beispiels der erfindungsgemäßen automatischen Task-Datei; und
Fig. 4 ein Blockdiagramm eines Leitrechner/AT- Bus/Plattenlaufwerk-Systems.
Die Erfindung betrifft eine Einrichtung, die Register für eine Schnittstelle zwischen einer Platten-Steuerschaltung und einem Leitrechner zur Verfügung stellt. In der folgenden Be­ schreibung werden zahlreiche spezielle Details, wie beispiels­ weise Registerarten, die Anzahl der Spuren usw. angegeben, um ein besseres Verständnis der Erfindung zu ermöglichen. Für den Fachmann ist es jedoch klar, daß die Erfindung auch ohne diese speziellen Details ausgeführt werden kann. An anderen Stellen werden bekannte Merkmale nicht im Detail beschrieben, um das Verständnis der Erfindung nicht unnötig zu erschweren.
Die Erfindung stellt eine Schaltungsanordnung zur Verfü­ gung, die die Leistungsfähigkeit der Steuereinheit durch ein Reduzieren der Anzahl der durch den Mikroprozessor ausgeführten Funktionen verbessert. Diese Schaltungsanordnung schließt eine automatische Aktualisierung der Task-Dateiregister ein. Die Task-Dateiregister zeigen in ihrer Gesamtheit die physikalische Adresse des Sektors der übertragenen Daten an, und diese Regi­ ster werden in der erforderlichen Weise inkrementiert oder er­ neut geladen, wenn jeweils ein Sektor der Daten übertragen wird. Beispielsweise wird bei der Ausführung von Mehrfach- Schreib- oder Mehrfach-Lese-Befehlen das Sektornummerregister der Task-Datei nach der Übertragung jeweils eines Sektors in­ krementiert bis zu der durch das Register für die maximale Sek­ toranzahl spezifizierten Sektoranzahl. Nachdem dieser Wert er­ reicht worden ist, geht das Sektornummerregister auf Eins über, und das Laufwerk/Kopf-Register wird inkrementiert.
Fig. 4 ist eine Blockdarstellung eines Leitrechner/AT- Bus/Plattenlaufwerk-Systems. In Fig. 4 ist der Leitrechner 120 mit der Busleitung 160 gekoppelt, welche mit der AT-Schnitt­ stelle 130 gekoppelt ist. Innerhalb des AT-Schnittstellenblocks 130 befindet sich der Block der AT-Task-Dateiregister 140. Die AT-Schnittstelle 130 ist ebenfalls mit dem Plattenlaufwerk-Mi­ kroprozessor 110 über den Bus 160 gekoppelt. Der Plattenlauf­ werk-Prozessor 110 ist mit der HDA 150 gekoppelt. Fig. 4 veran­ schaulicht, wie der Leitrechner und der Plattenlaufwerk-Prozes­ sor miteinander kommunizieren, wenn Sektordaten zwischen Leit­ rechner und Plattenlaufwerk übertragen werden. Die AT-Task-Da­ teiregister 140 der AT-Schnittstelle 130 stellen die physikali­ sche Adresse der zu übertragenden Datensektoren zur Verfügung. Wie aus Fig. 4 zu erkennen ist, greifen sowohl der Plattenlauf­ werk-Prozessor 110 als auch der Leitrechner 120 auf die AT- Schnittstelle 130 über den Bus 160 zu. Das System gemäß Fig. 4 ist so ausgebildet, daß der Leitrechner 120 und der Platten­ laufwerk-Prozessor 110 nur zu verschiedenen Zeitpunkten auf die AT-Schnittstelle 130 zugreifen können. Erfindungsgemäß ist die AT-Schnittstelle 130 so ausgebildet, daß die AT-Task-Dateiregi­ ster des Blocks 140 ohne irgendeine Mikroprozessorunterstützung automatisch aktualisiert werden.
In Fig. 1 ist ein Ablaufdiagramm dargestellt, das die Ak­ tualisierung des Werts des Sektornummerregisters ebenso wie die Beziehung des Kopf-Registers zum Sektornummerregister be­ schreibt. Die Aktualisierung beginnt am Startblock 10. Im Schritt 12 wird ein Datensektor vom Plattenlaufwerk zum Leit­ rechner übertragen. Am Entscheidungsblock 14 wird über die Frage "Ist der Wert des Sektornummerregisters gleich dem Wert des Registers für die maximale Sektoranzahl?" entschieden. Wenn die Frage bejaht wird, fährt das System mit dem Schritt 16 fort.
Beim Schritt 16 wird der Wert des Sektornummerregisters zu­ rückgesetzt. Außerdem wird beim Schritt 16 das Laufwerk/Kopf- Register automatisch inkrementiert.
Wenn die Frage des Entscheidungsblocks 14 verneint wird, fährt das System mit dem Schritt 18 fort. Am Schritt 18 wird das Sektornummerregister automatisch inkrementiert und das Sy­ stem fährt mit dem Schritt 20, dem Beenden, fort.
Das erfindungsgemäße Register für die maximale Sektoranzahl speichert das größte Sektor-ID auf der durch den Mikroprozessor geschriebenen Spur. Da das Register für die maximale Sektoran­ zahl die obere Grenze des Sektornummerregisters darstellt, wird das Sektornummerregister inkrementiert, wenn die Frage am Ent­ scheidungsblock 14 verneint wird. Wenn der Wert des Sektornum­ merregisters gleich dem Wert des Registers für die maximale Sektoranzahl ist, so folgt daraus, daß das Sektornummerregister die obere Grenze der Spuren erreicht hat und folglich das Sek­ tornummerregister automatisch auf Eins zurückgesetzt wird. Zu der gleichen Zeit, zu der das Sektornummerregister zurückge­ setzt wird, bewirkt dies das Erzeugen eines Übertrags, um das Laufwerk/Kopf-Register entsprechend der Spezifikation des Ope­ rationsblocks 16 zu inkrementieren.
In Fig. 2 ist ein Ablaufdiagramm dargestellt, das die auto­ matische Aktualisierung des Laufwerk/Kopf-Registers ebenso wie die des unteren und des oberen Zylinderregisters beschreibt.
Die Operation gemäß Fig. 2 beginnt am Startblock 21 bzw. vom Leitrechner zum Plattenlaufwerk. Am Schritt 22 wird ein Da­ tensektor vom Plattenlaufwerk zum Leitrechner oder vom Leit­ rechner zum Plattenlaufwerk übertragen. An diesem Punkt fährt das System mit dem Entscheidungsblock 23 fort, und die Frage "Ist der Wert des Kopf-Registers gleich dem Wert des Registers für die maximale Kopfanzahl?" wird gestellt. Wird die Frage be­ jaht, so fährt das System mit dem Schritt 24 fort. Am Schritt 24 wird das Kopf-Register zurückgesetzt und das untere Zylin­ derregister inkrementiert. Das System fährt dann mit dem Ent­ scheidungsblock 26 fort. Am Entscheidungsblock 26 wird über die Frage "Läuft das untere Zylinderregister zu Null über?" ent­ schieden. Wird die Frage verneint, so fährt das System mit dem Schritt 32 fort.
Wenn die Frage am Entscheidungsblock 26 bejaht wird, so wird das obere Zylinderregister am Schritt 28 inkrementiert, und das System fährt dann mit dem Beendigungsblock 32 fort.
Kehren wir zum Entscheidungsblock 23 zurück: Wenn die Frage am Entscheidungsblock 23 verneint wird, so fährt das System mit dem Schritt 30 fort, und das Kopf-Register wird inkrementiert. Das System fährt dann mit dem Beendigungsblock 32 fort.
Eine Blockdarstellung für die Automatisierung der erfin­ dungsgemäßen Task-Dateiregister wird anhand von Fig. 3 be­ schrieben. Fig. 3 enthält einen Datenbus, vier digitale 8-Bit- Vorwärtszähler (Register/Zähler), einen digitalen 4-Bit-Vor­ wärtszähler (Register/Zähler), ein 8-Bit-Datenregister und ein 4-Bit-Datenregister. Das Register für die maximale Sektoranzahl ist ein 8-Bit-Datenregister, das Register für die maximale Laufwerkskopfanzahl ist ein 4-Bit-Datenregister, das Sektor­ zählregister, das Sektornummerregister, das untere und das obere Zylinderregister sind digitale 8-Bit-Vorwärtszähler und das Laufwerk/Kopf-Register ist ein digitaler 4-Bit-Vorwärtszäh­ ler.
Wie in Fig. 3 gezeigt, stellt der Adreß/Daten-Bus 72 des Mikroprozessors Eingangsdaten für sämtliche Register, ein­ schließlich dem Register 40 für die maximale Sektoranzahl, dem Register 42 für die maximale Laufwerk/Kopf-Anzahl, dem Sektor­ zählregister 44, dem Sektornummerregister 46, dem Lauf­ werk/Kopf-Register 48, dem unteren Zylinderregister 50 und dem oberen Zylinderregister 52 zur Verfügung und empfängt die Aus­ gangsdaten von all diesen Registern. Das Sektorzählregister 44 liefert ein Ausgangssignal 45 an den Adreß/Daten-Bus 72 des Mi­ kroprozessors. Das Sektornummerregister 46 stellt ebenfalls ein Ausgangssignal 47 dem Adreß/Daten-Bus 72 des Mikroprozessors zur Verfügung. Das Laufwerk/Kopf-Register 48 liefert ein Aus­ gangssignal 49 an den Mikroprozessor-Adreß/Daten-Bus 72. Das untere Zylinderregister 50 liefert ein Ausgangssignal 51 an den Mikroprozessor-Adreß/Daten-Bus 72. Das obere Zylinderregister 52 liefert ein Ausgangssignal 53 an den Mikroprozessor- Adreß/Daten-Bus 72. Das Register 40 für die maximale Sektoran­ zahl liefert ein Ausgangssignal 41 an den Mikroprozessor- Adreß/Daten-Bus 72. Das Register 42 für die maximale Lauf­ werk/Kopf-Anzahl liefert ein Ausgangssignal 43 an den Mikropro­ zessor-Adreß/Daten-Bus 72. Sämtliche Ausgangssignale 41, 43, 45, 47, 49, 51 und 53 sind invertierte Tri-State-Ausgangssi­ gnale ihrer entsprechenden Register. Auf den Bus 72 kann entwe­ der durch den Mikroprozessor oder durch den Leitrechner zuge­ griffen werden.
Das Rücksetzsignal 70 wird an das Register 40 für die maxi­ male Sektoranzahl, das Register 42 für die maximale Lauf­ werk/Kopf-Anzahl, das Sektorzählregister 44, das Sektornummer­ register 46, das Laufwerk/Kopf-Register 48, das untere Zylin­ derregister 50 und das obere Zylinderregister 52 angelegt. Das Sektorsignal 74 stellt ein Taktsignal für das Sektorzählregi­ ster 44, das Sektornummerregister 46, das Laufwerk/Kopf-Regi­ ster 48, das untere Zylinderregister 50 und das obere Zylinder­ register 52 zur Verfügung. Das Auto-Task-Datei-Freigabesignal 80 wird dem Sektorzählregister 44, dem Sektornummerregister 46, dem Laufwerk/Kopf-Register 48, dem unteren Zylinderregister 50 und dem oberen Zylinderregister 52 zur Verfügung gestellt. Das Sektorzähl-Ladesignal 76 wird dem Sektorzählregister 44 zur Verfügung gestellt. Das Laufwerk/Kopf-Ladesignal 78 wird dem Lauf/Kopf-Register 48 geliefert.
Das untere Zylinder-Ladesignal 82 wird dem unteren Zylin­ derregister 50 zur Verfügung gestellt. Das obere Zylinder-Lade­ signal 84 wird dem oberen Zylinderregister 52 zur Verfügung ge­ stellt. Das Sektornummer-Ladesignal 86 wird an das Sektornum­ merregister 46 geliefert. Die Signale 62 und 68 werden dem Re­ gister 42 für die maximale Laufwerk/Kopf-Anzahl zur Verfügung gestellt, um Lese- bzw. Schreiboperationen freizugeben. Die Si­ gnale 64 und 66 werden dem Register 40 für die maximale Sektor­ anzahl zur Verfügung gestellt, um Lese- bzw. Schreiboperationen freizugeben. Jedes Bit des 8-Bit-Ausgangssignals 88 des Regi­ sters 40 für die maximale Sektoranzahl wird mit jeweils einem von acht getrennten Exklusiv-NOR-Gattern mit jeweils zwei Ein­ gängen gekoppelt, welche in Fig. 3 durch das Exklusiv-NOR-Gat­ ter 54 dargestellt sind. Jedes Bit des 8-Bit-Ausgangssignals 92 vom Sektornummerregister 46 wird ebenfalls mit jeweils einem von acht getrennten, jeweils zwei Eingänge aufweisenden Exklu­ siv-NOR-Gattern 54 gekoppelt. Die acht Ausgangssignale der acht Exklusiv-NOR-Gatter 54 werden dann den acht Eingängen des UND- Gatters 56 zur Verfügung gestellt. Das Ausgangssignal 96 des UND-Gatters 56 wird dem Laufwerk/Kopf-Register 48 als ein "Zählerfreigabe"-Signal zur Verfügung gestellt.
Jedes Bit des 4-Bit-Ausgangssignals 90 des Registers 42 für die maximale Laufwerk/Kopf-Anzahl wird jeweils einem von vier getrennten Exklusiv-NOR-Gattern mit jeweils zwei Eingängen zur Verfügung gestellt, welche in Fig. 3 durch das Exklusiv-NOR- Gatter 58 repräsentiert sind. Außerdem wird jedes Bit des 4- Bit-Ausgangssignals 94 vom Laufwerk/Kopf-Register 48 mit je­ weils einem von vier jeweils zwei Eingänge aufweisenden Exklu­ siv-NOR-Gattern 58 gekoppelt. Die vier getrennten Ausgangssi­ gnale der Exklusiv-NOR-Gatter 58 werden dann vier Eingängen des UND-Gatters 60 zur Verfügung gestellt. Das Ausgangssignal 98 des UND-Gatters 60 wird dann dem unteren Zylinderregister 50 als ein "Zählerfreigabe"-Signal zur Verfügung gestellt.
Wenn sich die Task-Datei in ihrem Anfangszustand befindet, lädt eine externe Schaltungsanordnung (gewöhnlich ein Mikropro­ zessor) die Anzahl der Sektoren, die das Laufwerk benutzt, in das Register 40 für die maximale Sektoranzahl und die Anzahl der Köpfe in das Register 42 für die maximale Laufwerk/Kopf-An­ zahl. Dann wird eine Datenübertragung durch die externe Schal­ tungsanordnung initiiert. Jeweils nachdem ein Sektor übertragen worden ist, erzeugt die externe Schaltungsanordnung einen Im­ puls des Sektorsignals 74. Das Sektorzählregister 44 wird auf der fallenden Flanke des Sektorimpulses 74 um Eins dekremen­ tiert. Wie im Entscheidungsblock 14 gemäß Fig. 1 gezeigt ist, wird der vom Mikroprozessor-Adreß/Daten-Bus 72 empfangene Wert des Sektornummerregisters 46 mit Hilfe der acht Exklusiv-NOR- Gatter 54 mit dem im Register 40 für die maximale Sektoranzahl gespeicherten Wert verglichen. Die Exklusiv-NOR-Gatter 54 emp­ fangen ein 8-Bit-Eingangssignal vom Sektornummerregister 46 ebenso wie vom Register 40 für die maximale Sektoranzahl. Die acht Exklusiv-NOR-Gatter 54 repräsentieren den Entscheidungs­ block 14 gemäß Fig. 1. Wenn alle acht Bit des Sektornummerregi­ sters 40 gleich den acht Bit des Registers 40 der maximalen Sektoranzahl sind (alle acht Exklusiv-NOR-Gatter-Ausgangssi­ gnale sind logisch gleich Eins), so hat das Sektornummerregi­ ster 46 seine obere Grenze erreicht und wird mit Eins geladen, und das Laufwerk/Kopf-Register 48 wird inkrementiert. Diese Entscheidung repräsentiert der Block 16 in Fig. 1, welcher an­ gibt, daß die Sektornummer auf Eins zurückgesetzt ist und daß das Kopf-Register inkrementiert ist.
Wenn - wie in Fig. 3 gezeigt - alle acht durch das UND-Gat­ ter 56 empfangenen Eingangssignale logisch gleich Eins sind, dann liefert das Ausgangssignal 96 des UND-Gatters 56 ein Si­ gnal an das Laufwerk/Kopf-Register 48, um das Register zu in­ krementieren. Wenn nicht alle acht Eingänge des UND-Gatters 56 logisch gleich Eins sind, zeigt dies an, daß das Sektornummer­ register noch nicht seine obere Grenze erreicht hat. Dann wird das Sektornummerregister 46 inkrementiert, wie es im Block 18 gemäß Fig. 1 gezeigt ist, und das Ausgangssignal 96 gibt keine Freigabe zum Zählen des Laufwerk/Kopf-Registers 48. Gleichzei­ tig wird der in den Bits 0-3 des Registers 42 für die maximale Laufwerk/Kopf-Anzahl gespeicherte Wert mit dem Wert der Bits 0- 3 des Laufwerk/Kopf-Registers 48 verglichen. Dieser Vergleich wird in dem Ablaufdiagramm der Fig. 2 beschrieben, welche das Aktualisierungsverfahren für Kopf-, unteres Zylinder- und oberes Zylinderregister veranschaulicht. Dieser Vergleich wird mit Hilfe der vier Exklusiv-NOR-Gatter 58 in Verbindung mit dem vier Eingänge aufweisenden UND-Gatter 60 ausgeführt. Die NOR- Gatter 58 werden durch den Entscheidungsblock 22 gemäß Fig. 2 repräsentiert.
Wenn alle vier Bits des Laufwerk/Kopf-Registers 48 gleich den Bits des Registers 42 für die maximale Laufwerk/Kopf-Anzahl sind (alle vier Exklusiv-NOR-Gatter-Ausgänge logisch gleich Eins sind), so folgt, daß der Wert des Laufwerk/Kopf-Registers gleich dem Wert des Registers für die maximale Laufwerk/Kopf- Anzahl ist. Dann gibt das UND-Gatter 60 das Signal 98 aus, wel­ ches dem unteren Zylinderregister 50 gestattet, um Eins inkre­ mentiert zu werden. Außerdem werden die Bits 3-0 des Lauf­ werk/Kopf-Registers 48 gelöscht, dargestellt durch den Block 24 in Fig. 2. Wenn die letzte Inkrementierung des unteren Zylin­ derregisters das untere Zylinderregister 50 zwingt, zu Null überzulaufen, so gibt das untere Zylinderregister 50 ein Aus­ gangssignal 100 an das obere Zylinderregister 52 aus, das dem oberen Zylinderregister 52 gestattet, seinen Wert zu inkremen­ tieren. Dieses Verfahren folgt den Blöcken 26 und 28 gemäß Fig. 2. Diese Reihenfolge von Schritten zum Aktualisieren der Task- Dateiregister ist erforderlich, damit sich korrekte physikali­ sche Adresse der übertragenen Datensektoren ergibt.
Die Ausgangssignale des Sektorzähl-, Sektornummer-, Lauf­ werk/Kopf-, unteren und oberen Zylinderregisters sind mit dem Datenbus 72 des Leitrechners/Mikroprozessors über getrennte Tri-State-Inverter verbunden. Wenn das BUSY-Signal logisch gleich Null ist, kann der Leitrechner auf diese Register zu­ greifen. Wenn das BUSY-Signal logisch gleich Eins ist, hat der Mikroprozessor Zugriff auf diese Register.
Dieses automatische Aktualisieren der AT-Task-Datei redu­ ziert den Bedarf an Mikroprozessor-Bandbreite für Befehle bei der Unterstützung der AT-Task-Datei. Wenn ein einziger Mikro­ prozessor in Plattenlaufwerken benutzt wird, um alle Laufwerks­ funktionen einschließlich der Schnittstelle zum Leitrechner (mit der Aktualisierung der Task-Datei) zu unterstützen, steht u. U. keine Mikroprozessor-Bandbreite zur Verfügung, um die Task-Dateiregisterwerte aufrechtzuerhalten. Durch Ausführung dieser Funktion ohne Mikroprozessorunterstützung unterstützt die vorliegende Erfindung eine Verringerung der Ausschöpfung der Mikroprozessor-Bandbreite und macht Plattenlaufwerksysteme mit einem einzigen Mikroprozessor effizienter.

Claims (9)

1. Schaltungsanordnung zum Automatisieren des Betriebs von IBM-AT-Task-Dateiregistern (140), die zur Beschaffung der phy­ sikalischen Adresse von übertragenen Datensektoren verwendet werden und eine Schnittstelle zwischen einer Plattenlaufwerks- Steuerschaltung und einem IBM-AT-Computer (120) bilden, gekennzeichnet durch
ein Schnittstellenmittel;
ein mit dem Schnittstellenmittel gekoppeltes erstes Spei­ chermittel (40) zum Speichern der von der Plattenlaufwerks- Steuerschaltung (160, 140) genutzten Anzahl von Sektoren;
ein mit dem Schnittstellenmittel gekoppeltes zweites Spei­ chermittel (42) zum Speichern einer von der Plattenlaufwerks- Steuerschaltung (160, 170) genutzten Anzahl von Köpfen;
ein mit dem Schnittstellenmittel gekoppeltes erstes Zähl­ mittel (44) zum Spezifizieren der Anzahl der zu übertragenden Sektoren;
ein mit dem Schnittstellenmittel gekoppeltes zweites Zähl­ mittel (46) zum Spezifizieren der Startsektornummer für einen Plattendatenzugriff;
ein mit dem Schnittstellenmittel gekoppeltes drittes Zähl­ mittel (48) zum Spezifizieren einer Laufwerks- und Kopfnummer;
ein mit dem Schnittstellenmittel gekoppeltes viertes (50) und fünftes (52) Zählmittel zum Spezifizieren einer Plattenzy­ linderadresse;
ein mit dem ersten Speichermittel (40) und dem zweiten Zählmittel (46) gekoppeltes erstes Vergleichsmittel (54, 56) zum Bestimmen der Aktualisierung des zweiten (46) und des drit­ ten (48) Zählmittels; und
ein mit dem zweiten Speichermittel (42) und dem dritten Zählmittel (48) gekoppeltes zweites Vergleichsmittel (58, 60) zum Bestimmen der Aktualisierung des dritten (48), des vierten (50) und des fünften (52) Zählmittels.
2. Schaltungsanordnung nach Anspruch 1, dadurch gekenn­ zeichnet, daß sie mit der ATA(AT-Anlage)-Spezifikation (der ANSI-Standardisierung der BIOS-Kompatibilität) kompatibel ist.
3. Schaltungsanordnung nach Anspruch 1 oder 2, dadurch ge­ kennzeichnet, daß das erste Zählmittel (44) jeweils nach Über­ tragung einer der Datensektoren zwischen dem Computer (120) und der Plattenlaufwerks-Steuerschaltung (110) automatisch dekre­ mentiert wird und daß das erste Zählmittel (44) einen 8-Bit- Rückwärtszähler mit paralleler Multiplex-Ladung enthält.
4. Schaltungsanordnung nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß das zweite Zählmittel (46) einen 8- Bit-Vorwärtszähler mit paralleler Multiplex-Ladung enthält.
5. Schaltungsanordnung nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß das dritte Zählmittel (48) einen 4- Bit-Vorwärtszähler mit paralleler Multiplex-Ladung enthält.
6. Schaltungsanordnung nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß das vierte (50) und das fünfte (52) Zählmittel jeweils einen 8-Bit-Vorwärtszähler enthalten.
7. Schaltungsanordnung nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß das zweite Vergleichsmittel (58, 60) vier Exklusiv-NOR-Gatter (58) enthält.
8. Schaltungsanordnung nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß das erste Vergleichsmittel (54, 56) acht Exklusiv-NOR-Gatter (54) enthält.
9. Verfahren zum Verbessern der Leistungsfähigkeit eines Mikroprozessors durch Automatisieren der Aktualisierung von AT- Task-Dateiregistern (140) nach Übertragung eines Datensektors in einem sowohl durch einen Leitrechner (120) als auch durch einen Mikroprozessor (110) zugreifbaren AT-Schnittstellenblock (130), gekennzeichnet durch die Schritte:
Speichern der Anzahl der Sektoren in einem Laufwerk;
Speichern der Anzahl der Köpfe in dem Laufwerk;
automatisches Aktualisieren eines Sektorzählregisters je­ weils nach Übertragung einer der Sektoren;
Vergleichen der Anzahl der Sektoren mit dem Wert in einem Sektornummerregister;
Inkrementieren des Werts in dem Sektornummerregister, wenn der Wert des Sektornummerregisters ungleich der Anzahl der Sek­ toren ist;
Laden des Sektornummerregisters mit Eins und Inkrementieren des Werts in einem Laufwerk/Kopf-Register, wenn der Wert des Sektornummerregisters gleich der Anzahl der Sektoren ist;
Vergleichen der Anzahl der Köpfe mit dem Wert in dem Lauf­ werk/Kopf-Register;
Inkrementieren des Werts in dem Laufwerk/Kopf-Register, wenn die Anzahl der Köpfe ungleich dem Wert in dem Lauf­ werk/Kopf-Register ist;
Laden einer Null in das Laufwerk/Kopf-Register und Inkre­ mentieren eines unteren Zylinderregisters, wenn die Anzahl der Köpfe gleich dem Wert in dem Laufwerk/Kopf-Register ist; und
Inkrementieren eines oberen Zylinderregisters nur dann, wenn der Wert in dem unteren Zylinderregister auf Null zurück­ gesetzt worden ist.
DE4225091A 1991-07-31 1992-07-29 Schaltungsanordnung zum automatischen aktualisieren von task-dateiregistern Withdrawn DE4225091A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/738,268 US5280602A (en) 1991-07-31 1991-07-31 Task file with automatic update of task file registers

Publications (1)

Publication Number Publication Date
DE4225091A1 true DE4225091A1 (de) 1993-02-04

Family

ID=24967300

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4225091A Withdrawn DE4225091A1 (de) 1991-07-31 1992-07-29 Schaltungsanordnung zum automatischen aktualisieren von task-dateiregistern

Country Status (5)

Country Link
US (1) US5280602A (de)
JP (1) JP3242703B2 (de)
KR (1) KR100233398B1 (de)
DE (1) DE4225091A1 (de)
GB (1) GB2258327B (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2540768B2 (ja) * 1993-11-12 1996-10-09 日本電気株式会社 セクタid情報の転送機能を持つ磁気ディスクコントロ―ラ
US5805857A (en) * 1994-04-07 1998-09-08 International Business Machines Corporation DASD capacity in excess of 528 megabytes apparatus and method for personal computers
US5909592A (en) * 1994-09-07 1999-06-01 Intel Corporation Method in a basic input-output system (BIOS) of detecting and configuring integrated device electronics (IDE) devices
US6430694B1 (en) * 1998-12-31 2002-08-06 At&T Corp. Method and apparatus for synchronizing the provision of data among geographically distributed databases
US6272565B1 (en) 1999-03-31 2001-08-07 International Business Machines Corporation Method, system, and program for reordering a queue of input/output (I/O) commands into buckets defining ranges of consecutive sector numbers in a storage medium and performing iterations of a selection routine to select and I/O command to execute
US7085873B1 (en) * 2002-06-21 2006-08-01 Cypress Semiconductor Corp. ATA device access system with surrogate registers corresponding to ATA registers
KR100601702B1 (ko) * 2004-09-30 2006-07-18 삼성전자주식회사 Osd 데이터 출력 제어 방법 및 장치
US7493430B2 (en) 2005-07-14 2009-02-17 Quantum Corporation Data flow control and bridging architecture enhancing performance of removable data storage systems

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3771143A (en) * 1972-06-01 1973-11-06 Burroughs Corp Method and apparatus for providing alternate storage areas on a magnetic disk pack
US4210959A (en) * 1978-05-10 1980-07-01 Apple Computer, Inc. Controller for magnetic disc, recorder, or the like
US4425615A (en) * 1980-11-14 1984-01-10 Sperry Corporation Hierarchical memory system having cache/disk subsystem with command queues for plural disks

Also Published As

Publication number Publication date
JPH0793096A (ja) 1995-04-07
KR930002952A (ko) 1993-02-23
GB2258327B (en) 1995-03-29
GB2258327A (en) 1993-02-03
KR100233398B1 (ko) 1999-12-01
JP3242703B2 (ja) 2001-12-25
GB9216149D0 (en) 1992-09-09
US5280602A (en) 1994-01-18

Similar Documents

Publication Publication Date Title
DE2756890A1 (de) Datenverarbeitungssystem
DE8804104U1 (de) Digitalrechner mit programmierbarer DMA-Steuerung
DE19945993B4 (de) Plattenschreibvollendungssystem
DE2813080A1 (de) Einrichtung zur speicheradressierung
DE69119149T2 (de) Struktur zur direkten Speicher-zu-Speicher-Übertragung
DE4018481A1 (de) Mikroprozessor hold- und lock-schaltung
DE2911495A1 (de) Datenverarbeitungsanordnung
DE1524111C3 (de) Elektronische Datenverarbeitungsanlage
DE4225091A1 (de) Schaltungsanordnung zum automatischen aktualisieren von task-dateiregistern
DE3501194C2 (de) Verfahren und Vorrichtung zum Datenaustausch zwischen Mikroprozessoren
DE3688136T2 (de) Verfahren zum Testen und Setzen von Daten in einen Datensatz auf einer Platte in eine atomaren Ein/Ausgabeoperation.
DE2645341C2 (de)
DE69029214T2 (de) Verfahren zur Steuerung und Auswahl von Platten
DE69923103T2 (de) Vorrichtung und Verfahren zur Änderung eines Programms in einem Computersystem
DE2720864A1 (de) Verfahren und anordnung zum lueckenfreien einspeichern einer anzahl von datenblocks unbestimmter laenge
DE19723964A1 (de) Serieller Schnittstellenschaltkreis
DE69220788T2 (de) Kopplerschaltung und ihre verwendung in einer leiterplatte und verfahren hierfür
DE2321200B2 (de) Schaltungsanordnung zur Durchführung logischer Verknüpfungen
DE2720842B2 (de) Datenübertragungssystem
DE69927325T2 (de) Automatisierte Steuerung der Stossbetriebdatenübertragung über einer Nachrichtenverbindung zwischen Einheiten im Blockmodusbetrieb
DE69031768T2 (de) Zweifachbus-Mikrorechneranordnung mit programmierbarer Sperrfunktionssteuerung
DE2517170A1 (de) Ansteuereinrichtung fuer sekundaerspeicher in datenverarbeitungssystemen
DE2610428C3 (de) Anordnung zur Steuerung der Zwischenspeicherung von zwischen zwei Funktionseinheiten zu übertragenden Daten in einem Pufferspeicher
DE3850212T2 (de) Vielfach-CPU-System mit gemeinschaftlichem Speicher.
DE68928462T2 (de) Suchende multitasking-plattensteuerung

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee