Method and system for managing cache injection in a multiprocessor system
First Claim
1. A method for reducing processing time associated with a direct memory access (DMA) transfer within processing system including multiple processors, said method comprising:
- initiating said DMA transfer to a DMA transfer target memory image within a DMA transfer target memory over a bus;
determining in a cache controller managing a cache memory associated with a particular one of said multiple processors that said DMA transfer is occurring on said bus;
responsive to determining that said DMA transfer is occurring, copying data being transferred in said DMA transfer to a cache line in said cache memory during said DMA transfer; and
targeting said particular processor for executing a routine that accesses memory addresses of said DMA transfer target memory image, whereby said particular processor processes data transferred by said DMA transfer.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for managing cache injection in a multiprocessor system reduces processing time associated with direct memory access transfers in a symmetrical multiprocessor (SMP) or a non-uniform memory access (NUMA) multiprocessor environment. The method and apparatus either detect the target processor for DMA completion or direct processing of DMA completion to a particular processor, thereby enabling cache injection to a cache that is coupled with processor that executes the DMA completion routine processing the data injected into the cache. The target processor may be identified by determining the processor handling the interrupt that occurs on completion of the DMA transfer. Alternatively or in conjunction with target processor identification, an interrupt handler may queue a deferred procedure call to the target processor to process the transferred data. In NUMA multiprocessor systems, the completing processor/target memory is chosen for accessibility of the target memory to the processor and associated cache.
61 Citations
29 Claims
-
1. A method for reducing processing time associated with a direct memory access (DMA) transfer within processing system including multiple processors, said method comprising:
-
initiating said DMA transfer to a DMA transfer target memory image within a DMA transfer target memory over a bus;
determining in a cache controller managing a cache memory associated with a particular one of said multiple processors that said DMA transfer is occurring on said bus;
responsive to determining that said DMA transfer is occurring, copying data being transferred in said DMA transfer to a cache line in said cache memory during said DMA transfer; and
targeting said particular processor for executing a routine that accesses memory addresses of said DMA transfer target memory image, whereby said particular processor processes data transferred by said DMA transfer. - View Dependent Claims (2, 3, 5, 6, 7, 8, 9, 10)
-
-
4. The method of claim 4, wherein said processing system is a non-uniform memory access (NUMA) multiprocessor system and further comprising selecting said particular processor in conformity with a latency between said cache memory and said DMA transfer target memory.
-
11. A multiprocessor system, comprising:
-
a plurality of processors each coupled to an associated one of a plurality of cache memories;
at least one cache controller coupled to said associated cache memories, said at least one cache controller including a bus snooper for observing transfers on at least one bus coupling said cache memories to a memory and a transfer circuit for transferring data to cache lines managed by said cache controller in response to detecting that a direct memory access (DMA) transfer is taking place to said memory; and
an executive program resident in a program memory coupled to an executive processor of said multiprocessor system, comprising program instructions for;
initiating said DMA transfer to said memory, and targeting a particular one of said plurality of processors for executing a routine that accesses said data, whereby said particular processor processes data transferred by transfer circuit into said cache memory associated with said particular processor. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A computer program product comprising signal-bearing media encoding program instructions forming part of an executive program for execution by a processor within a multiprocessor system, said multiprocessor system including a cache controller with a cache injection feature that loads values into a cache memory during a direct memory access (DMA) transfer to a memory within said multiprocessor system, said values being at least a portion of data transferred by said DMA transfer, and said program instructions comprising program instructions for:
-
initiating said DMA transfer; and
targeting a particular one of a plurality of processors of said multiprocessor system for execution of a routine that accesses said values, wherein said particular processor is a processor associated with said cache memory, whereby said particular processor processes said values. - View Dependent Claims (24, 25, 26, 27, 28, 29)
-
Specification