Hardware apparatuses and methods for memory corruption detection

US11645135B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11645135-B2
Application numberUS-202017020663-A
CountryUS
Kind codeB2
Filing dateSep 14, 2020
Priority dateDec 21, 2015
Publication dateMay 9, 2023
Grant dateMay 9, 2023

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Methods and apparatuses relating to memory corruption detection are described. In one embodiment, a hardware processor includes an execution unit to execute an instruction to request access to a block of a memory through a pointer to the block of the memory, and a memory management unit to allow access to the block of the memory when a memory corruption detection value in the pointer is validated with a memory corruption detection value in the memory for the block, wherein a position of the memory corruption detection value in the pointer is selectable between a first location and a second, different location.

First claim

Opening claim text (preview).

What is claimed is: 1. A processor comprising: decode circuitry to decode a load instruction, the load instruction to operate on a 64-bit pointer, the 64-bit pointer comprising an address to a 128-bit block of data in memory and a 4-bit value in bits [59:56]; and circuitry coupled with the decode circuitry, the circuitry, based on decode of the load instruction by the decode circuitry, to: determine whether the 4-bit value from the 64-bit pointer matches a 4-bit value from the memory corresponding to the 128-bit block of data; load the 128-bit block of data from the memory when the 4-bit value from the 64-bit pointer matches the 4-bit value from the memory; and generate a fault when the 4-bit value from the 64-bit pointer does not match the 4-bit value from the memory. 2. The processor of claim 1 , wherein the 64-bit pointer is to indicate whether the circuitry is to determine whether the 4-bit value from the 64-bit pointer matches the 4-bit value from the memory corresponding to the 128-bit block of data. 3. The processor of claim 1 , wherein a value in the 64-bit pointer is to indicate whether the circuitry is to determine whether the 4-bit value from the 64-bit pointer matches the 4-bit value from the memory corresponding to the 128-bit block of data. 4. The processor of claim 1 , wherein the processor is to access the 4-bit value from the memory with an address that lacks the 4-bit value from the 64-bit pointer. 5. The processor of claim 1 , wherein the processor is to access the 4-bit value from the memory with an address that has either all zeroes or all ones in bits [59:56]. 6. The processor of claim 1 , wherein, in addition to the 4-bit value from the bits [59:56], the processor is also to protect the 64-bit pointer based on another value from the 64-bit pointer. 7. The processor of claim 1 , wherein the 4-bit value from the memory is from a table in the memory, the table to have a plurality of 4-bit values respectively corresponding to different ones of a plurality of 128-bit blocks of data in the memory. 8. The processor of claim 7 , wherein the table is stored separately from the 128-bit blocks of data. 9. The processor of claim 1 , wherein the 4-bit value from the 64-bit pointer is a memory corruption detection (MCD) value. 10. The processor of claim 1 , further comprising a register to control whether the circuitry is to determine whether the 4-bit value from the 64-bit pointer matches a 4-bit value from the memory corresponding to the 128-bit block of data. 11. The processor of claim 1 , wherein the processor is a general-purpose CPU core, the general-purpose CPU core further comprising: a branch prediction circuitry; a register rename circuitry; and scheduler circuitry. 12. The processor of claim 1 , wherein the processor is a reduced instruction set computing (RISC) processor. 13. A method comprising: decoding a load instruction, the load instruction operating on a 64-bit pointer, the 64-bit pointer comprising an address to a 128-bit block of data in memory and a 4-bit value in bits [59:56]; and based on the decode of the load instruction: determining whether the 4-bit value from the 64-bit pointer matches a 4-bit value from the memory corresponding to the 128-bit block of data; loading the 128-bit block of data from the memory when the 4-bit value from the 64-bit pointer matches the 4-bit value from the memory; and generating a fault when the 4-bit value from the 64-bit pointer does not match the 4-bit value from the memory. 14. The method of claim 13 , further comprising determining from the 64-bit pointer whether to perform said determining whether the 4-bit value from the 64-bit pointer matches the 4-bit value from the memory corresponding to the 128-bit block of data. 15. The method of claim 13 , further comprising determining from a value in the 64-bit pointer whether to perform said determining whether the 4-bit value from the 64-bit pointer matches the 4-bit value from the memory corresponding to the 128-bit block of data. 16. The method of claim 13 , further comprising accessing the 4-bit value from the memory with an address that lacks the 4-bit value from the 64-bit pointer. 17. The method of claim 13 , further comprising accessing the 4-bit value from the memory with an address that has either all zeroes or all ones in bits [59:56]. 18. The method of claim 13 , further comprising, in addition to protecting the 64-bit pointer with the 4-bit value from the bits [59:56], also protecting the 64-bit pointer based on another value from the 64-bit pointer. 19. The method of claim 13 , further comprising accessing the 4-bit value from a table in the memory, the table having a plurality of 4-bit values respectively corresponding to different ones of a plurality of 128-bit blocks of data in the memory, and wherein the table is stored separately from the 128-bit blocks of data. 20. A processor comprising: decode circuitry to decode a load instruction, the load instruction to operate on a 64-bit pointer, the 64-bit pointer comprising an address to a 128-bit block of data in memory and a 4-bit value in bits [59:56]; circuitry coupled with the decode circuitry, the circuitry, based on decode of the load instruction by the decode circuitry, to: determine from the 64-bit pointer that the circuitry is to determine whether the 4-bit value from the 64-bit pointer matches a 4-bit value corresponding to the 128-bit block of data from the memory; access the 4-bit value from the memory with an address that lacks the 4-bit value from the 64-bit pointer; determine whether the 4-bit value from the 64-bit pointer matches the 4-bit value from the memory; load the 128-bit block of data from the memory when the 4-bit value from the 64-bit pointer matches the 4-bit value from the memory; and generate a fault when the 4-bit value from the 64-bit pointer does not match the 4-bit value from the memory. 21. The processor of claim 20 , wherein the circuitry is to determine from a value in the 64-bit pointer that the circuitry is to determine whether the 4-bit value from the 64-bit pointer matches the 4-bit value from the memory. 22. The processor of claim 21 , wherein the circuitry is to access the 4-bit value from a table in the memory, the table to have a plurality of 4-bit values respectively corresponding to different ones of a plurality of 128-bit blocks of data in the memory, and wherein the table is stored separately from the 128-bit blocks of data. 23. The processor of claim 21 , wherein, in addition to protecting the 64-bit pointer based on the 4-bit value from the bits [59:56], the processor is also to protect the 64-bit pointer based on another value from the 64-bit pointer. 24. A computer system comprising: a dynamic random access memory (DRAM); and a processor coupled with the DRAM, the processor comprising: decode circuitry to decode a load instruction, the load instruction to operate on a 64-bit pointer, the 64-bit pointer comprising an address to a 128-bit block of data in memory and a 4-bit value in bits [59:56]; and circuitry coupled with the decode circuitry, the circuitry, based on decode of the load instruction by the decode circuitry, to: determine whether the 4-bit value from the 64-bit pointer matches a 4-bit value from the memory corresponding to the 128-bit block of data; load the 128-bit block of data from the memory when the 4-bit value from the 64-bit pointer matches the 4-bit value from

Assignees

Inventors

Classifications

  • Concurrent instruction execution, e.g. pipeline or look ahead · CPC title

  • to assure secure storage of data (address-based protection against unauthorised use of memory G06F12/14; record carriers for use with machines and with at least a part designed to carry digital markings G06K19/00) · CPC title

  • Reliability improvement, data loss prevention, degraded operation etc · CPC title

  • Address space sharing · CPC title

  • Security improvement · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11645135B2 cover?
Methods and apparatuses relating to memory corruption detection are described. In one embodiment, a hardware processor includes an execution unit to execute an instruction to request access to a block of a memory through a pointer to the block of the memory, and a memory management unit to allow access to the block of the memory when a memory corruption detection value in the pointer is validat…
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06F11/0751. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 09 2023 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).