Low memory overhead heap management for memory tagging
AssigneeIntel Corporation
InventorsDavid M. Durham, Ramya Jayaram Masti
Life of this patent
Estimating the term…
Abstract
A method comprising responsive to a first instruction requesting a memory heap operation, identifying a data block of a memory heap; accessing a tag history for the data block, the tag history comprising a plurality of tags previously assigned to the data block; assigning a tag to the data block, wherein assigning the tag comprises verification that the tag does not match any of the plurality of tags of the tag history; and providing the assigned tag and a reference to a location of the data block.
Claims20
A processor comprising:
- a decoder to decode a first instruction requesting a memory heap operation;
- and
- circuitry to implement a heap manager, the heap manager to:
- responsive to the first instruction requesting the memory heap operation:
- defragment multiple data blocks to form a data block of a memory heap;
- combine tag histories of the multiple data blocks to form a tag history for the data block, wherein the tag histories comprise a first tag history comprising at least one tag previously assigned to a first data block of the multiple data blocks and a second tag history comprising at least one tag previously assigned to a second data block of the multiple data blocks;
- assign a tag to the data block, wherein assigning the tag comprises verification that the tag does not match any tags of the tag history for the data block;
- and
- provide the assigned tag and a reference to a location of the data block.
A method comprising:
- responsive to a first instruction requesting a memory heap operation:
- defragmenting multiple data blocks to form a data block of a memory heap;
- combining tag histories of the multiple data blocks to form a tag history for the data block, wherein the tag histories comprise a first tag history comprising at least one tag previously assigned to a first data block of the multiple data blocks and a second tag history comprising at least one tag previously assigned to a second data block of the multiple data blocks:
- assigning a tag to the data block, wherein assigning the tag comprises verification that the tag does not match any of the tags of the tag history for the data block;
- and
- providing the assigned tag and a reference to a location of the data block.
One or more non-transitory computer-readable media with code stored thereon, wherein the code is executable to cause a machine to:
- responsive to a first instruction requesting a memory heap operation:
- defragment multiple data blocks to form a data block of a memory heap;
- combine tag histories of the multiple data blocks to form a tag history for the data block, wherein the tag histories comprise a first tag history comprising at least one tag previously assigned to a first data block of the multiple data blocks and a second tag history comprising at least one tag previously assigned to a second data block of the multiple data blocks;
- assign a tag to the data block, wherein assigning the tag comprises verification that the tag does not match any of a plurality of tags of the tag history for the data block;
- and
- provide the assigned tag and a reference to a location of the data block.
Dependencies are inferred from the claim text.