Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures
First Claim
1. A pipelined processing apparatus having a plurality of pipelined processors accomodating different types of instructions, comprising:
- receiving means for receiving incoming instructions, which receiving means includes decode means for decoding each of the incoming instructions thereby identifying a category type for said each of the incoming instructions;
a plurality of pipelined processors each connected to said receiving means for temporarily holding at least some of the incoming instructions for execution, each pipelined processor being identified by a unique number;
switch means connected to said receiving means and coupled to said plurality of pipelined processors, said switch means changing to a standard single pipelining mode for a first category of instructions identified by said decode means and changing to a dynamic multiple pipelining mode for a second category of instructions identified by said decode means, with each instruction in said second category of instructions having the unique number for the pipelined processor which accomodates that type of instruction;
table means connected to the plurality of pipelined processors and to the receiving means for recording the numbers of one or more pipelined processor means in which said at least some of the incoming instructions are temporarily held for execution, and for controlling the completion of instruction processing by the plurality of pipelined processors so that such completion will be in a predetermined sequence; and
wherein said receiving means determines if a particular one of the pipelined processors is available for use, said receiving means inserting an incoming instruction in said particular one of the pipelined processors for execution when said particular one of the pipelined processors becomes available for use.
1 Assignment
0 Petitions
Accused Products
Abstract
A dynamic multiple instruction stream, multiple data, multiple pipeline (MIMD) apparatus simultaneously executes more than one instruction associated with a multiple number of instruction streams utilizing multiple data associated with the multiple number of instruction streams in a multiple number of pipeline processors. Since instructions associated with a multiple number of instruction streams are being executed simultaneously by a multiple number of pipeline processors, a tracking mechanism is needed for keeping track of the pipe in which each instruction is executing. As a result, a dynamic history table maintains a record of the pipeline processor number in which each incoming instruction is executing, and other characteristics of the instruction. When a particular instruction is received, it is decoded and its type is determined. Each pipeline processor handles a certain category of instructions; the particular instruction is transmitted to the pipeline processor having its corresponding category. However, before transmission, the pipeline processor is checked for completion of its oldest instruction by consulting the dynamic history table. If the table indicates that the oldest instruction in the pipeline processor should complete, execution of the oldest instruction in such processor completes, leaving room for insertion of the particular instruction therein for execution. When the particular instruction is transmitted to its associated pipeline processor, information including the pipe number is stored in the dynamic history table for future reference.
210 Citations
17 Claims
-
1. A pipelined processing apparatus having a plurality of pipelined processors accomodating different types of instructions, comprising:
-
receiving means for receiving incoming instructions, which receiving means includes decode means for decoding each of the incoming instructions thereby identifying a category type for said each of the incoming instructions; a plurality of pipelined processors each connected to said receiving means for temporarily holding at least some of the incoming instructions for execution, each pipelined processor being identified by a unique number; switch means connected to said receiving means and coupled to said plurality of pipelined processors, said switch means changing to a standard single pipelining mode for a first category of instructions identified by said decode means and changing to a dynamic multiple pipelining mode for a second category of instructions identified by said decode means, with each instruction in said second category of instructions having the unique number for the pipelined processor which accomodates that type of instruction; table means connected to the plurality of pipelined processors and to the receiving means for recording the numbers of one or more pipelined processor means in which said at least some of the incoming instructions are temporarily held for execution, and for controlling the completion of instruction processing by the plurality of pipelined processors so that such completion will be in a predetermined sequence; and wherein said receiving means determines if a particular one of the pipelined processors is available for use, said receiving means inserting an incoming instruction in said particular one of the pipelined processors for execution when said particular one of the pipelined processors becomes available for use. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. In an apparatus including an instruction receiving means for receiving instructions, a plurality of pipelined processor means, each pipelined processor means including internal pipe controls, a table means connected to the instruction receiving means and the plurality of pipelined processor means, and data receiving means for receiving data corresponding to the received instructions, a method of inserting a received instruction received via the instruction receiving means into one of the pipelined processor means and for associating a corresponding received data received via said data receiving means with said received instruction in said one of the pipelined processor means, comprising the steps of:
-
identifying said received instruction thereby determining the identity of said one of the pipelined processor means from among said plurality of pipelined processor means; consulting said table means and the internal pipe controls associated with said one of the pipelined processor means to determine if said one of the pipelined processor means is ready for receipt of said received instruction and said corresponding received data; stacking said instructions received via said instruction receiving means, including said received instruction, in an instruction stacking means, each instruction in each stack of the instruction stacking means including a number identifying one of the pipelined processors; separately stacking said data received via said data receiving means, including said corresponding received data, in a data stacking means, there being a one-to-one correspondence between the stacked instructions and the stacked data; and transmitting said received instruction and said corresponding received data from said instruction receiving means and said data stacking means to said one of the pipelined processor means identified in accordance with the number associated with said received instruction stored in said instruction stacking means when said one of the pipelined processor means is ready for receipt of said received instruction and said corresponding received data. - View Dependent Claims (15, 16, 17)
-
Specification