64-bit virtual addresses having metadata bit(s) and canonicality check that does not fail due to non-canonical values of metadata bit(s)

US12032485B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12032485-B2
Application numberUS-202017133570-A
CountryUS
Kind codeB2
Filing dateDec 23, 2020
Priority dateDec 23, 2020
Publication dateJul 9, 2024
Grant dateJul 9, 2024

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.

Techniques to allow use of metadata in unused bits of virtual addresses are described. A processor of an aspect includes a decode circuit to decode a memory access instruction. The instruction to indicate one or more memory address operands that are to have address generation information and metadata. An execution circuit coupled with the decode circuit to generate a 64-bit virtual address based on the one or more memory address operands. The 64-bit virtual address having a bit 63 , an X-bit address field starting at a bit 0 to store an address generated from the address generation information, and one or more metadata bits to store the metadata. The execution circuit also to perform a canonicality check on the 64-bit virtual address that does not fail due to non-canonical values of the metadata stored in the one or more metadata bits. Other processors, methods, systems, and instructions are disclosed.

First claim

Opening claim text (preview).

What is claimed is: 1. A processor comprising: a decode circuit to decode a memory access instruction, the memory access instruction to indicate one or more memory address operands, the one or more memory address operands to have address generation information and metadata; and an execution circuit coupled with the decode circuit, the execution circuit to: generate a 64-bit virtual address based on the one or more memory address operands, the 64-bit virtual address having a bit 63 to indicate whether the 64-bit virtual address corresponds to user level or supervisor level, an X-bit address field starting at a bit 0 to store an address generated from the address generation information, and one or more metadata bits to store the metadata; and perform a canonicality check on the 64-bit virtual address that does not fail due to non-canonical values of the metadata stored in the one or more metadata bits. 2. The processor of claim 1 , wherein the one or more metadata bits comprise a metadata field from a bit 62 to a bit X of the 64-bit virtual address. 3. The processor of claim 1 , wherein the execution circuit is to generate the 64-bit virtual address having more than eight metadata bits. 4. The processor of claim 1 , further comprising one or more registers to store one or more control bits to control one of a plurality of different possible numbers of the one or more metadata bits. 5. The processor of claim 4 , wherein the plurality of different possible numbers of the one or more metadata bits include six metadata bits and fifteen metadata bits. 6. The processor of claim 1 , wherein the execution circuit to perform the canonicality check is to check at least the bit 63 and a bit (X- 1 ) for canonicality but is not to check the one or more metadata bits for canonicality. 7. The processor of claim 1 , wherein the execution circuit is not to check any of bits [ 62 :X] for canonicality. 8. The processor of claim 1 , wherein the execution circuit is to make the one or more metadata bits canonical prior to the performance of the canonicality check and subsequent address translation. 9. The processor of claim 1 , further comprising one or more registers to store a user-level metadata bits control to control a number of the one or more metadata bits when the bit 63 is zero irrespective of a current processor privilege level. 10. The processor of claim 1 , further comprising one or more registers to store user-level metadata bits control to control a number of the one or more metadata bits for the user-level, wherein the number of the one or more metadata bits for the user-level is allowed to be more than (64-X)-bits, even when the processor is currently configured to use an X-bit address width. 11. The processor of claim 1 , further comprising one or more registers to store user-level metadata bits control to control a number of the one or more metadata bits for the user-level, wherein the number of the one or more metadata bits for the user-level is allowed to be more than 6-bits, even when the processor is currently configured to use a 57-bit address width. 12. The processor of claim 1 , wherein the execution circuit comprises: address generation circuitry to generate the 64-bit virtual address; circuitry to prevent the canonicality check from failing due to the non-canonical values of the metadata stored in the one or more metadata bits; and canonicality check circuitry to perform the canonicality check on the 64-bit virtual address. 13. A method performed by a processor, the method comprising: decoding a memory access instruction, the memory access instruction indicating one or more memory address operands, the one or more memory address operands having address generation information and metadata; generating a 64-bit virtual address based on the one or more memory address operands, the 64-bit virtual address having a bit 63 to indicate whether the 64-bit virtual address corresponds to user level or supervisor level, an X-bit address field starting at a bit 0 storing an address generated from the address generation information, and one or more metadata bits storing the metadata; and performing a canonicality check on the 64-bit virtual address that does not fail due to non-canonical values of the metadata stored in the one or more metadata bits. 14. The method of claim 13 , wherein the one or more metadata bits comprise a metadata field from a bit 62 to a bit X of the 64-bit virtual address. 15. The method of claim 13 , wherein the one or more metadata bits comprises either one of 6 bits or 15 bits. 16. The method of claim 13 , wherein to perform the canonicality check includes to check at least the bit 63 and a bit (X- 1 ) for canonicality, but not to check the one or more metadata bits for canonicality. 17. The method of claim 13 , wherein to perform the canonicality check includes to check at least the bit 63 and a bit (X- 1 ) for canonicality but not to check any of bits [ 62 :X] for canonicality. 18. The method of claim 13 , further comprising accessing a user-level metadata bits control to determine a number of the one or more metadata bits when the bit 63 is zero irrespective of a current processor privilege level. 19. The method of claim 13 , further comprising accessing user-level metadata bits control to determine a number of the one or more metadata bits for the user-level, wherein the number of the one or more metadata bits for the user-level is allowed to be more than (64-X)-bits, even when the processor is currently configured to use an X-bit address width. 20. A processor comprising: a model specific register (MSR) having a bit position to store a first bit value; a code segment (CS) register having a bit position to store a second bit value; and circuitry to perform a canonicality check on a virtual address having bit positions 56 : 0 to store an address, wherein, if the first bit value and the second bit value are set to binary one, a third bit value is set to binary one, and the virtual address is used for a data access, the canonicality check on the virtual address will not fail due to bits stored in bit positions 62 : 57 of the virtual address being non-canonical. 21. The processor of claim 20 , wherein the bits stored in the bit positions 62 : 57 are to be omitted from the canonicality check. 22. The processor of claim 20 , wherein the circuitry to perform the canonicality check on the virtual address is to check at least bits 56 : 48 for canonicality when 4-level paging is active. 23. The processor of claim 20 , wherein the MSR is an Extended Feature Enable Register (EFER). 24. The processor of claim 20 , wherein the MSR is an Extended Feature Enable Register (EFER) having number 0×C0000080. 25. The processor of claim 20 , wherein the bit position of the code segment register is a CS.L bit position. 26. The processor of claim 25 , wherein the bit position of the model specific register is an EFER.LMA bit position. 27. The processor of claim 20 , wherein, if the first bit value, the second bit value, and the third bit value are set to binary one, the canonicality check on the virtual address will fail due to the bits stored in the bit positions 62 : 57 of the virtual address being non-canonical when the virtual address is used for a code fetch. 28. The processor of claim 20 , wherein, if the first bit va

Assignees

Inventors

Classifications

  • in a virtual system, e.g. with translation means · CPC title

  • Invalidation · CPC title

  • Virtual address space management · CPC title

  • in a memory management context, e.g. virtual memory or cache management (memory management G06F12/00; testing of static memory units G11C29/00) · CPC title

  • LOAD or STORE instructions; Clear instruction · 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 US12032485B2 cover?
Techniques to allow use of metadata in unused bits of virtual addresses are described. A processor of an aspect includes a decode circuit to decode a memory access instruction. The instruction to indicate one or more memory address operands that are to have address generation information and metadata. An execution circuit coupled with the decode circuit to generate a 64-bit virtual address base…
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06F12/1027. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 09 2024 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).