IP Library Granted Patent US 9,268,703
Granted Patent B2
US 9,268,703 · App. 12/424,444 · Granted Feb 23, 2016

Techniques for cache injection in a processor system from a remote node

Inventors: Lakshminarayana Baba Arimilli (Austin, TX); Ravi K. Arimilli (Austin, TX); Jody B. Joyner (Austin, TX); William J. Starke (Round Rock, TX)
Assignee: International Business Machines Corporation
G06F12/0888G06F12/0831Y02B60/1225
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,268,703
App. No.
12/424,444
Granted
Feb 23, 2016
Kind
B2
Abstract

A technique for performing cache injection in a processor system includes monitoring, by a cache, addresses on a bus. Input/output data associated with an address of a data block stored in the cache is then requested from a remote node, via a network controller. Ownership of the input/output data is acquired by the cache when an address on the bus that is associated with the input/output data corresponds to the address of the data block stored in the cache.

Claims (40)

1. A method of performing cache injection in a processor system, comprising:

detecting, by a cache, a specific instruction sequence that includes multiple instructions, wherein one of the multiple instructions is a load instruction to a first address and another one of the multiple instructions is a compare instruction;

monitoring, by the cache, addresses on a bus in response to detecting the specific instruction sequence multiple times;

requesting, from a remote node via a network controller, input/output data associated with the first address of a data block stored in the cache; and

acquiring, by the cache, ownership of the input/output data when an address on the bus that is associated with the input/output data corresponds to the first address of the data block stored in the cache.

2. The method of claim 1 , wherein the acquiring further comprises:

storing the input/output data associated with the address on the bus in the cache at the first address; and

acknowledging, by a cache controller associated with the cache that stores the input/output data, receipt of the input/output data.

3. The method of claim 2 , further comprising:

cancelling, by a memory controller, a direct memory access write to main memory that is associated with the input/output data based on the acknowledging.

4. The method of claim 1 , further comprising:

placing an active thread that is a consumer of the input/output data to sleep until the input/output data is received by the network controller.

5. The method of claim 1 , further comprising:

placing an active thread that is a consumer of the input/output data in a low-priority state until the input/output data is received by the network controller.

6. The method of claim 1 , wherein the input/output data is associated with a direct memory access write to main memory.

7. A processor system, comprising:

a cache, wherein the cache is configured to:

detect a specific instruction sequence that includes multiple instructions, wherein one of the multiple instructions is a load instruction to a first address and another one of the multiple instructions is a compare instruction;

monitor addresses on a bus in response to detecting the specific instruction sequence-multiple times; and

acquire ownership of input/output data when an address on the bus that is associated with the input/output data corresponds to the first address of a data block stored in the cache; and

a network controller coupled to the cache and configured to request, from a remote node, the input/output data associated with the first address of the data block stored in the cache responsive to a request from an associated processor thread.

8. The processor system of claim 7 , wherein the cache is further configured to:

store the input/output data associated with the address on the bus in the cache at the first address; and

acknowledge receipt of the input/output data from the network controller.

9. The processor system of claim 8 , further comprising:

a memory controller configured to cancel a direct memory access write to main memory that is associated with the input/output data based on the cache acknowledging receipt of the input/output data.

10. The processor system of claim 7 , further comprising:

an operating system in communication with the processor thread, wherein the operating system is configured to place the processor thread which is a consumer of the input/output data to sleep until the input/output data is received by the network controller.

11. The processor system of claim 7 , further comprising:

an operating system in communication with the processor thread, wherein the operating system is configured to place the processor thread which is a consumer of the input/output data in a low-priority state until the input/output data is received by the network controller.

12. The processor system of claim 7 , wherein the input/output data is associated with a direct memory access write to main memory.

13. A method of performing cache injection in a processor system, comprising:

detecting, by a cache, a specific instruction sequence that includes multiple instructions, wherein one of the multiple instructions is a load instruction to a first address and another one of the multiple instructions is a compare instruction;

monitoring, by the cache, addresses on a bus in response to detecting the specific instruction sequence multiple times;

requesting, from a remote node via a network controller, input/output data associated with the first address of a data block stored in the cache;

placing an active thread that is a consumer of the input/output data to sleep or in a low-priority state until the input/output data is received by the network controller; and

acquiring, by the cache, ownership of the input/output data when an address on the bus that is associated with the input/output data corresponds to the first address of the data block stored in the cache.

14. The method of claim 13 , wherein the acquiring further comprises:

storing the input/output data associated with the address on the bus in the cache at the first address; and

acknowledging, by a cache controller associated with the cache that stores the input/output data, receipt of the input/output data.

Assignments (2)
CONFIRMATORY LICENSE Recorded Jan 7, 2010
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: DARPA
Reel/Frame 023746/0059 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2009
From: ARIMILLI, LAKSHMINARAYANA; ARIMILLI, RAVI K.; JOYNER, JODY B.; STARKE, WILLIAM J.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 022646/0180 →
Continuity (1)
Related Publication 20100268896A1 · Oct 21, 2010