WO2007145319A1 - プロセッサ、および、命令制御方法 - Google Patents

プロセッサ、および、命令制御方法 Download PDF

Info

Publication number
WO2007145319A1
WO2007145319A1 PCT/JP2007/062118 JP2007062118W WO2007145319A1 WO 2007145319 A1 WO2007145319 A1 WO 2007145319A1 JP 2007062118 W JP2007062118 W JP 2007062118W WO 2007145319 A1 WO2007145319 A1 WO 2007145319A1
Authority
WO
WIPO (PCT)
Prior art keywords
instruction
word
information
bit
instruction word
Prior art date
Application number
PCT/JP2007/062118
Other languages
English (en)
French (fr)
Inventor
Shorin Kyo
Original Assignee
Nec Corporation
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 Nec Corporation filed Critical Nec Corporation
Priority to US12/308,390 priority Critical patent/US8131978B2/en
Priority to CN2007800222240A priority patent/CN101467128B/zh
Priority to JP2008521270A priority patent/JP5168143B2/ja
Priority to EP07745373A priority patent/EP2028590A4/en
Publication of WO2007145319A1 publication Critical patent/WO2007145319A1/ja

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/3017Runtime instruction translation, e.g. macros
    • G06F9/30178Runtime instruction translation, e.g. macros of compressed or encrypted 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
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30156Special purpose encoding of instructions, e.g. Gray coding
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead

Definitions

  • the present invention relates to a processor and an instruction control method, and more particularly to a processor and an instruction control method that can reduce memory consumption without degrading instruction execution performance.
  • a programmable 'processor that fetches and executes one or more instruction words from program memory every cycle. In order to increase the use efficiency of valuable program memory resources, a fixed instruction word length is usually used. There is a need. On the other hand, in general, each instruction differs in the required number of bits X depending on the contents of the operation designation for the processor.
  • the number of opcode bits is A [bits]
  • the number of bits required to represent the number of registers that can be specified as operands is B [bits]
  • the number of registers that need to be specified is C
  • An object of the present invention is to provide a processor and an instruction control method that reduce memory consumption without deteriorating instruction execution performance, which is a problem of the related art.
  • the processor of the present invention decomposes an information word formed by collecting a part of bit fields belonging to a plurality of instruction words executed in the same cycle at the time of execution, and sets each instruction word to the original configuration. It is characterized by restoring.
  • an information word constituted by collecting a part of bit fields belonging to a plurality of instruction words executed in the same cycle is decomposed at the time of execution.
  • the step of restoring the word to the original configuration is provided.
  • the effect of the present invention is that the memory consumption can be reduced without lowering the instruction execution performance.
  • the reason is that the processor decomposes an information word composed of a part of bit fields belonging to a plurality of instruction words executed in the same cycle at the time of execution, and converts each instruction word into the original configuration. It is because the structure which restores to is taken.
  • FIG. 1 is a block diagram showing a configuration of a first exemplary embodiment of the present invention.
  • FIG. 2 is a block diagram showing a configuration of a second exemplary embodiment of the present invention.
  • FIG. 3 is a block diagram showing a configuration of the instruction decoder in FIG. 2.
  • FIG. 4 is a block diagram showing a configuration of the instruction word restoration unit of FIG.
  • FIG. 5 is an explanatory diagram showing a format of an original instruction word.
  • FIGS. 6A-6C are explanatory diagrams showing examples of information word formats.
  • FIG. 7 is an explanatory view showing the operation of the second embodiment of the present invention.
  • FIG. 8 is an explanatory view showing the operation of the third embodiment of the present invention.
  • FIG. 9 is a flowchart showing the operation of the instruction word restoration unit.
  • FIG. 10 is a block diagram showing a partial configuration of an instruction word restoration unit of a specific example of the second embodiment of the present invention.
  • FIG. 1 is a block diagram showing the configuration of the first embodiment of the present invention.
  • the processor 100 according to the first embodiment of the present invention is configured by collecting a part of bit fields belonging to a plurality of instruction words executed in the same cycle (for example, the same pipeline stage).
  • An instruction decoder 103 is included that decomposes the information words and reproduces the original structure of each instruction word.
  • the configuration of the original first instruction word II is a bit field L11 and a bit field L12.
  • the configuration of the original second instruction word 12 is a bit field L21 and a bit field L22.
  • the original third instruction word 13 is composed of bit field L31 and bit field L32.
  • the information word IW is composed of a bit field L12 belonging to the original first instruction word II, a bit field L22 belonging to the original second instruction word 12, and a bit field L32 belonging to the original third instruction word 13. It is.
  • the instruction decoder 103 inputs the bit field Ll 1 as the first instruction word, the bit field L 21 as the second instruction word, the bit field L 31 as the third instruction word, and the information mode IW in the same cycle.
  • the first word L11 to third instruction word L31 input to the instruction decoder 103 are obtained by removing the bit fields L12 to L32 constituting the information node IW from the original first word II to third instruction word 13. It is also called a partial instruction word.
  • the instruction decoder 103 decomposes the information word IW into a bit field L12, a bit field L22, and a bit field L32.
  • the instruction decoder 103 combines the bit field L11 and the bit field L12 to restore the configuration of the original first instruction word II. Further, the instruction decoder 103 combines the bit field L21 and the bit field L22 to restore the configuration of the original second instruction word 12. Further, the instruction decoder 103 combines the bit field L31 and the bit field 322, and restores the configuration of the original third instruction word 13.
  • bit field L12 to the bit field L3 included in the information word IW. 2 is not necessarily present at the end of the original first instruction word II to the original third instruction word 13.
  • Bit field L12 to bit field L32 may be at the beginning, at the end, or at predetermined positions determined depending on the type of each instruction. Therefore, in the restoration, the bit field L12 to the bit field L32 are inserted at the head, the tail, or a predetermined position determined depending on the type of each instruction.
  • n is an integer of 2 or more
  • an information word composed of a part of bit fields belonging to a plurality of instruction words executed in the same cycle is decomposed, and the original configuration of each instruction word is determined.
  • the reconstructed configuration can reduce memory consumption without degrading instruction execution performance.
  • FIG. 2 is a block diagram showing the configuration of the second embodiment of the present invention.
  • the processor 100 includes an instruction path 101, an instruction supply unit 102, an instruction decoder 103, an instruction path 104, a control information path 105, A control information path 106, a control information path 107, an execution unit 108, an execution unit 109, and an execution unit 110 are included.
  • the instruction supply unit 102 is, for example, an instruction buffer, stores an instruction word and an information word, and stores a maximum of three instruction words and an information word in the same cycle via an instruction path 104. Output to 103.
  • the instruction supply unit 102 checks the information word identifier of each word, and if one or two instruction words are executed in the same cycle, and then there is an information word (on a memory not shown). Shift the information word to the end of one or two instruction words, insert an N OP instruction (No operation instruction; no operation instruction) between the instruction word and the information word, if necessary, and output To do.
  • N OP instruction No operation instruction; no operation instruction
  • the instruction decoder 103 restores the original instruction word and outputs control information corresponding to each instruction to the execution units 108 to 110 via the control information paths 105 to 107 based on the restoration result.
  • the control information is information that specifies an operation between operands, for example.
  • Execution unit 10 8 ⁇ : L 10 executes each instruction based on the control information in the same cycle.
  • FIG. 3 is a block diagram showing a configuration of instruction decoder 103 in FIG.
  • the instruction decoder 103 corresponds to the instruction word restoration unit 200, the individual instruction decoding unit 201 corresponding to the execution unit 108, the individual instruction decoding unit 202 corresponding to the execution unit 109, and the execution unit 110. Including an individual instruction decoding unit 203.
  • FIG. 4 is a block diagram showing a configuration of the instruction word restoration unit 200 of FIG.
  • the instruction word restoration unit 200 includes a decomposition unit 210 and a combining unit 211.
  • the decomposition unit 210 decomposes the information word into a plurality of bit fields.
  • Combining unit 211 combines a plurality of instruction words (excluding the bit field of the part constituting the original configuration capability information word of the instruction word) and the corresponding bit field decomposed by decomposition unit 210. By doing so, each instruction word is restored to the original configuration.
  • FIG. 5 is an explanatory diagram showing the format of the original instruction word.
  • the original instruction word 300 includes a basic field BF of Y [bits] and an extension field EF whose length is determined by the type of instruction.
  • the basic field BF includes an information word identifier 30 1 of 1 [bit], an operation code 304 of Q [bit] (operation code; indicating an instruction type), and an operand of Y—Q—1 [bit].
  • the extension field EF contains an excess operand of A [bit], B [bit], or C [bit] depending on the instruction type M, N, or O.
  • the extension field EF may include an immediate operand of E0 [bit], E1 [bit], or E2 [bit] determined by the instruction type M, N, O, or the like. Therefore, when an immediate operand is used, the word length of the original instruction word is Y + A + E0 [bit], Y + B + E1 [bit] for the instruction types M, N, and O, respectively. Bit], Y + C + E2 [bit]. If no immediate operand is used, the word length of the original instruction word is the instruction For types M, N, and O, they are Y + A [bit], Y + B [bit], and Y + C [bit], respectively.
  • the information word 302 includes a 1 [bit] information word identifier 303 and a free bit field (combination of extended fields EF of a plurality of instruction words executed in the same cycle as the original instruction word 300) FF.
  • each instruction uses an immediate operand can be specified by, for example, a bit pattern of a predetermined operand in the operand specifying bit field.
  • one of the operand bit patterns is a specific bit pattern such as all 1, for example, an instruction system that uses an immediate operand instead of specifying a register number is possible.
  • An instruction that uses an immediate operand is executed to use the immediate operand in its own instruction word.
  • FIG. 6A is an explanatory diagram showing an example of the format in the case where the information word 302 is only one excess operand that is one word and does not include an immediate operand.
  • FIG. 6B and FIG. 6C are explanatory diagrams showing examples of formats when the excess operand and the immediate operand are used across the information word 302 and the information word 305.
  • FIG. 6A is an explanatory diagram showing an example of the format in the case where the information word 302 is only one excess operand that is one word and does not include an immediate operand.
  • FIG. 6B and FIG. 6C are explanatory diagrams showing examples of formats when the excess operand and the immediate operand are used across the information word 302 and the information word 305.
  • FIG. 6A is an explanatory diagram showing an example of the format in the case where the information word 302 is only one excess operand that is one word and does not include an immediate operand.
  • FIG. 6B and FIG. 6C are explanatory diagrams showing examples of formats when the excess operand
  • information word 302 is right-justified and includes C [bit], B [bit], and A [bit] excess operands corresponding to instruction types 0, N, and M. .
  • the order of excess operands can be determined according to the order of instruction words output from the instruction supply unit 102.
  • the example in Fig. 6A shows the case where instruction codes are arranged in the order of type M at the beginning (left side), type N at the next (center), and type O at the end (right side). The same applies to the examples of FIGS. 6B and 6C described later.
  • information word 302 and information word 305 are right-justified and correspond to the instruction type O "excess operand of C [bit], immediate operand of E2 [bit]", instruction type "B [bit] excess operand, E1 [bit] immediate operand” corresponding to N, and "A [bit] excess operand, E1 [bit] immediate operand corresponding to instruction type M" "including.
  • an excess operand or an immediate operand of a certain original instruction can be divided into an information word 302 and an information word 305 and included.
  • information word 302 is right-justified and includes C [bit], B [bit], and A [bit] excess operands corresponding to instruction types 0, N, and M.
  • Information word 305 includes immediate operands of E2 [bit], El [bit], and EO [bit] corresponding to instruction types 0, N, and M. The above are examples and other formats are possible.
  • the second embodiment of the present invention is a case of an instruction system that executes three or more instructions in the same cycle without using an immediate value.
  • Y is always larger than the sum of the three A, B, and C.
  • the information word is shown in Fig. 6 (b).
  • FIG. 7 is an explanatory diagram showing the operation of the second exemplary embodiment of the present invention.
  • the fixed word length ⁇ type ⁇ instruction word 400, type ⁇ instruction word 401, type ⁇ instruction word 402, and information word 403 are Output through path 104.
  • the information word 403 is arranged at the end, that is, the right side of the instruction word 400 to the instruction word 402 will be described.
  • the instruction word restoring unit 200 of the instruction decoder 103 receives the instruction word 400 to the instruction word 402 and the information word 403, whether or not each word is an information word is determined by the information word identifier 303 of each word. Is determined.
  • the instruction word restoration unit 200 uses the contents of the free bit field FF to restore each original instruction word. If the word is an instruction word, the instruction code restoration unit 200 determines the type of instruction from the operation code 304. Next, the instruction word restoration unit 200 takes out an excess operand of the number of bits corresponding to the type of the free bit field FF force instruction of the information word 403 existing in the same cycle, if necessary, and selects an appropriate word of the instruction word. The original instruction word is restored by adding it to the location (at the end in Fig. 7).
  • the instruction word restoration unit 200 converts the three types of instruction words 400, 401, and instruction word 402, ⁇ , ⁇ , and ⁇ , into word lengths ⁇ + ⁇ [bit], ⁇ + ⁇ [bit], Y + C [bit] element To the original instruction word 405, the original instruction word 406, and the original instruction word 407.
  • the instruction word restoration unit 200 converts the restored original instruction word 405, the original instruction word 406, and the original instruction word 407 into the individual instruction decoding unit 201, the individual instruction decoding unit 202, and the individual instruction, respectively.
  • the data is output to the decoding unit 203.
  • the individual instruction decoding unit 201 to the individual instruction decoding unit 203 decode the original instruction word 405 to the original instruction word 407, respectively, and control information for executing each instruction to the control information path 105 to Output to execution unit 108 to execution unit 110 via control information path 107
  • an information word composed of a collection of super operands belonging to a plurality of instruction words executed in the same cycle is decomposed, and the original configuration of each instruction word is reproduced.
  • the processor 100 of the third embodiment of the present invention uses two information words and an immediate operand.
  • the configuration of the third embodiment of the present invention is the same as the configuration of FIGS. 2 and 3 of the second embodiment of the present invention.
  • three or more instructions using immediate values are executed in the same cycle.
  • FIG. 8 is an explanatory diagram showing the operation of the third exemplary embodiment of the present invention.
  • fixed word length Y type M instruction word 500 in the same cycle from instruction supply unit 102, fixed word length Y type M instruction word 500, type N instruction word 501, type O instruction word 502, information word 503, and information word 504 1S Output via instruction path 104.
  • the information word 503 and the information word 504 will be described in the case where they are arranged at the end, that is, on the right side of the instruction word 500 to the instruction word 502.
  • the instruction word restoration unit 200 of the instruction decoder 103 includes an instruction word 500 to an instruction word 502, When the information word 503 and the information word 504 are input, it is determined from the information word identifier 303 of each word whether each word force is an information word or a command word.
  • the instruction word restoration unit 200 uses the contents of the free bit field FF to restore each original instruction word. If the word is an instruction word, the instruction code restoration unit 200 determines the type of instruction from the operation code 304. Next, the instruction code restoration unit 200, if necessary, uses an information word 503 existing in the same cycle, an excess operand of the number of bits corresponding to the type of instruction from the free bit field FF of the information word 504, and an immediate value. The original instruction word is restored by taking out the operand and inserting it at the appropriate location (at the end in Fig. 8).
  • the instruction word restoration unit 200 converts the three types of instruction words 500, 501, and instruction word 502 of M, N, and O into word lengths Y + A + E0 [bit], Y + B + E1 respectively. Restore [Bit], Y + C + E2 [Bit] to the original instruction word 505, original instruction word 506, and original instruction word 507.
  • the instruction word restoration unit 200 converts the restored original instruction word 505, the original instruction word 506, and the original instruction word 507 into the individual instruction decoding unit 201, the individual instruction decoding unit 202, and the individual instruction, respectively.
  • the data is output to the decoding unit 203.
  • Individual instruction decoding unit 201 to individual instruction decoding unit 203 decode original instruction word 505 to original instruction word 507, respectively, and control information path 105 to control information for executing each instruction. Output to execution unit 108 to execution unit 110 via control information path 107
  • FIG. 9 is a flowchart showing the operation of the instruction word restoration unit 200.
  • instruction word restoration unit 200 of instruction decoder 103 inputs word group 800 in the same cycle (step Sl in FIG. 9).
  • the word group 800 includes instruction words executed in the same cycle and the necessary number of information words.
  • the word group 800 is Y [bit] X 5 [word].
  • Y is assumed to be a constant.
  • the instruction word restoring unit 200 is arranged at the end of the word group 800 and uses the fifth word (ie, information word) as the current word (step S 2).
  • the instruction word restoration unit 200 performs the processing from step S3 to step S6 on the current word.
  • the instruction word restoration unit 200 performs the processing from step S7 to step S8, updates the current word, and successively performs the processing from step S3 to step S6 for the previous word.
  • the instruction word restoration unit 200 can use the free bit field FF of the current word for processing the subsequent instruction word. Prepare to. That is, if the current word is the first information word, the instruction word restoration unit 200 sets the current position of the free bit field at the end of the free bit field FF. Further, if the current word is not the first information word, the instruction word restoration unit 200 adds the free bit field FF of the information word before the existing free bit field FF (step S10).
  • the instruction word restoration unit 200 determines that the current word is not an information word (step S3 / No), it determines the type of instruction word that is the current word (steps S4, S5, or S6).
  • the instruction word restoration unit 200 extracts a bit field (excess operand, immediate operand) having a bit length corresponding to the instruction type from the current position of the free bit field, and adds it to the end of the instruction word (current word). , Restore the instruction word (current word) to the original instruction word of its original word length.
  • the instruction word restoration unit 200 updates the current position of the free bit field so that it is shifted forward by the bit length of the extracted bit field (step Sl, S12, or SI 3). Through these operations, the instruction word length of each original instruction word is restored by the instruction word restoration unit 200.
  • the third embodiment of the present invention disassembles an information word composed of a super operand and an immediate operand belonging to a plurality of instruction words executed in the same cycle, By reconstructing the original structure of the instruction word, it is possible to increase the memory utilization efficiency and reduce the memory consumption without reducing the operation specification efficiency for the processor 100.
  • the microprocessor in this example executes an instruction system that includes binary instructions (type M), unary instructions (type N), and unary instructions (type O) that do not explicitly take operands.
  • the microprocessor in this example always executes three instructions in the same cycle.
  • the number of bits S of the information word identifier is 1 [bit]
  • the number of bits of the operation code OP is 7 [bits].
  • the number of registers that can be specified for the operand is 32, and the number of register-designated bits that specify each register REG is 5 [bits].
  • the number of specified registers for binary, unary, and unary instructions is 3 (2 sources and 1 destination), 2 (1 source and 1 destination), 1 (1 destination), and immediate field, respectively.
  • the number of required bits for IMM is assumed to be 1-16.
  • the instruction word length is determined with a general technique of using a single instruction word length (referred to as related technique 1) with emphasis on processor performance
  • the instruction word length is , 39 [bit] fixed word length to match the longest optimal word length binary instruction.
  • a processor based on a variable word length method that uses two types of word lengths, the basic word length and the doubled word length (referred to as Related Method 2, for example, [Reference 1])
  • the instruction word length is two word lengths of 29 [bits] of the basic word length and 58 [bits] that is twice that of the basic word length.
  • the maximum value of the sum of any three of A, B, and C is A + for all possible instruction issue patterns for the three types of instructions M, N, and O.
  • Table 1 shows the relationship between the instruction issue pattern and the number of bits that can be used as immediate operands in the first information word when mixed.
  • the second information word is not necessarily required. Why Depending on the issue pattern of the instruction, as shown in Table 1, there is an unused free bit field FF as an excess operand in the first information word, and the unused free bit field FF is an immediate value. This is because it can be used as an operand.
  • FIG. 10 is a block diagram showing a part of the configuration of the instruction word restoration unit 200 according to the specific example of the second embodiment of the present invention.
  • the instruction word restoration unit 200 includes a decoder 610, a decoder 611, a decoder 612, a selection signal 630, a selection signal 631, a selection signal 632, a selection circuit 620, a selection circuit 621, and a selection circuit 622.
  • the decoder 612 decodes the operation code of the third instruction word 602 and outputs a selection signal 632 for selecting an excess operand of the third instruction word 602.
  • the decoder 611 decodes the operation codes of the second instruction word 601 and the third instruction word 602, and outputs a selection signal 631 for selecting an excess operand of the second instruction word 601.
  • the decoder 610 decodes the opcodes of the first instruction word 600, the second instruction word 601 and the third instruction word 602, and selects the selection signal 630 for selecting the excess operand of the first instruction word 600. Output.
  • the decoder 612 selects A [bit], B [bit], and C [bit] from the end of the information word 603, respectively.
  • the selection signal 632 is output as follows. Also, for example, if the third instruction is of type O and the second instruction is of type N, the decoder 611 changes B [bit] from the position shifted before the last tail C [bit] of the information word 603. The selection signal 631 is output so as to select.
  • the decoder 610 also sets the last power of the information word 603 to B + C [bit] Select signal 630 is output so that A [bit] is selected from the position deviated before.
  • Selection circuit 620 (18-way), selection circuit 621 (9-way), and selection circuit 622 (3-way) follow information word 603 according to selection signal 630, selection signal 631, and selection signal 632, respectively. Force Selects and outputs the excess operands of the first instruction word 600, second instruction word 601, and third instruction word 602.
  • the processor 100 can be configured in a microprogram control system. That is, when the processor 100 operates according to the instruction control program, the functions of the instruction supply unit 102, the instruction decoder 103, and the execution units 108 to 110 described above are performed. Can be realized.
  • This instruction control program can be provided in a state of being recorded on a machine-readable recording medium such as an optical disk or a magnetic disk.
  • n instructions When n instructions are executed in the same cycle, the first,..., The nth decoder, the first,..., The i,. An nth selection circuit is required.
  • the i-th decoder inputs the opcodes of the i-th, i + 1-th,..., And n-th instructions, and selects an excess operand or an immediate operand corresponding to the i-th instruction word. Outputs the i-th selection signal.
  • the i-th selection circuit selects an excess operand or an immediate operand corresponding to the i-th instruction in accordance with the i-th selection signal.
  • the present invention is implemented in combination with the variable word length instruction method as the related method 2.
  • the word length of the information word can be set to the basic word length if necessary, or it can be set to another integer multiple of the prepared word length, so that the program memory consumption can be further reduced.
  • the minimum word length is Z [bits] and the variable word length method has two types of word lengths
  • the word length Y of the information word in FIG. 9 is Z [bits] per cycle. Or 2Z [bit].
  • the processor 100 of the above-described embodiment allows the information word formed by collecting a part of bit fields belonging to a plurality of instruction words executed in the same cycle to be decomposed at the time of execution.
  • An instruction decoder 103 is included that restores the original structure of the instruction word. Specifically, the instruction decoder 103 restores each instruction word by taking out the bit field of information word power and inserting these bit fields into the respective predetermined bit positions of each instruction word. More specifically, the instruction decoder 103 extracts bit fields from the information word and inserts these bit fields at the beginning or end of each instruction word or at a predetermined position determined depending on the respective opcode. By doing so, each instruction word is restored.
  • Processor 100 outputs a plurality of instruction words and information words in the same cycle, and decodes each restored instruction word and executes each instruction word. It includes an instruction decoder 103 that outputs control information, and one or more execution units 108 to 110 that execute each instruction based on the control information.
  • the instruction supply unit 102 is the maximum number of instructions executed in the same cycle, and when there are information words next to n [pieces] instruction words, information at the end of the n [pieces] instructions. If a word is placed and output, and there are information words next to m [pieces] less than n [pieces], then n—m [pieces] of NOP instructions follow n [pieces] of instruction words. You can insert it in!
  • the partial power of the bit field collected as the information word may be an excess operand of a length determined by the type of the instruction word or an immediate operand.
  • the instruction decoder 103 inputs the operation codes of the i-th, i + l,..., And n-th instructions, and selects an excess operand or an immediate operand corresponding to the i-th instruction word.
  • I-th decoder 610 to 612 for outputting the i-th selection signal, and the corresponding position force of the information word according to the i-th selection signal, the excess operand or the immediate operand corresponding to the i-th instruction The i-th selection circuit 620 to 622 may be selected.
  • the present invention is a high-performance processor capable of reducing the number of bits of program memory while maintaining the performance and capable of issuing a plurality of instructions in a single cycle, for example, a VLIW (Very Long Instruction Word) type processor. Applicable to realization.
  • VLIW Very Long Instruction Word

Abstract

 元の第1命令ワード(I1)~元の第3命令ワード(I3)の構成は、ビットフィールド(L11)とビットフィールド(L12)~ビットフィールド(L31)とビットフィールド(L32)である。情報ワード(IW)の構成は、同一サイクルで実行される複数の命令ワードに属するビットフィールドの一部が集められたものであり、元の第1命令ワード(Il)のビットフィールド(L12)~元の第3命令ワード(I3)のビットフィールド(L32)である。プロセッサ(100)の命令デコーダ(103)は、情報ワード(IW)を分解し、ビットフィールド(L11)~ビットフィールド(L31)とビットフィールド(Ll2)~ビットフィールド(L32)とをそれぞれ結合することにより、元の第1命令ワード(I1)~元の第3命令ワード(I3)の構成を復元する。これにより、命令実行性能を低下させずに、メモリの消費量を削減することができる。

Description

明 細 書
プロセッサ、および、命令制御方法
技術分野
[0001] 本願は、 2006年 6月 15日に出願された日本出願特願 2006— 166077号を基礎 とする優先権を主張し、その日本出願の開示は参照によりすベてここに取り込まれる
[0002] 本発明は、プロセッサ、および、命令制御方法に関し、特に、命令実行性能を低下 させずにメモリの消費量を削減できるプロセッサ、および、命令制御方法に関する。 背景技術
[0003] サイクル毎に 1つ以上の命令ワードをプログラムメモリからフェッチして実行するプロ グラマブル 'プロセッサにおいて、貴重なプログラムメモリ資源の利用効率を高めるた めには通常、固定した命令語長を用いる必要がある。一方、一般に個々の命令は、 そのプロセッサに対する動作指定の内容に依存して必要なビット数 Xは異なる。
[0004] 一般的には、オペコードのビット数を A [ビット]、オペランドに指定可能なレジスタの 数を表現するために必要なビット数を B [ビット]、指定が必要なレジスタ数を C、そし て、命令の動作を修飾するフラグのビット数を D [ビット]、即値フィールドのビット数を E [ビット]とすると、命令の語長 X=A + B X C + D + E [ビット]とした場合に、もっとも 効率的にプロセッサ動作の指定が可能である。しかし、たとえば、 2項演算と単項演 算とでは、前者の方が、 Cが 1だけ大きいように、通常は、命令毎あるいは命令の種 類毎に、それに最適な語長 Xは異なる。
[0005] そのため、 1種類の固定した命令語長 Yだけでは、ある命令について、 X<Yの場 合は、本来不要なスペースがその命令ワード内に発生し、プログラムメモリの利用効 率が悪くなる。また、ある命令について、 Χ>Υの場合は、 Xを Υに合わせるために、 命令ビット数を削減しなければならず、プロセッサに対するその命令の動作指定効率 が落ちる。そこで、所定の基本語長を設けた上、その整数倍の命令語長を複数同時 に採用する形の可変語長のプログラマブル'プロセッサ力 たとえば特開平 8— 9578 3号公報 (文献 1)に開示されている。 [0006] その場合、より多くのビット数を消費する命令には倍の語長を割り当て、そうでない 命令には基本語長を割り当てる、といった形での命令セット設計が可能となる。した 力 Sつて、プログラムメモリスペースに隙間が生じないという固定命令語長の利点を損 なわないまま、ある程度にプログラムメモリの利用効率を改善し、かつ、個々の命令設 計における自由度を上げ、高性能なプロセッサをより実現しやすくするといつた利点 がある。
[0007] また、語長の種類を増やすのではなぐ即値フィールドの長さに対する命令毎の要 求の相違が大きいことに着目して、即値フィールドの拡張を指定する専用命令を有 する VLIW型プロセッサの技術力、たとえば特開平 5— 150979号公報 (文献 2)に開 示されている。
発明の開示
発明が解決しょうとする課題
[0008] 文献 1に開示されて 、る関連技術のように、命令語長を、所定の基本語長 Yの整数 倍 n XY(n= l、 2、 ···)に設定する場合では、命令毎あるいは命令の種類毎の最適 語長 Xと基本語長のある整数倍との間で違いがあることは避けられず、以下の問題点 がある。
[0009] すなわち、 Xより小さい η ΧΥのうち、 Xにもつとも語長が近い i XYを、ある種類の命 令の語長として選択した場合は、 Xと iXYとの差の X— (iXY)ビット数分だけ、 Xのビ ット数を削減することになり、プロセッサに対する動作指定効率が低下する (すなわち 、命令実行性能が低下する)。
[0010] また、 Xより大きい n X Yのうち、 Xにもつとも語長が近い j X Yを、上記命令の語長と して選択した場合は、今度は、 (j XY)—Xビット数分だけ、余分にメモリ領域が消費 されることになりプログラムメモリ利用効率が低下する(すなわち、メモリの消費量が増 加する)。
[0011] また、文献 2に開示されている他の関連技術のように、即値フィールドのみを同サイ クルの別の 1ワードの専用命令によって拡張できるようにした場合も、 1倍長、および、 2倍長の 2種類の命令語長を有する文献 1の可変長型の一種である。したがって、や はり、上記の問題点を持つ。 [0012] 本発明の目的は、上記関連技術の課題である命令実行性能を低下させずにメモリ の消費量を削減するプロセッサ、および、命令制御方法を提供することである。
課題を解決するための手段
[0013] 本発明のプロセッサは、同一サイクルで実行される複数の命令ワードに属するビット フィールドの一部が集められて構成される情報ワードを実行時に分解し、各命令ヮー ドを元の構成に復元することを特徴とする。
[0014] 本発明の命令制御方法は、プロセッサで、同一サイクルで実行される複数の命令ヮ ードに属するビットフィールドの一部が集められて構成される情報ワードを実行時に 分解し、各命令ワードを元の構成に復元するステップを備えることを特徴とする。 発明の効果
[0015] 本発明の効果は、命令実行性能の低下させずにメモリの消費量を削減できることで ある。
[0016] その理由は、プロセッサが、同一サイクルで実行される複数の命令ワードに属する ビットフィールドの一部が集められて構成される情報ワードを実行時に分解し、各命 令ワードを元の構成に復元する構成をとるからである。
図面の簡単な説明
[0017] [図 1]図 1は、本発明の第 1の実施例の構成を示すブロック図である。
[図 2]図 2は、本発明の第 2の実施例の構成を示すブロック図である。
[図 3]図 3は、図 2の命令デコーダの構成を示すブロック図である。
[図 4]図 4は、図 3の命令ワード復元部の構成を示すブロック図である。
[図 5]図 5は、元の命令ワードのフォーマットを示す説明図である。
[図 6A- 6C]図 6A—図 6Cは、情報ワードのフォーマットの例を示す説明図である。
[図 7]図 7は、本発明の第 2の実施例の動作を示す説明図である。
[図 8]図 8は、本発明の第 3の実施例の動作を示す説明図である。
[図 9]図 9は、命令ワード復元部の動作を示すフローチャートである。
[図 10]図 10は、本発明の第 2の実施例の具体例の命令ワード復元部の一部の構成 を示すブロック図である。 発明を実施するための最良の形態
[0018] 次に、本発明の第 1の実施例について図面を参照して詳細に説明する。図 1は、本 発明の第 1の実施例の構成を示すブロック図である。図 1を参照すると、本発明の第 1の実施例のプロセッサ 100は、同一サイクル(たとえば、同一パイプラインステージ) で実行される複数の命令ワードに属するビットフィールドの一部が集まって構成され る情報ワードを分解し、各命令ワードの元の構成を再現する命令デコーダ 103を含 む。
[0019] 元の第 1命令ワード IIの構成は、ビットフィールド L11とビットフィールド L12とである 。元の第 2命令ワード 12の構成は、ビットフィールド L21とビットフィールド L22とである 。元の第 3命令ワード 13の構成は、ビットフィールド L31とビットフィールド L32とである
[0020] 情報ワード IWの構成は、元の第 1命令ワード IIに属するビットフィールド L12と、元 の第 2命令ワード 12に属するビットフィールド L22と、元の第 3命令ワード 13に属する ビットフィールド L32とである。
[0021] 命令デコーダ 103は、第 1命令ワードとしてビットフィールド Ll l、第 2命令ワードとし てビットフィールド L21、第 3命令ワードとしてビットフィールド L31、および、情報ヮー ド IWを同一サイクルに入力する。命令デコーダ 103に入力される第 1ワード L11〜第 3命令ワード L31は、それぞれの元の第 1ワード II〜第 3命令ワード 13から、情報ヮー ド IWを構成するビットフィールド L12〜L32が除かれたものであり、部分命令ワードと も呼ぶ。
[0022] 次に、命令デコーダ 103は、情報ワード IWを、ビットフィールド L12と、ビットフィー ルド L22と、ビットフィールド L32とに分解する。
[0023] 次に、命令デコーダ 103は、ビットフィールド L11とビットフィールド L12とを結合し、 元の第 1命令ワード IIの構成を復元する。さらに、命令デコーダ 103は、ビットフィー ルド L21とビットフィールド L22とを結合し、元の第 2命令ワード 12の構成を復元する。 さらに、命令デコーダ 103は、ビットフィールド L31とビットフィールド 322とを結合し、 元の第 3命令ワード 13の構成を復元する。
[0024] 以上にお!、て、情報ワード IWに含まれるビットフィールド L12〜ビットフィールド L3 2は、元の第 1命令ワード II〜元の第 3命令ワード 13の最後尾に存在するとは、限ら ない。ビットフィールド L12〜ビットフィールド L32は、先頭でも、末尾、あるいは、それ ぞれの命令の種類に依存して決まる所定位置でよい。したがって、復元においては、 ビットフィールド L12〜ビットフィールド L32は、先頭、末尾、あるいは、それぞれの命 令の種類に依存して決まる所定位置に挿入される。
[0025] 以上において、 3命令ワードの場合について説明した力 本発明の第 1の実施例は 、 n(nは、 2以上の整数)命令ワードについて適用可能である。
[0026] 本発明の第 1の実施例は、同一サイクルで実行される複数の命令ワードに属するビ ットフィールドの一部が集まって構成される情報ワードを分解し、各命令ワードの元の 構成を再現する構成により、命令実行性能の低下させずにメモリの消費量を削減で きる。
[0027] 次に、本発明の第 2の実施例について図面を参照して詳細に説明する。本発明の 第 2の実施例のプロセッサは、最大 3命令を同一サイクルに実行可能であり、かつ、 3 種類の命令語長を持つ命令 (正確には、元の命令)を実行可能である。図 2は、本発 明の第 2の実施例の構成を示すブロック図である。
[0028] 図 2を参照すると、本発明の第 2の実施例のプロセッサ 100は、命令パス 101と、命 令供給部 102と、命令デコーダ 103と、命令パス 104と、制御情報パス 105と、制御 情報パス 106と、制御情報パス 107と、実行部 108と、実行部 109と、実行部 110とを 含む。
[0029] 命令供給部 102は、たとえば、命令バッファであり、命令ワード、および、情報ワード を格納し、最大、 3命令ワード、および、情報ワードを同一サイクルで、命令パス 104 を介して命令デコーダ 103に出力する。たとえば、命令供給部 102は、各ワードの情 報ワード識別子を調べ、同一サイクルで実行される命令ワードが 1または 2個であり、 その次に、情報ワードがある(図示しないメモリ上に)場合、 1または 2個の命令ワード の最後尾に情報ワードをシフトし、命令ワードと情報ワードとの間に、必要に応じて N OP命令 (No operation 命令;無操作命令)を挿入して、出力する。
[0030] 同一サイクルで実行される最大命令数力 ¾(nは、 1以上の整数)であり、 n [個]の命 令ワードの次に情報ワードがある場合には、命令供給部 102は、 n [個]の命令ワード の最後尾に情報ワードを配置して出力する。また、 n [個]に満たない m [個] (mは、 1 以上の整数)の命令ワードの次に情報ワードがある場合には、 n— m [個]の NOP命 令を m [個]の命令ワードの次に挿入する。
[0031] 命令デコーダ 103は、元の命令ワードの復元を行い、復元結果に基づいて、各命 令対応の制御情報を制御情報パス 105〜107を介して実行部 108〜110に出力す る。制御情報は、たとえば、オペランド同士の演算を指定する情報である。実行部 10 8〜: L 10は、同一サイクルで、制御情報に基づいて各命令の実行を行う。
[0032] 図 3は、図 2の命令デコーダ 103の構成を示すブロック図である。図 3を参照すると 、命令デコーダ 103は、命令ワード復元部 200、実行部 108に対応する個別命令デ コード部 201、実行部 109に対応する個別命令デコード部 202、および、実行部 11 0に対応する個別命令デコード部 203を含む。
[0033] 図 4は、図 3の命令ワード復元部 200の構成を示すブロック図である。図 4を参照す ると、命令ワード復元部 200は、分解部 210、および、結合部 211を含む。分解部 21 0は、情報ワードを複数のビットフィールドに分解する。結合部 211は、複数の命令ヮ ード (命令ワードの元の構成力 情報ワードを構成する部分のビットフィールドを除 ヽ たもの)と、分解部 210により分解された対応するビットフィールドとを結合することに より、各命令ワードを元の構成に復元する。
[0034] 図 5は、元の命令ワードのフォーマットを示す説明図である。図 5を参照すると、元の 命令ワード 300は、 Y [ビット]の基本フィールド BFと、命令の種類により長さが決まる 拡張フィールド EFとを含む。基本フィールド BFは、 1 [ビット]の情報ワード識別子 30 3、 Q [ビット]のオペコード 304 (オペレーションコード;命令の種類を示す)、および、 Y— Q— 1 [ビット]のオペランドを含む。拡張フィールド EFは、命令の種類 M、 N、 O により決まる A [ビット]、 B [ビット]、または、 C [ビット]の超過オペランドを含む。
[0035] また、さらに、拡張フィールド EFは、命令の種類 M、 N、 O等により決まる E0 [ビット] 、 E1 [ビット]、または、 E2 [ビット]の即値オペランドを含むことが可能である。したが つて、即値オペランドを使用する場合には、元の命令ワードの語長は、命令の種類 M 、 N、 Oに対し、それぞれ、 Y+A + E0 [ビット]、 Y+B + E1 [ビット]、 Y+C + E2 [ビ ット]である。即値オペランドを使用しない場合には、元の命令ワードの語長は、命令 の種類 M、 N、 Oに対し、それぞれ、 Y+A [ビット]、 Y+B [ビット]、 Y+C [ビット]で ある。
[0036] 元の命令ワード 300の Y [ビット]の基本フィールド BFの部分力 命令ワード 301とし て独立する。また、拡張フィールド EFの部分は情報ワード 302に含まれる。情報ヮー ド 302は、 1 [ビット]の情報ワード識別子 303、および、フリービットフィールド(元の命 令ワード 300と同一サイクルで実行される複数の命令ワードの拡張フィールド EFの 結合) FFを含む。
[0037] なお、個々の命令が即値オペランドを使用するかどうかは、たとえば、オペランド指 定ビットフィールド内の所定オペランドのビットパタンで指定可能である。すなわち、ォ ぺランドのビットパタンの一つが例えばオール 1のような特定のビットパタンである場 合に、レジスタ番号指定ではなく即値オペランドを使用する命令であると 、う命令体 系が可能である。即値オペランドを使用する命令は、自命令ワード内に即値オペラン ドを使用するように実行される。
[0038] 次に、情報ワード 302のフォーマットについて図面を参照して説明する。図 6Aは、 情報ワード 302が、 1ワードであり、かつ、即値オペランドが含まれない超過オペラン ドのみの場合の、フォーマットの例を示す説明図である。図 6B、図 6Cは、情報ワード 302、情報ワード 305の 2つにわたって、超過オペランド、および、即値オペランドが 使用される場合の、フォーマットの例を示す説明図である。
[0039] 図 6Aを参照すると、情報ワード 302は、右詰で、命令の種類 0、 N、 Mに対応する C [ビット]、 B [ビット]、および、 A [ビット]の超過オペランドを含む。なお、超過オペラ ンドの順番は、命令供給部 102から出力される命令ワードの順番にしたがって決める ことができる。図 6Aの例は、命令コードが、最初 (左側)に種類 M、次(中央)に種類 N、最後(右側)に種類 Oの順番に配置される場合を示している。後述する図 6Bおよ び図 6Cの例も同様である。
[0040] 図 6Bを参照すると、情報ワード 302、情報ワード 305は、右詰めで、命令の種類 O に対応する「C [ビット]の超過オペランド、 E2 [ビット]の即値オペランド」、命令の種類 Nに対応する「B [ビット]の超過オペランド、 E1 [ビット]の即値オペランド」、および、 命令の種類 Mに対応する「A [ビット]の超過オペランド、 E1 [ビット]の即値オペランド 」を含む。
[0041] ここで、ある 1つ元の命令の超過オペランド、または、即値オペランドが、情報ワード 302、情報ワード 305に分割されて含まれることが可能である。
[0042] 図 6Cを参照すると、情報ワード 302は、右詰で、命令の種類 0、 N、 Mに対応する C [ビット]、 B [ビット]、および、 A [ビット]の超過オペランドを含む。情報ワード 305は 、命令の種類 0、 N、 Mに対応する E2 [ビット]、 El [ビット]、 EO [ビット]の即値オペラ ンドを含む。以上は、例であり、他のフォーマットが可能である。
[0043] 次に、本発明の第 2の実施例の動作について図面を参照して説明する。本発明の 第 2の実施例は、即値を利用しな 、3命令以上を同一サイクルで実行する命令体系 の場合である。また、説明を簡単にするために、 A、 B、 Cの 3つの合計よりも常に Yは 大きい場合について説明する。情報ワードは、図 6Αの場合である。
[0044] 図 7は、本発明の第 2の実施例の動作を示す説明図である。図 7を参照すると、命 令供給部 102から同サイクルで、固定語長 Υの種類 Μの命令ワード 400、種類 Νの 命令ワード 401、種類 Οの命令ワード 402、および、情報ワード 403が、命令パス 104 を介して出力される。説明を簡単にするために、情報ワード 403は、最後尾、すなわ ち、命令ワード 400〜命令ワード 402の右側に配置される場合について説明する。
[0045] 命令デコーダ 103の命令ワード復元部 200は、命令ワード 400〜命令ワード 402、 情報ワード 403を入力すると、各ワードの情報ワード識別子 303により各ワードが、情 報ワードであるのか、命令ワードであるのかを判別する。
[0046] ワードが情報ワードであれば、命令ワード復元部 200は、フリービットフィールド FF の内容を元の各命令ワードの復元に使用する。ワードが命令ワードであれば、命令ヮ ード復元部 200は、そのオペコード 304から命令の種類を判別する。次に、命令ヮー ド復元部 200は、必要に応じ、同一サイクルに存在する情報ワード 403のフリービット フィールド FF力 命令の種類に応じたビット数の超過オペランドを取り出し、当該命 令ワードの適当な箇所(図 7では末尾)に付加することにより元の命令ワードを復元す る。
[0047] すなわち、命令ワード復元部 200は、 Μ、 Ν、 Οの 3種類の命令ワード 400、 401、 命令ワード 402を、それぞれ、語長 Υ+Α [ビット]、 Υ+Β [ビット]、 Y+C [ビット]の元 の命令ワード 405、元の命令ワード 406、元の命令ワード 407に復元する。次に、命 令ワード復元部 200は、復元した元の命令ワード 405、元の命令ワード 406、元の命 令ワード 407を、それぞれ、個別命令デコード部 201、個別命令デコード部 202、個 別命令デコード部 203へ出力する。
[0048] 個別命令デコード部 201〜個別命令デコード部 203は、それぞれ、元の命令ヮー ド 405〜元の命令ワード 407をデコードし、各命令を実行するための制御情報を制 御情報パス 105〜制御情報パス 107を介して実行部 108〜実行部 110に出力する
[0049] 本発明の第 2の実施例は、同一サイクルで実行される複数の命令ワードに属する超 過オペランドが集まって構成される情報ワードを分解し、各命令ワードの元の構成を 再現する構成により、プロセッサ 100に対する動作指定効率を低下させずに、メモリ の利用率効率を高め、メモリの消費量を削減できる。
[0050] 次に、本発明の第 3の実施例について図面を参照して詳細に説明する。本発明の 第 3の実施例のプロセッサ 100は、本発明の第 2の実施例とは異なり、 2つの情報ヮ ードを使用し、即値オペランドを使用する。本発明の第 3の実施例の構成は、本発明 の第 2の実施例の図 2、図 3の構成と同一である。本発明の第 3の実施例は、即値を 利用する 3命令以上を同一サイクルで実行する。
[0051] 次に、本発明の第 3の実施例の動作について図面を参照して説明する。説明を簡 単にするために、 Yは、常に、 A、 B、 C、 E0、 El、および、 E2のいずれか 3つの合計 よりも大きぐかつ、いずれか 4つの合計よりも小さい場合について説明する。情報ヮ ードは、図 6Bの場合である。
[0052] 図 8は、本発明の第 3の実施例の動作を示す説明図である。図 8を参照すると、命 令供給部 102から同サイクルで、固定語長 Yの種類 Mの命令ワード 500、種類 Nの 命令ワード 501、種類 Oの命令ワード 502、情報ワード 503、および、情報ワード 504 1S 命令パス 104を介して出力される。説明を簡単にするために、情報ワード 503、 情報ワード 504は、最後尾、すなわち、命令ワード 500〜命令ワード 502の右側に配 置される場合にっ ヽて説明する。
[0053] 命令デコーダ 103の命令ワード復元部 200は、命令ワード 500〜命令ワード 502、 情報ワード 503、情報ワード 504を入力すると、各ワードの情報ワード識別子 303に より各ワード力 情報ワードであるの力、命令ワードであるのかを判別する。
[0054] ワードが情報ワードであれば、命令ワード復元部 200は、フリービットフィールド FF の内容を元の各命令ワードの復元に使用する。ワードが命令ワードであれば、命令ヮ ード復元部 200は、そのオペコード 304から命令の種類を判別する。次に、命令ヮー ド復元部 200は、必要に応じ、同一サイクルに存在する情報ワード 503、および、情 報ワード 504のフリービットフィールド FFから命令の種類に応じたビット数の超過オペ ランド、即値オペランドを取り出し、当該命令ワードの適当な箇所(図 8では末尾)に 挿入することにより元の命令ワードを復元する。
[0055] すなわち、命令ワード復元部 200は、 M、 N、 Oの 3種類の命令ワード 500、 501、 命令ワード 502を、それぞれ、語長 Y+A+E0 [ビット]、 Y+B+E1 [ビット]、 Y+C +E2 [ビット]の元の命令ワード 505、元の命令ワード 506、元の命令ワード 507に復 元する。次に、命令ワード復元部 200は、復元した元の命令ワード 505、元の命令ヮ ード 506、元の命令ワード 507を、それぞれ、個別命令デコード部 201、個別命令デ コード部 202、個別命令デコード部 203へ出力する。
[0056] 個別命令デコード部 201〜個別命令デコード部 203は、それぞれ、元の命令ヮー ド 505〜元の命令ワード 507をデコードし、各命令を実行するための制御情報を制 御情報パス 105〜制御情報パス 107を介して実行部 108〜実行部 110に出力する
[0057] 次に、本発明の第 3の実施例の動作について、さらに詳細に説明する。なお、 M、 N、 Oの各種類の命令が常に情報ワードを必要とし、情報ワードはサイクル毎に必ず 一つ以上存在する場合につ!ヽて説明する。
[0058] たとえば、 1個以上の情報ワードをサイクル毎に実行されるワード群 800の最後尾( 右側)に配置すれば、同一サイクルに実行される命令かどうかを区切るためにも情報 ワードを利用できる。したがって、同一サイクルで、 3に満たない命令数の命令ワード を実行する場合でも、別途命令ワード内に、当該サイクルでの実行命令数を表現す る専用ビットフィールドを設ける必要がない。そこで、以下では、情報ワードを常にサ イタル毎に実行される命令群の最後尾に配置した場合について説明する。 [0059] 図 9は命令ワード復元部 200の動作を示すフローチャートである。図 9を参照すると 、命令デコーダ 103の命令ワード復元部 200は、同一サイクルで、ワード群 800を入 力する(図 9ステップ Sl)。ワード群 800は、同一サイクルで実行される命令ワード、お よび、必要数だけの情報ワード力もなる。ここでは、ワード群 800は、 Y [ビット] X 5 [ヮ ード]であるとする。また、説明を簡単にするために Yは定数であるとする。
[0060] 次に、命令ワード復元部 200は、ワード群 800の最後尾に配置されて 、る第 5ヮー ド (すなわち、情報ワード)を現ワードとする (ステップ S2)。次に、命令ワード復元部 2 00は、現ワードに対してステップ S3〜ステップ S6の処理を行う。
[0061] 命令ワード復元部 200は、次に、ステップ S7〜ステップ S8の処理を行い、現ワード を更新し、次々と、前の方のワードを対象にステップ S3〜ステップ S6の処理を行う。
[0062] 命令ワード復元部 200は、情報ワード識別子 303により、現ワードが情報ワードであ ると判別すると (ステップ S3ZYes)、現ワードのフリービットフィールド FFを後続する 命令ワードの処理に利用できるように準備する。すなわち、命令ワード復元部 200は 、現ワードが最初の情報ワードならば、そのフリービットフィールド FFの最後尾に、フ リービットフィールド現在位置を設定する。また、命令ワード復元部 200は、現ワード が最初でない情報ワードならば、既存のフリービットフィールド FFの前に、その情報 ワードのフリービットフィールド FFを追加する(ステップ S 10)。
[0063] 命令ワード復元部 200は、現ワードが情報ワードでな 、と判別すると (ステップ S3/ No)、現ワードである命令ワードの種類を判別する(ステップ S4、 S5、または、 S6)。 命令ワード復元部 200は、フリービットフィールド現在位置から、命令の種類に対応 するビット長のビットフィールド (超過オペランド、即値オペランド)を取り出し、命令ヮ ード(現ワード)の末尾に追カ卩し、命令ワード (現ワード)をその本来の語長の元の命 令ワードに復元する。また、命令ワード復元部 200は、フリービットフィールド現在位 置を取り出したビットフィールドのビット長だけ前にシフトするように更新する (ステップ Sl l、 S12、または、 SI 3)。これらの動作により、元の各命令ワードの命令語長が命 令ワード復元部 200によって復元される。
[0064] 本発明の第 3の実施例は、同一サイクルで実行される複数の命令ワードに属する超 過オペランド、および、即値オペランドが集まって構成される情報ワードを分解し、各 命令ワードの元の構成を再現する構成により、プロセッサ 100に対する動作指定効 率を低下させずに、メモリの利用率効率を高め、メモリの消費量を削減できる。
[0065] 次に、本発明の第 1、第 2、または第 3の実施例の具体例について説明する。本具 体例のマイクロプロセッサは、 2項命令 (種類 M)、単項命令 (種類 N)、および、明示 的にオペランドを取らな ヽ無項命令 (種類 O)を含む命令体系を実行する。本具体例 のマイクロプロセッサは、常時、 3命令を同一サイクルで実行する。
[0066] 情報ワード識別子のビット数 Sが 1 [ビット]、オペコードのビット数 OPが 7 [ビット]で ある。また、オペランドに指定可能なレジスタ数が 32個であり、各レジスタを指定する レジスタ指定のビット数 REGは、 5 [ビット]である。以下、 2項命令、単項命令、無項 命令の指定レジスタ数がそれぞれ 3 (ソース 2つとデスティネーション 1つ)、 2 (ソース 1 つとデスティネーション 1つ)、 1(デスティネーション 1つ)、即値フィールドの必要ビッ ト数 IMMを 1〜16とした場合について説明する。
[0067] 即値オペランドを使用しな 、ケースでは、 2項命令 (種類 M)、単項命令 (種類 N)、 および、無項命令 (種類 O)の最適命令語長は、それぞれ、 S + OP+REGX3 = l + 7 + 5X3 = 23 [ビット]、 S + OP+REGX2=l + 7 + 5X2=18 [ビット]、および 、 S + OP+REGX 1 = 1 + 7 + 5X1 = 13 [ビット]である。
[0068] また、即値オペランドを使用するケースでは、 2項命令 (種類 M)、単項命令 (種類 N )、および、無項命令 (種類 O)の最適命令語長は、それぞれ、 S + OP+REGX3 + IMM= 1 + 7 + 5X3 + 16 = 39 [ビット]、 S + OP+REGX2+IMM=l + 7 + 5X 2+16 = 34 [ビット]、および、 S + OP+REGXl+IMM= 1 + 7 + 5X1 + 16 = 29 [ビット]である。
[0069] この条件下で、単一命令語長を用いるという一般的な手法(関連手法 1と呼ぶ)で、 プロセッサ性能を重視して命令語長が決定される場合には、命令語長は、最も長い 最適語長の 2項命令に合わせるように 39 [ビット]固定語長である。また、基本語長、 および、その倍の語長の 2種類の語長を用いるという可変語長方式に基づく関連手 法 (関連手法 2と呼ぶ。たとえば、 [文献 1])で、プロセッサ性能を重視し命令語長が 決定される場合には、命令語長は、基本語長の 29 [ビット]およびその倍の 58 [ビット ]の 2種類の語長である。 [0070] これに対し、本発明の具体例では、たとえば、固定語長 Y= 18 [ビット]とすると、下 記のようになる。即値オペランドを使用しない場合(図 7に対応)では、 2項命令 (種類 Μ、上記より 23 [ビット])の超過オペランドのビット数 Α、単項命令 (種類 Ν、上記より 1 8 [ビット])の超過オペランドのビット数 Β、および、無項命令 (種類 0、上記より 13 [ビ ット])の超過オペランドのビット数 Cは、それぞれ、 Α= 23— 18 = 5 [ビット]、 Β= 18 — 18 = 0 [ビット]、 C = 0 [ビット] (18 > 13なので)とすればよい。即値オペランドを参 照する場合(図 8に対応)では、 A、 B、 Cに加え、さらに、 EO、 El、 E2を最大 16 [ビッ ト]とすればよい。
[0071] その際、 M、 N、 Oの 3種類の命令に関する全てのあり得る命令発行パタンにお!ヽ て、 A、 B、 Cのうちの任意の 3つの合計の最大値は、 A+A+A= 5 + 5 + 5 = 15 [ビ ット]である。この最大値 15 [ビット]は、固定語長 Y— 1 = 18— 1 = 17 [ビット]よりも小 さいので、即値オペランドを使用しない命令の場合は、常時、 1ワード分の情報ワード のみをサイクル毎に発行すればょ 、。
[0072] 次に、即値オペランドを使用する命令と、即値オペランドを使用しない命令とが混 在する(すなわち、図 7と図 8との状況が混在する)場合について説明する。表 1は、 混在の場合の命令発行パタンと 1ワード目の情報ワード内で即値オペランドとして利 用可能なビット数との関係を示す表である。
[0073] [表 1]
Figure imgf000015_0001
[0074] 混在の場合、必ずしも、 2ワード目の情報ワードが必要となるわけではな 、。なぜな らば、命令の発行パタンによっては、表 1に示すように、 1ワード目の情報ワード内に 超過オペランドとして未使用のフリービットフィールド FFが存在し、その未使用のフリ 一ビットフィールド FFが即値オペランドに利用できるからである。
[0075] すなわち、それらの未使用のフリービットフィールド FF力 命令に必要な即値オペ ランドのビット数以内であれば、新たにもう 1ワードの情報ワードを当該サイクル用とし て追加する必要がないことになる。このように、本具体例は、同一サイクルに実行され る即値オペランドを使用する命令が存在する場合であっても、必ずしも情報ワードの 数を増やす必要がない。
[0076] 本具体例と、単一命令語長を用いる上記関連手法 1、および、 2種類の語長を用い る可変語長を用いる上記関連手法 2とを詳細に比較すると、本具体例の効果は以下 のようになる。
[0077] 関連手法 1の場合は、サイクル毎に、常時 39 X 3 = 117 [ビット]が必要である。また 、関連手法 2の場合は、サイクル毎に、 87 [ビット] (短い方の語長の命令が、 3ワード の場合: 29 X 3)〜174 [ビット] (長 、方の語長の命令が、 3ワードの場合 = 58 X 3) が必要である。 18 [ビット]の固定語長を用いた本具体例の場合、同一サイクルにお V、て 3つの命令が同時に有効桁 16 [ビット]の即値オペランドを利用する稀なケース では、 18 X (3 +4) = 126 [ビット]を消費する。
[0078] ここで、上記の '4,は、以下のように算出する。 1命令ワードの超過オペランドは、 4 [ ビット]であり、即値オペランドの最大値が 16 [ビット]なので、情報ワード全体では、 ( 4+ 16) X 3 = 63 [ビット]力必要である。 3く(63/17)く 4なので、最大 4ワードの情 報ワードが 1サイクルで必要である。
[0079] ほとんどのケースでは、 3つの命令ワードと 1〜2つの情報ワードの計 4〜5ワード、 すなわち、 18 X 4 = 72 [ビット]〜 18 X 5 = 90 [ビット]程度のビットが必要である。
[0080] したがって、本具体例は、関連手法 1と比べると、平均的には、プログラムメモリ消費 量が(117— 72) Z117 = 38 [%]〜(117— 90) Z117 = 22 [%]程度削減できる。 また、関連手法 2において、平均サイクル毎に必要なビット数力 87 [ビット]と 174 [ビ ット]との平均である 130 [ビット]であるとすると、本具体例はそれと比べ、平均的には 、プログラムメモリ消費量力 S、 (130- 72) /130=45 [%] ~ (130- 90) /130 = 3 o[%]程度削減できる。
[0081] 次に、第 2の実施例の具体例の構成について図面を参照して説明する。図 10は、 本発明の第 2の実施例の具体例の命令ワード復元部 200の一部の構成を示すプロ ック図である。図 10を参照すると、命令ワード復元部 200は、デコーダ 610、デコーダ 611、デコーダ 612、選択信号 630、選択信号 631、選択信号 632、選択回路 620、 選択回路 621、および、選択回路 622を含む。
[0082] デコーダ 612は、第 3命令ワード 602のオペコードをデコードし、第 3命令ワード 60 2の超過オペランドを選択するための選択信号 632を出力する。デコーダ 611は、第 2命令ワード 601、および、第 3命令ワード 602のオペコードをデコードし、第 2命令ヮ ード 601の超過オペランドを選択するための選択信号 631を出力する。デコーダ 61 0は、第 1命令ワード 600、第 2命令ワード 601、および、第 3命令ワード 602のォペコ ードをデコードし、第 1命令ワード 600の超過オペランドを選択するための選択信号 6 30を出力する。
[0083] たとえば、第 3命令が種類 M、種類 N、種類 Oであれば、デコーダ 612は、それぞれ 、情報ワード 603の最後尾から A [ビット]、 B [ビット]、 C [ビット]を選択するように選択 信号 632を出力する。また、たとえば、第 3命令が種類 Oであり、第 2命令が種類 Nで あれば、デコーダ 611は、情報ワード 603の最後尾力 C [ビット]前にずれた位置か ら B [ビット]を選択するように選択信号 631を出力する。また、たとえば、第 3命令が種 類 Oであり、第 2命令が種類 Nであり、第 1命令が種類 Mであれば、デコーダ 610は、 情報ワード 603の最後尾力も B + C [ビット]前にずれた位置から A [ビット]を選択する ように選択信号 630を出力する。
[0084] 選択回路 620 (18ウェイ)、選択回路 621 (9ウェイ)、選択回路 622 (3ウェイ)は、そ れぞれ、選択信号 630、選択信号 631、選択信号 632にしたがって、情報ワード 603 力 第 1命令ワード 600、第 2命令ワード 601、第 3命令ワード 602の超過オペランド を選択し出力する。
[0085] 図示しないが、プロセッサ 100は、マイクロプログラム制御方式の構成が可能である 。すなわち、プロセッサ 100が命令制御プログラムにしたがって動作することにより、 上述した命令供給部 102、命令デコーダ 103、および、実行部 108〜110の各機能 部を実現することができる。この命令制御プログラムは、光ディスクや磁気ディスクな どの機械読み取り可能な記録媒体に記録した状態で提供することができる。
[0086] 同一サイクルで n個の命令が実行される場合には、第 1、 ···、第 ···、第 nのデコー ダ、第 1、 ···、第 i、 ···、第 nの選択回路が必要になる。第 iのデコーダは、第 i、第 i+ 1 、 ···、および、第 nの命令のオペコードを入力し、第 iの命令ワードに対応する超過ォ ペランド、または、即値オペランドを選択するための第 iの選択信号を出力する。第 iの 選択回路は、第 iの選択信号にしたがって情報ワードの該当する位置力も第 iの命令 に対応する超過オペランド、または、即値オペランドを選択する。
[0087] また、 18ウェイの選択回路 62等の遅延時間が大であり、実行時間が、 1サイクルに 収まらない場合には、パイプラインステージの段数の増加により、本具体例が実現で きる。
[0088] その他、他の具体例として、本発明を、関連手法 2である可変語長命令方式と組み 合わせて実施することが考えられる。その場合、情報ワードの語長を必要に応じて基 本語長としたり、あるいは用意されている他の整数倍の語長としたりすることが可能と なるため、さらにプログラムメモリ消費量が削減できる。
[0089] たとえば、最小語長が Z [ビット]で、 2種類の語長を持つ可変語長方式の場合、図 9 において、情報ワードの語長 Yのみ力 サイクル毎に Z [ビット]であったり 2Z [ビット] であったりする。この場合、情報ワード識別子 303のビット数を増やす力、あるいは、 別途語長を指定するビットフィールドを命令ワード、または、情報ワード内に追加する 必要がある。
[0090] 以上のように、上述した実施例のプロセッサ 100は、同一サイクルで実行される複 数の命令ワードに属するビットフィールドの一部が集まって構成される情報ワードを、 実行時に分解し各命令ワードの元の構成を復元する命令デコーダ 103を含む。具体 的には、命令デコーダ 103は、情報ワード力もビットフィールドを取り出し、これらのビ ットフィールドを各命令ワードのそれぞれの所定ビット位置に挿入することにより、各 命令ワードを復元する。さらに詳しく言えば、命令デコーダ 103は、情報ワードからビ ットフィールドを取り出し、これらのビットフィールドを各命令ワードのそれぞれの先頭 あるいは、末尾、あるいは、それぞれのオペコードに依存して決まる所定位置に挿入 することにより、各命令ワードを復元する。
[0091] また、プロセッサ 100は、複数の命令ワード、および、情報ワードを同一サイクルで 出力する命令供給部 102と、復元した各命令ワードをそれぞれデコードし、各命令ヮ ードを実行するための制御情報を出力する命令デコーダ 103と、制御情報に基づい て各命令を実行する 1以上の実行部 108〜110とを含む。
[0092] 命令供給部 102は、同一サイクルで実行される最大命令数カ であり、 n [個]の命 令ワードの次に情報ワードがあると、 n [個]の命令の最後尾に情報ワードを配置して 出力し、 n [個]に満たない m [個]の命令ワードの次に情報ワードがあると、 n— m [個 ]の NOP命令を n [個]の命令ワードの次に挿入するようにしてもよ!、。
[0093] ここで、情報ワードとして集められるビットフィールドの一部力 命令ワードの種類に よって決まる長さの超過オペランド、または、即値オペランドであってもよい。この場合 、命令デコーダ 103は、第 i、第 i+ l、 ···、および、第 nの命令のオペコードを入力し、 第 iの命令ワードに対応する超過オペランド、または、即値オペランドを選択するため の第 iの選択信号を出力する第 iのデコーダ 610〜612と、第 iの選択信号にしたがつ て情報ワードの該当する位置力 第 iの命令に対応する超過オペランド、または、即 値オペランドを選択する第 iの選択回路 620〜622とを備えて 、てもよ 、。
[0094] 以上、本発明の実施例および具体例を図面により詳述してきたが、具体的な構成 は上記実施例および具体例に限られるものではなぐこの発明の要旨を逸脱しない 範囲の設計の変更などがあっても、この発明に含まれる。
産業上の利用可能性
[0095] 本発明は、性能を維持したままプログラムメモリの消費ビット数を削減できる、単一 サイクルに複数命令を発行可能な高性能プロセッサ、たとえば、 VLIW(Very Lon g Instruction Word)型のプロセッサの実現に適用できる。

Claims

請求の範囲
[1] 同一サイクルで実行される複数の命令ワードに属するビットフィールドの一部が集 められて構成される情報ワードを実行時に分解し、各命令ワードを元の構成に復元 することを特徴とするプロセッサ。
[2] 情報ワードを実行時に分解し、各命令ワードを元の構成に復元する命令デコーダ を備えることを特徴とする請求項 1記載のプロセッサ。
[3] 前記命令デコーダは、情報ワードからビットフィールドを取り出し、これらのビットフィ 一ルドを各命令ワードの所定ビット位置に挿入することにより各命令ワードを復元する 命令ワード復元部を備えることを特徴とする請求項 2記載のプロセッサ。
[4] 前記命令デコーダは、情報ワードからビットフィールドを取り出し、これらのビットフィ 一ルドを各命令ワードの先頭、末尾、および、それぞれのオペコードに依存して決ま る所定位置のいずれか〖こ挿入することにより各命令ワードを復元する命令ワード復元 部を備えることを特徴とする請求項 2記載のプロセッサ。
[5] 各命令ワードの元の構成力も情報ワードを構成する部分のビットフィールドが除か れた複数の部分命令ワード、および、情報ワードを同一サイクルで前記命令デコーダ に出力する命令供給部と、
制御情報に基づいて命令を実行する少なくとも 1つの実行部と
をさらに備え、
前記命令デコーダは、復元された各命令ワードをデコードし、各命令ワードを実行 するための制御情報を前記実行部のそれぞれに出力する個別命令デコード部を備 えることを特徴とする請求項 2記載のプロセッサ。
[6] 前記命令供給部は、同一サイクルで実行される最大命令数力 以上の整数 nであり 、 n個の部分命令ワードの次に情報ワードがある場合、 n個の部分命令ワードの最後 尾に、部分命令ワードの順番にしたがってそれぞれのビットフィールドが配置された 情報ワードを配置して出力し、 n個に満たない 1以上の整数 m個の部分命令ワードの 次に情報ワードがある場合、 m個の部分命令ワードの最後尾に n— m個の NOP命令 を配置し、さらにその最後尾に、部分命令ワードの順番にしたがってそれぞれのビッ トフィールドが配置された情報ワードを配置して出力することを特徴とする請求項 5記 載のプロセッサ。
[7] 情報ワードを構成するビットフィールドは、命令ワードの種類によって決まる長さの 超過オペランド、および、即値オペランドの少なくとも一方であることを特徴とする請 求項 1記載のプロセッサ。
[8] 情報ワードを構成するビットフィールドは、命令ワードの種類によって決まる長さの 超過オペランド、および、即値オペランドの少なくとも一方であることを特徴とする請 求項 6記載のプロセッサ。
[9] 前記命令デコーダは、
1以上 n以下の整数を iとしたとき、第 iから第 nの部分命令ワードのオペコードを入力 し、第 iの部分命令ワードに対応する超過オペランド、および、即値オペランドのいず れかを選択するための第 iの選択信号を各部分命令ワードの種類に基づいて生成し 出力する第 iのデコーダと、
前記第 iのデコーダ力も出力される第 iの選択信号にしたがって情報ワードの該当す る位置力 第 iの部分命令ワードに対応する超過オペランド、および、即値オペランド の!、ずれかを選択する第 iの選択回路と
を備えることを特徴とする請求項 8記載のプロセッサ。
[10] 情報ワードを複数のビットフィールドに分解する分解部と、
各命令ワードの元の構成力 情報ワードを構成する部分のビットフィールドが除か れた部分命令ワードと、前記分解部により分解された対応するビットフィールドとを結 合することにより、各命令ワードを元の構成に復元する結合部と
を備えることを特徴とする請求項 1記載のプロセッサ。
[11] プロセッサで、同一サイクルで実行される複数の命令ワードに属するビットフィール ドの一部が集められて構成される情報ワードを実行時に分解し、各命令ワードを元の 構成に復元するステップを備えることを特徴とする命令制御方法。
[12] 復元するステップは、前記プロセッサの命令デコーダで、分解し復元するステップを 備えることを特徴とする請求項 11記載の命令制御方法。
[13] 復元するステップは、前記命令デコーダで、情報ワードからビットフィールドを取り出 し、これらのビットフィールドを各命令ワードの所定ビット位置に挿入することにより各 命令ワードを復元するステップを備えることを特徴とする請求項 12記載の命令制御 方法。
[14] 復元するステップは、前記命令デコーダで、情報ワードからビットフィールドを取り出 し、これらのビットフィールドを各命令ワードの先頭、末尾、および、それぞれのォペコ ードに依存して決まる所定位置のいずれかに挿入することにより各命令ワードを復元 するステップを備えることを特徴とする請求項 12記載の命令制御方法。
[15] 前記プロセッサの命令供給部から前記命令デコーダに、各命令ワードの元の構成 力 情報ワードを構成する部分のビットフィールドが除かれた複数の部分命令ワード 、および、情報ワードを同一サイクルで出力するステップと、
前記命令デコーダで、復元された各命令ワードをデコードし、各命令ワードを実行 するための制御情報を前記プロセッサの少なくとも 1つの実行部に出力するステップ と、
前記実行部で、制御情報に基づ!、て命令を実行するステップと
をさらに備えることを特徴とする請求項 12記載の命令制御方法。
[16] 復元するステップは、
情報ワードを複数のビットフィールドに分解するステップと、
各命令ワードの元の構成力 情報ワードを構成する部分のビットフィールドが除か れた部分命令ワードと、分解により得られた対応するビットフィールドとを結合するス テツプと
を備えることを特徴とする請求項 11記載の命令制御方法。
[17] プロセッサに、
同一サイクルで実行される複数の命令ワードに属するビットフィールドの一部が集 められて構成される情報ワードを実行時に分解し、各命令ワードを元の構成に復元 するステップ
を実行させるためのプログラム。
[18] 復元するステップとして、情報ワード力 ビットフィールドを取り出し、これらのビットフ ィールドを各命令ワードの所定ビット位置に挿入することにより各命令ワードを復元す るステップ を実行させるための請求項 17記載のプログラム。
[19] 復元するステップとして、情報ワード力 ビットフィールドを取り出し、これらのビットフ ィールドを各命令ワードの先頭、末尾、および、それぞれのオペコードに依存して決 まる所定位置のいずれかに挿入することにより各命令ワードを復元するステップ を実行させるための請求項 17記載のプログラム。
[20] 各命令ワードの元の構成力 情報ワードを構成する部分のビットフィールドが除か れた複数の部分命令ワード、および、情報ワードを同一サイクルで出力するステップ と、
復元された各命令ワードをデコードし、各命令ワードを実行するための制御情報を 生成するステップと、
生成された制御情報に基づいて命令を実行するステップと
をさらに実行させるための請求項 17記載のプログラム。
[21] 復元するステップとして、
情報ワードを複数のビットフィールドに分解するステップと、
各命令ワードの元の構成力 情報ワードを構成する部分のビットフィールドが除か れた部分命令ワードと、分解により得られた対応するビットフィールドとを結合するス テツプと
を実行させるための請求項 17記載のプログラム。
PCT/JP2007/062118 2006-06-15 2007-06-15 プロセッサ、および、命令制御方法 WO2007145319A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US12/308,390 US8131978B2 (en) 2006-06-15 2007-06-15 Restoring plural instructions for same cycle execution from partial instructions and combined supplementing portions generated for compact storage
CN2007800222240A CN101467128B (zh) 2006-06-15 2007-06-15 处理器和指令控制方法
JP2008521270A JP5168143B2 (ja) 2006-06-15 2007-06-15 プロセッサ、および、命令制御方法
EP07745373A EP2028590A4 (en) 2006-06-15 2007-06-15 PROCESSOR AND CONTROL CONTROL METHOD

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006-166077 2006-06-15
JP2006166077 2006-06-15

Publications (1)

Publication Number Publication Date
WO2007145319A1 true WO2007145319A1 (ja) 2007-12-21

Family

ID=38831832

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2007/062118 WO2007145319A1 (ja) 2006-06-15 2007-06-15 プロセッサ、および、命令制御方法

Country Status (6)

Country Link
US (1) US8131978B2 (ja)
EP (1) EP2028590A4 (ja)
JP (1) JP5168143B2 (ja)
KR (1) KR20090009981A (ja)
CN (1) CN101467128B (ja)
WO (1) WO2007145319A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5967582B2 (ja) * 2012-06-04 2016-08-10 パナソニックIpマネジメント株式会社 ディスク装置
US20160378480A1 (en) * 2015-06-27 2016-12-29 Pavel G. Matveyev Systems, Methods, and Apparatuses for Improving Performance of Status Dependent Computations
CN106445466B (zh) * 2015-08-13 2019-07-09 深圳市中兴微电子技术有限公司 超长指令字指令集的指令处理方法及装置
CN108256645B (zh) * 2018-01-19 2021-02-26 上海兆芯集成电路有限公司 数据位宽可调适的处理器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05150979A (ja) 1991-11-27 1993-06-18 Toshiba Corp 即値オペランド拡張方式
JPH0895783A (ja) 1994-09-20 1996-04-12 Nec Corp 可変語長型マイクロコンピュータ
JPH09265397A (ja) * 1996-03-29 1997-10-07 Hitachi Ltd Vliw命令用プロセッサ
JP2005227942A (ja) * 2004-02-12 2005-08-25 Matsushita Electric Ind Co Ltd プロセッサ及びコンパイラ
JP2006166077A (ja) 2004-12-08 2006-06-22 Nikon Corp 撮像装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5787302A (en) * 1996-05-15 1998-07-28 Philips Electronic North America Corporation Software for producing instructions in a compressed format for a VLIW processor
US5870576A (en) * 1996-12-16 1999-02-09 Hewlett-Packard Company Method and apparatus for storing and expanding variable-length program instructions upon detection of a miss condition within an instruction cache containing pointers to compressed instructions for wide instruction word processor architectures
JP3790607B2 (ja) * 1997-06-16 2006-06-28 松下電器産業株式会社 Vliwプロセッサ
JP3327818B2 (ja) * 1997-08-29 2002-09-24 松下電器産業株式会社 プログラム変換装置及び記録媒体
EP1046100A1 (en) * 1998-08-06 2000-10-25 Trimedia Technologies, Inc. Data processor and method of processing data
EP0992892B1 (en) * 1998-10-06 2015-12-02 Texas Instruments Inc. Compound memory access instructions
US20030023960A1 (en) * 2001-07-25 2003-01-30 Shoab Khan Microprocessor instruction format using combination opcodes and destination prefixes
US7002595B2 (en) * 2002-10-04 2006-02-21 Broadcom Corporation Processing of color graphics data
JP2009026106A (ja) * 2007-07-20 2009-02-05 Oki Electric Ind Co Ltd 命令コード圧縮方法と命令フェッチ回路

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05150979A (ja) 1991-11-27 1993-06-18 Toshiba Corp 即値オペランド拡張方式
JPH0895783A (ja) 1994-09-20 1996-04-12 Nec Corp 可変語長型マイクロコンピュータ
JPH09265397A (ja) * 1996-03-29 1997-10-07 Hitachi Ltd Vliw命令用プロセッサ
JP2005227942A (ja) * 2004-02-12 2005-08-25 Matsushita Electric Ind Co Ltd プロセッサ及びコンパイラ
JP2006166077A (ja) 2004-12-08 2006-06-22 Nikon Corp 撮像装置

Also Published As

Publication number Publication date
EP2028590A1 (en) 2009-02-25
EP2028590A4 (en) 2009-07-08
US20100161944A1 (en) 2010-06-24
JPWO2007145319A1 (ja) 2009-11-12
CN101467128A (zh) 2009-06-24
US8131978B2 (en) 2012-03-06
JP5168143B2 (ja) 2013-03-21
KR20090009981A (ko) 2009-01-23
CN101467128B (zh) 2012-09-26

Similar Documents

Publication Publication Date Title
US6167505A (en) Data processing circuit with target instruction and prefix instruction
US6230257B1 (en) Method and apparatus for staggering execution of a single packed data instruction using the same circuit
US6966056B2 (en) Processor for making more efficient use of idling components and program conversion apparatus for the same
EP1267257A2 (en) Conditional execution per data path slice
KR100991700B1 (ko) 처리 장치, 처리 방법 및 컴퓨터로 판독가능한 기록 매체
US7017032B2 (en) Setting execution conditions
JPH0728761A (ja) 非対称ベクトルマルチプロセッサ
JP2006500673A (ja) 処理装置、処理方法及びコンパイラ
WO2007145319A1 (ja) プロセッサ、および、命令制御方法
US20030037085A1 (en) Field processing unit
EP1267255A2 (en) Conditional branch execution in a processor with multiple data paths
US7707389B2 (en) Multi-ISA instruction fetch unit for a processor, and applications thereof
EP1220091B1 (en) Circuit and method for instruction compression and dispersal in VLIW processors
JP2006164279A (ja) プロセッサ・アーキテクチャ
KR100636596B1 (ko) 고에너지 효율 병렬 처리 데이터 패스 구조
US6922773B2 (en) System and method for encoding constant operands in a wide issue processor
JP4227441B2 (ja) データ圧縮方法およびプロセッサ
WO2005036384A2 (en) Instruction encoding for vliw processors
JP3727434B2 (ja) 並列演算プロセッサ
WO2011086808A1 (ja) 情報処理装置
JP2001005664A (ja) 演算処理装置
JP2003223331A (ja) コンパイラ、および記録媒体

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200780022224.0

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07745373

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
REEP Request for entry into the european phase

Ref document number: 2007745373

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2007745373

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2008521270

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 12308390

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 6877/CHENP/2008

Country of ref document: IN

Ref document number: 1020087030559

Country of ref document: KR

NENP Non-entry into the national phase

Ref country code: DE

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)