CN115827361A - 用于存储模块的数据比对方法、装置、设备和存储介质 - Google Patents

用于存储模块的数据比对方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN115827361A
CN115827361A CN202211367860.XA CN202211367860A CN115827361A CN 115827361 A CN115827361 A CN 115827361A CN 202211367860 A CN202211367860 A CN 202211367860A CN 115827361 A CN115827361 A CN 115827361A
Authority
CN
China
Prior art keywords
read
write
transaction
data
value
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.)
Pending
Application number
CN202211367860.XA
Other languages
English (en)
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.)
Black Sesame Intelligent Technology Chongqing Co Ltd
Original Assignee
Black Sesame Intelligent Technology Chongqing 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 Black Sesame Intelligent Technology Chongqing Co Ltd filed Critical Black Sesame Intelligent Technology Chongqing Co Ltd
Priority to CN202211367860.XA priority Critical patent/CN115827361A/zh
Publication of CN115827361A publication Critical patent/CN115827361A/zh
Priority to US18/386,329 priority patent/US20240143579A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请涉及一种用于存储模块的数据比对方法、装置、计算机设备和存储介质。方法包括:监视存储模块的读事务和写事务;在写事务队列中,存放在途的写事务以及已结束但是与读事务队列中的读事务可能存在读写冲突的写事务;在读事务队列中,存放在途的读事务以及已结束但是尚未完成数据比对的读事务;利用计分板对读事务队列中的每个已结束的读事务执行数据比对;当该读事务的读数据值与参考模型对应地址下的值的数据比对不通过,而该读事务的读数据值与写事务队列中的与该读事务可能存在读写冲突的写事务中对应地址下的写数据值和原始值中的任一值的数据比对通过时,判定该读事务的数据比对通过。采用本方法能够提升对存储模块的异常判断的准确性。

Description

