Power efficient memory management for embedded systems
AssigneeTexas Instruments Incorporated
InventorsSeung Jun Baek, Ramanuja Vedantham, Se-Joong Lee
Life of this patent
Estimating the term…
Abstract
Embodiments of the invention provide a memory allocation module that adopts memory-pool based allocation and is aware of the physical configuration of the memory blocks in order to manage the memory allocation intelligently while exploiting statistical characters of packet traffic. The memory-pool based allocation makes it easy to find empty memory blocks. Packet traffic characteristics are used to maximize the number of empty memory blocks.
Claims17
A memory module, comprising a first RAM block and a second RAM block, the first RAM block having a first plurality of memory chunks of a first size defined by a first protocol and the second RAM block having a second plurality of memory chunks of a second size defined by a second protocol, the second size different from the first size, and wherein the memory module is further configured to assign a first data packet following the first protocol to the first RAM block and to assign a second data packet following the second protocol to the second RAM block and wherein a given one of the RAM blocks configured to store a descriptor pool having a plurality of descriptors, each of the plurality of descriptors in the descriptor pool uniquely associated with corresponding one of the plurality of memory chunks, the RAM blocks adapted to independently operate in a plurality of modes including an active mode and a power-off mode, the memory module adapted to prioritize assignment of data packets to memory chunks on a RAM block having the most memory chunks already in use and to place unused RAM blocks in the power-off mode.
A method for storing data packets, comprising:
- receiving a data packet at a memory module, the memory module comprising a descriptor memory block configured to store a descriptor pool having a list of descriptors and plurality of data memory blocks, each of the plurality of data memory blocks divided into a plurality of memory chunks;
- identifying a selected one of the plurality of data memory blocks on which to store the data packet, the selected data memory block identified by determining which of the plurality of data memory blocks has the least available memory space;
- storing the data packet to an available one of the plurality of memory chunks on the selected memory block;
- linking a selected descriptor in the list of descriptors to the available memory chunk;
- and
- placing at least one of the plurality of memory blocks without an occupied memory chunk in a power-off mode, wherein the plurality of data memory blocks further includes a first data memory block and a second data memory block, the first data memory block having a first plurality of memory chunks of a first size defined by a first protocol and the second data memory block having a second plurality of memory chunks of a second size defined by a second protocol, wherein the second size different from the first size, and wherein identifying the selected one of the plurality of data memory blocks on which to store the data packet further comprises:
- identifying a protocol associated with the data packet as being the first or second protocol;
- and
- identifying the first data memory block as the selected data memory block in response to the identifying protocol being the first protocol and identifying the second data memory block as the selected data memory block in response to the identified protocol being the second protocol.
An electronic device, comprising:
- a memory module configured to store data packets transmitted or received over a network, the memory module having a plurality of memory blocks, the plurality of memory blocks including a first memory block and a second memory block, the first memory block having a first plurality of memory chunks of a first size determined by a first communication protocol and the second memory block having a second plurality of memory chunks of a second size determined by a second communication protocol, the second communication protocol different from the first communication protocol and the second size different from the first size, the memory module configured to assign a data packet to one of the first plurality of memory chunks in response to the data packet following the first communication protocol and to assign the data packet to one of the second plurality of memory chunks in response to the data packet following the second communication protocol.
Dependencies are inferred from the claim text.