計算機原理 中央處理器:數(shù)據通路和控制器

上傳人:san****019 文檔編號:22681359 上傳時間:2021-05-30 格式:PPT 頁數(shù):231 大小:5.49MB
收藏 版權申訴 舉報 下載
計算機原理 中央處理器:數(shù)據通路和控制器_第1頁
第1頁 / 共231頁
計算機原理 中央處理器:數(shù)據通路和控制器_第2頁
第2頁 / 共231頁
計算機原理 中央處理器:數(shù)據通路和控制器_第3頁
第3頁 / 共231頁

下載文檔到電腦,查找使用更方便

14.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《計算機原理 中央處理器:數(shù)據通路和控制器》由會員分享,可在線閱讀,更多相關《計算機原理 中央處理器:數(shù)據通路和控制器(231頁珍藏版)》請在裝配圖網上搜索。

1、計 算 機 原 理第 六 章 中 央 處 理 器 :數(shù) 據 通 路 和 控 制 器 2 本 講 簡 要 說 明p目 的 與 要 求 : 了 解 CPU的 功 能 , 理 解 處 理器 數(shù) 據 通 路 的 建 立 , 掌 握 單 周 期 數(shù) 據 通 路 的設 計p授 課 重 點 : 單 周 期 數(shù) 據 通 路 的 建 立 與 設 計p授 課 難 點 : 如 何 在 處 理 器 中 建 立 數(shù) 據 通 路p閱 讀 章 節(jié) : Computer Organization and Design 第 5章 第 13節(jié) , 計 算 機 原 理 和 設計 第 4章 第 12節(jié)p作 業(yè) 安 排 : P354

2、5.1題 3 p數(shù) 據 通 路 的 位 置p控 制 器 的 基 本 概 念p單 周 期 數(shù) 據 通 路 的 設 計n數(shù) 據 通 路 的 功 能 和 實 現(xiàn)l操 作 元 件 ( 組 合 邏 輯 )l狀 態(tài) / 存 儲 元 件 ( 時 序 邏 輯 )n數(shù) 據 通 路 的 定 時p選 擇 MIPS指 令 集 的 一 個 子 集 作 為 CPU的 實 現(xiàn) 目 標n下 條 指 令 地 址 計 算 與 取 指 令 部 件nR型 指 令 的 數(shù) 據 通 路n訪 存 指 令 的 數(shù) 據 通 路n立 即 數(shù) 運 算 指 令 的 數(shù) 據 通 路n分 支 和 跳 轉 指 令 的 數(shù) 據 通 路p綜 合 所 有 指

3、令 的 數(shù) 據 通 路主 要 內 容 4 回 顧 存 儲 程 序 計 算 機 結 構 運 算 器 (ALU) 控 制 器 存 儲 器 輸 入 設 備 輸 出 設 備 數(shù) 據 流 控 制 流 5 數(shù) 據 通 路 的 位 置p計 算 機 的 五 大 組 成 部 分 p什 么 是 數(shù) 據 通 路 (DataPath)?n指 令 執(zhí) 行 過 程 中 , 數(shù) 據 所 經 過 的 路 徑 (包 括 路 徑 中 的 部 件 ),是 指 令 的 執(zhí) 行 部 件 p控 制 器 (Control)的 功 能n對 指 令 進 行 譯 碼 , 生 成 指 令 對 應 的 控 制 信 號 , 控 制 數(shù) 據 通路 的

4、動 作 。 能 對 指 令 的 執(zhí) 行 部 件 發(fā) 出 控 制 信 號 , 是 指 令 的 控 制 部 件 Control MemoryProcessor InputOutputDatapathDatapath 6 控 制 器 基 本 概 念p控 制 器 的 功 能 (從 程 序 執(zhí) 行 角 度 看 )n對 指 令 流 和 數(shù) 據 流 實 施 正 確 控 制n在 空 間 上 , 由 控 制 器 形 成 受 控 部 件 的 控 制 信 號n在 時 間 上 , 控 制 器 控 制 各 種 動 作 的 執(zhí) 行 順 序 7 控 制 器 基 本 概 念 存 儲 器運 算 器控 制 器 8 PC IR I

5、Dn指 令 控 制n操 作 控 制n時 間 控 制n數(shù) 據 加 工n處 理 中 斷 ALU 寄 存 器 XR 地 址 運 算中 斷 系 統(tǒng)CU 時 序 電 路寄 存 器ALU 中 斷系 統(tǒng) CUCPU 控制總線 數(shù)據總線 地址總線 9 1) 用 戶 可 見 寄 存 器(1) 通 用 寄 存 器p CPU 的 寄 存 器 存 放 操 作 數(shù)可 作 某 種 尋 址 方 式 所 需 的 專 用 寄 存 器(2) 數(shù) 據 寄 存 器 存 放 操 作 數(shù) ( 滿 足 各 種 數(shù) 據 類 型 )兩 個 寄 存 器 拼 接 存 放 雙 倍 字 長 數(shù) 據(3) 地 址 寄 存 器 存 放 地 址 , 其 位

6、 數(shù) 滿 足 最 大 地 址 范 圍用 于 特 殊 尋 址 方 式 段 基 值 棧 指 針(4) 條 件 碼 寄 存 器 存 放 條 件 碼 , 可 作 程 序 分 支 的 依 據如 正 、 負 、 零 、 溢 出 、 進 位 等 10 2) 控 制 和 狀 態(tài) 寄 存 器(1) 控 制 寄 存 器PC控 制 CPU 操 作(2) 狀 態(tài) 寄 存 器狀 態(tài) 寄 存 器其 中 MAR MBR IR 用 戶 不 可 見 存 放 條 件 碼 用 戶 可 見 PSW 寄 存 器 存 放 程 序 狀 態(tài) 字 用 戶 可 見 PC 用 戶 可 見 MAR MM MBR IRp CPU 的 寄 存 器 11

7、 CPU基 本 組 成 原 理 圖 控 制 部 件 CPU 由 執(zhí) 行 部 件 和 控 制 部 件 組 成CPU 包 含 數(shù) 據 通 路 和 控 制 器 控 制 器 由 指 令 譯 碼 器 和 控 制 信 號 形 成 部 件 等 組 成執(zhí) 行 部 件 12 CPU執(zhí) 行 指 令 過 程 及 其 與 計 算 機 性 能 的 關 系pCPU執(zhí) 行 指 令 的 過 程n取 指 令nPC+1送 PCn指 令 譯 碼n進 行 主 存 地 址 運 算n取 操 作 數(shù)n進 行 算 術 / 邏 輯 運 算n存 結 果n判 斷 和 檢 測 “ 異 常 ” 事 件n若 有 異 常 , 則 自 動 切 換 到 異

8、常 處 理 程 序n檢 測 是 否 有 “ 中 斷 ” 請 求 , 有 則 轉 中 斷 處 理pCPU的 實 現(xiàn) 與 計 算 機 性 能 的 關 系n計 算 機 性 能 (程 序 執(zhí) 行 快 慢 )由 三 個 關 鍵 因 素 決 定 : l指 令 數(shù) 目 、 時 鐘 周 期 、 CPIu指 令 數(shù) 目 由 編 譯 器 和 指 令 集 決 定u時 鐘 周 期 和 CPI由 CPU的 實 現(xiàn) 來 決 定 CPU的 設 計 與 實 現(xiàn) 非 常 重 要 ! 它 直 接 影 響 計 算 機 的 性 能 。問 題 :“ 取 指 令 ” 一 定 在 最 開 始 做 嗎?“PC+1” 一 定 在 譯 碼 之

9、前 做 嗎?“ 譯 碼 ” 須 在 指 令 執(zhí) 行 前 做 嗎?“ 異 常 ” 和 “ 中 斷 ” 差 別 是 什么 ?取 指階 段 執(zhí) 行階 段 13 組 成 指 令 功 能 的 四 個 基 本 操 作p每 條 指 令 的 功 能 可 能 由 四 個 基 本 操 作 實 現(xiàn)(1) 讀 取 某 一 主 存 單 元 的 內 容 , 并 將 其 裝 入 某 個 寄 存 器 (2) 把 一 個 數(shù) 據 從 某 個 寄 存 器 存 入 給 定 的 主 存 單 元 中 (3) 把 一 個 數(shù) 據 從 某 個 寄 存 器 送 到 另 一 個 寄 存 器 或 ALU(4) 進 行 某 種 算 術 或 邏 輯

10、 運 算 , 將 結 果 送 入 某 個 寄 存 器p操 作 功 能 可 形 式 化 描 述n用 寄 存 器 傳 輸 語 言 RTL (Register Transfer Language)描 述n本 章 所 用 的 RTL規(guī) 定 : 用 Rr表 示 寄 存 器 r的 內 容 用 Maddr表 示 讀 取 主 存 單 元 addr的 內 容 傳 送 方 向 用 “ ” 表 示 , 傳 送 源 在 右 , 傳 送 目 的 在 左 程 序 計 數(shù) 器 PC直 接 用 PC表 示 其 內 容 用 OPdata表 示 對 數(shù) 據 data進 行 OP操 作 14 數(shù) 據 通 路 的 基 本 結 構p數(shù)

11、 據 通 路 由 兩 類 部 件 組 成n組 合 邏 輯 元 件 (亦 稱 操 作 元 件 )n存 儲 元 件 (亦 稱 狀 態(tài) 元 件 )p元 件 間 的 連 接 方 式n總 線 連 接 方 式n分 散 連 接 方 式p數(shù) 據 通 路 的 構 成n由 “ 操 作 元 件 ” 和 “ 存 儲 元 件 ” 通 過 總 線 或 分 散 方 式 連 接而 成p數(shù) 據 通 路 的 功 能n進 行 數(shù) 據 存 儲 、 處 理 、 傳 送因 此 , 數(shù) 據 通 路 是 由 操 作 元 件 和 存 儲 元 件 通 過 總 線 方 式 或分 散 方 式 連 接 而 成 的 進 行 數(shù) 據 存 儲 、 處 理

12、、 傳 送 的 路 徑 。 15 操 作 元 件 : 組 合 邏 輯 電 路加 法 器(Adder)多 路 選 擇 器 (MUX)算 術 邏 輯 部件 (ALU) 32AB 32 Y32Select MUX 3232AB 32 ResultZeroOP ALU 3232AB 32 SumCarryAdder CarryIn 3 Decoder out0out1out7out2 譯 碼 器(Decoder) 何 時 要 用 到adder, ALU, MUX or Decoder?控 制 信 號組 合 邏 輯 元 件 的 特 點 l其 輸 出 只 取 決 于 當 前 的 輸 入 l定 時 : 所

13、有 輸 入 到 達 后 , 經 過 一定 的 邏 輯 門 延 時 , 輸 出 端 改 變 ,并 保 持 到 下 次 改 變 , 不 需 要 時 鐘信 號 來 定 時二 選 一 或 多 選 一 加 法 器 需 要什 么 控 制 信號 ? 16 狀 態(tài) 元 件 : 時 序 邏 輯 電 路p狀 態(tài) (存 儲 )元 件 的 特 點 n具 有 存 儲 功 能 , 在 時 鐘 控 制 下 輸 入 狀 態(tài) 被 寫 到 電 路 中 , 直到 下 一 個 時 鐘 到 達n輸 入 端 狀 態(tài) 由 時 鐘 決 定 何 時 寫 入 , 輸 出 端 狀 態(tài) 隨 時 可 讀 出p定 時 方 式 :規(guī) 定 信 號 何 時

14、寫 入 狀 態(tài) 元 件 或 何 時 從 狀 態(tài)元 件 讀 出n邊 沿 觸 發(fā) (edge-triggered)方 式 l狀 態(tài) 單 元 中 的 值 只 在 時 鐘 邊 沿 改 變 。 每 個 時 鐘 周 期 改 變 一 次p最 簡 單 的 狀 態(tài) 單 元n D觸 發(fā) 器 : 一 個 時 鐘 輸 入 、 一 個 狀 態(tài) 輸 入 、 一 個 狀 態(tài) 輸 出 cycle time rising edgefalling edgel上 升 沿 (rising edge) 觸 發(fā) :在 時 鐘 正 跳 變 時 進 行 讀 /寫l下 降 沿 (falling edge)觸 發(fā) :在 時 鐘 負 跳 變 時

15、進 行 讀 /寫 17 回 顧 D觸 發(fā) 器切 記 : 狀 態(tài) 單 元 的 輸 入 信 息 總 是 在 一 個 時 鐘 邊 沿 到 達 后 的“ Clk-to-Q” 時 才 被 寫 入 到 單 元 中 , 此 時 的 輸 出 才 反 映 新 的 狀 態(tài) 值數(shù) 據 通 路 中 的 狀 態(tài) 元 件 有 兩 種 : 寄 存 器 (組 ) + 存 儲 器Q總 是 在 clk-Q后 跟 著 D變 化這 段 時 間 D變 化 不 影 響 Qn建 立 時 間 (Set Time):在 觸 發(fā) 時 鐘 邊 沿 之 前 輸 入 必 須 穩(wěn) 定n保 持 時 間 (Hold Time):在 觸 發(fā) 時 鐘 邊 沿

16、之 后 輸 入 必 須 保 持nClock-to-Q-time:在 觸 發(fā) 時 鐘 邊 沿 , 輸 出 并 不 能 立 即 變 化 18 寄 存 器 的 種 類p寄 存 器 由 N位 觸 發(fā) 器 構 成pCPU中 的 不 同 類 型 寄 存 器n由 鎖 存 器 構 成 的 暫 存 器 : 帶 “ 寫 使 能 ” 信 號n用 于 和 總 線 相 連 的 、 輸 出 端 帶 三 態(tài) 門 的 寄 存 器 : 帶 “ 三態(tài) 門 控 ” 信 號n帶 復 位 (清 0)功 能 的 寄 存 器 n帶 計 數(shù) (自 增 )功 能 的 寄 存 器 n帶 移 位 功 能 的 寄 存 器n組 合 上 述 多 個 功

17、 能 的 寄 存 器 : 帶 多 個 控 制 信 號p寄 存 器 組 有 若 干 個 寄 存 器 組 成n通 常 是 雙 口 : 兩 個 讀 口 + 一 個 寫 口p可 帶 時 鐘 輸 入 信 號n用 于 控 制 輸 入 信 號 何 時 被 寫 入 到 寄 存 器 中 經 過 一 個 clk-to-Q, 輸 入 信 號 在 寄 存 器 的 輸 出 端 有 效 ! 19 存 儲 元 件 : 寄 存 器 和 寄 存 器 組p寄 存 器 (Register)n寫 使 能 (Write Enable-WE)信 號 0: 時 鐘 邊 沿 到 時 , 輸 出 不 變 1: 時 鐘 邊 沿 到 時 , 輸

18、出 開 始 變 為 輸 入n若 每 個 時 鐘 邊 沿 都 寫 入 , 則 不 需 WE信 號p寄 存 器 組 (Register File)n兩 個 讀 口 (組 合 邏 輯 操 作 ): busA和 busB 分 別 由 RA和 RB給 出 地 址 。 地 址 RA或 RB有 效 后 , 經 一 個 “取 數(shù) 時 間(AccessTime)”, BusA和 BusB有 效n一 個 寫 口 (時 序 邏 輯 操 作 ): 寫 使 能 為 1且 時 鐘 邊 沿 到 時 , busW傳 來 的 值 開 始 被 寫 入 RW指 定 的 寄 存 器 中 ClkbusWWrite Enable32 3

19、2busA32busB5 5 5RW RARB32 32-bitRegistersClkData InWrite EnableN NData Out 20 寄 存 器 組 的 內 部 結 構busW CD01 3031 MUXMXURegister 0Register 1Register 30Register 31Write EnableRW 32-to-1Decoder RA RB busAbusBClk CDCDCD每 個 寄 存 器 由 32個 觸 發(fā) 器 組 成 , 輸 入 數(shù) 據來 自 busW, 讀 出 數(shù) 據 分 別 送 busA和 busBWriteEnable信 號 控 制

20、是 否 寫 入 新 值 21 p理 想 存 儲 器 (idealized memory)nData Out: 32位 讀 出 數(shù) 據nData In: 32位 寫 入 數(shù) 據nAddress: 讀 寫 公 用 一 個 32位 地 址n讀 操 作 (組 合 邏 輯 操 作 ): 地 址 Address有 效 后 , 經 一 個“取 數(shù) 時 間 AccessTime”, Data Out上 數(shù) 據 有 效n寫 操 作 (時 序 邏 輯 操 作 ): 寫 使 能 為 1且 時 鐘 Clk邊 沿 到 時 ,Data In傳 來 的 值 開 始 被 寫 入 Address指 定 的 存 儲 單 元存 儲

21、 元 件 : 理 想 存 儲 器 ClkData InWrite Enable32 32DataOutAddress為 簡 化 數(shù) 據 通 路 操 作 的 說 明 , 在 此 把 存 儲 器 簡 化 為 帶 時鐘 信 號 Clk的 理 想 模 型 。 22 數(shù) 據 通 路 與 時 序 控 制p同 步 系 統(tǒng) (Synchronous system)n用 專 門 時 序 信 號 定 時 操 作n時 序 信 號 規(guī) 定 何 時 發(fā) 何 操 作p時 序 信 號n用 于 同 步 控 制 的 定 時 信 號p指 令 周 期n取 出 并 執(zhí) 行 一 條 指 令 的 時 間n不 同 指 令 的 指 令 周

22、期 會 不 同p早 期 計 算 機 三 級 時 序 系 統(tǒng)n機 器 周 期 節(jié) 拍 (時 鐘 周 期 ) 脈 沖n指 令 周 期 分 為 取 指 令 、 讀 數(shù) 、 執(zhí) 行 并 存 結 果 多 個 基 本 工 作 周 期 , 稱 為 機 器 周 期n機 器 周 期 有 取 指 令 、 存 儲 器讀 /寫 、 中 斷 響 應 等 類 型 現(xiàn) 代 計 算 機 已 不 采 用 三 級 時 序 系統(tǒng) , 機 器 周 期 的 概 念 已 逐 漸 消 失。 整 個 數(shù) 據 通 路 中 的 定 時 信 號 就是 時 鐘 , 一 個 時 鐘 周 期 就 是 一 個節(jié) 拍 。 SKIP 23 p四 類 指 令

23、的 指 令 周 期取 指 周 期 執(zhí) 行 周 期取 指 周 期 執(zhí) 行 周 期取 指 周 期 執(zhí) 行 周 期取 指 周 期 間 址 周 期 執(zhí) 行 周 期非 訪 存 指 令 周 期直 接 訪 存 指 令 周 期間 接 訪 存 指 令 周 期轉 移 指 令 周 期指 令 周 期 BACK 24 數(shù) 據 通 路 與 時 序 控 制Clk 寄 存 器 的 輸 入 可 變 化 Setup Hold. . . .Setup Hold數(shù) 據 通 路 由 “ + 狀 態(tài) 元 件 + 操 作 元 件 ( 組 合 電 路 ) + 狀 態(tài) 元件 + ” 組 成只 有 狀 態(tài) 元 件 能 存 儲 信 息 , 所 有

24、 操 作 元 件 都 須 從 狀 態(tài) 單 元 接收 輸 入 , 并 將 輸 出 寫 入 狀 態(tài) 單 元 中 。 其 輸 入 為 前 一 時 鐘 生 成的 數(shù) 據 , 輸 出 為 當 前 時 鐘 所 用 的 數(shù) 據現(xiàn) 代 計 算 機 的 時 鐘 周 期Clk Clkp假 定 采 用 下 降 沿 觸 發(fā) (負 跳 變 )方 式 (可 以 是 上 升 沿 方 式 )n狀 態(tài) 單 元 在 下 降 沿 寫 入 信 息 ,經 Latch Prop (clk-to-Q)后 輸 出 有 效 n Cycle Time = Latch Prop + Longest Delay Path + Setup + Clo

25、ck Skewp約 束 條 件 : (Latch Prop + Shortest Delay Path - Clock Skew) Hold Time 通 常 Latch Prop Hold Time, 故 無 需 考 慮 Hold Time 25 早 期 累 加 器 型 指 令 系 統(tǒng) 數(shù) 據 通 路p最 簡 單 的 數(shù) 據 通 路 結 構 p取 指 令 數(shù) 據 路 徑 PCMAR, Read M, MMBRIBRIRp取 操 作 數(shù) 、 運 算 、 送 結 果的 數(shù) 據 路 徑 操 作 數(shù) 地 址 MAR, Read M, MMBRALU輸 入 端 , ACALU輸 入 端 , ALU操

26、作 , ALU結 果 MBR, Write M 26 單 總 線 數(shù) 據 通 路p四 種 基 本 操 作 的 時 序n在 通 用 寄 存 器 之 間 傳 送 數(shù) 據 R0out, Yin n完 成 算 術 、 邏 輯 運 算R1out, YinR2out, Add, ZinZout, R3inn從 主 存 取 字 R1out, MARinRead, WMFC (等 待 MFC)MDRout, R2in n寫 字 到 主 存R1out, MARinR2out, MDRin,Write, WMFCRR2MRR1 MRR1 RR2問 題 : 時 鐘 周 期 的 寬 度 如 何 確 定 ? 以 “Ri

27、out,OP,Rjin”所 花 時 間 來 確 定還 是 以 “ Read/Write” 所 花 時 間 來 確 定 ? 以 上 四 種 操 作 各 需 要 幾 個 時 鐘 周 期 ?1Cycle?3Cycles?3Cycles?3Cycles? CPU訪 存 有 兩 種 通 信 方 式早 期 : 直 接 訪 問 MM, “ 異 步” 方 式 , 用 MFC應 答 信 號現(xiàn) 在 : 先 Cache后 MM, “ 同 步” 方 式 , 無 需 應 答 27 三 總 線 數(shù) 據 通 路p單 總 線 中 一 個 時 鐘 內 只 允 許 傳 一 個數(shù) 據 , 因 而 指 令 執(zhí) 行 效 率 很 低p可

28、 采 用 多 總 線 方 式 , 同 時 在 多 個 總線 上 傳 送 不 同 數(shù) 據 , 提 高 效 率例 : 三 總 線 數(shù) 據 通 路n總 線 A、 B分 別 傳 送 兩 個 源 操 作 數(shù) ,總 線 C傳 送 結 果n單 總 線 中 暫 存 器 Y和 Z可 取 消 ,Why?n采 用 雙 口 寄 存 器n如 何 實 現(xiàn) : RR3 RR1 op RR2R1outA, R2outB, OP, R3inC只 要 一 個 時 鐘 周 期 即 可目 前 , 大 多 數(shù) 計 算 機 都 采 用 流 水 線 方 式 執(zhí) 行 指 令 , 而 上 述 單 總 線 或 三 總 線數(shù) 據 通 路 很 難

29、實 現(xiàn) 指 令 流 水 執(zhí) 行 。 ZY以 MIPS指 令 系 統(tǒng) 為 例 介 紹 非 總 線 式 CPU的 設 計 28 回 顧 MIPS的 三 種 指 令 類 型pADD and SUBSTRACTnadd rd, rs, rtnsub rd, rs, rtpOR Immediate nori rt, rs, imm16pLOAD and STOREnlw rt, rs, imm16nsw rt, rs, imm16pBRANCH nbeq rs, rt, imm16pJUMP nj target op target address 02631 6 bits 26 bitsop rs rt

30、 rd shamt funct 061116212631 6 bits 6 bits5 bits5 bits5 bits5 bitsop rs rt immediate 016212631 6 bits 16 bits5 bits5 bits這 些 指 令 具 有 代 表 性 !算 術 運 算 、 邏 輯 運 算 ; RR型 、 RI型 ;訪 存 指 令 ; 條 件 轉 移 、 無 條 件 轉 移本 講 重 點 : 實 現(xiàn) 以 上 指 令 的 數(shù) 據 通 路 !MIPS有 哪 三 種 類 型 指 令 ? R-Type、 I-Type、 J-Type 29 設 計 處 理 器 的 步 驟第 一

31、步 : 分 析 每 條 指 令 的 功 能 , 并 用 RTL(Register Transfer Language)來 表 示 第 二 步 : 根 據 指 令 功 能 給 出 所 需 元 件 , 并 考 慮 如 何將 他 們 互 連 第 三 步 : 確 定 每 個 元 件 所 需 控 制 信 號 的 取 值 第 四 步 : 匯 總 所 有 指 令 所 涉 及 到 的 控 制 信 號 , 生 成一 張 反 映 指 令 與 控 制 信 號 之 間 關 系 的 表 第 五 步 : 根 據 表 得 到 每 個 控 制 信 號 的 邏 輯 表 達 式 ,據 此 設 計 控 制 器 電 路n 處 理 器

32、 設 計 涉 及 到 數(shù) 據 通 路 的 設 計 和 控 制 器 的 設 計n 數(shù) 據 通 路 中 有 兩 種 元 件 l 操 作 元 件 : 由 組 合 邏 輯 電 路 實 現(xiàn)l 存 儲 (狀 態(tài) )元 件 : 由 時 序 邏 輯 電 路 實 現(xiàn) SKIP 30 RTL: The ADD Instruction( 加 法 指 令 )paddrd, rs, rtnMPC 從 PC所 指 的 內 存 單 元 中 取 指 令nRrd Rrs + Rrt 從 rs、 rt 所 指 的 寄 存 器 中 取 數(shù) 后 相加 , 結 果 送 rd 所 指 的 寄 存 器 中nPC PC + 4 PC加 4,

33、 使 PC指 向 下 一 條 指 令000000 rs rt rd shamt 100000 061116212631 6 bits 6 bits5 bits5 bits5 bits5 bits 31 RTL: The Load Instruction( 裝 入 指 令 )plw rt, rs, imm16nMPC (同 加 法 指 令 )nAddr Rrs + SignExt(imm16) 計 算 數(shù) 據 地 址 (立 即 數(shù) 要進 行 符 號 擴 展 )nRrt MAddr 從 存 儲 器 中 取 出 數(shù) 據 , 裝 入 到 寄 存 器 中nPC PC + 4 (同 加 法 指 令 )10

34、0011 rs rt immediate 016212631 6 bits 16 bits5 bits5 bits BACK to design pro. 32 數(shù) 據 通 路 中 的 關 鍵 路 徑 (Load操 作 )p寄 存 器 組 和 理 想 存 儲 器 的 定 時 方 式n寫 操 作 時 , 作 為 時 序 邏 輯 電 路 l時 鐘 到 達 前 輸 入 需 setup; 到 達 后 經 “ Clk-to-Q”寫 入 數(shù) 據 到達 輸 出 端n讀 操 作 時 , 作 為 組 合 邏 輯 電 路 l地 址 有 效 后 經 過 “ access time”, 輸 出 開 始 有 效 Clk

35、 5Rw Ra Rb32 32-bitRegistersRd ALU ClkData In DataOutDataAddress IdealDataMemoryInstruction busInstruction AddressIdealInstructionMemoryClk PC 5Rs 5Rt 16Imm32 323232 Load操 作 :RRt M(Rs)+Imm16 33 取 指 部 件 (Instruction Fetch Unit) p每 條 指 令 都 有 的 公 共 操 作n取 指 令 : MPCn更 新 PC: PC PC + 4 轉 移 (Branch and Jump

36、)時 , PC內 容 再 次 被 更 新 為 “ 轉 移 目 標 地 址 ” 32Instruction WordAddressInstructionMemoryPCClk Next AddressLogic 順 序 : 先 取 指 令 , 再 改 變 PC的 值 (具 體 實 現(xiàn) 可 以 并 行 ) 決 不 能 先 改 變 PC的 值 , 再 取指 令下 地 址邏 輯 取 指 后 , 每 條 指 令 功 能 不同 , 在 數(shù) 據 通 路 中 信 息 流動 過 程 也 不 同下 面 分 別 對 每 條 指 令 進 行數(shù) 據 通 路 設 計取 指 部 件 34 加 法 和 減 法 指 令 (R-

37、type類 型 )實 現(xiàn) 目 標 (7條 指 令 )pADD and subtractnadd rd, rs, rtnsub rd, rs, rtpOR Immediate nori rt, rs, imm16pLOAD and STOREnlw rt, rs, imm16nsw rt, rs, imm16pBRANCH nbeq rs, rt, imm16pJUMP nj target op target address 02631 6 bits 26 bits op rs rt rd shamt funct 061116212631 6 bits 6 bits5 bits5 bits5 b

38、its5 bitsop rs rt immediate 016212631 6 bits 16 bits5 bits5 bits1. 考 慮 add和 sub指 令 (R-Type指 令 的 代 表 ) 35 RR( R-type) 型 指 令 的 數(shù) 據 通 路p功 能 : Rrd Rrs op Rrt Example: add rd, rs, rtop rs rt rd shamt funct 061116212631 6 bits 6 bits5 bits5 bits5 bits5 bits 32 ResultALUctr: add/subClkbusWRegWr32 32busA 32

39、busB5 5 5Rw Ra Rb32 32-bitRegistersrs rtrd ALU不 考 慮 公 共 操 作 , 僅 R-Type指 令 執(zhí) 行 階 段 的 數(shù) 據 通 路 如 下 :ALUctr 、 RegWr: 指 令 譯 碼 后 產 生的 控 制 信 號Ra, Rb, Rw 分 別 對 應 指 令 的 rs, rt, rd 指 令 “ add rd, rs, rt”的 控制 信 號 應 為 ?ALUctr=add, RegWr=1 36 帶 立 即 數(shù) 的 邏 輯 指 令 ( ori指 令 ) op target address 02631 6 bits 26 bits op

40、rs rt rd shamt funct 061116212631 6 bits 6 bits5 bits5 bits5 bits5 bitsop rs rt immediate 016212631 6 bits 16 bits5 bits5 bits實 現(xiàn) 目 標 (7條 指 令 )pADD and subtractnadd rd, rs, rtnsub rd, rs, rtpOR Immediate nori rt, rs, imm16pLOAD and STOREnlw rt, rs, imm16nsw rt, rs, imm16pBRANCH nbeq rs, rt, imm16pJU

41、MP nj target 2. 考 慮 ori 指 令 (I-Type指 令 和 邏 輯 運 算指 令 的 代 表 ) 37 RTL: The OR Immediate Instructionpori rt, rs, imm16nMPC 取 指 令 (公 共 操 作 , 取 指 部 件 完 成 )nRrt Rrs or ZeroExt(imm16) 立 即 數(shù) 零 擴 展 , 并與 rs內 容 做 “ 或 ” 運 算nPC PC + 4 計 算 下 地 址 (公 共 操 作 , 取 指 部 件 完 成 )op rs rt immediate 016212631 6 bits 16 bits5

42、bits5 bits immediate 0161531 16 bits16 bits0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0零 擴 展 ZeroExt(imm16) :思 考 : 應 在 前 面 數(shù) 據 通 路 上 加 哪 些 元 件 和 連 線 ? 用 什 么 控制 信 號 來 控 制 ? 邏 輯 運 算 , 立 即 數(shù) 為 邏 輯 數(shù) 38 帶 立 即 數(shù) 的 邏 輯 指 令 的 數(shù) 據 通 路pRrt Rrs op ZeroExtimm16 Example: ori rt, rs, imm1632ResultALUctrClkbusWRegWr32 32busA

43、32busB5 5 5Rw RaRb32 32-bitRegistersRsDont Care(Rt) ALUop rs rt immediate 016212631 6 bits 16 bits5 bits5 bitsR-Type類 型 的 結 果 寫 入 Rd R-Type的 操 作數(shù) 來 自 busB應 加 蘭 色 部 分 , 為 什 么 ?Ori指 令 的 控 制 信 號 : RegDst=? ; RegWr=? ; ALUctr=? ; ALUSrc=?Ori指 令 的 控 制 信 號 : RegDst=1; RegWr=1; ALUSrc=1; ALUctr=orZeroExt M

44、ux16 32imm16 ALUSrc01RtRdRegDst Mux0 1 39 訪 存 指 令 中 的 數(shù) 據 裝 入 指 令 (lw) op target address 02631 6 bits 26 bits op rs rt rd shamt funct 061116212631 6 bits 6 bits5 bits5 bits5 bits5 bitsop rs rt immediate 016212631 6 bits 16 bits5 bits5 bits實 現(xiàn) 目 標 (7條 指 令 )pADD and subtractnadd rd, rs, rtnsub rd, rs,

45、 rtpOR Immediate:nori rt, rs, imm16pLOAD and STOREnlw rt, rs, imm16nsw rt, rs, imm16pBRANCH:nbeq rs, rt, imm16pJUMP:nj target 3. 考 慮 lw 指 令 (訪 存 指 令 的 代 表 ) 40 RTL: The Load Instructionplw rt, rs, imm16nMPC 取 指 令 (公 共 操 作 , 取 指 部 件 完 成 )nAddr Rrs + SignExt(imm16) 計 算 存 儲 單 元 地 址 (符號 擴 展 ! )nRrt M Ad

46、dr 裝 入 數(shù) 據 到 寄 存 器 rt中nPC PC + 4 計 算 下 地 址 (公 共 操 作 , 取 指 部 件 完 成 ) immediate 016 1531 16 bits16 bits0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 016 1531 immediate16 bits16 bits 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1op rs rt immediate 016212631 6 bits 16 bits5 bits5 bits符 號 擴 展 ( 為 什么 不 是 零 擴 展 ? ) 思 考 : 應 在 原 數(shù) 據

47、 通 路 上 加 哪 些 元 件 和 連 線 ?用 什 么 控 制 信 號 來 控 制 ? 立 即 數(shù) 用 補 碼 表 示 41 裝 入 (lw)指 令 的 數(shù) 據 通 路pRrt M Rrs + SignExtimm16 Example: lw rt, rs, imm16op rs rt immediate 0162126316 bits 16 bits5 bits5 bits 32ALUctrClkbusWRegWr32 32busA32busB5 5 5Rw RaRb32 32-bitRegistersRsRt Dont Care(Rt)RdRegDst MuxMux 3216imm16

48、 ALUSrc ALUExtenderExtOp MuxMemtoRegClkData In WrEn32 AdrDataMemory 32MemWr應 加 蘭 色 部 分 , 為 什 么 ?控 制 信 號 RegDst, RegWr, ALUctr, ExtOp, ALUSrc, MemWr, MemtoReg 各 取 何 值 ?0 1 01RegDst=1, RegWr=1, ALUctr=add, ExtOp=1, ALUSrc=1, emWr=0, MemtoReg=10:零 擴 展 , 1: 符 號 擴 展 01 42 訪 存 指 令 中 的 存 數(shù) 指 令 (sw) op targ

49、et address 02631 6 bits 26 bits op rs rt rd shamt funct 061116212631 6 bits 6 bits5 bits5 bits5 bits5 bitsop rs rt immediate 016212631 6 bits 16 bits5 bits5 bits實 現(xiàn) 目 標 (7條 指 令 )pADD and subtractnadd rd, rs, rtnsub rd, rs, rtpOR Immediate:nori rt, rs, imm16pLOAD and STOREnlw rt, rs, imm16nsw rt, rs,

50、 imm16pBRANCH:nbeq rs, rt, imm16pJUMP:nj target 4. 考 慮 sw 指 令 (訪 存 指 令 的 代 表 ) 43 RTL: The Store Instructionpsw rt, rs, imm16nMPC 取 指 令 (公 共 操 作 , 取 指 部 件 完 成 )nAddr Rrs + SignExt(imm16) 計 算 存 儲 單 元 地 址 (符號 擴 展 ! )nMemAddr Rrt 寄 存 器 rt中 的 內 容 存 到 內 存 單 元nPC PC + 4 計 算 下 地 址 (公 共 操 作 , 取 指 部 件 完 成 )

51、op rs rt immediate 016212631 6 bits 16 bits5 bits5 bits思 考 : 應 在 原 數(shù) 據 通 路 上 加 哪 些 元 件 和 連 線 ? 用 什 么 控 制信 號 來 控 制 ? 立 即 數(shù) 用 補 碼 表 示 44 存 數(shù) (sw)指 令 的 數(shù) 據 通 路pM Rrs + SignExtimm16 Rrt Example: sw rt, rs, imm1632ALUctrClkbusWRegWr32 32busA32busB55 5Rw RaRb32 32-bitRegistersRsRt RtRdRegDst E xtender Mux

52、Mux 3216imm16 ALUSrcExtOp MuxMemtoRegClkData In WrEn32 AdrDataMemory 32MemWrALUop rs rt immediate 016212631 6 bits 16 bits5 bits5 bits0 1 01 應 加 蘭 色 部 分 , 為 什 么 ?控 制 信 號 RegDst, RegWr, ALUctr, ExtOp, ALUSrc, MemWr, MemtoReg 各 取 何 值 ?RegDst=x, RegWr=0, ALUctr=add, ExtOp=1, ALUSrc=1, MemWr=1, MemtoReg

53、=x 01 45 分 支 ( 條 件 轉 移 ) 指 令 ( 相 等 轉 移 : beq) op target address 02631 6 bits 26 bits op rs rt rd shamt funct 061116212631 6 bits 6 bits5 bits5 bits5 bits5 bitsop rs rt immediate 016212631 6 bits 16 bits5 bits5 bits實 現(xiàn) 目 標 (7條 指 令 )pADD and subtractnadd rd, rs, rtnsub rd, rs, rtpOR Immediate:nori rt,

54、 rs, imm16pLOAD and STOREnlw rt, rs, imm16nsw rt, rs, imm16pBRANCH:nbeq rs, rt, imm16pJUMP:nj target 5. 考 慮 beq指 令 (條 件 轉 移 指 令 的 代 表 ) 46 RTL: The Branch Instructionpbeqrs, rt, imm16nMPC 取 指 令 (公 共 操 作 , 取 指 部 件 完 成 )nCond Rrs - Rrt 做 減 法 比 較 rs和 rt中 的 內 容nif (COND eq 0) 計 算 下 地 址 (根 據 比 較 結 果 , 修

55、改 PC)lPC PC + 4 + ( SignExt(imm16) x 4 ) n else lPC PC + 4op rs rt immediate 016212631 6 bits 16 bits5 bits5 bits思 考 : 立 即 數(shù) 的 含 義 是 什 么 ? 是 相 對 指 令 數(shù) 還 是 相 對 單 元 數(shù) ?應 在 原 數(shù) 據 通 路 上 加 哪 些 元 件 和 連 線 ? 用 什 么 控 制 信 號 來 控 制 ?立 即 數(shù) 用 補 碼 表 示 47 條 件 轉 移 指 令 的 數(shù) 據 通 路pbeq rs, rt, imm16 We need to compare R

56、s and Rt !op rs rt immediate 016212631 6 bits 16 bits5 bits5 bits ALUctrClkbusWRegWr32 32busA 32busB5 5 5Rw RaRb32 32-bitRegistersRsRt RtRdRegDst Extender MuxMux 3216imm16 ALUSrcExtOp ALU PC ClkNext AddressLogic16imm16Branch To InstructionMemoryZero思 考 : 下 地 址 邏 輯 如 何 設 計 ?控 制 信 號 RegDst, RegWr, ALU

57、ctr, ExtOp, ALUSrc, MemWr, MemtoReg, Branch 各 取 何 值 ?RegDst=x, RegWr=0, ALUctr=sub, ExtOp=x, ALUSrc=0, MemWr=0, MemtoReg=x, Branch=10 1 01 48 下 地 址 計 算 邏 輯 的 設 計PC是 一 個 32位 地 址 :順 序 執(zhí) 行 時 : PC = PC + 4轉 移 執(zhí) 行 時 : PC = PC + 4 + SignExtImm16 * 4n MIPS按 字 節(jié) 編 址 , 每 條 指 令 為 32位 , 占 4個 字 節(jié) , 故 PC的值 總 是 4

