一种访问NVMe存储设备的方法和NVMe存储设备的制作方法

文档序号:6551515阅读:159来源:国知局
一种访问NVMe存储设备的方法和NVMe存储设备的制作方法
【专利摘要】本发明实施例提供了一种访问NVMe存储设备的方法和NVMe存储设备,解决了NVMe存储设备的供配电、散热和空间等问题。该方法包括:控制模块接收CPU发送的PCIe协议格式的访问请求消息,将所述PCIe协议格式的访问请求消息转换为第二协议格式的访问请求消息,将所述第二协议格式的访问请求消息发送至存储模块;所述存储模块将所述第二协议格式的访问请求消息转换为第三协议格式的访问请求消息,从所述第三协议格式的访问请求消息中获取所述操作指令和所述CPU的访问地址信息,根据所述操作指令和所述CPU的访问地址信息对所述存储模块中的存储单元进行访问。该方法适用于存储【技术领域】。
【专利说明】一种访问NVMe存储设备的方法和NVMe存储设备

【技术领域】
[0001] 本发明涉及存储【技术领域】,尤其涉及一种访问NVMe存储设备的方法和NVMe存储 设备。

【背景技术】
[0002] 在目前的网络应用场景中,高速外围组件互联(英文:Peripheral Component Interconnect express,简称:PCIe)是最新的总线和接口标准,属于高速串行点对点双通 道高带宽传输,它代表着下一代输入/输出I/O接口标准。
[0003] PCIe固态存储设备(如固态硬盘(英文:Solid State Disk,简称:SSD))指的是 与中央处理器(英文:Central Processing Unit,简称:CPU)的PCIe接口相连接的固态存 储设备,通常作为一级缓存和二级缓存来使用,与传统硬盘混插构成分级存储,实现数据在 固态存储设备和传统硬盘之间的自动迁移,将不常访问的数据自动移到存储层次较低的层 次,即传统硬盘,从而释放出较高层次的存储空间,即固态存储设备的存储空间,给更频繁 访问的数据,从而加快了系统的存储性能。
[0004] 快速非易失性存储(英文:Non_Volatile Memory Express,简称:NVMe)标准是一 个针对使用PCIe SSD的企业和普通客户端系统开发的存储控制器接口标准,NVMe架构下 的存储器具有低能耗,高性能的特点。在目前的存储器架构中,NVMe的技术实现如下:
[0005] 在硬件上,将NVMe存储设备直接连接到中央处理器(英文:Center Process Unit,简称:CPU)的PCIe接口上,而不通过串行高级技术附件(英文:Serial Advanced Technology Attachment,简称:SATA)接口和串行连接小型计算机系统接口(英文:Serial Attached Small Computer System Interface,简称:SAS),从而减少了主机总线适配器 (英文:Host Bus Adapter,简称:HBA)上的协议开销。
[0006] 在软件上,NVMe存储设备的驱动可以直接连接到操作系统(英文:0perating System,简称:0S)的块设备层,而不使用0S的访问请求队列,入队/出队调度和小型计算 机系统接口(英语:Small Computer System Interface;简写:SCSI)层,与传统的SAS和 SSD的方式相比,减少了 50%的延时。
[0007] NVMe存储设备包括控制器和存储单元,部署在CPU的近端,对供配电、散热和空间 等领域有较高的要求。并且,由于CPU的PCIe接口数量的限制,使得挂在CPU上的NVMe存 储设备的数量有限,无法扩展。


【发明内容】

[0008] 本发明的实施例提供一种NVMe存储设备的方法和NVMe存储设备,该NVMe存储设 备包括控制模块和存储模块,其中,所述控制模块部署在靠近CPU的本地,包含存储单元的 存储模块部署在CPU的远端,所述控制模块和所述存储模块通过能够实现远距离传输的通 信协议,如以太网协议进行数据的传输,这样,将原来作为整体的NVMe存储设备一分为二 的部署在以太网的两侧,解决了现有技术中NVMe存储设备的控制器和存储单元作为一个 整体部署在CPU的近端所带来的所述NVMe存储设备的供配电、散热和空间等问题。
[0009] 为达到上述目的,本发明的实施例采用如下技术方案:
[0010] 第一方面,本发明实施例提供了一种NVMe存储设备,该设备包括控制模块和存储 模块,其中,所述控制模块与中央处理器CPU通过高速外围组件互联PCIe总线相连;
[0011] 所述控制模块,用于接收所述CPU发送的PCIe协议格式的访问请求消息,所述 PCIe协议格式的访问请求消息中包含操作指令和所述CPU的访问地址信息,将所述PCIe协 议格式的访问请求消息转换为第二协议格式的访问请求消息,所述第二协议格式的访问请 求消息中包含所述操作指令和所述CPU的访问地址信息,将所述第二协议格式的访问请求 消息发送至所述存储模块;
[0012] 所述存储模块,用于接收所述第二协议格式的访问请求消息,并将所述第二协议 格式的访问请求消息转换为第三协议格式的访问请求消息,其中,所述第三协议格式的访 问请求消息中包含所述操作指令和所述CPU的访问地址信息,从所述第三协议格式的访问 请求消息中获取所述操作指令和所述CPU的访问地址信息,根据所述操作指令和所述CPU 的访问地址信息对所述存储模块中的存储单元进行访问。
[0013] 在第一种可能的实施方式中,结合第一方面,所所述第二协议格式是以太网协议 或光线通道协议。
[0014] 在第二种可能的实施方式中,结合第一方面或第一种可能的实施方式,该设备还 包括交换模块,所述交换模块与至少一个所述存储模块相连接,所述PCIe协议格式的访问 请求消息中还包含所述CPU所要访问的NVMe存储模块的设备标识信息;
[0015] 所述控制模块,还用于根据所述PCIe协议格式的访问请求消息中的所述CPU所要 访问的NVMe存储模块的设备标识信息,确定所述CPU所要访问的NVMe存储模块的设备地 址信息,并将所述(PU所要访问的NVMe存储模块的设备地址信息承载于所述第二协议格式 的访问请求消息中;
[0016] 所述交换模块,用于接收所述控制模块发送的所述第二协议格式的访问请求消 息,根据所述第二协议格式的访问请求消息中的所述CPU所要访问的NVMe存储模块的设备 地址信息,将所述第二协议格式的访问请求消息转发至所述CPU所要访问的存储模块。
[0017] 在第三种可能的实施方式中,结合第二种可能的实施方式,所述控制模块具体用 于:
[0018] 根据所述PCIe协议格式的访问请求消息中的所述CPU所要访问的NVMe存储模块 的设备标识信息,以及地址映射关系表,确定所述CPU所要访问的NVMe存储模块的设备地 址信息,其中,所述地址映射关系表用于保存至少一个所述存储模块的设备标识与设备地 址的对应关系。
[0019] 第二方面,本发明实施例提供了一种访问NVMe存储设备的方法,该方法应用于一 种NVMe存储设备,该设备包括控制模块和存储模块,其中,所述控制模块与中央处理器CPU 通过高速外围组件互联PCIe总线相连,该方法包括:
[0020] 所述控制模块接收所述CPU发送的PCIe协议格式的访问请求消息,所述PCIe协 议格式的访问请求消息中包含操作指令和所述CPU的访问地址信息;
[0021] 所述控制模块将所述PCIe协议格式的访问请求消息转换为第二协议格式的访问 请求消息,所述第二协议格式的访问请求消息中包含所述操作指令和所述CPU的访问地址 信息;
[0022] 所述控制模块将所述第二协议格式的访问请求消息发送至所述存储模块;
[0023] 所述存储模块接收所述第二协议格式的访问请求消息,并将所述第二协议格式的 访问请求消息转换为第三协议格式的访问请求消息,其中,所述第三协议格式的访问请求 消息中包含所述操作指令和所述CPU的访问地址信息;
[0024] 所述存储模块从所述第三协议格式的访问请求消息中获取所述操作指令和所述 CPU的访问地址信息,根据所述操作指令和所述CPU的访问地址信息对存储模块中的存储 单元进行访问。
[0025] 在第一种可能的实施方式中,结合第二方面,所述第二协议格式是以太网协议或 光线通道协议。
[0026] 在第二种可能的实施方式中,结合第二方面或第一种可能的实施方式,所述NVMe 存储设备还包括交换模块,所述交换模块与至少一个所述存储模块相连接,所述PCIe协议 格式的访问请求消息中还包含所述CPU所要访问的NVMe存储模块的设备标识信息,在所述 控制模块接收所述CPU发送的所述PCIe协议格式的访问请求消息之后,该方法还包括:
[0027] 所述控制模块根据所述PCIe协议格式的访问请求消息中的所述CPU所要访问的 NVMe存储模块的设备标识信息,确定所述CPU所要访问的NVMe存储模块的设备地址信息, 并将所述CPU所要访问的NVMe存储模块的设备地址信息承载于所述第二协议格式的访问 请求消息中;
[0028] 所述控制模块将所述第二协议格式的访问请求消息发送至所述交换模块;
[0029] 所述交换模块接收所述控制模块发送的所述第二协议格式的访问请求消息,根据 所述第二协议格式的访问请求消息中的所述CPU所要访问的NVMe存储模块的设备地址信 息,将所述第二协议格式的访问请求消息转发至所述(PU所要访问的存储模块。
[0030] 在第三种可能的实施方式中,结合第二种可能的实施方式,所述控制模块根据所 述PCIe协议格式的访问请求消息中的所述CPU所要访问的NVMe存储模块的设备标识信 息,确定所述CPU所要访问的NVMe存储模块的设备地址信息具体包括 :
[0031] 所述控制模块根据所述PCIe协议格式的访问请求消息中的所述CPU所要访问的 NVMe存储模块的设备标识信息,以及地址映射关系表,确定所述CPU所要访问的NVMe存储 模块的设备地址信息,其中,所述地址映射关系表用于保存至少一个所述存储模块的设备 标识与设备地址的对应关系。
[0032] 本发明实施例提供了一种访问NVMe存储设备的方法和NVMe存储设备,该设备 包括控制模块和存储模块,其中,所述控制模块与中央处理器CPU通过高速外围组件互联 PCIe总线相连。所述控制模块接收所述CPU发送的PCIe协议格式的访问请求消息,所述 PCIe协议格式的访问请求消息中包含操作指令和所述CPU的访问地址信息,将所述PCIe协 议格式的访问请求消息转换为第二协议格式的访问请求消息,所述第二协议格式的访问请 求消息中包含所述操作指令和所述CPU的访问地址信息,将所述第二协议格式的访问请求 消息发送至所述存储模块;所述存储模块接收所述第二协议格式的访问请求消息,并将所 述第二协议格式的访问请求消息转换为第三协议格式的访问请求消息,其中,所述第三协 议格式的访问请求消息中包含所述操作指令和所述CPU的访问地址信息,从所述第三协议 格式的访问请求消息中获取所述操作指令和所述CPU的访问地址信息,根据所述操作指令 和所述CPU的访问地址信息对所述存储模块中的存储单元进行访问。在该NVMe存储设备 中,控制模块与中央处理器CPU通过PCIe总线相连接,控制模块与存储模块之间通过能够 实现远距离传输的第二协议,如以太网协议实现数据的传输,这样,将原来作为整体的NVMe 存储设备一分为二的部署在以太网的两侧,即控制模块部署在靠近CPU的本地,存储模块 部署在CPU的远端,从而解决了现有技术中NVMe存储设备的控制器和存储单元作为一个整 体部署在CPU的近端所带来的所述NVMe存储设备的供配电、散热和空间等问题。

【专利附图】

【附图说明】
[0033] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。
[0034] 图1为现有技术提供的一种NVMe存储系统不意图;
[0035] 图2为本发明实施例提供的一种NVMe存储设备示意图;
[0036] 图3为本发明实施例提供的另一种NVMe存储设备不意图;
[0037] 图4为一种访问NVMe存储设备的方法流程图;
[0038] 图5为另一种访问NVMe存储设备的方法流程图。

【具体实施方式】
[0039] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0040] 在现有的存储技术中,NVMe存储设备的部署方法如图1所示,包括:中央处理器 CPU和NVMe存储设备。所述NVMe存储设备包括控制器和存储单元,所述控制器和存储单元 作为一个整体,通过所述CPU的PCIe接口挂接在所述CPU上。
[0041] 由于所述NVMe存储设备的控制器和存储单元都对供配电、散热和空间等领域有 一定的要求,将所述控制器和所述存储单元作为一个整体部署在所述CPU的近端,使得所 述NVMe存储设备对供配电、散热和空间等领域有更高的要求。
[0042] 针对现有技术中NVMe存储设备中的控制器与存储单元作为一个整体部署在中央 处理器CPU的近端所带来的所述NVMe存储设备的供配电、散热和空间等问题,本发明实施 例提供了一种新的NVMe存储设备,结合图2,该设备包括控制模块201和存储模块202,其 中,所述控制模块201与中央处理器CPU通过高速外围组件互联PCIe总线相连,所述控制 模块和所述存储模块通过支持远距离传输的第二协议格式进行数据的传输;
[0043] 所述控制模块201,用于接收所述CPU发送的PCIe协议格式的访问请求消息,所述 PCIe协议格式的访问请求消息中包含操作指令和所述CPU的访问地址信息,将所述PCIe协 议格式的访问请求消息转换为第二协议格式的访问请求消息,所述第二协议格式的访问请 求消息中包含所述操作指令和所述CPU的访问地址信息,将所述第二协议格式的访问请求 消息发送至所述存储模块。
[0044] 为实现将所述存储模块部署在中央处理器CPU的远端的目的,所述控制模块与所 述存储模块通过第二协议进行数据的传输,其中,所述第二协议为能够实现远距离传输,且 具有良好的扩展特性的网络协议。具体的,所述第二协议可以是以太网协议或光纤通道协 议。
[0045] 当中央处理器CPU需要访问所述NVMe存储设备的存储模块时,需要向所述控制模 块发送一个PCIe协议格式的访问请求消息,所述PCIe协议格式的访问请求消息中携带有 NVMe格式的数据包,所述NVMe格式的数据包中包含有所述CPU的操作指令信息,如读操作 指令或写操作指令,即所述CPU访问所述NVMe存储设备包括读取所述NVMe存储设备中的 数据或者向所述NVMe存储设备存储数据。所述数据包中还包括所述CPU所要访问的NVMe 存储模块的地址信息,即所述CPU的访问地址信息。
[0046] 所述控制模块接收到所述PCIe协议格式的访问请求消息后,由于所述控制模块 与所述存储模块通过第二协议格式进行数据的传输,具体的,所述控制模块和所述存储模 块相连接的接口为支持第二协议格式的接口,因此,所述控制模块需要将所述PCIe协议格 式的访问请求消息转换为第二协议格式的访问请求消息,其中,所述第二协议格式的访问 请求消息中携带有所述NVMe格式的数据包,所述NVMe格式的数据包中包含有所述操作指 令信息,如读操作指令和写操作指令,还包括所述CPU所要访问的NVMe存储模块的地址信 息,即所述CPU的访问地址信息。
[0047] 具体的,所述第一处理模块可以是:专用集成电路(英文Application Specific Integrated Circuit,简称:ASIC)或现场可编程门阵列(英文:Field - Programmable Gate Array,简称:FPGA),也可以是其他处理单元,本发明实施例对此不做限定。
[0048] 所述存储模块202,用于接收所述第二协议格式的访问请求消息,并将所述第二 协议格式的访问请求消息转换为第三协议格式的访问请求消息,其中,所述第三协议格式 的访问请求消息中包含所述操作指令和所述CPU的访问地址信息,从所述第三协议格式的 访问请求消息中获取所述操作指令和所述CPU的访问地址信息,根据所述操作指令和所述 CPU的访问地址信息对所述存储模块中的存储单元进行访问。
[0049] 当存储模块接收到所述第二协议格式的访问请求消息后,需要将所述第二协议格 式的访问请求消息转换为第三协议格式的访问请求消息,具体的,所述第三协议格式,是设 备商自定义的协议格式,可以为PCIe协议格式,也可以为所述第二协议格式,还可以其他 协议格式,本发明实施例对此不做限定。因此,所述存储模块接收到所述第二协议格式的访 问请求消息后,需要对第二协议格式的访问请求消息进行解析,具体的,解析过程为:
[0050] 所述存储模块将所述第二协议格式的访问请求消息转换为第三协议格式的访问 请求消息,从所述第三协议格式的访问请求消息中获取所述操作指令和所述CPU的访问 地址信息,根据所述操作指令和所述CPU的访问地址信息对存储模块中的存储单元进行访 问,实现读操作或写操作。
[0051] 具体的,所述存储模块中对接收到的第二协议格式的访问请求消息进行协议转换 的部分可以为专用集成电路(英文〖Application Specific Integrated Circuit,简称: ASIC)或现场可编程门阵列(英文:Field -Programmable Gate Array,简称:FPGA),也可 以是其他处理单元,本发明实施例对此不做限定。
[0052] 本发明实施例提供了一种访问NVMe存储设备的方法和NVMe存储设备,该设备 包括控制模块和存储模块,其中,所述控制模块与中央处理器CPU通过高速外围组件互联 PCIe总线相连。所述控制模块接收所述CPU发送的PCIe协议格式的访问请求消息,所述 PCIe协议格式的访问请求消息中包含操作指令和所述CPU的访问地址信息,将所述PCIe协 议格式的访问请求消息转换为第二协议格式的访问请求消息,所述第二协议格式的访问请 求消息中包含所述操作指令和所述CPU的访问地址信息,将所述第二协议格式的访问请求 消息发送至所述存储模块;所述存储模块接收所述第二协议格式的访问请求消息,并将所 述第二协议格式的访问请求消息转换为第三协议格式的访问请求消息,其中,所述第三协 议格式的访问请求消息中包含所述操作指令和所述CPU的访问地址信息,从所述第三协议 格式的访问请求消息中获取所述操作指令和所述CPU的访问地址信息,根据所述操作指令 和所述CPU的访问地址信息对所述存储模块中的存储单元进行访问。在该NVMe存储设备 中,控制模块与中央处理器CPU通过PCIe总线相连接,控制模块与存储模块之间通过能够 实现远距离传输的第二协议,如以太网协议实现数据的传输,这样,将原来作为整体的NVMe 存储设备一分为二的部署在以太网的两侧,即控制模块部署在靠近CPU的本地,存储模块 部署在CPU的远端,从而解决了现有技术中NVMe存储设备的控制器和存储部分作为一个整 体部署在CPU的近端所带来的所述NVMe存储设备的供配电、散热和空间等问题。
[0053] 进一步的,为解决与CPU相连的NVMe存储设备的个数受CPU的PCIe接口数量的 限制的问题,本发明实施例还提供了一种NVMe存储设备,结合图3,该存储设备还包括交换 模块203 ;所述交换模块203与至少一个所述存储模块202相连接,所述PCIe协议格式的 访问请求消息中还包括所述CPU所要访问的NVMe存储模块的设备标识信息;
[0054] 所述控制模块201,还用于根据所述PCIe协议格式的访问请求消息中的所述CPU 所要访问的NVMe存储模块的设备标识信息,确定所述CPU所要访问的NVMe存储模块的设 备地址信息,并将所述CPU所要访问的NVMe存储模块的设备地址信息承载于所述第二协议 格式的访问请求消息中;
[0055] 所述交换模块203,用于接收所述控制模块发送的所述第二协议格式的访问请求 消息,根据所述第二协议格式的访问请求消息中的所述(PU所要访问的NVMe存储模块的设 备地址信息,将所述第二协议格式的访问请求消息转发至所述CPU所要访问的存储模块。
[0056] 具体的,中央处理器CPU上的PCIe接口有限,举例来说,所述CPU上有三个PCIe 接口,则所述CPU最多只能访问3个NVMe存储设备,为解决这一问题,可以在所述控制模块 和存储模块之间增加如下交换模块,所述交换模块支持所述控制模块和所述存储模块之间 进行通信的第二协议格式的访问请求消息的转发,所述交换模块上可以设置有多个接口, 使得多个存储模块可以同时连接在所述交换模块上。
[0057] 当所述控制模块和所述存储模块之间没有所述交换模块时,所述CPU通过向一个 控制模块发送访问请求消息,只能访问该控制模块所对应的一个存储模块,因此,所述CPU 发送的PCIe协议格式的访问请求消息中只携带有所述操作指令信息以及所述CPU的访问 地址信息。
[0058] 但是,当所述控制模块和所述存储模块之间有所述交换模块时,所述CPU通过向 一个控制模块发送访问请求消息时,由于该控制模块通过所述交换模块对应着至少一个存 储模块,所述(PU向所述控制模块发送的PCIe协议格式的访问请求消息中还需要包含所述 CPU所要访问的存储模块的设备标识信息,如设备号信息。
[0059] 当所述控制模块接收到所述PCIe协议格式的访问请求消息后,需要将所述存储 模块的设备标识信息转换为第二协议格式的所述存储模块的设备地址信息,举例来说,所 述第二协议格式为以太网协议,则所述存储模块的地址信息为所述存储模块的MAC地址信 息,所述存储模块的设备地址信息承载于所述第二协议格式的第二协议格式的访问请求消 息中。
[0060] 具体的,所述控制模块可以根据所述PCIe协议格式的访问请求消息中的所述CPU 所要访问的所述NVMe存储模块的设备标识信息,以及地址映射关系表,确定所述CPU所要 访问的NVMe存储模块的设备地址信息,其中,所述地址映射关系表用于保存至少一个所述 存储模块的设备标识与设备地址的对应关系。
[0061] 当然,所述控制模块还可以通过其他方式将所述存储模块的设备标识信息转换为 设备地址信息,例如,通过某种预设的算法,将所述CPU所要访问的存储模块的设备标识信 息转换为所述CPU所要访问的存储模块的设备地址信息,具体的,本发明实施例对此不做 限定。
[0062] 所述控制模块将携带有所述CPU所要访问的存储模块设备地址信息的第二协议 格式的访问请求消息发送至所述交换模块。
[0063] 所述交换模块通过所述第二协议格式的访问请求消息中的所述CPU所要访问的 存储模块的设备地址信息,将所述第二协议格式的访问请求消息转发至所述存储模块。 [0064] 关于所述存储模块的详细技术特征可参见上述实施例,本发明实施例对此不再赘 述。
[0065] 需要说明的是,为了增强所述中央处理器CPU访问NVMe设备来存储或读取数据的 可靠性,在该NVMe存储设备还对如下两个方面进行了用于增强可靠性的设置:
[0066] 第一方面,在所述控制模块和存储模块中设置重传缓存。
[0067] 具体的,当所述中央处理器CPU访问所述NVMe存储设备来读取或存储数据时,由 于所述交换模块的不稳定性,可能会发生读取或存储数据失败的现象。为了避免上述现象, 在所述控制模块和存储模块中设置重传缓存。所述重传缓存,用于当所述中央处理器CPU 读取或存储数据失败时,向所述NVMe存储设备重新发送PCIe协议格式的访问请求消息,所 述控制模块在其重传缓存中将所述PCIe协议格式的访问请求消息转换为第二协议格式的 访问请求消息,并将所述第二协议格式的访问请求消息发送至交换模块,所述存储模块在 其重传缓存中将接收到的所述交换模块发送的第二协议格式的访问请求消息在其重传缓 存中转换为第三协议格式的访问请求消息,并通过所述第三协议格式的访问请求消息中的 操作指令信息和所述CPU的访问地址信息,访问所述NVMe存储设备中的存储单元。
[0068] 第二方面,在所述交换模块中实现流控机制。
[0069] 具体的,当所述交换模块的接口发生阻塞时,所述交换模块向所述中央处理器CPU 和NVMe存储设备发送提醒消息,所述提醒消息包括所述中央处理器CPU和所述NVMe存储 设备停止向所述交换模块发送数据。
[0070] 本发明实施例提供了一种NVMe存储设备,该设备包括控制模块,交换模块和至少 一个存储模块,其中,由于所述控制模块和所述交换模块,所述交换模块和所述存储模块之 间通过能够实现远距离传输的网络协议进行数据的传输,将原来作为整体的NVMe存储设 备一分为二的部署在以太网的两侧,即控制模块部署在靠近CPU的本地,存储模块部署在 CPU的远端,从而解决了现有技术中NVMe存储设备的控制器和存储部分作为一个整体部署 在CPU的近端所带来的所述NVMe存储设备的供配电、散热和空间等问题。并且,所述交换 模块上可以设置多个接口与多个存储设备相连接,从而解决了 CPU访问的NVMe存储设备的 数量受到CPU的PCIe接口数量限制的问题。
[0071] 本发明实施例提供了一种访问NVMe存储设备的方法,该方法应用于一种NVMe存 储设备,该设备包括控制模块和存储模块,其中,所述控制模块与中央处理器CPU通过高速 外围组件互联PCIe总线相连,结合图4,该方法包括:
[0072] 401、所述控制模块接收所述CPU发送的PCI e协议格式的访问请求消息,所述PCI e 协议格式的访问请求消息中包含操作指令和所述CPU的访问地址信息。
[0073] 402、所述控制模块将所述PCIe协议格式的访问请求消息转换为第二协议格式的 访问请求消息,所述第二协议格式的访问请求消息中包含所述操作指令和所述CPU的访问 地址信息。
[0074] 403、所述控制模块将所述第二协议格式的访问请求消息发送至所述存储模块。
[0075] 404、所述存储模块接收所述第二协议格式的访问请求消息,并将所述第二协议格 式的访问请求消息转换为第三协议格式的访问请求消息,其中,所述第三协议格式的访问 请求消息中包含所述操作指令和所述CPU的访问地址信息。
[0076] 405、所述存储模块从所述第三协议格式的访问请求消息中获取所述操作指令和 所述CPU的访问地址信息,根据所述操作指令和所述CPU的访问地址信息对存储模块中的 存储单元进行访问。
[0077] 具体的,该方法实施例的详细技术特征可参见上述NVMe存储设备的实施例,本发 明实施例对此不再赘述。
[0078] 本发明实施例提供了一种访问NVMe存储设备的方法,在该方法中,控制模块与中 央处理器CPU通过PCIe总线相连接,控制模块与存储模块之间通过能够实现远距离传输的 第二协议,如以太网协议实现数据的传输,将原来作为整体的NVMe存储设备一分为二的部 署在以太网的两侧,即控制模块部署在靠近CPU的本地,存储模块部署在CPU的远端,从而 解决了现有技术中NVMe存储设备的控制器和存储部分作为一个整体部署在CPU的近端所 带来的所述NVMe存储设备的供配电、散热和空间等问题。
[0079] 进一步的,为解决与CPU相连的NVMe存储设备的个数受CPU的PCIe接口数量的限 制的问题,本发明实施例还提供了一种访问NVMe存储设备的方法,结合图5,该方法包括:
[0080] 501、所述控制模块接收所述CPU发送的PCI e协议格式的访问请求消息,所述PCI e 协议格式的访问请求消息中包含操作指令、所述CPU所要访问的NVMe存储设备的设备标识 信息和所述CPU的访问地址信息。
[0081] 502、所述控制模块将所述PCIe协议格式的访问请求消息转换为第二协议格式的 访问请求消息,其中,所述控制模块所述第二协议格式的访问请求消息中包含所述操作指 令、所述CPU所要访问的NVMe存储设备的设备地址信息和所述CPU的访问地址信息。
[0082] 具体的,所述控制模块根据所述PCIe协议格式的访问请求消息中的所述CPU所 要访问的NVMe存储模块的设备标识信息,以及地址映射关系表,确定所述CPU所要访问的 NVMe存储模块的设备地址信息,其中,所述地址映射关系表用于保存至少一个所述存储模 块的设备标识与设备地址的对应关系。
[0083] 503、所述控制模块将所述第二协议格式的访问请求消息发送至所述交换模块。
[0084] 504、所述交换模块接收所述控制模块发送的所述第二协议格式的访问请求消息, 根据所述第二协议格式的访问请求消息中的所述CPU所要访问的NVMe存储模块的设备地 址信息,将所述第二协议格式的访问请求消息转发至所述CPU所要访问的存储模块。
[0085] 505、所述存储模块接收所述第二协议格式的访问请求消息,并将所述第二协议格 式的访问请求消息转换为第三协议格式的访问请求消息,其中,所述第三协议格式的访问 请求消息中包含所述操作指令和所述CPU的访问地址信息。
[0086] 506、所述存储模块从所述第三协议格式的访问请求消息中获取所述操作指令和 所述CPU的访问地址信息,根据所述操作指令和所述CPU的访问地址信息对存储模块中的 存储单元进行访问。
[0087] 具体的,该方法的实施例的详细实施过程可参见上述NVMe存储设备的实施例,本 发明实施例对此不再赘述。
[0088] 本发明实施例提供了一种访问NVMe存储设备的方法,该方法应用于一种NVMe存 储设备,该设备包括控制模块,交换模块和至少一个存储模块,其中,由于所述控制模块和 所述交换模块,所述交换模块和所述存储模块之间通过能够实现远距离传输的网络协议, 如以太网协议,进行数据的传输,将原来作为整体的NVMe存储设备一分为二的部署在以太 网的两侧,即控制模块部署在靠近CPU的本地,存储模块部署在CPU的远端,从而解决了现 有技术中NVMe存储设备的控制器和存储部分作为一个整体部署在CPU的近端所带来的所 述NVMe存储设备的供配电、散热和空间等问题。并且,所述交换模块上可以设置多个接口 与多个存储设备相连接,从而解决了 CPU访问的NVMe存储设备的数量受到CPU的PCIe接 口数量限制的问题。
[0089] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过 程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序 在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者 光盘等各种可以存储程序代码的介质。
[0090] 以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何 熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵 盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
【权利要求】
1. 一种NVMe存储设备,其特征在于,该设备包括控制模块和存储模块,其中,所述控制 模块与中央处理器CPU通过高速外围组件互联PCIe总线相连; 所述控制模块,用于接收所述CPU发送的PCIe协议格式的访问请求消息,所述PCIe协 议格式的访问请求消息中包含操作指令和所述CPU的访问地址信息,将所述PCIe协议格式 的访问请求消息转换为第二协议格式的访问请求消息,所述第二协议格式的访问请求消息 中包含所述操作指令和所述CPU的访问地址信息,将所述第二协议格式的访问请求消息发 送至所述存储模块; 所述存储模块,用于接收所述第二协议格式的访问请求消息,并将所述第二协议格式 的访问请求消息转换为第三协议格式的访问请求消息,其中,所述第三协议格式的访问请 求消息中包含所述操作指令和所述CPU的访问地址信息,从所述第三协议格式的访问请求 消息中获取所述操作指令和所述CPU的访问地址信息,根据所述操作指令和所述CPU的访 问地址信息对所述存储模块中的存储单元进行访问。
2. 根据权利要求1所述的NVMe存储设备,其特征在于,所述第二协议格式是以太网协 议或光线通道协议。
3. 根据权利要求1或2所述的NVMe存储设备,其特征在于,该设备还包括交换模块,所 述交换模块与至少一个所述存储模块相连接,所述PCIe协议格式的访问请求消息中还包 含所述CPU所要访问的NVMe存储模块的设备标识信息; 所述控制模块,还用于根据所述PCIe协议格式的访问请求消息中的所述CPU所要访问 的NVMe存储模块的设备标识信息,确定所述CPU所要访问的NVMe存储模块的设备地址信 息,并将所述CPU所要访问的NVMe存储模块的设备地址信息承载于所述第二协议格式的访 问请求消息中; 所述交换模块,用于接收所述控制模块发送的所述第二协议格式的访问请求消息,根 据所述第二协议格式的访问请求消息中的所述CPU所要访问的NVMe存储模块的设备地址 信息,将所述第二协议格式的访问请求消息转发至所述(PU所要访问的存储模块。
4. 根据权利要求3所述的NVMe存储设备,其特征在于,所述控制模块具体用于: 根据所述PCIe协议格式的访问请求消息中的所述CPU所要访问的NVMe存储模块的设 备标识信息,以及地址映射关系表,确定所述CPU所要访问的NVMe存储模块的设备地址信 息,其中,所述地址映射关系表用于保存至少一个所述存储模块的设备标识与设备地址的 对应关系。
5. -种访问NVMe存储设备的方法,其特征在于,该方法应用于一种NVMe存储设备,该 设备包括控制模块和存储模块,其中,所述控制模块与中央处理器CPU通过高速外围组件 互联PCIe总线相连,该方法包括: 所述控制模块接收所述CPU发送的PCIe协议格式的访问请求消息,所述PCIe协议格 式的访问请求消息中包含操作指令和所述CPU的访问地址信息; 所述控制模块将所述PCIe协议格式的访问请求消息转换为第二协议格式的访问请 求消息,所述第二协议格式的访问请求消息中包含所述操作指令和所述CPU的访问地址信 息; 所述控制模块将所述第二协议格式的访问请求消息发送至所述存储模块; 所述存储模块接收所述第二协议格式的访问请求消息,并将所述第二协议格式的访问 请求消息转换为第三协议格式的访问请求消息,其中,所述第三协议格式的访问请求消息 中包含所述操作指令和所述CPU的访问地址信息; 所述存储模块从所述第三协议格式的访问请求消息中获取所述操作指令和所述CPU 的访问地址信息,根据所述操作指令和所述CPU的访问地址信息对存储模块中的存储单元 进行访问。
6. 根据权利要求5所述的方法,其特征在于,所述第二协议格式是以太网协议或光线 通道协议。
7. 根据权利要求5或6所述的方法,其特征在于,所述NVMe存储设备还包括交换模块, 所述交换模块与至少一个所述存储模块相连接,所述PCIe协议格式的访问请求消息中还 包含所述CPU所要访问的NVMe存储模块的设备标识信息,在所述控制模块接收所述CPU发 送的所述PCIe协议格式的访问请求消息之后,该方法还包括: 所述控制模块根据所述PCIe协议格式的访问请求消息中的所述CPU所要访问的NVMe 存储模块的设备标识信息,确定所述CPU所要访问的NVMe存储模块的设备地址信息,并将 所述CPU所要访问的NVMe存储模块的设备地址信息承载于所述第二协议格式的访问请求 消息中; 所述控制模块将所述第二协议格式的访问请求消息发送至所述交换模块; 所述交换模块接收所述控制模块发送的所述第二协议格式的访问请求消息,根据所述 第二协议格式的访问请求消息中的所述(PU所要访问的NVMe存储模块的设备地址信息,将 所述第二协议格式的访问请求消息转发至所述(PU所要访问的存储模块。
8. 根据权利要求7所述的方法,其特征在于,所述控制模块根据所述PCIe协议格式的 访问请求消息中的所述CPU所要访问的NVMe存储模块的设备标识信息,确定所述CPU所要 访问的NVMe存储模块的设备地址信息具体包括 : 所述控制模块根据所述PCIe协议格式的访问请求消息中的所述CPU所要访问的NVMe 存储模块的设备标识信息,以及地址映射关系表,确定所述CPU所要访问的NVMe存储模块 的设备地址信息,其中,所述地址映射关系表用于保存至少一个所述存储模块的设备标识 与设备地址的对应关系。
【文档编号】G06F13/42GK104111907SQ201410305089
【公开日】2014年10月22日 申请日期:2014年6月27日 优先权日:2014年6月27日
【发明者】郭海涛, 常胜, 余洲 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1