Patent ID: 8196147
Filing Date: 2012-06-05
Classification: G06F,H04L

Abstract:
1. A method for optimizing data processing in a producer-consumer environment on a multi-core system having two or more processing cores, the method comprising: executing a producer process on a processing core in the multi-core system, the producer process performs processing of data items and producing data elements representing an address of data items stored in shared memory so that a consumer process can access the data items and process the data items according to the producer-consumer relationship; pre-loading execution contexts of two or more instances of a consumer process, each instance is executed on a separate processing core in the multi-core system; executing a first instance of a consumer process on a processing core to consume a first subset of data elements produced by the producer process; while executing the first instance of the consumer process on a processing core, simultaneously executing a second instance of the consumer process to pre-fetch, to an associated cache memory, a second subset of data elements produced by the second instance of the consumer process; and upon completion of consumption of the first subset of data elements by the first instance of the consumer process, executing the second instance of the consumer process on the second core to process the pre-fetched second subset of data elements, without performing additional memory accesses to pre-fetch from the main memory data items pointed to by the second subset of data elements; wherein the optimization of data processing occurs in a virtual machine environment executing a virtual machine operating system and two or more guest operating systems.