DE19720805A1 - Systemsteuerung für ein Computersystem - Google Patents

Systemsteuerung für ein Computersystem

Info

Publication number
DE19720805A1
DE19720805A1 DE19720805A DE19720805A DE19720805A1 DE 19720805 A1 DE19720805 A1 DE 19720805A1 DE 19720805 A DE19720805 A DE 19720805A DE 19720805 A DE19720805 A DE 19720805A DE 19720805 A1 DE19720805 A1 DE 19720805A1
Authority
DE
Germany
Prior art keywords
signal
address
value
register
activity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE19720805A
Other languages
English (en)
Inventor
Vimi Pandey
Kenneth Ma
Leo Jiang
Scott Shaw
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
Priority claimed from US08/649,557 external-priority patent/US5954819A/en
Priority claimed from US08/650,355 external-priority patent/US5983355A/en
Priority claimed from US08/665,778 external-priority patent/US5983356A/en
Application filed by National Semiconductor Corp filed Critical National Semiconductor Corp
Publication of DE19720805A1 publication Critical patent/DE19720805A1/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
    • 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

Description

Die Erfindung betrifft eine Systemsteuerung für ein Computer­ system nach dem Oberbegriff des Anspruchs 1.
Die starke Zunahme batteriebetriebener tragbarer Personal­ computer und das zunehmende Öffentlichkeitsbewußtsein hinsichtlich der mit der Energieeinsparung verbundenen praktischen und umwelttechnischen Probleme kann eine Leistungseinsparung in Computeranlagen erforderlich machen. Für tragbare Computer sind Wärmehaushalt und Batterielanglebig­ keit für die Bemühungen zur Antriebsleistungseinsparung von Belang. In Desktop-Computeranlagen bezieht sich Leistungseinsparung auf Einspa­ rung natürlicher Ressourcen im Einklang mit Regierungs- und Indu­ striestandards, wie etwa dem EPA-Energy-State-Standard.
Tragbare Computer sind nur verwendbar, wenn die Batteriele­ bensdauer eine sinnvolle Benutzungszeit zwischen den Aufladeprozessen ermöglicht. Ausreichende Zeitdauern können erforderlich sein, um es zu ermöglichen, sehr langwierige Aufgaben oder Aufgabenserien abzu­ schließen. Batterien für moderne tragbare Computer können auch wenn sie auf acht Stunden Benutzungszeit bemessen sind, Lebensdauern von nur zwei oder drei Stunden zwischen Aufladeprozessen aufweisen, wenn kontinuier­ lich CPU-intensive Aufgaben durchgeführt werden. Während ausgedehnter Perioden von starken Arbeitsbelastungen können zusätzliche Aspekte hin­ sichtlich thermischer Instabilität bei Hochgeschwindigkeitsbetrieb auf­ treten.
Da die Taktgeschwindigkeit im direkten Bezug zum Leistungsver­ brauch steht, beinhaltet US-5 254 888 eine Technik zur Leistungseinspa­ rung über Taktverlangsamung bei Wartezeiten. Diese Technik leistet je­ doch keine selektive Anwendung eines Taktstoppsignals in Programminter­ vallen, in denen sich das System in einem von mehreren Leistungseinspa­ rungsmoden befindet.
Moderne Betriebskonfigurationen mit graphischen Benutzer­ schnittstellen (GUI), wie Microsoft Windows, können auch im Ruhezustand mehr Verarbeitung von der CPU erfordern als Nicht-GUI-Systeme. Daher kann im Ruhezustand ein tragbarer Computer mit einem GUI-Betriebssystem eine kürzere Batterielebensdauer haben als mit einem Nicht-GUI-Betriebs­ system. Andere Systemkomponenten, wie Bildschirme, Laufwerke und Tasta­ turen, verbrauchen Leistung beim Zugriff auf Prozessorarbeit. Eine Ver­ minderung der von diesen Systemkomponenten verbrauchten Leistung bei Aufrechterhaltung der Überwachung ihrer Aktivität und ihrer Versorgung mit Prozessorarbeit kann wünschenswert sein.
Bekannte Leistungseinsparmethoden, wie Schlafmoden, welche den Prozessor völlig abschalten, können den Nachteil von langen Aufwachwar­ tezeiten aufweisen. Eine Versorgung der Systemperipherie kann bis zum völligen Prozessorerwachen unmöglich sein. Eine Ausstattung der System­ peripherie mit einem schnelleren Zugriff auf den Prozessorbetrieb kann die Aufwachwartezeit verkürzen. Eine Verkürzung der Aufwachwartezeit kann zu für den Benutzer tolerierbareren Wartezeiten führen. Darüberhin­ aus lassen sich manche Prozessoranforderungen ohne völliges Aufwachen im Hintergrund erledigen. Falls etwas Aktivität während der Schlafmoden ab­ gearbeitet werden kann, wird ein weiteres Aktivitätsfeld zur Triggerung des Aufwachens zugänglich.
Unterbrechungen sind bekannt und können erzeugt werden, wenn Systemaktivität vom Benutzereingang oder von der Prozessorbetrieb anfor­ dernden Peripherie her vorliegt. Peripheriegeräte können Prozessorbe­ trieb über eine Unterbrechungsanforderung anfordern. Unterbrechungsan­ forderungen können durch Ausführung eines Unterbrechungsdienstprogrammes (ISR) abgearbeitet werden. Wenn eine Unterbrechung auftritt, beendet der Prozessor die Ausführung des aktuellen Programms und beginnt, die Aus­ führung der ISR, wie im Kapitel 18, Seiten 331-366, ISA System Architec­ tur, Shanley and Anderson, MindShare Press, 1991, 1993, erörtert. Der Prozessor kann auf eine Unterbrechungsanforderung antworten und anhand der zugehörigen Unterbrechungszahl bestimmen, welches Gerät oder welcher Software-Prozeß die Anforderung verursacht hat. Sobald die Identität der Unterbrechung anhand der Unterbrechungszahl identifiziert ist, kann die Adresse der ISR in der Unterbrechungsvektortafel (IVT) gefunden und die ISR ausgeführt werden. Wenn die ISR abgeschlossen ist, kann die Durch­ führung an der bei Prozessorabbruch abgespeicherten Stelle wieder aufge­ nommen werden.
Unterbrechungen können von Systemaktivität erzeugt werden, die mit Tastatureingang, Plattenantriebszugriff, Peripheriezugriff und ande­ ren Systemereignissen verbunden ist. Umgekehrt können andere Unterbre­ chungen Systeminaktivität anzeigen. ISRs für Software-Unterbrechungen können in BIOS ROM programmiert und beim Start in entsprechende Unter­ brechungszahleneingänge der IVT geladen werden. Die IVT kann sich im Realmodusadreßraum 00000H bis 003FFH befinden. Im geschützten Modus kann die IVT irgendwo in den Speicher verschoben werden.
Einige bekannte Systeme wie US 5 377 344 führen selektive Speicher-Betriebsüberwachung durch und speichern Werte in einem Sha­ dow-RAM. Das Speichern von Werten in einem RAM ist bekannt. US 5 386 552 be­ inhaltet ein System zur Aufrechterhaltung des Abarbeitungszustandes in einer Großspeicheranlage. In letzterem System wird kein verdeckter Un­ terbrechungsvektor oder irgendeine andere Unterbrechung als Schlummer-Triggerungsereignis verwendet.
Bekannt ist z. B. die übliche DOS-geregelte Software-Unterbre­ chung INT16H. Die Unterbrechung INT16H, bekannt als Tastaturversorgungs­ unterbrechung, ist in The Programmer′s PC Sourcebook, 2. Auflage, Tom Hogan, Microsoft Press, 1991, beschrieben. Wenn keine Eingabe des Benut­ zers vorliegt, kann DOS auf der Suche nach Tastaturaktivität an INT16H übergehen. Der Nachweis eines solchen Systemübergangs an INT16H an sich kann zur Triggerung von Schlafmoden benutzt werden. Bis zum Erwachen des Systems und zur Wiederaufnahme einer Aufgabe muß jedoch, wie zuvor be­ schrieben, eine oft verlängerte Periode abgewartet werden. Wenn die Ab­ arbeitung wiederhergestellt ist, sind alle Prozessorressourcen zugäng­ lich.
Eine solche Methode kann unbrauchbar sein, da eine Aufforde­ rung zur sofortigen Abarbeitung vorliegen kann, wenn Aufwachaktivität durch das Aufwachereignis selbst nachgewiesen wird. Andere Systemereig­ nisse oder Aktivität können, allerdings für eine kurze Zeitdauer, sofor­ tige Abarbeitung erfordern, während andere Systemereignisse oder Aktivi­ tät noch Abarbeitung mit Hintergrundcharakter verlangen. Darüberhinaus können kleine Intervalle zwischen Ereignissen vorliegen, welche zur Ak­ tivierung von Schlafmoden zu klein, jedoch zur Erreichung von Leistungs­ einsparung verwendbar sind. Während solcher relativ kurzer Zeitinterval­ le, in denen komplette Prozesse und Ressourcen zugänglich sind, kann ein entsprechender Bedarf zur Abarbeitung fehlen.
Aufgabe der Erfindung ist es, eine Systemsteuerung nach dem Oberbegriff des Anspruchs 1 zu schaffen, die es ermöglicht, in bezug auf verschiedene Aktivitäten selektiv und ohne lange Aufwachzeiten zu rea­ gieren.
Diese Aufgabe wird entsprechend dem kennzeichnenden Teil des Anspruchs 1 gelöst.
Hierdurch wird Leistung in einem Personalcomputersystem einge­ spart, indem der Nachweis und die Abarbeitung primärer und sekundärer Ereignisse ermöglicht wird. Bei Abwesenheit von primärer Aktivität kann ein Vielfaches der Leistungseinsparungsarten erreicht werden, da dann die betreffenden Betriebszustandszeittaktsteuerungen wegfallen. Bei Nachweis bestimmter primärer und sekundärer Ereignisse läßt sich ein vollständiges oder teilweises Erwachen zur Durchführung notwendiger Ar­ beitsprozesse triggern. Wenn sich das System bereits im komplett einge­ schalteten Betriebszustand befindet und keine primäre oder sekundäre Ak­ tivität vorliegt, läßt sich ein Schlummerzustand über das Auftreten pro­ grammierter Adressen triggern, welche die Inaktivität des Systems anzei­ gen.
Der Schlummertriggerungsschaltkreis ist in einer Systemsteue­ rung verwirklicht, welche sich in einem Computersystem befindet, welches Signale, wie Adreßsignale, Signale kennzeichnend für primäre und sekun­ däre Aktivität und mindestens ein Schlummerzeitabschaltungssignal emp­ fängt. Adressen, welche mit verdeckten Adressen übereinstimmen, triggern die Erzeugung eines Schlummersignals. Das Schlummersignal kann an eine Taktstoppzustandsmaschine gegeben werden, welche ein Taktstoppsignal er­ zeugt. Das Taktstoppsignal wird zur Sperrung von Abarbeitung an den Pro­ zessor gegeben. Eine Vielzahl von Moduszeitsteuerungen bestimmt, ob das Computersystem in einen nach und nach niedrigeren Leistungsmodus über­ führt werden kann. Jede primäre oder sekundäre Aktivität kann an den Lo­ gikschaltkreis gegeben werden, was eine Aufhebung des Schlummersignals in einem von mindestens zwei Moden bewirkt. Eine Aufhebung des Schlum­ mersignals führt zur Entfernung des Taktstoppsignals. In bestimmten Fäl­ len wird bei Wegnahme des Taktstoppsignals die Abarbeitung bei voller Geschwindigkeit wieder aufgenommen.
Bevorzugt kann ein Prefetch-Detektorschaltkreis ein Prefetch-Signal erzeugen, falls eine gegenwärtige vom Bus entschlüsselte Adresse von der vorherigen im Register gespeicherten Adresse um 1 abweicht. Beim Vorabrufen kann der Prozessor aus sequentiellen Speicherplätzen eine vorbestimmte Menge an Information lesen. Sequentielle Speicherplätze können die Eigenschaft haben, mit Werten adressiert zu sein, die um 1 größer sind als die vorherige Adresse; dies kann einen Hinweis darauf geben, daß der Prozessor eher vorabruft als ausführt.
Informationen, auf die während eines Prefetchs zugegriffen wird, können Prefetch-Zeile genannt werden. Die Länge einer Pre­ fetch-Zeile kann beliebig variieren und Anlaß für Adressierungsbeschränkungen sein. Die Prefetch-Zeile kann 32 Bytes enthalten. Wenn eine Unterbre­ chungsadressenübereinstimmung innerhalb der ersten acht Bytes gefunden wird, bestimmt über ihre Anwesenheit innerhalb des Prefetch-Detektor­ schaltkreises in Form der gegenwärtigen oder der vorherigen Adresse, kann ein Prefetch-Signal erzeugt werden. Bei Erscheinen jeder neuen Adresse im Adreßbus kann die gegenwärtige Adresse in einem Register ge­ speichert werden und zur vorherigen Adresse zu Vergleichszwecken im Lau­ fe des nächsten Zyklus werden. Wenn die gegenwärtige Adresse mit der vorherigen Adresse plus 1 übereinstimmt, kann ein Prefetch-Detektorsi­ gnal erzeugt und an den Logikschaltkreis gegeben werden, wodurch die Er­ zeugung des Schlummersignals bewirkt wird. Unterbrechungsadressen inner­ halb einer vorabgerufenen Zeile können daran gehindert werden, das Schlummersignal während Vorabrufungen anzusteuern, und eine Leistungs­ minderung durch falsches Schlummertriggern bewirken.
Außerdem kann ein Drosselungsschaltkreis, welcher selektiv freigegeben werden kann, die Abgabe eines Taktstoppsignals während einer Drosselungsperiode kontrollieren. Ein der Dauer der Drosselungsperiode entsprechender Wert kann in einem an den Drosselungsschaltkreis gekop­ pelten Register gespeichert werden. Das Taktstoppsignal eines bestimmten Arbeitszyklus kann während der Drosselungsperiode abgegeben werden. Ein dem gegenwärtigen Arbeitszyklus entsprechender Wert des Taktstoppsignals kann in einem anderen Register gespeichert werden, welches ebenfalls an den Drosselungsschaltkreis gekoppelt ist. Bei Abschaltung der Drosselung kann das Taktstoppsignal auch kontinuierlich abgegeben werden.
Unterbrechungen können erzeugt werden, wenn Systemaktivität entweder vom Benutzereingang oder von der die Prozessorversorgung anfor­ dernden Peripherie vorliegt. Typische Systemaktivität kann durch gegen­ wärtige Entdeckung von primärer oder sekundärer Aktivität gekennzeich­ net sein. Primäre oder sekundäre Aktivität können während einer Drosse­ lungsperiode auftreten. Das Auftreten von primärer Aktivität kann dazu führen, daß das System zum komplett eingeschalteten Modus zurückkehrt. Sekundäre Aktivität kann dazu führen, daß Aktivität abgearbeitet wird und das System unter Vervollständigung der Abarbeitung in den vorherigen Leistungseinsparungsmodus zurückkehrt. Eine periodische Abgabe des Takt­ stoppsignals während der Drosselung stellt sicher, daß der Nachweis von solch primärer oder sekundärer Aktivität nicht vermindert werden kann. Eine Vielzahl von Leistungseinsparungsmoden ermöglicht es dem System, sofort zur Abarbeitung zurückzukehren. Die Leistungsverwaltungsmoden können Komplett-An-, Sperr-, Schläfchen-, Schlaf-, Tiefschlaf-, Sperrmo­ dus oder ähnliches umfassen.
Die Erfindung wird nachstehend anhand eines in den beigefügten Abbildungen dargestellten Ausführungsbeispiels näher erläutert.
Fig. 1 zeigt ein Diagramm eines Systemspeichers mit einer Un­ terbrechungsvektortafel, einem Unterbrechungszahleneingang, einem Code-Segment (CS) und einem Befehlszeiger (IP) sowie einem Unterbrechungs­ dienstprogramm.
Fig. 2 zeigt ein Logikdiagramm mit dem Gesamtschaltkreis.
Fig. 3 zeigt ein Diagramm mit einer Schlummer-Verdeckungszu­ standsmaschine, einer Prefetch-Detektorzustandsmaschine und einem Schlummer-Detektorschaltkreis.
Fig. 4a zeigt ein Zustandsmaschinendiagramm mit der Funktions­ weise der Prefetch-Detektorzustandsmaschine von Fig. 3.
Fig. 4b zeigt ein Logikdiagramm mit der Prefetch-Detektorzu­ standsmaschine von Fig. 3.
Fig. 4c zeigt ein Zeitdiagramm mit der Zeitsteuerung der Pre­ fetch-Detektorzustandsmaschine von Fig. 3.
Fig. 5 zeigt ein Zeitdiagramm mit der Funktionsweise der Schlummer-Verdeckungszustandsmaschine von Fig. 3 und dem Laden der ver­ deckten Adresse.
Fig. 6 zeigt ein Zeitdiagramm mit einer Schlummertriggerung bei Nachweis einer verdeckten Adresse.
Fig. 7 zeigt ein Zustandsmaschinendiagramm mit der Funktions­ weise der Schlummer-Verdeckungszustandsmaschine von Fig. 3.
Fig. 8 zeigt ein Block-Diagramm mit einer primären und sekun­ dären Aktivitätsgeneration.
Fig. 9 zeigt ein Block-Diagramm mit der Drosselung eines Takt­ stopp-Signals und einer MORESTOP- und LESSSTOP-Kontrolle.
Fig. 1 zeigt ein Beispiel einer Unterbrechungsvektortafel, welche sich im Adreßraum 110 eines Speicherbereichs 100 befindet. Wenn das Computersystem gestartet wird, können ISR-Adressen für geläufige Software-Unterbrechungen entsprechend den jeweiligen Unterbrechungszah­ len in Adressen der Unterbrechungstafel geladen werden. Die den ISR-Adressen entsprechenden Unterbrechungszahlen können über BIOS-Startrou­ tinen von 00000H zu 003FFH in den Adreßraum 110 geladen werden. Ein Un­ terbrechungseingang 140 kann mit der Unterbrechungszahl INT16H korre­ spondieren. Eine Unterbrechungseingangsadresse 120 für den Unterbre­ chungseingang 140 kann 00058H sein. Die Unterbrechungseingangsadresse 120 kann berechnet werden, indem man eine Unterbrechungszahl, etwa INT16H, mit vier multipliziert. Die Zahl 4 kann der Zahl von Bytes ent­ sprechen, welche die ISR-Adresse im Codesegment (CS) plus Befehls­ zeiger-(IP)-Form bildet, welche gemeinhin als Segment-plus-Offset-Form bezeich­ net wird. Die beiden signifikantesten Bytes bei der Unterbrechungsein­ gangsadresse 120 können den CS-Wert darstellen. Die beiden am wenigsten signifikanten Bytes können den IP Wert wiedergeben. Beispielsweise kor­ respondiert der Unterbrechungseingang 140 mit INT16H. 16 kann mit 4 mul­ tipliziert und in die hexadezimale Darstellung umgewandelt werden, um die Unterbrechungseingangsadresse 120 von 00058H zu berechnen. In der bevorzugten Ausführungsform kann die Unterbrechungsadresse 120 einen CS- und einen IP-Wert enthalten. Es lassen sich eine Unterbrechungszahl oder die CS- und IP-Werte eines Unterbrechungsvektors in Registern program­ mieren, und wenn die Eingangsadresse einer von diesen entspricht, kann ein Schlummer-Triggern stattfinden.
Die vier Bytes der Unterbrechungseingangsadresse 120 können die CS- und IP-Werte beinhalten, welche zu Bildung der Adresse einer ISR 150 gebraucht werden. ISR 150 kann als Bestandteil eines CPU-INT-Zyklus durchgeführt werden, wann immer INT16H als aktuelle Unterbrechungszahl identifiziert wird. ISR 150, welche sich an der ISR Adresse 130 befin­ det, kann durch Multiplikation des von den dritten und vierten Bytes der Unterbrechungseingangsadresse 120 gelesenen CS-Wertes mit 16 und an­ schließender Addition des IP-Wertes, welcher sich aus den ersten und zweiten Bytes der Unterbrechungseingangsadresse 120 ergibt, berechnet werden. Wie bereits erläutert, kann ISR 150 für übliche Software-Unter­ brechungen während des Startens bei der ISR-Adresse 130 über BIOS gela­ den werden. ISR 150 kann auch durch eine Anwendung oder andere Software geladen werden. Das Laden der ISR 150 ermöglicht es, eine Standard-ISR durch eine spezifische ISR für besondere Unterbrechungszahlen zu erset­ zen. Andere ISRs können an anderen Adressen geladen werden, und diese ISR-Adressen lassen sich in die Unterbrechungsvektortafel in einer ent­ sprechenden Unterbrechungszahladresse über BIOS, eine Anwendung oder an­ dere Software, wenn an eine nicht verwendete Unterbrechung oder eine fe­ ste Unterbrechung angeschlossen wird, beim Start laden.
Der Schlummerverdeckungs- und Detektorblock 220 setzt gemäß Fig. 2 die Schlummerverdeckung und die Detektorlogik in Kraft und er­ zeugt ein NAP_DETECT-Signal 205. Das NAP_DETECT-Signal 205 ist Eingang für einen SET-Anschluß eines Zwischenspeichers 223 und setzt ein NAP_AC­ TIVE-Signal 207 auf 1. Das NAP_DETECT-Signal 205 ist auch Eingangssignal für den EN-Anschluß eines Schlummerzeitgebers 221, welcher damit be­ ginnt, ab dem in einem NAP_TIMER_REG-Register 203 programmierten Wert zu zählen. Bei Erreichen des programmierten Wertes nimmt ein TIMEOUT-Signal 206 den Wert 1 an, wodurch das NAP_ACTIVE-Signal 207 zurückgesetzt wird. Ein ACTIVITY_DET-Signal 204 zeigt das Vorliegen von primärer oder sekun­ därer Aktivität an und kann sowohl den Schlummerzeitgeber 221 als auch den Zwischenspeicher 223 zurücksetzen. Das NAP_ACTIVE-Signal 207 ist Eingangssignal für eine STOPCLOCK-Zustandsmaschine 224. Solange NAP_AC­ TIVE auf 1 ist, wird ein STOPCLOCK-Signal 208 gedrosselt, falls eine Drosselung freigegeben ist oder bei zugelassenem LESSSTOP angesteuert bleibt. Die vorliegende Darstellung zeigt eine 32-bit-Adressierung. Es sind jedoch auch Systeme mit größerer Adressierungskapazität möglich.
Eine gegenwärtige Adresse ADDR[31 : 2] ist gemäß Fig. 3 Ein­ gangssignal eines Gatters 625. INT_VEC_ADDR[31 : 2] 602 stellt eine Unter­ brechungsvektoradresse, wie 58H für INT16H, dar und ist ebenfalls Ein­ gangssignal des Gatters 625. Bei Übereinstimmungen zwischen ADDR[31 : 2] 601 und INT_VEC_ADDR[31 : 2] 602 wird ein logisches Ausgangssignal vom Gatter 625 nach Gatter 626 gegeben. M/IO#-Signal 603 zeigt an, ob die gegenwärtige Adresse eine Speicheradresse oder eine I/O-Adresse ist, und ist Eingang des Gatters 626. W/R#-Signal 330 zeigt an, ob die gegenwär­ tige Adresse geschrieben oder gelesen wird, und ist ebenfalls Eingangs­ signal des Gatters 626. Logisches Ausgangssignal des Gatters 626 ist ein INDIRECT_VECTOR_MATCH-Signal 606, welches Eingang für die Schlummerver­ deckungszustandsmaschine 627 ist.
INDIRECT_VECTOR_MATCH-Signal 606 wird bei Übereinstimmung von ADDR[31 : 2] 601 und INT_VEC_ADDR[31 : 2] 602 erzeugt, vorausgesetzt M/IO#-Signal 603 und W/R#-Signal 330 sind auf 1 gesetzt. Die Schlummer­ verdeckungszustandsmaschine 627 empfängt ein ADS#-Signal 308, das an­ gibt, ob die gegenwärtige Adresse ADDR[31 : 2] gültig ist. BE[7 : 0]#-Signal 605 dient der Kennzeichnung, Freigabe und Entschlüsselung, welche Daten­ bytes geschrieben werden, und ist Eingangssignal der Schlummerverdec­ kungszustandsmaschine 627. Ein REQ_CONFIG-Signal 321 kommt von einer Konfigurationszustandsmaschine und zeigt an, wann die aus CS- und IP-Werten der ISR für die Unterbrechung bestehenden Daten erfolgreich ver­ deckt werden.
Die Konfigurationszustandsmaschine verarbeitet unterschiedli­ che Funktionen der gesamten Systemsteuerung und ist nicht nur für die Verdeckungsfunktion bestimmt. Deshalb soll nur die Verdeckungsfunktion detailliert beschrieben werden.
Verdeckung bedeutet in diesem Zusammenhang das Laden von Wer­ ten von Unterbrechungsvektoren vom Datenbus in Verdeckungsregister. Die Schlummerverdeckungszustandsmaschine 627 weist nach, wenn Unterbre­ chungsvektoradressen geladen oder verändert werden, und bewirkt, daß die Konfigurationszustandsmaschine mit Zugriff auf TRAP_ADDR_UPPER 607 oder TRAP_ADDR_LOWER 320 ein höheres oder niedrigeres Doppelwort des Daten­ busses lädt. Da die verdeckten Daten 32 bits haben, bestehend aus einem 16-bit-CS-Wert und 16-bit-IP-Wert, werden vier 8-bit-Zwischenspeicher verwendet, um die die verdeckten Adressen bildenden Daten zwischenzu­ speichern. Dies ermöglicht der Logik, die CS- und IP-Werte zu verdecken, auch wenn sie als ein Byte geschrieben werden.
Die Konfigurationszustandsmaschine speichert die verdeckten Adreßwerte in CONFIG_SHADOW_REG[31 : 0] 326 und kann in 8-bit-Blöcken Ein­ gangssignale an jeden von vier Zwischenspeichern 610, 617, 618 und 619 geben. CONFIG_SHADOW_REG[7 : 0] 628 ist Eingang für einen Zwischenspeicher 610 und enthält die am wenigstens signifikanten 8 bits der verdeckten Adresse. IPL_WREN-Signal 609 zeigt über Entschlüsselung der Bytefreigabe BE[7 : 0]# an, wenn es einen Schreibvorgang des Niedrigbytewertes des Be­ fehlszeigers (IP) verdeckter Adressen gibt, und taktet CONFIG_SHADOW_ REG[15 : 8] 628 durch den Q-Ausgang vom Zwischenspeicher 610. CONFIG_SHA- DOW_REG[15 : 8] 611 ist Eingang für einen Zwischenspeicher 617 und ent­ hält die nächstsignifikantesten 8 bits der verdeckten Adresse. IPH_WREN-Signal 612 zeigt über Entschlüsselung der Bytefreigabe BE[7 : 0]# an, ob es einen Schreibvorgang des Hochbytewertes des Befehlszeigers (IP) ver­ deckter Adressen gibt, und taktet CONFIG_SHADOW_REG[15 : 8] 611 durch den Q-Ausgang von Zwischenspeicher 617. POD_IP_REG[15 : 0]-Signal 328 stellt mit verdeckten Adressen verbundene Niedrigbyte- und Hochbytewerte des Befehlszeigers dar und ist Eingang für einen Addierer 621.
CONFIG_SHADOW_REG[23 : 16] 613 ist Eingang für Zwischenspeicher 618 und enthält die nächstsignifikantesten bits der verdeckten Adresse. CSL_WREN-Signal 614 zeigt an, ob es einen Schreibvorgang des Niedrigby­ tewertes verdeckter Adressen des Codesegments (CS) gibt, und taktet CON- FIG_SHADOW_REG[23 : 16] 613 durch den Q-Ausgang vom Zwischenspeicher 618. CONFIG_SHADOW_REG[31 : 24] 615 ist Eingang für Zwischenspeicher 619 und enthält die nächstsignifikantesten acht Bits der verdeckten Adresse. CSH-WREN-Signal 616 zeigt an, wenn es einen Schreibvorgang des Hochbyte­ wertes verdeckter Adressen des Codesegments (CS) gibt, und taktet CON­ FIG_SHADOW_REG[31 : 24] 615 durch den Q-Ausgang von Zwischenspeicher 619. POD_CS_REG[15 : 0]-Signal 327 stellt mit verdeckten Adressen verbundene CS-Niedrigbyte- und -Hochbytewerte dar und ist Eingang an einen Addierer 621. Wenn Unterbrechungsadressen verdeckt werden sollen, können TRAP_ ADDR_LOWER 320 und TRAP_ADDR_UPPER 607 Ausgänge von Zuständen 803 und 804 bzw. in die in Fig. 7 gezeigte Schlummerverdeckungszustandsmaschine an eine Konfigurationszustandsmaschine sein, die das niedrigere oder hö­ here Doppelwort des Datenbusses in CONFIG_SHADOW_REG[31 : 0] festhält.
Eine vollständig verdeckte Adresse SHADOWED_ADDR[31 : 0] 630 ist Ausgang von Addierer und Multiplizierer 621 und Eingang an Gatter 622. ADDR[31 : 3] 620 ist ebenfalls Eingang an Gatter 622. Wenn ADDR[31 : 3] 620 und die verdeckte Adresse übereinstimmen, kann ein ADDR_MATCH-Signal 624 erzeugt werden und Ausgang von Gatter 622 an Gatter 623 sein. M/IO#-Si­ gnal 603, das angibt, ob die gegenwärtige Adresse eine Speicheradresse oder eine IO-Adresse ist, kann ebenfalls Eingang des Gatters 623 sein. W/R#-Signal 330, das angibt, ob der gegenwärtige Vorgang ein Lese- oder Schreibvorgang ist, und D/C#-Signal 307, das einen Daten- oder Codezy­ klus anzeigt, können ebenfalls Eingang an Gatter 623 sein. PRFTCH_ DET#-Signal 305, das angibt, ob die gegenwärtige Adresse Teil einer Pre­ fetch-Zeile ist, kann Ausgang des Prefetch-Detektorblocks 320 und auch Eingang an Gatter 623 sein. Falls die Eingangssignale in korrekt aktivem Zustand sind, kann NAP_DETECT-Signal 205 Ausgang von Gatter 623 sein und triggert einen Schlummerzustand.
Vorabgerufene Adressen werden vorzugsweise mit 32 Bytes auf einmal vorabgerufen. Eine Ausführungsform mit mehr oder weniger als 32 vorabgerufenen Bytes und einem Detektor, der nachweist, ob programmierte Adressen Teil einer Prefetch-Zeile sind, ist ebenfalls möglich. Da die am wenigsten signifikanten drei Adreßzeilen nicht gelesen werden, steht jede Abweichung um 1 zwischen den Adressen für Abweichungen um 8 im he­ xadezimalen Wert der entschlüsselten Adressen. Ein aktiv niedriges PRFTCH_DET#-Signal 305 kann durch den Prefetch-Detektorschaltkreis 320 erzeugt werden, wenn Adressen Teil einer Prefetch-Zeile sind. Bei Pre­ fetch-Zeilen kann der Fall eintreten, daß gegenwärtige Adressen von vor­ herigen um den Wert 1 abweichen, was darauf hinweist, daß die Adressen von aufeinanderfolgenden Orten im Speicher ausgelesen worden sind.
Vom Ruhezustand 00, 350 von Fig. 4a ausgehend, kann das Auf­ treten eines CPUCLK-Signals 340, kennzeichnend für einen Taktübergang in Verbindung mit einem aktiv niedrigen, eine gültige Adresse anzeigenden ADS#-Signal 308, einen Zustandsmaschinenübergang zum CLK1-Zustand 01, 370 veranlassen. Im CLK1-Zustand 01, 370 kann eine gegenwärtige Adres­ senübereinstimmung mit der vorherigen oder vorabgerufenen Adresse ver­ glichen werden. Wenn die gegenwärtige Adresse dem Wert von 1 plus der vorherigen Adresse entspricht, kann ein auf einen Prefetch-Nachweis hin­ weisendes Signal abgegeben werden. Vom CLK1-Zustand 01, 370 kann das das Auftreten des CPUCLK-Signals 340 einen Zustandsmaschinenübergang zum CLK2-Zustand 10, 360 bewirken. Im CLK2-Zustand 10, 360 kann die gegen­ wärtige Adresse zur Verwendung in aufeinanderfolgenden Zustandsmaschi­ nenzyklen in den Prefetch-Detektorschaltkreis 320 getaktet werden. Ein abschließender Übergang des CPUCLK-Signals 340 kann bewirken, daß der Maschinenzustand zurück zum Ruhezustand 00, 350 geht.
ADDR[31 : 3] 301 ist Eingangssignal des D-Eingangs eines Zwi­ schenspeichers 374 gemäß Fig. 4b und Eingangssignal eines logischen Gat­ ters 372. CPUCLK 340 ist Eingangssignal des Freigabeeingangs eines Zwi­ schenspeichers 373 und STATE 390 ist Eingangssignal des D-Eingangs vom Zwischenspeicher 373. Flipflop 373 kann ein ADDR_LATCH-Signal 309 bil­ den, wenn STATE 390 mit CLK2-Signal 360 übereinstimmt. Das ADDR_LATCH-Si­ gnal 309 kann Eingangssignal für den Freigabeeingang von Zwischenspei­ cher 374 sein und ermöglichen, daß der gegenwärtige Wert von ADDR[31 : 3] 301 zwischengespeichert wird und Ausgangssignal für den Q-Ausgang vom Auffangsspeicher 374 bei ADDR_LATCHED[31 : 3] 391 ist. Sobald ADDR[31 : 3] 301 gespeichert und Ausgang des Zwischenspeichers 374 bei ADDR_LAT­ CHED[31 : 3] 391 ist, kann eine Verzögerung um einen Taktzyklus zwischen dem gegenwärtigen Wert von ADDR[31 : 3] 301 und dem im vorherigen Zyklus gespeicherten Wert von ADDR_LATCHED[31 : 3] 391 auftreten. Zu ADDR_LAT­ CHED[31 : 3] 391 im Block 375 kann der Wert 1 addiert und PREV_ADDR[31 : 3] 307 erzeugt werden und an das logische Gatter 372 ausgegeben werden. Das logische Produkt von PREV_ADDR[31 : 3]+1 307 und ADDR[31 : 3] 301 kann Ausgang zum logischen Gatter 371 sein. STATE 390 kann auch auf das lo­ gische Gatter 371 gegeben werden, und das logische Produkt kann auf den D-Eingang eines Zwischenspeichers 370 gegeben werden. Wenn STATE 390 den Wert von CLK1 hat und PREV_ADDR[31 : 3]+1 307 mit ADDR[31 : 3] 301 übereinstimmt, kann der Zwischenspeicher 370 PRFTCH_DET# 305 bilden, wo­ durch angezeigt wird, daß die Adresse ADDR[31 : 3] 301 Teil einer Pre­ fetch-Zeile ist. Da die in den Prefetch-Zeilen abgerufenen Adressen se­ quentiell sind, so daß sich eine Adresse von der nächsten um den Wert 1 unterscheidet, kann ein Vergleich, ob die gegenwärtige Adresse ADDR[31 : 3] 301 mit PREV_ADDR[31 : 3]+1 307 übereinstimmt, anzeigen, daß ADDR[31 : 3] 301 eine vorabgerufene Adresse ist. Es könnte unerwünscht sein, einen Schlummerzustand auf eine vorabgerufene Adresse zu triggern, die eine Unterbrechungsadresse sein könnte.
Entsprechend dem Zeitdiagramm von Fig. 4c, welches die Zeit­ steuerung der in Fig. 4b gezeigten Prefetch-Detektorzustandsmaschine 320 darstellt, kann CPUCLK 340 verwendet werden, um die Schalt­ kreisfunktion mit der Prozessorfunktion zu synchronisieren. Das ADS#-Signal 308 kann verwendet werden um anzuzeigen, daß Daten auf dem Systembus gültige Adressen darstellen. STATE 390 kann verwendet werden, um die Funktion der Prefetch-Detektorzustandsmaschine 320 während aufeinanderfolgender Zyklen von CPUCLK 340 voranzuschalten. ADDR[31 : 0] 301f kann eine gegenwärtige vom Systembus gelesene Adresse darstellen und innerhalb des in Fig. 4b dargestellten Prefetch-Detektorschalt­ kreises verwendet werden. Das ADDR_LATCH-Signal 309 kann verwendet werden, um Bits [31 : 3] der gegenwärtigen Adresse ADDR[31 : 0] 301f im Zwischenspeicher 374 von Fig. 4b zu speichern. Sobald Bits [31 : 3] der gegenwärtigen Adresse ADDR_LATCHED[31 : 0] 391f gespeichert ist, wird der Wert 1 addiert. Adresse PREV_ADDR[31 : 3]+1 307 entspricht Adresse ADDR_ LATCHED[31 : 3] 391 plus 1 und wird mit der aktuellen Adresse ADDR[31 : 0] 301 verglichen. Wenn ADDR_LATCHED[31 : 3] 391 und die gegenwärtige Adres­ se ADDR[31 : 0] 301 übereinstimmen, wird angenommen, daß der Prozessor Vorheriges abruft, und das Signal PRFTCH_DET# 305 wird erzeugt. Wenn keine Übereinstimmung vorliegt, wird das Signal PRFTCH_DET# 305 auf 1 gesetzt oder durch die Prefetch-Detektor-Zustandsmaschine 320 von Fig. 4b für einen Takt beendet.
CPUCLK 340 kann gemäß Fig. 5 vom Hauptprozessortakt herrühren und verwendet werden, um die Funktion der Schlummerverdeckungszustands­ maschine und der Konfigurationszustandsmaschine zu synchronisieren. ADS# 308 zeigt an, ob die gegenwärtige Adresse eine gültige Adresse ist. Ein Schlummerzustand kann nur während einer gültigen Adresse getriggert wer­ den. W/R#-Signal 330 zeigt an, ob ein Vorgang ein Lese- oder ein Schreibvorgang ist. ADDR[31 : 0] 301 ist die gegenwärtige Adresse. NAP_ SHADOW_STATE 390 ist der gegenwärtige Zustand der Schlummerverdeckungs­ zustandsmaschine. TRAP_ADDRESS_LOWER-Signal 320 zeigt an, ob das niedri­ gere Doppelwort die verdeckte Adresse enthält. Ein in Fig. 5 nicht ge­ zeigtes TRAP_ADDRESS_UPPER-Signal 607 zeigt an, ob das obere Doppelwort eine verdeckte Adresse enthält. Im Beispiel von Fig. 5 ist TRAP_ADDRESS_ LOWER 320 als aktiv dargestellt, so daß TRAP_ADDRESS_UPPER 607 niedrig wäre. Der Übergang eines REQ_CONFIG-Signals 321 von 1 nach 0 zeigt an, ob die Adresse vom Datenbus in CONFIG_SHADOW_REG[31 : 0] 326 geladen wur­ de. Bei Empfang eines Übergangs des REQ_CONFIG-Signals 321 von 1 nach 0 kann die Schlummerverdeckungszustandsmaschine 627 von Fig. 3 geeignete Kontrollsignale erzeugen, um CS- und IP-Werte für eine zu verdeckende gegenwärtige Adresse zu bilden.
INDIRECT_VECTOR_MATCH 606 wird aktiv, wenn die gegenwärtige Adresse mit einer festgelegten oder programmierten Software-Unterbre­ chungsvektoradresse, z. B. 58H für INT16H, übereinstimmt. BE[3 : 0]#-Signa­ le 720 sind zwischengespeicherte Versionen von BE[7 : 0]# und enthalten BE[7 : 4]#, wenn das höhere Doppelwort geschrieben wird, oder BE[3 : 0]#, wenn das niedrigere Doppelwort geschrieben wird. DATA[63 : 0] 730 sind Da­ tenbussignale, welche in der vorliegenden Ausführungsform ein 64-bit-Bus sind. Der Datenbus enthält die CS- und IP-Werte der verdeckten Unterbre­ chung, deren Vektor geschrieben wurde. CONFIG_SHADOW_REG[31 : 0] 326 ent­ hält das höhere oder niedrigere Doppelwort von Daten, welche verdeckt worden sind. Im Zeitdiagramm von Fig. 5 ist TRAP_ADDRESS_LOWER 320 als aktiv dargestellt, so daß das niedrigere Doppelwort des 64-bit-Datenbus­ ses in CONFIG_SHADOW_REG[31 : 0] 326 festgehalten ist und 4321CDABH ent­ hält. Ein Nachweis eines Übergangs von REG_CONFIG 321 von 1 nach 0 be­ nutzt die Schlummerverdeckungszustandsmaschine das zwischengespeicherte BE[3 : 0]# 720, um die gültigen Bytes der aktuellen Daten in geeignete By­ tes eines CS-Registers 327 bzw. IP-Registers 328 zu schreiben.
In diesem Beispiel entspricht BE[3 : 0]# 1100 (binär), das an­ zeigt, daß nur die unteren zwei Bytes der Daten gültig sind, so daß die niedrigen und hohen Bytes des IP gespeichert werden. Gemäß Fig. 5 schreibt der nächste Zyklus an die Vektoradresse mit BE[3 : 0]# gleich 0011 (binär), das anzeigt, daß die höheren zwei Bytes des Doppelwortes der in CONFIG_SHADOW_REG[31 : 0] 326 festgehaltenen Daten gültig sind. Diese bilden die höheren und niedrigeren Bytes des CS. SHADOW_ADDR[31 : 0] 630 wird gebildet durch Multiplikation des verdeckten CS-Wertes mit 16 und Addition desselben zum IP-Wert unter Anfügen von Nullen an die bits 31 bis 20.
Wenn die aktuelle Adresse in ADDR[31 : 0] einen Wert enthält, der mit SHADOW_ADDR[31 : 9] 630 von Fig. 5 übereinstimmt, wird gemäß Fig. 6 ein IND_ADDR_MATCH-Signal 910 gesetzt. Wenn W/R#-Signal 330 auf 0 ist, das ein Lesen des Speichers anzeigt, und wenn D/C#-Signal 397 auf 0 ist, das das Lesen eines Codes anzeigt, und wenn PRFTCH_DET#-Signal 305 inak­ tiv ist, das anzeigt, daß die aktuelle Adresse kein Teil eines Prefetch war, wird das NAP_DETECT-Signal 333 gesetzt. Das NAP_DETECT-Signal 333 setzt einen NAP_ACTIVE-Zwischenspeicher 207, der den Schlummerzustand bis zu einer Schlummerzeitabschaltung oder primärer oder sekundärer Ak­ tivität aktiv hält. Während eines Schlummerzustands kann ein Taktstopp­ signal 208 an die CPU mit einem programmierten Arbeitszyklus gedrosselt werden, wenn Drosselung freigegeben ist, oder bei freigegebenem LESSSTOP angesteuert bleibt.
Vom Ruhezustand 801 in Fig. 7 ausgehend kann ein Übergang von CPUCLK 340 in Verbindung mit einem niedrigen ADS#-Signal 308 einen Zu­ standsübergang in den CHECK_ADDRESS-Zustand 802 bewirken. Von CHECK_AD­ DRESS-Zustand 802 ausgehend kann ein Übergang eines CPUCLK 340 in Ver­ bindung mit einem niedrigen ANY_ADDR_MATCH-Signal 815 einen Übergang zu­ rück zum Ruhezustand 801 bewirken. Auch vom CHECK_ADDRESS-Zustand 802 ausgehend kann ein Übergang von CPUCLK 340 in Verbindung mit einem hohen ADDR|2|-Signal und einem als Eingang 811 bezeichneten ANY_ADDR_MATCH-Si­ gnal 815 einen Zustandsübergang in einen WAIT4_REG_UPPER-Zustand 804 be­ wirken. Vom WAIT4_REQ_UPPER-Zustand 804 ausgehend kann ein hohes REQ_ CONFIG-Signal 321 in Verbindung mit CPUCLK 340 einen Übergang in einen REQ_CONFIG_HI-Zustand 805 bewirken.
Von einem CHECK_ADDRESS-Zustand 802 ausgehend kann ein Über­ gang des CPUCLK 340 in Verbindung mit einem niedrigen ADDR|2|-Signal und einem als Eingang 809 bezeichneten ANY_ADDR_MATCH-Signal einen Zustands­ übergang in einen WAIT4_REQ_LOWER-Zustand 803 bewirken. Vom WAIT4_REG_ LOWER-Zustand 803 ausgehend kann ein hohes REQ_CONFIG-Signal 321 in Ver­ bindung mit CPUCLK 340 einen Übergang in einen RG_CONFIG_HI-Zustand 805 bewirken.
Von einem REQ_CONFIG_HI-Zustand 805 ausgehend kann ein Über­ gang von CPUCLK 340 in Verbindung mit einem niedrigen REQ_CONFIG 321 ei­ nen Übergang zu einem REQ_CONFIG_LOWER-Zustand 806 bewirken. Ein weite­ rer Übergang von CPUCLK 340 kann einen abschließenden Übergang zurück zum Ruhezustand 801 bewirken.
In der bevorzugten Ausführungsform können primäre und sekundä­ re Aktivitätssignale dazu verwendet werden, um ein Schlummern zu trig­ gern oder zu beenden. Primäre Aktivität kann definiert werden als wich­ tige Systemaktivität, bei der Systemquellen zugänglich sind. Solange sie nicht verdeckt ist, kann jede primäre Aktivität das System in den Zu­ stand völliger Erwachung bringen. Primäre Aktivität kann auch Leistungs­ verwaltungstimer zurücksetzen. Fig. 8 stellt eine primäre Aktivitätsre­ gisterbank 402 dar, die an einen Aktivitätsüberwachungskreis 404 und unter Miteinbeziehung von PRM#0 durch PRM#5 gekoppelt ist. Jedes Lesen oder Schreiben, welches auf Adressen zugreift, die den in der primären Aktivitätsregisterbank 402 gespeicherten entsprechen, kann die Bildung primärer Aktivität durch ein P/A-Signal 405 triggern. Zugriffe auf Vi­ deo, Plattenantriebe oder irgendwelche andere Einrichtungen der Re­ gisterbank 401 ebenso wie das Auftreten irgendwelcher unverdeckter Un­ terbrechungsaufforderungen wie in einem IRQ-Block 407 können die Erzeugung des P/A-Signals 405 triggern.
Sekundäre Aktivität kann als Anforderung an ein kurzes Maß an Bedienungszeit während verschiedener Ebenen von Inaktivität definiert werden. Solange sie nicht verdeckt ist, kann sekundäre Aktivität bewir­ ken, daß sekundäre Ereignisse mit voller Geschwindigkeit durchgeführt werden, ohne daß Drosselung möglich ist. Wenn ein sekundäres Ereignis abgearbeitet ist, kann das System zum jeweiligen Zustand zurückkehren, indem es sich vor dem Ereignis der sekundären Aktivität befand. Sekundä­ re Ereignisse 403 umfassen EXCACTO, SWITCH, RING, WAKED und 1 und SMI#. Diese Ereignisse werden beschrieben in VESUVIUS-LS PCI System Controller Advance Data Book, Version o.6, März 1995, PICOPOWER a Cirrus Logic Com­ pany, Seiten 54 bis 67.
Zusätzlich zu sekundären Ereignissen 403 kann sekundäre Akti­ vität durch einen IRQ-Block 408 getriggert werden. Systemverwaltungsun­ terbrechungen SMI# von sekundären Ereignissen 403 können ermöglichen, daß Aktivität programmiert wird, das S/A-Signal 406, kennzeichnend für sekundäre Aktivität, zu triggern. Mindestens sechs Gerätetimer und min­ destens drei Zustandstimer können auch das S/A-Signal 406 durch die Bil­ dung eines SMI triggern. Maximale Flexibilität läßt sich durch die Fä­ higkeit erreichen, virtuell jedes Ereignis als primäre oder sekundäre Aktivität zu programmieren, um Leistungsverwaltungsziele zu erreichen. Sobald sekundäre Ereignisse 403 oder der IRQ-Block 408 sekundäre Aktivi­ tät triggern, kann das S/A-Signal 406 gebildet werden.
Gemäß Fig. 9 enthält ein Taktstopp-Kontrollblock 500 Elemente, die die Bildung eines Taktstoppsignals STPCLK 505 steuern. Die Drosselung eines periodischen Steuerregisters CTPC 501 speichert einen der Drosselungsperiode entsprechenden Wert. Eine Drosselungsperiode kann ein Zeitintervall sein, während dem das Taktstoppsignal 505 entsprechend einem Arbeitszyklus abgegeben wird, dessen Wert sowohl in ein Register programmiert als auch aus diesem gelesen werden kann. Ein Arbeitszy­ klusauswahlblock 502 kontrolliert den Arbeitszyklus des STCLK 505, wenn er während einer Drosselungsperiode angewandt wird. Eine MORE­ STOP-Anforderung 503 und eine LESSSTOP-Anforderung 504 können Ein­ gangssignale von Anwendungen oder Arbeitssystem-Software sein, um der CPU anzuzeigen, daß ein höherer oder niedrigerer Pegel von Leistungseinspa­ rung gewünscht wird. Die LESSSTOP-Anforderung 405 kann den Schlafpe­ gel der CPU über eine Veränderung des Arbeitszyklus des Taktdrosse­ lungskreises verändern, während der CPU-Takt weiterläuft. Die MORE­ STOP-Anforderung 503 kann steuern, ob der CPU-Takt während einer Drosselungsperiode oder wann immer STPCLK angesprochen wird, völlig stoppt.
Im Gegensatz zur MORESTOP-Anforderung 503 kann der CPU-Takt während der LESSSTOP-Anforderung 504 weiterlaufen. Bei laufendem CPU-Takt kann das System sofort in den Verarbeitungszustand zurückkehren, sobald STPCLK 505 entfernt wird. Die MORESTOP-Anforderung 503 stoppt den CPU-Takt, und bei Entfernung von STPCLK kann eine Verzögerungszeit von bis zu 1 ms erforderlich sein, um den CPU-Takt zu resynchronisieren und die CPU PLL zu stabilisieren.
Um eine korrekte Verdeckung der Unterbrechungsvektoradresse in einem System sicherzustellen, welches L1 (Level 1)- oder L2 (Level 2)-Cachespeicher enthält, muß die Software dafür sorgen, daß bei Auftre­ ten von Schreibvorgängen an die CS- und IP-Werte der Tafel die durch CS:IP gezeigte Adresse nicht schon im Cachespeicher L1 oder L2 vorliegt. Wenn sich die Zeile schon im Cachespeicher befindet, kann die Adresse (CS:IP), welche den Schlummernachweis triggert, nicht von außen erkannt werden, so daß ein Schlummertriggern nicht auftreten kann.
Die Vektortafeladresse (INT*4) kann nicht im Cachespeicher ab­ legbar sein, so daß jeder Schreibvorgang an die Vektortafeladresse als Verdeckung der geladenen Daten nachgewiesen wird. Da jedoch Anwendungen zu jeder Zeit neue Werte von CS:IP an die Vektortafel schreiben können, muß die Software dafür sorgen, daß die Zeile, welche die verdeckten CS:IP enthält, aus dem Cachespeicher entfernt und für ungültig erklärt wird. In einem System auf Cachespeicherbasis können diese Zeilen bereits im Cachespeicher existieren, und ein Zugriff auf diese Adresse kann nicht nachgewiesen werden, so daß eine Schlummertriggerung verhindert wird.
Die Verwendung verdeckter Adressen unter Einschluß solcher Software-Unterbrechungen oder Ereignisse, die als kennzeichnend oder in­ aktiv bekannt sind, kann auf jede feste Unterbrechungszahl oder auf je­ des nachweisbare Ereignis angewandt werden. Anstelle eines integrierten Schaltkreises können auch mehrere oder ein anderes Computersystem vor­ handen sein.

Claims (20)

1. Systemsteuerung für ein Computersystem mit einer Einrich­ tung zur Leistungseinsparung, dadurch gekennzeichnet, daß die Einrich­ tung einen Schlummertriggerungsschaltkreis zur Erzeugung eines Schlum­ mersignals bei Auftreten eines vorbestimmten Schlummertriggerungsereig­ nisses mit
einer Detektoreinrichtung (220) zum Nachweis eines Zugriffs auf mindestens eine verdeckte Adresse, die Systeminaktivität anzeigt, und
einer Speichereinrichtung zur Speicherung von mindestens einer verdeckten Adresse, die Systeminaktivität anzeigt, und
einem Adressenkomparator zum Vergleich von der mindestens einen verdeckten Adresse (630) mit einem in mindestens einem Register programmierten Wert, und zur Ausgabe eines Schlummersignals entsprechend dem Ergebnis des Vergleichs aufweist.
2. Systemsteuerung nach Anspruch 1, dadurch gekennzeichnet, daß Signale, welche eine gegenwärtige Adresse enthalten, primäre und se­ kundäre Aktivität anzeigende Signale (204) und mindestens ein Schlummer­ zeitabschaltungssignal (206) zur Erzeugung eines Taktstoppsignals (208) verarbeitbar sind.
3. Systemsteuerung nach Anspruch 1 oder 2, dadurch gekenn­ zeichnet, daß der Schlummertriggerkreis eine logische Einrichtung um­ faßt, die mit wenigstens einem Register zum Speichern einer verdeckten Adresse, wenigstens einer Empfangseinrichtung zum Einfangen der verdeck­ ten Adresse und dem Adressenkomparator gekoppelt ist, um ein Schlummer­ signal zu erzeugen, wenn die derzeitige Adresse mit einer in dem wenig­ stens einen Register gespeicherten, verdeckten Adresse übereinstimmt, und die in dem wenigstens einen Register gespeicherte verdeckte Adresse, die in der wenigstens einen Einfangeinrichtung eingefangen ist, auf den neuesten Stand zu bringen.
4. Systemsteuerung nach einem der Ansprüche 1 bis 3, da­ durch gekennzeichnet, daß
ein Prefetch-Detektorschaltkreis (320) zum Nachweis eines Pro­ zessor-Prefetch-Zyklus und zur Erzeugung eines Prefetch-Detektorsignals (305) als Antwort auf einen nachgewiesenen Prefetch-Zyklus sowie
ein Drosselungsschaltkreis (500) vorgesehen ist, der mit dem Schlummertriggerungsschaltkreis gekoppelt und durch diesen aktivierbar sowie an den Prefetch-Detektorschaltkreis (320) zur kontrollierten An­ wendung eines Taktstoppsignals (505) entsprechend einem vorbestimmten Arbeitszyklus während einer vorbestimmten Drosselungsperiode gekoppelt und durch diesen blockierbar ist.
5. Systemsteuerung nach Anspruch 4, dadurch gekennzeichnet, daß der Prefetch-Detektorschaltkreis eine erste Einrichtung zum Empfang und zur Speicherung vorher abgerufener Adressen und eine zweite, mit der ersten gekoppelte Einrichtung zum Adressenvergleich umfaßt, wobei letztere eine dritte Einrichtung zum Nachweis, ob die gegenwärtige Adresse eine verdeckte Adresse ist, und eine vierte Einrichtung zum Nachweis, ob die gegenwärtige Adresse sequentiell zu den vorher abgeru­ fenen Adressen ist, umfaßt.
6. Systemsteuerung nach Anspruch 5, dadurch gekennzeichnet, daß die dritte Einrichtung ein Register enthält, welches an den Adres­ senkomparator zur Speicherung eines der verdeckten Adresse entspre­ chenden Wertes gekoppelt ist.
7. Systemsteuereinheit aus Anspruch 5 oder 6, dadurch gekenn­ zeichnet, daß die vierte Einrichtung des Prefetch-Detektorschaltkreises (320) ein Register zum Speichern einer vorherigen Adresse und eine an das Register gekoppelte Einrichtung zum Vergleich einer gegenwärtigen Adresse (301) mit der vorherigen Adresse (307) und zum Erzeugen eines Prefetch-Detektorsignals (305) umfaßt, falls die vorherige Adresse sich von der gegenwärtigen Adresse um den Wert 1 unterscheidet.
8. Systemsteuerung nach einem der Ansprüche 4 bis 7, dadurch gekennzeichnet, daß der Drosselungsschaltkreis (500) ein erstes Register (501) zur Speicherung eines ersten Wertes entsprechend der Dauer der Drosselungsperiode, ein zweites Register (502) zur Speicherung eines zweiten Wertes entsprechend einem Arbeitszyklus und eine Logik enthält, die an die erste und zweite Registereinrichtung gekoppelt ist, und die den ersten und zweiten Wert und ein Schlummersignal empfängt, den Dros­ selungsschaltkreis freigibt und entsprechend dem ersten und zweiten Wert als Antwort auf das Schlummersignal ein Taktstoppsignal (505) abgibt.
9. Systemsteuerung nach Anspruch 8, dadurch gekennzeichnet, daß der Drosselungsschaltkreis (500)
eine Einrichtung zum Empfang eines LESSSTOP-Signals (504), welches auf die Aufforderung zur Verminderung der Leistungseinsparung in der CPU hinweist, und
eine auf das LESSSTOP-Signal antwortende Einrichtung zur Ve­ ränderung des Arbeitszyklus des Taktstoppsignals (505) aufweist.
10. Verfahren zur Leistungseinsparung in einem Computersy­ stem mit einer Systemsteuerung, dadurch gekennzeichnet, daß ein Takt­ stoppsignal kontrolliert angewandt wird, indem ein Schlummertriggerungs­ ereignis im Computersystem überprüft und ein Schlummersignal akti­ viert, das Schlummersignal während eines Prozessor-Prefetch-Zyklus blockiert, primäre und sekundäre Aktivität überprüft und das Schlum­ mersignal, falls primäre und sekundäre Aktivität vorliegen, blockiert und das Taktstoppsignal während einer Drosselungsperiode entsprechend dem programmierbaren Arbeitszyklus, während das Schlummersignal ak­ tiv ist, abgegeben wird.
11. Verfahren nach Anspruch 10, dadurch gekennzeichnet, daß zum Nachweis des Schlummertriggerungsereignisses und zur Erzeugung des Schlummersignals ein Wert in einem einer verdeckten Adresse ent­ sprechenden Register gespeichert wird, die verdeckte Adresse erfaßt und mit der gegenwärtigen Adresse verglichen wird, ein Schlummersignal erzeugt wird, falls die gegenwärtige Adresse mit dem im Register gespei­ cherten Wert übereinstimmt, und die verdeckte Adresse durch den Nach­ weis eines Schreibens an einen Unterbrechungsvektor aktualisiert wird.
12. Verfahren nach Anspruch 10 oder 11, dadurch gekennzeich­ net, daß zum Blockieren des Schlummersignals während eines Prozes­ sor-Prefetch-Zyklus ein Wert in einem Register entsprechend der vor­ herigen Adresse gespeichert, mit der gegenwärtigen Adresse verglichen und ein Prefetch-Detektorsignal erzeugt wird, wenn die gegenwärtige Adresse von der vorherigen Adresse um den Wert 1 abweicht.
13. Verfahren nach einem der Ansprüche 10 bis 12, dadurch gekennzeichnet, daß zum Nachweis primärer und sekundärer Aktivität und zum Blockieren des Schlummersignals bei Vorhandensein von primärer und sekundärer Aktivität mindestens ein Wert in dem ersten von minde­ stens einem Register für die primäre Aktivität (402) gespeichert, min­ destens ein Wert im zweiten von mindestens einem Register für die se­ kundäre Aktivität (403) gespeichert, primäre Aktivität, wenn der Wert des ersten von mindestens einem Register mit der gegenwärtigen Aktivi­ tät übereinstimmt, überprüft, sekundäre Aktivität, wenn der Wert des zweiten von mindestens einem Register mit der gegenwärtigen Aktivität übereinstimmt, überprüft, das Schlummersignal, wenn primäre Aktivität nachgewiesen wurde, blockiert, und das Schlummersignal, wenn sekundäre Aktivität nachgewiesen wurde, blockiert wird.
14. Verfahren nach einem der Ansprüche 10 bis 12, dadurch gekennzeichnet, daß zum Nachweis primärer und sekundärer Aktivität und zum Blockieren des Schlummersignals bei Auftreten eines Schlummer­ zeitabschaltungssignals mindestens ein Wert in dem ersten von minde­ stens einem Register für die primäre Aktivität (402) gespeichert, min­ destens ein Wert im zweiten von mindestens einem Register für die se­ kundäre Aktivität (403) gespeichert, primäre Aktivität, wenn der Wert des ersten von mindestens einem Register mit der gegenwärtigen Aktivi­ tät übereinstimmt, überprüft, sekundäre Aktivität, wenn der Wert des zweiten von mindestens einem Register mit der gegenwärtigen Aktivität übereinstimmt, überprüft, das Schlummersignal, wenn primäre Aktivität nachgewiesen wurde, blockiert, und das Schlummersignal, wenn sekundäre Aktivität nachgewiesen wurde, blockiert wird.
15. Verfahren nach Anspruch 13 oder 14, dadurch gekennzeich­ net, daß zum Nachweis von primärer Aktivität bei Übereinstimmung des Wertes des ersten mindestens einen Registers (403) mit der gegenwärtigen Aktivität ein Wert im ersten mindestens einen Register, wobei der Wert aus mindestens einer Adresse besteht, und ein Hardware-Signal gespei­ chert werden.
16. Verfahren nach einem der Ansprüche 13 bis 15, dadurch gekennzeichnet, daß zum Nachweis von sekundärer Aktivität bei Überein­ stimmung des Wertes des ersten mindestens einen Registers (403) mit der gegenwärtigen Aktivität ein Wert im ersten mindestens einen Register, wobei der Wert aus mindestens einer Adresse besteht, und ein Hardwa­ re-Signal gespeichert werden.
17. Verfahren nach einem der Ansprüche 10 bis 16, dadurch ge­ kennzeichnet, daß zum Blockieren des Schlummersignals bei Nachweis pri­ märer Aktivität ein Signal zur Beendigung des Taktstoppsignals (505) an den Drosselungsschaltkreis (500) zur Kontrolle der Abgabe eines Takt­ stoppsignals im gegenwärtigen Leistungseinsparmodus übertragen wird.
18. Verfahren nach einem der Ansprüche 10 bis 17, dadurch ge­ kennzeichnet, daß zum Blockieren des Schlummersignals bei Nachweis von sekundärer Aktivität ein Signal zur Beendigung des Taktstoppsignals (505) an den Drosselungsschaltkreis (500) zur Kontrolle der Abgabe eines Taktstoppsignals im gegenwärtigen Leistungseinsparungsmodus übertragen wird.
19. Verfahren nach einem Ansprüche 10 bis 18, dadurch ge­ kennzeichnet, daß die Anwendung des Taktstoppsignals in einen vorheri­ gen Leistungseinsparungsmodus, falls keine sekundäre Aktivität mehr nachgewiesen wird, wiederhergestellt wird.
20. Verfahren nach einem der Ansprüche 13 bis 18, dadurch ge­ kennzeichnet, daß ein programmierbarer und im Register gespeicherter Zeitabschaltungswert gelesen, der programmierbare Zeitabschaltungswert mit dem NAP-Zählerausgang verglichen und ein Zeitabschaltungssignal, falls der programmierbare Zeitabschaltungswert mit dem NAP-Zähleraus­ gangswert übereinstimmt, erzeugt wird.
DE19720805A 1996-05-17 1997-05-16 Systemsteuerung für ein Computersystem Ceased DE19720805A1 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/649,557 US5954819A (en) 1996-05-17 1996-05-17 Power conservation method and apparatus activated by detecting programmable signals indicative of system inactivity and excluding prefetched signals
US08/650,355 US5983355A (en) 1996-05-20 1996-05-20 Power conservation method and apparatus activated by detecting specific fixed interrupt signals indicative of system inactivity and excluding prefetched signals
US08/665,778 US5983356A (en) 1996-06-18 1996-06-18 Power conservation method and apparatus activated by detecting shadowed interrupt signals indicative of system inactivity and excluding prefetched signals

Publications (1)

Publication Number Publication Date
DE19720805A1 true DE19720805A1 (de) 1998-03-12

Family

ID=27417825

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19720805A Ceased DE19720805A1 (de) 1996-05-17 1997-05-16 Systemsteuerung für ein Computersystem

Country Status (1)

Country Link
DE (1) DE19720805A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020043642A1 (de) 2018-08-27 2020-03-05 Robert Bosch Gmbh Verfahren zum betreiben einer recheneinrichtung

Citations (2)

* 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
US5511203A (en) * 1994-02-02 1996-04-23 Advanced Micro Devices Power management system distinguishing between primary and secondary system activity

Patent Citations (2)

* 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
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
WO2020043642A1 (de) 2018-08-27 2020-03-05 Robert Bosch Gmbh Verfahren zum betreiben einer recheneinrichtung

Similar Documents

Publication Publication Date Title
DE69907512T2 (de) Gerät und verfahren zur automatischen frequenzregelung einer zentralen verarbeitungseinheit
DE69733912T2 (de) Computersystem mit Wiederaufnahmefunktion und Verfahren dafür
DE69432514T2 (de) Leistungssteuerung in einem Computersystem
DE4228756C2 (de) Unterbrechungseinrichtung für ein Mikroprozessorsystem
US6438697B2 (en) Demand-based processor clock frequency switching
US7869835B1 (en) Method and system for pre-loading and executing computer instructions within the cache memory
EP0765499B1 (de) Dynamische prozessorleistung und leitstungsverwaltung in einem rechnersystem
DE69532426T2 (de) Stromverwaltungsarchitektur für Rechnersystem
JP4701321B2 (ja) メモリ管理
US7434072B2 (en) Integrated circuit power management control
DE19882704C2 (de) Verfahren und Einrichtung für ein Stromversorgungsmanagement
US6633940B1 (en) Method and apparatus for processing interrupts in a computing system
DE19720806A1 (de) Systemsteuerung für ein Computersystem
DE102006036301B4 (de) Energiesparverfahren für einen Computer und Computer zum Durchführen des Verfahrens
DE10393396B4 (de) Schnittstelle und Vorrichtungstreiber zum lokalen Leistungsmanagement sowie Verfahren und Software zu deren Steuerung
US5649212A (en) Information processing system having a floppy disk drive with disk protection during a resume mode
CN1639671A (zh) 具有总线主控设备的计算机系统中的功率降低方法
US5983356A (en) Power conservation method and apparatus activated by detecting shadowed interrupt signals indicative of system inactivity and excluding prefetched signals
DE69320417T3 (de) Verfahren und Gerät zur Änderung der Taktfrequenz eines Prozessors
JP3082175B2 (ja) 情報処理装置
DE69333542T2 (de) Verfahren in einem Mikroprozessor mit hardwaregesteuerter Leistungsverwaltung und auswählbaren Eingangs- Ausgangssteuerungssteckerstiften
DE19720805A1 (de) Systemsteuerung für ein Computersystem
US4953077A (en) Accelerated data transfer mechanism using modified clock cycle
DE19720804A1 (de) Systemsteuerung für ein Computersystem
DE69332813T2 (de) Tragbarer Rechner mit zugeordneter Registergruppe und Peripheriesteuerbus zwischen Systembus und Peripheriesteuerung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection