Patent ID: 8868887

Claim:
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.