CN107688470A - uncache数据访存的验证方法及装置 - Google Patents

uncache数据访存的验证方法及装置 Download PDF

Info

Publication number
CN107688470A
CN107688470A CN201611209223.4A CN201611209223A CN107688470A CN 107688470 A CN107688470 A CN 107688470A CN 201611209223 A CN201611209223 A CN 201611209223A CN 107688470 A CN107688470 A CN 107688470A
Authority
CN
China
Prior art keywords
counter
uncache
bus
memory access
address
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.)
Granted
Application number
CN201611209223.4A
Other languages
English (en)
Other versions
CN107688470B (zh
Inventor
商家玮
王梦觉
靳明晶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CETC 14 Research Institute
Original Assignee
BEIJING GUORUI ZHONGSHU TECHNOLOGY CO LTD
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by BEIJING GUORUI ZHONGSHU TECHNOLOGY CO LTD filed Critical BEIJING GUORUI ZHONGSHU TECHNOLOGY CO LTD
Priority to CN201611209223.4A priority Critical patent/CN107688470B/zh
Publication of CN107688470A publication Critical patent/CN107688470A/zh
Application granted granted Critical
Publication of CN107688470B publication Critical patent/CN107688470B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3848Speculative instruction execution using hybrid branch prediction, e.g. selection between prediction techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种uncache数据访存的验证方法及装置,其中,方法包括:获取总线访存类型、缓存操作类型、有效数据位宽和地址;判断地址是否处于I/O地址段;如果是,则判断是否为uncache;如果是,则获取访存列队的操作类型、缓存操作类型、有效数据位宽和地址;判断是否匹配;如果是,则操作有效标志位置位;判断指令是否提交;如果是,则指令有效标志位置位;获取提两个计数器的有效标志位,并进行加1操作;在指令提交计数器和操作计数器相等时,判断仿真是否结束。该方法可以对总线uncache行为进行自校验,从而检测出变序多发射处理器外部总线uncache操作次数是否正确,提高验证准确度。

Description

uncache数据访存的验证方法及装置
技术领域
本发明涉及处理器技术领域,特别涉及一种uncache数据访存的验证方法及装置。
背景技术
在相关技术的变序多发射处理器系统级验证过程中,缓存以及处理器外部的总线操作对于程序员来说是不可见的,处理器在执行过程中,完全信任处理器外部总线读写的数据以及操作,而验证环境的检查机制也相应的完全信任总线上的数据以及操作。因此,在系统级验证环境中,无法保证变序多发射处理器uncache指令提交的次数与处理器外部总线对I/O发起的读写操作的次数一一对应,由此引发的功能BUG则不能够被检测出来,导致项目流片失败。
目前,在对处理器内部存储器访问模块进行模块级验证时,都是通过驱动处理器内部的访问存储器模块的输入信号,通过处理器内部输出信号来验证数据的正确性,保证了存储器访问模块与处理器内部其余模块交互的正确性,而忽略了与处理器外部总线交互操作的正确性。无法保证变序多发射处理器uncache指令提交的次数与处理器外部总线对I/O发起的读写操作的次数一一对应。
然而,在系统级验证时,只能通过定向测试程序来构造特定的场景,通过查看波形的方式来检验该测试点,在验证过程中难以达到快速收敛的要求。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的一个目的在于提出一种uncache数据访存的验证方法,该方法可以检测出变序多发射处理器外部总线uncache操作次数是否正确。
本发明的另一个目的在于提出一种uncache数据访存的验证装置。
为达到上述目的,本发明一方面实施例提出了一种uncache数据访存的验证方法,包括以下步骤:获取总线访存类型、缓存操作类型、有效数据位宽和地址;判断总线访问的所述地址是否处于输入输出设备(I/O)地址段;如果是,则判断所述缓存操作类型是否为uncache;如果是,则获取访存列队的操作类型、缓存操作类型、有效数据位宽和地址;判断所述总线访存类型、缓存操作类型、有效数据位宽和地址与所述访存列队的操作类型、缓存操作类型、有效数据位宽和地址是否匹配;如果是,则将用于总线对I/O发起uncache操作计数器有效标志位置位;判断是否清空流水线;如果否,则判断所述访存列队所对应的指令是否提交;如果是,则访问I/O的uncache指令提交计数器有效标志位置位;分别获取所述指令提交计数器和所述总线操作计数器的有效标志位,并根据所述有效标志位分别对计数器进行加1操作;在所述指令提交计数器和所述总线操作计数器相等时,判断仿真是否结束。
本发明实施例的uncache数据访存的验证方法,通过待测设计uncache指令提交行为来对总线uncache行为进行自校验,从而检测出变序多发射处理器外部总线uncache操作次数是否正确,处理器验证人员可以准确监控访问I/O地址段的uncache指令是否被分支预测或异步异常导致的清空流水线的操作所影响,确保处理器不会发生错误冗余的总线操作,提高验证准确度。
另外,根据本发明上述实施例的uncache数据访存的验证方法还可以具有以下附加的技术特征:
进一步地,在本发明的一个实施例中,如果清空流水线,则分别获取所述指令提交计数器和所述总线操作计数器的有效标志位。
进一步地,在本发明的一个实施例中,所述根据所述有效标志位分别对计数器进行加1操作,进一步包括:分别根据所述提交计数器和操作计数器的有效标志位判断是否对所述指令提交计数器和所述总线操作计数器执行加1操作,其中,当标志位有效时,对应的计数器执行加1操作。
进一步地,在本发明的一个实施例中,如果仿真未结束,则继续监控所述总线的读写操作。
进一步地,在本发明的一个实施例中,上述方法还包括:如果所述提交计数器和所述操作计数器计数不相等,则报错。
为达到上述目的,本发明另一方面实施例提出了一种uncache数据访存的验证装置,包括:第一获取模块,用于获取总线访存类型、缓存操作类型、有效数据位宽和地址;第一判断模块,用于判断总线访问的所述地址是否处于输入输出设备(I/O)地址段;第二判断模块,在处于所述I/O地址段时,用于判断所述缓存操作类型是否为uncache;第二获取模块,用于获取访存列队的操作类型、缓存操作类型、有效数据位宽和地址;第三判断模块,用于判断所述总线访存类型、缓存操作类型、有效数据位宽和地址与所述访存列队的操作类型、缓存操作类型、有效数据位宽和地址是否匹配;第一置位模块,在匹配时,用于将用于总线对I/O发起uncache操作计数器有效标志位置位;第四判断模块,用于判断是否清空流水线;第五判断模块,在未清空流水线时,用于判断所述访存列队所对应的指令是否提交;第二置位模块,在提交时,用于访问I/O的uncache指令提交计数器有效标志位置位;操作模块,用于分别获取所述指令提交计数器和所述总线操作计数器的有效标志位,并根据所述有效标志位分别对计数器进行加1操作;控制模块,用于在所述指令提交计数器和所述总线操作计数器相等时,判断仿真是否结束。
本发明实施例的uncache数据访存的验证装置,通过待测设计uncache指令提交行为来对总线uncache行为进行自校验,从而检测出变序多发射处理器外部总线uncache操作次数是否正确。处理器验证人员可以准确监控访问I/O地址段的uncache指令是否被分支预测或异步异常导致的清空流水线的操作所影响,确保处理器不会发生错误冗余的总线操作,提高验证准确度。
另外,根据本发明上述实施例的uncache数据访存的验证装置还可以具有以下附加的技术特征:
进一步地,在本发明的一个实施例中,当清空流水线时,所述操作模块直接获取所述提交计数器和所述操作计数器的有效标志位。
进一步地,在本发明的一个实施例中,所述操作模块还用于分别根据所述指令提交计数器和总线操作计数器的有效标志位判断是否对所述指令提交计数器和所述总线操作计数器执行加1操作,其中,当标志位有效时,对应的计数器执行加1操作。
进一步地,在本发明的一个实施例中,当仿真未结束时,第一获取模块还用于继续监控所述总线的读写操作。
进一步地,在本发明的一个实施例中,上述装置还包括:报错模块,当所述提交计数器和所述操作计数器计数不相等时,用于报错。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为相关技术中cache访存指令执行顺序与uncache访存指令执行顺序示意图;
图2为相关技术中多核共享存储器与I/O示意图:多个核可以同时向总线发起存储器与I/O的读写请求示意图;
图3为相关技术中AMD Opteron X4微体系的结构示意图;
图4为根据本发明实施例的uncache数据访存的验证方法的流程图;
图5为根据本发明一个实施例的单核uncache操作检测结构的验证示意图;
图6为根据本发明一个具体实施例的uncache数据访存的验证方法的流程图;以及
图7为根据本发明实施例的uncache数据访存的验证装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面在描述根据本发明实施例提出的uncache数据访存的验证方法及装置之前,先来简单描述一下准确验证的重要性。
功能验证对于满足有挑战性的芯片设计时间表、实现成本控制目标和得到设计品质目标起到至关重要的作用。随着科技的发展,数字电路的规模和复杂度的不断增长,使得功能验证成为一项巨大的挑战,尤其是对处理器的功能验证,所面临的挑战也空前巨大。
由于处理器与存储器间的性能差距越来越大,缓存也被引入到众多的处理器设计过程中。因此,处理器的访问存储器操作按照虚拟地址不同可分为缓存(cache)操作与非缓存(uncache)操作两种。处理器执行cache类的访问存储器操作时,加载数据的来源或者存储数据的去向均为处理器内部的缓存。而处理器在执行uncache类的访问存储器操作时,加载数据的来源或存储数据的去向均为处理器外部的存储器或者外部设备的寄存器等。变序多发射的处理器的指令执行过程可先后分为取指、译码、发射、执行、写回和提交六个步骤,为了提高处理器的性能,对于cache操作以及uncache操作指令提交的处理方法往往是不同的,即cache操作指令以及uncache加载指令是先执行,后提交;而uncache存储操作指令是先提交,后执行,如图1所示。这种机制能够非常有效的提高处理器处理非缓存操作的性能,但是也存在一定的风险。如果在uncache加载操作的指令执行过程中,由于触发异步异常导致清空流水线,uncache加载操作指令向处理器外部总线发起的总线操作不能够被及时清除,导致处理器错误的多读一次处理器外部存储器或者寄存器;如果在uncache存储操作的指令提交后的执行过程中,由于触发异步异常导致清空流水线,uncache存储指令引发的总线uncache写操作不能够被清除,导致处理器错误的多写一次处理器外部存储器或寄存器。如果读写的地址对应的I/O寄存器属性为读清或者写清,则会导致后续处理器读取到的状态错误,导致外部设备状态错误;如果在多核系统中,如图2所示,还可能破坏掉了I/O数据的有效性,导致I/O状态错误,系统混乱。因此,保证变序多发射处理器uncache指令提交的次数与处理器外部总线对I/O发起的读写操作的次数一一对应是很必要的,对于变序多发射处理器的uncache访问I/O地址段指令的验证工作也变得越来越重要。
在现有技术下,对于变序多发射处理器的系统级验证过程中,程序被初始化到存储器中,待测处理器与参考模型同时通过总线去存储器中取指,执行相同的程序,在每条指令完成提交阶段后,根据提交指令的PC以及提交后处理器的状态,可判断指令是否执行正确。判断处理器执行正确与否的检查机制为:检测处理器体系结构寄存器是否为预期值,预期值的生成装置与待测设计一样,完全信任总线上的数据以及操作。
而基于UVM方法学单独对处理器内部的存储器访问模块进行模块级验证时,则是通过随机序列(sequence)随机出事物(transaction)级别的测试激励,通过随机序列仲裁器(sequencer)将测试激励传递给驱动器(driver),然后driver对处理器内部输入信号施加激励,监控器(monitor)通过监控输入信号的值,将信息打包发送给参考模型,参考模型与待测模块同时执行相同的操作,最后检测处理器内部的输出信号来判断处理器访问存储器模块中的数据正确性。测试数据的来源为与处理器外部总线相连接的为虚拟的存储器,参考模型与待测模块共用一个虚拟存储器,也不能够对uncache指令引起的总线访问I/O地址段操作进行全面验证。
图3为AMD Opteron X4微体系结构示意图,指令从指令缓存中取到指令,然后经过指令预取以及译码阶段,形成类似于RISC的微操作,并放入微操作队列中;当条件满足后,发送给对应的执行单元,如果为访存操作,则先通过alu计算访存地址,然后到加载与存储队列中根据访存的地址来执行对应的操作,最后将指令提交。
综上所述,相关技术中,无论系统级随机验证或者模块级验证,由于验证环境与待测设计完全信任总线操作,不能够检测出待测设计中存在的该类BUG。而在系统级定向测试时,由于相关人员存在一定的思维漏洞,导致遗漏了一些潜在的且可能发生的错误的情况,导致该功能的验证工作不够全面。
本发明正是基于上述问题,而提出了一种uncache数据访存的验证方法及装置。
下面参照附图描述根据本发明实施例提出的uncache数据访存的验证方法及装置,首先将参照附图描述根据本发明实施例提出的uncache数据访存的验证方法。
图4是本发明实施例的uncache数据访存的验证方法的流程图。
如图4所示,该uncache数据访存的验证方法包括以下步骤:
在步骤S401中,获取总线访存类型、缓存操作类型、有效数据位宽和地址。
在步骤S402中,判断总线访问的地址是否处于输入输出设备(I/O)地址段。
在步骤S403中,如果是,则判断缓存操作类型是否为uncache。
在步骤S404中,如果是,则获取访存列队的操作类型、缓存操作类型、有效数据位宽和地址。
在步骤S405中,判断总线访存类型、缓存操作类型、有效数据位宽和地址与访存列队的操作类型、缓存操作类型、有效数据位宽和地址是否匹配。即言,判断总线信息与访存队列信息是否匹配。
其中,如果总线访存类型、缓存操作类型、有效数据位宽和地址与访存列队的操作类型、缓存操作类型、有效数据位宽和地址不匹配,即总线信息与访存队列信息不匹配,则报错,并退出当前仿真。
在步骤S406中,如果是,则将用于总线对I/O发起uncache操作计数器有效标志位置位。即言,总线操作有效标志位置位。
在步骤S407中,判断是否清空流水线。
另外,在本发明的一个实施例中,如果清空流水线,则分别获取提交计数器和操作计数器的有效标志位。
在步骤S408中,如果否,则判断访存列队所对应的指令是否提交。
在步骤S409中,如果是,则访问I/O的uncache指令提交计数器有效标志位置位。即言,uncache指令有效标志位置位。
在步骤S410中,分别获取指令提交计数器和总线操作计数器的有效标志位,并根据有效标志位分别对计数器进行加1操作。
其中,在本发明的一个实施例中,分别根据有效标志位分别对计数器进行加1操作,进一步包括:分别根据提交计数器和操作计数器的有效标志位判断是否对提交计数器和操作计数器执行加1操作,其中,当标志位有效时,对应的计数器执行加1操作。
在步骤S411中,在指令提交计数器和总线操作计数器相等时,判断仿真是否结束。
其中,在本发明的一个实施例中,本发明实施例的方法还包括:如果提交计数器和操作计数器计数不相等,则报错。
另外,在本发明的一个实施例中,如果仿真未结束,则继续监控总线的读写操作。
可以理解的是,如图5所示,本发明实施例主要思想为访问I/O地址段的uncache指令提交数量与处理器外部总线对I/O发起的uncache操作一一对应,处理器不能通过总线向I/O发起冗余的uncache操作,同时也不能少发uncache操作。
具体地,本发明通过以下机制来实现,该机制主要有总线对I/O发起uncache操作有效标志获取方法、访问I/O的uncache指令提交有效标志获取方法、访问I/O的uncache指令提交计数器与总线对I/O发起的uncache操作计数器对比方法三个部分,如图6所示,用于总线对I/O发起uncache操作有效标志获取方法及装置包含以下步骤:
步骤S1:仿真开始时,对访问I/O的uncache指令提交计数器与总线对I/O发起uncache操作计数器以及对应的有效标志位进行初始化位0。
步骤S2:根据变序多发射处理器外部总线协议,监控总线的读写操作,获取总线发起操作的访存类型、缓存操作类型、有效数据位宽和地址。
步骤S3:根据芯片地址划分,查看总线uncache访问的地址是否处于I/O地址段。如果处于I/O地址段,则需要执行步骤S4,否则跳转到步骤S2,继续监控总线操作。
步骤S4:根据协议中的信号,判断当前的操作类型是否为uncache。如果操作为uncache操作,继续后面的步骤S5,如果不为uncache操作,则跳转到步骤S2,继续监控总线操作。
步骤S5:获取处理器内部全部的用于在访存指令执行阶段工作的加载与存储队列中的访存类型、缓存操作类型、有效数据位宽和地址。
步骤S6:根据步骤S2与步骤S5获取的访存类型、缓存操作类型、有效位宽和地址,判断加载与存储队列中是否存在一项操作与总线uncache操作相匹配。如果匹配,则继续后面的步骤S7,如果不匹配,则报错,并退出当前的仿真。
步骤S7:将用于总线对I/O发起uncache操作有效标志位置位。
进一步地,用于访问I/O的uncache指令提交有效标志获取方法及装置包含以下步骤:
步骤S8:与总线操作对应的数据加载与存储队列在等待提交的过程中,检测是否发生清空流水线的操作,如果发生流水线清空操作,则需要跳转到步骤S11,否则继续后面的步骤S9。
步骤S9:判断与总线操作对应的数据加载与存储队列所对应的指令是否提交,如果提交,则继续后面的步骤S10,否则一直等待提交。
步骤S10:将访问I/O的uncache指令提交计数有效标志位置位。
进一步地,用于访问I/O的uncache指令提交计数器与总线对I/O发起的uncache操作计数器对比方法及装置包含以下步骤:
步骤S11:获取步骤S7中对I/O发起总线uncache操作有效标志位与步骤S10中访问I/O的uncache指令提交操作有效标志位,并分别根据各自的标志位,判断是否对各自的计数器执行加1操作;当标志位有效时,对应的计数器执行加1操作。
步骤S12:对比两个计数器的值是否相等。如果不相等,则报错,并退出当前的仿真;如果相等,则继续后面的步骤S13。
步骤S13:查看本次仿真是否结束,如没有结束,则跳转到步骤S2,对总线操作进行监控;如果结束,则退出本次仿真。
可以理解的是,处理器不能到I/O地址段取指,且所有的状态信息并非是通过处理器能够执行的指令来获取的,而是通过后门的方式,直接从待测设计中得到的状态及数据信息。并且可以将标志uncache操作的计数器按照操作类型分类,即加载数据使用一组计数器,存储数据使用一组计数器,共可有2组计数器。以及可以将标志uncache操作的计数器按照访问的类型以及地址划分,即加载数据与地址使用一组计数器,存储数据与地址使用一组计数器,方案中根据访问的地址以及数据类型,可以将存储类型以及对应的计数器存储到动态数组中,使用地址索引。
另外,在步骤S2和步骤S4中,需要根据具体的总线协议来判断,不同的总线协议会影响监控的信号。如在axi协议中,判断uncache操作类型的信号为arcache与awcache。
需要说明的是,由于总线与加载存储队列的uncache操作有对应关系,所以证明总线对I/O发起的uncache操作是由uncache数据访存指令发起的,所以,需要将用于总线uncache操作有效标志位置位。
在本发明的实施例中,在单核验证平台中应用本发明实施例的方法之后,验证人员不再需要关注总线uncache读写I/O的信息,仅需要通过执行特定的指令来对缓存进行验证。解决了现有验证方法中无法验证访问I/O的uncache指令的提交于总线uncache操作是否对应的问题,并且在进行验证时可以发现由多发一次uncache总线操作导致的性能BUG,提升SOC的整体性能。
举例而言,以下将以AMD Opteron X4处理器微体系结构以及共享多核soc为例子。
如图3所示,指令从指令缓存中取到指令,然后经过指令预取以及译码阶段,形成类似于RISC的微操作,并放入微操作队列中;当条件满足后,发送给对应的执行单元,如果为访存操作,则先通过alu计算访存地址,然后到加载与存储队列中根据访存的地址来执行对应的操作,最后将指令提交。由于AMD Opteron X4为变序多发射的处理器,所以uncache访存指令的提交以及总线操作需要更近一步的验证。
进一步地,如图6所示,首先在仿真开始时,对计数器以及标志位进行初始化,然后通过如图5所示的总线监控器,使用本发明实施例中总线对I/O发起uncache操作有效标志获取方法及装置中的步骤S2、步骤S3与步骤S4,通过监控总线的行为,获取总线uncache写I/O段的操作信息;然后采用如图5所示的加载存储队列监控器,通过步骤S5,查看处理器内部的加载存储队列中查找全部项的访存类型、缓存操作类型、有效数据位宽和地址。在步骤S6与步骤S7中,根据步骤S2得到的总线uncache访问I/O的信息,对加载缓存队列的内容进行查找,看该总线uncache操作是否为加载存储队列发起的,以及对应的地址以及数据位宽是否一致,如果一致,则说明总线发起的操作来源于uncache访存指令,需要将用于总线对I/O发起uncache操作有效标志位置位,否则说明总线发起一笔冗余操作,需要报错。
进一步地,利用本发明实施例的uncache指令提交次数获取方法中步骤S8与步骤S9,监控与总线操作有对应的数据加载与存储队列,如果检测该队列所对应的指令在提交前发生错误的清空流水线操作,则直接跳转到步骤S11;如果没有发生清空流水线操作,监控该指令是否发生提交,如果未提交,则跳到步骤S8,继续监控是否发生清空流水线的操作,直到该队列所对应的指令的提交,将访问I/O的uncache指令提交计数有效标志位置位。
进一步地,利用本发明实施例的用于访问I/O的uncache指令提交计数器与总线对I/O发起的uncache操作计数器对比方法中步骤S11获取步骤S7中对I/O发起总线uncache操作有效标志位与步骤S10中访问I/O的uncache指令提交操作有效标志位,并分别根据各自的标志位,判断是否对各自的计数器执行加1操作;当标志位有效时,对应的计数器执行加1操作。然后采用如图5所示的计数器计分板,执行步骤S12与步骤S13,对比两个计数器的值是否相等。如果不相等,则报错,并退出当前的仿真;如果相等,查看本次仿真是否结束,如没有结束,则跳转到步骤S2,对总线操作进行监控;如果结束,则退出本次仿真,结束本机制。
可以理解的是,通过总线对I/O发起uncache操作计数器与访问I/O地址的uncache访存指令提交计数器更新以及对比,在本发明实施例的方法中,一条uncache访存指令需要与一笔总线uncache操作对应,来对处理器的uncache操作进行验证。即总线不能够比提交的指令多发一笔uncache操作,也不能够少发一笔uncache操作,不但可以提高验证平台的可检测性,而且可以提高验证工作的全面性。
根据本发明实施例的uncache数据访存的验证方法,通过待测设计uncache指令提交行为来对总线uncache行为进行自校验,从而检测出变序多发射处理器外部总线uncache操作次数是否正确,处理器验证人员可以准确监控访问I/O地址段的uncache指令是否被分支预测或异步异常导致的清空流水线的操作所影响,确保处理器不会发生错误冗余的总线操作,提高验证准确度,以及既可以将验证工作的主要精力放在如何施加激励方面,提高验证工作的全面性,同时又保证了变序多发射处理器uncache指令提交与总线uncache访问I/O地址段的操作一一对应,提高了验证环境的可检测性。
其次参照附图描述根据本发明实施例提出的uncache数据访存的验证装置。
图7是本发明实施例的uncache数据访存的验证装置的结构示意图。
如图7所示,该uncache数据访存的验证装置100包括:第一获取模块101、第一判断模块102、第二判断模块103、第二获取模块104、第三判断模块105、第一置位模块106、第四判断模块107、第五判断模块108、第二置位模块109、操作模块110和控制模块111。
其中,第一获取模块101用于获取总线访存类型、缓存操作类型、有效数据位宽和地址。第一判断模块102用于判断总线访问的地址是否处于I/O地址段。在处于输入输出设备(I/O)地址段时,第二判断模块103用于判断缓存操作类型是否为uncache。第二获取模块104用于获取访存列队的操作类型、缓存操作类型、有效数据位宽和地址。第三判断模块105用于判断总线访存类型、缓存操作类型、有效数据位宽和地址与访存列队的操作类型、缓存操作类型、有效数据位宽和地址是否匹配。在匹配时,第一置位模块106用于将用于总线对I/O发起uncache操作计数器有效标志位置位。第四判断模块107用于判断是否清空流水线。在未清空流水线时,第五判断模块108用于判断访存列队所对应的指令是否提交。在提交时,第二置位模块109用于访问I/O的uncache指令提交计数器有效标志位置位。操作模块110用于分别获取指令提交计数器和总线操作计数器的有效标志位,并根据提有效标志位分别对计数器进行加1操作。控制模块111用于在指令提交计数器和总线操作计数器相等时,判断仿真是否结束。本发明实施例的装置100可以通过待测设计uncache指令提交行为来对总线uncache行为进行自校验,从而检测出变序多发射处理器外部总线uncache操作次数是否正确,提高验证准确度。
进一步地,在本发明的一个实施例中,当清空流水线时,操作模块110直接获取指令提交计数器和总线操作计数器的有效标志位。
进一步地,在本发明的一个实施例中,操作模块110还用于分别根据指令提交计数器和总线操作计数器的有效标志位判断是否对指令提交计数器和总线操作计数器执行加1操作,其中,当标志位有效时,对应的计数器执行加1操作。
进一步地,在本发明的一个实施例中,当仿真未结束时,第一获取模块101还用于继续监控总线的读写操作。
进一步地,在本发明的一个实施例中,本发明实施例的装置100还包括:报错模块。其中,当提交计数器和操作计数器计数不相等时,报错模块用于报错。
需要说明的是,前述对uncache数据访存的验证方法实施例的解释说明也适用于该实施例的uncache数据访存的验证装置,此处不再赘述。
根据本发明实施例的uncache数据访存的验证装置,通过待测设计uncache指令提交行为来对总线uncache行为进行自校验,从而检测出变序多发射处理器外部总线uncache操作次数是否正确,处理器验证人员可以准确监控访问I/O地址段的uncache指令是否被分支预测或异步异常导致的清空流水线的操作所影响,确保处理器不会发生错误冗余的总线操作,提高验证准确度,以及既可以将验证工作的主要精力放在如何施加激励方面,提高验证工作的全面性,同时又保证了变序多发射处理器uncache指令提交与总线uncache访问I/O地址段的操作一一对应,提高了验证环境的可检测性。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (10)

1.一种uncache数据访存的验证方法,其特征在于,包括以下步骤:
获取总线访存类型、缓存操作类型、有效数据位宽和地址;
判断总线访问的所述地址是否处于输入输出设备(I/O)地址段;
如果是,则判断所述缓存操作类型是否为uncache;
如果是,则获取访存列队的操作类型、缓存操作类型、有效数据位宽和地址;
判断所述总线访存类型、缓存操作类型、有效数据位宽和地址与所述访存列队的操作类型、缓存操作类型、有效数据位宽和地址是否匹配;
如果是,则将用于总线对I/O发起uncache操作计数器有效标志位置位;
判断是否清空流水线;
如果否,则判断所述访存列队所对应的指令是否提交;
如果是,则访问I/O的uncache指令提交计数器有效标志位置位;
分别获取所述指令提交计数器和所述总线操作计数器的有效标志位,并根据所述有效标志位分别对计数器进行加1操作;以及
在所述指令提交计数器和所述总线操作计数器相等时,判断仿真是否结束。
2.根据权利要求1所述的uncache数据访存的验证方法,其特征在于,如果清空流水线,则分别获取所述指令提交计数器和所述总线操作计数器对应的有效标志位。
3.根据权利要求1所述的uncache数据访存的验证方法,其特征在于,所述根据所述有效标志位分别对计数器进行加1操作,进一步包括:
分别根据所述指令提交计数器和总线操作计数器的有效标志位判断是否对所述提交计数器和所述操作计数器执行加1操作,其中,当标志位有效时,对应的计数器执行加1操作。
4.根据权利要求1所述的uncache数据访存的验证方法,其特征在于,如果仿真未结束,则继续监控所述总线的读写操作。
5.根据权利要求1所述的uncache数据访存的验证方法,其特征在于,还包括:
如果所述提交计数器和所述操作计数器计数不相等,则报错。
6.一种uncache数据访存的验证装置,其特征在于,包括:
第一获取模块,用于获取总线访存类型、缓存操作类型、有效数据位宽和地址;
第一判断模块,用于判断总线访问的所述地址是否处于输入输出设备(I/O)地址段;
第二判断模块,在处于所述I/O地址段时,用于判断所述缓存操作类型是否为uncache;
第二获取模块,用于获取访存列队的操作类型、缓存操作类型、有效数据位宽和地址;
第三判断模块,用于判断所述总线访存类型、缓存操作类型、有效数据位宽和地址与所述访存列队的操作类型、缓存操作类型、有效数据位宽和地址是否匹配;
第一置位模块,在匹配时,用于将用于总线对I/O发起uncache操作计数器有效标志位置位;
第四判断模块,用于判断是否清空流水线;
第五判断模块,在未清空流水线时,用于判断所述访存列队所对应的指令是否提交;
第二置位模块,在提交时,用于访问I/O的uncache指令提交计数器有效标志位置位;
操作模块,用于分别获取所述指令提交计数器和所述总线操作计数器的有效标志位,并根据所述有效标志位分别对计数器进行加1操作;以及
控制模块,用于在所述指令提交计数器和所述总线操作计数器相等时,判断仿真是否结束。
7.根据权利要求6所述的uncache数据访存的验证装置,其特征在于,当清空流水线时,所述操作模块直接获取所述指令提交计数器和所述总线操作计数器对应的有效标志位。
8.根据权利要求6所述的uncache数据访存的验证装置,其特征在于,所述操作模块还用于分别根据所述指令提交计数器和总线操作计数器的有效标志位判断是否对所述指令提交计数器和所述总线操作计数器执行加1操作,其中,当标志位有效时,对应的计数器执行加1操作。
9.根据权利要求6所述的uncache数据访存的验证装置,其特征在于,当仿真未结束时,第一获取模块还用于继续监控所述总线的读写操作。
10.根据权利要求6所述的uncache数据访存的验证装置,其特征在于,还包括:
报错模块,当所述提交计数器和所述操作计数器计数不相等时,用于报错。
CN201611209223.4A 2016-12-23 2016-12-23 uncache数据访存的验证方法及装置 Active CN107688470B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611209223.4A CN107688470B (zh) 2016-12-23 2016-12-23 uncache数据访存的验证方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611209223.4A CN107688470B (zh) 2016-12-23 2016-12-23 uncache数据访存的验证方法及装置

Publications (2)

Publication Number Publication Date
CN107688470A true CN107688470A (zh) 2018-02-13
CN107688470B CN107688470B (zh) 2020-04-07

Family

ID=61152303

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611209223.4A Active CN107688470B (zh) 2016-12-23 2016-12-23 uncache数据访存的验证方法及装置

Country Status (1)

Country Link
CN (1) CN107688470B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020073260A1 (en) * 2000-12-12 2002-06-13 Kuang-Shin Lin Method for preventing processes between processors from conflicting in a multiprocessor based computer
US6701429B1 (en) * 1998-12-03 2004-03-02 Telefonaktiebolaget Lm Ericsson(Publ) System and method of start-up in efficient way for multi-processor systems based on returned identification information read from pre-determined memory location
CN102841857A (zh) * 2012-07-25 2012-12-26 龙芯中科技术有限公司 缓存预测执行的处理器与装置及方法
CN104461758A (zh) * 2014-11-10 2015-03-25 中国航天科技集团公司第九研究院第七七一研究所 一种容忍cache缺失快速清空流水线的异常处理方法及其处理结构

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6701429B1 (en) * 1998-12-03 2004-03-02 Telefonaktiebolaget Lm Ericsson(Publ) System and method of start-up in efficient way for multi-processor systems based on returned identification information read from pre-determined memory location
US20020073260A1 (en) * 2000-12-12 2002-06-13 Kuang-Shin Lin Method for preventing processes between processors from conflicting in a multiprocessor based computer
CN102841857A (zh) * 2012-07-25 2012-12-26 龙芯中科技术有限公司 缓存预测执行的处理器与装置及方法
CN104461758A (zh) * 2014-11-10 2015-03-25 中国航天科技集团公司第九研究院第七七一研究所 一种容忍cache缺失快速清空流水线的异常处理方法及其处理结构

Also Published As

Publication number Publication date
CN107688470B (zh) 2020-04-07

Similar Documents

Publication Publication Date Title
CN100524231C (zh) 用于非侵入跟踪的方法和装置
CN111931445B (zh) 用于调试逻辑系统设计的方法、仿真器及存储介质
US7836435B2 (en) Checking for memory access collisions in a multi-processor architecture
KR102243791B1 (ko) 메모리 기반 통신 프로토콜을 사용하여 시뮬레이션된 장치를 테스트하기 위한 시스템 및 방법
CN105930242A (zh) 一种支持精确访存检测的多核处理器随机验证方法及装置
CN104750459B (zh) 带有事务功能以及报告事务操作的日志记录电路的处理器
CN103197914B (zh) 多处理器延迟执行的方法和系统
CN114168200B (zh) 多核处理器访存一致性的验证系统及方法
CN105005538B (zh) 许可对互连电路内的排序风险检测进行修复的装置和方法
CN103793032B (zh) 用于确定上电复位的方法和装置
CN110674055A (zh) 一种用于部件级和部件联合级的缓存一致性模拟验证方法
US6331957B1 (en) Integrated breakpoint detector and associated multi-level breakpoint techniques
CN115563914A (zh) 验证方法及装置、计算设备、计算机可读存储介质
CN107533473A (zh) 用于仿真的高效波形生成
CN106326046B (zh) 存储器控制器的验证环境平台
Sala et al. SafeTI: a hardware traffic injector for mpsoc functional and timing validation
CN107688470A (zh) uncache数据访存的验证方法及装置
Gottschall et al. Balancing Accuracy and Evaluation Overhead in Simulation Point Selection
CN106933727A (zh) 处理器中断机制的验证方法及验证装置
CN115840593A (zh) 处理器中的执行部件的验证方法及装置、设备、存储介质
CN106933750A (zh) 用于多级缓存中数据及状态的验证方法及装置
CN112416687B (zh) 验证访存操作的方法与系统以及验证设备和存储介质
Li Computer embedded automatic test system based on VxWorks
Lebedev et al. Construction of validation modules based on reference functional models in a standalone verification of communication subsystem
Bramley et al. On the measurement of safe fault failure rates in high-performance compute processors

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20180925

Address after: 100085 west 4 Street 5, five street, Haidian District, Beijing.

Applicant after: Beijing Guorui Zhongshu Technology Co.,Ltd.

Applicant after: No. 14 Inst., China Electronic Science & Technology Group Corp.

Address before: 100085 Haidian District, Beijing, Shanghai Information Road 5 Street high Li two thousand science and Technology Building 4 story West.

Applicant before: Beijing Guorui Zhongshu Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant