DE69933515T2 - Peripherieprozessor - Google Patents

Peripherieprozessor Download PDF

Info

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
Application number
DE69933515T
Other languages
English (en)
Other versions
DE69933515D1 (de
Inventor
Robert Edmond San Jose Ober
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies North America Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies North America Corp filed Critical Infineon Technologies North America Corp
Application granted granted Critical
Publication of DE69933515D1 publication Critical patent/DE69933515D1/de
Publication of DE69933515T2 publication Critical patent/DE69933515T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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

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 und 2B zeigen zwei verschiedene Organisationen des Codespeichers,
  • 3A, 3B und 3C 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 Verarbeitungseinheit 1 mit einem Registerfile 112, das über jeweilige Busse an einen Programmspeicher 11 und an einen Datenspeicher 10 angekoppelt ist. Die zentrale Verarbeitungseinheit 1 ist taktgesteuert und umfaßt einen völlig statischen Entwurf. Eine Taktsteuereinheit 2 ist mit einem Oszillator 3 gekoppelt und gibt ein Taktsignal aus, das dem Eingang 1A der zentralen Verarbeitungseinheit 1 zugeführt wird. Die zentrale Verarbeitungseinheit 1 erzeugt ein Steuersignal, das Eingang 2A der Taktsteuereinheit 2 zugeführt wird. Eine Busschnittstelleneinheit 6 teilt dieselben Busse wie der Programmspeicher 11 und der Datenspeicher 10. Andererseits ist die Busschnittstelleneinheit 6 mit einem Bus 9 gekoppelt, der den Peripheriesteuerprozessor zum Beispiel mit einem Bussystem einer Mikrosteuerung verbindet. Die Busschnittstelleneinheit 6 umfaßt außerdem Konfigurations- oder Spezialfunktionsregister 116, die der zentralen Verarbeitungseinheit 1 durch den internen Bus und einem externen System durch den Bus 9 zugänglich sind. Weiterhin wird eine Service-Anforderungseinheit 5 vorgesehen, die eine Service-Anforderung oder einen Interrupt erzeugt, die bzw. der an einen Mikrosteuerungs-CPU-Interrupt-Bus 8 angekoppelt ist. Die Service-Anforderungseinheit 5 ist mit der zentralen Verarbeitungseinheit 1 gekoppelt. Eine Interrupt-Steuereinheit 4 umfaßt eine Interrupt-Arbitrierungseinheit 4B, die an einen Peripheriesteuerprozessor-Interrupt-Bus 7 angekoppelt ist. Der Bus 7 ist außerdem mit der Service-Anforderungseinheit 5 gekoppelt, die außerdem mit der Interrupt-Steuereinheit 4 gekoppelt ist. Die Interrupt-Steuereinheit 4 erzeugt ein Interrupt-Signal 4C und einen Interrupt-Vektor 4D, die der zentralen Verarbeitungseinheit 1 zugeführt werden. Die Interrupt-Steuereinheit 4 kann ferner ein Steuersignal 4A erzeugen, das Eingang 2B der Taktsteuereinheit 2 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 Programmspeicher 11 gespeicherte jeweilige Routine ausgeführt. Der Programmspeicher 11 kann eine beliebige Art von Anweisungsspeicherung aus nur Lesespeicher, Registern, statischem Direktzugriffsspeicher bis hin zu Flash- Speicher sein. Der Datenspeicher 10 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 Busschnittstelleneinheit 6 ermöglicht es dem Peripheriesteuerprozessor, auf alle Mikrosteuerungsbusse, gefundene Peripheriegeräte und andere Betriebsmittel zuzugreifen. Die zentrale Verarbeitungseinheit 1 enthält außerdem ein Registerfile 112. Durch den Mikrosteuerungsbus 9 besitzen die Mikrosteuerungs-CPU und andere Bus-Master vollen Zugang zu dem Programm- und Datenspeicher und zu den Konfigurationsregistern 116 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 Eingang 2A der Steuereinheit 2 zugeführtes Signal erzeugen, das bewirkt, daß die Taktsteuereinheit 2 mit der Erzeugung eines Eingang 1A der zentralen Verarbeitungseinheit 1 zugeführten Taktsignals aufhört. Somit befindet sich die zentrale Verarbeitungseinheit in einem vollständigen Haltezustand und deshalb verbraucht die zentrale Verarbeitungseinheit 1 aufgrund ihres statischen Entwurfs keinen Strom. Die Mikrosteuerung des Systems oder jedes andere Peripheriegerät kann durch den Peripheriesteuerprozessor-Interrupt-Bus 7 einen neuen Direktspeicherzugriff anfordern. Bei einer solchen Anforderung erzeugt die Interrupt-Arbitrierungseinheit 4B eine Interrupt-Anforderung, die durch die Interrupt-Steuereinheit 4 in einen Interrupt-Vektor übersetzt wird. Die Interrupt-Steuereinheit 4 erzeugt ein Freigabesignal 4A, das Eingang 2B der Taktsteuereinheit 2 zugeführt wird. Bei einem solchen Signalstart beginnt die Taktsteuereinheit 2, der zentralen Verarbeitungseinheit 1 durch Eingang 1A ein Taktsignal zuzuführen. Gleichzeitig führt die Interrupt-Steuereinheit 4 der zentralen Verarbeitungseinheit 1 eine Interrupt-Anforderung 4C und einen Interrupt-Vektor 4D zu. Dann beginnt die zentrale Verarbeitungseinheit 1 mit der Ausführung des jeweiligen in dem Programmspeicher 11 gespeicherten Interrupt-Programms.
  • 9 zeigt eine mögliche Ausführungsform der Taktsteuereinheit 2. Diese Ausführungsform erlaubt ein sicheres Ein- und Ausschalten des Taktsignals 1a. Ein aus der zentralen Verarbeitungseinheit 1 erzeugtes Belegt-Signal 2a wird durch einen Inverter 200 mit einem ersten Eingang eines NAND-Gatters 202 gekoppelt. Der zweite Eingang des NAND-Gatters 202 wird durch einen Inverter 201 mit dem durch die Interrupt-Steuereinheit 4 erzeugten Interrupt-Signal 2b gekoppelt. Der Ausgang des NAND-Gatters 202 wird mit dem Eingang des Latch 203 verbunden. Der Ausgang des Latch 203 wird mit dem ersten Eingang eines AND-Gatters 204 gekoppelt. Der erste Eingang des AND-Gatters 204 wird mit dem Ausgangssignal des Oszillators 3 verbunden. Das Taktsignal aus dem Oszillator 3 triggert mit einem negativen Taktpegel den Latch 203.
  • Die zentrale Verarbeitungseinheit 1 liefert das Belegt-Signal 2a solange etwaige Interrupt-Routinen anstehen. Dieses Signal wird auf 0 gesetzt, wenn die Pipeline gelöscht wurde. Danach führt die Taktsteuereinheit 2 folgendes durch: wenn kein Interrupt erzeugt wird, wird das Signal 2b auch auf Null gesetzt. Der Ausgang des NAND-Gatters 202 geht deshalb auf low. Diese Signaländerung wird an dem negativen Taktpegel des Taktsignals mittels des Latchs 203 gelatcht. Das AND-Gatter 204 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-Signals 2b. Außerdem ermöglicht dies, daß die beiden Signale 2a und 2b direkt aus Registerausgängen kommen. Sobald ein Interrupt auftritt und das Signal 2b 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 und 3 zeigen Organisationen des Programmspeichers 11 und des Datenspeichers 10, die programmierbar sind. Eines der Systemregister in den Konfigurationsregistern 116 definiert, ob der Programmspeicher als partitionierter Speicher (siehe 2A) oder als nichtpartitionierter Speicher (siehe 2B) verwendet wird. Der in 2A gezeigte partitionierte Speicher unterteilt den Speicher 11 in zwei Blöcke 11A und 11B. Der erste Block 11A des Speichers 11 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 Block 11B ist der Hauptcodeblock. Es wird angenommen, daß der Programmspeicher 11 als ein 32-Bit-Speicher organisiert ist und jede aufeinanderfolgende Adresse des Speicherblocks 11A 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 Block 11B 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 Mikrosteuerungsbus 9: 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 Mikrosteuerbus 9 verbundenen Speicher gespeichert ist. Deshalb übersetzt die Busschnittstelleneinheit 6 den Programmzählerabruf in die jeweilige Mikrosteuerungs-Busadresse 9.
  • Der Codespeicher muß nicht partitioniert werden, wie in 2B gezeigt. Wenn das jeweilige Steuerregister in den Konfigurationsregistern 116 angibt, daß ein nichtpartitionierter Speicher verwendet wird, beginnt jedes Kanalprogramm an einem spezifischen Startprogrammzähler, der in dem Datenspeicher 10 gespeichert ist. Der Benutzer muß sicherstellen, daß der Datenspeicher 10 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 Registerfile 112 mindestens acht Vielzweckregister enthält. Der Datenspeicher 10 ist in zwei Hauptbereiche aufgeteilt, allgemeiner Kontextsicherungsbereich und allgemeine spezifische Parameterblöcke. In 3A repräsentiert der erste Block den Inhalt aller Vielzweckregister jedes Kanals in dem Speicherblock 10A. 3B zeigt eine Organisation, die nur die oberen vier Register jedes Kanals in dem Speicherblock 10A benutzt. Diese Organisation ermöglicht das Speichern anderer Daten in dem Datenspeicher 10. 3C zeigt einen minimalen Kontext, wobei nur zwei Register jedes Kanalkontexts in dem Speicherblock 10A gespeichert werden. Durch diese Organisation wird es möglich, sogar noch mehr Daten in dem Datenspeicher 10 zu speichern. Das Registerfile 112 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.
  • Tabelle 1
    Figure 00120001
  • 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 Datenspeicher 10 relativ zu der Basisadresse 0 des Datenspeichers 10. Die Speicherstellen allgemeiner Parameter im Speicher sind beliebig. Die Parameter weisen keine bestimmte Beziehung zu einer Kanalnummer auf. Wieder wird, wenn Zugriffe auf den Datenspeicher 10 über den externen MC-Bus 9 abgeschlossen werden, der Datenspeicherzugriff durch die Busschnittstelleneinheit 6 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 Datenspeichers 10 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 Codespeicher 11 gekoppelten Abrufeinheit, einer mit der Abrufeinheit 100 gekoppelten Decodiereinheit 101, einer mit der Decodiereinheit 101 gekoppelte Lesespeicher/-registereinheit 102 und einer mit dem Datenspeicher 10 gekoppelten Schreibausführeinheit 103. Die Lesespeicher/-registereinheit 102 ist auch mit dem Datenspeicher 10 gekoppelt. Für eine bessere Übersicht sind alle anderen Elemente der zentralen Verarbeitungseinheit 1 in 4 nicht gezeigt. Jeder Kanal umfaßt eine Watchdog-Einheit 104a, 104b, 104c, usw. mit einem Zähler 105, einem Komparator 106 und einem Register 107.
  • Bei einer anderen Ausführungsform können nur ein Register 107 und Komparator 106 für alle Kanäle vorgesehen werden. Der Komparator schaltet die verschiedenen Kanalzähler durch. Bei einer weiteren Ausführungsform wird nur ein Kanal-Watchdog 104a 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 Komparator 106 in der Watchdog-Einheit 104a und, wenn sie implementiert sind, die Komparatoren 104b, 104c, usw. wird/werden mit der Service-Anforderungseinheit 5 gekoppelt, die eine Service-Anforderung auf dem Mikrocontroller-Interrupt-Bus 8 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 Komparator 106 einen in dem Register 107 gespeicherten vorbestimmten Wert mit dem Inhalt des Zählers 105. Der Zähler 105 kann durch eine beliebige Stufe der Pipeline oder durch den Programmzähler getriggert werden, wie in 4 gezeigt. Wenn der Zähler 105 den in dem Register 107 gespeicherten Wert erreicht oder übersteigt, erzeugt der Komparator 106 ein Signal, das der Service-Anforderungseinheit 5 zugeführt wird. Die Service-Anforderungseinheit erzeugt einen Interrupt, der über den Mikrocontroller-Interrupt-Bus 8 der Mikrocontroller-Zentralverarbeitungseinheit oder durch die Interrupt-Steuereinheit 4 der zentralen Verarbeitungseinheit 1 zugeführt wird. Abhängig von der Programmierung des Systems versorgt entweder die (nichtgezeigte) Mikrosteuerung oder die zentrale Verarbeitungseinheit 1 den Interrupt. Wenn eine solche Anforderung erzeugt wird, wird angenommen, daß die zentrale Verarbeitungseinheit 1 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 Verarbeitungseinheit 1 sicherzustellen.
  • 5 zeigt ein weiteres Merkmal eines Watchdogs, das die maximale Anzahl von Kanälen steuert. Die Interrupt-Steuereinheit 4 erzeugt eine Interrupt-Anforderung 4C und einen Interrupt-Vektor 4D, die einer Maximalkanal-Watchdog-Einheit 108 zugeführt werden. Die Maximalkanal-Watchdog-Einheit 108 umfaßt einen Zähler 109, der mit einem Komparator 110 verbunden ist. Ferner wird ein Register 111 vorgesehen, das mit dem Komparator 110 verbunden ist. Der Komparator 110 erzeugt ein Signal, das der Service-Anforderungseinheit 5 zugeführt wird.
  • Immer wenn die Interrupt-Steuereinheit 4 einen spezifischen Interrupt-Vektor 4D erzeugt, der bisher noch nicht erzeugt worden ist, wird der Zähler 109 vergrößert. Anders ausgedrückt wird immer dann, wenn ein neues Kanalprogramm für Direktspeicherzugriff gestartet wird, der Zähler 109 vergrößert. Somit zählt der Zähler 109 die Anzahl der Kanäle, die verwendet werden. Der Komparator 110 vergleicht den Wert des Zählers 109 mit einem in dem Register 111 gespeicherten vorbestimmten Wert. Immer dann, wenn der Zähler 109 den Wert des Registers 111 erreicht oder übersteigt, erzeugt der Komparator 110 ein Signal, das der Service-Anforderungseinheit 5 zugeführt wird. So wird immer dann eine Interrupt-Anforderung erzeugt, wenn die maximale Kanalnummer, die in dem Register 111 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-Watchdog 108 zusätzlich ein Signal 4e aus der zentralen Verarbeitungseinheit 1, das immer angibt, wenn eine Kanalroutine beendet ist. Wenn ein solches Signal dem Watchdog 108 zugeführt wird, wird der Zähler 109 erniedrigt. Jedesmal, wenn ein Interrupt-Signal 4c, 4d erzeugt wird, wird der Zähler 109 inkrementiert. Somit gibt der Wert in dem Zähler 109 die Anzahl der Kanäle an, die parallel in der zentralen Verarbeitungseinheit ausgeführt werden. Das Register 111 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 Komparator 110 ein Signal, wenn der Zählerwert den in dem Register 111 gespeicherten Wert übersteigt. Dieses Signal wird der Service-Anforderungseinheit 5 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 Einheit 108 ein Signal, das der Service-Anforderungseinheit 5 zugeführt wird. Bei dieser Ausführungsform kann der Zähler 109 weggelassen werden.
  • 6 zeigt eine Ausführungsform mit einem Debug-Merkmal. Bei dieser Ausführungsform umfaßt der Peripheriesteuerprozessor eine Debug-Vergleichseinheit 114, die mit dem Datenspeicher 10 verbunden ist, ein Vielzweck-Registerfile 112 und Spezialfunktionsregister 116. Die Debug-Vergleichseinheit 114 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-Vergleichseinheit 114 definierten Bedingungen erfüllt ist, erzeugt die Debug-Vergleichseinheit 114 ein Signal, das der Debug-Einheit 115 zugeführt wird. Dann erzeugt die Debug-Einheit 115 ein Debug-Signal oder erzeugt ein der Taktsteuereinheit 2 zugeführtes Signal, woraufhin die zentrale Verarbei tungseinheit 1 durch Sperren des Steuertakts angehalten wird. Die Mikrosteuerung kann dann die jeweiligen Werte des Registerfile 112 und/oder der Spezialfunktionsregister 116 und des Datenspeichers 10 durch den Mikrosteuerungsbus 9 prüfen.
  • 7 zeigt eine weitere Ausführungsform mit einem weiteren Debug-Merkmal. Der Codespeicher 11 ist mit einer Pipeline mit einer Abrufeinheit 100, einer Decodiereinheit 101, einer Lesespeicher/-registereinheit 102 und einer Schreibausführungseinheit 103 verbunden. Die Schreibausführungseinheit 103 umfaßt eine Arithmetik-Logik-Einheit 118, die Flags erzeugen kann. Bei dieser Ausführungsform werden durch die Arithmetik-Logik-Einheit 118 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 Lesespeicherregistereinheit 102 ist auch mit dem Datenspeicher 10 und dem Registerfile 112 gekoppelt. Die Schreibausführungseinheit 103 ist auch mit dem Datenfluß 10 gekoppelt. Es wird eine Debug-Vergleichs- und -Steuereinheit 119 vorgesehen, die die Flag-Signale aus der Arithmetik-Logik-Einheit 118 empfängt. Die Debug-Vergleichs- und -Steuereinheit 119 ist auch mit der Debug-Einheit 120 gekoppelt. Die Debug-Einheit 120 umfaßt mindestens ein Steuerregister 121 zum Definieren vielfältiger Debug-Merkmale. Eine Debug-Erfassungseinheit 117 wird vorgesehen, die mit dem Registerfile 112 und mit der Debug-Einheit 120 gekoppelt ist. Die Debug-Einheit 120 umfaßt einen Eingang für eine externe Debug-Anforderung und einen Ausgang für ein Debug-Signal. Ferner ist die Debug-Einheit 120 über den Eingang 2A mit der Taktsteuereinheit 2 gekoppelt.
  • Die Debug-Einheit 120 kann auf vielerlei Weisen programmiert werden. Bei einem ersten Modus erzeugt die Debug-Einheit 120 ein Debug-Signal oder steuert die Taktsteuereinheit 2, wenn die Debug-Vergleichs- und -steuereinheit 119 erkennt, daß eine durch die Flag-Signale C, N, V und Z definierte vordefinierte Bedingung hergestellt ist. Wenn die Arithmetik-Logik-Einheit 118 eine dieser Bedingungen erzeugt, erzeugt die Debug-Einheit 120 das jeweilige Debug-Signal oder steuert die Taktsteuereinheit 2. 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-Einheit 120 dafür programmiert ist, ein Debug-Signal zu erzeugen, wird die Ausführung der jeweiligen Interrupt-Routine in der zentrale Verarbeitungseinheit 1 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 Taktsteuereinheit 2 durch die Debug-Einheit 120 gesteuert wird, wird bei einem Debug-Ereignis der Betrieb der zentralen Verarbeitungseinheit 1 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 Registerfile 112 und der Speicher 10, 11 durch den Mikrosteuerungsbus 9 untersuchen. Somit kann ein effizienter Debug-Modus eingerichtet werden.
  • In einem zweiten Modus erfaßt die Debug-Einheit 120 den Inhalt des Registerfile 112 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-Einheit 118 definiert wird, oder kann durch ein externes Debug-Anforderungssignal angefordert werden. In diesem Modus wird die Ausführung einer Interrupt-Routine in der zentralen Verarbeitungseinheit 1 nicht unterbrochen und der Inhalt eines Teils oder aller der Register in dem Registerfile 112 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 Mikrosteuerungsbus 9 zugänglich zu sein. Dieser Modus ist besonders für Echtzeit-Debugging nützlich.
  • 8 zeigt eine Modifikation der Taktsteuereinheit 2. Die Taktsteuereinheit 2 kann vielfältige verschiedene Taktsignale erzeugen. Deshalb umfaßt die Taktsteuereinheit 2 einen Taktgenerator 2c, 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 Schalter 2d eine niedrigere Taktrate zugeführt werden. Der Schalter 2d wird wie oben beschrieben durch Signale 2a und 2b 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)

  1. 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.
  2. Prozessor nach Anspruch 1, wobei die steuerbare Takteinheit (2) einen mit der Interrupt-Steuereinheit (4) gekoppelten Taktfreigabeeingang (2b) umfaßt.
  3. 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).
  4. Prozessor nach Anspruch 2, wobei die Interrupt-Steuereinheit (4) eine Interrupt-Arbitrierungs einheit (4b) zum Erzeugen von Prioritäten für Interrupts umfaßt.
  5. 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.
  6. 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.
  7. Prozessor nach Anspruch 6, wobei die Ausführungseinheit (109, 110, 111) ein Ausnahmesignal erzeugt, wenn eine programmierbare Anzahl (111) von Direktspeicheradressenkanälen überstiegen wird.
  8. 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.
  9. 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.
  10. 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.
  11. Prozessor nach Anspruch 2, wobei die zentrale Verarbeitungseinheit (1) eine programmierbare Debug-Vergleichseinheit (114) mit einem Steuerregister (121) umfaßt.
  12. Prozessor nach Anspruch 11, wobei die programmierbare Debug-Vergleichseinheit (114) die Taktsteuereinheit (2) bei einer vordefinierten Bedingung sperrt.
  13. Prozessor nach Anspruch 11, wobei die programmierbare Debug-Vergleichseinheit (114) ein Debug-Signal erzeugt.
  14. Prozessor nach Anspruch 11, wobei die programmierbare Debug-Vergleichseinheit (114) Statusinformationen der zentralen Verarbeitungseinheit (1) erfaßt.
  15. 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.
  16. 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).
  17. Prozessor nach Anspruch 15, wobei die Interrupt-Steuereinheit (4) eine Interrupt-Arbitrierungseinheit (4b) zum Erzeugen von Prioritäten für Interrupts umfaßt.
  18. 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.
  19. 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.
  20. 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.
  21. 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.
  22. 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.
  23. 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.
  24. Prozessor nach Anspruch 15, wobei die zentrale Verarbeitungseinheit eine programmierbare Debug-Vergleichseinheit (114) mit einem Steuerregister (121) umfaßt.
  25. Prozessor nach Anspruch 24, wobei die programmierbare Debug-Vergleichseinheit (114) die Taktsteuereinheit (2) bei einer vordefinierten Bedingung sperrt.
  26. Prozessor nach Anspruch 24, wobei die programmierbare Debug-Vergleichseinheit (114) ein Debug-Signal erzeugt.
  27. Prozessor nach Anspruch 24, wobei die programmierbare Debug-Vergleichseinheit (114) Statusinformationen der zentralen Verarbeitungseinheit (1) erfaßt.
DE69933515T 1998-07-28 1999-05-31 Peripherieprozessor Expired - Lifetime DE69933515T2 (de)

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)

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

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

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

Cited By (4)

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