[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

DE69924039T2 - Verfahren und vorrichtung zur arbitrierung in einer einheitlichen speicherarchitektur - Google Patents

Verfahren und vorrichtung zur arbitrierung in einer einheitlichen speicherarchitektur Download PDF

Info

Publication number
DE69924039T2
DE69924039T2 DE69924039T DE69924039T DE69924039T2 DE 69924039 T2 DE69924039 T2 DE 69924039T2 DE 69924039 T DE69924039 T DE 69924039T DE 69924039 T DE69924039 T DE 69924039T DE 69924039 T2 DE69924039 T2 DE 69924039T2
Authority
DE
Germany
Prior art keywords
memory
mode
arbitration unit
arbitration
computer system
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 - Lifetime
Application number
DE69924039T
Other languages
English (en)
Other versions
DE69924039D1 (de
Inventor
J. Steve CLOHSET
A. Trung DIEP
Wishwesh Gandhi
A. Thomas PIAZZA
Aditya Sreenivas
P. Tuong TRIEU
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.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Application granted granted Critical
Publication of DE69924039D1 publication Critical patent/DE69924039D1/de
Publication of DE69924039T2 publication Critical patent/DE69924039T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/18Handling requests for interconnection or transfer for access to memory bus based on priority control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)
  • Read Only Memory (AREA)

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft Speichersysteme, und im Besonderen betrifft die vorliegende Erfindung Arbitrierungsrichtlinien in einer Unified-Memory-Architektur (UMA).
  • Stand der Technik
  • Das U.S. Patent US-A-4.937.781 offenbart einen Dual-Port-RAM mit einem Abiter bzw. einer Arbitrierungseinheit, die als Schnittstelle zwischen einem RAM und einem seriellen Anschluss einerseits und einem parallelen Anschluss andererseits fungiert. In einem ersten Modus wird dem seriellen Anschluss bzw. Port bevorrechtigter Zugriff auf den RAM gewährt, und der parallele Anschluss polt den Arbiter, um den RAM-Status zu bestimmen. In einem zweiten Modus wird dem ersten Anschluss, der einen Zugriffsversuch unternimmt, Priorität gewährt, und wobei daraufhin der verbleibende Anschluss den Arbiter vor einem Zugriffsversuch polt.
  • Das U.S. Patent US-A-5.524.235 offenbart eine Arbiterschaltung zur Steuerung des Zugriffs auf einen Hauptspeicher durch drei Agenten. Die offenbarte Schaltung verwendet ein System, wobei jedem der drei Agenten unterschiedliche Prioritäten zugeordnet werden.
  • Kennzeichnende Computersysteme werden unter Verwendung von mindestens zwei Speicherteilsystemen implementiert, welche den Zugriff auf ein Speichersystem durch anfordernde Agenten unterstützen. Die beiden Teilsysteme sind für gewöhnlich ein Hauptspeicher-Teilsystem und ein lokales Grafikspeicher-Teilsystem. Das Hauptspeicher-Teilsystem weist eine Systemspeicher-Steuereinheit auf, während das lokale Grafikspeicher-Teilsystem eine Grafikspeicher-Steuereinheit aufweist. Zwei Speicherteilsysteme sind für gewöhnlich erforderlich, um die Verkehrsanforderungen aller Anforderungen für einen Zugriff auf den Systemspeicher innerhalb einer zulässigen Latenzzeit zu unterstützen. Die duale Speicherarchitektur sieht somit für typische Computersysteme einen Leistungsvorteil vor. Nichtsdestotrotz erhöhen die zusätzlichen Kosten des Einschlusses eines zweiten Speicherteilsystems die Fertigungskosten typischer Computersysteme.
  • Computersysteme mit einer Unified-Memory-Architektur kombinieren die Funktionalität des Hauptspeicher-Teilsystems und des lokalen Grafikspeicher-Teilsystems. Computersysteme mit einer UMA sind natürlich kostengünstiger in der Fertigung, und zwar aufgrund des Fehlens einer zweiten Speichersteuereinheit (d.h. der Grafikspeicher-Steuereinheit). Allerdings überladen die zusätzlichen Grafikanforderungen für den Zugriff auf den Systemspeicher für gewöhnlich die gemeinsame Systemspeicher-Steuereinheit. Typische UMA-Computersysteme leiden somit unter einer signifikanten Leistungsreduzierung durch die Überlastung durch Verkehrsanforderungen an der Systemspeicher-Steuereinheit. Folglich wird eine Arbitrierungsvorgehensweise zum Ausgleich zwischen der Nachfrage nach Systemspeicher sowie zur Maximierung der verfügbaren Bandbreite in einem UMA-Computersystem benötigt. Die vorliegende Erfindung ist zudem bestrebt, ein System vorzusehen, in dem eine flexiblere Arbitrierungsmethode erreicht werden kann.
  • Zusammenfassung der Erfindung
  • Vorgesehen ist gemäß einem ersten Aspekt der vorliegenden Erfindung ein Computersystem gemäß dem gegenständlichen Anspruch 1.
  • Vorgesehen ist gemäß einem zweiten Aspekt der vorliegenden Erfindung ein Verfahren gemäß dem gegenständlichen Anspruch 13.
  • Kurze Beschreibung der Zeichnungen
  • Die vorliegende Erfindung wird aus der folgenden genauen Beschreibung und aus den beigefügten Zeichnungen verschiedener Ausführungsbeispiele der Erfindung umfassender verständlich. Die Zeichnungen schränken die vorliegende Erfindung jedoch nicht auf die speziellen Ausführungsbeispiele ein, vielmehr dienen sie ausschließlich den Zwecken der Erläuterung und des Verständnisses. Es zeigen:
  • 1 ein Blockdiagramm eines Ausführungsbeispiels eines Computerprogramms;
  • 2 ein Blockdiagramm eines Ausführungsbeispiels eines Chipset;
  • 3 ein Blockdiagramm eines Ausführungsbeispiels einer Arbitrierungseinheit;
  • 4a ein Zustandsdiagramm eines Ausführungsbeispieles eines Arbiters;
  • 4b ein Zustandsdiagramm eines Ausführungsbeispiels eines Arbiters;
  • 5 ein Flussdiagramm eines Ausführungsbeispiels des Betriebs eines Arbiters;
  • 6 ein Flussdiagramm eines Ausführungsbeispiels des Betriebs eines Arbiters;
  • 7 ein Flussdiagramm eines Ausführungsbeispiels des Betriebs eines Arbiters; und
  • 8 ein Blockdiagramm eines Ausführungsbeispiels einer Systembusschnittstelle.
  • Genaue Beschreibung der vorliegenden Erfindung
  • Die Abbildung aus 1 zeigt ein Blockdiagramm eines Ausführungsbeispiels eins Computersystems 100. Das Computersystem 100 weist eine Zentraleinheit (Prozessor) 105 auf, die mit einem Prozessorbus 110 gekoppelt ist. In einem Ausführungsbeispiel handelt es sich bei dem Prozessor 105 um einen Prozessor der Pentium® Prozessorfamilie, welche die Prozessorfamilie Pentium® II und Mobile Pentium® sowie Pentium® II einschließt, die von der Intel Corporation, Santa Clara, Kalifornien, USA, erhältlich sind. Alternativ können auch andere Prozessoren verwendet werden. Der Prozessor 105 weist einen 1st-Level-Cache-Speicher auf (L1-Cache-Speicher) (in der Abbildung aus 1 nicht dargestellt).
  • In einem Ausführungsbeispiel ist der Prozessor 105 ferner über einen dedizierten Cache-Bus 102 mit einem Cache-Speicher 107 gekoppelt, bei dem es sich um einen 2nd-Level-Cache-Speicher (L2-Cache-Speicher) handelt. Die L1- und L2-Cache-Speicher können auch in einem einzigen Baustein integriert sein. Alternativ kann der Cache-Speicher 107 über einen gemeinsam genutzten Bus mit dem Prozessor 105 gekoppelt sein.
  • Der Chipset 120 ist ferner mit dem Prozessorbus 110 gekoppelt. In einem Ausführungsbeispiel arbeitet der Chipset 120 gemäß einer Unified-Memory-Architektur (UMA). Der Hauptspeicher 113 ist über den Chipset 120 mit dem Prozessorbus 110 gekoppelt. Der Hauptspeicher 113 und der Cache-Speicher 107 speichern Befehlsfolgen, die durch den Prozessor 105 ausgeführt werden. In einem Ausführungsbeispiel weist der Hauptspeicher 113 einen dynamischen Direktzugriffsspeicher (DRAM) auf; wobei der Hauptspeicher 113 auch unter Verwendung anderer Speicherarten implementiert werden kann. Die durch den Prozessor 105 ausgeführten Befehlsfolgen können aus dem Hauptspeicher 113, dem Cache-Speicher 107 oder einer beliebigen anderen Speichervorrichtung abgerufen werden. Zusätzliche Vorrichtungen bzw. Bausteine können ebenfalls mit dem Prozessorbus 110 gekoppelt sein, wie etwa mehrere Prozessoren und/oder mehrere Hauptspeicherbausteine. Das Computersystem 100 wird als ein einzelner Prozessor beschrieben, wobei jedoch auch mehrere Prozessoren mit einem Prozessorbus 110 gekoppelt werden können.
  • Der Videobaustein 125 ist ebenfalls mit dem Chipset 120 gekoppelt. In einem Ausführungsbeispiel weist der Videobaustein einen Videgmonitor auf, wie etwa eine Kathodenstrahlröhre (CRT) oder eine Flüssigkristallanzeige (LCD) sowie die erforderliche unterstützende Schaltkreisanordnung.
  • Der Prozessorbus 110 ist durch den Chipset 120 mit dem Systembus 130 gekoppelt. In einem Ausführungsbeispiel handelt es sich bei dem Systembus 1340 um einen Bus gemäß dem von der Intel Corporation, Santa Clara, Kalifornien, USA, entwickelten Standard Peripheral Component Interconnect (PCI), wobei jedoch auch andere Busstandards verwendet werden können. Mehrere Bausteine, wie etwa ein Audiobaustein 127, können mit dem Systembus 130 gekoppelt werden.
  • Die Busbrücke 140 koppelt den Systembus 130 mit dem sekundären Bus 150. In einem Ausführungsbeispiel handelt es sich bei dem sekundären Bus 150 um einen Bus gemäß dem von International Business Machines, Armonk, New York, USA, entwickelten Standard Industry Standard Architecture (ISA), wobei jedoch auch andere Standards verwendet werden können, wie zum Beispiel die Extended Industry Standard Architecture (EISA), entwickelt von Compaq Computer, et al. Mehrere Vorrichtungen bzw. Bausteine, wie etwa eine Festplatte 153 und ein Plattenlaufwerk 154, können mit dem sekundären Bus 150 gekoppelt werden. Ferner können andere Vorrichtungen wie etwa Cursorsteuervorrichtungen (in 1 nicht abgebildet) mit dem sekundären Bus 150 gekoppelt werden.
  • Die Abbildung aus 2 zeigt ein Blockdiagramm eines Ausführungsbeispiels des Chipset 120. Der Chipset 120 weist eine mit dem Prozessorbus 110 gekoppelte Hostschnittstelle 210 auf und empfängt Anforderungen für einen Zugriff auf den Hauptspeicher 113 von dem Prozessor 105. Der Schreibpuffer 212 ist mit der Hostschnittstelle 210 gekoppelt und puffert von der Hostschnittstelle 210 empfangene Anforderungen zur Ausführung von Schreibtransaktionen in Verbindung mit dem Hauptspeicher 113. Der Lesepuffer 214 ist ebenfalls mit der Hostschnittstelle 210 gekoppelt und wird zum Puffern bzw.
  • Zwischenspeichern von Anforderungen verwendet, die von der Hostschnittstelle 210 empfangen werden, um Lesetransaktionen in Verbindung mit dem Hauptspeicher 113 auszuführen.
  • Der Chipset 120 weist ferner eine Grafiksteuereinheit 220 auf. Die Grafiksteuereinheit 220 bearbeitet Videodatenanforderungen für einen Zugriff auf den Hauptspeicher 113. Die Auffrischeinheit 230 ist ebenfalls in dem Chipset 120 enthalten. Die Auffrischeinheit 230 löst Speicherauffrischungen aus, die elektrische Zellen in dem Hauptspeicher 113 aufladen, um die Datenintegrität zu erhalten. Zusätzlich weist der Chipset 120 eine mit dem Systembus 130 gekoppelte Systembusschnittstelle 240 auf. Die Systembusschnittstelle 240 empfängt Anforderungen von Ein-Ausgabe-Vorrichtungen (E/A-Vorrichtungen) (wie z.B. die Audiovorrichtung 127), die an dem Systembus 130 angeordnet sind, und zwar für einen Zugriff auf den Hauptspeicher 113.
  • Der Chipset 120 weist ferner eine Speichersteuereinheit 250 auf. Die Speichersteuereinheit 250 ist mit dem Schreibpuffer 212, dem Lesepuffer 214, der Grafiksteuereinheit 220, der Auffrischeinheit 230 und der Systembusschnittstelle 240 gekoppelt. Die Speichersteuereinheit 250 greift für Speichertransaktionen auf den Hauptspeicher 113 auf der Basis von Befehlen zu, die von dem Prozessor 105 empfangen werden, und einer oder mehreren peripheren Vorrichtungen, die mit dem Chipset 120 gekoppelt sind, wie etwa die Videovorrichtung 125. Die Speichersteuereinheit 250 kann Daten aus dem Hauptspeicher 113 lesen oder Daten in diesen schreiben.
  • Die Speichersteuereinheit 200 weist die Arbitrierungseinheit 255 auf. Die Arbitrierungseinheit 255 koordiniert den Zugriff durch verschiedene Agenten auf den Hauptspeicher 113, wie etwa durch den Schreibpuffer 212, den Lesepuffer 214, die Auffrischeinheit 230, etc. Die Abbildung aus 3 zeigt ein Blockdiagramm eines Ausführungsbeispiels der Arbitrierungseinheit 255. Die Arbitrierungseinheit 255 weist eine Zeitscheibensteuerung für einen Betrieb in einem Zeitscheibenmodus auf, eine Kulanzzeitsteuerung 320 und eine Seitenvergleichseinheit 330 für einen Betrieb in einem bedingten Kulanzgewährungsmodus, eine Wasserzeicheneinheit 340 für einen Betrieb in einem Wasserzeichenmodus und einen Arbiter 350. Der Arbiter 350 empfängt Zugriffsanforderungen von Agenten, bestimmt die relative Priorität der Zugriffsanforderungen und gewährt daraufhin einem der Agenten abhängig von den relativen Prioritäten eine Zeit.
  • Wie dies bereits vorstehend im Text erwähnt worden ist, können die Arbitrierungseinheit 255 und der Arbiter 350 gemäß verschiedenen Betriebsmodi arbeiten. Gemäß einem Ausführungsbeispiel kann der Arbiter 350 den Zugriff auf den Hauptspeicher abhängig von:
    • 1. einem Prioritätsbezeichnungsmodus oder
    • 2. einem Zeitscheibenmodus
    koordinieren.
  • Im Betrieb in dem Prioritätsbezeichnungsmodus oder in dem Zeitscheibenmodus kann der Arbiter 350 darüber hinaus auch gemäß:
    • 3. einem bedingten Kulanzgewährungsmodus und
    • 4. einem Wasserzeichenmodus
    arbeiten.
  • Ferner sind die vorstehenden Arbitrierungs-Betriebsmodi derart programmierbar, dass ein Benutzer des Systems 100 einen Modus abhängig von der gewünschten Leistung auswählen kann. Die Arbitrierungseinheit 255 empfängt ein Signal MODE, das den Modus für den Betrieb anzeigt. Die Moduskonfiguration kann in einem mit dem sekundären Bus 150 gekoppelten BIOS-Speicher (BIOS als englische Abkürzung von Basic Input Output System) (nicht abgebildet) gespeichert und zu dem Chipset 120 übertragen werden, nachdem das System 100 über einen Konfigurationsmechanismus gestartet oder neu gestartet worden ist, wie etwa durch einen Schreibvorgang der PCI-Konfiguration.
  • I. Arbitrierungsmodi
  • A. Prioritätsbezeichnungsmodus
  • Im Betrieb in dem Prioritätsbezeichnungsmodus sind Anforderungen auf den Hauptspeicher 113 wie folgt kategorisiert, wobei die Nummer (1.) die höchste Priorität aufweist:
    • 1. Hohe Priorität;
    • 2. Host- und System-E/A;
    • 3. Grafiken mit normaler Priorität; und
    • 4. Opportunistik.
  • Die Kategorie „Hohe Priorität" weist Anforderungen auf, die von dem Hauptspeicher 113 innerhalb einer vorbestimmten Latenzzeit bearbeitet werden müssen, um die Echtzeitanforderung zu erfüllen. Zum Beispiel kann eine mit der Grafiksteuereinheit 220 gekoppelte Videovorrichtung 125 flimmern, wenn die Bearbeitung durch den Hauptspeicher 113 erheblich verzögert erfolgt. Die Kategorie „Hohe Priorität" umfasst ferner Anforderungen, die bearbeitet werden müssen, um einen Systemausfall zu verhindern. Zum Beispiel erfolgt eine Datenkorrumpierung an dem Hauptspeicher 113, wenn von der Auffrischeinheit 230 empfangene Speicherauffrischzyklen ohne ausgeführt zu werden eine übermäßige Verzögerung aufweisen.
  • Die Kategorie „Host- und System-E/A" weist von dem Prozessor (110) empfangene Anforderungen (z.B. Lesetransaktionen von dem Lesepuffer 214) und Anforderungen von System-E/A-Vorrichtungen an dem Systembus 130 auf, die über die Systembusschnittstelle 240 empfangen werden. Anforderungen von Vorrichtungen an dem Systembus 130 sind als isochron und asynchron klassifiziert. Isochrone Anforderungen (z.B. Anforderungen von einer Videokamera, Netzwerkverkehr, etc.) sind von der Latenzzeit abhängig und müssen innerhalb eines zulässigen Zeitraums von dem Hauptspeicher 113 bearbeitet werden. Für asynchrone Anforderungen (z.B. Anforderungen von der Festplatte 153, dem Plattenlaufwerk 154, etc.) gelten keine zeitlichen Einschränkungen.
  • Die Abbildung aus 8 zeigt ein Blockdiagramm eines Ausführungsbeispiels der Busschnittstelle 240. Die Systembusschnittselle weist eine isochrone Warteschlange 810 und eine asynchrone Warteschlange 815 auf, die mit dem Systembus 130 gekoppelt sind. Die isochrone Warteschlange 810 speichert isochrone Anforderungen, um Zugriff auf den Hauptspeicher 113 zu erhalten, während die asynchrone Warteschlange 815 asynchrone Anforderungen speichert. Die Systembusschnittstelle 240 weist ferner einen mit der isochronen Warteschlange 810 und der asynchronen Warteschlange 815 gekoppelten Vorabiter 820 auf. Der Vorabiter 820 wählt die System-E/A-Anforderungen aus (isochron oder asynchron), die für die Arbitrierung um den Zugriff auf den Hauptspeicher 113 zulässig sind. Isochrone Anforderungen erhalten aufgrund der kritischen zeitlichen Latenzen eine höhere Priorität.
  • Die Kategorie „Grafiken mit normaler Priorität" weist nicht in Echtzeit vorgesehene Grafikanforderungen von der Grafiksteuereinheit 220 für den Zugriff auf den Hauptspeicher 113 auf. Die Kategorie „Opportunistik" weist Anforderungen mit entspannteren Latenzanforderungen auf, die für einen längeren Zeitraum zurückgestellt werden können, ohne dass dies eine Verschlechterung der Leistung des Systems 100 verursacht. Zum Beispiel werden vorgesehene Schreibtransaktionen von dem Schreibpuffer 212 und Auffrischungen des Hauptspeichers in ihren entsprechenden Puffern in Warteschlangen platziert und für eine Ausführung zu einem späteren Zeitpunkt zurückgestellt.
  • Die Abbildung aus 4a zeigt ein Zustandsdiagramm des Arbiters 350 im Betrieb in dem Prioritätsbezeichnungsmodus. Hiermit wird festgestellt, dass zur Vermeidung einer unnötigen Verwirrung absichtlich auf zahlreiche Übertragungsverläufe verzichtet worden ist. Der Arbiter 350 weist die folgenden Zustände auf: hohe Priorität (HP) 410; Host- und System-E/A (HIO) 420; Grafiken mit normaler Priorität (NPG) 430; und Opportunistik (OPP) 440. Wenn sich der Arbiter 350 in einem Zustand befindet und eine oder mehrere Anforderungen für einen Zugriff auf den Hauptspeicher 113 empfängt, wird eine Bestimmung in Bezug auf die Priorität zwischen der bzw. den Anforderung(en) und dem aktuellen Zustand vorgenommen. Wenn der Arbiter 350 zum Beispiel in dem Zustand HIO 420 arbeitet und eine Anforderung für Grafiken mit normaler Priorität von der Grafiksteuereinheit 220 empfängt, um normalen Zugriff auf den Hauptspeiche 113 zu erhalten, so verbleibt der Arbiter 350 in dem Zustand HIO 420. Der Arbiter 350 wechselt in den Zustand NPG 430, nachdem der Hauptspeicher 113 die Bearbeitung von HIO 420 abgeschlossen hat, wobei angenommen wird, dass in der Folge kein Agent mit höherer Priorität einen Zugriff anfordert. Wenn hingegen eine Anforderung mit hoher Priorität empfangen wird, wechselt der Arbiter 350 direkt aus dem Zustand HIO 420 in den Zustand HP 410.
  • Wie dies bereits vorstehend beschrieben worden ist, sind Anforderungen mit hoher Priorität aufgrund ihrer Echtzeitanforderungen am höchsten, und wobei Opportunistik-Anforderungen am niedrigsten sind, da sie bei nur geringen Auswirkungen auf die Leistung verzögert werden können. Host- und System-E/A-Anforderungen wird eine höhere Priorität zugewiesen als Grafikanforderungen mit normaler Priorität, da der Prozessor 105 in Bezug auf die Datenlatenz empfindlich ist. Verzögerungen bei der Verarbeitung durch den Prozessor 105 können zum Beispiel dramatische Leistungsrückgänge bewirken.
  • Darüber hinaus greift der Prozessor 105 für gewöhnlich auf allgemein verträgliche Art und Weise auf den Hauptspeicher 113 zu. Der Prozessor 105 wechselt für gewöhnlich zwischen einem Bündel bzw. einem Block von Datenanforderungen und einem Zeitraum der Inaktivität. Die meisten Prozessoranforderungen (d.h. fünfundneunzig Prozent (95%) oder mehr) werden in dem Cache-Speicher 107 bearbeitet. Somit ist es nur selten erforderlich, dass der Prozessor 105 zur Erfassung von Daten auf den Hauptspeicher 113 zugreift. Der Zeitraum der Inaktivität zwischen Prozessordatenanforderungen an dem Hauptspeicher 113 ermöglicht eine ausreichende Bandbreite für Grafikanforderungen mit normaler Priorität.
  • In manchen Fällen jedoch, wie etwa bei der Verwendung von Anwendungen mit hohem Grafikanteil oder einer kleinen Größe des Cache-Speichers 107, können Host- und System-E/A-Anforderungen dazu führen, dass die Grafikanforderungen mit normaler Priorität verhungern. In diesen Fällen kann es erforderlich sein zwischen den Host- und System-E/A-Anforderungen und den Grafikanforderungen mit normaler Priorität eine übereinstimmende Prioritätsanordnung vorzusehen. Ferner führt eine andauernde Unterbrechung von Grafikanforderungen mit normaler Priorität durch Host- und System-E/A-Anforderungen zu einer reduzierten Effizienz des Betriebs des Hauptspeichers 113. Jedes Mal, wenn Anforderungen mit normaler Priorität unterbrochen werden, muss zum Beispiel die zugegriffene Seite des Hauptspeichers 113 geschlossen werden, dass es nicht wahrscheinlich ist, dass Host- und System-E/A-Anforderungen auf die gleiche Seite zugreifen. In der Folge muss eine neue Speicherseite geöffnet werden, um die Host- und System-E/A-Anforderungen zu bearbeiten. Nachdem die Host- und System-E/A-Anforderungen den Zugriff auf den Hauptspeicher 113 beendet haben und den Grafikanforderungen mit normaler Priorität wieder Zugriff gewährt worden ist, muss die Seite, auf welche die Host- und System-E/A-Anforderungen zugegriffen haben, geschlossen und die Seite für Grafikanforderungen mit normaler Priorität wieder geöffnet werden. Der Zeitscheibenmodus unterstützt die Abschwächung dieser sorgenvollen Aspekte, indem eine übereinstimmende Prioritätsanordnung zwischen Host- und System-E/A-Anforderungen und Grafikanforderungen mit normaler Priorität vorgesehen wird.
  • B. Zeitscheibenmodus
  • Nach dem Empfang konfigurierter Informationen über das Signal MODE, das den Zeitscheibenbetriebsmodus anzeigt, arbeitet der Arbiter 350 gemäß einer Zeitscheiben-Arbitrierungstechnik. Unter Verwendung der Zeitscheibentechnik sind Anforderungen für einen Zugriff auf den Hauptspeicher 113 wie folgt kategorisiert, wobei die Nummer (1.) die höchste Priorität aufweist:
    • 1. Hohe Priorität;
    • 2. Host- und System-E/A und Grafiken mit normaler Priorität;
    • 3. Opportunistik.
  • Die Zeitscheibentechnik gewährleistet, dass ein Verhungern von Grafikanforderungen mit normaler Priorität nicht wie gemäß der Prioritätsbezeichnungsmethode auftritt. Host- und System-E/A-Zugriffe auf den Hauptspeicher 113 werden durch eine Scheibensteuerung 315 geregelt, wie dies in der Abbildung aus 3 dargestellt ist. Die Scheibensteuerung 315 beschränkt den Zeitraum, innerhalb dem Host- und System-E/A-Anforderungen durch den Hauptspeicher 113 bearbeitet werden können. Nach Ablauf der Scheibensteuerung 315 wird Grafikanforderungen mit normaler Priorität der Zugriff auf den Hauptspeicher 113 gewährt, wobei angenommen wird, dass keine Anforderungen mit hoher Priorität vorliegen. Nachdem Anforderungen mit normaler Priorität der Zugriff gewährt worden ist, wird den Host- und System-E/A-Anforderungen kein Zugriff auf den Hauptspeicher 113 gewährt, bis die Scheibensteuerung 315 abgelaufen ist. Gemäß einem Ausführungsbeispiel kann die Dauer der Scheibensteuerung 315 durch einen Benutzer des Systems 100 programmiert werden.
  • Die Abbildung aus 4b zeigt ein Zustandsdiagramm des Arbiters 350 im Betrieb in dem Zeitscheibenmodus. Der Arbiter 350 arbeitet unter den meisten Bedingungen auf die gleiche Art und Weise wie in dem Prioritätsmodus. Wenn sich der Arbiter 350 zum Beispiel in einem Zustand befindet (z.B. OPP 440) und eine Anforderung für einen Zugriff auf den Hauptspeicher 113 von einem Agenten mit höherer Priorität empfängt, wechselt der Arbiter 350 aus dem Zustand der niedrigeren Priorität in den Zustand der höheren Priorität (z.B. 410) und gewährt der Anforderung mit höherer Priorität die Steuerung des Hauptspeichers 113. Wenn sich der Arbiter 350 hingegen in einem Zustand befindet (z.B. NPG 430) und eine Anforderung von einem Agenten mit identischer Priorität empfängt (z.B. der Host- und System-E/A-Gruppe), so verbleibt der Arbiter 350 in dessen aktuellen Zustand der Bearbeitung der NPG-Anforderung, bis die Scheibensteuerung 315 abgelaufen ist. Nach Ablauf der Scheibensteuerung 315 wechselt der Arbiter 350 in den Zustand mit identischer bzw. übereinstimmender Priorität, wobei angenommen wird, dass keine Anforderung von einem Agenten mit höherer Priorität gegeben ist.
  • Die Abbildung aus 5 zeigt ein Flussdiagramm des Betriebs des Arbiters 350, während der Arbiter in dem Zeitscheibenmodus arbeitet. Während sich der Arbiter 350 entweder in dem Zustand NPG oder HIO befindet, wird eine Anforderung von einem anderen Agenten für einen Zugriff auf den Hauptspeicher 113 in dem Verarbeitungsblock 510 empfangen. In dem Verarbeitungsblock 520 wird bestimmt, ob die Anforderung von einem Agenten mit einer höheren Priorität stammt als der Zustand, in dem sich der Arbiter 350 aktuell befindet. Wenn die Anforderung von einem Agenten mit höherer Priorität stammt, wechselt der Arbiter 350 aus dessen aktuellen Zustand in den Zustand mit höherer Priorität, wie dies in dem Verarbeitungsblock 530 dargestellt ist. Demgemäß wird dem Zustand mit höherer Priorität Zugriff auf den Hauptspeicher 113 gewährt. In der Folge kehrt die Steuerung zu dem Verarbeitungsblock 510 zurück, in dem eine weitere Anforderung empfangen wird.
  • Wenn festgestellt wird, dass die Anforderung von keinem Agenten mit höherer Priorität stammt, so wird bestimmt, ob die empfangene Anforderung von einem Agenten mit übereinstimmender Prioritätshöhe stammt, wie dies in dem Verfahrensblock 540 dargestellt ist. Wenn die Anforderung nicht von einem Agenten mit übereinstimmender Priorität stammt, so stammte die Anforderung von einem Agenten mit niedrigerer Priorität, und der Arbiter 350 verbleibt in dessen aktuellen Zustand zur Fortsetzung der Bearbeitung des aktuellen Agenten, zumindest bis eine Anforderung mit höherer Anforderung empfangen worden ist, wie dies in dem Verfahrensblock 550 dargestellt ist. Wenn die empfangene Anforderung von einem Agenten mit identischer bzw. übereinstimmender Priorität stammt, wird in dem Verfahrensblock 560 bestimmt, ob die Scheibensteuerung 315 abgelaufen ist.
  • Wenn bestimmt wird, dass die Scheibensteuerung 315 nicht abgelaufen ist, verbleibt der Arbiter 350 in dessen aktuellen Zustand der Bearbeitung des aktuell steuernden Agenten. Wenn die Scheibensteuerung 315 jedoch abgelaufen ist, wechselt der Arbiter 350 in dem Verfahrensblock 570 in den Zustand mit äquivalenter Priorität. In dem Verfahrensblock 580 wird die Scheibensteuerung 315 zurückgesetzt, um für den neu gewährten Agenten einen neuen Zählwert vorzusehen. Die Steuerung kehrt folglich zu dem Verfahrensblock 510 zurück, in dem eine Anforderung eines anderen Agenten empfangen wird. Der Durchschnittsfachmann erkennt, dass die Verfahrensblöcke 520560 in einer Vielzahl verschiedener Folgen verarbeitet werden können. Zum Beispiel kann die in dem Verfahrensblock 540 offenbarte Verarbeitung vor der Verarbeitung in dem Verfahrensblock 520 ausgeführt werden. Alternativ können die Verfahrensblöcke 520560 parallel ausgeführt werden.
  • Wenn der Arbiter 350 gemäß einem Ausführungsbeispiel aus einem der Zustände HIO 420 oder NPG 430 vor Beendigung der Bearbeitung zu einem Agenten mit höherer Priorität wechselt, kehrt der Arbiter 350 zu seinem vorherigen Zustand nach der Bearbeitung des Agenten mit höherer Priorität zurück, wenn die Scheibensteuerung 315 noch nicht abgelaufen war. In einem solchen Fall wird die Scheibensteuerung nach der Rückkehr in den Zustand zurückgesetzt. Nach der Rückkehr in einen der äquivalenten Zustände zählt die Scheibensteuerung 315 in einem anderen Ausführungsbeispiel jedoch weiter von dem Zeitpunkt des Entstehens nach dem Wechsel zu dem Agenten mit höherer Priorität.
  • Ein zusätzlicher Vorteil der Zeitscheibentechnik ist es, dass durch ein Unterlassen der Unterbrechung von Grafikanforderungen mit normaler Priorität zur Bearbeitung von Host- und System-E/A-Anforderungen, die Gruppierung von Transaktionen ermöglicht wird, die natürlich in einem bestimmten Bereich des Speicheradressraums platziert sind. Immer dann, wenn zum Beispiel aufeinander folgende Transaktionen auf die gleiche Seite des Hauptspeichers 113 zugreifen (d.h. Seitentreffer, so wird die Zugriffszeit reduziert und kann so gering wie möglich gehalten werden. Immer dann, wenn aufeinander folgende Transaktionen hingegen auf eine andere Seite des Hauptspeichers 113 zugreifen (d.h. ein Seitenfehler), so wird die Zugriffszeit maximiert, da jede Transaktion zusätzliche Zeit für das Vorabladen einer anderen Seite erfordert, bevor der Datenzugriff erfolgt. Folglich erhöht die Zeitscheibentechnik die Wahrscheinlichkeit für einen Seitentreffer, da Anforderungen von der Host- und System-E/A-Gruppe sowie von der Grafikgruppe mit normaler Priorität dazu neigen, auf den gleichen des Hauptspeichers 113 angeordnet zu sein.
  • C. Bedingte Kulanzgewährung
  • Die Technik der bedingten Kulanzgewährung erweitert das Konzept der Maximierung der Wahrscheinlichkeit für einen Seitentreffer des Hauptspeichers 113. Bei dieser Arbitrierungsmethode verbleibt der Arbiter 350 in seinem aktuellen Zustand, und zwar sowohl nach dem Empfang einer Anforderung von dem Agenten, der aktuell den Hauptspeicher 113 steuert, als auch den Empfang von einem Agenten mit höherer Priorität. Nichtsdestotrotz ist die Gewährung des Zugriffs auf den Hauptspeicher 113 zurück an den steuernden Agenten davon abhängig, dass die folgende Anforderung einen Seitentreffer darstellt. Die in der Abbildung aus 3 dargestellte Seitenvergleichseinheit 300 bestimmt, ob es sich bei einer folgenden Anforderung um einen Seitentreffer handelt. Solange es sich bei folgenden Anforderungen durch den steuernden Agenten um Seitentreffer handelt, erhält der Agent die Steuerung über den Hauptspeicher 113 aufrecht. Sobald die Seitenvergleichseinheit 330 jedoch bestimmt, dass eine folgende Anforderung durch einen steuernden Agenten zu einem Seitenfehler führen würde, so wechselt der Arbiter 350 in den Zustand höherer Priorität.
  • Darüber hinaus ist der Zeitraum, über den ein Agent die Steuerung des Hauptspeichers 113 aufrechterhalten kann, durch die Kulanzzeitsteuerung 320 beschränkt. Die Kulanzzeitsteuerung 320 wird dadurch aktiviert, dass ein Agent zuerst die Steuerung des Hauptspeichers 113 in einem Kulanzzustand wiedererlangt. Nach Ablauf der Kulanzzeitsteuerung 320 muss der Agent die Kontrolle über bzw. die Steuerung des Hauptspeichers 113 hingegen aufgeben, unabhängig davon, ob die Seitenvergleichseinheit 330 bestimmt, dass es sich bei einer folgenden Anforderung um einen Seitentreffer handelt. Die Kulanzzeitsteuerung 320 verhindert das Auferlegen einer übermäßigen Wartezeit für andere Agenten, die einen Zugriff auf den Hauptspeicher 113 anfordern. Die Kulanzzeitsteuerung 320 kann programmierbar sein, so dass ein Benutzer einen optimalen Wert auswählen kann. Ein optimaler Wert ist eine zeitliche Begrenzung, die anderen anfordernden Agenten keine ernsthaften Latenzzeiten auferlegt. Die bedingte Gewährungstechnik kann darüber hinaus entweder in dem Zeitscheibenmodus oder in dem Prioritätsbezeichnungsmodus arbeiten.
  • Die Abbildung aus 6 zeigt ein Flussdiagramm des Arbiters 350 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. In dem Verfahrensblock 610 wird eine Anforderung mit hoher Priorität empfangen sowie eine Anforderung von dem Agenten, der aktuell den Hauptspeicher 113 steuert. In dem Verfahrensblock 620 bestimmt die Seitenvergleichseinheit 330, ob es sich bei der folgenden Anforderung von dem steuernden Agenten um einen Seitentreffer handelt. Wenn die Seitenvergleichseinheit 330 bestimmt, dass es sich bei der folgenden Anforderung um einen Seitenfehler handelt, wird der Anforderung mit höherer Priorität der Zugriff auf den Hauptspeicher 113 gewährt. Wenn die Seitenvergleichseinheit 330 hingegen bestimmt, dass es sich bei der folgenden Anforderung um einen Seitentreffer handelt, so wird in dem Verfahrensblock 640 bestimmt, ob die Kulanzzeitsteuerung 320 abgelaufen ist.
  • Wenn die Kulanzzeitsteuerung 320 abgelaufen ist, kehrt die Steuerung zu dem Verfahrensblock 630 zurück, wobei der Zugriff auf den Hauptspeicher 113 dem Zustand mit höherer Priorität gewährt wird. Wenn die Kulanzzeitsteuerung 320 nicht abgelaufen ist, erhält der steuernde Agent in dem Verfahrensblock 650 die Steuerung des Hauptspeichers 113 aufrecht. In der Folge kehrt die Steuerung zu dem Verfahrensblock 610 zurück, in dem eine weitere Anforderung empfangen wird. Durch das Gruppieren vieler Seitentreffer kann auf eine unnötige Vorladezeit des Hauptspeichers 113 verzichtet werden. Folglich wird die verfügbare Bandbreite des Hauptspeichers 113 maximiert.
  • D. Wasserzeichenebenen
  • Die Wasserzeichentechnik nutzt die lockeren Latenzanforderungen für opportunistische Anforderungen. Zum Beispiel werden vorgesehene Schreibanforderungen von dem Schreibpuffer 212 und Auffrischanforderungen für den Hauptspeicher 113 von der Auffrischeinheit 230 in Speicherpuffern in der Warteschlange verarbeitet, und wobei die Ausführung zurückgestellt wird, bis sich der Arbiter 350 im Ruhezustand befindet. In Zeiten einer starken Arbeitsauslastung des Hauptspeichers 113 reduziert sich jedoch die Möglichkeit, dass opportunistische Agenten Zugriff auf den Hauptspeicher 113 erlangen. Wenn eine geringe Bearbeitung durch den Hauptspeicher 113 gegeben ist, können die Speicherwarteschlangen in jedem entsprechenden Agenten die maximale Kapazität erreichen und sich nachteilig auf die Leistung auswirken.
  • Die Wasserzeichentechnik arbeitet entweder in dem Zeitscheibenmodus oder in dem Prioritätsbezeichnungsmodus und erfordert es, dass der Arbiter 350 in Bezug auf Ebenen (oder Wasserzeichen) anspricht, die Warteschlangen opportunistischer Agenten speichern. Wenn eine Speicherwarteschlange nahezu leer ist, ist die Wasserzeichenebene niedrig und die opportunistische Gruppe empfängt eine niedrige Priorität, wie dies vorstehend beschrieben worden ist. Wenn eine Speicherwarteschlange allerdings nahezu voll ist, ist die Wasserzeichenebene hoch und die opportunistische Gruppe empfängt eine hohe Priorität. Unter Verwendung der vorstehend beschriebenen Prioritätseinordnungen gilt zum Beispiel für den Fall, dass der Schreibpuffer 212 oder die Speicherwarteschlange in der Auffrischeinheit 230 nahezu voll ist, dass die Rangeinstufung der opportunistischen Gruppe auf die höchste Priorität erhöht wird. Die Priorität der opportunistischen Gruppe kann zusätzlich allmählich im Zuge des Füllens der Speicherwarteschlangen angehoben werden. Wenn die Warteschlangen zum Beispiel halb voll sind, kann die Priorität auf eine Einstufung auf den zweiten oder dritten Rang angehoben werden.
  • Die Abbildung aus 7 zeigt ein Flussdiagramm des Betriebs des Arbiters 350 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. In dem Verfahrensblock 710 erfolgt eine Anforderung eines opportunistischen Agenten für einen Zugriff auf den Hauptspeicher 113. In dem Verfahrensblock 720 prüft der Arbiter 350 die Wasserzeichenwerte und bestimmt, ob die opportunistische Gruppe eine höhere Priorität als der aktuelle Zustand oder andere empfangene Anforderungen aufweist. Wenn bestimmt wird, dass die Wasserzeichenwerte verhältnismäßig niedrig sind, so verbleibt der Arbiter 350 in dessen aktuellen Zustand oder wechselt in dem Verfahrensblock 730 zu einem anderen anfordernden Agenten mit einer höheren Priorität. Wenn bestimmt wird, dass die Wasserzeichenwerte verhältnismäßig hoch sind, wechselt der Arbiter 350 in dem Verfahrensblock 740 in den opportunistischen Zustand und der Zugriff auf den Hauptspeicher 113 wird dem anfordernden opportunistischen Agenten gewährt.
  • Die vorliegende Erfindung wurde vorstehend zwar in Bezug auf eine Unified-Memory-Architektur beschrieben, wobei der Durchschnittsfachmann jedoch erkennt, dass die vorliegende Erfindung auch unter Verwendung anderer Speichersystemkonfigurationen implementiert werden kann. Ferner können die gemäß der vorliegenden Erfindung beschriebenen Arbitrierungstechniken auch in anderen elektronischen Systemen implementiert werden, wie etwa in Netzwerken, Druckern, usw.
  • Beschrieben wurde somit eine Arbitrierungsmethodik zur Steigerung der verfügbaren Bandbreite in einem UMA-Computersystem.

Claims (13)

  1. Computersystem mit einem Speicher und einer Speichersteuereinheit (250), die mit dem Speicher gekoppelt ist, wobei die Speichersteuereinheit eine Arbitrierungseinheit (255) aufweist, die in zwei Arbitrierungsmodi (520, 540) arbeitet, und mit einem ersten und einem zweiten Baustein (105, 125), die mit der Arbitrierungseinheit gekoppelt sind, wobei dem ersten Baustein in dem ersten Modus eine Klassifizierung mit höherer Priorität zugeordnet ist als dem zweiten Baustein, und wobei den ersten und zweiten Bausteinen in dem zweiten Modus eine Klassifizierung mit übereinstimmender Priorität für den Zugriff auf den Speicher zugeordnet ist, dadurch gekennzeichnet, dass: die Arbitrierungseinheit (255) so angeordnet ist, um den Speicherzugriff von dem zweiten Baustein über ein vorbestimmtes Zeitintervall (560) zurückzuhalten, während der erste Baustein bei einem Betrieb gemäß dem zweiten Modus die Steuerung über den Speicher besitzt, und wobei die Arbitrierungseinheit den Speicherzugriff von dem ersten Baustein über das genannte vorbestimmte Zeitintervall (560) zurückhält, während der zweite Baustein bei einem Betrieb in dem zweiten Modus immer die Steuerung über den Speicher aufweist.
  2. Computersystem nach Anspruch 1, wobei dieses System ferner einen dritten Baustein (230) umfasst, wobei dem dritten Baustein immer dann eine Klassifizierung mit einer niedrigeren Priorität zugeordnet ist als den ersten und zweiten Bausteinen, wenn die Arbitrierungseinheit gemäß dem ersten oder zweiten Arbitrierungsmodus arbeitet.
  3. Computersystem nach Anspruch 2, wobei die Arbitrierungseinheit gemäß einem dritten Modus arbeitet, wobei die Arbitrierungseinheit in dem dritten Modus den Speicherzugriff von den ersten und zweiten Bausteinen über ein vorbestimmtes Zeitintervall zurückhält, wenn eine folgende Anforderung durch den dritten Baustein für einen Speicherzugriff zu einem Seitentreffer führt.
  4. Computersystem nach Anspruch 3, wobei die Arbitrierungseinheit Zugriff auf den ersten und den zweiten Baustein gewährt, wenn die folgende Anforderung durch den dritten Baustein für einen Zugriff auf den Speicher zu einem Seitenfehler führt.
  5. Computersystem nach Anspruch 2, wobei der dritte Baustein einen Anforderungspuffer zum Speichern von Anforderungen für einen Speicherzugriff aufweist.
  6. Computersystem nach Anspruch 5, wobei die Arbitrierungseinheit gemäß einem dritten Modus arbeitet, wobei der Arbiter in dem dritten Modus dem dritten Baustein eine Klassifizierung mit einer höheren Priorität zuordnet als den ersten und zweiten Bausteinen, wenn der Anforderungspuffer voll ist, und wobei dem dritten Baustein eine Klassifizierung mit einer niedrigeren Priorität als den ersten und zweiten Bausteinen zugeordnet wird, wenn der Anforderungspuffer leer ist.
  7. Computersystem nach Anspruch 2, wobei dieses ferner folgendes umfasst: eine Hostschnittstelle (210), die mit der Arbitrierungseinheit gekoppelt ist; eine Systembusschnittstelle (240), die mit der Arbitrierungseinheit gekoppelt ist; eine Grafiksteuereinheit (220), die mit der Arbitrierungseinheit gekoppelt ist; und eine Auffrischeinheit (230), die mit der Arbitrierungseinheit gekoppelt ist.
  8. Computersystem nach Anspruch 7, wobei es sich bei dem ersten Baustein um einen Prozessor (105) handelt, der über die Hostschnittstelle (210) mit der Arbitrierungseinheit gekoppelt ist, wobei es sich bei dem zweiten Baustein um einen Grafikbaustein (125) handelt, der über die Grafiksteuereinheit (210) mit der Arbitrierungseinheit gekoppelt ist, und wobei es sich bei dem dritten Baustein um die Auffrischeinheit (230) handelt.
  9. Computersystem nach Anspruch 8, wobei der erste Baustein über die Systembusschnittstelle mit der Arbitrierungseinheit gekoppelt ist.
  10. Computersystem nach Anspruch 9, wobei die Systembusschnittstelle ferner folgendes aufweist: einen Vorabiter; einen isochronen Puffer (810), der mit dem Vorabiter (820) gekoppelt ist; und einen asynchronen Puffer (815), der mit dem Vorabiter gekoppelt ist; wobei der Vorabiter in dem isochronen Puffer gespeicherten Anforderungen eine Klassifizierung mit höherer Priorität zuordnet als in dem asynchronen Puffer gespeicherten Anforderungen.
  11. Computersystem nach Anspruch 1, wobei die Arbitrierungseinheit in der Lage ist ein Signal zu empfangen, das anzeigt, ob die Arbitrierungseinheit gemäß dem ersten Modus oder gemäß dem zweiten Modus arbeitet.
  12. Computersystem nach Anspruch 1, wobei die Speichersteuereinheit (250) gemäß einer Unified-Memory-Architektur arbeitet.
  13. Verfahren für den Zugriff auf einen Speicher mit einer Unified-Memory-Architektur-Computersystem mit einem ersten Arbitrierungsmodus (520) und einem zweiten Arbitrierungsmodus (540), und mit einem ersten und zweiten Agenten (105, 125), wobei dem ersten Agent in einem Betriebsmodus Priorität gegenüber dem zweiten Agent gewährt wird, und wobei den Agenten in dem zweiten Betriebsmodus die gleiche Priorität gewährt wird, dadurch gekennzeichnet, dass: Zugriff auf den Speicher durch den ersten Agenten in dem zweiten Betriebsmodus gewährt wird, wenn der erste Agent Zugriff auf den Speicher nur nach Ablauf eines vorbestimmten Intervalls (560) aufweist, und wobei Zugriff auf den Speicher durch den zweiten Agenten in dem zweiten Modus gewährt wird, während der erste Agent Zugriff auf den Speicher nur nach Ablauf des vorbestimmten Intervalls (560) aufweist.
DE69924039T 1999-01-08 1999-12-21 Verfahren und vorrichtung zur arbitrierung in einer einheitlichen speicherarchitektur Expired - Lifetime DE69924039T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US226965 1999-01-08
US09/226,965 US6330646B1 (en) 1999-01-08 1999-01-08 Arbitration mechanism for a computer system having a unified memory architecture
PCT/US1999/030719 WO2000041083A2 (en) 1999-01-08 1999-12-21 Method and apparatus for arbitration in a unified memory architecture

Publications (2)

Publication Number Publication Date
DE69924039D1 DE69924039D1 (de) 2005-04-07
DE69924039T2 true DE69924039T2 (de) 2006-04-13

Family

ID=22851205

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69924039T Expired - Lifetime DE69924039T2 (de) 1999-01-08 1999-12-21 Verfahren und vorrichtung zur arbitrierung in einer einheitlichen speicherarchitektur

Country Status (10)

Country Link
US (1) US6330646B1 (de)
EP (1) EP1222552B1 (de)
JP (1) JP4774152B2 (de)
KR (1) KR100422781B1 (de)
CN (1) CN1294502C (de)
AU (1) AU2593400A (de)
DE (1) DE69924039T2 (de)
HK (1) HK1044838B (de)
TW (1) TW468108B (de)
WO (1) WO2000041083A2 (de)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6504549B1 (en) * 1999-05-19 2003-01-07 Ati International Srl Apparatus to arbitrate among clients requesting memory access in a video system and method thereof
US6542159B1 (en) * 1999-05-19 2003-04-01 Ati International S.R.L. Apparatus to control memory accesses in a video system and method thereof
US6469703B1 (en) * 1999-07-02 2002-10-22 Ati International Srl System of accessing data in a graphics system and method thereof
US6629220B1 (en) * 1999-08-20 2003-09-30 Intel Corporation Method and apparatus for dynamic arbitration between a first queue and a second queue based on a high priority transaction type
US6950893B2 (en) 2001-03-22 2005-09-27 I-Bus Corporation Hybrid switching architecture
EP1267272B1 (de) * 2001-06-11 2011-08-17 Zoran Microelectronics Ltd. Ein Spezialspeichergerät
US6775727B2 (en) * 2001-06-23 2004-08-10 Freescale Semiconductor, Inc. System and method for controlling bus arbitration during cache memory burst cycles
US6715042B1 (en) * 2001-10-04 2004-03-30 Cirrus Logic, Inc. Systems and methods for multiport memory access in a multimaster environment
JP2003114825A (ja) * 2001-10-04 2003-04-18 Hitachi Ltd メモリ制御方法、その制御方法を用いたメモリ制御回路、及びそのメモリ制御回路を搭載する集積回路
US20040059879A1 (en) * 2002-09-23 2004-03-25 Rogers Paul L. Access priority protocol for computer system
KR100518576B1 (ko) * 2003-05-24 2005-10-04 삼성전자주식회사 버스 중재기 및 버스 중재방법
US7206866B2 (en) * 2003-08-20 2007-04-17 Microsoft Corporation Continuous media priority aware storage scheduler
US7013357B2 (en) * 2003-09-12 2006-03-14 Freescale Semiconductor, Inc. Arbiter having programmable arbitration points for undefined length burst accesses and method
JP4625620B2 (ja) * 2003-10-10 2011-02-02 株式会社日立製作所 フェイルセイフ制御装置
JP2005190092A (ja) * 2003-12-25 2005-07-14 Matsushita Electric Ind Co Ltd メモリアクセスコントロール回路
EP1811394B1 (de) * 2004-10-28 2012-01-18 Magima Digital Information Co., Ltd. Arbitrierer und arbitrierungsverfahren dafür
JP4817725B2 (ja) * 2005-06-20 2011-11-16 キヤノン株式会社 データ処理装置及び方法
US7640381B1 (en) * 2005-10-07 2009-12-29 Ji Zhang Input/output decoupling system method having a cache for exchanging data between non-volatile storage and plurality of clients having asynchronous transfers
KR100839494B1 (ko) * 2006-02-28 2008-06-19 삼성전자주식회사 버스 중재 시스템 및 버스 중재 방법
JP2008198127A (ja) * 2007-02-15 2008-08-28 Toshiba Corp プロセッサシステム
US8112566B2 (en) * 2007-06-06 2012-02-07 Intel Corporation Methods and apparatuses for processing I/O requests of data storage devices
US8051232B2 (en) * 2007-06-25 2011-11-01 Intel Corporation Data storage device performance optimization methods and apparatuses
US7908440B2 (en) * 2007-08-09 2011-03-15 Intel Corporation Simultaneous personal sensing and data storage
JP2010165175A (ja) 2009-01-15 2010-07-29 Internatl Business Mach Corp <Ibm> バスの使用権を制御する装置および方法
CN101840382B (zh) * 2009-03-19 2013-03-27 北京普源精电科技有限公司 数据存储系统和数据存取方法
FR2975893B1 (fr) 2011-05-30 2013-07-12 3Dceram Implant renforce en ceramique biocompatible et son procede de fabrication
US9411774B2 (en) * 2013-04-23 2016-08-09 Arm Limited Memory access control
JP6146128B2 (ja) * 2013-05-20 2017-06-14 ヤマハ株式会社 データ処理装置
US9971711B2 (en) * 2014-12-25 2018-05-15 Intel Corporation Tightly-coupled distributed uncore coherent fabric
US10198789B2 (en) * 2016-12-13 2019-02-05 Advanced Micro Devices, Inc. Out-of-order cache returns
CN110515871B (zh) * 2019-08-09 2021-05-25 苏州浪潮智能科技有限公司 一种中断方法、装置及fpga和存储介质
KR20210081699A (ko) 2019-12-24 2021-07-02 서강대학교산학협력단 자연어 피처를 결합한 주식 매도 및 매수 시그널 판별기
JP7363684B2 (ja) * 2020-06-30 2023-10-18 トヨタ自動車株式会社 リソース管理装置及びリソース管理方法
CN113495858B (zh) * 2021-06-08 2024-09-10 青岛本原微电子有限公司 一种同步总线访存的仲裁系统及仲裁方法

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56149629A (en) * 1980-04-21 1981-11-19 Nec Corp Information processor
US4901230A (en) * 1983-04-25 1990-02-13 Cray Research, Inc. Computer vector multiprocessing control with multiple access memory and priority conflict resolution method
JPS60246471A (ja) * 1984-05-22 1985-12-06 Yokogawa Hokushin Electric Corp メモリ制御装置
US4858107A (en) * 1985-03-11 1989-08-15 General Electric Company Computer device display system using conditionally asynchronous memory accessing by video display controller
US4716523A (en) * 1985-06-14 1987-12-29 International Business Machines Corporation Multiple port integrated DMA and interrupt controller and arbitrator
JPH0786853B2 (ja) * 1988-02-29 1995-09-20 株式会社ピーエフユー バス転送制御方式
US5247649A (en) * 1988-05-06 1993-09-21 Hitachi, Ltd. Multi-processor system having a multi-port cache memory
US4937781A (en) * 1988-05-13 1990-06-26 Dallas Semiconductor Corporation Dual port ram with arbitration status register
JPH02144652A (ja) * 1988-11-25 1990-06-04 Fujitsu Ltd バス調停方式
JPH0528103A (ja) * 1990-05-22 1993-02-05 Mitsubishi Electric Corp バス多重方式
JPH0810445B2 (ja) * 1990-09-21 1996-01-31 インターナショナル・ビジネス・マシーンズ・コーポレイション 動的バス調停方法及び装置
US5603061A (en) * 1991-07-23 1997-02-11 Ncr Corporation Method for prioritizing memory access requests using a selected priority code
JPH05120206A (ja) * 1991-10-25 1993-05-18 Nec Corp Dmaコントローラ
US5629950A (en) * 1992-04-24 1997-05-13 Digital Equipment Corporation Fault management scheme for a cache memory
JPH06110828A (ja) * 1992-09-28 1994-04-22 Toshiba Corp メモリ制御装置
WO1995015528A1 (en) * 1993-11-30 1995-06-08 Vlsi Technology, Inc. A reallocatable memory subsystem enabling transparent transfer of memory function during upgrade
JPH07200386A (ja) * 1993-12-28 1995-08-04 Toshiba Corp 共有メモリのアクセス制御装置および画像形成装置
US5611053A (en) * 1994-01-21 1997-03-11 Advanced Micro Devices, Inc. Apparatus and method for integrating bus master ownership of local bus load by plural data transceivers
US5528766A (en) * 1994-03-24 1996-06-18 Hewlett-Packard Company Multiple arbitration scheme
JPH07281942A (ja) * 1994-04-14 1995-10-27 Asahi Kasei Micro Syst Kk 共有資源のアービトレーション方法
JPH07319756A (ja) * 1994-05-25 1995-12-08 Casio Electron Mfg Co Ltd メモリアクセス制御装置
US5524235A (en) * 1994-10-14 1996-06-04 Compaq Computer Corporation System for arbitrating access to memory with dynamic priority assignment
US5809539A (en) * 1995-04-27 1998-09-15 Hitachi, Ltd. Processor system having address allocation and address lock capability adapted for a memory comprised of synchronous DRAMs
US5664152A (en) * 1995-06-06 1997-09-02 Hewlett-Packard Company Multiple segmenting of main memory to streamline data paths in a computing system
JPH08339346A (ja) * 1995-06-09 1996-12-24 Toshiba Corp バスアービタ
CN1095125C (zh) * 1995-09-28 2002-11-27 联华电子股份有限公司 共用系统存储器的可扩充式仲裁装置
US5937205A (en) * 1995-12-06 1999-08-10 International Business Machines Corporation Dynamic queue prioritization by modifying priority value based on queue's level and serving less than a maximum number of requests per queue
JPH1091577A (ja) * 1996-09-17 1998-04-10 Toshiba Corp バスアクセス権制御方式
US6070215A (en) * 1998-03-13 2000-05-30 Compaq Computer Corporation Computer system with improved transition to low power operation

Also Published As

Publication number Publication date
JP2002539509A (ja) 2002-11-19
AU2593400A (en) 2000-07-24
KR20010089791A (ko) 2001-10-08
CN1615474A (zh) 2005-05-11
WO2000041083A2 (en) 2000-07-13
TW468108B (en) 2001-12-11
DE69924039D1 (de) 2005-04-07
CN1294502C (zh) 2007-01-10
KR100422781B1 (ko) 2004-03-12
EP1222552B1 (de) 2005-03-02
HK1044838A1 (en) 2002-11-01
JP4774152B2 (ja) 2011-09-14
HK1044838B (zh) 2005-06-10
US6330646B1 (en) 2001-12-11
WO2000041083A3 (en) 2002-05-16
EP1222552A2 (de) 2002-07-17

Similar Documents

Publication Publication Date Title
DE69924039T2 (de) Verfahren und vorrichtung zur arbitrierung in einer einheitlichen speicherarchitektur
DE19983026B4 (de) Brücke zwischen zwei Bussen mit einem Puffer mit einer einstellbaren Mindestspeicherraummenge für ein Akzeptieren einer Schreibanforderung und Verfahren hierzu
DE69027515T2 (de) Vorrichtung für Prioritätsarbitrierungskonditionierung bei gepufferter Direktspeicheradressierung
DE112006003358B4 (de) Verteilung von Speicherzugriffsanforderungen
DE69722117T2 (de) Einheitliche Speicherarchitektur mit dynamischer Grafikspeicherzuordnung
DE69725687T2 (de) Transaktionsübertragung zwischen Datenbussen in einem Rechnersystem
DE19983737B3 (de) System zum Neuordnen von Befehlen, die von einer Speichersteuerung zu Speichervorrichtungen ausgegeben werden, unter Verhinderung von Kollision
DE60036465T2 (de) Rechneradapterkarte für die kombinierung von eingang-/ausgangfertigstellungsberichten und verwendung derselben
DE602004012106T2 (de) Multikanal-DMA mit gemeinsamem FIFO-Puffer
DE60037174T2 (de) Puffersystem für externen speicherzugriff
DE3586352T2 (de) Busarbiter fuer datenverarbeitungssystem mit einem ein-/ausgabekanal.
DE69732020T2 (de) Wiedereinordnung von Speicheranforderungen in einem Datenverarbeitungssystem
DE69533680T2 (de) Verfahren und Vorrichtung zur dynamischen Bestimmung und Zuteilung von Zugriffsguoten für ein gemeinsames Betriebsmittel
US20010010066A1 (en) Computer system with adaptive memory arbitration scheme
DE102005006176A1 (de) Transaktionsverarbeitungs-Systeme und -Verfahren, die einen Nicht-Platten-Dauerspeicher verwenden
DE10348326A1 (de) Permanentspeichervorrichtung, die an eine Kommunikationsverbindung angeschlossen ist
US6393505B1 (en) Methods and apparatus for data bus arbitration
DE112012004456B4 (de) Verfahren und Vorrichtung zum Planen von Arbeitsspeicher-Auffrischungsoperationen unter Einbeziehung von Engergiezuständen
DE10392278T5 (de) Verfahren und Vorrichtung zur Speicherzugangssteuerung
EP0651536A2 (de) Verfahren zur Wiederherstellung einer vorgegebenen Reihenfolge für ATM-Zellen
DE19714681B4 (de) Speichersteuergerät
DE19882975B4 (de) Zugreifen auf eine Nachrichtenaustauscheinheit von einem sekundären Bus aus
DE112005000219T5 (de) Verfahren und Vorrichtung zum Verwalten von Speicherzugriffsanforderungen
DE3911721C2 (de)
DE19733527A1 (de) Kommunikationssystem mit einer DMA-Einheit

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: HEYER, V., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 806