體系復(fù)習
- 體系復(fù)習
- 硬布線控制器的優(yōu)缺點
- 微指令寄存器μIR
- 微地址形成電路
- 微程序?qū)嵗?/a>
- 微程序控制器的優(yōu)缺點
- I/O接口的產(chǎn)生原因
- I/O接口的基本功能
- 統(tǒng)一編址的特點
- 串/并行通信的比較
- 差分信號傳輸技術(shù)
- 8255A
- XLAT指令
- 方式選擇控制字
- 總線的分類
- 總線模塊
- 總線邏輯電路示意圖
- PCI Express
- 總線標準的兩種產(chǎn)生途徑
- 總線標準的內(nèi)容
- AHB Advanced High-performance Bus
- HTRANS和HBURST
- MIPS CPU的異常處理
- 軟件查詢確定中斷優(yōu)先級
- 硬件中斷優(yōu)先級編碼電路
- 當前PC機中的中斷控制器
- 定時器 8253
- 計數(shù)方式
- 中斷控制器和定時器在IBM PC/AT中的連接結(jié)構(gòu)
- 南北橋架構(gòu)的演變
- Pentium Pro的超標量流水線
- 轉(zhuǎn)移開銷
- 轉(zhuǎn)移開銷的構(gòu)成
- 延遲轉(zhuǎn)移(Delayed Branching)技術(shù)
- 轉(zhuǎn)移預(yù)測(Branch Prediction)技術(shù)
- 轉(zhuǎn)移條件判定的預(yù)測
- 轉(zhuǎn)移目標地址的預(yù)測
- 進行BTB表項比較的時機
- Pentium BTB
- “過程返回”指令的特點
- 返回地址棧RAS
- 片上總線的缺點
- DDR4 bank grouping技術(shù)
- MSI
- ARM指令格式
- x86的理念
- SIMD
- MMX registers
- 飽和運算(Saturation Arithmetic)
- CPU vs GPU
體系復(fù)習
硬布線控制器的優(yōu)缺點
優(yōu)點:指令執(zhí)行速度很快
缺點:控制邏輯的電路復(fù)雜,設(shè)計和驗證難度大;擴充 和修改也很困難
微指令寄存器μIR
用來存放從CM中讀 出的微指令
包括“微操作控制字 段”和“順序控制字段”兩個部分(如下址字段)
微地址形成電路
形成依據(jù)包括:
- 微地址給定部分
- 現(xiàn)行微指令中的順序控制方式(如是否發(fā)生轉(zhuǎn)移)
- 機器指令的有關(guān)代碼(如操作碼)
- 機器運行狀態(tài)等
微程序控制器的優(yōu)缺點
缺點:速度較慢
優(yōu)點1:規(guī)整性 用程序的方法來產(chǎn)生和組織微命令信號
優(yōu)點2:靈活性 可以較方便地增加和修改指令,只要增加或修改一部分微程序 即可
I/O接口的產(chǎn)生原因
- CPU和外設(shè)之間的速度差距
- 外設(shè)處理的信息格式和接口信號形式多樣 ? 串行、并行 ? 數(shù)字、模擬 ? 標準邏輯電平、非標準邏輯電平
I/O接口的基本功能
- 數(shù)據(jù)緩沖 ? 解決CPU和外設(shè)之間的速度差距
- 提供聯(lián)絡(luò)信息 ? 協(xié)調(diào)與同步數(shù)據(jù)交換過程
- 信號與信息格式的轉(zhuǎn)換 ? 模/數(shù)、數(shù)/模轉(zhuǎn)換,串/并、并/串轉(zhuǎn)換,電平轉(zhuǎn)換
- 設(shè)備選擇
- 中斷管理
- 可編程功能
統(tǒng)一編址的特點
優(yōu)點
- 可以用訪向存儲器的指令來訪問I/O端口,訪問存儲器的指令功能比較齊全,可以實現(xiàn)直接對I/O端口內(nèi)的數(shù)據(jù)進行處理 ?
- 可以將CPU中的I/O操作與訪問存儲器操作統(tǒng)一設(shè)計為一套控制邏輯,簡化內(nèi)部結(jié)構(gòu),同時減少CPU的引腳數(shù)目
缺點
- 由于I/O端口占用了一部分存儲器地址空間,因而使用戶的存儲地址空間相對減小
- 由于利用訪問存儲器的指令來進行I/O操作,指令的長度通常比單獨I/O 指令要長,因而指令的執(zhí)行時間也較長
串/并行通信的比較
串行通信:
- 傳輸線數(shù)量少,數(shù)據(jù)傳輸率較低
- 需要經(jīng)過復(fù)雜的串/并轉(zhuǎn)換
- 避免了信號線之間的串擾
RS-232(亦稱COM接口)
并行:
傳輸線數(shù)量多 同頻率下,數(shù)據(jù)傳輸率較高 無需串/并轉(zhuǎn)換 存在信號線之間的串擾
IEEE-1284(亦稱LPT接口)
差分信號傳輸技術(shù)
發(fā)送端在兩根線上發(fā)送振幅相等、相位相反的信號(即差分信號) ? 信號接收端比較兩個電壓的差值,判斷發(fā)送端發(fā)送的是邏輯0還是邏輯1
優(yōu)點:? 抗干擾能力強 ? 時序定位準確
缺點:布線難度高
8255A
端口A:PA7~PA0;
端口B:PB7~PB0 ?
均為8位的端口,但端口A的功能更為豐富 ? 可分別設(shè)定為輸入端口或輸出端口
端口C:PC7~PC0 ? 分成兩個4位的端口,可分別設(shè)定為輸入端口或輸出端口
通常不用于普通的數(shù)據(jù)傳送,而是作為端口A和端口B的“握手”信號
地址:A1、A0 (又稱端口選擇信號)
00:A
01:B
10:C
11 控制端口
XLAT指令
AL←(BX+AL)
AL= AL[BX]
方式選擇控制字
寫控制端口來設(shè)置方式選擇控制字,
最高位為0,設(shè)置端口C按位置1/置0控制字
最高位為1,設(shè)置方式選擇控制字
總線的分類
① 片總線,又稱器件級總線 → “片上總線” ? 中央處理器芯片內(nèi)部的總線
② 內(nèi)總線,又稱系統(tǒng)總線或板級總線 ? 計算機系統(tǒng)中各插件板之間信息傳輸?shù)耐?? 通常稱為微型計算機總線的即指內(nèi)總線
③ 外總線,又稱通信總線 ? 計算機系統(tǒng)之間、或是計算機系統(tǒng)與其他系統(tǒng)(儀器、儀表、控制裝置 等)之間信息傳輸?shù)耐?/p>
總線模塊
總線主模塊(Bus Master) ? 具有總線控制能力 ? 示例:CPU、DMA控制器
總線從模塊(Bus Slave) ? 能夠?qū)偩€傳輸作出響應(yīng),但本身不具備總線控制能力 ? 示例:存儲器
總線邏輯電路示意圖
主模塊給仲裁器申請,仲裁器授權(quán)
仲裁器控制 地址和控制、寫數(shù)據(jù)
地址和控制、寫數(shù)據(jù)連到各個從模塊
各個從模塊->讀數(shù)據(jù)和響應(yīng)->主模塊
譯碼器控制讀數(shù)據(jù)和響應(yīng),選中各個從模塊
PCI Express
串行方式傳輸數(shù)據(jù),依靠高頻率獲得高性能
全雙工運作模式,同時進行數(shù)據(jù)發(fā)送和接收
點對點連接結(jié)構(gòu),而非傳統(tǒng)的共享結(jié)構(gòu)
采用差分信號傳輸
峰值帶寬的計算公式:總線頻率×2
PCIe鏈路可以由多個通道(Lane)組成 ? 目前PCIe鏈路可以支持1、2、4、8、12、16和32個Lane ? 即×1、×2、×4、×8、×12、×16和×32寬度的PCIe鏈路
總線標準的兩種產(chǎn)生途徑
事實標準 ? 計算機系統(tǒng)廠家所采用的一種總線,由于其性能優(yōu)越,逐漸形 成一種被業(yè)界廣泛支持和承認的事實總線標準
國際標準 ? 在國際標準組織或機構(gòu)主持下開發(fā)和制定的總線標準,公布后 由廠家和用戶使用
總線標準的內(nèi)容
1、機械特性 ? 規(guī)定模塊插件的機械尺寸,總線插頭、插座的規(guī)格及位置等
2、電氣特性 ? 規(guī)定總線信號的邏輯電平、噪聲容限及負載能力等
3、功能特性 ? 給出各總線信號的名稱及功能定義
4、規(guī)程特性 對各總線信號的動作過程及時序關(guān)系進行說明
AHB Advanced High-performance Bus
先發(fā)控制和地址,再發(fā)數(shù)據(jù)
在第二個時鐘上升沿,從模塊采樣HADDR和Control信號
在第二個時鐘上升沿之后 ? 寫傳輸:主模塊驅(qū)動HWDATA信號 ? 讀傳輸:從模塊驅(qū)動HRDATA信號
在第三個時鐘上升沿 ? 寫傳輸:從模塊采樣HWDATA信號,完成傳輸 ? 讀傳輸:主模塊采樣HRDATA信號,完成傳輸
未準備好,主模塊所有信息擴展
時間重疊(overlap) ? 不同傳輸?shù)牡刂泛蛿?shù)據(jù)在時間上存在重疊 ? 充分利用地址總線和數(shù)據(jù)總線
HTRANS和HBURST
HTRANS:第一個NONSEQ,后面SEQ,空閑IDLE,BUSY主模塊忙 不提供寫數(shù)據(jù),地址保持
HBURST:INCR4 +4
地址回卷的邊界(假設(shè)數(shù)據(jù)寬度為4字節(jié)) ?
WRAP4:在16的整數(shù)倍的地址處回卷(4×4) ?
WRAP8:在32的整數(shù)倍的地址處回卷(4×8) ?
WRAP16:在64的整數(shù)倍的地址處回卷(4×16)
ARM體系結(jié)構(gòu) 中定義的“字” 為32位(4個字節(jié)),與x86體 系結(jié)構(gòu)的定義不同
Halfword: 地址遞增2
MIPS CPU的異常處理
在EPC中保存出現(xiàn)異常的指令的地址 ? 清空流水線中之后的指令 記錄產(chǎn)生異常的原因 ? 轉(zhuǎn)移到特定地址執(zhí)行下一條指令
軟件查詢確定中斷優(yōu)先級
在中斷服務(wù)程序的開始部分,需安排一段查詢程序
查詢的先后順序體現(xiàn)不同設(shè)備的中斷優(yōu)先級 ? 先查的設(shè)備具有較高優(yōu)先級 ? 后查的設(shè)備具有較低優(yōu)先級
一般來說,總是先查詢速度較快或是實時性較高的設(shè)備
硬件中斷優(yōu)先級編碼電路
菊花鏈
當前PC機中的中斷控制器
IO連南橋,IOAPIC連CPU APIC
定時器 8253
WR 輸入CW控制信號后OUT端進入已知初始狀態(tài)
N=4的后第一個CLK 下降沿開始計數(shù),第二個CLK下降沿 -1,變0后OUT恢復(fù)
當GATE變低時,暫停計數(shù)
當GATE變高時,繼續(xù)計數(shù)
計數(shù)方式
方式0:計數(shù)過程中的暫停和繼續(xù)
方式2:分頻器 每輸入N個CLK脈沖,輸出寬度為1個CLK周期的負脈沖,用于DRAM的定時刷新
- 計算計數(shù)初值 1.19318MHz/(500*128) =18
方式3:方波發(fā)生器 對稱方波或基本對稱的矩形波,產(chǎn)生定時中斷
- 計算輸出方波頻率 1.19318MHz÷65536=18.2Hz
中斷控制器和定時器在IBM PC/AT中的連接結(jié)構(gòu)
Timer-OUT0(方式3)產(chǎn)生定時中斷-連PIC
OUT1(方式2)-存儲控制器-DRAM主存 定時刷新
OUT2(方式3)-連揚聲器
南北橋架構(gòu)的演變
主存控制器、PCIe先后移到CPU
Pentium Pro的超標量流水線
將復(fù)雜的x86指令 拆分成簡單的微指 令(微操作,μop)
轉(zhuǎn)移開銷
- 排空流水線
- 從轉(zhuǎn)移目標地址重新取指令
轉(zhuǎn)移開銷的構(gòu)成
- “要不要轉(zhuǎn)移?”:轉(zhuǎn)移條件判定引起的開銷
- “轉(zhuǎn)移到哪里?”:生成目標地址引起的開銷
延遲轉(zhuǎn)移(Delayed Branching)技術(shù)
在編譯過程中,通過編譯器調(diào)度,在轉(zhuǎn)移指令之后插入一條或幾條適當 的指令
當被調(diào)度的指令執(zhí)行完成后,轉(zhuǎn)移指令的目標地址和判斷條件都已計算 完成
轉(zhuǎn)移預(yù)測(Branch Prediction)技術(shù)
- 轉(zhuǎn)移條件判定的預(yù)測:預(yù)測“要不要轉(zhuǎn)移”
- 轉(zhuǎn)移目標地址的預(yù)測:預(yù)測“轉(zhuǎn)移到哪里”
轉(zhuǎn)移條件判定的預(yù)測
-
硬件固定預(yù)測不轉(zhuǎn)移
? 在轉(zhuǎn)移條件判定之前總是順序地取下一條指令
優(yōu)點:實現(xiàn)簡單;
缺點:預(yù)測效果不佳
-
編譯制導(dǎo)的預(yù)測 ?
在轉(zhuǎn)移指令的編碼中增加1位,來通知硬件是預(yù)測跳轉(zhuǎn)還是預(yù)測不跳轉(zhuǎn)
優(yōu)點:軟件可根據(jù)指令類型和歷史信息,對不同指令進行不同的預(yù)測
缺點:需要軟件支持;需要修改ISA;不適應(yīng)多變的執(zhí)行環(huán)境
-
基于偏移的預(yù)測
相對偏移為負值則預(yù)測轉(zhuǎn)移;否則,預(yù)測不轉(zhuǎn)移
-
基于歷史信息的預(yù)測(當前普遍采用)
使用1位/兩位
對于循環(huán)程序,兩種情況下可能需要重新計算轉(zhuǎn)移地址 ① 首次進入循環(huán)時,預(yù)測錯誤:預(yù)測不發(fā)生轉(zhuǎn)移,而實際發(fā)生轉(zhuǎn)移 ② 退出循環(huán)時,預(yù)測錯誤:預(yù)測發(fā)生轉(zhuǎn)移,而實際不發(fā)生轉(zhuǎn)移
假設(shè)有一段循環(huán)10次的代碼被反復(fù)調(diào)用
若使用1位歷史信息,每輪調(diào)用時,2次預(yù)測錯誤 8次正確
若使用2位歷史信息,每輪調(diào)用時,1次預(yù)測錯誤 9次正確(開頭仍預(yù)測轉(zhuǎn)移)
N位歷史信息的轉(zhuǎn)移預(yù)測器 繼續(xù)提升,但很微弱
轉(zhuǎn)移目標地址的預(yù)測
轉(zhuǎn)移目標緩沖器 ? BTB: Branch Target Buffer
保存了此前若干次轉(zhuǎn)移指令執(zhí)行時的目標地址
進行BTB表項比較的時機
取指的同時(Xscale)
- 優(yōu)點:在流水線較早階段獲得轉(zhuǎn)移目標地址
- 缺點:每條指令均需訪問BTB,功耗開銷較大
譯碼完成后(Pentium)
- 優(yōu)點:轉(zhuǎn)移指令才需訪問BTB,功耗開銷較小
- 缺點:在流水線較晚階段獲得轉(zhuǎn)移目標地址
預(yù)譯碼完成后,取指的同時(UltraSPARC III)
將上述兩種方法的優(yōu)點進行結(jié)合
Pentium BTB
11-01都預(yù)測發(fā)生轉(zhuǎn)移,00預(yù)測不轉(zhuǎn)移
若此指令實際發(fā)生轉(zhuǎn)移,則按“預(yù)測錯誤”處理,在BTB中建立一個新 表項,設(shè)定“歷史位”為11
“過程返回”指令的特點
優(yōu)點
① 無需判定轉(zhuǎn)移條件(均為無條件轉(zhuǎn)移)
② 執(zhí)行“過程返回”指令時,轉(zhuǎn)移目標地址已經(jīng)生成(早在執(zhí)行“過程 調(diào)用”指令的時候生成)
③ “過程返回”指令的出現(xiàn)是可預(yù)期的(“過程調(diào)用”指令和“過程返 回”指令必須成對出現(xiàn))
缺點
① 每次執(zhí)行同一條“過程返回”指令時,轉(zhuǎn)移目標地址往往不同
② 轉(zhuǎn)移目標地址在存儲器中,訪問時間較長
③ 在流水線晚期才訪問存儲器獲得轉(zhuǎn)移目標地址
返回地址棧RAS
存放過程調(diào)用指令的下一條指令地址
片上總線的缺點
當主模塊1長時間等待從模塊2返回讀數(shù)據(jù)時,造成了大量與此無關(guān)的傳輸無法發(fā)起
DDR4 bank grouping技術(shù)
- 將傳統(tǒng)Bank(如16個)劃分為多個獨立組(如4組,每組4 Bank)。
- 組內(nèi)Bank共享數(shù)據(jù)線,但組間可并行操作(類似多車道分流)
MSI
但是當處理器收到中斷信號時,并不意味著PCI設(shè)備已經(jīng)將數(shù)據(jù)寫入存儲器中,因為PCI設(shè)備只知道發(fā)送完畢的時間,不知道到達時間
-
PCI設(shè)備在提交中斷請求之前,向DMA寫的數(shù)據(jù)區(qū)域發(fā)出一個讀請求,當PCI設(shè)備完成這個總線傳輸后,再向處理器提交中斷請求 ?
該方法硬件開銷大,不容易實現(xiàn),還將增加中斷請求的延時
-
中斷服務(wù)程序使用“讀刷新”方法:中斷服務(wù)程序在使用“PCI設(shè)備寫入存儲器”的這些數(shù)據(jù)之前,對該設(shè)備進行讀操作
現(xiàn)實情況一般 不會出現(xiàn)問題
原因:從提交中斷到CPU開始中斷服務(wù)程序,所需時間較長,基本上可以保證此時數(shù)據(jù)已經(jīng)寫入存儲器
但是這個驅(qū)動程序依然有Bug存在,一旦出錯則難以定位
MSI中斷:一種特殊中斷
- 設(shè)備需要中斷時,向MSI目標地址寫入特定數(shù)據(jù)(包含中斷向量號)。
- 內(nèi)存控制器檢測到該寫入,將其轉(zhuǎn)換為中斷信號發(fā)送給CPU。
優(yōu)點:
- 解決了多個設(shè)備共享中斷信號的問題 ? INTx引腳通常是幾個設(shè)備共享
- 解決了每個功能設(shè)備只支持一個中斷的問題
- “異步”中斷的數(shù)據(jù)完整性問題 (MSI和數(shù)據(jù)寫都是對內(nèi)存的寫,可以保證所有數(shù)據(jù)已經(jīng)到達內(nèi)存)
缺點:
- 要占用總線帶寬
ARM指令格式
- 寄存器編號位域只有 4-bit,只能尋址16個 通用寄存器
- 功能位域的位置不 統(tǒng)一,給指令譯碼帶來不便
- 所有的ARM指令都帶有4-bit的條件碼,都可以條件執(zhí)行(如條件碼為0000,EQ時才執(zhí)行)
x86的理念
- 兼容性 ? 每款處理器包含該系列早期處理器的全部指令 ? 每款處理器包含該系列早期處理器的寄存器和操作方式
- 指令系統(tǒng)的增強和擴充 ? 對已有指令進行功能上的擴展和改進 ? 增加新指令
SIMD
S/M I:單個/多個指令
S/M D:單個/多個數(shù)據(jù)
MMX registers
MMX(MultiMedia eXtensions)是Intel在1996年(Pentium時代)引入的SIMD(單指令多數(shù)據(jù))指令集擴展,主要用于加速多媒體處理(如音視頻編解碼、圖像處理)。
與FPU共享寄存器,導(dǎo)致MMX和浮點運算不能混
飽和運算(Saturation Arithmetic)
1. 什么是飽和運算?
- 一種處理數(shù)值溢出的方式:當計算結(jié)果超出數(shù)據(jù)類型范圍時,結(jié)果會被截斷到該類型的最大值/最小值,而非像普通運算那樣回繞(wrap around)。
2. MMX中的飽和運算
- 應(yīng)用場景:圖像/音頻處理中,避免溢出導(dǎo)致的失真(如像素值超過255時直接保持255)。
- MMX指令示例:
PADDSB(飽和加法,8-bit有符號):127 + 1 = 127(而非-128)PSUBUSB(飽和減法,8-bit無符號):0 - 1 = 0(而非255)
CPU vs GPU
CPU
- 強大的低延遲的ALU
- 大cache
- 復(fù)雜的control
GPU
- 高延遲的ALU,需要線程數(shù)更多,流水線節(jié)數(shù)更多
- 小cache
- 簡單的control

浙公網(wǎng)安備 33010602011771號