CN111752470A - 存储器控制器及其操作方法 - Google Patents
存储器控制器及其操作方法 Download PDFInfo
- Publication number
- CN111752470A CN111752470A CN201911044922.1A CN201911044922A CN111752470A CN 111752470 A CN111752470 A CN 111752470A CN 201911044922 A CN201911044922 A CN 201911044922A CN 111752470 A CN111752470 A CN 111752470A
- Authority
- CN
- China
- Prior art keywords
- code
- mode
- memory
- normal
- recovery
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
-
- 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/1441—Resetting or repowering
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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/065—Replication mechanisms
-
- 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/0653—Monitoring storage devices or 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/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/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/1097—Boot, Start, Initialise, Power
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Computer Networks & Wireless Communication (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本公开涉及存储器控制器及其操作方法。存储器控制器控制数据存储设备,该数据存储设备包括其中存储有恢复代码的非易失性存储器。存储器控制器包括:模式转换器,用于根据表示数据存储设备的功耗的功率感测信息,将数据存储设备的操作模式确定为正常模式或睡眠模式;恢复代码存储装置,包括存储用于恢复操作的恢复代码的非易失性存储器;以及代码执行器,用于通过执行恢复代码来执行恢复操作。模式转换器存储指示非易失性存储器中存储恢复代码的位置的恢复代码地址。
Description
相关申请的交叉引用
本申请根据35U.S.C第119(a)条要求于2019年3月27日提交的韩国专利申请10-2019-0035066的优先权,其全部内容通过引用合并于此。
技术领域
本公开总体上涉及一种电子设备,并且更具体地涉及一种存储器控制器及其操作方法。
背景技术
存储设备在诸如计算机、智能电话或智能平板等主机设备的控制下存储数据。存储设备可以具有其上存储有这样的数据的磁盘(诸如硬盘驱动器(HDD))、或其上存储有这样的数据的半导体存储器(即,非易失性存储器)(诸如固态驱动器(SSD)或存储器卡)。
存储设备可以包括配置为存储数据的存储器设备和被配置为控制存储器设备的存储器控制器。存储器设备可以是易失性存储设备或非易失性存储设备。非易失性存储设备的示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、相变RAM(PRAM)、磁RAM(MRAM)、电阻RAM(RRAM)、铁电RAM(FRAM)等。
发明内容
实施例提供了一种被配置为以正常模式操作执行存储在非易失性存储器中的恢复代码的存储器控制器,以及该存储器控制器的操作方法。
根据本公开的一方面,提供了一种用于控制数据存储设备的存储器控制器,该存储器控制器包括:模式转换器,被配置为根据表示数据存储设备的功耗的功率感测信息,将数据存储设备的操作模式确定为正常模式或睡眠模式的;恢复代码存储装置,包括存储有用于恢复操作的恢复代码的非易失性存储器;以及代码执行器,被配置为通过执行恢复代码来执行恢复操作,其中模式转换器存储指示非易失性存储器中存储恢复代码的位置的恢复代码地址。
根据本公开的另一方面,提供了一种用于操作用于控制数据存储设备的存储器控制器的方法,该方法包括:通过感测数据存储设备的功耗来生成功率感测信息,根据功率感测信息将数据存储设备的操作模式确定为正常模式或睡眠模式,以及基于数据存储设备的操作模式来存储指示非易失性存储器中存储恢复代码的位置的恢复代码地址。
根据本公开的另一方面,提供了一种用于控制存储器设备的控制器的操作方法,该操作方法包括:当存储器设备进入第一模式时,将代码地址从第一存储器复制到第二存储器;以及当存储器设备退出第一模式并且进入第二模式时,通过执行恢复代码来对存储器设备执行恢复操作,其中第一存储器是非易失性的,其中恢复代码存储在第一存储器内由代码地址指示的区域中,并且其中第一存储器和第二存储器被包括在控制器中。
附图说明
下面参考附图更全面地描述各种实施例;然而,本发明的特征和方面可以以不同的形式体现,并且因此不应当被解释为限于本文中阐述的实施例。相反,提供这些实施例是为了使得本公开彻底和完整,并且将实施例的范围充分传达给本领域技术人员。
在附图中,为了图示清楚,可以放大尺寸。应当理解,当元件被称为在两个元件之间时,它可以是这两个元件之间的唯一元件,或者也可以存在一个或多个中间元件。贯穿全文,相似的附图标记指代相似的元素。另外,在整个说明书中,对“一个实施例”、“另一实施例”等的引用不一定仅是一个实施例,并且对任何这样的短语的不同引用不一定是相同的实施例。
图1是示出存储设备的框图;
图2是示出当存储设备的操作模式从正常模式转换为睡眠模式时执行的操作的图;
图3是示出存储设备的操作模式从睡眠模式转换为正常模式的过程的图;
图4是示出当存储设备的操作模式不能从睡眠模式转换为正常模式时存储设备的重置操作的图;
图5是示出在接收到恢复代码之后的操作的图;
图6是示出在执行恢复代码之后的存储设备的操作的图;
图7是示出诸如图1所示的存储器设备的结构的框图;
图8是示出诸如图7所示的存储器单元阵列的实施例的图;
图9是示出图8所示的存储器块中的代表性存储器块的电路图;
图10是示出图8所示的存储器块中的代表性存储器块的另一实施例的电路图;
图11是示出根据本公开的实施例的存储器控制器的操作的图;
图12是示出根据本公开的实施例的存储器控制器的操作的图;
图13是示出根据本公开的实施例的存储器控制器的操作的图;
图14是示出图1所示的存储器控制器的另一实施例的图;
图15是示出根据本公开的实施例的应用有存储设备的存储卡***的框图;
图16是示出根据本公开的实施例的应用有存储设备的固态驱动器(SSD)***的框图;以及
图17是示出根据本公开的实施例的应用有存储设备的用户***的框图。
具体实施方式
本文中公开的具体结构和功能描述仅出于描述本发明的实施例的目的。然而,本发明的特征和方面可以以各种其他方式来实现。因此,本发明不限于本文中阐述的实施例。
详细地示出和描述了本实施例。然而,本发明不限于特定细节或者不由特定细节限定。相反,本发明包括不脱离本公开的精神和技术范围的所有改变、等同或替代。
尽管可以使用诸如“第一”和“第二”等术语来标识各种组件,但是这些组件一定不能被理解为限于以上术语。以上术语仅用于区分一个组件与另一组件。例如,在不脱离本公开的权利范围的情况下,第一组件可以被称为第二组件,反之亦然。
应当理解,当元件被称为“连接”或“耦合”到另一元件时,其可以直接连接或耦合到另一元件,或者也可以存在一个或多个中间元件。相反,当一个元件被称为“直接连接”或“直接耦合”到另一元件时,不存在中间元件。可以类似地解释描述组件之间的关系的其他表达,诸如“~之间”、“紧接在~之间”或“~附近”以及“紧接在~附近”。
在本申请中使用的术语仅用于描述特定实现,而非旨在限制本发明。除非上下文另外明确指出,否则本公开中的单数形式旨在包括复数形式,反之亦然。还应当理解,诸如“包括”或“具有”等术语旨在指示说明书中公开的特征、数目、操作、动作、组件、部件或其组合的存在,而不旨在排除可以存在或可以添加一个或多个其他特征、数目、操作、动作、组件、部件或其组合的可能性。
除非没有另外定义,否则本文中使用的所有术语(包括技术或科学术语)均具有本公开所属领域的技术人员通常理解的含义。应当理解具有在字典中被定义的定义的术语,使得它们具有与相关技术的上下文相一致的含义。只要在本申请中没有明确定义,就不应当以理想的或过度正式的方式来理解术语。
可以省略对本公开所属领域中公知的并且与本公开不直接相关的技术的描述,以免不必要地模糊本发明的特征和方面。
下面参考附图详细描述本公开的各种实施例,以使本领域技术人员能够容易地实现和实践本发明。
图1是示出存储设备的框图。
参考图1,存储设备50可以包括存储器设备100和存储器控制器200。
存储设备50可以是用于在主机300(诸如移动电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视、平板电脑或车载信息娱乐***)的控制下存储数据的设备。
存储设备50可以根据作为与主机300的通信方案的主机接口而被配置为各种类型的存储设备中的任何一种。例如,存储设备50可以由多种类型的存储设备中的任何一种来实现,诸如固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、缩小尺寸MMC(RS-MMC)、微型MMC(微型MMC)、安全数字(SD)卡、迷你SD卡、微型SD卡、通用串行总线(USB)存储设备、通用闪存(UFS)设备、紧凑型闪存(CF)卡、智能媒体卡(SMC)、存储器棒等。
存储设备50可以被制造为各种封装类型中的任何一种。例如,存储设备50可以被制造为各种类型的封装类型中的任何一种,诸如封装上封装(POP)、封装内***(SIP)、片上***(SOC)、多芯片封装(MCP)、板载芯片(COB)、晶圆级制造封装(WFP)和晶圆级堆叠封装(WSP)。
存储器控制器200可以控制存储设备50的整体操作。
当对存储设备50供电时,存储器控制器200可以执行固件(FW)。当存储器设备100是闪存设备时,存储器控制器200可以执行诸如FTL的FW,以用于控制主机300与存储器设备100之间的通信。
存储器控制器200可以包括模式转换器210。模式转换器210可以基于表示存储设备50的功耗的感测信息,来确定存储设备50的操作模式是正常模式还是睡眠模式。感测信息可以是包括关于功耗的信息的功率感测信息。
存储设备50的功耗可以小于或等于参考功耗,或者大于参考功耗。参考功耗可以预设。参考功耗可以改变。
当存储设备的功耗小于或等于参考功耗时,存储设备50可以以睡眠模式操作。当存储设备50的功耗为低时,睡眠模式可以是存储设备50的操作模式。也就是说,当存储设备的功耗小于或等于参考功耗时,模式转换器210可以将存储设备50的操作模式确定为睡眠模式。
当存储设备50的操作模式是睡眠模式时,存储设备50可以执行第一操作。第一操作可以包括用于操作存储设备50的最小操作。用于操作存储设备50的最小操作可以是用于维持存储设备50的通电状态的操作。
在另一实施例中,存储设备50的功耗可以超过参考功耗。当存储设备50的功耗超过参考功耗时,存储设备50可以以正常模式操作。也就是说,正常模式可以是当功耗超过参考功耗时的存储设备的操作模式。因此,当功耗超过参考功耗时,模式转换器210可以将存储设备50的操作模式确定为正常模式。
当存储设备50的操作模式是正常模式时,存储设备50可以执行第二操作。第二操作可以包括一些第一操作。第二操作可以是由存储设备50执行的通用操作。由存储设备50执行的通用操作可以包括编程操作、读取操作和擦除操作。除了上述操作之外,由存储设备50执行的通用操作可以包括各种其他操作。
模式转换器210可以基于存储设备50的功耗来转换存储设备50的操作模式。存储设备50可以是被配置为存储数据的数据存储设备。在一个实施例中,当处于睡眠模式的存储设备50的功耗超过参考功耗时,模式转换器210可以将存储设备50的操作模式从睡眠模式转换为正常模式。相反,当处于正常模式的存储设备50的功耗小于或等于参考功耗时,模式转换器210可以将存储设备50的操作模式从正常模式转换为睡眠模式。
存储器控制器200可以包括恢复代码存储装置220。恢复代码存储装置220可以存储恢复代码REC_CODE。恢复代码存储装置220还可以存储表示恢复代码存储装置220内存储恢复代码REC_CODE的位置的恢复代码地址RC_ADDR。恢复代码REC_CODE可以是用于恢复操作的代码。具体地,恢复代码REC_CODE可以是用于确定存储在存储器控制器200中的数据是无错误还是可纠错的代码。另外,恢复代码REC_CODE可以是用于对数据纠错的代码。恢复代码REC_CODE可以在存储设备50的操作模式从睡眠模式转换为正常模式时执行。
通常,恢复代码REC_CODE存储在随机存取存储器(RAM)(即,易失性存储器)中。因此,当在存储设备50处于睡眠模式时发生诸如突然断电(SPO)等异常情况时,恢复代码REC_CODE可能被改变,例如变为损坏。因此,即使执行恢复代码REC_CODE,也无法进行正常恢复,并且因此,存储设备50的操作可能会停止。
然而,在本公开中,恢复代码REC_CODE可以与用于存储设备50的引导操作的引导代码一起存储在只读存储器(ROM)中。ROM可以配置有非易失性存储器。在本公开中,恢复代码REC_CODE可以存储在恢复代码存储装置220中。恢复代码存储装置220可以包括非易失性存储器。也就是说,恢复代码REC_CODE可以存储在非易失性存储器中。
因此,即使断电,也可以维持存储在恢复代码存储装置220中的恢复代码REC_CODE的完整性。另外,由于恢复代码REC_CODE存储在非易失性存储器中,因此即使存储设备50处于异常状态,恢复代码REC_CODE也不会改变。
在本公开中,恢复代码地址RC_ADDR可以存储在模式转换器210中。另外,在执行恢复代码REC_CODE之后,用于执行正常代码NM_CODE的正常代码地址NC_ADDR可以存储在模式转换器210中。正常代码地址NC_ADDR可以表示正常代码存储装置240内存储正常代码NM_CODE的位置。模式转换器210可以包括其中存储有恢复代码地址RC_ADDR和正常代码地址NC_ADDR的非易失性存储器。
因此,由于恢复代码REC_CODE存储在非易失性存储器中,所以可以确保恢复操作的可靠性。此外,当执行恢复操作时,存储设备50的操作不会停止。
存储器控制器200可以包括代码执行器230。当存储设备50的操作模式基于存储设备50的功耗而从睡眠模式转换为正常模式时,代码执行器230可以执行操作。具体地,代码执行器230可以执行分别由从模式转换器210接收的、正常代码地址NC_ADDR和恢复代码地址RC_ADDR指示的恢复代码REC_CODE和正常代码NM_CODE。
在一个实施例中,代码执行器230可以通过执行恢复代码REC_CODE来执行恢复操作。另外,在执行恢复代码REC_CODE之后,代码执行器230可以执行正常代码NM_CODE。当正常代码NM_CODE的执行完成时,代码执行器230可以输出正常模式设置请求NMS_REQ,以允许存储设备50以正常模式操作。
存储器控制器200可以包括正常代码存储装置240。正常代码存储装置240可以存储正常代码NM_CODE和正常代码地址NC_ADDR。正常代码存储装置240可以配置有易失性存储器。正常代码NM_CODE可以是在执行恢复代码REC_CODE之后执行的代码。而且,正常代码NM_CODE可以是被执行以使得存储设备50能够以正常模式操作的代码。
也就是说,正常代码NM_CODE可以用于在存储设备50以正常模式操作之前执行后台操作。为了在执行恢复代码REC_CODE之后执行正常代码NM_CODE,模式转换器210可以存储指示正常代码NM_CODE的存储位置的正常代码地址NC_ADDR。当执行正常代码NM_CODE时,存储设备50可以以正常模式操作。
存储器控制器200可以包括重置控制器250。重置控制器250可以响应于从代码执行器230接收的重置请求RST_REQ而执行重置操作。当代码执行器230即使通过执行恢复代码REC_CODE也无法对存储在存储器控制器200中的数据进行纠错时,可以执行重置操作。具体地,可以基于当存储设备50的操作模式从睡眠模式转换为正常模式时执行的恢复操作的结果来执行重置操作。当代码执行器230即使通过执行恢复代码REC_CODE也无法对存储在存储器控制器200中的数据进行纠错时,可以执行重置操作。
存储器设备100可以存储数据。存储器设备100在存储器控制器200的控制下操作。存储器设备100可以包括存储器单元阵列,该存储器单元阵列包括用于存储数据的多个存储器单元。存储器单元阵列可以包括多个存储器块。每个存储器块可以包括多个存储器单元。一个存储器块可以包括多个页面。在一个实施例中,页面可以是用于在存储器设备100中存储数据或读取存储在存储器设备100中的数据的单元。存储器块可以是用于擦除数据的单元。
在一个实施例中,存储器设备100可以是双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功耗双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SRAM、低功耗DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪存、垂直NAND闪存、NOR闪存、电阻随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)、自旋转移转矩随机存取存储器(STT-RAM)等。在本说明书中,作为示例,假定并且描述了存储器设备100是NAND闪存的情况。
在一个实施例中,存储器设备100可以以三维阵列结构来实现。本公开不仅可以应用于其中电荷存储层配置有浮栅(FG)的闪存设备,而且还可以应用于其中电荷存储层配置有绝缘层的电荷陷阱闪存(CTF)。
在一个实施例中,存储器设备100中包括的每个存储器单元可以被配置为用于存储一个数据位的单级单元(SLC)。另外,存储器设备100中包括的每个存储器单元可以被配置为用于存储两个数据位的多级单元(MLC)、用于存储三个数据位的三级单元(TLC)或用于存储四个数据位的四级单元(QLC)。
存储器设备100被配置为从存储器控制器200接收命令和地址,并且访问存储器单元阵列中由该地址选择的区域。也就是说,存储器设备100可以对由该地址选择的区域执行与该命令相对应的操作。例如,存储器设备100可以执行写入(编程)操作、读取操作和擦除操作。在编程操作中,存储器设备100可以对由该地址选择的区域中的数据进行编程。在读取操作中,存储器设备100可以从由该地址选择的区域读取数据。在擦除操作中,存储器设备100可以擦除存储在由该地址选择的区域中的数据。
在一个实施例中,存储器控制器200可以从主机300接收数据和逻辑块地址(LBA),并且将LBA转换成表示存储器设备100中包括的要在其中存储数据的存储器单元的地址的物理块地址(PBA)。而且,存储器控制器200可以在缓冲存储器中存储在LBA与PBA之间建立映射关系的映射信息。
存储器控制器200可以响应于来自主机300的请求而控制存储器装置100执行编程操作、读取操作、擦除操作等。在编程操作中,存储器控制器200可以向存储器设备100提供编程命令、PBA和数据。在读取操作中,存储器控制器200可以向存储器设备100提供读取命令和PBA。在擦除操作中,存储器控制器200可以向存储器设备100提供擦除命令和PBA。
在一个实施例中,存储器控制器200可以在没有主机300的任何请求的情况下自主地生成编程命令、地址和数据,并且将编程命令、地址和数据传输到存储器设备100。例如,存储器控制器200可以将命令、地址和数据提供给存储器设备100以执行后台操作,诸如用于损耗均衡的编程操作和用于垃圾收集的编程操作。
在一个实施例中,存储器控制器200可以控制至少两个存储器设备100。存储器控制器200可以根据交织方案来控制存储器设备,从而提高操作性能。
主机300可以使用各种通信协议(诸如通用串行总线(USB)、串行AT附件(SATA)、高速芯片间(HSIC)、小型计算机***接口(SCSI)、火线、***组件互连(PCI)、PCI Express(PCIe)、非易失性存储器Express(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式内存模块(DIMM)、注册DIMM(RDIMM)和减载DIMM(LRDIMM))中的至少一种与存储设备50通信。
图2是示出当存储设备的操作模式从正常模式转换为睡眠模式时执行的操作的图。
参考图2,存储器控制器200可以包括模式转换器210和恢复代码存储装置220。在图2中,假定其中省略了被包括在存储器控制器200中的代码执行器230、正常代码存储装置240和重置控制器250的情况。
模式转换器210可以接收表示存储设备50的功耗的感测信息。存储设备50可以是被配置为存储数据的数据存储设备。感测信息可以是包括关于功耗的信息的功率感测信息。存储设备50的功耗可以小于或等于参考功耗,或者大于参考功耗。参考功耗可以预设。参考功耗可以改变。
模式转换器210可以基于表示存储设备50的功耗的感测信息来将正常模式和睡眠模式中的任何一种确定为存储设备50的操作模式。
在一个实施例中,当存储设备50的功耗等于或小于参考功耗时,模式转换器210可以将睡眠模式确定为存储设备50的操作模式。当存储设备50的功耗为低时,睡眠模式可以是存储设备50的操作模式。
在另一实施例中,存储设备50的功耗可以超过参考功耗。当存储设备50的功耗超过参考功耗时,模式转换器210可以将存储设备50的操作模式确定为正常模式。
图2示出了在存储设备50以正常模式操作时模式转换器210接收包括等于或小于参考功耗的功耗的感测信息之后的操作。当存储设备50在以正常模式操作的同时的功耗小于或等于参考功耗时,模式转换器210可以将存储设备50的操作模式从正常模式转换为睡眠模式。当存储设备50的功耗小于或等于参考功耗时,模式转换器210可以向恢复代码存储装置220输出代码地址请求CA_REQ。也就是说,当存储设备50的操作模式从正常模式转换为睡眠模式时,模式转换器210可以输出代码地址请求CA_REQ。
代码地址请求CA_REQ可以用于接收恢复代码地址RC_ADDR。代码地址请求CA_REQ可以请求存储恢复代码REC_CODE的地址。恢复代码REC_CODE可以在存储设备50的操作模式从睡眠模式转换为正常模式时执行。
恢复代码存储装置220可以存储恢复代码REC_CODE。恢复代码REC_CODE可以在生产存储设备50时存储在恢复代码存储装置220中。而且,恢复代码存储装置220可以存储表示恢复代码存储装置220内存储恢复代码REC_CODE的位置的恢复代码地址RC_ADDR。恢复代码存储装置220可以包括非易失性存储器。也就是说,恢复代码REC_CODE和恢复代码地址RC_ADDR可以存储在非易失性存储器中。因此,即使断电,也可以维持存储在恢复代码存储装置220中的恢复代码REC_CODE。另外,由于恢复代码REC_CODE和恢复代码地址RC_ADDR存储在非易失性存储器中,因此即使在存储设备50的异常状态下,恢复代码REC_CODE和恢复代码地址RC_ADDR也不会改变或损坏。
因此,由于恢复代码REC_CODE存储在非易失性存储器中,因此可以确保恢复操作的可靠性。此外,当执行恢复操作时,存储设备50的操作不会停止。
恢复代码REC_CODE可以在存储设备50的操作模式从睡眠模式转换为正常模式时执行。也就是说,当存储设备50的功耗超过参考功耗时(这可能是功耗增加的结果),可以执行恢复代码REC_CODE。
在一个实施例中,可以基于恢复代码REC_CODE来执行纠错操作。具体地,纠错操作可以是对其中发生错误的数据进行纠错的操作。
恢复代码存储装置220可以从模式转换器210接收代码地址请求CA_REQ。恢复代码存储装置220可以响应于代码地址请求CA_REQ而输出恢复代码地址RC_ADDR。恢复代码地址RC_ADDR可以表示恢复代码存储装置220内存储恢复代码REC_CODE的位置。当存储设备50的操作模式从睡眠模式转换为正常模式时,模式转换器210可以输出从恢复代码存储装置220接收的恢复代码地址RC_ADDR。
模式转换器210可以接收恢复代码地址RC_ADDR。所接收的恢复代码地址RC_ADDR可以存储在模式转换器210中包括的非易失性存储器中。
当模式转换器210接收到恢复代码地址RC_ADDR时,存储设备50可以以睡眠模式操作。当存储设备50的功耗等于或小于参考功耗时,睡眠模式可以是存储设备50的操作模式。
存储设备50可以在睡眠模式下执行第一操作。第一操作可以包括用于操作存储设备50的最小操作。用于操作存储设备50的最小操作可以是用于维持存储设备50的通电状态的操作。模式转换器210可以向存储器设备100输出命令CMD以使得存储设备50以睡眠模式操作。存储器设备100可以执行与命令CMD相对应的操作。
在另一实施例中,恢复代码地址RC_ADDR可以在生产存储设备50时存储在模式转换器210中。当在输出代码地址请求CA_REQ之前将恢复代码地址RC_ADDR存储在模式转换器210中时,模式转换器210可以不输出代码地址请求CA_REQ。也就是说,由于在存储设备50以睡眠模式操作之前恢复代码REQ_CODE已经存储在模式转换器210中,所以可以省略代码地址请求CA_REQ。
除了图2所示的恢复代码地址RC_ADDR,模式转换器210还可以存储正常代码地址NC_ADDR。当存储设备50被初始化时,模式转换器210可以存储正常代码地址NC_ADR。正常代码地址NC_ADDR可以表示正常代码存储装置240内存储正常代码NM_CODE的位置。
当存储设备50被初始化时,模式转换器210可以从存储器设备100接收正常代码地址NC_ADDR。所接收的正常代码地址NC_ADDR可以存储在模式转换器210中包括的非易失性存储器中。
正常代码NM_CODE可以在执行恢复代码REC_CODE之后执行。可以执行正常代码NM_CODE以使得存储设备50以正常模式操作。也就是说,正常代码NM_CODE可以用于在存储设备50以正常模式操作之前执行后台操作。当执行正常代码NM_CODE时,存储设备50可以以正常模式操作。
图3是示出存储设备的操作模式从睡眠模式转换为正常模式的过程的图。
参考图3,存储器控制器200可以包括模式转换器210、恢复代码存储装置220、代码执行器230和正常代码存储装置240。在图3中,为清楚起见,省略了可以包括在存储器控制器200中的重置控制器250。
当存储设备50的操作模式从睡眠模式转换为正常模式时,模式转换器210可以输出正常代码地址NC_ADDR和恢复代码地址RC_ADDR(①)。正常代码地址NC_ADDR可以表示正常代码存储装置240内存储正常代码NM_CODE的位置,而恢复代码地址RC_CODE可以表示恢复代码存储装置220内存储恢复代码REC_CODE的位置。当存储设备50被初始化时,可以从存储器设备100接收正常代码地址NC_ADDR以存储在模式转换器210中。当存储设备50被生产时,或者当存储设备50的操作模式从正常模式转换为睡眠模式时,恢复代码地址RC_ADDR可以被存储在模式转换器210中。存储设备50可以是被配置为存储数据的数据存储设备。
在一个实施例中,正常代码地址NC_ADDR和恢复代码地址RC_ADDR可以存储在模式转换器210中包括的非易失性存储器中。
在一个实施例中,代码执行器230可以从模式转换器210接收正常代码地址NC_ADDR和恢复代码地址RC_ADDR。当存储设备50的操作模式从睡眠模式转换为正常模式时,代码执行器230可以通过执行由正常代码地址NC_ADDR指示的正常代码NM_CODE和由恢复代码地址RC_ADDR指示的恢复代码REC_CODE来执行操作。
具体地,代码执行器230可以输出与恢复代码地址RC_ADDR相对应的恢复代码请求RC_REQ(②)。恢复代码请求RC_REQ可以是用于获取存储在恢复代码存储装置220中的恢复代码REC_CODE的请求。代码执行器230可以获取与恢复代码地址RC_ADDR相对应的恢复代码REC_CODE。
代码执行器230可以执行恢复代码REC_CODE。代码执行器230可以通过执行恢复代码REC_CODE来执行恢复操作。
具体地,在存储设备50的操作模式为睡眠模式的状态下,可能会发生诸如突然关机(SPO)等异常情况。当在存储设备50的操作模式为睡眠模式的状态下发生异常情况时,存储在存储器控制器200的RAM中的代码数据和元数据可能被改变,例如被破坏。也就是说,在代码数据和元数据中可能发生诸如位翻转等错误。代码执行器230可以通过执行恢复代码REC_CODE来对代码数据和元数据执行纠错操作。代码执行器230可以通过纠错操作来对代码数据和元数据进行纠错。
在一个实施例中,恢复代码存储装置220可以存储恢复代码REC_CODE。而且,恢复代码存储装置220可以存储指示恢复代码REC_CODE的恢复代码地址RC_ADDR。恢复代码REC_CODE可以是用于恢复操作的代码。具体地,恢复代码REC可以是用于确定存储在存储器控制器200中的数据是否可纠错的代码。另外,恢复代码REC_CODE可以是用于对数据进行纠错的代码。恢复代码REC_CODE可以在存储设备50的操作模式从睡眠模式转换为正常模式时执行。
在一个实施例中,恢复代码存储装置220可以包括非易失性存储器。也就是说,恢复代码REC_CODE可以存储在非易失性存储器中。因此,即使在断电的情况下,也能够维持存储在恢复代码存储装置220中的恢复代码REC_CODE和恢复代码地址RC_ADDR。另外,由于恢复代码REC_CODE和恢复代码地址RC_ADDR存储在非易失性存储器中,因此即使在存储设备50的异常状态下,恢复代码REC_CODE和恢复代码地址RC_ADDR也不会改变或损坏。
恢复代码存储装置220可以从代码执行器230接收恢复代码请求RC_REQ(②)。恢复代码请求RC_REQ可以是基于恢复代码地址RC_ADDR而输出的请求。恢复代码存储装置220可以响应于恢复代码请求RC_REQ而输出与代码地址RC_ADDR相对应的恢复代码REC_CODE(③)。代码执行器230可以执行从恢复代码存储装置220接收的恢复代码REC_CODE。代码执行器230可以通过执行恢复代码REC_CODE来执行恢复操作。
在一个实施例中,代码执行器230可以在代码执行器230执行恢复代码REC_CODE之后输出正常代码请求NC_REQ。
具体地,代码执行器230可以输出与正常代码地址NC_ADDR相对应的正常代码请求NC_REQ(④)。正常代码请求RC_REQ可以是用于获取存储在正常代码存储装置240中的正常代码NM_CODE的请求。代码执行器230可以获取与正常代码地址NC_ADDR相对应的正常代码NM_CODE(⑤)。
正常代码NM_CODE可以是在执行恢复代码REC_CODE之后执行的代码。而且,正常代码NM_CODE可以是被执行以使得存储设备50能够以正常模式操作的代码。也就是说,正常代码NM_CODE可以是用于在存储设备50以正常模式操作之前执行后台操作的代码。
在一个实施例中,正常代码存储装置240可以存储正常代码NM_CODE和正常代码地址NC_ADDR。正常代码NM_CODE可以是在执行恢复代码REC_CODE之后执行的代码。正常代码NM_CODE可以在存储设备50的操作模式从睡眠模式转换为正常模式时执行。正常代码地址NC_ADDR可以表示正常代码存储装置240内存储正常代码NM_CODE的位置。
在一个实施例中,正常代码存储装置240可以配置有易失性存储器或非易失性存储器。也就是说,当正常代码存储装置240配置有易失性存储器时,可以在断电时维持正常代码NM_CODE和正常代码地址NC_ADDR。另一方面,当正常代码存储装置240配置有非易失性存储器时,即使断电,也可以维持正常代码NM_CODE和正常代码地址NC_ADDR。当正常代码存储装置240配置有非易失性存储器时,即使在存储设备50的异常状态下,正常代码NM_CODE和正常代码地址NC_ADDR也不会改变或损坏。
正常代码存储装置240可以从代码执行器230接收正常代码请求NC_REQ(④)。正常代码请求NC_REQ可以是基于正常代码地址NC_ADDR而输出的请求。正常代码存储装置240可以响应于正常代码请求NC_REQ而输出与正常代码地址NC_ADDR相对应的正常代码NM_CODE。
代码执行器230可以执行从正常代码存储装置240接收的正常代码NM_CODE。代码执行器230可以通过执行正常代码NM_CODE来执行后台操作以允许存储设备50以正常模式操作。
代码执行器230可以通过执行正常代码NM_CODE来允许存储设备50以正常模式操作。当正常代码NM_CODE的执行完成时,代码执行器230可以输出正常模式设置请求NMS_REQ以允许存储设备50以正常模式操作(⑥)。
当代码执行器230将正常模式设置请求NMS_REQ输出到模式转换器210时,存储设备50可以执行第二操作。第二操作可以包括一些第一操作。第二操作可以是由存储设备50执行的通用操作。由存储设备50执行的通用操作可以包括编程操作、读取操作和擦除操作。除了上述操作之外,由存储设备50执行的通用操作可以包括各种其他操作。因此,模式转换器210可以向存储器设备100输出命令以执行正常操作。
图4是示出当存储设备的操作模式不能从睡眠模式转换为正常模式时存储设备的重置操作的图。
参考图4,存储器控制器200可以包括模式转换器210、恢复代码存储装置220、代码执行器230和重置控制器250。在图4中,为清楚起见,省略了可以包括在存储器控制器200中的正常代码存储装置240。
图4示出了从图3所示的存储器控制器200中排除了正常代码存储装置240,并且包括重置控制器250。因此,与图3所示的内容重叠的内容被省略,并且将主要描述图3中未描述的重置控制器250。
当存储设备50的操作模式从睡眠模式转换为正常模式时,模式转换器210可以输出正常代码地址NC_ADDR和恢复代码地址RC_ADDR(①)。
代码执行器230可以从模式转换器210接收正常代码地址NC_ADDR和恢复代码地址RC_ADDR。代码执行器230可以输出与恢复代码地址RC_ADDR相对应的恢复代码请求RC_REQ(②)。恢复代码存储装置220可以响应于恢复代码请求RC_REQ而输出与恢复代码地址RC_ADDR相对应的恢复代码REC_CODE(③)。代码执行器230可以执行从恢复代码存储装置220接收的恢复代码REC_CODE。代码执行器230可以通过执行恢复代码REC_CODE来执行恢复操作。
恢复操作可以包括确定数据是否可纠错的操作。发生错误的数据可能可纠正,也可能不可纠正,这可以基于数据中的错误位数。在不可纠正的错误数据的情况下,错误位数可能会超过可纠正位数。
在一个实施例中,当数据可纠错时,代码执行器230可以在如图3所述对数据进行纠错之后从正常代码存储装置240接收正常代码NM_CODE。但是,当不可能对数据进行纠错时,代码执行器230不能从正常代码存储装置240接收正常代码NM_CODE。
当不可能对数据进行纠错时,代码执行器230可以向重置控制器250输出用于重置存储设备50的重置请求RST_REQ(④)。重置控制器250可以通过接收重置请求RST_REQ来控制存储设备50以引导模式执行操作。也就是说,由于无法通过执行恢复代码REC_CODE来完成恢复操作,因此重置控制器250可以控制存储设备50以引导模式操作。在存储设备50以引导模式操作之后,模式转换器210可以基于存储设备50的功耗向存储器设备100输出用于执行第一操作或第二操作的命令。
第一操作可以包括操作存储设备50的最小操作。用于操作存储设备50的最小操作可以是用于维持存储设备50的通电状态的操作。模式转换器210可以向存储器设备100输出命令以使得存储设备50能够以睡眠模式操作。存储器设备100可以执行与该命令相对应的操作。
第二操作可以是由存储设备50执行的通用操作。由存储设备50执行的通用操作可以包括编程操作、读取操作和擦除操作。除了上述操作之外,由存储设备50执行的通用操作可以包括各种其他操作。因此,模式转换器210可以向存储器设备100输出命令以执行正常操作。
图5是示出在接收到恢复代码REC_CODE之后的操作的图。
参考图5,代码执行器230可以接收恢复代码REC_CODE(①)。恢复代码REC_CODE可以是存储在恢复代码存储装置220中的代码。由于恢复代码存储装置220配置有非易失性存储器,所以即使在存储设备50的异常状态下,恢复代码REC_CODE也不会被改变或破坏。因此,当代码执行器230执行恢复代码REC_CODE时,可以确保恢复操作的可靠性。另外,当执行恢复操作时,存储设备50的操作不会停止。存储设备50可以是被配置为存储数据的数据存储设备。
代码执行器230可以执行所接收的恢复代码REC_CODE。当执行恢复代码REC_CODE时,可以执行恢复操作。恢复操作可以包括确定数据是否可纠错的操作。基于确定数据中的错误位数的结果,其中发生错误的数据可以是可纠正的或不可纠正的。当错误位数超过可纠正位数时,可能无法进行纠错。
图5示出了不存在发生错误的数据的情况和包含错误的数据可纠错的情况。当不存在发生错误的数据时,可以省略恢复操作。当包含错误的数据可纠错时,可以通过执行恢复代码REC_CODE来纠错。
当不存在发生错误的数据时或当数据的纠错完成时,代码执行器230可以输出正常代码请求NC_REQ(②)。正常代码请求NC_REQ可以被输出到正常代码存储装置240。正常代码请求NC_REQ可以是用于获取存储在正常代码存储装置240中的正常代码NM_CODE的请求。也就是说,代码执行器230可以在执行恢复代码REC_CODE之后输出正常代码请求NC_REQ以执行正常代码NM_CODE。
在一个实施例中,代码执行器230可以接收响应于正常代码请求NC_REQ的正常代码NM_CODE(③)。代码执行器230可以执行所接收的正常代码NM_CODE。正常代码NM_CODE可以是被执行以使得存储设备50能够以正常模式操作的代码。代码执行器230可以通过执行正常代码NM_CODE来执行后台操作以允许存储设备50以正常模式操作。
当代码执行器230完全执行正常代码NM_CODE时,代码执行器230可以输出正常模式设置请求NMS_REQ。具体地,代码执行器230可以将正常模式设置请求NMS_REQ输出到模式转换器210(④)。当模式转换器210接收到正常模式设置请求NMS_REQ时,模式转换器210可以执行用于允许存储设备50以正常模式操作的操作。在一个实施例中,由模式转换器210执行的操作可以是输出用于执行编程操作、读取操作或擦除操作的命令的操作。
图6是示出在执行恢复代码REC_CODE之后存储设备的操作的图。
参考图6,代码执行器230可以包括事件控制器231和纠错器233。事件控制器231可以控制事件,使得可以在执行恢复代码REC_CODE之后执行正常代码NM_CODE。纠错器233可以确定包含错误的数据是否可纠错,并且纠正数据的错误。
在一个实施例中,事件控制器231可以感测在存储设备50的操作模式是睡眠模式的同时发生的事件。在存储设备50的睡眠模式期间发生的事件可以包括突然断电(SPO)和/或由于外部噪声导致的功耗降低。除了以上示例之外,在存储设备50的操作模式是睡眠模式的状态下发生的事件还可以包括各种异常情况。
此外,事件控制器231可以通过感测事件来执行用于纠正数据的错误的操作。此外,当不存在发生错误的数据时或者当数据的纠错完成时,事件控制器231可以输出正常代码请求NC_REQ。
在一个实施例中,事件控制器231可以接收存储在恢复代码存储装置220中的恢复代码REC_CODE(①)。恢复代码REC_COD可以是用于恢复操作的代码。恢复代码REC_CODE可以在存储设备50的操作模式从睡眠模式转换为正常模式时执行。当执行恢复代码REC_CODE时,可以执行纠错操作。
事件控制器231可以执行所接收的恢复代码REC_CODE。具体地,事件控制器231可以通过执行恢复代码REC_CODE来向纠错器233输出错误发生数据ERR_DATA(②)。错误发生数据ERR_DATA可以是存储在存储器控制器200中的、并且当存储设备50的操作模式是睡眠模式时发生错误的代码数据和元数据。也就是说,当存储设备50的操作模式是睡眠模式时,事件控制器231可以通过感测事件来输出发生错误的错误发生数据ERR_DATA。
纠错器233可以从事件控制器231接收错误发生数据ERR_DATA。纠错器233可以确定错误发生数据ERR_DATA是否可纠错。也就是说,恢复操作可以包括确定数据是否可纠错的操作。根据数据中错误位数,发生错误的数据可能是可纠正的,也可能是不可纠正的。当错误位数超过可纠正位数时,可能无法进行纠错。
在一个实施例中,当可以对包含错误的数据进行纠错时,纠错器233可以执行纠错操作。当执行纠错操作时,可以对数据进行纠错。纠错器233可以向事件控制器231输出执行了纠错操作的纠错数据ECC_DATA(③)。
当事件控制器231从纠错器233接收到纠错数据ECC_DATA时,事件控制器231可以输出正常代码请求NC_REQ(④)。正常代码请求NC_REQ可以是用于获取存储在正常代码存储装置240中的正常代码NM_CODE的请求。因此,正常代码请求NC_REQ可以是用于在执行恢复代码REC_CODE之后执行正常代码NM_CODE的请求。当接收到与正常代码请求NC_REQ相对应的正常代码NM_CODE时,代码执行器230可以执行正常代码NM_CODE。
在另一实施例中,当不可能对数据进行纠错时,纠错器233不能执行纠错操作。当发生错误的数据不能被校正时,可以停止存储设备50的操作。
因此,当未对包含错误的数据进行纠错时,纠错器233可以输出重置请求RST_REQ(③)。重置请求RST_REQ可以是用于重置存储设备50的请求。具体地,当纠错器233将重置请求RST_REQ输出到重置控制器250时,重置控制器250可以执行与重置请求RST_REQ相对应的重置操作。当代码执行器230即使通过执行恢复代码REC_CODE也无法对存储在存储器控制器200中的数据进行纠错时,可以执行重置操作。
具体地,可以基于当存储设备50的操作模式从睡眠模式转换为正常模式时执行的恢复操作来确定重置操作。当代码执行器230即使通过执行恢复代码REC_CODE也无法对存储在存储器控制器200中的数据进行纠错时,可以执行重置操作。
在由于执行重置操作而使存储设备50的操作模式为引导模式之后,存储设备50可以基于功耗来重新确定操作模式。
图7是示出图1所示的存储器设备的结构的框图。
参考图7,存储器设备100包括存储器单元阵列110、***电路120和控制逻辑125。
存储器单元阵列110可以包括多个存储器块BLK1至BLKz。多个存储器块BLK1至BLKz通过行线RL耦合到地址译码器121,并且通过位线BL1至BLm耦合到读取/写入电路123。多个存储器块BLK1至BLKz中的每个包括多个存储器单元。在一个实施例中,多个存储器单元是非易失性存储器单元。
存储器单元阵列中包括的多个存储器单元可以根据其用途被划分为多个块。作为控制存储器设备100所必需的各种设置信息的***信息可以存储在多个块中。
第一存储器块BLK1至第z存储器块BLKz中的每个包括多个单元串。第一单元串至第m单元串分别耦合到第一位线BL1至第m位线BLm。第一单元串至第m单元串中的每个包括漏极选择晶体管、串联耦合的多个存储器单元、以及源极选择晶体管。漏极选择晶体管耦合到漏极选择线。第一存储器单元至第n存储器单元耦合到第一字线至第n字线。源极选择晶体管耦合到源极选择线。漏极选择晶体管的漏极侧耦合到对应位线。第一单元串至第m单元串的漏极选择晶体管分别耦合到第一位线BL1至第m位线BLm。源极选择晶体管的源极侧耦合到公共源极线。在一个实施例中,公共源极线可以共同耦合到第一存储器块BLK1至第z存储器块BLKz。行线RL中包括漏极选择线DSL、第一字线至第n字线和源极选择线。漏极选择线DSL、第一字线至第n字线和源极选择线由地址译码器121控制。公共源极线由控制逻辑125控制。第一位线BL1至第m位线BLm由读取/写入电路123控制。
***电路120包括地址译码器121、电压发生器122、读取/写入电路123、数据输入/输出电路124和控制逻辑125。
地址译码器121通过行线RL耦合到存储器单元阵列110。地址译码器121被配置为在控制逻辑125的控制下操作。地址译码器121通过控制逻辑125接收地址ADDR。
在一个实施例中,存储器设备100的编程操作和读取操作以页面为单位来执行。
在编程和读取操作中,由控制逻辑125接收的地址ADDR可以包括块地址和行地址。地址译码器121被配置为解码所接收的地址ADDR中的块地址。地址译码器121根据解码的块地址来在存储器块BLK1至BLKz中选择一个存储器块。
地址译码器121被配置为解码所接收的地址ADDR中的行地址。地址译码器121通过根据解码的行地址向行线RL施加从电压发生器122提供的电压,来选择所选择的存储器块的一个字线。
在擦除操作中,地址ADDR包括块地址。地址译码器121对块地址进行解码,并且根据解码的块地址选择一个存储器块。可以对一个存储器块的全部或一部分执行擦除操作。
在部分擦除操作中,地址ADDR可以包括块地址和行地址。地址译码器121根据块地址来在存储器块BLK1至BLKz中选择一个存储器块。
地址译码器121被配置为解码所接收的地址ADDR中的行地址。地址译码器121通过根据解码的行地址向行线RL施加从电压发生器122提供的电压,来选择所选择的存储器块的至少一个字线。
在一个实施例中,地址译码器121可以包括块译码器、字线译码器、地址缓冲器等。
电压发生器122使用提供给存储器设备100的外部电源电压来生成多个电压。电压发生器122在控制逻辑125的控制下操作。
在一个实施例中,电压发生器122可以通过调节外部电源电压来生成内部电源电压。由电压发生器122生成的内部电源电压被用作存储器设备100的操作电压。
在一个实施例中,电压发生器122可以使用外部电源电压或内部电源电压生成多个电压。
例如,电压发生器122可以包括用于接收内部电源电压的多个泵浦电容器,并且通过在控制逻辑130的控制下选择性地激活多个泵浦电容器来生成多个电压。所生成的多个电压被施加到由地址译码器121选择的字线。
在编程操作中,电压发生器122可以生成高压编程脉冲和低于编程脉冲的通过脉冲。在读取操作中,电压发生器122可以生成读取电压和高于读取电压的通过电压。在擦除操作中,电压发生器122可以生成擦除电压。
读取/写入电路123包括第一页面缓冲器PB1至第m页面缓冲器PBm。第一页面缓冲器PB1至第m页面缓冲器PBm分别通过第一位线BL1至第m位线BLm耦合到存储器单元阵列110。第一页面缓冲器PB1至第m页面缓冲器PBm在控制逻辑125的控制下操作。
第一页面缓冲器PB1至第m页面缓冲器PBm与数据输入/输出电路124传送数据。在编程操作中,第一页面缓冲器PB1至第m页面缓冲器PBm接收要通过数据输入/输出电路124和数据线DL而存储的数据DATA。
在编程操作中,当将编程脉冲施加到所选择的字线时,第一页面缓冲器PB1至第m页面缓冲器PBm可以通过位线BL1至BLm,将通过数据输入/输出电路124接收的数据DATA传输到所选择的存储器单元。根据所传输的数据DATA对所选择的页面的存储器单元进行编程。耦合到施加有编程允许电压(例如,地电压)的位线的存储器单元可以具有增加的阈值电压。可以维持耦合到施加有编程禁止电压(例如,电源电压)的位线的存储器单元的阈值电压。在编程验证操作中,第一页面缓冲器PB1至第m页面缓冲器PBm通过位线BL1至BLm从所选择的存储器单元中读取页面数据。
在读取操作中,读取/写入电路123通过位线BL从所选择的页面的存储器单元中读取数据DATA,并且将读取的数据DATA输出到数据输入/输出电路124。在擦除操作中,读取/写入电路123可以使位线BL浮置。
在一个实施例中,读取/写入电路123可以包括列选择电路。
数据输入/输出电路124通过数据线DL耦合到第一页面缓冲器PB1至第m页面缓冲器PBm。数据输入/输出电路124在控制逻辑125的控制下操作。在编程操作中,数据输入/输出电路124从外部控制器(未示出)接收要存储的数据DATA。
控制逻辑125耦合到地址译码器121、电压发生器122、读取/写入电路123和数据输入/输出电路124。控制逻辑125可以控制存储器设备100的整体操作。控制逻辑125接收命令CMD和地址ADDR。控制逻辑125响应于命令CMD而控制地址译码器121、电压发生器122、读取/写入电路123和数据输入/输出电路124。
图8是示出图7所示的存储器单元阵列的实施例的图。
参考图8,存储器单元阵列110可以包括多个存储器块BLK1至BLKz。每个存储器块可以具有三维结构。每个存储器块可以包括堆叠在基板(未示出)上的多个存储器单元。多个存储器单元可以沿着+X、+Y和+Z方向布置。将参考图9和10更详细地描述每个存储器块的结构。
图9是示出图8所示的存储器块BLK1至BLKz中的任何一个存储器块BLKa的电路图。
参考图9,存储器块BLKa可以包括多个单元串CS11至CS1m和CS21至CS2m。在一个实施例中,多个单元串CS11至CS1m和CS21至CS2m中的每个可以形成为“U”形。在存储器块BLKa中,m个单元串在行方向(即,+X方向)上布置。图9示出了在列方向(即,+Y方向)上布置的两个单元串。但是,这是为了清楚;应当理解,可以在列方向上布置三个单元串。
多个单元串CS11至CS1m和CS21至CS2m中的每个可以包括至少一个源极选择晶体管SST、第一存储器单元MC1至第n存储器单元MCn、管道晶体管PT和至少一个漏极选择晶体管DST。
选择晶体管SST和DST以及存储器单元MC1至MCn可以具有彼此相似的结构。在一个实施例中,选择晶体管SST和DST以及存储器单元MC1至MCn中的每个可以包括沟道层、隧道绝缘层、电荷存储层和阻挡绝缘层。在一个实施例中,可以在每个单元串中提供用于提供沟道层的柱。在一个实施例中,可以在每个单元串中提供用于提供沟道层、隧道绝缘层、电荷存储层和阻挡绝缘层中的至少一个的柱。
每个单元串的源极选择晶体管SST耦合在公共源极线CSL与存储器单元MC1至MCp之间。
在一个实施例中,布置在同一行上的单元串的源极选择晶体管耦合到在行方向上延伸的源极选择线,并且布置在不同行上的单元串的源极选择晶体管耦合到不同的源极选择线。在图9中,第一行上的单元串CS11至CS1m的源极选择晶体管耦合到第一源极选择线SSL1。第二行上的单元串CS21至CS2m的源极选择晶体管耦合到第二源极选择线SSL2。
在另一实施例中,单元串CS11至CS1m和CS21至CS2m的源极选择晶体管可以共同耦合到一个源极选择线。
每个单元串的第一存储器单元MC1至第n存储器单元MCn耦合在源极选择晶体管SST与漏极选择晶体管DST之间。
第一存储器单元MC1至第n存储器单元MCn可以被划分为第一存储器单元MC1至第p存储器单元MCp和第(p+1)存储器单元MCp+1至第n存储器单元MCn。第一存储器单元MC1至第p存储器单元MCp在+Z方向的相反方向上顺序布置,并且串联耦合在源极选择晶体管SST与管道晶体管PT之间。第(p+1)存储器单元MCp+1至第n存储器单元MCn在+Z方向上顺序布置,并且串联耦合在管道晶体管PT与漏极选择晶体管DST之间。第一存储器单元MC1至第p存储器单元MCp和第(p+1)存储器单元MCp+1至第n存储器单元MCn通过管道晶体管PT耦合。每个单元串的第一存储器单元MC1至第n存储器单元MCn的栅电极分别耦合到第一字线WL1至第n字线WLn。
每个单元串的管道晶体管PT的栅极耦合到管道线PL。
每个单元串的漏极选择晶体管DST耦合在对应的位线与存储器单元MCp+1至MCn之间。在行方向上布置的单元串耦合到在行方向上延伸的漏极选择线。第一行上的单元串CS11至CS1m的漏极选择晶体管耦合到第一漏极选择线DSL1。第二行上的单元串CS21至CS2m的漏极选择晶体管耦合到第二漏极选择线DSL2。
在列方向上布置的单元串耦合到在列方向上延伸的位线。在
图9中,第一列上的单元串CS11和CS21耦合到第一位线BL1。第m列上的单元串CS1m和CS2m耦合到第m位线BLm。
耦合到在行方向上布置的单元串中的同一字线的存储器单元构成一个页面。例如,耦合到第一行上的单元串CS11至CS1m中的第一字线WL1的存储器单元构成一个页面。耦合到第二行上的单元串CS21至CS2m中的第一字线WL1的存储器单元构成另一页面。当选择漏极选择线DSL1和DSL2中的任何一个时,可以选择在一个行方向上布置的单元串。当选择字线WL1至WLn中的任何一个时,可以在所选择的单元串中选择一个页面。
在另一实施例中,可以提供偶数位线和奇数位线来代替第一位线BL1至第m位线BLm。另外,在行方向上布置的单元串CS11至CS1m或CS21至CS2m中的偶数编号的单元串可以分别耦合到偶数位线,并且在行方向上布置的单元串CS11至CS1m或CS21至CS2m中的奇数编号的单元串可以分别耦合到奇数位线。
在一个实施例中,第一存储器单元MC1至第n存储器单元MCn中的至少一个可以用作虚拟存储器单元。例如,可以提供(多个)虚拟存储器单元以减小源极选择晶体管SST与存储器单元MC1至MCp之间的电场。备选地,可以提供(多个)虚拟存储器单元以减小漏极选择晶体管DST与存储器单元MCp+1至MCn之间的电场。当虚拟存储器单元的数目增加时,存储器块BLKa的操作的可靠性提高。另一方面,存储器块BLKa的尺寸增加。当虚拟存储器单元的数目减少时,存储器块BLKa的尺寸减小。另一方面,存储器块BLKa的操作的可靠性可能劣化。
为了有效地控制(多个)虚拟存储器单元,每个虚拟存储器单元可以具有所需要的阈值电压。在存储器块BLKa的擦除操作之前或之后,可以对全部或一些虚拟存储器单元执行编程操作。当在执行编程操作之后执行擦除操作时,虚拟存储器单元的阈值电压控制施加到耦合到相应虚拟存储器单元的虚拟字线的电压,使得虚拟存储器单元可以具有所需要的阈值电压。
图10是示出图8所示的存储器块BLK1至BLKz中的一个存储器块的另一实施例BLKb的电路图。
参考图10,存储器块BLKb可以包括多个单元串CS11'至CS1m'和CS21'至CS2m'。多个单元串CS11'至CS1m'和CS21'至CS2m'中的每个沿着+Z方向延伸。多个单元串CS11'至CS1m'和CS21'至CS2m'中的每个包括至少一个源极选择晶体管SST、第一存储器单元MC1至第n存储器单元MCn、以及至少一个漏极选择晶体管DST,它们堆叠在基板(未示出)上、在存储器块BLKb下方。
每个单元串的源极选择晶体管SST耦合在公共源极线CSL与存储器单元MC1至MCn之间。布置在同一行上的单元串的源极选择晶体管耦合到同一源极选择线。布置在第一行上的单元串CS11'至CS1m'的源极选择晶体管耦合到第一源极选择线SSL1。布置在第二行上的单元串CS21'至CS2m'的源极选择晶体管耦合到第二源极选择线SSL2。在另一实施例中,单元串CS11'至CS1m'和CS21'至CS2m'的源极选择晶体管可以共同耦合到一个源极选择线。
每个单元串的第一存储器单元MC1至第n存储器单元MCn串联耦合在源极选择晶体管SST与漏极选择晶体管DST之间。第一存储器单元MC1至第n存储器单元MCn的栅电极分别耦合到第一字线WL1至第n字线WLn。
每个单元串的漏极选择晶体管DST耦合在对应位线与存储器单元MC1至MCn之间。在行方向上布置的单元串的漏极选择晶体管耦合到在行方向上延伸的漏极选择线。第一行上的单元串CS11'至CS1m'的漏极选择晶体管耦合到第一漏极选择线DSL1。第二行上的单元串CS21'至CS2m'的漏极选择晶体管耦合到第二漏极选择线DSL2。
因此,图10的存储器块BLKb具有类似于图9的存储器块BLKa的电路,除了从图10的每个单元串中排除了管道晶体管PT。
在另一实施例中,可以提供偶数位线和奇数位线来代替第一位线BL1至第m位线BLm。另外,在行方向上布置的单元串CS11'至CS1m'或CS21'至CS2m'中的偶数编号的单元串可以分别耦合到偶数位线,并且在行方向布置的单元串CS11'至CS1m'或CS21'至CS2m'中的奇数编号的单元串可以分别耦合到奇数位线。
在一个实施例中,第一存储器单元MC1至第n存储器单元MCn中的至少一个可以用作虚拟存储器单元。例如,可以提供(多个)虚拟存储器单元以减小源极选择晶体管SST与存储器单元MC1至MCp之间的电场。备选地,可以提供(多个)虚拟存储器单元以减小漏极选择晶体管DST与存储器单元MCp+1至MCn之间的电场。当虚拟存储器单元的数目增加时,存储器块BLKb的操作的可靠性提高。另一方面,存储器块BLKb的尺寸增加。当虚拟存储器单元的数目减少时,存储器块BLKb的尺寸减小。另一方面,存储器块BLKb的操作的可靠性可能劣化。
为了有效地控制虚拟存储器单元,每个虚拟存储器单元可以具有所需要的阈值电压。在存储器块BLKb的擦除操作之前或之后,可以对全部或一些虚拟存储器单元执行编程操作。当在执行编程操作之后执行擦除操作时,虚拟存储器单元的阈值电压控制施加到耦合到相应虚拟存储器单元的虚拟字线的电压,使得虚拟存储器单元可以具有所需要的阈值电压。
图11是示出根据本公开的实施例的存储器控制器的操作的图。
参考图11,在步骤S1101中,存储器控制器200可以感测低功率状态,并且生成感测信息。感测信息可以是包括关于存储设备50的功耗的信息的功率感测信息。低功率状态可以是存储设备50的功耗小于或等于参考功耗的状态。
在感测到低功率状态之前,存储设备50的功耗可以超过参考功耗。因此,存储设备50的操作模式可以是正常模式。因此,步骤S1101表示存储器控制器200感测到存储设备50已经从正常模式进入低功率状态的情况。
存储器控制器200可以包括被配置为感测存储设备的功耗并且生成感测信息的功率传感器。具体地,存储设备50的功耗可以随时间改变。因此,随着存储设备50的功耗减小,存储器控制器200可以感测到存储设备50已经进入功耗减小状态,即低功率状态,并且生成表示低功率状态的感测信息。
在步骤S1103中,模式转换器210可以接收感测信息。感测信息可以表示存储设备50的功耗。模式转换器210可以基于感测信息将存储设备50的操作模式确定为正常模式或睡眠模式。当功耗超过参考功耗时,正常模式可以是存储设备50的操作模式。当存储设备50的功耗为低时,睡眠模式可以是存储设备50的操作模式。由于步骤S1101表示在存储设备50的操作模式刚刚退出正常模式之后感测到低功率状态的情况,因此模式转换器210可以确定存储设备50的操作模式从正常模式转换为睡眠模式。
在步骤S1105中,可以确定恢复代码地址RC_ADDR和正常代码地址NC_ADDR是否已经存储在模式转换器210的非易失性存储器中。恢复代码地址RC_ADDR可以指示恢复代码存储装置220内存储恢复代码REC_CODE的位置。正常代码地址NC_ADDR可以指示正常代码存储装置240内存储正常代码NM_CODE的位置。恢复代码地址RC_ADDR和正常代码地址NC_ADDR也可以分别存储在恢复代码存储设备220和正常代码存储设备240中,并且被提供给模式转换器210的非易失性存储器。
当存储设备50的操作模式从正常模式转换为睡眠模式时,模式转换器210可以存储恢复代码地址RC_ADDR。因此,当存储设备50的操作模式从睡眠模式重新转换为正常模式时,基于用于恢复操作的恢复代码地址RC_ADDR来执行所接收的恢复代码REC_CODE。
当恢复代码地址和正常代码地址存储在模式转换器210中时,操作进行到步骤S1107。当恢复代码地址和正常代码地址未存储在模式转换器210中时,操作进行到步骤S1109。
在步骤S1107中,存储设备50可以以睡眠模式操作。具体地,当存储设备50的功耗小于或等于参考功耗时,存储设备50可以以睡眠模式操作。当存储设备50的操作模式是睡眠模式时,存储设备50可以执行第一操作。第一操作可以包括用于操作存储设备50的最小操作。用于操作存储设备50的最小操作可以是用于维持存储设备50的通电状态的操作。
在步骤S1109中,模式转换器210可以向恢复代码存储装置220请求代码地址。代码地址请求可以是用于获取恢复代码地址RC_ADDR的请求。具体地,模式转换器210可以向恢复代码存储装置220输出代码地址请求CA_REQ。也就是说,当存储设备50的操作模式从正常模式转换为睡眠模式时,模式转换器210可以输出代码地址请求CA_REQ。
在一个实施例中,模式转换器210可以向正常代码存储装置240请求代码地址。代码地址请求可以是用于获取正常代码地址NC_ADDR的请求。当存储设备50被初始化时,模式转换器210可以从存储器设备100接收正常代码地址NC_ADDR。但是,当模式转换器210由于存储设备50的异常操作而没有接收到正常代码地址NC_ADDR时,模式转换器210可以输出用于获取正常代码地址的请求。
在步骤S1111中,模式转换器210可以存储恢复代码地址RC_ADDR和正常代码地址NC_ADDR。恢复代码地址RC_ADDR和正常代码地址NC_ADDR可以存储在模式转换器210中包括的非易失性存储器中。当恢复代码地址RC_ADDR和正常代码地址NC_ADDR存储在模式转换器210中时,存储设备50可以以睡眠模式操作。
图12是示出根据本公开的实施例的存储器控制器的操作的图。
参考图12,在步骤S1201中,存储器控制器200可以感测正常功率状态,并且生成感测信息。感测信息可以是包括关于存储设备50的功耗的信息的功率感测信息。正常功率状态可以是当存储设备50的功耗超过参考功耗时存储设备50的状态。
在感测到正常功率状态之前,存储设备50的功耗可以小于或等于参考功耗。因此,存储设备50的操作模式可以是睡眠模式。因此,步骤S1201表示存储设备50刚刚退出睡眠模式并且存储器控制器200感测到存储设备50现在处于正常模式的情况。
在步骤S1203中,模式转换器210可以接收感测信息。感测信息可以是表示存储设备50的功耗的信息。模式转换器210可以基于感测信息将正常模式或睡眠模式确定为存储设备50的操作模式。在步骤S1201中,模式转换器210可以确定存储设备的操作模式从睡眠模式转换为正常模式。
在步骤S1205中,模式转换器210可以输出正常代码地址NC_ADDR和恢复代码地址RC_ADDR。具体地,当存储设备50的操作模式从睡眠模式转换为正常模式时,模式转换器210可以输出正常代码地址NC_ADDR和恢复代码地址RC_ADDR。
正常代码地址NC_ADDR可以表示正常代码存储装置240内存储正常代码NM_CODE的位置,并且恢复代码地址RC_ADDR可以表示恢复代码存储装置220内存储恢复代码REC_CODE的位置。当存储设备50被初始化时,可以从存储器设备100接收正常代码地址NC_ADDR以存储在模式转换器210中。当存储设备50被产生时或者当存储设备50的操作模式从正常模式转换为睡眠模式时,恢复代码地址RC_ADDR可以存储在模式转换器210中。
在步骤S1207中,代码执行器230可以执行恢复操作。具体地,代码执行器230可以从模式转换器210接收正常代码地址NC_ADDR和恢复代码地址RC_ADDR。当存储设备50的操作模式从睡眠模式转换为正常模式时,代码执行器230可以通过执行由正常代码地址NC_ADDR指示的正常代码NM_CODE和由恢复代码地址RC_ADDR指示的恢复代码REC_CODE来执行操作。
在一个实施例中,代码执行器230可以通过获取与恢复代码地址RC_ADDR相对应的恢复代码REC_CODE来执行恢复代码REC_CODE。代码执行器230可以通过执行恢复代码REC_CODE来执行恢复操作。恢复操作可以包括对数据进行纠错的纠错操作。
在步骤S1209中,可以确定由代码执行器230执行的恢复操作是否已经完成。具体地,当可以对错误发生数据ERR_DATA进行纠错并且对错误发生数据ERR_DATA的错误进行校正时,可以完成恢复操作。但是,当不可以对错误发生数据ERR_DATA进行纠错时,不能完成恢复操作。当恢复操作完成时,操作进行到步骤S1211。当恢复操作未完成时,操作进行到步骤S1213。
在步骤S1211中,代码执行器230可以执行正常代码NM_CODE。在一个实施例中,在代码执行器230执行恢复代码REC_CODE之后,代码执行器230可以执行正常代码NM_CODE。正常代码NM_CODE可以是被执行以使得存储器50能够以正常模式操作的代码。也就是说,正常代码NM_CODE可以是用于在存储设备50以正常模式操作之前执行后台操作的代码。
在步骤S1213中,重置控制器250可以执行重置操作。具体地,当不可以对数据进行纠错时,代码执行器230可以向重置控制器250输出用于重置存储设备50的重置请求RST_REQ。重置控制器250可以通过接收重置请求RST_REQ来控制存储设备50以引导模式操作。
也就是说,由于无法通过执行恢复代码REC_CODE来完成恢复操作,因此重置控制器250可以控制存储设备50以引导模式操作。
图13是示出根据本公开的实施例的存储器控制器的操作的图。
参考图12和图13,图13是更详细地示出图12所示的步骤S1207至S1213的流程图。也就是说,图13是更详细地示出步骤S1207中的恢复操作的流程图。
在步骤S1301中,事件控制器231可以执行感测事件发生的事件发生感测操作。具体地,事件控制器231可以感测在存储设备50处于睡眠模式的同时发生的事件。这样的事件可能包括突然断电(SPO)和由于外部噪声导致的功耗降低。除了以上示例之外,在存储设备50处于睡眠模式的同时发生的事件还可以包括各种其他异常情况。
在步骤S1303中,事件控制器231可以确定事件是否已经发生。具体地,事件控制器231可以确定在存储设备50处于睡眠模式的同时是否已经发生事件。当确定已经发生事件时,操作进行到步骤S1305。当没有事件发生时,操作进行到步骤S1311。
在步骤S1305中,纠错器233可以确定错误发生数据ERR_DATA是否可纠错。不可纠正的错误发生数据ERR_DATA的错误位数可能超过可纠正位数。
具体地,当事件控制器231感测到事件时,事件控制器231可以向纠错器233输出由于事件而发生的错误发生数据ERR_DATA。纠错器233可以确定所接收的错误发生数据ERR_DATA是否可纠错。当错误发生数据ERR_DATA可纠错时,操作进行到步骤S1307。当错误发生数据ERR_DATA不可纠正时,操作进行到步骤S1313。不可纠正的数据具有的错误位数超过可纠正位数。
在步骤S1307中,纠错器233可以执行纠错操作。也就是说,当错误发生数据ERR_DATA可纠错时,纠错器233可以执行纠错操作。当执行纠错操作时,可以对错误发生数据ERR_DATA纠错。
在步骤S1311中,代码执行器230可以执行正常代码NM_CODE。在一个实施例中,代码执行器230可以在执行恢复代码REC_CODE之后执行正常代码NM_CODE。
当在存储设备50处于睡眠模式的同时未感测到事件的发生时,代码执行器230可以省略纠错操作,并且立即执行正常代码NM_CODE。然而,当在存储设备50处于睡眠模式的同时感测到事件的发生时,代码执行器230可以在执行纠错操作之后执行正常代码NM_CODE。
在步骤S1313中,重置控制器250可以执行重置操作。具体地,当不可能对错误发生数据ERR_DATA进行纠错时,代码执行器230可以向重置控制器250输出用于重置存储设备50的重置请求RST_REQ。重置控制器250可以通过接收重置请求RST_REQ来控制存储设备50以引导模式操作。
也就是说,由于无法通过执行恢复代码REC_CODE来完成恢复操作,因此重置控制器250可以控制存储设备50以引导模式操作。
图14是示出图1所示的存储器控制器的另一实施例的图。
参考图14,存储器控制器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可以使用映射表来接收LPA以将其转换为PBA。根据映射单元,存在FTL的几种地址映射方法。代表性地址映射方法包括页面映射方法、块映射方法和混合映射方法。
处理器1010被配置为随机化从主机接收的数据。例如,处理器1010可以使用随机化种子来随机化从主机接收的数据。提供随机化数据作为要存储到存储器设备以在存储器单元阵列中编程的数据。
在读取操作中,处理器1010被配置为对从存储器设备接收的数据去随机化。例如,处理器1010可以使用去随机化种子来对从存储器设备接收的数据进行去随机化。去随机化的数据可以输出到主机。
在一个实施例中,处理器1010可以通过驱动软件或固件来执行随机化和去随机化。
存储缓冲器1020可以用作处理器1010的工作存储器、高速缓冲存储器或缓冲存储器。存储缓冲器1020可以存储由处理器1010执行的代码和命令。存储缓冲器1020可以包括静态RAM(SRAM)或动态RAM(DRAM)。
ECC电路1030可以执行ECC操作。ECC电路1030可以对要通过存储器接口1060写入存储器设备的数据执行ECC编码。ECC编码的数据可以通过存储器接口1060传输到存储器设备。ECC电路1030可以对通过存储器接口1060从存储器设备接收的数据执行ECC解码。在一个示例中,ECC电路1030可以作为存储器接口1060的组件被包括在存储器接口1060中。
主机接口1040可以在处理器1010的控制下与外部主机通信。主机接口1040可以使用各种通信协议(诸如通用串行总线(USB)、串行AT附件(SATA)、高速芯片(HSIC)、小型计算机***接口(SCSI)、火线、***组件互连(PCI)、PCI Express(PCIe)、非易失性存储器Express(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式内存模块(DIMM)、注册DIMM(RDIMM)和减载DIMM(LRDIMM))中的至少一种与主机通信。
缓冲器控制电路1050被配置为在处理器1010的控制下控制存储缓冲器1020。
存储器接口1060被配置为在处理器1010的控制下与存储器设备通信。存储器接口1060可以通过通道与存储器设备传送命令、地址和数据。
在一个示例中,存储器控制器1000可以不包括存储缓冲器1020和缓冲器控制电路1050。这些缓冲器组件中的一个或两个可以分开提供,或者它们的功能中的一者或两者可以分配给存储器控制器1000的其他组件。
在一个示例中,处理器1010可以通过使用代码来控制存储器控制器1000的操作。处理器1010可以从存储器控制器1000中提供的非易失性存储设备(例如,只读存储器(ROM))加载代码。在另一示例中,处理器1010可以通过存储接口1060从存储器设备加载代码。
在一个示例中,存储器控制器1000的总线1070可以分为控制总线和数据总线。数据总线可以被配置为在存储器控制器1000中传输数据,并且控制总线可以被配置为在存储器控制器1000中传输诸如命令和地址的控制信息。数据总线和控制总线彼此分开,并且彼此之间可能不会互相干扰或影响。数据总线可以耦合到主机接口1040、缓冲器控制电路1050、ECC电路1030和存储器接口1060。控制总线可以耦合到主机接口1040、处理器1010、缓冲器控制电路1050、存储缓冲器1020和存储器接口1060。
图15是示出根据本公开的实施例的应用有存储设备的存储器卡***的框图。
参考图15,存储器卡***2000包括存储器控制器2100、存储器设备和连接器2300。
存储器控制器2100耦合到存储器设备2200。存储器控制器2100被配置为访问存储器设备2200。例如,存储器控制器2100被配置为控制存储器设备2200的读取、写入、擦除和后台操作。存储器控制器2100被配置为在存储器设备2200与主机之间提供接口。存储器控制器2100被配置为驱动用于控制存储器设备2200的固件。存储器设备2200可以与参考图7描述的存储器设备100相同地实现。
在一个示例中,存储器控制器2100可以包括诸如随机存取存储器(RAM)、处理单元、主机接口、存储器接口和纠错器233的组件。
存储器控制器2100可以通过连接器2300与外部设备通信。存储器控制器2100可以根据特定的通信协议与外部设备(例如,主机)通信。在一个示例中,存储器控制器2100可以通过各种通信协议(诸如通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、***组件互连(PCI)、PCI Express(PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机***接口(SCSI)、增强型小型计算机磁盘接口(ESDI)、集成驱动电子设备(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙和NVMe)中的至少一种与外部设备通信。
在一个示例中,可以用各种非易失性存储设备(诸如电可擦除可编程ROM(EEPROM)、NAND闪存、NOR闪存、相变RAM(PRAM)、电阻RAM(ReRAM)、铁电RAM(FRAM)和自旋转矩传递磁性RAM(STT-MRAM))中的任何一种来实现存储器设备2200。
存储器控制器2100和存储器设备2200可以集成到单个半导体设备中以构成存储器卡。例如,存储器控制器2100和存储器设备2200可以构成存储器卡,诸如PC卡(个人计算机存储卡国际协会(PCMCIA))、紧凑型闪存(CF)卡、智能媒体卡(SM和SMC)、存储棒、多媒体卡(MMC、RS-MMC、MMCmicro和eMMC)、SD卡(SD、miniSD、microSD和SDHC)和通用闪存(UFS)。
图16是示例性地示出根据本公开的实施例的应用有存储设备的固态驱动器(SSD)***的框图。
参考图16,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 Express(PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机***接口(SCSI)、增强型小型磁盘接口(ESDI)、集成驱动电子设备(IDE)、火线、通用闪存(UFS)、WI-FI、蓝牙和NVMe)中的至少一种定义的信号。
辅助电源3230通过电源连接器3002耦合到主机3100。当来自主机3100的电力供应不平稳时,辅助电源3230可以提供SSD 3200的电力。在示例中,辅助电源3230可以位于SSD3200中,或者位于SSD 3200外部。例如,辅助电源3230可以位于主板上,并且向SSD 3200提供辅助电源。
缓冲存储器3240用作SSD 3200的缓冲存储器。例如,缓冲存储器3240可以临时存储从主机3100接收的数据或从多个闪存3221至322n接收的数据,或者临时存储闪存3221至322n的元数据(例如,映射表)。缓冲存储器3240可以包括诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM等易失性存储器、或者诸如FRAM、ReRAM、STT-MRAM和PRAM等非易失性存储器。
图17是示出根据本公开的实施例的应用有存储设备的用户***的框图。
参考图17,用户***4000包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可以驱动用户***4000、操作***(OS)、用户程序等中包括的组件。在一个示例中,应用处理器4100可以包括用于控制用户***4000中包括的组件、界面、图形引擎等的控制器。应用处理器4100可以被提供作为片上***(SoC)。
存储器模块4200可以用作用户***4000的主存储器、工作存储器、缓冲存储器或高速缓冲存储器。存储器模块4200可以包括易失性随机存取存储器(诸如DRAM、SDRAM、DDRSDRAM、DDR2 SDRM、DDR3 SDRAM、LPDDR SDRAM、LPDDR2 SDRAM和LPDDR3 SDRAM)或非易失性随机存取存储器(诸如PRAM、ReRAM、MRAM和FRAM)。在一个示例中,可以通过基于封装上的封装(PoP)对应用处理器4100和存储器模块4200进行封装,来将应用处理器4100和存储器模块4200提供为一个半导体封装。
网络模块4300可以与外部设备通信。在一个示例中,网络模块4300可以支持无线通信,诸如码分多址(CDMA)、全球移动通信***(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、Wimax、WLAN、UWB、蓝牙和Wi-Fi。在一个示例中,网络模块4300可以被包括在应用处理器4100中。
存储模块4400可以存储数据。例如,存储模块4400可以存储从应用处理器4100接收的数据。备选地,存储模块4400可以将存储在其中的数据传输到应用处理器4100。在一个示例中,存储模块4400可以用具有三维结构的非易失性半导体存储设备来实现,诸如相变RAM(PRAM)、磁性RAM(MRAM)、电阻RAM(RRAM)、NAND闪存、NOR闪存或NAND闪存。在一个示例中,存储模块4400可以被提供为可移动驱动器,诸如用户***4000的存储卡或外部驱动器。
在一个示例中,存储模块4400可以包括多个非易失性存储设备,并且多个非易失性存储设备可以与参考图7至10描述的存储器设备100相同地操作。存储模块4400可以与参考图1描述的存储设备50相同地操作。
用户接口4500可以包括用于向应用处理器4100输入数据或命令或者向外部设备输出数据的接口。在一个示例中,用户接口4500可以包括用户输入接口,诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、相机、麦克风、陀螺仪传感器、振动传感器和压电元件。用户接口4500可以包括用户输出接口,诸如液晶显示器(LCD)、有机发光二极管(OLED)显示设备、有源矩阵OLED(AMOLED)显示设备、LED、扬声器和显示器。
根据本公开的实施例,提供了一种被配置为在正常模式操作中执行存储在非易失性存储器中的恢复代码的存储器控制器、以及该存储器控制器的操作方法。
虽然已经参考本发明的某些实施例示出和描述了本发明,但是本领域技术人员将理解,在不脱离如所附权利要求书及其等效内容限定的本发明的精神和范围的情况下,可以在形式和细节上进行各种改变。因此,本发明的范围不应当限于上述实施例,而是不仅应当由所附权利要求书确定,而且还应当由其等效内容确定。
在上述实施例中,可以选择性地执行步骤或者可以省略某些步骤。在每个实施例中,步骤不一定根据所描述的顺序执行,并且可以重新布置。在本说明书和附图中公开的实施例仅是示例以促进对本发明的理解,并且本发明不限于此。也就是说,对于本领域技术人员而言很清楚的是,可以基于本公开的技术范围进行各种修改。
尽管这里使用特定术语,但是这些仅是为了解释本公开的实施例。因此,本发明不限于上述实施例。相反,在本公开的精神和范围内,很多变型是可能的。对于本领域技术人员很清楚的是,除了本文中公开的实施例之外,还可以基于本公开的技术范围进行各种修改。
Claims (25)
1.一种用于控制数据存储设备的存储器控制器,所述存储器控制器包括:
模式转换器,被配置为根据表示所述数据存储设备的功耗的功率感测信息,将所述数据存储设备的操作模式确定为正常模式或睡眠模式;
恢复代码存储装置,包括存储用于恢复操作的恢复代码的非易失性存储器;以及
代码执行器,被配置为通过执行所述恢复代码来执行所述恢复操作,
其中所述模式转换器存储恢复代码地址,所述恢复代码地址指示所述非易失性存储器中存储所述恢复代码的位置。
2.根据权利要求1所述的存储器控制器,
还包括存储正常代码的正常代码存储装置,在所述恢复操作被执行之后,所述正常代码由所述代码执行器执行以用于所述数据存储设备以所述正常模式操作;
其中所述模式转换器存储正常代码地址,所述正常代码地址指示所述正常代码存储装置中存储所述正常代码的位置。
3.根据权利要求2所述的存储器控制器,其中所述模式转换器:
当所述功耗小于或等于参考功耗时,将所述操作模式确定为所述睡眠模式;以及
当所述操作模式为所述睡眠模式时,执行用于维持通电状态的第一操作。
4.根据权利要求3所述的存储器控制器,其中当所述功耗超过所述参考功耗时,所述模式转换器将所述数据存储设备的所述操作模式从所述睡眠模式转换为所述正常模式。
5.根据权利要求3所述的存储器控制器,其中当所述模式转换器确定将所述数据存储设备的所述操作模式从所述正常模式转换为所述睡眠模式时,所述模式转换器向所述恢复代码存储装置输出用于请求所述恢复代码地址的代码地址请求。
6.根据权利要求5所述的存储器控制器,其中所述恢复代码存储装置响应于所述代码地址请求而向所述模式转换器输出所述恢复代码地址。
7.根据权利要求4所述的存储器控制器,其中当所述模式转换器确定将所述数据存储设备的所述操作模式从所述睡眠模式转换到所述正常模式时,所述模式转换器向所述代码执行器输出存储在所述模式转换器中的所述恢复代码地址和所述正常代码地址。
8.根据权利要求7所述的存储器控制器,其中所述代码执行器通过向所述恢复代码存储装置提供代码请求、以及从所述模式转换器提供的所述恢复代码地址,从所述恢复代码存储装置接收与所述恢复代码地址相对应的所述恢复代码,并且通过执行所接收的所述恢复代码来执行所述恢复操作。
9.根据权利要求7所述的存储器控制器,其中所述代码执行器通过执行所述恢复代码,确定存储在所述存储器控制器中的包含错误的数据是否可纠错。
10.根据权利要求9所述的存储器控制器,其中当确定所述包含错误的数据可纠错时,所述代码执行器对所述包含错误的数据进行纠错,并且然后通过向所述正常代码存储装置提供代码请求、以及从所述模式转换器提供的所述正常代码地址,从所述正常代码存储装置接收与所述正常代码地址相对应的所述正常代码。
11.根据权利要求10所述的存储器控制器,其中所述代码执行器:
执行所接收的所述正常代码;以及
当所述正常模式的执行被完成时,输出用于允许所述存储设备以所述正常模式操作的正常模式设置请求。
12.根据权利要求9所述的存储器控制器,其中当确定所述包含错误的数据不可纠错时,所述代码执行器输出用于重置所述数据存储设备的重置请求。
13.根据权利要求12所述的存储器控制器,还包括:重置控制器,被配置为响应于所述重置请求而控制所述存储设备以引导模式操作。
14.一种用于操作用于控制数据存储设备的存储器控制器的方法,所述方法包括:
通过感测所述数据存储设备的功耗来生成功率感测信息;
根据所述功率感测信息,将所述数据存储设备的操作模式确定为正常模式或睡眠模式;以及
基于所述数据存储设备的所述操作模式,存储指示非易失性存储器中存储恢复代码的位置的恢复代码地址。
15.根据权利要求14所述的方法,其中当所述操作模式从所述正常模式转换为所述睡眠模式时,所述恢复代码地址被存储。
16.根据权利要求15所述的方法,还包括:当所述操作模式从所述睡眠模式转换为所述正常模式时,通过基于所述恢复代码地址接收所述恢复代码来执行所述恢复代码。
17.根据权利要求16所述的方法,其中所述恢复代码地址与存储在易失性存储器中的正常代码的正常代码地址一起被存储,在所述恢复代码被执行之后,所述正常代码被执行以用于所述数据存储设备以所述正常模式操作。
18.根据权利要求17所述的方法,其中当所述功耗小于等于参考功耗时,所述操作模式被确定为所述睡眠模式。
19.根据权利要求18所述的方法,其中确定所述操作模式包括:当所述功耗超过所述参考功耗时,从所述睡眠模式转换为所述正常模式。
20.根据权利要求18所述的方法,其中所述恢复代码对应于所述恢复代码地址。
21.根据权利要求20所述的方法,还包括:通过执行所述恢复代码,确定存储在所述存储器控制器中的包含错误的数据是否可纠错。
22.根据权利要求21所述的方法,还包括:当确定所述包含错误的数据可纠错时,对所述包含错误的数据进行纠错,并且然后通过接收与所述正常代码地址相对应的所述正常代码来执行所述正常代码。
23.根据权利要求22所述的方法,还包括:当所述正常代码的执行被完成时,输出用于允许所述数据存储设备以所述正常模式操作的正常模式设置请求。
24.根据权利要求21所述的方法,还包括:当确定所述包含错误的数据不可纠错时,输出用于重置所述数据存储设备的重置请求,并且响应于所述重置请求而控制所述数据存储设备以引导模式操作。
25.一种用于控制存储器设备的控制器的操作方法,所述操作方法包括:
当所述存储器设备进入第一模式时,将代码地址从第一存储器复制到第二存储器;以及
当所述存储器设备退出所述第一模式并且进入第二模式时,通过执行恢复代码来对所述存储器设备执行恢复操作,
其中所述第一存储器是非易失性的,
其中所述恢复代码被存储在所述第一存储器内由所述代码地址指示的区域中,以及
其中所述第一存储器和所述第二存储器被包括在所述控制器中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190035066A KR20200114017A (ko) | 2019-03-27 | 2019-03-27 | 컨트롤러 및 그 동작 방법 |
KR10-2019-0035066 | 2019-03-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111752470A true CN111752470A (zh) | 2020-10-09 |
Family
ID=72605932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911044922.1A Withdrawn CN111752470A (zh) | 2019-03-27 | 2019-10-30 | 存储器控制器及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11307783B2 (zh) |
KR (1) | KR20200114017A (zh) |
CN (1) | CN111752470A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11287991B2 (en) | 2020-07-13 | 2022-03-29 | SK Hynix Inc. | Memory system for assuring reliability |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7664970B2 (en) * | 2005-12-30 | 2010-02-16 | Intel Corporation | Method and apparatus for a zero voltage processor sleep state |
JP2008090434A (ja) * | 2006-09-29 | 2008-04-17 | Toshiba Corp | 情報処理装置、およびメール受信方法 |
US8762692B2 (en) * | 2007-09-27 | 2014-06-24 | Intel Corporation | Single instruction for specifying and saving a subset of registers, specifying a pointer to a work-monitoring function to be executed after waking, and entering a low-power mode |
US8578138B2 (en) * | 2009-08-31 | 2013-11-05 | Intel Corporation | Enabling storage of active state in internal storage of processor rather than in SMRAM upon entry to system management mode |
KR20150008671A (ko) | 2013-07-15 | 2015-01-23 | 에스케이하이닉스 주식회사 | 반도체 장치 |
WO2015185017A1 (en) * | 2014-06-05 | 2015-12-10 | Mediatek Inc. | Storage apparatus, storage system, storage apparatus controlling method |
KR102225313B1 (ko) | 2014-08-20 | 2021-03-10 | 에스케이하이닉스 주식회사 | 데이터 저장 장치의 동작 방법 |
US9703632B2 (en) * | 2014-11-07 | 2017-07-11 | Nxp B. V. | Sleep mode operation for volatile memory circuits |
US10915256B2 (en) * | 2015-02-25 | 2021-02-09 | SK Hynix Inc. | Efficient mapping scheme with deterministic power transition times for flash storage devices |
KR102589259B1 (ko) * | 2016-06-20 | 2023-10-12 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10248486B2 (en) * | 2016-09-29 | 2019-04-02 | Intel Corporation | Memory monitor |
KR20180058894A (ko) * | 2016-11-24 | 2018-06-04 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10990159B2 (en) * | 2017-04-25 | 2021-04-27 | Apple Inc. | Architected state retention for a frequent operating state switching processor |
US11112983B2 (en) * | 2019-08-28 | 2021-09-07 | Micron Technology, Inc. | Recovery of memory device from a reduced power state |
-
2019
- 2019-03-27 KR KR1020190035066A patent/KR20200114017A/ko not_active Application Discontinuation
- 2019-10-07 US US16/595,065 patent/US11307783B2/en active Active
- 2019-10-30 CN CN201911044922.1A patent/CN111752470A/zh not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11287991B2 (en) | 2020-07-13 | 2022-03-29 | SK Hynix Inc. | Memory system for assuring reliability |
Also Published As
Publication number | Publication date |
---|---|
US20200310664A1 (en) | 2020-10-01 |
KR20200114017A (ko) | 2020-10-07 |
US11307783B2 (en) | 2022-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11119950B2 (en) | Storage device and method of operating the same | |
US11461171B2 (en) | Memory system and method of operating the same | |
US10776027B2 (en) | Storage device and method of operating the same | |
US10650897B2 (en) | Storage device and method for operating the same | |
CN112988049A (zh) | 存储装置及其操作方法 | |
CN111752856A (zh) | 存储器控制器及其操作方法 | |
KR20210090439A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
US10910047B2 (en) | Storage device and method of operating the same | |
CN111258931A (zh) | 存储器控制器及操作该存储器控制器的方法 | |
CN107436730B (zh) | 数据处理***及其操作方法 | |
CN112309446A (zh) | 存储设备和操作存储设备的方法 | |
CN111796962A (zh) | 存储装置以及存储装置的操作方法 | |
US11748036B2 (en) | Storage device and operating method thereof | |
US11551762B2 (en) | Memory device and method of operating the same | |
US11688464B2 (en) | Storage device and method of operating the same | |
US11276477B2 (en) | Memory controller and operating method thereof | |
US11307783B2 (en) | Memory controller performing recovery operation using recovery code and operating method thereof | |
US11281512B2 (en) | Storage device providing device-to-host information to host and operating method thereof | |
CN112447234A (zh) | 存储器控制器及其操作方法 | |
CN112199037A (zh) | 存储器控制器及其操作方法 | |
US11586370B2 (en) | Memory controller and method of operating the same | |
US11500768B2 (en) | Storage device performing garbage collection and method of operating the same | |
US11294590B2 (en) | Storage device with fail page replacement capability and operating method thereof | |
CN114446357A (zh) | 存储装置及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20201009 |
|
WW01 | Invention patent application withdrawn after publication |