章 節 大 綱 微 處 理 機 系 統 (Microprocessor System) 第 一 章 ARM 微 處 理 器 基 礎 11 1.1 處 理 器 設 計 基 礎 1.1.1 處 理 器 體 系 結 構 和 組 織 112 1.1.2 硬 體 設 計 的 抽 像 1.1.3 MU0: 一 個 簡 單 的 處 理 器 114 1.1.4 指 令 集 的 設 計 1.1.5 管 線 12 1.2 ARM 微 處 理 器 簡 介 1.3 ARM 微 處 理 器 的 特 點 Ping-Liang Lai ( 賴 秉 樑 ) Microprocessor Ch1-1 Microprocessor Ch1-2 1.1.1 處 理 器 體 系 結 構 和 組 織 (1/2) 1.1.1 處 理 器 體 系 結 構 和 組 織 (2/2) 計 算 機 體 系 結 構 (Computer architecture) 描 述 用 戶 角 度 看 到 的 計 算 機 指 令 集 可 見 暫 存 器 (register) 記 憶 體 管 理 表 的 結 構 和 異 常 處 理 模 式 都 是 體 系 結 構 的 一 部 分 計 算 機 組 織 (Computer organization) 描 述 用 戶 不 能 看 到 的 體 系 結 構 實 現 的 方 式 管 線 結 構 透 明 的 快 取 記 憶 體 (Cache) 步 行 表 (table-working) 硬 體 以 及 轉 換 對 照 緩 衝 (Translation Lookaside Buffer, TLB) 什 麼 是 處 理 器? 通 用 處 理 器 是 一 個 執 行 記 憶 體 中 指 令 的 有 限 狀 態 機 (finite-state automaton) 儲 存 程 式 計 算 機 (stored-program computer) 儲 存 程 式 數 位 計 算 機 把 指 令 和 資 料 存 放 同 一 個 記 憶 體 系 統 中, 必 要 時 可 以 將 指 令 做 為 資 料 處 理 計 算 機 應 用 嵌 入 式 (embedded) 產 品, 如 行 動 電 話 汽 車 發 動 機 管 理 系 統 等 Microprocessor Ch1-3 Microprocessor Ch1-4
程 式 執 行 的 例 子 1.1.2 硬 體 設 計 的 抽 象 (abstraction) Command 1: Load AC from Memory 2: Store AC to memory 5: Add to AC from memory Add the contents of memory 940 to the content of memory 941 and stores the result at 941 由 下 而 上 的 抽 像 化 電 晶 體 (Transistors) 邏 輯 閘 (Logic gates) 邏 輯 符 號 真 值 表 (Truth table) Fetch Execution Microprocessor Ch1-5 Microprocessor Ch1-6 抽 像 的 等 級 (Levels of abstraction) 閘 級 設 計 (Gate-level design) 1. 電 晶 體 ; 2. 邏 輯 閘 記 憶 體 單 元 和 專 用 電 路 ; 3. 單 位 加 法 器 (single-bit adders) 多 工 器 (multiplexers) 解 碼 器 (decoder) 和 正 反 器 (flip-flops); 4. 單 字 元 寬 加 法 器 (word-wide adders) 多 工 器 解 碼 器 暫 存 器 和 匯 流 排 (buses); 5. ALU ( 算 數 邏 輯 單 元 ) 桶 式 移 位 器 (barrel shifter) 暫 存 器 庫 (register banks) 和 記 憶 體 組 (memory blocks); 6. 處 理 器 Cache 和 儲 存 器 管 理 組 織 ; 7. 處 理 器 周 邊 單 元 Cache C h 記 憶 體 和 記 憶 體 管 理 單 元 ; 8. 積 體 系 統 晶 片 ; 9. 印 刷 電 路 板 (PCB); 10. 行 動 電 話 PC 和 發 動 機 控 制 器 1. 布 林 代 數 和 符 號 ; 2. 二 進 制 數 ; 3. 二 進 制 加 法 ; 4. 多 工 器 ; 5. 時 脈 (clocks); 6. 循 序 電 路 (sequential circuits); 7. 栓 鎖 器 (latches) 和 正 反 器 (flip-flops); 8. 暫 存 器 Microprocessor Ch1-7 Microprocessor Ch1-8
1.1.3 MU0: 一 個 簡 單 的 處 理 器 MU0 指 令 集 (1/2) 一 個 簡 單 的 處 理 器 由 一 些 基 本 的 元 件 構 成 程 式 計 數 器 (program counter, PC): 用 來 保 存 當 前 指 令 的 位 址 累 加 器 (accumulator, ACC) 暫 存 器 : 用 來 保 存 正 在 處 理 的 資 料 算 術 邏 輯 單 元 (arithmetic-logic unit, ALU): 可 以 對 二 進 制 運 算 元 (operands) 進 行 若 干 操 作, 如 加 減 增 值 等 指 令 暫 存 器 (instruction register, IR): 保 存 當 前 的 指 令 指 令 解 碼 器 和 控 制 邏 輯 : 它 根 據 指 令 控 制 上 述 元 件 產 生 需 的 結 果 MUn, 其 中 1 n 6, 為 曼 徹 斯 特 大 學 設 計 機 器 經 常 的 使 用 名 稱 最 簡 單 的 機 器 被 稱 為 MU0, 為 曼 徹 斯 特 用 以 說 明 處 理 器 設 計 的 原 理 MU0 是 為 了 教 學 而 開 發 的, 並 不 是 作 為 研 究 項 目 而 製 作 的 大 規 模 機 器 MU0: 12 位 元 位 址 空 間 的 16 位 元 機 4096 個 可 分 別 定 址 的 ; 16 位 元 的 儲 存 區 ; 記 憶 體 定 址 範 圍 8KB MU0 的 指 令 長 度 為 16 位 元 4 位 元 為 操 作 碼 (opcode), 即 最 多 可 有 16 道 指 令 ; 12 位 元 為 位 欄 位 (S) Microprocessor Ch1-9 Microprocessor Ch1-10 MU0 指 令 集 (2/2) MU0 邏 輯 設 計 最 簡 單 的 指 令 集 只 使 用 了 16 種 可 用 操 作 碼 中 的 8 種 邏 輯 級 (logical order) 的 設 計 方 式 資 料 通 路 (The datapath): 所 有 並 行 地 傳 送 的 儲 存 或 處 理 多 位 二 進 制 數 的 元 件 都 屬 於 資 料 通 路, 包 括 累 加 器 程 式 計 數 器 ALU 和 指 令 暫 存 器 採 用 基 於 暫 存 器 與 多 工 器 等 元 件 的 暫 存 器 傳 輸 級 (Register Transfer Level, RTL) 設 計 方 式 控 制 邏 輯 (The control logic): 所 有 不 屬 於 資 料 通 路 的 元 件 都 屬 於 控 制 邏 輯, 採 用 有 限 狀 態 機 (Finite State Machine, FSM) 的 方 式 進 行 設 計 Microprocessor Ch1-11 Microprocessor Ch1-12
資 料 通 路 設 計 (1/2) 資 料 通 路 設 計 (2/2) 限 制 的 因 素 : 記 憶 體 的 讀 / 寫 (R/W) 週 期 ( 假 設 讀 / 寫 總 是 佔 用 一 個 時 脈 週 期 (clock cycle) 每 條 指 令 佔 用 的 時 脈 週 期 數 嚴 格 地 由 它 必 須 存 取 記 憶 體 的 次 數 決 定 ; LDA STO ADD SUB 要 兩 次 記 憶 體 存 取 ; JMP JGE JNE 僅 需 一 次 Microprocessor Ch1-13 Microprocessor Ch1-14 資 料 通 路 操 作 控 制 邏 輯 (1/2) 每 一 條 指 令 都 是 從 它 到 達 指 令 暫 存 器 (IR) 開 始, 分 為 兩 步 執 行 存 取 記 憶 體 中 的 運 算 元 並 執 行 所 需 的 操 作» 送 出 指 令 暫 存 器 中 的 位 址, 然 後, 從 記 憶 體 讀 出 一 個 運 算 元, 與 ALU 中 累 加 器 完 成 相 應 操 作 後, 將 結 果 寫 回 累 加 器 ;» 或 者 把 累 加 器 的 資 料 輸 出 保 存 到 記 憶 體 中 讀 取 下 一 步 要 執 行 的 指 令» 送 出 PC 或 者 指 令 暫 存 器 中 的 位 址, 讀 取 下 一 道 指 令 ;» 無 論 是 哪 種 情 形, 這 個 位 址 都 會 在 ALU 中 加 1, 並 將 增 值 存 入 PC 控 制 邏 輯 對 當 前 的 指 令 進 行 解 碼, 並 產 生 資 料 通 路 的 控 制 訊 號, 必 要 時 會 使 用 來 自 資 料 通 路 的 控 制 輸 入 控 制 邏 輯 是 一 個 有 限 狀 態 機 (FSM); MU0 的 控 制 邏 輯 非 常 簡 單, 只 需 要 兩 個 狀 態 : 取 指 令 和 執 行, 因 此 用 1 位 元 足 以 描 述 這 兩 個 狀 態 (Ex/ft); Microprocessor Ch1-15 Microprocessor Ch1-16
控 制 邏 輯 (2/2) ALU 設 計 (1/2) 基 本 ALU 功 能 :(A+B A (A+B A-B B B+1 B B B+1 和 0) 最 後 一 項 只 在 重 置 訊 號 有 效 時 產 生, 因 而 可 用 重 置 訊 號 直 接 控 制 ALU 的 輸 入 是 運 算 元 A 和 B, 則 只 需 一 個 二 進 制 加 法 器 即 可 A+B 是 加 法 器 標 準 的 輸 出 ( 假 設 進 位 輸 入 是 0); A-B 可 以 用 A+B +1 來 實 作 這 需 要 把 輸 入 B 反 相, 並 將 進 位 輸 入 強 制 為 1; B 可 以 藉 由 強 制 輸 入 A 和 進 位 輸 入 都 為 0 來 實 作 ; B+1 可 以 藉 由 強 制 A 為 0, 並 將 進 位 輸 入 強 制 為 1 來 實 作 Microprocessor Ch1-17 Microprocessor Ch1-18 ALU 設 計 (2/2) 1.1.4 指 令 集 的 設 計 指 令 集 (instruction set): 為 軟 體 與 硬 體 的 使 用 者 介 面 (user interface) 程 式 設 計 者 (programmer) 可 看 到 的 指 令 集 合 ; 計 算 機 最 重 要 的 設 計 之 一 軟 體 (software) 指 令 集 (instruction set) 硬 體 (hardware) Microprocessor Ch1-19 Microprocessor Ch1-20
4 位 址 (4-address) 指 令 3 位 址 (3-address) 指 令 4 位 址 指 令 : 每 條 指 令 需 要 4n+f 位 元 3 位 址 指 令 : 把 下 一 條 指 令 的 位 址 變 為 隱 含 的, 使 用 PC 來 達 成 除 非 是 分 岐 指 令, 其 作 用 就 是 明 確 地 修 改 指 令 的 順 序 ADD d, s1, s2, next_i ; d := s1+s2 ADD d, s1, s2 ; d := s1+s2 Microprocessor Ch1-21 Microprocessor Ch1-22 2 位 址 (2-address) 指 令 1 位 址 (1-address) 指 令 2 位 址 指 令 : 目 的 與 來 源 運 算 元 共 用 一 個 暫 存 器 ADD d, s1 ; d := d+s1 1 位 址 指 令 : 目 的 暫 存 器 是 隱 含 的, 則 通 常 稱 之 為 累 加 器 (MU0 即 是 ), 指 令 只 需 要 指 定 一 個 運 算 元 ADD s1 ; accumulator := accumulator+s1 Microprocessor Ch1-23 Microprocessor Ch1-24
0 位 址 (0-address) 指 令 0 位 址 指 令 : 採 用 評 估 堆 疊 式 (evaluation stack) 的 結 構, 使 全 部 的 運 算 元 變 為 隱 含 的 ADD ; top_of_stack := top_of_stack +next_on_stack n 位 址 (n-address) 應 用 範 例 除 了 4 位 址 外, 其 他 形 式 都 已 經 在 處 理 器 的 指 令 集 設 計 中 使 用 過 Inmos Trasputer 處 理 器 使 用 0 位 址 的 評 估 堆 疊 式 結 構 ; MUO 是 一 種 簡 單 的 1 位 址 結 構 的 例 子 ; 一 些 ARM 處 理 器 為 提 高 代 碼 密 度 而 採 用 的 Thumb 指 令 集 使 用 了 以 2 位 址 形 式 為 主 的 結 構 ; 標 準 的 ARM 指 令 集 使 用 了 3 位 址 結 構 Microprocessor Ch1-25 Microprocessor Ch1-26 指 令 類 型 指 令 集 最 佳 化 一 個 通 用 的 指 令 集 應 包 括 以 下 幾 類 指 令 資 料 處 理 指 令 : 例 如 加 減 和 乘 ; 資 料 傳 送 指 令 : 把 資 料 從 記 憶 體 中 的 一 個 地 方 複 製 到 另 一 個 地 方, 或 者 從 記 憶 體 複 製 到 處 理 器 的 暫 存 器 等 等 ; 流 程 控 制 指 令 : 這 類 指 令 把 程 式 的 執 行 從 一 部 分 切 換 到 另 一 部 分, 切 換 有 可 能 取 決 於 資 料 的 值 ; 控 制 處 理 器 執 行 狀 態 的 特 殊 指 令 : 例 如, 切 換 到 特 權 模 式 以 執 行 作 業 系 統 功 能 Microprocessor Ch1-27 Microprocessor Ch1-28
1.1.5 管 線 (1/2) 1.1.5 管 線 (2/2) 處 理 器 按 照 一 系 列 步 驟 來 執 行 每 一 條 指 令 典 型 的 步 驟 如 下 : 指 令 讀 取 週 期 (Instruction Fetch, IF): 從 記 憶 體 讀 取 指 令 (fetch); 指 令 解 碼 / 暫 存 器 讀 取 週 期 (Instruction Decoder, ID): 解 碼 以 鑑 別 它 是 那 一 類 指 令 / 從 暫 存 器 組 ( 庫 ) 取 得 所 需 的 運 算 元 (dec/ reg); 執 行 / 有 效 位 址 週 期 (Execution, EX): 將 運 算 元 進 行 組 合 以 得 到 結 果 或 記 憶 體 位 址 (ALU); 記 憶 體 存 取 (Memory, MEM): 如 果 需 要, 則 存 取 記 憶 體 以 存 取 資 料 (mem); 寫 回 週 期 (Write Back, WB): 將 結 果 回 寫 到 暫 存 器 組 ( 庫 ) (res) 指 令 解 碼 / 暫 存 器 讀 取 週 期 通 常 合 而 為 一, 所 以 IF ID EX MEM 與 WB 稱 之 為 5- 管 線 式 的 結 構 Microprocessor Ch1-29 Microprocessor Ch1-30 什 麼 是 管 線? (1/3) 什 麼 是 管 線? (2/3) 洗 衣 店 的 例 子 Ann (A), Betty (B), Cathy (C), Dave (D) 四 人 各 有 一 包 衣 物, 分 別 在 洗 衣 店 裡 頭 想 要 做 洗 衣 烘 衣 與 摺 疊 三 件 工 作» 洗 衣 機 需 花 費 30 分 鐘 ;» 烘 衣 機 需 花 費 40 分 鐘 ;» 摺 疊 需 花 費 20 分 鐘 A B C D 工 作 順 序 6PM 7 8 9 10 11 Midnight Time 30 40 20 30 40 20 30 40 20 30 40 20 A 如 果 他 們 學 會 管 線 化, 那 將 花 費 多 久 的 時 間? B C D Microprocessor Ch1-31 循 序 漸 進 的 洗 衣 方 式,4 包 衣 物 將 花 費 6 個 小 時 如 何 減 少 花 費 時 間?- 管 線 化 (Pipelining)!!! Microprocessor Ch1-32
什 麼 是 管 線? (3/3) 1.2 ARM 微 處 理 器 簡 介 經 過 管 線 的 方 法,4 包 衣 物 花 費 3.5 個 小 時 盡 最 大 可 能 (As Soon As Possible, ASAP) 的 應 用 工 作 順 序 6 PM 7 8 9 Time 30 40 40 40 40 20 A B C D ARM (Advanced RISC Machines) ARM 公 司 只 發 展 ARM 技 術 矽 智 財 (IP), 採 用 其 ARM IP 為 核 心 的, 稱 之 為 ARM 微 處 理 器 ; 遍 及 工 業 控 制 消 費 類 電 子 產 品 通 信 系 統 網 路 系 統, 與 無 線 系 統 等 各 類 產 品 ; 佔 據 了 32 位 元 RISC (Reduced Instruction Set Computer) 處 理 器 75% 以 上 的 市 場 ; 非 CPU 的 類 型 之 一 ; 經 由 IP (ARM 微 處 理 器 核 蕊, 又 稱 之 為 內 核 ) 轉 讓 設 計 的 版 權 許 可, 並 經 由 合 作 公 司 來 生 產 各 具 特 色 的 晶 片 ; 各 個 使 用 ARM 技 術 的 廠 商, 其 發 展 諸 多 工 具 製 造 軟 體 的 支 援, 能 帶 來 降 低 系 統 成 本, 更 使 其 具 有 競 爭 力 的 好 處 ; 系 統 單 晶 片 (System-on-Chip, SOC) 大 都 以 ARM 為 核 心 的 設 計, 因 此, 學 習 ARM 微 處 理 器 是 必 須 的 Microprocessor Ch1-33 Microprocessor Ch1-34 1.3 ARM 微 處 理 器 的 特 點 這 種 採 用 RISC 架 構 的 ARM 微 處 理 器 一 般 都 具 有 如 下 的 特 點 體 積 小 低 消 耗 功 率 低 成 本 與 高 性 能 ; 支 援 Thumb (16 位 元 )/ ARM (32 位 元 ) 雙 指 令 集 (Instruction set), 也 能 相 容 8 位 元 / 16 位 元 的 元 件 ; Microprocessor Ch1-35