Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.

Patents

  1. Advanced Patent Search
Publication numberUS4675806 A
Publication typeGrant
Application numberUS 06/471,524
Publication dateJun 23, 1987
Filing dateMar 2, 1983
Priority dateMar 3, 1982
Fee statusPaid
Also published asCA1204516A1, DE3379850D1, EP0087978A2, EP0087978A3, EP0087978B1
Publication number06471524, 471524, US 4675806 A, US 4675806A, US-A-4675806, US4675806 A, US4675806A
InventorsKeiichiro Uchida
Original AssigneeFujitsu Limited
Export CitationBiBTeX, EndNote, RefMan
External Links: USPTO, USPTO Assignment, Espacenet
Data processing unit utilizing data flow ordered execution
US 4675806 A
Abstract
In an information processing unit, in particular, in a data flow type information processing unit, an instruction indicates whether operand data for use by this instruction is available. Operand data, both from external storage units and from previously executed instructions, are stored in a data memory while instructions are stored in an instruction memory. An instruction execution unit is started by a control signal when all operands necessary for executing an instruction are available. Instructions and data can be routed independently, thereby permitting more rapid execution of instructions.
Images(6)
Previous page
Next page
Claims(11)
What is claimed is:
1. An information processing unit which makes a determination whether an instruction is executable on the basis of availability of operand data necessary for executing the instruction and executes the instruction when all operand data is available, the instruction having an operation code field for indicating an operation to be performed, an input field for indicating whether the operand data to be used by the instruction is available, and a destination field for specifying the input field of another instruction which uses a result of the execution as operand data, said information processing unit comprising:
an instruction memory for storing instructions;
a data memory for storing the operand data;
an instruction fetch unit, oepratively connected to said instruction memory, for fetching an instruction from said instruction memory, for determining whether the input field indicates that the operand data to be used by the instruction is available and for providing an indication of data availability to the input field specified by the destination field of the instruction; and
an operation unit, operatively connected to said data memory and said instruction fetch unit, for receiving the operand data from said data memory, for executing the operation indicated by the operation code field of the fetched instruction and for storing the result of the operation in said data memory.
2. An information processing unit according to claim 1, wherein said operation unit comprises a plurality of operators forming pipelines which are operable asynchronously in parallel.
3. An information processing unit according to claim 1, wherein said operation unit comprises data registers capable of storing data representing a vector, enabling said operation unit to perform vector processing by concurrently executing the same operation on all of the data in one of said data registers.
4. An information processing unit according to claim 3, wherein the execution of a program is limited by software to exceed the number of registers provided by hardware.
5. An information processing unit according to claim 3, wherein when the storage capacity of said data register is exceeded, said operation unit saves the excessive data into said data memory to prevent an overflow of said data register.
6. An information processing unit according to claim 3, further comprising an additional memory, operatively connected to said operation unit, comprising a register for storing data which is sent to said additional memory by said operation unit when said data registers in said operation unit are full.
7. An information processing unit according to claim 1, further comprising a register number assigning processor operatively connected between said instruction fetch unit and said operation unit, said register number assigning processor assigning a register number to the input field of the instruction.
8. An information processing unit for independently storing and processing instructions and operand data, in which each instruction has an operation code field for indicating an operation to be performed, an input field for indicating whether the operand data to be used by that instruction is available and a destination field for specifying the input field of another instruction which uses a result of the execution of that instruction as operand data, said information processing unit comprising:
external interface means for providing the data and the instructions;
instruction storage means, operatively connected to said external interface means, for storing the instructions, said instruction storage means initially storing the instructions prior to execution;
an instruction register, operatively connected to said instruction storage means, receiving one of the instructions from said instruction storage means for determination of operand data availability;
a first address register, operatively connected to said external interface means and said instruction storage means, receiving a first address from one of said external interface means and said instruction storage means, the first address corresponding to one of the instructions in the instruction storage means;
data storage means for storing data from said external interface means and the result of the execution of the instructions;
a second address register, operatively connected to said first address register, said instruction register and said data storage means, for holding a second address from at least one of said instruction register and said first address register, the second address corresponding to data in said data storage means and corresponding to one of the input field and the destination field of one of the instructions; and
operation means, operatively connected to said external interface means, said instruction register and said data storage means, for passing operand data from said external interface means to said data storage means, for executing the operation indicated by the operation code field in each of the instructions using the operand data stored in said data storage means and for storing the results of the operation in said data storage means at a location determined with reference to the destination field.
9. A method for processing information in a data flow type information processing unit having a data memory, an instruction memory, a register number assigning processor, an operation unit and an interface for external units, comprising the steps of:
(a) storing instructions and data provided by the interface for external units into the instruction memory and data memory, respectively;
(b) selecting an instruction from the instructions in the instruction memory;
(c) determining whether all data required by the instruction is available and whether the operation unit is available;
(d) assigning a register in the data memory for storing a result of the instruction using the register number assigning processor, if said determining step (c) determined that the data required by the instruction was available and that the operation unit was available;
(e) saving the instruction for later execution, if said determining step (c) determined that all data required by the first instruction was not available or the operation unit was not available;
(f) processing the instruction in the operation unit, if said assigning step (d) is executed; and
(g) repeating said steps (b-f) for successive instructions until processing is completed.
10. A method for processing information in a data flow type information processing unit as set forth in claim 9, wherein each of the instructions includes an input field specifying whether data required by that instruction is available and said assigning step (d) clears the input field prior to assigning the register.
11. A method for processing information in a data flow type information processing unit as set forth in claim 10, said data flow type information processing unit also having an active instruction list unit,
wherein said determining step (c) comprises the steps of:
(ci) determining whether the input field of the instruction is active;
(cii) determining if the operation unit is available, if said determining step (ci) determined that the input field of the instruction was active,
wherein said saving step (e) comprises the step of storing the instruction's address into the active instruction list unit, if said determining step (ci) determined that the input field was active and said determining step (cii) determined that the operation unit was busy, and
wherein said selecting step (b) comprises the steps of:
(bi) determining whether the active instruction list unit is empty;
(bii) selecting the instruction by choosing from among the instructions represented by addresses in the active instruction list unit, if said determining step (bi) determined that the active instruction list unit was not empty; and
(biii) selecting the instruction from among the instructions in the instruction memory, if said determining step (bi) determined that the active instruction list unit was empty.
Description
BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to an information processing unit and, more particularly, to a data flow type of information processing unit in which an input field of an instruction being processed by the unit is given information indicating whether the operand data to be used by the instruction is available. Operand data is tranferred independently of, but as specified by instructions.

2. Description of the Prior Art

In a Von Neumann type information processing unit, the execution of an instruction is under what is called sequential control. However, in the data flow type of information processing unit, an instruction can be executed when data necessary therefor is available and the sequence of the execution of instructions can be freely determined by the hardware. In addition, a plurality of instructions can be executed in parallel. Therefore, the data flow type information processing unit is, for example, well suited for the implementation of a vector processor which executes vector instructions in parallel.

However, the application of the configuration of the conventional data flow type information processing unit to an information processing unit for scientific computations encounters various problems. One of the major problems is that in the prior art data flow type of information processing unit, an instruction and its data (values) are mixed into one packet or block for transfer. Because of this, in the conventional data flow type of information processing unit, a hardware circuit for moving an instruction and a circuit for transferring data cannot be separated, which offsets one of the advantages that break what is called the Von Neumann bottleneck.

SUMMARY OF THE INVENTION

It is an object of the present invention to provide an information processing unit which performs instruction processing on the basis of the dependence of an instruction on data and in which the paths of instructions and data are separated and data is transferred as directed and required by instructions.

Another object of the present invention is to provide an information processing unit in which the desired instruction is determined on the basis of a proper sequence and a register number assigning processor automatically assigns to the instruction a register in which to place the processing result, and the software is required only to provide data flow control.

Another object of the present invention is to provide an information processing unit in which register numbers are prepared corresponding to instructions, thereby permitting identification of data.

Yet another object of the present invention is to provide an information processing unit in which, when an instruction is issued to an operation unit, the contents of an input field of the instruction are cleared to make it inactive, indicating that the instruction may be utilized as the next instruction.

According to the present invention, in an information processing unit of the type that makes an instruction executable on the basis of the determination that operand data necessary for executing the instruction is or will be available and properly executes the instruction by hardware, the instruction used has: an operation code field; an input field having a sufficient number of bits to indicate whether the operand data to be used by the instruction is active or inactive; and a destination field for specifying an input field of an instruction to be linked with this instruction. When a first instruction designating a second instruction in the first instruction's destination field, is executed, an indication that operand data is active is placed in the input field of the second instruction. The processing unit is provided with an instruction memory for storing instructions, an instruction fetch unit for fetching an executable instruction from the instruction memory, and an operation unit for loading desired operand data from a data memory to execute the fetched instructions in parallel.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A and 1B are diagrams of examples of instruction formats for use in the present invention;

FIGS. 2A and 2B are diagrams of a linkage of instructions according to the present invention;

FIG. 3 is a block diagram illustrating the hardware arrangement of an embodiment of the present invention;

FIG. 4 is a flowchart of an instruction processing operation in the embodiment of the present invention illustrated in FIG. 3;

FIG. 5 is a timing chart of the execution of an instruction according to the embodiment illustrated in FIG. 3;

FIG. 6 is a block diagram illustrating the hardware arrangement of another embodiment of the present invention; and

FIG. 7 is a timing chart of the execution of an instruction in the embodiment illustrated in FIG. 6.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

In the present invention, instructions related to operations have an instruction format such as the one illustrated in FIG. 1A, comprising: an instruction code field (OP), two input fields (R1, R2), and a destination field (D). On the other hand, instructions related to control, such as copy, switch and union, have an instruction format such as the one illustrated in FIG. 1B, comprising: an instruction code field (OP), an input field (R1), and two destination fields (D1, D2). There may be three or more input fields or destination fields, not always one or two.

