DE19858650A1 - Equipment for reducing the energy consumption of a self-clocking asynchronous system - Google Patents

Equipment for reducing the energy consumption of a self-clocking asynchronous system

Info

Publication number
DE19858650A1
DE19858650A1 DE19858650A DE19858650A DE19858650A1 DE 19858650 A1 DE19858650 A1 DE 19858650A1 DE 19858650 A DE19858650 A DE 19858650A DE 19858650 A DE19858650 A DE 19858650A DE 19858650 A1 DE19858650 A1 DE 19858650A1
Authority
DE
Germany
Prior art keywords
energy
asynchronous system
data processing
functional unit
instruction
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.)
Withdrawn
Application number
DE19858650A
Other languages
German (de)
Inventor
Negel C Paver
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.)
Cogency Technology Inc
SK Hynix Inc
Original Assignee
Cogency Technology Inc
LG Semicon Co Ltd
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 Cogency Technology Inc, LG Semicon Co Ltd filed Critical Cogency Technology Inc
Publication of DE19858650A1 publication Critical patent/DE19858650A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • G06F9/3871Asynchronous instruction pipeline, e.g. using handshake signals between stages
    • 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

Abstract

The asynchronous system has several functional units (100,102) coupled together to perform at least one required task and an energy control circuit coupled to a selected one of the functional units to define a first and/or a second operating speed for the selected functional unit. Less energy is consumed by the selected functional unit operating at one speed than at the other. An Independent claim is also included for a data processor and a method of reducing the energy consumption of a self-clocking system.

Description

Diese Erfindung ist auf ein Energiesteuergerät und ins­ besondere auf ein selbstgetaktetes Energiesteuergerät ge­ richtet, das den Energieverbrauch verringert.This invention is based on an energy control device and ins special to a self-timed energy control unit that reduces energy consumption.

Ein Prozessor, wie z. B. ein Mikroprozessor, ein Mikro­ controller oder ein digitaler Signalprozessor (DSP) enthält mehrere funktionale Einheiten mit jeweils einer speziellen Aufgabe, die mit einem Satz binär codierter Anweisungen ge­ koppelt sind, die Operationen auf den funktionalen Einheiten innerhalb der Prozessorarchitektur definieren. Die binär co­ dierten Anweisungen können dann kombiniert werden, um ein Programm zu bilden, das eine gewisse vorgegebene Aufgabe ausführt. Solche Programme können auf der Prozessorarchitek­ tur ausgeführt oder in einem Speicher für eine spätere Aus­ führung gespeichert werden.A processor, such as. B. a microprocessor, a micro controller or a digital signal processor (DSP) several functional units, each with a special one Task done with a set of binary coded instructions are coupled, the operations on the functional units define within the processor architecture. The binary co dated instructions can then be combined to form one To form a program that has a certain predetermined task executes. Such programs can be found on the processor architecture executed or in memory for later use leadership can be saved.

Um ein gegebenes Programm abzuarbeiten, müssen die funk­ tionalen Einheiten innerhalb der Prozessorarchitektur syn­ chronisiert sein, um eine korrekte Ausführung von Anwei­ sungen (z. B. Zeit, Reihenfolge etc.) sicherzustellen. "Syn­ chrone" Systeme legen an die funktionalen Einheiten ein fe­ stes Zeitschrittsignal (d. h. ein Taktsignal) an, um eine synchronisierte Ausführung sicherzustellen. In synchronen Systemen der verwandten Technik benötigen folglich alle funktionalen Einheiten ein Taktsignal. Für einen gegebenen Anweisungstyp müssen jedoch nicht alle funktionalen Ein­ heiten in Betrieb sein. Da die funktionalen Einheiten akti­ viert werden können, selbst wenn sie zur Ausführung einer gegebenen Anweisung unnötig sind, können synchrone Systeme ineffizient sein.To run a given program, the radio tional units within the processor architecture syn chronized to ensure correct execution of instructions solutions (e.g. time, order, etc.). "Syn Chrone "systems attach to the functional units first time step signal (i.e. a clock signal) to a ensure synchronized execution. In sync Related systems therefore need everyone functional units a clock signal. For a given However, statement types do not have to be all functional On units in operation. Since the functional units acti can be fourth, even if they are used to perform a given instruction are unnecessary, synchronous systems be inefficient.

Die Verwendung eines festen Zeittaktsignals (d. h. eines Taktzyklus) in synchronen Systemen beschränkt auch den Ent­ wurf der funktionalen Einheiten. Jede funktionale Einheit muß dafür ausgelegt sein, innerhalb des Taktzyklus ihre Ope­ ration unter ungünstigsten Umständen durchzuführen, wenn auch die Operation unter ungünstigsten Umständen selten sein mag. Ein Operationsentwurf für den schlechtesten Fall ver­ ringert die Leistungsfähigkeit synchroner Systeme, besonders wenn die Operation eines typischen Falles viel schneller als die der Kriterien für den schlechtesten Fall abläuft. Dem­ entsprechend versuchen synchrone Systeme den Taktzyklus zu reduzieren, um die Leistungsnachteile zu minimieren, die durch Kriterien für eine Operation unter ungünstigsten Um­ ständen bewirkt werden. Ein Reduzieren des Taktzyklus unter Kriterien für den schlechtesten Fall erfordert zunehmend komplizierte Steuersysteme oder zunehmend komplizierte funk­ tionale Einheiten. Diese komplizierteren synchronen Systeme verringern den Wirkungsgrad im Sinne der Fläche und des Energieverbrauchs, um gegebene Leistungskriterien, wie z. B. reduzierte Taktzyklen, zu erfüllen.The use of a fixed timing signal (i.e. one Clock cycle) in synchronous systems also limits the Ent litter of functional units. Every functional unit must be designed to operate within the clock cycle  ration in the worst possible circumstances, if even surgery under the worst circumstances can be rare like. A worst case surgery design ver degrades the performance of synchronous systems, especially if the operation of a typical case is much faster than which expires the worst case criteria. The accordingly, synchronous systems try the clock cycle reduce to minimize the performance drawbacks that by criteria for surgery under worst case be effected. Reducing the clock cycle below Worst case criteria increasingly required complicated control systems or increasingly complicated radio national units. These more complex synchronous systems reduce the efficiency in terms of area and Energy consumption to meet given performance criteria, such as B. reduced clock cycles.

Selbstgetaktete Systeme der verwandten Technik, auch be­ kannt als asynchrone Systeme, beseitigen viele Probleme, die mit dem Taktsignal synchroner Systeme verbunden sind. In asynchronen Systemen treten dementsprechend Leistungsnach­ teile nur in einer Operation eines wirklichen (seltenen) schlechtesten Falles auf. Asynchrone Systeme können demgemäß für die Leistungsfähigkeit eines typischen Falles zuge­ schnitten werden, was zu einer verminderten Komplexität für Prozessorausführungen führen kann, die die Leistungsanforde­ rungen erreichen. Da asynchrone Systeme funktionale Einhei­ ten nur aktivieren, wenn sie für den gegebenen Anweisungstyp erforderlich sind, wird ferner der Wirkungsgrad erhöht. Asynchrone Systeme können folglich im Sinne der Integration und des Energieverbrauchs einen erhöhten Wirkungsgrad lie­ fern.Self-clocked systems of related technology, also be Knows as asynchronous systems, eliminate many problems that are connected to the clock signal of synchronous systems. In Accordingly, asynchronous systems follow performance share only in one operation of a real (rare) worst case. Accordingly, asynchronous systems can for the performance of a typical case be cut, resulting in reduced complexity for Processor designs that can meet the performance requirements achievements. Since asynchronous systems are functional units Activate only if they are for the given instruction type the efficiency is also increased. Asynchronous systems can therefore be integrated and increased energy efficiency remote.

Asynchrone Systeme der verwandten Technik verwenden funktionale Einheiten mit einem asynchronen Schnittstellen­ protokoll, um Daten und Steuerinformation weiterzuleiten. Indem solche asynchrone funktionale Einheiten miteinander gekoppelt werden, um größere Blöcke zu bilden, können zuneh­ mend komplizierte Funktionen verwirklicht werden. Fig. 1 zeigt zwei solche funktionale Einheiten, die über Datenlei­ tungen und Steuerleitungen gekoppelt sind. Eine erste funk­ tionale Einheit 100 ist ein Sender, der Daten überträgt. Die zweite funktionale Einheit 102 ist ein Empfänger, der die Daten empfängt.Asynchronous systems of the related art use functional units with an asynchronous interface protocol to forward data and control information. By coupling such asynchronous functional units together to form larger blocks, increasingly complex functions can be realized. Fig. 1 shows two such functional units, which are coupled via data lines and control lines. A first functional unit 100 is a transmitter that transmits data. The second functional unit 102 is a receiver that receives the data.

