DE68923863T2 - Ein-/Ausgabecachespeicherung. - Google Patents
Ein-/Ausgabecachespeicherung.Info
- Publication number
- DE68923863T2 DE68923863T2 DE68923863T DE68923863T DE68923863T2 DE 68923863 T2 DE68923863 T2 DE 68923863T2 DE 68923863 T DE68923863 T DE 68923863T DE 68923863 T DE68923863 T DE 68923863T DE 68923863 T2 DE68923863 T2 DE 68923863T2
- Authority
- DE
- Germany
- Prior art keywords
- memory
- cache
- input
- line
- access
- 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
- 238000013475 authorization Methods 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 2
- 238000012546 transfer Methods 0.000 description 28
- 238000012545 processing Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 5
- 238000013519 translation Methods 0.000 description 4
- 230000014616 translation Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared 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)
- Storage Device Security (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf Ein- /Ausgabecachespeicherung.
- Im allgemeinen haben Computersysteme mehrere verschiedene Speicherschichten, die eine Speicherhierarchie definieren. Diese Schichten enthalten normalerweise Register in einer Zentraleinheit, einem Hauptsystemspeicher und Massenspeicher, zum Beispiel Platten. Die Leistung dieser verschiedenen Ebenen ist ganz unterschiedlich; die Prozessorregister sind viel schneller als der Systemspeicher, der seinerseits deutlich schneller als der Zugriff auf den Massenspeicher ist.
- Um die Leistung des Systems zu verbessern, wird ein Cachespeicher, der aus einem kleinen, schnellen Speicher besteht, oft zwischen der Zentraleinheit und dem Systemspeicher verwendet. Der Cachespeicher nutzt die Position des Referenzphänomens innerhalb Computerprogrammen aus, um Daten, die voraussichtlich wiederverwendet werden, in dem schnellen Speicher zu speichern.
- Ein ähnlicher Engpaß tritt zwischen dem Systemspeicher und den viel langsameren Massenspeichereinheiten und anderen Ein- /Ausgabeeinheiten auf, die Daten in den und aus dem Systemspeicher übertragen müssen. Eine Systemauslegung, welche die Datenübertragung zwischen Ein-/Ausgabeeinheiten effizienter gestaltet, deren Definition - wie hier verwendet - Massenspeichereinheiten enthält, wird eine positive Auswirkung auf die Leistung des gesamten Systems haben. Herkömmliche Cachespeicher-Technologie, die zum Beispiel zwischen einer Zentraleinheit und dem Systemspeicher verwendet wird, funktioniert jedoch mit Ein-/Ausgabeeinheiten nicht gut.
- Dies liegt zum größten Teil an Unterschieden in Zugriffsmustern, die bei einer einzelnen Zentraleinheit und einer Vielzahl von Ein-/Ausgabeeinheiten festgestellt wurden. Eine Zentraleinheit ist eine einzelne Einheit, die auf den Speicher zugreift, und die eine große Anzahl von relativ direkten Zugriffen auf verschiedene Speicherstellen innerhalb des Systemspeichers durchführt. Speicherzugriffe durch Ein-/Ausgabeeinheiten haben ein unterschiedliches Anwendungsmuster. Jede Einheit greift normalerweise nur auf wenige Speicherstellen zu, verschiedene Einheiten greifen jedoch auf verschiedene Speicherplätze zu. Außerdem greifen die verschiedenen Einheiten in nicht vorhersehbaren Mustern auf den Speicher zu.
- Da die Ein-/Ausgabeeinheiten relativ selten auf den Speicher zugreifen, wird bei diesen Einheiten selten ein Cachespeichertreffer auftreten. Dies trifft insbesondere zu, wenn die Ein- /Ausgabeeinheiten, zum Beispiel Platten, eine große Anzahl von aufeinanderfolgenden Speicherplätzen lesen oder schreiben. Nach solch einer Übertragung wäre ein Cachespeicher mit Daten gefüllt, die von dieser Einheit übertragen wurden. Die Bereitstellung eines separaten Cachespeichers für jede Ein-/Ausgabeeinheit ist im allgemeinen nicht machbar.
- Wenn es einige Teile aus dem Hauptsystemspeicher gibt, auf die sowohl von den Ein-/Ausgabeeinheiten als auch von der Zentraleinheit zugegriffen werden kann, kann die Zentraleinheit über den Ein-/Ausgabecachespeicher auf diesen Speicher zugreifen, um ein Kohärenzproblem mit einem normalen CPU Cachespeicher zu vermeiden. Dies führt zu einer Störung bei Benutzung eines Ein-/Ausgabecachespeichers mit den Ein- /Ausgabeeinheiten.
- Ein weiteres Problem, das Designer, die Computersysteme zur Unterstützung von Mehrplatzumgebungen entwerfen, berücksichtigen müssen, ist das des Zugriffsschutzes. Parallelverarbeitungen müssen vom Zugriff auf Speicherplätze, die von anderen Verarbeitungen und von solchen, die für spezielle Zwecke vom Betriebssystem benutzt werden, abgehalten werden. Eine große Anzahl von Zugriffssteuerungsschemata sind dem Fachmann bekannt. Mechanismen, welche die Zugriffssteuerung in der Hardware implementieren, liefern gegenüber Lösungen, die auf Software basieren, bessere Leistungen.
- In einem solchen Mehrplatzsystem muß die Ein-/Ausgabe von den zahlreichen Einheiten irgendwie untergebracht werden. Ein- /Ausgabezugriffe müssen daran gehindert werden, in bestimmten Speicherbereichen aufzutreten, damit die für die Mehrplatzsysteme erforderlichen Speicherschutzschemata implementiert werden können. Der Versuch, eine Lösung für dieses Problem zu finden, hat sich als schwierig erwiesen.
- Die vorliegende Erfindung liefert einen Cachespeicher zur Benutzung in einem Computersystem, in welchem der Cachespeicher zwischen einem Systemspeicher und einer Vielzahl von Ein- /Ausgabeeinheiten liegt, wobei der Cachespeicher enthält: einen Pufferspeicher, der mit den Ein-/Ausgabeeinheiten und diesem Systemspeicher verbunden ist, wobei der Pufferspeicher in einer Vielzahl von Zeilen adressierbar ist; Cachespeicher- Steuermittel, um die Adressen von Daten, die in jeder Zeile dieses Pufferspeichers enthalten sind, zu speichern; Mittel, um eine Datenanforderung von einer der Ein-/Ausgabeeinheiten zu empfangen, wobei die Datenanforderung die Identität der Ein-/Ausgabeeinheit und die Adresse der angeforderten Daten enthält; Mittel, um diese Datenanforderung mit den Adressen in den Cachespeicher-Steuermitteln zu vergleichen, um zu bestimmen, ob diese Daten aktuell innerhalb des Pufferspeichers enthalten sind oder nicht; Mittel, um auf die angeforderten Daten von diesem Pufferspeicher aus zuzugreifen, sofern diese darin enthalten sind; und dadurch gekennzeichnet ist, daß ein Verzeichnis wenigstens eine Eingabe hat, die mit jeder Ein- /Ausgabeeinheit verbunden ist, wobei jedes Verzeichnis eine Identifikation von einer entsprechenden Zeile in dem Pufferspeicher enthält, wobei als Reaktion auf die Identität der Ein-/Ausgabeeinheit, welche die Daten anfordert, das Verzeichnis aus den Cachespeicher-Steuermitteln die Adresse der Daten für die entsprechende Zeile im Pufferspeicher auswählt, wobei die ausgewählte Adresse anschließend von den Vergleichsmitteln benutzt wird, um zu bestimmen, ob die angeforderten Daten aktuell in dem Pufferspeicher enthalten sind oder nicht; und Mittel, um sicherzustellen, daß eine Ein-/Ausgabeeinheit nur auf die Zeile oder die Zeilen in diesem Systemspeicher zugreifen kann, welche den Verzeichniseingaben, die zu der Ein- /Ausgabeeinheit gehören, entspricht bzw. entsprechen.
- Eine solche Anordnung kann eine Ein-/Ausgabe-Schnittstelleneinheit liefern, um einen Hardware-Speicherzugriffsschutz für jede Einheit vorzusehen und einen effizienten Ein-/Ausgabepuffer im Systemspeicher bereitzustellen, der Übersetzungen von virtueller Speicheradresse in Realspeicheradresse ausführt. Es kann auch ein Systemspeicher in der Ein-/Ausgabe- Schnittstelleneinheit bereitgestellt werden, welcher Ein-/Ausgabeeinheiten separaten Zugriff auf die reservierten Teile eines Schnittstellenpuffers gewährt.
- In einer solchen Anordnung, die nachstehend ausführlicher beschrieben wird, hat ein Ein-/Ausgabecachespeicher eine Vielzahl von Cachespeicherzeilen. Jede Ein-/Ausgabeeinheit hat ein reserviertes Register, das ein Verzeichnisfeld enthält. Das Verzeichnisfeld wird verwendet, um eine Cachespeicherzeile oder mehrere Cachespeicherzeilen, die zu jeder Ein-/Ausgabeeinheit gehört bzw. gehören, auszuwählen. Die reservierten Register enthalten ebenfalls für jede Ein-/Ausgabeeinheit Zugriffsberechtigungsinformationen. Diese Berechtigung wird gegenüber der Zugriffsinformation geprüft, die in einer virtuellen Seitentabelle enthalten ist, bevor einer Ein-/Ausgabeeinheit der Zugriff auf eine virtuelle Seite gewährt wird.
- Die vorliegende Erfindung wird außerdem anhand von Beispielen mit Bezug auf ein Ausführungsbeispiel beschrieben, das in den beiliegenden Zeichnungen illustriert wird, in denen
- Fig. 1 ein Blockdiagramm von einem Teil eines Computersystems zeigt;
- Fig. 2 ein Diagramm von einer Steuereinheit eines Ein- /Ausgabecachespeichers zeigt; und
- Fig. 3, in Teil a-d, ein Flußdiagramm zeigt, das die Funktion der Steuereinheit des Cachespeichers von Fig. 2 beschreibt.
- Mit Bezug auf Fig. 1 wird ein Systemspeicher 10 über eine Steuereinheit 14 des Ein-/Ausgabecachespeichers (IOCC) mit einem Ein-/Ausgabebus (E/A) 12 verbunden. Ein Systembus 15, der Adreß-, Daten- und Steuerleitungen enthält, verbindet den Systemspeicher 10 mit der IOCC 14. Die IOCC 14 wird mit dem E/A Bus 12 über die Adreß-, Daten- und Steuerleitungen 16 verbunden.
- Eine Ein-/Ausgabeeinheit 17, potentiell in der Mehrzahl, wird in der Verbindung mit dem E/A Bus 12 gezeigt. Ein-/Ausgabeeinheiten können zum Beispiel Bildschirme, Steuereinheiten für Magnetplattenlaufwerk und Magnetbandlaufwerk sowie serielle und parallele E/A Ports enthalten. Wie nachstehend beschrieben wird, wird der Busspeicher 18, der als Systemspeicher adressierbar ist, ebenfalls mit dem E/A Bus 12 verbunden. Alle Datenübertragungen zwischen den mit E/A Bus 12 und dem Systemspeicher 10 verbundenen Einheiten erfolgen über die IOCC 14.
- Um die Leistung des Systemspeichers 10 zu verbessern, kann dieser, wie im Stand der Technik bekannt, verschachtelt oder anders für Hochgeschwindigkeits-Blockübertragungen optimiert werden. Daten werden entlang den Signalleitungen 16 übertragen, indem Hochgeschwindigkeits-Blockübertragungen verwendet werden, die regelmäßig die IOCC freigeben, um gegebenenfalls mit den Einheiten in dem E/A Bus 12 zu kommunizieren.
- Die IOCC 14 führt für den E/A Bus 12 Funktionen wie Datenpufferung und Übersetzung von virtueller Speicheradresse in Realspeicheradresse aus. Außerdem führt die IOCC 14 für alle E/A Anforderungen eine Zugriffsberechtigungsprüfung durch. Das Schreiben von Daten erfolgt nicht direkt über den Systemspeicher 10. Statt dessen werden diese in der IOCC 14 zurückgehalten, bis die geschriebenen Daten aus der IOCC 14 entfernt wurden.
- Fig. 2 zeigt ein ausführliches Diagramm der IOCC 14. Der E/A Datenpuffer 20 wird mit einem Cachepuffer 22 verbunden. Dieser Cachepuffer 22 wird vorzugsweise mit 16 Zeilen organisiert, von denen jede Zeile 64 Bytes enthält. Der Cachepuffer 22 ist seinerseits mit dem Systemspeicher 10 verbunden. Daten werden zwischen dem Cachepuffer 22 und dem Systemspeicher 10 übertragen, indem eine Hochgeschwindigkeits-Blockdatenübertragung verwendet wird. Die genaue Art dieser Blockübertragung ist nicht Teil der vorliegenden Erfindung.
- Der Systemspeicher 10 ist in Seiten organisiert und außerdem in Zeilen innerhalb der Seiten. Obwohl die Größe von Seiten und Zeilen nicht Teil der vorliegenden Erfindung ist, wird die Seitengröße mit 4 KB und die Zeilengröße mit 64 KB angenommen. Dies ergibt 64 Zeilen pro Seite. Übertragungen in den und aus dem Systemspeicher 10 erfolgen in minimal bemessenen Einheiten von einer Zeile.
- Daten werden zwischen dem E/A Datenpuffer 20 und dem Cachepuffer 22 gemäß den Speicherplätzen übertragen, die von einer 4- Bit-Adreßleitung 24 und einer 6-Bit-Adreßleitung 26 von 6 Bit adressiert werden. Der Wert in Leitung 24 wählt eine von 16 Zeilen innerhalb des Cachepuffers 22 aus, während der Wert in Leitung 26 eines von 64 Bytes innerhalb der ausgewählten Zeile auswählt.
- Adressen aus dem E/A Bus 12 werden in dem E/A Adreßpuffer 28 gespeichert. Die sechs niederwertigsten Bits (LSB's) des E/A Adreßpuffers 28 werden als Byteadreßwert für den Cachepuffer 22 verwendet, der von Leitung 26 versorgt wird. Die nächsten sechs höherwertigen Bits des E/A Adreßpuffers 28 werden über die Signalleitungen 30 mit einem Vergleicher 32 und über die Leitungen 34 mit dem Systemspeicher 10 verbunden. Innerhalb des Systemspeichers 10 werden die Signale in den Leitungen 34 benutzt, um eine Zeile aus 64 Zeilen innerhalb einer Seite auszuwählen.
- Die 20 größten Bits (MSB's) des E/A Adreßpuffers 28 werden über die Leitungen 36 mit einem Vergleicher 38 und einer Translation Control Word (TCW) Tabelle 40 verbunden. Die TCW Tabelle ist in dem Stand der Technik auch als Seitentabelle bekannt. Es ist ein schneller, dedizierter Speicher, der Teil von der IOCC 14 ist und nicht in dem Adreßraum des Systems vorhanden ist.
- Sollte es nicht möglich sein, einen dedizierten Speicher zu integrieren, der groß genug ist, um die gesamte TCW Tabelle 40 zu speichern, kann der dedizierte Speicher als Cachespeicher für die Tabelle zusammen mit der aktuell in dem Hauptadreßraum des Systems gespeicherten Tabelle benutzt werden, aber eine solche Anordnung wird im allgemeinen unter dem Gesichtspunkt der Leistung nicht erwünscht. In vielen Systemen haben die E/A Einheiten jedoch Zugriff auf nur einen kleinen Teil des Systemadreßraums. Nur der Teil des Adreßraums, auf den die E/A Einheiten Zugriff haben, muß in der TCW Tabelle 40 dargestellt werden. In solchen Systemen muß der dedizierte Speicher für die TCW Tabelle 40 nicht extrem groß sein, und es sollte möglich sein, einen zu integrieren, der die gesamte TCW Tabelle 40 speichern kann, die für die E/A Einheiten benötigt wird. Die Organisation des TCW Speichers 40 wird nachstehend beschrieben.
- Eine Datei der Cachespeicher-Steuerregister 42 enthält 16 separate Register. Ein Register der Datei 42 ist zu jedem gegebenen Zeitpunkt aktiv, wobei das aktive Register über ein 4 Bit Signal auf Leitung 44 ausgewählt werden kann. Die 20 MSB's des aktuell ausgewählten Cachespeicher-Steuerregisters 42 werden über die Signalleitungen 46 mit dem Vergleicher 38 verbunden. Die nächsten sechs niederwertigeren Bits des ausgewählten Cachespeicher-Steuerregisters 42 werden über die Signalleitungen 48 verbunden. Die drei LSB's werden mit D, C und I markiert. Bei diesen Bits handelt es sich um ein Kennbit (D-Bit), aktuelles Bit (C-Bit) und ein Ungültigkeitsbit (I-Bit). Die Benutzung dieser Bits wird in Verbindung mit Fig. 3 beschrieben.
- Eine Datei 50 mit 16 Registern definiert einen TCW Cachespeicher, wobei ein aktives Register von dem Wert in den Signalleitungen 52 ausgewählt wird. Der Wert in den Leitungen 52 ist stets der gleiche wie der Wert in den Leitungen 44. Die 20 MSB's des ausgewählten TCW Cachespeicherregisters 50 werden über die Adreßleitungen 54 mit dem Systemspeicher 10 verbunden. Diese 20-Bit-Adresse wird benutzt, um eine reelle Seite innerhalb des Systemspeichers 10 zu adressieren.
- Die nächsten niederwertigeren Bits des TCW Cachespeichers 50 definieren ein DIR Feld, das 4 Bit breit ist. Der Zweck des DIR Felds sowie die Funktion des DIR Signals werden nachfolgend beschrieben. Das DIR Signal wird über die Signalleitungen 58 mit einem Select-Schaltkreis 56 verbunden. Ein 4-Bit-Signal in den Leitungen 60 wird ebenfalls mit dem Select-Schaltkreis 56 verbunden und enthält den gleichen Wert wie der, der in den Signalleitungen 52 festgestellt wurde.
- Die 8 LSB's des TCW Cachespeichers 50 werden in zwei Felder von je 4 Bits aufgeteilt. Die ersten vier LSB's sind Steuerbits, deren Funktionen nachfolgend beschrieben werden. Die nächsten vier Bits definieren ein KEY Feld, das benutzt wird, um für jede Seite in dem Systemspeicher 10 die Zugriffsberechtigung festzulegen. Die KEY Bits und die beiden niedrigeren Steuerbits werden über die Signalleitungen 62 beziehungsweise 64 mit einem DECODE/SELECT Schaltkreis 66 verbunden.
- Eine Datei des Kanalstatusregisters 68 enthält 16 Register, von denen eines aktiv ist, was von dem Wert eines vier-Bit- Signals in den Leitungen 70 abhängig ist. Die Signalleitungen 70 werden von einem DEVICE SELECT Signal getriggert, was nachstehend beschrieben wird.
- Die 16 MSB's des Kanalstatusregisters 68 werden über die Signalleitung 72 mit dem DECODE/SELECT Schaltkreis 66 verbunden. Die vier LSB's definieren ein DIR Feld und werden aus dem aktiven Kanalstatusregister 68 in Leitung 74 übertragen, das mit den Signalleitungen 44, 52 und 60, wie oben beschrieben, verbunden ist.
- Die TCW Tabelle 40 ist ein Speicher, der in jeder Speicherstelle eine Eingabe enthält, die das gleiche Format wie die des TCW Cachespeichers 50 hat. Jede Eingabe in der TCW Tabelle 40 enthält eine reelle Seitenzahl, eine DIR Eingabe, einen KEY und vier Steuerbits. Wenn eine Eingabe aus der TCW Tabelle 40 gelesen wird, wird diese entlang den Signalleitungen 78 in ein Halteregister 76 übertragen. Vier Bits aus einer Eingabe in der TCW Tabelle 40, die dem DIR Feld entsprechen, werden direkt in das DIR Feld des aktiven Kanalstatusregisters 68 in den Signalleitungen 80 übertragen. Wenn eine Eingabe aus der TCW Tabelle 40 in ein TCW Cachespeicherregister 50 geladen wird, wird diese entlang den Signalleitungen 82 aus dem Halteregister 76 übertragen.
- Jede mit dem E/A Bus 12 verbundene Einheit wird durch eines der 16 Kanalstatusregister 68 dargestellt. Das mit der Leitung 70 verbundene DEVICE SELECT Signal identifiziert nur eine der mit dem E/A Bus 12 verbundenen Einheiten. Dieses Signal gibt an, welche Einheit eine E/A Funktion ausführt. Das DEVICE SELECT Signal kann auf jede gewünschte Weise generiert werden. Wenn die IOCC 14 mit einem Computersystem benutzt wird, das einen IBM Microchannel Bus hat, ist das DEVICE SELECT Signal vorzugsweise das gleiche wie das Buszuteilungssignal. In dem Microchannel Bus hat jede Einheit eine eigene Buszuteilungsebene, und diese Identifizierung kann als DEVICE SELECT Signal verwendet werden.
- Wenn eines der Kanalstatusregister 68 von dem Signal in den Leitungen 70 ausgewählt wird, werden die vier LSB's als ein DIR (Verzeichnis) Signal benutzt, um ein Cachespeicher-Steuerregister 42, ein TCW Cachespeicherregister 50 und eine Zeile aus dem Cachepuffer 22 auszuwählen. Mit Ausnahme einer Situation, die nachstehend beschrieben wird, veranlaßt der Select- Schaltkreis 56 das Signal in den Leitungen 60 mit den Leitungen 24 verbunden zu werden, um eine Zeile aus dem Cachepuffer 22 auszuwählen. Das ausgewählte Cachespeicher-Steuerregister 42, das TCW Cachespeicherregister 50 und die Zeile in dem Cachepuffer 22 stimmen stets überein, um die virtuelle Seitenzahl, Zeilennummer und die reelle Seitenzahl der ausgewählten Zeile innerhalb des Cachepuffers 22 zu beschreiben. Die virtuelle Seitenzahl der ausgewählten Zeile wird in den 20 MSB's des ausgewählten Cachespeicher-Steuer-registers gespeichert, wohingegen die Zeilennummer des Systemspeichers, welche der Zeilennummer der ausgewählten Zeile in dem Cachepuffer 22 entspricht, in den sechs LSB's des Cachespeicher-Steuerregisters 42 gespeichert wird. Die ent-sprechende reelle Seitenzahl wird in den 20 MSB's des TCW Cachespeicherregisters 50 gespeichert.
- Die virtuelle Seitenzahl und die Zeilennummer aus dem Cachespeicher-Steuerregister 42 werden in den Vergleichern 38 beziehungsweise 32 mit der virtuellen Seitenzahl und Zeilennummer in dem E/A Adreßpuffer 28 verglichen. Wenn beide Vergleiche eine Übereinstimmung ergeben, geben die Signale TCW VALID und CACHE LINE VALID diese Tatsache an. Wenn diese Signale eine Übereinstimmung anzeigen, befindet sich die aus dem E/A Adreßpuffer 28 angeforderte virtuelle Adresse tatsächlich in dem Cachepuffer 22 unter der Zeilennummer, die in den Leitungen 24 angegeben wird.
- Um einen Zugriffsschutzmechanismus bereitzustellen, wird jeder Seite eine Unterklassifizierung zugewiesen, die auch als Subjekt bezeichnet wird. Prozesse und Einheiten, denen der Zugriff auf ein besonderes Subjekt gestattet ist, sind berechtigt, auf eine virtuelle Seite zuzugreifen, die dieses Subjekt enthält. Die 16 MSB's des Kanalstatusregisters definieren für jede mit dem E/A Bus 12 verbundene Einheit die Subjekte, für welche der Einheit Zugriffsberechtigung erteilt wurde. Diese Berechtigung wird als Bitmuster implementiert, das eine Berechtigungsmaske definiert. Von 16 möglichen Subjekten sind diejenigen, auf die eine Einheit autorisierten Zugriff hat, mit einer 1 in der entsprechenden Bitposition gekennzeichnet und mit einer 0 in den Bitpositionen, die Subjekten entsprechen, für die keine Zugriffsberechtigung erteilt wurde.
- Das KEY Feld des TCW Cachespeichers 50 definiert das Subjekt für die entsprechende Seite und wird verwendet, um eine Bitposition aus dem Berechtigungsmaskensignal auszuwählen, das in Leitung 72 vorhanden ist. Wenn das Signal in Leitung 62 zum Beispiel F&sub1;&sub6; ist, muß das links höchste Bit des aktivierten Kanalstatusregisters 68 eine 1 für die aktuelle Einheit sein, die auf die aktuelle Seite eine Zugriffsberechtigung hat. Jede Seite hat genau eine zugehörige Zugriffsberechtigungsklassifizierung, so daß eine Seite die Mindestkörnung für das Zugriffsberechtigungsmuster ist.
- Außer dem Subjektzugriff wird der Lese- und Schreibzugriff von den 2 LSB's des TCW Cachespeicherregisters 50 angegeben. Diese Bits geben ebenfalls an, ob es eine Fehlseitenbedingung (diese Seite ist nicht in dem Systemspeicher 10, der seitenweise ausgelagert wurde) gibt oder ob die zugegriffene Speicherseite in einem Busspeicher anstatt in einem Systemspeicher 10 gefunden wurde. Da es Lese-/Schreibsignale (ohne Abbildung) aus dem E/A Bus 12 sind, werden diese Signale ebenfalls mit dem DECODE/SELECT Schaltkreis 66 verbunden. Diese Signale werden benutzt, um sicherzustellen, daß eine Einheit nicht zum Beispiel versuchen wird, eine Schreiboperation in einer virtuellen Seite auszuführen, in der nur Lesezugriff erlaubt ist. Das ACCESS OK Signal außerhalb des DECODE/SELECT Schaltkreises 66 bestimmt, ob der versuchte Zugriff gültig ist. Die Bedeutungen der 2 LSB's in dem TCW Cachespeicher 50 werden in Tabelle I beschrieben.
- 00 - Busspeicher
- 01 - Fehlseitenbedingung
- 10 - Nur Lesezugriff
- 11 - Schreib-/Lesezugriff.
- Da der Busspeicher 18 mit dem E/A Bus 12 verbunden ist, können Teile seines Busspeicher-Adreßraums als ein Teil des Systemadreßraums dargestellt werden. So scheint der Busspeicher in den Einheiten im E/A Bus 12 und in der Systemzentraleinheit der gleiche zu sein wie der Systemspeicher 10. Der Cachepuffer 22 wird jedoch nicht verwendet, um den Busspeicher zu puffern. Die Unterschiede in der Handhabung des Busspeichers sind in Fig. 3 dargestellt. Der Busspeicher kann benutzt werden, um die E/A Einheiten mit einer Großspeicheranforderung, zum Beispiel Steuereinheiten von Bildschirmgeräten, verbunden werden.
- Die verbleibenden beiden Bits des Steuerfelds von dem ausgewählten TCW Cachespeicherregister 50 werden mit R und C gekennzeichnet, Referenz- und Änderungsbit, und werden vorzugsweise von einer virtuellen Speicherverwaltung benutzt, um festzulegen, welche virtuellen Seiten bei Auftreten einer Fehlseitenbedingung auf Platte umzulagern sind. Die Verwendung der RC Bits in der Speicherverwaltung ist in dem Stand der Technik bekannt.
- Die Konzeption der Cachespeicher-Steuereinheit von Fig. 2 ist so, daß auf diese von einer Systemzentraleinheit sowie von den E/A Einheiten, die mit dem E/A Bus 12 verbunden sind, zugegriffen werden kann. Die in Fig. 3 beschriebene Flußsteuerung ist grundsätzlich die gleiche, ungeachtet, ob die IOCC 14 von einer Zentraleinheit oder einer E/A Einheit benutzt wird. Die ersten Schritte der Steuerbeschreibung werden nur verwendet, wenn eine Systemzentraleinheit auf den Speicher über die IOCC 14 zugreift. Die verbleibenden Schritte werden sowohl von der Zentraleinheit als auch von den E/A Einheiten benutzt.
- Die Systemzentraleinheit, welche angenommen jedoch nicht abgebildet wird, die eine Lade- oder Speicheroperation über die IOCC 14 ausführt, kann in einer von beiden Betriebsarten arbeiten. Wenn die Zentraleinheit in einem Überwachungsmodus arbeitet, hat diese immer Zugriff auf alle Speicherplätze, und es erfolgt keine Zugriffsprüfung. Wenn die Zentraleinheit im nichtüberwachenden Modus arbeitet, erfolgt die Zugriffsprüfung wie in Fig. 3 beschrieben. Nicht alle Zugriffe auf Einheiten, die mit dem E/A Bus 12 verbunden sind, werden über die IOCC 14 geleitet. Nur diejenigen Speicherzugriffe, die sich in Speicherplätzen in dem normalen Systemspeicheradreßraum befinden, rufen die Operation der IOCC 14 auf. Zugriffe auf einen separaten E/A Adreßraum, die zum Beispiel von der Intel 80·86 Prozessorreihe unterstützt werden, umgehen die IOCC 14 und werden direkt zu dem E/A Bus 12 geleitet. Für Zugriffe dieser Art wird ein Umgehungsmerker gesetzt, um anzuzeigen, daß die IOCC 14 umgangen wurde.
- Die ausführliche Operation der IOCC 14 wird nun in Verbindung mit Fig. 3 beschrieben. Die Zentraleinheit erscheint in der IOCC 14 nur als eine andere E/A Einheit, die ihr eigenes reserviertes Kanalstatusregister 68 hat, wie dies in Verbindung mit Fig. 2 beschrieben wurde.
- Die mit dem E/A Bus 12 verbundenen Einheiten, welche logischerweise die Systemzentraleinheit enthalten, bestimmen, wenn diese versucht, eine Lade-/Speicheroperation über die IOCC 14 durchzuführen, welche Einheit zu der IOCC 14 Zugriff hat. Wie oben beschrieben, hat der Gewinner von dieser Zuteilung eine eindeutige Zuteilungsebenenkennung, die als DEVICE SELECT Signal verwendet wird.
- An verschiedenen Punkten innerhalb der Flußsteuerung wird eine Fehlerprüfung durchgeführt. Wenn ein Fehler festgestellt wird, springt die Steuerung zu Schritt 94, was dazu führt, daß der Fehler protokolliert wird. Vorzugsweise werden ein 4-Bit-Fehleranzeiger sowie Seite und Zeile aus dem Puffer 28, in denen der Fehler aufgetreten ist, in das Kanalstatusregister 68 der ausgewählten Einheit gesetzt. Nachdem der Fehler bearbeitet wurde, wird das Register 68 mit der Berechtigungsmaske und dem DIR Feld neu geladen. Der Fehler wird anschließend an die Einheit 96 gemeldet.
- Das DEVICE SELECT Signal wird benutzt, um ein Einheitenregister - Schritt 106 - auszuwählen, und die entsprechende Cachespeicherzeile in dem Cachepuffer 22, die entsprechenden Register in der Cachespeicher-Steuerungsregisterdatei 42 und die TCW Cachespeicherregisterdatei 50 werden mit Hilfe des DIR Signals - Schritt 108 - ausgewählt. Zu diesem Zeitpunkt macht die Einheit, welche die Schlacht um die Zuteilung für den E/A Bus 12 gewonnen hat, ebenfalls die gewünschte Adresse - Schritt 110 - geltend.
- Eine Seitenauslagerung-Bereichsprüfung - Schritt 112 - wird durchgeführt, um festzulegen, ob die geltend gemachte Adresse innerhalb des Teils des virtuellen Speicherraums liegt, auf den von den E/A Einheiten zugegriffen werden kann. Wenn die Seite aus dem Bereich ausgelagert wurde, geht die Steuerung zu Schritt 94 über und es wird ein Fehler protokolliert und gemeldet. Wenn die Seite innerhalb des entsprechenden Bereichs liegt, wird eine Prüfung durchgeführt, um festzustellen, ob es ein Seitentreffer - Schritt 114 - zwischen der geltend gemachten Adresse und dem Cachepuffer 22 gibt. Diese Bestimmung wird in dem Vergleicher 38 durchgeführt und durch das Signal TCW VALID angezeigt.
- Wenn die zuvor zugegriffene Seite, welche in dem Cachespeicher-Steuerregister 42 gespeichert ist, mit den Seiten innerhalb des E/A Puffers 28 übereinstimmt, gibt es einen Seitentreffer und die Steuerung geht zu Schritt 116 über. Eine Prüfung wird auf eine Fehlseitenbedingung - Schritt 116 - durchgeführt, welche von den 2 LSB's des ausgewählten TCW Cachespeicherregisters 50 mit Hilfe des in Tabelle I dargestellten Bitmusters angezeigt wird. Wenn es eine Fehlseitenbedingung gibt, wird ein Fehler protokolliert und dem Prozessor gemeldet.
- Wenn es keine Fehlseitenbedingung gibt, die anzeigt, daß sich die angeforderte virtuelle Seite aktuell in dem Systemspeicher 10 oder in einem Busspeicher befindet, der in dem Systemadreßraum dargestellt ist, wird eine Prüfung durchgeführt, um festzustellen, ob die anfordernde Einheit zum Zugriff auf diese Seite - Schritt 118 - berechtigt ist. Außer der Subjektprüfung, die durch Vergleich des KEY Felds von dem TCW Cachespeicherregister 50 mit dem Berechtigungsmaskenfeld des Kanalstatusregisters 68 durchgeführt wird, erfolgt eine Prüfung, um sicherzustellen, daß eine Einheit nicht versucht, in eine Seite zu schreiben, in der nur Lesezugriff erlaubt ist. Wenn das Signal ACCESS OK angibt, daß der versuchte Zugriff ungültig ist, wird ein Fehler protokolliert und dem Prozessor gemeldet.
- Wenn die Einheit den Zugriff auf die angeforderte Seite für gültig erklärt hat, wird eine Prüfung durchgeführt, um festzustellen, ob die ausgewählte Cachespeicherzeile in dem Puffer 22 ungültig ist. Diese Prüfung erfolgt, indem das I-Bit des ausgewählten Cachespeicher-Steuerregisters 42 getestet wird. Wenn das I-Bit gesetzt wurde, sind Daten in der ausgewählten Cachespeicherzeile innerhalb des Puffers 22 vorhanden, die für die Einheit, welche den Zugriff fordert, nicht zugänglich sind. Dies ist eine Sicherheitseinrichtung, die Prozesse und Einheiten daran hindert, auf Daten aus jedem anderen Adreßraum zuzugreifen. Das I-Bit wird gesetzt, wenn eine E/A Übertragung, welche die Cachespeicherzeile benutzt, abgeschlossen ist, und die Daten nicht aus der Cachespeicherzeile innerhalb des Puffers 22 gelöscht werden. Wann immer eine Cachespeicherzeile aus dem Puffer 22 in den Systemspeicher geschrieben wird, wird diese Cachespeicherzeile mit Nullen aufgefüllt, wodurch die Daten, welche zuvor dort gespeichert wurden, wirkungsvoll gelöscht werden. Wenn jedoch Daten aus dem Systemspeicher 10 in eine E/A Einheit gelesen werden, bleibt die letzte Zeile der in den Cachepuffer 22 geladenen Daten unberührt. Wenn eine E/A Übertragung abgeschlossen ist, schreibt eine Systemüberwachungseinrichtung eine 1 in das entsprechende I-Bit; es sei denn, die Cachespeicherzeile wurde in den Systemspeicher 10 geschrieben und mit Nullen aufgefüllt.
- Wenn die Ungültigkeitsprüfung 120 der Cachespeicherzeile ein JA ergibt, wird die Prüfung von Schritt 122 übersprungen. Schritt 122 ist eine Prüfung, um zu bestimmen, ob die Cachespeicherzeile ein Treffer war. Wenn dem so ist, läßt die Steuerung Schritt 124 aus. Wenn die Cachespeicherzeile kein Treffer war, wird die Seite korrigiert, die falsche Zeile von dieser Seite bleibt jedoch aktuell im Cachepuffer 22. Wenn die Cachespeicherzeile nicht geladen wurde, wie dies von dem D-Bit in dem Cachespeicher-Steuerregister 42 angezeigt wurde, muß diese nicht gespeichert werden. Wenn die Cachespeicherzeile geladen wurde 126, wird die Cachespeicherzeile in den Speicher 128 geschrieben und die Cachespeicherzeile, wie oben beschrieben, mit Nullen aufgefüllt. Wenn ein Fehler in der Übertragung
- - Schritt 130 - auftritt, wird der Fehler protokolliert und dem Prozessor gemeldet. Tritt kein Fehler auf, werden sowohl das D-Bit als auch das C-Bit auf Null rückgesetzt - Schritt 132 -
- Als nächstes erfolgt eine Prüfung, um festzustellen, ob dies eine Operation in oder aus dem Busspeicher - Schritt 124 - ist. Diese Prüfung wird an den 2 LSB's aus dem ausgewählten TCW Cachespeicherregister 50 für die in Tabelle I definierten Muster durchgeführt. Wenn die Operation eine Busspeicheroperation ist, geht die Steuerung direkt weiter zur Datenübertragung und umgeht die verbleibenden Cachespeicheroperationen.
- Wenn die Operation in dem Systemspeicher ist, wird das Ergebnis der Prüfung NEIN sein, und es wird keine weitere Prüfung stattfinden, um festzustellen, ob die Seite zuvor erwähnt wurde - Schritt 126 -. Diese Prüfung wird von dem R-Bit in dem ausgewählten TCW Cachespeicherregister 50 durchgeführt, das - wenn es gesetzt wird - angibt, daß die ausgewählte Seite zuvor erwähnt wurde. Wenn die Seite erwähnt wurde, wird eine Prüfung durchgeführt, um festzustellen, ob die aktuelle Operation eine Lese-Operation - Schritt 128 - ist. Wenn es keine Lese-Operation war, wird eine Prüfung durchgeführt, um festzustellen, ob diese Seite zuvor geändert wurde - Schritt 130 -. Wenn dem so war, sind die RC Bits unverändert, wie dies der Fall ist, wenn die aktuelle Operation eine Lese-Operation ist. Wenn die Seite zuvor nicht geändert wurde, und es sich um eine Schreib-Operation handelt, werden die RC Bits in der TCW Tabelle 40 und in dem ausgewählten TCW Cachespeicherregister 50 aktualisiert - Schritt 132 -. Diese werden auch aktualisiert, wenn die Prüfung von Schritt 126 anzeigt, daß diese Seite zuvor nicht erwähnt wurde.
- Als nächstes wird eine weitere Prüfung durchgeführt, um festzustellen, ob die Cachespeicherzeile ungültig ist - Schritt 134 -. Wie oben beschrieben, besteht diese in einer Prüfung des I-Bits. Wenn die Cachespeicherzeile ungültig ist, werden die nächsten Schritte übersprungen, wodurch eine neue Zeile aus dem Systemspeicher 10 in den Cachepuffer - Schritt 136 - gelesen wird. Diese zerstört die Daten, die sich zuvor in dieser Cachespeicherzeile befanden. Das Lesen einer neuen Zeile in den Cachepuffer 22 - Schritt 136 - veranlaßt das entsprechende I-Bit, auf Null zurückgesetzt zu werden - Schritt 137 - Wenn die Cachespeicherzeile in Schritt 134 nicht ungültig war, wird erneut eine Prüfung durchgeführt, um festzustellen, ob es sich bei der aktuellen Operation um eine Leseoperation - Schritt 136 - handelt. Wenn dem so ist, erfolgt eine Prüfung, um festzustellen, ob das C-Bit auf 1 gesetzt wurde - Schritt 138 -. Wenn es sich bei der aktuellen Operation um eine Schreiboperation handelt - die andere Möglichkeit -, das Ergebnis von Schritt 136 NEIN ist, wird eine Prüfung durchgeführt wird, um festzustellen, ob die angeforderte Speicherstelle mit einer Cachespeicheradresse - Schritt 140 - abgestimmt wurde. Dies bedeutet, daß die angeforderte Speicherstelle mit einer Zeilengrenze abgestimmt wurde, wie dies der Fall ist, wenn die 6 LSB's von dem E/A Adreßpuffer 28 alle 0 sind. Wenn die angeforderte Speicherstelle nicht abgestimmt wurde, geht die Steuerung zu Schritt 138. Wenn diese abgestimmt ist, und wenn die Zentraleinheit die Einheit ist, welche aktuell den E/A Bus - Schritt 141 - benutzt, wird eine Prüfung durchgeführt, um festzustellen, ob eine aktuelle Übertragung kleiner als die 64 Byte Cachepuffergröße - Schritt 142
- - ist. Wenn dem so ist, geht die Steuerung zu Schritt 138 über. Wenn eine Übertragung durchgeführt wird, die größer als 64 Byte ist, das Ergebnis von Schritt 142 NEIN ist, geht die Steuerung zu Schritt 136 über. Die Wirkung, diesen Punkt in der Flußsteuerung zu erreichen, ist, daß eine große Schreiboperation durchgeführt wird, bei der jedes Byte aus der ausgewählten Zeile des Cachepuffers 22 ausgefüllt wird. Unter diesen Umständen ist es vergeudete Mühe, in eine Zeile aus dem Systemspeicher 10 zu lesen, da jedes einzelne Byte von dieser Zeile durch die aktuelle Schreiboperation überschrieben wird. Somit wird das Lesen aus dem Systemspeicher - Schritt 138 - übersprungen.
- Wenn die Zentraleinheit den Bus - Schritt 141 - nicht benutzt hat, wird eine Prüfung durchgeführt, um festzustellen, ob die E/A Einheit in sequentiellem Modus - Schritt 143 - funktioniert. Der sequentielle Modus wird Einheiten zugewiesen, welche große Datenblöcke lesen und schreiben, zum Beispiel Plattenlaufwerken. Der sequentielle Modus für eine Einheit kann mit einem Bit (ohne Abbildung) in dem Kanalstatusregister 68 angegeben werden. Wenn eine Einheit in sequentiellem Modus schreibt, ist es auch nicht notwendig, die Cachespeicherzeile zu laden. Wenn das Ergebnis von Schritt 143 JA ist, überspringt die Steuerung Schritt 136. Sonst geht die Steuerung zu Schritt 138 über.
- Wenn der Cachepuffer 22 Schritt 136 lädt, wird das I-Bit auf Null gesetzt - Schritt 137 - und eine Prüfung durchgeführt, um festzustellen, ob es irgendwelche Fehler in der Übertragung gibt - Schritt 144 -. Wenn dem so ist, wird der Fehler protokolliert und dem Prozessor gemeldet. Andernfalls werden C-Bit und D-Bit in dem Cachespeicher-Steuerregister 42 aktualisiert
- - Schritt 146 -. Das C-Bit wird auf 1 gesetzt. Das D-Bit wird auf das logische ODER des aktuellen Werts des D-Bits gesetzt, und ein Signal gibt an, ob dies eine Schreiboperation ist. Das heißt, wenn die Cachespeicherzeile bereits geladen war, oder jetzt geschrieben wird, wird das Kennbit gesetzt. Zu diesem Zeitpunkt erfolgt das richtige Setup der IOCC 14, und die Datenübertragung kann beginnen - Schritt 148 -.
- Ein einzelnes Datenwort wird übertragen - Schritt 150 -. Dieses Wort kann aus einem Byte, zwei Byte, vier Byte oder einem anderen Wert bestehen, der von der Hardware-Konfiguration des Systems erstellt wird. Auf jeden Fall handelt es sich bei der Übertragung von Schritt 150 um eine Einzelübertragung, die in einem Buszyklus ausgeführt wird. Wenn ein Fehler in der Übertragung auftritt - Schritt 152 - wird dieser protokolliert und dem Prozessor - wie oben beschrieben - gemeldet. Wenn die Zentraleinheit aktuell den E/A Bus - Schritt 153 - benutzt, wird eine Prüfung durchgeführt, um festzustellen, ob die Übertragung abgeschlossen wurde - Schritt 154 -. Wenn dem so ist, wird keine weitere Operation durchgeführt.
- Wenn die Übertragung nicht abgeschlossen wurde, wird eine Prüfung durchgeführt, um festzustellen, ob diese Operation eine Busspeicheroperation - Schritt 156 - ist. Wie oben beschrieben, wird eine Busspeicheroperation durch 2 LSB's aus dem TCW Cachespeicherregister 50 angegeben. Wenn dies eine Systemspeicheroperation ist, wird eine Prüfung durchgeführt, um festzustellen, ob die nächste Adresse ein Cachespeicher-Zeilentreffer - Schritt 158 - ist. Wenn dem so ist, kehrt die Steuerung zu Schritt 150 zurück, um das nächste Wort zu übertragen. Andernfalls wurde eine Cachespeicher-Zeilengrenze überquert und die Steuerung läßt Schritt 160 aus. Schritt 160 ist eine Prüfung, um festzustellen, ob der aktuellen E/A Operation von einer anderen Einheit zuvorgekommen wurde. Andernfalls kehrt die Steuerung zu Schritt 114 zurück, und die gesamte Cachespeicher-Gültigkeitsprüfung wird wiederholt. Wenn der aktuellen Operation in Schritt 160 zuvorgekommen wurde, wird diese Operation jetzt abgeschlossen. Die Zentraleinheit muß dann den Zugriff zuteilen, um ihre Übertragung abzuschließen.
- Wenn die Prüfung von Schritt 156 anzeigt, daß die aktuelle Operation eine Busspeicheroperation ist, wird eine Prüfung durchgeführt, um festzustellen, ob der aktuellen Übertragung zuvorgekommen wurde - Schritt 166 -. Andernfalls, und wenn die Seite der nächsten Adresse mit der Seite der aktuellen Adresse übereinstimmt, die einen Seitentreffer angibt - Schritt 168 -, kehrt die Steuerung zu Schritt 150 zurück, um das nächste Wort zu übertragen. Wenn Schritt 168 nicht in einem Seitentreffer resultiert, kehrt die Steurung, wie oben beschrieben - zu Schritt 114 zurück.
- Das Endergebnis der Flußsteuerung aus den Schritten 158 bis 168 besteht darin, Operationen im Busspeicher zu erlauben, denen jederzeit zuvorgekommen werden kann, während denjenigen in den gepufferten Systemspeicherstellen nur zuvorgekommen werden kann, wenn eine Zeilengrenze überquert wird.
- Wenn das Ergebnis von Schritt 153 NEIN war, und die Übertragung nicht abgeschlossen wurde - Schritt 162 - wird eine Prüfung auf einen Cachespeicher-Zeilentreffer - Schritt 164 - durchgeführt. Wenn ein Treffer vorhanden ist, kehrt die Steuerung zu Schritt 114 zurück. In der beschriebenen Anordnung kann den E/A Einheiten nicht zuvorgekommen werden, so daß diese den E/A Bus freiwillig aufgeben müssen.
- Mit Bezug auf Fig. 3a werden nun die Operationen beschrieben, die durchzuführen sind, wenn eine Fehlseitenbedingung in Schritt 114 festgestellt wird. Wenn Schritt 114 festlegt, daß es keinen Seitentreffer gegeben hat, unterscheidet sich die virtuelle Seite, auf die aktuell von der Einheit zugegriffen wird, von der virtuellen Seite, auf die zuvor von dieser Einheit zugegriffen wurde. Wenn dies der Fall ist, wird eine nächste TCW Eingabe aus der TCW Tabelle 40 abgerufen - Schritt 170 - und in dem Halteregister 76 plaziert. Wenn es einen Paritätsfehler - Schritt 171 - gibt, wird dieser protokolliert und gemeldet. Die nächste TCW Eingabe ist die Eingabe, die von den 20 MSB's des E/A Puffers 28 adressiert wurde. Die 4 LSB's aus dem Kanalstatusregister 68 werden mittels der DIR Signale, die in Leitung 80 vorhanden sind, aktualisiert - Schritt 172-. Dieses Signal, das sofort in Leitung 74 verfügbar ist, veranlaßt, daß eine neue Zeile in dem Cachepuffer 22 und die entsprechenden Register in der Cachespeicher-Steuerregisterdatei 42 und der TCW Cachespeicher-Registerdatei 50 ausgewählt werden - Schritt 174 -. Der Vergleicher 38 vergleicht dann die neu ausgewählte vorherige Seite in Leitung 46 mit der Seite innerhalb des E/A Adreßpuffers 28. Wenn es nun einen TCW Treffer - Schritt 176 - gibt, wurde auf die aktuell angeforderte Seite von der gleichen Einheit zu einem Zeitpunkt zugegriffen, der vor dem unmittelbar vorherigen Zugriff lag, und diese Seite ist noch in der Cachespeichersteuerung und den TCW Cachespeicherregistern 42, 50 vorhanden. Wann immer eine neue TCW Eingabe in den TCW Cachespeicher 50 geladen wird, muß die Cachespeicherzeile, die von der alten Eingabe adressiert wird, erst in dem Speicher 10 gelöscht werden, falls diese geladen wurde. Dies wird im Schaltkreis 56 mittels des D-Bits des Cachespeicherregisters 42 durchgeführt.
- Wenn der zweite Vergleich - Schritt 176 - ebenfalls in einer Fehlseitenbedingung resultiert, ist es erforderlich, eine neue Eingabe aus der TCW Tabelle 40 zu laden. Zuerst wird eine Prüfung durchgeführt, um mittels des I-Bits festzustellen, ob die Cachespeicherzeile ungültig ist - Schritt 178 -. Andernfalls wird eine Prüfung durchgeführt, um festzustellen, ob die aktuell ausgewählte Cachespeicherzeile geladen ist - Schritt 180 -. Diese Prüfung wird von dem D-Bit innerhalb des Cachespeicher-Steuerregisters 42 durchgeführt. Wenn dem so ist, wird diese Cachespeicherzeile in den Speicher geschrieben - Schritt 182- wie oben beschrieben. Eine Prüfung wird durchgeführt, um festzustellen, ob es einen Fehler in der Übertragung -Schritt 184- gibt, und wenn dem so ist, wird dieser gemeldet und protokolliert. Wenn es keinen Fehler gibt, werden sowohl D-Bit als auch C-Bit auf 0 rückgesetzt -Schritt 186-.
- Im nächsten Schritt wird die neue TCW Eingabe in den TCW Cachespeicher - Schritt 188 - geladen; unabhängig davon, ob die Cachespeicherzeile geladen wurde oder nicht. Diese Eingabe befindet sich aktuell in dem Halteregister 76 und kann in den TCW Cachespeicher geladen werden, ohne daß die Notwendigkeit besteht, erneut auf die TCW Tabelle 40 zuzugreifen. Die 26 MSB's der aktuellen E/A Adresse werden anschließend in das Cachespeicher-Steuerregister - Schritt 190 - geladen, und die Steuerung geht zu Schritt 116.
- In den meisten Fällen wird jeder Einheit in dem E/A Bus eine einzelne Zeile in dem Cachepuffer 22 zugewiesen. Für diese Einheiten sollten die DIR Felder in der TCW Tabelle 40 alle auf den gleichen Wert wie der Wert des DEVICE SELECT gesetzt werden, der jeder Einheit entspricht. In einigen Fällen wird es bei einigen Einheiten gewünscht, mehr als eine Zeile in dem Cachepuffer 22 zu haben. Für diese Einheiten werden die DIR Felder in den Eingaben in der TCW Tabelle 40 gesetzt, um auf die entsprechenden Zeilen in dem Cachepuffer 22 hinzuweisen. Wenn es eine TCW Fehlerbedingung gibt, bestimmt die nächste Eingabe in der TCW Tabelle 40 - wie oben beschrieben -, welche Zeile des Cachepuffers 22 als nächste verwendet wird. Indem die DIR Felder von diesen Eingaben gesetzt werden, um auf verschiedene Zeilen des Cachepuffers 22 hinzuweisen, die für eine einzelne Einheit reserviert sind, kann die Einheit mehr als eine Zeile in dem Cachepuffer 22 benutzen.
- Die DIR Felder in der TCW Tabelle 40 werden von dem Benutzer zugeordnet, das normalerweise ein Betriebssystemprogramm ist. Verschiedene Systeme, die verschiedene Benutzungsstatistiken haben, können durch das Betriebssystem neu konfiguriert werden, indem die Werte in den DIR Feldern der TCW Tabelle 40 abgeglichen werden, damit der Cachepuffer 22 am effizientesten genutzt werden kann. Die Manipulation der DIR Felder in einem Cachespeicher werden, obwohl sich die Benutzung von derjenigen der vorliegenden Erfindung unterscheidet, in der US Patentschrift No. 4,719,568 von Carrubba et al beschrieben und trägt die Überschrift HIERARCHICAL MEMORY SYSTEM INCLUDING SEPARATE CACHE MEMORIES FOR STORING DATA AND INSTRUCTIONS.
- Wenn eine Einheit geöffnet wird, was oft beim Hochfahren des Systems geschieht, wird dieser Speicherraum zugewiesen. Zu diesem Zeitpunkt wird die Zeile beziehungsweise werden die Zeilen in dem Cachepuffer 22 bestimmt, welche die Einheit benutzen wird. Die DIR Eingaben in der TCW Tabelle 40, welche dem zugeteilten Speicherraum entsprechen, werden gesetzt, um auf die ausgewählte Zeile oder die ausgewählten Zeilen in dem Cachepuffer 22 hinzuweisen. Wenn die Zuordnung der Einheit aufgegeben wird, werden die Zeilen in dem Cachepuffer 22 zur Benutzung durch andere Einheiten freigegeben.
- Wie es von dem Fachmann geschätzt wird, liefert die Steuereinheit des Eingabe-/Ausgabecachespeichers, wie oben beschrieben, zwischen den E/A Einheiten, die mit einem E/A Bus 12 und dem Systemspeicher 10 verbunden sind, eine effiziente Schnittstelle. Die Verwendung eines DIR Feldes ermöglicht mehr als eine 64-Bit-Zeile innerhalb des Cachepuffers 22, um einer einzelnen Eingabe-/Ausgabeeinheit zugeordnet zu werden. Der beschriebene Puffer 22 und die Steuereinheit 14 erscheinen dem Benutzer als ein auf 16 Subjekte eingestellter Assoziativ-Cachespeicher.
- Die beschriebene Steuereinheit des Ein-/Ausgabecachespeichers liefert ebenfalls die Übersetzung von virtueller in reelle Seite, und die automatische Hardware sorgt für die Zugriffsberechtigungsprüfung. Der Zugriff wird auf der Basis einer virtuellen Seite zugeordnet, mittels einer Ein-/Ausgabeeinheit wird der Zugriff geprüft, um festzustellen, ob die Einheit zur Durchführung der Operation berechtigt ist. Da die Berechtigungsprüfung in der Hardware erfolgt, ist diese schnell und kann nicht von der Software umgangen werden, ohne daß es zu einem Zusammenbruch des entsprechenden Fehlerbearbeitungsprogramm innerhalb des Betriebssystems kommt.
- Es ist zu bemerken, daß die vorliegende Beschreibung mit der gleichzeitig anhängigen Patentanmeldung Gemeinsamkeiten hat, obwohl eine andere Erfindung angemeldet wird.
Claims (8)
1. Ein Cachespeicher (14) zur Benutzung in einem
Computersystem, in welchem der Cachespeicher zwischen einem
Systemspeicher (10) und einer Vielzahl von Ein-
/Ausgabeeinheiten (17) liegt, wobei der Cachespeicher
enthält:
einen Pufferspeicher (22), der mit den Ein-
/Ausgabeeinheiten und diesem Systemspeicher verbunden ist,
wobei der Pufferspeicher in einer Vielzahl von Zeilen
adressierbar ist;
Cachespeicher-Steuermittel (42), um die Adressen von
Daten, die in jeder Zeile dieses Pufferspeichers enthalten
sind, zu speichern;
Mittel (28, 70), um eine Datenanforderung von einer der
Ein-/Ausgabeeinheiten zu empfangen, wobei die
Datenanforderung die Identität der Ein-/Ausgabeeinheit und die
Adresse der angeforderten Daten enthält;
Mittel (32, 38), um diese Datenanforderung mit den
Adressen in den Cache-Speichersteuermitteln zu vergleichen, um
zu bestimmen, ob diese Daten aktuell innerhalb des
Pufferspeichers enthalten sind oder nicht;
Mittel (24, 26), um auf die angeforderten Daten von diesem
Pufferspeicher aus zuzugreifen, sofern diese darin
enthalten sind;
und dadurch gekennzeichnet ist, daß ein Verzeichnis (70,
68) wenigstens eine Eingabe hat, die mit jeder Ein-
/Ausgabeeinheit verbunden ist, wobei jedes Verzeichnis
eine Identifikation von einer entsprechenden Zeile in dem
Pufferspeicher enthält, wobei als Reaktion auf die
Identität der Ein-/Ausgabeeinheit, welche die Daten anfordert,
das Verzeichnis aus den Cachespeicher-Steuermitteln die
Adresse der Daten für die entsprechende Zeile im
Pufferspeicher auswählt, wobei die ausgewählte Adresse
anschließend von den Vergleichsmitteln benutzt wird, um zu
bestimmen, ob die angeforderten Daten aktuell in dem
Pufferspeicher enthalten sind oder nicht;
und Mittel (56), um sicherzustellen, daß eine Ein-
/Ausgabeeinheit nur auf die Zeile oder die Zeilen in
diesem Systemspeicher zugreifen kann, welche den
Verzeichniseingaben, die zu der Ein-/Ausgabeeinheit gehören,
entspricht bzw. entsprechen.
2. Ein Cachespeicher wie in Anspruch 1 angemeldet, in dem
wenigstens eine Ein-/Ausgabeeinheit mehr als eine
Verzeichniseingabe hat, die damit verbunden ist.
3. Ein Cachespeicher wie in irgendeinem der vorhergehenden
Ansprüche angemeldet, in dem wenigstens zwei Ein-
/Ausgabeeinheiten eine einzelne Verzeichniseingabe haben,
die damit verbunden ist.
4. Ein Cachespeicher wie in irgendeinem vorhergehenden
Anspruch angemeldet, der außerdem für jede Zeile in dem
Pufferspeicher ein Anzeiger von der Zeile enthält, die den
Speicherplätzen in diesem Systemspeicher entspricht, und
sofern vorhanden, ein Anzeiger von einer anderen
Pufferspeicherzeile, auf die von der Ein-/Ausgabeeinheit
zugegriffen werden kann, die aktuell auf diese Zeile zugreift.
5. Ein Cachespeicher wie in irgendeinem vorhergehenden
Anspruch angemeldet, der außerdem enthält:
für jede Zeile in dem Pufferspeicher einen Schutzanzeiger
einer hierfür bestimmten Schutzklasse;
für jede Ein-/Ausgabeeinheit einen Berechtigungsanzeiger
der Berechtigungsklassen, für welche die Einheit
zugriffsberechtigt ist; und
einen Zugriffsschutz-Schaltkreis (66), der mit den
Schutzanzeigern und den Berechtigungsanzeigern gekoppelt ist, um
den Zugriff der Ein-/Ausgabeeinheit auf jene Zeilen zu
beschränken, die eine Zugriffsschutzklasse haben, für die
eine Ein-/Ausgabeeinheit zugriffsberechtigt ist.
6. Ein Cachespeicher wie in Anspruch 5 angemeldet, wobei das
System in Bereiche aufgeteilt ist, die unterschiedliche
Zugriffsschutzklassen haben, und wobei jede Zeile in dem
Pufferspeicher einer Zugriffsschutzklasse zugeordnet wird,
welche die gleiche ist wie diejenige, die dem Bereich des
Systemspeichers zugewiesen wird, der in dieser Zeile
gepuffert wird.
7. Ein Cachespeicher wie in irgendeinem vorhergehenden
Anspruch angemeldet, wobei jede Eingabeeinheit eine einzige
Identifizierung hat und eine Registerdatei geliefert wird,
welche ein Register enthält, das jeder Ein-/Ausgabeeinheit
entspricht, die ein aktuelles Verzeichnis für die
entsprechende Ein-/Ausgabeeinheit hat.
8. Ein Cachespeicher wie in Anspruch 7 angemeldet, wobei die
Registerdatei außerdem den Berechtigungsanzeiger für jede
Einheit enthält.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US29777989A | 1989-01-13 | 1989-01-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE68923863D1 DE68923863D1 (de) | 1995-09-21 |
DE68923863T2 true DE68923863T2 (de) | 1996-03-28 |
Family
ID=23147708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE68923863T Expired - Fee Related DE68923863T2 (de) | 1989-01-13 | 1989-12-11 | Ein-/Ausgabecachespeicherung. |
Country Status (4)
Country | Link |
---|---|
US (1) | US5418927A (de) |
EP (1) | EP0377970B1 (de) |
JP (1) | JPH02228745A (de) |
DE (1) | DE68923863T2 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10143556A1 (de) * | 2001-09-06 | 2003-03-27 | Daimler Chrysler Ag | Fahrzeugmanagementsystem |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04182845A (ja) * | 1990-11-19 | 1992-06-30 | Pfu Ltd | 入出力バスのキャッシュ・タグ検索方式 |
US5469555A (en) * | 1991-12-19 | 1995-11-21 | Opti, Inc. | Adaptive write-back method and apparatus wherein the cache system operates in a combination of write-back and write-through modes for a cache-based microprocessor system |
US5551000A (en) * | 1993-03-18 | 1996-08-27 | Sun Microsystems, Inc. | I/O cache with dual tag arrays |
US5748922A (en) * | 1993-04-05 | 1998-05-05 | Packard Bell Nec | Method and apparatus for reading data from a write only port |
US5526512A (en) * | 1993-09-20 | 1996-06-11 | International Business Machines Corporation | Dynamic management of snoop granularity for a coherent asynchronous DMA cache |
US5619673A (en) * | 1994-06-29 | 1997-04-08 | Intel Corporation | Virtual access cache protection bits handling method and apparatus |
US5687347A (en) * | 1994-09-19 | 1997-11-11 | Matsushita Electric Industrial Co., Ltd. | Data providing device, file server device, and data transfer control method |
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 |
US5712991A (en) * | 1995-01-18 | 1998-01-27 | Texas Instrument Incorporated | Buffer memory for I/O writes programmable selective |
JP3011044B2 (ja) * | 1995-03-13 | 2000-02-21 | 日本電気株式会社 | 入出力制御装置 |
US5640591A (en) * | 1995-05-15 | 1997-06-17 | Nvidia Corporation | Method and apparatus for naming input/output devices in a computer system |
US5623692A (en) * | 1995-05-15 | 1997-04-22 | Nvidia Corporation | Architecture for providing input/output operations in a computer system |
US5805930A (en) * | 1995-05-15 | 1998-09-08 | Nvidia Corporation | System for FIFO informing the availability of stages to store commands which include data and virtual address sent directly from application programs |
US5860138A (en) * | 1995-10-02 | 1999-01-12 | International Business Machines Corporation | Processor with compiler-allocated, variable length intermediate storage |
US5862316A (en) * | 1996-07-01 | 1999-01-19 | Sun Microsystems, Inc. | Multiprocessing system having coherency-related error logging capabilities |
US5802564A (en) * | 1996-07-08 | 1998-09-01 | International Business Machines Corp. | Method and apparatus for increasing processor performance |
US6065100A (en) * | 1996-11-12 | 2000-05-16 | Micro-Design International | Caching apparatus and method for enhancing retrieval of data from an optical storage device |
US5896544A (en) * | 1996-12-26 | 1999-04-20 | Intel Corporation | Software device for supporting a new class of PC peripherals |
US5974497A (en) * | 1997-05-22 | 1999-10-26 | Dell Computer Corporation | Computer with cache-line buffers for storing prefetched data for a misaligned memory access |
US6195730B1 (en) | 1998-07-24 | 2001-02-27 | Storage Technology Corporation | Computer system with storage device mapping input/output processor |
US6536000B1 (en) | 1999-10-15 | 2003-03-18 | Sun Microsystems, Inc. | Communication error reporting mechanism in a multiprocessing computer system |
US8108692B1 (en) | 2006-06-27 | 2012-01-31 | Siliconsystems, Inc. | Solid-state storage subsystem security solution |
US8719807B2 (en) * | 2006-12-28 | 2014-05-06 | Intel Corporation | Handling precompiled binaries in a hardware accelerated software transactional memory system |
JP5157424B2 (ja) * | 2007-12-26 | 2013-03-06 | 富士通セミコンダクター株式会社 | キャッシュメモリシステム及びキャッシュメモリの制御方法 |
US8356184B1 (en) | 2009-06-25 | 2013-01-15 | Western Digital Technologies, Inc. | Data storage device comprising a secure processor for maintaining plaintext access to an LBA table |
US9305142B1 (en) | 2011-12-19 | 2016-04-05 | Western Digital Technologies, Inc. | Buffer memory protection unit |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3723976A (en) * | 1972-01-20 | 1973-03-27 | Ibm | Memory system with logical and real addressing |
US3713107A (en) * | 1972-04-03 | 1973-01-23 | Ncr | Firmware sort processor system |
US3848234A (en) * | 1973-04-04 | 1974-11-12 | Sperry Rand Corp | Multi-processor system with multiple cache memories |
US4070706A (en) * | 1976-09-20 | 1978-01-24 | Sperry Rand Corporation | Parallel requestor priority determination and requestor address matching in a cache memory system |
US4084225A (en) * | 1976-09-24 | 1978-04-11 | Sperry Rand Corporation | Virtual address translator |
US4071890A (en) * | 1976-11-29 | 1978-01-31 | Data General Corporation | CPU-Synchronous parallel data processor apparatus |
US4293910A (en) * | 1979-07-02 | 1981-10-06 | International Business Machines Corporation | Reconfigurable key-in-storage means for protecting interleaved main storage |
US4527237A (en) * | 1979-10-11 | 1985-07-02 | Nanodata Computer Corporation | Data processing system |
US4395758A (en) * | 1979-12-10 | 1983-07-26 | Digital Equipment Corporation | Accelerator processor for a data processing system |
US4399506A (en) * | 1980-10-06 | 1983-08-16 | International Business Machines Corporation | Store-in-cache processor means for clearing main storage |
US4394731A (en) * | 1980-11-10 | 1983-07-19 | International Business Machines Corporation | Cache storage line shareability control for a multiprocessor system |
US4463424A (en) * | 1981-02-19 | 1984-07-31 | International Business Machines Corporation | Method for dynamically allocating LRU/MRU managed memory among concurrent sequential processes |
DE3175351D1 (en) * | 1981-10-28 | 1986-10-23 | Ibm | Scanning device for communication lines, adapted for a communication controller |
US4484267A (en) * | 1981-12-30 | 1984-11-20 | International Business Machines Corporation | Cache sharing control in a multiprocessor |
IT1151351B (it) * | 1982-01-19 | 1986-12-17 | Italtel Spa | Disposizione circuitale atta a realizzare lo scambio di dati tra una coppia di elaboratori operanti secondo il principio master-slave |
US4451884A (en) * | 1982-02-02 | 1984-05-29 | International Business Machines Corporation | Cycle stealing I/O controller with programmable offline mode of operation |
US4509116A (en) * | 1982-04-21 | 1985-04-02 | Digital Equipment Corporation | Special instruction processing unit for data processing system |
US4471430A (en) * | 1982-09-27 | 1984-09-11 | Data General Corp. | Encachement apparatus |
DE3380645D1 (en) * | 1982-12-28 | 1989-11-02 | Ibm | Method and apparatus for controlling a single physical cache memory to provide multiple virtual caches |
US4586133A (en) * | 1983-04-05 | 1986-04-29 | Burroughs Corporation | Multilevel controller for a cache memory interface in a multiprocessing system |
US4729094A (en) * | 1983-04-18 | 1988-03-01 | Motorola, Inc. | Method and apparatus for coordinating execution of an instruction by a coprocessor |
US4667288A (en) * | 1983-06-30 | 1987-05-19 | Honeywell Information Systems Inc. | Enable/disable control checking apparatus |
JPS6093563A (ja) * | 1983-10-27 | 1985-05-25 | Hitachi Ltd | バツフア記憶制御方式 |
US4669043A (en) * | 1984-02-17 | 1987-05-26 | Signetics Corporation | Memory access controller |
JPS617967A (ja) * | 1984-06-15 | 1986-01-14 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | I/oコントロ−ラ |
US4654778A (en) * | 1984-06-27 | 1987-03-31 | International Business Machines Corporation | Direct parallel path for storage accesses unloading common system path |
US4677546A (en) * | 1984-08-17 | 1987-06-30 | Signetics | Guarded regions for controlling memory access |
US4794521A (en) * | 1985-07-22 | 1988-12-27 | Alliant Computer Systems Corporation | Digital computer with cache capable of concurrently handling multiple accesses from parallel processors |
US4775955A (en) * | 1985-10-30 | 1988-10-04 | International Business Machines Corporation | Cache coherence mechanism based on locking |
JPS62145340A (ja) * | 1985-12-20 | 1987-06-29 | Toshiba Corp | キヤツシユメモリ制御方式 |
US4885680A (en) * | 1986-07-25 | 1989-12-05 | International Business Machines Corporation | Method and apparatus for efficiently handling temporarily cacheable data |
US5091846A (en) * | 1986-10-03 | 1992-02-25 | Intergraph Corporation | Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency |
US5029070A (en) * | 1988-08-25 | 1991-07-02 | Edge Computer Corporation | Coherent cache structures and methods |
US4928225A (en) * | 1988-08-25 | 1990-05-22 | Edgcore Technology, Inc. | Coherent cache structures and methods |
-
1989
- 1989-12-11 EP EP89312896A patent/EP0377970B1/de not_active Expired - Lifetime
- 1989-12-11 DE DE68923863T patent/DE68923863T2/de not_active Expired - Fee Related
-
1990
- 1990-01-13 JP JP2006052A patent/JPH02228745A/ja active Granted
-
1992
- 1992-12-23 US US07/996,501 patent/US5418927A/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10143556A1 (de) * | 2001-09-06 | 2003-03-27 | Daimler Chrysler Ag | Fahrzeugmanagementsystem |
Also Published As
Publication number | Publication date |
---|---|
EP0377970A3 (de) | 1991-03-20 |
US5418927A (en) | 1995-05-23 |
EP0377970A2 (de) | 1990-07-18 |
JPH0526217B2 (de) | 1993-04-15 |
EP0377970B1 (de) | 1995-08-16 |
DE68923863D1 (de) | 1995-09-21 |
JPH02228745A (ja) | 1990-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE68923863T2 (de) | Ein-/Ausgabecachespeicherung. | |
DE3688978T2 (de) | Seitenspeicherverwaltungseinheit mit der fähigkeit nach wahl mehrere adressräume zu unterstützen. | |
DE69721590T2 (de) | Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung | |
DE3587694T2 (de) | Speicherzugriffssteuergerät zur Realisierung von geschützten Gebieten in einem Speicher, und mit solchem Speicherzugriffssteuergerät ausgerüsteter Speicher. | |
DE69424767T2 (de) | Kohärente Schreibtransaktionen für Teilzeilen eines Cache-Speichers | |
DE69031978T2 (de) | Einrichtung und Verfahren zum Vermindern von Störungen in zweistufigen Cache-Speichern | |
DE69715203T2 (de) | Ein Datenverarbeitungssystem mit cc-NUMA (cache coherent, non-uniform memory access) Architektur und im lokalen Speicher enthaltenem Cache-Speicher für Fernzugriff | |
DE3587960T2 (de) | Datenverarbeitungsanlage mit einem Speicherzugriffssteuergerät. | |
DE60003273T2 (de) | Verfahren und Vorrichtung zur Erzeugung einer Eingabeadresse | |
DE3588009T2 (de) | Vorrichtung und Verfahren zum Rekonfigurieren eines Speichers in einer Datenverarbeitungsanordnung. | |
DE2459006C2 (de) | Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage | |
DE3151745C2 (de) | ||
DE3688192T2 (de) | Seitenorganisierter cachespeicher mit virtueller adressierung. | |
DE68926036T2 (de) | Speicherkonfiguration zur Verwendung für Schnittstellenbildung zwischen einer Systemsteuereinheit für ein Multiprozessorsystem und dem Hauptspeicher | |
DE68924306T2 (de) | Mehrprozessorrechneranordnungen mit gemeinsamem Speicher und privaten Cache-Speichern. | |
DE69616465T2 (de) | Cachespeicher mit Datenvorausladung | |
DE69031411T2 (de) | Verfahren und Anordnung zum Lesen, Schreiben und Auffrischen eines Speichers mit direktem virtuellem oder physikalischem Zugriff | |
DE69732181T2 (de) | Verfahren und gerät zum zwischenspeichern von systemverwaltungsinformationen mit anderen informationen | |
DE69231611T2 (de) | Verfahren zu grosser logischer Adressierung | |
DE68923026T2 (de) | Speicherdiagnosegerät und Verfahren. | |
DE69230211T2 (de) | Integrierter Speicher, Verwaltungsverfahren und resultierendes Informationssystem | |
DE69028269T2 (de) | Virtuelles Adressierungsverfahren zum Betrieb eines Speichers in einer Datenverarbeitungsanlage und Einrichtung zur Ausführung besagten Verfahrens | |
DE3102150A1 (de) | "schaltungsanordnung mit einem cachespeicher fuer eine zentraleinheit einer datenverarbeitungsanlage | |
DE10219623A1 (de) | System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen | |
DE69029815T2 (de) | Zentralisierte referenz- und änderungstabelle für eine virtuelle speicheranordnung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |