日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

开放性32位RISC处理器IP核的比较与分析(Z)

發布時間:2023/12/15 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 开放性32位RISC处理器IP核的比较与分析(Z) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

引言

隨著VLSI設計技術和深亞微米制造技術的飛速發展,SOC(SystemonChip)技術逐漸成為了集成電路設計的主流技術。SOC已經在便攜式手持設備、無線網絡終端和多媒體娛樂設備等領域得到了廣泛的應用。

高性能的處理器核是SOC設計中最為關鍵和核心的部分。絕大多數SOC的處理器都采用了RISC體系結構。RISC處理器具有指令效率高、電路面積小和功率消耗低等特點,滿足了SOC高性能、低成本和低功耗的設計要求。目前在SOC設計中廣泛使用的32bitRISC處理器,如ARM公司的ARM處理器,IBM的PowerPC處理器,MIPS公司的MIPS處理器,Motorola的MCore處理器,Tensilica公司的Xtensa處理器等均屬于商業內核,使用者必須支付相對昂貴的授權費。

近年來開放源代碼運動迅速發展,開放性源碼的概念已經從軟件領域(如Linux,Gcc,MySQL等)擴展到了硬件領域,出現了像OpenCores這樣專門發布免費的IP核源代碼的組織。本文比較和分析了三種“免費”的開放性32bit處理器內核:GaislerResearch公司的LEON2,OpenCores組織公布的OpenRISC1200和Altera公司的NiosII。這三種開放性處理器憑借其高性能、低成本,良好的可配置性和完善的開發環境,受到了學術界和工業界的普遍重視。

LEON2

LEON系列32位RISC處理器核的第一個版本是EON1,它是由歐洲航天局(EuropeanSpaceAgency)主持設計開發的。LEON1的設計初衷是為了使歐洲能夠擺脫在航空航天高性能嵌入式處理器上對美國的嚴重依賴。以JiriGaisler為首的設計團隊在完成LEON1后從歐洲航天局獨立出來,成立了GaislerResearch公司,相繼推出了LEON2和LEON3處理器。LEON系列處理器軟核均以RTL級VHDL源代碼形式免費公布,使用者可以在GNULGPL(LibraryGeneralPublicLicense)下對其源代碼進行使用和研究。LEON系列處理器在結構上有很高的一致性和繼承性,我們選用比較穩定的LEON221.0.222xst版本進行研究分析。其結構框圖如圖1所示:

?


圖1 LEON2結構框圖

LEON2的整數處理單元是5級流水線設計,采用了SPARCV8(IEEE-1754)指令和體系結構,具有分離的數據Cache和指令Cache。LEON2的整數單元包括一個可選的16×16的MAC單元,能夠完成基本的DSP運算,同時還提供了浮點運算單元(FPU)的接口和協處理器(CP)的接口,可以擴展浮點運算和DSP處理。

LEON2選用了ARM公司的AMBA2.0片上總線標準,用于連接內存控制器(MemoryController),定時器(Timers),中斷控制器(IrqCtrl),UART接口,PCI接口,10/100M以太網接口等模塊。LEON2同時還提供了一個調試支持單元(DebugSupportUnit)和一個調試串口(DebugSerialLink),用于支持片內調試。

LEON2的一個非常重要的特點就是具有很好的可配置性。使用者根據自己的需要,通過一個用tcltk腳本編寫的圖形化界面,對LEON2內核的絕大多數模塊進行配置,比如可以配置Cache的大小和訪問方式,是否支持硬件乘?除法,是否需要內存管理單元(MMU),PCI接口,以太網接口等。

GaislerResearch公司提供了比較完善的基于LEON2的GNU軟件開發環境。使用者可以使用TSIM或GRMON進行LEON內核的調試仿真。ECCS是專門針對LEON的交叉編譯系統,可以進行C/C++的編譯和調試。SnapGearLinux是基于LClinux的實時Linux內核,它的LEON版提供了對LEON處理器的全面支持,可以支持MMU和NOMMU等不同配置方案。

Open RISC1200

OpenRISC1000系列處理器是開放IP核源代碼組織Opencores公布的32*64位處理器軟核。使用者可以在GNULGPL下免費使用其RTL級的Verilog源代碼。OpenRISC1000系列處理器有很多版本,我們選用了目前最新的OpenRISC1200進行研究分析,其結構如圖2所示:

?


圖2 OpenRISC1200結構框圖

OpenRISC1200采用了自主設計的OpenRISC1000體系結構和自定義的ORBIS32指令集。OpenRISC1200是Harvard結構設計,擁有一個5級流水線的整數單元。OpenRISC1200有一個32×32的MAC單元,具備基本的DSP處理功能。

OpenRISC1200還可以根據需要自定義用戶指令。OpenRISC1200具有1K~64K可配置大小的數據Cache和指令Cache以及可供選擇的內存管理單元。OpenRISC1200同時還提供了一個用于降低功耗的電源管理單元(PowerManager)和一個支持片內調試的調試單元(DebugUnit)。OpenRISC1200采用了Silicore公司提出的WISHBONE開放性總線標準,包括一個數據WISHBONE接口和一個指令WISHBONE接口。總線管理模塊(TrafficCop)將內存控制器,調試單元,UART接口,PCI接口,Ethernet接口等模塊連接在一起。OpenRISC1200具有較好的可配置性,使用者可以根據自己的需要配置Cache的大小,是否使用MMU,并可以定制自定義的指令。不過目前OpenRISC1200還沒有圖形化的配置界面,使用者必須根據需要修改配置定義文件or1200defines.v。

OpenRISC1200有完善的軟件開發環境(SDK)和操作系統的支持。使用者可以通過包括Sourcenavigator,Gcc,Binutills,Gdb等在內的GNUToolchian工具方便的進行基于OpenRISC1200內核的編碼、編譯和調試。同時,OpenRISC1200擁有專門的仿真器Or1ksim,可以進行OpenRISC1200的仿真。OpenRISC1200還支持Linux,LClinux,RTEMS,RedHaeCos等多種操作系統。

NiosII

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

?


圖3 典型的基于NiosII的系統

NiosII處理器是5級流水線設計,采用數據和指令分離的Harvard結構。NiosII擁有自己專用的體系結構與指令集,支持32bit的硬件乘除法指令,有32個通用寄存器。用戶還可以根據自己的需要自定義最多256條指令。

NiosII采用了Altera公司自己的Avalon片內總線標準,用于連接定時器,UART接口,LCD接口,內存控制器和以太網接口等片內模塊。NiosII同時還提供了一個Debug模塊,支持JTAG在線調試。Altera公司為NiosII提供了極為完善的軟硬件開發環境。NiosII處理器方案是基于HDL源碼構建的,提供了三種性能和資源消耗不同的基本軟核:NiosII/f(快速型),NiosII/s(標準型)和NiosII/e(經濟型)。通過QuartusII開發軟件中的SOPCBuilder系統開發工具,使用者可以在任何一種軟核的基礎上方便的配置符合自己的需要NiosII內核。

Altera公司同時為NiosII提供了基于GNUC/C++toolchain和EclipseIDE的軟件開發環境。用戶可以在這個開發環境下方便的完成編碼、仿真和調試等工作。NiosII的開發套件內免費提供了一個Luc/OS2II的實時操作系統支持,同時NiosII還支持LClinux,NucleusPlus,KROS等第三方操作系統。和上面所提到的LEON2和OpenRISC1200兩種完全開放的處理器內核不同,NiosII內核屬于“半開放”的內核。用戶可以免費獲得NiosII的開發平臺,不過NiosII只支持Altera的Stratix和Cyclone器件。用戶只能在Altera的FPGA芯片上免費使用NiosII,而且無法獲得NiosII的HDL源代碼。另外設計者若要在ASIC設計中使用NiosII內核,則需要向Altera公司支付一定的授權費用。

性能評測與比較

相同處理器內核在不同工藝、不同結構配置下性能會有較大的差別。為保證評測的客觀性,我們在相同工藝,相同結構配置下對三種處理器內核分別在FPGA和ASIC兩個平臺上,從性能和面積兩個角度進行了比較和分析。

目前嵌入式處理器并沒有統一的性能測試標準,我們選擇了當前各個嵌入式處理器提供廠商廣泛采用的DhrystoneV2.1Benchmark評測標準。DhrystoneV2.1Benchmark是ReinholdWeicker編寫的用于測試系統的整數處理能力的測試程序,它有公開的源代碼和測試結果。

