IP Library Granted Patent US 8,352,710
Granted Patent B2
US 8,352,710 · App. 12/356,030 · Granted Jan 8, 2013

Off-loading of processing from a processor blade to storage blades

Assignee: International Business Machines Corporation
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,352,710
App. No.
12/356,030
Granted
Jan 8, 2013
Kind
B2
Abstract

A processor blade determines whether a selected processing task is to be off-loaded to a storage blade for processing. The selected processing task is off-loaded to the storage blade via a planar bus communication path, in response to determining that the selected processing task is to be off-loaded to the storage blade. The off-loaded selected processing task is processed in the storage blade. The storage blade communicates the results of the processing of the off-loaded selected processing task to the processor blade.

Claims (53)

1. A method, comprising:

determining, in a processor blade, whether a selected processing task is to be off-loaded to a storage blade for processing;

off-loading the selected processing task to the storage blade via a planar bus communication path, in response to determining that the selected processing task is to be off-loaded to the storage blade;

processing the off-loaded selected processing task in the storage blade; and

communicating, by the storage blade, results of the processing of the off-loaded selected processing task to the processor blade, wherein a storage blade processor included in the storage blade has unused processor cycles that are utilized by off-loading the selected processing task from the processor blade to the storage blade, wherein the storage blade stores a plurality of indicators to control communications between the processor blade and the storage blade to perform the off-loading, the processing, and the communicating, wherein a first indicator of the plurality of indicators indicates that the storage blade is idle or below a programmable threshold in processing activity, and wherein a second indicator of the plurality of indicators indicates that there is enough available cache in a memory of the storage blade to run a job.

2. The method of claim 1 , wherein a third indicator of the plurality of indicators indicates that the job is currently running in the storage blade.

3. The method of claim 2 , wherein a fourth indicator of the plurality of indicators indicates the storage blade has paused execution of the job.

4. The method of claim 3 , wherein a fifth indicator of the plurality of indicators indicates that the job has completed successfully.

5. The method of claim 4 , wherein a sixth indicator of the plurality of indicators indicates that that job running on the storage blade encountered an input/output(I/O) instruction that is to be processed by the processor blade.

6. The method of claim 1 , wherein the storage blade includes the memory, the method further comprising partitioning the memory of the storage blade into a communication cache that stores the plurality of indicators,

wherein if the storage blade processor determines a need for input/output (I/O) data that is not available from within the storage blade while processing the off-loaded selected processing task, a request for the I/O data is transmitted to the processor blade, wherein the processor blade then satisfies the request and transmits the I/O data via the planar bus communication path to the storage blade processor; and

wherein the plurality of indicators are flags, wherein the first indicator is a CPU_READY flag, and the second indicator is a CACHE_READY flag, and wherein the flags set by the storage blade include at least:

a JOB_PROCESSING flag that indicates that the job is currently running in the storage blade;

a JOB_PAUSE flag that indicates that the storage blade has paused execution of the job;

a JOB_COMPLETE flag that indicates that the job has completed successfully; and

an I/O_REQUEST flag that indicates that the job, when running on the storage blade, encountered an I/O instruction that is to be processed by the processor blade.

7. The method of claim 1 , wherein a third indicator of the plurality of indicators indicates that a job running on the storage blade encountered input/output (I/O) instruction that is to be processed by the processor blade.

8. A blade system, comprising:

a processor blade; and

a plurality of storage blades coupled to the processor blade via a planar bus communication path, wherein the system performs operations, the operations comprising:

determining, in the processor blade, whether a selected processing task is to be off-loaded to a storage blade of the plurality of storage blades for processing;

off-loading the selected processing task to the storage blade via the planar bus communication path, in response to determining that the selected processing task is to be off-loaded to the storage blade; and

processing the off-loaded selected processing task in the storage blade; and

communicating, by the storage blade, results of the processing of the off-loaded selected processing task to the processor blade, wherein a storage blade processor included in the storage blade has unused processor cycles that are utilized by off-loading the selected processing task from the processor blade to the storage blade, wherein the storage blade stores a plurality of indicators to control communications between the processor blade and the storage blade to perform the off-loading, the processing, and the communicating, wherein a first indicator of the plurality of indicators indicates that the storage blade is idle or below a programmable threshold in processing activity, and wherein a second indicator of the plurality of indicators indicates that there is enough available cache in a memory of the storage blade to run a job.

9. The blade system of claim 8 , wherein a third indicator of the plurality of indicators indicates that the job is currently running in the storage blade.

10. The blade system of claim 9 , wherein a fourth indicator of the plurality of indicators indicates the storage blade has paused execution of the job.

11. The blade system of claim 10 , wherein a fifth indicator of the plurality of indicators indicates that the job has completed successfully.

12. The blade system of claim 11 , wherein a sixth indicator of the plurality of indicators indicates that the job running on the storage blade encountered an input/output (I/O) instruction that is to be processed by the processor blade.

13. The blade system of claim 8 , wherein the storage blade includes the memory, the operations further comprising partitioning the memory of the storage blade into a communication cache that stores the plurality of indicators,

wherein if the storage blade processor determines a need for input/output(I/O) data that is not available from within the storage blade while processing the off-loaded selected processing task, a request for the I/O data is transmitted to the processor blade, wherein the processor blade then satisfies the request and transmits the I/O data via the planar bus communication path to the storage blade processor; and

wherein the plurality of indicators are flags, wherein the first indicator is a CPU_READY flag, and the second indicator is a CACHE_READY flag, and wherein the flags set by the storage blade include at least:

a JOB_PROCESSING flag that indicates that the job is currently running in the storage blade;

a JOB_PAUSE flag that indicates that the storage blade has paused execution of the job;

a JOB_COMPLETE flag that indicates that the job has completed successfully; and

an I/O_REQUEST flag that indicates that the job, when running on the storage blade, encountered an I/O instruction that is to be processed by the processor blade.

14. The blade system of claim 8 , wherein a third indicator of the plurality of indicators indicates that a job running on the storage blade encountered an input/output (I/O) instruction that is to be processed by the processor blade.

15. A memory device, wherein computer readable program code stored in the memory device causes operations when executed by a blade system having a processor blade and a storage blade, the operations comprising:

determining, in the processor blade, whether a selected processing task is to be off-loaded to the storage blade for processing;

off-loading the selected processing task to the storage blade via a planar bus communication path, in response to determining that the selected processing task is to be off-loaded to the storage blade;

processing the off-loaded selected processing task in the storage blade; and

communicating, by the storage blade, results of the processing of the off-loaded selected processing task to the processor blade, wherein a storage blade processor included in the storage blade has unused processor cycles that are utilized by off-loading the selected processing task from the processor blade to the storage blade, wherein the storage blade stores a plurality of indicators to control communications between the processor blade and the storage blade to perform the off-loading, the processing, and the communicating, wherein a first indicator of the plurality of indicators indicates that the storage blade is idle or below a programmable threshold in processing activity, and wherein a second indicator of the plurality of indicators indicates that there is enough available cache in a memory of the storage blade to run a job.

16. The memory device of claim 15 , wherein a third indicator of the plurality of indicators indicates that the job is currently running in the storage blade.

17. The memory device of claim 16 , wherein a fourth indicator of the plurality of indicators indicates the storage blade has paused execution of the job.

18. The memory device of claim 17 , wherein a fifth indicator of the plurality of indicators indicates that the job has completed successfully.

19. The memory device of claim 18 , wherein a sixth indicator of the plurality of indicators indicates that that job running on the storage blade encountered an input/output (I/O) instruction that is to be processed by the processor blade.

20. The memory device of claim 15 , wherein the storage blade includes the memory, the operations further comprising partitioning the memory of the storage blade into a communication cache that stores the plurality of indicators,

wherein if the storage blade processor determines a need for input/output (I/O) data that is not available from within the storage blade while processing the off-loaded selected processing task, a request for the I/O data is transmitted to the processor blade, wherein the processor blade then satisfies the request and transmits the I/O data via the planar bus communication path to the storage blade processor; and

wherein the plurality of indicators are flags, wherein the first indicator is a CPU_READY flag, and the second indicator is a CACHE_READY flag, and wherein the flags set by the storage blade include at least:

a JOB_PROCESSING flag that indicates that the job is currently running in the storage blade;

a JOB_PAUSE flag that indicates that the storage blade has paused execution of the job;

a JOB_COMPLETE flag that indicates that the job has completed successfully; and

an I/O REQUEST flag that indicates that the job, when running on the storage blade, encountered an I/O instruction that is to be processed by the processor blade.

21. The memory device of claim 15 , wherein a third indicator of the plurality of indicators indicates that a job running on the storage blade encountered an input/output (I/O) instruction that is to be processed by the processor blade.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2009
From: BELL, ROBERT H., JR.; ESCALERA, JOSE RAUL; HERESCU, OCTAVIAN FLORIAN; MILLER, VERNON WALTER; REYES, SERGIO; ROLL, MICHAEL DECLAN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 022361/0216 →
Continuity (1)
Related Publication 20100186018A1 · Jul 22, 2010