Autonomic method and apparatus for counting branch instructions to improve branch predictions

a branch prediction and automatic method technology, applied in the field of data processing system, can solve the problems of pipeline stall, pipeline stall, pipeline stall, etc., and achieve the effect of improving the branch prediction of the program and improving the branch prediction

Inactive Publication Date: 2005-07-14
INTEL CORP
View PDF73 Cites 108 Cited by
  • Summary
  • Abstract
  • Description
  • Claims
  • Application Information

AI Technical Summary

Benefits of technology

[0011] The present invention provides a method, apparatus, and computer instructions for improving branch predictions by autonomically counting branch instruction executed in a processor. In a preferred embodiment, selected pieces of code are identified for branch statistics, counters are used to count the number of times the identified branches are taken or not taken during program execution, and a set of branch statistics per branch instruction are derived based on the count. The branch count associated with the branch instruction is incremented when a branch is taken and decremented when a branch is not taken. Hence, the branch prediction field is updated. A running history of branch statistics is collected during program execution, which may help to improve branch predictions of a program. In addition, an application may switch hardware counter's mode of operation at run time to take a different set of branches for a given conditional branch instruction.

Problems solved by technology

However, a branch instruction may cause a pipeline to stall.
Branch instructions often cause the pipeline to stall because the branch condition may depend on the result of preceding instruction.
However, this technique requires a special cache that would be accessed during fetching and flushed after the predictions are complete.
However, none of the currently existing techniques provide a solution for branch prediction at the instruction level, where detailed branch statistics are collected per branch instruction.
In addition, none of the currently existing techniques provides a running history of branch prediction by associating branch statistic fields with branch instructions, so that better branch predictions may be performed by storing branch prediction values associated with each branch instruction in a dedicated memory location.

Method used

the structure of the environmentally friendly knitted fabric provided by the present invention; figure 2 Flow chart of the yarn wrapping machine for environmentally friendly knitted fabrics and storage devices; image 3 Is the parameter map of the yarn covering machine
View more

Image

Smart Image Click on the blue labels to locate them in the text.
Viewing Examples
Smart Image
  • Autonomic method and apparatus for counting branch instructions to improve branch predictions
  • Autonomic method and apparatus for counting branch instructions to improve branch predictions
  • Autonomic method and apparatus for counting branch instructions to improve branch predictions

Examples

Experimental program
Comparison scheme
Effect test

Embodiment Construction

[0019] The present invention improves branch predictions by autonomically counting a selected set of branch instructions executed in a processor. In a preferred embodiment, counters are used to count the number of times branches are taken or not taken during program execution and a set of branch statistics per branch instruction are derived based on the count. The branch count associated with the branch instruction is incremented when a branch is taken and decremented when a branch is not taken. This information is used as data for predicting whether a branch will be taken, and the result of this prediction is located in a branch prediction field. Hence, the branch prediction field is updated according to data of the hardware counters. A running history of branch statistics is collected during program execution, which may help to improve branch predictions of a program. In addition, an application may switch a hardware counter's mode of operation at run time to take a different set ...

the structure of the environmentally friendly knitted fabric provided by the present invention; figure 2 Flow chart of the yarn wrapping machine for environmentally friendly knitted fabrics and storage devices; image 3 Is the parameter map of the yarn covering machine
Login to view more

PUM

No PUM Login to view more

Abstract

A method, apparatus, and computer instructions for autonomically counting selected branch instructions executed in a processor to improve branch predictions. Counters are provided to count branch instructions that are executed in a processor to collect branch statistics. A set of branch statistics fields is allocated to associate with a branch instruction. When a program is executed, the stored statistics allows the program to look at the branch statistics in the counter to perform branch prediction. Hence, a user may use branch statistics values from the hardware counter to perform analysis on application code.

Description

CROSS REFERENCE TO RELATED APPLICATIONS [0001] The present invention is related to the following applications entitled “Method and Apparatus for Counting Instruction Execution and Data Accesses”, Ser. No. ______, attorney docket no. AUS920030477US1, filed on Sep. 30, 2003; “Method and Apparatus for Selectively Counting Instructions and Data Accesses”, Ser. No. ______, attorney docket no. AUS920030478US1, filed on Sep. 30, 2003; “Method and Apparatus for Generating Interrupts Upon Execution of Marked Instructions and Upon Access to Marked Memory Locations”, Ser. No. ______, attorney docket no. AUS920030479US1, filed on Sep. 30, 2003; “Method and Apparatus for Counting Data Accesses and Instruction Executions that Exceed a Threshold”, Ser. No. ______, attorney docket no. AUS920030480US1, filed on Sep. 30, 2003; “Method and Apparatus for Counting Execution of Specific Instructions and Accesses to Specific Data Locations”, Ser. No. ______, attorney docket no. AUS920030481US1, filed on S...

Claims

the structure of the environmentally friendly knitted fabric provided by the present invention; figure 2 Flow chart of the yarn wrapping machine for environmentally friendly knitted fabrics and storage devices; image 3 Is the parameter map of the yarn covering machine
Login to view more

Application Information

Patent Timeline
no application Login to view more
Patent Type & Authority Applications(United States)
IPC IPC(8): G06F9/00G06F9/38
CPCG06F9/3844
Inventor DEWITT, JIMMIE EARL JR.LEVINE, FRANK ELIOTRICHARDSON, CHRISTOPHER MICHAELURQUHART, ROBERT JOHN
Owner INTEL CORP
Who we serve
  • R&D Engineer
  • R&D Manager
  • IP Professional
Why Eureka
  • Industry Leading Data Capabilities
  • Powerful AI technology
  • Patent DNA Extraction
Social media
Try Eureka
PatSnap group products