Method and apparatus for compiling optimization using activation recalculation
US-2024303054-A1 · Sep 12, 2024 · US
US9612835B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9612835-B2 |
| Application number | US-201213619919-A |
| Country | US |
| Kind code | B2 |
| Filing date | Sep 14, 2012 |
| Priority date | Dec 30, 1999 |
| Publication date | Apr 4, 2017 |
| Grant date | Apr 4, 2017 |
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.
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.
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.
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
Related publications grouped by family.
Answers are generated from the same data shown on this page.