計組復習
- 單位
- 1TB = \(2^{10}\)GB = \(2^{20}\)MB = \(2^{30}\)KB
- 1GB = \(2^{10}\)KB = \(2^{20}\)KB
- 1MB = \(2^{10}\)KB
- 1KB = \(2^{10}\)B
Chap 1 概論
馮諾依曼計算機的主要特點
- 存儲程序方式,程序控制。
- 按地址訪問,指令順序執行。
- 單元定長的一維線性空間存儲器。
- 使用低級語言,數據以二進制表示。
- 單處理機結構,以運算器為中心。
普林斯頓體系結構
以存儲器為中心的馮諾依曼體系結構
計算機系統的層次結構(硬件)3層
- 數字邏輯層:使用何種線路和如何存儲信息、傳送信息、運算和加工信息。
- 微體系結構層:需設置哪些功能部件,每個部件如何組成和怎樣運行,部件之間如何相互連接並協同工作。
- 指令系統層:確定使用哪些指令,指令能處理的數據類型和對其運算所有的算法,指令的格式和完成的功能。
計算機系統的層次結構(軟件)5層
計算機軟件系統
- 系統軟件
- 操作系統
- 語言處理程序
- 數據庫管理系統 DBMS
- 服務性程序
- 網絡管理軟件
- 應用軟件
CPU區別讀出的是指令還是數據(簡答)
- 從兩個方面回答
- 時間方面
- 指令流:取指周期
- 數據流:執行周期
- 空間方面
- 指令流:從主存到指令寄存器
- 數據流:從主存到數據寄存器
計算機體系結構分類
- SISD: Single Instruction stream Single Data stream, 單處理機
- SIMD: Single Instruction stream Multiple Data stream, 並行處理機,向量處理機
- MISD:現實中不存在
- MSMD:多處理機(緊耦合系統),機群系統(多計算機系統,松耦合系統)
Chap 2 運算方法和運算器
機器碼表示
- 真值:機器數原來的數值,寫了+ - 的
- 原碼
- 反碼:正的時候和原碼一樣,負的時候為絕對值的反碼取反。
- 補碼
- 移碼:數值位和補碼一樣,符號位與補碼相反
進位計數制
進制轉換
-
8,16進制轉換為10進制:直接加權求和
-
10轉 2 8 16
- 直接:10 -> 2 8 16
- 間接:10 -> 2 -> 8, 16
-
直接轉換法
- 整數: 除R取余,先得低位,直至商為0
- 小數:乘R取整,顯得高位,直至積為0
-
二進制轉八進制:3位B 1位O,不夠位就以小數點為中心項兩端補0。
-
二進制轉十六進制:4位B 1位H,不夠位就以小數點為中心項兩端補0。
字符編碼
- ASCII
- 7位ASCII, 行4列3
- 128個編碼, \(2^7\)個
- 10個數字:30H-39H
- 26個小寫字母:61H-7AH
- 26個大寫字母:41H-5AH
- 各種運算符、標點符號
校驗碼
- 目的:用於檢查或糾正 錯誤
- 基本思想:冗余校驗
奇偶校驗碼
-
奇偶校驗碼:在有效信息前面或者后面加一位 奇/偶校驗位
-
XOR
-
-
這是放在前面,而且總共八位,因為一開始是為了給7位ASCII服務的
-
-
補碼計算
- 補碼加法特點
- 符號位作為數的一部分參與運算,符號位的進位丟掉
- 參與運算的操作數和運算結果均為補碼形式表示。
- 定點數
- 補碼減法要換成加法
- \([X-Y]_補= [X+(-Y)]_補=[X]_補+[-Y]_補\)
- 求補:已知\([Y]_補\),要求\([-Y]_補\)
- 取反+1
溢出判斷
- 正溢:+ + +,大於正最大值
- 負溢:- - -, 小於負最小值
- 單符號位:a b同號,且與c不同
- (重點)雙符號位:01 or 10 用XOR可以判斷
定點乘法
-
不帶符號
-
帶符號
-
-
算前求補:求初絕對值,正-> 真值 -> 直通,負-> 求真值
-
算后求補:根據原符號位判斷 -> 異或
-
定點運算器
- 邏輯運算
- 非
- 加 \(\or\) 或 +
- 乘 \(\and\) 或 ·
- 異 $ \oplus $
- 對齊,一位位邏輯處理,千萬要和算數運算區別,邏輯運算是沒有進位那些的。
浮點數
- 規格化:尾數最高位非零
- 00.1.... (補碼正數)
- 11.0.... (補碼負數)
- 左規:尾數左移,階數-1
- 右規:尾數右移,階數+1
- 規格化好處
- 一個數的浮點表示唯一
- 保留最多的有效數字,避免丟失精度
- IEEE754
- S E M
- 實際上的值是: \((-1)^S*2^{(E-bias)}*1.M\)
- 32: 1 8 23, bias: 127
- 64: 1 11 52, bias: 1023
流水線
- 時鍾周期: 所有過程中的最長操作時間+緩沖時間
- k級過程段的流水線處理n個任務所需的時鍾周期數:\(T_k = k+(n-1)\)
- 非流水線的硬件來處理n個任務所需的時鍾周期數為:\(T_L=n * k\)
- k級線性流水線的加速比 \(C_k\): \(C_k = \frac {T_L}{T_k} = \frac{n*k}{k+(n-1)}\)
浮點運算器流水線運算步驟
- 求階差
- 對階
- 尾數(加/減)運算
- 結果規格化處理
Chap 3存儲器
分類
- 存儲介質
- 半導體:RAM, ROM, -》主存
- 磁性介質:磁盤,磁帶-》輔存
- 光介質:光盤-》輔存
- 存取方式
- 隨機存取存儲器 : 主存
- 順序存取存儲區: 磁盤,磁帶
- 相聯存儲器:cache
- 存儲器的讀寫功能
- 只讀: ROM
- 讀寫:RAM
- 信息的可保存性
- 永久記憶:非易失,輔存,ROM
- 非永久記憶:易失,主存中的RAM
- 在計算機系統中的作用
- 主存:內存,存放系統當前正在執行的數據和程序,屬於臨時存儲器
- 輔存:外存,存放暫時不用的數據和程序,永久存儲器
主存分類
- ROM
- MROM
- PROM
- EPROM
- EEPROM
- RAM
- FLASH:介於EPROM和EEPROM之間
SRAM和DRAM
比較 | SRAM | DRAM |
---|---|---|
存儲方式 | 雙穩態觸發器 | 電容上的電荷 |
電源不掉電時 | 信息穩定 | 信息會丟失 |
刷新 | N | Y |
集成度 | 低 | 高 |
破壞性讀出 | N | Y |
地址復用 | N | Y |
容量 | 小 | 大 |
價格 | 高 | 低 |
速度 | 快 | 慢 |
應用 | Cache | 主存 |
刷新
比較 | 集中刷新 | 分散刷新 | 異步刷新 |
---|---|---|---|
方法 | 2ms刷新間隔時間內,集中刷新,其余時間都用於訪問操作 | 任何一個存儲周期內: 訪存周期 刷新周期 |
2ms內分散地把各行刷新一邊 |
特點 | 刷新周期縮短遍 | ||
缺點 | 死時間 | 過度刷新 存儲周期為存儲器存儲周期的兩倍 |
要計數器 |
優點 | 提高了整機速度 同時解決了集中式刷新中死區時間過長的問題 |
存儲器容量擴展
比較 | 字長位數擴展 | 字存儲容量擴展 |
---|---|---|
所需芯片數 d | 設計要求的存儲器容量 / 選擇芯片存儲器容量 | 設計要求的存儲器容量 / 選擇芯片存儲器容量 |
![]() |
![]() |
|
![]() |
![]() |
- 主要區別是:MREQ(訪存) 和 D(數據總線)和 A的譯碼部份(地址總線)
並行存儲區
雙端口存儲器
- 定義:
- 高速工作的存儲器
- 同一個存儲體左右兩個端口有相互獨立的讀寫控制電路(AR, DR)可以分別進行操作
多模塊交叉存儲器
比較 | 順序方式 | 交叉方式(模m) |
---|---|---|
地址形式 | 模塊號+板內地址 | 字+模塊號 |
位置 | \(A_{ij}=m*i+j\) | |
特點 | 高位經譯碼產生選板信號 只需要一套電路(AR,DR和讀寫控制) |
連續的存儲單元一次分布在相鄰的模塊內 用硬件的冗余換取速度 |
帶寬 | \(\frac1{T}\) |
- 交叉存儲器工作原理:流水線執行多個獨立讀寫操作
- 等間隔時間啟動:\(\tau=\frac{T}{m}\), T: 存儲周期
- 交叉存取度:\(m = \frac{T}{\tau}\)
- 要求模塊數必須大於等於m,確保再次啟動某模塊時,前次操作已完成。
- 理想情況下,交叉存儲區讀取m個字需要的時間
- \(t_1 = T +(m-1)\tau\)
- 順序方式為:\(t_2 = m*T\)
- T:存儲周期
- \(\tau\):總線傳送周期
Cache
- 定義:介於CPU和主存之間的高速緩沖存儲器,存取速度比主存快。
- 目的:為了解決CPU和主存之間速度不匹配而采用的技術。
- 基於程序運行中的空間局部性和時間局部性。
- 訪問存儲器的請求可以由:CPU或者Cache發出。
- CPU不能直接訪問外存(輔存)。
- Cache獨立編址,與主存空間是映射關系。
主存與Cache的地址映射及變化
比較 | 全相聯映射 | 直接映射方式 | 組相聯映射 |
---|---|---|---|
特點 | 多對多的映射,對於主存的任何一塊均可以映射到Cache的任何一行。 | 多對一的映射關系。同余的同一行。 | 分組,分到哪組是固定的,但是這組哪一行是靈活的。同余的同一組。 |
優點 | 機制靈活,命中率高,Cache的行利用率高。 | 映射方式簡單,易實現,只用比較一次。 | 增加了映射的靈活性,提高了命中率,硬件開銷不是很大。 |
缺點 | 速度較慢,成本較高,比較電路難於設計和實現。 | 機制不靈活,Cache命中率低。 | |
應用 | 適合小容量的Cache | 適合需要大容量Cache的場合 | 普遍采用 |
Cache的讀寫操作
- Cache控制邏輯首先要依據地址來判斷這個字是否在Cache中,若在Cache中,則稱為“命中”,否則稱為“不命中”。
- 讀命中:立即從Cache讀出送給CPU
- 讀不命中:
- 將主存中該字所在的數據塊復制到Cache中,然后將這個字傳送給CPU。
- 把此字從主存讀出送到CPU,同時,把包含這個字的數據塊從主存中讀出送到Cache中。
Cache的命中率
- 命中率\(h = \frac{N_c}{N_c+N_m}\)
- 在一個程序執行期間,\(N_c\):Cache完成存取的總次數,\(N_m\) :主存完成存取的總次數。
- Cache/主存系統的平均訪問時間:\(t_a=h*t_c+(1-h)*t_m\)
- \(r=\frac{t_m}{t_c}\), 5-10合適,r:主存慢於cache的倍率
- 訪問效率:\(e=\frac{t_c}{t_a}=\frac{t_c}{ht_c+(1-h)t_m}=\frac{1}{h+(1-h)r}=\frac{1}{r+(1-r)h}\)
Cache替換算法
- 隨機替換算法(不科學)
- FIFO(不科學)
- 最近最少使用算法 LRU
- 需要配計數器
- Cache每命中一次,命中行的計數器清零,其他+1
- 需要替換則將計數器值最大的行替換出去
Cache寫操作策略
- 寫回法
- 命中:修改Cache內容,只當此行被換出的時候才寫回主存。
- 每行配置修改位M,被修改過 -> M=1
- 顯著減少寫主存的次數,但是存在不一致性隱患
- 全寫法
- 命中:Cache和主存同時修改
- 不命中:向主存寫入
- 無高速緩存作用,降低了Cache的功效
- 寫一次法 ??
- 當第一次寫Cache命中才要同時寫入主存。以后處理方法與寫回法相同??
- 維護系統全部Cache的一致性。
虛擬存儲器定義
- 容量非常大的存儲器邏輯模型
- 借助於磁盤等輔存來擴大主存容量
- 指“主存-外存”這一存儲層次
- 虛擬存儲器的基本特征:虛存空間大於實存空間
- 虛存空間是由輔存支持的
三級存儲體系的組成部分
- 由Cache、主存和輔存構成。
- 在Cache和主存之間,主存和輔存之間分別由輔助硬件和輔助軟硬件負責信息的調度,以便各級存儲器能夠組成有機的三級存儲體系。
- Cache和主存構成了系統內存,而主存和輔存依靠輔助軟硬件的支持構成了虛擬存儲器。
比較Cache-主存和主存-輔存這兩個存儲層次的異同
- 相同點:
- 出發點相同。二者都是為了提高存儲系統的性能價格而構造的層次性存儲體系,都力圖使存儲系統的性能接近高速存儲器,而價格接近低速存儲器。
- 原理相同。都是利用了程序運行時的局部性原理把最近常用的信息塊從相對慢速而大容量的存儲器調入相對高速而小容量的存儲器。
- 不同點:
- 目的不同。
- Cache主要解決主存和CPU的速度差異問題。
- 虛存就性能價格比的提高而言主要是解決存儲容量的問題。
- 數據通路不同。
- CPU與Cache和主存之間均有直接訪問通路,Cache不命中時,可以直接訪問主存。
- 虛存的輔存與CPU之間不存在直接的數據通路,當主存不命中時只能通過調頁解決,CPU最終還是要訪問主存。
- 透明性不同。
- Cache的管理完全由硬件完成,對系統程序和應用程序均透明。
- 虛存管理由軟件軟件和硬件共同完成。對系統程序不透明,對應用程序透明。
- 未命中時的損失不同。
- 虛存未命中時系統性能損失要遠大於Cache未命中時的損失。
- 目的不同。
Chap 4 指令系統
RISC三要素
- 一個有限的簡單的指令集;指令長度固定,指令格式和尋址方式種類少。
- CPU配備大量的通用寄存器;只有取數/存數指令訪問存儲器,其余指令的操作均在寄存器之間進行。
- 強調對指令流水線的優化。
指令按功能分類
- 數據傳送指令
- 算術邏輯運算指令
- 程序控制指令
- I/O指令
- 其他指令
指令按操作碼分類
- 單字長指令
- 雙字長指令
- 三字長指令
指令按指令字長分類
- 長度是否固定
- 固定指令字長指令
- 可變指令字長指令
- 指令字長與機器字長的關系
- 短格式指令:指令字長小於或等於機器字長
- 長格式指令:指令字長大於機器字長
指令按地址碼分類
- 三地址指令
- 二地址指令
- RR:最快
- RS
- SS:最慢
- 一地址指令
- 單操作數:OP(A)->AC
- 雙操作數: (AC)OP(A)->AC
- 零地址指令
操作碼擴展技術
尋址方法
- 立即尋址
- 直接尋址
- 間接尋址
- 寄存器尋址
- 寄存器間接尋址
- 偏移尋址——變址尋址
- 偏移尋址——基址尋址
- 相對尋址
- E=(PC)+D
- D: DISP, 相對偏移量
- 主要用於轉移指令
- 偏移量可以是正數,也可以是負數。
- 堆棧尋址
- PUSH Ri : (SP)-1->SP, (Ri)->(SP)
- POP Ri: ((SP))->Ri, (SP)+1->SP
例4.1
- 一行 -> 單字長
Chap 5 CPU
CPU基本部份
- 運算器
- Cache
- 控制器
CPU四大基本功能
- 指令控制:程序的順序控制。
- 操作控制:CPU管理並產生由內存取出的每條指令的操作信號,把各種操作信息送往相應部件,從而控制這些部件按指令的要求進行動作。
- 時間控制:對各種操作實施時間上的定時。
- 數據加工:對數據進行算術運算和邏輯運算處理。
CPU中的主要寄存器
- 數據緩沖寄存器 DR
- 地址寄存器 AR
- 指令寄存器 IR
- 程序計數器 PC
- 累加寄存器 AC
- 狀態條件寄存器 PSW
造成流水線相關的原因
- 局部性相關
- 資源相關:多條指令在同一機器時鍾周期內爭用同一個功能部件所發生的沖突。
- 數據相關:一條指令的執行需要等前一條指令執行完后才能進行
- 控制相關(全局性相關):
- 由條件轉移或中斷引起的
微指令
- 寫死的
- IR對程序員透明
Chap 6 總線
總線的連接方式
單總線結構
- 特點:
- 每個設備被指定一個總線地址
- 所有設備的操作方式與CPU內部的指令系統是一樣的
- 優點
- 系統結構靈活,可擴充性強(特別是多CPU系統)
- 缺點
- 單總線速度受機器速度的限制
- 所有設備與總線接口必須統一
多總線結構
總線結構四部份
- 數據傳送總線:地址線、數據線、控制線
- 仲裁總線:總線請求線和總線授權線(BR,BG)
- 中斷和同步總線:用於處理帶優先級的中斷操作,包括中斷請求線和和中斷認可線。
- 公用線:時鍾信號線、電源線、地線、系統復位線以及加電或斷電的時序信號線等
PCI總線的概念(簡答題)
- PCI總線是一個與處理器無關的高速外圍總線,是至關重要的層間總線。它采用同步時序協議和集中式仲裁策略,並巨有猝發式數據傳送機制。
- PCI設備可以是主設備,也可以是從設備,或兼而有之。
PCI總線體系結構中的橋及其功能
- 三種橋:HOST橋,PCI/LAGACY橋和PCI/PCI橋。
- 橋的功能:連接兩條總線,使彼此間相互通信。
Chap 7 外存與I/O設備
外設分類
- 輸入設備
- 輸出設備
- 外存設備
- 數據通信設備
- 過程控制設備
顯示設備分辨率與灰度級
分辨率
- 顯示器所能表示的像素個數
- ex: 1024*768
- 像素越密,分辨率越高,圖像越清晰。
灰度級
- 單色顯示器:灰度級指所顯示的像素點的亮暗差別的級數
- 彩色顯示器:表示顏色的不同
- 4位可以表示16級灰度
- n位可以表示\(2^n\)級灰度
- 灰度級越多,圖像層次越清楚越逼真,它取決於每個像素對應的刷新存儲器的位數。
刷新
- 頻率必須大於30次/秒
- 一般采用電視的標准:50次/秒
- 用電子束重復掃描屏幕的過程以獲得穩定的圖像顯示
- 刷新存儲器
- 又稱 視頻存儲器或顯存
- 用來存一幀圖像的信息,以提供刷新圖像的信號。
- 其容量由分辨率和灰度級共同決定。
- ex:分辨率\(1024*1024\), 灰度級256, 則顯存容量需要:\(1024*1024*8\)
磁盤
- 扇區
- 磁道
- 磁盤編址:(台號)記錄面號 磁道號 扇區號
存儲密度
-
道密度\(D_t\)
- 記錄區內徑向單位長度記錄的磁道數
- 單位TPI(道/英寸) or TPM(道/毫米)
-
位密度 \(D_b\)
- 磁道(最內圈)單位長度所能記錄的二進制位數
- 單位: bPI(位/英寸) or bPM(位/毫米)
-
存儲容量
- \(C_N=n*K*S_N\)
- n: 數據記錄面數
- k: 每面磁道數
- \(S_N\): 內圈磁道周長*位密度
-
格式化容量
- \(C=n*k*l*m\)
- l: 每條磁道的扇區數
- m:每個扇區的字節數
-
數據傳輸速率
- 磁盤存儲器在單位時間內讀/寫的二進制信息量
- \(D_{tr}=P*S\)
- P:每秒轉數
- S:每道容量
- \(T_S\):平均找道時間,定位時間
- \(T_L\): 平均等待時間,旋轉等待時間
- \(T_B=T_S+T_L+數據傳送時間(\frac{數據量}{傳輸速率})\)
- \(T_B=T_S+\frac{1}{2P}+\frac{B}{D_{tr}}\)
Chap 8 輸入/輸出系統
程序中斷方式(程序中斷與子程序比較)
- 共同點:程序轉向
- 不同點
- 通常,程序中斷有隨機性,轉子程序有可重入性。
- 子程序的執行受主程序或上層子程序的控制,而中斷程序與被中斷的程序毫無關系。
- 不存在多個程序同時要求執行一個子程序的情況,但可能發生多個中斷源要求CPU服務的情況。
響應中斷的條件
- 在CPU內部“中斷屏蔽”觸發器位“0”(即中斷不屏蔽)
- 外設有中斷請求:“中斷請求”觸發器為“1”,保持中斷請求信號。
- 外設(接口)的“中斷允許”觸發器必須為“1”,把外設中斷請求送至CPU。
- CPU現行指令的最后一個狀態周期結束。(即CPU執行完一條指令之后)
程序中斷處理過程
- 中斷源的中斷請求
- 中斷響應(中斷相應周期)
- 中斷處理
- 中斷返回
多級中斷
例1
DMA傳送方式
比較 | 在DMA工作時,停止CPU訪問內存的操作 | 周期挪用 | DMA與CPU交替訪問內存 |
---|---|---|---|
優點 | 控制簡單,適用於數據傳輸率很高的設備成組數據傳送。 | 保證DMA傳送的前提下,較好的發揮了CPU與主存的效率。 | 解決了CPU和DMA接口爭奪訪問內存的矛盾。 免去了每次DMA傳送所必須的DMA請求,DMA響應以及內存使用權的交接。 |
缺點 | 在DMA控制器訪問內存階段,內存有空閑。 | 每次DMA傳送都伴隨一次DMA請求、DMA響應和兩次內存訪問權的轉接,頻繁的往復操作會導致系統的效率下降。 | 對CPU,它感受到內存的存取周期長了一倍,不利於提高CPU的效率。 分配給DMA接口訪問內存的周期大部分用不上,但又不能為CPU所用,造成了資源浪費。 |
特點 | DMA工作時,CPU停止訪問內存。 | 當有DMA請求時,CPU讓出一個存儲周期實現DMA數據交換。 | |
應用 | 適用於數據傳輸率很高的設備成組數據傳送。 | 適用於設備讀寫周期大於內存存儲周期的情況。 | 適用於CPU周期大於主存存儲周期的DMA |
注意 | 有DMA請求時,CPU無訪內要求時無影響。 有DMA請求,CPU也要訪內,則先DMA操作再CPU操作。 |
DMA與程序中斷的比較
- 程序中斷是用服務程序處理中斷事件,實質上是CPU的程序切換。DMA則是由DMA控制器控制數據交換,每交換一次,CPU“讓出”一個存儲周期。
- 程序中斷可完成較復雜的處理,DMA只能實現數據的傳輸和簡單的加工。
- 程序中斷開銷大於DMA,DMA是以硬件為代價換取CPU時間。
- DMA和程序中斷的響應時間不同。
- DMA的優先級別高於一般的程序中斷。
比較通道,DMA,中斷
- 通道:可以實現對外設的統一管理和外設與內存之間的數據傳送,大大提高了CPU的工作效率,一般用於服務器和大型計算機上。
- DMA:數據傳送速率很高,傳送速率僅收到內存訪問時間的限制。需要更多硬件,適用於內存和高速外設之間大批數據交換的場合。
- 中斷:一般適用於隨機出現的服務,一旦提出要求應立即執行,節省CPU時間開銷。
Chap 9 並行組織與結構
從計算機系統中處理數據的並行性角度划分
- 字串位串:沒有並行性。同時只對一個字的一位進行處理,通常指串行單處理機。
- 字串位並:開始出現並行性。同時對一個字的全部位進行並行處理,不同字之間是串行的。
- 字並位串:開始有較高的並行性。同時對許多字的同一位進行處理,通常指傳統的並行單處理機。
- 全並行:同時對許多字的全部或部份位組進行處理。最高一級的並行。
從計算機系統內部執行程序的角度划分
- 指令內部並行:一條指令內部各微操作之間的並行。
- 指令級並行:並行執行兩條或多條指令。
- 任務級或過程級並行:並行執行兩個以上過程或任務(程序段)。
- 作業或程序級並行:並行執行兩個以上作業或程序。