以下完全為個人總結——若發現問題請下方評論,定回
I/O
- 主機主頻 50MHz (50M個時鐘周期)/s
- CPI m (m個時鐘周期)/每執行一條指令
- MIPS 50M/m (主機每秒執行的指令數)
- 外設數據傳輸率 nB/s
- 總線帶寬 32位或以32位傳輸 即每傳輸32位的數據請求一次
- (nB/s)/4B=n/4 (每秒發出的請求次數)--4B即上面的32位
- 交換塊16B或數據16B,則傳輸一次需 16/n s,那么一秒鐘傳輸n/16次
- 求占cpu時間百分比時,若用時鐘周期來求,則分母可由cpu主頻得知50M個時鐘周期,分子具體情況具體求。
- 關于終端屏蔽,根據屏蔽字得到的優先級,在運行過程中起作用,而計算機的實際啟動順序仍按照硬件優先次序進行(即中斷響應優先級),只不過啟動后各中斷會根據屏蔽字優先級進行搶占處理(即中斷處理優先級)。
- 程序查詢方式-中斷方式-DMA方式比較
DMA方式對CPU的占用最少,即對CPU的影響是最小的,其次中斷方式,次之程序查詢 - 中斷處理流程
(中斷隱指令部分,硬件直接實現,并非指令無操作碼)
關中斷-保存斷點-引出中斷服務程序(取出終端程序入口地址送至pc)
(中斷服務程序內部)
保存現場和屏蔽字-開中斷-執行中斷服務程序-關中斷-恢復現場和屏蔽字-中斷返回,開中斷 - VRAM容量(顯存容量)
VRAM容量=分辨率 * 灰度級 * 幀頻 ,例如 1280 * 1080 * 24bit * 85(Hz) - 顏色數 256=2^8 即8位灰度級
-
磁盤結構
單片盤片
立體3D結構
存儲容量=磁頭數 × 磁道(柱面)數 × 每道扇區數 × 每扇區字節數
數據傳輸率Dr=磁盤轉數r/s * 每條磁道容量 N個字節 即 Dr=r * N;
面密度=位密度(單位磁道長度記錄二進制代碼位數)* 道密度(半徑方向單位長度的磁道數);
- 若磁盤 120r/s 則 平均查詢扇區時間為(1/120)/2 (存取一個扇區的平均延遲)即旋轉半周的時間;
- 讀一個扇區中數據所用時間=找磁道的時間+找扇區的時間+磁頭掃過一個扇區的時間;
找磁道的時間:一般選磁頭在磁盤半徑方向移動1/2個半徑所用的時間的平均值;
找扇區時間:一般選用磁盤旋轉半周所用的時間為平均值;
磁頭掃過一個扇區時間:磁盤轉一圈的時間/磁盤的扇區數; - 磁盤陣列 -通過同時使用多個磁盤提高傳輸率,通過并行存儲提高數據吞吐量,通過鏡像提高安全性,通過數據校驗提供容錯能力
總線
- 半同步通信總線(擁有同步通信及異步通信的特點)
異步總線中引入時鐘信號,其就緒及應答信號皆在時鐘的上升沿或下降沿有效,不受其他時間的信號干擾;例如 PCI總線; - 分類: 時序上 同步/異步 數據傳輸格式 并行/串行
- 通信總線也稱外部總線
- 猝發傳送(突發傳送)
一個總線周期內,傳送存儲地址連續的多個數據字; - 單總線 雙總線 三總線
單總線并不是只有一根信號線可分為(地址、數據、控制)
-系統總線
-主存總線、I/O總線
-主存總線、I/O總線、DMA總線 - 總線帶寬=總線頻率*總線寬度;
- 總線頻率=總線時鐘頻率/(一個總線周期中的時鐘周期數);
- 總線寬度 - 總線位寬,通常指數據總線的根數
- 總線時鐘周期=1/總線時鐘頻率;
- 總線仲裁 -集中/分布式
鏈式 - 三根控制線 BS BR BG
計數器定時查詢 - n個設備需要 (ceil)logn+2 根設備地址線
獨立請求 - 2n+1控制線
分布式即自己分別處理自己的模塊,最后通過博弈選出最終模塊 - 同步定時 - 統一的時鐘信號
- 異步定時 - 無統一時鐘 用握手信號實現定時與控制
不互鎖、半互鎖、全互鎖
區分:發出信號后是否必須等待回應才能繼續; - 總線標準
ISA EISA VESA PCI PCI-Express
USB(Universal Serial Bus)總線 (通用串行總線)
AGP(加速圖形接口)
局部總線 -VESA PCI AGP
CPU
- 運算器 - 數據加工處理的中心
ALU、暫存寄存器、ACC、通用寄存器、PSW、移位器、計數器(CT) - 控制器
PC、IR、MAR、MDR、指令譯碼器、時序系統、微操作信號發生器 - IR MAR MDR對用戶透明
- 機器字長 - CPU一次能處理數據的位數
- PC的位數 - 取決于存儲器容量
計算機內存容量大小 由地址總線決定
MAR位數和PC相同 - 指令周期 - 取出一條指令并執行完的全部時間
取指周期 + 間址周期+執行周期+中斷周期 (并不是每個指令周期都有中斷周期)
對應四個機器周期 - 一個指令周期 - n個機器周期(也稱cpu周期) - n * m個時鐘周期
- 時鐘周期 - 計算機運行的最基本的時序單位
- 指令 即機器指令(完成一個獨立的算術運算或邏輯運算操作);
- 機器周期通常由存取周期確定 (即計算機完成一個基本操作的時間)
- 存儲器進行一次讀或寫為存儲器訪問時間,連續兩次獨立的讀或寫所需最短時間為存取周期(主存周期)
- 指令字長一般為存儲字長的整數倍(即n * 存儲字長),n=1 時則等于機器周期
- 指令字長與機器字長沒關系,它取決于操作碼長度,操作數地址長度,和操作數地址的個數;
- 中斷周期中的入棧操作是sp-1,向低地址增加;
- 單指令周期/多指令周期/流水線
單 - 串行 固定時鐘周期
多 - 串行 不固定時鐘周期
流 - 一種并行方案 - 硬布線控制器 - 組合邏輯控制器 執行速度快但不可修改
- CPU數據通路結構三種 (CPU內部(各寄存器及運算部件之間)與系統總線(計算機內各功能部件)不同)
CPU內部單總線、CPU內部三總線、專用數據通路 - 單總線CPU中ALU僅有一個輸入端與總線相連,另一輸入端通過暫存器與總線相連
- CU - 控制單元
其輸出結果受到 IR、時序系統、執行單元反饋標志 影響 - 三態門 -控制其所在通路的連接與斷開
基本的微操作
取指周期
PC->MAR //pc中取地址送入MAR
1->R //主存讀操作
M(MAR)->MDR //主存將讀取到數據(指令)送入MDR
MDR->IR //MDR將指令送入IR
OP(IR)->CU //操作碼譯碼后送入控制單元
PC+1->PC //PC自增
微程序中需增加
Ad(CMDR)->CMAR
OP(IR)->CMAR
間址周期(即從得到的位地址的數據進行求值例如((X))的值)
Ad(IR)->MAR
1->R
M(MAR)->MDR
執行部分視情況而定
結束后得到的結果有兩種情況
1-送入主存
ACC->MDR
**MDR->M(MAR)**
2-送入累加器
(R2)->ACC //左邊作為數據送入寄存器時都要加()
- 通過ALU進行+1操作的PC
要考慮總線的占用問題,且使所用時鐘周期最少
pic
PC->MAR 1->R PC->R1
M(MAR)->MDR R1+1->R2
MDR->IR OP(IR)->CU
R2->PC
- 微程序控制器 - 存儲邏輯實現 - 易于擴充修改但執行慢
- 一條機器指令 - 一個微程序 - n個微指令 - n * m微操作(微命令與微操作一一對應是其控制信號)
- 一條微指令 - n微命令
- 操作控制字段即操作控制信號
- 順序控制字段 下條微指令地址
- 微周期類似指令周期讀取微指令并執行完所需的時間
- 主存 - 存數據及程序,CPU外部,RAM實現;
- 控存 - 存微程序,CPU內部,ROM實現;
- 微程序結構及功能對程序員透明
- 微程序入口地址由機器指令操作碼字段形成
- 微指令編碼方式
直接編碼/字段直接編碼/字段間接編碼方式 - 微指令格式 - 水平型/垂直型
水平 - 操作控制字段+判斷測試字段+后繼地址段
微程序短 執行速度快,但微指令長 編寫麻煩
垂直 - 微操作碼+目的地址+源地址
微指令短,便于編寫,但微程序長執行慢,工作效率低 - μPC與PC 不同 一個是微程序中的,一個是外部的寄存器中的不可取代
- 指令流水線
注意:并非流水段越多,指令執行越快, 流水段緩沖的開銷及流水段間邏輯控制會隨著增多而變復雜,
1)順序執行 (n為指令數,前三個把段數作為3來算的)
T=3nt
2)一次重疊
T=(1+2n)t
3)二次重疊
T=(2+n)t
4)。。。
。。。。(n個指令 n-1重疊)
T=(k+n-1)t (k為指令的段數) - 相關的問題
結構相關(資源沖突)
解決方案: 暫停一個時鐘周期 / 令設置存儲器執行
數據相關(數據沖突)
解決方案:暫停幾個時鐘周期 / (不通過寄存器直接用ALU數據為輸入計算)數據旁路 / 編譯器調整指令順序
控制相關(控制沖突)
解決方案:動態預測 / 加快提前形成條件碼 / 提高轉移方向的猜準率 - 流水線吞吐率
TP=n/(n+k-1)t; - 流水線加速比
S=T0/Tk=knt/(k+n-1)t; - 流水線效率
E=T0/Tk=(1/k) * S; - 超標量流水線
每個時鐘周期并發多條獨立指令,并行操作,不能調整執行順序
例如: 采用度為4的超標量流水線處理機,執行20條指令,直接當作度為一執行20/4條指令來算 - 超流水線
一個時鐘周期一個功能部件使用多次 - 超長指令字
超長的指令字,需要多個處理部件; - IF ID EX WB
取指 譯碼 執行 寫回
在流水線中 上一條的IF沒執行完下一條指令不可以進行IF - 數據相關幾種具體情況
RAR (read after read) 沒什么影響
RAW(read after write)
指的是 應該上一條指令對該變量的寫結束后下一條指令才能對其進行讀,不然獨到的數據就是錯的,發生了數據相關,即沖突;
WAR(write after read)
指的是 應該會上條指令寫操作之后在進行讀,不然讀到的是錯誤的信息
WAW(write after write)
指令系統
- 指令 (機器指令)- 計算機運行的最小功能單位,計算機的語言系統
- 指令字長一般為存儲字長的整數倍(即n * 存儲字長),n=1 時則等于機器周期
- 指令字長與機器字長沒關系,它取決于操作碼長度,操作數地址長度,和操作數地址的個數
- 單字長、半字長、雙字長指令
指的是指令長度與機器字長的長度程倍數關系時的叫法 - 定長指令結構/變長指令結構
- 指令基本格式 - 操作碼字段 | 地址碼字段
0地址 OP
一地址 OP+A1(既為源也為目的)
也可為隱含約定目的地址 即有兩個操作數,另一個操作數來自ACC
二地址 OP+A1(源操作數)+A2(目的操作數-(保存結果))
三地址 OP+A1(源操作數)+A2(目的操作數)+A3(保存結果)
四地址 OP+A1(源操作數)+A2(目的操作數)+A3(保存結果)+A4(下址-下條指令地址) - 定長操作碼指令格式
n位操作碼 最大能表示2^n條指令 -
擴展操作碼指令格式
Point:
不允許短碼是長碼的前綴
各指令操作碼不重復
一般使用頻率高的分配短碼,使用頻率低的分配長碼,減少指令譯碼分析時間
一言難盡,上圖
擴展操作碼技術 - 尋址方式
指令尋址/數據尋址
指令尋址
1)順序尋址 - 即PC+1方式
2)跳躍尋址 - JMP類指令直接修改PC下一跳地址 -受PSW及操作數控制,且目的地址分絕對地址/相對地址
數據尋址
指令格式 - 操作碼 + 尋址特征 + 形式地址A (以下用#來指代尋址特征的位置,A形式地址,EA有效地址)
尋址特征指明屬于哪種尋址方式
1)隱含尋址
ADD+#+A
主存中A地址中操作數送入ALU,同時ACC中的作為第二操作數也送入ALU
優點:有利于縮短指令字長; 缺點:需增加存儲操作數或隱含地址硬件;
2)立即(數)尋址
則A即為操作數本身,稱為立即數(補碼存放)
優點:執行階段不訪問主存;缺點:A的位數限制立即數的范圍;
3)直接尋址
OP+#+A
A=EA
優點:簡單,一次訪存,缺點:A的位數決定了尋址范圍,且不易修改;
4)間接尋址
OP+#+A, A->EA(第一次讀得到A的有效地址) ,Get(EA)(從有效地址中取得操作數)(一次間址,兩次訪存)
OP+#+A1,A1->A2,A2->EA Get(EA)(兩次間址)
優點: 可擴大尋址范圍;缺點:要進行多次訪存;
5)寄存器尋址
OP+#+Ri
EA=Ri
優點:不訪存,地址碼長度小,速度快,支持向量矩陣運算;缺點:寄存器數量有限,價格貴;
6)寄存器間接尋址
OP+#+Ri ,EA=(Ri),Get(EA)
特點:比間接尋址快,但需要訪存,從Ri得到EA,后從主存取操作數;
7)相對尋址
OP+#+A,EA=PC+A
優點:操作數地址不固定隨PC變化,便于程序浮動,廣泛用于轉移指令;
JMP A 若CPU從存儲器中取出nB指令則PC+n+A;
8)基址尋址(面向操作系統)
OP+#+A,BR+A->EA
OP+#+R0+A,R0+A->EA
BR(專用寄存器,基址)
R0(通用寄存器,基址)
基址不變,A變化
優點:可擴大尋址范圍,利于多道程序設計,數據分配存儲空間,編制浮動程序;
9)變址尋址(用戶設計)
OP+#+A,IX+A->EA
IX(變址寄存器)
A不變,IX改變
優點:可擴大尋址范圍,適合編制循環程序,處理數組問題;
10)堆棧尋址
存儲區中讀/寫單元地址,由特定寄存器給出SP(堆棧指針);
硬堆棧 - 寄存器堆棧
軟堆棧 - 主存中劃出的區域
此種形式指令大多為無操作數指令,隱含使用了SP;
16位補碼表示范圍 - 指令操作數的地址制定方式 - 大端方式/小端方式
即給出的地址為操作數的最高/最低有效字節地址 - 數據或指令的存放方式
邊界對其/邊界不對齊
邊界對其相對邊界不對其是一種空間換時間的思想 - CISC/RISC
CISC(Complex Instruction-Set computer)
指令系統復雜,龐大,數目多200以上
指令長度、格式、尋址方式、使用頻度、執行時間 不固定
大多數需要多個時鐘周期
大多為微程序控制器
RISC(Reduced Instruction-Set Computer)
使用使用頻率高的簡單指令,復雜的通過簡單進行組合
指令長度固定,格式種類及尋址方式少
只有Load/Store指令訪存
CPU中通用寄存器多
采用流水線技術,大部分一個時鐘周期內完成,
硬布線為主
Compare CISC/RISC
1)CISC大多采用微程序控制,控存占CPU50%以上
RISC采用組合邏輯控制,硬布線邏輯占CPU10%左右
2)RISC 更能提高運算速度,指令數、尋址方式、指令格式種類少,流水線技術,通用寄存器多,運行速度快
3)RISC便于設計簡單快速可靠性高
4)有利于編譯程序代碼優化
存儲系統
- 層次分類 - 主存(內存) - 輔存(外存) - Cache(高速緩沖存儲器 - 于CPU與主存間)
注意:CD-ROM不屬于ROM,順序訪問方式 - RAM(隨機存儲器 易失性存儲器)
讀寫方便,使用靈活,主要用于主存、Cache (分靜態 - 觸發器原理 ,動態 - 電容充電原理),斷電后信息丟失 - ROM(只讀存儲器 非易失性存儲器)
只讀,可與RAM共同作為主存一部分,斷電后信息仍存在 - 串行訪問存儲器
需按照物理位置的先后順序進行尋址,存取速度慢 - 存儲器容量
存儲字數(存儲器的地址空間大小) * 字長(一次存取操作的數據量)
存儲速度(帶寬):數據傳輸率=數據的寬度/存儲周期 - 多級存儲結構
CPU - Cache - 主存 - 輔存(磁盤 - 磁帶/光盤) - 主存與Cache間數據調動由硬件自動完成,對所有程序員透明
- 主存輔存間數據調動對應用程序員透明,由硬件與操作系統共同完成
- 半導體隨機存儲器
- 74138譯碼器又稱為3/8譯碼器
- 存儲元 - 存放一個二進制位的物理器件 - 存儲器的最基本構件
- SRAM(Static -RAM - 易失性半導體存儲器)
存取速度快、繼承地功耗大,一般組成Cache - DRAM(Dynamic - RAM,易失性,需要刷新)
易集成,價位低,容量大,功耗低,速度慢,一般用來組成大容量主存
讀出時為破壞性讀出 ,采用傳兩次地址策略,所以計算時地址線復用即需要除二 - DRAM刷新方式
集中刷新: 一個刷新周期內,一段時間專門來刷新,為訪存死區;
優點:讀寫操作不受刷新影響,系統存取速度較高;
缺點:死區不能訪問存儲器
分散刷新:把每行的刷新分散到各個工作周期中;
優點:無死區;
缺點:增加了存取周期長度,降低了整體速度;
異步刷新: 利用邏輯電路的請求間隔;
特點:前兩種方法結合,即可縮短死時間,有充分利用最大刷新間隔為2ms的特點;
注意:刷新對CP透明 ,刷新單位為行,只需要行地址,無需輸出,不需選片,所有芯片同時被刷新 - 存儲器讀寫周期
point:讀周期與讀出時間不同,讀周期總是大于讀出時間
讀操作時(WE|)為高電平;
寫操作時 片選信號(CS|) (WE|)為低電平;(取反符號不會打,把杠打在邊上了) - 只讀存儲器(ROM)
結構簡單,位密度比可讀寫存儲器高,有非易失性,可靠性高;
類型:
MROM - 不可修改出廠定好
PROM - 一次可編程只讀
EPRPM - 可擦除可編程(擦除時全部擦除,再編程)
E2PROM - 電擦除
Flash Memory - 價格便宜集成度高,擦除重寫速度快,且寫比讀要慢
SSD - 讀寫快,低功耗,價格貴