WO1999027439A1 - Systeme informatique - Google Patents
Systeme informatique Download PDFInfo
- Publication number
- WO1999027439A1 WO1999027439A1 PCT/JP1998/005230 JP9805230W WO9927439A1 WO 1999027439 A1 WO1999027439 A1 WO 1999027439A1 JP 9805230 W JP9805230 W JP 9805230W WO 9927439 A1 WO9927439 A1 WO 9927439A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- entry
- instruction
- stack
- written
- pointer
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 6
- 230000006870 function Effects 0.000 claims description 5
- 239000000872 buffer Substances 0.000 claims description 3
- 238000012217 deletion Methods 0.000 claims 1
- 230000037430 deletion Effects 0.000 claims 1
- 238000010276 construction Methods 0.000 abstract 1
- 230000008859 change Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- 238000006243 chemical reaction Methods 0.000 description 4
- 101100273030 Schizosaccharomyces pombe (strain 972 / ATCC 24843) caf1 gene Proteins 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000013256 coordination polymer Substances 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- HNPWTDUZIXAJSA-UHFFFAOYSA-N 5,5-dimethyl-2-(3-methylbutanoyl)cyclohexane-1,3-dione Chemical compound CC(C)CC(=O)C1C(=O)CC(C)(C)CC1=O HNPWTDUZIXAJSA-UHFFFAOYSA-N 0.000 description 1
- 101000658124 Apomastus schlingeri Mu-cyrtautoxin-As1a Proteins 0.000 description 1
- 101150071111 FADD gene Proteins 0.000 description 1
- -1 lrem Chemical compound 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 239000012536 storage buffer Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3865—Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- 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/3017—Runtime instruction translation, e.g. macros
-
- 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, look ahead
-
- 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, look ahead
- G06F9/3824—Operand accessing
-
- 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, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- 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, look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
Definitions
- the present invention relates to a computer system having a novel configuration for processing a program described in a machine language of a stack machine at a high speed.
- the execution of instructions is basically performed in the order of the program (in-order). That is, the operation instruction in the stack machine instructs an operation such as popping the operand 'source' data from the stack, executing the operation, and pushing the operation result onto the operand 'stack.
- the program written as such a chain of instructions is executed sequentially.
- the present invention has been made in order to solve the above problems, and has an accurate
- the purpose is to provide a computer system that processes programs written in the machine language of a stack machine more efficiently out-of-order while guaranteeing exception handling. Disclosure of the invention
- the computer system includes a data cache and an integrated register file in which data is written to each entry, and an integrated register for each entry so that the address of the file entry is written.
- An advance queue consisting of a stack consisting of a 'stack and a completion pointer' stack, and an instruction queue consisting of a FIFO queue in which the contents of individual instructions are written to each entry.
- an operation unit adapted to execute the operation, and a load Z store unit capable of accessing the data cache and the integrated register file.
- the forward pointer stack and the integrated register file are operated according to the contents of the instruction, and the contents of the instruction are written to the instruction queue. I'm wearing At this time, the stack operation on the operand's stack included in the instruction is similarly applied to the forward pointer stack.
- one unregistered integrated register is allocated to one entry of the file to hold the data, and Push the entry's address onto the forward-pointing stack.
- an arithmetic instruction is the content of writing and all necessary source data are in the integrated register, there is an entry that has already been written in the file, and if the arithmetic unit is available, the operation Start execution. If the execution of the operation is completed normally, the result of the operation is written to the entry of the integrated register file which is the destination. Completion of the instruction held in the entry at the head of the instruction queue is possible, and if so, the entry at the head of the instruction queue is completed. Completion pointer that reproduces the behavior of the forward pointer stack when the retained instruction is decoded based on the contents.Manipulates the stack, removes the first entry from the instruction queue, and completes by pop operation. The pointer of the pointer is lost in the pointer's stack. The entry of the file entry is deallocated. BRIEF DESCRIPTION OF THE FIGURES
- FIG. 1 is a block diagram showing a basic configuration of a preferred computer system according to the present invention
- FIG. 2 is a diagram showing a configuration of a forward pointer / stack and a completion pointer / stack
- FIG. FIG. 4 is a diagram showing a detailed configuration of each entry of an integrated register file in the first embodiment of the invention
- FIG. 4 is a diagram showing a configuration of an instruction queue
- FIG. 5 is a detail of each entry of an instruction queue.
- FIGS. 6 to 12 show a forward pointer for each cycle, a stack, a completion pointer, a stack, an instruction queue, and an integrated register.
- FIG. 13 is a diagram specifically showing the contents of the program.
- FIG. 14 is a diagram showing the detailed configuration of each entry of the integrated register file in the second embodiment of the present invention, which will be described later.
- FIGS. FIG. 13 is an explanatory diagram specifically showing contents of a forward pointer stack, a completion pointer stack, an instruction queue, and an integrated register file in each operation example of the second embodiment of the invention.
- the embodiment of the computer according to the present invention described below executes basic instructions of a stack machine defined by a Java Virtual Machine (Java VM) by hardware. That is, the data word length is set to 32 bits, and operations such as word / store and arithmetic / logic operation are performed in units of the data word. Thus, for example, an arithmetic operation between double words produces a two-word operation result based on four-word source 'data by combining two words.
- a stack in which data is pushed / popped in units of words is referred to as a word stack in order to distinguish it from a pointer stack described later.
- Java VM originally contains complex instructions that are not assumed to be executed by hardware
- the following embodiment of the computer system according to the present invention executes the following basic instructions by hardware. It shall be.
- Fig. 1 is a block diagram of a computer system.
- 10 is an instruction cache
- 11 is a data 'cache
- 20 is an instruction fetch' unit
- 21 is an instruction decode 'setting unit
- 3 is a forward pointer
- 3 a is the forward pointer 'Stack history file
- 4 is the complete pointer stack
- 5 is the instruction queue
- 6 is the integrated register
- 7 is the free list
- 8 0 and 8 1 are the arithmetic units 0 and 8, respectively.
- 1, 8 2 indicates a branch unit
- 8 3 indicates a load Z store unit.
- Instruction fetch 'unit is provided with a program counter (not shown) (p C register), and fetches instructions from the instruction cache, the instruction decode' pass setting unit. It is also responsible for branch prediction and branch execution.
- p C register program counter
- the instruction decode 'setting unit' decodes the instruction passed from the instruction fetch 'unit, and executes the forward pointer' stack, instruction queue, and integration register described later so that the operations and the like included in the instruction are executed by data driving. Generates various signals for setting star files, etc.
- the pointer stack consists of a stack in which the address of the entry in the unified register file is written to each entry.
- the state where the word 'stack' is «, wordl, word2, word3, word4 (the right end is the stack top) means that in the computer system according to the present invention, the pointer 'stack' is .. ..., ⁇ a),
- the computer system of the present invention has two pointer stacks, an advanced pointer stack (APS; Advanced Pointer Stack) and a completed pointer stack (CPS; Completed Pointer Stack).
- APS Advanced Pointer Stack
- CPS Completed Pointer Stack
- a forward pointer 'stack' (hereinafter referred to as APS) and an integrated register are read.
- APS forward pointer 'stack'
- the forward pointer stack reflects the stack operation by all the decoded 'set' instructions.
- the completion pointer 'stack (hereinafter referred to as CPS) reflects the stack operation by all completed instructions in program order.
- CPS completion pointer 'stack
- the computer system of the present invention enables out-of-order execution based on the principle of data drive.
- the completion pointer stack is executed in-order to guarantee accurate exception handling. It exists to compose the state of the case.
- each pointer stack has a circular buffer structure, and has two registers called a push pointer and a bottom pointer.
- the push 'pointer points up one level in the top-level entry that holds the address of the entry in the unified register.
- the bottom 'pointer points to the lowest entry that holds the address of the entry in the unified register' file '.
- FIG. 2 is an explanatory diagram showing the relationship between each pointer 'stack' and each push 'pointer and bottom' pointer in the computer system of this embodiment.
- push pointers are provided for each of the APS and the CPS, and are named PP-OF-APS and PP-OF-CPS, respectively.
- only one bottom 'pointer is provided, which is shared by APS and CPS. This is named BP—OF—PS.
- a comparison circuit is provided between the APS and the CPS as many as the number of entries, and the contents are compared between the entries at the same entry address of the APS and the CPS (horizontally arranged in FIG. 2). It has become so.
- Operand included in the instruction An integrated register that is allocated in response to a push operation for one word on the stack. Writes the address of one entry in the file to the APS entry PP-OF-APS. It adds 1 to the value of APS. Conversely, one is subtracted from the value of PP OF APS in response to a pop operation for one word on the operand 'stack included in the instruction. The same applies to CPS and PP—OF_CPS.
- the integrated register indicated by the matching contents of the two pointer stacks' one word of data written to the file entry Can be stored in the data cache. At that time, 1 is added to the value of BP_OF_PS.
- the data stored in the data cache (Spill) is loaded (Fill) into the integrated register file, the data for one word stored in the last (Spill) is free-restored. Allocate one entry of the integrated register file registered in the list, write its data, and write the data of the integrated register. Write, BP_OF—subtracts 1 from the value of PS.
- the computer system of this embodiment is provided with a forward pointer 'stack history file (hereinafter referred to as "APS history file”) in order to enable speculative execution based on branch prediction.
- APS history file a forward pointer 'stack history file
- Each entry in the APS history file can be written with the contents of all the APS entries and the PP-OF-APS.
- CRF Consolidated Register File
- FIG. 3 is an explanatory diagram showing a detailed configuration of each entry 6 (i) of the CRF 6 in the first embodiment.
- i is the address of the entry.
- Each entry 6 (i) of CRF 6 is a data field 61 (i), a write completion flag (WCF) field 62 (i), and a color (C, Color) field 6 3 (i) and the busy bit (BB) field 64 (i).
- the actual hardware configuration of the CRF is a set of register files provided for each field described above.
- the data 'field of each entry of the C R F is configured to write one word of data.
- the WCF field is set to 1 if the data has been completely written to the data field, and 0 if not.
- the C field is allocated to correspond to the push operation included in the entry instruction of the CRF, or data for avoiding underflow and mouth. In the case of Fill, it is distinguished whether it is allocated or not. In the former case, a branch tag is further written. In this embodiment, as described later, the branch tag has a certain relationship with the address of the entry in the APS history file.
- the BB field is written as 1 if the entry of the CRF is allocated to hold data, and 0 if it is not allocated. It has become.
- the free list (in the following, indicated by FL) is a memory for holding the address of a CRF entry that is free, that is, is not allocated (the BB field is 0). Has a circular FIFO queue configuration.
- the addresses of all the entries in the CRF are registered in the FL.
- the address of the free CRF entry is extracted from FL.
- the address of that entry is registered in FL.
- the instruction queue (indicated by IQ below) is a memory that holds instructions that have been set to be executed or completed, and has a circular FIFO queue configuration.
- FIG. 4 is an explanatory diagram showing the configuration of the IQ.
- IQ 5 Each entry is numbered 0, 1, 2, ... in order from the bottom.
- the IQ 5 entry with a vertical line indicates the instruction waiting to be executed or completed. Shall be held.
- the IQ has two registers, named setup pointer / completion pointer.
- the setting pointer indicates the entry to which the contents of the next instruction to be decoded are written.
- the completion pointer indicates the entry of the next instruction to be completed. Completion By subtracting the value of the setting pointer from the value of the pointer, you can see how many entries are available in the IQ. In the initial state, the values of the setting pointer and the completion pointer are both 0.
- FIG. 5 is an explanatory diagram showing a detailed configuration of each entry 5 (i) of IQ5.
- i is the address of the entry.
- Each entry 5 (i) in IQ 5 has an operation 'field 500 (i), an operand' field 501 (i), a first source 'field 501 (i), 1 Write complete flag (WCF1) field 5 1 1 (i), 2nd source field 5 2 0 (i), 2nd write complete flag (WCF 2) field 5 2 1 (i) , Third source 'field 530 (i), third write completion flag (WCF 3) field 531 (i), fourth source' field 540 (i), fourth write completion flag ( WCF 4) field 5 4 1 (i), first destination 'field 55 (i), second destination' field 56 (i), branch tag (BT) field 57 (i), and execute It consists of the state (S; State) field 58 (i).
- the operation 'build' of each entry in the IQ is configured to be written with an operation code.
- the operand 'field of each IQ entry is such that this operand is written for instructions whose operands follow the operation code.
- Each of the first to fourth source 'fields of each IQ entry is written with the address of the CRF entry allocated to hold the source' data.
- each of the first and second destinations 'finaled' of each entry of the IQ the address of the newly allocated entry of the C R F is written in accordance with the setting of 'decode instruction'. Operands For instructions that include a push operation on the stack, the address of the CRF entry allocated to hold the data to be pushed by the instruction is written in the order in which it is pushed.
- the first to fourth WCF fields are provided corresponding to the first to fourth source fields, respectively.
- the WCF 1 field 1 is written to the entry of the CRF indicated in the 1st source 'field if data writing has been completed, and 0 has been written otherwise. The same applies to the second to fourth WCF fields and the source field.
- the IQ has a comparison circuit for each source 'field of each entry, and compares the address of the CRF entry where data is to be written with the contents of each source' field to find a matching source.
- 'It has a function to set 1 to the WCF field corresponding to the' field.
- the BT field of each IQ entry relates to speculative execution based on branch prediction.
- the branch tag written to the BT field is the address of the entry in the APS history file.
- the S field contains information such as unexecuted, executed, normal termination, and occurrence of an exception event, depending on the execution status of the instruction written in that entry. Has become.
- the computer system includes an arithmetic unit 0 and an arithmetic unit 1, each of which is configured to execute arithmetic instructions such as an arithmetic and logic operation, a data type conversion operation, and a comparison operation sent from the IQ. It has the ability to execute and can operate independently and in parallel with each other.
- each operation unit as a pipeline, provide more operation units, or specify a type of operation to be executed for each operation unit.
- the branch unit has a function of processing a conditional branch instruction sent from the IQ, determining the presence or absence of a branch, and notifying the instruction fetch unit.
- the load / store unit (hereinafter referred to as LSU) has a function of performing address calculation, and can access the data cache and the CRF.
- the LSU has a register (vars register), not shown, that holds a pointer to the first oral variable.
- the storage area of the first local variable is in the data cache or CRF, but the corresponding address value in the data cache is written in the vars register. I have.
- the LSU calculates the address using the value of the vars register, and determines whether the storage area of the target local variable is data cache or CRF. Is determined, and the storage area is accessed. If the storage area is determined to be on the CRF, the address of the entry of the CRF to be accessed is read from the APS.
- the LSU includes a queue (not shown) for storing load / store instructions in the order of the program, together with the address of the entry in the instruction queue, the target variable name and data.
- This queue has an associative function, and it can execute load instructions out-of-order by verifying data 'access dependencies by comparing variable names. .
- the storage area of the local variable is in the data cache or CRF.
- the variable data is stored in the above key. Read from you. Execution of the store instruction is performed in-order in the completion stage, as described later, to ensure correct exception handling.
- the LSU executes the load Z store instruction indicated in the program, and at the bottom of the stack held in CRF according to the availability of APS, CPS, and CRF to avoid overflow and underflow.
- the data is automatically stored (Spill) / loaded (Fill) with the data cache.
- the overflow / underflow of APS, CPS, and CRF are controlled by the following mechanism. Avoided by the mechanism.
- the two pointers Stores (Spill) the data of one word written in the entry of the CRF indicated by the contents of the entry indicated by the matching BP-OF_PS into the data cache and sets 1 to the value of the BP-OF-PS.
- the BB field of the entry of the above CRF is changed to 0, and the address of the entry is registered in FL.
- the last one word of data (Spill) is retrieved from the data cache, and the FL Allocate one entry of the free CRF registered in the, and write it in its data field.
- WCF and BB fields shall be 1.
- the address of the assigned CRF entry is written below the entry indicated by BP-OF-PS of the APS and CPS, respectively, and the value of BP-OF-PS is set to 1 from the value of BP-OF-PS. pull.
- the LSU has a buffer for storing data once. It is also possible to adopt a configuration in which data of an appropriate number of words is stored.
- the computer system of this embodiment processes instructions in four stages: (1) instruction fetch, (2) instruction decode, setting, (3) execution, and (4) completion. For the time being, for the sake of simplicity, the operation will be described for each stage assuming that one instruction can be decoded and set in one cycle.
- the instruction fetch unit fetches the instruction from the instruction cache and determines the address of the next instruction to be fetched.
- the next instruction is normally fetched from the next address value.However, if the fetched instruction is an unconditional branch instruction, or if it is predicted to be branched by a conditional branch instruction, if the branch prediction is missed, or if an exception occurs. If it occurs, change the address value to be fetched.
- the instruction is decoded, the forward pointer 'stack' (APS) and the integrated register 'file' (CRF) are manipulated according to the instruction content, and the instruction content is written to the instruction queue (IQ).
- APS forward pointer 'stack'
- CRF integrated register 'file'
- the vicinity of the stack top of the word stack in the conventional stack 'machine' is reproduced by the pointer 'stack' and the CRF. The same applies.
- one free CRF entry registered in FL must be Allocate to keep the data, and push the address of that entry to APS.
- operand If the instruction is followed by an operand, write this operand in the operand 'field. In the BT field, write the branch tag sent from the instruction decode 'setting unit. For S field, unconditional branch instruction, operand of immediate data 'stack Instruction is executed if the instruction is a push instruction to the stack or an operation instruction of the operand 'stack' that does not make a copy on the stack (pop, pop2, swap in the Java VM), and it is not executed otherwise. .
- the source address is the address of the CRF entry allocated to hold the copy source data.
- the number of words that should be pop-pushed to the operand's stack (or the number of words to be copied in the case of the operand's operation instruction) is fixed. It is possible to know which of the first to fourth source 'fields, the first to fourth WCF fields and the first and second destination' fields is valid.
- the contents are written to the IQ at the same time as the LSU, along with the address of the IQ entry where the write is performed. send.
- Unexecuted instructions held in IQ are processed data driven. Therefore, the instruction execution order is out-of-order.
- the operation in the execution stage is described below for each type of instruction.
- LSU handles outgoing order instructions out-of-order.
- operand 'data popped Adore to calculate the carry out such a load instruction of on the stack (j ava ialoa4 in VM laload, faload, daload, aaload , baload, caload, saload) to the contents of the writing, effective If there is an entry in which the WCF field corresponding to the source field is all 1 (all data has been written to the CRF), access the CRF together with the address of the entry. Send the resulting source data to the LSU. The LSU calculates the address based on the source 'data sent and attempts to execute the load.
- variable data When the variable data is obtained by the LSU, the variable data is written to the data field of the destination CRF entry, and the WCF field is changed to 1.
- the IQ compares the address of the destination CRF entry in each source 'field in the source' field, and sets the WCF field corresponding to the matching source 'field to 1.
- Is to be compared with the contents to be written If the above operation ends normally, the S field of the IQ entry holding the load instruction is changed to normal end.
- the store instruction is to be written, and the WCF fields corresponding to valid source 'fields are all 1 (all the source' data has been written to the CRF) If there is an entry, the source obtained by accessing the CRF along with the address of the entry. Data is sent to the LSU.
- the entry where the operation instruction is the write content and the WCF field corresponding to the valid source field is all 1s (the source's data is all written in the CRF) If there is an available operation unit, the contents of the entry are sent to the available operation unit along with the address of the entry and the source data obtained by accessing the CRF, and executed.
- the operation result is written to the data field of the entry of the destination CRF, and the WCF field is written. Change the code to 1.
- the comparison of the address of the CRF entry in the IQ and the change of the WCF field are performed in the same manner as in the case of the load instruction described above. If the above operation ends normally, the S field of the IQ entry holding the operation instruction is changed to normal end.
- the operation in the execution stage does nothing.
- the contents of the operand 'stack operation instruction to be copied on the stack are written and the WCF field corresponding to the valid source' field is set to 1. If there is an entry (all of the source's data has been written to the CRF), the data is read from the entry of the CRF indicated in the valid source field, and is read from the corresponding destination. Write to the data field of the CRF entry shown in the 'Options' field and change the WCF field to 1.
- the matching of the address of the entry of the CRF in the IQ and the change of the WCF field are performed in the same manner as in the case of the above-described command.
- the S field of the IQ entry holding the operation instruction of the operand stack is changed to the normal termination.
- the unexecuted instruction held in the IQ is processed from the one that has become executable, so the instruction execution order is out-of-order.
- the execution units of the arithmetic units 0 and 1, the branch unit, and the load / store unit operate independently and in parallel with each other.
- the information is written to the S field of the IQ entry holding the instruction, and the exception vector is notified to the instruction fetch unit.
- the CPS and CRF are operated based on the contents of the instruction written in the entry, and the completion pointer Add 1 to the value.
- the CPS is manipulated to reproduce the behavior of the APS when the instruction is decoded. That is, in the case of an instruction including a pop Z push operation, the same contents of the valid source 'build' are sequentially popped from the cps, and the contents of the valid destination 'field are sequentially pushed to the CPS.
- the operand 'stack' operation instructions that do not make a copy on the stack
- the operand 'operation to be performed on the stack can be performed on the CPS in exactly the same way.
- the In the case of an operand 'stack manipulation instruction' that makes a copy on the stack refer to the valid source's field and the valid destination 'field to decode that instruction's settings.
- the operations performed on the APS are reproduced in the CPS.
- the BB field is changed to 0 in the entry of the CRF in which the entry address is popped from the CPS in accordance with the operation for the CPS described above, and the entry address is changed to the FL. register.
- the S field can be stored, or the LSU will store the store instruction in the LSU. Indicate the address of the current entry and request that the actual store be performed. This ensures that data is stored in-order. Further, the operations for CPS and CRF are performed in the same manner as above, and 1 is added to the value of the completion pointer.
- the instruction held in the IQ entry excluded from the queue is completed. Since all instructions that have been 'decoded' before that instruction have completed, the instruction will be completed in-order.
- dload [A] (Load double precision floating point data corresponding to variable name [A])
- dload [B] (Load double precision floating point data corresponding to variable name [B]) dadd (Double precision floating point Addition between data)
- dup_xl creates a copy of the word at the top of the stack and interrupts the third word from the top
- the obtained addition data is converted to single precision, and thereafter, calculation is performed in single precision.
- FIG. 6 to FIG. 12 are explanatory diagrams showing, for each cycle, the operation of processing the program in the computer system of the first embodiment. The detailed operation will be described below with reference to this figure.
- the configuration of each entry of CRF 6 and IQ 5 is the same as that of FIGS. 3 and 5, respectively. Blank areas in Figs. 6 to 12 mean that it is not necessary to pay attention to the contents of the field.
- Blank areas in Figs. 6 to 12 mean that it is not necessary to pay attention to the contents of the field.
- a hyphen and a number corresponding to each cycle are added to the end of the code of each part.
- FIGS. 6 to 12 it is assumed that the entries of APS, CPS, IQ and CRF are assigned addresses from the bottom in the order of 0, 1, 2,.
- LSU initiates access to variable A.
- the latency is two cycles.
- LSU starts accessing variable ⁇ .
- the latency is two cycles.
- the LSU sends two words ⁇ ⁇ -1 and A-1 2 that make up the data of variable ⁇ , so write them to the data fields of CRF entries 6 (0) and 6 (1), respectively, and write the WCF field To 1
- the addresses ⁇ 0> and ⁇ 1> of the CRF entry are collated in each source 'field. In this case, the instruction is written at the same timing.
- the second source 'field matches, so the WCF 1, 2 fields of the same entry are set to 1. (For the WCF fields 3 and 4, the WCF field of the corresponding entry of the CRF in the 6-2 state is read and sent as described in (3—A). So this is written.)
- the contents of the above instruction are written to IQ entry 5 (3).
- the addresses ⁇ 4> and ⁇ 5> of the CRF entry popped from ⁇ S are the first and second source fields, respectively, and ⁇ 6> pushed to APS is the first destination.
- the WCF field is read out in each of the entries 6 (4) and 6 (5) of the CRF in the state of 6-3, and is sent to the respective fields of the WCFs 1 and 2 of the IQ.
- the LSU sends the two words B-1 and B-2 that make up the data of variable B. Write them in the data fields of entries 6 (2) and 6 (3) of the CRF, respectively, and write the WCF field. To 1
- each source 'field matches the address ⁇ 2>, ⁇ 3> of the CRF entry.
- Each field of WCF 3 and 4 of the same entry is 1.
- the execution of the instruction written to the IQ entry 5 (1) is completed normally, so the S field of 5 (1) is changed to 1 meaning normal termination. I do.
- the S field becomes 1
- the CPS (and CRF) is manipulated based on the contents of 5 (0). That is, ⁇ 0> and ⁇ 1> written in the destination 'field of entry 5 (0) of IQ are pushed to CPS, and CPS becomes 414.
- 1 is added to the value of the completion pointer to be 1, and the instruction of 5 (0) is completed.
- the entry 5 (2) in which the arithmetic instruction is written has all the WCF fields set to 1, so the contents of this entry 5 (2) are Address 2 and C RF 6 (0), 6 (1), 6 Send it to the operation unit 0 together with the source 'data written in each entry of (2) and 6 (3) to start the operation. It is assumed that the latency of this operation is two cycles.
- the instruction dup_xl changes the word 'stack force (as it grows to the right) ...., wordl, word2 when it is in a state like word.
- the operand ' is a stack operation instruction that creates a copy of one word on the stack. Assignment, change the APS with ⁇ 6> and ⁇ 7> from the bottom as shown in 3-5 to ⁇ 8>, ⁇ 6>, and ⁇ 7> as shown in 3-6.
- the contents of the above instruction are written to IQ entry 5 (5).
- the address ⁇ 7> of the CRF entry allocated to hold the copy source data is set to the first source field, and the newly allocated CRF to hold the copy data is set.
- the address ⁇ 8> of the first entry is written in the first destination field.
- the WC is entered in entry 6 (7) of the CRF in the state 6_5.
- the F field is read and sent to the IQ WCF 1 field. In addition, add 1 to the value of the setting pointer to make it 6;
- LSU initiates access to variable T.
- the latency is two cycles.
- the two words (A + B) -1 and (A + B) _2 that make up the operation result are sent.
- the IQ matches the addresses ⁇ 4> and ⁇ 5> of the CRF entry in each source 'build', but in this case, the first and second source 'fields of the IQ entry 5 (3) Since each field matches, the WCF 1 and 2 fields of the same entry are set to 1.
- the contents of the above instruction are written to IQ entry 5 (6).
- the addresses ⁇ 6> and ⁇ 7> of the CRF entries popped from the APS are placed in the first and second source fields, respectively, and the ⁇ 9> pushed to the APS is placed in the first destination field.
- the WCF field is read in each of the entries 6 (6) and 6 (7) of the CRF in the state 6-6 and sent to the WCF 1 and 2 fields of the IQ, respectively.
- entry 5 (3) in which the arithmetic instruction is written has all the valid WCF fields set to 1, so the contents of entry 5 (3) are It is sent to the operation unit 0 together with the source data written in each of the address 3 and the CRF 6 (4) and 6 (5) to start the operation. It is assumed that the latency of this operation is two cycles.
- the IQ checks the address ⁇ 7> of the CRF entry in each source 'field.
- the instruction is executed at the same time as the first source and field of IQ entry 5 (5).
- the WCF1 field of 5 (5) and the WCF2 field of 5 (6) are set to 1.
- the WCF 1 field of (5) (6) the WCF field of CRF entry 6 (6) in state 6-6 is read and sent as described in (7—A). So this is the call I will be absorbed.
- the S field becomes 1, and the CPS and CRF are manipulated based on the contents of 5 (2). That is, ⁇ 0>, ⁇ 1>, ⁇ 2>, and ⁇ 3> written in the source's final field of IQ entry 5 (2) are popped from the CPS and written to the destination 'field. ⁇ 4> and ⁇ 5> are pushed to the CPS, and the CPS becomes 417. Entry 'Address is changed from CPS. For each of the 6 (0), 6 (1), 6 (2) and 6 (3) entries in the CRF, change the BB field to 0. The addresses ⁇ 0>, ⁇ 1>, ⁇ 2>, and ⁇ 3> of the CRF entry are registered in FL. Further, 1 is added to the value of the completion pointer to be 3, and the instruction of 5 (2) is completed.
- Operand An operation instruction that pops two words of source data from the stack, performs an operation, and pushes the operation result of one word. Therefore, pop ⁇ 8> and ⁇ 9> from APS and register them in FL. Allocated free CRF entry 6 (10) is allocated to hold the operation result, and the address ⁇ 10> of the entry is pushed to the APS, and the APS becomes as 3-8.
- the above instruction is stored in IQ entry 5 (7).
- the address ⁇ 8> and ⁇ 9> of the CRF entry popped from the AP are placed in the first and second source fields, respectively, and the ⁇ 10> pushed to the AP is placed in the first destination field. Is written in.
- the WCF field is read by each entry of 6 (8) and 6 (9) of the CRF in the state of 6-7, and is sent to the WCF 1 and 2 fields of IQ, respectively. In addition, add 1 to the value of the setting pointer to make it 8.
- the operation result (A + B) of one word will be sent, so the data field of entry 6 (6) of the CRF will be Write and change the WCF field to 1.
- the IQ matches the CRF entry address ⁇ 6> in each source 'field, but in this case it matches in the first source' field of IQ entry 5 (6), so Set the WCF 1 field of the same entry to 1.
- the operand 5 (5) in which the operand 'stack operation instruction is written such that a copy is created on the stack is written because the effective WCF field is 1 Perform a copy of. That is, data is read from the entry 6 (7) of the CRF, written to the data 'field of the entry 6 (8) of the CRF, and the WCF field is changed to 1.
- the IQ matches the address ⁇ 8> of the CRF entry in each source 'field, in which case the instruction is written at the same timing and the first source field of entry 5 (7) of IQ Field, the WCF 1 field of the same entry is set to 1. (For the WCF 2 field, as described in (8-A), the WCF field of CRF entry 6 (9) in the 6-7 state is read out and sent, so this is written. Change the S field of IQ entry 5 (5) to 1 which means normal termination.
- the S field is 0, so that nothing is performed as the operation of the completion stage.
- the contents of the above instruction are written to IQ entry 5 (8).
- the address ⁇ 10> of the CRF entry popped from the APS is written in the first source 'field.
- the WCF field is read out at the entry 6 (10) of the CRF in the state 6_8, and is sent to the WCF1 builder of the IQ.
- set the value of the setting pointer to 1 (1 to 9).
- entry 5 (6) in which the arithmetic instruction is written has all valid WCF fields set to 1, so the contents of this entry 5 (6) are The operation unit together with the source data written in the address 6 of that entry and the entries 6 (6) and 6 (7) of the CRF G1 to start the calculation. It is assumed that the latency of this operation is 10 cycles.
- the S field becomes 1, and the CPS and CRF are operated based on the contents of 5 (3). That is, ⁇ 4> and ⁇ 5> written in the source field of IQ entry 5 (3) are popped from the CPS, and ⁇ 6> written in the destination field is pushed to the CPS.
- the CPS will be like 4-9. Entry 'Change the BB field to 0 for each of the 6 (4) and 6 (5) entries of the CRF whose address is popped from the CP. Register the addresses ⁇ 4> and ⁇ 5> of the CRF entry in FL. Further, 1 is added to the value of the completion pointer to be 4, and the instruction of 5 (3) is completed.
- the CPS (and CRF) is manipulated based on the contents of 5 (4). That is, ⁇ 7> written in the destination 'field of the entry 5 (4) of the IQ is pushed to the CPS, and the CPS becomes as shown in 4-10. Further, 1 is added to the value of the completion pointer to be 5, and the instruction of 5 (4) is completed.
- the entry 5 (7) in which the operation instruction is written has all the valid WCF fields set to 1, so the contents of this entry 5 (7) are Entry address 7 and. It is sent to the operation unit 0 together with the source 'data written in each of the entries 6 (8) and 6 (9) of RF to start the operation. It is assumed that the latency of this operation is two cycles.
- the S field becomes 1, and the CPS and CRF are operated based on the contents of 5 (6). That is, ⁇ 6> and ⁇ 7> written in the source of IQ entry 5 (6) are popped from the CPS, and ⁇ 9> written in the destination field is bushed to the CPS. And the CPS will look like 4-19. Entry address is popped from CPS In each of CRF entries 6 (6) and 6 (7), the BB Change the field to 0. The addresses ⁇ 6> and ⁇ 7> of the entry of the CRF are registered in the FL. In addition, 1 is added to the value of the completion pointer to 7 and the instruction of 5 (6) is completed.
- entry 5 (8) For an IQ in the 5-20 state, entry 5 (8), where the store instruction is written, has a valid WCF field of 1, so the CRF entry 6 (10 Send the source data written in) to the LSU. 5 Change the S field in (8) to 1 which means that the store is executable.
- the S field becomes 1, and the CPS and CRF are operated based on the contents of 5 (7). That is, ⁇ 8> and ⁇ 9> written in the source field of the IQ entry 5 (7) are popped from the CPS, and ⁇ 10> written in the destination field is changed to the CP. S And the CPS looks like 4—2 1 Entry address is popped from CPS For each 6 (8), 6 (9) entry in the CRF, change the BB field to 0. The addresses ⁇ 8> and ⁇ 9> of the CRF entry are registered in the FL. Further, 1 is added to the value of the completion pointer to 8 and the instruction of 5 (7) is now completed.
- speculative execution based on branch prediction can be realized.
- a PS history file is provided to enable speculative execution.
- branch prediction is incorrect, cancel the instruction sent to the operation unit, branch unit and LSU execution unit based on the branch tag attached to the instruction decoded after the conditional branch instruction.
- Match the forking tag in the C field in the CRF, and for each matching entry Then, the BB field is changed to 0, the address of the entry is registered in the FL, and the value of the IQ setting pointer is rewritten to the address next to the entry in which the conditional branch instruction is written, thereby obtaining the condition.
- Decode after branch instruction ' ⁇ Invalidates the set instruction.
- the contents written in the APS history file when the conditional branch instruction is decoded are copied to the APS entry and the PP-OF-APS whose contents do not match the CPS entry at the same address. And resume processing from the instruction at the correct location.
- the computer system of the present invention by using the APS history file, it is possible to reconstruct the state at each time when the conditional branch instruction is decoded and the branch prediction is performed. Speculative execution based on branch prediction is possible.
- the computer system of the present invention can be configured so that a plurality of instructions can be simultaneously decoded and set.
- the order of fetching the address of the free CRF entry from the FL for allocation is determined, and how many words should be popped and how many words should be pushed in each instruction. It is possible to understand multiple stack operations and decode and set multiple instructions at the same time.
- the stack operation for CPS in each instruction is strictly determined in advance, simultaneous completion of a plurality of instructions can be realized more easily.
- Simultaneous decoding 'settings z The more instructions that can be completed, the more complicated the instruction decoding' setting unit and other control circuits, and the number of ports in each register that constitutes IQ and CRF ' Each entry A larger amount of hardware is required in terms of the number of comparison circuits provided for each source 'field, the number of operation units, and the number of buses connecting the components.
- the decode 'setting is divided into two stages, and in the first half of the stage, the contents of a plurality of instructions to be simultaneously decoded' set are converted into an integrated format.
- a simple configuration is also possible.
- the contents of the APS before setting are Vietnamese s2, si, s0 (the right end is the top of the stack), and the contents of the free list, which constitutes the FIFO queue, are (in the order of retrieval) It is written as ⁇ ).
- the second embodiment is different from the first embodiment in the method of processing the operand 'stack operation instruction.
- the computer system of the second embodiment is different from the first embodiment in that Although the structure of the entry of the Isle (CRF) 6 is different, the basic structure of the computer system, and the forward pointer 'Stack (APS) 3, Completion Pointer' stack (CPS) 4, and the instruction queue (IQ) 5 The configuration is the same.
- FIG. 14 is an explanatory diagram showing a detailed configuration of each entry 6 (i) of the CRF 6 in the second embodiment.
- i is the address of the entry.
- Each entry 6 (i) of CRF 6 is a data field 6 1 (i), a write completion flag (WCF) field 62 (i), and a color (C, Color) field 6 3 (i ), The business bit (BB) field 64 (i), and the number of reference (NR) field 65 (i).
- the data 'field and the WCF, C, and BB fields of each entry of the CRF are the same as in the first embodiment.
- the NR field is made to write the number of entries in the CPS that hold the address of the entry in the CRF.
- the store (Spill) is performed as follows. In this case, the contents of the entry indicated by BP—OF—PS must match in the APS and the CPS, but the two pointers that match in the stack are the contents of the entry indicated by BP—OF—PS.
- Store (Spill) one word of data written in the entry of the indicated CRF in the data cache, and add 1 to the value of BP-OF-PS. Furthermore, in the above CRF entry, the NR field Subtract 1 from the value of C. As a result, if the value becomes 0, the BB field of the entry of the CRF is changed to 0, and the address of the entry is registered in the FL.
- the fill of one word data from the data cache to the CRF is performed as follows. That is, one word of data stored at the end (Spill) is extracted from the data cache, a free CRF entry registered in FL is allocated to the data cache, and written in the data 'field. Each field of WCF, NR, and BB shall be 1. Further, the address of the allocated entry of the CRF is written below the entry indicated by BP-OF-PS of APS and CPS, respectively, and 1 is subtracted from the value of BP-OF-PS.
- the computer system of the second embodiment is almost the same as that of the first embodiment. However, the differences between the computer system of the first embodiment and those of the first embodiment are described below. The operation of the computer system according to the embodiment will be described.
- the operation to be performed on the operand' stack is performed in exactly the same way for the CPS even if the instruction creates a copy on the stack.
- the CPS is operated to reproduce the operation of the APS when the 'Decode' is set.
- the entry address is popped from the CPS.
- the BB field is changed to 0 only when the value of the NR field becomes 0, and the entry is changed.
- 'Register the address in FL.
- the configuration of each entry of CRF 6 and IQ 5 is the same as that of FIGS. 14 and 5, respectively.
- a blank area in Fig. 15 to Fig. 21 means that it is not necessary to pay attention to the contents of the field.
- a hyphen and a numeral corresponding to each cycle are added at the end of the code of each part, and FIGS. 6 to 12 show operation examples in the first embodiment.
- the letter 'a' is appended to distinguish it from the sign.
- the computer system of the present invention is not limited to the above-described embodiment, and various embodiments having different configurations in detail exist. For example, you can:
- IQ is configured so that source data is also written to each entry.
- source 'data is written at the same timing as the corresponding WCF field becomes 1.
- register 'base superscalar' architecture a similar intent can be found in the register 'base superscalar' architecture.
- the instruction set includes both a stack type instruction and a register type instruction, is also feasible.
- the integrated register 'file entry' address is written to each entry provided corresponding to the register number, and the forward register 'matching'.
- Table and Completion Register A configuration that has a 'Mating' table.For stack type instructions, advance Z completion pointer 'Manipulate the stack, and for register type instructions, access the advance / completion register' Mapping 'table. I do.
- the computer system of the present invention processes a program described in a machine language of a stack machine out-of-order while guaranteeing accurate exception processing.
- efficient processing can be performed by parallel processing and their pipelining.
- speculative execution based on branch prediction and decoding with multiple instructions per cycle can be set to complete Z can further increase the speed.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Devices For Executing Special Programs (AREA)
Description
Claims
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP98954765A EP1035471A1 (en) | 1997-11-20 | 1998-11-19 | Computer system |
KR1020007005482A KR20010032275A (ko) | 1997-11-20 | 1998-11-19 | 계산기 시스템 |
EA200000546A EA200000546A1 (ru) | 1997-11-20 | 1998-11-19 | Компьютерная система |
CA002310369A CA2310369A1 (en) | 1997-11-20 | 1998-11-19 | Computer system |
AU11747/99A AU745449B2 (en) | 1997-11-20 | 1998-11-19 | Computer system |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9/362473 | 1997-11-20 | ||
JP36247397 | 1997-11-20 | ||
JP28211898 | 1998-10-05 | ||
JP10/282118 | 1998-10-05 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO1999027439A1 true WO1999027439A1 (fr) | 1999-06-03 |
Family
ID=26554476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP1998/005230 WO1999027439A1 (fr) | 1997-11-20 | 1998-11-19 | Systeme informatique |
Country Status (7)
Country | Link |
---|---|
EP (1) | EP1035471A1 (ja) |
KR (1) | KR20010032275A (ja) |
CN (1) | CN1279782A (ja) |
AU (1) | AU745449B2 (ja) |
CA (1) | CA2310369A1 (ja) |
EA (1) | EA200000546A1 (ja) |
WO (1) | WO1999027439A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001061475A1 (en) * | 2000-02-14 | 2001-08-23 | Chicory Systems, Inc. | Transforming a stack-based code sequence to a register based code sequence |
WO2001061476A2 (en) * | 2000-02-14 | 2001-08-23 | Chicory Systems, Inc. | System including cpu and code translator for translating code from a second instruction set to a first instruction set |
WO2002029507A2 (en) * | 2000-10-05 | 2002-04-11 | Arm Limited | Hardware instruction translation within a processor pipeline |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2367653B (en) * | 2000-10-05 | 2004-10-20 | Advanced Risc Mach Ltd | Restarting translated instructions |
US20020083309A1 (en) * | 2000-12-21 | 2002-06-27 | Sun Microsystems, Inc. | Hardware spill/fill engine for register windows |
GB2377288A (en) * | 2001-07-06 | 2003-01-08 | Digital Comm Technologies Ltd | Executing branch instructions of a stack based program on a register based processor |
WO2006133597A1 (en) * | 2005-06-15 | 2006-12-21 | Intel Corporation | Using transacted writes and caching mechanism to improve write performance in multi-level cell flash memoty |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS622330A (ja) * | 1985-06-27 | 1987-01-08 | Nec Corp | 演算例外命令アドレス割出装置 |
JPH02260082A (ja) * | 1989-03-31 | 1990-10-22 | Hajime Seki | 計算機方式 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4992938A (en) * | 1987-07-01 | 1991-02-12 | International Business Machines Corporation | Instruction control mechanism for a computing system with register renaming, map table and queues indicating available registers |
JPH0383134A (ja) * | 1989-08-28 | 1991-04-09 | Matsushita Electric Ind Co Ltd | スタック管理方法 |
US5696955A (en) * | 1994-06-01 | 1997-12-09 | Advanced Micro Devices, Inc. | Floating point stack and exchange instruction |
-
1998
- 1998-11-19 CA CA002310369A patent/CA2310369A1/en not_active Abandoned
- 1998-11-19 EA EA200000546A patent/EA200000546A1/ru unknown
- 1998-11-19 EP EP98954765A patent/EP1035471A1/en not_active Withdrawn
- 1998-11-19 AU AU11747/99A patent/AU745449B2/en not_active Ceased
- 1998-11-19 CN CN 98811324 patent/CN1279782A/zh active Pending
- 1998-11-19 KR KR1020007005482A patent/KR20010032275A/ko not_active Application Discontinuation
- 1998-11-19 WO PCT/JP1998/005230 patent/WO1999027439A1/ja not_active Application Discontinuation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS622330A (ja) * | 1985-06-27 | 1987-01-08 | Nec Corp | 演算例外命令アドレス割出装置 |
JPH02260082A (ja) * | 1989-03-31 | 1990-10-22 | Hajime Seki | 計算機方式 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001061475A1 (en) * | 2000-02-14 | 2001-08-23 | Chicory Systems, Inc. | Transforming a stack-based code sequence to a register based code sequence |
WO2001061476A2 (en) * | 2000-02-14 | 2001-08-23 | Chicory Systems, Inc. | System including cpu and code translator for translating code from a second instruction set to a first instruction set |
WO2001061476A3 (en) * | 2000-02-14 | 2002-05-02 | Chicory Systems Inc | System including cpu and code translator for translating code from a second instruction set to a first instruction set |
WO2002029507A2 (en) * | 2000-10-05 | 2002-04-11 | Arm Limited | Hardware instruction translation within a processor pipeline |
WO2002029507A3 (en) * | 2000-10-05 | 2003-05-22 | Advanced Risc Mach Ltd | Hardware instruction translation within a processor pipeline |
Also Published As
Publication number | Publication date |
---|---|
CA2310369A1 (en) | 1999-06-03 |
KR20010032275A (ko) | 2001-04-16 |
EP1035471A1 (en) | 2000-09-13 |
AU745449B2 (en) | 2002-03-21 |
CN1279782A (zh) | 2001-01-10 |
EA200000546A1 (ru) | 2001-04-23 |
AU1174799A (en) | 1999-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3977016B2 (ja) | 仮想レジスタ番号を用いて論理レジスタ番号を物理レジスタ番号にマッピングするように構成されるプロセッサ | |
JP4485198B2 (ja) | Javaアクセラレータを備えたプロセッサシステム | |
JP3871884B2 (ja) | 記憶からロードへの転送のための機構 | |
US5889982A (en) | Method and apparatus for generating event handler vectors based on both operating mode and event type | |
US9092215B2 (en) | Mapping between registers used by multiple instruction sets | |
US5452426A (en) | Coordinating speculative and committed state register source data and immediate source data in a processor | |
US6119223A (en) | Map unit having rapid misprediction recovery | |
JPH05224928A (ja) | データ処理装置 | |
US20050262329A1 (en) | Processor architecture for executing two different fixed-length instruction sets | |
GB2317469A (en) | Data processing system register control | |
EP0855648A2 (en) | Data processing with parallel or sequential execution of program instructions | |
JPH0496825A (ja) | データ・プロセッサ | |
GB2317467A (en) | Input operand control in data processing systems | |
US6266763B1 (en) | Physical rename register for efficiently storing floating point, integer, condition code, and multimedia values | |
JP3866920B2 (ja) | 命令のリタイアメント時に物理レジスタを選択的に自由にするよう構成されたプロセッサ | |
JP3789583B2 (ja) | データ処理装置 | |
US6449712B1 (en) | Emulating execution of smaller fixed-length branch/delay slot instructions with a sequence of larger fixed-length instructions | |
US6055628A (en) | Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks | |
JP3751402B2 (ja) | データ精度モード表示器を備えたマルチパイプライン・マイクロプロセッサ | |
JPH11345122A (ja) | プロセッサ | |
WO1999027439A1 (fr) | Systeme informatique | |
JP3345787B2 (ja) | データ処理装置 | |
JP3701203B2 (ja) | 計算機システム | |
US5841999A (en) | Information handling system having a register remap structure using a content addressable table | |
JP2002229779A (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 98811324.4 Country of ref document: CN |
|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AU BG BR CA CN CU CZ HU ID IL IS JP KR MX NO NZ PL SG SK TR UA US VN |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): GH GM KE LS MW SD SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
ENP | Entry into the national phase |
Ref document number: 2310369 Country of ref document: CA Ref document number: 2310369 Country of ref document: CA Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1020007005482 Country of ref document: KR |
|
WWE | Wipo information: entry into national phase |
Ref document number: 11747/99 Country of ref document: AU |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1998954765 Country of ref document: EP Ref document number: 200000546 Country of ref document: EA |
|
WWE | Wipo information: entry into national phase |
Ref document number: 09530959 Country of ref document: US |
|
WWP | Wipo information: published in national office |
Ref document number: 1998954765 Country of ref document: EP |
|
WWP | Wipo information: published in national office |
Ref document number: 1020007005482 Country of ref document: KR |
|
WWG | Wipo information: grant in national office |
Ref document number: 11747/99 Country of ref document: AU |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 1998954765 Country of ref document: EP |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 1020007005482 Country of ref document: KR |