嵌入式系統核心 – 中央處理器(CPU)
前言
在工業應用上,自動化控制系統所使用的工業控制電腦,汽車的行車電腦與衛星導航裝置(GPS)等,都是嵌入式系統的應用。嵌入式系統(Embedded System),是一種嵌入在受控制裝置內部,用於特定應用所設計的電腦系統,此系統設計通常只有針對特定功能所設計,以減少系統生產製造時的成本與特殊應用時因系統使用習慣與環境,而須改變其系統體積與大小,以配合使用時的狀況。正因為嵌入式系統的應用廣泛,也深深地影響大眾的生活,常見的生活應用如:MP3隨生聽、數位視訊監控系統(DVR)、電視遊戲機(TV Game)、網路電話(VoIP)、智慧型手機(Smart phone)、數位機上盒(Set-top box)等。
正因為應用型態與情況不同,嵌入式系統的體積大小,耗電要求不同,因此在開發嵌入式系統時,系統的整體的規劃就變的非常的重要,不會增加不必要的功能,增加系統的成本,而在選擇嵌入式系統的元件時,CPU就是最重要,也是最需要審慎評估的元件之一,當系統使用了比原先規劃功能,還要強大的CPU時,系統成本不但提高,也會增加其系統耗電量,當系統使用的CPU功能不足時,又需要重新規劃系統,徒增開發的時間與金錢的浪費。
因此,本文將探討目前市場上常見的CPU指令集架構(ISA)與該CPU設計公司所開發的各系列應用在不同領域的CPU架構,了解其市場銷售方式,處理器晶片設計與系統晶片架構技術。
在自動化的應用上,工業控制電腦在整個系統中扮演者中央運算資料處理、控制機械動作與演算法程式運作等重要角色,因此工業控制電腦主機板在CPU的選擇上,工業控制電腦對於CPU的要求重視高穩定性、低功耗、機構尺寸可因機台彈性調整,工業控制電腦從早期終端機界面,已逐漸導入圖形人機界面(GUI),降低操作人員對自動化設備操作的學習曲線,視覺圖形化界面,可以直覺的進行自動化設備操作,增加圖形人機介面的需求,因此工業控制電腦對於CPU整合GPU的處理器晶片的要求也逐漸普及在工業應用上。因此在實際的應用與開發上,低階的控制會使用像是ARM Cortex-M0~M3等級的處理器,而高階的運算處理的部分,就會選擇使用ARM Cortex-A9、A15處理器或使用x86/x64處理器增加資料運算處理的效能。
複雜指令集電腦(Complex instruction set computer,CISC)
Intel處理器
Intel早期處理器的命名方式[1],是用數字代號來取名,例如,Intel 8086、Intel 80186、Intel 80286、Intel 80386以及Intel 80486,之後的產品因為商標登記的因素,而改用英文名稱來命名,例如Pentium系列,其中8086到80286之間的處理器為16位元的架構,80386之後的產品都進階為32位元。就是因為早期,Intel使用數字代號來取名,也因此,就將其32位元處理器架構稱為x86,而64位元處理器則稱為x64。之後Intel推出了Pentium 4,進入了64位元的處理器的時代,目前Intel已推出第第五代處理器系列產品,i3、i5、i7系列皆為64位元的處理器。
CPU指令集架構可區分為,精簡指令集電腦(Reduced instruction set computer,RISC)與複雜指令集電腦(Complex instruction set computer,CISC),而CISC與RISC設計理念的差異,在於CISC架構具有數目多而複雜的指令和複雜的尋址模式,指令的長度不相等,百分之八十的程式只會使用到百分之二十的指令,大部分的程式只會使用到少部分指令,而RISC架構只有設計最基本有用的指令,指令的長度是固定的,機器執行指令有效率而且快速,處理器硬體結構設計較簡單。Intel處理器也是目前市面上常見的處理器使用複雜指令集的理念來設計處理器架構的龍頭廠商,Intel處理器指令集區分為IA-32(Intel architecture,32-bit)與IA-64(Intel architecture,64-bit), 如表1所示,可以看到Intel系列產品指令集分類,Pentium 4與Intel Core處理器推出時,是一段過渡期,因為當時很多的軟體無法支援64位元的處理器,因此消費者還是會優先選購,32位元的處理器的產品。
表1 Intel主要銷售的處理器名稱與指令集
IA-32
|
IA-64
|
80386
|
Pentium 4
|
80486
|
Pentium D
|
Pentium Pro
|
Pentium Extreme Edition
|
Pentium I
|
Celeron D
|
Pentium II
|
Xeon
|
Pentium III
|
Intel Core 2
|
Pentium 4
|
Intel Core 2 Quad
|
Pentium M
|
Intel Core i3
|
Celeron M
|
Intel Core i5
|
Celeron D
|
Intel Core i7
|
Intel Core
|
-
|
AMD處理器
AMD(Advanced micro devices, Inc.,AMD)會開發處理器的原因[2],是因為IBM公司當初為了尋找第二個處理器元件供應商,因此AMD得到了Intel授權生產其相容x86指令集的處理器,AMD得到授權後最早是先開始生產相容於80286的Am286 16位元處理器,之後的Am356、AM486、Am5x86都是經由Intel授權生產的,而AMD真正自主研發設計第一款處理器為AMD K5處理器,不過指令集還是使用Intel的IA-32架構,到了1999年AMD發表了64位元元指令集架構處理器,指令集命名為AMD64,由表2所示,AMD在K5處理器之前的命名方式,是對映著Intel的處理器,當其自身技術成熟後,就改變其命名方式,後來Intel也採用了AMD所開發的64位元指令集架構設計,Intel將其64位元指令集重新命名為IA-64,因此AMD64與IA-64指令集是相容的,軟體工程師在開發應用軟體上就輕鬆許多,開發一套軟體可以在這兩間不同廠商的處理器上執行。
表2 AMD主要銷售的處理器名稱與指令集架構
IA-32
|
AMD64
|
Am356
|
Sempron
|
Am486
|
Athlon 64
|
Am5x86
|
Athlon 64 X2
|
K5
|
Phenom 64
|
K6
|
Turion 64
|
K6-2
|
Phenom II
|
K6-III
|
Athlon II
|
Duron
|
Opteron
|
Athlon
|
AMD APU
|
Athlon XP
|
Fx
|
Athlon MP
|
-
|
Geode
|
-
|
VIA處理器
VIA威盛電子於1999年收購美國Cyrix公司[3],因而獲得Intel指令集的授權,可以生產x86架構處理器,VIA目前的處理器主攻嵌入式系統應用市場,而在一般電子賣場所銷售的桌上型電腦與筆記型電腦,Intel與AMD還比較常見的處理器,如表3所示,為VIA目前所開發的處理器系列。
表3 VIA主要銷售的處理器名稱與指令集
x86
|
x64
|
VIA C3
|
-
|
VIA C3-M
|
-
|
VIA Eden
|
-
|
VIA C7
|
-
|
VIA C7-D
|
-
|
VIA C7-M
|
-
|
VIA Nano
|
-
|
VIA Eden X2
|
-
|
VIA Nano X2
|
-
|
VIA QuadCore
|
-
|
單核心處理器執行程式時,時脈頻率越快,處理器運算的效能越高,當半導體物理極限因素,處理器無法再以增加時脈的方式,來加強處理器工作的效能,因此,目前Intel處理器朝向多核心發展,多核心處理器可以比單核心完成更多的工作,卻消耗更低的耗能,不過在開發軟體時,軟體本身也要支援多核心,不然,在多核心的處理器上執行軟體程式時,也是只有支援單核心處理。
x86/x64處理器平臺不只運用在個人電腦,伺服器處理器上,在許多大型工具機台設備上,也會使用經過驗證穩定度較高x86/x64系列處理器平臺,當作機台設備的工業控制電腦使用,這樣做的好處就是,無須自行額外開發工業控制電腦系統,軟、硬體生態系統完整,軟體開發開發容易等優點,缺點就是電腦系統體積較大,無發依據機台設備做客製化的修改,軟、硬系統整合穩定度驗證較不足,系統容易當機。Intel與AMD公司也有針對嵌入式系統所開發的處理器晶片,比起桌上型電腦處理器,嵌入式系統所使用的處理器的內頻時脈較慢,內建GPU效能較低,周邊裝置較少,耗電量較低,晶片整合度高,系統較穩定,不易當機。
x86/x64處理器嵌入式平臺,Intel與AMD公司所開發的處理器已朝向多核心架構發展,大部分的平臺支援的周邊裝置,如圖1所示,支援SPI、I2C串列埠介面,支援SATA(Serial advanced technology attachment)介面傳輸,SATA介面可連接硬碟,並將作業系統安裝在HDD (Hard disk drive)與SSD (Solid state disk)上,支援USB3.0(Universal serial bus)、USB2.0介面,支援LPC(Low pin count bus)可連接早期的通訊介面DB9(UART)、DB25(Print port)、PS/2介面的鍵盤與滑鼠,音效支援NXP I2S介面或至Intel AC97介面,支援Intel Ethernet connection RJ45,SRAM記憶體支援DDR3,支援GPIO(General purpose I/O),顯示介面支援VGA、DVI、HDMI、Display port、LVDS等,LVDS (Low voltage differential signaling)介面可以直接連接TFT液晶面板的TCON( Timing controller ),將嵌入式系統嵌入至液晶面板,成為一個完整的系統,支援擴充介面PCI-e、PCI。
圖1 常見x86/x64處理器嵌入式平臺架構
精簡指令集電腦(Reduced instruction set computer,RISC)
ARM處理器
ARM公司是一家設計處理器架構的矽智財設計公司[4],主要以授權金(Licensing)及權利金(Royalties)和客戶服務(Service)為營利項目,本身自己並不生產晶片銷售,ARM公司營業模式的成功,也使得其他公司跟進仿效。ARM處理器是目前精簡指令集中,市場佔有率最高的一家處理器設計公司,ARM處理器的興起是因為智慧型手機快速的發展有關,在行動通信市占率中接近九成,包括Intel在內,都很難撼動,ARM處理器在行動通信市場上的龍頭地位。表4所示,為ARM指令集位元與版本,表中ARMv1並沒有商品化,ARM指令集的演進,由早期的16/32位元混合指令集,到目前已發展到32/64位元混合指令集,也是目前少數使用精簡指令集支援64位元架構的處理器設計公司。表5所示,ARM指令集對應的處理器家族,ARM公司在ARM11處理器之後的命名改為用Cortex-A、Cortex-R、Cortex-M名稱來分類,Cortex-A系列處理器使用在平板電腦、智慧型手機、伺服器、嵌入式系統等需要高性能處理器的裝置,Cortex-R系列使用在IP分享器、行車電腦,智慧型手機、嵌入式系統等需要高可靠度,高容錯性,與穩定度高的裝置,Cortex-M系列始針對低成本、低功耗等終端應用、汽車、工業控制系統、家電、消費型產品、醫療設備等MCU應用,以下介紹幾種Cortex系列設計上差異較大的處理器。
表4 ARM指令集與版本
16/32位元混合指令集
|
32位元指令集
|
32/64位元混合指令集
|
ARMv1(無生產)
|
ARMv6-M
|
ARMv8-A
|
ARMv2
|
ARMv7-M
|
ARMv8.1-A
|
ARMv3
|
ARMv7E-M
|
-
|
ARMv4
|
ARMv7-R
|
-
|
ARMv5
|
ARMv7-A
|
-
|
ARMv6
|
ARMv8-R
|
-
|
表5 ARM指令集與處理器家族
指令集
|
處理器家族
|
ARMv1
|
ARM1
|
ARMv2
|
ARM2、ARM3
|
ARMv3
|
ARM6、ARM7
|
ARMv4
|
StrongARM、ARM7TDMI、ARM9TDMI
|
ARMv5
|
ARM7EJ、ARM9E、ARM10E、XScale
|
ARMv6
|
ARM11、Cortex-M0、Cortex-M0+、Cortex-M1
|
ARMv7
|
Cortex-A5、Cortex-A7、Cortex-A8、Cortex-A9、Cortex-A15、Cortex-A17、Cortex-R4、Cortex-R5、Cortex-R7、Cortex-M3、Cortex-M4、Cortex-M7
|
ARMv8
|
Cortex-A50、Cortex-A53、Cortex-A57、Cortex-A72、
|
Cortex-M0是ARM公司針對Intel 8051 8位元微處理器原有市場所開發出來的家族,如圖2所示,Cortex-M0指令集使用Thumb/Thumb-2 16位元指令集,擁有3 階段管路(Stage pipeline),凡紐曼架構(Von neumann architecture),Nested vectored interrupt controller (NVIC) 中斷管理處理單元,退出休眠中斷控制介面,程式除錯使用的Debug access port,使用AHB-lite匯流排與周邊裝置溝通。
圖2 Cortex-M0處理器架構
Cortex-M7是目前Cortex-M系列處理器中,如圖3所示,效能最高的處理器,使用ARMv7-M指令集,支援IEEE754浮點運算單元,擁有6階層超純量管路(Stage superscalar pipeline)加上分支預測(Branch predictor),哈佛架構(Harvard architecture),Nested vectored interrupt controller (NVIC) 中斷管理處理單元,退出休眠中斷控制介面,指令(Instruction)與資料(Data)快取(Cache),指令(Instruction)與資料(Data)TCM(Tightly coupled memory),程式除錯使用的Debug port支援 ETM(Embedded trace macro cell)、ECC( Error correction code)、MPU(Memory protection unit),64位元AMBA4 AXI, AHB匯流排與周邊裝置溝通,市場上使用Cortex-M系列處理器中,Cortex-M0與Cortex-M3市占率較高的系列,不過Cortex-M0與Cortex-M7的差異較大,因此這裡就介紹Cortex-M7處理器架構。
圖3 Cortex-M7處理器架構
Cortex-R系列的處理器,主要是針對需要高可靠度的市場所開發的家族,Cortex-R7處理器可使用在HDD與SSD控制IC裝置使用,如圖4所示,Cortex-R7處理器是一個雙核心處理器架構,使用ARMv7-R指令集與Thumb/Thumb-2 16位元指令集,可增加支援DSP與浮點運算單元,擁有11階層超純量管路(Stage superscalar pipeline)、指令預取(Instruction Pre-Fetch)、分支預測(Branch predictor)、亂序執行(Out of order execution)、暫存器重新命名(Register renaming),Load-Store使用並列執行路徑,哈佛架構(Harvard architecture),程式除錯使用的ARM Core Sight多核心除錯與追縱功能,ECC( Error correction code),通用中斷控制(Generic interrupt controller,GIC),記憶體保護單元(Memory protection unit),窺探控制單元(Snoop control unit),64位元 AMBA AXI、ACP(Accelerator coherency port )、LLPP(Low latency peripheral port)匯流排與周邊裝置溝通。
圖4 Cortex-R7處理器架構
Cortex-A系列的處理器是專攻智慧型手機、伺服器、平板電腦的高階處理器,這個市場原本都是x86/x64的天下,不過ARM公司的崛起,慢慢的ARM處理器蠶食許多原本是x86/x86的市場,Microsoft Windows作業系統,原本只有支援x86/x64處理器,就是因為ARM市場上的成功,Microsoft開發了名為Windows RT版本作業系統,已支援ARM處理器平臺。
Cortex-A72是一個32/64位元多核心處理器,如圖5所示,擁有8階層依序管路(Stage in-order pipeline),之援ARM所開發的NEON高級單指令多資料流(Single instruction multiple data,SIMS),可增強多媒體處理效能,哈佛架構(Harvard architecture),程式除錯使用的ARM Core Sight多核心除錯與追縱功能,ECC( Error correction code),之援 ACP (Accelerator coherence port),窺探控制單元(Snoop control unit,SCU),L2快取記憶體,128位元 AMBA4 ACE與AMBA5 CHI匯流排與周邊裝置溝通。
圖5 ARM Cortex-A72處理器
ARC處理器
ARC處理器原本是一家獨立的處理器矽智財設計公司[5],2009年11月被矽智財設計公司VirageLogic公司收購,隔年,2010年6月被晶片設計及電子系統軟體暨矽智財廠商Synopsys公司收購,成為旗下產品線之一,ARC處理器指令集並沒有像ARM公司一樣有經常性的改版,但是會依照客戶產品應用做分類,如表6所示,ARC EM家族系列處理器,主要使用在穿戴式裝置與需要電池供應的系統使用,ARC 600家族系列處理器,增加DSP數位信號處理器,可以處理音頻數據和數位訊號,適用於小型的嵌入式系統,ARC AS200式整合了一個DSP數位信號處理器,適用於行動裝置,如音樂播放器、數位相機、多媒體播放器、數位電視等低功耗裝置,ARC 700是一個單核心擁有MMU單元的高階處理器,可選擇增加DSP數位信號處理器與浮點運算單元,可執行嵌入式Linux作業系統,ARC HS是可以開發雙核心與四核心的高階處理器,擁有MMU單元,可執行嵌入式Linux作業系統,具有非常高性能的數據與信號處理的效能。
表6 ARC處理器家族
處理器家族
|
處理器功能
|
EM Family
|
Deeply embedded + DSP
|
600 Family
|
General embedded + DSP
|
AS200 Family
|
Audio processing
|
700 Family
|
Mid-range embedded + MMU
|
HS Family
|
High-speed multi core embedded + MMU L2 cache options
|
AndesCore處理器
AndesCore處理器是Andes公司依據該公司所設計AndeStar指令集所開發出一系列的處理器核心[6],Andes是一家以處理器設計的矽智財設計公司,營業的模式也是與競爭對手ARM公司相同,目前Andes公司的AndeStar指令集已推出第3代版本,現有處理器核心都已經改用最新的指令集架構做設計,目前AndesCore處理器家族共分為五種等級,N7家族系列的處理器主攻MCU市場,適用於醫療電子、智慧型能源監控、智慧家電、工業與馬達控制、物聯網(IOT)、感測器等應用。N8家族系列的處理器主攻MCU市場,適用於醫療電子、智慧型能源監控、智慧家電、氣表、電表、水錶、工業與馬達控制、物聯網(IOT)、桌上型電腦與筆記型電腦周邊裝置核心、教育玩具、感測器等應用。N9家族系列的處理器適用於家庭多媒體中心、行動多媒體播放機、遊戲機、數位相機、教育玩具等應用,N9處理器可執行需要較高效能即時作業(Real-time operating system,RTOS)系統的要求。N10處理器是一個擁有MMU單元的高階處理器,可選擇增加DSP數位信號處理器與浮點運算單元,可執行嵌入式Linux作業系統,適用於行動多媒體播放器、遊戲機、數位相機、儲存設備等裝置。N13處理器是一個擁有MMU單元的高階處理器,可執行嵌入式Linux作業系統,可處理高性能的數據與信號處理的效能核心要求,適用於數位電視、數位家庭、機上盒、交換機、路由器等應用。
Andes公司所推出的指令集架構,都是使用16/32混合指令集架構,目前並沒有64位元指令集架構的產品推出,如表7所示,Andes公司當有開發出新一代的指令集架構時,就會將AndesCore處理器各家族系列改用新的AndeStar指令集架構,這點的做法,與對手ARM有所不同,ARM只要使用新的指令集架構,處理器產品名稱也會隨之修改,以防止客戶混淆。Andes指令集對應各處理器家族,由表8所示,推出AndeStarV1時還沒有開發出處理器家族,N12處理器是最早開發出的處理器,使用的是AndeStarV2指令集。接下來介紹AndesCore N8與AndesCore N13處理器,主要是因為AndesCore N8主攻MCU市場,AndesCore N13是目前Andes最高階的處理器。
表7 AndesStar指令集與版本
表8 Andes指令集與處理器家族
AndesCore N8處理器,如圖6所示,使用AndesStarV3m指令集,擁有3階層管路,16個32位元通用暫存器,16/32位元指令混合格式程式碼、低延遲向量中斷控制器,每個週期可完成一個32位元的作業,高速或小面積的乘法器,使用硬體除法器,程式除錯使用2線式串列除錯埠(SDP)介面,增加電源管理指令,使用AHB-lite或是APB匯流排與周邊裝置溝通。AndesCore N7與AndesCore N8處理器是針對ARM公司Cortex-M0與Cortex-M3的市場所開發的處理器,因此在開發晶片時,可以針對自己的需求去做評估。
圖6 AndesCore N8處理器
AndesCore N13處理器,如圖7所示,使用AndesStarV3指令集,擁有8階層管路,16/32位元指令混合格式程式碼、32個32位元通用暫存器分支預測(Branch predictor),乘法與乘減指令,增加電源管理指令,內部/外部向量中斷控制,3個硬體階層巢狀中斷,記憶體管理單元,程式除錯使用JTAG介面,使用AHB或是32/64位元AXI匯流排與周邊裝置溝通。
圖7 AndesCore N13處理器
MIPS處理器
MIPS處理器原本也是一家獨立的處理器矽智財設計公司[7],成立於1984年,比ARM早一年成立。2012年11月被繪圖處理器(Graphics processing unit ,GPU)矽智財設計公司Imagination收購,成為旗下的產品線之一。在處理器的設計上,MIPS處理器技術都走在相當的前端,MIPS比ARM公司更早開發出64位元精簡指令集架構處理器設計公司。如表9所示,MIPS指令集位元與版本名稱,早期在網通興起的時代,當時的行動電話,並不普及,MIPS處理器在網路通信IC中的市占率比ARM還來的高,網路通信晶片內的使用CPU都是授權於MIPS公司,不過近年來ARM處理器的壯大,逐漸侵蝕MIPS處理器的市場,因此MIPS處理器也改變了產品的命名方式,由原來英文子母加上數字的命名方式,改成使用英文名稱命名,如表10所示,由低階處理器至高階處理器分別命名為microAptiv、interAptiv、proAptiv,清楚的將產品定位做區隔,讓客戶可以更容易瞭解自己所需的處理器規格。
表9 MIPS指令集與版本
32位元指令集
|
64位元指令集
|
MIPS I
|
MIPS III
|
MIPS II
|
MIPS IV
|
MIPS32
|
MIPS64
|
表10 MIPS指令集與處理器家族
指令集
|
處理器家族
|
MIPS I
|
R2000、R3000
|
MIPS II
|
R6000
|
MIPS III
|
R4000、R4400、R4200、R4300i、R4600、R4650、R4640、R4700
|
MIPS IV
|
R5000、RM7000、R8000、R10000、R12000、R12000A、R16000、R16000A、R18000、
|
MIPS V
|
無生產
|
MIPS32 Release1~6
|
4K、4KE、24K、4KE、34K、74K、1004K、1074K、1074fK、microAptiv、interAptiv、proAptiv
|
MIPS64 Release1~6
|
5K、20K
|
Power PC處理器
Power(Performance Optimization With Enhanced RISC)處理器[8],是IBM公司所開發的精簡指令集架構處理器,PowerPC處理器使用在IBM公司自己所開發的伺服器、工作站、超級電腦,早期Apple電腦公司的麥金塔系列電腦,任天堂的遊戲機等等,IBM公司不只自己本身使用PowerPC處理器開發產品,也授權其PowerPC處理器的矽智財給其他IC設計公司使用,例如中國的 蘇州國芯科技。Power指令集也已經發展到64位元的架構,如表11所示。
表11 Power指令集與版本
32位元元指令集
|
64位元元指令集
|
POWER1
|
POWER3
|
POWER2
|
POWER4
|
-
|
POWER5
|
-
|
POWER6
|
-
|
POWER7
|
-
|
POWER8
|
-
|
POWER9
|
SuperH處理器
SuperH處理器最早是Hitach公司所開發的32位元精簡指令集架構處理器[9],2003年4月Hitach公司與Mitsubishi Electric公司的半導體事業部合併成立Renesas Technology,2010年4月與NEC公司整合業務,並成立Renesas Electronics公司,SuperH處理器並不像是ARM公司一樣,已銷售矽智財來做營業項目,而是像Intel公司,販售微處理器晶片。目前SuperH處理器也已經在開發出64位元的精簡指令集處理器,如表12所示,但是目前Renesas Electronics公司主力產品還是以32位元的處理器為主。
表12 SuperH指令集與版本
32位元指令集
|
64位元指令集
|
SH-1
|
SH-5
|
SH-2
|
SH-6
|
SH2-DSP
|
-
|
SH-3
|
-
|
SH3-DSP
|
-
|
SH-4
|
-
|
Xtensa處理器
Xtensa處理器原本為處理器矽智財設計公司Tensilica所有[10],2013年3月晶片設計及電子系統軟體暨矽智財廠商Cadence公司收購了Tensilica公司,成為旗下產品線之一,Xtensa是一個強調讓客戶能夠自行客製化指令集的處理器,因此, Xtensa處理器並不會特別強調其指令集的版本,而是Xtensa1~Xtensa11版本為標準處理器核心,Xtensa LX1~ Xtensa LX6版本為增強資料輸入/輸出(I/O),增加第二個載入/儲存單元選項,增加客戶自訂GPIO(泛用型輸入/輸出)TIE Ports 和FIFO(先進先出) TIE Queues佇列,可直接在處理器的執行單元中存取資料,Xtensa處理器版本,如表13所示。
表13 Xtensa處理器版本
Xtensa處理器版本
|
Xtensa LX處理器版本
|
Xtensa 1
|
Xtensa LX1
|
Xtensa 2
|
Xtensa LX2
|
Xtensa 3
|
Xtensa LX3
|
Xtensa 4
|
Xtensa LX4
|
Xtensa 5
|
Xtensa LX5
|
Xtensa 6
|
Xtensa LX6
|
Xtensa 7
|
-
|
Xtensa 8
|
-
|
Xtensa 9
|
-
|
Xtensa 10
|
-
|
Xtensa 11
|
-
|
SPARC處理器
SPARC處理器名稱源於可擴充處理器架構(Scalable Processor Architecture,SPARC)的縮寫[11],是SUN公司於1985所設計處理器架構,1989年SUN公司成立SPARC International公司,不以營利為目的組織,因此SPARC是一個開放原始碼與架構的處理器,2009年4月Oracle公司收購SUN公司,因此目前可以看到Oracle公司的伺服器使用SPARC處理器架構,SPARC處理器指令集位元與版本,如表14所示。IBM與Oracle公司在伺服器的市場上,一直都是屬於高度競爭的狀態,所以這兩家公司在自家設計的伺服器中,都各自使用自己所設計的處理器。
表14 SPARC指令集與版本
32位元元指令集
|
64位元元指令集
|
SCD 1.0
|
SCD V9
|
SCD 1.1
|
-
|
SCD 2.1
|
-
|
SCD V7
|
-
|
SCD V8
|
-
|
精簡指令集處理器通常都是以系統晶片的模式銷售,如圖8所示,當IC設計公司在預開發系統晶片或是微處理器晶片時,可向上述處理器矽智財(Silicon IP)設計公司授權,周遭裝置部分的矽智財, IC設計公司如要節省授權費通常會自行開發,但是也可以向其他矽智財設計公司購買,例如SoC設計服務與ASIC設計服務的智原科技、創意電子、円星科技,嵌入式非揮發性記憶體矽智材設計公司的力旺電子,電子系統軟體(EDA tools)設計公司,或是國外的矽智財設計服務公司,也都有販售SoC所需要的相關周邊IP。大部分的系統晶片或是微處理器都是使用ARM公司所開發的先進微處理器匯流排架構(Advanced microcontroller bus architecture,AMBA)標準,規格中包含了先進高性能匯流排(Advanced high-performance bus,AHB)已及先進周邊匯流排(Advanced Peripheral Bus,APB)[12,13],在AHB Bus上要先將CPU接上,之後再將需要高執行速度的裝置接上AHB Bus,例如LCD Control裝置、連接PS/2鍵盤與滑鼠LPC Control裝置、連接Ethernet的MAC、連接USB裝置的USB Control等,而像是連接電腦終端機的UART Control、GPIO Control、Audio 的AC97/ I2S Control、讀取SD卡與CF卡的MMC/SD Control、看門狗的WDT Control、串列傳輸的I2C與SPI Control、脈波寬度調變的PWM Control、即時時鐘的RTC Control、計數器的Time Control等都接到APB bus上。
結論
應用於工業自動化與控制設備中的嵌入式系統平台已漸逐朝向多核心處理器與 FPGA 的技術發展,因此中央處理器(CPU)所扮演之角色不容忽視。Intel與ARM之間主流處理器的商戰以浮上檯面,早期CISC與RISC在市場上的應用分類,已經漸趨模糊,ARM處理器已使用在伺服器與小筆電上,而ASUS推出了使用Intel處理器的平板電腦,所以工程師在開發嵌入式系統時,需要了解整個系統的軟、硬體架構,尤其是所使用的處理器核心,不同的公司,不止所使用的開發工具會有許多的不同,處理器與系統晶片架構都會有差異,維有嵌入式系統工程師,不斷的學習與了解各家系統的架構,才可以一一克服系統開發上的障礙。
參考文獻
[1] https://www-ssl.intel.com/content/www/us/en/homepage.html
[2] http://www.amd.com/en-us
[3] http://www.via.com.tw/en/index.jsp
[4] http://www.arm.com/
[5] http://www.synopsys.com/home.aspx
[6] http://www.andestech.com.tw/en/index/index.htm
[7] http://www.imgtec.com/
[8] http://www.ibm.com/us/en/
[9] http://am.renesas.com/
[10] http://www.cadence.com/en/default.aspx
[11] http://sparc.org/
[12] Computer Organization and Design, Fifth Edition: The Hardware/Software Interface, Aug 15, 1997 by David A. Patterson and John L. Hennessy
[13] Computer Science: An Overview (10th Edition), Jan 6, 2008 by J. Glenn Brookshear
沒有留言:
張貼留言