DE19720806A1 - Systemsteuerung für ein Computersystem - Google Patents

Systemsteuerung für ein Computersystem

Info

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
Application number
DE19720806A
Other languages
English (en)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National Semiconductor Corp
Original Assignee
National Semiconductor Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National Semiconductor Corp filed Critical National Semiconductor Corp
Publication of DE19720806A1 publication Critical patent/DE19720806A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3409Recording 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/3419Recording 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/3423Recording 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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing 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.
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.
DE19720806A 1996-05-17 1997-05-16 Systemsteuerung für ein Computersystem Ceased DE19720806A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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