DE69629331T2 - System und Verfahren zur Bereitstellung einer flexiblen Speicherhierarchie - Google Patents

System und Verfahren zur Bereitstellung einer flexiblen Speicherhierarchie Download PDF

Info

Publication number
DE69629331T2
DE69629331T2 DE69629331T DE69629331T DE69629331T2 DE 69629331 T2 DE69629331 T2 DE 69629331T2 DE 69629331 T DE69629331 T DE 69629331T DE 69629331 T DE69629331 T DE 69629331T DE 69629331 T2 DE69629331 T2 DE 69629331T2
Authority
DE
Germany
Prior art keywords
memory
data
storage element
page
storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69629331T
Other languages
English (en)
Other versions
DE69629331D1 (de
Inventor
Bodo K. Danville Parady
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of DE69629331D1 publication Critical patent/DE69629331D1/de
Application granted granted Critical
Publication of DE69629331T2 publication Critical patent/DE69629331T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels

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 vorliegende Erfindung betrifft ein Computersystem und ein Verfahren zum Bereitstellen einer flexiblen Speicherhierarchie mit einem dedizierten Speichertransferbus, gesteuert durch ein Betriebssystem, zum Austauschen von Daten zwischen verschiedenen Speichertypen.
  • Es ist allgemein bekannt, dass ein konventionelles Computersystem eine Zentraleinheit ("CPŲ") und ein Speichersystem umfasst. Im Allgemeinen holt die CPU bei Lesezyklen Daten einer arbiträren Bitlänge (z. B. Blöcke) aus physikalischen (oder Realspeicher-) Adressstellen im Speichersystem. Da die CPU gewöhnlich mit einer höheren Geschwindigkeit arbeitet als das Speichersystem, wird die Gesamtleistung des Computersystems durch die Rate; mit der vom Speicher auf Daten zugegriffen werden kann ("Bandbreite"), und die Zeitverzögerung erheblich beeinflusst, die die CPU erfährt, bevor sie Zugang zu solchen Daten erhält ("Speicherlatenz").
  • Typischerweise wird das Speichersystem, um eine benötigte Bandbreite zu erzielen und um eine benötigte Menge an adressierbarem Speicherraum zu schaffen, gemäß einer strengen und unflexiblen Hierarchie angeordnet. Diese Hierarchie hat gewöhnlich mehrere Speichertypen, wobei jeder dieser Speichertypen einen vorbestimmten, einzigartigen physikalischen (oder Realspeicher-) Adressraum hat. Beispiele für diese Speichertypen sind u. a. langsamer Hauptspeicher (z. B. dynamischer Arbeitsspeicher "DRAM", Video-Arbeitsspeicher "VRAM", usw.), schneller Cache-Speicher (gewöhnlich ein Mehrlevel-Cache-Speicher mit einer Bandbreite, die größer ist als die des langsamen Speichers) und Fernspeicher (Plattenspeichergeräte, Hauptspeicher eines anderen Computersystems usw.), der "langsamer" ist (d.h. eine geringere Bandbreite hat) als Cache- und Hauptspeicher. "Schneller" Speicher hat gewöhnlich eine Bandbreite von etwa 12 Nanosekunden, während langsamer Speicher und entfernt befindlicher Speicher eine Bandbreite von jeweils etwa 50 Nanosekunden und 300 Mikrosekunden haben.
  • Gemäß dieser unflexiblen Speicherhierarchie werden die zuletzt verwendeten Daten im schnellen Cache-Speicher und weniger häufig verwendete Daten in den anderen langsameren Speichertypen gespeichert. Die oben beschriebene unflexible Hierarchie ergibt zwar einen rentablen Ansatz bei der Erzielung einer benötigten Bandbreite für einen bestimmten Speicherraum, sie hat aber eine Reihe von Nachteilen.
  • Ein Nachteil in Verbindung mit der konventionellen unflexiblen Speicherhierarchie ist, dass vorkonfigurierte Hardware (z. B. ein CPU-Controller), die in dem Computersystem eingesetzt wird, als Orakel verwendet wird, um vorherzusagen, auf welche Daten wahrscheinlich in der nächsten Zukunft zugegriffen wird, und diese Daten sowohl in den Cache- als auch in den Hauptspeicher geschrieben werden. Dieses Vorhersageverfahren kann jedoch weder vom Computer-Operator noch vom Betriebssystem des Computersystems variiert werden, die beide genauere Prädiktoren wären als der CPU-Controller. In der Tat hätte der Computer-Operator Kenntnis darüber, auf welche Daten ein Anwendungsprogramm häufiger zugreift.
  • Ein weiterer Nachteil in Verbindung mit der konventionellen unflexiblen Speicherhierarchie ist der, dass sie recht anfällig für Cache-Speicherkollisionen ist. Eine solche Anfälligkeit ist vornehmlich auf die Tatsache zurückzuführen, dass bestimmte Cache-Leitungen häufiger wiederverwendet werden als andere Cache-Leitungen gemäß in der Technik bekannten konventionellen Cache- und Betriebssystem-Speichertechniken.
  • Noch ein weiterer Nachteil ist, dass die konventionelle Speicherhierarchie Beschränkungen im Hinblick auf die Größe einer Datenübertragung auferlegt, die gewöhnlich auf eine einzelne Cache-Leitung oder eine andere vorbestimmte Datenstruktur äquivalenter Größe begrenzt ist. Diese Beschränkungen werden deshalb auferlegt, weil Datenübertragungen von mehr als einer Cache-Leitung größere Speicherbusbandbreite belegen, die Speicherlatenz erhöhen und die CPU-Bandbreite reduzieren würden.
  • Ein existierendes Computer-Speichersystem mit mehr als einem Speichertyp ist in der US-A-5,386,547 beschrieben, die ein einfaches gemischtes First-Level-Cache-Speichersystem offenbart, das einen Cache-Speicher auf Level 1 beinhaltet, der über Lese- und Schreibdatenleitungen mit einem Prozessor verbunden ist. Der Cache-Speicher Level 1 ist mit Umlagerungs-Tag-Leitungen, Umlagerungs-Datenleitungen, einem Multiplexer und einer Umlagerungs-/Leseleitung mit dem Cache-Speicher Level 2 verbunden. Der Cache-Speicher Level 2 ist über Schreib-Tag- und Schreib-Datenleitungen mit der nächsttieferen Ebene in der Speicherhierarchie verbunden. Die nächsttiefere Ebene in der Speicherhierarchie unter Cache-Speicher Level 2 ist auch über eine Lesedatenleitung durch den Multiplexer und die Umlagerungs/Leseleitung mit Cache-Speicher Level 1 verbünden. Wenn der Prozessor eine Anweisung oder Daten benötigt, dann gibt er eine Adresse auf den Anweisungs- oder Datenadressleitungen aus. Wenn die Anweisung oder die Daten im Cache-Speicher Level 1 vorhanden ist/sind, dann werden sie dem Prozessor auf der Lesedatenleitung zugeführt. Wenn Anweisung oder Daten im Cache-Speicher Level 1 nicht vorhanden ist/sind, dann sucht der Prozessor im Cache-Speicher Level 2 danach, indem er die Adresse der Anweisung oder Daten auf den Anweisungs- oder Datenadressleitungen ausgibt. Wenn sich Anweisung oder Daten im Cache-Speicher Level 2 befindet befinden, dann wird/werden sie dem Prozessor über einen Umlagerungsvorgang auf den Tag-Umlagerungsleitungen, den Umlagerungs-Datenleitungen, dem Multiplexer und der Umlagerungs-/Lesedatenleitung durch den Cache-Speicher Level 1 zugeführt. Wenn Anweisung oder Daten weder im Cache-Speicher Level 1 noch im Cache-Speicher Level 2 vorhanden ist/sind, dann holt die Adresse auf den Anweisungs- oder Datenadressleitungen die Anweisung oder Daten aus aufeinander folgend tieferen Ebenen in der Speicherhierarchie nach Bedarf über die Lesedatenleitung, den Multiplexer und die Umlagerungs-/Lesedatenleitung. Anweisung oder Daten wird/werden dann vom Cache-Speicher Level 1 zum Prozessor gesendet.
  • Ein weiteres existierendes Multilevel-Speichersystem ist in der US-A-5,249,282 beschrieben, bei der eine Zentraleinheit ein Cache-Speichersystem umfasst, das damit für eine Verbindung mit einem Hauptspeichersystem assoziiert ist. Das Cache-Speichersystem beinhaltet einen aus SRAMs bestehenden primären Cache-Speicher und einen sekundären Cache-Speicher, der aus DRAM besteht. Der primäre Cache-Speicher hat schnellere Zugriffszeiten als der sekundäre Cache-Speicher. Wenn ermittelt wird, dass die angeforderten Daten im primären Cache-Speicher gespeichert sind, dann werden sie sofort zur Zentraleinheit übertragen. Wenn festgestellt wird, dass sich die Daten nur im sekundären Cache-Speicher befinden, dann wird auf die Daten vor dort zugegriffen und sie werden zur Zentraleinheit geleitet und gleichzeitig im primären Cache-Speicher gespeichert. Wenn im primären Cache-Speicher ein Hit auftritt, dann wird darauf zugegriffen und die Daten werden auf einen lokalen Datenbus ausgegeben. Wenn nur der sekundäre Cache-Speicher einen Hit anzeigt, dann wird auf Daten von der entsprechenden einen der Arrays zugegriffen, und sie werden über Transferschaltungen durch den primären Cache- Speicher zum Datenbus übertragen. Gleichzeitig damit werden die Daten in einer entsprechenden einen der Arrays gespeichert. Wenn kein Hit im sekundären oder im primären Cache-Speicher auftritt, dann werden die Daten aus dem Hauptspeichersystem durch eine Puffer/Multiplexerschaltung auf einer Seite des sekundären Cache-Speichers zurückgespeichert und durch den sekundären und den primären Cache-Speicher geleitet und aufgrund des durch die Transferschaltungen gegebenen zeilenweisen Transfers in einem einzigen Vorgang darin gespeichert.
  • Gemäß einem ersten Aspekt der vorliegenden Erfindung wird ein Computersystem gemäß Anspruch 1 bereitgestellt.
  • Gemäß einem zweiten Aspekt der vorliegenden Erfindung wird ein Verfahren zum Übertragen einer Seite von Daten gemäß Anspruch 6 bereitgestellt. Weitere Aspekte der Erfindung sind in den Unteransprüchen definiert.
  • Die vorliegende Erfindung wird nachfolgend beispielhaft unter Bezugnahme auf die Begleitzeichnungen näher beschrieben. Dabei zeigt:
  • 1 ein Blockdiagramm einer illustrativen Ausgestaltung eines Computersystems, das einen dedizierten Speichertransferbus verwendet;
  • 2 ein Ablaufdiagramm einer illustrativen Prozedur, die von Prozessorknoten und Speicherelement beim Durchführen von Speicherübertragungen auf dem dedizierten Speichertransferbus von schnellem Speicher auf langsamen Speicher durchgeführt wird;
  • 3 ein Ablaufdiagramm einer illustrativen Prozedur, die von Prozessorknoten und Speicherelement bei der Durchführung von Speicherübertragungen auf dem dedizierten Speichertransferbus von langsamem Speicher auf schnellen Speicher durchgeführt wird;
  • 4 ein Ablaufdiagramm, das eine Speicher-"Lese"-Anforderung illustriert, die im Computersystem durchgeführt wird und Datenübertragungen über einen Speichertransferbus gemäß 1 unterstützen kann;
  • 5 ein Ablaufdiagramm, das eine Speicher-"Schreib"-Anforderung illustriert, die im Computersystem durchgeführt wird, das Datenübertragungen über einen Speichertransferbus gemäß 1 unterstützen kann.
  • Die nachfolgende ausführliche Beschreibung der vorliegenden Erfindung offenbart ein System und ein Verfahren zum Bereitstellen einer flexiblen Speicherhierarchie unter Verwendung eines Speichertransferbusses, der zum Übertragen von Daten zwischen verschiedenen Speichertypen, von einer programmierbaren Betriebssystemsoftware gesteuert, dediziert ist. Die Offenbarung beschreibt die Übertragung von Daten zwischen schnellen und langsamen Speichern, die einen einzelnen Realspeicher-Adressraum gemeinsam nutzen, da Übertragungen zwischen diesen Speichern und Fernspeichern auf dieselbe Weise erfolgen.
  • In der gesamten Beschreibung wird eine Reihe spezifischer Einzelheiten dargelegt, während in einigen Fällen bekannte Schaltungen oder Prozedurschritte nicht dargelegt sind, um die vorliegende Erfindung nicht unnötig zu verkomplizieren. Es wird für eine durchschnittliche Fachperson jedoch offensichtlich sein, dass die vorliegende Erfindung auch ohne Integration dieser spezifischen Komponenten oder durch eine geringfügige Modifikation von in den illustrativen Ablaufdiagrammen aufgeführten Prozedurschritten praktiziert werden kann.
  • Für den Umfang der vorliegenden Anmeldung ist ein "Knoten" als eine oder mehrere Hardware-Komponenten definiert, die zur Durchführung eines bestimmten Vorgangs verwendet werden. Ferner können "Daten" binäre Daten und/oder Anweisungen beinhalten, die beide generisch als "Daten" bezeichnet werden, es sei denn, dass sie auf andere Weise unterschieden werden. Darüber hinaus wird eine "Seite" als eine Mehrzahl von Subblöcken definiert, die jeweils wenigstens ein Byte Daten und Statusinformationen (z. B. ein Statusbit) enthalten, um anzuzeigen, ob das/die in dem Subblock gespeicherte(n) Datenbytes) "gültig" oder "ungültig" ist/sind.
  • 1 zeigt eine illustrative Ausgestaltung eines Computersystems 100 gemäß der vorliegenden Erfindung. Das Computersystem 100 umfasst einen ersten Bus 110, vorzugsweise einen Zentraleinheits- ("CPU") Bus, einschließlich Daten-, Adresssteuerbusleitungen, die vorzugsweise mit Bitbreiten von jeweils 128, 32 und 8 Bit konfiguriert sind. Es ist jedoch vorgesehen, dass diese oben aufgeführten Busleitungen mit jeder beliebigen Bandbreite konfiguriert werden können. Der erste Bus 110 ermöglicht die Kommunikation von Informationen (d.h. Daten, Adresse und/oder Steuerung) zwischen einer Mehrzahl von Knoten, einschließlich, aber nicht begrenzt auf, einem Prozessorknoten 120, einem Speicherknoten 130 und einem Ein/Ausgabe- ("E/A") Knoten 150.
  • Wie gezeigt, beinhaltet der Prozessorknoten 120 wenigstens eine Verarbeitungseinheit 121 und eine Speichermanagementeinheit ("MMU") 122. In dieser Ausgestaltung ist zwar nur eine Verarbeitungseinheit 121 illustriert, aber es ist vorgesehen, dass hierin auch mehrere Verarbeitungseinheiten eingesetzt werden können. In 1 ist die Verarbeitungseinheit 121 über ein Paar unidirektionaler Signalleitungen 123 und 124, die kollektiv die Verarbeitungseinheit 121 zum Empfangen von Informationen von und zum Übertragen von Informationen zu dem Speicherknoten 130 befähigen, mit dem ersten Bus 110 gekoppelt.
  • Die Verarbeitungseinheit 121 ist ferner über Kommunikationsleitungen 125 mit der MMU 122 gekoppelt, so dass die Verarbeitungseinheit 121 eine virtuelle Adresse zur MMU 122 übertragen kann, die die virtuelle Adresse wiederum in eine reale Speicheradresse umsetzt. Eine solche Umsetzung erfolgt durch Umsetztabellen, die von der Betriebssystemsoftware bereitgestellt werden. Diese Umsetztabellen beinhalten eine schnelle Speicherumsetztabelle und eine langsame Umsetztabelle zum Umwandeln einer bestimmten virtuellen Adresse in ihre entsprechende Realspeicheradresse, die jeweils vom schnellen und vom langsamen Speicher verwendet wird. Die MMU 122, die über eine unidirektionale Signalleitung 126 mit dem ersten Bus 110 gekoppelt ist, setzt die der virtuellen Adresse entsprechende Realspeicheradresse und notwendige Steuerinformationen auf den ersten Bus 110, der vom Speicherknoten 130 gelesen werden soll. Die Steuerinformationen können, unter anderen, Vorgangstyp, Buszuteilung, Buseigentum und Gemeinschaftszugriffsbetriebsarten wie MOESI, MESI usw. beinhalten.
  • Der E/A-Knoten 150 beinhaltet einen E/A-Controller 155, der als Schnittstelle zwischen dem ersten Bus 110 und einem konventionellen E/A-Bus 160 arbeitet. So entsteht ein Kommunikationspfad (d.h. Gateway), so dass Knoten mit dem ersten Bus 110 und dem E/A-Bus 160 zum Austauschen von Informationen gekoppelt werden können. Der E/A-Bus 160 überträgt Informationen zu wenigstens einem Peripheriegerät im Computersystem 100, einschließlich, u. a., ein Anzeigegerät 161 (z. B. Kathodenstrahlröhre, Flüssigkristallanzeige, Flachbildschirm usw.) zum Anzeigen von Bildern; ein alphanumerisches Eingabegerät 162 (z. B. alphanumerische Tastatur usw.) zum Übertragen von Informationen und Befehlsselektionen zur Verarbeitungseinheit 121; und ein Cursor-Steuergerät 163 (z. B. Maus, Trackball, Touchpad, Joystick usw.) zum Steuern von Cursor-Bewegungen; ein Massenspeichergerät 164 (z. B. Magnetbänder, Festplattenlaufwerk, Diskettenlaufwerk usw.) zum Speichern von Daten; ein Informationssende-/-empfangsgerät 165 (Faxmaschine, Modem, Scanner usw.) zum Senden von Informationen vom Computersystem 100 zu einem anderen System und zum Empfangen von Informationen von einem anderen System; und ein Festkopie-Gerät 166 (z. B. Plotter, Drucker usw.) zum Bereitstellen einer fassbaren visuellen Darstellung der Informationen. Es ist vorgesehen, dass das in 1 gezeigte Computersystem 100 einige oder alle dieser Komponenten oder andere als die illustrierten Komponenten verwenden kann.
  • Der Speicherknoten 130 beinhaltet ein Speicherelement 135, das Daten in Verbindung mit der realen Speicheradresse speichert, und einen Fernspeichercontroller 140, ähnlich einem CPU- Controller, der eine Übertragung eines einzelnen Subblocks von Daten (z. B. eine einzelne Cache-Leitung von 32 Byte Größe) zwischen dem Computersystem 100 und einem Fernsystem steuert. Das Speicherelement 135 ist ein seitenweise abgebildeter Speicher, der in eine Mehrzahl von Seiten organisiert ist, wobei jede Seite eine Mehrzahl von konsekutiven Speicheradressen hat. Das Speicherelement 135 ist mit schnellem Speicher 136 (z. B. statischem Arbeitsspeicher) und langsamem Speicher 137 (z. B. dynamischem Arbeitsspeicher "DRAM", Video-Arbeitsspeicher "VRAM" und dergleichen) bestückt. Diese Speicher 136 und 137 haben zwar verschiedene Leistungsniveaus, aber sie nutzen einen einzigen Realspeicher-Adressraum gemeinsam, im Gegensatz zu konventionellen Speicherhierarchien. Somit ist das Speicherelement 135 dahingehed skalierbar, dass Bandbreite des Speicherelementes 135 erhöht und Speicherlatenz reduziert werden kann, indem sie mit einem größeren Anteil an schnellem Speicher 136 bestückt wird.
  • Speicherelement 135 und Fernspeichercontroller 140 werden mit einem dedizierten Speichertransferbus 145 mit einer willkürlich gewählten Bitbreite gekoppelt. Diese Bitbreite wird für einen optimalen Datentransfer gewählt und kann somit von der Bitbreite des ersten Busses 110 abweichen. Der Speichertransferbus 145 unterstützt vornehmlich Datenübertragungen zwischen dem schnellen und dem langsamen Speicher 136 und 137. Diese Datenübertragungen werden durch die Verarbeitungseinheit 121 eingeleitet und durch die Verarbeitungseinheit mit Betriebssystemsoftware gesteuert. Diese Datenübertragungen sind typischerweise "Massen"-Speicherübertragungen in Inkrementen von jeweils einer "Seite" von Daten. Im Gegensatz zu konventionellen Speicherhierarchien erfolgen Datenübertragungen durch den dedizierten Speichertransferbus 145 ohne erhebliche Beeinflussung der Latenzbandbreite des ersten Busses 110.
  • Gemäß 2 beginnt eine Datenübertragung von langsamem Speicher auf schnellen Speicher durch den dedizierten Speichertransferbus mit Schritt 105 durch den Prozessorknoten, nämlich MMU, wobei eine angestrebte Realspeicher-Seitenadresse ("T_Address") in eine verfügbare Einsprungadresse einer schnellen Speicherumsetztabelle eingefügt wird. Die T Address ist die Adresse des schnellen Speichers, die angestrebt wird, um eine Seite von Daten während der Datenübertragung zu empfangen (nachfolgend als "Zielspeicher" bezeichnet). Dies erfolgt, damit jede nachfolgende Speicher-"Lese"- oder "Schreib"-Anweisung zu der der T Address entsprechenden virtuellen Adresse zum schnellen Speicher gerichtet wird. Danach sendet, wie in Schritt 110 gezeigt, die MMU eine FLUSH PAGE Anweisung zum Speicherelement, die bewirkt, dass das Speicherelement die Statusbits jedes Subblocks des Zielspeichers setzt oder aufdrückt, um anzuzeigen, dass diese Subblöcke "ungültige" Daten enthalten (Schritt 115). Die Ausführung dieser Anweisung ermöglicht das Schreiben von Daten auf den Zielspeicher und unterbricht eventuelle Speicher-"Lese"-Anforderungen, die vor dem Wegnehmen oder Deaktivieren der Statusbits auf den Zielspecher gesendet werden, um die Anwesenheit von "gültigen" Daten zu reflektieren.
  • Weiterhin mit Bezug auf 2, in Schritt 120 sendet die MMU eine Anweisung ("MOVE_PAGE") zum Speicherelement, um eine Seite von Daten beginnend mit einer Quellseitenadresse "S Address" (nachfolgend als "Quellseite" bezeichnet) vom langsamen Speicher zum Zielspeicher zu übertragen. Nach dem Empfang der MOVE PAGE Anweisung setzt der langsame Speicher nacheinander die Daten von jedem Subblock der Quellseite auf den Speichertransferbus (Schritt 125). Vor dem Übertragen eines ersten Subblocks der Quellseite ermittelt das Speichersystem, ob ein erster Subblock des Zielspeichers (d.h. "erster angestrebter Subblock"), der das Ziel des ersten auf den Speichertransferbus gesetzten Subblocks ist, "gültig" is (Schritt 130). Mit dieser Ermittlung soll überprüft werden, ob, wenn die Verarbeitungseinheit Daten auf den ersten angestrebten Subblock nach der FLUSH PAGE Anweisung, aber vor der MOVE PAGE Anweisung geschrieben hat, weil die Vorgänge auf dem Speichertransferbus von den ersten Busvorgängen unabhängig sind. Wenn der erste angestrebte Subblock "gültig" ist, dann ist das Speichersystem so konfiguriert, dass die Daten in Verbindung mit dem ersten Subblock verworfen werden (Schritt 135), und es wird geprüft, ob der erste Subblock der letzte Subblock der Quellseite ist (Schritt 145). Wenn jedoch der angestrebte Subblock "ungültig" ist, dann werden die Daten im ersten Subblock in den ersten angestrebten Subblock geschrieben, und das Statusbit des ersten angestrebten Subblocks wird weggenommen, um anzuzeigen, dass sich hier gültige Daten befinden (Schritt 140). Die Datentransferprozedur wird so lange fortgesetzt, bis die Daten in Verbindung mit dem letzten Subblock der Quellseite übertragen sind (Schritt 145).
  • Danach sendet das Speicherelement ein Bestätigungssignal ("MOVE_FINISH") zur MMU (Schritt 150). Das MOVE_FIINISH Signal hat zur Folge, dass die MMU einen "Null"-Wert in eine Einsprungadresse einer langsamen Speicherumsetztabelle einfügt, die zuvor die S Address enthielt (Schritt 155). Durch Einfügen des Null-Wertes wird die Einsprungadresse freigegeben, so dass das Betriebssystem die Einsprungadresse und den dieser Einsprungadresse entsprechenden Speicher wiederverwenden kann. Darüber hinaus sendet die MMU eine FLUSH PAGE Anweisung zum langsamen Speicher, um diejenigen Subblöcke, die zum Speichern der Quellseite verwendet werden, in einen "ungültig" Zustand zu setzen (Schritt 160).
  • Neben dem Durchführen von Datenübertragungen von langsamem Speicher auf schnellen Speicher unterstützt der Speichertransferbus auch Datenübertragungen von schnellem Speicher auf langsamen Speicher. Zunächst fügt die Betriebssystemsoftware, die vornehmlich eine Virtuell-aufreal-Abbildung steuert, eine T Address in eine verfügbare Einsprungadresse der langsamen Speicherumsetztabelle ein und fügt eine Null-Wert in eine Einsprungadresse in Verbindung mit der schnellen Speicherumsetztabelle bei S Address ein (Schritte 205–10). In dieser Ausgestaltung hat der Prozessorknoten keinerlei Kontrolle über die Datenübertragungen von schnellem auf langsamen Speicher, da solche Datenübertragungen von der Verarbeitungseinheit nicht sofort benötigt werden.
  • Wenn die Betriebssystemsoftware die langsamen und schnellen Speicherumsetztabellen eingestellt hat, sendet die MMU eine MOVE PAGE Anweisung zum Speicherelement, um das Speicherelement aufzufordern, eine Quellseite beginnend mit S Address im schnellen Speicher in den langsamen Speicher an T_Address zu übertragen (Schritt 215). Daher sendet das Speicherelement nach Abschluss der Datenübertragung mittels des Speichertransferbusses wie oben in den Schritten 125–145 beschrieben, mit der Ausnahme, dass die Datenübertragung vom schnellen zum langsamen Speicher erfolgt, ein MOVE FINISH Signal zurück, das bestätigt, dass die Datenübertragung abgeschlossen ist (Schritte 220–225). Dadurch wird die MMU aufgefordert, die FLUSH_PAGE Anweisung zum Speicherelement zu senden, um Statusbits der Subblöcke in Verbindung mit der Quellseite bei S Address in einen "ungültig" Zustand zu setzen (Schritt 230).
  • Wieder bezugnehmend auf 1, während der Ausführung eines Anwendungsprogramms benötigt die Verarbeitungseinheit 121 häufig Daten, die im Speicherelement 135 gespeichert sind. Um solche Daten zu holen, erzeugt der Prozessorknoten 120 typischerweise die Speicher-"Lese"-Anforderung. Da Datenübertragungen zwischen verschiedenen Speichertypen über den dedizierten Speichertransferbus 145 während der Speicherleseanforderung auftreten können, wird eine Prozedur benötigt, die beide Vorgänge simultan unterstützt.
  • 4 zeigt eine illustrative Prozedur zum Unterstützen von Speicherleseanforderungen und Datenübertragungen durch den Speichernansferbus. Zum Ausführen einer Speicherleseaufforderung leitet die Verarbeitungseinheit eine Speicher-"Lese"-Anweisung (Schritt 305) ein und überträgt danach die Speicher-"Lese"-Anweisung für in einer bestimmten virtuellen Adresse gespeicherte Daten in die MMU (Schritt 310). Wenn die MMU ermittelt, dass sich die virtuelle Adresse nicht in der schnellen Speicherumsetztabelle befindet, die normalerweise durch Betriebssystemsoftware verwaltet wird, dann bildet die MMU die virtuelle Adresse in eine langsame Realspeicheradresse gemäß der langsamen Speicherumsetztabelle ab (Schritte 315–320). Danach gibt die MMU eine Speicherleseanforderung aus, indem sie die langsame Realspeicheradresse zusammen mit eventuell notwendigen Steuerinformationen einschließlich Vorgangstyp, Buszuteilung, Buseigentum, Gemeinschaftszugriffsbetriebsarten wie MOESI, MESI usw. auf den ersten Bus zur Erledigung durch das Speicherelement setzt (Schritt 325). Wenn erfasst wurde, dass die MMU die Speicherleseanforderung durchgeführt hat, kommt das Speicherelement der Speicherleseanforderung nach, indem es die angeforderten Daten auf den ersten Bus setzt, so dass sie danach von der Verarbeitungseinheit gelesen werden (Schritte 330–335).
  • Alternativ bildet die MMU, wenn sie ermittelt, dass sich die virtuelle Adresse in der schnellen Speicherumsetztabelle befindet, die virtuelle Adresse in eine schnelle Realspeicheradresse gemäß der schnellen Speicherumsetztabelle ab (Schritt 340). Danach gibt die MMU eine Speicherleseanforderung aus, indem sie die schnelle Realspeicheradresse zusammen mit eventuellen Steuerinformationen auf den ersten Bus zur Erledigung durch das Speicherelement setzt (Schritt 345).
  • Nach dem Erkennen der Speicherleseanforderung ermittelt das Speicherelement, ob die Daten an der Realspeicheradresse "gültig" sind (Schritt 350). Damit soll ein Zugriff auf Daten verhindert werden, die ungültig sind, weil beispielsweise eine ausstehende Datenübertragung vor der Speicherleseanforderung noch nicht abgeschlossen ist. Wenn gültig, kommt das Speicherelement der Speicherleseanforderung nach, indem es die angeforderten Daten auf den Datenbus setzt, so dass sie nachfolgend von der Verarbeitungseinheit gelesen werden (Schritt 330-335). Ansonsten, wenn die Daten ungültig sind, wartet das Speicherelement, bis die Datenübertragung fertig ist und die Daten validiert sind. Die Adresse bleibt in den Speichersystempuffern, bis die Daten zur Verfügung stehen. Speicheradressanforderungen werden im Speichersystem gepuffert.
  • 5 zeigt eine illustrative Prozedur zum Unterstützen einer Speicherschreibanforderung und einer Datenübertragung durch den Speichertransferbus. Die Verarbeitungseinheit leitet eine Speicherschreibanweisung ein (Schritt 405) und überträgt danach die Speicherschreibanweisung für in einer bestimmten virtuellen Adresse gespeicherte Daten in die MMU (Schritt 410). Wenn die MMU ermittelt, dass sich die virtuelle Adresse nicht in der schnellen Speicherumsetztabelle befindet, dann bildet die MMU die virtuelle Adresse in eine langsame Realspeicheradresse gemäß der langsamen Speicherumsetztabelle ab (Schritt 415–420). Danach gibt die MMU eine Speicherschreibanforderung aus, indem sie die langsame Realspeicheradresse zusammen mit eventuell notwendigen Steuerinformationen auf den ersten Bus setzt, so dass sie vom Speicherelement erledigt wird, wenn der Prozessor die Daten auf den ersten Bus setzt, so dass sie in den langsamen Speicher des Speicherelementes geschrieben werden (Schritt 425–430).
  • Alternativ bildet die MMU, wenn sie ermittelt, dass sich die virtuelle Adresse in der schnellen Speicherumsetztabelle befindet, die virtuelle Adresse in eine schnelle Speicheradresse gemäß der schnellen Speicherumsetztabelle ab (Schritte 415, 435). Danach gibt die MMU eine Speicherschreibanforderung aus, indem sie die schnelle Realspeicheradresse zusammen mit eventuellen Steuerinformationen auf den ersten Bus setzt, so dass sie vom Speicherelement erledigt wird (Schritt 440). Danach werden die Daten in den Subblock geschrieben, und das Statusbit in Verbindung mit dem Subblock wird weggenommen, um anzuzeigen, dass die Daten "gültig" sind. (Schritt 445).
  • Es ist vorgesehen, dass Datenübertragungen zwischen dem Speicherelement und einem Fernsystem über den Speichertransferbus nach denselben Prozeduren ablaufen wie in den 2 und 3 erörtert, mit ein paar Ausnahmen. Eine Ausnahme ist die, dass das Fernsystem nur "Kopierblöcke" mit Nur-Lese-Zugriff vom Speicherelement des Computersystems lesen kann; das Computersystem kann jedoch einen einzelnen Block (z. B. eine Cache-Leitung) von Daten vom Fernsystem lesen und einen einzelnen Datenblock vom Fernsystem in das Speicherelement schreiben. Eine zweite Ausnahme ist die, dass es dem Fernsystem nicht möglich ist, Daten auf ein anderes Fernsystem zu schreiben, ohne dass eine entsprechende Genehmigung vom Betriebssystem des Computersystems erteilt wird. Dies kann jedoch durch zusätzliche Statusinformationen umgangen werden.
  • Die hierin beschriebene vorliegende Erfindung kann auf viele verschiedene Weisen und mit vielen verschiedenen Konfigurationen ausgelegt werden. Während die vorliegende Erfindung im Hinblick auf verschiedene Ausgestaltungen beschrieben wurde, werden der Fachperson noch weitere Ausgestaltungen einfallen; die nicht vom Umfang der vorliegenden Erfindung gemäß Definition in den nachfolgenden Ansprüchen abweichen.

