IP Library › Granted Patent US 9,250,916
Granted Patent B2
US 9,250,916 · App. 13/795,435 · Granted Feb 2, 2016

Chaining between exposed vector pipelines

Inventors: Thomas W. Fox (Hopewell Junction, NY); Bruce M. Fleischer (Bedford Hills, NY); Hans M. Jacobson (White Plains, NY); Ravi Nair (Briarcliff Manor, NY)
Assignee: International Business Machines Corporation
G06F9/3867G06F9/30079
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,250,916
App. No.
13/795,435
Granted
Feb 2, 2016
Kind
B2
Abstract

Embodiments include a method for chaining data in an exposed-pipeline processing element. The method includes separating a multiple instruction word into a first sub-instruction and a second sub-instruction, receiving the first sub-instruction and the second sub-instruction in the exposed-pipeline processing element. The method also includes issuing the first sub-instruction at a first time, issuing the second sub-instruction at a second time different than the first time, the second time being offset to account for a dependency of the second sub-instruction on a first result from the first sub-instruction, the first pipeline performing the first sub-instruction at a first clock cycle and communicating the first result from performing the first sub-instruction to a chaining bus coupled to the first pipeline and a second pipeline, the communicating at a second clock cycle subsequent to the first clock cycle that corresponds to a total number of latch pipeline stages in the first pipeline.

Claims (38)

1. A system for chaining data in an exposed-pipeline processing element, the system comprising:

a first pipeline and a second pipeline located in separate register file spaces, the system configured to perform a method comprising:

separating a multiple instruction word into a first sub-instruction and a second sub-instruction;

receiving the first sub-instruction and the second sub-instruction in the exposed-pipeline processing element;

issuing the first sub-instruction at a first time;

issuing the second sub-instruction at a second time different than the first time, the second time being offset to account for a dependency of the second sub-instruction on a first result from the first sub-instruction;

performing, by a first pipeline, the first sub-instruction at a first clock cycle;

communicating, by the first pipeline, the first result from performing the first sub-instruction to a chaining bus coupled to the first pipeline and a second pipeline, the communicating at a second clock cycle subsequent to the first clock cycle that corresponds to a total number of latch pipeline stages in the first pipeline, the first pipeline and second pipeline being located in separate register file spaces;

receiving, by the second pipeline, the second sub-instruction at the second clock cycle; and

performing, by the second pipeline, the second sub-instruction at the second clock cycle, the performing based on receiving the first result via the chaining bus.

2. The system of claim 1 , wherein separating the multiple instruction word into the first sub-instruction and the second sub-instruction further comprises separating, by a compiler, the multiple instruction word into the first sub-instruction and the second sub-instruction.

3. The system of claim 2 , wherein separating the multiple instruction word into the first sub-instruction and the second sub-instruction further comprises inserting a no operation instruction for the second pipeline to execute at the first clock cycle before the second pipeline executes the second sub-instruction at the second clock cycle and wherein the first pipeline performs a second index of the first sub-instruction during the second clock cycle.

4. The system of claim 1 , wherein issuing the first sub-instruction comprises receiving a sub-instruction with a destination field indicating the second pipeline as having an input of the first result of the first sub-instruction.

5. The system of claim 4 , wherein issuing the second sub-instruction comprises receiving a sub-instruction with a source field indicating the second sub-instruction has an input of the first result from the first pipeline.

6. The system of claim 1 , wherein separating the multiple instruction word further comprises separating the multiple instruction word into the first sub-instruction, the second sub-instruction and a third sub-instruction; and

the method further comprising:

communicating, by the second pipeline, a second result from performing the second sub-instruction at a third clock cycle to the chaining bus coupled to a third pipeline, the third clock cycle corresponding to a total number of latch pipeline stages in the second pipeline;

receiving the third sub-instruction at the third clock cycle, the third clock cycle being subsequent to the second clock cycle; and

performing, by the third pipeline, the third sub-instruction based on receiving the second result via the chaining bus.

7. The system of claim 1 , wherein separating the multiple instruction word further comprises separating the multiple instruction word into the first sub-instruction, the second sub-instruction and a third sub-instruction;

the method further comprising:

receiving the third sub-instruction at a third clock cycle, the third clock cycle being after the first clock cycle and before the second clock cycle;

performing, by a third pipeline, the third sub-instruction;

communicating, by the third pipeline, a second result from performing the third sub-instruction at a third clock cycle to the chaining bus coupled to the third pipeline, the third clock cycle corresponding to a total number of latch pipeline stages in the third pipeline; and

wherein performing, by the second pipeline, the second sub-instruction based on receiving the first result via the chaining bus further comprises performing the second sub-instruction based on receiving the first result and second result via the chaining bus.

8. A system for chaining data in an exposed-pipeline processing element, the system comprising:

an instruction buffer, a first pipeline and a second pipeline located in separate register file spaces, the system configured to perform a method comprising:

receiving a multiple instruction word in an instruction buffer of the exposed-pipeline processing element, the multiple instruction word comprising a first sub-instruction and a second sub-instruction;

receiving, by a first pipeline, the first sub-instruction;

receiving, by a second pipeline, the second sub-instruction, the first pipeline and second pipeline being located in separate register file spaces;

performing, by the first pipeline, the first sub-instruction at a first clock cycle;

stalling execution of the second sub-instruction at the first clock cycle, the second sub-instruction being dependent on a first result from the first sub-instruction;

communicating, by the first pipeline, the first result from performing the first sub-instruction to a chaining bus coupled to the first pipeline and second pipeline, the communicating at a second clock cycle subsequent to the first clock cycle that corresponds to a total number of latch pipeline stages in the first pipeline; and

performing, by the second pipeline, the second sub-instruction at the second clock cycle, the performing based on receiving the first result via the chaining bus.

9. The system of claim 8 , wherein the second sub-instruction comprises a source field indicating that the second sub-instruction has the first result as an operand, wherein the second pipeline stalls execution of the second sub-instruction based on reading the source field.

10. The system of claim 9 , wherein the first sub-instruction comprises a destination field indicating that the second pipeline is to receive the first result on the chaining bus.

11. The system of claim 8 , wherein the second pipeline does not perform any instruction during the first clock cycle.

12. The system of claim 8 , wherein the first pipeline performs a second index of the first sub-instruction during the second clock cycle.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2013
From: FOX, THOMAS W.; FLEISCHER, BRUCE M.; JACOBSON, HANS M.; NAIR, RAVI
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 029971/0327 →
Continuity (1)
Related Publication 20140281386A1 · Sep 18, 2014