1. A method for arbitrating requests received by a level-one (L1) cache from multiple clients that share the L1 cache, comprising: receiving a first request from a first client of the L1 cache in a first clock cycle; receiving a second request from a second client of the L1 cache in the first clock cycle; incrementing a bubble count that is output to the first client, indicating that an absence of a request from the first client is needed for one clock cycle; initializing a bubble request timeout counter; granting the first client access to the L1 cache in order to process at least a portion of the first request; deferring the processing of the second request; and transmitting a first status to the second client indicating that the second request has been deferred and should be reissued.