第一章 arm 微處理器基礎

35
Microprocessor Ch1-1 ARM 第第第第第第 Ping-Liang Lai ( 第第第 ) 第第第第第第 (Microprocessor System)

Upload: natala

Post on 26-Jan-2016

88 views

Category:

Documents


3 download

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 Presentation

TRANSCRIPT

Page 1: 第一章 ARM 微處理器基礎

Microprocessor Ch1-1

第一章ARM 微處理器基礎

Ping-Liang Lai ( 賴秉樑 )

 

微處理機系統(Microprocessor System)

Page 2: 第一章 ARM 微處理器基礎

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 微處理器的特點

Page 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) 產品,如行動電話、汽車發動機管理系統等。

Page 4: 第一章 ARM 微處理器基礎

Microprocessor Ch1-4

1.1.1 處理器體系結構和組織 (2/2)

Page 5: 第一章 ARM 微處理器基礎

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

Page 6: 第一章 ARM 微處理器基礎

Microprocessor Ch1-6

1.1.2 硬體設計的抽象 (abstraction)

由下而上的抽像化 電晶體 (Transistors) 邏輯閘 (Logic gates) 邏輯符號 真值表 (Truth table)

Page 7: 第一章 ARM 微處理器基礎

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 和發動機控制器。

Page 8: 第一章 ARM 微處理器基礎

Microprocessor Ch1-8

閘級設計 (Gate-level design)

1. 布林代數和符號 ;

2. 二進制數 ;

3. 二進制加法 ;

4. 多工器 ;

5. 時脈 (clocks);

6. 循序電路 (sequential circuits);

7. 栓鎖器 (latches) 和正反器 (flip-flops);

8. 暫存器。

Page 9: 第一章 ARM 微處理器基礎

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 是為了教學而開發的,並不是作為研究項目而製作的大規模機

器。

Page 10: 第一章 ARM 微處理器基礎

Microprocessor Ch1-10

MU0 指令集 (1/2)

MU0: 12 位元位址空間的 16 位元機 4096 個可分別定址的 ; 16 位元的儲存區 ; 記憶體定址範圍 8KB 。

MU0 的指令長度為 16 位元 4 位元為操作碼 (opcode) ,即最多可有 16 道指令 ; 12 位元為位欄位 (S) 。

Page 11: 第一章 ARM 微處理器基礎

Microprocessor Ch1-11

MU0 指令集 (2/2)

最簡單的指令集只使用了 16 種可用操作碼中的 8 種

Page 12: 第一章 ARM 微處理器基礎

Microprocessor Ch1-12

MU0 邏輯設計

邏輯級 (logical order) 的設計方式 資料通路 (The datapath): 所有並行地傳送的儲存或處理多位二進制數的元件

都屬於資料通路,包括累加器、程式計數器、 ALU 和指令暫存器。採用基於暫存器與多工器等元件的暫存器傳輸級 (Register Transfer Level, RTL) 設計方式。

控制邏輯 (The control logic): 所有不屬於資料通路的元件都屬於控制邏輯,採用有限狀態機 (Finite State Machine, FSM) 的方式進行設計。

Page 13: 第一章 ARM 微處理器基礎

Microprocessor Ch1-13

資料通路設計 (1/2)

限制的因素 : 記憶體的讀 /寫 (R/W)週期 (假設讀 /寫總是佔用一個時脈週期 (clock cycle) 每條指令佔用的時脈週期數嚴格地由它必須存取記憶體的次數決定 ; LDA 、 STO 、 ADD 、 SUB 要兩次記憶體存取 ; JMP 、 JGE 、 JNE僅需一次。

Page 14: 第一章 ARM 微處理器基礎

Microprocessor Ch1-14

資料通路設計 (2/2)

Page 15: 第一章 ARM 微處理器基礎

Microprocessor Ch1-15

資料通路操作

每一條指令都是從它到達指令暫存器 (IR) 開始,分為兩步執行 存取記憶體中的運算元並執行所需的操作

» 送出指令暫存器中的位址,然後,從記憶體讀出一個運算元,與 ALU 中累加器完成相應操作後,將結果寫回累加器 ;

» 或者把累加器的資料輸出保存到記憶體中。 讀取下一步要執行的指令

» 送出 PC 或者指令暫存器中的位址,讀取下一道指令 ;» 無論是哪種情形,這個位址都會在 ALU 中加 1 ,並將增值存入 PC 。

Page 16: 第一章 ARM 微處理器基礎

Microprocessor Ch1-16

控制邏輯 (1/2)

控制邏輯對當前的指令進行解碼,並產生資料通路的控制訊號,必要時會使用來自資料通路的控制輸入。 控制邏輯是一個有限狀態機 (FSM); MU0 的控制邏輯非常簡單,只需要兩個狀態 : 『取指令 』 和『執

行』,因此用 1 位元足以描述這兩個狀態 (Ex/ft);

Page 17: 第一章 ARM 微處理器基礎

Microprocessor Ch1-17

控制邏輯 (2/2)

Page 18: 第一章 ARM 微處理器基礎

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 來實作。

Page 19: 第一章 ARM 微處理器基礎

Microprocessor Ch1-19

ALU 設計 (2/2)

Page 20: 第一章 ARM 微處理器基礎

Microprocessor Ch1-20

1.1.4 指令集的設計

指令集 (instruction set): 為軟體與硬體的使用者介面 (user interface) 程式設計者 (programmer) 可看到的指令集合 ; 計算機最重要的設計之一。

指令集 (instruction set)

軟體 (software)

硬體 (hardware)

Page 21: 第一章 ARM 微處理器基礎

Microprocessor Ch1-21

4 位址 (4-address) 指令

4 位址指令 : 每條指令需要 4n+f 位元 組合語言格式

ADD d, s1, s2, next_i ; d := s1+s2

Page 22: 第一章 ARM 微處理器基礎

Microprocessor Ch1-22

3 位址 (3-address) 指令

3 位址指令 : 把下一條指令的位址變為隱含的,使用 PC 來達成 除非是分岐指令,其作用就是明確地修改指令的順序。

組合語言格式

ADD d, s1, s2 ; d := s1+s2

Page 23: 第一章 ARM 微處理器基礎

Microprocessor Ch1-23

2 位址 (2-address) 指令

2 位址指令 : 目的與來源運算元共用一個暫存器 組合語言格式

ADD d, s1 ; d := d+s1

Page 24: 第一章 ARM 微處理器基礎

Microprocessor Ch1-24

1 位址 (1-address) 指令

1 位址指令 : 目的暫存器是隱含的,則通常稱之為累加器 (MU0 即是 ) ,指令只需要指定一個運算元

組合語言格式

ADD s1 ; accumulator := accumulator+s1

Page 25: 第一章 ARM 微處理器基礎

Microprocessor Ch1-25

0 位址 (0-address) 指令

0 位址指令 : 採用評估堆疊式 (evaluation stack) 的結構,使全部的運算元變為隱含的

組合語言格式

ADD ; top_of_stack := top_of_stack +next_on_stack

Page 26: 第一章 ARM 微處理器基礎

Microprocessor Ch1-26

n 位址 (n-address) 應用範例

除了 4 位址外,其他形式都已經在處理器的指令集設計中使用過 Inmos Trasputer 處理器使用 0 位址的評估堆疊式結構 ; MUO 是一種簡單的 1 位址結構的例子 ; 一些 ARM 處理器為提高代碼密度而採用的 Thumb 指令集使用了

以 2 位址形式為主的結構 ; 標準的 ARM 指令集使用了 3 位址結構。

Page 27: 第一章 ARM 微處理器基礎

Microprocessor Ch1-27

指令類型

一個通用的指令集應包括以下幾類指令 資料處理指令 : 例如加、減和乘 ; 資料傳送指令 : 把資料從記憶體中的一個地方複製到另一個地方,或者從記憶體複製到處理器的暫存器等等 ;

流程控制指令 : 這類指令把程式的執行從一部分切換到另一部分,切換有可能取決於資料的值 ;

控制處理器執行狀態的特殊指令 : 例如,切換到特權模式以執行作業系統功能。

Page 28: 第一章 ARM 微處理器基礎

Microprocessor Ch1-28

指令集最佳化

Page 29: 第一章 ARM 微處理器基礎

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- 管線式的結構。

Page 30: 第一章 ARM 微處理器基礎

Microprocessor Ch1-30

1.1.5 管線 (2/2)

Page 31: 第一章 ARM 微處理器基礎

Microprocessor Ch1-31

什麼是管線 ? (1/3)

洗衣店的例子 Ann (A), Betty (B), Cathy (C), Dave (D)四人各有一包衣物,分別在洗衣店裡頭想要做洗衣、烘衣與摺疊三件工作。

» 洗衣機需花費 30 分鐘 ;» 烘衣機需花費 40 分鐘 ;» “摺疊”需花費 20 分鐘。

A B C D

Page 32: 第一章 ARM 微處理器基礎

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)

如果他們學會管線化,那將花費多久的時間 ?

Page 33: 第一章 ARM 微處理器基礎

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

工作順序

Page 34: 第一章 ARM 微處理器基礎

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 微處理器是必須的。

Page 35: 第一章 ARM 微處理器基礎

Microprocessor Ch1-35

1.3 ARM 微處理器的特點

這種採用 RISC架構的 ARM 微處理器一般都具有如下的特點 體積小、低消耗功率、低成本與高性能 ; 支援 Thumb (16 位元 )/ ARM (32 位元 ) 雙指令集 (Instruction set) ,也能相容 8 位元 / 16 位元的元件 ;