CN109840219B - 大容量固态存储设备的地址转换系统与方法 - Google Patents
大容量固态存储设备的地址转换系统与方法 Download PDFInfo
- Publication number
- CN109840219B CN109840219B CN201711223024.3A CN201711223024A CN109840219B CN 109840219 B CN109840219 B CN 109840219B CN 201711223024 A CN201711223024 A CN 201711223024A CN 109840219 B CN109840219 B CN 109840219B
- Authority
- CN
- China
- Prior art keywords
- translation
- address
- page
- physical
- conversion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000013519 translation Methods 0.000 title claims abstract description 336
- 239000007787 solid Substances 0.000 title claims abstract description 84
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000006243 chemical reaction Methods 0.000 claims abstract description 192
- 238000003672 processing method Methods 0.000 claims description 105
- 230000004044 response Effects 0.000 claims description 49
- 230000008569 process Effects 0.000 claims description 26
- 238000012545 processing Methods 0.000 claims description 26
- 238000013507 mapping Methods 0.000 claims description 21
- 238000010586 diagram Methods 0.000 description 14
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 101000994880 Homo sapiens Inorganic pyrophosphatase 2, mitochondrial Proteins 0.000 description 3
- 102100034415 Inorganic pyrophosphatase 2, mitochondrial Human genes 0.000 description 3
- OXXJZDJLYSMGIQ-ZRDIBKRKSA-N 8-[2-[(e)-3-hydroxypent-1-enyl]-5-oxocyclopent-3-en-1-yl]octanoic acid Chemical compound CCC(O)\C=C\C1C=CC(=O)C1CCCCCCCC(O)=O OXXJZDJLYSMGIQ-ZRDIBKRKSA-N 0.000 description 2
- 101001057699 Homo sapiens Inorganic pyrophosphatase Proteins 0.000 description 2
- 102100027050 Inorganic pyrophosphatase Human genes 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- CXOXHMZGEKVPMT-UHFFFAOYSA-N clobazam Chemical compound O=C1CC(=O)N(C)C2=CC=C(Cl)C=C2N1C1=CC=CC=C1 CXOXHMZGEKVPMT-UHFFFAOYSA-N 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 229940044442 onfi Drugs 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提供大容量固态存储设备的地址转换系统与方法。本申请的地址转换系统包括NVM芯片和存储器,NVM芯片包括多个物理块,物理块包括数据块、转换块与更新块;数据块与更新块中记录被写入固态存储设备的数据;转换块记录多个逻辑地址与物理地址的对应关系;存储器中记录全局转换目录、缓存的转换页与更新转换表。
Description
技术领域
本申请涉及固态存储设备技术领域,具体地,应用于大容量固态存储设备的地址转换系统与方法。
背景技术
图1展示了固态存储设备的框图。固态存储设备102同主机相耦合,用于为主机提供存储能力。主机同固态存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA(Serial Advanced Technology Attachment,串行高级技术附件)、SCSI(Small Computer System Interface,小型计算机系统接口)、SAS(Serial AttachedSCSI,串行连接SCSI)、IDE(Integrated Drive Electronics,集成驱动器电子)、USB(Universal Serial Bus,通用串行总线)、PCIE(Peripheral Component InterconnectExpress,PCIe,高速外围组件互联)、NVMe(NVM Express,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与固态存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个NVM芯片105以及DRAM(Dynamic Random Access Memory,动态随机访问存储器)110。
NAND闪存、相变存储器、FeRAM(Ferroelectric RAM,铁电存储器)、MRAM(MagneticRandom Access Memory,磁阻存储器)、RRAM(Resistive Random Access Memory,阻变存储器)等是常见的NVM。
接口103可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。
控制部件104用于控制在接口103、NVM芯片105以及DRAM 110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件104可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件104可以是FPGA(Field-programmable gate array,现场可编程门阵列)、ASIC(Application SpecificIntegrated Circuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理IO(Input/Output)命令。控制部件104还可以耦合到DRAM 110,并可访问DRAM 110的数据。在DRAM可存储FTL表和/或缓存的IO命令的数据。
控制部件104包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到NVM芯片105,并以遵循NVM芯片105的接口协议的方式向NVM芯片105发出命令,以操作NVM芯片105,并接收从NVM芯片105输出的命令执行结果。已知的NVM芯片接口协议包括“Toggle”、“ONFI”等。
存储器目标(Target)是NAND闪存封装内的共享CE(Chip Enable,芯片使能)信号的一个或多个逻辑单元(LUN,Logic UNit)。NAND闪存封装内可包括一个或多个管芯(Die)。典型地,逻辑单元对应于单一的管芯。逻辑单元可包括多个平面(Plane)。逻辑单元内的多个平面可以并行存取,而NAND闪存芯片内的多个逻辑单元可以彼此独立地执行命令和报告状态。
存储介质上通常按页来存储和读取数据。而按块来擦除数据。块(也称物理块)包含多个页。块包含多个页。存储介质上的页(称为物理页)具有固定的尺寸,例如17664字节。物理页也可以具有其他的尺寸。
在固态存储设备中,利用FTL(Flash Translation Layer,闪存转换层)来维护从逻辑地址到物理地址的映射信息。逻辑地址构成了操作系统等上层软件所感知到的固态存储设备的存储空间。物理地址是用于访问固态存储设备的物理存储单元的地址。在相关技术中还可利用中间地址形态实施地址映射。例如将逻辑地址映射为中间地址,进而将中间地址进一步映射为物理地址。
存储了从逻辑地址到物理地址的映射信息的表结构被称为FTL表。FTL表是固态存储设备中的重要元数据。通常FTL表的数据项记录了固态存储设备中以数据页为单位的地址映射关系。
FTL表包括多个FTL表条目(或称表项)。在一种情况下,每个FTL表条目中记录了一个逻辑页地址与一个物理页的对应关系。在另一种情况下,每个FTL表条目中记录了连续的多个逻辑页地址与连续的多个物理页的对应关系。在又一种情况下,每个FTL表条目中记录了逻辑块地址与物理块地址的对应关系。在依然又一种情况下,FTL表中记录逻辑块地址与物理块地址的映射关系,和/或逻辑页地址与物理页地址的映射关系。
在“DFTL:A Flash Translation Layer Employing Demand-based SelectiveCaching of Page-level Address Mappings”公开了改进的FTL算法及其在固态存储设备中被应用的方式,其全文可从http://www.cse.psu.edu/~buu1/papers/ps/dftl- asplos09.pdf获得。
大块包括来自多个逻辑单元(LUN),也称为逻辑单元组的每个的物理块。每个逻辑单元可以为大块提供一个物理块。例如,在图2所示出的大块的示意图中,在每16个逻辑单元(LUN)上构造大块。每个大块包括16个分别来自16个逻辑单元(LUN)的物理块。在图2的例子中,大块0包括来自16个逻辑单元(LUN)中的每个逻辑单元的物理块0,而大块1包括来自每个逻辑单元(LUN)的物理块1。也可以以多种其他方式来构造大块。
例如,在大块中构造页条带,每个逻辑单元(LUN)内相同物理地址的物理页构成了“页条带”。图2中,物理页P0-0、物理页P0-1……与物理页P0-x构成了页条带0,其中,物理页P0-0、物理页P0-1……物理页P0-14用于存储用户数据,而物理页P0-x用于存储根据条带内的所有用户数据计算得到的校验数据。类似地,图2中,物理页P2-0、物理页P2-1……与物理页P2-x构成了页条带2。用于存储校验数据的物理页可以位于页条带中的任意位置。作为又一个例子,在申请号为201710752321.0的中国专利申请的图3A及其说明书中对图3A的相关描述中,提供了大块的又一种构造方式。
当逻辑页被重复写入数据,FTL表条目中记录逻辑页地址与最新的物理页地址的对应关系,而曾经被写入数据但不再被引用(例如,FTL表中没有记录)成为“垃圾”(数据)。将已经被写入数据,且被引用(例如,在FTL表中有记录)的数据称为有效数据,而将“垃圾”称为脏数据。将含有脏数据的物理块称为“脏物理块”(或者,将被写满了数据的物理块也称为“脏物理块”),将未被写入数据的物理块称为“空闲物理块”。
发明内容
本申请的大容量固态存储设备的地址转换系统与方法,用于解决现有技术中请求处理过程速度慢的技术问题。本申请的固态存储设备的地址转换系统与方法,提高了请求的处理速度。
根据本申请的第一方面,提出了根据本申请第一方面的第一固态存储设备的地址转换系统,包括NVM芯片和存储器,NVM芯片包括多个物理块,物理块包括数据块、转换块与更新块;数据块与更新块中记录被写入固态存储设备的数据;转换块记录多个逻辑地址与物理地址的对应关系;存储器中记录全局转换目录、缓存的转换页与更新转换表。
根据本申请的第一方面的第一固态存储设备的地址转换系统,提供了根据本申请第一方面的第二固态存储设备的地址转换系统,存储器中还记录了物理块分配表,用于记录被分配的物理块或被分配的大块。
根据本申请的第一方面的第二固态存储设备的地址转换系统,提供了根据本申请第一方面的第三固态存储设备的地址转换系统,物理块分配表还包括空闲块表,记录未被使用或未被分配的物理块或大块。
根据本申请的第一方面的第一至第三固态存储设备的地址转换系统之一,提供了根据本申请第一方面的第四固态存储设备的地址转换系统,转换块包括多个转换页。
根据本申请的第一方面的第一至第四固态存储设备的地址转换系统之一,提供了根据本申请第一方面的第五固态存储设备的地址转换系统,转换页包括多个记录,每个记录提供了逻辑地址与物理地址的对应关系。
根据本申请的第一方面的第五固态存储设备的地址转换系统,提供了根据本申请第一方面的第六固态存储设备的地址转换系统,转换页中,多个记录按记录的逻辑地址排序,按逻辑地址顺序记录了连续的多个逻辑地址各自对应的物理地址。
根据本申请的第一方面的第一至第六固态存储设备的地址转换系统之一,提供了根据本申请第一方面的第七固态存储设备的地址转换系统,一个或多个转换页的记录记录了逻辑地址与相对应的物理地址的地址映射关系。
根据本申请的第一方面的第一至第七固态存储设备的地址转换系统之一,提供了根据本申请第一方面的第八固态存储设备的地址转换系统,转换块的物理地址连续的转换页的记录所对应的逻辑地址连续。
根据本申请的第一方面的第八固态存储设备的地址转换系统,提供了根据本申请第一方面的第九固态存储设备的地址转换系统,每个转换页的所有记录所暗示的连续逻辑地址空间,为逻辑地址段。
根据本申请的第一方面的第一至第九固态存储设备的地址转换系统之一,提供了根据本申请第一方面的第十固态存储设备的地址转换系统,全局转换目录包括多个条目,每个条目指示了逻辑地址段与转换页地址的对应关系,转换页地址为转换页在NVM芯片中的物理地址。
根据本申请的第一方面的第十固态存储设备的地址转换系统,提供了根据本申请第一方面的第十一固态存储设备的地址转换系统,全局转换目录的条目是排序的,按其所指示的逻辑地址段排序。
根据本申请的第一方面的第一至第十一固态存储设备的地址转换系统之一,提供了根据本申请第一方面的第十二固态存储设备的地址转换系统,缓存的转换页是转换页在存储器中的副本。
根据本申请的第一方面的第十二固态存储设备的地址转换系统,提供了根据本申请第一方面的第十三固态存储设备的地址转换系统,缓存的转换页包括多个条目,每个条目记录转换页中的一条记录。
根据本申请的第一方面的第十二或第十三固态存储设备的地址转换系统,提供了根据本申请第一方面的第十四固态存储设备的地址转换系统,少数而非全部的转换页在存储器中有副本。
根据本申请的第一方面的第十至第十四固态存储设备的地址转换系统之一,提供了根据本申请第一方面的第十五固态存储设备的地址转换系统,全局转换目录的每个条目还记录其对应的转换页是否在存储器中有副本。
根据本申请的第一方面的第十至第十五固态存储设备的地址转换系统之一,提供了根据本申请第一方面的第十六固态存储设备的地址转换系统,更新转换表包括多个条目,每个条目记录了逻辑地址与物理地址的对应关系。
根据本申请的第一方面的第十六固态存储设备的地址转换系统,提供了根据本申请第一方面的第十七固态存储设备的地址转换系统,更新转换表的条目数量,足以容纳更新块中的所有数据单元的物理地址。
根据本申请的第一方面的第十六或第十七固态存储设备的地址转换系统,提供了根据本申请第一方面的第十八固态存储设备的地址转换系统,更新转换表中各个条目记录的逻辑地址,为有序的或无序的。
根据本申请的第二方面,提出了根据本申请第二方面的第一读操作的处理方法,包括:响应于接收了读操作,用读操作的逻辑地址尝试得到物理地址;响应于获得了物理地址,读出数据。
根据本申请的第二方面的第一读操作的处理方法,提供了根据本申请第二方面的第二读操作的处理方法,用读操作的逻辑地址尝试得到物理地址的方法包括:用读操作的逻辑地址查询更新转换表、用读操作的逻辑地址查询缓存转换页或用读操作的逻辑地址所在的逻辑地址段查询全局转换目录中的一种或多种。
根据本申请的第二方面的第二读操作的处理方法,提供了根据本申请第二方面的第三读操作的处理方法,响应于更新转换表命中,从更新转换表中获取同逻辑地址对应的物理地址。
根据本申请的第二方面的第二或第三读操作的处理方法,提供了根据本申请第二方面的第四读操作的处理方法,用读操作的逻辑地址查询更新转换表时,响应于更新转换表未命中,访问缓存的转换页。
根据本申请的第二方面的第四读操作的处理方法,提供了根据本申请第二方面的第五读操作的处理方法,响应于缓存的转换页命中,从缓存的转换页的对应条目中获取物理地址。
根据本申请的第二方面的第四或第五读操作的处理方法,提供了根据本申请第二方面的第六读操作的处理方法,响应于访问缓存的转换页未命中,用读操作的逻辑地址所在的逻辑地址段查询全局转换目录,得到对应于该逻辑地址段的转换页地址;以及根据转换页地址,从NVM芯片中读出转换页,并根据逻辑地址从读出的转换页中获取同逻辑地址对应的物理地址。
根据本申请的第二方面的第二读操作的处理方法,提供了根据本申请第二方面的第七读操作的处理方法,用读操作的逻辑地址查询更新转换表与查询缓存转换页被并行处理。
根据本申请的第二方面的第八读操作的处理方法,提供了根据本申请第二方面的第九读操作的处理方法,用读操作的逻辑地址查询更新转换表与查询缓存转换页都命中时,使用更新转换表提供的物理地址。
根据本申请的第二方面的第八读操作的处理方法,提供了根据本申请第二方面的第十读操作的处理方法,响应于读操作的逻辑地址查询更新转换表与查询缓存转换页之一命中时,使用命中的更新转换表或者命中的缓存转换页提供的物理地址。
根据本申请的第二方面的第二读操作的处理方法,提供了根据本申请第二方面的第十一读操作的处理方法,用读操作的逻辑地址所在的逻辑地址段查询全局转换目录,确定读操作的逻辑地址是否会命中缓存的转换页。
根据本申请的第二方面的第十一读操作的处理方法,提供了根据本申请第二方面的第十二读操作的处理方法,若读操作的逻辑地址会命中缓存的转换页,从全局转换目录获取缓存的转换页的地址,用读操作的逻辑地址查询缓存的转换页,从缓存的转换页的对应条目中获取物理地址。
根据本申请的第二方面的第十一或第十二读操作的处理方法,提供了根据本申请第二方面的第十三读操作的处理方法,若读操作的逻辑地址不会命中缓存的转换页,从全局转换目录得到对应于该逻辑地址段的转换页地址;以及根据转换页地址,从NVM芯片中读出转换页,并根据逻辑地址从读出的转换页中获取同逻辑地址对应的物理地址。
根据本申请的第二方面的第十一读操作的处理方法,提供了根据本申请第二方面的第十四读操作的处理方法,用读操作的逻辑地址查询更新转换表、用读操作的逻辑地址查询缓存转换页以及用读操作的逻辑地址所在的逻辑地址段查询全局转换目录被并行处理。
根据本申请的第二方面的第十四读操作的处理方法,提供了根据本申请第二方面的第十五读操作的处理方法,响应于更新转换表、缓存的转换表均未命中时,使用从全局转换目录获取的转换页地址从NVM芯片读取记录了逻辑地址与物理地址对应关系的转换页。
根据本申请的第一方面的第一至第十五读操作的处理方法之一,提供了根据本申请第一方面的第十六读操作的处理方法,全局转换目录中记录待访问的逻辑地址是否会命中缓存的转换页。
根据本申请的第二方面的第十六读操作的处理方法,提供了根据本申请第二方面的第十七读操作的处理方法,仅在读操作访问的逻辑地址会命中缓存的转换页时,才访问缓存的转换页。
根据本申请的第二方面的第二读操作的处理方法,提供了根据本申请第二方面的第十八读操作的处理方法,仅在更新转换表未命中时,才访问全局转换目录和/或缓存的转换页。
根据本申请的第二方面的第十八读操作的处理方法,提供了根据本申请第二方面的第十九读操作的处理方法,响应于缓存的转换页命中,从缓存的转换页的对应条目中获取物理地址。
根据本申请的第二方面的第十九读操作的处理方法,提供了根据本申请第二方面的第二十读操作的处理方法,响应于访问缓存的转换页未命中,用读操作的逻辑地址所在的逻辑地址段查询全局转换目录。
根据本申请的第三方面,提出了根据本申请第三方面的第一读操作的处理方法,包括:响应于接收了读操作,用读操作的逻辑地址查询缓存转换页;响应于缓存的转换页未命中,根据从全局转换目录获取的转换页地址,使用转换页地址从NVM芯片中读出转换页,作为缓存的转换页;根据读操作指示的逻辑地址从缓存的转换页中获取同逻辑地址对应的物理地址;使用物理地址访问NVM芯片,以读出数据。
根据本申请的第三方面的第一读操作的处理方法,提供了根据本申请第三方面的第二读操作的处理方法,响应于转换页的存储区已满,选择缓存的转换页进行淘汰;将淘汰的缓存的转换页写入NVM芯片的转换块;在全局转换目录中记录承载该转换页的物理地址;释放该转换页的转换页缓存。
根据本申请的第四方面,提出了根据本申请第四方面的第一写操作的处理方法,包括:响应于收到了写操作,从更新块获取空白物理页;将写操作指示的数据写入物理页;以及在更新转换表中记录写操作指示的逻辑地址与物理页的物理地址具有的关联关系。
根据本申请的第四方面的第一写操作的处理方法,提供了根据本申请第四方面的第二写操作的处理方法,将写操作指示的数据写入物理页与在更新转换表中记录写操作指示的逻辑地址与物理地址具有的关联关系,被并行处理。
根据本申请的第四方面的第一或第二写操作的处理方法,提供了根据本申请第四方面的第三写操作的处理方法,在处理写操作的过程中,即使写操作指示的逻辑地址命中了缓存的转换表,也不更新缓存的转换表。
根据本申请的第四方面的第一至第三写操作的处理方法之一,提供了根据本申请第四方面的第四写操作的处理方法,写入操作所指示的数据,不会被写入数据块。
根据本申请的第四方面的第一至第四写操作的处理方法之一,提供了根据本申请第四方面的第五写操作的处理方法,响应于收到了写操作,检查写操作所指示的逻辑地址是否命中缓存的转换页。
根据本申请的第四方面的第五写操作的处理方法,提供了根据本申请第四方面的第六写操作的处理方法,若逻辑地址命中缓存的转换页,从数据块获取可被写入数据的物理页。
根据本申请的第四方面的第六写操作的处理方法,提供了根据本申请第四方面的第七写操作的处理方法,将数据写入物理页,以及在缓存的转换页中记录写操作指示的逻辑地址与物理地址。
根据本申请的第四方面的第六或第七写操作的处理方法,提供了根据本申请第四方面的第八写操作的处理方法,若写操作的逻辑地址命中缓存的转换页,不从更新块获取物理页。
根据本申请的第四方面的第六至第八写操作的处理方法之一,提供了根据本申请第四方面的第九写操作的处理方法,还查询该逻辑地址是否命中了更新转换表。
根据本申请的第四方面的第九写操作的处理方法,提供了根据本申请第四方面的第十写操作的处理方法,响应于逻辑地址命中更新转换表,在更新转换表中记录逻辑地址与物理地址的对应关系。
根据本申请的第四方面的第九写操作的处理方法,提供了根据本申请第四方面的第十一写操作的处理方法,响应于逻辑地址命中更新转换表,在更新转换表中使与该逻辑地址有关的条目无效。
根据本申请的第五方面,提出了根据本申请第五方面的第一写操作的处理方法,包括:响应于收到了写操作,尝试从更新块中分配可向其写入数据的物理页;响应于更新块有可用的物理页,获取更新块中可用的物理页的地址;将数据写入物理页;以及在更新转换表中记录写入数据的逻辑地址与物理地址的对应关系。
根据本申请的第五方面的第一写操作的处理方法,提供了根据本申请第五方面的第二写操作的处理方法,若写操作所指示的逻辑地址在更新转换表中已有记录,在更新转换表的指示了该逻辑地址的条目中更新物理地址。
根据本申请的第五方面的第一写操作的处理方法,提供了根据本申请第五方面的第三写操作的处理方法,若写操作所指示的逻辑地址在更新转换表中没有记录,在更新转换表的空白条目中记录该逻辑地址与物理地址的对应关系。
根据本申请的第五方面的第三写操作的处理方法,提供了根据本申请第五方面的第四写操作的处理方法,不更新缓存的转换表。
根据本申请的第五方面的第一写操作的处理方法,提供了根据本申请第五方面的第五写操作的处理方法,响应于更新块没有可用的物理页,选择待回收的更新块,将被选择的更新块的数据搬移到数据块;更新记录了更新块中的有效数据的逻辑地址与物理地址映射关系的一个或多个转换页。
根据本申请的第五方面的第五写操作的处理方法,提供了根据本申请第五方面的第六写操作的处理方法,选择无效数据最多的更新块、最久未被访问的更新块或者最久未被更新的更新块中的一种或多种作为要回收的更新块。
根据本申请的第五方面的第五或第六写操作的处理方法,提供了根据本申请第五方面的第七写操作的处理方法,更新该一个或多个转换页在全局转换目录中的条目,以记录这些转换页的新物理地址。
根据本申请的第五方面的第五至第七写操作的处理方法之一,提供了根据本申请第五方面的第八写操作的处理方法,在更新转换表中,移除同更新块中的有效数据所对应的记录。
根据本申请的第五方面的第五至第八写操作的处理方法之一,提供了根据本申请第五方面的第九写操作的处理方法,在更新该一个或多个转换页的过程中,还将除更新块之外的其他更新块的逻辑地址属于该一个或多个转换页所对应的逻辑地址段的有效数据,一并搬移到数据块,并在该一个或多个转换页中更新这些被一并搬移的数据的物理地址。
根据本申请的第五方面的第五至第九写操作的处理方法之一,提供了根据本申请第五方面的第十写操作的处理方法,在该一个或多个转换页中记录有效数据的新物理地址。
根据本申请的第五方面的第五至第十写操作的处理方法之一,提供了根据本申请第五方面的第十一写操作的处理方法,在更新转换表中移除对应于有效数据的条目。
根据本申请的第五方面的第五至第十一写操作的处理方法之一,提供了根据本申请第五方面的第十二写操作的处理方法,周期性地或在指定条件满足时,从更新块回收有效数据。
根据本申请的第六方面,提出了根据本申请第六方面的第一固态存储设备的地址转换系统,包括NVM芯片和存储器,NVM芯片包括多个物理块,物理块包括数据块、转换块、更新块以及冷数据块;更新块中记录被写入固态存储设备的数据;数据块中记录从更新块回收的有效数据;转换块记录多个逻辑地址与物理地址的对应关系;冷数据块中记录从数据块回收的有效数据;存储器中记录了全局转换目录、缓存的转换页与更新转换表。
根据本申请的第六方面的第一固态存储设备的地址转换系统,提供了根据本申请第六方面的第二固态存储设备的地址转换系统,更新转换表包括多个条目,每个条目记录了逻辑地址与物理地址的对应关系。
根据本申请的第六方面的第一或第二固态存储设备的地址转换系统,提供了根据本申请第六方面的第三固态存储设备的地址转换系统,更新转换表的条目数量,足以容纳更新块与冷数据块中的所有有效数据单元的物理地址。
根据本申请的第六方面的第一至第三固态存储设备的地址转换系统之一,提供了根据本申请第六方面的第四固态存储设备的地址转换系统,存储器中还记录了物理块分配表,用于记录被分配的物理块或被分配的大块。
根据本申请的第七方面,提供了根据本申请第七方面的第一垃圾回收操作的处理方法,包括:选取待回收的数据块;从冷数据块中分配物理页;从待回收数据块获取有效数据,并写入物理页地址;在更新转换表中记录写入数据的逻辑地址与物理地址的对应关系;释放待回收的数据块。
根据本申请的第七方面的第一垃圾回收操作的处理方法,提供了根据本申请第七方面的第二垃圾回收操作的处理方法,擦除待回收的数据块。
根据本申请的第七方面的第一垃圾回收操作的处理方法,提供了根据本申请第七方面的第三垃圾回收操作的处理方法,响应于冷数据块中没有可用的物理页,选择冷数据块,将被选择的冷数据块的有效数据搬移到数据块;更新记录冷数据块中的有效数据的逻辑地址与物理地址映射关系的一个或多个转换页。
根据本申请的第七方面的第三垃圾回收操作的处理方法,提供了根据本申请第七方面的第四垃圾回收操作的处理方法,选择无效数据最多的冷数据块、最久未被访问的冷数据块或者最久未被更新的冷数据块中的一种或多种作为要回收的冷数据块。
根据本申请的第七方面的第三或第四垃圾回收操作的处理方法,提供了根据本申请第七方面的第五垃圾回收操作的处理方法,更新该一个或多个转换页在全局转换目录中的条目,以记录这些转换页的新物理地址。
根据本申请的第七方面的第三至第五垃圾回收操作的处理方法之一,提供了根据本申请第七方面的第六垃圾回收操作的处理方法,在更新转换表中,移除同冷数据块中的有效数据所对应的记录。
根据本申请的第七方面的第三至第六垃圾回收操作的处理方法之一,提供了根据本申请第七方面的第七垃圾回收操作的处理方法,在更新该一个或多个转换页的过程中,还将除冷数据块之外的其他冷数据块和/或更新块中逻辑地址属于该一个或多个转换页所对应的逻辑地址段的有效数据,一并搬移到数据块,并在该一个或多个转换页中更新这些被一并搬移的数据的物理地址。
根据本申请的第八方面,提供了根据本申请第八方面的第一固态存储设备,包括控制器与非易失存储器芯片,其中,控制器执行根据本申请的第二方面、第三方面、第四方面、第五方面或第七方面的方法之一。
根据本申请的第九方面,提供了根据本申请第九方面的第一包含程序代码的程序,当被载入CPU并在CPU中执行时,程序使CPU执行根据本申请的第二方面、第三方面、第四方面、第五方面或第七方面的方法之一。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域技术人员来讲,还可以根据这些附图获得其他的附图。
图1是根据本申请实施例的固态存储设备的框图;
图2是根据本申请实施例的大块的示意图;
图3是根据本申请实施例的固态存储设备的地址转换系统的示意图;
图4是根据本申请实施例的读操作的处理流程图;
图5是根据本申请又一实施例的读操作的处理流程;
图6是根据本申请实施例的写操作的处理流程;
图7是根据本申请又一实施例的写操作的处理流程;
图8是根据本申请实施例的垃圾回收过程的示意图;
图9是根据本申请又一实施例的固态存储设备的地址转换系统的示意图;
图10是根据本申请图9的实施例的垃圾回收操作的处理流程图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图3是根据本申请实施例的固态存储设备的地址转换系统的示意图。固态存储设备的NVM芯片(也参看图1,NVM芯片105)提供了多个物理块。按照存储数据内容的不同,物理块被分为数据块、转换块与更新块。数据块与更新块中记录被写入固态存储设备的数据。根据本申请的实施例,写入固态存储设备的数据首先被写入更新块,并在适当的时候,将更新块中记录的数据搬移到数据块,或将一些更新块视作数据块。转换块记录逻辑地址与物理地址的对应关系。
转换块包括多个转换页,转换页是例如NVM存储介质的页,或者物理页中具有指定尺寸(例如,4KB)的存储空间。转换页具有物理地址(页地址),通过使用转换页的物理地址,可访问固态存储设备的指定转换页。例如,图3中,转换块包括转换页a与转换页b。转换页记录了多个记录。每个记录是例如FTL表的一个表项,记录了物理地址。而记录在转换页以及转换块中的位置,暗示了记录所对应的逻辑地址。例如,转换页a中,第一条记录暗示了逻辑地址a,第一条记录的值为物理地址a,而物理地址增序排序的第二条记录暗示了逻辑地址a+1,第二条记录的值为物理地址a1。需要指出的,图3中“逻辑地址a”与“物理地址a”为FTL表的一个表项所记录的地址映射关系,但“逻辑地址a”与“物理地址a”在数值上没有关系。转换页中,按物理地址排序的多个记录,按顺序记录了连续的多个逻辑地址各自对应的物理地址。“逻辑地址a”与“逻辑地址a+1”是数值上相邻的逻辑地址,每个逻辑地址指示一个具有指定尺寸的数据单元(例如4K)。“物理地址a”与“物理地址a1”在数值上没有关系,各自可以是固态存储设备的NVM芯片提供的地址空间内的任意值。
类似地,转换页b中,第一条记录暗示了逻辑地址b,第一条记录的值为物理地址b,而物理地址增序排序的第二条记录暗示了逻辑地址b+1,第二条记录的值为物理地址b1。进一步地,作为举例,转换页b与转换页a的物理地址相邻,且转换页b的物理地址在后,则逻辑地址b的第一条记录暗示的逻辑地址b同转换页a所暗示的最后一个逻辑地址(记为an)相邻,且在逻辑地址an之后。
根据本申请的实施例,一个或多个转换页记录了固态存储设备提供的逻辑地址空间的每个逻辑地址(以数据单元为粒度)到物理地址的映射。每个转换页的所有记录所暗示的连续逻辑地址空间,被称为逻辑地址段。
继续参看图3,固态存储设备的存储器(也参看图1,例如DRAM 110)中记录多种数据表,包括全局转换目录、缓存的转换页与更新转换表。
全局转换目录包括多个条目,每个条目指示了<逻辑地址段,转换页地址>的对应关系。全局转换目录的条目数量等同于转换页的数量,每个条目记录了一个转换页在NVM芯片中的物理地址(转换页地址)。全局转换目录的条目是排序的,按其所指示的逻辑地址段的数值顺序排序,从而条目在全局转换目录中的位置暗示了该条目所指示的逻辑地址段。
更新转换表包括多个条目,每个条目记录了<逻辑地址,物理地址>的对应关系。逻辑地址指示具有指定尺寸的数据单元,物理地址指示该数据单元在NVM芯片中的物理地址。可选地,设置更新转换表的条目数量,以容纳更新块(参看图3)中的所有(有效)数据单元的物理地址。更新转换表中的各个条目记录的逻辑地址,可以是无序的。
缓存的转换页是转换页在存储器中的副本。缓存的转换页包括多个条目,每个条目记录转换页中的一条记录。可选地,少数而非全部的转换页在存储器中有副本。
可选地,全局转换目录的每个条目还记录其对应的转换页是否在存储器中有副本。
可选地,存储器中还记录物理块分配表,包括数据块表,转换块表与更新块表,其中分别记录了固态存储设备的NVM芯片的哪些物理块被用作数据块,哪些物理块被用作转换块,哪些物理块被用作更新块。以及可选地,物理块分配表还包括空闲块表,记录未被使用或分配的物理块。
图4是根据本申请实施例的读操作的处理流程图。
读操作指示从逻辑地址或逻辑地址范围获取数据。以读操作访问逻辑地址为例描述本申请的实施例。对于访问逻辑地址范围的读操作,将逻辑地址范围的各个地址获取的数据组合以响应读操作。
在一个例子中,响应于接收了读操作,用读操作的逻辑地址查询更新转换表(也参看图3),以尝试得到同读操作指示的逻辑地址对应的物理地址(记作PPA)(410)。在一些情况下,更新转换表中记录了读操作指示的逻辑地址与物理地址PPA的对应关系,在查询更新转换表时,更新转换表命中(420),从更新转换表中获取同逻辑地址对应的物理地址PPA,以及使用获取的物理地址PPA访问NVM芯片,以从NVM芯片中读出数据(430)。当更新转换表命中时,意味着要读取的数据被记录在更新块中,获取的物理地址PPA指示的是更新块的物理地址。
若更新转换表中未记录读操作指示的逻辑地址与物理地址PPA的对应关系,则更新转换表未命中(420)。也意味着要读取的数据未被记录在更新块中。
在又一个例子中,响应于接收了读操作,用读操作的逻辑地址查询缓存的转换页,以尝试得到同逻辑地址指示的逻辑地址对应的物理地址(PPA)(450)。缓存的转换页的条目是按逻辑地址排序的,每个缓存的转换页及其条目对应指定的逻辑地址段或逻辑地址,因而通过读操作的逻辑地址可确定缓存的转换页是否命中(460)。若缓存的转换页命中,从缓存的转换页的对应条目中获取物理地址PPA,并用物理地址PPA从NVM芯片读出数据(480)。
可选地,步骤410与步骤450被并行处理。响应于收到读操作,既查询更新转换表,也判断缓存的转换表是否命中。在更新转换表与缓存的转换表都命中的情况下,使用更新转换表提供的物理地址PPA。若仅有其中之一命中,则使用命中的转换表提供的物理地址PPA。
在依然又一个例子中,响应于接收了读操作,用读操作的逻辑地址所在的逻辑地址段查询全局转换目录,以得到对应于该逻辑地址段的转换页地址(记为TPA)(490),转换页地址TPA记录了转换页在转换块中的物理地址。以及根据转换页地址TPA从NVM芯片中读出转换页,并根据逻辑地址从读出的转换页中获取同逻辑地址对应的物理地址(PPA)(470)。以及再用获得的物理地址PPA从NVM芯片读出数据(480)。
可选地,步骤410、步骤450与步骤490被并行处理。响应于收到读操作,既查询更新转换表,也判断缓存的转换表是否命中,还查询全局转换目录以获得转换页地址TPA。若更新转换表、缓存的转换表均未命中(460的“否”分支),则使用从全局转换目录获取的转换页地址TPA从NVM芯片读取记录了逻辑地址与物理地址对应关系的转换页。
可选地,在全局转换表中记录待访问的逻辑地址是否会命中缓存的转换页。仅在读操作访问的逻辑地址会命中缓存的转换页时,才访问缓存的转换页。
依然可选地,仅在更新转换表未命中时,才访问全局转换目录和/或缓存的转换表。
图5是根据本申请又一实施例的读操作的处理流程。
图5展示的流程图中,从缓存的转换页未命中(也参看图4的460)开始描述,而省略了读操作处理流程中的其他部分(参看图4)。图5的实施例中,响应于缓存的转换页未命中,从转换块获取转换页,并记录在缓存中,成为新的缓存的转换页。可以理解的,图4展示的实施例中,无须实施图5的相关步骤。
参看图5,对于读操作,响应于缓存的转换页未命中(510)(也参看图4的460),确定用于存储缓存的转换页的存储区(称为转换页缓存)是否还有空间容纳新的转换页(520)。
在一个例子中,转换页缓存未满,可以容纳新的转换页,则根据从全局转换目录获取的转换页地址TPA(也参看图4,490),使用转换页地址TPA从NVM芯片中读出转换页,读出转换页并存储在转换页缓存中(530)。从而读出的转换页也成为缓存的转换页。根据读操作指示的逻辑地址从缓存的转换页中获取同逻辑地址对应的物理地址PPA(540),并使用物理地址PPA访问NVM芯片,以读出数据(550)。
在又一个例子中,转换页缓存已满,无法容纳新的转换页,需要选择缓存的转换页(记为TP)进行淘汰(560),以获取存储空间容纳新的转换页。将缓存的转换页TP写入NVM芯片的转换块(562),在全局转换目录中记录承载该转换页TP的物理地址(564),以及释放该转换页TP的转换页缓存(566),以得到存储空间容纳新的转换页。接下来,转向步骤530以继续读操作处理过程。
在依然又一个例子中,为提高读操作处理速度,固态存储设备努力确保转换页缓存中随时可获得存储空间以容纳新的转换页,而无需在读操作的处理过程中实施与步骤520、步骤560等相关的淘汰缓存的转换页的过程。例如,周期性地,或者指定条件满足时(例如,缓存的转换页过多,转换页缓存剩余空间较低等),发起步骤560到步骤566的过程,以释放转换页缓存空间。进而,在处理读操作时,若缓存的转换页未命中(510),无须实施步骤520(因为已确保转换页缓存中随时可获得存储空间以容纳新的转换页),而直接实施步骤530。
图6是根据本申请实施例的写操作的处理流程。写操作指示向逻辑地址或逻辑地址范围写入数据。以写操作访问逻辑地址为例描述本申请的实施例。对于访问逻辑地址范围的写操作,将数据写入逻辑地址范围的各个地址以响应读操作。
在一个例子中,响应于收到写操作,从更新块获取可写入数据的空白物理页(其物理地址记为PPA)(610)。将写操作指示的数据写入物理地址PPA(620),以及在更新转换表中记录写操作指示的逻辑地址与物理地址PPA具有的关联关系(630)。
可选地,步骤620与步骤630并行执行。在又一个例子中,不限步骤620与步骤630的执行顺序,但两个步骤都完成才代表写操作被处理完成。
优选地,在处理写操作的过程中,即使写操作指示的逻辑地址命中了缓存的转换表,也不更新缓存的转换表,从而减少处理写操作过程中所需的操作。
在根据本申请的实施例中,写入操作所指示的数据,都被写入更新块,而不会被写入数据块。从而更新转换表的条目数量无须超过更新块所容纳的物理页或数据单元的数量,限制了更新转换表的尺寸不会过大。
在又一种实施方式中,响应于写操作,首先检查写操作所指示的逻辑地址是否命中缓存的转换页。若逻辑地址命中缓存的转换页,从数据块获取可被写入数据的物理地址(记为PPA2)。将数据写入物理地址PPA2,以及在缓存的转换页中记录写操作指示的逻辑地址与物理地址PPA2。在写操作的逻辑地址命中缓存的转换页时,不从更新块获取物理页。但查询该逻辑地址是否命中了更新转换表。以及在逻辑地址命中更新转换表的情况下,在更新转换表中记录逻辑地址与物理地址PPA2的对应关系,或者在更新转换表中使与该逻辑地址有关条目无效。
图7是根据本申请又一实施例的写操作的处理流程。
根据图7的实施例,更新转换表的条目数量不多于更新块可容纳有效数据的物理页数量(或可容纳有效数据单元的数量)。在处理写操作过程中,若更新块已无可用空间容纳被写入数据,需要将更新块中的有效数据搬移到数据块,以释放出更新块与更新转换表的空间。
响应于收到写操作,尝试从更新块中分配可向其写入数据的物理页。若更新块有可用的物理页(705),获取更新块中可用的物理页的地址(记为PPA)(710)。以及将数据写入物理页地址(PPA)(720),并在更新转换表中记录写入数据的逻辑地址与物理地址PPA的对应关系(730)。需要指出的,若写操作所指示的逻辑地址在更新转换表中已有记录,在步骤730,在更新转换表的指示了该逻辑地址的条目中更新物理地址。若写操作所指示的逻辑地址在更新转换表中没有记录,在步骤730,在更新转换表的空白条目中记录该逻辑地址与物理地址PPA的对应关系。以及可选地,不更新缓存的转换表。
若固态存储设备的更新块没有可用的物理页(705),需要回收更新块(740),以产生空白更新块。选择固态存储设备的更新块之一(记为UB)。可依据多种策略选择更新块UB。例如,选择无效数据最多的更新块,或者选择最久未被访问的更新块,或者选择最久未被更新的更新块。通过回收更新块,将被回收更新块的数据搬移到数据块,从而释放被回收的更新块(740)。
由于被回收的更新块UB中的有效数据的物理地址发生变更,还更新记录更新块UB中的有效数据的逻辑地址与物理地址映射关系的一个或多个转换页(记为TP0、TP1……TPn)(750)。以及还更新该一个或多个转换页(记为TP0、TP1……TPn)在全局转换目录中的条目,以记录这些转换页的新物理地址。以及在更新转换表中,移除同更新块UB中的有效数据所对应的记录,因为这些有效数据已被搬移到数据块。
在可选的实施方式中,在更新该一个或多个转换页(TP0、TP1……TPn)的过程中,还将除更新块UB之外的其他更新块中逻辑地址属于该一个或多个转换页(TP0、TP1……TPn)所对应的逻辑地址段的有效数据,一并搬移到数据块,并在该一个或多个转换页(TP0、TP1……TPn)中更新这些被一并搬移的数据的物理地址。具体地,该一个或多个转换页(TP0、TP1……TPn)所对应的逻辑地址段(记为LS),除了覆盖被回收的更新块UB中的有效数据,再除更新块UB之外的其他更新块中,也可能存在其逻辑地址属于逻辑地址段LS的有效数据(记为DV)。将有效数据DV也搬移到数据块,并在该一个或多个转换页(TP0、TP1……TPn)中记录有效数据DV的新物理地址。更新转换表中同有效数据DV对应的条目的物理地址可以更新,也可以不更新,因为有效数据DV所在的更新块并未被回收。在一种实施方式中,在更新转换表中移除对应于有效数据DV的条目,以有利于更新块的回收。而在另一种实施方式中,在更新转换表中不移除对应于有效数据DV的条目,从而可通过更新转换表提升对访问有效数据DV的读操作的响应速度。
回收更新块UB,固态存储设备有空闲的更新块出现。从空闲更新块获取物理页(其物理地址记为PPA1)(760)。以及将数据写入物理页地址(PPA1)(770),并在更新转换表中记录写入数据的逻辑地址与物理地址PPA1的对应关系(780)。
在依然又一个例子中,为提高写操作处理速度,固态存储设备努力确保随时有可被写入数据的更新块,而无需在写操作的处理过程中实施与步骤705、步骤740等相关的回收更新块。例如,周期性地,或者指定条件满足时(例如,更新块中可被写入数据的物理页数量较低等),发起步骤740与步骤750的过程,以回收更新块。进而,在处理写操作时,直接实施步骤710到步骤730。
固态存储设备还进行垃圾回收、磨损均衡等NVM存储介质管理操作。根据本申请的实施例,更新块、数据块的回收粒度可以是大块(参看图2)。在图3的实施例中,对数据块实施垃圾回收过程,回收的有效数据被写入数据块。
图8是根据本申请实施例的垃圾回收过程的示意图。大块0与大块1被写入了数据。大块0的物理页810、812、814和816等由网格框所指示的物理页在FTL(更新转换表以及转换块)中没有记录,其上的数据是脏数据。大块0的物理页830、832、834与836等由空白方框指示的物理页在FTL中有记录,其上的数据是有效数据。大块1的物理页820、822、824与826等由网格框所指示的物理页上的数据是脏数据。大块1的物理页844、842、846与848等由空白框所指示的物理页上的数据是有效数据。图8中,用网格指示的物理页所容纳的数据是脏数据,而用空白方框指示的物理页所容纳的数据是有效数据。
为进行垃圾回收,扫描脏大块(例如,大块0与大块1),将其中的有效数据读出并写入空闲大块2,以及在FTL表中记录有效数据的物理页地址的变化。在所有的有效数据都搬移到大块2后,擦除被扫描的大块0与大块1,从而使大块0与大块1变为空闲大块。
根据本申请图3的实施例,参与垃圾回收的大块0与大块1都来自数据块。
图9是根据本申请又一实施例的固态存储设备的地址转换系统的示意图。同图3相比,按照存储数据内容的不同,物理块被分为数据块、转换块、更新块以及冷数据块。数据块、冷数据块与更新块中记录被写入固态存储设备的数据。根据图9的实施例,写入固态存储设备的数据首先被写入更新块,并在适当的时候,将更新块中记录的数据搬移到数据块,或将一些更新块视作数据块。而对于垃圾回收过程从数据块回收的有效数据,被写入冷数据块。转换块记录逻辑地址与物理地址的对应关系。
更新转换表包括多个条目,每个条目记录了<逻辑地址,物理地址>的对应关系。同图3的实施例相比,设置更新转换表的条目数量,以容纳更新块与冷数据块(参看图9)中的所有(有效)数据单元的物理地址。
图10是根据本申请图9的实施例的垃圾回收操作的处理流程图。
根据图10的实施例,垃圾回收操作回收数据块,将数据块的有效数据写入冷数据块。
响应于进行垃圾回收操作,参看图10,选取待回收的数据块(1002)。获取待回收的数据块中的有效数据。有多种策略用于选择待回收的数据块。
尝试从冷数据块中分配可向其写入数据的物理页。若冷数据块有可用的物理页(1005),获取冷数据块中可用的物理页的地址(记为PPA)。以及将数据写入物理页地址(PPA)(1010),并在更新转换表中记录写入数据的逻辑地址与物理地址PPA的对应关系(1020)。以及释放待回收的数据块(1030),例如,擦除待回收的数据块,并记录该数据块是空白的。需要指出的,此时对回收的有效数据,更新转换表记录了其逻辑地址与物理地址的映射,而缓存的转换表与转换表中也记录了其逻辑地址与物理地址的映射,并且两个映射关系不一致,在更新转换表中的映射关系是有效的。因而响应读操作的过程中,若更新转换表命中,相对于缓存的转换表,优先使用更新转换表中记录的物理地址与逻辑地址的映射。
若冷数据块没有可用的物理页(1005),选择冷数据块进行回收(将被选取的冷数据块记为CB)(1040),以产生空白冷数据块。
可依据多种策略选择冷数据块CB。例如,选择无效数据最多的冷数据块,选择最久未被访问的冷数据块,或者选择最近被更新的冷数据块。通过回收冷数据块,将被回收冷数据块的有效数据搬移到数据块,从而释放被回收的冷数据块(1040)。
由于被回收的冷数据块CB中的有效数据的物理地址发生变更,还更新记录冷数据块CB中的有效数据的逻辑地址与物理地址映射关系的一个或多个转换页(记为TP0、TP1……TPn)(1050)。以及还更新该一个或多个转换页(记为TP0、TP1……TPn)在全局转换目录中的条目,以记录这些转换页的新物理地址。以及在更新转换表中,移除同冷数据块UB中的有效数据所对应的记录,因为这些有效数据已被搬移到数据块。
在可选的实施方式中,在更新该一个或多个转换页(TP0、TP1……TPn)的过程中,还将除冷数据块CB之外的其他冷数据块和/或更新块中逻辑地址属于该一个或多个转换页(TP0、TP1……TPn)所对应的逻辑地址段的有效数据,一并搬移到数据块,并在该一个或多个转换页(TP0、TP1……TPn)中更新这些被一并搬移的数据的物理地址。具体地,该一个或多个转换页(TP0、TP1……TPn)所对应的逻辑地址段(记为LS),除了覆盖被回收的冷数据块CB中的有效数据,再除冷数据块CB之外的其他冷数据块或更新块中,也可能存在其逻辑地址属于逻辑地址段LS的有效数据(记为DV)。将有效数据DV也搬移到数据块,并在该一个或多个转换页(TP0、TP1……TPn)中记录有效数据DV的新物理地址。更新转换表中同有效数据DV对应的条目的物理地址可以更新,也可以不更新,因为有效数据DV所在的更新块并未被回收。
回收冷数据块CB,固态存储设备有空闲的冷数据块出现。从空闲冷数据块获取物理页(其物理地址记为PPA1)。以及将数据写入物理页地址(PPA1)(1060),并在更新转换表中记录写入数据的逻辑地址与物理地址PPA1的对应关系(1070)。
在依然又一个例子中,为提高垃圾回收操作处理速度,固态存储设备努力确保随时有可用于承载垃圾回收数据的冷数据块,从而无需在垃圾回收操作的处理过程中实施与步骤1005、步骤1040等相关的回收冷数据块。例如,周期性地,或者指定条件满足时(例如,冷数据块中可被写入数据的物理页数量较低等),发起步骤1040与步骤1050的过程,以回收冷数据块。进而,在处理垃圾回收操作时,直接实施步骤1002、步骤1010到步骤1030。
根据本申请的实施例还提供了一种固态存储设备,该设备包括控制器与非易失存储器芯片,其中,控制器执行本申请实施例提供的任意一种处理方法。
根据本申请的实施例还提供了一种存储在可读介质上的程序,当被固态存储设备的控制器运行时,使得固态存储设备执行根据本申请实施例提供的任意一种处理方法。
尽管已描述了本申请的优选实施例,但本领域技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (37)
1.一种固态存储设备的地址转换系统,其特征在于,包括NVM芯片和存储器,NVM芯片包括多个物理块,物理块包括数据块、转换块与更新块;数据块与更新块中记录被写入固态存储设备的数据;转换块记录多个逻辑地址与物理地址的对应关系;存储器中记录全局转换目录、缓存的转换页与更新转换表;
其中全局转换目录包括多个条目,每个条目指示了逻辑地址段与转换页地址的对应关系,转换页地址为转换页在NVM芯片中的物理地址,缓存的转换页包括多个条目,每个条目记录转换页中的一条记录,更新转换表包括多个条目,每个条目记录逻辑地址与物理地址的对应关系;
用读操作的逻辑地址查询更新转换表、用读操作的逻辑地址查询缓存转换页或用读操作的逻辑地址所在的逻辑地址段查询全局转换目录中的一种或多种;
用读操作的逻辑地址查询更新转换表、用读操作的逻辑地址查询缓存转换页以及用读操作的逻辑地址所在的逻辑地址段查询全局转换目录被并行处理。
2.如权利要求1所述的固态存储设备的地址转换系统,其特征在于,存储器中还记录了物理块分配表,用于记录被分配的物理块或被分配的大块。
3.如权利要求2所述的固态存储设备的地址转换系统,其特征在于,物理块分配表还包括空闲块表,记录未被使用或未被分配的物理块或大块。
4.如权利要求1-3之一所述的固态存储设备的地址转换系统,其特征在于,转换块的物理地址连续的转换页的记录所对应的逻辑地址连续。
5.如权利要求1-3之一所述的固态存储设备的地址转换系统,其特征在于,每个转换页的所有记录所暗示的连续逻辑地址空间,为逻辑地址段。
6.如权利要求1-3之一所述的固态存储设备的地址转换系统,其特征在于,全局转换目录的条目是排序的,按其所指示的逻辑地址段排序。
7.如权利要求1-3之一所述的固态存储设备的地址转换系统,其特征在于,缓存的转换页是转换页在存储器中的副本。
8.如权利要求1-3之一所述的固态存储设备的地址转换系统,其特征在于,少数而非全部的转换页在存储器中有副本。
9.如权利要求1-3之一所述的固态存储设备的地址转换系统,其特征在于,全局转换目录的每个条目还记录其对应的转换页是否在存储器中有副本。
10.如权利要求1-3之一所述的固态存储设备的地址转换系统,其特征在于,更新转换表的条目数量,足以容纳更新块中的所有数据单元的物理地址。
11.如权利要求1-3之一所述的固态存储设备的地址转换系统,其特征在于,更新转换表中各个条目记录的逻辑地址,为有序的或无序的。
12.一种读操作的处理方法,其特征在于,包括:
响应于接收了读操作,用读操作的逻辑地址尝试得到物理地址;
响应于获得了物理地址,读出数据;
其中,用读操作的逻辑地址尝试得到物理地址的方法包括:
用读操作的逻辑地址查询更新转换表、用读操作的逻辑地址查询缓存转换页或用读操作的逻辑地址所在的逻辑地址段查询全局转换目录中的一种或多种;
用读操作的逻辑地址查询更新转换表、用读操作的逻辑地址查询缓存转换页以及用读操作的逻辑地址所在的逻辑地址段查询全局转换目录被并行处理。
13.如权利要求12所述的处理方法,其特征在于,响应于更新转换表命中,从更新转换表中获取同逻辑地址对应的物理地址。
14.如权利要求12所述的处理方法,其特征在于,用读操作的逻辑地址查询更新转换表时,响应于更新转换表未命中,访问缓存的转换页。
15.如权利要求12所述的处理方法,其特征在于,响应于缓存的转换页命中,从缓存的转换页的对应条目中获取物理地址。
16.如权利要求12所述的处理方法,其特征在于,响应于访问缓存的转换页未命中,用读操作的逻辑地址所在的逻辑地址段查询全局转换目录,得到对应于该逻辑地址段的转换页地址;以及根据转换页地址,从NVM芯片中读出转换页,并根据逻辑地址从读出的转换页中获取同逻辑地址对应的物理地址。
17.如权利要求12所述的处理方法,其特征在于,用读操作的逻辑地址查询更新转换表与查询缓存转换页被并行处理。
18.如权利要求12所述的处理方法,其特征在于,用读操作的逻辑地址查询更新转换表与查询缓存转换页都命中时,使用更新转换表提供的物理地。
19.如权利要求12所述的处理方法,其特征在于,响应于读操作的逻辑地址查询更新转换表与查询缓存转换页之一命中时,使用命中的更新转换表或者命中的缓存转换页提供的物理地址。
20.如权利要求12或19所述的处理方法,其特征在于,
若读操作的逻辑地址会命中缓存的转换页,从全局转换目录获取缓存的转换页的地址,用读操作的逻辑地址查询缓存的转换页,从缓存的转换页的对应条目中获取物理地址。
21.如权利要求20所述的处理方法,其特征在于,
若读操作的逻辑地址不会命中缓存的转换页,从全局转换目录得到对应于该逻辑地址段的转换页地址;
以及根据转换页地址,从NVM芯片中读出转换页,并根据逻辑地址从读出的转换页中获取同逻辑地址对应的物理地址。
22.如权利要求12所述的处理方法,其特征在于,响应于更新转换表、缓存的转换表均未命中时,使用从全局转换目录获取的转换页地址从NVM芯片读取记录了逻辑地址与物理地址对应关系的转换页。
23.如权利要求12所述的处理方法,其特征在于,全局转换目录中记录待访问的逻辑地址是否会命中缓存的转换页。
24.如权利要求12所述的处理方法,其特征在于,仅在读操作访问的逻辑地址会命中缓存的转换页时,才访问缓存的转换页。
25.如权利要求12所述的处理方法,其特征在于,仅在更新转换表未命中时,才访问全局转换目录和/或缓存的转换页。
26.如权利要求12所述的处理方法,其特征在于,响应于缓存的转换页命中,从缓存的转换页的对应条目中获取物理地址。
27.如权利要求12所述的处理方法,其特征在于,响应于访问缓存的转换页未命中,用读操作的逻辑地址所在的逻辑地址段查询全局转换目录。
28.一种写操作的处理方法,其特征在于,包括:
响应于收到了写操作,尝试从更新块中分配可向其写入数据的物理页;
响应于更新块有可用的物理页,获取更新块中可用的物理页的地址;
将数据写入物理页;
以及在更新转换表中记录写入数据的逻辑地址与物理地址的对应关系;
其中,若写操作所指示的逻辑地址在更新转换表中已有记录,在更新转换表的指示了该逻辑地址的条目中更新物理地址;
若写操作所指示的逻辑地址在更新转换表中没有记录,在更新转换表的空白条目中记录该逻辑地址与物理地址的对应关系;
响应于更新块没有可用的物理页,
选择待回收的更新块,将被选择的更新块的数据搬移到数据块;
更新记录了更新块中的有效数据的逻辑地址与物理地址映射关系的一个或多个转换页;
在更新该一个或多个转换页的过程中,还将除更新块之外的其他更新块的逻辑地址属于该一个或多个转换页所对应的逻辑地址段的有效数据,一并搬移到数据块,并在该一个或多个转换页中更新这些被一并搬移的数据的物理地址。
29.如权利要求28所述的处理方法,其特征在于,选择无效数据最多的更新块、最久未被访问的更新块或者最久未被更新的更新块中的一种或多种作为要回收的更新块。
30.如权利要求28所述的处理方法,其特征在于,更新该一个或多个转换页在全局转换目录中的条目,以记录这些转换页的新物理地址。
31.如权利要求28所述的处理方法,其特征在于,在更新转换表中,移除同更新块中的有效数据所对应的记录。
32.如权利要求28所述的处理方法,其特征在于,在该一个或多个转换页中记录有效数据的新物理地址。
33.如权利要求28所述的处理方法,其特征在于,在更新转换表中移除对应于有效数据的条目。
34.如权利要求28所述的处理方法,其特征在于,周期性地或在指定条件满足时,从更新块回收有效数据。
35.一种固态存储设备的地址转换系统,其特征在于,包括NVM芯片和存储器,NVM芯片包括多个物理块,物理块包括数据块、转换块、更新块以及冷数据块;更新块中记录被写入固态存储设备的数据;数据块中记录从更新块回收的有效数据;转换块记录多个逻辑地址与物理地址的对应关系;冷数据块中记录从数据块回收的有效数据;存储器中记录了全局转换目录、缓存的转换页与更新转换表;
其中全局转换目录包括多个条目,每个条目指示了逻辑地址段与转换页地址的对应关系,转换页地址为转换页在NVM芯片中的物理地址,缓存的转换页包括多个条目,每个条目记录转换页中的一条记录,更新转换表包括多个条目,每个条目记录逻辑地址与物理地址的对应关系;
用读操作的逻辑地址查询更新转换表、用读操作的逻辑地址查询缓存转换页或用读操作的逻辑地址所在的逻辑地址段查询全局转换目录中的一种或多种;
用读操作的逻辑地址查询更新转换表、用读操作的逻辑地址查询缓存转换页以及用读操作的逻辑地址所在的逻辑地址段查询全局转换目录被并行处理。
36.如权利要求35所述的固态存储设备的地址转换系统,其特征在于,更新转换表的条目数量,足以容纳更新块与冷数据块中的所有有效数据单元的物理地址。
37.如权利要求35所述的固态存储设备的地址转换系统,其特征在于,存储器中还记录了物理块分配表,用于记录被分配的物理块或被分配的大块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711223024.3A CN109840219B (zh) | 2017-11-29 | 2017-11-29 | 大容量固态存储设备的地址转换系统与方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711223024.3A CN109840219B (zh) | 2017-11-29 | 2017-11-29 | 大容量固态存储设备的地址转换系统与方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109840219A CN109840219A (zh) | 2019-06-04 |
CN109840219B true CN109840219B (zh) | 2024-04-05 |
Family
ID=66881789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711223024.3A Active CN109840219B (zh) | 2017-11-29 | 2017-11-29 | 大容量固态存储设备的地址转换系统与方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109840219B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988038A (zh) * | 2019-12-17 | 2021-06-18 | 国民技术股份有限公司 | 非易失性存储器的数据写入方法、终端和可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05113931A (ja) * | 1991-10-23 | 1993-05-07 | Nec Ibaraki Ltd | アドレス変換処理方式 |
CN101923448A (zh) * | 2010-02-08 | 2010-12-22 | 安凯(广州)微电子技术有限公司 | 一种nand闪存的转换层读写方法 |
CN103425600A (zh) * | 2013-08-23 | 2013-12-04 | 中国人民解放军国防科学技术大学 | 一种固态盘闪存转换层中的地址映射方法 |
CN104102591A (zh) * | 2013-04-08 | 2014-10-15 | 香港理工大学 | 计算机子系统及在其中实现闪存转换层的方法 |
CN104268094A (zh) * | 2014-09-23 | 2015-01-07 | 浪潮电子信息产业股份有限公司 | 一种优化的闪存地址映射方法 |
CN106569959A (zh) * | 2016-10-28 | 2017-04-19 | 郑州云海信息技术有限公司 | 一种基于ssd的缓存替换方法及系统 |
CN107122131A (zh) * | 2017-04-18 | 2017-09-01 | 杭州宏杉科技股份有限公司 | 自动精简配置的方法及装置 |
-
2017
- 2017-11-29 CN CN201711223024.3A patent/CN109840219B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05113931A (ja) * | 1991-10-23 | 1993-05-07 | Nec Ibaraki Ltd | アドレス変換処理方式 |
CN101923448A (zh) * | 2010-02-08 | 2010-12-22 | 安凯(广州)微电子技术有限公司 | 一种nand闪存的转换层读写方法 |
CN104102591A (zh) * | 2013-04-08 | 2014-10-15 | 香港理工大学 | 计算机子系统及在其中实现闪存转换层的方法 |
CN103425600A (zh) * | 2013-08-23 | 2013-12-04 | 中国人民解放军国防科学技术大学 | 一种固态盘闪存转换层中的地址映射方法 |
CN104268094A (zh) * | 2014-09-23 | 2015-01-07 | 浪潮电子信息产业股份有限公司 | 一种优化的闪存地址映射方法 |
CN106569959A (zh) * | 2016-10-28 | 2017-04-19 | 郑州云海信息技术有限公司 | 一种基于ssd的缓存替换方法及系统 |
CN107122131A (zh) * | 2017-04-18 | 2017-09-01 | 杭州宏杉科技股份有限公司 | 自动精简配置的方法及装置 |
Non-Patent Citations (3)
Title |
---|
Comparative logical and physical modeling in two OODBMSs;Nancy K. Wiegand;《ACM SIGAPP Applied Computing Review》;第2卷(第2期);全文 * |
一种变粒度的闪存地址映射方案;樊进;谭守标;陈军宁;;中国科学技术大学学报(10);全文 * |
电子硬盘的NAND闪存地址映射策略;王伟能;马建设;潘龙法;;记录媒体技术(01);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109840219A (zh) | 2019-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9378131B2 (en) | Non-volatile storage addressing using multiple tables | |
CN108595349B (zh) | 大容量存储设备的地址转换方法与装置 | |
US20130080732A1 (en) | Apparatus, system, and method for an address translation layer | |
US10740251B2 (en) | Hybrid drive translation layer | |
CN109086219B (zh) | 去分配命令处理方法及其存储设备 | |
US11237980B2 (en) | File page table management technology | |
CN107797934B (zh) | 处理去分配命令的方法与存储设备 | |
CN109558334B (zh) | 垃圾数据回收方法及固态存储设备 | |
KR102430198B1 (ko) | 플래시 저장 장치의 어드레스 매핑 테이블 정리 방법 | |
US11669461B2 (en) | Logical to physical table fragments | |
US11630779B2 (en) | Hybrid storage device with three-level memory mapping | |
CN108614668B (zh) | 基于kv模型的数据访问方法与固态存储设备 | |
CN110968527B (zh) | Ftl提供的缓存 | |
CN108614671B (zh) | 基于命名空间的键-数据访问方法与固态存储设备 | |
CN109840048A (zh) | 存储命令处理方法及其存储设备 | |
CN109840219B (zh) | 大容量固态存储设备的地址转换系统与方法 | |
CN111352865B (zh) | 存储控制器的写缓存 | |
CN111290975A (zh) | 使用统一缓存处理读命令与预读命令的方法及其存储设备 | |
CN109960667B (zh) | 大容量固态存储设备的地址转换方法与装置 | |
CN111290974A (zh) | 用于存储设备的缓存淘汰方法与存储设备 | |
WO2018041258A1 (zh) | 去分配命令处理的方法与存储设备 | |
CN110968520B (zh) | 基于统一缓存架构的多流存储设备 | |
CN110532199B (zh) | 预读方法及其存储控制器 | |
CN110580228A (zh) | 去分配命令处理方法及其存储设备 | |
CN110968528B (zh) | 应用统一缓存架构为非易失存储介质组装数据 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100192 room A302, building B-2, Dongsheng Science Park, Zhongguancun, 66 xixiaokou Road, Haidian District, Beijing Applicant after: Beijing yihengchuangyuan Technology Co.,Ltd. Address before: 100192 room A302, building B-2, Dongsheng Science Park, Zhongguancun, 66 xixiaokou Road, Haidian District, Beijing Applicant before: BEIJING MEMBLAZE TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |