IP Library Granted Patent US 9,311,099
Granted Patent B2
US 9,311,099 · App. 13/955,106 · Granted Apr 12, 2016

Systems and methods for locking branch target buffer entries

Inventors: Jeffrey W. Scott (Austin, TX); William C. Moyer (Dripping Springs, TX)
Assignee: Freescale Semiconductor, Inc.
G06F9/3806
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,311,099
App. No.
13/955,106
Granted
Apr 12, 2016
Kind
B2
Abstract

A data processing system includes a processor configured to execute processor instructions and a branch target buffer having a plurality of entries. Each entry is configured to store a branch target address and a lock indicator, wherein the lock indicator indicates whether the entry is a candidate for replacement, and wherein the processor is configured to access the branch target buffer during execution of the processor instructions. The data processing system further includes control circuitry configured to determine a fullness level of the branch target buffer, wherein in response to the fullness level reaching a fullness threshold, the control circuitry is configured to assert the lock indicator of one or more of the plurality of entries to indicate that the one or more of the plurality of entries is not a candidate for replacement.

Claims (38)

1. A data processing system, comprising:

a processor configured to execute processor instructions;

a branch target buffer having a plurality of entries, each entry configured to store a branch target address and a lock indicator, wherein the lock indicator indicates whether the entry is a candidate for replacement, and wherein the processor is configured to access the branch target buffer during execution of the processor instructions; and

control circuitry configured to determine a fullness level of the branch target buffer, wherein in response to the fullness level reaching a fullness threshold, the control circuitry is configured to assert the lock indicator of one or more of the plurality of entries to indicate that the one or more of the plurality of entries is not a candidate for replacement,

wherein the control circuitry is configured to determine a fullness level of a set of the branch target buffer,

in response to the fullness level reaching the fullness threshold, asserting the lock indicator for one or more entries in the set, and

the branch target buffer is configured to, in response to a miss of a processor access of the branch target buffer, select an entry for replacement from entries of the branch target buffer whose lock indicator is not asserted.

2. The data processing system of claim 1 , wherein the branch target buffer is configured to, in response to a hit of a processor instruction in the branch target buffer, provide a branch target address to the processor.

3. The data processing system of claim 1 , wherein the fullness level of the branch target buffer indicates a percentage of valid entries of the plurality of entries branch target buffer.

4. The data processing system of claim 3 , wherein each entry of the branch target buffer is configured to store a valid indicator.

5. The data processing system of claim 3 , wherein the one or more of the plurality of entries comprises all of the plurality of entries of the branch target buffer.

6. The data processing system of claim 3 , wherein the branch target buffer is further characterized as set associative.

7. The data processing system of claim 1 , wherein the control circuitry is configured to store a lock amount indicator, wherein the lock amount indicator indicates the fullness threshold.

8. The data processing system of claim 7 , wherein the lock amount indicator indicates the one or more of the plurality of entries whose lock indicator is asserted.

9. In a data processing system having a branch target buffer, a method comprising:

determining a fullness level of the branch target buffer based on a number of valid entries in the branch target buffer;

determining whether the fullness level of the branch target buffer has reached a fullness threshold;

when the fullness level of the branch target buffer reaches the fullness threshold, locking one or more entries of the branch target buffer to cause the one or more entries to not be candidates for replacement;

determining that a processor instruction results in a miss in the branch target buffer;

selecting an entry of the branch target buffer for replacement which is not locked; and

updating the selected entry with the processor instruction,

wherein the control circuitry is configured to determine a fullness level of a set of the branch target buffer, and in response to the fullness level reaching the fullness threshold, asserting a lock indicator for one or more entries in the branch target buffer.

10. The method of claim 9 , further comprising:

receiving a lock amount indicator, wherein the lock amount indicator indicates the fullness threshold.

11. The method of claim 10 , wherein the lock amount indicator indicates the one or more entries.

12. The method of claim 9 , wherein the locking the one or more entries comprises locking all entries of the branch target buffer.

13. The method of claim 9 , wherein the fullness level of the branch target buffer indicates a percentage of valid entries of the plurality of entries branch target buffer.

14. A data processing system, comprising:

a processor configured to execute processor instructions;

a branch target buffer having a plurality of entries, each entry configured to store a branch target address, a valid indicator, and a lock indicator, wherein the lock indicator indicates whether the entry is a candidate for replacement, and wherein the processor is configured to access the branch target buffer during execution of the processor instructions;

storage circuitry configured to store a lock amount indicator, wherein the lock amount indicator indicates a percentage of entries of the branch target buffer; and

control circuitry configured to determine a fullness level of the branch target buffer based on valid entries of the branch target buffer, wherein in response to the fullness level reaching a fullness threshold, the control circuitry is configured to assert the lock indicator of one or more entries of branch target buffer which achieves the percentage of entries of the branch target buffer indicated by the lock amount indicator to indicate that the one or more of the plurality of entries is not a candidate for replacement,

wherein the control circuitry is configured to determine a fullness level of a set of the branch target buffer,

wherein in response to the fullness level reaching the fullness threshold, asserting the lock indicator of one or more entries in the set which achieves the percentage of entries indicated by the lock amount indicator, and

the branch target buffer is configured to, in response to a miss of a processor instruction in the branch target buffer, select an entry for replacement from entries of the branch target buffer whose lock indicator is not asserted.

15. The data processing system of claim 14 , wherein the lock amount indicator indicates the fullness threshold.

16. The data processing system of claim 14 , wherein the fullness level of the branch target buffer indicates a percentage of valid entries of the plurality of entries branch target buffer.

17. The data processing system of claim 14 , wherein the branch target buffer is further characterized as set associative.

Assignments (17)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT THE APPLICATION NO. FROM 13,883,290 TO 13,833,290 PREVIOUSLY RECORDED ON REEL 041703 FRAME 0536. ASSIGNOR(S) HEREBY CONFIRMS THE THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS.. Recorded Feb 20, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SHENZHEN XINGUODU TECHNOLOGY CO., LTD.
Reel/Frame 048734/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENTS 8108266 AND 8062324 AND REPLACE THEM WITH 6108266 AND 8060324 PREVIOUSLY RECORDED ON REEL 037518 FRAME 0292. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Feb 1, 2017
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 041703/0536 →
MERGER Recorded Jan 3, 2017
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 041144/0363 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT PCT NUMBERS IB2013000664, US2013051970, US201305935 PREVIOUSLY RECORDED AT REEL: 037444 FRAME: 0787. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Oct 17, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 040450/0715 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 13, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037518/0292 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 5, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037444/0787 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0874 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Nov 13, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031627/0201 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Nov 13, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 031627/0158 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2013
From: SCOTT, JEFFREY W.; MOYER, WILLIAM C.
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 030916/0056 →
Continuity (1)
Related Publication 20150039870A1 · Feb 5, 2015