VIRTUAL MEMORY INTERFACE
First Claim
1. Apparatus, comprising:
- a memory comprising data storage locations addressable by physical addresses; and
a direct memory access (DMA) controller providing a virtual memory interface to the memory and operable to apply a virtual address in a flat memory linear addressing space as an index into a sequence of the physical addresses that is ordered in accordance with a group of buffers.
17 Assignments
0 Petitions
Accused Products
Abstract
The embodiments that are described herein provide random access to individual data storage locations of a group of buffers, which may be scattered in the memory. These embodiments provide a virtual memory interface that applies virtual addresses in a flat memory linear addressing space as indices into the physical memory addresses that are ordered into a sequence in accordance with the group of buffers. In this way, these embodiments enable a device (e.g., a processor) to directly and sequentially access all of the scattered physical memory locations of a fragmented data item, such as a packet, without having to perform any memory segmentation or paging processes. In some embodiments, these accesses include both read and write accesses to the scattered data storage locations.
71 Citations
20 Claims
-
1. Apparatus, comprising:
-
a memory comprising data storage locations addressable by physical addresses; and a direct memory access (DMA) controller providing a virtual memory interface to the memory and operable to apply a virtual address in a flat memory linear addressing space as an index into a sequence of the physical addresses that is ordered in accordance with a group of buffers. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. Apparatus, comprising:
-
a memory comprising data storage locations addressable by physical addresses; a wireless transceiver operable to transmit and receive packets of data; logic operable to store packet data in buffers scattered in the memory and to associate with each of the stored packets a respective list of buffer reference elements each of which comprises (i) a respective buffer pointer to a respective buffer containing data of the packet and (ii) a size of the respective buffer; and a virtual memory interface operable to provide random access to individual ones of the data storage locations based on respective orderings of ones of the physical addresses into respective sequences in accordance with respective ones of the lists of buffer reference elements and on a respective indexing of each the ordered physical address sequences with consecutive virtual addresses in a flat memory linear addressing space. - View Dependent Claims (11, 12, 13)
-
-
14. A method, comprising:
-
fetching a list of buffer reference elements each of which comprises (i) a respective buffer pointer corresponding to a respective one of physical addresses of data storage locations in a memory and (ii) a respective buffer size; ordering ones of the physical addresses into a sequence in accordance with the list of buffer reference elements; applying a virtual address in a flat memory linear addressing space as an index into the sequence of the physical addresses to identify a target one of the data storage locations; and performing data transfer operations with respect to the target data storage locations. - View Dependent Claims (15, 16, 17, 18)
-
-
19. A method, comprising:
-
wirelessly transmitting and receiving packets of data; storing packet data in buffers scattered in a memory that comprises data storage locations addressable by physical addresses; associating with each of the stored packets a respective list of buffer reference elements each of which comprises (i) a respective buffer pointer to a respective buffer containing data of the packet and (ii) a size of the respective buffer; and providing random access to individual ones of the data storage locations based on respective orderings of ones of the physical addresses into respective sequences in accordance with respective ones of the lists of buffer reference elements and on a respective indexing of each the ordered physical address sequences with consecutive virtual addresses in a flat memory linear addressing space. - View Dependent Claims (20)
-
Specification