開放性32位RISC處理器IP核的比較與分析_第1頁
開放性32位RISC處理器IP核的比較與分析_第2頁
開放性32位RISC處理器IP核的比較與分析_第3頁
開放性32位RISC處理器IP核的比較與分析_第4頁
開放性32位RISC處理器IP核的比較與分析_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、開放性 32 位 RISC 處理器 IP 核的比較與分析類別: 嵌入式系統(tǒng)隨著 VLSI 設(shè)計技術(shù)和深亞微米制造技術(shù)的飛速發(fā)展,SOC (System on Chip ) 技術(shù)逐漸成為了集成 電路 設(shè)計的主流技術(shù)。 SOC 已經(jīng)在便攜式手持設(shè)備、無線網(wǎng)絡(luò)終端和多媒體娛樂 設(shè)備等領(lǐng)域得到了廣泛的應(yīng)用。高性能的處理器核是 SOC 設(shè)計中最為關(guān)鍵和核心的部分。絕大多數(shù)SOC 的處理器都采用了 RISC體系結(jié)構(gòu)。RISC處理器具有指令效率高、 電路面積小和功率消耗低等特點,滿足了 SOC 高性能、 低成本和低功耗的設(shè)計要求。 目前在 SOC 設(shè)計中廣泛使用的 32bit RISC 處理器, 如 ARM

2、 公司的 ARM 處理器, IBM 的 PowerPC 處理器, MIPS 公司的 MIPS 處 理器, Motorola 的 MCore 處理器, Tensilica 公司的 Xtensa 處理器等均屬于商業(yè)內(nèi)核, 使 用者必須支付相對昂貴的授權(quán)費。近年來開放源代碼運動迅速發(fā)展, 開放性源碼的概念已經(jīng)從軟件領(lǐng)域 (如 Linux , Gcc, MySQL 等)擴展到了硬件領(lǐng)域, 出現(xiàn)了像 OpenCores 這樣專門發(fā)布免費的 IP 核源代碼的組 織。本文比較和分析了三種 “免費 ”的開放性 32bit 處理器內(nèi)核: GaislerResearch 公司的 LEON2 , OpenCores

3、 組織公布的 OpenRISC1200 和 Altera 公司的 NiosII 。這三種開放性處 理器憑借其高性能、 低成本, 良好的可配置性和完善的開發(fā)環(huán)境, 受到了學(xué)術(shù)界和工業(yè)界 的普遍重視。LEON2LEON 系列 32 位 RISC 處理器核的第一個版本是 EON1 , 它是由歐洲航天局 (European SpaceAgency) 主持設(shè)計開發(fā)的。 LEON1 的設(shè)計初衷是為了使歐洲能夠擺脫在航 空航天高性能嵌入式處理器上對美國的嚴重依賴。以 Jiri Gaisler 為首的設(shè)計團隊在完成 LEON1 后從歐洲航天局獨立出來, 成立了 Gaisler Research 公司, 相繼推

4、出了 LEON2 和 LEON3 處理器。 LEON 系列處理器軟核均以 RTL 級 VHDL 源代碼形式免費公布, 使用 者可以在 GNULGPL (Library General Public License ) 下對其源代碼進行使用和研究。 LEON 系列處理器在結(jié)構(gòu)上有很高的一致性和繼承性, 我們選用比較穩(wěn)定的 L EON221.0.222xst 版 本進行研究分析。其結(jié)構(gòu)框圖如圖 1 所示:圖 1LEON2 結(jié)構(gòu)框圖LEON2 的整數(shù)處理單元是 5 級流水線設(shè)計, 采用了 SPARCV8 ( IEEE-1754) 指令和 體系結(jié)構(gòu),具有分離的數(shù)據(jù) Cache和指令Cache丄E0N2

5、的整數(shù)單元包括一個可選的 16X16 的MAC單元,能夠完成基本的 DSP運算,同時還提供了浮點運算單元 (FPU)的接口和協(xié) 處理器(CP)的接口, 可以擴展浮點運算和 DSP處理。LEON2 選用了 ARM 公司的 AMBA2.0 片上總線標準, 用于連接內(nèi)存 控制 器 (MemoryController ) , 定時器 ( Timers ) , 中斷控制器 ( IrqCtrl) , UART 接口, PCI 接 口, 10/100M 以太網(wǎng)接口等模塊。 L EON 2 同時還提供了一個調(diào)試支持單元 (Debug Support Unit) 和一個調(diào)試串口 (DebugSerial Lin

6、k) ,用于支持片內(nèi)調(diào)試。LEON2 的一個非常重要的特點就是具有很好的可配置性。 使用者根據(jù)自己的需要, 通 過一個用 tcltk 腳本編寫的圖形化界面, 對 LEON2 內(nèi)核的絕大多數(shù)模塊進行配置, 比如 可以配置 Cache 的大小和訪問方式, 是否支持硬件乘 ?除法,是否需要內(nèi)存管理單元 (MMU) , PCI 接口, 以太網(wǎng)接口等。Gaisler Research 公司提供了比較完善的基于 L EON 2 的 GNU 軟件開發(fā)環(huán)境。 使用者 可以使用 TSIM 或 GRMON 進行 LEON 內(nèi)核的調(diào)試仿真。 ECCS 是專門針對 LEON 的交 * 編譯系統(tǒng), 可以進行 C/C+

7、+ 的編譯和調(diào)試。 SnapGearLinux 是基于 LClinux 的實時 Linux 內(nèi)核, 它的 LEON 版提供了對 LEON 處理器的全面支持, 可以支持 MMU 和 NOMMU 等不同配置方案。OpenRISC1200OpenRISC1000 系列處理器是開放 IP 核源代碼組織 Opencores 公布的 32*64 位處理器 軟核。使用者可以在 GNULGPL下免費使用其 RTL級的Verilog源代碼。OpenRISCIOOO系 列處理器有很多版本, 我們選用了目前最新的 OpenRISC1200 進行研究分析, 其結(jié)構(gòu)如 圖 2 所示:圖 2OpenRISC1200 結(jié)構(gòu)

8、框圖Op enRISC1200 采用了自主設(shè)計的 OpenRISC1000 體系結(jié)構(gòu)和自定義的 ORBIS32 指 令集。 OpenRISC1200 是 Harvard 結(jié)構(gòu)設(shè)計, 擁有一個 5 級流水線的整數(shù)單元。OpenRISC1200有一個32 X32的MAC 單元, 具備基本的 DSP處理功能。OpenRISC1200還可以根據(jù)需要自定義用戶指令。OpenRISC1200具有1K64K可配置大小的數(shù)據(jù) Cache 和指令 Cache 以及可供選擇的內(nèi)存管理單元。 OpenRISC1200 同時還 提供了一個用于降低功耗的電源管理單元 (PowerManager) 和一個支持片內(nèi)調(diào)試的調(diào)

9、試單元 (Debug Unit)。 OpenRISC1200 采用了 Silicore 公司提出的 W ISHBON E 開放性總線標準, 包括一個數(shù)據(jù) W ISHBON E 接口和一個指令 W ISHBON E 接口??偩€管理模塊 (Traffic Cop ) 將內(nèi)存控制器, 調(diào)試單元, UART 接口, PCI 接口, Ethernet 接口等模塊連接在 一起。 OpenRISC1200 具有較好的可配置性, 使用者可以根據(jù)自己的需要配置 Cache 的大 小, 是否使用 MMU ,并可以定制自定義的指令。 不過目前 OpenRISC1200 還沒有圖形化 的配置界面, 使用者必須根據(jù)需要

10、修改配置定義文件 or1200 defines.v。OpenRISC1200 有完善的軟件開發(fā)環(huán)境 (SDK) 和操作系統(tǒng)的支持。 使用者可以通過包括 Sourcenavigator , Gcc, Binu tills , Gdb 等在內(nèi)的 GNUToolchian 工具方便的進行基于 OpenRISC1200 內(nèi)核的編碼、編譯和調(diào)試。同時, OpenRISC1200 擁有專門的仿真器 Or1k sim ,可以進行 OpenRISC1200 的仿真。 OpenRISC1200 還支持 Linux , LClinux ,RTEMS , RedHaeCos 等多種操作系統(tǒng)。NiosIINios 系

11、列處理器是 Altera 公司推出的基于 RISC 體系結(jié)構(gòu)的通用嵌入式處理器軟核, 它是 Altera 的可編程邏輯和可編程片上系統(tǒng) (SoPC) 設(shè)計綜合解決方案的核心部分。 Altera 前后推出了兩代 Nios系列處理器:Nios和Nios II。Nios是其第一代產(chǎn)品,是準32bit的RISC 處理器, 具有 16bit 指令集和 16*32 bit 數(shù)據(jù)通路。 NiosII 是第二代完全 32bitRISC 處 理器, 具有 32bit 的指令集、數(shù)據(jù)通路和地址空間。我們選用了 NiosII 進行比較和分析。 圖 3 是典型的基于 NiosII 的系統(tǒng)。圖3典型的基于 NiosII

12、 的系統(tǒng)NiosII 處理器是 5 級流水線設(shè)計, 采用數(shù)據(jù)和指令分離的 Harvard 結(jié)構(gòu)。 NiosII 擁有 自己專用的體系結(jié)構(gòu)與指令集, 支持 32bit 的硬件乘除法指令,有 32 個通用寄存器。用 戶還可以根據(jù)自己的需要自定義最多 256 條指令。NiosII 采用了 Altera 公司自己的 Avalon 片內(nèi)總線標準, 用于連接定時器, UART 接 口, LCD 接口,內(nèi)存控制器和以太網(wǎng)接口等片內(nèi)模塊。 NiosII 同時還提供了一個 Debug 模 塊, 支持 JTAG 在線調(diào)試。 Altera 公司為 NiosII 提供了極為完善的軟硬件開發(fā)環(huán)境。 NiosII 處理器

13、方案是基于 HDL 源碼構(gòu)建的, 提供了三種性能和資源消耗不同的基本軟核: NiosII/f (快速型),NiosII/s (標準型)和Niosll/e(經(jīng)濟型)。通過Quartusll開發(fā)軟件中的 SOPCBuilder 系統(tǒng)開發(fā)工具, 使用者可以在任何一種軟核的基礎(chǔ)上方便的配置符合自己的 需要 Niosll 內(nèi)核。Altera 公司同時為 Niosll 提供了基于 GNUC/C+toolchain 和 EclipselDE 的軟件開發(fā) 環(huán)境。用戶可以在這個開發(fā)環(huán)境下方便的完成編碼、仿真和調(diào)試等工作。Niosll 的開發(fā)套件內(nèi)免費提供了一個Luc/OS2ll的實時操作系統(tǒng)支持,同時Niosl

14、l還支持LCIinux , NucleusPlus, KROS 等第三方操作系統(tǒng)。和上面所提到的 LEON2 和 OpenRlSC1200 兩種完全開 放的處理器內(nèi)核不同, Niosll 內(nèi)核屬于 “半開放 ”的內(nèi)核。用戶可以免費獲得 Niosll 的開發(fā) 平臺,不過 Niosll 只支持 Altera 的 Stratix 和 Cyclone 器件。用戶只能在 Altera 的 FPGA 芯 片上免費使用 Niosll ,而且無法獲得 Niosll 的 HDL 源代碼。 另外設(shè)計者若要在 ASlC 設(shè)計 中使用 Niosll 內(nèi)核, 則需要向 Altera 公司支付一定的授權(quán) 費用。性能評測與

15、比較相同處理器內(nèi)核在不同工藝、不同結(jié)構(gòu)配置下性能會有較大的差別。為保證評測的客 觀性, 我們在相同工藝, 相同結(jié)構(gòu)配置下對三種處理器內(nèi)核分別在 FPGA 和 ASIC 兩個 平臺上, 從性能和面積兩個角度進行了比較和分析。目前嵌入式處理器并沒有統(tǒng)一的性能測試標準, 我們選擇了當前各個嵌入式處理器提 供廠商廣泛采用的 DhrystoneV2.1 Benchmark 評測標準。 DhrystoneV2.1Benchmark 是 Reinhold Weicker 編寫的用于測試系統(tǒng)的整數(shù)處理能力的測試程序,它有公開的源代碼和測 試結(jié)果。DhrystoneV2.1Benchmark 是由 C 語言編寫

16、, 包括各種賦值語句,控制語句, 過程調(diào)用和參數(shù)傳送, 整數(shù)運算及邏輯操作等。在不同的處理器平臺上運行Dhrystone 測試程序, 得到 Dhrystoneper Second 的參數(shù)值, 并以 VAX-11/780 為參照值, 換算出 Dhrystone 2.1VAXMIPS (DMIPS) 的值。因為 VAX-11/780 的測試結(jié)果為 1757 個 Dhrystoneper Second, 將其作為參照, 得出 DMIPS = (Dhrystoneper Second/1757 。因為處理器的性能與工作頻率 密切相關(guān),在不同工作頻率下測算出的 DMIPS 是不同的, 所以通常使用 DM

17、IPS/MHz 作 為標準, 評估各個處理器的結(jié)構(gòu)優(yōu)劣和性能高低。我們選用 Altera 的 Cyclone 開發(fā)板 (EP1C20F400C7) 作為 FPGA 的硬件測試平臺,分 別評測 LEON2 ,OpenRISC1200 和 NiosII 在 FPGA 上的性能。為保證評測結(jié)果的準確性, 我們將三種處理器配置成為大體相當?shù)脑u測系統(tǒng), 如圖 4 所示。編譯好的 Dh rystone 程序 將被下載到板上的 SRAM中運行,運行的結(jié)果通UART或JTAG端口輸出到PC終端。定 時器 (Timer) 是 Dhrystone 程序運行所需的計時設(shè)備。由于體系結(jié)構(gòu)的差異,各個處理器在 有些部分

18、的實現(xiàn)細節(jié)并不完全和圖 4 相同(比如 L EON 2 使用了兩個 UART , 分別用于調(diào) 試和輸出, 而 OpenRISC1200 和 NiosII 則選擇使用一個 JTAG 接口進行調(diào)試 ) , 但其大 體結(jié)構(gòu)都是相同的。同時我們還在三種處理器核內(nèi)均實現(xiàn)了32X32bit的硬件乘除法指令。圖 4FPGA 平臺評測系統(tǒng)LEON2 的源代碼中提供了在各種器件如 Xilinx , A ctel 等上的綜合支持。 不過 LEON2 沒有提供對 Altera 器件和相應(yīng)開發(fā)板的支持, 因此必須要首先編寫添加 tech_ cyclone. vhd 文件,并修改源代碼中 target.vhd 和 te

19、ch_map.vhd 文件。然后使用 QuartusII 進行綜合的結(jié) 果顯示: LEON2 使用了 11702 個邏輯單元 (Logic Elements) 和 242748 內(nèi)存位 (MemoryBits),其最高頻率可達 61.95MHz。在25MHz 和50MHz 的FPGA 中,LE0N2 可以分別 達到 35398.2 和 72289.2 Dhrystoneper Second。即在 25 MHz 下 LEON2 可達到 20.15DMIPS , 在 50MHz 下為 41.14DMIPS,相當于 0.82 DMIPS/MHz。OpenRISC1200 的源代碼中提供了對 Alte

20、ra 器件的支持, 因此只需修改其代碼, 配置 成所需要的系統(tǒng)構(gòu)架。 由于 OpenRISC1200 采用的是 WISHBONE 片上總線, 所以還要專門 給板上的 SRAM 寫一個 W ISHBONE 的接口。 QuartusII 的綜合結(jié)果顯示 OpenRISC1200 共 使用了 9624個邏輯單元和217344內(nèi)存位,其最高頻率可達 46. 02MHz。在25MHz的FPGA 中, OpenRISC1200 可達到 32918.2Dhrystoneper Second , 即 18.74DMIPS 。其性能相當于 0.75 DMIPS/MHz。Nios是Altera公司專門針對 Cyc

21、lone和Stratix器件設(shè)計的處理器。 Quartus 中的 SOPC Builder 系統(tǒng)開發(fā)工具, 可以方便的配置出符合要求的 NiosII 處理器。 Quartus 的綜合結(jié)果顯示 Nios 共消耗了 6615 個邏輯單元和 181248 內(nèi)存位, 最高頻率為 65.78MHz。在 50MHz 下, 測得 FPGA 中的 Niosll 為 69915.8 Dhrystoneper Second, 相當 39.79DMIPS , 其性能為 0.80DMIPS/MHz 。為了進行縱向的對比,我們還評 測 Nios 的性 能。 Nios 共需 4535 個邏輯單元和 231424個內(nèi)存位,

22、 最高頻率為 61.65MHz 。在 50MHz 下 Nios 可以達到 18.88 DMIPS , 其性能為 0.37DMIPS/MHz 。顯然 NiosII 比 Nios 在性能上有 了很大的提高。圖 5 給出了幾種處理器的性能對比圖。 顯然三種 32 位處理器的性能比指令集為 16 位 的準 32 位 Nios 處理器高出很多。 在三種 32 位處理器中, LEON2 的性能最好為 0.82, 但 其相應(yīng)的所耗的資源也最多。和 LEON2 相比, OpenRISC1200 的性能稍差為 0.75, 但其 所占用的邏輯單元也較少。 N io s 處理器的測試性能可達 0.80, 而且其所消耗的邏輯單元 僅為 LEON2 的 57%。這是由于 Nios 針對 Cyclone 器件進行過專門的優(yōu)化, 導(dǎo)致了 Nios 在 Cyclone 器

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論