DE19720805A1 - Systemsteuerung für ein Computersystem - Google Patents
Systemsteuerung für ein ComputersystemInfo
- Publication number
- DE19720805A1 DE19720805A1 DE19720805A DE19720805A DE19720805A1 DE 19720805 A1 DE19720805 A1 DE 19720805A1 DE 19720805 A DE19720805 A DE 19720805A DE 19720805 A DE19720805 A DE 19720805A DE 19720805 A1 DE19720805 A1 DE 19720805A1
- Authority
- DE
- Germany
- Prior art keywords
- signal
- address
- value
- register
- activity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3237—Power saving characterised by the action undertaken by disabling clock generation or distribution
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Description
Die Erfindung betrifft eine Systemsteuerung für ein Computer
system nach dem Oberbegriff des Anspruchs 1.
Die starke Zunahme batteriebetriebener tragbarer Personal
computer und das zunehmende Öffentlichkeitsbewußtsein hinsichtlich der
mit der Energieeinsparung verbundenen praktischen und umwelttechnischen
Probleme kann eine Leistungseinsparung in Computeranlagen erforderlich
machen. Für tragbare Computer sind Wärmehaushalt und Batterielanglebig
keit für die Bemühungen zur Antriebsleistungseinsparung von Belang. In
Desktop-Computeranlagen bezieht sich Leistungseinsparung auf Einspa
rung natürlicher Ressourcen im Einklang mit Regierungs- und Indu
striestandards, wie etwa dem EPA-Energy-State-Standard.
Tragbare Computer sind nur verwendbar, wenn die Batteriele
bensdauer eine sinnvolle Benutzungszeit zwischen den Aufladeprozessen
ermöglicht. Ausreichende Zeitdauern können erforderlich sein, um es zu
ermöglichen, sehr langwierige Aufgaben oder Aufgabenserien abzu
schließen. Batterien für moderne tragbare Computer können auch wenn sie
auf acht Stunden Benutzungszeit bemessen sind, Lebensdauern von nur zwei
oder drei Stunden zwischen Aufladeprozessen aufweisen, wenn kontinuier
lich CPU-intensive Aufgaben durchgeführt werden. Während ausgedehnter
Perioden von starken Arbeitsbelastungen können zusätzliche Aspekte hin
sichtlich thermischer Instabilität bei Hochgeschwindigkeitsbetrieb auf
treten.
Da die Taktgeschwindigkeit im direkten Bezug zum Leistungsver
brauch steht, beinhaltet US-5 254 888 eine Technik zur Leistungseinspa
rung über Taktverlangsamung bei Wartezeiten. Diese Technik leistet je
doch keine selektive Anwendung eines Taktstoppsignals in Programminter
vallen, in denen sich das System in einem von mehreren Leistungseinspa
rungsmoden befindet.
Moderne Betriebskonfigurationen mit graphischen Benutzer
schnittstellen (GUI), wie Microsoft Windows, können auch im Ruhezustand
mehr Verarbeitung von der CPU erfordern als Nicht-GUI-Systeme. Daher
kann im Ruhezustand ein tragbarer Computer mit einem GUI-Betriebssystem
eine kürzere Batterielebensdauer haben als mit einem Nicht-GUI-Betriebs
system. Andere Systemkomponenten, wie Bildschirme, Laufwerke und Tasta
turen, verbrauchen Leistung beim Zugriff auf Prozessorarbeit. Eine Ver
minderung der von diesen Systemkomponenten verbrauchten Leistung bei
Aufrechterhaltung der Überwachung ihrer Aktivität und ihrer Versorgung
mit Prozessorarbeit kann wünschenswert sein.
Bekannte Leistungseinsparmethoden, wie Schlafmoden, welche den
Prozessor völlig abschalten, können den Nachteil von langen Aufwachwar
tezeiten aufweisen. Eine Versorgung der Systemperipherie kann bis zum
völligen Prozessorerwachen unmöglich sein. Eine Ausstattung der System
peripherie mit einem schnelleren Zugriff auf den Prozessorbetrieb kann
die Aufwachwartezeit verkürzen. Eine Verkürzung der Aufwachwartezeit
kann zu für den Benutzer tolerierbareren Wartezeiten führen. Darüberhin
aus lassen sich manche Prozessoranforderungen ohne völliges Aufwachen im
Hintergrund erledigen. Falls etwas Aktivität während der Schlafmoden ab
gearbeitet werden kann, wird ein weiteres Aktivitätsfeld zur Triggerung
des Aufwachens zugänglich.
Unterbrechungen sind bekannt und können erzeugt werden, wenn
Systemaktivität vom Benutzereingang oder von der Prozessorbetrieb anfor
dernden Peripherie her vorliegt. Peripheriegeräte können Prozessorbe
trieb über eine Unterbrechungsanforderung anfordern. Unterbrechungsan
forderungen können durch Ausführung eines Unterbrechungsdienstprogrammes
(ISR) abgearbeitet werden. Wenn eine Unterbrechung auftritt, beendet der
Prozessor die Ausführung des aktuellen Programms und beginnt, die Aus
führung der ISR, wie im Kapitel 18, Seiten 331-366, ISA System Architec
tur, Shanley and Anderson, MindShare Press, 1991, 1993, erörtert. Der
Prozessor kann auf eine Unterbrechungsanforderung antworten und anhand
der zugehörigen Unterbrechungszahl bestimmen, welches Gerät oder welcher
Software-Prozeß die Anforderung verursacht hat. Sobald die Identität der
Unterbrechung anhand der Unterbrechungszahl identifiziert ist, kann die
Adresse der ISR in der Unterbrechungsvektortafel (IVT) gefunden und die
ISR ausgeführt werden. Wenn die ISR abgeschlossen ist, kann die Durch
führung an der bei Prozessorabbruch abgespeicherten Stelle wieder aufge
nommen werden.
Unterbrechungen können von Systemaktivität erzeugt werden, die
mit Tastatureingang, Plattenantriebszugriff, Peripheriezugriff und ande
ren Systemereignissen verbunden ist. Umgekehrt können andere Unterbre
chungen Systeminaktivität anzeigen. ISRs für Software-Unterbrechungen
können in BIOS ROM programmiert und beim Start in entsprechende Unter
brechungszahleneingänge der IVT geladen werden. Die IVT kann sich im
Realmodusadreßraum 00000H bis 003FFH befinden. Im geschützten Modus kann
die IVT irgendwo in den Speicher verschoben werden.
Einige bekannte Systeme wie US 5 377 344 führen selektive
Speicher-Betriebsüberwachung durch und speichern Werte in einem Sha
dow-RAM. Das Speichern von Werten in einem RAM ist bekannt. US 5 386 552 be
inhaltet ein System zur Aufrechterhaltung des Abarbeitungszustandes in
einer Großspeicheranlage. In letzterem System wird kein verdeckter Un
terbrechungsvektor oder irgendeine andere Unterbrechung als
Schlummer-Triggerungsereignis verwendet.
Bekannt ist z. B. die übliche DOS-geregelte Software-Unterbre
chung INT16H. Die Unterbrechung INT16H, bekannt als Tastaturversorgungs
unterbrechung, ist in The Programmer′s PC Sourcebook, 2. Auflage, Tom
Hogan, Microsoft Press, 1991, beschrieben. Wenn keine Eingabe des Benut
zers vorliegt, kann DOS auf der Suche nach Tastaturaktivität an INT16H
übergehen. Der Nachweis eines solchen Systemübergangs an INT16H an sich
kann zur Triggerung von Schlafmoden benutzt werden. Bis zum Erwachen des
Systems und zur Wiederaufnahme einer Aufgabe muß jedoch, wie zuvor be
schrieben, eine oft verlängerte Periode abgewartet werden. Wenn die Ab
arbeitung wiederhergestellt ist, sind alle Prozessorressourcen zugäng
lich.
Eine solche Methode kann unbrauchbar sein, da eine Aufforde
rung zur sofortigen Abarbeitung vorliegen kann, wenn Aufwachaktivität
durch das Aufwachereignis selbst nachgewiesen wird. Andere Systemereig
nisse oder Aktivität können, allerdings für eine kurze Zeitdauer, sofor
tige Abarbeitung erfordern, während andere Systemereignisse oder Aktivi
tät noch Abarbeitung mit Hintergrundcharakter verlangen. Darüberhinaus
können kleine Intervalle zwischen Ereignissen vorliegen, welche zur Ak
tivierung von Schlafmoden zu klein, jedoch zur Erreichung von Leistungs
einsparung verwendbar sind. Während solcher relativ kurzer Zeitinterval
le, in denen komplette Prozesse und Ressourcen zugänglich sind, kann ein
entsprechender Bedarf zur Abarbeitung fehlen.
Aufgabe der Erfindung ist es, eine Systemsteuerung nach dem
Oberbegriff des Anspruchs 1 zu schaffen, die es ermöglicht, in bezug auf
verschiedene Aktivitäten selektiv und ohne lange Aufwachzeiten zu rea
gieren.
Diese Aufgabe wird entsprechend dem kennzeichnenden Teil des
Anspruchs 1 gelöst.
Hierdurch wird Leistung in einem Personalcomputersystem einge
spart, indem der Nachweis und die Abarbeitung primärer und sekundärer
Ereignisse ermöglicht wird. Bei Abwesenheit von primärer Aktivität kann
ein Vielfaches der Leistungseinsparungsarten erreicht werden, da dann
die betreffenden Betriebszustandszeittaktsteuerungen wegfallen. Bei
Nachweis bestimmter primärer und sekundärer Ereignisse läßt sich ein
vollständiges oder teilweises Erwachen zur Durchführung notwendiger Ar
beitsprozesse triggern. Wenn sich das System bereits im komplett einge
schalteten Betriebszustand befindet und keine primäre oder sekundäre Ak
tivität vorliegt, läßt sich ein Schlummerzustand über das Auftreten pro
grammierter Adressen triggern, welche die Inaktivität des Systems anzei
gen.
Der Schlummertriggerungsschaltkreis ist in einer Systemsteue
rung verwirklicht, welche sich in einem Computersystem befindet, welches
Signale, wie Adreßsignale, Signale kennzeichnend für primäre und sekun
däre Aktivität und mindestens ein Schlummerzeitabschaltungssignal emp
fängt. Adressen, welche mit verdeckten Adressen übereinstimmen, triggern
die Erzeugung eines Schlummersignals. Das Schlummersignal kann an eine
Taktstoppzustandsmaschine gegeben werden, welche ein Taktstoppsignal er
zeugt. Das Taktstoppsignal wird zur Sperrung von Abarbeitung an den Pro
zessor gegeben. Eine Vielzahl von Moduszeitsteuerungen bestimmt, ob das
Computersystem in einen nach und nach niedrigeren Leistungsmodus über
führt werden kann. Jede primäre oder sekundäre Aktivität kann an den Lo
gikschaltkreis gegeben werden, was eine Aufhebung des Schlummersignals
in einem von mindestens zwei Moden bewirkt. Eine Aufhebung des Schlum
mersignals führt zur Entfernung des Taktstoppsignals. In bestimmten Fäl
len wird bei Wegnahme des Taktstoppsignals die Abarbeitung bei voller
Geschwindigkeit wieder aufgenommen.
Bevorzugt kann ein Prefetch-Detektorschaltkreis ein Prefetch-Signal
erzeugen, falls eine gegenwärtige vom Bus entschlüsselte Adresse
von der vorherigen im Register gespeicherten Adresse um 1 abweicht. Beim
Vorabrufen kann der Prozessor aus sequentiellen Speicherplätzen eine
vorbestimmte Menge an Information lesen. Sequentielle Speicherplätze
können die Eigenschaft haben, mit Werten adressiert zu sein, die um 1
größer sind als die vorherige Adresse; dies kann einen Hinweis darauf
geben, daß der Prozessor eher vorabruft als ausführt.
Informationen, auf die während eines Prefetchs zugegriffen
wird, können Prefetch-Zeile genannt werden. Die Länge einer Pre
fetch-Zeile kann beliebig variieren und Anlaß für Adressierungsbeschränkungen
sein. Die Prefetch-Zeile kann 32 Bytes enthalten. Wenn eine Unterbre
chungsadressenübereinstimmung innerhalb der ersten acht Bytes gefunden
wird, bestimmt über ihre Anwesenheit innerhalb des Prefetch-Detektor
schaltkreises in Form der gegenwärtigen oder der vorherigen Adresse,
kann ein Prefetch-Signal erzeugt werden. Bei Erscheinen jeder neuen
Adresse im Adreßbus kann die gegenwärtige Adresse in einem Register ge
speichert werden und zur vorherigen Adresse zu Vergleichszwecken im Lau
fe des nächsten Zyklus werden. Wenn die gegenwärtige Adresse mit der
vorherigen Adresse plus 1 übereinstimmt, kann ein Prefetch-Detektorsi
gnal erzeugt und an den Logikschaltkreis gegeben werden, wodurch die Er
zeugung des Schlummersignals bewirkt wird. Unterbrechungsadressen inner
halb einer vorabgerufenen Zeile können daran gehindert werden, das
Schlummersignal während Vorabrufungen anzusteuern, und eine Leistungs
minderung durch falsches Schlummertriggern bewirken.
Außerdem kann ein Drosselungsschaltkreis, welcher selektiv
freigegeben werden kann, die Abgabe eines Taktstoppsignals während einer
Drosselungsperiode kontrollieren. Ein der Dauer der Drosselungsperiode
entsprechender Wert kann in einem an den Drosselungsschaltkreis gekop
pelten Register gespeichert werden. Das Taktstoppsignal eines bestimmten
Arbeitszyklus kann während der Drosselungsperiode abgegeben werden. Ein
dem gegenwärtigen Arbeitszyklus entsprechender Wert des Taktstoppsignals
kann in einem anderen Register gespeichert werden, welches ebenfalls an
den Drosselungsschaltkreis gekoppelt ist. Bei Abschaltung der Drosselung
kann das Taktstoppsignal auch kontinuierlich abgegeben werden.
Unterbrechungen können erzeugt werden, wenn Systemaktivität
entweder vom Benutzereingang oder von der die Prozessorversorgung anfor
dernden Peripherie vorliegt. Typische Systemaktivität kann durch gegen
wärtige Entdeckung von primärer oder sekundärer Aktivität gekennzeich
net sein. Primäre oder sekundäre Aktivität können während einer Drosse
lungsperiode auftreten. Das Auftreten von primärer Aktivität kann dazu
führen, daß das System zum komplett eingeschalteten Modus zurückkehrt.
Sekundäre Aktivität kann dazu führen, daß Aktivität abgearbeitet wird
und das System unter Vervollständigung der Abarbeitung in den vorherigen
Leistungseinsparungsmodus zurückkehrt. Eine periodische Abgabe des Takt
stoppsignals während der Drosselung stellt sicher, daß der Nachweis von
solch primärer oder sekundärer Aktivität nicht vermindert werden kann.
Eine Vielzahl von Leistungseinsparungsmoden ermöglicht es dem System,
sofort zur Abarbeitung zurückzukehren. Die Leistungsverwaltungsmoden
können Komplett-An-, Sperr-, Schläfchen-, Schlaf-, Tiefschlaf-, Sperrmo
dus oder ähnliches umfassen.
Die Erfindung wird nachstehend anhand eines in den beigefügten
Abbildungen dargestellten Ausführungsbeispiels näher erläutert.
Fig. 1 zeigt ein Diagramm eines Systemspeichers mit einer Un
terbrechungsvektortafel, einem Unterbrechungszahleneingang, einem
Code-Segment (CS) und einem Befehlszeiger (IP) sowie einem Unterbrechungs
dienstprogramm.
Fig. 2 zeigt ein Logikdiagramm mit dem Gesamtschaltkreis.
Fig. 3 zeigt ein Diagramm mit einer Schlummer-Verdeckungszu
standsmaschine, einer Prefetch-Detektorzustandsmaschine und einem
Schlummer-Detektorschaltkreis.
Fig. 4a zeigt ein Zustandsmaschinendiagramm mit der Funktions
weise der Prefetch-Detektorzustandsmaschine von Fig. 3.
Fig. 4b zeigt ein Logikdiagramm mit der Prefetch-Detektorzu
standsmaschine von Fig. 3.
Fig. 4c zeigt ein Zeitdiagramm mit der Zeitsteuerung der Pre
fetch-Detektorzustandsmaschine von Fig. 3.
Fig. 5 zeigt ein Zeitdiagramm mit der Funktionsweise der
Schlummer-Verdeckungszustandsmaschine von Fig. 3 und dem Laden der ver
deckten Adresse.
Fig. 6 zeigt ein Zeitdiagramm mit einer Schlummertriggerung
bei Nachweis einer verdeckten Adresse.
Fig. 7 zeigt ein Zustandsmaschinendiagramm mit der Funktions
weise der Schlummer-Verdeckungszustandsmaschine von Fig. 3.
Fig. 8 zeigt ein Block-Diagramm mit einer primären und sekun
dären Aktivitätsgeneration.
Fig. 9 zeigt ein Block-Diagramm mit der Drosselung eines Takt
stopp-Signals und einer MORESTOP- und LESSSTOP-Kontrolle.
Fig. 1 zeigt ein Beispiel einer Unterbrechungsvektortafel,
welche sich im Adreßraum 110 eines Speicherbereichs 100 befindet. Wenn
das Computersystem gestartet wird, können ISR-Adressen für geläufige
Software-Unterbrechungen entsprechend den jeweiligen Unterbrechungszah
len in Adressen der Unterbrechungstafel geladen werden. Die den
ISR-Adressen entsprechenden Unterbrechungszahlen können über BIOS-Startrou
tinen von 00000H zu 003FFH in den Adreßraum 110 geladen werden. Ein Un
terbrechungseingang 140 kann mit der Unterbrechungszahl INT16H korre
spondieren. Eine Unterbrechungseingangsadresse 120 für den Unterbre
chungseingang 140 kann 00058H sein. Die Unterbrechungseingangsadresse
120 kann berechnet werden, indem man eine Unterbrechungszahl, etwa
INT16H, mit vier multipliziert. Die Zahl 4 kann der Zahl von Bytes ent
sprechen, welche die ISR-Adresse im Codesegment (CS) plus Befehls
zeiger-(IP)-Form bildet, welche gemeinhin als Segment-plus-Offset-Form bezeich
net wird. Die beiden signifikantesten Bytes bei der Unterbrechungsein
gangsadresse 120 können den CS-Wert darstellen. Die beiden am wenigsten
signifikanten Bytes können den IP Wert wiedergeben. Beispielsweise kor
respondiert der Unterbrechungseingang 140 mit INT16H. 16 kann mit 4 mul
tipliziert und in die hexadezimale Darstellung umgewandelt werden, um
die Unterbrechungseingangsadresse 120 von 00058H zu berechnen. In der
bevorzugten Ausführungsform kann die Unterbrechungsadresse 120 einen CS- und
einen IP-Wert enthalten. Es lassen sich eine Unterbrechungszahl oder
die CS- und IP-Werte eines Unterbrechungsvektors in Registern program
mieren, und wenn die Eingangsadresse einer von diesen entspricht, kann
ein Schlummer-Triggern stattfinden.
Die vier Bytes der Unterbrechungseingangsadresse 120 können
die CS- und IP-Werte beinhalten, welche zu Bildung der Adresse einer ISR
150 gebraucht werden. ISR 150 kann als Bestandteil eines CPU-INT-Zyklus
durchgeführt werden, wann immer INT16H als aktuelle Unterbrechungszahl
identifiziert wird. ISR 150, welche sich an der ISR Adresse 130 befin
det, kann durch Multiplikation des von den dritten und vierten Bytes der
Unterbrechungseingangsadresse 120 gelesenen CS-Wertes mit 16 und an
schließender Addition des IP-Wertes, welcher sich aus den ersten und
zweiten Bytes der Unterbrechungseingangsadresse 120 ergibt, berechnet
werden. Wie bereits erläutert, kann ISR 150 für übliche Software-Unter
brechungen während des Startens bei der ISR-Adresse 130 über BIOS gela
den werden. ISR 150 kann auch durch eine Anwendung oder andere Software
geladen werden. Das Laden der ISR 150 ermöglicht es, eine Standard-ISR
durch eine spezifische ISR für besondere Unterbrechungszahlen zu erset
zen. Andere ISRs können an anderen Adressen geladen werden, und diese
ISR-Adressen lassen sich in die Unterbrechungsvektortafel in einer ent
sprechenden Unterbrechungszahladresse über BIOS, eine Anwendung oder an
dere Software, wenn an eine nicht verwendete Unterbrechung oder eine fe
ste Unterbrechung angeschlossen wird, beim Start laden.
Der Schlummerverdeckungs- und Detektorblock 220 setzt gemäß
Fig. 2 die Schlummerverdeckung und die Detektorlogik in Kraft und er
zeugt ein NAP_DETECT-Signal 205. Das NAP_DETECT-Signal 205 ist Eingang
für einen SET-Anschluß eines Zwischenspeichers 223 und setzt ein NAP_AC
TIVE-Signal 207 auf 1. Das NAP_DETECT-Signal 205 ist auch Eingangssignal
für den EN-Anschluß eines Schlummerzeitgebers 221, welcher damit be
ginnt, ab dem in einem NAP_TIMER_REG-Register 203 programmierten Wert zu
zählen. Bei Erreichen des programmierten Wertes nimmt ein TIMEOUT-Signal
206 den Wert 1 an, wodurch das NAP_ACTIVE-Signal 207 zurückgesetzt wird.
Ein ACTIVITY_DET-Signal 204 zeigt das Vorliegen von primärer oder sekun
därer Aktivität an und kann sowohl den Schlummerzeitgeber 221 als auch
den Zwischenspeicher 223 zurücksetzen. Das NAP_ACTIVE-Signal 207 ist
Eingangssignal für eine STOPCLOCK-Zustandsmaschine 224. Solange NAP_AC
TIVE auf 1 ist, wird ein STOPCLOCK-Signal 208 gedrosselt, falls eine
Drosselung freigegeben ist oder bei zugelassenem LESSSTOP angesteuert
bleibt. Die vorliegende Darstellung zeigt eine 32-bit-Adressierung. Es
sind jedoch auch Systeme mit größerer Adressierungskapazität möglich.
Eine gegenwärtige Adresse ADDR[31 : 2] ist gemäß Fig. 3 Ein
gangssignal eines Gatters 625. INT_VEC_ADDR[31 : 2] 602 stellt eine Unter
brechungsvektoradresse, wie 58H für INT16H, dar und ist ebenfalls Ein
gangssignal des Gatters 625. Bei Übereinstimmungen zwischen ADDR[31 : 2]
601 und INT_VEC_ADDR[31 : 2] 602 wird ein logisches Ausgangssignal vom
Gatter 625 nach Gatter 626 gegeben. M/IO#-Signal 603 zeigt an, ob die
gegenwärtige Adresse eine Speicheradresse oder eine I/O-Adresse ist, und
ist Eingang des Gatters 626. W/R#-Signal 330 zeigt an, ob die gegenwär
tige Adresse geschrieben oder gelesen wird, und ist ebenfalls Eingangs
signal des Gatters 626. Logisches Ausgangssignal des Gatters 626 ist ein
INDIRECT_VECTOR_MATCH-Signal 606, welches Eingang für die Schlummerver
deckungszustandsmaschine 627 ist.
INDIRECT_VECTOR_MATCH-Signal 606 wird bei Übereinstimmung von
ADDR[31 : 2] 601 und INT_VEC_ADDR[31 : 2] 602 erzeugt, vorausgesetzt
M/IO#-Signal 603 und W/R#-Signal 330 sind auf 1 gesetzt. Die Schlummer
verdeckungszustandsmaschine 627 empfängt ein ADS#-Signal 308, das an
gibt, ob die gegenwärtige Adresse ADDR[31 : 2] gültig ist. BE[7 : 0]#-Signal
605 dient der Kennzeichnung, Freigabe und Entschlüsselung, welche Daten
bytes geschrieben werden, und ist Eingangssignal der Schlummerverdec
kungszustandsmaschine 627. Ein REQ_CONFIG-Signal 321 kommt von einer
Konfigurationszustandsmaschine und zeigt an, wann die aus CS- und
IP-Werten der ISR für die Unterbrechung bestehenden Daten erfolgreich ver
deckt werden.
Die Konfigurationszustandsmaschine verarbeitet unterschiedli
che Funktionen der gesamten Systemsteuerung und ist nicht nur für die
Verdeckungsfunktion bestimmt. Deshalb soll nur die Verdeckungsfunktion
detailliert beschrieben werden.
Verdeckung bedeutet in diesem Zusammenhang das Laden von Wer
ten von Unterbrechungsvektoren vom Datenbus in Verdeckungsregister. Die
Schlummerverdeckungszustandsmaschine 627 weist nach, wenn Unterbre
chungsvektoradressen geladen oder verändert werden, und bewirkt, daß die
Konfigurationszustandsmaschine mit Zugriff auf TRAP_ADDR_UPPER 607 oder
TRAP_ADDR_LOWER 320 ein höheres oder niedrigeres Doppelwort des Daten
busses lädt. Da die verdeckten Daten 32 bits haben, bestehend aus einem
16-bit-CS-Wert und 16-bit-IP-Wert, werden vier 8-bit-Zwischenspeicher
verwendet, um die die verdeckten Adressen bildenden Daten zwischenzu
speichern. Dies ermöglicht der Logik, die CS- und IP-Werte zu verdecken,
auch wenn sie als ein Byte geschrieben werden.
Die Konfigurationszustandsmaschine speichert die verdeckten
Adreßwerte in CONFIG_SHADOW_REG[31 : 0] 326 und kann in 8-bit-Blöcken Ein
gangssignale an jeden von vier Zwischenspeichern 610, 617, 618 und 619
geben. CONFIG_SHADOW_REG[7 : 0] 628 ist Eingang für einen Zwischenspeicher
610 und enthält die am wenigstens signifikanten 8 bits der verdeckten
Adresse. IPL_WREN-Signal 609 zeigt über Entschlüsselung der Bytefreigabe
BE[7 : 0]# an, wenn es einen Schreibvorgang des Niedrigbytewertes des Be
fehlszeigers (IP) verdeckter Adressen gibt, und taktet CONFIG_SHADOW_
REG[15 : 8] 628 durch den Q-Ausgang vom Zwischenspeicher 610. CONFIG_SHA-
DOW_REG[15 : 8] 611 ist Eingang für einen Zwischenspeicher 617 und ent
hält die nächstsignifikantesten 8 bits der verdeckten Adresse.
IPH_WREN-Signal 612 zeigt über Entschlüsselung der Bytefreigabe BE[7 : 0]# an, ob
es einen Schreibvorgang des Hochbytewertes des Befehlszeigers (IP) ver
deckter Adressen gibt, und taktet CONFIG_SHADOW_REG[15 : 8] 611 durch den
Q-Ausgang von Zwischenspeicher 617. POD_IP_REG[15 : 0]-Signal 328 stellt
mit verdeckten Adressen verbundene Niedrigbyte- und Hochbytewerte des
Befehlszeigers dar und ist Eingang für einen Addierer 621.
CONFIG_SHADOW_REG[23 : 16] 613 ist Eingang für Zwischenspeicher
618 und enthält die nächstsignifikantesten bits der verdeckten Adresse.
CSL_WREN-Signal 614 zeigt an, ob es einen Schreibvorgang des Niedrigby
tewertes verdeckter Adressen des Codesegments (CS) gibt, und taktet CON-
FIG_SHADOW_REG[23 : 16] 613 durch den Q-Ausgang vom Zwischenspeicher 618.
CONFIG_SHADOW_REG[31 : 24] 615 ist Eingang für Zwischenspeicher 619 und
enthält die nächstsignifikantesten acht Bits der verdeckten Adresse.
CSH-WREN-Signal 616 zeigt an, wenn es einen Schreibvorgang des Hochbyte
wertes verdeckter Adressen des Codesegments (CS) gibt, und taktet CON
FIG_SHADOW_REG[31 : 24] 615 durch den Q-Ausgang von Zwischenspeicher 619.
POD_CS_REG[15 : 0]-Signal 327 stellt mit verdeckten Adressen verbundene
CS-Niedrigbyte- und -Hochbytewerte dar und ist Eingang an einen Addierer
621. Wenn Unterbrechungsadressen verdeckt werden sollen, können TRAP_
ADDR_LOWER 320 und TRAP_ADDR_UPPER 607 Ausgänge von Zuständen 803 und
804 bzw. in die in Fig. 7 gezeigte Schlummerverdeckungszustandsmaschine
an eine Konfigurationszustandsmaschine sein, die das niedrigere oder hö
here Doppelwort des Datenbusses in CONFIG_SHADOW_REG[31 : 0] festhält.
Eine vollständig verdeckte Adresse SHADOWED_ADDR[31 : 0] 630 ist
Ausgang von Addierer und Multiplizierer 621 und Eingang an Gatter 622.
ADDR[31 : 3] 620 ist ebenfalls Eingang an Gatter 622. Wenn ADDR[31 : 3] 620
und die verdeckte Adresse übereinstimmen, kann ein ADDR_MATCH-Signal 624
erzeugt werden und Ausgang von Gatter 622 an Gatter 623 sein. M/IO#-Si
gnal 603, das angibt, ob die gegenwärtige Adresse eine Speicheradresse
oder eine IO-Adresse ist, kann ebenfalls Eingang des Gatters 623 sein.
W/R#-Signal 330, das angibt, ob der gegenwärtige Vorgang ein Lese- oder
Schreibvorgang ist, und D/C#-Signal 307, das einen Daten- oder Codezy
klus anzeigt, können ebenfalls Eingang an Gatter 623 sein. PRFTCH_
DET#-Signal 305, das angibt, ob die gegenwärtige Adresse Teil einer Pre
fetch-Zeile ist, kann Ausgang des Prefetch-Detektorblocks 320 und auch
Eingang an Gatter 623 sein. Falls die Eingangssignale in korrekt aktivem
Zustand sind, kann NAP_DETECT-Signal 205 Ausgang von Gatter 623 sein und
triggert einen Schlummerzustand.
Vorabgerufene Adressen werden vorzugsweise mit 32 Bytes auf
einmal vorabgerufen. Eine Ausführungsform mit mehr oder weniger als 32
vorabgerufenen Bytes und einem Detektor, der nachweist, ob programmierte
Adressen Teil einer Prefetch-Zeile sind, ist ebenfalls möglich. Da die
am wenigsten signifikanten drei Adreßzeilen nicht gelesen werden, steht
jede Abweichung um 1 zwischen den Adressen für Abweichungen um 8 im he
xadezimalen Wert der entschlüsselten Adressen. Ein aktiv niedriges
PRFTCH_DET#-Signal 305 kann durch den Prefetch-Detektorschaltkreis 320
erzeugt werden, wenn Adressen Teil einer Prefetch-Zeile sind. Bei Pre
fetch-Zeilen kann der Fall eintreten, daß gegenwärtige Adressen von vor
herigen um den Wert 1 abweichen, was darauf hinweist, daß die Adressen
von aufeinanderfolgenden Orten im Speicher ausgelesen worden sind.
Vom Ruhezustand 00, 350 von Fig. 4a ausgehend, kann das Auf
treten eines CPUCLK-Signals 340, kennzeichnend für einen Taktübergang in
Verbindung mit einem aktiv niedrigen, eine gültige Adresse anzeigenden
ADS#-Signal 308, einen Zustandsmaschinenübergang zum CLK1-Zustand 01,
370 veranlassen. Im CLK1-Zustand 01, 370 kann eine gegenwärtige Adres
senübereinstimmung mit der vorherigen oder vorabgerufenen Adresse ver
glichen werden. Wenn die gegenwärtige Adresse dem Wert von 1 plus der
vorherigen Adresse entspricht, kann ein auf einen Prefetch-Nachweis hin
weisendes Signal abgegeben werden. Vom CLK1-Zustand 01, 370 kann das
das Auftreten des CPUCLK-Signals 340 einen Zustandsmaschinenübergang zum
CLK2-Zustand 10, 360 bewirken. Im CLK2-Zustand 10, 360 kann die gegen
wärtige Adresse zur Verwendung in aufeinanderfolgenden Zustandsmaschi
nenzyklen in den Prefetch-Detektorschaltkreis 320 getaktet werden. Ein
abschließender Übergang des CPUCLK-Signals 340 kann bewirken, daß der
Maschinenzustand zurück zum Ruhezustand 00, 350 geht.
ADDR[31 : 3] 301 ist Eingangssignal des D-Eingangs eines Zwi
schenspeichers 374 gemäß Fig. 4b und Eingangssignal eines logischen Gat
ters 372. CPUCLK 340 ist Eingangssignal des Freigabeeingangs eines Zwi
schenspeichers 373 und STATE 390 ist Eingangssignal des D-Eingangs vom
Zwischenspeicher 373. Flipflop 373 kann ein ADDR_LATCH-Signal 309 bil
den, wenn STATE 390 mit CLK2-Signal 360 übereinstimmt. Das ADDR_LATCH-Si
gnal 309 kann Eingangssignal für den Freigabeeingang von Zwischenspei
cher 374 sein und ermöglichen, daß der gegenwärtige Wert von ADDR[31 : 3]
301 zwischengespeichert wird und Ausgangssignal für den Q-Ausgang vom
Auffangsspeicher 374 bei ADDR_LATCHED[31 : 3] 391 ist. Sobald ADDR[31 : 3]
301 gespeichert und Ausgang des Zwischenspeichers 374 bei ADDR_LAT
CHED[31 : 3] 391 ist, kann eine Verzögerung um einen Taktzyklus zwischen
dem gegenwärtigen Wert von ADDR[31 : 3] 301 und dem im vorherigen Zyklus
gespeicherten Wert von ADDR_LATCHED[31 : 3] 391 auftreten. Zu ADDR_LAT
CHED[31 : 3] 391 im Block 375 kann der Wert 1 addiert und PREV_ADDR[31 : 3]
307 erzeugt werden und an das logische Gatter 372 ausgegeben werden.
Das logische Produkt von PREV_ADDR[31 : 3]+1 307 und ADDR[31 : 3] 301 kann
Ausgang zum logischen Gatter 371 sein. STATE 390 kann auch auf das lo
gische Gatter 371 gegeben werden, und das logische Produkt kann auf
den D-Eingang eines Zwischenspeichers 370 gegeben werden. Wenn STATE
390 den Wert von CLK1 hat und PREV_ADDR[31 : 3]+1 307 mit ADDR[31 : 3] 301
übereinstimmt, kann der Zwischenspeicher 370 PRFTCH_DET# 305 bilden, wo
durch angezeigt wird, daß die Adresse ADDR[31 : 3] 301 Teil einer Pre
fetch-Zeile ist. Da die in den Prefetch-Zeilen abgerufenen Adressen se
quentiell sind, so daß sich eine Adresse von der nächsten um den Wert 1
unterscheidet, kann ein Vergleich, ob die gegenwärtige Adresse
ADDR[31 : 3] 301 mit PREV_ADDR[31 : 3]+1 307 übereinstimmt, anzeigen, daß
ADDR[31 : 3] 301 eine vorabgerufene Adresse ist. Es könnte unerwünscht
sein, einen Schlummerzustand auf eine vorabgerufene Adresse zu triggern,
die eine Unterbrechungsadresse sein könnte.
Entsprechend dem Zeitdiagramm von Fig. 4c, welches die Zeit
steuerung der in Fig. 4b gezeigten Prefetch-Detektorzustandsmaschine
320 darstellt, kann CPUCLK 340 verwendet werden, um die Schalt
kreisfunktion mit der Prozessorfunktion zu synchronisieren. Das
ADS#-Signal 308 kann verwendet werden um anzuzeigen, daß Daten auf dem
Systembus gültige Adressen darstellen. STATE 390 kann verwendet werden,
um die Funktion der Prefetch-Detektorzustandsmaschine 320 während
aufeinanderfolgender Zyklen von CPUCLK 340 voranzuschalten. ADDR[31 : 0]
301f kann eine gegenwärtige vom Systembus gelesene Adresse darstellen
und innerhalb des in Fig. 4b dargestellten Prefetch-Detektorschalt
kreises verwendet werden. Das ADDR_LATCH-Signal 309 kann verwendet
werden, um Bits [31 : 3] der gegenwärtigen Adresse ADDR[31 : 0] 301f im
Zwischenspeicher 374 von Fig. 4b zu speichern. Sobald Bits [31 : 3] der
gegenwärtigen Adresse ADDR_LATCHED[31 : 0] 391f gespeichert ist, wird der
Wert 1 addiert. Adresse PREV_ADDR[31 : 3]+1 307 entspricht Adresse ADDR_
LATCHED[31 : 3] 391 plus 1 und wird mit der aktuellen Adresse ADDR[31 : 0]
301 verglichen. Wenn ADDR_LATCHED[31 : 3] 391 und die gegenwärtige Adres
se ADDR[31 : 0] 301 übereinstimmen, wird angenommen, daß der Prozessor
Vorheriges abruft, und das Signal PRFTCH_DET# 305 wird erzeugt. Wenn
keine Übereinstimmung vorliegt, wird das Signal PRFTCH_DET# 305 auf 1
gesetzt oder durch die Prefetch-Detektor-Zustandsmaschine 320 von Fig. 4b
für einen Takt beendet.
CPUCLK 340 kann gemäß Fig. 5 vom Hauptprozessortakt herrühren
und verwendet werden, um die Funktion der Schlummerverdeckungszustands
maschine und der Konfigurationszustandsmaschine zu synchronisieren. ADS#
308 zeigt an, ob die gegenwärtige Adresse eine gültige Adresse ist. Ein
Schlummerzustand kann nur während einer gültigen Adresse getriggert wer
den. W/R#-Signal 330 zeigt an, ob ein Vorgang ein Lese- oder ein
Schreibvorgang ist. ADDR[31 : 0] 301 ist die gegenwärtige Adresse. NAP_
SHADOW_STATE 390 ist der gegenwärtige Zustand der Schlummerverdeckungs
zustandsmaschine. TRAP_ADDRESS_LOWER-Signal 320 zeigt an, ob das niedri
gere Doppelwort die verdeckte Adresse enthält. Ein in Fig. 5 nicht ge
zeigtes TRAP_ADDRESS_UPPER-Signal 607 zeigt an, ob das obere Doppelwort
eine verdeckte Adresse enthält. Im Beispiel von Fig. 5 ist TRAP_ADDRESS_
LOWER 320 als aktiv dargestellt, so daß TRAP_ADDRESS_UPPER 607 niedrig
wäre. Der Übergang eines REQ_CONFIG-Signals 321 von 1 nach 0 zeigt an,
ob die Adresse vom Datenbus in CONFIG_SHADOW_REG[31 : 0] 326 geladen wur
de. Bei Empfang eines Übergangs des REQ_CONFIG-Signals 321 von 1 nach 0
kann die Schlummerverdeckungszustandsmaschine 627 von Fig. 3 geeignete
Kontrollsignale erzeugen, um CS- und IP-Werte für eine zu verdeckende
gegenwärtige Adresse zu bilden.
INDIRECT_VECTOR_MATCH 606 wird aktiv, wenn die gegenwärtige
Adresse mit einer festgelegten oder programmierten Software-Unterbre
chungsvektoradresse, z. B. 58H für INT16H, übereinstimmt. BE[3 : 0]#-Signa
le 720 sind zwischengespeicherte Versionen von BE[7 : 0]# und enthalten
BE[7 : 4]#, wenn das höhere Doppelwort geschrieben wird, oder BE[3 : 0]#,
wenn das niedrigere Doppelwort geschrieben wird. DATA[63 : 0] 730 sind Da
tenbussignale, welche in der vorliegenden Ausführungsform ein 64-bit-Bus
sind. Der Datenbus enthält die CS- und IP-Werte der verdeckten Unterbre
chung, deren Vektor geschrieben wurde. CONFIG_SHADOW_REG[31 : 0] 326 ent
hält das höhere oder niedrigere Doppelwort von Daten, welche verdeckt
worden sind. Im Zeitdiagramm von Fig. 5 ist TRAP_ADDRESS_LOWER 320 als
aktiv dargestellt, so daß das niedrigere Doppelwort des 64-bit-Datenbus
ses in CONFIG_SHADOW_REG[31 : 0] 326 festgehalten ist und 4321CDABH ent
hält. Ein Nachweis eines Übergangs von REG_CONFIG 321 von 1 nach 0 be
nutzt die Schlummerverdeckungszustandsmaschine das zwischengespeicherte
BE[3 : 0]# 720, um die gültigen Bytes der aktuellen Daten in geeignete By
tes eines CS-Registers 327 bzw. IP-Registers 328 zu schreiben.
In diesem Beispiel entspricht BE[3 : 0]# 1100 (binär), das an
zeigt, daß nur die unteren zwei Bytes der Daten gültig sind, so daß die
niedrigen und hohen Bytes des IP gespeichert werden. Gemäß Fig. 5
schreibt der nächste Zyklus an die Vektoradresse mit BE[3 : 0]# gleich
0011 (binär), das anzeigt, daß die höheren zwei Bytes des Doppelwortes
der in CONFIG_SHADOW_REG[31 : 0] 326 festgehaltenen Daten gültig sind.
Diese bilden die höheren und niedrigeren Bytes des CS. SHADOW_ADDR[31 : 0]
630 wird gebildet durch Multiplikation des verdeckten CS-Wertes mit 16
und Addition desselben zum IP-Wert unter Anfügen von Nullen an die bits
31 bis 20.
Wenn die aktuelle Adresse in ADDR[31 : 0] einen Wert enthält,
der mit SHADOW_ADDR[31 : 9] 630 von Fig. 5 übereinstimmt, wird gemäß Fig.
6 ein IND_ADDR_MATCH-Signal 910 gesetzt. Wenn W/R#-Signal 330 auf 0 ist,
das ein Lesen des Speichers anzeigt, und wenn D/C#-Signal 397 auf 0 ist,
das das Lesen eines Codes anzeigt, und wenn PRFTCH_DET#-Signal 305 inak
tiv ist, das anzeigt, daß die aktuelle Adresse kein Teil eines Prefetch
war, wird das NAP_DETECT-Signal 333 gesetzt. Das NAP_DETECT-Signal 333
setzt einen NAP_ACTIVE-Zwischenspeicher 207, der den Schlummerzustand
bis zu einer Schlummerzeitabschaltung oder primärer oder sekundärer Ak
tivität aktiv hält. Während eines Schlummerzustands kann ein Taktstopp
signal 208 an die CPU mit einem programmierten Arbeitszyklus gedrosselt
werden, wenn Drosselung freigegeben ist, oder bei freigegebenem LESSSTOP
angesteuert bleibt.
Vom Ruhezustand 801 in Fig. 7 ausgehend kann ein Übergang von
CPUCLK 340 in Verbindung mit einem niedrigen ADS#-Signal 308 einen Zu
standsübergang in den CHECK_ADDRESS-Zustand 802 bewirken. Von CHECK_AD
DRESS-Zustand 802 ausgehend kann ein Übergang eines CPUCLK 340 in Ver
bindung mit einem niedrigen ANY_ADDR_MATCH-Signal 815 einen Übergang zu
rück zum Ruhezustand 801 bewirken. Auch vom CHECK_ADDRESS-Zustand 802
ausgehend kann ein Übergang von CPUCLK 340 in Verbindung mit einem hohen
ADDR|2|-Signal und einem als Eingang 811 bezeichneten ANY_ADDR_MATCH-Si
gnal 815 einen Zustandsübergang in einen WAIT4_REG_UPPER-Zustand 804 be
wirken. Vom WAIT4_REQ_UPPER-Zustand 804 ausgehend kann ein hohes REQ_
CONFIG-Signal 321 in Verbindung mit CPUCLK 340 einen Übergang in einen
REQ_CONFIG_HI-Zustand 805 bewirken.
Von einem CHECK_ADDRESS-Zustand 802 ausgehend kann ein Über
gang des CPUCLK 340 in Verbindung mit einem niedrigen ADDR|2|-Signal und
einem als Eingang 809 bezeichneten ANY_ADDR_MATCH-Signal einen Zustands
übergang in einen WAIT4_REQ_LOWER-Zustand 803 bewirken. Vom WAIT4_REG_
LOWER-Zustand 803 ausgehend kann ein hohes REQ_CONFIG-Signal 321 in Ver
bindung mit CPUCLK 340 einen Übergang in einen RG_CONFIG_HI-Zustand 805
bewirken.
Von einem REQ_CONFIG_HI-Zustand 805 ausgehend kann ein Über
gang von CPUCLK 340 in Verbindung mit einem niedrigen REQ_CONFIG 321 ei
nen Übergang zu einem REQ_CONFIG_LOWER-Zustand 806 bewirken. Ein weite
rer Übergang von CPUCLK 340 kann einen abschließenden Übergang zurück
zum Ruhezustand 801 bewirken.
In der bevorzugten Ausführungsform können primäre und sekundä
re Aktivitätssignale dazu verwendet werden, um ein Schlummern zu trig
gern oder zu beenden. Primäre Aktivität kann definiert werden als wich
tige Systemaktivität, bei der Systemquellen zugänglich sind. Solange sie
nicht verdeckt ist, kann jede primäre Aktivität das System in den Zu
stand völliger Erwachung bringen. Primäre Aktivität kann auch Leistungs
verwaltungstimer zurücksetzen. Fig. 8 stellt eine primäre Aktivitätsre
gisterbank 402 dar, die an einen Aktivitätsüberwachungskreis 404 und
unter Miteinbeziehung von PRM#0 durch PRM#5 gekoppelt ist. Jedes Lesen
oder Schreiben, welches auf Adressen zugreift, die den in der primären
Aktivitätsregisterbank 402 gespeicherten entsprechen, kann die Bildung
primärer Aktivität durch ein P/A-Signal 405 triggern. Zugriffe auf Vi
deo, Plattenantriebe oder irgendwelche andere Einrichtungen der Re
gisterbank 401 ebenso wie das Auftreten irgendwelcher unverdeckter Un
terbrechungsaufforderungen wie in einem IRQ-Block 407 können die
Erzeugung des P/A-Signals 405 triggern.
Sekundäre Aktivität kann als Anforderung an ein kurzes Maß an
Bedienungszeit während verschiedener Ebenen von Inaktivität definiert
werden. Solange sie nicht verdeckt ist, kann sekundäre Aktivität bewir
ken, daß sekundäre Ereignisse mit voller Geschwindigkeit durchgeführt
werden, ohne daß Drosselung möglich ist. Wenn ein sekundäres Ereignis
abgearbeitet ist, kann das System zum jeweiligen Zustand zurückkehren,
indem es sich vor dem Ereignis der sekundären Aktivität befand. Sekundä
re Ereignisse 403 umfassen EXCACTO, SWITCH, RING, WAKED und 1 und SMI#.
Diese Ereignisse werden beschrieben in VESUVIUS-LS PCI System Controller
Advance Data Book, Version o.6, März 1995, PICOPOWER a Cirrus Logic Com
pany, Seiten 54 bis 67.
Zusätzlich zu sekundären Ereignissen 403 kann sekundäre Akti
vität durch einen IRQ-Block 408 getriggert werden. Systemverwaltungsun
terbrechungen SMI# von sekundären Ereignissen 403 können ermöglichen,
daß Aktivität programmiert wird, das S/A-Signal 406, kennzeichnend für
sekundäre Aktivität, zu triggern. Mindestens sechs Gerätetimer und min
destens drei Zustandstimer können auch das S/A-Signal 406 durch die Bil
dung eines SMI triggern. Maximale Flexibilität läßt sich durch die Fä
higkeit erreichen, virtuell jedes Ereignis als primäre oder sekundäre
Aktivität zu programmieren, um Leistungsverwaltungsziele zu erreichen.
Sobald sekundäre Ereignisse 403 oder der IRQ-Block 408 sekundäre Aktivi
tät triggern, kann das S/A-Signal 406 gebildet werden.
Gemäß Fig. 9 enthält ein Taktstopp-Kontrollblock 500 Elemente,
die die Bildung eines Taktstoppsignals STPCLK 505 steuern. Die
Drosselung eines periodischen Steuerregisters CTPC 501 speichert einen
der Drosselungsperiode entsprechenden Wert. Eine Drosselungsperiode kann
ein Zeitintervall sein, während dem das Taktstoppsignal 505 entsprechend
einem Arbeitszyklus abgegeben wird, dessen Wert sowohl in ein Register
programmiert als auch aus diesem gelesen werden kann. Ein Arbeitszy
klusauswahlblock 502 kontrolliert den Arbeitszyklus des STCLK 505,
wenn er während einer Drosselungsperiode angewandt wird. Eine MORE
STOP-Anforderung 503 und eine LESSSTOP-Anforderung 504 können Ein
gangssignale von Anwendungen oder Arbeitssystem-Software sein, um der CPU
anzuzeigen, daß ein höherer oder niedrigerer Pegel von Leistungseinspa
rung gewünscht wird. Die LESSSTOP-Anforderung 405 kann den Schlafpe
gel der CPU über eine Veränderung des Arbeitszyklus des Taktdrosse
lungskreises verändern, während der CPU-Takt weiterläuft. Die MORE
STOP-Anforderung 503 kann steuern, ob der CPU-Takt während einer
Drosselungsperiode oder wann immer STPCLK angesprochen wird, völlig
stoppt.
Im Gegensatz zur MORESTOP-Anforderung 503 kann der CPU-Takt
während der LESSSTOP-Anforderung 504 weiterlaufen. Bei laufendem
CPU-Takt kann das System sofort in den Verarbeitungszustand zurückkehren,
sobald STPCLK 505 entfernt wird. Die MORESTOP-Anforderung 503 stoppt den
CPU-Takt, und bei Entfernung von STPCLK kann eine Verzögerungszeit von
bis zu 1 ms erforderlich sein, um den CPU-Takt zu resynchronisieren und
die CPU PLL zu stabilisieren.
Um eine korrekte Verdeckung der Unterbrechungsvektoradresse in
einem System sicherzustellen, welches L1 (Level 1)- oder L2 (Level
2)-Cachespeicher enthält, muß die Software dafür sorgen, daß bei Auftre
ten von Schreibvorgängen an die CS- und IP-Werte der Tafel die durch
CS:IP gezeigte Adresse nicht schon im Cachespeicher L1 oder L2 vorliegt.
Wenn sich die Zeile schon im Cachespeicher befindet, kann die Adresse
(CS:IP), welche den Schlummernachweis triggert, nicht von außen erkannt
werden, so daß ein Schlummertriggern nicht auftreten kann.
Die Vektortafeladresse (INT*4) kann nicht im Cachespeicher ab
legbar sein, so daß jeder Schreibvorgang an die Vektortafeladresse als
Verdeckung der geladenen Daten nachgewiesen wird. Da jedoch Anwendungen
zu jeder Zeit neue Werte von CS:IP an die Vektortafel schreiben können,
muß die Software dafür sorgen, daß die Zeile, welche die verdeckten
CS:IP enthält, aus dem Cachespeicher entfernt und für ungültig erklärt
wird. In einem System auf Cachespeicherbasis können diese Zeilen bereits
im Cachespeicher existieren, und ein Zugriff auf diese Adresse kann
nicht nachgewiesen werden, so daß eine Schlummertriggerung verhindert
wird.
Die Verwendung verdeckter Adressen unter Einschluß solcher
Software-Unterbrechungen oder Ereignisse, die als kennzeichnend oder in
aktiv bekannt sind, kann auf jede feste Unterbrechungszahl oder auf je
des nachweisbare Ereignis angewandt werden. Anstelle eines integrierten
Schaltkreises können auch mehrere oder ein anderes Computersystem vor
handen sein.
Claims (20)
1. Systemsteuerung für ein Computersystem mit einer Einrich
tung zur Leistungseinsparung, dadurch gekennzeichnet, daß die Einrich
tung einen Schlummertriggerungsschaltkreis zur Erzeugung eines Schlum
mersignals bei Auftreten eines vorbestimmten Schlummertriggerungsereig
nisses mit
einer Detektoreinrichtung (220) zum Nachweis eines Zugriffs auf mindestens eine verdeckte Adresse, die Systeminaktivität anzeigt, und
einer Speichereinrichtung zur Speicherung von mindestens einer verdeckten Adresse, die Systeminaktivität anzeigt, und
einem Adressenkomparator zum Vergleich von der mindestens einen verdeckten Adresse (630) mit einem in mindestens einem Register programmierten Wert, und zur Ausgabe eines Schlummersignals entsprechend dem Ergebnis des Vergleichs aufweist.
einer Detektoreinrichtung (220) zum Nachweis eines Zugriffs auf mindestens eine verdeckte Adresse, die Systeminaktivität anzeigt, und
einer Speichereinrichtung zur Speicherung von mindestens einer verdeckten Adresse, die Systeminaktivität anzeigt, und
einem Adressenkomparator zum Vergleich von der mindestens einen verdeckten Adresse (630) mit einem in mindestens einem Register programmierten Wert, und zur Ausgabe eines Schlummersignals entsprechend dem Ergebnis des Vergleichs aufweist.
2. Systemsteuerung nach Anspruch 1, dadurch gekennzeichnet,
daß Signale, welche eine gegenwärtige Adresse enthalten, primäre und se
kundäre Aktivität anzeigende Signale (204) und mindestens ein Schlummer
zeitabschaltungssignal (206) zur Erzeugung eines Taktstoppsignals (208)
verarbeitbar sind.
3. Systemsteuerung nach Anspruch 1 oder 2, dadurch gekenn
zeichnet, daß der Schlummertriggerkreis eine logische Einrichtung um
faßt, die mit wenigstens einem Register zum Speichern einer verdeckten
Adresse, wenigstens einer Empfangseinrichtung zum Einfangen der verdeck
ten Adresse und dem Adressenkomparator gekoppelt ist, um ein Schlummer
signal zu erzeugen, wenn die derzeitige Adresse mit einer in dem wenig
stens einen Register gespeicherten, verdeckten Adresse übereinstimmt,
und die in dem wenigstens einen Register gespeicherte verdeckte Adresse,
die in der wenigstens einen Einfangeinrichtung eingefangen ist, auf den
neuesten Stand zu bringen.
4. Systemsteuerung nach einem der Ansprüche 1 bis 3, da
durch gekennzeichnet, daß
ein Prefetch-Detektorschaltkreis (320) zum Nachweis eines Pro zessor-Prefetch-Zyklus und zur Erzeugung eines Prefetch-Detektorsignals (305) als Antwort auf einen nachgewiesenen Prefetch-Zyklus sowie
ein Drosselungsschaltkreis (500) vorgesehen ist, der mit dem Schlummertriggerungsschaltkreis gekoppelt und durch diesen aktivierbar sowie an den Prefetch-Detektorschaltkreis (320) zur kontrollierten An wendung eines Taktstoppsignals (505) entsprechend einem vorbestimmten Arbeitszyklus während einer vorbestimmten Drosselungsperiode gekoppelt und durch diesen blockierbar ist.
ein Prefetch-Detektorschaltkreis (320) zum Nachweis eines Pro zessor-Prefetch-Zyklus und zur Erzeugung eines Prefetch-Detektorsignals (305) als Antwort auf einen nachgewiesenen Prefetch-Zyklus sowie
ein Drosselungsschaltkreis (500) vorgesehen ist, der mit dem Schlummertriggerungsschaltkreis gekoppelt und durch diesen aktivierbar sowie an den Prefetch-Detektorschaltkreis (320) zur kontrollierten An wendung eines Taktstoppsignals (505) entsprechend einem vorbestimmten Arbeitszyklus während einer vorbestimmten Drosselungsperiode gekoppelt und durch diesen blockierbar ist.
5. Systemsteuerung nach Anspruch 4, dadurch gekennzeichnet,
daß der Prefetch-Detektorschaltkreis eine erste Einrichtung zum Empfang
und zur Speicherung vorher abgerufener Adressen und eine zweite, mit
der ersten gekoppelte Einrichtung zum Adressenvergleich umfaßt, wobei
letztere eine dritte Einrichtung zum Nachweis, ob die gegenwärtige
Adresse eine verdeckte Adresse ist, und eine vierte Einrichtung zum
Nachweis, ob die gegenwärtige Adresse sequentiell zu den vorher abgeru
fenen Adressen ist, umfaßt.
6. Systemsteuerung nach Anspruch 5, dadurch gekennzeichnet,
daß die dritte Einrichtung ein Register enthält, welches an den Adres
senkomparator zur Speicherung eines der verdeckten Adresse entspre
chenden Wertes gekoppelt ist.
7. Systemsteuereinheit aus Anspruch 5 oder 6, dadurch gekenn
zeichnet, daß die vierte Einrichtung des Prefetch-Detektorschaltkreises
(320) ein Register zum Speichern einer vorherigen Adresse und eine an
das Register gekoppelte Einrichtung zum Vergleich einer gegenwärtigen
Adresse (301) mit der vorherigen Adresse (307) und zum Erzeugen eines
Prefetch-Detektorsignals (305) umfaßt, falls die vorherige Adresse sich
von der gegenwärtigen Adresse um den Wert 1 unterscheidet.
8. Systemsteuerung nach einem der Ansprüche 4 bis 7, dadurch
gekennzeichnet, daß der Drosselungsschaltkreis (500) ein erstes Register
(501) zur Speicherung eines ersten Wertes entsprechend der Dauer der
Drosselungsperiode, ein zweites Register (502) zur Speicherung eines
zweiten Wertes entsprechend einem Arbeitszyklus und eine Logik enthält,
die an die erste und zweite Registereinrichtung gekoppelt ist, und die
den ersten und zweiten Wert und ein Schlummersignal empfängt, den Dros
selungsschaltkreis freigibt und entsprechend dem ersten und zweiten Wert
als Antwort auf das Schlummersignal ein Taktstoppsignal (505) abgibt.
9. Systemsteuerung nach Anspruch 8, dadurch gekennzeichnet,
daß der Drosselungsschaltkreis (500)
eine Einrichtung zum Empfang eines LESSSTOP-Signals (504), welches auf die Aufforderung zur Verminderung der Leistungseinsparung in der CPU hinweist, und
eine auf das LESSSTOP-Signal antwortende Einrichtung zur Ve ränderung des Arbeitszyklus des Taktstoppsignals (505) aufweist.
eine Einrichtung zum Empfang eines LESSSTOP-Signals (504), welches auf die Aufforderung zur Verminderung der Leistungseinsparung in der CPU hinweist, und
eine auf das LESSSTOP-Signal antwortende Einrichtung zur Ve ränderung des Arbeitszyklus des Taktstoppsignals (505) aufweist.
10. Verfahren zur Leistungseinsparung in einem Computersy
stem mit einer Systemsteuerung, dadurch gekennzeichnet, daß ein Takt
stoppsignal kontrolliert angewandt wird, indem ein Schlummertriggerungs
ereignis im Computersystem überprüft und ein Schlummersignal akti
viert, das Schlummersignal während eines Prozessor-Prefetch-Zyklus
blockiert, primäre und sekundäre Aktivität überprüft und das Schlum
mersignal, falls primäre und sekundäre Aktivität vorliegen, blockiert
und das Taktstoppsignal während einer Drosselungsperiode entsprechend
dem programmierbaren Arbeitszyklus, während das Schlummersignal ak
tiv ist, abgegeben wird.
11. Verfahren nach Anspruch 10, dadurch gekennzeichnet, daß
zum Nachweis des Schlummertriggerungsereignisses und zur Erzeugung
des Schlummersignals ein Wert in einem einer verdeckten Adresse ent
sprechenden Register gespeichert wird, die verdeckte Adresse erfaßt
und mit der gegenwärtigen Adresse verglichen wird, ein Schlummersignal
erzeugt wird, falls die gegenwärtige Adresse mit dem im Register gespei
cherten Wert übereinstimmt, und die verdeckte Adresse durch den Nach
weis eines Schreibens an einen Unterbrechungsvektor aktualisiert wird.
12. Verfahren nach Anspruch 10 oder 11, dadurch gekennzeich
net, daß zum Blockieren des Schlummersignals während eines Prozes
sor-Prefetch-Zyklus ein Wert in einem Register entsprechend der vor
herigen Adresse gespeichert, mit der gegenwärtigen Adresse verglichen
und ein Prefetch-Detektorsignal erzeugt wird, wenn die gegenwärtige
Adresse von der vorherigen Adresse um den Wert 1 abweicht.
13. Verfahren nach einem der Ansprüche 10 bis 12, dadurch
gekennzeichnet, daß zum Nachweis primärer und sekundärer Aktivität
und zum Blockieren des Schlummersignals bei Vorhandensein von primärer
und sekundärer Aktivität mindestens ein Wert in dem ersten von minde
stens einem Register für die primäre Aktivität (402) gespeichert, min
destens ein Wert im zweiten von mindestens einem Register für die se
kundäre Aktivität (403) gespeichert, primäre Aktivität, wenn der Wert
des ersten von mindestens einem Register mit der gegenwärtigen Aktivi
tät übereinstimmt, überprüft, sekundäre Aktivität, wenn der Wert des
zweiten von mindestens einem Register mit der gegenwärtigen Aktivität
übereinstimmt, überprüft, das Schlummersignal, wenn primäre Aktivität
nachgewiesen wurde, blockiert, und das Schlummersignal, wenn sekundäre
Aktivität nachgewiesen wurde, blockiert wird.
14. Verfahren nach einem der Ansprüche 10 bis 12, dadurch
gekennzeichnet, daß zum Nachweis primärer und sekundärer Aktivität
und zum Blockieren des Schlummersignals bei Auftreten eines Schlummer
zeitabschaltungssignals mindestens ein Wert in dem ersten von minde
stens einem Register für die primäre Aktivität (402) gespeichert, min
destens ein Wert im zweiten von mindestens einem Register für die se
kundäre Aktivität (403) gespeichert, primäre Aktivität, wenn der Wert
des ersten von mindestens einem Register mit der gegenwärtigen Aktivi
tät übereinstimmt, überprüft, sekundäre Aktivität, wenn der Wert des
zweiten von mindestens einem Register mit der gegenwärtigen Aktivität
übereinstimmt, überprüft, das Schlummersignal, wenn primäre Aktivität
nachgewiesen wurde, blockiert, und das Schlummersignal, wenn sekundäre
Aktivität nachgewiesen wurde, blockiert wird.
15. Verfahren nach Anspruch 13 oder 14, dadurch gekennzeich
net, daß zum Nachweis von primärer Aktivität bei Übereinstimmung des
Wertes des ersten mindestens einen Registers (403) mit der gegenwärtigen
Aktivität ein Wert im ersten mindestens einen Register, wobei der Wert
aus mindestens einer Adresse besteht, und ein Hardware-Signal gespei
chert werden.
16. Verfahren nach einem der Ansprüche 13 bis 15, dadurch
gekennzeichnet, daß zum Nachweis von sekundärer Aktivität bei Überein
stimmung des Wertes des ersten mindestens einen Registers (403) mit der
gegenwärtigen Aktivität ein Wert im ersten mindestens einen Register,
wobei der Wert aus mindestens einer Adresse besteht, und ein Hardwa
re-Signal gespeichert werden.
17. Verfahren nach einem der Ansprüche 10 bis 16, dadurch ge
kennzeichnet, daß zum Blockieren des Schlummersignals bei Nachweis pri
märer Aktivität ein Signal zur Beendigung des Taktstoppsignals (505) an
den Drosselungsschaltkreis (500) zur Kontrolle der Abgabe eines Takt
stoppsignals im gegenwärtigen Leistungseinsparmodus übertragen wird.
18. Verfahren nach einem der Ansprüche 10 bis 17, dadurch ge
kennzeichnet, daß zum Blockieren des Schlummersignals bei Nachweis von
sekundärer Aktivität ein Signal zur Beendigung des Taktstoppsignals
(505) an den Drosselungsschaltkreis (500) zur Kontrolle der Abgabe eines
Taktstoppsignals im gegenwärtigen Leistungseinsparungsmodus übertragen
wird.
19. Verfahren nach einem Ansprüche 10 bis 18, dadurch ge
kennzeichnet, daß die Anwendung des Taktstoppsignals in einen vorheri
gen Leistungseinsparungsmodus, falls keine sekundäre Aktivität mehr
nachgewiesen wird, wiederhergestellt wird.
20. Verfahren nach einem der Ansprüche 13 bis 18, dadurch ge
kennzeichnet, daß ein programmierbarer und im Register gespeicherter
Zeitabschaltungswert gelesen, der programmierbare Zeitabschaltungswert
mit dem NAP-Zählerausgang verglichen und ein Zeitabschaltungssignal,
falls der programmierbare Zeitabschaltungswert mit dem NAP-Zähleraus
gangswert übereinstimmt, erzeugt wird.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/649,557 US5954819A (en) | 1996-05-17 | 1996-05-17 | Power conservation method and apparatus activated by detecting programmable signals indicative of system inactivity and excluding prefetched signals |
US08/650,355 US5983355A (en) | 1996-05-20 | 1996-05-20 | Power conservation method and apparatus activated by detecting specific fixed interrupt signals indicative of system inactivity and excluding prefetched signals |
US08/665,778 US5983356A (en) | 1996-06-18 | 1996-06-18 | Power conservation method and apparatus activated by detecting shadowed interrupt signals indicative of system inactivity and excluding prefetched signals |
Publications (1)
Publication Number | Publication Date |
---|---|
DE19720805A1 true DE19720805A1 (de) | 1998-03-12 |
Family
ID=27417825
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19720805A Ceased DE19720805A1 (de) | 1996-05-17 | 1997-05-16 | Systemsteuerung für ein Computersystem |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE19720805A1 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020043642A1 (de) | 2018-08-27 | 2020-03-05 | Robert Bosch Gmbh | Verfahren zum betreiben einer recheneinrichtung |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0656579A2 (de) * | 1993-12-01 | 1995-06-07 | Advanced Micro Devices, Inc. | Stromverwaltung für Rechnersystem |
US5511203A (en) * | 1994-02-02 | 1996-04-23 | Advanced Micro Devices | Power management system distinguishing between primary and secondary system activity |
-
1997
- 1997-05-16 DE DE19720805A patent/DE19720805A1/de not_active Ceased
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0656579A2 (de) * | 1993-12-01 | 1995-06-07 | Advanced Micro Devices, Inc. | Stromverwaltung für Rechnersystem |
US5511203A (en) * | 1994-02-02 | 1996-04-23 | Advanced Micro Devices | Power management system distinguishing between primary and secondary system activity |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020043642A1 (de) | 2018-08-27 | 2020-03-05 | Robert Bosch Gmbh | Verfahren zum betreiben einer recheneinrichtung |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69907512T2 (de) | Gerät und verfahren zur automatischen frequenzregelung einer zentralen verarbeitungseinheit | |
DE69733912T2 (de) | Computersystem mit Wiederaufnahmefunktion und Verfahren dafür | |
DE69432514T2 (de) | Leistungssteuerung in einem Computersystem | |
DE4228756C2 (de) | Unterbrechungseinrichtung für ein Mikroprozessorsystem | |
US6438697B2 (en) | Demand-based processor clock frequency switching | |
US7869835B1 (en) | Method and system for pre-loading and executing computer instructions within the cache memory | |
EP0765499B1 (de) | Dynamische prozessorleistung und leitstungsverwaltung in einem rechnersystem | |
DE69532426T2 (de) | Stromverwaltungsarchitektur für Rechnersystem | |
JP4701321B2 (ja) | メモリ管理 | |
US7434072B2 (en) | Integrated circuit power management control | |
DE19882704C2 (de) | Verfahren und Einrichtung für ein Stromversorgungsmanagement | |
US6633940B1 (en) | Method and apparatus for processing interrupts in a computing system | |
DE19720806A1 (de) | Systemsteuerung für ein Computersystem | |
DE102006036301B4 (de) | Energiesparverfahren für einen Computer und Computer zum Durchführen des Verfahrens | |
DE10393396B4 (de) | Schnittstelle und Vorrichtungstreiber zum lokalen Leistungsmanagement sowie Verfahren und Software zu deren Steuerung | |
US5649212A (en) | Information processing system having a floppy disk drive with disk protection during a resume mode | |
CN1639671A (zh) | 具有总线主控设备的计算机系统中的功率降低方法 | |
US5983356A (en) | Power conservation method and apparatus activated by detecting shadowed interrupt signals indicative of system inactivity and excluding prefetched signals | |
DE69320417T3 (de) | Verfahren und Gerät zur Änderung der Taktfrequenz eines Prozessors | |
JP3082175B2 (ja) | 情報処理装置 | |
DE69333542T2 (de) | Verfahren in einem Mikroprozessor mit hardwaregesteuerter Leistungsverwaltung und auswählbaren Eingangs- Ausgangssteuerungssteckerstiften | |
DE19720805A1 (de) | Systemsteuerung für ein Computersystem | |
US4953077A (en) | Accelerated data transfer mechanism using modified clock cycle | |
DE19720804A1 (de) | Systemsteuerung für ein Computersystem | |
DE69332813T2 (de) | Tragbarer Rechner mit zugeordneter Registergruppe und Peripheriesteuerbus zwischen Systembus und Peripheriesteuerung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8131 | Rejection |