在和金錢的較量中,支持自由的人們沒有輸。
復雜系統執行多種多樣的復雜任務。任務常因為市場需求而改變。處理器的軟件可編程性使得它可以實現更加快速的功能開發和提供更加敏捷的可適性,已成為SoC最為重要的組件,其性能直接決定了系統性能的優劣。
目前,在SoC中使用的處理器主要分3類:
?通用處理器(CPU)、
?可配置處理器。
通用處理器主要負責控制、操作系統平臺和一般的信號處理等任務。目前,SoC設計中使用較多的通用處理器有ARM、MIPS、PowerPC等。具有我國自主知識產權的處理器,如龍芯CPU、眾志CPU、國芯C-CORE等也正在被越來越多地采用。雖然通用處理器正在得到廣泛的應用,但其單一的指令格式及有限的計算能力無法滿足計算密集型任務(如視頻編解碼、信息安全等)對于實時性的需要。
DSP充分挖掘了指令級的并行性,并結合了強大的浮點計算能力,有效地解決了這一問題,已常常被作為SoC中的核心處理器,或者在多核SoC中被作為對計算密集型任務進行加速的處理器。較多使用的DSP,往往來自于TI、Freescale、ADI等廠家。
無論是通用處理器還是DSP,往往體系結構固定,對于不同應用勢必造成資源的浪費和計算的低效性。雖然ASIC可以采用最精簡的資源達到最快的處理速度,但其不具備處理器的可編程能力,導致設計效率的下降。
可配置處理器(Configurable Processor)結合了二者的雙重優勢,針對不同應用的需求,允許用戶配置具有不同體系結構的處理器??膳渲玫奶幚砥骺梢愿鶕枰@得性能和功能的優化,并在開發平臺工具的幫助下,自動生成處理器的系統軟件和仿真環境,由于以上優點,可配置處理器以及基于這種處理器的SoC設計將會是以后SoC開發的一個重要選擇。
一、通用處理器
1.ARM系列處理器
ARM(Advanced RISC Machines)系列處理器是一種RISC架構處理器。ARM處理器具有高性能、低功耗等特點。ARM系列處理器主要有ARM7、ARM9、ARM10、ARM11等。
ARM7系列處理器是低功耗的32位RISC處理器,支持16位的Thumb指令集。
使用精簡的Thumb指令集可得到更高密度的代碼。其核ARM7TDMI,具有3級的流水線結構,支持Window CE、Linux等嵌入式操作系統。
其中:
? T表示支持Thumb指令集;
? D表示表示Debug,在內核中放置了用于調試的結構,通常它為一個邊界掃描鏈JTAG,可使CPU進入調試模式,從而可方便地進行斷點設置、單步調試;
? M表示表示內核有乘法器;
? I表示EmbeddedICE Logic,用于實現斷點觀測及變量觀測的邏輯電路部分,其中的TAP控制器可接入到邊界掃描鏈。
ARM9處理器包括ARM920T、ARM922T、ARM926EJ-S、ARM946E-S等,適用于不同的市場需求。
ARM9系列處理器實現5級的流水。其中,
?E表示處理器包含一些用于支持DSP算法的指令,
? J表示處理器使用ARM的Jazelle技術提供Java加速功能。
ARM9中增加了存儲器管理單元(MMU,Memory Management Unit),實現數據和指令分離的存儲器結構。
ARM10、ARM11等系列處理器增加了流水線的深度,提高了工作時鐘頻率。
ARM11中還增加了SIMD功能擴展,提高了對于多媒體處理的能力。
2.MIPS系列處理器
MIPS(Microprocessor without Interlocked Piped Stages)是一種獲得廣泛應用的RISC處理器。
MIPS的中文意思是無內部互鎖流水線的微處理器,其機制是盡量利用軟件方法避免流水線中的數據相關問題。
MIPS技術公司是美國的芯片設計公司,在基于MIPS技術的基礎上開發了一系列處理器。目前主要有兩種架構的處理器:32位和64位的MIPS 32架構和MIPS 64架構。MIPS32的4K系列處理器主要面向SoC應用。4K系列采用5級流水線、32位數據和地址寬度。存儲器采用數據和指令分開的哈佛結構(Harvard)。MIPS32的24K系列采用8級流水、32位地址和64位數據寬度。通過代碼壓縮,MIPS16e可以減少指令的內存需求。MIPS32的24K系列中實現了快速乘法運算。在MIPS64架構的處理器有MIPS64 5K系列和20K系列分別采用6級和7級流水線結構。5K系列的MIPS64 5kf和20K系列的MIPS64 20kc中集成浮點運算單元,面向高性能SoC應用。
3.PowerPC系列處理器
PowerPC處理器在20世紀90年代由IBM、Motorola、Apple公司共同推出,主要面向不同的市場應用,包括個人計算機和其他嵌入式市場。
早期的PowerPC主要面向個人計算機和服務器市場。這種32位Harvard結構的處理器使用5級流水線結構并集成硬件乘法、硬件除法和MMU單元。
Freescale公司有眾多基于PowerPC的SoC設計,這些使用單核或雙核結構的芯片主要面向通信市場。在Xilinx的Virtex-4系列FPGA中集成了PowerPC的處理器。
二、DSP
1.TI系列DSP
TI是著名的DSP公司,目前主要有C5000和C6000兩種DSP平臺。TI C5000平臺包括TMS320C54系列、TMS320C55系列。TMS320C54系列采用CISC結構的定點和改進的Harvard結構體系,有一組程序總線和三組數據總線、高度并行性的算術邏輯單元ALU、乘法/累加器MAC、桶形移位器、緩沖串口、專用硬件邏輯、片內存儲器、片內外設和高度專業化的指令集等,支持32位長操作數指令,支持并行存儲和并行裝入的算術指令。
TMS320C54系列DSP指令系統很豐富且靈活多變;而TMS320C55系列定點DSP并行性更好,每個周期最大可執行兩條指令。
C6000平臺的TMS320C62、TMS320C64系列DSP是業內最高性能的DSP,提供高達1GHz的時鐘速度。TMS320C64系列DSP采用TI的VLIW結構。TMS320C67系列浮點DSP可以提供高數據精度和高的處理速度。上述DSP通過集成存儲器、外設,在SoC設計中實現各種高性能應用。
2.ADI系列DSP
ADI(Analog Devices Inc.)公司開發了一系列的高性能DSP和基于這些DSP的SoC設計,主要包括ADSP-21系列、SHARC系列、TigerSHARC系列和Blackfin系列。Blackfin處理器包括一個10級RISC流水線的高性能16/32位內核,以及具有面向加速視頻和多媒體處理的SIMD支持。除了有限的多種64位指令程序包之外,Blackfin架構還支持16位和32位指令長度。通常,把最常用的控制指令編碼為精簡16位字。
TigerSHARC DSP是一款高性能的靜態超標量數字信號處理器,該處理器針對大型的信號處理和通信任務而在結構上進行了優化。該處理器將非常寬的存儲帶寬和雙運算模塊結合在一起,每周期能夠執行多達4條的指令、24個16位定點運算和6個浮點運算。
3.Freescale系列DSP
Freescale的主要DSP包括DSP56300系列和StarCore系列。DSP563000核是24位信號處理器,采用RISC的流水線結構和超哈佛的存儲器結構,主要面向音頻領域應用。
StarCore系列DSP采用一種獨特、高性能、長度可變的變長執行組(VLES)結構。執行過程以執行組為單位,采用指令預取、取址、指令分配、地址生成和執行組成的5級流水結構。每個執行組采用指令級并行技術,支持SIMD,主要面向多媒體信號處理領域的應用。
三、可配置處理器
1.Tensilica系列處理器
在SoC設計方法學中,強調快速的設計和IP復用。Tensilica基于這種思想提出了可配置處理器的設計思路。對于各種應用,用戶可以選擇配置不同的處理器結構實現針對性的應用。在自動化平臺工具的幫助下,可以自動生成處理器的結構和驗證環境,達到快速靈活的目的。
目前,Tensilica主要有3種系列的處理器:Xtensa7系列、Xtensa LX2系列和Diamond Standard Processor系列。其中,Xtensa7、Xtensa LX2屬于可配置處理器,而Diamond Standard Processor是基于上述兩個系列的處理器的一個優化結構,不能配置。
對于Diamond Standard Processor系列處理器又分為3類,如表4-1所示。第1類作為微控制器,該系列處理器都屬于預配置完成,不具有可配置能力。
表4-1 Diamond Standard Processor系列處理器分類
Xtensa7系列、Xtensa LX2系列處理器都屬于可配置處理器,對于不同的應用可以配置和開發特定功能的處理器。這樣可以做到開銷、功耗和性能的平衡。Xtensa系列屬于RISC結構,使用5級和7級的流水線、24位和精簡的16位的兩種指令格式。
在Xtensa7系列、Xtensa LX2系列處理器中,核心功能是固定的,如流水線,以及對操作系統的支持??膳渲玫倪x項包括處理器的結構、處理器的指令集、協處理器、存儲器系統(包括緩存、本地存儲器、外部存儲器等)、中斷處理、測試等。用戶還可以根據不同需要,設計擴展功能。在開發平臺下可擴展的設計包括用戶指令、狀態、寄存器和接口等
2.NIOS系列處理器
Altera的Nios/NiosⅡ是一款基于FPGA的可靈活配置的RISC架構軟內核處理器,采用32位指令集,支持5級流水線。其可靈活配置性是指Nios/NiosⅡ處理器架構并不是固定、一成不變的,而是用戶可以通過Altera提供的工具根據設計的性能或成本要求增加或裁減一些系統的特性和外設,甚至可以在系統中放置多個Nios/NiosⅡ處理器以滿足應用需求。
用戶通過Nios/NiosⅡ處理器提供的用戶自定義指令邏輯接口可以在處理器的基本指令架構之上進行指令的擴充,以增強處理器的處理能力。此外,Altera還針對Nios/NiosⅡ處理器提供了一套基于GNU C/C++工具鏈和Eclipse的集成開發環境。
3.ARC系列處理器
ARC系列處理器是一個擁有4級流水線的體系結構,支持16位或32位指令集。它具有能夠配置的各種功能組件、外圍接口及擴展指令集。本質上,ARC710系列處理器為嵌入式軟核,廠商提供針對它的軟件集成開發環境及各種DSP的功能部件庫。
開發人員可從一個基本的處理器內核開始,通過不斷定制、裁剪各種功能,從而達到應用的性能、成本、功耗的最佳匹配。該種處理器支持可選的DSP指令,設計人員可以通過增加指令和內核寄存器來擴展處理器,以便進一步定制系統性能。
四、不同處理器的選擇
在介紹了SoC設計中所使用的主要處理器后,需要解決的是在一個SoC中如何在它們之間做出選擇。在選擇處理器時需要決定的是處理器的類型和數量,它們之間有著非常密切的關系。決定處理器選擇的關鍵因素是要實現的目標應用,包括目標應用的類型和目標應用的運算、控制等需求。
首先對于目標應用的運算能力要有一個量的估計或計算。一般來說運算的任務以MIPS為單位描述,即每秒百萬指令數。在SoC設計的開始,計算所有任務每秒的指令需求總和。如果處理器性能不能滿足,可以選擇更高性能的處理器或者增加處理器的數量。但在多處理器的設計中,每個處理器的任務分配是一個復雜的工作。
其次是根據應用類型選擇合適的處理器類型。通用處理器的運算能力和DSP是有較大區別的。需要根據實際目標應用決定處理器的選擇。DSP適合計算密集型的任務,如數字信號處理、音視頻編解碼等,而且DSP存儲器結構可以提供較大的存儲器訪問帶寬。此外,一般的DSP在零開銷循環、特殊的尋址方式等方面都有專門的硬件支持,而通用處理器在處理用戶界面和控制事務方面具有一定優勢。由于DSP和通用處理器有各自的性能優勢,因此在一些應用中兩種處理器的混合使用也較為常見。
總之,在SoC設計中,處理器類型和數量的選擇由目標的應用任務決定,需要根據實際應用選用合適的處理器類型,實現優化的方案。
審核編輯:湯梓紅
-
處理器
+關注
關注
68文章
19293瀏覽量
229939 -
dsp
+關注
關注
553文章
8005瀏覽量
349037 -
soc
+關注
關注
38文章
4169瀏覽量
218333 -
通用處理器
+關注
關注
0文章
15瀏覽量
7170
原文標題:SoC中常用的處理器有哪些?
文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論