Guest instruction block with near branching and far branching sequence construction to native instruction block

US9542187B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9542187-B2
Application numberUS-201213359817-A
CountryUS
Kind codeB2
Filing dateJan 27, 2012
Priority dateJan 27, 2011
Publication dateJan 10, 2017
Grant dateJan 10, 2017

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 translating instructions for a processor. The method includes accessing a plurality of guest instructions that comprise multiple guest branch instructions comprising at least one guest far branch, and building an instruction sequence from the plurality of guest instructions by using branch prediction on the at least one guest far branch. The method further includes assembling a guest instruction block from the instruction sequence. The guest instruction block is translated to a corresponding native conversion block, wherein an at least one native far branch that corresponds to the at least one guest far branch and wherein the at least one native far branch includes an opposite guest address for an opposing branch path of the at least one guest far branch. Upon encountering a missprediction, a correct instruction sequence is obtained by accessing the opposite guest address.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for translating instructions for a processor, comprising: accessing a plurality of guest instructions that comprise multiple guest branch instructions comprising at least one guest far branch; building an instruction sequence from the plurality of guest instructions by using branch prediction on the at least one guest far branch; assembling a guest instruction block from the instruction sequence; translating the guest instruction block to a corresponding native conversion block, wherein an at least one native far branch corresponds to the at least one guest far branch and wherein the at least one native far branch includes an opposite guest address for an opposing branch path of the at least one guest far branch; and upon encountering a missprediction, obtaining a correct instruction sequence by accessing the opposite guest address. 2. The method of claim 1 , wherein the opposite guest address is ignored for native far branches that are correctly predicted. 3. The method of claim 1 , wherein the guest near branches are not predicted. 4. The method of claim 1 , wherein the guest instruction block includes sufficient instructions to fill a fixed size. 5. The method of claim 1 , wherein if a number of guest instructions have been processed to assemble the guest instruction block and a guest far branch has not been encountered, then a concluding guest far branch is inserted to conclude the guest instruction block. 6. The method of claim 5 , wherein the concluding guest far branch comprises a jump to a subsequent guest instruction block. 7. The method of claim 6 , wherein a concluding native far branch corresponding to the concluding guest far branch comprises does not include an opposite guest address. 8. A processor implementing a method for translating instructions, comprising: a guest fetch logic component for accessing a plurality of guest instructions that comprise multiple guest branch instructions comprising at least one guest far branch, wherein the guest fetch logic component builds an instruction sequence from the plurality of guest instructions by using branch prediction on the at least one guest far branch; a guest fetch buffer for assembling a guest instruction block from the instruction sequence; a plurality of conversion tables for translating the guest instruction block to a corresponding native conversion block, wherein an at least one native far branch corresponds to the at least one guest far branch and wherein the at least one native far branch includes an opposite guest address for an opposing branch path of the at least one guest far branch; and wherein upon encountering a missprediction, a correct instruction sequence is obtained by accessing the opposite guest address. 9. The system of claim 8 , wherein the opposite guest address is ignored for native far branches that are correctly predicted. 10. The system of claim 8 , wherein the guest near branches are not predicted. 11. The system of claim 8 , wherein the guest instruction block includes sufficient instructions to fill a fixed size. 12. The system of claim 8 , wherein if a number of guest instructions have been processed to assemble the guest instruction block and a guest far branch has not been encountered, then a concluding guest far branch is inserted to conclude the guest instruction block. 13. The system of claim 12 , wherein the concluding guest far branch comprises a jump to a subsequent guest instruction block. 14. The system of claim 13 , wherein a concluding native far branch corresponding to the concluding guest far branch comprises does not include an opposite guest address. 15. A microprocessor that implements a method of translating instructions, said microprocessor comprises: a microprocessor pipeline; a hardware accelerator module coupled to the microprocessor pipeline, wherein the hardware accelerator module further comprises: a guest fetch logic component for accessing a plurality of guest instructions that comprise multiple guest branch instructions comprising at least one guest near branch and at least one guest far branch, wherein the guest fetch logic component builds an instruction sequence from the plurality of guest instructions by using branch prediction on the at least one guest far branch; a guest fetch buffer for assembling a guest instruction block from the instruction sequence; a plurality of conversion tables for translating the guest instruction block to a corresponding native conversion block, wherein an at least one native far branch corresponds to the at least one guest far branch and wherein the at least one native far branch includes an opposite guest address for an opposing branch path of the at least one guest far branch; and wherein upon encountering a missprediction, a correct instruction sequence is obtained by accessing the opposite guest address. 16. The microprocessor of claim 15 , wherein the opposite guest address is ignored for native far branches that are correctly predicted. 17. The microprocessor of claim 15 , wherein the guest near branches are not predicted. 18. The microprocessor of claim 15 , wherein the guest instruction block includes sufficient instructions to fill a fixed size. 19. The microprocessor of claim 15 , wherein if a number of guest instructions have been processed to assemble the guest instruction block and a guest far branch has not been encountered, then a concluding guest far branch is inserted to conclude the guest instruction block. 20. The microprocessor of claim 19 , wherein the concluding guest far branch comprises a jump to a subsequent guest instruction block, and wherein a concluding native far branch corresponding to the concluding guest far branch comprises does not include an opposite guest address. 21. A microprocessor that implements a method of translating instructions, said microprocessor comprises: a microprocessor pipeline; a software based load store accelerator coupled to the microprocessor pipeline, wherein the load store accelerator module further comprises: a guest fetch logic for accessing a plurality of guest instructions that comprise multiple guest branch instructions comprising at least one guest near branch and at least one guest far branch, wherein the guest fetch logic component builds an instruction sequence from the plurality of guest instructions by using branch prediction on the at least one guest far branch; a guest fetch memory for assembling a guest instruction block from the instruction sequence; a plurality of conversion tables for translating the guest instruction block to a corresponding native conversion block, wherein an at least one native far branch corresponds to the at least one guest far branch and wherein the at least one native far branch includes an opposite guest address for an opposing branch path of the at least one guest far branch; and wherein upon encountering a missprediction, a correct instruction sequence is obtained by accessing the opposite guest address.

Assignees

Inventors

Classifications

  • using dynamic branch prediction, e.g. using branch history tables · CPC title

  • Involving translation to a different instruction set architecture, e.g. just-in-time translation in a JVM · CPC title

  • G06F9/322Primary

    for non-sequential address · CPC title

  • for non-native instruction set, e.g. Javabyte, legacy code · CPC title

  • Conditional branch instructions · 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 US9542187B2 cover?
A method for translating instructions for a processor. The method includes accessing a plurality of guest instructions that comprise multiple guest branch instructions comprising at least one guest far branch, and building an instruction sequence from the plurality of guest instructions by using branch prediction on the at least one guest far branch. The method further includes assembling a gue…
Who is the assignee on this patent?
Abdallah Mohammad, Soft Machines Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/322. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 10 2017 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).