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 systemInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
- G06F9/3871—Asynchronous instruction pipeline, e.g. using handshake signals between stages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
Abstract
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)
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.
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.
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.
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)
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)
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 |
-
1997
- 1997-12-23 US US08/997,329 patent/US6049882A/en not_active Expired - Lifetime
-
1998
- 1998-12-05 KR KR1019980053250A patent/KR100319600B1/en not_active IP Right Cessation
- 1998-12-10 CA CA002255469A patent/CA2255469A1/en not_active Abandoned
- 1998-12-17 JP JP10358510A patent/JPH11282568A/en active Pending
- 1998-12-18 DE DE19858650A patent/DE19858650A1/en not_active Withdrawn
- 1998-12-23 GB GB9828322A patent/GB2335293B/en not_active Expired - Fee Related
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 |