Legal claims defining the scope of protection, as filed with the USPTO.
1. A method comprising: storing data into a default register of a first processor of a computer system; and separately storing metadata associated with the data stored in the default register into at least one metadata register, wherein each metadata register is a hardware register extension of an associated default register and wherein the metadata includes bounds associated with an address in memory; executing a load or store instruction, wherein the load or store instruction is a legacy instruction that does not reference the stored metadata; determining if the load or store instruction violates the bounds stored as metadata; throwing an exception if the load or store instruction violates the bounds stored as metadata; performing the load or store instruction if the load or store instruction does not violate the bounds stored as metadata.
2. The method of claim 1 , further comprising: computing a lower bound and an upper bound of an address being used by a pointer in a default register to access the memory; and storing the lower and upper bounds in a metadata register.
3. The method of claim 1 , further comprising performing automatic bounds checking for memory accesses that utilize one or more default registers that are associated with one or more bounds registers that contain one or more of the bounds.
4. The method of claim 1 , further comprising associating a prefix to an instruction being used to create and propagate a set of bounds associated with destination registers and using the prefix with existing memory operations to explicitly perform bounds checking of the set of bounds, the prefix including a NOP prefix or a new prefix.
5. The method of claim 1 , further comprising executing an instruction including a legacy instruction to perform pointer arithmetic to propagate a set of bounds associated with a source pointer to a destination pointer, wherein the set of bounds are invalidated if the pointer arithmetic is not performed.
6. The method of claim 5 , further comprising adding a prefix to the set of bounds being propagated from the source pointer to the destination pointer, wherein the prefix indicates the propagation of the set of bounds from the source pointer to the destination pointer.
7. The method of claim 1 , further comprising computing an addresses range associated with memory accesses, and comparing the address range having a lowest address and a highest address relating to a pointer with lower and upper bounds already in the metadata registers to prevent any memory accesses that are outside a bound range of the lower and upper bounds.
8. The method of claim 7 , wherein preventing comprises avoiding bounds violation, the bounds violation occurs if the lowest address is lesser than the lower bound already in the metadata registers or the highest address is greater than the upper bound already in the metadata registers.
9. A processor comprising: default registers to store data; at least one metadata register to store metadata associated with the data stored in the default registers, wherein each metadata register is a hardware register extension of an associated default register and wherein the metadata includes a plurality of bounds associated with an address being used by a pointer representing the data in the default register to access memory; and logic to execute a load or store instruction, wherein the load or store instruction is a legacy instruction that does not reference the stored metadata, determine if the load or store instruction violates the bounds stored as metadata, throw an exception if the load or store instruction violates the bounds stored as metadata, and perform the load or store instruction if the load or store instruction does not violate the bounds stored as metadata.
10. The processor of claim 9 , wherein the metadata includes bounds associated with addresses being used by pointers representing the data in the default registers to access memory, the processor comprising: logic to compute a lower bound and an upper bound of an address being used by a pointer in a default register to access the memory.
11. The processor of claim 10 , wherein at least two metadata registers correspond to each of the default registers, wherein a first of the at least two metadata registers to store the lower bound and a second of the at least two metadata registers to store the upper bound.
12. A non-transitory machine-readable medium comprising instructions that when executed, cause a machine to: store data into a default register of a first processor of a computer system; separately store metadata on the metadata registers, associated with the data stored in the default register into at least one metadata register, wherein each metadata register is a hardware register extension of an associated default register and wherein the metadata includes one bounds associated with an address in memory; execute a load or store instruction, wherein the load or store instruction is a legacy instruction that does not reference the stored metadata; determine if the load or store instruction violates the bounds stored as metadata; throw an exception if the load or store instruction violates the bounds stored as metadata; perform the load or store instruction if the load or store instruction does not violate the bounds stored as metadata.
13. The non-transitory machine-readable medium of claim 12 , wherein the metadata includes bounds associated with addresses being used by pointers representing the data in the default registers to access memory, the instructions that when executed, further cause the machine to: compute a lower bound and an upper bound of an address being used by a pointer in a default register to access the memory.
Unknown
January 21, 2014
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.