存储器系统及其映射方法

文档序号:6603354阅读:246来源:国知局

专利名称::存储器系统及其映射方法
技术领域
:本发明有关于存储器系统,且特别有关于包含闪存的存储器系统及其映射方法(mappingmethod)。
背景技术
:一种非易失性存储器(nonvolatilememory),即便当存储器断电时仍能保持先前写入其组成存储器单元(memorycell)的数据。闪存是非易失性存储器的一个特定类型(specifictype),且被广泛应用于计算机、存储卡(memorycard)等等。因为闪存的存储器单元可被大量(inbulk)电性擦除数据,故而在许多应用中,闪存均为优选存储器。近来,闪存被越来越多的应用于便携式装置(portabledevice),例如手机、个人数字助理(personaldigitalassistant,以下简称PDA)及数码相机。更普遍而言,闪存已经渐进地取代硬盘及其他类型的数据存储装置。依据各存储器单元及位线(bitline)的连接状态,闪存被归类为或非(NOR)类型及与非(NAND)类型闪存。或非闪存具有高读取速率及低写入速率,因而主要用于编码存储器应用。与之相反,与非闪存具有高写入速率及每单位面积低价格的特性,因而主要用于大容量存储应用。与此同时,与其他类型的存储器相比较,闪存在相对较低的单位耗费情形下,提供相对高速的读取。闪存的操作表现为写入操作前,执行擦除操作(eraseoperation)。所述特征使得闪存难以被用作主存储器(mainmemory)0同样也使得即便在将闪存用作辅助存储源的应用中,仍难以将闪存用作常规硬盘文件系统。相应地,闪存转换层(flashtranslationlayer,以下简称FTL)常用于文件系统及闪存之间,以便闪存中固有的可编程特征可被主机装置识别。在闪存写入操作过程中,FTL将文件系统产生的逻辑地址(logicaladdress)映射至闪存的物理地址(physicaladdress)。FTL典型地使用地址映射表(addressmappingtable)执行快速地址映射操作。通过使用FTL地址映射函数(mappingfunction),主机装置可以在操作上将闪存辨识为硬盘或静态随机存储器(statisticrandomaccessmemory,以下简称SRAM),以及可因而以存取硬盘或SRAM相同的方式存取闪存。
发明内容有鉴于此,为增强传统的映射方法,特提供以下技术方案本发明实施例提供一种存储器系统,包含闪存及界面装置。界面装置耦接在闪存及主机之间,存储闪存转换层,通过页面映射情况,利用块映射表及页面映射表管理闪存的多个数据块及多个日志块,以及利用独立于块映射表及页面映射表的随机写入页面映射表,而通过随机写入映射情况管理闪存的多个随机写入块。本发明实施例另提供一种存储器系统,包含闪存及界面装置。界面装置耦接在闪存及主机之间,存储闪存转换层,以及通过页面映射情况,利用数据块映射表、日志块映射表及页面映射表管理闪存的第一数据块,其中当对闪存的第一逻辑块其中之一的后续存取5是随机单一写入操作时,闪存转换层将第一数据块转换为第一随机写入块,以及利用独立于数据块映射表、日志块映射表及页面映射表的随机写入页面映射表管理第一随机写入块。本发明实施例另提供一种存储器系统的映射方法,用于存储器系统。存储器系统包含闪存及界面装置,界面装置耦接在闪存及主机之间,其中界面装置存储闪存转换层,存储器系统的映射方法包含通过页面映射情况,利用块映射表及页面映射表管理闪存的多个数据块及多个日志块,其中页面映射表对应于块映射表;以及通过随机写入映射情况,利用随机页面映射表管理闪存的多个随机写入块,其中随机页面映射表独立于块映射表及页面映射表。本发明实施例另提供一种存储器系统的映射方法,用于存储器系统。存储器系统包含闪存及界面装置,界面装置耦接在闪存及主机之间,其中界面装置存储闪存转换层,存储器系统的映射方法包含通过页面映射情况,利用数据块映射表、日志块映射表,及页面映射表管理闪存的第一数据块;以及当对于闪存的第一逻辑块的后续存取是随机单一写入操作时,将第一数据块转换为第一随机写入块,以及利用独立于数据块映射表、日志块映射表及页面映射表的随机写入页面映射表管理第一随机写入块。利用本发明的存储器系统及其映射方法,可改善块的利用率。图1是依据本发明的某些实施例展示存储器系统的示意方框图。图2是概念性说明图1中的存储器系统中软件的实施的方框图。图3是概念性说明相应于图1及图2中的存储器系统的改善的映射方法实施的方框图。图4是用于管理存储器系统中的闪存的映射数据的步骤的流程图。图5A-15A_4、5B5G是用于基于页面映射情况管理存储器块的范例。图6A6D是用于基于随机写入映射情况管理存储器块的范例。图7是依据本发明的实施例说明数据块、日志块及RW块之间关系的示意图。具体实施例方式在说明书及权利要求书当中使用了某些词汇来指称特定的组件。所属领域中的技术人员应可理解,制造商可能会用不同的名词来称呼同样的组件。本说明书及权利要求书并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的基准。在通篇说明书及权利要求书当中所提及的「包含」是开放式的用语,故应解释成「包含但不限定于」。另外,「耦接」一词在此包含任何直接及间接的电气连接手段。因此,若文中描述第一装置耦接于第二装置,则代表第一装置可直接电气连接于第二装置,或透过其它装置或连接手段间接地电气连接至第二装置。图1是依据本发明的某些实施例展示存储器系统的示意方框图。如图1中所示,存储器系统100包含主机210及存储装置220。存储器系统100可被用于便携式电子装置中,例如笔记本电脑(laptopcomputer)、数码相机、数字音乐播放器、手机、个人数字助理等等。存储装置220包含界面装置230及闪存240。存储装置220,举例而言,也可以被用6作外部存储卡。存储装置220可以是固态盘(solid-statedisk,也下简称为SSD)、安全数字卡(SecureDigitalCard)、多媒体卡(Multi-MediaCard)、记忆棒(MemoryStick)、嵌入卡(embeddedcard),例如moviNAND、GBNAND,iNAND等等。当主机210要求对闪存240进行存取时,界面装置230控制闪存240。举例而言,界面装置230控制闪存240的读/写入/擦除操作。界面装置230管理闪存240的映射信息,以便主机210可使用闪存240执行读/写入/擦除操作,且上述操作类似于通过静态随机存储器/硬盘驱动器时所执行的读/写入/擦除操作。界面装置230包含主机界面250、中央处理器(centralprocessingunit,以下简称CPU)260、工作存储器270、缓存(buffermemory)280以及闪存控制器290。主机界面250在存储装置220及主机210之间提供界面,而CPU260控制存储装置220的操作。工作存储器270被用于存储执行FTL功能所需要的软件/固件(firmware)。工作存储器270也用于存储闪存240的映射信息。闪存240的映射信息被存储在闪存240的一个区域(举例而言,元区域(metafield))中,并且在开启电源时被自动装载到工作存储器270上。同样地,FTL功能需要的软件及/或应用程序被存储在闪存240的一个区域(举例而言,启动代码区域(bootcoderegion))中,并且在开启电源时被自动装载到工作存储器270上。在本发明的某些实施例中,合并状态信息也被存储在工作存储器270中。无论主机210何时发出命令(例如读命令、写入命令或擦除命令),CPU260参考工作存储器270中的合并状态信息并控制用于合并的情况,所述用于合并的情况将在下文中详述。缓存280用于存储闪存240中的数据或自闪存240中读取数据。缓存280,举例而言,可具有对应于闪存240的页面大小(pagesize)的存储容量(storagecapacity)。工作存储器270及缓存280中的每一个可以是易失性存储器(volatilememory),例如SRAM。闪存控制器290被配置为在CPU260的控制下对闪存240执行存取操作,例如读、写入以及擦除操作。虽然此处所描述的各个存储器是分离的,但工作存储器270及缓存280可被实施在同一个存储器中(例如SRAM),以便执行与此处所述的两个存储器相同的功能。闪存240包含存储器单元阵列,所述存储器单元阵列包含多个存储器块(未展示)。每一存储器块包含多个页面(未展示)。一个页面对应于一个扇区或多个扇区。在本发明的某些实施例中,如前文所述,存储器单元阵列的存储器块被分为数据区域(dataregion)、日志区域(logregion)、随机写入区域(randomwrite(以下简称RW)region)、空白区域(spaceregion)、元区域等等。并且,存储器单元阵列更包含存储启动代码及/或FTL的存储器块。然而,闪存240的阵列结构并不限于此处描述的结构。换句话说,存储器单元阵列的结构可依据FTL的映射技术而被调整。图2是概念性说明图1中的存储器系统100中软件的实施的方框图。请参考图2,存储器系统可实施包含操作系统310、文件系统320及FTL330的软件。如图2中所展示的,操作系统310与文件系统320通信,文件系统320与FTL330通信,FTL330与存储器系统100的闪存240通信。FTL330自文件系统320接收逻辑地址LA并将所接收的逻辑地址LA转换(translate)为物理地址PA。物理地址PA可被提供至闪存240,而闪存240可存取对应于所接收到的物理地址PA的存储器单元。此外,FTL330可包含至少一个地址映射表,用于地址转换(addressconversion)。地址映射表可以从闪存240装载到工作存储器270上,并且地址映射表可用于工作存储器270中。图3是概念性说明相应于图1及图2中的存储器系统100的改善的映射方法实施的方框图。图3阐明存储器系统100的文件系统320、FTL330以及闪存240。在图3中展示的实施例中,FTL330自文件系统320接收逻辑地址LA,并利用映射表(例如331、332及333)将所接收的逻辑地址LA转换为物理地址PA。如图3中所展示的,FTL330包含块映射表(blockmappingtable)331、页面映射表(pagemappingtable)332以及随机写入页面映射表(RWpagemappingtable,图中标示为“RW页面映射表”)333,其中页面映射表332与块映射表331有关,而RW页面映射表333独立于块映射表331及页面映射表332。块映射表331被用于将至少一个逻辑块的逻辑块号(logicalblocknumber,以下简称LBN)映射至物理内存块(physicalmemoryblock)(亦即,数据块、日志块或空白块(spaceblock))的物理块号(physicalblocknumber,以下简称PBN)。应当注意,在某些实例中,日志块也可以被参考为现用块(activeblock)。一般情况下,LBN及/或逻辑页面号(logicalpagenumber,以下简称为LPN)可被主机装置辨识/利用,而PBN及/或物理页面号(physicalpagenumber,以下简称为PPN)可被闪存辨识/利用,但并不限于此。页面映射表332用于数据块与一个或多个日志块的页面映射。举例而言,页面映射表332用于将至少一个逻辑块的LPN映射至数据块或日志块的PPN。Rff页面映射表333用于RW块的页面映射。类似地,RW页面映射表333用于将至少一个逻辑块的LPN映射至RW块之一的PPN。在某些实施例中,块映射表331可包含数据块映射表及日志块映射表,但不限于此。请再参考图3,闪存240包含多个存储器块,存储器块体现PBN为PB100、PB101、PB102、PB103、...、PB470及PB490的多个数据块;PBN为PB301、PB302及PB304的多个日志块;PBN为PB601、PB602、PB603及PB604的多个空白块以及PBN为PB900、PB903及PB905的多个RW块。此外,闪存240可概念上地包含数据区域341、日志区域342、RW区域343、空白区域344及元区域345。在某些实施例中,闪存240可以不具有物理的数据、日志、Rff或空白区域,而是在闪存240中实施的数据块、日志块、RW块及空白块分别概念上地形成数据区域341、日志区域342、Rff区域343及空白区域344。请注意在闪存240中,以上所述的区域可以是概念上地,而非物理上可辨识的区域,其中所述概念上的区域将在此处做出说明。数据区域341包含多个数据块并存储用户数据,其中多个数据块的PBN分别为PB100、PB101、PB102、PB103、...、PB470及PB490。举例而言,数据块用于存储连续写入数据及/或冷数据,其中冷数据很少被主机210存取。日志区域342包含PBN为PB301、PB302及PB304的多个日志块,多个日志块中的每一个被分配至闪存240的一个或多个数据块。举例而言,日志块被用于存储重写数据(overwritedata)R/(non-sequentialdata/discontinuousd;at;a)。I^VIK_343多个RW块并存储用户数据,其中多个RW块的PBN为PB900、PB903及PB905,并且用户数据属于随机单一写入数据及/或热数据。空白区域344包含PBN分别为PB601、PB602、PB603及PB604的多个空白块,多个空白块中的每一个可被转换为日志块、数据块或RW块。举例而言,若被分配至数据块的所有日志块均被使用,则空白块可被转换为日志块,且随后可被分配至所述数据块。此外,合并操作之后,被擦除的数据块、日志块及/或RW块可被转换为空白块,并且可随后依据分配操作被转换为数据、日志及/或RW块。在本发明的某些实施例中,当满足某些预设条件时,数据块(以及对应的日志块(若存在))也可被转换为RW块,或RW块可被转换为数据块,上述转换的具体操作将在下文中详述。依据合并操作所改变的映射信息可被存储在元区域345中。图4是用于管理存储器系统中的闪存的映射数据的步骤的流程图。首先,在步骤S400中,主机210请求存取闪存240(亦即自文件系统320或操作系统310发出,并且在主机210上执行的命令被接收)。在步骤S410中,在界面装置230的CPU260上执行的FTL320决定当前所请求的存取的模式(pattern)。举例而言,当主机210请求一存取时,FTL330自输入数据撷取逻辑地址信息,以及决定所请求的存取是否是对于RW块的存取。若决定所请求的存取是对于RW块的存取,则执行步骤S430。若决定所请求的存取并非是对于RW块的存取,则执行步骤S420。在步骤S420中,所请求的存取通过第一映射情况处理,而在步骤S430中,所请求的存取通过第二映射情况处理,其中第二映射情况不同于第一映射情况,并且独立于第一映射情况。举例而言,在本实施例中,在步骤S420中,所请求的存取通过具有块映射表331(以及页面映射表332(若需要))的混合映射情况(亦即,页面映射情况)处理,但并不限于此。相反地,在步骤S430中,所请求的存取通过具有RW页面映射表333的RW映射情况(亦即,RW页面映射情况)处理,其中RW页面映射表333独立于块映射表331及页面映射表332,但并不限于此。步骤S420及S430的具体操作将在下文详细描述。应当注意,RW页面映射表333可被部分或全部存储在闪存240中,并且在必要时自闪存240(图1)装载至工作存储器270上。为描述的便利,假定闪存240的每一个内存块具有四个页面,但并不限于此。换句话说,本领域技术人员可以理解闪存240的每一个内存块也可具有多于或少于四个页面。在此,将参考图5A-1图5A-4以及图5B5G来阐明不存取RW块的步骤S420的范例。在步骤S420中,所请求的存取并非是对于RW块的存取,但其可以是对于内存块的写入操作或读取操作,例如对应于逻辑块的数据块或日志块。以下将参考图3及图5A-1图5A-4来描述步骤S420的第一范例。举例而言,若第一存取被请求写入的数据是LBN为LB108的逻辑块中对应于LPN为LP2的数据,则FTL330决定对应于逻辑块的数据块的LBN是否为LB108。若对应于逻辑块的数据块的LBN不为LB108,则FTL330分配PBN为PB601的空白块(亦即,内存块)作为用于逻辑块的数据块,其中逻辑块的LBN为LB108,而随后FTL330将对应于LPN为LP2的数据写入物理页面,其中物理页面位于PBN为PB601的数据块中,且物理页面的PPN为PPAO0在本实施例中,LPN为LP2的逻辑页面是LBN为LB108的逻辑块中的第三页面,而非第一页面,并且对应于逻辑页面LP2的数据并不限于被写入PBN为PB601的数据块的第三页面。在某些实施例中,FTL330依据来自于主机210的输入数据中的逻辑扇区号(logicsectornumber)顺序获得LPN、LBN及逻辑偏移页面号(logicaloffsetpagenumber,以下简称L0PN),但并不限于此。此外,FTL330将LBN为LB108的逻辑块及PBN为PB601的数据块之间的映射关系记录入块映射表331的数据块映射表331A中。如数据块映射表331A中所示,PBN为PB100的数据块对应于LBN为LBO的逻辑块,PBN为PBlOl的数据块对应于LBN为LBl的逻辑块,PBN为PB102的数据块对应于LBN为LB2的逻辑9块,......,PBN为PB490的数据块对应于LBN为LB107的逻辑块,以及PBN为PB601的数据块对应于LBN为LB108的逻辑块。举例而言,FTL330依据来自于主机210的存取信息(亦即,命令中的写入地址)决定所请求的存取及/或随后的存取是随机单一写入操作(randomsinglewriteoperation),但并不限于此。如图5A-1所示,FTL330更将数据块的物理页面记录入页面映射表332中,其中数据块的PBN为PB601,物理页面的PPN为ΡΡΑ0。如页面映射表332所示,PPN为PPAO的物理页面对应于LP2。若第二存取随后被请求将对应于LPN为LP3的数据写入LBN为LB108的逻辑块中,则FTL330决定待写入的数据是否为连续数据,而此待写入的数据与对应于LPN为LP2的数据相关(其中该数据存储在PBN为PB601的数据块中)。随后,若关于对应于LPN为LP2的数据,待写入的数据是连续数据,则FTL330将对应于LPN为LP3的数据写入PBN为PB601的数据块的物理页面,其中所述物理页面的PPN为PPAl。如图5A-1中所示,FTL330更将物理页面记录入页面映射表332中(该物理页面的PPN为PB601的数据块的PPN,即PPA1)。如页面映射表332所示,PPN为PPAl的物理页面对应于LP3。若第三存取随后被请求将对应于LPN为LPl的数据写入LBN为LB108的逻辑块中,则FTL330决定待写入的数据是否为连续数据,而此待写入的数据与对应于LPN为LP3的数据相关(其中该数据存储在PBN为PB601的数据块中)。因为关于对应于LPN为LP3的数据,待写入的数据并非为连续数据,FTL330分配PBN为PB602的存储器块作为日志块,用于PBN为PB601的数据块。此外,FTL330将PBN为PNB602的日志块及PBN为PB601的数据块之间的映射关系记录入块映射表331的日志块映射表331B中。如页面映射表332所示,PPN为PPAO的物理页面对应于LP2,而PPN为PPAl的物理页面对应于LP3。随后,FTL330将对应于LPl的数据写入物理页面中(该物理页面的PPN为PB602的日志块的PPN,即ΡΡΒ0),以及将PPN为PPBO的物理页面及LPNLPl之间的映射关系(亦即,PPN为PPBO的物理页面对应于LPl)记录入块映射表332之中。如图5A-2的页面映射表332中所示,PPN为PPBO的物理页面对应于LPl。若第四存取随后被请求将对应于LPN为LPO的数据写入LBN为LB108的逻辑块中,并且FTL330决定LBN为LB108的逻辑块对应于PBN为PB601的数据块及PBN为PB602的日志块,则FTL330将对应于LPN为LPO的数据写入物理页面中(该物理页面的PPN为PB602的日志块的PPN,即PPB1)。FTL330随后将物理页面PPBl与LPNLPO之间的映射关系(亦即,PPN为PPBl的物理页面对应于LP0)记录入页面映射表332中。如图5A-2的页面映射表332中所示,PPN为PPBl的物理页面对应于LPO。类似地,依据第五及第六存取,分别对应于位于LBN为LB108的逻辑块中LPN为LP3及LPO的数据被分别写入PPN为PPB2及PPB3的物理页面,并且FTL330随后将物理页面PPB2与LP3以及PPB3与LPO间的映射关系记录入页面映射表332中。因此,LP3及LPO被记录(更新)入页面映射表332中。如图5A-3的页面映射表332所示,PPN为PPB2及PPB3的物理页面分别对应于LP3及LP0。此时,存储在PBN为PB601的数据块的PPN为PPAl的物理页面的数据,以及PBN为PB602的日志块的PPN为PPBl的物理页面成为无效的。在本实施例中,FTL330分配日志块用于数据块(当待写入的数据关于先前写入的数据并非为连续数据时),或者重写先前写入的数据,但并不限于此。步骤S420的另一范例将参考图5A-4作出说明。若第七存取被随后请求将对应于LPl的数据写入LBN为LB108的逻辑块中,则FTL330将对应于LPl的数据写入物理页面(该物理页面的PPN为PB601的日志区域的PPN,即PPA2)。FTL330随后将PPN为PPA2的物理页面与LPNLPl之间的映射关系(亦即,PPN为PPA2的物理页面对应于LPl)记录(亦即,更新)入页面映射表332中。如图5A-4的页面映射表332所示,PPN为PPA2的物理页面对应于LPl。此时,存储在PBN为PB602的日志块的PPN为PPBO的物理页面中的数据成为无效的。在本实施例中,一旦PBN为PB602的日志块被分配用于PBN为PB601的数据块,FTL330将以页面映射(pagemap)的方式利用PBN为PB601的数据块的空白页面(spacepage)。此外,若FTL330更决定对于LBN为LB108的逻辑块的后续存取是随机单一写入操作,则FTL330随后将PBN为PB601的数据块及PBN为PB602的日志块转换为RW块,用于后续存取(亦即,随机单一写入操作)。因此,FTL330利用RW页面映射表333记录逻辑块(逻辑块的LBN为LB108)的LPN及PBN为PB601与PB602的RW块的物理页面之间的映射关系。举例而言,FTL330将PBN为PB601及PB602的RW块的有效页面(亦即,PPN为PPAO、PPA2、PPB2、PPB3的物理页面)记录入RW页面映射表333中。如图5B的RW页面映射表333所示,PPN为PPB3、PPA2、PPAO、PPB2的物理页面分别对应于LPOLP3。与此同时,FTL330删除数据块映射表331A中LBN为LB108的逻辑块与PBN为PB601的数据块之间的映射关系,删除日志块映射表331B中PBN为PB601的数据块及PBN为PB602的日志块之间的映射关系,以及删除页面映射表332中LBN为LB108的逻辑块的LPN与PBN为PB601的数据块的物理页面及PBN为PB602的日志块之间的映射关系,使得RW页面映射表333独立于数据块映射表331A、日志块映射表331B及页面映射表332。RW操作的细节将稍后描述。步骤S420的另一范例将参考图5C及图5D作出说明。若图5A_3所示的第四存取之后,第八存取被随后请求将对应于LPl的数据写入LBN为LB108的逻辑块中,则FTL330决定PBN为PB602的日志块是满的,并且FTL330将对应于LPl的数据写入物理页面中(该物理页面的PPN为PB601的数据块的PPN,即PPA2)。FTL330随后将PPN为PPA2的物理页面与LPNLPl之间的映射关系(亦即,PPN为PPA2的物理页面对应于LPl)记录入页面映射表332中。类似地,依据第九存取请求,对应于LBN为LB108的逻辑块中的LPNLPO的数据也可被写入PPN为PPA3的物理页面中,并且PPN为PPA3的物理页面及LPNLPO之间的映射关系将被记录在页面映射表332中。如图5C中的页面映射表332所示,PPN为PPA2及PPA3的物理页面分别对应于LPl及LP0。此时,PBN为PB602的数据块中的PPN为PPBO的物理页面及PBN为PB602的日志块中的PPN为PPB3的物理页面中所存储的数据成为无效的。为描述的便利,假定每一数据块仅能被分配一个日志块。然而,本领域技术人员应当理解多个日志块可被分配给一个数据块。在本发明的所述实施例中,当FTL330决定PBN为PB601的数据块及PBN为PB602的日志块是满的时,决定LBN为LB108的逻辑块的数据(亦即,存储在PBN为PB601的数据块及PBN为PB602的日志块的数据)是热数据。因此,如图5D中所示,FTL330将PBN为PB601的数据块及PBN为PB602的日志块转换为RW块,分配PBN为PB603的空白块作为用于LBN为LB108的逻辑块的另一RW块,以及利用RW页面映射表333记录LBN为LB108的逻辑块的LPN与PBN为PB601PB603的RW块的物理页面之间的映射关系,以便后续的数据11写入操作。举例而言,FTL330将PBN为PB601及PB602的RW块的有效页面(亦即,PPN为PPA0、PPA2、PPA3及PPB2的物理页面)记录入RW页面映射表333中。如图5D的RW页面映射表333所示,PPN为PPA3、PPA2、PPA0及PPB2的物理页面分别对应于LPOLP3。与此同时,FTL330删除/更新数据块映射表331A中的LBN为LB108的逻辑块及PBN为PB601的数据块之间的映射关系,日志块映射表33IB中PBN为PB601的数据块及PBN为PB602的日志块之间的映射关系,以及页面映射表332中LBN为LB108的逻辑块的LPN与PBN为PB601的数据块的物理页面及PBN为PB602的日志块之间的映射关系,使得RW页面映射表333独立于数据块映射表331A、日志块映射表331B及页面映射表332。存取RW块的操作的细节将稍后描述。步骤S420的另一范例将参考图5E作出说明。在对应于LPN为LPO的数据被写入物理页面之后(展示在图5A-1中,该物理页面的PPN为PB602的日志块的PPNJPPPB3),若第九存取被随后请求将对应于LPN为LP128的数据写入LBN为LB109的逻辑块中,则FTL330决定对应于所述逻辑块的数据块的LBN是否为LB109。若对应于逻辑块的数据块的LBN不为LB109,则FTL330分配PBN为PB603的空白块作为LBN为LB109的逻辑块的数据块,以及随后FTL330将对应于LPN为LP128的数据写入PPN为PPCO的物理页面中,其中PPN为PPCO的物理页面位于PBN为PB603的数据块中。在本实施例中,逻辑页面LP128是LBN为LB109的逻辑块的第一页面。此外,FTL330将LBN为LB109的逻辑块及PBN为PB603的数据块之间的映射关系记录入数据块映射表331A中(亦即,PBN为PB603的数据块对应于LBN为LB109的逻辑块)。当第十一存取被随后请求将对应于LPN为LP129的数据写入LBN为LB109的逻辑块中时,若关于对应于LPN为LP128的数据,当前数据是连续数据,则FTL330将对应于LPN为LP129的数据写入物理页面中(该物理页面的PPN为PB603的数据块的PPN,即PPC1)。此外,FTL330更将PPN为PPCO,PPCl的物理页面分别与LP128、LP129之间的映射关系记录入页面映射表332”中。如图5E的页面映射表332”所示,PPN为PPCO与PPCl的物理页面分别对应于LP128与LP129。步骤S420的又一范例将参考图5F作出说明。若第十二存取被随后请求将对应于LPN为LP130的数据写入LBN为LB109的逻辑块中,则FTL330将对应于LPN为LP130的数据写入物理页面中(该物理页面的PPN为PB603的数据块的PPN,即PPC2)。FTL330随后将PPN为PPC2的物理页面与LP130之间的映射关系记录入页面映射表332”中。如图5F的页面映射表332”所示,PPN为PPC2的物理页面对应于LP130。此外,若FTL330决定对于LBN为LB109的逻辑块的后续存取是随机单一写入操作,则FTL330将PBN为PB603的数据块转换为RW块。因此,FTL330利用RW页面映射表333”记录LBN为LB109的逻辑块的LPN及PBN为PB603的RW块的物理页面之间的映射关系。举例而言,FTL330将PBN为PB603的RW块的有效页面(亦即,PPN为PPCOPPC2的物理页面)记录入RW页面映射表333”中。与此同时,FTL330删除/更新数据块映射表331A中LBN为LB109的逻辑块及PBN为PB603的数据块之间的映射关系,以便RW页面映射表333”独立于数据块映射表33IA及日志块映射表331B。步骤S420的又一范例将参考图5G作出说明。在对应于逻辑块LB108中的LPNLPO的数据被写入物理页面PPB3之后(展示在图5A-3中,物理页面PPB3位于PBN为PB602的日志块内),若第十三存取被随后请求将对应于LPNLP128的数据写入LBN为LB109的逻辑块中,则FTL330决定对应于逻辑块的数据块的LBN是否为LB109。当对应于逻辑块的数据块的LBN不为LB109时,FTL330分配空白块作为LBN为LB109的逻辑块的数据块。此时,若闪存中的空白块的数量是不足的,则合并操作可被执行,以产生额外的空白块。换句话说,数据块及被分配至所述数据块的日志块可经由合并操作(也被称为垃圾收集(garbagecollection))被转换为空白块。合并操作将在下文详述。举例而言,FTL330分配PBN为PB603的空白块作为PBN为PB108的逻辑块的新数据块,将PBN为PB601的旧数据块及PBN为PB602的日志块中的有效数据拷贝入PBN为PB603的新数据块中,擦除PBN为PB601及PB602的块,以及将PBN为PB601及PB602的块作为空白块回收至空白区域。此夕卜,FTL330也可将LBN为LB108的逻辑块及PBN为PB603的数据块之间的新映射关系更新入数据块映射表331A中,以及删除日志块映射表31IB中PBN为PB601的数据块及PBN为PB602的日志块之间的映射关系。因此,FTL330分配PBN为PB604的空白块作为LBN为LB109的逻辑块的数据块,以及将对应于LP128的数据写入物理页面中(该物理页面的PPN为PB604的数据块的PPN,即PPD0)。此外,FTL330也可将LBN为LB109的逻辑块及PBN为PB604的数据块之间的映射关系记录入数据块映射表331A中。存取RW块的步骤S430的范例将参考图6A6D在下文中作出描述。步骤S430的第一范例将参考图6A6C作出说明。PBN为PB603的数据块被转换为RW块之后(展示在图5F中),若第十四存取被随后请求将对应于LPN为LP128的数据写入LBN为LB109的逻辑块中,则FTL330决定所请求的存取是对于RW块的存取(亦即,其可以是对于RW块的写入操作或读操作)。因此,依据RW映射情况,FTL330利用RW页面映射表333”处理被请求的存取,其中页面映射表333”独立于数据块映射表331及页面映射表332。举例而言,如图6A所示,当FTL330决定PBN为PB603的RW块对应于LBN为LB109的逻辑块时,FTL330将对应于LPN为LP128的数据写入物理页面中(该物理页面的PPN为PB603的RW块的PPN,即PPC3)。FTL330随后将PPN为PPC3的物理页面及LPNLP128之间的映射关系(亦即,PPN为PPC3的物理页面对应于LP128)记录入RW页面映射表333”中。若第十五存取被随后请求将对应于LPN为LP130的数据写入LBN为LB109的逻辑块中,并且FTL330决定RW块是满的,则FTL330分配PBN为PB604的空白块作为用于LBN为LB109的逻辑块的另一RW块。因此,如图6B所示,FTL330将LBN为LB109的逻辑决中对应于LPN为LP130的数据写入物理页面中(该物理页面的PPN为PB604的RW块的PPN,即PPD1)。此外,FTL330随后将PPN为PPDl的物理页面及LP130之间的映射关系(亦即,PPN为PPDl的物理页面对应于LP130)记录入RW页面映射表333”中。此时,存储在PBN为PB603的RW块中PPN为PPC2的物理页面中的数据成为无效的。若第十六存取被随后请求将对应于LPN为LP129的数据写入LBN为LB109的逻辑块中,则FTL330将对应于LPN为LP129的数据写入物理页面中(该物理页面的PPN为PB604的RW块中的PPN,即PPD0),以及将PPN为PPDl的物理页面及LPNLP129之间的映射关系记录入RW页面映射表333”中。此时,存储在PBN为PB603的RW块中PPN为PPCl的物理页面中的数据成为无效的。类似地,若第十七存取被随后请求将对应于LPN为LP128的数据写入LBN为LB109的逻辑块中,则FTL330将对应于LPN为LP128的数据写入物理页面中(该物理页面的PPN为PB604的数据块的PPN,即PPD2),以及将PPN为PPD2的物理页面及LPNLP128之间的映射关系记录入RW页面映射表333”中。此时,存储在PBN为PB603的RW块的PPN为PPC3的物理页面中的数据成为无效的。举例而言,FTL330可分配N个RW块用于一个逻辑块,以及当被分配的RW块的数量达到预定数时对被分配的RW块执行垃圾收集操作。在本实施例中,FTL330最多分配3个RW块用于一个逻辑块,但并不限于此,并且当被分配的RW块是满的时,FTL330对被分配的RW块执行垃圾收集操作。当FTL330决定闪存中空白块的数量不足时,可对PBN为PB603及PB604的RW块执行合并操作,用于产生额外的空白块。举例而言,如图6C中所示,FTL330分配PBN为PB605的空白块作为PBN为PB109的逻辑块的新RW块,将PBN为PB603及PB604的旧RW块中的有效数据拷贝至PBN为PB605的新RW块中,擦除PBN为PB603及PB604的块,以及将PBN为PB603及PB604的块作为空白块回收至空白区域。在本实施例中,LPN为LP128、LP129及LP130的逻辑页面的有效数据被分别存储在PPN为PPEO、PPEl及PPE2的物理页面中。此外,FTL330也可将LBN为LB109的逻辑块及PBN为PB605的RW块之间的新映射关系更新入RW页面映射表333”中。也就是当闪存中的空白块的数量不足时(亦即,空白块的数量低于预定数),FTL330也对RW块执行垃圾收集操作(亦即,合并操作)以获得空白块。应注意,用于逻辑块的RW块的数量、对应于一个数据块的日志块的数量以及剩余空白块的数量可作为前述合并状态信息的一部分。此外,前述被编号码的存取,例如第一存取、第二存取等等,并非限制存取的顺序及/或位置,而是用于协助说明本发明的实施例。步骤S430的又一范例将参考图6D作出说明。当FTL330决定对于LBN为LB109的逻辑块的后续存取是连续数据写入操作时,FTL330将PBN为PB605的RW块转换为数据块。举例而言,FTL330分配PBN为PB606的空白块作为PBN为PB109的逻辑块的数据块,将PBN为PB603及PB604的旧RW块中的有效数据拷贝至新RW块PB605中,擦除PBN为PB603及PB604的块,以及将PBN为PB603及PB604的块作为空白块回收至空白区域。此外,FTL330也可将LBN为LB109的逻辑块及PBN为PB606的数据块之间的新映射关系更新入数据块映射表331A中。在本实施例中,用于LPN为LP128、LP129及LP130的逻辑页面的有效数据被分别存储在PPN为PPF0、PPF1及PPF2的物理页面中(未展示在图中)。因此,通过具有数据块映射表331A(以及日志块映射表331B和(若需要)页面映射表332(未展示在图中))的混合映射情况(亦即,页面映射情况),FTL330处理LBN为LB109的逻辑块之后续存取请求图7是依据本发明的某些实施例说明数据块、日志块及RW块之间关系的示意图。如图所示,存储器系统可包含三种块,亦即,数据块、日志块及RW块。关于对应于逻辑块的数据块,若FTL决定关于先前存储的数据,待写入的后续数据是不连续数据(亦即,非连续数据)或先前存储的数据被重写,则FTL为对应于逻辑块的数据块创建或分配日志块,用于后续数据写入操作。可选地,若FTL决定待写入的后续数据是随机单一写入数据或热数据,则FTL将数据块转换为RW块,以便后续数据写入操作。举例而言,FTL依据来自于主机的存取信息(亦即,命令中的写入地址)决定被请求的存取及/或后续的存取是随机单一写入操作或连续数据写入操作,但并不限于此。关于日志块,若FTL决定待写入的后续数据是非连续数据,则FTL将数据写入日志块,并且当日志块及对应的数据块是满的时,FTL对日志块执行垃圾收集操作。可选地,若FTL决定待写入的后续数据是热数据,则FTL将日志块及对应数据块转换为RW块,用于后续14数据写入操作。举例而言,当FTL决定数据块及日志块是满的时,逻辑块的数据(亦即,存储在数据块及日志块的数据)被决定为是热数据。可选地,若FTL决定关于先前存储在日志块的数据,后续数据是连续的,则FTL用对应的数据块取代(亦即,交换)日志块。关于RW块,若FTL决定待写入的后续数据是非连续数据,则FTL将数据写入RW块,并且当当前RW块是满的时,分配另一RW块用于逻辑块。当RW块的数量达到预定数时,FTL对RW块执行垃圾收集操作。可选地,若FTL决定待写入的后续数据是连续写入数据或冷数据,则FTL将RW块转换为数据块。在所述实施例中,因为在对应的日志块无空白页面之后,数据块的空白页面可被用于以页面映射方式存储数据,数据块中的页面的利用率(utilityrate)可被改善。此外,若热数据及逻辑块的随机单一写入数据可被写入多重RW块,则对于对应于逻辑块的数据块及日志块的大量垃圾收集操作可被减少。以上所述仅为本发明的较佳实施例,本领域相关的技术人员依据本发明的精神所做的等效变化与修改,都应当涵盖在权利要求书内。权利要求一种存储器系统,其特征在于包含闪存;以及界面装置,耦接在该闪存及主机之间,存储闪存转换层,通过页面映射情况,利用块映射表及页面映射表管理该闪存的多个数据块及多个日志块,以及利用独立于该块映射表及该页面映射表的随机写入页面映射表,通过随机写入映射情况管理该闪存的多个随机写入块。2.根据权利要求1所述的存储器系统,其特征在于,该块映射表包含数据块映射表及对应于该数据块映射表的日志块映射表。3.根据权利要求1所述的存储器系统,其特征在于,当对于逻辑块的后续存取是随机单一写入操作时,该闪存转换层将对应于该逻辑块的该多个数据块其中之一转换为随机写入块。4.根据权利要求3所述的存储器系统,其特征在于,依据自该主机提供的存取信息,该闪存转换层决定对于该逻辑块的该后续存取是否是随机单一写入操作或连续数据写入操作。5.根据权利要求1所述的存储器系统,其特征在于,当存储在随机写入块的数据成为冷数据或对该逻辑块的后续存取是连续数据写入操作时,该闪存转换层将对应于逻辑块的该多个随机写入块其中之一转换为数据块。6.根据权利要求1所述的存储器系统,其特征在于,当对应于逻辑块的该多个随机写入块的数量达到预定数,并且该多个随机写入块是满的时,该闪存转换层对该多个随机写入块执行合并操作,其中该预定数大于二。7.一种存储器系统,其特征在于包含闪存;以及界面装置,耦接在该闪存及主机之间,存储闪存转换层,以及通过页面映射情况,利用数据块映射表、日志块映射表及页面映射表管理该闪存的第一数据块,其中当对该闪存的第一逻辑块其中之一的后续存取是随机单一写入操作时,该闪存转换层将该第一数据块转换为第一随机写入块,以及利用独立于该数据块映射表、该日志块映射表及该页面映射表的随机写入页面映射表管理该第一随机写入块。8.根据权利要求7所述的存储器系统,其特征在于,该闪存更包含对应于该第一数据块的第一日志块,以及当对该第一逻辑块的该后续存取是随机单一写入操作时,该闪存转换层分别将该第一数据块及该第一日志块转换成该第一随机写入块及第二随机写入块,以及利用该随机写入页面映射表管理该第一及该第二随机写入块。9.根据权利要求8所述的存储器系统,其特征在于,依据自该主机提供的多个存取地址,该闪存转换层决定对该第一逻辑块的该后续存取是否是连续数据写入操作。10.根据权利要求7所述的存储器系统,其特征在于,该闪存更包含对应于第二逻辑块的第二数据块及对应于该第二数据块的日志块,以及当存储在该第二数据块及该日志块的数据是热数据时,该闪存转换层将该第二数据块及该日志块分别转换为该第二随机写入块及第三随机写入块,以及利用该随机写入页面映射表管理该第二及第三随机写入块。11.根据权利要求10所述的存储器系统,其特征在于,当存储在该第二及该第三随机写入块的数据成为冷数据时,该闪存转换层分配第三数据块用于该第二逻辑块,将存储在该第二及该第三随机写入块的有效数据拷贝至该第三数据块,以及通过该页面映射情况管理该第三数据块。12.根据权利要求10所述的存储器系统,其特征在于,当该第二数据块及该日志块是满的时,该闪存转换层决定存储在该第二数据块及该日志块的数据是热数据。13.根据权利要求8所述的存储器系统,其特征在于,当对于该第一逻辑块的第一存取被请求并且该第一及该第二随机写入块是满的时,该闪存转换层分配该闪存的空白块作为该第一逻辑块的第三随机写入块。14.根据权利要求8所述的存储器系统,其特征在于,当对于该第一逻辑块的存取被请求,该第一及该第二随机写入块是满的并且该闪存中的空白块的数量低于预定数时,该闪存转换层分配该闪存的空白块作为第三随机写入块,以及将该第一及该第二随机块中的有效数据拷贝至该第三随机写入块并且擦除该第一及该第二随机写入块。15.根据权利要求7所述的存储器系统,其特征在于,该闪存及该界面装置组成存储卡。16.一种存储器系统的映射方法,该存储器系统包含闪存及界面装置,该界面装置耦接在该闪存及主机之间,其中该界面装置存储闪存转换层,其特征在于,该存储器系统的映射方法包含通过页面映射情况,利用块映射表及页面映射表管理该闪存的多个数据块及多个日志块,其中该页面映射表对应于该块映射表;以及通过随机写入映射情况,利用随机页面映射表管理该闪存的多个随机写入块,其中该随机页面映射表独立于该块映射表及该页面映射表。17.根据权利要求16所述的存储器系统的映射方法,更包含,当对于逻辑块的后续存取是随机单一写入操作时,将对应于该逻辑块的该多个数据块其中之一转换为随机写入块。18.根据权利要求17所述的存储器系统的映射方法,其特征在于,对应于该逻辑块的该后续存取是否是该随机单一写入操作或连续数据写入操作,依据自该主机提供的存取信息决定。19.根据权利要求16所述的存储器系统的映射方法,更包含,当存储在该被转换的随机写入块的数据是冷数据,或对于该逻辑块的该后续存取是连续数据写入操作时,将对应于该逻辑块的该多个随机写入块之一转换为数据块。20.根据权利要求16所述的存储器系统的映射方法,更包含,当该多个数据块其中之一及该多个日志块其中之一所存储的数据是热数据,或对于逻辑块的存取是随机单一写入操作时,将该数据块及该日志块转换为两个随机写入块,其中该数据块对应于该逻辑块,并且该日志块对应于该数据块。21.根据权利要求16所述的存储器系统的映射方法,更包含,当对应于逻辑块的一组随机写入块的数量达到预定数,并且该组随机写入块是满的时,对于该组随机写入块执行合并操作,其中该预定数大于二。22.—种存储器系统的映射方法,该存储器系统包含闪存及界面装置,该界面装置耦接在该闪存及主机之间,其中该界面装置存储闪存转换层,其特征在于,该存储器系统的映射方法包含通过页面映射情况,利用数据块映射表、日志块映射表,及页面映射表管理该闪存的第一数据块;以及当对于该闪存的第一逻辑块的后续存取是随机单一写入操作时,将该第一数据块转换为第一随机写入块,以及利用独立于该数据块映射表、该日志块映射表及该页面映射表的随机写入页面映射表管理该第一随机写入块。23.根据权利要求22所述的存储器系统的映射方法,其特征在于,该闪存更包含对应于该第一数据块的第一日志块,以及当对于该第一逻辑块的该后续存取是随机单一写入操作时,该映射方法更包含分别将该第一数据块及该第一日志块分别转换成该第一随机写入块及第二随机写入块,以及使用该随机写入页面映射表管理该第一及该第二随机写入块。24.根据权利要求23所述的存储器系统的映射方法,其特征在于,对于该第一逻辑块的该后续存取是否是该随机单一写入操作或连续数据写入操作依据自该主机提供的存取信息决定。25.根据权利要求22所述的存储器系统的映射方法,其特征在于,该闪存更包含对应于第二逻辑块的第二数据块及对应于该第二数据块的日志块,以及该映射方法更包含,当存储在该第二数据块及该日志块的数据是热数据时,将该第二数据块及该日志块分别转换为第二随机写入块及第三随机写入块,以及利用该随机写入页面映射表管理该第二及第三随机写入块。26.根据权利要求25所述的存储器系统的映射方法,更包含,当存储在该第二及该第三随机写入块的数据成为冷数据时,分配用于该第二逻辑块的第三数据块,将存储在该第二及该第三随机写入块的有效数据拷贝至该第三数据块,以及通过该页面映射情况管理该第三数据块。27.根据权利要求22所述的存储器系统的映射方法,更包含,当对于该第一逻辑块的第一存取被请求,并且该第一及该第二随机写入块是满的时,分配该闪存的空白块作为该第一逻辑块的第三随机写入块。28.根据权利要求27所述的存储器系统的映射方法,更包含,当对于该第一逻辑块的第二存取被请求,并且该第一、该第二及该第三随机写入块是满的时,对该第一、该第二及该第三随机写入块执行合并操作。29.根据权利要求22所述的存储器系统的映射方法,更包含,当对于该第一逻辑块的存取被请求,该第一及该第二随机写入块是满并且该闪存中的多个空白块的数量低于预定数时,对该第一及该第二随机写入块执行合并操作,分配该闪存的空白块作为第三随机写入块,以及将该第一及该第二随机写入块中的有效数据拷贝至该第三随机写入块。全文摘要本发明提供一种存储器系统及其映射方法。所述存储器系统包含闪存及界面装置,界面装置耦接在闪存及主机之间,存储闪存转换层,通过页面映射情况,利用块映射表及页面映射表管理闪存的多个数据块及多个日志块,以及利用独立于块映射表及页面映射表的随机写入页面映射表,通过随机写入映射情况管理闪存的多个随机写入块。上述存储器系统及其映射方法可改善块的利用率。文档编号G06F3/06GK101937319SQ201010188270公开日2011年1月5日申请日期2010年6月1日优先权日2009年6月29日发明者吕柏青,江俊颖申请人:联发科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1