首页> 中国专利> 存储器的数据整理方法、存储器存储装置及控制电路单元

存储器的数据整理方法、存储器存储装置及控制电路单元

摘要

本发明提供一种存储器的数据整理方法、存储器存储装置及存储器控制电路单元,其用于包括可复写式非易失性存储器模块的存储器存储装置。所述存储器的数据整理方法包括:从主机系统接收指令,其中指令包括数据区间;根据数据区间的多个逻辑区块地址的逻辑估计值及逻辑区块地址映射的多个实体抹除单元的实体估计值计算数据散乱度;以及根据数据散乱度与阀值判断是否执行数据整理操作以根据逻辑区块地址搬移实体抹除单元中的数据。

著录项

  • 公开/公告号CN113312274A

    专利类型发明专利

  • 公开/公告日2021-08-27

    原文格式PDF

  • 申请/专利权人 群联电子股份有限公司;

    申请/专利号CN202010125393.4

  • 发明设计人 陈国荣;

    申请日2020-02-27

  • 分类号G06F12/02(20060101);G06F11/10(20060101);

  • 代理机构11205 北京同立钧成知识产权代理有限公司;

  • 代理人罗英;刘芳

  • 地址 中国台湾苗栗县竹南镇群义路1号

  • 入库时间 2023-06-19 12:22:51

说明书

技术领域

本发明涉及一种存储器数据整理技术,尤其涉及一种存储器的数据整理方法、存储器存储装置及存储器控制电路单元。

背景技术

数码相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器模块(rewritable non-volatilememory module)(例如,快闪存储器)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种可携式多媒体装置中。

然而,若来自于主机系统的写入数据属于不连续的数据,例如,写入数据属于不连续的逻辑子单元,则一个逻辑单元中的逻辑子单元可能会映射至不同的实体抹除单元的实体程序化单元。在此情况下,当主机系统欲读取属于一个逻辑单元中对应连续地址的多个逻辑子单元的数据时,控制器可能需载入不同的逻辑-实体映射表来找出分散在不同的实体抹除单元的多个实体程序化单元。之后,控制器需再发送多个读取指令以从这些分散的实体程序化单元中读取数据,以至于耗费相当长的时间来执行读取操作,而造成数据读取速度变慢。

发明内容

本发明提供一种存储器的数据整理方法、存储器存储装置及存储器控制电路单元,其可判断是否需要进行数据整理操作。

本发明的实施例提供一种存储器的数据整理方法用于包括可复写式非易失性存储器模块的存储器存储装置。所述存储器的数据整理方法包括:从主机系统接收指令,其中所述指令包括数据区间;根据所述数据区间的多个逻辑区块地址的逻辑估计值及所述逻辑区块地址映射的多个实体抹除单元的实体估计值计算数据散乱度;以及根据所述数据散乱度与阀值判断是否执行数据整理操作以根据所述逻辑区块地址搬移所述实体抹除单元中的数据。

在本发明的一实施例中,所述指令包括碎片重组指令。

在本发明的一实施例中,根据所述数据区间的所述逻辑区块地址的所述逻辑估计值及所述逻辑区块地址映射的所述实体抹除单元的所述实体估计值计算所述数据散乱度的步骤包括:根据所述数据区间的所述逻辑区块地址的数量、所述逻辑区块地址的容量与所述可复写式非易失性存储器模块的实体页面容量计算所述逻辑估计值;根据所述逻辑区块地址映射的所述实体抹除单元中的实体页面数量决定所述实体估计值;以及计算所述逻辑估计值与所述实体估计值的比值以决定所述数据散乱度。

在本发明的一实施例中,根据所述数据区间的所述逻辑区块地址的所述数量、所述逻辑区块地址的所述容量与所述可复写式非易失性存储器模块的所述实体页面容量计算所述逻辑估计值的步骤包括:根据所述逻辑区块地址的所述数量与所述逻辑区块地址的所述容量计算所述数据区间的数据容量;以及根据所述数据容量与所述可复写式非易失性存储器模块的所述实体页面容量计算所述逻辑估计值。

在本发明的一实施例中,根据所述数据散乱度与所述阀值判断是否执行所述数据整理操作以根据所述逻辑区块地址搬移所述实体抹除单元中的数据的步骤包括:在所述数据散乱度不大于第一阀值时根据所述逻辑区块地址执行所述数据整理操作。

在本发明的一实施例中,根据所述数据区间的所述逻辑区块地址的所述逻辑估计值及所述逻辑区块地址映射的所述实体抹除单元的所述实体估计值计算所述数据散乱度的步骤包括:根据所述数据区间的所述逻辑区块地址对应的逻辑页面数量决定所述逻辑估计值;根据所述逻辑区块地址映射的所述实体抹除单元所对应的实体平面数量决定所述实体估计值;以及根据所述逻辑估计值与所述实体估计值计算所述数据散乱度。

在本发明的一实施例中,根据所述数据散乱度与所述阀值判断是否执行所述数据整理操作以根据所述逻辑区块地址搬移所述实体抹除单元中的数据的步骤包括:根据所述数据散乱度与第三阀值计算第二阀值;以及在所述逻辑区块地址映射的所述实体抹除单元所对应的其中之一实体平面中配置的页面数量不小于所述第二阀值时,根据所述逻辑区块地址执行所述数据整理操作。

本发明提出一种存储器存储装置,包括连接接口单元、可复写式非易失性存储器模块以及存储器控制电路单元。所述连接接口单元用以耦接至主机系统。所述存储器控制电路单元耦接至所述连接接口单元与所述可复写式非易失性存储器模块。所述存储器控制电路单元用以从所述主机系统接收指令,其中所述指令包括数据区间。所述存储器控制电路单元还用以根据所述数据区间的多个逻辑区块地址的逻辑估计值及所述逻辑区块地址映射的多个实体抹除单元的实体估计值计算数据散乱度。并且所述存储器控制电路单元还用以根据所述数据散乱度与阀值判断是否执行数据整理操作以根据所述逻辑区块地址搬移所述实体抹除单元中的数据。

在本发明的一实施例中,所述指令包括碎片重组指令。

在本发明的一实施例中,所述存储器控制电路单元还用以根据所述数据区间的所述逻辑区块地址的所述逻辑估计值及所述逻辑区块地址映射的所述实体抹除单元的所述实体估计值计算所述数据散乱度的操作包括:根据所述数据区间的所述逻辑区块地址的数量、所述逻辑区块地址的容量与所述可复写式非易失性存储器模块的实体页面容量计算所述逻辑估计值;根据所述逻辑区块地址映射的所述实体抹除单元中的实体页面数量决定所述实体估计值;以及计算所述逻辑估计值与所述实体估计值的比值以决定所述数据散乱度。

在本发明的一实施例中,根据所述数据区间的所述逻辑区块地址的所述数量、所述逻辑区块地址的所述容量与所述可复写式非易失性存储器模块的所述实体页面容量计算所述逻辑估计值的操作包括:根据所述逻辑区块地址的所述数量与所述逻辑区块地址的所述容量计算所述数据区间的数据容量;以及根据所述数据容量与所述可复写式非易失性存储器模块的所述实体页面容量计算所述逻辑估计值。

在本发明的一实施例中,所述存储器控制电路单元还用以根据所述数据散乱度与所述阀值判断是否执行所述数据整理操作以根据所述逻辑区块地址搬移所述实体抹除单元中的数据的操作包括:在所述数据散乱度不大于第一阀值时根据所述逻辑区块地址执行所述数据整理操作。

在本发明的一实施例中,所述存储器控制电路单元还用以根据所述数据区间的所述逻辑区块地址的所述逻辑估计值及所述逻辑区块地址映射的所述实体抹除单元的所述实体估计值计算所述数据散乱度的操作包括:根据所述数据区间的所述逻辑区块地址对应的逻辑页面数量决定所述逻辑估计值;根据所述逻辑区块地址映射的所述实体抹除单元所对应的实体平面数量决定所述实体估计值;以及根据所述逻辑估计值与所述实体估计值计算所述数据散乱度。

在本发明的一实施例中,其中所述存储器控制电路单元还用以根据所述数据散乱度与所述阀值判断是否执行所述数据整理操作以根据所述逻辑区块地址搬移所述实体抹除单元中的数据的操作包括:根据所述数据散乱度与第三阀值计算第二阀值;以及在所述逻辑区块地址映射的所述实体抹除单元所对应的其中之一实体平面中配置的页面数量不小于所述第二阀值时,根据所述逻辑区块地址执行所述数据整理操作。

本发明提出一种存储器控制电路单元,用于控制包括可复写式非易失性存储器模块的存储器存储装置,且所述存储器控制电路单元包括主机接口、存储器接口以及存储器管理电路。所述主机接口用以耦接至主机系统。所述存储器接口用以耦接至所述可复写式非易失性存储器模块。所述存储器管理电路耦接至所述主机接口与所述存储器接口。所述存储器控制电路单元用以从所述主机系统接收指令,其中所述指令包括数据区间。所述存储器控制电路单元还用以根据所述数据区间的多个逻辑区块地址的逻辑估计值及所述逻辑区块地址映射的多个实体抹除单元的实体估计值计算数据散乱度。并且所述存储器控制电路单元还用以根据所述数据散乱度与阀值判断是否执行数据整理操作以根据所述逻辑区块地址搬移所述实体抹除单元中的数据。

在本发明的一实施例中,所述指令包括碎片重组指令。

在本发明的一实施例中,所述存储器控制电路单元还用以根据所述数据区间的所述逻辑区块地址的所述逻辑估计值及所述逻辑区块地址映射的所述实体抹除单元的所述实体估计值计算所述数据散乱度的操作包括:根据所述数据区间的所述逻辑区块地址的数量、所述逻辑区块地址的容量与所述可复写式非易失性存储器模块的实体页面容量计算所述逻辑估计值;根据所述逻辑区块地址映射的所述实体抹除单元中的实体页面数量决定所述实体估计值;以及计算所述逻辑估计值与所述实体估计值的比值以决定所述数据散乱度。

在本发明的一实施例中,根据所述数据区间的所述逻辑区块地址的所述数量、所述逻辑区块地址的所述容量与所述可复写式非易失性存储器模块的所述实体页面容量计算所述逻辑估计值的操作包括:根据所述逻辑区块地址的所述数量与所述逻辑区块地址的所述容量计算所述数据区间的数据容量;以及根据所述数据容量与所述可复写式非易失性存储器模块的所述实体页面容量计算所述逻辑估计值。

在本发明的一实施例中,所述存储器控制电路单元还用以根据所述数据散乱度与所述阀值判断是否执行所述数据整理操作以根据所述逻辑区块地址搬移所述实体抹除单元中的数据的操作包括:在所述数据散乱度不大于第一阀值时根据所述逻辑区块地址执行所述数据整理操作。

在本发明的一实施例中,所述存储器控制电路单元还用以根据所述数据区间的所述逻辑区块地址的所述逻辑估计值及所述逻辑区块地址映射的所述实体抹除单元的所述实体估计值计算所述数据散乱度的操作包括:根据所述数据区间的所述逻辑区块地址对应的逻辑页面数量决定所述逻辑估计值;根据所述逻辑区块地址映射的所述实体抹除单元所对应的实体平面数量决定所述实体估计值;以及根据所述逻辑估计值与所述实体估计值计算所述数据散乱度。

在本发明的一实施例中,所述存储器控制电路单元还用以根据所述数据散乱度与所述阀值判断是否执行所述数据整理操作以根据所述逻辑区块地址搬移所述实体抹除单元中的数据的操作包括:根据所述数据散乱度与第三阀值计算第二阀值;以及在所述逻辑区块地址映射的所述实体抹除单元所对应的其中之一实体平面中配置的页面数量不小于所述第二阀值时,根据所述逻辑区块地址执行所述数据整理操作。

基于上述,本发明的实施例所提供的存储器的数据整理方法、存储器存储装置及存储器控制电路单元,可根据指令包括的数据区间的多个逻辑区块地址的逻辑估计值及逻辑区块地址映射的多个实体抹除单元的实体估计值计算数据散乱度,并比较数据散乱度与阀值,以判断数据为集中或分散。藉此,可决定此数据区间是否需要进行数据整理操作,并进而提升读取数据的速度。

附图说明

图1是根据一范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图;

图2是根据另一范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图;

图3是根据另一范例实施例所示出的主机系统与存储器存储装置的示意图;

图4是根据本发明的一范例实施例所示出的存储器存储装置的概要方块图;

图5是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图;

图6与图7是根据本发明的一范例实施例所示出的管理实体区块的范例示意图;

图8是根据本发明的一范例实施例所示出的存储器的数据整理方法的流程图;

图9是根据本发明的一范例实施例所示出的存储器的数据整理方法的流程图;

图10是根据本发明的一范例实施例所示出的存储器的数据整理方法的流程图。

附图标号说明

10、30:存储器存储装置

11、31:主机系统

110:系统总线

111:处理器

112:随机存取存储器

113:只读存储器

114:数据传输接口

12:输入/输出(I/O)装置

20:主机板

201:U盘

202:存储卡

203:固态硬盘

204:无线存储器存储装置

205:全球定位系统模块

206:网络接口卡

207:无线传输装置

208:键盘

209:屏幕

210:喇叭

32:SD卡

33:CF卡

34:嵌入式存储装置

341:嵌入式多媒体卡

342:嵌入式多芯片封装存储装置

402:连接接口单元

404:存储器控制电路单元

406:可复写式非易失性存储器模块

410(0)~410(N):实体抹除单元

502:存储器管理电路

504:主机接口

506:存储器接口

508:错误检查与校正电路

510:缓冲存储器

512:电源管理电路

602:数据区

604:闲置区

606:系统区

608:取代区

LBA(0)~LBA(H):逻辑区块地址

LZ(0)~LZ(M):逻辑区域

S802~S806,S902~S912,S1002~S1014:步骤。

具体实施方式

现将详细地参考本发明的示范性实施例,示范性实施例的实例说明于附图中。只要有可能,相同元件符号在附图和描述中用来表示相同或相似部分。

一般而言,存储器存储装置(亦称,存储器存储系统)包括可复写式非易失性存储器模块与控制器(亦称,控制电路单元)。通常存储器存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储器存储装置或从存储器存储装置中读取数据。

图1是根据一范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图。且图2是根据另一范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图。

请参照图1与图2,主机系统11一般包括处理器111、随机存取存储器(randomaccess memory,RAM)112、只读存储器(read only memory,ROM)113及数据传输接口114。处理器111、随机存取存储器112、只读存储器113及数据传输接口114皆耦接至系统总线(system bus)110。

在本范例实施例中,主机系统11是通过数据传输接口114与存储器存储装置10耦接。例如,主机系统11可经由数据传输接口114将数据写入至存储器存储装置10或从存储器存储装置10中读取数据。此外,主机系统11是通过系统总线110与I/O装置12耦接。例如,主机系统11可经由系统总线110将输出信号传送至I/O装置12或从I/O装置12接收输入信号。

在本范例实施例中,处理器111、随机存取存储器112、只读存储器113及数据传输接口114是可设置在主机系统11的主机板20上。数据传输接口114的数目可以是一或多个。通过数据传输接口114,主机板20可以经由有线或无线方式耦接至存储器存储装置10。存储器存储装置10可例如是U盘201、存储卡202、固态硬盘(Solid State Drive,SSD)203或无线存储器存储装置204。无线存储器存储装置204可例如是近距离无线通信(Near FieldCommunication Storage,NFC)存储器存储装置、无线传真(WiFi)存储器存储装置、蓝牙(Bluetooth)存储器存储装置或低功耗蓝牙存储器存储装置(例如,iBeacon)等以各式无线通信技术为基础的存储器存储装置。此外,主机板20也可以通过系统总线110耦接至全球定位系统(Global Positioning System,GPS)模块205、网络接口卡206、无线传输装置207、键盘208、屏幕209、喇叭210等各式I/O装置。例如,在一范例实施例中,主机板20可通过无线传输装置207存取无线存储器存储装置204。