用于存储模块的数据比对方法、装置、设备和存储介质
技术领域
本申请涉及数据验证技术领域,特别是涉及一种用于存储模块的数据比对方法、装置、计算机设备和存储介质。
背景技术
通用验证方法学(Universal Verification Methodology,UVM)是一种用于对待测设计(Design Under Test,DUT)进行验证的技术。一般而言,UVM验证平台中构建有用于模拟DUT的功能的参考模型,UVM验证平台中的计分板将DUT的输出与参考模型的输出进行比对以判断DUT的行为是否与预期相符,从而确认DUT中是否存在异常。
以DUT为存储模块为例,在利用UVM验证平台对存储模块进行验证时,UVM验证平台可以通过该存储模块的接口接入该存储模块,并对从接口监测到的读、写数据进行比较和检查。例如,在监测到读数据时,利用计分板将该读数据与参考模型中的对应数据进行数据比对,以确定数据比对是否通过,如果不通过,则表明存储模块可能存在异常。
而对于使用读通道与写通道相互独立的接口(例如先进可扩展接口(AdvancedExtensible Interface),简称AXI接口)的存储模块而言,在利用UVM验证平台对使用此类接口的存储模块进行验证时,由于此类接口的读、写通道之间的独立性,以及数据从接口到内部存储电路的延时的不固定性,当读、写操作几乎同时进行,且对同一段地址进行了操作时,就可能存在读写冲突的情况,在该情况下,UVM验证平台从接口监测到的该读操作的读数据可能是从接口监测到的该写操作的写数据更新前的值,也可能是该写操作的写数据更新之后的值。
在可能存在读写冲突的情况下UVM验证平台从接口监测到的读数据的这种不确定性,给UVM验证平台的参考模型的设计带来了难题,即难以设计一种参考模型来准确地模拟与使用此类接口的存储模块相同的读写冲突处理特性。而若设计的参考模型不能准确模拟这种特性,则可能发生因监测到的读数据的这种不确定性导致数据比对不通过而存储模块实际运行正常这样的异常误判情况。从而降低了对具有此类接口的存储模块异常判断的准确性。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提升对使用读通道与写通道相互独立的接口的存储模块的异常判断的准确性的用于存储模块的数据比对方法、装置、计算机设备和存储介质。
一种用于存储模块的数据比对方法,所述方法包括:
利用监视器监视存储模块的读事务和写事务;
在写事务队列中,存放在途的写事务以及已结束但是与读事务队列中的读事务可能存在读写冲突的写事务;
在所述读事务队列中,存放在途的读事务以及已结束但是尚未完成数据比对的读事务;
针对所述读事务队列中的每个已结束的读事务,利用计分板对所述读事务执行数据比对;其中,当所述读事务中的读数据值与参考模型中所述读数据值的地址下的数据值的数据比对不通过,而所述读事务中的读数据值与所述写事务队列中的与所述读事务可能存在读写冲突的写事务中所述读数据值的地址下的写数据值和该写数据值写入前的原始值中的任一值的数据比对通过时,则所述计分板判定所述读事务的数据比对通过。
一种用于存储模块的数据比对装置,所述装置包括:
监视模块,用于利用监视器监视存储模块的读事务和写事务;
写事务队列管理模块,用于在写事务队列中,存放在途的写事务以及已结束但是与读事务队列中的读事务可能存在读写冲突的写事务;
读事务队列管理模块,用于在所述读事务队列中,存放在途的读事务以及已结束但是尚未完成数据比对的读事务;
数据比对模块,用于针对所述读事务队列中的每个已结束的读事务,利用计分板对所述读事务执行数据比对;其中,当所述读事务中的读数据值与参考模型中所述读数据值的地址下的数据值的数据比对不通过,而所述读事务中的读数据值与所述写事务队列中的与所述读事务可能存在读写冲突的写事务中所述读数据值的地址下的写数据值和该写数据值写入前的原始值之中的任一值的数据比对通过时,则所述计分板判定所述读事务的数据比对通过。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
利用监视器监视存储模块的读事务和写事务;
在写事务队列中,存放在途的写事务以及已结束但是与读事务队列中的读事务可能存在读写冲突的写事务;
在所述读事务队列中,存放在途的读事务以及已结束但是尚未完成数据比对的读事务;
针对所述读事务队列中的每个已结束的读事务,利用计分板对所述读事务执行数据比对;其中,当所述读事务中的读数据值与参考模型中所述读数据值的地址下的数据值的数据比对不通过,而所述读事务中的读数据值与所述写事务队列中的与所述读事务可能存在读写冲突的写事务中所述读数据值的地址下的写数据值和该写数据值写入前的原始值中的任一值的数据比对通过时,则所述计分板判定所述读事务的数据比对通过。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
利用监视器监视存储模块的读事务和写事务;
在写事务队列中,存放在途的写事务以及已结束但是与读事务队列中的读事务可能存在读写冲突的写事务;
在所述读事务队列中,存放在途的读事务以及已结束但是尚未完成数据比对的读事务;
针对所述读事务队列中的每个已结束的读事务,利用计分板对所述读事务执行数据比对;其中,当所述读事务中的读数据值与参考模型中所述读数据值的地址下的数据值的数据比对不通过,而所述读事务中的读数据值与所述写事务队列中的与所述读事务可能存在读写冲突的写事务中所述读数据值的地址下的写数据值和该写数据值写入前的原始值中的任一值的数据比对通过时,则所述计分板判定所述读事务的数据比对通过。
上述用于存储模块的数据比对方法、装置、计算机设备和存储介质,通过监视器监视存储模块的读事务和写事务,并利用写事务队列和读事务队列读事务和写事务的相关状态进行追踪记录,实现了在进行数据比对时,如果当前读事务中的读数据值与参考模型中对应地址的数据值的数据比对不通过,则利用与该读事务可能存在读写冲突的写事务中对应地址的写数据值和原始值作为参考模型的备选值来与该读事务中的读数据值进行数据比对,只要该读事务中的读数据值能够与对应地址下备选值中的其中一个值的数据比对通过,则认为当前读事务的数据比对通过。从而避免了由于可能存在读写冲突的情况下监测到的读数据的不确定性导致数据比对不通过而存储模块实际运行正常这样的异常误判情况,有效提升了对使用读通道与写通道相互独立的接口的存储模块的异常判断的准确性。此外也避免了开发复杂的参考模型去准确地模拟使用读通道与写通道相互独立的接口的存储模块相似的读写冲突处理特性,即即使开发的参考模型不能模拟该读写冲突特性也能适用于本申请的上述方案,这对加快实际工程项目的开发进展和降低开发成本有积极意义。
附图说明
图1为本申请一个实施例中UVM验证平台的结构示意图;
图2为传统技术中一个示例的UVM验证平台对存储模块进行验证的示意图;
图3为本申请一个实施例中的用于存储模块的数据比对方法的流程示意图;
图4为本申请一个示例中的UVM验证平台对存储模块进行验证的示意图;
图5为本申请一个实施例中的数据比对步骤的流程示意图;
图6为本申请一个示例中的备选值组的结构示意图;
图7为本申请一个实施例中用于存储模块的数据比对装置的结构框图;
图8为本申请一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的用于存储模块的数据比对方法,可以应用于如图1所示的UVM验证平台中。该UVM验证平台例如可以搭载于服务器上,该服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。其中,待测设计被置入UVM验证平台中,例如通过接口接入于UVM验证平台,以利用UVM验证平台对该待测设计进行验证。在本申请实施例中,待测设计可以是使用读通道与写通道相互独立的接口的存储模块,以该接口为AXI接口为例,UVM验证平台可以通过AXI接口接入具有该接口的存储模块的待测设计。参见图1所示,如本领域中已知的,UVM验证平台可以具有多种组件,包括序列(sequence)、代理(agent)(本申请中以使用AXI接口为例则相应地为AXI代理(axi_agent))、序列发生器(sequencer)、驱动器(driver)、监视器(monitor)、计分板(scoreboard)和参考模型(reference model)。UVM验证平台执行本申请实施例中的用于存储模块的数据比对方法,以对接入的存储模块进行验证,由UVM验证平台的计分板给出数据比对是否通过的数据比对结果,其中,数据比对是比对两个数据值是否相同的过程,当数据比对通过时,即所比对的两个数据值相同时,可以认为作为被测设计的存储模块运行正常,而当数据比对不通过时,即所比对的两个数据值不相同时,则认为作为被测设计的存储模块可能存在异常。
可以理解,为了便于描述,本申请使用了AXI接口作为示例,并相应地使用了适于AXI接口的AXI代理、AXI总线、AXI事务等的元素,然而读通道与写通道相互独立的其他接口也是可能的,则相应地这些部件可以同理地替换成适于该其他接口的元素。
参见图2所示,图2中示出了传统技术中一个示例的UVM验证平台对被测的存储模块进行验证的示意图。在传统技术的示例方案中,当一个完整的AXI事务(其可以是读事务或写事务)结束时,监视器才会从AXI接口上监视到该结束的AXI事务,并将其传递给参考模型进行处理,最后在计分板中进行数据比对。具体地,在监视器监视到一个结束的读事务或写事务时,利用UVM TLM通信的write()方法实现以下操作:如果监视到的是写事务,会用该写事务对参考模型中的对应值进行更新;如果监控到的是读事务,则用该读事务的值与参考模型中的值进行数据比对,以给出数据比对是否通过的数据比对结果。
当上述传统方案应用于待测设计是读通道与写通道相互独立的接口(例如AXI接口)的存储模块中时,难以开发复杂的参考模型以模拟使用此类接口的存储模块的读写冲突处理特性。而当使用不能模拟这种读写冲突处理特性的参考模型时,则无法准确地预测输出期望值而无法实现正确地数据比对。具体地,在上述传统方案中,当使用不能模拟这种读写冲突处理特性的参考模型时,当读操作与写操作冲突时,在接口上监测到的读数据可能是该写操作的写数据更新前的值,而随后计分板在执行数据比对时,参考模型中的值则可能是该写操作的写数据更新后的值,则上述传统方案中的计分板将该读数据与参考模型中的值进行数据比对将得到数据比对不通过的数据比对结果,而存储模块此时实际可能是运行正常的,从而易于出现异常误判的情况。
为了解决上述传统技术方案中的至少一个技术问题,本申请提供了一种存储模块的数据比对方法,其能够提升对使用读通道与写通道相互独立的接口的存储模块的异常判断的准确性。
在一个实施例中,如图3所示,本申请提供了一种用于存储模块的数据比对方法,以该方法应用于图1中的UVM验证平台为例进行说明,可以包括以下步骤S310-S340。
S310,利用监视器监视存储模块的读事务和写事务。
在本步骤中,UVM验证平台的监视器通过AXI总线来从AXI接口监视被测的存储模块的每一个读事务或写事务。
进一步地,与前述传统技术方案中仅监视结束的读事务和结束的写事务不同的是,在一个实施例中,本申请的监视器对存储模块的每一个起始的读事务、起始的写事务、结束的读事务和结束的写事务进行监视,以便于利用后续步骤中将描述的写事务队列和读事务队列对不同状态的读事务、写事务进行管理。
示例地,参见图4所示,图4中示出了本申请一个示例中的UVM验证平台对存储模块进行验证的示意图,其中,图4中具体示出了该示例方案中对图2中所示的传统方案中的虚线框内的部分做出了改进的部分,而其余部分可以与图2中相同。
图4中所示的示例方案相对传统计分板方案的不同之处在于,对于AXI总线上的一个AXI事务,监视器在该AXI事务起始、结束时都会分别利用不同的UVM事务级建模(Transaction Level Modeling,TLM)端口监控到它。具体地,可以在监视器侧使用两套用于监视AXI事务的UVM TLM端口,包括起始端口(item_started_port)和观察端口(item_observed_port)。其中起始端口在AXI总线上的AXI事务发起时的起始时刻监视到该AXI事务,而观察端口则在AXI总线上的AXI事务处理结束时的结束时刻监视到该AXI事务。
S320,在写事务队列中,存放在途的写事务以及已结束但是与读事务队列中的读事务可能存在读写冲突的写事务。
其中,写事务是用于对存储模块中的数据进行更新的事务,写事务一般携带有要写入的写数据以及该写数据要写入的地址,写事务用于将其携带的写数据更新到存储模块中的该写数据要写入的地址下。
其中,在途的写事务是指已经起始但尚未结束的写事务。
在本申请中,通过前述步骤S310中监视器对读事务和写事务的监视,可以在写事务队列中对监视到的写事务进行管理。
在一个实施例中,上述步骤S320可以包括:当在步骤S310中监视器监视到起始的写事务时,将该起始的写事务推入写事务队列中;当在步骤S310中监视器监视到结束的写事务时,判定写事务队列中的各个写事务是否与读事务队列中的读事务可能存在读写冲突,将与读事务队列中的读事务不存在读写冲突的写事务从写事务队列中删除。
示例地,每当监视器在端口处监视到一个AXI事务时,UVM测试平台即可以根据所监视到的AXI事务的类型,利用MVU TLM通信的write()方法来执行相应的步骤。
示例地,参见图4所示,每当监视器在起始端口处监视到一个起始的写事务时,UVM测试平台可以执行步骤:(1-1)将该起始的读事务推入计分板中的写事务队列中。每当监视器在观察端口处监视到一个结束的写事务时,UVM测试平台可以执行步骤:(2-2)将当前写事务队列中的所有已收到写响应的写事务中的每个写事务[i],逐一与当前读事务队列中的每个读事务[j]执行第一读写冲突判定,以筛选出与当前读事务队列中的所有读事务都不存在读写冲突的M个写事务,将这M个写事务从队列中删除。其中,M可以为大于或等于零的整数。
通过本实施例中的方案,在每次监视到一个起始的写事务或一个结束的写事务时都对写事务队列进行更新,可以使得写事务队列中存放的写事务保持为在途的写事务以及已结束但是与读事务队列中的读事务可能存在读写冲突的写事务。
在一个实施例中,上述判定写事务队列中的各个写事务是否与读事务队列中的读事务可能存在读写冲突,包括:对于写事务队列中的每个写事务,当在当前写事务的结束时刻,读事务队列中的任一读事务的结束事件还未触发或刚好触发,并且该读事务中访问到的地址与当前写事务中访问到的地址存在重叠时,则判定当前写事务与该读事务可能存在读写冲突。
示例地,在上述步骤(2-2)中可以将当前写事务队列中的所有已收到写响应的写事务中的每个写事务[i],逐一与当前读事务队列中的每个读事务[j]执行以下第一读写冲突判定:
判定条件①:在写事务[i]的结束时刻,读事务[j]的结束事件还未触发或刚好触发;
判定条件②:读事务[j]中访问到的地址与写事务[i]中访问到的地址存在重叠;
如果判定条件①和②同时满足,则判定写事务[i]与读事务[j]可能存在读写冲突;否则,判定该写事务[i]与读事务[j]不存在读写冲突。
通过重复上述第一读写冲突判定,可以完成对当前写事务队列中的所有已收到写响应的写事务与当前读事务队列中的所有读事务之间的是否可能存在读写冲突的判定。
在一个实施例中,当监视器监视到起始的写事务时,方法还包括:从参考模型中获取该起始的写事务的写数据值的地址下该写数据值写入前的原始值,并且将原始值记录在该起始的写事务中。
示例地,参见图4所示,每当监视器在起始端口处监视到一个起始的写事务时,UVM测试平台除了执行步骤(1-1)之外,还可以执行步骤:
(1-2)对于这个起始的写事务的每一字节(byte)写数据值,UVM测试平台可以读取参考模型中各字节写数据值要写入的地址下的值,作为各字节写数据值写入前的原始值,并且将各字节写数据值写入前的原始值备份在这个写事务中的一个用于存放备份数据的动态数组中。
通过本实施中的方案,在每当监视器监视到一个起始的写事务时,即将参考模型中该起始的写事务要写入的写数据值的地址下该写入数据值写入前的原始值记录到该起始的写事务中,从而便利后续在需要时方便地调用各写数据值在其写入前的原始值。
在一个实施例中,当监视器监视到结束的写事务时,方法还包括:利用该结束的写事务中的写数据值对参考模型中该写数据值的地址下的值进行更新。
示例地,参见图4所示,每当监视器在观察端口处监视到一个结束的写事务时,UVM测试平台在执行步骤(2-2)之前,还可以先执行步骤:
(2-1)先利用该结束的写事务中的地址、数据、突发类型、突发大小、突发长度等信息,对参考模型中对应地址下的值进行更新。
通过本实施中的方案,每当监视器监视到一个结束的写事务时,即利用该结束的写事务更新参考模型中的对应值,能够使得参考模型保持对被测的存储模块中数据值的实时模拟。
S330,在读事务队列中,存放在途的读事务以及已结束但是尚未完成数据比对的读事务。
其中,读事务是用于对存储模块中的数据进行读取的事务,起始的读事务一般携带有要读取的读数据的地址,该起始的读事务用于读取存储模块中的该要读取的读数据的地址下的值,并将该值记录到读事务中,从而在该读事务执行结束后,相应的结束的读事务中携带有读取的读数据的地址以及所读取到的读数据。
其中,在途的读事务是指已经起始但尚未结束的读事务。
在本申请中,通过前述步骤S310中监视器对读事务和写事务的监视,可以在读事务队列中对监视到的读事务进行管理。
在一个实施例中,上述步骤S330可以包括:当监视器监视到起始的读事务时,将该起始的读事务推入读事务队列中;当监视器监视到结束的读事务时,在执行利用计分板对读事务执行数据比对以完成了对读事务的数据比对之后,将读事务从读事务队列中删除。
示例地,参见图4所示,每当监视器在起始端口处监视到一个起始的读事务时,UVM测试平台可以执行步骤:(3-1)将该起始的读事务推入计分板中的读事务队列。每当监视器在观察端口处监视到一个结束的读事务时,UVM测试平台可以在步骤S340中利用计分板对该结束的读事务执行数据比对以完成了对该结束的读事务的数据比对之后,执行步骤:(4-5)将完成了数据比对的该结束的读事务从读事务队列中删除。
通过本实施例中的方案,在每次监视到一个起始的读事务或一个结束的读事务时都对读事务队列进行更新,可以使得读事务队列中存放的读事务保持为在途的读事务以及已结束但是尚未完成数据比对的读事务。
S340,针对读事务队列中的每个已结束的读事务,利用计分板对读事务执行数据比对;其中,当读事务中的读数据值与参考模型中读数据值的地址下的数据值的数据比对不通过,而该读事务中的读数据值与写事务队列中的与读事务可能存在读写冲突的写事务中读数据值的地址下的写数据值和该写数据值写入前的原始值中的任一值的数据比对通过时,则计分板判定读事务的数据比对通过。
在一个实施例中,参见图5中所示,上述步骤S340可以包括步骤S341-S343:
步骤S341,当监视器监视到结束的读事务时,判定读事务是否与写事务队列中的写事务可能存在读写冲突,将写事务队列中的与读事务可能存在读写冲突的写事务的写数据值和该写数据值写入前的原始值记录入备选值组中。
在一个实施例中,步骤S341中的备选数组可以为关联数组,该关联数组的索引值为与读事务可能存在读写冲突的写事务所具有的各单位写数据值对应的地址,索引值索引到的元素是与读事务可能存在读写冲突的写事务在各地址下的单位写数据值和该单位写数据值写入前的单位原始值。
其中,单位数据值是指按照单位大小划分的子数据值。例如,以单位为字节为例,则单位写数据可以为以每字节为单位划分的字节写数据,相应的单位原始值可以为以每字节为单位划分的字节原始值。可以理解,一个X字节大小的数据值可以划分为X个单位字节大小的子数据值。通过本实施例中的方案,能够在后续步骤中需要时方便地按单位写数据值对关联数组中写数据值进行检索,从而提升后续步骤中数据比对的效率。
示例地,参见图4所示,每当监视器在观察端口处监视到一个结束的读事务[j]时,UVM测试平台可以在执行上述步骤(4-5)之前,先执行以下步骤:
(4-1)将监控到的该结束的读事务[j]与当前写事务队列中的每个写事务[i]执行第二读写冲突判定,以从当前写事务队列中筛选出与该结束的读事务[j]可能存在读写冲突的N个写事务,将这N个写事务存入计分板中的备选事务队列中。
(4-2)解析备选事务队列中的N个写事务至一个以队列为元素的关联数组(备选值组)中。其中,该关联数组的索引值为各字节写数据值的地址,索引到的元素是一个队列,队列中的值来自备选事务队列中的N个写事务在对应地址下的每个字节写数据值以及该字节写数据值对应的字节原始值。可以理解,在前述步骤(1-2)中已经在每个写事务中备份了写数据对应的原始值的情况下,此处即可以从写事务中快速获取每字节写数据值对应的字节原始值。
例如,参见图6中所示,如果与该结束的读事务[j]可能存在读写冲突的写事务有3个,分别为写事务1、写事务2和写事务3,其中写事务1的写数据可以按字节划分为字节写数据值11~13,它们对应的写入地址为地址1~3,并且它们对应的写入前的原始值为字节原始值11~13;写事务2的写数据可以按字节划分为字节写数据值24~26,它们对应的写入地址为地址4~6,并且它们对应的写入前的原始值为字节原始值24~26;写事务3的写数据可以按字节划分为字节写数据值32~35,它们对应的写入地址为地址2~5,并且它们对应的写入前的原始值为字节原始值32~35。则可以如图6中所示将这3个写事务划分为字节写数据值并分别关联至对应的索引值地址,从而可以便利地使用地址为索引而索引到任意地址下所具有的全部字节写数据值和字节原始值。
在一个实施例中,步骤S341中的判定读事务是否与写事务队列中的写事务可能存在读写冲突,包括:当在读事务的结束时刻,写事务队列中任一写事务的结束事件还未触发或该写事务的结束时刻比读事务的起始时刻晚,并且该写事务访问到的地址与读事务访问到的地址存在重叠时,则判定读事务与该写事务可能存在读写冲突。通过本实施例中的方案,
示例地,在上述步骤(4-1)中可以将监控到的该结束的读事务[j]与当前写事务队列中的每个写事务[i]执行以下第二读写冲突判定:
判定条件①:在读事务[j]的结束时刻,写事务[i]的结束事件还未触发或写事务[i]的结束时刻比读事务[j]的起始时刻早;
判定条件②:写事务[i]中访问到的地址与读事务[j]中访问到的地址存在重叠;
如果判定条件①和②同时满足,则判定写事务[i]与读事务[j]可能存在读写冲突;否则,判定该写事务[i]与读事务[j]不存在读写冲突。
通过重复上述第二读写冲突判定,可以完成对当前写事务队列中的所有写事务与该结束的读事务[j]之间的是否可能存在读写冲突的判定。
步骤S342,利用计分板将读事务的读数据值与参考模型中读数据值的地址下的值进行数据比对,当数据比对不通过时,确定数据比对不通过的部分读数据值的比对不通过地址。
其中,当步骤S342中读事务的读数据值与参考模型中读数据值的地址下的值之间的数据比对通过时,则计分板判定当前读事务的数据比对通过。
可以理解,本步骤S342可以在步骤S341之后执行,也可以在步骤S341之前执行。例如,作为备选方案,可以在当监视器监视到结束的读事务时,先执行步骤S342,当步骤S342中判定读事务的读数据值与参考模型中读数据值的地址下的值的数据比对不通过时,再执行步骤S341,而若步骤S342中数据比对通过,则计分板已能够得出当前读事务的数据比对通过的数据比对结果,而无需再执行步骤S341以及S343。
示例地,参见图4所示,每当监视器在观察端口处监视到一个结束的读事务时,UVM测试平台可以在执行上述步骤(4-5)之前,先执行以下步骤:
(4-3)根据当前读事务中的地址、数据、突发类型、突发大小、突发长度等信息,获取该读事务中每一节拍(beat)的读数据,与参考模型中对应地址下的值进行数据比对。
其中,突发长度表示当前读事务中所有读数据所具有的节拍总数,而突发大小则表示其中每一节拍的读数据的数据大小。例如,当读事务的突发大小为m,突发长度为n时,则每一节拍对应2m字节的数据大小,并且相应地,该读事务中所有读数据的总数据大小为2m*n字节。
(4-4)若某一节拍的读数据值的数据比对不通过,则:
遍历这一节拍的读数据值中的每一字节读数据值,将每一字节读数据值与与参考模型中对应地址下的值进行数据比对,以查找出所有数据比对不通过的字节读数据值对应的地址。
步骤S343,将数据比对不通过的部分读数据值与备选值组中比对不通过地址下的各写数据值和原始值进行数据比对,当数据比对不通过的部分读数据值与备选值组中比对不通过地址下的各写数据值和各原始值中的任一值的数据比对通过时,则计分板判定读事务的数据比对通过。
示例地,参见图4所示,在通过步骤(4-4)找出所有数据比对不通过的字节读数据值对应的地址之后,在本步骤中,可以使用所找出的这些字节读数据值对应的地址,在备选值组中进行索引,对于这些字节读数据值对应的地址中的每一地址,如果该地址下的字节读数据值与备选值组中同一地址下的若干个字节写数据值和字节原始值中的任意一个值之间的数据比对通过,则判定该字节读数据值的数据比对通过,从而逐一完成对步骤(4-4)中找出所有数据比对不通过的字节读数据值的进一步数据比对。如果前述所有数据比对不通过的字节读数据值在此进一步的数据比对中分别比对通过,则计分板可以判定该读事务的数据比对通过,反之,如果前述所有数据比对不通过的字节读数据值中仍有一个或多个字节读数据值在此进一步的数据比对中比对不通过,则计分板判定该读事务的数据比对不通过。
例如,参见图6中所示,如果步骤(4-4)找出所有数据比对不通过的字节读数据值包括字节读数据值a和字节读数据值b,字节读数据值a的地址为地址3,字节读数据值b的地址为地址5,则可以通过使用地址3和地址5索引图6中所示的备选值组而得到地址3下的备选值包括字节写数据值13、字节原始值13、字节写数据值33和字节原始值33,并且得到地址5下的备选值包括字节写数据值25、字节原始值25、字节写数据值35和字节原始值35。进而将字节读数据值a与备选值组中地址3下的各个备选值,即字节写数据值13、字节原始值13、字节写数据值33和字节原始值33分别进行数据比对,只要字节读数据值a与地址3下的任意一个备选值的数据比对通过,即认为字节读数据值a的数据比对通过,否则认为字节读数据值a的数据比对不通过。同理地,将字节读数据值b与备选值组中地址5下的各个备选值,即字节写数据值25、字节原始值25、字节写数据值35和字节原始值35分别进行数据比对,只要字节读数据值b与地址5下的任意一个备选值的数据比对通过,即认为字节读数据值b的数据比对通过,否则认为字节读数据值b的数据比对不通过。如果在此字节读数据值a和字节读数据值b的数据比对都通过,则计分板可以给出该读事务的数据比对通过的判定结果,否则,如果在此字节读数据值a和字节读数据值b的数据比对中任一者不通过,则计分板可以给出该读事务的数据比对不通过的判定结果,并且可以确定比对不通过的字节读数据值及其地址。
即,计分板在此将与该读事务可能存在冲突的这些写事务的写数据及其原始值也视作参考模型的期望值输出来与读事务的读数据值进行数据比对。
在通过上述步骤(4-3)和(4-4)完成了对当前结束的读事务的数据比对之后,即可执行步骤(4-5)以将完成了数据比对的该结束的读事务从读事务队列中删除。
上述用于存储模块的数据比对方法,通过监视器监视存储模块的读事务和写事务,并利用写事务队列和读事务队列读事务和写事务的相关状态进行追踪记录,实现了在进行数据比对时,如果当前读事务中的读数据值与参考模型中对应地址的数据值的数据比对不通过,则利用与该读事务可能存在读写冲突的写事务中对应地址的写数据值和原始值作为参考模型的备选值来与该读事务中的读数据值进行数据比对,只要该读事务中的读数据值能够与对应地址下备选值中的其中一个值的数据比对通过,则认为当前读事务的数据比对通过。从而避免了由于可能存在读写冲突的情况下监测到的读数据的不确定性导致数据比对不通过而存储模块实际运行正常这样的异常误判情况,有效提升了对使用读通道与写通道相互独立的接口的存储模块的异常判断的准确性。此外也避免了开发复杂的参考模型去准确地模拟使用读通道与写通道相互独立的接口的存储模块相似的读写冲突处理特性,即使开发的参考模型不能模拟该读写冲突特性也能适用于本申请的上述方案,这对加快实际工程项目的开发进展和降低开发成本有积极意义。
应该理解的是,虽然图3-5中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3-5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图7所示,提供了一种用于存储模块的数据比对装置700,包括:监视模块710、写事务队列管理模块720、读事务队列管理模块730和数据比对模块740,其中:
监视模块710,用于利用监视器监视存储模块的读事务和写事务;
写事务队列管理模块720,用于在写事务队列中,存放在途的写事务以及已结束但是与读事务队列中的读事务可能存在读写冲突的写事务;
读事务队列管理模块730,用于在所述读事务队列中,存放在途的读事务以及已结束但是尚未完成数据比对的读事务;
数据比对模块740,用于针对所述读事务队列中的每个已结束的读事务,利用计分板对所述读事务执行数据比对;其中,当所述读事务中的读数据值与参考模型中所述读数据值的地址下的数据值的数据比对不通过,而所述参考模型中所述读数据值的地址下的数据值与所述写事务队列中的与所述读事务可能存在读写冲突的写事务中所述读数据值的地址下的写数据值和该写数据值写入前的原始值之中的任一值的数据比对通过时,则所述计分板判定所述读事务的数据比对通过。
关于用于存储模块的数据比对装置700的具体限定可以参见上文中对于用于存储模块的数据比对方法的限定,在此不再赘述。上述用于存储模块的数据比对装置700中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据值库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据值库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据值库用于存储用于存储模块的数据比对数据值。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种用于存储模块的数据比对方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
利用监视器监视存储模块的读事务和写事务;
在写事务队列中,存放在途的写事务以及已结束但是与读事务队列中的读事务可能存在读写冲突的写事务;
在所述读事务队列中,存放在途的读事务以及已结束但是尚未完成数据比对的读事务;
针对所述读事务队列中的每个已结束的读事务,利用计分板对所述读事务执行数据比对;其中,当所述读事务中的读数据值与参考模型中所述读数据值的地址下的数据值的数据比对不通过,而所述参考模型中所述读数据值的地址下的数据值与所述写事务队列中的与所述读事务可能存在读写冲突的写事务中所述读数据值的地址下的写数据值和该写数据值写入前的原始值中的任一值的数据比对通过时,则所述计分板判定所述读事务的数据比对通过。
在其他实施例中,处理器执行计算机程序时还实现如上任意实施例中所述的用于存储模块的数据比对方法的步骤,并具有相应的有益效果。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
利用监视器监视存储模块的读事务和写事务;
在写事务队列中,存放在途的写事务以及已结束但是与读事务队列中的读事务可能存在读写冲突的写事务;
在所述读事务队列中,存放在途的读事务以及已结束但是尚未完成数据比对的读事务;
针对所述读事务队列中的每个已结束的读事务,利用计分板对所述读事务执行数据比对;其中,当所述读事务中的读数据值与参考模型中所述读数据值的地址下的数据值的数据比对不通过,而所述参考模型中所述读数据值的地址下的数据值与所述写事务队列中的与所述读事务可能存在读写冲突的写事务中所述读数据值的地址下的写数据值和该写数据值写入前的原始值中的任一值的数据比对通过时,则所述计分板判定所述读事务的数据比对通过。
在一个实施例中,计算机程序被处理器执行时还实现如上任意实施例中所述的用于存储模块的数据比对方法的步骤,并具有相应的有益效果。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据值库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据值率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (12)

1.一种用于存储模块的数据比对方法,所述方法包括:
利用监视器监视存储模块的读事务和写事务;
在写事务队列中,存放在途的写事务以及已结束但是与读事务队列中的读事务可能存在读写冲突的写事务;
在所述读事务队列中,存放在途的读事务以及已结束但是尚未完成数据比对的读事务;
针对所述读事务队列中的每个已结束的读事务,利用计分板对所述读事务执行数据比对;其中,当所述读事务中的读数据值与参考模型中所述读数据值的地址下的数据值的数据比对不通过,而所述读事务中的读数据值与所述写事务队列中的与所述读事务可能存在读写冲突的写事务中所述读数据值的地址下的写数据值和该写数据值写入前的原始值中的任一值的数据比对通过时,则所述计分板判定所述读事务的数据比对通过。
2.根据权利要求1所述的方法,其特征在于,所述在写事务队列中,存放在途的写事务以及已结束但是与读事务队列中的读事务可能存在读写冲突的写事务,包括:
当所述监视器监视到起始的写事务时,将该起始的写事务推入写事务队列中;
当所述监视器监视到结束的写事务时,判定所述写事务队列中的各个写事务是否与读事务队列中的读事务可能存在读写冲突,将与所述读事务队列中的读事务不存在读写冲突的写事务从所述写事务队列中删除。
3.根据权利要求2所述的方法,其特征在于,所述判定所述写事务队列中的各个写事务是否与读事务队列中的读事务可能存在读写冲突,包括:
对于所述写事务队列中的每个写事务,当在当前写事务的结束时刻,所述读事务队列中的任一读事务的结束事件还未触发或刚好触发,并且该读事务中访问到的地址与当前写事务中访问到的地址存在重叠时,则判定当前写事务与该读事务可能存在读写冲突。
4.根据权利要求2所述的方法,其特征在于,当所述监视器监视到起始的写事务时,所述方法还包括:从所述参考模型中获取该起始的写事务的写数据值的地址下该写数据值写入前的原始值,并且将所述原始值记录在该起始的写事务中。
5.根据权利要求2所述的方法,其特征在于,当所述监视器监视到结束的写事务时,所述方法还包括:利用该结束的写事务中的写数据值对所述参考模型中该写数据值的地址下的值进行更新。
6.根据权利要求1所述的方法,其特征在于,所述在读事务队列中,存放在途的读事务以及已结束但是尚未完成数据比对的读事务包括:
当所述监视器监视到起始的读事务时,将该起始的读事务推入读事务队列中;
当所述监视器监视到结束的读事务时,在执行所述利用计分板对所述读事务执行数据比对以完成了对所述读事务的数据比对之后,将所述读事务从所述读事务队列中删除。
7.根据权利要求1所述的方法,其特征在于,针对所述读事务队列中的每个已结束的读事务,利用计分板对所述读事务执行数据比对;其中,当所述读事务中的读数据值与参考模型中所述读数据值的地址下的数据值的数据比对不通过,而所述读事务中的读数据值与所述写事务队列中的与所述读事务可能存在读写冲突的写事务中所述读数据值的地址下的写数据值和该写数据值写入前的原始值之中的任一值的数据比对通过时,则所述计分板判定所述读事务的数据比对通过,包括:
当所述监视器监视到结束的读事务时,判定所述读事务是否与所述写事务队列中的写事务可能存在读写冲突,将所述写事务队列中的与所述读事务可能存在读写冲突的写事务的写数据值和该写数据值写入前的原始值记录入备选值组中;
利用计分板将所述读事务的读数据值与参考模型中所述读数据值的地址下的值进行数据比对,当所述数据比对不通过时,确定数据比对不通过的部分读数据值的比对不通过地址;
将所述数据比对不通过的部分读数据值与所述备选值组中所述比对不通过地址下的各写数据值和原始值进行数据比对,当所述数据比对不通过的部分读数据值与所述备选值组中所述比对不通过地址下的各写数据值和各原始值中的任一值的数据比对通过时,则所述计分板判定所述读事务的数据比对通过。
8.根据权利要求7所述的方法,其特征在于,所述判定所述读事务是否与所述写事务队列中的写事务可能存在读写冲突,包括:
当在所述读事务的结束时刻,所述写事务队列中任一写事务的结束事件还未触发或该写事务的结束时刻比所述读事务的起始时刻晚,并且该写事务访问到的地址与所述读事务访问到的地址存在重叠时,则判定所述读事务与该写事务可能存在读写冲突。
9.根据权利要求7所述的方法,其特征在于,所述备选数组为关联数组,所述关联数组的索引值为与所述读事务可能存在读写冲突的写事务所具有的各单位写数据值对应的地址,所述索引值索引到的元素是与所述读事务可能存在读写冲突的写事务在各地址下的单位写数据值和该单位写数据值写入前的单位原始值。
10.一种用于存储模块的数据比对装置,其特征在于,所述装置包括:
监视模块,用于利用监视器监视存储模块的读事务和写事务;
写事务队列管理模块,用于在写事务队列中,存放在途的写事务以及已结束但是与读事务队列中的读事务可能存在读写冲突的写事务;
读事务队列管理模块,用于在所述读事务队列中,存放在途的读事务以及已结束但是尚未完成数据比对的读事务;
数据比对模块,用于针对所述读事务队列中的每个已结束的读事务,利用计分板对所述读事务执行数据比对;其中,当所述读事务中的读数据值与参考模型中所述读数据值的地址下的数据值的数据比对不通过,而所述读事务中的读数据值与所述写事务队列中的与所述读事务可能存在读写冲突的写事务中所述读数据值的地址下的写数据值和该写数据值写入前的原始值之中的任一值的数据比对通过时,则所述计分板判定所述读事务的数据比对通过。
11.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至9中任一项所述方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9中任一项所述的方法的步骤。
CN202211367860.XA 2022-11-02 2022-11-02 用于存储模块的数据比对方法、装置、设备和存储介质 Pending CN115827361A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211367860.XA CN115827361A (zh) 2022-11-02 2022-11-02 用于存储模块的数据比对方法、装置、设备和存储介质
US18/386,329 US20240143579A1 (en) 2022-11-02 2023-11-02 Method, apparatus, device and storage medium for data comparison of storage module

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211367860.XA CN115827361A (zh) 2022-11-02 2022-11-02 用于存储模块的数据比对方法、装置、设备和存储介质

