MFENCE and LFENCE micro-architectural implementation method and system

US9612835B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9612835-B2
Application numberUS-201213619919-A
CountryUS
Kind codeB2
Filing dateSep 14, 2012
Priority dateDec 30, 1999
Publication dateApr 4, 2017
Grant dateApr 4, 2017

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.

A system and method for fencing memory accesses. Memory loads can be fenced, or all memory access can be fenced. The system receives a fencing instruction that separates memory access instructions into older accesses and newer accesses. A buffer within the memory ordering unit is allocated to the instruction. The access instructions newer than the fencing instruction are stalled. The older access instructions are gradually retired. When all older memory accesses are retired, the fencing instruction is dispatched from the buffer.

First claim

Opening claim text (preview).

What is claimed is: 1. A processor comprising: instruction fetch circuitry to fetch a memory fence (MFENCE) instruction, a memory load fence (LFENCE) instruction, and a memory store fence (SFENCE) instruction; instruction decoder circuitry to decode the MFENCE instruction, the LFENCE instruction, and the SFENCE instruction; and memory ordering unit circuitry to: prevent load instructions and store instructions and cache line flush instructions that follow the MFENCE instruction in program order from being dispatched until all load instructions and store instructions and cache line flush instructions previous to the MFENCE instruction in the program order have been performed, not prevent cache line flush instructions that follow the LFENCE instruction in the program order from being dispatched until all cache line flush instructions previous to the LFENCE instruction in the program order have been performed, and fence store instructions that follow the SFENCE instruction in the program order relative to store instructions previous to the SFENCE instruction in the program order, but not prevent cache line flush instructions that follow the SFENCE instruction in the program order from being dispatched until all cache line flush instructions previous to the SFENCE instruction in the program order have been performed. 2. The processor of claim 1 wherein the memory ordering unit circuitry is coupled between the instruction decoder circuitry and a cache. 3. The processor of claim 1 wherein the memory ordering unit circuitry comprises load buffer circuitry and store buffer circuitry. 4. The processor of claim 2 wherein the cache is coupled to cache controller circuitry and the memory ordering unit circuitry is coupled to the cache controller circuitry. 5. The processor of claim 4 wherein the cache is an L1 cache and the cache controller circuitry is L1 cache controller circuitry. 6. The processor of claim 5 wherein the L1 cache controller circuitry includes L1 cache tag array circuitry. 7. The processor of claim 5 wherein the L1 cache controller circuitry is to treat the MFENCE instruction as a NOP. 8. The processor of claim 5 wherein the L1 cache controller circuitry is to treat the LFENCE instruction as a NOP. 9. The processor of claim 1 further comprising reservation station circuitry coupled between the memory ordering unit circuitry and the instruction decoder circuitry. 10. The processor of claim 1 , wherein the memory ordering unit circuity is also to, for multiple memory types, prevent load instructions that follow the MFENCE instruction in the program order from being dispatched until store instructions previous to the MFENCE instruction in the program order have been performed. 11. The processor of claim 1 , wherein the cache line flush instruction comprises a CLFLUSH instruction, and wherein only the MFENCE instruction but neither of the LFENCE or the SFENCE instructions are to provide strong ordering with respect to the CLFLUSH instruction. 12. The processor of claim 1 , wherein the memory ordering unit circuitry is to order the LFENCE instruction with respect to a CPUID instruction. 13. A method performed by a processor comprising: fetching a memory fence (MFENCE) instruction, a memory load fence (LFENCE) instruction, and a memory store fence (SFENCE) instruction; decoding the MFENCE instruction, the LFENCE instruction, and the SFENCE instruction; and preventing load instructions and store instructions that follow the MFENCE instruction in program order from being dispatched until load instructions and store instructions previous to the MFENCE instruction in the program order have been performed, and providing strong ordering with respect to a cache line flush instruction for the MFENCE instruction without providing strong ordering with respect to the cache line flush instruction for the LFENCE instruction, and without providing strong ordering with respect to the cache line flush instruction for the SFENCE instruction which does fence stores. 14. The method of claim 13 wherein the preventing is performed by memory ordering circuitry. 15. The method of claim 14 wherein the memory ordering circuitry comprises load buffer circuitry and store buffer circuitry. 16. The method of claim 14 wherein a cache is coupled to cache controller circuitry and the memory ordering circuitry is coupled to the cache controller circuitry. 17. The method of claim 16 wherein the cache is an L1 cache and the cache controller circuitry is L1 cache controller circuitry. 18. The method of claim 17 wherein the L1 cache controller circuitry includes L1 cache tag array circuitry. 19. The method of claim 17 wherein the L1 cache controller circuitry is to treat the MFENCE instruction as a NOP. 20. The method of claim 17 wherein the L1 cache controller circuitry is to treat the LFENCE instruction as a NOP. 21. The method of claim 14 further comprising reservation station circuitry coupled between the memory ordering circuitry and instruction decoder circuitry performing the decoding. 22. The method of claim 13 , further comprising preventing, for multiple memory types, load instructions that follow the MFENCE instruction in the program order from being dispatched until store instructions previous to the MFENCE instruction in the program order have been performed. 23. A processor comprising: instruction fetch circuitry to fetch a memory fence (MFENCE) instruction and a memory store fence (SFENCE) instruction; instruction decoder circuitry to decode the MFENCE instruction and the SFENCE instruction; and memory ordering unit circuitry to: prevent load instructions and store instructions and cache line flush instructions that follow the MFENCE instruction in program order from being dispatched until all load instructions and store instructions and cache line flush instructions previous to the MFENCE instruction in the program order have been globally observed but not necessarily completed, not prevent cache line flush instructions that follow the SFENCE instruction in the program order from being dispatched until all cache line flush instructions previous to the SFENCE instruction in the program order have been performed. 24. The processor of claim 23 further comprising an L1 cache controller that is to treat the MFENCE instruction as a NOP.

Assignees

Inventors

Classifications

  • Physics · mapped topic

  • Maintaining memory consistency · CPC title

  • Physics · mapped topic

  • LOAD or STORE instructions; Clear instruction · CPC title

  • Prefetch instructions; cache control instructions · 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 US9612835B2 cover?
A system and method for fencing memory accesses. Memory loads can be fenced, or all memory access can be fenced. The system receives a fencing instruction that separates memory access instructions into older accesses and newer accesses. A buffer within the memory ordering unit is allocated to the instruction. The access instructions newer than the fencing instruction are stalled. The older acce…
Who is the assignee on this patent?
Palanca Salvador, Fischer Stephen A, Maiyuran Subramaniam, and 2 more
What technology area does this patent fall under?
Primary CPC classification G06F9/3836. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 04 2017 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).