IP Library Granted Patent US 9,811,342
Granted Patent B2
US 9,811,342 · App. 14/213,218 · Granted Nov 7, 2017

Method for performing dual dispatch of blocks and half blocks

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,811,342
App. No.
14/213,218
Granted
Nov 7, 2017
Kind
B2
Abstract

A method for executing dual dispatch of blocks and half blocks. The method includes receiving an incoming instruction sequence using a global front end; grouping the instructions to form instruction blocks, wherein each of the instruction blocks comprise two half blocks; scheduling the instructions of the instruction block to execute in accordance with a scheduler; and performing a dual dispatch of the two half blocks for execution on an execution unit.

Claims (31)

1. A method for executing dual dispatch of instruction blocks, the method comprising:

receiving an incoming sequence of instructions using a fetch unit;

grouping the instructions to form instruction blocks;

scheduling instructions of a first instruction block to execute in accordance with a scheduler, wherein the first instruction block comprises a first half block and a second half block;

determining whether a dual dispatch of the first instruction block is to be performed based on dependency resolution; and

performing a dual dispatch of the first instruction block for execution on an execution unit in response to a determination that a dual dispatch of the first instruction block is to be performed, wherein the performing a dual dispatch comprises dispatching each half block of the first instruction block independently, and wherein both half blocks of the first instruction block are managed as a single instruction block for allocation and retirement purposes.

2. The method of claim 1 , wherein the performing a dual dispatch comprises dispatching the first instruction block a first time with its intermediate result being held as a transient state.

3. The method of claim 1 , wherein the performing a dual dispatch comprises dispatching the first instruction block a first time with its intermediate result being held as a transient state that is not architecturally visible.

4. The method of claim 1 , wherein the dual dispatch avoids allocating multiple separate blocks into a machine reorder window to render the machine reorder window effectively larger.

5. The method of claim 1 , wherein a first dispatch of the dual dispatch is a fixed point multiply and a second dispatch of the dual dispatch is a floating point addition rounding.

6. A non-transitory computer readable media having computer code stored therein, which when executed by a computer system, causes the computer system to perform operations for executing multi-dispatch of blocks, the operations comprising:

receiving an incoming sequence of instructions using a fetch unit;

grouping the instructions to form instruction blocks;

scheduling instructions of a first instruction block to execute in accordance with a scheduler, wherein the first instruction block comprises a first half block and a second half block;

determining whether a multi-dispatch of the first instruction block is to be performed based on dependency resolution; and

performing a multi-dispatch of the first instruction block for execution on an execution unit in response to a determination that a multi-dispatch of the first instruction block is to be performed, wherein the performing a multi-dispatch comprises dispatching each half block of the first instruction block independently, and wherein both half blocks of the first instruction block are managed as a single instruction block for allocation and retirement purposes.

7. The computer readable media of claim 6 , wherein the performing a multi-dispatch comprises dispatching the first instruction block a first time with its intermediate result being held as a transient state.

8. The computer readable media of claim 6 , wherein the performing a multi-dispatch comprises dispatching the first instruction block a first time with its intermediate result being held as a transient state that is not architecturally visible.

9. The computer readable media of claim 6 , wherein the multi-dispatch avoids allocating multiple separate blocks into a machine reorder window to render the machine reorder window effectively larger.

10. The computer readable media of claim 6 , wherein a first dispatch of the multi-dispatch is a fixed point multiply and a second dispatch of the multi-dispatch is a floating point addition rounding.

11. A computer system having a processor coupled to a memory, the memory having computer readable code which when executed by a computer system cause the computer system to implement a method for executing dual dispatch of blocks, the method comprising:

receiving an incoming sequence of instructions using a fetch unit;

grouping the instructions to form instruction blocks,

scheduling instructions of a first instruction block to execute in accordance with a scheduler, wherein the first instruction block comprises a first half block and a second half block;

determining whether a dual dispatch of the first instruction block is to be performed based on dependency resolution; and

performing a dual dispatch of the first instruction block for execution on an execution unit in response to a determination that a dual dispatch of the first instruction block is to be performed, wherein the performing a dual dispatch comprises dispatching each half block of the first instruction block independently, and wherein both half blocks of the first instruction block are managed as a single instruction block for allocation and retirement purposes.

12. The computer system of claim 11 , wherein the performing a dual dispatch comprises dispatching the first instruction block a first time with its intermediate result being held as a transient state.

13. The computer system of claim 11 , wherein the performing a dual dispatch comprises dispatching the first instruction block a first time with its intermediate result being held as a transient state that is not architecturally visible.

14. The computer system of claim 11 , wherein the dual dispatch avoids allocating multiple separate blocks into a machine reorder window to render the machine reorder window effectively larger.

15. The computer system of claim 11 , wherein a first dispatch of the dual dispatch is a fixed point multiply and a second dispatch of the dual dispatch is a floating point addition rounding.

16. The method of claim 1 , wherein a first dispatch of the dual dispatch comprises an address calculation instruction and a second dispatch that consumes data generated by the address calculation instruction.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2016
From: SOFT MACHINES, INC.
To: INTEL CORPORATION
Reel/Frame 040631/0915 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2014
From: ABDALLAH, MOHAMMAD
To: SOFT MACHINES, INC.
Reel/Frame 032445/0652 →