Eine Kommunikation zwischen den funktionalen Einheiten 100, 102 wird durch Bündeln von Datendrähten 104 mit Steuer­ drähten erreicht. Ein Anforderung-Steuerdraht REQ wird durch den Sender 100 gesteuert und aktiviert, wenn der Sender 100 alle gültigen Daten auf den Datendrähten 104 plaziert hat. Durch den Empfänger 102 wird ein Bestätigung-Steuerdraht ACK gesteuert und aktiviert, wenn der Empfänger 102 die Daten verbraucht hat, die auf den Datendrähten 104 plaziert wur­ den. Dieses asynchrone Schnittstellenprotokoll ist als ein "Quittungsaustausch" (engl. handshake) bekannt, weil der Sender 100 und der Empfänger 102 beide miteinander kommuni­ zieren, um die gebündelten Daten weiterzuleiten.Communication between the functional units 100 , 102 is achieved by bundling data wires 104 with control wires. A request control wire REQ is controlled and activated by the transmitter 100 when the transmitter 100 has placed all valid data on the data wires 104 . By the receiver 102, an acknowledgment ACK control wire is controlled and activated when the receiver 102 has the data consumed, the WUR placed on the data wires 104 to. This asynchronous interface protocol is known as a "handshake" because transmitter 100 and receiver 102 both communicate with each other to forward the bundled data.

Das in Fig. 1 gezeigte asynchrone Schnittstellenproto­ koll kann verschiedene Zeitsteuerprotokolle zur Datenüber­ tragung verwenden. Ein Protokoll der verwandten Technik ba­ siert auf einem Steuerkommunikationsschema mit vier Phasen. Fig. 2 zeigt ein Zeitsteuerdiagramm für das Steuerkommuni­ kationsschema mit vier Phasen.The asynchronous interface protocol shown in FIG. 1 can use various time control protocols for data transmission. A protocol of the related art is based on a control communication scheme with four phases. Fig. 2 shows a timing diagram for the four-phase control communication scheme.

Wie in Fig. 2 gezeigt ist, gibt der Sender 100 an, daß die Daten auf den Datendrähten 104 gültig sind, indem ein aktiver Anforderung-Steuerdraht REQ Hoch erzeugt wird. Der Empfänger 102 kann die Daten nun nach Bedarf verwenden. Wenn der Empfänger 102 die Daten nicht länger benötigt, signali­ siert er zurück zum Sender 100 einen aktiven Bestätigung- Steuerdraht ACK Hoch. Der Sender 100 kann nun die Daten vom Kommunikationsbus, wie z. B. den Datendrähten 104, entfernen und die nächste Übermittlung vorbereiten.As shown in Figure 2, transmitter 100 indicates that the data on data wires 104 is valid by generating an active request control wire REQ high. Receiver 102 can now use the data as needed. When the receiver 102 no longer needs the data, it signals an active confirmation control wire ACK high back to the transmitter 100 . The transmitter 100 can now receive the data from the communication bus, e.g. B. Data wires 104 , remove and prepare for the next transmission.

Im Vierphasenprotokoll müssen die Steuerleitungen zum Anfangszustand zurückgeführt werden. Dementsprechend deakti­ viert der Sender 100 die Ausgabeanforderung, indem der An­ forderung-Steuerdraht REQ auf niedrig zurückgeführt wird. Auf die Deaktivierung des Anforderung-Steuerdrahtes REQ hin kann der Empfänger 102 den Bestätigung-Steuerdraht ACK auf Niedrig deaktivieren, um dem Sender 100 anzuzeigen, daß der Empfänger 102 für weitere Daten bereit ist. Der Sender 100 und der Empfänger 102 müssen diese strenge Reihenfolge von Ereignissen befolgen, um im Steuerkommunikationsschema mit vier Phasen zu kommunizieren. Vorteilhafterweise gibt es je­ doch keine obere Begrenzung für die Verzögerungen zwischen aufeinanderfolgenden Ereignissen.In the four-phase protocol, the control lines must be returned to the initial state. Accordingly, the transmitter 100 deactivates the issue request by returning the request control wire REQ to low. Upon deactivation of the request control wire REQ, the receiver 102 can deactivate the confirmation control wire ACK to low to indicate to the transmitter 100 that the receiver 102 is ready for further data. Transmitter 100 and receiver 102 must follow this strict order of events to communicate in the four-phase control communication scheme. However, there is advantageously no upper limit for the delays between successive events.

Ein erstes First-In-First-Out-(FIFO)-Register oder eine FIFO-Pipeline liefert ein Beispiel selbstgetakteter Systeme, die mehrere funktionale Einheiten miteinander koppeln. Fig. 3 zeigt eine solche selbstgetaktete FIFO-Struktur. Die funk­ tionalen Einheiten können Register 300a-300c mit sowohl einem Eingangsschnittstellenprotokoll als auch einem Aus­ gangsschnittstellenprotokoll sein. Wenn sie leer sind, kann jedes der Register 300a-300c über eine Eingangsschnitt­ stelle 302 Daten zur Speicherung empfangen. Sind im Register Daten einmal gespeichert, kann die Eingangsschnittstelle keine weiteren Daten akzeptieren. In diesem Zustand hat der Eingang des Registers 300a "gesperrt bzw. blockiert" (engl. stalled). Das Register 300a bleibt blockiert, bis das Regi­ ster 300a wieder leer ist. Enthält jedoch das Register 300a einmal Daten, kann das Register 300a die Daten über eine Ausgangsschnittstelle 304 zur nächsten Stufe (d. h. dem Regi­ ster) der selbstgetakteten FIFO-Struktur weiterleiten. Das Register 300a erzeugt eine Ausgabeanforderung, wenn die aus­ zugebenden Daten gültig sind. Wurden die Daten einmal ver­ braucht und werden sie nicht länger benötigt, ist das Regi­ ster 300a dann im leeren Zustand. Das Register 300a kann dementsprechend wieder Daten unter Verwendung des Eingangs­ schnittstellenprotokolls empfangen.A first first-in-first-out (FIFO) register or a FIFO pipeline provides an example of self-clocked systems that couple several functional units with one another. Fig. 3 shows such a self-timed FIFO structure. The functional units can be registers 300 a - 300 c with both an input interface protocol and an output interface protocol. When empty, can each of the registers 300 a- 300 c via an input interface 302 put data received for storage. Once the data has been saved in the register, the input interface cannot accept any further data. In this state, the input of register 300 a has "locked". The register 300 a blocked remains until the Regi-edge 300 a is empty again. However, if the register 300 a contains data once, the register 300 a can forward the data via an output interface 304 to the next stage (ie the register) of the self-timed FIFO structure. The register 300 a generates an output request when the valid from data to be played. Once the data has been used up and is no longer required, the 300 a register is then empty. Accordingly, register 300a can again receive data using the input interface protocol.

Eine gegenseitige Verkettung der Register 300a-300c durch Koppeln der Ausgangsschnittstelle 304 mit der Eingangsschnittstelle 302 bildet das Mehrstufen-FIFO oder die Pipeline. Folglich sind Anforderungs- und Bestätigungssig­ nale, Rout und Aout, der Ausgangsschnittstellen mit den An­ forderungs- und Bestätigungssignalen, Rin bzw. Ain, der Ein­ gangsschnittstellen des folgenden Registers 300a-300c (Stufe) gekoppelt. Wie in Fig. 3 gezeigt ist, werden in ei­ nem FIFO-Eingang 306 weitergeleitete Daten vom Register 300a zum Register 300c weitergeleitet, um schließlich am FIFO-Aus­ gang 308 aufzutauchen. Die Datenreihenfolge wird somit bewahrt, während die Daten entlang der FIFO sequentiell wei­ tergeleitet werden. Die in Fig. 3 gezeigte FIFO-Struktur kann das in Fig. 2 dargestellte Steuerkommunikationsschema mit vier Phasen als Eingangs- und Ausgangsschnittstellenpro­ tokoll verwenden.Mutual concatenation of the registers 300 a - 300 c by coupling the output interface 304 with the input interface 302 forms the multi-stage FIFO or the pipeline. Consequently, request and confirmation signals, Rout and Aout, the output interfaces are coupled with the request and confirmation signals, Rin and Ain, the input interfaces of the following register 300 a - 300 c (level). As shown in Fig. 3, in a FIFO input 306 forwarded data from register 300 a to register 300 c to finally emerge at the FIFO output 308 . The data order is thus preserved while the data is sequentially forwarded along the FIFO. The FIFO structure shown in FIG. 3 can use the four-phase control communication scheme shown in FIG. 2 as the input and output interface protocol.

