利用缓存优化DMA传输制造技术

技术编号:23470517 阅读:17 留言:0更新日期:2020-03-06 12:39
本申请涉及DMA传输技术,更具体地,涉及利用缓存优化DMA传输,由于本申请在缓存中为DMA描述符提供了连续的存储空间,避免了数据在存储设备中多片存储,从而在一些情况下减少了DMA描述符中条目数量,进而减小了生成DMA传输过程的复杂度;连续的存储空间也有利于优化数据传输,从而加快DMA传输过程。

Using cache to optimize DMA transmission

【技术实现步骤摘要】
利用缓存优化DMA传输
本申请涉及DMA传输技术,更具体地,涉及利用缓存优化DMA传输。
技术介绍
DMA(DirectMemoryAccess)是不依赖于CPU而在存储器之间直接搬移数据的技术。在多种电子设备中使用DMA技术。本申请中以固态存储设备为例,介绍所提供的利用缓存优化DMA传输的技术方案。图1展示了固态存储设备的框图。固态存储设备102同主机相耦合,用于为主机提供存储能力。主机同固态存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA(SerialAdvancedTechnologyAttachment,串行高级技术附件)、SCSI(SmallComputerSystemInterface,小型计算机系统接口)、SAS(SerialAttachedSCSI,串行连接SCSI)、IDE(IntegratedDriveElectronics,集成驱动器电子)、USB(UniversalSerialBus,通用串行总线)、PCIE(PeripheralComponentInterconnectExpress,PCIe,高速外围组件互联)、NVMe(NVMExpress,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与固态存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个NVM芯片105以及DRAM(DynamicRandomAccessMemory,动态随机访问存储器)110。NAND闪存、相变存储器、FeRAM(FerroelectricRAM,铁电存储器)、MRAM(MagneticRandomAccessMemory,磁阻存储器)、RRAM(ResistiveRandomAccessMemory,阻变存储器)等是常见的NVM。接口103可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。控制部件104用于控制在接口103、NVM芯片105以及DRAM110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件104可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件104可以是FPGA(Field-programmablegatearray,现场可编程门阵列)、ASIC(ApplicationSpecificIntegratedCircuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理IO(Input/Output)命令。控制部件104还可以耦合到DRAM110,并可访问DRAM110的数据。在DRAM可存储FTL表和/或缓存的IO命令的数据。通过例如DMA技术在主机与DRAM110之间传输IO命令的数据。控制部件104包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到NVM芯片105,并以遵循NVM芯片105的接口协议的方式向NVM芯片105发出命令,以操作NVM芯片105,并接收从NVM芯片105输出的命令执行结果。已知的NVM芯片接口协议包括“Toggle”、“ONFI”等。图2展示了现有技术的DMA传输的示意图。以主机与固态存储设备之间的DMA传输为例,通过DMA模块将主机存储器210中的数据,搬移到存储设备的设备存储器220。主机存储器210存储了要被DMA模块搬移到设备存储器220的数据。DMA模块根据DMA描述符(L1、L2、L3或L4),执行从主机存储器210到设备存储器220的数据搬移。DMA描述符包括多个条目,每个条目指示一次数据搬移。DMA描述符条目中指示例如源地址(例如,主机存储器210地址)、目的地址(例如,设备存储器220的地址)与传输的数据长度。以DMA描述符L2为例,其包括6个条目,参看图2,条目0指示从源地址0x0000开始,搬移长度为0x0800的数据到目的地址0x0800,条目1指示从源地址0x0800开始,搬移长度为0x04000的数据到目的地址0x2400。图2中指示存储器地址的数字均为16进制,为了简要的目的,省去了16进制数字前的“0x”标识。为了提高存储器的利用率,DMA描述符指示的要搬移数据,在主机存储器210与设备存储器220中都可以不连续的存储。利用DMA描述符L2指示的数据,在主机存储器210中被存储在3个区域,在设备存储器中被存储在6个区域(以横线阴影所示的区域)。然而在存储器中的多片数据,不利于数据传输的优化,为了每片数据的传输要为其提供DMA描述符条目,更多的DMA描述符条目增加了复杂度。继续参看图2,DMA描述符(L1、L2、L3或L4)各自由不同样式的阴影所指示。DMA描述符L1的图示中无阴影,DMA描述符L2的图示为横线所指示的阴影,DMA描述符L3的图示为竖线所指示的阴影,DMA描述符L4的图示为斜线所指示的阴影。在主机存储器210与设备存储器220中,用带有样式区域指示了该区域所对应的DMA描述符。例如,主机存储器210中,地址0x5000-0x5FFF区域的样式为无阴影,指示该区域存储的数据由DMA描述符L1所指示。设备存储器220还有部分区域未分配给DMA描述符(L1、L2、L3或L4)的任何一个,这些区域的图示为点所指示的阴影。在主机存储器210与设备存储器220中的数字,指示对应存储空间的大小。主机存储器210和/或设备存储器220各自包括多个存储器页,每页的大小为例如4KB。主机和/或存储设备的控制部件,生成DMA描述符,并提供DMA模块。若主机生成DMA描述符,则主机管理主机存储器210与设备存储器220的分配与释放;若存储设备生成DMA描述符,则存储设备的控制部件管理主机存储器210与设备存储器220的分配与释放;或者主机与存储设备协同生成DMA描述符,由主机管理自身的主机存储器210,而由设备的控制部件来管理自身的设备存储器220。
技术实现思路
本申请在缓存中为DMA描述符提供了连续的存储空间,避免了数据在存储设备中多片存储,从而在一些情况下减少了DMA描述符中条目数量,进而减小了生成DMA传输过程的复杂度;连续的存储空间也有利于优化数据传输,从而加快DMA传输过程。根据本申请的第一方面,提供了根据本申请第一方面的第一DMA设备,用于将数据从第一存储器搬移到第二存储器,包括:第一DMA模块、第二DMA模块和缓存;第一DMA模块根据第一DMA描述符将要传输的数据从第一存储器搬移至缓存;其中所述要传输的数据在所述缓存中被存储在连续的存储空间;第二DMA模块根据第二DMA描述符将所述要传输的数据从缓存搬移至第二存储器。根据本申请的第一方面的第一DMA设备,其中,所述要传输的数据在第二存储器中被存储在不本文档来自技高网
...

【技术保护点】
1.一种DMA设备,用于将数据从第一存储器搬移到第二存储器,包括:第一DMA模块、第二DMA模块和缓存;/n第一DMA模块根据第一DMA描述符将要传输的数据从第一存储器搬移至缓存;其中所述要传输的数据在所述缓存中被存储在连续的存储空间;/n第二DMA模块根据第二DMA描述符将所述要传输的数据从缓存搬移至第二存储器。/n

【技术特征摘要】
20180828 CN 20181098834081.一种DMA设备,用于将数据从第一存储器搬移到第二存储器,包括:第一DMA模块、第二DMA模块和缓存;
第一DMA模块根据第一DMA描述符将要传输的数据从第一存储器搬移至缓存;其中所述要传输的数据在所述缓存中被存储在连续的存储空间;
第二DMA模块根据第二DMA描述符将所述要传输的数据从缓存搬移至第二存储器。


2.根据权利要求1所述的DMA设备,其中,所述要传输的数据在第二存储器中被存储在不连续的存储空间。


3.根据权利要求1所述的DMA设备,其中,用IO命令中的DMA描述符指示的第一存储器的存储空间地址作为源地址,用在缓存中分配的存储空间地址作为目的地址,生成第一DMA描述符。


4.根据权利要求1至3之一所述的DMA设备,其中,用第一DMA描述符的目的地址作为源地址,用在第二存储器中分配的存储空间地址作为目的地址,生成第二DMA描述符。


5.根据权利要求1至3之一所述的DMA设备,其中,响应于第一DMA描述符所指示的数据传输完成,向第一存储器指示IO命令执行完成。


6.一种DMA设备...

【专利技术属性】
技术研发人员:黄好城王祎磊何振介百瑞
申请(专利权)人:上海天王星智能科技有限公司
类型:发明
国别省市:上海;31

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

1