Claims (12)

  1. Computersystem, das Folgendes umfasst: einen Prozessorknoten (120) zum Verarbeiten von Informationen; einen Speicherknoten (130) zum Speichern der genannten Informationen, wobei der Speicherknoten (130) ein seitenweise abgebildeter Speicher ist und ein erstes Speicherelement (136) und ein zweites Speicherelement (137) umfasst, wobei das erste Speicherelement (136) so konfiguriert ist, dass es eine größere Bandbreite unterstützt als das zweite Speicherelement (137) und das erste und das zweite Speicherelement (136, 137) einen einzigen realen Speicheradressraum gemeinsam nutzen; einen ersten Bus (110), der mit dem Prozessorknoten (120) und dem Speicherknoten (130) verbunden ist, damit die genannten Informationen zwischen dem Prozessorknoten (120) und dem Speicherknoten (130) übertragen werden können; und einen zweiten Speichertransferbus (145), der unabhängig von dem genannten ersten Bus (110) arbeitet, wobei der Speichertransferbus (145) mit dem ersten und dem zweiten Speicherelement (136, 137) verbunden ist und es ermöglicht, dass eine Seite von im ersten Speicherelement (136) gespeicherten Daten zum zweiten Speicherelement (137) übertragen und dort gespeichert wird, und eine Seite von im zweiten Speicherelement (137) gespeicherten Daten zum ersten Speicherelement (136) übertragen und dort gespeichert wird; dadurch gekennzeichnet, dass jede Seite eine Mehrzahl von Subblöcken oder Cache-Speicherleitungen beinhaltet, von denen jeder) wenigstens ein Byte Daten und Statusinformationen enthält, die angeben, ob die Daten gültig sind.
  2. Computersystem nach Anspruch 1, bei dem das erste Speicherelement (136) ein statischer Arbeitsspeicher ist, der eine Mehrzahl von Subblöcken mit Daten und Statusinformationen speichert.
  3. Computersystem nach Anspruch 2, bei dem das zweite Speicherelement (137) ein dynamischer Arbeitsspeicher ist, der eine Mehrzahl von Subblöcken mit Daten und Statusinformationen speichert.
  4. Computersystem nach Anspruch 1, 2 oder 3, bei dem die Übertragung der genannten Seite von Daten durch den Speichertransferbus (145), der unabhängig vom ersten Bus (110) arbeitet, durch Betriebssystemsoftware gesteuert wird.
  5. Computersystem nach Anspruch 1, 2, 3 oder 4, ferner umfassend eine Speicherfernsteuerung (140), die es ermöglicht, dass die genannte Seite von Daten zwischen dem Speicherknoten (130) und einem ortsfern befindlichen Peripherieknoten übertragen wird.
  6. Verfahren zum Übertragen einer Seite mit einer Mehrzahl von Subblöcken oder Cache-Speicherleitungen, von denen jeder) wenigstens ein Byte Daten und Statusinformationen enthält, die angeben, ob die Daten gültig sind, zwischen einem ersten Speicherelement und einem zweiten Speicherelement (137) durch einen dedizierten Speichertransferbus (145), wobei das erste Speicherelement (136) so konfiguriert wird, dass es eine größere Bandbreite unterstützt als das zweite Speicherelement (137), wobei das Verfahren die folgenden Schritte umfasst: Empfangen einer Anweisung zum Übertragen einer Seite von Daten mit einer Mehrzahl von Subblöcken im ersten Speicherelement (136) vom ersten Speicherelement (136) zum zweiten Speicherelement (137), wobei die genannten ersten und zweiten Speicherelemente (136,137) einen einzelnen realen Speicheradressraum gemeinsam nutzen; sequentielles Übertragen der Seite von Daten vom ersten Speicherelement (136) auf den dedizierten Speichertransferbus (145); Schreiben von Daten, die sich in jedem aus der Mehrzahl von Subblöcken befinden, in einen entsprechenden angestrebten Subblock einer Mehrzahl von angestrebten Subblöcken des genannten ersten Speicherelementes (136), vorausgesetzt, die entsprechenden Subblöcke sind in einem "ungültigen" Zustand; und Einstellen von Statusinformationen der Mehrzahl von Subblöcken so, dass sie anzeigen, dass sich die Daten der Mehrzahl von Subblöcken in einem "ungültigen" Zustand befinden.
  7. Verfahren nach Anspruch 6, wobei das Verfahren vor dem Empfangsschritt die Schritte des Einfügens einer Zieladresse in einen Eintrag einer Hochgeschwindigkeits-Speicherumsetztabelle umfasst; und Setzen von Statusbits der Mehrzahl von angestrebten Subblöcken des zweiten Speicherelementes (137) in einen "ungültig" Status, um es zuzulassen, dass die Seite von Daten in die Mehrzahl von angestrebten Subblöcken geschrieben wird.
  8. Verfahren nach Anspruch 7, bei dem der sequentielle Übertragungsschritt die folgenden Schritte umfasst: Ausgeben von Daten, die mit einem aus der Mehrzahl von Subblöcken assoziiert sind, auf den dedizierten Speichertransferbus (145); Ausbreiten der Daten über den dedizierten Speichertransferbus (145); und Ermitteln, ob ein Statusbit des angestrebten Subblocks einen "gültig" Zustand repräsentiert, wobei der angestrebte Subblock übersprungen wird, wenn der Subblock "gültig" ist; und der Schreibschritt durchgeführt wird, wenn der Subblock "ungültig" ist.
  9. Verfahren nach Anspruch 6, wobei das Verfahren vor dem Setzschritt ferner einen Schritt des Sendens eines Steuersignals vom ersten Speicherelement (136) zu einem Prozessorknoten (120) beinhaltet, um anzuzeigen, dass die Seite von Daten über den dedizierten Speichertransferbus (145) übertragen wurde.
  10. Verfahren nach Anspruch 9, wobei das Verfahren nach dem Schritt des Sendens des Steuersignals vom ersten Speicherelement (136) zu einem Prozessorknoten (120) ferner den Schritt des Einfügens eines Null-Wertes in einen Eintrag einer Niedergeschwindigkeits-Speicherumsetztabelle beinhaltet, die mit der Mehrzahl von Subblöcken assoziiert ist.
  11. Verfahren nach Anspruch 6, wobei das Verfahren vor dem Empfangsschritt die folgenden Schritte umfasst: Einfügen einer Zieladresse in einen Eintrag einer Niedergeschwindigkeits-Speicherumsetztabelle durch Betriebssystemsoftware, wobei der genannte Eintrag die Mehrzahl von angestrebten Subblöcken repräsentiert; und Einfügen eines Null-Wertes in einen Eintrag einer Hochgeschwindigkeits-Speicherumsetztabelle, die die Mehrzahl von Subblöcken repräsentiert.
  12. Verfahren nach Anspruch 11, wobei das Verfahren vor dem Setzschritt ferner den Schritt das Sendens eines Signals vom ersten Speicherelement (136) zu einem Prozessorknoten (120) beinhaltet, um anzuzeigen, dass die Seite von Daten über einen dedizierten Speichertransferbus (145) übertragen wurde.
