Patent ID: 7334056
Filing Date: 2008-02-19
Classification: G06F

Abstract:
1. A system for controlling movement of data in a data processing system, comprising: at least one protocol engine; at least one command FIFO, which is external to the at least one protocol engine, for receiving commands from the at least one protocol engine, the at least one command FIFO comprising one of an on-chip command FIFO and an off-chip command FIFO for storing data and for passing commands to at least one command automation processor, which is external to the at least one protocol engine; the at least one command automation processor determining if automation is enabled for the commands for eligibility to be automated by hardware; the at least one command automation processor passing commands for which automation is not enabled to a microprocessor for processing; the at least one command automation processor generating contexts that represent commands for which automation is enabled, and appending the contexts to a list of contexts; at least one read instruction context manager for receiving read instructions issued by each at least one context list retrieval channel, for arbitrating between each at least one context list retrieval channel, and for passing a winning read instruction to the at least one protocol engine and to at least one read DMA; at least one write instruction context manager for receiving write instructions from each at least one context list retrieval channel, for arbitrating between each at least one context list retrieval channel, and for passing a winning write instruction to the at least one protocol engine and to a pending write instruction table; the at least one command automation processor external to the at least one read instruction context manager and the at least one write instruction context manager; the at least one read DMA for receiving the winning read instruction from the at least one read instruction context manager, for moving the specified amount of data with the at least one protocol engine, and for notifying the at least one context list retrieval channel when the winning read instruction is complete; the at least one pending write instruction table for storing pending write instructions received from the write instruction context manager, for passing the pending write instructions to at least one write DMA, for receiving updates to the pending write instructions after the at least one write DMA has transferred pending write instruction data, and for providing feedback to the at least one context list retrieval channel when each pending write instruction is completed; and the at least one write DMA for receiving data from the at least one protocol engine and an identification identifying a pending write instruction to fetch, for fetching the identified pending write instruction from the pending write instruction table, for moving data with the at least one protocol engine, and for updating an associated pending write instruction table instruction.