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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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.
- 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.
- Fig. 1 stellt ein Blockdiagramm einer Ausführung der Erfindung dar.
- 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.
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)
| 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)
| 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 |
-
1985
- 1985-01-31 JP JP60015650A patent/JPS617967A/ja active Granted
- 1985-04-09 CA CA000478633A patent/CA1235231A/en not_active Expired
- 1985-04-30 DE DE8585105249T patent/DE3586299T2/de not_active Expired - Fee Related
- 1985-04-30 EP EP85105249A patent/EP0164550B1/de not_active Expired
- 1985-05-03 AU AU41935/85A patent/AU4193585A/en not_active Abandoned
- 1985-05-30 BR BR8502592A patent/BR8502592A/pt not_active IP Right Cessation
- 1985-06-05 AR AR85300632A patent/AR241397A1/es active
- 1985-06-11 ES ES544045A patent/ES8702678A1/es not_active Expired
-
1987
- 1987-10-14 US US07/110,080 patent/US4825357A/en not_active Expired - Fee Related
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 |