CN114090499A - 访存单元验证系统、设备及存储介质 - Google Patents
访存单元验证系统、设备及存储介质 Download PDFInfo
- Publication number
- CN114090499A CN114090499A CN202111398028.1A CN202111398028A CN114090499A CN 114090499 A CN114090499 A CN 114090499A CN 202111398028 A CN202111398028 A CN 202111398028A CN 114090499 A CN114090499 A CN 114090499A
- Authority
- CN
- China
- Prior art keywords
- memory access
- access unit
- instruction
- data
- unit
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例提供一种访存单元验证系统、设备及存储介质,所述系统包括:仿真模块,用于模拟访存单元的前端环境和后端环境,使访存单元基于所述前端环境和后端环境执行测试用例设定的流程;其中,所述前端环境用于提供所述访存单元上游的指令操作行为,所述后端环境用于提供所述访存单元下游的指令操作行为;检测模块,用于检测所述访存单元在执行所述测试用例设定的流程时所产生的测试数据;结果确定模块,用于基于所述检测模块的测试数据,确定所述访存单元的验证结果。所述系统能够提高访存单元的验证效率。
Description
技术领域
本发明实施例涉及芯片技术领域,具体涉及一种访存单元验证系统、设备及存储介质。
背景技术
访存单元(LSU,Load Store Unit)是高性能处理器(例如CPU,CentralProcessing Unit,中央处理器)中用来执行访存操作(读/写)的逻辑部件,可以为内核提供页表转换、内存读取控制逻辑及一级缓存逻辑,是存储子系统的源头。
访存单元的验证是高性能处理器的验证中的一个重要组成部分且贯穿于整个处理器的设计过程中。然而,随着访存单元实现的功能越多,电路的集成复杂度越高,使得访存单元的验证复杂度也越来越高,进而使得访存单元的验证,通常需要在不同的验证系统进行多个流程的验证,以对访问单元的不同功能进行验证。
因此,如何提高验证效率,成为本领域技术人员亟待解决的问题。
发明内容
有鉴于此,本发明实施例提供一种访存单元验证系统、设备及存储介质,以提高验证效率。
为实现上述目的,本发明实施例提供如下技术方案。
第一方面,本发明实施例提供一种访存单元验证系统,包括:
仿真模块,用于模拟访存单元的前端环境和后端环境,使访存单元基于所述前端环境和后端环境执行测试用例设定的流程;其中,所述前端环境用于提供所述访存单元上游的指令操作行为,所述后端环境用于提供所述访存单元下游的指令操作行为;
检测模块,用于检测所述访存单元在执行所述测试用例设定的流程时所产生的测试数据;
结果确定模块,用于基于所述检测模块的测试数据,确定所述访存单元的验证结果。
可选的,所述仿真模块包括虚拟前端和虚拟后端,所述虚拟前端用于模拟访存单元的前端环境,所述虚拟后端用于模拟访存单元的后端环境。
可选的,所述虚拟前端包括指令发射单元、指令提交单元和冲刷单元,其中,所述指令发射单元用于向访存单元发射最小执行单元指令;所述指令提交单元用于基于访存单元的运行参数,提交最小执行单元指令;所述冲刷单元用于向访存单元发出冲刷指令。
可选的,所述虚拟后端包括虚拟二级缓存和虚拟远端存储器,所述虚拟二级缓存用于模拟二级缓存的存储行为,所述虚拟远端存储器用于模拟远端物理空间的存储行为。
可选的,所述虚拟远端存储器还用于为访存单元提供多核访问场景下,远端物理空间的独占权限的交替环境。
可选的,所述虚拟后端还包括数据返回单元,所述数据返回单元用于为访存单元从虚拟远端存储器中读取数据,并将所读取的数据返回至访存单元。
可选的,所述访存单元验证系统还包括,页表生成模块,用于为所述仿真模块生成页表,所述页表用于记录指令中的虚拟地址与内存的物理地址的映射关系。
可选的,所述访存单元验证系统还包括,测试用例生成模块,用于基于所述页表生成模块生成的页表,生成测试用例,其中,所述测试用例至少包括对页表中的物理地址的访问指令。
可选的,所述测试用例生成模块包括测试用例修改单元,用于修改所生成的测试用例;所述虚拟前端基于所述测试用例,向访存单元发出指令。
可选的,所述访存单元验证系统还包括,预加载模块,所述预加载模块用于在执行测试用例前,向所述访存单元和所述仿真模块加载预设的数据。
可选的,所述访存单元包括一级页表缓存器,所述虚拟后端包括二级页表缓存器,所述预加载模块还用于在执行测试用例前,向所述一级缓存页表缓存器和所述二级页表缓存器中加载预设的页表数据。
可选的,所述访存单元包括一级缓存,所述预加载模块用于在执行测试用例前,向所述一级缓存加载预设的数据。
可选的,所述检测模块,包括地址检测单元,用于检测所述访存单元中,虚拟地址转换物理地址的行为是否准确。
可选的,所述访存单元验证系统包括虚拟取值单元,用于向所述访存单元发送地址转换指令,以使得所述访存单元将指令中的虚拟地址转换为物理地址;
所述地址检测单元,用于检测所述访存单元基于所述虚拟取值单元发送的地址转换指令,转换的物理地址是否准确。
可选的,所述检测模块,包括,同步数据检测单元,用于检测在执行指令的同步操作时,指令所转换的物理地址和指令的源操作数是否准确。
可选的,所述检测模块,包括,存储数据检测单元,用于基于访存单元加载在虚拟后端的数据,确定访存单元存储的数据是否准确。
可选的,所述存储数据检测单元,用于基于访存单元加载在虚拟后端的数据,确定访存单元存储的数据是否准确,包括:
获取虚拟前端在指令的存储流程的提交过程中,所述指令所存储的源操作数;
基于所述源操作数,确定所述指令所需存储的数据;
获取在指令的加载流程的提交过程中,指令所加载的数据;
判断指令所加载的数据与指令所需存储的数据是否相同,若相同,则指令存储的数据为准确,若不同,则指令存储的数据不准确。
可选的,所述存储数据检测单元包括数据存储器,所述数据存储器的存储容量与为所述访存单元配置的内存的存储容量相匹配,且与所述内存配置有相同的地址;所述数据存储器用于在指令指示的地址存储所述指令所需存储的数据;
所述判断指令所加载的数据与指令所需存储的数据是否相同,具体为,判断指令所加载的数据与数据存储器中对应所述指令所指示的地址存储的数据是否相同。
可选的,所述仿真模块,还包括虚拟一级缓存,用于记录所述访存单元中的一级缓存的数据和缓存状态。
可选的,所述访存单元验证系统还包括指令修改模块,所述指令修改模块用于基于虚拟后端对所述访存单元所执行的指令进行修改。
第二方面,本发明实施例提供一种访存单元验证设备,所述访存单元验证设备装载有本发明实施例提供的访存单元验证系统。
第三方面,本发明实施例提供一种存储介质,所述存储介质存储有本发明实施例提供的访存单元验证系统
本发明实施例提供的访存单元验证系统、设备及存储介质,所述系统包括:仿真模块,用于模拟访存单元的前端环境和后端环境,使访存单元基于所述前端环境和后端环境执行测试用例设定的流程;其中,所述前端环境用于提供所述访存单元上游的指令操作行为,所述后端环境用于提供所述访存单元下游的指令操作行为;检测模块,用于检测所述访存单元在执行所述测试用例设定的流程时所产生的测试数据;结果确定模块,用于基于所述检测模块的测试数据,确定所述访存单元的验证结果。
可以看出,本发明实施例通过为访存单元模拟前端环境和后端环境,从而为访存单元提供完整的运行环境,使得访存单元能够在该验证系统中实现对应访存单元全功能的操作,进而可以在一个验证系统中实现对访存单元的全功能的验证,提高访存单元的验证效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供待验证的访存单元的可选结构示意图;
图2为本发明实施例提供的访存单元验证系统的一可选框图;
图3为本发明实施例提供的仿真模块的可选框图;
图4为本发明实施例提供的访存单元验证系统的另一可选框图;
图5为本发明实施例提供的访存单元验证系统的又一可选框图;
图6为本发明实施例提供的访存单元验证系统的又另一可选框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在一种可选实现中,图1示例性的示出了本发明实施例提供待验证的访存单元的可选结构示意图,参考图1,所述访存单元可以包括内存管理单元(Memory ManagementUnit,MMU)11、内存读取逻辑单元12和一级缓存13。
内存管理单元11用于为处理器内核(下称内核)提供页表转换,即,将指令中的虚拟地址转换为内存的物理地址,从而使得指令可以基于该物理地址执行相应的操作。其中,内存管理单元11可以读取内存中存储的页表,并基于页表中记录的地址映射关系,将虚拟地址转换为内存的物理地址。
内存读取逻辑单元12用于为内核提供内存读取控制逻辑,从而基于指令的指示进行相应的操作,例如,读取/写入等操作。
一级缓存13可以理解为位于内核与内存之间的临时存储器,用于存储内核所需访问的数据。其中,一级缓存会基于内核的运行,不断更新数据,以使得一级缓存最大程度的存储最常被访问的数据,剔除不常被访问的数据。
相应的,在进行访存单元的验证时,验证平台会模拟访存单元的部分运行环境,控制访存单元运行相应的测试用例,并基于运行中的数据或运行的结果数据,确定验证结果。然而,在进行访存单元的验证时,如背景技术所述,通常需要在不同的验证系统进行多个流程的验证,以对访问单元的不同功能进行验证。
例如,针对访存操作的验证,可以设置对应的测试用例,模拟访存单元的前端环境(例如位于访存单元上游的执行单元和调度单元的具体行为),控制访存单元执行相应的读操作/写操作,并获取访存单元读取/写入的数据,确定访存单元的访存操作功能。然而,在针对其他功能的验证时,则需要进一步根据该功能涉及的测试环境进行进一步的模拟,并进一步基于相应的测试用例,控制访存单元执行相应的操作,从而确定访存单元的相应功能。
针对上述情况,发明人认为,可以在一个验证系统中为访存单元仿真模拟出前端环境和后端环境,从而为访存单元提供完整的运行环境,使得访存单元能够在该验证系统中实现对应访存单元全功能的操作,进而可以在一个验证系统中实现对访存单元的全功能的验证,提高访存单元的验证效率。
基于此,本发明实施例提供了一种访存单元验证系统、设备及存储介质,所述系统包括:仿真模块,用于模拟访存单元的前端环境和后端环境,使访存单元基于所述前端环境和后端环境执行预设的测试用例;检测模块,用于检测所述访存单元在执行所述测试用例时所产生的测试数据;结果确定模块,用于基于所述检测模块的测试数据,确定所述访存单元的验证结果。
可以看出,本发明实施例通过为访存单元模拟前端环境和后端环境,从而为访存单元提供完整的运行环境,使得访存单元能够在该验证系统中实现对应访存单元全功能的操作,进而可以在一个验证系统中实现对访存单元的全功能的验证,提高访存单元的验证效率。
图2示例性的示出了本发明实施例提供的访存单元验证系统的一可选框图。如图2所示,所述访存单元验证系统包括:仿真模块210、检测模块220,以及结果确定模块230。
仿真模块210,用于模拟访存单元240的前端环境和后端环境,使访存单元240基于所述前端环境和后端环境执行测试用例设定的流程;
所述前端环境用于提供所述访存单元上游的指令操作行为,例如,模拟位于访存单元上游的执行单元或调度单元的指令操作行为,向访存单元发送访问指令等;所述后端环境用于提供所述访存单元下游的指令操作行为,例如,模拟位于访存单元下游的二级缓存的行为,并向访存单元发出反馈信息等。可以理解的是,所述前端环境和后端环境均用于为访存单元所需的测试环境,相应的指令操作行为则应基于测试方案给出,例如,基于预设的测试用例,向访存单元发出相应的指令,或为访存单元提供预设的反馈信息等。
检测模块220,用于检测所述访存单元240在执行所述测试用例设定的流程时所产生的测试数据。所述测试数据可以包括访存单元的运行数据和/或运行结果数据,在访存单元在执行所述测试用例时,检测模块220可以基于访存单元240的运行数据和/或运行指令后的结果数据进行分析判断,确定访存单元240相应的功能是否通过验证。
其中,需要说明的是,基于本发明实施例中,仿真模块可以为访存单元仿真模拟出前端环境和后端环境,从而为访存单元提供完整的运行环境,使得所述检测模块可以对访存单元进行全功能的验证,从而避免了针对不同的功能进行的不同平台不同流程的验证过程,提高了验证的效率。
结果确定模块230,用于基于所述检测模块220的测试数据,确定所述访存单元240的验证结果。其中,所述测试数据可以为检测模块的测试结果数据,也可以为测试过程中产生的运行数据,基于测试数据,可以分析确定所述访存单元240是否通过验证,并在验证不通过时,分析确定验证不通过的原因。其中,本发明实施例可以基于检测模块220进行全功能的测试,相应的,结果确定模块230基于检测模块220的测试数据,可以对访存单元240进行整体功能的验证和分析,从而确定所述访存单元的验证结果。
在一个可选实现中,参考图3所示的仿真模块的可选框图,所述仿真模块210包括虚拟前端211和虚拟后端212,所述虚拟前端211用于模拟访存单元的前端环境,所述虚拟后端212用于模拟访存单元的后端环境。
其中,所述虚拟前端211用于模拟访存单元的前端环境,该前端环境可以理解为,内核执行数据处理的环境,负责指令发射、调度、冲刷以及最后提交。可以理解的是,内核能够执行或配合执行指令的取指(Fetch),译码(Decode),分派(Dispatch),发射(Issue),执行(Execute),访存(Memory),写回(Writeback)和同步(Commit)等流程,而为了降低仿真难度,所述虚拟前端211可以仅模拟与访存单元240交互的流程,而不必模拟内核处理指令的全部流程。可选的,虚拟前端211可以包括指令发射单元213、指令提交单元214和冲刷单元215,其中,所述指令发射单元213用于向访存单元发射(Issue)最小执行单元指令,所述指令提交单元214用于基于访存单元240的运行参数,提交(retire)最小执行单元指令,所述冲刷单元215用于向访存单元发出冲刷(flush)指令等。具体的,在运行测试用例时,指令发射单元213可以向访存单元240发射最小执行单元指令(uop,也称微指令),从而使访存单元基于该指令执行相应的操作;指令提交单元214可以在访存单元240执行至指令的提交步骤时,向内核提交最小执行单元指令;其中,所述最小执行单元指令,为内核执行的最小单元的指令,若干最小执行单元指令构成一指令。或者,在运行测试用例出现异常时,冲刷单元215可以向访存单元240发出冲刷指令,从而清除访存单元的一级缓存中存储的数据。
在进一步的可选示例中,所述虚拟前端211还可以包括指令分派单元216,用于执行uop的分派,从而将uop写入到一组发射队列中。
所述虚拟后端212可以包括虚拟二级缓存217和虚拟远端存储器218,其中,所述虚拟二级缓存217用于模拟二级缓存的存储行为,所述虚拟远端存储器218用于模拟远端物理空间的存储行为。可以理解的是,基于访存单元240中包括有一级缓存,相应的后端环境中,则应构建包括二级缓存、三级缓存等的模拟环境。其中,所述虚拟远端存储器218中所述的远端物理空间,指的是相较于二级缓存,较远的物理空间端,所述远端物理空间可以包括三级缓存、内存等。虚拟后端212模拟这些部件的存储行为,用于基于访存单元240执行操作的各个阶段给出相匹配的反馈信息,进而为访存单元240的测试提供完整后端环境。
其中,所述虚拟远端存储器218可以为访存单元提供多核访问场景下,远端物理空间的独占权限的交替环境,从而可以使访存单元基于该环境实现相应功能的测试提供基础。
在进一步的可选示例中,所述虚拟后端212还可以包括数据返回单元219,用于为访存单元240从虚拟远端存储器218中读取数据,并将所读取的数据返回至访存单元240,具体的,所读取的数据返回至访存单元240中的一级缓存。
在进一步的可选实现中,所述仿真模块,还包括虚拟一级缓存201,用于记录所述访存单元240中的一级缓存的数据和缓存状态,从而可以实现所述访存单元240的一级缓存的缓存数据及缓存状态的转移检测。
在进一步的可选实现中,参考图4示出的访存单元验证系统的另一可选框图,所述访存单元验证系统还可以进一步包括页表生成模块250,所述页表生成模块250用于为所述仿真模块生成页表。可以理解的是,在访存单元240执行数据访问流程时,需要将上游指令中的虚拟地址转换为物理地址,而页表是用于记录虚拟地址与内存的物理地址的映射关系的表,访存单元240可以基于页表将指令中的虚拟地址转换为内存的物理地址,从而实现相应的访问。在一个可选的示例中,所述页表存储在为所述访存单元提供的内存中。在一个可选的示例中,所述内存可以设置在所述虚拟后端中(图4未示出),或者,所述内存可以在系统中单独设置,并耦接至虚拟后端。
所述访存单元验证系统还可以进一步包括测试用例生成模块260,所述测试用例生成模块260可以基于所述页表生成模块250生成的页表,生成测试用例,其中,所述测试用例至少包括对页表中的物理地址的访问指令,从而使得所述测试用例至少验证所述访存单元的地址转换功能和数据访问功能。可以理解的是,在生成测试用例时,需要在指令中给出需访问的虚拟地址,因此,基于页表,可以生成符合测试需求的内存访问方案,从而对访存单元进行测试验证。
可以理解的是,针对访存单元的不同功能,访存单元验证系统可以基于仿真模块中提供不同的环境参数进行验证,也可以结合不同的测试用例和仿真模块提供不同的环境参数,基于此,本发明实施例中,所述测试用例生成模块生成的测试用例,可以基于不同的目的,生成不同的测试用例,以验证访存单元的不同功能,也就是说,所述测试用例生成模块针对所述访存单元的不同功能,生成不同的测试用例,进而实现对访存单元的全功能验证。
在一个可选的示例中,继续参考图4,所述测试用例生成模块中包括进一步包括测试用例修改单元261,用于修改所生成的测试用例。例如,对已经生成的指令流地址改变,以调整测试用例的测试压力,具体的,可以将指令需访问的数据地址全部改成相同的值,从而使得访存单元中的一级缓存产生大量的victim(即Cacheline的替换),从而增强该种测试场景。
在进一步的可选实现中,参考图5示出的访存单元验证系统的又一可选框图,所述访存单元验证系统还可以进一步包括预加载模块270,所述预加载模块270用于在执行测试用例前,向访存单元240和仿真模块加载预设的数据。通过向访存单元240和仿真模块加载预设的数据,降低测试初始化的时间,提高测试的效率。
例如,所述访存单元包括一级页表缓存器,所述虚拟后端包括二级页表缓存器,所述预加载模块可以在执行测试用例前,向所述一级缓存页表缓存器和所述二级页表缓存器中加载预设的页表数据。或者,所述访存单元包括一级缓存,所述预加载模块还可以在执行测试用例前,向所述一级缓存加载预设的数据。
需要说明的是,所述预加载模块270加载的页表数据,可以为随机页表数据,也可以为与测试用例的需求相符的页表数据。可以理解的是,所述测试用例的需求中,初始加载的页表数据可以与其测试中需访问的内存地址相匹配,也可以与其测试中需访问的内存地址不相匹配,从而基于为访存单元建立不同的初始环境。
同样的,所述预加载模块270加载的预设的数据,可以为随机数据,也可以为与测试用例的需求相符的数据。可以理解的是,所述测试用例的需求中,初始加载的数据可以与其测试中需访问的内存数据相匹配,也可以与其测试中需访问的内存数据不相匹配,从而基于为访存单元建立不同的初始环境。
上述实施方式中,对访存单元的运行环境进行了重点的描述,下面,对访存单元的测试环境进行进一步的说明。
在进一步的可选实现中,参考图6示出的访存单元验证系统的又另一可选框图,所述检测模块220包括地址检测单元221,用于检测所述访存单元中,虚拟地址转换物理地址的行为是否准确。可以理解的是,在访存单元240执行数据的访问时,需要访存单元中的内存管理单元(MMU)将指令中的虚拟地址转换为内存的物理地址,相应的,地址检测单元221可以确定所述转换功能的准确性。
在一个可选的示例中,所述地址检测单元221可以为物理地址检测器(Tlb globalchecker),该检测器可以为全局检测器,以实现对地址转换功能的验证。
需要说明的是,所述地址检测单元221不限于对内存的访问操作时的地址转换,在一些其他需要地址转换的场景下,该地址检测单元同样可以进行地址转换功能的验证。
例如,在内核中的取指单元进行取指时,同样需要进行虚拟地址至物理地址的转换,从而,可以设置虚拟取值单元280,该虚拟取值单元280,用于向所述访存单元发送地址转换指令,以使得所述访存单元240将指令中的虚拟地址转换为物理地址。相应的,所述地址检测单元221,还用于检测所述访存单元基于所述虚拟取值单元280发送地址转换指令,转换的物理地址是否准确。其中,所述虚拟取值单元280,可以设置在虚拟前端中,也可以在所述访存单元验证系统中独立设置(参考图6)。
在进一步的可选实现中,所述检测模块220可以包括同步数据检测单元222,用于检测在执行指令的同步(Commit)操作时,物理地址的转换和源操作数是否准确。可以理解的是,在访存单元240执行数据的访问时,需要将执行指令后的数据同步至同步数据检测单元222,其中,在执行该同步操作时,所需同步的数据包括指令所转换的物理地址和指令的源操作数是否准确。可选的,所述同步数据检测单元222可以为全局检测器,具体可以为全局存储数据检测器(Global store checker)。
在进一步的可选实现中,所述检测模块220还可以包括存储数据检测单元223,所述存储数据检测单元223用于基于访存单元加载在虚拟后端的数据,确定访存单元存储(store)的数据是否准确。其中,存储数据检测单元可以获取虚拟前端211在指令的存储流程的提交(retire)过程中,该指令所存储的源操作数,基于该源操作数,存储数据检测单元223可以确定该指令所需存储的数据;进一步的,存储数据检测单元223还可以获取在指令的加载(load)流程的提交(retire)过程中,指令所加载的数据(即访存单元加载在虚拟后端的数据),从而判断指令所加载的数据与指令所需存储的数据是否相同,若相同,则可以推断得出指令存储的数据为准确,若不同,则认为指令存储的数据不准确。
在一个可选的示例中,所述存储数据检测单元223可以包括数据存储器224;所述数据存储器224的存储容量与为所述访存单元240配置的内存的存储容量相匹配,且与所述内存配置有相同的地址,其中,所述数据存储器224可以将其存储空间初始化为随机值;从而,所述数据存储器224可以在指令指示的地址存储所述指令所需存储的数据,进而在判断指令所加载的数据与指令所需存储的数据是否相同的步骤中,可以判断指令所加载的数据与数据存储器中对应该指令所指示的地址存储的数据是否相同,进而确定指令存储的数据是否准确。
在进一步的可选示例中,所述获取虚拟前端在指令的存储流程的提交过程中,所述指令所存储的源操作数,可以设置虚拟前端在指令的存储流程的提交过程中,将所述指令所存储的源操作数发送至存储数据检测单元。
其中,所述存储数据检测单元223可以全局数据检测器(Global data checker),且支持多线程间的数据一致性检测,是整个系统的端到端的数据检测器。
可以看出,本发明实施例通过为访存单元模拟前端环境和后端环境,从而为访存单元提供完整的运行环境,使得访存单元能够在该验证系统中实现对应访存单元全功能的操作,进而可以在一个验证系统中实现对访存单元的全功能的验证,提高访存单元的验证效率
本发明实施例还提供一种访存单元验证设备,该设备装载有本发明实施例提供的访存单元验证系统。
本发明实施例提供一种存储介质,所述存储介质存储有本发明实施例提供的访存单元验证系统。
上文描述了本发明实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本发明实施例披露、公开的实施例方案。
虽然本发明实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (22)
1.一种访存单元验证系统,其特征在于,包括:
仿真模块,用于模拟访存单元的前端环境和后端环境,使访存单元基于所述前端环境和所述后端环境执行测试用例设定的流程;其中,所述前端环境用于提供所述访存单元上游的指令操作行为,所述后端环境用于提供所述访存单元下游的指令操作行为;
检测模块,用于检测所述访存单元在执行所述测试用例设定的流程时所产生的测试数据;
结果确定模块,用于基于所述检测模块的测试数据,确定所述访存单元的验证结果。
2.根据权利要求1所述的访存单元验证系统,其特征在于,所述仿真模块包括虚拟前端和虚拟后端,所述虚拟前端用于模拟访存单元的前端环境,所述虚拟后端用于模拟访存单元的后端环境。
3.根据权利要求2所述的访存单元验证系统,其特征在于,所述虚拟前端包括指令发射单元、指令提交单元和冲刷单元,其中,所述指令发射单元用于向访存单元发射最小执行单元指令;所述指令提交单元用于基于访存单元的运行参数,提交最小执行单元指令;所述冲刷单元用于向访存单元发出冲刷指令。
4.根据权利要求2所述的访存单元验证系统,其特征在于,所述虚拟后端包括虚拟二级缓存和虚拟远端存储器,所述虚拟二级缓存用于模拟二级缓存的存储行为,所述虚拟远端存储器用于模拟远端物理空间的存储行为。
5.根据权利要求4所述的访存单元验证系统,其特征在于,所述虚拟远端存储器还用于为访存单元提供多核访问场景下,远端物理空间的独占权限的交替环境。
6.根据权利要求4所述的访存单元验证系统,其特征在于,所述虚拟后端还包括数据返回单元,所述数据返回单元用于为访存单元从虚拟远端存储器中读取数据,并将所读取的数据返回至访存单元。
7.根据权利要求2所述的访存单元验证系统,其特征在于,所述访存单元验证系统还包括,页表生成模块,用于为所述仿真模块生成页表,所述页表用于记录指令中的虚拟地址与内存的物理地址的映射关系。
8.根据权利要求7所述的访存单元验证系统,其特征在于,所述访存单元验证系统还包括,测试用例生成模块,用于基于所述页表生成模块生成的页表,生成测试用例,其中,所述测试用例至少包括对页表中的物理地址的访问指令。
9.根据权利要求8所述的访存单元验证系统,其特征在于,所述测试用例生成模块包括测试用例修改单元,用于修改所生成的测试用例;所述虚拟前端基于所述测试用例,向访存单元发出指令。
10.根据权利要求2所述的访存单元验证系统,其特征在于,所述访存单元验证系统还包括,预加载模块,所述预加载模块用于在执行测试用例前,向所述访存单元和所述仿真模块加载预设的数据。
11.根据权利要求10所述的访存单元验证系统,其特征在于,所述访存单元包括一级页表缓存器,所述虚拟后端包括二级页表缓存器,所述预加载模块还用于在执行测试用例前,向所述一级缓存页表缓存器和所述二级页表缓存器中加载预设的页表数据。
12.根据权利要求11所述的访存单元验证系统,其特征在于,所述访存单元包括一级缓存,所述预加载模块用于在执行测试用例前,向所述一级缓存加载预设的数据。
13.根据权利要求1所述的访存单元验证系统,其特征在于,所述检测模块,包括地址检测单元,用于检测所述访存单元中,虚拟地址转换物理地址的行为是否准确。
14.根据权利要求13所述的访存单元验证系统,其特征在于,所述访存单元验证系统包括虚拟取值单元,用于向所述访存单元发送地址转换指令,以使得所述访存单元将指令中的虚拟地址转换为物理地址;
所述地址检测单元,用于检测所述访存单元基于所述虚拟取值单元发送的地址转换指令,转换的物理地址是否准确。
15.根据权利要求1所述的访存单元验证系统,其特征在于,所述检测模块,包括,同步数据检测单元,用于检测在执行指令的同步操作时,指令所转换的物理地址和指令的源操作数是否准确。
16.根据权利要求2所述的访存单元验证系统,其特征在于,所述检测模块,包括,存储数据检测单元,用于基于访存单元加载在虚拟后端的数据,确定访存单元存储的数据是否准确。
17.根据权利要求16所述的访存单元验证系统,其特征在于,所述存储数据检测单元,用于基于访存单元加载在虚拟后端的数据,确定访存单元存储的数据是否准确,包括:
获取虚拟前端在指令的存储流程的提交过程中,所述指令所存储的源操作数;
基于所述源操作数,确定所述指令所需存储的数据;
获取在指令的加载流程的提交过程中,指令所加载的数据;
判断指令所加载的数据与指令所需存储的数据是否相同,若相同,则指令存储的数据为准确,若不同,则指令存储的数据不准确。
18.根据权利要求17所述的访存单元验证系统,其特征在于,所述存储数据检测单元包括数据存储器,所述数据存储器的存储容量与为所述访存单元配置的内存的存储容量相匹配,且与所述内存配置有相同的地址;所述数据存储器用于在指令指示的地址存储所述指令所需存储的数据;
所述判断指令所加载的数据与指令所需存储的数据是否相同,具体为,判断指令所加载的数据与数据存储器中对应所述指令所指示的地址存储的数据是否相同。
19.根据权利要求2所述的访存单元验证系统,其特征在于,所述仿真模块,还包括虚拟一级缓存,用于记录所述访存单元中的一级缓存的数据和缓存状态。
20.根据权利要求2所述的访存单元验证系统,其特征在于,所述访存单元验证系统还包括指令修改模块,所述指令修改模块用于基于虚拟后端对所述访存单元所执行的指令进行修改。
21.一种访存单元验证设备,其特征在于,所述访存单元验证设备装载有如权利要求1-20任一项所述的访存单元验证系统。
22.一种存储介质,其特征在于,所述存储介质存储有如权利要求1-20任一项所述的访存单元验证系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111398028.1A CN114090499A (zh) | 2021-11-23 | 2021-11-23 | 访存单元验证系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111398028.1A CN114090499A (zh) | 2021-11-23 | 2021-11-23 | 访存单元验证系统、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114090499A true CN114090499A (zh) | 2022-02-25 |
Family
ID=80303556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111398028.1A Pending CN114090499A (zh) | 2021-11-23 | 2021-11-23 | 访存单元验证系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114090499A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114860627A (zh) * | 2022-07-06 | 2022-08-05 | 沐曦集成电路(上海)有限公司 | 基于地址信息动态生成页表的方法 |
CN117648226A (zh) * | 2024-01-29 | 2024-03-05 | 北京开源芯片研究院 | 一种处理器缓存的工作机制的测试方法以及装置 |
-
2021
- 2021-11-23 CN CN202111398028.1A patent/CN114090499A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114860627A (zh) * | 2022-07-06 | 2022-08-05 | 沐曦集成电路(上海)有限公司 | 基于地址信息动态生成页表的方法 |
CN114860627B (zh) * | 2022-07-06 | 2022-09-30 | 沐曦集成电路(上海)有限公司 | 基于地址信息动态生成页表的方法 |
CN117648226A (zh) * | 2024-01-29 | 2024-03-05 | 北京开源芯片研究院 | 一种处理器缓存的工作机制的测试方法以及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114090499A (zh) | 访存单元验证系统、设备及存储介质 | |
US9858057B2 (en) | Methods and apparatus to validate translated guest code in a dynamic binary translator | |
JP4712583B2 (ja) | ソフトウェア検証プログラム、ソフトウェア検証装置、ソフトウェア検証方法 | |
US20130024646A1 (en) | Method and Simulator for Simulating Multiprocessor Architecture Remote Memory Access | |
TWI548986B (zh) | 用於檢測在並行程式中異常交插之方法及系統 | |
CN114580344B (zh) | 测试激励生成方法、验证方法、验证系统及相关设备 | |
CN109716302B (zh) | 用于冗余数据处理的方法和设备 | |
US8707102B2 (en) | Method and program for verifying operation of processor | |
US8230402B2 (en) | Testing and debugging of dynamic binary translation | |
US8626965B2 (en) | Using a DMA engine to automatically validate DMA data paths | |
US20190235864A1 (en) | Generating and verifying hardware instruction traces including memory data contents | |
CN116167310A (zh) | 一种验证多核心处理器缓存一致性的方法及装置 | |
US9658849B2 (en) | Processor simulation environment | |
CN117785292B (zh) | 多核处理器系统的缓存一致性的验证方法及验证装置 | |
CN114330176A (zh) | 芯片验证方法、装置、电子设备及存储介质 | |
JP2018156294A (ja) | ソフトウェア検証装置およびソフトウェア検証プログラム | |
CN117556749A (zh) | 芯片验证方法、测试用例的复用方法及装置 | |
US7761280B2 (en) | Data processing apparatus simulation by generating anticipated timing information for bus data transfers | |
JP5419639B2 (ja) | 計算機装置及び情報処理方法及びプログラム | |
JP2005149503A (ja) | Dmaを使用してメモリをテストするためのシステムおよび方法 | |
JP2010134789A (ja) | 要求処理装置、要求処理システムおよびアクセス試験方法 | |
CN114237705A (zh) | 验证方法、装置、电子设备和计算机可读存储介质 | |
JP7317099B2 (ja) | ガード・タグ紛失の取り扱い | |
JP6910739B2 (ja) | 評価解析対象メモリ装置及びメモリ評価解析システム | |
JP4461934B2 (ja) | キャッシュメモリ試験システム、試験方法、試験プログラム |
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 |