一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

资源可配置的存储控制器的制作方法

2022-03-01 22:36:30 来源:中国专利 TAG:


1.本技术涉及存储技术,特别地,涉及资源可配置的存储控制器,以及其中的直接内存存取单元、控制部件及数据传输方法。


背景技术:

2.参看图1,展示了存储设备的框图。存储设备102同主机相耦合,用于为主机提供存储能力。主机同固态存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如sata(serial advanced technology attachment,串行高级技术附件)、scsi(small computer system interface,小型计算机系统接口)、sas(serial attached scsi,串行连接scsi)、ide(integrated drive electronics,集成驱动器电子)、usb(universal serial bus,通用串行总线)、pcie(peripheral component interconnect express,pcie,高速外围组件互联)、nvme(nvm express,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个nvm(非易失存储器,non-volatile memory)芯片105以及以及dram(dynamic random access memory,动态随机访问存储器)110。
3.nand闪存、相变存储器、feram(ferroelectric ram,铁电存储器)、mram(magnetic random access memory,磁阻存储器)、rram(resistive random access memory,阻变存储器)、xpoint存储器等是常见的nvm。
4.接口103可适配于通过例如sata、ide、usb、pcie、nvme、sas、以太网、光纤通道等方式与主机交换数据。
5.控制部件104用于控制在接口103、nvm芯片105以及固件存储器110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。可通过软件、硬件、固件或其组合的多种方式实现控制部件104。控制部件104可以是fpga(field-programmable gate array,现场可编程门阵列)、asic(application specific integrated circuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理io(input/output)命令。控制部件104还可以耦合到dram 110,并可访问dram 110的数据。在dram可存储ftl表和/或缓存的io命令的数据。
6.可选地,存储设备还包括固件存储器。控制部件104在运行时从固件存储器加载固件。固件存储器是例如nor闪存、rom、eeprom,也可以是nvm芯片105的部分。
7.控制部件104包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到nvm芯片105,并以遵循nvm芯片105的接口协议的方式向nvm芯片105发出命令,以操作nvm芯片105,并接收从nvm芯片105输出的命令执行结果。
8.已知的nvm芯片接口协议包括“toggle”、“onfi”等。
9.存储器目标(target)是nand闪存封装内的共享芯片使能(ce,chip enable)信号的一个或多个逻辑单元(logic unit)。每个逻辑单元具有逻辑单元号(lun,logic unit number)。nand闪存封装内可包括一个或多个管芯(die)。典型地,逻辑单元对应于单一的管芯。逻辑单元可包括多个平面(plane)。逻辑单元内的多个平面可以并行存取,而nand闪存芯片内的多个逻辑单元可以彼此独立地执行命令和报告状态。在可从http://www.micron.com/~/media/documents/products/other%20documents/on fi3_0gold.ashx获得的“open nand flash interface specification(revision 3.0)”中,提供了关于目标(target)、逻辑单元、lun、平面(plane)的含义,其为现有技术的一部分。
10.图2展示了存储设备的控制部件的详细的框图。
11.主机以遵循存储协议的io命令访问存储设备。控制部件根据来自主机的io命令,生成一个或多个介质接口命令并提供给介质接口控制器。介质接口控制器根据介质接口命令生遵循nvm芯片的接口协议的存储介质访问命令(例如,编程命令、读命令、擦除命令)。控制部件还跟踪从一个io命令生成的所有介质接口命令都被执行完成,并向主机指示io命令的处理结果。
12.参看图2,控制部件包括例如主机接口、主机命令处理单元、存储命令处理单元、介质接口控制器与存储介质管理单元。主机接口获取主机提供的io命令,并生成存储命令提供给存储命令处理单元。存储命令例如访问相同大小的存储空间,例如4kb。将nvm芯片中记录的对应一个存储命令所访问数据的数据单元称为数据帧。物理页记录一个或多个数据帧。例如,物理页的大小17664字节,而数据帧大小为4kb,则一个物理页能存储4个数据帧。
13.存储介质管理单元为每个存储命令维护逻辑地址到物理地址的转换。例如,存储介质管理单元包括ftl表。对于读命令,存储介质管理单元输出存储命令所访问的逻辑地址对应的物理地址,对于写命令,存储介质管理单元为其分配可用的物理地址,并记录其访问的逻辑地址与分配的物理地址的映射关系。存储介质管理单元还维护诸如垃圾回收、磨损均衡等管理nvm芯片所需的功能。
14.存储命令处理单元根据存储介质管理单元提供的物理地址,操作介质接口控制器向nvm芯片发出存储介质访问命令。为了清楚的目的,将主机发送给存储设备的命令称为io命令,将主机命令处理单元发送给存储命令处理单元的命令称为存储命令,将存储命令处理单元发送给介质接口控制器的命令称为介质接口命令,而将介质接口控制器发送给nvm芯片的命令称为存储介质访问命令。存储介质访问命令遵循nvm芯片的接口协议。
15.pcie协议定义了双端口和单端口模式。控制部件为兼容单端口工作模式与双端口工作模式,提供例如2个pcie x3的端口电路。在双端口模式下,2个端口电路各自独立工作。在单端口模式下,2个端口电路组合提供pciex8的端口;或者由2个pcie x3的端口电路之一提供pciex4的端口。
16.在现有的双端口pcie固态存储器中,为了实现单端口模式和双端口模式复用,双端口模式是由两套实现单端口模式的器件构成的。在双端口模式下的两个端口负载不均衡时,会出现不同端口的器件利用率差异大、部分器件利用率低的技术问题。


技术实现要素:

17.pciegen3 x8端口能提供大约8gb/s的带宽,而每个pciegen3 x4提供大约4gb/s带
宽。然而,控制部件工作在双端口模式时,若两个端口的负载不均衡,例如端口1的数据流量需求为4gb/s,而端口2的数据流量需求为1gb/s时,现有技术的方案,为端口1与端口2都需要提供完整的硬件资源来实现4gb/s带宽,而在端口2的实际带宽不足4gb/s时,一些硬件资源并不工作而被浪费。
18.进一步地,例如4gb/s的传输带宽,可能服务于可变数量的多个并发的数据传输命令。例如,对于传输4kb大小数据的命令,需要每秒处理1百万个数据传输命令来占满传输带宽;而对于传输1mb大小数据的命令,需要每秒处理4千个数据传输命令来占满传输带宽。因而,除了数据传输,识别并处理这些数据传输命令也需要占用控制部件的资源。在两个端口的负载不均衡或者数据传输命令的大小变化时,为每个端口提供适当规模的识别处理数据传输命令的资源也成为挑战。
19.根据本技术的实施例,尝试解决解决现有技术中的控制部件在双端口模式中,不同端口的流量需求不均匀的情况下,pcie端口无法被充分利用,导致部分器件利用率低的技术问题。根据本技术的第一方面,提供了根据本技术第一方面的第一直接内存存取单元包括至少两个物理通道和多个逻辑通道,所述多个逻辑通道中的每个逻辑通道与所述至少两个物理通道中的每个物理通道连耦合;每个物理通道用于耦合pcie端口之一。
20.根据本技术第一方面的第一直接内存存取单元,提供了根据本技术第一方面的第二直接内存存取单元,所述直接内存存取单元包括单通道模式和多通道模式。
21.根据本技术第一方面的第二直接内存存取单元,提供了根据本技术第一方面的第三直接内存存取单元,所述多通道模式下,第一逻辑通道接收第一命令,所述第一命令指示直接内存存取单元通过第一pcie端口进行数据传输,所述第一pcie端口为至少两个pcie端口中的任意一个;所述第一逻辑通道根据所述第一命令,确定第一物理通道;所述第一逻辑通道根据所述第一命令,生成并向所述第一物理通道发送第一控制信息;响应于接收所述第一控制信息,所述第一物理通道通过所述第一pcie端口进行数据传输。
22.根据本技术第一方面的第三直接内存存取单元,提供了根据本技术第一方面的第四直接内存存取单元,所述第一控制信息包括源地址和目标地址,所述第一物理通道将第一数据从源地址搬移至目标地址;其中,所述源地址指向耦合所述第一pcie端口的设备时,所述目标地址指向缓存;所述源地址指向缓存时,所述目标地址指向耦合所述第一pci端口的设备。
23.根据本技术第一方面的第二至第四直接内存存取单元之一,提供了根据本技术第一方面的第五直接内存存取单元,所述单通道模式下,所述至少两个物理通道中仅有第二物理通道与pcie端口耦合,所述至少两个物理通道中的其他物理通道同任何pcie端口都不进行数据传输;所述单通道模式下,第一逻辑通道接收第二命令,所述第二命令指示直接内存存取单元通过第二pcie端口进行数据传输,所述第二pcie端口为至少两个pcie端口中同第二物理通道耦合的pcie端口;响应于接收到第二命令,逻辑通道根据所述第二命令,生成并向第二物理通道发送第二控制信息;响应于接收所述第二控制信息,所述第二物理通道通过第二pcie端口进行数据传输。
24.根据本技术第一方面的第二至第五直接内存存取单元之一,提供了根据本技术第一方面的第六直接内存存取单元,所述多通道模式下,所述多个逻辑通道包括专用逻辑通道,专用逻辑通道同物理通道一一对应,所述第一逻辑通道为所述多个逻辑通道中除所述
专用逻辑通道之外的任意一个逻辑通道;或者,所述多个逻辑通道不包括专用逻辑通道,所述第一逻辑通道为所述多个逻辑通道中的任意一个逻辑通道。
25.根据本技术第一方面的第三、第四或第六直接内存存取单元,提供了根据本技术第一方面的第七直接内存存取单元,所述第一逻辑通道接收第三命令,所述第三命令指示直接内存存取单元通过第二pcie端口进行数据传输,所述第三命令为接收所述第一命令之后接收的命令,所述第二pcie端口与所述第一pcie端口不同;所述第一逻辑通道根据所述第三命令,确定第二物理通道;所述第一逻辑通道根据所述第三命令,生成并向所述第二物理通道发送第三控制信息;响应于接收所述第三控制信息,所述第二物理通道通过所述第二pcie端口进行数据传输。
26.根据本技术第一方面的第三至第七直接内存存取单元之一,提供了根据本技术第一方面的第八直接内存存取单元,在所述第一逻辑通道根据所述第一命令,确定第一物理通道之后,所述第一逻辑通道选通所述第一物理通道。
27.根据本技术第一方面的第七或第八直接内存存取单元,提供了根据本技术第一方面的第九直接内存存取单元,在所述第一逻辑通道根据所述第三命令,确定第二物理通道之后,停止选通所述第一物理通道,并选通所述第二物理通道。
28.根据本技术第一方面的第七至第九直接内存存取单元之一,提供了根据本技术第一方面的第十直接内存存取单元,所述第一物理通道响应于完成根据所述第一控制信息指示的通过所述第一pcie端口的数据传输,所述第一物理通道向生成所述第一控制信息的所述第一逻辑通道反馈第一完成信息。
29.根据本技术第一方面的第十直接内存存取单元,提供了根据本技术第一方面的第十一直接内存存取单元,响应于接收到所述第一完成信息,所述第一逻辑通道停止选通所述第一物理通道;所述第一逻辑通道确定所述第二物理通道之后,选通所述第二物理通道。
30.根据本技术的第二方面,提供了根据本技术第二方面的第一数据传输方法,包括:接收第一命令,所述第一命令指示第一物理通道与第一pcie设备进行数据传输;根据所述第一命令,确定所述第一物理通道;根据第一命令生成并向所述第一物理通道发送第一控制信息,以使所述第一物理通道根据所述第一控制信息通过第一pcie端口进行数据传输。
31.根据本技术第二方面的第一数据传输方法,提供了根据本技术第二方面的第二数据传输方法,在确定所述第一物理通道之后,所述方法还包括:选通所述第一物理通道。
32.根据本技术第二方面的第二数据传输方法,提供了根据本技术第二方面的第三数据传输方法,所述方法还包括:接收所述第一物理通道反馈的第一完成信息。
33.根据本技术第二方面的第一至第三数据传输方法之一,提供了根据本技术第二方面的第四数据传输方法,所述在接收所述第一命令之后,所述方法还包括:接收第二命令,所述第二命令指示第二物理通道与第二pcie端口进行数据传输,所述第二物理通道与所述第一物理通道不同;根据所述第二命令,确定所述第二物理通道;根据第二命令生成并向所述第二物理通道发送第二控制信息,以使所述第二物理通道根据所述第二控制信息通过第二pcie端口进行数据传输。
34.根据本技术第二方面的第四数据传输方法,提供了根据本技术第二方面的第五数据传输方法,响应于接收到所述第一完成信息,停止选通所述第一物理通道;在确定所述第二物理通道之后,选通所述第二物理通道;或者,在确定所述第二物理通道之后,停止选通
所述第一物理通道,并选通所述第二物理通道。
35.根据本技术的第三方面,提供了根据本技术第三方面的第一控制部件,包括命令处理单元和上述第一方面中任一项所述的直接内存存取单元;所述命令处理单元向所述直接内存存取单元发送第一命令,所述第一命令指示直接内存存取单元通过第一pcie端口进行数据传输;响应于所述第一命令,所述直接内存存取单元通过第一pcie端口进行数据传输。
36.根据本技术第三方面的第一控制部件,提供了根据本技术第三方面的第二控制部件,所述命令处理单元包括至少一个处理模块和至少一个加速模块,所述至少一个处理模块中的每个处理模块与所述直接内存存储单元耦合,所述至少一个加速模块中的每个加速模块与所述直接内存存储单元耦合,每个处理模块还与每个加速模块均耦合。
37.根据本技术第三方面的第二控制部件,提供了根据本技术第三方面的第三控制部件,每个处理模块与所述直接内存存取单元中的一个或多个逻辑通道耦合;每个硬件加速模块与所述直接内存存取单元中的一个或多个逻辑通道耦合。
38.根据本技术第三方面的第二或第三控制部件,提供了根据本技术第三方面的第四控制部件,处理模块或加速模块向第一逻辑通道发送第一命令,所述第一命令指示第一物理通道与第一pcie端口进行数据传输;响应于接收到所述第一命令,所述第一逻辑通道根据所述第一命令,确定所述第一物理通道;所述第一逻辑通道根据第一命令生成并向所述第一物理通道发送第一控制信息;响应于接收所述第一控制信息,所述第一物理通道根据所述第一控制信息通过第一pcie端口进行数据传输。
39.根据本技术第三方面的第四控制部件,提供了根据本技术第三方面的第五控制部件,在确定所述第一物理通道之后,所述第一逻辑通道选通所述第一物理通道。
40.根据本技术第三方面的第五控制部件,提供了根据本技术第三方面的第六控制部件,响应于与所述第一pcie端口的数据传输完成,所述第一物理通道向所述第一逻辑通道反馈第一完成信息。
41.根据本技术第三方面的第五或第六控制部件,提供了根据本技术第三方面的第七控制部件,在接收所述第一命令之后,所述第一逻辑通道还接收第二命令,所述第二命令指示第二物理通道与第二pcie端口进行数据传输,所述第二物理通道与所述第一物理通道不同;所述第一逻辑通道根据所述第二命令,确定所述第二物理通道;所述第一逻辑通道根据第二命令生成并向所述第二物理通道发送第二控制信息;所述第二物理通道根据所述第二控制信息与第二pcie端口进行数据传输。
42.根据本技术第三方面的第七控制部件,提供了根据本技术第三方面的第八控制部件,响应于接收到所述第一完成信息,所述第一逻辑通道停止选通所述第一物理通道;所述第一逻辑通道在确定所述第二物理通道之后,选通所述第二物理通道;或者,在确定所述第二物理通道之后,所述第一逻辑通道停止选通所述第一物理通道,并选通所述第二物理通道。
43.根据本技术第三方面的第三控制部件,提供了根据本技术第三方面的第九控制部件,响应于控制部件耦合多个pcie端口,直接内存存取单元被配置为多通道模式;响应于控制部件仅耦合单一的第二pcie端口,直接内存存取单元被配置为单通道模式。
44.根据本技术第三方面的第九控制部件,提供了根据本技术第三方面的第十控制部
件,根据pcie端口的负载或配置,将第一数量的逻辑通道耦合第一物理通道;将第二通道的逻辑通道耦合第二物理通道。
45.根据本技术第三方面的第一至第九控制部件,提供了根据本技术第三方面的第八控制部件,命令处理单元将一个或多个逻辑通道分配来处理访问第一命名空间的命令;将一个或多个逻辑通道分配来处理访问第二命名空间的命令;命名空间还同一个或多个pcie端口关联;为生成发送给逻辑通道的命令,命令处理单元根据命名空间所关联的pcie端口,获取同该pcie端口所耦合的物理通道;根据命令所访问的命名空间,在生成的命令中指示与命令所访问的命名空间所关联的物理通道。
附图说明
46.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
47.图1为现有技术中的存储设备的框图;
48.图2为现有技术中的控制部件的框图;
49.图3a为现有技术中的直接内存存取单元的示意图;
50.图3b为本技术实施例提供的直接内存存取单元的示意图;
51.图4为本技术实施例提供的数据传输方法的流程图;
52.图5位本技术实施例提供的控制部件的示意图;
53.图6为本技术实施例提供的命令处理单元与直接内存存取单元的耦合关系示意图;
54.图7为本技术实施例提供的单端口存储设备的示意图;
55.图8a为本技术实施例提供的双端口存储设备的示意图;
56.图8b为本技术实施例提供的又一双端口存储设备的示意图。
具体实施方式
57.下面结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
58.图3a为现有技术中支持双端口模式的直接内存存取单元(dma,directmemoryaccess)300的示意图。直接内存存取单元300包括物理通道1和物理通道2。物理通道1与pcie端口1耦合,物理通道2与pcie端口2耦合。逻辑通道11、12和13与物理通道1耦合。逻辑单元21、22和23与物理通道2耦合。直接内存存取单元300的两个物理通道独立拥有相同数量的逻辑通道,从而在双端口模式下,两个物理通道分别负责一个pcie端口的工作。而在单端口模式时,作为举例,直接内存存储单元300中有一个pcie端口停止使用。例如,单端口模式下,直接内存存取单元300的pcie端口1正常工作,pcie端口2不工作,从而物理通道2及逻辑单元21、22和23都处于不工作的状态。或者,在单端口模式时,pcie端口1与
pcie端口2共同工作,以提供2倍的数据传输带宽。
59.图3b给出了本实施例中的支持双端口模式和单端口模式的直接内存存取单元310。如图3b所示,直接内存存取单元310包括物理通道1、物理通道2、逻辑通道11、逻辑通道12、逻辑通道13、逻辑通道21、逻辑通道22和逻辑通道23。物理通道1与pcie端口1耦合,物理通道2与pcie端口2耦合。逻辑通道11、逻辑通道12、逻辑通道13、逻辑通道21、逻辑通道22和逻辑通道23中的每个逻辑通道均与物理通道1耦合,这些逻辑通道的每个逻辑通道还均与物理通道2耦合。本实施例中,直接内存存取单元310中的物理通道的数量包括但不限于2,每个物理通道耦合的逻辑通道的数量大于等于2。例如,物理通道1耦合有16个逻辑通道。需要注意的是,物理通道1耦合有16个逻辑通道表征这16个逻辑通道均能够与物理通道1进行数据传输,其不等于物理通道1同时与16个逻辑通道进行数据传输,某一时刻实际通过物理通道1进行数据传输的逻辑通道数量可以远小于16甚至为0。
60.可以理解地,本实施例中的物理通道1还耦合于pcie端口2,物理通道2耦合于pcie端口2。pcie端口遵循pcie标准,并用于耦合pcie设备。本技术中的pcie设备包括但不限于根据nvme协议的固态硬盘和主机。例如,pcie端口1耦合1个pciegen 3
×
4的固态硬盘,pcie端口2也耦合1个pciegen 3
×
4的固态硬盘。又如,pcie端口1耦合1个pciegen 3
×
8的固态硬盘,pcie端口2未连接固态硬盘。再如,pcie端口1与pcie端口2组合为单一pcie端口耦合1个pciegen 3
×
8的固态硬盘。
61.依然可选地,内存直接存取单元310被集成于诸如固态硬盘的存储设备的控制部件。从而,pcie端口1和/或pcie端口2用于耦合主机的pcie端口,或者耦合pcie交换机。在固态硬盘工作于双端口模式时,pcie端口1与pcie端口2各自独立耦合主机或pcie交换机的pcie端口。在固态硬盘工作于单端口模式时,pcie端口1与pcie端口2共同耦合主机或pcie交换机的单一pcie端口。
62.可选地,直接内存存取单元310提供单通道模式和多通道模式。
63.根据本技术的实施例,在多通道模式下,第一逻辑通道接收第一命令。第一命令指示直接内存存取单元310通过第一pcie端口进行数据传输,第一pcie端口为至少两个pcie端口中的任意一个。第一逻辑通道根据第一命令,确定第一物理通道。本实施例中,第一逻辑通道为直接内存存取单元310中的任意一个逻辑通道,亦或是内存存取单元310中接收到第一命令的逻辑通道为第一逻辑通道。内存存取单元310中的任意一个物理通道均可能成为第一物理通道。
64.例如,逻辑通道13接收到第一命令,第一命令指示pcie端口2的标识和物理通道1的标识。逻辑通道13接收到第一命令后,根据物理通道1的标识确定了第一物理通道为物理通道1。又如,逻辑通道21接收第一命令,第一命令指示物理通道2的标识,第一命令还指示了源地址及目的地址。源地址或目的地址指向pcie端口2,则逻辑通道21确定是由物理通道2通过pcie端口2进行数据传输。再如,逻辑通道13接收第一命令,第一命令指示了pcie端口2的标识但没有指示物理通道的标识,逻辑通道13检查物理通道1和物理通道2的绑定关系,确定物理通道2和pcie端口2存在绑定关系,则逻辑通道13确定通过物理通道2与pcie端口2进行数据传输。
65.在确定第一物理通道之后,第一逻辑通道根据第一命令,生成并向第一物理通道发送第一控制信息。响应于接收第一控制信息,第一物理通道通过第一pcie端口进行数据
传输。例如,逻辑通道13根据第一命令生成并向物理通道1发送第一控制信息,第一控制信息指示物理通道1通过pcie端口1进行数据传输。
66.可选地,第一控制信息还包括源地址及目的地址。例如,响应于接收到第一控制信息,物理通道1将第一命令所指示的数据从源地址搬移到目的地址。例如,源地址指向缓存,目的地址指向主机,则物理通道1将数据从缓存搬移至主机。
67.在一些实施例中,单通道模式下,至少两个物理通道中仅有第二物理通道与pcie端口耦合,至少两个物理通道中的其他物理通道同任何pcie端口都不进行数据传输。第二物理通道为单通道模式下正常工作的物理通道,例如,物理通道1为第二物理通道,物理通道1与pcie端口1耦合,pcie端口1连接有pcie设备,而pcie端口2并未连接pcie设备,从而物理通道2不能通过pcie端口2进行数据传输。
68.进一步,单通道模式下,第一逻辑通道接收第二命令,第二命令指示直接内存存取单元通过第二pcie端口进行数据传输,第二pcie端口为至少两个pcie端口中同第二物理通道耦合的pcie端口。本实施例中的第一逻辑通道为直接内存存取单元310中的任意一个逻辑通道成者直接内存存取单元310中的接收到第二命令的逻辑通道为第一逻辑通道。例如,逻辑通道22接收到第二命令,第二命令指示通过pcie端口2进行数据传输,第二物理通道为物理通道2。
69.响应于接收到第二命令,第一逻辑通道根据第二命令,生成并向第二物理通道发送第二控制信息;响应于接收第二控制信息,第二物理通道通过第二pcie端口进行数据传输。沿用前例,逻辑通道22接收到第二命令后,生成第二控制信息,并向物理通道2发送第二控制信息;物理通道2通过pcie端口2进行数据传输。
70.根据本技术的实施例,多个逻辑通道为直接内存存取单元310的使用者展示了多个(大于物理通道的数量)可并发处理命令以根据各命令进行pcie数据传输的通道。从而,使用者得以选取任何空闲的逻辑通道(当前未被用来进行pcie数据传输),并向其发送命令。从而,在多通道模式下,通过将逻辑通道的一些分配给一个物理通道,而将另一些逻辑通道分配给另一个物理通道,为每个物理通道分配的逻辑通道的数量,决定各物理通道上并发处理命令的数量。从而,在各物理通道所提供的pcie端口的负载变化或不均衡时,通过调整耦合到各物理通道的逻辑通道数量,来为各物理通道提供可调整的并发处理命令的能力。
71.可以理解地,在动态调整逻辑通道同物理通道的耦合关系中,一些时刻,某个物理通道没有被耦合到任何逻辑通道,导致该物理通道上没有数据传输,并引起该物理通道耦合的pcie端口所连接的设备面临极其糟糕的体验。为此,在一些实施例中,多通道模式下,为了给一些物理通道保留基础带宽或数据传输能力,一些逻辑通道被设置为专用逻辑通道。专用逻辑通道同物理通道例如一一对应,而第一逻辑通道为多个逻辑通道中除专用逻辑通道之外的任意一个逻辑通道。例如,物理通道1对应的专用通道为逻辑通道11,物理通道2对应的专用逻辑通道为逻辑通道21,则第一逻辑通道为逻辑通道12、13、22和23中的任意一个。可选地,多个逻辑通道不包括专用逻辑通道,第一逻辑通道为多个逻辑通道中的任意一个逻辑通道。
72.在一些实施例中,第一逻辑通道接收第三命令,第三命令指示直接内存存取单元通过第二pcie端口进行数据传输,第三命令为接收第一命令之后接收的命令,第二pcie端
口与第一pcie端口不同;第一逻辑通道根据第三命令,确定第二物理通道;第一逻辑通道根据第三命令,生成并向第二物理通道发送第三控制信息;响应于接收第三控制信息,第二物理通道通过第二pcie端口进行数据传输。
73.以第一逻辑通道为逻辑通道12、第一命令指示通过pcie端口1进行数据传输、第三命令指示pcie端口2进行数据传输为例。逻辑通道12接收到第一命令后,确定第一物理通道为物理通道1。逻辑通道12根据第一命令生成第一控制信息,并向物理通道1发送第一控制信息,物理通道1根据第一控制信息与pcie端口1进行数据传输。在第一命令之后,逻辑通道12接收到第三命令后,确定第二物理通道为物理通道2。逻辑通道12根据第三命令生成第三控制信息,并向物理通道2发送第三控制信息,物理通道2根据第三控制信息与pcie端口2进行数据传输。
74.在本技术实施例中,在第一逻辑通道根据第一命令,确定第一物理通道之后,第一逻辑通道选通第一物理通道。例如,逻辑通道22与物理通道1和物理通道2均耦合,逻辑通道22接收到第一命令后,根据第一命令确定第一物理通道为物理通道2,则逻辑通道22选通物理通道2,从而物理通道2能够进行后续的数据传输,而未选通的物理通道1则不能进行数据传输。
75.进一步可选地,在第一逻辑通道根据第三命令,确定第二物理通道之后,停止选通第一物理通道,并选通第二物理通道。示例性地,逻辑通道22在接收到第一命令后,选通物理通道2。物理通道2完成第一命令指示的数据传输后,逻辑通道22接收到第三命令,逻辑通道22确定物理通道1为第二物理通道,从而逻辑通道22停止选通物理通道2,并选通物理通道1。
76.本技术实施例中,第一物理通道响应于完成根据第一控制信息指示的通过第一pcie端口的数据传输,第一物理通道向生成第一控制信息的第一逻辑通道反馈第一完成信息。例如,物理通道1完成与pcie端口1之间的数据传输后,向逻辑通道23发送第一完成信息,第一完成信息指示第一命令指示的数据传输已完成。示例性地,逻辑通道23接收到第一完成信息后,可以停止选通物理通道1,并在确定第二物理通道为物理通道2之后,选通物理通道2。在另一些可能实施例中,逻辑通道23在接收到第三命令后,当前的物理通道1仍处于选通状态,在根据第三命令确定第二物理通道为物理通道2之后,逻辑通道23停止选通物理通道1并选通物理通道2。
77.示例性地,逻辑通道11接收第一命令后,选通了物理通道1,物理通道1完成数据传输之后,逻辑通道11停止选通物理通道1。逻辑通道11又接收到第四命令,逻辑通道11根据第四命令,确定要选通的物理通道是物理通道1,则逻辑通道11再次选通物理通道1。
78.示例性地,逻辑通道11接收第一命令后,选通了物理通道1,物理通道1完成数据传输之后,逻辑通道11又接收到第四命令,逻辑通道11根据第四命令,确定要选通的物理通道依旧是物理通道1,则逻辑通道11在物理通道完成数据传输到根据第四命令确定物理通道1之间,保持选通物理通道1的状态。
79.图4为本技术实施例提供的数据传输方法所对应的流程示意图。本实施例提供的方法可由直接内存存取单元310执行,本实施例所提供的的方法还可由处理器等器件执行,在此不进行限定。下面结合直接内存存取单元310和图4进行描述。
80.如图4所示,该方法包括:
81.步骤401,接收第一命令,第一命令指示第一物理通道与第一pcie设备进行数据传输。
82.例如,逻辑通道21接收到第一命令,该第一命令指示物理通道1与pcie端口1进行数据传输。第一命令由处理器或硬件生成并发送给逻辑通道。
83.步骤402,根据第一命令,确定第一物理通道。
84.示例性地,第一命令携带物理通道1的标识,逻辑通道21根据该标识确定物理通道1为第一物理通道。又如,第一命令未携带物理通道的标识,逻辑通道21根据物理通道与pcie端口的绑定关系,确定物理通道1与pcie端口1绑定,从而确定物理通道1为第一物理通道。
85.可选地,在确定第一物理通道为物理通道1之后,逻辑通道21选通物理通道1。
86.步骤403,根据第一命令生成并向第一物理通道发送第一控制信息,以使第一物理通道根据第一控制信息通过第一pcie端口进行数据传输。
87.例如,逻辑通道21根据第一命令生成第一控制信息,逻辑通道21将该第一控制信息发送给物理通道1。物理通道1接收到该第一控制信息后,与pcie端口1进行数据传输。需要说明的是,本实施例中,物理通道1与pcie端口1之间进行数据传输可参见现有技术中dma进行数据传输的方法,本技术不进行限定。
88.步骤404,接收第一物理通道反馈的第一完成信息。
89.具体的,例如在物理通道1与pcie端口1进行数据传输之后,物理通道1生成第一完成信息,第一完成信息指示该数据传输完成。逻辑通道21接收到第一完成信息后,停止选通物理通道1。逻辑通道21在接收到第一完成信息后,逻辑通道21继续处理接收到的其它命令。
90.步骤405,接收第二命令,第二命令指示第二物理通道与第二pcie端口进行数据传输,第二物理通道与第一物理通道不同。
91.例如,逻辑通道21接收到第二命令后,根据第二命令确定是物理通道2要与pcie端口2进行数据传输。
92.步骤406,根据第二命令,确定第二物理通道。本实施例中,确定第二物理通道的方式可参见确定第一物理通道的方式,在此不再赘述。可选地,在确定第二物理通道之后,选通第二物理通道;或者,在确定第二物理通道之后,停止选通第一物理通道,并选通第二物理通道。例如,逻辑通道21在接收到第一完成信息后,即停止选通物理通道1,在确定第二物理通道为物理通道2之后,选通物理通道2。又如,逻辑通道21在确定第二物理通道为物理通道2之后,停止选通物理通道1并选通物理通道2。
93.步骤407,根据第二命令生成并向第二物理通道发送第二控制信息,以使第二物理通道根据第二控制信息通过第二pcie端口进行数据传输。步骤407的执行方式可参照步骤403的执行方式,在此不再赘述。
94.图5为本技术实施例提供的控制部件500。控制部件500包括命令处理单元501及上述实施例中的直接内存存取单元310。
95.其中,命令处理单元501向直接内存存取单元310发送第一命令,第一命令指示直接内存存取单元310通过pcie端口1进行数据传输。响应于第一命令,直接内存存取单元310通过pcie端口1进行数据传输。
96.本实施例中,直接内存存取单元310与pcie端口1进行数据传输的方法可采用上述实施例中的数据传输方法,也可采用现有技术中的方法。
97.继续参见图5,可选地,命令处理单元501包括至少一个处理模块502和至少一个加速模块503,至少一个处理模块502中的每个处理模块与直接内存存储单元310耦合,至少一个加速模块503中的每个加速模块与直接内存存储单元310耦合,每个处理模块还与每个加速模块均耦合。示例性地,至少一个处理模块502包括3个处理模块,至少一个加速模块503包括3个加速模块。可选地,至少一个处理模块502包括1个、2个、4个或4个以上的处理模块。至少一个加速模块503包括1个、2个、4个或4个以上的加速模块。
98.可选地,至少一个处理模块502中的每个处理模块与直接内存存取单元310中的一个或多个逻辑通道耦合。至少一个加速模块中的每个硬件加速模块与直接内存存取单元310中的一个或多个逻辑通道耦合。
99.以遵循nvme协议的存储设备为例,命令处理单元501处理nvme命令。处理模块502的每个负责解析nvme命令,并根据nvme命令生成提供给直接内存存取单元310的数据传输命令以指示内存直接存取单元310在控制部件500与通过pcie端口1和/或pcie端口2耦合的远端设备进行数据传输。可选地加速模块503协助处理模块502处理nvme命令。例如,一个或多个加速模块503负责从命令提交队列获取nvme命令并提供给处理模块502;一个或多个加速模块503负责根据nvme命令获取nvme命令所指示的prp链表或sgl链表;一个或多个加速模块503负责根据nvme命令处理结果生成完成消息并填充完成队列。一个或多个加速模块503负责检测nvme命令的各个字段是否有错误,是否满足协议要求。
100.处理模块502的每个可指派一个或多个加速模块来协助其处理nvme命令。可选地,处理模块502根据加速模块的工作状态而获取空闲的加速模块来协助其处理nvme命令。
101.处理模块502通过向内存直接存取单元310的逻辑单元之一发送数据传输命令来通过pcie端口1和/或pcie端口2传输数据。可选地,处理模块502根据逻辑通道的工作状态而获取空闲的逻辑通道来协助其处理nvme命令。
102.还维护逻辑通道同pcie端口的绑定关系。例如,将3个逻辑通道绑定到pcie端口1,而另3个逻辑通道绑定到pcie端口2。处理模块502知晓pcie端口所耦合的主机,例如,主机1通过pcie端口1耦合控制部件500,而主机2通过pcie端口2耦合控制部件500;或者在双端口工作模式中,主机1通过pcie端口1与pcie端口2耦合控制部件500。处理模块502根据要传输数据的目的主机,将生成的数据传输命令提供给绑定了同该主机耦合的pcie端口的一个或多个逻辑通道之一,并从该逻辑通道获取数据传输命令处理完成的指示。从而,逻辑通道向处理模块502提供了内存直接存取单元310可并发处理数据传输命令的能力,也向处理模块502提供了各pcie端口可并发处理数据传输命令的能力。
103.进一步地,根据本技术的实施例,逻辑通道同pcie端口的绑定关系是可变的,从而各pcie端口可并发处理数据传输命令的能力是可变的。例如,响应于识别出pcie端口1的当前负载较低,而pcie端口2的当前负载较高。通过将原绑定于pcie端口2的逻辑通道的一个或多个,变更为绑定于pcie端口1,来提高pcie端口1的并发处理数据传输命令的能力,而无需提供额外的控制部件资源。
104.类似地,加速模块通过向内存直接存取单元310的逻辑单元之一发送数据传输命令来通过pcie端口1和/或pcie端口2传输数据。
105.例如,图6给出了命令处理单元501中的加速模块与处理模块和直接内存存取单元310中的逻辑通道的耦合关系示意图。作为示例,图6中仅给出了加速模块3及处理模块3与逻辑通道的耦合关系。其中,加速模块3与6个逻辑通道均耦合,处理模块3也与6个逻辑通道均耦合。至少一个加速模块503中的其余加速模块虽未在图6中示出与逻辑单元的耦合关系,可以理解地,每个加速模块均与至少一个逻辑通道耦合。相似地,每个处理模块均与至少一个逻辑通道耦合。
106.控制部件500可执行上述实施例中的数据传输方法,下面以第一逻辑通道为逻辑通道13为例进行描述。命令处理单元501中的处理模块3向逻辑通道13发送第一命令,第一命令指示通过物理通道1与pcie端口1进行数据传输。响应于接收到第一命令,逻辑通道13根据第一命令,确定第一物理通道为物理通道1。逻辑通道13根据第一命令生成并向物理通道1发送第一控制信息。响应于接收第一控制信息,物理通道1根据第一控制信息通过pcie端口1进行数据传输。
107.可选地,在确定第一物理通道为物理通道1之后,逻辑通道13选通物理通道1。
108.进一步,响应于与pcie端口2的数据传输完成,物理通道1向逻辑通道13反馈第一完成信息。
109.在接收第一命令之后,逻辑通道13还接收第二命令,第二命令指示物理通道2与pcie端口2进行数据传输。逻辑通道13根据第二命令,确定第二物理通道为物理通道2。逻辑通道13根据第二命令生成并向物理通道2发送第二控制信息。物理通道2根据第二控制信息与pcie端口2进行数据传输。
110.进一步可选地,响应于接收到第一完成信息,逻辑通道13停止选通物理通道1。逻辑通道13在确定第二物理通道为物理通道2之后,选通物理通道2。或者,在确定第二物理通道为物理通道2之后,逻辑通道13停止选通物理通道1,并选通物理通道2。
111.本实施例中,控制部件500也具有2种工作模式,包括单通道模式和多通道模式。
112.进一步,本实施方式中,是根据pcie端口的负载或配置,将第一数量的逻辑通道耦合第一物理通道;将第二通道的逻辑通道耦合第二物理通道。例如,直接内存存取单元310中有6个逻辑通道及物理通道1和物理通道2。物理通道1耦合到pcie端口1,物理通道2耦合到pcie端口2,检测到pcie端口1和pcie端口2的负载相同或近似,则将3个逻辑通道耦合到物理通道1,另外3个逻辑通道耦合到物理通道2;检测到pcie端口1的负载是pcie端口2的负载的一倍,则将4个逻辑通道耦合到物理通道1,另外2个逻辑通道耦合到物理通道2;或者,根据配置,将1个逻辑通道耦合到物理通道1,5个逻辑通道耦合到物理通道2。可选地,本技术中的不同逻辑通道的工作能力相同,不同物理通道的工作能力也相同。本实施方式中,根据pcie端口的负载及配置动态的调整不同物理通道耦合的逻辑通道数量,从而在负载大时也拥有足够的逻辑通道来处理,而在负载小时则能使剩余的逻辑通道来承担大负载的pcie端口的工作,不仅能够提高工作效率,还有效地提高逻辑通道和/或物理通道的使用率。
113.在一些实施例中,命令处理单元501将一个或多个逻辑通道分配来处理访问第一命名空间的命令。将一个或多个逻辑通道分配来处理访问第二命名空间的命令。命名空间还同一个或多个pcie端口关联。例如,pcie端口1关联于命令空间1,pcie端口2关联与命名空间2和3。从而逻辑通道12和逻辑通道13负责处理访问命名空间1的命令,逻辑通道11、逻辑通道21、逻辑通道22和逻辑通道23则负责处理访问命名空间2和3的命令。从而实现了为
命名空间1与命名空间2/3提供不同水平(例如带宽)的服务。
114.为生成发送给逻辑通道的命令,命令处理单元501根据命名空间所关联的pcie端口,获取同该pcie端口所耦合的物理通道。例如,命令处理单元501在生成第一命令时,该第一命令为访问命名空间1的命令,命令处理单元501获取同命名空间1关联的是pcie端口2,而同pcie端口2绑定的物理通道是物理通道2,从而,根据该第一命令中指示命名空间1确定要使用的物理通道为物理通道2。
115.图7为根据本技术实施例提供单端口存储设备的示意图。
116.如图7所示,单端口存储设备向主机展示了例如2个命名空间(命名空间1和命名空间2)。该存储设备工作于单端口模式,通过端口1(端口1为pcie端口)耦合主机。直接内存存取单元310包括多个逻辑通道(未示出),每个逻辑通道都耦合到同该端口1绑定的物理端口。从而这些逻辑通道都服务于端口1。
117.单端口存储设备向主机提供的各命名空间承诺了各自的性能,例如,命名空间1承诺的带宽是1gb/s,而命名空间2承诺的带宽是2gb/s。为此,进一步地,还将逻辑通道同命名空间绑定。例如,直接内存存取单元310中的2个逻辑通道绑定命名空间1,而直接内存存取单元310中的4个逻辑通道绑定命名空间2。例如,处理模块502(未在图7中示出)要根据访问命名空间1的nvme命令访问直接内存存取单元310时,将数据传输命令发送给同命名空间1绑定的2个逻辑通道之一。从而,即使某一时刻有大量的nvme命令访问命名空间1,依然预留了4个逻辑通道来处理访问命名空间2的nvme命令,进而确保了在存在访问命名空间2的nvme命令的情况x下,端口1的物理带宽不会被访问命名空间1的nvme命令占满。也使得命名空间1的数据传输命令的并发数量小于命名空间2的数据传输命令的并发数量。
118.可选地,每个逻辑通道服务于所有的命名空间。
119.图8a为为本技术实施例提供双端口存储设备的示意图。
120.如图8a所示,作为举例的存储设备是双端口存储设备,所展示的双端口存储设备包括例如3个命名空间。主机1通过端口1与双端口存储设备耦合,主机2通过端口2与双端口存储设备耦合,端口1和端口2均为pcie端口。主机1通过端口1访问存储设备的命名空间1与命名空间2。主机2通过端口2访问存储设备的命名空间2与命名空间3。从而主机1与主机2共享命名空间2,而各自分别独占命名空间1与命名空间3。
121.依然作为举例,直接内存存取单元310中的物理通道1与端口1耦合,物理通道2与端口2耦合。
122.根据本技术的实施例,为了向各命名空间预留性能,以在各命名空间之间分配资源并为各命名空间预留带宽等命令处理能力,而在逻辑通道与命名空间之间建立可变的绑定关系。以及在逻辑通道与端口(通过与端口耦合的物理通道)之间建立可变的绑定关系。
123.直接内存存储单元310包括6个逻辑通道(也参看图6)。例如,逻辑通道11和逻辑通道12与命名空间1绑定,逻辑通道13和逻辑通道21与命名空间2绑定,逻辑通道22和逻辑通道23与命名空间3绑定。从而逻辑通道11和逻辑通道12负责命名空间1的数据传输,逻辑通道13和逻辑通道21负责命名空间2的数据传输,逻辑通道22和逻辑通道23负责命名空间3的数据传输。从而处理根据命令访问的命名空间来确定通过哪个逻辑通道发起数据传输,以及根据发出访问命名空间的命令的主机来确定通过哪个端口以及哪个物理通道来进行数据传输。
124.根据本技术的实施例,根据命名空间1和/或命名空间2的负载和/或性能需求,调节各命名空间绑定的逻辑通道的数量。通过增加同命名空间绑定的逻辑通道数量来为该命名空间提供更高的命令处理能力,以及通过为命名空间绑定例如至少一个逻辑通道来为该命名空间保证基本的命令处理能力。以及响应于命名空间1和/或命名空间2的负载和/或性能需求发生变化,通过改变一个或多个命名空间绑定的逻辑通道的数量来满足变化后的负载和/或性能需求。进一步地,通过改变为各物理通道提供服务的逻辑通道数量来适应各物理通道的负载变化。
125.图8b为本技术实施例提供的又一双端口存储设备的示意图。图8b中的双端口存储设备与图8a的相同,在此不再赘述,区别在于,图8b中端口1与端口2均与同一个主机1耦合。主机1通过端口1或端口2都能访问存储设备提供的3个命名空间。
126.根据本技术的实施方式,逻辑通道与命名空间存在可调节的绑定关系,为物理通道提供服务的逻辑通道数量也可调节。其操作方式可参见图8a中的双端口存储设备的描述,在此不再赘述。
127.虽然当前申请参考的示例被描述,其只是为了解释的目的而不是对本技术的限制,对实施方式的改变,增加和/或删除可以被做出而不脱离本技术的范围。
128.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献