停电时减少功耗的数据存储方法及数据存储设备与流程

文档序号:19417489发布日期:2019-12-14 01:04阅读:223来源:国知局
停电时减少功耗的数据存储方法及数据存储设备与流程

本发明涉及一种数据存储方法及数据存储设备,尤其,涉及减少停电时所使用的辅助功率。



背景技术:

近年来,计算机环境的范式(paradigm)正转变为能够随时随地使用计算机系统的普适计算(ubiquitouscomputing)。因此,移动电话、数码相机、笔记本电脑等便携式电子设备的使用急剧增加。由于非易失性闪存的集成化导致每字节(bit)的单价下降,使用闪存的存储设备的普及程度被扩大并取代了硬盘驱动器(hdd)。



技术实现要素:

(一)要解决的技术问题

为应对停电的情况,数据存储设备设有能够在内部产生辅助功率的辅助电源供应部。但是,为了增加所述辅助功率,数据存储设备的面积会增加或者成本上升,因此,需要减少停电时使用的辅助功率。

(二)技术方案

本发明的实施例的数据存储方法包括以下步骤:控制单元将要写入非易失性存储器的第一数据的属性值存储在指令队列中;当停电时,所述控制单元基于所述属性值判断所述第一数据是否为垃圾回收数据;以及所述控制单元基于所述第一数据是否为垃圾回收数据,将所述第一数据写入非易失性存储器中。

本发明的实施例的数据存储设备,包括:缓冲存储器,存储有数据;非易失性存储器;以及控制器,停电时根据所述数据是否为垃圾回收数据,将所述数据存储在所述非易失性存储器中。

(三)有益效果

根据本发明的实施例,停电时只能存储缓冲存储器中存储的数据中,除垃圾回收数据以外的剩余的数据。因此,存储数据的数量会减少,从而能够减少使用的辅助功率。并且,能够减少用于存储辅助功率的辅助电源供应部的尺寸,节省辅助电源供应部的制造成本。

附图说明

图1是例示本发明的实施例的数据处理系统的框图。

图2是例示图1中示出的控制器的框图。

图3是示出图1的缓冲存储器中存储的数据的示例的图。

图4是示出本发明的实施例的指令队列的示例的图。

图5是例示图1的非易失性存储器的框图。

图6是例示图5的存储单元阵列的结构的图。

图7a和图7b是示出图1的电源供应部的示例的图。

图8是示出本发明的实施例的控制单元的操作的流程图。

图9是示出本发明的实施例的控制单元的操作的流程图。

图10是示出本发明的实施例的控制单元的操作的流程图。

图11是示出本发明的实施例的控制单元的操作的流程图。

具体实施方式

下面,参照附图对本发明的具体实施例进行说明。

图1是例示本发明的实施例的数据处理系统1000的框图。参照图1,数据处理系统1000可以包括主机设备1100和数据存储设备1200。

主机设备1100可以是移动电话、mp3播放器、笔记本电脑、台式电脑、游戏机、电视、车载信息娱乐(in-vehicleinfotainment)系统等。

数据存储设备1200可以是存储通过主机设备1100访问的数据的存储器系统。数据存储设备1200可以由各种存储设备中的一种制造。例如,数据存储设备1200可以为固态硬盘(solidstatedrive,ssd)、mmc、emmc、rs-mmc、micro-mmc形态的多媒体卡(multimediacard)、sd、mini-sd、micro-sd形态的安全数字(securedigital)卡、通用串行总线(universalstoragebus,usb)存储设备、通用闪存存储(universalflashstorage,ufs)设备、个人电脑存储卡国际协会(personalcomputermemorycardinternationalassociation,pcmcia)卡形态的存储设备、外设部件互连标准(peripheralcomponentinterconnection,pci)卡形态的存储设备、pci-e(pciexpress)卡形态的存储设备、紧凑式闪存(compactflash,cf)卡、智能媒体(smartmedia)卡、记忆棒(memorystick)等各种存储设备中的一种。

数据存储设备1200可以包括控制器1210、缓冲存储器1220、非易失性存储器1231~123n及电源供应部1240。

控制器1210可以通过响应主机设备1100的请求来访问非易失性存储器1231~123n。

