CN114385413A - 存储器控制器及操作该存储器控制器的方法 - Google Patents
存储器控制器及操作该存储器控制器的方法 Download PDFInfo
- Publication number
- CN114385413A CN114385413A CN202110658619.1A CN202110658619A CN114385413A CN 114385413 A CN114385413 A CN 114385413A CN 202110658619 A CN202110658619 A CN 202110658619A CN 114385413 A CN114385413 A CN 114385413A
- Authority
- CN
- China
- Prior art keywords
- memory
- page
- pages
- controller
- data
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1417—Boot up procedures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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/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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
Abstract
本发明提供一种可以从突然断电(SPO)中恢复的存储器控制器及操作该存储器控制器的方法。存储器控制器可以控制包括多个存储块的存储器装置,每个存储块具有多个页面。存储器控制器可以包括:虚设编程控制器,被配置成在正对存储器装置的页面执行编程操作的同时发生SPO之后,控制用于从SPO中恢复的虚设编程操作;奇偶校验数据控制器,被配置成基于确定待执行虚设编程操作的页面,控制用于芯片修复解码的奇偶校验数据的重置和生成;以及有效数据控制器,被配置成基于待执行虚设编程操作的页面的数量,控制有效数据的移动。
Description
相关申请的交叉引用
本申请要求于2020年10月22日向韩国知识产权局提交的、申请号为10-2020-0137783的韩国专利申请的优先权,该韩国专利申请的全部公开内容通过引用并入本文。
技术领域
本公开的各个实施例总体涉及一种电子装置,并且更特别地,涉及一种存储器控制器及操作该存储器控制器的方法。
背景技术
存储装置是在诸如计算机、智能电话或智能平板的主机装置的控制下存储数据的装置。根据存储数据的装置,存储装置的示例包括将数据存储在磁盘中的、诸如硬盘驱动器(HDD)的装置以及将数据存储在半导体存储器,特别是非易失性存储器中的、诸如固态驱动器(SSD)或存储卡的装置。
存储装置可以包括存储数据的存储器装置和控制存储器装置中数据的存储的存储器控制器。这种存储器装置可以分类为易失性存储器和非易失性存储器。非易失性存储器的代表性示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、相变随机存取存储器(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)和铁电RAM(FRAM)。
发明内容
本公开的各个实施例涉及在突然断电的情况下有效地执行恢复操作的存储器控制器及操作该存储器控制器的方法。
本公开的实施例可以提供一种存储器控制器,该存储器控制器控制包括多个存储块的存储器装置,每个存储块具有多个页面。存储器控制器可以包括:虚设编程控制器,被配置成在正对从多个存储块中的一个存储块的多个页面之中选择的页面执行编程操作的同时发生突然断电之后,控制用于从突然断电中恢复的虚设编程操作;奇偶校验数据控制器,被配置成基于确定待执行虚设编程操作的页面,控制用于芯片修复(chipkill)解码的奇偶校验数据的重置和生成;以及有效数据控制器,被配置成基于待执行虚设编程操作的页面的数量,控制有效数据的移动。
本公开的实施例可以提供一种操作存储器控制器的方法,该存储器控制器控制包括多个存储块的存储器装置,每个存储块具有多个页面。该方法可以包括:感测在正对来自多个存储块的多个页面之中的页面执行编程操作的同时发生的突然断电;在感测到突然断电之后执行的恢复操作期间,确定来自多个存储块的多个页面之中的待执行虚设编程操作的页面;基于待执行虚设编程操作的页面,控制用于芯片修复解码的奇偶校验数据的重置和生成;并且基于待执行虚设编程操作的页面的数量,移动有效数据。
附图说明
图1是存储装置的框图。
图2示出了图1的存储器装置的结构。
图3示出了图2的存储器单元阵列的实施例。
图4示出了奇偶校验数据的生成和编程。
图5示出了基于发生突然断电之后执行的恢复操作的恢复过程。
图6示出了在保持芯片修复组的单元的同时对奇偶校验数据进行编程的过程。
图7示出了在保持芯片修复组的单元的同时生成奇偶校验数据的实施例。
图8示出了在改变芯片修复组的单元的同时生成奇偶校验数据的实施例。
图9示出了在保持芯片修复组的单元的同时生成奇偶校验数据的实施例。
图10示出了根据本公开的实施例的存储器控制器的操作。
图11示出了根据本公开的实施例的存储器控制器的操作。
图12示出了图1的存储器控制器的实施例。
图13示出了应用了根据本公开的实施例的存储装置的存储卡系统。
图14示出了应用了根据本公开的实施例的存储装置的固态驱动器(SSD)系统。
图15示出了应用了根据本公开的实施例的存储装置的用户系统。
具体实施方式
本说明书或申请中引入的本公开的实施例中的特定结构或功能描述仅用于描述本公开的实施例。实施例不应被解释为限于本说明书或申请中描述的实施例。
现在在下文中将参照描述了本公开的示意性实施例的附图更充分地描述本公开的各个实施例,以使本领域普通技术人员可以容易地实现本公开的技术构思。
图1是示出了存储装置50的框图。
存储装置50可以包括存储器装置100和存储器控制器200。
存储装置50可以是在诸如以下的主机300的控制下存储数据的装置:移动电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视(TV)、平板PC或车载式信息娱乐系统。
根据用于与主机300通信的主机接口,存储装置50可以被制造为各种类型的存储装置中的任意一种。例如,存储装置50可以被实施为以下中的任意一种:固态驱动器(SSD),多媒体卡(MMC)(诸如MMC、嵌入式MMC(eMMC)、尺寸减小的MMC(RS-MMC)或微型MMC),安全数字(SD)卡(诸如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)、相变随机存取存储器(PRAM)、磁阻RAM(MRAM)、铁电RAM(FRAM)或自旋转移力矩RAM(STT-RAM)。在本说明书中,为了便于描述,将在存储器装置100是NAND闪速存储器的假设下进行描述。
存储器装置100可以以二维(2D)阵列结构或三维(3D)阵列结构来实施。在下文中,尽管作为实施例描述了2D阵列结构,但是本公开不限于2D阵列结构。本公开还可以不仅应用于电荷存储层由导电浮栅(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,以便执行后台操作,诸如用于损耗均衡的编程操作和用于垃圾收集的编程操作。
在实施例中,可能发生存储器装置100的电源在操作期间瞬间断开的突然断电(SPO)。当在发生SPO之后重新接通电源时,可以执行SPO恢复操作。当在存储器装置100的编程操作期间发生SPO时,该编程操作可能无法正常完成,这可能导致不正确的数据被编程到存储器装置中。为了应对这种可能性,SPO恢复操作可以重新编程正确的数据,但将正确的数据编程到重新分配的存储块中,而不是发生SPO的存储块中。在本文件中,“发生SPO的页面”是指当发生SPO时正在执行编程操作的页面,“发生SPO的芯片修复组”是指包括发生SPO的页面的芯片修复组。
然而,当频繁发生SPO时,由于上述SPO恢复操作,存储块的使用可能增加,并且由于存储块的使用增加,存储器装置100的寿命可能减少。例如,由于在SPO恢复操作中使用重新分配的存储块,发生SPO的芯片修复组中包括的未编程页面的数量可能增加。此外,在SPO恢复操作中使用重新分配的存储块可能增加需要执行的块擦除的数量,从而减少存储器装置100的寿命。因此,本文提出一种进程,该进程通过将发生SPO的存储块中的数据移动到另一页面,即通过执行连续数据写入来增加存储器装置100的寿命。
在实施例中,在SPO的情况下,可以通过SPO恢复操作将发生SPO的芯片修复组中的有效数据移动到另一页面。此处,芯片修复组可以是生成用于芯片修复解码的奇偶校验数据的单元,并且芯片修复解码可以是在错误校正解码操作失败之后执行的校正操作。奇偶校验数据可以是与芯片修复组相对应的数据,并且可以基于特定单元来生成和编程。
每个芯片修复组可以包括各个存储块中位于相同位置(即,具有相同的地址偏移)的页面。例如,第一芯片修复组可以包括第一存储块的第1_1至第5_1页面以及第二存储块的第1_2至第5_2页面、第三存储块的第1_3至第5_3页面和第四存储块的第1_4至第5_4页面,第1_2至第5_2页面、第1_3至第5_3页面和第1_4至第5_4页面是与第1_1至第5_1页面位于相同位置的页面。因此,第一芯片修复组可以包括20个页面。
在实施例中,在将有效数据移动到另一页面之前,可以对发生SPO的芯片修复组执行虚设编程操作。此处,执行虚设编程操作的页面的数量可以变化。例如,针对具有芯片修复组中的页面的每个存储块,可以对仅一个页面进行虚设编程,或者可选地,针对每个存储块,可以对两个或更多个页面进行虚设编程。虚设编程操作可以包括使用随机、伪随机或预定值对页面执行编程操作。虚设编程操作可以比正常编程操作花费更少的时间,例如,在每个单元中存储不止一个位的页面中,虚设编程操作可以将仅一个位编程在每个单元中。
在实施例中,当虚设编程操作完成时,可以将发生SPO的芯片修复组中的有效数据移动到另一页面,并且可以恢复挂起的编程操作。此处,可以根据芯片修复组的大小来生成奇偶校验数据。
在实施例中,存储器控制器200可以包括虚设编程控制器210。虚设编程控制器210可以控制在将发生SPO的芯片修复组中的有效数据移动到另一页面之前执行的虚设编程操作。虚设编程控制器210可以控制存储器装置100,以便对根据发生SPO的页面的位置确定的页面执行虚设编程操作。
在示例中,虚设编程控制器210可以控制存储器装置100,以便对发生SPO的芯片修复组的剩余(即,当前尚未编程的)页面执行虚设编程操作。在其它示例中,虚设编程控制器210可以控制存储器装置100,以便对发生SPO的芯片修复组的一些页面执行虚设编程操作。
在实施例中,存储器控制器200可以包括奇偶校验数据控制器220。例如,可以通过以下生成芯片修复组的奇偶校验数据:将奇偶校验寄存器重置成初始值(诸如,零)后根据随后对芯片修复组的页面编程时编程到芯片修复组的页面中的各个数据来更新奇偶校验寄存器,然后在将数据编程到芯片修复组的其它页面中完成时,将奇偶校验寄存器的最终值编程到芯片修复组的奇偶校验页面中。奇偶校验数据控制器220可以基于在发生SPO之后执行的虚设编程操作控制奇偶校验数据的重置。例如,当虚设编程控制器210控制存储器装置100以便对芯片修复组的剩余页面执行虚设编程操作时,奇偶校验数据控制器220可以不重置芯片修复组的奇偶校验数据,然而当虚设编程控制器210控制存储器装置100以便对芯片修复组的剩余页面中的一些页面而非所有页面执行虚设编程操作时,奇偶校验数据控制器220可以重置奇偶校验数据。
在实施例中,存储器控制器200可以包括有效数据控制器230。有效数据控制器230可以控制存储器装置100,以便在虚设编程操作完成之后,移动在发生SPO之前编程的有效数据。可以将有效数据编程到发生SPO的芯片修复组中的页面,或编程到另一芯片修复组中的页面。
在实施例中,存储装置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可以控制至少两个存储器装置100。在这种情况下,存储器控制器200可以使用交错方案来控制至少两个存储器装置100,以提高操作性能。
主机300可以使用诸如以下的各种通信技术中的至少一种与存储装置50通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和低负载DIMM(LRDIMM)通信技术。
图2是示出了图1的存储器装置的结构的示图。
参照图2,存储器装置100可以包括存储器单元阵列110、外围电路120和控制逻辑130。
存储器单元阵列110包括多个存储块BLK1至BLKz。多个存储块BLK1至BLKz通过行线RL联接到行解码器121。存储块BLK1至BLKz中的每一个可以通过位线BL1至BLn联接到页面缓冲器组123。存储块BLK1至BLKz中的每一个可以包括多个存储器单元。在实施例中,多个存储器单元可以是非易失性存储器单元。联接到相同字线的存储器单元可以被定义为单个页面。因此,单个存储块可以包括多个页面。
行线RL可以包括至少一个源极选择线、多个字线和至少一个漏极选择线。
存储器单元阵列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可以响应于页面缓冲器控制信号PBSIGNALS而操作。例如,在读取操作或验证操作期间,第一至第n页面缓冲器PB1至PBn可以临时存储通过第一至第n位线BL1至BLn接收到的数据,或者可以感测位线BL1至BLn的电压或电流。
详细地,在编程操作期间,当将编程电压施加到所选择的字线时,第一至第n页面缓冲器PB1至PBn可以将通过输入/输出电路125接收到的数据DATA通过第一至第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、页面缓冲器控制信号PBSIGNALS和使能位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可以包括彼此串联联接在源极线SL与第一位线BL1之间的源极选择晶体管SST、多个存储器单元F1至F16和漏极选择晶体管DST。单个串ST可以包括至少一个源极选择晶体管SST和至少一个漏极选择晶体管DST,并且串ST中可以包括比附图中所示的存储器单元F1至F16更多的存储器单元。
源极选择晶体管SST的源极可以联接到源极线SL,并且漏极选择晶体管DST的漏极可以联接到第一位线BL1。存储器单元F1至F16可以串联联接在源极选择晶体管SST与漏极选择晶体管DST之间。不同串ST中包括的源极选择晶体管的栅极可以联接到源极选择线SSL,不同串ST中包括的漏极选择晶体管的栅极可以联接到漏极选择线DSL,并且存储器单元F1至F16的栅极可以分别联接到多个字线WL1至WL16。不同串ST中包括的存储器单元之中的、联接到相同字线的一组存储器单元可以被称为“物理页面:PPG”。因此,存储块BLKa可以包括与字线WL1至WL16的数量相同数量的物理页面PPG。
一个存储器单元可以存储一个数据位。这种单元通常被指定为“单层单元:SLC”。在SLC的情况下,一个物理页面PPG可以存储与一个逻辑页面LPG相对应的数据。与一个逻辑页面LPG相对应的数据可以包括与一个物理页面PPG中包括的存储器单元的数量相同数量的数据位。可选地,一个存储器单元可以存储两个或更多个数据位。这种单元通常被指定为“多层单元:MLC”。在MLC的情况下,一个物理页面PPG可以存储与两个或更多个逻辑页面LPG相对应的数据。
将在一个存储器单元中存储两个或更多个数据位的存储器单元称为多层单元(MLC)。然而,近来,随着在一个存储器单元中存储的数据位的数量的增加,多层单元(MLC)是指存储两个数据位的存储器单元,并且因此将存储三个数据位的存储器单元称为三层单元(TLC),并将存储四个数据位的存储器单元称为四层单元(QLC)。另外,已经开发了存储多个数据位的存储器单元方案,并且本实施例可以应用于一个存储器单元中存储两个或更多个数据位的存储器装置100。
在实施例中,存储块中的每一个可以具有三维(3D)结构。存储块中的每一个可以包括堆叠在衬底上的多个存储器单元。多个存储器单元可以沿+X方向、+Y方向和+Z方向布置。
图4是用于说明奇偶校验数据的生成和编程的示图。
参照图2和图4,图4示出了图2的存储器单元阵列(例如,图2的存储器单元阵列110)中包括的多个存储块BLK1至BLKz之中的第一至第四存储块BLK1至BLK4。
在实施例中,第一存储块BLK1可以包括第1_1至第15_1页面PAGE1_1至PAGE15_1,第二存储块BLK2可以包括第1_2至第15_2页面PAGE1_2至PAGE15_2,第三存储块BLK3可以包括第1_3至第15_3页面PAGE1_3至PAGE15_3,并且第四存储块BLK4可以包括第1_4至第15_4页面PAGE1_4至PAGE15_4。
在该图中,尽管每个存储块被示为由15个页面组成,但是在其它实施例中,每个存储块可以由更少的页面或更多的页面组成。
在实施例中,存储器装置(例如,图2的存储器装置100)可以对奇偶校验数据进行编程。奇偶校验数据可以是被编程以在错误校正解码操作失败之后恢复失败数据的数据。
奇偶校验数据可以通过对特定区域中的数据执行异或(XOR)运算来生成,并且可以被编程到特定存储块中的特定位置。此处,特定区域可以是芯片修复组,并且可以是与20个页面相对应的区域。而且,奇偶校验数据可以被编程到芯片修复组中的页面之中的、第四存储块BLK4的最后页面。可以不同地设置与每个芯片修复组相对应的页面的数量和奇偶校验数据待编程到的位置。
芯片修复组可以包括各个存储块中位于相同位置的页面。例如,第一芯片修复组CK_GROUP1可以包括第一存储块BLK1的第1_1至第5_1页面PAGE1_1至PAGE5_1以及第二存储块BLK2的第1_2至第5_2页面PAGE1_2至PAGE5_2、第三存储块BLK3的第1_3至第5_3页面PAGE1_3至PAGE5_3和第四存储块BLK4的第1_4至第5_4页面PAGE1_4至PAGE5_4,第1_2至第5_2页面PAGE1_2至PAGE5_2、第1_3至第5_3页面PAGE1_3至PAGE5_3和第1_4至第5_4页面PAGE1_4至PAGE5_4是与第1_1至第5_1页面PAGE1_1至PAGE5_1位于相同位置的页面。因此,第一芯片修复组CK_GROUP1中包括的页面的数量可以为20。
类似地,第二芯片修复组CK_GROUP2可以包括第一存储块BLK1的第6_1至第10_1页面PAGE6_1至PAGE10_1、第二存储块BLK2的第6_2至第10_2页面PAGE6_2至PAGE10_2、第三存储块BLK3的第6_3至第10_3页面PAGE6_3至PAGE10_3和第四存储块BLK4的第6_4至第10_4页面PAGE6_4至PAGE10_4,并且第二芯片修复组CK_GROUP2中包括的页面的数量可以为20。
类似地,第三芯片修复组CK_GROUP3可以包括第一存储块BLK1的第11_1至第15_1页面PAGE11_1至PAGE15_1、第二存储块BLK2的第11_2至第15_2页面PAGE11_2至PAGE15_2、第三存储块BLK3的第11_3至第15_3页面PAGE11_3至PAGE15_3和第四存储块BLK4的第11_4至第15_4页面PAGE11_4至PAGE15_4,并且第三芯片修复组CK_GROUP3中包括的页面的数量可以为20。
因此,在对第一芯片修复组CK_GROUP1中的页面执行编程操作期间,存储器控制器(例如,图1的存储器控制器200)可以通过对第一芯片修复组CK_GROUP1的除了第5_4页面PAGE5_4之外的页面中的所有数据执行异或(XOR)运算来生成奇偶校验数据,并且可以将所生成的奇偶校验数据编程到第四存储块BLK4的第5_4页面PAGE5_4。此后,当读取第一芯片修复组CK_GROUP1中的页面中的任意一个但对读取的页面的错误校正失败时,存储器控制器可以通过对从第一芯片修复组CK_GROUP1中的剩余页面读取的数据执行XOR运算来恢复在错误校正中失败的数据。
如同第一芯片修复组CK_GROUP1的情况,在对第二芯片修复组CK_GROUP2中的页面执行编程操作期间,存储器控制器(例如,图1的存储器控制器200)可以通过对第二芯片修复组CK_GROUP2的除了第10_4页面PAGE10_4之外的页面中的数据执行异或(XOR)运算来生成奇偶校验数据,并且可以将所生成的奇偶校验数据编程到第四存储块BLK4的第10_4页面PAGE10_4。而且,在对第三芯片修复组CK_GROUP3中的页面执行编程操作期间,存储器控制器可以通过对第三芯片修复组CK_GROUP3的除了第15_4页面PAGE15_4之外的页面中的数据执行XOR运算来生成奇偶校验数据,并且可以将所生成的奇偶校验数据编程到第四存储块BLK4的第15_4页面PAGE15_4。
此后,当读取第二芯片修复组CK_GROUP2中的页面中的任意一个但对读取的页面的错误校正失败时,存储器控制器(例如,图1的存储器控制器200)可以通过对从第二芯片修复组CK_GROUP2中的剩余页面读取的数据执行XOR运算来恢复在错误校正中失败的数据。此后,当读取第三芯片修复组CK_GROUP3中的页面中的任意一个但对读取的页面的错误校正失败时,存储器控制器可以通过对从第三芯片修复组CK_GROUP3中的剩余页面读取的数据执行XOR运算来恢复在错误校正中失败的数据。
图5是示出了基于发生突然断电之后执行的恢复操作的恢复过程的示图。
参照图4和图5,图5示出了图4的第一至第四存储块BLK1至BLK4。不同于图4,图5的存储器单元阵列进一步包括第五存储块BLK5,第五存储块BLK5可以是空闲块(即,自上次被擦除以来页面没有被编程的存储块)。
在图5中,将省略对与图4的组件基本相同的组件的描述。
在实施例中,当存储器装置(例如,图2的存储器装置100)在执行编程操作的过程中的同时,可能发生SPO。例如,当存储器装置对第四存储块BLK4的第7_4页面PAGE7_4执行编程操作的同时,可能发生SPO。
当在发生SPO之后重新接通电源时,可以执行SPO恢复操作。在图5的SPO恢复操作中,因为当正在对第四存储块BLK4中包括的页面中的任意一个执行编程操作的同时发生SPO,所以第四存储块BLK4被处理为坏块,并且可以将待编程到第四存储块BLK4的数据编程到除了第四存储块BLK4之外的另一空闲块。例如,可以将待编程到第四存储块BLK4的数据编程到作为空闲块的第五存储块BLK5。
进一步地,在SPO恢复操作期间,为了保持芯片修复组的单元(使得芯片修复组包括相同数量的页面),可以不对包括发生SPO的第7_4页面PAGE7_4的第二芯片修复组CK_GROUP2中的页面执行编程操作,而是可以对第三芯片修复组CK_GROUP3中从第11_1页面PAGE11_1开始的页面(再次针对先前编程到第二芯片修复组CK_GROUP2中的数据)执行编程操作。此处,存储器装置(例如,图2的存储器装置100)可以在将最初编程到第6_1页面PAGE6_1的数据编程到第11_1页面PAGE11_1(START_P)中的同时开始生成奇偶校验数据。
因为第四存储块BLK4被视为坏块,所以在SPO之前原本被编程到第四存储块BLK4的数据改为被编程到第五存储块BLK5,并且第四存储块BLK4的页面可以从第三芯片修复组CK_GROUP3中排除。进一步地,第五存储块BLK5的第11_5至第15_5页面PAGE11_5至PAGE15_5可以包括在第三芯片修复组CK_GROUP3中。
此外,可以将与第三芯片修复组CK_GROUP3相对应的奇偶校验数据,即,通过对第三芯片修复组CK_GROUP3的除了第15_5页面PAGE15_5之外的页面中的数据执行XOR运算而生成的数据,编程到第15_5页面PAGE15_5。
然而,如上所述,将第四存储块BLK4视为坏块并将原本被编程到第四存储块BLK4中的数据编程到第五存储块BLK5中(即基于新存储块的分配)的问题在于:存储块的消耗加速,并且因此损耗加速指数(WAI)或写入放大因子(WAF)增加。
因此,为了减小损耗加速指数(WAI)或写入放大因子(WAF),本公开提出了一种执行连续写入的进程。此处,针对连续写入操作,可以修改与芯片修复有关的代码。
图6示出了在保持芯片修复组的单元的同时对奇偶校验数据进行编程的过程。
参照图6,存储器控制器200可以包括虚设编程控制器210、奇偶校验数据控制器220和有效数据控制器230。
在实施例中,当存储器装置100正在执行编程操作的同时,可能发生SPO。当在发生SPO之后重新接通电源时,可以执行SPO恢复操作。
可以在不分配新存储块的情况下执行SPO恢复操作。例如,可以通过从发生SPO的页面之后的页面进行连续写入操作来执行恢复操作。在这种情况下,连续写入操作可以包括虚设编程操作。
当执行SPO恢复操作时,虚设编程控制器210可以从存储器控制器200的内部或外部接收SPO感测信号SPO_SENSE。虚设编程控制器210可以基于接收到的SPO感测信号SPO_SENSE执行用于SPO恢复的操作。
在实施例中,为了在不分配新存储块的情况下执行恢复操作,虚设编程控制器210可以将SPO信息请求SPO_INF_REQ输出到存储器装置100。SPO信息请求SPO_INF_REQ可以是针对关于发生SPO的页面的信息的请求。存储器装置100可以响应于SPO信息请求SPO_INF_REQ,将包括关于发生SPO的页面的信息的SPO信息SPO_INF输出到虚设编程控制器210和有效数据控制器230。
虚设编程控制器210可以基于SPO信息SPO_INF来识别发生SPO的页面。虚设编程控制器210可以控制存储器装置100,以便对发生SPO的页面之后的页面执行虚设编程操作。例如,虚设编程控制器210可以将虚设编程命令DUMMY_PGM_CMD输出到存储器装置100,并且存储器装置100可以响应于虚设编程命令DUMMY_PGM_CMD而对发生SPO的页面之后的页面执行虚设编程操作。
此处,虚设编程控制器210可以确定待执行虚设编程操作的页面,并且可以输出用于指示对所确定的页面执行虚设编程操作的虚设编程命令DUMMY_PGM_CMD。待执行虚设编程操作的页面可以基于芯片修复组中包括的页面之中成功编程的页面的数量来确定。芯片修复组可以是生成用于芯片修复解码的奇偶校验数据的单元,并且芯片修复解码可以是在错误校正解码操作(诸如针对芯片修复组中的页面的ECC操作)失败之后执行的校正操作。
当芯片修复组中包括的页面之中成功编程的页面的数量小于或等于参考数量时,虚设编程控制器210可以控制存储器装置100,以便对芯片修复组中的发生SPO的页面之后的页面之中的、每个存储块中的仅一个页面进行虚设编程。
然而,当芯片修复组中包括的页面之中成功编程的页面的数量大于参考数量时,虚设编程控制器210可以控制存储器装置100,以便对芯片修复组中的发生SPO的页面之后的所有页面进行虚设编程。也就是说,虚设编程控制器210可以控制存储器装置100,以便对芯片修复组中处于擦除状态的所有页面进行虚设编程。
在实施例中,虚设编程控制器210可以将虚设编程信息DUMMY_PGM_INF输出到奇偶校验数据控制器220和有效数据控制器230,虚设编程信息DUMMY_PGM_INF是关于待执行虚设编程操作的页面的信息。
在实施例中,奇偶校验数据控制器220可以基于虚设编程信息DUMMY_PGM_INF来控制奇偶校验数据的生成的开始或重置。奇偶校验数据可以是用于芯片修复解码的奇偶校验数据。
当虚设编程控制器210确定待对发生SPO的页面之后的页面之中的、每个存储块中的仅一个页面进行虚设编程时,奇偶校验数据控制器220可以在移动发生SPO的芯片修复组内的有效数据的同时,控制奇偶校验数据的重置。例如,奇偶校验数据控制器220可以将奇偶校验重置命令RESET_P_CMD输出到存储器装置100,并且存储器装置100可以在移动有效数据的同时,开始生成新的奇偶校验数据而不是先前生成的奇偶校验数据。
当虚设编程控制器210确定待对芯片修复组中的发生SPO的页面之后的所有页面进行虚设编程时,奇偶校验数据控制器220可以不执行用于生成或重置奇偶校验数据的单独操作。
在实施例中,有效数据控制器230可以控制存储器装置100,以便基于包括关于发生SPO的页面的信息的SPO信息SPO_INF和作为关于待执行虚设编程操作的页面的信息的虚设编程信息DUMMY_PGM_INF两者来对有效数据进行编程。
详细地,有效数据控制器230可以基于SPO信息SPO_INF来确定发生SPO的芯片修复组中的页面之中的存储有效数据的页面。进一步地,有效数据控制器230可以基于虚设编程信息DUMMY_PGM_INF来确定芯片修复组中的待执行虚设编程操作的页面。
此后,当对芯片修复组中的发生SPO的页面之后的所有页面进行虚设编程时,有效数据控制器230可以将有效页面编程命令VP_PGM_CMD输出到存储器装置100,以便将有效数据编程到随后的芯片修复组中的页面。
然而,当确定待对芯片修复组中的发生SPO的页面之后的页面之中的、每个存储块中的仅一个页面进行虚设编程时,有效数据控制器230可以将有效页面编程命令VP_PGM_CMD输出到存储器装置100,有效页面编程命令VP_PGM_CMD用于将有效数据编程到从执行虚设编程操作的页面之后的页面开始的页面。
图7是示出了在保持芯片修复组的单元的同时生成奇偶校验数据的实施例的示图,也就是说,其中芯片修复组中的页面的数量没有改变。
参照图4和图7,图7示出了图4的第一至第四存储块BLK1至BLK4。
在图7中,将省略对与图4的组件基本相同的组件的描述。
在实施例中,当存储器装置(例如,图6的存储器装置100)对第7_3页面PAGE7_3和第7_4页面PAGE7_4执行编程操作的同时,可能发生SPO。当在发生SPO之后重新接通电源时,可以执行SPO恢复操作。
此处,可以不分配新存储块来代替包括发生SPO的页面的存储块,并且可以通过连续写入操作来执行SPO恢复操作。在连续写入操作期间,可以保持芯片修复组的单元。也就是说,芯片修复组中包括的页面的数量可以保持为20。
在实施例中,在第7_3页面PAGE7_3和第7_4页面PAGE7_4中发生SPO之前,可以将有效数据编程到第6_1至第6_4页面PAGE6_1至PAGE6_4、第7_1页面PAGE7_1和第7_2页面PAGE7_2。
在实施例中,从存储器装置(例如,图6的存储器装置100)输出的SPO信息SPO_INF可以包括指示当正在对第7_3页面PAGE7_3和第7_4页面PAGE7_4执行编程操作的同时发生SPO的信息。因此,虚设编程控制器(例如,图6的虚设编程控制器210)可以基于SPO信息SPO_INF来确定有效数据被编程到的页面的数量是否小于或等于参考数量。
然而,为了保持芯片修复组的单元,虚设编程控制器(例如,图6的虚设编程控制器210)可以控制存储器装置(例如,图6的存储器装置100),以便对第二芯片修复组CK_GROUP2中的页面之中的发生SPO的页面之后的页面进行虚设编程。也就是说,虚设编程控制器(例如,图6的虚设编程控制器210)可以确定待对第二芯片修复组CK_GROUP2中的第8_1至第8_4页面PAGE8_1至PAGE8_4、第9_1至第9_4页面PAGE9_1至PAGE9_4和第10_1至第10_4页面PAGE10_1至PAGE10_4进行虚设编程。
当对第8_1至第8_4页面PAGE8_1至PAGE8_4、第9_1至第9_4页面PAGE9_1至PAGE9_4和第10_1至第10_4页面PAGE10_1至PAGE10_4执行的虚设编程操作完成时,有效数据控制器(例如,图6的有效数据控制器230)可以控制存储器装置(例如,图6的存储器装置100),以便将第6_1至第6_4页面PAGE6_1至PAGE6_4、第7_1页面PAGE7_1和第7_2页面PAGE7_2中的数据,即,有效数据移动到第三芯片修复组CK_GROUP3中的页面。尽管图7示出了第三芯片修复组CK_GROUP3紧随发生SPO的第二芯片修复组CK_GROUP2之后,但是实施例不限于此,并且第三芯片修复组CK_GROUP3可以是尚未使用(即,自上次被擦除以来所有页面没有被编程)的任意芯片修复组。
例如,有效数据控制器(例如,图6的有效数据控制器230)可以控制存储器装置(例如,图6的存储器装置100),以便将第6_1页面PAGE6_1中的数据移动到第11_1页面PAGE11_1,将第6_2页面PAGE6_2中的数据移动到第11_2页面PAGE11_2,将第6_3页面PAGE6_3中的数据移动到第11_3页面PAGE11_3,并且将第6_4页面PAGE6_4中的数据移动到第11_4页面PAGE11_4。进一步地,有效数据控制器230可以控制存储器装置,以便将第7_1页面PAGE7_1中的数据移动到第12_1页面PAGE12_1,并且将第7_2页面PAGE7_2中的数据移动到第12_2页面PAGE12_2。
当有效数据的移动完成时,存储器控制器(例如,图6的存储器控制器200)可以恢复由于发生SPO而挂起的编程操作。此处,由于发生SPO而挂起的编程操作可以从第12_3页面PAGE12_3恢复。
当以这种方式执行SPO恢复操作时,奇偶校验数据控制器(例如,图6的奇偶校验数据控制器220)不需要执行用于生成新的奇偶校验数据或重置先前生成的奇偶校验数据的单独操作。也就是说,因为对与第二芯片修复组CK_GROUP2相对应的奇偶校验数据编程到的第10_4页面PAGE10_4执行虚设编程操作,并且将编程到第二芯片修复组CK_GROUP2的数据和待编程到第二芯片修复组CK_GROUP2的数据重新编程到第三芯片修复组CK_GROUP3,所以可以将与第三芯片修复组CK_GROUP3相对应的奇偶校验数据编程到第15_4页面PAGE15_4。
图8是示出了在改变芯片修复组的单元的同时生成奇偶校验数据的实施例的示图,也就是说,芯片修复组中的一个中包括的页面的数量被改变。
参照图7和图8,图8示出了图7的第一至第四存储块BLK1至BLK4。然而,不同于图7,在图8中,第二芯片修复组CK_GROUP2的单元(即,第二芯片修复组CK_GROUP2中的页面的数量)可以被改变。
在图8中,将省略对与图7的组件基本相似的组件的描述。
在实施例中,当存储器装置(例如,图6的存储器装置100)对第7_3页面PAGE7_3和第7_4页面PAGE7_4执行编程操作的同时,可能发生SPO。当在发生SPO之后重新接通电源时,可以执行SPO恢复操作。
在实施例中,在发生SPO之前,可以将有效数据编程到第6_1至第6_4页面PAGE6_1至PAGE6_4、第7_1页面PAGE7_1和第7_2页面PAGE7_2。因此,虚设编程控制器(例如,图6的虚设编程控制器210)可以基于SPO信息SPO_INF来确定有效数据被编程到的页面的数量是否小于或等于参考数量。
在图7所示的示例中,假设参考数量为“7”。可以设置参考数量(以下等式中的“R”),使得在虚设编程操作之后剩余的未使用页面的数量至少足以将所有的有效数据与芯片修复组的奇偶校验数据一起存储在芯片修复组中。在其中芯片修复组为20个页面,当包含有效数据的页面的数量小于参考数量时对四个页面进行虚设编程操作,并且一个页面用于存储用于芯片修复操作的奇偶校验数据的所示示例中,参考数量为“7”。然而,在其中例如芯片修复组为28个页面的另一实施例中,参考数量可以为11。在其中每个存储块中可以进行虚设编程的一个页面在其各自存储块中都位于相同的相对位置(即,如图7所示,都位于相同行中)的一些实施例中,参考数量R可以设置成:
其中B是芯片修复组中包括的存储块的数量(因此是当包含有效数据的页面的数量小于参考数量时通过虚设编程操作编程的页面的最小数量),U是芯片修复组的单元(即,页面的数量),并且P是用于存储芯片修复组的奇偶校验数据的页面的数量(例如,1)。在其中每个存储块中可以进行虚设编程的一个页面紧随发生SPO的最后页面之后的其它实施例中,参考数量可以设置成:
因为第二芯片修复组CK_GROUP2中包括的页面之中的、有效数据被编程到的页面的数量为6,小于或等于参考数量“7”,所以虚设编程控制器(例如,图6的虚设编程控制器210)可以控制存储器装置(例如,图6的存储器装置100),使得对发生SPO的页面之后的页面之中的、每个存储块中的仅一个页面进行虚设编程。每个存储块中进行虚设编程的页面可以是紧随发生SPO的页面的相对位置之后的页面。例如,在存储块BLK3的页面PAGE7_3和存储块BLK4的页面PAGE7_4中发生SPO的图8所示的实施例中,对这些存储块中的这些页面之后的页面(存储块BLK3中的页面PAGE8_3和存储块BLK4中的页面PAGE8_4)进行虚设编程,并且还对其它存储块中具有与这些页面之后的页面相对应的相对位置的页面(存储块BLK1的页面PAGE8_1和存储块BLK2的页面PAGE8_2)进行虚设编程。
在其它实施例中,当第二芯片修复组CK_GROUP2中包括的页面之中的、有效数据被编程到的页面的数量大于参考数量时,虚设编程控制器可以控制存储器装置,以便如图7所示对第二芯片修复组CK_GROUP2中的页面之中的发生SPO的页面之后的所有页面进行虚设编程。
在实施例中,当第二芯片修复组CK_GROUP2中包括的页面之中的、有效数据被编程到的页面的数量小于或等于参考数量“7”时,可以对第7_4页面PAGE7_4之后的页面之中的、第一存储块BLK1的第8_1页面PAGE8_1、第二存储块BLK2的第8_2页面PAGE8_2、第三存储块BLK3的第8_3页面PAGE8_3和第四存储块BLK4的第8_4页面PAGE8_4执行虚设编程操作。
当对第一存储块BLK1的第8_1页面PAGE8_1、第二存储块BLK2的第8_2页面PAGE8_2、第三存储块BLK3的第8_3页面PAGE8_3和第四存储块BLK4的第8_4页面PAGE8_4执行的虚设编程操作完成时,第二芯片修复组CK_GROUP2的单元可以被改变。例如,尽管将每个芯片修复组中的页面的数量设置成作为默认值的20,但是在对第二芯片修复组CK_GROUP2中的页面之中的特定页面执行编程操作期间可能发生SPO,因此可以将虚设编程操作之后芯片修复组中的剩余页面的数量(在所示的示例中为8)设置成第二芯片修复组CK_GROUP2的单元。
例如,当虚设编程操作完成时,有效数据控制器(例如,图6的有效数据控制器230)可以控制存储器装置(例如,图6的存储器装置100),以便将第6_1页面PAGE6_1中的数据移动到第9_1页面PAGE9_1,将第6_2页面PAGE6_2中的数据移动到第9_2页面PAGE9_2,将第6_3页面PAGE6_3中的数据移动到第9_3页面PAGE9_3,并且将第6_4页面PAGE6_4中的数据移动到第9_4页面PAGE9_4。进一步地,有效数据控制器可以控制存储器装置,以便将第7_1页面PAGE7_1中的数据移动到第10_1页面PAGE10_1,并且将第7_2页面PAGE7_2中的数据移动到第10_2页面PAGE10_2。
奇偶校验数据控制器(例如,图6的奇偶校验数据控制器220)可以在有效数据控制器(例如,图6的有效数据控制器230)移动有效数据的同时重新生成奇偶校验数据并对奇偶校验数据进行编程。例如,当开始将数据移动到第9_1页面PAGE9_1时,可以从初始值(例如,0)开始重新生成第二芯片修复组CK_GROUP2的奇偶校验数据。在对第二芯片修复组CK_GROUP2的所有其它页面进行编程之后,可以将所生成的奇偶校验数据编程到第10_4页面PAGE10_4。
此处,可以将指示被编程到第8_1至第8_4页面PAGE8_1至PAGE8_4的数据是虚设数据的信息存储在存储器控制器(例如,图6的存储器控制器200)中的缓冲存储器中,并且可以在芯片修复解码期间读取所存储的信息。
当有效数据的移动完成时,存储器控制器(例如,图6的存储器控制器200)可以恢复由于发生SPO而挂起的编程操作。此处,由于发生SPO而挂起的编程操作可以从第10_3页面PAGE10_3恢复。注意的是,因为第10_4页面PAGE10_4用于保存第二芯片修复组CK_GROUP2的奇偶校验数据,所以可以将SPO之前本打算存储在第7_4页面PAGE7_4中的数据存储在除了第二芯片修复组CK_GROUP2之外的芯片修复组中。
根据上述过程,芯片修复组的单元被重新设置,因此可能出现指示芯片修复组的单元改变的信息和指示虚设数据被编程到的位置的信息应分开存储的问题。
图9是示出了在保持芯片修复组的单元的同时生成奇偶校验数据的实施例的示图。
参照图8和图9,图9示出了图8的第一至第四存储块BLK1至BLK4。然而,不同于图8,在图9中,第二芯片修复组CK_GROUP2的单元可以通过SPO恢复操作来保持。
在图9中,将省略对与图8的组件基本相似的组件的描述。
在实施例中,在开始对第二芯片修复组CK_GROUP2中的第6_1页面PAGE6_1的编程操作的同时,还可以生成与第二芯片修复组相对应的奇偶校验数据(START_P)。
然而,当存储器装置(例如,图6的存储器装置100)正在对第7_3页面PAGE7_3和第7_4页面PAGE7_4执行编程操作的同时,发生SPO。当重新接通电源时,可以执行SPO恢复操作。
不同于图8,当执行SPO恢复操作时,可以保持第二芯片修复组CK_GROUP2的单元。例如,在初始阶段,将每个芯片修复组中的页面的数量设置成作为默认值的20,并且即使发生SPO也可以保持该默认值。
为了保持第二芯片修复组CK_GROUP2的单元,当在对第一存储块BLK1的第8_1页面PAGE8_1、第二存储块BLK2的第8_2页面PAGE8_2、第三存储块BLK3的第8_3页面PAGE8_3和第四存储块BLK4的第8_4页面PAGE8_4的虚设编程操作完成之后将第6_1页面PAGE6_1中的数据移动到第9_1页面PAGE9_1时,奇偶校验数据控制器(例如,图6的奇偶校验数据控制器220)可以重置所生成的奇偶校验数据(RESET_P)。奇偶校验数据控制器(例如,图6的奇偶校验数据控制器220)可以在重置奇偶校验数据的同时控制新的奇偶校验数据的生成。进一步地,奇偶校验数据控制器(例如,图6的奇偶校验数据控制器220)可以存储关于开始生成新的奇偶校验数据的页面的位置的信息。
详细地,当将第6_1页面PAGE6_1中的数据移动到第9_1页面PAGE9_1时,奇偶校验数据控制器(例如,图6的奇偶校验数据控制器220)可以存储关于作为有效数据开始的位置的第9_1页面PAGE9_1的信息,并且在对第9_1页面PAGE9_1执行编程操作时,奇偶校验数据控制器可以开始重新生成奇偶校验数据。使用编程到第9_1页面PAGE9_1至第10_3页面PAGE10_3中的有效数据生成的重新生成的奇偶校验数据可以被编程到第10_4页面PAGE10_4。
当执行上述SPO恢复操作时,指示虚设数据被编程到的位置的信息和关于单元改变的芯片修复组的信息未被分开存储,从而可以提高SPO恢复操作的效率。
图10是示出了根据本公开的实施例的存储器控制器的操作的流程图。
参照图10,在步骤S1001,当在对所选择的页面执行编程操作期间发生SPO时,存储器控制器可以识别发生SPO的页面和有效数据被编程到的一个或多个有效页面。
详细地,存储器控制器可以识别芯片修复组中的多个页面之中的发生SPO的页面。此处,芯片修复组可以是生成用于芯片修复解码的奇偶校验数据的单元,并且芯片修复解码可以是在诸如对页面的ECC检查的错误校正解码操作失败之后执行的校正操作。奇偶校验数据可以是与芯片修复组相对应的数据,并且可以基于特定单元(即,芯片修复组中的页面的数量)来生成和编程。
当识别出芯片修复组中发生SPO的页面的位置时,存储器控制器可以识别有效页面,有效页面是芯片修复组中在芯片修复组中发生SPO之前被成功编程的页面。
在步骤S1003,存储器控制器可以基于芯片修复组中的有效页面的数量来输出一个或多个虚设编程命令。
例如,当有效页面的数量在预定范围内时,存储器控制器可以输出指示对芯片修复组中的每个存储块中的仅一个页面进行虚设编程的一个或多个虚设编程命令。当有效页面的数量不在预定范围内时,存储器控制器可以输出指示对芯片修复组中的尚未编程的所有页面进行虚设编程的一个或多个虚设编程命令,也就是说,存储器控制器可以控制存储器装置,以便对芯片修复组中处于擦除状态的所有页面进行虚设编程。
在步骤S1005,存储器控制器可以根据虚设编程的页面的数量来确定是否将重置奇偶校验数据。例如,当对每个存储块中的仅一个页面进行虚设编程时,存储器控制器可以确定将重置奇偶校验数据。然而,当对芯片修复组中的所有页面进行虚设编程时,存储器控制器可以确定将不重置奇偶校验数据。
在步骤S1007,存储器控制器可以将指示有效页面中的数据的移动的命令输出到存储器装置。有效页面可以指发生SPO的芯片修复组中的页面之中的、在发生SPO之前被成功编程的页面。此处,有效页面中的数据待移动到的位置可以是芯片修复组中虚设编程操作完成的页面之后的页面,或者可以是另一芯片修复组中的页面。
在步骤S1009,当有效页面中的所有数据都被移动时,存储器控制器可以恢复挂起的编程操作。也就是说,可以控制存储器装置,以便恢复由于发生SPO而挂起的编程操作。
图11是示出了根据本公开的实施例的存储器控制器的操作的流程图。
图11是示出了可以用于执行图10的步骤S1003的详细步骤的流程图。
在步骤S1101,存储器控制器可以检查发生SPO的芯片修复组中的有效页面的数量。有效页面可以指发生SPO的芯片修复组中的页面之中的、在发生SPO之前被成功编程的页面。
在步骤S1103,存储器控制器可以确定有效页面的数量是否小于或等于参考数量。例如,存储器控制器可以确定芯片修复组中包括的有效页面的数量是否小于或等于参考数量。参考数量可以被预设。
当有效页面的数量小于或等于参考数量(路径“是”)时,进程可以进行到步骤S1105,而当有效页面的数量大于参考数量(路径“否”)时,进程可以进行到步骤S1109。
当发生SPO的芯片修复组中包括的页面之中的、被成功编程的页面的数量小于或等于参考数量(路径“是”)时,即,当有效页面的数量小于或等于参考数量时,在步骤S1105,存储器控制器可以输出指示对每个存储块中的仅一个页面进行虚设编程的一个或多个命令。在这种情况下,可以在不对芯片修复组中的所有剩余页面进行虚设编程的情况下执行连续写入操作。
当对每个存储块中的仅一个页面执行的虚设编程操作完成时,在步骤S1107,存储器控制器可以确定芯片修复组的单元并且执行用于生成奇偶校验数据的操作。
例如,当确定芯片修复组的单元被改变时,存储器控制器可以存储指示虚设数据被编程到的位置的信息和关于芯片修复组的改变大小的信息。芯片修复组的改变大小可以对应于芯片修复组中的虚设编程的页面之后的页面的数量。而且,存储器控制器可以重置奇偶校验数据,以便生成与改变大小的芯片修复组相对应的奇偶校验数据。此后,当基于奇偶校验数据执行错误校正操作时,可以读取相应的信息(即,虚设编程的页面之后的页面)。
然而,当确定芯片修复组的单元不被改变时,存储器控制器可以在重置奇偶校验数据的同时控制新的奇偶校验数据的生成。此外,可以存储关于开始新的奇偶校验数据的生成的页面的位置的信息。
当发生SPO的芯片修复组中包括的页面之中的被成功编程的页面的数量不小于或等于参考数量(路径“否”)时,即,当有效页面的数量大于参考数量时,在步骤S1109,存储器控制器可以输出指示对芯片修复组中的尚未编程的所有页面进行虚设编程的一个或多个命令。在这种情况下,可以对发生SPO的页面之后的所有页面进行虚设编程。在这种情况下,可以在对芯片修复组中的所有剩余页面进行虚设编程之后执行连续写入操作。
图12是示出图1的存储器控制器200的实施例的示图。
存储器控制器1000联接到主机和存储器装置。响应于从主机接收到的请求,存储器控制器1000可以访问存储器装置。例如,存储器控制器1000可以被配置成控制存储器装置的写入操作、读取操作、擦除操作和后台操作。存储器控制器1000可以提供存储器装置与主机之间的接口。存储器控制器1000可以运行用于控制存储器装置的固件。
存储器控制器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。
在实施例中,当在存储器装置(例如,图1的存储器装置100)执行编程操作的同时发生SPO时,处理器1010可以控制SPO恢复操作。
详细地,在SPO恢复操作期间,处理器1010可以识别芯片修复组中发生SPO的页面,并且可以识别芯片修复组中在发生SPO之前已经有效地完成编程操作的有效页面。芯片修复组可以是生成用于芯片修复解码的奇偶校验数据的单元,并且芯片修复解码可以是在错误校正解码操作失败之后执行的校正操作。奇偶校验数据可以是与芯片修复组相对应的数据,并且可以基于特定单元来生成和编程。
此后,处理器1010可以基于有效页面的数量确定待执行虚设编程操作的页面。例如,当有效页面的数量小于或等于参考数量时,处理器1010可以确定待对每个存储块中的仅一个页面进行虚设编程,而当有效页面的数量大于参考数量时,处理器1010可以确定待对芯片修复组中的所有页面进行虚设编程。
当虚设编程操作完成时,处理器1010可以执行有效页面中的数据的连续写入。也就是说,处理器1010可以控制存储器装置(例如,图1的存储器装置100),以便将有效页面中的数据编程到从芯片修复组中执行虚设编程操作的最终页面之后的页面开始的页面。
当执行连续写入操作时,处理器1010可以控制奇偶校验数据的生成。例如,当对芯片修复组中的所有页面进行虚设编程时,芯片修复组的单元不改变,因此处理器1010可以不执行用于生成奇偶校验数据的单独操作。
然而,当对芯片修复组中的一些页面进行虚设编程时,芯片修复组的单元可能改变,也可能不改变。
详细地,当芯片修复组的单元改变时,处理器1010可以存储指示虚设数据被编程到的位置的信息和关于芯片修复组的改变大小的信息。而且,存储器控制器可以重置奇偶校验数据,以便生成与改变大小的芯片修复组相对应的奇偶校验数据。
当芯片修复组的单元不改变时,处理器1010可以在重置奇偶校验数据的同时控制新的奇偶校验数据的生成。此外,可以存储关于开始新的奇偶校验数据的生成的页面的位置的信息。
图13是示出应用了根据本公开的实施例的存储装置的存储卡系统的框图。
参照图13,存储卡系统2000可以包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100联接到存储器装置2200。存储器控制器2100可以访问存储器装置2200。例如,存储器控制器2100可以控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100可以提供存储器装置2200与主机之间的接口。存储器控制器2100可以运行用于控制存储器装置2200的固件。存储器装置2200可以以与上面参照图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)。
在实施例中,当在存储器装置2200执行编程操作的同时发生SPO时,存储器控制器2100可以控制SPO恢复操作。
详细地,在SPO恢复操作期间,存储器控制器2100可以识别芯片修复组中发生SPO的页面,并且可以识别芯片修复组中在发生SPO之前已经有效地完成编程操作的有效页面。芯片修复组可以是生成用于芯片修复解码的奇偶校验数据的单元,并且芯片修复解码可以是在错误校正解码操作失败之后执行的校正操作。奇偶校验数据可以是与芯片修复组相对应的数据,并且可以基于特定单元来生成和编程。
此后,存储器控制器2100可以基于有效页面的数量确定待执行虚设编程操作的页面。例如,当有效页面的数量小于或等于参考数量时,存储器控制器2100可以确定待对每个存储块中的仅一个页面进行虚设编程,而当有效页面的数量大于参考数量时,存储器控制器2100可以确定待对芯片修复组中的所有页面(或者,在实施例中,自上次被擦除以来尚未编程的所有页面)进行虚设编程。
当虚设编程操作完成时,存储器控制器2100可以执行有效页面中的数据的连续写入。也就是说,存储器控制器2100可以控制存储器装置2200,以便将有效页面中的数据编程到从执行虚设编程操作的最终页面之后的页面开始的页面。待编程的页面可以在该芯片修复组中,也可以在另一芯片修复组中。
当执行连续写入操作时,存储器控制器2100可以控制奇偶校验数据的生成。例如,当对芯片修复组中的所有页面进行虚设编程时,芯片修复组的单元不改变,因此存储器控制器2100可以不执行用于生成奇偶校验数据的单独操作。
然而,当对芯片修复组中的一些页面进行虚设编程时,芯片修复组的单元可能改变,也可能不改变。
详细地,当芯片修复组的单元改变时,存储器控制器2100可以存储指示虚设数据被编程到的位置的信息和关于芯片修复组的改变大小的信息。而且,存储器控制器2100可以重置奇偶校验数据,以便生成与改变大小的芯片修复组相对应的奇偶校验数据。
当芯片修复组的单元不改变时,存储器控制器2100可以在重置奇偶校验数据的同时控制新的奇偶校验数据的生成。此外,可以存储关于开始新的奇偶校验数据的生成的页面的位置的信息。
图14是示出应用了根据本公开的实施例的存储装置的固态驱动器(SSD)系统3000的示例的框图。
SSD系统3000可以包括主机3100和SSD 3200。SSD 3200可以通过信号连接器3001与主机3100交换信号SIG,并且可以通过电源连接器3002接收电力PWR。SSD 3200可以包括SSD控制器3210、多个非易失性存储器3221至322n、辅助电源3230和缓冲存储器3240。
在实施例中,SSD控制器3210可以执行上面参照图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。辅助电源3230可以被供应来自主机3100的电力PWR,并且可以被充电。当来自主机3100的电力的供应不连续提供时,辅助电源3230可以供应SSD3200的电力。在实施例中,辅助电源3230可以位于SSD 3200内部,或者位于SSD 3200外部。例如,辅助电源3230可以设置在主板中,并且可以向SSD3200供应辅助电力。
缓冲存储器3240用作SSD 3200的缓冲存储器。例如,缓冲存储器3240可以临时存储从主机3100接收到的数据或从多个非易失性存储器3221至322n接收到的数据,或者可以临时存储多个非易失性存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可以包括诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的易失性存储器,或诸如FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器。
在实施例中,当在多个非易失性存储器3221至322n中的任意一个执行编程操作的同时发生SPO时,SSD控制器3210可以控制SPO恢复操作。
详细地,在SPO恢复操作期间,SSD控制器3210可以识别芯片修复组中发生SPO的页面,并且可以识别芯片修复组中在发生SPO之前已经有效地完成编程操作的有效页面。芯片修复组可以是生成用于芯片修复解码的奇偶校验数据的单元,并且芯片修复解码可以是在错误校正解码操作失败之后执行的校正操作。奇偶校验数据可以是与芯片修复组相对应的数据,并且可以基于特定单元来生成和编程。
此后,SSD控制器3210可以基于有效页面的数量确定待执行虚设编程操作的页面。例如,当有效页面的数量小于或等于参考数量时,SSD控制器3210可以确定待对芯片修复组中使用的每个存储块中的仅一个页面进行虚设编程,而当有效页面的数量大于参考数量时,SSD控制器3210可以确定待对芯片修复组中的尚未编程的所有页面进行虚设编程。
当虚设编程操作完成时,SSD控制器3210可以执行有效页面中的数据的连续写入。也就是说,SSD控制器3210可以控制多个非易失性存储器3221至322n,以便将有效页面中的数据编程到从执行虚设编程操作的最终页面之后的页面开始的页面。待编程的页面可以在该芯片修复组中,也可以在另一芯片修复组中。
当执行连续写入操作时,SSD控制器3210可以控制奇偶校验数据的生成。例如,当对芯片修复组中的所有页面进行虚设编程时,芯片修复组的单元不改变,因此SSD控制器3210可以不执行用于生成奇偶校验数据的单独操作。
然而,当对芯片修复组中的一些页面进行虚设编程时,芯片修复组的单元可能改变,也可能不改变。
详细地,当芯片修复组的单元改变时,SSD控制器3210可以存储指示虚设数据被编程到的位置的信息和关于芯片修复组的改变大小的信息。而且,SSD控制器3210可以重置奇偶校验数据,以便生成与改变大小的芯片修复组相对应的奇偶校验数据。
当芯片修复组的单元不改变时,SSD控制器3210可以在重置奇偶校验数据的同时控制新的奇偶校验数据的生成。此外,可以存储关于开始新的奇偶校验数据的生成的页面的位置的信息。
图15是示出应用了根据本公开的实施例的存储装置的用户系统的框图。
参照图15,用户系统4000可以包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可以运行用户系统4000中包括的组件、操作系统(OS)或用户程序。在实施例中,应用处理器4100可以包括用于控制用户系统4000中包括的组件的控制器、接口、图形引擎等。应用处理器4100可以作为片上系统(SoC)被提供。
存储器模块4200可以用作用户系统4000的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器模块4200可以包括诸如DRAM、SDRAM、DDR SDRAM、DDR2SDRAM、DDR3SDRAM、LPDDR SDARM、LPDDR2SDRAM和LPDDR3SDRAM的易失性RAM或者诸如PRAM、ReRAM、MRAM和FRAM的非易失性RAM。在实施例中,应用处理器4100和存储器模块4200可以基于层叠封装(POP)进行封装,然后可以作为单个半导体封装被提供。
网络模块4300可以与外部装置通信。例如,网络模块4300可以支持诸如以下的无线通信:码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、WiMAX、WLAN、UWB、蓝牙或WiFi通信。在实施例中,网络模块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、扬声器和监视器的用户输出接口。
在实施例中,当在存储模块4400执行编程操作的同时发生SPO时,应用处理器4100可以控制SPO恢复操作。
详细地,在SPO恢复操作期间,应用处理器4100可以识别芯片修复组中发生SPO的页面,并且可以识别芯片修复组中在发生SPO之前已经有效地完成编程操作的有效页面。芯片修复组可以是生成用于芯片修复解码的奇偶校验数据的单元,并且芯片修复解码可以是在错误校正解码操作失败之后执行的校正操作。奇偶校验数据可以是与芯片修复组相对应的数据,并且可以基于特定单元来生成和编程。
此后,应用处理器4100可以基于有效页面的数量确定待执行虚设编程操作的页面。例如,当有效页面的数量小于或等于参考数量时,应用处理器4100可以确定待对芯片修复组使用的每个存储块中的仅一个页面进行虚设编程,而当有效页面的数量大于参考数量时,应用处理器4100可以确定待对芯片修复组中的尚未编程的所有页面进行虚设编程。
当虚设编程操作完成时,应用处理器4100可以执行有效页面中的数据的连续写入。也就是说,应用处理器4100可以控制存储模块4400,以便将有效页面中的数据编程到从执行虚设编程操作的最终页面之后的页面开始的页面。待编程的页面可以在该芯片修复组中,也可以在另一芯片修复组中。
当执行连续写入操作时,应用处理器4100可以控制奇偶校验数据的生成。例如,当对芯片修复组中的所有页面进行虚设编程时,芯片修复组的单元不改变,因此应用处理器4100可以不执行用于生成奇偶校验数据的单独操作。
然而,当对芯片修复组中的一些页面进行虚设编程时,芯片修复组的单元可能改变,也可能不改变。
详细地,当芯片修复组的单元改变时,应用处理器4100可以存储指示虚设数据被编程到的位置的信息和关于芯片修复组的改变大小的信息。而且,应用处理器4100可以重置奇偶校验数据,以便生成与改变大小的芯片修复组相对应的奇偶校验数据。
当芯片修复组的单元不改变时,应用处理器4100可以在重置奇偶校验数据的同时控制新的奇偶校验数据的生成。此外,可以存储关于开始新的奇偶校验数据的生成的页面的位置的信息。
根据本公开,在突然断电的情况下,在保持生成奇偶校验数据的单元的同时,在执行虚设编程操作之后重置奇偶校验数据,从而可以防止不必要的存储块消耗。
Claims (20)
1.一种存储器控制器,所述存储器控制器控制包括多个存储块的存储器装置,每个存储块具有多个页面,所述存储器控制器包括:
虚设编程控制器,在正对从所述多个存储块中的一个存储块的多个页面之中选择的页面执行编程操作的同时发生突然断电之后,控制用于从所述突然断电中恢复的虚设编程操作;
奇偶校验数据控制器,基于确定待执行所述虚设编程操作的页面,控制用于芯片修复解码的奇偶校验数据的重置和生成;以及
有效数据控制器,基于待执行所述虚设编程操作的页面的数量,控制有效数据的移动。
2.根据权利要求1所述的存储器控制器,
其中根据所述多个存储块的多个页面是否位于所述多个存储块中的相同位置,将所述多个存储块的多个页面划分为多个组,每个组包括来自所述多个存储块中的每个存储块的相应的多个页面,
其中所述虚设编程控制器确定所述多个组之中的第一组中包括的有效页面的数量,所述第一组包括发生所述突然断电的页面,并且
其中所述有效页面是在发生所述突然断电之前有效地完成所述编程操作的页面。
3.根据权利要求2所述的存储器控制器,其中所述虚设编程控制器通过将所述有效页面的数量与参考数量进行比较,确定待执行所述虚设编程操作的页面。
4.根据权利要求3所述的存储器控制器,其中当所述有效页面的数量大于所述参考数量时,所述虚设编程控制器控制所述存储器装置,以便对所述第一组中包括的处于擦除状态的所有页面进行虚设编程。
5.根据权利要求4所述的存储器控制器,其中:
当所述虚设编程操作完成时,所述有效数据控制器控制所述存储器装置,以便将所述有效页面中的数据重新编程到从执行所述虚设编程操作的最终页面之后的页面开始的页面,并且
所述奇偶校验数据控制器执行控制,使得当所述有效页面中的数据被移动时开始生成所述奇偶校验数据。
6.根据权利要求3所述的存储器控制器,其中当所述有效页面的数量小于或等于所述参考数量时,所述虚设编程控制器控制所述存储器装置,以便对发生所述突然断电的页面之后的页面之中的、所述多个存储块中的每个存储块中的仅一个页面进行虚设编程。
7.根据权利要求6所述的存储器控制器,其中所述奇偶校验数据控制器在所述虚设编程操作完成之后确定所述第一组的大小是否待被保持以及所述奇偶校验数据是否待重置。
8.根据权利要求7所述的存储器控制器,其中当所述第一组的大小将改变时,所述奇偶校验数据控制器存储指示虚设编程的页面的位置的信息和关于所述第一组的改变大小的信息。
9.根据权利要求8所述的存储器控制器,其中当执行所述芯片修复解码时,所述奇偶校验数据控制器输出指示所述虚设编程的页面的位置的信息和关于所述第一组的改变大小的信息。
10.根据权利要求7所述的存储器控制器,其中当所述第一组的大小待被保持时,所述奇偶校验数据控制器重置所述奇偶校验数据。
11.根据权利要求10所述的存储器控制器,其中所述奇偶校验数据控制器控制所述存储器装置,以便在所述奇偶校验数据被重置之后生成新的奇偶校验数据,并且存储关于开始生成所述新的奇偶校验数据的页面的位置的信息。
12.一种操作存储器控制器的方法,所述存储器控制器控制包括多个存储块的存储器装置,每个存储块具有多个页面,所述方法包括:
感测在正对来自所述多个存储块的多个页面之中的页面执行编程操作的同时发生的突然断电;
在感测到所述突然断电之后执行的恢复操作期间,确定来自所述多个存储块的多个页面之中的待执行虚设编程操作的页面;
基于待执行所述虚设编程操作的页面,控制用于芯片修复解码的奇偶校验数据的重置和生成;并且
基于待执行所述虚设编程操作的页面的数量,移动有效数据。
13.根据权利要求12所述的方法,
其中根据所述多个存储块的多个页面是否位于所述多个存储块中的相同位置,将所述多个存储块的多个页面划分为多个组,每个组包括来自所述多个存储块中的每个存储块的相应的多个页面,
其中确定待执行虚设编程操作的页面包括:确定所述多个组之中的第一组中包括的有效页面的数量,所述第一组包括发生所述突然断电的页面,并且
其中所述有效页面是在发生所述突然断电之前有效地完成所述编程操作的页面。
14.根据权利要求13所述的方法,其中确定待执行虚设编程操作的页面包括:
当所述有效页面的数量大于参考数量时,确定待对所述第一组中包括的处于擦除状态的所有页面进行虚设编程。
15.根据权利要求14所述的方法,
其中移动有效数据包括:控制所述存储器装置,以便将所述有效页面中的数据重新编程到从执行所述虚设编程操作的最终页面之后的页面开始的页面,并且
其中控制奇偶校验数据的重置和生成包括:当重新编程所述有效页面中的数据时开始生成所述奇偶校验数据。
16.根据权利要求13所述的方法,其中确定待执行虚设编程操作的页面包括:
当所述有效页面的数量小于或等于参考数量时,确定待对发生所述突然断电的页面之后的页面之中的、所述多个存储块中的每个存储块中的仅一个页面进行虚设编程。
17.根据权利要求13所述的方法,其中控制奇偶校验数据的重置和生成包括:在所述虚设编程操作完成之后确定所述第一组的大小是否待被保持以及所述奇偶校验数据是否待重置。
18.根据权利要求17所述的方法,进一步包括:
当所述第一组的大小将改变时,存储指示虚设编程的页面的位置的信息和关于所述第一组的改变大小的信息。
19.根据权利要求17所述的方法,其中控制奇偶校验数据的重置和生成包括:
当所述第一组的大小待被保持时,重置所述奇偶校验数据。
20.根据权利要求19所述的方法,进一步包括:
控制所述存储器装置,以便在所述奇偶校验数据被重置之后生成新的奇偶校验数据,并且
存储关于开始生成所述新的奇偶校验数据的页面的位置的信息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2020-0137783 | 2020-10-22 | ||
KR1020200137783A KR20220053374A (ko) | 2020-10-22 | 2020-10-22 | 메모리 컨트롤러 및 그 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114385413A true CN114385413A (zh) | 2022-04-22 |
Family
ID=81194521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110658619.1A Withdrawn CN114385413A (zh) | 2020-10-22 | 2021-06-04 | 存储器控制器及操作该存储器控制器的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11586370B2 (zh) |
KR (1) | KR20220053374A (zh) |
CN (1) | CN114385413A (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9361955B2 (en) * | 2010-01-28 | 2016-06-07 | Hewlett Packard Enterprise Development Lp | Memory access methods and apparatus |
KR102272228B1 (ko) * | 2014-05-13 | 2021-07-06 | 삼성전자주식회사 | 불휘발성 메모리 장치, 그것을 포함하는 저장 장치 및 그것의 동작 방법 |
JP7023103B2 (ja) * | 2017-12-22 | 2022-02-21 | キオクシア株式会社 | メモリシステム及び制御方法 |
TWI645404B (zh) * | 2017-12-28 | 2018-12-21 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體操作方法 |
KR102590886B1 (ko) | 2018-10-30 | 2023-10-19 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR102610395B1 (ko) * | 2019-01-22 | 2023-12-05 | 삼성전자주식회사 | 비휘발성 메모리 장치를 포함하는 메모리 시스템 |
US11294579B2 (en) * | 2020-06-18 | 2022-04-05 | Western Digital Technologies, Inc. | Mode handling in multi-protocol devices |
US20220066651A1 (en) * | 2020-08-31 | 2022-03-03 | Micron Technology, Inc. | Asychronous power loss handling using dummy writes in memory devices |
-
2020
- 2020-10-22 KR KR1020200137783A patent/KR20220053374A/ko unknown
-
2021
- 2021-04-26 US US17/240,859 patent/US11586370B2/en active Active
- 2021-06-04 CN CN202110658619.1A patent/CN114385413A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US20220129180A1 (en) | 2022-04-28 |
KR20220053374A (ko) | 2022-04-29 |
US11586370B2 (en) | 2023-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111352855B (zh) | 具有提高的映射更新速度的存储装置及其操作方法 | |
US11119950B2 (en) | Storage device and method of operating the same | |
CN111258793A (zh) | 存储器控制器及其操作方法 | |
US11543986B2 (en) | Electronic system including host, memory controller and memory device and method of operating the same | |
CN112463664A (zh) | 存储装置及其操作方法 | |
CN112988049A (zh) | 存储装置及其操作方法 | |
CN113377687A (zh) | 存储器控制器及其操作方法 | |
CN111105836A (zh) | 存储装置及其操作方法 | |
CN114300033A (zh) | 存储装置及其操作方法 | |
US11194732B2 (en) | Storage device and method of operating the same | |
US20200264982A1 (en) | Memory controller and method of operating the same | |
CN111258931A (zh) | 存储器控制器及操作该存储器控制器的方法 | |
US11036586B2 (en) | Storage device and operating method thereof | |
US11636899B2 (en) | Memory device and method of operating the same | |
CN114489467A (zh) | 存储器控制器及其操作方法 | |
CN114582399A (zh) | 存储器装置及其操作方法 | |
CN113342708A (zh) | 存储器控制器及其操作方法 | |
CN112199037A (zh) | 存储器控制器及其操作方法 | |
CN111752470A (zh) | 存储器控制器及其操作方法 | |
CN112447234A (zh) | 存储器控制器及其操作方法 | |
US11586370B2 (en) | Memory controller and method of operating the same | |
US11500768B2 (en) | Storage device performing garbage collection and method of operating the same | |
US11276477B2 (en) | Memory controller and operating method thereof | |
CN110737403B (zh) | 存储装置及操作该存储装置的方法 | |
CN112015588B (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220422 |