一种NVMe原型仿真验证结构的制作方法

文档序号:17079586发布日期:2019-03-09 00:05阅读:283来源:国知局
一种NVMe原型仿真验证结构的制作方法

本发明涉及仿真验证技术,尤其涉及一种nvme的仿真验证结构。



背景技术:

固态硬盘(ssd)作为一种电子硬盘相对于机械硬盘具有速度快、无噪音、重量轻等优点。现在越来越多电脑开始使用固态硬盘。原来的固态硬盘采用的ahci和sata协议,随着ssd的进步,ahci和sata成为了速度提高的瓶颈。为了提高速度出现了nvme和pcie协议。pcie是一种高速总线协议,pcie3.0速度可达到8gbps。nvme协议相对于ahci协议,性能有数倍的提升,大幅度降低延迟,支持64000个队列,每个队列的深度为64000。因为nvme的巨大优势,很多的机构进行nvme设备的开发。在设计开发nvme设备过程中,现有验证仿真平台需要两个处理器,一个处理器作为主机处理器,另外一个处理器作为设备端的处理器,每个处理器都有自己的软件,因此仿真的时候非常耗费时间。



技术实现要素:

本发明的目的在于提供一种nvme原型仿真验证结构,用于解决上述现有技术的问题。

本发明一种nvme原型仿真验证结构,其中,包括:模拟主机内存(1)、解码模块(2)、提取数据和打印接收包信息模块(10)、打印发送包信息模块(11)、接收数组(14)、发送数组(15)、组包模块(3)以及模拟ram(6);模拟主机内存(1)用于模拟主机内存;提取数据和打印接收包信息模块(10)用于从数据包里把数据提取出来,执行译码,并把接收到的包信息打印到文件中;解码模块(2)的用于分析接收包和发送包的包头信息;组包模块(3)用于根据包的格式,把要发送的数据或命令组包;模拟ram(6)用于模拟随机存储器;接收数组(14)用于把接收到的包存到接收数组里,发送数组(15)用于把要发送的数组存到发送数组里;nvme控制器(5)是要被验证的模块;打印发送包信息模块(11),用于把发送包的信息打印到文件中。

根据本发明的nvme原型仿真验证结构的一实施例,其中,接收写命令后,经过组包模块(3)组包后,发送给了nvme控制器(5),nvme控制器(5)收到写命令后发出一条读请求,经过解码模块(2)解码后,到模拟主机内存(1)里取要写的数据,数据经过组包模块(3)组包后,经nvme控制器(5)后,发送给模拟ram(6)。

根据本发明的nvme原型仿真验证结构的一实施例,其中,接收读命令后,经过组包模块(3)组包后,发送给nvme控制器(5);nvme控制器(5)收到读命令后发出一条写请求,从模拟ram(6)取出数据,经过解码模块(2)解码后,把数据放到模拟主机内存(1)里。

根据本发明的nvme原型仿真验证结构的一实施例,其中,还包括:dsport模块,用于进行主机端pcie的物理层和数据链路层的通信。

根据本发明的nvme原型仿真验证结构的一实施例,其中,还包括:用户test接口(7),用于提供给用户使用的接口,接收需要验证的nvme命令。

根据本发明的nvme原型仿真验证结构的一实施例,其中,接收写命令后,经过组包模块(3)以及dsport模块(4),发送给nvme控制器(5),nvme控制器(5)收到写命令后发出一条读请求,经过dsport模块(4)、接收数组(14)、解码模块(2)以及提取数据和打印接收包信息模块(10),到模拟主机内存(1)里取要写的数据;数据经过组包模块(3)到dsport模块(4)以及nvme控制器(5),发送给模拟ram(6)。

根据本发明的nvme原型仿真验证结构的一实施例,其中,接收到读命令后,经过组包模块(3)以及dsport模块(4)后,发送给nvme控制器(5),nvme控制器(5)收到读命令后发出一条写请求,从模拟ram(6)取出数据,经过dsport模块(4)、接收数组(14)、解码模块(2)以及提取数据和打印接收包信息模块(10),到模拟主机内存(1)里。

根据本发明的nvme原型仿真验证结构的一实施例,其中,把要发送的数据或命令组装成tlp包。

根据本发明的nvme原型仿真验证结构的一实施例,其中,还包括:需要验证指令包含了系统初始化的指令、bar初始化的指令以及nvme写门铃指令。

根据本发明的nvme原型仿真验证结构的一实施例,其中,模拟主机内存(1)存储有io指令队列,以完成指令队列和管理指令队列。

本发明的nvme原型仿真验证结构,能够克服现有仿真验证平台的速度慢,结构复杂的缺点,能够实现快速、方便的仿真。

附图说明

图1所示为本发明nvme原型仿真验证结构的模块图;

图2所示为本发明nvme原型仿真验证结构的一实施例的模块图。

具体实施方式

为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。

图1所示为本发明nvme原型仿真验证结构的模块图,图2所示为本发明nvme原型仿真验证结构的一实施例的模块图,如图1以及图2所示,本发明nvme原型仿真验证结构包括:模拟主机内存(1),提取数据和打印接收包信息模块(10),打印发送包信息模块(11),解码模块(2),接收数组(14),发送数组(15),组包模块(3),dsport模块(4),模拟ram(6),用户test接口(7)。

如图1以及图2所示,本发明的nvme仿真验证结构,每个部件都使用硬件语言设计,不需要处理器和软件,包括了模拟主机内存(1)、解码模块(2)、组包模块(3)、dsport模块(4)、模拟ram(6)、用户test接口(7)。模拟主机内存(1)和解码模块(2)是单向连接,模拟主机内存(1)和组包模块(3)是单向连接,用户test接口(7)和组包模块(3)是单向连接,解码模块(2)和dsport模块(4)是单向连接,组包模块(3)和dsport模块(4)是单向连接,dsport模块(4)和被测nvme控制器(5)是双向连接,被测nvme控制器(5)和模拟ram(6)是双向连接。模拟主机内存(1)和提取数据和打印接收包信息模块(10)单向连接,提取数据和打印接收包信息模块(10)和解码模块(2)是单向连接,接收数组(14)和解码模块(2)是单向连接,打印发包信息(11)和解码模块(2)是单向连接,发送数组(15)和解码模块(2)是单向连接,发送数组(15)和组包(3)单向连接。

如图1以及图2所示,模拟主机内存(1)作用是模拟主机内存,里面有io指令队列,完成指令队列和管理指令队列,使用硬件描述语言的数组来实现。解码模块(2)的功能是把接收到的数据包进行解包,译码,提取接收数据,根据提取数据执行响应操作的执行模块。组包模块(3)根据包的格式,把要发送的数据或命令组装成tlp包。dsport模块(4)实现的主机端pcie的物理层和数据链路层的功能。模拟ram(6)是模拟一个随机存储器,用数组实现。用户test接口(7)是提供给用户使用的接口,可以在接口中输入各种需要验证的nvme命令。

nvme写数据的工作流程:用户test接口(7)发一个写命令,经过组包模块(3)、dsport模块(4)、发送给了nvme控制器(5)。nvme控制器(5)收到写命令后发出一条读请求,经过dsport模块(4)、解码模块(2)、到模拟主机内存(1)里取要写的数据。数据经过组包模块(3)到dsport模块(4)、nvme控制器(5),发送给模拟ram(6)。

nvme读数据的工作流程:用户test接口(7)发一个读命令,经过组包模块(3)、dsport模块(4)、发送给了nvme控制器(5)。nvme控制器(5)收到读命令后发出一条写请求,从模拟ram(6)取出数据,经过dsport模块(4)、解码模块(2)、把数据放到模拟主机内存(1)里。

nvme写数据的工作流程:用户test接口(7)发一个写命令,经过组包模块(3)、dsport模块(4)、发送给了nvme控制器(5)。nvme控制器(5)收到写命令后发出一条读请求,经过dsport模块(4)、接收数组(14)、解码模块(2)、提取数据和打印接收包信息模块(10),到模拟主机内存(1)里取要写的数据。数据经过组包模块(3)到dsport模块(4)、nvme控制器(5),发送给模拟ram(6)。

nvme读数据的工作流程:用户test接口(7)发一个读命令,经过组包模块(3)、dsport模块(4)、发送给了nvme控制器(5)。nvme控制器(5)收到读命令后发出一条写请求,从模拟ram(6)取出数据,经过dsport模块(4)、接收数组(14)、解码模块(2)、提取数据和打印接收包信息模块(10),到模拟主机内存(1)里。

如图1以及图2所示,模拟主机内存(1)使用数组模拟主机内存。提取数据和打印接收包信息模块(10)从包里把数据提取出来,译码执行。同时把接收到的包信息打印到一个文件里。打印发送包信息模块(11)把发送包的信息打印到一个文件里。解码模块(2)分析接收包的头信息。发送解码模块(2)分析发送包的头信息。接收数组(14)把接收到的包存到接收数组里。发送数组(15)把要发送的数组存到发送数组里。组包模块(3)把要发送的数据按照包的格式组装成包。dsport模块(4)是主机端pcie的物理层和数据链路层功能。用户test接口(7)是用户给出需要验证指令的模块,在这个实施例中,包含了系统初始化的指令,bar初始化的指令,nvme写门铃指令。被测nvme控制器(5)是要被验证的模块。

本发明公开了一种针对nvme原型仿真验证结构(8),主要包括:模拟主机内存(1)、解码模块(2)、组包模块(3)、dsport模块(4)、模拟ram(6)、用户test接口(7)。模拟主机内存(1)和解码模块(2)是单向连接,仿真主机内存(1)和组包模块(3)是单向连接,用户接口(7)和组包模块(3)是单向连接,解码模块(2)和dsport模块(4)是单向连接,组包模块(3)和dsport模块(4)是单向连接,dsport模块(4)和被测nvme控制器(5)是双向连接,被测nvme控制器(5)和模拟ram(6)是双向连接。用户可通过(7)加入不同的nvme命令,命令组包后发送给被测的nvme控制器(5),然后完成对模拟ram(6)进行读写。本发明使用硬件语言设计,不使用处理器和软件,可以快速的对各种nvme指令进行仿真验证。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1