IP Library Granted Patent US 8,688,960
Granted Patent B2
US 8,688,960 · App. 12/905,176 · Granted Apr 1, 2014

Managing migration of a prefetch stream from one processor core to another processor core

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 8,688,960
App. No.
12/905,176
Granted
Apr 1, 2014
Kind
B2
Abstract

A method, system and computer-usable medium are disclosed for managing prefetch streams in a virtual machine environment. Compiled application code in a first core, which comprises a Special Purpose Register (SPR) and a plurality of first prefetch engines, initiates a prefetch stream request. If the prefetch stream request cannot be initiated due to unavailability of a first prefetch engine, then an indicator bit indicating a Prefetch Stream Dispatch Fault is set in the SPR, causing a Hypervisor to interrupt the execution of the prefetch stream request. The Hypervisor then calls its associated operating system (OS), which determines prefetch engine availability for a second core comprising a plurality of second prefetch engines. If a second prefetch engine is available, then the OS migrates the prefetch stream request from the first core to the second core, where it is initiated on an available second prefetch engine.

Claims (29)

1. A non-transitory computer-usable medium embodying computer program code, the computer program code comprising computer executable instructions configured for:

polling registers in a plurality of processor cores to determine the availability of a corresponding plurality of prefetch engines;

initiating a prefetch stream request on a first processor core comprising a first prefetch engine and a special purpose register (SPR);

determining the first prefetch engine is unavailable to process the prefetch stream request;

setting an indicator bit in the SPR to indicate a prefetch system dispatch fault;

determining if a second prefetch engine in a second processor core is available to process the prefetch stream request; and

migrating the prefetch stream request from the first processor core to the second processor core if the second prefetch engine is available.

2. The non-transitory computer usable medium of claim 1 , wherein a hypervisor generates a call to an operating system when the indicator bit is set in the SPR.

3. The non-transitory computer usable medium of claim 2 , wherein the operating system receives and processes the call to determine the availability of the second prefetch engine.

4. The non-transitory computer usable medium of claim 1 , wherein a third core comprises a third prefetch engine that is available.

5. The non-transitory computer usable medium of claim 4 , wherein the second core and the third core have an equal number of available prefetch engines and the third core is less utilized than the second core.

6. The non-transitory computer usable medium of claim 5 , wherein the prefetch stream is migrated from the first core to the third core.

7. The non-transitory computer usable medium of claim 1 , wherein the second core and the third core have an unequal number of available prefetch engines and the prefetch stream is migrated to the least utilized core.

8. The non-transitory computer usable medium of claim 1 , wherein the second core and the third core have an unequal number of available prefetch engines and the prefetch stream is migrated to the core having the most available prefetch engines.

9. A system comprising:

a processor;

a data bus coupled to the processor; and

a computer-usable medium embodying computer program code, the computer-usable medium being coupled to the data bus, the computer program code for managing prefetch streams in a virtual machine environment and comprising instructions executable by the processor and configured for:

polling registers in a plurality of processor cores to determine the availability of a corresponding plurality of prefetch engines;

initiating a prefetch stream request on a first processor core comprising a first prefetch engine and a special purpose register (SPR);

determining the first prefetch engine is unavailable to process the prefetch stream request;

setting an indicator bit in the SPR to indicate a prefetch system dispatch fault;

determining if a second prefetch engine in a second processor core is available to process the prefetch stream request; and

migrating the prefetch stream request from the first processor core to the second processor core if the second prefetch engine is available.

10. The system of claim 9 , wherein a hypervisor generates a call to an operating system when the indicator bit is set in the SPR.

11. The system of claim 10 , wherein the operating system receives and processes the call to determine the availability of the second prefetch engine.

12. The system of claim 9 , wherein a third core comprises a third prefetch engine that is available.

13. The system of claim 12 , wherein the second core and the third core have an equal number of available prefetch engines and the third core is less utilized than the second core.

14. The system of claim 13 , wherein the prefetch stream is migrated from the first core to the third core.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2024
From: BEIJING PIANRUOJINGHONG TECHNOLOGY CO., LTD.
To: BEIJING ZITIAO NETWORK TECHNOLOGY CO., LTD.
Reel/Frame 066565/0952 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 4, 2023
From: AWEMANE LTD.
To: BEIJING PIANRUOJINGHONG TECHNOLOGY CO., LTD.
Reel/Frame 064501/0498 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: AWEMANE LTD.
Reel/Frame 057991/0960 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2010
From: ACCAPADI, MATTHEW; BELL, ROBERT H., JR.; HUA, HONG L.; RAGHAVAN, RAM; SRINIVAS, MYSORE S.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 025187/0530 →