CN111124035B - 基于实时时钟管理空闲页面的存储器***及其操作方法 - Google Patents
基于实时时钟管理空闲页面的存储器***及其操作方法 Download PDFInfo
- Publication number
- CN111124035B CN111124035B CN201910909881.1A CN201910909881A CN111124035B CN 111124035 B CN111124035 B CN 111124035B CN 201910909881 A CN201910909881 A CN 201910909881A CN 111124035 B CN111124035 B CN 111124035B
- Authority
- CN
- China
- Prior art keywords
- rtc
- spo
- memory
- value
- time
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/14—Dummy cell management; Sense reference voltage generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/14—Time supervision arrangements, e.g. real time clock
-
- 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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/14—Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
- G11C5/148—Details of power up or power down circuits, standby circuits or recovery circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/20—Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1056—Simplification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
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)
- Power Engineering (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Power Sources (AREA)
Abstract
本发明涉及一种存储器***,该存储器***包括存储器装置和控制器,存储器装置包括多个存储块,控制器控制存储器装置,其中控制器包括:实时时钟(RTC)管理电路,当发生第一突然断电(SPO)时使用第一RTC值和第二RTC值生成SPO发生周期,然后将该SPO发生周期与阈值进行比较,以确定是否延迟虚设页面生成;以及虚设页面生成电路,根据RTC管理电路的确定结果,使用多个存储块之中的存储块中的除有效页面之外的、一个或多个空闲页面或未完成编程页面来生成虚设页面,未完成编程页面指示由于SPO而被中断编程操作的页面。
Description
相关申请的交叉引用
本申请要求于2018年10月30日提交的申请号为10-2018-0130651的韩国专利申请的优先权,其通过引用整体并入本文。
技术领域
本发明的各个实施例总体涉及一种存储器装置。特别地,实施例涉及一种存储器***及其操作方法。
背景技术
近来,计算机环境的范例已经转变到允许随时随地使用计算机***的普适计算。由于这个事实,诸如移动电话、数码相机和笔记本电脑的便携式电子装置的使用已经迅速增加。通常,这种便携式电子装置使用一种使用存储器装置的存储器***,即数据存储装置。数据存储装置用作便携式电子装置的主存储器装置或辅助存储器装置。
发明内容
各个实施例涉及一种能够最小化空闲页面的消耗的存储器***及其操作方法。
根据本发明的实施例,一种存储器装置,包括:多个存储块;以及适于控制该存储器装置的控制器,其中该控制器包括:实时时钟(RTC)管理电路,适于当发生第一突然断电(SPO)时使用第一和第二RTC值生成SPO发生周期,然后将该SPO发生周期与阈值进行比较,以确定是否延迟虚设页面生成;以及虚设页面生成电路,适于根据RTC管理电路的确定结果,使用多个存储块之中的存储块中的除有效页面之外的、一个或多个空闲页面或未完成编程页面来生成虚设页面,未完成编程页面指示由于SPO而被中断编程操作的页面。
根据本发明的另一实施例,一种存储器***,包括一个或多个存储装置,该一个或多个存储装置包括一个或多个处理器和由一个或多个处理器中的至少一个执行的编程命令,其中一个或多个存储装置和编程命令控制存储器***和一个或多个处理器以:当发生第一突然断电(SPO)时使用第一和第二实时时钟(RTC)值来生成SPO发生周期;将该SPO发生周期与阈值进行比较;当SPO发生周期与阈值之间的比较结果指示SPO发生周期小于阈值时,将虚设页面生成时间延迟第一延迟时间;并且在已经过第一延迟时间之后,使用存储块中的除有效页面之外的、一个或多个空闲页面或未完成编程页面来生成虚设页面,未完成编程页面指示由于SPO而被中断编程操作的页面。
根据本发明的另一实施例,一种存储器***的操作方法,该存储器***包括存储器装置和控制器,其中该存储器装置包括多个存储块,该控制器适于控制该存储器装置,该操作方法包括:当发生第一突然断电(SPO)时,使用第一和第二实时时钟(RTC)值生成SPO发生周期,并且将该SPO发生周期与阈值进行比较以确定是否延迟虚设页面生成;并且根据确定是否延迟虚设页面生成的结果,使用多个存储块之中的存储块中的除有效页面之外的、一个或多个空闲页面或未完成编程页面来生成虚设页面,未完成编程页面指示由于SPO而被中断编程操作的页面。
根据本发明的另一实施例,一种存储器***,包括:存储器装置,包括多个存储块;以及控制器,适于控制存储器装置,控制器包括:管理器,适于当发生突然断电(SPO)时基于存储器装置中存储的时间值和从主机接收的启动时间值来确定SPO发生周期,并且将该SPO发生周期与阈值进行比较;以及虚设页面生成器,适于基于比较SPO发生周期与阈值的结果来选择性地延迟虚设页面生成时间,并且在虚设页面生成时间生成虚设页面。
根据本实施例,存储器***可使用实时时钟(RTC)来确定是否生成虚设页面,从而最小化空闲页面的消耗。
附图说明
图1是示出根据实施例的包括存储器***的数据处理***的框图。
图2A和图2B是示意性示出一般虚设页面生成操作的示例的示图。
图3是示意性示出根据实施例的存储器***中的存储器装置的数据处理操作的示例的示图。
图4A和图4B是示意性示出根据实施例的存储器***中的第一模式操作的示例的示图。
图5A至图5C是示意性示出根据实施例的存储器***中的第二模式操作的示例的示图。
图6至图8是示出根据实施例的存储器***的操作方法的示例的流程图。
图9至图17是示出根据本发明的实施例的存储器***的示例性应用的示图。
具体实施方式
以下参照附图更详细地描述本发明的各个实施例。然而,注意的是,本发明可以不同的形式来实现。此外,本发明的方面和特征可被配置或布置成不同于所示实施例中所示出的。因此,本发明不应被解释为限于本文中阐述的实施例。相反,提供所描述的实施例使得本公开完整和全面并将本发明充分地传达给本发明所属领域的技术人员。而且,在整个说明书中,对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。
将进一步理解的是,当元件被称为“连接到”或“联接到”另一元件时,其可直接在其它元件上、连接到或联接到其它元件,或者可存在一个或多个中间元件。此外,还将理解的是,当元件被称为在两个元件“之间”时,其可以是这两个元件之间的唯一元件,或者也可存在一个或多个中间元件。除非另有说明或上下文另有指示,否则两个元件之间的通信,无论直接或间接连接/联接,可以是有线的或无线的。
如本文所使用的,除非上下文另有明确说明,否则单数形式也可包括复数形式,反之亦然。
将进一步理解的是,当在本说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,其说明所陈述元件的存在,但不排除一个或多个其它元件的存在或添加。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任何和全部组合。
以下参照附图详细地描述本发明的各个实施例。
图1是示出根据实施例的包括存储器***的数据处理***100的框图。
参照图1,数据处理***100可包括主机10和存储器***110。
主机10可由各种电子装置中的任意一种来实现,例如,诸如移动电话、MP3播放器和膝上型计算机的便携式电子装置,或诸如台式计算机、游戏机、电视(TV)和投影仪的电子装置,即有线和无线电子装置。
而且,主机10包括至少一个操作***(OS)。操作***通常管理和控制主机10的功能和操作,并且使用数据处理***100或存储器***110提供主机10与用户之间的互操作性。操作***支持与用户的目的和操作***的用途相对应的功能和操作。例如,根据主机10的移动性,操作***可以是通用操作***或移动操作***。根据用户的使用环境,通用操作***可以是个人操作***或企业操作***。例如,被配置成支持对普通用户的服务提供功能的个人操作***可包括Windows和Chrome,并且被配置成确保和支持高性能的企业操作***可包括Windows服务器、Linux和Unix。被配置成支持对用户的移动服务提供功能和***节能功能的移动操作***可包括Android、iOS、Windows mobile等。主机10可包括多个操作***,并且对应于用户请求运行操作***以利用存储器***110执行操作。主机10将对应于用户请求的多个命令传输到存储器***110,因此,存储器***110执行对应于命令的操作,即对应于用户请求的操作。
存储器***110响应于主机10的请求进行操作,并且特别地,存储待由主机10访问的数据。换言之,存储器***110可用作主机10的主存储器装置或辅助存储器装置。根据与主机10联接的主机接口协议,存储器***110可被实施为各种存储装置中的任意一种。例如,存储器***110可被实施为以下中的任意一种:固态驱动器(SSD)、多媒体卡(例如,MMC、嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)和微型MMC)、安全数字卡(例如,SD、迷你SD和微型SD)、通用串行总线(USB)存储装置、通用闪存(UFS)装置、紧凑式闪存(CF)卡、智能媒体卡和记忆棒。
实施存储器***110的存储装置中的任何一种可以是诸如动态随机存取存储器(DRAM)和/或静态随机存取存储器(SRAM)的易失性存储器装置,或者诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电随机存取存储器(FRAM)、相变RAM(PRAM)、磁性RAM(MRAM)和/或电阻式RAM(RRAM)的非易失性存储器装置。
存储器***110包括控制器20和存储器装置30,存储器装置30存储待由主机10访问的数据。控制器20控制数据在存储器装置30中的存储。
控制器20和存储器装置30可集成到一个半导体装置中。例如,控制器20和存储器装置30可集成到一个半导体装置中,并且配置固态驱动器(SSD)。在存储器***110用作SSD的情况下,可提高联接到存储器***110的主机10的操作速度。控制器20和存储器装置30可集成到一个半导体装置中以形成诸如以下的存储卡:个人计算机存储卡国际协会(PCMCIA)卡、紧凑式闪存(CF)卡、智能媒体卡(例如,SM和SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC和微型MMC)、安全数字卡(例如,SD、迷你SD、微型SD和SDHC)和/或通用闪存(UFS)装置。
在另一实施例中,存储器***110可被设置在计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航装置、黑盒、数码相机、数字多媒体广播(DMB)播放器、3维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、配置数据中心的存储装置、能够在无线环境下发送和接收信息的装置、配置家庭网络的各种电子装置之一、配置计算机网络的各种电子装置之一、配置远程信息处理网络的各种电子装置之一、射频识别(RFID)装置或配置计算***的各种组件之一中。
即使不供应电力,存储器装置30也可保留所存储的数据。特别地,存储器装置30可通过写入操作存储从主机10提供的数据,并且通过读取操作将所存储的数据提供到主机10。
存储器装置30可包括多个存储器管芯。多个存储器管芯中的每一个包括多个平面。多个存储器平面包括多个存储块BLK1至BLKz,多个存储块BLK1至BLKz中的每个包括多个页面。页面中的每一个包括与多个字线(WL)联接的多个存储器单元。存储器装置30可以是非易失性存储器装置,例如闪速存储器。闪速存储器可具有三维(3D)堆叠结构。
控制器20响应于来自主机10的请求控制存储器装置30。例如,控制器20将从存储器装置30读取的数据提供到主机10,并将从主机10提供的数据存储在存储器装置30中。为此,控制器20控制存储器装置30的操作,诸如读取操作、写入操作、编程操作和擦除操作。
控制器20包括主机接口(I/F)21、处理器22、存储器接口(I/F)23、存储器24、实时时钟(RTC)管理电路25和虚设页面生成电路26。
主机接口21处理主机10的命令和数据,并且可被配置成通过诸如以下的各种接口协议中的至少一种来与主机10通信:通用串行总线(USB)、多媒体卡(MMC)、高速***组件互连(PCI-e或PCIe)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、小型计算机***接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)和移动工业处理器接口(MIPI)。主机接口21可通过被称为主机接口层(HIL)的固件来驱动,主机接口21是与主机10交换数据的区域。
存储器接口23用作执行控制器20与存储器装置30之间的接口连接的存储器和存储装置接口,以允许控制器20响应于来自主机10的请求控制存储器装置30。在存储器装置30是闪速存储器的情况下,特别是在存储器装置30是NAND闪速存储器的情况下,存储器接口23作为NAND闪速控制器(NFC),根据处理器22的控制来生成用于存储器装置30的控制信号并处理数据。存储器接口23可支持在控制器20与存储器装置30之间处理命令和数据的接口,例如NAND闪存接口的操作,特别是支持控制器20与存储器装置30之间的数据输入/输出。存储器接口23可通过被称为闪存接口层(FIL)的固件来驱动,存储器接口23是与存储器装置30交换数据的区域。
作为存储器***110和控制器20的工作存储器,存储器24存储用于驱动存储器***110和控制器20的数据。例如,当控制器20响应于来自主机10的请求控制存储器装置30时,控制器20可将从存储器装置30读取的数据提供到主机10,并且/或者将从主机10提供的数据存储在存储器装置30中。为此,当控制器20控制存储器装置30的诸如读取操作、写入操作、编程操作和擦除操作的操作时,存储器24存储允许待由存储器***110执行的这些操作,即在控制器20与存储器装置30之间执行的这些操作所需的数据。
存储器24可通过易失性存储器来实现。例如,存储器24可通过静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)来实现。如图1所示,存储器24可设置在控制器20内。可选地,存储器24可位于控制器20的外部,并且在这方面,存储器24可被实现为通过存储器接口而与控制器20通信的单独的外部易失性存储器。
如上所述,存储器24存储在主机10与存储器装置30之间执行数据读取和写入操作所需的数据,以及当执行数据读取和写入操作时的数据。对于这种数据存储,存储器24包括程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。
处理器22控制存储器***110的所有操作,且特别地,响应于来自主机10的写入请求或读取请求而控制对存储器装置30的编程操作或读取操作。处理器22驱动被称为闪存转换层(FTL)的固件,以控制存储器***110的一般操作。处理器22可通过微处理器或中央处理电路(CPU)来实现。
例如,控制器20在存储器装置30中执行由主机10请求的操作。也就是说,控制器20通过处理器22利用存储器装置30来执行与从主机10接收的命令相对应的命令操作。控制器20可执行前台操作作为与从主机10接收到的命令相对应的命令操作。例如,控制器20执行与写入命令相对应的编程操作、与读取命令相对应的读取操作、与擦除命令相对应的擦除操作或者与作为设置命令的设置参数命令或设置特征命令相对应的参数设置操作。
控制器20还可通过处理器22对存储器装置30执行后台操作。后台操作包括将存储器装置30的存储块BLK1至BLKz之中的一个存储块中存储的数据复制到另一存储块的操作。这种后台操作可以是:垃圾收集(GC)操作;在选择的存储块BLK1至BLKz之中交换数据的操作,例如损耗均衡(WL)操作;将控制器20中存储的映射数据存储在存储块BLK1至BLKz中的操作,例如映射清除操作;或对存储器装置30执行坏块管理的操作,例如识别和处理存储器装置30中的存储块BLK1至BLKz之中的坏块的操作。
当发生突然断电(SPO)时,处理器134可驱动RTC管理电路25和虚设页面生成电路26。
在描述RTC管理电路25和虚设页面生成电路26之前,将参照图2A和图2B描述以下情况。通常,当在存储器控制器20响应于从主机10接收到的写入命令,对存储块BLK1的第一至第m页面P1至Pm顺序地执行编程操作时发生意外断电,即发生SPO时,可强行暂停编程操作。SPO可指示突然停电。例如,由于意外的电源故障导致的外部断电可导致SPO。在存储器装置30中,由于SPO而被暂停编程操作的块可被称为部分块。部分块可指示一些页面而非所有页面被编程的块。例如,参照图2A,当在对存储器装置30中包括的第一存储块BLK1的第四页面P4进行编程时发生SPO时,可能未正确地对第四页面P4进行编程。在这种情况下,可生成第一未完成编程页面。也就是说,未完成编程页面指示由于SPO而被中断编程操作的页面,并且第一存储块BLK1可以是第一部分块。参照图2B,当存储器***110通电时,存储器控制器20可判定第一部分块BLK1是否被编程,并且通过对该部分块的一个或多个空闲页面或第一未完成编程页面执行虚设编程操作来生成虚设页面P4。换言之,可使用存储块BLK1的一个或多个空闲页面或未完成编程页面来生成虚设页面。这样,每当发生SPO而生成虚设页面时,可将空闲页面用作虚设页面。为了使虚设页面生成最小化,存储器控制器20可使用RTC管理电路25和虚设页面生成电路26。
RTC管理电路25可检查通过实时时钟(RTC)生成的SPO发生周期,并将SPO发生周期与阈值TH进行比较,以便确定是否生成虚设页面。SPO发生周期可指示第一RTC值RTC_1和第二RTC值RTC_2之间的差。当在当前第一SPO SPO_1之前发生了第二SPO SPO_2时,可通过RTC生成第一RTC值RTC_1。当发生第一SPO SPO_1时,可通过RTC生成第二RTC值RTC_2。阈值TH可指示可随工作负载的改变而改变的设定值,其中工作负载根据用户环境的改变而改变。可根据服务环境和性能来应用设定值。
根据RTC管理电路25的确定结果,虚设页面生成电路26可通过执行利用虚设数据编程一个或多个页面的虚设编程操作来生成虚设页面。
在上下文中,详细描述RTC管理电路25和虚设页面生成电路26。
如在本公开中使用的,术语“电路”可指代以下的所有内容:(a)仅硬件电路实施方案(诸如仅以模拟和/或数字电路的实施方案)以及(b)电路与软件(和/或固件)的组合,诸如(如适用于):(i)处理器的组合或(ii)处理器/软件(包括一起工作以使诸如移动电话或服务器的设备执行各种功能的数字信号处理器、软件和存储器)的部分;以及(c)需要软件或固件来进行操作的电路,诸如微处理器或微处理器的一部分,即使该软件或固件并非物理地存在。“电路”的这种定义适用于在本申请中、包括在任意权利要求中该术语的所有使用。作为进一步的示例,如在本申请中所使用的,术语“电路”还将覆盖仅处理器(或多个处理器)或处理器的部分及其(或它们)的附带软件和/或固件的实施方案。例如并且如果适于特定的权利要求元素,术语“电路”还将覆盖用于存储装置的集成电路。
图3是示意性示出根据实施例的存储器***中的存储器装置的数据处理操作的示例的示图。
参照图3,当发生SPO时,控制器20可通过处理器驱动RTC管理电路25和虚设页面生成电路26。
当在发生SPO之后存储器***110通电时,第一RTC加载电路251可从存储器装置30的RTC列表301加载第一RTC值RTC_1。RTC列表301可存储在多个存储块中的任意一个存储块中。RTC索引INDEX和RTC值可顺序地存储在RTC列表301中。第一RTC值可指示RTC列表301中存储的一个或多个RTC值之中的、最后存储的RTC值。根据是否通过第一RTC加载电路251加载了第一RTC值,可执行第一模式Mode_1或第二模式Mode_2。
当执行第一模式Mode_1时,可驱动第二RTC生成电路252。也就是说,当不能从RTC列表301加载第一RTC值时,可执行第一模式Mode_1。具体地,当因为第一次发生SPO而没有RTC值存储在RTC列表301中时,可驱动第二RTC生成电路252。将参照图4A和图4B详细描述这种情况。
另一方面,当执行第二模式Mode_2时,可驱动第二RTC生成电路252、比较电路253和时间延迟电路254。也就是说,当执行第二模式Mode_2时,这可指示因为发生了两次或更多次SPO,所以可从RTC列表301加载第一RTC值。将参照图5A至图5C详细描述这种情况。
图4A和图4B是示意性示出根据实施例的存储器***中的第一模式操作(例如,图3的第一模式Mode_1)的示例的示图。
参照图4A和图4B,第一模式Mode_1可包括第二RTC生成电路252。第二RTC生成电路252可生成对应于第一SPO发生时间的第二RTC值RTC_2。然后,第二RTC生成电路252可将所生成的第二RTC值RTC_2存储在存储器装置30的RTC列表301中。第二RTC值RTC_2可指示在发生SPO时生成的RTC值。
具体地,当存储器***110通电或开始启动时,第二RTC生成电路252可从主机10接收指示启动时间的第一启动时间值BTV。第二RTC生成电路252可响应于所接收的第一启动时间值BTV,生成指示第一SPO发生时间的第二RTC值RTC_2。第二RTC生成电路252可将所生成的第二RTC值RTC_2存储在RTC列表301中。
然后,可在通过第二RTC生成电路252生成第二RTC值RTC_2之后驱动虚设页面生成电路26。虚设页面生成电路26可通过执行利用虚设数据编程一个或多个页面的虚设编程操作来生成虚设页面。参照图4B,虚设页面生成电路26可通过对第一部分块BLK1中包括的多个页面P1至Pm中的第四页面P4执行虚设编程操作来生成第一虚设页面D1。
图5A至图5C是示意性示出根据实施例的存储器***中的第二模式操作(例如,图3的第二模式Mode_2)的示例的示图。
参照图5A至图5C,当因为一个或多个RTC值存储在RTC列表301中,所以可通过第一RTC加载电路251加载第一RTC值时,可驱动第二模式Mode_2。
可通过第二RTC生成电路252、比较电路253和时间延迟电路254来驱动第二模式Mode_2。第二RTC生成电路252可生成对应于第二SPO发生时间的第二RTC值RTC_2。然后,第二RTC生成电路252可将所生成的第二RTC值RTC_2存储在RTC列表301中。第二RTC值RTC_2可指示当前发生SPO时生成的RTC值。具体地,当存储器***110通电或开始启动时,第二RTC生成电路252可从主机10接收指示启动时间的第二启动时间值BTV。第二RTC生成电路252可响应于所接收的第二启动时间值BTV,生成指示第二SPO发生时间的第二RTC值RTC_2。第二RTC生成电路252可将所生成的第二RTC值RTC_2存储在RTC列表301中。然后,第二RTC生成电路252可将第二RTC值RTC_2传送到比较电路253。
比较电路253可通过从第一RTC加载电路251接收的第一RTC值RTC_1与从第二RTC生成电路252接收的第二RTC值RTC_2之间的差来计算第一SPO发生周期。比较电路253可将第一SPO发生周期与设定的阈值TH进行比较,并且确定是否可能发生SPO。
当阈值TH与第一SPO发生周期之间的比较结果指示第一SPO发生周期大于阈值TH时,比较电路253可确定较少可能发生SPO(例如,第三SPO),并且可不通过时间延迟电路254生成虚设页面生成时间,但是可通过虚设页面生成电路26生成第二虚设页面。也就是说,如图5B所示,可通过虚设页面生成电路26生成第二虚设页面D2。
另一方面,当阈值TH与第一SPO发生周期之间的比较结果指示第一SPO发生周期小于阈值TH时,比较电路253可确定较多可能发生SPO(例如,第三SPO)。也就是说,比较电路253可确定很快将发生SPO。根据确定结果,可驱动时间延迟电路254以延迟虚设页面生成时间。
时间延迟电路254可将虚设页面生成时间延迟设定的第一延迟时间DT1。将虚设页面生成时间延迟第一延迟时间DT1的原因是:在第一延迟时间DT1期间可能发生第三SPO。例如,当在第一延迟时间DT1期间发生第三SPO时,无需生成虚设页面。因为即使在第一延迟时间DT1期间发生数次SPO也无需执行虚设页面的生成,所以可使空闲页面的消耗最小化。
虚设页面生成电路26可通过执行利用虚设数据编程一个或多个页面的虚设编程操作来生成虚设页面。参照图5C,当在发生第二SPO SPO_2之后的第一延迟时间DT1期间发生第三SPO时,虚设页面生成电路26可通过仅对第一部分块BLK1中包括的多个页面P1至Pm中的第五页面P5执行虚设编程操作来生成第二虚设页面。也就是说,虽然发生了三次SPOSPO_1至SPO_3,但可仅生成两个虚设页面D1和D2。
虽然时间延迟电路254将虚设页面生成时间延迟了设定的第一延迟时间DT1,但可能不会发生第三SPO SPO_3。在这种情况下,可通过虚设页面生成电路26生成第二虚设页面D2。也就是说,如参照图5B所述,可通过虚设页面生成电路26生成第二虚设页面D2。
图6至图8是示出根据实施例的存储器***(例如,图1的存储器***110)的操作方法的示例的流程图。
参照图6,在步骤S601中,存储器***110可感测突然断电(SPO)。例如,存储器***110可直接感测从处理器22或从外部来源提供的电力的断开。可选地,存储器***110可从处理器22接收保存信号SAVE_n(未示出),并且基于所接收的保存信号SAVE_n来感测SPO的状态。然后,在发生SPO之后,在步骤S603中,存储器***110可通电。
在步骤S605中,RTC管理电路25可从存储器装置30的RTC列表301加载第一RTC值RTC_1。RTC列表301可存储在多个存储块中的任意存储块中。RTC索引INDEX和RTC值可顺序地存储在RTC列表301中。第一RTC值RTC_1可以是RTC列表301中存储的RTC值之中被最后存储的。根据是否加载了第一RTC值RTC_1,可第一模式Mode_1或第二模式Mode_2下驱动RTC管理电路25。
当在第一模式Mode_1下驱动RTC管理电路25时,可驱动第二RTC生成电路252。也就是说,当不能从RTC列表301加载第一RTC值RTC_1时,可在第一模式Mode_1下驱动RTC管理电路25。具体地,当因为第一次发生SPO,所以没有RTC值存储在RTC列表301中时,可驱动第二RTC生成电路252。将参照图7详细描述这种情况。
另一方面,当在第二模式Mode_2下驱动RTC管理电路25时,这可指示因为发生了两次或更多次SPO,所以可从RTC列表301加载第一RTC值RTC_1。将参照图8详细描述这种情况。
在步骤S609中,在第一或第二模式下执行操作之后,虚设页面生成电路26可生成虚设页面。
图7是示出根据实施例的存储器***(例如,图1的存储器***110)的第一模式操作方法的流程图。
参照图7,当存储器***110通电或开始启动时,在步骤S701中,RTC管理电路25可从主机10接收指示启动时间的第一启动时间值BTV。
在步骤S703中,RTC管理电路25可响应于所接收的第一启动时间值BTV,生成指示第一SPO发生时间的第二RTC值RTC_2。
在步骤S705中,RTC管理电路25可将所生成的第二RTC值RTC_2存储在存储器装置30的RTC列表301中。
在步骤S707中,在通过第二RTC生成电路生成第二RTC值RTC_2之后,虚设页面生成电路26可通过执行利用虚设数据编程一个或多个页面的虚设编程操作来生成虚设页面。
图8是示出根据实施例的存储器***(例如,图1的存储器***110)的第二模式操作方法的流程图。
参照图8,在步骤S800中,RTC管理电路25可从存储器装置30的RTC列表301加载最后保存的第一RTC值RTC_1。
在步骤S801中,RTC管理电路25可从主机10接收指示启动时间的第二启动时间值BTV。
在步骤S803中,RTC管理电路25可响应于所接收的第二启动时间值BTV,生成指示第二SPO发生时间的第二RTC值RTC_2。然后,RTC管理电路25可将所生成的第二RTC值RTC_2保存在RTC列表301中。
在步骤S805中,RTC管理电路25可通过第一RTC值RTC_1与第二RTC值RTC_2之间的差来计算第一SPO发生周期。然后,RTC管理电路25可将第一SPO发生周期和设定的阈值TH进行比较,以便确定是否可能发生SPO。
当阈值TH与第一SPO发生周期之间的比较结果指示第一SPO发生周期大于阈值TH(步骤S807中为“是”)时,在步骤S809中,RTC管理电路25可确定较少可能发生SPO(例如,第三SPO),并且可不延迟虚设页面生成时间。
在步骤S809之后,在步骤S815中,虚设页面生成电路26可通过执行利用虚设数据编程一个或多个页面的虚设编程操作来生成第二虚设页面。
另一方面,当阈值TH与第一SPO发生周期之间的比较结果指示第一SPO发生周期小于阈值TH(步骤S807中为“否”)时,在步骤S811中,RTC管理电路25可确定较多可能发生SPO(例如,第三SPO)。也就是说,RTC管理电路25可确定很快将发生SPO。
在步骤S813中,RTC管理电路25可将虚设页面生成时间延迟设定的第一延迟时间DT1。将虚设页面生成时间延迟第一延迟时间的原因是:在第一延迟时间期间可能发生第三SPO。例如,当在第一延迟时间期间发生第三SPO时,无需生成虚设页面。因为在第一延迟时间期间即使发生数次SPO也无需执行虚设页面的生成,所以可使空闲页面的消耗最小化。
在步骤S815中,虚设页面生成电路26可通过执行利用虚设数据编程一个或多个页面的虚设编程操作来生成虚设页面。例如,当在发生第二SPO之后的第一延迟时间期间发生第三SPO时,虚设页面生成电路26可通过仅对第一部分块中包括的多个页面中的第五页面执行虚设编程操作来生成第二虚设页面。也就是说,虽然发生了三次SPO,但可仅生成两个虚设页面。
参照图9至图17,描述了根据实施例的可应用上述包括存储器装置30和控制器20的存储器***110的数据处理***和电子设备。
图9至图17是示出根据本发明的实施例的存储器***的示例性应用的示图。
图9是示出根据实施例的包括存储器***的数据处理***的示图。图9示出应用了存储器***的存储卡***6100。
参照图9,存储卡***6100包括连接器6110、存储器控制器6120和存储器装置6130。
存储器控制器6120与被实施为非易失性存储器(NVM)的存储器装置6130连接以对存储器装置6130进行访问。例如,存储器控制器6120控制存储器装置6130的读取操作、写入操作、擦除操作和后台操作。存储器控制器6120提供存储器装置6130和主机(未示出)之间的接口连接并驱动固件以控制存储器装置6130。也就是说,存储器控制器6120可对应于上面参照图1描述的存储器***110中的控制器20,并且存储器装置6130可对应于上面参照图1描述的存储器***110中的存储器装置30。
因此,存储器控制器6120可包括诸如随机存取存储器(RAM)、处理器、主机接口、存储器接口和错误校正组件的组件。
存储器控制器6120可通过连接器6110与例如上面参照图1描述的主机10的外部装置通信。例如,如上面参照图1所述,存储器控制器6120可被配置成通过诸如以下的各种通信协议中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、***组件互连(PCI)、高速PCI(PCIe)、高级技术附件(ATA)、串行ATA,并行ATA、小型计算机***接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、WiFi或Wi-Fi以及蓝牙。因此,根据实施例的存储器***和数据处理***可应用于有线和/或无线电子设备,特别是移动电子设备。
存储器装置6130可由诸如以下的非易失性存储器来实施:电可擦除可编程ROM(EPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)和/或自旋力矩转移磁性RAM(STT-MRAM)。
存储器控制器6120和存储器装置6130可被集成到一个半导体装置中以形成固态驱动器(SSD)或诸如以下的存储卡:PC卡(例如,个人计算机存储卡国际协会(PCMCIA))、紧凑式闪存卡(CF)、智能媒体卡(例如,SM和SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC、微型MMC和eMMC)、安全数字(SD)卡(例如,SD、迷你SD、微型SD和SDHC)或通用闪存(UFS)。
图10是示出根据实施例的包括存储器***的数据处理***6200的示图。
参照图10,数据处理***6200包括通过至少一个非易失性存储器(NVM)实施的存储器装置6230和控制存储器装置6230的存储器控制器6220。数据处理***6200可以是诸如存储卡(例如,CF、SD和微型SD)的存储介质。存储器装置6230可对应于上面参照图1描述的存储器***110中的存储器装置30,并且存储器控制器6220可对应于上面参照图1描述的存储器***110中的控制器20。
存储器控制器6220响应于来自主机6210的请求来控制对存储器装置6230的读取操作、写入操作和擦除操作。存储器控制器6220包括至少一个CPU 6221、例如RAM 6222的缓冲存储器、ECC电路6223、主机接口6224和例如NVM接口6225的存储器接口。
CPU 6221可控制存储器装置6230的一般操作,例如读取操作、写入操作、文件***管理操作、坏页面管理操作等。RAM 6222根据CPU 6221的控制进行操作,并且可用作工作存储器、缓冲存储器、高速缓存存储器等。在RAM 6222用作工作存储器的情况下,由CPU 6221处理的数据被临时存储在RAM 6222中。在RAM 6222用作缓冲存储器的情况下,RAM 6222用于缓冲待从主机6210传输到存储器装置6230的数据或待从存储器装置6230传输到主机6210的数据。在RAM 6222用作高速缓存存储器的情况下,RAM 6222可用于使存储器装置6230以更高速度运转。
ECC电路6223生成用于校正从存储器装置6230接收的数据中的失败位或错误位的错误校正码(ECC)。而且,ECC电路6223对待提供到存储器装置6230的数据执行错误校正编码,并且生成具有添加的奇偶校验位的数据。奇偶校验位可存储在存储器装置6230中。ECC电路6223可对从存储器装置6230输出的数据执行错误校正解码。ECC电路6223可通过使用奇偶校验位来校正错误。例如,ECC电路6223可通过使用诸如LDPC码、BCH码、turbo码、里德-所罗门(Reed-Solomon)码、卷积码、RSC、TCM和BCM的各种编码调制来校正错误。
存储器控制器6220通过主机接口6224与主机6210交换数据,并且通过NVM接口6225与存储器装置6230交换数据。主机接口6224可通过PATA总线、SATA总线、SCSI、USB、PCIe或NAND接口与主机6210连接。进一步地,当实施无线通信功能或诸如WiFi或长期演进(LTE)的移动通信协议时,存储器控制器6220可通过与例如主机6210或另一外部装置的外部装置连接来发送和接收数据。具体地,由于存储器控制器6220被配置成通过各种通信协议之中的至少一种与外部装置进行通信,因此根据实施例的存储器***和数据处理***可应用于有线和/或无线电子设备,特别是移动电子设备。
图11是示出根据实施例的包括存储器***的数据处理***的示图。图11示出应用了存储器***的固态驱动器(SSD)6300。
参照图11,SSD 6300包括控制器6320和包括多个非易失性存储器(NVM)的存储器装置6340。控制器6320可对应于上面参照图1描述的存储器***110中的控制器20,并且存储器装置6340可对应于上面参照图1描述的存储器***110中的存储器装置30。
控制器6320通过多个通道CH1、CH2、CH3、……和CHi与存储器装置6340连接。控制器6320包括至少一个处理器6321、ECC电路6322、主机接口6324、缓冲存储器6325以及例如非易失性存储器接口6326的存储器接口。
缓冲存储器6325临时存储从主机6310接收的数据或从存储器装置6340中包括的多个闪速存储器NVM接收的数据,或者临时存储多个闪速存储器NVM的元数据,例如,包括映射表的映射数据。缓冲存储器6325可由易失性存储器或非易失性存储器来实现,其中易失性存储器包括但不限于:DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM,非易失性存储器包括但不限于:FRAM、ReRAM、STT-MRAM和PRAM。虽然在图11中示出缓冲存储器6325设置在控制器6320的内部,但缓冲存储器6325可设置在控制器6320的外部。
ECC电路6322在编程操作中计算待编程到存储器装置6340中的数据的错误校正码值。ECC电路6322在读取操作中基于错误校正码值对从存储器装置6340读取的数据执行错误校正操作。ECC电路6322在针对失败数据的恢复操作中对从存储器装置6340恢复的数据执行错误校正操作。
主机接口6324提供针对例如主机6310的外部装置的接口功能,并且非易失性存储器接口6326提供针对通过多个通道CH1、CH2、CH3、……和Chi而连接的存储器装置6340的接口功能。
当使用各应用了存储器***110的多个SSD 6300时,可实施例如独立磁盘冗余阵列(RAID)***的数据处理***。在RAID***中,可包括多个SSD 6300和用于控制多个SSD6300的RAID控制器。在通过从主机6310接收写入命令来执行编程操作的情况下,RAID控制器可在多个RAID级别之中,即在多个SSD 6300之中选择与所接收的写入命令的RAID级别信息相对应的至少一个存储器***,即至少一个SSD 6300,并且可将与写入命令相对应的数据输出到所选择的SSD 6300。而且,在通过从主机6310接收读取命令来执行读取操作的情况下,RAID控制器可在多个RAID级别之中,即在多个SSD 6300之中选择与所接收的读取命令的RAID级别信息相对应的至少一个存储器***,即至少一个SSD 6300,并且可将从所选择的SSD 6300输出的数据提供到主机6310。
图12是示出根据实施例的包括存储器***的数据处理***的示图。
图12示出应用了存储器***的嵌入式多媒体卡(eMMC)6400。
参照图12,eMMC 6400包括控制器6430和存储器装置6440,该存储器装置6440由至少一个NAND闪速存储器来实施。控制器6430可对应于上面参照图1描述的存储器***110中的控制器20,并且存储器装置6440可对应于上面参照图1描述的存储器***110中的存储器装置30。
控制器6430通过多个通道与存储器装置6440连接。控制器6430包括至少一个内核6432、主机接口(I/F)6431以及存储器接口,即NAND接口(I/F)6433。
内核6432控制eMMC 6400的一般操作。主机接口6431提供控制器6430和主机6410之间的接口功能。NAND接口6433提供存储器装置6440与控制器6430之间的接口功能。例如,如上参照图1所述,主机接口6431可以是并行接口,例如MMC接口,并且可以是串行接口,例如超高速(UHS)-I/UHS-II和/或UFS接口。
图13至图16是示出根据实施例的包括存储器***的数据处理***的示例的示图。图13至图16中的每一个示出应用了存储器***的通用闪存(UFS)。
参照图13至图16,各个UFS***6500、6600、6700和6800可分别包括主机6510、6610、6710和6810,UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830。各个主机6510、6610、6710和6810可以是有线和/或无线电子设备,特别是移动电子设备等的应用处理器。各个UFS装置6520、6620、6720和6820可以是嵌入式UFS装置。各个UFS卡6530、6630、6730和6830可以是外部嵌入式UFS装置或可移动UFS卡。
在各个UFS***6500、6600、6700和6800中,主机6510、6610、6710和6810,UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可通过UFS协议与外部装置通信,例如与有线和/或无线电子设备,特别是移动电子设备等通信。UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可被实施为上面参照图1描述的存储器***110。例如,在各个UFS***6500、6600、6700和6800中,UFS装置6520、6620、6720和6820可以上面参照图10至图12描述的数据处理***6200、SSD 6300或eMMC 6400的形式来实施,并且UFS卡6530、6630、6730和6830可以上面参照图9描述的存储卡***6100的形式来实施。
在各个UFS***6500、6600、6700和6800中,主机6510、6610、6710和6810,UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可通过例如移动工业处理器接口(MIPI)中的MIPI M-PHY和MIPI统一协议(UniPro)的通用闪存(UFS)接口来执行通信。UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可通过除UFS协议之外的另一协议来执行通信,例如,诸如以下的各种卡协议中的任意一种:通用串行总线(USB)、闪存驱动器(UFD)、多媒体卡(MMC)、安全数字(SD)、迷你SD和微型SD。
在图16所示的UFS***6500中,UniPro存在于主机6510、UFS装置6520和UFS卡6530的每一个中。主机6510执行交换操作,以执行与UFS装置6520和UFS卡6530的每一个的通信。特别地,主机6510通过UniPro中的链路层交换,例如L3交换来执行与UFS装置6520或UFS卡6530的通信。UFS装置6520和UFS卡6530可通过在主机6510的UniPro中的链路层交换来执行通信。虽然作为示例描述了一个UFS装置6520和一个UFS卡6530联接到主机6510,但注意的是,多个UFS装置和多个UFS卡可以并行或星型布置联接到主机6510。而且,多个UFS卡可以并行、星型、串行或链型布置中的任意一种联接到UFS装置6520。
在图14所示的UFS***6600中,UniPro存在于主机6610、UFS装置6620和UFS卡6630的每一个中。主机6610通过执行交换操作的交换电路6640,特别是在UniPro中执行链路层交换,例如L3交换操作的交换电路6640,来执行与UFS装置6620或UFS卡6630的通信。UFS装置6620和UFS卡6630可通过交换电路6640的UniPro中的链路层交换来执行通信。虽然作为示例描述了一个UFS装置6620和一个UFS卡6630联接到交换电路6640,但注意的是,多个UFS装置和多个UFS卡可以并行型或星型布置联接到交换电路6640。而且,多个UFS卡可以并行、星型、串行或链型布置中的任意一种联接到UFS装置6620。
在图15所示的UFS***6700中,UniPro存在于主机6710、UFS装置6720和UFS卡6730的每一个中。主机6710通过执行交换操作的交换电路6740,特别是在UniPro中执行链路层交换,例如L3交换操作的交换电路6740,来执行与UFS装置6720或UFS卡6730的通信。UFS装置6720和UFS卡6730可通过交换电路6740的UniPro中的链路层交换来执行通信。交换电路6740可在UFS装置6720内部或外部与UFS装置6720实施为一个电路。虽然作为示例描述了一个UFS装置6720和一个UFS卡6730联接到交换电路6740,但注意的是,分别实施交换电路6740和UFS装置6720的多个电路可以并行型或星型布置联接到主机6710。而且,各个电路可以串行型或链型布置联接,或者多个UFS卡可以并行型或星型布置联接到交换电路6740。
在图16所示的UFS***6800中,M-PHY和UniPro存在于主机6810、UFS装置6820和UFS卡6830的每一个中。UFS装置6820执行交换操作以执行与主机6810和UFS卡6830的通信。特别地,UFS装置6820通过用于与主机6810通信的M-PHY和UniPro电路和用于与UFS卡6830通信的M-PHY和UniPro电路之间的交换,例如目标标识符(ID)交换,来执行与主机6810或UFS卡6830的通信。主机6810和UFS卡6830可通过UFS装置6820的M-PHY和UniPro电路之间的目标ID交换来执行通信。虽然作为示例描述了一个UFS装置6820联接到主机6810,一个UFS卡6830联接到一个UFS装置6820,但注意的是,多个UFS装置可以并行型或星型布置联接到主机6810。而且,多个UFS卡可以并行、星型、串行或链型布置中的任意一种联接到一个UFS装置6820。
图17是示出根据实施例的包括存储器***的数据处理***的示图。图17示出应用了存储器***的用户***6900。
参照图17,用户***6900包括用户接口6910、存储器电路6920、应用处理器6930、网络电路6940和存储电路6950。
应用处理器6930驱动包括在用户***6900中的组件和操作***(OS)。例如,应用处理器6930可包括用于控制包括在用户***6900中的组件的控制器、接口、图形引擎和其它组件。应用处理器6930可被设置为片上***(SoC)。
存储器电路6920可操作为用户***6900的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器电路6920可包括诸如DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3SDRAM、LPDDR SDRAM、LPDDR2 SDRAM和/或LPDDR3 SDRAM的易失性随机存取存储器,或者诸如PRAM、ReRAM、MRAM和/或FRAM的非易失性随机存取存储器。例如,应用处理器6930和存储器电路6920可作为堆叠式封装(PoP)来安装。
网络电路6940可与外部装置通信。例如,网络电路6940不仅可支持有线通信,而且可支持各种无线通信,诸如码分多址(CDMA)、全球移动通信***(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、全球微波接入互操作性(Wimax)、无线局域网(WLAN)、超宽带(UWB)、蓝牙、无线显示(WI-DI)等,从而可与有线和/或无线电子设备,特别是移动电子设备通信。因此,存储器***和数据处理***可应用于有线和/或无线电子设备。网络电路6940可被包括在应用处理器6930中。
存储电路6950可存储数据,例如从应用处理器6930接收的数据,并且将所存储的数据传输到应用处理器6930。存储电路6950可通过诸如相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(ReRAM)、NAND闪速存储器、NOR闪速存储器和3维NAND闪速存储器的非易失性存储器中的任意一种来实施。而且,存储电路6950可被设置为诸如用户***6900的存储卡或外部驱动器的可移动存储介质。也就是说,存储电路6950可对应于上面参照图1描述的存储器***110,并且可被实施为上面参照图11至图16描述的SSD、eMMC以及UFS。
用户接口6910可包括用于向应用处理器6930输入数据或命令或者用于将数据输出到外部装置的接口。例如,用户接口6910可包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入接口,以及诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和马达的用户输出接口。
在上面参照图1描述的存储器***110被应用于根据实施例的用户***6900的移动电子设备的情况下,应用处理器6930控制移动电子设备的一般操作,并且如上所述,作为通信电路的网络电路6940控制与外部装置的有线和/或无线通信。作为移动电子设备的显示和触摸电路的用户接口6910显示由应用处理器6930处理的数据或支持从触摸面板输入数据。
根据本发明的实施例,存储器***及操作该存储器***的方法被配置成使用实时时钟(RTC)来确定是否生成虚设页面,从而使空闲页面的消耗最小化。
虽然已经针对具体实施例说明和描述了本发明,但是对于本领域技术人员显而易见的是,根据本公开,在不脱离如所附权利要求所限定的本发明的精神和范围的情况下,可进行各种改变和修改。
Claims (17)
1.一种存储器***,包括:
存储器装置,包括多个存储块;以及
控制器,控制所述存储器装置,
其中所述控制器包括:
实时时钟管理电路,即RTC管理电路,当发生第一突然断电,即第一SPO时,使用第一RTC值和第二RTC值生成SPO发生周期,然后将所述SPO发生周期与阈值进行比较,以确定是否延迟虚设页面生成;以及
虚设页面生成电路,根据所述RTC管理电路的确定结果,使用所述多个存储块之中的存储块中的除有效页面之外的、一个或多个空闲页面或未完成编程页面来生成虚设页面,所述未完成编程页面指示由于SPO而被中断编程操作的页面。
2.根据权利要求1所述的存储器***,其中所述第一RTC值指示在所述第一SPO之前生成的SPO发生时间,所述第一RTC值被存储在存储一个或多个RTC值的列表中,所述一个或多个RTC值中的每个指示相应的SPO发生时间并且在发生相应的SPO之前被生成。
3.根据权利要求1所述的存储器***,其中所述RTC管理电路包括第一RTC加载电路,所述第一RTC加载电路根据通过确定是否从列表加载了所述第一RTC值而获得的结果来判定将以第一模式还是第二模式执行操作。
4.根据权利要求3所述的存储器***,其中当所述列表中不存在所述第一RTC值时,所述第一RTC加载电路判定所述第一模式的操作,并且当所述列表中存在所述第一RTC值时,判定所述第二模式的操作。
5.根据权利要求4所述的存储器***,进一步包括第二RTC生成电路,当判定所述第一模式的操作时,所述第二RTC生成电路在所述存储器***通电的情况下从主机接收启动时间值,并且使用所述启动时间值来生成指示第一SPO发生时间的第二RTC值。
6.根据权利要求4所述的存储器***,进一步包括:
第二RTC生成电路、比较电路以及时间延迟电路,其中当判定所述第二模式的操作时,
所述第二RTC生成电路在所述存储器***通电时从主机接收启动时间值,并且使用所述启动时间值来生成指示第一SPO发生时间的第二RTC值;
所述比较电路将所述SPO发生周期与阈值进行比较,并且确定是否可能发生第二SPO,通过经由所述第一RTC加载电路接收的所述第一RTC值与经由所述第二RTC生成电路生成的所述第二RTC值之间的差来计算所述SPO发生周期;并且
当所述SPO发生周期与所述阈值之间的比较结果指示所述SPO发生周期小于所述阈值时,所述时间延迟电路将虚设页面生成时间延迟第一延迟时间。
7.根据权利要求6所述的存储器***,其中当所述SPO发生周期与所述阈值之间的比较结果指示所述SPO发生周期大于所述阈值时,通过所述虚设页面生成电路生成所述虚设页面。
8.一种存储器***的操作方法,所述存储器***包括存储器装置和控制器,所述存储器装置包括多个存储块,所述控制器控制所述存储器装置,所述操作方法包括:
当发生第一突然断电,即第一SPO时,使用第一实时时钟值,即第一RTC值和第二RTC值来生成SPO发生周期,并且将所述SPO发生周期与阈值进行比较,以确定是否延迟虚设页面生成;并且
根据所述确定是否延迟虚设页面生成的结果,使用所述多个存储块之中的存储块中的除有效页面之外的、一个或多个空闲页面或未完成编程页面来生成虚设页面,所述未完成编程页面指示由于SPO而被中断编程操作的页面。
9.根据权利要求8所述的操作方法,其中所述第一RTC值指示在所述第一SPO之前生成的SPO发生时间,所述第一RTC值被存储在存储一个或多个RTC值的列表中,所述一个或多个RTC值中的每个指示相应的SPO生成时间并且在发生相应的SPO之前被生成。
10.根据权利要求8所述的操作方法,进一步包括:根据是否从列表加载了所述第一RTC值来判定将以第一模式还是第二模式执行操作。
11.根据权利要求10所述的操作方法,其中所述第一模式的操作指示所述列表中不存在所述第一RTC值的情况。
12.根据权利要求11所述的操作方法,其中所述第一模式包括:当所述存储器***通电时从主机接收启动时间值,并且使用所述启动时间值来生成指示第一SPO发生时间的第二RTC值。
13.根据权利要求10所述的操作方法,其中所述第二模式的操作指示所述列表中存在所述第一RTC值的情况。
14.根据权利要求13所述的操作方法,其中所述第二模式的操作包括:
当所述存储器***通电时从主机接收启动时间值,并且使用所述启动时间值来生成指示第一SPO发生时间的第二RTC值;
将SPO发生周期与阈值进行比较,并且确定是否可能发生第二SPO,通过所述第一RTC值与所述第二RTC值之间的差来计算所述SPO发生周期;并且
当比较结果指示所述SPO发生周期小于所述阈值时,延迟虚设页面生成时间。
15.根据权利要求14所述的操作方法,进一步包括:当所述比较结果指示所述SPO发生周期大于所述阈值时,通过执行利用虚设数据编程一个或多个页面的虚设编程操作来生成所述虚设页面。
16.一种存储器***,包括一个或多个存储装置,所述一个或多个存储装置包括一个或多个处理器和由所述一个或多个处理器中的至少一个执行的编程命令,
其中所述一个或多个存储装置和所述编程命令控制所述存储器***和所述一个或多个处理器以:
当发生第一突然断电,即第一SPO时,使用第一实时时钟值,即第一RTC值和第二RTC值来生成SPO发生周期;
将所述SPO发生周期与阈值进行比较;
当所述SPO发生周期与所述阈值之间的比较结果指示所述SPO发生周期小于所述阈值时,将虚设页面生成时间延迟第一延迟时间;并且
在已经过所述第一延迟时间之后,使用存储块中的除有效页面之外的、一个或多个空闲页面或未完成编程页面来生成虚设页面,所述未完成编程页面指示由于SPO而被中断编程操作的页面。
17.根据权利要求16所述的存储器***,其中当所述SPO发生周期与所述阈值之间的比较结果指示所述SPO发生周期大于所述阈值时,生成所述虚设页面,而不延迟所述虚设页面生成时间。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0130651 | 2018-10-30 | ||
KR1020180130651A KR102590886B1 (ko) | 2018-10-30 | 2018-10-30 | 메모리 시스템 및 메모리 시스템의 동작방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111124035A CN111124035A (zh) | 2020-05-08 |
CN111124035B true CN111124035B (zh) | 2023-03-10 |
Family
ID=70328326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910909881.1A Active CN111124035B (zh) | 2018-10-30 | 2019-09-25 | 基于实时时钟管理空闲页面的存储器***及其操作方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10908843B2 (zh) |
KR (1) | KR102590886B1 (zh) |
CN (1) | CN111124035B (zh) |
DE (1) | DE102019127142A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220053374A (ko) | 2020-10-22 | 2022-04-29 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105097034A (zh) * | 2014-05-13 | 2015-11-25 | 三星电子株式会社 | 非易失性存储***以及存储控制器的操作方法 |
CN107025185A (zh) * | 2016-02-01 | 2017-08-08 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN107068186A (zh) * | 2015-12-15 | 2017-08-18 | 三星电子株式会社 | 操作存储装置的方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101826140B1 (ko) * | 2011-08-04 | 2018-03-22 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법, 및 상기 메모리 컨트롤러를 포함하는 메모리 시스템 |
US9081665B2 (en) * | 2012-02-02 | 2015-07-14 | OCZ Storage Solutions Inc. | Apparatus, methods and architecture to increase write performance and endurance of non-volatile solid state memory components |
KR102102224B1 (ko) * | 2013-10-01 | 2020-04-20 | 삼성전자주식회사 | 저장 장치 및 그것의 프로그램 방법 |
KR102197070B1 (ko) * | 2014-04-14 | 2020-12-30 | 삼성전자 주식회사 | 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법 |
KR102272228B1 (ko) * | 2014-05-13 | 2021-07-06 | 삼성전자주식회사 | 불휘발성 메모리 장치, 그것을 포함하는 저장 장치 및 그것의 동작 방법 |
KR102199148B1 (ko) * | 2014-07-11 | 2021-01-06 | 삼성전자 주식회사 | 전원 제어 방법 및 이를 지원하는 전자장치 |
KR20180031853A (ko) * | 2016-09-19 | 2018-03-29 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR20180130651A (ko) | 2017-05-30 | 2018-12-10 | 구명화 | Tv 오픈형 거실 책 장식장 |
KR102430798B1 (ko) | 2018-01-11 | 2022-08-10 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
-
2018
- 2018-10-30 KR KR1020180130651A patent/KR102590886B1/ko active IP Right Grant
-
2019
- 2019-06-10 US US16/435,686 patent/US10908843B2/en active Active
- 2019-09-25 CN CN201910909881.1A patent/CN111124035B/zh active Active
- 2019-10-09 DE DE102019127142.8A patent/DE102019127142A1/de active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105097034A (zh) * | 2014-05-13 | 2015-11-25 | 三星电子株式会社 | 非易失性存储***以及存储控制器的操作方法 |
CN107068186A (zh) * | 2015-12-15 | 2017-08-18 | 三星电子株式会社 | 操作存储装置的方法 |
CN107025185A (zh) * | 2016-02-01 | 2017-08-08 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111124035A (zh) | 2020-05-08 |
KR20200048499A (ko) | 2020-05-08 |
DE102019127142A1 (de) | 2020-04-30 |
US20200133573A1 (en) | 2020-04-30 |
US10908843B2 (en) | 2021-02-02 |
KR102590886B1 (ko) | 2023-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10073651B2 (en) | Memory system with power-off detection and recovery mechanism | |
CN109284202B (zh) | 控制器及其操作方法 | |
US20180074718A1 (en) | Memory system and method for operating the same | |
US10901633B2 (en) | Memory system for increasing a read reclaim count | |
CN109935251B (zh) | 存储器***、其操作方法以及包括其的数据处理*** | |
US20210011843A1 (en) | Memory system and operation method thereof | |
US11194587B2 (en) | Memory system, data processing system and operating method thereof | |
US10235046B2 (en) | Memory system and operating method thereof | |
US20200019507A1 (en) | Controller and operating method thereof | |
CN110045914B (zh) | 存储器***及其操作方法 | |
US20230068089A1 (en) | Memory system and operation method thereof | |
KR102511341B1 (ko) | 메모리 장치, 메모리 컨트롤러 및 이들을 포함하는 메모리 시스템과, 이들의 동작 방법 | |
US11042317B2 (en) | Memory system for reducing fragmentation based on sequential index and operating method thereof | |
CN111538399A (zh) | 控制器、存储器***及存储器***的操作方法 | |
US10877690B2 (en) | Memory system sharing capacity information with host and operating method thereof | |
US11216380B2 (en) | Controller and operation method thereof for caching plural pieces of map data read from memory device | |
CN111124035B (zh) | 基于实时时钟管理空闲页面的存储器***及其操作方法 | |
US20180321856A1 (en) | Memory system and operation method thereof | |
CN111309518B (zh) | 存储器***和存储器***的操作方法 | |
US20180074711A1 (en) | Memory system and method for operating the same | |
US11455240B2 (en) | Memory system and operating method of memory system | |
US10770120B2 (en) | Memory system and operating method of the same |
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 |