Patent ID: 7174432

Claim:
A method of controlling independent and asynchronous access to a memory by a plurality of processes, the method comprising: independently and asynchronously performing a memory write process of the plurality of processes, wherein the memory write process comprises: obtaining a first copy of a memory full indicator; obtaining a copy of a read index, the read index copy indicating a read element position in the memory; when the first copy of the memory full indicator indicates that the memory is not full, determining an available write count from the read index copy and a write index, the write index indicating a write element position in the memory; beginning at the write element position, writing an amount of data corresponding to the available write count; updating the write index to indicate a next write element position based upon the amount of data written; and independently and asynchronously performing a memory read process of the plurality of processes, wherein the memory read process comprises: obtaining a second copy of the memory full indicator; obtaining a copy of the write index; determining an available read count from the read index and the write index copy; beginning at the read element position, reading a plurality of data elements corresponding to the available read count; selecting a data element of the plurality of data elements for a subsequent read process; determining a corresponding element position of the data element in the memory as a next read element position; and updating the read index to indicate the next read element position for the subsequent read process.