Patent ID: 7750915

Claim:
A method for performing multiple concurrent accesses in a shared memory resource, the shared memory resource comprising a plurality of banks, each bank comprising a plurality of data entries, the plurality of banks allowing concurrent access such that multiple data entries, each from a different bank, are capable of being accessed concurrently, the method comprising: storing a first group of data elements in data entries across multiple banks in the shared memory resource, a first data element of the first group of data elements being stored in a data entry in a first bank; determining, responsive to a number (D) of stored data entries associated with the first group and a number (B) of banks in the plurality of banks, a number (S) of data entries to skip after storing a last data element of the first group of data elements, wherein (S) is determined according to ((D+S) modulo B) is equal to M, M being a positive, non-zero integer; following the (S) skipped data entries or, if no offset is to be introduced, following the first group of data elements, storing a second group of data elements in data entries across multiple banks in the shared memory resource, a first data element of the second group of data elements being stored in a data entry in a second bank different from the first bank; and concurrently accessing the first data element of the first group of data elements from the first bank and the first data element of the second group of data elements from the second bank, wherein the first data element of the first group of data elements is accessed by a first processing unit, and the first data element of the second group of data elements is accessed by a second processing unit.