WO2006057084A1 - 命令供給装置 - Google Patents
命令供給装置 Download PDFInfo
- Publication number
- WO2006057084A1 WO2006057084A1 PCT/JP2005/008429 JP2005008429W WO2006057084A1 WO 2006057084 A1 WO2006057084 A1 WO 2006057084A1 JP 2005008429 W JP2005008429 W JP 2005008429W WO 2006057084 A1 WO2006057084 A1 WO 2006057084A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- instruction
- buffer
- processing unit
- central processing
- instruction sequence
- Prior art date
Links
- 239000000872 buffer Substances 0.000 claims abstract description 334
- 238000012545 processing Methods 0.000 claims abstract description 169
- 230000004044 response Effects 0.000 claims description 31
- 238000000034 method Methods 0.000 claims description 9
- 230000008878 coupling Effects 0.000 abstract description 10
- 238000010168 coupling process Methods 0.000 abstract description 10
- 238000005859 coupling reaction Methods 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 37
- 230000006870 function Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
- G06F9/381—Loop buffering
Definitions
- the present invention relates to an instruction supply device that is interposed between a main storage device and a central processing unit and supplies an instruction read from the main storage device to the central processing unit.
- the present invention relates to an instruction supply device that can supply an instruction even if access to a main storage device is omitted.
- an instruction supply device that is interposed between a main storage device and a central processing unit and supplies instructions read from the main storage device to the central processing unit.
- the instruction supply device has a loop instruction buffer and a normal instruction buffer in order to efficiently supply instructions read from the main storage device to the central processing unit.
- a loop block instruction When a loop block instruction is supplied, access to the main storage device is omitted and the loop instruction buffer is supplied to the central processing unit (see, for example, Patent Document 1).
- a "loop instruction buffer” is a buffer that stores loop blocks.
- Loop block refers to a sequence of instructions repeatedly supplied by a loop.
- the "normal instruction buffer” is a buffer that stores normal blocks.
- Normal block refers to an instruction sequence other than a loop block.
- Patent Document 1 JP-A 63-314644
- the present invention has been made in view of the above problems, and an object thereof is to provide an instruction supply device that efficiently supplies an instruction sequence that forms a loop with a small amount of hardware.
- an instruction supply device comprises: (a) an instruction supply device that supplies an instruction read from a main storage device to a central processing unit, and (b) the main statement Among the instruction sequences stored in the storage device, the first instruction sequence repeatedly supplied to the central processing unit is the first part of the first instruction sequence before being supplied again to the central processing unit.
- a second buffer for storing a second partial instruction sequence following the first partial instruction sequence while supplying the partial instruction sequence of 1 to the central processing unit; and (d) the first partial instruction sequence When all of the above are supplied to the central processing unit, the second part stored in the second buffer Selecting means for supplying a subsequent instruction of the first partial instruction sequence from the partial instruction sequence to the central processing unit;
- the instruction sequence of the loop block is stored in one buffer, it can be stored separately in two or more buffers, and unless all these buffers are updated, The instruction sequence stored in the buffer without being updated can be reused.
- the instruction supply device is further supplied to the central processing unit other than (b) the instruction sequence stored in the main storage device other than the first instruction sequence.
- a subsequent fourth partial instruction sequence is stored in the second buffer; (d) when the selection means supplies all of the third partial instruction sequence to the central processing unit, the second buffer;
- the subsequent instruction of the third partial instruction sequence may be supplied to the central processing unit from the fourth partial instruction sequence stored in the central processing unit.
- the second instruction sequence other than the first instruction sequence forming the loop is coupled to the buffer and the partial instruction sequence that is the first part of the first instruction sequence. It is possible to share the same instruction with a notch that stores the instruction sequence. In this case, an instruction sequence including a larger number of instructions can be efficiently supplied without adding a buffer.
- the present invention may be realized not only as an instruction supply apparatus but also as a method for controlling an instruction supply apparatus (hereinafter referred to as an instruction supply method).
- an LSI that incorporates a function provided by an instruction supply device (hereinafter referred to as an instruction supply function), an IP core that forms an instruction supply function in a programmable “logic” device such as an FPGA or CPLD (hereinafter referred to as an “IP core”).
- IP core programmable “logic” device
- command supply core or a recording medium that records the command supply core.
- the instruction supply device of the present invention it is possible to omit the access to the main storage device and supply instructions efficiently even to a loop block having a capacity larger than that of the loop instruction buffer. it can.
- a plurality of loop instruction buffers are provided, an increase in hardware amount can be suppressed.
- the performance of execution processing in the central processing unit can be improved.
- the frequency of access to the main storage device is reduced, and an increase in power consumption can be suppressed.
- FIG. 1 is a diagram showing a configuration of an instruction supply device in the first embodiment.
- FIG. 2 is a diagram showing a process performed when an instruction is supplied from the main memory in the instruction supply device according to the first embodiment.
- FIG. 3 is a diagram showing an example of an instruction sequence stored in a main storage device.
- FIG. 4A is a first diagram illustrating an operation example of the instruction supply apparatus according to the first embodiment.
- FIG. 4B is a second diagram showing an operation example of the instruction supply apparatus in the first embodiment.
- FIG. 4C is a third diagram showing an operation example of the instruction supply apparatus in the first embodiment.
- FIG. 4D is a fourth diagram showing an operation example of the instruction supply device in the first embodiment.
- FIG. 5A is a fifth diagram showing an operation example of the instruction supply apparatus in the first embodiment.
- FIG. 5B is a sixth diagram illustrating an operation example of the instruction supply device according to the first exemplary embodiment.
- FIG. 5C is a seventh diagram showing an operation example of the instruction supply apparatus in the first embodiment.
- FIG. 5D is an eighth diagram illustrating an operation example of the instruction supply apparatus in the first embodiment.
- FIG. 6A is a ninth diagram showing an operation example of the instruction supply apparatus in the first embodiment.
- FIG. 6B is a tenth diagram illustrating an operation example of the instruction supply apparatus in the first embodiment.
- FIG. 6C is an eleventh diagram showing an operation example of the instruction supply apparatus in the first embodiment.
- FIG. 6D is a twelfth diagram showing an operation example of the instruction supply apparatus in the first embodiment.
- FIG. 7A is a thirteenth diagram illustrating an operation example of the instruction supply apparatus according to Embodiment 1.
- FIG. 7B is a fourteenth diagram showing an operation example of the instruction supply apparatus in the first embodiment.
- FIG. 8 is a diagram showing a configuration of an instruction supply device according to the second embodiment.
- Fig. 9 is a diagram showing processing when an instruction is etched from the main storage device in the instruction supply device according to the second embodiment.
- FIG. 10A is a first diagram illustrating an operation example of the instruction supply apparatus according to the second embodiment.
- FIG. 10B is a second diagram showing an operation example of the instruction supply apparatus in the second embodiment.
- FIG. 10C is a third diagram showing an operation example of the instruction supply apparatus in the second embodiment.
- FIG. 10D is a fourth diagram showing an operation example of the instruction supply apparatus in the second embodiment.
- FIG. 10E is a fifth diagram illustrating an operation example of the instruction supply apparatus according to the second embodiment.
- FIG. 10F is a sixth diagram illustrating an operation example of the instruction supply apparatus according to the second embodiment.
- FIG. 10G is a seventh diagram illustrating an operation example of the instruction supply apparatus in the second embodiment.
- FIG. 10H is an eighth diagram illustrating an operation example of the instruction supply apparatus according to the second embodiment.
- FIG. 11A is a ninth diagram illustrating an operation example of the instruction supply apparatus according to the second embodiment.
- FIG. 11B is a tenth diagram illustrating an operation example of the instruction supply apparatus in the second embodiment.
- FIG. 11C is an eleventh diagram showing an operation example of the instruction supply apparatus in the second embodiment.
- FIG. 11D is a twelfth diagram illustrating an operation example of the instruction supply apparatus according to the second embodiment.
- FIG. 11E is a thirteenth diagram illustrating an operation example of the instruction supply apparatus in the second embodiment.
- FIG. 11F is a fourteenth diagram illustrating an operation example of the instruction supply apparatus according to the second embodiment.
- FIG. 11G is a fifteenth diagram illustrating an operation example of the instruction supply apparatus according to the second embodiment.
- FIG. 11H is a sixteenth diagram illustrating an operation example of the instruction supply apparatus according to the second embodiment.
- FIG. 12A is a seventeenth diagram showing an operation example of the instruction supply apparatus in the second embodiment.
- FIG. 12B is an eighteenth diagram showing an operation example of the instruction supply apparatus in the second embodiment.
- the instruction supply device accumulates an instruction read in advance in the main memory capacity via the memory interface in the buffer, and from the instruction sequence stored in the buffer. Provide instructions to the central processing unit.
- an instruction sequence (hereinafter referred to as a normal block) other than an instruction sequence (hereinafter referred to as a loop block) for supplying repeated instructions by a loop is stored in the normal instruction buffer.
- the loop block is divided and stored in the loop instruction buffer and the combining instruction buffer.
- the “normal block” refers to a block other than the loop block in the instruction sequence stored in the main memory.
- Loop block refers to a block that stores instructions to be repeatedly executed among a sequence of instructions stored in the main memory.
- the instruction supply device 101 is connected to the microprocessor 100 in response to an instruction from the central processing unit 10 mounted together in the microprocessor 100. Instruction is read from the CPU and supplied to the central processing unit 10.
- a memory interface 111 a normal instruction buffer 112, a loop instruction buffer 113, a loop instruction buffer 114, a combining instruction buffer 115, a selection circuit 116, and the like are provided.
- the memory interface 111 reads an instruction from the main memory 1 in response to an instruction from the central processing unit 10, and reads the read instruction into a normal instruction buffer 112, a loop instruction buffer 113, and a loop instruction buffer 114. And stored in one of the coupling instruction buffers 115.
- the normal instruction buffer 112 stores the instructions for which the normal block power is also read for four words. It is a buffer.
- the loop instruction buffer 113 is a buffer for accumulating instructions that have been read by the loop block force for four words.
- the loop instruction buffer 114 is a buffer for accumulating instructions read out by the loop block force for four words.
- the coupling instruction buffer 115 is coupled to either the loop instruction buffer 113 or the loop instruction buffer 114. When linking to the loop instruction buffer 113, it accumulates in the loop instruction buffer 113 and accumulates the subsequent instructions in the instruction sequence for four words. When coupled to the loop instruction buffer 114, it is a buffer that accumulates in the loop instruction buffer 114 and accumulates the subsequent instructions of the instruction sequence for four words.
- the selection circuit 116 determines whether or not the normal instruction buffer 112, the loop instruction buffer 113, the loop instruction buffer 114, and the combining instruction buffer 115! Select source.
- step S101: Yes when the instruction supply device 101 receives an instruction from the central processing unit 10 (step S101: Yes), it waits for an empty cycle (step S102: Yes). Instruction buffer 112, loop instruction buffers 113 and 114, and join instruction buffer 115 If the designated buffer is empty (step S103: Yes), fetch the instruction from main memory 1 (Step S104).
- the buffer is in the instruction waiting state after receiving the instruction.
- an instruction sequence including normal blocks 121, 123, 125, a loop block 122, and a loop block 124 force is used as the instruction sequence stored in the main storage device 1. This will be described as an example.
- the normal block 121 is composed of an instruction sequence (I # 1 to I # 7, LSI # 1) arranged from top to bottom.
- I # 1 to 1 # 7 are instructions other than the loop store instruction and the branch instruction.
- LSI # 1 is a loop store instruction indicating that the loop block 122 starts from I # 8.
- the loop block 122 includes a sequence of instructions (1 # 8 to 1 # 13, BI, lined from top to bottom.
- I # 8 to 1 # 13 are instructions other than the loop store instruction and the branch instruction.
- BI # 1 is a conditional branch instruction that branches to I # 8.
- the normal block 123 is an instruction sequence (1 # 14 to 1 # 21, LSI) lined up from top to bottom.
- I # 14 to 1 # 21 are instructions other than the loop store instruction and the branch instruction.
- LSI # 2 is a loop store instruction indicating that the loop block 124 starts from I # 22.
- the loop block 124 includes an instruction sequence (I # 22 to I # 26, BI) arranged from top to bottom.
- I # 22 to 1 # 26 are instructions other than the loop store instruction and the branch instruction.
- BI # 2 is a conditional branch instruction that branches to I # 22.
- the normal block 125 is composed of a sequence of instructions (1 # 27 to 1 # 32) lined up from top to bottom.
- I # 27 to 1 # 32 are instructions other than the loop store instruction and the branch instruction.
- the "loop store instruction” is an instruction indicating that a loop block starts from an address specified by label, for example, as indicated by the following instruction.
- the buffer that stores the loop block force read instruction is specified by the buff value.
- the buff value when the buff value is 0, it is accumulated in the loop instruction buffer 113, and when the buff value is 1, it is accumulated in the loop instruction buffer 114.
- the central processing unit 10 instructs the instruction supply unit 101 to store the head portion of the loop block 122 in the loop instruction buffer 113. To do.
- the central processing unit 10 performs processing according to the following cases (1) to (6) when executing the instruction sequence (see FIG. 3) given as an example.
- the central processing unit 10 instructs the memory interface 111 to store in the normal instruction buffer 112 when executing the instruction of the normal block. Further, it instructs the selection circuit 116 to select the normal instruction buffer 112 as the instruction supply source.
- the central processing unit 10 selects that the instruction buffer 115 for coupling is selected as the supply source of the subsequent instruction when all the instructions are supplied.
- the central processing unit 10 executes the supplied instruction, except for the case where it is repeatedly supplied, the central processing unit 10 stores the instruction sequence stored in the combination instruction buffer 115. Instructs the memory interface 111 to store subsequent instructions in the normal instruction buffer 112.
- the central processing unit 10 executes a branch instruction and branches to an address specified by the branch instruction, the central processing unit 10 accumulates the instruction specified by the address and loops The selection circuit 116 is instructed to select the instruction buffer for use. On the other hand, when all the instructions are supplied from the combining instruction buffer 115 without branching, the selection circuit 116 is instructed to select the normal instruction buffer 112 as the supply source of the subsequent instruction. [0064] Next, the operation of the instruction supply device 101 will be described.
- each component behaves as follows in response to an instruction from the central processing unit 10.
- the memory interface 111 reads an instruction from the main storage device 1, and reads the instruction into any of the normal instruction buffer 112, the loop instruction buffer 113, the loop instruction buffer 114, and the combining instruction buffer 115. Accumulate.
- the selection circuit 116 selects one of the normal instruction buffer 112, the loop instruction buffer 113, the loop instruction buffer 114, and the combining instruction buffer 115 as an instruction supply source.
- the buffer selected as the instruction supply source supplies the instruction stored in the buffer to the central processing unit 10 via the selection circuit 116.
- the instruction supply device 101 performs processing according to the following cases (1) to (12).
- the central processing unit 10 executes the instruction of the normal block 121, the central processing unit 10 transfers the instruction sequence (I # 1 to 1 # 7, LSI # 1) of the normal block 121 to the normal instruction buffer 112.
- the memory interface 111 is instructed to store the data.
- the selection circuit 116 is instructed to select the normal instruction buffer 112 as the instruction supply source.
- the memory interface 111 accesses the main storage device 1 and reads out the instruction sequence (I # 1 to 1 # 7, LSI # 1) from the main storage device 1, and then the normal instruction buffer 112. Accumulate in Further, the selection circuit 116 selects the normal instruction buffer 112 as an instruction supply source. Then, the normal instruction buffer 112 supplies the instruction sequence (I # 1 to 1 # 7, LSI # 1) to the central processing unit 10 via the selection circuit 116 (see FIG. 4A).
- the memory interface 111 accesses the main storage device 1, reads the instruction sequence (I # 8 to 1 # 14) from the main storage device 1, and stores it in the normal instruction buffer 112. Further, the selection circuit 116 selects the normal instruction buffer 112 as an instruction supply source. Then, the normal instruction buffer 112 supplies the instruction sequence (1 # 8 to BI # 1) to the central processing unit 10 via the selection circuit 116. At the same time, the instruction sequence (I # 8 to I # 11) at the head of the loop block 122 specified by the loop store instruction (LSI # 1) is read in the background, and the read instruction sequence (I # 8 to I # 11) is stored in the loop instruction buffer 113 (see FIGS. 4B and 4C;).
- the central processing unit 10 executes the branch instruction (BI # 1) and branches to the start address of the loop block 122, the central processing unit 10 stores the instruction sequence ( The memory interface 111 is instructed to store the subsequent instructions (I # 12 to 1 # 14) of I # 8 to I # 11) in the coupling instruction buffer 115. Then, the selection circuit 116 is instructed to select the loop instruction notch 113 as the instruction supply source.
- the memory interface 111 accesses the main storage device 1, reads out the instruction sequence (I # 12 to 1 # 14) from the main storage device 1, and stores it in the combining instruction buffer 115. Further, the selection circuit 116 selects the loop instruction buffer 113 as an instruction supply source. Then, the loop instruction buffer 113 supplies the instruction sequence (I # 8 to I # 11) to the central processing unit 10 via the selection circuit 116 (see FIG. 4D).
- the selection circuit 116 selects the coupling instruction buffer 115 as an instruction supply source.
- Binding instruction buffer 115 supplies the instruction sequence (1 # 12-1 # 14) to the central processing unit 10 via the selection circuit 116 (see FIG. 5A.) 0 (5)
- the central processing unit 10 completes the accumulation of instructions in the coupling instruction buffer 115, the central processing unit 10 accumulates the instruction sequence (I # 12 to 1 # 14 in the coupling instruction buffer 115). ) To the memory interface 111 to store the subsequent instructions (1 # 15 to 1 # 17) in the normal instruction buffer 112.
- the memory interface 111 accesses the main storage device 1, reads out the instruction sequence (I # 15 to 1 # 18) from the main storage device 1, and stores it in the normal instruction buffer 112 ( (See Figure 5B.)
- the central processing unit 10 does not execute the branch instruction (BI # 1) and branch to the start address of the loop block 122.
- the selection circuit 116 is instructed to select the normal instruction buffer 112 as the supply source of the subsequent instruction.
- the selection circuit 116 selects the normal instruction buffer 112 as an instruction supply source. Then, the normal instruction buffer 112 supplies the instruction sequence (I # 15 to 1 # 18) to the central processing unit 10 through the selection circuit 116 (see FIG. 5C).
- the memory interface 111 accesses the main storage device 1 and reads out the instruction sequence (I # 19 to 1 # 21, LSI # 2) from the main storage device 1 to read the normal instruction buffer 112. Accumulate on. Further, the selection circuit 116 selects the normal instruction buffer 112 as an instruction supply source. Then, the normal instruction buffer 112 supplies an instruction string (I # 19 to 1 # 21, LSI # 2) to the central processing unit 10 via the selection circuit 116 (see FIG. 5D).
- the central processing unit 10 executes the instruction of the loop block 124 except when it is repeatedly supplied by a branch instruction.
- the central processing unit 10 uses the instruction string (I # 22 to 1 # 28) as a normal instruction. Instructs the memory interface 111 to store in the buffer 112. Then, the selection circuit 116 is instructed to select the normal instruction buffer 112 as the instruction supply source. Furthermore, the central processing unit 10 executes the loop store instruction (LSI # 2) when executing the loop store instruction (LSI # 2).
- the buff value of the instruction (LSI # 2) is 1, the instruction sequence (I # 22 to 1 # 25) at the beginning of the loop block 124 specified by the loop store instruction (LSI # 2) is used as the loop instruction buffer. Instruct the memory interface 111 to store the data in 114.
- the memory interface 111 accesses the main storage device 1, reads the instruction sequence (I # 22 to 1 # 25) from the main storage device 1, and stores it in the normal instruction buffer 112. Further, the selection circuit 116 selects the normal instruction buffer 112 as an instruction supply source. Then, the normal instruction buffer 112 supplies an instruction sequence (I # 22 to 1 # 25) to the central processing unit 10 via the selection circuit 116. At the same time, the instruction sequence (I # 22 to 1 # 25) at the head of the loop block 124 specified by the loop store instruction (LSI # 2) is read in the background, and the read instruction sequence (I # 22 to 1) # 25) is stored in the loop instruction buffer 114 (see Fig. 6A and Fig. 6B). 0
- the memory interface 111 accesses the main storage device 1, reads out the instruction string (I # 26 to 1 # 28) from the main storage device 1, and stores it in the combining instruction buffer 115. Further, the selection circuit 116 selects the loop instruction buffer 113 as an instruction supply source. Its to the loop instruction buffer 114 supplies the instruction sequence to (1 # 22-1 # 25) to the central processing unit 10 via the selection circuit 116 (see Ji FIG.) 0
- the selection circuit 116 selects the coupling instruction buffer 115 as an instruction supply source.
- Binding instruction buffer 115 supplies the instruction sequence (1 # 26-1 # 28) to the central processing unit 10 via the selection circuit 116 ( Figure 60 reference.) 0
- the memory interface 111 accesses the main storage device 1 to read out the instruction sequence (I # 29 to 1 # 32) from the main storage device 1 and store it in the normal instruction buffer 112 ( (See Figure 7A.)
- the central processing unit 10 does not execute the branch instruction (BI # 2) and branch to the start address of the loop block 124, but all instructions (I # 26 to 1 from the combination instruction buffer 115).
- # 28 the selection circuit 116 is instructed to select the normal instruction buffer 112 as the supply source of the subsequent instruction.
- the selection circuit 116 selects the normal instruction buffer 112 as an instruction supply source. Then, the normal instruction buffer 112 supplies the instruction sequence (I # 29 to 1 # 32) to the central processing unit 10 via the selection circuit 116 (see FIG. 7B).
- the instruction sequence of the loop block is divided into two or more buffers as compared with the case where the instruction sequence of the loop block is stored in one buffer. As long as all of these buffers are not updated, the instruction sequence stored in the buffer without being updated can be reused. By storing the latter half of the loop in the buffer in the background when the loop is executed, even if the entire loop is not always held in the buffer, it is equivalent to the state where all the loop is held in the buffer, and efficient. Instructions can be supplied.
- instructions for 8 words are stored in half in two buffers, and even if one of the buffers is updated, if another buffer is not updated, the other buffer is not updated.
- the instructions for 4 words stored in can be reused. It is also possible to shorten the time for accessing the main storage device by simply reading the updated 4-word instruction from the main storage device without reading the 8-word instruction from the main storage device again.
- the loop block instruction is supplied without accessing the main memory. be able to.
- another loop instruction buffer is used instead of the combining instruction buffer, the main memory device is accessed when repeatedly supplying a loop block of up to eight words. Loop block instructions can be supplied without
- Embodiment 2 according to the present invention will be described with reference to the drawings. Note that the description of the same configuration as that of Embodiment 1 is omitted.
- the instruction supply device is different from the instruction supply device 101 (see FIG. 1) in that it does not include the combining instruction buffer 115, but instead includes the normal instruction buffer 112. The difference is that a normal instruction buffer that also serves as the combining instruction buffer 115 is provided.
- the normal instruction buffer functions like the normal instruction buffer 112 when supplying a normal block instruction, and supplies a loop block instruction. Functions like the combining instruction buffer 115.
- the instruction supply device 201 is different from the instruction supply device 101 (see FIG. 1) in the following points (1) to (5).
- a memory interface 211 is provided instead of the memory interface 111.
- the memory interface 211 is a main storage device.
- a normal instruction buffer 212 is provided instead of the normal instruction buffer 112.
- the normal instruction buffer 212 When supplying normal block instructions, the normal instruction buffer 212 accumulates instructions for which four normal block powers have been read, like the normal instruction buffer 112, for four words. Further, when supplying instructions of the loop block, as in the combining instruction buffer 115, the instruction is stored in the loop instruction buffer 213, and the subsequent instructions in the instruction sequence are stored for four words.
- a selection circuit 216 is provided instead of the selection circuit 116.
- the selection circuit 216 receives the normal processing buffer 212 in response to an instruction from the central processing unit 10
- One of the loop instruction buffers 213 is selected as the instruction supply source.
- a threshold register 213 is newly provided.
- the threshold register 213 indicates that the normal instruction buffer 212 is supplying a loop block instruction.
- the threshold value referred to when determining whether or not the capacity of the free area of the normal instruction buffer 212 has reached a predetermined capacity is held.
- the normal instruction buffer 212 is supplying the instruction following the instruction sequence stored in the loop instruction buffer 113 (step S201: Yes).
- the new command is not stored until the buffer free space associated with the supply exceeds a predetermined threshold (here, 2 words) (step S202).
- the central processing unit 20 performs processing according to the following cases (1) to (5) when executing the instruction sequence (see FIG. 3) given as an example in the first embodiment.
- the central processing unit 20 instructs the memory interface 211 to store in the normal instruction buffer 212 when executing the instruction of the normal block. Further, it instructs the selection circuit 216 to select the normal instruction buffer 212 as the instruction supply source. [0120] (2) When the central processing unit 20 executes the loop store instruction, the central processing unit 20 starts the loop block specified by the loop store instruction when it is not stored in the normal instruction buffer 212. Force Instructs the memory interface 211 to store a certain amount of instructions in the loop example buffer 113.
- the central processing unit 20 selects the normal instruction buffer 212 as the supply source of the succeeding instruction when all the instructions are supplied. To instruct.
- the central processing unit 20 instructs the selection circuit 216 to select the loop instruction buffer 113 when executing the branch instruction and branching to the address specified by the branch instruction. To do. On the other hand, when the remaining instructions are supplied from the normal instruction buffer 112 without branching, the instruction subsequent to the instruction sequence stored in the normal instruction buffer 212 is stored in the normal instruction buffer 212. Instructs the memory interface 211.
- the instruction supply device 201 reads out an instruction from the main storage device 1 in advance by the memory interface 211 that has received an instruction from the central processing unit 20, and either the normal instruction buffer 212 or the loop instruction buffer 113 is read out.
- the read instruction is stored in.
- the selection circuit 216 selects either the normal instruction buffer 212 or the loop instruction buffer 113 as an instruction supply source. Then, the buffer selected as the instruction supply source supplies the instruction stored in the buffer to the central processing unit 20 via the selection circuit 216.
- the normal instruction buffer 212 is stored in the threshold register 213 when the free space generated by supplying the instruction while the instruction of the loop block is being supplied exceeds the threshold. The process of reading and storing subsequent instructions from the storage device 1 is resumed.
- the normal instruction buffer 212 supplies a loop block instruction
- the normal instruction buffer 212 In other words, when a subsequent instruction is supplied to the loop supply instruction buffer 113, even if an empty area is created in its own buffer as a result of the instruction being supplied, this empty area is set to this threshold (for example, two words). Until the number exceeds, new instructions are not read from the main memory 1 and stored. As a result, the subsequent instruction is continuously held in the loop supply instruction buffer 113.
- the instruction supply device 201 performs processing according to the following cases (1) to (12).
- the central processing unit 20 executes the instruction of the normal block 121, the central processing unit 20 uses the instruction sequence (I # 1 to 1 # 7, LSI # 1) of the normal block 121 for the normal instruction buffer 212.
- the memory interface 211 is instructed to store data. Then, it instructs the selection circuit 216 to select the normal instruction buffer 212 as the instruction supply source.
- the memory interface 211 accesses the main storage device 1 and reads out the instruction sequence (I # 1 to 1 # 7, LSI # 1) from the main storage device 1, thereby reading the normal instruction buffer 212. Accumulate in Further, the selection circuit 216 selects the normal instruction buffer 212 as an instruction supply source. Then, the normal instruction buffer 212 supplies the instruction sequence (I # 1 to 1 # 7, LSI # 1) to the central processing unit 20 via the selection circuit 216 (see FIG. 10A).
- the central processing unit 20 uses the instruction sequence (1 # 8 to 1 # 14) as a normal instruction when executing the instruction in the loop block 122 except when it is repeatedly supplied by a branch instruction. Instructs the memory interface 211 to store in the buffer 212. Then, it instructs the selection circuit 216 to select the normal instruction buffer 212 as the instruction supply source.
- the loop store instruction (LSI # 1) is executed, the instruction string (I # 8 to 1 # 11) at the head of the loop block 122 specified by the loop store instruction (LSI # 1) Is stored in the loop instruction buffer 113 to the memory interface 211.
- the memory interface 211 accesses the main storage device 1, reads the instruction sequence (I # 8 to 1 # 14) from the main storage device 1, and stores it in the normal instruction buffer 212. Further, the selection circuit 216 selects the normal instruction buffer 212 as an instruction supply source. Then, the normal instruction buffer 212 sends an instruction string (1 # to the central processing unit 20 via the selection circuit 216. Supply 8 ⁇ I # 11). At the same time, the instruction sequence (I # 8 to I # 11) at the head of the loop block 122 specified by the loop store instruction (LSI # 1) is read in the background, and the read instruction sequence (I # 8 to I # 11) is stored in the loop instruction buffer 113 (see FIG. 10B and IOC;).
- the central processing unit 20 executes the branch instruction (BI # 1) and branches to the start address of the loop block 122, the central processing unit 20 stores the instruction sequence ( The memory interface 211 is instructed to store subsequent instructions (I # 12 to 1 # 14) of I # 8 to I # 11) in the normal instruction buffer 212. Then, the selection circuit 216 is instructed to select the loop instruction notch 113 as the instruction supply source.
- the memory interface 211 accesses the main storage device 1, reads out the instruction sequence (I # 12 to 1 # 14) from the main storage device 1, and stores it in the normal instruction buffer 212. Further, the selection circuit 216 selects the loop instruction buffer 113 as an instruction supply source. Then, the loop instruction buffer 113 supplies the instruction sequence (I # 8 to I # 11) to the central processing unit 20 via the selection circuit 216 (see FIG. 10D).
- the central processing unit 20 selects the normal instruction buffer 212 as the supply source of the subsequent instruction. To instruct.
- the selection circuit 216 selects the normal instruction buffer 212 as an instruction supply source.
- the normal instruction buffer 212 supplies instructions (I # 12 and 1 # 13) to the central processing unit 20 through the selection circuit 216 (see FIG. 1 ( ⁇ )).
- the normal instruction buffer 212 supplies an instruction to the central processing unit 20 via the selection circuit 216. At this time, since the free area of the normal instruction buffer 212 generated by supplying an instruction to the central processing unit 20 exceeds the threshold, the instruction sequence (I # 12 to The memory interface 211 is instructed to store the subsequent instructions (I # 15, I # 16) of 1 # 14) in the normal instruction buffer 212.
- the memory interface 211 accesses the main storage device 1, reads the instruction sequence (I # 15, I # 16) from the main storage device 1, and stores it in the normal instruction buffer 212 ( (See Fig. 10F.) 0 [0140] (5)
- the central processing unit 20 executes the branch instruction (BI # 1) and branches to the start address of the loop block 122, the central processing unit 20 selects the loop instruction buffer 113 as the instruction supply source. This is instructed to the selection circuit 216. Then, accumulate in the loop instruction buffer 113 !, and store the subsequent instruction (I # 12, I # 13) of the instruction sequence (I # 8 to I # 11) in the normal instruction buffer 21 2. Instructs the memory interface 211.
- the selection circuit 216 selects the loop instruction buffer 113 as an instruction supply source. Further, the loop instruction buffer 113 supplies the instruction sequence (1 # 8 to 1 # 11) to the central processing unit 20 via the selection circuit 216. Then, the memory interface 211 accesses the main storage device 1, reads out the instruction sequence (1 # 12, 1 # 13) from the main storage device 1, and stores it in the normal instruction buffer 212 (see FIG. 10G;). .
- the central processing unit 20 executes all the instructions (I # 12 to 1) from the normal instruction buffer 212 without executing the branch instruction (BI # 1) and branching to the start address of the loop block 122.
- the subsequent instruction (I # 15 to 1 # 18) of the instruction sequence (I # 12 to I # 1 4) stored in the normal instruction buffer 212 is used for the normal instruction buffer. Instruct the memory interface 211 to store in 212.
- the memory interface 211 accesses the main storage device 1, reads out the instruction sequence (I # 15 to 1 # 18) from the main storage device 1, and stores it in the normal instruction buffer 212. Then, the normal instruction buffer 212 supplies the instruction sequence (I # 15 to I # 18) to the central processing unit 20 through the selection circuit 216 (see FIG. 10H and FIG. 11A).
- the central processing unit 20 executes the instruction in the normal block 121, the central processing unit 20 uses the instruction sequence (I # 19 to 1 # 21, LSI # 2) in the normal block 121 for the normal instruction buffer 212.
- the memory interface 211 is instructed to store data in the memory.
- the selection circuit 216 is instructed to select the normal instruction notifier 212 as the instruction supply source.
- the memory interface 211 accesses the main storage device 1 and reads out the instruction sequence (I # 19 to 1 # 21, LSI # 2) from the main storage device 1 to read the normal instruction buffer 212. Accumulate on. Further, the selection circuit 216 selects the normal instruction buffer 212 as an instruction supply source. Then, the normal instruction buffer 212 supplies the instruction sequence (I # 19 to 1 # 21, LSI # 2) to the central processing unit 20 through the selection circuit 216 (see FIG. 11B). [8146] (8) When the central processing unit 20 executes the instruction of the loop block 124 except when it is repeatedly supplied by a branch instruction, the central processing unit 20 uses the instruction string (I # 22 to 1 # 25) as a normal instruction.
- the memory interface 211 accesses the main storage device 1, reads out the instruction sequence (I # 22 to 1 # 25) from the main storage device 1, and stores it in the normal instruction buffer 212. Further, the selection circuit 216 selects the normal instruction buffer 212 as an instruction supply source. Then, the normal instruction buffer 212 supplies the instruction sequence (I # 22 to BI # 2) to the central processing unit 20 via the selection circuit 216. At the same time, the instruction sequence (I # 22 to 1 # 25) at the head of the loop block 124 specified by the loop store instruction (LSI # 2) is read in the background, and the read instruction sequence (I # 22 to 1 # 25) is stored in the loop instruction buffer 113 (see ID in FIG. 11C and FIG. 1).
- the central processing unit 20 executes the branch instruction (BI # 2) and branches to the start address of the loop block 124, the central processing unit 20 stores the instruction sequence ( The memory interface 211 is instructed to store the subsequent instructions (I # 26 to 1 # 28) of I # 22 to 1 # 25) in the normal instruction buffer 212. Then, it instructs the selection circuit 216 to select the loop instruction buffer 113 as the instruction supply source.
- the memory interface 211 accesses the main storage device 1, reads out the instruction sequence (I # 26 to 1 # 28) from the main storage device 1, and stores it in the normal instruction buffer 212. Further, the selection circuit 216 selects the loop instruction buffer 113 as an instruction supply source. Then, the loop instruction buffer 113 supplies the instruction sequence (I # 22 to 1 # 25) to the central processing unit 20 via the selection circuit 216 (see FIG. 11E).
- the central processing unit 20 selects the normal instruction buffer 212 as the supply source of the subsequent instruction. Direct to 216. In response to this, the selection circuit 216 selects the normal instruction buffer 212 as an instruction supply source. The normal instruction buffer 212 supplies instructions (I # 26, BI # 2) to the central processing unit 20 through the selection circuit 216 (see FIG. 11F).
- the normal instruction buffer 212 supplies an instruction to the central processing unit 20 via the selection circuit 216.
- the instruction sequence (I # 26 Do not instruct the memory interface 211 to store the subsequent instructions (I # 29, I # 30) of ⁇ 1 # 28) in the free space generated in the normal instruction notifier 212 (see FIG. 11G).
- the selection circuit 216 selects the loop instruction buffer 113 as the instruction supply source. Further, the loop instruction buffer 113 is connected to the central processing unit via the selection circuit 216.
- the central processing unit 20 executes all the instructions (I # 26 to 1) from the normal instruction buffer 212 without executing the branch instruction (BI # 2) and branching to the start address of the loop block 122. # 28) is supplied, the instruction sequence (I # 26 to 1 # 2) stored in the normal instruction buffer 212
- the memory interface 211 is instructed to store the subsequent instructions (I # 29 to 1 # 32) of 8) in the normal instruction buffer 212.
- the memory interface 211 accesses the main storage device 1, reads out the instruction sequence (I # 29 to 1 # 32) from the main storage device 1, and stores it in the normal instruction buffer 212. Then, usually instruction buffer 212 supplies the instruction sequence (1 # 29-1 # 32) to the central processing unit 20 via the selection circuit 216 (FIG. 12A, see Fig. 12B.) 0
- the instruction supply device 201 it is possible to repeatedly supply instructions to a loop block of up to six words without accessing the main storage device 1.
- a loop instruction buffer for storing instructions for 6 words is required separately from the normal instruction buffer for storing instructions for 4 words. It is important. In other words, a koffa that accumulates instructions for a total of 10 words is required.
- the threshold value held in the threshold value register 213 may be set by a program. Further, it may be set within the capacity of the normal instruction buffer 212. Along with this, it is possible to supply instructions tailored to the specification of the program. By increasing the threshold value, the allocated capacity for the instructions in the loop block is increased, so that it can be supplied efficiently. On the other hand, there is a trade-off that the allocated capacity is reduced for the instruction sequence following the loop block, and the number of instructions that can be stored in the normal instruction buffer 212 together with the loop block is reduced. .
- the instruction supply device may be realized by a full custom LSI (Large Scale Integration). Also, it may be realized by a semi-custom LSI such as ASIC (Application Specific Integrated Circuit). Further, it may be realized by a programmable logic device such as an FPGA (Field Programmable Gate Array) and CPLD (Complex Programmable Logic Device). It may also be realized as a dynamic reconfigurable device whose circuit configuration can be dynamically rewritten!
- VHDL Very high speed integrated circuit Hardware Description Language
- Verilog-HDL It may be a program written in a hardware description language such as SystemC (hereinafter referred to as an HDL program).
- the HDL program It may be a gate 'level netlist obtained by logical synthesis of a program. Further, it may be macro cell information in which arrangement information, process conditions, etc. are added to the gate level netlist. Further, it may be mask data in which dimensions, timing, and the like are defined.
- the design data can be read out to a hardware system such as a computer system, an embedded system, etc., so that an optical recording medium (eg, CD-ROM), a magnetic recording medium (eg, hard disk, etc.) can be read. ), A magneto-optical recording medium (for example, MO, etc.), a semiconductor memory (for example, RAM, etc.), etc., may be recorded on a computer-readable recording medium.
- the design data read by the other hardware system via the recording medium may be downloaded to the programmable 'logic' device via the download cable.
- the design data may be held in a hardware system on the transmission line so that it can be acquired by another hardware system via a transmission line such as a network.
- the design data acquired by other hardware systems via the hardware system power transmission path may be downloaded to the programmable logic device via the download cable.
- the logic synthesis, placement, and wiring design data may be recorded in the serial ROM so that it can be transferred to the FPGA when the power is turned on.
- the design data recorded in the serial ROM may be downloaded directly to the FPGA when power is applied.
- the present invention relates to an instruction supply device that supplies an instruction read from a main storage device to a central processing unit, and particularly to a main storage device for a loop with a larger number of instructions without increasing the capacity of a loop instruction buffer. It can be used for IJs as an instruction supply device that supplies instructions without accessing the system.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Record Information Processing For Printing (AREA)
Abstract
Description
Claims
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/720,011 US7822949B2 (en) | 2004-11-25 | 2005-05-09 | Command supply device that supplies a command read out from a main memory to a central processing unit |
EP05737193A EP1826667A4 (en) | 2004-11-25 | 2005-05-09 | INSTRUCTION PROVIDING DEVICE |
JP2006546623A JP4086885B2 (ja) | 2004-11-25 | 2005-05-09 | 命令供給装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004-340660 | 2004-11-25 | ||
JP2004340660 | 2004-11-25 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2006057084A1 true WO2006057084A1 (ja) | 2006-06-01 |
Family
ID=36497830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2005/008429 WO2006057084A1 (ja) | 2004-11-25 | 2005-05-09 | 命令供給装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7822949B2 (ja) |
EP (1) | EP1826667A4 (ja) |
JP (1) | JP4086885B2 (ja) |
CN (1) | CN101065725A (ja) |
TW (1) | TW200617776A (ja) |
WO (1) | WO2006057084A1 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1962181A4 (en) * | 2005-12-02 | 2010-05-26 | Panasonic Corp | BUFFER CONTROL UNIT AND BUFFER MEMORY |
JP4690424B2 (ja) | 2005-12-26 | 2011-06-01 | パナソニック株式会社 | コマンド処理装置、方法、及び集積回路装置 |
US9052910B2 (en) * | 2007-10-25 | 2015-06-09 | International Business Machines Corporation | Efficiency of short loop instruction fetch |
US9772851B2 (en) | 2007-10-25 | 2017-09-26 | International Business Machines Corporation | Retrieving instructions of a single branch, backwards short loop from a local loop buffer or virtual loop buffer |
CN101903868B (zh) * | 2007-12-21 | 2012-07-04 | 松下电器产业株式会社 | 存储装置以及其控制方法 |
JPWO2010021119A1 (ja) * | 2008-08-21 | 2012-01-26 | パナソニック株式会社 | 命令制御装置 |
US9952869B2 (en) | 2009-11-04 | 2018-04-24 | Ceva D.S.P. Ltd. | System and method for using a branch mis-prediction buffer |
CN102480387A (zh) * | 2010-11-30 | 2012-05-30 | 英业达股份有限公司 | 机架式服务器装置 |
US9377966B2 (en) | 2013-10-09 | 2016-06-28 | Samsung Electronics Co., Ltd. | Method and apparatus for efficiently processing storage commands |
KR102401271B1 (ko) * | 2015-09-08 | 2022-05-24 | 삼성전자주식회사 | 메모리 시스템 및 그 동작 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5952349A (ja) * | 1982-09-17 | 1984-03-26 | Nec Corp | 命令先取制御装置 |
JPS63314644A (ja) * | 1987-06-17 | 1988-12-22 | Nec Corp | デ−タ処理装置 |
JPH01169633A (ja) * | 1987-12-25 | 1989-07-04 | Hitachi Ltd | 情報処理装置 |
JP2004513427A (ja) * | 2000-11-02 | 2004-04-30 | インテル・コーポレーション | ハードウェア・ループ |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4626988A (en) * | 1983-03-07 | 1986-12-02 | International Business Machines Corporation | Instruction fetch look-aside buffer with loop mode control |
EP1050804A1 (en) * | 1999-05-03 | 2000-11-08 | STMicroelectronics SA | Execution of instruction loops |
US6766444B1 (en) * | 2000-11-02 | 2004-07-20 | Intel Corporation | Hardware loops |
US6643755B2 (en) * | 2001-02-20 | 2003-11-04 | Koninklijke Philips Electronics N.V. | Cyclically sequential memory prefetch |
JP3656587B2 (ja) * | 2001-10-01 | 2005-06-08 | 日本電気株式会社 | 並列演算プロセッサ、その演算制御方法及びプログラム |
JP3804941B2 (ja) * | 2002-06-28 | 2006-08-02 | 富士通株式会社 | 命令フェッチ制御装置 |
-
2005
- 2005-05-09 EP EP05737193A patent/EP1826667A4/en not_active Withdrawn
- 2005-05-09 US US11/720,011 patent/US7822949B2/en not_active Expired - Fee Related
- 2005-05-09 CN CNA2005800405346A patent/CN101065725A/zh active Pending
- 2005-05-09 JP JP2006546623A patent/JP4086885B2/ja active Active
- 2005-05-09 WO PCT/JP2005/008429 patent/WO2006057084A1/ja active Application Filing
- 2005-05-19 TW TW094116304A patent/TW200617776A/zh unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5952349A (ja) * | 1982-09-17 | 1984-03-26 | Nec Corp | 命令先取制御装置 |
JPS63314644A (ja) * | 1987-06-17 | 1988-12-22 | Nec Corp | デ−タ処理装置 |
JPH01169633A (ja) * | 1987-12-25 | 1989-07-04 | Hitachi Ltd | 情報処理装置 |
JP2004513427A (ja) * | 2000-11-02 | 2004-04-30 | インテル・コーポレーション | ハードウェア・ループ |
Non-Patent Citations (1)
Title |
---|
See also references of EP1826667A4 * |
Also Published As
Publication number | Publication date |
---|---|
EP1826667A4 (en) | 2008-07-23 |
JP4086885B2 (ja) | 2008-05-14 |
US20080086621A1 (en) | 2008-04-10 |
EP1826667A1 (en) | 2007-08-29 |
US7822949B2 (en) | 2010-10-26 |
CN101065725A (zh) | 2007-10-31 |
TW200617776A (en) | 2006-06-01 |
JPWO2006057084A1 (ja) | 2008-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2006057084A1 (ja) | 命令供給装置 | |
CN101375228B (zh) | 具有省电指令高速缓存通路预测器和指令代替方案的微处理器 | |
TWI426452B (zh) | Work processing device | |
KR100497078B1 (ko) | 프로그램 제품 및 데이터 처리장치 | |
JP2006509291A (ja) | マイクロプロセッサ電力消費のソフトウェアベースの制御 | |
JP4272108B2 (ja) | データ処理装置用バス相互接続ブロックの設計に関するフレキシビリティの改善 | |
TWI426451B (zh) | Work processing device | |
JP2006509290A (ja) | マイクロプロセッサ電力消費低減のためのレジスタファイルゲーティング | |
JP5985900B2 (ja) | 動作合成装置、動作合成装置を備えたデータ処理システム、及び、動作合成プログラム | |
JP2007219581A (ja) | メモリコントローラおよびこれを搭載する電子機器 | |
JP2004171573A (ja) | 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ | |
JP4076973B2 (ja) | データ処理装置を使用する場合のフレキシビリティの改善 | |
CN100378656C (zh) | 具有非易失性存储器的集成电路以及用于从所述存储器中取数据的方法 | |
WO2006112190A1 (ja) | プロセッサ | |
US6851033B2 (en) | Memory access prediction in a data processing apparatus | |
JPWO2007074583A1 (ja) | 再構成可能な演算器を持つプロセッサ | |
JP6520416B2 (ja) | 演算処理装置および演算処理装置の処理方法 | |
JP4409620B2 (ja) | 演算処理装置、キャッシュメモリ制御装置及び制御方法 | |
CN101790719A (zh) | 低开销/省电处理器同步机制及其应用 | |
JP2003347930A (ja) | プログラマブル論理回路及びコンピュータシステム並びにキャッシュ方法 | |
US6662293B1 (en) | Instruction dependency scoreboard with a hierarchical structure | |
US11010318B2 (en) | Method and apparatus for efficient and flexible direct memory access | |
JP4664011B2 (ja) | 情報処理装置及び情報処理方法 | |
US20050272197A1 (en) | Semiconductor device | |
JP3767529B2 (ja) | マイクロプロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
DPE1 | Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101) | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2006546623 Country of ref document: JP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 11720011 Country of ref document: US |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2005737193 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 200580040534.6 Country of ref document: CN |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWP | Wipo information: published in national office |
Ref document number: 2005737193 Country of ref document: EP |
|
WWP | Wipo information: published in national office |
Ref document number: 11720011 Country of ref document: US |