Data relocation for inline metadata
US-2021405896-A1 · Dec 30, 2021 · US
US12008374B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12008374-B2 |
| Application number | US-202217696153-A |
| Country | US |
| Kind code | B2 |
| Filing date | Mar 16, 2022 |
| Priority date | Mar 16, 2022 |
| Publication date | Jun 11, 2024 |
| Grant date | Jun 11, 2024 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
The technology includes allocating an object in a memory and setting an ownership identifier (ID) in the allocated object, the allocated object being associated with a first variable in a program and setting a matching ownership ID in a pointer to the allocated object. When the allocated object is accessed during execution of the program by a processor, an exception is generated when the ownership ID in the allocated object does not match the ownership ID in the pointer, and execution of the program is continued when the ownership ID in the allocated object does match the ownership ID in the pointer.
Opening claim text (preview).
What is claimed is: 1. An apparatus comprising: a memory to store an object; and a processor to allocate the object in the memory and set an ownership identifier (ID) in the allocated object, the allocated object being associated with a first variable in a program; set a matching ownership ID in a pointer to the allocated object; when the allocated object is accessed during execution of the program, generate an exception when the ownership ID in the allocated object does not match the ownership ID in the pointer, and continue execution of the program when the ownership ID in the allocated object does match the ownership ID in the pointer; when the allocated object is associated with a second variable in the program, update the ownership ID in the allocated object and set a matching updated ownership ID in the pointer to the allocated object; and when the allocated object is accessed during execution of the program, generate an exception when the ownership ID in the allocated object does not match the ownership ID in the pointer, and continue execution of the program when the ownership ID in the allocated object does match the ownership ID in the pointer. 2. The apparatus of claim 1 , comprising the processor to update the ownership ID in the allocated object by executing a transfer ownership instruction. 3. The apparatus of claim 1 , comprising the processor to set the matching updated ownership ID in the pointer to the allocated object by executing a transfer ownership instruction. 4. The apparatus of claim 3 , wherein the processor implements the transfer ownership instruction by randomizing the ownership ID for the allocated object and generating a new pointer with the updated ownership ID after checking that a pointer as an operand to the transfer ownership instruction has an ownership ID matching the allocated object. 5. The apparatus of claim 1 , comprising the processor to set the matching ownership ID in the pointer to the allocated object by executing an encrypt pointer instruction. 6. The apparatus of claim 1 , wherein the matching ownership ID is stored in a tag field in the pointer. 7. The apparatus of claim 1 , wherein the allocated object is immutable. 8. The apparatus of claim 7 , comprising the processor to set the allocated object as immutable by executing a mark immutable instruction. 9. The apparatus of claim 8 , comprising the processor to set an immutable flag in metadata of the allocated object during executing the mark immutable instruction. 10. The apparatus of claim 7 , comprising the processor to determine if the allocated object is immutable by executing an assert immutable instruction. 11. The apparatus of claim 1 , wherein the allocated object is allocated in the memory to a best-fitting, power-of-two-aligned slot. 12. The apparatus of claim 1 , wherein the ownership ID of the allocated object is stored in metadata inline with the allocated object. 13. The apparatus of claim 1 , comprising the processor to locate the ownership ID in constant time. 14. A method comprising: allocating an object in a memory and setting an ownership identifier (ID) in the allocated object, the allocated object being associated with a first variable in a program; setting a matching ownership ID in a pointer to the allocated object; when the allocated object is accessed during execution of the program by a processor, generating an exception when the ownership ID in the allocated object does not match the ownership ID in the pointer, and continuing execution of the program when the ownership ID in the allocated object does match the ownership ID in the pointer; when the allocated object is associated with a second variable in the program, updating the ownership ID in the allocated object and setting a matching updated ownership ID in the pointer to the allocated object; and when the allocated object is accessed during execution of the program, generating an exception when the ownership ID in the allocated object does not match the ownership ID in the pointer, and continuing execution of the program when the ownership ID in the allocated object does match the ownership ID in the pointer. 15. The method of claim 14 , comprising updating the ownership ID in the allocated object is performed by executing a transfer ownership instruction by the processor. 16. The method of claim 14 , comprising setting the matching updated ownership ID in the pointer to the allocated object by executing a transfer ownership instruction by the processor. 17. The method of claim 16 , wherein the transfer ownership instruction is implemented by randomizing the ownership ID for the allocated object and generating a new pointer with the updated ownership ID after checking that a pointer as an operand to the transfer ownership instruction has an ownership ID matching the allocated object. 18. The method of claim 14 , comprising setting the matching ownership ID in the pointer to the allocated object by executing an encrypt pointer instruction by the processor. 19. The method of claim 14 , wherein the matching ownership ID is stored in a tag field in the pointer. 20. The method of claim 14 , wherein the allocated object is immutable. 21. The method of claim 20 , comprising setting the allocated object as immutable by executing a mark immutable instruction by the processor. 22. The method of claim 21 , comprising setting an immutable flag in metadata of the allocated object during executing the mark immutable instruction. 23. At least one non-transitory machine-readable storage medium comprising instructions that, when executed, cause a processor to at least: allocate an object in a memory and set an ownership identifier (ID) in the allocated object, the allocated object being associated with a first variable in a program; set a matching ownership ID in a pointer to the allocated object; when the allocated object is accessed during execution of the program, generate an exception when the ownership ID in the allocated object does not match the ownership ID in the pointer, and continue execution of the program when the ownership ID in the allocated object does match the ownership ID in the pointer; when the allocated object is associated with a second variable in the program, update the ownership ID in the allocated object and set a matching updated ownership ID in the pointer to the allocated object; and when the allocated object is accessed during execution of the program, generate an exception when the ownership ID in the allocated object does not match the ownership ID in the pointer, and continue execution of the program when the ownership ID in the allocated object does match the ownership ID in the pointer. 24. The at least one non-transitory machine-readable storage medium of claim 23 , comprising instructions for the processor to update the ownership ID in the allocated object by executing a transfer ownership instruction. 25. The at least one non-transitory machine-readable storage medium of claim 23 , comprising instructions for the processor to set the matching updated ownership ID in the pointer to the allocated object by executing a transfer ownership instruction. 26. The at least one non-transitory machine-readable storage medium of claim 25 , comprising instructions to implement the transfer ownership instruction by randomizing the ownership ID for the allocated object and generating a new point
the resource being the memory · CPC title
Providing cryptographic facilities or services · CPC title
in semiconductor storage media, e.g. directly-addressable memories · CPC title
to perform operations on memory · CPC title
by runtime analysis (performance monitoring G06F11/3466) · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.