IP Library Granted Patent US 8,635,415
Granted Patent B2
US 8,635,415 · App. 12/571,269 · Granted Jan 21, 2014

Managing and implementing metadata in central processing unit using register extensions

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,635,415
App. No.
12/571,269
Granted
Jan 21, 2014
Kind
B2
Abstract

A set of default registers of a processor are expanded into metadata registers on the processor of a computer system. The default registers having stored thereon data, while metadata which is related to the data is stored separately on the metadata registers.

Claims (36)

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.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2022
From: INTEL CORPORATION
To: TAHOE RESEARCH, LTD.
Reel/Frame 061175/0176 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2010
From: PATEL, BAIJU V.; GOPALAKRISHNA, RAJEEV; GLEW, ANDREW F.; KUSHLIS, ROBERT J.; VAN DYKE, DON A.; CIHULA, JOSEPH F.; MALLICK, ASIT; CROSSLAND, JAMES B.; NEIGER, GILBERT; RODGERS, DION; DIXON, MARTIN; CHARNEY, MARK JAY; GOTTLIEB, JACOB (KOBY)
To: INTEL CORPORATION
Reel/Frame 024089/0291 →