首页 > 范文大全 > 正文

基于FPGA的微体系结构验证平台

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于FPGA的微体系结构验证平台范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要: 构建了一种针对不同微体系结构的功能验证硬件平台,该平台以FPGA芯片为核心;同时设计了与该平台相适应的微体系结构性能分析软件并介绍了该软件的具体功能;研究了开源软核处理器OpenRISC的微体系结构,将该软核处理器移植到现有开发板上并在开发板上对其进行了评测,从而验证了该微体系结构验证平台的基本功能。

关键词: 微体系结构; 验证平台; FPGA

中图分类号: TP39141 文献标识码: A 文章编号:2095-2163(2013)03-0044-04

The Microarchitecture Verification Platform based on FPGA

WANG Yu, LIU Hongwei

(School of Computer Science and Technology, Harbin Institute of Technology, Harbin 150001, China)

Abstract: A function verification platform based on FPGA is constructed for different microarchitecture. Performance analysis software is designed for this platform. Function of the software is introduced. The microarchitecture of open source soft-core processor OpenRISC is researched, transplanted to the development board and tested to verify the basic function of this verification platform.

Key words: Microarchitecture; Verification Platform; FPGA

0 引 言

微处理器的研究是计算机科学与技术的核心研究内容之一,其更新换代更是计算机行业迅速发展的强劲动力。而微处理器的演变一方面依赖于生产工艺上的进步,另一方面则取决于其微体系结构上的设计。从科学计算、工业应用再到民用数码产品,应用领域的拓宽和专用计算机发展的迫切需求正期待着新型体系结构的诞生。而一个新的微体系结构的出现是否符合其应用领域更高层次的需求则需要一个评价环境或平台。在计算机微体系结构的研究领域,对于不同微体系结构的处理器的性能验证,更多地是通过理论分析来进行和完成的,再通过对数学模型的建立和分析,得出最终结论。此外,软件仿真也是常用的方法。这两种方式在一定程度上虽然能够对系统性能进行客观、科学评价,但仍存在其局限性,例如,数学模型的分析效果与模型建立的精确程度密切相关;而软件仿真则更是只能对微处理器的部分性能指标进行模拟,而不可能仿真实现所有环节。经过研究分析可知,一个通用的硬件验证平台则可以弥补模型仿真的不足,实现更为贴近实际的效果评价。这种平台对微体系结构的研究和微处理器的开发都大有助益。具体来说,可以帮助研究开发者缩短设计周期,在第一时间快速验证设计的正确性;同时,不同微体系结构的处理器也可以在这个平台上进行性能的比较。

国外现有的验证平台可分为软件模拟平台和硬件验证平台。

其中,软件模拟平台是通过软件模拟系统来对CPU设计进行正确性验证。常见的软件模拟工具有:Simics、Synopsys公司的VCS、Cadence公司的NC Verilog和Verilog XL、Mentor Graphics公司的ModelSim等[1]。前述工具中,Simics仿真平台是一种商用仿真系统,在追求性能的同时,也保证了仿真的精度[2]。

另外,硬件验证平台则是对原型实物在电路板上进行实际验证。

其中,BEE系统由美国Berkeley大学开发,是一种基于fpga的可重构硬件平台,属于较高端的仿真计算系统[3]。

RAPIDO项目由菲利普研究院主持,包含两个部分:原型系统和PC机。原型系统为含有FPGA和ARM核的处理器以及存储器的嵌入式系统,并通过PCI-to-PCI桥与PC机相连[4]。

如果一个待测试的系统已经形成了完整的机器,使用真实的应用来进行测试则是很好的方法[5],事实上,常常使用的是基准测试程序,例如SPEC CPU基准程序集。该程序集由整数程序和浮点程序组成,其性能评价的标准是程序的运行时间[6]。

国内的硬件验证平台主要分为两大类。

一类是专门面向特定款微处理器的,例如,国防科大的多核流体系结构原型验证平台,该平台基于多FPGA实现,设计了片间流优化机制,可支持多核流体系结构的互联映射[7]。又如,中国科学院计算技术研究所开发的针对高性能处理器龙芯2F的硬件验证平台,既能验证其逻辑功能,又能测试其性能指标[8]。

而另一类平台则以面向基础教学为主。例如,清华科教仪器厂出品的TEC-XP与TEC-CA,这两种系统有自己的指令系统和监控程序,能够与PC机相连,可进行联机操作和执行比较完整的程序,用户可自行设计带有流水及Cache的处理器,而该系统可对其跟踪运行[9]。另有一种FD-MCES计算机体系结构实验仪,采用FPGA为主芯片,配有实验控制电路、键盘、打印机、开关、LED等,可完成RISC计算机系统结构相关实验[10]。还有一部分教学实验平台只能对确定的处理器进行验证,指令系统不可修改[11]。

本文设计了一种基于FPGA的微体系结构验证平台,该平台由FPGA硬件验证板和上位机软件分析系统组成。其实现的功能为:可以将设计完成的微处理器下载到FPGA芯片当中,由硬件验证板构成该微处理器能够正常工作的最小系统,同时,板上拥有可简单显示处理器性能指标的光电资源;硬件验证板也可以和上位机进行通信,将该处理器工作时的性能参数传输给上位机,由运行在上位机的软件系统进行分析,从而,为微体系结构的分析研究提供依据。由于条件所限,该平台的硬件部分没有实际制作,本文通过使用现有的开发板,搭建了一个原型系统,验证了该平台的功能。

1 硬件验证板的设计

1.1 硬件平台的基本功能第3期 王宇,等:基于FPGA的微体系结构验证平台 智能计算机与应用 第3卷

硬件验证板是整个系统的基础,为微处理器的工作提供了底层平台,其逻辑框图如图1所示。该硬件平台具有的功能主要有:下载调试、基本输入/输出、串行通信、功能扩展。

图1 硬件平台的逻辑框图

Fig.1 Logical block diagram of the hardware platform

1.2 硬件平台的结构

硬件验证平台的设计以FPGA为核心,电路有:电源模块、JTAG下载调试模块、显示输出模块、基本输入模块、串行通信模块以及功能扩展接口。其平面结构如图2所示。

在整个硬件平台系统中,串行通信模块、输入模块中的去抖动单元、显示输出模块中的程序运行周期数统计单元等是在FPGA芯片上实现的,而其他部分则要通过分立元件在电路板上实现。

1.3 硬件平台的工作流程

当微处理器下载到FPGA芯片中,输入输出模块为其基本功能的验证提供了切实有效的保障,可以运行一段代码以测试处理器对IO的读写控制。输入模块中提供的微动开关可以取代时钟电路而为CPU的运行提供手动脉冲时钟信号,以实现指令的单拍运行;同时,显示输出模块的数码管会实时显示处理器内部各相关流水段寄存器的最新状态,还可以统计一段代码运行的周期数,以比较不同体系结构对于程序执行效率的影响。串行通信模块则采集了与系统性能指标相关的更多参数,并实时传送给系统计算机,供软件系统使用。功能扩展模块则为进一步的应用预留了发展空间,预留的接口可以安排SD卡读写接口、以太网接口、VGA视频接口等等,以利于对加载了操作系统后更为复杂的系统性能进行全面测试。

图2 硬件平台的平面结构图

Fig.2 Planar structure diagram of the hardware platform

2 软件评测系统的设计

2.1 软件系统的基本功能

软件系统的功能是通过JTAG接口进行FPGA下载,并读取由串行接口发送的性能指标相关数据,而且还要对其进行分析。本系统对待测处理器跟踪监测的功能除了在硬件平台上进行呈现之外,还可通过PC机软件界面显示更多的信息。在这一过程中,PC机和硬件平台通过串行接口进行实时通信,硬件平台将微处理器的各种状态参数随时发送给PC机,而在软件界面上,这些信息则将以文字和图形化的方式加以清晰显示。图3为软件平台的逻辑结构。

图3 软件平台逻辑结构图

Fig.3 Logical structure of the software platform2.2 软件系统实现的CPU性能评价

除基本功能外,软件平台还将对性能参数进行处理,以得到量化的处理器基本性能指标,如计算每一条指令的平均时钟周期数CPI:

CPI=CPU时钟周期数/IC

(1)

其中,IC为指令的条数。

计算CPI所需的参数将由FPGA传送给CPU。

同时,还可计算MIPS(每秒百万条指令数):

MIPS=时钟频率CPI×106

(2)

一定程度上,MIPS可反映系统的性能。

