Legal claims defining the scope of protection, as filed with the USPTO.
1. A method, in a data processing system, for programming a direct memory access engine operating as a single thread processor, the method comprising: receiving, from a host processor, a program in either a local storage or a memory associated with the direct memory access engine; receiving a request, from the host processor, in the direct memory access engine, to execute the program located in either the local storage or the memory using a set of parameters; executing, by the direct memory access engine and without intervention by a host processor, the program; and responsive to the program completing execution, sending, by the direct memory access engine, a completion notification to the host processor that indicates that the program has completed execution; wherein the method for programming the direct memory access engine further comprises: receiving the set of parameters from the host processor that initializes registers within the direct memory access engine with a pointer to a data structure and a first location pointer, wherein the pointer to the data structure points to at least one of a local storage address in the local storage or an effective address in the memory and wherein the first location pointer points to at least one of a local storage address in the local storage or an effective address in the memory; setting a current pointer of data that is to be accessed equal to the pointer to the data structure; setting an intended location for the data equal to the first location pointer; and executing one of a plurality of instructions on the data using the current pointer and the intended location pointer.
2. The method of claim 1 , wherein the host processor is able to execute other instructions during the time the direct memory access engine is executing the program.
3. The method of claim 1 , wherein the host processor is a synergistic processing unit.
4. The method of claim 3 , wherein the synergistic processing unit resides within a synergistic processing element within a heterogeneous multi-core processor.
5. The method of claim 4 , wherein the heterogeneous multi-core processor comprises eight synergistic processing elements and one power processor element.
6. The method of claim 1 , wherein the direct memory access engine is programmed to support certain predefined subroutines to implement at least one of a scatter access, a gather access, or a strided access.
7. The method of claim 1 , wherein the direct memory access engine is programmed with at least one instruction to modify the data within a data structure selected from the set of instructions consisting of: condition branch, compare, add, subtract, multiply, divide, rotation, shift, logical and, logical or, logical xor, logical invert, floating point add, floating point multiply, floating point divide, and floating point compare.
8. The method of claim 1 , wherein the direct memory access engine is programmed with at least one instruction to modify the data within a data structure selected from the set of instructions consisting of: load immediate value, load value from memory, store value to memory, load value from storage, store value to storage, move data from memory to storage, and move data from storage to memory.
9. The method of claim 1 , wherein the direct memory access engine is programmed with at least one instruction to modify the data within a data structure selected from the set of instructions consisting of: complete and return status, get transfer status, atomic locking, section/end critical section, sync, and eieio.
10. A computer program product comprising a non-transitory computer-readable medium having a computer readable program recorded thereon, wherein the computer readable program, when executed on a computing device, causes the computing device to: receive, from a host processor, a program in either a local storage or a memory associated with a direct memory access engine; receive a request, from the host processor, to execute the program located in either the local storage or the memory using a set of parameters; execute, without intervention by a host processor, the program; and responsive to the program completing execution, send a completion notification to the host processor that indicates that the program has completed execution; wherein the computer readable program further causes the computing device to: receive the set of parameters from the host processor that initializes registers within the direct memory access engine with a pointer to a data structure and a first location pointer, wherein the pointer to the data structure points to at least one of a local storage address in the local storage or an effective address in the memory and wherein the first location pointer points to at least one of a local storage address in the local storage or an effective address in the memory; set a current pointer of data that is to be accessed equal to the pointer to the data structure; set an intended location for the data equal to the first location pointer; and execute one of a plurality of instructions on the data using the current pointer and the intended location pointer.
11. The computer program product of claim 10 , wherein the host processor is able to execute other instructions during the time the direct memory access engine is executing the program.
12. The computer program product of claim 10 , wherein the direct memory access engine is programmed to support certain predefined subroutines to implement at least one of a scatter access, a gather access, or a strided access.
13. The computer program product of claim 10 , wherein the direct memory access engine is programmed with at least one instruction to modify the data within a data structure selected from the set of instructions consisting of: condition branch, compare, add, subtract, multiply, divide, rotation, shift, logical and, logical or, logical xor, logical invert, floating point add, floating point multiply, floating point divide, and floating point compare.
14. The computer program product of claim 10 , wherein the direct memory access engine is programmed with at least one instruction to modify the data within a data structure selected from the set of instructions consisting of: load immediate value, load value from memory, store value to memory, load value from storage, store value to storage, move data from memory to storage, and move data from storage to memory.
15. The computer program product of claim 10 , wherein the direct memory access engine is programmed with at least one instruction to modify the data within a data structure selected from the set of instructions consisting of: complete and return status, get transfer status, atomic locking, section/end critical section, sync, and eieio.
16. An apparatus, comprising: a direct memory access engine; a local storage coupled to the direct memory access engine; and a memory coupled to the direct memory access engine, wherein either the local storage or the memory receives, from a host processor, a program that comprises instructions which, when executed by the direct memory access engine, cause the direct memory access engine to: receive a request, from the host processor, to execute the program located in either the local storage or the memory using a set of parameters; execute, without intervention by a host processor, the program; and responsive to the program completing execution, send a completion notification to the host processor that indicates that the program has completed execution; wherein the instructions further causes the direct memory access engine to: receive a set of parameters from the host processor that initializes registers within the direct memory access engine with a pointer to a data structure and a first location pointer, wherein the pointer to the data structure points to at least one of a local storage address in the local storage or an effective address in the memory and wherein the first location pointer points to at least one of a local storage address in the local storage or an effective address in the memory; set a current pointer of data that is to be accessed equal to the pointer to the data structure; set an intended location for the data equal to the first location pointer; and execute one of a plurality of instructions on the data using the current pointer and the intended location pointer.
17. The apparatus of claim 16 , wherein the host processor is able to execute other instructions during the time the direct memory access engine is executing the program.
18. The apparatus of claim 16 , wherein the direct memory access engine is programmed to support certain predefined subroutines to implement at least one of a scatter access, a gather access, or a strided access.
19. The apparatus of claim 16 , wherein the direct memory access engine is programmed with at least one instruction to modify the data within a data structure selected from the set of instructions consisting of: condition branch, compare, add, subtract, multiply, divide, rotation, shift, logical and, logical or, logical xor, logical invert, floating point add, floating point multiply, floating point divide, and floating point compare.
20. The apparatus of claim 16 , wherein the direct memory access engine is programmed with at least one instruction to modify the data within a data structure selected from the set of instructions consisting of: load immediate value, load value from memory, store value to memory, load value from storage, store value to storage, move data from memory to storage, and move data from storage to memory.
21. The apparatus of claim 16 , wherein the direct memory access engine is programmed with at least one instruction to modify the data within a data structure selected from the set of instructions consisting of: complete and return status, get transfer status, atomic locking, section/end critical section, sync, and eieio.
Unknown
January 11, 2011
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.