DMA ENGINE CAPABLE OF CONCURRENT DATA MANIPULATION
First Claim
1. A method to perform a plurality of data manipulation operations on data being transferred via a Direct Memory Access (DMA) channel managed by a DMA controller comprising:
- providing a plurality of data manipulation engines within said DMA controller that each perform at least one of a variety of data manipulation operations;
fetching a Control Data Block (CDB) by said DMA controller, said CDB containing instructions for reading said data from at least one data source, performing said plurality of data manipulation operations on said data, and writing said data to at least one destination;
retrieving by said DMA controller said data from at least one data source in accord with said instructions encoded in said CDB;
performing within said DMA controller each data manipulation operation of said plurality of data manipulation operations on said data received by said DMA controller using one of said plurality of data manipulation engines provided on said DMA controller for each data manipulation operation in accord with said instructions encoded in said CDB such that at least two of said plurality of data manipulation operations are performed concurrently by said DMA controller; and
sending by said DMA controller results of said plurality of data manipulation operations to at least one destination in accord with said instructions encoded in said CDB.
6 Assignments
0 Petitions
Accused Products
Abstract
Disclosed is a method and device for concurrently performing a plurality of data manipulation operations on data being transferred via a Direct Memory Access (DMA) channel managed by a DMA controller/engine. A Control Data Block (CDB) that controls where the data is retrieved from, delivered to, and how the plurality of data manipulation operations are performed may be fetched by the DMA controller. A CDB processor operating within the DMA controller may read the CDB and set up the data reads, data manipulation operations, and data writes in accord with the contents of the CDB. Data may be provided from one or more sources and data/modified data may be delivered to one or more destinations. While data is being channeled through the DMA controller, the DMA controller may concurrently perform a plurality of data manipulation operations on the data, such as, but not limited to: hashing, HMAC, fill pattern, LFSR, EEDP check, EEDP generation, XOR, encryption, and decryption. The data modification engines that perform the data manipulation operations may be implemented on the DMA controller such that the use of memory during data manipulation operations uses local RAM so as to avoid a need to access external memory during data manipulation operations.
-
Citations
19 Claims
-
1. A method to perform a plurality of data manipulation operations on data being transferred via a Direct Memory Access (DMA) channel managed by a DMA controller comprising:
-
providing a plurality of data manipulation engines within said DMA controller that each perform at least one of a variety of data manipulation operations; fetching a Control Data Block (CDB) by said DMA controller, said CDB containing instructions for reading said data from at least one data source, performing said plurality of data manipulation operations on said data, and writing said data to at least one destination; retrieving by said DMA controller said data from at least one data source in accord with said instructions encoded in said CDB; performing within said DMA controller each data manipulation operation of said plurality of data manipulation operations on said data received by said DMA controller using one of said plurality of data manipulation engines provided on said DMA controller for each data manipulation operation in accord with said instructions encoded in said CDB such that at least two of said plurality of data manipulation operations are performed concurrently by said DMA controller; and sending by said DMA controller results of said plurality of data manipulation operations to at least one destination in accord with said instructions encoded in said CDB. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A Direct Memory Access (DMA) controller that performs a plurality of data manipulation operations on data being transferred via a Direct Memory Access (DMA) channel managed by said DMA controller comprising:
-
a Control Data Block (CDB) processor subsystem that fetches a Control Data Block (CDB), said CDB containing instructions for reading said data from at least one data source, performing said plurality of data manipulation operations on said data, and writing said data to at least one destination; a fill subsystem that retrieves said data from at least one data source in accord with said instructions encoded in said CDB; a plurality of data manipulation engines within said DMA controller that each perform at least one of a variety of data manipulation operations for each data manipulation operation of said plurality of data manipulation operations on said data received by fill subsystem in accord with said instructions encoded in said CDB such that at least two of said plurality of data manipulation operations are performed concurrently by said DMA controller; and a drain subsystem that sends results of said plurality of data manipulation operations to at least one destination in accord with said instructions encoded in said CDB. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A Direct Memory Access (DMA) controller that performs a plurality of data manipulation operations on data being transferred via a Direct Memory Access (DMA) channel managed by said DMA controller comprising:
-
means for providing a plurality of data manipulation engines within said DMA controller that each perform at least one of a variety of data manipulation operations; means for fetching a Control Data Block (CDB) by said DMA controller, said CDB containing instructions for reading said data from at least one data source, performing said plurality of data manipulation operations on said data, and writing said data to at least one destination; means for retrieving by said DMA controller said data from at least one data source in accord with said instructions encoded in said CDB; means for performing within said DMA controller each data manipulation operation of said plurality of data manipulation operations on said data received by said DMA controller using one of said plurality of data manipulation engines provided on said DMA controller for each data manipulation operation in accord with said instructions encoded in said CDB such that at least two of said plurality of data manipulation operations are performed concurrently by said DMA controller; and means for sending by said DMA controller results of said plurality of data manipulation operations to at least one destination in accord with said instructions encoded in said CDB.
-
Specification