Publications (1)

Publication Number Publication Date
CN115827361A true CN115827361A (zh) 2023-03-21

Family

ID=85526383

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211367860.XA Pending CN115827361A (zh) 2022-11-02 2022-11-02 用于存储模块的数据比对方法、装置、设备和存储介质

Country Status (2)

Country Link
US (1) US20240143579A1 (zh)
CN (1) CN115827361A (zh)

Also Published As

Publication number Publication date
US20240143579A1 (en) 2024-05-02

Similar Documents

Publication Publication Date Title
CN113778822B (zh) 纠错能力测试方法、装置、可读存储介质及电子设备
CN113238924B (zh) 分布式图数据库系统中的混沌工程实现方法和系统
CN107479823A (zh) 随机读写文件测试中的数据校验方法和装置
CN113127331B (zh) 一种基于故障注入的测试方法、装置及计算机设备
CN110473585B (zh) 一种擦失效存储单元的替换方法、装置、设备及存储介质
CN115827361A (zh) 用于存储模块的数据比对方法、装置、设备和存储介质
CN111968697A (zh) 固态硬盘的测试方法、装置、计算机设备和存储介质
CN115328814B (zh) 基于镜像对的故障注入方法、装置、设备和存储介质
CN112506786B (zh) 一种回归测试方法和回归测试装置
CN109582516B (zh) Ssd后端性能分析方法、装置、计算机设备和存储介质
CN115237691A (zh) 一种存储设备热插拔测试方法、装置、设备及介质
CN114816806A (zh) 容器可用性验证方法、装置、计算机设备和存储介质
CN111966545A (zh) PCIe分线器热插拔测试方法、装置、设备及存储介质
CN112069009A (zh) 一种在Recovery模式下进行压力测试的方法、装置和终端设备
CN117555741B (zh) 基于uvm的原子指令模块验证系统、方法、设备及介质
CN113094221B (zh) 故障注入方法、装置、计算机设备以及可读存储介质
CN110399645A (zh) 基于固态硬盘的fpga原型验证加速系统及实现方法
CN109656580B (zh) 串口型nand flash数据清零处理方法及系统
CN115963991A (zh) 提升验证ufs后台操作处理机制效率的实现方法和装置
CN115454704A (zh) 一种服务器故障诊断测试方法、装置、终端及存储介质
CN117472513A (zh) 集群数据的处理方法、装置和服务器
CN115373922A (zh) 一种不同厂商smr硬盘自动测试装置、方法、终端及介质
CN117217931A (zh) 保费正确性验证方法、装置、设备及介质
CN116860600A (zh) 一种组件拓扑图绘制方法及相关装置
CN117370168A (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