Flushing control within a multi-threaded processor

US10049043B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10049043-B2
Application numberUS-201615152775-A
CountryUS
Kind codeB2
Filing dateMay 12, 2016
Priority dateJun 2, 2015
Publication dateAug 14, 2018
Grant dateAug 14, 2018

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 apparatus 2 performs multi-threaded processing using the processing pipeline 6, 8, 10, 12, 14, 16, 18. Flush control circuitry 30 is responsive to multiple different types of flush trigger. Different types of flush trigger result in different sets of state being flushed for the thread which resulted in the flush trigger with state for other thread not being flushed. For example, a relatively low latency stall may result in flushing back to a first flush point whereas a longer latency stall results in flushing back to a second flush point and the loss of more state data. The data flushed back to the first flushed point may be a subset of the data flushed back to the second flush point.

First claim

Opening claim text (preview).

I claim: 1. Apparatus for processing data comprising: processing circuitry to execute in parallel processing operations corresponding to a plurality of threads of processing operations; and flush control circuitry responsive to detection of a flush trigger for a given processing thread among said plurality of threads to control flushing of state for said given thread from said processing circuitry; and a hierarchical memory having a plurality of memory levels, wherein: a first type of flush trigger corresponds to an access to a first memory level within said plurality of memory levels; a second type of flush trigger corresponds to an access to a second memory level within said plurality of memory levels and different from said first memory level; when said flush trigger is said first type of flush trigger, said state is a first set of state; and when said flush trigger is said second type of flush trigger, said state is a second set of state different from said first set of state. 2. Apparatus as claimed in claim 1 , wherein said first set of state is a proper subset of said second set of state. 3. Apparatus as claimed in claim 1 , wherein said flushing of state for said given processing thread permits said processing circuitry to process additional processing operations of one or more other threads among said plurality of thread and different from said given thread. 4. Apparatus as claimed in claim 1 , wherein said hierarchical memory comprises first level cache memory, second level cache memory and further memory, said first type of flush trigger corresponds to a miss within said first level cache memory resulting in an access to said second level of cache memory and said second type of flush trigger corresponds to a miss within said second level cache memory resulting in an access to said further memory. 5. Apparatus as claimed in claim 1 , wherein said first level memory has a first access latency, said second level memory has a second access latency, said first access latency being less than said second access latency. 6. Apparatus as claimed in claim 1 , wherein said processing circuitry comprises first instruction storage circuitry to store first instruction data for said given thread and second instruction storage circuitry to store second instruction data for said given thread and corresponding to first instruction data for said given thread read from said first instruction storage circuitry, said second set of state includes said second instruction data and said first set of state excludes said second instruction data. 7. Apparatus as claimed in claim 6 , wherein said first instruction storage circuitry comprises an instruction cache. 8. Apparatus as claimed in claim 6 , wherein said second instruction storage circuitry comprises instruction queue circuitry to store instruction data fetched following program flow within said plurality of threads. 9. Apparatus as claimed in claim 8 , wherein said second type of flush trigger for said given thread triggers flushing of instruction data for said given thread from said instruction queue and said first type of flush trigger for said given thread triggers leaves instruction data for said given thread stored in said instruction queue. 10. Apparatus as claimed in claim 6 , comprising branch prediction circuitry to predict program flow within said plurality of treads and wherein said second instruction data is stored in said second instruction storage in dependence upon branch prediction operations performed by said branch prediction circuitry. 11. Apparatus as claimed in claim 6 , wherein comprising instruction pre-processing circuitry to perform one or more pre-processing operations upon said first instruction data read from said first instruction storage circuitry to form said second instruction data to be stored within said second instruction storage circuitry. 12. Apparatus as claimed in claim 1 , wherein said processing circuitry comprises at least one execution pipeline, said first set of state and said second set of state both including pipeline state data corresponding to partial execution of processing operations of said given thread by said one or more processing pipelines. 13. Apparatus as claimed claim 1 , wherein said processing circuitry is out-of-order processing circuitry to control execution of processing operations in an order other than following a program flow order and said flushing of state corresponding to state in respect of processing operations following a given flush triggering instruction within said program flow order with instructions preceding said given flushing triggering instruction within said program flow order permitted to complete. 14. Apparatus as claimed in claim 1 , wherein said processing circuitry is in-order processing circuitry to control execution of processing operations in an order following a program flow order and said flushing of state corresponding to state in respect of processing operations following a given flush triggering instruction within said program flow order with instructions preceding said given flushing triggering instruction within said program flow order permitted to complete. 15. Apparatus as claimed in claim 1 , wherein said first type of flush trigger corresponds to detection of execution of a long-latency processing operation associated with a long execution latency. 16. Apparatus as claimed in claim 15 , wherein said long-latency processing operation is one of: an operation processed by an accelerator; an operation processed by a co-processor; a system instruction; and a long latency instruction. 17. Apparatus for processing data, comprising: processing means for executing in parallel processing operations corresponding to a plurality of threads of processing operations; and flush control means, responsive to detection of a flush trigger for a given processing thread among said plurality of threads, for controlling flushing of state for said given thread from said processing circuitry; and a hierarchical memory means having a plurality of memory levels, wherein: a first type of flush trigger corresponds to an access to a first memory level within said plurality of memory levels; a second type of flush trigger corresponds to an access to a second memory level within said plurality of memory levels and different from said first memory level; when said flush trigger is said first type of flush trigger, said state is a first set of state; and when said flush trigger is said second type of flush trigger, said state is a second set of state different from said first set of state. 18. A method of processing data comprising: executing in parallel processing operations corresponding to a plurality of threads of processing operations; and in response to detection of a flush trigger for a given processing thread among said plurality of threads, controlling flushing of state for said given thread from said processing circuitry, wherein: a first type of flush trigger corresponds to an access to a first memory level within a plurality of memory levels of a hierarchical memory; a second type of flush trigger corresponds to an access to a second memory level within said plurality of memory levels and different from said first memory level; when said flush trigger is said first type of flush trigger, said state is a first set of state; and when said flush trigger is said second type of flush trigger, said state is a second set of state different from said first set of state.

Assignees

Inventors

Classifications

  • Details of cache specific to multiprocessor cache arrangements · CPC title

  • Operand accessing · CPC title

  • with multilevel cache hierarchies · CPC title

  • with main memory updating (G06F12/0806 takes precedence) · CPC title

  • Multiprogramming arrangements · 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 US10049043B2 cover?
A data processing apparatus 2 performs multi-threaded processing using the processing pipeline 6, 8, 10, 12, 14, 16, 18. Flush control circuitry 30 is responsive to multiple different types of flush trigger. Different types of flush trigger result in different sets of state being flushed for the thread which resulted in the flush trigger with state for other thread not being flushed. For exampl…
Who is the assignee on this patent?
Advanced Risc Mach Ltd
What technology area does this patent fall under?
Primary CPC classification G06F12/0804. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 14 2018 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).