Claims
- 1. A data processor comprising:
- (a) a plurality of resource means, each of the resource means being responsive to execution start of an instruction executable thereby among a set of instructions to be executed by the data processor, for executing a sequence of processing required by the instruction on a set of vector elements required by the instruction, each of the resource means including a plurality of pipelined stages for executing a sequence of processing on a succeeding vector element in parallel to execution of the sequence on a preceding vector element; and
- (b) a plurality of execution start control means, each of the execution start control means being provided for a corresponding one of the plurality of resource means, for controlling start of execution of instructions executable by said corresponding resource means, among said set of instructions, each of the execution start control means including:
- (b1) instruction holding means for holding at least one succeeding instruction to be executed after a preceding instruction being executed by said corresponding resource means, and
- (b2) start means for starting execution of the succeeding instruction held by the instruction holding means;
- (c) instruction transfer means provided in common to said plurality of execution start control means for transferring each of the instructions to be executed by said data processor selectively to said instruction holding means provided within one of said plurality of execution start control means corresponding to one of said plurality of resource means which can execute the instruction, in parallel to execution of a preceding instruction by said one resource means;
- (d) a plurality of vector registers each of said vector registers for holding a set of vector elements, each of said vector registers being connected to said plurality of resource means so as to provide a set of vector elements held by said vector register to one of said plurality of resource means or so as to receive a set of vector elements supplied by one of said plurality of resource means; and
- (e) a vector register control circuit connected to said plurality of execution start control means and responsive to an instruction whose execution has been started by one of said plurality of execution start control means for supplying a series of read requests to one of said vector registers requested by said instruction, so that a set of vector elements are sequentially read out from said one vector register and are sequentially supplied to one of said plurality of resource means corresponding to said one execution start control means, said vector register control circuit including requesting means operating in synchronism with supply of a last one of the series of the read requests for requesting said start means included within said one execution start control means to start execution of a succeeding instruction held in said instruction holding means within said one execution start control means.
- 2. A data processor according to claim 1, wherein said instruction transfer means includes means for transferring instructions to said plurality of execution start control means so that an instruction executable by one of said plurality of resource means is transferred to execution start control means corresponding to said one resource means under a condition that a vector register requested by the instruction is available for use without determining the availability of resource means required by the instruction, including judge means for judging availability of the vector register depending upon usage status thereof by instructions being executed by the plurality of resource means and by instructions held by said plurality of execution start control means.
- 3. A data processor according to claim 2, wherein each of the execution start control means includes means, responsive to a request by said vector register control circuit for selecting, as an instruction to be started, a succeeding instruction held thereby if there is any, and responsive to transfer of an instruction thereto from said instruction transfer means for selecting the transferred instruction when there is no instruction either being executed by corresponding resource means or being held by said execution start control means so as to start execution of the selected instruction.
- 4. A data processor according to claim 2, wherein said plurality of resource means includes first and second resource means which can execute a same predetermined instruction; and
- wherein said instruction transfer means includes select means for selecting, when an instruction to be transferred is the predetermined instruction, one of the first and second resource means for which a forecast timing of completion of execution of processing by one of said first and second resource means for instructions already occupying said one resource means is earlier than for another of the first and second resource means and for transferring the predetermined instruction to the selected resource means, the instructions already occupying the resource means including an instruction being executed thereby and an instruction being held by execution start control means corresponding thereto.
- 5. A data processor according to claim 1, wherein said requesting means executes the requesting at a time which enables said vector register control circuit to start, in response to starting of execution of said succeeding instruction by said one execution start control means, supplying of a series of read requests to a vector register required by said succeeding instruction at a clock timing next to a clock timing at which said vector register control circuit supplies the last one of the series of read requests for said preceding instruction.
- 6. A data processor comprising:
- (a) a plurality of resource means, each of said resource means being responsive to execution start of an instruction executable thereby among a set of instructions to be executed by the data processor, for executing a sequence of processing required by the instruction, wherein said plurality of resource means includes first and second resource means both of which can execute a same predetermined instruction;
- (b) a plurality of execution start control means, each of the execution start control means being provided for a corresponding one of the plurality of resource means, for controlling start of execution of instructions executable by said corresponding resource means, among the set of instructions, each of said execution start control means including:
- (b1) instruction holding means for holding at least one succeeding instruction to be executed after a preceding instruction being executed by said corresponding resource means; and
- (b2) start means for starting execution of a succeeding instruction held by the instruction holding means at a timing dependent upon execution of a sequence of processing by said corresponding resource means on a preceding set of vector elements requested by the preceding instruction;
- (c) instruction transfer means connected to said plurality of execution start control means for transferring instructions thereto so that an instruction executable by one of said plurality of resource means is transferred to execution start control means corresponding to said one resource means, said instruction transfer means including select means for selecting one of the first and second resource means for which a forecast timing completion of execution of processing by the resource means for instructions already occupying the resource means is earlier than for the other of the first and second resource means so as to transfer the predetermined instruction to the selected resource means, the instructions already occupying the resource means including an instruction being executed thereby and an instruction being held by execution start control means corresponding thereto.
- 7. A data processor according to claim 6, further comprising:
- a plurality of vector registers each for holding a set of vector elements;
- vector register control means connected to said vector registers, said plurality of resource means and said plurality of execution start control means and responsive to an instruction execution started by one of said plurality of execution start control means for performing at least one of first and second operations, wherein during the first operation a set of vector elements are sequentially read and supplied from one of said vector registers requested by the instruction to one of said plurality of resource means which can execute the instruction, and during the second operation a set of vector elements supplied by said one resource means are sequentially written into one of the vector registers; and
- wherein each resource means includes a plurality of pipelined stages for executing a sequence of processing on a succeeding vector element in parallel to execution of the sequence on a preceding vector element.
- 8. A data processor according to claim 7, wherein said select means includes means for selecting one of the first and second resource means depending upon a total number of vector elements which are not yet processed for an instruction being executed by the first resource means and a total number of vector elements which are not yet processed for an instruction being executed by the second resource means.
- 9. A data processor according to claim 7, wherein said select means includes means for selecting one of the first and second resource means depending upon a total number of instructions already occupying the first resource means and a total number of instructions already occupying the second resource means.
- 10. A data processor according to claim 7, wherein said select means includes means for selecting one of the first and second resource means depending upon a transfer timing of an instruction most recently transferred to said first resource means among instructions occupying the first resource means and a transfer timing of an instruction most recently transferred to said second resource means among instructions occupying the second resource means.
- 11. A data processor according to claim 7, wherein said select means includes means for selecting one of the first and second resource means depending upon an execution start timing of an instruction being executed by the first resource means and an execution start timing of an instruction being executed by the second resource means.
- 12. A data processor according to claim 7, wherein:
- said first resource means includes means for executing more kinds of instructions than said second resource means; and
- said select means further includes means for selecting the first resource means when the forecast timing of completion of processing by the first resource means is substantially the same as one by the second resource means.
- 13. A data processor according to claim 6, wherein said select means includes means for selecting one of the first and second resource means depending upon a total number of instructions already occupying the first resource means and a total number of instructions already occupying the second resource means.
- 14. A data processor according to claim 6, wherein said select means includes means for selecting one of the first and second resource means depending upon a transfer timing of an instruction most recently transferred to said first resource means among instructions occupying the first resource means and a transfer timing of an instruction most recently transferred to said second resource means among instructions occupying the second resource means.
- 15. A data processor according to claim 6, wherein said select means includes means for selecting one of the first and second resource means depending upon an execution start timing of an instruction being executed by the first resource means and an execution start timing of an instruction being executed by the second resource means.
- 16. A data processor according to claim 6, wherein:
- said first resource means includes means for executing more kinds of instructions than said second resource means; and
- said select means further includes means for selecting the first resource means when the forecast timing of completion of processing for the first resource means is substantially the same as one for the second resource means.
- 17. A data processor comprising:
- a plurality of resources for executing instructions;
- a plurality of instruction hold means corresponding to said resources, each of said plurality of instruction hold means holds instructions to be executed in a corresponding one of said resources;
- a plurality of execution start control means corresponding to said resources, each of said plurality of execution start control means independently causing a start of execution of a succeeding instruction, held in one of said plurality of instruction hold means corresponding to a particular one of said resources to which said each execution start control means corresponds, before the particular resource completes execution of a preceding instruction, execution of said preceding instruction having been already started by said each execution start control means; and
- instruction control means connected to said plurality of instruction hold means for transferring a series of instructions to be executed by said data processor to said plurality of instruction hold means, so that each of said instructions is transferred to one of said plurality of instruction hold means which is provided in correspondence to one of said plurality of resources which can execute said each instruction.
- 18. A data processor according to claim 17, wherein each of said resources includes means for processing vector data specified by an instruction transferred from said instruction control means.
- 19. A data processor according to claim 17, further comprising a plurality of registers connected to said plurality of resources, wherein:
- said instruction control means includes means for judging whether or not one of said registers to be used by an instruction to be transferred is available and whether or not the instruction hold means corresponding to said particular resource can hold a further instruction and for transferring, in a case where a result of the judgement is positive, the further instruction to the instruction hold means corresponding to the particular resource.
- 20. A data processor according to claim 19, wherein:
- each of said registers is a vector register for holding vector data; and
- each of said resources includes means for processing either vector data read from a particular vector register specified by a particular instruction transferred from said instruction control means or vector data to be written in said particular register specified by the particular instruction.
- 21. A data processor according to claim 17, further comprising means for forecasting points in time respectively corresponding to completions of executions of instructions currently held in said instruction hold means corresponding to each resource in order to select a resource in which an execution of an instruction currently held in said instruction hold means is first completed;
- wherein:
- at least two of said resources are capable of executing the same instruction; and
- said instruction control means transfers, in a case where a particular instruction to be transferred can be executed in any one of said at least two resources, the particular instruction to the instruction hold means corresponding to said selected resource.
- 22. A data processor according to claim 21, wherein said forecasting means includes means for forecasting a point of time of execution completion for said instructions depending on numbers of instructions respectively held in said instruction hold means.
- 23. A data processor according to claim 21, wherein said forecasting means includes means for forecasting a point of time of execution completion for said instructions depending on points of time when said instruction control means respectively transfer last instructions to said instruction hold means.
- 24. A data processor according to claim 21, wherein said forecasting means includes means for forecasting a point of time of execution completion for said instructions depending on points of time when instructions respectively being executed in said resources are started for execution.
- 25. A data processor according to claim 21, wherein:
- the instructions to be executed include a vector instruction for processing vector data including a plurality of vector elements; and
- said forecasting means includes means for forecasting a point of time of execution completion for each instruction depending on numbers of vector elements remaining to be respectively processed by instructions being executed in said resources.
- 26. A data processor according to claim 21, wherein:
- in said plurality of resources, a first resource is capable of executing instructions of a first kind and a second kind, and a second resource is capable of executing instructions of the first kind and is not capable of executing instructions of the second kind; and
- said forecasting means includes means for selecting the second resource in a case where it is forecasted that points of time for an instruction execution completion in the first and second resources is the same.
- 27. A data processor comprising:
- a plurality of resources for executing instructions, said each resource having pipelined stages for executing a sequence of processing required by an instruction in an overlapped manner;
- a plurality of instruction hold means corresponding to said resources, each of said plurality of instruction hold means holds instructions to be executed in a corresponding one of said resources;
- a plurality of execution start control means corresponding to said resources, each of said plurality of execution start control means independently causing a start of execution of a succeeding instruction, held in one of said plurality of instruction hold means corresponding to a particular one of said resources to which said each execution start control means corresponds, at a timing dependent upon execution of a sequence of processing required by a preceding instruction on said particular resource, execution of said preceding instruction having been already started by said each execution start control means; and
- instruction control means connected to said plurality of instruction hold means for transferring a series of instructions to be executed by said data processor to said plurality of instruction hold means, so that each of said instructions is transferred to one of said plurality of instruction hold means which is provided in correspondence to one of said plurality of resources which can execute said each instruction.
Priority Claims (1)
Number |
Date |
Country |
Kind |
62-285310 |
Nov 1987 |
JPX |
|
Parent Case Info
This application is a continuation of application Ser. No. 269,645, filed on Nov. 10, 1988, now abandoned.
US Referenced Citations (24)
Continuations (1)
|
Number |
Date |
Country |
Parent |
269645 |
Nov 1988 |
|