控制器1210可以与主机设备1100收发信号(sgl)。其中,信号(sgl)可以包含指令、地址、数据等。主机设备1100与数据存储设备1200的接口方式可以利用通用闪存(universalflashstorage,ufs)、并行高级技术附件(paralleladvancedtechnologyattachment,pata)、串行高级技术附件(serialadvancedtechnologyattachment,sata)、小型计算机系统接口(smallcomputersysteminterface,scsi)、串行连接小型计算机系统接口(serialattachedscsi,sas)、外设部件互连标准(peripheralcomponentinterconnection,pci)、pci-e(pciexpress)等。

缓冲存储器1220可以临时存储将存储于非易失性存储器1231~123n的数据。并且,缓冲存储器1220可以临时存储从非易失性存储器1231~123n读取的数据。临时存储在缓冲存储器1220中的数据可以根据控制器1210的控制传输至主机设备1100或非易失性存储器1231~123n。

非易失性存储器1231~123n可以用作数据存储设备1200的存储介质。非易失性存储器1231~123n可以分别通过多个信道ch1~chn与控制器1210连接。一个信道可以连接有一个或一个以上的非易失性存储器。与一个信道连接的非易失性存储器可以与相同的信号总线及数据总线连接。

电源供应部1240可以向数据存储设备1200内部提供电源pwr。电源供应部1240可以包括辅助电源供应部1241。当停电即突然断电(suddenpoweroff)时,辅助电源供应部1241可以供应电源以使数据存储设备1200能够正常关闭。

图2是例示图1中示出的控制器1210的框图。参照图2,控制器1210可以包括存储器接口单元1211、主机接口单元1212、错误校正码(ecc)单元1213、控制单元1214及随机存取存储器1215。

存储器接口单元1211可以向非易失性存储器1231~123n提供指令及地址等控制信号。并且,存储器接口单元1211可以与非易失性存储器1231~123n收发数据。存储器接口单元1211可以根据控制单元1214的控制,将从缓冲存储器1220传递的数据传输至各信道ch1~chn。并且,存储器接口单元1211可以根据控制单元1214的控制,将从非易失性存储器1231~123n读取的数据传递至缓冲存储器1220。

主机接口单元1212可以应对主机设备1100的协议,提供与数据存储设备1200的接口。例如,主机接口单元1212可以通过通用闪存(universalflashstorage,ufs)、并行高级技术附件(paralleladvancedtechnologyattachment,pata)、串行高级技术附件(serialadvancedtechnologyattachment,sata)、小型计算机系统接口(smallcomputersysteminterface,scsi)、串行连接小型计算机系统接口(serialattachedscsi,sas)、外设部件互连标准(peripheralcomponentinterconnection,pci)、pci-e(pciexpress)协议中的任一种来与主机设备1100通信。并且,主机接口单元1212可以执行磁盘仿真(diskemulation)功能,该功能支持主机设备1100将数据存储设备1200识别为硬盘驱动器(hdd)。

错误校正码(ecc)单元可以生成存储于缓冲存储器1220的数据中将要传输至非易失性存储器1231~123n的数据的奇偶校验数据。所生成的奇偶校验数据可以与数据一起存储在非易失性存储器1231~123n中。错误校正码(ecc)单元1213可以检测从非易失性存储器1231~123n读取的数据的错误。当检测到的错误在校正范围以内时,错误校正码(ecc)单元1213可以校正检测到的错误。

控制单元1214可以分析并处理通过主机设备1100输入的信号sgl。控制单元1214可以根据用于驱动数据存储设备1200的固件或软件,控制缓冲存储器1220以及非易失性存储器1231~123n的操作。随机存取存储器1215可以用作驱动所述固件或软件的操作存储器。

当电源发生问题时,控制单元1214判断缓冲存储器1220中存储的数据是否为垃圾回收数据。当数据为垃圾回收数据时不存储数据,只有在不是垃圾回收数据的情况下存储数据。因此,当发生电源问题时,只能存储缓冲存储器1220中存储的数据的一部分,因此,能够减少使用的辅助功率。

图3是示出图1的缓冲存储器1220中存储的数据的示例的图。缓冲存储器1220的左侧的radd1~radd_k+2表示缓冲存储器1220的地址。下面,将缓冲存储器1220的地址称为缓冲地址。

