CN114627939A - 存储器控制器以及包括存储器控制器的存储装置 - Google Patents

存储器控制器以及包括存储器控制器的存储装置 Download PDF

Info

Publication number
CN114627939A
CN114627939A CN202110935735.3A CN202110935735A CN114627939A CN 114627939 A CN114627939 A CN 114627939A CN 202110935735 A CN202110935735 A CN 202110935735A CN 114627939 A CN114627939 A CN 114627939A
Authority
CN
China
Prior art keywords
defect
memory
memory controller
type
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
Application number
CN202110935735.3A
Other languages
English (en)
Inventor
金基成
金载训
白承杰
李洞圭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN114627939A publication Critical patent/CN114627939A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/442Shutdown
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/147Voltage reference generators, voltage or current regulators; Internally lowered supply levels; Compensation for voltage drops
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/18Bit line organisation; Bit line lay-out
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/14Word line organisation; Word line lay-out

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Power Engineering (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本公开涉及一种电子装置,且更特别地,涉及一种存储器控制器和包括存储器控制器的存储装置。根据实施例,一种存储器控制器包括:存储装置,被配置为存储与不可修复缺陷相对应的第一缺陷信息和与可修复缺陷相对应的第二缺陷信息;输出电路,被配置为检测存储器控制器中的缺陷,并且输出第一缺陷信息或第二缺陷信息作为与检测到的缺陷相对应的缺陷信息,以及逻辑,被配置为当缺陷信息对应于第二缺陷信息时,基于第二缺陷信息来检查检测到的缺陷的类型,并且根据检测到的缺陷的类型来执行恢复操作。

Description

存储器控制器以及包括存储器控制器的存储装置
相关申请的交叉引用
本申请要求于2020年12月14日向韩国知识产权局提交的申请号为10-2020-0174348的韩国专利申请的优先权,该韩国专利申请的全部内容通过引用并入本文。
技术领域
本文描述的一个或多个实施例涉及一种存储器控制器和包括存储器控制器的存储装置。
背景技术
存储装置可以包括控制数据在存储器装置中的存储的存储器控制器。
易失性存储器仅在通电时存储数据。当电力中断时,数据丢失。易失性存储器的示例可以包括静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。
非易失性存储器即使在没有电力的情况下也能存储数据。非易失性存储器的示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)和闪速存储器。
发明内容
本文描述的一个或多个实施例提供了一种具有提高的可靠性的存储器控制器。
本文描述的一个或多个实施例提供了一种包括具有提高的可靠性的存储器控制器的存储装置。
根据实施例,一种存储器控制器可以包括:存储装置,被配置为存储与不可修复缺陷相对应的第一缺陷信息和与可修复缺陷相对应的第二缺陷信息;输出电路,被配置为检测存储器控制器中的缺陷,并且输出第一缺陷信息或第二缺陷信息作为与检测到的缺陷相对应的缺陷信息;以及逻辑,被配置为当缺陷信息对应于第二缺陷信息时,基于第二缺陷信息来检查检测到的缺陷的类型,并且根据检测到的缺陷的类型来执行恢复操作。
根据实施例,一种存储装置可以包括:存储器装置,包括多个存储块;缓冲存储器,被配置为临时存储来自主机或存储器装置的数据;以及存储器控制器,被配置为控制存储器装置以执行与来自主机的请求相对应的操作;其中存储器控制器被配置为:检测在存储器控制器或缓冲存储器中发生的缺陷,基于缺陷信息表中的信息来检查该缺陷是否可修复,并且当缺陷是可修复的时,根据该缺陷的类型来执行恢复操作。
根据实施例,一种设备可以包括被配置为存储指令的存储装置,以及逻辑,该逻辑被配置为运行指令以进行以下操作:检测在存储器控制器或缓冲存储器中发生的缺陷,基于缺陷信息表来检查该缺陷是否可修复,并且当该缺陷是可修复的时,基于该缺陷的类型来执行恢复操作。
附图说明
图1示出存储系统的实施例;
图2示出存储器装置的实施例;
图3示出存储块的实施例;
图4示出缺陷信息的示例;
图5示出执行恢复操作的方法的实施例;
图6示出加载固件数据的方法的实施例;
图7示出存储器控制器的实施例;
图8示出存储卡系统的实施例;
图9示出固态驱动器(SSD)系统的实施例;并且
图10示出用户系统的实施例。
具体实施方式
根据本说明书中公开的概念的示例性实施方式的具体结构或功能描述仅用于描述根据该概念的示例性实施方式,并且可以通过各种形式执行根据该概念的示例性实施方式,但描述不限于本说明书中描述的示例性实施方式。
图1是示出存储系统的实施例的示图。例如,该存储系统可以被实施在个人计算机(PC)、数据中心、企业数据存储系统、包括直接附接存储装置(DAS)的数据处理系统、包括存储区域网络(SAN)的数据处理系统,或包括网络附接存储装置(NAS)的数据处理系统中。
存储系统可以包括存储装置1000和主机400。存储装置1000可以被配置为响应于主机400的控制来存储数据。存储装置1000的示例包括移动电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、TV、平板PC或车载信息娱乐系统。
例如,存储装置1000可以是根据实现主机400的通信方法的主机接口的各种类型的存储装置之一。存储装置1000的示例包括固态驱动器(SSD),MMC、eMMC、RS-MMC和微型MMC形式的多媒体卡,SD、迷你SD和微型SD形式的安全数字卡,通用串行总线(USB)存储装置,通用闪存(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡型存储装置,外围组件互连(PCI)卡型存储装置,高速PCI(PCI-E)卡型存储装置,紧凑型闪存(CF)卡,智能媒体卡和记忆棒。
存储装置1000可以实施为各种类型的封装。示例包括层叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)和晶圆级堆叠封装(WSP)。
根据实施例,如图1所示,可以存在一个存储装置1000。在一个实施例中,存储系统可以包括两个或更多个存储装置1000。例如,存储装置1000可以作为独立磁盘冗余阵列或廉价磁盘冗余阵列(RAID)操作,其中存储装置1000在逻辑上作为单个存储装置操作。
存储装置1000可以包括存储器装置100、存储器控制器200和缓冲存储器300。存储器装置100可以响应于存储器控制器200的控制而操作。例如,存储器装置100可以从存储器控制器接收命令和地址,并且可以访问存储器单元之中的、由地址选择的存储器单元。存储器装置100可以对由地址中的相应地址选择的存储器单元执行由命令指示的操作。
例如,命令可以包括编程命令、读取命令和/或擦除命令。例如,由命令指示的操作可以包括编程操作(或写入操作)、读取操作或擦除操作。
编程操作可以响应于存储器控制器200的控制而存储来自主机400的数据。例如,存储器装置100可以接收编程命令、地址和数据并且可以将数据编程到由地址选择的存储器单元中。待编程到所选择存储器单元的数据可以定义为写入数据。写入数据可以包括来自主机400的数据(或用户数据)和数据的元数据。
读取操作可以响应于存储器控制器200的控制而读取存储在存储器装置100中的数据。例如,存储器装置100可以接收读取命令和地址,并且可以从由地址选择的区域读取数据。在存储器装置100中存储的数据之中的、待被从所选择区域读取的数据可以被定义为读取数据。
擦除操作可以响应于存储器控制器200的控制而擦除存储在存储器装置100中的数据。例如,存储器装置100可以接收擦除命令和地址,并且可以擦除存储在由地址选择的区域中的数据。
存储器装置100可以是易失性存储器或非易失性存储器。易失性存储器装置的示例包括双倍数据速率同步动态随机存取存储器(DDR SDRAM)、第四代低功率双倍数据速率(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)和Rambus动态随机存取存储器(RDRAM)。非易失性存储器的示例包括电阻式随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)、自旋转移力矩随机存取存储器(STT-RAM)和闪速存储器。例如,闪速存储器可以包括NAND闪速存储器、垂直NAND闪速存储器和NOR闪速存储器。为了便于说明,假设存储器装置100是NAND闪速存储器。
响应于存储器控制器200的控制,存储器装置100可以存储写入数据,或者可以读取所存储的读取数据并且将所读取的数据提供到存储器控制器200。
存储器装置100可以包括至少一个平面。每个平面可以包括存储器单元阵列,存储器单元阵列包括存储写入数据的存储器单元。存储器单元阵列可以包括多个存储块,其中每个存储块是用于执行擦除操作以擦除数据的单位。
存储块可以包括用户块101和/或系统块102。例如,存储块中的一些可以是用户块101,而其他存储块可以是系统块102。用户块101可以存储数据,该数据可以例如是从主机400提供的用户数据。可以存在一个或多个用户块101。
系统块102可以存储元数据,并且在一个或多个实施例中还可以被称为存储固件数据的存储块。可以存在一个或多个系统块102。元数据可以指示关于存储在一个或多个存储块中的数据的信息。例如,元数据可以包括映射数据和有效数据,并且/或者可以包括其他类型的数据。在一个实施例中,映射数据可以指示逻辑地址和物理地址之间的映射关系。有效数据可以指示来自主机400的用户数据的有效性。固件数据可以与由存储器控制器200执行的固件相关。
存储块可以包括多个页面。页面可以是用于执行存储写入数据的编程操作或读取所存储的读取数据的读取操作的单位。
每个存储器单元可以是存储1位数据的单层单元(SLC)、存储2位数据的多层单元(MLC)、存储3位数据的三层单元(TLC),以及存储4位数据的四层单元(QLC)中的一种。在一个实施例中,每个存储器单元可以存储5位或更多位的数据。
根据实施例,存储器装置100可以根据例如平面交错方案来执行由命令指示的操作。在平面交错方案的一个实施例中,对两个或更多个平面的操作可以至少部分地彼此重叠。
存储器控制器200可以控制存储器装置100的全部操作。当向存储装置1000施加电力时,存储器控制器200可以运行固件。
当存储器装置100是闪速存储器装置时,固件可以包括主机接口层、闪存转换层和闪存接口层。可以从外部装置供应电力。主机接口层可以控制主机400和存储器控制器200之间的操作。闪存转换层可以将从主机400提供的逻辑地址转换为物理地址。闪存接口层可以控制存储器控制器200和存储器装置100之间的通信。
存储器控制器200可以控制存储器装置100来执行与来自主机400的请求相对应的操作。例如,存储器控制器200可分别响应于来自主机400的写入请求、读取请求和擦除请求来控制存储器装置100执行编程操作、读取操作和擦除操作。
在编程操作期间,存储器控制器200可以向存储器装置100提供编程命令、物理地址和写入数据。根据实施例,在编程操作期间,存储器控制器200可以向存储器装置100提供编程命令和物理地址。另外,存储器控制器200可以向缓冲存储器300提供清除命令,以便将临时存储在缓冲存储器300中的数据提供(或清除)到存储器装置100。当将临时存储在缓冲存储器300中的数据提供到存储器装置100时,可以擦除临时存储在缓冲存储器300中的数据。
在读取操作期间,存储器控制器200可以向存储器装置100提供读取命令和物理地址。
在擦除操作期间,存储器控制器200可以向存储器装置100提供擦除命令和物理地址。
在一个实施例中,存储器控制器200可以在不考虑(或没有)来自主机400的请求的情况下,生成命令、地址和数据。存储器控制器200可以将由存储器控制器200生成的命令、地址和数据传送到存储器装置100。
例如,存储器控制器200可以生成用于执行后台操作的命令、地址和数据,然后将命令、地址和数据提供到存储器装置100。例如,用于执行后台操作的命令可以是编程命令或读取命令。
后台操作可以是损耗均衡、读取回收和垃圾收集中的至少一种。例如,损耗均衡可以指静态损耗均衡、动态损耗均衡等。静态损耗均衡可以指存储存储块的擦除计数并且将很少执行擦除操作或写入操作(例如,少于预定次数)的冷数据移动到具有最高擦除计数的存储块。动态损耗均衡可以指存储存储块的擦除计数并且将数据编程到具有最低擦除计数的存储块中。
读取回收可以指在存储在存储块中的数据中发生不可校正的错误之前,将存储在存储块中的该数据移动到另一存储块。
垃圾收集可以包括将包括在存储块之中的坏块中的有效数据复制到空闲块,并且擦除坏块中的无效数据。复制坏块中的有效数据可以包括将坏块中包括的有效数据移动到空闲块。
存储器控制器200可以控制至少两个存储器装置100。为了提高操作性能,存储器控制器200可以根据例如交错方案来控制存储器装置100。根据交错方案,对至少两个存储器装置100的操作可以被控制为彼此重叠。
根据实施例,存储器控制器200可以检测在存储装置1000中,例如在存储器装置100、存储器控制器200和/或缓冲存储器300中已经发生的缺陷。根据实施例,当检测到缺陷时,存储器控制器200可以检查该缺陷是否可修复。例如,可以基于预先存储的缺陷信息表中的信息来执行该检查。
缺陷信息表可以包括与在存储装置1000中可能发生的缺陷相对应的信息。在存储装置1000中发生的缺陷可以是可修复的或不可修复的。不可修复缺陷可以例如包括存储装置1000中的硬件的损坏。可修复缺陷可以例如包括由存储器控制器200中的固件执行的意外操作。在其它实施例中,可能发生不同类型的可修复缺陷和不可修复缺陷。
当缺陷是可修复时,存储器控制器200可以检查可修复缺陷的类型,并且根据缺陷的类型来执行恢复操作。例如,可修复缺陷的类型包括第一类型和第二类型。第一类型可以指示在存储器控制器200保持与主机400的连接时也可修复的缺陷。第二类型可以指示通过重启存储装置1000或基于来自主机400的重启命令而可修复的缺陷。
根据实施例,当检测到的缺陷是第一类型时,在恢复操作完成之后,存储器控制器200可以重新开始在缺陷发生之前正在执行的操作。例如,存储器控制器200可以保持与主机400的通信,并且在恢复操作完成之后重新开始在缺陷发生之前正在执行的操作。
根据实施例,当检测到的缺陷是第二类型时,在执行恢复操作之前,存储器控制器200可以向主机400提供缺陷发生响应以通知已经发生缺陷。
根据实施例,当检测到的缺陷是第二类型时,存储器控制器200可以在恢复操作完成之后,直到对存储装置1000的外部电力供应被阻断之前进行等待。当在中断之后再次供电时,存储器控制器200可以重新开始在发生缺陷之前正在执行的操作。
根据实施例,当检测到的缺陷是第二类型时,在恢复操作完成之后,存储器控制器200可以向主机400提供重启响应,以通知将要提供重启命令。存储器控制器200可以在向主机400提供重启响应之后,直到存储器控制器200接收到重启命令之前进行等待。当主机400向存储装置1000提供重启命令时,存储器控制器200可以执行重启操作。
根据实施例,当检测到的缺陷是第二类型时,存储器控制器200可以在恢复操作完成之后自重启。例如,存储器控制器200可以在不考虑(例如,没有接收到)来自主机400的重启命令的情况下,执行重启操作。
存储器控制器200可以包括缺陷信息存储装置210、缺陷信息输出电路220、恢复操作执行器(或逻辑)230和操作控制器240。缺陷信息存储装置210可以存储缺陷信息,该缺陷信息例如指示缺陷。在实施例中,缺陷信息可以包括与不可修复缺陷相对应的第一缺陷信息和与可修复缺陷相对应的第二缺陷信息。缺陷信息可进一步包括关于缺陷类型的信息。一种类型的缺陷可以表示为例如代码编号,但是也可以基于其他类型的信息来表示。
缺陷信息220可以检测或指示缺陷。例如,缺陷可能发生在存储器装置100、存储器控制器200或缓冲存储器300中。缺陷信息输出电路220可以使用存储在缺陷信息存储装置210中的缺陷信息,来输出与检测到的缺陷相对应的缺陷信息。例如,缺陷信息输出电路220可以基于与检测到的缺陷相对应的缺陷信息来输出第一缺陷信息或第二缺陷信息。
当由缺陷信息输出电路220提供的缺陷信息是第二缺陷信息时,恢复操作执行器230可以基于第二缺陷信息来检查(或由第二缺陷信息指示)检测到的缺陷的类型并且可以根据检测到的缺陷的类型执行恢复操作。
操作控制器240可以将用于执行与来自主机400的请求相对应的操作的命令存储在命令队列中。操作控制器240可以向存储器装置100提供存储在命令队列中的一个或多个命令。命令可以是编程命令、读取命令或擦除命令。
根据实施例,当恢复操作开始时,恢复操作执行器230可以向操作控制器240提供通知信号,以停止输出存储在命令队列中的命令。操作控制器240可以响应于通知信号而停止输出存储在命令队列中的命令。
缓冲存储器300可以仅在从电源供电时存储数据。缓冲存储器300可以临时存储来自主机的数据。在实施例中,附加地或可选地,缓冲存储器300可以临时存储来自存储器装置100的数据。
缓冲存储器300可以在存储器控制器200中,或者可以在存储器控制器200外部并且联接到存储器控制器200。例如,缓冲存储器可以是易失性存储器,易失性存储器的示例包括DRAM、SRAM、双倍数据速率同步动态随机存取存储器(DDR SDRAM)、第四代低功率双倍数据速率(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)和Rambus动态随机存取存储器(RDRAM)。
缓冲存储器300可以包括数据缓冲器310和元数据缓冲器320。数据缓冲器310可以临时存储来自主机400的数据。在实施例中,附加地或者可选地,数据缓冲器310可以临时存储来自存储器装置100的数据。存储在数据缓冲器310中的数据可以是写入数据或读取数据。
元数据缓冲器320可以临时存储元数据。附加地或可选地,元数据缓冲器320可以在预定时间,例如启动时间或其他时间,临时存储来自存储器装置100的固件数据。
主机400可以通过接口与存储装置1000通信。例如,接口可以是串行高级技术附件(SATA)接口、高速SATA(SATAe)接口、串列小型计算机系统(SAS)接口、高速外围组件互连(PCIe)接口、高速非易失性存储器(NVMe)接口、高级主机控制器接口(AHCI)、多媒体卡接口或其他类型的接口。
主机400可以将数据存储在存储装置1000中或者可以与存储装置1000通信以获取存储在存储装置1000中的数据。
根据实施例,主机400可以向存储装置1000提供写入请求以将数据存储在存储装置1000中。此外,主机400可以向存储装置1000提供写入请求、数据和用于识别数据的逻辑地址。
响应于来自主机400的写入请求,存储装置1000可以将包括元数据和由主机400提供的数据的写入数据存储到存储器装置100,并且可以向主机400提供响应,以指示写入数据已经完全存储在存储器装置100中。
根据实施例,主机400可以向存储装置1000提供读取请求以将存储在存储装置1000中的数据提供到主机400。此外,主机400可以向存储装置1000提供读取请求和读取地址。
响应于来自主机400的读取请求,存储装置1000可以读取与由主机400提供的读取地址相对应的读取数据,并且可以向主机400提供该读取数据。
图2是示出存储器装置100的实施例的示图,存储器装置100可以包括存储器单元阵列110、外围电路120和控制逻辑130。
参照图2,存储器单元阵列110可以包括多个存储块MB1至MBk,其中k是正整数。存储块MB1至MBk中的每一个可以联接到局部线LL和位线BL1至BLn,其中n是正整数。局部线LL可以联接到行解码器122并且分别联接到存储块MB1至MBk。
局部线LL可以包括第一选择线、第二选择线以及布置在第一选择线和第二选择线之间的多条字线。局部线LL可以进一步包括布置在第一选择线和字线之间的虚设字线、布置在第二选择线和字线之间的虚设字线、以及管线。
位线BL1至BLn可以共同联接到存储块MB1至MBk。
存储块MB1至MBk可以具有二维或三维结构。在二维结构中,存储器单元可以沿平行于衬底的方向布置。在三维结构中,存储器单元可以沿垂直于衬底的方向布置。
外围电路120可以包括电压生成器121、行解码器122、页面缓冲器组123、列解码器124、输入/输出电路125和感测电路126。
电压生成器121可以响应于操作命令OP_CMD而生成针对编程操作、读取操作和擦除操作所施加的各种操作电压Vop。另外,电压生成器121可响应于操作命令OP_CMD来选择性地使局部线LL放电。例如,控制逻辑130可以控制电压生成器121生成编程电压、验证电压、通过电压、导通电压、读取电压、擦除电压和源极线电压。
根据实施例,电压生成器121可以通过调节外部电源电压来生成内部电源电压。可以将由电压生成器121生成的内部电源电压用作存储器装置100的操作电压。
根据实施例,电压生成器121可以使用外部电源电压或内部电源电压来生成多个电压。例如,电压生成器121可以包括接收内部电源电压的多个泵浦电容器,并且通过响应于控制逻辑130的控制而选择性地启用泵浦电容器来生成多个电压。可以通过行解码器122将所生成的电压提供到存储器单元阵列110。
行解码器122可以响应于行地址RADD将操作电压Vop传输到局部线LL。可以通过局部线LL将操作电压Vop传输到所选择存储块(MB1至MBk)。
例如,在编程操作期间,行解码器122可以将编程电压施加到所选择字线,并且将电压电平低于编程电压的电压电平的编程通过电压施加到未选择字线。在编程验证操作期间,行解码器122可以将验证电压施加到所选择字线并且将高于验证电压的验证通过电压施加到未选择字线。
在读取操作期间,行解码器122可以将读取电压施加到所选择字线,并且将高于读取电压的读取通过电压施加到未选择字线。
在擦除操作期间,行解码器122可以根据解码后的地址来选择存储块中的一个。在擦除操作期间,地址解码器122可以将接地电压施加到与所选择存储块联接的字线。
页面缓冲器组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接收的数据,或者可以感测第一至第n位线BL1至BLn的电压或电流。
在编程操作期间,当将编程电压施加到所选择字线时,第一至第n页面缓冲器PB1至PBn可以分别通过第一至第n位线BL1至BLn,将通过列解码器124和输入/输出电路125接收的数据DATA传输到所选择存储器单元。可以根据所传输的数据DATA来编程所选择页面中的存储器单元。联接至施加有编程允许电压(例如,接地电压)的位线的存储器单元可以具有增加的阈值电压。联接至施加有编程禁止电压(例如,电源电压)的位线的存储器单元的阈值电压可以被保持。
在验证操作期间,第一至第n页面缓冲器PB1至PBn可以分别通过第一至第n位线BL1至BLn来感测存储在所选择存储器单元中的数据。
在读取操作期间,第一至第n页面缓冲器PB1至PBn可以响应于列解码器124的控制,分别通过第一至第n位线BL1至BLn来感测来自所选择页面的存储器单元的数据DATA,并且可以将所感测的数据DATA输出到输入/输出电路125。
在擦除操作期间,第一至第n页面缓冲器PB1至PBn可以分别使第一至第n位线BL1至BLn浮置。
列解码器124可以响应于列地址CADD而在输入/输出电路125和页面缓冲器组123之间传输数据。例如,列解码器124可以通过数据线DL与第一至第n页面缓冲器PB1至PBn交换数据,或者可以通过列线CL与输入/输出电路125交换数据。
输入/输出电路125可以将命令CMD和地址ADDR从存储器控制器200传输至控制逻辑130,或者可以与列解码器124交换数据DATA。
感测电路126可以在读取操作或验证操作期间,响应于允许位VRY_BIT<#>而生成参考电流,并且可以将来自页面缓冲器组123的感测电压VPB与通过参考电流生成的参考电压进行比较,以输出通过信号PASS或失败信号FAIL。
控制逻辑130可以响应于命令CMD和地址ADD,通过输出操作命令OP_CMD、行地址RADD、页面缓冲器控制信号PBSIGNALS和允许位VRY_BIT<#>来控制外围电路120。
图3是示出存储块MBi的实施例的示图。例如,存储块MBi可以代表图2中所示的存储块MB1至MBk。
存储块MBi可以包括第一选择线、第二选择线、多条字线WL1至WL16、源极线SL、多条位线BL1至BLn和多个串ST。例如,第一选择线可以是源极选择线SSL。在下文中,可以假设第一选择线为源极选择线SSL。例如,第二选择线可以是漏极选择线DSL。在下文中,可以假设第二选择线为漏极选择线DSL。
字线WL1至WL16可以彼此并行地布置在源极选择线SSL和漏极选择线DSL之间。如图3所示的字线WL1至WL16的数量是说明性示例并且在另一实施例中可以是不同的数量。
可以将源极线SL共同联接至多个串ST。
可以将位线BL1至BLn分别联接至串ST。
串ST可以联接在位线BL1至BLn与源极线SL之间,并且例如可以具有相同的配置。将作为示例描述联接至第一位线BL1的串ST。
串ST可以包括多个存储器单元MC1至MC16、至少一个第一选择晶体管和至少一个第二选择晶体管。存储器单元MC1至MC16可以串联联接在源极选择晶体管SST和漏极选择晶体管DST之间。存储器单元MC1至MC16的栅电极可以分别联接到多条字线WL1至WL16。因此,一个串ST中的存储器单元MC1至MC16的数量可以与字线WL1至WL16的数量相同。
存储器单元MC1至MC16中的每一个可以是存储1位数据的单层单元(SLC)、存储2位数据的多层单元(MLC)、存储3位数据的三层单元(TLC)、存储4位数据四层单元(QLC),或者可以是存储5位或更多位的数据的存储器单元。
在不同串ST中的存储器单元之中的、联接到相同字线的一组存储器单元可以被称为物理页面PG。因此,存储块MBi可以包括数量与字线WL1至WL16的数量一样多的物理页面PG。在下文中,物理页面PG中的存储器单元(例如,MC3)是所选择的存储器单元。
例如,第一选择晶体管可以是源极选择晶体管SST。在下文中,可以假设第一选择晶体管为源极选择晶体管SST。源极选择晶体管SST的第一电极可以联接到源极线SL。源极选择晶体管SST的第二电极可以联接到存储器单元MC1至MC16之中的第一存储器单元MC1。源极选择晶体管SST的栅电极可以联接到源极选择线SSL。
例如,第二选择晶体管可以是漏极选择晶体管DST。在下文中,可以假设第二选择晶体管为漏极选择晶体管DST。漏极选择晶体管DST的第一电极可以联接到存储器单元MC1至MC16之中的第16存储器单元MC16。漏极选择晶体管DST的第二电极可以联接到第一位线BL1。漏极选择晶体管DST的栅电极可以联接到漏极选择线DSL。
图4是示出根据实施例的缺陷信息的示图。例如,如参照图1所描述的,缺陷信息可以被包括在存储在缺陷信息存储装置210中的表中。缺陷信息表可以包括缺陷信息,例如通过实验、设计、制造商要求、测试或通过其他方法来预先生成缺陷信息。此外,可以在发行存储装置1000之前存储缺陷信息。
根据实施例,缺陷信息可以包括与不可修复缺陷相对应的第一缺陷信息和与可修复缺陷相对应的第二缺陷信息。
例如,第一缺陷信息中的不可修复缺陷可以包括输入/输出引脚中的缺陷、命令指针(或程序计数器)指示不可访问的存储器地址的错误情况,和/或另一种类型缺陷。除了由于硬件损坏而导致更换物理配置的情况外,所有不可修复缺陷可以对应于第一缺陷信息。
第二缺陷信息可以包括与在存储器控制器200中的固件(或其他指令)中发生的逻辑缺陷相对应的信息。例如,逻辑缺陷可以包括命令组合缺陷,其指示不能被同时提供到存储器装置100的命令被组合的错误情况;操作冲突,其指示在意想不到的时间,由于控制存储器装置100的操作之间的冲突而导致存储装置1000暂时停止操作的挂起状态;意外操作,其由于固件(或指令)的功能指针中的错误而被执行;和/或另一种类型缺陷。由于操作之间的冲突而导致存储装置1000暂时停止工作的现象可以被称为死锁(deadlock)。
第二缺陷信息可以包括与缓冲存储器300中的物理缺陷相对应的信息。例如,物理缺陷可以是当缓冲存储器300对应于存储器控制器200中的SRAM时,在SRAM的数据缓冲器中发生的位失败。当缓冲存储器300是存储器装置100中的DRAM时,物理缺陷可以是在DRAM的数据缓冲器中发生的位失败。附加地或可选地,在其他实施例中,物理缺陷可以包括其他类型的缺陷。
图5是示出根据缺陷的类型来执行恢复操作的方法的实施例的流程图。
参照图5,该方法包括,在S110,存储器控制器200检测缺陷。
在S120,存储器控制器200确定检测到的缺陷是可修复的还是不可修复的。
在S130,当确定检测到的错误是可修复的(S120,是)时,存储器控制器200可以停止输出存储在命令队列中的命令。
在S140,存储器控制器200可以继续检查检测到的缺陷的类型。
在S150,存储器控制器200可以检查检测到的缺陷的类型是否是第一类型。
在S160,当检测到的缺陷的类型是第一类型(S150,是)时,存储器控制器200可以根据第一类型来执行恢复操作。
在S170,当根据第一类型的恢复操作完成时,存储器控制器200可以加载存储在存储器装置100中的固件数据。例如,当检测到的缺陷的类型是第一类型时,恢复操作执行器230可以控制存储器装置100在重新开始在缺陷发生之前正在执行的操作之前,获取存储在存储器装置100中的固件数据。
在S180,存储器控制器200可以重新开始在缺陷发生之前正在执行的操作。例如,当检测到的缺陷的类型是第一类型时,在恢复操作完成之后,恢复操作执行器230可以输出控制信号以指示将要恢复在缺陷发生之前执行的操作。操作控制器240可以响应于控制信号而重新开始在缺陷发生之前正在执行的操作。
在S190,当检测到的缺陷的类型不是第一类型时,例如当检测到的缺陷的类型是第二类型(S150,否)时,存储器控制器200可以向主机400提供缺陷发生响应。例如,当检测到的缺陷的类型是第二类型时,在执行恢复操作之前,恢复操作执行器230可以向主机400提供缺陷发生响应以指示已经发生缺陷。
在S200,存储器控制器200可以根据第二类型来执行恢复操作。
在S210,存储器控制器200可以执行重置操作。例如,重置操作可以包括响应于外部提供的重启命令的重启、自重启或者直到外部电源被阻断之前的等待。
恢复操作执行器230可以在恢复操作完成之后,直到外部电源被阻断之前进行等待。例如,在完成恢复操作之后,恢复操作执行器230可以向主机400提供重启响应以指示将要提供重启命令。另外,从重启响应被提供到主机400开始,直到存储器控制器200接收到重启命令之前,恢复操作执行器230可以进行等待。另外,恢复操作执行器230可以响应于从主机400提供的重启命令而执行重启。
在一个实施例中,恢复操作执行器230可以在恢复操作完成之后自重启。
在完成重置操作之后,可以执行操作S180。例如,当在电力中断之后再次供电时,恢复操作执行器230可以向操作控制器240输出控制信号以指示将重新开始在缺陷发生之前正在执行的操作。操作控制器240可以响应于控制信号而重新开始在缺陷发生之前正在执行的操作。
在重新启动时,恢复操作执行器230可以加载存储在存储器装置100中的固件数据。
在S220,当检测到的缺陷被确定为不可修复(S120,否)时,存储器控制器200可以将存储装置1000的状态改变为不可修复状态。
图6是示出加载固件数据的方法的实施例的示图。在该实施例中,缺陷信息输出电路220可以使用存储在缺陷信息存储装置210中的缺陷信息表来检测缺陷并且输出与检测到的缺陷相对应的缺陷信息。
恢复操作执行器230可以基于从缺陷信息输出电路220提供的缺陷信息来确定检测到的缺陷是可修复的还是不可修复的。当检测到的缺陷是可修复的时,恢复操作执行器230可以根据检测到的缺陷的类型执行恢复操作。
当恢复操作完成时,恢复操作执行器230可以控制存储器装置100读取固件数据FW_DATA。固件数据FW_DATA可以存储在例如参照图1所描述的系统块102中。存储器装置100可以执行读取固件数据FW_DATA的读取操作并且可以输出所读取的固件数据FW_DATA。
恢复操作执行器230可以将所读取的固件数据FW_DATA加载到缓冲存储器300。可以将所加载的固件数据FW_DATA临时存储在例如上面参照图1描述的元数据缓冲器320中。恢复操作执行器230可以如上所述向操作控制器240输出控制信号。
操作控制器240可以基于临时存储在缓冲存储器300中的固件数据FW_DATA来运行固件。操作控制器240可以响应于来自恢复操作执行器230的控制信号来执行在缺陷发生之前正在执行的操作。
图7是示出存储器控制器200的实施例的示图,存储器控制器200可以包括处理器201、RAM 202、错误校正电路203、主机接口204、ROM 205和闪存接口206。
处理器201可以控制存储器控制器200的全部操作。
可以将RAM 202用作存储器控制器200的缓冲存储器、高速缓存存储器或工作存储器。例如,RAM 202可以是缓冲存储器。
错误校正电路203可以生成错误校正码(ECC)以校正从存储器装置100接收的数据的失败位或错误位。例如,错误校正电路203可对提供至存储器装置100的数据执行错误校正编码,以便生成添加有一个或多个奇偶校验位的数据。可以将一个或多个奇偶校验位存储在存储器装置100中。
另外,错误校正电路203可以对从存储器装置100输出的数据执行错误校正解码。错误校正电路203可以使用奇偶校验来校正错误。例如,错误校正电路203可以使用一种或多种编码调制方案来校正错误。编码的示例包括低密度奇偶校验(LDPC)码、BCH码、turbo码、里德-所罗门码、卷积码、递归系统码(RSC)、TCM和BCM。
错误校正电路203可以在编程操作期间计算待编程到存储器装置100的数据的错误校正码值。错误校正电路203可以在读取操作期间,基于错误校正码值对从存储器装置100读取的数据执行错误校正操作。错误校正电路203可以对通过失败数据的恢复操作而从存储器装置100恢复的数据执行错误校正操作。
存储器控制器200可以通过主机接口204与外部装置(例如,主机400、应用处理器等)通信。
ROM 205可以以固件(或指令)的形式存储待由存储器控制器200使用以进行操作的各种信息。
存储器控制器200可以通过接口206,例如闪存接口,来与存储器装置100通信。存储器控制器200可以通过闪存接口206将命令CMD、地址ADDR和控制信号CTRL传输到存储器装置100或者可以接收数据。闪存接口206可以包括例如NAND接口。
图8是示出可以应用根据本文描述的实施例中的任意实施例的存储装置的存储卡系统2000的实施例的框图。
参照图8,存储卡系统2000可以包括存储器装置2100、存储器控制器2200和连接器2300。在实施例中,存储器装置2100可以被实施成各种非易失性存储器装置中的任意一种。示例包括电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)、自旋转移力矩磁性RAM(STT-MRAM)。
存储器控制器2200可以联接至存储器装置2100,并且访问存储器装置2100。存储器控制器2200可以控制存储器装置2100的读取操作、写入操作、擦除操作和后台操作。存储器控制器2200可以被配置成用作存储器装置2100和主机之间的接口。存储器控制器2200可以被配置成驱动用于控制存储器装置2100的固件(或其他类型的指令)。例如,存储器控制器2200可以具有与参照图1所描述的存储器控制器200相同的配置。
在实施例中,存储器控制器2200可以包括诸如随机存取存储器(RAM)、处理单元、主机接口、闪存接口和/或ECC电路的组件。存储器控制器2200可以通过连接器2300与外部装置通信并且可以基于通信协议与外部装置(例如,主机)通信。通信协议的示例包括通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙和非易失性存储器表达(NVMe)协议。在实施例中,连接器2300可以由上述各种通信协议中的至少一种来定义。
存储器装置2100和存储器控制器2200可以集成到单个半导体装置中以形成存储卡。存储卡的示例包括个人计算机存储卡国际协会(PCMCIA)、紧凑型闪存卡(CF)、智能媒体卡(SM或SMC)、记忆棒、多媒体卡(MMC、RS-MMC或微型MMC)、SD卡(SD、迷你SD、微型SD或SDHC)、通用闪存(UFS)等。
图9是示出可以应用根据本文描述的实施例的任意实施例的存储装置的固态驱动器(SSD)系统的实施例的框图。
参照图9,SSD系统可以包括主机400和SSD 3000。SSD 3000可以通过信号连接器3001与主机400交换信号SIG,并且可以通过电源连接器3002接收电力PWR。SSD 3000可以包括SSD控制器3200、多个闪速存储器3100_1、3100_2和3100_n、辅助电源3300和缓冲存储器3400。
在实施例中,SSD控制器3200可以执行例如参照图1描述的存储器控制器200的功能。
SSD控制器3200可以响应于从主机400接收的信号SIG来控制闪速存储器3100_1、3100_2和3100_n。在实施例中,信号SIG可以基于主机400和SSD 3000的接口。例如,信号SIG可以对应于各种接口中的至少一种。示例性接口包括通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、WiFi、蓝牙和高速非易失性存储器(NVMe)接口。
辅助电源3300可以通过电源连接器3002联接到主机400。辅助电源3300可以利用来自主机400的电力PWR来供电和充电。当来自主机400的电力供应不平稳(或者没有根据预定的电平或模式供应)时,辅助电源3300可以向SSD 3000提供电力。在实施例中,辅助电源3300可以位于SSD 3000内部,或者位于SSD 3000外部并且联接到SSD 3000。例如,辅助电源3300可以位于主板上并且可以向SSD 3000提供辅助电源。
例如,缓冲存储器3400可以临时存储从主机400接收的数据和/或从闪速存储器3100_1、3100_2和3100_n接收的数据。附加地或可选地,缓冲存储器3400可以临时存储闪速存储器3100_1、3100_2和3100_n的元数据(例如,映射表)。缓冲存储器3400可以包括一个或多个易失性存储器(例如,DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM、GRAM等)和/或一个或多个非易失性存储器(例如,FRAM、ReRAM、STT-MRAM、PRAM等)。
图10是示出可以应用根据本文描述的实施例中的任意实施例的存储装置的用户系统4000的实施例的框图。
参照图10,用户系统4000可以包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可以驱动用户系统4000中的组件、操作系统(OS)和/或用户程序。在实施例中,应用处理器4100可以包括用于控制用户系统4000中的组件的控制器、接口、图形引擎等。在一个实施例中,应用处理器4100可以被设置为片上系统(SoC)。
存储器模块4200可以作为用户系统4000的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器模块4200可以包括一个或多个易失性RAM(例如,DRAM、SDRAM、DDRSDRAM、DDR2SDRAM、DDR3 SDRAM、LPDDR SDARM、LPDDR2 SDRAM、LPDDR3 SDRAM等)和/或一个或多个非易失性RAM(例如PRAM、ReRAM、MRAM、FRAM等)。在实施例中,应用处理器4100和存储器模块4200可以基于层叠封装(POP)来封装,并且然后可被设置为单个半导体封装。
网络模块4300可以与外部装置通信。例如,网络模块4300可以支持诸如以下的无线通信:码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、Wimax、WLAN、UWB、蓝牙或WiFi通信。在实施例中,网络模块4300可以被包括在应用处理器4100中。
例如,存储模块4400可以存储从应用处理器4100接收的数据。在一个实施例中,存储模块4400可以将存储在存储模块4400中的数据传送到应用处理器4100。在实施例中,存储模块4400可以被实施为非易失性半导体存储器装置。示例包括相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪速存储器、NOR闪速存储器或具有三维(3D)结构的NAND闪速存储器。在实施例中,存储模块4400可以被设置为可移除存储介质(例如,可移除驱动器),诸如用户系统4000的存储卡和外部驱动器。
例如,存储模块4400可以包括例如以与参照图1描述的存储器装置100相同的方式操作的多个非易失性存储器装置。存储模块4400可以例如以与参照图1描述的存储装置1000相同的方式操作。
用户接口4500可以包括向应用处理器4100输入数据或命令或者向外部装置输出数据的接口。在实施例中,用户接口4500可以包括一个或多个用户输入接口(例如,键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器、压电装置等)和/或一个或多个用户输出接口(例如,液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器、监视器等)。
根据实施例,一种设备包括被配置为存储指令的存储装置和被配置为执行指令以执行本文描述的实施例中的任何一个的逻辑。例如,该逻辑可以被配置为检测在存储器控制器或缓冲存储器中的至少一个中发生的缺陷,基于缺陷信息表中的信息来检查该缺陷是否可修复,并且当缺陷是可修复的时,基于缺陷的类型执行恢复操作。例如,逻辑可以对应于本文描述的存储器控制器。
根据上述实施例中的一个或多个,提供了一种具有提高的可靠性的存储器控制器和包括这种存储器控制器的存储装置。
本文描述的方法、过程和/或操作可以通过待由计算机、处理器、控制器或其他信号处理装置执行的代码或指令来执行。计算机、处理器、控制器或其他信号处理装置可以是本文描述的那些或者除了本文描述的元件之外的计算机、处理器、控制器或其他信号处理装置。因为描述了基于方法(或计算机、处理器、控制器或其他信号处理装置的操作)而形成的算法,用于实施方法实施例的操作的代码或指令可以将计算机、处理器、控制器、或其他信号处理装置转换成用于执行本文的方法的专用处理器。
当至少部分地以软件实施时,控制器、处理器、装置、模块、执行器、单元、多路复用器、生成器、逻辑、接口、解码器、驱动器、生成器和其他信号生成和信号处理功能可以包括,例如,用于存储待由例如计算机、处理器、微处理器、控制器或其他信号处理装置执行的代码或指令的存储器或其他存储装置。计算机、处理器、微处理器、控制器或其他信号处理装置可以是本文描述的那些元件或者除了本文描述的元件之外的计算机、处理器、微处理器、控制器或其他信号处理装置。因为详细描述了形成方法(或计算机、处理器、控制器或其他信号处理装置的操作)的基础的算法,用于实施方法实施例的操作的代码或指令可以将计算机、处理器、微处理器、控制器、或其他信号处理装置转换成用于执行本文的方法的专用处理器。
在以上讨论的实施例中,所有的步骤都可以选择性地执行或跳过。另外,每个实施例中的步骤可不总是以规定的顺序执行。此外,本说明书和附图中所公开的实施例旨在帮助本领域普通技术人员更清楚地理解本公开,而非旨在限制本公开的范围。换言之,本公开所属领域的普通技术人员将能够容易地理解到,可以基于本公开的技术范围进行各种修改。对本领域技术人员显而易见的是,在不脱离本发明的精神或范围的情况下,可以对本公开的上述示例性实施例进行各种修改。因此,只要这些修改处在所附权利要求及其等同方案的范围内,本公开旨在涵盖所有这些修改。

