将数据写入存储设备的方法与存储设备技术

技术编号:7786383 阅读:192 留言:0更新日期:2012-09-21 07:26
一种将数据写入存储设备的方法,所述存储设备包括缓冲存储器和闪存存储器,所述存储设备与主机可通信地连接,所述方法包括:从主机接收第一写入命令,所述第一写入命令包括要写入的数据、用于所述闪存存储器的地址以及用于所述缓冲存储器的地址;基于所述用于所述缓冲存储器的地址,将所述要写入的数据写入到所述缓冲存储器;基于用于所述闪存存储器的地址和用于所述缓冲存储器的地址,将所述缓冲存储器中的所述要写入的数据,写入到所述闪存存储器。

【技术实现步骤摘要】

本专利技术涉及固态存储设备(Solid Storage Device, SSD),更具体地,本专利技术涉及将数据写入固态存储设备中的随机访问存储器的方法及装置。
技术介绍
同机械式硬盘相类似,固态存储设备(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传输的方法和设备。D MA传输的一个典型过程是分散/收集(Scatter/Gather)操作。分散/收集操作中,待传输的多个数据块存储在系统(主机)存储器的不连续的多个地址位置。处理器不需要为要从某一源移动到某一目的地的每个数据块对DMA控制器进行编程的操作。而是,处理器在系统存储器中建立描述符表或描述符链接表。描述符表或描述符链接表中包括ー组描述符。每个描述符都描述了数据块移动方向、源地址、目的地地址以及可选的传输的字节数。在一个描述符中不包括传输字节数的情况下,可通过DMA方式传输约定长度的数据。
技术实现思路
因而,分担存储设备上的控制器的工作负担是有益的。通过将与存储设备的缓冲存储器有关的维护工作转移给主机,既减轻 了存储设备的控制器的负载,也向主机提供了更灵活控制存储设备的能力。 在本专利技术的一个实施例中,提供了ー种将数据写入存储设备的方法,所述存储设备包括缓冲存储器和闪存存储器,所述存储设备与信息处理设备可通信地连接,所述方法包括从信息处理设备接收第一 DMA描述符,所述DMA描述符包括用于所述信息处理设备的地址、用于所述闪存存储器的地址以及用于所述缓冲存储器的地址;当所述第一 DMA描述符指示DMA写操作吋,基于用于所述信息处理设备的地址和用于所述缓冲存储器的地址,以DMA传输方式从所述信息处理设备将第一数据写入到所述缓冲存储器;基于用于所述闪存存储器的地址和用于所述缓冲存储器的地址,将所述缓冲存储器中的所述第一数据,写入到所述闪存存储器。根据本专利技术的第一实施例,其中所述第一 DMA描述符包括第一 DMA描述符命令和第一 DMA描述符数据,所述第一 DMA描述符数据包括用于所述信息处理设备的地址和用于所述缓冲存储器的地址,所述DMA描述符命令包括用于所述闪存存储器的地址;所述方法还包括将所述第一 DMA描述符数据变换为第一 DMA微指令,所述第一 DMA微指令指示用于所述闪存存储器的地址、用于所述信息处理设备的地址以及用于所述缓冲存储器的地址;其中,当所述第一DMA微指令指示DMA写操作时,基于用于所述信息处理设备的地址和用于所述缓冲存储器的地址,以DMA传输方式从所述信息处理设备将第一数据写入到所述缓冲存储器;基于用于所述闪存存储器的地址和用于所述缓冲存储器的地址,将所述缓冲存储器中的所述第一数据,写入到所述闪存存储器。根据本专利技术的第一实施例,其中所述第一 DMA描述符包括第一 DMA描述符命令、第一 DMA描述符数据以及第ニ DMA描述符数据,所述第一 DMA描述符数据包括第一用于所述信息处理设备的地址和第一用于所述缓冲存储器的地址,所述第二 DMA描述符数据包括第ニ用于所述信息处理设备的地址和第二用于所述缓冲存储器的地址,所述DMA描述符命令包括用于所述闪存存储器的地址;所述方法还包括将所述第一 DMA描述符数据变换为第一 DMA微指令,将所述第二 DMA描述符数据变换为第二 DMA微指令,所述第一 DMA微指令指示第一用于所述闪存存储器的地址、第一用于所述信息处理设备的地址以及第一用于所述缓冲存储器的地址,所述第二 DMA微指令指示第二用于所述闪存存储器的地址、第二用于所述信息处理设备的地址以及第ニ用于所述缓冲存储器的地址,其中所述第二闪存存储器地址与所述第一闪存存储器地址相距预定偏移值;其中,当所述第一 DMA微指令指示DMA写操作时,基于第一用于所述信息处理设备的地址和第一用于所述缓冲存储器的地址,以DMA传输方式从所述信息处理设备将第一数据写入到所述缓冲存储器;当所述第二 DMA微指令指示DMA写操作时,基于第二用于所述信息处理设备的地址和第二用于所述缓冲存储器的地址,以DMA传输方式从所述信息处理设备将第二数据写入到所述缓冲存储器;基于第一用于所述闪存存储器的地址和第一用于所述缓冲存储器的地址,将所述缓冲存储器中的所述第一数据,写入到所述闪存存储器;基于第二用于所述闪存存储器的地址和第二用于本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种将数据写入存储设备的方法,所述存储设备包括缓冲存储器和闪存存储器,所述存储设备与信息处理设备可通信地连接,所述方法包括 从信息处理设备接收第一 DMA描述符,所述DMA描述符包括用于所述信息处理设备的地址、用于所述闪存存储器的地址以及用于所述缓冲存储器的地址; 当所述第一 DMA描述符指示DMA写操作时,基于用于所述信息处理设备的地址和用于所述缓冲存储器的地址,以DMA传输方式从所述信息处理设备将第一数据写入到所述缓冲存储器; 基于用于所述闪存存储器的地址和用于所述缓冲存储器的地址,将所述缓冲存储器中的所述第一数据,写入到所述闪存存储器。2.根据权利要求I所述的方法,其中所述第一DMA描述符包括第一 DMA描述符命令和第一 DMA描述符数据,所述第一 DMA描述符数据包括用于所述信息处理设备的地址和用于所述缓冲存储器的地址,所述第一 DMA描述符命令包括用于所述闪存存储器的地址;所述方法还包括 将所述第一 DMA描述符数据变换为第一 DMA微指令,所述第一 DMA微指令指示用于所述闪存存储器的地址、用于所述信息处理设备的地址以及用于所述缓冲存储器的地址; 其中,当所述第一 DMA微指令指示DMA写操作时,基于用于所述信息处理设备的地址和用于所述缓冲存储器的地址,以DMA传输方式从所述信息处理设备将第一数据写入到所述缓冲存储器; 基于用于所述闪存存储器的地址和用于所述缓冲存储器的地址,将所述缓冲存储器中的所述第一数据,写入到所述闪存存储器。3.根据权利要求I所述的方法,其中所述第一DMA描述符包括第一 DMA描述符命令、第一 DMA描述符数据以及第二 DMA描述符数据,所述第一 DMA描述符数据包括第一用于所述信息处理设备的地址和第一用于所述缓冲存储器的地址,所述第二 DMA描述符数据包括第二用于所述信息处理设备的地址和第二用于所述缓冲存储器的地址,所述第一 DMA描述符命令包括用于所述闪存存储器的地址;所述方法还包括 将所述第一 DMA描述符数据变换为第一 DMA微指令,将所述第二 DMA描述符数据变换为第二 DMA微指令,所述第一 DMA微指令指示第一用于所述闪存存储器的地址、第一用于所述信息处理设备的地址以及第一用于所述缓冲存储器的地址,所述第二 DMA微指令指示第二用于所述闪存存储器的地址、第二用于所述信息处理设备的地址以及第二用于所述缓冲存储器的地址,其中所述第二闪存存储器地址与所述第一闪存存储器地址相距预定偏移值; 其中,当所述第一 DMA微指令指示DMA写操作时,基于第一用于所述信息处理设备的地址和第一用于所述缓冲存储器的地址,以DMA传输方式从所述信息处理设备将第一数据写入到所述缓冲存储器;当所述第二 DMA微指令指示DMA写操作时,基于第二用于所述信息处理设备的地址和第二用于所述缓冲存储器的地址,以DMA传输方式从所述信息处理设备将第二数据写入到所述缓冲存储器; 基于第一用于所述闪存存储器的地址和第一用于所述缓冲存储器的地址,将所述缓冲存储器中的所述第一数据,写入到所述闪存存储器;基于第二用于所述闪存存储器的地址和第二用于所述缓冲存储器的地址,将所述缓冲存储器中的所述第二数据,写入到所述闪存存储器。4.根据权利要求1、2中的任何一项所述的方法,其中 当将所述第一数据写入到所述闪存存储器之后,向所述信息处...

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

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

1