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

上传人:小** 文档编号:53669852 上传时间:2022-02-10 格式:DOC 页数:5 大小:96.50KB
返回 下载 相关 举报
开放性32位RISC处理器IP核的比较与分析_第1页
第1页 / 共5页
开放性32位RISC处理器IP核的比较与分析_第2页
第2页 / 共5页
开放性32位RISC处理器IP核的比较与分析_第3页
第3页 / 共5页
点击查看更多>>
资源描述
开放性 32 位 RISC 处理器 IP 核的比较与分析类别: 嵌入式系统随着 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 。这三种开放性处 理器凭借其高性能、 低成本, 良好的可配置性和完善的开发环境, 受到了学术界和工业界 的普遍重视。LEON2LEON 系列 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 所示:图 1LEON2 结构框图LEON2 的整数处理单元是 5 级流水线设计, 采用了 SPARCV8 ( IEEE-1754) 指令和 体系结构,具有分离的数据 Cache和指令Cache丄E0N2的整数单元包括一个可选的 16X16 的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 是基于 LClinux 的实时 Linux 内核, 它的 LEON 版提供了对 LEON 处理器的全面支持, 可以支持 MMU 和 NOMMU 等不同配置方案。OpenRISC1200OpenRISC1000 系列处理器是开放 IP 核源代码组织 Opencores 公布的 32*64 位处理器 软核。使用者可以在 GNULGPL下免费使用其 RTL级的Verilog源代码。OpenRISCIOOO系 列处理器有很多版本, 我们选用了目前最新的 OpenRISC1200 进行研究分析, 其结构如 图 2 所示:图 2OpenRISC1200 结构框图Op enRISC1200 采用了自主设计的 OpenRISC1000 体系结构和自定义的 ORBIS32 指 令集。 OpenRISC1200 是 Harvard 结构设计, 拥有一个 5 级流水线的整数单元。OpenRISC1200有一个32 X32的MAC 单元, 具备基本的 DSP处理功能。OpenRISC1200还可以根据需要自定义用户指令。OpenRISC1200具有1K64K可配置大小的数据 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 的仿真。 OpenRISC1200 还支持 Linux , LClinux ,RTEMS , RedHaeCos 等多种操作系统。NiosIINios 系列处理器是 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 (标准型)和Niosll/e(经济型)。通过Quartusll开发软件中的 SOPCBuilder 系统开发工具, 使用者可以在任何一种软核的基础上方便的配置符合自己的 需要 Niosll 内核。Altera 公司同时为 Niosll 提供了基于 GNUC/C+toolchain 和 EclipselDE 的软件开发 环境。用户可以在这个开发环境下方便的完成编码、仿真和调试等工作。Niosll 的开发套件内免费提供了一个Luc/OS2ll的实时操作系统支持,同时Niosll还支持LCIinux , NucleusPlus, KROS 等第三方操作系统。和上面所提到的 LEON2 和 OpenRlSC1200 两种完全开 放的处理器内核不同, Niosll 内核属于 “半开放 ”的内核。用户可以免费获得 Niosll 的开发 平台,不过 Niosll 只支持 Altera 的 Stratix 和 Cyclone 器件。用户只能在 Altera 的 FPGA 芯 片上免费使用 Niosll ,而且无法获得 Niosll 的 HDL 源代码。 另外设计者若要在 ASlC 设计 中使用 Niosll 内核, 则需要向 Altera 公司支付一定的授权 费用。性能评测与比较相同处理器内核在不同工艺、不同结构配置下性能会有较大的差别。为保证评测的客 观性, 我们在相同工艺, 相同结构配置下对三种处理器内核分别在 FPGA 和 ASIC 两个 平台上, 从性能和面积两个角度进行了比较和分析。目前嵌入式处理器并没有统一的性能测试标准, 我们选择了当前各个嵌入式处理器提 供厂商广泛采用的 DhrystoneV2.1 Benchmark 评测标准。 DhrystoneV2.1Benchmark 是 Reinhold Weicker 编写的用于测试系统的整数处理能力的测试程序,它有公开的源代码和测 试结果。DhrystoneV2.1Benchmark 是由 C 语言编写, 包括各种赋值语句,控制语句, 过程调用和参数传送, 整数运算及逻辑操作等。在不同的处理器平台上运行Dhrystone 测试程序, 得到 Dhrystoneper Second 的参数值, 并以 VAX-11/780 为参照值, 换算出 Dhrystone 2.1VAXMIPS (DMIPS) 的值。因为 VAX-11/780 的测试结果为 1757 个 Dhrystoneper Second, 将其作为参照, 得出 DMIPS = (Dhrystoneper Second/1757 。因为处理器的性能与工作频率 密切相关,在不同工作频率下测算出的 DMIPS 是不同的, 所以通常使用 DMIPS/MHz 作 为标准, 评估各个处理器的结构优劣和性能高低。我们选用 Altera 的 Cyclone 开发板 (EP1C20F400C7) 作为 FPGA 的硬件测试平台,分 别评测 LEON2 ,OpenRISC1200 和 NiosII 在 FPGA 上的性能。为保证评测结果的准确性, 我们将三种处理器配置成为大体相当的评测系统, 如图 4 所示。编译好的 Dh rystone 程序 将被下载到板上的 SRAM中运行,运行的结果通UART或JTAG端口输出到PC终端。定 时器 (Timer) 是 Dhrystone 程序运行所需的计时设备。由于体系结构的差异,各个处理器在 有些部分的实现细节并不完全和图 4 相同(比如 L EON 2 使用了两个 UART , 分别用于调 试和输出, 而 OpenRISC1200 和 NiosII 则选择使用一个 JTAG 接口进行调试 ) , 但其大 体结构都是相同的。同时我们还在三种处理器核内均实现了32X32bit的硬件乘除法指令。图 4FPGA 平台评测系统LEON2 的源代码中提供了在各种器件如 Xilinx , A ctel 等上的综合支持。 不过 LEON2 没有提供对 Altera 器件和相应开发板的支持, 因此必须要首先编写添加 tech_ cyclone. vhd 文件,并修改源代码中 target.vhd 和 tech_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 的源代码中提供了对 Altera 器件的支持, 因此只需修改其代码, 配置 成所需要的系统构架。 由于 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公司专门针对 Cyclone和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个内存位, 最高频率为 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 器件上的出色表现。 为了使比较更加全面和深入, 我们还对评测系统进行了 ASIC 平台上的对比。由于 NiosII 并不提供源代码,仅针对 Altera 的 FPGA 器件是免费的, 因 此我们仅对比了 LEON2 和 OpenRISC1200 两种完全开放性内核。 我们使用中芯国际 ( SMIC ) 的 Rapid Compiler 完成 Registerfile 中所需的双口 SRAM 和 Cache 模块所需的单口 SRAM 的设计, 并使用 Synopsys 公司 Design Compiler 和 SMIC 的 0.18 Lm 的标准单元库完成了 两种内核 RTL 代码的综合和优化。 相当占用了 152904 个门单元, 最差条件下的最高频率 为 160MHz。 OpenRISC1200 共使用了 148455 个门单元, 最差条件下的最高频率为 125MHz 。显然 LEON2 的运行频率更高, 但其所占的面积也相对更大。图 5 四种处理器性能对比图结论本文从结构和性能两个方面比较了 LEON2 , OpenRISC1200 和 NiosII 三种 32 位 RISC 处理器内核, 概括如表 1 所示。通过以上比较和分析可以看出, LEON2 和 OpenRISC1200 主要是面向 ASIC 设计, 它们具有开放的源代码以及相关 ASIC 平台开发的支持。 其中由于 LEON2 处理器得到了欧 洲航天局的资助,其开发文档和技术支持也相对更为完善。虽然NiosII 在 Altera 的器件上具有良好的性能并且 Altera 公司提供了完善的文档和技术支持,但是由于 NiosII 只能应用 于 Altera 的器件, 所以其使用范围受到了一定的限制。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!