US2008034190A1PendingUtilityA1

Method and apparatus for suspending execution of a thread until a specified memory access occurs

Assignee: RODGERS DIONPriority: Dec 31, 2001Filed: Aug 8, 2007Published: Feb 7, 2008
Est. expiryDec 31, 2021(expired)· nominal 20-yr term from priority
G06F 9/4843G06F 9/4812G06F 9/30079G06F 9/3854G06F 9/3851G06F 9/3009G06F 9/38
51
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Techniques for suspending execution of a thread until a specified memory access occurs. In one embodiment, a processor includes multiple execution units capable of executing multiple threads. A first thread includes an instruction that specifies a monitor address. Suspend logic suspends execution of the first thread, and a monitor causes resumption of the first thread in response to an access to the specified monitor address.

Claims

exact text as granted — not AI-modified
1 - 69 . (canceled)  
   
   
       70 . A processor comprising: 
 a plurality of execution units to execute a plurality of threads;    suspend logic to suspend execution of a first thread of the plurality of threads upon execution of a first instruction within the first thread while at least one of the plurality of threads remains active; and    a memory access monitor to signal resumption of the first thread in response to a memory access to a specified memory location.    
   
   
       71 . The processor of  claim 70  wherein the memory access monitor is to cause resumption of the first thread in response to events that cause a translation look-aside buffer to be flushed.  
   
   
       72 . The processor of  claim 70  wherein the memory access monitor is to cause resumption of the first thread in response to a write to a predetermined control register.  
   
   
       73 . The processor of  claim 72  further comprising resume logic receive signals to cause resumption in the execution of the first thread.  
   
   
       74 . The processor of  claim 70  wherein the suspend logic further sets a monitor address as the specified memory location in response to execution of a second instruction in the first thread so that resumption of the first thread occurs only in response to the memory access to the monitor address.  
   
   
       75 . The processor of  claim 70  wherein the suspend logic is only to suspend the first thread in response to a write access to the specified memory location.  
   
   
       76 . The processor of  claim 70  wherein the suspend logic is only to suspend the first thread if the memory access is a write access to a selected memory.  
   
   
       77 . The processor of  claim 76  wherein the selected memory type is a write-back type of memory.  
   
   
       78 . The processor of  claim 70  further comprising an instruction buffer adapted as either a single partition dedicated to one thread or multiple partitions to be used by the plurality of threads.  
   
   
       79 . The processor of  claim 74  wherein the processor is capable of out-of-order execution and wherein the second instruction is followed by a store fence that ensures all store operations are processed at the time the first instruction completes execution.  
   
   
       80 . The processor of  claim 74  wherein the second instruction is an instruction having only implicit operands.  
   
   
       81 . The processor of  claim 70  further comprising: 
 coherency logic to perform a read line transaction in conjunction with suspending the first thread.    
   
   
       82 . The processor of  claim 81  wherein the coherency logic is to perform a cache line flush to flush internal caches in conjunction with suspending the first thread.  
   
   
       83 . A processor comprising: 
 a front end to receive a first instruction and a second instruction, the first instruction having an implicit operand from a predetermined register indicating a monitor address;    execution resources to execute the first instruction and the second instruction and to enter a first implementation dependent state in response to the second instruction if the first instruction has been executed and no break events have occurred after execution of the first instruction; and    a monitor to cause an exit from the first implementation dependent state in response to a memory access to the monitor address.    
   
   
       84 . The processor of  claim 83  wherein the implicit operand is to indicate a linear address, and wherein the processor further comprises address translation logic to translate the linear address to obtain the monitor address which is a physical address.  
   
   
       85 . The processor of  claim 83  further comprising: 
 coherency logic to ensure that no cache in another processor coupled to the processor stores information at the monitor address in a modified or exclusive state.    
   
   
       86 . The processor of  claim 83  wherein the coherency logic is to assert a hit signal in response to another processor snooping the monitor address.  
   
   
       87 . The processor of  claim 85  wherein the coherency logic is to assert a hit signal in response to another processor snooping the monitor address.  
   
   
       88 . A method comprising: 
 executing a plurality of threads;    suspending execution of a first thread of the plurality of threads upon execution of a first instruction within the first thread while at least one of the plurality of threads remains active;    passively monitoring for an event; and    resuming execution of the first thread in response to detecting the event.    
   
   
       89 . The method of  claim 88 , wherein the passively monitoring of the event includes monitoring for a memory access to a specified memory location.  
   
   
       90 . The method of  claim 88  wherein the passively monitoring of the event includes monitoring for an event without undergoing a spin-wait loop.  
   
   
       91 . The method of  claim 89  wherein prior to suspending the first thread, the method further comprises setting a monitor address as the specified memory location in response to execution of a second instruction in the first thread so that resumption of the first thread occurs in response to the memory access to the monitor address.

Join the waitlist — get patent alerts

Track US2008034190A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.