IP Library Granted Patent US 8,166,282
Granted Patent B2
US 8,166,282 · App. 10/896,585 · Granted Apr 24, 2012

Multi-version register file for multithreading processors with live-in precomputation

Assignee: Intel Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,166,282
App. No.
10/896,585
Granted
Apr 24, 2012
Kind
B2
Abstract

Disclosed are selected embodiments of a processor that may include a plurality of thread units and a register file architecture to support speculative multithreading. For at least one embodiment, live-in values for a speculative thread are computed via execution of a precomputation slice and are stored in a validation buffer for later validation. A global register file holds the committed architecture state generated by a non-speculative thread. Each thread unit includes a local register file. A directory indicates, for each architectural register, which speculative thread(s) have generated a value for the architectural register. Other embodiments are also described and claimed.

Claims (13)

1. A system, comprising:

a memory subsystem coupled to a processor;

the processor having N thread units to support speculative multithreading; and

a register versioning table coupled to the thread units, the register versioning table having N×R entries, the register versioning table to indicate, for each of the N thread units, whether the thread unit has written a value for each of R architectural registers;

wherein each thread unit includes a validation buffer to store speculatively precomputed live-in values;

wherein each thread unit further includes a local register file for the R architectural registers, wherein each thread unit determines whether the precomputed live-in values match local register file values, if such values match, the precomputed live-in values are marked valid; and

a global register file to hold the committed state for each of the R architectural registers, wherein the global register file is accessed by a thread unit when the thread unit performs a read to a register not available in its local register file and no less-speculative thread has written the register without committing it.

2. The system of claim 1 , wherein: the processor is a chip multiprocessor having a plurality of processing cores in a single chip package.

3. The system of claim 2 , wherein: each of the thread units is associated with a different of one of said processing cores.

4. The system of claim 1 , wherein: the processor is a simultaneous multithreading processor having a plurality of logical processors.

5. The system of claim 4 , wherein: each of the thread units is associated with a different of one of said logical processors.

6. The system of claim 1 , wherein: the memory subsystem includes a DRAM memory.

7. The system of claim 1 , wherein: the global register file is accessible to each of the thread units.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 8, 2016
From: INTEL CORPORATION
To: BEIJING XIAOMI MOBILE SOFTWARE CO., LTD.
Reel/Frame 037733/0440 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 1, 2004
From: MADRILES, CARLOS; SANCHEZ, JESUS; GARCIA, CARLOS; MARCUELLO, PEDRO; GONZALEZ, ANTONIO
To: INTEL CORPORATION
Reel/Frame 015840/0064 →
Continuity (1)
Related Publication 20060020775A1 · Jan 26, 2006