参照图3,缓冲存储器1220中存储的数据可以包括主机数据和垃圾回收数据(gcdata)。本说明书中,主机数据是从主机设备1100传输并临时存储在缓冲存储器1220中的数据,并且是将要写入非易失性存储器1231~123n的数据。垃圾回收数据是指在执行后述的垃圾回收功能时,将移动到空块的有效数据。

为了记录而从主机设备1100传递至数据存储设备1200的数据,在完成写入至非易失性存储器1231~123n并具有非易失性状态之前处于数据路径的飞行态(in-flight)。为了获得更快的性能,中间飞行态可以包括数据存储设备1200中包含的缓冲存储器1220、控制器1210的内部的随机存取存储器1215、数据总线或接口、非易失性存储器1231~123n的内部电路等。图3的主机数据可以是所述飞行态(in-flight)中的数据。在主机设备1100与数据存储设备1200之间收发指令的数据存储设备1200的接口层在响应从主机设备1100确认接收数据之后,经过所有数据的移动步骤完成写入为止需要预定的时间。当响应接收数据之后,在移动过程中停电时,主机设备1100识别为完成写入的数据中发生一致性或完整性(dataintegrity)错误,这可能引起主机设备1100的致命错误。本实施例中,停电时通过设置在数据存储设备1200内部的额外的电源(辅助电源供应部1241)完成主机数据的写入,对垃圾回收数据可以不执行写入。

图4是示出包含将在图2的控制单元1214中进行处理的指令和地址的指令队列的示例的图。指令队列可以存储在随机存取存储器1215中,随机存取存储器1215可以为静态随机存取存储器(sram)。例如,指令队列可以包含指令区1221和属性区1222。

指令区1221依次存储将在控制单元1214中执行的指令,例如,写入指令。例如,图3的控制单元1214依次执行第一指令(cmd1)、第二指令(cmd2)、…第k+2指令(cmd_k+2)。其中,指令区1221中也可以一起存储与各指令(cmd1~cmd_k+2)对应的缓冲地址(radd1~radd_k+2)和非易失性存储器1231~123n的地址(nadd1~nadd_k+2、存储器地址)。因此,控制单元1214可以从缓冲存储器1220读取数据,并将读取的数据写入非易失性存储器1231~123n中。

属性区1222中存储对应的缓冲地址中存储的数据的属性值。例如,当图4的指令队列的第一行中存储缓冲地址(radd1),图3的缓冲存储器1220的缓冲地址(radd1)中存储主机数据时,属性区1222的第一行中可以存储0的属性值。并且,当图4的指令队列的第二行中存储缓冲地址(radd2),图3的缓冲存储器1220的缓冲地址(radd2)中存储垃圾回收数据时,属性区1222的第二行中可以存储1的属性值。通过所述方式属性区1222的第k行以及第k+2行中可以存储1的属性值,第k+1行中可以存储0的属性值。所述属性值仅仅为示例,可以设置为其他值。

控制单元1214基于属性区1222中存储的属性值确定对应的指令的执行与否。例如,当属性值为0时,控制单元1214执行对应的指令,当属性值为1时,所述控制单元1214不执行对应的指令而可以从指令队列中删除对应的指令。

图5是图1的非易失性存储器1231的框图。图4中代表示出非易失性存储器1231~123n中的非易失性存储器1231,但是,剩余的非易失性存储器1232~123n也可以具有与非易失性存储器1231相同的结构。

参照图5,非易失性存储器1231可以包括存储单元阵列2310、行解码器2320、列解码器2330、数据读取/写入块2340、电压发生器2350及控制逻辑2360。

存储单元阵列2310可以包含排列在字线(wl1~wlm)和位线(bl1~bll)彼此交叉的区域中的存储单元(mc)。

行解码器2320可以通过字线(wl1~wlm)与存储单元阵列2310连接。行解码器2320可以根据控制逻辑2360的控制执行操作。行解码器2320可以解码从外部设备(未示出)提供的地址。行解码器2320可以根据解码结果选择字线(wl1~wlm)并驱动。例如,行解码器2320可以将从电压发生器2350提供的字线电压提供至字线(wl1~wlm)。

数据读取/写入块2340可以通过位线(bl1~bll)与存储单元阵列连接2310。数据读取/写入块2340可以包含与位线(bl1~bll)分别对应的读取/写入电路(rw1~rwl)。数据读取/写入块2340可以根据控制逻辑2360的控制执行操作。数据读取/写入块2340可以根据操作模式,作为写入驱动器或读出放大器(senseamplifier)进行操作。例如,数据读取/写入块2340可以在写入(程序)操作时,作为将从外部设备提供的数据存储至存储单元阵列2310的写入驱动器执行操作。作为另一个例子,数据读取/写入块2340可以在读取操作时,作为从存储单元阵列2310读出数据的读出放大器执行操作。

列解码器2330可以根据控制逻辑2360的控制执行操作。列解码器2330可以解码从外部设备提供的地址。列解码器2330可以根据解码结果,连接与各位线(bl1~bln)对应的数据读取/写入块2340的读取/写入电路(rw1~rwn)和数据输入输出线(或者数据输入输出缓冲区(buffer)。

电压发生器2350可以产生用于非易失性存储器1231的内部操作的电压。通过电压发生器2350产生的电压可以施加于存储单元阵列2310的存储单元。例如,程序操作时产生的程序电压可以施加于要执行程序操作的存储单元的字线上。作为另一个例子,擦除操作时产生的擦除电压可以施加于要执行擦除操作的存储单元的完善区(wellarea)。作为另一个例子,进行读取操作时产生的读取电压可以施加于要执行读取操作的存储单元的字线上。

控制逻辑2360可以根据从外部设备提供的控制信号,控制非易失性存储器1231的所有操作。例如,控制逻辑2360可以控制非易失性存储器1231的读取、写入、擦除操作等非易失性存储器1231的操作。

图6是示出图5的存储单元阵列2310的结构的图。

存储单元阵列2310包括多个块(bl0~blp),各块(bl0~blp)可以包括多个页面(page1~pageq)。非易失性存储器1231~123n中,读取和写入功能以页面为单位执行,删除功能以块为单位执行。

非易失性存储器1231~123n不支持覆盖(overwrite)功能。因此,为了更新非易失性存储器1231~123n的特定页面中存储的数据,将该页面所属的块内的有效数据(有效页面)复制到其他空块中,并删除该页面所属的块。这伴随着多个页面的复制(页面读取及写入)以及块的删除,因此,可能降低整个闪存的性能。

为了减少所述性能的降低,称为闪存转换层(flashtranslationlayer,ftl)的软件被利用在主机与闪存之间。ftl大致上由地址映射功能和垃圾回收功能组成。当从主机接收覆盖请求时,地址映射功能将数据记录在其他空页面而不是原页面,从而起到减少页面的复制以及删除计算的功能。为了实现地址映射功能,在静态随机存取存储器(sram)或动态随机存取存储器(dram)等另外的存储器内保持地址映射表。由此,从主机接收的逻辑地址映射到闪存的物理地址。虽然地址映射方法减少由覆盖引起的不必要的读取、写入、删除计算,但是,可能产生多个存储有相比最新数据更愿意存储旧数据的页面(无效页面)。

为了防止由无效页面引起的闪存空间的浪费,ftl需要周期性地删除无效页面,所述ftl功能被称为垃圾回收功能。

垃圾回收功能执行选择所有闪存块中的特定块(替换块)之后,将选择的块内的有效页面复制到其他块的空页面的过程。无效页面存储旧数据,因此,从复制对象中排除。在所有的有效页面被复制到其他块之后,被选择的块(替换块)可以被删除,删除块之后,替换块内的所有页面成为空页面。因此,通过垃圾回收过程,可以回收被无效页面浪费的闪存空间。

当电源pwr出现问题时,数据存储设备1200只能利用辅助电源供应部1241中存储的辅助功率。辅助电源供应部1241中使用的电容提供数据存储设备1200的移动中的数据完成写入非易失性存储器1231~123n所需要的电荷量。所述电荷量根据移动中的数据的总量和数据存储设备1200的元件所使用的电流而确定,一般来说,可能需要几十毫秒(ms)。电容的成本对整个存储设备成本来说是不少的负担,因此,需要降低电容的成本。

本实施例中,当电源pwr出现问题时,控制器1210的控制单元1214仅将缓冲存储器1220中存储的数据中除垃圾回收数据以外的数据,例如,将主机数据存储至非易失性存储器1231~123n,从而能够减少使用的辅助功率的大小。由于垃圾回收数据处于留在非易失性存储器1231~123n的状态,即使没有将缓冲存储器1220中存储的垃圾回收数据写入非易失性存储器1231~123n,也不会影响数据完整性(dataintegrity),也不会发生地址映射的变更。因此,本实施例中,控制单元1214不执行垃圾回收数据的写入操作。

图7a和图7b是示出图1的电源供应部1240的示例的图。图7a示出常规操作时开关s1、s2的连接状态,图7b示出电源发生问题时开关s1、s2的连接状态。

参照图7a和图7b,电源供应部1240可以包括电源供应线psl、第一开关s1和第二开关s2及辅助电源供应部1241。辅助电源供应部1241可以包括多个电容c1、c2。图7a和7b中作为示例仅示出两个电容c1、c2,但是,电容的数量并不局限于此。

电源供应线psl将从主机设备1100提供的电源pwr提供至电源供应部1240内部。

第一开关s1进行切换(switching)使得控制器1210与电源供应线psl或辅助电源供应部1241中的任一个连接。例如,在常规操作时,如图7a所示,连接电源供应线psl与控制器1210,当电源出现问题时,如图7b所示,可以连接辅助电源供应部1241与控制器1210。

第二开关s2进行切换使得电源供应线psl与辅助电源供应部1241连接或断开。例如,在常规操作时,如图7a所示,连接电源供应线psl与辅助电源设备1241,当电源出现问题时,如图7b所示,可以断开电源供应线psl与辅助电源供应部1241的连接。

因此,当从主机设备1100正常供应电源pwr时,可以向控制器1210供应电源pwr,辅助电源供应部1241的电容c1、c2可以通过电源pwr进行充电。当从主机设备1100供应的电源pwr出现问题时,辅助电源供应部1241的电容c1、c2的充电被中断,充电至电容c1、c2的辅助功率可以被提供至控制器1210。

图8是示出本发明的实施例的控制单元1214的操作的流程图。

参照图8,控制单元1214判断是否停电(s100),当判断为停电时,进入下一个步骤(s100,是),当判断为没有停电时,结束(s100,不是)。控制单元1214可以通过直接检测电源pwr来检测是否停电,或者可以通过从检测停电的另外的单元接收表示停电的信号来判断是否停电。控制单元1214可以以预定的时间间隔来判断是否停电。

当判断为停电时(s100,是),控制单元1214初始化指令队列的地址(队列地址)(s200)。例如,指令队列的初始地址可以是指令队列的第一个地址或与停电当时正执行的指令对应的队列地址。

并且,控制单元1214从指令队列的初始地址读取属性值(s300)。

控制单元1214根据读取的属性值判断要写入的数据是否为垃圾回收数据(s400)。当要写入的数据为垃圾回收数据时(s400,是),控制单元1214从指令队列中删除对应的指令(s700)。当要写入的数据不是垃圾回收数据时(s400,否),控制单元1214判断对应指令是否为最终指令(s800)。当不是最终指令时(s800,否),增加队列地址(s900)。然后,与增加的队列地址对应的指令的处理方式与对指令队列的初始地址的处理方式相同。如上所述,控制单元1214删除指令队列的指令中,对应的数据为垃圾回收数据的指令,从而可以整理指令队列。最后,控制单元1214依次执行已整理的指令队列的指令(s1000),即从缓冲存储器1220读取数据,并将读取的数据写入非易失性存储器1231~123n之后结束步骤。

图9是示出本发明的实施例的控制单元1214的操作的流程图。

参照图9,判断停电的步骤(s1100)、队列地址的初始化(s1200)、读取指令队列中的属性值的步骤(s1300)及判断是否为垃圾数据的步骤(s1400)的操作与图8的s100、s200、s300及s400的操作相同。

当要写入的数据为垃圾回收数据时(s1400,是),控制单元1214不执行与初始地址对应的指令而从指令队列中删除对应的指令(s1700)。当要写入的数据不是垃圾回收数据时(s1400,否),控制单元1214执行与初始地址对应的指令,即从缓冲存储器1220读取数据,并将读取的数据写入非易失性存储器1231~123n中(s1500)。即只有在要写入的数据不是垃圾回收数据时,控制单元1214将对应的数据写入非易失性存储器1231~123n中。

然后,控制单元1214判断当前队列地址,即指令队列的初始地址是否为最终地址(s1800)。当当前队列地址为最终地址时(s1800,是),结束步骤,当当前队列地址不是最终地址时(s1800,否),增加队列地址(s1900)。然后,对增加的队列地址的处理方式与对指令队列的初始地址的处理方式相同。

图10是示出本发明的实施例的控制单元1214的操作的流程图。

参照图10,判断停电的步骤(s2100)的操作与图8的s100的操作相同。

本实施例中,控制单元1214判断停电当时是否在执行垃圾回收功能(s2110)。当判断为没有执行垃圾回收功能时(s2110,否),步骤(s2200、s2300、s2400、s2500、s2700、s2800及s2900)分别与图9的步骤(s1200、s1300、s1400、s1500、s1700、s1800及s1900)相同。

当判断为停电当时执行垃圾回收功能时(s2110,否),控制单元1214不判断要写入的数据是否为垃圾回收数据,从缓冲存储器1220读取数据,并将读取的数据写入非易失性存储器1231~123n中。

具体地,当判断为停电当时执行垃圾回收功能时(s2110,是),控制单元1214与步骤s2200相同地初始化队列地址(s2210)。

然后,控制单元1214执行初始队列地址的指令。即,控制单元1214从缓冲存储器1220读取数据,并将读取的数据写入非易失性存储器1231~123n中(s2510)。

然后,控制单元1214判断当前的队列地址,即初始队列地址是否为最终地址(s2810)。当当前的队列地址为最终地址时(s2810,是),控制单元1214将结束步骤,当当前的队列地址不是最终地址时(s2810,否),增加队列地址(s2900)。然后,对增加的队列地址的处理与对初始队列地址的处理相同。

本实施例中,当停电当时正在执行垃圾回收功能时,控制单元1214存储缓冲存储器1220中存储的所有数据,从而完成垃圾回收功能,当停电当时没有执行垃圾回收功能时,控制单元1214只存储缓冲存储器1220中存储的数据中除垃圾回收数据以外的数据。因此,在执行垃圾回收功能时停电时,使垃圾回收功能完成,从而能够提高垃圾回收功能的效率。

图11是示出本发明的实施例的控制单元1214的操作的流程图。

本实施例与图9的实施例相比,还包括判断是否为向主机设备110请求响应的指令(直写(write-through)指令)的步骤(s3410)。

主机设备1100的写入指令包含不请求响应的常规的写入指令和在完成写入操作之后请求响应的直写指令。对于直写指令,在如金融交易等指令的结束与否很重要时,可以由主机设备1100发出。本实施例中,当判断为不是垃圾数据时(s3400),控制单元1214进一步判断当前的队列地址的指令是否为直写指令(s3410)。当当前的队列地址的指令为直写指令时(s3410,是),执行对应的指令(s3500),当当前的队列地址的指令不是直写指令而是常规的写入指令时(s3410,否),不执行对应的指令而删除对应的指令(s3700)。

本实施例中,在判断要写入的数据是否为垃圾回收数据(s3400)之后,判断指令是否为直写指令(s3410),但是,本发明的范围并不局限于此。例如,首先可以判断指令是否为直写指令(s3410)之后,判断要写入的指令是否为垃圾回收数据(s3400),或者,也可以同时执行判断要写入的数据是否为垃圾回收数据(3400)以及判断指令是否为直写指令(s3410)。

因此,根据本实施例,可以进一步减少执行的指令数量,因此,可以进一步减少停电时消耗的辅助功率。

以上,通过具体实施例对本发明进行了说明,但是,在本发明的范围或技术思想范围内,本发明可以变形为各种形态,这对于本领域的普通技术人员来说是容易理解的。因此,本发明的范围不应局限于所述实施例,而通过权利要求书以及与其等同物来确定。

例如,在图9至图11中记载为,当要写入的数据判断为垃圾回收数据时(s1400、s2400或s3400,是),控制单元1214删除对应的指令(s1700、s2700或s3700)。但是,控制单元1214也可以将对应的指令保留在指令队列中并跳过对应的指令。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1