DE69732020T2 - Wiedereinordnung von Speicheranforderungen in einem Datenverarbeitungssystem - Google Patents

Wiedereinordnung von Speicheranforderungen in einem Datenverarbeitungssystem Download PDF

Info

Publication number
DE69732020T2
DE69732020T2 DE69732020T DE69732020T DE69732020T2 DE 69732020 T2 DE69732020 T2 DE 69732020T2 DE 69732020 T DE69732020 T DE 69732020T DE 69732020 T DE69732020 T DE 69732020T DE 69732020 T2 DE69732020 T2 DE 69732020T2
Authority
DE
Germany
Prior art keywords
request
memory
requests
access
available
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
DE69732020T
Other languages
English (en)
Other versions
DE69732020D1 (de
Inventor
Gerry R. Concord Talbot
Austen J. Newton Hypher
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.)
SK Hynix America Inc
Original Assignee
Hyundai Electronics America 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 Hyundai Electronics America Inc filed Critical Hyundai Electronics America Inc
Publication of DE69732020D1 publication Critical patent/DE69732020D1/de
Application granted granted Critical
Publication of DE69732020T2 publication Critical patent/DE69732020T2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • G06F13/1631Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison

Landscapes

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

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zum Umordnen mehrerer Speicherzugriffsanforderungen gemäß dem Oberbegriff von Anspruch 1 und ein Datenverarbeitungssystem gemäß dem Oberbegriff von Anspruch 8.
  • Somit betrifft die vorliegende Erfindung allgemein Datenverarbeitungssysteme mit Speicherteilsystemen und insbesondere die Steuerung von Anforderungen an Speicherteilsysteme, um die Bandbreite und die Gleichzeitigkeit zu maximieren, wodurch die Gesamtgeschwindigkeit des Speicherteilsystems und des Datenverarbeitungssystems erhöht wird.
  • Die Geschwindigkeit der Speicherteilsysteme kann in modernen Datenverarbeitungssystemen ein bedeutender begrenzender Faktor der Geschwindigkeit des Gesamtsystems sein. Der Speicherengpass ist vorhanden, da ein Speicherzugriff typisch wesentlich langsamer als die Geschwindigkeit ist, mit der Computerprozessoren und Datenbusse Speicherzugriffsanforderungen erzeugen und transportieren können. Da eine Leseanforderung angibt, dass ein anfordernder Prozessor möglicherweise auf Daten wartet, ist die niedrige Geschwindigkeit des Speicherzugriffs besonders zu spüren, wenn es im Gegensatz zu einer Schreibanforderung eine Leseanforderung gibt.
  • Der durch die niedrige Speichergeschwindigkeit verursachte Engpass wird noch ernster, während die Geschwindigkeit von Computerprozessoren mit einer schnelleren Rate als die Geschwindigkeit üblicher Speicherkomponenten steigt. Außerdem wird der Speicherengpass verschärft, während Computersystem- und Netzarchitekturen eingeführt werden, die mehrere Prozessoren enthalten, die ein Speicherteilsystem gemeinsam nutzen.
  • Ein herkömmlicher Zugang zur Milderung des Speicherengpasses ist die Verwendung des Daten-Caching, möglicherweise auf verschiedenen Ebenen innerhalb des Datenverarbeitungssystems. Zum Beispiel können Abschnitte der Daten in einem langsamen, preiswerten Plattenspeicherteilsystem in ein schnelleres System-RAM-Teilsystem (System-Schreib-Lese-Speicher-Teilsystem) kopiert oder "gecached" werden. Abschnitte von Daten im System-RAM können wiederum in ein RAM-Teilsystem eines Cache der "zweiten Ebene" gecached werden, das eine kleine Menge eines teuren, noch schnelleren RAM enthält. Außerdem können Teile der Daten in einen noch schnelleren Cache-Speicher der "ersten Ebene" gecached werden, der auf dem gleichen Chip wie ein Prozessor liegen kann. Das Daten-Caching ist eine leistungsfähige Technik, um die Zugriffe auf den langsameren Speicher zu minimieren. Allerdings muss an einem Punkt immer noch auf die verschiedenen Speicherebenen zugegriffen werden. Gleich, ob ein Caching verwendet wird oder nicht, werden somit weiter Techniken zum Beschleunigen des Speicherzugriffs benötigt.
  • Versuche, den Speicherzugriff zu beschleunigen, umfassen das Organisieren des Speichers in mehrere Bänke. Während in Übereinstimmung mit dieser Speicherarchitektur eine erste Speicherbank damit belegt ist, eine Anforderung für den Zugriff auf einen Speicherplatz in der ersten Bank zu bedienen, kann eine zweite, verfügbare Bank damit beginnen, die nächste Speicherzugriffsanforderung zu bedienen, falls die nächste Anforderung einen Speicherplatz in der zweiten Bank zum Ziel hat. Die Speicherplätze können unter den Bänken verschachtelt sein, so dass sich zusammenhängende Speicheradressen, auf die wahrscheinlich sukzessive zugegriffen wird, in verschiedenen Bänken befinden.
  • Ein Problem bei der herkömmlichen Verwendung von Speicherbänken ist, dass sukzessive Zugriffsanforderungen gelegentlich weiter Adressen in einer gemeinsamen Bank zum Ziel haben, selbst wenn die Adressen unter den Bänken verschachtelt sind. In dieser Situation muss ein herkömmliches Speicherteilsystem weiter darauf warten, dass die gemeinsame Bank verfügbar wird, bevor das Speicherteilsystem beginnen kann, die zweite und irgendwelche nachfolgenden Anforderungen zu bedienen. Ein solches erzwungenes Warten ist verschwenderisch, falls andernfalls damit begonnen werden hätte können, eine dritte Zugriffsanforderung zu bedienen, da die dritte Anforderung eine andere, verfügbare Speicherbank zum Ziel hat. Außerdem behandelt lediglich das Organisieren des Speichers in verschachtelte Bänke nicht die zusätzliche Dringlichkeit, die Leseanforderungen wie oben diskutiert gegenüber Schreibanforderungen haben.
  • US 5 421 788 betrifft das Management des Belegt-Zustands von Speicherbänken und das Beurteilen, ob Zugriffsanforderungen zulässig sind.
  • WO 9630838 beschreibt ein Verfahren und eine Vorrichtung zum Umordnen einer Lese- und Schreibanforderung in einem seitenbetriebsartgestützten Computersystem in Übereinstimmung mit einem Umordnungsschema. Dieses Schema ordnet die Anforderungen in der Weise um, dass alle Lese- und Schreibanforderungen, die den Zugriff auf eine momentane Seite erfordern, vor den Lese- und Schreibanforderungen ausgeführt werden, die den Zugriff auf eine andere Seite erfordern. Da die Seitenadresse nicht geändert zu werden braucht und die Seite bereits in einem elektronisch aktivierten Zustand ist, stellt dies einen schnellen Speicherzugriff sicher.
  • Im Gebiet wird ein Weg benötigt, um den Zugriff auf Speicherteilsysteme in der Weise zu steuern, dass die Bandbreite und die Gleichzeitigkeit maximiert werden, indem die Zeitdauer, die Speicheranforderungen darauf warten müssen, bedient zu werden, minimiert wird. Insbesondere wird ein Weg benötigt, der ermöglicht, dass ein Speicherteilsystem selbst dann beginnt, eine Anforderung für den Zugriff auf einen verfügbaren Speicherplatz zu bedienen, wenn eine vorausgehende Anforderung noch nicht bedient werden kann, da die Ziele der vorausgehenden Anforderung ein nicht verfügbarer Speicherplatz sind. Darüber hinaus wird ein Weg benötigt, der Leseanforderungen, die insbesondere in "Posted-Write"-Systemen, in denen die Prozessoren nicht darauf zu warten brauchen, dass ein Speicherschreibvorgang vollständig abgeschlossen ist, bevor sie zur nächsten Aufgabe übergehen, wichtiger als Schreibanforderungen sind, eine zusätzliche Priorität verleiht.
  • Die vorliegende Erfindung schafft ein Verfahren und eine Vorrichtung zum Erhöhen der Geschwindigkeit von Speicherteilsystemen durch Steuern der Reihenfolge, in der Speicherzugriffsanforderungen für die Bedienung geschedult werden.
  • Gemäß einer Ausführungsform der Erfindung wird ein Verfahren zum Umordnen mehrerer Speicherzugriffsanforderungen gemäß Anspruch 1 geschaffen.
  • Gemäß einer weiteren Ausführungsform der Erfindung enthält der Schritt des Auswählens einer Anforderung für den Zugriff auf den Speicher die Schritte des Feststellens, ob unter den mehreren Anforderungen eine Leseanforderung für den Zugriff auf einen verfügbaren Speicherplatz vorliegt, und wenn das der Fall ist, des Auswählens einer Leseanforderung für den Zugriff auf einen verfügbaren Speicherplatz; und wenn das nicht der Fall ist, des Auswählens einer Nichtleseanforderung für den Zugriff auf einen verfügbaren Speicherplatz.
  • Ein weiteres Verständnis des Wesens und der Vorteile der vorliegenden Erfindung kann anhand der verbleibenden Abschnitte der Beschreibung und der Zeichnungen realisiert werden.
  • 1 ist ein Blockschaltplan eines Computersystems, in dem die vorliegende Erfindung verkörpert sein kann.
  • 2A ist ein höherer Blockschaltplan, der eine Mehrprozessorausführungsform der vorliegenden Erfindung zeigt.
  • 2B ist ein höherer Blockschaltplan, der eine Mehrprozessorausführungsform der vorliegenden Erfindung zeigt, die zwei parallel geschaltete Spei cherbusse enthält.
  • 3A ist ein schematisches Diagramm, das die Reihenfolge der angeforderten Speicheroperationen gemäß dem Stand der Technik veranschaulicht, die mit angeforderten Leseoperationen gezeigt sind.
  • 3B ist ein schematisches Diagramm, das umfassend die Reihenfolge der angeforderten Speicheroperationen in der vorliegenden Erfindung veranschaulicht, die mit angeforderten Leseoperationen gezeigt sind.
  • 4 ist ein Blockschaltplan einer Ausführungsform der vorliegenden Erfindung.
  • 5 ist ein Ablaufplan, der das Anforderungs-Scheduling in Ausführungsformen der vorliegenden Erfindung veranschaulicht.
  • 6 ist ein Ablaufplan, der das Anforderungs-Scheduling in Ausführungsformen der vorliegenden Erfindung veranschaulicht, die das Lesen bevorzugen.
  • 7 Ist ein Blockstromlaufplan, der eine Ausführungsform der vorliegenden Erfindung veranschaulicht.
  • 8A und 8B sind Ablaufpläne, die das Anforderungs-Scheduling in dem Lese/Schreib-Scheduler aus 7 veranschaulichen.
  • 9A, 9B und 9C sind Ablaufpläne, die die Lese/Schreib-Präferenzerzeugung in dem Präferenzgenerator aus 7 veranschaulichen.
  • Die vorliegende Erfindung ist auf das Steuern der Reihenfolge gerichtet, in der die angeforderten Speicheroperationen in einem Datenverarbeitungssystem geschedult werden.
  • 1 ist ein vereinfachter Blockschaltplan eines Computersystems 101, in dem die vorliegende Erfindung verkörpert sein kann. Die auf dieser hohen Ebene veranschaulichte Computersystemkonfiguration ist Standard, so dass 1 als "Stand der Technik" bezeichnet ist. Allerdings ist ein Computersystem wie etwa das System 101, falls es die vorliegende Erfindung für das Management des Zugriffs auf den Speicher enthält, nicht Stand der Technik. In Übereinstimmung mit der bekannten Praxis enthält das Computersystem 101 einen oder mehrere Prozessoren 103, die über ein Busteilsystem 111 mit einer Anzahl von Peripherievorrichtungen kommunizieren. Diese Peripherievorrichtungen enthalten typisch Speicherteilsysteme wie etwa ein Schreib-Lese-Speicher-Teilsystem (RAM-Teilsystem) 107 und ein Plattenspeicherteilsystem 109, Eingabeeinrichtungen wie etwa eine Tastatur 104 oder eine Maus 105 und Ausgabeeinrichtungen wie etwa eine Anzeige 102. Weitere typische Peripherievorrichtungen, die nicht gezeigt sind, umfassen Drucker, Magnetbandspeicher-Teilsysteme, ferner vernetzte Server-Speicherteilsysteme usw.
  • Im vorliegenden Kontext wird der Begriff "Busteilsystem" allgemein in der Weise verwendet, dass er irgendeinen Mechanismus enthält, der ermöglicht, dass die verschiedenen Komponenten des Systems 101 bei Bedarf miteinander kommunizieren. Obgleich das Busteilsystem 111 schematisch als ein einziger Bus gezeigt ist, enthält ein typisches Computersystem z. B. eine Anzahl von "Bussen" wie etwa einen Lokalbus, einen oder mehrere Erweiterungsbusse, serielle Anschlüsse, parallele Anschlüsse, Netzverbindungen usw. Im Allgemeinen brauchen die Komponenten des Computersystems 101 nicht am gleichen physikalischen Ort zu sein.
  • 1 ist nur für einen Typ eines Datenverarbeitungssystems repräsentativ, das die vorliegende Erfindung verkörpert. Für den Durchschnittsfachmann auf dem Gebiet ist leicht sichtbar, dass für die Verkörperung der vorliegenden Erfindung viele Computersystemtypen und -konfigurationen geeignet sind.
  • 2A ist ein Blockschaltplan, der eine Mehrprozessorausführungsform 201 der vorliegenden Erfindung zeigt. Das Datenverarbeitungssystem 201 enthält eine Anzahl von Prozessoren P1–P4, die jeweils mit 203, 204, 205 und 206 bezeichnet sind. Die Prozessoren sind mit einem Speicherbus 215 gekoppelt. Der Speicherbus 215 ist über eine Anforderungsumordnungseinheit 214 mit einem Speicherteilsystem 216 gekoppelt.
  • Die Prozessoren P1–P4 erzeugen auf dem Speicherbus 215 Anforderungen für das Speicherteilsystem 216. Die Anforderungsumordnungseinheit 214 nimmt die Anforderungen von dem Speicherbus 215 an und schedult die Anforderungen, wie unten beschrieben wird, gemäß den Techniken der vorliegenden Erfindung. In einigen Ausführungsformen ist der Speicherbus 215 ein Intel-P6-Bus; ist die Anzahl der Prozessoren vier oder weniger; und sind die Prozessoren Intel-Pentium-Pro-kompatible Prozessoren.
  • 2B ist ein Blockschaltplan, der eine Mehrprozessorausführungsform der vorliegenden Erfindung zeigt, die zwei parallel geschaltete Speicherbusse enthält. Das Datenverarbeitungssystem 202 enthält eine Anzahl von Prozessoren P1–P8, die jeweils mit 223, 224, ... und 230 bezeichnet sind. Die Prozessoren P1–P4 sind mit einem ersten Speicherbus 211 gekoppelt. Die Prozessoren P5–P8 sind mit einem zweiten Speicherbus 212 gekoppelt. Die zwei Speicherbusse 211 und 212 sind durch eine Steuereinheit/einen Kreuzschienenschalter 213, der das Schalten zwischen den zwei Bussen und einem dritten Bus 215 ausführt, parallel geschaltet. Der dritte Bus 215 ist über eine Anforderungsumordnungseinheit 214 mit einem Speicherteilsystem 216 gekoppelt. Die Busse 211, 212 und 215 können als zu einem Busteilsystem gehörend betrachtet werden.
  • Die Steuereinheit/der Kreuzschienenschalter 213 führt Kohärenzprüfungs- und Lenkungsanweisungen aus, die erforderlich sind, um Operationen von einem der Busse 211 und 212 zum anderen widerzuspiegeln. Die Prozessoren P1–P4 erzeugen auf dem ersten Speicherbus 211 Anforderungen für das Speicherteilsystem 216. Die Prozessoren P5–P8 erzeugen auf dem zweiten Speicherbus 212 Anforderungen für das Speicherteilsystem 216. Die Steuereinheit/der Kreuzschienenschalter 213 lenkt Speicheranforderungen von den zwei Speicherbussen 211 und 212 zu dem dritten Bus 215. Die Anforderungsumordnungseinheit 214 empfängt Anforderungen von dem dritten Bus 215 und schedult die Anforderungen gemäß den Techniken der vorliegenden Erfindung, wie sie unten beschrieben werden. In einigen Ausführungsformen sind die Speicherbusse 211 und 212 jeweils Intel-P6-Busse; ist die Anzahl der Prozessoren, die mit jedem Speicherbus gekoppelt sind, vier oder weniger und sind die Prozessoren Intel-Pentium-Prokompatible Prozessoren.
  • 3A ist ein schematisches Diagramm, das das Ordnen der angeforderten Speicheroperationen gemäß dem Stand der Technik veranschaulicht, wie es im Hintergrundabschnitt diskutiert worden ist. Lediglich zur Einfachheit der Veranschaulichung sind alle gezeigten angeforderten Operationen Leseoperationen. In 3A werden mehrere angeforderte Speicheroperationen 303, die jeweils eine Zielspeicheradresse enthalten, durch einen Abschnitt 301 eines Datenverarbeitungssystems an ein Speicherteilsystem 216 übergeben. Die Anforderungen/Speicheradressen haben die Reihenfolge A110, A104, A99, A50, A2 und A1 und sind jeweils mit 305, 306, ... und 310 bezeichnet.
  • Das Speicherteilsystem 216 beginnt, jede anforderte Operation der Reihe nach auszuführen. Falls die Zielspeicheradresse einer angeforderten Operation verfügbar ist, beginnt das Speicherteilsystem 216, die angeforderte Operation auszuführen. Falls das nicht der Fall ist, wartet das Speicherteilsystem darauf, dass die Zielspeicheradresse verfügbar wird. In Situationen wie etwa den im Hintergrundabschnitt beschriebenen, in denen ansonsten damit begonnen werden hätte können, eine nachfolgend angeforderten Operation zu bedienen, die eine verfüg bare Adresse zum Ziel hat, kann dieses Warten verschwenderisch sein.
  • Die durch die angeforderten Operationen 303 angeforderten Daten werden in einer Reihenfolge 312, die der Reihenfolge der angeforderten Operationen 303 entspricht, zurückgegeben 322. In diesem Beispiel ist die Reihenfolge 312 der Daten D110, D104, D99, D50, D2 und D1, wobei sie jeweils mit 315, 316, ... und 320 bezeichnet sind.
  • 3B ist ein schematisches Diagramm, das umfassend das Umordnen der angeforderten Speicheroperationen in der vorliegenden Erfindung veranschaulicht. Lediglich zur Vereinfachung der Veranschaulichung sind alle gezeigten angeforderten Operationen Leseoperationen. In 3B sind mehrere angeforderte Operationen 303, die jeweils eine Zielspeicheradresse enthalten, durch einen Abschnitt 301 eines Datenverarbeitungssystems dargestellt.
  • Die Anforderungen/Speicheradressen 303 haben eine Anfangsreihenfolge A110, A104, A99, A50, A2 und A1 und sind jeweils mit 305, 306, ... und 310 bezeichnet. Diese angeforderten Operationen werden in Übereinstimmung mit einer neuen Reihenfolge 311 zur nachfolgenden Ausführung an ein Speicherteilsystem 216 übergeben 323. Das Umordnen wird gemäß unten diskutierten Techniken ausgeführt, um das Warten in dem Speicherteilsystem 216, das dadurch veranlasst wird, dass Zieladressen nicht verfügbar sind, zu minimieren. In diesem Beispiel wird die Reihenfolge der Anforderungen/Adressen zu einer Reihenfolge A99, A110, A1, A104, A2 und A50 optimiert 311.
  • Die Daten werden in der optimierten Reihenfolge D99, D110, D1, D104, D2 und D50 aus dem Speicherteilsystem 216 gelesen 324. Daraufhin werden diese Daten in einer Reihenfolge 312 D110, D104, D99, D50, D2 und D1, wobei sie jeweils mit 315, 316, ... 320 bezeichnet sind, umgeordnet 313. Die umgeordnete Datenreihenfolge entspricht der Anfangsanforderungsreihenfolge. Die umgeordneten Daten werden zurückgegeben 322. Da die Daten in Übereinstimmung mit der Anfangsanforderungsreihenfolge zurückgegeben werden 322, brauchen Entitäten, z. B. nicht gezeigte Prozessoren, die Speicheroperationen anfordern, die Reihenfolge, in der die angeforderten Operationen durch das Speicherteilsystem 216 tatsächlich ausgeführt wurden, nicht zu kennen.
  • In 3B wurden zur Erleichterung der Veranschaulichung lediglich angeforderte Leseoperationen gezeigt. Im Allgemeinen können die angeforderten Operationen auch Schreiboperationen sein. Die Daten für Schreibvorgänge müssen zusammen mit den Schreib-Anforderungen/Adressen selbst umgeordnet werden.
  • Im Allgemeinen sollten Maßnahmen ergriffen werden, um die Situation zu verhindern, dass ein angeforderter Schreibvorgang, auf den ein angeforderter Lesevorgang zu derselben Adresse folgt, umgeordnet wird, so dass der Lesevorgang vor dem Schreibvorgang ausgeführt wird. Eine solche Umordnung sollte vermieten werden, da sie veranlassen würde, dass der Lesevorgang falsche Daten zurückgibt. Ein Weg, um die falsche Umordnung zu verhindern, ist, den Abschnitt 301 des Systems keine Schreibanforderungen ausgeben zu lassen, auf die Leseanforderungen folgen, bis abgeleitet werden kann, dass die Schreibanforderung bereits geschedult worden ist. Ein weiterer Weg ist zuzulassen, dass der Abschnitt 301 des Systems ohne Beschränkung Anforderungen ausgibt, und daraufhin die Situation während des Umordnungsprozesses selbst aktiv verhindert. Beim letzteren Weg brauchen Entitäten, z. B. nicht gezeigte Prozessoren, die die Speicheroperationen anfordern, überhaupt nicht zu wissen, dass eine Umordnung stattfindet.
  • 4 ist ein Funktionsblockschaltplan eines Datenverarbeitungssystems 401 gemäß der vorliegenden Erfindung. Ein Abschnitt 301 des Systems gibt Speicherzugriffsanforderungen 303 und "W"-Daten 403, die bestimmten der Anforderungen 303 zugeordnet sind, aus. Die "W"-Daten sind Daten, die einer angeforderten Speicheroperation bzw. angeforderten Speicheroperationen zugeordnet sind, die an einen Speicherplatz bzw. an Speicherplätze zu schreibende Daten enthalten. Die Anforderungen 303 und die "W"-Daten 403 können z. B. von einem (nicht gezeigten) Busteilsystem in dem Abschnitt 301 des Datenverarbeitungssystems ausgegeben werden, wobei das Busteilsystem dem Busteilsystem 111 aus 1 entspricht.
  • Eine Adressenumordnungs-Teileinheit 311 innerhalb einer Anforderungsumordnungseinheit 214 empfängt die Anforderungen 303 und speichert sie vorübergehend in einem Puffer. In Ausführungsformen der Erfindung empfängt die Adressenumordnungs-Teileinheit 311 die Anforderungen 303 über einen optionalen Kollisionsdetektor 404. Die Anforderungen 303 können beim Eintritt in die Adressenumordnungs-Teileinheit 311 eine Anfangsreihenfolge besitzen. Die Adressenumordnungs-Teileinheit 311 übergibt die Anforderungen gemäß unten diskutierten Techniken in einer neuen Reihenfolge 408 der Anforderungen an ein Speicherteilsystem 216.
  • Eine erste Datenumordnungs-Teileinheit 406 innerhalb der Anforderungsumordnungseinheit 214 empfängt die "W"-Daten 403. Die erste Datenumord nungs-Teileinheit 406 übergibt die "W"-Daten in einer neuen Reihenfolge 410 der "W"-Daten in Übereinstimmung mit der Anordnung von der Adressenumordnungs-Teileinheit 311 an das Speicherteilsystem 216. Die neue Reihenfolge 410 der "W"-Daten 403 entspricht der neuen Reihenfolge 408 der Anforderungen 303.
  • Das Speicherteilsystem 216 erfüllt die Anforderungen und gibt irgendwelche resultierenden "R"-Daten 412 an die Anforderungsumordnungseinheit 214 zurück. Die "R"-Daten sind Daten, die sich aus einer angeforderten Speicheroperation bzw. aus angeforderten Speicheroperationen ergeben, einschließlich Daten, die vom Zielspeicherplatz bzw. von Zielspeicherplätzen gelesen werden.
  • Eine zweite Datenumordnungs-Teileinheit 313 empfängt innerhalb der Anforderungsumordnungseinheit 214 die "R"-Daten und gibt sie an den Abschnitt 301 des Datenverarbeitungssystems zurück 414. Falls die Anforderungen 303 eine Anfangsreihenfolge besaßen, stellt die zweite Datenumordnungs-Teileinheit 313 für die "R"-Daten 412 die Reihenfolge wieder her, bevor sie die "R"-Daten zurückgibt 414, wobei die wiederhergestellte Reihenfolge der Anfangsreihenfolge der Anforderungen 303 entspricht. In Ausführungsformen der vorliegenden Erfindung sind die zweite Datenumordnungs-Teileinheit 313 und die erste Datenumordnungs-Teileinheit 406 in einer einzigen Einheit implementiert, die in der Weise gekoppelt ist, dass sie eine Anweisung von der Adressenumordnungs-Teileinheit 311 empfängt.
  • Ausführungsformen der Erfindung aus 4 arbeiten typisch in einer andauernden dynamischen Laufzeitweise. Die Anforderungsumordnungseinheit 214 nimmt dynamisch neue Anforderungen und entsprechende "W"-Daten an. Die Anforderungsumordnungseinheit 214 übergibt in Übereinstimmung mit einer optimalen neuen Reihenfolge 408 für Anforderungen und 410 für entsprechende "W"-Daten dynamisch Anforderungen und entsprechende "W"-Daten an das Speicherteilsystem 216. Die Anforderungsumordnungseinheit 214 empfängt dynamisch Daten von dem Speicherteilsystem 216, ordnet sie um und gibt "R"-Daten zurück.
  • Der Kollisionsdetektor 404 einiger Ausführungsformen der vorliegenden Erfindung implementiert ein Verfahren, das sicherstellt, dass Lesevorgänge von einer Adresse erst geschehen, wenn irgendwelche früheren Schreibvorgänge zu dieser Adresse abgeschlossen worden sind. Dadurch, dass dies sichergestellt wird, verhindert der Kollisionsdetektor 404, dass das Umordnen der Anforderungen das oben diskutierte Problem des vorzeitigen und fehlerhaften Lesens von einer Adresse verursacht. Der Kollisionsdetektor 404 arbeitet wie im nächsten Absatz beschrieben, um von vornherein zu verhindern, dass Anforderungssequenzen, die das oben diskutierte Problem verursachen können, in die Adressenumordnungs-Teileinheit 311 eintreten. Weitere Möglichkeiten, um das Problem des vorzeitigen Lesens zu verhindern, sind anhand der Lehren hierin sichtbar. In Ausführungsformen der Erfindung, die den Kollisionsdetektor 404 nicht besitzen, könnte z. B. die Adressenumordnungs-Teileinheit 311 selbst die Anforderungssequenzen überwachen und verhindern, dass die Reihenfolge einer Schreibanforderung, auf die eine Leseanforderung zu derselben Adresse folgt, umgekehrt wird.
  • In dem Kollisionsdetektor 404 werden die Zieladressen ankommender Leseanforderungen mit den Adressen aller in der Adressenumordnungs-Teileinheit 311 wartender Schreibanforderungen abgeglichen. Falls eine Leseanforderung mit einer der Schreibanforderungsadressen zusammenfällt, wird diese Leseanforderung blockiert, um zu verhindern, dass sie in die Adressenumordnungs-Teileinheit 311 eintritt. Wenn die zusammenfallende Schreibanforderung schließlich die Adressenumordnungs-Teileinheit 311 auf dem Weg zu dem Speicherteilsystem 216 verlässt, verschwindet die "Kollision", wobei zugelassen wird, dass die Leseanforderung in die Adressenumordnungs-Teileinheit 311 eintritt.
  • Beim Eintritt in die Anforderungsumordnungseinheit 214 können die Anforderungen Standardprioritäten haben, die eine Anfangsreihenfolge der Anforderungen definieren. Die vorliegende Erfindung weist den Anforderungen durch Festsetzen einer neuen Reihenfolge der Anforderungen neue Prioritäten zu. Jenen Anforderungen, die momentan verfügbare Adressen zum Ziel haben, wird eine hohe Priorität zugewiesen.
  • Die Standardanforderungsprioritäten können durch beliebige Kriterien oder durch heuristische Vorschriften festgestellt werden. In einer Ausführungsform der Erfindung werden ältere Anforderungen als solche mit höherer Priorität als neuere Anforderungen definiert. Das Alter einer Anforderung kann z. B. durch die Zeit, zu der die Anforderung ausgegeben wurde, durch die Zeit, zu der die Anforderung empfangen wurde, oder durch einen der Anforderung zugeordneten Zeitstempel festgestellt werden. In einer weiteren Ausführungsform der Erfindung wird die Standardpriorität durch ein der Anforderung zugeordnetes Prioritätsfeld festgestellt. Außerdem kann die Standardpriorität durch die Identität der Entität, zum Beispiel des Prozessors, der die Anforderung ursprünglich erzeugt hat, beeinflusst sein.
  • In Ausführungsformen der vorliegenden Erfindung ist die Anforderungsumordnungseinheit 214 in Software implementiert, die in einem Prozessor auszuführen ist. In Ausführungsformen der vorliegenden Erfindung ist die Software in einem Computerprogrammprodukt gespeichert, das ein computerlesbares Speichermedium enthält. Computerlesbare Speichermedien umfassen Nur-Lese-Speicher (ROM), programmierbare Nur-Lese-Speicher (PROM), eine CD-ROM, eine Festplatte usw. In Ausführungsformen der vorliegenden Erfindung ist die Anforderungsumordnungseinheit 214 durch Software konfigurierbar.
  • 5 ist ein Ablaufplan, der die Anforderungsordnung in der Adressenumordnungs-Teileinheit 311 gemäß Ausführungsformen der vorliegenden Erfindung veranschaulicht. 5 wird unter weiterer Bezugnahme auf 4 diskutiert. In den Ausführungsformen gemäß 5 stellt die Adressenumordnungs-Teileinheit 311 in Schritt 502 fest, ob eine Anforderung der in der Umordnungs-Teileinheit 311 gepufferten Anforderungen eine verfügbare Adresse zum Ziel hat. Wenn das der Fall ist 503, schedult die Umordnungs-Teileinheit 311 in Schritt 504 eine solche Anforderung in der neuen Reihenfolge 408 und veranlasst sie, dass die Datenumordnungs-Teileinheit 406 irgendwelche entsprechenden "W"-Daten dementsprechend schedult 410. In Schritt 504 wird die geschedulte Anforderung aus der Adressenumordnungs-Teileinheit 311 entfernt. In einer bevorzugten Ausführungsform der Erfindung schedult die Adressenumordnungs-Teileinheit in Schritt 504 eine Anforderung, die unter den Anforderungen, die verfügbare Adressen zum Ziel haben, die höchste Priorität besitzt.
  • Das Scheduling einer Anforderung bedeutet, dass die Anforderung in eine Warteschlange von Anforderungen zur Lieferung an das Speicherteilsystem 216 eingereiht wird. In einer bevorzugten Ausführungsform der Erfindung ist die Länge der Warteschlange null, wobei Anforderungen an das Speicherteilsystem 216 übergeben werden, sobald sie geschedult werden.
  • In Ausführungsformen der Erfindung enthält das Speicherteilsystem Speicherbänke, wobei eine Speicheradresse verfügbar ist, wenn die Bank verfügbar ist, in der sie vorliegt. In Ausführungsformen der Erfindung enthält das Speicherteilsystem Speicherbänke mit verschachtelten Adressen, wobei eine Speicheradresse verfügbar ist, wenn die Bank verfügbar ist, in der sie vorliegt. Die vorliegende Erfindung ist besonders geeignet, um die Zugriffe auf Speicherteilsysteme zu steuern, die Speicherbänke enthalten. Außerdem ist die vorliegende Erfindung besonders geeignet, um die Zugriffe auf Speicherteilsysteme zu steuern, die Spei cherbänke mit verschachtelten Adressen enthalten. Außerdem ist die vorliegende Erfindung besonders geeignet, um die Zugriffe auf die Speicherteilsysteme zu steuern, die Halbleiterspeicherteilsysteme oder Speicherteilsysteme mit ähnlicher oder höherer Geschwindigkeit sind.
  • 6A ist ein Ablaufplan, der das Anforderungs-Scheduling in Ausführungsformen der vorliegenden Erfindung veranschaulicht, die Leseanforderungen gegenüber Schreibanforderungen bevorzugen. Wie im Hintergrundabschnitt diskutiert worden ist, ist es besonders wichtig, Leseanforderungen so schnell wie möglich zu behandeln, da eine Leseanforderung angibt, dass ein anfordernder Prozessor möglicherweise auf Daten wartet. Somit ist eine Leseanforderung eine kritischere Anforderung als andere Operationen, z. B. eine Schreiboperation. 6A wird mit weiterem Bezug auf 4 diskutiert.
  • In den Ausführungen gemäß 6A stellt die Adressenumordnungs-Teileinheit 311 in Schritt 610 zuerst fest, ob eine Leseanforderung der in der Umordnungs-Teileinheit 311 gepufferten Anforderungen eine verfügbare Adresse zum Ziel hat. Wenn das der Fall ist 611, schedult die Adressenumordnungs-Teileinheit 311 in Schritt 612 diese Leseanforderung in der neuen Reihenfolge 408. In einer bevorzugten Ausführungsform der Erfindung schedult die Adressenumordnungs-Teileinheit in Schritt 612 eine Anforderung, die die höchste Standardpriorität unter den Leseanforderungen besitzt, die verfügbare Adressen zum Ziel haben. In Schritt 612 wird die geschedulte Leseanforderung aus der Umordnungs-Teileinheit 311 entfernt.
  • Falls in Schritt 610 festgestellt wird, dass keine Leseanforderung in der Umordnungs-Teileinheit 311 eine verfügbare Adresse zum Ziel hat 613, stellt die Umordnungs-Teileinheit 311 in Schritt 614 fest, ob eine Schreibanforderung der Anforderungen in der Umordnungs-Teileinheit 311 eine verfügbare Adresse zum Ziel hat. Wenn das der Fall ist 616, schedult die Adressenumordnungs-Teileinheit 311 in Schritt 618 diese Schreibanforderung in der neuen Reihenfolge 408 und veranlasst, dass die Datenumordnungs-Teileinheit 406 irgendwelche entsprechenden "W"-Daten dementsprechend schedult 410. In einer bevorzugten Ausführungsform der Erfindung schedult die Adressenumordnungs-Teileinheit in Schritt 618 eine Anforderung, die die höchste Standardpriorität unter den Schreibanforderungen besitzt, die verfügbare Adressen zum Ziel haben. In Schritt 618 wird die geschedulte Schreibanforderung aus der Umordnungs-Teileinheit 311 entfernt.
  • In vielen Speicherteilsystemen kann eine Schreibanforderung wegen der potentiellen Buskonkurrenz in dem Speicherteilsystem zwischen den in das Speicherteilsystem eintretenden Schreibdaten und den in dem Speicherteilsystem vorliegenden Lesedaten nicht sofort geschedult werden, nachdem eine Leseanforderung geschedult worden ist. Wenn die vorliegende Erfindung zum Steuern des Zugriffs auf diese Speicherteilsysteme verwendet wird, sollte diese mögliche Konkurrenz berücksichtigt werden. Ein Weg, um eine mögliche Konkurrenz zu verhindern, besteht darin, den Schritt 614 zu ändern, so dass nicht nur gefragt wird, ob eine Schreibanforderung vorliegt, die eine verfügbare Adresse zum Ziel hat, sondern auch, ob der Schreib-Datenweg leer ist. Zum Beispiel kann festgestellt werden, dass der Schreibdatenweg leer ist, wenn die zuvor geschedulte Anforderung keine Leseanforderung war oder wenn zwischen der Ausführungszeit der zuvor geschedulten Anforderung und der der besagten Schreibanforderung ein ausreichendes Zeitintervall sichergestellt worden ist. Die Schreibanforderung wird nur dann in Schritt 618 geschedult, wenn eine Schreibanforderung vorliegt und der Schreibweg leer ist 616.
  • In Speicherteilsystemen, wie sie im vorangehenden Absatz beschrieben worden sind, geht während Busübergaben oder schnellen Übergängen von der Behandlung einer Leseanforderung zur Behandlung einer Schreibanforderung Zeit verloren. Um die Menge der verlorenen Zeit zu verringern, enthalten Ausführungsformen der vorliegenden Erfindung nach dem Schritt 618 den optionalen Burst-Schreibschritt 620, um Busübergaben zu minimieren. Der Burst-Schreibschritt 620 implementiert das Verhalten, dass, wenn in Schritt 618 eine Schreibanforderung geschedult wird, in Schritt 620 ein Burst von Schreibanforderungen nacheinander geschedult wird. In diesem Sinn sind Schreibanforderungen eine "burstfähige" Operation, da sie Nutzen daraus ziehen, sie miteinander zu gruppieren.
  • 6B ist ein Ablaufplan, der den Burst-Schreibschritt aus 6A veranschaulicht. 6B ist zum größten Teil selbsterklärend. Wie zu sehen ist, werden die Schreibanforderungen an verfügbare Adressen in Schritt 622 geschedult, bis entweder 624 keine weiteren Schreibanforderungen vorliegen, die verfügbare Adressen zum Ziel haben, oder 626 eine vorgegebene Anzahl X von Schreibanforderungen in dem momentanen Burst geschedult worden sind und eine Leseanforderung vorliegt, die eine verfügbare Adresse zum Ziel hat. In einer Ausführungsform der vorliegenden Erfindung wird die Anzahl X anhand von Systemanforderungen eingestellt. In einer bevorzugten Ausführungsform der vorliegenden Erfindung ist die Anzahl X programmierbar. Zum Beispiel könnte der Wert von X durch ein Softwareprogramm, durch DIP-Schalter oder dergleichen in einem Register gespeichert werden. In einer Ausführungsform der Erfindung mit acht Intel-Pentium-Pro-Prozessoren, wie sie in 2B gezeigt ist, ist festgestellt worden, dass ein Wert von vier für X gut funktioniert.
  • 7 ist ein Blockstromlaufplan, der eine Ausführungsform 701 der vorliegenden Erfindung veranschaulicht, die Anforderungen an ein verschachteltes Mehrbank-Speichersystem steuert. In 7 sendet ein Bus 111 Speicheranforderungen an das Eingangsende 705 eines Schiebepuffers, das Anforderungspuffer 703 genannt wird.
  • Der Anforderungspuffer 703 besitzt eine Anzahl von Elementen wie etwa ein Element 705, die jeweils eine Anforderung speichern können. In einer Acht-Pentium-Pro-Prozessor-Ausführungsform der vorliegenden Erfindung ist festgestellt worden, dass ein Puffer mit acht Elementen geeignet ist. Innerhalb eines Elements wird eine Anforderung als ein "Typ" 707, eine "ID" 709 und eine "Bank" 711 gespeichert. Ein Anforderungstyp 707 kann die Werte "Lesen" oder "Schreiben" annehmen. Eine Anforderungs-ID 709 spezifiziert die Zieladresse der Anforderung. In einer Ausführungsform der Erfindung ist eine Anforderungs-ID nicht selbst eine Adresse, sondern ein Index, d. h. ein Zeiger, auf einen (nicht gezeigten) Adressenpuffer, der Adressen hält. Eine Anforderungsbank 711 ist die Speicherbank, zu der die Zieladresse gehört. Außerdem enthält jedes Element ein "Gültig"-Bit 713, das besagt, ob dieses Element momentan eine Anforderung enthält.
  • Der Anforderungspuffer 703 ist in der Weise gekoppelt, dass er von einer Speichersteuereinheit 715 Informationen empfängt, die angeben, welche Speicherbänke momentan für Lesevorgänge 717 oder für Schreibvorgänge 719 verfügbar sind. Der Anforderungspuffer stellt anhand der Informationen darüber, welche Bänke verfügbar sind, fest, welche der Anforderungen verfügbare Adressen zum Ziel haben. Der Anforderungspuffer 703 übergibt 721 alle Leseanforderungen, die verfügbare Adressen zum Ziel haben, an einen Lese-MUX 723. Der Anforderungspuffer 703 übergibt 725 alle Schreibanforderungen, die verfügbare Adressen zum Ziel haben, an einen Schreib-MUX 727.
  • Der Lese-MUX 723 übergibt die älteste Leseanforderung 729 der Leseanforderungen 721 mit verfügbarem Ziel an einen Lese/Schreib-Scheduler 731. Außerdem erzeugt der Lese-MUX 723 einen "Lesen-verfügbar"-Merker 735, der das Vorliegen der ältesten Leseanforderung 729 mit verfügbarem Ziel angibt. Der Lese/Schreib-Scheduler 731 und ein Präferenzgenerator 737 empfangen den "Lesen-verfügbar"-Merker 735.
  • Der Schreib-MUX 727 übergibt die älteste Schreibanforderung 733 der Schreibanforderungen 725 mit verfügbarem Ziel an den Lese/Schreib-Scheduler 731. Außerdem erzeugt der Schreib-MUX 727 einen "Schreiben-verfügbar"-Merker, der das Vorliegen der ältesten Schreibanforderung 733 mit verfügbarem Ziel angibt. Der Lese/Schreib-Scheduler 731 und der Präferenzgenerator 737 empfangen den "Schreiben-verfügbar"-Merker 739.
  • Der Lese/Schreib-Scheduler 731 und der Präferenzgenerator 737 implementieren zusammen die Umordnungsvorschriften der Ausführungsform 701. Auf einer hohen Ebene sind die Umordnungsvorschriften der Ausführungsform 701 wie oben in Verbindung mit den 6 und 6B beschrieben.
  • Wie unten beschrieben wird, stellt der Präferenzgenerator 737 eine momentane Präferenz 741 für Leseanforderungen oder eine momentane Präferenz 743 für Schreibanforderungen fest. Wie unten beschrieben wird, schedult 745 der Lese/Schreib-Scheduler 731 teilweise anhand der momentanen Präferenz entweder die älteste Leseanforderung 729 mit verfügbarem Ziel oder die älteste Schreibanforderung 733 mit verfügbarem Ziel. Wenn eine Anforderung geschedult worden ist 745, nimmt die Speichersteuereinheit 715 die Anforderung an, wobei der Präferenzgenerator 737 und eine Schiebesteuereinheit 751 davon in Kenntnis gesetzt werden, ob gerade eine Leseanforderung 747 oder eine Schreibanforderung 749 geschedult worden ist.
  • Die Schiebesteuereinheit 751 ist in der Weise gekoppelt, dass sie den Inhalt des Anforderungspuffers 703 kennt. Nachdem eine Anforderung geschedult worden ist, entfernt die Schiebesteuereinheit 751 diese Anforderung aus dem Anforderungspuffer 703. Hierfür führt die Schiebesteuereinheit 751 zwei Funktionen aus. Zunächst leitet die Schiebesteuereinheit 751 durch Identifizieren der ältesten Anforderung mit verfügbarem Ziel, die an den Typ der gerade geschedulten Anforderung (d. h. an den Lesetyp 747 oder an den Schreibtyp 749) angepasst worden ist, ab, welche Anforderungen diejenige war, die gerade geschedult worden ist. Zweitens weist die Schiebesteuereinheit 751 den Anforderungspuffer 703 an, alle Anforderungen, die um ein Element älter als die gerade geschedulte Anforderung sind, von dem Eingabeende 705 (d. h. von dem neueren Ende) des Anforderungspuffers 703 weg zu verschieben.
  • Wie oben erwähnt wurde, ist der Anforderungspuffer 703 als ein Schieberegister mit einem jüngeren Ende 705 und einem entgegengesetzten älteren Ende 706 konstruiert. Das Alter des Eintritts der Anforderungen in den Puffer 703 steigt von dem jüngeren Ende 705 zu dem älteren Ende 706 notwendig an. Der Ablauf innerhalb des Anforderungspuffers 703 wird unter Verwendung der folgernden Vorschriften für jedes Element X des Puffers gesteuert, die gleichzeitig auf alte Elemente angewendet werden. Die Wirkung dieser Vorschriften ist, dass der Anforderungspuffer 703 seinen Inhalt verschiebt, um nicht belegte Elemente zu füllen, wodurch die Verfügbarkeit jüngerer Elemente zum Füllen an dem jüngeren Eingangsende 705 maximiert wird.
  • Vorschrift 1: Falls das Element X oder ein älteres Element nicht verwendet wird, wird der Inhalt des Elements X durch den Inhalt des benachbarten jüngeren Elements ersetzt.
  • Vorschrift 2: Falls geschedult wird, dass das Element X oder ein älteres Element in das Speichersystem geht, wird der Inhalt des Elements X durch den Inhalt des benachbarten jüngeren Elements ersetzt.
  • Vorschrift 3: Falls die Bedingungen sowohl der Vorschrift 1 als auch der Vorschrift 2 falsch sind, bleibt der Inhalt des Elements X ungeändert.
  • Da die Ausführungsform 701 so entworfen ist, dass sie mit einem in 7 nicht gezeigten Kollisionsdetektor 404 arbeitet, nimmt die Ausführungsform 701 an, dass auf keine aktive Schreibanforderung zu einer Adresse eine aktive Leseanforderung zu derselben Adresse folgt. Durch Hinzufügen einer Kollisionsfeststellungslogik zu dem Anforderungspuffer 703 kann die Ausführungsform 701 geändert werden, so dass sie die Annahme nicht macht.
  • 8A ist ein Ablaufplan, der das Anforderungs-Scheduling in dem Lese/Schreib-Scheduler 731 aus 7 ausgehend von einer momentanen Präferenz für Lesevorgänge 741 veranschaulicht. In 8A wird eine älteste Leseanforderung geschedult 801, falls sie eine verfügbare Adresse 803 zum Ziel hat. Andernfalls 805 wird eine älteste Schreibanforderung geschedult 807, die eine verfügbare Adresse 809 zum Ziel hat, falls ausreichend Zeit vergangen ist 811, seit die vorausgehende Schreibanforderung geschedult worden ist, damit der Schreibweg leer ist.
  • 8B ist ein Ablaufplan, der das Anforderungs-Scheduling in dem Lese/Schreib-Scheduler 731 aus 7 ausgehend von einer momentanen Präferenz für Schreibvorgänge 743 veranschaulicht. In 8B wird eine älteste Schreibanforderung geschedult 821, falls sie eine verfügbare Adresse 823 zum Ziel hat. Andernfalls 825 wird eine älteste Leseanforderung geschedult 827, die eine verfügbare Adresse 829 zum Ziel hat.
  • Die 9A, 9B und 9C sind Ablaufpläne, die die Lese/Schreib-Präferenzerzeugung in dem Präferenzgenerator 737 aus 7 veranschaulichen. Wie aus 9A zu sehen ist, wird eine momentane Präferenz für Lesevorgänge 741 genau dann in eine Präferenz für Schreibvorgänge geändert 907, 913, wenn keine Leseanforderung mit verfügbarem Ziel vorliegt 905, aber eine Schreibanforderung mit verfügbarem Ziel vorliegt 909. Bei Bedarf 910, 912 wartet 915 der Präferenzgenerator, bevor er eine momentane Präferenz für Schreibvorgänge festsetzt 913. Das Warten soll einen leeren Schreibweg sicherstellen, indem ausreichend Zeit verstreichen gelassen wird 911, nachdem eine vorangehende Leseanforderung geschedult worden ist. Während des Wartens ist weder eine Präferenz für Schreibvorgänge noch eine Präferenz für Lesevorgänge aktiviert – d. h., die Präferenz ist unbestimmt.
  • Wie aus 9C zu sehen ist, bleibt eine momentane Präferenz für Schreibvorgänge 743, nachdem sie aktiviert worden ist, aktiviert 917, bis entweder keine Schreibanforderung mit verfügbarem Ziel vorliegt 919 oder eine vorgegebene Anzahl X von Schreibvorgängen sukzessive geschrieben worden ist 921. In einer Acht-Pentium-Pro-Ausführungsform der vorliegenden Erfindung ist festgestellt worden, dass ein Wert von vier für X gut funktioniert.
  • Obgleich das Obige eine vollständige Beschreibung spezifischer Ausführungsformen der Erfindung ist, können verschiedene Änderungen, alternative Konstruktionen und Entsprechungen verwendet werden.