58、的 倍 數(shù) , 即 后 兩 位 為 00, 因 此 , PC只 需 要 30位 即 可 下 地 址 計 算 邏 輯 簡 化 為 : 順 序 執(zhí) 行 時 : PC = PC + 1轉 移 執(zhí) 行 時 : PC = PC + 1 + SignExtImm16取 指 令 時 : 指 令 地 址 = PC 串 接 “ 00”n PC采 用 30位 后 , 其 轉 移 地 址 計 算 邏 輯 變 得 更 加 簡 單 采 用 32位 PC時 , 可 用 左 移 2位 實 現(xiàn) “ *4”操 作 , 計 算 轉 移地 址 用 2個 加 法 器 ! 用 更 簡 便 的 方 式 實 現(xiàn) 如 下 : ? 49 下

59、址 邏 輯 設 計 方 案 1: 快 速 但 昂 貴p Using a 30-bit PC:n順 序 執(zhí) 行 時 : PC = PC + 1n轉 移 執(zhí) 行 時 : PC = PC + 1 + SignExtImm16n取 指 令 時 : 指 令 地 址 = PC concat “00”30 30SignE xt 3016imm16 Mux01Adder“ 1”PCClk Adder30 30 Branch Zero AddrInstructionMemoryAddr“ 00” 32InstructionInstruction 30先 由 當 前 PC取 指 令 , 計 算 的 下 條 指 令

60、 地 址 在 下 一 個 時 鐘 到 來 后 才 寫 入 PC! 標 志 位 ZF由 ALU產 生 !為 什 么 這 里 沒 有 用 “ ALU”而 是 用 “ Adder”? “ALU”和 “ Adder”有 什 么 差別 ? 50 p為 什 么 慢 ?n只 能 等 到 “ Zero”有 值 后 才 能 進 行 地 址 計 算p對 性 能 有 沒 有 影 響 ?n沒 有 , 因 為 Load指 令 更 慢p為 什 么 便 宜 ? n“ +1”操 作 用 “ 進 位 ” 來 實 現(xiàn) , 節(jié) 省 一 個 “ Adder”30 30SignExt 30 16imm16 Mux01 Adder“ 0

61、”PCClk 30Branch Zero AddrInstructionMemoryAddr“ 00” 32Instruction30 “ 1” Carry InInstruction 非 Branch時 也 不 能 很 快得 到 下 條 指 令 地 址 下 址 邏 輯 設 計 方 案 2: 慢 但 便 宜 51 無 條 件 轉 移 指 令 op target address 02631 6 bits 26 bits op rs rt rd shamt funct 061116212631 6 bits 6 bits5 bits5 bits5 bits5 bitsop rs rt immedi

62、ate 016212631 6 bits 16 bits5 bits5 bits實 現(xiàn) 目 標 (7條 指 令 )pADD and subtractnadd rd, rs, rtnsub rd, rs, rtpOR Immediate:nori rt, rs, imm16pLOAD and STOREnlw rt, rs, imm16nsw rt, rs, imm16pBRANCH:nbeq rs, rt, imm16pJUMP:nj target 6. 考 慮 Jump指 令 (無 條 件 轉 移 指 令 的代 表 ) 52 RTL: The Jump Instructionpj targe

63、tnMPC 取 指 令 (公 共 操 作 , 取 指 部 件 完 成 )nPC PC 串 接 target 計 算 目 標 地址 op target address 02631 6 bits 26 bits思 考 : 應 在 原 數(shù) 據 通 路 上 加 哪 些 元 件和 連 線 ? 用 什 么 控 制 信 號 來 控 制 ?想 一 想 : 跳 轉 指 令 的 轉 移 范 圍 有 多 大 ?是 當 前 指 令 后 的 0 x00000000 xFFFFFFC 處 ?不 對 ! 它 不 是 相 對 尋 址 , 而 是 絕 對 尋 址 FFFF FFFFF000 0000EFFF FFFFE000

64、0000 AFFF FFFFA000 00000FFF FFFF0000 0000j target 53PC的 改變 在 下 個Clk到 達后 發(fā) 生 ! Instruction Fetch Unit: 取 指 部 件30 30Sig nExt 3016imm16 Mux01Adder“ 1”PCClk Adder30 30Branch Zero “ 00” AddrInstructionMemoryAddr32p J targetnPC PC concat targetInstruction Instruction30264 Mux10Target 30 JumpInstruction 這

65、是 “ 取 指 部 件 ” 的 完 整 設 計3 個 輸 入 : jump, Branch, Zero1個 輸 出 : 指 令 字RegDst, RegWr, ALUctr, ExtOp, ALUSrc, MemWr, MemtoReg, Branch, Jump 各 取 何 值 ?=ExtOp= Src=MemtoReg=ALUctr=x, RegWr=0, MemWr=0, Branch=0, Jump=1 54 The MIPS Subset(考 察 實 現(xiàn) 以 下 指令 的 數(shù) 據 通 路 )pADD and subtractnadd rd, rs, rtnsub rd, rs, rt

66、pOR Immediate:nori rt, rs, imm16pLOAD and STOREnlw rt, rs, imm16nsw rt, rs, imm16pBRANCH:nbeq rs, rt, imm16pJUMP: nj target op target address 02631 6 bits 26 bitsop rs rt rd shamt funct 061116212631 6 bits 6 bits5 bits5 bits5 bits5 bitsop rs rt immediate 016212631 6 bits 16 bits5 bits5 bits所 有 指 令 的 數(shù) 據 通 路 都 已 經 設 計 好 , 合 起 來 的 數(shù) 據 通 路 是 什 么 樣 的 ? 55 Putting it All Together: A Single Cycle Datapath 32ALUctrClkbusWRegWr32 32busA32busB55 5Rw RaRb32 32-bitRegistersRsRt RtRdRegDst Ext ender MuxMux

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!