Programmable event driven yield mechanism which may activate other threads

US9910796B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9910796-B2
Application numberUS-201313844343-A
CountryUS
Kind codeB2
Filing dateMar 15, 2013
Priority dateFeb 19, 2003
Publication dateMar 6, 2018
Grant dateMar 6, 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.

Method, apparatus, and program means for a programmable event driven yield mechanism that may activate other threads. In one embodiment, an apparatus includes execution resources to execute a plurality of instructions and a monitor to detect a condition indicating a low level of progress. The monitor can disrupt processing of a program by transferring to a handler in response to detecting the condition indicating a low level of progress. In another embodiment, thread switch logic may be coupled to a plurality of event monitors which monitor events within the multithreading execution logic. The thread switch logic switches threads based at least partially on a programmable condition of one or more of the performance monitors.

First claim

Opening claim text (preview).

What is claimed is: 1. An apparatus comprising: execution resources to execute a plurality of instructions; a monitor to detect a low progress indicating a condition of said execution resources, said monitor to selectively disrupt processing of at least one program by transferring to a handler in response to detecting said low progress indicating condition, wherein the monitor logic comprises event storage logic to indicate when one of a plurality of events occur, the low progress indicating condition to include a combination of the plurality of events, wherein the event storage logic to include a plurality of event counters, each of the plurality of event counters to hold a count value corresponding to a number of events of the plurality of events that have occurred, wherein the low progress indicating condition occurs when a certain value of the count value has occurred; a virtual thread selector to select a virtual thread from a plurality of threads and swap context information for a selected virtual thread in response to the monitor logic detecting the low progress indicating condition during the execution logic executing the program; and a processor thread selector to select between the selected virtual thread and another thread. 2. The apparatus of claim 1 , wherein a physical thread context storage to maintain a plurality of thread contexts usable by the execution resources and wherein said apparatus caches virtual thread context data in one of a set consisting of a cache location, a register location, or other storage location. 3. The apparatus of claim 1 , wherein context information is to be cached for a plurality of virtual threads, wherein context information for a selected one of the plurality of virtual threads is switched to said physical thread context storage before active execution of said selected one of the plurality of k virtual threads. 4. The apparatus of claim 3 , wherein a set of context data for one of said plurality of virtual threads is to be cached in a storage location, wherein context information for a selected one of the plurality of k virtual threads must be switched to said physical thread context storage before active execution of said selected one of the plurality of virtual threads. 5. The apparatus of claim 1 , wherein the monitor logic further comprises mask logic corresponding to the event storage logic to be updatable to indicate the combination of the plurality of events to occur from the event storage logic to define the low progress indicating condition. 6. The apparatus of claim 3 , wherein said monitor logic is also capable of being reprogrammed by the at least one of said plurality of virtual threads to be switched into said physical thread context storage after the at least one of said plurality of virtual threads is switched into said physical thread context storage to define an additional condition, and wherein the virtual thread selector is further to cause context information for an additional virtual thread of said plurality of virtual threads to be switched into said physical context storage in response to the monitor logic detecting the additional condition. 7. The apparatus of claim 3 wherein the low progress indicating condition includes a yield type instruction is to cause a thread switch between the plurality of virtual threads. 8. A method comprising: executing a plurality of active threads in a multithreaded processor, wherein a program associated with at least one of the active threads of the plurality of active threads defines a low progress indicating condition in hardware during executing the plurality of active threads, wherein the low progress indicating condition includes a combination of the plurality of events; executing to a first helper thread of a plurality of helper threads in response to the hardware detecting the low progress indicating condition, wherein the low progress indicating condition occurs when a certain value of the count value has occurred in one of a plurality of event counters, each of the plurality of event counters to hold a count value corresponding to a number of events of the plurality of events that have occurred; executing the first helper thread concurrently with at least one active thread after switching the first helper thread into the thread slot, wherein the first helper thread defines an additional trigger condition in the hardware during executing the first helper thread; and executing a second helper thread of the plurality of helper threads in response to the hardware detecting the additional trigger condition. 9. The method of claim 8 wherein after switching the second helper thread into the another thread slot, the at least one of the active threads associated with the program, the first helper thread, and the second helper thread are concurrently executing as active threads in the plurality of thread slots, and wherein the trigger condition is selected from a group consisting of a combination of hardware events, a hardware latency event, a asynchronous yield-type instruction, and a synchronous execution-stopping instruction.

Assignees

Inventors

Classifications

  • Monitoring involving counting · CPC title

  • Monitoring specific for caches · CPC title

  • by program, e.g. task dispatcher, supervisor, operating system · CPC title

  • Thread control instructions · CPC title

  • Circuit details, i.e. tracer hardware · 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 US9910796B2 cover?
Method, apparatus, and program means for a programmable event driven yield mechanism that may activate other threads. In one embodiment, an apparatus includes execution resources to execute a plurality of instructions and a monitor to detect a condition indicating a low level of progress. The monitor can disrupt processing of a program by transferring to a handler in response to detecting the c…
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06F13/24. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 06 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).