基于宏指令队列的cpu访存序列仿真模型的制作方法

文档序号:6379939阅读:167来源:国知局
专利名称:基于宏指令队列的cpu访存序列仿真模型的制作方法
技术领域
本发明涉及计算技术领域,更具体地说,本发明涉及一种基于宏指令队列的CPU访存序列仿真模型。
背景技术
随着半导体制造工艺的飞速发展,单核处理器的主频已经逐渐逼近极限,为了进一步提高处理器的运算速度,人们将多个处理器核集 成在一个芯片上形成片上多处理器(Chip Multi 一 Processor, CMP)。在CMP中,多个处理器核心对单一内存空间的共享使得处理器和主存储器之间的速度差距的矛盾更加突出,因此CMP设计必须采用多级高速缓存(Cache),通过层次化的存储结构来缓解这一矛盾。CMP系统必须解决由此而引发的Cache —致性问题以及一致性验证问题。Cache—致性协议作为多核处理器中的重要组成部分,直接影响到多核处理器的正确性设计和性能,Cache 一致性协议验证技术成为多核处理器设计验证阶段的关键技术
之一 O一致性协议的验证,需要有一个CPU模型来仿真CPU的访存行为,而真实的CPU模型是非常复杂的。所以,希望提供一种在进行对一致性协议验证时能够简化真实CPU模型的CPU访存序列仿真模型。

发明内容
本发明所要解决的技术问题是针对现有技术中存在上述缺陷,提供一种在进行对一致性协议验证时能够简化真实CPU模型的基于宏指令队列的CPU访存序列仿真模型。根据本发明,提供了一种基于宏指令队列的CPU访存序列仿真模型,其包括指令缓冲模块,其包括与CPU内部的Cache不命中请求悬挂缓冲个数数量相同的多个指令缓冲,发出的指令利用冗余域携带有所在指令缓冲的缓冲号,以便根据响应原样返回的该指令缓冲号进行正确性检查;二级Cache和淘汰缓冲模块,用于模拟二级Cache和淘汰缓冲的操作,并对二次请求和响应的合法性进行检查;二次请求处理模块,用于模拟对二次请求的处理功能,接收二次请求,并返回相应类型的应答;流控模块,用于模拟一次请求队列和响应队列的流控功能;指令调度模块,用于从多个指令缓冲中调度一个指令执行;指令译码模块,用于执行指令缓冲指令格式到CPU和一致性协议硬件之间的逻辑接口的格式包的转换。优选地,每个指令缓冲中加载一组指令序列,指令缓冲模块中所填写的指令顺序要满足CPU的真实行为规则。优选地,每个指令缓冲中加载一组地址有相关性的指令序列,同一指令缓冲内的指令被串行发射,只有前一指令收到响应后才发射后一指令。优选地,指令缓冲模块的各个指令缓冲中的指令可以循环发送。
优选地,不同指令缓冲的指令没有地址相关性,并行发射。优选地,测试激励被配置成随机测试激励或焦点专项测试激励。优选地,流控模块用于进行控制,使得当只有一个一次请求的响应返回时,有地址相关性的下一个一次请求才能从CPU发出。优选地,流控模块用于进行控制,使得如果一致性协议硬件逻辑中的一次请求队列没有空间了,CPU指令不能发射。优选地,流控模块用于进行控制,使得如果CPU内部的响应队列没有空间,则一致性协议硬件逻辑中的响应无法返回,对应的一次请求也无法完成处理。优选地,可以将二次请求处理和响应卸载的延时配置成固定值或随机值,以模拟不同的阻塞情况。
由此,本发明提供一种在进行对一致性协议验证时能够简化真实CPU模型的基于宏指令队列的CPU访存序列仿真模型。


