CN109753308B - 指令通路验证系统及指令通路监测方法 - Google Patents
指令通路验证系统及指令通路监测方法 Download PDFInfo
- Publication number
- CN109753308B CN109753308B CN201711078999.1A CN201711078999A CN109753308B CN 109753308 B CN109753308 B CN 109753308B CN 201711078999 A CN201711078999 A CN 201711078999A CN 109753308 B CN109753308 B CN 109753308B
- Authority
- CN
- China
- Prior art keywords
- instruction
- unit
- data
- program counter
- stream
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000012795 verification Methods 0.000 title claims abstract description 35
- 238000012544 monitoring process Methods 0.000 title claims abstract description 28
- 238000012360 testing method Methods 0.000 claims abstract description 25
- 238000012545 processing Methods 0.000 claims abstract description 19
- 230000002159 abnormal effect Effects 0.000 claims description 20
- 238000004088 simulation Methods 0.000 claims description 12
- 230000005856 abnormality Effects 0.000 claims description 6
- 238000010200 validation analysis Methods 0.000 claims description 4
- 230000006399 behavior Effects 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 claims 2
- 238000001514 detection method Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种指令通路验证系统及指令通路监测方法,该指令通路验证系统包括:指令执行监控器、驱动模型和待验证环境通路,所述指令执行监控器和所述驱动模块均与所述待验证环境通路相连;所述待验证环境通路包括取指令单元IFU、分支处理单元BPU和数据处理单元DPU;所述驱动模型包括内存管理单元MMU、总线接口单元BIU、通用中断控制器GIC和数据控制单元DCU。在验证环境中集成了包含了IFU、BPU和DPU的整个完整的指令控制通路,搭建了针对性的MMU、BIU、GIC和DCU驱动模型,有针对性地提供指令控制系统所需的驱动,实现了程序异常的覆盖测试。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种指令通路验证系统及指令通路监测方法。
背景技术
完整的指令通路是从取指令到寄存器写回的一系列操作。CPU(CentralProcessing Unit,中央处理器)根据当前的PC(Program Counter,程序计数器)值,经过VA(Virtual Address,虚拟地址)-PA(Physical Address,物理地址)的转换后,得到指令所在存储区域的PA,从而从存储中取相应的指令到IFU(Instruction Fetch Unit,取指令单元);经过初步的译码和分支预测后,将所取的指令送往DPU(Data Processing Unit,数据处理单元)并产生下一条指令的PC;DPU中接收到IFU发送过来的指令后,便进行真正的译码,并执行指令功能,将结果写回到相应的寄存器或存储区域。对于指令通路验证而言,在指令流水的每一个阶段中产生对应的PC,取得正确的指令按功能要求执行,并正确地将执行结果写回存储区是最基本的指令通路验证。
在指令执行的过程中,常常会由于程序本身的非法操作产生各种异常,或者有来自于系统内部或外部的中断需要处理,使得指令流水重新被刷新,需要重新产生取指PC,跳转到指定的异常等级或者进行异常相关寄存器的更新。异常可能出现在整个指令流水的每一阶段中,以及不同的指令执行现场下,场景庞大且复杂,并且流水线的刷新也极大增加了验证的困难度。
在实现本发明的过程中,发明人发现现有技术中至少存在如下技术问题:
目前在指令控制通路验证方法上有诸多论述,主要是将IFU和DPU分别进行独立验证。需要分别进行IFU或DPU的模型搭建,并产生各自模型的激励,从而验证所关注目标的特征正确性。并非专门针对指令控制通路验证,而且模型的搭建不免会造成一些失真,不是完整的指令通路,不能全面真实地覆盖到所有的应用场景。
发明内容
本发明提供的指令通路验证系统及指令通路监测方法,实现了程序异常的测试。
第一方面,本发明提供一种指令通路验证系统,包括:指令执行监控器、驱动模型和待验证环境通路,所述指令执行监控器和所述驱动模块均与所述待验证环境通路相连;
所述待验证环境通路包括取指令单元IFU、分支处理单元BPU和数据处理单元DPU;
所述驱动模型包括内存管理单元MMU、总线接口单元BIU、通用中断控制器GIC和数据控制单元DCU。
第二方面,本发明实施例还提供了一种基于上述的指令通路验证系统的指令通路监测方法,包括:
获取当前取指令单元的指令流信息;
将当前取指令单元的指令流信息与标准指令流数据的指令流信息进行比对;
若当前取指令单元的指令流信息与标准指令流数据的指令流信息不一致,则停止执行当前取指令单元对应的数据流文件的仿真。
可选的,所述指令流信息包括当前取指令单元的程序计数器、指令码、有效信号和分支指令的预测结果;
相应的,所述将当前取指令单元的指令流信息与标准指令流数据的指令流信息进行比对,包括:
将当前取指令单元的程序计数器、指令码、有效信号和分支指令的预测结果分别与所述标准指令流数据的取指令单元的程序计数器、指令码、有效信号和分支指令的预测结果进行比对。
可选的,所述指令流信息还包括待取指令单元的预测程序计数器,所述待取指令单元的预测程序计数器为根据所述分支指令的预测结果获取的;
相应的,在获取当前取指令单元的指令流信息之后,所述方法还包括:
依据所述标准指令流数据文件获取待取指令单元的程序计数器;
对比所述待取指令单元的预测程序计数器和依据所述标准指令流数据文件获取的待取指令单元的程序计数器是否一致;
若一致,则执行数据流文件的仿真。
可选的,在对比所述待取指令单元的预测程序计数器和依据所述标准指令流数据文件获取的待取指令单元的程序计数器是否一致之后,所述方法还包括:
若不一致,则停止指令流数据文件的监测,并在接收到预测错误的消息时,继续执行指令流数据文件的监测。
可选的,在将当前取指令单元的指令流信息与标准指令流数据的指令流信息进行比对之后,所述方法还包括:
若当前取指令单元的指令流信息与标准指令流数据的指令流信息一致,则获取写回阶段的程序计数器与标准指令流数据文件的程序计数器的对比结果;
若所述结果不一致,则停止执行当前取指令单元对应的数据流文件的仿真。
可选的,在获取当前取指令单元的指令流信息之后,所述方法还包括:
在接收到构建的异常测试场景之后,判断执行当前取指令单元对应的数据流文件是否有异常;
若是,则保存当前取指令单元的程序计数器和寄存器值。
可选的,在保存当前取指令单元的程序计数器和寄存器值之后,所述方法还包括:
执行异常子程序,并在执行完后恢复异常前执行当前取指令单元对应的数据流文件;
直到所述当前取指令单元对应的数据流文件仿真完为止。
可选的,在保存当前取指令单元的程序计数器和寄存器值之后,所述方法还包括:
停止判断执行当前取指令单元对应的数据流文件是否有异常的步骤。
本发明实施例提供的指令通路验证系统及指令通路监测方法,在验证环境中集成了包含了IFU、BPU和DPU的整个完整的指令控制通路,搭建了针对性的MMU(MemoryManagement Unit,内存管理单元)、BIU(Bus Interface Unit,总线接口单元)、GIC(Generic interrupt controller,通用中断控制器)和DCU(Data Control Unit,数据控制单元)驱动模型,有针对性地提供指令控制系统所需的驱动,实现了程序异常的覆盖测试。
附图说明
图1为本发明一实施例提供的指令通路验证系统的结构示意图;
图2为本发明一实施例提供的指令通路监测方法的流程图;
图3为本发明另一实施例提供的指令通路监测方法的流程图;
图4为本发明另一实施例提供的指令通路监测方法的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种指令通路验证系统,如图1所示,该系统包括:指令执行监控器106、驱动模型和待验证环境通路101,所述指令执行监控器和所述驱动模块均与所述待验证环境通路相连;
所述待验证环境通路101包括取指令单元IFU、分支处理单元BPU和数据处理单元DPU;
所述驱动模型包括内存管理单元MMU102、总线接口单元BIU103、通用中断控制器GIC105和数据控制单元DCU104。
上述指令通路验证系统,在验证环境中集成了包含了IFU、BPU和DPU的整个完整的指令控制通路,搭建了针对性的MMU(Memory Management Unit,内存管理单元)、BIU(BusInterface Unit,总线接口单元)、GIC(Generic interrupt controller,通用中断控制器)和DCU(Data Control Unit,数据控制单元)驱动模型,有针对性地提供指令控制系统所需的驱动,实现了程序异常的覆盖测试。
具体的,指令控制通路验证是基于IFU取指令单元、BPU分支处理单元和DPU数据处理单元的设计,验证环境包括了MMU内存管理单元模型驱动、BIU总线接口单元模型驱动、GIC通用中断控制器模型驱动、DCU数据控制单元模型驱动以及指令执行监控器。
待验证设计101集成了IFU取指令单元、BPU分支处理单元和DPU数据处理单元的RTL寄存器传输级设计,形成完整的指令通路,可以进行更全面真实的指令场景验证,并且可以进行异常的全面测试。
MMU内存管理单元驱动模型102模拟了简单的TLB旁路转换缓冲回填行为,负责进行VA-PA的转换。当要从外部存储中获取指令或数据时,就需要向该驱动模型发出请求以获得所需cacheline的PA,并回填到TLB中以进行查表。该驱动模型避免了复杂的MMU access流程,分为指令和数据两部分的TLB回填,并支持进行回填的随机验证。
BIU驱动模型103模拟了指令回填的流程。当102中获得了所需cacheline的PA后,IFU就将请求及PA发给BIU,由BIU控制取得所需指令回填。该BIU驱动模型模拟了BIU对接收请求并处理的总线时序,并从指令数据文件中获取所需的指令数据进行回填。
DCU驱动模型104模拟了进行数据Load/Store的流程。该模型避免了通过BIU从Memory获取数据的操作,在模型中模拟了memory读写的行为,可以进行数据读取和存取。当从102获得所需PA,就可以根据PA索引进行相应操作。
GIC驱动模型105模拟了来自外部设备的事件,如外部中断,同时在该模型中还添加了特殊异常场景的激励产生以及随机测试。
指令执行监控器106实现了对指令通路中PC和指令的监控。监控包括两个阶段,一是IFU将取好的指令送往DPU的阶段,能够动态地监控PC和指令码,并检测branch指令的预测结果,检测跳转与否的正确性,当branch指令预测错误时,能够停止正确指令流的检测,等待DPU返回预测错误确认再重新开始检测;二是检测写回阶段的PC和寄存器值,当写回阶段指令有效时,对比PC和寄存器值,以确保指令正确执行完毕。另外,指令执行监控器还能自动收集branch指令预测结果,在程序运行结束时给出预测正确率分析。
该系统实现了对整个完整指令控制通路的验证,搭建了有针对性的驱动模型,简化了测试的复杂度,能够复现更真实,更全面的应用场景覆盖;
本发明实施例还提供了一种基于上述的指令通路验证系统的指令通路监测方法的流程示意图,如图2所示,该基于指令通路验证系统的指令通路监测方法包括以下步骤:
S201、获取当前取指令单元的指令流信息;
S202、将当前取指令单元的指令流信息与标准指令流数据的指令流信息进行比对;
S203、若当前取指令单元的指令流信息与标准指令流数据的指令流信息不一致,则停止执行当前取指令单元对应的数据流文件的仿真。
上述指令通路监测方法能够实时监控指令流水线的运行,当发生错误时自动进行错误定位和分析,并能自动处理分析分支指令的预测,极大地方便了验证人员的测试调试和性能分析,能够显著提高验证效率。
在一个可实现的方式中,上述步骤S201中的所述指令流信息包括当前取指令单元的程序计数器PC、指令码、有效valid信号和分支branch指令的预测结果;
相应的,步骤S202中所述将当前取指令单元的指令流信息与标准指令流数据的指令流信息进行比对,包括:
将当前取指令单元的程序计数器、指令码、有效信号和分支指令的预测结果分别与所述标准指令流数据的取指令单元的程序计数器、指令码、有效信号和分支指令的预测结果进行比对。
可选的,所述指令流信息还包括待取指令单元的预测程序计数器,所述待取指令单元的预测程序计数器为根据所述分支指令的预测结果获取的;
相应的,在步骤S201获取当前取指令单元的指令流信息之后,所述方法还包括:
依据所述标准指令流数据文件获取待取指令单元的程序计数器;
对比所述待取指令单元的预测程序计数器和依据所述标准指令流数据文件获取的待取指令单元的程序计数器是否一致;
若一致,则执行数据流文件的仿真。
或者,
若不一致,则停止指令流数据文件的监测,并在接收到预测错误的消息时,继续执行指令流数据文件的监测。
在另一个可实现的方式中,在将当前取指令单元的指令流信息与标准指令流数据的指令流信息进行比对之后,所述方法还包括:
若当前取指令单元的指令流信息与标准指令流数据的指令流信息一致,则获取写回阶段的程序计数器与标准指令流数据文件的程序计数器的对比结果;
若所述结果不一致,则停止执行当前取指令单元对应的数据流文件的仿真。
上述程序指令开始执行后,首先由IFU进行取指令,经过初步译码后将指令发给DPU。如果所取的指令是branch指令,则还需要经过BPU进行branch预测,给出是否跳转以及目的地址,预测结果一方面作为下一次取指令的PC,一方面也发送给DPU,经过DPU的真正解码和执行后才知道预测结果是对是错。若发现预测错了,则DPU需要返回预测错误信号给IFU,同时给出刷新流水线的信号,IFU从正确的PC进行重新取指令。
作为指令通路的验证,需要在指令执行的每一个时钟周期去监测指令流上的指令信息。为了更好地诠释指令控制通路的监测流程,本发明中指令通路监测验证流程图具体如图3所示:
步骤S301、采用ARM编译器编译和脚本提取后,可以得到标准指令流数据,包括VA、PA和对应的指令码,RTL中程序的执行应完全一致地按照标准指令流的指令顺序执行;
步骤S302、根据标准指令流中的指令码,可以解码出指令是否是branch指令以及branch类型;根据指令流前后PC可以推算出branch跳转结果,以及跳转的目的地址。将branch信息和指令信息封装成一个结构体,作为后续监测对比的标准;
步骤S303、读取RTL中IFU送往DPU阶段的PC、指令码、vaild信息、branch指令预测结果以及下一次取指令的PC;
步骤S304、对比RTL和标准指令流中下一条PC值是否一致,若不一致则说明RTL中branch指令预测错误,环境中生成预测错误标志信号,否则就不做处理;
步骤S305、当RTL中branch指令预测错误时,RTL中就会跳出标准指令流的执行队列。IFU会将预测结果发给DPU,DPU进行真正解码和执行后会给出正确的跳转结果,进而返回给IFU预测错误的信号,RTL中刷新流水线重新从正确的branch目的地址取指令。因此从下一条指令执行开始,监测环境中需要停止正常的指令流监测,进入等待DPU返回预测错误的信号;
步骤S306、若检测到DPU返回预测错误信号,则继续打开指令流监测,否则就继续等待;
步骤S307、S303中获取RTL中IFU送往DPU阶段的指令信息和branch预测结果,在指令有效的前提下,首先对比当前PC和标准指令流中是否一致,若PC不一致则输出RTL出错的PC值和期望的正确PC值,停止仿真;若一致则继续对比当前指令的指令码是否和标准指令流中一致,若指令码不一致,则输出RTL出错的指令码和期望的正确指令码以及对应的指令PC,停止仿真;
步骤S308、检测branch预测结果。对于非branch指令,预测taken必须为0;对于无条件跳转指令,预测taken必须为1,即必定是跳转的;对于条件跳转指令,则如步骤S305中的操作;若branch比对出错,则输出指令的PC、指令码、出错的跳转结果和期望的正确值,停止仿真;
步骤S309、检测写回阶段的指令PC。程序执行到写回阶段就代表着执行结束,写回阶段的PC应当是完全和标准指令流一样的,也不存在branch预测错的影响。写回阶段指令PC的检测是在流水线有效以及指令结束标志有效为前提的,对比RTL在这阶段的PC和标准指令流是否一致。当流水线上指令双发射了,就将标准指令流的PC间隔一个进行对比。若比对不一致,则输出出错指令的PC和期望的正确值并停止仿真。
若以上步骤执行后比对完全一致,则就继续重复S303中的步骤,继续进入下一轮的检测比对,直到程序执行完毕。
上述方法能够实时监控指令流水线的运行,当发生错误时自动进行错误定位和分析,并能自动处理分析分支指令的预测,极大地方便了验证人员的测试调试和性能分析,能够显著提高验证效率。
本发明中指令控制通路验证方法还支持进行程序异常场景的测试。105中GIC驱动模拟主要用来模拟外部设备的突发事件的产生,特殊异常场景产生以及进行异常的随机测试。程序异常在指令流水的每一个阶段都有可能产生,并且直接影响到指令流水的刷新重启,尤其涉及到不同异常同时或先后产生的交互,往往是异常验证的困难所在。本发明中指令流水中程序异常的测试步骤如图4流程图所示:
在获取当前取指令单元的指令流信息之后,所述方法还包括:
在接收到构建的异常测试场景之后,判断执行当前取指令单元对应的数据流文件是否有异常;
若是,则保存当前取指令单元的程序计数器和寄存器值。
该方法实现了特殊异常场景产生以及进行异常的随机测试。
可选的,在保存当前取指令单元的程序计数器和寄存器值之后,所述方法还包括:
执行异常子程序,并在执行完后恢复异常前执行当前取指令单元对应的数据流文件;
直到所述当前取指令单元对应的数据流文件仿真完为止。
可选的,在保存当前取指令单元的程序计数器和寄存器值之后,所述方法还包括:
停止判断执行当前取指令单元对应的数据流文件是否有异常的步骤。
具体的,如图4所示,针对异常场景的测试包括以下步骤:
步骤S401、构建异常测试场景包括,支持进行随机测试,随机产生GIC接口异常输入或者RTL内部异常相关信号,并可自主配置随机频率,随机可覆盖大部分的异常测试场景;支持特定场景的异常测试,包括不同异常同时产生、固定时钟周期差距产生以及不同程序执行状态下异常的插入等,对未覆盖到的异常场景进行针对性测试;
步骤S402、搭建的异常测试场景不一定是产生异常的场景,如果异常没有产生,则程序依然按照正常指令流执行,否则就进入异常处理状态;
步骤S403、如果异常产生了,则需要停止正常指令流的检测,保存当前的PC和寄存器值。这里的寄存器包括异常状态寄存器以及在异常子程序会用到的通用寄存器。为了避免过多的资源消耗,需要规定异常子程序中允许使用的通用寄存器;
步骤S404、异常子程序最后执行return指令以返回到正常指令流中,这时候需要将环境中设置保存的PC以及寄存器值更新到RTL中,恢复异常前的现场,以保证正常指令流的执行;
步骤S405、继续按照正常指令流执行,并恢复正常指令流的检测;
步骤S406、在测试的每个时钟周期,都实时进行异常状态寄存器和其他相关寄存器的检测,当程序正常执行时,对比RTL和标准指令流中寄存器的值;当插入异常时,对比RTL和设定的子程序指令流中寄存器的值。如果对比不一致,则输出当前的仿真时间、执行的指令以及比对双方的寄存器值,以快速定位错误和分析。
上述方法支持指令流水线中特殊的程序异常的处理,灵活进行可配置的随机测试和特殊场景定向测试,有效拓展了该验证方法的适用范围。
在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或智能终端设备或处理器(Processor)执行本发明各个实施例方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明所提供的上述实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
以上仅为本发明的实施例,但并不限制本发明的专利范围,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本发明说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本发明专利保护范围之内。
Claims (9)
1.一种指令通路验证系统,其特征在于,包括:指令执行监控器、驱动模型和待验证环境通路,所述指令执行监控器和所述驱动模型均与所述待验证环境通路相连;
所述待验证环境通路包括取指令单元IFU、分支处理单元BPU和数据处理单元DPU;
所述驱动模型包括内存管理单元MMU、总线接口单元BIU、通用中断控制器GIC和数据控制单元DCU;
内存管理单元驱动模型用于模拟TLB旁路转换缓冲回填行为,负责进行VA-PA的转换;
总线接口单元驱动模型用于模拟指令回填;
通用中断控制器驱动模型用于模拟来自外来设备的事件;
数据控制单元驱动模型用于模拟进行数据Load/Store的流程。
2.一种基于权利要求1所述的指令通路验证系统的指令通路监测方法,其特征在于,包括:
获取当前取指令单元的指令流信息;
将当前取指令单元的指令流信息与标准指令流数据的指令流信息进行比对;
若当前取指令单元的指令流信息与标准指令流数据的指令流信息不一致,则停止执行当前取指令单元对应的数据流文件的仿真。
3.根据权利要求2所述的方法,其特征在于,所述指令流信息包括当前取指令单元的程序计数器、指令码、有效信号和分支指令的预测结果;
相应的,所述将当前取指令单元的指令流信息与标准指令流数据的指令流信息进行比对,包括:
将当前取指令单元的程序计数器、指令码、有效信号和分支指令的预测结果分别与所述标准指令流数据的取指令单元的程序计数器、指令码、有效信号和分支指令的预测结果进行比对。
4.根据权利要求3所述的方法,其特征在于,所述指令流信息还包括待取指令单元的预测程序计数器,所述待取指令单元的预测程序计数器为根据所述分支指令的预测结果获取的;
相应的,在获取当前取指令单元的指令流信息之后,所述方法还包括:
依据所述标准指令流数据文件获取待取指令单元的程序计数器;
对比所述待取指令单元的预测程序计数器和依据所述标准指令流数据文件获取的待取指令单元的程序计数器是否一致;
若一致,则执行数据流文件的仿真。
5.根据权利要求4所述的方法,其特征在于,在对比所述待取指令单元的预测程序计数器和依据所述标准指令流数据文件获取的待取指令单元的程序计数器是否一致之后,所述方法还包括:
若不一致,则停止指令流数据文件的监测,并在接收到预测错误的消息时,继续执行指令流数据文件的监测。
6.根据权利要求2所述的方法,其特征在于,在将当前取指令单元的指令流信息与标准指令流数据的指令流信息进行比对之后,所述方法还包括:
若当前取指令单元的指令流信息与标准指令流数据的指令流信息一致,则获取写回阶段的程序计数器与标准指令流数据文件的程序计数器的对比结果;
若所述结果不一致,则停止执行当前取指令单元对应的数据流文件的仿真。
7.根据权利要求2所述的方法,其特征在于,在获取当前取指令单元的指令流信息之后,所述方法还包括:
在接收到构建的异常测试场景之后,判断执行当前取指令单元对应的数据流文件是否有异常;
若是,则保存当前取指令单元的程序计数器和寄存器值。
8.根据权利要求7所述的方法,其特征在于,在保存当前取指令单元的程序计数器和寄存器值之后,所述方法还包括:
执行异常子程序,并在执行完后恢复异常前执行当前取指令单元对应的数据流文件;
直到所述当前取指令单元对应的数据流文件仿真完为止。
9.根据权利要求7所述的方法,其特征在于,在保存当前取指令单元的程序计数器和寄存器值之后,所述方法还包括:
停止判断执行当前取指令单元对应的数据流文件是否有异常的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711078999.1A CN109753308B (zh) | 2017-11-06 | 2017-11-06 | 指令通路验证系统及指令通路监测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711078999.1A CN109753308B (zh) | 2017-11-06 | 2017-11-06 | 指令通路验证系统及指令通路监测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109753308A CN109753308A (zh) | 2019-05-14 |
CN109753308B true CN109753308B (zh) | 2023-02-28 |
Family
ID=66399705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711078999.1A Active CN109753308B (zh) | 2017-11-06 | 2017-11-06 | 指令通路验证系统及指令通路监测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109753308B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111327490B (zh) * | 2020-01-20 | 2021-01-29 | 腾讯科技(深圳)有限公司 | 区块链的拜占庭容错检测方法及相关装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6157988A (en) * | 1997-08-01 | 2000-12-05 | Micron Technology, Inc. | Method and apparatus for high performance branching in pipelined microsystems |
CN101403963A (zh) * | 2008-11-13 | 2009-04-08 | 戴葵 | 异步数据触发微处理器体系结构 |
CN102360282A (zh) * | 2011-09-26 | 2012-02-22 | 杭州中天微系统有限公司 | 快速处置分支指令预测错误的流水线处理器装置 |
CN105589993B (zh) * | 2015-12-18 | 2019-01-15 | 中国科学院微电子研究所 | 微处理器功能验证设备及微处理器功能验证方法 |
CN105930590A (zh) * | 2016-04-24 | 2016-09-07 | 焦芳 | 基于ovl断言的微处理器流水线验证方法 |
-
2017
- 2017-11-06 CN CN201711078999.1A patent/CN109753308B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109753308A (zh) | 2019-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10691419B2 (en) | Reconstructing a high level compilable program from an instruction trace | |
US5347647A (en) | Method of predicting the performance of an emulated computer system | |
US10360322B2 (en) | Simulation of virtual processors | |
US8972785B2 (en) | Classifying processor testcases | |
US10095611B1 (en) | Methodology for unit test and regression framework | |
CN113779912B (zh) | 一种芯片验证系统、方法、装置、电子设备及存储介质 | |
CN117422026B (zh) | 一种基于risc-v架构的处理器验证系统 | |
US20100057427A1 (en) | Simulated processor execution using branch override | |
US7243059B2 (en) | Simulation of hardware based on smart buffer objects | |
CN109753308B (zh) | 指令通路验证系统及指令通路监测方法 | |
US20100274550A1 (en) | Integrated development structure having virtual inputs/outputs for embedded hardware/software | |
CN116431103B (zh) | 一种面向嵌入式软件的数字化DevOps平台设计方法 | |
US10816600B1 (en) | Protocol analysis and visualization during simulation | |
CN116501378A (zh) | 一种逆向工程还原源代码的实现方法、装置和电子设备 | |
CN116306392A (zh) | 芯片仿真装置、方法、电子设备和存储介质 | |
CN116450430A (zh) | 处理器的验证方法、验证系统以及存储介质 | |
US9111034B2 (en) | Testing of run-time instrumentation | |
CN106970825B (zh) | 一种基于gdb可配置框架的arm7仿真目标机实现方法 | |
US20030070117A1 (en) | Simulation apparatus and simulation method | |
JP2828590B2 (ja) | マイクロプログラム検証方法 | |
CN111295658A (zh) | 模拟装置、模拟方法和模拟程序 | |
CN114385524A (zh) | 嵌入式固件仿真系统及其方法、装置和电子设备 | |
CN112527571A (zh) | 一种cpu指令集覆盖率计算方法及装置 | |
CN108604205B (zh) | 测试点的创建方法,装置和系统 | |
KR20120058753A (ko) | 디버거를 이용한 임베디드 소프트웨어 단위 테스트 자동화 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |