DE69325774T2 - Programmierbare Externspeichersteuerungseinrichtung - Google Patents
Programmierbare ExternspeichersteuerungseinrichtungInfo
- Publication number
- DE69325774T2 DE69325774T2 DE69325774T DE69325774T DE69325774T2 DE 69325774 T2 DE69325774 T2 DE 69325774T2 DE 69325774 T DE69325774 T DE 69325774T DE 69325774 T DE69325774 T DE 69325774T DE 69325774 T2 DE69325774 T2 DE 69325774T2
- Authority
- DE
- Germany
- Prior art keywords
- host
- buffer
- program
- memory
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Information Transfer Systems (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf eine programmierbare Steuerungseinrichtung für einen externen Speicher, insbesondere auf eine Steuerungseinrichtung für einen externen Speicher mit einem Programm zur Steuerung der Betriebsabläufe für das Lesen und Beschreiben eines externen Speichers, z. B. eines Plattenlaufwerks.
- Ein Computersystem weist im allgemeinen einen externen Speicher zur Speicherung einer großen Datenmenge auf, der typischerweise eine Speichereinrichtung für direkten Zugriff (DASD) ist. Wenn Daten zwischen einem Host und dem externen Speicher in einem derartigen Computersystem übertragen werden, ist zum Angleichen der Geschwindigkeit gewöhnlicherweise ein Puffer dazwischen angeordnet, da der Host und der externe Speicher verschiedene Datenübertragungsraten haben. Beispielsweise wird in einem Personal Computersystem die Datenübertragung zwischen einem als DASD verwendeten Festplattenlaufwerk (HDD) und einem Host über einen (üblicherweise als Sektorpuffer bezeichneten) Puffer ausgeführt, der eine Kapazität von etwa 32K bis 256K Bytes aufweist. Der Sektorpuffer ist körperlich auf der Seite des HDD vorgesehen, und eine Festplattensteuerungseinrichtung (HDC) liest und beschreibt den Sektorpuffer unter der Steuerung eines Mikroprozessors.
- Bisher speicherte ein Sektorpuffer nur zwischen einem Host und einer Platte zu übertragende Daten, es wurde jedoch eine Technik entwickelt, um durch einen Mikroprozessor, der das gesamte HDD steuert, auf den Sektorpuffer zuzugreifen, wenn keine Host-Platte-Datenübertragung ausgeführt wird. Beispielsweise lehrt die japanische offengelegte, ungeprüfte Patentanmeldung 2-51724, dass ein Pfad zur Verbindung von Daten- und Adressbussen von einem Mikroprozessor zu einem RAM-Datenpuffer in einem Dateidatenprozessor einer Plattensteuerungseinrichtung vorgesehen ist, in der der RAM-Datenpuffer nicht nur während eines Plattenzugriffs als Datenpuffer verwendet wird, sondern auch zur intelligenten Befehlsabarbeitung für eine SCSI (Systemschnittstelle für Kleincomputer), um Fehlerbehandlungsprogramme hierfür zu speichern, und als ein Arbeitsbereich des Mikroprozessors. Der Mikroprozessor kann auf den RAM-Datenpuffer zugreifen, wenn die Platte weder gelesen noch beschrieben wird. Ein Programm, das ermöglicht, dass der Dateidatenprozessor liest oder schreibt, ist in einem Nur-Lese-Speicher (ROM) des Mikroprozessors gespeichert.
- Außerdem ist bekannt, dass ein Host, eine oder mehrere periphere Einheiten einschließlich eines Plattenlaufwerks und ein Mikroprozessor entsprechend einer vorbestimmten Priorität auf einen gemeinsamen Speicher zugreifen. Beispielsweise offenbart die US-Patentschrift 4 987 530 ein Datenverarbeitungssystem, in dem eine einzige Eingabe-/Ausgabesteuerungseinrichtung, die einen Mikroprozessor und einen Pufferspeicher enthält, eine Vielzahl von Eingabe-/Ausgabeeinheiten über die jeweiligen Eingabe-/Ausgabesteuerungseinrichtungen steuert, so dass eine Datenübertragung zwischen den Eingabe-/Ausgabeeinheiten und einem Hauptspeicher einer Host-CPU (zentrale Verarbeitungseinheit) über einen lokalen Speicherbus ausgeführt wird. Der Puf ferspeicher speichert nicht nur über den lokalen Speicherbus zu übertragende Daten, sondern auch Programme für den Mikroprozessor. Eine in einem Gate Array zur Puffersteuerung enthaltene Überwachungseinrichtung entscheidet, auf welche Einheit der Pufferspeicher zugreifen kann. Die europäische Patentanmeldung EPA-0 374 114 (japanische offengelegte, ungeprüfte Patentanmeldung 2-158824) offenbart auch eine ähnliche Speichersteuerungseinrichtung, die einen gemeinsamen Speicher verwendet. Der gemeinsame Speicher ist in einen Datenspeicherbereich für einen Mikroprozessor, einen Datenspeicherbereich für eine Platte und einen Datenspeicherbereich für einen Host aufgeteilt, wobei auf jeden dieser Bereiche entsprechend einer vorbestimmten Priorität wahlweise zugegriffen wird.
- Betriebsabläufe für die Datenübertragung über einen derartigen Puffer wurden gewöhnlicherweise durch eine Logik einer Steuerungseinrichtung wie einer HDC oder durch ein Mikroprozessorprogramm gesteuert. Das bisherige Verfahren unter Verwendung der Hardwarelogik hat den Nachteil von geringerer Erweiterbarkeit und Flexibilität, da die Hardware passend ausgeführt ist, um einen externen Speicher zu steuern, und daher müsste sie überarbeitet werden, wenn der externe Speicher ausgetauscht wird. Im Falle der Programmsteuerung muss nur das Programm neu geschrieben werden, wenn der externe Speicher ausgetauscht wird, ein Mikroprozessor kann aber während einer solchen Datenübertragung, die stets den Eingriff eines Mikroprozessors erfordert, keine andere Aufgabe ausführen. Folglich ist ein Steuerungssystem zur Datenübertragung, das die Vorteile der beiden vorhergehenden Systeme aufweist, wünschenswert.
- Eine Aufgabe der vorliegenden Erfindung besteht darin, eine programmierbare Steuerungseinrichtung für einen externen Spei cher bereitzustellen, in welcher der Eingriff eines Mikro zessors minimal sein kann und die eine bessere Erweiterba und Flexibilität aufweist.
- Eine andere Aufgabe der vorliegenden Erfindung besteht da eine programmierbare Steuerungseinrichtung für einen exte Speicher bereitzustellen, in der ein Steuerungsprogramm zur Datenübertragung in einem Puffer für die Datenübertragung speichert ist und durch eine vom Mikroprozessor unabhängige Ablaufsteuerung in Hardware ausgelesen und ausgeführt wird.
- Eine weitere Aufgabe der vorliegenden Erfindung besteht ein externes Speichersystem bereitzustellen, das eine de ge Steuerungseinrichtung für einen externen Speicher ent
- Zur Lösung der obigen Aufgaben umfasst die programmierbare Steuerungseinrichtung für einen externen Speicher gemäß Erfindung einen Puffer, der zwischen einem Host und einem ternen Speicher zu übertragende Daten vorübergehend spei und darüber hinaus ein Programm speichert, um die Datenüb tragung zwischen dem Host und dem externen Speicher zu s ern; ein Steuerungsmittel, um die Datenübertragung zwischen dem Host und dem externen Speicher zu steuern, indem das Steuerungsprogramm für die Datenübertragung aus dem Puff lesen und ausgeführt wird; und einen Mikroprozessor, der Antwort auf einen Befehl vom Host das Steuerungsmittel s tet, indem er das Steuerungsprogramm für die Datenübertragung liest.
- Der Mikroprozessor enthält einen Speicher, der das oben gebene Steuerungsprogramm für die Datenübertragung zusät zu anderen vom Mikroprozessor auszuführenden Programmen
-
- chert, und lädt das Steuerungsprogramm für die Datenübertragung bei der Initialisierung aus dem Speicher in den Puffer. Dies ermöglicht, dass der Mikroprozessor andere Aufgaben wie eine Steuerung in einer Regelung bearbeitet, während das Steuerungsmittel das Steuerungsprogramm zur Datenübertragung ausführt.
- Gemäß der vorliegenden Erfindung kann die Datenübertragung zwischen einer externen Speichereinrichtung wie einer Festplatte und einem Host in einer von einem Mikroprozessor gesteuerten Steuerungseinrichtung für einen externen Speicher unabhängig von einem Mikroprozessor aufgeführt werden, und es ist möglich, verschiedene externe Speichereinrichtungen zu bedienen, indem nur die in einen Sektorpuffer zu ladenden Programm neu geschrieben werden.
- Fig. 1 ist ein Blockschaltbild, das ein Beispiel für ein Computersystem, in dem die vorliegende Erfindung angewandt ist, zeigt.
- Fig. 2 ist ein Blockschaltbild, das den Aufbau einer Steuerungseinrichtung für einen externen Speicher gemäß der vorliegenden Erfindung zeigt.
- Fig. 3 ist ein Blockschaltbild, das einen beispielhaften Aufbau einer Schnittstellenschaltung zum Host in der Steuerungseinrichtung für einen externen Speicher von Fig. 2 zeigt.
- Fig. 4 ist ein Blockschaltbild, das einen beispielhaften Au bau einer Speichersteuerungsschaltung in der Steuerungseinrichtung für einen externen Speicher von Fig. 2 zeigt.
- Fig. 5 ist ein Blockschaltbild, das einen beispielhaften Au bau einer Schnittstellenschaltung zur Platte in der Steuerungseinrichtung für einen externen Speicher von Fig. 2 zeigt.
- Fig. 6 ist ein Blockschaltbild das eine beispielhaften Aufb einer Ablaufsteuerung in der Steuerungseinrichtung für eine externen Speicher von Fig. 2 zeigt.
- Fig. 7 zeigt Beispiele für einen zeitverschachtelten Betrie modus für einen Sektorpuffer.
- Fig. 8 ist ein Flussdiagramm, das eine erste Hälfte eines Be sesteuerungsprogramms zeigt.
- Fig. 9 ist ein Flussdiagramm, das eine zweite Hälfte des Le steuerungsprogramms zeigt.
- Fig. 1 zeigt einen schematischen Aufbau eines Computersystems das eine Steuerungseinrichtung für einen externen Speicher mäß der vorliegenden Erfindung enthält. In der vorliegenden Ausführung wird angenommen, dass der externe Speicher ein Festplattenlaufwerk ist, die vorliegende Erfindung kann aber auch auf jeglichen externen Speicher, der eine Datenübertragung mit einem Host über einen Puffer ausführt, angewandt werden.
-
- Das Computersystem von Fig. 1 kann beispielsweise ein Personal Computersystem sein und enthält einen Host 10 und ein externes Speichersystem, das über einen Rostbus 12 mit dem Host 10 verbunden ist. Obwohl in der Figur nicht gezeigt, können Peripherieeinrichtung wie ein Bildschirm und eine Tastatur an den Host 10 angeschlossen sein. Das externe Speichersystem umfasst eine Festplatteneinrichtung 14, die in Antwort auf einen Befehl vom Host 10 zu lesen oder zu beschreiben ist, einen Sektorpuffer 16, der Daten, die vom Host 10 an die Festplatteneinrichtung 14 zu schreiben sind, oder Daten, die an den Host 10 von der Festplatteneinrichtung 14 auszulesen sind, vorübergehend speichert, eine Festplattensteuerungseinrichtung (HDC) 18, die über den Sektorpuffer 16 eine Datenübertragung ausführt, und einen Mikroprozessor 20, der das gesamte externe Speichersystem steuert, wobei der Sektorpuffer 16, die HDC 18 und der Mikroprozessor 20 die Steuerungseinrichtung für einen externen Speicher gemäß der vorliegenden Erfindung bilden. Nachfolgend wird die Steuerungseinrichtung für einen externen Speicher der vorliegenden Erfindung beschrieben, indem ein Personal Computersystem als Beispiel herangezogen wird, in dem der Hostbus 12 ein bekannter AT-Bus ist, ein Sektor 512 Datenbytes enthält und ein Wort aus zwei Bytes besteht, obwohl die vorliegende Erfindung auch in anderen Computersystemen ausgeführt werden kann.
- Fig. 2 zeigt die oben genannte Steuerungseinrichtung für einen externen Speicher detaillierter. In Fig. 2 ist der Sektorpuffer 16 in einen Datenspeicherbereich 16A und einen Programmspeicherbereich 16B wie gemäß der vorliegenden Erfindung vorgesehen aufgeteilt. Der Sektorpuffer 16, auf den wortweise zugegriffen wird, hat eine Kapazität von 64K Worten (128K Bytes), und die Speicherbereiche 16A und 16B enthalten jeweils 32K Worte (64K Bytes). Folglich ist eine Startwortadresse des Programmspeicherbereichs 16B X'8000'. X kennzeichnet hexadezimale Schreibweise. Natürlich sind diese Werte nur zum Zweck der Veranschaulichung angegeben, und die vorliegende Erfindung ist nicht darauf beschränkt. Der Mikroprozessor 20 enthält einen Speicher für wahlfreien Zugriff (RAM) 30 und einen Nur- Lese-Speicher (ROM) 32, der ein Programm zur Steuerung der Datenübertragung über den Sektorpuffer 16 zusätzlich zu anderen Programmen zur Steuerung des gesamten externen Speichersystem speichert. Bei Programmänderungen wäre der ROM 32 zu ersetzen.
- Bei der Initialisierung, beispielsweise bei einem Rücksetzen nach dem Einschalten (dies kann als das erstmalige Laden eines Programms bezeichnet werden), wird das Steuerungsprogramm für die Datenübertragung aus dem ROM 32 in den Programmspeicherbereich 16B geladen. Da die Startadresse des Programmspeicherbereichs 16B vorbekannt ist (X'8000' im obigen Beispiel), schreibt der Mikroprozessor 20 das Steuerungsprogramm für die Datenübertragung, indem er Adressen, die ausgehend von der Startadresse jeweils um eins fortlaufend inkrementiert werden, an den Sektorpuffer 16 sendet. Das Steuerungsprogramm für die Datenübertragung enthält ein Lesesteuerungsprogramm, welches das Lesen von der Festplatteneinrichtung 14 an den Host 10 steuert, und ein Schreibsteuerungsprogramm, welches das Schreiben vom Host 10 an die Festplatteneinrichtung 14 steuert. In dieser Ausführung wird angenommen, dass das Lesesteuerungsprogramm zuerst beginnend mit der Startadresse des Programmspeicherbereichs 16B fortlaufend geschrieben wird und dann das Schreibsteuerungsprogramm beginnend mit beispielsweise der Adresse X'9000' geschrieben wird, obwohl die Reihenfolge dieser Schreibvorgänge in den Programmspeicherbereich 16B des Sektorpuffers 16 umgekehrt werden kann.
- In Fig. 2 umfasst die durch punktierte Linien umrandete HDC 18 eine Schnittstellenschaltung 22 zum Host, die mit dem Hostbus 12 verbunden ist, eine Speichersteuerungsschaltung 24, um den Zugriff auf den Sektorpuffer 16 zu steuern, eine Schnittstellenschaltung 26 zur Platte, die mit der Festplatteneinrichtung 14 verbunden ist, und eine Ablaufsteuerung 28, um die Betriebsabläufe der HDC 18 zu steuern. Die Schnittstellenschaltung 22 zum Host und die Schnittstellenschaltung 26 zur Platte können solche sein, die in der gewöhnlichen HDC verwendet werden. Die Schnittstellenschaltung 22 zum Host tauscht mit dem Host 10 über den Hostbus 12 Daten und Befehle aus und enthält mehrere Register und eine Interruptsteuerungsschaltung. Die Speichersteuerungsschaltung 24 ist mit der Schnittstellenschaltung 22 zum Host, der Schnittstellenschaltung 26 zur Platte und der Ablaufsteuerung 28 verbunden und steuert die Datenübertragung zwischen dem Sektorpuffer 16 und diesen Schaltungen. Die Schnittstellenschaltung 26 zur Platte enthält eine gut bekannte Schaltung, um Umsetzungs- und Überprüfungsvorgänge, die zwischen der Festplatteneinrichtung 14 und der HDC 18 erforderlich sind, auszuführen. Die Ablaufsteuerung 28 liest ein Programm und erforderliche Parameter, die im Programmspeicherbereich 16B des Sektorpuffers 16 gespeichert sind, um die Datenübertragung über den Sektorpuffer 16 unabhängig vom Mikroprozessor 20 zu steuern, wenn die Festplatteneinrichtung 14 gelesen oder beschrieben wird.
- Zusätzlich zu den obigen Schaltungen 22, 24, 26 und 28 enthält die HDC 18 tatsächlich noch gut bekannte Schaltungen, die jeweils einen Schwingspulenmotor (VCM) zur Bewegung eines Kopfes der Festplatteneinrichtung 14 und einen Spindelmotor zum Antrieb einer Platte steuern, wobei aber solche Schaltungen in Fig. 2 nicht gezeigt sind, da sie sich nicht auf die vorliegende Erfindung beziehen. Obwohl in Fig. 2 nicht gezeigt, um zu verhindern, dass die Figur zu komplex wird, ist der Mikroprozessor 20 außerdem nicht nur mit der Ablaufsteuerung 28, sondern auch mit allen anderen Schaltungen verbunden. Unter Bezugnahme auf Fig. 3 bis Fig. 6 werden nunmehr jeweils die Schnittstellenschaltung 22 zum Host, die Speichersteuerungsschaltung 24, die Schnittstellenschaltung 26 zur Platte und die Ablaufsteuerung 28 beschrieben.
- Die in Fig. 3 gezeigte Schnittstellenschaltung 22 zum Host kann von herkömmlicher Art wie oben beschrieben sein und enthält mehrere Register, die durch eine Registerauswahl- und Interruptsteuerungsschaltung 40, d. h. ein Sektorzählregister 42, ein Adressregister 44, ein Befehlsregister 46 und ein Datenregister 48, ausgewählt werden. Das Sektorzählregister 42 hält die Anzahl von zu lesenden oder zu beschreibenden Sektoren, das Adressregister 44 hält deren Startadresse (relative Blockadresse RBA, die eine Zylindernummer, eine Kopfnummer und eine Sektorennummer umfasst), das Befehlsregister 46 hält einen Befehlscode, und das Datenregister 48 hält Daten, die vom Host 10 an die Festplatteneinrichtung 14 auszugeben sind, oder Daten, die von der Festplatteneinrichtung 14 an den Host 10 auszulesen sind. Diese Register werden durch Informationen, die vom Host 10 über den Bus 12 an die Registerauswahl- und Interruptsteuerungsschaltung 40 bereitgestellt werden, ausgewählt. Gleichzeitig erzeugt die Schaltung 40 ein Signal Si (i = 1, 2, 3, ...), um ein bestimmtes Register auszuwählen. Dann gibt die Schaltung 40 ein Eingabe-/Ausgabelesesignal IOR oder Eingabe- /Ausgabeschreibsignal IOW vom Host 10 an die Ablaufsteuerung 28 ab, wenn der Host 10 das Datenregister 48 mit einfacher Wortbreite liest oder beschreibt, zählt die Anzahl der Lese- oder Schreibvorgänge am Datenregister 48 und erzeugt und sendet ein Interruptsignal INT an den Host 10, wenn dieser Zählvorgang 256 Wörter (512 Bytes oder einen Sektor) erreicht. In Antwort auf das Interruptsignal INT überträgt der Host 10 die Daten des nächsten Sektors und liest den Zustand der HDC 18. Die japanische Patentanmeldung 3-337995 offenbart ein Beispiel für eine solche Schnittstellenschaltung zum Host.
- Obwohl Fig. 3 nur vier zum Verständnis der vorliegenden Erfindung erforderliche Register zeigt, sind tatsächlich mehr Register einschließlich eines Statusregisters vorgesehen, wie dies in der Anlage AT, die ein Standardisierungsvorschlag für die AT-Schnittstelle ist, beschrieben ist.
- Die Speichersteuerungsschaltung 24 der Fig. 4 enthält drei First-in-First-out-Puffer (FIFO) 54, 56 und 58, die an einen Einwortdatenbus 52 des Sektorpuffers 16 angeschlossen sind, drei Adresszähler 62, 64 und 66, die an einen Einwortadressbus 60 des Sektorpuffers 16 angeschlossen sind, und eine Speicherzeitsteuerungsschaltung 68, die durch den Mikroprozessor 20 gestartet wird. Der FIFO 54 für den Host ist zwischen die Schnittstellenschaltung 22 zum Host und den Sektorpuffer 16 geschaltet, der FIFO 56 für die Platte ist zwischen die Schnittstellenschaltung 26 zur Platte und den Sektorpuffer 16 geschaltet, und der FIFO 58 für die Ablaufsteuerung ist zwischen die Ablaufsteuerung 28 und den Sektorpuffer 16 geschaltet. Diese drei FIFO 54, 56 und 58 dienen als Puffer, um Geschwindigkeitsunterschiede auszugleichen, und es ist daher wünschenswert, dass sie eine Kapazität aufweisen, die von den Datenübertragungsraten des Hosts 10, der Festplatteneinrichtung 14 bzw. der Ablaufsteuerung 28 abhängt. Im allgemeinen hat der Host 10 die höchste Datenübertragungsrate, gefolgt von der Ablaufsteuerung 28, und die Festplatteneinrich am langsamsten. In der vorliegenden Ausführung we 54 für den Host, der FIFO 58 für die Ablaufsteuer FIFO 56 für die Platte eine Kapazität von 8 Worte bzw. 8 Bytes auf. Natürlich sind diese Kapazitäts Zweck der Veranschaulichung angegeben, und die vo findung ist nicht darauf beschränkt.
- Unter den drei FIFO wird auf den FIFO 54 für den FIFO 58 für die Ablaufsteuerung auf Basis eines w griffen, während auf den FIFO 56 für die Platte chen auf Basis eines Bytes zugegriffen wird, da zwischen dem FIFO 56 für die Platte und der Schni schaltung 26 zur Platte ein Byte beträgt. Da aber gung zwischen dem Sektorpuffer 16 und dem FIFO 5 Platte auf Basis eines Worts ausgeführt wird, ist für die Platte am Verbindungsanschluss zum Daten nem Byte/Wort-Umsetzer 57 versehen. Der Umsetzer des Wort vom Sektorpuffer 16 beim Schreiben vom 16 an den FIFO 56 für die Platte in zwei Bytes a andererseits ein Wort aus zwei aufeinander folge sammen und gibt das Wort beim Schreiben vom FIFO Platte an den Sektorpuffer 16 auf den Datenbus 5 tenbus 52 und der Adressbus 60 sind ebenfalls mi prozessor 20 verbunden, so dass der Mikroprozess auf den Sektorpuffer 16 zugreifen kann. Dieser Z forderlich, um bei der Initialisierung das Steue für die Datenübertragung aus dem ROM 32 des Mikr in den Programmspeicherbereich 16B des Sektorpuf den.
-
- Wie in der Technik gut bekannt ist, wird auf die FIFO 54, 56 und 58 durch jeweilige Lesezeiger RP und Schreibzeiger WP zugegriffen. Jeder Zeiger ist umlaufend ausgebildet und kehrt auf Null zurück, nachdem eine maximale Adresse des zugeordneten FIFO erreicht ist. Wenn nicht RP = WP und RP = WP + 1 gilt, kann jeder FIFO gleichzeitig einen Lesevorgang unter Verwendung des RP und einen Schreibvorgang unter Verwendung des WP ausführen. RP = WP zeigt an, dass im FIFO keine zu lesenden Daten vorliegen und folglich in diesem Fall nur ein Schreibvorgang erlaubt ist. RP = WP + 1 zeigt an, dass der FIFO mit noch nicht gelesenen Daten gefüllt ist und folglich nur ein Lesevorgang erlaubt ist. Diese Bedingungen werden durch die Speicherzeitsteuerungsschaltung 68 überprüft.
- Durch die Speicherzeitsteuerungsschaltung 68 und zugeordnete Schaltungen werden Inkrementierungssignale (+1) für RP und WP bereitgestellt. Zur Vereinfachung ist in Fig. 4 nur ein Inkrementierungssignal von der Speicherzeitsteuerungsschaltung 68 gezeigt, tatsächlich aber wird für jeden RP und WP einzeln ein Inkrementierungssignal bereitgestellt. RP und WP werden durch einzelne Inkrementierungssignale von der Speicherzeitsteuerschaltung 68 im Fall der Übertragung zwischen dem zugeordneten FIFO und dem Sektorpuffer 16 inkrementiert und werden durch die Inkrementierungssignale aus den jeweils zugeordneten Schaltungen im Fall der Übertragung zwischen jedem FIFO und der zugeordneten Schaltung inkrementiert. Beispielsweise wird der RP 70 durch das Eingabe-/Ausgabelesesignal IOR aus der in Fig. 3 gezeigten Registerauswahl- und Interruptsteuerungsschaltung 40 inkrementiert, wenn der Inhalt des FIFO 54 für den Host an die Schnittstellenschaltung 22 zum Host ausgelesen wird, und der WP 72 wird durch das Eingabe-/Ausgabeschreibsignal IOW inkrementiert, wenn Daten aus der Schnittstellenschal tung 22 zum Host in den FIFO 54 geschrieben werden. In ähnlicher Weise werden der RP 74 und WP 76 durch ein Bytesignal aus der Schnittstellenschaltung 26 zur Platte im Fall der Übertragung zwischen dem FIFO 56 für die Platte und der Schnittstellenschaltung 26 zur Platte inkrementiert, und der RP 78 und WP 80 werden durch ein Inkrementierungssignal von der Ablaufsteuerung 28 im Fall der Übertragung zwischen dem FIFO 58 für die Ablaufsteuerung und der Ablaufsteuerung 28 inkrementiert.
- Die Adresszähler 62, 64 und 66 werden verwendet, um den Sektorpuffer 16 zu adressieren. Da die Kapazität des Sektorpuffers 16 in dieser Ausführung 64K Worte beträgt, ist zu seiner vollständigen Adressierung eine 16-Bit-Adresse erforderlich, und folglich hat jeder der Adresszähler eine Breite von 16 Bit. Die 16-Bit-Adresse ist in eine Zeilenadresse, die aus 8 höherwertigen Bits besteht, und eine Spaltenadresse, die aus 8 niedrigerwertigen Bits besteht, aufgeteilt und wird an den 8- Bit-Adressbus 60 ausgegeben. Ein Reihenadressauswahlsignal RAS und ein Spaltenadressauswahlsignal CAS von der Speicherzeitsteuerungsschaltung 68 zeigen an, welche Adresse über den Adressbus 60 gerade übertragen wird. Jeder Adresszähler wird durch Steuerungssignale aus der Speicherzeitsteuerungsschaltung 68 freigegeben und inkrementiert, wenn Daten zwischen dem zugeordneten FIFO und dem Sektorpuffer 16 übertragen werden. Während dieser Zeit setzt die Speicherzeitsteuerungsschaltung 68 ein Signal R/W für das Lesen vom und Schreiben zum Sektorpuffer 16 auf HIGH bzw. auf LOW. Darüber hinaus überprüft die Speicherzeitsteuerungsschaltung 68 fortlaufend den Inhalt jedes RP und WP und bestimmt darauf basierend die Zugriffszeiten für den Sektorpuffer 16. Als nächstes wird für den Sektorpuffer 16 das Zugriffszeitverhalten unter Bezugnahme auf Fig. 7 beschrieben.
- Fig. 7 (A) zeigt einen Standardzugriff in einem zeitverschachtelten Modus, in dem ein Zugriffszyklus des Sektorpuffers 16 in eine Hostphase, eine Plattenphase und eine Ablaufsteuerungsphase aufgeteilt ist. Entsprechend dem Zugriffszyklus wird zuerst eine Übertragung von maximal 8 Worten zwischen dem FIFO 54 für den Host und dem Sektorpuffer 16 unter Verwendung des Hostadresszählers 62 ausgeführt, dann wird eine Übertragung von maximal. 5 Worten zwischen dem FIFO 56 für die Platte und dem Sektorpuffer 16 unter Verwendung des Plattenadresszählers 64 ausgeführt und schließlich wird eine Übertragung von maximal 6 Worten zwischen dem FIFO 58 für die Ablaufsteuerung und dem Sektorpuffer 16 unter Verwendung des Ablaufsteuerungsadresszählers 66 durchgeführt. Die Speicherzeitsteuerungsschaltung 68 wiederholt den Zyklus, bis keine weiteren zu übertragenden Daten mehr vorliegen. In jeder Phase ist die Zugriffszeit für das erste Wort 1 länger, was auf einer Seitenzugriffsbetriebsart beruht. Dies bedeutet, dass auf das erste Wort zugegriffen werden sollte, indem nacheinander eine Zeilenadresse und eine Spaltenadresse vom zugeordneten Adresszähler an den Sektorpuffer 16 angelegt werden, während auf die übrigen Worte nur durch Spaltenadressen zugegriffen werden kann. Fig. 7 (B) zeigt einen Fall, in dem der Host 10 eine höhere Datenübertragungsrate aufweist, und eine Hostphase zum Zugriff auf 8 Worte nach jeder zweiten Phase eingefügt wird.
- Wenn im zeitverschachtelten Modus von Fig. 7 (A)/(B) keine Daten vom Host mehr vorliegen, geht die Speicherzeitsteuerungsschaltung 68 in die durch (C) gezeigte Betriebsart über und wiederholt abwechselnd Platten- und Ablaufsteuerungsphasen. Wenn außerdem keine Daten von der Platte mehr vorliegen, beispielsweise wenn eine Sektor-ID ausgelesen wird, frischt die Speicherzeitsteuerungsschaltung 68 den Sektorpuffer 16 während der Plattenphase in jeder Betriebsart wieder auf. Das IBM Technical Disclosure Bulletin, Band 33, Nr. 9, Februar 1991, Seiten 193-194 beschreibt eine Wiederauffrischungssteuerung, die für ein solches Wiederauffrischen geeignet ist. Ein statisches RAM (SRAM), das kein Wiederauffrischen erfordert, kann anstelle des Sektorpuffers 16 verwendet werden, ist aber verglichen mit einem DRAM teurer. Wenn es darüber hinaus unmöglich wird, einem Zugriff in einer bestimmten Phase aufgrund der oben angegebenen Bedingungen für den RP und WP fortzusetzen, wird in der Phase der Zugriff zu diesem Zeitpunkt beendet, und ein neuer Zugriff wird in der folgenden Phase begonnen.
- Es wird nunmehr der Zugriff auf den Sektorpuffer 16 im zeitverschachtelten Modus detaillierter unter Bezugnahme auf ein Beispiel, bei dem von der Festplatteneinrichtung 14 an den Host 10 ausgelesen wird, beschrieben. Da am Anfang aus dem Sektorpuffer an den FIFO für den Host zu schreibende Daten nicht vorliegen, legt die Speicherzeitsteuerungsschaltung 68 den zeitverschachtelten Modus (C) fest. Von der Festplatteneinrichtung 14 ausgelesene Daten werden durch aufeinanderfolgendes Inkrementieren des WP 76 unter der Steuerung der Schnittstellenschaltung 26 byteweise an den FIFO 56 für die Platte geschrieben. Wenn ein Unterschied zwischen dem RP 74 und dem WP 76 einen vorbestimmten Wert (z. B. 4) überschreitet, beginnt die Speicherzeitsteuerungsschaltung 68 eine Übertragung aus dem FIFO 56 für die Platte an den Sektorpuffer 16, indem der Plattenadresszähler 64 freigegeben wird, das Signal R/W an den Sektorpuffer 16 auf LOW gesetzt wird und nacheinander die Signale RAS und CAS an den Sektorpuffer 16 gesandt werden. Ein Lesen aus dem FIFO 56 für die Platte wird ausge führt, indem der RP 74 durch das Inkrementierungssignal von der Speicherzeitsteuerungsschaltung 68 jeweils um eins inkrementiert wird und indem zwei aufeinander folgende Bytes im Byte/Wort-Umsetzer 57 in ein Wort umgesetzt werden. Das Schreiben von der Schnittstellenschaltung 26 zur Platte in den FIFO 56 für die Platte und das Lesen vom FIFO 56 für die Platte in den Sektorpuffer 16 kann gleichzeitig ausgeführt werden, sofern die Werte des RP 74 und WP 76 die obige Bedingung erfüllen.
- Wenn fünf Worte vom FIFO 56 für die Platte an den Sektorpuffer 16 übertragen worden sind, beginnt die Speicherzeitsteuerungsschaltung 68 die Übertragung vom Sektorpuffer 16 an den FIFO 58 für die Ablaufsteuerung, indem der Zugriff des Sektorpuffers 16 auf die Ablaufsteuerungsphase umgeschaltet und der Ablaufsteuerungsadresszähler 66 freigegeben wird. Der Ablaufsteuerungsadresszähler 66 wird auf eine Startadresse des Programmspeicherbereichs 16B vorgesetzt, d. h. eine Adresse des ersten Befehlsworts des obigen Lesesteuerungsprogramms, und das erste bis sechste Befehlswort werden während der Ablaufsteuerungsphase fortlaufend an den FIFO 58 für die Ablaufsteuerung übertragen. Die Speicherzeitsteuerungsschaltung 68 führt eine derartige Übertragung aus, indem der Ablaufsteuerungsadresszähler 66 und der WP 80 jeweils um eins inkrementiert werden. Wenn ein Unterschied zwischen dem RP 78 und dem WP 80 einen vorbestimmten Wert (z. B. 3) überschreitet, beginnt die Speicherzeitsteuerungsschaltung 68 die Übertragung vom FIFO 58 für die Ablaufsteuerung an die Ablaufsteuerung 28. Die Ablaufsteuerung 28 liest den FIFO 58 für die Ablaufsteuerung, indem der RP 78 jeweils um eins inkrementiert wird. Wenn sechs Worte aus dem Sektorpuffer 16 an den FIFO für die Ablaufsteue rung 28 übertragen worden sind, wechselt die Speicherzeitsteuerungsschaltung 68 wiederum auf die Plattenphase.
- Wenn ein Datensektor, d. h. 512 Byte Daten, an den Sektorpuffer 16 infolge des Zugriffs im zeitverschachtelten Modus (C) fehlerlos geschrieben worden ist, schaltet die Speicherzeitsteuerungsschaltung 68 den zeitverschachtelten Modus nach Vollendung der Ablaufsteuerungsphase von (C) auf (A) oder (B) um, um die Daten an den FIFO 54 für den Host zu übertragen, und beginnt die Übertragung vom Sektorpuffer 16 an den FIFO 54 für den Host, indem der Hostadresszähler 62 freigegeben wird. Wenn acht Worte vom Sektorpuffer 16 an den FIFO 54 für den Host übertragen worden sind, indem der Hostadresszähler 62 und der WP 72 jeweils um eins inkrementiert wurden, schaltet die Speicherzeitsteuerungsschaltung 68 die Phase von Host auf Platte um. Wenn ein Unterschied zwischen dem RP 70 und dem WP 72 einen vorbestimmten Wert (z. B. 4) während der Übertragung erreicht, steuert die Speicherzeitsteuerungsschaltung 68 die Schnittstellenschaltung 22 zum Host, um den FIFO 54 für den Host zu lesen. Als Antwort darauf überträgt die Schnittstellenschaltung 22 zum Host das erste Wort an das Datenregister 48 und unterbricht dann den Host 10. Der Host 10 antwortet auf die Unterbrechung, indem ein Befehl gesendet wird, um das Datenregister 48 an die Schnittstellenschaltung 22 zum Host auszulesen. Die Schnittstellenschaltung 22 zum Host liest das nächste Wort vom FIFO 54 für den Host an das Datenregister 48 aus, indem das vom Host 10 gleichzeitig gesendete Eingabe-/ Ausgabelesesignal IOR als ein Inkrementierungssignal für den RP 70 verwendet wird, und unterbricht den Host 10. Ähnliche Abläufe werden danach wiederholt.
- Wie oben beschrieben wird ein Lesen von der Festplatteneinrichtung 14 an den Host 10 ausgeführt, indem die Zugriffszyklen in den zeitverschachtelten Modi (A) oder (B) und (C) wiederholt werden. Ein Schreiben vom Host 10 an die Festplatteneinrichtung 14 wird ebenfalls in einer ähnlichen Weise ausgeführt. Die Ablaufsteuerung 28 steuert ein derartiges Lesen und Schreiben, indem das aus dem Sektorpuffer 16 in der Ablaufsteuerungsphase gelesene Programm ausgeführt wird (Details werden später beschrieben).
- Die in Fig. 5 gezeigte Schnittstellenschaltung 26 zur Platte enthält einen Parallel-Seriell-Umsetzer 82, um ein Byte paralleler Daten vom FIFO 56 für die Platte in serielle Daten umzusetzen, und einen Seriell-Parallel-Umsetzer 84, um serielle Daten von der Festplatteneinrichtung 14 in ein Byte paralleler Daten umzusetzen. Die seriellen Daten vom Parallel-Seriell- Umsetzer 82 werden an die Festplatteneinrichtung 14 gesandt, nachdem sie in analoge Signale umgesetzt worden sind, und werden nacheinander an eine bestimmte Sektorstelle geschrieben. Die parallelen Daten vom Seriell-Parallel-Umsetzer 84 werden an ein ID-Register 86 gesandt, falls es sich um eine Sektor-ID handelt, oder an den FIFO 56 für die Platte und eine ECC-(Fehlerkorrekturlogikschaltung)-Schaltung 88 gesandt, falls es sich um normale Sektordaten handelt. Wie in der Technik gut bekannt ist, wird eine Sektor-ID in einem anführenden Abschnitt jedes Sektors in der Festplatteneinrichtung 14 gespeichert und enthält eine Adressmarkierung (AM) und eine relative Blockadresse (RBA). Eine ID eines für einen Zugriff vorgesehenen Sektors wird vorher im ID-Register 86 durch den Mikroprozessor 20 gesetzt, und eine Fehlererkennungs- und Vergleichsschaltung 90 teilt der Ablaufsteuerung 28 einen ID-Fehler mit, wenn die Sektor-ID vom Seriell-Parallel-Umsetzer 84 und die vorgesetzte Sektor-ID nicht miteinander übereinstimmen oder wenn ein Fehler in der Sektor-ID aus dem Seriell-Parallel-Umsetzer 84 vorliegt.
- Wenn ein Fehler in den aus der Festplatteneinrichtung 14 ausgelesenen Sektordaten vorliegt, gibt die ECC-Schaltung 88, die eine gut bekannte Fehlerkorrekturlogikschaltung ist, entweder ein korrigierbares oder nichtkorrigierbares Fehlersignal aus, was davon abhängt, ob der Fehler korrigierbar ist oder nicht, und gibt darüber hinaus Signale aus, die seine Fehlerposition und ein Fehlermuster im Fall des korrigierbaren Fehlers angeben. Als Antwort auf diese Signale korrigiert die Ablaufsteuerung 28 den Fehler. Um vom Host 10 aus zu schreiben, erzeugt die ECC-Schaltung 88 einen 11-Byte-ECC-Code für alle 512-Byte- Sektordaten, die nacheinander vom FIFO 56 für die Platte gesandt werden, und sendet ihn an den Parallel-Seriell-Umsetzer 82. Eine Fehlerüberprüfung für zu schreibende Daten wird nicht ausgeführt.
- Der Seriell-Parallel-Umsetzer 84 gibt jedesmal dann ein Bytesignal an eine Leitung 92 aus, wenn die Umsetzung eines Bytes vollendet ist. Ein Zähler 94 zählt das Bytesignal, erzeugt ein Signal auf einer Leitung 96, um die Sektor-ID in das ID-Register 86 zu laden, während diese Sektor-ID vom Seriell-Parallel-Umsetzer 84 ausgegeben wird (z. B. das erste bis siebte Byte), und erzeugt ein Signal auf einer Leitung 98, um während der nachfolgenden 523 Bytes die Ausgabe des Seriell-Parallel- Umsetzers 84 in die ECC-Schaltung 88 zu laden, d. h., dass 512 Datenbytes und 11 ECC-Bytes ausgegeben werden. Darüber hinaus aktiviert der Zähler 94 eine Leitung 100, um ein UND-Gatter 102 vorzubedingen, während die 512 Datenbytes ausgegeben werden. Ein zweiter Eingang des UND-Gatters 102 ist mit der Lei tung 92 verbunden, so dass das UND-Gatter 102 das Bytesignal auf der Leitung 32 an eine Leitung 104 weitergibt, während die Sektordaten von 512 Bytes von der Festplatteneinrichtung 14 gelesen werden. Das Bytesignal auf der Leitung 104 wird dem WP 76 in Fig. 4 als ein Inkrementierungssignal zugeführt. Wenn das Lesen der 512 Datenbytes abgeschlossen ist, erzeugt der Zähler 94 ein Sektorsignal auf einer Leitung 106 und sendet es an die Ablaufsteuerung 28. Als Antwort auf das Sektorsignal erneuert die Ablaufsteuerung 28 einen Sektorzählwert.
- Die in Fig. 6 gezeigte Ablaufsteuerung 28 enthält einen Adressgenerator 112 zusätzlich zu einer herkömmlichen Arithmetik- und Logikeinheit (ALU) 110. Eingangssignale an die ALU werden von einem A-Register 114 und einem B-Register 116 bereitgestellt, von denen jedes als Akkumulator dient, und ihr Ausgangssignal wird Arbeitsregistern 118 bereitgestellt. Eingangssignale an den Adressgenerator 112 werden von einem Coderegister 120 und dem Ablaufsteuerungsadresszähler 66 in Fig. 4 bereitgestellt, und sein Ausgangssignal wird dem Ablaufsteuerungsadresszähler 66 und einem Arbeitsregisterwählschalter 122 bereitgestellt. Der Arbeitsregisterwählschalter 122 wählt ein Arbeitsregister in Antwort auf eine Adresse vom Adressgenerator 112 aus. Der hier verwendete Ausdruck "Arbeitsregister" ist ein funktionsbezogener Ausdruck und bezieht sich auf jedes in der HDC 18 enthaltene Register. Dies bedeutet, dass die Ablaufsteuerung 28 auf jedes Register in der HDC 18 zugreifen kann und folglich jede Schaltung in der HDC 18 steuern kann.
- Das A-Register 114 und B-Register 116 empfangen von den Arbeitsregistern 118 oder dem in Fig. 4 gezeigten FIFO 58 für die Ablaufsteuerung Daten, und das Coderegister 120 empfängt einen Programmbefehl vom FIFO 58 für die Ablaufsteuerung. Ein Decoder 124 decodiert den Programmbefehl und erzeugt auf den Leitungen 126 und 128 Steuerungssignale, die bewirken, dass die ALU 110 bzw. der Adressgenerator 112 bestimmte Operationen ausführen. In Antwort auf das Steuerungssignal auf der Leitung 126 führt die ALU 110 eine arithmetische Operation wie eine Addition, Subtraktion oder ähnliches oder eine logische Operation wie UND, ODER oder ähnliches aus. In Antwort auf das Steuerungssignal an Leitung 128 inkrementiert der Adressgenerator 112 den Inhalt des Ablaufsteuerungsadresszählers 66 um eins und schreibt ihn dorthin zurück, erzeugt eine Registeradresse für die Arbeitsregister 118 oder eine Adresse, um Daten vom Sektorpuffer 116 abzurufen, indem eine im Programmbefehl vom Coderegister 120 enthaltene Adresse verwendet wird, oder erzeugt eine neue Befehlsadresse, indem die Adressen vom Coderegister 120 und dem Adresszähler 66 addiert werden.
- Gewöhnlicherweise empfängt die Ablaufsteuerung 28 über den FIFO 58 für die Ablaufsteuerung vom Sektorpuffer 16 einen Programmbefehl. Wenn jedoch der im Coderegister 120 geladene Programmbefehl das Lesen von Daten bestimmt, wird ein Wählschalter 130 durch ein durch den Decoder 124 auf einer Leitung 132 erzeugtes Datenlesesignal umgeschaltet, so dass die Daten vom FIFO 58 für die Ablaufsteuerung zum A-Register 114 und B-Register 116 geführt werden. Das Datenlesesignal an der Leitung 132 wird ebenfalls an die Speichersteuerungsschaltung 124 gesandt, um die beiden Zeiger RP 78 und WP 80 des FIFO 58 für die Ablaufsteuerung zurückzusetzen.
- Zur Veranschaulichung eines von der Ablaufsteuerung 28 auszuführenden Programms ist in Fig. 8 und Fig. 9 ein Flussdiagramm des oben angegebenen Lesesteuerungsprogramms gezeigt. Das Lesesteuerungsprogramm wird vom Sektorpuffer 16 an die Ablauf steuerung 28 ausgelesen, wenn vom Host 10 ein Lesebefehl empfangen wird.
- Der Lesebefehl und diesbezügliche Parameter, d. h. ein Sektorzählwert, welcher die Anzahl von zu lesenden Sektoren angibt, und eine Adresse eines Sektors, von dem an das Lesen vom Host 10 beginnt, werden vom Befehlsregister 46, vom Sektorzählregister 42 und vom Adressregister 44 in einer wie in der oben zitierten Anmeldung 3-337995 beschriebenen Weise empfangen. Die Registerauswahl- und Interruptsteuerungsschaltung 40 unterbricht den Mikroprozessor 20, wenn deren Empfang abgeschlossen ist. In Antwort auf die Unterbrechung von der Registerauswahl- und Interruptsteuerungsschaltung 40 liest und decodiert der Mikroprozessor 20 den Inhalt des Befehlsregisters 46. Wenn ein Lesebefehl decodiert wird, lädt der Mikroprozessor 20 eine Startadresse des Lesesteuerungsprogramms in den Ablaufsteuerungsadresszähler 66, sendet ein Startsignal an die in Fig. 4 gezeigte Speicherzeitsteuerungsschaltung 68, lädt eine Sektor- ID, die der Startadresse im Adressregister 44 der Schnittstellenschaltung 22 zum Host (Fig. 3) entspricht, in das ID-Register 86 der Schnittstellenschaltung 26 zur Platte (Fig. 5) und bewirkt, dass das Lesen der Festplatteneinrichtung 14 beginnt. Die Speicherzeitsteuerungsschaltung 68 setzt den Hostadresszähler 62, den Plattenadresszähler 64 und alle Lesezeiger RP 70, 74 und 78 und Schreibzeiger WP 72, 76 und 80 auf Null und startet in Antwort auf das Startsignal vom Mikroprozessor 20 den Zugriff auf den Sektorpuffer 16 im oben beschriebenen zeitverschachtelten Modus (C).
- Da die Sektor-ID zuerst von der Festplatteneinrichtung 14 gelesen wird, greift die Ablaufsteuerung 28 als erste auf den Sektorpuffer 16 im zeitverschachtelten Modus (C) zu. Daher stellt die Speicherzeitsteuerungsschaltung 68 nach dem Auffrischen des Sektorpuffers 16 anstelle der ersten Plattenphase ein Freigabesignal an den Ablaufsteuerungsadresszähler 66 bereit und setzt ein Signal R/W an den Sektorpuffer 16 auf HIGH, um Lesen anzuzeigen. Wenn durch das Freigabesignal freigegeben, gibt der Ablaufsteuerungsadresszähler 66 seinen Inhalt, d. h. die Startadresse des Lesesteuerungsprogramms, an den Adressbus 60 aus. Das erste Befehlswort wird vom Programmspeicherbereich 16B im Sektorpuffer 16 gelesen und an den Datenbus 52 ausgegeben. Dieses Befehlswort wird an eine Stelle des FIFO 58 für die Ablaufsteuerung geschrieben, die durch den WP 80 (anfangs auf Null gesetzt) angegeben wird. Im FIFO 58 für die Ablaufsteuerung werden das Schreiben in den FIFO 58 und das Lesen aus der Ablaufsteuerung 28 nur für das erste Befehlswort gleichzeitig ausgeführt. Dann inkrementiert die Speicherzeitsteuerungsschaltung 68 den Ablaufsteuerungsadresszähler 66 und den WP 80 um eins, um zu bewirken, dass das nächste Befehlswort aus dem Sektorpuffer 16 an den FIFO 58 für die Ablaufsteuerung übertragen wird.
- In der in Fig. 6 gezeigten Ablaufsteuerung 28 liegt das Datensignal auf der Leitung 132 auf LOW, so dass der Wählschalter 130 das erste Befehlswort vom FIFO 58 für die Ablaufsteuerung an das Coderegister 120 weiterleitet. Der Decoder 124 decodiert es und erzeugt erforderliche Steuerungssignale und inkrementiert den RP 78 um eins. Danach führt die Ablaufsteuerung 28 nacheinander das in Fig. 8 und Fig. 9 gezeigt Lesesteuerungsprogramm aus. Als nächstes wird das Lesesteuerungsprogramm Schritt für Schritt beschrieben.
- Ein erster Schritt 201 schreibt in das Sektorzählregister 42 und in das Adressregister 44 geladene Parameter in der Schnittstellenschaltung 22 zum Host (Fig. 3) an bestimmte Stellen des Programmspeicherbereichs 16B. Die Adressen der Register 42 und 44 und die Stellen für die zu schreibenden Parameter werden durch vom Programmspeicherbereich 16B an das Coderegister 120 über das FIFO 58 für die Ablaufsteuerung übertragene Befehle angegeben. Der Decoder 124 decodiert diese Befehle und speichert zuerst den Inhalt des Ablaufsteuerungsadresszählers 66 an einer vorbestimmten Stelle des Sektorpuffers 16. Die Registeradressen werden in den Arbeitsregisterwählschalter 122 eingegeben, die Adressen der Stellen, an welche die Parameter zu schreiben sind, werden in den Ablaufsteuerungsadresszähler 66 geladen, und erforderliche Anweisungen werden an die Speicherzeitsteuerungsschaltung 68 gegeben. In entsprechender Weise werden die Inhalte der Register 42 und 44 über den FIFO 58 für die Ablaufsteuerung an den Sektorpuffer 16 geschrieben. Nachdem die Parameter geschrieben worden sind, wird der im Sektorpuffer 16 gespeicherte Inhalt an den Ablaufsteuerungsadresszähler 66 zurückgegeben.
- Ein nächster Schritt 202 stellt fest, ob die Überprüfung der Sektor-ID abgeschlossen ist. Wie oben beschrieben, wird die von der Festplatteneinrichtung 14 gelesene Sektor-ID durch die Fehlererkennungs- und Vergleichsschaltung 90 in der Schnittstellenschaltung 26 zur Platte (Fig. 5), überprüft und dieses Ergebnis wird in ein bestimmtes Arbeitsregister (Fehlerregister) geschrieben. In entsprechender Weise liest die Ablaufsteuerung 28 den Inhalt des Fehlerregisters aus, um festzustellen, ob das Lesen der Sektor-ID ohne Fehler abgeschlossen ist. Diese Überprüfung kann in einfacher Weise durch die ALU 110 ausgeführt werden. Nachdem die Überprüfung der Sektor-ID abgeschlossen worden ist, geht der Ablauf mit einem Schnitt 203 weiter.
- Der Schritt 203 stellt fest, ob das Ende der Spur (EOT) erreicht ist, d. h., ob ein Sektor, für den die Überprüfung im Schritt 202 abgeschlossen ist, der letzte Sektor in einer Spur ist. Die Sektor-ID enthält ein Kennzeichen EOT, das für den letzten Sektor eingeschaltet ist. Die Ablaufsteuerung 28 führt den Schritt 203 aus, indem der Inhalt des ID-Registers 86 durch die ALU 110 überprüft wird. Wenn das EOT erreicht ist, geht der Ablauf zu einem Schritt 204 über, bei dem die Ablaufsteuerung 28 den Mikroprozessor 20 unterbricht und den Betriebsablauf am Ende dieses Sektors (EOS) anhält (Schritt 205). Der Betriebsablauf wird tatsächlich angehalten, nachdem das Lesen der Sektordaten abgeschlossen ist. Zu diesem Zeitpunkt veranlasst der Mikroprozessor, dass ein Kopf der Festplatteneinrichtung 14 an die nächste Spur bewegt wird. Wenn das EOT nicht erreicht ist, geht der Ablauf zu einem Schritt 206 über.
- Im Schritt 206 wird eine ID des nächsten Sektors in das ID- Register 86 zur Vorbereitung des Lesens des nächsten Sektors geladen. Dies erfolgt dadurch, dass die Startadresse, die in den im Schritt 201 an den Sektorpuffer 16 geschriebenen Parametern enthalten ist, in die Ablaufsteuerung 28 ausgelesen und durch die ALU 110 aktualisiert wird. Die Ablaufsteuerung 28 lädt die aktualisierte Adresse (RBA) in das ID-Register 86 und schreibt sie an den Sektorpuffer 16 zurück.
- Ein Schritt 207 setzt eine Plattenstartadresse (DSA), die eine Startgrundadresse beim Schreiben von Daten des nächsten Sektors in den Sektorpuffer 16 ist, auf ein bestimmtes Arbeitsregister. Ein nächster Schritt 208 vergleicht die DSA mit dem Inhalt des Hostadresszählers 62 HAC. (Während der Ausführung des Lesesteuerungsprogramms durch die Ablaufsteuerung 28 führt die Speicherzeitsteuerungsschaltung 68 eine Datenübertragung vom Sektorpuffer 16 an den FIFO 54 für den Host unter Verwendung des Hostadresszählers 62 aus.) Wenn DSA = HAC gilt, bedeutet dies, dass keine weiteren Daten vom Sektorpuffer 16 an den FIFO 54 für den Host auszulesen sind. In diesem Fall geht der Ablauf zu einem Schritt 209 über, der den Mikroprozessor 20 unterbricht und wartet, bis ein Sektor mit Daten an den Sektorpuffer 16 geschrieben und die DSA aktualisiert ist.
- Wenn DSA größer als HAC ist, geht der Ablauf zu einem Schritt 210 über, der entscheidet, ob das Lesen für den momentanen Sektor abgeschlossen ist. Dies erfolgt dadurch, dass ein Zustand des auf die Leitung 106 vom Zähler 94 (Fig. 5) ausgegebenen Sektorsignals überprüft wird. Falls abgeschlossen, wird der Sektorzählwert aktualisiert, und dann überprüft ein Schritt 211 anhand des Inhalts des Fehlerregisters, das eines der Arbeitsregister 118 ist, ob ein unkorrigierbarer Fehler aufgetreten ist. Wenn dieser Fehler aufgetreten ist, geht der Ablauf zu einem Schritt 212 über, um den Mikroprozessor 20 zu unterbrechen.
- Wenn kein unkorrigierbarer Fehler aufgetreten ist, geht der Ablauf zu einem Schritt 213 über, der feststellt, ob ein korrigierbarer Fehler aufgetreten ist. Dies kann auch aus dem Inhalt des Fehlerregisters heraus festgestellt werden. Wenn ein korrigierbarer Fehler aufgetreten ist, geht der Ablauf zu einem Schritt 214 über, der den Fehler korrigiert, indem aus der in Fig. 5 gezeigten ECC-Schaltung 88 in die Arbeitsregister 118 geladene Fehlerpositionsdaten und Fehlermuster verwendet werden. Die Fehlerpositionsdaten kennzeichnen ein fehlerhaftes Byte. Demgemäß lädt die Ablaufsteuerung 28 als Anwort auf ei nen Fehlerkorrekturbefehl eine Adresse eines ein Fehlerbyte enthaltenden Worts in den Ablaufsteuerungsadresszähler 66 und benachrichtigt die Speicherzeitsteuerungsschaltung 68 über die Leitung 132 vom Lesen der Daten. Als Antwort darauf setzt die Speicherzeitsteuerungsschaltung 68 die beiden Zeiger 78 und 80 des FIFO 58 für die Ablaufsteuerung auf Null und führt ein Lesen Vom Sektorpuffer 16 an den FIFO 58 für die Ablaufsteuerung aus. Das ausgelesene Fehlerbyte wird vom Wählschalter 130 in das B-Register 116 geladen. Die ALU 110 korrigiert den Fehler, indem eine Exklusiv-ODER-Verarbeitung auf das Fehlerbyte und das entsprechende Fehlermuster, das in das A-Register 114 geladen worden ist, angewandt wird. Das das korrigierte Byte enthaltende Wort wird über das FIFO 58 für die Ablaufsteuerung an die ursprüngliche Stelle des Sektorpuffers 16 zurückgeschrieben.
- Nachdem die Fehlerkorrektur abgeschlossen ist, geht der Ablauf zu einem Schritt 215 über, der feststellt, ob das Spurenende (EOT) erreicht ist. Wenn das EOT erreicht ist, geht der Ablauf zu einem Schritt 216 über und wartet, bis die nächste Spur zum Lesen bereit ist. Wenn die Verarbeitung weitergeführt werden kann oder das EOT nicht erreicht ist, geht der Ablauf zu einem Schritt 217 über, der feststellt, ob der gelesene Sektor der letzte Sektor für diesen Lesebefehl ist. Dies erfolgt dadurch, dass der in den Sektorpuffer 16 durch den Schritt 201 geschriebene Sektorzählwert mit dem am Ende des Schritts 210 aktualisierten Sektorzählwert verglichen wird. In dem Fall, dass der letzte Sektor vorliegt, wird die Ausführung des Lesesteuerungsprogramms abgeschlossen, ansonsten kehrt der Ablauf zum Schritt 202 zurück.
- Für ein Schreibsteuerprogramm sind die grundlegenden Abläufe die gleichen wie beim Lesen mit der Ausnahme, dass die Richtung der Datenübertragung entgegengesetzt ist und die Fehlerkorrektur nicht ausgeführt wird.
Claims (14)
1. Programmierbare Steuerungseinrichtung für einen externen
Speicher zum Steuern eines externen Speichers (14) in
Abhängigkeit eines Befehls von einem Host (10), die umfasst:
einen Puffer (16), der zwischen dem Host (10) und dem
externen Speicher (14) zu übertragende Daten vorübergehend
speichert und darüber hinaus ein Programm zur Steuerung
der Datenübertragung zwischen dem Host (10) und dem
externen Speicher (14) speichert;
ein Steuerungsmittel (18) zur Steuerung der
Datenübertragung, indem das Programm aus dem Puffer (16) gelesen und
ausgeführt wird; und
einen Mikroprozessor (20), der das Steuerungsmittel (18)
startet, indem er das Programm in Antwort auf einen Befehl
vom Host (10) liest.
2. Programmierbare Steuerungseinrichtung für einen externen
Speicher nach Anspruch 1, wobei der Mikroprozessor (20)
einen Speicher (32), der das Programm speichert, aufweist
und das Programm bei der Initialisierung aus dem Speicher
(32) in den Puffer (16B) lädt.
3. Programmierbare Steuerungseinrichtung für einen externen
Speicher nach Anspruch 2, wobei der Puffer (16) in einen
Datenspeicher- (16A) und einen Programmspeicherbereich
(16B) aufgeteilt ist und der Mikroprozessor (20) das
Programm aus dem Speicher (32) in den Programmspeicherbereich
(16B) lädt, indem er bei der Initialisierung eine
Startadresse des Programmspeicherbereichs angibt.
4. Programmierbare Steuerungseinrichtung für einen externen
Speicher nach Anspruch 1, 2 oder 3, wobei das
Steuerungsmittel (18) ein Schnittstellenmittel (22) zum Host
umfasst, um Daten und Befehle mit dem Host (10)
auszutauschen, ein Schnittstellenmittel (26) zum externen
Speicher, um Daten mit dem externen Speicher (14)
auszutauschen, ein Ablaufsteuerungsmittel (28), um das Programm
auszuführen, und ein Speichersteuerungsmittel (24),
welches das Schnittstellenmittel (22) zum Host, das
Schnittstellenmittel (26) zum externen Speicher und das
Ablaufsteuerungsmittel (28) mit dem Puffer (16) verbindet, um
die Übertragung zwischen diesen und dem Puffer zu steuern.
5. Programmierbare Steuerungseinrichtung für einen externen
Speicher nach Anspruch 4, wobei der Mikroprozessor (20)
das Speichersteuerungsmittel (18) in Antwort auf einen
Befehl vom Host (10) startet und die Übertragung zwischen
dem Puffer (16) und dem Schnittstellenmittel (22) zum
Host, dem Schnittstellenmittel (26) zum externen Speicher
und dem Ablaufsteuerungsmittel (28) in einem
zeitverschachtelten Modus beginnt.
6. Programmierbare Steuerungseinrichtung für einen externen
Speicher nach Anspruch 5, wobei das
Speichersteuerungsmittel (24) die Übertragung zwischen dem Puffer (16) und dem
Schnittstellenmittel (22) zum Host, dem
Schnittstellenmittel (26) zum externen Speicher und dem
Ablaufsteuerungsmittel (28) über die jeweilige First-in-First-out-Puffer
(54, 56, 58) ausführt.
7. Programmierbare Steuerungseinrichtung für einen externen
Speicher nach Anspruch 4, 5 oder 6, wobei das
Ablaufsteuerungsmittel (28) einen Decoder (124) umfasst, um vom
Puffer (16) ausgelesene Programmanweisungen zu decodieren,
ein Arithmetikmittel und ein Adresserzeugungsmittel (112),
die durch Signale vom Decoder (124) gesteuert werden, und
ein Registerauswahlmittel (122), um ein Register im
Steuerungsmittel basierend auf einer Adresse vom
Adresserzeugungsmittel (112) auszuwählen.
8. Externes Speichersystem, in welchem durch einen Befehl von
einem Host (10) Daten gelesen oder geschrieben werden, das
umfasst:
einen externen Speicher (14), der die Daten speichert;
einen Puffer (16), der zwischen dem Host (10) und dem
externen Speicher (14) zu übertragende Daten vorübergehend
speichert und darüber hinaus ein Programm zur Steuerung
der Datenübertragung zwischen dem Host (10) und dem
externen Speicher (14) speichert;
ein Steuerungsmittel (18) zur Steuerung der
Datenübertragung, indem das Programm aus dem Puffer (16) gelesen und
ausgeführt wird; und
einen Mikroprozessor (20), um das Steuerungsmittel (18) zu
starten, indem er das Programm in Antwort auf einen Befehl
vom Host (10) liest.
9. Externes Speichersystem nach Anspruch 8, wobei der
Mikroprozessor (20) einen Speicher (32), der das Programm
speichert, aufweist und bei der Initialisierung das Programm
aus dem Speicher in den Puffer (16B) lädt.
10. Externes Speichersystem nach Anspruch 9, wobei der Puffer
(16) in einen Datenspeicher- (16A) und einen
Programmspeicherbereich (16B) aufgeteilt ist und der Mikroprozessor
(20) das Programm aus dem Speicher (32) in den
Programmspeicherbereich (16B) lädt, indem er bei der
Initialisierung eine Startadresse des Programmspeicherbereichs
angibt.
11. Externes Speichersystem nach Anspruch 8, 9 oder 10, wobei
das Steuerungsmittel (18) ein Schnittstellenmittel (22)
zum Host umfasst, um Daten und Befehle mit dem Host (10)
auszutauschen, ein Schnittstellenmittel (26) zum externen
Speicher, um Daten mit dem externen Speicher (14)
auszutauschen, ein Ablaufsteuerungsmittel (28), um das Programm
auszuführen, und ein Speichersteuerungsmittel (24),
welches das Schnittstellenmittel (22) zum Host, das
Schnittstellenmittel (26) zum externen Speicher und das
Ablaufsteuerungsmittel (28) mit dem Puffer (16) verbindet, um
die Übertragung zwischen diesen und dem Puffer zu steuern.
12. Externes Speichersystem nach Anspruch 11, wobei der
Mikroprozessor (20) das Speichersteuerungsmittel (24) in
Antwort auf einen Befehl vom Host (10) startet und die
Übertragung zwischen dem Puffer (16) und dem
Schnittstellenmittel (22) zum Host, dem Schnittstellenmittel (26) zum
externen Speicher und dem Ablaufsteuerungsmittel (28) in
einem zeitverschachtelten Modus beginnt.
13. Externes Speichersystem nach Anspruch 12, wobei das
Speichersteuerungsmittel (24) die Übertragung zwischen dem
Puffer (16) und dem Schnittstellenmittel (22) zum Host,
dem Schnittstellenmittel (26) zum externen Speicher und
dem Ablaufsteuerungsmittel (28) über die jeweiligen First-
in-First-out-Puffer (54, 56, 58) ausführt.
14. Externes Speichersystem nach Anspruch 11, 12 oder 13,
wobei das Ablaufsteuerungsmittel (28) einen Decoder (124)
umfasst, um vom Puffer (16) ausgelesene
Programmanweisungen zu decodieren, ein Arithmetikmittel und ein
Adresserzeugungsmittel, die durch Signale vom Decoder (124)
gesteuert werden, und ein Registerauswahlmittel (122), um
ein Register im Steuerungsmittel basierend auf einer
Adresse vom Adresserzeugungsmittel (112) auszuwählen.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4308353A JPH0799512B2 (ja) | 1992-11-18 | 1992-11-18 | プログラム可能な外部記憶制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69325774D1 DE69325774D1 (de) | 1999-09-02 |
DE69325774T2 true DE69325774T2 (de) | 2000-03-02 |
Family
ID=17980042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69325774T Expired - Fee Related DE69325774T2 (de) | 1992-11-18 | 1993-11-09 | Programmierbare Externspeichersteuerungseinrichtung |
Country Status (5)
Country | Link |
---|---|
US (1) | US5625840A (de) |
EP (1) | EP0598541B1 (de) |
JP (1) | JPH0799512B2 (de) |
DE (1) | DE69325774T2 (de) |
SG (1) | SG44424A1 (de) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996032674A2 (en) * | 1995-04-13 | 1996-10-17 | Cirrus Logic, Inc. | Semiconductor memory device for mass storage block access applications |
US5917723A (en) * | 1995-05-22 | 1999-06-29 | Lsi Logic Corporation | Method and apparatus for transferring data between two devices with reduced microprocessor overhead |
FR2738367B1 (fr) * | 1995-09-05 | 1997-10-17 | Scm Microsystems | Procede et appareil de telechargement rapide de fonctions dans une memoire volatile |
JP3451594B2 (ja) * | 1995-12-21 | 2003-09-29 | 株式会社森精機ハイテック | 数値制御装置における記憶手段アクセス制御方法および数値制御装置 |
JP3287203B2 (ja) | 1996-01-10 | 2002-06-04 | 株式会社日立製作所 | 外部記憶制御装置及び外部記憶制御装置間データ転送方法 |
US5822553A (en) * | 1996-03-13 | 1998-10-13 | Diamond Multimedia Systems, Inc. | Multiple parallel digital data stream channel controller architecture |
US5797043A (en) * | 1996-03-13 | 1998-08-18 | Diamond Multimedia Systems, Inc. | System for managing the transfer of data between FIFOs within pool memory and peripherals being programmable with identifications of the FIFOs |
US6308325B1 (en) | 1996-04-09 | 2001-10-23 | International Business Machines Corporation | Apparatus and method for downloading data to electronic device |
JP3707890B2 (ja) * | 1996-12-26 | 2005-10-19 | 三星電子株式会社 | 外部記憶装置のデータ出力方法 |
US7114049B2 (en) * | 1997-01-08 | 2006-09-26 | Hitachi, Ltd. | Adaptive remote copy in a heterogeneous environment |
JP3410010B2 (ja) | 1997-12-24 | 2003-05-26 | 株式会社日立製作所 | サブシステムの移行方法および情報処理システム |
DE19708755A1 (de) * | 1997-03-04 | 1998-09-17 | Michael Tasler | Flexible Schnittstelle |
JPH1166695A (ja) | 1997-08-13 | 1999-03-09 | Internatl Business Mach Corp <Ibm> | ディスクドライブ装置、サーボ制御装置及び制御装置 |
US5941972A (en) | 1997-12-31 | 1999-08-24 | Crossroads Systems, Inc. | Storage router and method for providing virtual local storage |
US6219729B1 (en) * | 1998-03-31 | 2001-04-17 | Texas Instruments Incorporated | Apparatus and method for providing for efficient communication between high and low-level processing engine of a disk drive formatter |
JP4689137B2 (ja) | 2001-08-08 | 2011-05-25 | 株式会社日立製作所 | リモートコピー制御方法、及びストレージシステム |
US7167962B2 (en) | 1999-08-19 | 2007-01-23 | Hitachi, Ltd. | Remote copy for a storage controller with reduced data size |
US6728853B1 (en) * | 1999-12-14 | 2004-04-27 | Genesis Microchip Inc. | Method of processing data utilizing queue entry |
US7194590B2 (en) * | 2001-02-28 | 2007-03-20 | Hitachi, Ltd. | Three data center adaptive remote copy |
US7143252B2 (en) * | 2001-05-10 | 2006-11-28 | Hitachi, Ltd. | Storage apparatus system and method of data backup |
US7213114B2 (en) | 2001-05-10 | 2007-05-01 | Hitachi, Ltd. | Remote copy for a storage controller in a heterogeneous environment |
US7308512B1 (en) * | 2001-05-16 | 2007-12-11 | Network Appliance, Inc. | Fiber channel adaptor for serial or parallel ATA disks |
JP4049297B2 (ja) * | 2001-06-11 | 2008-02-20 | 株式会社ルネサステクノロジ | 半導体記憶装置 |
CN1288658C (zh) * | 2002-04-25 | 2006-12-06 | 三洋电机株式会社 | 数据处理装置 |
EP1484667A1 (de) * | 2003-06-05 | 2004-12-08 | Deutsche Thomson-Brandt Gmbh | Verfahren zur schnellen Überprüfung von Sektoradressen |
EP1484669A1 (de) * | 2003-06-05 | 2004-12-08 | Thomson Licensing S.A. | Verfahren zur schnellen Überprüfung von Sektoradressen |
JP2005339426A (ja) * | 2004-05-31 | 2005-12-08 | Fujitsu Ltd | データ処理システム及び設定方法 |
US20170154403A1 (en) * | 2015-11-30 | 2017-06-01 | Intel Corporation | Triple buffered constant buffers for efficient processing of graphics data at computing devices |
CN110990175B (zh) | 2018-10-03 | 2023-03-14 | 慧荣科技股份有限公司 | 错误处置方法以及数据存储装置及其控制器 |
TWI684988B (zh) * | 2018-10-03 | 2020-02-11 | 慧榮科技股份有限公司 | 錯誤處置方法以及資料儲存裝置及其控制器 |
CN110989918B (zh) | 2018-10-03 | 2023-03-28 | 慧荣科技股份有限公司 | 写入控制方法以及数据存储装置及其控制器 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4327408A (en) * | 1979-04-17 | 1982-04-27 | Data General Corporation | Controller device with diagnostic capability for use in interfacing a central processing unit with a peripheral storage device |
US4420819A (en) * | 1981-03-13 | 1983-12-13 | Data Card Corporation | System for processing and storing transaction data and for transmitting the transaction data to a remote host computer |
US4987530A (en) * | 1985-11-15 | 1991-01-22 | Data General Corp. | Input/output controller for a data processing system |
US5241660A (en) * | 1986-10-30 | 1993-08-31 | National Semiconductor Corporation | Buffered asynchronous communications element with receive/transmit control and status reporting |
JPH0251724A (ja) * | 1988-08-15 | 1990-02-21 | Hitachi Ltd | ディスク制御装置 |
JPH02158824A (ja) * | 1988-12-12 | 1990-06-19 | Nippon I B M Kk | ディスク装置の記憶制御装置 |
JPH0384649A (ja) * | 1989-08-28 | 1991-04-10 | Fujitsu Ltd | バッファ制御方式 |
US5249271A (en) * | 1990-06-04 | 1993-09-28 | Emulex Corporation | Buffer memory data flow controller |
JPH04102201A (ja) * | 1990-08-21 | 1992-04-03 | Tokico Ltd | 磁気ディスク装置 |
US5157770A (en) * | 1990-08-31 | 1992-10-20 | International Business Machines Corporation | Nonsynchronous dasd control |
JP2882495B2 (ja) * | 1991-02-08 | 1999-04-12 | 三菱電機株式会社 | 通信機 |
-
1992
- 1992-11-18 JP JP4308353A patent/JPH0799512B2/ja not_active Expired - Fee Related
-
1993
- 1993-11-09 EP EP93308943A patent/EP0598541B1/de not_active Expired - Lifetime
- 1993-11-09 SG SG1996000329A patent/SG44424A1/en unknown
- 1993-11-09 DE DE69325774T patent/DE69325774T2/de not_active Expired - Fee Related
-
1995
- 1995-04-13 US US08/421,713 patent/US5625840A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US5625840A (en) | 1997-04-29 |
DE69325774D1 (de) | 1999-09-02 |
JPH06214934A (ja) | 1994-08-05 |
EP0598541B1 (de) | 1999-07-28 |
JPH0799512B2 (ja) | 1995-10-25 |
SG44424A1 (en) | 1997-12-19 |
EP0598541A1 (de) | 1994-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69325774T2 (de) | Programmierbare Externspeichersteuerungseinrichtung | |
DE69522457T2 (de) | Verfahren und vorrichtung zur automatischen entfernung von ecc-speicherfehlern mittels hardware | |
DE69906156T2 (de) | Mikroprozessorvorrichtung mit programmierbaren wartezuständen | |
DE3587948T2 (de) | Mikroprozessorsystem. | |
DE69425600T2 (de) | System und Verfahren zur Erkennung und Korrektur von Speicherfehlern | |
DE3909896C2 (de) | ||
DE60224774T2 (de) | Datenverarbeitungssystem mit Lese-, Änderungs- und Schreibeinheit | |
DE69329630T2 (de) | Vorrichtung zur Vektorverarbeitung | |
DE3685876T2 (de) | Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher. | |
DE3687724T2 (de) | Digitalprozessorsteuerung. | |
DE68928040T2 (de) | Pufferspeichersubsystem für Peripheriesteuerungen und Verfahren | |
DE3750740T2 (de) | Verfahren zur Steuerung von Mehradressräumen. | |
AT389951B (de) | Datenuebertragungseinrichtung | |
DE3687867T2 (de) | Mikrorechner. | |
DE69119149T2 (de) | Struktur zur direkten Speicher-zu-Speicher-Übertragung | |
DE2813080A1 (de) | Einrichtung zur speicheradressierung | |
DE69230238T2 (de) | Informationsverarbeitungsvorrichtung mit Verzweigungsziel-Befehlspufferspeicher | |
DE69618831T2 (de) | ECC-geschützte Speicherorganisation mit Lese-Änderungs-Schreib-Pipelinezugriff | |
DE3650642T2 (de) | Speichermittel mit Mehrwortauslesen und Schreiben | |
DE69027919T2 (de) | Anordnung und Verfahren zur Unterstützung des Zugriffs auf E/A-Geräte durch grosse, direkt abgebildete Datencache-Speicher | |
DE69033416T2 (de) | Hauptspeicherkarten mit Einzelbit-Setz- und Rücksetz-Funktion | |
DE3688446T2 (de) | Mikroprozessorunterstützte Speicher-zu-Speicher-Transfervorrichtung. | |
DE68925376T2 (de) | In Direktabbildung und in Bankabbildung wirksamer Informationsprozessor und Verfahren zum Schalten der Abbildungsschemas | |
DE3851041T2 (de) | Sicheres Datenverarbeitungssystem, das Artikelbausteine benutzt. | |
DE69018542T2 (de) | Steuersystem für Hauptspeicher. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |