相關文章

D410738ddf86e9556d4fde508652aee3b9a14f75

這是啥?可以吃嗎?中間紅色那塊是什麼?過去四年來,外界對Intel Prescott的EM64T,刻板印象不外乎「啊,難道不是用偉大的超強指令解碼器,把一個64位元整數邏輯運算工作,拆成兩個微指令,再丟給兩個長相一模一樣的32位元執行引擎嗎?」,拜Chip-Architect網站的某張外科手術式Prescott晶粒照片超圖解,與日本PC Watch知名專欄作家後藤弘茂某篇文章之所賜,成為「約定俗成」的標準制式答案。

Integer core micrograph

事後Intel發表論文的照片,也證實Chip-Architect的推測架構所言不虛。

但真相真是如此嗎?因被老朋友「台灣水電工」幹譙之故,筆者絕對要打上一個大大的問號。即使過去也曾這樣相信過,還不小心在四月專欄犯下不可原諒的錯誤,但為何筆者會這樣質疑?先請參考這份極為重要且持續更新的文件:

Instruction latencies and throughput for AMD and Intel x86 processors

讀者可以注意到,比較32/64位元的指令延遲與輸出率,Prescott的整數加減法都半斤八兩,線路複雜的乘除法就差很多了,標準的multi-function ALU都會有的特性,怎麼看就像是一套ALU同時支援32與64位元。

某長輩還特地諄諄教誨:

「你注意看框線的地方,上下二個內部只在一處不同…就是在double pump ALU…因此這二個ALU是不同功能的,而且上面的ALU後面還有東西,就是load/store address generator…所以如果要說服我說是二個同樣的ALU cascade…那我是不會相信的…」

32b/64b ALU organization

更何況,Intel自己曾公佈過Prescott ALU的細節,也確認是32/64位元合而為一的架構。

32b/64b ALU die microphotograph and measured performance summary

這個ALU內部的確是由兩個32位元組合而成,不過也是前後緊密相連,怎麼看都不像讓另一個32位元ALU「遠渡重洋」再「歡喜團圓」。

事實上,這個混合式ALU的運作時脈,32位元可達7GHz,但64位元卻僅4GHz,意味64位元模式的延遲比32位元多出60%,這也許就是Prescott的ALU結構會如此詭異的主因…兩塊D-cache,兩塊Register File…噁~

希望讀者可在七月一號出刊的電腦王某乏人問津的專欄看到完整的解答。最後,唯一可以確定的是,Prescott的64位元效能真的是蠻遜的…

使用 Facebook 留言

發表回應

謹慎發言,尊重彼此。按此展開留言規則