-
TECHNISCHES
GEBIET DER ERFINDUNG
-
Diese
Erfindung bezieht sich im allgemeinen auf integrierte Schaltkreise
und genauer gesagt auf ein Verfahren in einem Mikroprozessor mit
von Leistungsmanagement gesteuerter Hardware und mit wählbaren
Eingabe/Ausgabe-Anschlüssen.
-
HINTERGRUND
DER ERFINDUNG
-
Hersteller
elektronischer Schaltkreise haben in zunehmendem Maße Bedarf,
den Stromverbrauch ihrer Schaltkreisplatinen zu reduzieren. Die
Einsparung von Strom ist besonders wichtig in tragbaren elektronischen
Einrichtungen bzw. Geräten
wie Laptop- oder Notebook-Computern, bei denen das Produkt speziell
zur Verwendung in Situationen entwickelt wird, in denen Stromversorgungen
bzw. Steckdosen nicht verfügbar
sind. Da Laptop- und Notebook-Computer mittels interner Batterien
oder wiederaufladbarer Batteriepacks für erweiterte Zeitspannen betrieben
werden müssen,
ist die Einsparung von Batterieleistung ein vordringliches Anliegen.
-
In
einem Laptop- oder Notebook-Computer ist der größte Stromverbraucher das Display
bzw. der Bildschirm. Der Anteil des Stroms, der von dem Display
verbraucht wird, variiert abhängig
von der verwendeten Technologie. Daher lassen Hersteller von Laptop-
und Notebook-Computern während
Phasen der Inaktivität
den Strom zum Display unterbrechen. Das Trennen des Bildschirms
von der Stromversorgung kann mit ziemlich einfachen Schaltungen
erreicht werden.
-
Der
nächst
größte Stromverbraucher
in einem Laptop- oder Notebook-Computer ist der CPU-Mikroprozessor
der Hauptplatine. Vordem haben Computerhersteller eine oder zwei
Techniken zur Reduktion des Stromverbrauchs des Mikroprozessors
während
Phasen der Inaktivität
verwendet. Eine Technik reduziert die Geschwindigkeit des Systemtaktes
während
Phasen der Inaktivität
auf einen Bruchteil der normalen Betriebsfrequenz. Da der Stromverbrauch
des Mikroprozessors proportional zur Frequenz ist, vermindert das
Reduzieren der Frequenz des Systemtaktes auch den Stromverbrauch des
Mikroprozessors. In einem Intel 80386DX Mikroprozessor (hergestellt
von Intel Corporation in Santa Clara, Kalifornien) vermindert das
Reduzieren der Betriebsfrequenz von 33 MHz auf 4 MHz den typischen
Betriebsstrom des Mikroprozessors von 400 auf ungefähr 100 Milliampere.
Nichtsdestoweniger stellt ein Betriebsstrom von 100 Milliampere
immer noch einen großen
Energieabfluß für die Batterie
dar.
-
Eine
zweite Technik zur Leistungsreduktion schaltet den Systemtakt während Phasen
der Inaktivität
ab. Das Abschalten des Systemtaktes betrifft alle Schaltkreise auf
der Hauptplatine. Folglich muß die
Schaltung, die den Systemtakt abschaltet, auch alle dauerhafte Information
in dem Mikroprozessor und der zugehörigen Platinenlogik sichern
und die Daten bei der Wiederaufnahme der Aktivität wieder herstellen, so daß der Zustand
des Computers nach der Wiederaufnahme des Systemtaktes identisch
mit dem Zustand des Computers vor dem Abschalten des Systemtaktes
ist. Im Ergebnis ist diese Technik für den Stromverbrauch sowohl
teuer wegen der komplizierten Schaltung als auch langsam wegen der Notwendigkeit,
den Zustand des Computers zu sichern und wiederherzustellen.
-
US-A-4
748 559 offenbart einen Ansatz zum Unterdrücken der Takte, wenn der Prozessor
nicht zu arbeiten braucht, was bedeutet, dem Befehlsvorrat einen
STOP-Befehl hinzuzufügen.
Wenn der STOP-Befehl ausgeführt
wird, werden sowohl der Haupttaktoszillator als auch die internen
Takte unterdrückt,
wobei der Prozessor als ein Ergebnis eines externen Rücksetz-
oder Interrupt- bzw. Unterbrechungssignal wieder gestartet wird.
-
Die
japanische Anmeldung JP-A-56-167752 offenbart einen integrierten
Halbleiterschaltkreis, der aufweist: einen Steuerschaltkreis für eine Betriebsart mit
niedrigem Stromverbrauch zum Erzeugen von Steuersignalen, die sich
auf eine Betriebsart mit niedrigem Stromverbrauch beziehen, und
der auf einem Datenbus aus einem Speicher einen Befehl zum Setzen
der Betriebsart mit niedrigem Stromverbrauch empfängt, der
in einem Puffer gespeichert wird und anschließend von einem Befehlsdekodierer
dekodiert wird, und ein Signal empfängt, das das Ende eines Maschinenzyklus' eines Maschinenzyklussteuerschaltkreises
anzeigt; einen Taktsteuerschaltkreis, der ein Taktsignal für eine normale
Betriebsart erzeugt, das nur in einer gewöhnlichen Betriebsart durch
ein Steuersignal wirksam ist, und ein Taktsignal erzeugt, das auch
in der Betriebsart mit niedrigem Stromverbrauch wirksam ist; einen
Busanforderungssteuerschaltkreis, einen Zustandssignalsteuerschaltkreis
und einen Unterbrechungssignalverarbeitungsschaltkreis, die beide
Taktsignale und eine Ausgabe des Steuerschaltkreises für die Betriebsart
mit niedrigem Stromverbrauch empfangen; und einen Schaltkreis zum
Erzeugen eines Signals zum Freigeben bzw. Aufheben der Betriebsart
mit niedrigem Stromverbrauch. Es gibt eine Verzögerung zwischen dem Eintritt
bzw. der Eingabe einer Anforderung des Niedrigstrommodus in den
Speicher, dem Holen und dem Dekodieren des Befehls zum Setzen des Niedrigstroms;
diese Operationen müssen
mit des Taktsignalen des Prozessors synchronisiert werden, und der
Niedrigstrommodus beginnt am Ende eines Maschinenzyklus'. Das Ende eines
Maschinenzyklus' ist
nicht gleichbedeutend mit dem Abschluß der Ausführung eines Befehls, z. B.
können
Befehle mehr als einen Zyklus zur Ausführung benötigen. Der Takt des normalen
Betriebsmodus' wird
nach einer festen Zeitspanne im Anschluß an einen Befehl zum Setzen
des Niedrigstroms angehalten.
-
Daher
ist in der Industrie ein Bedarf entstanden, ein Verfahren und eine
Vorrichtung zum Stromsparen in einem elektronischen Gerät bzw. einer
elektronischen Einrichtung zur Verfügung zu stellen, das den Stromverbrauch
des Mikroprozessors wesentlich reduziert, ohne eine komplizierte
externe Schaltung zu benötigen.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Gemäß der vorliegenden
Erfindung, wie sie in den Ansprüchen
dargelegt ist, wird ein Verfahren und eine Vorrichtung zur Verfügung gestellt,
die wesentliche Vorteile beim Reduzieren des Stromverbrauchs eines
Mikroprozessor und Bereitstellen verbesserter Eigenschaften für einen
solchen Mikroprozessors bieten.
-
Nach
einem Aspekt der vorliegenden Erfindung beinhaltet eine Verarbeitungseinheit
eine Mehrzahl von Unterschaltkreisen und Schaltungstechnik zum Erzeugen
eines Taktsignals hierfür.
Schaltungstechnik ist zum Erkennen des Setzen eines Steuersignals
vorgesehen; in Reaktion auf das Steuersignal deaktiviert eine Deaktivierungsschaltung
das Taktsignal für
einen oder mehrere Unterschaltkreise.
-
Dieser
Aspekt der vorliegenden Erfindung bringt wesentliche Vorteile gegenüber dem
Stand der Technik mit sich. Eine wesentliche Reduktion bei dem von
einem Computer verbrauchten Strom kann durch Deaktivieren des Taktes
für eine
Mikroprozessorschaltung erzielt werden. Die vorliegende Erfindung ermöglicht es,
daß das
Deaktivieren und Aktivieren des Mikroprozessor-Taktsignals durch
ein einziges Steuersignal gesteuert wird. Ferner kann ein Bestätigungssignal
vorgesehen sein, um externe Schaltungen über den suspendierten Zustand
des Mikroprozessors in Kenntnis zu setzen.
-
Ein
anderer Aspekt der vorliegenden Erfindung weist einen Mikroprozessor
mit einer Mehrzahl von Eingabe/Ausgabe-Anschlüssen und an die Eingabe/Ausgabe-Anschlüsse angeschlossene
Verarbeitungsschaltungstechnik auf. Schaltungstechnik zum selektiven
Trennen der Verarbeitungsschaltungstechnik von den Eingabe/Ausgabe-Anschlüssen steht
zur Verfügung.
-
Nach
der bevorzugten Ausführungsform
sind Tri-State- bzw. Drei-Zustands-Puffer zwischen die Verarbeitungsschaltungstechnik
und die Eingabe/Ausgabe-Anschlüsse
geschaltet. Die Tri-State-Puffer
werden durch die Ausgabe eines Registers gesteuert. Das Register
kann Teil einer Registerdatei sein, die über die Zugriffe auf die bzw.
die Zugänge zu
den Eingabe/Ausgabe-Anschlüsse(n)
adressierbar ist. Anfänglich
ist das Register auf einen vordefinierten Wert gesetzt; nach der
bevorzugten Ausführungsform
wird das Register so gesetzt, daß die Tri-State-Puffer in einem
Hochimpedanzmodus sind.
-
Dieser
Aspekt der vorliegenden Erfindung bringt wesentliche Vorteile mit
sich. Verbesserte Eigenschaften bzw. Fähigkeiten können in dem Mikroprozessor
bereitgestellt werden, die Anschlüsse benötigen, die nicht auf anderen
x86-kompatiblen Mikroprozessoren zu finden sind. Die Anschlüsse mit verbesserten
Fähigkeiten
können
selektiv durch die Tri-State-Einrichtungen deaktiviert werden, um
Kompatibilität
mit der x86-Mikroprozessor-Architektur sicherzustellen. In Situationen,
in denen die verbesserten Fähigkeiten
unterstützt
werden, können
die Anschlüsse
wahlweise durch Software aktiviert werden.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Für ein vollständigeres
Verständnis
der vorliegenden Erfindung und ihrer Vorteile wird nun auf die folgende
Beschreibung in Verbindung mit den beigefügten Zeichnungen Bezug genommen,
bei denen:
-
1 ein
Blockdiagramm eines Computersystems darstellt;
-
2 ein
Blockdiagramm der bevorzugten Ausführungsform eines Mikroprozessors
darstellt, der in dem Computersystem von 1 verwendet wird;
-
3 ein
detailliertes Blockdiagramm von Teilen des Mikroprozessors von 2 darstellt,
die mit der Leistungsmanagementschaltung in Beziehung stehen;
-
4 ein
Flußdiagramm
darstellt, das eine bevorzugte Ausführungsform des Betriebs bzw.
der Funktionsweise zum Reduzieren des Stromverbrauchs eines Mikroprozessors
beschreibt;
-
5a–b Schaltungstechnik zum Aktivieren und
Deaktivieren von Pins darstellen, die Steuersignale des Leistungsmanagements
bereitstellen; und
-
6 ein
Flußdiagramm
der Funktionsweise der Software-gesteuerten Ausführungsform zum Einsparen von
Stromverbrauch bei einem Mikroprozessor darstellt.
-
DETAILLIERTE BESCHREIBUNG
DER ERFINDUNG
-
Die
bevorzugte Ausführungsform
der vorliegenden Erfindung und ihre Vorteile werden am besten unter
Bezugnahme auf die 1–6 der Zeichnungen
verstanden, wobei gleiche Ziffern für gleiche und entsprechende
Teile der verschiedenen Zeichnungen verwendet werden.
-
1 stellt
ein Blockdiagramm eines Computersystems dar. Das Computersystem 10 weist
einen Mikroprozessor-CPU-Chip 12 auf, der an ein Speichersubsystem 14,
ein BIOS ROM 16 und die Logikschaltkreis-Chips 18 (gemeinsam
als der "Chipsatz" bezeichnet) angeschlossen
ist. Der Mikroprozessor 12 ist an den Bus 20 angeschlossen.
Der Bus 20 wird verwendet, um mit einer Anzahl von Peripherie-Einrichtungen
bzw. -Geräten
zu kommunizieren, die in 1 als die Tastatursteuerung 22,
die Videosteuerung 24, die I/O-Schaltungstechnik 26 und
die Plattensteuerung 28 abgebildet sind. Die Tastatursteuerung 22 ist
mit der Tastatur 29 verbunden. Die Plattensteuerung 28 ist
mit der Festplatte 30 und der Floppy-Disk 32 verbunden.
Die Videosteuerung 24 ist mit dem Bildschirm 34 verbunden.
Ein optionaler Coprozessor 35 ist an den Mikroprozessor 12 und
das BIOS ROM 16 angeschlossen.
-
Das
in 1 abgebildete Computersystem 10 ist eine
Allzweck-Architektur, die bei Personalcomputern wie dem IBM Personal
Computer und Kompatiblen üblich
ist. Das BIOS 16 (Basic Input/Output System, Basis-Ein-/Ausgabe-System)
ist typischerweise ein nur-lesbarer Speicher, der einen Satz von
Programmen zum Durchführen
der grundlegenden Steuerungs- und Überwachungsoperationen für das Computersystem 10 beinhaltet.
Das BIOS 16 fungiert als eine Schnittstelle zwischen der
Computerschaltungstechnik und der Anwendungssoftware, die von der
CPU 12 ausgeführt
wird. Wichtig ist es für Zwecke
des Stromverbrauchs, daß das
BIOS 16 und die Logik 18 ausgewählte Schaltungen überwachen, um
festzustellen, ob Prozeduren zur Reduktion des Stromverbrauchs aufgerufen
werden können.
Zum Beispiel können
das BIOS 16 und/oder die Logik 18 den Bildschirm 34 überwachen
um festzustellen, ob sich seine Ausgabe über eine zuvor festgelegte
Zeitspanne hinweg geändert
hat. Falls nicht, kann das BIOS 16 Prozeduren aufrufen,
um den Strom für
den Bildschirm 34 abzuschalten (angenommen das Computersystem 10 ist
ein tragbarer Computer), um Energie zu sparen. Ferner überwacht
das BIOS 16 den Mikroprozessor 12 um festzustellen,
ob der Mikroprozessor ohne den Betrieb des Computersystems 10 zu
beeinträchtigen
in einen Idle-Zustand
bzw. Leerlauf versetzt werden kann. Zum Beispiel kann der Mikroprozessor 12 eine
Routine ausführen,
um auf ein Zeichen von der Tastatur zu warten. In diesem Fall kann
der Betrieb des Mikroprozessors suspendiert werden, bis eine Taste
gedrückt
wird.
-
2 stellt
ein detailliertes Blockdiagramm der verschiedenen Unterschaltkreise
einer bevorzugten Ausführungsform
des Mikroprozessors 12 dar. Für Zwecke der Darstellung wird
der Mikroprozessor 12 in Verbindung mit einem Mikroprozessor
beschrieben, der Anschluß-kompatibel
und Befehls-kompatibel mit der 80x86-Familie von Prozessoren von
Intel Corporation ist, speziell mit dem 80386-Mikroprozessor, obwohl
die Erfindung gleichwohl in anderen Prozessoren verwendet werden
könnte.
Der Mikroprozessor 12 weist drei Hauptfunktionsgruppen
auf: die Kernschaltungstechnik 36, die Speicherschaltungstechnik 38 und
die Bussteuerung 40. Die Kernschaltungstechnik 36 beinhaltet
eine Befehlswarteschlange 42, die an einen internen Datenbus 44 angeschlossen
ist. Der Ausgang bzw. die Ausgabe der Befehlswarteschlange 42 ist
an einen Dekodierer 46 der Dekodier/Sequenz-Schaltungstechnik 47 angeschlossen.
Die Dekodier/Sequenz-Schaltungstechnik 47 beinhaltet auch
eine Ablaufsteuerung bzw. eine Folgesteuerung 50 und einen
Ausnahmebedingungs- bzw. Exception-Prozessor 86. Der Dekodierer 46 ist
mit einem Mikrocode-ROM 48, dem Ausnahmebedingungs-Prozessor 86 und
der Folgesteuerung 50 verbunden. Die Folgesteuerung 50 ist
auch mit dem Mikrocode-ROM 48 und einer Ausführungseinheit 52 verbunden.
Die Ausführungseinheit
beinhaltet eine Begrenzungseinheit 54, eine Multipliziereinheit 56,
eine Addiereinheit 58, eine Verschiebeeinheit 60 und
eine Registerdatei 62. Die Ausführungseinheit 52 ist
mit dem Mikrocode-ROM 48 und
mit Multiplexer- und I/O-Register-Schaltungstechnik 64 verbunden.
Die Speicherschaltungstechnik 38 weist eine Speicherverwaltungseinheit 66 auf,
die mit einem linearen Adreßbus 68 verbunden
ist, der auch mit der Ausführungseinheit 52 und
einem Befehls-/Daten-Cachespeicher 70 verbunden ist. Die Speicherverwaltungseinheit 66 ist
ferner an den internen Datenbus 44 angeschlossen. Eine
Vorabhol-Einheit 72 ist zwischen die Speicherverwaltungseinheit 66 und
den Cachespeicher 70 geschaltet. Die Bussteuerung 40 beinhaltet
Datenpuffer 74, Adreßpuffer 76 und
Steuerungsschaltungstechnik 78. Die Datenpuffer 74 sind
mit den Daten-I/O-Anschlüssen D31–D0 verbunden,
die Adreßpuffer 76 sind
mit den Adreßanschlüssen A31–A2 und
BE3#–BE0#
verbunden. Ein Datenadreßbus 80 verbindet
die Speicherverwaltungseinheit 66, den Cachespeicher 70 und den
Adreßpuffer 76.
Ein Befehlsadreßbus 82 verbindet
die Vorabhol-Einheit 72, den Cachespeicher 70 und
den Adreßpuffer 76.
Die Datenpuffer 74 sind an den internen. Datenbus 44 angeschlossen.
-
Das
Taktmodul 84 empfängt
ein externes Taktsignal (CLK2) und erzeugt CLKA (angeschlossen an
die Bussteuerung 40) und CLKB (angeschlossen an die Speicherschaltungstechnik 38 und
die Kernschaltungstechnik 36). CLKA und CLKB sind beides
Taktsignale von der Hälfte
der Frequenz von CLK2. Das Taktmodul 84 empfängt Steuersignale von
der Bussteuerung 40.
-
Im
Betrieb werden unter der Steuerung der Speicherverwaltungseinheit 66 von
dem Mikroprozessor 12 Befehle aus dem externen Speicher
empfangen. Für
ein verbesserte Leistungsfähigkeit
speichert ein Befehls-/Daten-Cachespeicher 70 Befehle und
Daten, die über
die Bussteuerung 40 empfangen werden. Befehle werden in
einer Befehlswarteschlange 42 gespeichert und werden anschließend von
der Dekodierschaltung 46 in Mikrocode übersetzt. Die Folgesteuerung
zeigt auf die nächste Adresse
in dem Mikrocode-ROM 48 unter der Steuerung des Dekodierers 46 und
der Ausführungseinheit 52.
Die Ausführungseinheit 52 verarbeitet
Information unter der Steuerung des Mikrocode-ROM 48.
-
Nach
der bevorzugten Ausführungsform
hat der Mikroprozessor 12 eine statische Auslegung, d. h.
die Rückhaltung
von Daten in den internen Speichern und Registern des Mikroprozessors 12 ist
nicht vom Taktsignal abhängig.
Wie hier weiter unten genauer beschrieben wird, kann das Taktmodul 84 unter
der Steuerung der Bussteuerung 40 Takte zu den Unterschaltkreisen
der Kernschaltungstechnik 36 und der Speicherschaltungstechnik 38 deaktivieren, während es
fortfährt,
Taktsignale für
die Bussteuerung 40 zu erzeugen. Somit kann während Phasen der
Inaktivität
ein großer
Teil der Schaltungen des Mikroprozessors suspendiert werden, wodurch
die von dem Mikroprozessor 12 verbrauchte Leistung in großem Maße reduziert
wird.
-
Die 3 und 4 beschreiben
die Schaltungen zur Leistungsreduktion genauer. 3 ist
ein Blockdiagramm, das Steuersignale zwischen verschiedenen Teilen
des Mikroprozessors zeigt. Die Bussteuerung 40 steuert
Signale von externen Anschlüssen
des Mikroprozessors 12. Ein Aussetzungs-(SUSP)-Signal ist
eine Eingabe für
die Bussteuerung 40 und eine Aussetzungsbestätigung (SUSPACK)
ist eine Ausgabe von der Bussteuerung 40. Ein Belegt (BUSY)
wird von der Bussteuerung 40 aus dem Coprozessor 35 empfangen.
Die Bussteuerung 40 empfängt auch eine maskierbare Unterbrechung
(INTR) und eine nicht-maskierbare Unterbrechung (NMI). Die Bussteuerung 40 gibt
eine Unterbrechung (oder "Ausnahmebedingung" bzw. "Exception") F_SUSP an den Ausnahmebedingungsprozessor 86 aus
und empfängt
ein Steuersignal D_SUSPACK. Der Ausnahmebedingungsprozessor 86 überwacht
auch den Mikrocode-ROM 48, die Bussteuerung 40 und
die Ausführungseinheit 52,
um festzustellen, ob Befehle ausgeführt werden. Der Ausnahmebedingungsprozessor 86 gibt
ein Signal D_EXCEPTION an die Folgesteuerung 50 aus und empfängt ein
Steuersignal U_AHALT von dem Mikrocode-ROM 48. Die Bussteuerung 40 gibt
ein Steuersignal F_IDLE an das Taktmodul 84 aus.
-
Im
Betrieb erkennt ein externer Schaltkreis (typischerweise das BIOS 16 in
Verbindung mit der Logik 18) Bedingungen, bei denen Mikroprozessor-Operationen
ausgesetzt werden könnten
(wenn zum Beispiel der Mikroprozessor eine Routine zum Warten auf
ein Zeichen von der Tastatur ausführt). Beim Erfassen einer solchen
Situation setzt der externe Schaltkreis den SUSP-Anschluß (zum Beispiel dadurch,
daß der
SUSP-Anschluß mit
einer logisch niedrigen Spannung gespeist wird). Als Reaktion auf das
Setzen des SUSP-Signals gibt die Bussteuerung 40 in Verbindung
mit dem Ausnahmebedingungsprozessor 86 das F_IDLE-Steuersignal
an das Taktmodul 84. Als Reaktion auf das Ausgeben des F_IDLE-Signals
deaktiviert das Taktmodul 84 die CLKB-Taktsignale (indem
das deaktivierte Taktsignal auf einer logisch hohen oder logisch
niedrigen Spannung gehalten wird), während es fortfährt, die
CLKA-Taktsignale zu erzeugen. Da die Auslegung des Mikroprozessors
statisch ist, bedürfen
die Speicher nicht der Auffrischung und daher führt das Aussetzen des Taktes
nicht zu einem Verlust der Daten innerhalb des Mikroprozessors 12.
Das SUSPACK-Signal wird gesetzt, um externe Schaltungen zu benachrichtigen,
daß sich
der Mikroprozessor 12 in dem ausgesetzten bzw. suspendierten
Zustand befindet. Um den Betrieb des Mikroprozessors 12 wieder aufzunehmen,
wird das SUSP-Signal zurückgesetzt
(d. h. durch Anlegen einer logisch niedrigen Spannung an den SUSP-Anschluß), zum
Beispiel beim Erfassen eines Signals von der Tastatur durch das
BIOS 16 und die Logik 18.
-
Durch
Aussetzen der Takte für
die Kernschaltungstechnik 36 und die Speicherschaltungstechnik 38 wird
eine wesentliche Reduktion des von dem Mikroprozessor 12 verbrauchten
Stromes realisiert. Die Bussteuerung 40 bleibt aktiv, um
I/O-Signale zwischen dem Mikroprozessor 12 und den externen
Schaltungen zu beobachten.
-
4 stellt
ein Flußdiagramm
dar, das eine detaillierte Funktionsweise des Aussetzungsmodus zeigt.
Im Entscheidungsblock 88 wird eine Schleife gebildet, wobei
darauf gewartet wird, daß das SUSP-Signal
gesetzt wird. Im Block 90 setzt die Bussteuerung 40,
nachdem das SUSP-Signal gesetzt ist, das F_SUSP-Signal, das mit
dem Ausnahmebedingungsprozessor 86 verbunden ist. Im Block 92 wird als
Reaktion auf das Setzen des F_SUSP-Signals verhindert, daß die Befehlswarteschlange 42 zu
neuen Befehlen fortschreitet. Im Block 94 hört der Dekodierer 46 auf,
neue Befehle an den Mikrocode-ROM 48 befördern, und
jedwede Befehle, die aktuell von dem Mikrocode-ROM 48 oder
der Ausführungseinheit 52 (gemeinsam
die "Pipeline") verarbeitet werden,
werden zum Abschluß gebracht,
einschließlich jeglicher
Aktivität
der Bussteuerung 40, die mit den Befehlen in der Pipeline
in Beziehung steht. Nachdem alle Befehle in der Pipeline ausgeführt wurden, wird
in Block 96 das Steuersignal D_EXCEPTION von dem Ausnahmebedingungsprozessor 86 gesetzt.
D_EXCEPTION wird von der Folgesteuerung 50 empfangen, die
eine Mikrocode-Abschaltroutine (Block 98) in Reaktion auf
D_EXCEPTION einleitet. Die Mikrocode-Abschaltroutine bereitet den
Mikroprozessor auf den Aussetzungsmodus vor. Im Block 100 setzt
der Mikrocode-ROM 48 das Steuersignal U_AHALT für den Ausnahmebedingungsprozessor 86.
Als Reaktion auf den Empfang von U_AHALT setzt der Ausnahmebedingungsprozessor 86 im Block 102 D_SUSPACK
für die
Bussteuerung 40. In der Entscheidung 104 prüft die Bussteuerung 40 nach
dem Empfang von D_SUSPACK von dem Ausnahmebedingungsprozessor das
von dem Coprozessor empfangene Belegtsignal. Solange das Belegtsignal
von dem Coprozessor gesetzt ist, wird das SUSPACK-Signal an die externen
Schaltungen nicht gesetzt und CLKB nicht deaktiviert. Sobald das
Belegtsignal von dem Coprozessor zurückgesetzt wird, wird das SUSPACK-Signal
von der Bussteuerung 40 gesetzt, um die externen Schaltungen
zu alarmieren bzw. darauf aufmerksam zu machen, daß sich der
Mikroprozessor 12 in einem Aussetzungszustand befindet
und daß der
Coprozessor aktuell keine Berechnungen durchführt und auch suspendiert werden kann.
Im Block 108 wird F_IDLE von der Bussteuerung 40 für das Taktmodul 84 gesetzt.
Als Reaktion auf das Setzen des F_IDLE-Signals deaktiviert das Taktmodul 84 im
Block 109 den CLKB, wodurch der Betrieb der Kernschaltungstechnik 36 und
der Speicherschaltungstechnik 38 ausgesetzt wird. Die Bussteuerung 40 wartet
daraufhin in dem Entscheidungsblock 110, bis das SUSP-Signal
zurückgesetzt wird.
Beim Rücksetzen
des SUSP-Signals wird CLKB wieder aufgenommen.
-
Die
meisten Mikroprozessoren einschließlich des 80386 verwenden nicht
alle verfügbaren
Anschlüsse
auf der Chipbaugruppe. Daher können
die SUSP- und SUSPACK-Signale mittels nicht verwendeter Anschlüsse an und
aus dem Mikroprozessor 12 kommuniziert werden, wodurch
die Kompatibilität
mit bereits vorhandener Technologie beibehalten werden kann. Nichtsdestoweniger
können
in der bevorzugten Ausführungsform
die Anschlüsse
für die
SUSP- und SUSPACK-Signale selektiv aktiviert oder deaktiviert werden.
Nach der bevorzugten Ausführungsform sind
die SUSP- und SUSPACK-Anschlüsse anfangs deaktiviert,
und das BIOS 16 muß dafür eingerichtet sein,
die Anschlüsse
in seiner Hochfahr- bzw. Start-Up-Routine zu aktivieren. Um das
Aktivieren oder Deaktivieren der SUSP- und SUSPACK-Anschlüsse zu bewirken,
wird ein Steuerbit bereitgestellt, das über vorausgewählte I/O-Anschlüsse beschrieben
oder gelesen werden kann. Die bevorzugte Ausführungsform dieses Aspektes
wird genauer in Verbindung mit den 5a–b dargestellt.
-
In 5a sind
eine Mehrzahl von Steuerregistern in dem Mikroprozessor 12 (1)
mittels der INDEX- und DATA-Signale zugänglich, die in die Steuerregister 120 eingegeben
werden. Die Mehrheit der Register (und Bits davon) werden zum Konfigurieren
des Cachespeicher-Subsystems
verwendet. Zum Beispiel können
die Steuerregister verwendet werden, um nicht im Cache speicherbare
Bereiche des Hauptspeichers 14 zu definieren, das Cacheverfahren
(direkt abgebildet oder bereichsassoziativ) auszuwählen und
das Ausspülen
des Cachespeichers 70 über
einen externen Anschluß zu
aktivieren. Jedes Steuerregister ist zugänglich durch Schreiben der
Adresse (hier als der INDEX bezeichnet) des Registers an einen I/O-Anschluß, in 5a als
I/O-Anschluß 22h abgebildet.
Ein weiterer I/O-Anschluß, hier
als I/O-Anschluß 23h
abgebildet, wird verwendet, um Daten aus dem angegebenen Steuerregister zu
lesen oder zu schreiben. Nach der bevorzugten Ausführungsform
geht jeder Operation am I/O-Anschluß 23h eine Operation am I/O-Anschluß 22h voraus,
ansonsten würde
die zweite und spätere
Operation am I/O-Anschluß 23h
von dem Chip weggeleitet bzw. an dem Chip vorbeigeleitet werden.
In der dargestellten Ausführungsform
von 5a hat jedes der Steuerregister einen Index zwischen
C0h und CFh.
-
In 5b verwendet
das Register 122 mit einem Index von C0h sein niederwertigstes
Bit, um Tri-State-Einrichtungen 124 und 126 zu
steuern (von denen jedes zusätzlich
zu den HI- und LO-Zuständen einen
dritten Zustand mit hoher Impedanz beinhaltet). Ein Bit, das gleich
einem logischen Hoch (d. h. einer logischen "1")
ist, aktiviert beide Tri-State-Einrichtungen 124 und 126,
um für
die Übertragung
der SUSP- und SUSPACK-Signale zu sorgen. Eine logische "0" deaktiviert die Tristate-Einrichtungen 124 und 126 und
isoliert dadurch die SUSP- und SUSPACK-Anschlüsse von den Schaltungen des
Mikroprozessors 12.
-
Dieser
Aspekt der bevorzugten Ausführungsform
stellt die Anschlußkompatibilität mit vorhandenen
Mikroprozessor-Anschlußstrukturen
sicher.
-
6 stellt
einen weiteren Aspekt der vorliegenden Erfindung dar, wobei der
Betrieb des Mikroprozessors 12 in Reaktion auf ein Softwarekommando
ausgesetzt werden kann. 80x86-Einrichtungen bzw. -Geräte unterstützen eine "HALT"-Operation (Opcode
F4), die die Ausführung
aller Befehle anhält und
den 80x86 in einen HALT-Zustand versetzt. Die Ausführung wird
wieder aufgenommen als Reaktion auf eine nicht-maskierbare Unterbrechung
(auf dem NMI-Anschluß), der
an die Bussteuerung 40 geleitet wird, eine nicht maskierte
Unterbrechung (auf dem INTR-Anschluß, der an die Bussteuerung 40 geleitet wird)
oder ein RESET. Normalerweise wird dieser Befehl als ein letzter
Befehl in einer Folge verwendet, die das System herunterfährt.
-
In
der vorliegenden Erfindung hat jedoch der HALT-Befehl im Wesentlichen
dieselbe Konsequenz wie das Setzen des SUSP-Anschlusses. Daher kann das
BIOS 16 einen HALT-Befehl an den Mikroprozessor 12 ausgeben,
wodurch es CLKB deaktiviert. Das Deaktivieren von CLKB führt wiederum
zu einer erheblichen Reduktion des Stroms, der von dem Mikroprozessor 12 verbraucht
wird.
-
6 stellt
ein Flußdiagramm
dar, das die Funktionsweise des HALT-Befehls in der bevorzugten
Ausführungsform
zeigt. Sobald ein HALT-Befehl an den Mikroprozessor 12 im
Entscheidungsblock 130 empfangen wird, wird von dem Mikrocode-ROM 48 in
Block 132 U_AHALT gesetzt. Als Reaktion auf das U_AHALT-Signal
von dem Mikrocode-ROM setzt der Ausnahmebedingungsprozessor 86 D_SUSPACK.
Nach dem Überprüfen des
Belegtsignals von dem Coprozessor im Entscheidungsblock 136,
wird in Block 140 von der Bussteuerung 40 das SUSPACK-Signal
gesetzt, und der interne Takt CLKB wird in Block 142 deaktiviert.
Im Entscheidungsblock 144 bleibt der Mikroprozessor 12 im
Aussetzungszustand, bis im Entscheidungsblock 144 eine
Unterbrechung gesetzt wird. Sobald die Unterbrechung gesetzt wird,
wird der CLKB-Takt aktiviert und die Verarbeitung wird fortgesetzt.
-
Der
HALT-Befehl ermöglicht
es dem BIOS 16, den Mikroprozessor 16 ohne irgendwelche
zusätzlichen
Hardwareverbindungen zum Mikroprozessor in einen Aussetzungszustand
zu versetzen.
-
Die
vorliegende Erfindung bietet erhebliche Vorteile gegenüber dem
Stand der Technik. Durch das Aussetzen der Takte an die Kernschaltungstechnik
und die Speicherschaltungstechnik wurde ein Stromverbrauch von weniger
als 10 Milliampere nachgewiesen. Da die meisten BIOS-Programme Stromsparmaßnahmen
unterstützen,
ist die zusätzlicher
Kodierung für
das Unterstützen
der SUSP- und SUSPACK-Signale relativ einfach. Alternativ kann die Chipsatz-Logik 18 geändert werden,
um die Erzeugung der SUSP- und SUSPACK-Signale zu unterstützen. Da
das SUSPACK in der bevorzugten Ausführungsform nicht gesetzt wird,
bis die Coprozessor-Operationen zum Abschluß gebracht sind, muß das BIOS
ferner keine zusätzlichen
Schaltungen oder Kodierungen zum Überwachen des Coprozessors
bereitstellen. Weiter können
die Leistungssparschaltungen auf dem Mikroprozessor-Chip bereitgestellt
werden, ohne die Anschlußkompatibilität zu opfern.
Darüber
hinaus kann der Mikroprozessor mittels des verbesserten HALT-Kommandos
in einem Aussetzungszustand betrieben werden ohne andere Hardware-Interaktionen
als das Setzen einer Unterbrechung, um den Mikroprozessor 12 aus
einem Aussetzungszustand herauszubringen.
-
Wenngleich
die vorliegende Erfindung und ihre Vorteile im Detail beschrieben
wurden, sollte es sich so verstehen, daß hierbei verschiedene Änderungen,
Ersetzungen und Abwandlungen vorgenommen werden können, ohne
von dem Anwendungs- bzw. Geltungsbereich der Erfindung, wie durch
die angefügten
Ansprüche
definiert, abzuweichen.