一种DMA传输的方法及控制部件技术

技术编号:36335574 阅读:15 留言:0更新日期:2023-01-14 17:47
本申请涉及一种DMA传输的方法及控制部件。方法包括:为IO命令在DMA设备的缓存中分配连续的缓存空间,根据IO命令的SCL中每个描述符生成第一DMA命令;基于第一DMA命令发起第一DMA传输;为IO命令分配一个或多个数据传输单元DTU,根据每个DTU生成DMA命令组,DMA命令组包括一个或多个第二DMA命令;基于第二DMA命令发起第二DMA传输。本申请提供了生成两次DMA传输的DMA命令方案。输的DMA命令方案。输的DMA命令方案。

【技术实现步骤摘要】
一种DMA传输的方法及控制部件


[0001]本申请涉及DMA传输技术,特别地,涉及一种DMA传输的方法及控制部件。

技术介绍

[0002]DMA(Direct Memory Access)是不依赖于CPU而在存储器之间直接搬移数据的技术。在多种电子设备中使用DMA技术。本申请中以固态存储设备为例,介绍所提供的利用缓存优化DMA传输的技术方案。图1展示了固态存储设备的框图。固态存储设备102同主机相耦合,用于为主机提供存储能力。主机同固态存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如 SATA(Serial Advanced Technology Attachment,串行高级技术附件)、SCSI (Small Computer System Interface,小型计算机系统接口)、SAS(SerialAttached SCSI,串行连接SCSI)、IDE(Integrated Drive Electronics,集成驱动器电子)、USB(Universal Serial Bus,通用串行总线)、PCIE(PeripheralComponent Interconnect Express,PCIe,高速外围组件互联)、NVMe(NVMExpress,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与固态存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件 104、一个或多个NVM芯片105以及DRAM(Dynamic Random Access Memory,动态随机访问存储器)110。
[0003]NAND闪存、相变存储器、FeRAM(Ferroelectric RAM,铁电存储器)、MRAM(Magnetic Random Access Memory,磁阻存储器)、RRAM(ResistiveRandom Access Memory,阻变存储器)、XPoint存储器等是常见的NVM。
[0004]接口103可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。
[0005]控制部件104用于控制在接口103、NVM芯片105以及DRAM 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命令的数据。
[0006]控制部件104包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到NVM芯片105,并以遵循NVM芯片105的接口协议的方式向NVM芯片105发出命令,以操作NVM芯片105,并接收从 NVM芯片105输出的命令执行结果。已知的NVM芯片接口协议包括“Toggle”、“ONFI”等。
[0007]图2展示了现有技术的DMA传输的示意图。
[0008]以主机与固态存储设备之间的DMA传输为例,通过DMA设备将主机存储器210中的数据,搬移到存储设备的设备存储器220。
[0009]主机存储器210存储了要被DMA设备搬移到设备存储器220的数据。根据DMA命令组(L1、L2、L3或L4),执行从主机存储器210到设备存储器 220的数据搬移。DMA命令组符包括多个DMA命令,每个DMA命令指示一次数据搬移。DMA命令中指示例如源地址(例如,主机存储器210地址)、目的地址(例如,设备存储器220的地址)与传输的数据长度。以DMA命令组L2 为例,其包括6个DMA命令,参看图2,DMA命令0指示从源地址0x0000开始,搬移长度为0x0800的数据到目的地址0x0800,DMA命令1指示从源地址 0x0800开始,搬移长度为0x04000的数据到目的地址0x2400。图2中指示存储器地址的数字均为16进制,为了简要的目的,省去了16进制数字前的“0x”标识。
[0010]为了提高存储器的利用率,DMA命令指示的要搬移数据,在主机存储器210 与设备存储器220中都可以不连续的存储。利用DMA命令组L2指示的数据,在主机存储器210中被存储在3个区域,在设备存储器中被存储在6个区域(以横线阴影所示的区域)。然而在存储器中的多片数据,不利于数据传输的优化,为了每片数据的传输要为其提供DMA命令,更多的DMA命令增加了复杂度。
[0011]主机存储器210和/或设备存储器220各自包括多个存储器页,每页的大小为例如4KB。主机和/或存储设备的控制部件,生成DMA命令,并提供给DMA 设备。若主机生成DMA命令,则主机管理主机存储器210与设备存储器220的分配与释放;若存储设备生成DMA命令,则存储设备的控制部件管理主机存储器210与设备存储器220的分配与释放;或者主机与存储设备协同生成DMA 命令,由主机管理自身的主机存储器210,而由设备的控制部件来管理自身的设备存储器220。

技术实现思路

[0012]为了避免了数据在存储设备中多片存储以及加快DMA的传输,通过在DMA 设备的缓存中为IO命令分配连续的存储空间,从而在一些情况下减少了DMA 命令数量,进而减小了生成DMA传输过程的复杂度;连续的存储空间也有利于优化数据传输,从而加快DMA传输过程。而为了实现加快DMA传输,需要在 DMA设备的缓存中为IO命令分配连续的存储空间的基础上生成DMA命令,本申请提供了在DMA设备的缓存中为IO命令分配连续的存储空间的基础上生成DMA命令的方案。
[0013]根据本申请的第一方面,提供了根据本申请第一方面的第一DMA传输的方法,包括:为IO命令在DMA设备的缓存中分配连续的缓存空间,根据所述IO 命令获取SGL,并根据SCL中每个描述符生成第一DMA命令,所述第一DMA 命令用于描述从第一存储器空间向DMA设备缓存空间的DMA传输;基于所述第一DMA命令发起第一DMA传输;为所述IO命令分配一个或多个数据传输单元DTU,根据每个DTU生成DMA命令组,DMA命令组包括一个或多个第二DMA命令,第二DMA命令用于描述从缓存空间到第二存储器空间的DMA 传输;基于所述第二DMA命令发起第二DMA传输。
[0014]根据本申请的第一方面的第一DMA传输的方法,提供了根据本申请第本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种DMA传输的方法,其特征在于,包括:为IO命令在DMA设备的缓存中分配连续的缓存空间,根据所述IO命令获取SGL,并根据SCL中每个描述符生成第一DMA命令,所述第一DMA命令用于描述从第一存储器空间向DMA设备缓存空间的DMA传输;基于所述第一DMA命令发起第一DMA传输;为所述IO命令分配一个或多个数据传输单元DTU,根据每个DTU生成DMA命令组,DMA命令组包括一个或多个第二DMA命令,第二DMA命令用于描述从缓存空间到第二存储器空间的DMA传输;基于所述第二DMA命令发起第二DMA传输。2.根据权利要求1所述的方法,其特征在于,根据SCL中每个描述符生成第一DMA命令,包括:根据所述SCL中每个空洞描述符生成一个第一DMA命令;以及根据所述SCL中每个数据块描述符生成一个第一DMA命令。3.根据权利要求1或2所述的方法,其特征在于,为IO命令在DMA设备的缓存中分配连续的缓存空间,包括:为每个第一DMA命令分配连续的DMA设备缓存空间。4.根据权利要求3所述的方法,其特征在于,为SCL中相邻描述符所生成的第一DMA命令所分配的缓存空间是相邻的,且在后的描述符所生成的第一DMA命令所对应的缓存空间位于在前描述符所生成的第一DMA命令所对应的缓存空间之后。5.根据权利要求2

4任一项所述的方法,其特征在于,根据空洞描述符生成的第一DMA命令,要在该第一DMA命令所对应的DMA设备的缓存中填充无效数据,以使得能够把后续第一DMA命...

【专利技术属性】
技术研发人员:王玉巧刘传杰黄好城
申请(专利权)人:成都忆芯科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1