CN116343898A - 一种nvme控制器的验证平台、方法、设备及介质 - Google Patents
一种nvme控制器的验证平台、方法、设备及介质 Download PDFInfo
- Publication number
- CN116343898A CN116343898A CN202310182516.1A CN202310182516A CN116343898A CN 116343898 A CN116343898 A CN 116343898A CN 202310182516 A CN202310182516 A CN 202310182516A CN 116343898 A CN116343898 A CN 116343898A
- Authority
- CN
- China
- Prior art keywords
- nvme
- nvme controller
- pcie
- axi
- controller
- 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
- 238000012795 verification Methods 0.000 title claims abstract description 54
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000005540 biological transmission Effects 0.000 claims abstract description 18
- 230000006870 function Effects 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 10
- 238000004088 simulation Methods 0.000 claims description 10
- 238000012546 transfer Methods 0.000 claims description 9
- 238000012544 monitoring process Methods 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 238000010200 validation analysis Methods 0.000 claims description 3
- 238000007726 management method Methods 0.000 description 51
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 238000013403 standard screening design Methods 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- LHMQDVIHBXWNII-UHFFFAOYSA-N 3-amino-4-methoxy-n-phenylbenzamide Chemical compound C1=C(N)C(OC)=CC=C1C(=O)NC1=CC=CC=C1 LHMQDVIHBXWNII-UHFFFAOYSA-N 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
- G11C29/56016—Apparatus features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
- G11C2029/5602—Interface to device under test
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
Abstract
本发明涉及一种NVME控制器的验证平台、方法、设备及介质。所述验证平台包括:待测NVMe控制端DUT以参数传递方式输出NVMe控制器所需数量,发送以AXI协议为载体的第一指令;NVMe控制器管理装置根据所需数量进行PCIe拓扑结构的链路连接和NVMe控制器配置,将第一指令转换成以PCIe协议为载体的第二指令并发送给NVMe控制器;PCIe拓扑结构在某个NVMe控制器执行完第二指令后返回完成信息;NVMe控制器管理装置还用于将完成信息转换成以AHB协议为载体的回复完成数据包并发送给待测NVMe控制端DUT。本发明的方案简化了DUT到NVMe控制器的控制通路与数据传输通路,具有较佳的通用性。
Description
技术领域
本发明涉及NVMe测试领域,尤其涉及一种NVME控制器的验证平台、方法、设备及介质。
背景技术
大数据时代的到来,从移动支付到自动驾驶,数据量呈现几何式爆发增长。不仅带来数据存储的压力,也同样对于数据处理提出了更高的要求:在待处理数据量剧增的情况下,数据传输的时延还必须不断缩短。非易失性存储总线标准(non-volatilememoryexpress,NVMe)作为一种用于闪存和SSD的新存储访问和传输协议,能够充分发挥高速存储设备存取速度快的特点。基于PCIe接口且支持NVMe协议的SSD是当前存储性能的最高代表。相比其他传统驱动协议NVMe具有更快的传输速度、更高的传输带宽。NVMe正在成为数据中心服务器和客户端设备的新行业标准。
NVMe管理端DUT内部需要处理大量高并发的I/O事务,每个I/O事务都可能伴随多种硬件操作或者事件处理,功能复杂且同时还要满足苛刻的IOPS等性能要求。在前端验证上需要花费耗费验证人员大量时间和精力才能在可靠性、性能、功耗等方面达到最佳状态。在过去针对于NVMe管理端DUT的前端验证上,由于NVMe管理端DUT用户端输入输出接口往往都是AMBA总线,无法直接驱动以PCIe协议为载体的NVMe控制器,因此有些验证方法是携带PCIe RC DUT在系统级进行验证,系统级构造出PCIe的拓扑结构,进行联合验证。缺少专门针对NVMe管理端DUT的单独验证,出现问题时,定位问题点的难度较大。或者有些验证者针对单独的NVMe管理端进行验证时,在搭建PCIe拓扑结构后,需要进行复杂的组TLP包操作,增大难度。使用AXI接口的NVMe控制器结构在需要集成较多个数的控制器时,AXI总线的线路复杂度高,多master,多slave的对接难度大,I/O读写性能测试不好评估。
发明内容
有鉴于此,有必要针对以上技术问题,提供一种NVME控制器的验证平台、方法、设备及介质。
根据本发明的第一方面,提供了一种NVME控制器的验证方法,所述方法包括:
待测NVMe控制端DUT,用于以参数传递方式输出NVMe控制器所需数量,以及发送以AXI协议为载体的第一指令;
NVMe控制器管理装置,用于根据所需数量进行PCIe拓扑结构的链路连接和NVMe控制器配置,以及用于将所述第一指令转换成以PCIe协议为载体的第二指令并发送给对应的NVMe控制器;
包括多个NVMe控制器的PCIe拓扑结构,用于在某个NVMe控制器执行完所述第二指令后返回以PCIe协议为载体的完成信息;以及
所述NVMe控制器管理装置还用于将所述完成信息转换成以AHB协议为载体的回复完成数据包并发送给所述待测NVMe控制端DUT。
在一些实施例中,所述待测NVMe控制端DUT的输出接口为AXI接口,输入接口为AHB接口。
在一些实施例中,所述待测NVMe控制端DUT进一步用于:
在验证testcase中向NVMe控制器管理装置,传递NVMe控制器管理装置需要管理的控制器个数参数;以及
在整个验证过程中将向每一个NVMe控制器输出以下三种主要激励:写入提交队列的提交队列命令、写入内存页中供NVMe控制器读取的PRP地址信息、写入NVMe控制器寄存器的门铃信息。
在一些实施例中,所述NVMe控制器管理装置进一步用于:
根据接收的传递参数在前端仿真开始前进行PCIe EP和NVMe控制器的连接、完成PCIe RC、PCIe EP port口interface之间的连接;
在前端仿真开始时更改RC的配置,使RC跳过枚举阶段,并使用EP RC设备的回调方式配置RC、EP的寄存器;
配置完成后启动PCIe RC、PCIeEP设备,开启后PCIe RC、PCIe EP设备自动进行链路连接,在建链开始后在内部调用建链监测函数监测PCIe的链路速度,等待所有的链路连接完成;
链路连接完成后打开管理装置NVMe初始化后台配置,根据参数后台构建管理命令,调用控制器VIP函数后台执行命令。
在一些实施例中,所述NVMe控制器管理装置包括:
第一收集模块,包括一个一直接收AXI数据包的axi_tr_queue队列,用于当AXI数据包到来时将AXI数据包送入axi_tr_queue队列中;
查询模块,用于当axi_tr_queue.size大于零时,判断axi_tr_queue队列中是否存在所述待测NVMe控制端DUT发送出来的AXI数据包,通过AXI数据包地址判断是否在任意一个NVMe控制器范围内;
分类发送模块,用于执行以下操作:
如果存在表明这是一笔读/写该NVMe控制器寄存器的操作,如果属于写NVMe控制器门铃寄存器,则调用NVMe控制器函数write_nvme_cap将门铃信息输入NVMe控制器,将is_reg标识符拉高;
当is_reg!=1,检测AXI数据包地址是否在管理的任意一个NVMe控制器所有的提交队列范围内,如果存在表明这是一笔向提交队列写提交命令的操作,使用write_sqe_memory函数将提交命令写入提交队列,并将is_sqe标识符拉高;
当is_reg!=1&&is_sqe!=1,则AXI数据包激励为向内存写PRP地址信息,调用write_memory()将PRP地址信息写入内存。
在一些实施例中,所述PCIe拓扑结构还用于:
当NVMe控制器收到门铃信息后,去内存中搬运提交命令,执行命令完毕后,向NVMe控制器管理装置回复报文形式的完成信息。
在一些实施例中,所述NVMe控制器管理装置还包括:
第二收集模块,使用RC rx port的回调函数接收到报文形式的完成信息;
转换发送模块,用于从报文形式的完成信息提取出地址、数据信息,写入所述待测NVMe控制端DUT内部完成队列中。
根据本发明的第二方面,提供了一种NVME控制器的验证装置,采用以上所述的NVMe控制器的验证平台,所述方法包括以下步骤:
利用待测NVMe控制端DUT以参数传递方式输出NVMe控制器所需数量;
利用NVMe控制器管理装置根据所需数量进行PCIe拓扑结构的链路连接和NVMe控制器配置;
利用待测NVMe控制端DUT发送以AXI协议为载体的第一指令;
利用NVMe控制器管理装置将所述第一指令转换成以PCIe协议为载体的第二指令并发送给对应的NVMe控制器;
利用包括多个NVMe控制器的PCIe拓扑结构在某个NVMe控制器执行完所述第二指令后返回以PCIe协议为载体的完成信息;
利用所述NVMe控制器管理装置将所述完成信息转换成以AHB协议为载体的回复完成数据包并发送给所述待测NVMe控制端DUT。
根据本发明的第三方面,还提供了一种计算机设备,该计算机设备包括:
至少一个处理器;以及
存储器,存储器存储有可在处理器上运行的计算机程序,处理器执行程序时执行前述的NVME控制器的验证方法。
根据本发明的第四方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时执行前述的NVME控制器的验证方法。
上述一种NVME控制器的验证平台,解决了在传统方法中需要PCIe枚举时间和PCIe转包等过程所耗费的大量时间,以及简化了DUT到NVMe控制器端的控制通路与数据传输通路,方便在前端验证快速定位NVMe控制端DUT功能问题,同时可以支持在验证环境中挂载任意个数的NVMe控制器,具有较佳的通用性,此外还将NVMe控制端DUT输出的AXI指令直接转换成对应NVMe控制器能理解的指令,数据交互由NVMe系统自动进行完成,使用户在验证NVMe控制端DUT使时,能够更加灵活个性化,也更加符合实际应用场景。
此外,本发明还提供了一种NVME控制器的验证方法、一种计算机设备和一种计算机可读存储介质,同样能实现上述技术效果,这里不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明一个实施例提供的一种NVMe控制器的验证平台的整体框架示意图;
图2为本发明一个实施例提供的一种NVME控制器的验证平台内部结构示意图;
图3为本发明另一个实施例提供的PCIe拓扑结构的形成过程示意图;
图4为本发明另一个实施例提供的NVMe协议初始化流程示意图;
图5为本发明另一个实施例提供的待测NVMe控制端DUT输出接口数据包的收集以及分发示意图;
图6为本发明一个实施例提供的一种NVMe控制器的验证方法的流程示意图;
图7为本发明另一个实施例中计算机设备的内部结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
为了便于理解下面将对本发明使用的技术名词进行如下说明:
Universal Verification Methodology,简称UVM,Universal VerificationMethodology,是指通用验证方法学;
Peripheral Component Interconnect express,简称PCIe,是一种高速串行计算机扩展总线标准;
DUT是指待测设计;
TLP,是指PCIe事务层数据包;
RC,是指PCIe根联合体;
EP,是指PCIe根节点
NVMe,是指非易失性内存主机控制器接口规范;
SSD,是指固态驱动器
IOPS,是指每秒的读写次数。
在一个实施例中,请参照图1所示,本发明提供了一种NVME控制器的验证平台100,具体来说,所述验证平台包括:
待测NVMe控制端DUT110,用于以参数传递方式输出NVMe控制器所需数量,以及发送以AXI协议为载体的第一指令;
NVMe控制器管理装置120,用于根据所需数量进行PCIe拓扑结构130的链路连接和NVMe控制器配置,以及用于将所述第一指令转换成以PCIe协议为载体的第二指令并发送给对应的NVMe控制器;
包括多个NVMe控制器的PCIe拓扑结构130,用于在某个NVMe控制器执行完所述第二指令后返回以PCIe协议为载体的完成信息;以及
所述NVMe控制器管理装置120还用于将所述完成信息转换成以AHB协议为载体的回复完成数据包并发送给所述待测NVMe控制端DUT110。
上述一种NVME控制器的验证平台,解决了在传统方法中需要PCIe枚举时间和PCIe转包等过程所耗费的大量时间,以及简化了DUT到NVMe控制器端的控制通路与数据传输通路,方便在前端验证快速定位NVMe控制端DUT功能问题,同时可以支持在验证环境中挂载任意个数的NVMe控制器,具有较佳的通用性,此外还将NVMe控制端DUT输出的AXI指令直接转换成对应NVMe控制器能理解的指令,数据交互由NVMe系统自动进行完成,使用户在验证NVMe控制端DUT使时,能够更加灵活个性化,也更加符合实际应用场景。
在一些实施例中,请参照图2所示,所述待测NVMe控制端DUT110的输出接口为AXI接口111,输入接口为AHB接口112。
在一些实施例中,请参照图3所示,所述待测NVMe控制端DUT110进一步用于:
在验证testcase中向NVMe控制器管理装置120传递NVMe控制器管理装置需要管理的控制器个数参数;以及
在整个验证过程中将向每一个NVMe控制器输出以下三种主要激励:写入提交队列的提交队列命令、写入内存页中供NVMe控制器读取的PRP地址信息、写入NVMe控制器寄存器的门铃信息。
在一些实施例中,请参照图4所示,所述NVMe控制器管理装置120进一步用于:
根据接收的传递参数在前端仿真开始前进行PCIe EP和NVMe控制器的连接、完成PCIe RC、PCIe EP port口interface之间的连接;
在前端仿真开始时更改RC的配置,使RC跳过枚举阶段,并使用EP RC设备的回调方式配置RC、EP的寄存器;
配置完成后启动PCIe RC、PCIeEP设备,开启后PCIe RC、PCIe EP设备自动进行链路连接,在建链开始后在内部调用建链监测函数监测PCIe的链路速度,等待所有的链路连接完成;
链路连接完成后打开管理装置NVMe初始化后台配置,根据参数后台构建管理命令,调用控制器VIP函数后台执行命令。
在一些实施例中,请再次参照图2及图5所示,所述NVMe控制器管理装置120包括:
第一收集模块121,包括一个一直接收AXI数据包的axi_tr_queue队列,用于当AXI数据包到来时将AXI数据包送入axi_tr_queue队列中;
查询模块122,用于当axi_tr_queue.size大于零时,判断axi_tr_queue队列中是否存在所述待测NVMe控制端DUT110发送出来的AXI数据包,通过AXI数据包地址判断是否在任意一个NVMe控制器范围内;
分类发送模块123,用于执行以下操作:
如果存在表明这是一笔读/写该NVMe控制器寄存器的操作,如果属于写NVMe控制器门铃寄存器,则调用NVMe控制器函数write_nvme_cap将门铃信息输入NVMe控制器,将is_reg标识符拉高;
当is_reg!=1,检测AXI数据包地址是否在管理的任意一个NVMe控制器所有的提交队列范围内,如果存在表明这是一笔向提交队列写提交命令的操作,使用write_sqe_memory函数将提交命令写入提交队列,并将is_sqe标识符拉高;
当is_reg!=1&&is_sqe!=1,则AXI数据包激励为向内存写PRP地址信息,调用write_memory()将PRP地址信息写入内存。
在一些实施例中,所述PCIe拓扑结构130还用于:
当NVMe控制器收到门铃信息后,去内存中搬运提交命令,执行命令完毕后,向NVMe控制器管理装置回复报文形式的完成信息。
在一些实施例中,请再次参照图2及图5所示,所述NVMe控制器管理装置120还包括:
第二收集模块124,使用RC rx port的回调函数接收到报文形式的完成信息;
转换发送模块125,用于从报文形式的完成信息提取出地址、数据信息,写入所述待测NVMe控制端DUT110内部的完成队列中。
在又一个实施例中,为了便于理解针对基于PCIe拓扑结构管理多EP、多NVMe控制端的单NVMe控制端DUT验证系统,本实施例提供了一种NVME控制器的验证平台,实现原理为通过从NVMe控制端DUT以AXI协议为载体的输出信号中获取地址与数据信息等,然后通过调用NVMe控制器管理装置,完成DUT的输出信息变成NVMe控制器所能识别的控制信息和数据信息,具体实现参考如下:
第一阶段:使用参数传递告知NVMe控制器管理装置需要管理的NVMe控制器数量,在前端验证仿真开始前会先自动完成参数传递,例化生成对应参数数量的NVMe控制器,并与对应EP连接,完成EP,RC的interface连接。初始化PCIe拓扑结构下的NVMe控制器管理装置,并进行链路连接。但是在链路连接完毕后,会跳过传统PCIe拓扑结构形成所需要的枚举和枚举过程中的BAR空间地址分配,这在不影响DUT功能验证的情况可以节约大量的仿真运行时间。阶段二根据实际NVMe控制器管理装置的不同要求,对于只能创建I/O命令的NVMe控制端DUT,PCIe拓扑结构NVMe控制器管理装置可以提供帮助进行后台创建NVMe管理命令,并让NVMe控制器后台执行,帮助NVMe控制器管理装置完成NVMe协议规定的标准初始化流程,让NVMe控制器能够正常执行响应I/O命令。在完成这两个阶段后对在后续对进行验证时,NVMe控制器装置能够完整正确的响应并回复待测NVMe控制端DUT110的所有指令和命令。
基于上述验证平台主将要通过以下四步完成:
第一步,在验证testcase中向基于PCIe拓扑结构的NVMe控制器管理装置,传递这次NVMe控制端DUT需要管理的控制器个数参数。根据该参数在前端仿真开始前NVMe控制器管理装置将进行PCIe EP和NVMe控制器的连接,以及完成PCIe RC,EP port口interface之间的连接。参数传递过程如下所示:
set(“ep_num”,‘d5);//向管理装置传递需要管理的NVMe控制器数量为5;
get(“ep_num”,num_ctrlers);//接收到NVMe控制器数量为5。
第二步,在前端仿真开始时,更改RC的配置,使RC跳过枚举阶段,具体配置参数如下所示,并使用EP RC设备的回调方式配置RC,EP必要寄存器。
rc.set(“auto_enum”,0);//关闭RC自动枚举功能;
rc.set(“disable_local_bars”,1);//关闭RC bar空间。
请参照图3所示,配置完成后,启动PCIe RC,EP设备。开启后PCIe RC,EP设备会开始自动进行链路连接,基于PCIe拓扑结构的NVMe控制器管理装置在建链开始后在内部调用建链监测函数监测PCIe的链路速度,等待所有的链路连接完成。该建链函数检测port口从ltssm_L0状态开始启动,使用PCIe RC设备的监控速度函数get(“current_speed”)函数;得到当前PCIe的链路速度,当链路速度等于设定速度时,再次等待检测到port口到达ltssm_L0状态,表示整个PCIe系统的建链完成,PCIe的拓扑结构形成。之后使用NVMe控制器的回调方式修改controller structure等参数进行针对不同NVMe控制端DUT验证的个性化配置,调用start_bfm(),开启所有的NVMe控制器。
第三步,开始对每一个NVMe控制器进行NVMe协议标准的初始化流程,对于只能够管理I/O命令的NVMe控制端DUT,基于PCIe拓扑结构的NVMe控制器管理装置可以提供后台自动完成NVMe控制端初始化流程,后台发送对每一个可管理的NVMe控制器发送用户可定制的不同NVMe管理命令,如后台建立SQ,CQ通道,SQ/CQ的地址,深度均可适应不同NVMe控制端DUT的要求进行更改,保证后续NVMe控制器顺利接收I/O命令。基于PCIe拓扑结构的NVMe控制器管理装置可帮助的NVMe协议基础初始化流程如图4所示。
第四步,完成上面3步后,一个正常运行的NVMe控制端DUT在整个验证过程中将向每一个NVMe控制器输入以下三种主要激励:
(1)写入提交队列的提交队列命令;
(2)写入内存页中供NVMe控制器读取的PRP地址信息;
(3)写入NVMe控制器寄存器的门铃信息。
请结合图2和图5所示,图5展示了基于PCIe拓扑结构的NVMe控制器管理装置对NVMe控制端DUT输出接口数据包的收集和分发过程。在NVMe控制器管理装置内部的主要内容包括:第一收集模块、查询模块分类发送模块、第二收集模块、转换发送模块,数据解析流程如下:
(1)一个一直在接收AXI数据包的队列,每当一个AXI数据包到来,就将数据包送入axi_tr_queue队列中。
(2)当axi_tr_queue.size()大于零时,判断队列中存在NVMe控制端DUT发送出来的AXI数据包,首先通过AXI数据包地址是否在任意一个NVMe控制器范围内,如果存在表明这是一笔读/写该NVMe控制器寄存器的操作,如写NVMe控制器门铃寄存器,调用NVMe控制器函数write_nvme_cap()将门铃信息输入NVMe控制器。将is_reg标识符拉高。
(3)当is_reg!=1,检测AXI数据包地址是否在管理的任意一个NVMe控制器所有的提交队列范围内,如果存在表明这是一笔向提交队列写提交命令的操作,使用write_sqe_memory()函数将提交命令写入提交队列,并将is_sqe标识符拉高。
(4)当is_reg!=1&&is_sqe!=1,该笔AXI数据包激励为向内存写PRP地址信息,调用write_memory()将PRP地址信息写入内存。
当NVMe控制器收到门铃信息后,去内存中搬运提交命令,执行命令完毕后,NVMe控制器管理装置回复完成信息。
(5)RC rx port的回调函数接收到报文形式的完成信息,到达收集模块2,之后在转换发送模块中,提取出地址,数据等信息,写入NVMe控制器DUT内部完成队列中。
本实施的一种NVME控制器的验证平台,相比与传统的NVMe管理端验证方法,带有PCIe的拓扑结构更加贴合该类SoC芯片的真实使用环境,并且不需要枚举过程,节约了传统带有PCIe拓扑结构时,无关验证NVMe管理端DUT功能的枚举却需要花费的大量时间,同时本发明中的方法可以支持在验证环境中挂载任意个数的NVMe控制器,提供了更广泛的适配。
在一些实施例中,请参照图6所示,本发明还提供了一种NVME控制器的验证方法200,采用以上所述的NVMe控制器的验证平台,所述方法包括以下步骤:
步骤201,利用待测NVMe控制端DUT以参数传递方式输出NVMe控制器所需数量;
步骤202,利用NVMe控制器管理装置根据所需数量进行PCIe拓扑结构的链路连接和NVMe控制器配置;
步骤203,利用待测NVMe控制端DUT发送以AXI协议为载体的第一指令;
步骤204,利用NVMe控制器管理装置将所述第一指令转换成以PCIe协议为载体的第二指令并发送给对应的NVMe控制器;
步骤205,利用包括多个NVMe控制器的PCIe拓扑结构在某个NVMe控制器执行完所述第二指令后返回以PCIe协议为载体的完成信息;
步骤206,利用所述NVMe控制器管理装置将所述完成信息转换成以AHB协议为载体的回复完成数据包并发送给所述待测NVMe控制端DUT。
上述一种NVME控制器的验证方法,解决了在传统方法中需要PCIe枚举时间和PCIe转包等过程所耗费的大量时间,以及简化了DUT到NVMe控制器端的控制通路与数据传输通路,方便在前端验证快速定位NVMe控制端DUT功能问题,同时可以支持在验证环境中挂载任意个数的NVMe控制器,具有较佳的通用性,此外还将NVMe控制端DUT输出的AXI指令直接转换成对应NVMe控制器能理解的指令,数据交互由NVMe系统自动进行完成,使用户在验证NVMe控制端DUT使时,能够更加灵活个性化,也更加符合实际应用场景。
需要说明的是,关于NVME控制器的验证方法的具体限定可以参见上文中对NVME控制器的验证平台的限定,在此不再赘述。
根据本发明的另一方面,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图请参照图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时实现以上所述的NVME控制器的验证方法。
根据本发明的又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上所述的NVME控制器的验证方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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 (10)
1.一种NVMe控制器的验证平台,其特征在于,所述验证平台包括:
待测NVMe控制端DUT,用于以参数传递方式输出NVMe控制器所需数量,以及发送以AXI协议为载体的第一指令;
NVMe控制器管理装置,用于根据所需数量进行PCIe拓扑结构的链路连接和NVMe控制器配置,以及用于将所述第一指令转换成以PCIe协议为载体的第二指令并发送给对应的NVMe控制器;
包括多个NVMe控制器的PCIe拓扑结构,用于在某个NVMe控制器执行完所述第二指令后返回以PCIe协议为载体的完成信息;以及
所述NVMe控制器管理装置还用于将所述完成信息转换成以AHB协议为载体的回复完成数据包并发送给所述待测NVMe控制端DUT。
2.根据权利要求1所述的NVMe控制器的验证平台,其特征在于,所述待测NVMe控制端DUT的输出接口为AXI接口,输入接口为AHB接口。
3.根据权利要求2所述的NVMe控制器的验证平台,其特征在于,所述待测NVMe控制端DUT进一步用于:
在验证testcase中向NVMe控制器管理装置传递NVMe控制器管理装置需要管理的控制器个数参数;以及
在整个验证过程中将向每一个NVMe控制器输出以下三种主要激励:写入提交队列的提交队列命令、写入内存页中供NVMe控制器读取的PRP地址信息、写入NVMe控制器寄存器的门铃信息。
4.根据权利要求3所述的NVMe控制器的验证平台,其特征在于,所述NVMe控制器管理装置进一步用于:
根据接收的传递参数在前端仿真开始前进行PCIe EP和NVMe控制器的连接、完成PCIeRC、PCIe EP port口interface之间的连接;
在前端仿真开始时更改RC的配置,使RC跳过枚举阶段,并使用EP RC设备的回调方式配置RC、EP的寄存器;
配置完成后启动PCIe RC、PCIeEP设备,开启后PCIe RC、PCIe EP设备自动进行链路连接,在建链开始后在内部调用建链监测函数监测PCIe的链路速度,等待所有的链路连接完成;
链路连接完成后打开管理装置NVMe初始化后台配置,根据参数后台构建管理命令,调用控制器VIP函数后台执行命令。
5.根据权利要求4所述的NVMe控制器的验证平台,其特征在于,所述NVMe控制器管理装置包括:
第一收集模块,包括一个一直接收AXI数据包的axi_tr_queue队列,用于当AXI数据包到来时将AXI数据包送入axi_tr_queue队列中;
查询模块,用于当axi_tr_queue.size大于零时,判断axi_tr_queue队列中是否存在所述待测NVMe控制端DUT发送出来的AXI数据包,通过AXI数据包地址判断是否在任意一个NVMe控制器范围内;
分类发送模块,用于执行以下操作:
如果存在表明这是一笔读/写该NVMe控制器寄存器的操作,如果属于写NVMe控制器门铃寄存器,则调用NVMe控制器函数write_nvme_cap将门铃信息输入NVMe控制器,将is_reg标识符拉高;
当is_reg!=1,检测AXI数据包地址是否在管理的任意一个NVMe控制器所有的提交队列范围内,如果存在表明这是一笔向提交队列写提交命令的操作,使用write_sqe_memory函数将提交命令写入提交队列,并将is_sqe标识符拉高;
当is_reg!=1&&is_sqe!=1,则AXI数据包激励为向内存写PRP地址信息,调用write_memory()将PRP地址信息写入内存。
6.根据权利要求5所述的NVMe控制器的验证平台,其特征在于,所述PCIe拓扑结构还用于:
当NVMe控制器收到门铃信息后,去内存中搬运提交命令,执行命令完毕后,向NVMe控制器管理装置回复报文形式的完成信息。
7.根据权利要求6所述的NVMe控制器的验证平台,其特征在于,所述NVMe控制器管理装置还包括:
第二收集模块,使用RC rx port的回调函数接收到报文形式的完成信息;
转换发送模块,用于从报文形式的完成信息提取出地址、数据信息,写入所述待测NVMe控制端DUT内部完成队列中。
8.一种NVMe控制器的验证方法,其特征在于,采用权利要求1-7任意一项所述的NVMe控制器的验证平台,所述方法包括以下步骤:
利用待测NVMe控制端DUT以参数传递方式输出NVMe控制器所需数量;
利用NVMe控制器管理装置根据所需数量进行PCIe拓扑结构的链路连接和NVMe控制器配置;
利用待测NVMe控制端DUT发送以AXI协议为载体的第一指令;
利用NVMe控制器管理装置将所述第一指令转换成以PCIe协议为载体的第二指令并发送给对应的NVMe控制器;
利用包括多个NVMe控制器的PCIe拓扑结构在某个NVMe控制器执行完所述第二指令后返回以PCIe协议为载体的完成信息;
利用所述NVMe控制器管理装置将所述完成信息转换成以AHB协议为载体的回复完成数据包并发送给所述待测NVMe控制端DUT。
9.一种计算机设备,其特征在于,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器中运行的计算机程序,所述处理器执行所述程序时执行权利要求8所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时执行权利要求8所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310182516.1A CN116343898A (zh) | 2023-02-24 | 2023-02-24 | 一种nvme控制器的验证平台、方法、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310182516.1A CN116343898A (zh) | 2023-02-24 | 2023-02-24 | 一种nvme控制器的验证平台、方法、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116343898A true CN116343898A (zh) | 2023-06-27 |
Family
ID=86876751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310182516.1A Pending CN116343898A (zh) | 2023-02-24 | 2023-02-24 | 一种nvme控制器的验证平台、方法、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116343898A (zh) |
-
2023
- 2023-02-24 CN CN202310182516.1A patent/CN116343898A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10621797B2 (en) | System and method for transferring diagnostic commands to a vehicle | |
CN106371954B (zh) | 基于10位从机地址的i2c总线验证的方法及系统 | |
CN112286746B (zh) | 针对axi从设备接口的通用验证平台及方法 | |
CN112527705B (zh) | 一种PCIe DMA数据通路的验证方法、装置及设备 | |
CN103631534B (zh) | 数据存储系统以及其管理方法 | |
CN100444127C (zh) | 软件测试系统和软件测试方法 | |
CN116225992A (zh) | 一种支持虚拟化仿真设备的NVMe验证平台及方法 | |
US20240036111A1 (en) | Chip verification method and apparatus, electronic device, and storage medium | |
CN112817899B (zh) | 基于pcie的数据传输方法、装置、存储介质和电子设备 | |
US9541921B2 (en) | Measuring performance of an appliance | |
CN111447121B (zh) | Pcie控制器的测试方法、装置、设备及存储介质 | |
CN117195785A (zh) | 一种总线验证方法及验证知识产权核系统 | |
CN116343898A (zh) | 一种nvme控制器的验证平台、方法、设备及介质 | |
CN107908418B (zh) | 光纤通道节点卡的逻辑程序升级方法及光纤通道总线设备 | |
CN111176164B (zh) | 一种扩展多个远程输入输出模块的方法、装置及介质 | |
CN114398214A (zh) | 性能验证方法、装置、存储介质及计算机设备 | |
CN107967230A (zh) | I3c电路设备、系统和通信方法 | |
CN107704417A (zh) | 与被测设备通信的方法及其通信系统 | |
CN109614359B (zh) | 一种基于axi总线的数据发送方法、装置和存储介质 | |
CN113238863A (zh) | 一种bmc与bios的数据交互方法、装置及系统 | |
CN106452838A (zh) | Usb设备模拟装置及方法 | |
CN112986806A (zh) | 一种接口测试方法、测试系统及计算机存储介质 | |
CN114444423B (zh) | 基于验证平台的数据处理方法、系统及电子设备 | |
CN115086214B (zh) | 一种套片检测系统、方法、电子设备及存储介质 | |
CN116594951B (zh) | 一种基于fpga的数据传输系统及方法 |
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 |