1.本技术涉及通信技术领域,特别是涉及一种多通道的数据处理方法、一种多通道的数据处理装置、相应的一种电子设备和相应的一种计算机可读存储介质。
背景技术:2.在传统的存储产品中,主流的存储产品,例如nvme设备(指的是nvme标准的ssd固态硬盘)的介质排布及控制器的数据流设计是基于flash(flash eeprom memory,即闪存,存储芯片的一种,通过特定程序修改里面的数据)的特性进行定义的。用于存储的产品还可以包括内存产品,主流的内存产品,例如dimm(dual inline memory module,双列直插内存模块)的介质排布及控制器的数据流设计是基于dram(dynamic random access memory,动态随机存取存储器)的特性进行定义的。
3.而scm(storage class memory,存储类内存)作为存储和内存之间的存储部件,scm产品的存储介质为pcm(phase-change memory,相变存储器),pcm具有同flash和dram不同的特性,scm作为全新的存储部件,并不能复用上述主流产品的介质排布及控制器的数据流设计。
技术实现要素:4.鉴于上述问题,提出了本技术实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种多通道的数据处理方法、一种多通道的数据处理装置、相应的一种电子设备和相应的一种计算机可读存储介质。
5.本技术实施例公开了一种多通道的数据处理方法,应用于服务器设备,涉及到存储部件,所述存储部件基于多通道的存储阵列进行排布,所述方法包括:
6.接收针对数据处理的命令包,对所述命令包进行拆分得到若干个命令;所述命令包基于针对数据处理的命令生成;
7.确定各个命令的通道信息;
8.确定在所述多通道的存储阵列中与所述通道信息相应的目标内存介质,通过所述目标内存介质对命令进行处理。
9.可选地,所述存储部件具有相应的接口协议,所述对所述命令包进行拆分得到若干个命令,包括:
10.获取所述接口协议规定的访问数据格式信息;所述访问数据格式信息包括读写数据长度;
11.按照所述读写数据长度对所述命令包进行拆分,得到若干个命令。
12.可选地,所述确定各个命令的通道信息,包括:
13.根据所述多通道的存储阵列确定各个命令的通道信息,和/或,从各个命令中获取所携带的通道信息;
14.其中,所拆分得到的命令基于存储阵列中的控制器进行定义,所述根据所述多通
道的存储阵列确定各个命令的通道信息,包括:
15.获取所述多通道的存储阵列的通道信息,所述通道信息与存储阵列内的内存介质对应,所述存储阵列内的内存介质具有相应的物理地址;
16.获取所拆分得到的命令的物理地址;
17.采用所拆分得到的命令的物理地址与内存介质的通道信息进行映射,确定各个命令所对应的通道信息。
18.可选地,所述通过所述目标内存介质对命令进行处理,包括:
19.采用所述通道信息获取在所述存储阵列中的目标内存介质;
20.向所述目标内存介质传输各个命令,通过所述目标内存介质对命令进行处理。
21.可选地,所述多通道的存储阵列中存在用于管理与内存介质相应通道的仲裁调度器,所述向所述目标内存介质传输各个命令,通过所述目标内存介质对命令进行处理,包括:
22.基于所述通道信息向与目标内存介质相应通道的仲裁调度器传输所拆分得到的命令;
23.通过所述仲裁调度器基于所述通道信息将命令下发至与目标内存介质相应的通道命令缓存中,实现所述目标内存介质对命令的处理操作。
24.可选地,所述基于所述通道信息向与目标内存介质相应通道的仲裁调度器传输所拆分得到的命令,包括:
25.按照所述命令的拆分顺序和优先级将所述命令传输至控制器的内部缓存中;
26.从控制器的内部缓存中,基于所述通道信息对所述命令搬移至与目标内存介质相应通道的仲裁调度器。
27.可选地,所述命令包括命令内容和/或数据内容,所述仲裁调度器包括数据仲裁器和命令仲裁器;所述基于所述通道信息对所述命令搬移至与目标内存介质相应通道的仲裁调度器,包括:
28.在所述命令的命令类型为写命令时,按照所述写命令的通道信息和所述写命令的优先级,将所述写命令的数据内容搬移至与目标内存介质相应通道的数据仲裁器,并将所述写命令同步传输至与目标内存介质相应通道的命令仲裁器;
29.和/或,在所述命令的命令类型为读命令时,按照所述读命令的通道信息和所述读命令的优先级,将所述读命令同步传输至与目标内存介质相应通道的命令仲裁器。
30.可选地,所述仲裁调度器包括通道仲裁器,所述通道仲裁器调用数据仲裁器和命令仲裁器;所述通过所述仲裁调度器基于所述通道信息将命令下发至与目标内存介质相应的通道命令缓存中,包括:
31.在所述命令的命令类型为写命令时,通过所述通道仲裁器基于所述通道信息获取与目标内存介质相应的通道写数据缓存,将所述数据仲裁器内的数据内容发送至所述通道写数据缓存;
32.和/或,在所述命令的命令类型为读命令时,通过所述通道仲裁器基于所述通道信息获取与目标内存介质相应的通道读数据缓存,以及通过目标内存介质的内存控制器响应所述命令仲裁器内的命令内容,将所述命令内容所请求读取的数据缓存在所述通道读数据缓存中。
33.本技术实施例还公开了一种多通道的数据处理装置,应用于服务器设备,涉及到存储部件,所述存储部件基于多通道的存储阵列进行排布,所述装置包括:
34.命令拆分模块,用于接收针对数据处理的命令包,对所述命令包进行拆分得到若干个命令;所述命令包基于针对数据处理的命令生成;
35.通道信息确定模块,用于确定各个命令的通道信息;
36.命令处理模块,用于确定在所述多通道的存储阵列中与所述通道信息相应的目标内存介质,通过所述目标内存介质对命令进行处理。
37.可选地,所述存储部件具有相应的接口协议,所述命令拆分模块包括:
38.访问数据格式信息获取子模块,用于获取所述接口协议规定的访问数据格式信息;所述访问数据格式信息包括读写数据长度;
39.命令拆分子模块,用于按照所述读写数据长度对所述命令包进行拆分,得到若干个命令。
40.可选地,所述通道信息确定模块包括:
41.通道信息获取子模块,用于根据所述多通道的存储阵列确定各个命令的通道信息,和/或,从各个命令中获取所携带的通道信息;
42.其中,所拆分得到的命令基于存储阵列中的控制器进行定义,所述通道信息获取子模块包括:
43.通道信息获取单元,用于获取所述多通道的存储阵列的通道信息,所述通道信息与存储阵列内的内存介质对应,所述存储阵列内的内存介质具有相应的物理地址;
44.物理地址获取单元,用于获取所拆分得到的命令的物理地址;
45.地址映射单元,用于采用所拆分得到的命令的物理地址与内存介质的通道信息进行映射,确定各个命令所对应的通道信息。
46.可选地,所述命令处理模块包括:
47.目标内存介质确定子模块,用于采用所述通道信息获取在所述存储阵列中的目标内存介质;
48.命令处理子模块,用于向所述目标内存介质传输各个命令,通过所述目标内存介质对命令进行处理。
49.可选地,所述存储阵列中存在用于管理与内存介质相应通道的仲裁调度器,所述命令处理子模块包括:
50.命令传输单元,用于基于所述通道信息向与目标内存介质相应通道的仲裁调度器传输所拆分得到的命令;
51.命令下发单元,用于通过所述仲裁调度器基于所述通道信息将命令下发至与目标内存介质相应的通道命令缓存中,实现所述目标内存介质对命令的处理操作。
52.可选地,所述命令传输单元包括:
53.内部缓存子单元,用于按照所述命令的拆分顺序和优先级将所述命令传输至控制器的内部缓存中;
54.命令搬移子单元,用于从控制器的内部缓存中,基于所述通道信息对所述命令搬移至与目标内存介质相应通道的仲裁调度器。
55.可选地,所述仲裁调度器包括通道仲裁器,所述通道仲裁器调用数据仲裁器和命
gen5本质上只是pci express的一个新标准,在x16配置上实现高达32gt/s的传输速度和高达128gb/s的带宽。
73.ssd:solid state disk或solid state drive,固态硬盘,又称固态驱动器,是用固态电子存储芯片阵列制成的硬盘。
74.pcm:phase-change memory,相变存储器,是利用特殊材料在晶态和非晶态之间相互转化时所表现出来的导电性差异实现数据存储的,同时其还具有读写速度快、数据访问响应时间短、寿命长、存储数据稳定等特点。
75.scm:storage class memory,存储类内存,是一种物理计算机内存,作为存储和内存之间的存储部件,具有成本低、性能高等的原生特性。
76.dram:dynamic random access memory,动态随机存取存储器。
77.hdd:hard disk drive,硬盘存储器,为基本的电脑存储器。
78.tape:磁带,主要是以磁带为存储介质,由磁带机及其控制器组成的存储设备,是计算机的一种辅助存储器。
79.dma:direct memory access,直接存储器访问,将数据从一个地址空间复制到另外一个地址空间。
80.ecc:error correcting code,错误纠正码,是一种编码方式,可在一定长度上自行发现和纠正传输过程中发生的错误。
81.array:阵列,在本技术实施例中指的是某种存储介质的排布方式。
82.pcm存储控制器:相变存储控制器,其可通过一系列软硬件功能对存储阵列进行读写地址及数据的管理。
83.phy:physical,可称之为端口物理层。
84.host:主机。
85.protocol:协议。
86.fec:forward error correction,前向纠错,是一种通过在网络传输中增加数据包的冗余信息,使得接收端能够在网络发生丢包后利用这些冗余信息直接恢复出丢失的数据包的方法。
87.带宽:在本技术实施例中指的是读写数据的吞吐率。
88.延时:在本技术实施例中指的是存储设备的读写访问延时。
89.channel:相对于pcm通道,指的是不同的通道具有不同的通信总线。
90.地址映射:host地址和物理地址的对应逻辑及关系。
91.sdp:single die package,单die封装,每个介质颗粒里封装一个die。
92.ddp:double die package,双die封装,每个介质颗粒里封装两个die。
93.die:指的是芯片未封装前的晶粒,一个die可相当于独立的功能芯片,其将作为一个单位被封装得到芯片,即一个芯片内可能封装若干个die。
94.bank:简单地来说,就是一个由行列组成的矩阵。
95.row:在由行列组成的阵列中的一行或者一列。
96.page:为内存的读写单元,一个page包括若干个byte。
97.scm作为存储和内存之间的存储部件,与传统主流的存储产品和内存产品不同,scm产品具有存储类内存的存储特点,其存储特点的不同主要基于性能决定。存储部件的性
能可以由存储部件的存取速度决定,而其存储部件的存取速度可用其存取时间进行表示,如图1所示,dram的存取时间可以在10ns以内,scm的存读时间可以在10ns至1us之间,nand ssd的存取时间可以在10us至100us之间,hdd/tape的存取时间可以在1ms至10ms之间。其中scm的性能高于nand ssd与hdd/tape,但成本却低于dram,具有成本低、性能高的原生特性。而scm产品的存储介质为pcm,pcm具有同flash和dram不同的特性,其作为全新的存储介质,在成本/性能及可靠性等参数介于flash和dram之间,在系统应用中可作为高性能非易失性和低成本ddr的替代,需要兼顾高带宽、低延时、低成本等特性。
98.scm作为全新的存储部件,通常从存储部件的底层逻辑而言,其内存类控制器的阵列排布主要是基于通道、容量等多个维度进行综合考量设计,但在scm产品使用了新型的pcm颗粒的情况下,pcm介质作为一种非易失的类内存介质,在阵列设计的过程中需要考虑的变量与其他类内存控制器不同,其不仅需要兼顾传统内存的通道、容量等维度,还需要考虑非易失存储的die、带宽、地址映射等一系列的综合问题,基于此,pcm的阵列排布及控制器的数据流设计并不能直接复用现有的其他类内存的阵列设计。
99.在本技术实施例中,可针对pcm的特性和scm的部件需求,提出一套pcm介质的阵列拓扑及分通道方案,在满足部件需求的同时实现对pcm资源的充分高效利用和调度,且针对pcm的阵列方案和scm的部件需求,提出针对中后端分通道调度及管理的命令数据传输机制,在确保满足部件性能的同时,有效地对数据与命令进行调度,实现对pcm的阵列排布以及数据流设计。
100.具体的,可通过分析pcm介质的接口频率、总线位宽、读写命令特性、延时等输入数据,并综合考虑系统对于scm产品的容量、带宽、延时等要求,设计出多个pcm通道并行,且针对相同通道内die之间的命令及数据管理方案,以达到scm部件的容量、带宽及延时要求,实现基于pcm特性和scm部件需求提出针对pcm介质的阵列拓扑及分通道方案,以及针对中后端分通道调度及管理的命令数据传输机制。
101.为了实现多通道、多die管理的pcm阵列及相关数据控制的方案,参照图2,示出了本技术实施例提供的pcm介质的排布框架示意图,排布框架或者阵列是基于存储介质而言的,其多个存储介质排布所得到的存储阵列,可将此阵列定义为存储部件。在针对pcm介质的排布中,可以包括前端控制模块210、中端控制模块211以及后端控制模块213。其中,前端控制模块210主要负责在对命令包进行接收后对命令包进行拆分,中端控制模块211主要负责对所拆分得到的命令以及命令包里的相关数据进行缓存,以及对所拆分得到的命令与相关数据进行搬移和编解码处理,后端控制模块213主要负责多通道对命令与相关数据进行管理,以及对相关命令进行执行。
102.在实际应用中,如图3所示,前端控制模块210可以包括协议解析模块310,协议解析模块310主要负责对所接收的命令包根据协议进行拆分,此协议为满足访问控制器内部的协议,即使得所拆分的得到的命令能够访问控制器内部。
103.中端控制模块211可以包括中端控制器311、控制器数据搬移加速引擎312和ecc编解码引擎313,中端控制器311主要负责对所拆分得到的命令与命令中的相关数据进行缓存,例如当命令为写命令时,可将写命令中所携带的数据内容进行缓存,其内部缓存可以采用多种类型,例如sram或者是控制器外接ddr,本技术实施例不加以限制;控制器数据搬移加速引擎312主要负责将控制器内部缓存中的命令与数据进行多个pcm通道的管理与调度,
ecc编解码引擎313主要负责针对pcm的数据稳定性特性,对数据进行纠错码编码与解码,保证存储数据的可靠性。
104.后端控制模块212可以包括仲裁调度器314、pcm接口控制器315以及pcm介质阵列316。仲裁调度器314主要负责在对多通道的命令与相关数据进行管理时,对命令与相关数据进行不同通道的下发与调度,pcm接口控制器315主要负责对相关通道的pcm机制进行命令下发和数据的读取,pcm介质阵列316主要是针对pcm的多通道的存储阵列的实现。
105.针对pcm的特性和scm的部件需求,提出针对pcm介质的阵列拓扑及分通道方案。在具体实现的过程中,需要考虑pcm介质的如下输入约束:(1)pcm的容量配置、(2)pcm接口频率、(3)pcm读写访问速率和响应时间、(4)pcm的封装形式以及(5)系统基于pcie gen5下的scm带宽延时需求,以确定在实现scm的部件需求时,所需满足的对于这些输入约束的要求,基于所需满足的输入约束进行pcm介质的阵列拓扑及分通道设计。
106.其中,(1)pcm的容量配置,其可用于决定在满足scm部件需求下的pcm die数量,主要是基于供应商所提供的单个die容量,在满足scm产品的容量需求下确定所需的pcm die的个数,从而决定如何设计通道和die的架构。(2)pcm接口频率,其可用于决定在满足scm产品的带宽需求下的通道数量,主要是基于scm对于整体带宽的要求,结合单个pcm接口频率下的带宽规格,确定整体的通道数量。(3)pcm读写访问速率和响应时间,其可从scm部件延时的角度,基于对控制器内部的延时规格进行考虑,确定控制器的读写流程设计。(4)pcm的封装形式,主要影响的是单板设计方面,其需要考虑的是固定通道下的单板设计的封装数量,且每个封装所要实现的容量与相应的通道布局,以及还需在scm部件的pcb具有足够的空间布局的情况下对封装形式进行考虑。(5)系统基于pcie gen5下的scm带宽延时需求,其主要是从pcie gen5的接口需求的角度,结合单个pcm接口频率下的带宽规格确定整体的通道数量,以及基于对控制器内部的延时规格进行考虑,确定控制器的读写流程设计,即在scm产品满足pcie gen5接口的情况下,设计pcm阵列和控制器读写流程。
107.示例性地,假设scm产品要求支持pcie gen5的接口协议,且需要满足的读写带宽为32gb/s,此时可通过全硬件方案使命令和数据的处理带宽达到要求。例如主流的scm部件要求支持256gb-1tb的容量,假设此时的scm产品的容量需求为256gb,基于scm产品的容量需求所设计的pcm阵列需要满足256gb的容量配置,若供应商所提供的单个pcm die容量为16gb,此时在需要满足256gb的容量配置下,所需的pcm die的个数为16个,当在进行pcm的封装时,若使用sdp的形式进行封装,此时针对pcm阵列所配置的物理通道应当为16个物理通道,但为了满足scm部件的pcb的空间布局的合理性,通常采用ddp的形式进行封装,那么此时针对pcm阵列所配置的物理通道为8个物理通道,各个物理通道中有一个ddp,每个通道有一个封装颗粒,每个颗粒里面有2个die,此ddp的容量为32gb,以满足256gb的容量配置需求。
108.在scm产品满足pcie gen5接口的情况下,假设需要满足的读写带宽为32gb/s,在按照上述ddp形式进行封装的情况下,各个通道的带宽为1.5gb/s(单个die的写带宽为750mb/s),各个通道的pcm接口控制器需要满足4gb/s的带宽以确保系统的带宽要求,那么各个通道需要基于独立的pcm接口控制器进行管理。且其中以读写命令为64bits的数据颗粒度为例,控制器内部缓存的配置可以为使用2套32bits系统,即两个控制器数据搬移加速引擎和两个ecc编解码引擎,分别管理4个pcm通道的数据和命令调度,即每4个pcm通道使用
一套32bits的pcm接口控制器,保证整体系统达到写入带宽接近为32gb/s。需要说明的是,本示例以64bits数据颗粒度为例的读写命令,在具体实现过程中也可将数据颗粒度定义为所需的任意大小以适配pcm产品的要求,数据颗粒度可以定义为在控制器内部传输、访问、管理的读写数据块大小,其对颗粒度的定义过程需要综合考虑pcm介质的物理结构、数据访问单位、ecc设计方案等维度实现,对此,本技术实施例不加限制。
109.在本技术实施例中,可基于所提出的pcm阵列设计方法,根据不同的参数设计不同的通道数、pcm的封装方式、中后端命令数据调度方式等,本技术实施例针对的是存储类内存介质,从硬件方案上只能兼容存储类内存介质的产品,无法兼容flash及dram的产品特性,以pcm介质特性(包括部件带宽、接口频率、封装配置、容量等)为例进行pcm的阵列与通道设计,梳理出适用于pcm的系统方案。
110.需要说明的是,虽然本技术实施例并不能针对非存储类内存介质进行阵列设计,即便传统flash和dram具有与pcm介质不同的特性,但也可基于本技术实施例所总结得到的基于存储器阵列的设计方案,基于不同存储介质所具有的类似的参数(例如部件带宽、接口频率、封装配置、容量等),在本技术实施例所提出的阵列设计方法上,结合部件需求并优化调整对应参数,设计出能够基于传统flash和dram这两种存储阵列的拓扑方案定义和中后端数据命令交互策略的方案。
111.参照图4,示出了本技术的一种多通道的数据处理方法实施例的步骤流程图,应用于服务器设备,其服务器设备中的存储部件涉及到存储类内存介质,例如pcm介质,pcm介质基于如图2和图3所示的多通道的存储阵列进行排布,多个存储介质排布的阵列可定义为存储部件,具体可以包括如下步骤:
112.步骤401,接收针对数据处理的命令包,对命令包进行拆分得到若干个命令;
113.对于多通道、多die管理的pcm阵列及相关数据控制的方案,存储类内存介质救援多通道的存储阵列进行排布,存储阵列由大量的存储单元组成,通常存储单元排列成n行
×
m列矩阵形式,而多通道的存储阵列指的是将存储阵列进行多通道模式化,即可表现为将存储阵列进行多通道划分。在基于此存储类内存介质对数据进行处理的过程中,为了使得所接收到的不同命令可以满足对控制器内部的访问,此时前端控制模块可对所接收到的针对数据处理的命令进行拆分处理,具体可根据内部访问协议对基于针对数据处理的命令生成的命令进行拆分得到若干个命令,以便控制器可对拆分得到的命令进行响应处理。
114.具体的,存储部件具有相应的接口协议,此接口协议主要是针对控制器内部处理进行规定的,在对命令包进行拆分处理时,主要可获取接口协议所规定的访问数据格式信息,访问数据格式信息可以指的是读写数据长度,此时可根据协议要求将命令包拆分成符合要求的格式,即按照接口协议所规定的读写数据长度对所接收到的命令包进行拆分,得到若干个命令。
115.需要说明的是,所拆分得到的命令可以为控制器内部自定义的命令,而并不是scm协议段的命令。
116.步骤402,确定各个命令的通道信息;
117.在基于多通道管理的数据控制中,为了实现对与多通道的存储阵列进行排布的介质的命令传输,可通过中端控制模块确定各个命令的通道信息,以便基于所确定的通道信息向相应的内存介质进行命令传输。
118.其中,存储部件中的存储类内存介质基于多通道的存储阵列进行排布,此时可根据多通道的存储阵列确定各个命令的通道信息,在另一种情况下,当命令自带通道信息时,还可以从各个命令中直接获取所携带的通道信息。
119.在实际应用中,存储部件中的存储类内存介质具有相应的通道信息,例如通道号可以与各个内存介质相对应,且多通道的存储阵列内的各个内存介质具有相应的物理地址,即各个内存介质的通道信息与各个内存介质的物理地址可以存在映射关系。所拆分得到的命令基于存储阵列中的控制器进行定义,此时控制器可定义所拆分得到的命令相应的物理地址,此时在获取到各个命令的物理地址后,可将所拆分得到的命令的物理地址与内存介质的通道信息进行映射,确定各个命令所对应的通道信息。
120.步骤403,确定在多通道的存储阵列中与通道信息相应的目标内存介质,通过目标内存介质对命令进行处理。
121.各个命令的通道信息基于各个命令的物理地址与内存介质的通道信息进行映射得到,此时后端控制模块可基于通道信息直接确定在多通道的存储阵列中的目标内存介质,以便向目标内存介质传输命令,通过目标内存介质对命令进行处理,基于对各个通道的内存介质的管理,有效地对数据与命令进行调度。
122.所针对数据处理的命令可以包括读命令和/或写命令,此时目标内存介质对命令所进行的处理,可以表现为目标内存介质对读命令进行响应执行对数据的读取操作,和/或,对写命令进行响应执行对数据的写入操作。
123.在本技术实施例中,涉及到存储部件,此存储部件可基于多通道的存储阵列进行排布,在服务器设备采用此多通道的存储阵列进行数据处理时,可对命令包进行拆分,以及基于通道信息将对应的命令通过相应的通道进行下发,基于对各个通道的内存介质的管理,对相应目标内存介质进行命令下发和命令处理。对存储部件进行阵列拓扑及多通道布局,以及提出分通道调度与管理命令的数据传输机制,在确保满足部件性能的同时,有效地对数据与命令进行调度,实现对存储部件中存储介质的阵列排布以及数据流设计。
124.参照图5,示出了本技术的另一种多通道的数据处理方法实施例的步骤流程图,应用于服务器设备,其服务器设备中的存储部件涉及到存储类内存介质,例如pcm介质,pcm介质基于如图2和图3所示的多通道的存储阵列进行排布,多个存储介质排布的阵列可定义为存储部件,具体可以包括如下步骤:
125.步骤501,通过协议解析模块对命令包根据控制器内部协议拆分得到若干个命令;
126.对于多通道、多die管理的pcm阵列及相关数据控制的方案,存储类内存介质救援多通道的存储阵列进行排布,在基于此存储类内存介质对数据进行处理的过程中,为了使得所接收到的不同命令可以满足对控制器内部的访问,此时前端控制模块可对所接收到的针对数据处理的命令进行拆分处理,具体可根据内部访问协议对基于针对数据处理的命令生成的命令进行拆分得到若干个命令,以便控制器可对拆分得到的命令进行响应处理。
127.具体的,存储部件具有相应的接口协议,此接口协议主要是针对控制器内部处理进行规定的,在对命令包进行拆分处理时,主要可获取接口协议所规定的访问数据格式信息,访问数据格式信息可以指的是控制器内部访问的颗粒,即读写数据长度,此时可根据协议要求将命令包拆分成符合要求的格式,即按照接口协议所规定的读写数据长度对所接收到的命令包进行拆分,得到若干个命令。
128.在实际应用中,当host发起对于scm设备的读写命令时,host会根据协议要求,例如pcie和scm接口协议的要求,将读写命令拆分成符合要求的格式。示例性地,基于不同的scm设备可能存在不同的需求,通常可能存在64bytes和256bytes这两种模式。在接收到针对数据处理的命令包,例如读写命令后,在控制器内部处理的数据长度是固定的,假设为64bytes,那么此时控制器前端,及前端控制模块首先需要将所接收到的数据长度,例如256bytes拆分成4个64bytes的命令,实现对命令或者数据的拆分过程。
129.步骤502,基于各个命令相应的通道信息向与目标内存介质相应通道的仲裁调度器传输所拆分得到的命令;
130.在基于多通道管理的数据控制中,为了实现对基于多通道的存储阵列进行排布的存储介质的命令传输,可通过中端控制模块确定各个命令的通道信息,以便基于所确定的通道信息向相应的内存介质进行命令传输,在多通道中对相应内存介质进行命令传输的操作,主要可基于相应通道的仲裁调度器实现。
131.多通道的存储阵列中存在用于管理一组内存介质相应通道的仲裁调度器,仲裁调度器可控制在控制器的内部缓存中的命令与数据,需将所处理的命令传输到控制器的内部缓存中。
132.当将不同的命令根据协议拆分得到控制器内部访问的颗粒后,前端控制模块将会按照命令的拆分顺序和优先级将此命令传输至控制器的内部缓存中。其中,所拆分得到的若干个命令中,可以包含命令内容和/或数据内容,数据内容可以是host对scm进行读写的数据,此时在按照命令的拆分顺序和优先级对命令进行缓存时,在一方面,可按照命令拆分顺序和优先级将命令内容经由数据通路(data path)传输,在另一方面,可按照优先级将数据内容传输到dram或者控制内部缓存buffer中。其中,在控制器内部缓存中,dram主要可作为写入数据的缓存,以用于存储较大内存的写数据,当前端控制模块的dmaengine发起对host写数据的搬移时,dram要求达到64gb/s。
133.在实际应用中,在按照拆分顺序与优先级进行缓存时,可能出现后边拆分的命令的优先级较高的情况,在这种情况下,控制器内部将会根据不同命令(即基于控制器内部定义的所拆分得到的私有命令)的优先级,管理不同的命令队伍,即将高优先级的命令放入高优先级的队伍内。
134.当前端控制模块的dmaengine发起对host写数据的搬移时,可通过控制器数据搬移加速引擎从控制器的内部缓存中,基于通道信息对命令搬移至与目标内存介质相应通道的仲裁调度器。
135.其中,控制器数据搬移加速引擎可作为连接后端dram和后端命令/数据缓存的数据传输模块,控制器数据搬移加速引擎可将控制器内部缓存中的命令与数据进行多个pcm通道的管理与调度,例如每个控制器数据搬移加速引擎管理可调度8个pcm通道的命令和数据。
136.用于管理一组内存介质相应通道的仲裁调度器,可以包括命令仲裁器和数据仲裁器,命令仲裁器可负责对命令内容进行多通道的调度与管理,而数据仲裁内容则可负责对数据内容进行多通道的调度与管理。在基于通道信息对命令进行搬移时,可表现为在命令的命令类型为写命令时,按照写命令的通道信息和写命令的优先级,将写命令的数据内容搬移至与目标内存介质相应通道的数据仲裁器,并将写命令同步传输至与目标内存介质相
应通道的命令仲裁器;和/或,在命令的命令类型为读命令时,按照读命令的通道信息和读命令的优先级,将读命令同步传输至与目标内存介质相应通道的命令仲裁器。
137.在一种优选的实施例中,针对pcm的数据稳定性特性,可通过ecc编码引擎保证存储数据的可靠性,此时每一组pcm通道,例如每8个pcm通道可采用一个ecc编码器ecc encoder和一个解码器decoder,并保证接近32gb/s的读写带宽。
138.步骤503,通过仲裁调度器基于通道信息将命令下发至与目标内存介质相应的通道命令缓存中,实现目标内存介质对命令的处理操作。
139.用于管理一组内存介质相应通道的仲裁调度器还可以包括通道仲裁器,此通道仲裁器主要是对pcm通道的数据和命令进行调度和管理,其可调用数据仲裁器内的数据内容和命令仲裁器的命令内容,即对数据的多通道调度和管理需要结合通道仲裁器与数据仲裁器实现,对命令的多通道调度和管理需要结合通道仲裁器与命令仲裁器实现。
140.此时可通过仲裁调度器将命令下发至与目标内存介质相应的通道命令缓存中,实现目标内存介质对命令的处理操作。
141.在多通道的存储阵列中,各个内存介质具有相应的通道命令缓存,且每个通道具有独立的pcm接口控制器,即存在多套pcm接口控制器和phy分别对多个pcm进行独立管理,每个通道的pcm接口控制器和phy对相应通道的pcm介质具有命令下发和数据读取的权限。
142.内存介质所具有的通道命令缓存可以包括通道写数据缓存和通道读数据缓存,在命令的命令类型为写命令时,可通过通道仲裁器基于通道信息获取与目标内存介质相应的通道写数据缓存,将数据仲裁器内的数据内容基于目标内存介质的pcm接口控制器发送至通道写数据缓存,实现对写命令的响应对数据内容进行写入;在命令的命令类型为读命令时,可以通过通道仲裁器基于通道信息获取与目标内存介质相应的通道读数据缓存,以及通过目标内存介质的内存控制器,即pcm接口控制器响应命令仲裁器内的命令内容,将命令内容所请求读取的数据缓存在通道读数据缓存中,完成对所需读取数据的读取操作,以便后续将后续通道读数据缓存中的数据通过数据通道返回给host。
143.在本技术实施例中,涉及到存储部件,此存储部件可基于多通道的存储阵列进行排布,在服务器设备采用此多通道的存储阵列进行数据处理时,可对命令包进行拆分,以及基于通道信息将对应的命令通过相应的通道进行下发,基于对各个通道的内存介质的管理,对相应目标内存介质进行命令下发和命令处理。对存储部件进行阵列拓扑及多通道布局,以及提出分通道调度与管理命令的数据传输机制,在确保满足部件性能的同时,有效地对数据与命令进行调度,实现对存储部件中存储介质的阵列排布以及数据流设计。
144.参照图6,示出了本技术实施例提供的应用内存介质进行数据处理的应用场景图,在此场景下,基于pcm介质的特性所提出的种多通道pcm阵列的介质排布方式和数据/命令控制方案,可使得针对此pcm介质的存储部件scm在满足pcie gen5的接口设备带宽延时性能的前提下,保证其成本低于易失存储部件,并作为scm应用于服务器设备中,其中服务器设备611可与客户端设备610进行通信。
145.其中,pcm介质可基于如图2和图3所示的多通道的存储阵列进行排布,多个存储介质排布的阵列定义为存储部件。示例性地,针对pcm阵列所配置的物理通道为8个物理通道,所配置的这8个物理通道可以为存储用户数据的通道,例如ch0-ch7,在scm产品满足pcie gen5接口的情况下,需要满足的读写带宽为32gb/s,在按照上述ddp形式进行封装的情况
下,各个通道的带宽为1.5gb/s(单个die的写带宽为750mb/s),各个通道的pcm接口控制器需要满足4gb/s的带宽以确保系统的带宽要求,那么各个通道需要基于独立的pcm接口控制器进行管理。且其中以读写命令为64bits的数据颗粒度为例,控制器内部缓存的配置可以为使用2套32bits系统,即两个控制器数据搬移加速引擎和两个ecc编解码引擎,分别管理4个pcm通道的数据和命令调度,即每4个pcm通道使用一套32bits的pcm接口控制器,保证整体系统达到写入带宽接近为3gb/s。
146.需要说明的是,控制器内部缓存配置的两个ecc编解码引擎,ecc编解码引擎可实现纠正传输/存储过程中发生的错误,此时除了针对配置pcm阵列的8个物理通道外,还可为各个ecc编解码引擎分别配置2个物理通道,所配置的4个物理通道可为ecc奇偶校验对应的存储通道,例如ch8-ch11,实现所需读取或者写入数据在ecc编解码过程中的纠错码的存取。
147.在此应用场景下,当服务器设备611接收到客户端设备610发送的针对数据处理的读写命令时,前端控制模块中的host可以发起对于scm设备的读写命令,此时可根据pcie和scm接口协议的要求对所接收的读写命令的命令包进行拆分与数据搬移等操作,并基于命令拆分顺序和优先级分别传输至控制器内部缓存中,所拆分得到的若干个命令中,可以包含命令内容和/或数据内容,数据内容可以是host对scm进行读写的数据,此时在按照命令的拆分顺序和优先级对命令进行缓存时,在一方面,可按照命令拆分顺序和优先级将命令内容经由数据通路(datapath)传输,在另一方面,可按照优先级将数据内容传输到dram或者控制内部缓存buffer中。
148.控制器数据搬移加速引擎可作为连接后端dram和后端命令/数据缓存的数据传输模块,每个控制器数据搬移加速引擎管理调度4个pcm通道的命令和数据。当前端控制模块的dmaengine发起对host写数据的搬移时,可通过控制器数据搬移加速引擎从控制器的内部缓存中,基于通道信息对命令搬移至与目标内存介质相应通道的仲裁调度器。对于host写命令,控制器数据搬移引擎将会根据命令的物理地址(通道号)和命令的优先级,通过dma引擎将dram的数据搬到后端的对应数据仲裁器中,并将写命令同步传输到对应的命令仲裁器中;对于host读命令,控制器数据搬移引擎会根据命令的物理地址(通道号)和命令的优先级,将对应读命令同步传输到对应的命令仲裁器中。
149.然后可基于仲裁调度器根据通道号信息将对应的命令下发给对应的通道命令缓存中,基于每个通道的pcm接口控制器和phy对该通道的pcm介质进行命令下发和数据的读取。
150.其中,用于管理一组内存介质相应通道,例如4个pcm通道的仲裁调度器还可以包括通道仲裁器,此通道仲裁器主要是对pcm通道的数据和命令进行调度和管理,其可调用数据仲裁器内的数据内容和命令仲裁器的命令内容,即对数据的多通道调度和管理需要结合通道仲裁器与数据仲裁器实现,对命令的多通道调度和管理需要结合通道仲裁器与命令仲裁器实现。即其对命令下发至通道命令缓存的操作主要是基于通道仲裁器实现。
151.在本应用场景中,可以存在两个通道仲裁器,分别管理通道ch0-ch3和ch4-ch7,当通道仲裁器收到来自data path dmaengine的读写和dma命令时,可以根据通道信息(例如通道号)将对应的命令下发给对应的通道命令缓存中。当所下发的命令是host写命令时,通道仲裁器将会把来自dram的数据发送给对应的通道写数据缓存,实现对写命令的响应对数
据内容进行写入;当命令是host读命令时,可通过相应目标内存介质的pcm phy将对应的读数据缓存在通道读数据缓存中,完成对所需读取数据的读取操作,以便后续将后续通道读数据缓存中的数据通过数据通道返回给host。
152.在本技术实施例中,可针对pcm的特性和scm的部件需求,提出一套pcm介质的阵列拓扑及分通道方案,在满足部件需求的同时实现对pcm资源的充分高效利用和调度,且针对pcm的阵列方案和scm的部件需求,提出针对中后端分通道调度及管理的命令数据传输机制,在确保满足部件性能的同时,有效地对数据与命令进行调度,实现对pcm的阵列排布以及数据流设计。
153.需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术实施例并不受所描述的动作顺序的限制,因为依据本技术实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本技术实施例所必须的。
154.参照图7,示出了本技术的一种多通道的数据处理装置实施例的结构框图,应用于服务器设备,涉及到存储部件,所述存储部件基于多通道的存储阵列进行排布,具体可以包括如下模块:
155.命令拆分模块701,用于接收针对数据处理的命令包,对所述命令包进行拆分得到若干个命令;所述命令包基于针对数据处理的命令生成;
156.通道信息确定模块702,用于确定各个命令的通道信息;
157.命令处理模块703,用于确定在所述多通道的存储阵列中与所述通道信息相应的目标内存介质,通过所述目标内存介质对命令进行处理。
158.在本技术的一种实施例中,所述存储部件具有相应的接口协议,命令拆分模块701可以包括如下子模块:
159.访问数据格式信息获取子模块,用于获取所述接口协议规定的访问数据格式信息;所述访问数据格式信息包括读写数据长度;
160.命令拆分子模块,用于按照所述读写数据长度对所述命令包进行拆分,得到若干个命令。
161.在本技术的一种实施例中,通道信息确定模块702可以包括如下子模块:
162.通道信息获取子模块,用于根据所述多通道的存储阵列确定各个命令的通道信息,和/或,从各个命令中获取所携带的通道信息;
163.其中,所拆分得到的命令基于存储阵列中的控制器进行定义,通道信息获取子模块可以包括如下单元:
164.通道信息获取单元,用于获取所述多通道的存储阵列的通道信息,所述通道信息与存储阵列内的内存介质对应,所述存储阵列内的内存介质具有相应的物理地址;
165.物理地址获取单元,用于获取所拆分得到的命令的物理地址;
166.地址映射单元,用于采用所拆分得到的命令的物理地址与内存介质的通道信息进行映射,确定各个命令所对应的通道信息。
167.在本技术的一种实施例中,命令处理模块703可以包括如下子模块:
168.目标内存介质确定子模块,用于采用所述通道信息获取在所述存储阵列中的目标
内存介质;
169.命令处理子模块,用于向所述目标内存介质传输各个命令,通过所述目标内存介质对命令进行处理。
170.在本技术的一种实施例中,所述存储阵列中存在用于管理与内存介质相应通道的仲裁调度器,命令处理子模块可以包括如下单元:
171.命令传输单元,用于基于所述通道信息向与目标内存介质相应通道的仲裁调度器传输所拆分得到的命令;
172.命令下发单元,用于通过所述仲裁调度器基于所述通道信息将命令下发至与目标内存介质相应的通道命令缓存中,实现所述目标内存介质对命令的处理操作。
173.在本技术的一种实施例中,命令传输单元可以包括如下子单元:
174.内部缓存子单元,用于按照所述命令的拆分顺序和优先级将所述命令传输至控制器的内部缓存中;
175.命令搬移子单元,用于从控制器的内部缓存中,基于所述通道信息对所述命令搬移至与目标内存介质相应通道的仲裁调度器。
176.在本技术的一种实施例中,所述仲裁调度器包括通道仲裁器,所述通道仲裁器调用数据仲裁器和命令仲裁器;命令下发单元可以包括如下子单元:
177.第一命令下发子单元,用于在所述命令的命令类型为写命令时,通过所述通道仲裁器基于所述通道信息获取与目标内存介质相应的通道写数据缓存,将所述数据仲裁器内的数据内容发送至所述通道写数据缓存;
178.第二命令下发子单元,用于在所述命令的命令类型为读命令时,通过所述通道仲裁器基于所述通道信息获取与目标内存介质相应的通道读数据缓存,以及通过目标内存介质的内存控制器响应所述命令仲裁器内的命令内容,将所述命令内容所请求读取的数据缓存在所述通道读数据缓存中。
179.对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
180.本技术实施例还提供了一种电子设备,包括:
181.包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述多通道的数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
182.本技术实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现上述多通道的数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
183.本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
184.本领域内的技术人员应明白,本技术实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本技术实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
185.本技术实施例是参照根据本技术实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
186.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
187.这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
188.尽管已描述了本技术实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术实施例范围的所有变更和修改。
189.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
190.以上对本技术所提供的一种多通道的数据处理方法、一种多通道的数据处理装置、相应的一种电子设备和相应的一种计算机可读存储介质,进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。