Claims (17)

  1. Verfahren zum Umordnen mehrerer Speicherzugriffsanforderungen (303), die in einer bestimmten Reihenfolge in einem Datenverarbeitungssystem (101, 201, 202, 401) empfangen werden, wobei das Verfahren die folgenden Schritte umfasst: Annehmen mehrerer Anforderungen (303), Halten der mehreren Anforderungen (303) in einem Anforderungspuffer (103), Auswählen einer Anforderung zum Zugreifen auf einen Speicherplatz aus den mehreren Anforderungen entsprechend einem Auswahlschema, wobei die ausgewählte Anforderung nicht die nächste in der Reihenfolge ist, und Scheduling der ausgewählten Anforderung, gekennzeichnet durch Feststellen (502) der Nichtverfügbarkeit des Speicherplatzes aufgrund eines Speicherzugriffs oder der Verfügbarkeit des Speicherplatzes für einen Speicherzugriff und Auswählen (504) der Anforderung entsprechend dem Auswahlschema, falls die Verfügbarkeit des Speicherplatzes festgestellt wird (503).
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Schritt des Auswählens einer Anforderung einen Schritt des Auswählens (801) einer ältesten Anforderung der mehreren Anforderungen (303), die einen Zugriff auf einen verfügbaren Speicherplatz (803) anfordert, umfasst.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass der Schritt des Auswählens einer Anforderung die folgenden Schritte umfasst: Feststellen (610), ob unter den mehreren Anforderungen (303) eine Leseanforderung zum Zugreifen auf einen verfügbaren Speicherplatz vorliegt, Auswählen (612) einer Leseanforderung für den Zugriff auf einen verfügbaren Speicherplatz, falls im Feststellungsschritt festgestellt wird, dass eine solche Leseanforderung vorhanden ist (611), und Auswählen (618) einer Nichtleseanforderung für den Zugriff auf einen verfügbaren Speicherplatz, falls im Feststellungsschritt (610) festgestellt wird, dass eine Leseanforderung für den Zugriff auf einen verfügbaren Platz nicht vorhanden ist (613).
  4. Verfahren nach Anspruch 3, gekennzeichnet durch: Feststellen (616), ob die ausgewählte Anforderung eine Schreibanforderung ist, und, nach dem Schritt des Scheduling der ausgewählten Anforderung, sukzessives Scheduling (620) wenigstens einer Schreibanforderung aus den mehreren Anforderungen, falls für die ausgewählte Anforderung festgestellt wird, dass sie eine Schreibanforderung ist.
  5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass wenigstens eine der mehreren Anforderungen (303) einen Rücksprungwert erzeugt, wobei das Verfahren ferner die folgenden Schritte umfasst: Sammeln von Rücksprungwerten von Anforderungen der mehreren Anforderungen, und Umordnen der gesammelten Rücksprungwerte in Übereinstimmung mit einer ursprünglichen Reihenfolge der mehreren Anforderungen.
  6. Verfahren nach einem der Ansprüche 1 bis 5, gekennzeichnet durch einen Schritt des Erfassens, ob die mehreren Anforderungen eine Leseanforderung und eine Schreibanforderung für denselben Speicherplatz enthalten.
  7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass jeder Speicherplatz einer von mehreren Speicherbänken zugeordnet ist und der Schritt des Auswählens einer Anforderung die folgenden Schritte umfasst: Identifizieren eines Speicherplatzes, für den von einer der mehreren Anforderungen (303) ein Zugriff angefordert wird, Identifizieren einer der mehreren Speicherbänke, der der identifizierte Speicherplatz entspricht, und Feststellen, ob die identifizierte Speicherbank verfügbar ist.
  8. Datenverarbeitungssystem (101, 201, 202, 401), mit: einem Anforderungspuffer (703), der mehrere Speicherzugriffsanforderungen (303), die er in einer bestimmten Reihenfolge empfangen hat, hält, und einer Anforderungsumordnungseinheit (214), die eine Speicherzugriffsanforderung zum Zugreifen auf einen Speicherplatz unter den mehreren Speicherzugriffsanforderungen (303) in Übereinstimmung mit einem Auswahlschema auswählt, wobei die ausgewählte Anforderung nicht die nächste in der Reihenfolge ist, gekennzeichnet durch eine Verfügbarkeitsfeststellungseinrichtung, die die durch einen Speicherzugriff bedingte Nichtverfügbarkeit eines Speicherplatzes, für den wenigstens einige der mehreren Speicherzugriffsanforderungen (303) einen Zugriff begehren, oder die Verfügbarkeit des Speicherplatzes für einen Speicherzugriff feststellt, und dadurch, dass die Anforderungsumordnungseinheit (214) so entworfen ist, dass sie einen verfügbaren Speicherplatz in Reaktion auf die Verfügbarkeitsfeststellungseinrichtung auswählt (504).
  9. System nach Anspruch 8, dadurch gekennzeichnet, dass die Anforderungsumordnungseinheit (214) so beschaffen ist, dass sie eine älteste Anforderung der mehreren Anforderungen (303), die einen Zugriff auf einen verfügbaren Speicherplatz (803) anfordert, auswählt (801).
  10. System nach Anspruch 8 oder 9, dadurch gekennzeichnet, dass die Anforderungsumordnungseinheit (214) umfasst: eine Leseanforderungs-Identifizierungseinrichtung, die in Reaktion auf die Verfügbarkeitsfeststellungseinrichtung eine Leseanforderung für den Zugriff auf einen verfügbaren Speicherplatz identifiziert, falls eine solche Leseanforderung vorhanden ist, eine Nichtleseanforderungs-Identifizierungseinrichtung, die in Reaktion auf die Verfügbarkeitsfeststellungseinrichtung eine Nichtleseanforderung für den Zugriff auf einen verfügbaren Speicherplatz identifiziert, falls eine solche Nichtleseanforderung vorhanden ist, und eine Steuereinheit, die die identifizierte Leseanforderung auswählt (612), falls sie vorhanden ist (611), und andernfalls (613) die identifizierte Nichtleseanforderung auswählt (618).
  11. System nach Anspruch 10, dadurch gekennzeichnet, dass: die Steuereinheit so beschaffen ist, dass sie, falls die ausgewählte Anforderung eine Schreibanforderung ist, sukzessive wenigstens eine weitere Nichtleseanforderung für den Zugriff auf einen verfügbaren Speicherplatz aus den mehreren Anforderungen (303) auswählt (620), wobei die wenigstens eine Nichtleseanforderung dadurch einen Burst definiert.
  12. System nach einem der Ansprüche 8 bis 11, dadurch gekennzeichnet, dass wenigstens eine der mehreren Anforderungen (303) einen Rücksprungwert erzeugt, wobei das System ferner umfasst: eine Datenumordnungseinheit, die Rücksprungwerte der mehreren Anforderungen sammelt und die gesammelten Rücksprungwerte entsprechend einer ursprünglichen Reihenfolge der mehreren Anforderungen umordnet.
  13. System nach einem der Ansprüche 8 bis 12, dadurch gekennzeichnet, dass der Anforderungspuffer (703) so beschaffen ist, dass er in die mehreren Anforderungen neue Speicherzugriffsanforderungen (303) dynamisch aufnimmt.
  14. System nach einem der Ansprüche 8 bis 13, gekennzeichnet durch einen Kollisionsdetektor (404), der erfasst, wenn die neue Anforderung einen Zugriff auf denselben Speicherplatz anfordert, für den ein Zugriff durch eine Schreibanforderung in den mehreren Anforderungen (303) angefordert wird.
  15. System nach einem der Ansprüche 8 bis 14, dadurch gekennzeichnet, dass einige der mehreren Anforderungen (303) von Daten begleitet werden, wobei das System ferner umfasst: eine Datenumordnungseinheit (406), die in Reaktion auf die Anforderungsumordnungseinheit (214) beliebige Daten auswählt, die die ausgewählte Speicherzugriffsanforderung begleiten, wobei die ausgewählte Anforderung und begleitende Daten von einer Speichersteuereinheit empfangen werden müssen.
  16. System nach einem der Ansprüche 8 bis 15, dadurch gekennzeichnet, dass: jeder Speicherplatz einer von mehreren Speicherbänken zugeordnet ist, und die Verfügbarkeitsfeststellungseinrichtung mit einer Speichersteuereinheit gekoppelt ist, die angibt, ob eine Speicherbank verfügbar ist.
  17. System nach einem der Ansprüche 8 bis 16, gekennzeichnet durch: wenigstens einen Prozessor (103, 203206, 223230), der Programme ausführt und wenigstens einige der mehreren Speicherzugriffsanforderungen (303) ausgibt, ein Speichersystem, das Speicherplätze enthält, und eine Speichersteuereinheit, die die ausgewählte Speicherzugriffsanforderung für die Ausführung durch das Speichersystem empfängt.
