CN109032879A - 多核处理器访存数据检测验证系统及方法 - Google Patents

多核处理器访存数据检测验证系统及方法 Download PDF

Info

Publication number
CN109032879A
CN109032879A CN201710433588.3A CN201710433588A CN109032879A CN 109032879 A CN109032879 A CN 109032879A CN 201710433588 A CN201710433588 A CN 201710433588A CN 109032879 A CN109032879 A CN 109032879A
Authority
CN
China
Prior art keywords
access instruction
memory
access
verified
design
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
CN201710433588.3A
Other languages
English (en)
Other versions
CN109032879B (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.)
Spreadtrum Communications Shanghai Co Ltd
Original Assignee
Spreadtrum Communications Shanghai 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 Spreadtrum Communications Shanghai Co Ltd filed Critical Spreadtrum Communications Shanghai Co Ltd
Priority to CN201710433588.3A priority Critical patent/CN109032879B/zh
Publication of CN109032879A publication Critical patent/CN109032879A/zh
Application granted granted Critical
Publication of CN109032879B publication Critical patent/CN109032879B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • G06F11/2242Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors in multi-processor systems, e.g. one processor becoming the test master
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Advance Control (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明提供一种多核处理器访存数据检测验证系统及方法。所述系统包括访存指令执行模拟器、存储器仿真模型、流水线监控器、指令访问存储器监控器、访存指令缓存器、模式选择器和比较器,所述访存指令执行模拟器,用于采集被发送到待验证设计中的访存指令,对所述访存指令进行模拟,发出对所述存储器仿真模型的读写请求,接收所述存储器仿真模型反馈的仿真结果,当所述流水线监控器监控到待验证设计中访存指令执行完成时,将所述仿真结果发送至比较器;所述比较器,用于对待验证设计的执行结果和所述访存指令执行模拟器发送的仿真结果进行比较。本发明能够实现多核处理器访存数据检测验证的准确检测和错误定位,提高验证效率。

Description

多核处理器访存数据检测验证系统及方法
技术领域
本发明涉及CPU设计技术领域,尤其涉及一种多核处理器访存数据检测验证系统及方法。
背景技术
访存单元的验证工作在CPU(Central Processing Unit,中央处理器)设计中非常关键并贯穿于整个设计过程中。访存单元实现的功能越多,电路的集成复杂度就越高,验证工作的复杂度和工作量也就越大。
对于单核处理器的访问存储模型,对内存单元的读操作就是读取最近一次对内存单元写操作所写入的值,因此写操作的值唯一确定了此后对同一单元读操作的结果。目前对单核处理器进行验证的仿真方法,通常采用验证向量在参考模型中得出的执行结果,与实际RTL(Register Transfer Level,寄存器传输级)的执行结果进行比较,从而判断出对错。由于单核处理器环境下的串行程序每次运行的结果具有唯一确定性,因此单核处理的验证相对简单顺利。
随着工艺和应用的不断发展,多核处理器结构越来越适应当前对高性能处理器的发展需求。多核对单核Cache(高速缓存)、处理速度、带宽等存储资源的竞争使得对访存单元的要求也就越来越高。对于多核处理器共享存储系统来说,多核处理器核可以对同一存储单元同时进行读写操作,这就意味着多核处理器共享存储访存事件发生顺序及其结果可以不唯一,这就使得对多核处理器共享存储系统的设计和验证工作都会非常复杂。访存单元执行的正确性由存储一致性模型确定,存储一致性模型作为多核处理器的硬件与软件、操作系统与应用程序的接口,详细规定了共享存储系统中访存事件之间的顺序要求,保证系统的正确性。
学术界对多个处理器的访存验证做了大量的研究,但也只能说明多核处理器存储一致性设计符合存储一致性模型,而符合存储一致性模型情况下的多核处理器访存次序及结果仍可以不唯一,当访存指令与并行程序中更多复杂指令随机组合在一起时,这种访存结果的不唯一性会使得多核处理器执行随机仿真验证时指令执行结果的正确性很难判断。目前验证多核处理器常用的方法是采用随机验证方法对多核处理器系统进行访存一致性验证。随机验证方法是将用户约束和指令库相结合,通过随机生成引擎生成验证向量,生成的验证向量被分别送入指令级模拟器和待验证设计仿真环境中执行,并对执行结果进行比较,比较结果不一致时可以检测出处理器设计中的错误。对于多核处理器来说,当并行程序中访存指令与其它复杂指令随机组合在一起,访存结果的不唯一性会使得随机验证时结果比较环节很难完成,导致很难直接使用传统随机验证技术进行多核处理器仿真验证。目前验证多核处理器常用模式是:首先运用传统随机验证技术对多核处理器中每个处理器核进行验证,再针对连接各个处理器核的片上网络进行仿真验证,最后对多核处理器系统进行存储一致性验证。
上述多核处理器验证模式常常会出现设计错误逃逸现象,特别是当多核处理器存储一致性设计正确,多核交叉访存与其它指令混合执行会发生错误时,多核处理器验证常常无法准确检测和定位错误。
在实现本发明的过程中,发明人发现现有技术中至少存在如下技术问题:
当前多核处理器仿真验证中,访存结果的不唯一性会使得随机验证时结果比较环节很难完成,无法准确检测和定位错误,验证效率不高。
发明内容
本发明提供的多核处理器访存数据检测验证系统及方法,能够实现多核处理器访存数据检测验证的准确检测和错误定位,提高验证效率。
第一方面,本发明提供一种多核处理器访存数据检测验证系统,所述系统包括访存指令执行模拟器、存储器仿真模型、流水线监控器、指令访问存储器监控器、访存指令缓存器、模式选择器和比较器,其中,
所述访存指令执行模拟器,用于采集被发送到待验证设计中的访存指令,对所述访存指令进行模拟,发出对所述存储器仿真模型的读写请求,接收所述存储器仿真模型反馈的仿真结果,当所述流水线监控器监控到待验证设计中访存指令执行完成时,将所述存储器仿真模型反馈的仿真结果发送至所述比较器;
所述存储器仿真模型,用于模拟待验证设计中访存单元的存储器模型,接收所述访存指令执行模拟器发出的读写请求,并将仿真结果反馈给所述访存指令执行模拟器;
所述流水线监控器,用于监控待验证设计中访存指令在流水线中的运行状态;
所述指令访问存储器监控器,用于监控待验证设计中访存指令的读写操作,当待验证设计中的访存指令完成读写操作后,向所述访存指令缓存器发送仿真指示;
所述访存指令缓存器,用于存放所述访存指令执行模拟器产生的访存指令以及对应的读写请求,当接收到所述指令访问存储器监控器发送来的仿真指示后,将所述访存指令和读写请求发送给所述存储器仿真模型;
所述模式选择器,用于选择当前工作模式是单核处理器模式或多核处理器模式;
所述比较器,用于对待验证设计的执行结果和所述访存指令执行模拟器发送的仿真结果进行比较。
可选地,所述待验证设计中访存指令在流水线中的运行状态包括:访存指令当前所处流水线的位置、是否发生异常、是否发生刷新、是否到达最后一级流水线以及是否准备写回执行结果。
可选地,当所述模式选择器选择当前工作模式是单核处理器模式时,所述访存指令执行模拟器,用于采集被发送到待验证设计中的访存指令,对所述访存指令进行模拟,并将模拟后的访存指令和对所述存储器仿真模型的读写请求直接发送给所述存储器仿真模型。
可选地,当所述模式选择器选择当前工作模式是多核处理器模式时,所述访存指令执行模拟器,用于将所述访存指令执行模拟器产生的访存指令以及对应的读写请求先发送至所述访存指令缓存器进行存放。
可选地,所述比较器,还用于输出比较结果,当有错误发生时将出错的访存指令信息打印到仿真文件中。
第二方面,本发明提供一种多核处理器访存数据检测验证方法,包括:
访存指令执行模拟器采集被发送到待验证设计中的访存指令,对所述访存指令进行模拟,发出对所述存储器仿真模型的读写请求;
当模式选择器选择当前工作模式是多核处理器模式时,访存指令缓存器存放所述访存指令执行模拟器产生的访存指令以及对应的读写请求;
指令访问存储器监控器监控待验证设计中访存指令的读写操作,当待验证设计中的访存指令完成读写操作后,向所述访存指令缓存器发送仿真指示;
所述访存指令缓存器将所述访存指令和读写请求发送给所述存储器仿真模型;
所述存储器仿真模型模拟待验证设计中访存单元的存储器模型,将仿真结果反馈给所述访存指令执行模拟器;
流水线监控器监控待验证设计中访存指令在流水线中的运行状态;
当所述流水线监控器监控到待验证设计中访存指令执行完成时,所述访存指令执行模拟器将所述存储器仿真模型反馈的仿真结果发送至比较器;
所述比较器对待验证设计的执行结果和所述访存指令执行模拟器发送的仿真结果进行比较。
可选地,所述待验证设计中访存指令在流水线中的运行状态包括:访存指令当前所处流水线的位置、是否发生异常、是否发生刷新、是否到达最后一级流水线以及是否准备写回执行结果。
可选地,所述方法还包括:
当模式选择器选择当前工作模式是单核处理器模式时,所述访存指令执行模拟器采集被发送到待验证设计中的访存指令,对所述访存指令进行模拟,并将模拟后的访存指令和对所述存储器仿真模型的读写请求直接发送给所述存储器仿真模型;
所述存储器仿真模型模拟待验证设计中访存单元的存储器模型,将仿真结果反馈给所述访存指令执行模拟器;
流水线监控器监控待验证设计中访存指令在流水线中的运行状态;
当所述流水线监控器监控到待验证设计中访存指令执行完成时,所述访存指令执行模拟器将所述存储器仿真模型反馈的仿真结果发送至比较器;
所述比较器对待验证设计的执行结果和所述访存指令执行模拟器发送的仿真结果进行比较。
可选地,当所述模式选择器选择当前工作模式是多核处理器模式时,在所述发出对所述存储器仿真模型的读写请求之后,所述方法还包括:
所述访存指令执行模拟器将产生的访存指令以及对应的读写请求先发送至所述访存指令缓存器进行存放。
可选地,在所述比较器对待验证设计的执行结果和所述访存指令执行模拟器发送的仿真结果进行比较之后,所述方法还包括:
所述比较器输出比较结果,当有错误发生时将出错的访存指令信息打印到仿真文件中。
本发明实施例提供的多核处理器访存数据检测验证系统及方法,能够实时动态高效率地检测每条访存指令从存储器中读或往存储器写的数据是否正确,当有错误发生时,访存数据检测可以告诉设计人员出错的指令、出错时间、错误的数据以及应该正常的数据,同时还会对出错的原因进行自动分析,帮助设计人员快速定位问题,解决了长期困扰多核处理器验证的准确检测和问题定位的效率问题。访存数据检测不仅支持单核处理器的检测,而且支持多核处理器共享存储系统,可以对每个CPU核的逻辑进行检测。
附图说明
图1为本发明实施例多核处理器访存数据检测验证系统的结构示意图;
图2为本发明实施例多核处理器访存数据检测验证方法的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种多核处理器访存数据检测验证系统,如图1所示,所述系统包括访存指令执行模拟器101、存储器仿真模型102、流水线监控器103、指令访问存储器监控器104、访存指令缓存器105、模式选择器106和比较器107,其中,
所述访存指令执行模拟器101,用于采集被发送到待验证设计中的访存指令,对所述访存指令进行模拟,发出对所述存储器仿真模型102的读写请求,接收所述存储器仿真模型102反馈的仿真结果,当所述流水线监控器103监控到待验证设计中访存指令执行完成时,将所述存储器仿真模型102反馈的仿真结果发送至所述比较器107;
所述存储器仿真模型102,用于模拟待验证设计中访存单元的存储器模型,接收所述访存指令执行模拟器101发出的读写请求,并将仿真结果反馈给所述访存指令执行模拟器101;
所述流水线监控器103,用于监控待验证设计中访存指令在流水线中的运行状态,获取访存指令当前所处流水线的位置、是否发生异常、是否发生刷新、是否到达最后一级流水线以及是否准备写回执行结果;
所述指令访问存储器监控器104,用于监控待验证设计中访存指令读写Cache或存储器的操作,当待验证设计中的访存指令完成读写Cache或存储器的操作后,向所述访存指令缓存器105发送信号,指示所述访存指令缓存器105将访存指令和读写请求发送给所述存储器仿真模型102;
所述访存指令缓存器105,用于存放所述访存指令执行模拟器101产生的访存指令以及对应的读写请求,当接收到所述指令访问存储器监控器104发送来的仿真指示后,将所述访存指令和读写请求发送给所述存储器仿真模型102;
所述模式选择器106,用于选择当前工作模式是多核处理器模式还是单核处理器模式;
具体地,当所述模式选择器106选择当前工作模式是单核处理器模式时,所述访存指令执行模拟器101,用于采集被发送到待验证设计中的访存指令,对所述访存指令进行模拟,并将模拟后的访存指令和对所述存储器仿真模型102的读写请求直接发送给所述存储器仿真模型102;当所述模式选择器106选择当前工作模式是多核处理器模式时,所述访存指令执行模拟器101,用于将所述访存指令执行模拟器101产生的访存指令以及对应的读写请求先发送至所述访存指令缓存器105进行存放。
所述比较器107,用于对待验证设计的执行结果和所述访存指令执行模拟器101产生的正确仿真结果进行比较。
本发明实施例提供的多核处理器访存数据检测验证系统,能够实时动态高效率地检测每条访存指令从存储器中读或往存储器写的数据是否正确,当有错误发生时,访存数据检测可以告诉设计人员出错的指令、出错时间、错误的数据以及应该正常的数据,同时还会对出错的原因进行自动分析,帮助设计人员快速定位问题,解决了长期困扰多核处理器验证的准确检测和问题定位的效率问题。访存数据检测不仅支持单核处理器的检测,而且支持多核处理器共享存储系统,可以对每个CPU核的逻辑进行检测。
在本发明实施例中,访存数据检测可以动态实时地对多核处理器中每一条访存指令的执行结果进行检测。如果访存指令执行正确时,则会继续执行下一条访存指令;如果访存指令执行错误时,则会发生错误,比较器会打印出错的指令地址、出错时间、错误的数据以及应该正确的数据都会打印到仿真文件中,同时还会对出错的原因进行自动分析,帮助设计人员快速定位问题。
访存数据检测有两种工作模式,单核处理器模式和多核处理器模式,两种工作模式可以分别使用在单核处理器的验证环境和多核处理器的验证环境中。在多核处理器模式下,该验证方法能够解决多核处理器中访存指令程序运行结果的不唯一性而导致结果难以比较的难题。
在两种模式下,该验证方法都可以动态实时地对处理器中的访存指令的执行结果进行检测。
在程序仿真过程中,该访存数据检测直接从待验证设计中的访存单元输入端口中采集访存指令信息,然后对这些信息进行处理,根据访存指令信息对存储器模型进行读写操作,得到正确的指令执行结果。同时还会实时监控待验证设计中访存指令的执行状态,当指令执行完成后,会采集待验证设计中的访存指令执行结果和正确的指令执行结果进行比较,如果比较错误时则会输出访存指令的相关错误信息到仿真文件中,帮助设计者定位问题。
本发明实施例还提供一种多核处理器访存数据检测验证方法,如图2所示,所述方法包括:
步骤S101、当检查到有一条访存指令被发射到待验证设计中的访存单元时,该访存数据检测开始运行。
步骤S102、访存指令执行模拟器会根据采集到的访存指令信息对存储器仿真模型进行读写操作。
步骤S103、根据执行模式的不同,该验证方法支持不同的执行流程,如果是单核处理器模式,则执行步骤S104;如果是多核处理器模式,则执行步骤S107。
步骤S104、由访存指令执行模拟器产生的读写操作会直接发送到存储器仿真模型中,存储器仿真模型接收仿真指令请求且完成相应的读写操作时,会把执行结果返回给访存指令执行模拟器。
步骤S105、动态实时地监控待验证设计中的访存指令执行状态。
步骤S106、判断待验证设计中指令是否执行完成,如果待验证设计中指令执行完成,则会将执行结果和访存指令执行模拟器中正确的结果发往比较器进行比较,否则返回执行步骤S105。
步骤S107、在比较器中输出比较结果,如果有错误发生时,则会把出错的访存指令信息打印到仿真文件中,具体信息如表1所示;
表1
信息点 具体描述
指令 访存指令类型,访存地址,访存大小范围
时间 指令发射时间,指令完成时间
数据 指令执行结果,正确的执行结果
Cache 指令是否命中Cache,指令是否旁路其他指令的数据
读写操作 访存指令发出的读写操作被存放的队列成员编号
相关指令 对同一地址进行访存的其它指令的信息
步骤S108、在多核处理器模式下,由访存指令执行模拟器产生的读写操作会缓存在访存指令缓存器中,同时会根据访存指令对存储器仿真模型进行读写操作。
步骤S109、实时监控待验证设计中访存指令对存储器的执行状态。
步骤S110、判断待验证设计中的访存指令是否完成对存储器的读写操作,如果待验证设计中的访存指令完成对存储器的读写操作,则执行步骤S111;否则返回执行步骤S109。
步骤S111、访存指令缓存器会将该指令产生的读写操作发送到存储器仿真模型中,存储器仿真模型将结果返回到访存指令执行模拟器中。
此后的步骤与单核处理器模式下的步骤S105至步骤S107相同,当待验证设计中指令执行完成,则会将执行结果和访存指令执行模拟器中正确的结果发往比较器进行比较。
本发明实施例提供的多核处理器访存数据检测验证方法,能够实时动态高效率地检测每条访存指令从存储器中读或往存储器写的数据是否正确,当有错误发生时,访存数据检测可以告诉设计人员出错的指令、出错时间、错误的数据以及应该正常的数据,同时还会对出错的原因进行自动分析,帮助设计人员快速定位问题,解决了长期困扰多核处理器验证的准确检测和问题定位的效率问题。访存数据检测不仅支持单核处理器的检测,而且支持多核处理器共享存储系统,可以对每个CPU核的逻辑进行检测。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (10)

1.一种多核处理器访存数据检测验证系统,其特征在于,所述系统包括访存指令执行模拟器、存储器仿真模型、流水线监控器、指令访问存储器监控器、访存指令缓存器、模式选择器和比较器,其中,
所述访存指令执行模拟器,用于采集被发送到待验证设计中的访存指令,对所述访存指令进行模拟,发出对所述存储器仿真模型的读写请求,接收所述存储器仿真模型反馈的仿真结果,当所述流水线监控器监控到待验证设计中访存指令执行完成时,将所述存储器仿真模型反馈的仿真结果发送至所述比较器;
所述存储器仿真模型,用于模拟待验证设计中访存单元的存储器模型,接收所述访存指令执行模拟器发出的读写请求,并将仿真结果反馈给所述访存指令执行模拟器;
所述流水线监控器,用于监控待验证设计中访存指令在流水线中的运行状态;
所述指令访问存储器监控器,用于监控待验证设计中访存指令的读写操作,当待验证设计中的访存指令完成读写操作后,向所述访存指令缓存器发送仿真指示;
所述访存指令缓存器,用于存放所述访存指令执行模拟器产生的访存指令以及对应的读写请求,当接收到所述指令访问存储器监控器发送来的仿真指示后,将所述访存指令和读写请求发送给所述存储器仿真模型;
所述模式选择器,用于选择当前工作模式是单核处理器模式或多核处理器模式;
所述比较器,用于对待验证设计的执行结果和所述访存指令执行模拟器发送的仿真结果进行比较。
2.根据权利要求1所述的系统,其特征在于,所述待验证设计中访存指令在流水线中的运行状态包括:访存指令当前所处流水线的位置、是否发生异常、是否发生刷新、是否到达最后一级流水线以及是否准备写回执行结果。
3.根据权利要求1所述的系统,其特征在于,当所述模式选择器选择当前工作模式是单核处理器模式时,所述访存指令执行模拟器,用于采集被发送到待验证设计中的访存指令,对所述访存指令进行模拟,并将模拟后的访存指令和对所述存储器仿真模型的读写请求直接发送给所述存储器仿真模型。
4.根据权利要求1所述的系统,其特征在于,当所述模式选择器选择当前工作模式是多核处理器模式时,所述访存指令执行模拟器,用于将所述访存指令执行模拟器产生的访存指令以及对应的读写请求先发送至所述访存指令缓存器进行存放。
5.根据权利要求1所述的系统,其特征在于,所述比较器,还用于输出比较结果,当有错误发生时将出错的访存指令信息打印到仿真文件中。
6.一种多核处理器访存数据检测验证方法,其特征在于,包括:
访存指令执行模拟器采集被发送到待验证设计中的访存指令,对所述访存指令进行模拟,发出对所述存储器仿真模型的读写请求;
当模式选择器选择当前工作模式是多核处理器模式时,访存指令缓存器存放所述访存指令执行模拟器产生的访存指令以及对应的读写请求;
指令访问存储器监控器监控待验证设计中访存指令的读写操作,当待验证设计中的访存指令完成读写操作后,向所述访存指令缓存器发送仿真指示;
所述访存指令缓存器将所述访存指令和读写请求发送给所述存储器仿真模型;
所述存储器仿真模型模拟待验证设计中访存单元的存储器模型,将仿真结果反馈给所述访存指令执行模拟器;
流水线监控器监控待验证设计中访存指令在流水线中的运行状态;
当所述流水线监控器监控到待验证设计中访存指令执行完成时,所述访存指令执行模拟器将所述存储器仿真模型反馈的仿真结果发送至比较器;
所述比较器对待验证设计的执行结果和所述访存指令执行模拟器发送的仿真结果进行比较。
7.根据权利要求6所述的方法,其特征在于,所述待验证设计中访存指令在流水线中的运行状态包括:访存指令当前所处流水线的位置、是否发生异常、是否发生刷新、是否到达最后一级流水线以及是否准备写回执行结果。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
当模式选择器选择当前工作模式是单核处理器模式时,所述访存指令执行模拟器采集被发送到待验证设计中的访存指令,对所述访存指令进行模拟,并将模拟后的访存指令和对所述存储器仿真模型的读写请求直接发送给所述存储器仿真模型;
所述存储器仿真模型模拟待验证设计中访存单元的存储器模型,将仿真结果反馈给所述访存指令执行模拟器;
流水线监控器监控待验证设计中访存指令在流水线中的运行状态;
当所述流水线监控器监控到待验证设计中访存指令执行完成时,所述访存指令执行模拟器将所述存储器仿真模型反馈的仿真结果发送至比较器;
所述比较器对待验证设计的执行结果和所述访存指令执行模拟器发送的仿真结果进行比较。
9.根据权利要求6所述的方法,其特征在于,当所述模式选择器选择当前工作模式是多核处理器模式时,在所述发出对所述存储器仿真模型的读写请求之后,所述方法还包括:
所述访存指令执行模拟器将产生的访存指令以及对应的读写请求先发送至所述访存指令缓存器进行存放。
10.根据权利要求6所述的方法,其特征在于,在所述比较器对待验证设计的执行结果和所述访存指令执行模拟器发送的仿真结果进行比较之后,所述方法还包括:
所述比较器输出比较结果,当有错误发生时将出错的访存指令信息打印到仿真文件中。
CN201710433588.3A 2017-06-09 2017-06-09 多核处理器访存数据检测验证系统及方法 Active CN109032879B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710433588.3A CN109032879B (zh) 2017-06-09 2017-06-09 多核处理器访存数据检测验证系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710433588.3A CN109032879B (zh) 2017-06-09 2017-06-09 多核处理器访存数据检测验证系统及方法

Publications (2)

Publication Number Publication Date
CN109032879A true CN109032879A (zh) 2018-12-18
CN109032879B CN109032879B (zh) 2021-08-20

Family

ID=64629789

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710433588.3A Active CN109032879B (zh) 2017-06-09 2017-06-09 多核处理器访存数据检测验证系统及方法

Country Status (1)

Country Link
CN (1) CN109032879B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109376049A (zh) * 2018-12-27 2019-02-22 南京胜跃新材料科技有限公司 一种fpga嵌入式块存储器的性能测试方法
CN110059391A (zh) * 2019-04-10 2019-07-26 北京中科寒武纪科技有限公司 待测器件验证装置及相关产品
CN110955605A (zh) * 2019-12-10 2020-04-03 宁波轸谷科技有限公司 一种cpu验证单步动态执行的方法
CN111324948A (zh) * 2020-02-10 2020-06-23 上海兆芯集成电路有限公司 模拟方法及模拟系统
CN112416687A (zh) * 2020-12-02 2021-02-26 海光信息技术股份有限公司 验证访存操作的方法与系统以及验证设备和存储介质
CN112965885A (zh) * 2019-12-12 2021-06-15 中科寒武纪科技股份有限公司 访存带宽的检测方法、装置、计算机设备及可读存储介质
CN113076709A (zh) * 2021-04-16 2021-07-06 江南大学 一种基于混合参考模型的多核处理器功能验证平台及方法
CN113535499A (zh) * 2021-07-22 2021-10-22 无锡江南计算技术研究所 一种支持多核心共享访问的多类型并存访存流验证方法
CN114168200A (zh) * 2022-02-14 2022-03-11 北京微核芯科技有限公司 多核处理器访存一致性的验证系统及方法
CN115658414A (zh) * 2022-12-29 2023-01-31 中科亿海微电子科技(苏州)有限公司 基于risc-v架构处理器核的功能验证方法及平台

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006293759A (ja) * 2005-04-12 2006-10-26 Fujitsu Ltd マルチコアモデルシミュレータ
CN102096607A (zh) * 2010-03-16 2011-06-15 威盛电子股份有限公司 微处理器及其除错方法
CN102929686A (zh) * 2012-09-28 2013-02-13 杭州中天微系统有限公司 一种片上多核处理器功能验证方法
CN105589993A (zh) * 2015-12-18 2016-05-18 中国科学院微电子研究所 微处理器功能验证设备及微处理器功能验证方法
CN105930242A (zh) * 2016-05-06 2016-09-07 中国科学院计算技术研究所 一种支持精确访存检测的多核处理器随机验证方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006293759A (ja) * 2005-04-12 2006-10-26 Fujitsu Ltd マルチコアモデルシミュレータ
CN102096607A (zh) * 2010-03-16 2011-06-15 威盛电子股份有限公司 微处理器及其除错方法
CN102929686A (zh) * 2012-09-28 2013-02-13 杭州中天微系统有限公司 一种片上多核处理器功能验证方法
CN105589993A (zh) * 2015-12-18 2016-05-18 中国科学院微电子研究所 微处理器功能验证设备及微处理器功能验证方法
CN105930242A (zh) * 2016-05-06 2016-09-07 中国科学院计算技术研究所 一种支持精确访存检测的多核处理器随机验证方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ZHANG JIA-AN 等: ""A Study of Power System Parallel Simulation"", 《2011 INTERNATIONAL CONFERENCE ON ELECTRIC INFORMATION AND CONTROL ENGINEERING》 *
郭阳 等: ""片上多核处理器验证:挑战、现状与展望"", 《计算机辅助设计与图形学学报》 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109376049A (zh) * 2018-12-27 2019-02-22 南京胜跃新材料科技有限公司 一种fpga嵌入式块存储器的性能测试方法
CN109376049B (zh) * 2018-12-27 2022-04-01 山东泉景胜跃信息技术有限公司 一种fpga嵌入式块存储器的性能测试方法
CN110059391A (zh) * 2019-04-10 2019-07-26 北京中科寒武纪科技有限公司 待测器件验证装置及相关产品
CN110059391B (zh) * 2019-04-10 2022-12-09 中科寒武纪科技股份有限公司 待测器件验证装置及相关产品
CN110955605A (zh) * 2019-12-10 2020-04-03 宁波轸谷科技有限公司 一种cpu验证单步动态执行的方法
CN112965885B (zh) * 2019-12-12 2024-03-01 中科寒武纪科技股份有限公司 访存带宽的检测方法、装置、计算机设备及可读存储介质
CN112965885A (zh) * 2019-12-12 2021-06-15 中科寒武纪科技股份有限公司 访存带宽的检测方法、装置、计算机设备及可读存储介质
CN111324948A (zh) * 2020-02-10 2020-06-23 上海兆芯集成电路有限公司 模拟方法及模拟系统
CN111324948B (zh) * 2020-02-10 2023-04-25 上海兆芯集成电路有限公司 模拟方法及模拟系统
CN112416687B (zh) * 2020-12-02 2022-07-12 海光信息技术股份有限公司 验证访存操作的方法与系统以及验证设备和存储介质
CN112416687A (zh) * 2020-12-02 2021-02-26 海光信息技术股份有限公司 验证访存操作的方法与系统以及验证设备和存储介质
CN113076709A (zh) * 2021-04-16 2021-07-06 江南大学 一种基于混合参考模型的多核处理器功能验证平台及方法
CN113535499A (zh) * 2021-07-22 2021-10-22 无锡江南计算技术研究所 一种支持多核心共享访问的多类型并存访存流验证方法
CN113535499B (zh) * 2021-07-22 2023-10-27 无锡江南计算技术研究所 一种支持多核心共享访问的多类型并存访存流验证方法
CN114168200A (zh) * 2022-02-14 2022-03-11 北京微核芯科技有限公司 多核处理器访存一致性的验证系统及方法
CN115658414A (zh) * 2022-12-29 2023-01-31 中科亿海微电子科技(苏州)有限公司 基于risc-v架构处理器核的功能验证方法及平台

Also Published As

Publication number Publication date
CN109032879B (zh) 2021-08-20

Similar Documents

Publication Publication Date Title
CN109032879A (zh) 多核处理器访存数据检测验证系统及方法
US6571204B1 (en) Bus modeling language generator
CN100476837C (zh) 一种支持随机指令测试的微处理器fpga验证装置
CN103810074A (zh) 一种片上系统芯片及相应的监控方法
CN105930242B (zh) 一种支持精确访存检测的多核处理器随机验证方法及装置
CN102929686A (zh) 一种片上多核处理器功能验证方法
KR101280287B1 (ko) 임베디드 소프트웨어 검증장치 및 그 운용방법
US20090248390A1 (en) Trace debugging in a hardware emulation environment
CN103984619A (zh) 一种网络存储系统性能监测方法
CN109557460B (zh) 一种基于fpga的卷积神经网络算法的测试方法及设备
CN110674055B (zh) 一种用于部件级和部件联合级的缓存一致性模拟验证方法
CN103198001B (zh) 能够自测pcie接口的存储系统及测试方法
JP2006313521A (ja) プログラマブルデバイスのモデリング方法および装置
CN115130402B (zh) 一种缓存验证方法、系统、电子设备及可读存储介质
US8874966B1 (en) Storage device error simulator tool
WO2020113526A1 (zh) 一种芯片验证方法和装置
CN108052444A (zh) 一种用于移动应用的性能测试的方法与装置
CN113722020A (zh) 接口调用方法、装置和计算机可读存储介质
CN112131741A (zh) 一种实时双内核单机半实物仿真架构及仿真方法
CN103713977B (zh) 一种微处理器ip核比较验证的实现方法
US11709982B2 (en) Enhanced coverage convergence and test status during simulation runtime
CN110727611B (zh) 一种带状态监测的可配置一致性验证系统
CN109407655A (zh) 一种调试芯片的方法及装置
US20180203628A1 (en) Method, apparatus and computer program product for evaluating data storage systems for energy efficiency
CN112329369B (zh) 一种在芯片仿真模型上进行软件调试的方法

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