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.