計算機體系結構的鐵律(iron law)

計算機體系結構的鐵律可由以下公式來描述:


從Programmer的角度來看,處理器的性能就是執行程序的耗費的時間,所以用Time/Program來刻畫處理器性能。而這個簡單的公式背後是有非常豐富的內涵的,具體地說,就是該公式又可以展開爲以下三個簡單有內涵的公式。

  1. Instructions/Program:表示一個程序對應的指令數量,這部分工作主要集中在編譯器領域,一般來說,指令數量越少執行速度越快。例如,用GCC編譯器時,使用-O3 當然會比-O0 快不少。如果處理器支持SSE,編譯器對帶循環的計算密集型部分的應用進行自動循環展開或者向量化的話,速度還能提升一個等級。 當然,也不是那麼絕對,RISC處理器的編譯器一般來說編譯出來的指令數量比較多,但執行速度不一定會比CISC慢。
  2. Cycles/Instruction:表示執行一條指令所需要的時鐘週期數量,這部分工作主要集中在處理器設計領域。爲了降低處理器的CPI,大家最耳熟能詳的方法便是使用流水線。例如從傳統的5級流水增加到25級流水,當然也會涉及到很多其他問題,諸如遇到分支時需要使用氣泡來填充流水線,這將導致的性能損失(因爲平均執行6~7條指令就會越到一個分支),當然也有解決辦法,例如使用Trace Cache。或者使用超長指令字(VLIW)的辦法提升一個週期能處理的指令數量。Intel的高級矢量擴展指令集(AVX, Advanced Vector Extensions)也屬於這個範疇。對了,還有支持亂序執行的處理器。招數五花八門,最終目標都是爲了減小CPI,即單個指令需要的時鐘週期。
  3. Time/Cycle:每個時鐘週期對應的時間。其倒數就是時鐘頻率(f,frequency)。這就是芯片設計者的領域了,在考慮給定的處理器架構下,怎樣集成更多的二極管同時提升到更高的主頻便是他們的任務。處理器的頻率從處理器誕生到2007年左右的時候都一直在提升,之後反而在下降了。主要原因便是功耗問題(Dennard Scaling Law),功耗和頻率的平方成正比。所以通過降低主頻,增加核數,便成了處理器設計的主流模式了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章