IP Library Granted Patent US 9,733,942
Granted Patent B2
US 9,733,942 · App. 13/360,024 · Granted Aug 15, 2017

Mapping of guest instruction block assembled according to branch prediction to translated native conversion block

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,733,942
App. No.
13/360,024
Granted
Aug 15, 2017
Kind
B2
Abstract

A hardware based translation accelerator. The hardware includes a guest fetch logic component for accessing guest instructions; a guest fetch buffer coupled to the guest fetch logic component and a branch prediction component for assembling guest instructions into a guest instruction block; and conversion tables coupled to the guest fetch buffer for translating the guest instruction block into a corresponding native conversion block. The hardware further includes a native cache coupled to the conversion tables for storing the corresponding native conversion block, and a conversion look aside buffer coupled to the native cache for storing a mapping of the guest instruction block to corresponding native conversion block, wherein upon a subsequent request for a guest instruction, the conversion look aside buffer is indexed to determine whether a hit occurred, wherein the mapping indicates the guest instruction has a corresponding converted native instruction in the native cache.

Claims (53)

1. A hardware based translation accelerator, comprising:

a guest fetch logic component for accessing a plurality of guest instructions;

a guest fetch buffer coupled to the guest fetch logic component and a branch prediction component for assembling the plurality of guest instructions into a guest instruction block based on branch predictions;

a plurality of conversion tables coupled to the guest fetch buffer for translating the guest instruction block into a corresponding native conversion block;

a native cache coupled to the conversion tables for storing the corresponding native conversion block;

a conversion look aside buffer coupled to the native cache for storing a mapping of the guest instruction block to corresponding native conversion block;

wherein upon a subsequent request for a guest instruction, the conversion look aside buffer is indexed to determine whether a hit occurred, wherein the mapping indicates the guest instruction has a corresponding converted native instruction in the native cache; and

in response to the hit the conversion look aside buffer forwards the translated native instruction for execution.

2. The hardware based translation accelerator of claim 1 , wherein a hardware fetch logic component prefetches the plurality of guest instructions independent of the processor.

3. The hardware based translation accelerator of claim 1 , wherein the conversion look aside buffer comprises a cache that uses a replacement policy to maintain most frequently encountered native conversion blocks stored therein.

4. The hardware based translation accelerator of claim 1 , wherein a conversion buffer is maintained within a system memory and cache coherency is maintained between the conversion look aside buffer and the conversion buffer.

5. The hardware based translation accelerator of claim 4 , wherein the conversion buffer is larger than the conversion look aside buffer, and a write back policy is used to maintain coherency between the conversion buffer and the conversion look aside buffer.

6. The hardware based translation accelerator of claim 1 , wherein the conversion look aside buffer is implemented as a high-speed low latency cache memory coupled to a pipeline of the processor.

7. A system for accelerating the translation of guest instructions to native instructions for a processor, comprising:

a guest fetch logic component for accessing a plurality of guest instructions;

a guest fetch buffer coupled to the guest fetch logic component and a branch prediction component for assembling the plurality of guest instructions into a guest instruction block based on branch predictions;

a plurality of conversion tables coupled to the guest fetch buffer for translating the guest instruction block into a corresponding native conversion block;

a native cache coupled to the conversion tables for storing the corresponding native conversion block;

a conversion look aside buffer coupled to the native cache for storing a mapping of the guest instruction block to corresponding native conversion block;

wherein upon a subsequent request for a guest instruction, the conversion look aside buffer is indexed to determine whether a hit occurred, wherein the mapping indicates the guest instruction has a corresponding converted native instruction in the native cache; and

in response to the hit the conversion look aside buffer forwards the translated native instruction for execution.

8. The system of claim 7 , wherein a hardware fetch logic component prefetches the plurality of guest instructions independent of the processor.

9. The system of claim 7 , wherein the conversion look aside buffer comprises a cache that uses a replacement policy to maintain most frequently encountered native conversion blocks stored therein.

10. The system of claim 7 , wherein a conversion buffer is maintained within a system memory and cache coherency is maintained between the conversion look aside buffer and the conversion buffer.

11. The system of claim 10 , wherein the conversion buffer is larger than the conversion look aside buffer, and a write back policy is used to maintain coherency between the conversion buffer and the conversion look aside buffer.

12. The system of claim 7 , wherein the conversion look aside buffer is implemented as a high-speed low latency cache memory coupled to a pipeline of the processor.

13. 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;

a guest fetch buffer coupled to the guest fetch logic component and a branch prediction component for assembling the plurality of guest instructions into a guest instruction block based on branch predictions;

a plurality of conversion tables coupled to the guest fetch buffer for translating the guest instruction block into a corresponding native conversion block;

a native cache coupled to the conversion tables for storing the corresponding native conversion block;

a conversion look aside buffer coupled to the native cache for storing a mapping of the guest instruction block to corresponding native conversion block;

wherein upon a subsequent request for a guest instruction, the conversion look aside buffer is indexed to determine whether a hit occurred, wherein the mapping indicates the guest instruction has a corresponding converted native instruction in the native cache; and

in response to the hit the conversion look aside buffer forwards the translated native instruction for execution.

14. The microprocessor of claim 13 , wherein a hardware fetch logic component prefetches the plurality of guest instructions independent of the processor.

15. The microprocessor of claim 13 , wherein the conversion look aside buffer comprises a cache that uses a replacement policy to maintain most frequently encountered native conversion blocks stored therein.

16. The microprocessor of claim 13 , wherein a conversion buffer is maintained within a system memory and cache coherency is maintained between the conversion look aside buffer and the conversion buffer.

17. The microprocessor of claim 16 , wherein the conversion buffer is larger than the conversion look aside buffer, and a write back policy is used to maintain coherency between the conversion buffer and the conversion look aside buffer.

18. The microprocessor of claim 13 , wherein the conversion look aside buffer is implemented as a high-speed low latency cache memory coupled to a pipeline of the processor.

19. The microprocessor of claim 13 , wherein the hardware accelerator module functions comprises a parallel guest instruction fetch pipeline that functions in parallel to a native microprocessor fetch pipeline.

20. A microprocessor that implements a method of translating instructions, said microprocessor comprises:

a microprocessor pipeline;

an accelerator module comprising high speed memory coupled to the microprocessor pipeline, wherein the accelerator module further comprises:

a guest fetch logic for accessing a plurality of guest instructions;

a guest fetch memory coupled to the guest fetch logic and a branch prediction component for assembling the plurality of guest instructions into a guest instruction block based on branch predictions;

a plurality of conversion tables for translating the guest instruction block into a corresponding native conversion block;

a native conversion buffer for storing the corresponding native conversion block;

wherein upon a subsequent request for a guest instruction, a conversion look aside buffer storing a mapping of the guest instruction block to corresponding native conversion block is indexed to determine whether a hit occurred, wherein the mapping indicates the guest instruction has a corresponding converted native instruction in the native cache; and

in response to the hit the conversion look aside buffer forwards the translated native instruction for execution.

21. The microprocessor of claim 20 , wherein the high speed memory comprises an L0 cache of the microprocessor.

22. The microprocessor of claim 20 , wherein the accelerator module further comprises a load store instruction fetch path of the microprocessor.

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 Jan 27, 2012
From: ABDALLAH, MOHAMMAD
To: SOFT MACHINES, INC.
Reel/Frame 027609/0339 →