Systems for servicing the data and memory requirements of system devices.
A DMA engine that includes a data reservoir is provided that manages and arbitrates,
the data requests from the system devices. An arbitration unit is provided that
only allows eligible devices to make a data request in any given cycle to ensure
that all devices will be serviced within a programmable time period. The data reservoir
contains the data buffers for each channel of each device. A memory interface ensures
that sufficient data for each channel is present in the data reservoir by making
requests to a system's memory based on an analysis of each channel. Based on this
analysis, a request is either made to the system's main memory, or the channel
waits until it is evaluated again in the future. Each channel is thereby guaranteed
a response time.