WO2002027482A2 - Multiple sources for instruction decode - Google Patents
Multiple sources for instruction decode Download PDFInfo
- Publication number
- WO2002027482A2 WO2002027482A2 PCT/US2001/030261 US0130261W WO0227482A2 WO 2002027482 A2 WO2002027482 A2 WO 2002027482A2 US 0130261 W US0130261 W US 0130261W WO 0227482 A2 WO0227482 A2 WO 0227482A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- instructions
- instruction
- sources
- decoder
- processor
- Prior art date
Links
Classifications
-
- 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
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
Definitions
- This invention relates to digital signal processors, and more particularly to having multiple sources providing instructions to the decoder.
- Digital signal processing is concerned with the representation of signals in digital form and the transformation or processing of such signal representation using numerical computation.
- Digital signal processing is a core technology for many of today's high technology products in fields such as wireless communications, networking, and multimedia.
- DSPs digital signal processors
- One reason for the prevalence of digital signal processing technology has been the development of low cost, powerful digital signal processors (DSPs) that provide engineers the reliable computing capability to implement these products cheaply and efficiently. Since the development of the first DSPs, DSP architecture and design have evolved to the point where even sophisticated real-time processing of video-rate sequences may be performed.
- DSPs are often used for a variety of multimedia applications such as digital video, imaging, and audio. DSPs may manipulate the digital signals to create and open such multimedia files.
- MPEG-1 Motion Picture Expert Group
- MPEG-2 Motion Picture Expert Group
- MPEG-4 High Efficiency Video Expert Group
- H.263 digital video compression standards and file formats. These standards achieve a high compression rate of the digital video signals by storing mostly changes from one video frame to another, instead of storing each entire frame. The video information may then be further compressed using a number of different techniques.
- the DSP may be used to perform various operations on the video information during compression. These operations may include motion search and spatial interpolation algorithms. The primary intention is to measure distortion between blocks within adjacent frames. These operations are computationally intensive and may require high data throughput.
- ASICs application-specific integrated circuits
- Figure 1 is a block diagram of a mobile video device utilizing a processor according to one embodiment of the present invention.
- FIG. 2 is a block diagram of a signal processing system according to an embodiment of the present invention.
- Figure 3 is a block diagram of an alternative signal processing system according to an embodiment of the present invention.
- Figure 4 illustrates exemplary pipeline stages of the processor in Figure 1 according to an embodiment of the present invention.
- Figure 5 is a block diagram of a multiple source decoder feed system according to one embodiment of the present invention.
- Figure 6 illustrates the process of providing a selected instruction from multiple sources to the decoder according to one embodiment of the present invention.
- FIG. 1 illustrates a mobile video device 100 including a processor according to an embodiment of the invention.
- the mobile video device 100 may be a hand-held device which displays video images produced from an encoded video signal received from an antenna 105 or a digital video storage medium 120, e.g., a digital video disc (DVD) or a memory card.
- a processor 110 communicates with a cache memory 115 which may store instructions and data for the processor operations.
- the processor 110 may be a microprocessor, a digital signal processor (DSP) , a microprocessor controlling a slave DSP, or a processor with an hybrid microprocessor/DSP architecture.
- DSP 110 digital signal processor
- the processor 110 will be referred to hereinafter as a DSP 110.
- the DSP 110 may perform various operations on the encoded video signal, including, for example, analog-to- digital conversion, demodulation, filtering, data recovery, and decoding.
- the DSP 110 may decode the compressed digital video signal according to one of various digital video compression standards such as the MPEG-family of standards and the H.263 standard.
- the . decoded video signal may then be input to a display driver 130 to produce the video image on a display 125.
- Hand-held devices generally have limited power supplies. Also, video decoding operations are computationally intensive. Accordingly, a processor for use in such a device is advantageously a relatively high speed, low power device.
- the DSP 110 may have a deeply pipelined, load/store architecture. By employing pipelining, the performance of the DSP may be enhanced relative to a non- pipelined DSP. Instead of fetching a first instruction, executing the first instruction, and then fetching a second instruction, a pipelined DSP 110 fetches the second instruction concurrently with execution of the first instruction, thereby improving instruction throughput. Further, the clock cycle of a pipelined DSP may be shorter than that of a non-pipelined DSP, in which the instruction must be fetched and executed in the same clock cycle.
- Such a DSP 110 may be used with video camcorders, teleconferencing, PC video cards, and High-Definition Television (HDTV) .
- the DSP 110 may also be used in connection with other technologies utilizing digital signal processing such as voice processing used in mobile telephony, speech recognition, and other applications.
- One or more analog signals may be provided by an external source, e.g., antenna 105, to a signal conditioner 202.
- Signal conditioner 202 may perform certain preprocessing functions upon the analog signals. Exemplary preprocessing functions may include mixing several of the analog signals together, filtering, amplifying, etc.
- An analog-to-digital converter (ADC) 204 may be coupled to receive the preprocessed analog signals from signal conditioner 202 and to convert the preprocessed analog signals to digital signals consisting of samples, as described above. The samples may be taken according to a sampling rate determined by the nature of the analog signals received by signal conditioner 202.
- ADC analog-to-digital converter
- the DSP 110 may be coupled to receive digital signals at the output of the ADC 204.
- the DSP 110 may perform the desired signal transformation upon the received digital signals, producing one or more output digital signals.
- a digital-to-analog converter (DAC) 206 may be coupled to receive the output digital signals from the DSP 110.
- the DAC 206 converts the output digital signals into output analog signals.
- the output analog signals may be then conveyed to another signal conditioner 208.
- the signal conditioner 208 performs post-processing functions upon the output analog signals. Exemplary post-processing functions are similar to the preprocessing functions listed above. It is noted that various alternatives of the signal conditioners 202 and 208, the ADC 204, and the DAC 206 are well known. Any suitable arrangement of these devices may be coupled into a signal processing system 200 with the DSP 110.
- a signal processing system 300 may be arranged to receive one or more digital signals and to convey the received digital signals to the DSP 110.
- DSP 110 may perform the desired signal transformation upon the received digital signals to produce one or more output digital signals.
- Coupled to receive the output digital signals is a digital signal transmitter 304.
- the signal processing system 300 is a digital audio device in which the digital receiver 302 conveys to the DSP 110 digital signals indicative of data stored on the digital storage device 120.
- the DSP 110 then processes the digital signals and conveys the resulting output digital signals to the digital transmitter 304.
- the digital transmitter 304 then causes values of the output digital signals to be transmitted to the display driver 130 to produce a video image on the display 125.
- the pipeline illustrated in Figure 4 includes eight stages, which may include instruction fetch 402-403, decode 404, address calculation 405, execution 406-408, and write-back 409 stages.
- An instruction i may be fetched in one clock cycle and then operated on and executed in the pipeline in subsequent clock cycles concurrently with the fetching of new instructions, e.g., i+1 and i+2.
- Pipelining may introduce additional coordination problems and hazards to processor performance. Jumps in the program flow may create empty slots, or "bubbles," in the pipeline. Situations which cause a conditional branch to be taken or an exception or interrupt to be generated may alter the sequential flow of instructions. After such an occurrence, a new instruction may be fetched outside of the sequential program flow, making the remaining instructions in the pipeline irrelevant. Methods such as data forwarding, branch prediction, and associating valid bits with instruction addresses in the pipeline may be employed to deal with these complexities.
- FIG. 5 is a block diagram of a multiple source decoder feed system 500 according to one embodiment of the present invention.
- the decoder feed system 500 may include a plurality of sources such as an Icache/alignment Unit 505 having an instruction register 507, a loop buffer 510, an emulation instruction register 515, and other sources 520, a 64-bit multiplexer (MUX) 525, a 2-bit multiplexer (MUX) 530, and a decoder 535.
- the decoder feed system 500 may allow the decoder 535 to be fed directly by one of the plurality of sources without having to transfer data to the instruction register 507.
- the instruction latency may be reduced and the performance of the DSP 110 is increased.
- the plurality of sources may provide instructions having the same format, including width bits.
- the design of the decoder 535 may be simplified by ensuring the plurality of sources provides similarly formatted instructions, thereby improving on cycle time.
- the Icache/alignment unit 505, the loop buffer 510, the emulation instruction register 515, or any other source 520 may be connected to both the 64-bit MUX 525 and the 2-bit MUX 530.
- Each of these sources may be capable of providing instructions of multiple widths, such as 16-bit, 32-bit, or 64-bit instructions. These instructions are provided to the 64-bit MUX 525. Of course, other size MUXs capable of handling other size instructions may be used without departing from the spirit of the invention.
- Each of the sources also provides a signal to the 2-bit MUX 530 indicative of the width of the instruction provided to the 64-bit MUX 525. With a 2-bit signal, there are 4 possible values for the 2-bit width signal.
- width bits of 00 indicates the instruction is invalid
- width bits of 01 indicates a 16-bit instruction
- width bits of 10 indicates a 32-bit instruction
- width bits of 11 indicates a 64-bit instruction.
- an additional multiplexer may receive pre-decode information from each of the sources 505-520 and send the appropriate pre-decode information to the decoder.
- the process 600 for providing instructions to the decoder 535 begins at a start block 605. Proceeding to block 610, one or more of the sources provides instructions and corresponding width bits to the MUXs 525, 530. As stated above, the instructions may be a variety of sizes, including 16-bit, 32-bit, or 64-bit. Instructions may be provided by only one of the sources, but instructions and the corresponding width bits may also be provided by two or more of the sources. Proceeding to block 615, the source to provide the instruction is selected. The DSP 110 may determine that the next instruction be provided by the Icache/alignment unit 505, the loop buffer 510, the emulation instruction register 515, or another source 520. After the DSP 110 determines the instruction to send to the decoder 535, the MUXs 525 and 530 provides the proper instruction and width bits to the decoder 535.
- the selected instruction and width bits are transferred directly to the decoder 535 without being stored in the instruction register 507.
- the instruction latency may be lowered and the performance may be increased.
- the decoder 535 may then execute the instruction. The process then terminates in an end block 630.
- the multiplexers 525, 530 of the present invention provide the proper information to the decoder 535 based on the selected instruction source 505-520. However, if multiple sources 505-520 are selected, the multiplexers 525, 530 may include priority logic to control the distribution of information to the decoder 535. For example, the multiplexers 525, 530 may include priority logic stating that information from the emulation instruction register 515 has the highest priority, while information from the Icache/Alignment unit 505 is to be processed prior to information from the loop buffer 510. The priority schedule may be pre-determined or updated throughout processing.
Abstract
Description
Claims
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020037004440A KR100688139B1 (en) | 2000-09-28 | 2001-09-25 | Multiple sources for instruction decode |
CNB018164633A CN1261864C (en) | 2000-09-28 | 2001-09-25 | Multiple sources of instruction decoding |
JP2002530993A JP3704519B2 (en) | 2000-09-28 | 2001-09-25 | Multiple sources for instruction decoding |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US67090700A | 2000-09-28 | 2000-09-28 | |
US09/670,907 | 2000-09-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2002027482A2 true WO2002027482A2 (en) | 2002-04-04 |
WO2002027482A3 WO2002027482A3 (en) | 2002-06-13 |
Family
ID=24692374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2001/030261 WO2002027482A2 (en) | 2000-09-28 | 2001-09-25 | Multiple sources for instruction decode |
Country Status (5)
Country | Link |
---|---|
JP (1) | JP3704519B2 (en) |
KR (1) | KR100688139B1 (en) |
CN (1) | CN1261864C (en) |
TW (1) | TWI237787B (en) |
WO (1) | WO2002027482A2 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0511484A2 (en) * | 1991-03-20 | 1992-11-04 | Hitachi, Ltd. | Loop control in a data processor |
GB2263985A (en) * | 1992-02-06 | 1993-08-11 | Intel Corp | Deriving variable length instructions from a stream of instructions |
US5721855A (en) * | 1994-03-01 | 1998-02-24 | Intel Corporation | Method for pipeline processing of instructions by controlling access to a reorder buffer using a register file outside the reorder buffer |
-
2001
- 2001-09-25 WO PCT/US2001/030261 patent/WO2002027482A2/en active Application Filing
- 2001-09-25 CN CNB018164633A patent/CN1261864C/en not_active Expired - Fee Related
- 2001-09-25 JP JP2002530993A patent/JP3704519B2/en not_active Expired - Lifetime
- 2001-09-25 KR KR1020037004440A patent/KR100688139B1/en active IP Right Grant
- 2001-09-28 TW TW090124152A patent/TWI237787B/en not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0511484A2 (en) * | 1991-03-20 | 1992-11-04 | Hitachi, Ltd. | Loop control in a data processor |
GB2263985A (en) * | 1992-02-06 | 1993-08-11 | Intel Corp | Deriving variable length instructions from a stream of instructions |
US5721855A (en) * | 1994-03-01 | 1998-02-24 | Intel Corporation | Method for pipeline processing of instructions by controlling access to a reorder buffer using a register file outside the reorder buffer |
Also Published As
Publication number | Publication date |
---|---|
KR20030036844A (en) | 2003-05-09 |
JP2004510247A (en) | 2004-04-02 |
KR100688139B1 (en) | 2007-03-02 |
CN1261864C (en) | 2006-06-28 |
JP3704519B2 (en) | 2005-10-12 |
CN1466717A (en) | 2004-01-07 |
WO2002027482A3 (en) | 2002-06-13 |
TWI237787B (en) | 2005-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7036000B2 (en) | Valid bit generation and tracking in a pipelined processor | |
US7360059B2 (en) | Variable width alignment engine for aligning instructions based on transition between buffers | |
US6789184B1 (en) | Instruction address generation and tracking in a pipelined processor | |
US6976151B1 (en) | Decoding an instruction portion and forwarding part of the portion to a first destination, re-encoding a different part of the portion and forwarding to a second destination | |
US7069420B1 (en) | Decode and dispatch of multi-issue and multiple width instructions | |
US7366876B1 (en) | Efficient emulation instruction dispatch based on instruction width | |
US7155570B1 (en) | FIFO write/LIFO read trace buffer with software and hardware loop compression | |
WO2002027482A2 (en) | Multiple sources for instruction decode | |
US6760800B1 (en) | Event vector table override |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): CN JP KR SG |
|
AK | Designated states |
Kind code of ref document: A3 Designated state(s): CN JP KR SG |
|
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2002530993 Country of ref document: JP Ref document number: 1020037004440 Country of ref document: KR |
|
WWE | Wipo information: entry into national phase |
Ref document number: 018164633 Country of ref document: CN |
|
WWP | Wipo information: published in national office |
Ref document number: 1020037004440 Country of ref document: KR |