另外,软件平台还将统计得到Cache命中率与Cache容量的关系、与块大小的关系、与组数的关系,并以图形的方式加以绘制和实现。

该软件还可实现对流水线的跟踪分析。随着系统的单步运行,软件界面上将动态、同步显示流水线的时空图,而且还将计算出流水线的实际吞吐率,计算公式为:

其中,n为任务数,k为流水的段数,Δt为时钟周期。

此外,还可以计算流水线的加速比、流水线的效率等性能参数。

3 OpenRISC处理器的功能验证

为了对系统自身功能进行验证,还需要一款能充分利用本系统功能的微处理器。本文采用32位的开源软核处理器OpenRISC,对该处理器的指令系统、寻址方式、数据表示、寄存器结构以及5级流水线结构、具有Cache的存储系统在开发验证平台上进行跟踪测试。

OpenRISC是开放源代码的精简指令集计算机处理器,采用Verilog HDL实现了寄存器传输级描述。其性能介于ARM7和ARM9之间[12]。在对该处理器微体系结构的验证过程中,需要深入研究OpenRISC的结构、流水线及相关性设计方法,也要进一步研究Cache结构和设计方法。

3.1 OpenRISC处理器在FPGA开发板上的移植

本课题对OpenRISC开源软核处理器的源码基于现有FPGA开发平台进行了移植。该开发板采用Altera公司的型号为EP4CE17C8N的FPGA,外设配备了数码管、微动开关、LED发光二极管、RS232接口,JTAG接口等,可以基本满足移植测试需要。移植的具体工作包括:构建了适合OpenRISC开源软核处理器指令运行的RAM模块,构建了系统时钟及系统复位模块,使用Verilog硬件描述语言编写顶层模块,将CPU、总线、GPIO、串行通信接口等主要功能模块进行了组合并且针对现有的FPGA开发平台进行了配置与改造,如图4所示。

OpenRISC开源软核处理器的移植结果可以通过一个简单的C语言程序实例在OpenRISC处理器上运行来验证。该C语言程序的实现功能为,控制开发板上的LED,与上位机进行串行通信,同时发送一组数据。经验证,该示例程序可有效控制开发板上的资源并正确实现了与系统计算机之间的串行接口的通信,从而证实了OpenRISC在本开发板上的成功移植。

图4 FPG上系统结构图

Fig.4 Structure of Soc based on FPGA

3.2 基于Ubuntu系统的OpenRISC汇编指令程序的交叉编译环境的搭建与应用

作为一种嵌入式处理器,在开源软核处理器OpenRISC上运行的程序需要在PC机环境下进行交叉编译。该部分工作主要是在Ubuntu系统下进行了交叉编译环境的搭建,同时,编写Makefile设定编译、连接、转换等流程,最后,还要将编译得到的机器码转换成可以在OpenRISC的RAM中运行的mif文件。同时,对开源软核处理器OpenRISC的指令集进行了研究,编写了可以在开发板上运行的OR1200汇编语言指令程序,实现了OpenRISC处理器通过GPIO对开发板上资源的读写控制操作,为下一步处理器的性能评测奠定了良好基础。

3.3 在FPGA开发板平台上对开源软核处理器OpenRISC的汇编指令实现跟踪

使用Verilog硬件描述语言对汇编指令单步跟踪模块进行了设计,实现了通过微动开关控制OpenRISC汇编指令的单步运行。同时,通过对指令计数模块的编写,可以实现对程序运行周期数的统计,从而为验证微处理的指令流水的执行效率提供了基础准备。目前,对汇编语言指令运行周期数的统计是通过数码管模块实现并显示的。在进一步的工作中,这一显示也可通过串口通信传送到系统计算机,最终在系统计算机界面上显示出该数据。此处运行的是用于单步跟踪的汇编程序,其具体功能是将一个数据通过开发板上的LED进行输出显现。

3.4 编写串行通信程序,实现OpenRISC与系统计算机的通信

本串行接口通信程序的基本功能是实现了待测试微处理器与上位机之间的通信。借助这一通道,硬件平台上待测试微处理器内部各寄存器中每一时刻所存储的内容都可以实时地传送至上位机,便于上位机对这些数据实行进一步的分析。同时,传送的数据也可以是存储器内某一存储单元或某一存储区域的数据;也还可以传送Cache中存储的数据等