計算機體系結構---簡單概念0

基於MOOC,華中科技大學計算機體系結構課程

1. 計算機系統結構定義

1.1 經典定義

computer architecture is a computer programmer see attribute, namely the conceptual structure and functional characteristics. (Amdahl,1964)
計算機體系結構是機器級語言程序員看到的屬性,即概念結構和功能特徵。
在這裏插入圖片描述

1.2 廣義定義

computer architecture covers all three aspects of computer design——instruction set architecture, organization or microarchitecture, and hardware.(Hennessy & Patterson,1990)
計算機體系結構涵蓋了計算機設計的所有三個方面:指令集體系結構,組成或微體系結構以及硬件。

2. 計算機系統結構

2.1 Acceleration (Amdahl)

(1)加快經常性事件(計算機設計原則):耗時最多的事件
(2)Amdahl定理:
Sn=1(1Fe)+FeSe{{\rm{S}}_n} = \frac{1}{{(1 - {F_e}) + \frac{{{F_e}}}{{{S_e}}}}}
(3)CPU性能公式: CPU時間 = IC × CPI × 時鐘週期時間
(4)局部性原理:程序執行時間的90%都是在執行程序中10%的代碼,時間局部性,空間局部性

2.2 Instruction (Interface)

(1)指令系統:用硬件實現的命令集
(2)操作碼—操作數(尋址)
尋址方式包括:寄存器尋址,立即數尋址,偏移尋址,寄存器間接尋址,索引尋址
操作類型包括:算術和邏輯運算,數據傳輸(load, store),控制 (分支,跳轉,過程調用和返回等),系統 (系統調用,虛擬存儲器管理),浮點(浮點操作)
(3)CISC (Complex Instruction Set Computer,複雜指令集計算機): 複雜的指令集、複雜的硬件、較少的寄存器,簡潔的代碼行。
RISC(Reduced Instruction Set Computer,精簡指令集計算機):精簡的指令集、簡單的硬件、較多的寄存器、較多的代碼行。

2.3 Processing (Parallel)

SISD(Single instruction, Single data. 單指令流單數據流計算機)
SIMD (Single instruction, Multiple data. 單指令流多數據流計算機)
MISD(Multiple instruction, Single data. 單指令流多數據流計算機)
MIMD (Multiple instruction, Multiple data. 多指令流多數據流計算機)

2.4 Storage or memory (System)

存儲系統層次結構

2.5 Network (Connection)

結構互聯

圖靈機是理論基礎,處理,存儲,傳輸。只要對數據進行處理、存儲、傳輸三種簡單操作,就能解決一切可計算的數學問題。
馮諾依曼結構是結構基礎:輸入設備、輸出設備、存儲器、控制器、運算器。
馮·諾依曼結構的主要特點
(1)計算機以運算器爲中心。
(2)在存儲器中,指令和數據同等對待。
(3)存儲器是按地址訪問、按順序線性編址的一維結構,每個單元的位數是固定的。
(4)指令的執行是順序的。
摩爾定律是物質基礎:芯片上晶體管的數量每18-24個月翻一番。
Amdahl定律:計算機系統結構的總原則

3. 基礎知識

3.1 Amdahl定理

加速比:Sn=T0Tn{{\rm{S}}_n}{\rm{ = }}\frac{{{T_0}}}{{{T_n}}}
T0是加速前的執行時間,Tn是加速後的執行時間。假設Fe是加速部分佔原來時間的比例,Se是加速部分的部件加速比
原執行時間爲:T0=T0(1Fe+Fe){T_0} = {T_0}(1 - {F_e} + {F_e})
新執行時間爲:Tn=T0(1Fe+FeSe){T_n} = {T_0}(1 - {F_e} + \frac{{{F_e}}}{{{S_e}}})
加速比:
Sn=T0Tn=1(1Fe)+FeSe{S_n} = \frac{{{T_0}}}{{{T_n}}} = \frac{1}{{(1 - {F_e}) + \frac{{{F_e}}}{{{S_e}}}}}
對計算機中的性能改進,是有一個極限值的。
Fe0,Sn1{F_e} \to 0,{S_n} \to 1
Se,Sn11Fe{S_e} \to \infty ,{S_n} \to \frac{1}{{1 - {F_e}}}

例題:將計算機系統中某一功能的處理速度加快10倍,但該功能的處理時間僅佔整個系統運行時間的40%,則採用此增強功能方法後,能使整個系統的性能提高多少?
Fe=0.4,Se=10{F_e} = 0.4,{S_e} = 10
代入公式即得結果。

3.2 CPU性能公式

CPU時間是執行一個程序所需的CPU時間,等於執行程序所需的時鐘週期數×時鐘週期時間(1/時鐘頻率)
CPI:Cycles Per Instruction, 是平均每條指令耗費的時鐘週期數
IPC:Instruction Per Cycles, 每個時鐘週期運行的平均指令條數
IC: 指令條數
CPI × IC = 執行程序所需的時鐘週期數
CPU時間 = IC × CPI × 時鐘週期時間 = IC × CPI / 時鐘頻率

例題: 假設FP指令的比例爲25%,其中,FPSQR佔全部指令的比例爲2%,FP操作的CPI爲4,FPSQR操作的CPI爲20,非浮點指令的平均CPI爲1.33。現有兩種改進方案,第一種是把FPSQR操作的CPl減至2,第二種是把所有的FP操作的CPI減至2,試比較兩種方案對系統性能的提高程度。注:FPSQR指令屬於FP指令
原CPI = 0.25 × 4 + (1 - 0.25)× 1.33 = 2
第一種改進方法:CPI_1 = CPI - 0.2 × (20 - 2) = 1.64
第一種改進方法:CPI_2 = CPI - 0.25 × (4 - 2) = 1.5

例題: 某程序在一臺時鐘頻率爲2GHz的計算機A上運行需要10秒。現在將設計一臺計算機B,希望將運行時間縮短爲6秒。計算機的設計者採用的方法是提高時鐘頻率,但這會影響CPU其餘部分的設計,使計算機B運行該程序時需要相當於計算機A的1.2倍的時鐘週期數。那麼計算機設計者應該將時鐘頻率提高到?
A的時鐘週期數 = 10 / 時鐘週期時間 = 10 / 0.5 = 20
B的時鐘週期數 = 1.2 × 20 = 24
B的時鐘週期時間 = 6 / 24 = 1/4

3.2 並行性

  1. 從數據處理的角度看,分爲:
    (1)字串位串:每次只處理一個字的一位
    (2)字串位並:同時處理一個字的全部位
    (3)字並位串:同時處理多個字的同一位
    (4)字並位並: 同時處理全部字的全部位或部分位
  2. 從執行程序的角度看:
    (1)指令內部並行:單條指令中各微操作之間的並行。
    (2)指令級並行:並行執行兩條或兩條以上的指令。
    (3)線程級並行:並行執行兩個或兩個以上的線程。
    (4)任務級或過程級並行:並行執行兩個或兩個以上的過程或任務(程序段)
    (5)作業或程序級並行:並行執行兩個或兩個以上的作業或程序
  3. 提高並行性的途徑
    (1)時間重疊:引入時間因素,讓多個處理過程在時間上相互錯開,輪流重疊地使用同一套硬件設備的各個部分,以加快硬件週轉而贏得速度。(流水線)
    (2)資源重複:引入空間因素,以數量取勝。通過重複設置硬件資源,大幅度地提高計算機系統的性能。(加入多個部件)
    (3)資源共享:軟件方法,使多個任務按一定時間順序輪流使用同一套硬件設備。(通過軟件的方法)

4. 計算機系統的評價

4.1 性能

  1. 響應時間:完成一個任務的全部時間(用戶角度)
  2. 吞吐率:單位時間內完成的任務數(管理員角度)

4.2 成本、功耗、可靠性和可用性

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