← Back to Patent Explorer
EP0827071A2 Expired / Lapsed EP ⏱️ 0.0 years remaining

Multithreaded processor for processing multiple instruction streams independently of each other by flexibly controlling throughput in each instruction stream

Assignee: Panasonic Holdings Corp
•
Filing: 1997-08-27
•
Granted: —
•
Expires: 2017-08-27
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A multithreaded processor for executing multiple instruction streams is provided. This multithreaded processor includes: a plurality of functional units for executing instructions; a plurality of instruction decode units, corresponding to the multiple instruction streams on a one-to-one basis, for respectively decoding an instruction, and Producing an instruction issue request for designating to which functional unit the decoded instruction should be issued and requesting for the issuance of the decoded instruction to the designated functional unit; a holding unit for holding the priority level of each instruction stream; and a control unit for deciding which decoded instruction should be issued to a functional unit designated by two or more instruction issue requests at the same time, in accordance with the priority levels held by the holding unit.

Inventors

  • 👤 Kozo Kimura
  • 👤 Tokuzo Kiyohara
  • 👤 Kousuke Yoshioka

Bibliographic Details

Application Number —
Jurisdiction EP
Data Source google_patents
Last Synchronized 2026-11-01 13:27
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/30003; G06F9/30076; G06F9/3009; G06F9/38; G06F9/3818; G06F9/3822; G06F9/3836; G06F9/3851; G06F9/46; G06F9/48; G06F9/4806; G06F9/4843

Claims Analysis

