CN114579475A - 电子系统及其操作方法 - Google Patents

电子系统及其操作方法 Download PDF

Info

Publication number
CN114579475A
CN114579475A CN202110990872.7A CN202110990872A CN114579475A CN 114579475 A CN114579475 A CN 114579475A CN 202110990872 A CN202110990872 A CN 202110990872A CN 114579475 A CN114579475 A CN 114579475A
Authority
CN
China
Prior art keywords
memory
logical block
data
block address
block addresses
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.)
Withdrawn
Application number
CN202110990872.7A
Other languages
English (en)
Inventor
姜寭美
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN114579475A publication Critical patent/CN114579475A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/12Bit line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, equalising circuits, for bit lines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/08Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Abstract

本公开涉及一种电子系统,该电子系统包括文件系统,该文件系统被配置为将与连续数据相对应的逻辑块地址分配给多个分区中的段组。该电子系统还包括:存储器装置,包括多个存储块;以及存储器控制器,被配置为将逻辑块地址映射到与多个存储块中的连续页面相对应的物理块地址,以将连续数据编程到多个存储块中的连续页面。该文件系统被配置为将与连续数据相对应的新逻辑块地址分配给多个分区中的无效段。

Description

电子系统及其操作方法
相关申请的交叉引用
本申请要求于2020年12月2日提交的、申请号为10-2020-0166882的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文用于所有目的。
技术领域
本公开中描述的各个实施例总体上涉及一种电子装置,并且更特别地,涉及一种电子系统以及操作电子系统的方法。
背景技术
存储装置是在诸如计算机、智能手机或智能平板的主机装置的控制下存储数据的装置。根据存储数据的装置,存储装置的示例包括可以将数据存储在磁盘中的、诸如硬盘驱动器(HDD)的装置,以及可以将数据存储在半导体存储器(特别地,非易失性存储器)中的、诸如固态驱动器(SSD)或存储卡的装置。
存储装置可以包括存储数据的存储器装置以及控制存储器装置中数据的存储的存储器控制器。这种存储器装置可以被分类为易失性存储器和非易失性存储器。非易失性存储器的代表性示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、相变随机存取存储器(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)和铁电RAM(FRAM)。
发明内容
本公开中描述的各个实施例涉及一种将随机写入的逻辑块地址转换为对应于连续数据的地址的电子系统,以及操作该电子系统的方法。
根据某些实施例,一种电子系统可以包括文件系统,该文件系统被配置为将对应于连续数据条的逻辑块地址分配给多个分区中的段组。电子系统还可以包括:存储器装置,包括多个存储块;以及存储器控制器,被配置为将逻辑块地址映射到与多个存储块中的连续页面相对应的物理块地址,以将连续数据条编程到多个存储块中的连续页面。文件系统可以被配置为将与连续数据条的新逻辑块地址分配给多个分区中的无效段。无效段中的每一个可能被分配了逻辑块地址,该逻辑块地址被映射到与无效数据相关联的物理块地址。
根据某些实施例,提供了一种操作电子系统的方法,该电子系统可以包括文件系统以及包括多个存储块的存储器装置。该方法可以包括:将对应于连续数据条的逻辑块地址分配给多个分区中的段组;生成逻辑块地址与对应于多个存储块中的连续页面的物理块地址之间的映射关系;基于映射关系,将连续数据条编程到多个存储块中的连续页面;更新映射关系,更新后的映射关系指示与无效数据相关联的一个或多个物理块地址;以及将与连续数据条相对应的新逻辑块地址分配给无效段,其中无效段中的每一个被分配了逻辑块地址,该逻辑块地址被映射到与无效数据相关联的一个或多个物理块地址中的物理块地址。
附图说明
图1是存储装置的示例的框图。
图2是示出图1的存储装置的存储器装置的示例的结构的框图。
图3是示出图2的存储器装置的存储器单元阵列的示例的示图。
图4是示出在主机和存储装置之间输出和更新映射数据的示例的简化示图。
图5是示出文件系统和经编程的存储块的示例的分区的示图。
图6是示出当发生映射更新时无效的页面的示例的示图。
图7是示出根据映射更新来更新文件系统的各个分区的示例的示图。
图8是示出逻辑块地址被重新写入到无效段的示例的示图。
图9是示出在逻辑块地址被重新写入之后编程数据的示例的示图。
图10是示出在文件系统中执行垃圾收集的过程的示例的示图。
图11是示出在已经对文件系统执行垃圾收集之后被改变的映射关系的示图。
图12是示出根据实施例的电子系统的操作的示例的流程图。
图13是示出根据实施例的电子系统的操作的示例的流程图。
图14是示出图1的存储装置的存储器控制器的示例的框图。
图15示出了可以使用根据实施例的存储装置的存储卡系统的示例。
图16是可以使用根据实施例的存储装置的固态驱动器(SSD)系统的示例的框图。
图17是示出可以使用根据实施例的存储装置的用户系统的示例的框图。
具体实施方式
本公开中所介绍的实施例的具体结构或功能描述仅用于说明性实施例的描述。这些描述不应被解释为将本公开的范围限制于本公开中描述的说明性实施例。
现在将在下文中参照附图更全面地描述各个实施例,其中描绘了说明性实施例,从而为本领域的普通技术人员提供实施各个实施例的可行描述。
图1是存储装置的示例的框图。
在图1所示的示例中,存储装置50可以包括一个或多个存储器装置100和存储器控制器200。
存储装置50可以是在诸如以下的主机300的控制下存储数据的装置:移动电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视(TV)、平板PC或车载信息娱乐系统。
根据作为与主机300通信的方案的主机接口,存储装置50可以包括各种类型的存储装置中的任意一种。例如,存储装置50可以被实施为诸如以下的各种类型的存储装置中的任意一种:固态驱动器(SSD),诸如MMC、嵌入式MMC(eMMC)、尺寸减小的MMC(RS-MMC)或微型MMC的多媒体卡,诸如SD、迷你SD或微型SD的安全数字卡,通用串行总线(USB)存储装置,通用闪存(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡型存储装置,外围组件互连(PCI)卡型存储装置,高速PCI(PCI-E)卡型存储装置,紧凑型闪存(CF)卡,智能媒体卡,记忆棒等。
存储装置50可以以各种类型的封装形式中的任意一种来制造。例如,存储装置50可以以诸如以下的各种类型的封装形式中的任意一种来制造:堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)、晶圆级堆叠封装(WSP)等。
存储器装置100可以存储数据。存储器装置100可以响应于存储器控制器200的控制而操作。存储器装置100可以包括存储器单元阵列,该存储器单元阵列包括可以存储数据的多个存储器单元。存储器单元阵列可以包括多个存储块。每个存储块可以包括多个存储器单元,多个存储器单元可以构成多个页面。在实施例中,页面可以是将数据存储在存储器装置100中或读取存储器装置100中存储的数据的单位。存储块可以是擦除数据的单位。
在实施例中,存储器装置100可以采用诸如以下的许多替代形式:双倍数据速率同步动态随机存取存储器(DDR SDRAM)、第四代低功率双倍数据速率(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)SDRAM、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器装置、电阻式RAM(RRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、铁电RAM(FRAM)或自旋转移力矩RAM(STT-RAM)。在本说明书中,为了便于描述,将针对存储器装置100是NAND闪速存储器的实施例进行描述。
存储器装置100可以以二维(2D)阵列结构或三维(3D)阵列结构实施。在下文中,尽管将3D阵列结构作为示例进行描述,但是本公开不限于3D阵列结构。本公开不仅可以应用于电荷存储层由导电浮栅(FG)形成的闪速存储器装置,而且还可以应用于电荷存储层由绝缘层形成的电荷撷取闪速(CTF)存储器装置。
在实施例中,存储器装置100可以以一个存储器单元中存储一个数据位的单层单元(SLC)方式操作。可选地,存储器装置100可以以一个存储器单元中存储至少两个数据位的方式操作。例如,存储器装置100可以以一个存储器单元中存储两个数据位的多层单元(MLC)方式、一个存储器单元中存储三个数据位的三层单元(TLC)方式、一个存储器单元中存储四个数据位的四层单元(QLC)方式等操作。
存储器装置100可以从存储器控制器200接收命令和地址,并且可以访问存储器单元阵列的由地址选择的区域。也就是说,存储器装置100可以对由地址选择的区域执行与命令相对应的操作。例如,存储器装置100可以响应于接收到的命令而执行写入操作(即,编程操作)、读取操作或擦除操作。当接收到编程命令时,存储器装置100可以将数据编程到基于地址所选择的区域。当接收到读取命令时,存储器装置100可以从基于地址所选择的区域读取数据。当接收到擦除命令时,存储器装置100可以擦除基于地址所选择的区域中存储的数据。
存储器控制器200可以控制存储装置50的全部操作。
当将电源电压施加到存储装置50时,存储器控制器200可以运行固件。当存储器装置100是闪速存储器装置时,存储器控制器200可以运行用于控制主机300与存储器装置100之间的通信的诸如闪存转换层(FTL)的固件。
在实施例中,存储器控制器200可以包括可以从主机300接收数据和逻辑块地址(LBA)的固件(未示出),并且可以将逻辑块地址(LBA)转换为指示包括在存储器装置100中并且待存储数据的存储器单元的地址的物理块地址(PBA)。进一步地,存储器控制器200可以将指示逻辑块地址(LBA)与物理块地址(PBA)之间的映射关系的逻辑-物理地址映射表存储在缓冲存储器中。
存储器控制器200可以响应于从主机300接收到的请求而控制存储器装置100,从而可以执行编程操作、读取操作或擦除操作。例如,当从主机300接收到编程请求时,存储器控制器200可以将编程请求转换为编程命令,并且可以将编程命令、物理块地址(PBA)和数据提供到存储器装置100。当从主机300接收到读取请求以及逻辑块地址时,存储器控制器200可以将读取请求转换为读取命令,选择与逻辑块地址相对应的物理块地址,此后将读取命令和物理块地址(PBA)提供到存储器装置100。当从主机300接收到擦除请求以及逻辑块地址时,存储器控制器200可以将擦除请求转换为擦除命令,选择与逻辑块地址相对应的物理块地址,此后将擦除命令和物理块地址(PBA)提供到存储器装置100。
在实施例中,存储器控制器200可以在没有从主机300接收到请求的情况下自主地生成编程命令、地址和数据,并且可以将编程命令、地址和数据传输到存储器装置100。例如,存储器控制器200可以将命令、地址和数据提供到存储器装置100以执行后台操作,诸如用于损耗均衡以平衡存储器空间使用的编程操作以及用于从存储器中清除过时数据的垃圾收集的编程操作。
在实施例中,存储器控制器200可以包括闪存转换层210。闪存转换层210可以将与从主机300接收到的请求相对应的逻辑块地址(LBA)转换为物理块地址(PBA),并且可以将物理块地址(PBA)输出到存储器装置100。
例如,如上所述,闪存转换层210可以将与编程请求相对应的逻辑块地址(LBA)转换为物理块地址(PBA),将与读取请求相对应的逻辑块地址(LBA)转换为物理块地址(PBA),或者将与擦除请求相对应的逻辑块地址(LBA)转换为物理块地址(PBA)。闪存转换层210可以将转换后的物理块地址(PBA)输出到存储器装置100,并且存储器装置100可以对与物理块地址(PBA)相对应的页面或存储块执行操作。
在实施例中,存储器控制器200可以从文件系统310接收连续的逻辑块地址,并且可以将接收到的逻辑块地址转换为连续的物理块地址。当连续的物理块地址被输出到存储器装置100时,存储器装置100可以执行与连续的物理块地址相对应的连续操作。
在实施例中,存储装置50可以包括缓冲存储器(未示出)。存储器控制器200可以控制主机300和缓冲存储器(未示出)之间的数据交换。可选地,存储器控制器200可以将用于控制存储器装置100的系统数据临时存储在缓冲存储器中。例如,存储器控制器200可以将来自主机300的数据临时存储在缓冲存储器中,然后可以将临时存储在缓冲存储器中的数据传输到存储器装置100。
在各个实施例中,缓冲存储器可以用作存储器控制器200的工作存储器或高速缓存存储器。例如,缓冲存储器可以存储待由存储器控制器200运行的代码或命令。可选地,缓冲存储器可以存储待由存储器控制器200处理的数据。
在实施例中,缓冲存储器可以被实施为诸如双倍数据速率SDRAM(DDR SDRAM)、双倍数据速率第四代(DDR4)SDRAM、低功率双倍数据速率第四代(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)SDRAM或Rambus DRAM(RDRAM)的DRAM,或者可以被实施为静态RAM(SRAM)。
在各个实施例中,缓冲存储器可以在存储装置50的外部,并且可以联接到存储装置50。在这种情况下,联接到存储装置50的易失性存储器装置可以用作缓冲存储器。
在实施例中,存储器控制器200可以控制至少两个存储器装置。在这种情况下,存储器控制器200可以根据交错方案来控制存储器装置以提高操作性能。
主机300可以使用诸如以下的各种通信方法中的至少一种与存储装置50通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和低负载DIMM(LRDIMM)通信方法。
在实施例中,主机300可以包括文件系统310。文件系统310可以包括用于提高存储装置50的连续写入性能的多个分区。多个分区可以使用非易失性存储器装置或易失性存储器装置来实现。
进一步地,多个分区中的每一个可以包括段。例如,在段之中,分配了逻辑块地址的段可以是有效段,未分配逻辑块地址的段可以是空闲段。进一步地,当更新映射关系时,有效段可能被无效,从而可能变成无效段(也被称为被无效段)。
当逻辑块地址无法进一步分配给多个分区中包括的段之中的空闲段时,可以执行垃圾收集(GC),或者可选地,可以将数据重新写入到无效段,从而使无效段能够被重新使用。
可以将连续的逻辑块地址分配给多个分区。例如,可以将与连续写入请求相对应的逻辑块地址顺序地分配给多个分区中包括的段之中的空闲段。也就是说,在实施例中,当存储器装置100中不包括坏块、失败页面或无效页面时,可以提高文件系统310所控制的存储装置50的性能。
然而,当存储器装置100中包括坏块、失败页面或无效页面时,可能执行随机写入而不是连续(顺序)写入。例如,文件系统310的多个分区中可能会发生大量的重新写入,并且可能会对存储器装置100执行随机写入。当执行随机写入时,存储装置50的性能可能会劣化。
本公开提出一种在由于文件系统310中不存在空闲段而可能执行随机写入时提高存储装置50的性能的方法。
图2是示出图1的存储装置的存储器装置的示例的结构的框图。
参照图2,存储器装置100可以包括存储器单元阵列110、外围电路120和控制逻辑130。
存储器单元阵列110包括多个存储块BLK1至BLKz。多个存储块BLK1至BLKz通过行线RL联接到行解码器121。行线RL可以包括至少一个源极选择线、多个字线和至少一个漏极选择线。
存储块BLK1至BLKz中的每一个可以通过位线BL1至BLn联接到页面缓冲器组123。存储块BLK1至BLKz中的每一个可以包括多个存储器单元。在实施例中,多个存储器单元可以是非易失性存储器单元。联接到相同字线的存储器单元可以被定义为单个页面。因此,单个存储块可以包括多个页面。
存储器单元阵列110中包括的存储器单元中的每一个可以被实施为能够存储一个数据位的单层单元(SLC)、能够存储两个数据位的多层单元(MLC)、能够存储三个数据位的三层单元(TLC)、能够存储四个数据位的四层单元(QLC)等。
外围电路120可以在控制逻辑130的控制下对存储器单元阵列110的所选择的区域执行编程操作、读取操作或擦除操作。外围电路120可以驱动存储器单元阵列110。例如,外围电路120可以在控制逻辑130的控制下将各种操作电压施加到行线RL和位线BL1至BLn或释放所施加的电压。
外围电路120可以包括行解码器121、电压生成器122、页面缓冲器组123、列解码器124、输入/输出电路125和感测电路126。
行解码器121通过行线RL联接到存储器单元阵列110。行线RL可以包括至少一个源极选择线、多个字线和至少一个漏极选择线。在实施例中,字线可以包括普通字线和虚设字线。在实施例中,行线RL可以进一步包括管道选择线。
行解码器121可以对从控制逻辑130接收到的行地址RADD进行解码。行解码器121根据经解码的地址选择存储块BLK1至BLKz中的至少一个。进一步地,行解码器121可以根据经解码的地址选择所选择的存储块的至少一个字线WL,使得将电压生成器122生成的电压施加到该至少一个字线WL。
例如,在编程操作期间,行解码器121可以将编程电压施加到所选择的字线,并且将电平低于编程电压的电平的编程通过电压施加到未选择的字线。在编程验证操作期间,行解码器121可以将验证电压施加到所选择的字线,并且将高于验证电压的验证通过电压施加到未选择的字线。在读取验证操作期间,行解码器121可以将读取电压施加到所选择的字线,并且将高于读取电压的读取通过电压施加到未选择的字线。
在实施例中,基于存储块执行存储器装置100的擦除操作。在擦除操作期间,行解码器121可以根据经解码的地址选择一个存储块。在擦除操作期间,行解码器121可以将接地电压施加到与所选择的存储块联接的字线。
电压生成器122可以在控制逻辑130的控制下操作。电压生成器122可以使用例如提供到存储器装置100的外部电源电压来生成多个电压。更具体地,电压生成器122可以响应于操作信号OPSIG而生成用于编程操作、读取操作和擦除操作的各种操作电压Vop。例如,电压生成器122可以在控制逻辑130的控制下生成编程电压、验证电压、通过电压、读取电压、擦除电压等。
在实施例中,电压生成器122可以通过调节外部电源电压来生成内部电源电压。由电压生成器122生成的内部电源电压被用作存储器装置100的操作电压。
在实施例中,电压生成器122可以使用外部电源电压或内部电源电压来生成多个电压。
例如,电压生成器122可以包括用于接收内部电源电压的多个泵浦电容器,并且可以在控制逻辑130的控制下通过选择性地启用多个泵浦电容器来生成多个电压。
所生成的电压可以由行解码器121供应到存储器单元阵列110。
页面缓冲器组123包括第一至第n页面缓冲器PB1至PBn。第一至第n页面缓冲器PB1至PBn通过第一至第n位线BL1至BLn联接到存储器单元阵列110。第一至第n页面缓冲器PB1至PBn在控制逻辑130的控制下操作。更具体地,第一至第n页面缓冲器PB1至PBn可以响应于页面缓冲器控制信号PBSIGNAL而操作。例如,在读取操作或验证操作期间,第一至第n页面缓冲器PB1至PBn可以临时存储通过第一至第n位线BL1至BLn接收到的数据,或者可以感测位线BL1至BLn的电压或电流。
在编程操作期间,当将编程电压施加到所选择的字线时,第一至第n页面缓冲器PB1至PBn可以将通过输入/输出电路125接收到的数据通过第一至第n位线BL1至BLn传送到所选择的存储器单元。基于接收到的数据DATA对所选择的页面中的存储器单元进行编程。在编程验证操作期间,第一至第n页面缓冲器PB1至PBn可以通过感测通过第一至第n位线BL1至BLn从所选择的存储器单元接收的电压或电流来读取页面数据。
在读取操作期间,第一至第n页面缓冲器PB1至PBn可以通过第一至第n位线BL1至BLn从所选择的页面中的存储器单元读取数据DATA,并且可以在列解码器124的控制下将读取数据DATA输出到输入/输出电路125。
在擦除操作期间,第一至第n页面缓冲器PB1至PBn可以使第一至第n位线BL1至BLn浮置,或者可以将擦除电压施加到第一至第n位线BL1至BLn。
列解码器124可以响应于列地址CADD而在输入/输出电路125和页面缓冲器组123之间传送数据。例如,列解码器124可以通过数据线DL与第一至第n页面缓冲器PB1至PBn交换数据,或者可以通过列线CL与输入/输出电路125交换数据。
输入/输出电路125可以将从以上参照图1描述的存储器控制器(例如,图1的存储器控制器200)接收到的命令CMD和地址ADDR传送到控制逻辑130,或者可以与列解码器124交换数据DATA。
在读取操作或验证操作期间,感测电路126可以响应于使能位VRYBIT而生成参考电流,并且可以将从页面缓冲器组123接收到的感测电压VPB与参考电流所生成的参考电压进行比较,然后输出通过信号PASS或失败信号FAIL。
控制逻辑130可以响应于命令CMD和地址ADDR,通过输出操作信号OPSIG、行地址RADD、页面缓冲器控制信号PBSIGNAL和使能位VRYBIT而控制外围电路120。例如,控制逻辑130可以响应于子块读取命令和地址而控制对所选择的存储块的读取操作。而且,控制逻辑130可以响应于子块擦除命令和地址而控制对所选择的存储块中包括的所选择子块的擦除操作。另外,控制逻辑130可以响应于通过信号PASS或失败信号FAIL来确定验证操作是通过还是失败。
图3是示出图2的存储器装置的存储器单元阵列的示例的示图。
参照图2和图3,图3是示出图2的存储器单元阵列110中包括的多个存储块BLK1至BLKz中的任意一个存储块BLKa的电路图。
存储块BLKa可以联接到彼此并联联接的第一选择线、字线和第二选择线。例如,字线可以彼此平行联接在第一选择线和第二选择线之间。此处,第一选择线可以是源极选择线SSL,并且第二选择线可以是漏极选择线DSL。
在所示出的示例中,存储块BLKa可以包括联接在位线BL1至BLn与源极线SL之间的多个串。位线BL1至BLn可以分别联接到串,并且源极线SL可以共同地联接到串。由于串可以类似地配置,因此将通过示例的方式详细描述联接到第一位线BL1的串ST。
串ST可以包括源极选择晶体管SST、多个存储器单元F1至F16和漏极选择晶体管DST,它们彼此串联联接在源极线SL和第一位线BL1之间。单个串ST可以包括至少一个源极选择晶体管SST和至少一个漏极选择晶体管DST,并且串ST中可以包括比图3所示的存储器单元F1至F16更少或更多的存储器单元。
源极选择晶体管SST的源极可以联接到源极线SL,漏极选择晶体管DST的漏极可以联接到第一位线BL1。存储器单元F1至F16可以串联联接在源极选择晶体管SST和漏极选择晶体管DST之间。不同串ST中包括的源极选择晶体管SST的栅极可以联接到源极选择线SSL,不同串ST中包括的漏极选择晶体管DST的栅极可以联接到漏极选择线DSL,并且存储器单元F1至F16的栅极可以分别联接到多个字线WL1至WL16。在不同串ST中包括的存储器单元之中的、联接到相同字线的一组存储器单元可以被称为“物理页面PG”(“PPG”)。因此,存储块BLKa可以包括与字线WL1至WL16的数量相同数量的多个物理页面PPG。
一个存储器单元可以存储一位数据。该单元通常被称为“单层单元”(“SLC”)。此处,一个物理页面PPG可以存储与一个逻辑页面LPG相对应的数据。与一个逻辑页面LPG相对应的数据可以包括与一个物理页面PPG中包括的存储器单元的数量相同数量的数据位。可选地,一个存储器单元可以存储两位或更多位数据。该单元通常被称为“多层单元”(“MLC”)。此处,一个物理页面PPG可以存储与两个或更多个逻辑页面LPG相对应的数据。
存储两位或更多位数据的存储器单元被称为多层单元(MLC)。然而,近来,随着一个存储器单元中存储的数据位的数量增加,多层单元(MLC)有时是指存储两位数据的存储器单元,并且存储三位数据的存储器单元被称为三层单元(TLC),存储四位数据的存储器单元被称为四层单元(QLC)等等。另外,已经开发了存储多位数据的存储器单元方案,并且本实施例可以应用于一个存储器单元中存储两位或更多位数据的存储器装置100。
在实施例中,存储块中的每一个可以具有三维(3D)结构。存储块中的每一个可以包括垂直地堆叠在衬底上的多个存储器单元。多个存储器单元沿+X方向、+Y方向和+Z方向布置。
图4是示出在主机和存储装置之间输出和更新映射数据的示例的简化示图。
参照图4,图4的主机300可以包括文件系统310,并且图4的存储装置50可以包括闪存转换层210和存储器装置100。
存储器装置100可以不物理地执行重新写入。相反,在编程操作期间,存储器装置100可以对多个存储器单元执行擦除操作,然后对多个存储器单元进行编程(即,擦除之后写入)。
因此,由于存储器装置100无法执行重新写入,因此用于控制存储器装置100的存储器控制器(例如,图1的存储器控制器200)可以包括闪存转换层210,该闪存转换层210将逻辑块地址(LBA)映射到物理块地址(PBA),以便对存储器装置100物理地执行连续写入操作。
因此,闪存转换层210可以允许存储器装置100通过将对应于逻辑块地址(LBA)的物理块地址(PBA)映射到除了被无效的地址之外的新物理块地址来执行连续写入操作。
在实施例中,闪存转换层210可以形成逻辑块地址(LBA)和物理块地址(PBA)之间的映射关系,并且可以将物理块地址(PBA)输出到存储器装置100。
此后,当通过损耗均衡或垃圾收集(GC)更新映射数据时,闪存转换层210可以基于从存储器装置100输出的更新信息UPDATE_INF来更新逻辑块地址(LBA)和物理块地址(PBA)之间的映射关系。也就是说,闪存转换层210可以在逻辑块地址(LBA)和物理块地址(PBA)之间形成新的映射关系。
在实施例中,文件系统310可以提高存储器装置100的性能。更具体地,文件系统310可以在存储器装置100的连续写入操作期间执行提高存储器装置100的性能的操作。
例如,当主机300向存储装置50输出连续编程请求时,文件系统310可以顺序地分配与连续编程请求相对应的逻辑块地址(LBA)。详细地,文件系统310可以将连续的逻辑块地址(LBA)顺序地分配给多个分区,并且可以将连续的逻辑块地址输出到存储装置50。
在实施例中,文件系统310可以通过将连续的逻辑块地址(LBA)顺序地分配给多个分区来自主地更新逻辑块地址(LBA)。而且,文件系统310可以以与存储器装置100相同的方式自主地执行垃圾收集(GC)。也就是说,当特定分区中包括的段之中的特定段的逻辑块地址(LBA)被无效时,可以执行垃圾收集(GC)以获得空闲段。文件系统310的这种垃圾收集(GC)可以在空闲时间期间执行。
当文件系统310处于忙碌状态时,可以不执行垃圾收集(GC),因此文件系统310可以将新逻辑块地址(LBA)分配给与被无效的逻辑块地址(LBA)相对应的段。这被称为“空闲空间回收(slack space recycling,SSR)”。
也就是说,在前台垃圾收集(前台GC)而不是后台垃圾收集(后台GC)中,可以将新逻辑块地址(LBA)分配给被无效段。此处,术语“前台垃圾收集(前台GC)”是区别于后台垃圾收集(后台GC)的操作,并表示在文件系统310已经完成了当前正在执行的操作之后所执行的操作。当无法执行后台GC时,可以执行前台GC。
因此,在文件系统310已经完成将逻辑块地址分配给段之后,可以通过前台垃圾收集(前台GC)将新逻辑块地址分配给被无效段。也就是说,前台垃圾收集(前台GC)可能是影响延迟的操作,而后台垃圾收集(后台GC)可能是不影响延迟的操作,因为它是在文件系统310操作期间的空闲时间执行的。
在示例中,当将新逻辑块地址(LBA)分配给被无效段时,存储器装置100可以执行随机写入操作而不是连续写入操作。也就是说,由于新逻辑块地址(LBA)被随机分配给文件系统310的多个分区,因此存储器装置100可以执行随机写入操作。
根据某些实施例,本公开提供了一种如下的方法:在对存储器装置100执行连续写入操作并将分配给多个分区的逻辑块地址(LBA)分配给单个分区的同时,将新逻辑块地址(LBA)分配给与通过前台垃圾收集(前台GC)而被无效的逻辑块地址(LBA)相对应的段。
图5是示出文件系统和经编程的存储块的示例的分区的示图。
参照图4和图5,图5示出了图4的文件系统(例如,图4的文件系统310)中包括的多个分区,以及图4的存储器装置(例如,图4的存储器装置100)中包括的多个存储块。
在图5中,尽管示出了多个分区是第一至第三分区ZONE1至ZONE3并且多个存储块是第一至第三存储块BLK1至BLK3,但是文件系统(例如,图4的文件系统310)中可以包括更多的分区或更少的分区,并且存储器装置(例如,图4的存储器装置100)中可以包括更多的存储块或更少的存储块。第一至第三分区ZONE1至ZONE3中的每一个可以包括多个段。
此外,第一至第三分区ZONE1至ZONE3中的每一个可以是执行垃圾收集(GC)的单位,其中每个分区可以对应于存储块。多个段中的每一个可以是执行编程操作和读取操作的单位,其中每个段可以对应于存储块中包括的页面。
在图5所示的示例中,从主机(例如,图4的主机300)输出的逻辑块地址(LBA)是与连续编程请求相对应的逻辑块地址(LBA)。进一步地,对于每个文件,在示例中执行连续的编程操作。也就是说,在第一文件FILE1中包括的数据条被连续编程之后,第二文件FILE2中包括的数据条以及第三文件FILE3中包括的数据条可以被连续编程。
在实施例中,文件系统(例如,图4的文件系统310)可以包括第一至第三分区ZONE1至ZONE3,第一至第三分区ZONE1至ZONE3中的每一个可以包括七个段。可以为每个段分配逻辑块地址(LBA)。
例如,与第一文件FILE1中包括的数据条相对应的第一至第七逻辑块地址LBA1至LBA7可以被分配给第一分区ZONE1,与第二文件FILE2中包括的数据条相对应的第八至第十四逻辑块地址LBA8至LBA14可以被分配给第二分区ZONE2,并且与第三文件FILE3中包括的数据条相对应的第十五至第二十一逻辑块地址LBA15至LBA21可以被分配给第三分区ZONE3。
当与各个文件中包括的数据条相对应的逻辑块地址(LBA)被分配给多个段时,可以对存储器装置(例如,图4的存储器装置100)中包括的存储块执行连续的编程操作,即连续的写入操作。
更具体地,闪存转换层(例如,图4的闪存转换层210)可以将第一至第七逻辑块地址LBA1至LBA7分配给连续的物理块地址。也就是说,闪存转换层可以将第一至第七逻辑块地址LBA1至LBA7顺序地映射到与第一存储块BLK1中包括的页面相对应的物理块地址。
以相同的方式,闪存转换层可以将第八至第十四逻辑块地址LBA8至LBA14顺序地映射到与第二存储块BLK2中包括的页面相对应的物理块地址,并且可以将第十五至第二十一逻辑块地址LBA15至LBA21顺序地映射到与第三存储块BLK3中包括的页面相对应的物理块地址。
此后,当存储器装置(例如,图4的存储器装置100)从闪存转换层接收物理块地址时,可以执行连续的编程操作。
例如,第一文件FILE1中包括的数据条可以被顺序地编程到第一存储块BLK1中包括的页面,第二文件FILE2中包括的数据条可以被顺序地编程到第二存储块BLK2中包括的页面,并且第三文件FILE3中包括的数据条可以被顺序地编程到第三存储块BLK3中包括的页面。
在实施例中,由于逻辑块地址(LBA)已经分配给文件系统(例如,图4的文件系统310)的各个分区中的所有段,因此分配后续逻辑块地址(LBA)可能有问题。例如,为了分配后续逻辑块地址(LBA),文件系统(例如,图4的文件系统310)可以执行垃圾收集(GC)。
图6是示出当发生映射更新时无效的页面的示例的示图。
参照图5和图6,图6示出了与图5的第一至第三块BLK1至BLK3中包括的第一至第二十一页面PAGE1至PAGE21相对应的物理块地址,以及与各个物理块地址相对应的逻辑块地址。
在图6所示的示例中,第一存储块BLK1包括第一至第七页面PAGE1至PAGE7,第二存储块BLK2包括第八至第十四页面PAGE8至PAGE14,并且第三存储块BLK3包括第十五至第二十一页面PAGE15至PAGE21。
在实施例中,第一至第二十一逻辑块地址LBA1至LBA21可以被映射到第一至第二十一物理块地址PBA1至PBA21。也就是说,第一至第二十一物理块地址PBA1至PBA21可以是分别对应于第一至第二十一页面PAGE1至PAGE21的地址。
参照图5和图6,通过使用文件系统(例如,图4的文件系统310),当与第一文件FILE1中包括的数据条相对应的逻辑块地址LBAl至LBA7、与第二文件FILE2中包括的数据条相对应的逻辑块地址LBA8至LBA14以及与第三文件FILE3中包括的数据条相对应的逻辑块地址LBAl5至LBA21被连续分配时,可以对与第一至第七物理块地址PBA1至PBA7、第八至第十四物理块地址PBA8至PBA14和第十五至第二十一物理块地址PBA15至PBA21相对应的页面执行连续的编程操作。
此后,映射数据可以通过损耗均衡或垃圾收集(GC)进行更新,并且存储块中的一个或多个可能被无效。
例如,通过损耗均衡或垃圾收集(GC),与第三物理块地址PBA3相对应的第三页面PAGE3的数据、与第六物理块地址PBA6相对应的第六页面PAGE6的数据、与第九物理块地址PBA9相对应的第九页面PAGE9的数据、与第十物理块地址PBA10相对应的第十页面PAGE10的数据、与第十五物理块地址PBA15相对应的第十五页面PAGE15的数据、与第十七物理块地址PBA17相对应的第十七页面PAGE17的数据以及与第十八物理块地址PBA18相对应的第十八页面PAGE18的数据可被无效。
因此,第三逻辑块地址LBA3与第三物理块地址PBA3之间的映射关系、第六逻辑块地址LBA6与第六物理块地址PBA6之间的映射关系、第九逻辑块地址LBA9与第九物理块地址PBA9之间的映射关系、第十逻辑块地址LBA10与第十物理块地址PBA10之间的映射关系、第十五逻辑块地址LBA15与第十五物理块地址PBA15之间的映射关系、第十七逻辑块地址LBA17与第十七物理块地址PBA17之间的映射关系以及第十八逻辑块地址LBA18与第十八物理块地址PBA18之间的映射关系可被无效。
在实施例中,当逻辑块地址(LBA)和物理块地址(PBA)之间的映射关系被无效时,文件系统(例如,图4的文件系统310)的各个分区中包括的段也可被无效。
在实施例中,在文件系统执行垃圾收集(GC)之前且在各个段被无效之后,将逻辑块地址(LBA)分配给各个分区的段可能有问题。
图7是示出基于映射更新来更新文件系统的各个分区的示例的示图。
参照图6和图7,图7示出了以下过程的示例:在图6所示的存储器装置的第三页面PAGE3的数据、第六页面PAGE6的数据、第九页面PAGE9的数据、第十页面PAGE10的数据、第十五页面PAGE15的数据、第十七页面PAGE17的数据以及第十八页面PAGE18的数据被无效之后,文件系统(例如,图4的文件系统310)中包括的各个分区的相应段被无效。
在实施例中,当映射数据通过损耗均衡或垃圾收集(GC)而被更新时,文件系统的各个分区可以被更新。
例如,当图6所示的存储器装置的第三页面、第六页面、第九页面、第十页面、第十五页面、第十七页面和第十八页面(PAGE3、PAGE6、PAGE9、PAGE10、PAGE15、PAGE17和PAGE18)的数据被无效时,对应于这些页面的逻辑块地址(LBA)和物理块地址(PBA)之间的映射关系可能被无效。
在示例性实施例中,当逻辑块地址(LBA)和物理块地址(PBA)之间的映射关系被无效时,分配给文件系统的第一分区ZONE1的第三逻辑块地址LBA3和第六逻辑块地址LBA6、分配给第二分区ZONE2的第九逻辑块地址LBA9和第十逻辑块地址LBA10以及分配给第三分区ZONE3的第十五逻辑块地址LBA15、第十七逻辑块地址LBA17和第十八逻辑块地址LBA18可被无效。
此处,由于逻辑块地址LBA1至LBA21已经被分配给文件系统(例如,图4的文件系统310)中包括的各个分区中的所有段,因此可能没有随后可以分配给段的新逻辑地址。因此,在空闲时间期间,可以由文件系统执行垃圾收集(GC)。
然而,由于并不总是存在空闲时间,因此在需要时文件系统可能不会执行垃圾收集(GC)。在这种情况下,由于无法将逻辑块地址分配给文件系统的未分配分区,因此可以使用空闲空间回收(SSR)来将新逻辑块地址重新分配给文件系统的各个分区的段。
图8是示出将逻辑块地址分配给被无效段的示例的示图。
参照图7和图8,在与分配给图7中第一分区ZONE1的第三逻辑块地址LBA3和第六逻辑块地址LBA6、分配给第二分区ZONE2的第九逻辑块地址LBA9和第十逻辑块地址LBA10以及分配给第三分区ZONE3的第十五逻辑块地址LBA15、第十七逻辑块地址LBA17和第十八逻辑块地址LBA18相对应的段被无效之后,在图8示出了新逻辑块地址的分配。
在实施例中,由于在逻辑块地址LBA1至LBA21已经被分配给文件系统(例如,图4的文件系统310)中包括的各个分区中的所有段之后可能不会出现空闲时间,因此可能不会对文件系统执行垃圾收集。在这种情况下,在忙碌状态下,文件系统可以使用空闲空间回收(SSR)而不是垃圾收集(GC)来为各个分区分配新逻辑块地址。
在实施例中,在与第三文件FILE3中包括的数据条相对应的逻辑块地址被分配给第三分区ZONE3之后,可以将与第四文件FILE4中包括的数据条相对应的逻辑块地址分配给文件系统(例如,图4的文件系统310)。
在一些情况下,文件系统可能处于忙碌状态,因此可能不执行垃圾收集(GC)。在这种情况下,可以通过空闲空间回收(SSR)来执行对特定段的重新写入操作。
例如,由于与分配给第一分区ZONE1的第三逻辑块地址LBA3和第六逻辑块地址LBA6相对应的段、与分配给第二分区ZONE2的第九逻辑块地址LBA9和第十逻辑块地址LBA10相对应的段以及与分配给第三分区ZONE3的第十五逻辑块地址LBA15、第十七逻辑块地址LBA17和第十八逻辑块地址LBA18相对应的段已经被无效,因此可以将与第四文件FILE4中包括的数据条相对应的逻辑块地址分配给ZONE1、ZONE2和ZONE3中那些被无效段。
然而,由于与第四文件FILE4中包括的数据条相对应的逻辑块地址不是连续分配在单个分区中,因此可能会执行随机写入操作而不是连续写入操作。由于随机写入操作,存储器装置的性能可能会劣化。也就是说,连续数据条和连续逻辑块地址之间的映射关系可能不是由文件系统(例如,图4的文件系统310)形成,因此存储装置的性能可能会劣化。
此外,由于形成了连续逻辑块地址和不连续的数据条之间的映射关系,因此在形成映射关系时可能会造成额外的性能损失。
根据某些实施例,提供了在通过空闲空间回收(SSR)将逻辑块地址分配给各个分区时的数据编程方法和映射数据更新方法。
图9是示出在将新逻辑块地址分配给无效段之后编程数据的示例的示图。
参照图6、图8和图9,示出了以下过程,其中,在图6中逻辑块地址(LBA)和物理块地址(PBA)之间的映射关系被无效之后,在图8中将与第四文件FILE4中包括的数据条相对应的逻辑块地址被分配给各个被无效段,之后将第四文件FILE4中包括的数据条被编程到存储器装置(例如,图4的存储器装置100)中包括的存储块。
在图9所示的示例中,除了第一至第三存储块BLK1至BLK3之外,存储器装置还包括附加的存储块,例如第四存储块BLK4。附加存储块可以是用户区域中的存储块之外的、额外包括的预留(over-provisioning,OP)区域的存储块。
在实施例中,由于文件系统(例如,图4的文件系统310)中不存在未分配的段,因此甚至在执行垃圾收集(GC)获得空闲段之前,可以使用空闲空间回收(SSR)来分配与第四文件FILE4中包括的数据条相对应的逻辑块地址。更具体地,由于新逻辑块地址被分配给被无效段,因此可以将与第四文件FILE4中包括的数据条相对应的逻辑块地址分配给被无效段。
当文件系统分配与第四文件FILE4中包括的各个数据条相对应的逻辑块地址时,闪存转换层(例如,图4的闪存转换层210)可以将与第四文件FILE4中包括的数据条相对应的逻辑块地址转换为物理块地址。此处,转换后的物理块地址可以是与第四存储块BLK4中包括的页面相对应的地址。
此后,当闪存转换层将与第四存储块BLK4中包括的页面相对应的物理块地址输出到存储器装置时,存储器装置可以将第四文件FILE4中包括的数据条连续地编程到与物理块地址相对应的页面。因此,可以执行连续的写入操作。
因此,由于文件系统(例如,图4的文件系统310)允许这种类型的重新写入,因此可以将与第四文件FILE4中包括的数据条相对应的逻辑块地址分配给被无效段。因此,即使存储器装置(例如,图4的存储器装置100)不能执行重新写入,也可以对第四存储块BLK4中包括的页面执行连续的写入操作。
然而,在图9所示的示例中,由于逻辑块地址没有连续地分配给文件系统(例如,图4的文件系统310)的段,因此可以执行连续分配逻辑块地址的操作。
图10是示出在文件系统中执行垃圾收集的过程的示例的示图。
参照图8和图10,图10示出了以下过程,其中,在如图8所示已经将与第四文件FILE4中包括的数据条相对应的逻辑块地址分配给各个段之后,使用垃圾收集(GC)将连续的逻辑块地址分配给个段。
在实施例中,当逻辑块地址LBA1至LBA21被分配给文件系统(例如,图4的文件系统310)中包括的各个分区的所有段时,可以在空闲时间期间对文件系统执行垃圾收集(GC),以获得空闲段。此处,甚至也可以通过主机(例如,图4的主机300)的内部操作而触发垃圾收集(GC)。
在实施例中,当执行垃圾收集(GC)时,第一至第三分区ZONE1至ZONE3可以被重置为第X至第Z分区ZONE_X至ZONE_Z。
当第一至第三分区ZONE1至ZONE3被设置为第X至第Z分区ZONE_X至ZONE_Z时,可以将连续的逻辑块地址分配给第X至第Z分区ZONE_X至ZONE_Z。也就是说,与第一至第四文件FILE1至FILE4中包括的数据条相对应的逻辑块地址可以被再次顺序地分配给第X至第Z分区ZONE_X至ZONE_Z。此处,第一至第三分区ZONE1至ZONE3中被无效段可不被分配至第X至第Z分区ZONE_X至ZONE_Z。
例如,与第一文件FILE1中包括的数据条相对应的逻辑块地址可以作为第X1至第X5逻辑块地址LBAX1至LBAX5被顺序地分配给第X分区ZONE_X中的各个段。
与第二文件FILE2中包括的数据条相对应的逻辑块地址可以作为第X6逻辑块地址LBAX6和第X7逻辑块地址LBAX7被顺序地分配给第X分区ZONE_X中的各个段,并且可以作为第Y1至第Y3逻辑块地址LBAY1至LBAY3被顺序地分配给第Y分区ZONE_Y中的各个段。
与第三文件FILE3中包括的数据条相对应的逻辑块地址可以作为第Y4至第Y7逻辑块地址LBAY4至LBAY7被顺序地分配给第Y分区ZONE_Y中的各个段。
与第四文件FILE4中包括的数据条相对应的逻辑块地址可以作为第Z1至第Z7逻辑块地址LBAZ1至LBAZ7被顺序地分配给第Z分区ZONE_Z中的各个段。
如上所述,当对文件系统(例如,图4的文件系统310)执行垃圾收集(GC)时,与第一至第四文件FILE1至FILE4中包括的连续数据条相对应的逻辑块地址可以被顺序地分配给第X至第Z分区ZONE_X至ZONE_Z的段。因此,可以将与第四文件系统FILE4中包括的数据条相对应的逻辑块地址分配给为单个分区的第Z分区ZONE_Z的段。
在实施例中,当对文件系统(例如,图4的文件系统310)执行垃圾收集(GC)时,闪存转换层(例如,图4的闪存转换层210)可以更新逻辑块地址(LBA)与物理块地址PBA之间的映射关系。而且,由于闪存转换层更新映射关系,因此存储器装置(例如,图4的存储器装置100)的存储块中包括的页面中的数据条也可能被移动。
图11是示出在对文件系统执行垃圾收集之后被改变的映射关系的示图。
参照图10和图11,图11示出了在图10中对文件系统(例如,图4的文件系统310)执行垃圾收集(GC)之后被改变的映射关系。
在实施例中,当从文件系统接收到根据执行垃圾收集(GC)的更新信息时,闪存转换层(例如,图4的闪存转换层210)可以更新逻辑块地址(LBA)与物理块地址(PBA)之间的映射关系。
在实施例中,当闪存转换层更新映射关系时,与第一文件FILE1中包括的数据条相对应的第X1至第X5逻辑块地址LBAX1至LBAX5可以与分别对应于第一存储块BLK1中包括的页面的第一至第五物理块地址PBA1至PBA5形成映射关系。
对应于第二文件FILE2中包括的数据条的第X6逻辑块地址LBAX6和第X7逻辑块地址LBAX7以及第Y1至第Y3逻辑块地址LBAY1至LBAY3可以与第六物理块地址PBA6和第七物理块地址PBA7以及第八至第十物理块地址PBA8至PBA10形成映射关系,该第六物理块地址PBA6和第七物理块地址PBA7对应于第一存储块BLK1中包括的页面,该第八至第十物理块地址PBA8至PBA10对应于第二存储块BLK2中包括的页面。
与文件FILE3中包括的数据条相对应的第Y4至第Y7逻辑块地址LBAY4至LBAY7可以与对应于第二存储块BLK2中包括的页面的第十一至第十四物理块地址PBA11至PBA14形成映射关系。
因此,第一至第三文件FILE1至FILE3中包括的数据条被顺序地编程到第一和第二存储块BLK1和BLK2中的页面,因此第一和第二存储块BLK1和BLK2中的页面中的数据条可以被视为连续数据。
而且,当第一至第三存储块BLK1至BLk3中包括的页面中的数据条被移动时,第三存储块BLK3可以变成空闲块。此后,新数据可以被编程到第三存储块BLK3中包括的页面。
在实施例中,当闪存转换层(例如,图4的闪存转换层210)更新映射关系时,与第四文件FILE4中包括的数据条相对应的第Z1至第Z7逻辑块地址LBAZ1至LBAZ7可以与对应于第四存储块BLK4中包括的页面的物理块地址形成各自的映射关系。
由于第Z1至第Z7逻辑块地址LBAZ1至LBAZ7与对应于第四存储块BLK4中包括的页面的物理块地址形成映射关系,因此可以仅更新映射关系而不移动第四存储块BLK4中包括的页面的数据。也就是说,由于仅更新映射关系而不移动第四存储块BLK4中的页面中的数据,因此第四存储块BLK4中的页面的数据条可以被视为连续数据。
因此,在不移动数据的情况下被编程到存储块中的页面的数据条可以被视为连续数据。
图12是示出根据实施例的电子系统的操作的示例的流程图。
参照图12,在S1201处,主机或主机的文件系统(例如,图4的文件系统310)可以将对应于连续数据的逻辑块地址分配给文件系统的多个分区。在实施例中,主机可以顺序地分配与连续数据相对应的逻辑块地址,以快速地访问该连续数据。
例如,电子系统的主机中包括的文件系统可以包括多个分区,并且每个分区可以包括一组段。主机或文件系统可以将对应于连续数据(例如,数据文件)的逻辑块地址顺序地分配给多个分区的段组。图5示出了将对应于连续数据的逻辑块地址分配给多个分区的段组的一个示例。
在S1203处,存储器控制器可以例如基于从主机输出的逻辑块地址,生成逻辑块地址与对应于多个存储块中的连续页面的物理块地址之间的映射关系。此处,从主机输出的逻辑块地址可以是与连续数据相对应的逻辑块地址。在形成映射关系之后,存储器控制器可以将物理地址输出到存储器装置。图5示出了生成逻辑块地址和物理块地址之间的映射关系的示例。
在S1205处,存储器控制器可以基于映射关系来控制存储器装置将连续数据编程到多个存储块中的连续页面,这些连续页面对应于从存储器控制器输出的物理块地址。图5和图6示出了将连续数据编程到多个存储块中的连续页面的示例。
此后,在S1207处,存储器控制器可以更新映射关系,其中更新后的映射关系指示与无效或过时(outdated)数据相关联的一个或多个物理块地址。例如,当通过损耗均衡或垃圾收集(GC)更新映射数据时,存储器控制器可以基于从存储器装置输出的更新信息来更新逻辑块地址和物理块地址之间的映射关系。图6示出了更新映射关系的示例。
当映射关系被更新时,主机可以使文件系统中包括的多个分区之中的特定分区中的段无效。也就是说,当映射数据被更新时,分配了相应逻辑块地址的段可以基于新形成的映射关系而被无效。多个分区中的一个或多个段可以改变为无效段。图6和图7示出了基于更新后的映射关系使文件系统的多个分区中的段无效的示例。
在S1209处,主机可以将与连续数据文件相对应的新逻辑块地址分配给无效段,其中无效段中的每一个都可分配了逻辑块地址,该逻辑块地址映射到与无效数据或过时数据相关联的一个或多个物理块地址中的物理块地址。在实施例中,可能在很长一段时间内不会对文件系统执行垃圾收集(GC)。在一些情况下,可能没有未分配的段可用,因此可能不会将新逻辑块地址分配给未分配的段。在这种情况下,新逻辑块地址可能会通过空闲空间回收(SSR)重新写入已经被分配给被无效段的逻辑块地址。图8示出了将与连续数据文件相对应的新逻辑块地址分配给无效段的示例。
将与连续数据文件相对应的新逻辑块地址分配给无效段可以使存储器控制器将被分配给无效段的新逻辑块地址映射到物理块地址,该物理块地址对应于多个存储块中的存储块中的连续页面。存储器控制器可以使用该映射来将数据文件编程到存储器装置的存储块中的连续页面,诸如例如图9中所示的预留区域中的存储块中的页面。
任选地,在S1211处,主机可以执行垃圾收集(GC),并且可以向存储器控制器输出指示已经通过垃圾收集(GC)更新了映射关系的命令。
例如,主机或文件系统可以自主地执行垃圾收集(GC),并且主机中的分区可以通过垃圾收集(GC)被重置为除了被无效段之外的新分区,例如如图10所示。当执行垃圾收集时,主机或文件系统可以将被分配给无效段的新逻辑块地址分配给多个分区中的分区中的一组段。此后,主机可以向存储器控制器输出指示已经通过垃圾收集(GC)更新了映射关系的命令。
任选地,在S1213处,存储器控制器可以基于从主机接收到的并且指示映射关系已经被更新的命令,形成逻辑块地址和物理块地址之间的新映射关系。在一个示例中,物理块地址可以是与用户区域中的存储块之外的、额外包括的预留(OP)区域的存储块中包括的页面相对应的地址。
因此,与连续数据文件相对应的新逻辑块地址可以映射到与新存储块中的页面相对应的物理块地址,因此连续数据文件可以被编程到新存储块(例如,图11中的BLK4)中的页面。在一些实施例中,存储器控制器可以基于更新后的映射信息来控制存储器装置以将连续数据移动到多个存储块中的连续页面,例如如图11所示,其中一个或多个存储块可以是空闲块。
图13是示出根据实施例的电子系统的操作的示例的流程图。
参照图13,在S1301处,电子系统的主机可以进入空闲时间。空闲时间可以是不执行操作的时段。
在S1303处,可以对主机中包括的文件系统执行垃圾收集(GC)。例如,可以对文件系统执行垃圾收集(GC),从而在文件系统中获得空闲段。当对文件系统执行垃圾收集(GC)时,可以将通过空闲空间回收(SSR)分配给被无效段的逻辑块地址重新分配给多个分区中的一个分区中的段。
在S1305处,存储器控制器可以更新映射关系。例如,当对文件系统执行垃圾收集(GC)时,可以重置文件系统中的分区,并且可以将与连续数据相对应的逻辑块地址顺序地重新分配给重置分区中的段。然后,存储器控制器可以基于顺序地重新分配给重置分区中的段的逻辑块地址来更新逻辑块地址和物理块地址之间的映射关系。
在S1307处,可以基于更新后的映射关系对存储装置执行垃圾收集。例如,由于逻辑块地址被重新分配给文件系统的各个分区,因此存储器控制器可以更新逻辑块地址和物理块地址之间的映射关系。此外,存储器装置可以由存储器控制器控制,以基于更新后的映射关系移动数据。
在实施例中,可以将分配给被无效段的逻辑块地址重新分配给一个分区中的段,可以仅更新映射关系而不移动存储器装置中的数据,因此,与分配给一个分区的逻辑块地址相对应的数据条可以被视为连续数据。
图14是示出图1的存储装置的存储器控制器的示例的框图。
在所示出的示例中,存储器控制器1000联接到主机和存储器装置。响应于从主机接收到的请求,存储器控制器1000可以访问存储器装置。例如,存储器控制器1000可以被配置为控制存储器装置的写入操作、读取操作、擦除操作和后台操作。存储器控制器1000可以在存储器装置和主机之间提供接口。存储器控制器1000可以运行用于控制存储器装置的固件。
参照图14,存储器控制器1000可以包括处理器1010、存储器缓冲器1020、错误校正码(ECC)电路1030、主机接口1040、缓冲器控制电路1050、存储器接口1060和总线1070。
总线1070可以在存储器控制器1000的组件之间提供通道。
处理器1010可以控制存储器控制器1000的全部操作,并且可以执行逻辑运算。处理器1010可以通过主机接口1040与外部主机通信,并且还通过存储器接口1060与存储器装置通信。进一步地,处理器1010可以通过缓冲器控制电路1050与存储器缓冲器1020通信。处理器1010可以通过使用存储器缓冲器1020作为工作存储器、高速缓存存储器或缓冲存储器来控制存储装置的操作。
处理器1010可以执行闪存转换层(FTL)的功能。处理器1010可以通过FTL将主机所提供的逻辑块地址(LBA)转换为物理块地址(PBA)。FTL可以接收LBA,并且使用映射表将LBA转换为PBA。通过FTL执行的地址映射方法的示例可以包括根据映射单位的各种方法。代表性的地址映射方法包括页面映射方法、块映射方法和混合映射方法。
处理器1010可以使从主机接收到的数据随机化。例如,处理器1010可以使用随机化种子来使从主机接收到的数据随机化。经随机化的数据可以作为待存储的数据被提供到存储器装置,并且可以被编程在存储器单元阵列。
处理器1010可以运行软件或固件以执行随机化操作或去随机化操作。
在实施例中,处理器1010可以运行软件或固件以执行随机化操作和去随机化操作。
存储器缓冲器1020可以用作处理器1010的工作存储器、高速缓存存储器或缓冲存储器。存储器缓冲器1020可以存储处理器1010所运行的代码和命令。存储器缓冲器1020可以存储处理器1010所处理的数据。存储器缓冲器1020可以包括静态RAM(SRAM)或动态RAM(DRAM)。
ECC电路1030可以执行错误校正。ECC电路1030可以基于待通过存储器接口1060写入存储器装置的数据来执行错误校正码(ECC)编码。经ECC编码的数据可以通过存储器接口1060被传送到存储器装置。ECC电路1030可以基于通过存储器接口1060从存储器装置接收的数据执行ECC解码。在示例中,ECC电路1030可以作为存储器接口1060的组件而被包括在存储器接口1060中。
主机接口1040可以在处理器1010的控制下与外部主机通信。主机接口1040可以使用诸如以下的各种通信方法中的至少一种来执行通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和低负载DIMM(LRDIMM)通信方法。
缓冲器控制电路1050可以在处理器1010的控制下控制存储器缓冲器1020。
存储器接口1060可以在处理器1010的控制下与存储器装置通信。存储器接口1060可以通过通道将命令、地址和数据传输到存储器装置/从存储器装置接收命令、地址和数据。
在实施例中,存储器控制器1000可以不包括存储器缓冲器1020和缓冲器控制电路1050。
在实施例中,处理器1010可以使用代码来控制存储器控制器1000的操作。处理器1010可以从设置在存储器控制器1000中的非易失性存储器装置(例如,ROM)加载代码。在实施例中,处理器1010可以通过存储器接口1060从存储器装置加载代码。
在实施例中,存储器控制器1000的总线1070可以被划分为控制总线和数据总线。数据总线可以被配置为在存储器控制器1000中传输数据,并且控制总线可以被配置为在存储器控制器1000中传输诸如命令或地址的控制信息。数据总线和控制总线可以彼此分开,并且可以既不相互干扰也不相互影响。数据总线可以联接到主机接口1040、缓冲器控制电路1050、ECC电路1030和存储器接口1060。控制总线可以联接到主机接口1040、处理器1010、缓冲器控制电路1050、存储器缓冲器1020和存储器接口1060。
图15示出了可以使用根据实施例的存储装置的存储卡系统的示例。
参照图15,存储卡系统2000可以包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100联接到存储器装置2200。存储器控制器2100可以访问存储器装置2200。例如,存储器控制器2100可以控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100可以在存储器装置2200与主机之间提供接口。存储器控制器2100可以运行用于控制存储器装置2200的固件。存储器装置2200可以以与上面参照图1描述的存储器装置(例如,图1的存储器装置100)相同的方式来实施。
在实施例中,存储器控制器2100可以包括诸如RAM、处理器、主机接口、存储器接口和ECC电路的组件。
存储器控制器2100可以通过连接器2300与外部装置通信。存储器控制器2100可以基于特定的通信协议与外部装置(例如,主机)通信。在实施例中,存储器控制器2100可以通过诸如以下的各种通信协议中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙和高速非易失性存储器(NVMe)协议。在实施例中,连接器2300可以通过上述各种通信协议中的至少一种来定义。
在实施例中,存储器装置2200可以被实施为诸如以下的各种非易失性存储器装置中的任意一种:电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)、自旋转移力矩磁性RAM(STT-MRAM)。
存储器控制器2100和存储器装置2200可以被集成到单个半导体装置中,以配置存储卡。例如,存储器控制器2100和存储器装置2200可以被集成到单个半导体装置中,以配置诸如以下的存储卡:PC卡(个人计算机存储卡国际协会:PCMCIA)、紧凑型闪存(CF)卡、智能媒体卡(SM或SMC)、记忆棒、多媒体卡(MMC、RS-MMC、微型MMC或eMMC)、SD卡(SD、迷你SD、微型SD或SDHC)或通用闪存(UFS)。
图16是可以使用根据实施例的存储装置的固态驱动器(SSD)系统的示例的框图。
参照图16,SSD系统3000可以包括主机3100和SSD 3200。SSD 3200可以通过信号连接器3001与主机3100交换信号SIG,并且可以通过电源连接器3002接收电力PWR。SSD 3200可以包括SSD控制器3210、多个非易失性存储器3221至322n、辅助电源3230和缓冲存储器3240。
在实施例中,SSD控制器3210可以执行上面参照图1描述的存储器控制器(例如,图1的存储器控制器200)的功能。
SSD控制器3210可以响应于从主机3100接收到的信号SIG而控制多个非易失性存储器3221至322n。在实施例中,信号SIG可以是基于主机3100和SSD 3200的接口的信号。例如,信号SIG可以是通过诸如以下的各种接口中的至少一种来限定的信号:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙和高速非易失性存储器(NVMe)接口。
辅助电源3230可以通过电源连接器3002联接到主机3100。可以从主机3100向辅助电源3230供应电力PWR并且可以对其进行充电。当来自主机3100的电力供应执行地不平稳时,辅助电源3230可以供应SSD 3200的电力。在实施例中,辅助电源3230可以位于SSD 3200内部或位于SSD 3200外部。例如,辅助电源3230可以被设置在主板中并且可以向SSD 3200供应辅助电力。
缓冲存储器3240用作SSD 3200的缓冲存储器。例如,缓冲存储器3240可以临时存储从主机3100接收到的数据或从多个非易失性存储器3221至322n接收到的数据,或者可以临时存储非易失性存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可以包括诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的易失性存储器,或者诸如FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器。
图17是示出可以使用根据实施例的存储装置的用户系统的示例的框图。
参照图17,用户系统4000可以包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可以运行用户系统4000中包括的组件、操作系统(OS)或用户程序。在实施例中,应用处理器4100可以包括用于控制用户系统4000中包括的组件的控制器、接口、图形引擎等。应用处理器4100可以作为片上系统(SoC)被提供。
存储器模块4200可以用作用户系统4000的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器模块4200可以包括诸如DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3SDRAM、LPDDR SDRAM、LPDDR2 SDRAM和LPDDR3 SDRAM的易失性RAM,或者诸如PRAM、ReRAM、MRAM和FRAM的非易失性RAM。在实施例中,应用处理器4100和存储器模块4200可以基于堆叠封装(POP)进行封装,然后可以作为单个半导体封装被提供。
网络模块4300可以与外部装置通信。例如,网络模块4300可以支持诸如以下的无线通信:码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、WiMAX、WLAN、UWB、蓝牙或Wi-Fi通信。在实施例中,网络模块4300可以被包括在应用处理器4100中。
存储模块4400可以存储数据。例如,存储模块4400可以存储从应用处理器4100接收到的数据。可选地,存储模块4400可以将存储模块4400中存储的数据传输到应用处理器4100。在实施例中,存储模块4400可以被实施为非易失性半导体存储器装置,诸如相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪速存储器、NOR闪速存储器或具有三维(3D)结构的NAND闪速存储器。在实施例中,存储模块4400可以作为用户系统4000的诸如存储卡或外部驱动器的可移动存储介质(即,可移动驱动器)被提供。
在实施例中,存储模块4400可以包括多个非易失性存储器装置,多个非易失性存储器装置中的每一个可以以与上面参照图2和图3描述的存储器装置相同的方式操作。存储模块4400可以以与上面参照图1描述的存储装置50相同的方式操作。
用户接口4500可以包括将数据或指令输入到应用处理器4100或者将数据输出到外部装置的接口。在实施例中,用户接口4500可以包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、相机、麦克风、陀螺仪传感器、振动传感器和压电装置的用户输入接口。用户接口4500可以进一步包括诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监控器的用户输出接口。
根据本公开,当闪存友好文件系统(F2FS)型文件系统中不存在空闲段时,对无效段执行重新写入操作,并且在空闲时间期间通过利用垃圾收集将逻辑块地址移动到一个区域来将逻辑块地址转换为对应于连续数据的地址,从而提高包括主机、存储器控制器和存储器装置的电子系统的性能。

Claims (20)

1.一种电子系统,包括:
文件系统,将与连续数据相对应的逻辑块地址分配给多个分区中的段组;
存储器装置,包括多个存储块;以及
存储器控制器,将所述逻辑块地址映射到与所述多个存储块中的连续页面相对应的物理块地址,以将所述连续数据编程到所述多个存储块中的连续页面,
其中所述文件系统将与所述连续数据相对应的新逻辑块地址分配给所述多个分区中的无效段,其中所述无效段中的每一个被分配了逻辑块地址,所述逻辑块地址被映射到与无效数据相关联的物理块地址。
2.根据权利要求1所述的电子系统,其中:
所述存储器控制器更新逻辑块地址和物理块地址之间的映射关系,更新后的映射关系指示与所述无效数据相关联的一个或多个物理块地址,并且
所述文件系统基于所述更新后的映射关系将所述多个分区中的一个或多个段改变为所述无效段。
3.根据权利要求1所述的电子系统,其中所述文件系统将所述新逻辑块地址分配给所述段组之中的已经分配了逻辑块地址的所述无效段。
4.根据权利要求1所述的电子系统,其中所述存储器控制器将分配给所述无效段的所述新逻辑块地址映射到物理块地址,所述物理块地址对应于所述多个存储块中的存储块中的连续页面。
5.根据权利要求4所述的电子系统,其中所述多个存储块中的存储块位于预留区域中。
6.根据权利要求1所述的电子系统,其中所述文件系统在所述多个分区中的每个分区的多个段被分配之后,在对所述多个分区的段组执行垃圾收集之前,将所述新逻辑块地址分配给所述无效段。
7.根据权利要求6所述的电子系统,其中所述文件系统在执行所述垃圾收集时,将分配给所述无效段的所述新逻辑块地址分配给所述多个分区中的分区中的段组。
8.根据权利要求7所述的电子系统,其中所述文件系统将基于所述垃圾收集而更新的映射信息输出到所述存储器控制器。
9.根据权利要求8所述的电子系统,其中所述存储器控制器基于更新后的映射信息来控制所述存储器装置以移动所述连续数据。
10.根据权利要求7所述的电子系统,其中所述存储器控制器在执行所述垃圾收集时,将分配给所述多个分区中的分区中的段组的逻辑块地址映射到物理块地址,所述物理块地址对应于所述存储器装置中连续编程的页面。
11.一种操作电子系统的方法,所述电子系统包括文件系统以及包括多个存储块的存储器装置,所述方法包括:
将与连续数据相对应的逻辑块地址分配给多个分区中的段组;
生成所述逻辑块地址与对应于所述多个存储块中的连续页面的物理块地址之间的映射关系;
基于所述映射关系,将所述连续数据编程到所述多个存储块中的连续页面;
更新所述映射关系,更新后的映射关系指示与无效数据相关联的一个或多个物理块地址;以及
将与所述连续数据相对应的新逻辑块地址分配给无效段,其中所述无效段中的每一个被分配了逻辑块地址,所述逻辑块地址被映射到与所述无效数据相关联的一个或多个物理块地址中的物理块地址。
12.根据权利要求11所述的方法,进一步包括:基于所述更新后的映射关系将所述多个分区中的一个或多个段改变为所述无效段。
13.根据权利要求11所述的方法,其中将所述新逻辑块地址分配给所述无效段包括:将所述新逻辑块地址分配给所述段组之中的已经分配了逻辑块地址的所述无效段。
14.根据权利要求11所述的方法,进一步包括:将分配给所述无效段的所述新逻辑块地址映射到物理块地址,所述物理块地址对应于所述多个存储块中的存储块中的连续页面。
15.根据权利要求14所述的方法,其中所述多个存储块中的存储块位于预留区域中。
16.根据权利要求11所述的方法,其中将所述新逻辑块地址分配给所述无效段包括:在所述多个分区中的每个分区的多个段被分配之后,在对所述多个分区的段组执行垃圾收集之前,将所述新逻辑块地址分配给所述无效段。
17.根据权利要求16所述的方法,进一步包括:当执行所述垃圾收集时,将分配给所述无效段的所述新逻辑块地址分配给所述多个分区中的分区中的段组。
18.根据权利要求17所述的方法,进一步包括:将基于所述垃圾收集而更新的映射信息输出到所述电子系统的存储器控制器。
19.根据权利要求18所述的方法,进一步包括:基于更新后的映射信息来移动所述多个存储块中的所述连续数据。
20.根据权利要求17所述的方法,进一步包括:当执行所述垃圾收集时,将分配给所述多个分区中的分区中的段组的逻辑块地址映射到物理块地址,所述物理块地址对应于所述存储器装置中连续编程的页面。
CN202110990872.7A 2020-12-02 2021-08-26 电子系统及其操作方法 Withdrawn CN114579475A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200166882A KR20220077691A (ko) 2020-12-02 2020-12-02 호스트, 메모리 컨트롤러 및 메모리 장치를 포함하는 전자 시스템 및 이의 동작 방법
KR10-2020-0166882 2020-12-02

Publications (1)

Publication Number Publication Date
CN114579475A true CN114579475A (zh) 2022-06-03

Family

ID=81752619

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110990872.7A Withdrawn CN114579475A (zh) 2020-12-02 2021-08-26 电子系统及其操作方法

Country Status (3)

Country Link
US (1) US11543986B2 (zh)
KR (1) KR20220077691A (zh)
CN (1) CN114579475A (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11733895B2 (en) * 2021-03-31 2023-08-22 Silicon Motion, Inc. Control method of flash memory controller and associated flash memory controller and storage device
US11748011B2 (en) * 2021-03-31 2023-09-05 Silicon Motion, Inc. Control method of flash memory controller and associated flash memory controller and storage device
US20230222055A1 (en) * 2022-01-11 2023-07-13 Western Digital Technologies, Inc. Log File System (LFS) Invalidation Command and Operational Mode

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101447188B1 (ko) 2007-07-31 2014-10-08 삼성전자주식회사 플래시 메모리에 최적화된 입출력 제어 방법 및 장치
KR102050732B1 (ko) 2012-09-28 2019-12-02 삼성전자 주식회사 컴퓨팅 시스템 및 컴퓨팅 시스템의 데이터 관리 방법
JP5951472B2 (ja) * 2012-12-26 2016-07-13 株式会社東芝 ディスク記憶装置及び方法
US11061814B1 (en) * 2013-03-15 2021-07-13 EMC IP Holding Company LLC Managing data storage caching and tiering
US10409526B2 (en) * 2014-12-17 2019-09-10 Violin Systems Llc Adaptive garbage collection
US11720253B2 (en) * 2020-12-31 2023-08-08 Micron Technology, Inc. Access of a memory system based on fragmentation

Also Published As

Publication number Publication date
US11543986B2 (en) 2023-01-03
US20220171532A1 (en) 2022-06-02
KR20220077691A (ko) 2022-06-09

Similar Documents

Publication Publication Date Title
CN110389720B (zh) 存储装置及其操作方法
US11036632B2 (en) Memory controller and operating method thereof
CN111752857A (zh) 存储器控制器及操作存储器控制器的方法
CN114267392A (zh) 存储器控制器、存储装置及其操作方法
US11543986B2 (en) Electronic system including host, memory controller and memory device and method of operating the same
CN111444115B (zh) 存储装置及其操作方法
CN111352855B (zh) 具有提高的映射更新速度的存储装置及其操作方法
CN112306902A (zh) 存储器控制器及操作其的方法
CN112825062A (zh) 存储器控制器及其操作方法
CN111752856A (zh) 存储器控制器及其操作方法
KR20210113905A (ko) 메모리 컨트롤러 및 그 동작 방법
CN114860622A (zh) 存储装置及操作存储装置的方法
CN114201414A (zh) 存储装置及其操作方法
CN113223573A (zh) 存储器控制器及其操作方法
CN113535079B (zh) 存储器控制器以及具有存储器控制器的存储装置
CN114356209A (zh) 存储装置及其操作方法
CN113806240A (zh) 存储装置及其操作方法
CN113688066A (zh) 存储器控制器及其操作方法
CN111338978A (zh) 存储装置以及操作存储装置的方法
CN114510371A (zh) 存储装置及操作存储装置的方法
CN114489467A (zh) 存储器控制器及其操作方法
CN114327251A (zh) 存储装置及其操作方法
CN112199037A (zh) 存储器控制器及其操作方法
US11841795B2 (en) Storage device for setting a flag in a mapping table according to a sequence number and operating method thereof
US11210223B2 (en) Storage device and operating method thereof

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
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20220603