Patent ID: 8458377

Claim:
A method to perform a plurality of data modification operations on data being transferred via a Direct Memory Access (DMA) channel managed by a DMA controller comprising: providing a plurality of data modification engines within said DMA controller that each perform at least one of a variety of data modification 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 modification 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 modification operation of said plurality of data modification operations on said data received by said DMA controller using one of said plurality of data modification engines provided on said DMA controller for each data modification operation in accord with said instructions encoded in said CDB such that at least two of said plurality of data modification operations are performed concurrently by said DMA controller and a first data modification engine of said plurality of data modification engines creates first data results that are used as a basis of computation for a second data modification engine of said plurality of data modification engines to perform at least one data modification operation of said plurality of data modification operations; and sending by said DMA controller results of said plurality of data modification operations to at least one destination in accord with said instructions encoded in said CDB.