Let’s compare PowerPC970 processor with those we have mentioned earlier:
- G4+ processor is the simplest one. It works with 32 architectural registers and 16 “rename” registers, 48 in total;
- PowerPC970 processor operates 80 registers, 32 architectural and 48 “rename” ones.
- Athlon 64, if I am not mistaken, has 8 (16 in the AMD64 mode) architectural registers and about a hundred internal registers.
- Pentium 4 has 8 architectural and 120 “rename registers” – quite impressive power!
They all look humble compared to the Itanium, though, with its 320 architectural registers! :)
Let me veer again from the main topic of our discussion one more time… The separating line between “architectural” and “rename” registers is very thin. Of course, we deal with a sharply outlined set of physical registers, onto which architectural registers are dynamically reflected (assigned to them). It is also clear that the more physical registers – the better. However, the growth of the number of registers brings about certain problems. First of all, they are the warmest part of the processor (the register renaming unit always has something to do). Then, if we have many registers, it is harder to fetch data from them. The quantity of the architectural registers also affects the amount of fetched data. Thus, a big set of registers is good, but also leads to certain problems.
As you see, PowerPC970 can’t show anything extraordinary in this respect. It is not the winner, but it is also no loser – just a well-made processor. Moreover, the number of its physical rename registers has grown considerably since the previous Mac processor, G4+. It was necessary just to support the much bigger number of “on-the-fly” instructions: the more instructions are on the fly, the more physical registers are required. Note also that talking about the registers, I meant just general-purpose registers, excluding the rest of them. Otherwise, we would get quite different numbers. For example, here is a table for the PowerPC970 (original source: here):
8 (9) 4-bit fields
Thus, the total number of registers in the PowerPC970 is 244! Of course, other processors also have many registers, besides general-purpose ones. However, when it comes to estimating processor power, we usually count in only the general-purpose registers.