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