Das FIFO-Register von Fig. 3 kann eine logische Verar­ beitung einschließen. In diesem Fall gehen Daten durch eine Verarbeitungslogik zwischen Stufen des FIFO-Registers. Wie in Fig. 4 gezeigt ist, gelangen Daten durch eine Verarbei­ tungslogik 402a-402b zwischen Registern 300a-300c. Da die Verarbeitungslogik 402a-402b Zeit in Anspruch nimmt, um einen Ausgabewert zu bestimmen, werden Steuersignale (z. B. das Anforderungssignal Rout einer Ausgangsschnittstel­ le) verzögert, um entsprechend zur Logikverzögerung zu pas­ sen. Die koordinierte Steuersignal- und Verarbeitungslogik­ verzögerung stellt sicher, daß das Vierphasen-Kommunika­ tionsprotokoll erfüllt wird. Mit anderen Worten, die Daten kommen an, und die Anforderung Rout signalisiert deren Gül­ tigkeit.The FIFO register of Fig. 3 may include logic processing. In this case, data passes through processing logic between stages of the FIFO register. As shown in Fig. 4, data access by a process ing logic 402 a-402 b between registers 300 a-300 c. Since processing logic 402 a- 402 b takes time to determine an output value, control signals (e.g., the request signal Rout of an output interface) are delayed to match the logic delay. The coordinated control signal and processing logic delay ensures that the four-phase communication protocol is met. In other words, the data arrives and the Rout request signals its validity.

Wie in Fig. 4 gezeigt ist, verlängert die Verzögerung im Anforderungspfad die Zeit, die in Anspruch genommen wird, um den Quittungsaustausch abzuschließen, was ermöglicht, daß die Datenberechnung in der Verarbeitungslogik abgeschlossen wird. Die Steuersignalverzögerung kann irgendein Wert sein, der geeignet ist, um zur Logikdatenverzögerung zu passen. Die Verzögerung 404a-404b kann ferner verschieden imple­ mentiert sein. Zum Beispiel kann ein einfacher angepaßter Pfad, eine variable Verzögerung oder Funktion der vorhan­ denen Daten als die Verzögerung 404a-404b verwendet wer­ den. Eine Zunahme der Verzögerung reduziert jedoch den Durchsatz und die Leistungsfähigkeit des selbstgetakteten Systems, weil eine Verzögerung in der Anforderung/Bestäti­ gungsschleife des Quittungsaustausches die Datenübertra­ gungsrate reduziert.As shown in Fig. 4, the delay in the request path extends the time taken to complete the handshake, allowing data processing in the processing logic to be completed. The control signal delay can be any value that is appropriate to match the logic data delay. The delay 404 a- 404 b can also be implemented differently. For example, a simple matched path, a variable delay or function of EXISTING which uses data than the delay 404 a- 404 b who the. However, an increase in the delay reduces the throughput and the performance of the self-timed system because a delay in the request / confirmation loop of the receipt exchange reduces the data transmission rate.

Eine Aufgabe der vorliegenden Erfindung besteht darin, die oben beschriebenen Probleme und Nachteile des Stands der Technik im wesentlichen zu beseitigen.An object of the present invention is the problems and disadvantages of the prior art described above Essentially eliminate technology.

Eine andere Aufgabe der vorliegenden Erfindung ist, den Energieverbrauch einer Halbleitervorrichtung zu reduzieren.Another object of the present invention is that To reduce energy consumption of a semiconductor device.

Eine weitere Aufgabe der vorliegenden Erfindung besteht darin, den Energieverbrauch eines asynchronen Systems durch Bestimmen einer Betriebsgeschwindigkeit auf der Basis von Lastanforderungen zu reduzieren. Another object of the present invention is in the energy consumption of an asynchronous system Determine an operating speed based on Reduce load requirements.  

Um zumindest die obigen Aufgaben insgesamt oder teilwei­ se zu erfüllen, ist ein asynchrones System gemäß der vorlie­ genden Erfindung vorgesehen, das eine Vielzahl funktionaler Einheiten, die miteinander gekoppelt sind, um zumindest eine Aufgabe auszuführen, und eine Energiesteuerschaltung ent­ hält, die mit einer ausgewählten der Vielzahl funktionaler Einheiten gekoppelt ist, um eine erste und/oder eine zweite Betriebsgeschwindigkeit der ausgewählten funktionalen Ein­ heit zu bestimmen.To at least complete the above tasks in whole or in part To fulfill this is an asynchronous system according to the present Invention provided that a variety of functional Units that are coupled to each other by at least one Execute task, and ent an energy control circuit keeps that functional with a selected one of the multitude Units is coupled to a first and / or a second Operating speed of the selected functional on to determine.

Um ferner die obigen Aufgaben insgesamt oder teilweise zu erfüllen, ist ein Datenverarbeitungsgerät gemäß der vor­ liegenden Erfindung vorgesehen, das mehrere funktionale Ein­ heiten, eine asynchrone Steuereinheit, die eine aktuelle An­ weisung decodiert, um eine entsprechende Anweisungsaufgabe unter Verwendung einer Gruppe der mehreren funktionalen Ein­ heiten auszuführen, eine Energiebestimmungseinrichtung, wor­ in das Datenverarbeitungsgerät bei einem von mehreren Ener­ giepegeln arbeitet, der durch die Energiebestimmungseinrich­ tung ausgewählt wurde, und eine Kommunikationseinrichtung enthält, die die funktionalen Einheiten, die Energiebestim­ mungseinrichtung und die Steuereinheit koppelt.To further complete the above tasks in whole or in part to meet, is a data processing device according to the before lying invention provided the multiple functional one an asynchronous control unit that has a current instruction decoded to a corresponding instruction task using a group of the multiple functional ones units to perform an energy determination device, wor into the data processing device at one of several energy providers giepegeln works by the energy determination device device was selected, and a communication device contains the functional units that determine energy mungseinrichtung and the control unit couples.

Um weiterhin die obigen Aufgaben insgesamt oder teilwei­ se zu erfüllen, ist ein Verfahren zum Betreiben eines asyn­ chronen Systems mit mehreren, miteinander gekoppelten funk­ tionalen Einheiten gemäß der vorliegenden Erfindung vorgese­ hen, das ein Bestimmen von Operationskriterien des asynchro­ nen Systems und Bestimmen eines von mehreren Energiever­ brauchspegeln auf der Basis der Operationskriterien des asynchronen Systems einschließt.To continue the above tasks in whole or in part Meeting this is a method of operating an asyn chronic system with several, coupled radio tionese units according to the present invention hen that is determining operational criteria of the asynchro system and determining one of several energy ver levels based on the surgical criteria of the asynchronous system.

Zusätzliche Vorteile, Aufgaben und Merkmale der Erfin­ dung werden zum Teil in der folgenden Beschreibung dargelegt und dem Fachmann bei Prüfung des folgenden zum Teil ersicht­ lich werden oder können aus der praktischen Umsetzung der Erfindung gelernt werden. Die Aufgaben und Vorteile der Er­ findung können, wie insbesondere in den beigefügten Ansprü­ chen ausgeführt ist, verwirklicht und erreicht werden.Additional advantages, tasks and features of the Erfin are explained in part in the following description and partially apparent to one skilled in testing the following Lich or can from the practical implementation of the Invention to be learned. The tasks and advantages of the Er can find, as in particular in the appended claims Chen is executed, realized and achieved.

Ein Ausführungsbeispiel eines asynchronen Systems und eines Verfahrens, um dieses zu betreiben, wird im folgenden anhand schematischer Zeichnungen beschrieben. Es zeigen: An embodiment of an asynchronous system and A method to operate this is as follows described with reference to schematic drawings. Show it:  

Fig. 1 ein Blockdiagramm, das eine selbstgetaktete Da­ tenschnittstelle zeigt; Fig. 1 is a block diagram showing a self-timed data interface;

Fig. 2 ein Diagramm, das Signalwellenformen eines Vier­ phasen-Kommunikationsprotokolls darstellt; Fig. 2 is a diagram showing signal waveforms of a four-phase communication protocol represents;

Fig. 3 ein Blockdiagramm, das eine selbstgetaktete First-In-First-Out-(FIFO)-Datenschnittstelle zeigt; Figure 3 is a block diagram showing a self-timed first-in-first-out (FIFO) data interface;

Fig. 4 ein Blockdiagramm, das eine FIFO-Schnittstelle zeigt, die eine Verarbeitungs- und Steuerlogik enthält; Fig. 4 is a block diagram showing a FIFO interface that includes processing and control logic;

Fig. 5 ein einen digitalen Prozessor darstellendes Blockdiagramm; Fig. 5 is a block diagram illustrating a digital processor;

Fig. 6 ein Operationen einer Anweisungspipeline dar­ stellendes Diagramm; Fig. 6 shows an operation of an instruction pipeline is alternate diagram;

Fig. 7 ein einen selbstgetakteten Prozessor darstellen­ des Blockdiagramm; und Fig. 7 is a a self-timed processor represent the block diagram; and

Fig. 8 ein Blockdiagramm einer bevorzugten Ausführungs­ form einer Prozessorschnittstelle mit einer Steuerlogik. Fig. 8 is a block diagram of a preferred form of execution of a processor interface with a control logic.

Durch die Geschwindigkeit kritischer Elemente kann die Systemleistung (z. B. Durchsatz) eines selbstgetakteten Sy­ stems gesteuert werden. Ein kritisches Element führt eine Aufgabe aus, die abgeschlossen sein muß, bevor das selbstge­ taktete System eine Verarbeitung fortsetzt. In einem digita­ len Prozessor kann ein kritisches Element z. B. ein Anwei­ sungsabruf sein. In Fig. 5 ist eine beispielhafte Architek­ tur eines digitalen Prozessors 500 gezeigt. Die Architektur des Prozessors 500 enthält funktionale Einheiten, die in ei­ ner Mikroprozessor-, Mikrocontroller- und DSP-Ausführung oder dergleichen verwendet werden können. Um ein Programm auf einer Prozessorarchitektur, wie z. B. dem Prozessor 500, zu implementieren, muß ein Satz Anweisungen und entspre­ chender Anweisungsaufgaben definiert sein. Während den Ope­ rationen wird jede Anweisung decodiert, um die funktionalen Einheiten zu aktivieren, die erforderlich sind, um die ent­ sprechende Anweisungsaufgabe auszuführen. Jede der funktio­ nalen Einheiten ist durch einen Datenbus 516 eines gemein­ samen Betriebsmittels gekoppelt.The system performance (e.g. throughput) of a self-timed system can be controlled by the speed of critical elements. A critical element performs a task that must be completed before the self-timed system continues processing. In a digita len processor, a critical element such. B. an instruction call. An exemplary architecture of a digital processor 500 is shown in FIG. 5. The architecture of processor 500 includes functional units that can be used in a microprocessor, microcontroller, and DSP implementation or the like. To run a program on a processor architecture, such as. For example, to implement processor 500 , a set of instructions and corresponding instruction tasks must be defined. During the operations, each instruction is decoded to activate the functional units required to execute the corresponding instruction task. Each of the functional units is coupled by a common resource data bus 516 .

Eine funktionale Einheit Programmzähler PC 502 erzeugt eine Anweisungsprogrammadresse. Der PC 502 kann einen Adreß­ stapel zum Halten von Adressen von Subroutinen- oder Unter­ brechungsaufrufen enthalten. Eine funktionale Einheit Anwei­ sungsdecodierer 504 steuert einen Anweisungsabruf und eine Decodierung. Die funktionale Einheit Anweisungsdecodierer 504 enthält einen Anweisungsdecodierer zum Erzeugen einer Steuerinformation für die funktionalen Einheiten und ein Statusregister zum Halten eines aktuellen Prozeßstatus. Eine funktionale arithmetische und logische Einheit ALU 506 führt unter Verwendung einer ganzzahligen Arithmetik ALU Daten- und arithmetische Operationen aus. Die ALU 506 enthält auch einen Datenakkumulator zum Speichern eines Ergebnisses einer speziellen Daten- oder arithmetischen Operation.A functional unit program counter PC 502 generates an instruction program address. The PC 502 may include an address stack for holding addresses of subroutine or interrupt calls. An instruction decoder 504 functional unit controls instruction fetch and decoding. The functional unit instruction decoder 504 includes an instruction decoder for generating control information for the functional units and a status register for maintaining a current process status. A functional arithmetic and logic unit ALU 506 performs data and arithmetic operations using integer arithmetic ALU. The ALU 506 also includes a data accumulator for storing a result of a particular data or arithmetic operation.

Der Prozessor 500 kann ferner eine funktionale Einheit Multiplizierer MULT 508, der eine Datenmultiplikation aus­ führt, und eine funktionale Einheit indirektes Adreßregister ADDR 510 enthalten. Das ADDR 510 enthält indirekte Daten­ adressen in einem Adreßregisterfeld. Eine funktionale Ein­ heit Direktzugriffsspeicher RAN 514 wird verwendet, um Da­ tenwerte zu speichern. Die funktionale Einheit Daten-RAM-Steu­ erung RAMC 512 steuert einen Speicherzugriff auf einen Datenspeicher im RAN 514.The processor 500 may further include a functional unit multiplier MULT 508 , which performs data multiplication, and a functional unit indirect address register ADDR 510 . The ADDR 510 contains indirect data addresses in an address register field. A functional random access memory RAN 514 is used to store data values. The functional unit data RAM controller RAMC 512 controls memory access to a data memory in the RAN 514 .

Im Prozessor 500 arbeiten die funktionalen Blöcke gleichzeitig. Der Prozessor 500 muß jedoch eine korrekte Verwaltung des Datenbusses 516 eines gemeinsamen Betriebs­ mittels sicherstellen, indem Daten- und Sequenzanforderungen gesteuert werden, wenn Datenübermittlungen zwischen funktio­ nalen Einheiten stattfinden. Der Prozessor 500 verwendet vorzugsweise eine dreistufige Anweisungspipeline, die aus einem Anweisungsabruf-, Anweisungsdecodier- und Anweisungs­ ausführzyklus besteht. Eine Architektur mit Pipelinestruktur verbessert Leistungsanforderungen, indem ein effizienterer (z. B. gleichzeitiger) Gebrauch der funktionalen Einheiten des Prozessors 500 ermöglicht wird. Wie in Fig. 6 gezeigt ist, erlaubt die dreistufige Anweisungspipeline, daß jede Pipelinestufe überlappt wird, was die Gleichzeitigkeit und Prozessorleistung erhöht.In the processor 500 , the functional blocks work simultaneously. However, processor 500 must ensure correct management of the data bus 516 of a shared operation by controlling data and sequence requests when data transfers occur between functional units. Processor 500 preferably uses a three-stage instruction pipeline consisting of an instruction fetch, instruction decode, and instruction execution cycle. A pipelined architecture improves performance requirements by allowing more efficient (e.g., simultaneous) use of the functional units of processor 500 . As shown in Fig. 6, the three-stage instruction pipeline allows each pipeline stage to overlap, which increases concurrency and processor performance.

Fig. 7 zeigt das Beispiel eines Anweisungsabrufes, der das kritische Element in einem asynchronen System ist. Wie veranschaulicht, ist Fig. 7 Fig. 4 ähnlich, jedoch sind das Register, die Logik und eine angepaßte Verzögerung als eine einzige Pipelinestufe zusammengruppiert. In selbstge­ takteten Systemen kann die Systemgeschwindigkeit reduziert werden, indem die Leistung (Zykluszeit) einer kritischen funktionalen Einheit geändert wird, weil der Quittungsaus­ tausch in jeder funktionalen Einheit abschließen muß, bevor das nächste Element akzeptiert werden kann. Die Systemlei­ stung des Prozessors 500 kann z. B. ähnlich reduziert werden, indem die Verzögerung eines Anweisungsabrufes durch den De­ codierer 504 vergrößert wird (d. h. der Prozessor kann Anwei­ sungen nur so schnell verarbeiten, wie sie ausgegeben wer­ den). Folglich kann eine eigene Zeitsteuerung verwendet wer­ den, um durch Ändern der Betriebsgeschwindigkeit einer funk­ tionalen Einheit einen Durchsatz einer Schaltung, eines Teilsystems oder eines Systems zu steuern. Figure 7 shows the example of an instruction fetch that is the critical element in an asynchronous system. As illustrated, FIG. 7 is similar to FIG. 4, but the register, logic, and matched delay are grouped together as a single pipeline stage. In self-timed systems, system speed can be reduced by changing the performance (cycle time) of a critical functional unit because the receipt exchange in each functional unit must complete before the next element can be accepted. The system performance of the processor 500 can e.g. B. similarly reduced by increasing the delay of an instruction fetch by decoder 504 (ie, the processor can only process instructions as quickly as they are issued). As a result, a dedicated timer can be used to control throughput of a circuit, subsystem, or system by changing the operating speed of a functional unit.

Im Gegensatz dazu wird die Systemleistung synchroner Sy­ steme durch den Takt gesteuert. In einem synchronen System kann folglich die Geschwindigkeit des Systems nicht unter Verwendung der Geschwindigkeit einer funktionalen Einheit gesteuert werden, weil der Takt die Systemgeschwindigkeit bestimmt. Um das synchrone System zu verlangsamen, muß dem­ entsprechend jede funktionale Einheit im synchronen System verlangsamt werden.In contrast, the system performance becomes synchronous Sy steme controlled by the clock. In a synchronous system consequently the speed of the system cannot be under Use the speed of a functional unit be controlled because the clock speed the system certainly. To slow down the synchronous system, the correspondingly every functional unit in the synchronous system to be slowed down.

In einer Halbleitervorrichtung und insbesondere in einer Technologie mit integrierter CMOS-Schaltung ist der Energie­ verbrauch der Betriebsfrequenz proportional. Mit anderen Worten, je höher die Betriebsfrequenz für eine vorgegebene Schaltung ist, desto höher ist der Energieverbrauch. Der Energieverbrauch kann durch die folgende Gleichung:
In a semiconductor device and in particular in a technology with an integrated CMOS circuit, the energy consumption is proportional to the operating frequency. In other words, the higher the operating frequency for a given circuit, the higher the energy consumption. Energy consumption can be done by the following equation:

E = 1/2 CV2 × Frequenz (1)
E = 1/2 CV 2 × frequency (1)

bestimmt werden. In der obigen Gleichung ist E die Energie, C die Kapazität, V die Spannung und Frequenz 1/Zykluszeit.be determined. In the equation above, E is the energy C the capacity, V the voltage and frequency 1 / cycle time.

In selbstgetakteten Systemen werden, wenn die Zykluszeit erhöht wird, die Frequenz und der Energieverbrauch verrin­ gert. Gemäß den bevorzugten Ausführungsformen der vorliegen­ den Erfindung kann daher der Energieverbrauch eines selbst­ getakteten Systems durch Einstellen einer Zykluszeit einer kritischen funktionalen Einheit oder eines Elements des Sy­ stems gesteuert werden.In self-clocked systems, when the cycle time is increased, the frequency and energy consumption decrease device. According to the preferred embodiments of the present the invention can therefore the energy consumption of yourself clocked system by setting a cycle time of one critical functional unit or an element of the sy can be controlled.

Unter Verwendung des oben beschriebenen Beispiels eines Anweisungsabrufes führt der Prozessor eine Prioritätsarbeit bei einer ersten oder vollen Geschwindigkeit aus. Wenn der Prozessor jedoch im Leerlauf ist (z. B. wartet), arbeitet dann der Prozessor bei einer zweiten oder reduzierten Ge­ schwindigkeit. Dementsprechend wird die Systemleistung bei der zweiten Geschwindigkeit reduziert, indem die Zykluszeit der Anweisungsabrufstufe erhöht wird. Folglich ist der Ener­ gieverbrauch des selbstgetakteten Systems bei der zweiten Geschwindigkeit vermindert.Using the example described above one The processor does a priority job on instruction fetches at a first or full speed. If the  However, the processor is idle (e.g. waiting) is working then the processor at a second or reduced Ge dizziness. Accordingly, the system performance the second speed is reduced by the cycle time the instruction fetch level is increased. Hence the Ener Energy consumption of the self-timed system in the second Speed reduced.

Fig. 8 zeigt eine Anordnung zum Einstellen des Energie­ verbrauchs für einen selbstgetakteten Prozessor gemäß einer ersten bevorzugten Ausführungsform der vorliegenden Erfin­ dung. Wie in Fig. 8 gezeigt ist, basiert eine variable Zy­ kluszeit, die verwendet wird, um den Energieverbrauch zu steuern, auf einer Anweisungswarteschlangenlänge. Eine Ener­ giesteuereinrichtung 802 stellt die Systemleistung (z. B. Zy­ kluszeit) und den Energieverbrauch in Abhängigkeit von Ar­ beitslastanforderungen dynamisch ein. In der ersten bevor­ zugten Ausführungsform wird die Einstellung der Systemlei­ stung durch Ändern einer variablen Verzögerung in einer Ver­ arbeitungsstufe (z. B. Anweisungsabruf) erreicht. Fig. 8 shows an arrangement for setting the energy consumption for a self-timed processor according to a first preferred embodiment of the present inven tion. As shown in Fig. 8, a variable cycle time used to control energy consumption is based on an instruction queue length. An energy control device 802 dynamically adjusts the system performance (e.g. cycle time) and the energy consumption depending on workload requirements. In the first preferred embodiment, the setting of the system performance is achieved by changing a variable delay in a processing stage (e.g. instruction fetch).

Wie in Fig. 8 gezeigt ist, wird eine Anweisungswarte­ schlangenlänge verwendet, um die Arbeitslastanforderungen des Prozessors anzuzeigen. Ein Zähler wird verwendet, um die Zahl von Elementen (z. B. Anweisungen) zu zählen, die in ei­ ner Warteschlange darauf warten, verarbeitet zu werden. Die variable Zykluszeit wird dann durch die Energiesteuerein­ richtung 802 als Funktion der Warteschlangenlänge gesteuert. Während die "Warteschlangenlänge" länger wird und mehr Ar­ beit zu tun ist, wird die Verzögerung (z. B. Zykluszeit) re­ duziert. Dementsprechend werden der Energieverbrauch des Sy­ stems und die Systemleistung erhöht. Wenn die "Warteschlan­ genlänge" einer Arbeit kleiner wird, wird die Zykluszeit er­ höht, um den Energieverbrauch und die Systemleistung zu ver­ ringern. Der Energieverbrauch entspricht somit dem Umfang an auszuführender Arbeit (z. B. Ausführungsanweisungen des Pro­ zessors).As shown in Figure 8, an instruction queue length is used to indicate processor workload requirements. A counter is used to count the number of items (e.g. instructions) waiting in a queue to be processed. The variable cycle time is then controlled by the energy control device 802 as a function of the queue length. As the "queue length" becomes longer and there is more work to be done, the delay (e.g. cycle time) is reduced. Accordingly, the system's energy consumption and system performance are increased. As the "queue length" of a job becomes smaller, the cycle time is increased to reduce energy consumption and system performance. The energy consumption thus corresponds to the amount of work to be carried out (e.g. execution instructions of the processor).

In einem selbstgetakteten System kann folglich die Be­ triebsgeschwindigkeit durch Steuern eines Teils des Systems gesteuert werden. In Fig. 7 kann die Zykluszeit eines Teilblocks oder Teilsystems erhöht werden, indem die Verzö­ gerung in der Quittungsaustauschschleife erhöht wird. Die erste bevorzugte Ausführungsform überwacht somit eine Anwei­ sungswarteschlangenlänge, um den Energieverbrauch des selbstgetakteten Systems zu reduzieren. Die Steuerstruktur kann ferner einfach implementiert werden.Thus, in a self-timed system, the operating speed can be controlled by controlling part of the system. In Fig. 7, the cycle time of a sub-block or sub-system can be increased by increasing the delay in the handshake loop. The first preferred embodiment thus monitors an instruction queue length to reduce the energy consumption of the self-timed system. The control structure can also be easily implemented.

Alternative bevorzugte Ausführungsformen verwenden ver­ schiedene Geräte und Verfahren, um Arbeitsanforderungen des Systems zu überwachen, um den Energieverbrauch zu reduzie­ ren. Eine zweite bevorzugte Ausführungsform gemäß der vor­ liegenden Erfindung verwendet eine explizite Anforderung, den Energieverbrauch zu reduzieren. Die Anforderung kann un­ ter Verwendung z. B. einer im System ausgeführten Anweisung oder eines spezifischen Wertes an einem externen Eingang, wie z. B. einem externen Anschlußstift, für das System ausge­ führt werden. Der externe Anschlußstift kann für den Benut­ zer zugänglich sein.Alternative preferred embodiments use ver Different devices and processes to meet the work requirements of the Systems to monitor to reduce energy consumption ren. A second preferred embodiment according to the before lying invention uses an explicit requirement reduce energy consumption. The requirement can un ter use z. B. an instruction executed in the system or a specific value at an external input, such as B. an external pin for the system leads. The external connector pin can be used for the user be accessible.