As an example of the operation of the present invention, assume that an instruction control linkage like that in FIG. 2A is to be executed. Instructions ○1 and ○3 are first executed to make an instruction ○2 executable, and then an instruction ○4 is executed to make instructions ○5 and ○6 executable. The contents of the destination field of one instruction determines its linkage with the input field of the instruction to be executed next, as illustrated in FIG. 2B. In the example, having determined that operand data is or will be available as a result of the execution of instruction ○1 , a certain value is put into the input field R1 of instruction ○2 which is specified by the destination field D of instruction ○1 . This value indicates that one of the operand data to be used by instruction ○2 is available. Similarly, having determined that operand data is or will be available as a result of the execution of instruction ○3 , a certain value is put into the input field R2 of instruction ○2 which is specified by the destination field D of instruction ○3 . This value indicates that another one of the operand data to be used by instruction ○2 is available. Upon completion of the execution of instruction ○2 , a certain value is put into the input field R1 of instruction ○4 which is specified by the destination field D of instruction ○2 . This value indicates that instruction ○4 has become executable. Likewise, by completion of the execution of instruction ○4 , values are put into the input fields of instructions ○5 and ○6 which are specified by the destination fields D1 and D2 of instruction ○4 , whereby instruction 4 is linked with instructions ○5 and ○6 .

In the case of the present invention, it is sufficient, theoretically, that the input field illustrated in FIGS. 1A and 1B is a 1-bit field (to be used for indicating that the operand data is available). However, it is preferable that the input field have an 8-bit field length, as illustrated in FIGS. 1A and 1B, to permit writing therein the number of the register in which the operand data is being stored. Thereby, one field indicates that the operand data is available and provides the register number where the data is located.

The instructions for use in the present invention are: (i) arithmetic operations, such as ADD, MULTIPLY, DIVIDE and so forth; (ii) ordinary instructions, such as COMPARE, LOGICAL, SHIFT, MASKLOGICAL, LOAD, STORE and so forth; (iii) control instructions, such as COPY, SWITCH, UNION and so forth; (iv) function link instructions, such as APPLY and so on; and (v) interface instructions for external units, such as an input/output unit. It is also possible that these instructions are provided both as vector instructions and as scalar instructions, if necessary.

FIG. 3 illustrates the hardware structure of an embodiment of the present invention. In FIG. 3, reference numeral 1 indicates an interface for an external unit; 2 designates an instruction memory having stored therein instructions having a format as illustrated in FIGS. 1A and 1B; and 3 identifies a data memory having stored therein operand data. Reference numeral 4 denotes a memory controller which performs the process of accessing the data memory 3 to load desired operand data in the register specified by the contents of the input fields R1 and R2 and storing operation results in the data memory 3. Reference numeral 5 represents an instruction fetch unit which checks whether instructions read from the instruction memory 2 are executable and fetches executable instructions; and 6 indicates a register number assigning processor. When the resources to be used by an executable instruction, such as an add unit, a register and so forth, are available, it is determined to issue the instruction. At the same time, the number of a register for storing a destination operand of the instruction is assigned and hardware performs automatic assignment processing. the assigned register number is provided to the instruction fetch unit, which writes the register number into the input field of another instruction specified by the destination field of the first-mentioned instruction. Reference numeral 7 refers to an operation unit, including one or more operators which execute a desired operation; 8 signifies a register group; and 9 indicates an active instruction list unit in which executable instructions are queued awaiting execution. The data memory and instruction memory may physically be the same memory.

A description will be given, with reference to the flowchart of FIG. 4, of the operation of the embodiment illustrated in FIG. 3. In the following description, labels and numerals enclosd by parentheses will be used to indicate blocks in the flowchart.

The interface for the external units 1 has interfaces for a central processing unit, an input/output device and so on, and performs the processing of data being transferred between other devices and the data memory 3. Included in its functions is writing of an instruction into the instruction memory 2, as required.

Now, let it be assumed that it is determined that the execution of an instruction is completed or will be completed. In this state, (LOAD ADDR. 1) address information based on the contents of the destination field of the completed instruction is put in an address register (not illustrated) for the instruction memory 2. Then, (FETCH INSTR. 2) one instruction is fetched from the instruction memory 2.

If the fetched instruction contains an input field which requires a result from another instruction, (FIELD ACTIVE? 3) the instruction fetch unit 5 checks whether the fetched instruction's input field is active. If the input field is not active, (SET ACTV. MARK 6) an already assigned register number is written into the input field of the instruction specified by the destination field and the fetched instruction is returned to the instruction memory 2.

If the input field is active, a test (FUNCTION BUSY? 4) is performed to determine if the function unit is busy. If the required unit is available, (ASSIGN REG. 10) the register number is assigned and (ISSUE INSTR. 11) the execution of the instruction is started. On the other hand, if a desired operation unit or the like is busy, (INSTR.→ACTV. LIST 5) address information representing the instruction is registered in the active instruction list unit 9 and (SET ACTV. MARK 6) the assigned register number is written into the input field of the instruction in the instruction memory 2 which is specified by the destination field of the fetched instruction.

Next, a test (INSTR. IN LIST? 7) is performed to determine if there is an active instruction on the active list. If another instruction has been registered in the active instruction list unit 9, then (FETCH INSTR. 8) it is fetched from the instruction memory 2 to be executed next. In the event that another instruction has not been registered in the active instruction list unit 9, (NEW INSTR. SEARCH 13) the instruction memory 2 is accessed. For example, there may be a sequential search of the instruction memory 2 for an active instruction. Of course, the active instruction list unit 9 may be dispensed with and, in such a case, an executable instruction is executed after the desired operation unit or the like is released from the busy state, but the speed of parallel execution of instructions is decreased, resulting in impaired performance.

Going back to the description of the steps followed after the function busy test (4), when the desired operator or the like was not busy, and if only the processing mentioned above was performed, the instruction would be left in the executable state. To avoid this, (RESET ACTV. MARK 9) the instruction fetch unit 5 clears the contents of the input field of the fetched instruction and rewrites the instruction into the instruction memory 2 on the assumption that the instruction will be completed.

The register number assigning processor 6 (ASSIGN REG. 10) determines, by hardware processing, the register number to be written into the input field of the instruction specified by the destination field and then (ISSUE INSTR. 11) issues the instruction to the operation unit 7. After the instruction is issued, (DEST. ADDR. REG. 12), the instruction fetch unit 5 puts the contents of the destination field of the fetched instruction in an address register (not illustrated) of the instruction memory 2.

In the operation unit 7 a plurality of instructions usually run in parallel. When an interrupt occurs (INTRPT. GEN.? 14), however, (LD. FIXED ADDR. 16) a fixed address is produced as in the case of the prior art and an interrupt-servicing program which starts with an instruction stored at that address is executed. Upon completion of the interrupt-servicing program, the operation unit 7 puts the operation results in a register predetermined by the register number assigning processor 6. In the above, if a plurality of interrupt conditions are present when setting the address register of the instruction memory 2, then the address of an interrupt-servicing program is chosen through the use of a priority circuit.

FIG. 5 illustrates an example of a timing chart of the execution of an instruction according to the embodiment of the present invention illustrated in FIG. 3. In time slot T1, an instruction is fetched; in time slot T2, the instruction is decoded; in time slot T3, it is checked whether the instruction is executable, and the register number is assigned; in time slot T4, the instruction is issued to the operation unit 7; in time slots T5 to T8, the operation specified by the instruction is executed; in time slot T8, an address based on the content of the destination field of the instruction is put in the address register of the instruction memory 2; and in time slot T9, the next instruction is fetched which is linked with the instruction executed. If the operation unit is busy in time slot T3, the instruction is registered in the active instruction list unit 9 in time slot T4 and the process of fetching another instruction from the active instruction list unit 9 takes place in time slot T5, and in time slot T6, the address setting of the instruction specified by the destination of the first instruction is performed.

In the case where an executed instruction contains two destination fields, the next instruction is fetched based on the contents of the first destination field. Then, another instruction is fetched based on the contents of the second destination field. The instructions 2 to 5 are processed one after another in a pipeline fashion.

In the present invention, a plurality of operators or function units which may be in the operation unit 7 need not always be synchronized in operation, but the pipelines may also operate in parallel and asynchronously.

The data register can easily be applied to vector processing, too. In that case, a plurality of data (vector data) are all stored in one register and a plurality of the same operations are executed on the data at the same time. Scalar processing which processes a single piece of data can also be simplified by considering it as a special case of handling data in vector processing.

When the register numbers are assigned, they may sometimes exceed the number of registers that the hardware has, causing a deadlock. This can be avoided by a system in which program execution is limited by software to stay within a range of a specified number of registers, or a system in which data is saved by hardware into an additional memory or another register, thereby releasing the data register from the busy state.

FIGS. 6 and 7 illustrate the hardware structure of another embodiment of the present invention and a timing chart of the execution of an instruction in the embodiment, respectively. Circled numerals refer to FIG. 2A and FIG. 7. An instruction group is loaded by an external control circuit into the instruction memory 21 prior to processing. Upon the arrival of external data, an address is put in the address register 11 and instruction ○1 is read from the instruction memory 21 and written to the instruction register 15. Thereafter, the external data is supplied by the input 26 and provided via the operator 23 and registers 18 and 19 to a data memory 22. The address of the location in data memory 22 is supplied from an address register 16 via registers 13 and 14. Since it is known that the instruction which was written into the instruction register 15 is an external set instruction, instruction ○2 is read based on the contents of its first input field (that is, the R1 part of instruction ○2 ). When instruction ○2 is written to the instruction register 15, it cannot be execution because its R2 part is not active. Therefore, the hardware shifts to the processing of instruction ○3 as a result of the arrival of external data. The data from the input 26 is provided to register 18. The destination of instruction ○3 is the R2 part of instruction ○2 and instruction ○2 has already been stored in the instruction register 15. Since its R1 part is active, instruction ○2 is executable. Next, instruction ○2 is provided to an operator or function unit 23 via registers 24 and 25. At this time, data corresponding to the R1 part is read from the data memory 22 at the address in the address register 16 based on instruction ○2 stored in the instruction register 15 and the data thus read is provided to register 17, from which it is applied to the operator or function unit 23 together with the above-mentioned instruction stored in the register 25. Then, instruction ○2 is executed and the execution result is written into the register 18. The output of the register 18 is provided to the register 19 and, at this time, the destination of instruction ○2 sent via the registers 13 and 14 is provided via the address register 16 to the data memory 22, by which the result of the execution of instruction ○2 in the register 19 is written into the data memory 22. Since the destination of instruction ○2 is in instruction ○4 , the above-mentioned execution result is written into the data memory 22 at an address corresponding to instruction ○4 . Instruction ○4 is a two-branch instruction and, consequently, data ○4 and ○4' are subsequently written into the data memory 22 at addresses corresponding to instructions ○5 and ○6 , respectively. In this case, instructions ○2 , ○4 and ○4' are written into the data memory 22 via the following route: the address register 11 to the register 13 to the register 14 to the address register 16. Since the data stored by instruction ○4 is the same as the result of the execution of instruction ○2 , the execution result of instruction ○2 is held in the registers 18 and 19. Instructions ○5 and ○6 are linked with the next instructions and the processing therefor is performed in the same way as mentioned above, hence no description will be given thereof.

