Maximizing encodings of version control bits for memory corruption detection
First Claim
1. A computing system comprising:
- a processor;
a physical memory coupled to the processor; and
an operating system (OS), wherein the OS is configured to;
partition the memory into a plurality of regions;
determine a reserved set of one or more version numbers for each one of the plurality of regions; and
determine an available set of one or more version numbers for each one of the plurality of regions, wherein an available set for a given region comprises version numbers not included in a reserved set for the given region;
wherein the processor is configured to;
generate a first address to identify a memory location in a first region of the plurality of regions, wherein the first address comprises a first version number; and
detect an error responsive to determining the version number is in a reserved set of version numbers for the first region.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods for maximizing a number of available states for a version number used for memory corruption detection. A physical memory may be a DRAM comprising a plurality of regions. Version numbers associated with data structures allocated in the physical memory may be generated so that version numbers of adjacent data structures in a virtual address space are different. A reserved set and an available set of version numbers are associated with each one of the plurality of regions. A version number in a reserved set of a given region may be in an available set of another region. The processor detects no memory corruption error in response to at least determining a version number stored in a memory location in a first region identified by a memory access operation is also in a reserved set associated with the first region.
-
Citations
20 Claims
-
1. A computing system comprising:
-
a processor; a physical memory coupled to the processor; and an operating system (OS), wherein the OS is configured to; partition the memory into a plurality of regions; determine a reserved set of one or more version numbers for each one of the plurality of regions; and determine an available set of one or more version numbers for each one of the plurality of regions, wherein an available set for a given region comprises version numbers not included in a reserved set for the given region; wherein the processor is configured to; generate a first address to identify a memory location in a first region of the plurality of regions, wherein the first address comprises a first version number; and detect an error responsive to determining the version number is in a reserved set of version numbers for the first region. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for a computing system, the method comprising:
-
partitioning a memory into a plurality of regions; determining a reserved set of one or more version numbers for each one of the plurality of regions; and determining an available set of one or more version numbers for each one of the plurality of regions, wherein an available set for a given region comprises version numbers not included in a reserved set for the given region; generating a first address to identify a memory location in a first region of the plurality of regions, wherein the first address comprises a first version number; and detecting an error responsive to determining the version number is in a reserved set of version numbers for the first region. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A processor comprising:
-
an instruction fetch unit configured to fetch instructions from a physical memory comprising a plurality of regions; a decoder coupled to the instruction fetch unit; an execution unit; and a load-store unit; wherein the decoder is configured to determine a received instruction is a memory access instruction corresponding to a first region of the plurality of regions; wherein the execution unit is configure to generate a first address to identify a memory location in the first region, wherein the first address comprises a first version number; and wherein the load-store unit is configured to; generate a first address to identify a memory location in a first region of the plurality of regions, wherein the first address comprises a first version number; and detect an error responsive to determining the version number is in a reserved set of version numbers for the first region. - View Dependent Claims (18, 19, 20)
-
Specification