CN116521060A - 存储控制器、操作存储控制器和存储装置的方法 - Google Patents
存储控制器、操作存储控制器和存储装置的方法 Download PDFInfo
- Publication number
- CN116521060A CN116521060A CN202310065909.4A CN202310065909A CN116521060A CN 116521060 A CN116521060 A CN 116521060A CN 202310065909 A CN202310065909 A CN 202310065909A CN 116521060 A CN116521060 A CN 116521060A
- Authority
- CN
- China
- Prior art keywords
- block
- target data
- request
- power
- host
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 280
- 238000000034 method Methods 0.000 title claims abstract description 50
- 239000000872 buffer Substances 0.000 claims abstract description 88
- 230000007704 transition Effects 0.000 claims abstract description 52
- 238000012545 processing Methods 0.000 claims abstract description 31
- 230000004044 response Effects 0.000 claims abstract description 19
- 238000005192 partition Methods 0.000 claims description 5
- 238000004891 communication Methods 0.000 abstract description 5
- 238000013507 mapping Methods 0.000 description 24
- 238000010586 diagram Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 11
- 101000648827 Homo sapiens TPR and ankyrin repeat-containing protein 1 Proteins 0.000 description 4
- 102100028173 TPR and ankyrin repeat-containing protein 1 Human genes 0.000 description 4
- 238000012937 correction Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
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/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/0608—Saving storage space on 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/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/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0656—Data buffering 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/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/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]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
公开了一种与主机和非易失性存储器装置通信的存储控制器、一种操作该存储控制器的方法、以及一种操作存储装置的方法。操作该存储控制器的方法包括:从主机接收装置打开的第一状态转变请求;响应于第一状态转变请求而执行非易失性存储器装置的第一活动区刷新操作,使得在紧接的前一断电之前具有活动状态的区在一个块中被处理为顺序可写状态;根据第一写请求通过第一缓冲存储器从主机接收要存储在多个区当中的第一区的第一块中的第一目标数据;在处理第一写请求期间从主机接收第一断电请求;以及将第一目标数据存储在非易失性存储器装置的第一失电保护(PLP)块中。
Description
相关申请的交叉引用
本申请要求在韩国知识产权局于2022年1月26日提交的韩国专利申请No.10-2022-0011577和于2022年5月17日提交的韩国专利申请No.10-2022-0060256的优先权,该两件申请中的每一个的公开内容整体以引用方式并入本文中。
技术领域
本文所描述的本公开的实施例涉及存储控制器,更具体地,涉及一种执行活动区刷新操作的存储控制器、操作该存储控制器的方法和操作包括该存储控制器的存储装置的方法。
背景技术
存储器装置响应于写请求而存储数据,并且响应于读请求而输出存储在其中的数据。例如,存储器装置可被分类为当供电中断时丢失存储在其中的数据的易失性存储器装置(诸如动态随机存取存储器(DRAM)装置或静态RAM(SRAM)装置)、或者即使当供电中断时也保留存储在其中的数据的非易失性存储器装置(诸如闪存装置、相变RAM(PRAM)、磁性RAM(MRAM)或电阻RAM(RRAM))。
通常,非易失性存储器装置可根据随机存取而存储数据。随机存取伴随着对整个区域的频繁垃圾收集操作,从而导致存储装置的寿命的缩短。由于为频繁垃圾收集、磨损均衡和坏块管理分配了大的过度供给(OP)区域,所以存储装置的可用存储容量可能减小。为了防止上述问题,可存在将非易失性存储器装置的存储器块划分成区并将相关数据顺序地存储在区内的技术。
发明内容
本公开的实施例提供了一种执行活动区刷新操作的存储控制器、操作该存储控制器的方法和操作包括该存储控制器的存储装置的方法。
根据实施例,存储控制器被配置为与主机和非易失性存储器装置通信。操作该存储装置的方法包括:从主机接收装置打开的第一状态转变请求;响应于第一状态转变请求而执行非易失性存储器装置的第一活动区刷新操作,使得非易失性存储器装置的多个区当中的在紧接的前一断电之前具有活动状态的区在至少一个块中被处理为顺序可写状态;基于在执行第一活动区刷新操作之后从主机接收的第一写请求,通过第一缓冲存储器接收要存储在多个区当中的第一区的第一块中的第一目标数据;在第一写请求完成之前从主机接收第一断电请求;以及基于第一断电请求,将第一目标数据存储在非易失性存储器装置的第一失电保护(PLP)块中,而不是存储在第一块中。
根据实施例,存储装置被配置为与主机通信。操作该存储装置的方法包括:从主机接收装置打开的状态转变请求;响应于状态转变请求而执行非易失性存储器装置的活动区刷新操作,使得非易失性存储器装置的多个区当中的并且在紧接的前一断电之前具有活动状态的区在至少一个块中被处理为顺序可写状态;基于在执行活动区刷新操作之后从主机接收的第一写请求,通过缓冲存储器接收要存储在多个区当中的目标区的目标块中的目标数据;在写请求完成之前从主机接收断电请求;以及基于断电请求将目标数据存储在非易失性存储器装置的失电保护(PLP)块中,而不是存储在目标块中。
根据实施例,一种存储控制器包括:缓冲存储器,其被配置为基于写请求从主机接收要存储在非易失性存储器装置的多个区当中的目标区的目标块中的第一目标数据;以及处理电路,其被配置为从主机接收装置打开的状态转变请求,响应于状态转变请求而执行非易失性存储器装置的活动区刷新操作,允许缓冲存储器从主机接收第一目标数据,并且当在写请求完成之前从主机接收到断电请求时,允许缓冲存储器将第一目标数据存储在非易失性存储器装置的失电保护(PLP)块中,而不是存储在目标块中,并且其中,活动区刷新操作包括处理多个区当中的并且在紧接的前一断电之前处于活动状态的区,使得所处理的区的至少一个块被配置为执行顺序写操作。
附图说明
通过参照附图详细描述本公开的实施例,本公开的以上和其它目的和特征将变得显而易见。
图1是根据本公开的一些实施例的存储系统的框图。
图2是详细示出根据本公开的一些实施例的图1的存储控制器的框图。
图3是详细示出根据本公开的一些实施例的图1的非易失性存储器装置的框图。
图4是描述根据本公开的一些实施例的顺序写操作的示图。
图5是描述根据本公开的一些实施例的存储装置的状态的示图。
图6是描述根据本公开的一些实施例的存储系统的示图。
图7是描述根据本公开的一些实施例的存储系统的写操作的示图。
图8是描述传统存储系统中的块分配操作的示图。
图9是描述根据本公开的一些实施例的存储系统的块分配操作的示图。
图10是描述根据本公开的一些实施例的存储控制器的操作方法的流程图。
图11是描述根据本公开的一些实施例的存储控制器的操作方法的流程图。
图12是描述根据本公开的一些实施例的存储系统的操作方法的流程图。
具体实施方式
下面,将详细且清楚地描述本公开的实施例,以使本领域技术人员容易地实施本公开。除非另外指示,否则以下描述中的功能元件和图中所示的对应的块可在处理电路(诸如被配置为执行特定功能的硬件、软件或其组合)中实施。例如,更具体地,处理电路可包括(但不限于)中央处理单元(CPU)、算术逻辑单元(ALU)、数字信号处理器、微计算机、现场可编程门阵列(FPGA)、片上系统(SoC)、可编程逻辑单元、微处理器、专用集成电路(ASIC)等,并且/或者处理电路可包括诸如晶体管、电阻器、电容器等中的至少一个的电子组件,并且/或者可包括诸如逻辑门的电子组件,逻辑门包括与门、或门、或非门、与非门、非门、异或门等中的至少一个。
图1是根据本公开的一些实施例的存储系统的框图。参照图1,存储系统10可包括主机11和存储装置100。在一些实施例中,存储系统10可以是被配置为处理各种信息的计算系统(诸如个人计算机(PC)、笔记本、膝上型计算机、服务器、工作站、平板PC、智能电话、数字相机、黑匣子等)。
主机11可控制存储系统10的整体操作。例如,主机11可将数据存储在存储装置100中,并且/或者可读取存储在存储装置100中的数据。例如,主机11可向存储装置100提供写数据,并且/或者主机11可请求读取存储在存储装置100中的数据。
存储装置100可包括存储控制器110和非易失性存储器装置120。非易失性存储器装置120可存储数据。存储控制器110可将数据存储在非易失性存储器装置120中,并且/或者可读取存储在非易失性存储器装置120中的数据。非易失性存储器装置120可在存储控制器110的控制下操作。例如,基于指示操作的命令CMD和指示数据的位置的地址ADD,存储控制器110可将数据存储在非易失性存储器装置120中,并且/或者可读取存储在非易失性存储器装置120中的数据。
在一些实施例中,存储装置100可根据主机11的请求将对应的存储器块分配给区,并且可将数据顺序地存储在所分配的存储器块中。区在概念上可被称为多个存储器块当中的在物理上彼此连续的一些存储器块。例如,存储控制器110和非易失性存储器装置120可支持非易失性存储器(NVM)高速(NVMe)的分区命名空间(ZNS)标准。ZNS标准将参照图4和图5详细描述。
在一些实施例中,非易失性存储器装置120可以是NAND闪存装置,但本公开不限于此。例如,非易失性存储器装置120可以是即使断电也保留存储在其中的数据的各种存储装置(诸如相变随机存取存储器(PRAM)、磁性随机存取存储器(MRAM)、电阻随机存取存储器(RRAM)、铁电随机存取存储器(FRAM)等)之一。
存储控制器110可包括缓冲存储器111a、ZNS管理器112、区表113和区描述符114。
缓冲存储器111a可暂时存储从主机11接收的数据,并且/或者可暂时存储从非易失性存储器装置120接收的数据。缓冲存储器111a可辅助将存储在非易失性存储器装置120的存储器块中的数据复制到其任何其它存储器块的操作。
ZNS管理器112可从主机11接收符合ZNS标准的请求,并且可处理符合ZNS标准的请求。例如,根据主机11的请求,ZNS管理器112可将存储器块分配给区或者可释放所分配的存储器块,并且可控制缓冲存储器111a,使得存在于缓冲存储器111a中的数据被提供给所分配的存储器块。
区表113可管理指示被分配给区的存储器块的区块信息。例如,ZNS管理器112可管理多个区。在ZNS管理器112的控制下,区表113可管理指示被分配给多个区中的每一个的存储器块的多个区块信息。在当新存储器块被分配给区时或者当先前分配的存储器块从区释放时的情况下,ZNS管理器112可基于该情况更新区表113。
当存储装置100断电时,存在于区表113中的多个区块信息可在ZNS管理器112的控制下存储在非易失性存储器装置120中。
区描述符114可管理指示从主机11接收并存储在缓冲存储器111a中的目标数据的逻辑块地址的写指针。通过使用区描述符114的写指针,ZNS管理器112可控制缓冲存储器111a,使得缓冲存储器111a的目标数据被存储为与先前存储在非易失性存储器装置120中的用户数据是顺序的(或连续)。
当存储装置100断电时,区描述符114可在ZNS管理器112的控制下将写指针存储在非易失性存储器装置120中。
非易失性存储器装置120可包括用户存储器121a和失电保护(PLP)存储器121b。
用户存储器121a可根据写请求存储通过缓冲存储器111a从主机11提供的用户数据。用户存储器121a可包括多个用户存储器块。
当在处理写请求的同时生成断电请求时,PLP存储器121b可存储存在于缓冲存储器111a中而非用户存储器121a中的数据。PLP存储器121b可包括多个PLP存储器块。断电请求可用于请求预处理以防止在对存储装置100的供电中断(或阻断)之前丢失数据。例如,断电请求可指示正常断电(NPO)和/或突然断电(SPO)。
在一些实施例中,用户存储器121a的用户存储器块可被实施为第一类型,PLP存储器121b的PLP存储器块可被实施为第二类型。第一类型可指适合于管理大量数据的类型。第二类型可指适合于高可靠性和快速写入的类型。
例如,第一类型存储器块可利用存储多个比特的单元(诸如存储2比特的多级单元(MLC)、存储3比特的三级单元和存储4比特的四级单元(QLC))之一来实施。第二类型存储器块可利用存储1比特的单级单元(SLC)来实施。
在一些实施例中,ZNS管理器112可执行活动区刷新操作。活动区刷新操作可指将多个区当中的在紧接的前一断电之前处于活动状态的区处理为物理上顺序地写入一个存储器块中的操作。例如,ZNS管理器112可将紧接的前一断电中分配的存储器块的数据和备份到PLP存储器块的数据顺序地复制到新分配的存储器块。此后,ZNS管理器112可丢弃包括无效数据的存储器块和PLP存储器块。将参照图6、图7和图9详细描述活动区刷新操作。
如上所述,根据本公开的一些实施例,存储控制器110可执行活动区刷新操作。通过活动区刷新操作,即使发生断电,存储控制器110也可通过保证相同的块中的可串行性来维持以物理顺序方式写入的状态。另外,存储控制器110可丢弃具有无效数据的存储器块,因此减少块浪费并增加非易失性存储器装置120的可用存储容量。
图2是详细示出根据本公开的一些实施例的图1的存储控制器的框图。参照图1和图2,存储控制器110可与主机11和非易失性存储器装置120通信。
存储控制器110可包括易失性存储器装置111、ZNS管理器112、区表113、区描述符114、处理器115、只读存储器(ROM)116、纠错码(ECC)引擎117、主机接口电路118和非易失性存储器接口电路119。
ZNS管理器112、区表113和区描述符114可被统称为“活动区刷新装置”。活动区刷新装置可对多个区执行活动区刷新操作。ZNS管理器112、区表113和区描述符114可分别对应于图1的ZNS管理器112、区表113和区描述符114。
在一些实施例中,活动区刷新装置可由固件实施。例如,非易失性存储器装置120可存储与活动区刷新装置对应的指令。处理器115可将非易失性存储器装置120的指令加载到易失性存储器装置111上。处理器115可执行所加载的指令,使得活动区刷新装置操作。在一些实施例中,处理器115可包括例如多个处理器和/或处理单元(并且/或者包括在例如多个处理器和/或处理单元中)。
易失性存储器装置111可包括缓冲存储器111a。缓冲存储器111a可对应于图1的缓冲存储器111a。除缓冲存储器111a之外,易失性存储器装置111也可用作存储控制器110的主存储器、高速缓存存储器和/或工作存储器。例如,易失性存储器装置111可利用静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等来实施。
处理器115可控制存储控制器110的整体操作。ROM 116可用作存储用于存储控制器110的操作所需的信息的只读存储器。纠错码(ECC)引擎117可检测并纠正从非易失性存储器装置120读取的数据的错误。例如,ECC引擎117可具有给定级别的纠错能力。ECC引擎117可将错误级别(例如,翻转比特的数量)超过纠错能力的数据处理为不可纠正的数据。
存储控制器110可通过主机接口电路118与主机11通信。在一些实施例中,主机接口电路118可基于各种接口(诸如SATA(串行ATA)接口、PCIe(外围组件互连高速)接口、SAS(串行附接SCSI)、NVMe(非易失性存储器高速)接口、UFS(通用闪存)接口等)中的至少一种来实施。另外,主机接口电路118可支持NVMe的ZNS标准。
存储控制器110可通过非易失性存储器接口电路119与非易失性存储器装置120通信。在一些实施例中,非易失性存储器接口电路119可基于NAND接口来实施。另外,非易失性存储器接口电路119可支持符合NVMe的ZNS标准的顺序写操作。
图3是详细示出根据本公开的一些实施例的图1的非易失性存储器装置的框图。参照图1和图3,非易失性存储器装置120可与存储控制器110通信。例如,非易失性存储器装置120可从存储控制器110接收地址ADD和命令CMD。非易失性存储器装置120可与存储控制器110交换数据。
非易失性存储器装置120可包括存储器单元阵列121、控制逻辑122、电压生成器123、行解码器124、页缓冲器单元125、列解码器126和输入/输出(I/O)电路127。
存储器单元阵列121可包括用户存储器121a和PLP存储器121b。用户存储器121a和PLP存储器121b可分别对应于图1的用户存储器121a和PLP存储器121b。存储器单元阵列121可包括用户存储器121a的块T1_BLK和PLP存储器121b的PLP块T2_BLK。在一些实施例中,用户存储器121a的块T1_BLK和PLP存储器121b的PLP块T2_BLK可利用基于VNAND(竖直NAND)的存储器块来实施。例如,用户存储器121a可包括多个块T1_BLK,并且PLP存储器121b可包括多个PLP块T2_BLK。块T1_BLK可以是第一类型存储器块。第一类型可指适合于管理大量数据的类型。PLP块T2_BLK可以是第二类型存储器块。第二类型可指适合于高可靠性和快速写入的类型。块T1_BLK和PLP块T2_BLK中的每一个可包括对应类型的存储器单元。
控制逻辑122可从存储控制器110接收命令CMD和地址ADD。命令CMD可指指示非易失性存储器装置120要执行的操作(诸如读操作、写操作或擦除操作)的信号。地址ADD可包括行地址ADDR和列地址ADDC。控制逻辑122可基于命令CMD和地址ADD来控制非易失性存储器装置120的整体操作。控制逻辑122可基于地址ADD来生成行地址ADDR和列地址ADDC。
在控制逻辑122的控制下,电压生成器123可控制要通过行解码器124施加到存储器单元阵列121的电压。
行解码器124可从控制逻辑122接收行地址ADDR。行解码器124可通过串选择线SSL、字线WL和接地选择线GSL与存储器单元阵列121连接。行解码器124可对行地址ADDR进行解码,并且可基于解码结果和从电压生成器123接收的电压来控制要施加到串选择线SSL、字线WL和接地选择线GSL的电压。根据从行解码器124施加的电压,存储器单元阵列121可存储数据或者可输出所存储的数据。
页缓冲器单元125可包括多个页缓冲器PB。页缓冲器单元125可通过位线BL与存储器单元阵列121连接。页缓冲器单元125可通过感测位线BL的电压以页为单位从存储器单元阵列121读取数据。
列解码器126可从控制逻辑122接收列地址ADDC。列解码器126可对列地址ADDC进行解码,并且可基于解码结果将页缓冲器单元125所读取的数据提供给I/O电路127。
另外,列解码器126可通过数据线DL从I/O电路127接收数据。列解码器126可从控制逻辑122接收列地址ADDC。列解码器126可对列地址ADDC进行解码,并且可基于解码结果将从I/O电路127接收的数据提供给页缓冲器单元125。页缓冲器单元125可以页为单位通过位线BL将从I/O电路127提供的数据存储在存储器单元阵列121中。
I/O电路127可通过数据线DL与列解码器126连接。I/O电路127可通过数据线DL将从存储控制器110接收的数据提供给列解码器126。I/O电路127可将通过数据线DL接收的数据输出到存储控制器110。
图4是描述根据本公开的一些实施例的顺序写操作的示图。将参照图1和图4描述存储控制器将数据顺序地写入用户存储器121a中的操作。
传统存储控制器可根据随机存取来存储数据。例如,在根据随机存取存储数据的情况下,与逻辑上顺序的地址块对应的存储器块可以随机地分布在非易失性存储器装置中。非易失性存储器装置在结构上可能无法被重写。在执行擦除操作的情况下,可执行数据被读取然后被复制到另一存储器块的垃圾收集操作,以单独地管理存储器块中的有效数据和无效数据。
传统存储控制器可能频繁地对非易失性存储器装置的整个区域执行垃圾收集操作,从而缩短非易失性存储器装置的寿命(例如,增加编程/擦除(P/E)循环的数量)。另外,由于为频繁垃圾收集、磨损均衡和坏块管理分配了大的过度供给(OP)区域,所以非易失性存储器装置的可用存储容量可能减小。
根据本公开的一些实施例,存储控制器110可执行顺序写操作。为了更好地理解本公开,第一区至第N区的逻辑区域和第一区至第N区的物理区域被一起示出。这里,“N”表示整数,并且可以是例如任意自然数。逻辑区域可包括主机11能够识别的地址。物理区域可包括非易失性存储器装置120中的存储器块的位置(或地址)。逻辑区域和物理区域可具有映射关系。
参考逻辑区域,存储控制器110可管理第一区至第N区。第一区至第N区可彼此独立地管理。例如,主机11可执行第一应用和第二应用。第一应用可管理包括在第一区中的数据。第二应用可管理包括在第二区中的数据。例如,可在相同的区内管理相同的应用所管理的数据当中的具有相似目的和使用周期的数据。
第一区至第N区中的每一个可包括多个逻辑块地址。例如,第一区可包括第一逻辑块地址LBA1至第m逻辑块地址LBAm。本文中,“m”表示整数,并且可以是例如任意自然数。第一逻辑块地址LBA1至第m逻辑块地址LBAm可以是逻辑上顺序的。
存储控制器110可通过使用写指针将数据顺序地存储在用户存储器121a中。例如,在与第一逻辑块地址LBA1和第二逻辑块地址LBA2对应的数据被顺序地编程在用户存储器121a中并且存储控制器110的缓冲存储器111a存储与第三逻辑块地址LBA3对应的数据的情况下,写指针可指示第三逻辑块地址LBA3。
参考物理区域,用户存储器121a可包括多个块T1_BLK。多个块T1_BLK可被分类为第一区至第N区。第一区的多个块T1_BLK可以是物理上顺序的第一块T1_BLK1至第m块T1_BLKm。第一区的第一块T1_BLK1至第m块T1_BLKm可分别对应于第一区的第一逻辑块地址LBA1至第m逻辑块地址LBAm。存储控制器110可根据写请求管理从主机11接收的数据,以在逻辑上和物理上顺序地存储在用户存储器121a中。例如,存储控制器110可支持顺序写操作。
为了更好理解本公开,给出逻辑块地址对应于一个块的描述,但本公开不限于此。在维持逻辑可串行性的同时,逻辑块地址可分别对应于一个块中的顺序子块或顺序编程单元(例如,通过其对存储器单元进行编程的单元)。逻辑块地址和存储器块的对应关系可由本领域技术人员不同地改变和执行。
如上所述,根据本公开的一些实施例,存储控制器110可以以区为单位管理数据,而非针对用户存储器121a的整个区域管理数据。由于以区为单位进行数据管理,所以由于垃圾收集(GC)而引起的I/O负载和附加读写操作可减少。因此,可改进存储装置100的数据处理速度,并且存储装置100的功耗可降低。另外,随着由于垃圾收集而引起的负载减小,过度供给(OP)区域可减小。这可意味着非易失性存储器装置120的可用存储容量增加。
图5是描述根据本公开的一些实施例的存储装置的状态的示图。将参照图1和图5描述根据ZNS标准的与存储装置100的区关联的状态机。
根据本公开的一些实施例,存储装置100所管理的区可具有区状态(ZS)(例如,ZSE状态、ZSIO状态、ZSEO状态、ZSC状态、ZSF状态、ZSRO状态和ZSO状态)之一。随着存储装置100处理从主机11接收的请求,区的状态可以转变。
ZSE状态、ZSF状态、ZSRO状态和ZSO状态可被分类为非活动状态。ZSIO状态、ZSEO状态和ZSC状态可被分类为活动状态。活动状态的区可由最大活动资源字段限制。ZSIO状态和ZSEO状态可被分类为打开状态。打开状态的区可由最大打开资源字段限制。
ZSE状态可指示空状态。在ZSE状态下,数据可能还未存储在存储器块中,并且写指针可指示最低逻辑块地址(例如,区所管理的逻辑块地址当中的具有最小数的逻辑块地址)。ZSE状态的写指针可为有效的。ZSE状态可转变为ZSIO状态、ZSEO状态、ZSC状态和ZSF状态之一。
ZSIO状态可指示隐含打开状态。ZSIO状态可以是通过执行从主机11接收的写命令而隐含打开的状态。在ZSIO状态下,存储器块可存储与写命令对应的数据。ZSIO状态可转变为ZSE状态、ZSEO状态、ZSC状态和ZSF状态之一。当打开资源饱和时,即使不存在关闭命令,ZSIO状态也可转变为ZSC状态。
ZSEO状态可指示明确打开状态。ZSEO状态可以是通过执行从主机11接收的打开命令而明确打开的状态。在ZSEO状态下,存储器块可存储与随后接收的写命令对应的数据。ZSEO状态可转变为ZSE状态、ZSC状态和ZSF状态之一。相比于ZSIO状态,ZSEO状态可对打开资源具有更高的优先级。ZSEO状态可仅通过关闭命令转变为ZSC状态。
ZSC状态可指示关闭状态。1)当在ZSE状态下存在可用活动资源并且接收到设定区描述符扩展命令时,2)当在ZSIO状态下,接收到关闭命令或者打开资源饱和时,和/或3)当在ZSEO状态下,接收到关闭命令时,可进行向ZSC状态的转变。在ZSC状态下,存储器块无法存储与写命令对应的数据。ZSC状态可转变为ZSE状态、ZSIO状态、ZSEO状态和ZSF状态之一。
ZSF状态可指示全状态(或满状态)。在ZSE状态下,存储器块可被存储在其中的数据填充,并且写指针可指示最高逻辑块地址(例如,区所管理的逻辑块地址当中的具有最大数的逻辑块地址)。ZSF状态的写指针可为无效的。ZSF状态可通过重置区命令转变为ZSE状态。
ZSRO状态可指示只读状态。具有ZSRO状态的区可以是在区的至少一部分性能停止操作之后主机继续使用分区命名空间的空间。ZSRO状态可通过离线区命令转变为ZSO状态。
ZSO状态可指示离线状态。ZSO状态可以不具有有效写指针,可以不具有活动资源,和/或可以不具有打开资源。ZSO状态可以不具有能够转变的任何其它状态。
在一些实施例中,存储装置100可处理装置打开的状态转变请求。装置打开可包括存储装置100能够从主机11接收数据的状态。例如,装置打开的状态转变请求可指示转变为ZSIO状态或ZSIO状态。
在一些实施例中,存储装置100可管理活动状态。活动状态可包括ZSIO状态、ZSEO状态和ZSC状态。
图6是描述根据本公开的一些实施例的存储系统的示图。参照图6,存储系统10可包括主机11、存储控制器110和非易失性存储器装置120。
主机11可与存储控制器110通信。主机11可向存储控制器110提供满足ZNS标准的请求(例如,状态转变请求、读请求或写请求)。
存储控制器110可包括易失性存储器装置111、ZNS管理器112、区表113和区描述符114。
易失性存储器装置111可在ZNS管理器112的控制下存储从主机11接收的数据。易失性存储器装置111可包括第一缓冲存储器111a_1和第二缓冲存储器111a_2。
在一些实施例中,存储控制器110可支持对多个区的同时写操作。例如,存储控制器110可在处理第一写请求的同时处理第二写请求。第一写请求可用于请求将第一缓冲存储器111a_1的数据提供给第一区的第一块T1_BLK1的操作。第二写请求可用于请求将第二缓冲存储器111a_2的数据提供给第二区的第二块T1_BLK2的操作。
第一缓冲存储器111a_1可顺序地存储映射单元MU1_31至MU1_33。映射单元可指逻辑地址和物理地址之间具有映射关系的数据单元。当不存在断电请求时,第一缓冲存储器111a_1还可接收映射单元MU1_34,然后可将作为一组顺序映射单元MU1_31至MU1_34的编程单元PU1_3存储在第一块T1_BLK1中。可紧接在编程单元PU1_2之后存储编程单元PU1_3。当在第一写请求完成之前生成断电请求时,第一缓冲存储器111a_1可将缓冲在第一缓冲存储器111a_1中的映射单元MU1_31至MU1_33存储在PLP存储器121b中。存储在PLP存储器121b中的数据可在活动区刷新操作中使用。
如上面的描述中,第二缓冲存储器111a_2可顺序地存储映射单元MU2_31至MU2_33。当不存在断电请求时,第二缓冲存储器111a_2还可接收映射单元MU2_34,然后可将作为一组顺序映射单元MU2_31至MU2_34的编程单元PU2_3存储在第二块T1_BLK2中。可紧接在编程单元PU2_2之后存储编程单元PU2_3。当在第二写请求完成之前生成断电请求时,第二缓冲存储器111a_2可将缓冲在第二缓冲存储器111a_2中的映射单元MU2_31至MU2_33存储在PLP存储器121b中。存储在PLP存储器121b中的数据可在活动区刷新操作中使用。
ZNS管理器112可与主机11、易失性存储器装置111、区表113和区描述符114通信。ZNS管理器112可处理来自主机11的请求,可将新块分配给区或者可释放所分配的块,并且可管理允许易失性存储器装置111通信数据的操作。ZNS管理器112可执行活动区刷新操作。例如,当处于活动状态的第一区根据断电请求而终止时,ZNS管理器112可保证在下一装置打开之后第一区的新分配的块中的顺序写操作。
区表113可管理多个区块信息。例如,区表113可管理第一区块信息ZBI1和第二区块信息ZBI2。第一区块信息ZBI1可指示第一块T1_BLK1被分配给第一区。第二区块信息ZBI2可指示第二块T1_BLK2被分配给第二区。当新块被分配给区时和/或当所分配的块被释放时,ZNS管理器112可更新区表113的区块信息。
在一些实施例中,当从主机11生成断电请求时,在ZNS管理器112的控制下,区表113可通过易失性存储器装置111将第一区块信息ZBI1和第二区块信息ZBI2存储在PLP存储器121b中。
区描述符114可管理多个写指针。例如,区描述符114可管理第一写指针WP1和第二写指针WP2。第一写指针WP1可指示紧接在与编程单元PU1_2对应的逻辑块地址之后的逻辑块地址作为缓冲在第一缓冲存储器111a_1中的数据要存储的位置。如上面的描述中,第二写指针WP2可指示紧接在与编程单元PU2_2对应的逻辑块地址之后的逻辑块地址作为缓冲在第二缓冲存储器111a_2中的数据要存储的位置。
在一些实施例中,当从主机11生成断电请求时,例如,在ZNS管理器112的控制下,区描述符114可通过易失性存储器装置111将第一写指针WP1和第二写指针WP2存储在PLP存储器121b中。
非易失性存储器装置120可包括用户存储器121a和PLP存储器121b。用户存储器121a的第一块T1_BLK1可被分配给第一区。用户存储器121a的第二块T1_BLK2可被分配给第二区。PLP存储器121b可包括第一PLP块T2_BLK1至第K PLP块T2_BLKK。
第一块T1_BLK1可顺序地存储编程单元PU1_1和PU1_2作为第一用户数据。
第二块T1_BLK2可顺序地存储编程单元PU2_1和PU2_2作为第二用户数据。
当从主机11生成断电请求时,第一PLP块T2_BLK1至第K PLP块T2_BLKK可存储第一缓冲存储器111a_1的映射单元MU1_31至MU1_33、第二缓冲存储器111a_2的映射单元MU2_31至MU2_33、区表113的第一区块信息ZBI1和第二区块信息ZBI2以及区描述符114的第一写指针WP1和第二写指针WP2。
图7是描述根据本公开的一些实施例的存储系统的写操作的示图。参照图7,存储系统10可包括主机11、存储控制器110和非易失性存储器装置120。主机11、存储控制器110和非易失性存储器装置120可分别对应于图6的主机11、存储控制器110和非易失性存储器装置120。
下面,将描述根据本公开的一些实施例的存储系统10的写操作。
在第一操作①中,存储控制器110可从主机11接收目标数据。目标数据可以是属于多个区当中的目标区的目标块中要存储的数据。
例如,在存储控制器110执行第一操作①之前,存储控制器110可处理装置打开的状态转变请求,并且可将第一块T1_BLK1分配给第一区。第一块T1_BLK1可顺序地存储编程单元PU1_1和PU1_2。编程单元PU1_1和PU1_2也可被称为“第一用户数据”。
存储控制器110的第一缓冲存储器111a_1可从主机11接收目标数据和第一写指针WP1。根据写请求,目标数据可包括映射单元MU1_31至MU1_33。第一写指针WP1可指示目标数据要存储的位置。例如,第一写指针WP1可指示第一区和第二区中的第一区,可指示第一区的多个块(未示出)中的第一块T1_BLK1,并且可指示紧接在第一块T1_BLK1的编程单元PU1_2的逻辑块地址之后的逻辑块地址。
在第二操作②中,第一缓冲存储器111a_1可缓冲要存储在第一块T1_BLK1中的目标数据。例如,直至从主机11接收作为下一目标数据的映射单元MU1_34为止,第一缓冲存储器111a_1可暂时存储映射单元MU1_31至MU1_33作为当前目标数据。
与图7的示例不同,在接收断电请求之前第一缓冲存储器111a_1接收到映射单元MU1_34的情况下,第一缓冲存储器111a_1可将一组顺序映射单元MU1_31至MU1_34存储在第一块T1_BLK1中作为编程单元PU1_3。
在第三操作③中,ZNS管理器112可在处理写请求的同时从主机11接收断电请求。在处理写请求时,第一缓冲存储器111a_1可暂时存储(例如,缓冲)目标数据。
在第四操作④中,ZNS管理器112可基于第三操作③中的断电请求来控制第一缓冲存储器111a_1。在ZNS管理器112的控制下,第一缓冲存储器111a_1可将目标数据存储在第一PLP块T2_BLK1中,而不是存储在第一块T1_BLK1中。目标数据可包括一组顺序映射单元MU1_31至MU1_33。存储在第一PLP块T2_BLK1中的目标数据可对应于编程单元PU1_3,但可不包括映射单元MU1_34。
如上面的描述中,当在接收断电请求之前未完成对第二区的写请求时,ZNS管理器112可备份与要存储在第二区的第二块T1_BLK2中的编程单元PU2_3对应的目标数据。
为了更好地理解本公开,给出第一缓冲存储器111a_1的映射单元MU1_31至MU1_33被备份到第一PLP块T2_BLK1的描述,但本公开不限于此。映射单元MU1_31至MU1_33可根据数据大小和实施细节而被分布并被存储到多个PLP块。
ZNS管理器112可将指示第一块T1_BLK1被分配给第一区的第一区块信息ZBI1存储在PLP存储器121b中。ZNS管理器112可将指示编程单元PU1_3要存储的位置的第一写指针WP1存储在PLP存储器121b中。
如上面的描述中,当在接收断电请求之前未处理对第二区的写请求时,ZNS管理器112可将第二区块信息ZBI2和第二写指针WP2存储在PLP存储器121b中。
图8是描述传统存储系统中的块分配操作的示图。参照图8,传统存储系统SS可包括主机、存储控制器和非易失性存储器装置。主机、存储控制器和非易失性存储器装置可分别对应于图6和图7的主机11、存储控制器110和非易失性存储器装置120。
为了更好地理解本公开,将描述传统存储系统SS的块分配操作。然而,以下描述可包括与相关技术无关的技术特征,以下描述并非旨在限制本公开。
下面,将描述传统存储系统SS的块分配操作。
在第一操作①中,ZNS管理器可接收状态转变请求。状态转变请求可以是装置打开的状态转变请求。
例如,在存储系统SS执行第一操作①之前,如参照图7给出的描述中,在目标数据被备份到PLP存储器121b之后,可终止存储系统SS。目标数据可对应于图7的映射单元MU1_31至MU1_33,并且被示出为虚线框的编程单元PU1_3。此后,为了处理下一写请求,存储系统SS可从主机接收状态转变请求。
在第二操作②中,ZNS管理器可响应于状态转变请求将第三块T1_BLK3新分配给第一区。ZNS管理器可更新区表的第一区块信息ZBI1以指示第一块T1_BLK1和第三块T1_BLK3被分配给第一区。在对第二区执行与上述操作类似的操作的情况下,ZNS管理器可将第四块T1_BLK4新分配给第二区,并且可更新区表的第二区块信息ZBI2。
在第三操作③中,第一缓冲存储器可在ZNS管理器的控制下获取存在于PLP存储器的第一PLP块T2_BLK1中的目标数据。第一缓冲存储器可暂时存储所获取的目标数据。
在第四操作④中,第一缓冲存储器可在ZNS管理器的控制下将目标数据存储在第一区的第三块T1_BLK3中。
在处理断电请求之后,非易失性存储器装置可能不能对结构上相同的块执行顺序写操作。在断电请求之后处理装置打开的情况下,非易失性存储器装置可通过使用新分配的第三块T1_BLK3来支持顺序写操作。第一块T1_BLK1的除编程单元PU1_1和PU1_2以外的剩余存储空间可能被浪费。另外,可能需要第一块T1_BLK1和第三块T1_BLK3二者以管理编程单元PU1_1和PU1_2以及目标数据。在进一步生成断电请求的情况下,被分配为管理第一区中的有效数据的块的数量可进一步增加。
如上所述,根据传统存储系统SS的块分配操作,在断电请求之前分配的块的存储空间可能被浪费,随着电力循环(例如,处理断电请求之后的装置打开)被重复,每区分配的存储器块的数量可增加,并且可能无法维持相同的存储器块中的物理上的顺序写操作的状态。
图9是描述根据本公开的一些实施例的存储系统的块分配操作的示图。参照图9,根据本公开的一些实施例的存储系统10可包括主机11、存储控制器110和非易失性存储器装置120。主机11、存储控制器110和非易失性存储器装置120可分别对应于图6和图7的主机11、存储控制器110和非易失性存储器装置120。
根据本公开的一些实施例,存储系统10可设定活动区刷新操作。详细地,关于在处理紧接的前一断电请求之前具有活动状态的区,存储系统10可执行区管理操作,使得在新分配的块中可进行顺序写操作,同时维持每区分配的存储器块的数量。
下面,将描述根据本公开的一些实施例的存储系统10的块分配操作。
在第一操作①中,ZNS管理器112可接收状态转变请求。状态转变请求可以是装置打开的状态转变请求。
例如,在存储系统10执行第一操作①之前,如参照图7给出的描述中,在目标数据被备份到PLP存储器121b之后,可终止存储系统10。目标数据可对应于图7的映射单元MU1_31至MU1_33,并且被示出为虚线框的编程单元PU1_3。此后,为了处理下一写请求,存储系统10可从主机11接收状态转变请求。
在第二操作②中,ZNS管理器112可响应于状态转变请求将第三块T1_BLK3新分配给第一区。ZNS管理器112可更新区表113的第一区块信息ZBI1以指示第一块T1_BLK1和第三块T1_BLK3被分配给第一区。在对第二区执行与上述操作类似的操作的情况下,ZNS管理器112可将第四块T1_BLK4新分配给第二区并且可更新区表113的第二区块信息ZBI2。
在第三操作③中,在ZNS管理器112的控制下,第一缓冲存储器111a_1可将第一区中的第一块T1_BLK1的用户数据复制到第三块T1_BLK3。第一块T1_BLK1的用户数据可包括编程单元PU1_1和PU1_2。
在复制用户数据之后,第一块T1_BLK1可以是无效存储器块。ZNS管理器112可丢弃作为无效存储器块的第一块T1_BLK1。丢弃第一块T1_BLK1的操作可按照运行中的方式处理,或者可在存储控制器110的I/O负载较小时作为后台操作处理。
在对第二区执行与上述操作类似的操作的情况下,ZNS管理器112可通过使用另一缓冲存储器来复制第二块T1_BLK2的编程单元PU2_1和PU2_2。
在第四操作④中,第一缓冲存储器111a_1可在ZNS管理器112的控制下获取存在于PLP存储器121b的第一PLP块T2_BLK1中的目标数据。第一缓冲存储器111a_1可暂时存储所获取的目标数据。
第一写指针WP1可存在于PLP存储器121b中和/或可被预先加载到区描述符114上。ZNS管理器112可参考在处理断电请求之前使用的第一写指针WP1。第一写指针WP1可指示紧接在编程单元PU1_2的逻辑块地址之后的逻辑块地址作为要存储目标数据的位置。
在第五操作⑤中,在ZNS管理器112的控制下,第一缓冲存储器111a_1可通过使用第一写指针WP1来存储紧接在第三块T1_BLK3的编程单元PU1_2之后的目标数据。
参考第一区,作为无效存储器块的第一块T1_BLK1可被丢弃。在第一区中,由于第一块T1_BLK1被丢弃并且新分配的第三块T1_BLK3有效,所以即使在处理断电请求之后,也可维持每区分配的块的数量。
第三块T1_BLK3可顺序地存储编程单元PU1_1和PU1_2以及目标数据(例如,虚线框的编程单元PU1_3)。随后,当从主机11接收到根据新写请求的新目标数据时,新目标数据可被存储为与目标数据(例如,虚线框的编程单元PU1_3)在物理上连续。
在对第二区执行与上述操作类似的操作的情况下,ZNS管理器112可通过使用另一缓冲存储器获取第二PLP块T2_BLK2的目标数据,可加载第二写指针WP2,并且可存储紧接在第四块T1_BLK4的编程单元PU2_2之后的目标数据(例如,虚线框的编程单元PU2_3)。
关于在处理断电请求之前不具有活动状态的区,可省略第三操作③和第五操作⑤。第三操作③和第五操作⑤可以是活动区刷新操作的一部分。
图10是描述根据本公开的一些实施例的存储控制器的操作方法的流程图。参照图10,存储控制器可与主机和非易失性存储器装置通信。存储控制器可对应于参照图1、图2、图6、图7和图9描述的存储控制器110。操作S110和操作S120可对应于图9的块分配操作。操作S130至操作S150可对应于图7的写操作。
在操作S110中,存储控制器可从主机接收装置打开的状态转变请求。
在操作S120中,存储控制器可响应于状态转变请求而执行非易失性存储器装置的活动区刷新操作。活动区刷新操作可包括处理非易失性存储器装置的多个区当中的在紧接的前一断电之前处于活动状态的区,使得在一个块中执行顺序写操作。
在操作S130中,存储控制器可响应于写请求通过缓冲存储器从主机接收要存储在多个区当中的目标区的目标块中的目标数据。写请求可在操作S110中被包括在状态转变请求(例如,转变为ZSEO状态的请求)中,或者可在操作S110中与状态转变请求(例如,转变为ZSEO状态的请求)分开接收。
在操作S140中,在处理操作S130中的写请求时,存储控制器可从主机接收断电请求。例如,断电请求可指示NPO或SPO。
在操作S150中,基于操作S140中的断电请求,存储控制器可将目标块存储在非易失性存储器装置的PLP块中,而不是存储在目标块中。
在一些实施例中,操作S150可包括:将指示目标数据的逻辑块地址的写指针存储在PLP存储器中;以及将指示目标块被分配给目标块的区块信息存储在PLP存储器中。
在一些实施例中,存储控制器可并行处理对多个区的多个写请求。例如,该方法可包括根据另一写请求通过另一缓冲存储器接收要存储在另一区的另一块中的另一目标数据。当在处理另一写请求期间接收到断电请求时,存储控制器可将另一缓冲存储器的另一目标数据存储在另一PLP块中。
在一些实施例中,当在操作S130中在处理写请求期间未生成断电请求时,存储控制器可将目标数据存储在目标块中。例如,存储控制器还可接收下一目标数据。存储控制器的缓冲存储器可填充有目标数据和下一目标数据。缓冲存储器可将目标数据和下一目标数据顺序地存储在目标块中。在这种情况下,可省略操作S140和操作S150。
在一些实施例中,目标块可被实施为第一类型,PLP块可被实施为可靠性高于第一类型的第二类型。例如,目标块可利用多级单元(MLC)、三级单元(TLC)、四级单元(QLC)等之一来实施,PLP块可利用单级单元(SLC)来实施。
在一些实施例中,可重复地执行操作S110至操作S150。即使电力循环的数量增加,通过执行活动区刷新操作,也可维持每区分配的块的数量。
图11是描述根据本公开的一些实施例的存储控制器的操作方法的流程图。参照图11,存储控制器可与主机和非易失性存储器装置通信。存储控制器可对应于参照图1、图2、图6、图7和图9描述的存储控制器110。操作S121至操作S126可对应于图10的操作S120和图9的块分配操作。
在操作S121中,存储控制器可响应于状态转变请求而将区识别号设定为初始值。区识别号可指示存储控制器所管理的多个区当中的当前正处理的区。初始值可以是分别与多个区对应的区识别号的最小值。
在操作S122中,存储控制器可确定与设定的区识别号对应的区在紧接的前一断电之前是否具有活动状态。当确定与设定的区识别号对应的区在紧接的前一断电之前具有活动状态时,存储控制器可执行操作S123。当确定与设定的区识别号对应的区在紧接的前一断电之前不具有活动状态时,存储控制器可执行操作S126。
在操作S123中,存储控制器可将紧接的前一断电之前分配的块的用户数据复制到新分配的块。例如,操作S123可包括:新分配与设定的区识别号对应的区的块;将紧接的前一断电之前分配的块的用户数据复制到新分配的块;以及在复制用户数据之后丢弃无效块(例如,紧接的前一断电之前分配的块)。
在操作S124中,通过使用写指针,存储控制器可复制紧接在新分配的块的复制的用户数据之后的PLP块的目标数据。PLP块的目标数据可对应于在紧接的前一断电之前备份缓冲存储器的目标数据的结果。
在操作S125中,存储控制器可确定设定的区识别号是否是最后值。最后值可以是分别与多个区对应的区识别号的最大值。当确定设定的区识别号是最后值时,存储控制器可终止操作。当确定设定的区识别号不是最后值时,存储控制器可执行操作S126。
可在操作S122或操作S125之后执行操作S126。在操作S126中,存储控制器可再次将区识别号设定为增加单位大小那么多的值。存储控制器可通过使用再次设定的区识别号作为设定的区识别号来再次执行操作S122。例如,单位大小可为“1”。当区识别号从“1”增加至“2”时,存储控制器可根据第一区是否具有活动状态来执行活动区刷新操作,然后可根据第二区是否具有活动状态来执行活动区刷新操作。
图12是描述根据本公开的一些实施例的存储系统的操作方法的流程图。参照图12,存储系统可包括主机11、存储控制器110和非易失性存储器装置120。存储系统可对应于参照图1、图6、图7和图9描述的存储系统10。
在操作S210中,主机11可向存储控制器110提供状态转变请求。状态转变请求可以是装置打开的请求。
在操作S220中,存储控制器110可基于与非易失性存储器装置120的通信执行活动区刷新操作。活动区刷新操作可包括处理多个区当中的在紧接的前一断电之前具有活动状态的区,使得可在一个块中进行顺序写操作。
在操作S230中,主机11可根据写请求向存储控制器110提供目标数据。目标数据可以是要存储在目标区的目标块中的数据。目标数据可被暂时存储(例如,缓冲)在存储控制器110的缓冲存储器中。
在操作S240中,主机11可在处理写请求的同时向存储控制器110提供断电请求。例如,在存储控制器110将目标数据存储在目标块中之前,存储控制器110可从主机11接收断电请求。
在操作S250中,存储控制器110可将缓冲存储器的目标数据存储在PLP块中,而不是存储在目标块中。在一些实施例中,在操作S230至操作S250期间,存储控制器110可将目标数据缓冲在缓冲存储器中。
在操作S251中,存储控制器110可完成断电请求的处理。例如,可中断向存储控制器110和非易失性存储器装置120的供电。
在一些实施例中,可重复地执行操作S210至操作S251。即使电力循环的数量增加,通过执行活动区刷新操作,也可维持每区分配的块的数量。
根据本公开的一些实施例,提供了执行活动区刷新操作的存储控制器、操作存储控制器的方法和操作包括存储控制器的存储装置的方法。
另外,即使发生断电,存储控制器也可通过保证相同的块中的可串行性来维持物理上顺序写入的状态,并且可通过减少块浪费来增加可用存储容量。
尽管已经参考本公开的实施例描述了本公开,但对于本领域普通技术人员而言将显而易见的是,在不脱离所附权利要求中阐述的本公开的精神和范围的情况下,可对其进行各种改变和修改。
Claims (20)
1.一种操作存储控制器的方法,所述存储控制器被配置为与主机和非易失性存储器装置通信,所述方法包括:
从所述主机接收装置打开的第一状态转变请求;
响应于所述第一状态转变请求而执行所述非易失性存储器装置的第一活动区刷新操作,使得所述非易失性存储器装置的多个区当中的并且在紧接的前一断电之前具有活动状态的至少一个区在至少一个块中被处理为顺序可写状态;
基于在执行所述第一活动区刷新操作之后从所述主机接收的第一写请求,通过第一缓冲存储器接收要存储在所述多个区当中的第一区的第一块中的第一目标数据;
在所述第一写请求完成之前从所述主机接收第一断电请求;以及
基于所述第一断电请求,将所述第一目标数据存储在所述非易失性存储器装置的第一失电保护块中,而不是存储在所述第一块中。
2.根据权利要求1所述的方法,其中,所述第一失电保护块具有高于所述第一块的可靠性。
3.根据权利要求1所述的方法,其中,存储在所述第一块中的用户数据包括在逻辑上和在物理上顺序的多个编程单元,并且
其中,所述多个编程单元中的最后编程单元的逻辑块地址是紧接在所述第一目标数据的逻辑块地址之前的地址。
4.根据权利要求1所述的方法,还包括:
基于在执行所述第一活动区刷新操作之后从所述主机接收的第二写请求,通过第二缓冲存储器接收要存储在所述多个区当中的第二区的第二块中的第二目标数据;以及
基于所述第一断电请求,将所述第二目标数据存储在所述非易失性存储器装置的第二失电保护块中,而不是存储在所述第二块中,
其中,在所述第一写请求和所述第二写请求完成之前接收所述第一断电请求。
5.根据权利要求1所述的方法,还包括:
在将所述第一目标数据存储在所述失电保护块中之后完成所述第一断电请求;
在所述第一断电请求完成之后从所述主机接收所述装置打开的第二状态转变请求;
响应于所述第二状态转变请求而执行所述非易失性存储器装置的第二活动区刷新操作,使得在所述第一断电请求完成之前具有所述活动状态的所述第一区在新分配的第三块中被处理为顺序可写状态;以及
基于在执行所述第二活动区刷新操作之后从所述主机接收的第三写请求,通过所述第一缓冲存储器接收要存储在所述第三块中的第三目标数据。
6.根据权利要求5所述的方法,还包括:
基于从所述主机接收的第三写请求通过所述第一缓冲存储器接收要存储在所述第三块中的第四目标数据,其中,所述第四目标数据与所述第三目标数据是顺序的,并且所述第一缓冲存储器填充有所述第三目标数据和所述第四目标数据;以及
将所述第一缓冲存储器的所述第三目标数据和所述第四目标数据顺序地存储在所述第三块中。
7.根据权利要求5所述的方法,还包括:
在所述第三写请求完成之前,从所述主机接收第二断电请求;以及
基于所述第二断电请求将所述第三目标数据存储在所述非易失性存储器装置的第三失电保护块中,而不是存储在所述第三块中。
8.根据权利要求5所述的方法,其中,响应于所述第二状态转变请求执行所述非易失性存储器装置的第二活动区刷新操作包括:
在所述第一断电请求完成之前确定所述第一区是否具有所述活动状态;
当在所述第一断电请求的处理完成之前确定所述第一区具有所述活动状态时,分配所述第一区的第三块;
将所述第一区的第一块的用户数据复制到所述第三块;以及
使用写指针,紧接在复制所述第三块的用户数据之后,复制所述第一失电保护块的第一目标数据,并且
其中,所述第三目标数据的逻辑块地址紧接在复制的第一目标数据的逻辑块地址之后。
9.根据权利要求8所述的方法,还包括:
在将所述第一块的用户数据复制到所述第三块之后,丢弃所述第一块。
10.根据权利要求1所述的方法,其中,响应于所述第一状态转变请求执行所述非易失性存储器装置的第一活动区刷新操作包括:
响应于所述第一状态转变请求将区识别号设定为初始值;
确定所述多个区当中的与设定的区识别号对应的区在所述紧接的前一断电之前是否具有所述活动状态;
当确定对应的区在所述紧接的前一断电之前具有所述活动状态时,将所述紧接的前一断电之前分配的对应的区的块的用户数据复制到新分配的块;以及
使用对应写指针紧接在所述新分配的块的复制的用户数据之后复制对应的失电保护块的对应的目标数据。
11.根据权利要求10所述的方法,其中,响应于所述第一状态转变请求执行所述非易失性存储器装置的第一活动区刷新操作还包括:
在复制对应的失电保护块的对应的目标数据之后,确定设定的区识别号是否是最后值;
当确定设定的区识别号不是所述最后值时,再次将设定的区识别号设定为增加了单位大小的值;以及
确定所述多个区当中的与再次设定的区识别号对应的区是否在所述紧接的前一断电之前具有所述活动状态。
12.根据权利要求1所述的方法,其中,将所述第一目标数据存储在所述非易失性存储器装置的第一失电保护块中包括:
存储指示所述第一目标数据的逻辑块地址的写指针;以及
存储指示所述第一块被分配给所述第一区的区块信息。
13.根据权利要求1所述的方法,其中,所述存储控制器支持非易失性存储器高速的分区命名空间标准。
14.根据权利要求13所述的方法,其中,所述第一状态转变请求指示转变为所述分区命名空间标准的隐含打开区状态状态和明确打开区状态状态中的至少一个,并且
其中,所述活动状态包括所述分区命名空间标准的隐含打开区状态状态、明确打开区状态状态和关闭区状态状态。
15.一种操作存储装置的方法,所述方法包括:
从主机接收装置打开的状态转变请求;
响应于所述状态转变请求而执行非易失性存储器装置的活动区刷新操作,使得所述非易失性存储器装置的多个区当中的在紧接的前一断电之前具有活动状态的区在至少一个块中被处理为顺序可写状态;
基于在执行所述活动区刷新操作之后从所述主机接收的第一写请求,通过缓冲存储器接收要存储在所述多个区当中的目标区的目标块中的目标数据;
在所述写请求完成之前从所述主机接收断电请求;以及
基于所述断电请求将所述目标数据存储在所述非易失性存储器装置的失电保护块中,而不是存储在所述目标块中。
16.根据权利要求15所述的方法,其中,所述目标块是多级单元、三级单元和四级单元之一,并且
其中,所述失电保护块是单级单元。
17.一种存储控制器,包括:
缓冲存储器,其被配置为基于写请求从主机接收要存储在非易失性存储器装置的多个区当中的目标区的目标块中的第一目标数据;以及
处理电路,其被配置为:
从所述主机接收装置打开的状态转变请求,
响应于所述状态转变请求而执行所述非易失性存储器装置的活动区刷新操作,
允许所述缓冲存储器从所述主机接收所述第一目标数据,并且
当在所述写请求完成之前从所述主机接收到断电请求时,允许所述缓冲存储器将所述第一目标数据存储在所述非易失性存储器装置的失电保护块中,而不是存储在所述目标块,并且
其中,所述活动区刷新操作包括处理所述多个区当中的并且在紧接的前一断电之前处于活动状态的区,使得处理的区的至少一个块被配置为执行顺序写操作。
18.根据权利要求17所述的存储控制器,还包括:
区表,其被配置为与所述处理电路通信,并且管理指示所述多个区中的每一个的分配的块的多个区块信息;并且
其中,所述处理电路还被配置为管理指示所述第一目标数据的逻辑块地址的写指针。
19.根据权利要求17所述的存储控制器,其中,所述处理电路还被配置为:
基于在接收所述第一目标数据之后并且在接收所述断电请求之前的来自所述主机的写请求,允许所述缓冲存储器接收要存储在所述目标块中的第二目标数据;以及
当所述缓冲存储器填充有所述第一目标数据和所述第二目标数据时,允许所述缓冲存储器将所述第一目标数据和所述第二目标数据存储在所述目标块中,并且
其中,存储在所述目标块中的所述第一目标数据和所述第二目标数据在逻辑上和在物理上是顺序的。
20.根据权利要求17所述的存储控制器,其中,所述失电保护块具有高于所述目标块的可靠性。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2022-0011577 | 2022-01-26 | ||
KR10-2022-0060256 | 2022-05-17 | ||
KR1020220060256A KR20230115195A (ko) | 2022-01-26 | 2022-05-17 | 액티브 존 리프레시를 수행하는 스토리지 컨트롤러, 그것의 동작하는 방법, 및 그것을 포함하는 스토리지 장치의 동작하는 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116521060A true CN116521060A (zh) | 2023-08-01 |
Family
ID=87396472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310065909.4A Pending CN116521060A (zh) | 2022-01-26 | 2023-01-13 | 存储控制器、操作存储控制器和存储装置的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116521060A (zh) |
-
2023
- 2023-01-13 CN CN202310065909.4A patent/CN116521060A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9507711B1 (en) | Hierarchical FTL mapping optimized for workload | |
US8819358B2 (en) | Data storage device, memory system, and computing system using nonvolatile memory device | |
US9805799B2 (en) | Devices and methods of managing nonvolatile memory device having single-level cell and multi-level cell areas | |
CN107168886B (zh) | 数据存储装置及其操作方法 | |
US20160062885A1 (en) | Garbage collection method for nonvolatile memory device | |
CN110890113A (zh) | 存储设备及其操作方法 | |
TW201814542A (zh) | 具有包含靜態及動態單元之混合快取記憶體裝置及電子系統以及相關方法 | |
US20200293221A1 (en) | Storage device and computing device including storage device | |
TWI807674B (zh) | 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置 | |
CN111755039A (zh) | 在恢复进程期间减少存储器系统中单元干扰的设备及方法 | |
US11061614B2 (en) | Electronic apparatus having data retention protection and operating method thereof | |
CN113946283B (zh) | 存储器装置的分区命名空间中的部分区存储器单元处置 | |
CN115458013A (zh) | 存储装置及其操作方法 | |
US20230236765A1 (en) | Storage controller performing active zone refresh, method of operating storage controller, and method of operating storage device having storage controller | |
US11360885B2 (en) | Wear leveling based on sub-group write counts in a memory sub-system | |
CN111164694B (zh) | 存储器设备和用于存储器设备的易失性管理的方法 | |
KR20210157544A (ko) | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 | |
KR20210012123A (ko) | 메모리 시스템, 메모리 컨트롤러 및 동작 방법 | |
CN116521060A (zh) | 存储控制器、操作存储控制器和存储装置的方法 | |
CN114530173A (zh) | 存储器系统及其操作方法 | |
CN112416650A (zh) | 存储器控制器的操作方法、存储器控制器以及存储设备 | |
US20230236964A1 (en) | Storage controller deallocating memory block, method of operating the same, and method of operating storage device including the same | |
KR20230115195A (ko) | 액티브 존 리프레시를 수행하는 스토리지 컨트롤러, 그것의 동작하는 방법, 및 그것을 포함하는 스토리지 장치의 동작하는 방법 | |
CN116501655A (zh) | 将存储器块解除分配的存储控制器及其操作方法 | |
US11789861B2 (en) | Wear leveling based on sub-group write counts in a memory sub-system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |