IP Library Granted Patent US 9,870,039
Granted Patent B2
US 9,870,039 · App. 14/970,101 · Granted Jan 16, 2018

Reducing power consumption in a multi-slice computer processor

Inventors: Steven J. Battle (Austin, TX); Owen Chiang (Austin, TX); Sam G. Chu (Round Rock, TX); Saiful Islam (Austin, TX); Dung Q. Nguyen (Austin, TX); David R. Terry (Austin, TX); Eula A. Tolentino (Austin, TX)
Assignee: International Business Machines Corporation
G06F1/32G06F9/30101G06F9/3855G06F9/3836G06F9/3857G06F9/544G06F12/0808
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 9,870,039
App. No.
14/970,101
Granted
Jan 16, 2018
Kind
B2
Abstract

Reducing power consumption in a multi-slice computer processor that includes a re-order buffer and an architected register file, including: designating an entry in the re-order buffer as being invalid and unwritten; assigning a pending instruction to the entry in the re-order buffer; responsive to assigning the pending instruction to the entry in the re-order buffer, designating the entry as being valid; writing data generated by executing the pending instruction into the re-order buffer; and responsive to writing data generated by executing the pending instruction into the re-order buffer, designating the entry as being written.

Claims (52)

1. A multi-slice computer processor that includes a re-order buffer, the multi-slice computer processor configured for:

designating an entry in the re-order buffer as being invalid and unwritten;

assigning a pending instruction to the entry in the re-order buffer;

responsive to assigning the pending instruction to the entry in the re-order buffer, designating the entry as being valid;

writing data generated by executing the pending instruction into the re-order buffer; and

responsive to writing data generated by executing the pending instruction into the re-order buffer, designating the entry as being written.

2. The multi-slice computer processor of claim 1 wherein the multi-slice computer processor is further configured for:

receiving a request to read the entry in the re-order buffer;

determining whether the entry in the re-order buffer is designated as being valid and written;

responsive to determining that the entry in the re-order buffer is designated as being valid and written, servicing the request to read the entry in the re-order buffer; and

responsive to determining that the entry in the re-order buffer is not designated as being valid and written, dismissing the request to read the entry in the re-order buffer.

3. The multi-slice computer processor of claim 1 wherein the multi-slice computer processor further comprises an architected register file and the multi-slice computer processor is further configured for:

receiving a request to read an entry in the architected register file;

determining whether the entry in the re-order buffer is designated as being valid;

responsive to determining that the entry in the re-order buffer is designated as being valid, dismissing the request to read the entry in the architected register file; and

responsive to determining that the entry in the re-order buffer is not designated as being valid, servicing the request to read the entry in the architected register file.

4. The multi-slice computer processor of claim 1 wherein the multi-slice computer processor further comprises an architected register file and the multi-slice computer processor is further configured for:

detecting that the pending instruction has executed; and

responsive to detecting that the pending instruction has executed, moving the entry in the re-order buffer to the architected register file.

5. The multi-slice computer processor of claim 4 wherein the multi-slice computer processor is further configured for, responsive to moving the entry in the re-order buffer to the architected register file, designating the entry in the re-order buffer as being invalid and unwritten.

6. The multi-slice computer processor of claim 1 wherein the multi-slice computer processor further comprises an architected register file and the multi-slice computer processor is further configured for:

dispatching the pending instruction, the pending instruction identifying an entry in the re-order buffer that includes an operand for the pending instruction;

determining whether the entry in the re-order buffer that includes the operand for the pending instruction is valid and written or valid and unwritten;

responsive to determining that the entry in the re-order buffer that includes the operand for the pending instruction is valid and written, reading the operand from the reorder buffer; and

responsive to determining that the entry in the re-order buffer that includes the operand for the pending instruction is valid and unwritten, reading the operand from the architected register file.

7. The multi-slice computer processor of claim 1 wherein each entry in the re-order buffer includes a valid bit and a reorder bit.

8. A computing system, the computing system including a multi-slice computer processor that includes a re-order buffer, the multi-slice computer processor configured for:

designating an entry in the re-order buffer as being invalid and unwritten;

assigning a pending instruction to the entry in the re-order buffer;

responsive to assigning the pending instruction to the entry in the re-order buffer, designating the entry as being valid;

writing data generated by executing the pending instruction into the re-order buffer; and

responsive to writing data generated by executing the pending instruction into the re-order buffer, designating the entry as being written.

9. The computing system of claim 8 wherein the multi-slice computer processor is further configured for:

receiving a request to read the entry in the re-order buffer;

determining whether the entry in the re-order buffer is designated as being valid and written;

responsive to determining that the entry in the re-order buffer is designated as being valid and written, servicing the request to read the entry in the re-order buffer; and

responsive to determining that the entry in the re-order buffer is not designated as being valid and written, dismissing the request to read the entry in the re-order buffer.

10. The computing system of claim 8 wherein the multi-slice computer processor further comprises an architected register file and the multi-slice computer processor is further configured for:

receiving a request to read an entry in the architected register file;

determining whether the entry in the re-order buffer is designated as being valid;

responsive to determining that the entry in the re-order buffer is designated as being valid, dismissing the request to read the entry in the architected register file; and

responsive to determining that the entry in the re-order buffer is not designated as being valid, servicing the request to read the entry in the architected register file.

11. The computing system of claim 8 wherein the multi-slice computer processor further comprises an architected register file and the multi-slice computer processor is further configured for:

detecting that the pending instruction has executed; and

responsive to detecting that the pending instruction has executed, moving the entry in the re-order buffer to the architected register file.

12. The computing system of claim 11 wherein the multi-slice computer processor is further configured for, responsive to moving the entry in the re-order buffer to the architected register file, designating the entry in the re-order buffer as being invalid and unwritten.

13. The computing system of claim 8 wherein each entry in the re-order buffer includes a valid bit and a reorder bit.

14. The computing system of claim 8 wherein the multi-slice computer processor further comprises an architected register file and the multi-slice computer processor is further configured for:

dispatching the pending instruction, the pending instruction identifying an entry in the re-order buffer that includes an operand for the pending instruction;

determining whether the entry in the re-order buffer that includes the operand for the pending instruction is valid and written or valid and unwritten;

responsive to determining that the entry in the re-order buffer that includes the operand for the pending instruction is valid and written, reading the operand from the reorder buffer; and

responsive to determining that the entry in the re-order buffer that includes the operand for the pending instruction is valid and unwritten, reading the operand from the architected register file.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2015
From: BATTLE, STEVEN J.; CHIANG, OWEN; CHU, SAM G.; ISLAM, SAIFUL; NGUYEN, DUNG Q.; TERRY, DAVID R.; TOLENTINO, EULA A.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 037324/0381 →
Continuity (1)
Related Publication 20170168539A1 · Jun 15, 2017