Secure speculative instruction execution in a data processing system

US2019310941A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2019310941-A1
Application numberUS-201815945047-A
CountryUS
Kind codeA1
Filing dateApr 4, 2018
Priority dateApr 4, 2018
Publication dateOct 10, 2019
Grant date

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 data processing system includes a processor, a cache memory, a speculative cache memory, and a control circuit. The processor is for executing instructions. The cache memory is coupled to the processor and is for storing the instructions and related data. A speculative cache is coupled to the processor and is for storing only speculative instructions and related data. The control circuit is coupled to the processor, to the cache memory, and to the speculative cache. The control circuit is for causing speculative instructions to be stored in the speculative cache in response to receiving an indication from the processor. Also, a method is provided for speculative execution in the data processing system.

First claim

Opening claim text (preview).

What is claimed is: 1 . A method for speculative execution in a data processing system, the method comprising: receiving an instruction to be executed by a processor of the data processing system, wherein the instruction is for accessing a memory for reading or writing data according to the instruction; determining that the access is speculative; determining that the data is not in a cache memory of the data processing system; retrieving the data from a main memory; storing the data in a speculative cache, wherein the speculative cache is for storing only speculative instructions and data related to the speculative instructions; and executing the speculative instruction. 2 . The method of claim 1 , wherein accessing a memory for reading or writing further comprises accessing the memory for reading data, and further comprising transferring the data to a register. 3 . The method of claim 1 , wherein accessing a memory for reading or writing further comprises accessing the memory for writing data, and further comprising overwriting the data in the speculative cache by new data from a register. 4 . The method of claim 1 , further comprising retiring the speculative instruction. 5 . The method of claim 1 , further comprising: retiring the speculative instruction; determining that there are changes to the speculative cache; and transferring data from the speculative cache to the cache memory. 6 . The method of claim 1 , wherein accessing a memory for reading or writing further comprises accessing the memory for reading data, and wherein determining that the data is not in a cache memory further comprises determining that the data is no the cache memory or the speculative cache. 7 . The method of claim 1 , further comprising preventing write operations to the cache memory during the speculative execution. 8 . A data processing system comprising: a processor for executing instructions; a cache memory, coupled to the processor, for storing the instructions and related data; a speculative cache, coupled to the processor, for storing only speculative instructions and related data; and a control circuit, coupled to the processor, to the cache memory, and to the speculative cache, the control circuit for causing the speculative instructions to be stored in the speculative cache in response to receiving an indication from the processor. 9 . The data processing system of claim 8 , wherein the processor further comprises a branch predictor, wherein speculative execution is performed in response to a prediction from the branch predictor regarding a speculative instruction. 10 . The data processing system of claim 9 , wherein an instruction retirement circuit of the processor retires the speculative instruction in response to the prediction being determined to be correct. 11 . The data processing system of claim 8 , wherein speculative cache and the cache memory are separate portions of the same memory array. 12 . The data processing system of claim 8 , wherein the processor further comprises an instruction retirement circuit for retiring a speculative instruction after the speculative instruction is executed. 13 . The data processing system of claim 8 , wherein the control circuit prevents write operations to the cache memory during the speculative execution and only allows write operations to the speculative cache during the speculative execution. 14 . A method for speculative execution in a data processing system, the method comprising: receiving an instruction to be executed by the processor, wherein the instruction is for accessing a memory for reading or writing data according to the instruction; determining that the access is speculative; preventing write operations to the cache memory during the speculative execution; determining that the data is not in a cache memory of the data processing system; retrieving the data from a main memory; storing the data in a speculative cache, wherein the speculative cache is for storing only speculative instructions and data related to the speculative instructions; and executing the speculative instruction. 15 . The method of claim 14 , wherein the instruction is for a read access, and wherein the data is transferred to a register of the processor. 16 . The method of claim 14 , wherein the instruction is for a write access for writing data from a register of the processor to the speculative cache, and further comprising overwriting data in the speculative cache with the data from the register, and marking the data in the speculative cache as dirty. 17 . The method of claim 14 , further comprising retiring the speculative instruction. 18 . The method of claim 17 , further comprising: determining that there are changes to the data in the speculative cache; and transferring data from the speculative cache to the cache memory. 19 . The method of claim 14 , wherein accessing a memory for reading or writing further comprises accessing the memory for reading data, and wherein determining that the data is not in a cache memory further comprises determining that the data is not in the cache memory or the speculative cache. 20 . The method of claim 14 , wherein determining that the data is not in a cache memory further comprises determining that the data is not in the cache memory or the speculative cache.

Assignees

Inventors

Classifications

  • Operand accessing · CPC title

  • to assure secure computing or processing of information · CPC title

  • using speculative control · CPC title

  • Multiple simultaneous or quasi-simultaneous cache accessing · CPC title

  • G06F9/3842Primary

    Speculative instruction execution · 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 US2019310941A1 cover?
A data processing system includes a processor, a cache memory, a speculative cache memory, and a control circuit. The processor is for executing instructions. The cache memory is coupled to the processor and is for storing the instructions and related data. A speculative cache is coupled to the processor and is for storing only speculative instructions and related data. The control circuit is c…
Who is the assignee on this patent?
Nxp Bv
What technology area does this patent fall under?
Primary CPC classification G06F12/0844. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Oct 10 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).