开放性32位RISC处理器IP核的比较与分析_第1页
开放性32位RISC处理器IP核的比较与分析_第2页
开放性32位RISC处理器IP核的比较与分析_第3页
开放性32位RISC处理器IP核的比较与分析_第4页
开放性32位RISC处理器IP核的比较与分析_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、开放性 32 位 RISC 处理器 IP 核的比较与分析类别: 嵌入式系统随着 VLSI 设计技术和深亚微米制造技术的飞速发展,SOC (System on Chip ) 技术逐渐成为了集成 电路 设计的主流技术。 SOC 已经在便携式手持设备、无线网络终端和多媒体娱乐 设备等领域得到了广泛的应用。高性能的处理器核是 SOC 设计中最为关键和核心的部分。绝大多数SOC 的处理器都采用了 RISC体系结构。RISC处理器具有指令效率高、 电路面积小和功率消耗低等特点,满足了 SOC 高性能、 低成本和低功耗的设计要求。 目前在 SOC 设计中广泛使用的 32bit RISC 处理器, 如 ARM

2、 公司的 ARM 处理器, IBM 的 PowerPC 处理器, MIPS 公司的 MIPS 处 理器, Motorola 的 MCore 处理器, Tensilica 公司的 Xtensa 处理器等均属于商业内核, 使 用者必须支付相对昂贵的授权费。近年来开放源代码运动迅速发展, 开放性源码的概念已经从软件领域 (如 Linux , Gcc, MySQL 等)扩展到了硬件领域, 出现了像 OpenCores 这样专门发布免费的 IP 核源代码的组 织。本文比较和分析了三种 “免费 ”的开放性 32bit 处理器内核: GaislerResearch 公司的 LEON2 , OpenCores

3、 组织公布的 OpenRISC1200 和 Altera 公司的 NiosII 。这三种开放性处 理器凭借其高性能、 低成本, 良好的可配置性和完善的开发环境, 受到了学术界和工业界 的普遍重视。LEON2LEON 系列 32 位 RISC 处理器核的第一个版本是 EON1 , 它是由欧洲航天局 (European SpaceAgency) 主持设计开发的。 LEON1 的设计初衷是为了使欧洲能够摆脱在航 空航天高性能嵌入式处理器上对美国的严重依赖。以 Jiri Gaisler 为首的设计团队在完成 LEON1 后从欧洲航天局独立出来, 成立了 Gaisler Research 公司, 相继推

4、出了 LEON2 和 LEON3 处理器。 LEON 系列处理器软核均以 RTL 级 VHDL 源代码形式免费公布, 使用 者可以在 GNULGPL (Library General Public License ) 下对其源代码进行使用和研究。 LEON 系列处理器在结构上有很高的一致性和继承性, 我们选用比较稳定的 L EON221.0.222xst 版 本进行研究分析。其结构框图如图 1 所示:图 1LEON2 结构框图LEON2 的整数处理单元是 5 级流水线设计, 采用了 SPARCV8 ( IEEE-1754) 指令和 体系结构,具有分离的数据 Cache和指令Cache丄E0N2

5、的整数单元包括一个可选的 16X16 的MAC单元,能够完成基本的 DSP运算,同时还提供了浮点运算单元 (FPU)的接口和协 处理器(CP)的接口, 可以扩展浮点运算和 DSP处理。LEON2 选用了 ARM 公司的 AMBA2.0 片上总线标准, 用于连接内存 控制 器 (MemoryController ) , 定时器 ( Timers ) , 中断控制器 ( IrqCtrl) , UART 接口, PCI 接 口, 10/100M 以太网接口等模块。 L EON 2 同时还提供了一个调试支持单元 (Debug Support Unit) 和一个调试串口 (DebugSerial Lin

6、k) ,用于支持片内调试。LEON2 的一个非常重要的特点就是具有很好的可配置性。 使用者根据自己的需要, 通 过一个用 tcltk 脚本编写的图形化界面, 对 LEON2 内核的绝大多数模块进行配置, 比如 可以配置 Cache 的大小和访问方式, 是否支持硬件乘 ?除法,是否需要内存管理单元 (MMU) , PCI 接口, 以太网接口等。Gaisler Research 公司提供了比较完善的基于 L EON 2 的 GNU 软件开发环境。 使用者 可以使用 TSIM 或 GRMON 进行 LEON 内核的调试仿真。 ECCS 是专门针对 LEON 的交 * 编译系统, 可以进行 C/C+

7、+ 的编译和调试。 SnapGearLinux 是基于 LClinux 的实时 Linux 内核, 它的 LEON 版提供了对 LEON 处理器的全面支持, 可以支持 MMU 和 NOMMU 等不同配置方案。OpenRISC1200OpenRISC1000 系列处理器是开放 IP 核源代码组织 Opencores 公布的 32*64 位处理器 软核。使用者可以在 GNULGPL下免费使用其 RTL级的Verilog源代码。OpenRISCIOOO系 列处理器有很多版本, 我们选用了目前最新的 OpenRISC1200 进行研究分析, 其结构如 图 2 所示:图 2OpenRISC1200 结构

8、框图Op enRISC1200 采用了自主设计的 OpenRISC1000 体系结构和自定义的 ORBIS32 指 令集。 OpenRISC1200 是 Harvard 结构设计, 拥有一个 5 级流水线的整数单元。OpenRISC1200有一个32 X32的MAC 单元, 具备基本的 DSP处理功能。OpenRISC1200还可以根据需要自定义用户指令。OpenRISC1200具有1K64K可配置大小的数据 Cache 和指令 Cache 以及可供选择的内存管理单元。 OpenRISC1200 同时还 提供了一个用于降低功耗的电源管理单元 (PowerManager) 和一个支持片内调试的调

9、试单元 (Debug Unit)。 OpenRISC1200 采用了 Silicore 公司提出的 W ISHBON E 开放性总线标准, 包括一个数据 W ISHBON E 接口和一个指令 W ISHBON E 接口。总线管理模块 (Traffic Cop ) 将内存控制器, 调试单元, UART 接口, PCI 接口, Ethernet 接口等模块连接在 一起。 OpenRISC1200 具有较好的可配置性, 使用者可以根据自己的需要配置 Cache 的大 小, 是否使用 MMU ,并可以定制自定义的指令。 不过目前 OpenRISC1200 还没有图形化 的配置界面, 使用者必须根据需要

10、修改配置定义文件 or1200 defines.v。OpenRISC1200 有完善的软件开发环境 (SDK) 和操作系统的支持。 使用者可以通过包括 Sourcenavigator , Gcc, Binu tills , Gdb 等在内的 GNUToolchian 工具方便的进行基于 OpenRISC1200 内核的编码、编译和调试。同时, OpenRISC1200 拥有专门的仿真器 Or1k sim ,可以进行 OpenRISC1200 的仿真。 OpenRISC1200 还支持 Linux , LClinux ,RTEMS , RedHaeCos 等多种操作系统。NiosIINios 系

11、列处理器是 Altera 公司推出的基于 RISC 体系结构的通用嵌入式处理器软核, 它是 Altera 的可编程逻辑和可编程片上系统 (SoPC) 设计综合解决方案的核心部分。 Altera 前后推出了两代 Nios系列处理器:Nios和Nios II。Nios是其第一代产品,是准32bit的RISC 处理器, 具有 16bit 指令集和 16*32 bit 数据通路。 NiosII 是第二代完全 32bitRISC 处 理器, 具有 32bit 的指令集、数据通路和地址空间。我们选用了 NiosII 进行比较和分析。 图 3 是典型的基于 NiosII 的系统。图3典型的基于 NiosII

12、 的系统NiosII 处理器是 5 级流水线设计, 采用数据和指令分离的 Harvard 结构。 NiosII 拥有 自己专用的体系结构与指令集, 支持 32bit 的硬件乘除法指令,有 32 个通用寄存器。用 户还可以根据自己的需要自定义最多 256 条指令。NiosII 采用了 Altera 公司自己的 Avalon 片内总线标准, 用于连接定时器, UART 接 口, LCD 接口,内存控制器和以太网接口等片内模块。 NiosII 同时还提供了一个 Debug 模 块, 支持 JTAG 在线调试。 Altera 公司为 NiosII 提供了极为完善的软硬件开发环境。 NiosII 处理器

13、方案是基于 HDL 源码构建的, 提供了三种性能和资源消耗不同的基本软核: NiosII/f (快速型),NiosII/s (标准型)和Niosll/e(经济型)。通过Quartusll开发软件中的 SOPCBuilder 系统开发工具, 使用者可以在任何一种软核的基础上方便的配置符合自己的 需要 Niosll 内核。Altera 公司同时为 Niosll 提供了基于 GNUC/C+toolchain 和 EclipselDE 的软件开发 环境。用户可以在这个开发环境下方便的完成编码、仿真和调试等工作。Niosll 的开发套件内免费提供了一个Luc/OS2ll的实时操作系统支持,同时Niosl

14、l还支持LCIinux , NucleusPlus, KROS 等第三方操作系统。和上面所提到的 LEON2 和 OpenRlSC1200 两种完全开 放的处理器内核不同, Niosll 内核属于 “半开放 ”的内核。用户可以免费获得 Niosll 的开发 平台,不过 Niosll 只支持 Altera 的 Stratix 和 Cyclone 器件。用户只能在 Altera 的 FPGA 芯 片上免费使用 Niosll ,而且无法获得 Niosll 的 HDL 源代码。 另外设计者若要在 ASlC 设计 中使用 Niosll 内核, 则需要向 Altera 公司支付一定的授权 费用。性能评测与

15、比较相同处理器内核在不同工艺、不同结构配置下性能会有较大的差别。为保证评测的客 观性, 我们在相同工艺, 相同结构配置下对三种处理器内核分别在 FPGA 和 ASIC 两个 平台上, 从性能和面积两个角度进行了比较和分析。目前嵌入式处理器并没有统一的性能测试标准, 我们选择了当前各个嵌入式处理器提 供厂商广泛采用的 DhrystoneV2.1 Benchmark 评测标准。 DhrystoneV2.1Benchmark 是 Reinhold Weicker 编写的用于测试系统的整数处理能力的测试程序,它有公开的源代码和测 试结果。DhrystoneV2.1Benchmark 是由 C 语言编写

16、, 包括各种赋值语句,控制语句, 过程调用和参数传送, 整数运算及逻辑操作等。在不同的处理器平台上运行Dhrystone 测试程序, 得到 Dhrystoneper Second 的参数值, 并以 VAX-11/780 为参照值, 换算出 Dhrystone 2.1VAXMIPS (DMIPS) 的值。因为 VAX-11/780 的测试结果为 1757 个 Dhrystoneper Second, 将其作为参照, 得出 DMIPS = (Dhrystoneper Second/1757 。因为处理器的性能与工作频率 密切相关,在不同工作频率下测算出的 DMIPS 是不同的, 所以通常使用 DM

17、IPS/MHz 作 为标准, 评估各个处理器的结构优劣和性能高低。我们选用 Altera 的 Cyclone 开发板 (EP1C20F400C7) 作为 FPGA 的硬件测试平台,分 别评测 LEON2 ,OpenRISC1200 和 NiosII 在 FPGA 上的性能。为保证评测结果的准确性, 我们将三种处理器配置成为大体相当的评测系统, 如图 4 所示。编译好的 Dh rystone 程序 将被下载到板上的 SRAM中运行,运行的结果通UART或JTAG端口输出到PC终端。定 时器 (Timer) 是 Dhrystone 程序运行所需的计时设备。由于体系结构的差异,各个处理器在 有些部分

18、的实现细节并不完全和图 4 相同(比如 L EON 2 使用了两个 UART , 分别用于调 试和输出, 而 OpenRISC1200 和 NiosII 则选择使用一个 JTAG 接口进行调试 ) , 但其大 体结构都是相同的。同时我们还在三种处理器核内均实现了32X32bit的硬件乘除法指令。图 4FPGA 平台评测系统LEON2 的源代码中提供了在各种器件如 Xilinx , A ctel 等上的综合支持。 不过 LEON2 没有提供对 Altera 器件和相应开发板的支持, 因此必须要首先编写添加 tech_ cyclone. vhd 文件,并修改源代码中 target.vhd 和 te

19、ch_map.vhd 文件。然后使用 QuartusII 进行综合的结 果显示: LEON2 使用了 11702 个逻辑单元 (Logic Elements) 和 242748 内存位 (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 器件的支持, 因此只需修改其代码, 配置 成所需要的系统构架。 由于 OpenRISC1200 采用的是 WISHBONE 片上总线, 所以还要专门 给板上的 SRAM 写一个 W ISHBONE 的接口。 QuartusII 的综合结果显示 OpenRISC1200 共 使用了 9624个逻辑单元和217344内存位,其最高频率可达 46. 02MHz。在25MHz的FPGA 中, OpenRISC1200 可达到 32918.2Dhrystoneper Second , 即 18.74DMIPS 。其性能相当于 0.75 DMIPS/MHz。Nios是Altera公司专门针对 Cyc

21、lone和Stratix器件设计的处理器。 Quartus 中的 SOPC Builder 系统开发工具, 可以方便的配置出符合要求的 NiosII 处理器。 Quartus 的综合结果显示 Nios 共消耗了 6615 个逻辑单元和 181248 内存位, 最高频率为 65.78MHz。在 50MHz 下, 测得 FPGA 中的 Niosll 为 69915.8 Dhrystoneper Second, 相当 39.79DMIPS , 其性能为 0.80DMIPS/MHz 。为了进行纵向的对比,我们还评 测 Nios 的性 能。 Nios 共需 4535 个逻辑单元和 231424个内存位,

22、 最高频率为 61.65MHz 。在 50MHz 下 Nios 可以达到 18.88 DMIPS , 其性能为 0.37DMIPS/MHz 。显然 NiosII 比 Nios 在性能上有 了很大的提高。图 5 给出了几种处理器的性能对比图。 显然三种 32 位处理器的性能比指令集为 16 位 的准 32 位 Nios 处理器高出很多。 在三种 32 位处理器中, LEON2 的性能最好为 0.82, 但 其相应的所耗的资源也最多。和 LEON2 相比, OpenRISC1200 的性能稍差为 0.75, 但其 所占用的逻辑单元也较少。 N io s 处理器的测试性能可达 0.80, 而且其所消耗的逻辑单元 仅为 LEON2 的 57%。这是由于 Nios 针对 Cyclone 器件进行过专门的优化, 导致了 Nios 在 Cyclone 器

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论