发布信息

用于多仿真环境的访存验证系统、方法及相关设备与流程 专利技术说明

作者:admin      2023-07-19 16:08:10     441



计算;推算;计数设备的制造及其应用技术1.本发明适用于多核访存验证环境技术领域,尤其涉及一种用于多仿真环境的访存验证系统、方法及相关设备。背景技术:2.随着多核通用超标量处理器性能要求越来越高,在冯诺尔曼计算机架构下,每个核私有的一级数据缓存(dcache)的存在会极大降低加载延迟(load-to-use),加上二级缓存以及三级缓存的出现也一定程度上减少一级数据缓存未命中后访问速度更慢的后级存储器的可能,但多级缓存的协作复杂性也对多核数据共享提出更高的挑战。为此,业界实现了各种不同的多核缓存一致性协议,用来维护多核之间的数据共享问题,来保证数据访问的完备性。另一方面,核内访存指令的乱序执行对cpu性能也有非常大的帮助,所以访存子单元(load store unit)也会实现得比较复杂,来保证最大程度地实现并行访问缓存子系统和避免冒险(hazard)。3.然而,访存子系统(包括访存子单元,各级缓存和多核缓存一致性协议)的乱序异步场景非常多,真正的寄存器转换级(register transfer level)的实现难免出现错漏。因此如何对复杂的超标量乱序访存子系统进行完备的功能验证,是当前业界亟需解决的问题。技术实现要素:4.本发明提供一种用于多仿真环境的访存验证系统、方法及相关设备,旨在解决现有技术无法针对复杂的超标量乱序访存子系统进行完备的功能验证的问题。5.第一方面,本发明提供一种用于多仿真环境的访存验证系统,所述访存验证系统用于对多核访存子系统进行验证,所述多核访存验证系统包括:随机产生器模块,用于根据随机种子产生包含访存请求的随机信息;请求列表模块,用于将所述随机信息缓存至请求列表中;将回应信息与所述随机信息进行比对,输出验证结果,所述回应信息为所述多核访存子系统发出;交互控制模块,用于从所述请求列表中将所述随机信息转换为与所述多核访存子系统的接口格式对应的访存信息,并将所述访存信息发送给所述多核访存子系统;还用于接收所述多核访存子系统回应的对应所述访存信息的所述回应信息,并转发给所述请求列表模块;交互映射池模块,用于为所述交互控制模块和所述请求列表模块提供映射功能。6.更进一步地,所述用于多仿真环境的访存验证系统根据访存验证模式区分为自检模式和非自检模式,其中:处于所述自检模式下的所述随机产生器模块根据所述随机种子产生的不同的所述访存请求的访存地址不允许重叠;处于所述非自检模式下的所述随机产生器模块根据所述随机种子产生的所述访存请求的访存地址允许重叠。7.更进一步地,所述自检模式下的所述随机种子的内容为请求列表基地址号、与当前产生的所述访存请求相邻的两个所述访存请求的偏移量;所述非自检模式下的所述随机种子的内容为访存地址、访问内容。8.更进一步地,所述请求列表模块包括:请求发送子模块,用于接收所述随机信息,并获取所述随机信息的上下文;获取所述请求列表中将待发送的所述随机信息交互号,并转发所述随机信息至所述交互控制模块,所述上下文包括请求号和状态机;以及,请求存储子模块,用于寄存所述随机信息,得到所述请求列表;基于预设数据检查机制和预设超时检查机制,将所述回应信息与所述随机信息、所述上下文进行数据比对,得到所述验证结果。9.更进一步地,所述交互控制模块包括:交互发射子模块,用于从所述请求列表中将所述随机信息转换为与所述多核访存子系统的接口格式对应的所述访存信息;交互特殊通道子模块,用于将所述随机信息转换为预设特殊接口格式对应的所述访存信息;交互回应子模块,用于接收来自所述访存子系统的接口的所述回应信息,并转发所述回应信息至所述请求列表模块。10.更进一步地,所述交互映射池模块具体用于:在所述交互回应子模块接收所述回应信息时进行所述请求号和所述交互号的映射。11.第二方面,本发明还提供一种用于多仿真环境的访存验证方法,所述访存验证方法用于对多核访存子系统进行验证,所述多核访存验证方法包括以下步骤:根据随机种子产生包含访存请求的随机信息;将所述随机信息缓存至请求列表中;从所述请求列表中将所述随机信息转换为与所述多核访存子系统的接口对应的信息格式,得到访存信息,并将所述访存信息发送给所述多核访存子系统;接收所述多核访存子系统对应所述访存信息的映射转换后的回应信息;将所述回应信息与所述随机信息进行比对,输出验证结果。12.更进一步地,所述根据随机种子产生包含访存请求的随机信息的步骤前,还包括步骤:确定访存验证模式,所述访存验证模式包括自检模式和非自检模式,在所述自检模式下,根据所述随机种子产生的不同的所述访存请求的访存地址不允许重叠;在所述非自检模式下,根据所述随机种子产生的所述访存请求的访存地址允许重叠。13.第三方面,本发明还提供一种计算机设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上执行的多仿真环境下的访存验证程序,所述处理器执行所述多仿真环境下的访存验证程序时实现如上述实施例中任意一项所述的多仿真环境下的访存验证方法中的步骤。14.第四方面,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有多仿真环境下的访存验证程序,所述多仿真环境下的访存验证程序被处理器执行时实现如上述实施例中任意一项所述的多仿真环境下的访存验证方法中的步骤。15.本发明所达到的有益效果,在于提出了一种能够在多个仿真环境下都能进行多核访存验证的系统,可以通过配置不同的验证模式和参数来产生出对应访存子系统的不同时序场景的请求,并且基于请求列表和子系统接口的实现方式提高了不同仿真环境下的系统移植性,另一方面,通过接口进行的验证判断也可以触发硬件仿真的波形生成,便于验证数据的分析与调试,提高了验证覆盖率。附图说明16.图1是本发明实施例提供的用于多仿真环境的访存验证系统的结构示意图;图2是本发明实施例提供的随机产生器模块在自检模式下的随机种子产生访存请求的过程示意图;图3是本发明实施例提供的随机产生器模块在非自检模式下的随机种子产生访存请求的过程示意图;图4是本发明实施例提供的请求列表模块的逻辑示意图;图5是本发明实施例提供的交互控制模块的逻辑示意图;图6是本发明实施例提供的交互映射池模块的逻辑示意图;图7是本发明实施例提供的用于多仿真环境的访存验证方法的步骤流程框图;图8是本发明实施例提供的计算机设备的结构示意图。具体实施方式17.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。18.实施例一请参照图1,图1是本发明实施例提供的用于多仿真环境的访存验证系统的结构示意图,在访存验证过程中,由于需要对多核访存子系统产生各种时序场景,从而对多核缓存(cache)一致性上的时序问题以及不同请求的资源互锁问题进行验证,而现有技术的自检程序无法产生不同的资源竞争场景,本发明实施例采用可配置的自检模式来实现对多核访存子系统的数据自检和请求超时检查,从而达到不同场景的访存验证。具体的,所述访存验证系统用于对多核访存子系统进行验证,所述多核访存验证系统100包括:随机产生器模块101,用于根据随机种子产生包含访存请求的随机信息;请求列表模块102,用于将所述随机信息缓存至请求列表中;将回应信息与所述随机信息进行比对,输出验证结果,所述回应信息为所述多核访存子系统发出;交互控制模块103,用于从所述请求列表中将所述随机信息转换为与所述多核访存子系统的接口格式对应的访存信息,并将所述访存信息发送给所述多核访存子系统;还用于接收所述多核访存子系统回应的对应所述访存信息的所述回应信息,并转发给所述请求列表模块102;交互映射池模块104,用于为所述交互控制模块103和所述请求列表模块102提供映射功能。19.所述随机产生器模块101中,随机种子(seed)用于由线性反馈移位寄存器(lfsr)产生不同的请求时序场景需要的信息,更进一步地,所述多核访存验证系统100根据访存验证模式区分为自检模式(selfcheck)和非自检模式(non-selfcheck),处于所述自检模式下的所述随机产生器模块根据所述随机种子产生的不同的所述访存请求的访存地址不允许重叠,在实施过程中,所述自检模式下的访存请求还在类型上有所局限,例如存储单字节(store byte)和加载字(load word);处于所述非自检模式下的所述随机产生器模块根据所述随机种子产生的所述访存请求的访存地址允许重叠,在实施过程中,所述非自检模式下的访存请求虽然在类型上没有局限,但只能用于实现请求超时的检查。20.具体的,请分别参照图2和图3,图2和图3分别是本发明实施例提供的随机产生器模块在自检模式和非自检模式下的随机种子产生访存请求的过程示意图,自检模式是输入两个随机种子,一个内容为请求列表基地址号、另一个内容是当前产生的所述访存请求相邻的两个所述访存请求的偏移量,输出则是经过加法器(alu)计算得出的所有多核访存通道对应的请求列表号;非自检模式也是输入两个种子,一个内容是访问地址、另一个内容是访问类型,经过加法器算出所有多核访存通道的地址和类型种子,此外,实施过程中也还可以对访存内容定义一些配置参数,非自检模式下的输出是所有多核访存通道的经过参数约束的地址和类型。21.更进一步地,所述请求列表模块102包括:请求发送子模块1021,用于接收所述随机信息,并获取所述随机信息的上下文;获取所述请求列表中将待发送的所述随机信息交互号,并转发所述随机信息至所述交互控制模块103,所述上下文包括请求号和状态机;以及,请求存储子模块1022,用于寄存所述随机信息,得到所述请求列表;基于预设数据检查机制和预设超时检查机制,将所述回应信息与所述随机信息、所述上下文进行数据比对,得到所述验证结果。22.具体的,请参照图4,图4是本发明实施例提供的请求列表模块的逻辑示意图,所述请求存储子模块1022中,每个所述随机信息对应的条目都有一个状态机(fsm)维护每次信息交互的生命周期,对于自检模式,是先4次store byte、然后1次load word,共5次访问的交互过程;对于非自检模式只有1次访问,如果交互完成,会继续根据预先设计的算法承载其他信息的交互过程,并循环进行处理。实际实施中,所述请求列表模块102可以通过交叉开关与回应更新(resp update)、存储缓冲信息(stb info)和请求发送模块进行状态交互,并输出交互的调试信息(debug info)。23.本发明实施例中的所述预设数据检查机制对于不同自检模式会有所区别,对于自检模式,所述预设数据检查机制是通过把一个字节顺序分4次,并择机在某一个时钟周期发往随机某个核进行存储单字节,在4个存储单字节信息都写入一级数据缓存后,再择机地往随机某个核发送加载字,并把接收回来的字节和存在请求条目的字节进行数据比较,把结果输出至调试信息接口。这样的设计是因为一个字节在同一个缓存行,所以如果每个核承载不同的比特数据,会对缓存一致性带来很大的测试压力。24.对于所述预设超时检查机制,非自检模式只会交互一次,只需要检查该次回应的超时情况,请求超时检查具体是检查请求发出后是否在设定的时钟周期数后收到回应,以及存储请求发出后是否在设定的时钟周期数后写入一级数据缓存。25.更进一步地,所述交互控制模块103包括:交互发射子模块1031,用于从所述请求列表中将所述随机信息转换为与所述多核访存子系统的接口格式对应的所述访存信息;交互特殊通道子模块1032,用于将所述随机信息转换为预设特殊接口格式对应的所述访存信息;交互回应子模块1033,用于接收来自所述访存子系统的接口的所述回应信息,并转发所述回应信息至所述请求列表模块102。26.请参照图5,图5是本发明实施例提供的交互控制模块的逻辑示意图,本发明实施例中,根据所述多核访存子系统的接口(lsu,load/store unit)格式进行转换时,在转换后的访存信息中还能进行乱序、延时发送、自动唤醒等操作。所述预设特殊接口格式可以包括但不限于acp(加速器一致性)、icache(指令缓存)等。27.更进一步地,所述交互映射池模块104具体用于:在所述交互回应子模块1033接收所述回应信息时进行所述请求号和所述交互号的映射。28.具体的,请参照图6,图6是本发明实施例提供的交互映射池模块的逻辑示意图,所述交互映射池模块104实现三种类型的操作,分别是获取(get)、查询(poll)、取消(put),获取操作用于所述请求列表模块102根据请求号创建映射(create mapping)获取相应的交互号;查询操作用于所述交互控制模块103收到访存子系统相应通道的ready信号后通过交互号获取请求号;取消操作用于所述交互控制模块103收到访存子系统相应通道的回应后通过交互号获取请求号并取消其映射(invalidate mapping)。在实际实现时,可以通过额外的映射存储模块来寄存每个交互对应的有效请求号。29.本发明实施例中的所述多核访存验证系统100在实现时可以根据需要加入多种功能模块的参数设置,例如包括但不限于:请求列表的容量,用于自检模式,以满足不同的缓存命中率,容量越大,命中率越低;访存地址宽度范围,用于非自检模式,以满足不同的缓存命中率,地址宽度越宽,命中率越低;多核开关,对于多核访存子系统的验证只用单核时,可用于前期功能验证或非缓存通道(io)的数据自我检查功能;原子访存类型(amo)开关,在非自检模式下可以产生原子访存类型的请求;非缓存通道(io)开关,用于产生与非缓存通道相关的请求;加速器一致性通道(acp)开关,用于产生与加速器一致性通道相关的请求;指令缓存通道(icache)开关,在非自检模式下可以产生与指令缓存通道相关的请求。30.日志相关的开关,用于日志追踪,能够实现问题地址的请求在目标访存子系统的信息收集,便于后期的调试。31.本发明所达到的有益效果,在于提出了一种能够在多个仿真环境下都能进行多核访存验证的系统,可以通过配置不同的验证模式和参数来产生出对应访存子系统的不同时序场景的请求,并且基于寄存器转换级(register transfer level)的实现方式提高了不同仿真环境下的系统移植性,另一方面,通过调试信息接口进行的验证判断也可以触发硬件仿真的波形生成,便于验证数据的分析与调试,提高了验证覆盖率。32.实施例二本发明实施例还提供一种用于多仿真环境的访存验证方法,请参照图7,图7是本发明实施例提供的用于多仿真环境的访存验证方法的步骤流程框图,所述访存验证方法用于对多核访存子系统进行验证,所述多核访存验证方法包括以下步骤:s1、根据随机种子产生包含访存请求的随机信息;s2、将所述随机信息缓存至请求列表中;s3、从所述请求列表中将所述随机信息转换为与所述多核访存子系统的接口对应的信息格式,得到访存信息,并将所述访存信息发送给所述多核访存子系统;接收所述多核访存子系统对应所述访存信息的映射转换后的回应信息;s4、将所述回应信息与所述随机信息进行比对,输出验证结果。33.更进一步地,所述根据随机种子产生包含访存请求的随机信息的步骤前,还包括步骤:确定访存验证模式,所述访存验证模式包括自检模式和非自检模式,在所述自检模式下,根据所述随机种子产生的不同的所述访存请求的访存地址不允许重叠;在所述非自检模式下,根据所述随机种子产生的所述访存请求的访存地址允许重叠。34.所述访存验证方法能够基于上述实施例中的所述访存验证系统100实现,且能实现同样的技术效果,参上述实施例中的描述,此处不再赘述。35.实施例三本发明实施例还提供一种计算机设备,请参照图8,图8是本发明实施例提供的计算机设备的结构示意图,所述计算机设备200包括:存储器202、处理器201及存储在所述存储器202上并可在所述处理器201上执行的多仿真环境下的访存验证程序。36.所述处理器201调用所述存储器202存储的多仿真环境下的访存验证程序,执行本发明实施例提供的用于多仿真环境的访存验证方法中的步骤,请结合图7,具体包括以下步骤:s1、根据随机种子产生包含访存请求的随机信息;s2、将所述随机信息缓存至请求列表中;s3、从所述请求列表中将所述随机信息转换为与所述多核访存子系统的接口对应的信息格式,得到访存信息,并将所述访存信息发送给所述多核访存子系统;接收所述多核访存子系统对应所述访存信息的映射转换后的回应信息;s4、将所述回应信息与所述随机信息进行比对,输出验证结果。37.更进一步地,所述根据随机种子产生包含访存请求的随机信息的步骤前,还包括步骤:确定访存验证模式,所述访存验证模式包括自检模式和非自检模式,在所述自检模式下,根据所述随机种子产生的不同的所述访存请求的访存地址不允许重叠;在所述非自检模式下,根据所述随机种子产生的所述访存请求的访存地址允许重叠。38.更进一步地,所述自检模式下的所述随机种子的内容为请求列表基地址号、与当前产生的所述访存请求相邻的两个所述访存请求的偏移量;所述非自检模式下的所述随机种子的内容为访存地址、访问内容。39.存储器202可用于存储软件程序以及各种数据。存储器202可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器202可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。40.处理器201是终端的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器202内的软件程序和/或模块,以及调用存储在存储器202内的数据,执行终端的各种功能和处理数据,从而对终端进行整体监控。处理器201可包括一个或多个处理单元;优选的,处理器201可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器201中。41.本发明实施例提供的计算机设备200能够实现如上述实施例中的用于多仿真环境的访存验证方法中的步骤,且能实现同样的技术效果,参上述实施例中的描述,此处不再赘述。42.实施例四本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有多仿真环境下的访存验证程序,该多仿真环境下的访存验证程序被处理器执行时实现本发明实施例提供的用于多仿真环境的访存验证方法中的各个过程及步骤,且能实现相同的技术效果,为避免重复,这里不再赘述。43.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存取存储器(random access memory,简称ram)等。44.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。45.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。46.上面结合附图对本发明的实施例进行了描述,所揭露的仅为本发明较佳实施例而已,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式用等同变化,均属于本发明的保护之内。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部