IP Library › Granted Patent US 10,613,869
Granted Patent B2
US 10,613,869 · App. 15/939,722 · Granted Apr 7, 2020

Branch target address provision

Inventors: Peter Richard Greenhalgh (Cambridge, GB); Frederic Claude Marie Piry (Alpes Maritimes, FR); Jose Gonzalez-Gonzalez (Cambridge, FR)
Assignee: ARM Limited
G06F9/3844G06F9/30058G06F9/3806G06F9/383G06F9/3808G06F9/3846G06F12/0862G06F2212/6026G06F2212/6028
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 10,613,869
App. No.
15/939,722
Granted
Apr 7, 2020
Kind
B2
Abstract

An apparatus and method of operating an apparatus are provided. The apparatus comprises execution circuitry to perform data processing operations specified by instructions and instruction retrieval circuitry to retrieve the instructions from memory, wherein the instructions comprise branch instructions. The instruction retrieval circuitry comprises branch target storage to store target instruction addresses for the branch instructions and branch target prefetch circuitry to prepopulate the branch target storage with predicted target instruction addresses for the branch instructions. An improved hit rate in the branch target storage may thereby be supported.

Claims (29)

1. Apparatus comprising:

execution circuitry to perform data processing operations specified by instructions; and

instruction retrieval circuitry to retrieve the instructions from memory, wherein the instructions comprise branch instructions and wherein the instruction retrieval circuitry comprises:

branch target storage to store target instruction addresses for the branch instructions; and

branch target prefetch circuitry comprising instruction pattern recognition circuitry to monitor the instructions retrieved from memory and to select predicted target instruction addresses in dependence on at least one identified pattern of instructions in the instructions retrieved from memory;

wherein the branch target prefetch circuitry is configured to prepopulate the branch target storage with the predicted target instruction addresses for the branch instructions.

2. The apparatus as claimed in claim 1 , wherein the branch target storage is a zero-cycle-latency branch target storage responsive to a look-up for a target instruction address initiated in a processing cycle of the apparatus to provide the target instruction address within the processing cycle, when the target instruction address is present in the branch target storage.

3. The apparatus as claimed in claim 1 , further comprising a branch target storage hierarchy, wherein the branch target storage hierarchy comprises the branch target storage and at least one further level of branch target storage.

4. The apparatus as claimed in claim 3 , wherein the instruction retrieval circuitry is responsive to an indication that a target instruction address is not present in the branch target storage to cause a request for the target instruction address to be issued to the at least one further level of branch target storage of the branch target storage hierarchy.

5. The apparatus as claimed in claim 3 , wherein the at least one further level of branch target storage has greater storage capacity than the branch target storage.

6. The apparatus as claimed in claim 3 , wherein the at least one further level of branch target storage has longer access latency than the branch target storage.

7. The apparatus as claimed in claim 3 , wherein the branch target storage hierarchy is responsive to a request for a target instruction address to initiate a look-up for the target instruction address in the branch target storage and in the at least one further level of branch target storage in a same processing cycle.

8. The apparatus as claimed in claim 7 , wherein the branch target prefetch circuitry comprises prediction confidence circuitry to maintain a prefetch confidence value in dependence on a hit rate for the predicted target instruction addresses with which the branch target storage is prepopulated.

9. The apparatus as claimed in claim 8 , wherein the branch target prefetch circuitry is responsive to the prefetch confidence value exceeding a threshold confidence value to suppress the look-up for the target instruction address in the at least one further level of branch target storage from being initiated when the look-up for the target instruction address is initiated in the branch target storage.

10. The apparatus as claimed in claim 3 , wherein the instruction retrieval circuitry comprises at least one further branch target prefetch circuitry to prepopulate the at least one further level of branch target storage with predicted target instruction addresses for the branch instructions.

11. The apparatus as claimed in claim 1 , wherein the branch target storage is a content-addressable-memory structure.

12. The apparatus as claimed in claim 1 , wherein the branch target storage is a randomly-addressable-memory structure.

13. A method of operating a data processing apparatus comprising:

retrieving instructions from memory, wherein the instructions comprise branch instructions;

performing data processing operations specified by the instructions;

storing target instruction addresses for the branch instructions in branch target storage;

monitoring the instructions retrieved from memory and selecting predicted target instruction addresses in dependence on at least one identified pattern of instructions in the instructions retrieved from memory; and

prefetching the predicted target instruction addresses for the branch instructions to prepopulate the branch target storage.

14. Apparatus comprising:

means for retrieving instructions from memory, wherein the instructions comprise branch instructions;

means for performing data processing operations specified by the instructions;

means for storing target instruction addresses for the branch instructions;

means for monitoring the instructions retrieved from memory and selecting predicted target instruction addresses in dependence on at least one identified pattern of instructions in the instructions retrieved from memory; and

means for prefetching the predicted target instruction addresses for the branch instructions to prepopulate the means for storing target instruction addresses.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2018
From: GREENHALGH, PETER RICHARD; PIRY, FREDERIC CLAUDE MARIE; GONZALEZ-GONZALEZ, JOSE
To: ARM LIMITED
Reel/Frame 045385/0386 →
Continuity (1)
Related Publication 20190303160A1 · Oct 3, 2019
Cited By (1)
US 12,487,830