CN116225992A - 一种支持虚拟化仿真设备的NVMe验证平台及方法 - Google Patents
一种支持虚拟化仿真设备的NVMe验证平台及方法 Download PDFInfo
- Publication number
- CN116225992A CN116225992A CN202310168049.7A CN202310168049A CN116225992A CN 116225992 A CN116225992 A CN 116225992A CN 202310168049 A CN202310168049 A CN 202310168049A CN 116225992 A CN116225992 A CN 116225992A
- Authority
- CN
- China
- Prior art keywords
- pcie
- tlp
- nvme
- conversion
- axi
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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
-
- 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)
- Human Computer Interaction (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种支持虚拟化仿真设备的NVMe验证平台及方法。所述验证平台包括;PCIe EP设备包括一个PCIe物理功能和若干PCIe虚拟功能;多个NVMe控制器与PCIe物理功能和若干PCIe虚拟功能一一对应静态绑定;主机设备用于构造符合NVMe协议的TLP格式命令数据包,并通过PCIe RC设备发送到PCIe EP设备;协议中转站用于将TLP格式命令数据包转换为AMBA格式命令数据包以驱动NVMe控制器,以及将NVMe控制器返回的AMBA格式完成数据包转换成TLP格式完成数据包返回给PCIe EP设备。本发明的方案实现NVMe控制器个数和功能的灵活配置,减少CPU的资源损耗,提高资源利用率。
Description
技术领域
本发明涉及NVMe验证领域,尤其涉及一种支持虚拟化仿真设备的NVMe验证平台、方法、设备及介质。
背景技术
NVMe(非易失性内存主机控制器接口规范)作为一种用于闪存和SSD(固态驱动器)的新存储访问和传输协议,可为所有类型的工作负载提供更高的吞吐量和更快的响应时间。该协议一方面通过多队列的方式使得任务可并行、多线程地执行,另一方面利用精简的命令集可高效地处理和解析数据。因此,NVMe协议所提供的低延时性,高IOPS(每秒的读写次数)已经使其成为服务器芯片主流的存储解决方案。同时,NVMe协议高效的命令管理方式离不开NVMe控制器,NVMe控制器作为NVMe协议的载体,能够加速NVMe指令管理过程,大幅提高数据的读写传输速率,有效降低传输延迟。因此很多公司进行了NVMe控制器的开发,并且在硬件设计时为了实现更通用、便捷的端口,NVMe控制器的顶层端口普遍是AMBA接口。
目前,针对AMBA接口的传统NVMe控制器仿真平台如下图1所示,主机构造NVMe数据包,经过NVMe协议转换模块直接将NVMe命令转换为AMBA接口命令发送到NVMe控制器端,这样可完成NVMe控制器的验证任务。但在具有PCIe(一种高速串行计算机扩展总线标准)设备的大型SOC系统中,通常会有多个NVMe控制器与PCIe SR-IOV(单根虚拟化)中的PF(PCIe物理功能)和VF(PCIe虚拟功能)静态绑定,从而实现系统最大的资源利用率,此时就需要验证多个NVMe控制器。现有验证平台不仅无法实现多个NVMe控制器的验证,还具有很低的硬件资源有效利用率,因而亟需改进。
发明内容
有鉴于此,有必要针对以上技术问题,提供一种支持虚拟化仿真设备的NVMe验证平台、方法、设备及介质。
根据本发明的第一方面,提供了一种支持虚拟化仿真设备的NVMe验证平台,所述验证平台包括主机设备、PCIe RC设备、PCIe EP设备、多个NVMe控制器和协议中转站;
所述PCIe EP设备包括一个PCIe物理功能和若干PCIe虚拟功能,其中,PCIe物理功能拥有完全配置或控制PCIe设备资源的能力,PCIe物理功能和若干PCIe虚拟功能相关联,PCIe虚拟功能与PCIe物理功能以及同一PCIe物理功能关联的其他PCIe虚拟功能共享一个或多个物理资源;
多个NVMe控制器与PCIe物理功能和若干PCIe虚拟功能一一对应静态绑定;
所述PCIe RC设备和所述PCIe EP设备之间通过PCIe接口相连,所述主机设备用于构造符合NVMe协议的TLP格式命令数据包,并通过所述PCIe RC设备发送到所述PCIe EP设备;
所述协议中转站用于将所述TLP格式命令数据包转换为AMBA格式命令数据包以驱动NVMe控制器,以及将NVMe控制器返回的AMBA格式完成数据包转换成TLP格式完成数据包返回给所述PCIe EP设备。
在一些实施例中,所述验证平台包括还包括:从应用层到传输层的队列和从传输层到应用层的队列;
所述PCIe EP设备包括al2tl_callback函数和tl2al_callback函数;
所述al2tl_callback函数用于捕获主机设备发送的TLP格式命令数据包并根据类型不同放置到从应用层到传输层不同的队列中;
所述tl2al_callback函数用于从传输层到应用层的队列中获取所述协议中转站返回的TLP格式完成数据包。
在一些实施例中,从应用层到传输层的队列包括:完成TLP队列、配置TLP队列和Memory TLP队列;
所述TLP格式命令数据包分发机制如下:
根据PCIe协议中的对于TLP格式命令数据包类型字段的解析,所述完成TLP队列的判断条件为类型字段是否为5’b01010,所述配置TLP队列的判断条件为其类型字段是否为5’b00100或5’b00101,所述Memory TLP队列的判断条件为其类型字段是否为5’b00000。
在一些实施例中,所述协议中转站包括TLP-AMBA转换装置和AMBA协议驱动模块;
所述TLP-AMBA转换装置用于执行TLP到AXI协议转换和AXI到TLP协议转换;
AMBA协议驱动模块,用于根据TLP-AMBA转换装置得到的TLP格式命令数据包驱动NVMe控制器,以及向所述TLP-AMBA转换装置返回NVMe控制器的AMBA格式完成数据包。
在一些实施例中,所述TLP到AXI协议转换的流程如下:
对所述完成TLP队列、所述配置TLP队列和所述Memory TLP队列进行轮询,当其不为空时,将其最先存入队列中的数据弹出,并依次执行以下操作:AXI读写方式的转换、AXI地址的转换、AXI长度的转换、AXI写数据的转换、AXI写strobe信号的转换、AXI ID信息的转换。
在一些实施例中,所述AXI到TLP协议转换的流程如下:
根据AXI相应通道的状态进行相应转换,根据AXI读数据通道上的读数据与burstsize进行数据的填充、将AXI总线上的RID以及BID内容转换为TLP的TAG字段以得到TLP格式完成数据包。
在一些实施例中,所述TLP-AMBA转换装置还用于将AXI到TLP协议转换的TLP格式完成数据包放入从传输层到应用层的队列中。
根据本发明的第二方面,提供了一种支持虚拟化仿真设备的NVMe验证方法,采用以上所述的验证平台,所述验证方法包括以下步骤:
将PCIe EP设备配置为包括一个PCIe物理功能和若干PCIe虚拟功能,其中,PCIe物理功能拥有完全配置或控制PCIe设备资源的能力,PCIe物理功能和若干PCIe虚拟功能相关联,PCIe虚拟功能与PCIe物理功能以及同一PCIe物理功能关联的其他PCIe虚拟功能共享一个或多个物理资源;
将多个NVMe控制器与PCIe物理功能和若干PCIe虚拟功能一一对应静态绑定;
将PCIe RC设备和PCIe EP设备之间通过PCIe接口相连,利用主机设备构造符合NVMe协议的TLP格式命令数据包,并通过所述PCIe RC设备发送到所述PCIe EP设备;
利用协议中转站将所述TLP格式命令数据包转换为AMBA格式命令数据包以驱动NVMe控制器,以及将NVMe控制器返回的AMBA格式完成数据包转换成TLP格式完成数据包返回给所述PCIe EP设备。
根据本发明的第三方面,还提供了一种计算机设备,该计算机设备包括:
至少一个处理器;以及
存储器,存储器存储有可在处理器上运行的计算机程序,处理器执行程序时执行前述的支持虚拟化仿真设备的NVMe验证方法。
根据本发明的第四方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时执行前述的支持虚拟化仿真设备的NVMe验证方法。
上述一种支持虚拟化仿真设备的NVMe验证平台,该验证平台相比传统的验证方式加入了PCIe设备并且支持多个NVMe控制器的验证,首先通过配置NVMe主机以发送不同种类的命令数据包到PCIe RC设备,接着发送到PCIe EP设备,通过PCIe EP设备自带的回调函数,得到TLP数据包,经过TLP-AMBA转换装置解析数据包格式,通过AMBA协议驱动模块进而驱动NVMe控制器,使得整个NVMe验证通路可最大化的还原真实的SOC系统场景,而且提出的TLP-AMBA协议转换装置还解决了TLP数据包与AMBA数据包无法通信的问题,同时还可通过PCIe SR-IOV来提供虚拟化能力,可实现NVMe控制器个数和功能的灵活配置,从而减少CPU的资源损耗,提高资源利用率。
此外,本发明还提供了一种支持虚拟化仿真设备的NVMe验证方法、一种计算机设备和一种计算机可读存储介质,同样能实现上述技术效果,这里不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为传统NVMe控制器仿真平台示意图;
图2为本发明一个实施例提供的一种支持虚拟化仿真设备的NVMe验证平台结构示意图;
图3为本发明另一个实施例提供的一种支持虚拟化仿真设备的NVMe验证平台内部结构示意图;
图4为本发明另一个实施例提供的TLP数据包的收集以及分发;
图5A为本发明一个实施例提供的配置TLP到AMBA协议的转换流程示意图;
图5B为本发明一个实施例提供的Memory TLP到AMBA协议的转换流程示意图;
图5C为本发明一个实施例提供的完成TLP到AMBA协议的转换流程示意图;
图6为本发明另一个实施例提供的一种支持虚拟化仿真设备的NVMe验证方法的流程示意图;
图7为本发明另一个实施例中计算机设备的内部结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
在一个实施例中,请参照图2和图3所示,本发明提供了一种支持虚拟化仿真设备的NVMe验证平台100,具体来说所述验证平台包括主机设备110、PCIe RC设备120、PCIe EP设备130、多个NVMe控制器140和协议中转站;其中,RC是指PCIe根复合体;EP是指PCIe端点设备;
所述PCIe EP设备130包括一个PCIe物理功能和若干PCIe虚拟功能,其中,PCIe物理功能拥有完全配置或控制PCIe设备资源的能力,PCIe物理功能和若干PCIe虚拟功能相关联,PCIe虚拟功能与PCIe物理功能以及同一PCIe物理功能关联的其他PCIe虚拟功能共享一个或多个物理资源;
多个NVMe控制器140与PCIe物理功能和若干PCIe虚拟功能一一对应静态绑定;
所述PCIe RC设备120和所述PCIe EP设备130之间通过PCIe接口相连,所述主机设备110用于构造符合NVMe协议的TLP格式命令数据包,并通过所述PCIe RC设备120发送到所述PCIe EP设备130;
所述协议中转站150用于将所述TLP格式命令数据包转换为AMBA格式命令数据包以驱动NVMe控制器140,以及将NVMe控制器140返回的AMBA格式完成数据包转换成TLP格式完成数据包返回给所述PCIe EP设备130。
上述一种支持虚拟化仿真设备的NVMe验证平台,该验证平台相比传统的验证方式加入了PCIe设备并且支持多个NVMe控制器的验证,首先通过配置NVMe主机以发送不同种类的命令数据包到PCIe RC设备,接着发送到PCIe EP设备,通过PCIe EP设备自带的回调函数,得到TLP数据包,经过TLP-AMBA转换装置解析数据包格式,通过AMBA协议驱动模块进而驱动NVMe控制器,使得整个NVMe验证通路可最大化的还原真实的SOC系统场景,而且提出的TLP-AMBA协议转换装置还解决了TLP数据包与AMBA数据包无法通信的问题,同时还可通过PCIe SR-IOV来提供虚拟化能力,可实现NVMe控制器个数和功能的灵活配置,从而减少CPU的资源损耗,提高资源利用率。
在一些实施例中,请参照图4所示,所述验证平台包括还包括:从应用层到传输层的队列和从传输层到应用层的队列;
所述PCIe EP设备130包括al2tl_callback函数131和tl2al_callback函数132;
所述al2tl_callback函数131用于捕获主机设备110发送的TLP格式命令数据包并根据类型不同放置到从应用层到传输层不同的队列中;
所述tl2al_callback函数132用于从传输层到应用层的队列中获取所述协议中转站150返回的TLP格式完成数据包。
在一些实施例中,请参照图4所示,从应用层到传输层的队列包括:完成TLP队列、配置TLP队列和Memory TLP队列;
所述TLP格式命令数据包分发机制如下:
根据PCIe协议中的对于TLP格式命令数据包类型字段的解析,所述完成TLP队列的判断条件为类型字段是否为5’b01010,所述配置TLP队列的判断条件为其类型字段是否为5’b00100或5’b00101,所述Memory TLP队列的判断条件为其类型字段是否为5’b00000。
在一些实施例中,所述协议中转站150包括TLP-AMBA转换装置151和AMBA协议驱动模块152;
所述TLP-AMBA转换装置151用于执行TLP到AXI协议转换和AXI到TLP协议转换;
AMBA协议驱动模块152,用于根据TLP-AMBA转换装置151得到的TLP格式命令数据包驱动NVMe控制器140,以及向所述TLP-AMBA转换装置151返回NVMe控制器140的AMBA格式完成数据包。
在一些实施例中,所述TLP到AXI协议转换的流程如下:
对所述完成TLP队列、所述配置TLP队列和所述Memory TLP队列进行轮询,当其不为空时,将其最先存入队列中的数据弹出,并依次执行以下操作:AXI读写方式的转换、AXI地址的转换、AXI长度的转换、AXI写数据的转换、AXI写strobe信号的转换、AXI ID信息的转换。
在一些实施例中,所述AXI到TLP协议转换的流程如下:
根据AXI相应通道的状态进行相应转换,根据AXI读数据通道上的读数据与burstsize进行数据的填充、将AXI总线上的RID以及BID内容转换为TLP的TAG字段以得到TLP格式完成数据包。
在一些实施例中,所述TLP-AMBA转换装置151还用于将AXI到TLP协议转换的TLP格式完成数据包放入从传输层到应用层的队列中。
在又一个实施例中,为了便于理解本发明的方案,下面以包括n个NVMe控制器、以CPU作为Host端构造符合NVMe协议的数据包的应用场景为例详细说明本发明的方法,本实施例提供了基于PCIe系统的一种支持虚拟化仿真设备的NVMe验证平台,具体实施方案参考如下:
其实现原理为:使用PCIe协议作为协议转换的“中转站”,相较于传统验证平台不仅适用于多个NVMe控制器的验证,而且还可通过PCIe SR-IOV来配置的NVMe控制器的个数和具体的功能。并且提出的TLP数据包与AMBA数据包的转换装置可解决协议之间互不兼容的问题;该验证平台的PF和VF可通过PCIe SR-IOV功能来配置,如图所示,NVMe控制器0具有PF功能,其余的NVMe控制器都是VF功能,对于VF的创建和配置都是在PF驱动的基础上执行的;该验证平台具体的数据包通信流程为:配置NVMe Host设备以发送不同种类的命令数据包到PCIe RC设备,PCIe RC设备与PCIe EP设备之间通过PCIe接口相连,之后从PCIe EP设备中得到TLP数据包,该数据包是以PCIe协议为载体的NVMe命令,展示的是PCIe的数据包格式,接着通过TLP-AMBA转换装置将数据包解析为AMBA协议相关的格式,经过AMBA协议驱动模块进而驱动DUT(待测设计)。其中TLP-AMBA转换装置的具体做法是:在PCIe EP设备端通过PCIe EP设备自带的al2tl_callback函数得到TLP数据包,通过TLP-AMBA转换装置,将TLP数据包转换为AMBA格式数据包发送给AMBA协议驱动模块,通过tl2al_callback函数将AMBA数据包转换为TLP格式数据包发送给PCIe EP设备完成通信响应。
下面将详细说明该验证平台的工作过程:
第一步,利用PCIe EP设备的回调函数,完成TLP数据包的收集以及分发。请再次结合图4所示,通过回调函数可以将从应用层到传输层的TLP捕获,并将其根据类型不同放置到不同的队列中,用来后续作为AMBA协议驱动模块的驱动;同时也将由AMBA协议转换过来的TLP数据包放入到传输层到应用层的队列中,具体如图4所示。其中TLP包的分发机制是根据PCIe协议中的对于类型字段的解析,针对完成TLP判断条件为其类型字段是否为5’b01010,配置TLP判断条件为其类型字段是否为5’b00100(type0)或是5’b00101(type1),Memory TLP其判断条件为其类型字段是否为5’b00000。
第二步,进行PCIe配置TLP到AMBA协议的转化,其具体步骤如图5A所示。
首先TLP到AMBA协议的转换装置将轮询其对应的第一步中所分发的配置TLP队列,当其不为空时,将其最先存入队列中的配置TLP弹出并进入TLP到AMBA协议的转换装置中执行其功能。具体执行流程以TLP到AXI协议的转换为例:
(1)AXI读写方式的转换,将根据TLP中的format字段进行区分,若TLP中format字段为3’b010,代表配置写TLP,则将转换为AXI写操作,若其字段为3’b000,代表配置读TLP,则将其转换为AXI的读操作;
(2)AXI地址的转换,将从配置TLP中提取总线号,设备号,功能号以及配置寄存器号,根据DUT的地址转换模块的配置完成地址信息的转化,转换公式如下:
AXI_ADDR={4’b0,总线号,设备号,功能号,配置寄存器号,2’b0}+地址转换模块对于配置TLP的源地址信息
(3)AXI长度的转换,由于PCIe协议中对配置TLP长度字段的限制,其限制为1个双字的大小,根据DUT的Burst size,完成AXI长度的转换,若Burst size大于等于32bit,则长度为1,若Burst size为8bit,则长度为4,若Burst size为16bit,则长度为2;
(4)AXI写数据的转换,从配置TLP中得到的一个双字的数据,根据DUT的Burstsize的大小完成AXI写数据的转换。
(5)AXI写strobe信号的转换,由于PCIe协议中对配置TLP first byte enable和last byte enable的限制,其first byte enable一定为4’hf,last byte enable一定为4’h0,则AXI写strob信号每个bit也均为1。
(6)AXI ID信息的转换,将配置TLP中的TAG字段提取出来作为AXI的ID字段。
在完成PCIe配置TLP到AXI协议的转换后,验证平台会将其以AXI协议的形式完成对DUT的驱动,等待此AXI传输结束后,接着会完成AXI响应通道以及读数据通道到PCIe完成TLP的转换,将主要包含以下几方面:
(1)进行TLP状态的转换,根据AXI相应通道的状态完成相应的转换,若AXI总线上响应状态为OKAY,则将完成数据包的状态转换为Success;若AXI总线上响应状态为SLVERR或者DECERR,则根据用户选择,可以将完成数据包的状态定向的转换为ABORT状态或者UR状态;
(2)配置读完成TLP数据信息的转换,根据AXI读数据通道上的读数据与burstsize完成PCIe读完成TLP数据的填充;
(3)配置完成TLP TAG信息的转换,将AXI总线上的RID以及BID内容转换为完成TLP的TAG字段。
第三步,进行PCIe Memory TLP到AMBA协议的转化,其具体步骤如图5B所示。
首先TLP到AMBA协议的转换装置将轮询其对应的第一步中所分发的Memory TLP队列,当其不为空时,将其最先存入队列中的Memory TLP弹出并进入TLP到AMBA协议的转换装置中执行其功能。具体执行流程以TLP到AXI协议的转换为例。
(1)AXI读写方式的转换,将根据TLP中的format字段进行区分,若TLP中format字段为3’b010,代表配置写TLP,则将转换为AXI写操作,若其字段为3’b000,代表配置读TLP,则将其转换为AXI的读操作;
(2)AXI地址的转换,将从Memory TLP中提取地址信息,计算出其与对应BAR及地址的偏移,并将计算结果与地址转换模块对于Memory TLP的源地址信息相加,最终得到转换后的AXI地址信息;
(3)AXI长度的转换,将根据从Memory TLP中提取到的长度信息结合AXI地址通过计算得到AXI长度;
(4)AXI写strobe信号的转换,由于地址不对齐以及Length大小的随机性,AXI写Strobe信号的转换主要集中在首strobe以及尾strobe信号上,其他写通道的strobe信号每个bit也均为1,因此首尾strobe信号的计算可结合DUT对应的Burst size大小、AXI_addr和PCIe_length为Memory TLP中的长度信息计算得到。
(5)AXI写数据的转换,从Memory TLP中得到的若干双字的数据,根据DUT的Burstsize的大小以及4)中得到的strobe信号完成AXI写数据的转换
(6)AXI ID信息的转换,将配置TLP中的TAG字段提取出来作为AXI的ID字段。
在完成PCIe Memory TLP到AXI协议的转换后,验证平台会将其以AXI协议的形式完成对DUT的驱动,等待此AXI传输的结束后,会接着完成AXI响应通道以及读数据通道到PCIe完成TLP的转换,该转化流程与配置TLP的AXI到TLP协议的转化中一致。
第四步,进行PCIe完成TLP到AMBA协议的转化,其具体步骤如图5C所示。
需要说明的是对于完成TLP到AMBA协议的转化的过程与配置TLP、Memory TLP的转换原理和过程相同,再次不做过多赘述。经过以上步骤,最终通过TLP-AMBA转换装置不仅可成功的驱动DUT还可给PCIe EP设备回复完成TLP数据包,实现了更加真实的验证激励的产生和系统场景的构建。
在又一个实施例中,请参照图6所示,本发明还提供了一种支持虚拟化仿真设备的NVMe验证方法200,采用以上所述的验证平台,所述验证方法包括以下步骤:
步骤201,将PCIe EP设备配置为包括一个PCIe物理功能和若干PCIe虚拟功能,其中,PCIe物理功能拥有完全配置或控制PCIe设备资源的能力,PCIe物理功能和若干PCIe虚拟功能相关联,PCIe虚拟功能与PCIe物理功能以及同一PCIe物理功能关联的其他PCIe虚拟功能共享一个或多个物理资源;
步骤202,将多个NVMe控制器与PCIe物理功能和若干PCIe虚拟功能一一对应静态绑定;
步骤203,将PCIe RC设备和PCIe EP设备之间通过PCIe接口相连,利用主机设备构造符合NVMe协议的TLP格式命令数据包,并通过所述PCIe RC设备发送到所述PCIe EP设备;
步骤204,利用协议中转站将所述TLP格式命令数据包转换为AMBA格式命令数据包以驱动NVMe控制器,以及将NVMe控制器返回的AMBA格式完成数据包转换成TLP格式完成数据包返回给所述PCIe EP设备。
上述一种支持虚拟化仿真设备的NVMe验证方法,加入了PCIe设备并且支持多个NVMe控制器的验证,首先通过配置NVMe主机以发送不同种类的命令数据包到PCIe RC设备,接着发送到PCIe EP设备,通过PCIe EP设备自带的回调函数,得到TLP数据包,经过TLP-AMBA转换装置解析数据包格式,通过AMBA协议驱动模块进而驱动NVMe控制器,使得整个NVMe验证通路可最大化的还原真实的SOC系统场景,而且提出的TLP-AMBA协议转换装置还解决了TLP数据包与AMBA数据包无法通信的问题,同时还可通过PCIe SR-IOV来提供虚拟化能力,可实现NVMe控制器个数和功能的灵活配置,从而减少CPU的资源损耗,提高资源利用率。
需要说明的是,关于支持虚拟化仿真设备的NVMe验证方法的具体限定可以参见上文中对支持虚拟化仿真设备的NVMe验证平台的限定,在此不再赘述。
根据本发明的另一方面,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图请参照图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时实现以上所述的支持虚拟化仿真设备的NVMe验证方法,具体来说,所述验证方法包括以下步骤:
将PCIe EP设备配置为包括一个PCIe物理功能和若干PCIe虚拟功能,其中,PCIe物理功能拥有完全配置或控制PCIe设备资源的能力,PCIe物理功能和若干PCIe虚拟功能相关联,PCIe虚拟功能与PCIe物理功能以及同一PCIe物理功能关联的其他PCIe虚拟功能共享一个或多个物理资源;
将多个NVMe控制器与PCIe物理功能和若干PCIe虚拟功能一一对应静态绑定;
将PCIe RC设备和PCIe EP设备之间通过PCIe接口相连,利用主机设备构造符合NVMe协议的TLP格式命令数据包,并通过所述PCIe RC设备发送到所述PCIe EP设备;
利用协议中转站将所述TLP格式命令数据包转换为AMBA格式命令数据包以驱动NVMe控制器,以及将NVMe控制器返回的AMBA格式完成数据包转换成TLP格式完成数据包返回给所述PCIe EP设备。
根据本发明的又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上所述的支持虚拟化仿真设备的NVMe验证方法,具体来说,所述验证方法包括以下步骤:
将PCIe EP设备配置为包括一个PCIe物理功能和若干PCIe虚拟功能,其中,PCIe物理功能拥有完全配置或控制PCIe设备资源的能力,PCIe物理功能和若干PCIe虚拟功能相关联,PCIe虚拟功能与PCIe物理功能以及同一PCIe物理功能关联的其他PCIe虚拟功能共享一个或多个物理资源;
将多个NVMe控制器与PCIe物理功能和若干PCIe虚拟功能一一对应静态绑定;
将PCIe RC设备和PCIe EP设备之间通过PCIe接口相连,利用主机设备构造符合NVMe协议的TLP格式命令数据包,并通过所述PCIe RC设备发送到所述PCIe EP设备;
利用协议中转站将所述TLP格式命令数据包转换为AMBA格式命令数据包以驱动NVMe控制器,以及将NVMe控制器返回的AMBA格式完成数据包转换成TLP格式完成数据包返回给所述PCIe EP设备。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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验证平台,其特征在于,所述验证平台包括主机设备、PCIe RC设备、PCIe EP设备、多个NVMe控制器和协议中转站;
所述PCIe EP设备包括一个PCIe物理功能和若干PCIe虚拟功能,其中,PCIe物理功能拥有完全配置或控制PCIe设备资源的能力,PCIe物理功能和若干PCIe虚拟功能相关联,PCIe虚拟功能与PCIe物理功能以及同一PCIe物理功能关联的其他PCIe虚拟功能共享一个或多个物理资源;
多个NVMe控制器与PCIe物理功能和若干PCIe虚拟功能一一对应静态绑定;
所述PCIe RC设备和所述PCIe EP设备之间通过PCIe接口相连,所述主机设备用于构造符合NVMe协议的TLP格式命令数据包,并通过所述PCIe RC设备发送到所述PCIe EP设备;
所述协议中转站用于将所述TLP格式命令数据包转换为AMBA格式命令数据包以驱动NVMe控制器,以及将NVMe控制器返回的AMBA格式完成数据包转换成TLP格式完成数据包返回给所述PCIe EP设备。
2.根据权利要求1所述的支持虚拟化仿真设备的NVMe验证平台,其特征在于,所述验证平台包括还包括:从应用层到传输层的队列和从传输层到应用层的队列;
所述PCIe EP设备包括al2tl_callback函数和tl2al_callback函数;
所述al2tl_callback函数用于捕获主机设备发送的TLP格式命令数据包并根据类型不同放置到从应用层到传输层不同的队列中;
所述tl2al_callback函数用于从传输层到应用层的队列中获取所述协议中转站返回的TLP格式完成数据包。
3.根据权利要求2所述的支持虚拟化仿真设备的NVMe验证平台,其特征在于,从应用层到传输层的队列包括:完成TLP队列、配置TLP队列和Memory TLP队列;
所述TLP格式命令数据包分发机制如下:
根据PCIe协议中的对于TLP格式命令数据包类型字段的解析,所述完成TLP队列的判断条件为类型字段是否为5’b01010,所述配置TLP队列的判断条件为其类型字段是否为5’b00100或5’b00101,所述Memory TLP队列的判断条件为其类型字段是否为5’b00000。
4.根据权利要求3所述的支持虚拟化仿真设备的NVMe验证平台,其特征在于,所述协议中转站包括TLP-AMBA转换装置和AMBA协议驱动模块;
所述TLP-AMBA转换装置用于执行TLP到AXI协议转换和AXI到TLP协议转换;
AMBA协议驱动模块,用于根据TLP-AMBA转换装置得到的TLP格式命令数据包驱动NVMe控制器,以及向所述TLP-AMBA转换装置返回NVMe控制器的AMBA格式完成数据包。
5.根据权利要求4所述的支持虚拟化仿真设备的NVMe验证平台,其特征在于,所述TLP到AXI协议转换的流程如下:
对所述完成TLP队列、所述配置TLP队列和所述Memory TLP队列进行轮询,当其不为空时,将其最先存入队列中的数据弹出,并依次执行以下操作:AXI读写方式的转换、AXI地址的转换、AXI长度的转换、AXI写数据的转换、AXI写strobe信号的转换、AXI ID信息的转换。
6.根据权利要求4所述的支持虚拟化仿真设备的NVMe验证平台,其特征在于,所述AXI到TLP协议转换的流程如下:
根据AXI相应通道的状态进行相应转换,根据AXI读数据通道上的读数据与burst size进行数据的填充、将AXI总线上的RID以及BID内容转换为TLP的TAG字段以得到TLP格式完成数据包。
7.根据权利要求6所述的支持虚拟化仿真设备的NVMe验证平台,其特征在于,所述TLP-AMBA转换装置还用于将AXI到TLP协议转换的TLP格式完成数据包放入从传输层到应用层的队列中。
8.一种支持虚拟化仿真设备的NVMe验证方法,其特征在于,采用权利要求1-7任意一项所述的验证平台,所述验证方法包括以下步骤:
将PCIe EP设备配置为包括一个PCIe物理功能和若干PCIe虚拟功能,其中,PCIe物理功能拥有完全配置或控制PCIe设备资源的能力,PCIe物理功能和若干PCIe虚拟功能相关联,PCIe虚拟功能与PCIe物理功能以及同一PCIe物理功能关联的其他PCIe虚拟功能共享一个或多个物理资源;
将多个NVMe控制器与PCIe物理功能和若干PCIe虚拟功能一一对应静态绑定;
将PCIe RC设备和PCIe EP设备之间通过PCIe接口相连,利用主机设备构造符合NVMe协议的TLP格式命令数据包,并通过所述PCIe RC设备发送到所述PCIe EP设备;
利用协议中转站将所述TLP格式命令数据包转换为AMBA格式命令数据包以驱动NVMe控制器,以及将NVMe控制器返回的AMBA格式完成数据包转换成TLP格式完成数据包返回给所述PCIe EP设备。
9.一种计算机设备,其特征在于,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器中运行的计算机程序,所述处理器执行所述程序时执行权利要求8所述的验证方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时执行权利要求8所述的验证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310168049.7A CN116225992A (zh) | 2023-02-24 | 2023-02-24 | 一种支持虚拟化仿真设备的NVMe验证平台及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310168049.7A CN116225992A (zh) | 2023-02-24 | 2023-02-24 | 一种支持虚拟化仿真设备的NVMe验证平台及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116225992A true CN116225992A (zh) | 2023-06-06 |
Family
ID=86583980
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310168049.7A Pending CN116225992A (zh) | 2023-02-24 | 2023-02-24 | 一种支持虚拟化仿真设备的NVMe验证平台及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116225992A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117251118A (zh) * | 2023-11-16 | 2023-12-19 | 上海创景信息科技有限公司 | 支持虚拟NVMe仿真与集成方法及系统 |
CN117539820A (zh) * | 2024-01-10 | 2024-02-09 | 芯动微电子科技(武汉)有限公司 | 一种PCIe Switch与SoC的互联系统及方法 |
-
2023
- 2023-02-24 CN CN202310168049.7A patent/CN116225992A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117251118A (zh) * | 2023-11-16 | 2023-12-19 | 上海创景信息科技有限公司 | 支持虚拟NVMe仿真与集成方法及系统 |
CN117251118B (zh) * | 2023-11-16 | 2024-02-13 | 上海创景信息科技有限公司 | 支持虚拟NVMe仿真与集成方法及系统 |
CN117539820A (zh) * | 2024-01-10 | 2024-02-09 | 芯动微电子科技(武汉)有限公司 | 一种PCIe Switch与SoC的互联系统及方法 |
CN117539820B (zh) * | 2024-01-10 | 2024-05-03 | 芯动微电子科技(武汉)有限公司 | 一种PCIe Switch与SoC的互联系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107203484B (zh) | 一种基于FPGA的PCIe与SRIO总线桥接系统 | |
CN106951388B (zh) | 一种基于PCIe的DMA数据传输方法及系统 | |
EP3276481B1 (en) | Nvme networked storage implementation method, terminal, server, and system | |
CN116225992A (zh) | 一种支持虚拟化仿真设备的NVMe验证平台及方法 | |
CN109558344B (zh) | 一种适用于网络传输的dma传输方法及dma控制器 | |
CN112416840B (zh) | 一种计算资源的远程映射方法、装置、设备及存储介质 | |
CN110109626B (zh) | 一种基于FPGA的NVMe SSD命令处理方法 | |
CN103559156B (zh) | 一种fpga与计算机之间的通信系统 | |
CN112286746B (zh) | 针对axi从设备接口的通用验证平台及方法 | |
CN102841871B (zh) | 基于高速串行总线的DMA结构的pipeline读写方法 | |
CN111931442B (zh) | Fpga内嵌flash控制器及电子装置 | |
CN116069711B (zh) | 直接内存访问控制器、异构设备、内存访问方法及介质 | |
CN109086168A (zh) | 一种利用硬件备份固态硬盘写速度的方法及其系统 | |
CN106662895A (zh) | 计算机设备和计算机设备数据读写的方法 | |
CN116414767B (zh) | 一种对基于axi协议乱序响应的重排序方法及系统 | |
WO2022032990A1 (zh) | 一种命令信息传输方法、系统、装置及可读存储介质 | |
CN101963947A (zh) | 通用序列总线传输转译器及大量传输方法 | |
CN104239252A (zh) | 数据存储系统的数据传输方法、装置及系统 | |
CN117806892B (zh) | 存储芯片模型测试方法、装置、通信设备及存储介质 | |
CN116594951B (zh) | 一种基于fpga的数据传输系统及方法 | |
CN115904259B (zh) | 非易失性存储器标准NVMe指令的处理方法及相关装置 | |
CN112732176B (zh) | 基于fpga的ssd访问方法及装置、存储系统及存储介质 | |
CN107317773B (zh) | 一种片上网络通信接口及通信方法 | |
CN102855208B (zh) | 一种实现文件交互的系统及方法 | |
CN111371799A (zh) | Mctp控制器收发数据的控制方法、装置及设备 |
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 |