POWER4
The POWER4 is a microprocessor developed by International Business Machines that implemented the 64-bit PowerPC and PowerPC AS instruction set architectures. Released in 2001, the POWER4 succeeded the POWER3 and RS64 microprocessors, enabling RS/6000 and eServer iSeries models of AS/400 computer servers to run on the same processor, as a step toward converging the two lines. The POWER4 was a multicore microprocessor, with two cores on a single die, the first non-embedded microprocessor to do so. POWER4 Chip was first commercially available multiprocessor chip. The original POWER4 had a clock speed of 1.1 and 1.3 GHz, while an enhanced version, the POWER4+, reached a clock speed of 1.9 GHz. The PowerPC 970 is a derivative of the POWER4.
Functional layout
[Image:Power4 core schema.png|thumb|right|The logic schema of the POWER4 core][Image:Power4 chip schema.png|thumb|right|The logic schema of the POWER4 processor]
The POWER4 has a unified L2 cache, divided into three equal parts. Each has its own independent L2 controller which can feed 32 bytes of data per cycle. The Core Interface Unit connects each L2 controller to either the data cache or instruction cache in either of the two processors. The Non-Cacheable Unit is responsible for handling instruction serializing functions and performing any noncacheable operations in the storage topology. There is an L3 cache controller, but the actual memory is off-chip. The GX bus controller controls I/O device communications, and there are two 4-byte wide GX buses, one incoming and the other outgoing. The Fabric Controller is the master controller for the network of buses, controlling communications for both L1/L2 controllers, communications between POWER4 chips and POWER4 MCM's. Trace-and-Debug, used for First Failure Data Capture, is provided. There is also a Built In Self Test function and Performance Monitoring Unit. Power-on reset is supported.
Execution units
The POWER4 implements a superscalar microarchitecture through high-frequency speculative out-of-order execution using eight independent execution units. They are: two floating-point units, two load-store units, two fixed-point units, a branch unit, and a conditional-register unit. These execution units can complete up to eight operations per clock :- each floating point unit can complete one fused multiply–add per clock,
- each load–store unit can complete one instruction per clock,
- each fixed-point unit can complete one instruction per clock.
- Branch Prediction
- Instruction Fetch
- Decode, Crack and Group Formation
- Group Dispatch and Instruction Issue
- Load–Store Unit Operation
- *Load Hit Store
- *Store Hit Load
- *Load Hit Load
- Instruction Execution Pipeline