DE69629331T 1995-06-02 1996-05-28 System und Verfahren zur Bereitstellung einer flexiblen Speicherhierarchie Expired - Fee Related DE69629331T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US46018895A 1995-06-02 1995-06-02
US460188 1995-06-02

Publications (2)

Publication Number Publication Date
DE69629331D1 DE69629331D1 (de) 2003-09-11
DE69629331T2 true DE69629331T2 (de) 2004-02-12

Family

ID=23827707

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69629331T Expired - Fee Related DE69629331T2 (de) 1995-06-02 1996-05-28 System und Verfahren zur Bereitstellung einer flexiblen Speicherhierarchie

Country Status (4)

Country Link
US (2) US5812816A (de)
EP (1) EP0745941B1 (de)
JP (1) JPH09179779A (de)
DE (1) DE69629331T2 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69629331T2 (de) * 1995-06-02 2004-02-12 Sun Microsystems, Inc., Mountain View System und Verfahren zur Bereitstellung einer flexiblen Speicherhierarchie
US6032271A (en) 1996-06-05 2000-02-29 Compaq Computer Corporation Method and apparatus for identifying faulty devices in a computer system
DE69819927D1 (de) * 1997-09-05 2003-12-24 Sun Microsystems Inc Nachschlagtabelle und verfahren zur datenspeicherung darin
US6553475B2 (en) * 1997-10-09 2003-04-22 Matsushita Electric Industrial Co., Ltd. Memory system with address conversion based on inherent performance condition
US6665749B1 (en) * 1999-08-17 2003-12-16 Nec Electronics, Inc. Bus protocol for efficiently transferring vector data
US7523290B2 (en) * 2000-02-29 2009-04-21 International Business Machines Corporation Very high speed page operations in indirect accessed memory systems
US6665787B2 (en) * 2000-02-29 2003-12-16 International Business Machines Corporation Very high speed page operations in indirect accessed memory systems
US7782363B2 (en) * 2000-06-27 2010-08-24 Front Row Technologies, Llc Providing multiple video perspectives of activities through a data network to a remote multimedia server for selective display by remote viewing audiences
JP2003108438A (ja) * 2001-09-28 2003-04-11 Supreme Magic:Kk データ処理装置
US6681301B1 (en) 2001-10-02 2004-01-20 Advanced Micro Devices, Inc. System for controlling multiple memory types
US8972645B2 (en) * 2012-09-19 2015-03-03 Hewlett-Packard Development Company, L.P. Request sent to storage device based on moving average
US10152425B2 (en) * 2016-06-13 2018-12-11 Advanced Micro Devices, Inc. Cache entry replacement based on availability of entries at another cache

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5250132A (en) * 1975-10-21 1977-04-21 Casio Comput Co Ltd Information processing control unit
JPS60134953A (ja) * 1983-12-23 1985-07-18 Hitachi Ltd デ−タ転送制御装置
US4774659A (en) * 1986-04-16 1988-09-27 Astronautics Corporation Of America Computer system employing virtual memory
JPH02253356A (ja) * 1989-03-28 1990-10-12 Toshiba Corp 階層キャッシュメモリ装置とその制御方式
JPH031260A (ja) * 1989-05-30 1991-01-07 Hitachi Ltd 計算機方式
US5185694A (en) * 1989-06-26 1993-02-09 Motorola, Inc. Data processing system utilizes block move instruction for burst transferring blocks of data entries where width of data blocks varies
JPH0821233B2 (ja) * 1990-03-13 1996-03-04 株式会社東芝 画像メモリおよび画像メモリからデータを読み出す方法
US5249282A (en) * 1990-11-21 1993-09-28 Benchmarq Microelectronics, Inc. Integrated cache memory system with primary and secondary cache memories
EP1050820A3 (de) * 1990-12-25 2001-06-06 Mitsubishi Denki Kabushiki Kaisha Halbleiterspeichervorrichtung mit einem grossen Speicher und einem Hochgeschwindigkeitsspeicher
GB2256512B (en) * 1991-06-04 1995-03-15 Intel Corp Second level cache controller unit and system
JP2665081B2 (ja) * 1991-07-08 1997-10-22 三菱電機株式会社 マイクロコンピュータのレジスタ間データ転送方式
US5313647A (en) * 1991-09-20 1994-05-17 Kendall Square Research Corporation Digital data processor with improved checkpointing and forking
US5386547A (en) * 1992-01-21 1995-01-31 Digital Equipment Corporation System and method for exclusive two-level caching
US5623624A (en) * 1993-02-01 1997-04-22 Micron Technology, Inc. Memory control architecture for high speed transfer options
DE69629331T2 (de) * 1995-06-02 2004-02-12 Sun Microsystems, Inc., Mountain View System und Verfahren zur Bereitstellung einer flexiblen Speicherhierarchie

Also Published As

Publication number Publication date
EP0745941B1 (de) 2003-08-06
DE69629331D1 (de) 2003-09-11
US6055613A (en) 2000-04-25
EP0745941A3 (de) 1997-02-26
EP0745941A2 (de) 1996-12-04
JPH09179779A (ja) 1997-07-11
US5812816A (en) 1998-09-22

Similar Documents

Publication Publication Date Title
DE60204687T2 (de) Speicherkopierbefehl mit Angabe von Quelle und Ziel, der in der Speichersteuerung ausgeführt wird
DE68902193T2 (de) Datenspeicheranordnung.
DE69834739T2 (de) Ausgleichen von daten die zwischen verschiedenen leitern fliessen die auf unterschiedlichen frequenzen operieren
DE102009023898B4 (de) Optimierung von gleichzeitigen Zugriffen in einem verzeichnisbasierten Kohärenzprotokoll
DE69031978T2 (de) Einrichtung und Verfahren zum Vermindern von Störungen in zweistufigen Cache-Speichern
DE69734129T2 (de) Hierarchisches Datenverarbeitungssystem mit symetrischen Multiprozessoren
DE68924306T2 (de) Mehrprozessorrechneranordnungen mit gemeinsamem Speicher und privaten Cache-Speichern.
DE2350884C2 (de) Adreßumsetzungseinheit
DE2226382C3 (de) Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern
DE4410060B4 (de) Übersetzungsvorrichtung zum Umsetzen einer virtuellen Speicheradresse in eine physikalische Speicheradresse
DE3782335T2 (de) Speichersteuersystem.
DE69025302T2 (de) Hochleistungsrasterpuffer- und -cachespeicheranordnung
DE102006030879B4 (de) System zum Reduzieren der Latenzzeit von exklusiven Leseanforderungen in einem symmetrischen Multiprozessorsystem
DE69032276T2 (de) Verfahren und Anordnung zur Verbesserung der Datenspeicherungsgeschwindigkeit eines Computersystems
DE69629331T2 (de) System und Verfahren zur Bereitstellung einer flexiblen Speicherhierarchie
DE3439302A1 (de) Speichersteuerungsvorrichtung
DE3724730A1 (de) Cache-steuereinrichtung
DE4022885C2 (de) Verfahren zum Verschieben von Speicherbereichen und Hierarchie-Speichersystem
DE10056827A1 (de) Duale Verwendung von Cache-Verbindungen
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE69734551T2 (de) Verfahren und Gerät zur Erzeugung von Paritätsblöcken
DE112012004926B4 (de) Gemeinsame Speichernutzung durch Prozessoren
DE69119149T2 (de) Struktur zur direkten Speicher-zu-Speicher-Übertragung
DE68925336T2 (de) Datenverarbeitungsvorrichtung mit Cache-Speicher
DE3046912C2 (de) Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee