您当前的位置:五五电子网电子知识单片机-工控设备DSP/FPGA技术开放性32位RISC处理器IP核的比较与分析 正文
开放性32位RISC处理器IP核的比较与分析

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

点击数:7125 次   录入时间:03-04 11:48:27   整理:http://www.55dianzi.com   DSP/FPGA技术
    比较和分析了LEON2,OpenRISC1200,NiosII 等3 种开放性RISC 处理器IP 核的结构特点, 然后分以三种处理器为核心在FPGA 平台上构建了一个评测系统。

      采用Dhrystone 2.1 基准 测试 程序评测了它们的性能最后在0.18um 的CMOS工艺下进行了综合, 给出了它们在ASIC 平台下面积和频率的比较。

      引言
  

      随着VLSI设计技术和深亚微米制造技术的飞速发展, SOC (System on Chip ) 技术逐渐成为了集成电路设计的主流技术。SOC 已经在便携式手持设备、无线网络终端和多媒体娱乐设备等领域得到了广泛的应用。

  高性能的处理器核是SOC设计中最为关键和核心的部分。绝大多数SOC 的处理器都采用了RISC体系结构。RISC 处理器具有指令效率高、电路面积小和功率消耗低等特点, 满足了SOC 高性能、低成本和低功耗的设计要求。目前在SOC 设计中广泛使用的32bit RISC 处理器, 如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, 它是由欧洲航天局(European SPACeAgency) 主持设计开发的。LEON1 的设计初衷是为了使欧洲能够摆脱在航空航天高性能 嵌入式 处理器上对美国的严重依赖。以Jiri Gaisler为首的设计团队在完成LEON1 后从欧洲航天局独立出来, 成立了Gaisler Research 公司, 相继推出了LEON2 和LEON3 处理器。LEON 系列处理器软核均以RTL级VHDL 源代码形式免费公布, 使用者可以在GNULGPL (Library General Public License ) 下对其源代码进行使用和研究。LEON 系列处理器在结构上有很高的一致性和继承性, 我们选用比较稳定的L EON221.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 以太网接口等模块。L EON 2 同时还提供了一个调试支持单元(Debug Support Unit) 和一个调试串口(DebugSerial Link) , 用于支持片内调试。

  LEON2 的一个非常重要的特点就是具有很好的可配置性。使用者根据自己的需要, 通过一个用tcltk 脚本编写的图形化界面, 对LEON2 内核的绝大多数模块进行配置, 比如可以配置Cache 的大小和访问方式, 是否支持硬件乘?除法, 是否需要内存管理单元(MMU), PCI 接口, 以太网接口等。

  Gaisler Research 公司提供了比较完善的基于L EON 2 的GNU 软件开发环境。使用者可以使用TSIM 或GRMON进行LEON 内核的调试仿真。 ECCS 是专门针对LEON 的交叉编译系统, 可以进行C/C+ + 的编译和调试。SnapGearLinux 是基于LC linux 的实时Linux 内核, 它的LEON 版提供了对LEON 处理器的全面支持, 可以支持MMU和NOMMU等不同配置方案。

  OpenRISC1200

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

  OpenRISC1200 有完善的软件开发环境(SDK)和操作系统的支持。使用者可以通过包括Sourcenavigator, Gcc, Binu tills, Gdb 等在内的GNUToolchian 工具方便的进行基于OpenRISC1200 内核的编码、编译和调试。

  同时,OpenRISC1200 拥有专门的仿真器Or1k sim , 可以进行OpenRISC1200 的仿真。



www.55dianzi.com

OpenRISC1200 还支持Linux, LC linux ,RTEMS, RedHaeCos 等多种操作系统。

  NiosII
  

  Nios 系列处理器是ALTEra 公司推出的基于RISC 体系结构的通用 嵌入式 处理器软核, 它是Altera 的可编程逻辑和可编程片上系统(SoPC) 设计综合解决方案的核心部分。Altera 前后推出了两代Nios 系列处理器:Nios 和Nios II。Nios 是其第一代产品, 是准32bit 的RISC 处理器, 具有16bit 指令集和16*32 bit 数据通路。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,Nucleus Plus, KROS 等第三方操作系统。和上面所提到的LEON2 和OpenRISC1200 两种完全开放的处理器内核不同,NiosII 内核属于“半开放”的内核。用户可以免费获得NiosII 的开发平台, 不过NiosII 只支持Altera 的Stratix 和Cyclone器件。用户只能在Altera 的FPGA 芯片上免费使用NiosII, 而且无法获得NiosII 的HDL 源代码。另外设计者若要在ASIC 设计中使用NiosII 内核, 则需要向Altera 公司支付一定的授权费用。

       性能评测与比较
  

       相同处理器内核在不同工艺、不同结构配置下性能会有较大的差别。为保证评测的客观性, 我们在相同工艺, 相同结构配置下对三种处理器内核分别在FPGA 和ASIC 两个平台上, 从性能和面积两个角度进行了比较和分析。

  目前嵌入式处理器并没有统一的性能 测试 标准, 我们选择了当前各个嵌入式处理器提供厂商广泛采用的DhrystoneV2.1 Benchmark评测标准。DhrystoneV2.1Benchmark 是Reinhold Weicker编写的用于测试系统的整数处理能力的测试程序,它有公开的源代码和测试结果。

[1] [2]  下一页


本文关键字:处理器  开放性  DSP/FPGA技术单片机-工控设备 - DSP/FPGA技术

《开放性32位RISC处理器IP核的比较与分析》相关文章>>>