Eine dritte bevorzugte Ausführungsform gemäß der vorlie­ genden Erfindung verwendet die Aktivierung bestimmter funk­ tionaler Einheiten, um den Energieverbrauch zu steuern. Zum Beispiel kann ein Prozessor auf der Basis einer bestimmten funktionalen Einheit beschleunigt oder verlangsamt werden (beispielsweise kann eine funktionale Einheit Multiplizierer eine schnellere Operation benötigen).A third preferred embodiment according to the present The present invention uses the activation of certain radio tional units to control energy consumption. To the For example, a processor can be based on a particular one functional unit can be accelerated or slowed down (For example, a functional unit can be multiplier need a faster operation).

Wie oben beschrieben wurde, steuern die bevorzugten Aus­ führungsformen des vorliegenden Steuersystems den Energie­ verbrauch unter Verwendung einer variablen Verzögerung in einer funktionalen Einheit, um eine Zykluszeit mit einem ir­ gendeinem Maß einer Systemlast zu verknüpfen. Die vorlie­ gende Erfindung soll jedoch nicht auf diese Ausführungsfor­ men beschränkt sein. Verschiedene alternative Anzeigen von Arbeitslastanforderungen, wie z. B. anwendungsspezifische Lastindikatoren, können verwendet werden, um die Zykluszeit zu steuern.As described above, the preferred controls control management forms of the present control system of energy consumption using a variable delay in a functional unit, to cycle time with an ir linked to a measure of a system load. The present However, the present invention is not intended to be based on this embodiment be limited. Various alternative ads from Workload requirements such as B. application specific Load indicators can be used to measure the cycle time to control.

Neben einer Steuerung der gesamten Systemleistung steu­ ert eine vierte bevorzugte Ausführungsform der vorliegenden Erfindung auch den Energieverbrauch einer oder mehrerer ein­ zelner Teilschaltungen oder Teilsysteme eines asynchronen Systems. In der vierten bevorzugten Ausführungsform ist eine Einheit mit variabler Verzögerung pro Teilsystem erforder­ lich. Die vierte bevorzugte Ausführungsform erlaubt speziel­ len Teilen des Systems, in bezug auf andere Teile des Sy­ stems den Energieverbrauch zu reduzieren. Auf diese Weise kann eine erste funktionale Einheit von mehreren funkti­ onalen Einheiten im System ihren Energieverbrauch durch Ab­ arbeiten bei einer niedrigeren Priorität als die restlichen funktionalen Einheiten selektiv reduzieren.In addition to controlling the entire system performance er a fourth preferred embodiment of the present Invention also the energy consumption of one or more individual subcircuits or subsystems of an asynchronous Systems. In the fourth preferred embodiment, one is Variable delay unit required per subsystem Lich. The fourth preferred embodiment specifically allows len parts of the system, with respect to other parts of the sy  stems to reduce energy consumption. In this way can be a first functional unit of several functi onal units in the system use Ab work at a lower priority than the rest selectively reduce functional units.

Wie oben beschrieben wurde, weisen die bevorzugten Aus­ führungsformen verschiedene Vorteile auf. Die bevorzugten Ausführungsformen reduzieren den Energieverbrauch asynchro­ ner Systeme. Zum Beispiel kann ein tragbares Gerät, bei dem der Energieverbrauch (z. B. Batterielebensdauer) direkt mit der potientiellen Nutzungsdauer zusammenhängt, während rela­ tiv längerer Zeiträume verwendet werden. Der Energiever­ brauchspegel kann ferner auf der Basis einer Priorität, von Arbeitslastanforderungen des Systems oder dergleichen selek­ tiv eingestellt werden. Außerdem können verschiedene Teilsy­ steme bei verschiedenen Energieverbrauchspegeln betrieben wenden.As described above, the preferred identifiers different advantages. The preferred Embodiments reduce energy consumption asynchro systems. For example, a portable device where the energy consumption (e.g. battery life) directly with the potential useful life, while rela tiv longer periods can be used. The energy ver Consumption levels can also be based on a priority of Selective workload requirements of the system or the like tiv be set. In addition, different parts of the system systems operated at different energy consumption levels turn.

Die vorhergehenden Ausführungsformen sind nur beispiel­ haft und sollen nicht als die vorliegende Erfindung be­ schränkend betrachtet werden. Die vorliegende Lehre kann oh­ ne weiteres auf andere Gerätetypen angewandt werden. Die Be­ schreibung der vorliegenden Erfindung soll veranschaulichend sein und den Umfang der Ansprüche nicht einschränken. Viele Alternativen, Modifikationen und Abwandlungen sind dem Fach­ mann ersichtlich.The previous embodiments are only examples liable and should not be considered as the present invention be viewed restrictively. The present teaching can oh ne more to be applied to other types of devices. The Be description of the present invention is intended to be illustrative be and not limit the scope of the claims. Lots Alternatives, modifications and modifications are the subject man visible.

Claims (28)