在一范例实施例中,所提及的主机系统为可实质地与存储器存储装置配合以存储数据的任意系统。虽然在上述范例实施例中,主机系统是以电脑系统来作说明,然而,图3是根据另一范例实施例所示出的主机系统与存储器存储装置的示意图。请参照图3,在另一范例实施例中,主机系统31也可以是数码相机、摄影机、通信装置、音频播放器、视频播放器或平板电脑等系统,而存储器存储装置30可为其所使用的SD卡32、CF卡33或嵌入式存储装置34等各式非易失性存储器存储装置。嵌入式存储装置34包括嵌入式多媒体卡(embeddedMMC,eMMC)341和/或嵌入式多芯片封装(embedded Multi Chip Package,eMCP)存储装置342等各类型将存储器模块直接耦接于主机系统的基板上的嵌入式存储装置。

图4是根据本发明的一范例实施例所示出的存储器存储装置的概要方块图。请参照图4,存储器存储装置10包括连接接口单元402、存储器控制电路单元404与可复写式非易失性存储器模块406。

连接接口单元402用以将存储器存储装置10耦接至主机系统11。存储器存储装置10可通过连接接口单元402与主机系统11通信。在本范例实施例中,连接接口单元402是相容于串行高级技术附件(Serial Advanced Technology Attachment,SATA)标准。然而,必须了解的是,本发明不限于此,连接接口单元402亦可以是符合并行高级技术附件(Parallel Advanced Technology Attachment,PATA)标准、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)1394标准、高速周边零件连接接口(Peripheral Component Interconnect Express,PCI Express)标准、通用串行总线(Universal Serial Bus,USB)标准、SD接口标准、超高速一代(Ultra High Speed-I,UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、存储棒(MemoryStick,MS)接口标准、MCP接口标准、MMC接口标准、eMMC接口标准、通用快闪存储器(Universal Flash Storage,UFS)接口标准、eMCP接口标准、CF接口标准、整合式驱动电子接口(Integrated Device Electronics,IDE)标准或其他适合的标准。连接接口单元402可与存储器控制电路单元404封装在一个芯片中,或者连接接口单元402是布设于一包含存储器控制电路单元404的芯片外。

存储器控制电路单元404用以执行以硬件型式或固件型式实作的多个逻辑门或控制指令并且根据主机系统11的指令在可复写式非易失性存储器模块406中进行数据的写入、读取与抹除等运作。

可复写式非易失性存储器模块406是耦接至存储器控制电路单元404并且用以存储主机系统11所写入的数据。可复写式非易失性存储器模块406可以是单阶存储单元(Single Level Cell,SLC)NAND型快闪存储器模块(即,一个存储单元中可存储1个比特的快闪存储器模块)、多阶存储单元(Multi Level Cell,MLC)NAND型快闪存储器模块(即,一个存储单元中可存储2个比特的快闪存储器模块)、三阶存储单元(Triple Level Cell,TLC)NAND型快闪存储器模块(即,一个存储单元中可存储3个比特的快闪存储器模块)、四阶存储单元(Quad Level Cell,QLC)NAND型快闪存储器模块(即,一个存储单元中可存储4个比特的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存储器模块。

可复写式非易失性存储器模块406中的每一个存储单元是以电压(以下亦称为临界电压)的改变来存储一或多个比特。具体来说,每一个存储单元的控制栅极(controlgate)与通道之间有一个电荷捕捉层。通过施予一写入电压至控制栅极,可以改变电荷补捉层的电子量,进而改变存储单元的临界电压。此改变存储单元的临界电压的操作亦称为“把数据写入至存储单元”或“程序化(programming)存储单元”。随着临界电压的改变,可复写式非易失性存储器模块406中的每一个存储单元具有多个存储状态。通过施予读取电压可以判断一个存储单元是属于哪一个存储状态,藉此取得此存储单元所存储的一或多个比特。

在本范例实施例中,可复写式非易失性存储器模块406的存储单元可构成多个实体程序化单元,并且此些实体程序化单元可构成多个实体抹除单元。具体来说,同一条字线上的存储单元可组成一或多个实体程序化单元。若每一个存储单元可存储2个以上的比特,则同一条字线上的实体程序化单元可至少可被分类为下实体程序化单元与上实体程序化单元。例如,一存储单元的最低有效位(Least Significant Bit,LSB)是属于下实体程序化单元,并且一存储单元的最高有效位(Most Significant Bit,MSB)是属于上实体程序化单元。一般来说,在MLC NAND型快闪存储器中,下实体程序化单元的写入速度会大于上实体程序化单元的写入速度,和/或下实体程序化单元的可靠度是高于上实体程序化单元的可靠度。

在本范例实施例中,实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。例如,实体程序化单元可为实体页面(page)或是实体扇(sector)。若实体程序化单元为实体页面,则此些实体程序化单元可包括数据比特区与冗余(redundancy)比特区。数据比特区包含多个实体扇,用以存储使用者数据,而冗余比特区用以存储系统数据(例如,错误更正码等管理数据)。在本范例实施例中,数据比特区包含32个实体扇,且一个实体扇的大小为512字节(byte,B)。然而,在其他范例实施例中,数据比特区中也可包含8个、16个或数目更多或更少的实体扇,并且每一个实体扇的大小也可以是更大或更小。另一方面,实体抹除单元为抹除的最小单位。亦即,每一实体抹除单元含有最小数目之一并被抹除的存储单元。例如,实体抹除单元为实体区块(block)。

图5是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图。请参照图5,存储器控制电路单元404包括存储器管理电路502、主机接口504及存储器接口506。

存储器管理电路502用以控制存储器控制电路单元404的整体运作。具体来说,存储器管理电路502具有多个控制指令,并且在存储器存储装置10运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。以下说明存储器管理电路502的操作时,等同于说明存储器控制电路单元404的操作。

在本范例实施例中,存储器管理电路502的控制指令是以固件型式来实作。例如,存储器管理电路502具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器存储装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。

在另一范例实施例中,存储器管理电路502的控制指令亦可以代码型式存储于可复写式非易失性存储器模块406的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路502具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有开机码(boot code),并且当存储器控制电路单元404被致能时,微处理器单元会先执行此开机码来将存储于可复写式非易失性存储器模块406中的控制指令载入至存储器管理电路502的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。

此外,在另一范例实施例中,存储器管理电路502的控制指令亦可以一硬件型式来实作。例如,存储器管理电路502包括微控制器、存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路。存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路是耦接至微控制器。存储单元管理电路用以管理可复写式非易失性存储器模块406的存储单元或存储单元群组。存储器写入电路用以对可复写式非易失性存储器模块406下达写入指令序列以将数据写入至可复写式非易失性存储器模块406中。存储器读取电路用以对可复写式非易失性存储器模块406下达读取指令序列以从可复写式非易失性存储器模块406中读取数据。存储器抹除电路用以对可复写式非易失性存储器模块406下达抹除指令序列以将数据从可复写式非易失性存储器模块406中抹除。数据处理电路用以处理欲写入至可复写式非易失性存储器模块406的数据以及从可复写式非易失性存储器模块406中读取的数据。写入指令序列、读取指令序列及抹除指令序列可分别包括一或多个代码或指令码并且用以指示可复写式非易失性存储器模块406执行相对应的写入、读取及抹除等操作。在一范例实施例中,存储器管理电路502还可以下达其他类型的指令序列给可复写式非易失性存储器模块406以指示执行相对应的操作。

主机接口504是耦接至存储器管理电路502。存储器管理电路502可通过主机接口504与主机系统11通信。主机接口504可用以接收与识别主机系统11所传送的指令与数据。例如,主机系统11所传送的指令与数据可通过主机接口504来传送至存储器管理电路502。此外,存储器管理电路502可通过主机接口504将数据传送至主机系统11。在本范例实施例中,主机接口504是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口504亦可以是相容于PATA标准、IEEE 1394标准、PCI Express标准、USB标准、SD标准、UHS-I标准、UHS-II标准、MS标准、MMC标准、eMMC标准、UFS标准、CF标准、IDE标准或其他适合的数据传输标准。

存储器接口506是耦接至存储器管理电路502并且用以存取可复写式非易失性存储器模块406。也就是说,欲写入至可复写式非易失性存储器模块406的数据会经由存储器接口506转换为可复写式非易失性存储器模块406所能接受的格式。具体来说,若存储器管理电路502要存取可复写式非易失性存储器模块406,存储器接口506会传送对应的指令序列。例如,这些指令序列可包括指示写入数据的写入指令序列、指示读取数据的读取指令序列、指示抹除数据的抹除指令序列、以及用以指示各种存储器操作(例如,改变读取电压电平或执行垃圾收集操作等)的相对应的指令序列。这些指令序列例如是由存储器管理电路502产生并且通过存储器接口506传送至可复写式非易失性存储器模块406。这些指令序列可包括一或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或代码。例如,在读取指令序列中,会包括读取的识别码、存储器地址等信息。

在一范例实施例中,存储器控制电路单元404还包括错误检查与校正电路508、缓冲存储器510与电源管理电路512。

错误检查与校正电路508是耦接至存储器管理电路502并且用以执行错误检查与校正操作以确保数据的正确性。具体来说,当存储器管理电路502从主机系统11中接收到写入指令时,错误检查与校正电路508会为对应此写入指令的数据产生对应的错误更正码(error correcting code,ECC)和/或错误检查码(error detecting code,EDC),并且存储器管理电路502会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至可复写式非易失性存储器模块406中。之后,当存储器管理电路502从可复写式非易失性存储器模块406中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路508会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正操作。

缓冲存储器510是耦接至存储器管理电路502并且用以暂存来自于主机系统11的数据与指令或来自于可复写式非易失性存储器模块406的数据。电源管理电路512是耦接至存储器管理电路502并且用以控制存储器存储装置10的电源。

在一范例实施例中,图4的可复写式非易失性存储器模块406亦称为快闪(flash)存储器模块,且存储器控制电路单元404亦称为用于控制快闪存储器模块的快闪存储器控制器。在一范例实施例中,图5的存储器管理电路502亦称为快闪存储器管理电路。

图6与图7是根据本发明的一范例实施例所示出的管理实体区块的范例示意图。请参照图6,存储器控制电路单元404(或存储器管理电路502)会将实体抹除单元410(0)~410(N)逻辑地分组为数据区602、闲置区604、系统区606与取代区608。

逻辑上属于数据区602与闲置区604的实体抹除单元是用以存储来自于主机系统11的数据。具体来说,数据区602的实体抹除单元是被视为已存储数据的实体抹除单元,而闲置区604的实体抹除单元是用以替换数据区602的实体抹除单元。也就是说,当从主机系统11接收到写入指令与欲写入的数据时,存储器控制电路单元404(或存储器管理电路502)会使用从闲置区604中提取实体抹除单元来写入数据,以替换数据区602的实体抹除单元。

逻辑上属于系统区606的实体抹除单元是用以记录系统数据。例如,系统数据包括关于可复写式非易失性存储器模块的制造商与型号、可复写式非易失性存储器模块的实体抹除单元数、每一实体抹除单元的实体程序化单元数等。

逻辑上属于取代区608中的实体抹除单元是用于坏实体抹除单元取代程序,以取代损坏的实体抹除单元。具体来说,倘若取代区608中仍存有正常的实体抹除单元并且数据区602的实体抹除单元损坏时,存储器控制电路单元404(或存储器管理电路502)会从取代区608中提取正常的实体抹除单元来更换损坏的实体抹除单元。

特别是,数据区602、闲置区604、系统区606与取代区608的实体抹除单元的数量会根据不同的存储器规格而有所不同。此外,必须了解的是,在存储器存储装置10的运作中,实体抹除单元关联至数据区602、闲置区604、系统区606与取代区608的分组关系会动态地变动。例如,当闲置区604中的实体抹除单元损坏而被取代区608的实体抹除单元取代时,则原本取代区608的实体抹除单元会被关联至闲置区604。

请参照图7,存储器控制电路单元404(或存储器管理电路502)会配置逻辑区块地址LBA(0)~LBA(H)以映射数据区602的实体抹除单元,其中每一逻辑区块地址具有多个逻辑地址以映射对应的实体抹除单元的实体程序化单元。并且,当主机系统11欲写入数据至逻辑地址或更新存储于逻辑地址中的数据时,存储器控制电路单元404(或存储器管理电路502)会从闲置区604中提取一个实体抹除单元作为作动实体抹除单元来写入数据,以轮替数据区602的实体抹除单元。并且,当此作为作动实体抹除单元的实体抹除单元被写满时,存储器管理电路502会再从闲置区604中提取空的实体抹除单元作为作动实体抹除单元,以继续写入对应来自于主机系统1000的写入指令的更新数据。此外,当闲置区604中可用的实体抹除单元的数目小于预设值时,存储器管理电路502会执行垃圾收集(garbagecollection)操作(亦称为,有效数据合并操作)来整理数据区602中的有效数据,以将数据区602中无存储有效数据的实体抹除单元重新关联至闲置区604。

需先说明的是,以下说明存储器控制电路单元404的操作时,可视为说明存储器管理电路502的操作。

为了解决连续的数据散乱在不同的实体页面而造成数据读取速度变慢的问题,本实施例的存储器的数据整理方法用于包括可复写式非易失性存储器模块406的存储器存储装置10,可通过分析数据为集中或散乱来决定是否重整数据。在另一实施例中,还可通过分析数据是否均匀分布在各通道来决定是否重整数据。在又一实施例中,更可同时分析数据为集中或散乱,并分析数据是否均匀分布在各通道来决定是否重整数据。

存储器控制电路单元404从主机系统11接收指令。主机系统11传送的指令为碎片重组(defragment)指令,并且指令包括数据区间。此数据区间即是主机系统11判断需要进行数据整理操作的范围。

在本实施例中,存储器控制电路单元404从主机系统11接收指令后,可根据数据区间的多个逻辑区块地址(Logical Block Address,LBA)的逻辑估计值及这些逻辑区块地址映射的多个实体抹除单元的实体估计值计算数据散乱度。并且,存储器控制电路单元404可根据数据散乱度与一阀值判断是否执行数据整理操作以根据逻辑区块地址搬移实体抹除单元中的数据。存储器控制电路单元404执行数据整理操作,可根据逻辑区块地址将属于逻辑区块地址中连续的逻辑子单元分别映射的实体抹除单元复制至相同的实体抹除单元中。在此,连续的逻辑子单元是指其中一个逻辑子单元的逻辑区块地址是接续在另一个逻辑子单元的逻辑区块地址之后。换句话说,其中一个逻辑子单元的起始逻辑区块地址是接续在另一个逻辑子单元的结束逻辑区块地址之后。须注意的是,所属技术领域技术人员应当知晓如何执行数据整理操作,故在此便不赘述。

在第一实施例中,数据的散乱度是通过分析数据为集中或散乱来决定。亦即,通过判断数据对应的实体抹除单元实际分布在实体页面的实体页面数量来决定数据为集中或是散乱,并根据判断结果决定是否重整数据。

详细而言,假设一个实体页面的容量为16K,而存储器控制电路单元404从主机系统11接收到的指令包括的数据区间为一段连续逻辑行地址LCA(0)~LCA(7),总共8个4K的数据,即32K的数据。理想上32K的数据只需要用2个实体页面来存储。换句话说,在最小实体配置量的状况下,32K的数据排列分布在32/16=2个实体页面,存储器控制电路单元404只需要读取两次可复写式非易失性存储器模块406即可读取所有数据。然而若在最大实体配置量的状况下,32K的数据排列分布在32/4=8个实体页面,存储器控制电路单元404则需要读取八次可复写式非易失性存储器模块406才可读取所有数据,而会造成读取速度较慢。基此,本实施例提供的方法计算逻辑估计值与实体估计值,并根据逻辑估计值(即,最小实体配置量)与实体估计值(即,实际实体配置量)的比值决定数据散乱度,以判断数据为集中或散乱。并且将计算出的数据散乱度与一阀值(亦称第一阀值)比较以判断是否执行数据整理。于此,第一阀值例如预设为0.75或其他预设阀值,本发明不加以限制。

具体而言,存储器控制电路单元404从主机系统11接收指令后,可根据指令包括的数据区间的逻辑区块地址的逻辑区块数量、逻辑区块容量与可复写式非易失性存储器模块406的实体页面容量计算逻辑估计值。详细而言,存储器控制电路单元404根据逻辑区块数量与逻辑区块容量计算数据区间的数据容量,并根据数据容量与可复写式非易失性存储器模块406的实体页面容量计算逻辑估计值。

并且,存储器控制电路单元404根据逻辑区块地址映射的实体抹除单元中的实体页面数量决定实体估计值,其中每一逻辑区块地址具有多个逻辑地址以映射对应至实体抹除单元的实体区块地址(Physical Block Address,PBA)。

接着,存储器控制电路单元404计算逻辑估计值与实体估计值的比值以决定数据散乱度,并且根据数据散乱度与第一阀值判断是否执行数据整理操作以根据逻辑区块地址搬移实体抹除单元中的数据。详细而言,存储器控制电路单元404可判断数据散乱度是否不大于第一阀值,并在数据散乱度不大于第一阀值时根据逻辑区块地址执行数据整理操作。

举例来说,存储器控制电路单元404获取指令包括的数据区间中多个逻辑区块地址对应的逻辑区块数量、各逻辑区块的容量与可复写式非易失性存储器模块406的实体页面的容量,并根据以下方程式(1)、(2)计算逻辑估计值。并且,存储器控制电路单元404获取这些逻辑区块地址映射的多个实体抹除单元对应的实体页面的数量,并将实体页面数量设定为实体估计值。

逻辑区块数量×逻辑区块容量=数据容量 (1)

数据容量÷实体页面容量=逻辑估计值 (2)

以存储器控制电路单元404接收到包括的数据区间为一段连续逻辑行地址LCA(0)~LCA(7)的指令为例,其逻辑区块数量为8,逻辑页面容量假设为4K,实体页面容量假设为16K,并且逻辑行地址LCA(0)~LCA(7)映射的多个实体抹除单元中的实体页面的数量为3。据以,计算出的逻辑估计值为8×4÷16=2,而实体估计值为3。需说明的是,本发明并不限制逻辑页面容量以及实体页面容量,逻辑页面容量以及实体页面容量可依据不同规格的存储器存储装置而不同。在本实施例中,存储器控制电路单元404可计算出逻辑估计值与实体估计值的比值为2/3,即比例为0.66。由于计算出的比例为0.66(即,数据散乱度),小于第一阀值(在本实施例中例如是0.75),代表此数据区间的数据不够集中,因此必须执行数据整理操作。

在相同存储器存储装置的另一实施例中,逻辑行地址LCA(0)~LCA(7)映射的多个实体抹除单元对应的实体页面的数量为2,因此实体估计值为2。据以,存储器控制电路单元404可计算出逻辑估计值与实体估计值的比值为2/2,即比例为1。由于计算出的比例为1,大于第一阀值(在本实施例中例如是0.75),代表此数据区间的数据集中,因此不需要执行数据整理操作。

在第二实施例中,数据的散乱度是通过分析数据是否均匀分布在各通道来决定。亦即,通过判断数据对应的逻辑页面分布在平面上的数量是否平均来决定是否重整数据。

假设一个实体页面的容量为16K,而存储器控制电路单元404从主机系统11接收到的指令包括的数据区间为一段连续逻辑行地址LCA(0)~LCA(7),总共8个4K的数据,即32K的数据。理想上32K的数据只需要用2个实体页面来存储。而在较佳的状态下,此2个实体页面分布在不同实体平面上,表示每个实体平面上的数据平均。在此情况中,存储器控制电路单元404可在每个实体平面都读取到数据,读取效率较佳。反之,若此2个实体页面分布在相同实体平面上,表示每个实体平面上的数据集中,此情况中存储器控制电路单元404的读取效率较差。基此,本实施例提供的方法计算逻辑页面数量与实体平面数量决定数据散乱度,以判断每个实体平面包括的数据为集中或平均。并且将数据区间包括的逻辑区块地址映射的实体抹除单元所对应的其中之一实体平面中配置的页面数量与第二阀值比较,以判断是否执行数据整理。其中,此处页面数量指的是实体页面的数量。于此,第二阀值是通过第三阀值与数据散乱度来决定,第三阀值例如预设为2或其他预设阀值,本发明不加以限制。

具体而言,存储器控制电路单元404从主机系统11接收指令后,会根据指令包括的数据区间的逻辑区块地址对应的逻辑页面数量决定逻辑估计值。并且,存储器控制电路单元404根据逻辑区块地址映射的实体抹除单元所对应的实体平面数量决定实体估计值。接着,存储器控制电路单元404根据逻辑估计值与实体估计值计算数据散乱度,并且根据数据散乱度与第三阀值计算第二阀值。在逻辑区块地址映射的实体抹除单元所对应的其中之一实体平面中配置的页面数量不小于第二阀值时,存储器控制电路单元404根据逻辑区块地址执行数据整理操作。

详细而言,存储器控制电路单元404获取指令包括的数据区间中多个逻辑区块地址对应的逻辑页面数量,并设定为逻辑估计值。并且,存储器控制电路单元404获取这些逻辑区块地址映射的多个实体抹除单元所对应的实体平面数量,并设定为实体估计值。接着,存储器控制电路单元404依据以下方程式(3)、(4)计算数据散乱度。

逻辑估计值÷实体估计值=A (3)

逻辑估计值%实体估计值=B (4)

计算出的A设定为数据散乱度,表示数据平均的理想状况下,一个实体平面中配置的最小页面数量,计算出的A+B表示每个实体平面最佳的最大页面数量。而最不理想的状况是每个逻辑页面配置集中在相同的实体平面。本实施例会预设一第三阀值作为每个实体平面中配置的页面数量的容许阀值,而根据第三阀值与数据散乱度来决定第二阀值。

举例来说,以存储器控制电路单元404接收到包括的数据区间包括的多个逻辑区块地址对应的逻辑页面数量为17,而这些逻辑区块地址映射的多个实体抹除单元所对应的实体平面数量为4作为范例。亦即在本实施例中,逻辑估计值为17,而实体估计值为4。存储器控制电路单元404可根据方程式(3)计算出A=4,并计算出第二阀值为A+第三阀值(在本实施例中例如是2)=6。若存储器控制电路单元404判断数据区间包括的逻辑区块地址映射的实体抹除单元所对应的实体平面中配置的页面数量不小于6(即,第二阀值),表示数据过于集中在某些实体平面,则存储器控制电路单元404根据逻辑区块地址执行数据整理操作。反之,若存储器控制电路单元404判断数据区间包括的逻辑区块地址映射的实体抹除单元所对应的实体平面中配置的页面数量小于6(即,第二阀值),表示数据均匀分散在各实体平面,则存储器控制电路单元404不执行数据整理操作。

在第三实施例中,存储器控制电路单元404可同时使用第一实施例及第二实施例的方法来来决定是否重整数据。第一实施例及第二实施例的方法详细说明如上,在此便不再赘述。

图8是根据本发明的一范例实施例所示出的存储器的数据整理方法的流程图。请参照图8,在步骤S802中,从主机系统接收指令,其中指令包括第一数据区间。在步骤S804中,根据第一数据区间的多个逻辑区块地址的逻辑估计值及逻辑区块地址映射的多个实体抹除单元的实体估计值计算数据散乱度。在步骤S806中,根据数据散乱度与阀值判断是否执行数据整理操作以根据逻辑区块地址搬移实体抹除单元中的数据。

图9是根据本发明的一范例实施例所示出的存储器的数据整理方法的流程图。请参照图9,在步骤S902中,从主机系统接收指令,其中指令包括第一数据区间。在步骤S904中,根据第一数据区间的逻辑区块地址的逻辑区块数量、逻辑区块容量与可复写式非易失性存储器模块的实体页面容量计算逻辑估计值。在步骤S906中,根据逻辑区块地址映射的实体抹除单元中的实体页面数量决定实体估计值。在步骤S908中,计算逻辑估计值与实体估计值的比值以决定数据散乱度。在步骤S910中,判断数据散乱度是否不大于第一阀值。若数据散乱度不大于第一阀值(步骤S910,判断为是),则在步骤S912中,根据逻辑区块地址执行数据整理操作。若数据散乱度大于第一阀值(步骤S910,判断为否),则回到步骤S902等待接收指令。

图10是根据本发明的一范例实施例所示出的存储器的数据整理方法的流程图。在步骤S1002,从主机系统接收指令,其中指令包括第一数据区间。在步骤S1004,根据第一数据区间的逻辑区块地址对应的逻辑页面数量决定逻辑估计值。在步骤S1006,根据逻辑区块地址映射的实体抹除单元对应的实体平面数量决定实体估计值。在步骤S1008,根据逻辑估计值与实体估计值计算数据散乱度。在步骤S1010,根据数据散乱度与第三阀值计算第二阀值。在步骤S1012,判断逻辑区块地址映射的实体抹除单元所对应的其中之一实体平面中配置的页面数量是否不小于第二阀值。若页面数量不小于第二阀值(步骤S1012,判断为是),则在步骤S1014中,根据逻辑区块位址地址执行数据整理操作。若页面数量小于第二阀值(步骤S1012,判断为否),则回到步骤S1002等待接收指令。

值得注意的是,图8至图10中各步骤可以实作为多个代码或是电路,本发明不加以限制。此外,图8至图10的方法可以搭配以上范例实施例使用,也可以单独使用,本发明不加以限制。

综上所述,本发明的实施例所提供的存储器的数据整理方法、存储器存储装置及存储器控制电路单元,可根据指令包括的数据区间的多个逻辑区块地址的逻辑估计值及逻辑区块地址映射的多个实体抹除单元的实体估计值计算数据散乱度,并比较数据散乱度与阀值,以判断数据为集中或分散。藉此,可决定此数据区间是否需要进行数据整理操作,并进而提升读取数据的速度。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号