DE3586299T2 - Ein-/ausgabesteuereinheit fuer mehrfache verschiedenartige serielle speicher mit einem cache-speicher. - Google Patents

Ein-/ausgabesteuereinheit fuer mehrfache verschiedenartige serielle speicher mit einem cache-speicher.

Info

Publication number
DE3586299T2
DE3586299T2 DE8585105249T DE3586299T DE3586299T2 DE 3586299 T2 DE3586299 T2 DE 3586299T2 DE 8585105249 T DE8585105249 T DE 8585105249T DE 3586299 T DE3586299 T DE 3586299T DE 3586299 T2 DE3586299 T2 DE 3586299T2
Authority
DE
Germany
Prior art keywords
cache
memory
data
register
bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE8585105249T
Other languages
English (en)
Other versions
DE3586299D1 (de
Inventor
Ernest D Baker
Robert Henry Farrell
Neil Alan Katz
Hernando Ovies
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE3586299D1 publication Critical patent/DE3586299D1/de
Publication of DE3586299T2 publication Critical patent/DE3586299T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

  • Die Erfindung bezieht sich allgemein auf Rechnerspeichersysteme und im besonderen auf eine Steuereinheit für zwei oder mehrere serielle Speicher, wie etwa Platten, mit möglicherweise unterschiedlichen Eigenschaften und Benutzung eines E/A-Cache.
  • Typischerweise besitzen Rechnersysteme einen peripheren seriellen Speicher zur Speicherung großer Datenmengen und möglicherweise auch Programmen. Es gibt verschiedene Typen von seriellen Speichern und zwei der gebräuchlichsten sind Festplatte und Floppy Disk, auch Diskette genannt. Eine Festplatte speichert gewöhnlich relativ große Datenmengen mit einer typischen Speicherkapazität im Bereich von 15 bis 30 Megabyte. Obwohl die Zugriffszeit auf eine Festplatte im Vergleich zu einem Halbleiterspeicher relativ lang ist, ist ihre Zugriffszeit gewöhnlich viel schneller als bei anderen magnetischen Platten. Festplatten haben jedoch die Nachteile hoher Kosten, großer Abmessungen und Transportproblemen zwischen Installationen. Eine Diskette hat andere, komplementäre Eigenschaften. Ihre Kapazität ist relativ gering, 1,2 Megabyte ist ein typischer Wert, und ihre Zugriffszeit ist typischerweise länger als bei Festplatten. Allerdings sind sowohl Diskette als auch Diskettenlaufwerk relativ preiswert und kompakt, und die Disketten können leicht archiviert und transportiert werden. Daher ist es oft vorteilhaft, sowohl Festplatte als auch Disketten im gleichen Rechnersystem zu benutzen. In Rechnersystemen können auch andere Typen von seriellen Speichern benutzt werden, wie zum Beispiel optische Platten, Kassetten, Bänder, Blasenspeicher und ladungsgekoppelte Halbleiterbausteine, alle mit unterschiedlichen Eigenschaften.
  • Ein allen seriellen Speichern gemeinsames Problem ist die lange Zugriffszeit im Vergleich zu Halbleiterspeichern (RAM). Das Zeitproblem hat zwei Ursachen. Die Taktfrequenz eines seriellen Speichers ist gewöhnlich unterschiedlich zu der des Datenbusses des Rechners und typischerweise wesentlich langsamer. Ein eher grundsätzliches Problem ergibt sich aus der Art des seriellen Speicherns. Im Gegensatz zu einem Schreib-Lese-Speicher ist eine bestimmte Zeit notwendig, um die Daten für das Auslesen aus dem seriellen Speicher vorzubereiten. Bei Platten werden die Daten auf parallelen Spuren gespeichert, und ein Lesekopf wird mechanisch zur angegebenen Spur bewegt. Ist die angegebene Spur unterschiedlich zu der Spur, über der der Lesekopf gerade positioniert ist, wird aufgrund der mechanischen Bewegung des Kopfes eine relativ lange Suchzeit benötigt. Ist der Kopf richtig positioniert, muß die sich gleichmäßig drehende Platte bis zum gewünschten Sektor der Platte rotieren. Dies wird als rotatorische Latenz bezeichnet. Im Durchschnitt beträgt diese rotatorische Latenz die Hälfte der Zeit für eine Umdrehung. Somit verstreichen Suchzeit und rotatorische Latenz, bis der Zugriff stattfindet, bis also Daten gelesen werden können. Das Ergebnis ist, daß serielle Speicher sehr oft die Operationen der viel schnelleren CPU behindern.
  • Eine Methode zur Reduzierung der langen Zugriffszeiten von seriellen Speichern beim Rechnerdurchsatz wurde von Dixon et al in der US-Patentschrift 4,490,782, angemeldet am 5. Juni 1981, und von Marazas et al in der US-Patentschrift 4,489,378, ebenfalls am 5. Juni 1981 angemeldet, beschrieben. Diese Patente beschreiben die Benutzung eines E/A-Cache, der mit einem seriellen Speicher verbunden ist. Immer wenn ein Satz vom seriellen Speicher angefordert wird, werden verschiedene benachbarte Sätze ebenfalls in den E/A-Cache eingelesen. Eine Cache-Steuereinheit bewahrt die Reihenfolge des Inhalts des E/A-Cache. Wenn durch die CPU eine nachfolgende Anforderung dieser benachbarten Sätze erfolgt, bestimmt die Cache-Steuereinheit deren Anwesenheit im Cache-Speicher und stellt die Daten der CPU sofort, ohne die Notwendigkeit eines Zugriffs auf die sehr viel langsamere magnetische Platte, zur Verfügung. Der Cache-Speicher arbeitet eher mit der Geschwindigkeit eines Halbleiterspeichers als mit der einer mechanischen Platte, unabhängig davon, ob eine Festplatte oder eine Diskette vorliegt. Der Nutzen eines E/A-Cache ergibt sich aus der Tatsache, daß eine hohe Wahrscheinlichkeit existiert, daß aufeinanderfolgende Anforderungen für Daten an den Speicher getätigt werden, die an nahe beieinander liegenden Stellen gespeichert sind.
  • Die E/A-Cache-Steuereinheit der US-Patentschrift 4,490,782 kann für mehrfache Platten benutzt werden. Diese mehrfache Nutzung ist wünschenswert, da die Steuereinheit relativ komplex ist und nur eine Platte zur gleichen Zeit angesprochen werden kann. Allerdings ist bisher kein Weg bekannt, ihre Steuereinheit mit mehrfachen Platten mit unterschiedlichen Eigenschaften zu nutzen. Daraus folgt, daß, wenn ein Rechnersystem sowohl eine Festplatte als auch ein Diskettenlaufwerk enthält, entweder mehrfache Steuereinheiten vorgesehen werden müssen, oder zusätzliche Schaltkreise benötigt werden.
  • Die Benutzung einer einzelnen Steuereinheit für mehrere Peripheriegeräte wurde von Kaufmann et al in der US-Patentschrift 4,245,300 und von Cukier et al in einem technischen Artikel mit dem Titel "Bus Speed Adapter" in der Zeitschrift IBM Technical Disclosure Bulletin, Vol 25, No 35, August 1982, Seiten 1504-1507 beschrieben. Eine einzelne E/A-Steuereinheit für unterschiedliche Schreib-Lese-Speicher wurde von Dalmosso in der US- Patentschrift 4,103,328 und von Struger et al in der US-Patentschrift 4,293,924 beschrieben.
  • Die Patentanmeldung GB-A-2,090,081 beschreibt die Implementierung von Cache-Speicheroperationen in einer Datenverarbeitungsanlage, die mit verschiedenen peripheren Zusatzgeräten verbunden werden kann. Sie beschreibt aber keinen Weg zur Anpassung der unterschiedlichen Datenraten der serielle Speicher, die möglicherweise in den peripheren Geräten vorhanden sind.
  • Demgemäß ist das Ziel dieser Erfindung, ein Steuergerät für einen E/A-Cache zur Verfügung zu stellen, in dem die Steuereinheit mehrere serielle Speicher mit unterschiedlichen Eigenschaften unterstützt.
  • Zusammenfassung der Erfindung
  • Die Erfindung kann als Steuereinheit für einen E/A-Cache gekennzeichnet werden, in der die Steuereinheit die seriellen Daten der mehrfachen seriellen Speichereinrichtungen deserialisiert und über einen parallelen Einrichtungsbus auf ein Puffer-RAM (Random Access Memory = Schreib-Lese-Speicher) mittlerer Größe überträgt. Ein großer Schreib-Lese-Speicher, der als Cache-Speicher mit der E/A-Steuereinheit verbunden ist, überträgt die Daten zum und vom Prozessor über einen parallelen Cache-Bus. Der Datenfluß zwischen Puffer-RAM und Cache-RAM wird über den Einrichtungsbus und den Cache-Bus geleitet, wobei ein Pufferregister als Schnittstelle zwischen beiden Bussen agiert. Der Cache- Bus und der Einrichtungsbus können unabhängig voneinander betrieben werden.
  • Dies ist dank einer E/A-Steuereinheit eines Rechnersystems für mehrfache serielle Speicher möglich, die einen Einrichtungsbus besitzt; getrennte Schnittstellenmittel, die mit jedem Speicher verbunden und an den Einrichtungsbus angeschlossen sind, um Daten zwischen dem Speicher und dem Einrichtungsbus zu übertragen; ein Pufferregister, das an den Einrichtungsbus angeschlossen ist; ein Cache-Bus, der an das Pufferregister angeschlossen ist; ein Cache-Speicher, der an den Cache-Bus angeschlossen ist; ein Kanalregister, das an den Cache-Bus angeschlossen ist, um eine Schnittstelle zwischen der E/A-Steuereinheit und dem Rechnersystem herzustellen; dadurch gekennzeichnet, daß sie enthält:
  • - einen Pufferspeicher, der mit dem Einrichtungsbus verbunden ist;
  • - ersten Steuerlogikmitteln, um den Datenfluß auf dem Einrichtungsbus zwischen den Schnittstellenmitteln und zwischen dem Pufferspeicher und dem Pufferregister zu steuern;
  • - zweiten Steuerlogikmitteln, um den Datenfluß zwischen dem Pufferregister und dem Cache-Speicher und zwischen dem Cache-Speicher und dem Kanalregister zu steuern, wodurch der Datenfluß auf dem Einrichtungsbus unabhängig vom Datenfluß auf dem Cache-Bus gesteuert werden kann.
  • Kurzbeschreibung der Abbildung
  • Fig. 1 stellt ein Blockdiagramm einer Ausführung der Erfindung dar.
  • Ausführliche Beschreibung der bevorzugten Ausführungen
  • Die Erfindung ist eine Steuereinheit zur Unterstützung von zwei oder mehreren seriellen Speichern mit einem E/A-Cache, in dem die seriellen Speicher unterschiedliche Eigenschaften besitzen. Das Block- Diagramm einer erfindungsgemäßen Ausführung einer Steuereinheit 8 wird im Block-Diagramm der Fig. 1 gezeigt. Die beiden abgebildeten seriellen Speicher sind eine Diskette 10 und eine Festplatte 12. Die Diskette 10 hat nicht nur eine zur Festplatte 12 unterschiedliche Kapazität von 1,2 Megabyte statt 15 bis 30 Megabyte, außerdem stellen die beiden Platten 10 und 12 serielle Daten mit signifikant unterschiedlichen Datenraten zur Verfügung.
  • Die Daten der Diskette 10 werden auf einer einzelnen seriellen Datenleitung 14 zu einem variablen Frequenzoszillator (VFO) 16 geführt, der ein Taktsignal zur Verfügung stellt, das auf der Datenübertragungsrate basiert. Die synchronisierten Daten werden dann zu einem Serialisierer/Deserialisierer 18 geleitet, der, während er Daten von der Diskette 10 liest, die seriellen Daten in ein byte-breites Format umwandelt. Die Daten werden dann auf einen byte-breiten Bus 20 geleitet. Ein Byte kann dabei 9 Bits breit sein, 8 Datenbits und ein Paritätsbit. Wenn die Daten auf die Diskette 10 geschrieben werden, führt der Serialisierer/Deserialisierer 18 die entgegengesetzte Funktion aus und wandelt die parallelen in serielle Daten um.
  • Die Festplatte 12 ist auf ähnliche Weise mit dem System verbunden. Allerdings sind die Funktionen des variablen Frequenzoszillators 16 und des Serialisierers/Deserialisierers 18 in ein Plattenschnittstelle 22 integriert. Obwohl die Funktionen der Schnittstelle 22 denen des Oszillators 16 und des Serialisierers/Deserialisierers 18 ähnlich sind, ist das Anschließen der Festplatte 12 wesentlich schwieriger als das der Diskette 10, so daß die Schnittstelle 22 eine eigene Karte beansprucht, während der variable Frequenzoszillator 16 und der Serialisierer/Deserialisierer 18 auf der Karte der Steuereinheit 8 dieser Erfindung integriert werden können. Dieser Unterschied zeigt lediglich die unterschiedlichen Eigenschaften von Diskette 10 und Festplatte 12. Für Komfort und Geschwindigkeit kann der parallele Ausgang der Schnittstelle 22 2 Bytes breit sein, hier repräsentiert durch die beiden byte-breiten Busse 23.
  • Der Bus 20 vom Serialisierer/Deserialisierer 18 wird auf ein Diskettenlaufwerksregister 24 mit 18·1 Bit geführt. Ebenfalls sind mit diesem Diskettenregister 24 zwei byte-breite Busse 26 mit einem darin enthaltenen Einrichtungsbus 28 verbunden. So liest das Diskettenregister 24 zweimal von Bus 20, pro Ausgabe von zwei parallelen Datenbytes auf dem Einrichtungsbus 28. Ein Plattenregister 30 mit 18·1 Bit ist ebenfalls auf der einen Seite mit dem Einrichtungsbus 28 verbunden und auf der anderen Seite mit den Bussen 23 von der Schnittstelle 22, aber mit gleich breiten Bussen auf beiden Seiten. Diskettenregister 24 und Plattenregister 30 sind keine unbedingt notwendigen Teile dieser Erfindung und wären bei einer sorgfältigen Auslegung von Serialisierer/Deserialisierer 18 und Plattenschnittstelle 22 überflüssig.
  • Es muß anerkannt werden, daß obwohl obige Erklärung sich auf die Anwendung von Leseoperationen von entweder der Platte 10 oder der Platte 12 bezieht, der Datenfluß in Wirklichkeit bidirektional ist, um auch Schreiboperationen auf den Platten 10 und 12 zuzulassen.
  • Der Einrichtungsbus 28 ist ebenfalls mit einem Pufferspeicher (Schreib-Lese-Speicher) 32 verbunden. In der beschriebenen Ausführung ist der Pufferspeicher ein Halbleiterspeicher mit einer Kapazität von 1 Kilobyte, der als FIFO-Speicher (first-in, first-out = Durchlaufspeicher) arbeitet. Die Größe von 1 Kilobyte korrespondiert mit einem kompletten Datensatz von der Diskette 10 oder der Festplatte 12. Bei typischem Gebrauch der Erfindung, also wenn Daten von der Platte 10 oder 12 gelesen werden, werden diese Daten direkt in den Pufferspeicher (Schreib- Lese-Speicher) gelesen, und zwar zwei Bytes zur gleichen Zeit. Die Daten werden dann im FIFO-Prinzip zum Rest der Steuereinheit 8 und zum Prozessor weitergeleitet. Dabei müssen die Datenflußraten in und aus dem Puffer-RAM 32 heraus nicht gleich sein.
  • Ähnlich verhält es sich, wenn bei normalem Gebrauch der Erfindung Daten auf die Platten 10 oder 12 geschrieben werden. Sie werden zuerst in das Puffer-RAM 32 geschrieben und dann, jeweils 2 Bytes gleichzeitig, in das jeweilige Register 24 oder 30 übertragen, um dann weiter zur gewünschten Platte 10 oder 12 transportiert zu werden. Die Nutzung eines satzgroßen Puffer-RAM in einer Plattensteuereinheit wird von Baker et al in einem technischen Artikel mit dem Namen "Partial Record Read and Write Operations for a Diskette Unit" beschrieben, der im IBM Technical Disclosure Bulletin, Vol 25, No. 10, März 1983, auf den Seiten 5242-5244 erschienen ist. Es sollte beachtet werden, daß die Datenübertragung zum und vom Diskettenregister 24 und dem Plattenregister 30 notwendigerweise durch die Datenraten der jeweiligen Platte 10 oder 12 gesteuert wird. Auf jeden Fall kann der Datentransfer vom Puffer-RAM 32 zum restlichen System mit viel schnelleren Datenraten, die charakteristisch sind für Halbleitereinrichtungen, erfolgen.
  • Was bis hierhin beschrieben wurde, legt den Datenfluß der Einrichtung fest, und zwar den Datenfluß zu und von der Platte 10 und der Platte 12. Die Schnittstelle zum Rest der Steuereinheit 8 ist ein Pufferregister 34, das mit dem Einrichtungsbus 28 verbunden ist. Das Pufferregister hat eine Größe von 18·1 Bit. Auf der anderen Seite des verbindenden Pufferregisters 34 ist ein Cache-Bus 36, der zwei byte-breite Busse enthält. Der Cache- Bus 38 ist ebenfalls mit einem Kanalregister 40 und einem Cache- Register 42 verbunden. Sowohl Kanalregister 40 als auch Cache- Register 42 haben eine Größe von 18·1 Bit. Das Kanalregister 40 ist Teil eines Logikschaltkreises 44, der zur Hochgeschwindigkeitsdatenübertragung und für Handshake-Steuerungen zwischen Steuereinheit und einem Prozessor 46 benutzt wird. Der Logikschaltkreis 44 wird detailliert von Brown et al in der US-Patentschrift 4,246,637 beschrieben, die hier als Referenz angegeben wird. In dieser Referenz wird auf das Kanalregister als zyklusabzweigendes Datenregister Bezug genommen. Die Kommunikation zwischen Logikschaltkreis 44 und Prozessor 46 wird über einen E/A-Kanalbus 48 abgewickelt. Für Zwecke dieser Erfindung kann das Kanalregister 40 als Schnittstelle zur externen Welt betrachtet werden, die zwei parallele Bytes zur gleichen Zeit übertragen kann.
  • Der Datenfluß zwischen Pufferregister 34 und Kanalbus 48, inklusive dem Datenfluß zum und vom Cache-Speicher 52 ist der Cache- Datenfluß. Ein zwei byte-breiter Bus 50 verbindet das Cache-Register 42 mit dem Cache-Speicher 52. Der Cache-Speicher 52 hat eine Kapazität von 64 Kilobyte, so daß er 64 Datensätze für die Platten 10 und 12 enthalten kann. Der Cache-Speicher 52 ist ein Halbleiter-Schreib-Lese-Speicher, auf den wesentlich schneller zugegriffen werden kann als auf die Platten 10 und 12. Das Cache-Register 42 wird benötigt, da die Handshake-Steuerung für den Cache-Speicher 52 sich von der Handshake-Steuerung des Logikschaltkreises 44 unterscheidet. So ist es möglich, bei einer geeigneten Auslegung der Handshake-Steuerung ohne das Cache-Register 42 auszukommen. Ein Cache-System wird so betrieben, daß, wenn durch den Prozessor 46 von einer der Platten 10 oder 12 ein Datensatz angefordert wird, von der Platte 10 oder 12 eine große Zahl von Sätzen in den Cache-Speicher 52 übertragen wird. Wenn zum Beispiel Satz N angefordert wird, werden alle Sätze von N-31 bis N+32 in den Cache-Speicher 52 übertragen. Der angeforderte Satz N wird dann vom Cache-Speicher 52 weiter zum Prozessor 46 geleitet. Danach, wenn der Prozessor 46 einen der Sätze N-31 bis N+32 zum Lesen oder Schreiben anfordert, wird die Operation mit dem Cache-Speicher 52 ausgeführt statt mit den Platten 10 oder 12, welche die Originaldaten enthalten. Zu irgendeinem Zeitpunkt muß der Inhalt des Cache-Speichers 52 zurück auf die ursprünglichen Positionen der Platten 10 und 12 geschrieben werden, falls der Inhalt durch den Prozessor 46 aktualisiert wurde.
  • Ein Mikroprozessor 54 steuert den Datenfluß zum Cache gemäß dem Mikrocode, der im Nur-Lesespeicher 56 gespeichert ist. Der Mikroprozessor 54 hat ebenfalls seinen eigenen Speicherbereich oder Schreib-Lese-Speicher 58, um ein Verzeichnis des Inhalts des Cache-Speichers 52 zu führen. Wenn der Prozessor 46 einen Datensatz anfordert, konsultiert der Mikroprozessor 54 das Verzeichnis in seinem Schreib-Lese-Speicher 58, um festzustellen, ob der Satz im Cache-Speicher enthalten ist, so daß gegebenenfalls kein Lesevorgang von den Platten 10 und 12 notwendig ist. Ist der angeforderte Satz nicht im Cache-Speicher 52 gemäß dem Verzeichnis im Schreib-Lese-Speicher 58 enthalten, muß eine Lese- oder Schreiboperation zu oder von den langsameren Platten 10 oder 12 durchgeführt werden.
  • Der Mikroprozessor 54 steuert ferner einen Sequenzer 60, der die Pfadsteuerlogik für den gesamten Datenfluß im Einrichtungsdatenflußbereich der Steuereinheit zur Verfügung stellt.
  • Die Nutzung und die Datenorganisation des Cache-Speichers 52 kann im Rahmen der Steuerung durch den Mikroprozessor variiert 54 werden. In der oben beschriebenen Betriebsart wird der Cache- Speicher 52 in einer einzigen Leseoperation von der Platte 10 oder 12 gefüllt. Dies geschieht dadurch, daß die Daten zwischen den Platten 10 oder 12 und dem Cache-Speicher 52 in Blöcken zu je 64 Sätzen übertragen werden. Alternativ kann der Cache-Speicher ausschließlich der Diskette 10 oder der Festplatte 12 zugeordnet werden. Eine andere attraktive Alternative besteht darin, die Hälfte des Cache-Speichers 52 der Diskette 10 und die andere Hälfte der Festplatte 12 zuzuweisen, so daß 32 Datensätze auf einmal übertragen werden können. Es ist ebenfalls möglich, den Cache-Speicher 52 so zu unterteilen, daß er separate und nicht zusammenhängende Blöcke von der Diskette 10 oder der Festplatte 12 enthalten kann. Die Unterteilung kann dynamisch durch den Mikroprozessor 54 geändert werden.
  • Im folgenden wird die primäre Art des Informationsflusses in dieser Steuereinheit beschrieben. Bei einer Leseoperation von der Diskette 10 werden Daten vom Diskettenregister 24 zum Puffer-RAM 32 übertragen. Vom Puffer-RAM 32 werden die Daten durch das Pufferregister 34 transportiert. Eine Schreiboperation zur Diskette 10 folgt dem umgekehrten Weg vom Pufferregister 34 durch das Puffer-RAM 32 zum Diskettenregister 24. Ähnlich verursacht ein Datenlesevorgang von der Festplatte 12, daß Daten vom Plattenregister 30 durch den Puffer-RAM 32 zum Pufferregister 34 übertragen werden. Analog verursacht ein Datenschreibvorgang auf der Festplatte 12, daß Daten vom Pufferregister 34 durch den Puffer-RAM zum Plattenregister 30 übertragen werden.
  • Es ist möglich, den Puffer-RAM 32 durch direkten Datentransfer zwischen Pufferregister 24 und entweder dem Diskettenregister 24 oder dem Plattenregister 30 zu umgehen. Der direkte Datentransfer zwischen Pufferregister 34 und Plattenregister 30 ist der schwieriger zu implementierende der beiden Direkttransfers aufgrund der höheren Datenraten der Festplatte 12. Es kann wünschenswert sein, den Puffer-RAM 32 zu umgehen, wenn große Datenmengen zu oder von den Platten 10 oder 12 übertragen werden und der Cache-Bus 36 nicht für andere Datenübertragungsvorgänge benötigt wird.
  • In der ersten Operation des Cache-Datenflusses werden die Daten zwischen Pufferregister 34 und Cache-Register 42 und zwischen Cache-Register 42 und Kanalregister 40 übertragen. Wie oben beschrieben wird, wenn ein Datensatz von der Diskette 10 oder der Platte 12 angefordert wird, ein Block verschiedener Sätze durch das Pufferregister 34 und das Cache-Register 42 zum Cache-Speicher 52 transportiert. Der angeforderte Satz wird dann sofort vom Cache-Speicher 52 zum Kanalregister 40 und dann zum Prozessor 46 übertragen. Der Mikroprozessor 54 hält in seinem Schreib- Lese-Speicher 58 ein Verzeichnis der Sätze, die im Cache-Speicher 52 gespeichert sind. Wenn der Prozessor 46 daraufhin einen Satz von der Diskette 10 oder der Platte 12 lesen will, konsultiert der Mikroprozessor seinen Schreib-Lese-Speicher 58, um festzustellen, ob der angeforderte Satz im Cache-Speicher 52 vorhanden ist. Ist der Satz enthalten, wird der Satz vom Cache- Speicher 52 über das Cache-Register 42 zum Kanalregister 40 übertragen, um einen physischen Zugriff auf die Diskette 10 oder die Platte 12 selbst zu vermeiden. Analog dazu konsultiert der Mikroprozessor 54, wenn der Prozessor 46 einen Satz auf die Diskette 10 oder die Platte 12 schreibt, seinen Schreib-Lese-Speicher 58, um festzustellen, ob der Satz bereits im Cache-Speicher 52 vorhanden ist. Ist dies der Fall, wird der Satz im Cache- Speicher 52 überschrieben. Das Verzeichnis, daß in Schreib-Lese- Speicher 58 enthalten ist, läßt ebenfalls erkennen, welche Sätze im Cache-Speicher 52 vom Prozessor 46 geschrieben oder aktualisiert worden sind. Jedesmal, wenn der Cache-Speicher 52 für einen neuen Datenblock benötigt wird, werden zunächst die existierenden geschriebenen oder aktualisierten Sätze zur Diskette 10 bzw. zur Platte 12 übertragen, bevor der neue Block in den Cache-Speicher 52 eingelesen wird. Es ist nicht notwendig, den gesamten Block im Cache-Speicher 52 zur Diskette 10 bzw. zur Platte 12 zu übertragen, wenn nur einige Sätze aktualisiert wurden, oder wenn der Prozessor nur einen oder wenige Sätze auf die Platte geschrieben hat.
  • Es ist möglich, die Cache-Fähigkeiten der E/A-Steuereinheit 8 auszuschalten. In diesem Falle werden die Daten direkt zwischen Pufferregister 34 und Kanalregister 40 übertragen. Ein Grund für die Umgehung des Cache-Speichers 52 ist die Durchführung von Diagnosen für andere Teile der Steuereinheit als den Cache-Speicher 52 und das Cache-Register 42. Ein anderer Grund für das Umgehen des Cache-Speichers ist gegeben, wenn Daten von der Diskette 10 oder der Platte 12 gelesen werden, die ein auszuführendes Programm enthalten. In dieser Situation werden wahrscheinlich große sequentielle Blöcke des Programms übertragen, und es ist nur eine geringe Wahrscheinlichkeit vorhanden, daß sie erneut angefordert oder zurückgeschrieben werden.
  • Durch die Nutzung des Pufferregisters 34 und des Einrichtungsund Cache-Busses 28 und 36 werden Einrichtungsdatenfluß und Cache-Datenfluß getrennt. Daten können zwischen dem Puffer-RAM 32 und der Diskette 10 oder der Platte 12 zur gleichen Zeit übertragen werden wie Daten zwischen Cache-Speicher 52 und Kanalbus 48. Die Idee, Puffer für E/A-Steuereinheiten zu benutzen, wurde von Henrion in der US-Patentschrift 4,159,516 beschrieben. Durch eine Weiterentwicklung ist es möglich, den Puffer-RAM 32 ebenfalls als Cache-Speicher-Medium zu benutzen. Der Puffer-RAM 32 würde dann zur temporären Speicherung eines Datensatzes benutzt werden. Wenn der Prozessor 46 irgendwelche der im Puffer-RAM 32 enthaltenen Bytes schreiben möchte, wird das Byte im Puffer-RAM ohne die Notwendigkeit eines Plattenzugriffs aktualisiert. Für diese Verbesserung ist ein Verzeichnis für den Puffer-RAM 32 erforderlich und ferner zusätzlich zum FIFO-Zugriff ein wahlfreier Zugriff zum Puffer-RAM 32.
  • Hiermit wurde eine E/A-Steuereinheit beschrieben, die einen Cache-Speicher 52 enthält, der durch die Möglichkeiten des Puffer- RAM 32 und des Pufferregisters 34 einen unabhängigen Datenfluß auf dem Einrichtungsbus 28 und dem Cache-Bus 38 erlaubt. Damit können mehrfache Speicher 10 und 12 mit unterschiedlichem Zeitverhalten unterstützt werden, ohne mit dem Datenfluß zwischen Cache-Speicher 52 und Prozessor 46 zu kollidieren.

Claims (9)

1. E/A-Steuereinheit (8) eines Rechnersystems für mehrfache Serienspeicher, die aufweist: einen Einrichtungsbus (28), getrennte Schnittstellenmittel (16, 18, 24; 22, 30), die jedem Speicher (10, 12) zugeordnet sind, der mit dem Einrichtungsbus verbunden ist, um Daten zwischen dem Speicher und dem Einrichtungsbus zu übertragen, ein Pufferregister (34), das mit dem Einrichtungsbus verbunden ist, einen Cache-Bus (36), der mit dem Pufferregister (34) verbunden ist, einen Cache-Speicher (42, 52), der mit dem Cache-Bus verbunden ist und ein Kanalregister (40), das mit dem Cache-Bus verbunden ist, einen Cache-Speicher (42, 52), der mit dem Cache-Bus verbunden ist und ein Kanalregister (40), das mit dem Cache-Bus verbunden ist, um zwischen der E/A-Steuereinheit und dem Rechnersystem (46) eine Schnittstelle zu bilden und dadurch gekennzeichnet ist, daß sie aufweist:
einen Pufferspeicher (32), der mit dem Einrichtungsbus verbunden ist,
ein erstes Steuerlogikmittel, um einen Fluß von Daten auf dem Einrichtungsbus zwischen den Schnittstellenmitteln und dem Pufferspeicher und zwischen dem Pufferspeicher und dem Pufferspeicher zu steuern,
ein zweites Steuerlogikmittel, um einen Fluß von Daten zwischen dem Pufferregister (34) und dem Cache-Speicher (42, 52) und zwischen dem Cache-Speicher (42, 52) und dem Kanalregister (40) zu steuern, wodurch der Datenfluß auf dem Einrichtungsbus unabhängig von dem Daten auf dem Cache-Bus gesteuert werden kann.
2. E/A-Steuereinheit nach Anspruch 1, dadurch gekennzeichnet, daß die Speicher Serienspeicher sind und die Schnittstellenmittel aufweisen, um Daten zu serialisieren und zu entserialisieren.
3. E/A-Steuereinheit nach Anspruch 2, dadurch gekennzeichnet, daß die Serienspeicher Speicher mit verschiedenen Zeitgebungsmerkmalen aufweisen.
4. E/A-Steuereinheit nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß jedes Schnittstellenmittel ein Speicherregister (24; 30) aufweist, das zwischen den Serienspeicher und dem Einrichtungsbus (28) gelegt ist.
5. E/A-Steuereinheit nach Anspruch 1, 2 oder 3, dadurch gekennzeichnet, daß der Cache-Bus (38) und der Einrichtungsbus (28) dieselbe Breite aufweisen.
6. E/A-Steuereinheit nach Anspruch 4 oder 5, dadurch gekennzeichnet, daß jedes Speicherregister (24, 30), der Cache-Bus (38) und der Einrichtungsbus (28) dieselbe Breite aufweisen.
7. E/A-Steuereinheit nach Anspruch 4, 5 oder 6, dadurch gekennzeichnet, daß das erste Steuerlogikmittel ferne den direkten Fluß von Daten zwischen den Speicherregistern (24, 30) und dem Pufferregister (34) steuert.
8. E/A-Steuereinheit nach Anspruch 4, 5, 6 oder 7, dadurch gekennzeichnet, daß das zweite Steuerlogikmittel ferner den direkten Fluß von Daten zwischen dem Pufferregister (34) und dem Kanalregister (40) steuert und ferner das erste Steuerlogikmittel steuert.
9. E/A-Steuereinheit nach irgend einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, daß der Pufferspeicher (32) ein FIFO- Speicher ist und eine Kapazität eines Satzes jedes der Serienspeicher aufweist.
DE8585105249T 1984-06-15 1985-04-30 Ein-/ausgabesteuereinheit fuer mehrfache verschiedenartige serielle speicher mit einem cache-speicher. Expired - Fee Related DE3586299T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US62098184A 1984-06-15 1984-06-15

Publications (2)

Publication Number Publication Date
DE3586299D1 DE3586299D1 (de) 1992-08-13
DE3586299T2 true DE3586299T2 (de) 1993-04-15

Family

ID=24488225

Family Applications (1)

Application Number Title Priority Date Filing Date
DE8585105249T Expired - Fee Related DE3586299T2 (de) 1984-06-15 1985-04-30 Ein-/ausgabesteuereinheit fuer mehrfache verschiedenartige serielle speicher mit einem cache-speicher.

Country Status (9)

Country Link
US (1) US4825357A (de)
EP (1) EP0164550B1 (de)
JP (1) JPS617967A (de)
AR (1) AR241397A1 (de)
AU (1) AU4193585A (de)
BR (1) BR8502592A (de)
CA (1) CA1235231A (de)
DE (1) DE3586299T2 (de)
ES (1) ES8702678A1 (de)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5218685A (en) * 1987-01-02 1993-06-08 General Electric Company System for write once read many optical storage devices to appear rewritable
JP2767587B2 (ja) * 1988-02-02 1998-06-18 富士通株式会社 ローカル端末シミュレータ
JPH01204167A (ja) * 1988-02-09 1989-08-16 Fujitsu Ltd ローカル端末シミュレータにおける入出力動作シミュレート方式
US5016121A (en) * 1988-02-25 1991-05-14 Tandon Corporation Disk drive controller system
US5121480A (en) * 1988-07-18 1992-06-09 Western Digital Corporation Data recording system buffer management and multiple host interface control
US5253351A (en) * 1988-08-11 1993-10-12 Hitachi, Ltd. Memory controller with a cache memory and control method of cache memory including steps of determining memory access threshold values
DE68923863T2 (de) * 1989-01-13 1996-03-28 Ibm Ein-/Ausgabecachespeicherung.
US5689670A (en) * 1989-03-17 1997-11-18 Luk; Fong Data transferring system with multiple port bus connecting the low speed data storage unit and the high speed data storage unit and the method for transferring data
EP0398523A3 (de) * 1989-05-19 1991-08-21 Hitachi, Ltd. Dateneingabe-/-ausgabevorrichtung und Ausführungsunterstützung in digitalen Prozessoren
JPH03100718A (ja) * 1989-09-13 1991-04-25 Hitachi Ltd バッファ付きディスク装置の入出力処理方法
US5297270A (en) * 1989-11-13 1994-03-22 Zenith Data Systems Corporation Programmable cache memory which associates each section of main memory to be cached with a status bit which enables/disables the caching accessibility of the particular section, and with the capability of functioning with memory areas of varying size
FR2659460B1 (fr) * 1990-03-08 1992-05-22 Bull Sa Sous-systeme peripherique de memoire de masse.
US5289581A (en) * 1990-06-29 1994-02-22 Leo Berenguel Disk driver with lookahead cache
JP2550444B2 (ja) * 1991-03-07 1996-11-06 富士通株式会社 デバイス制御装置
JP2836283B2 (ja) * 1991-04-11 1998-12-14 日本電気株式会社 バッファ管理方式
DE69520706T2 (de) 1994-06-03 2001-08-02 Hyundai Electronics America, Milpitas Herstellungsverfahren für einen elektrischen Vorrichtungs-Adapter
US5577213A (en) * 1994-06-03 1996-11-19 At&T Global Information Solutions Company Multi-device adapter card for computer
US5559422A (en) * 1994-07-01 1996-09-24 Welch Allyn, Inc. Wall transformer
US5661848A (en) * 1994-09-08 1997-08-26 Western Digital Corp Multi-drive controller with encoder circuitry that generates ECC check bytes using the finite field for optical data for appending to data flowing to HDA
US5893147A (en) * 1994-12-22 1999-04-06 Intel Corporation Method and apparatus for distinguishing system memory data from alternative memory data in a shared cache memory
US6421755B1 (en) 1999-05-26 2002-07-16 Dell Usa, L.P. System resource assignment for a hot inserted device
US6728823B1 (en) * 2000-02-18 2004-04-27 Hewlett-Packard Development Company, L.P. Cache connection with bypassing feature
US6701390B2 (en) * 2001-06-06 2004-03-02 Koninklijke Philips Electronics N.V. FIFO buffer that can read and/or write multiple and/or selectable number of data words per bus cycle
US20060282602A1 (en) * 2005-06-09 2006-12-14 Tse-Hsine Liao Data transmission device and method thereof
KR20100085564A (ko) * 2009-01-21 2010-07-29 삼성전자주식회사 데이터 처리 시스템과 데이터 처리 방법
CN102437843B (zh) * 2011-11-30 2013-10-16 中国科学院微电子研究所 高电压开关电路

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3931615A (en) * 1974-07-22 1976-01-06 Scientific Micro Systems Controller for digital devices
US3980993A (en) * 1974-10-17 1976-09-14 Burroughs Corporation High-speed/low-speed interface for data processing systems
US4084231A (en) * 1975-12-18 1978-04-11 International Business Machines Corporation System for facilitating the copying back of data in disc and tape units of a memory hierarchial system
US4210959A (en) * 1978-05-10 1980-07-01 Apple Computer, Inc. Controller for magnetic disc, recorder, or the like
JPS55143635A (en) * 1979-04-24 1980-11-10 Nec Corp Input-output controller
US4245307A (en) * 1979-09-14 1981-01-13 Formation, Inc. Controller for data processing system
US4392200A (en) * 1980-01-28 1983-07-05 Digital Equipment Corporation Cached multiprocessor system with pipeline timing
US4371929A (en) * 1980-05-05 1983-02-01 Ibm Corporation Multiprocessor system with high density memory set architecture including partitionable cache store interface to shared disk drive memory
JPS5759243A (en) * 1980-09-26 1982-04-09 Toshiba Corp Buffer circuit
US4394733A (en) * 1980-11-14 1983-07-19 Sperry Corporation Cache/disk subsystem
SE445270B (sv) * 1981-01-07 1986-06-09 Wang Laboratories Dator med ett fickminne, vars arbetscykel er uppdelad i tva delcykler
JPS57120144A (en) * 1981-01-16 1982-07-27 Toshiba Corp Data transfer system
EP0066766B1 (de) * 1981-06-05 1988-08-10 International Business Machines Corporation Ein/Ausgabesteuereinheit mit einem dynamisch einstellbaren Pufferspeicher
US4476526A (en) * 1981-11-27 1984-10-09 Storage Technology Corporation Cache buffered memory subsystem
US4530055A (en) * 1982-03-03 1985-07-16 Sperry Corporation Hierarchical memory system with variable regulation and priority of writeback from cache memory to bulk memory
US4500958A (en) * 1982-04-21 1985-02-19 Digital Equipment Corporation Memory controller with data rotation arrangement
US4811280A (en) * 1983-06-16 1989-03-07 American Telephone And Telegraph Company Dual mode disk controller

Also Published As

Publication number Publication date
ES8702678A1 (es) 1986-12-16
CA1235231A (en) 1988-04-12
US4825357A (en) 1989-04-25
EP0164550A2 (de) 1985-12-18
JPH0332093B2 (de) 1991-05-09
AU4193585A (en) 1985-12-19
EP0164550A3 (en) 1988-08-24
JPS617967A (ja) 1986-01-14
DE3586299D1 (de) 1992-08-13
BR8502592A (pt) 1986-02-04
ES544045A0 (es) 1986-12-16
AR241397A1 (es) 1992-06-30
EP0164550B1 (de) 1992-07-08

Similar Documents

Publication Publication Date Title
DE3586299T2 (de) Ein-/ausgabesteuereinheit fuer mehrfache verschiedenartige serielle speicher mit einem cache-speicher.
DE69215538T2 (de) Verfahren zur verbesserung von partiellen streifenschreib-operationen einer speicherplattenanordnung
DE69020569T2 (de) Modulares ein-/ausgabesystem für superrechner.
DE3280428T2 (de) Datenspeichersystem fuer einen arbeitsrechner.
DE3909896C2 (de)
DE69131728T2 (de) Speicherungssystem für binäre rechner mit hoher geschwindigkeit, hoher kapazität, fehlertoleranz und fehlerkorrektur
DE3587604T2 (de) Datenübertragung zwischen einer Platte und einer Zentraleinheit.
DE69329904T2 (de) Echtzeitverarbeitungssystem
DE69618998T2 (de) Einführung von massenspeichervorrichtungsfunktionen unter verwendung von wirtverarbeitergedächtnis
DE3588009T2 (de) Vorrichtung und Verfahren zum Rekonfigurieren eines Speichers in einer Datenverarbeitungsanordnung.
DE69412775T2 (de) System zur Kontrolle der Befehlswarteschlange der Paritätsplatte in einer Speicherplattenanordnung
DE69227499T2 (de) Einen Flashspeicher verwendendes Speichergerät
DE3852695T2 (de) Multiprozessorsystem mit mehreren Speichern.
DE68923863T2 (de) Ein-/Ausgabecachespeicherung.
DE68928040T2 (de) Pufferspeichersubsystem für Peripheriesteuerungen und Verfahren
DE3390315T1 (de) Anpassungsfähige Unterteilung eines Chachespeicherraums in Domainen
DE3151745A1 (de) Multitasking-datenverarbeitungsanlage
DE69119149T2 (de) Struktur zur direkten Speicher-zu-Speicher-Übertragung
DE69515081T2 (de) Redundantes Speicherplattensystem
DE3021227A1 (de) Plattenspeicher-notizblock-teilsystem
DE69633885T2 (de) Datenübertragungssteuerungsverfahren und Vorrichtung für externes Speichersubsystem
DE69029815T2 (de) Zentralisierte referenz- und änderungstabelle für eine virtuelle speicheranordnung
DE3911721C2 (de)
DE3516413C2 (de)
DE3688136T2 (de) Verfahren zum Testen und Setzen von Daten in einen Datensatz auf einer Platte in eine atomaren Ein/Ausgabeoperation.

Legal Events

Date Code Title Description
8332 No legal effect for de
8380 Miscellaneous part iii

Free format text: IM HEFT 1/93, SEITE 99, SP.1: DIE VEROEFFENTLICHUNG IST ZU STREICHEN

8339 Ceased/non-payment of the annual fee