Claims (20)

1.一种存储器控制器,包括:
存储装置,存储与不可修复缺陷相对应的第一缺陷信息和与可修复缺陷相对应的第二缺陷信息;
输出电路,检测所述存储器控制器中的缺陷,并且输出所述第一缺陷信息或所述第二缺陷信息作为与检测到的缺陷相对应的缺陷信息;以及
逻辑,当所述缺陷信息对应于所述第二缺陷信息时,基于所述第二缺陷信息来检查所述检测到的缺陷的类型,并且根据所述检测到的缺陷的类型来执行恢复操作。
2.根据权利要求1所述的存储器控制器,其中在所述恢复操作完成之后,所述逻辑输出控制信号以指示将要重新开始在发生所述缺陷之前正在执行的操作。
3.根据权利要求2所述的存储器控制器,其中
当所述检测到的缺陷的类型为第一类型时,所述逻辑控制所述存储器装置以在重新开始在所述缺陷发生之前执行的操作之前,获取存储在所述存储器装置中的固件数据。
4.根据权利要求2所述的存储器控制器,其中
当所述检测到的缺陷的类型为第二类型时,所述逻辑在所述恢复操作完成之后,直到由外部供应的电力被阻断之前进行等待。
5.根据权利要求4所述的存储器控制器,其中当电力被阻断之后再次供应电力时,所述逻辑输出控制信号以指示将要重新开始在所述缺陷发生之前正在执行的操作。
6.根据权利要求2所述的存储器控制器,其中
当所述检测到的缺陷的类型为第二类型时,在所述恢复操作完成之后,所述逻辑向主机提供重启响应以指示将要提供重启命令。
7.根据权利要求6所述的存储器控制器,其中从所述重启响应被提供到所述主机开始,直到所述重启命令被提供到所述存储器控制器之前,所述逻辑进行等待。
8.根据权利要求2所述的存储器控制器,其中
当所述检测到的缺陷的类型为第二类型时,在所述恢复操作完成之后,所述逻辑执行重启。
9.根据权利要求2所述的存储器控制器,其中
当所述检测到的缺陷的类型为第二类型时,在执行所述恢复操作之前,所述逻辑向主机提供缺陷发生响应以提供已经发生所述缺陷的通知。
10.根据权利要求1所述的存储器控制器,其中所述第二缺陷信息包括:
指示在所述存储器控制器的固件中发生逻辑缺陷的信息,以及
指示在所述存储器控制器中的缓冲存储器中发生物理缺陷的信息。
11.根据权利要求1所述的存储器控制器,进一步包括:
操作控制器,将执行与请求相对应的操作的命令存储在命令队列中,并且向所述存储器装置提供存储在所述命令队列中的命令,
其中,当所述恢复操作开始时,所述逻辑向所述操作控制器提供通知信号以停止输出存储在所述命令队列中的命令。
12.一种存储装置,包括:
存储器装置,包括多个存储块;
缓冲存储器,临时存储来自主机或所述存储器装置的数据;以及
存储器控制器,控制所述存储器装置执行与来自所述主机的请求相对应的操作,其中所述存储器控制器:
检测在所述存储器控制器或所述缓冲存储器中发生的缺陷,
基于缺陷信息表中的信息来检查所述缺陷是否可修复,并且
当所述缺陷是可修复的时,根据所述缺陷的类型来执行恢复操作。
13.根据权利要求12所述的存储装置,其中
所述缺陷信息表包括与不可修复缺陷相对应的第一缺陷信息和与可修复缺陷相对应的第二缺陷信息,并且
所述第二缺陷信息指示在所述存储器控制器的固件中发生的逻辑缺陷和在所述缓冲存储器中发生的物理缺陷。
14.根据权利要求12所述的存储装置,其中,在所述恢复操作完成之后,所述存储器控制器重新开始在所述缺陷发生之前正在执行的操作。
15.根据权利要求14所述的存储装置,其中
当检测到的缺陷的类型为第二类型时,所述存储器控制器在所述恢复操作完成之后,直到由外部向所述存储装置供应的电力被阻断之前进行等待。
16.根据权利要求15所述的存储装置,其中,当电力被阻断之后再次供应电力时,所述存储器控制器重新开始在所述缺陷发生之前正在执行的操作。
17.根据权利要求14所述的存储装置,其中
当检测到的缺陷的类型为第二类型时,在所述恢复操作完成之后,所述存储器控制器向所述主机提供重启响应以指示将要提供重启命令。
18.根据权利要求17所述的存储装置,其中,从所述重启响应被提供到所述主机开始,直到所述重启命令被提供到所述存储器控制器之前,所述存储器控制器进行等待。
19.根据权利要求14所述的存储装置,其中
当检测到的缺陷的类型为第二类型时,在所述恢复操作完成之后,所述存储器控制器执行重启操作。
20.根据权利要求14所述的存储装置,其中
当检测到的缺陷的类型为第二类型时,在执行所述恢复操作之前,所述存储器控制器向所述主机提供缺陷发生响应以指示已经发生所述缺陷。
CN202110935735.3A 2020-12-14 2021-08-16 存储器控制器以及包括存储器控制器的存储装置 Withdrawn CN114627939A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2020-0174348 2020-12-14
KR1020200174348A KR20220084662A (ko) 2020-12-14 2020-12-14 메모리 컨트롤러 및 이를 포함하는 저장 장치

