Johan de Gelas heeft op Ace's Hardware een interessante nieuwsposting geplaatst met wat meer info over de mogelijke bottlenecks van de Pentium 4 architectuur. Zoals je in de benchmarks hebt kunnen zien, heeft de Pentium 4 een erg indrukwekkende geheugen bandbreedte, maar is de integer en FPU performance nog niet op het niveau van de Pentium III en Athlon. Johan heeft een verklaring voor de wat tegenvallende performance van de 'double pumped' ALU (aka 'Rapid Execution Engine'), die integer instructies uitvoert op een dubbele kloksnelheid van de rest van de processor. De P4 blijkt weliswaar erg snel te zijn bij de meest voorkomende simpele instructies, maar heeft als nadeel dat integer instructies met een hogere latency worden verwerkt. Een tweede mogelijke bottleneck zit 'm in de trace cache, die per kloktik 3 microops (gemiddeld 1,5 instructie) naar de pipelines kan sturen. Hierdoor kan het voorkomen dat één van de twee ALU's zonder werk komt te staan:
The P4's double clocked ALU's, alias rapid execution engine. While it is quite fantastic that a 2 GHz P4, which was presented by Albert Yu on the IDF, has a 4 GHz ALU, there is something I should point out. Integer multiplication takes 12 clocks to execute, while this instruction takes only four clocks on the PIII. If you compare the PIII with the P4, the P3 executes the integer instructions with 50% less latency. In other words, the Rapid Execution Engine is only "Rapid" for the most common, most simple instructions (32 bit ADD). Intel's engineers haven taken the words "make the common thing faster" to the extreme...The trace cache can send only 3 microops to the rest of the pipeline. Is that a bottleneck? I am not sure, but if one x86 instruction takes on average 2 microops, then the pentium 4 can only do a maximum of 1.5 x86 per clockcycle or 1.5 IPC. Now, benchmarks show us that it is hard to obtain higher IPC than 1-1.1, but it seems to me that you should have a bit more headroom. Especially when the CPU encounters a piece of code that has a high amount of ILP (Instruction Level Parrallelism). The Pentium 4 is a very interesting architecture, and the more we delve into it, the harder it gets to understand how it will perform in different applications and what trade-offs the engineers made.
![]() |