结合附图,并通过参考下面的详细描述,将会更容易地对本发明有更完整的理解并且更容易地理解其伴随的优点和特征,其中图I示意性地示出了根据本发明实施例的基于宏指令队列的CPU访存序列仿真模型。需要说明的是,附图用于说明本发明,而非限制本发明。
具体实施例方式为了使本发明的内容更加清楚和易懂,下面结合具体实施例和附图对本发明的内容进行详细描述。在进行对一致性协议验证时,本发明实施例构建了一个基于宏指令队列的CPU简化模型,来仿真CPU的访存行为。本模型中设置了多个指令缓冲,缓冲内可根据测试需求填写访存的一次请求序列,多个指令缓冲间的指令序列可随机或按照指定顺序进行发射。整个模型构建较为简单,人工编写指令序列控制激励,即可进行专向焦点测试,也可进行随机测试。并且,该模型仅模拟与一致性协议相关的CPU指令激励,相对真实CPU模型,模型简单,全软件编写更加有较好的可操控性,能较好地测试到一致性协议的各种极端情况。具体地说,图I示意性地示出了根据本发明实施例的通过软件实现的基于宏指令队列的CPU访存序列仿真模型MODELl。该CPU访存序列仿真模型MODELl的主体是多个指令缓冲,验证者可根据测试需求填写不同的CPU指令序列,其中所填写的指令顺序要满足CPU的真实行为规则,多个指令缓冲间的指令序列可通过指令调度随机或按照指定顺序进行发射。一般而言,CPU和一致性协议硬件逻辑有四种不同虚通道的包交互一次请求、一次请求的响应、二次请求、以及二次请求的应答。为了真实的模拟CPU指令的发射情况,CPU访存序列仿真模型MODELl不仅要模拟真实的一致性请求的发射,还需要模拟CPU中与一致性处理部件相关的一致性功能,由此可与一致性协议硬件模块Hl共同完成对一致性协议的完整处理流程。更具体地说,如图I所示,根据本发明实施例的基于宏指令队列的CPU访存序列仿真模型MODELl包括指令缓冲模块包括与CPU内部的Cache不命中请求悬挂缓冲个数数量相同的指令缓冲;具体地说,若CPU内部的Cache不命中请求悬挂缓冲个数为n,则指令缓冲数相应可设置为η个(第一指令缓冲I、第二指令缓冲2、…第η指令缓冲η);并且,每个指令缓冲中可加载一组地址相关的指令序列,不同缓冲的指令之间不存在任何地址相关关系,可以并行发射;指令在指令缓冲间随机调度发射,或按照指定顺序进行发射。每个指令缓冲内的指令处理完全串行发射,即前一个指令的响应回来后再发下一个指令。指令缓冲间指令并行执行。每个指令缓冲都可循环发送。发出的指令利用冗余域携带有所在指令缓冲的缓冲号,响应回来时也会携带该指令缓冲号(即,请求及其响应携带相同的缓冲号),以此来进行
正确性检查。并且,指令缓冲模块中所填写的指令顺序要满足CPU的真实行为规则。二级Cache和淘汰缓冲模块Ml :用于模拟二级Cache和淘汰缓冲的操作,并对二次请求和响应的合法性进行检查;具体地说,某些CPU指令会引起二级Cache和淘汰缓冲的动作,因此需要模拟相关功能,并对二次请求和响应的合法性进行检查。二次请求处理模块M2 :对于某些一次请求,一致性协议会生成二次请求发往CPU,CPU应返回应答,该模块模拟了对二次请求的处理功能,接收二次请求,并返回相应类型的应答,使得一致性处理得以完整的进行。流控模块M3 :模拟了一次请求队列和响应队列的流控功能;具体地说,例如,流控模块M3进行控制,使得当只有一个响应返回时,对相同地址的下一个指令才能从CPU发出,因此指令缓冲中的指令是否能发射受到尚未处理完毕的请求地址的限制;此外,流控模块M3进行控制,使得如果一致性协议硬件逻辑Hl中的一次请求队列没有空间了,CPU指令不能发射;而且,流控模块M3进行控制,使得如果CPU内部的响应队列没有空间,则一致性协议硬件逻辑Hl中的响应无法返回,对应的一次请求也无法完成处理。指令调度模块M4 随机或按照指定顺序从多个指令缓冲中调度一个指令执行;如上所述,同一指令缓冲中的指令为地址相关的指令,完全为串行执行,只有前一指令收到响应后才执行后一指令,不同指令缓冲间的指令并行执行。指令译码模块M5 :由于指令缓冲中填写的是CPU指令,而一致性协议硬件逻辑处理的是一致性协议包,该模块负责完成指令缓冲指令格式到CPU和一致性协议硬件之间的逻辑接口的格式包的转换,生成一致性协议硬件逻辑可以处理的一次请求包。由此,在根据本发明实施例的基于宏指令队列的CPU访存序列仿真模型MODELl中,二次请求处理模块M2 二次请求处理和响应卸载的延时可灵活配置成固定值也可配置成随机值,以模拟不同的阻塞情况,由此可实现多种阻塞情况测试。而且,在根据本发明实施例的基于宏指令队列的CPU访存序列仿真模型MODELl中,测试激励可配置成随机测试激励和焦点专项测试激励两种模式;I.随机测试激励每个指令缓冲中填写的是随机的激励,具体地说是相对的“随机”,即填写的指令顺序要满足CPU的真实行为规则和指令缓冲的填写要求,指令的某些参数可以随机生成,指令调度设置成随机从不同指令缓冲中调度指令,这样每次改变填写的指令或者改变随机模式都可以得到一组不同的CPU随机激励;
2.焦点专项测试激励针对硬件逻辑的某些功能点,向指令缓冲中填写特定序列或特定地址的指令序列,指定指令调度的顺序,生成验证者所需的特定指令流。根据本发明实施例的基于宏指令队列的CPU访存序列仿真模型MODELl可以方便的配置成单CPU或多CPU的测试环境。根据本发明实施例的基于宏指令队列的CPU访存序列仿真模型MODELl简单可控,具体地说,在验证之初验证者需要填写好指令缓冲中的内容,并指定调度模式等配置参数后,模型会自动生成所需的指令流,发往一致性协议硬件逻辑Hl进行处理,在指令流处理过程中如有行为与预期不一致之处(如某个响应返回的指令缓冲号和对应请求指令所在的指令缓冲号不一致)可以自动报错停止检查现场,否则可以在指令流结束后检查结果,整个验证过程不需要更多的人为干预。由此,如上所述,本发明上述实施例提供一种在进行对一致性协议验证时能够简化真实CPU模型的基于宏指令队列的CPU访存序列仿真模型。 此外,需要说明的是,除非特别指出,否则说明书中的术语“第一”、“第二”、“第三”等描述仅仅用于区分说明书中的各个组件、元素、步骤等,而不是用于表示各个组件、元素、步骤之间的逻辑关系或者顺序关系等。可以理解的是,虽然本发明已以较佳实施例披露如上,然而上述实施例并非用以限定本发明。对于任何熟悉本领域的技术人员而言,在不脱离本发明技术方案范围情况下,都可利用上述揭示的技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
权利要求
1.一种基于宏指令队列的CPU访存序列仿真模型,其特征在于包括 指令缓冲模块,其包括与CPU内部的Cache不命中请求悬挂缓冲个数数量相同的多个指令缓冲,发出的指令利用冗余域携带有所在指令缓冲的缓冲号,以便根据响应原样返回的该指令缓冲号进行正确性检查; 二级Cache和淘汰缓冲模块,用于模拟二级Cache和淘汰缓冲的操作,并对二次请求和响应的合法性进行检查; 二次请求处理模块,用于模拟对二次请求的处理功能,接收二次请求,并返回相应类型的应答; 流控模块,用于模拟一次请求队列和响应队列的流控功能; 指令调度模块,用于从多个指令缓冲中调度一个指令执行; 指令译码模块,用于执行指令缓冲指令格式到CPU和一致性协议硬件之间的逻辑接口的格式包的转换。
2.根据权利要求1所述的基于宏指令队列的CPU访存序列仿真模型,其特征在于,每个指令缓冲中加载一组指令序列,指令缓冲模块中所填写的指令顺序要满足CPU的真实行为规则。
3.根据权利要求1或2所述的基于宏指令队列的CPU访存序列仿真模型,其特征在于,每个指令缓冲中加载一组地址有相关性的指令序列,同一指令缓冲内的指令被串行发射,只有前一指令收到响应后才发射后一指令。
4.根据权利要求1或2所述的基于宏指令队列的CPU访存序列仿真模型,其特征在于,指令缓冲模块的各个指令缓冲中的指令可以循环发送。
5.根据权利要求1或2所述的基于宏指令队列的CPU访存序列仿真模型,其特征在于,不同指令缓冲的指令没有地址相关性,可以并行发射。
6.根据权利要求1或2所述的基于宏指令队列的CPU访存序列仿真模型,其特征在于,测试激励可被配置成随机测试激励或焦点专项测试激励。
7.根据权利要求1或2所述的基于宏指令队列的CPU访存序列仿真模型,其特征在于,流控模块用于进行控制,使得当只有一个一次请求的响应返回时,有地址相关性的下一个一次请求才能从CPU发出。
8.根据权利要求1或2所述的基于宏指令队列的CPU访存序列仿真模型,其特征在于,流控模块用于进行控制,使得如果一致性协议硬件逻辑中的一次请求队列没有空间了,CPU指令不能发射。
9.根据权利要求1或2所述的基于宏指令队列的CPU访存序列仿真模型,其特征在于,流控模块用于进行控制,使得如果CPU内部的响应队列没有空间,则一致性协议硬件逻辑中的响应无法返回,对应的一次请求也无法完成处理。
10.根据权利要求1或2所述的基于宏指令队列的CPU访存序列仿真模型,其特征在于,二次请求处理模块可以将二次请求处理和响应卸载的延时配置成固定值或随机值,以模拟不同的阻塞情况。
全文摘要
一种基于宏指令队列的CPU访存序列仿真模型,包括指令缓冲模块,其包括与CPU内部的Cache不命中请求悬挂缓冲个数数量相同的指令缓冲,发出的指令利用冗余域携带有所在指令缓冲的缓冲号,以便根据响应原样返回的该指令缓冲号进行正确性检查;二级Cache和淘汰缓冲模块,用于模拟二级Cache和淘汰缓冲的操作,并对二次请求和响应的合法性进行检查;二次请求处理模块,用于模拟对二次请求的处理功能,接收二次请求,并返回相应类型的应答;流控模块,用于模拟一次请求队列和响应队列的流控功能;指令调度模块,用于从多个指令缓冲中调度一个指令执行;指令译码模块,用于执行指令缓冲指令格式到CPU和一致性协议硬件之间的逻辑接口的格式包的转换。
文档编号G06F17/50GK102880770SQ20121042077
公开日2013年1月16日 申请日期2012年10月29日 优先权日2012年10月29日
发明者任秀江, 卢宏生, 郑卫华, 张清波, 王梦嘉, 陈彦庭, 施晶晶 申请人:无锡江南计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1