WO2019102662A1 - プロセッサ、情報処理装置および処理方法 - Google Patents
プロセッサ、情報処理装置および処理方法 Download PDFInfo
- Publication number
- WO2019102662A1 WO2019102662A1 PCT/JP2018/030256 JP2018030256W WO2019102662A1 WO 2019102662 A1 WO2019102662 A1 WO 2019102662A1 JP 2018030256 W JP2018030256 W JP 2018030256W WO 2019102662 A1 WO2019102662 A1 WO 2019102662A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- instruction
- field
- conversion table
- predetermined field
- fetched
- Prior art date
Links
- 230000010365 information processing Effects 0.000 title claims description 12
- 238000003672 processing method Methods 0.000 title claims description 5
- 238000006243 chemical reaction Methods 0.000 claims abstract description 109
- 238000000034 method Methods 0.000 claims abstract description 21
- 238000010586 diagram Methods 0.000 description 11
- 230000000694 effects Effects 0.000 description 11
- 238000006073 displacement reaction Methods 0.000 description 6
- 239000000203 mixture Substances 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
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/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- 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/30181—Instruction operation extension or modification
- G06F9/30185—Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
-
- 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/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- 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/30181—Instruction operation extension or modification
- G06F9/30192—Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
-
- 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
Definitions
- the present technology relates to a processor. More specifically, the present invention relates to a processor that fetches an instruction from a memory and performs a decoding process, an information processing apparatus, a processing method in these, and a program that causes a computer to execute the method.
- CISCs complex instruction set computers
- VLIWs very long instruction words
- TTAs transport triggered architectures
- bit field allocation of an instruction needs to be determined at the time of instruction decoder design. Therefore, since the logic of the instruction decoder is fixed when executing the application program, the bit field assignment of the instruction can not be changed.
- the above-mentioned prior art extends the instruction set by decoding instructions of a variable-length instruction set.
- the instruction space is extended using the escape code, and there is a problem that control for interpreting the escape code becomes complicated. Also, there is a problem that the code size becomes large depending on the frequency of the extension instruction by the escape code.
- the present technology has been created in view of such a situation, and by extending predetermined instruction word length of a fetched instruction by converting a predetermined field, instruction type and operand length To ensure that
- the present technology has been made to solve the above-mentioned problems, and a first aspect thereof relates to an instruction conversion that stores an extended field longer than the predetermined field in association with the bit pattern of the predetermined field of the instruction.
- An extended field acquisition unit for acquiring the extension field by referring to the instruction conversion table according to the table and the bit pattern of the predetermined field of the fetched instruction, and replacing the predetermined field of the fetched instruction with the expanded field acquisition unit
- a processor comprising an instruction decoder for decoding a new instruction having an extension field, an information processing apparatus including the processor, and a processing method of the information processing apparatus. This brings about the effect of performing decoding processing as a new instruction having an extended field longer than the predetermined field in the fetched instruction.
- the instruction conversion table relates the bit pattern of at least a part of the opcode as the predetermined field to the bit pattern and stores the opcode of the new instruction as the extension field. May be This brings about the effect
- the instruction conversion table associates the bit pattern of at least a part of the op code with the bit pattern as the predetermined field, and adds the op code of the new instruction and at least a part of the operand. It may be stored as an extended field. This brings about the effect
- the instruction conversion table may include mode information as the extension field, and the instruction decoder may interpret an operand in the new instruction according to the mode information. This brings about the effect
- the extension field acquisition unit acquires the extension field on condition that the bit pattern of the predetermined field of the fetched instruction is a specific pattern, and the instruction decoder If the bit pattern of the predetermined field of the fetched instruction is not the specific pattern, decoding may be performed on the fetched instruction. This brings about the effect
- a rewrite execution unit that rewrites the stored contents of the instruction conversion table may be further included. This brings about the effect of dynamically changing a new instruction provided with the extension field.
- the rewrite execution unit executes the instruction conversion table with the contents specified by the instruction. You may rewrite it. This brings about the effect of dynamically changing a new instruction using a rewrite instruction.
- the predetermined field of the fetched instruction it is possible to extend the predetermined field of the fetched instruction to achieve the excellent effect of being able to secure the type of instruction and the length of the operand.
- the effect described here is not necessarily limited, and may be any effect described in the present disclosure.
- FIG. 1 is a diagram illustrating an exemplary configuration of an information processing apparatus according to a first embodiment of the present technology.
- the information processing apparatus includes a processor 100 and a memory 200.
- the memory 200 stores program instructions and data required for execution in the processor 100.
- the following description focuses on a series of flows in which the processor 100 reads an instruction from the memory 200 (instruction fetch) and decodes the instruction.
- the processor 100 reads an instruction from the memory 200 and executes the instruction.
- the processor 100 includes a fetch unit 110, an instruction conversion unit 120, an instruction decoder 130, and an execution unit 140.
- the fetch unit 110 performs an instruction fetch process of reading an instruction from the memory 200.
- the fetch unit 110 reads instructions in order from the instruction sequence of the program stored in the memory 200.
- the fetch unit 110 basically reads instructions in ascending order of addresses, but when a branch (jump) occurs due to a branch instruction or the like, the instruction is read from the branch destination.
- the instruction conversion unit 120 replaces the predetermined field of the instruction read by the fetch unit 110 and converts the instruction.
- the instruction conversion unit 120 includes an instruction conversion table 121 and an extended field acquisition unit 122.
- the instruction conversion table 121 stores the extension field in association with the bit pattern of the predetermined field of the instruction. This extension field has a bit length longer than the predetermined field of the original instruction.
- the extension field acquisition unit 122 acquires an extension field by referring to the instruction conversion table 121 according to the bit pattern of the predetermined field of the fetched instruction. Instruction conversion is performed by replacing the acquired extension field instead of the predetermined field of the original instruction.
- the instruction decoder 130 performs a decoding process on a new instruction converted by the instruction conversion unit 120. As a result of the decoding process by the instruction decoder 130, control of each part of the processor 100 is performed. For example, instruction execution in the execution unit 140 is controlled.
- the execution unit 140 executes various instructions in accordance with the result of decoding by the instruction decoder 130. For example, access to the memory 200, arithmetic processing in an arithmetic unit (not shown), etc. are executed.
- FIG. 2 is a diagram showing an example of an instruction format before conversion in the first embodiment of the present technology.
- system related instruction a system call instruction (syscall) used mainly for a system function call by the operating system, an instruction which does nothing (NOP: No Operation), and the like are classified.
- NOP No Operation
- the load instruction is an instruction for reading from the memory 200.
- the store instruction is an instruction for writing to the memory 200.
- the inter-register transfer instruction is an instruction for performing transfer between internal registers of the processor 100.
- the addition instruction is an instruction for performing addition processing.
- the subtraction instruction is an instruction for performing subtraction processing.
- the logical operation instruction is an instruction for performing logical operation processing.
- the multiplication instruction is an instruction for performing multiplication processing.
- the division instruction is an instruction for performing division processing.
- a branch instruction is an instruction for performing a branch in an instruction sequence of a program.
- the branch instruction includes a conditional branch instruction which branches when a certain condition is satisfied (or not satisfied) and an unconditional branch instruction which unconditionally branches.
- FIG. 3 is a diagram showing an example of op code extension in the first embodiment of the present technology.
- the 8-bit opcode is expanded to 12 bits and converted into a total of 36-bit instructions.
- up to 4096 instructions can be expressed by the 12-bit op code, and the degree of freedom in instruction set design can be improved.
- FIG. 4 is a diagram illustrating an example of instruction conversion by the instruction conversion table 121 according to the first embodiment of the present technology.
- the bit length of the op code of the instruction before conversion is 8 bits.
- the instruction conversion table 121 stores the 256 expanded 12-bit opcodes as an extension field in association with the 8-bit bit pattern of the opcodes.
- the extension field acquisition unit 122 refers to the instruction conversion table 121 according to the bit pattern of the 8-bit opcode of the fetched instruction, and acquires the 12-bit opcode after expansion. Then, a 36-bit instruction can be obtained by replacing the 12-bit op code instead of the 8-bit op code of the original instruction. At this time, for the 24-bit operand, the operand of the original instruction is used as it is.
- the extended 12-bit op code stored in the instruction conversion table 121 is 256 pieces. Therefore, assuming that the stored contents of the instruction conversion table 121 are not changed, the types of instructions that can be used at one time are 256 instructions. In order to use other instructions, the stored contents of the instruction conversion table 121 need to be changed. This will be described in a fourth embodiment described later.
- FIG. 5 is a flowchart illustrating an example of the processing procedure of the processor 100 according to the first embodiment of the present technology.
- the extended field acquisition unit 122 extracts the bit field of the opcode from the fetched instruction (step S911).
- eight bits from the 31st bit to the 24th bit on the MSB side are opcodes.
- the extended field acquisition unit 122 acquires a 12-bit op code by referring to the instruction conversion table 121 according to the bit field of the extracted 8-bit op code (step S913). Thereby, the op code is converted into an instruction expanded to 12 bits.
- the instruction decoder 130 decodes a new instruction obtained by combining the 12-bit op code acquired by the extension field acquisition unit 122 and the operand of the original instruction (step S914).
- the opcode of an instruction can be extended by referring to the instruction conversion table 121.
- Second embodiment> In the first embodiment described above, while the opcode of the instruction is expanded from 8 bits to 12 bits, the operand of the original instruction is used as it is for the 24-bit operand. In the second embodiment, the field usable as an operand is expanded.
- the basic configuration of the processor 100 is the same as that of the above-described first embodiment, and thus the detailed description is omitted.
- FIG. 6 is a diagram showing an example of an instruction format before conversion in the second embodiment of the present technology.
- mode information is provided in the most significant bit of the operand, and the interpretation of the field of the operand is changed according to the mode information. That is, when the mode information indicates 0, it is assumed that one 5-bit destination register and two 5-bit source registers can be specified as instructions for performing register operations, and the remaining 8 bits are immediate. It can be used as (immediate value). Since 5 bits are assumed as a field of register specification, 32 registers can be specified respectively. Thereby, for example, processing of holding the contents of the two source registers and the result of performing the operation on the immediate can be performed in the destination register.
- one 5-bit destination register and one base address register can be specified as a memory access instruction, and the remaining 13 bits can be used as a displacement.
- the remaining 13 bits can be used as a displacement.
- an address obtained by adding displacement to the content of the base address register can be accessed, and the result can be held in the destination register.
- the operands are expanded by storing part of the operands in the instruction conversion table 121.
- FIG. 7 is a diagram illustrating an example of an instruction format after conversion in the second embodiment of the present technology.
- the operands are divided into two, the first half operand (1) is stored in the instruction conversion table 121, and the second half operand (2) uses the original instruction operand as it is. .
- This allows, for example, 19-bit immediate or 24-bit displacement to be used.
- FIG. 8 is a diagram showing an example of instruction conversion by the instruction conversion table 121 according to the second embodiment of the present technology.
- the instruction conversion table 121 stores 256 entries in association with the 8-bit bit pattern of the op code. Each entry stores each field of the 9-bit op code, 1-bit mode information, 5-bit destination register, and 5-bit source register or base address register as an extension field. This expands the field not only for the op code but also for the operand.
- the operands of the instruction can be expanded.
- FIG. 9 is a diagram showing an example of an instruction format before and after conversion in the third embodiment of the present technology.
- the extension field acquisition unit 122 acquires the extension field on condition that the bit pattern of the predetermined field of the fetched instruction is a specific pattern, and does not acquire the extension field unless it is the specific pattern.
- the extension field acquisition unit 122 does not acquire the extension field, and the instruction decoder 130 decodes the fetched instruction.
- the extension field acquisition unit 122 acquires the extension field, and the instruction decoder 130 decodes the new instruction having the extension field. I do. Note that "0x” means that the subsequent numbers are in hexadecimal notation.
- FIG. 10 is a diagram showing an example of instruction conversion by the instruction conversion table 121 according to the third embodiment of the present technology.
- the extended field acquisition unit 122 acquires the extended field with reference to the instruction conversion table 121 on condition that the upper two bits of the 8-bit op code are “0b11”. Note that "0b" means that the subsequent number is in binary notation.
- the instruction conversion table 121 in this example has 64 entries of 20 bits each, and is referred to by the lower 6 bit field of the 8-bit op code.
- Each entry of the instruction conversion table 121 includes fields of a 9-bit op code, 1-bit mode information, a 5-bit destination register, a 5-bit source register or a base address register.
- the obtained 20-bit extension field is combined with the 24-bit operand of the original instruction to form a total of 44 bits of a new instruction.
- the instruction decoder 130 decodes the new instruction.
- the 20-bit extension field includes a 21-bit operand (1) in addition to the 9-bit op code. That is, assuming that the 24-bit operand of the original instruction is the operand (2), a 45-bit operand consisting of the operand (1) and the operand (2) is constructed. Thus, in addition to extending the op code, it is also possible to extend the operand. That is, as described in FIG. 7, for example, 19-bit immediate or 24-bit displacement can be used.
- FIG. 11 is a flowchart illustrating an example of the processing procedure of the processor 100 according to the third embodiment of the present technology. Steps S911, S913 and S914 in the third embodiment are the same as those in the first embodiment described above.
- step S912 When the bit field of the operation code is extracted from the fetched instruction in step S911, it is determined whether the instruction is a conversion target instruction (step S912). If it is a conversion target instruction (step S912: Yes), the extension field is acquired by the extension field acquisition unit 122 (step S913), and the instruction decoder 130 decodes the new instruction combined with the operand of the original instruction (step S914).
- step S912 if the fetched instruction is not a conversion target instruction (step S912: No), the instruction decoder 130 decodes the fetched instruction (step S915).
- conversion can be performed for only a part of instructions, and decoding processing can be performed on other instructions as they are.
- FIG. 12 is a diagram illustrating an exemplary configuration of an information processing apparatus according to a fourth embodiment of the present technology.
- the information processing apparatus in the fourth embodiment is used by switching to any one of N pieces by rewriting the instruction conversion table 121. This rewriting is performed by the execution unit 140 according to the program.
- FIG. 13 is a diagram illustrating an example of a program for rewriting the instruction conversion table 121 according to the fourth embodiment of the present technology.
- the first to fifth lines are initialization parts.
- #Ins_def is the address of a memory area where the converted instruction is stored.
- the instruction on the first line is a move instruction for setting the address of #ins_def in the register r4.
- T0 to t3 are four entries of the instruction conversion table 121.
- the instructions in the second to fifth lines are load instructions for loading the setting contents of the instruction conversion table 121 from the memory 200 from t0 to t3. Thereby, the converted instruction is set in the instruction conversion table 121.
- #Data is an address of a memory area in which data is stored.
- the eleventh line is a move instruction for setting the address of #data in the register r4 used as a data address pointer.
- the 12th to 14th lines are load instructions for loading data from the memory 200 into the registers r0 to r2. Thereby, the instruction conversion table 121 can be switched.
- the instruction in the fifteenth line is a move instruction that sets the address of #ins_def in the register r4.
- the instruction on the sixteenth line is a load instruction to load the setting contents of the instruction conversion table 121 from the memory 200 at t0.
- the instruction on the 17th line is an instruction to replace the extension field with reference to the instruction conversion table 121.
- the instruction in the eighteenth line is a load instruction to load the setting contents of the instruction conversion table 121 from the memory 200 at t0.
- the instruction in the 19th line is an instruction to replace the extension field with reference to the instruction conversion table 121.
- the contents of the instruction conversion table 121 can be switched dynamically. Therefore, as in the above-mentioned example, when the 8-bit opcode is expanded to 12 bits by conversion, any 256 instructions out of 4096 instructions at the maximum should be registered in the instruction conversion table 121 and rewritten. Makes it possible to execute all 4096 instructions.
- the code size of the program can be reduced.
- the code size can be optimized by changing the contents of the instruction conversion table 121 at the time of program execution for each application program or each section (for example, subroutine) of the application program. Then, the power consumption can be reduced by reducing the circuit size and instruction fetch due to these.
- the processing procedure described in the above embodiment may be regarded as a method having a series of these procedures, and a program for causing a computer to execute the series of procedures or a recording medium storing the program. You may catch it.
- a recording medium for example, a CD (Compact Disc), an MD (Mini Disc), a DVD (Digital Versatile Disc), a memory card, a Blu-ray disc (Blu-ray (registered trademark) Disc) or the like can be used.
- the present technology can also be configured as follows.
- An instruction conversion table storing an extended field longer than the predetermined field in association with a bit pattern of the predetermined field of the instruction;
- An extension field acquisition unit for acquiring the extension field by referring to the instruction conversion table according to a bit pattern of the predetermined field of the fetched instruction;
- a processor comprising: an instruction decoder for decoding a new instruction including the extension field instead of the predetermined field of the fetched instruction.
- the instruction conversion table relates the bit pattern of at least a part of the operation code as the predetermined field to the bit pattern, and stores the operation code of the new instruction and at least a part of the operand as the extension field.
- the processor according to (1) or (2).
- the instruction conversion table includes mode information as the extension field, The processor according to any one of (1) to (3), wherein the instruction decoder interprets an operand in the new instruction according to the mode information.
- the extension field acquisition unit acquires the extension field on condition that a bit pattern of the predetermined field of the fetched instruction is a specific pattern, The instruction decoder may perform the decoding process on the fetched instruction when the bit pattern of the predetermined field of the fetched instruction is not the specific pattern. Processor.
- the processor according to any one of (1) to (5), further including a rewrite execution unit that rewrites the stored content of the instruction conversion table.
- the rewriting execution unit rewrites the instruction conversion table to the content designated by the instruction when the instruction decoded by the instruction decoder is the rewriting instruction of the instruction conversion table (6)
- Processor described in. (8) store an extended field longer than the predetermined field in association with the bit pattern of the predetermined field of the instruction, and convert it into a new instruction having the extended field instead of the predetermined field of the fetched instruction
- An instruction conversion unit, A processor comprising an instruction decoder for decoding the new instruction.
- Memory for storing instruction sequences, An instruction conversion table storing an extended field longer than the predetermined field in association with a bit pattern of the predetermined field of the instruction; An extension field acquisition unit which acquires the extension field by referring to the instruction conversion table according to a bit pattern of the predetermined field of the instruction fetched from the memory; An information processing apparatus comprising: an instruction decoder for decoding a new instruction including the extension field instead of the predetermined field of the fetched instruction. (10) A processing method in a processor including an instruction conversion table which stores an extended field longer than the predetermined field in association with a bit pattern of the predetermined field of the instruction.
- Extracting the predetermined field of the fetched instruction Obtaining the extension field by referring to the instruction conversion table according to the extracted bit pattern of the predetermined field; And D. a process of decoding a new instruction having the extension field instead of the predetermined field of the fetched instruction.
- processor 110 fetch unit 120 instruction conversion unit 121 instruction conversion table 122 extension field acquisition unit 130 instruction decoder 140 execution unit 200 memory
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
フェッチされた命令の所定のフィールドを拡張して、命令の種類やオペランドの長さを確保する。 命令変換テーブルは、命令の所定のフィールドのビットパターンに関連付けて前記所定のフィールドより長い拡張フィールドを記憶する。拡張フィールド取得部は、フェッチされた命令の所定のフィールドのビットパターンによって命令変換テーブルを参照して、拡張フィールドを取得する。命令デコーダは、フェッチされた命令の所定のフィールドに代えて拡張フィールドを備える新たな命令について、デコード処理を行う。
Description
本技術は、プロセッサに関する。詳しくは、メモリから命令をフェッチしてデコード処理を行うプロセッサ、情報処理装置、および、これらにおける処理方法ならびに当該方法をコンピュータに実行させるプログラムに関する。
従来のプロセッサ、特に、CISC(Complex Instruction Set Computer)、VLIW(Very Long Instruction Word)やTTA(Transport Triggered Architecture)においては、複数の命令の組合せを実現するために命令語長が長くなる傾向がある。アプリケーションごとに使用される命令の組合せ出現頻度は異なる。そのため、特定のアプリケーションでは無駄が生じてコードサイズが大きくなるという問題がある。
一方、従来のプロセッサにおいては、命令のビットフィールド割当ては命令デコーダの設計の時点で確定させる必要がある。したがって、アプリケーションプログラムを実行するときには命令デコーダの論理が固定されているため、命令のビットフィールド割当てを変更することはできない。
そこで、例えば、命令セットを拡張するために可変長命令セットの命令をデコードする方法が提案されている(例えば、特許文献1参照。)。
上述の従来技術では、可変長命令セットの命令をデコードすることにより、命令セットを拡張している。しかしながら、この従来技術では、エスケープコードを使用して命令空間を拡張しており、エスケープコードを解釈するための制御が複雑になるという問題がある。また、エスケープコードによる拡張命令の頻度によっては、コードサイズが大きくなるという問題がある。
本技術はこのような状況に鑑みて生み出されたものであり、フェッチされた命令の所定のフィールドを変換することにより、実質的な命令語長を拡張して、命令の種類やオペランドの長さを確保することを目的とする。
本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、命令の所定のフィールドのビットパターンに関連付けて上記所定のフィールドより長い拡張フィールドを記憶する命令変換テーブルと、フェッチされた命令の上記所定のフィールドのビットパターンによって上記命令変換テーブルを参照して上記拡張フィールドを取得する拡張フィールド取得部と、上記フェッチされた命令の上記所定のフィールドに代えて上記拡張フィールドを備える新たな命令についてデコード処理を行う命令デコーダとを具備するプロセッサ、そのプロセッサを含む情報処理装置およびそれらにおける処理方法である。これにより、フェッチされた命令における所定のフィールドより長い拡張フィールドを備える新たな命令としてデコード処理を行うという作用をもたらす。
また、この第1の側面において、上記命令変換テーブルは、オペコードの少なくとも一部のビットパターンを上記所定のフィールドとして当該ビットパターンに関連付けて上記新たな命令のオペコードを上記拡張フィールドとして記憶するようにしてもよい。これにより、フェッチされた命令におけるオペコードより長いオペコードを備える新たな命令としてデコード処理を行うという作用をもたらす。
また、この第1の側面において、上記命令変換テーブルは、オペコードの少なくとも一部のビットパターンを上記所定のフィールドとして当該ビットパターンに関連付けて上記新たな命令のオペコードとオペランドの少なくとも一部とを上記拡張フィールドとして記憶するようにしてもよい。これにより、新たなオペランドを備える新たな命令としてデコード処理を行うという作用をもたらす。
また、この第1の側面において、上記命令変換テーブルは、上記拡張フィールドとしてモード情報を含み、上記命令デコーダは、上記モード情報に応じて上記新たな命令におけるオペランドを解釈するようにしてもよい。これにより、モード情報を含む拡張フィールドを備える新たな命令としてデコード処理を行うという作用をもたらす。
また、この第1の側面において、上記拡張フィールド取得部は、上記フェッチされた命令の上記所定のフィールドのビットパターンが特定のパターンであることを条件として上記拡張フィールドを取得し、上記命令デコーダは、上記フェッチされた命令の上記所定のフィールドのビットパターンが上記特定のパターンでない場合には上記フェッチされた命令についてデコード処理を行うようにしてもよい。これにより、命令の一部についてのみ拡張フィールドを備える新たな命令としてデコード処理を行うという作用をもたらす。
また、この第1の側面において、上記命令変換テーブルの記憶内容を書き替える書替え実行部をさらに具備してもよい。これにより、拡張フィールドを備える新たな命令を動的に変更するという作用をもたらす。
また、この第1の側面において、上記書替え実行部は、上記命令デコーダによってデコードされた命令が上記命令変換テーブルの書替え命令であった場合に、その命令によって指定された内容に上記命令変換テーブルを書き替えるようにしてもよい。これにより、書替え命令を用いて新たな命令を動的に変更するという作用をもたらす。
本技術によれば、フェッチされた命令の所定のフィールドを拡張して、命令の種類やオペランドの長さを確保することができるという優れた効果を奏し得る。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(オペコード拡張の例)
2.第2の実施の形態(オペランド拡張の例)
3.第3の実施の形態(一部の命令についてのみ拡張する例)
4.第4の実施の形態(命令参照テーブルを切り替える例)
1.第1の実施の形態(オペコード拡張の例)
2.第2の実施の形態(オペランド拡張の例)
3.第3の実施の形態(一部の命令についてのみ拡張する例)
4.第4の実施の形態(命令参照テーブルを切り替える例)
<1.第1の実施の形態>
[情報処理装置の構成]
図1は、本技術の第1の実施の形態における情報処理装置の構成例を示す図である。この情報処理装置は、プロセッサ100およびメモリ200を備える。
[情報処理装置の構成]
図1は、本技術の第1の実施の形態における情報処理装置の構成例を示す図である。この情報処理装置は、プロセッサ100およびメモリ200を備える。
メモリ200は、プロセッサ100における実行に必要なプログラムの命令やデータを記憶するものである。以下では、プロセッサ100がメモリ200から命令を読み出して(命令フェッチ)、その命令をデコードする一連の流れに着目して説明する。
プロセッサ100は、メモリ200から命令を読み出して、その命令を実行するものである。このプロセッサ100は、フェッチユニット110と、命令変換部120と、命令デコーダ130と、実行ユニット140とを備える。
フェッチユニット110は、メモリ200から命令を読み出す命令フェッチ処理を行うものである。このフェッチユニット110は、メモリ200に記憶されているプログラムの命令列から順番に命令を読み出す。このフェッチユニット110は、基本的にはアドレスの昇順に命令を読み出すが、分岐命令などにより分岐(ジャンプ)が生じる場合にはその分岐先から命令を読み出すことになる。
命令変換部120は、フェッチユニット110によって読み出された命令の所定のフィールドを置換して、命令変換するものである。この命令変換部120は、命令変換テーブル121および拡張フィールド取得部122を備える。
命令変換テーブル121は、命令の所定のフィールドのビットパターンに関連付けて、拡張フィールドを記憶するものである。この拡張フィールドは、元の命令の所定のフィールドよりも長いビット長を有する。
拡張フィールド取得部122は、フェッチされた命令の所定のフィールドのビットパターンによって、命令変換テーブル121を参照して、拡張フィールドを取得するものである。元の命令の所定のフィールドに代えて、この取得された拡張フィールドを置換することにより、命令変換が行われる。
命令デコーダ130は、命令変換部120によって変換された新たな命令についてデコード処理を行うものである。この命令デコーダ130によるデコード処理の結果、プロセッサ100の各部に対する制御が行われる。例えば、実行ユニット140における命令実行が制御される。
実行ユニット140は、命令デコーダ130によるデコード結果に従って、各種の命令を実行するものである。例えば、メモリ200へのアクセスや、(図示しない)演算器における演算処理などが実行される。
[命令フォーマット]
図2は、本技術の第1の実施の形態における変換前の命令フォーマットの一例を示す図である。
図2は、本技術の第1の実施の形態における変換前の命令フォーマットの一例を示す図である。
ここでは、命令長32ビットの命令を想定する。MSB(Most Significant Bit)側の第31ビットから第24ビットの8ビットがオペコードであり、残りの第23ビットから第0ビットの24ビットがオペランドである。
一般的なプロセッサにおいては、同図に示すような各種の命令が命令セットとして設けられる。システム関連命令としては、主にオペレーティングシステムによるシステム関数呼び出しのために使用されるシステムコール命令(syscall)や、何もしない命令(NOP:No Operation)等が分類される。
ロード命令は、メモリ200からの読出しを行うための命令である。ストア命令は、メモリ200への書込みを行うための命令である。レジスタ間転送命令は、プロセッサ100の内部レジスタ間の転送を行うための命令である。
加算命令は、加算処理を行うための命令である。減算命令は、減算処理を行うための命令である。論理演算命令は、論理演算処理を行うための命令である。乗算命令は、乗算処理を行うための命令である。除算命令は、除算処理を行うための命令である。
分岐命令は、プログラムの命令列における分岐を行うための命令である。分岐命令には、ある条件を満たした(または満たさなかった)ときに分岐を行う条件分岐命令と、無条件に分岐を行う無条件分岐命令とがある。
これらの命令を備えることを想定した場合、仮にそれぞれの命令の種類が32種類であるとすると、計320命令を設けることになる。オペコードとして8ビットを想定すると、表現できるのは最大256命令までである。この場合、例えば、乗算命令および除算命令を命令セットから除いて、残りの256命令を採用することが考えられる。しかし、乗算命令を多く必要とするアプリケーションもあり、命令の取捨選択は一概に決定できるものではない。そこで、この実施の形態においては、以下のようにオペコードを拡張することを考える。
図3は、本技術の第1の実施の形態におけるオペコード拡張の一例を示す図である。
この例では、8ビットのオペコードを12ビットに拡張して、計36ビットの命令に変換している。これにより、12ビットのオペコードにより表現できるのは最大4096命令となり、命令セットの設計の自由度を向上させることができる。
[命令変換テーブル]
図4は、本技術の第1の実施の形態における命令変換テーブル121による命令変換の一例を示す図である。
図4は、本技術の第1の実施の形態における命令変換テーブル121による命令変換の一例を示す図である。
上述のように、この実施の形態においては、変換前の命令のオペコードのビット長は8ビットである。命令変換テーブル121は、オペコードの8ビットのビットパターンに関連付けて、256個の拡張後の12ビットのオペコードを拡張フィールドとして記憶する。
拡張フィールド取得部122は、フェッチされた命令の8ビットのオペコードのビットパターンによって、命令変換テーブル121を参照して、拡張後の12ビットのオペコードを取得する。そして、元の命令の8ビットのオペコードに代えて、12ビットのオペコードを置換することにより、36ビット長の命令が得られる。このとき、24ビットのオペランドについては、元の命令のオペランドがそのまま使用される。
ただし、同図から明らかなように、命令変換テーブル121に記憶される拡張後の12ビットのオペコードは、256個である。したがって、命令変換テーブル121の記憶内容を変更しないことを前提とすれば、一度に使用可能な命令の種類は256命令である。それ以外の命令を使用するためには、命令変換テーブル121の記憶内容を変更する必要が生じる。これについては、後述の第4の実施の形態において説明する。
[動作]
図5は、本技術の第1の実施の形態におけるプロセッサ100の処理手順の一例を示す流れ図である。
図5は、本技術の第1の実施の形態におけるプロセッサ100の処理手順の一例を示す流れ図である。
メモリ200からフェッチユニット110によって命令がフェッチされると、拡張フィールド取得部122は、フェッチされた命令からオペコードのビットフィールドを抽出する(ステップS911)。この実施の形態においては、上述のように、MSB側の第31ビットから第24ビットの8ビットがオペコードである。
そして、拡張フィールド取得部122は、抽出された8ビットのオペコードのビットフィールドによって命令変換テーブル121を参照して、12ビットのオペコードを取得する(ステップS913)。これにより、オペコードが12ビットに拡張された命令に変換される。
命令デコーダ130は、拡張フィールド取得部122により取得された12ビットのオペコードと、元の命令のオペランドとを結合した、新たな命令をデコードする(ステップS914)。
このように、本技術の第1の実施の形態によれば、命令変換テーブル121を参照することにより、命令のオペコードを拡張することができる。
<2.第2の実施の形態>
上述の第1の実施の形態では、命令のオペコードを8ビットから12ビットに拡張する一方で、24ビットのオペランドについては元の命令のオペランドをそのまま用いていた。この第2の実施の形態では、オペランドとして使用可能なフィールドについて、拡張を図る。なお、プロセッサ100としての基本的な構成については上述の第1の実施の形態と同様であるため、詳細な説明は省略する。
上述の第1の実施の形態では、命令のオペコードを8ビットから12ビットに拡張する一方で、24ビットのオペランドについては元の命令のオペランドをそのまま用いていた。この第2の実施の形態では、オペランドとして使用可能なフィールドについて、拡張を図る。なお、プロセッサ100としての基本的な構成については上述の第1の実施の形態と同様であるため、詳細な説明は省略する。
[命令フォーマット]
図6は、本技術の第2の実施の形態における変換前の命令フォーマットの一例を示す図である。
図6は、本技術の第2の実施の形態における変換前の命令フォーマットの一例を示す図である。
ここでは、上述の第1の実施の形態と同様に、命令長32ビットの命令を想定し、MSB側の8ビットがオペコードであり、残りの24ビットがオペランドである。
この第2の実施の形態においては、オペランドの最上位ビットにモード情報(mode)を設けて、このモード情報によってオペランドのフィールドの解釈を変更することを想定する。すなわち、モード情報が0を示す場合には、レジスタ操作を行う命令として、5ビット分のデスティネーションレジスタを1つと、5ビット分のソースレジスタを2つ指定できるものとし、残りの8ビットはイミディエイト(即値)として用いることができる。レジスタ指定のフィールドとして5ビットずつを想定しているため、それぞれ32個のレジスタを指定することができる。これにより、例えば、2つのソースレジスタの内容とイミディエイトに対して演算を行った結果を、デスティネーションレジスタに保持する処理を行うことができる。
モード情報が1を示す場合には、メモリアクセスを行う命令として、5ビット分のデスティネーションレジスタおよびベースアドレスレジスタをそれぞれ1つずつ指定できるものとし、残りの13ビットはディスプレースメントとして用いることができる。これにより、例えば、ベースアドレスレジスタの内容にディスプレースメントを加算したアドレスにアクセスを行って、その結果をデスティネーションレジスタに保持する処理を行うことができる。
これらの場合、レジスタ指定のビット長や、イミディエイトまたはディスプレースメントについて、24ビットに固定されたオペランドのフィールド内に収める必要がある。したがって、イミディエイトやディスプレースメントのビット長を長くしたい場合でも、ビットフィールドが足りないという問題を生じる。これに対して、この第2の実施の形態では、オペランドの一部を命令変換テーブル121に記憶しておくことにより、オペランドを拡張する。
図7は、本技術の第2の実施の形態における変換後の命令フォーマットの一例を示す図である。
この第2の実施の形態においては、オペランドを2つに分け、前半のオペランド(1)を命令変換テーブル121に記憶して、後半のオペランド(2)としては元の命令のオペランドをそのまま使用する。これにより、例えば、19ビットのイミディエイトまたは24ビットのディスプレースメントを使用することができる。
図8は、本技術の第2の実施の形態における命令変換テーブル121による命令変換の一例を示す図である。
この例では、命令変換テーブル121は、オペコードの8ビットのビットパターンに関連付けて256個のエントリを記憶する。各エントリは、9ビットのオペコード、1ビットのモード情報、5ビットのデスティネーションレジスタ、および、5ビットのソースレジスタまたはベースアドレスレジスタの各フィールドを拡張フィールドとして記憶する。これにより、オペコードだけでなく、オペランドについてもフィールドを拡張する。
このように、本技術の第2の実施の形態によれば、命令変換テーブル121を参照することにより、命令のオペランドを拡張することができる。
<3.第3の実施の形態>
上述の第1または第2の実施の形態では、全ての命令についてオペコードまたはオペランドを拡張していた。しかし、実際には拡張が不要な命令もあり、全ての命令を変換する必要がない場合もある。そこで、この第3の実施の形態では、一部の命令についてのみ変換を行い、他の命令についてはそのままの状態でデコード処理を行うことを想定する。なお、プロセッサ100としての基本的な構成については上述の第1の実施の形態と同様であるため、詳細な説明は省略する。
上述の第1または第2の実施の形態では、全ての命令についてオペコードまたはオペランドを拡張していた。しかし、実際には拡張が不要な命令もあり、全ての命令を変換する必要がない場合もある。そこで、この第3の実施の形態では、一部の命令についてのみ変換を行い、他の命令についてはそのままの状態でデコード処理を行うことを想定する。なお、プロセッサ100としての基本的な構成については上述の第1の実施の形態と同様であるため、詳細な説明は省略する。
図9は、本技術の第3の実施の形態における変換前後の命令フォーマットの一例を示す図である。
この第3の実施の形態では、一部の命令のみを命令変換の対象として、それ以外の場合には命令変換を行わないことを想定する。すなわち、拡張フィールド取得部122は、フェッチされた命令の所定のフィールドのビットパターンが特定のパターンであることを条件として拡張フィールドを取得し、特定のパターンでなければ拡張フィールドを取得しない。
例えば、同図におけるaのように、オペコードが「0x000」から「0x0bf」の場合には、拡張フィールド取得部122は拡張フィールドを取得せず、命令デコーダ130はフェッチされた命令についてデコード処理を行う。一方、同図におけるbのように、オペコードが「0x0c0」から「0x0ff」の場合には、拡張フィールド取得部122は拡張フィールドを取得し、命令デコーダ130は拡張フィールドを備える新たな命令についてデコード処理を行う。なお、「0x」は後続の数字が16進数表記であることを意味する。
図10は、本技術の第3の実施の形態における命令変換テーブル121による命令変換の一例を示す図である。
この例では、8ビットのオペコードの上位2ビットが「0b11」であることを条件として、拡張フィールド取得部122は命令変換テーブル121を参照して拡張フィールドを取得する。なお、「0b」は後続の数字が2進数表記であることを意味する。
この例の命令変換テーブル121は、それぞれ20ビットからなる64個のエントリを有し、8ビットのオペコードの下位6ビットのビットフィールドによって参照される。命令変換テーブル121の各エントリは、9ビットのオペコード、1ビットのモード情報、5ビットのデスティネーションレジスタ、5ビットのソースレジスタまたはベースアドレスレジスタの各フィールドを備える。
取得された20ビットの拡張フィールドは、元の命令の24ビットのオペランドと結合されて、計44ビットの新たな命令を形成する。命令デコーダ130はこの新たな命令についてデコード処理を行う。20ビットの拡張フィールドには、9ビットのオペコードに加えて21ビットのオペランド(1)が含まれる。すなわち、元の命令の24ビットのオペランドをオペランド(2)とすると、オペランド(1)とオペランド(2)とを合わせた45ビットのオペランドを構成する。このように、オペコードを拡張するだけでなく、オペランドについても拡張することができる。すなわち、図7において説明したように、例えば、19ビットのイミディエイトまたは24ビットのディスプレースメントを使用することができる。
[動作]
図11は、本技術の第3の実施の形態におけるプロセッサ100の処理手順の一例を示す流れ図である。なお、この第3の実施の形態におけるステップS911、S913およびS914は、上述の第1の実施の形態と同様である。
図11は、本技術の第3の実施の形態におけるプロセッサ100の処理手順の一例を示す流れ図である。なお、この第3の実施の形態におけるステップS911、S913およびS914は、上述の第1の実施の形態と同様である。
ステップS911において、フェッチされた命令からオペコードのビットフィールドが抽出されると、その命令が変換対象命令であるか否かが判断される(ステップS912)。変換対象命令であれば(ステップS912:Yes)、拡張フィールド取得部122によって拡張フィールドが取得され(ステップS913)、命令デコーダ130は元の命令のオペランドと結合された新たな命令をデコードする(ステップS914)。
一方、フェッチされた命令が変換対象命令でなければ(ステップS912:No)、命令デコーダ130はフェッチされた命令をデコードする(ステップS915)。
このように、本技術の第3の実施の形態によれば、一部の命令についてのみ変換を行い、他の命令についてはそのままの状態でデコード処理を行うことができる。
<4.第4の実施の形態>
上述の第1乃至第3の実施の形態では、命令変換テーブル121の内容は予め設定されていることを想定していたが、命令変換テーブル121の内容を書き替えることも可能である。この第4の実施の形態では、プログラムの実行中に命令変換テーブル121の内容を動的に書き替える手法について説明する。
上述の第1乃至第3の実施の形態では、命令変換テーブル121の内容は予め設定されていることを想定していたが、命令変換テーブル121の内容を書き替えることも可能である。この第4の実施の形態では、プログラムの実行中に命令変換テーブル121の内容を動的に書き替える手法について説明する。
[情報処理装置の構成]
図12は、本技術の第4の実施の形態における情報処理装置の構成例を示す図である。この第4の実施の形態における情報処理装置は、命令変換テーブル121を書き替えることによりN個の何れかに切り替えて使用するものである。この書替えは、プログラムに従って実行ユニット140が行う。
図12は、本技術の第4の実施の形態における情報処理装置の構成例を示す図である。この第4の実施の形態における情報処理装置は、命令変換テーブル121を書き替えることによりN個の何れかに切り替えて使用するものである。この書替えは、プログラムに従って実行ユニット140が行う。
[プログラム]
図13は、本技術の第4の実施の形態における命令変換テーブル121の書替えを行うプログラムの一例を示す図である。
図13は、本技術の第4の実施の形態における命令変換テーブル121の書替えを行うプログラムの一例を示す図である。
第1行目から第5行目は初期化部分である。#ins_defは、変換後の命令が記憶されるメモリ領域のアドレスである。第1行目の命令は、レジスタr4に#ins_defのアドレスを設定するmove命令である。
t0からt3は命令変換テーブル121の4つのエントリである。第2行目から第5行目の命令は、t0からt3に命令変換テーブル121の設定内容をメモリ200からロードするload命令である。これにより、変換後の命令が命令変換テーブル121に設定される。
なお、命令変換テーブル121の初期値をNOPに設定しておくことにより、誤動作を防ぐことができる。
#dataは、データが記憶されるメモリ領域のアドレスである。第11行目は、データアドレスポインタとして使用されるレジスタr4に#dataのアドレスを設定するmove命令である。第12行目から第14行目は、レジスタr0からr2にデータをメモリ200からロードするload命令である。これにより、命令変換テーブル121の切替えを行うことができる。
第15行目の命令は、レジスタr4に#ins_defのアドレスを設定するmove命令である。
第16行目の命令は、t0に命令変換テーブル121の設定内容をメモリ200からロードするload命令である。第17行目の命令は、命令変換テーブル121を参照して拡張フィールドに差し替える命令である。
第18行目の命令は、t0に命令変換テーブル121の設定内容をメモリ200からロードするload命令である。第19行目の命令は、命令変換テーブル121を参照して拡張フィールドに差し替える命令である。
このように、本技術の第4の実施の形態によれば、命令変換テーブル121の内容を動的に切り替えることができる。したがって、上述の例のように、変換により8ビットのオペコードを12ビットに拡張する場合、最大で4096命令の中から任意の256命令を命令変換テーブル121に登録しておき、これを書き替えることにより4096命令を全て実行することが可能になる。
すなわち、本技術の実施の形態によれば、命令語長を縮小することができるため、プログラムのコードサイズを小さくすることができる。また、アプリケーションプログラム毎、または、アプリケーションプログラムの区間(例えばサブルーチン)毎に、命令変換テーブル121の内容をプログラム実行時に変更することにより、コードサイズを最適化することができる。そして、これらによる回路規模や命令フェッチ削減により、消費電力を削減することができる。
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disc)、メモリカード、ブルーレイディスク(Blu-ray(登録商標)Disc)等を用いることができる。
なお、本明細書に記載された効果はあくまで例示であって、限定されるものではなく、また、他の効果があってもよい。
なお、本技術は以下のような構成もとることができる。
(1)命令の所定のフィールドのビットパターンに関連付けて前記所定のフィールドより長い拡張フィールドを記憶する命令変換テーブルと、
フェッチされた命令の前記所定のフィールドのビットパターンによって前記命令変換テーブルを参照して前記拡張フィールドを取得する拡張フィールド取得部と、
前記フェッチされた命令の前記所定のフィールドに代えて前記拡張フィールドを備える新たな命令についてデコード処理を行う命令デコーダと
を具備するプロセッサ。
(2)前記命令変換テーブルは、オペコードの少なくとも一部のビットパターンを前記所定のフィールドとして当該ビットパターンに関連付けて前記新たな命令のオペコードを前記拡張フィールドとして記憶する
前記(1)に記載のプロセッサ。
(3)前記命令変換テーブルは、オペコードの少なくとも一部のビットパターンを前記所定のフィールドとして当該ビットパターンに関連付けて前記新たな命令のオペコードとオペランドの少なくとも一部とを前記拡張フィールドとして記憶する
前記(1)または(2)に記載のプロセッサ。
(4)前記命令変換テーブルは、前記拡張フィールドとしてモード情報を含み、
前記命令デコーダは、前記モード情報に応じて前記新たな命令におけるオペランドを解釈する
前記(1)から(3)のいずれかに記載のプロセッサ。
(5)前記拡張フィールド取得部は、前記フェッチされた命令の前記所定のフィールドのビットパターンが特定のパターンであることを条件として前記拡張フィールドを取得し、
前記命令デコーダは、前記フェッチされた命令の前記所定のフィールドのビットパターンが前記特定のパターンでない場合には前記フェッチされた命令についてデコード処理を行う
前記(1)から(4)のいずれかに記載のプロセッサ。
(6)前記命令変換テーブルの記憶内容を書き替える書替え実行部をさらに具備する前記(1)から(5)のいずれかに記載のプロセッサ。
(7)前記書替え実行部は、前記命令デコーダによってデコードされた命令が前記命令変換テーブルの書替え命令であった場合に、その命令によって指定された内容に前記命令変換テーブルを書き替える
前記(6)に記載のプロセッサ。
(8)命令の所定のフィールドのビットパターンに関連付けて前記所定のフィールドより長い拡張フィールドを記憶して、フェッチされた命令の前記所定のフィールドに代えて前記拡張フィールドを備える新たな命令に変換する命令変換部と、
前記新たな命令についてデコード処理を行う命令デコーダと
を具備するプロセッサ。
(9)命令列を記憶するメモリと、
命令の所定のフィールドのビットパターンに関連付けて前記所定のフィールドより長い拡張フィールドを記憶する命令変換テーブルと、
前記メモリからフェッチされた命令の前記所定のフィールドのビットパターンによって前記命令変換テーブルを参照して前記拡張フィールドを取得する拡張フィールド取得部と、
前記フェッチされた命令の前記所定のフィールドに代えて前記拡張フィールドを備える新たな命令についてデコード処理を行う命令デコーダと
を具備する情報処理装置。
(10)命令の所定のフィールドのビットパターンに関連付けて前記所定のフィールドより長い拡張フィールドを記憶する命令変換テーブルを備えるプロセッサにおける処理方法であって、
フェッチされた命令の前記所定のフィールドを抽出する手順と、
前記抽出された前記所定のフィールドのビットパターンによって前記命令変換テーブルを参照して前記拡張フィールドを取得する手順と、
前記フェッチされた命令の前記所定のフィールドに代えて前記拡張フィールドを備える新たな命令についてデコード処理を行う手順と
を具備する処理方法。
(1)命令の所定のフィールドのビットパターンに関連付けて前記所定のフィールドより長い拡張フィールドを記憶する命令変換テーブルと、
フェッチされた命令の前記所定のフィールドのビットパターンによって前記命令変換テーブルを参照して前記拡張フィールドを取得する拡張フィールド取得部と、
前記フェッチされた命令の前記所定のフィールドに代えて前記拡張フィールドを備える新たな命令についてデコード処理を行う命令デコーダと
を具備するプロセッサ。
(2)前記命令変換テーブルは、オペコードの少なくとも一部のビットパターンを前記所定のフィールドとして当該ビットパターンに関連付けて前記新たな命令のオペコードを前記拡張フィールドとして記憶する
前記(1)に記載のプロセッサ。
(3)前記命令変換テーブルは、オペコードの少なくとも一部のビットパターンを前記所定のフィールドとして当該ビットパターンに関連付けて前記新たな命令のオペコードとオペランドの少なくとも一部とを前記拡張フィールドとして記憶する
前記(1)または(2)に記載のプロセッサ。
(4)前記命令変換テーブルは、前記拡張フィールドとしてモード情報を含み、
前記命令デコーダは、前記モード情報に応じて前記新たな命令におけるオペランドを解釈する
前記(1)から(3)のいずれかに記載のプロセッサ。
(5)前記拡張フィールド取得部は、前記フェッチされた命令の前記所定のフィールドのビットパターンが特定のパターンであることを条件として前記拡張フィールドを取得し、
前記命令デコーダは、前記フェッチされた命令の前記所定のフィールドのビットパターンが前記特定のパターンでない場合には前記フェッチされた命令についてデコード処理を行う
前記(1)から(4)のいずれかに記載のプロセッサ。
(6)前記命令変換テーブルの記憶内容を書き替える書替え実行部をさらに具備する前記(1)から(5)のいずれかに記載のプロセッサ。
(7)前記書替え実行部は、前記命令デコーダによってデコードされた命令が前記命令変換テーブルの書替え命令であった場合に、その命令によって指定された内容に前記命令変換テーブルを書き替える
前記(6)に記載のプロセッサ。
(8)命令の所定のフィールドのビットパターンに関連付けて前記所定のフィールドより長い拡張フィールドを記憶して、フェッチされた命令の前記所定のフィールドに代えて前記拡張フィールドを備える新たな命令に変換する命令変換部と、
前記新たな命令についてデコード処理を行う命令デコーダと
を具備するプロセッサ。
(9)命令列を記憶するメモリと、
命令の所定のフィールドのビットパターンに関連付けて前記所定のフィールドより長い拡張フィールドを記憶する命令変換テーブルと、
前記メモリからフェッチされた命令の前記所定のフィールドのビットパターンによって前記命令変換テーブルを参照して前記拡張フィールドを取得する拡張フィールド取得部と、
前記フェッチされた命令の前記所定のフィールドに代えて前記拡張フィールドを備える新たな命令についてデコード処理を行う命令デコーダと
を具備する情報処理装置。
(10)命令の所定のフィールドのビットパターンに関連付けて前記所定のフィールドより長い拡張フィールドを記憶する命令変換テーブルを備えるプロセッサにおける処理方法であって、
フェッチされた命令の前記所定のフィールドを抽出する手順と、
前記抽出された前記所定のフィールドのビットパターンによって前記命令変換テーブルを参照して前記拡張フィールドを取得する手順と、
前記フェッチされた命令の前記所定のフィールドに代えて前記拡張フィールドを備える新たな命令についてデコード処理を行う手順と
を具備する処理方法。
100 プロセッサ
110 フェッチユニット
120 命令変換部
121 命令変換テーブル
122 拡張フィールド取得部
130 命令デコーダ
140 実行ユニット
200 メモリ
110 フェッチユニット
120 命令変換部
121 命令変換テーブル
122 拡張フィールド取得部
130 命令デコーダ
140 実行ユニット
200 メモリ
Claims (10)
- 命令の所定のフィールドのビットパターンに関連付けて前記所定のフィールドより長い拡張フィールドを記憶する命令変換テーブルと、
フェッチされた命令の前記所定のフィールドのビットパターンによって前記命令変換テーブルを参照して前記拡張フィールドを取得する拡張フィールド取得部と、
前記フェッチされた命令の前記所定のフィールドに代えて前記拡張フィールドを備える新たな命令についてデコード処理を行う命令デコーダと
を具備するプロセッサ。 - 前記命令変換テーブルは、オペコードの少なくとも一部のビットパターンを前記所定のフィールドとして当該ビットパターンに関連付けて前記新たな命令のオペコードを前記拡張フィールドとして記憶する
請求項1記載のプロセッサ。 - 前記命令変換テーブルは、オペコードの少なくとも一部のビットパターンを前記所定のフィールドとして当該ビットパターンに関連付けて前記新たな命令のオペコードとオペランドの少なくとも一部とを前記拡張フィールドとして記憶する
請求項1記載のプロセッサ。 - 前記命令変換テーブルは、前記拡張フィールドとしてモード情報を含み、
前記命令デコーダは、前記モード情報に応じて前記新たな命令におけるオペランドを解釈する
請求項1記載のプロセッサ。 - 前記拡張フィールド取得部は、前記フェッチされた命令の前記所定のフィールドのビットパターンが特定のパターンであることを条件として前記拡張フィールドを取得し、
前記命令デコーダは、前記フェッチされた命令の前記所定のフィールドのビットパターンが前記特定のパターンでない場合には前記フェッチされた命令についてデコード処理を行う
請求項1記載のプロセッサ。 - 前記命令変換テーブルの記憶内容を書き替える書替え実行部をさらに具備する請求項1記載のプロセッサ。
- 前記書替え実行部は、前記命令デコーダによってデコードされた命令が前記命令変換テーブルの書替え命令であった場合に、その命令によって指定された内容に前記命令変換テーブルを書き替える
請求項6記載のプロセッサ。 - 命令の所定のフィールドのビットパターンに関連付けて前記所定のフィールドより長い拡張フィールドを記憶して、フェッチされた命令の前記所定のフィールドに代えて前記拡張フィールドを備える新たな命令に変換する命令変換部と、
前記新たな命令についてデコード処理を行う命令デコーダと
を具備するプロセッサ。 - 命令列を記憶するメモリと、
命令の所定のフィールドのビットパターンに関連付けて前記所定のフィールドより長い拡張フィールドを記憶する命令変換テーブルと、
前記メモリからフェッチされた命令の前記所定のフィールドのビットパターンによって前記命令変換テーブルを参照して前記拡張フィールドを取得する拡張フィールド取得部と、
前記フェッチされた命令の前記所定のフィールドに代えて前記拡張フィールドを備える新たな命令についてデコード処理を行う命令デコーダと
を具備する情報処理装置。 - 命令の所定のフィールドのビットパターンに関連付けて前記所定のフィールドより長い拡張フィールドを記憶する命令変換テーブルを備えるプロセッサにおける処理方法であって、
フェッチされた命令の前記所定のフィールドを抽出する手順と、
前記抽出された前記所定のフィールドのビットパターンによって前記命令変換テーブルを参照して前記拡張フィールドを取得する手順と、
前記フェッチされた命令の前記所定のフィールドに代えて前記拡張フィールドを備える新たな命令についてデコード処理を行う手順と
を具備する処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/763,492 US11126434B2 (en) | 2017-11-21 | 2018-08-14 | Processor, information processing apparatus, and processing method for converting a field of an instruction |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017223376A JP2019095952A (ja) | 2017-11-21 | 2017-11-21 | プロセッサ、情報処理装置および処理方法 |
JP2017-223376 | 2017-11-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019102662A1 true WO2019102662A1 (ja) | 2019-05-31 |
Family
ID=66631574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2018/030256 WO2019102662A1 (ja) | 2017-11-21 | 2018-08-14 | プロセッサ、情報処理装置および処理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11126434B2 (ja) |
JP (1) | JP2019095952A (ja) |
WO (1) | WO2019102662A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021025490A1 (ko) * | 2019-08-06 | 2021-02-11 | 주식회사 아이씨티케이 홀딩스 | 프로세서, 프로세서의 동작 방법 및 이를 포함한 전자 장치 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08286911A (ja) * | 1995-04-11 | 1996-11-01 | Mitsubishi Electric Corp | 機械語命令翻訳方法 |
JP2007094813A (ja) * | 2005-09-29 | 2007-04-12 | Renesas Technology Corp | プロセッサ |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE520511C2 (sv) * | 1997-12-02 | 2003-07-22 | Ericsson Telefon Ab L M | Processor och förfarande för instruktionsavkodning |
US6662361B1 (en) * | 2000-01-14 | 2003-12-09 | International Business Machines Corporation | Method, system, program, and data structures for transforming an instruction in a first bit architecture to an instruction in a second bit architecture |
JP3729759B2 (ja) * | 2001-08-07 | 2005-12-21 | 株式会社ルネサステクノロジ | 圧縮された命令コードを読み出すマイクロコントローラ、命令コードを圧縮して格納するプログラムメモリ |
JP4035004B2 (ja) * | 2002-06-26 | 2008-01-16 | 株式会社ルネサステクノロジ | 情報処理装置 |
US7917734B2 (en) | 2003-06-30 | 2011-03-29 | Intel Corporation | Determining length of instruction with multiple byte escape code based on information from other than opcode byte |
US7614020B2 (en) * | 2005-06-27 | 2009-11-03 | Ikoa Corporation | Structurally field-configurable semiconductor array for in-memory processing of stateful, transaction-oriented systems |
US7703088B2 (en) * | 2005-09-30 | 2010-04-20 | Intel Corporation | Compressing “warm” code in a dynamic binary translation environment |
CN108874693B (zh) * | 2011-01-27 | 2022-09-23 | 英特尔公司 | 使用处理器的转换后备缓冲器的基于客户指令到本机指令范围的映射 |
WO2012103359A2 (en) * | 2011-01-27 | 2012-08-02 | Soft Machines, Inc. | Hardware acceleration components for translating guest instructions to native instructions |
-
2017
- 2017-11-21 JP JP2017223376A patent/JP2019095952A/ja active Pending
-
2018
- 2018-08-14 US US16/763,492 patent/US11126434B2/en active Active
- 2018-08-14 WO PCT/JP2018/030256 patent/WO2019102662A1/ja active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08286911A (ja) * | 1995-04-11 | 1996-11-01 | Mitsubishi Electric Corp | 機械語命令翻訳方法 |
JP2007094813A (ja) * | 2005-09-29 | 2007-04-12 | Renesas Technology Corp | プロセッサ |
Also Published As
Publication number | Publication date |
---|---|
US20200310806A1 (en) | 2020-10-01 |
US11126434B2 (en) | 2021-09-21 |
JP2019095952A (ja) | 2019-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101019347B1 (ko) | 프리―디코딩 가변 길이 명령들 | |
US7979676B2 (en) | Method for instructing a data processor to process data | |
US5905893A (en) | Microprocessor adapted for executing both a non-compressed fixed length instruction set and a compressed variable length instruction set | |
JP2816248B2 (ja) | データプロセッサ | |
US20060174089A1 (en) | Method and apparatus for embedding wide instruction words in a fixed-length instruction set architecture | |
KR20100125331A (ko) | X86 가상머신을 지원하는 risc 프로세서 장치 및 방법 | |
JP4228241B2 (ja) | 演算処理装置 | |
JPH1049369A (ja) | データ処理装置 | |
WO2019102662A1 (ja) | プロセッサ、情報処理装置および処理方法 | |
JP2007122626A (ja) | マイクロプロセッサ | |
JP2002229778A (ja) | 高速ディスプレースメント付きpc相対分岐方式 | |
US5774694A (en) | Method and apparatus for emulating status flag | |
JP3901670B2 (ja) | データ処理装置 | |
JP3915019B2 (ja) | Vliwプロセッサ、プログラム生成装置、および記録媒体 | |
JP3472504B2 (ja) | 命令解読方法、命令解読装置及びデータ処理装置 | |
JP2004005738A5 (ja) | ||
JP5263497B2 (ja) | 信号処理プロセッサ及び半導体装置 | |
JP5263498B2 (ja) | 信号処理プロセッサ及び半導体装置 | |
JP2006079451A (ja) | 情報処理装置及び情報処理方法 | |
KR20000003447A (ko) | 무조건 분기 명령어의 수행 시간을 줄이기 위한 분기 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18880914 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 18880914 Country of ref document: EP Kind code of ref document: A1 |