CN111857563A - 数据存储装置、包括其的电子装置及其操作方法 - Google Patents
数据存储装置、包括其的电子装置及其操作方法 Download PDFInfo
- Publication number
- CN111857563A CN111857563A CN201911061648.9A CN201911061648A CN111857563A CN 111857563 A CN111857563 A CN 111857563A CN 201911061648 A CN201911061648 A CN 201911061648A CN 111857563 A CN111857563 A CN 111857563A
- Authority
- CN
- China
- Prior art keywords
- data
- logical address
- block
- write
- memory
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- 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
-
- 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
Abstract
本申请涉及一种数据存储装置。该数据存储装置包括:存储器装置,包括罕见开放块和普通开放块,罕见开放块存储与重新分配的无效逻辑地址相对应的数据,普通开放块存储与新分配的空闲逻辑地址相对应的数据;以及控制器,被配置成基于从主机接收的写入命令中包括的信息来确定将写入数据存储在罕见开放块还是普通开放块中,并且根据确定的结果来控制存储器装置将写入数据存储在罕见开放块或普通开放块中。
Description
相关申请的交叉引用
本申请要求于2019年4月26日向韩国知识产权局提交的申请号为10-2019-0049185的韩国申请的优先权,其通过引用整体并入本文。
技术领域
各个实施例总体涉及一种电子装置,且更特别地,涉及一种数据存储装置、包括数据存储装置的电子装置以及操作数据存储装置的方法。
背景技术
近来,计算机环境范例已经改变成能够随时随地使用计算机系统的普适计算。在普适计算时代,诸如蜂窝电话、数码相机和笔记本电脑的便携式电子装置的使用正迅速增加。这种便携式电子装置通常采用使用存储器装置的数据存储装置。数据存储装置用于存储便携式电子装置中使用的数据。
使用该存储器装置的数据存储装置的优点在于,由于没有机械驱动单元,所以数据存储装置的稳定性和耐久性优异,并且数据访问速率非常快,并且功耗低。具有这些优点的数据存储装置包括通用串行总线(USB)存储器装置、具有各种接口的存储卡、通用闪存(UFS)装置、固态驱动器(SSD)等中的任意一种。
发明内容
本文描述了一种数据存储装置、包括数据存储装置的电子装置以及操作数据存储装置的方法,该数据存储装置能够保持分别映射到连续物理地址的逻辑地址的连续性。
在实施例中,一种数据存储装置,包括:存储器装置,包括罕见(rare)开放块和普通开放块,罕见开放块存储与重新分配的无效逻辑地址相对应的数据,普通开放块存储与新分配的空闲逻辑地址相对应的数据;以及控制器,被配置成基于从主机接收的写入命令中包括的信息来确定将数据存储在罕见开放块还是普通开放块中,并且根据确定的结果来控制存储器装置将数据存储在罕见开放块或普通开放块中。
在实施例中,一种电子装置包括:主机,被配置成向数据存储装置传送写入命令、写入逻辑地址和写入数据。写入命令包括指示写入逻辑地址是重新分配的无效逻辑地址还是新分配的空闲逻辑地址的信息。该电子装置包括数据存储装置,被配置成根据从主机接收的写入命令中包括的信息,在存储器装置的多个存储块之中,当写入逻辑地址是重新分配的无效逻辑地址时,分配第一开放块来存储写入数据,并且当写入逻辑地址是新分配的空闲逻辑地址时,分配第二开放块来存储写入数据。
在实施例中,一种操作数据存储装置的方法,包括:在存储器装置中包括的多个存储块之中,分配存储与重新分配的无效逻辑地址相对应的数据的第一开放块和存储与新分配的空闲逻辑地址相对应的数据的第二开放块;基于从主机接收的写入命令中包括的信息,确定将写入数据存储在第一开放块还是第二开放块中;并且根据确定的结果来控制存储器装置将写入数据存储在第一开放块或第二开放块中。
根据实施例,能够在写入操作期间基本上保持分别被映射到连续物理地址的逻辑地址的连续性,并且由于基本上保持了逻辑地址的连续性,所以可提高数据存储装置的读取性能。
附图说明
图1示出根据实施例的电子装置。
图2和图3示出根据实施例的数据存储装置。
图4示出存储器芯片的内部结构。
图5示出根据实施例的由文件系统管理的逻辑地址结构。
图6A和图6B示出根据实施例的用于保持逻辑地址的连续性的写入操作。
图6C示出与旧数据相对应的逻辑地址被无效的逻辑地址结构。
图7示出后台地址垃圾收集操作。
图8A和图8B示出前台地址垃圾收集操作。
图8C示出根据实施例的罕见映射更新。
图9是示出根据实施例的操作数据存储装置的方法的流程图。
图10示出根据实施例的包括固态驱动器(SSD)的数据处理系统。
图11示出图10所示的控制器。
图12示出根据实施例的包括数据存储装置的数据处理系统。
图13示出根据实施例的包括数据存储装置的数据处理系统。
图14示出根据实施例的包括数据存储装置的网络系统。
图15示出根据实施例的数据存储装置中包括的非易失性存储器装置。
具体实施方式
在下文中,将参照附图描述优选实施例。
图1示出根据实施例的电子装置10。电子装置10可包括主机100和数据存储装置200。
主机100可以是蜂窝电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视机、车载信息娱乐系统等中的任意一种。主机100可包括文件系统110。虽然未在图1中示出,但主机100可包括处理单元(例如,中央处理单元(CPU))和驱动单元。处理单元可控制主机100的全部操作,并且驱动单元可在处理单元的控制下驱动数据存储装置200。在实施例中,主机100的驱动单元可包括一个或多个应用(未示出)、文件系统110、主机存储器(未示出)等。
应用也称为应用程序,并且可以是在操作系统(OS)上执行的软件。应用可响应于用户的输入来处理数据。例如,应用可响应于用户的输入来处理用户数据,并且将用于将经处理的用户数据存储在数据存储装置200的存储器装置中的命令传送到文件系统110。
文件系统110可响应于从应用传送的命令,分配逻辑块地址LBA(在下文中,称为“逻辑地址”)来存储用户数据。在实施例中,文件系统110可以是闪存友好型文件系统(F2FS)或类似于F2FS的另一类型文件系统,但实施例不限于此。
文件系统110可以区段为单位来管理逻辑地址。一个区段可包括多个段。在实施例中,文件系统110中的区段可对应于数据存储装置200中的存储器装置的存储块。文件系统110中的段可对应于存储器装置的页面或映射单元,页面包括多个映射单元。页面可以是诸如读取操作和写入操作的操作的执行单位,并且映射单元可由与一个逻辑地址相对应的数据大小来定义。因此,在文件系统110中,一个段可与一个逻辑地址或者两个或多个逻辑地址相对应。
主机存储器可临时存储待写入数据存储装置200的存储器装置中的数据或从存储器装置读取的数据。此外,主机存储器可用作驱动应用、文件系统110等的工作存储器。
数据存储装置200可存储由主机100访问的数据。数据存储装置200可被称为存储器系统。
根据与主机100通信的接口协议,数据存储装置200可被制造为各种类型的存储装置中的任意一种。例如,数据存储装置200可被配置成包括以下的各种类型的存储装置中的任意一种:固态驱动器(SSD)、多媒体卡(例如,MMC、eMMC、RS-MMC或微型-MMC)、安全数字卡(例如,SD、迷你-SD或微型-SD)、通用串行总线(USB)存储装置、通用闪存(UFS)装置、个人计算机存储卡国际协会(PCMCIA)卡、外围组件互连(PCI)卡、高速PCI(PCI-E)卡、紧凑式闪存(CF)卡、智能媒体卡、记忆棒等。
可使用诸如以下的各种类型的封装中的任意一种来制造数据存储装置200:堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)、晶圆级堆叠封装(WSP)等。
图2和图3示出根据实施例的图1的数据存储装置200。
参照图2和图3,数据存储装置200可包括存储器装置210和存储器控制器220(在下文中,也可称为“控制器”)。
存储器装置210可作为数据存储装置200的存储介质操作。存储器装置210可包括诸如以下的各种类型的非易失性存储器装置中的任意一种:NAND闪速存储器装置、NOR闪速存储器装置、使用铁电电容器的铁电随机存取存储器(FRAM)装置、使用隧穿磁阻(TMR)膜的磁性随机存取存储器(MRAM)装置、使用硫族化物合金的相变随机存取存储器(PRAM)装置、使用过渡金属氧化物的电阻式随机存取存储器(ReRAM)装置等。
存储器装置210可包括存储器单元阵列(未示出),该存储器单元阵列具有布置在多个位线(未示出)和多个字线(未示出)的交叉处的多个存储器单元。
例如,存储器单元阵列中的每个存储器单元可以是能够存储一位数据的单层单元(SLC)、能够存储两位数据的多层单元(MLC)、能够存储三位数据的三层单元(TLC)或能够存储四位数据的四层单元(QLC)。存储器单元阵列可包括单层单元、多层单元、三层单元及四层单元中的至少一种。另外,存储器单元阵列可包括具有二维水平结构的存储器单元或具有三维垂直结构的存储器单元。
存储器控制器220可通过执行加载在随机存取存储器(RAM)250上的固件或软件来控制数据存储装置200的全部操作。存储器控制器220可解码和执行诸如固件或软件的代码类型的指令或算法。存储器控制器220可被实施为硬件或硬件与软件的组合。
存储器控制器220可包括主机接口230、处理器240、RAM 250及存储器接口260。虽然未在图2中示出,但存储器控制器220可进一步包括错误校正码(ECC)电路,该ECC电路通过对从图1的主机100提供的写入数据进行ECC编码来生成奇偶校验数据,并且通过使用与读取数据相对应的奇偶校验数据来对从存储器装置210读取的读取数据进行ECC解码。
对应于主机100的协议,主机接口230可用作主机100与数据存储装置200之间的接口。例如,主机接口230可使用诸如以下的协议中的任意一种来与主机100通信:通用串行总线(USB)接口、通用闪存(UFS)接口、多媒体卡(MMC)接口、并行高级技术附件(PATA)接口、串行高级技术附件(SATA)接口、小型计算机系统接口(SCSI)、串列SCSI(SAS)、外围组件互连(PCI)接口和高速PCI(PCI-E)接口。
处理器240可包括微控制单元(MCU)和/或中央处理单元(CPU)。处理器240可处理从主机100传送的请求。为了处理从主机100传送的请求,处理器240可执行加载在RAM 250上的代码类型指令或算法,即固件,并且控制存储器控制器220的诸如主机接口230、RAM250和存储器接口260的内部功能块和存储器装置210。
处理器240可响应于从主机100传送的命令来生成用于控制存储器装置210的操作的控制信号,并且通过存储器接口260来将所生成的控制信号提供到存储器装置210。
RAM 250可包括动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)或两者。RAM 250可存储由处理器240执行的固件。此外,RAM 250可存储执行固件所需的数据,例如元数据。也就是说,RAM 250可作为处理器240的工作存储器来操作。
RAM 250可包括数据缓冲器(未示出),该数据缓冲器用于临时存储待从主机100传送到存储器装置210的写入数据,或者待从存储器装置210传送到主机100的读取数据。也就是说,RAM 250可作为缓冲存储器来操作。
存储器接口260可在处理器240的控制下控制存储器装置210。存储器接口260可将由处理器240生成的控制信号提供到存储器装置210。控制信号可包括用于控制存储器装置210的命令、地址、操作控制信号等。存储器接口260可向存储器装置210提供写入数据,或者可从存储器装置210接收读取数据。
参照图3,存储器装置210可包括多个存储器芯片211。多个存储器芯片211可被分组为多个存储器芯片组2111至211m,m为自然数。多个存储器芯片组2111至211m中的每一个可包括n个存储器芯片,n为自然数。多个存储器芯片组2111至211m可通过相应的通道CH1至CHm来与存储器控制器220通信。
例如,分别包括在存储器芯片组2111至211m中的多个存储器芯片2111-1至2111-n至多个存储器芯片211m-1至211m-n可分别电连接到通道CH1至CHm。通道CH1至CHm中的每一个可指代能够在存储器控制器220与存储器芯片组2111至211m中的相应存储器芯片组之间传送/接收命令、地址和数据的独立总线。电连接到不同通道的存储器芯片可独立操作。
图4示出存储器芯片的内部结构。虽然作为示例,图4示出图3所示的第一存储器芯片组2111中的第一存储器芯片2111-1,但图3所示的存储器装置210中包括的其它存储器芯片的内部结构可与图4所示的基本相同。
如图4所示,第一存储器芯片2111-1可包括多个存储块BLK1至BLKi,i为自然数。存储块BLK1至BLKi中的每一个可包括多个页面PG1至PGj,j为自然数。虽然未在图4中示出,但第一存储器芯片2111-1可包括多个平面,每个平面可包括多个存储块。
图5示出根据实施例的由文件系统管理的逻辑地址结构。图5的文件系统可对应于图1所示的文件系统110。
如图5所示,文件系统110可通过将多个逻辑地址LBA1至LBAz分组为预定数量来对多个逻辑地址LBA1至LBAz进行管理。在本实施例中,为便于描述,包括预定数量的逻辑地址的组将被称为“区段”。也就是说,在本实施例中,“区段”可指代“逻辑地址组”。
例如,文件系统110可通过将多个逻辑地址LBA1至LBAz分组为p个区段Section 1至Section p来对多个逻辑地址LBA1至LBAz进行管理,其中p为自然数。区段Section 1至Section p中的每一个可包括q个段SG1至SGq,q为自然数。
图5示出区段Section 1至Section p中的每一个包括相同数量的段。然而,实施例不限于此。在另一实施例中,区段Section 1至Section p中的每一个中包括的段的数量可不同。为便于描述,在本实施例中,假设区段Section 1至Section p的每一个中包括的段的数量相同。
在实施例中,一个区段中包括的段SG1至SGq可对应于图4所示的一个存储块BLK中包括的页面PG1至PGj。在这种情况下,q可基本上与j相同,并且一个段可包括两个或多个逻辑地址。
在另一实施例中,包括在一个区段中的段SG1至SGq中的每一个可对应于页面PG1至PGj中的每一个中包括的一个映射单元。在这种情况下,q可大于j,并且一个段可对应于一个逻辑地址。在下文中,为便于描述,假设一个段对应于一个逻辑地址。
文件系统110可针对待存储在存储器装置210中的写入数据顺序地分配逻辑地址。例如,参照图5,文件系统110可从与第一区段Section1中的第一段SG1相对应的第一逻辑地址LBA1开始顺序地分配逻辑地址。在这种情况下,当与先前分配的逻辑地址相对应的数据(在下文中,称为“旧数据”)被改变或被更新时,文件系统110可使与旧数据相对应的逻辑地址无效,并且将未分配的逻辑地址中的第一个分配为经改变或经更新数据(在下文中,称为“新数据”)的逻辑地址。
因此,不会中断与存储器装置的连续物理地址相对应的逻辑地址的连续性,从而可提高包括存储器装置的数据存储装置的性能,例如读取性能。
图6A和图6B示出根据实施例的用于保持逻辑地址的连续性的写入操作,并且图6C示出使逻辑地址结构中的与旧数据相对应的逻辑地址无效的示例。将参照图1描述图6A至图6C。
参照图6A,主机100可将写入命令CMDW、写入逻辑地址LBA1至LBA3以及写入数据DATA1至DATA3传送到数据存储装置200。响应于从主机100接收的写入命令CMDW,数据存储装置200可将写入数据DATA1至DATA3顺序地存储在作为开放存储块的第一存储块BLK1的空页面中。例如,数据存储装置200可将写入数据DATA1至DATA3顺序地存储在第一存储块BLK1的第一页面PG1至第三页面PG3中。
为便于描述,图6A示出从位于第一存储块BLK1的顶部的第一页面PG1开始顺序地存储写入数据DATA1至DATA3。然而,数据存储顺序不特别限于此。在另一示例中,可从位于第一存储块BLK1的底部的页面开始顺序地存储写入数据DATA1至DATA3。
参照图6B,在将写入数据DATA1至DATA3存储在第一存储块BLK1中之后,主机100可将另一写入命令CMDW、写入逻辑地址LBA4和写入数据DATA2'传送到数据存储装置200。写入数据DATA2'可以是改变或更新第一存储块BLK1中存储的写入数据DATA2的数据。也就是说,写入数据DATA2可以是旧数据,并且写入数据DATA2'可以是新数据。数据存储装置200可响应于从主机100接收的另一写入命令CMDW,将写入数据DATA2'存储在第四页面PG4中,该第四页面PG4是第三页面PG3之后的第一空页面,该第三页面PG3是存储数据的页面PG1至PG3之中的最后页面。
如上所述,在存储写入数据DATA2'(新数据)的写入操作期间,主机100的文件系统110不重新分配被分配给写入数据DATA2(旧数据)的逻辑地址LBA2,而是分配作为未分配逻辑地址中的第一个的第四逻辑地址LBA4。因此,能够保持映射到第一存储块BLK1中的连续的第一至第四页面PG1至PG4的逻辑地址的连续性。
此外,如图6C所示,文件系统110可使逻辑地址结构中的第一区段Section 1中的、被分配给写入数据DATA2(旧数据)的逻辑地址LBA2无效。如上所述,文件系统110使逻辑地址结构中的、与旧数据相关联的逻辑地址无效,使得逻辑地址结构可包括无效逻辑地址和有效逻辑地址的混合。
为了使无效逻辑地址处于可分配状态,例如处于“空闲状态”,文件系统110可对包括无效逻辑地址和有效逻辑地址的逻辑地址结构执行地址垃圾收集(AGC)操作。例如,文件系统110可执行地址垃圾收集(AGC)操作,以选择逻辑地址结构中的牺牲区段,将所选择的牺牲区段中包括的有效逻辑地址移动到包括未分配(或空闲)逻辑地址的另一区段,然后使牺牲区段中包括的所有逻辑地址处于空闲状态。在本实施例中,“空闲状态”可指代未分配状态和可分配状态两者。类似地,“空闲逻辑地址”可指代未分配逻辑地址和可分配逻辑地址两者。
如上所述,文件系统110可执行地址垃圾收集(AGC)操作。然而,实施例不限于此。为便于描述,下文中将描述两种地址垃圾收集(AGC)方案。该两种地址垃圾收集(AGC)方案可包括后台地址垃圾收集(BAGC)操作和前台地址垃圾收集(FAGC)操作。
图7示出BAGC操作。为便于描述,假设逻辑地址结构中包括的每个区段包括10个逻辑地址。此外,虽然图7示出两个逻辑地址LBA3和LBA8是无效逻辑地址,但这是为便于描述。在待执行BAGC操作的区段中,无效逻辑地址的数量可大于有效逻辑地址的数量。将参照图1和图2描述图7所示的BAGC操作。
参照图7,在第一区段Section 1中,逻辑地址LBA3和LBA8是无效逻辑地址,并且逻辑地址LBA1和LBA2、LBA4至LBA7以及LBA9和LBA10是有效逻辑地址。文件系统110可选择第一区段Section 1作为牺牲区段,并且对第一区段Section 1执行BAGC操作。文件系统110可将除无效逻辑地址LBA3和LBA8之外的八个有效逻辑地址移动到包括空闲逻辑地址的第二区段Section 2,并且使第一区段Section 1中包括的所有逻辑地址LBA1至LBA10处于空闲状态。
然后,文件系统110可向数据存储装置200传送针对第一区段Section 1中的逻辑地址LBA1至LBA10的取消映射命令Unmap CMD。虽然未在图7中示出,但数据存储装置200可响应于所接收的取消映射命令Unmap CMD,对逻辑地址LBA1至LBA10执行取消映射操作(或取消(unmapping)映射操作)。
如上所述,BAGC操作需要很长的操作时间来将牺牲区段中的有效逻辑地址移动到空区段,并且使牺牲区段中的逻辑地址处于空闲状态。因此,可在后台适当地执行BAGC操作,以基本上防止电子装置10的性能劣化。因此,这种类型的地址垃圾收集(AGC)操作被称为BAGC操作。
同时,当逻辑地址结构中不存在空闲逻辑地址或者没有足够的时间来执行BAGC操作时,文件系统110可顺序地重新分配无效逻辑地址。在本实施例中,这种方案被称为FAGC操作。
如上所述,在本实施例中,文件系统110顺序地分配逻辑地址。例如,在分配了图5所示的逻辑地址结构中的最后逻辑地址LBAz之后,可从第一逻辑地址LBA1开始顺序地重新分配逻辑地址结构中的逻辑地址。在这种情况下,当重新分配无效逻辑地址时,可能中断映射到存储块的连续物理地址的逻辑地址的连续性,从而读取性能可能劣化。
在本实施例中,主机100可向数据存储装置200传送写入命令,其中写入命令包括用于区分已分配空闲逻辑地址的写入操作(在下文中,称为“普通写入操作”)和已分配无效逻辑地址的写入操作(在下文中,称为“罕见写入操作”)的信息。写入命令的特定位可用于提供该信息以区分普通写入操作和罕见写入操作。因此,写入命令的特定位的值可与该信息相对应。然而,实施例不限于此。
在实施例中,主机100将写入命令的特定位设置为重置状态(例如,第一值)或设置状态(例如,第二值),以便分别指示写入操作是普通写入操作还是罕见写入操作。第一值可以是“0”,并且第二值可以是“1”。然而,实施例不限于此。
例如,主机100可向数据存储装置200传送普通写入命令,普通写入命令中的特定位已经被设置为指示普通写入操作的“重置状态”,并且可向数据存储装置200传送罕见写入命令,罕见写入命令中的特定位已经被设置为指示罕见写入操作的“设置状态”。
数据存储装置200的控制器220可在存储器装置210中包括的多个存储块之中,响应于普通写入命令而分配用于存储写入数据的普通开放存储块OBLK_N(在下文中,称为“普通开放块”),并且响应于罕见写入命令而分配用于存储写入数据的罕见开放存储块OBLK_R(在下文中,称为“罕见开放块”)。
此外,控制器220可单独地管理与普通开放块OBLK_N相对应的物理地址到逻辑地址(P2L)表和与罕见开放块OBLK_R相对应的P2L表。与普通开放块OBLK_N相对应的P2L表可被称为“普通P2L表”,并且与罕见开放块OBLK_R相对应的P2L表可被称为“罕见P2L表”
图8A和图8B示出FAGC操作。为便于描述,假设逻辑地址结构中包括的每个区段包括10个逻辑地址,第一区段Section 1中的逻辑地址LBA3和LBA8以及第二区段Section 2中的逻辑地址LBA13是无效逻辑地址,除逻辑地址LBA3、LBA8和LBA13之外的逻辑地址是有效逻辑地址,并且逻辑地址结构中不存在空闲逻辑地址。此外,为便于描述,假设一个存储块存储与10个逻辑地址相对应的数据。将参照图1和图2描述图8A和图8B中所示的FAGC操作。
参照图8A,因为不存在可在写入操作中分配的空闲逻辑地址,所以主机100可执行FAGC操作来重新分配无效逻辑地址。例如,主机100可重新分配第一区段Section 1的无效逻辑地址LBA3和LBA8来写入数据,并且向数据存储装置200传送第一罕见写入命令CMDW_R1和第二罕见写入命令CMDW_R2。第一罕见写入命令CMDW_R1和第二罕见写入命令CMDW_R2分别指示重新分配无效逻辑地址LBA3和LBA8。通过重新分配,重新分配的逻辑地址LBA3和LBA8被用作有效逻辑地址。
数据存储装置200的控制器220可响应于从主机100接收的第一和第二罕见写入命令CMDW_R1和CMDW_R2,控制存储器装置210将与重新分配的逻辑地址LBA3和LBA8相对应的写入数据存储在罕见开放块OBLK_R中。此外,控制器220可通过将重新分配的逻辑地址LBA3和LBA8映射到与罕见开放块OBLK_R相对应的罕见P2L表P2L_R中的相应位置来存储重新分配的逻辑地址LBA3和LBA8。如图8A所示,与罕见开放块OBLK_R相对应的罕见P2L表P2L_R和与普通开放块OBLK_N相对应的普通P2L表P2L_N可被包括在RAM 250中。
参照图8B,主机100可重新分配第二区段Section 2中的无效逻辑地址LBA13来写入数据,并且向数据存储装置200传送第三罕见写入命令CMDW_R3。第三罕见写入命令CMDW_R3指示重新分配无效逻辑地址LBA13。通过重新分配,重新分配的LBA13被用作有效逻辑地址。
控制器220可响应于从主机100接收的第三罕见写入命令CMDW_R3,控制存储器装置210将与重新分配的逻辑地址LBA13相对应的写入数据存储在罕见开放块OBLK_R中。此外,控制器220可通过将重新分配的逻辑地址LBA13映射到与罕见开放块OBLK_R相对应的罕见P2L表P2L_R中的相应位置来存储重新分配的逻辑地址LBA13。
如图8B所示,在逻辑地址结构中,无效逻辑地址LBA13被包括在与包括无效逻辑地址LBA3和LBA8的区段不同的区段中。例如,无效逻辑地址LBA3和LBA8包括在第一区段Section 1中,并且无效逻辑地址LBA13包括在第二区段Section 2中。也就是说,无效逻辑地址LBA3和LBA8可以是被映射到图8B所示的封闭存储块CBLK的逻辑地址,并且无效逻辑地址LBA13可以是被映射到图8B中未示出的另一封闭存储块CBLK的逻辑地址。
如上所述,当对映射到不同存储块的无效逻辑地址执行写入操作时,可触发基于罕见P2L表P2L_R的映射更新(在下文中,称为“罕见映射更新”)。当触发了罕见映射更新时,控制器220可将与重新分配的逻辑地址LBA3和LBA8相对应并且存储在罕见开放块OBLK_R中的写入数据和与逻辑地址LBA1至LBA10相对应并且存储在封闭存储块CBLK中的数据进行合并,将合并数据存储在空闲存储块FBLK中,然后执行映射更新,以将分别被映射到逻辑地址LBA1至LBA10的物理地址从封闭存储块CBLK的物理地址改变为存储合并数据的空闲存储块FBLK的物理地址。
图8C示出根据实施例的罕见映射更新。在罕见映射更新中,将与重新分配的逻辑地址相对应并且被存储在罕见开放块OBLK_R中的第一数据和被存储在与重新分配的逻辑地址相关联的封闭存储块CBLK中的第二数据进行合并并且存储在空闲存储块FBLK中。
参照图8C,控制器220可将在封闭存储块CBLK中的、映射到逻辑地址LBA1和LBA2、LBA4至LBA7以及LBA9和LBA10的物理位置(或物理地址)中存储的第二数据移动到空闲存储块FBLK中的相应物理位置,并且将在罕见开放块OBLK_R中的、映射到重新分配的逻辑地址LBA3和LBA8的物理位置(或物理地址)中存储的第一数据移动到空闲块FBLK中的相应物理位置。
也就是说,根据LBA1至LBA10的顺序,将与逻辑地址LBA1和LBA2、LBA4至LBA7、LBA9和LBA10以及重新分配的逻辑地址LBA3和LBA8相对应的、封闭存储块CBLK中存储的第二数据和罕见开放块OBLK_R中存储的第一数据顺序地存储在空闲存储块FBLK中。因此,可保持映射到空闲存储块FBLK的连续页面的逻辑地址的连续性。
在实施例中,控制器220可从封闭存储块CBLK读取与逻辑地址LBA1和LBA2、LBA4至LBA7以及LBA9和LBA10相对应的第二数据,通过对读取数据执行错误校正码(ECC)解码来检测和校正读取数据中包括的错误,并且将经错误校正的数据存储在空闲存储块FBLK中。类似地,控制器220可从罕见开放块OBLK_R读取与重新分配的逻辑地址LBA3和LBA8相对应的第一数据,通过对读取数据执行错误校正码(ECC)解码来检测和校正读取数据中包括的错误,并且将经错误校正的数据存储在空闲存储块FBLK中。
当完成将与逻辑地址LBA1至LBA10相对应的第一和第二数据存储在空闲存储块FBLK中时,空闲存储块FBLK成为针对逻辑地址LBA1至LBA10的新封闭存储块。因此,可执行映射更新,以将逻辑地址LBA1至LBA10映射到现在为封闭存储块的空闲存储块FBLK的物理地址。
此外,每当生成新封闭存储块时,控制器220可通过将与最终存储在新封闭存储块中的数据相对应的逻辑地址与指示新封闭存储块的信息(例如,索引)相匹配来存储该逻辑地址。与最终存储的数据相对应的逻辑地址可被称为“最后分配逻辑地址”。可将每个封闭存储块的最后分配逻辑地址存储在RAM 250中。然而,实施例不限于此。
每当从主机100接收到当前罕见写入命令时,控制器220可通过参考RAM 250中存储的每个封闭存储块的最后分配逻辑地址,来确定与当前罕见写入命令相对应的无效逻辑地址所映射到的封闭存储块是否不同于与先前罕见写入命令相对应的无效逻辑地址所映射到的封闭存储块,其中当前罕见写入命令在先前罕见写入命令之后。
每当与当前罕见写入命令和先前罕见写入命令相对应的重新分配的逻辑地址所映射到的封闭存储块彼此不同时,可执行上述罕见映射更新,并且可与普通开放块OBLK_N的普通映射更新分开执行。当普通开放块OBLK_N的普通P2L表P2L_N已满或者普通开放块OBLK_N中存储的数据大小超过阈值时,可执行普通映射更新。然而,实施例不限于此。
在本实施例中,与罕见开放块OBLK_R相对应的罕见P2L表P2L_R的访问优先级可高于与普通开放块OBLK_N相对应的普通P2L表P2L_N的访问优先级。例如,当从主机100接收到读取命令和读取逻辑地址时,控制器220可在罕见P2L表P2L_R中搜索读取逻辑地址,然后当罕见P2L表P2L_R中不存在该读取逻辑地址时,在普通P2L表P2L_N中搜索该读取逻辑地址。
因此,当发生突然断电(SPO)时,控制器220可恢复罕见P2L表P2L_R,然后恢复普通P2L表P2L_N。因为普通开放块OBLK_N存储连续逻辑地址的数据,所以可在检查映射到普通开放块OBLK_N中的起始位置的起始逻辑地址和普通开放块OBLK_N中的最后存储位置之后,通过使用增量记忆集(incremental memset)方案来在短时间内恢复普通P2L表P2L_N。
此外,当从主机100接收到取消映射命令时,控制器220可确定与所接收的取消映射命令相对应的逻辑地址是否存在于罕见P2L表P2L_R中。当与取消映射命令相对应的逻辑地址存在于罕见P2L表P2L_R中时,控制器220可将关于该逻辑地址的修整(trim)信息反映在罕见P2L表P2L_R中。
图9是示出根据实施例的操作数据存储装置的方法的流程图。将参照图2至图5、图6A至图6C、图7以及图8A至图8C中的至少一个来描述图9所示的方法。
在步骤S901中,数据存储装置200可从主机100接收写入命令。在这种情况下,可与写入命令一起接收写入逻辑地址和写入数据。
在步骤S903中,数据存储装置200的控制器220可确定从主机100接收的写入命令的特定位是否处于“设置”状态。例如,当写入命令的特定位处于“设置”状态时,写入命令可以是指示已重新分配无效逻辑地址的罕见写入命令。此外,当写入命令的特定位处于“重置”状态时,写入命令可以是指示已分配空闲逻辑地址的普通写入命令。作为确定的结果,当从主机100接收的写入命令的特定位处于“设置”状态时,进程可进行到步骤S905。另一方面,当从主机100接收的写入命令的特定位处于“重置”状态时,进程可进行到步骤S913。
在步骤S905中,控制器220可控制存储器装置210以将写入数据存储在存储器装置210的第一开放块(例如,罕见开放块)中。虽然未在图9中示出,但控制器220可将在步骤S901中接收的写入逻辑地址存储在RAM 250中包括的、与第一开放块相对应的罕见P2L表P2L_R中。例如,控制器220可将写入逻辑地址存储在罕见P2L表P2L_R中,以被映射到罕见P2L表P2L_R中的、与存储写入数据的第一开放块的位置相对应的索引(或物理地址)。
在步骤S907中,控制器220可确定是否触发了罕见映射更新。特别地,当将在步骤S901中接收的写入命令和写入逻辑地址分别称为“当前写入命令”和“当前写入逻辑地址”时,控制器220可确定当前写入逻辑地址所映射到的封闭存储块是否不同于先前写入逻辑地址所映射到的封闭存储块,先前写入逻辑地址刚好在当前写入逻辑地址之前提供。
作为确定的结果,在当前写入逻辑地址所映射到的封闭存储块不同于先前写入逻辑地址所映射到的封闭存储块时,罕见映射更新被触发,并且进程可进行到步骤S909。另一方面,在当前写入逻辑地址所映射到的封闭存储块与先前写入逻辑地址所映射到的封闭存储块相同时,进程可返回到步骤S901。
在步骤S909中,控制器220可执行上面参照图8C描述的罕见映射更新。也就是说,控制器220可将第一开放块中存储的数据之中的、与一个或多个第一写入逻辑地址相对应的第一数据和与第一写入逻辑地址相关联的封闭存储块中存储的第二数据合并,并且将合并数据存储在空闲存储块中。第一写入逻辑地址可以是在当前写入逻辑地址之前接收的并且被映射到先前写入逻辑地址所映射到的封闭存储块的写入逻辑地址。
具体地,如图8C所示,控制器220可将存储在第一开放块的、被映射到第一写入逻辑地址的物理位置(或物理地址)中的第一数据以及存储在封闭存储块的、被映射到与该封闭存储块相关联的逻辑地址组中的除第一写入逻辑地址之外的其余写入逻辑地址的物理位置(或物理地址)中的第二数据移动到空闲存储块的相应物理位置。
在步骤S911中,控制器220可执行第一映射更新,以将被映射到与空闲存储块中存储的第一和第二数据相对应的写入逻辑地址的物理地址从封闭存储块的物理地址改变为空闲存储块的物理地址。然后,进程可进行到步骤S901。
在步骤S913中,因为写入命令的特定位处于“重置”状态,所以控制器220可确定写入命令指示普通写入操作,并且将写入数据存储在存储器装置210的第二开放块(例如,普通开放块)中。
在步骤S915中,控制器220可确定是否触发了针对第二开放块的第二映射更新(例如,普通映射更新)。例如可使用与第二开放块相对应的普通P2L表P2L_N是否已满或者第二开放块中存储的写入数据的大小是否超过阈值,来作为触发第二映射更新的条件。然而,实施例不特别限于此。当第二映射更新被触发时,进程可进行到步骤S917。另一方面,当第二映射更新未被触发时,进程可返回到步骤S901。
在步骤S917中,控制器220可基于与第二开放块相对应的普通P2L表P2L_N来执行第二映射更新。例如,控制器220可通过将针对与第二开放块中存储的数据相对应的逻辑地址的物理地址改变为第二开放块的物理地址,并且将物理地址已被改变的逻辑地址存储在存储器装置210中来执行第二映射更新。
在步骤S919中,控制器220可确定是否已完成第二映射更新。作为确定的结果,当已完成第二映射更新时,进程可返回到步骤S901。另一方面,当尚未完成第二映射更新时,进程可返回到步骤S917。
图10示出根据实施例的数据处理系统2000。参照图10,数据处理系统2000可包括主机2100和固态驱动器(SSD)2200。
SSD 2200可包括控制器2210、缓冲存储器装置2220、非易失性存储器装置2231至223n、电源2240、信号连接器2250和电源连接器2260。
控制器2210可控制SSD 2220的全部操作。
缓冲存储器装置2220可临时存储待被存储在非易失性存储器装置2231至223n中的数据。缓冲存储器装置2220可临时存储从非易失性存储器装置2231至223n读取的数据。根据控制器2210的控制,被临时存储在缓冲存储器装置2220中的数据可被传送到主机设备2100或非易失性存储器装置2231至223n。
非易失性存储器装置2231至223n可用作SSD 2200的存储介质。非易失性存储器装置2231至223n可通过多个通道CH1至CHn联接到控制器2210。一个或多个非易失性存储器装置可联接到一个通道。联接到一个通道的非易失性存储器装置可联接到相同的信号总线和相同的数据总线。
电源2240可将通过电源连接器2260输入的电力PWR提供至SSD 2200的其它组件。电源2240可包括辅助电源2241。辅助电源2241可提供电力,使得即使发生突然断电(SPO),SSD 2200也正常地终止。辅助电源2241可包括能够充电电力PWR的大容量电容器。
控制器2210可通过信号连接器2250与主机2100交换信号SGL。信号SGL可包括命令、地址、数据等。根据主机2100和SSD 2200之间的接口连接方法,信号连接器2250可由各种类型的连接器配置。
图11示出图10的控制器2210。参照图11,控制器2210可包括主机接口单元2211、控制单元2212、随机存取存储器(RAM)2213、错误校正码(ECC)单元2214和存储器接口单元2215。
主机接口单元2211可根据主机2100的协议来执行主机2100和SSD 2200之间的接口连接。例如,主机接口单元2211可使用以下中的任意一种来与主机2100通信:安全数字协议、通用串行总线(USB)协议、多媒体卡(MMC)协议、嵌入式MMC(eMMC)协议、个人计算机存储卡国际协会(PCMCIA)协议、并行高级技术附件(PATA)协议、串行高级技术附件(SATA)协议、小型计算机系统接口(SCSI)协议、串列SCSI(SAS)协议、外围组件互连(PCI)协议、高速PCI(PCI-E)协议和通用闪存(UFS)协议。主机接口单元2211可执行磁盘模拟功能,即主机2100将SSD 2200识别为例如硬盘驱动器HDD的通用数据存储装置。
控制单元2212可分析和处理从主机2100输入的信号SGL。控制单元2212可根据用于驱动SDD 2200的固件和/或软件来控制控制器2210的内部功能块的操作。RAM 2213可用作用于驱动固件和/或软件的工作存储器。
ECC单元2214可生成用于待被传送到非易失性存储器装置2231至223n的写入数据的奇偶校验数据。所生成的奇偶校验数据可与该写入数据一起存储在非易失性存储器装置2231至223n中。ECC单元2214可检测从非易失性存储器装置2231至223n读取的数据的错误。当检测到的错误在可校正范围内时,ECC单元2214可使用奇偶校验数据来校正检测到的错误。
存储器接口单元2215可根据控制单元2212的控制将诸如命令和地址的控制信号提供到非易失性存储器装置2231至223n。存储器接口单元2215可根据控制单元2212的控制与非易失性存储器装置2231至223n交换数据。例如,存储器接口单元2215可将缓冲存储器装置2220中存储的写入数据提供到非易失性存储器装置2231至223n,或者将从非易失性存储器装置2231至223n读取的数据提供到缓冲存储器装置2220。
图12示出根据实施例的数据处理系统3000。参照图12,数据处理系统3000可包括主机3100和数据存储装置3200。
主机3100可以诸如印刷电路板(PCB)的板形式来配置。虽然未在图12中示出,但主机3100可包括被配置成执行主机3100的功能的内部功能块。
主机3100可包括诸如插座、插槽或连接器的连接端子3110。数据存储装置3200可安装在连接端子3110上。
数据存储装置3200可以诸如PCB的板形式来配置。数据存储装置3200可指存储器模块或存储卡。数据存储装置3200可包括控制器3210、缓冲存储器装置3220、非易失性存储器装置3231和3232、电源管理集成电路(PMIC)3240和连接端子3250。
控制器3210可控制数据存储装置3200的全部操作。控制器3210可被配置成具有与图11所示的控制器2210相同的配置。
缓冲存储器装置3220可临时存储待被存储在非易失性存储器装置3231和3232中的数据。缓冲存储器装置3220可临时存储从非易失性存储器装置3231和3232读取的数据。根据控制器3210的控制,被临时存储在缓冲存储器装置3220中的数据可被传送到主机3100或非易失性存储器装置3231和3232。
非易失性存储器装置3231和3232可用作数据存储装置3200的存储介质。
PMIC 3240可将通过连接端子3250输入的电力提供到数据存储装置3200的其它组件。PMIC 3240可根据控制器3210的控制来管理数据存储装置3200的电力。
连接端子3250可联接到主机3100的连接端子3110。可通过连接端子3250,在主机3100和数据存储装置3200之间传送诸如命令、地址和数据的信号和电力。根据主机3100与数据存储装置3200之间的接口连接方法,连接端子3250可以各种形式中的任意一种来配置。连接端子3250可被布置在数据存储装置3200的任意一侧。
图13示出根据实施例的数据处理系统4000。参照图13,数据处理系统4000可包括主机4100和数据存储装置4200。
主机4100可以诸如PCB的板形式来配置。虽然未在图13中示出,但主机4100可包括被配置成执行主机4100的功能的内部功能块。
数据存储装置4200可以表面安装封装形式来配置。数据存储装置4200可通过焊球4250安装在主机4100上。数据存储装置4200可包括控制器4210、缓冲存储器装置4220和非易失性存储器装置4230。
控制器4210可控制数据存储装置4200的全部操作。控制器4210可被配置成具有与图11所示的控制器2210相同的配置。
缓冲存储器装置4220可临时存储待被存储在非易失性存储器装置4230中的数据。缓冲存储器装置4220可临时存储从非易失性存储器装置4230读取的数据。在控制器4210的控制下,被临时存储在缓冲存储器装置4220中的数据可被传送到主机4100或非易失性存储器装置4230。
非易失性存储器装置4230可用作数据存储装置4200的存储介质。
图14示出根据实施例的包括数据存储装置的网络系统5000。参照图14,网络系统5000可包括通过网络5500彼此联接的服务器系统5300和多个客户端系统5410至5430。
服务器系统5300可响应于多个客户端系统5410至5430的请求来服务数据。例如,服务器系统5300可存储从多个客户端系统5410至5430提供的数据。在另一示例中,服务器系统5300可将数据提供至多个客户端系统5410至5430。
服务器系统5300可包括主机5100和数据存储装置5200。数据存储装置5200可由图1的数据存储装置200、图10的SSD 2200、图12的数据存储装置3200或图13的数据存储装置4200配置。
图15示出根据实施例的在数据存储装置中包括的非易失性存储器装置100。参照图15,非易失性存储器装置100可包括存储器单元阵列110、行解码器120、列解码器140、数据读取/写入块130、电压生成器150和控制逻辑160。
存储器单元阵列110可包括布置在字线WL1至WLm和位线BL1至BLn的交叉处的存储器单元MC。
行解码器120可通过字线WL1至WLm联接到存储器单元阵列110。行解码器120可在控制逻辑160的控制下操作。行解码器120可对由外部设备(未示出)提供的地址进行解码。行解码器120可基于解码结果来选择并驱动字线WL1至WLm中的至少一个。例如,行解码器120可将由电压生成器150提供的字线电压提供至字线WL1至WLm。
数据读取/写入块130可通过位线BL1至BLn联接到存储器单元阵列110。数据读取/写入块130可包括分别对应于位线BL1至BLn的读取/写入电路RW1至RWn。数据读取/写入块130可在控制逻辑160的控制下进行操作。数据读取/写入块130可根据操作模式操作而作为写入驱动器或读出放大器操作。例如,数据读取/写入块130可作为写入驱动器操作,其被配置成在写入操作中将由外部设备提供的数据存储在存储器单元阵列110中。在另一示例中,数据读取/写入块130可作为读出放大器操作,其被配置成在读取操作中从存储器单元阵列110读取数据。
列解码器140可在控制逻辑160的控制下操作。列解码器140可对由外部设备(未示出)提供的地址进行解码。列解码器140可基于解码结果,将数据读取/写入块130的、分别与位线BL1至BLn相对应的读取/写入电路RW1至RWn与数据输入/输出(I/O)线(或数据I/O缓冲器)联接。
电压生成器150可生成用于非易失性存储器装置100的内部操作的电压。通过电压生成器150生成的电压可被施加到存储器单元阵列110的存储器单元。例如,可将在编程操作中生成的编程电压施加到与待被执行编程操作的存储器单元联接的字线。在另一示例中,可将在擦除操作中生成的擦除电压施加到待被执行擦除操作的存储器单元的阱区。在另一示例中,可将在读取操作中生成的读取电压施加到与待被执行读取操作的存储器单元联接的字线。
控制逻辑160可基于由外部设备提供的控制信号来控制非易失性存储器装置100的全部操作。例如,控制逻辑160可控制非易失性存储器装置100的操作,诸如读取操作、写入操作和擦除操作。
虽然上面已经描述了各个实施例,但是本领域技术人员将理解,所描述的实施例仅为示例。因此,不应基于所描述的实施例而限制本文中描述的数据存储装置及其操作方法。
Claims (19)
1.一种数据存储装置,包括:
存储器装置,包括罕见开放块和普通开放块,所述罕见开放块存储与重新分配的无效逻辑地址相对应的数据,所述普通开放块存储与新分配的空闲逻辑地址相对应的数据;以及
控制器,基于从主机接收的写入命令中包括的信息来确定将写入数据存储在所述罕见开放块还是所述普通开放块中,并且根据确定的结果来控制所述存储器装置将所述写入数据存储在所述罕见开放块或所述普通开放块中。
2.根据权利要求1所述的数据存储装置,其中所述写入命令中包括的所述信息指示与所述写入命令一起从所述主机接收的写入逻辑地址是所述重新分配的无效逻辑地址还是所述新分配的空闲逻辑地址。
3.根据权利要求2所述的数据存储装置,其中所述信息与处于设置状态或重置状态的所述写入命令的特定位的值相对应。
4.根据权利要求3所述的数据存储装置,其中当所述写入命令的所述特定位处于所述设置状态时,所述控制器确定所述写入逻辑地址是所述重新分配的无效逻辑地址。
5.根据权利要求4所述的数据存储装置,其中所述控制器确定与先前存储在所述罕见开放块中的最后数据的逻辑地址相对应的第一封闭块是否不同于与当前存储在所述罕见开放块中的所述写入数据的所述写入逻辑地址相对应的第二封闭块。
6.根据权利要求5所述的数据存储装置,其中当所述第一封闭块不同于所述第二封闭块时,所述控制器将所述罕见开放块中存储的数据之中的、与和所述第一封闭块相关联的一个或多个第一逻辑地址相对应的第一数据以及所述第一封闭块中存储的数据之中的、与和所述第一封闭块相关联的所有逻辑地址中的除所述第一逻辑地址之外的其余逻辑地址相对应的第二数据进行合并,并且控制所述存储器装置将合并数据存储在所述存储器装置的空闲存储块中。
7.根据权利要求6所述的数据存储装置,其中所述控制器将所述罕见开放块中的所述第一数据和所述第一封闭块中的所述第二数据进行合并,使得所述第一逻辑地址和所述其余逻辑地址连续排列。
8.根据权利要求7所述的数据存储装置,其中所述控制器执行映射更新操作,所述映射更新操作将连续排列的所述第一逻辑地址和所述其余逻辑地址映射到所述空闲存储块的物理地址。
9.根据权利要求3所述的数据存储装置,其中当所述写入命令的所述特定位处于所述重置状态时,所述控制器确定所述写入逻辑地址是所述新分配的空闲逻辑地址。
10.一种电子装置,包括:
主机,向数据存储装置传送写入命令、写入逻辑地址和写入数据,所述写入命令包括指示所述写入逻辑地址是重新分配的无效逻辑地址还是新分配的空闲逻辑地址的信息;以及
所述数据存储装置,根据从所述主机接收的所述写入命令中包括的所述信息,在存储器装置的多个存储块之中,当所述写入逻辑地址是所述重新分配的无效逻辑地址时,分配第一开放块来存储所述写入数据,并且当所述写入逻辑地址是所述新分配的空闲逻辑地址时,分配第二开放块来存储所述写入数据。
11.根据权利要求10所述的电子装置,其中所述信息与处于设置状态或重置状态的所述写入命令的特定位的值相对应,并且
当将所述重新分配的无效逻辑地址用作所述写入逻辑地址时,所述主机将所述写入命令的特定位设置为所述设置状态,并且将所述写入命令传送到所述数据存储装置。
12.根据权利要求11所述的电子装置,其中所述数据存储装置确定与先前存储在所述第一开放块中的最后数据的逻辑地址相对应的第一封闭块是否不同于与所述重新分配的无效逻辑地址相对应的第二封闭块,并且
当所述第一封闭块不同于所述第二封闭块时,所述数据存储装置将所述第一开放块中存储的数据之中的、与和所述第一封闭块相关联的一个或多个第一逻辑地址相对应的第一数据以及所述第一封闭块中存储的数据之中的、与和所述第一封闭块相关联的所有逻辑地址中的除所述一个或多个第一逻辑地址之外的其余逻辑地址相对应的第二数据进行合并,并且将合并数据存储在所述存储器装置的多个存储块之中的空闲存储块中。
13.根据权利要求12所述的电子装置,其中所述数据存储装置将所述第一开放块的所述第一数据和所述第一封闭块的所述第二数据进行合并,使得所述第一逻辑地址和所述其余逻辑地址连续排列,并且
所述数据存储装置执行映射更新操作,所述映射更新操作将连续排列的所述第一逻辑地址和所述其余逻辑地址映射到所述空闲存储块的物理地址。
14.根据权利要求10所述的电子装置,其中所述主机管理包括多个区段的逻辑地址结构,所述多个区段中的每个包括多个逻辑地址,从所述多个区段中选择包括一个或多个无效逻辑地址的第一区段,从所述多个区段中选择包括未分配的空闲逻辑地址的第二区段,将所述第一区段中包括的有效逻辑地址移动到所述第二区段中,并且将针对所述第一区段中包括的有效逻辑地址和无效逻辑地址的取消映射命令传送到所述数据存储装置。
15.一种操作数据存储装置的方法,所述方法包括:
在存储器装置中包括的多个存储块之中,分配存储与重新分配的无效逻辑地址相对应的数据的第一开放块和存储与新分配的空闲逻辑地址相对应的数据的第二开放块;
基于从主机接收的写入命令中包括的信息,确定将写入数据存储在所述第一开放块还是所述第二开放块中;并且
根据确定的结果来控制所述存储器装置将所述写入数据存储在所述第一开放块或所述第二开放块中。
16.根据权利要求15所述的方法,其中所述信息与处于设置状态或重置状态的所述写入命令的特定位的值相对应,并且
其中确定将所述写入数据存储在所述第一开放块还是所述第二开放块包括:
确定所述特定位是处于所述设置状态还是所述重置状态;并且
当所述特定位处于所述设置状态时,确定所述写入数据将被存储在所述第一开放块中,并且当所述特定位处于所述重置状态时,确定所述写入数据将被存储在所述第二开放块中。
17.根据权利要求16所述的方法,进一步包括:
当所述特定位处于所述设置状态时,确定与先前存储在所述第一开放块中的最后数据的逻辑地址相对应的第一封闭块是否不同于与所述写入命令一起从所述主机接收的写入逻辑地址相对应的第二封闭块;并且
当所述第一封闭块不同于所述第二封闭块时,将所述第一开放块中存储的数据之中的、与和所述第一封闭块相关联的一个或多个第一逻辑地址相对应的第一数据以及所述第一封闭块中存储的数据之中的、与和所述第一封闭块相关联的所有逻辑地址中的除所述一个或多个第一逻辑地址之外的其余逻辑地址相对应的第二数据进行合并,并且将合并数据存储在所述存储器装置的空闲存储块中。
18.根据权利要求17所述的方法,其中合并所述第一数据和所述第二数据包括:
将所述第一开放块中的所述第一数据和所述第一封闭块中的所述第二数据进行合并,使得所述一个或多个第一逻辑地址和所述其余逻辑地址连续排列。
19.根据权利要求18所述的方法,进一步包括,在合并所述第一数据和所述第二数据并且将所述合并数据存储在所述存储器装置的所述空闲存储块中之后:
执行映射更新操作,所述映射更新操作将连续排列的所述第一逻辑地址和所述其余逻辑地址映射到所述空闲存储块的物理地址。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0049185 | 2019-04-26 | ||
KR1020190049185A KR20200125216A (ko) | 2019-04-26 | 2019-04-26 | 데이터 저장 장치, 이를 포함하는 전자 장치 및 데이터 저장 장치의 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111857563A true CN111857563A (zh) | 2020-10-30 |
Family
ID=72916829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911061648.9A Withdrawn CN111857563A (zh) | 2019-04-26 | 2019-11-01 | 数据存储装置、包括其的电子装置及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11294587B2 (zh) |
KR (1) | KR20200125216A (zh) |
CN (1) | CN111857563A (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101718713B1 (ko) | 2015-05-29 | 2017-03-22 | 주식회사 이에프텍 | 비휘발성 메모리 시스템 |
KR102570367B1 (ko) | 2016-04-21 | 2023-08-28 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치를 액세스하는 액세스 방법 |
JP2019148913A (ja) * | 2018-02-26 | 2019-09-05 | 東芝メモリ株式会社 | メモリシステム |
JP7155028B2 (ja) * | 2019-01-29 | 2022-10-18 | キオクシア株式会社 | メモリシステムおよび制御方法 |
-
2019
- 2019-04-26 KR KR1020190049185A patent/KR20200125216A/ko unknown
- 2019-10-21 US US16/659,292 patent/US11294587B2/en active Active
- 2019-11-01 CN CN201911061648.9A patent/CN111857563A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
KR20200125216A (ko) | 2020-11-04 |
US11294587B2 (en) | 2022-04-05 |
US20200341636A1 (en) | 2020-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110858129B (zh) | 数据存储装置及其操作方法 | |
CN111506516B (zh) | 数据存储装置及数据存储装置的操作方法 | |
CN110083545B (zh) | 数据存储装置及其操作方法 | |
CN111414312B (zh) | 数据存储装置及其操作方法 | |
US11249897B2 (en) | Data storage device and operating method thereof | |
KR20190057887A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN109992202B (zh) | 数据存储设备、其操作方法以及包括其的数据处理系统 | |
US11487669B2 (en) | Memory system for storing data of log-structured merge tree structure and data processing system including the same | |
KR102592803B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR20200020464A (ko) | 데이터 저장 장치 및 그 동작 방법 | |
CN111427509A (zh) | 控制器、数据存储装置及其操作方法 | |
KR20200121645A (ko) | 컨트롤러 및 그것의 동작 방법과 메모리 시스템 | |
CN111752852A (zh) | 数据存储装置及数据存储装置的操作方法 | |
CN111752853A (zh) | 控制器、存储器系统及其操作方法 | |
CN113704138A (zh) | 存储装置及其操作方法 | |
CN111752858A (zh) | 控制器、存储器系统及其操作方法 | |
CN111752469A (zh) | 控制器、存储器系统及其操作方法 | |
CN114764396A (zh) | 数据存储装置及其操作方法 | |
CN113885782A (zh) | 存储装置及其操作方法 | |
KR20210156010A (ko) | 저장 장치 및 그 동작 방법 | |
KR102434840B1 (ko) | 데이터 저장 장치 | |
KR20220130526A (ko) | 메모리 시스템 및 그 동작 방법 | |
CN113805793A (zh) | 存储装置及其操作方法 | |
CN112328516A (zh) | 控制器、控制器的操作方法以及包括控制器的存储装置 | |
CN112231240A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20201030 |
|
WW01 | Invention patent application withdrawn after publication |