Total Claims: 38
Claim 1
Independent Claim 122 words
A multithreaded processor for executing multiple instruction streams, comprising: a plurality of functional units for respectively executing an instruction; a plurality of instruction decode means, corresponding to the multiple instruction streams on a one-to-one basis, for respectively decoding an instruction, and producing an instruction issue request for designating to which functional unit the decoded instruction should be issued and requesting for the issuance of the decoded instruction to the designated functional unit; holding means for holding priority level of each of the instruction streams; and control means for deciding which decoded instruction should be issued to a functional unit designated by two or more instruction issue requests at the same time, in accordance with the priority levels stored by the holding means.
Claim 2
Dependent Claim 76 words
A multithreaded processor according to Claim 1, wherein the holding means further has flags which can be set by an instruction for indicating whether each instruction stream should be halted or executed, and the control means includes: arbitration means for making the decision; and stop means for stopping an instruction stream corresponding to a flag indicating a halt by excluding the instruction issue requests of the instruction streams corresponding to the flags in making the decision.
Claim 3
Dependent Claim 54 words
A multithreaded processor according to Claim 2, wherein the control means further includes: prohibition means for temporarily prohibiting issuance of the instruction decided to be issued by the control means to the functional unit, if there is a process which needs to be performed urgently in an instruction stream to which the instruction belongs.
Claim 4
Dependent Claim 24 words
A multithreaded processor according to Claim 3, wherein the process to be performed urgently is an interrupt request or a cache miss occurrence notification.
Claim 5
Dependent Claim 48 words
A multithreaded processor according to Claim 1, wherein one of the functional units receives a special instruction for ordering to change the priority level of an instruction stream to which the special instruction belongs, the priority level being one of the priority levels held by the holding means.
Claim 6
Dependent Claim 78 words
A multithreaded processor according to Claim 5, wherein the special instruction is made up of only an operation code for indicating whether the priority levels should be raised or lowered, and one of the functional units detects which instruction decode means has issued the special instruction in the case where a decode result of the special instruction is issued, and then raises or lowers the priority level of an instruction stream corresponding to the detected instruction decode means.
Claim 7
Dependent Claim 80 words
A multithreaded processor according to Claim 6, wherein the holding means includes a control register which has a first field for read only, and one of the functional units detects which instruction decode means has issued a read instruction when the decode result of the read instruction of the control register is issued, and outputs the ID of the instruction stream corresponding to the detected instruction decode stream as the read data of the first field to an internal bus.
Claim 8
Dependent Claim 52 words
A multithreaded processor according to Claim 7, wherein the control register includes priority fields for holding the priority level of each of the instruction streams, and one of the functional units reads out each of the priority fields when the decode result of the read instruction of the control register is issued.
Claim 9
Dependent Claim 108 words
A multithreaded processor according to Claim 6, wherein the holding means has a control register, the control register includes individual fields corresponding to the multiple instruction streams on a one-to-one basis for holding inherent data of the multiple instruction streams, and a second field for read only, and one of the functional units reads out the individual field of each of the multiple instruction streams upon execution of a read instruction of the control register, and outputs the inherent data of the instruction stream corresponding to the instruction decode means that has issued the read instruction as the read data of the second field to the internal bus.
Claim 10
Dependent Claim 19 words
A multithreaded processor according to Claim 9, wherein the inherent data of the multiple instruction streams show priority levels.
Claim 11
Dependent Claim 108 words
A multithreaded processor according to Claim 6, wherein the holding means includes priority fields for holding the priority level of each instruction stream, the priority field of each instruction stream is made up of minor fields indicating the priority level of each instruction stream in each execution mode, one of the functional units detects which instruction decode means has issued the special instruction in the case where the decode result of the special instruction is issued, and then raises or lowers the priority level of each minor field for the current execution mode among the priority fields of the instruction stream corresponding to the detected instruction decode means.
Claim 12
Dependent Claim 106 words
A multithreaded processor according to Claim 1, further comprising: specified instruction detecting means for detecting that one of the functional units has started executing a specified instruction, and which instruction decode means has issued the decode result of the specified instruction; and temporary modification means for temporarily modifying, if the specified instruction detecting means has detected the execution start of a specified instruction, the priority level of the instruction stream corresponding to the instruction decode means which has issued the specified instruction over a predetermined period of time, the priority level being modified so as to be higher than the priority levels of other instruction streams.
Claim 13
Dependent Claim 213 words
A multithreaded processor for executing multiple instruction streams, comprising: a plurality of functional units for executing instructions; a plurality of instruction decode means, corresponding to the multiple instruction streams on a one-to-one basis, for respectively decoding an instruction, and producing an instruction issue request for designating to which functional unit the decoded instruction should be issued and requesting the functional unit to issue the decoded instruction to the designated functional unit; priority holding means for holding the priority level of each instruction stream; self-halt data holding means for holding self-halt data indicating whether to put each instruction stream into an execution state or a halt state; arbitration means for determining, upon receipt of instruction issue requests sent from the plurality of instruction decode means, which decoded instruction should be issued to the functional unit designated by two or more instruction issue requests at the same time, in accordance with the priority levels held by the priority holding means; and stop means for stopping notifying the arbitration means of an instruction issue request from the instruction decode means corresponding to the instruction stream kept in a halt state by the self-halt data, the instruction issue request being one of instruction issue requests sent from the Plurality of instruction decode units to the arbitration unit.
Claim 14
Dependent Claim 87 words
A multithreaded processor according to Claim 13, further comprising exclusive halt data holding means for holding exclusive halt data for each instruction stream, the exclusive halt data indicating that one instruction stream should be in an execution state, and that the remaining instruction streams should be in a halt state, and wherein the stop means stops notifying the arbitration means of the issuance of an instruction issue request from the instruction decode means corresponding to instruction streams kept in a halt state by the exclusive halt data.
Claim 15
Dependent Claim 33 words
A multithreaded processor according to Claim 13, wherein one of the functional units changes the priority levels when a decode result of a special instruction ordering to change the priority levels is issued.
Claim 16
Dependent Claim 78 words
A multithreaded processor according to Claim 15, wherein the special instruction is made up of only an operation code for indicating whether the priority levels should be raised or lowered, and one of the functional units detects which instruction decode means has issued the special instruction in the case where a decode result of the special instruction is issued, and then raises or lowers the priority level of an instruction stream corresponding to the detected instruction decode means.
Claim 17
Dependent Claim 80 words
A multithreaded processor according to Claim 16, wherein the holding means includes a control register which has a first field for read only, and one of the functional units detects which instruction decode means has issued a read instruction when the decode result of the read instruction of the control register is issued, and outputs the ID of the instruction stream corresponding to the detected instruction decode stream as the read data of the first field to an internal bus.
Claim 18
Dependent Claim 52 words
A multithreaded processor according to Claim 17, wherein the control register includes priority fields for holding the priority level of each of the instruction streams, and one of the functional units reads out each of the priority fields when the decode result of the read instruction of the control register is issued.
Claim 19
Dependent Claim 108 words
A multithreaded processor according to Claim 16, wherein the holding means has a control register, the control register includes individual fields corresponding to the multiple instruction streams on a one-to-one basis for holding inherent data of the multiple instruction streams, and a second field for read only, and one of the functional units reads out the individual field of each of the multiple instruction streams upon execution of a read instruction of the control register, and outputs the inherent data of the instruction stream corresponding to the instruction decode means that has issued the read instruction as the read data of the second field to the internal bus.
Claim 20
Dependent Claim 19 words
A multithreaded processor according to Claim 19, wherein the inherent data of the multiple instruction streams show priority levels.
Claim 21
Dependent Claim 108 words
A multithreaded processor according to Claim 16, wherein the holding means includes priority fields for holding the priority level of each instruction stream, the priority field of each instruction stream is made up of minor fields indicating the priority level of each instruction stream in each execution mode, one of the functional units detects which instruction decode means has issued the special instruction in the case where the decode result of the special instruction is issued, and then raises or lowers the priority level of each minor field for the current execution mode among the priority fields of the instruction stream corresponding to the detected instruction decode means.
Claim 22
Dependent Claim 105 words
A multithreaded processor according to Claim 13, wherein specified instruction detecting means for detecting that one of the functional units has started executing a specified instruction, and which instruction decode means has issued the decode result of the specified instruction, and temporary modification means for temporarily modifying, if the specified instruction detecting means has detected the execution start of a specified instruction, the priority level of the instruction stream corresponding to the instruction decode means which has issued the specified instruction over a predetermined period of time, the priority level being modified so as to be higher than the priority levels of other instruction streams.
Claim 23
Dependent Claim 157 words
A multithreaded processor for executing multiple instruction streams simultaneously and independently of each other, comprising: a plurality of functional units for executing instructions simultaneously and independently of each other; a plurality of instruction decode means, corresponding to the multiple instruction streams on a one-to-one basis, for respectively fetching and decoding an instruction of each instruction stream, and specifying to which functional unit the instruction should be issued; priority designating means for designating the priority level of each of the multiple instruction stream; instruction issue judging means for judging whether the decoded instruction can be issued to the specified functional unit, depending on whether the specified functional unit is ready to receive an instruction; and instruction issue arbitration means for arbitrating between two or more instructions to determine one instruction to be issued to the functional unit specified by the two or more instruction decode means, in accordance with the priority levels designated by the priority designating means.
Claim 24
Dependent Claim 52 words
A multithreaded processor according to Claim 23, further comprising instruction issue prohibition means for temporarily prohibiting issuance of the instruction decided to be issued by the control means to the functional unit, if there is a process which needs to be performed urgently in an instruction stream to which the instruction belongs.
Claim 25
Dependent Claim 24 words
A multithreaded processor according to Claim 24, wherein the process to be performed urgently is an interrupt request or a cache miss occurrence notification.
Claim 26
Dependent Claim 40 words
A multithreaded processor according to Claim 24, wherein the priority designating means includes a control register for holding the priority level of each instruction stream, the priority level being able to be set by an instruction in each instruction stream.
Claim 27
Dependent Claim 33 words
A multithreaded processor according to Claim 26, wherein one of the functional units changes the priority levels when a decode result of a special instruction ordering to change the priority levels is issued.
Claim 28
Dependent Claim 54 words
A multithreaded processor according to Claim 27, wherein the instruction issue arbitration means determines which instruction should be issued to a functional unit according a predetermined procedure, the functional unit being able to be set by two or more instructions, and the instruction streams to which the instructions belong have the same priority level.
Claim 29
Dependent Claim 64 words
A multithreaded processor according to Claim 28, wherein the instruction issue arbitration means includes auxiliary judgement means for determining which instruction should be issued according to the predetermined procedure, in which a different instruction stream is selected in cycles, an instruction of an instruction stream different from the previous one is selected, or an instruction of one of the instruction streams is invariably selected.
Claim 30
Dependent Claim 45 words
A multithreaded processor according to Claim 26, wherein the control register includes a priority field for each instruction stream in each execution mode, and the instruction issue arbitration means arbitrates with reference to priority fields corresponding to the execution modes for the multiple instruction streams.
Claim 31
Dependent Claim 89 words
A multithreaded processor according to Claim 24, wherein the priority designating means comprises a control register including priority fields which can be set for each instruction stream in each execution mode by a special instruction in an instruction stream, and one of the functional units detects the instruction stream and its execution mode corresponding to the instruction decode means that has issued the special instruction, and sets the priority level into the priority field corresponding to the detected instruction stream and execution mode, in accordance with the special instruction.
Claim 32
Dependent Claim 30 words
A multithreaded processor according to Claim 31, wherein the special instruction is made up of only an operation code, and indicates whether the priority level should be raised or lowered.
Claim 33
Dependent Claim 174 words
A multithreaded processor for executing multiple instruction streams simultaneously and independently of each other, comprising: a plurality of functional units for executing instructions simultaneously and independently of each other; a plurality of instruction decode means, corresponding to the multiple instruction streams on a one-to-one basis, for respectively fetching and decoding an instruction of each instruction stream, and specifying to which functional unit the instruction should be issued; priority designating means for designating the priority level of each of the multiple instruction stream, and designating whether each instruction stream should be in an execution state or in a halt state; instruction issue judging means for judging whether the decoded instruction can be issued to the specified functional unit, depending on whether the specified functional unit is ready to receive an instruction; and instruction issue arbitration means for arbitrating between two or more instructions to determine one instruction to be issued to the functional unit specified by the two or more instruction decode means, in accordance with the priority levels designated by the priority designating means.
Claim 34
Dependent Claim 129 words
A multithreaded processor according to Claim 33, wherein the priority designating means comprises: a first register for holding the priority level of each instruction stream that can be set by a first instruction; a second register for holding a status flag of each instruction stream indicating whether each instruction stream is in an execution state or in a halt state, the status flag being set by a second instruction; and a third register for holding an exclusive halt flag of each instruction stream which orders to halt other instruction streams, the exclusive halt flag being set by a third instruction, and the instruction issue judging means judges that the instructions in the halted instruction streams cannot be issued, in accordance with the status flag and the exclusive halt flag.
Claim 35
Dependent Claim 115 words
A multithreaded processor according to Claim 34, wherein the first instruction is made up of only an operation code for indicating whether the priority level should be raised or lowered, the second instruction is made up of only an operation code for indicating whether the priority level should be raised or lowered, the third instruction is made up of only an operation code for indicating that other instruction streams should be halted, and one of the functional units detects the instruction stream corresponding to the instruction decode means that have issued the first, second, and third instructions, and changes the priority level, the status flag, and the exclusive flag corresponding to the detected instruction stream.
Claim 36
Dependent Claim 106 words
A multithreaded processor for executing multiple instruction streams simultaneously and independently of each other, comprising: a plurality of instruction cache means for temporarily storing instructions of the multiple instruction streams; a plurality of instruction fetch means, corresponding to the multiple instruction streams on a one-to-one basis, for respectively fetching an instruction of each instruction stream from the instruction cache means; priority designating means for designating the priority level of each of the multiple instruction stream; and instruction fetch control means for arbitrating between instruction fetch requests issued by two or more instruction cache means, in accordance with the priority levels designated by the priority designating means.
Claim 37
Dependent Claim 168 words
A multithreaded processor provided with a plurality of functional units for executing instructions, a plurality of instruction decode means for respectively decoding an instruction fetched from an instruction cache means and outputting an instruction issue request to a designated functional unit, and the same number of register sets as the instruction decode means, which executes the same number of instruction streams as the instruction decode means simultaneously and independently of each other, characterized by comprising: holding means for holding the priority level of each instruction stream that can be set by an instruction in each instruction stream; and control means for arbitrating between two or more instruction streams sharing the same resource, in accordance with the priority levels, the shared resource being one functional unit for which instruction issue requests from two or more instruction decode means compete, one instruction cache for which fetch requests from two or more instruction decode means compete, or one register set for which access requests from two or more functional units compete.
Claim 38
Dependent Claim 47 words
A multithreaded processor according to Claim 37, wherein upon receipt of an instruction to raise or lower a priority level, one of the functional units changes the priority level of the instruction stream to which the instruction belongs, the priority level being held by the holding means.

References Cited (Backward Citations)

No citation records indexed.

USPTO Annuity & Maintenance Windows

Maintenance schedule is calculated for granted US utility patents.

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag