摩爾定律
每隔18~24個月,積體電路上可容納的電晶體個數便會增加一倍。
電腦系統的種類
- 桌上型電腦(Desktop computers):一般泛用的個人電腦。
- 伺服器型電腦(Server computers):涉及網路,追求高效能、高容量及高穩定性。
- 嵌入式電腦(Embedded computers):嵌入於其他系統(如手機、電視)中的電腦,追求耗電與效能之間的平衡。
程式的處理階層:
軟體層面(Software):
應用程式(Application software):為了達成特定需求(如遊戲、圖片\影片編輯......等等),由高階語言編成的軟體。
系統軟體(System software) :負責管理及協調硬體階層,包括了作業系統及編譯器等等。
硬體層面(Hardware):
囊括了處理器、記憶體,以及IO控制器等等。
程式語言的階層:
高階語言(High level language):
貼近人類語言,容易閱讀及編寫,透過編譯器或直譯器轉換為機器碼。
組合語言(Assembly language):
屬於低階語言,指令多與處理器直接對應,以文字來描述機器的行為,透過組譯器轉換為機械碼。
機器碼(Machine code):
由0和1構成的處理器的指令集,電腦可以直接識別。
電腦的元件:
不論是嵌入式、伺服器,或是桌上型電腦,都包含了這5個主要部分:
- 輸入與輸出元件
- 記憶元件
- 控制元件
- 資料路徑(Data path)
效能評估
Response Time and Throughput
- Response Time(反應時間)
- Throughput(生產能力):在一定時間內,所能完成的工作量。
CPU time
即CPU處理給定的工作所花費的時間,可再細分為User CPU time(處理器在處理這分工作所花的時間)與System CPU time(作業系統為了執行這份工作額外的準備時間)
CPU time 可以這麼定義:
CPU Time = CPU Clock Cycles * Clock Cycle Time
= CPU Clock Cycles / Clock Rate
Clock cycle稱為時脈週期,時脈(Clock)就像電腦中的一個計數器,每當時脈走了一格,便是完成了一個時脈周期,而走這一格所花費的時間,即是Clock Cycle Time,因此CPU Time即是總共走了幾個時脈周期乘上每走一個時脈周期所要花費的時間。
因此,若要改善CPU Time,我們能從減少clock cycle,或是增加Clock Rate著手。
CPI
CPI (Cycle per instruction) ,表示每執行一個指令(Instruction),所要花費的時脈周期
Clock Cycles = Sigma(CPIi * Instruction Counti ),i from 1 to n.
Average CPI = Clock Cycles/Instruction count
指令的個數由編譯器、ISA(ISA instruction set architecture)、程式與演算法共同決定。
CPU Power
Power = Capacitive load * Voltage2 * Frequency
設計要追求高響應(Frequency)而低功耗(Power),便須下調前兩者的影響,然而在2004年後,降低電壓與冷卻的技術飽和而停滯,在功率挑戰中形同撞上了一面高牆(Power wall),為了執續強化處理器的效能,技術便轉往多核心發展。
然而純粹增加核心數並不完全相關於效能改善,即是說「在單核心中要執行100s的工作,在五核心的電腦並不會只要執行20s」,實際上,它要花費 36 秒,這個數字是由阿姆達爾定律所推得(80/5 + 20 = 36),阿姆達爾闡明了:即便無限的增加處理器的個數,仍然存在一個加速上限。
沒有留言:
張貼留言