A cascaded multimedia arbiter and method for arbitrating access to a shared multimedia memory, which is used to store multiple frame buffers for multiple monitors. Other buffers for multimedia agents such as for audio, camera input, digital-versatile disk (DVD) input, and three dimensional (3D) rendering share the same memory. The shared memory allows flexible memory allocation as graphics, audio, and multimedia modes change. Many real-time agents such as for graphics and audio read the memory to fill first-in-first-out (FIFO) buffers. These real-time agents are assigned a fixed slot in a round-robin arbitration. The last or final arbitration slot is used by all non-real-time agents, such as the host, 3D engine, and DVD playback. These non-real-time agents can wait, but need the most bandwidth to maximize performance. The last time slot uses a priority arbiter to grant access in a priority order to the non-real-time agents. A timer is used to limit the time that the last arbitration slot services non-real-time agents. When the timer signals a non-real-time time-out, non-real-time agents' memory accesses are terminated. The next arbitration loop then begins with the first real-time agent. The overall loop time seen by any real-time agent is never more than a maximum loop time, since the non-real-time agents are limited by the time-out. The amount of access time given the non-real-time agents is maximized while the real-time agents are ensured access within the maximum loop period.
展开▼