-
Die
Erfindung betrifft im wesentlichen Mikroprozessorsysteme, und weiter
insbesondere Mikroprozessorsysteme, die Steuerregister nutzen, um Systemparameter
zu setzen und Systemstatusinformation zu bieten.
-
Hintergrund
-
Mikroprozessorsysteme
können
verschiedene Formen von Steuerregistern nutzen, um ihren Betrieb
zu unterstützen.
Eine Form der Steuerregister kann beschrieben werden, um Systemparameter
zu setzen und das System anderweitig zu konfigurieren. Verschiedene
Kombinationen von Bits in einem solchen Register können Betriebsgrenzen
setzen, wie zum Beispiel die Tiefe der spekulativen Durchführung, oder
der Größe eines
Cache, oder können
optionale Funktionsschaltkreise an- oder abschalten, wie zum Beispiel
Verzweigungsvorhersagen und "Prefetch"-Einheiten, oder
können
Interrupts für
bestimmte Ereignisse setzen oder löschen. Andere Formen von Steuerregistern
erlauben es, ausgelesen zu werden, um Systemstatusinformation zu
erhalten. Solche Steuerregister können auch Statusregister genannt
werden. Die Statusregister können
Information liefern über
die Systemintegrität,
den Inhalt von Programmregistern, die für Fehlerzustände vorgesehen
sind, die Betriebstemperatur und andere Statusinformationen. Viele
Steuerregister können
sowohl beschrieben werden und ausgelesen werden. Beispiele von Steuerregistern
können
die MSRs (model specific registers) sein, die in den Pentium®-Klasse kompatiblen
Mikroprozessoren implementiert sind.
-
Steuerregister
können
im wesentlichen durch spezifische Befehle von Steuerregisterzugriff oder
durch spezifische Formen von allgemeinen Nutzerbefehlen, wie zum
Beispiel input/output-(I/O-) Nutzerbefehlen bestehen. Die spezifischen
Steuerregi sterbefehle, die für
die Steuerung genutzt werden können,
können
innerhalb eines Prozessors angeordnet werden, und können darauf
beschränkt
sein, unter hohen Levels von Softwareprivilegien ausgeführt werden.
-
Zusätzlich können verschiedene
Steuerregister in Abschnitten der Systemverschaltung genutzt werden,
die, architekturbedingt, separat von den Prozessorfunktionseinheiten
vorgesehen sind. Zum Beispiel können
solche Abschnitte verschiedene Chip-Set-Funktionen umfassen oder können verschiedene
Intra-System-Bus-Brücken
umfassen. Oft sind diese Abschnitte der Systemschaltkreise nicht über zweckeingerichtete
Schaltkreise ansprechbar, sondern nur durch vorbestimmte Datenwege,
inklusive von Systembussen. Konventionelle Steuerregister, die außerhalb
des Prozessors angeordnet sind, können über allgemeine I/O-Nutzerbefehle
angesprochen werden, die unter niedrigen Levels der Softwareprivilegien
ausgeführt
werden.
-
Kurze Beschreibung der
Zeichnung:
-
Die
vorliegende Erfindung ist beispielsweise durch die Zeichnungen beschrieben,
aber nicht durch diese begrenzt, die in den angefügten figürlichen Darstellungen
vorhanden sind und in den gleiche Bezugszeichen ähnliche Elemente bezeichnen,
und in denen:
-
1 ein
Diagramm des Zugriff auf Steuerregister ist, nach einem Ausführungsbeispiel
der vorliegenden Erfindung,
-
2 ein
Diagramm von Speicheradreßraum
nach einem Ausführungsbeispiel
der vorliegenden Erfindung ist
-
3 ein
Diagramm zum Zugriff auf Steuerregister nach einem anderen Ausführungsbeispiel der
vorliegenden Erfindung,
-
5A ein
schematisches System eines Systems mit Prozessoren ist, die dazu
in der Lage sind, auf Steuerregister zuzugreifen, nach einem Ausführungsbeispiel
der vorliegenden Erfindung.
-
5B ist
ein schematisches Diagramm eines Systems mit Prozessoren, die dazu
in der Lage sind, Steuerregister anzusprechen nach einem anderen
Ausführungsbeispiel
der vorliegenden Erfindung.
-
Detaillierte
Beschreibung
-
Die
folgende Beschreibung umfaßt
Techniken für
Steuerregister, die eine erhöhte
Zugriffssicherung aufweisen und die in Systemkomponenten durch die
Architektur vorgesehen werden, die separat von den Prozessorfunktionsblöcken sind.
In der folgenden Beschreibung werden eine Vielzahl von spezifischen
Details, wie zum Beispiel Logik-Implementationen, Softwaremodulanordnung,
Bus- und andere Interface-Signaltechniken beschrieben, und Details
des Betriebs werden dargelegt, um ein besseres Verständnis der
vorliegenden Erfindung zu schaffen. Es sollte jedoch klar sein,
dass die Erfindung von einem Fachmann auch ohne solche spezifischen
Details ausgeführt
werden kann. In anderen Beispielen werden Steuerstrukturen, Gatterniveauschaltkreise und
volle Softwarebefehlssequenzen nicht dargestellt, um die Erfindung
nicht zu verunklaren. Der Durchschnittsfachmann wird die angefügten Beschreibungen
dazu nutzen können,
die geeignete Funktionalität
ohne übermäßiges Ausprobieren
zu implementieren. In anderen Ausführungsbespielen ist die Erfindung
in der Umgebung eines Pentium® kompatiblen Prozessorsystems
(wie zum Beispiel solchen, die durch die Intel® Corporation
produziert werden) und den damit zusammenhängenden System und Prozessorfirmware
dargestellt. Jedoch kann die Erfindung ohne diese Prozessorsysteme,
wie zum Beispiel einem Itanium® Prozessor Familien kompatiblen
Prozessor (solchen wie von der Intel® Corporation
hergestellt werden), einem X-Scale®-Familien
kompatiblen Prozessor oder einer großen Varianz von verschiedenen
Vielzweckprozessoren aus irgendeinem der Prozessorarchitekturen
anderer Verkäufer
oder Designer durchgeführt
werden. Zusätzlich
können
einige Ausführungsbeispiele,
auf spezielle Zwecke ausgerichtete Prozessoren, umfassen oder darstellen,
wie zum Beispiel Grafik, Netzwerk, Bild, Kommunikation oder andere
Bekannte oder auch andere Weise zugängliche Typen von Prozessoren
in Zusammenhang mit ihrer Firmware.
-
Bezugnehmend
auf 1 wird ein Diagramm zum Zugriff auf Steuerregister
dargestellt nach einem Ausführungsbeispiel
der vorliegenden Offenbarung. Die 1 umfaßt einen
Prozessor 110 und ein Chipset 130, die durch einen
Bus 150 verbunden sind. In anderen Ausführungsbeispielen werden zusätzliche
Prozessoren und Chipsets an den Bus 150 angeschlossen.
Zusätzlich
können
die Chipset-Funktionen, wie zum Beispiel Schaltkreise zum Zugriff
auf Speicher und input/output (I/O) Geräten zwischen andere Module
verteilt werden. Der Prozessor 110 und der Chipset 130 können als
separate Halbleitermodule inplementiert werden, oder können als
einzelnes Modul zusammen integriert werden. In einem Ausführungsbeispiel
kann der Prozessor 110 ein Pentium®-Klasse
kompatibler Prozessor sein und der Bus 150 kann ein Pentium® Vorderseitenbus (FSB-front
side bus) sein.
-
Der
Prozessor 110 kann Nutzerbefehle von einem Befehlssatz
unter der Steuerung von Mikrocode umfassen. Ein Mikrocode read-only-memory (ROM) 112 kann
dazu vorgesehen werden, einen Basismikrocode-Satz zu speichern.
Zusätzlich
wird ein beschreibares Microcode RAM (random access memory) für Mikrocode 114 vorhanden
sein, um einen anderen Mikrocode-Satz zu empfangen- In einem Ausführungsbeispiel
ist dieser Mikrocode-Satz von einem Mikrocode-Patch-Bild 144 im
Systemspeicher 142 oder von einem Mikrocode-Patch-Bild 148 in
einem Basis-Input/Output-System
(RIOS) programmierbaren ROM (PROM) 146 geladen. In anderen Ausführungsbeispielen
können
andere Formen der Systemfirmware als RIOS genutzt werden, wie zum Beispiel
EFI (extensible firmware interface) oder andere Formen der Speicherung
verschieden von PROM können
benutzt werden, wie zum Beispiel Flash-Speicher.
-
Das
System der 1 kann verschiedene Steuerregister
nutzen. Diese Steuerregister können durch
den Prozessor 110 ausgelesen werden, um Systemstatusinformationen
zu ergeben, oder sie können
an den Prozessor 110 geschrieben werden, um bestimmte Systembetriebsparameter
zu setzen. In einigen Situationen werden Steuerregister, die ausgelesen
werden können "Statusregister" genannt, aber für den Zwecke
der vorliegenden Offenbarung wird der Begriff "Steuerregister" allgemein auf entweder lesbare oder
beschreibbare Steuerregister angewandt oder auf lesbare oder beschreibbare Steuerregister
oder auf lesbare und beschreibbare Steuerregister.
-
Konventionelle
Steuerregister können
in einem Ausführungsbeispiel
durch den Betrieb von Nutzerbefehlen RDMSR (read machine specific
register) und WRMSR (write machine specific register) ausgelesen
werden oder beschrieben werden. Diese Nutzerbefehle können auf
das Zugreifen auf die Steuerregister, beherbergt im separaten Adressraum
begrenzt sein, auf die nicht durch andere Instruktionen zugegriffen werden
kann. In einem Ausführungsbeispiel
können
herkömmliche
Nutzer-I/O-Befehle
dazu genutzt werden, herkömmliche
Steuerregister anzusprechen, die im I/O-Adressraum vorhanden sind.
In einem Ausführungsbeispiel
kann ein solcher I/O-Adressraum
auf 16-bit Adressen begrenzt werden.
-
In
einem Ausführungsbeispiel
können
Steuerregister einer neuen Ausführungsform
in der vorliegenden Offenbarung vorhanden sein. Solche neuen Steuerregister
können
die Steuerregister 1–N (136–138)
sein, die innerhalb des Chipsets 130 angeordnet sind und
Steuerregister A und B (120, 122), die innerhalb
des Prozessors 110 angeordnet sind. In jedem Fall können die
neuen Steuerregister eine Adresse außerhalb des I/O-Adressraums
besetzen. In einem Ausführungsbeispiel
haben die Steuerregister 1–N
(136–138)
und die Steuerregister A und B (120, 122) Adressen
zwischen dem oberen Ende des Pentium®-Klasse
kompatiblen Prozessor's I/O-Adressraums
und dem oberen Ende des physikalischen Adressraums. In verschiedenen
sich ändernden
Ausführungsbeispielen
kann das obere Ende des physikalischen Adressraums bei (232–1)
oder (264–1) sein. In anderen Ausführungsbeispielen
können
andere Grenzen existieren, die den I/O-Adressraum von dem totalen
physischen Speicherplatz trennen.
-
Da
die Adressen des Steuerregisters 1–N (136–138)
außerhalb
des Benutzer I/O-Adressraums des
Prozessors 110 sind, können
sie nicht über
konventionelle Nutzer-I/O-Befehle
zugegriffen werden. Statt dessen wird in einem Ausführungsbeispiel
ein Nicht-Nutzer zugänglicher
Mikrocode-Satz vorhanden sein, der Mikrocode umfaßt, der
das Schreiben und Lesen von Steuerregistern 1–N (136–138)
ermöglicht.
In anderen Ausführungsbeispielen
können andere
Formen privater Operationen, anders als die Mikrocode-Ausführung, dazu
genutzt werden, auf die Steuerregister 1–N (136–138)
zuzugreifen.
-
In
einem Ausführungsbeispiel
erlaubt der Mikrocode das Schreiben auf und das Lesen von Steuerregistern
1–N (136–138)
und Steuerregistern A und B (120, 122) die von
existierenden Mikrocode modifiziert werden können, der die Nutzerbefehle
RDMSR und WRMSR implementiert. Die existierenden Mikrocodes für von RDMSR
und WDMSR umfassen einen Mikro-Befehl, der die Daten, die in einem
32-bit physischen Register vorhanden sind, aufnimmt, die ein logisches
Allzweckregister ECX bedeuten. Diese 32-Bit Adresse wird dann dazu
genutzt, als Adresse der gewünschten
MSR in dem separaten Adressraum zu dienen, die die Steuerregister
umfassen.
-
Um
den Mikrocode zu erzeugen, der auf die neuen Steuerregister zugreift,
wie zum Beispiel Steuerregister 1–N (136–138)
und Steuerregister A und B (120, 122) kann ein
existierender Mikrocode für
die Nutzerinstruktion RDMSR und WRMSR modifiziert werden, um bestimmte
MSR-Adressen in I/O-Adressen umzuwandeln. In einem Ausführungsbeispiel
ist die konvertierte Adresse außerhalb
des nutzeradressierbaren Adressbereichsgrenze, die für konventionelle
Nutzer I/O-Befehle inhärent.
Dies resultiert darin, dass modifizierter Mikrocode dann in einen
alternativen Mikrocode-Satz gebracht wird. In anderen Ausführungen
wird Mikrocode anders als der einer modifizierten RDMSR oder modifizierter
WRMSR Mikrocode entwickelt, um den Zugriff auf neue Steuerregister
zu unterstützen.
-
Es
ist bemerkenswert, dass diese Technik zum Zugriff auf Steuerregister
1–N (134–138) über den
Bus 150 über
die zwei Interface-Module 118, 140 betrieben werden
kann. In einem Ausführungsbeispiel
kann der Bus 150 Adresse außerhalb des I/O adressierbaren
Speicherraums unterstützen,
wenn auch für
keinen anderen Zweck als den, dass es Speicheradressen über den
Bus 150 und das Speicher-Interface 132, 152 unterstützt. Als
Chipset-Funktionsschaltkeise des Chipsets 130 werden hier
dargestellt als durch auf einem Modul durch die Architektur vom
Prozessor 110 separat implementierbare Funktionsschaltkreise
und dazu in der Lage, über
dem Bus 150 ohne zusätzliche,
speziell vorgesehene Signalleitungen zu kontaktieren, wird diese Technik
zum Zugriff auf Steuerregister über
herkömmlich
existierende, konventionelle Busse, wie zum Beispiel den FSB, durchgeführt werden
können.
-
Da
der resultierende, modifizierende Mikrocode zum Zugriff auf Steuerregister
1–N (136–138) und
Steuerregister A und B (120, 122) nicht normalerweise
dem Nutzer zugänglich
ist, können
spezifische Triggerbedingungen für
seine Ausführung
vorgesehen werden. Zum Beispiel kann in einem Ausführungsbeispiel
das Laden von Mikrocode-Patch-Bild 144 oder Mikrocode-Patch-Bild 148 in
den Mikrocode RAM 114 die Durchführung des modifizierten Mikrocodes
triggern. (Das Laden entweder des Mikrocode-Patch-Bild 144 oder
Mikrocode-Patch-Bild 148 kann wiederum durch das Entfernen
des RESET#-Signals vom Prozessor 110 getriggert werden).
Auf diese Weise werden Steuerbits von dem Mikrocode-Patch in Steuerregister
1–N (136–138) geschrieben,
und Steuerregister A und B (120, 122) als Teil
des Ladens des Mikrocode-Patches.
-
In
einem anderen Ausführungsbeispiel
können
zwei verschiedene Sätze
von Mikrocode und Mikrocode-ROM 112 vorhanden sein: Ein
Satz von Nutzerbefehlsmikrocode und ein anderer, um ihm im DEBUGING-Modus
zu benutzen. In anderen Ausführungen
können
zwei Sätze
von Mikrocode aufgeteilt werden zwischen Mikrocode ROM 112 und
Mikrocode RAM 114. Ein DEBUGING-Anzeiger 124 kann
benutzt werden, um anzuzeigen, ob der Prozessor 110 im
Nutzermodus oder im DEBUGING-Modus ist. Der DEBUGING-Anzeiger 124 kann
in einigen Ausführungsbeispielen
während
der Herstellung gesetzt werden (logisches ja) oder kann während einige
Teile der Endfertigung gelöscht
werden (logisches nein) während
des Tests oder bei der Vorbereitung zur Lieferung. In einigen Ausführungen
können
spezielle, elektronische Verfahren genutzt werden, um den DEBUGING-Anzeiger 124 zu
setzen und später
wieder zu löschen,
nachdem der Prozessor 110 ausgeliefert wurde.
-
Wenn
der DEBUGING-Anzeiger 124 gesetzt ist, kann der zweite
Satz von Mikrocode zur Durchführung
durch einen mit Privilegien versehenen Benutzer freigeschaltet werden.
Auf diese Weise ist der Mikrocode zum Zugriff auf ausgewählte, neue
Steuerregister, wie zum Beispiel die Steuerregister 1–N (136–138)
und die Steuerregister A und B (120, 122) darauf
beschränkt,
nur im DEBUGING-Modus ausgeführt
zu werden. Wenn der DEBUGING-Anzeiger vor der Auslieferung des Prozessors 110 gelöscht wurde,
kann dieses Löschen
Endnutzer vom Zugriff auf Steuerregister ausschließen.
-
Bezugnehmend
auf 2 ist ein Diagramm des Speicheradressraumes dargestellt
nach einem Ausführungsbeispiel
der vorliegenden Erfindung. Ein I/O-adresierbarer-Speicherraum 210 ist
separat adressierbar, wenn er mit dem adressierbarem Speicherraum 220 verglichen
wird. In einem Ausführungsbeispiel
ist dieser I/O-adressierbarer-Speicherraum 210 derjenige,
der mit 16-Bit an Adresse (zum Beispiel (216–1) oder
64K Byte) angesprochen werden kann- In anderen Ausführungsbeispielen
können einige
mehr Adressen hinzugefügt
werden, die dem I/O-adressierbaren-Speicherraum 210 von 64Kbyte +
N Byte an Raum geben, wobei an einem Ausführungsbeispiel N = 3. In Ausführungsbeispielen,
wo der Prozessor 32 Bit-memory-Adressen nutzt, wird der adressierbare
Speicherraum 220 232 oder 4G Byte
groß sein; In
anderen Ausführungsbeispielen,
in denen ein Prozessor 64 Bit Speicheradressen nutzt, wird der adressierbare
Speicherraum 220 264 Byte sein.
-
In 2 ist
der Abschnitt des Speicherraums, der durch Speicheroperationen und
anderen Mikrocodeoperationen zugänglich
ist, der adressierbare Speicherraum 220 als orthogonal
zum I/O-adressierbaren-Speicheraum 2210 dargestellt. In anderen
Ausführungsbeispielen
kann ein differierender Satz von Grenzen zwischen I/O-adressierbarem-Speicherraum 210 und
adressierbarem-Speicherraum 220 bestehen.
-
Bezugnehmend
auf 3 wird ein Diagramm zum Zugriff auf Steuerregister
dargestellt nach einem Ausführungsbeispiel
der vorliegenden Erfindung. Der Prozessor 210 kann dazu
in der Lage sein, mit einem IEEE-Standard 1149 Spezifizierungentsprechenden
TAP (test access Port) ("IEEE Standard
Test Access Port und Boundary-Scan Architecture", IEEE-Standard 1149.1-1990). Hier wird der
Prozessor 130 dargestellt mit einem TAP-Interface 370,
das es erlaubt, ihn durch einen IEEE-Standard 1149 kompatibles DEBUGING-Anschluß 374 anzusprechen.
Der DEBUGING-Anschluß 374 kann den
Prozessor 310 direkt über
das Interface 376 über die
Signalbufferung steuern, die durch den boundary-scan-Multiplexer 372 angeboten
wird.
-
Der
DEBUGING-Anschluß 374 kann
es einem Nutzer erlauben, auf Abschnitte der Logik des Prozessors 310 zuzugreifen,
die normalerweise durch den Benutzer nicht zugänglich sind. In einem Ausführungsbeispiel
ist der DEBUGING-Anschluß 373 dazu
in der Lage, dem Nutzer nicht Nichtnutzerbefehl des Mikrocodes zu
erlauben. Dies setzt den Nutzer in die Lage, den Mikrocode durchzuführen, der
die Steuerregister anspricht, wie zum Beispiel Steuerregister 1–N (134–138)
und Steuerregister A 320, die Adressen außerhalb
des I/O-adressierbaren-Speicherraums besitzen. Hier wird als 1 Ausführungsbeispiel
die Nutzerinstruktion durch einen Satz von Mikrocode implementiert,
und der Mikrocode kann diese Steuerregister ansprechen, die zu einem
anderen Satz von Mikrocode gehören.
-
In
anderen Ausführungsbeispielen
kann der DEBUGING-Anschluß 374 dazu
genutzt werden, direkt auf die Steuerregister zuzugreifen, wie zum
Beispiel auf das Steuerregister 1–N (334–338)
und Steuerregister A 320.
-
Bezugnehmend
auf 4 wird ein Diagramm zum Zugreifen auf Steuerregister
dargestellt, nach einem anderen Ausführungsbeispiel der vorliegenden
Erfindung. In diesem Ausführungsbeispiel der 4 tauschen
die Prozessoren 410 und 480 keine Daten über einen
Multi-Drop-Bus aus, sondern über
eine Punkt-zu-Punkt Datenverbindung 460. Zusätzlich wird
ein separater Chipset nicht benutzt. An Stelle dessen werden selektive
Chipset-Funktionen, wie zum Beispiel Speicher-Interface 472 und
I/O-Interface 466 genutzt, die in den Prozessor 410 integriert
sind.
-
Der
Prozessor 410 kann Steuerregister der vorliegenden Erfindung
umfassen, wie zum Beispiel Steuerregister 1–N (434–438).
Prozessor 480 kann auch dazu in der Lage sein, Steuerregister
anzusprechen, die dazu in der Lage sind, von dem Prozessor 410 angesprochen
zu werden, wie zum Beispiel A und B (484, 486).
Es wird darauf hingewiesen, dass diese Technik zum Zugriff auf Steuerregister
A und B (484, 486) auch über point-to-point data link 460 (Punkt-zu-Punkt
Datenverbindung) über
die zwei Punkt-zu-Punkt Interface-Module 462, 464 betrieben werden
kann. In einem Ausführungsbeispiel
kann die Punkt-zu-Punkt Datenverbindung 460 Adressen außerhalb
des I/O-adressierbarem-Speicherraums ansprechen, wenn auch für keinen
anderen Zweck als den, den Speicherzugriff von Prozessor B 480 über die
Punkt-zu-Punkt Datenverbindung 460 und
das Speiche-Interface 472, 452 zu erlauben. Jedes
der Steuerregister 1–N
(434–438)
und das Steuerregister A und B (484, 486) haben
Adressen außerhalb
des I/O-adressierbaren-Speicherraums.
-
Ein
Mikrocode ROM 412 kann vorgesehen werden, um Basismikrocodesatz
zu speichern und ein Mikrocode RAM 414 kann vorgesehen
werden, um ein anderes Mikrocodesatz zu empfangen. In einem Ausführungsbeispiel
kann dieser Mikrocodesatz von einem Mikrocode-Patch-Bild 444 geladen
werden oder von einem Mikrocode-Patch-Bild 448.
In einem Ausführungsbeispiel
kann ein Nicht-Nutzer-zugänglicher
Mikrocodesatz, Mikrocode umfassen, der das Schreiben und Lesen von
Steuerregistern 1–N (434–438)
erlaubt und von Steuerregistern A und B (484, 486).
-
Da
der Mikrocode zum Zugriff auf Steuerregister 1–N (464–438)
und Steuerregister A und B (484, 486) normalerweise
nicht für
den Nutzer erhältlich
ist, werden spezifische Triggerbedingungen für seine Ausführung wiederum
vorgesehen. Zum Beispiel kann in einem Ausführungsbeispiel das Laden von
Mikrocode-Patch-Bild 444 oder dem Mikrocode-Patch-Bild 448 in
den Mikrocode-RAM 414 die Ausführung von modifiziertem Mikrocode
triggern. Auf diese Weise können
Steuerbits von den Mi krocode-Patchs in den Steuerregistern 1–N (434–438) geladen
werden und in die Steuerregister A und B (484, 486)
als Teil des Ladens des Mikrocode-Patches geschrieben werden. Alternativ
kann ein zweiter Satz von Mikrocode in den Mikrocode ROM 412 vorgesehen
sein, und der Mikrocode zum Zugriff auf die Steuerregister 1–N (434–438)
und die Steuerregister A und B (484, 486) kann
während
eines DEBUGING-Modus ausgeführt
werden, wie oben in Zusammenhang mit der 1 dargestellt,
oder durch Durchführen
eines Testes über
den Zugriffsort, wie oben im Zusammenhang mit 3 beschrieben.
-
Bezugnehmend
auf 5A und 5B werden
schematische Diagramme des Systems mit einem Prozessor dargestellt,
der dazu in der Lage ist, die Steuerregister der vorliegenden Erfindung
zuzugreifen, nach zwei Ausführungsbeispielen
der vorliegenden Offenbarung. Das System der 5A zeigt im
wesentlichen ein System, bei dem Prozessoren, Speicher und Input-/Output-Geräte mit einer
Anzahl von Punkt-zu-Punkt-Interface
verbunden sind.
-
Die 5A kann
ein oder mehr Prozessoren umfassen, von denen zwei, die Prozessoren 40, 60, jeder
zum Zwecke der Klarheit dargestellt sind. Prozessoren 40, 60 können Niveau-1-Zwischenspeicher (level
one caches) 42, 62 umfassen. Das System der 5A kann
verschiedene Funktionen aufweisen, die mit Bus-Schnittstellen 44, 64 12, 8 mit
einem Systembus 6 verbunden sind. In einem Ausführungsbeispiel
kann der System-Bus 6, der FSB (front side bus) sein, der
einen Pentium®-Klasse
Mikroprozessor, hergestellt durch die Intel® Corporation
nutzt. In anderen Ausführungsbeispielen
können
andere Busse genutzt werden. In einigen Ausführungsbeispielen werden der
Speicherkontroller 34 und die Busbrücke 32 kollektiv als
Chipset bezeichnet. In einigen Ausführungsbeispielen werden Funktionen
des Chipsets zwischen physikalischen Chips anders, als in der 5A-Ausführung verteilt.
-
Der
Speicherkontroller 34 kann es den Prozessoren 40, 60 erlauben,
von dem Systemspeicher 10 zu lesen und von einem Firmware-EPROM 36.
In einigen Ausführungsbeispielen
kann die Firmware ein Mikrocode-Patch-Bild zum Laden eines Mikrocode
RAM (nicht dargestellt), der Prozessoren 40, 60 umfassen.
Speicherkontroller 34 kann eine Bus-Schnittstelle 8 umfassen,
um es Speicher zu erlauben, Daten zu lesen und zu schreiben, die
an und von Bus-Agenten auf dem System-Bus 6 bewegt werden.
Der Speicherkontroller 34 kann auch mit einer Hoch-Leistungsgrafik-Schaltkreis 38 über eine Hoch-Leistungsgrafik-Schnittstelle 39 in
Verbindung treten.
-
In
anderen Ausführungen
der Hoch-Leistungsgrafik-Schnittstelle 39 kann dies ein
fortgeschrittener Grafikanschluß AGP-Schnittstelle
sein. Der Speicherkontroller 34 kann Daten von dem Systemspeicher 10 an
die Hoch-Leistungsgrafik-Schaltkreise 38 über Hoch-Leistungsgrafik-Schnittstelle 39 richten.
-
Das
System der 5B kann einen oder mehrere Prozessoren
umfassen, von denen zwei Prozessoren 70, 80 zum
Zwecke der Klarheit dargestellt sind. Die Prozessoren 70, 80 können einen
lokalen Speicherkontroller-Hub (MCH) 72, 82 umfassen,
um mit den Speichern 2, 4 und der Firmware 3, 5 in
Verbindung zu treten. In einigen Ausführungen kann die Firmware ein
Mikrocode-Patch-Bild zum Laden in ein Mikrocode RAM (nicht dargestellt)
von Prozessoren, 70, 80 liefern. Die Prozessoren 70, 80 können Daten über eine
Punkt-zu-Punkt-Schnittstelle 50 übertragen unter Benutzung von
Punkt-zu-Punkt-Interface-Schaltkreise 78, 88.
Die Prozessoren 70, 80 können jeweils Daten über ein
Chipset 90 über
individuelle Punkt-zu-Punkt-Interfaces 52, 54 übertragen unter
der Benutzung von Punkt-zu-Punkt-Schnittstellen-Schaltkreisen 76, 94, 86, 98.
Der Chipset 90 kann auch Daten mit einem Hoch-Leistungsgrafik-Schaltkreis 38 über eine
Hoch-Leistungsgrafik-Schnittstelle 92 übertragen.
-
In
dem System der 5A kann die Bus-Brücke 32 es
erlauben, Daten zwischen dem System-Bus 6 und dem Bus 16 zu übertragen,
die in einigen Ausführungen
ISA-(industry standard
architecture) Bus oder einen PCI-(peripaheral component interconnection)
Bus umfassen. In dem 5B-System kann das Chipset 90 Daten
mit einem Bus 16 über
ein Bus-Interface 96 austauschen. In jedem System kann
eine Vielzahl von I/O-Geräten 14 auf
den Bus 16 zugreifen, inklusive einigen Ausführungsbeispielen
Niedrig-Leistungsgrafik-Kontroller, Video-Controller und Netzwerk-Controller.
Eine andere Bus-Brücke 18 kann
in einigen Ausführungsbeispielen
dazu genutzt werden, Datenaustausch zwischen dem Bus 16 und
dem Bus 20 zu erlauben. Bus 20 kann in einigen
Ausführungsbeispielen
ein Klein-Computer-System-Interface-(SCSI)
Bus sein, ein IDE-(integrate drive electronics) Bus oder ein USB
(universal serial bus). Zusätzliche
I/O-Geräte können mit
dem Bus 20 verbunden werden. Diese können ein Keyboard und eine
Steuereinrichtung für den
Cursor 22 umfassen, inklusive eine Maus, eine Audio-I/O 24,
Kommunikationsgeräte 26,
inklusive Modems oder Netzwerk-Schnittstellen und Datenspeichergeräten 28.
Softwarecode 30 kann auf Datenspeichergeräten 28 gespeichert
werden, und in einigen Ausführungen
kann der Softwarecode 30 ein Mikrocode-Patch-Bild umfassen.
In einigen Ausführungen
kann das Datenspeichergerät 28 eine
feste, magnetische Platte, ein herausnehmbarer Plattenantrieb, ein
optisches Plattenlaufwerk, ein magnetooptisches Plattenlaufwerk,
ein Magnetband oder ein nichtflüchtiger
Speicher inklusive flash memory sein.
-
In
der vorangehenden Beschreibung ist die Erfindung bezugnehmend auf
spezifische, beispielhafte Ausführungsbeispiele
beschrieben. Es wird jedoch offensichtlich sein, dass verschiedene
Modifikationen und Veränderungen
hierzu gemacht werden können
ohne von den breiteren Geist und Schutzbereich der Erfindung, wie
sie in den nachfolgenden Ansprüchen
beschrieben ist, abzuweichen. Die Beschreibung und die Zeichnungen
werden entsprechend nur als beispielhaft, nicht als beschränkend, angesehen
werden.
-
Zusammenfassung
-
System
und Verfahren zum Zugriff auf Steuerregister in einem Computersystem
werden beschrieben. In einem Ausführungsbeispiel ist ein Steuerregister
angegeben an einer Adresse, die außerhalb der normalen I/O-Adressbereiches
liegt. Zusätzlich
kann dieses Steuerregister physisch in System-Schaltkreisen außerhalb
der Prozessorfunktionsschaltkreise liegen. Spezieller Mikrocode
kann genutzt werden, um diese Steuerregister anzusprechen. Dieser
spezielle Mikrocode kann durch spezielle Systemereignisse ausgeführt werden.
Diese speziellen Ereignisse können
das Laden eines Mikrocode-Patches sein oder das Starten eine speziellen Debugging
Modus, oder durch Testzugang unter Nutzung eines TAP.