or
Bookmark and Share
Architectural support for thread level speculative execution
   
Document Number
US Patent 7350027
Issued Date
March 25, 2008
Link
Inventors
Gara; Alan G. (Mount Kisco, NY)
Map
Abstract
A method and apparatus for hardware support of the thread level speculation for existing processor cores without having to change the existing processor core, processor core's interface, or existing caches on the L1, L2 or L3 level. Architecture support for thread speculative execution by adding a new cache level for storing speculative values and a dedicated bus for forwarding speculative values and control. The cache level is hierarchically positioned between the cache levels L1 and L2 cache levels.
Tags:
Description:
Amusing 0%
Clever 0%
Complex 0%
Efficient 0%
Historic 0%
Important 0%
Innovative 0%
Interesting 0%
Practical 0%
Simple 0%
Number of Claims:
35
Comments:
no comments yet
Published
March 25, 2008
Application Number
11/351,829
Filed
February 10, 2006
US Classification
711/121   711/E12.021 711/E12.025 711/E12.043
Int'l Classification
G06F   12/02   (20060101)  
Examiner
USPTO Field of Search
711/121   711/120   712/216  
Related Patents
7610470 - Preventing register data flow hazards in an SST processor - Owned by Sun Microsystems, Inc. (Santa Clara, CA)

One embodiment of the present invention provides a system that prevents data hazards during simultaneous speculative threading. The system starts by executing instructions in an execute-ahead mode using a first thread. While executing instructions in the execute-ahead mode, the system maintains dependency information for each register indicating whether the register is subject to an unresolved data dependency. Upon the resolution of a data dependency during execute-ahead mode, the system copies dependency information to a speculative copy of the dependency information. The system then commences execution of the deferred instructions in a deferred mode using a second thread. While executing instructions in the deferred mode, if the speculative copy of the dependency information for a destination register indicates that a write-after-write (WAW) hazard exists with a subsequent non-deferred instruction executed by the first thread in execute-ahead mode, the system uses the second thread to execute the deferred instruction to produce a result and forwards the result to be used by subsequent deferred instructions without committing the result to the architectural state of the destination register. Hence, the system makes the result available to the subsequent deferred instructions without overwriting the result produced by a following non-deferred instruction.

Claims
Description
About| FAQs| Terms & Disclaimer| Link to Us| Contact Us