引用:
作者murodoch
兩個核心所使用的頻率呢?不好意思 你PO的東西我沒有去看
難道你不知道在流水綫級數越多 所造成的錯誤就越多 而錯誤越多就需要更多的時脈去彌補這個錯誤嗎?不然的話INTEL爲何要這麽高的時脈?
還有 時脈越高 所造成的功耗也越高 難道不是嗎?
|
你的說法比較奇怪,但也沒錯(少了個前提),pipeline stage 越多,並不會影響分支測率,如果 "分支預測正確率" 不變的情形下,錯誤執行的指令的確會增多。
分支預測正確率是與 pipeline stage 數量(或說深度)無關的,而與分支預測的演算法有關,當執行單元發現分支預測錯誤後,錯誤執行的指令必需被清空,這代表 IPC 降低,效能不好,為了彌補 "性能" 的不足,又無法提高有效 IPC(提升錯誤分支預測的正確率,或是增加快取、TLB 等),只好提升時脈,為了提高時脈,又必須把 pipeline stage 切得更細,變得有點惡性循環。
而 pipeline stage 越多,表示同時動作的電晶體與電容更多,再加上錯誤執行的指令,與加大的 L1 & L2 cache,就算不改 90nm 製程,功耗大增是可預期的。
另外 thread 中文翻譯是執行緒,如果這個不懂的話,要去看 OS 與系統程式和一些程式語言的書。
1 thread 代表只有 1 顆 cpu 在執行程式與演算法,2 threads 代表有兩顆 cpu 可以執行,但是如果只有一顆 cpu,就要靠 OS 或是 software thread 來做 time-sharing 切換,但是 thread 的優點就是比 行程(process) 節省 cpu context-switching 時間(需要備份與交換暫存器與虛擬記憶體的分頁表等等),提升效能。3 threads 以上類推。
所以你舉得圖正式表現 dual-core opteron 的性能極優秀,勝過單核 k8 與雙核 p4 許多,可是你看不懂,有點像千里馬沒有伯樂像中,只能拉車還被嫌。