星期六, 5月 22, 2010

[隨手亂畫] 一種P6 Pipeline,三種解釋

其實我對這件事情已經感冒十年了。喵的。看來Intel自從詭異的NetBurst出現後,「管線深度」的標準就讓人摸不著頭緒,官方說法的P6 Pipeline從「12~14」砍到10 stages,說是misprediction penalty,但又看來不像,最好P6的misprediction penalty只有10 cycle啦。

說到管線深度,Intel的Optimization Manual倒是有提到兩件事情:
Intel Core Microarchitecture and Enhanced Intel Core Microarchitecture: Fourteen-stage efficient pipeline
Merom/Penryn「有效管線」的定義到底是哪一種啊?
The length of the pipeline in Intel microarchitecture (Nehalem) is two cycles longer than its predecessor in 45nm Intel Core 2 processor family, as measured by branch misprediction delay.
反正Nehalem/Westmere就是16 Stage「有效管線」就是了。

至於Pentium M,我當初用hotball寫的強迫製造misprediction程式,測X31的Banias,估計大概比P6多出2 cycle。換句話說,假設Intel的新標準只是把既有完整pipeline拿掉BTB Access和Retire、再加上潛在的delay,P6家族的管線深度就是:

Pentium Pro/Pentium II/Pentium III: 12 stages (12-14)
Pentium M/Yonah: 14 stages
Merom/Penryn: 16 stages
Nehalem/Westmere: 18 stages

這樣看來,Nehalem也蠻驚人的... 逼近20 stages耶。啊啊~連定義都沒釐清的我到底在爽什麼啊!
張貼留言