DE69732020T 1996-11-15 1997-11-11 Wiedereinordnung von Speicheranforderungen in einem Datenverarbeitungssystem Expired - Fee Related DE69732020T2 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US3106396P 1996-11-15 1996-11-15
US31063P 1996-11-15
US08/808,849 US6272600B1 (en) 1996-11-15 1997-02-28 Memory request reordering in a data processing system
US808849 2004-03-25

Publications (2)

Publication Number Publication Date
DE69732020D1 DE69732020D1 (de) 2005-01-27
DE69732020T2 true DE69732020T2 (de) 2005-12-15

Family

ID=26706784

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69732020T Expired - Fee Related DE69732020T2 (de) 1996-11-15 1997-11-11 Wiedereinordnung von Speicheranforderungen in einem Datenverarbeitungssystem

Country Status (5)

Country Link
US (2) US6272600B1 (de)
EP (1) EP0843262B1 (de)
JP (1) JP3937365B2 (de)
KR (1) KR100524575B1 (de)
DE (1) DE69732020T2 (de)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6112265A (en) * 1997-04-07 2000-08-29 Intel Corportion System for issuing a command to a memory having a reorder module for priority commands and an arbiter tracking address of recently issued command
US6405267B1 (en) * 1999-01-22 2002-06-11 S3 Graphics Co., Ltd. Command reordering for out of order bus transfer
US6499090B1 (en) * 1999-12-28 2002-12-24 Intel Corporation Prioritized bus request scheduling mechanism for processing devices
JP2001356961A (ja) * 2000-06-13 2001-12-26 Nec Corp 調停装置
US6564304B1 (en) * 2000-09-01 2003-05-13 Ati Technologies Inc. Memory processing system and method for accessing memory including reordering memory requests to reduce mode switching
US6970936B2 (en) * 2000-12-19 2005-11-29 International Business Machines Corporation Data processing system and method of communication that employ a request-and-forget protocol
US6885672B1 (en) * 2000-12-20 2005-04-26 Bellsouth Intellectual Property Corporation System and method for provisioning virtual circuit orders on an asynchronous transfer mode subnetwork
US6782435B2 (en) * 2001-03-26 2004-08-24 Intel Corporation Device for spatially and temporally reordering for data between a processor, memory and peripherals
US6826630B2 (en) * 2001-09-14 2004-11-30 Seagate Technology Llc Prioritizing commands in a data storage device
US6877077B2 (en) * 2001-12-07 2005-04-05 Sun Microsystems, Inc. Memory controller and method using read and write queues and an ordering queue for dispatching read and write memory requests out of order to reduce memory latency
US20030137519A1 (en) * 2002-01-22 2003-07-24 Nazanda Rima M. Method and apparatus to handle multiple requests to different memory agents
US7039774B1 (en) * 2002-02-05 2006-05-02 Juniper Networks, Inc. Memory allocation using a memory address pool
US7149857B2 (en) * 2002-05-14 2006-12-12 Micron Technology, Inc. Out of order DRAM sequencer
US7000060B2 (en) * 2002-09-27 2006-02-14 Hewlett-Packard Development Company, L.P. Method and apparatus for ordering interconnect transactions in a computer system
US6941407B2 (en) * 2002-09-27 2005-09-06 Hewlett-Packard Development Company, L.P. Method and apparatus for ordering interconnect transactions in a computer system
US6993637B1 (en) * 2002-11-07 2006-01-31 Lsi Logic Corporation Unified memory system for multiple processors and method for controlling the same
US7093059B2 (en) * 2002-12-31 2006-08-15 Intel Corporation Read-write switching method for a memory controller
WO2004068349A1 (ja) * 2003-01-27 2004-08-12 Matsushita Electric Industrial Co., Ltd. メモリ制御装置
AU2003900733A0 (en) * 2003-02-19 2003-03-06 Canon Kabushiki Kaisha Dynamic Reordering of Memory Requests
US7136958B2 (en) * 2003-08-28 2006-11-14 Micron Technology, Inc. Multiple processor system and method including multiple memory hub modules
US7644197B1 (en) * 2003-10-15 2010-01-05 Sun Microsystems, Inc. Queue management by multiple processors
US7120743B2 (en) * 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
US7788451B2 (en) 2004-02-05 2010-08-31 Micron Technology, Inc. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US7412574B2 (en) * 2004-02-05 2008-08-12 Micron Technology, Inc. System and method for arbitration of memory responses in a hub-based memory system
US7257683B2 (en) 2004-03-24 2007-08-14 Micron Technology, Inc. Memory arbitration system and method having an arbitration packet protocol
US7447240B2 (en) 2004-03-29 2008-11-04 Micron Technology, Inc. Method and system for synchronizing communications links in a hub-based memory system
US7228362B2 (en) * 2004-03-31 2007-06-05 Intel Corporation Out-of-order servicing of read requests with minimal additional storage
US6980042B2 (en) 2004-04-05 2005-12-27 Micron Technology, Inc. Delay line synchronizer apparatus and method
US7363419B2 (en) * 2004-05-28 2008-04-22 Micron Technology, Inc. Method and system for terminating write commands in a hub-based memory system
US20060069812A1 (en) * 2004-09-30 2006-03-30 Osborne Randy B Method to mitigate performance turnaround in a bidirectional interconnect
US20060161743A1 (en) * 2005-01-18 2006-07-20 Khaled Fekih-Romdhane Intelligent memory array switching logic
US20060171234A1 (en) * 2005-01-18 2006-08-03 Liu Skip S DDR II DRAM data path
US20060171233A1 (en) * 2005-01-18 2006-08-03 Khaled Fekih-Romdhane Near pad ordering logic
GB2440689A (en) * 2005-09-26 2008-02-06 Imagination Tech Ltd Allocation of data storage in a multithreaded data storage system
GB0519597D0 (en) 2005-09-26 2005-11-02 Imagination Tech Ltd Scalable multi-threaded media processing architecture
US8195903B2 (en) * 2006-06-29 2012-06-05 Oracle America, Inc. System and method for metering requests to memory
US8234457B2 (en) * 2006-06-30 2012-07-31 Seagate Technology Llc Dynamic adaptive flushing of cached data
US20080086599A1 (en) * 2006-10-10 2008-04-10 Maron William A Method to retain critical data in a cache in order to increase application performance
US20080086598A1 (en) * 2006-10-10 2008-04-10 Maron William A System and method for establishing cache priority for critical data structures of an application
JP4410270B2 (ja) * 2007-04-17 2010-02-03 株式会社東芝 バス制御装置
ATE511676T1 (de) * 2007-11-19 2011-06-15 Rambus Inc Scheduling auf der basis eines turnaround- ereignisses
JP4569628B2 (ja) * 2007-12-28 2010-10-27 日本電気株式会社 ロードストアキューの制御方法及びその制御システム
US7734854B2 (en) * 2008-01-04 2010-06-08 International Business Machines Corporation Device, system, and method of handling transactions
JP5414209B2 (ja) * 2008-06-30 2014-02-12 キヤノン株式会社 メモリコントローラおよびその制御方法
US8108584B2 (en) * 2008-10-15 2012-01-31 Intel Corporation Use of completer knowledge of memory region ordering requirements to modify transaction attributes
JP4840440B2 (ja) * 2008-12-24 2011-12-21 ソニー株式会社 画像処理装置およびその方法、並びにプログラム
US20110246692A1 (en) * 2010-03-31 2011-10-06 International Business Machines Corporation Implementing Control Using A Single Path In A Multiple Path Interconnect System
US8688880B2 (en) * 2010-06-23 2014-04-01 International Business Machines Corporation Centralized serialization of requests in a multiprocessor system
US9424210B1 (en) * 2010-10-22 2016-08-23 Altera Corporation SDRAM memory organization and efficient access
US20120198124A1 (en) * 2011-01-28 2012-08-02 Apple Inc. Methods and systems for optimizing read operations in a non-volatile memory
US8880819B2 (en) * 2011-12-13 2014-11-04 Micron Technology, Inc. Memory apparatuses, computer systems and methods for ordering memory responses
WO2014141692A1 (ja) 2013-03-13 2014-09-18 パナソニック株式会社 バス制御装置、中継装置およびバスシステム
US9747048B2 (en) * 2014-06-02 2017-08-29 Micron Technology, Inc. Systems and methods for packing data in a scalable memory system protocol
KR102359404B1 (ko) * 2014-11-19 2022-02-15 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US10362109B2 (en) 2016-03-30 2019-07-23 Task Performance Group, Inc. Cloud operating system and method
GB2551351B (en) 2016-06-14 2019-05-08 Imagination Tech Ltd Executing memory requests out of order
US11099778B2 (en) * 2018-08-08 2021-08-24 Micron Technology, Inc. Controller command scheduling in a memory system to increase command bus utilization
CN115022277B (zh) * 2022-06-22 2024-05-14 支付宝(杭州)信息技术有限公司 一种双栈网络下的业务处理方法、装置以及设备

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58222361A (ja) * 1982-06-18 1983-12-24 Fujitsu Ltd デ−タ処理システムにおけるアクセス要求の優先順位決定制御方式
US4590586A (en) * 1984-07-12 1986-05-20 Sperry Corporation Forced clear of a memory time-out to a maintenance exerciser
WO1990000284A1 (en) * 1988-06-30 1990-01-11 Wang Laboratories, Inc. Memory control unit
US5060145A (en) * 1989-09-06 1991-10-22 Unisys Corporation Memory access system for pipelined data paths to and from storage
US5499356A (en) * 1989-12-29 1996-03-12 Cray Research, Inc. Method and apparatus for a multiprocessor resource lockout instruction
US5224214A (en) * 1990-04-12 1993-06-29 Digital Equipment Corp. BuIffet for gathering write requests and resolving read conflicts by matching read and write requests
EP0513519A1 (de) * 1991-05-15 1992-11-19 International Business Machines Corporation Speichersystem für Multiprozessorsysteme
JPH04372030A (ja) * 1991-06-21 1992-12-25 Meidensha Corp プロセッサのメモリアクセス方式
JPH0823843B2 (ja) * 1991-10-11 1996-03-06 インターナショナル・ビジネス・マシーンズ・コーポレイション メモリ・コントローラ、及びデータ処理システム
DE69230129T2 (de) * 1991-12-18 2000-06-15 Sun Microsystems, Inc. Schreibüberlappung mit Verhinderung des Überschreibens
US5412788A (en) * 1992-04-16 1995-05-02 Digital Equipment Corporation Memory bank management and arbitration in multiprocessor computer system
US5440713A (en) * 1992-05-29 1995-08-08 Industrial Technology Research Institute M-way N-port paged-interleaved memory system
EP0575651A1 (de) * 1992-06-24 1993-12-29 International Business Machines Corporation Mehrprozessorsystem
US5485594A (en) * 1992-07-17 1996-01-16 International Business Machines Corporation Apparatus and method using an atomic fetch and add for establishing temporary ownership of a common system resource in a multiprocessor data processing system
US5339442A (en) * 1992-09-30 1994-08-16 Intel Corporation Improved system of resolving conflicting data processing memory access requests
JP3010947B2 (ja) * 1992-11-26 2000-02-21 日本電気株式会社 メモリアクセス制御装置
US5740402A (en) * 1993-12-15 1998-04-14 Silicon Graphics, Inc. Conflict resolution in interleaved memory systems with multiple parallel accesses
US5416739A (en) * 1994-03-17 1995-05-16 Vtech Computers, Ltd. Cache control apparatus and method with pipelined, burst read
US5642494A (en) * 1994-12-21 1997-06-24 Intel Corporation Cache memory with reduced request-blocking
US5596740A (en) * 1995-01-26 1997-01-21 Cyrix Corporation Interleaved memory conflict resolution with accesses of variable bank widths and partial return of non-conflicting banks
US5638534A (en) * 1995-03-31 1997-06-10 Samsung Electronics Co., Ltd. Memory controller which executes read and write commands out of order
US5581729A (en) * 1995-03-31 1996-12-03 Sun Microsystems, Inc. Parallelized coherent read and writeback transaction processing system for use in a packet switched cache coherent multiprocessor system
US5887146A (en) * 1995-08-14 1999-03-23 Data General Corporation Symmetric multiprocessing computer with non-uniform memory access architecture
US5745913A (en) * 1996-08-05 1998-04-28 Exponential Technology, Inc. Multi-processor DRAM controller that prioritizes row-miss requests to stale banks
US6240458B1 (en) * 1998-12-22 2001-05-29 Unisys Corporation System and method for programmably controlling data transfer request rates between data sources and destinations in a data processing system

