1 / 35

第一章 ARM 微處理器基礎

微處理機系統 (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.2 ARM 微處理器簡介 1.3 ARM 微處理器的特點. 1.1.1 處理器體系結構和組織 (1/2). 計算機體系結構 (Computer architecture)

natala
Download Presentation

第一章 ARM 微處理器基礎

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 微處理機系統(Microprocessor System) 第一章ARM微處理器基礎 Ping-Liang Lai (賴秉樑)

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

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

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

  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

  6. 1.1.2 硬體設計的抽象 (abstraction) • 由下而上的抽像化 • 電晶體 (Transistors) • 邏輯閘 (Logic gates) • 邏輯符號 • 真值表 (Truth table)

  7. 抽像的等級 (Levels of abstraction) • 電晶體; • 邏輯閘、記憶體單元和專用電路; • 單位加法器 (single-bit adders) 、多工器 (multiplexers) 、解碼器 (decoder)和正反器 (flip-flops); • 單字元寬加法器 (word-wide adders) 、多工器、解碼器、暫存器和匯流排 (buses); • ALU (算數邏輯單元) 、桶式移位器 (barrel shifter) 、暫存器庫 (register banks)和記憶體組 (memory blocks); • 處理器、Cache和儲存器管理組織; • 處理器、周邊單元、Cache記憶體和記憶體管理單元; • 積體系統晶片; • 印刷電路板 (PCB); • 行動電話、PC和發動機控制器。

  8. 閘級設計 (Gate-level design) • 布林代數和符號; • 二進制數; • 二進制加法; • 多工器; • 時脈 (clocks); • 循序電路 (sequential circuits); • 栓鎖器 (latches)和正反器 (flip-flops); • 暫存器。

  9. 1.1.3 MU0:一個簡單的處理器 • 一個簡單的處理器由一些基本的元件構成 • 程式計數器 (program counter, PC): 用來保存當前指令的位址。 • 累加器 (accumulator, ACC) 暫存器: 用來保存正在處理的資料。 • 算術邏輯單元 (arithmetic-logic unit, ALU): 可以對二進制運算元 (operands) 進行若干操作,如加、減、增值等。 • 指令暫存器 (instruction register, IR): 保存當前的指令。 • 指令解碼器和控制邏輯: 它根據指令控制上述元件產生需的結果 。 • MUn, 其中1≦n ≦6,為曼徹斯特大學設計機器經常的使用名稱。 • 最簡單的機器被稱為MU0,為曼徹斯特用以說明處理器設計的原理。 • MU0是為了教學而開發的,並不是作為研究項目而製作的大規模機器。

  10. MU0指令集 (1/2) • MU0: 12位元位址空間的16位元機 • 4096個可分別定址的; • 16位元的儲存區; • 記憶體定址範圍8KB。 • MU0的指令長度為16位元 • 4位元為操作碼 (opcode),即最多可有16道指令; • 12位元為位欄位 (S)。

  11. MU0指令集 (2/2) • 最簡單的指令集只使用了16種可用操作碼中的8種

  12. MU0邏輯設計 • 邏輯級 (logical order)的設計方式 • 資料通路 (The datapath): 所有並行地傳送的儲存或處理多位二進制數的元件都屬於資料通路,包括累加器、程式計數器、 ALU和指令暫存器。採用基於暫存器與多工器等元件的暫存器傳輸級 (Register Transfer Level, RTL)設計方式。 • 控制邏輯 (The control logic): 所有不屬於資料通路的元件都屬於控制邏輯,採用有限狀態機 (Finite State Machine, FSM)的方式進行設計。

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

  14. 資料通路設計 (2/2)

  15. 資料通路操作 • 每一條指令都是從它到達指令暫存器 (IR) 開始,分為兩步執行 • 存取記憶體中的運算元並執行所需的操作 • 送出指令暫存器中的位址,然後,從記憶體讀出一個運算元,與ALU中累加器完成相應操作後,將結果寫回累加器; • 或者把累加器的資料輸出保存到記憶體中。 • 讀取下一步要執行的指令 • 送出PC或者指令暫存器中的位址,讀取下一道指令; • 無論是哪種情形,這個位址都會在ALU中加1,並將增值存入PC。

  16. 控制邏輯 (1/2) • 控制邏輯對當前的指令進行解碼,並產生資料通路的控制訊號,必要時會使用來自資料通路的控制輸入。 • 控制邏輯是一個有限狀態機 (FSM); • MU0的控制邏輯非常簡單,只需要兩個狀態: 『取指令』 和『執行』,因此用1位元足以描述這兩個狀態 (Ex/ft);

  17. 控制邏輯 (2/2)

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

  19. ALU 設計 (2/2)

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

  21. 4位址 (4-address) 指令 • 4位址指令: 每條指令需要 4n+f 位元 • 組合語言格式 ADD d, s1, s2, next_i ; d := s1+s2

  22. 3位址 (3-address) 指令 • 3位址指令: 把下一條指令的位址變為隱含的,使用PC來達成 • 除非是分岐指令,其作用就是明確地修改指令的順序。 • 組合語言格式 ADD d, s1, s2; d := s1+s2

  23. 2位址 (2-address) 指令 • 2位址指令: 目的與來源運算元共用一個暫存器 • 組合語言格式 ADD d, s1 ; d := d+s1

  24. 1位址 (1-address) 指令 • 1位址指令: 目的暫存器是隱含的,則通常稱之為累加器 (MU0即是),指令只需要指定一個運算元 • 組合語言格式 ADD s1 ; accumulator := accumulator+s1

  25. 0位址 (0-address) 指令 • 0位址指令: 採用評估堆疊式 (evaluation stack) 的結構,使全部的運算元變為隱含的 • 組合語言格式 ADD; top_of_stack := top_of_stack +next_on_stack

  26. n位址 (n-address) 應用範例 • 除了4位址外,其他形式都已經在處理器的指令集設計中使用過 • Inmos Trasputer 處理器使用0位址的評估堆疊式結構; • MUO 是一種簡單的1位址結構的例子; • 一些 ARM 處理器為提高代碼密度而採用的 Thumb 指令集使用了以2位址形式為主的結構; • 標準的 ARM 指令集使用了3位址結構。

  27. 指令類型 • 一個通用的指令集應包括以下幾類指令 • 資料處理指令: 例如加、減和乘; • 資料傳送指令: 把資料從記憶體中的一個地方複製到另一個地方,或者從記憶體複製到處理器的暫存器等等; • 流程控制指令: 這類指令把程式的執行從一部分切換到另一部分,切換有可能取決於資料的值; • 控制處理器執行狀態的特殊指令: 例如,切換到特權模式以執行作業系統功能。

  28. 指令集最佳化

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

  30. 1.1.5 管線 (2/2)

  31. A B C D 什麼是管線? (1/3) • 洗衣店的例子 • Ann(A), Betty(B), Cathy(C), Dave (D)四人各有一包衣物,分別在洗衣店裡頭想要做洗衣、烘衣與摺疊三件工作。 • 洗衣機需花費30分鐘; • 烘衣機需花費40分鐘; • “摺疊”需花費20分鐘。

  32. A B C D 什麼是管線? (2/3) 循序漸進的洗衣方式,4包衣物將花費6個小時 6 PM Midnight 7 8 9 11 10 Time 30 40 20 30 40 20 30 40 20 30 40 20 如果他們學會管線化,那將花費多久的時間? 工 作 順 序 如何減少花費時間?- 管線化 (Pipelining)!!!

  33. 40 40 40 A B C D 什麼是管線? (3/3) • 經過管線的方法,4包衣物花費3.5個小時。 • 盡最大可能 (As Soon As Possible, ASAP) 的應用。 6 PM 7 8 9 Time 30 40 20 工 作 順 序

  34. 1.2 ARM微處理器簡介 • ARM(Advanced RISC Machines) • ARM公司只發展ARM技術矽智財 (IP),採用其ARMIP為核心的,稱之為ARM微處理器; • 遍及工業控制、消費類電子產品、通信系統、網路系統,與無線系統等各類產品; • 佔據了32位元RISC(Reduced Instruction Set Computer)處理器75%以上的市場; • 非CPU的類型之一; • 經由IP (ARM微處理器核蕊,又稱之為內核)轉讓設計的版權許可,並經由合作公司來生產各具特色的晶片; • 各個使用ARM 技術的廠商,其發展諸多工具、製造、軟體的支援,能帶來降低系統成本,更使其具有競爭力的好處; • 系統單晶片 (System-on-Chip, SOC)大都以ARM為核心的設計,因此,學習ARM微處理器是必須的。

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

More Related