CN110737403B - 存储装置及操作该存储装置的方法 - Google Patents
存储装置及操作该存储装置的方法 Download PDFInfo
- Publication number
- CN110737403B CN110737403B CN201910181711.6A CN201910181711A CN110737403B CN 110737403 B CN110737403 B CN 110737403B CN 201910181711 A CN201910181711 A CN 201910181711A CN 110737403 B CN110737403 B CN 110737403B
- Authority
- CN
- China
- Prior art keywords
- memory
- page
- erase
- pages
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
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/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
- 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/1012—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 using codes or arrangements adapted for a specific type of error
- G06F11/1016—Error in accessing a memory location, i.e. addressing error
-
- 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
-
- 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/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
- 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/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- 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/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本公开涉及一种电子装置。一种存储块使用效率提高的存储装置包括:多个存储块,多个存储块中的每一个包括存储数据的多个页面;擦除页面储存器,存储与多个存储块之中的牺牲块中的擦除页面有关的擦除页面信息;以及坏块控制器,基于擦除页面信息,利用擦除页面中的一个替换发生了编程失败的失败页面,该失败页面是多个存储块中除牺牲块之外的一个存储块中的多个页面中的一个。
Description
相关申请的交叉引用
本申请要求于2018年7月18日提交的申请号为10-2018-0083667的韩国专利申请的优先权,该韩国专利申请的全部公开内容通过引用整体并入本文。
技术领域
本发明的各个实施例总体涉及一种电子装置。特别地,实施例涉及一种存储装置及操作该存储装置的方法。
背景技术
存储装置可响应于诸如计算机、智能电话和智能平板的主机装置的控制来存储数据。存储装置的示例包括用于将数据存储在磁盘中的装置,诸如硬盘驱动器(HDD),以及用于将数据存储在半导体存储器中,特别是存储在非易失性存储器中的装置,诸如固态驱动器(SSD)或存储卡。
存储装置可包括存储数据的存储器装置和控制存储器装置的存储器控制器。存储器装置可以是易失性存储器或非易失性存储器。非易失性存储器的示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)以及铁电RAM(FRAM)。
发明内容
各个实施例涉及一种具有存储块使用效率的存储装置及操作该存储装置的方法。
根据实施例,一种存储装置可包括:多个存储块,多个存储块中的每一个包括存储数据的多个页面;擦除页面储存器,被配置成存储与多个存储块之中的牺牲块中的擦除页面有关的擦除页面信息;以及坏块控制器,被配置成基于擦除页面信息,利用擦除页面中的一个替换发生了编程失败的失败页面,该失败页面是多个存储块中除牺牲块之外的一个存储块中的多个页面中的一个。
根据实施例,一种存储装置可包括:多个存储块,多个存储块中的每一个包括存储数据的多个页面;坏块控制器,被配置成存储多个存储块之中发生了至少两次编程失败的坏块中的每一个中的擦除页面的数量,并且基于坏块中的每一个中的擦除页面的数量将坏块中的一个确定为牺牲块;以及擦除页面储存器,被配置成存储与牺牲块中的擦除页面有关的擦除页面信息。
根据实施例,一种存储装置可包括:存储器装置,包括多个存储块,多个存储块中的每一个包括多个页面;以及控制器,被配置成:控制存储器装置以执行编程操作;将多个存储块之中首先变坏的块(第一坏块)确定为牺牲块;存储与第一坏块的正常页面有关的信息,该正常页面不包括编程通过页面和编程失败页面;基于所存储的信息,利用正常页面中的一个替换在第一坏块之后变坏的块的编程失败页面;并且生成对应于编程失败页面的逻辑地址与正常页面中的一个的物理地址之间的映射信息。
根据实施例,一种操作存储装置的方法可包括:对多个存储块中包括的多个页面执行编程操作;将多个存储块之中发生了编程失败的坏块确定为牺牲块;存储与牺牲块中的擦除页面有关的擦除页面信息;并且基于该擦除页面信息,利用擦除页面中的一个替换多个存储块中除牺牲块之外的一个存储块中的页面之中发生了编程失败的失败页面。
附图说明
图1是示出根据实施例的存储装置的框图;
图2是示出存储器控制器处理编程失败的操作的示图;
图3是示出图1的存储器装置的框图;
图4是示出在存储器装置中通过擦除页面来替换发生了编程失败的页面的方法的示图;
图5是示出在存储器装置中发生了编程失败时逻辑地址与物理地址之间的映射信息的示图;
图6是示出根据实施例的存储在擦除页面储存器中的擦除页面信息的示图;
图7是示出根据擦除页面的数量确定牺牲块的方法的示图;
图8是示出根据实施例的存储器装置和存储器控制器的操作的流程图;
图9是示出根据实施例的存储器装置和存储器控制器的操作的流程图;
图10是示出根据实施例的存储器控制器的示图;
图11是示出应用根据实施例的存储装置的存储卡系统的框图;
图12是示出应用根据实施例的存储装置的固态驱动器(SSD)系统的示例的框图;以及
图13是示出应用根据实施例的存储装置的用户系统的框图。
具体实施方式
公开了本发明的实施例的具体结构和功能描述。然而,如本领域技术人员根据本公开将显而易见的,本发明的方面可以各种其他形式来实现并以各种方式来实施。因此,本发明不限于本文公开的实施例。
虽然结合所公开的实施例提供了细节,但本发明不限于具体细节。而是,本发明包括不脱离本公开的精神和技术范围的所有改变、等同方案或替代方案。
虽然诸如“第一”和“第二”的术语可用于识别各个组件,但这些组件不受这些术语的限制。上述术语用于将一个组件与另一组件区分开,否则一个组件与另一组件具有相同或相似的名称。例如,在不脱离本公开的范围的情况下,第一组件在不同的实例中可被称为第二组件,反之亦然。
将理解的是,当元件被称为“连接”或“联接”到另一元件时,该元件可直接连接或联接到另一元件,或者也可存在一个或多个中间元件。相反地,当元件被称为“直接连接”或“直接联接”到另一元件时,不存在中间元件。除非规定或上下文另有说明,否则两个元件之间的通信,无论直接或间接连接/联接,可以是有线的或无线的。可类似地解释描述组件之间的关系的其他表述,诸如“在~之间”、“直接在~之间”或“邻近于”和“直接邻近于”。
本申请中使用的术语仅用于描述特定实施例,并不旨在限制本公开。除非上下文另有明确说明,否则本公开中的单数形式旨在包括复数形式,反之亦然。在本说明书中,应当理解的是,术语“包括”或“具有”表示存在特征、数量、步骤、操作、组件、部件或其组合,但不排除可能存在或添加一个或多个其他特征、数量、步骤、操作、组件、部件或其组合的可能性。
只要没有被不同地限定,本文所使用的包括技术术语或科学术语的所有术语都具有本公开所属领域的技术人员通常理解的含义。通常使用的字典中定义的术语应被解释为具有与在相关技术的背景下解释的含义相同的含义,并且除非在本说明书中另有明确定义,否则不应被解释为具有理想化或过于正式的含义。
在一些实施例中,未详细描述公知的进程、装置结构和技术,以免不必要地模糊本发明的方面和特征。这样做的目的在于使本发明更清楚。
将参照附图详细地描述本公开的各个实施例,以便本领域技术人员能够容易地实践本发明。在整个说明书中,对“实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。
图1是示出根据实施例的存储装置50的框图。
参照图1,存储装置50可包括存储器装置100和存储器控制器200。
存储装置50可被配置成响应于主机300来存储数据。存储装置50的示例包括蜂窝电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视(TV)、平板个人计算机(PC)和车载信息娱乐系统。
根据作为与主机300的通信方法的主机接口,存储装置50可被配置成各种类型的储存器中的任意一种。例如,存储装置50可被配置成以下中的任意一种:固态驱动器(SSD)、多媒体卡(例如,MMC、eMMC、RS-MMC和微型-MMC)、安全数字卡(例如,SD、迷你-SD和微型-SD)、通用串行总线(USB)存储装置、通用闪存(UFS)装置、个人计算机存储卡国际协会(PCMCIA)卡型存储装置、外围组件互连(PCI)卡型存储装置、高速PCI(PCI-e或PCIe)卡型存储装置、标准闪存(CF)卡、智能媒体卡、记忆棒等。
存储装置50可被制造成各种类型的封装中的任意一种。例如,存储装置50可被制造成堆叠封装(PoP)、系统级封装(SIP)、片上系统(SoC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)、晶圆级堆叠封装(WSP)等。
存储器装置100可存储数据。存储器装置100可在存储器控制器200的控制下操作。存储器装置100可包括存储器单元阵列,该存储器单元阵列包括存储数据的多个存储器单元。存储器单元阵列可包括多个存储块。存储块中的每一个可包括多个存储器单元。单个存储块可包括多个页面。根据实施例,页面可以是用于将数据存储在存储器装置100中或读取存储在存储器装置100中的数据的单位。存储块可以是用于擦除数据的单位。根据实施例,存储器装置100可以是双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功率双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND、NOR闪速存储器、电阻式随机存取存储器(RRAM)、相变存储器(PRAM)、磁阻式随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)或自旋转移力矩随机存取存储器(STT-RAM)。通过示例的方式,本文主要在NAND闪速存储器的背景下描述存储器装置100。
根据实施例,存储器装置100可具有三维阵列结构。本公开不仅可应用于电荷存储层包括导电浮栅(FG)的闪速存储器,而且还可应用于电荷存储层包括绝缘层的电荷撷取闪存(CTF)存储器。
根据实施例,存储器装置100中包括的存储器单元中的每一个可以是存储一位数据的单层单元(SLC)。可选地,存储器装置100的存储器单元中的每一个可被配置成用于存储两位数据的多层单元(MLC)、用于存储三位数据的三层单元(TLC)或用于存储四位数据的四层单元(QLC)。
存储器装置100可从存储器控制器200接收命令和地址,并且访问存储器单元阵列中响应于地址选择的区域。也就是说,存储器装置100可对响应于地址选择的区域执行对应于命令的操作。例如,存储器装置100可执行写入操作(或编程操作)、读取操作和擦除操作。在编程操作期间,存储器装置100可利用数据对通过地址选择的区域进行编程。在读取操作期间,存储器装置100可从通过地址选择的区域读取数据。在擦除操作期间,存储器装置100可从通过地址选择的区域擦除数据。
存储器控制器200可控制存储器装置100以利用设置的操作电压来执行编程操作、读取操作或擦除操作。
存储器控制器200可控制存储装置50的一般操作。
当电力被施加到存储装置50时,存储器控制器200可运行固件FW。当存储器装置100为闪速存储器装置时,存储器控制器200可操作诸如闪存转换层(FTL)的固件,以控制主机300和存储器装置100之间的通信。
根据实施例,存储器控制器200可从主机300接收数据和逻辑地址LA,并且将逻辑地址LA转换为物理地址PA,该物理地址PA指示存储器装置100中存储数据的每一个存储器单元的地址。另外,存储器控制器200可存储指示逻辑地址LA和物理地址PA之间的映射关系的映射信息。
存储器控制器200可控制存储器装置100,以便可响应于来自主机300的请求执行编程操作、读取操作或擦除操作。在编程操作期间,存储器控制器200可向存储器装置100提供编程命令、物理地址PA和数据。在读取操作期间,存储器控制器200可向存储器装置100提供读取命令和物理地址PA。在擦除操作期间,存储器控制器200可向存储器装置100提供擦除命令和物理地址PA。
根据实施例,存储器控制器200可在没有来自主机300的请求的情况下生成编程命令、地址和数据并将编程命令、地址和数据传输到存储器装置100。例如,存储器控制器200可向存储器装置100提供命令、地址和数据以执行后台操作,诸如用于损耗均衡的编程操作和用于垃圾收集的编程操作。
根据实施例,存储器控制器200可包括坏块控制器210。坏块控制器210可控制在存储器装置100执行编程操作时发生了编程失败的存储块。坏块控制器210可将发生了编程失败的存储块确定为牺牲块。坏块控制器210可将与牺牲块中包括的擦除页面有关的信息存储在擦除页面储存器220中。与擦除页面有关的信息可与包括未执行编程操作的擦除存储器单元的页面的物理地址有关。与擦除页面有关的信息可与除与发生了编程失败的页面相邻的页面之外的页面的物理地址有关。与擦除页面有关的信息可与执行对牺牲块的垃圾收集操作之后牺牲块中的擦除页面的物理地址有关。与物理地址有关的信息可以是牺牲块中擦除页面的页面编号。与物理地址有关的信息可以是擦除页面的物理地址。
坏块控制器210可随后利用存储在擦除页面储存器220中的擦除页面中的一个替换发生了编程失败的失败页面。包括失败页面的存储块可与牺牲块不同。坏块控制器210可控制存储器装置100,使得待存储在失败页面中的数据可被存储在擦除页面中的一个中。
根据实施例,坏块控制器210可存储发生了编程失败的存储块中的擦除页面的数量。坏块控制器210可根据擦除页面的数量来确定牺牲块。例如,坏块控制器210可将每一个都发生了编程失败的至少两个存储块之中包括更多擦除页面的存储块确定为牺牲块。
根据实施例,存储器控制器200可包括擦除页面储存器220。与对应于发生了编程失败的存储块的坏块中的擦除页面有关的信息可被存储在擦除页面储存器220中。与擦除页面有关的信息可包括擦除页面中的每一个的物理地址PA。坏块控制器210可控制存储器装置100,使得待存储在发生了编程失败的页面中的数据可被存储在擦除页面中的一个中。
根据实施例,存储器装置100可包括至少两个存储器装置,至少两个存储器装置中的每一个由存储器控制器200控制。存储器控制器200可根据交错方案控制存储器装置,以便提高操作性能。
主机300可使用诸如以下的各种通信方法中的至少一种与存储装置50通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)以及低负载DIMM(LRDIMM)通信方法。
图2是示出例如图1的存储器控制器200的存储器控制器处理编程失败的操作的示图。
参照图2,存储器控制器200可包括坏块控制器210和擦除页面储存器220。坏块控制器210可包括操作控制器211和页面信息设置器212。
根据实施例,存储器控制器200可向存储器装置100提供编程命令,并且向存储器装置100请求存储器装置100的状态信息。存储器装置100可应存储器控制器200的请求将存储器装置100的状态信息提供给操作控制器211。存储器装置100提供的状态信息可包括与存储器装置100执行的编程操作是通过还是失败有关的信息。
操作控制器211可基于状态信息来确定是否发生了编程失败。当发生了编程失败时,操作控制器211可向页面信息设置器212提供失败页面信息。失败页面信息可包括与发生了编程失败的页面有关的信息。根据实施例,操作控制器211可将包括第一次发生编程失败的页面的存储块设置为牺牲块。
操作控制器211可将牺牲块设置为坏块。存储器控制器200可不使用被设置为坏块的存储块。根据实施例,操作控制器211可将牺牲块中的数据存储在另一存储块中。
页面信息设置器212可将擦除页面信息存储在擦除页面储存器220中。擦除页面信息可与牺牲块中的擦除页面有关。根据实施例,擦除页面信息可包括与擦除页面中的每一个的物理地址有关的信息。
擦除页面储存器220可包括擦除页面信息。擦除页面储存器220可向页面信息设置器212提供擦除页面信息。
随后,可能在除牺牲块之外的存储块中的页面中发生编程失败。操作控制器211可基于存储器装置100提供的状态信息来检测编程失败。
操作控制器211可从页面信息设置器212获取擦除页面信息。操作控制器211可控制存储器装置100,使得待存储在发生了编程失败的失败页面中的数据可被存储在擦除页面中的一个中。页面信息设置器212可生成映射信息,在该映射信息中,失败页面的物理地址被改变为擦除页面中的一个的物理地址。生成的映射信息可被存储在以上参照图1描述的存储器控制器200中的缓冲存储器中。
操作控制器211可向存储器装置100提供编程命令,以将待存储在失败页面中的数据存储在擦除页面中的一个中。
图3是示出例如图1的存储器装置100的存储器装置的框图。
参照图3,存储器装置100可包括存储器单元阵列110、外围电路120和控制逻辑130。
存储器单元阵列110可包括多个存储块BLK1至BLKz。多个存储块BLK1至BLKz可通过行线RL联接到地址解码器121。多个存储块BLK1至BLKz可通过位线BL1至BLm联接到读取/写入电路123。多个存储块BLK1至BLKz中的每一个可包括多个存储器单元。
存储块可被划分为存储用户数据的用户块和存储系统数据的系统块。根据数据是否被存储在用户块中,用户块可被划分为空闲块或数据块。空闲块可以是未存储数据的空块。另一方面,数据可存储在数据块中。存储在数据块中的数据可被划分为有效数据和无效数据。
存储块之中不能存储数据的块可能是坏块。根据产生的时间,坏块可被分类为制造坏块(MBB)和生成坏块(GBB),其中制造坏块(MBB)在存储器装置100的制造过程期间产生,生成坏块(GBB)在存储块的使用期间产生。根据实施例,包括发生了编程失败的页面的存储块可以是生成坏块。
根据实施例,当产生生成坏块时,相应块可被设置为坏块,并且可由另一存储块来使用相应块中的擦除页面以替换每一个中都发生了编程失败的页面。因此,存储装置可控制存储器装置100,使得由生成坏块引起的坏块的数量可不超过一(1)个。
存储块中的每一个可包括存储数据的多个存储器单元。根据实施例,多个存储器单元可以是非易失性存储器单元。多个存储器单元之中联接到相同字线的存储器单元可被定义为单个页面。换言之,存储器单元阵列110可包括多个页面。在实施例中,存储器单元阵列110中的多个存储块BLK1至BLKz中的每一个可包括多个虚设单元。虚设单元中的一个或多个可串联联接在漏极选择晶体管与存储器单元之间。另外,虚设单元中的一个或多个可串联联接在源极选择晶体管与存储器单元之间。
存储器装置100中的存储器单元中的每一个可包括存储单位数据的单层单元(SLC)、存储两位数据的多层单元(MLC)、存储三位数据的三层单元(TLC)或存储四位数据的四层单元(QLC)。
外围电路120可包括地址解码器121、电压发生器122、读取/写入电路123以及数据输入/输出电路124。
外围电路120可驱动存储器单元阵列110。例如,外围电路120可驱动存储器单元阵列110,以执行编程操作、读取操作和擦除操作。
地址解码器121可通过行线RL联接到存储器单元阵列110。行线RL可包括漏极选择线、字线、源极选择线和共源线。根据实施例,字线可包括正常字线和虚设字线。根据实施例,行线RL可进一步包括管道选择线。
地址解码器121可响应于控制逻辑130的控制进行操作。地址解码器121可从控制逻辑130接收地址ADDR。
地址解码器121可对接收到的地址ADDR的块地址进行解码。地址解码器121可根据解码的块地址来选择存储块BLK1至BLKz中的至少一个。地址解码器121可对来自接收到的地址ADDR的行地址进行解码。地址解码器121可通过根据解码的行地址将电压发生器122提供的电压施加到联接到所选择的存储块的字线之中的至少一个字线WL来选择联接到所选择的存储块的字线中的至少一个。
在编程操作期间,地址解码器121可将编程电压施加到所选择的字线并将电平低于编程电压的编程通过电压施加到未选择的字线。在编程验证操作期间,地址解码器121可将验证电压施加到所选择的字线并将大于验证电压的验证通过电压施加到未选择的字线。在读取操作期间,地址解码器121可将读取电压施加到所选择的字线并将大于读取电压的读取通过电压施加到未选择的字线。
根据实施例,可以存储块为单位执行对存储器装置100的擦除操作。在擦除操作期间,输入到存储器装置100的地址ADDR可包括块地址。地址解码器121可对块地址进行解码,并且根据解码的块地址来选择存储块BLK1至BLKz中的至少一个。在擦除操作期间,地址解码器121可将接地电压施加到联接到所选择的存储块的字线。
根据实施例,地址解码器121可对传输的地址ADDR的列地址进行解码。解码的列地址DCA可被传输到读取/写入电路123。例如,地址解码器121可包括诸如行解码器、列解码器和地址缓冲器的组件。
电压发生器122可通过使用供应到存储器装置100的外部电源电压来生成多个电压。电压发生器122可响应于控制逻辑130的控制进行操作。
根据实施例,电压发生器122可通过调节外部电源电压来生成内部电源电压。电压发生器122生成的内部电源电压可用作存储器装置100的操作电压。
根据实施例,电压发生器122可通过使用外部电源电压或内部电源电压来生成多个电压。电压发生器122可生成存储器装置100所需的各种电压。例如,电压发生器122可生成多个编程电压、多个通过电压、多个选择读取电压以及多个未选择读取电压。
例如,电压发生器122可包括用于接收内部电源电压的多个泵浦电容器,并且可响应于控制逻辑130的控制,通过选择性地激活多个泵浦电容器来生成多个电压。所生成的多个电压可通过地址解码器121供应到存储器单元阵列110。
读取/写入电路123可包括第一至第m页面缓冲器PB1至PBm,其中m为正整数。第一至第m页面缓冲器PB1至PBm可分别通过第一至第m位线BL1至BLm联接到存储器单元阵列110。第一至第m页面缓冲器PB1至PBm可响应于控制逻辑130的控制进行操作。
第一至第m页面缓冲器PB1至PBm可与数据输入/输出电路124通信数据。在编程操作期间,第一至第m页面缓冲器PB1至PBm可通过数据输入/输出电路124和数据线DL接收待存储的数据DATA。
在编程操作期间,可将编程脉冲施加到根据行地址所选择的字线。第一至第m页面缓冲器PB1至PBm可分别通过位线BL1至BLm将通过数据输入/输出电路124接收的数据DATA传输到联接到所选择的字线的存储器单元。可根据传输的数据DATA对联接到所选择的字线的存储器单元中的至少一个进行编程。可增加联接到施加了编程允许电压(例如,接地电压)的位线的存储器单元的阈值电压,而可保持联接到施加了编程禁止电压(例如,供电电压)的位线的存储器单元的阈值电压。
在编程验证操作期间,第一至第m页面缓冲器PB1至PBm可分别通过位线BL1至BLm从联接到所选择的字线的存储器单元读取页面数据。
在读取操作期间,读取/写入电路123可通过位线BL从所选择的页面的存储器单元读取数据DATA,并将读取的数据DATA输出到数据输入/输出电路124。
在擦除操作期间,读取/写入电路123可使位线BL浮置。根据实施例,读取/写入电路123可包括列选择电路。
数据输入/输出电路124可通过数据线DL联接到第一至第m页面缓冲器PB1至PBm。数据输入/输出电路124可响应于控制逻辑130的控制进行操作。
数据输入/输出电路124可包括接收输入数据的多个输入/输出缓冲器(未示出)。在编程操作期间,数据输入/输出电路124可从外部装置(例如,图1和图2的存储器控制器200)接收待存储的数据DATA。在读取操作期间,数据输入/输出电路124可将从读取/写入电路123中的第一至第m页面缓冲器PB1至PBm传输的数据输出到外部装置。
控制逻辑130可联接到地址解码器121、电压发生器122、读取/写入电路123以及数据输入/输出电路124。控制逻辑130可控制存储器装置100的一般操作。控制逻辑130可响应于从外部装置传输的命令CMD进行操作。
图4是示出在例如图3的存储器装置100的存储器装置中,通过擦除页面来替换发生了编程失败的页面的方法的示图。
参照图4,存储器装置100可包括多个存储块BLK1至BLKz,并且在第一存储块BLK1和第九存储块BLK9中的每一个中发生了编程失败。在该示例中,以顺序方式对第一至第z存储块BLK1至BLKz执行编程操作。
通常,在第一存储块BLK1的编程操作期间,当在特定页面中发生了编程失败时,存储器控制器200可通过将第一存储块BLK1设置为坏块而不使用发生了编程失败的第一存储块BLK1。随后,当在第九存储块BLK9中发生了编程失败时,存储器控制器200可通过将第九存储块BLK9设置为坏块而不使用发生了编程失败的第九存储块BLK9。因此,因为将发生了编程失败的每一个存储块设置为坏块,所以随着被设置为坏块的存储块的数量增加,数据存储容量可能减少,这随着存储器装置100的使用增加而发生。
根据实施例,当在第一存储块BLK1中发生了编程失败时,存储器控制器200可存储指示发生了编程失败的存储块中的擦除页面的擦除页面信息。与擦除页面有关的信息可与包括未执行编程操作的擦除存储器单元的页面的物理地址有关。
当在第九存储块BLK9中发生了编程失败时,存储器控制器200可进行控制,使得存储器装置100可将待存储在第九存储块BLK9的发生了编程失败的页面中的数据存储在第一存储块BLK1的擦除页面中的一个中。换言之,存储器控制器200可利用第一存储块BLK1的擦除页面中的一个替换第九存储块BLK9的发生了编程失败的页面,并且可不将包括发生了编程失败的页面的第九存储块BLK9设置成坏块。
因此,存储装置50可使用第一次发生编程失败的第一存储块BLK1的擦除页面,以替换随后每一个中都发生了编程失败的页面。因此,可使存储器装置100中的坏块的数量减少或增加得更慢。
图5是示出在例如图4的存储器装置100的存储器装置中发生了编程失败时逻辑地址与物理地址之间的映射信息的示图。
参照图5,在存储器装置100中的第一存储块BLK1和第九存储块BLK9中的每一个中发生了编程失败。在该示例中,在每一个存储块中以顺序方式对第一至第k页面Page1至Pagek执行编程操作。
此处,对第一存储块BLK1中的页面之中的第一页面Page1的编程操作通过,并且对第二页面Page2的编程操作期间发生了编程失败。可将发生了编程失败的第一存储块BLK1设置为牺牲块。在第一存储块BLK1中的第一至第k页面之中,除已执行编程操作的第一页面Page1和发生了编程失败的第二页面Page2之外的其他页面可以是尚未执行编程操作的擦除页面。因此,作为擦除页面的第三至第k页面Page3至Pagek可替换在第二页面Page2之后可能出现的失败页面。
例如,在第一存储块BLK1中发生了编程失败之后,可对下一存储块执行编程操作。在图5的实施例中,在存储器装置100的编程操作期间在第九存储块BLK9中发生了编程失败。更具体地,对第九存储块BLK9中的页面之中的第一页面Page1和第二页面Page2中的每一个的编程操作可能通过,并且在对第三页面Page3的编程操作期间可能发生编程失败。根据实施例,第九存储块BLK9的第三页面Page3可被作为第一存储块BLK1中的擦除页面中的一个的第三页面Page3替换。换言之,待存储在第九存储块BLK9的第三页面Page3中的数据可被存储在第一存储块BLK1的第三页面Page3中。随后,可对第九存储块BLK9的第四至第k页面Page4至Pagek执行编程操作。
当第九存储块BLK9的第三页面Page3被第一存储块BLK1的第三页面Page3替换时,可改变逻辑地址与物理地址之间的映射信息。
根据实施例,逻辑地址可包括第一至第p逻辑地址数据LA DATA_1至LA DATA_p。逻辑地址可由图1的主机300提供,并且物理地址可指示数据存储在存储器装置100中的物理位置。第一至第p逻辑地址数据LA DATA_1至LA DATA_p可与物理地址中的一个建立映射关系。例如,第一逻辑地址数据LA DATA_1可对应于第九存储块BLK9的第一页面BLK9_Page1。第二逻辑地址数据LA DATA_2可对应于第九存储块BLK9的第二页面BLK9_Page2。第三逻辑地址数据LA DATA_3可对应于第九存储块BLK9的第三页面BLK9_Page3。第四逻辑地址数据LA DATA_4可对应于第九存储块BLK9的第四页面BLK9_Page4。第p逻辑地址数据LA DATA_p可对应于第z存储块BLKz的第k页面BLKz_Pagek。
当在第九存储块BLK9的第三页面Page3中发生了编程失败并且第九存储块BLK9的第三页面Page3被第一存储块BLK1的第三页面Page3替换时,对应于第三逻辑地址数据LADATA_3的物理地址可从第九存储块BLK9的第三页面BLK9_Page3改变到第一存储块BLK1的第三页面BLK1_Page3。
图6是示出根据实施例的存储在例如图2的擦除页面储存器220的擦除页面储存器中的擦除页面信息的示图。
参照图6,擦除页面储存器220可以可存储擦除页面信息的循环队列的形式实施。擦除页面信息可包括与牺牲块中的擦除页面的物理地址有关的信息。循环队列可包括指示数据起始点的头部和指示数据结束的尾部。
在牺牲块中的页面之中,除第二页面Page2和第三页面Page3之外的剩余页面可以是擦除页面。换言之,擦除页面可对应于第一页面Page1和第四页面Page4至第k页面Pagek中的一个。擦除页面信息可包括与第一页面Page1和第四页面Page4至第k页面Pagek的物理地址有关的信息。
当头部指示的第一页面Page1替换另一失败页面时,头部的位置可改变到对应于下一数据的第四页面Page4。当擦除页面替换失败页面时,可将头部的位置移动到下一数据。当头部的位置与尾部的位置相同时,数据可不再被存储在循环队列中。
虽然图6示出了擦除页面信息存储在循环队列中的实施例,但擦除页面信息可使用各种其他方法以其他方式进行存储。
图7是示出根据存储器装置中的擦除页面的数量确定牺牲块的方法的示图。
参照图7,在存储器装置中的第一存储块BLK1和第二存储块BLK2中的每一个中发生了编程失败。
当对第一存储块BLK1执行编程操作时,可能在第一至第三页面Page1至Page3中发生编程通过,并且可能在第四页面Page4中发生编程失败。因此,擦除页面可对应于第五至第k页面Page5至Pagek中的一个。第一存储块BLK1中的擦除页面的数量可以是k-4,并且可被存储在图1所示的坏块控制器210中。
当对第二存储块BLK2执行编程操作时,可能在第一页面Page1中发生编程通过,并且可能在第二页面Page2中发生编程失败。因此,擦除页面可对应于第三至第k页面Page3至Pagek中的一个。第二存储块BLK2中的擦除页面的数量可以是k-2,并且可被存储在坏块控制器210中。
坏块控制器210可将每一个中都发生了编程失败的存储块之中具有更多擦除页面的存储块设置为牺牲块。随着擦除页面的数量增加,可由擦除页面替换更多的失败页面。因此,坏块控制器210可将具有更多擦除页面的存储块设置为牺牲块。
根据实施例,因为第二存储块BLK2中的擦除页面的数量大于第一存储块BLK1中的擦除页面的数量,所以坏块控制器210可将第二存储块BLK2设置为牺牲块。当第二存储块BLK2被设置为牺牲块时,第二存储块BLK2的擦除页面信息可被存储在擦除页面储存器220中。
图8是示出根据实施例的例如图1至图4的存储器装置100和存储器控制器200的存储器装置和存储器控制器的操作的流程图。
参照图8,在步骤S901中,存储器装置100可对存储块的所选择的页面执行编程操作。存储器装置100可执行编程操作,使得联接到所选择的页面的存储器单元可达到目标阈值电压。
在步骤S903中,图2的操作控制器211可基于从存储器装置100提供的状态信息来确定在编程操作期间存储块中是否发生了编程失败。当确定发生了编程失败(即,步骤S903中为“是”)时,进程流程可继续进行到步骤S905。
在步骤S905中,操作控制器211可确定该编程失败是否是编程操作期间第一次发生。当确定第一次发生编程失败(即,步骤S905中为“是”)时,进程流程可继续进行到步骤S907。否则(即,步骤S905中为“否”),进程流程可继续进行到步骤S909。
在步骤S907中,坏块控制器210可将发生了编程失败的存储块确定为牺牲块。可将发生了编程失败的存储块设置为坏块。
在步骤S909中,可由擦除页面中的一个来替换发生了编程失败的页面。在这种情况下,待存储在发生了编程失败的页面中的数据可被存储在擦除页面中。
在步骤S911中,当在步骤S907中确定了牺牲块时,擦除页面储存器220可存储与牺牲块中的擦除页面有关的擦除页面信息。擦除页面信息可与包括未执行编程操作的擦除存储器单元的页面的物理地址有关。
图9是示出根据实施例的例如图1和图2的存储器装置100和存储器控制器200的存储器装置和存储器控制器的操作的流程图。
参照图9,在步骤S1001中,存储器装置100可对第一存储块的所选择的页面执行编程操作。第一存储块可对应于存储器装置100的多个存储块中的一个。存储器装置100可执行编程操作,使得联接到第一存储块的所选择的页面的存储器单元中的每一个都可达到目标阈值电压。
在步骤S1003中,当存储器装置100对第一存储块执行编程操作时,图2的坏块控制器210可确定第一存储块中是否发生了编程失败。当确定发生了编程失败(即,步骤S1003中为“是”)时,进程流程可继续进行到步骤S1005。
在步骤S1005中,第一存储块中的擦除页面的数量可被存储在坏块控制器210中。擦除页面可包括未执行编程操作的擦除存储器单元。可根据擦除页面的数量将第一存储块设置为牺牲块。
在S1007中,当第一存储块中的擦除页面的数量被存储在存储器控制器200中时,存储器装置100可对第二存储块的所选择的页面执行编程操作。第二存储块可对应于多个存储块中除第一存储块之外的一个存储块。存储器装置100可执行编程操作,使得联接到第二存储块的所选择的页面的存储器单元可达到目标阈值电压。
在步骤S1009中,当存储器装置100对第二存储块执行编程操作时,坏块控制器210可确定第二存储块中是否发生了编程失败。当确定已经发生编程失败(即,步骤S1009中为“是”)时,进程流程可继续进行到步骤S1011。
在步骤S1011中,第二存储块中的擦除页面的数量可被存储在坏块控制器210中。擦除页面可包括未执行编程操作的擦除存储器单元。可根据擦除页面的数量将第二存储块设置为牺牲块。
在步骤S1013中,坏块控制器210可将第一存储块中的擦除页面的数量与第二存储块中的擦除页面的数量进行比较。因为当存在更多擦除页面时可由擦除页面来替换更多的失败页面,所以坏块控制器210可将具有更多擦除页面的存储块设置为牺牲块。
在步骤S1015中,存储器控制器200可确定第一存储块中的擦除页面的数量是否大于或等于第二存储块中的擦除页面的数量。当确定第一存储块中的擦除页面的数量大于或等于第二存储块中的擦除页面的数量(即,步骤S1015中为“是”)时,进程流程可继续进行到步骤S1017。当确定第一存储块中的擦除页面的数量小于第二存储块中的擦除页面的数量(即,步骤S1015中为“否”)时,进程流程可继续进行到步骤S1019。
在步骤S1017中,当确定第一存储块中的擦除页面的数量大于或等于第二存储块中的擦除页面的数量时,坏块控制器210可将第一存储块设置为牺牲块。擦除页面储存器220可存储与第一存储块中的擦除页面有关的信息。
在步骤S1019中,当确定第一存储块中的擦除页面的数量小于第二存储块中包括的擦除页面的数量时,坏块控制器210可将第二存储块设置为牺牲块。擦除页面储存器220可存储与第二存储块中包括的擦除页面有关的信息。
图10是示出根据实施例的例如图1的存储器控制器200的存储器控制器1000的示图。
如图10所示,存储器控制器1000可联接到主机300和存储器装置100。响应于来自主机300的请求,存储器控制器1000可访问存储器装置100。例如,存储器控制器1000可控制存储器装置100的写入操作、读取操作、擦除操作和后台操作。存储器控制器1000可提供存储器装置100与主机300之间的接口。存储器控制器1000可驱动固件以控制存储器装置100。
参照图10,存储器控制器1000可包括处理器1010、存储器缓冲器1020、错误校正码(ECC)块1030、主机接口1040、缓冲器控制电路1050、存储器接口1060和总线1070。
总线1070可提供存储器控制器1000的组件之间的信道。
处理器1010可控制存储器控制器1000的整体操作,并且可执行各种逻辑操作。处理器1010可通过主机接口1040与主机300通信,并且通过存储器接口1060与存储器装置100通信。进一步地,处理器1010可通过缓冲器控制电路1050与存储器缓冲器1020通信。处理器1010可通过使用存储器缓冲器1020作为工作存储器、高速缓存存储器或缓冲存储器来控制存储装置50的操作。
处理器1010可执行闪存转换层(FTL)的功能。处理器1010可通过闪存转换层(FTL)将主机300提供的逻辑地址LA转换为物理地址PA。闪存转换层(FTL)可接收逻辑地址LA,并且通过使用映射信息将逻辑地址LA转换为物理地址PA。根据映射单位,闪存转换层(FTL)可采用各种地址映射方法中的任意一种。这些地址映射方法的示例包括页面映射方法、块映射方法和混合映射方法。
处理器1010可将从主机300接收的数据随机化。例如,处理器1010可使用随机化种子来将从主机300接收的数据随机化。被随机化的数据可作为待存储的数据被提供到存储器装置100,并且可被编程在存储器装置100的存储器单元阵列110中。
处理器1010可在读取操作期间将从存储器装置100接收的数据去随机化。例如,处理器1010可使用去随机化种子将从存储器装置100接收的数据去随机化。被去随机化的数据可被输出到主机300。
根据实施例,处理器1010可运行软件或固件以执行随机化操作和去随机化操作。
存储器缓冲器1020可用作处理器1010的操作存储器、高速缓存存储器或缓冲存储器。存储器缓冲器1020可存储由处理器1010运行的代码和命令。存储器缓冲器1020可存储由处理器1010处理的数据。存储器缓冲器1020可包括静态随机存取存储器(RAM)(SRAM)或动态RAM(DRAM)。
ECC块1030可执行错误校正。ECC块1030可基于待通过存储器接口1060写入存储器装置100的数据来执行ECC编码。经ECC编码的数据可通过存储器接口1060传输到存储器装置100。ECC块1030可基于通过存储器接口1060从存储器装置100接收的数据来执行ECC解码。例如,ECC块1030可以是存储器接口1060中的组件。
主机接口1040可在处理器1010的控制下与主机300通信。主机接口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的控制下与存储器装置100通信。存储器接口1060可通过信道向存储器装置100传送命令、地址和数据或从存储器装置100接收命令、地址和数据。
例如,存储器控制器1000可不包括存储器缓冲器1020和缓冲器控制电路1050。存储器缓冲器1020和/或缓冲器控制电路1050可以是分开的,或者它们的功能中的任意一者或两者分布在存储器控制器1000内。
在实施例中,处理器1010可使用代码来控制存储器控制器1000的操作。处理器1010可从设置在存储器控制器1000中的非易失性存储器装置(例如,只读存储器(ROM))加载代码。在另一示例中,处理器1010可通过存储器接口1060从存储器装置100加载代码。
例如,存储器控制器1000的总线1070可被划分成控制总线和数据总线。数据总线可在存储器控制器1000中传送数据,控制总线可在存储器控制器1000中传送诸如命令或地址的控制信息。数据总线和控制总线可彼此隔离,并且可既不互相干扰也不互相影响。数据总线可联接到ECC块1030、主机接口1040、缓冲器控制电路1050和存储器接口1060。控制总线可联接到处理器1010、存储器缓冲器1020、主机接口1040、缓冲器控制电路1050和存储器接口1060。
图11是示出应用根据实施例的存储装置的存储卡系统2000的框图。
参照图11,存储卡系统2000可包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100可联接到存储器装置2200。存储器控制器2100可访问存储器装置2200。例如,存储器控制器2100可控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100可提供存储器装置2200与主机(例如,图1的主机300)之间的接口。存储器控制器2100可驱动固件以控制存储器装置2200。存储器控制器2200可以与以上参照图2描述的存储器控制器200相同的方式配置。
在实施例中,存储器控制器2100可包括诸如随机存取存储器(RAM)、处理单元、主机接口、存储器接口和错误校正码(ECC)块的组件。
存储器控制器2100可通过连接器2300与外部装置(例如,图1的主机300)通信。存储器控制器2100可基于特定的通信协议与外部装置通信。在实施例中,存储器控制器2100可通过诸如以下的各种通信协议中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-e或PCIe)、高级技术附件(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可被集成到单个半导体装置中以形成诸如以下的存储卡:个人计算机存储卡国际协会(PCMCIA)、标准闪存卡(CF)、智能媒体卡(例如,SM或SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC或微型MMC)、SD卡(例如,SD、迷你SD、微型SD或SDHC)、通用闪存(UFS)等等。
图12是示出应用例如图1的存储装置50的根据实施例的存储装置的固态驱动器(SSD)系统3000的示例的框图。
参照图12,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或PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、WiFi、蓝牙以及高速非易失性存储器(NVMe)接口。
辅助电源3230可通过电源连接器3002联接到主机3100。辅助电源3230可被供应来自主机3100的电力PWR并且利用该电力PWR充电。当未从主机3100平稳地供应电力时,辅助电源3230可供应SSD 3200的电力。在实施例中,辅助电源3230可被设置在SSD 3200内部或外部。例如,辅助电源3230可被设置在主板中,并且可向SSD 3200供应辅助电力。
缓冲存储器3240可用作SSD 3200的缓冲存储器。例如,缓冲存储器3240可临时存储从主机3100接收的数据或从多个闪速存储器3221至322n接收的数据,或者可临时存储闪速存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可包括诸如动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、双倍数据速率(DDR)SDRAM、低功率DDR(LPDDR)SDRAM和图形RAM(GRAM)的易失性存储器,或者诸如铁电RAM(FRAM)、电阻式RAM(ReRAM)、自旋转移力矩磁性RAM(STT-MRAM)和相变RAM(PRAM)的非易失性存储器。
图13是示出应用例如图1的存储装置50的根据实施例的存储装置的用户系统4000的框图。
参照图13,用户系统4000可包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可运行包括在用户系统4000中的组件、操作系统(OS)或用户程序。在实施例中,应用处理器4100可包括用于控制包括在用户系统4000中的组件的控制器、接口、图形引擎等。应用处理器4100可被提供为片上系统(SoC)。
存储器模块4200可用作用户系统4000的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器模块4200可包括诸如动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、双倍数据速率(DDR)SDRAM、DDR2SDRAM、DDR3SDRAM、低功率DDR(LPDDR)SDARM、LPDDR2SDRAM和LPDDR3SDRAM的易失性RAM,或者诸如相变随机存取存储器(PRAM)、电阻式RAM(ReRAM)、磁阻RAM(MRAM)和铁电RAM(FRAM)的非易失性RAM。例如,应用处理器4100和存储器模块4200可基于堆叠封装(PoP)进行封装,然后可被提供为单个半导体封装。
网络模块4300可与外部装置通信。例如,网络模块4300可支持诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、Wimax、WLAN、UWB、蓝牙或Wi-Fi通信的无线通信。例如,网络模块4300可包括在应用处理器4100中。
存储模块4400可存储数据。例如,存储模块4400可存储从应用处理器4100接收的数据。可选地,存储模块4400可将存储在存储模块4400中的数据传送到应用处理器4100。根据实施例,存储模块4400可被实施为诸如以下的非易失性半导体存储器装置:相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪速存储器、NOR闪速存储器或具有三维(3D)结构的NAND闪速存储器。例如,存储模块4400可被设置为可移动存储介质(即,可移动驱动器),诸如用户系统4000的存储卡或外部驱动器。
例如,存储模块4400可包括多个非易失性存储器装置,并且多个非易失性存储器装置可以与以上参照图1至图3描述的存储器装置相同的方式操作。存储模块4400可以与以上参照图1描述的存储装置50相同的方式操作。
用户接口4500可包括将数据或指令输入到应用处理器4100或将数据输出到外部装置的接口。在实施例中,用户接口4500可包括诸如以下的用户输入接口:键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电装置。用户接口4500可进一步包括诸如以下的用户输出接口:液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监视器。
根据本公开的实施例,提供了一种存储块使用效率提高的存储装置及操作该存储装置的方法。
在以上讨论的实施例中,可选择性地执行或跳过所有步骤。另外,可并非总以固定顺序执行每个实施例中的步骤。此外,本文公开的实施例旨在帮助本领域普通技术人员更清楚地理解本公开,而不旨在限制本公开的范围。换言之,本公开所属领域的普通技术人员将能够容易地理解,基于本公开的技术范围,可以进行各种修改。
已经参照附图描述了本公开的实施例,并且在说明书中使用的特定术语或词语应当根据本公开的精神来解释,而不限制本公开的主题。应当理解的是,本文描述的基本发明构思的许多变化和修改仍然落入所附权利要求及其等同方案所限定的本公开的精神和范围内。
对于本领域技术人员将显而易见的是,在不脱离本发明的精神或范围的情况下,可对本发明的上述实施例进行各种修改。因此,只要这些修改落入所附权利要求及其等同方案的范围内,本发明旨在覆盖所有这些修改。
Claims (19)
1.一种存储装置,包括:
多个存储块,所述多个存储块中的每一个包括存储数据的多个页面;
擦除页面储存器,存储与牺牲块中的擦除页面有关的擦除页面信息,所述牺牲块是所述多个存储块之中包括所述擦除页面和发生了编程失败的至少一个失败页面的存储块;以及
坏块控制器,在所述牺牲块的编程故障之后,基于所述擦除页面信息,利用所述牺牲块中的所述擦除页面中的一个替换所述多个存储块中除所述牺牲块之外的一个存储块中的发生了编程失败的失败页面。
2.根据权利要求1所述的存储装置,其中所述擦除页面包括除执行编程操作的页面之外的剩余页面。
3.根据权利要求2所述的存储装置,其中所述擦除页面包括所述牺牲块中的页面之中除与已经发生编程失败的失败页面相邻的页面之外的剩余页面。
4.根据权利要求1所述的存储装置,其中所述擦除页面包括在所述牺牲块中,并且对应于对所述牺牲块执行垃圾收集之后处于擦除状态的页面。
5.根据权利要求1所述的存储装置,其中所述擦除页面信息包括与所述擦除页面的物理地址有关的信息。
6.根据权利要求1所述的存储装置,其中所述擦除页面储存器将所述擦除页面信息存储在循环队列中。
7.根据权利要求1所述的存储装置,其中所述坏块控制器包括:
操作控制器,将所述多个存储块之中的包括所述擦除页面和所述至少一个失败页面的存储块确定为所述牺牲块;以及
页面信息设置器,从所述操作控制器接收与所述牺牲块中的页面之中已经发生编程失败的失败页面有关的失败页面信息,并且将从所述擦除页面储存器提供的所述擦除页面信息提供到所述操作控制器。
8.根据权利要求7所述的存储装置,其中所述操作控制器将待存储在所述多个存储块中除所述牺牲块之外的一个存储块中包括的页面之中的所述失败页面中的数据存储在所述擦除页面中的一个中。
9.根据权利要求7所述的存储装置,其中所述页面信息设置器生成映射信息,所述映射信息指示所述多个存储块中除所述牺牲块之外的一个存储块中包括的页面之中的所述失败页面的物理地址被改变为所述擦除页面中的一个的物理地址。
10.一种存储装置,包括:
多个存储块,所述多个存储块中的每一个包括存储数据的多个页面;
坏块控制器,存储所述多个存储块之中发生了至少两次编程失败的坏块中的每一个中的擦除页面的数量,并且基于所述坏块中的每一个中的所述擦除页面的数量将所述坏块中的一个确定为牺牲块;以及
擦除页面储存器,存储与所述牺牲块中的所述擦除页面有关的擦除页面信息,
其中所述坏块控制器基于所述擦除页面信息,利用所述牺牲块中的所述擦除页面中的一个来替换所述坏块中除所述牺牲块之外的一个坏块中的失败页面。
11.根据权利要求10所述的存储装置,其中所述擦除页面包括除执行编程操作的页面之外的剩余页面。
12.一种操作存储装置的方法,包括:
对多个存储块中包括的多个页面执行编程操作;
将所述多个存储块之中的包括擦除页面和发生了编程失败的至少一个失败页面的坏块确定为牺牲块;
存储与所述牺牲块中的所述擦除页面有关的擦除页面信息;并且
基于所述擦除页面信息,利用所述牺牲块中的所述擦除页面中的一个替换所述多个存储块中除所述牺牲块之外的一个存储块中的页面之中发生了编程失败的失败页面。
13.根据权利要求12所述的方法,其中所述擦除页面包括除执行所述编程操作的页面之外的剩余页面。
14.根据权利要求12所述的方法,其中存储所述擦除页面信息包括存储与所述擦除页面的物理地址有关的信息。
15.根据权利要求12所述的方法,其中存储所述擦除页面信息包括将与所述擦除页面有关的信息存储在循环队列中。
16.根据权利要求12所述的方法,进一步包括:生成映射信息,所述映射信息指示所述多个存储块中除所述牺牲块之外的一个存储块中包括的页面之中的所述失败页面的物理地址被改变为所述擦除页面中的一个的物理地址。
17.根据权利要求12所述的方法,进一步包括:将待存储在所述多个存储块中除所述牺牲块之外的一个存储块中包括的页面之中的所述失败页面中的数据存储在所述擦除页面中的一个中。
18.根据权利要求12所述的方法,其中将所述坏块确定为所述牺牲块包括:将所述多个存储块之中发生第一次编程失败的坏块确定为所述牺牲块。
19.根据权利要求12所述的方法,其中将所述坏块确定为所述牺牲块包括:根据所述多个存储块之中发生了至少两次编程失败的坏块中的每一个中的擦除页面的数量,将所述坏块中的一个确定为所述牺牲块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180083667A KR102565920B1 (ko) | 2018-07-18 | 2018-07-18 | 저장 장치 및 그 동작 방법 |
KR10-2018-0083667 | 2018-07-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110737403A CN110737403A (zh) | 2020-01-31 |
CN110737403B true CN110737403B (zh) | 2023-06-13 |
Family
ID=69162972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910181711.6A Active CN110737403B (zh) | 2018-07-18 | 2019-03-11 | 存储装置及操作该存储装置的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11294590B2 (zh) |
KR (1) | KR102565920B1 (zh) |
CN (1) | CN110737403B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008076790A2 (en) * | 2006-12-14 | 2008-06-26 | Rambus Inc. | Multi-die memory device |
CN103039057A (zh) * | 2010-03-31 | 2013-04-10 | 安全第一公司 | 对移动中数据进行保护的系统和方法 |
WO2016023038A1 (en) * | 2014-08-07 | 2016-02-11 | Pure Storage, Inc. | Masking defective bits in a storage array |
CN105448348A (zh) * | 2014-06-06 | 2016-03-30 | 北京兆易创新科技股份有限公司 | 一种芯片修复方法和装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100572328B1 (ko) | 2004-07-16 | 2006-04-18 | 삼성전자주식회사 | 배드 블록 관리부를 포함하는 플래시 메모리 시스템 |
US7352621B2 (en) * | 2005-06-23 | 2008-04-01 | Intel Corporation | Method for enhanced block management |
KR100858241B1 (ko) * | 2006-10-25 | 2008-09-12 | 삼성전자주식회사 | 하이브리드 플래시 메모리 장치 및 그것의 가용 블록 할당방법 |
CN101197006B (zh) * | 2007-12-19 | 2010-05-19 | 东信和平智能卡股份有限公司 | 智能卡及数据写入方法 |
KR101797565B1 (ko) | 2011-08-22 | 2017-12-12 | 삼성전자 주식회사 | 불량 페이지를 관리하는 메모리 장치 |
KR20130078973A (ko) * | 2012-01-02 | 2013-07-10 | 삼성전자주식회사 | 메모리 장치의 불량 저장 영역 관리 방법 및 이를 이용한 저장 장치 |
CN104166627B (zh) * | 2014-09-02 | 2017-12-08 | 科大智能电气技术有限公司 | 一种基于单片机的nand‑flash写操作方法 |
CN104503923B (zh) * | 2014-11-21 | 2017-08-11 | 华中科技大学 | 一种非对称磁盘阵列高速缓存调度方法 |
US10055267B2 (en) * | 2015-03-04 | 2018-08-21 | Sandisk Technologies Llc | Block management scheme to handle cluster failures in non-volatile memory |
CN105630701B (zh) * | 2015-05-29 | 2018-09-14 | 上海磁宇信息科技有限公司 | 数据存储装置及使用不可用页表或不可用块表的读写方法 |
KR20170028670A (ko) * | 2015-09-04 | 2017-03-14 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 그리고 그것의 동작 방법 |
EP3522424B1 (en) * | 2015-10-19 | 2022-07-06 | Telefonaktiebolaget LM Ericsson (publ) | Soft buffer handling with limited memory access bandwidth |
KR101767190B1 (ko) * | 2015-12-11 | 2017-08-11 | 전남대학교산학협력단 | 장애인용 포크 |
KR102645572B1 (ko) * | 2016-11-29 | 2024-03-11 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
-
2018
- 2018-07-18 KR KR1020180083667A patent/KR102565920B1/ko active IP Right Grant
-
2019
- 2019-02-14 US US16/276,375 patent/US11294590B2/en active Active
- 2019-03-11 CN CN201910181711.6A patent/CN110737403B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008076790A2 (en) * | 2006-12-14 | 2008-06-26 | Rambus Inc. | Multi-die memory device |
CN103039057A (zh) * | 2010-03-31 | 2013-04-10 | 安全第一公司 | 对移动中数据进行保护的系统和方法 |
CN105448348A (zh) * | 2014-06-06 | 2016-03-30 | 北京兆易创新科技股份有限公司 | 一种芯片修复方法和装置 |
WO2016023038A1 (en) * | 2014-08-07 | 2016-02-11 | Pure Storage, Inc. | Masking defective bits in a storage array |
Also Published As
Publication number | Publication date |
---|---|
KR102565920B1 (ko) | 2023-08-11 |
KR20200009383A (ko) | 2020-01-30 |
US11294590B2 (en) | 2022-04-05 |
US20200026455A1 (en) | 2020-01-23 |
CN110737403A (zh) | 2020-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10884922B2 (en) | Storage device and method of operating the same | |
US11360900B2 (en) | Storage device and method of operating the same | |
CN111352855B (zh) | 具有提高的映射更新速度的存储装置及其操作方法 | |
US20190318786A1 (en) | Storage device and method of operating the same | |
CN111177020B (zh) | 存储装置及其操作方法 | |
US10936508B2 (en) | Storage device and method of operating the same | |
CN112463664A (zh) | 存储装置及其操作方法 | |
CN111752856A (zh) | 存储器控制器及其操作方法 | |
CN112988049A (zh) | 存储装置及其操作方法 | |
US11194732B2 (en) | Storage device and method of operating the same | |
CN111435333B (zh) | 存储装置及其操作方法 | |
CN111208937B (zh) | 存储器控制器及其操作方法 | |
CN111258931A (zh) | 存储器控制器及操作该存储器控制器的方法 | |
US11288202B2 (en) | Memory controller and method of operating the same | |
CN110413219B (zh) | 存储器控制器、存储器系统及其操作方法 | |
CN112309446A (zh) | 存储设备和操作存储设备的方法 | |
US11636899B2 (en) | Memory device and method of operating the same | |
CN110737403B (zh) | 存储装置及操作该存储装置的方法 | |
US11500768B2 (en) | Storage device performing garbage collection and method of operating the same | |
CN111190535B (zh) | 存储装置及其操作方法 | |
CN114385413A (zh) | 存储器控制器及操作该存储器控制器的方法 | |
CN114300021A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |