DE69933515T2 - Peripherieprozessor - Google Patents
Peripherieprozessor Download PDFInfo
- Publication number
- DE69933515T2 DE69933515T2 DE69933515T DE69933515T DE69933515T2 DE 69933515 T2 DE69933515 T2 DE 69933515T2 DE 69933515 T DE69933515 T DE 69933515T DE 69933515 T DE69933515 T DE 69933515T DE 69933515 T2 DE69933515 T2 DE 69933515T2
- Authority
- DE
- Germany
- Prior art keywords
- unit
- interrupt
- central processing
- processor
- clock
- 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.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microcomputers (AREA)
Description
- ALLGEMEINER STAND DER TECHNIK
- Die vorliegende Erfindung betrifft einen Peripheriesteuerprozessor oder Eingangs-/Ausgangssteuerprozessor insbesondere für Automotive-, Kommunikations- und Verbraucherproduktanwendungen. Ein solcher Peripheriesteuerprozessor kann im allgemeinen ein Direktspeicherzugriffs-Controller (Direct Memory Access Controller) mit verbesserten Funktionen sein. Direktspeicherzugriffs-Controller (DMA-Controller) bieten gewöhnlich unabhängige Funktionen in einem mikroprozessorgesteuerten System. Diese DMA-Controller weisen begrenzte Funktionen auf, für erweiterte Funktionen ist der Hauptmikroprozessor in dem System notwendig. Viele Operationen, die auf dem Transfer von Daten basieren, erfordern eine einfache oder erweiterte Modifikation der zu transferierenden Daten, oder häufig ist der Transfer konditional und kann unter verschiedenen Bedingungen gestoppt oder unterbrochen werden. Wenn diese erweiterten Kriterien zu komplex werden, ist Interaktion zwischen dem DMA-Controller und dem Mikroprozessor des Systems notwendig. Die Gesamtgeschwindigkeit des Systems wird somit vermindert und der Mikroprozessor wird blockiert und kann keine anderen Tasks ausführen. Außerdem wird die DMA-Controller in einem solchen System nur in speziellen Tasks genutzt. Für einen signifikanten Zeitraum während der Operation des Systems wird sie nicht benötigt. Bei derzeitigen Systemen muß dessen ungeachtet die DMA-Controller während dieser Periode aktiv sein und verbraucht somit unnötigerweise Strom.
- Die Schrift EP-A-0 676 686 (Advanced Micro Devices Inc) vom 11.10.1995 beschreibt einen Prozessor mit einer zentrale Verarbeitungseinheit mit mindestens einem Steuerausgang, die Takte steuert wird und einen statischen Entwurf aufweist, wobei eine steuerbare Taktein heit einen Prozessortakt erzeugt, der der zentralen Verarbeitungseinheit zugeführt wird, die einen mit dem Steuerausgang der zentralen Verarbeitungseinheit verbundenen Taktsperreingang aufweist, einen mit der zentralen Verarbeitungseinheit zum Speichern von Interrupt-Routinen und Daten gekoppelten Speicher, eine mit der zentralen Verarbeitungseinheit zum Erzeugen von Interrupt-Signalen gekoppelte Interrupt-Steuereinheit, eine Interrupt-Ausführungseinheit zum Ausführen von Interrupt-Routinen, wobei wenn keine Interrupt-Routine ausgeführt wird, die Takteinheit gesperrt und der Betrieb der zentralen Verarbeitungseinheit gestoppt wird.
- KURZFASSUNG DER ERFINDUNG
- Die Aufgabe der Erfindung wird mit den in den angeführten Ansprüchen definierten Merkmalen gelöst. Eine Aufgabe der vorliegenden Erfindung ist daher die Bereitstellung eines Peripheriesteuerprozessors mit minimalem Stromverbrauch. Eine weitere Aufgabe der vorliegenden Erfindung ist die Bereitstellung eines solchen Peripheriesteuerprozessors mit maximaler Funktionalität.
- Diese Aufgabe wird durch einen Prozessor gelöst, der eine zentrale Verarbeitungseinheit umfaßt, die taktgesteuert ist und einen statischen Entwurf aufweist. Er umfaßt ferner einen mit der zentralen Verarbeitungseinheit zum Speichern von Interrupt-Routinen und Daten gekoppelten Speicher, eine mit der zentralen Verarbeitungseinheit zum Erzeugen von Interrupt-Signalen gekoppelte Interrupt-Steuereinheit, eine Interrupt-Ausführungseinheit zum Ausführen von Interrupt-Routinen. Wenn keine Interrupt-Routine ausgeführt wird, wird der Betrieb der zentralen Verarbeitungseinheit gestoppt. Sie wird sich praktisch in einem Haltezustand befinden, der keinerlei Anweisungen ausführt.
- Bei einer weiteren Ausführungsform umfaßt die zentrale Verarbeitungseinheit zusätzlich einen Steuerausgang und die Prozessoranordnung umfaßt ferner eine steuerbare Takteinheit, die einen der zentralen Verarbeitungseinheit zugeführten Prozessortakt erzeugt, wobei die steuerbare Takteinheit einen mit der Interrupt-Steuereinheit gekoppelten Freigabeeingang und einen mit dem Steuerausgang der zentralen Verarbeitungseinheit gekoppelten Taktsperreingang aufweist, wobei die Takteinheit gesperrt wird, wenn keine Interrupt-Routine ausgeführt wird.
- Ein Peripheriesteuerprozessor gemäß der vorliegenden Erfindung ist ein unabhängiger Prozessor und wird zum Beispiel auf einem Mikrosteuerungschip integriert. Der Peripheriesteuerprozessor gemäß der vorliegenden Erfindung hilft der zentral Verarbeitungseinheit eine Mikrosteuerung bei vielen Tasks, die normalerweise von einer Direktspeicherzugriffssteuerung in Kombination mit Interrupt-Service-Routinen einer zentralen Verarbeitungseinheit durchgeführt werden.
- Bei einer weiteren Ausführungsform umfaßt ein Prozessor eine zentrale Verarbeitungseinheit, die taktgesteuert ist, und mindestens einen Steuerausgang, einen mit der zentralen Verarbeitungseinheit zum Speichern von Interrupt-Routinen und Daten gekoppelten Speicher, eine mit der zentralen Verarbeitungseinheit zum Erzeugen von Interrupt-Signalen gekoppelte Interrupt-Steuereinheit, eine steuerbare Takteinheit, die mindestens einen ersten und einen zweiten, der zentralen Verarbeitungseinheit zugeführten Prozessortakt erzeugt. Der erste Takt ist höher als der zweite Takt. Die steuerbare Takteinheit umfaßt einen mit der Interrupt-Steuereinheit und mit dem Steuerausgang der zentralen Verarbeitungseinheit gekoppelten Taktsteuereingang. Die Takteinheit erzeugt den ersten Takt, wenn irgendeine Interrupt-Routine ausgeführt wird, und den zweiten Takt, wenn keine Interrupt-Routine ausgeführt wird.
- Der Peripheriesteuerprozessor gemäß der vorliegenden Erfindung ist völlig interrupt-gesteuert. Es wird kein Kernel vorgesehen. Wenn keine Interrupt-Routine ansteht, kann der Prozessor sich somit selbst deaktivieren, indem das Taktsignal gesperrt wird, oder kann sein Taktsignal verlangsamen und dadurch einen verminderten Stromverbrauch gewähren. Bei einem Interrupt stellt sich das Taktsignal wieder her und der Prozessor kann das jeweilige Interrupt-Programm ausführen. Eine solche Kombination von Mikrosteuerung und Peripheriesteuerprozessor kann vorzugsweise in batteriebetriebenen Systemen verwendet werden, da sie unnötigen Stromverbrauch vermeidet.
- KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 zeigt ein Blockschaltbild einer Ausführungsform eines Peripheriesteuerprozessors gemäß der vorliegenden Erfindung, -
2A und2B zeigen zwei verschiedene Organisationen des Codespeichers, -
3A ,3B und3C zeigen drei verschiedene Organisationen des Datenspeichers, -
4 zeigt die zentrale Verarbeitungseinheit mit einem ersten Watchdog-Merkmal, -
5 zeigt eine weitere Ausführungsform mit einem zweiten Watchdog-Merkmal, -
6 zeigt eine Debug-Einheit in Kombination mit einem Peripheriesteuerprozessors, -
7 zeigt eine zweite Ausführungsform eines Peripheriesteuerprozessors mit einer Debug-Steuereinheit, -
8 zeigt eine weitere Ausführungsform einer Taktsteuereinheit gemäß der vorliegenden Erfindung, und -
9 zeigt eine Ausführungsform der Taktsteuereinheit. - BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
- Gemäß
1 umfaßt ein Peripheriesteuerprozessor eine zentrale Verarbeitungseinheit1 mit einem Registerfile112 , das über jeweilige Busse an einen Programmspeicher11 und an einen Datenspeicher10 angekoppelt ist. Die zentrale Verarbeitungseinheit1 ist taktgesteuert und umfaßt einen völlig statischen Entwurf. Eine Taktsteuereinheit2 ist mit einem Oszillator3 gekoppelt und gibt ein Taktsignal aus, das dem Eingang1A der zentralen Verarbeitungseinheit1 zugeführt wird. Die zentrale Verarbeitungseinheit1 erzeugt ein Steuersignal, das Eingang2A der Taktsteuereinheit2 zugeführt wird. Eine Busschnittstelleneinheit6 teilt dieselben Busse wie der Programmspeicher11 und der Datenspeicher10 . Andererseits ist die Busschnittstelleneinheit6 mit einem Bus9 gekoppelt, der den Peripheriesteuerprozessor zum Beispiel mit einem Bussystem einer Mikrosteuerung verbindet. Die Busschnittstelleneinheit6 umfaßt außerdem Konfigurations- oder Spezialfunktionsregister116 , die der zentralen Verarbeitungseinheit1 durch den internen Bus und einem externen System durch den Bus9 zugänglich sind. Weiterhin wird eine Service-Anforderungseinheit5 vorgesehen, die eine Service-Anforderung oder einen Interrupt erzeugt, die bzw. der an einen Mikrosteuerungs-CPU-Interrupt-Bus8 angekoppelt ist. Die Service-Anforderungseinheit5 ist mit der zentralen Verarbeitungseinheit1 gekoppelt. Eine Interrupt-Steuereinheit4 umfaßt eine Interrupt-Arbitrierungseinheit4B , die an einen Peripheriesteuerprozessor-Interrupt-Bus7 angekoppelt ist. Der Bus7 ist außerdem mit der Service-Anforderungseinheit5 gekoppelt, die außerdem mit der Interrupt-Steuereinheit4 gekoppelt ist. Die Interrupt-Steuereinheit4 erzeugt ein Interrupt-Signal4C und einen Interrupt-Vektor4D , die der zentralen Verarbeitungseinheit1 zugeführt werden. Die Interrupt-Steuereinheit4 kann ferner ein Steuersignal4A erzeugen, das Eingang2B der Taktsteuereinheit2 zugeführt wird. - Die zentrale Verarbeitungseinheit
1 enthält den Anweisungs-Sequencer, Transfersteuereinheit und die Arithmetik-Logik-Einheit. Sie arbeitet nur interruptgesteuert. Anders ausgedrückt tut die zentrale Verarbeitungseinheit nichts, wenn kein Interrupt ansteht. Wenn eine Interrupt-Routine eingeleitet ist, wird der jeweilige Kontext aus dem Datenspeicher in die jeweiligen Register geladen und es wird eine in dem Programmspeicher11 gespeicherte jeweilige Routine ausgeführt. Der Programmspeicher11 kann eine beliebige Art von Anweisungsspeicherung aus nur Lesespeicher, Registern, statischem Direktzugriffsspeicher bis hin zu Flash- Speicher sein. Der Datenspeicher10 ermöglicht schnelle Ladevorgänge und Speicherung des anfänglichen allgemeinen Kontexts für jede Interrupt-Routine und die Speicherung von Konstanten, Variablen und Semaphoren. Die Busschnittstelleneinheit6 ermöglicht es dem Peripheriesteuerprozessor, auf alle Mikrosteuerungsbusse, gefundene Peripheriegeräte und andere Betriebsmittel zuzugreifen. Die zentrale Verarbeitungseinheit1 enthält außerdem ein Registerfile112 . Durch den Mikrosteuerungsbus9 besitzen die Mikrosteuerungs-CPU und andere Bus-Master vollen Zugang zu dem Programm- und Datenspeicher und zu den Konfigurationsregistern116 des Peripheriesteuerprozessors. Teile des Datenspeichers, die nicht von den Programmen des Peripheriesteuerprozessors benutzt werden, könnten auch als zusätzlicher globaler Datenspeicher für die Mikrosteuerung verwendet werden. - Das Hauptmerkmal der vorliegenden Erfindung ist, daß die zentrale Verarbeitungseinheit des Peripheriesteuerprozessors keinen Kernel vorsieht. Die zentrale Verarbeitungseinheit
1 wird völlig durch Interrupt-Routinen gesteuert. Anders ausgedrückt hält die zentrale Verarbeitungseinheit gewöhnlich einfach an, wenn keine Interrupt-Routine ausgeführt wird. Die zentrale Verarbeitungseinheit kann mit dem letzten ausgeführten Befehl ein Eingang2A der Steuereinheit2 zugeführtes Signal erzeugen, das bewirkt, daß die Taktsteuereinheit2 mit der Erzeugung eines Eingang1A der zentralen Verarbeitungseinheit1 zugeführten Taktsignals aufhört. Somit befindet sich die zentrale Verarbeitungseinheit in einem vollständigen Haltezustand und deshalb verbraucht die zentrale Verarbeitungseinheit1 aufgrund ihres statischen Entwurfs keinen Strom. Die Mikrosteuerung des Systems oder jedes andere Peripheriegerät kann durch den Peripheriesteuerprozessor-Interrupt-Bus7 einen neuen Direktspeicherzugriff anfordern. Bei einer solchen Anforderung erzeugt die Interrupt-Arbitrierungseinheit4B eine Interrupt-Anforderung, die durch die Interrupt-Steuereinheit4 in einen Interrupt-Vektor übersetzt wird. Die Interrupt-Steuereinheit4 erzeugt ein Freigabesignal4A , das Eingang2B der Taktsteuereinheit2 zugeführt wird. Bei einem solchen Signalstart beginnt die Taktsteuereinheit2 , der zentralen Verarbeitungseinheit1 durch Eingang1A ein Taktsignal zuzuführen. Gleichzeitig führt die Interrupt-Steuereinheit4 der zentralen Verarbeitungseinheit1 eine Interrupt-Anforderung4C und einen Interrupt-Vektor4D zu. Dann beginnt die zentrale Verarbeitungseinheit1 mit der Ausführung des jeweiligen in dem Programmspeicher11 gespeicherten Interrupt-Programms. -
9 zeigt eine mögliche Ausführungsform der Taktsteuereinheit2 . Diese Ausführungsform erlaubt ein sicheres Ein- und Ausschalten des Taktsignals1a . Ein aus der zentralen Verarbeitungseinheit1 erzeugtes Belegt-Signal2a wird durch einen Inverter200 mit einem ersten Eingang eines NAND-Gatters202 gekoppelt. Der zweite Eingang des NAND-Gatters202 wird durch einen Inverter201 mit dem durch die Interrupt-Steuereinheit4 erzeugten Interrupt-Signal2b gekoppelt. Der Ausgang des NAND-Gatters202 wird mit dem Eingang des Latch203 verbunden. Der Ausgang des Latch203 wird mit dem ersten Eingang eines AND-Gatters204 gekoppelt. Der erste Eingang des AND-Gatters204 wird mit dem Ausgangssignal des Oszillators3 verbunden. Das Taktsignal aus dem Oszillator3 triggert mit einem negativen Taktpegel den Latch203 . - Die zentrale Verarbeitungseinheit
1 liefert das Belegt-Signal2a solange etwaige Interrupt-Routinen anstehen. Dieses Signal wird auf 0 gesetzt, wenn die Pipeline gelöscht wurde. Danach führt die Taktsteuereinheit2 folgendes durch: wenn kein Interrupt erzeugt wird, wird das Signal2b auch auf Null gesetzt. Der Ausgang des NAND-Gatters202 geht deshalb auf low. Diese Signaländerung wird an dem negativen Taktpegel des Taktsignals mittels des Latchs203 gelatcht. Das AND-Gatter204 blockiert dann das Taktsignal. Die zentrale Verarbeitungseinheit ist heruntergefahren. Dies ermöglicht ein sauberes Anhalten des Takts in einem Low-Zustand und ein sauberes Herauffahren beim Setzen des Interrupt-Signals2b . Außerdem ermöglicht dies, daß die beiden Signale2a und2b direkt aus Registerausgängen kommen. Sobald ein Interrupt auftritt und das Signal2b gesetzt wird, wird der Takt zwangsmäßig eingeschaltet, der Kern bemerkt, daß ein Interrupt gesetzt ist und beginnt mit dem entsprechenden Wiederherstellen. Sobald die letzte Anweisungssequenz abgeschlossen ist, wird das Belegt-Signal wieder auf null gesetzt. - Das System gemäß der vorliegenden Erfindung verwendet eine Arbitrierungseinheit, um die Priorität der angeforderten Interrupts zu bestimmen. Bei diesem Schema nimmt jeder Anforderer, einschließlich der zentralen Verarbeitungseinheit
1 , teil. Die zentrale Verarbeitungseinheit nimmt mit ihrem eigenen Prioritätsniveau teil, oder wenn eine Interrupt-Routine gerade ausgeführt wird, mit dem jeweiligen Prioritätsniveau dieser Interrupt-Routine. Wenn viele Interrupt-Anforderungen anstehen, wird in jeder Runde bestimmt, welcher Anforderer die höchste Priorität hat. In jeder Runde wird ein einziges oder werden mehrere Bit der Anforderer-Priorität miteinander verglichen, bis ein einziger An forderer übrig bleibt. Natürlich kann die Priorität eines gewinnenden Anforderers mit jedem beliebigen anderen Arbitrierungsschema oder -mechanismus bestimmt werden. - Ein allgemeines Programm wird gewöhnlich gestartet, wenn die Interrupt-Arbitrierungsrunde zu einer gewinnenden Interrupt-Anforderung führt und der Peripheriesteuerprozessor ruht oder die gerade ausgeführte Interrupt-Service-Routine Interrupts erlaubt und ihre aufgegebene Prioritätsnummer kleiner als die gewinnende Prioritätsnummer der Interrupt-Anforderung ist.
-
2 und3 zeigen Organisationen des Programmspeichers11 und des Datenspeichers10 , die programmierbar sind. Eines der Systemregister in den Konfigurationsregistern116 definiert, ob der Programmspeicher als partitionierter Speicher (siehe2A ) oder als nichtpartitionierter Speicher (siehe2B ) verwendet wird. Der in2A gezeigte partitionierte Speicher unterteilt den Speicher11 in zwei Blöcke11A und11B . Der erste Block11A des Speichers11 ist die allgemeine Eingabe-Codetabelle, bestehend aus zwei Anweisungsschlitzen wie zum Beispiel zwei 16-Bit-Wörtern für jeden implementierten Kanal und der zweite Block11B ist der Hauptcodeblock. Es wird angenommen, daß der Programmspeicher11 als ein 32-Bit-Speicher organisiert ist und jede aufeinanderfolgende Adresse des Speicherblocks11A eine Basisadresse für einen jeweiligen Kanal definiert. Wenn der Peripheriesteuerprozessor so betrieben wird, daß jeder Kanal immer an seiner Basisadresse startet, wird der Programmzähler auf der Basis der Kanalnummer durch eine einfache Gleichung bestimmt. Wenn mehr als zwei Anweisungsschlitze für den Kanal erforderlich sind, muß eine der Anweisungen eine Verzwei gungs- oder Sprunganweisung zu dem Rest des Kanal-Codes sein, der sich in dem zweiten Block11B befindet. Aufgrund dieser Packung ist es am besten, aufeinanderfolgende Kanalnummern beginnend mit der Nummer 1 zu verwenden. Die Kanal-Eintrittstabellenadresse für einen spezifischen Kanal befindet sich auf dem Mikrosteuerungsbus9 : Codebasisadresse + 04H × Kanalnummer, und auf dem internen Bus definiert durch den Programmzähler von CPU 1:02H × Kanalnummer. - Die Busschnittstelle
6 ermöglicht außerdem die Ausführung von Code, der in einem mit dem Mikrosteuerbus9 verbundenen Speicher gespeichert ist. Deshalb übersetzt die Busschnittstelleneinheit6 den Programmzählerabruf in die jeweilige Mikrosteuerungs-Busadresse9 . - Der Codespeicher muß nicht partitioniert werden, wie in
2B gezeigt. Wenn das jeweilige Steuerregister in den Konfigurationsregistern116 angibt, daß ein nichtpartitionierter Speicher verwendet wird, beginnt jedes Kanalprogramm an einem spezifischen Startprogrammzähler, der in dem Datenspeicher10 gespeichert ist. Der Benutzer muß sicherstellen, daß der Datenspeicher10 ordnungsgemäß programmiert ist, um alle Eintrittsadressen für jedes Kanalprogramm zu definieren. -
3 zeigt drei verschiedene Arten von programmierbaren Datenspeicherorganisationen.3A zeigt die sogenannte Vollkontextorganisation. Es wird angenommen, daß das Registerfile112 mindestens acht Vielzweckregister enthält. Der Datenspeicher10 ist in zwei Hauptbereiche aufgeteilt, allgemeiner Kontextsicherungsbereich und allgemeine spezifische Parameterblöcke. In3A repräsentiert der erste Block den Inhalt aller Vielzweckregister jedes Kanals in dem Speicherblock10A .3B zeigt eine Organisation, die nur die oberen vier Register jedes Kanals in dem Speicherblock10A benutzt. Diese Organisation ermöglicht das Speichern anderer Daten in dem Datenspeicher10 .3C zeigt einen minimalen Kontext, wobei nur zwei Register jedes Kanalkontexts in dem Speicherblock10A gespeichert werden. Durch diese Organisation wird es möglich, sogar noch mehr Daten in dem Datenspeicher10 zu speichern. Das Registerfile112 des Peripheriesteuerprozessors umfaßt bei dieser Ausführungsform acht Vielzweckregister mit anwendungsexpliziten und bestimmten impliziten Verwndungszwecken. Diese Register sind Peripheriesteuerprozessorprogrammen alle direkt zugänglich. Von den acht Registern ist Register R7 das einzige, das nicht als Vielzweckregister benutzt werden kann. Dieses Register R7 enthält die Datenzeiger- und statusregisterbit. Alle acht Register werden im allgemeinen wie in Tabelle 1 beschrieben verwendet. - Der Inhalt von R0 bis R7 stellt den vollen Kontext eines Kanals dar. Durch die Register R4 bis R7 wird ein kleiner Kontext dargestellt und ermöglicht einen korrekten Betrieb von Direktspeicherzugriffskanälen sowie von Kanälen, die nicht auf Ersparnisse großer Mengen von Daten zwischen Kanalaufruf reagieren. Ein Minimaler Kontext erlaubt ein Sichern und Wiederherstellen von R6 bis R7.
- Die Kanaldaten gemäß
3A -3C liefern einen zusätzlichen Parameter für jeden Kanal, auf den während der Ausführung der jeweiligen Kanal-Interrupt-Routine zugegriffen werden kann. Da jeder Kanal seinen eigenen Datenzeiger DPTR (zum Beispiel R7 bei dieser Ausführungsform) besitzt, sind alle Kombinationen von separaten zu überlappenden Parameterblöcken möglich. Normalerweise sind Zugriffe auf den Datenspeicher10 relativ zu der Basisadresse 0 des Datenspeichers10 . Die Speicherstellen allgemeiner Parameter im Speicher sind beliebig. Die Parameter weisen keine bestimmte Beziehung zu einer Kanalnummer auf. Wieder wird, wenn Zugriffe auf den Datenspeicher10 über den externen MC-Bus9 abgeschlossen werden, der Datenspeicherzugriff durch die Busschnittstelleneinheit6 in eine interne Busadresse übersetzt. - Ein Spezialfunktionsregister in den Konfigurationsregistern
116 gibt an, welche Art von Kontext (minimal, klein oder voll) verwendet wird. Ein voller Kontext liefert die größte Flexibilität, während ein minimaler Kontext einen schnelleren Kontextwechsel bereitstellt und außerdem abhängig von der Größe des Datenspeichers10 mehr verfügbare Kanäle ergeben kann. Dieses Schema ermöglicht durch seine Programmierbarkeit ein sehr flexibles System, das vielfältig programmiert werden kann, um den Bedürfnissen einer jeweiligen Task zu genügen. - Um etwaige Fehler im Ausführungsfluß eines Kanalprogramms zu verhindern, kann wie in
4 gezeigt, ein allgemeines Watchdog-Merkmal bereitgestellt werden.4 zeigt eine vereinfachte zentrale Verarbeitungseinheit mit einer einfachen Pipeline mit einer mit dem Codespeicher11 gekoppelten Abrufeinheit, einer mit der Abrufeinheit100 gekoppelten Decodiereinheit101 , einer mit der Decodiereinheit101 gekoppelte Lesespeicher/-registereinheit102 und einer mit dem Datenspeicher10 gekoppelten Schreibausführeinheit103 . Die Lesespeicher/-registereinheit102 ist auch mit dem Datenspeicher10 gekoppelt. Für eine bessere Übersicht sind alle anderen Elemente der zentralen Verarbeitungseinheit1 in4 nicht gezeigt. Jeder Kanal umfaßt eine Watchdog-Einheit104a ,104b ,104c , usw. mit einem Zähler105 , einem Komparator106 und einem Register107 . - Bei einer anderen Ausführungsform können nur ein Register
107 und Komparator106 für alle Kanäle vorgesehen werden. Der Komparator schaltet die verschiedenen Kanalzähler durch. Bei einer weiteren Ausführungsform wird nur ein Kanal-Watchdog104a verwendet. Bei dieser Ausführungsform wird der Zähler jedesmal dann zurückgesetzt, wenn ein Kanalprogramm wechselt. - Der Zähler
105 kann mit einer der Pipeline-Einheiten oder mit dem Programmzähler gekoppelt werden. Der Komparator106 in der Watchdog-Einheit104a und, wenn sie implementiert sind, die Komparatoren104b ,104c , usw. wird/werden mit der Service-Anforderungseinheit5 gekoppelt, die eine Service-Anforderung auf dem Mikrocontroller-Interrupt-Bus8 erzeugen kann. - Der Zweck des Zählers
105 ist das Zählen der Anzahl der während eines spezifischen Kanalprogramms ausgeführten Anweisungen. Deshalb vergleicht der Komparator106 einen in dem Register107 gespeicherten vorbestimmten Wert mit dem Inhalt des Zählers105 . Der Zähler105 kann durch eine beliebige Stufe der Pipeline oder durch den Programmzähler getriggert werden, wie in4 gezeigt. Wenn der Zähler105 den in dem Register107 gespeicherten Wert erreicht oder übersteigt, erzeugt der Komparator106 ein Signal, das der Service-Anforderungseinheit5 zugeführt wird. Die Service-Anforderungseinheit erzeugt einen Interrupt, der über den Mikrocontroller-Interrupt-Bus8 der Mikrocontroller-Zentralverarbeitungseinheit oder durch die Interrupt-Steuereinheit4 der zentralen Verarbeitungseinheit1 zugeführt wird. Abhängig von der Programmierung des Systems versorgt entweder die (nichtgezeigte) Mikrosteuerung oder die zentrale Verarbeitungseinheit1 den Interrupt. Wenn eine solche Anforderung erzeugt wird, wird angenommen, daß die zentrale Verarbeitungseinheit1 nicht mehr richtig arbeitet. Die Anforderung kann deshalb die Zentralprogrammiereinheit zurücksetzen. Wenn die Anforderung der Mikrosteuerung zugeführt wird, kann sie entweder die zentrale Verarbeitungseinheit zurücksetzen oder eine jeweilige Korrekturroutine ausführen, um eine ordnungsgemäße Programmausführung der zentralen Verarbeitungseinheit1 sicherzustellen. -
5 zeigt ein weiteres Merkmal eines Watchdogs, das die maximale Anzahl von Kanälen steuert. Die Interrupt-Steuereinheit4 erzeugt eine Interrupt-Anforderung4C und einen Interrupt-Vektor4D , die einer Maximalkanal-Watchdog-Einheit108 zugeführt werden. Die Maximalkanal-Watchdog-Einheit108 umfaßt einen Zähler109 , der mit einem Komparator110 verbunden ist. Ferner wird ein Register111 vorgesehen, das mit dem Komparator110 verbunden ist. Der Komparator110 erzeugt ein Signal, das der Service-Anforderungseinheit5 zugeführt wird. - Immer wenn die Interrupt-Steuereinheit
4 einen spezifischen Interrupt-Vektor4D erzeugt, der bisher noch nicht erzeugt worden ist, wird der Zähler109 vergrößert. Anders ausgedrückt wird immer dann, wenn ein neues Kanalprogramm für Direktspeicherzugriff gestartet wird, der Zähler109 vergrößert. Somit zählt der Zähler109 die Anzahl der Kanäle, die verwendet werden. Der Komparator110 vergleicht den Wert des Zählers109 mit einem in dem Register111 gespeicherten vorbestimmten Wert. Immer dann, wenn der Zähler109 den Wert des Registers111 erreicht oder übersteigt, erzeugt der Komparator110 ein Signal, das der Service-Anforderungseinheit5 zugeführt wird. So wird immer dann eine Interrupt-Anforderung erzeugt, wenn die maximale Kanalnummer, die in dem Register111 gesetzt wurde, überschritten wird, und eine solche Routine wird in der Mikrosteuerungs-Zentralverarbeitungseinheit gestartet. Diese Watchdog-Funktion ist nützlich, wenn bekannt ist, wie viele Kanäle in einer Anwendung benutzt werden. Wenn die Anzahl diesen vorbestimmten wert übersteigt, muß ein Funktionsfehler in der Programmausführung vorliegen. Bei einer Variante empfängt der Maximalkanal-Watchdog108 zusätzlich ein Signal4e aus der zentralen Verarbeitungseinheit1 , das immer angibt, wenn eine Kanalroutine beendet ist. Wenn ein solches Signal dem Watchdog108 zugeführt wird, wird der Zähler109 erniedrigt. Jedesmal, wenn ein Interrupt-Signal4c ,4d erzeugt wird, wird der Zähler109 inkrementiert. Somit gibt der Wert in dem Zähler109 die Anzahl der Kanäle an, die parallel in der zentralen Verarbeitungseinheit ausgeführt werden. Das Register111 kann einen maxima len Wert von Kanälen speichern, die parallel verarbeitet werden können. Wenn die Zahl diesen Maximalwert übersteigt, könnte die zentrale Verarbeitungseinheit überlastet werden und möglicherweise die angeforderte Task nicht verarbeiten können. Deshalb erzeugt der Komparator110 ein Signal, wenn der Zählerwert den in dem Register111 gespeicherten Wert übersteigt. Dieses Signal wird der Service-Anforderungseinheit5 zugeführt, die eine Service-Anforderung erzeugt, die wie oben beschrieben behandelt wird. - Anstatt des Zählens der Anzahl von Interrupts kann der Komparator
110 auch die in dem Interrupt-Vektor angegebene tatsächliche Interrupt-Zahl mit der Anzahl implementierter Kanalroutinen vergleichen. Wenn die Zahl größer als die Anzahl implementierter Kanäle ist, erzeugt die Einheit108 ein Signal, das der Service-Anforderungseinheit5 zugeführt wird. Bei dieser Ausführungsform kann der Zähler109 weggelassen werden. -
6 zeigt eine Ausführungsform mit einem Debug-Merkmal. Bei dieser Ausführungsform umfaßt der Peripheriesteuerprozessor eine Debug-Vergleichseinheit114 , die mit dem Datenspeicher10 verbunden ist, ein Vielzweck-Registerfile112 und Spezialfunktionsregister116 . Die Debug-Vergleichseinheit114 umfaßt mehrere Register und Komparatoren, die den Inhalt einer vordefinierten Datenspeicherzelle, eines Vielzweckregisters oder eines Spezialfunktionsregisters vergleichen können. Wenn eine der in der Debug-Vergleichseinheit114 definierten Bedingungen erfüllt ist, erzeugt die Debug-Vergleichseinheit114 ein Signal, das der Debug-Einheit115 zugeführt wird. Dann erzeugt die Debug-Einheit115 ein Debug-Signal oder erzeugt ein der Taktsteuereinheit2 zugeführtes Signal, woraufhin die zentrale Verarbei tungseinheit1 durch Sperren des Steuertakts angehalten wird. Die Mikrosteuerung kann dann die jeweiligen Werte des Registerfile112 und/oder der Spezialfunktionsregister116 und des Datenspeichers10 durch den Mikrosteuerungsbus9 prüfen. -
7 zeigt eine weitere Ausführungsform mit einem weiteren Debug-Merkmal. Der Codespeicher11 ist mit einer Pipeline mit einer Abrufeinheit100 , einer Decodiereinheit101 , einer Lesespeicher/-registereinheit102 und einer Schreibausführungseinheit103 verbunden. Die Schreibausführungseinheit103 umfaßt eine Arithmetik-Logik-Einheit118 , die Flags erzeugen kann. Bei dieser Ausführungsform werden durch die Arithmetik-Logik-Einheit118 vier Flags erzeugt. Flag C definiert eine Null- oder Gleichheitsbedingung, Flag N umfaßt eine Negativ-Bedingung, Flag C umfaßt eine Übertragsbitbedingung und Flag V umfaßt eine Überlaufbedingung. Die Lesespeicherregistereinheit102 ist auch mit dem Datenspeicher10 und dem Registerfile112 gekoppelt. Die Schreibausführungseinheit103 ist auch mit dem Datenfluß10 gekoppelt. Es wird eine Debug-Vergleichs- und -Steuereinheit119 vorgesehen, die die Flag-Signale aus der Arithmetik-Logik-Einheit118 empfängt. Die Debug-Vergleichs- und -Steuereinheit119 ist auch mit der Debug-Einheit120 gekoppelt. Die Debug-Einheit120 umfaßt mindestens ein Steuerregister121 zum Definieren vielfältiger Debug-Merkmale. Eine Debug-Erfassungseinheit117 wird vorgesehen, die mit dem Registerfile112 und mit der Debug-Einheit120 gekoppelt ist. Die Debug-Einheit120 umfaßt einen Eingang für eine externe Debug-Anforderung und einen Ausgang für ein Debug-Signal. Ferner ist die Debug-Einheit120 über den Eingang2A mit der Taktsteuereinheit2 gekoppelt. - Die Debug-Einheit
120 kann auf vielerlei Weisen programmiert werden. Bei einem ersten Modus erzeugt die Debug-Einheit120 ein Debug-Signal oder steuert die Taktsteuereinheit2 , wenn die Debug-Vergleichs- und -steuereinheit119 erkennt, daß eine durch die Flag-Signale C, N, V und Z definierte vordefinierte Bedingung hergestellt ist. Wenn die Arithmetik-Logik-Einheit118 eine dieser Bedingungen erzeugt, erzeugt die Debug-Einheit120 das jeweilige Debug-Signal oder steuert die Taktsteuereinheit2 . Die Debug-Vergleichs- und -steuereinheit umfaßt einen Komparator, der den Status der Flags C, N, V, Z mit einer vorbestimmten Menge von Bedingungen vergleicht. Wenn die Debug-Einheit120 dafür programmiert ist, ein Debug-Signal zu erzeugen, wird die Ausführung der jeweiligen Interrupt-Routine in der zentrale Verarbeitungseinheit1 nicht angehalten. Die Mikrosteuerung empfängt das Debug-Signal und führt eine jeweilige Debug-Routine aus. Das Debug-Signal kann auch extern für einen Emulator zugeführt werden. Diese Funktion kann auch für andere Zwecke als für eine Debug-Funktion verwendet werden. Wenn die Taktsteuereinheit2 durch die Debug-Einheit120 gesteuert wird, wird bei einem Debug-Ereignis der Betrieb der zentralen Verarbeitungseinheit1 völlig angehalten. Zusätzlich kann ein Debug-Signal erzeugt und der Mikrosteuerung zugeführt werden. In diesem Modus kann die Mikrosteuerung dann den Inhalt des Registerfile112 und der Speicher10 ,11 durch den Mikrosteuerungsbus9 untersuchen. Somit kann ein effizienter Debug-Modus eingerichtet werden. - In einem zweiten Modus erfaßt die Debug-Einheit
120 den Inhalt des Registerfile112 bei einer Debug-Bedingung. Das Debug-Signal kann durch eine interne Bedingung erzeugt werden, die wie oben beschrieben durch die Flag- Signale der Arithmetik-Logik-Einheit118 definiert wird, oder kann durch ein externes Debug-Anforderungssignal angefordert werden. In diesem Modus wird die Ausführung einer Interrupt-Routine in der zentralen Verarbeitungseinheit1 nicht unterbrochen und der Inhalt eines Teils oder aller der Register in dem Registerfile112 wird erfaßt, falls das Debug-Ereignis eintritt. Bei verschiedenen Ausführungsformen können verschiedene Informationen erfaßt werden, zum Beispiel Status-Flags, Spezialfunktionsregister, Speicherzelleninhalte. Die Debug-Erfassungseinheit kann sich vorzugsweise in der Busschnittstelleneinheit befinden, um durch den Mikrosteuerungsbus9 zugänglich zu sein. Dieser Modus ist besonders für Echtzeit-Debugging nützlich. -
8 zeigt eine Modifikation der Taktsteuereinheit2 . Die Taktsteuereinheit2 kann vielfältige verschiedene Taktsignale erzeugen. Deshalb umfaßt die Taktsteuereinheit2 einen Taktgenerator2c , der verschiedene Taktsignale mit verschiedenen Taktraten erzeugt. Es werden mindestens zwei Taktsignale vorgesehen, wobei eines eine normale oder hohe Taktrate aufweist und ein zweites Taktsignal mit einer niedrigeren Taktrate. Zusätzlich kann eine beliebige Taktrate zwischen einer höchsten und niedrigsten Taktrate erzeugt werden, wie durch die gestrichelte Linie angegeben. Anstatt den Prozessor völlig davon abzuhalten, irgendwelche Anweisungen auszuführen, kann der zentralen Verarbeitungseinheit durch den Schalter2d eine niedrigere Taktrate zugeführt werden. Der Schalter2d wird wie oben beschrieben durch Signale2a und2b gesteuert. Der Prozessor muß bei dieser Ausführungsform in seinem Entwurf nicht völlig statisch sein, ist dies aber vorzugsweise. Er kann auch einen Kernel aufweisen, der ein einfaches Verwaltungsprogramm ausführt. Diese Ausführungsform kann mit der ersten Ausführungsform kombiniert werden, wodurch Steuern der Ausführungsgeschwindigkeit der Peripherieprozessoranordnung von Normalbetrieb zu einer beliebigen Art von langsamerem Betrieb bis zu einem völligen Betriebsstopp ermöglicht wird. Somit können verschieden Arten von Stromverbrauchsniveaus erreicht werden.
Claims (27)
- Prozessor mit einer zentralen Verarbeitungseinheit (
1 ) mit mindestens einem Steuerausgang (2a ), die taktgesteuert ist und einen statischen Entwurf aufweist, wobei eine steuerbare Takteinheit (2 ) einen Prozessortakt (1a ) erzeugt, der der zentralen Verarbeitungseinheit (1 ) zugeführt wird, mit einem Taktsperreingang, der mit dem Steuerausgang (2a ) der zentralen Verarbeitungseinheit (1 ) gekoppelt ist, einem mit der zentralen Verarbeitungseinheit (1 ) gekoppelten Speicher (10 ,11 ) zum Speichern von Interrupt-Routinen und Daten, eine mit der zentralen Verarbeitungseinheit (1 ) gekoppelte Interrupt-Steuereinheit (4 ) zum Erzeugen von Interrupt-Signalen, einer Interrupt-Ausführungseinheit zum Ausführen von Interrupt-Routinen, wobei, wenn keine Interrupt-Routine ausgeführt wird, die Takteinheit (2 ) gesperrt und der Betrieb der zentralen Verarbeitungseinheit (1 ) angehalten wird, dadurch gekennzeichnet, daß die zentrale Verarbeitungseinheit (1 ) vollständig interrupt-gesteuert ist. - Prozessor nach Anspruch 1, wobei die steuerbare Takteinheit (
2 ) einen mit der Interrupt-Steuereinheit (4 ) gekoppelten Taktfreigabeeingang (2b ) umfaßt. - Prozessor nach Anspruch 2, wobei der Speicher (
10 ,11 ) zwei getrennte Speicherblöcke umfaßt, einen zum Speichern von Programmcode (11 ) und einen zum Speichern von Daten (10 ). - Prozessor nach Anspruch 2, wobei die Interrupt-Steuereinheit (
4 ) eine Interrupt-Arbitrierungs einheit (4b ) zum Erzeugen von Prioritäten für Interrupts umfaßt. - Prozessor nach Anspruch 4, wobei die Interrupt-Einheit (
4 ) ein Interrupt-Signal (4b ) und einen Interrupt-Vektor (4d ) erzeugt, die der zentralen Verarbeitungseinheit (1 ) zugeführt werden. - Prozessor nach Anspruch 2, wobei der Prozessor Direktspeicherzugriff bereitstellt und eine Ausnahmeeinheit (
106 ) umfaßt, die ein Ausnahmesignal erzeugt, wobei Interrupt-Signale mit jeweiligen Kanälen eines Direktspeicherzugriffs assoziiert sind. - Prozessor nach Anspruch 6, wobei die Ausführungseinheit (
109 ,110 ,111 ) ein Ausnahmesignal erzeugt, wenn eine programmierbare Anzahl (111 ) von Direktspeicheradressenkanälen überstiegen wird. - Prozessor nach Anspruch 6, wobei die Ausführungseinheit (
109 ,110 ,111 ) ein Ausnahmesignal erzeugt, wenn eine programmierbare Anzahl (111 ) von Direktspeicheradressenkanälen, die parallel ausgeführt werden, überstiegen wird. - Prozessor nach Anspruch 2, wobei die zentrale Verarbeitungseinheit (
1 ) eine Anweisungsausführungs-Zähleinheit (105 ) eine Ausnahmeeinheit (106 ) umfaßt, die ein Ausnahmesignal erzeugt, wenn eine programmierbare Anzahl (107 ) von während einer Interrupt-Routine ausgeführten Anweisungen überschritten wird. - Prozessor nach Anspruch 2, wobei die zentrale Verarbeitungseinheit (
1 ) ein mit einer Interrupt-Routine assoziiertes Modussteuerregister (116 ) umfaßt, das die Ausführung der Interrupt-Routine steuert, wobei das Modussteuerregister (116 ) definiert, ob die Interrupt-Routine an einer vorbestimmten Adresse oder an einer programmierbaren Adresse startet. - Prozessor nach Anspruch 2, wobei die zentrale Verarbeitungseinheit (
1 ) eine programmierbare Debug-Vergleichseinheit (114 ) mit einem Steuerregister (121 ) umfaßt. - Prozessor nach Anspruch 11, wobei die programmierbare Debug-Vergleichseinheit (
114 ) die Taktsteuereinheit (2 ) bei einer vordefinierten Bedingung sperrt. - Prozessor nach Anspruch 11, wobei die programmierbare Debug-Vergleichseinheit (
114 ) ein Debug-Signal erzeugt. - Prozessor nach Anspruch 11, wobei die programmierbare Debug-Vergleichseinheit (
114 ) Statusinformationen der zentralen Verarbeitungseinheit (1 ) erfaßt. - Prozessor nach Anspruch 1, wobei die steuerbare Takteinheit (
2 ) mindestens einen ersten und einen zweiten Prozessortakt erzeugt, die der zentralen Verarbeitungseinheit (1 ) zugeführt werden, wobei der erste Takt höher als der zweite Takt ist, wobei die Takteinheit (2 ) das erste Taktsignal erzeugt, wenn irgendeine Interrupt-Routine ausge führt wird, und den zweiten Takt, wenn keine Interrupt-Routine ausgeführt wird. - Prozessor nach Anspruch 15, wobei der Speicher (
10 ,11 ) zwei getrennte Speicherblöcke umfaßt, einen zum Speichern von Programmcode (11 ) und einen zum Speichern von Daten (11 ). - Prozessor nach Anspruch 15, wobei die Interrupt-Steuereinheit (
4 ) eine Interrupt-Arbitrierungseinheit (4b ) zum Erzeugen von Prioritäten für Interrupts umfaßt. - Prozessor nach Anspruch 17, wobei die Interrupt-Einheit (
4 ) ein Interrupt-Signal (4c ) und einen Interrupt-Vektor (4d ) erzeugt, die der zentralen Verarbeitungseinheit (1 ) zugeführt werden. - Prozessor nach Anspruch 15, wobei der Prozessor Direktspeicherzugriff bereitstellt und eine Ausnahmeeinheit (
109 ,110 ,111 ) umfaßt, die ein Ausnahmesignal erzeugt, wobei Interrupt-Signale mit jeweiligen Kanälen eines Direktspeicherzugriffs assoziiert sind. - Prozessor nach Anspruch 19, wobei die Ausführungseinheit (
109 ,110 ,111 ) einen Komparator (110 ) umfaßt, der ein Ausnahmesignal erzeugt, wenn eine programmierbare Anzahl (111 ) von Direktspeicheradressenkanälen überstiegen wird. - Prozessor nach Anspruch 19, wobei die Ausnahmeeinheit (
109 ,110 ,111 ) einen Komparator (110 ) umfaßt, der ein Ausnahmesignal bei Überschreitung einer programmierbaren Anzahl (111 ) von gleich zeitig ausgeführten Direktspeicheradressenkanälen erzeugt. - Prozessor nach Anspruch 15, wobei die zentrale Verarbeitungseinheit (
1 ) eine Anweisungsausführungs-Zähleinheit (105 ) und eine Ausnahmeeinheit (106 ) umfaßt, die ein Ausnahmesignal erzeugt, wenn eine programmierbare Anzahl (107 ) von während einer Interrupt-Routine ausgeführten Anweisungen überschritten wird. - Prozessor nach Anspruch 15, wobei die zentrale Verarbeitungseinheit (
1 ) ein mit einer Interrupt-Routine assoziiertes Modussteuerregister (116 ) umfaßt, das die Ausführung der Interrupt-Routine steuert, wobei das Modussteuerregister (116 ) definiert, ob die Interrupt-Routine an einer vorbestimmten Adresse oder an einer programmierbaren Adresse startet. - Prozessor nach Anspruch 15, wobei die zentrale Verarbeitungseinheit eine programmierbare Debug-Vergleichseinheit (
114 ) mit einem Steuerregister (121 ) umfaßt. - Prozessor nach Anspruch 24, wobei die programmierbare Debug-Vergleichseinheit (
114 ) die Taktsteuereinheit (2 ) bei einer vordefinierten Bedingung sperrt. - Prozessor nach Anspruch 24, wobei die programmierbare Debug-Vergleichseinheit (
114 ) ein Debug-Signal erzeugt. - Prozessor nach Anspruch 24, wobei die programmierbare Debug-Vergleichseinheit (
114 ) Statusinformationen der zentralen Verarbeitungseinheit (1 ) erfaßt.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US124183 | 1993-09-21 | ||
US09/124,183 US6202104B1 (en) | 1998-07-28 | 1998-07-28 | Processor having a clock driven CPU with static design |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69933515D1 DE69933515D1 (de) | 2006-11-23 |
DE69933515T2 true DE69933515T2 (de) | 2007-06-21 |
Family
ID=22413306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69933515T Expired - Lifetime DE69933515T2 (de) | 1998-07-28 | 1999-05-31 | Peripherieprozessor |
Country Status (3)
Country | Link |
---|---|
US (1) | US6202104B1 (de) |
EP (1) | EP0977125B1 (de) |
DE (1) | DE69933515T2 (de) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3537293A1 (de) | 2018-03-09 | 2019-09-11 | Till I.D. GmbH | Zeitlich deterministischer mikroprozessor und mikrocontroller |
US20220383911A1 (en) * | 2021-05-25 | 2022-12-01 | Yangtze Memory Technologies Co., Ltd. | Method and apparatus for power saving in semiconductor devices |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69908682T2 (de) * | 1998-03-20 | 2004-05-13 | Texas Instruments Inc., Dallas | Prozessor mit Echtzeit-Ablaufsteuerung zur Fehlerbeseitigung ohne Fehlerbeseitigungsmonitor |
JP3526009B2 (ja) * | 1999-02-09 | 2004-05-10 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンピュータ・システムにおける電力管理装置および電力管理方法 |
US7061904B2 (en) * | 1999-09-13 | 2006-06-13 | Infineon Technologies North America Corp. | Integrated access device controller |
US7100061B2 (en) * | 2000-01-18 | 2006-08-29 | Transmeta Corporation | Adaptive power control |
US6968469B1 (en) | 2000-06-16 | 2005-11-22 | Transmeta Corporation | System and method for preserving internal processor context when the processor is powered down and restoring the internal processor context when processor is restored |
US7260731B1 (en) * | 2000-10-23 | 2007-08-21 | Transmeta Corporation | Saving power when in or transitioning to a static mode of a processor |
US7336090B1 (en) | 2002-04-16 | 2008-02-26 | Transmeta Corporation | Frequency specific closed loop feedback control of integrated circuits |
US7941675B2 (en) * | 2002-12-31 | 2011-05-10 | Burr James B | Adaptive power control |
US7180322B1 (en) | 2002-04-16 | 2007-02-20 | Transmeta Corporation | Closed loop feedback control of integrated circuits |
US7205758B1 (en) * | 2004-02-02 | 2007-04-17 | Transmeta Corporation | Systems and methods for adjusting threshold voltage |
US7949864B1 (en) | 2002-12-31 | 2011-05-24 | Vjekoslav Svilan | Balanced adaptive body bias control |
US7228242B2 (en) | 2002-12-31 | 2007-06-05 | Transmeta Corporation | Adaptive power control based on pre package characterization of integrated circuits |
US7953990B2 (en) | 2002-12-31 | 2011-05-31 | Stewart Thomas E | Adaptive power control based on post package characterization of integrated circuits |
US7642835B1 (en) * | 2003-11-12 | 2010-01-05 | Robert Fu | System for substrate potential regulation during power-up in integrated circuits |
US7786756B1 (en) | 2002-12-31 | 2010-08-31 | Vjekoslav Svilan | Method and system for latchup suppression |
US20050149771A1 (en) * | 2003-11-07 | 2005-07-07 | Seiko Epson Corporation | Processor control circuit, information processing apparatus, and central processing unit |
US7649402B1 (en) | 2003-12-23 | 2010-01-19 | Tien-Min Chen | Feedback-controlled body-bias voltage source |
US7012461B1 (en) | 2003-12-23 | 2006-03-14 | Transmeta Corporation | Stabilization component for a substrate potential regulation circuit |
US7692477B1 (en) | 2003-12-23 | 2010-04-06 | Tien-Min Chen | Precise control component for a substrate potential regulation circuit |
US7129771B1 (en) | 2003-12-23 | 2006-10-31 | Transmeta Corporation | Servo loop for well bias voltage source |
US7816742B1 (en) | 2004-09-30 | 2010-10-19 | Koniaris Kleanthes G | Systems and methods for integrated circuits comprising multiple body biasing domains |
US7859062B1 (en) | 2004-02-02 | 2010-12-28 | Koniaris Kleanthes G | Systems and methods for integrated circuits comprising multiple body biasing domains |
US7562233B1 (en) | 2004-06-22 | 2009-07-14 | Transmeta Corporation | Adaptive control of operating and body bias voltages |
US7774625B1 (en) | 2004-06-22 | 2010-08-10 | Eric Chien-Li Sheng | Adaptive voltage control by accessing information stored within and specific to a microprocessor |
US7240137B2 (en) * | 2004-08-26 | 2007-07-03 | International Business Machines Corporation | System and method for message delivery across a plurality of processors |
JP2006172266A (ja) * | 2004-12-17 | 2006-06-29 | Matsushita Electric Ind Co Ltd | ダイレクトメモリアクセスシステム |
DE102006004346A1 (de) | 2006-01-30 | 2007-10-18 | Deutsche Thomson-Brandt Gmbh | Datenbusschnittstelle mit abschaltbarem Takt |
US10067892B2 (en) | 2015-03-06 | 2018-09-04 | Microchip Technology Incorporated | Microcontroller or microprocessor with dual mode interrupt |
US10049830B2 (en) * | 2015-06-26 | 2018-08-14 | Amazon Technologies, Inc. | Relay architecture for transferring from redundant power sources |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0479887A4 (en) * | 1989-06-30 | 1992-08-12 | Poqet Computer Corporation | Computer power management system |
US5167024A (en) * | 1989-09-08 | 1992-11-24 | Apple Computer, Inc. | Power management for a laptop computer with slow and sleep modes |
IT1247641B (it) | 1990-04-26 | 1994-12-28 | St Microelectronics Srl | Trasferimento di dati in modo dma durante fasi di risveglio durante lo stato di attesa per interruzione di un microprocessore con riduzione di consumo |
JPH04130510A (ja) * | 1990-09-21 | 1992-05-01 | Hitachi Ltd | 情報処理装置の省電力方式 |
US5894577A (en) * | 1993-09-22 | 1999-04-13 | Advanced Micro Devices, Inc. | Interrupt controller with external in-service indication for power management within a computer system |
US5706407A (en) * | 1993-12-28 | 1998-01-06 | Kabushiki Kaisha Toshiba | System for reallocation of memory banks in memory sized order |
US5442775A (en) * | 1994-02-08 | 1995-08-15 | Meridian Semiconductor, Inc. | Two clock microprocessor design with stall |
US5493684A (en) | 1994-04-06 | 1996-02-20 | Advanced Micro Devices | Power management architecture including a power management messaging bus for conveying an encoded activity signal for optimal flexibility |
KR960012838B1 (ko) * | 1994-06-20 | 1996-09-24 | 삼성전자 주식회사 | 스톱 클럭 제어장치와 그 방법 |
US5592173A (en) * | 1994-07-18 | 1997-01-07 | Trimble Navigation, Ltd | GPS receiver having a low power standby mode |
JPH08211960A (ja) | 1995-01-31 | 1996-08-20 | Mitsubishi Electric Corp | マイクロコンピュータ |
US5553236A (en) * | 1995-03-03 | 1996-09-03 | Motorola, Inc. | Method and apparatus for testing a clock stopping/starting function of a low power mode in a data processor |
US5774701A (en) * | 1995-07-10 | 1998-06-30 | Hitachi, Ltd. | Microprocessor operating at high and low clok frequencies |
US5737516A (en) * | 1995-08-30 | 1998-04-07 | Motorola, Inc. | Data processing system for performing a debug function and method therefor |
JP3621497B2 (ja) * | 1996-03-01 | 2005-02-16 | 株式会社東芝 | コンピュータシステム及び同システムにおけるクロック停止信号制御方法 |
US5848281A (en) * | 1996-07-23 | 1998-12-08 | Smalley; Kenneth George | Method and apparatus for powder management in a multifunction controller with an embedded microprocessor |
-
1998
- 1998-07-28 US US09/124,183 patent/US6202104B1/en not_active Expired - Lifetime
-
1999
- 1999-05-31 DE DE69933515T patent/DE69933515T2/de not_active Expired - Lifetime
- 1999-05-31 EP EP99110470A patent/EP0977125B1/de not_active Expired - Lifetime
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3537293A1 (de) | 2018-03-09 | 2019-09-11 | Till I.D. GmbH | Zeitlich deterministischer mikroprozessor und mikrocontroller |
WO2019170851A1 (de) | 2018-03-09 | 2019-09-12 | Till I.D. Gmbh | Zeitlich deterministischer mikroprozessor und mikrocontroller |
US20220383911A1 (en) * | 2021-05-25 | 2022-12-01 | Yangtze Memory Technologies Co., Ltd. | Method and apparatus for power saving in semiconductor devices |
US11967393B2 (en) * | 2021-05-25 | 2024-04-23 | Yangtze Memory Technologies Co., Ltd. | Method and apparatus for power saving in semiconductor devices |
Also Published As
Publication number | Publication date |
---|---|
EP0977125A1 (de) | 2000-02-02 |
DE69933515D1 (de) | 2006-11-23 |
US6202104B1 (en) | 2001-03-13 |
EP0977125B1 (de) | 2006-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69933515T2 (de) | Peripherieprozessor | |
DE3876780T2 (de) | Mikrorechner mit eingebauter chipauswahl und programmierbarer busdehnung. | |
DE68925615T2 (de) | Digitalrechnersystem mit Niederstromverbrauchmodus | |
DE3751164T2 (de) | Datenprozessor mit verschiedenen Unterbrechungsverarbeitungsarten. | |
DE2411963C3 (de) | Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken | |
DE69224251T2 (de) | Schutz gegen Überschreitung der Prozesslaufzeit in einem Vielfachprozess-Echtzeitsystem | |
DE69219372T2 (de) | Mikrorechner mit Zeitüberwachungseinrichtung | |
DE102008062692B4 (de) | Eingebettetes Mikrocontrollersystem und Verfahren zur Konfiguration eines eingebetteten Mikrocontrollersystems mit gesteuertem Schaltmodus | |
DE3853759T2 (de) | Datenprozessor mit zwei Betriebsmoden. | |
DE3889578T2 (de) | Vorrichtung zur Sicherung und Rückspeicherung einer Registerinformation. | |
DE69807729T2 (de) | Threadumschaltungssteuerung in einem multithreadprozessorsystem | |
DE69023018T2 (de) | Prozessor-Unterbrechungssteuerung. | |
DE3685876T2 (de) | Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher. | |
DE69930614T2 (de) | VERFAHREN UND GERÄT ZUM HANDHABEN VON mehrfachen flanken- und zustandsausgelösten unterbrechungen | |
DE69512485T2 (de) | Fehlerbeseitigungs- und Systemverwaltungsunterbrechung | |
DE68924810T2 (de) | Zeitgeberkanal für die Verwendung in einem Mehrkanal-Zeitsystem. | |
DE2744531A1 (de) | Elektronische datenverarbeitungsanlage | |
DE68920929T2 (de) | Zeitgeberkanal mit mehreren Zeitgeberreferenzmerkmalen. | |
DE3650165T2 (de) | Buszustandssteuerungsschaltung. | |
DE68915074T2 (de) | Integrierte Zeitgeberschaltung mit mehreren Kanälen und zugeordnetem Bedienungsprozessor. | |
DE68919018T2 (de) | Zeitgeberkanal mit Übereinstimmungserkennungsmerkmalen. | |
DE68922545T2 (de) | Zugeordneter Dienstprozessor mit Übertragungsmöglichkeiten zwischen Kanälen. | |
DE69219848T2 (de) | Verfahren zur Behandlung von Datenübertragungen in einen Computersystem mit einem Zweibusbau | |
DE69621405T2 (de) | Verarbeitungssystem, prozessor, befehlsstromspeicher und kompilierer | |
DE69515811T2 (de) | Zeitüberwachungsschaltung mit Schaltung zur Verhinderung von Blockierungen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
R082 | Change of representative |
Ref document number: 977125 Country of ref document: EP Representative=s name: WESTPHAL, MUSSGNUG & PARTNER, DE |
|
R081 | Change of applicant/patentee |
Ref document number: 977125 Country of ref document: EP Owner name: INFINEON TECHNOLOGIES AG, DE Free format text: FORMER OWNER: INFINEON TECHNOLOGIES NORTH AMERICA CORP., SAN JOSE, US Effective date: 20121128 |
|
R082 | Change of representative |
Ref document number: 977125 Country of ref document: EP Representative=s name: WESTPHAL, MUSSGNUG & PARTNER, DE Effective date: 20121128 |