In the above, if the numbers of words of the instruction memory and the data memory are selected to be the same, data will not overflow. The addresses of the instruction memory and the data memory will have a one-to-one correspondence. Incidentally, since the data memory is not used in some cases, the number of words in the data memory may be smaller than the number of words in the instruction memory but, in such a case, an address converter or associative storage is needed. In the timing chart of FIG. 7 the execution of an instruction is performed in one cycle; but, if several cycles are required for the execution of an instruction, an instruction fetch must be delayed for several cycles correspondingly.

It will be apparent that many modifications and variations may be effected without departing from the scope of the novel concepts of the present invention.

Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
US3766527 *Oct 1, 1971Oct 16, 1973Sanders Associates IncProgram control apparatus
US3949379 *Jul 12, 1974Apr 6, 1976International Computers LimitedPipeline data processing apparatus with high speed slave store
US3962706 *Mar 29, 1974Jun 8, 1976Massachusetts Institute Of TechnologyData processing apparatus for highly parallel execution of stored programs
US4075688 *Aug 26, 1976Feb 21, 1978Hughes Aircraft CompanySystem for addressing and address incrementing of arithmetic unit sequence control system
US4153941 *Nov 11, 1976May 8, 1979Kearney & Trecker CorporationTiming circuit and method for controlling the operation of cyclical devices
US4168523 *Dec 6, 1977Sep 18, 1979Ncr CorporationData processor utilizing a two level microaddressing controller
US4366536 *Apr 15, 1980Dec 28, 1982National Semiconductor CorporationModular digital computer system for storing and selecting data processing procedures and data
Referenced by
Citing PatentFiling datePublication dateApplicantTitle
US4782441 *Jun 10, 1986Nov 1, 1988Hitachi, Ltd.Vector processor capable of parallely executing instructions and reserving execution status order for restarting interrupted executions
US4811215 *Dec 12, 1986Mar 7, 1989Intergraph CorporationInstruction execution accelerator for a pipelined digital machine with virtual memory
US4814978 *Jul 15, 1986Mar 21, 1989Dataflow Computer CorporationDataflow processing element, multiprocessor, and processes
US4841436 *May 30, 1986Jun 20, 1989Matsushita Electric Industrial Co., Ltd.Tag Data processing apparatus for a data flow computer
US4858105 *Mar 26, 1987Aug 15, 1989Hitachi, Ltd.Pipelined data processor capable of decoding and executing plural instructions in parallel
US4959778 *Sep 30, 1988Sep 25, 1990Hitachi, Ltd.Address space switching apparatus
US4965715 *Jan 23, 1989Oct 23, 1990Sharp Kabushiki KaishaData flow type information processor
US4972314 *Jul 5, 1988Nov 20, 1990Hughes Aircraft CompanyData flow signal processor method and apparatus
US4972315 *Mar 10, 1988Nov 20, 1990Mitsubishi Denki Kabushiki KaishaData flow machine
US4974146 *May 6, 1988Nov 27, 1990Science Applications International CorporationArray processor
US4980824 *Jan 17, 1989Dec 25, 1990United Technologies CorporationEvent driven executive
US4989140 *Mar 13, 1989Jan 29, 1991Hitachi, Ltd.Single chip pipeline data processor using instruction and operand cache memories for parallel operation of instruction control and executions unit
US5001624 *Jan 25, 1989Mar 19, 1991Harrell HoffmanProcessor controlled DMA controller for transferring instruction and data from memory to coprocessor
US5043880 *Jan 23, 1989Aug 27, 1991Sharp Kabushiki KaishaData flow processor which combines packets having same identification and destination and synchronizes loop variables for detecting processing loop termination
US5093919 *Oct 20, 1988Mar 3, 1992Sharp Kabushiki KaishaData flow type information processor with plural output program storing apparatus
US5115510 *Oct 19, 1988May 19, 1992Sharp Kabushiki KaishaMultistage data flow processor with instruction packet, fetch, storage transmission and address generation controlled by destination information
US5117499 *Jan 19, 1989May 26, 1992Sharp Kabushiki KaishaData flow type processing apparatus having external and cache memories for fetching paired executing instruction when mishit occurs
US5125097 *Jan 26, 1989Jun 23, 1992Sharp Kabushiki KaishaData flow type information processors where data packets pass through plurality of merging and branching portions of the internal path
US5129075 *Oct 12, 1990Jul 7, 1992Hitachi Micro Computer Engineering, Ltd.Data processor with on-chip logical addressing and off-chip physical addressing
US5150470 *Dec 20, 1989Sep 22, 1992International Business Machines CorporationData processing system with instruction queue having tags indicating outstanding data status
US5163142 *Jun 22, 1990Nov 10, 1992Hewlett-Packard CompanyEfficient cache write technique through deferred tag modification
US5206945 *Oct 31, 1990Apr 27, 1993Hitachi Micro Computer Engineering, Ltd.Single-chip pipeline processor for fetching/flushing instruction/data caches in response to first/second hit/mishit signal respectively detected in corresponding to their logical addresses
US5349672 *Apr 3, 1990Sep 20, 1994Hitachi Microcomputer Engineering, Ltd.Data processor having logical address memories and purge capabilities
US5363495 *Aug 26, 1991Nov 8, 1994International Business Machines CorporationData processing system with multiple execution units capable of executing instructions out of sequence
US5404553 *Jan 2, 1992Apr 4, 1995Mitsubishi Denki Kabushiki KaishaMicroprocessor and data flow microprocessor having vector operation function
US5423040 *Jan 14, 1994Jun 6, 1995International Business Machines CorporationSystem and method for efficiently executing directed acyclic graphs
US5459843 *Jul 28, 1994Oct 17, 1995International Business Machines CorporationRISC-type pipeline processor having N slower execution units operating in parallel interleaved and phase offset manner with a faster fetch unit and a faster decoder
US5465368 *Jul 24, 1990Nov 7, 1995The United States Of America As Represented By The United States Department Of EnergyData flow machine for data driven computing
US5487156 *Dec 5, 1990Jan 23, 1996Popescu; ValeriProcessor architecture having independently fetching issuing and updating operations of instructions which are sequentially assigned and stored in order fetched
US5513332 *May 31, 1988Apr 30, 1996Extended Systems, Inc.Database management coprocessor for on-the-fly providing data from disk media to all without first storing data in memory therebetween
US5561776 *Jun 6, 1995Oct 1, 1996Hyundai Electronics AmericaProcessor architecture supporting multiple speculative branching
US5592636 *Jun 6, 1995Jan 7, 1997Hyundai Electronics AmericaProcessor architecture supporting multiple speculative branches and trap handling
US5613080 *Aug 8, 1996Mar 18, 1997International Business Machines CorporationMultiple execution unit dispatch with instruction shifting between first and second instruction buffers based upon data dependency
US5625837 *Jun 6, 1995Apr 29, 1997Hyundai Electronics AmericaProcessor architecture having out-of-order execution, speculative branching, and giving priority to instructions which affect a condition code
US5627983 *Jun 6, 1995May 6, 1997Hyundai Electronics AmericaProcessor architecture providing out-of-order execution
US5636150 *Apr 3, 1995Jun 3, 1997Sharp Kabushiki KaishaData driven type digital filter unit and data driven type information processor including the same
US5680631 *Nov 18, 1992Oct 21, 1997Hitachi Micro Computer Engineering, Ltd.Data processor with on-chip cache memory and purge controller responsive to external signal for controlling access to the cache memory
US5765014 *Apr 25, 1996Jun 9, 1998Seki; HajimeElectronic computer system and processor element for processing in a data driven manner using reverse polish notation
US5809274 *Jul 1, 1997Sep 15, 1998Hitachi Micro Computer Engineering, Ltd.Purge control for ON-chip cache memory
US5826072 *Nov 13, 1995Oct 20, 1998Oasis Design, Inc.Pipelined digital signal processor and signal processing system employing same
US5926643 *Nov 22, 1996Jul 20, 1999Sanyo Electric Co. Ltd.Data driven processor performing parallel scalar and vector processing
US5961629 *Sep 10, 1998Oct 5, 1999Seiko Epson CorporationHigh performance, superscalar-based computer system with out-of-order instruction execution
US5983334 *Jan 16, 1997Nov 9, 1999Seiko Epson CorporationSuperscalar microprocessor for out-of-order and concurrently executing at least two RISC instructions translating from in-order CISC instructions
US5987588 *Aug 28, 1998Nov 16, 1999Hyundai Electronics America, Inc.Processor architecture providing for speculative execution of instructions with multiple predictive branching and handling of trap conditions
US6038653 *Sep 22, 1998Mar 14, 2000Seiko Epson CorporationHigh-performance superscalar-based computer system with out-of-order instruction execution and concurrent results distribution
US6038654 *Jun 23, 1999Mar 14, 2000Seiko Epson CorporationHigh performance, superscalar-based computer system with out-of-order instruction execution
US6044449 *Nov 10, 1998Mar 28, 2000Seiko Epson CorporationRISC microprocessor architecture implementing multiple typed register sets
US6092176 *Feb 19, 1999Jul 18, 2000Seiko Epson CorporationSystem and method for assigning tags to control instruction processing in a superscalar processor
US6092181 *Oct 7, 1997Jul 18, 2000Seiko Epson CorporationHigh-performance, superscalar-based computer system with out-of-order instruction execution
US6092184 *Dec 28, 1995Jul 18, 2000Intel CorporationParallel processing of pipelined instructions having register dependencies
US6101594 *May 11, 1999Aug 8, 2000Seiko Epson CorporationHigh-performance, superscalar-based computer system with out-of-order instruction execution
US6128723 *May 11, 1999Oct 3, 2000Seiko Epson CorporationHigh-performance, superscalar-based computer system with out-of-order instruction execution
US6131157 *Jan 20, 1998Oct 10, 2000Seiko Epson CorporationSystem and method for retiring approximately simultaneously a group of instructions in a superscalar microprocessor
US6138231 *Apr 21, 1998Oct 24, 2000Seiko Epson CorporationSystem and method for register renaming
US6230254Nov 12, 1999May 8, 2001Seiko Epson CorporationSystem and method for handling load and/or store operators in a superscalar microprocessor
US6243800 *Aug 5, 1998Jun 5, 2001Vsevolod Sergeevich BurtsevComputer
US6249856Jan 10, 2000Jun 19, 2001Seiko Epson CorporationRISC microprocessor architecture implementing multiple typed register sets
US6256720Nov 9, 1999Jul 3, 2001Seiko Epson CorporationHigh performance, superscalar-based computer system with out-of-order instruction execution
US6263423Sep 22, 1999Jul 17, 2001Seiko Epson CorporationSystem and method for translating non-native instructions to native instructions for processing on a host processor
US6272596Sep 15, 1999Aug 7, 2001Hitachi, Ltd.Data processor
US6272617Sep 17, 1999Aug 7, 2001Seiko Epson CorporationSystem and method for register renaming
US6272619Nov 10, 1999Aug 7, 2001Seiko Epson CorporationHigh-performance, superscalar-based computer system with out-of-order instruction execution
US6282630Sep 10, 1999Aug 28, 2001Seiko Epson CorporationHigh-performance, superscalar-based computer system with out-of-order instruction execution and concurrent results distribution
US6289433Jun 10, 1999Sep 11, 2001Transmeta CorporationSuperscalar RISC instruction scheduling
US6360309May 19, 2000Mar 19, 2002Seiko Epson CorporationSystem and method for assigning tags to control instruction processing in a superscalar processor
US6408375Apr 5, 2001Jun 18, 2002Seiko Epson CorporationSystem and method for register renaming
US6412064Aug 2, 2000Jun 25, 2002Seiko Epson CorporationSystem and method for retiring approximately simultaneously a group of instructions in a superscalar microprocessor
US6434693Nov 12, 1999Aug 13, 2002Seiko Epson CorporationSystem and method for handling load and/or store operations in a superscalar microprocessor
US6647485May 10, 2001Nov 11, 2003Seiko Epson CorporationHigh-performance, superscalar-based computer system with out-of-order instruction execution
US6735685Jun 21, 1999May 11, 2004Seiko Epson CorporationSystem and method for handling load and/or store operations in a superscalar microprocessor
US6757808Jan 3, 2002Jun 29, 2004Seiko Epson CorporationSystem and method for assigning tags to control instruction processing in a superscalar processor
US6779102Jun 22, 2001Aug 17, 2004Hitachi, Ltd.Data processor capable of executing an instruction that makes a cache memory ineffective
US6915412Oct 30, 2002Jul 5, 2005Seiko Epson CorporationHigh-performance, superscalar-based computer system with out-of-order instruction execution
US6920548Apr 2, 2004Jul 19, 2005Seiko Epson CorporationSystem and method for retiring approximately simultaneously a group of instructions in a superscalar microprocessor
US6922772Feb 27, 2002Jul 26, 2005Seiko Epson CorporationSystem and method for register renaming
US6934829Oct 31, 2003Aug 23, 2005Seiko Epson CorporationHigh-performance, superscalar-based computer system with out-of-order instruction execution
US6941447Nov 5, 2003Sep 6, 2005Seiko Epson CorporationHigh-performance, superscalar-based computer system with out-of-order instruction execution
US6948052Oct 29, 2002Sep 20, 2005Seiko Epson CorporationHigh-performance, superscalar-based computer system with out-of-order instruction execution
US6954847Feb 4, 2002Oct 11, 2005Transmeta CorporationSystem and method for translating non-native instructions to native instructions for processing on a host processor
US6957320Jul 9, 2002Oct 18, 2005Seiko Epson CorporationSystem and method for handling load and/or store operations in a superscalar microprocessor
US6959375Oct 29, 2002Oct 25, 2005Seiko Epson CorporationHigh-performance, superscalar-based computer system with out-of-order instruction execution
US6965987Nov 17, 2003Nov 15, 2005Seiko Epson CorporationSystem and method for handling load and/or store operations in a superscalar microprocessor
US6970995Aug 19, 2002Nov 29, 2005Seiko Epson CorporationSystem and method for register renaming
US6986024Oct 30, 2002Jan 10, 2006Seiko Epson CorporationHigh-performance, superscalar-based computer system with out-of-order instruction execution
US7028161May 8, 2001Apr 11, 2006Seiko Epson CorporationHigh-performance, superscalar-based computer system with out-of-order instruction execution and concurrent results distribution
US7043624May 18, 2004May 9, 2006Seiko Epson CorporationSystem and method for assigning tags to control instruction processing in a superscalar processor
US7051187Mar 1, 2002May 23, 2006Transmeta CorporationSuperscalar RISC instruction scheduling
US7162610Sep 12, 2003Jan 9, 2007Seiko Epson CorporationHigh-performance, superscalar-based computer system with out-of-order instruction execution
US7343473Jun 28, 2005Mar 11, 2008Transmeta CorporationSystem and method for translating non-native instructions to native instructions for processing on a host processor
US7430651Jan 25, 2006Sep 30, 2008Seiko-Epson CorporationSystem and method for assigning tags to control instruction processing in a superscalar processor
US7447876Apr 18, 2005Nov 4, 2008Seiko Epson CorporationSystem and method for handling load and/or store operations in a superscalar microprocessor
US7487333Nov 5, 2003Feb 3, 2009Seiko Epson CorporationHigh-performance, superscalar-based computer system with out-of-order instruction execution
US7516305Dec 21, 2006Apr 7, 2009Seiko Epson CorporationSystem and method for retiring approximately simultaneously a group of instructions in a superscalar microprocessor
US7523296Jun 10, 2005Apr 21, 2009Seiko Epson CorporationSystem and method for handling exceptions and branch mispredictions in a superscalar microprocessor
US7539850 *Jan 27, 2003May 26, 2009Intel CorporationEnhanced virtual renaming scheme and deadlock prevention therefor
US7555631Jan 31, 2002Jun 30, 2009Sanjiv GargRISC microprocessor architecture implementing multiple typed register sets
US7555632Dec 27, 2005Jun 30, 2009Seiko Epson CorporationHigh-performance superscalar-based computer system with out-of-order instruction execution and concurrent results distribution
US7558945Sep 27, 2005Jul 7, 2009Seiko Epson CorporationSystem and method for register renaming
US7664935Mar 11, 2008Feb 16, 2010Brett CoonSystem and method for translating non-native instructions to native instructions for processing on a host processor
US7685402Jan 9, 2007Mar 23, 2010Sanjiv GargRISC microprocessor architecture implementing multiple typed register sets
US7721070Sep 22, 2008May 18, 2010Le Trong NguyenHigh-performance, superscalar-based computer system with out-of-order instruction execution
US7739482Dec 21, 2006Jun 15, 2010Seiko Epson CorporationHigh-performance, superscalar-based computer system with out-of-order instruction execution
US7802074Apr 2, 2007Sep 21, 2010Sanjiv GargSuperscalar RISC instruction scheduling
US7844797May 6, 2009Nov 30, 2010Seiko Epson CorporationSystem and method for handling load and/or store operations in a superscalar microprocessor
US7861069Dec 19, 2006Dec 28, 2010Seiko-Epson CorporationSystem and method for handling load and/or store operations in a superscalar microprocessor
US7941635Dec 19, 2006May 10, 2011Seiko-Epson CorporationHigh-performance superscalar-based computer system with out-of order instruction execution and concurrent results distribution
US7941636Dec 31, 2009May 10, 2011Intellectual Venture Funding LlcRISC microprocessor architecture implementing multiple typed register sets
US7958337Feb 26, 2009Jun 7, 2011Seiko Epson CorporationSystem and method for retiring approximately simultaneously a group of instructions in a superscalar microprocessor
US7979678May 26, 2009Jul 12, 2011Seiko Epson CorporationSystem and method for register renaming
US8019975Apr 25, 2005Sep 13, 2011Seiko-Epson CorporationSystem and method for handling load and/or store operations in a superscalar microprocessor
US8074052Sep 15, 2008Dec 6, 2011Seiko Epson CorporationSystem and method for assigning tags to control instruction processing in a superscalar processor
USRE34052 *Dec 16, 1988Sep 1, 1992International Business Machines CorporationData processing system with CPU register to register data transfers overlapped with data transfer to and from main storage
USRE35311 *Aug 18, 1994Aug 6, 1996International Business Machines CorporationData dependency collapsing hardware apparatus
WO1990001192A1 *Jul 18, 1989Feb 8, 1990Us EnergyData flow machine for data driven computing
WO1990005950A1 *Nov 16, 1989May 31, 1990Massachusetts Inst TechnologyData flow multiprocessor system
Classifications
U.S. Classification712/201, 712/E09.045
International ClassificationG06F15/82, G06F9/44, G06F9/38
Cooperative ClassificationG06F9/38, G06F9/4436, G06F9/3889
European ClassificationG06F9/38T6, G06F9/44F3, G06F9/38
Legal Events
DateCodeEventDescription
Dec 14, 1998FPAYFee payment
Year of fee payment: 12
Dec 6, 1994FPAYFee payment
Year of fee payment: 8
Oct 31, 1990FPAYFee payment
Year of fee payment: 4
Mar 2, 1983ASAssignment
Owner name: FUJITSU LIMITED; 1015, KAMIKODANAKA, NAKAHARA-KU,
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNOR:UCHIDA, KEIICHIRO;REEL/FRAME:004103/0267
Effective date: 19830218