Browse Prior Art Database

Method and Apparatus for Hardware Assisted Function Shipping

IP.com Disclosure Number: IPCOM000199436D
Publication Date: 2010-Sep-03
Document File: 6 page(s) / 34K

Publishing Venue

The IP.com Prior Art Database

Abstract

Disclosed is a method and apparatus of moving a thread's context between cores. The method copies a thread's context (i.e., the instruction pointer, register contents, address space, etc.) into a queue in system memory and it is then read out by another core for processing.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 26% of the total text.

Page 1 of 6

Method and Apparatus for Hardware Assisted Function Shipping

In modern systems, the operating system (OS) assigns a single thread from a multithreaded application to a processing core. Each thread typically makes OS calls for services such as file I/O and communication. Processors are also starting to employ specialized hardware, such as specialized cores, accelerators, and General-Purpose computation on Graphics Processing Units (GPGPUs), to improve performance and efficiency.

An example of such a processor is the Cell Broadband Engine*. In the cell processor, the OS dispatches threads to the Synergistic Processor Engine (SPE), a specialized core. The SPE however is not capable of executing the OS, so all system calls invoke an OS thread running on the main general purpose power processor. Once complete, control is returned to the thread on the SPE. This technique is called "Function Shipping." In general, Function Shipping refers to the process of moving control from one processor to another for a given function or task that cannot be performed by the current core or accelerator.

The Computation Spreading technique in Chakraborty et al (1) describes a general form of Function Shipping where dissimilar fragments of a thread are distributed to different cores while like fragments from different threads of the application are executed on the same core. The technique illustrates the advantages of Computational Spreading by separating a thread into user computation and OS computation and executing the two parts on different processing cores. While the results vary, the technique shows improvements in branch prediction and cache performance (both instruction and data).

The Cell processor and the Computational Spreading technique can be greatly improved by providing a hardware method for the migration of a thread's state between cores. When combined with a thread scheduling mechanism the performance of the system can be further improved.

The invention disclosed here provides a method and apparatus of moving a thread's context between cores. The method copies a thread's context (i.e., the instruction pointer, register contents, address space, etc.) into a queue in system memory and it is then read out by another core for processing. The preferred embodiment is for hardware to manage the read and write of the queues eliminating any software latencies. In certain cases, the state may transfer from one core to the other without ever going through system memory.

The invention and its claims are comprised of:

• A computer implementing a method for handling of a service request in a heterogeneous processor comprising

• A first thread consisting solely of user-mode code

1

Page 2 of 6

• A second thread consisting solely of system-level code

• A hardware service request queue where the first thread places the identity of the desired service and the state necessary to perform the service

• A means for the second thread to access the ser...