Also Published As

Publication number Publication date
EP0843262A3 (de) 2002-08-21
KR100524575B1 (ko) 2006-01-27
JPH10228417A (ja) 1998-08-25
EP0843262B1 (de) 2004-12-22
US6272600B1 (en) 2001-08-07
DE69732020D1 (de) 2005-01-27
EP0843262A2 (de) 1998-05-20
US6976135B1 (en) 2005-12-13
KR19980042453A (ko) 1998-08-17
JP3937365B2 (ja) 2007-06-27

Similar Documents

Publication Publication Date Title
DE69732020T2 (de) Wiedereinordnung von Speicheranforderungen in einem Datenverarbeitungssystem
DE69834026T2 (de) Verfahren und vorrichtung zur befehlswiedereinordnung und wiederherstellung von daten zur originalen befehlsreihenfolge
DE19983026B4 (de) Brücke zwischen zwei Bussen mit einem Puffer mit einer einstellbaren Mindestspeicherraummenge für ein Akzeptieren einer Schreibanforderung und Verfahren hierzu
DE10110504B4 (de) Verfahren und Computersystem zur Verwaltung von Threads
DE69225463T2 (de) Verfahren und Gerät zur Verschachtelung von mehrkanaligen DMA-Operationen
DE3782335T2 (de) Speichersteuersystem.
DE69736872T2 (de) Datenverarbeitungssystem
DE69915243T2 (de) Speicherplattenanordnung-Steuerungsvorrichtung
DE69327387T2 (de) An einen paketvermittelten Bus gekoppelte Nachschreibsteuerungsschaltung für eine Cachespeichersteuerungsschaltung
DE69701078T2 (de) Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedener Prozessoren
DE4225228C2 (de) Vorabrufpuffer und einen derartigen Vorabrufpuffer verwendendes Informationsverarbeitungssystem
DE60036465T2 (de) Rechneradapterkarte für die kombinierung von eingang-/ausgangfertigstellungsberichten und verwendung derselben
DE69423874T2 (de) Verbessertes Schema zur geordneten Cachespeicherkohärenz
DE69328804T2 (de) Verteilung von Übertragungsverbindungen über mehrere Dienstzugriffspunkte in einem Kommunikationsnetz
DE3588009T2 (de) Vorrichtung und Verfahren zum Rekonfigurieren eines Speichers in einer Datenverarbeitungsanordnung.
DE3687947T2 (de) Schnittstelle und Verfahren für Buszugriff in einem Rechner.
DE69424272T2 (de) Auf Warteschlangen basierender prädiktiver Durchflusssteuerungsmechanismus
DE60035774T2 (de) Arbitrierungsverfahren und systeme zur zugriffsarbitrierung auf einen speicher einer plattensteuerung
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE69224279T2 (de) Verfahren und Gerät zur Arbitrierung auf Basis der Verfügbarkeit von Betriebsmitteln
DE10062063B4 (de) Verfahren, System, Computerprogramm-Produkt und Speichervorrichtung zur Steuerung einer Warteschlange von Anforderungen unterschiedlicher Priorität
DE10045915A1 (de) Verfahren und System zum Steuern von Datenübertragungen mit physikalischer Trennung der Datenfunktionalität von der Adressen- und Steuerfunktionalität in einem verteilten Multi-Bus-Mehrprozessorsystem
DE19522807A1 (de) Eingabe-/Ausgabe-Steuerungssystem mit mehreren Kanalpfaden zu E/A-Einheiten
DE69114961T2 (de) Vorrichtung für Zusammenschaltungskanäle.
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