Abstract: A method and apparatus for bus arbitration wherein each bus agent is assigned a weight that governs the percentage of bandwidth allocated to the agent. In addition, each bus agent may also raise the priority of its request based on the amount of time that agent's request has not been serviced. Specifically, the waiting period for the agent is selected so that the agent would be guaranteed access to the bus such that a worst case latency constraint is satisfied. Finally, the arbitration scheme of the present invention can be split into multiple levels of hierarchy, such that when an agent wins arbitration at one level, it is passed to the next higher level where it competes with other agents for bus access.