Patent ID: 8397010

Claim:
A network device, comprising: a plurality of requestors to: issue requests to process data received by the network device based on control information included in the data; a memory that includes a plurality of memory parts, each memory part, of the plurality of memory parts, including a plurality of memory banks; and a control block to: receive requests from a set of requestors, of the plurality of requestors, each request, of the received requests, including an address, perform a mapping operation on each address, of the addresses included in the received requests, to map the address from a first address space, associated with a particular memory part, of the plurality of memory parts, to a second address space, associated with a particular memory bank, of the plurality of memory banks corresponding to the particular memory part, the mapping operation mapping a first set of bits of the address to a second set of bits of the address, identify, for each address, of the addresses included in the received requests, a memory bank, of the plurality of memory banks, based on the second address space, generate, for each identified memory bank, of the identified memory banks, a bank request vector that identifies a requestor, of the plurality of requestors, from which a request, intended for the identified memory bank, was received, generate a bank availability vector that is based on an availability of each identified memory bank, of the identified memory banks, generate a result vector that is based on the bank request vector and the bank availability vector, identify, based on the result vector, a set of requests, of the received requests, that are each associated with an available memory bank, of the available memory banks, when identifying the set of requests, the control block is to: identify, based on a first priority, that the set of requests is associated with a highest quantity of different memory parts, of the plurality of memory parts, identify, based on a second priority, that the set of requests is associated with a highest quantity of different requestors, and identify, based on a third priority, that the set of requests is associated with a highest quantity of high priority requests, the first priority comprising a higher priority relative to the second priority and the second priority comprising a higher priority relative to the third priority, and send each of the requests, of the identified set of requests, to the identified memory bank, associated with each request during a single clock cycle.