Method and system for instruction block to execution unit grouping

US11656875B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11656875-B2
Application numberUS-202016928970-A
CountryUS
Kind codeB2
Filing dateJul 14, 2020
Priority dateMar 15, 2013
Publication dateMay 23, 2023
Grant dateMay 23, 2023

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method for emulating a guest centralized flag architecture by using a native distributed flag architecture. 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 using a distributed flag architecture to emulate a centralized flag architecture for the emulation of guest instruction execution.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of a processor, comprising: grouping an incoming instruction sequence to form instruction blocks, wherein each of the instruction blocks comprises two half blocks; dispatching the two half blocks of an instruction block independently or together as one instruction block to an execution unit based on dependency resolution between the two half blocks; and executing the instructions by at least one execution unit. 2. The method of claim 1 , wherein the incoming instruction sequence is received using a global front end and wherein each half block is configured to be dispatched independently. 3. The method of claim 1 , wherein the at least one execution unit has two slots to execute single or paired operations. 4. The method of claim 1 , wherein the at least one execution unit supports four types of execution, where the four types of execution are parallel halves, atomic parallel halves, atomic serial halves, and sequential halves using the two half blocks in each slot of the at least one execution unit. 5. The method of claim 4 , wherein the parallel halves executes each of the two half blocks independently once sources of each of the two half blocks are ready, and wherein atomic parallel halves executes each of the two half blocks in parallel and resources are shared between each of the two half blocks. 6. The method of claim 4 , wherein atomic serial halves execution forwards data from one of the two half blocks to the other of the two half blocks, and wherein sequential halves the one of the two half blocks depends on the other of the two half blocks and is dispatched in a later cycle than the one of the two half blocks and data is forwarded via external storage to resolve dependency. 7. A processor comprising: a front end to group an incoming instruction sequence to form instruction blocks, wherein each of the instruction blocks comprises two half blocks; a dispatcher to dispatch the two half blocks of an instruction block independently or together as one instruction block to an execution unit based on dependency resolution between the two half blocks; and at least one execution unit to execute the instructions. 8. The processor of claim 7 , wherein the front end is a global front end and wherein each half block is configured to be dispatched independently. 9. The processor of claim 7 , wherein the at least one execution unit has two slots to execute single or paired operations. 10. The processor of claim 7 , where the at least one execution unit supports four types of execution, where the four types of execution are parallel halves, atomic parallel halves, atomic serial halves, and sequential halves using the two half blocks in each slot of the at least one execution unit. 11. The processor of claim 10 , wherein the parallel halves executes each of the two half blocks independently once sources of each of the two half blocks are ready, and wherein atomic parallel halves executes each of the two half blocks in parallel and resources are shared between each of the two half blocks. 12. The processor of claim 10 , wherein atomic serial halves execution forwards data from one of the two half blocks to the other of the two half blocks, and wherein sequential halves the one of the two half blocks depends on the other of the two half blocks and is dispatched in a later cycle than the one of the two half blocks and data is forwarded via external storage to resolve dependency. 13. A system comprising at least one cache; and a processor coupled to the at least one cache, the processor including, a front end to group an incoming instruction sequence to form instruction blocks, wherein each of the instruction blocks comprises two half blocks, a dispatcher to dispatch the two half blocks of an instruction block independently or together as one instruction block to an execution unit based on dependency resolution between the two half blocks, and at least one execution unit to execute the instructions. 14. The system of claim 13 , wherein the front end is a global front end and wherein each half block is configured to be dispatched independently. 15. The system of claim 13 , wherein the at least one execution unit has two slots to execute single or paired operations. 16. The system of claim 13 , where the at least one execution unit supports four types of execution, where the four types of execution are parallel halves, atomic parallel halves, atomic serial halves, and sequential halves using the two half blocks in each slot of the at least one execution unit. 17. The system of claim 16 , wherein the parallel halves executes each of the two half blocks independently once sources of each of the two half blocks are ready, and wherein atomic parallel halves executes each of the two half blocks in parallel and resources are shared between each of the two half blocks. 18. The system of claim 16 , wherein atomic serial halves execution forwards data from one of the two half blocks to the other of the two half blocks, and wherein sequential halves the one of the two half blocks depends on the other of the two half blocks and is dispatched in a later cycle than the one of the two half blocks and data is forwarded via external storage to resolve dependency.

Assignees

Inventors

Classifications

  • Result writeback, i.e. updating the architectural state or memory · CPC title

  • Instruction completion, e.g. retiring, committing or graduating · CPC title

  • G06F9/3851Primary

    from multiple instruction streams, e.g. multistreaming · CPC title

  • Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution · CPC title

  • Condition code generation, e.g. Carry, Zero flag · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11656875B2 cover?
A method for emulating a guest centralized flag architecture by using a native distributed flag architecture. 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 w…
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06F9/3851. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 23 2023 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).