当前位置: 首页 > 专利查询>清华大学专利>正文

结构无关的微处理器验证及评测方法技术

技术编号:2859796 阅读:250 留言:0更新日期:2012-04-11 18:40
结构无关的微处理器验证及评测方法(简称为THUMPSim)属于微处理器芯片验证与评测技术领域。它是以面向部件的结构无关的体系结构定义方法描述所要模拟的微处理器,并以事件驱动式的信号更新算法进行模拟驱动的一种与体系结构无关的微处理器的模拟与验证方法。该发明专利技术在保证较高模拟性能的同时,尽可能地最大化软件模拟器可配置、可复用的能力,为微处理器的体系结构定义提供标准化的统一接口,使模拟器做到与微处理器结构无关,从而具有最大的移植能力。

【技术实现步骤摘要】

(THUMPSim)属于微处理器验证与评测

技术介绍
在微处理器体系结构的设计与实现技术中,时钟级信号精确的软件模拟器具有十分重要的研究价值和实际意义,它在体系结构设计的验证,性能评价和软硬件协同开发等方面都起着至关重要的作用。在微处理器的设计流程中,体系结构设计工作完成之后,首先要做的就是验证设计的逻辑正确性,也就是说要检查这种体系结构在各种情况下是否都能够正常运行而不出现问题,进一步还要评测设计是否达到了各项技术性能指标。这些验证评测工作在过去都是依靠微处理器设计人员编写出相应的RTL级(寄存器传输级)硬件描述代码(简称RTL代码),再利用EDA软件工具或者FPGA进行仿真来完成的。这样的方式,一方面需要等待开发人员编写出RTL代码,而对于微处理器这种规模巨大、结构复杂的硬件设计,这一过程一般来说是相当漫长的,而体系结构的逻辑验证并不需要关心RLT代码涉及到的很多底层电路细节;另一方面,RTL代码本身的编写和调试复杂性也会给验证评测工作造成不利影响,而且各种RTL代码仿真器的模拟速度相当缓慢,用FPGA搭建仿真系统则费时费力,都不适合在短期内进行大量的测试工作。我们知道,对于微处理器设计这样的项目来说,如何尽早地发现结构设计上的问题和不足并加以改正和改进是相当关键的,问题发现的越早,改正的成本也就越少,如果到了设计的末期还要对体系结构这样的上层设计进行错误修改的话,将是非常影响研发进度的。因此,只依靠原来对RTL代码的EDA软件仿真或者FPGA仿真的方法,是不能够很好地满足微处理器设计验证需要的。为了满足这种微处理器设计验证的需求,人们提出了软件模拟器的方案,即用软件的方法来摸拟体系结构的运行细节,从而进行验证和评测。它的设计思想就是,在微处理器设计验证的初期,利用软件快速开发、易于修改的特点,用软件模拟的方法来快速验证微处理器体系结构设计,在第一时刻发现设计错误和不足,为体系结构修改提供依据,最大限度地保证微处理器设计流程顺利进行。相对于RTL代码仿真来说,这种软件模拟器不关心过多的底层电路细节,只关心体系结构本身逻辑层面的正确性和性能,因此在模拟速度上要比RTL代码的EDA软件仿真快得多,也比FPGA仿真易于实现,非常适合作为体系结构早期快速验证的工具。而且,这种软件模拟器还能够帮助进行软硬件协同开发。由于软件模拟器所反映的体系结构是和硬件设计相一致的,所以可以将软件模拟器作为微处理器配套软件的开发测试平台。由此,在结构设计刚刚完成时就可以对编译器、操作系统甚至应用程序等配套软件进行开发测试,而无须等到微处理器流片完毕。通过对软件在模拟器上运行的正确性测试和性能评测,可以发现软硬件的错误,还可以为软硬件设计的改进提供依据,从而真正做到软硬件的协同设计和协同验证。由此可见,在微处理器设计中,软件模拟器占有非常重要的地位。但是,现有的此类模拟器还比较少,并且存在着4大类的缺点1,有的模拟器只模拟了微处理器体系结构的高层行为,体现不出体系结构的所有细节。而对于软件模拟器来说,要对整个的体系结构设计进行完整的验证和评测,就必须模拟和再现特定微处理器体系结构逻辑设计中的所有细节。2,有的模拟器虽然体现出了体系结构的所有细节,但是由于要模拟的细节非常多,而模拟算法本身设计的不够优化,导致模拟速度较慢,使得验证评测工作不能够快速地进行,失去了软件模拟器的意义。3,有的模拟器兼顾到了体系结构细节和模拟速度的要求,但却使得模拟器本身结构复杂,模块化低,编程工作量大且调试不方便,不适合多人协同开发。而且为了适应硬件设计的更改,模拟器往往需要多次的改动,而复杂的软件结构也会给模拟器编程人员造成很大的困难。4,还有的模拟器在可移植性方面考虑得较少,这样的模拟器大多采用按照体系结构制定模拟器软件结构的实现方案,模拟器本身的代码和体系结构定义代码之间结合紧密,要模拟另一种体系结构,模拟器就要从头再编,做不到代码复用。因此,如何把模拟层次、模拟速度、模块化和可移植性这几个方面结合在一起考虑,使得软件模拟器具有精确模拟、快速开发、快速修改、快速模拟和快速移植等特性,就成为了软件模拟器研究领域中的关键问题。
技术实现思路
本专利技术就是针对当前微处理器软件模拟器研究中的这一问题,提出了体系结构无关的微处理器模拟验证及评测方法(简称THUMPSim)。THUMPSim模拟的微处理器内部信号、部件都和硬件设计有着精确的一一对应关系,能够模拟出微处理器各个时钟周期中每个部件的动作、每个信号的变化情况,所以可以验证和评测微处理器体系结构逻辑层面的所有细节。同时THUMPSim将整个模拟系统划分成模拟平台和体系结构定义两个独立部分,从而将模拟器公共代码和微处理器体系结构定义分开,并且采用面向部件、与结构无关的体系结构定义框架,做到了高可移植性,保证了模拟器具有很好的模块化,具有易于开发、易于修改、易于调试的特点。而THUMPSim中的事件驱动式信号更新算法则保证了它具有较高的执行性能,能够满足微处理器结构设计验证的需求。THUMPSim是以面向部件的结构无关体系结构定义方法描述所要模拟的微处理器,并以事件驱动式的信号更新算法进行系统模拟驱动的一种与体系结构无关的微处理器的模拟与验证方法。系统从微处理器体系结构设计验证和评测的需求出发,实现了快速、精确的微处理器体系结构模拟,为体系结构设计提供快速验证和性能评价,并为软硬件协同开发提供平台。其主要的创新点在于1.将模拟平台划分成模拟平台和体系结构定义两个独立部分,将模拟器公共代码和微处理器体系结构定义分开,提高了可移植性。2.采用面向部件、结构无关的体系结构定义方法,给出微处理器部件的统一定义格式,采用预编译的方法,只要给出部件的接口和逻辑定义,程序框架就可在预处理的过程中自动给出对应该部件的C++代码。3.部件的定义格式与高级硬件描述语言的格式非常相似,便于从模拟器到RTL级硬件描述代码的转化。4.提出了事件驱动式的信号更新算法,在减少编程复杂性的同时有效地提高了执行效率和可靠性。5.具有完善的执行过程记录和统计功能,以此作为参照,可以对RTL代码进行对比验证,还可以评测处理器性能,为改进处理器设计提供依据。6.支持完善的调试功能,能够设置断点、修改处理器内部的数据和信号,既能够对微处理器结构设计进行调试,又能够对微处理器上运行的程序进行调试。7.提供了部分微处理器外围部件的行为模拟,使模拟器可以作为系统级的模拟器,加载操作系统,提供与硬件系统环境完全一致的软件开发环境。本专利技术的特征在于它依次含有以下步骤 第1步在微处理器设计中设定模拟平台模块组件,它含有总控模块,它通过调用下述其他模块控制本专利技术所述的结构无关的微处理器验证及评测即THUMPSim模拟器系统的行为,其中含有下述两种算法部件分组算法,它自动一次确定微处理器内各个部件之间的先后关系,依次含有以下步骤第a1步将所有部件的所属组号都初始化为0;第a2步将所有的悬空信号和锁存器信号都加入到中止信号列表中;第a3步当前组号CurrentGroup初始化为0;第a4步在部件中遍历查找所有组号等于CurrentGroup的部件,如果没有找到,则算法结束;否则,对找到的每一个部件,如果该部件的输入信号不全在中止信号列表中本文档来自技高网
...

【技术保护点】
结构无关的微处理器验证及评测方法,其特征在于,它依次含有以下步骤:第1步:在微处理器设计中设定:模拟平台模块组件,它含有:总控模块,它通过调用下述其他模块控制本专利技术所述的结构无关的微处理器验证及评测即THUMPSim 模拟器系统的行为,其中含有下述两种算法:部件分组算法,它自动一次确定微处理器内各个部件之间的先后关系,依次含有以下步骤:第a1步:将所有部件的所属组号都初始化为0;第a2步:将所有的悬空信号和锁存器信号都加入到中止信 号列表中;第a3步:当前组号CurrentGroup初始化为0;第a4步:在部件中遍历查找所有组号等于CurrentGroup的部件,如果没有找到,则算法结束;否则,对找到的每一个部件,如果该部件的输入信号不全在中止信号列表 中,则将其所属组号加1;第a5步:在部件中遍历查找所有组号等于CurrentGroup的部件,如果没有找到,则算法结束;否则,将找到的每一个部件的输出信号都加入到中止信号列表中;第a6步:当前组号CurrentGroup加1 ,转至第a4步继续执行。事件驱动式信号更新算法,它在每一个微处理器时钟周期内执行一次,以模拟待验证、评测的微处理器的一个周期内的行为,它依次含有以下步骤:第b1步:清空待执行的部件列表;第b2步:遍历所有信号,如果发 现在上个时钟周期中某个锁存器信号值发生了改变,则将其影响到的部件(即以此信号为输入信号的部件)加入待执行部件列表中;第b3步:当前组号CurrentGroup初始化为0;第b4步:查找待执行部件列表中组号为当前组号的部件,如 果没有找到,则转至b7步;第b5步:若找到,则模拟执行该部件,检查其输出信号的变化情况,将发生变化的输出信号影响到的部件加入待执行部件列表;第b6步:将该部件移出待执行部件列表,转至b4步;第b7步:当前组号Curr entGroup加1,如果CurrentGroup小于或等于最大组号,则转至b4步;第b8步:更新锁存器信号,算法结束;待验证和评测微处理器部件定义的预处理模块,它把部件定义转换成C++代码;程序或指令流的加载模块, 它把要执行的程序或者指令流载入到上述模拟器中;外围接口部件模块,它为程序框架提供虚拟外设接口; 交互显示界面模块;处理器体系结...

【技术特征摘要】
1.结构无关的微处理器验证及评测方法,其特征在于,它依次含有以下步骤第1步在微处理器设计中设定模拟平台模块组件,它含有总控模块,它通过调用下述其他模块控制本发明所述的结构无关的微处理器验证及评测即THUMPSim模拟器系统的行为,其中含有下述两种算法部件分组算法,它自动一次确定微处理器内各个部件之间的先后关系,依次含有以下步骤第a1步将所有部件的所属组号都初始化为0;第a2步将所有的悬空信号和锁存器信号都加入到中止信号列表中;第a3步当前组号CurrentGroup初始化为0;第a4步在部件中遍历查找所有组号等于CurrentGroup的部件,如果没有找到,则算法结束;否则,对找到的每一个部件,如果该部件的输入信号不全在中止信号列表中,则将其所属组号加1;第a5步在部件中遍历查找所有组号等于CurrentGroup的部件,如果没有找到,则算法结束;否则,将找到的每一个部件的输出信号都加入到中止信号列表中;第a6步当前组号CurrentGroup加1,转至第a4步继续执行。事件驱动式信号更新算法,它在每一个微处理器时钟周期内执行一次,以模拟待验证、评测的微处理器的一个周期内的行为,它依次含有以下步骤第b1步清空待执行的部件列表;第b2步遍历所有信号,如果发现在上个时钟周期中某个锁存器信号值发生了改变,则将其影响到的部件(即以此信号为输入信号的部件)加入待执行部件列表中;第b3步当前组号CurrentGroup初始化为0;第b4步查找待执行部件列表中组号为当前组号的部件,如果没有找到,则转至b7步;第b5步若找到,则模拟执行该部件,检查其输出信号的变化情况,将发生变化的输出信号影响到的部件加入待执行部件列表;第b6步将该部件移出待执行部件列表,转至b4步;第b7步当前组号CurrentGroup加1,如果CurrentGroup小于或等于最大组号,则转至b4步;第b8步更新锁存器信号,算法结束;待验证和评测微处理器部件定义的预处理模块,它把部件定义转换成C++代码;程序或指令流的加载模块,它把要执...

【专利技术属性】
技术研发人员:张悠慧顾瑜李鹏汪东升王琦郭松柳
申请(专利权)人:清华大学
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1