DhrystoneV2.1Benchmark是由C語言編寫,包括各種賦值語句,控制語句,過程調用和參數傳送,整數運算及邏輯操作等。在不同的處理器平臺上運行Dhrystone測試程序,得到DhrystoneperSecond的參數值,并以VAX-11/780為參照值,換算出Dhrystone2.1VAXMIPS(DMIPS)的值。因為VAX-11/780的測試結果為1757個DhrystoneperSecond,將其作為參照,得出DMIPS=(DhrystoneperSecond/1757。因為處理器的性能與工作頻率密切相關,在不同工作頻率下測算出的DMIPS是不同的,所以通常使用DMIPS/MHz作為標準,評估各個處理器的結構優劣和性能高低。

我們選用Altera的Cyclone開發板(EP1C20F400C7)作為FPGA的硬件測試平臺,分別評測LEON2,OpenRISC1200和NiosII在FPGA上的性能。為保證評測結果的準確性,我們將三種處理器配置成為大體相當的評測系統,如圖4所示。編譯好的Dhrystone程序將被下載到板上的SRAM中運行,運行的結果通UART或JTAG端口輸出到PC終端。定時器(Timer)是Dhrystone程序運行所需的計時設備。由于體系結構的差異,各個處理器在有些部分的實現細節并不完全和圖4相同(比如LEON2使用了兩個UART,分別用于調試和輸出,而OpenRISC1200和NiosII則選擇使用一個JTAG接口進行調試),但其大體結構都是相同的。同時我們還在三種處理器核內均實現了32×32bit的硬件乘除法指令。

?


圖4 FPGA平臺評測系統

LEON2的源代碼中提供了在各種器件如Xilinx,Actel等上的綜合支持。不過LEON2沒有提供對Altera器件和相應開發板的支持,因此必須要首先編寫添加tech_cyclone.vhd文件,并修改源代碼中target.vhd和tech_map.vhd文件。然后使用QuartusII進行綜合的結果顯示:LEON2使用了11702個邏輯單元(LogicElements)和242748內存位(MemoryBits),其最高頻率可達61.95MHz。在25MHz和50MHz的FPGA中,LEON2可以分別達到35398.2和72289.2DhrystoneperSecond。即在25MHz下LEON2可達到20.15DMIPS,在50MHz下為41.14DMIPS,相當于0.82DMIPS/MHz。

OpenRISC1200的源代碼中提供了對Altera器件的支持,因此只需修改其代碼,配置成所需要的系統構架。由于OpenRISC1200采用的是WISHBONE片上總線,所以還要專門給板上的SRAM寫一個WISHBONE的接口。QuartusII的綜合結果顯示OpenRISC1200共使用了9624個邏輯單元和217344內存位,其最高頻率可達46.02MHz。在25MHz的FPGA中,OpenRISC1200可達到32918.2DhrystoneperSecond,即18.74DMIPS。其性能相當于0.75DMIPS/MHz。Nios是Altera公司專門針對Cyclone和Stratix器件設計的處理器。Quartus中的SOPCBuilder系統開發工具,可以方便的配置出符合要求的NiosII處理器。Quartus的綜合結果顯示Nios共消耗了6615個邏輯單元和181248內存位,最高頻率為65.78MHz。在50MHz下,測得FPGA中的NiosII為69915.8DhrystoneperSecond,相當39.79DMIPS,其性能為0.80DMIPS/MHz。為了進行縱向的對比,我們還評測Nios的性能。Nios共需4535個邏輯單元和231424個內存位,最高頻率為61.65MHz。在50MHz下Nios可以達到18.88DMIPS,其性能為0.37DMIPS/MHz。顯然NiosII比Nios在性能上有了很大的提高。

圖5給出了幾種處理器的性能對比圖。顯然三種32位處理器的性能比指令集為16位的準32位Nios處理器高出很多。在三種32位處理器中,LEON2的性能最好為0.82,但其相應的所耗的資源也最多。和LEON2相比,OpenRISC1200的性能稍差為0.75,但其所占用的邏輯單元也較少。Nios處理器的測試性能可達0.80,而且其所消耗的邏輯單元僅為LEON2的57%。這是由于Nios針對Cyclone器件進行過專門的優化,導致了Nios在Cyclone器件上的出色表現。為了使比較更加全面和深入,我們還對評測系統進行了ASIC平臺上的對比。由于NiosII并不提供源代碼,僅針對Altera的FPGA器件是免費的,因此我們僅對比了LEON2和OpenRISC1200兩種完全開放性內核。我們使用中芯國際(SMIC)的RapidCompiler完成Registerfile中所需的雙口SRAM和Cache模塊所需的單口SRAM的設計,并使用Synopsys公司DesignCompiler和SMIC的0.18Lm的標準單元庫完成了兩種內核RTL代碼的綜合和優化。相當占用了152904個門單元,最差條件下的最高頻率為160MHz。OpenRISC1200共使用了148455個門單元,最差條件下的最高頻率為125MHz。顯然LEON2的運行頻率更高,但其所占的面積也相對更大。

?


圖5 四種處理器性能對比圖

結論

本文從結構和性能兩個方面比較了LEON2,OpenRISC1200和NiosII三種32位RISC處理器內核,概括如表1所示。

?

通過以上比較和分析可以看出,LEON2和OpenRISC1200主要是面向ASIC設計,它們具有開放的源代碼以及相關ASIC平臺開發的支持。其中由于LEON2處理器得到了歐洲航天局的資助,其開發文檔和技術支持也相對更為完善。雖然NiosII在Altera的器件上具有良好的性能并且Altera公司提供了完善的文檔和技術支持,但是由于NiosII只能應用于Altera的器件,所以其使用范圍受到了一定的限制。

總結

以上是生活随笔為你收集整理的开放性32位RISC处理器IP核的比较与分析(Z)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。