1. Asynchrones System mit:
mehreren funktionalen Einheiten, die miteinander gekop­ pelt sind, um zumindest eine Aufgabe auszuführen; und
einer Energiesteuerschaltung, die mit einer ausgewählten von mehreren funktionalen Einheiten gekoppelt ist, um eine erste und/oder eine zweite Betriebsgeschwindigkeit der aus­ gewählten funktionalen Einheit zu bestimmen.
1. Asynchronous system with:
a plurality of functional units which are coupled to one another in order to carry out at least one task; and
an energy control circuit coupled to a selected one of a plurality of functional units to determine a first and / or a second operating speed of the selected functional unit.
2. Asynchrones System nach Anspruch 1, worin das asyn­ chrone System, wenn die ausgewählte funktionale Einheit bei der zweiten Betriebsgeschwindigkeit arbeitet, weniger Ener­ gie verbraucht, als wenn die ausgewählte funktionale Einheit bei der ersten Betriebsgeschwindigkeit arbeitet.2. Asynchronous system according to claim 1, wherein the asyn chrone system when the selected functional unit at the second operating speed works, less ener gie consumed as if the selected functional unit works at the first operating speed. 3. Asynchrones System nach Anspruch 1, worin die Be­ triebsgeschwindigkeit der ausgewählten funktionalen Einheit eine Betriebsgeschwindigkeit des asynchronen Systems be­ stimmt.3. An asynchronous system according to claim 1, wherein the loading drive speed of the selected functional unit an operating speed of the asynchronous system be Right. 4. Asynchrones System nach Anspruch 1, worin die ersten und zweiten Betriebsgeschwindigkeiten auf der Basis einer Anweisungswarteschlangenlänge, einer Anweisung, eines exter­ nen Signals und/oder anwendungsspezifischer Kriterien be­ stimmt werden.4. An asynchronous system according to claim 1, wherein the first and second operating speeds based on one Statement queue length, one statement, one external signals and / or application-specific criteria be true. 5. Asynchrones System nach Anspruch 1, worin die Ener­ giesteuerschaltung eine variable Betriebsgeschwindigkeit für die ausgewählte funktionale Einheit auswählt.5. Asynchronous system according to claim 1, wherein the Ener casting control circuit for a variable operating speed selects the selected functional unit. 6. Asynchrones System nach Anspruch 5, worin die Ener­ giesteuerschaltung die variable Betriebsgeschwindigkeit auf der Basis einer Anweisungswarteschlangenlänge, einer Anwei­ sung, eines externen Signals und/oder anwendungspezifischer Kriterien auswählt.6. Asynchronous system according to claim 5, wherein the Ener pour control circuit on the variable operating speed the basis of an instruction queue length, an instruction solution, an external signal and / or application-specific Selects criteria. 7. Asynchrones System nach Anspruch 1, worin die Be­ triebsgeschwindigkeit eine Operationszykluszeit einer funk­ tionalen Einheit ist, worin die Zykluszeit das Inverse einer Betriebsfrequenz ist. 7. An asynchronous system according to claim 1, wherein the loading drive speed an operation cycle time of a radio tional unit, in which the cycle time is the inverse of a Operating frequency.   8. Asynchrones System nach Anspruch 7, worin die Zyklus­ zeit auf einer Eingangsprotokollverzögerung und/oder einer Ausgangsprotokollverzögerung basiert.8. An asynchronous system according to claim 7, wherein the cycle time on an input protocol delay and / or Output protocol delay based. 9. Asynchrones System nach Anspruch 1, worin die Viel­ zahl funktionaler Einheiten in mehrere Gruppen funktionaler Einheiten geteilt ist und worin die Energiesteuerschaltung mehrere Energiesteuereinheiten aufweist, die jeweils einer der Gruppen funktionaler Einheiten entsprechen, und worin jede der Energiesteuereinheiten eine variable Betriebsge­ schwindigkeit für die entsprechende der Gruppen funktionaler Einheiten unter Verwendung einer bezeichneten funktionalen Einheit in jeder der Gruppen funktionaler Einheiten ein­ stellt.9. An asynchronous system according to claim 1, wherein the lot number of functional units in several functional groups Units is divided and in which the energy control circuit has several energy control units, each one correspond to the groups of functional units, and wherein each of the energy control units has a variable operating ge speed for the corresponding of the functional groups Units using a designated functional Unit in each of the groups of functional units poses. 10. Asynchrones System nach Anspruch 1, worin die Be­ triebsgeschwindigkeit der ausgewählten funktionalen Einheit den Energieverbrauch eines Teilsystems des asynchronen Sy­ stems bestimmt.10. An asynchronous system according to claim 1, wherein the loading drive speed of the selected functional unit the energy consumption of a subsystem of the asynchronous Sy stems determined. 11. Datenverarbeitungsgerät mit:
mehreren funktionalen Einheiten;
einer asynchronen Steuereinheit, die eine aktuelle An­ weisung decodiert, um eine entsprechende Anweisungsaufgabe unter Verwendung einer Gruppe der Vielzahl funktionaler Ein­ heiten auszuführen;
eine Energiebestimmungseinrichtung, worin das Datenver­ arbeitungsgerät bei einem von mehreren Energiepegeln arbei­ tet, der durch die Energiebestimmungseinrichtung ausgewählt wurde; und
eine Kommunikationseinrichtung, die die funktionalen Einheiten, die Energiebestimmungseinrichtung und die Steuer­ einheit koppelt.
11. Data processing device with:
several functional units;
an asynchronous control unit that decodes a current instruction to execute a corresponding instruction task using a group of the plurality of functional units;
an energy determination device, wherein the data processing device operates at one of a plurality of energy levels selected by the energy determination device; and
a communication device that couples the functional units, the energy determination device and the control unit.
12. Datenverarbeitungsgerät nach Anspruch 11, worin die Energiebestimmungseinrichtung eine Zykluszeit modifiziert.12. The data processing apparatus according to claim 11, wherein the Energy determination device modified a cycle time. 13. Datenverarbeitungsgerät nach Anspruch 12, worin die Zykluszeit eine Zykluszeit einer ausgewählten funktionalen Einheit und/oder eine Zykluszeit des Datenverarbeitungsge­ räts ist.13. The data processing apparatus according to claim 12, wherein the Cycle time a cycle time of a selected functional Unit and / or a cycle time of the data processing unit is guesswork. 14. Datenverarbeitungsgerät nach Anspruch 11, worin ein ausgewählter Energiepegel auf einer Anweisungswarteschlan­ genlänge, einer Anweisung, einem externen Signal und/oder anwendungsspezifischen Kriterien beruht. 14. The data processing apparatus according to claim 11, wherein a selected energy level on an instruction queue length, an instruction, an external signal and / or application-specific criteria.   15. Datenverarbeitungsgerät nach Anspruch 11, worin die Energiebestimmungseinrichtung mit einer ausgewählten der Vielzahl funktionaler Einheiten gekoppelt ist, um eine erste und/oder zweite Betriebsgeschwindigkeit der ausgewählten funktionalen Einheit zu bestimmen.15. The data processing apparatus according to claim 11, wherein the Energy determination device with a selected one of the Variety of functional units is coupled to a first and / or second operating speed of the selected one functional unit. 16. Datenverarbeitungsgerät nach Anspruch 15, worin das Datenverarbeitungsgerät, wenn die ausgewählte funktionale Einheit bei der zweiten Betriebsgeschwindigkeit arbeitet, in bezug auf die erste Betriebsgeschwindigkeit weniger Energie verbraucht.16. The data processing apparatus according to claim 15, wherein the Data processing device when the selected functional Unit operates at the second operating speed, in less energy in relation to the first operating speed consumed. 17. Datenverarbeitungsgerät nach Anspruch 11, worin der ausgewählte Energiepegel eine Betriebsgeschwindigkeit des Datenverarbeitungsgeräts bestimmt.17. The data processing apparatus according to claim 11, wherein the selected energy level an operating speed of the Data processing device determined. 18. Datenverarbeitungsgerät nach Anspruch 11, worin die Energiebestimmungseinrichtung den Energieverbrauch für einen Teil des Datenverarbeitungsgeräts steuert.18. The data processing apparatus according to claim 11, wherein the Energy determination device the energy consumption for one Controls part of the data processing device. 19. Datenverarbeitungsgerät nach Anspruch 11, ferner mit mehreren Energiebestimmungseinrichtungen.19. The data processing device according to claim 11, further comprising several energy determination facilities. 20. Datenverarbeitungsgerät nach Anspruch 11, worin die Steuereinheit eine dreistufige Anweisungspipeline und ein Vierphasen-Kommunikationsprotokoll verwendet und worin die Kommunikationseinrichtung ein Datenbus ist.20. The data processing apparatus according to claim 11, wherein the Control unit and a three-stage instruction pipeline Four-phase communication protocol used and what the Communication device is a data bus. 21. Verfahren zum Betreiben eines asynchronen Systems mit mehreren, miteinander gekoppelten funktionalen Ein­ heiten, wobei das Verfahren aufweist:
ein Bestimmen von Operationskriterien des asynchronen Systems; und
ein Bestimmen eines von mehreren Energieverbrauchspegeln auf der Basis der Operationskriterien des asynchronen Sy­ stems.
21. A method for operating an asynchronous system with a plurality of functional units coupled to one another, the method comprising:
determining operational criteria of the asynchronous system; and
determining one of several energy consumption levels based on the operational criteria of the asynchronous system.
22. Verfahren nach Anspruch 21, worin eine Ausführungs­ geschwindigkeit des asynchronen Systems auf dem Energiever­ brauchspegel basiert.22. The method of claim 21, wherein an execution speed of the asynchronous system on the energy ver consumption level based. 23. Verfahren nach Anspruch 21, worin der Schritt Be­ stimmen von Operationskriterien ein Bestimmen von Arbeits­ lastanforderungen des asynchronen Systems aufweist.23. The method of claim 21, wherein the step Be agreeing operational criteria determining work has load requirements of the asynchronous system. 24. Verfahren nach Anspruch 21, worin der Schritt Be­ stimmen eines von mehreren Energieverbrauchspegeln ein Be­ stimmen einer Betriebsgeschwindigkeit für eine ausgewählte der funktionalen Einheiten und/oder das asynchrone System aufweist.24. The method of claim 21, wherein the step Be agree one of several energy consumption levels agree an operating speed for a selected one  the functional units and / or the asynchronous system having. 25. Verfahren nach Anspruch 24, worin die Betriebsge­ schwindigkeit der ausgewählten funktionalen Einheit die Be­ triebsgeschwindigkeit des asynchronen Systems bestimmt.25. The method of claim 24, wherein the Betriebsge speed of the selected functional unit drive speed of the asynchronous system determined. 26. Verfahren nach Anspruch 25, worin die ausgewählte funktionale Einheit ein Anweisungsdecodierer ist.26. The method of claim 25, wherein the selected one functional unit is an instruction decoder. 27. Verfahren nach Anspruch 24, worin die Betriebsge­ schwindigkeit der ausgewählten funktionalen Einheit einen Energieverbrauchspegel eines Teilsystems des asynchronen Sy­ stems bestimmt.27. The method of claim 24, wherein the operating area speed of the selected functional unit Energy consumption level of a subsystem of the asynchronous sy stems determined. 28. Verfahren nach Anspruch 21, worin Operationskriteri­ en auf einem Bestimmen einer Anweisungswarteschlangenlänge, eines Anweisungstyps, eines externen Signaltyps und/oder ei­ nes funktionalen Einheitstyps basieren.28. The method of claim 21, wherein operational criteria en on determining an instruction queue length, an instruction type, an external signal type and / or an egg based on a functional unit type.
DE19858650A 1997-12-23 1998-12-18 Equipment for reducing the energy consumption of a self-clocking asynchronous system Withdrawn DE19858650A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/997,329 US6049882A (en) 1997-12-23 1997-12-23 Apparatus and method for reducing power consumption in a self-timed system

Publications (1)

Publication Number Publication Date
DE19858650A1 true DE19858650A1 (en) 1999-06-24

Family

ID=25543888

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19858650A Withdrawn DE19858650A1 (en) 1997-12-23 1998-12-18 Equipment for reducing the energy consumption of a self-clocking asynchronous system

Country Status (6)

