基于fpga开发板的全系统模拟加速方法

文档序号:6341400阅读:312来源:国知局
专利名称:基于fpga开发板的全系统模拟加速方法
技术领域
本发明涉及计算机体系结构技术领域,特别涉及一种基于FPGA开发板的全系统 模拟加速方法。
背景技术
在计算机体系结构的研究过程中,一个关键的环节就是通过模拟来验证设计的正 确性、评估体系结构的性能。然而近年来,中央处理器(Central Processing Unit,CPU)的 主要改进方向由原先的主频提升转变为核的数量的增加。对于模拟器的研究,这个发展方 向带来的一个重要的问题就是进行全系统模拟的复杂度也会随之大幅增加。软件模拟的效 率主要取决于宿主机的主频。在如今的多核时代,软件模拟时,宿主机多核的优势难以得到 利用,而被模拟的多核处理器将成倍地提升模拟的复杂度。所以尽管可用作软件模拟宿主 机的性能也在提高,但与需要处理的这个问题的复杂度的提高不是一个级别的。现场可编程门阵列(Field-Programmable Gate Array, FPGA)是一种可编程的硬 件,它在CPU的设计阶段发挥着重要的作用。近年来FPGA在集成度方面的发展速度一直没 有落后于CPU,在intel等CPU厂商开始普及45nm技术之后的一年左右时间,Altera也已 经推出了 40nm WMratix IV。使用FPGA进行指令集模拟的思路,是使用硬件描述语言对 模拟器进行实现,经编译综合后形成逻辑门和触发器的排列烧入FPGA上工作。利用硬件进 行模拟,可以大幅提高模拟器的并行度,模拟效率也远高于使用软件模拟的效果。但单纯使 用硬件进行处理器的模拟也有着几个致命的问题硬件编程的开发周期长、编程调试难度 高,同时还存在着灵活性和适用性低下的问题。

发明内容
(一 )要解决的技术问题本发明要解决的技术问题是如何减短硬件编程的开发周期,降低编程调试难度, 提高编程灵活性和适用性。( 二 )技术方案为解决上述技术问题,本发明提供了一种基于FPGA开发板的全系统模拟加速方 法,包括以下步骤Sl 对现场可编程门阵列FPGA开发板上的待模拟体系结构的指令集中的所有指 令按实现难度和在所述指令集中出现的频率进行分类;S2 对分类后的指令分别以不同的方式进行模拟。其中,步骤Sl具体为若所述频率大于第一预设频率且指令所在的硬件逻辑段能够在预定时间内实现, 则分为第一类指令;若满足以下两个条件之一,则分为第二类指令条件一所述指令所在 的硬件逻辑段不能在预定时间内实现,但可由预定条数的通用指令实现,条件二所述频率 小于或等于第一预设频率,但大于第二预设频率;若所述频率小于或等于第二预设频率,或所述指令所在的硬件逻辑段不能由预定条数的通用指令实现,则分为第三类指令。其中,步骤S2具体为首先判断指令的类型,若判断所述指令属于第一类指令,则在FPGA开发板上通 过门电路实现;若判断所述指令属于第二类指令或第三类指令,则将所述指令发送至所述 FPGA开发板上的软核,并暂停模拟流水线,所述软核接收到当前指令后,对所述指令进行判 断,若判断所述指令属于第二类指令,则在所述软核上完成处理后,将处理的结果提交至模 拟流水线后,再继续模拟流水线,若判断所述指令属于第三类指令,所述软核将所述指令发 送至所述FPGA开发板与宿主机间的通信接口,所述宿主机对所述指令进行处理,将处理的 结果提交至模拟流水线后,再继续模拟流水线,所述模拟流水线是所述FPGA开发板中模拟 单元用于处理指令的处理子单元,所述模拟单元包括模拟流水线和用于控制转发所述模拟 流水线的处理结果的控制转发子单元。其中,步骤S2中,根据待模拟体系结构的处理核心数量,在所述FPGA开发板上实 现多个模拟单元的副本。其中,步骤S2中,在判断指令的类型之前还包括对指令进行解码的步骤。(三)有益效果本发明针对不同指令类型利用不同的方式分别进行模拟,减短了硬件编程的开发 周期,降低了编程调试难度,提高了编程灵活性和适用性。


图1是按照本发明一种实施方式的基于FPGA开发板的全系统模拟加速方法的流 程图。
具体实施例方式下面结合附图和实施例,对本发明的具体实施方式
作进一步详细描述。以下实施 例用于说明本发明,但不用来限制本发明的范围。本实施方式中,基于FPGA开发板的全系统模拟加速方法所采用的设备包括一台 具有通信接口(例如PCI-E)的计算机,一块具备相同接口,具备片上软核实现能力的FPGA 开发板,所述宿主机完成全系统模拟过程中外设与复杂指令的模拟。宿主机上存放待模拟 待模拟体系结构的镜像,并负责模拟过程的启动,随后绝大多数的指令会在FPGA开发板上 实现,其中大部分指令会在FPGA上的逻辑电路中实现,少数指令会在FPGA开发板上的软核 内实现。对于FPGA上无法实现的指令,例如访问外存储器以及外设等指令,将通过通信接 口发到宿主机上,宿主机上的监听程序识别到该请求后会完成该指令的模拟,并通过通信 接口返回该指令的模拟结果。利用FPGA片上资源的高并发度可以十分高效地模拟大部分目标系统的指令,但 对于部分很少出现指令,例如I/O指令,在使用硬件模拟这类指令是一个十分复杂的操作, 按照本实施方式可以在基本不影响性能的情况下可大幅减少模拟系统的开发成本,同时可 以获得很好的系统灵活性。图1是按照本发明一种实施方式的基于FPGA开发板的全系统模拟加速方法的流 程图,包括以下步骤
Sl 对现场可编程门阵列FPGA开发板上的待模拟体系结构的指令集中的所有指 令按实现难度和在所述指令集中出现的频率进行分类;S2 对分类后的指令分别以不同的方式进行模拟。步骤Sl具体为若所述频率大于第一预设频率(本实施方式中,第一预设频率为)且指令所 在的硬件逻辑段能够在预定时间(本实施方式中在Altera Stratix II上运行,预定时间 为20ns)内实现,则分为第一类指令;若满足以下两个条件之一,则分为第二类指令条件 一所述指令所在的硬件逻辑段不能在预定时间内实现,但可由预定条数(本实施方式中, 预定条数为100条)的通用指令实现,条件二 所述频率小于或等于第一预设频率,但大于 第二预设频率(本实施方式中,第二预设频率为0.01%);若所述频率小于或等于第二预设 频率,或所述指令所在的硬件逻辑段不能由预定条数的通用指令实现,则分为第三类指令。步骤S2具体为首先判断指令的类型,若判断所述指令属于第一类指令,则在FPGA开发板上通 过门电路实现;若判断所述指令属于第二类指令或第三类指令,则将所述指令发送至所述 FPGA开发板上的软核,并暂停模拟流水线,所述软核接收到当前指令后,对所述指令进行判 断,若判断所述指令属于第二类指令,则在所述软核上完成处理后,将处理的结果提交至模 拟流水线后,再继续模拟流水线,若判断所述指令属于第三类指令,所述软核将所述指令发 送至所述FPGA开发板与宿主机间的通信接口,所述宿主机对所述指令进行处理,将处理的 结果提交至模拟流水线后,再继续模拟流水线,所述模拟流水线是所述FPGA开发板中模拟 单元用于处理指令的处理子单元,所述模拟单元包括模拟流水线和用于控制转发所述模拟 流水线的处理结果的控制转发子单元。步骤S2前,根据待模拟体系结构的处理核心数量,在所述FPGA开发板上实现多个 模拟单元的副本。步骤S2中,在判断指令的类型之前还包括对指令进行解码的步骤。实施例1本实施方式在一台具有通信接口(例如PCI-E)的计算机,一块具备相同接口,具 备片上软核实现能力的FPGA开发板设备上进行模拟。最终的模拟方案能够在30Mhz上模拟常用指令,即不考虑非常用指令时该模拟器 的性能为30MIPS ;非常用指令在程序中出现的概率为0. 0001 ;一条非常用指令在软核上平均需要1000条指令能够实现;片上软核的执行效率为250MIPS。经测试,该实施方式的执行效率为29. 6472MIPS,相当于不考虑非常用指令时性能 的98. 82%。该数据说明,含有非常用指令的程序对本实施方式的执行效率的影响十分有 限。以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通 技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有 等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
权利要求
1.一种基于FPGA开发板的全系统模拟加速方法,其特征在于,包括以下步骤51对现场可编程门阵列FPGA开发板上的待模拟体系结构的指令集中的所有指令按 实现难度和在所述指令集中出现的频率进行分类;52对分类后的指令分别以不同的方式进行模拟。
2.如权利要求1所述的基于FPGA开发板的全系统模拟加速方法,其特征在于,步骤Sl 具体为若所述频率大于第一预设频率且指令所在的硬件逻辑段能够在预定时间内实现,则分 为第一类指令;若满足以下两个条件之一,则分为第二类指令条件一所述指令所在的硬 件逻辑段不能在预定时间内实现,但可由预定条数的通用指令实现,条件二 所述频率小于 或等于第一预设频率,但大于第二预设频率;若所述频率小于或等于第二预设频率,或所述 指令所在的硬件逻辑段不能由预定条数的通用指令实现,则分为第三类指令。
3.如权利要求2所述的基于FPGA开发板的全系统模拟加速方法,其特征在于,步骤S2 具体为首先判断指令的类型,若判断所述指令属于第一类指令,则在FPGA开发板上通过门电 路实现;若判断所述指令属于第二类指令或第三类指令,则将所述指令发送至所述FPGA开 发板上的软核,并暂停模拟流水线,所述软核接收到当前指令后,对所述指令进行判断,若 判断所述指令属于第二类指令,则在所述软核上完成处理后,将处理的结果提交至模拟流 水线后,再继续模拟流水线,若判断所述指令属于第三类指令,所述软核将所述指令发送至 所述FPGA开发板与宿主机间的通信接口,所述宿主机对所述指令进行处理,将处理的结果 提交至模拟流水线后,再继续模拟流水线,所述模拟流水线是所述FPGA开发板中模拟单元 用于处理指令的处理子单元,所述模拟单元包括模拟流水线和用于控制转发所述模拟流水 线的处理结果的控制转发子单元。
4.如权利要求3所述的基于FPGA开发板的全系统模拟加速方法,其特征在于,步骤 S2中,根据待模拟体系结构的处理核心数量,在所述FPGA开发板上实现多个模拟单元的副 本。
5.如权利要求3所述的基于FPGA开发板的全系统模拟加速方法,其特征在于,步骤S2 中,在判断指令的类型之前还包括对指令进行解码的步骤。
全文摘要
本发明公开了一种基于FPGA开发板的全系统模拟加速方法,其包括以下步骤S1对现场可编程门阵列FPGA开发板上的待模拟体系结构的指令集中所有指令按实现难度和在所述指令集中出现的频率进行分类;S2对分类后的指令分别以不同的方式进行模拟;本发明针对不同指令类型利用不同的方式分别进行模拟,减短了硬件编程的开发周期,降低了编程调试难度,提高了编程灵活性和适用性。
文档编号G06F17/50GK102073763SQ201010624028
公开日2011年5月25日 申请日期2010年12月31日 优先权日2010年12月31日
发明者张悠慧, 苏格林, 郑纬民, 钱自强 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1