Cyclic buffer management
First Claim
1. A computer-implemented method for cyclic buffer management, the method comprising:
- doubly mapping physical addresses associated with a cyclic buffer of tangible memory to logical addresses to create doubly mapped virtual memory, the doubly mapped virtual memory comprising;
two different logical addresses for each physical address of the cyclic buffer; and
a fist virtual mapping of the cyclic buffer to a first virtual memory block and a second virtual mapping of the cyclic buffer to a second virtual memory block, the first virtual memory block and the second virtual memory block being consecutive in the virtual memory;
enabling a client application to write in a single data transfer directly into the doubly mapped virtual memory independent of whether logical addresses being written into correspond to physical addresses corresponding to an end of the cyclic buffer and a beginning of the cyclic buffer;
andwherein the data and the cyclic buffer is for extraction and presentation in a data stream to a user.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for cyclic buffer management are described. In one aspect, the systems and methods enable cyclic buffer wrap-around write operations independent of temporary buffer allocations and corresponding multiple data copies. To this end, the systems and methods map the cyclic buffer'"'"'s physical addresses two-times (“doubly map”) to a consecutive block of virtual memory. When an application desires to write beyond the end of what represents the cyclic buffer, the systems and methods provide a logical pointer to the doubly mapped virtual memory, enabling the application to directly write into the virtual memory from the end of the first cyclic buffer mapping to the beginning of the second cyclic buffer mapping. The memory management operations automatically transfer the data out of this doubly mapped virtual memory into the cyclic buffer for subsequent extraction and presentation to the user.
-
Citations
16 Claims
-
1. A computer-implemented method for cyclic buffer management, the method comprising:
-
doubly mapping physical addresses associated with a cyclic buffer of tangible memory to logical addresses to create doubly mapped virtual memory, the doubly mapped virtual memory comprising; two different logical addresses for each physical address of the cyclic buffer; and a fist virtual mapping of the cyclic buffer to a first virtual memory block and a second virtual mapping of the cyclic buffer to a second virtual memory block, the first virtual memory block and the second virtual memory block being consecutive in the virtual memory; enabling a client application to write in a single data transfer directly into the doubly mapped virtual memory independent of whether logical addresses being written into correspond to physical addresses corresponding to an end of the cyclic buffer and a beginning of the cyclic buffer; and wherein the data and the cyclic buffer is for extraction and presentation in a data stream to a user. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A tangible computer-readable medium comprising computer-executable instructions for cyclic buffer management, the computer-textual instructions comprising instructions for:
-
allocating a cyclical buffer in physical memory for audio streaming; mapping a first address and a second address of the cyclical buffer to a first virtual memory block and a second virtual memory block, the first virtual memory block and the second virtual memory block being consecutive in a virtual memory and page aligned; responsive to request from an audio application to write an amount of data into the cyclical buffer that will wrap around the end of the cyclical buffer to the beginning of the cyclical buffer, allowing the audio application to write the amount of data directly in a single data transfer into the first virtual memory block and the second virtual memory block independent of temporary buffer allocation and data copies; and wherein the amount of data is automatically transferred out of the first and second virtual memory blocks into the cyclical buffer for extraction and presentation in an audio stream to a user. - View Dependent Claims (9, 10, 11)
-
-
12. A computing device comprising:
-
a processor; and a memory coupled to the processor, the memory comprising computer-program instructions executable by the processor, the computer-program instructions including instructions for; providing an interface for applications to input data into a cyclical buffer; responsive to receiving a request via the interface from an application, returning a pointer to a logical address in virtual memory to the application, the virtual memory representing a double consecutive mapping of the cyclical buffer in the virtual memory;
the pointer allowing the application to write in a single data transfer directly into virtual memory using at least first and second logical addresses, a first logical address corresponding to an actual physical last address of the cyclical buffer, a second logical address corresponding to an actual physical first address of the cyclical buffer; andwherein data written into the virtual memory is automatically transferred to the cyclical buffer for streaming and presentation to a user. - View Dependent Claims (13, 14, 15, 16)
-
Specification