PatentDe  


Dokumentenidentifikation DE69924039T2 13.04.2006
EP-Veröffentlichungsnummer 0001222552
Titel VERFAHREN UND VORRICHTUNG ZUR ARBITRIERUNG IN EINER EINHEITLICHEN SPEICHERARCHITEKTUR
Anmelder Intel Corp., Santa Clara, Calif., US
Erfinder CLOHSET, J., Steve, Sacramento, US;
DIEP, A., Trung, Folsom, US;
GANDHI, Wishwesh, Folsom, US;
PIAZZA, A., Thomas, Granite Bay, US;
SREENIVAS, Aditya, El Dorado Hills, US;
TRIEU, P., Tuong, Folsom, US
Vertreter Patentanwälte Hauck, Graalfs, Wehnert, Döring, Siemons, Schildberg, 80339 München
DE-Aktenzeichen 69924039
Vertragsstaaten DE, FR, GB
Sprache des Dokument EN
EP-Anmeldetag 21.12.1999
EP-Aktenzeichen 999685381
WO-Anmeldetag 21.12.1999
PCT-Aktenzeichen PCT/US99/30719
WO-Veröffentlichungsnummer 0000041083
WO-Veröffentlichungsdatum 13.07.2000
EP-Offenlegungsdatum 17.07.2002
EP date of grant 02.03.2005
Veröffentlichungstag im Patentblatt 13.04.2006
IPC-Hauptklasse G06F 13/18(2006.01)A, F, I, 20051017, B, H, EP

Beschreibung[de]
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.


Anspruch[de]
  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.
Es folgen 9 Blatt Zeichnungen






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com