WO2003012630A1 - Verfahren zur abarbeitung eines programmcodes sowie eine prozessoranordnung zur ausführung des verfahrens - Google Patents

Verfahren zur abarbeitung eines programmcodes sowie eine prozessoranordnung zur ausführung des verfahrens Download PDF

Info

Publication number
WO2003012630A1
WO2003012630A1 PCT/DE2002/001881 DE0201881W WO03012630A1 WO 2003012630 A1 WO2003012630 A1 WO 2003012630A1 DE 0201881 W DE0201881 W DE 0201881W WO 03012630 A1 WO03012630 A1 WO 03012630A1
Authority
WO
WIPO (PCT)
Prior art keywords
clock
register
instruction word
devices
instruction
Prior art date
Application number
PCT/DE2002/001881
Other languages
English (en)
French (fr)
Inventor
Wolfram Drescher
Helge Betzinger
Original Assignee
Systemonic Ag
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 Systemonic Ag filed Critical Systemonic Ag
Publication of WO2003012630A1 publication Critical patent/WO2003012630A1/de

Links

Classifications

    • 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 or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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 or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • 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 or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • 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 or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the invention relates to a method for processing a program code in a command pipeline with a processor arrangement, in particular a digital signal processor, which has functional units which process data synchronously, with a sequence of primary instruction words (TVLIP) originating from a translation of the program code and consisting of several instruction word parts is processed, and a sequence of secondary instruction words is generated from the sequence of the primary instruction words.
  • a processor arrangement in particular a digital signal processor, which has functional units which process data synchronously, with a sequence of primary instruction words (TVLIP) originating from a translation of the program code and consisting of several instruction word parts is processed, and a sequence of secondary instruction words is generated from the sequence of the primary instruction words.
  • TVLIP primary instruction words
  • the invention further relates to a processor arrangement for carrying out the method with a plurality of functional units that process data synchronously.
  • the functional units are controlled for each cycle by an assigned secondary instruction word, the functional units working in parallel with one another.
  • a single secondary instruction word comprises a plurality of instruction word parts, a single instruction word part serving to control an individual functional unit.
  • a secondary instruction word can be generated for a compressed primary instruction word, whereby calculations may be necessary which cannot be carried out within a single cycle. Furthermore, there may be delays when reading out primary instruction words from the program memory and loading them into a decoder, in which primary words are converted into secondary words. Both have the consequence that a complete secondary instruction word cannot be provided for further processing for each cycle.
  • the device can be set such that the instruction word parts determined within the one cycle are provided and the instruction word parts that have not yet been calculated are replaced by NOP ((No Operation) instructions). Furthermore, it is also possible for all parts of the instruction word to be replaced by NOP instructions and only to be made available for further processing in the instruction pipeline after the entire secondary instruction word has been determined.
  • the invention is therefore based on the object of reducing the average electrical power requirement of the processor arrangement described at the outset.
  • the problem is solved in that the primary instruction word sequence is stored sequentially in a first register device, from which the primary instruction words (TVLIW) are transmitted to a first decoder device, in which a sequence of secondary instruction words (VLIW) with each of the sequence of the primary instruction words several instruction word parts (FIW) are generated to control the functional units.
  • TVLIW primary instruction words
  • FIW instruction word parts
  • At least one instruction word part is stored in a second register device, which is decoded by a second decoder device assigned to the respective functional unit and stored decoded in a third register device with which the respective functional unit is controlled, at least one of the register devices being controlled by the clock state and the Clock of the at least one clock state-controlled register device is switched in response to the program code to be processed.
  • FIW instruction word part
  • the processor arrangement has a first register device in which a primary instruction word (TVLIW) from a sequence of primary instruction words can be stored, a first decoder device in which a secondary instruction word (VLIW) with a plurality of instruction word parts (FIW) is made from the primary instruction word.
  • TVLIW primary instruction word
  • VLIW secondary instruction word
  • FIW instruction word parts
  • a second register device in which at least one instruction word part (FIW) can be stored, a plurality of second decoder devices which are each assigned to a functional unit and in which an instruction word part can be decoded, and a plurality of third register devices in which the each decoded instruction word part can be stored, with which the respective functional unit can be controlled, a clock network with which at least one of the register devices can be controlled with the clock state, and a clock switching device, with which the beat for the at least one clock state-controlled register device can be switched on or off.
  • FIW instruction word part
  • the invention is based on the idea of decommissioning the device which is not required for a given clock when executing a command pipeline by switching off the clock, as a result of which the energy requirement for the device concerned is at least greatly reduced within the clock switch-off.
  • all devices for the various phases of the instruction execution in the instruction pipeline can be affected, for example devices for an instruction preparation phase, a decoding and operand preparation phase, an execution phase, a memory access phase or a result storage phase.
  • All devices affected in these phases are register devices, for example input or output registers or processing registers, in particular a decoding device or a functional unit.
  • the problems of the prior art can be reduced by switching off the relevant register device or register devices by removing the clock from the register devices during predetermined periods of time at which the respective register device is not required. It should be pointed out that with the method according to the invention, even with a given processing of data, the processor devices that are not required for processing, in particular the functional units that are not required, can be specifically switched off by switching off the clock, whereby the power requirement of the processor arrangement is automatically adapted to the required calculation methods can be.
  • the clock is switched in response to at least one primary instruction word, the information for switching the clock during the decoding of the at least one a primary instruction word is generated.
  • the register devices which are not required during the processing of this primary instruction word in the further course of the command execution are determined at the beginning and can thus be switched on or off at predetermined times during the processing of the primary instruction word.
  • the clock is switched with a delay to the register devices preceding in the instruction pipeline in response to the program code to be processed. This can take into account the fact that an instruction spans multiple clocks during instruction execution within an instruction pipeline
  • Period is processed so that the shutdown of the register devices according to the invention can be offset laterally.
  • the delay between two register devices adjacent in the instruction pipeline can correspond precisely to the transit time between the two registers and can be, for example, one clock period.
  • the processor arrangement for switching the clock can comprise a clock switching device assigned to a register device, which has a clock input, a
  • Circuit input and a clock output wherein the control input is connected to the first decoder device and the clock output to the register device and a clock signal is present at the clock input.
  • the processor device can have a circuit delay device that outputs a predetermined input signal or input word at the output with a time delay. In this way, all of the register devices concerned can be controlled with a single control signal which is delayed specifically for the respective register device.
  • a plurality of clock state-controlled register devices can each have a clock switch and a circuit delay device assigned to them.
  • the circuit delay devices can be connected in series and all circuit delay devices cause a predetermined clock delay, the clock delay for a given register device resulting from the addition of the clock delays for the register devices which are connected upstream of the given register devices.
  • the use of identical circuit delay devices for the different register devices enables a delay network that is easy to manufacture, the circuit delay device assigned to the respective register devices causing an additional delay compared to the register device preceding in the instruction pipeline.
  • the principle of the invention can advantageously also be applied to sub-functional units of a predetermined functional unit, i.e. register devices which are assigned to sub-functional units can also have a delayable clock switch in order to switch off the sub-functional unit if necessary.
  • Fig. 1 shows the command path of an exemplary signal processor in a schematic diagram
  • FIG. 1 shows an embodiment according to the invention of the command path shown in FIG. 1,
  • Fig. 5 shows the conventional processing of the command sequence shown in Fig. 4, and
  • FIG. 6 shows the processing according to the invention of the command sequence shown in FIG. 4. '
  • a primary instruction word (TVLIW: tagged very large instruction word), which is compressed and is composed of several instruction word parts, is loaded into a first register 1 in a first provision phase T 0 .
  • the primary instruction word has a width of 32 bits.
  • a first decoder phase T the primary instruction word is decoded in a first decoder 2, wherein essentially decompression is carried out and the resulting instruction word is written into the second register 3 as a 250 bit wide secondary instruction word (VLIW: very large instruction word).
  • VLIW very large instruction word
  • the processor arrangement is designed for parallel processing of data.
  • the processor includes several functional units that process data synchronously and in a clock-controlled manner.
  • the secondary instruction word VLIW
  • FIW instruction word parts
  • the number of instruction word parts corresponds to the number of functional units working in parallel.
  • the figure of the instruction word parts in register 3, only the first, FIW 0 and the last, FIW n are designated.
  • each instruction word part (FIW) is decoded in a second decoder device 4 and the decoded instruction is stored in a third register 5.
  • a separate decoder device can be assigned to each functional unit or each instruction word part, or a single decoder device can decode all instruction word parts simultaneously within the second decoding phase.
  • the processor device has a decoder device for each instruction word part, only the decoder device 4 necessary for the first instruction word part FIW 0 and the associated subsequent device being shown.
  • the execution phase T 3 in which the functional unit 6 is activated with the decoded instruction word part for the predetermined processing of data.
  • the functional unit itself can have a plurality of functional subunits 7, 8, which process data sequentially, the intermediate result being stored in the functional unit register 9, the contents of which feed the subsequent functional subunit 8.
  • the execution phase comprises several cycles, the function of a single functional subunit being carried out within one cycle.
  • the decompression of the primary instruction word (TVLIW) in the first decoder 2 for generating the secondary instruction word comprising the instruction word parts (FIW) is time-critical in the instruction word path shown in FIG. 1. It may also be the case that primary instruction words may not be able to be extracted quickly enough from the program memory in can be loaded into the first decoder 2. In those situations in which a complete secondary instruction word cannot be provided in the register 3 at the end of a clock cycle, a NOP instruction is conventionally written in the register means 3 instead of the individual instruction word parts the prior art in the subsequent phases processed like a normal command with the known disadvantages.
  • the command word path is again shown starting from the first register device 1, in which the primary instruction word is stored, up to the result register 10, in which the result of the calculation carried out in the functional unit 6 is stored. All devices are clock-controlled, which means that they are controlled by the clock.
  • the clock signal on line 14 is provided to all devices via a clock network.
  • the register 3 acting as the output register of the decoder 2, which also works as the input register of the decoder 4, the register 5 acting as the output register of the decoder 4, which also works as the input register for the functional unit 6, and the output register 10 of the functional unit 6 each have a clock holding device 11 , 12 and 13 on, which are each connected to the clock line 14 with their clock input 21, 22 and 23.
  • the clock is passed on to a clock output 24, 25, 26 to the respective register 3, 5, 10 for controlling the same.
  • the clock circuit devices 11, 12, 13 also have a control input 18, 19 or 20, with which the clock passed on at the clock output can be switched on or off.
  • the control inputs are with the first decoder device
  • the register device 3 is connected directly to the decoder device 2, while the register device 5 is connected to the decoder device 2 via a first delay device 15 and the register device 10 is connected to the decoder device 2 by a series connection of circuit delay devices 15, 16 for receiving the control signal.
  • the register devices 2 are connected directly to the decoder device 2, while the register device 5 is connected to the decoder device 2 via a first delay device 15 and the register device 10 is connected to the decoder device 2 by a series connection of circuit delay devices 15, 16 for receiving the control signal.
  • the register devices 2 are connected directly to the decoder device 2, while the register device 5 is connected to the decoder device 2 via a first delay device 15 and the register device 10 is connected to the decoder device 2 by a series connection of circuit delay devices 15, 16 for receiving the control signal.
  • a switched clock (gated clock), which is switched in response to the decoded primary instruction word, the individual switches being driven according to the command word run times between the registers with a time shift.
  • the decoder device 2 In the event that the decoder device 2 is not able to completely convert the primary instruction word stored in the first register 1 into a secondary instruction word within a clock cycle from T 1 , it is first assumed that all register sections in the register device 3 which are assigned predetermined instruction word parts , are filled with a NOP command and at the same time a control command in the form of a predetermined control bit is transmitted to the clock holding device 12 via the circuit delay device 15, so that the clock holding device 12 switches off the clock for the register device 5 assigned to the decoder device 4, which, as explained above, corresponds to switching off the decoder device 2.
  • the circuit delay device 15 delays the control signal by one full clock, so that the decoder device 4 is switched off, for which the NOP command should be executed in the decoder device 4.
  • no secondary instruction word that is to say no NOP instruction
  • NOP instruction only served to simplify the explanation. In fact, all facilities are turned off at the times they should be commanded to process an instruction that has not been introduced into the pipeline.
  • FIG. 3 The execution of a command sequence according to the invention is shown in FIG. 3, the four command execution phases described being plotted on the vertical and the clock cycles being indicated in the horizontal.
  • Cml, Cm2 and Cm3 each designate a specific command in one of the described execution phases of the command pipeline, while "Nop" designates the command in which the corresponding device is to be switched off.
  • the Cml command is introduced into the pipeline, which runs through it in the usual way, so that there is a diagonal in the display. The same applies to the command Cm2.
  • a NOP instruction is now to be introduced into the instruction pipeline, this NOP instruction already being included in the primary instruction word and thus not being generated, for example, by the fact that the decoder 2 requires several clocks to generate a secondary instruction code.
  • the command is decoded and recognized in the first decoder 2, whereupon the second decoder 4 is switched off for the next clock. In the next but one cycle, in which the assigned functional unit should process the NOP command, this is also switched off, so that there is no complete diagonal for the processing of the NOP command in FIG. 3. Instead, the last two phases are marked with the sign "-", which indicates that no action is taken in this processing phase.
  • the following command Cm3 is again in the usual way worked off.
  • FIG. 4 A further exemplary command sequence is shown in FIG. 4. As the first command, this includes a jump command to , X0 ", where the command" Cm2 "is listed.
  • FIG. 5 shows the conventional processing of the command sequence shown in FIG. 4, while FIG. 6 shows the processing of the command sequence according to the invention.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Advance Control (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zur Abarbeitung eines Programmcodes in einer Befehlspipeline mit einer Prozessoranordnung, insbesondere einem digitalen Signalprozessor, die Funktionseinheiten (6) aufweist, welche synchron Daten verarbeiten, wobei eine aus einer Übersetzung des Programmcodes stammende Folge von Primärinstruktionsworten (TVLIP) aus mehreren Instruktionswortteilen verarbeitet wird, und aus der Folge der Primarinstruktionsworte eine Folge von Sekundärinstruktionsworten (VLIW) erzeugt wird und sowie Prozessoranordnung zur Durchführung des Verfahrens. Um den durchschnittlichen elektrischen Leistungsbedarf bei der Ausführung des Verfahrens zu vermindern, wird vorgeschlagen dass die Primärinstruktionswortfolge sequentiell in eine erste Registereinrichtung (1) gespeichert wird, von der die Primärinstruktionswörter (TVLIW) in eine erste Decodereinrichtung (2) übermittelt werden, in der aus der Folge der Primärinstruktionsworter eine Folge von Sekundärinstruktionswörter (VLIW) mit jeweils mehreren Instruktionswortteilen (FIW) zur Ansteuerung der Funktionseinheiten erzeugt wird. Dabei wird in einer zweiten Registereinrichtung (3) zumindest ein Instruktionswortteil (FIW) gespeichert, das von einer der jeweiligen Funktionseinheit zugeordneten zweiten Decodereinrichtung (4) decodiert und in einer dritten Registereinrichtung (5) decodiert abgelegt wird, mit welchem die jeweilige Funktionseinheit (6) angesteuert wird, wobei zumindest eine der Registereinrichtungen (3, 5, 10) taktzustandsgesteuert wird und der Takt der zumindest einen taktzustandsgesteuerten Registereinrichtung im Ansprechen auf abzuarbeitenden Programmcode geschaltet wird.

Description

Verfahren zur Abarbeitung eines Prograxnmcodes sowie eine Prozessoranordnung zur Ausführung des Verfahrens
Die Erfindung betrifft ein Verfahren zur Abarbeitung eines Programmcodes in einer Befehlspipeline mit einer Prozessor- anordnung, insbesondere einem digitalen Signalprozessor, die Funktionseinheiten aufweist, welche synchron Daten verarbeiten, wobei eine- aus einer Übersetzung des Programmcodes stammende Folge von Primärinstruktionsworten (TVLIP) aus mehreren Instruktionswortteilen verarbeitet wird, und aus der Folge der Primärinstruktionsworte eine Folge von Sekundärinstruk- tionsworten erzeugt wird.
Die Erfindung betrifft ferner eine Prozessoranordnung zur Durchführung des Verfahrens mit mehreren, synchron Daten verarbeitenden Funktionseinheiten. In derartigen Prozessoranordnungen werden die Funktionseinheiten zu jedem Takt von einem zugeordneten Sekundärinstruktionswort angesteuert, wobei die Funktionseinheiten parallel zueinander arbeiten. Ein einzelnes Sekundärinstruktionswort umfasst mehrere Instruk- tionswortteile, wobei ein einzelnes Instruktionswortteil zur Ansteuerung einer einzelnen Funktionseinheit dient.
Ein derartiges Verfahren zur Ansteuerung von Funktionseinheiten in einem Prozessor und eine Prozessoranordnung zur Durchführung des Verfahrens ist in der deutschen Patentschrift DE 198 59 389 Cl offenbart.
Beispielsweise kann aus. einem komprimierten Pri är- instruktionswort ein Sekundärinstruktionswort erzeugt werden, wobei unter Umständen Berechnungen notwendig sind, die nicht innerhalb eines einzelnen Taktes durchgeführt werden können. Weiterhin kann es sein, dass sich beim Auslesen von Primärinstruktionswörtern aus dem Programmspeicher und dem Laden derselben in einen Decoder, in welchem Primärwörter in Sekundärwörter umgewandelt werden, Verzögerungen ergeben. Beides hat zur Folge, dass nicht zu jedem Takt ein vollständiges Sekundärinstruktionswort für die weitere Bearbeitung bereitstellt werden kann. In diesem Fall kann die Vorrichtung so eingestellt sein, dass die innerhalb des einen Taktes ermittelten Instruktionswortteile bereitgestellt und die noch nicht berechneten Instruktionswortteile durch NOP ( (No Operation) -Befehle) ersetzt werden. Weiterhin ist es auch möglich, dass alle Instruktionswortteile durch NOP-Befehle ersetzt werden und erst nach der Ermittlung des gesamten Sekundärinstruktionsworts dieses für die weitere Bearbeitung in der Befehlspipeline bereitgestellt wird.
Die Behandlung dieses NOP-Befehls in der Befehlspipeline ist grundsätzlich nicht von der eines anderen Befehls zu unterscheiden. Dies bedeutet, dass sich beispielsweise der Leistungsverbrauch bei der Abarbeitung des NOP-Befehls kaum von dem eines anderen Befehls unterscheidet . Insbesondere bei mobilen Geräten, wie Handys oder Laptops, kann die unnötige Aufwendung von Energie im Hinblick auf eine beschränkte Energieressource und im Hinblick auf die Notwendigkeit, Abwärme abzuführen, Probleme zur Folge haben. Ferner könnte ein verminderter elektrischer Leistungsbedarf bei der Befehlsausführung beispielsweise zu einer Steigerung der Leistungsfähigkeit einer Prozessoranordnung durch Einstellen eines höheren Prozessortaktes ausgenutzt werden.
Somit liegt der Erfindung die Aufgabe zugrunde, den durchschnittlichen elektrischen Leistungsbedarf der eingangs beschriebenen Prozessoranordnung zu vermindern.
Diese Aufgabe wird durch ein Verfahren mit den Merkmalen des Anspruchs 1 bzw. einer Prozessoranordnung mit den Merkmalen des Anspruchs 5 gelöst. Verfahrensseitig wird das Problem dadurch gelöst, dass die Primärinstruktionswortfolge sequentiell in eine erste Registereinrichtung gespeichert wird, von der die Primär- instruktionswörter (TVLIW) in eine erste Decodereinrichtung übermittelt werden, in der aus der Folge der Primärinstruktionswörter eine Folge von Sekundärinstruktionswörter (VLIW) mit jeweils mehreren Instruktionswortteilen (FIW) zur Ansteuerung der Funktionseinheiten erzeugt wird. Dabei wird in einer zweiten Registereinrichtung zumindest ein Instruktionswortteil (FIW) gespeichert, das von einer der jeweiligen Funktionseinheit zugeordneten zweiten Decodereinrichtung decodiert und in einer dritten Registereinrichtung decodiert abgelegt wird, mit welchem die jeweilige Funktionseinheit angesteuert wird, wobei zumindest eine der Registereinrichtungen taktzustandsgesteuert wird und der Takt der zumindest einen taktzustandsgesteuerten Registereinrichtung im Ansprechen auf abzuarbeitenden Programmcode geschaltet wird.
Anordnungsseitig wird das Problem dadurch gelöst, dass die Prozessoranordnung eine ersten Registereinrichtung aufweist, in der ein Primärinstruktionswort (TVLIW) aus einer Folge von Primärinstruktionswörter speicherbar ist, eine erste Decodereinrichtung, in welcher aus dem Primärinstruktionswort ein Sekundärinstruktionswort (VLIW) mit mehreren Instruktionswortteilen (FIW) zur Ansteuerung der Funktionseinheiten erzeugbar ist, eine zweite Registereinrichtung, in welcher zumindest ein Instruktionswortteil (FIW) speicherbar ist, mehrere zweite Decodereinrichtungen, welche jeweils einer Funktionseinheit zugeordnet sind, und in welchen jeweils ein Instruktionswortteil decodierbar ist, sowie mehrere dritte Registereinrichtung, in welchen das jeweilige decodierte Instruktionswortteil speicherbar ist, mit welchem die jeweilige Funktionseinheit ansteuerbar ist, ein Taktnetzwerk, mit welchem zumindest eine der Registereinrichtungen taktzustandssteuerbar ist sowie eine Taktschalteinrichtung, mit welcher der Takt für die zumindest eine taktzustandsgesteuerte Registereinrichtung ein- bzw. ausschaltbar ist.
Der Erfindung liegt die Idee zugrunde, die zu einem vorgegebenen Takt nicht benötigte Einrichtung bei der Befehlsausführung einer Befehlspipeline durch Ausschalten des Taktes stillzulegen, wodurch der Energiebedarf für die betreffende Einrichtung innerhalb der Taktabschaltung zumindest stark vermindert wird. Dabei können prinzipiell alle Einrichtungen für die verschiedenen Phasen der Befehlsausführung in der Befehlspipeline betroffen sein, beispielsweise Einrichtungen für eine Befehlsbereitstellungsphase, eine Decodier- und Operantenbereit-stellungsphase, eine Ausführungsphase, eine Speicherzu-griffsphase oder eine Resultatsspeicherphase. Es versteht sich, dass die Erfindung nicht nur auf eine derartige fünfstufige Befehlspipeline, sondern grundsätzlich auf alle Befehls-pipelines anwendbar ist. Alle in diesen Phasen betroffenen Einrichtungen sind Registereinrichtungen, beispielsweise Ein- bzw. Ausgangs- register oder Bearbeitungsregister, insbesondere einer Decodiereinrichtung bzw. einer Funktionseinheit.
Durch das Abschalten der betreffenden Registereinrichtung bzw. Registereinrichtungen durch Entfernen des Taktes von den Registereinrichtungen während vorgegebenen Zeitdauern, zu denen die jeweilige Registereinrichtung nicht benötigt wird, können die Probleme des Standes der Technik vermindert werden. Es sei darauf hingewiesen, dass mit dem erfindungsgemäßen Verfahren auch bei einer vorgegebenen Bearbeitung von Daten die für die Bearbeitung nicht benötigten Prozessoreinrichtungen, insbesondere die nicht benötigten Funktionseinheiten gezielt durch Abschalten des Taktes abgeschaltet werden können, wodurch der Leistungsbedarf der Prozessoranordnung automatisch an die benötigten Berechnungsverfahren angepasst werden kann.
Vorteilhafte Ausführungsformen der Erfindung sind in den Unteransprüchen angegeben. Um zu Beginn der Befehlsausführung in der Befehlspipeline die notwenige Information zum An- bzw. Ausschalten von vorgegebenen Registereinrichtungen bereitzustellen, kann vorgesehen sein, dass der Takt im Ansprechen auf zumindest ein Primärinstruktionswort geschaltet wird, wobei die Information zum Schalten des Taktes während des Decodierens des zumindest einen Primärinstruktionsworts erzeugt wird. Hierdurch kann sichergestellt werden, dass die bei der Abarbeitung dieses Primärinstruktionsworts im weiteren Verlauf der Befehlsausführung nicht benötigten Registereinrichtungen zu Beginn festgestellt werden und somit zu vorgegebenen Zeitpunkten während der Abarbeitung des Primärinstruktionsworts aus- bzw. eingeschaltet werden können. Hierzu kann vorgesehen sein, dass für benachbarte Registereinrichtungen der Takt im Ansprechen auf den abzuarbeitenden Programmcode verzögert zu in der Befehlspipeline vorhergehenden Registereinrichtungen geschaltet wird. Dadurch kann dem Umstand Rechnung getragen werden, dass ein Befehl während der Befehlsausführung innerhalb einer Befehlspipeline über einen mehrere Takte umfassenden
Zeitraum abgearbeitet wird, sodass die erfindungsgemäße Abschaltung der Registereinrichtungen seitlich versetzt erfolgen kann. Insbesondere kann die Verzögerung zwischen zwei in der Befehlspipeline benachbarten Registereinrichtungen gerade der Laufzeit zwischen den beiden Registern entsprechen und beispielsweise eine Taktperiode betragen.
Anordnungsseitig kann die Prozessoranordnung zum Schalten des Taktes eine, einer Registereinrichtung zugeordnete Taktschalteinrichtung umfassen, die einen Takteingang, einen
Schaltungseingang sowie einen Taktausgang aufweist, wobei der Steuereingang mit der ersten Decodereinrichtung sowie der Taktausgang mit der Registereinrichtung verbunden ist und am Takteingang ein Taktsignal anliegt.
Um das Schalten des Taktes relativ zu einem vorgegebenen Steuerwort oder Steuersignal verzögert ausführen zu können, kann die Prozessoreinrichtung eine Schaltungsver- zögerungseinrichtung aufweisen, die ein vorgegebenes Eingangssignal oder Eingangswort zeitlich verzögert am Ausgang wieder ausgibt. Auf diese Weise können alle betroffenen Registereinrichtungen mit einem einzigen Steuersignal angesteuert werden, das speziell für die jeweilige Registereinrichtung verzögert wird.
Erfindungsgemäß können mehrere taktzustandsgesteuerte Registereinrichtungen jeweils zugeordnet einen Taktschalter und eine Schaltungsverzögerungseinrichtung aufweisen. Dabei können die Schaltungsverzögerungseinrichtungen in Reihe geschaltet sein und alle Schaltungsverzögerungseinrichtungen eine vorbestimmte Taktverzögerung bewirken, wobei sich die Taktverzögerung für eine vorgegebene Registereinrichtung durch die Addition der Taktverzögerungen für die Registereinrichtungen ergibt, welche der vorgegebenen Registereinrichtungen vorgeschaltet sind. Durch die Verwendung identischer Schaltungsverzögerungseinrichtungen für die verschiedenen Registereinrichtungen wird ein einfach herzustellendes Verzögerungsnetzwerk ermöglicht, wobei die der jeweiligen Registereinrichtungen zugeordnete Schaltungsverzögerungseinrichtung gerade eine zusätzliche Verzögerung gegenüber den in der Befehlspipeline vorhergehenden Registereinrichtung bewirkt.
Vorteilhafterweise kann das Prinzip der Erfindung auch auf Unterfunktionseinheiten einer vorgegebenen Funktionseinheit angewendet werden, d.h., auch Registereinrichtungen, welche Unterfunktionseinheiten zugeordnet sind, können einen verzögerbaren Taktschalter aufweisen um bei Bedarf die Unterfunktionseinheit abzustellen.
Die Erfindung wird durch das Beschreiben einer Ausführungsform unter Bezugnahme auf die beiliegenden Figuren erläutert, wobei
Fig. 1 den Befehlspfad eines beispielhaften Signalprozessors in einer Prinzipskizze,
Fig. 2 eine erfindungsgemäße Ausbildung des in Figur 1 dargestellten Befehlspfades,
Fig. 3 die erfindungsgemäße Abarbeitung einer beispielhaften Befehlsabfolge,
Fig. 4 eine weitere Befehlsabfolge,
Fig. 5 die herkömmliche Abarbeitung der in Fig. 4 gezeigten Befehlsabfolge, und
Fig. 6 die erfindungsgemäße Abarbeitung der in Fig. 4 gezeigten Befehlsabfolge zeigt.'
In Fig. 1 sind die verschiedenen Phasen der Befehlsausführung in einer dreistufigen Befehlspipeline taktbezogen für eine beispielhafte Prozessoranordnung dargestellt. Dabei wird ein Primärinstruktionswort (TVLIW: tagged very large instruction word) , das komprimiert ist und sich aus mehreren Instruktionswortteilen zusammensetzt, in einer ersten Bereitstellungsphase T0 in ein erstes Register 1 geladen. Das Primärinstruktionswort weist eine Breite von 32 bit auf. In einer ersten Decoderphase T wird das Primärinstruktionswort in einem ersten Decoder 2 decodiert, wobei im wesentlichen eine Dekomprimierung durchgeführt wird und das resultierende Instruktionswort als 250 bit breites Sekundärinstruktionswort (VLIW: very large instruction word) in das zweite Register 3 eingeschrieben wird.
Wie obenstehend erläutert, ist die Prozessoranordnung zur parallelen Verarbeitung von Daten ausgebildet. Hierzu umfasst der Prozessor mehrere Funktionseinheiten, die synchron und taktzustandsgesteuert Daten verarbeiten. Zur Ansteuerung jeder einzelnen Funktionseinheit weist das Sekundärinstruktionswort (VLIW) eine Anzahl von Instruktionswortteilen (FIW: function instruction word), die jeweils einer Funktionseinheit zugeordnet sind. Demnach entspricht die Anzahl der Instruktionswortteilen der Anzahl der parallelarbeitenden Funktionseinheiten. In der Figur ist von den Instruktionswortteilen im Register 3 nur das erste, FIW0 und das letzte, FIWn bezeichnet.
In einer zweiten Decodierphase T2 wird jedes Instruktionswortteil (FIW) in einer zweiten Decodereinrichtung 4 decodiert und der decodierte Befehl in einem dritten Register 5 abgelegt. Dabei kann je nach Ausführungsform jeder Funktionseinheit bzw. jedem Instruktionswortteil eine separate Decodereinrichtung zugeordnet sein, oder eine einzelne Decodereinrichtung alle Instruktionswortteile gleichzeitig innerhalb der zweiten Decodierphase decodieren. In der in Fig. 1 dargestellten Ausführungsform weist die Prozessoreinrichtung für jedes Instruktionswortteil eine Decodereinrichtung auf, wobei nur die für das erste Instruktionswortteil FIW0 notwendige Decodereinrichtung 4 und die zugeordneten nachfolgenden Einrichtung dargestellt sind.
Nun schließt sich die Ausführungsphase T3 an, in welcher die Funktionseinheit 6 mit dem decodierten Instruktionswortteil zur vorbestimmten Bearbeitung von Daten angesteuert wird. Wie in der Figur 1 gezeigt, kann die Funktionseinheit selbst mehrere Funktionsuntereinheiten 7, 8 aufweisen, die sequentiell Daten bearbeiten, wobei das Zwischenergebniss im Funktionseinheitsregister 9 abgelegt werden, mit dessen Inhalt die nachfolgende Funktionsuntereinheit 8 gespeist wird. In dem in Fig. 1 dargestellten Befehlswortpfad umfasst die Ausführungsphase im Gegensatz zu der Bereitstellungs- und den beiden Decodierphasen mehrere Takte, wobei innerhalb eines Taktes die Funktion einer einzelnen Funktionsuntereinheit ausgeführt wird. Es ist jedoch auch möglich, dass die Ausführungsphase, d.h., die Verarbeitung der Daten innerhalb der Funktionsuntereinheiten insgesamt einen einzelnen Taktzyklus in Anspruch nimmt, wobei die Abarbeitung in den Funktionsuntereinheiten schneller erfolgt, sodass die Addition der Verarbeitungszeiten aller Funktionsuntereinheiten gerade einem Taktzyklus entspricht.
Zeitkritisch in dem in Fig. 1 dargestellten Befehlswortpfad ist die Dekomprimierung des Primärinstruktionsworts (TVLIW) in der ersten Dekodiereinrichtung 2 zum Erzeugen des die Instruktionswortteile (FIW umfassenden Sekundärin- struktionsworts . Weiterhin kann es sein, dass unter Umständen Primärinstruktionsworte nicht schnell genug aus dem Programmspeicher in die erste Decodiereinrichtung 2 geladen werden können. In solchen Situationen, in welchen am Ende eines Taktes im Register 3 kein vollständiges Sekundärinstruktionswort bereitgestellt werden kann, wird herkömmlicherweise ein NOP-Befehl anstelle der einzelnen Instruktionswortteile in die Registereinrichtung 3 geschrieben. Dieser NOP-Befehl wird nach dem Stand der Technik in den darauffolgenden Phasen wie ein normaler Befehl abgearbeitet mit den bekannten Nachteilen.
Hier setzt die Erfindung an, welche im Folgenden unter Bezugnahme auf Fig. 2 näher beschrieben wird.
Wieder ist der Befehlswortpfad ausgehend von der ersten Registereinrichtung 1, in welchem das Primärinstruktionswort abgespeichert wird bis zum Ergebnisregister 10, in welchem das Ergebnis der in der Funktionseinheit 6 ausgeführten Berechnung abgelegt wird, dargestellt. Alle Einrichtungen sind taktzustandsgesteuert, was bedeutet, dass diese durch den Takt gesteuert werden. Das Taktsignal auf der Leitung 14 wird dabei über ein Taktnetzwerk an allen Einrichtungen bereitgestellt. Das als Ausgangsregister des Decoders 2 wirkende Register 3, welches auch als Eingangsregister des Decoders 4 arbeitet, das als Ausgangsregister des Decoders 4 wirkende Register 5, welches auch als Eingangsregister für die Funktionseinheit 6 arbeitet und das Ausgangsregister 10 der Funktionseinheit 6 weisen jeweils eine Taktsehalteinrichtung 11, 12 und 13 auf, die jeweils mit ihrem Takteingang 21, 22 und 23 an die Taktleitung 14 angeschlossen sind. Der Takt wird jeweils an einem Taktausgang 24, 25, 26 an das jeweilige Register 3, 5, 10 zur Steuerung desselben weitergegeben. Die Takt- schaltungseinrichtung 11, 12, 13 weisen ferner einen Steuereingang 18, 19 bzw. 20 auf, mit welchem der am Taktausgang weitergegebene Takt ein- bzw. ausgeschaltet werden kann. Die Steuereingänge sind mit der ersten Decodereinrichtung
2 verbunden, welche ein Steuersignal in Form eines vorgegebenen Bits über eine Steuerleitung 17 an die Steuereingänge weitergibt. Dabei ist die Registereinrichtung 3 direkt mit der Decodereinrichtung 2 verbunden, während die Registereinrichtung 5 über eine erste Verzögerungseinrichtung 15 an die Decodereinrichtung 2 angeschlossen ist und die Registereinrichtung 10 durch eine Reihenschaltung von Schaltungsverzögerungseinrichtungen 15, 16 mit der Decodereinrichtung 2 zum Empfang des Steuersignals verbunden ist. Erfindungsgemäß weisen somit die Registereinrichtungen 2,
3 und 10 einen geschalteten Takt (gated clock) auf, der im Ansprechen auf das decodierte Primärinstruktionswort geschaltet wird, wobei die einzelnen Schaltern entsprechend der Befehlswortlaufzeiten zwischen den Registern zeitverschoben angesteuert werden.
Der gleiche Takt g2clk, welcher zum Steuern des Registers 5 verwendet wird, liegt auch an den Eingangsregistern 27, 28 der Funktionseinheit 6 an, sodass auch deren Ladevorgang erfindungsgemäß geschaltet werden kann.
Im Folgenden wird die erfindungsgemäße Befehlsausführung in der in Fig. 2 dargestellten Befehlspipeline anhand der Figuren 3 bis 6 näher erläutert. Dabei sei der Einfachheit halber angenommen, dass die Befehlsbereitstellungsphase T0, die erste und die zweite Decodierphase Tl7 T2, sowie die Bearbeitungsphase T3 jeweils einen einzigen Taktzyklus benötigen.
In den Fällen, in denen der Decoder 2 innerhalb eines Taktes Tx aus dem Primärinstruktionswort ein vollständiges Sekundärinstruktionswort erzeugt, gibt diese kein Steuersignal auf der Leitung 17 ab, aufgrund dessen die Taktschalteinrichtungen 11, 12 bzw. 13 den Takt an der jeweils zugeordneten Registereinrichtung abschalten, so dass nun die Schaltung auf herkömmliche Weise die in sie eingespeisten Befehle abarbeitet. Für den Fall, dass die Decodereinrichtung 2 nicht in der Lage ist, innerhalb eines Taktzyklusses aus T1 das im ersten Register 1 abgelegte Primärinstruktionswort vollständig in ein Sekundärinstruktionswort umzuwandeln, sei zunächst angenommen, dass alle Registerabschnitte in der Registereinrichtung 3, welche vorgegebenen Instruktionswortteilen zugeordnet sind, mit einem NOP-Befehl gefüllt werden und gleichzeitig ein Steuerbefehl in Form eines vorgegebenen Steuerbits über die Schaltungsver- zögerungseinrichtung 15 an die Taktsehalteinrichtung 12 übermittelt wird, sodass diese den Takt für die der Decodereinrichtung 4 zugeordneten Registereinrichtung 5 abschaltet, was, wie obenstehend erläutert, dem Abschalten der Decodereinrichtung 2 entspricht. Die Schaltungsverzöger- ungseinrichtung 15 verzögert das Steuersignal um einen vollen Takt, sodass das Abschalten der Decodereinrichtung 4 realisiert ist, zu dem der NOP-Befehl in der Decodereinrichtung 4 ausgeführt werden sollte. Da im darauffolgenden Takt im Eingangsregister 5 der Funktionseinheit 6 kein gültiger Steuerbefehl anliegt, wird diese über die Taktschalteinrichtung 13 in Form des Ausgangsregisters 10 abgeschaltet. Da zwischen der Abschaltung der Decodereinrichtung 4 und der Funktionseinheit 6 wiederum eine Taktperiode liegt, ist relativ zum Schaltzeitpunkt der Taktsehalteinrichtung 12 eine weitere Schaltungsverzögerungseinrichtung 16 vorgesehen, die mit der ersten Schaltungsverzögerungseinrichtung 15 in Reihe liegt und auch eine Schaltverzögerung um eine Taktperiode hervorruft. Damit wird erreicht, dass zu dem Zeitpunkt, an dem die Funktionseinheit 6 den NOP-Befehl ausführen soll, diese abgeschaltet wird. Wie aus Fig. 2 hervorgeht, wird jedoch auch das Ausgangsregister 3 der ersten Decodiereinrichtung durch das Steuersignal abgeschaltet. Somit wird beim Auftreten einer Verzögerung in der Decodereinrichtung 2 kein Sekundärinstruktionswort, also auch kein NOP-Befehl in die Befehlspipeline weitergegeben. Insofern diente die obige Bezugnahme auf den NOP-Befehl nur zur Vereinfachung der Erläuterung. Tatsächlich werden alle Einrichtungen zu den Zeitpunkten abgeschaltet, an welchen diese zum Abarbeiten eines Befehls angesteuert werden sollten, der jedoch nicht in die Pipeline eingeführt wurde.
Das erfindungsgemäße Ausführen einer Befehlsfolge ist in Fig. 3 dargestellt, wobei in der Vertikalen die beschriebenen vier Befehlsausführphasen aufgetragen und in der Horizontalen die Takte angegeben sind. Cml, Cm2 und Cm3 bezeichnen jeweils einen bestimmten Befehl in einer der beschriebenen Ausführungsphasen der Befehlspipeline während "Nop" den Befehl bezeichnet, bei welchem die entsprechende Vorrichtung abgeschaltet werden soll. Als erstes wird der Cml-Befehl in die Pipeline eingeführt, der auf übliche Weise durch diese hindurchläuft, sodass sich in der Darstellung eine Diagonale ergibt. Gleiches gilt für den Befehl Cm2. Nun soll ein NOP-Befehl in die Befehlspipeline eingeführt werden, wobei dieser NOP-Befehl schon im Primärinstruktionswort umfasst ist und somit beispielsweise nicht dadurch erzeugt wird, dass der Decoder 2 mehrere Takte zur Erzeugung eines Sekundärinstruktionscodes benötigt. Der Befehl wird in der ersten Decodiereinrichtung 2 decodiert und erkannt, worauf die zweite Decodiereinrichtung 4 für den nächsten Takt ausgeschaltet wird. Im übernächsten Takt, in welchem die zugeordnete Funktionseinheit dem NOP-Befehl abarbeiten sollte, wird auch diese ausgeschaltet, sodass sich in Fig. 3 für die Abarbeitung des NOP-Befehls keine vollständige Diagonale ergibt. Stattdessen sind die beiden letzten Phasen mit dem Zeichen "--" bezeichnet, das andeutet, dass in dieser Abarbeitungsphase keine Aktion vorgenommen wird. Der nachfolgende Befehl Cm3 wird wieder auf die übliche Art abgearbeitet .
Eine weitere beispielhafte Befehlsabfolge ist in Figur 4 dargestellt. Diese umfasst als ersten Befehl einen Sprungbefehl nach ,X0", wo der Befehl "Cm2" aufgeführt ist.
Fig. 5 zeigt die herkömmliche Abarbeitung der in Fig. 4 gezeigten Befehlsabfolge während in Fig. 6 die erfindungsgemäße Abarbeitung der Befehlsabfolge dargestellt ist. Durch die Entkopplung des Primärinstruktionswortstromes vom Sekundärinstruktionswortstrom mittels des erfindungsgemäßen Verfahrens kann erreicht werden, dass der Primärinstruktionswortstrom einen anderen Takt wie der Sekundärinstruktionswortstrom aufweist. Wie aus den Figuren zu erkennen, kann damit auch verhindert werden, dass bei sogenannten "delayed slots" Programmierfehler auftreten.
Verfahren zur Abarbeitung eines Programmcodes sowie eine Prozessoranordnung zur Ausführung des Verfahrens
Bezugzeichenliste
erste Registereinrichtung erster Decoder zweite Registereinrichtung zweier Decoder dritte Registereinrichtung Funktionseinheit Funktionsuntereinheit Funktionsuntereinheit Funktionseinheitsregister Ergebnisregister Taktschalteinrichtung Taktschalteinrichtung Taktsehalteinrichtung Taktleitung Schaltungsverzögerungseinrichtung Schaltungsverzögerungseinrichtung Steuerleitung Steuereingang Steuereingang Steuereingang Takteingang Takteingang Takteingang Taktausgang Taktausgang Taktausgang Dateneingangsregister Dateneingangsregister

Claims

Verfahren zur Abarbextung eines Programmcodes sowie eine Prozessoranordnung zur Ausführung des Verfahrens
1. Verfahren zur Abarbeitung eines Programmcodes in einer Befehlspipeline mit einer Prozessoreinrichtung, insbesondere einem digitalen Signalprozessor, die Funktionseinheiten aufweist, welche synchron Daten verarbeiten, wobei eine aus einer Übersetzung des
Programmcodes stammende Folge von Primärinstruktionsworten
(TVLIW) aus mehreren Instruktionswortteilen verarbeitet wird, und aus der Folge der Primärinstruktionsworte eine
Folge von Sekundärinstruktionswörter mit jeweils mehreren Instruktionswortteilen zur Ansteuerung der Funktionseinheiten erzeugt wird, d a du r c h g e k e n n z e i c h n e t, dass die Primärinstruktions-wortfolge sequentiell in eine erste Registereinrichtung (1) gespeichert wird, von der die Primärinstruktionswörter (TVLIW) in eine erste Decodereinrichtung (2) übermittelt werden, in der aus der Folge der Primärinstruktionswörter eine Folge von Sekundärinstruktionswörter (VLIW) mit jeweils mehreren Instruktionswortteilen (FIW) zur Ansteuerung der Funktionseinheiten (6) erzeugt wird, wobei in einer zweiten Registereinrichtung (3) zumindest ein Instruktionswortteil (FIW) gespeichert wird, das von einer der jeweiligen Funktionseinheit (6) zugeordneten zweiten Decodereinrichtung (4) decodiert und in einer dritten Registereinrichtung decodiert abgelegt wird, mit welchem die jeweilige Funktionseinheit angesteuert wird, wobei zumindest eine der Registereinrichtungen (3, 5, 10) taktzustandsgesteuert wird und der Takt (giclk, g2clk, g3clk) der zumindest einen taktzustandsgesteuerten Registereinrichtung (3, 5, 10) im Ansprechen auf abzuarbeitenden Programmcode geschaltet wird.
2. Verfahren nach Anspruch 1, d a d u r c h g e k e n n z e i c h ne t, dass der Takt im Ansprechen auf zumindest ein Primärinstruktionswort (TVLIW) geschaltet wird, wobei Information (17) zum Schalten des Taktes während des Decodierens des zumindest einen Primärinstruktionsworts erzeugt wird.
3. Verfahren nach Anspruch 1 oder 2, d a du r c h g e - k e n n z e i c hn e t, dass mehrere in der Befehlspipeline hintereinander angeordnete Registerein-richtungen
(3, 5, 19) taktzustandsgesteuert werden, wobei für zumindest eine Registereinrichtung (5, 10) der Takt im Ansprechen auf den abzuarbeitenden Programmcode verzögert zur in der Befehlspipeline vorhergehenden Registereinrichtung (3) geschaltet wird.
. Verfahren nach Anspruch 3, d a du r c h g ek e nn z e i c hn e t, dass der Takt für in der Befehlspipeline hintereinander angeordnete Registereinrichtungen (3, 5, 10) um eine solche Zeitdauer zeitversetzt geschaltet wird, die der Laufzeit zwischen den Registereinrichtungen entspricht.
5. Prozessoranordnung zum Durchführen eines Verfahrens nach einem der Ansprüche 1 bis 4 mit mehreren, synchron Daten verarbeitenden Funktionseinheiten, g e k e n n z e i c h n e t du r c h eine ersten Registereinrichtung (1) , in der ein Primärinstruktionswort (TVLIW) aus einer Folge von Primärinstruktionswörter speicherbar ist, eine erste Decodereinrichtung (2) , in welcher aus dem Primärinstruktionswort ein Sekundärinstruktionswort (VLIW) mit mehreren Instruktionswortteilen (FIW) zur Ansteuerung der Funktionseinheiten erzeugbar ist, eine zweite Registereinrichtung (3), in welcher zumindest ein Instruktionswortteil (FIW) speicherbar ist, mehrere zweite Decodereinrichtungen (4) , welche jeweils einer Funktionseinheit (6) zugeordnet sind, und in welchen jeweils ein Instruktionswortteil decodierbar ist, sowie mehrere dritte Registereinrichtung (5) , in welchen das jeweilige decodierte Instruktionswortteil speicherbar ist, mit welchem die jeweilige Funktionseinheit (6) ansteuerbar ist, ein Taktnetzwerk, mit welchem zumindest eine der Registereinrichtungen (3, 5, 10) taktzustandssteuerbar ist sowie eine Taktschalteinrichtung (11, 12, 13) , mit welcher der Takt für die zumindest eine taktzustandsgesteuerte Registereinrichtung ein- bzw. ausschaltbar ist.
6. Prozessoreinrichtung nach Anspruch 5, d a du r c h g e k e nn z e i c hn e t, dass die Taktschalteinrichtung (11, 12, 13) einen Takteingang (21, 22, 23), einen Steuereingang (17, 18, 19) sowie einen Taktausgang (24, 25, 26) aufweist, wobei der Schaltungseingang mit der ersten Decodereinrichtung (2) sowie der Taktausgang mit der Registereinrichtung (3, 5, 10) verbunden ist und am Takteingang ein Taktsignal anliegt.
7. Prozessoranordnung nach Anspruch 5 oder 6, g e k e n n z e i c hn e t du r c h eine, einer Registereinrichtung (5; 10) zugeordneten Schaltungsverzögerungseinrichtung (15; 16) , mit welcher das Schalten des Taktes für die Registereinrichtung verzögerbar ist.
8. Prozessoranordnung nach Anspruch 5, 6 oder 7, dadur ch g e k e n n z e i c h n e t, dass mehreren taktzustands- gesteuerten Registereinrichtungen (5; 10) jeweils ein Taktschalter (12; 13) und eine Schaltungsverzögerungseinrichtung (15; 16) zugeordnet sind, wobei der Takt für in der Befehlspipeline benachbarte Registereinrichtungen jeweils um eine vorgegebene Zeitdauer, insbesondere eine Taktperiode verzögert schaltbar ist.
9. Prozessoranordnung nach Anspruch 8, da du r c h g e k e n n z e i c hn e t, dass die Schaltungsverzögerungs- einrichtungen (15, 16) der mehreren taktzustandsgesteuerten Registereinrichtungen (5, 10) in Reihe geschaltet sind und die Schaltungsverzögerungseinrichtungen eine Schaltungsverzögerung um eine vorgegebene Zeitdauer bewirken, wobei sich die Schaltungsverzögerung für eine vorgegebene Registereinrichtung durch die Addition der Schaltungsverzögerungen der der Registereinrichtung vorgeschalteten Schaltungsverzögerungseinrichtungen bestimmt .
10. Prozessoranordnung nach einem der Ansprüche 7 bis 8, d a - du r c h g ek enn z e i c hne t, dass zumindest eine taktzustandsgesteuerte Registereinrichtung in einer Funktionseinheit eine Schaltungsverzögerungseinrichtung aufweist.
11. Prozessoranordnung nach einem der Ansprüche 7 bis 10, da du r c h g e k en n z e i c hn e t, dass in der
Befehlspipeline hintereinander angeordnete, taktzustandsgesteuerte Registereinrichtungen, welche unterschiedlichen Unterfunktionseinheiten einer vorgegebenen Funk- tionseinheit zugeordnet sind, eine Schaltungsverzögerungseinrichtung aufweisen.
PCT/DE2002/001881 2001-07-27 2002-05-24 Verfahren zur abarbeitung eines programmcodes sowie eine prozessoranordnung zur ausführung des verfahrens WO2003012630A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10136577A DE10136577A1 (de) 2001-07-27 2001-07-27 Verfahren zur Abarbeitung eines Programmcodes sowie eine Prozessoranordnung zur Ausführung des Verfahrens
DE10136577.2 2001-07-27

Publications (1)

Publication Number Publication Date
WO2003012630A1 true WO2003012630A1 (de) 2003-02-13

Family

ID=7693269

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/DE2002/001881 WO2003012630A1 (de) 2001-07-27 2002-05-24 Verfahren zur abarbeitung eines programmcodes sowie eine prozessoranordnung zur ausführung des verfahrens

Country Status (2)

Country Link
DE (1) DE10136577A1 (de)
WO (1) WO2003012630A1 (de)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5819058A (en) * 1997-02-28 1998-10-06 Vm Labs, Inc. Instruction compression and decompression system and method for a processor
US5983339A (en) * 1995-08-21 1999-11-09 International Business Machines Corporation Power down system and method for pipelined logic functions
DE19859389C1 (de) * 1998-12-22 2000-07-06 Systemonic Ag Verfahren zur Ansteuerung von Funktionseinheiten in einem Prozessor und Prozessoranordnung zur Durchführung des Verfahrens

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5987620A (en) * 1997-09-19 1999-11-16 Thang Tran Method and apparatus for a self-timed and self-enabled distributed clock
US6247134B1 (en) * 1999-03-31 2001-06-12 Synopsys, Inc. Method and system for pipe stage gating within an operating pipelined circuit for power savings
US20030159127A1 (en) * 1999-12-30 2003-08-21 Matthias Weiss Method and apparatus for producing instruction words to trigger functional units in a processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5983339A (en) * 1995-08-21 1999-11-09 International Business Machines Corporation Power down system and method for pipelined logic functions
US5819058A (en) * 1997-02-28 1998-10-06 Vm Labs, Inc. Instruction compression and decompression system and method for a processor
DE19859389C1 (de) * 1998-12-22 2000-07-06 Systemonic Ag Verfahren zur Ansteuerung von Funktionseinheiten in einem Prozessor und Prozessoranordnung zur Durchführung des Verfahrens

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
GARY S ET AL: "POWERPC 603TM, A MICROPROCESSOR FOR PORTABLE COMPUTERS", IEEE DESIGN & TEST OF COMPUTERS, IEEE COMPUTERS SOCIETY. LOS ALAMITOS, US, vol. 11, no. 4, 21 December 1994 (1994-12-21), pages 14 - 23, XP000498501, ISSN: 0740-7475 *
WEISS M H, FETTWEIS G P: "Dynamic codewidth reduction for VLIW instruction set architectures in digital signal processors", PROCEEDINGS IWISPO 96 INTERNATIONAL WORKSHOP ON IMAGE AND SIGNAL PROCESSING ON THE THEME OF ADVANCES IN COMPUTATIONAL INTELLIGENCE, 4 November 1996 (1996-11-04) - 7 November 1996 (1996-11-07), Manchester, UK, pages 517 - 520, XP000920877 *

Also Published As

Publication number Publication date
DE10136577A1 (de) 2003-02-13

Similar Documents

Publication Publication Date Title
DE69428634T2 (de) Hardware-Anordnung und Verfahren zur Ausdehnung der Datenverarbeitungszeit in den Fliessbandstufen eines Mikrorechnersystems
DE69130630T2 (de) Synchrones Verfahren und Gerät für Prozessoren
DE60211921T2 (de) Architektur und system von einem generischen seriellen port
DE2853523C2 (de) Dezentrale Erzeugung von Taktsteuersignalen
DE2746064A1 (de) Datenspeicher mit auffrischung
DE19815263C2 (de) Vorrichtung zur fehlertoleranten Ausführung von Programmen
DE2117936B2 (de) Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems
EP0190554B1 (de) Verfahren und Schaltungsanordnung zum Umschalten einer taktgesteuerten Einrichtung mit mehreren Betriebszuständen
DE1524239A1 (de) Verfahren zur Lokalisierung eines Fehlers in einer Anlage mit mindestens zwei parallel arbeitenden Rechengeraeten
EP0048767A1 (de) Prioritätsstufengesteuerte Unterbrechungseinrichtung
DE2234867A1 (de) Anordnung in datenverarbeitungsanlagen zum steuern der verarbeitung zweier voneinander unabhaengiger programme
DE3400723C2 (de)
DE3121742A1 (de) Mikroprogrammsteuerverfahren und -einrichtung zu dessen durchfuehrung
DE1115488B (de) Datenverarbeitungssystem
DE69626609T2 (de) Pipeline-datenverarbeitungsschaltung
DE10018988B4 (de) Hochgeschwindigkeits-Pipelinevorrichtung und Verfahren zum Erzeugen von Steuersignalen dafür
DE2937777C2 (de) Steuereinrichtung in einer elektronischen Datenverarbeitungsanlage zur Programmunterbrechung und für die Durchführung erzwungener Operationen
DE2545751C2 (de) Ablaufsteuerung für eine Datenverarbeitungsanlage
DE1462688B2 (de) Einrichtung zur adressierung von empfangsstationen
WO2003012630A1 (de) Verfahren zur abarbeitung eines programmcodes sowie eine prozessoranordnung zur ausführung des verfahrens
DE10004108C1 (de) Schaltungsanordnung zur Generierung eines Ausgangs-Taktsignals mit optimierter Signalgenerierungszeit
DE10110578B4 (de) Hierarchisches Prioritätsfilter mit integrierter Serialisierung
DE2622974A1 (de) Mikroprogrammierbares steuerwerk
EP0010193B1 (de) Einrichtung zur Steuerung der Zykluszeit für einen Mikroprozessor mit Steuerspeichern unterschiedlicher Verarbeitungsgeschwindigkeit
EP0897614B1 (de) Taktsignalgenerator

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

Kind code of ref document: A1

Designated state(s): JP

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB IE IT LU MC NL PT SE TR

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)