-
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 520–560 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 520–560 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.