Country Link
US (1) US6049882A (en)
JP (1) JPH11282568A (en)
KR (1) KR100319600B1 (en)
CA (1) CA2255469A1 (en)
DE (1) DE19858650A1 (en)
GB (1) GB2335293B (en)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19755146C2 (en) * 1997-12-11 1999-10-28 Siemens Ag Coded control signals between asynchronous modules
WO2000005644A1 (en) * 1998-07-22 2000-02-03 California Institute Of Technology Reshuffled communications processes in pipelined asynchronous circuits
US6442672B1 (en) * 1998-09-30 2002-08-27 Conexant Systems, Inc. Method for dynamic allocation and efficient sharing of functional unit datapaths
JP2000122747A (en) * 1998-10-12 2000-04-28 Nec Corp Device and method for controlling digital signal processing part
US6477654B1 (en) * 1999-04-06 2002-11-05 International Business Machines Corporation Managing VT for reduced power using power setting commands in the instruction stream
US6438700B1 (en) * 1999-05-18 2002-08-20 Koninklijke Philips Electronics N.V. System and method to reduce power consumption in advanced RISC machine (ARM) based systems
US6389315B1 (en) * 2000-02-25 2002-05-14 Medtronic, Inc. Implantable medical device incorporating self-timed logic
US7865747B2 (en) * 2000-10-31 2011-01-04 International Business Machines Corporation Adaptive issue queue for reduced power at high performance
GB0123421D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Power management system
US7114086B2 (en) * 2002-01-04 2006-09-26 Ati Technologies, Inc. System for reduced power consumption by monitoring instruction buffer and method thereof
US7260106B2 (en) * 2002-01-24 2007-08-21 Intel Corporation Method and apparatus for managing energy usage of processors while executing protocol state machines
JP2003280982A (en) * 2002-03-20 2003-10-03 Seiko Epson Corp Data transfer device for multi-dimensional memory, data transfer program for multi-dimensional memory and data transfer method for multi-dimensional memory
US7243217B1 (en) * 2002-09-24 2007-07-10 Advanced Micro Devices, Inc. Floating point unit with variable speed execution pipeline and method of operation
US6992675B2 (en) * 2003-02-04 2006-01-31 Ati Technologies, Inc. System for displaying video on a portable device and method thereof
US7012459B2 (en) * 2003-04-02 2006-03-14 Sun Microsystems, Inc. Method and apparatus for regulating heat in an asynchronous system
US7065602B2 (en) * 2003-07-01 2006-06-20 International Business Machines Corporation Circuit and method for pipelined insertion
GB2406184B (en) * 2003-09-17 2006-03-15 Advanced Risc Mach Ltd Data processing system
US7500129B2 (en) * 2004-10-29 2009-03-03 Hoffman Jeffrey D Adaptive communication interface
US7650481B2 (en) * 2004-11-24 2010-01-19 Qualcomm Incorporated Dynamic control of memory access speed
US7660203B2 (en) * 2007-03-08 2010-02-09 Westerngeco L.L.C. Systems and methods for seismic data acquisition employing asynchronous, decoupled data sampling and transmission
JP4899767B2 (en) * 2006-10-06 2012-03-21 ソニー株式会社 Data communication apparatus, data communication method, and program
US7779299B2 (en) * 2007-04-24 2010-08-17 Ianywhere Solutions, Inc. Efficiently re-starting and recovering synchronization operations between a client and server
US8065647B2 (en) * 2007-10-19 2011-11-22 The University Of Utah Research Foundation Method and system for asynchronous chip design
US9207337B2 (en) 2007-12-12 2015-12-08 Westerngeco L.L.C. Systems and methods for seismic data acquisition employing clock source selection in seismic nodes
WO2010038108A1 (en) 2008-09-30 2010-04-08 Freescale Semiconductor, Inc. Data processing
US8407492B2 (en) * 2010-01-14 2013-03-26 The Boeing Company System and method of asynchronous logic power management
US9965342B2 (en) * 2010-03-16 2018-05-08 Arm Limited Synchronization in data processing layers
US8327177B2 (en) 2010-05-17 2012-12-04 Dell Products L.P. System and method for information handling system storage device power consumption management
CN105393240B (en) 2013-09-06 2018-01-23 华为技术有限公司 Method and apparatus with the asynchronous processor for aiding in asynchronous vector processor
US9541988B2 (en) * 2014-09-22 2017-01-10 Western Digital Technologies, Inc. Data storage devices with performance-aware power capping
US10637641B2 (en) 2015-09-05 2020-04-28 Westerngeco L.L.C. Electromagnetic wave pulse synchronization

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4837740A (en) * 1985-01-04 1989-06-06 Sutherland Ivan F Asynchronous first-in-first-out register structure
US5222239A (en) * 1989-07-28 1993-06-22 Prof. Michael H. Davis Process and apparatus for reducing power usage microprocessor devices operating from stored energy sources
AU629019B2 (en) * 1989-09-08 1992-09-24 Apple Computer, Inc. Power management for a laptop computer
TW226057B (en) * 1991-12-23 1994-07-01 Philips Nv
US5452401A (en) * 1992-03-31 1995-09-19 Seiko Epson Corporation Selective power-down for high performance CPU/system
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
GB2289778B (en) * 1994-05-17 1998-12-16 Advanced Risc Mach Ltd Data processing
US5887178A (en) * 1994-08-29 1999-03-23 Matsushita Electronics Corporation Idle state detector and idle state detecting method for a microprocessor unit for power savings
WO1996025701A1 (en) * 1995-02-14 1996-08-22 Vlsi Technology, Inc. Method and apparatus for reducing power consumption in digital electronic circuits
US5983357A (en) * 1995-07-28 1999-11-09 Compaq Computer Corporation Computer power management
EP0766167B1 (en) * 1995-09-26 2003-11-26 International Business Machines Corporation Power management of an information processing system
JP2886491B2 (en) * 1995-10-26 1999-04-26 インターナショナル・ビジネス・マシーンズ・コーポレイション Information processing system
US5692202A (en) * 1995-12-29 1997-11-25 Intel Corporation System, apparatus, and method for managing power in a computer system

Also Published As

Publication number Publication date
KR19990062825A (en) 1999-07-26
GB2335293B (en) 2003-02-26
KR100319600B1 (en) 2002-04-22
US6049882A (en) 2000-04-11
JPH11282568A (en) 1999-10-15
GB9828322D0 (en) 1999-02-17
GB2335293A (en) 1999-09-15
CA2255469A1 (en) 1999-06-23

Similar Documents

Publication Publication Date Title
DE19858650A1 (en) Equipment for reducing the energy consumption of a self-clocking asynchronous system
DE3248215C2 (en)
DE60211921T2 (en) ARCHITECTURE AND SYSTEM FROM A GENERIC SERIAL PORT
DE19735348B4 (en) Vector processor for single-instruction multi-data processing using multiple banks of vector registers and associated method for operating the same
DE19735350B4 (en) Vector processor for performing parallel operations and methods therefor
DE69919059T2 (en) Data processing system with a digital signal processor and a coprocessor and data processing method
DE19983589B4 (en) High-frequency decoupling queue pipeline design
DE3914265C2 (en)
EP0293517B1 (en) Control processor
DE19506435C2 (en) Method and apparatus for avoiding write-back conflicts between execution units using a common writeback path
DE3638572C2 (en)
DE102008055892A1 (en) Storing sections of a data transfer descriptor in a cached and uncached address space
DE2556624C2 (en) Method and circuit arrangement for asynchronous data transmission
DE4207148A1 (en) Microprocessor super-scaler for parallel processing - uses by=pass line to interconnect pipelines and transfers data from one pipeline for subsequent processing by another
DE19842254C2 (en) Computing device
DE69737184T2 (en) CIRCUIT, MICROCOMPUTER AND ELECTRONIC APPARATUS FOR DATA PROCESSING
EP1599794B1 (en) Processor with different types of control units for commonly used resources
DE4216905A1 (en) Super-scaler processor for parallel high speed operations - has selector with control on basis of empty registers to provide improved parallel processor without unwanted delays
DE102010045800A1 (en) Electronic device for data processing, has control stage that controls switch for connecting one of feedback paths if data output of execution unit in operation of execution unit is utilized as operand
DE69034246T2 (en) Device for processing graphic data
EP1117037B1 (en) Data processing apparatus for parallel processing of independent processes (threads)
DE10063915A1 (en) Information processing device that performs multi-purpose processing and transaction processing
DE60211874T2 (en) Arrangement of two devices connected by a crossover switch
DE102011011682B4 (en) Programmable controller for parallel execution of a plurality of independent execution programs
DE10110567B4 (en) Data processing system with adjustable clocks for divided synchronous interfaces

Legal Events

Date Code Title Description
8141 Disposal/no request for examination