第七章-微體系結(jié)構(gòu)(1):概述
概述
微體系結(jié)構(gòu)的兩個相互作用的部分。
數(shù)據(jù)路徑和控制邏輯。
第七章比第六章更進(jìn)一步。第六章講的是較為抽象的計算機體系結(jié)構(gòu)。其實和第五章“數(shù)字模塊”更為相近的是計算機的微體系結(jié)構(gòu)。具體地說也就是基本的數(shù)字模塊通過硬件邏輯的組合,構(gòu)建了計算機的微體系結(jié)構(gòu)。第七章的內(nèi)容充實而使用,作者基本上將構(gòu)建單周期處理器、多周期處理器和流水線處理器所需的RTL圖、組合邏輯(Verilog組合邏輯)和有限狀態(tài)機(Verilog時序邏輯)清楚地、完整地列出來。作者采用了模塊化的編程思維。在構(gòu)建RTL圖時,也是分為數(shù)據(jù)路徑和控制信號兩部分來設(shè)計。先設(shè)計基本的數(shù)據(jù)路徑,然后再設(shè)計控制邏輯。
第六章的計算機體系結(jié)構(gòu)是第七章微體系結(jié)構(gòu)的基礎(chǔ)。微體系結(jié)構(gòu)就是解析體系結(jié)構(gòu)中指令(匯編代碼)的一系列硬件邏輯結(jié)構(gòu),所以必須先掌握了控制計算的指令集和匯編語言,并從中明確計算機CPU的核心功能對應(yīng)的關(guān)鍵指令,才能從硬件編程的角度來設(shè)計計算機的微體系結(jié)構(gòu)。
最簡單的是單周期的處理器設(shè)計。本章的設(shè)計前提是,只包含了處理器的幾個關(guān)鍵功能,方便說明。比如基本的指令:ADD、SUB、LW、SW等等。
?
體系結(jié)構(gòu)狀態(tài)和指令集
在真正的微體系結(jié)構(gòu)設(shè)計開始前,書中首先強調(diào)微體系結(jié)構(gòu)中的“體系結(jié)構(gòu)狀態(tài)”和“指令集”。指令集不必說,書中使用的是MIPS指令集。體系結(jié)構(gòu)狀態(tài)指的是在上一章的“體系結(jié)構(gòu)”介紹中講到的程序計數(shù)器(PC)和32個通用寄存器。
為了使微體系結(jié)構(gòu)便于理解。書中只考慮了MIPS指令系統(tǒng)的一個子集,具體的有:
·???????? R型算數(shù)指令/邏輯指令:add, sub, and, or 和 slt
·???????? 存儲指令:lw, sw
·???????? 分支指令:beq
?
數(shù)據(jù)路徑和控制邏輯
書中將依次設(shè)計數(shù)據(jù)路徑和控制邏輯來一一實現(xiàn)上述指令的功能。數(shù)據(jù)路徑對數(shù)據(jù)字進(jìn)行操作,包括:存儲器、寄存器、算術(shù)邏輯單元(ALU)和復(fù)用器等結(jié)構(gòu)。32位的操作系統(tǒng)就設(shè)計32位的數(shù)據(jù)路徑。控制邏輯從數(shù)據(jù)路徑接收當(dāng)前指令,并控制數(shù)據(jù)路徑如何執(zhí)行這條指令。也就是說控制邏輯產(chǎn)生對于數(shù)據(jù)路徑的控制信號。