6947ch02.fm

Draft Document for Review April 7, 2004 6:15 pm

Processor Branch History Table (BHT)

The Branch History Table (BHT) implementation on processors has a key performance improvement effect. The BHT was originally introduced on the IBM ES/9000® 9021 in 1990 and has been improved ever since.

The z990 server BHT offers significant branch performance benefits. The BHT allows each CP to take instruction branches based on a stored BHT, which improves processing times for calculation routines. Using a 100-iteration calculation routine as an example (Figure 2-14), hardware preprocesses branch incorrectly 99 times without a BHT. With a BHT, it preprocesses branch correctly 98 times.

Without BHT:

With BHT:

Hardware branch

Hardware branch guess OK

guess OK

 

Hardware branch

Hardware branch

guess not OK

guess OK

99 of 100 times

98 of 100 times

Guess Path

Guess Path

 

Actual Path

Actual Path

Figure 2-14 Branch History Table (BHT)

￿Without BHT, the processor:

Makes an incorrect branch guess the first time through the loop (at the second branch point in Figure 2-14)

Preprocesses instructions for the guessed branch path

Starts preprocessing a new path if branch not equal to guess

Repeats this 98 more times until the last time when the guess matches the actual branch taken

￿With BHT, the processor:

Makes an incorrect branch guess the first time through the loop (at the second branch point in Figure 2-14)

Preprocesses instructions for the guessed branch path

Starts preprocessing a new path if branch not equal to guess

Updates the BHT to indicate the last branch action taken at this address

The next 98 times the branch path comes from the BHT.

The last time the guess is wrong.

The key point is that, with the BHT, the table is updated to indicate the last branch action taken at branch addresses. Using the BHT, if a hardware branch at an address matches a BHT entry, the branch direction is taken from the BHT. Therefore, in the diagram the branches are correct for the remainder of the loop through the program routine, except for the last one.

The success rate that the BHT design offers contributes a great deal to the superscalar aspects of the z990, given the fact that the architecture rules prescribe that for successful parallel execution of an instruction stream, the correctly predicted result of the branch is essential.

44IBM eServer zSeries 990 Technical Guide

Page 58
Image 58
IBM 990 manual Processor Branch History Table BHT, Without BHT With BHT

990 specifications

The IBM 990 series, often referred to in the context of IBM's pioneering efforts in the realm of mainframe computing, represents a unique chapter in the history of information technology. Introduced in the late 1960s, the IBM 990 series was designed as a powerful tool for enterprise-level data processing and scientific calculations, showcasing the company's commitment to advancing computing capabilities.

One of the main features of the IBM 990 was its architecture, which was built to support a wide range of applications, from business processing to complex scientific computations. The system employed a 32-bit word length, which was advanced for its time, allowing for more flexible and efficient data handling. CPUs in the IBM 990 series supported multiple instructions per cycle, which contributed significantly to the overall efficiency and processing power of the machines.

The technology behind the IBM 990 was also notable for its use of solid-state technology. This provided a shift away from vacuum tube systems that were prevalent in earlier computing systems, enhancing the reliability and longevity of the hardware. The IBM 990 series utilized core memory, which was faster and more reliable than the magnetic drum memory systems that had been standard up to that point.

Another defining characteristic of the IBM 990 was its extensibility. Organizations could configure the machine to suit their specific needs by adding memory, storage, and peripheral devices as required. This modular approach facilitated the growth of systems alongside the technological and operational demands of the business environments they served.

In terms of software, the IBM 990 series was compatible with a variety of operating systems and programming environments, including FORTRAN and COBOL, enabling users to access a broader array of applications. This versatility was a significant advantage, making the IBM 990 an appealing choice for educational institutions, research facilities, and enterprises alike.

Moreover, the IBM 990 was engineered to support multiprocessing, which allowed multiple processes to run simultaneously, further increasing its effectiveness in tackling complex computing tasks.

In summary, the IBM 990 series represents a significant advancement in computing technology during the late 20th century. With a robust architecture, versatile configuration options, and a focus on solid-state technology, the IBM 990 facilitated substantial improvements in data processing capabilities, making it a cornerstone for many businesses and academic institutions of its time. Its impact can still be seen today in the continued evolution of mainframe computing.