发明名称 |
Programmable event driven yield mechanism which may activate other threads |
摘要 |
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. |
申请公布号 |
US8868887(B2) |
申请公布日期 |
2014.10.21 |
申请号 |
US200410982261 |
申请日期 |
2004.11.05 |
申请人 |
Intel Corporation |
发明人 |
Wang Hong;Hammarlund Per;Zou Xiang;Shen John;Tian Xinmin;Girkar Milind;Wang Perry;Desai Piyush |
分类号 |
G06F9/00 |
主分类号 |
G06F9/00 |
代理机构 |
Blakely, Sokoloff, Taylor & Zafman LLP |
代理人 |
Blakely, Sokoloff, Taylor & Zafman LLP |
主权项 |
1. A multithreaded processor additionally supporting virtual multithreading, the processor comprising:
execution logic to execute a program; monitor logic to be updated by the program to define a trigger condition, wherein the monitor logic comprises event storage logic to indicate if a plurality of events have occurred, the trigger condition includes a combination of the plurality of events, wherein the event storage logic includes 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 trigger condition occurs when a certain value of the count value has occurred; physical thread context storage to store context information for a plurality of active threads; virtual thread context storage to store context information for a plurality of k virtual threads; and a virtual thread selector coupled to the virtual thread context storage and coupled to the physical thread context storage, said virtual thread selector to select a virtual thread from a plurality of threads and swap context information for the selected virtual thread in response to the monitor logic detecting the trigger condition during the execution logic executing the program; and a processor thread selector to select between the selected virtual thread and another thread, wherein the processor thread selector and virtual thread selector are not the same entity. |
地址 |
Santa Clara CA US |