480 likes | 724 Vues
嵌入式系統晶片架構. 大綱. 嵌入式系統微處理器架構 微處理器架構種類 ARM 系統晶片概觀 Intel ® XScale™ 微架構系統晶片概觀 I/O 順序 信號 (Semaphores) 中斷 重置 內部暫存器 選擇周邊 vs. 通用 I/O 電源開啟重置與開機動作 電源管理. 嵌入式系統微處理器架構. 通用型微處理器 微處理器專責計算 搭配其他周邊晶片形成完整的系統 優點 可依各種不同需要搭配不同周邊晶片 高計算能力 缺點 耗電量較大 電路板尺寸較大 常見通用型微處理器 X86 MIPS ARM Power PC.
E N D
嵌入式系統晶片架構 4-1
大綱 • 嵌入式系統微處理器架構 • 微處理器架構種類 • ARM系統晶片概觀 • Intel® XScale™微架構系統晶片概觀 • I/O順序 • 信號(Semaphores) • 中斷 • 重置 • 內部暫存器 • 選擇周邊vs.通用I/O • 電源開啟重置與開機動作 • 電源管理 3-2
嵌入式系統微處理器架構 • 通用型微處理器 • 微處理器專責計算 • 搭配其他周邊晶片形成完整的系統 • 優點 • 可依各種不同需要搭配不同周邊晶片 • 高計算能力 • 缺點 • 耗電量較大 • 電路板尺寸較大 • 常見通用型微處理器 • X86 • MIPS • ARM • Power PC 3-3
嵌入式系統微處理器架構(Cont.) • 整合型微控制器 • 整合微處理器與各項周邊功能於單一晶片中 • 優點 • 省電 • 電路板設計簡便,尺寸可進一步縮小 • 缺點 • 計算能力有限 • 記憶體有限 • 常見整合型為控制器 • 8051 • AVR 3-4
微處理器架構種類 • CISC(複雜指令集)架構 • 儘可能用更少的指令來完成一件工作 • 接受一個指令時,執行一系列的動作 • RISC(精簡指令集)架構 • 指令執行簡單動作, 盡量在一個時脈週期內完成 • VLIW(超長指令集)架構 • 在一個指令中整合多個可以並行執行的指令 3-5
CISC架構 • 特色 • 擁有大量的指令 • 一個指令可能是簡單或複雜的操作 • 指令長度並不固定 • 具多種指令格式 • 優點 • 相同的演算法可能只需較少的組合語言指令 • 程式碼較短, 佔用較少記憶體(程式碼密度高) • 缺點 • 設計較為複雜, 開發時程較長 • 時脈不易提高 • i.e. X86架構 3-6
RISC架構 • 特色 • 擁有少量精選的指令 • 一個指令幾乎都是單一簡單的操作 • 指令長度固定 • 指令格式固定 • 優點 • 微處理器設計較為簡單 • 時脈易提高 • 缺點 • 程式碼較長, 佔用較多記憶體(程式碼密度低) • i.e. Power PC, ARM架構 3-7
VLIW架構 • 特色 • 一個指令含有多個簡單獨立的操作 • 指令長度固定 • 指令格式固定 • 優點 • 多個操作高度平行處理,執行效能高 • 缺點 • 程式碼較長, 佔用較多記憶體(程式碼密度低) • 需要較好的編譯器來達到較好的執行效能 • i.e. Itanium, TriMedia架構 3-8
ARM系統晶片概觀 • 為RISC架構微處理器 • 整合型單晶片系統 • 高效能、低耗電(高MIPS/Watt比) • 具有Thumb指令集,可將部份32位元指令內容以16位元表示,降低程式碼密度(code density)。 • 由ARM微處理器核心與其他元件組成 • 元件包括DSP處理器以及各種周邊裝置 3-9
ARM926EJ-S晶片的典型應用(出自ARM926EJ-S Development Chip Reference Manual) 3-10
出自OMAP Processor Dual Debugging Procedures between ARM and DSP網址:http://www.logicpd.com/downloads/347/sprp123.pdf 3-11
Intel XScale™微架構系統晶片概觀 • 相容於ARM Version 5TE指令集 (但不包含浮點運算指令) • 遵循ARM程式設計者模型的規範 • 三個系列的應用微處理器 • PCA (Personal Internet Client Architecture)系列 • 適用於可攜式裝置 • IXP (Internet Exchange Processor)系列 • 適用於網路應用 • I/O系列 • 適用於I/O控制 3-12
Intel PCA系列微處理器 • 依據用途與架構,共有六大系列 • 適用於可攜式裝置,如手機、Smart phone • PXA210 • PXA800xx • 適用於可攜式裝置與多媒體通訊產品如PDA、WebPAD、Smart Display等 • Strong ARM SA111x • PXA25x • PXA26x • PXA27x 3-13
Intel XScale 25x微架構系統晶片概觀 • 支援多種類的記憶體類型 • 內建整合型LCD顯示控制器 • 解析度最高為800x600像素 • 支援1、2、4、8位元的灰階像素 • 支援8、16位元的彩色像素 • 256 entry / 512 byte色盤記憶體, 提供了彩色對映的彈性。 3-14
Intel PXA 210 處理器 • 13*13 公厘見方 • 225 腳位 • T-PBGA 封裝 • 16位元記憶體資料匯流排 • 精簡一些周邊 • Intel XScale 核心up to 200MHz 3-15
Intel PXA 250 處理器 • 17*17 公厘見方 • 256 腳位 • PBGA 封裝 • 32位元記憶體資料匯流排 • 整合各類的周邊 • Intel XScale 核心 at200, 300, 400MHz 3-16
PXA 25x 系統架構 3-17
Intel XScale 核心 • 與 ARM 5TE 版本相容 • 低功率與高效能 • Intel 媒體處理技術 • 32-KByte 指令與資料快取 • 2-KByte 迷你指令與資料快取 • 指令與資料記憶體管理單元(MMU) • 目的分支緩衝區(BTB) • JTAG 埠除錯能力 3-18
LCD 控制器 • 支援主動式與被動式平板顯示器 • 解析度最高可至 800*600*16 位元/像素 • 兩個專用的 DMA channels 允許 LCD 控制器支援一個或是雙重面板顯示 • 被動式單色顯示可支援至 256 色灰階 • 彩色顯示可支援至 64K 色彩 3-19
記憶體控制器 • 支援至多四個 SDRAM 分割 • 六個靜態晶片選擇 • SRAM • SSRAM • Flash • ROM • SROM • 相容晶片 • 兩個 PCMCIA 或 CF 插槽 3-20
DMA 控制器 (DMAC) • DMA控制器使得系統在進行大量資料傳輸時,不必經過CPU處理,以避免降低CPU效能 • 提供16 個通道(channel) 給內部周邊及至多兩個外部相容晶片 • 與周邊傳輸可使用 word、half-word、byte 資料大小來傳輸 3-21
時脈與電源控制器 • 應用處理器功能區塊由時脈所驅動 • 電源管理員控制 Turbo/Run、Idle、Sleep 模式間的轉換,藉此達到最佳的效能與電源消耗。 • 時脈由 3.6864MHz震盪器及選擇性使用之 32.768kHz震盪器所產生 • 3.6864MHz震盪器主要是驅動核心及周邊的鎖向迴路 (Phase Locked Loop, PLL) • 32.768kHz震盪器可選擇作為在待命(standby)或睡眠(sleep)模式期間驅動即時時脈(RTC)、電源管理員雨中斷控制器,以提供最低的電源消耗 3-22
中斷控制 • 控制處理器的中斷來源 • 遮罩暫存器可啟動或關閉個別的中斷來源 • 包含中斷來源的位置,使軟體可以得知所有中斷的來源 • 決定中斷是否產生IRQ或FIQ 3-23
即時時脈 (RTC) • RTC通常設成1 Hz的輸出,用來維持系統時間 • 通常提供警報(alarm)功能,當RTC輸出的時脈累加到一個預設值時,產生一個中斷或一個喚醒事件(wake up event) • 由兩個震盪器之一所驅動 • 睡眠模式下,32.768KHz 較 3.6864MHz 省電源 • 此晶體可自系統移除以節省成本 3-24
OS Timers • 提供一組計時通道 • 一個參考計數器 • 四個作業系統匹配暫存器 • 允許軟體產生計時的中斷 • 如看門狗(Watchdog)中斷 • 利用3.6864MHz時脈驅動參考計數器 • 在每個時脈正緣上數一次 • 當匹配暫存器與參考計數器相等時,可設定引發中斷 • 作業系統匹配暫存器3(OSMR3)可引發看門狗(Watchdog) 重置 3-25
脈寬調變器 (PWM) • 脈寬調變器提供基本的數位/類比轉換 • 搭配適當的類比過濾器(analog filter) • 調變”on”的時間來控制LED的亮度 • LCD 對比控制 • 有兩個獨立的輸出 • 可程式化的透過 GPIO腳位輸出 • 頻率與功率週期可獨立程式化 3-26
AC97 控制器 • 可對數位音效進行調變與解調變,以及儲存與播放音效 • 取樣頻率可至 48KHz • 提供獨立的 16 位元通道給 • 立體音(Stereo) PCM輸入/輸出 • Modem輸入/輸出 • 單聲道麥克風輸入 • 每個通道內含一個 FIFO以支援DMA 3-27
I2S • Inter-IC Sound Controller • 由飛利浦半導體定義,在IC間傳輸雙通道的數位音效訊號的協定 • 為數位立體聲道提供連至標準 I2S 編解碼器的序列連結 • 提供 Normal-I2S 及 MSB-Justified I2S 格式 • 提供四個訊號以連至 I2S 編解碼器 • I2S 控制訊號與 AC97 控制器腳位共同運作 • 包含 FIFO 以提供 DMA 3-28
I2C • Inter-Integrated Circuit Bus Interface Unit • 由飛利浦公司定義的序列傳輸匯流排作為IC間的資料傳輸通道 • 提供兩個腳位的一般用途序列通訊埠 • 一個腳位給資料與位址 • 另一個腳位用來傳輸時脈 3-29
快速紅外線通訊埠 • 提供紅外線訊號,可直接連接到紅外線LED收發器 • 以 4Mbps IrDA 規格為基礎 • 半雙工方式操作 • 內含 FIFO 以支援 DMA 3-30
同步序列協定控制器 (SSPC) • Synchronous Serial Protocol Controller • 是一個同步序列介面,可用來連接到多種不同的外部類比/數位(A/D)轉換器 • 如音訊與無線電通訊編解碼器 • 其他以序列協定作為資料傳輸的裝置 • 於7.2kHz至1.84MHz下運作 • 內含 FIFO 以支援 DMA • 支援以下三種協定 • 美國國家半導體的 Microwire • 德州儀器的同步序列協定 • 摩托羅拉的序列周邊介面 3-31
多媒體卡控制器 (MMC) • 提供序列介面連至標準記憶卡 • 於 MMC 或 SPI 模式下可支援至多兩個卡 • 資料傳輸可達 20Mbps • 內含 FIFO 以支援 DMA 3-32
通用非同步收發器 (UART) • Universal Asynchronous Receiver / Transmitters • 對從周邊裝置或modem接收的資料執行序列到並列(serial-to-parallel)轉換 • 對從處理器接收的資料執行並列到序列的轉換以傳送到周邊 • 提供三種 UART • 全功能 UART (FFUART) – baud rate 230Kbps • 藍芽 UART (BTUART) – baud rate 921Kbps • 標準 UART (STUART) – baud rate 230Kbps 3-33
通用序列匯流排客戶端 • 支援所有由USB hosts controller所發出的標準裝置請求 • 符合 USB 修定版本 1.1 之規格 • 可支援16 個端點(Endpoint) • 以12 Mbps的速率,進行半雙工的資料傳輸提供 FIFO 以支援 DMA 3-34
一般用途輸入輸出 (GPIO) • 每個 GPIO 可程式化為輸入或輸出 • 輸入可在訊號上升或下降邊緣被觸發 • 主要的 GPIO 有 17 個輸出入埠 • 第二個 GPIO 有選擇性功能可對應至周邊 3-35
PXA 27x 系統架構 出自Intel® PXA27x Processor Family Developer’s Manual 3-36
Intel ® XScaleTM微結構的選擇項目(cont.) • 協力處理器7暫存器4 - PSFS位元 • 當nVDD_FAULT或nBATT_FAULT腳位被觸發時,電源管理控制暫存器(PMCR)內的不正確資料放棄致能(IDAE)位元會被設定。 • 協力處理器14暫存器0-3 -效能監視 • 應用處理器未定義任何超出Intel® XScale™ Microarchitecture for the PXA250 and PXA210 Application Processors User’s Manual, order# 278525文件範圍的效能監視功能。 • 由應用處理器所保留的PMNC暫存器來定義功能 • 協力處理器14暫存器6、7 -時脈與電源管理 • 允許軟體在時脈與電源管理模式下使用 • 協力處理器15暫存器0 - ID暫存器定義 • 應用處理器的類型與修正版本 • Intel開發者網頁http://developer.intel.com來取得最新的訊息 • 協力處理器15暫存器1 - P-位元 • 分頁表記憶體屬性位元 • 沒有被實作,寫入時也必須為0 3-37
I/O順序 • 應用處理器使用佇列來接收來自三個內部主控者(master)的記憶體請求 • 核心 • DMA控制器 • LCD控制器 • 主控者所發出的動作將以接收的請求順序來完成。 • 主控者的動作可能被另一個主控者的動作所中斷。 • 應用處理器並沒有提供任何方法來規範來自不同主控者動作的先後順序。 3-38
I/O順序(cont.) • 載入(load)與儲存(store)至內部記憶體位址的動作,一般來說會比存取外部記憶體位址更快完成。 • 範例一 • 在下列順序中,儲存至r4位址的指令會比儲存至r2位址的指令更早完成 • 第一個儲存指令會在佇列中等待外部記憶體 • 第二個儲存指令則沒有任何延遲(內部記憶體) str r1, [r2] ;儲存至外部記體位址[r2] str r3, [r4] ;儲存至內部(on-chip)記憶體位址[r4] • 範例二 • 若兩個儲存指令為控制動作時,則必須依序完成。 • 在兩個儲存指令之中插入一個載入指令去讀取一個無緩衝且無快取的記憶體分頁 • 這個載入指令之後再插入另一個指令,而這個指令必須依賴先前載入指令所讀取的資料來動作。 str r1 r1, [r2] ;第一個發佈的儲存指令。 ldr r5, [r6] ;從外部無緩衝、無快取的位址載入(若可能,則為[r2])。 mov r5, r5 ;nop stall(暫停),直到載入r5。 str r3, [r4] ;第二個儲存指令依照程式順序完成。 3-39
信號(Semaphores) • 應用處理器內部 • Swap(SWP)與Swap Byte(SWPB)指令可以用來做信號操作。 • 應用處理器內的主控者或程序不可以在SWP或SWPB指令的載入與儲存期間使用相同的位置 。 • 應用處理器外部 • 外部輔助晶片可能使用MBREQ/MBGNT交握信號,在信號鎖定(locked)程序期間,取得匯流排的使用權,此時信號連貫性(coherency)可能被中斷。 • 為了允許外部輔助晶片進行信號的操作,軟體必須管理其連貫性。 3-40
中斷 • 應用處理器上所有的中斷都可以被致能、遮蔽,而且都可以被導入至核心的FIQ或IRQ。 • 每個中斷的致能或是不致能都是由中斷遮蔽位元來控制。 • 一般在一個單元內的所有中斷會先經過「OR」布林運算後,產生一個單一信號值給中斷控制器。 • 每個中斷會先經過中斷控制器遮蔽暫存器,然後中斷控制器等級暫存器將中斷導入IRQ或是FIQ。 • 當中斷被處理時,軟體將讀取中斷控制器等候暫存器來辨識其來源。 • 軟體在確認中斷來源之後,軟體有責任為中斷提供對應服務。 • 在執行完服務常式之前清除中斷來源。 • 注意:清除中斷來源時會有一些延遲。為了使狀態位元在離開中斷服務常式之前清除,請讓程式提前清除中斷。 3-41
重置 • 應用處理器可用下列三種任一方法來進行重置 • 硬體重置 • nRESET腳位被觸發,強迫所有的單元進入重置狀態。 • 看門狗重置 • OS計時器逾時,重置後可以從執行中失控的程式碼復原系統。 • 看門狗重置預設值是關閉的,必須藉由軟體來啟動。 • GPIO重置 • 軟重置 • 與前兩種重置相比較之下,比較不具破壞性。 3-42
內部暫存器 • 以32位元作為位址邊界 • 與實體記憶體空間直接對應 • 位址空間必須對應為不可快取 • 以字組(word)為存取單位 • 位元組(byte)和半字組(half word)的存取是不被允許的,並會產生不可預期的結果。 • 保留位址 • 沒有被對應到的暫存器位址空間 • 讀取與寫入將會造成不可預期的結果 • 保留位元 • 暫存器內未使用的位元 • 供未來使用 • 寫入為0,讀取忽略,因為它們是不可預期的。 3-43
選擇周邊vs.通用I/O • 大部分的周邊透過GPIO連接到外部的腳位 • 軟體必須先設定GPIO的組態 • 腳位的預設狀態為GPIO輸入 • 有一些GPIO腳位同時擁有多種功能,當其中之一的功能被選擇之後,其他剩下的功能將會被排除。 • 有一些周邊同時對應到多個GPIO腳位,多個對應並不代表周邊擁有多個分身,而是代表可以用多種方式連接到與周邊相連的腳位。 3-44
電源開啟重置與開機動作 • 在裝有應用處理器的設備開啟電源之前,系統必須觸發nRESET與nTRST腳位。 • 為了使內部時脈穩定,所有的電源供應在移除nRESET與nTRST的觸發之前,必須在一定的時間內達到穩定狀態。 • 當nRESET被觸發時,nRESET_OUT也會觸發,該腳位可以用來重置系統的其他設備。 • 當系統移除nRESET與nTRST的觸發時,應用處理器也會移除nRESET_OUT的觸發,在過了一段特定的時間後,裝置將試著嘗試由實體位址0x0000 0000開機。 • 當重置的觸發移除時,應用處理器會讀取BOOT_SEL[2:0]腳位後嘗試開機,該腳位紀錄由使用者所預先指定類型與寬度的記憶體。 3-45
電源管理 • 應用處理器提供四種系統電源管理的模式。支援的模式如下: • 加速模式(Turbo Mode) • 最高效能模式 • 執行模式 (Run Mode) • 正常全功能模式 • 閒置模式 (Idle Mode) • 核心時脈停止供應,中斷發生後繼續供應。 • 睡眠模式 (Sleep Mode) • 低電源模式 • 不保留處理器的狀態,但持續供應I/O的電源。 • RTC、電源管理、與時脈模組繼續供應電源,微處理器其他單元則視狀況停止供電。 • 睡眠模式注意事項 • 輸入腳位不為浮接(floating) • 輸出腳位沒有對外部裝置持續驅動 • 輸出腳位沒有透過外部裝置吸取過量的電流 • 電流吸取通常是浮接腳位的現象 3-46
總結 • RISC架構微處理器設計較簡單,晶片較小,耗電量也較小,適合嵌入式系統應用 • ARM系統晶片為RISC架構微處理器,具有高效能、低耗電的特性,為目前系統晶片中,市佔率最高的晶片 • Intel XScale™微架構應用處理器與ARM v5TE指令集架構相容,可使用現有的軟硬體工具進行嵌入式系統的開發 • 提供多種周邊裝置,並可選擇性使用,除提供完整功能外,也增加系統設計的彈性 3-47