Publications (1)

Publication Number Publication Date
CN114627939A true CN114627939A (zh) 2022-06-14

Family

ID=81896804

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110935735.3A Withdrawn CN114627939A (zh) 2020-12-14 2021-08-16 存储器控制器以及包括存储器控制器的存储装置

Country Status (3)

Country Link
US (1) US20220187996A1 (zh)
KR (1) KR20220084662A (zh)
CN (1) CN114627939A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240126438A1 (en) * 2022-10-18 2024-04-18 Qualcomm Incorporated Metadata registers for a memory device

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9898215B2 (en) * 2015-12-07 2018-02-20 International Business Machines Corporation Efficient management of page retirement in non-volatile memory utilizing page retirement classes
US10078567B2 (en) * 2016-03-18 2018-09-18 Alibaba Group Holding Limited Implementing fault tolerance in computer system memory

Also Published As

Publication number Publication date
KR20220084662A (ko) 2022-06-21
US20220187996A1 (en) 2022-06-16

Similar Documents

Publication Publication Date Title
CN107766257B (zh) 存储器系统及其操作方法
CN107562649B (zh) 存储器系统及其操作方法
US10073623B2 (en) Memory system and operation method for the same
US10489078B2 (en) Controller keeping a sequence of data and operating method thereof
US20190107961A1 (en) Memory system and operating method of the same
US10553296B2 (en) Memory device and operating method thereof
US10664391B2 (en) Controller and operating method thereof
CN110556152B (zh) 存储器装置、其操作方法以及包括其的存储器系统
CN111309638B (zh) 存储器系统及其操作方法
CN110910941B (zh) 存储器系统及其操作方法
US20180374552A1 (en) Memory system and operation method thereof
US10423337B2 (en) Controller processing data based on a plurality of values and operating method thereof
CN110751972A (zh) 存储器系统及该存储器系统的操作方法
CN111241002A (zh) 存储器系统及其操作方法
US20190012109A1 (en) Memory system and operating method for the memory system
US10460809B2 (en) Memory system and operating method thereof
US20200265901A1 (en) Memory device and operation method thereof
CN110349615B (zh) 控制器、其操作方法及包括控制器的存储器系统
KR20150068679A (ko) 메모리 시스템 및 이를 포함하는 컴퓨팅 시스템
CN108986864B (zh) 控制器和存储器系统以及存储器系统的操作方法
US20220187996A1 (en) Memory controller and storage device including same
CN110262981B (zh) 控制器及该控制器的操作方法
US10725910B2 (en) Controller for recovering map segments in case of sudden power off and operating method thereof
US10698810B2 (en) Memory system and operating method thereof
CN114255809A (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: 20220614