DE19720806A1 - Systemsteuerung für ein Computersystem - Google Patents
Systemsteuerung für ein ComputersystemInfo
- Publication number
- DE19720806A1 DE19720806A1 DE19720806A DE19720806A DE19720806A1 DE 19720806 A1 DE19720806 A1 DE 19720806A1 DE 19720806 A DE19720806 A DE 19720806A DE 19720806 A DE19720806 A DE 19720806A DE 19720806 A1 DE19720806 A1 DE 19720806A1
- 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
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
- G06F11/3423—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time where the assessed time is active or idle time
-
- 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
-
- 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
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Power Sources (AREA)
Description
Die Erfindung betrifft eine Systemsteuerung für ein Computer
system nach dem Oberbegriff des Anspruchs 1.
Die starke Zunahme tragbarer Personalcomputer und das zuneh
mende Öffentlichkeitsbewußtsein hinsichtlich der mit der Energieeinspa
rung verbundenen praktischen und umwelttechnischen Probleme kann eine
Leistungseinsparung in Computeranlagen erforderlich machen. Für tragbare
Computer sind Wärmehaushalt und Batterielanglebigkeit für die Bemühungen
zur Antriebsleistungseinsparung von Belang. In Desktop-Computeranlagen
bezieht sich Leistungseinsparung auf Einsparung natürlicher Ressourcen
im Einklang mit Regierungs- und Industriestandards, wie etwa dem EPA-Ener
gy-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über hin
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. Ein Unterbrechungs
anschließen oder die Ersetzung einer Standard-BIOS-Unterbrechungsroutine
durch eine maßgeschneiderte und an anderer Speicheradresse befindliche
ISR kann üblich sein. Eine Anwendung oder eine Betriebssystem-Software
kann an die Unterbrechung anschließen oder die Adresse der maßgeschnei
derten Routine in die Unterbrechungsvektortafel einfügen.
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 Aufforderung
zur sofortigen Abarbeitung vorliegen kann, wenn Aufwachaktivität durch
das Aufwachereignis selbst nachgewiesen wird. Andere Systemereignisse
oder Aktivität können, allerdings für eine kurze Zeitdauer, sofortige
Abarbeitung erfordern, während andere Systemereignisse oder Aktivität
noch Abarbeitung mit Hintergrundcharakter verlangen. Darüber hinaus kön
nen kleine Intervalle zwischen Ereignissen vorliegen, welche zur Akti
vierung 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 in komplett einge
schaltetem 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 den programmierten Schlummertriggerungs
adressen übereinstimmen, triggern die Erzeugung eines Schlummersignals.
Das Schlummersignal kann an eine Taktstoppzustandsmaschine gegeben wer
den, welche ein Taktstoppsignal erzeugt. Das Taktstoppsignal wird zur
Sperrung von Abarbeitung an den Prozessor gegeben. Eine Vielzahl von Mo
duszeitsteuerungen bestimmt, ob das Computersystem in einen nach und
nach niedrigeren Leistungsmodus überführt werden kann. Jede primäre oder
sekundäre Aktivität kann an den Logikschaltkreis gegeben werden, was ei
ne Aufhebung des Schlummersignals in einem von mindestens zwei Moden be
wirkt. Eine Aufhebung des Schlummersignals führt zur Entfernung des
Taktstoppsignals. In bestimmten Fällen wird bei Wegnahme des Taktstopp
signals 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 Prefetch-
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ärerer 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 und einem Un
terbrechungsdienstprogramm.
Fig. 2 zeigt ein Logikdiagramm mit einem Teil des Gesamt
schaltkreises.
Fig. 3a zeigt ein Blockdiagramm mit einem Schlummmer-Detektor
schaltkreis und einem Prefetch-Detektorschaltkreis.
Fig. 3b zeigt ein Zustandsdiagramm mit der Funktionsweise des
Gesamtschaltkreises von Fig. 3a.
Fig. 3c zeigt ein Logikdiagramm mit dem Schlummer-Detektor
schaltkreis von Fig. 3a für programmierbare Unterbrechungsvektoren.
Fig. 3d zeigt ein Logikdiagramm mit dem Schlummer-Detektor
schaltkreis von Fig. 3a für programmierbare Unterbrechungszahlen.
Fig. 3e zeigt ein Logikdiagramm mit dem Prefetch-Detektor
schaltkreis von Fig. 3a.
Fig. 3f zeigt ein Zeitsteuerungsdiagramm mit der Zeitsteuerung
der Prefetch-Detektor-Zustandsmaschine von Fig. 3a.
Fig. 4 zeigt ein Blockdiagramm mit der primären und sekundären
Aktivitätsgeneration.
Fig. 5 zeigt ein Blockdiagramm mit der Drosselung des Takt
stoppsignals sowie der 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-Adres
sen 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 Befehlszeiger-
(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.
In Fig. 2 können ein PROG_ADDR[31:3]-Signal 201 und ein
ADDR[31:3]-Signal 202 Eingangsdaten für einen Schlummer-Detektorblock
220 sein. Die Schlummer-Detektorlogik vergleicht die beiden Adressen und
erzeugt ein NAP_DETECT-Signal 205 bei Übereinstimmung. Das NAP_DETECT-
Signal 205 ist Eingangssignal für einen SET-Anschluß des Zwischenspei
chers 223 und setzt das NAP_ACT-Signal 207 auf 1. Das NAP_DETECT-Signal
205 ist auch Eingangssignal für den EN-Anschluß eines Schlummerzeitge
bers 221, welcher damit beginnt, ab dem in einem NAP_TIMER_REG-Register
203 programmierten Wert zu zählen. Bei Erreichen des programmierten Wer
tes nimmt ein TIMEOUT-Signal 206 den Wert 1 an, wodurch ein NAP_ACT-Si
gnal 207 zurückgesetzt wird. Ein ACTIVITV_DET-Signal 204 zeigt das Vor
liegen von primärer und sekundärer Aktivität an und kann sowohl den
Schlummerzeitgeber 221 als auch den Zwischenspeicher 223 zurücksetzen.
Das NAP ACT-Signal 207 ist Eingangssignal für eine STOPCLOCK-Zustandsma
schine 224. Solange NAP_ACT auf 1 ist, wird ein STOPCLOCK-Signal 208 ge
drosselt, 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 Adressie
rungskapazität möglich. Bei Entschlüsselung einer Unterbrechungsvekto
radresse, die einer der programmierten Adressen entspricht, kann ein
ADDR_MATCH-Signal 206 erzeugt werden.
Es können Fälle auftreten, daß eine programmierte Adresse
nachgewiesen und das NAP_DET-Signal 205 gebildet wird, die Triggerung
eines Schlummer-Zustandes aber unerwünscht ist, da die programmierte
Adresse Teil eines Prefetch ist.
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.
ADDR[31:3]-Signale 301 und PROG_ADDR_[31:3]-Signale 398 können Eingänge
für einen Adressen-Komparator 310 bilden, und ADDR-Signale 301 können
auch Eingänge für einen Prefetch-Detektorschaltkreis 320 bilden. 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 ADDR_MATCH-Signal 304
kann für Adressen gebildet werden, welche mit programmierten und als
Schlummer-Trigger im Adressenkomparator 310 gebildeten Adressen überein
stimmen. Ein PRFTCH_DET#-Signal 305 kann durch den Prefetch-Detektor
schaltkreis 320 erzeugt werden, wenn Adressen Teil einer Prefetch-Zeile
sind. Bei Prefetch-Zeilen kann der Fall eintreten, daß gegenwärtige
Adressen von vorherigen um den Wert 1 abweichen, was darauf hinweist,
daß die Adressen von aufeinanderfolgenden Orten im Speicher ausgelesen
worden sind. Ein M/IO#-Signal 302, kennzeichnend für Speicherzugriff,
ein W/R#-Signal 303, welches das Auslesen oder Beschreiben des Speichers
anzeigt, und ein D/C#-Signal 397, kennzeichnend für einen Daten- oder Co
dezyklus, können Eingänge für ein UND-Gatter 330 sein. Das UND-Gatter
330 kann ein NAP_DET-Signal 306 bilden, wenn das M/IO#-Signal 302 auf 1,
das W/R#-Signal 303 auf 0, das D/C#-Signal 397 auf 0 und das ADDR_MATCH-
Signal 304 auf 1 gesetzt sind.
Vom Ruhezustand 00, 350 von Fig. 3b 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_N-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
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.
Zur Programmierung einer Software-Unterbrechung zum Unterbre
chungstriggern können gemäß Fig. 3c CS_REG[15:0] 312 und IP_REG[15:0]
313 die CS- und IP-Komponenten der Software-Unterbrechungsschlummer
triggerungsadresse enthalten. CS_REG[15:0] 312 kann im Multipli
kationsblock 314 mit 16 multipliziert werden, um eine Verschiebung nach
links um vier Bits zu erreichen. Ein sich ergebender 20-bit-Wert kann
das Eingangssignal für eine Addierlogik 315 und PROG ADDR[31:3] 311 kann
das Ausgangssignal von der Addierlogik 315 mit auf 0 gesetzten Bits
[31:20] bilden. ADDR[31:3] 301 wird vom Adreßbus gelesen und ist
Eingangssignal für Gatter 316 mit PROG ADDR[31:3] 311. Wenn Überein
stimmung zwischen ADDR[31:3] 301 und PROG ADDR[31:3] 311 vorliegt, kann
das ADDR_MATCH-Signal 304 erzeugt werden und den Eingang für ein logi
sches Gatter 317, insbesondere ein UND-Gatter, bilden. Das M/IO#-Signal
302 kann ebenfalls den Eingang für das logische Gatter 317 bilden und
zeigt an, daß auf Speicher zugegriffen wird. Das W/R#-Signal 303 kann
ebenfalls ein Eingang für das logische Gatter 317 sein und zeigt an, daß
vom Speicher gelesen wird. Auch das PRFTCH#-Signal 305 kann Eingang des
logischen Gatters 317 sein und anzeigen, daß die gegenwartige Adresse
nicht Teil einer Prefetch-Zeile ist. Wenn alle Signale vorliegen, kann
das NAP-DET-Signal 306 zur Kontrolle des Taktstoppsignals erzeugt
werden.
Zur Programmierung einer Unterbrechungsquelle zum Schlummer-
Triggern kann gemäß Fig. 3d PROG_IN_REG[7:0] 325 mit einem Wert program
miert werden, welcher einer Unterbrechungsquelle und dem Ausgangssignal
eines Multiplikationsblocks 323 entspricht. Der Multiplikationsblock 323
multipliziert den Wert in PROG_INT_REG[7:0] 325 mit 4, um eine Verschie
bung nach links um 2 zu bewirken, und gibt den Wert an einen Addierer
321. Eine Blindsignaladresse 324 kann ein Eingang für den Addierer 321
sein, um ein Anhängen von Nullen an die höherwertigen Bits der Adresse
und ein Addieren des Vierfachen von PROG_IN_REG[7:0] 325 zur Bildung von
PROG_ADDR[31:2] 319 zu bewirken, welches dann das Ausgangssignal für das
logische Gatter 316 bilden kann. ADDR[31:2] 322 kann auch ein Eingang
für das logische Gatter 316 sein. Wenn Übereinstimmung besteht zwischen
ADDR[31:2] und PROG ADDR[31:2], kann das ADDR_MATCH-Signal 304 gebildet
werden und einen Eingang für das logische Gatter 318 bilden. Das
M/IO#-Signal 302 kann auch ein Eingang für das logische Gatter 318 sein
und zeigt an, daß auf Speicher zugegriffen wird. Das W/R#-Signal 303
kann ebenfalls ein Eingang für das logische Gatter 318 sein und zeigt
an, daß vom Speicher gelesen wird. Auch das PRFTCH-DET#-Signal 305 kann
ein Eingang für das logische Gatter 318 sein und anzeigen, daß die ge
genwärtige Adresse nicht Teil einer Prefetch-Zeile ist. Wenn alle Si
gnale vorliegen, kann das NAP DET-Signal 306 zur Kontrolle der Abgabe
des Taktstoppsignals erzeugt werden.
ADDR[31:3] 301 ist Eingangssignal des D-Eingangs eines Zwi
schenspeichers 374 gemäß Fig. 3e 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. Das ADDR_LATCH-Signal 309 kann Eingangssignal für den Freigabeein
gang von Zwischenspeicher 374 sein und ermöglichen, daß der gegenwärtige
Wert von ADDR[31:3] 301 zwischengespeichert wird und Ausgangssignal für
den Q_N-Ausgang vom Auffangsspeicher 374 bei ADDR_LATCHED[31:3] 391 ist.
Sobald ADDR[31:3] 301 gespeichert und Ausgang des Zwischenspeichers 374
bei ADDR_LATCHED[31:3] 391 ist, kann eine Verzögerung um einen Taktzy
klus zwischen dem gegenwärtigen Wert von ADDR[31:3] 301 und dem im vor
herigen Zyklus gespeicherten Wert von ADDR_LATCHED[31:3] 391 auftreten.
Zu ADDR_LATCHED[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 logische 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
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. 3f, welches die Zeit
steuerung der in Fig. 3a gezeigten Prefetch-Detektorzustandsmaschine 320
darstellt, kann CPUCLK 340 verwendet werden, um die Schaltkreisfunktion
mit der Prozessorfunktion zu synchronisieren. Das ADS_N-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] 301 kann eine gegen
wärtige vom Systembus gelesene Adresse darstellen und innerhalb des in
Fig. 3a dargestellten Prefetch-Detektorschaltkreises verwendet werden.
Das ADDR LATCH-Signal 309 kann verwendet werden, um die gegenwärtige
Adresse ADDR[31:0] 301 im Zwischenspeicher 321 von Fig. 3c zu speichern.
Sobald die Adresse ADDR_LATCHED[31:0] 391 gespeichert ist, wird der Wert
1 addiert. Adresse PREV_ADDR+1 307 entspricht Adresse ADDR_LAT-
CHED[31:0] 391 plus 1 und wird mit der aktuellen Adresse ADDR[31:0] 301
verglichen. Wenn ADDR_LATCHED 391 und die gegenwärtige Adresse
ADDR[31:0] 301 übereinstimmen, wird angenommen, daß der Prozessor Vorhe
riges abruft, und das Signal PRFTCH_DET# 305 wird erzeugt.
In der bevorzugten Realisierung kann ACTIVITY_DET 360, welcher
primäre und sekundäre Aktivität umfassen kann, verwendet werden, um
Schlummer-Triggern zu blockieren oder einen Schlummer-Zustand zu been
den, wie in Fig. 2 gezeigt ist. Primäre Aktivität kann definiert werden
als wichtige Systemaktivität, bei der Systemquellen zugänglich sind. So
lange sie nicht verdeckt ist, kann jede primäre Aktivität das System in
den Zustand völliger Erwachung bringen. Primäre Aktivität kann auch Lei
stungsverwaltungstimer zurücksetzen. Fig. 4 stellt eine primäre Aktivi
tätsregisterbank 402 dar, die an einen Aktivitätsüberwachungskreis 404
und unter Miteinbeziehung von PRM#0 durch PRM#5 gekoppelt ist. Jedes Le
sen oder Schreiben, welches auf Adressen zugreift, die den in der primä
ren Aktivitätsregisterbank 402 gespeicherten entsprechen, kann die Bil
dung primärer Aktivität durch ein P/A-Signal 405 triggern. Zugriffe auf
Video, Plattenantriebe oder irgendwelche andere Einrichtungen der
Registerbank 401 ebenso wie das Auftreten irgendwelcher unverdeckter
Unterbrechungsaufforderungen 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, SWITCK, 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. 5 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 Arbeitszyk
lusauswahlblock 502 kontrolliert den Arbeitszyklus des STCLK 505, wenn
er während einer Drosselungsperiode angewandt wird. Eine MORESTOP-An
forderung 503 und eine LESSSTOP-Anforderung 504 können Eingangssignale
von Anwendungen oder Arbeitssystem-Software sein, um der CPU anzuzeigen,
daß ein höherer oder niedrigerer Pegel von Leistungseinsparung gewünscht
wird. Die LESSSTOP-Anforderung 405 kann den Schlafpegel der CPU über
eine Veränderung des Arbeitszyklus des Taktdrosselungskreises verändern,
während der CPU-Takt weiterläuft. Die MORESTOP-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.
Die Verwendung programmierter Adressen unter Einschluß solcher
Software-Unterbrechungen, die als kennzeichnend oder inaktiv bekannt
sind, kann auf jede feste Unterbrechungszahl oder auf jedes durch Soft
ware-Anwendung oder Arbeitssystem-Software kontrollierbare Ereignis an
gewandt werden. Anstelle eines integrierten Schaltkreises können auch
mehrere oder ein anderes Computersystem vorhanden sein.
Claims (18)
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 mindestens einem Register zum Speichern von mindestens einem
programmierbaren Adreßwert (201),
eine Detektoreinrichtung (220) zum Nachweis eines Zugriffs auf mindestens eine programmierbare Adresse (201), die Systeminaktivität an zeigt, und
einen Adressenkomparator (310) zum Vergleich von der minde stens einen programmierbaren Adresse mit dem mindestens einen program mierbaren Adreßwert, der in dem mindestens einen Register programmiert ist, und zur Ausgabe eines Schlummersignals (306) entsprechend dem Er gebnis des Vergleichs aufweist.
eine Detektoreinrichtung (220) zum Nachweis eines Zugriffs auf mindestens eine programmierbare Adresse (201), die Systeminaktivität an zeigt, und
einen Adressenkomparator (310) zum Vergleich von der minde stens einen programmierbaren Adresse mit dem mindestens einen program mierbaren Adreßwert, der in dem mindestens einen Register programmiert ist, und zur Ausgabe eines Schlummersignals (306) entsprechend dem Er gebnis 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ß ein Prefetch-Detektorschaltkreis (320) zum Nachweis eines
Prozessor-Prefetch-Zyklus und zur Erzeugung eines Prefetch-Detektorsi
gnals (305) als Antwort auf einen nachgewiesenen Prefetch-Zyklus sowie
ein Drosselungsschaltkreis (500) vorgesehen ist, der mit dem Schlummer
triggerungsschaltkreis gekoppelt und durch diesen aktivierbar sowie an
den Prefetch-Detektorschaltkreis (320) zur kontrollierten Anwendung ei
nes Taktstoppsignals (505) entsprechend einem vorbestimmten Arbeitszy
klus während einer vorbestimmten Drosselungsperiode gekoppelt und durch
diesen blockierbar ist.
4. Systemsteuerung nach Anspruch 3, dadurch gekennzeichnet,
daß der Prefetch-Detektorschaltkreis (320) eine erste Einrichtung zum
Empfang und zur Speicherung vorher abgerufener Adressen und eine zweite
an die erste gekoppelte Einrichtung zum Adressenvergleich umfaßt, wobei
letztere eine dritte Einrichtung zum Nachweis, ob die gegenwärtige
Adresse eine programmierbare Adresse ist, und eine vierte Einrichtung
zum Nachweis, ob die gegenwärtige Adresse sequentiell zu den vorher ab
gerufenen Adressen ist, umfaßt.
5. Systemsteuerung nach Anspruch 4, dadurch gekennzeichnet,
daß die dritte Einrichtung ein Register enthält, welches an den Adres
senkomparator (310) zur Speicherung eines der programmierbaren Adresse
entsprechenden Wertes gekoppelt ist.
6. Systemsteuereinheit aus Anspruch 4 oder 5, 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 mit der vorherigen Adresse und zum Erzeugen eines Prefetch-De
tektorsignals (305) umfaßt, falls die vorherige Adresse sich von der ge
genwärtigen Adresse um den Wert 1 unterscheidet.
7. Systemsteuerung nach einem der Ansprüche 3 bis 6, 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 (500) freigibt und entsprechend dem ersten und zwei
ten Wert als Antwort auf das Schlummersignal ein Taktstoppsignal (505)
abgibt.
8. Systemsteuerung nach einem der Ansprüche 3 bis 7, dadurch
gekennzeichnet, daß der Drosselungsschaltkreis (500) eine Einrichtung
zum Empfang eines Signals (504) zur Anforderung niedrigerer Leistungs
einsparung, welches auf die Aufforderung zur Verminderung der Leistungs
einsparung in der CPU hinweist und eine auf das Signal (504) antwortende
Einrichtung zur Veränderung des Arbeitszyklus des Taktstoppsignals (505)
aufweist.
9. Verfahren zur Leistungseinsparung in einem Computersystem
mit einer Systemsteuerung, dadurch gekennzeichnet, daß ein Taktstoppsi
gnal kontrolliert angewandt wird, indem ein Schlummertriggerungsereignis
im Computersystem überprüft und ein Schlummersignal aktiviert, das
Schlummersignal während eines Prozessor-Prefetch-Zyklus blockiert, pri
märe und sekundäre Aktivität überprüft und das Schlummersignal, falls
primäre und sekundäre Aktivität vorliegen, blockiert und das Taktstopp
signal während einer Drosselungsperiode entsprechend dem programmierba
ren Arbeitszyklus, während das Schlummersignal aktiv ist, abgegeben
wird.
10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, daß zum
Nachweis des Schlummertriggerungsereignisses und zur Erzeugung des
Schlummersignals ein Wert in einem Register entsprechend einer program
mierbaren Adresse gespeichert, mit der gegenwärtigen Adresse verglichen
und ein Schlummersignal erzeugt wird, falls die gegenwärtige Adresse mit
dem im Register gespeicherten Wert übereinstimmt.
11. Verfahren nach Anspruch 9 oder 10, dadurch gekennzeichnet,
daß zum Blockieren des Schlummersignals während eines Prozessor-Pre
fetch-Zyklus ein Wert in einem Register entsprechend der vorherigen
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.
12. Verfahren nach einem der Ansprüche 9 bis 11, dadurch ge
kennzeichnet, daß zum Nachweis primärer und sekundärer Aktivität und zum
Blockieren des Schlummersignals bei Vorhandensein von primärer und se
kundärer Aktivität mindestens ein Wert in dem ersten von mindestens ei
nem Register für die primäre Aktivität (402) gespeichert, mindestens ein
Wert im zweiten von mindestens einem Register für die sekundäre Aktivi
tät (403) gespeichert, primäre Aktivität, wenn der Wert des ersten von
mindestens einem Register mit der gegenwärtigen Aktivität überein
stimmt, ü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 wur
de, blockiert, und das Schlummersignal, wenn sekundäre Aktivität nachge
wiesen wurde, blockiert wird.
13. Verfahren nach Anspruch 12, dadurch gekennzeichnet, daß
zum Nachweis von primärer Aktivität bei Übereinstimmung des Wertes des
ersten mindestens einen Registers (402) mit der gegenwärtigen Aktivität
ein Wert im ersten mindestens einen Register, wobei der Wert aus minde
stens einer Adresse besteht, und ein Hardware-Signal gespeichert werden.
14. Verfahren nach Anspruch 12 oder 13, dadurch gekennzeich
net, daß zum Nachweis von sekundä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.
15. Verfahren nach einem der Ansprüche 12 bis 14, 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.
16. Verfahren nach einem der Ansprüche 12 bis 15, 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.
17. Verfahren nach Anspruch 16, dadurch gekennzeichnet, daß
die Anwendung des Taktstoppsignals in einen vorherigen Leistungseinspa
rungsmodus, falls keine sekundäre Aktivität mehr nachgewiesen wird, wie
derhergestellt wird.
18. Verfahren nach einem der Ansprüche 12 bis 17, dadurch ge
kennzeichnet, daß ein programmierbarer und im Register (203) gespeicher
ter Zeitabschaltungswert gelesen, der programmierbare Zeitabschaltungs
wert mit dem NAP-Zählerausgang verglichen und ein Zeitabschaltungssi
gnal (206), falls der programmierbare Zeitabschaltungswert mit dem NAP-Zäh
lerausgangswert übereinstimmt, erzeugt wird.
Applications Claiming Priority (1)
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 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE19720806A1 true DE19720806A1 (de) | 1997-12-11 |
Family
ID=24605318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19720806A Ceased DE19720806A1 (de) | 1996-05-17 | 1997-05-16 | Systemsteuerung für ein Computersystem |
Country Status (3)
Country | Link |
---|---|
US (1) | US5954819A (de) |
KR (1) | KR970076195A (de) |
DE (1) | DE19720806A1 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19908072C2 (de) * | 1999-02-12 | 2002-10-17 | Krohne Ag Basel | Massendurchflußmeßgerät |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6304978B1 (en) * | 1998-11-24 | 2001-10-16 | Intel Corporation | Method and apparatus for control of the rate of change of current consumption of an electronic component |
US6378076B1 (en) * | 1999-01-27 | 2002-04-23 | Advanced Micro Devices, Inc. | Substantially undetectable data processing |
US7100169B2 (en) * | 2001-07-17 | 2006-08-29 | International Business Machines Corporation | Method, system, and program for transmitting notification to an input/output device |
US7181188B2 (en) * | 2004-03-23 | 2007-02-20 | Freescale Semiconductor, Inc. | Method and apparatus for entering a low power mode |
US20100146169A1 (en) * | 2008-12-05 | 2010-06-10 | Nuvoton Technology Corporation | Bus-handling |
US20120042182A1 (en) * | 2010-08-10 | 2012-02-16 | Seagate Technology Llc | Forced idle cache |
JP5704904B2 (ja) * | 2010-11-29 | 2015-04-22 | キヤノン株式会社 | データ処理装置、データ処理装置の制御方法及びプログラム |
JP2013003911A (ja) | 2011-06-17 | 2013-01-07 | Sony Corp | 電子機器、電子機器の制御方法およびプログラム |
US20230341918A1 (en) * | 2020-10-23 | 2023-10-26 | Hewlett-Packard Development Company, L.P. | Partial wake states |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0656579A2 (de) * | 1993-12-01 | 1995-06-07 | Advanced Micro Devices, Inc. | Stromverwaltung für Rechnersystem |
US5475848A (en) * | 1990-12-28 | 1995-12-12 | Dia Semicon Systems, Incorporated | Supervisory control method and power saving control unit for computer system |
US5511203A (en) * | 1994-02-02 | 1996-04-23 | Advanced Micro Devices | Power management system distinguishing between primary and secondary system activity |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4709324A (en) * | 1985-11-27 | 1987-11-24 | Motorola, Inc. | Data processor control unit having an interrupt service using instruction prefetch redirection |
US5241680A (en) * | 1989-06-12 | 1993-08-31 | Grid Systems Corporation | Low-power, standby mode computer |
US5142684A (en) * | 1989-06-23 | 1992-08-25 | Hand Held Products, Inc. | Power conservation in microprocessor controlled devices |
US5222239A (en) * | 1989-07-28 | 1993-06-22 | Prof. Michael H. Davis | Process and apparatus for reducing power usage microprocessor devices operating from stored energy sources |
US5396635A (en) * | 1990-06-01 | 1995-03-07 | Vadem Corporation | Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system |
US5414860A (en) * | 1991-01-29 | 1995-05-09 | International Business Machines Incorporated | Power management initialization for a computer operable under a plurality of operating systems |
US5301275A (en) * | 1991-10-03 | 1994-04-05 | Compaq Computer Corporation | Data transfer system with variable data buffer size and programmable interrupt frequency |
US5428252A (en) * | 1992-01-03 | 1995-06-27 | Zilog, Inc. | Power supply interruption detection and response system for a microcontroller |
US5440747A (en) * | 1993-09-27 | 1995-08-08 | Hitachi America, Ltd. | Data processor with control logic for storing operation mode status and associated method |
US5546037A (en) * | 1993-11-15 | 1996-08-13 | Cirrus Logic, Inc. | NAPNOP circuit for conserving power in computer systems |
US5590342A (en) * | 1994-11-29 | 1996-12-31 | Intel Corporation | Method and apparatus for reducing power consumption in a computer system using virtual device drivers |
-
1996
- 1996-05-17 US US08/649,557 patent/US5954819A/en not_active Expired - Lifetime
-
1997
- 1997-05-16 KR KR1019970018827A patent/KR970076195A/ko not_active Application Discontinuation
- 1997-05-16 DE DE19720806A patent/DE19720806A1/de not_active Ceased
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5475848A (en) * | 1990-12-28 | 1995-12-12 | Dia Semicon Systems, Incorporated | Supervisory control method and power saving control unit for computer system |
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 |
---|---|---|---|---|
DE19908072C2 (de) * | 1999-02-12 | 2002-10-17 | Krohne Ag Basel | Massendurchflußmeßgerät |
Also Published As
Publication number | Publication date |
---|---|
US5954819A (en) | 1999-09-21 |
KR970076195A (ko) | 1997-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69907512T2 (de) | Gerät und verfahren zur automatischen frequenzregelung einer zentralen verarbeitungseinheit | |
DE69635887T2 (de) | Schaltung zur Einstellung von Computersystembussignalen auf vorbestimmte Zustände im Niederstromverbrauchszustand | |
DE4307226C2 (de) | Verfahren und Einrichtung zum automatischen Steuern des Energieverbrauches einer integrierten Schaltung in einem Computersystem | |
DE69027510T2 (de) | Echtzeitleistungseinsparung für tragbare Rechner | |
DE60031404T2 (de) | Verfahren und vorrichtung zur dynamischen änderung der grössen von pools, die die leistungsaufnahme von speichern steuern | |
DE69432514T2 (de) | Leistungssteuerung in einem Computersystem | |
DE69733912T2 (de) | Computersystem mit Wiederaufnahmefunktion und Verfahren dafür | |
DE4228756C2 (de) | Unterbrechungseinrichtung für ein Mikroprozessorsystem | |
DE3779688T2 (de) | Taktschaltung fuer datenprozessor. | |
DE102009030544B4 (de) | Verfahren für ein koordiniertes Link-Power-Management auf einer Computerplattform, Computer und Rechensystem | |
DE112004001320B3 (de) | Verfahren, System und Vorrichtung zur Verbesserung der Leistung von Mehrkernprozessoren | |
US7434072B2 (en) | Integrated circuit power management control | |
DE19882704C2 (de) | Verfahren und Einrichtung für ein Stromversorgungsmanagement | |
DE4309532A1 (de) | Verfahren zur Einrichtung zum Sichern einer Systemabbildung auf eine permanente Speichereinrichtung | |
DE102020102783A1 (de) | Verfahren und einrichtungen zum verbessern einer leistungsdatensammlung einer hochleistungsberechnungsanwendung | |
DE10393396B4 (de) | Schnittstelle und Vorrichtungstreiber zum lokalen Leistungsmanagement sowie Verfahren und Software zu deren Steuerung | |
DE19720806A1 (de) | Systemsteuerung für ein Computersystem | |
US20230113657A1 (en) | Preemptive wakeup circuit for wakeup from low power modes | |
CN100351743C (zh) | 具有总线主控设备的计算机系统中的功率降低方法 | |
US5784627A (en) | Integrated timer for power management and watchdog functions | |
DE102006041444A1 (de) | Schaltungsanordnung und Verfahren zum Erfassen einer Ausführungszeit eines Befehls in einem Rechnersystem | |
DE69320417T3 (de) | Verfahren und Gerät zur Änderung der Taktfrequenz eines Prozessors | |
DE69125567T2 (de) | Informationsverarbeitungsvorrichtung für die Sicherung und Wiederherstellung von Daten | |
DE69333542T2 (de) | Verfahren in einem Mikroprozessor mit hardwaregesteuerter Leistungsverwaltung und auswählbaren Eingangs- Ausgangssteuerungssteckerstiften | |
US4873624A (en) | Output compare system and method for a data processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8131 | Rejection |