System, apparatus and method for controlling the movement of data in a
data processing system. The apparatus receives commands from at least one
protocol engine and generates contexts representing the commands. The
contexts are a data structure representing information for programming
data transfers pursuant to the commands. Instruction requests based on
the contexts are issued to the at least one protocol engine and to at
least one DMA to efficiently control the movement of data to/from the at
least one protocol engine from/to a local memory. The functions within
the system are partitioned in a way that allows functions to be scaled
for better performance and/or to support different protocols.