A dual or triple access interface (e.g., hardware and software
implementation) allows a CPU and at least one DMA peripheral, e.g.,
Universal Serial Bus (USB) DMA engine, to transfer data in and/or out of
a common single port SRAM by negotiating access requests between the CPU
and the DMA peripheral, and then subsequently forms memory cycles to the
single port SRAM to satisfy both the CPU's and DMA peripheral's memory
access throughput requirements. This allows the CPU and the at least one
DMA peripheral to access a shared single port SRAM by time multiplexing
granted accesses between, for example, two or three simultaneous memory
access requests, thus eliminating the need for a dual port memory.