DMA传输方法及系统技术方案

技术编号:7809347 阅读:162 留言:0更新日期:2012-09-27 08:09
提供了DMA传输方法及系统。一种在信息处理设备和存储设备之间进行数据传输的方法,所述存储设备包括缓冲存储器和闪存芯片,所述方法包括:接收第一写请求,所述第一写请求包括要写入的数据和用于所述存储设备的闪存芯片的地址;为所述第一写请求在所述信息处理设备中分配第一存储单元;向所述存储设备发送第一写命令,所述第一写命令中包括数据、用于所述存储设备的闪存芯片的地址以及用于所述缓冲存储器的地址;其中,所述用于缓冲存储器的地址同所述第一存储单元相对应;接收来自所述存储设备的消息,所述消息指示所述存储设备对所述写命令已执行完成;释放所述第一存储单元。

【技术实现步骤摘要】

本专利技术涉及固态存储设备(Solid Storage Device, SSD),更具体地,本专利技术涉及将数据通过DMA传输写入固态存储设备的方法及装置。
技术介绍
同机械式硬盘相类似,固态存储设备(SSD)也是用于计算机系统的大容量、非易失性存储设备。固态存储设备一般以闪存(Flash)作为存储介质。在中国专利文献CN102043689A中公开了如图13所示的固态存储设备。如图13所示,为目前一般的固态存储设备的功能框图。其中主要包括主机系统1301和固态存储设备1302。其中,固态存储设备1302包括接ロ模块1303,固态存储处理器1304,以及以Flash颗粒1305为单位组成 的Flash阵列1306。其中,接ロ模块1303主要用于实现与主机系统一致的接ロ协议,例如SATA (Serial Advanced Technology Atta chment,串行高级技术附件)、USB (UniversalSerial Bus,通用串行总线)、PCIE (Peripheral Component Interconnect Express,快速外围组件互连)、SCSI (Small Computer System Interface,小型计算机系统接ロ)、IDE(Integrated Drive Electro nics,集成驱动器电子)等。通过接ロ模块1303,固态存储设备呈现给主机系统的是一个拥有一定逻辑空间的标准存储设备。固态存储处理器1304是整个存储设备的控制核心,主要负责接ロ模块1303以及闪存阵列1306之间的控制信号及数据的传输、Flash管理、主机逻辑地址到Flash物理地址的转换或映射、损耗均衡(将逻辑地址映射到不同的物理地址从而防止单个Flash被过于集中地操作而提前失效)、坏块管理等。可由软件、硬件、固件或者其组合的多种方式实现固态存储处理器1304。1305为单个Flash颗粒,多个Flash颗粒1305组成Flash阵列1306。为提高固态存储设备的读、写速度,可以在固态存储设备中设置诸如DRAM或SRAM的随机访问存储器或其他类型的适于高速读/写操作的存储器,作为同闪存读写数据时的高速缓冲存储器。在存储设备访问过程中,作为ー个例子,计算机向存储设备发出SCSI(小型计算机系统接ロ)命令,存储设备接收并处理SCSI命令,依据SCSI命令所指示的操作执行相应的存储介质读写过程。在这ー过程中,SCSI命令并不直接操作高速缓冲存储器。SP,高速缓冲存储器对计算机或者用户是“透明”的。也有ー些存储设备提供了高速缓冲存储器的“清洗”机制,计算机或用户可使用预定的命令強制存储设备将高速缓冲存储器中的数据写入到非易失性存储介质(例如,磁盘或者闪存)中。然而,对高速缓冲存储器的分配和管理将成为固态存储设备上的控制器的工作负担。而且当高速缓冲存储器被完全占用后,如果固态存储设备接收到来自主机系统的新的访问请求,则还需要执行对高速缓冲存储器的替换操作。这样既増加了控制器的复杂度,又会让主机经历在读/写性能上的颠簸。在主机与设备之间还可以进行DMA (Direct Memory Access,直接存储器访问)传输。在中国专利文献CN101221544A中公开了执行DMA传输的方法和设备。DMA传输的ー个典型过程是分散/收集(Scatter/Gather)操作。分散/收集操作中,待传输的多个数据块存储在系统(主机)存储器的不连续的多个地址位置。处理器不需要为要从某一源移动到某一目的地的每个数据块对DMA控制器进行编程的操作。而是,处理器在系统存储器中建立描述符表或描述符链接表。描述符表或描述符链接表中包括ー组描述符。姆个描述符都描述了数据块移动方向、源地址、目的地地址以及可选的传输的字节数。在一个描述符中不包括传输字节数的情况下,可通过DMA方式传输约定长度的数据。
技术实现思路
因而,分担存储设备上的控制器的工作负担是有益的。通过将与存储设备的缓冲存储器有关的维护工作转移给主机,既减轻了存储设备的控制器的负载,也向主机提供了更灵活控制存储设备的能力。在本专利技术的第一实施例中,提供了一种在信息处理设备和存储设备之间进行DMA传输的方法,所述存储设备包括缓冲存储器和闪存芯片,所述方法包括 接收第一 IO请求;为所述第一 IO请求分配第一存储单元与第二存储单元;向所述存储设备发送所述第一 DMA描述符,所述第一 DMA描述符包括DMA主机地址、用于所述存储设备的闪存芯片的地址以及第一用于缓冲存储器的地址与第二用于缓冲存储器的地址,其中,所述第一用于缓冲存储器的地址同所述第一存储单元相对应,所述第ニ用于缓冲存储器的地址同所述第二存储单元相对应;在所述存储设备和所述信息处理设备之间依据所述第一 DMA描述符进行DMA传输;接收来自所述存储设备的消息,所述消息指示所述存储设备对第一 DMA描述符已执行完成;释放所述第一存储单元与所述第二存储单元。根据本专利技术的第一实施例,其中分配第一存储单元与第二存储单元进ー步包括,在所述第二存储单元中存储指向所述第一存储单元的地址。在本专利技术的第二实施例中提供了一种在信息处理设备和存储设备之间进行DMA传输的方法,所述存储设备包括缓冲存储器和闪存芯片,所述方法包括接收第一 IO请求;为所述第一 IO请求分配第一存储单元与第二存储单元;向所述存储设备发送所述第一 DMA描述符,所述第一 DMA描述符包括第一 DMA描述符命令和第一 DMA描述符数据,所述第一 DMA描述符命令包括用于所述存储设备的闪存芯片的地址以及第一用于缓冲存储器的地址,所述第一 DMA描述符数据包括DMA主机地址以及第二用于缓冲存储器的地址;其中,所述第一用于缓冲存储器的地址同所述第一存储単元相对应,所述第二用于缓冲存储器的地址同所述第二存储单元相对应;在所述存储设备和所述信息处理设备之间依据所述DMA主机地址和所述第二用于缓冲存储器的地址进行DMA传输;接收来自所述存储设备的消息,所述消息指示所述存储设备对第一 DMA描述符已执行完成;释放所述第一存储单元与所述第二存储单元。根据本专利技术的第一或第二实施例,其中,所述第一 IO请求指示将所述DMA主机地址处的数据写入到用于所述存储设备的闪存芯片的地址处。根据本专利技术的第一或第二实施例,还包括将空闲的存储单元链接在一起形成空闲存储单元资源池,在分配第一存储单元与第二存储单元时,从所述空闲存储单元资源池中取出空闲的存储单元,在释放所述第一存储单元与所述第二存储单元时,基于所述所述第一存储单元与所述第二存储单元插入到所述空闲存储单元资源池。根据本专利技术的第一或第二实施例,还包括将空闲的存储单元链接在一起形成空闲存储单元资源池,在分配第一存储单元与第二存储单元时,若所述空闲存储单元资源池为空,则等待一个或多个存储単元被插入到所述空闲存储单元资源池。在本专利技术的第三实施例中,提供了一种在信息处理设备和存储设备之间进行DMA传输的方法,所述存储设备包括缓冲存储器和闪存芯片,所述方法包括接收第一 IO请求; 为所述第一 IO请求分配第一存储单元、第二存储单元与第三存储单元;向所述存储设备发送所述第一 DMA描述符,所述第一 DMA描述符包括第一 DMA描述符命令、第一 DM本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种在信息处理设备和存储设备之间进行DMA传输的方法,所述存储设备包括缓冲存储器和闪存芯片,所述方法包括 接收第一 IO请求; 为所述第一 IO请求分配第一存储单元与第二存储单元; 向所述存储设备发送所述第一 DMA描述符,所述第一 DMA描述符包括用于信息处理设备的地址、用于所述存储设备的闪存芯片的地址以及第一用于缓冲存储器的地址与第二用于缓冲存储器的地址,其中,所述第一用于缓冲存储器的地址同所述第一存储单元相对应,所述第二用于缓冲存储器的地址同所述第二存储单元相对应; 在所述存储设备和所述信息处理设备之间依据所述第一 DMA描述符进行DMA传输; 接收来自所述存储设备的消息,所述消息指示所述存储设备对第一 DMA描述符已执行完成; 释放所述第一存储单元与所述第二存储单元。2.根据权利要求I所述的方法,其中分配第一存储单元与第二存储单元进ー步包括,在所述第二存储单元中存储指向所述第一存储单元的地址。3.一种在信息处理设备和存储设备之间进行DMA传输的方法,所述存储设备包括缓冲存储器和闪存芯片,所述方法包括 接收第一 IO请求; 为所述第一 IO请求分配第一存储单元与第二存储单元; 向所述存储设备发送所述第一 DMA描述符,所述第一 DMA描述符包括第一 DMA描述符命令和第一 DMA描述符数据,所述第一 DMA描述符命令包括用于所述存储设备的闪存芯片的地址以及第一用于缓冲存储器的地址,所述第一 DMA描述符数据包括用于信息处理设备的地址以及第ニ用于缓冲存储器的地址;其中,所述第一用于缓冲存储器的地址同所述第一存储单元相对应,所述第二用于缓冲存储器的地址同所述第二存储单元相对应; 在所述存储设备和所述信息处理设备之间依据所述用于信息处理设备的地址和所述第二用于缓冲存储器的地址进行DMA传输; 接收来自所述存储设备的消息,所述消息指示所述存储设备对第一 DMA描述符已执行完成; 释放所述第一存储单元与所述第二存储单元。4.根据权利要求1-3之一所述的方法,其中,所述第一IO请求指示将所述用于信息处理设备的地址处的数据写入到用于所述存储设备的闪存芯片的地址处。5.根据权利要求1-3之一所述的方法,还包括将空闲的存储单元链接在一起形成空闲存储单元池,在分配第一存储单元与第二存储单元时,从所述空闲存储单元池中取出空闲的存储单元,在释放所述第一存储单元与所述第二存储单元吋,将所述所述第一存储单元与所述第二存储单元插入到所述空闲存储单元池。6.根据权利要求1-5之一所述的方法,还包括将空闲的存储单元链接在一起形成空闲存储单元池,在分配第一存储单元与第二存储单元时,若所述空闲存储单元池为空,则等待一个或多个存储単元被插入到所述空闲存储单元池。7.一种在信息处理设备和存储设备之间进行DMA传输的方法,所述存储设备包括缓冲存储器和闪存芯片,所述方法包括接收第一 IO请求; 为所述第一 IO请求分配第一存储单元、第二存储单元与第三存储单元; 向所述存储设备发送所述第一 DMA描述符,所述第一 DMA描述符包括第一 DMA描述符命令、第一 DMA描述符数据和第二 DMA描述符数据,所述第一 DMA描述符命令包括用于所述存储设备的闪存芯片的地址以及第一用于缓冲存储器的地址,所述第一 DMA描述符数据包括第一用于信息处理设备的地址以及第ニ用于缓冲存储器的地址,所述第二 DMA描述符数据包括第二用于信息处理设备的地址以及第三用于缓冲存储器的地址;其中,所述第一用于缓冲存储器的地址同所述第一存储单元相对应,所述第二用于缓冲存储器的地址同所述第二存储单元相对应,所述第三用于缓冲存储器的地址同所述第三存储单元相对应; 在所述存储设备和所述信息处理设备之间依据所述第一用于信息处理设备的地址和所述第二用于缓冲存储器的地址进行DMA传输,以及依据所述第二用于信息处理设备的地址和所述第三用于缓冲存储器的地址进行DMA传输; 接收来自所述存储设备的消息,所述消息指示所述存储设备对第一 DMA描述符已执行完成; 释放所述第一存储单元、所述第二存储单元与所述第三存储单元。8.根据权利要求7所述的方法,所述第一IO请求指示将所述第一用于信息...

【专利技术属性】
技术研发人员:路向峰
申请(专利权)人:北京忆恒创源科技有限公司
类型:发明
国别省市:

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

1