CN112416650A - 存储器控制器的操作方法、存储器控制器以及存储设备 - Google Patents
存储器控制器的操作方法、存储器控制器以及存储设备 Download PDFInfo
- Publication number
- CN112416650A CN112416650A CN202010836240.0A CN202010836240A CN112416650A CN 112416650 A CN112416650 A CN 112416650A CN 202010836240 A CN202010836240 A CN 202010836240A CN 112416650 A CN112416650 A CN 112416650A
- Authority
- CN
- China
- Prior art keywords
- sub
- data
- regions
- region
- metadata
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
- G06F11/1052—Bypassing or disabling error detection or correction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—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 in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种存储器控制器的操作方法在引导操作期间在短时间内使用日志数据来更新元数据,并且维持更新的元数据的可靠性。存储器控制器的操作方法包括:将元数据加载到缓冲存储器的子区域中,在用于子区域的存储器控制器的错误校正码(ECC)功能被禁用的状态中使用日志数据来更新元数据,生成存储在第一子区域中的数据的第一奇偶校验数据,以及在生成第一奇偶校验数据之后,启用第一子区域的ECC功能。
Description
对相关申请的交叉引用
本申请要求于2019年8月20日向韩国知识产权局提交的第10-2019-0101481号韩国专利申请的优先权,该韩国专利申请的内容通过引用合并于此。
技术领域
本公开涉及存储器控制器、操作存储器控制器的方法以及耦合到存储器控制器的存储设备。
背景技术
闪速存储器是即使当对其的电力供给中断时也可以保持存储的数据的非易失性存储器。最近,已经对于许多应用(包括存储或移动大量数据)广泛地实施了包括诸如嵌入多媒体卡(eMMC)、通用闪速存储(UFS)、固态驱动器(SSD)和存储卡的闪速存储器的存储设备。
同时,在一些SSD产品中,存在对于突然断电(SPO)发生时的断开时间(open time)的需求。例如,当SPO发生时,在引导操作期间,SSD产品必须在断开时间内将存储在主存储器(例如,NAND存储器)中的元数据加载到缓冲存储器(例如,DRAM),并且使用日志数据(journaling data)来更新元数据。
然而,随着SSD产品的容量增加,元数据/日志数据的大小也增加。因此,在预先确定的断开时间内更新元数据变得困难。
此外,一些SSD产品将错误校正码(ECC)功能提供到缓冲存储器中以提高可靠性。当使用ECC功能时,写入到缓冲存储器所需要的时间增加。因此,在预先确定的断开时间内更新元数据变得甚至更加困难。
发明内容
本公开的方面提供了一种操作存储器控制器的方法,以在适合于引导操作的短时间段中使用日志数据来更新元数据,并且维持更新的元数据的可靠性。
本公开的方面还提供了一种存储器控制器,以在引导操作期间在短时间段中使用日志数据来更新元数据,并且维持更新的元数据的可靠性。
本公开的方面还提供了一种包括存储器控制器的存储设备。
然而,本公开的方面不限于在本文中所阐述的那些。通过参考以下给出的本公开的具体实施方式,本公开的以上和其他方面将对于本公开所属领域的普通技术人员变得更加明显。
根据本公开的方面,提供一种操作存储器控制器的方法,包括:将元数据加载到缓冲存储器的多个子区域中,在对于多个子区域中的每个禁用存储器控制器的错误校正码(ECC)功能的状态中使用日志数据来更新元数据,生成存储在多个子区域当中的第一子区域中的数据的第一奇偶校验数据,以及在生成第一奇偶校验数据之后,启用第一子区域的ECC功能。
根据本公开的方面,提供了一种操作存储器控制器的方法,包括:在缓冲存储器的突然断电(SPO)的断开时间期间将元数据加载到缓冲存储器的多个子区域中,在对于多个子区域中的每个禁用存储器控制器的错误校正码(ECC)功能的状态中使用日志数据来更新元数据,以及在SPO的断开时间之后,作为后台操作,按照在缓冲存储器中布置的多个子区域的顺序生成分别地存储在多个子区域中的数据的奇偶校验数据。
根据本公开的方面,提供了一种控制缓冲存储器的存储器控制器,包括:日志控制器,被配置为将元数据加载到缓冲存储器的多个子区域中并且使用日志数据来更新元数据;错误校正码(ECC)控制器,被配置为针对多个子区域中的每个来选择性地启用和禁用存储器控制器的ECC功能;以及奇偶校验数据生成器,被配置为生成用于存储在多个子区域中的每个子区域中的数据的奇偶校验数据,其中,在日志控制器使用日志数据来更新元数据时,ECC控制器被配置为针对多个子区域中的所有子区域禁用ECC功能,并且ECC控制器被配置为仅针对多个子区域当中的已经由奇偶校验数据生成器对于其生成了奇偶校验数据的已处理的子区域启用ECC功能。
根据本公开的方面,提供了一种存储设备,包括:主存储器、包括多个子区域的缓冲存储器以及存储器控制器,该存储器控制器被配置为在缓冲存储器的突然断电(SPO)发生之后将存储在主存储器中的元数据加载到缓冲存储器的多个子区域中,以及根据在缓冲存储器的SPO时存储器控制器针对多个子区域中的每个选择性地启用还是禁用存储器控制器的ECC功能来使用日志数据更新元数据。
附图说明
通过参考附图详细地描述本公开的示例性实施例,本公开的以上和其他的方面及特征将变得更加明显,在附图中:
图1是图示出根据本公开的实施例的存储设备的框图;
图2是图示出图1的第二存储器设备的概念图;
图3是图示出图1的ECC引擎的框图;
图4是图示出根据本公开的实施例的存储器控制器的操作方法的流程图;
图5是解释在关闭ECC功能的状态中的回放(replay)操作的图;
图6是解释在开启ECC功能的状态中的回放操作的图;
图7是图示出根据本公开的实施例、操作存储器控制器的方法的流程图;
图8是图示出根据本公开的实施例、操作存储器控制器的方法的流程图;
图9是图示出根据本公开的实施例、操作存储器控制器的方法的图;
图10是图示出根据本公开的实施例、操作存储器控制器的方法的图;以及
图11是图示出根据本公开的实施例、操作存储器控制器的方法的图。
具体实施方式
在下文中,将参考附图来描述本公开的各个实施例。
图1是图示出根据本公开的实施例的存储设备的框图。图2是图示出图1的第二存储器设备的概念图。图3是图示出图1的ECC引擎的框图。
首先,参考图1,根据本公开的实施例的存储设备包括第一存储器设备100、第二存储器设备300和存储器控制器200。第一存储器设备100和第二存储器设备300是示例性的,并且在第一存储器设备100和第二存储器设备300之外,存储设备可以包括额外的存储器。
存储设备可以被实施为,但是不限于,智能卡、安全数字(SD)卡、多媒体卡(MMC)、嵌入MMC(eMMC)、嵌入多芯片封装(eMCP)、理想页NAND(perfect page NAND,PPN)、通用闪速存储(UFS)、通用串行总线(USB)闪速驱动、固态驱动器(SSD)或嵌入SSD(eSSD)。
存储器控制器200控制第一存储器设备100和第二存储器设备300的操作。存储器控制器200可以包括至少一个微处理器、中央处理单元或者被配置为控制存储器控制器的操作的其他控制单元。可以在执行存储在存储器控制器200中的计算机可执行的代码时,根据硬件配置或软件配置来配置存储器控制器以用于控制其操作。存储器控制器200可以分析从存储设备连接到的主机提供的命令,并且根据分析结果来控制第一存储器设备100和第二存储器设备300的操作。主机可以包括用于将数据存储在存储设备中并且存取存储在存储设备中的数据的任何电子设备,诸如个人计算机、蜂窝式电话、电视、消费电子装置等等。
第一存储器设备100可以是主存储器,例如基于非易失性存储器(例如,NAND闪速存储器)的设备,但是不限于此。第一存储器设备100包括其中存储用户数据的用户数据区域,以及其中存储元数据和日志数据的元数据区域。
元数据可以包括但不限于用户数据的位置信息(逻辑地址、物理地址等)、作为在存储器块中有效的页的存储器块中所包括的有效页的数量等。
日志数据是记录元数据的改变历史的数据。例如,当诸如突然断电(SPO)等的意想不到的问题发生时,可以通过参考日志数据来恢复或基本上恢复SPO发生之前的状态。
第二存储器设备300可以是缓冲存储器,例如基于易失性存储器(例如,DRAM和SRAM)的设备,但是不限于此。因为用于编程/读取第一存储器设备100中的数据的时间比与主机的数据通信时间长,所以可以通过使用具有快速写入/读取时间的第二存储器设备300来加速数据处理。
例如,当主机发出存储用户数据的命令时,存储器控制器200生成与命令有关的元数据并且将元数据存储在第二存储器设备300的元数据区域中。替换地,存储器控制器200可以更新存储在第二存储器设备300的元数据区域中的与命令有关的元数据。存储器控制器200生成元数据的改变历史(生成/移除/更新等)作为日志数据。
当继续生成日志数据并且日志数据的总尺寸达到预先确定的尺寸时,存储器控制器200向第一存储器设备100(即,第一存储器设备100中的元数据区域)传递整个日志数据。
存储器控制器200也可以根据预置逻辑/调度向第一存储器设备100传递存储在第二存储器设备300中的元数据。因为元数据的尺寸大于日志数据的尺寸,所以可能需要较长时间段来向第一存储器设备100传递全部元数据。因此,例如每当向第一存储器设备100传递日志数据时,可能向第一存储器设备100传递元数据中的一些并且将其写入到第一存储器设备100。因此,在存储设备的运行时状态中,存储在第一存储器设备100中的元数据中的一部分可以是最新的,并且元数据中的另外的部分可能不是最新的。
在从主机接收到断电信号时,存储器控制器200向第一存储器设备100传递所有元数据和日志数据以更新存储在第一存储器设备100中的元数据/日志数据。
当引导存储设备时,存储器控制器200将存储在第一存储器设备100中的元数据加载到第二存储器设备300中。另外,存储器控制器200使用日志数据来更新(即,回放)元数据。
存储器控制器200包括ECC引擎210。ECC引擎210对用户数据和/或元数据执行编码操作以生成奇偶校验数据或奇偶校验位。ECC引擎210使用奇偶校验数据对所读取的数据执行纠错操作。
存储器控制器200还包括日志控制器220。日志控制器220生成记录元数据的改变历史的日志数据。
可以将元数据加载到第二存储器设备300的多个子区域310、320和330中,并且通过使用日志数据来更新(回放)元数据。
参考图2,第二存储器设备300的元数据区域可以包括第一子区域310、320和330以及第二区域390。
第一子区域310、320和330可以包括任何数量的子区域,并且子区域310、320和330的描述仅仅是示例。对于子区域310、320和330中的每个,可以开启或关闭ECC功能。也就是说,在ECC引擎210的控制下,可以对于存储在子区域310、320和330中的每个中的数据来选择性地开启或关闭ECC功能。第一区域310、320和330是其中通过日志数据来加载/存储和回放元数据的区域。
第二区域390是其中ECC功能保持开启的区域。也就是说,在ECC引擎210的控制下,可以对于存储在第二区域390中的数据将ECC功能保持开启。第二区域390可以是被分配用于固件操作的区域。子区域310、320和330,以及第二区域390的描述仅仅是示例性的以将子区域310、320和330与第二区域390相区分。第二存储器设备可以包括任何数量的区域或子区域,其包括其中可以选择性地开启或关闭ECC功能的至少一个区域或子区域以及其中可以选择性地将ECC功能维持在开启状态中(即,启用ECC功能)的至少一个区域或子区域。
参考图3,ECC引擎210包括ECC控制器211、ECC范围控制器212、ECC开启/关闭控制器213、奇偶校验生成器214等。
ECC控制器211管理与纠错操作有关的操作,并且对ECC范围控制器212、ECC开启/关闭控制器213、奇偶校验生成器214等进行控制。
ECC范围控制器212将第二存储器设备300划分到多个区域310、320、330和390中并且对其进行管理。具体地,ECC范围控制器212对子区域310、320和330以及第二区域390进行划分和管理。ECC范围控制器212可以确定子区域310、320、330和390中的每个的尺寸或者调整子区域310、320、330和390中的每个的尺寸。
ECC开启/关闭控制器213选择性地开启/关闭用于第二存储器设备300的子区域310、320和330中的每个的ECC功能。例如,可以关闭所有子区域310、320和330的ECC功能。替换地,可以选择性地关闭子区域310、320和330中的仅仅一些的ECC功能。
具体地,在引导操作期间(尤其是,在日志控制器220使用日志数据来更新元数据时),ECC开启/关闭控制器213关闭所有子区域310、320和330的ECC功能。
在引导操作之后,ECC开启/关闭控制器213将子区域310、320和330的ECC功能选择性地改变为开启状态。更具体地,在引导操作之后,(由奇偶校验生成器214)对于子区域310、320和330中的每个生成奇偶校验数据,并且ECC开启/关闭控制器213对于已经对于其生成了奇偶校验数据的子区域310、320和330将ECC功能改变为开启状态。
另一方面,必要时,在引导操作期间(尤其是,在日志控制器220使用日志数据来更新元数据时),可以对于一些子区域(例如,子区域310)来开启ECC功能,并且可以对于剩余子区域(例如,子区域320和330)关闭ECC功能。在该配置中,在引导操作之后,可以仅仅对于其中ECC功能关闭的子区域(例如,子区域320和330)生成奇偶校验数据。
奇偶校验生成器214关于存储在子区域310、320和330中的每个中的数据来生成奇偶校验数据。奇偶校验生成器214可以被实施为硬件逻辑,但是不限于此。
奇偶校验生成器214可以按照预先确定的顺序——例如按照第一子区域310、第二子区域320、…、第n子区域330的顺序来生成奇偶校验数据,但是本公开不限于此。
替换地,奇偶校验生成器214可以根据存储在主机的子区域(例如,子区域310)中的数据的奇偶校验数据生成请求(或用于子区域310的存取请求)来生成奇偶校验数据,但是本公开不限于此。
将参考图4至图11对ECC功能的开启/关闭操作进行详细的描述。
图4是图示出根据本公开的实施例的存储器控制器的操作方法的流程图。图5是解释在关闭ECC功能的状态中的回放操作的图。图6是解释在开启ECC功能的状态中的回放操作的图。
首先,参考图4,当引导存储设备时,将元数据加载到第二存储器设备300的子区域310、320和330(即,缓冲存储器)中(步骤S10)。在关闭子区域310、320和330的ECC功能的状态中使用日志数据来更新(回放)元数据(步骤S20)。
例如,如图5中所示,当引导存储设备时,将每个元数据311、312、313、…至319加载到第二存储器设备300中。例如,每个元数据311、312、313、…至319可以是物理页地址(PPN),但是元数据不限于此。例如,每个元数据的尺寸可以是6字节,但是元数据的尺寸不限于此。
在这里,如果日志数据包括“将在元数据312中描述的物理地址PPN2改变为新的物理地址PPN2N”,则应当在引导时间基于日志数据将现存的物理地址PPN2改变为新的物理地址PPN2N。如上所述,基于在日志数据中描述的内容来更新(或修改)元数据被称为“回放”。
在本公开的第一实施例中,当执行回放操作时,在关闭ECC功能的状态(即,关闭状态或被禁用)中,使用正常写入操作,而不是读取-修改-写入(RMW)操作。RMW操作提供读取先前存储数据、将所读取的数据与将被写入的数据相比较,以及仅仅写入所读取的数据和将被写入的数据不同于彼此的部分。例如,如果所读取的数据是1000并且将被写入的数据是1001,仅仅最后的比特(值1)被写入。与RMW操作不同,正常写入操作提供将在没有读取/比较操作的情况下写入立即被写入的数据。与RMW操作相比,正常写入操作更快,这是因为与RMW操作相比,不存在单独的读取/比较操作。
参考图6,将描述在回放操作期间开启ECC功能(即,开启状态)的情况。如在以上示例中,如果日志数据包括“将在元数据312中描述的物理地址PPN2改变为新的物理地址PPN2N”,则应当在引导或启动的时间基于日志数据将现存的物理地址PPN2改变为新的物理地址PPN2N。
当开启ECC功能时,对于元数据生成奇偶校验数据。在本文中,元数据的管理尺寸可以不同于用于生成奇偶校验数据的数据的管理尺寸。例如,如上所述,元数据的管理尺寸可以是6字节,并且用于生成奇偶校验数据的数据的管理尺寸可以是8字节。
另外,当开启ECC功能时,可以使用RMW操作来执行回放操作。
因此,在图6的示例中,要求两个写入操作改变到新的物理地址PPN2N。这是因为可以通过改变数据311a来调整物理地址PPN2N的一部分3121,并且可以通过改变数据312a来调整物理地址PPN2N的另一部分3122。如上所述,如果用于生成奇偶校验数据的数据的管理尺寸是8字节,则读取物理地址PPN1(即,6字节)以及物理地址PPN2的一部分(即,2字节),将被改变的部分(即,物理地址PPN2的一部分)被改变为物理地址PPN2N的部分3121,以及通过使用物理地址PPN1和改变的物理地址PPN2N的部分3121来生成奇偶校验数据。类似地,读取物理地址PPN2的另一部分(即,4字节)以及物理地址PPN3的一部分(即,4字节),并且将被改变的部分(即,物理地址PPN2的另一部分)被改变为物理地址PPN2N的另一部分3122,并且通过使用物理地址PPN2N的另一部分3122以及物理地址PPN3的部分来生成奇偶校验数据。
因此,当开启ECC功能时,可能需要长时间段来基于日志数据更新元数据。也就是说,引导或完成启动所需要的时间可能过度长。
因此,在第一实施例中,当执行回放操作时,在关闭ECC功能的状态中,使用正常写入操作而非RMW操作。因此,能够最小化在引导时间针对回放操作所需要的时间。
图7是图示出根据本公开的实施例、操作存储器控制器的方法的流程图。
因为在关闭ECC功能的状态中执行图4的回放操作,所以在完成图4的回放操作之后生成奇偶校验数据。
可以按照预先确定的顺序生成奇偶校验数据。例如,可以按照第一子区域310的顺序(参见图2)、第二子区域320(参见图2)、…、子区域330(参见图2)来生成奇偶校验数据。为了简化描述,在图2中图示出,从上到下布置第一子区域310、第二子区域320、…,以及第n子区域330。因此,能够理解,从上到下来生成奇偶校验数据,但是本公开不限于此。
参考图7,生成存储在第一子区域310中的数据的第一奇偶校验数据(步骤S31)。然后,第一子区域310的ECC功能被改变为开启状态(步骤S32)。
此外,可以生成存储在第二子区域320中的数据的第二奇偶校验数据。第二子区域320的ECC功能也可以被改变为开启状态。
随后,生成存储在第n子区域330中的数据的第n奇偶校验数据(步骤S33)。第n子区域的ECC功能被改变为开启状态(步骤S34)。
也就是说,在对于子区域310、320和330中的每个生成奇偶校验数据之后,对于已经对于其生成了奇偶校验数据的子区域310、320和330,ECC功能被改变为开启状态。以这样的方式,主机可以存取其中ECC功能被改变为开启状态的子区域310、320和330,而没有数据损坏的风险。
在替换配置中,在生成存储在所有子区域310、320和330中的数据的奇偶校验数据之后,对于所有子区域310、320和330,ECC功能被改变至至开启状态。在该配置中,生成存储在第一子区域310中的数据的第一奇偶校验数据、生成存储在第二子区域320中的数据的第二奇偶校验数据、生成存储在第n子区域330中的数据的第n奇偶校验数据,以及同时(atonce)开启第一子区域310至第n子区域330的ECC功能。
假定主机需要存取第二子区域320。根据实施例,在对于第一子区域310和第二子区域320生成奇偶校验数据之后,(即使没有对于第三子区域330生成奇偶校验数据),主机也可以存取第二子区域320。然而,在比较性示例中,主机可以仅仅在生成用于所有子区域310、320和330的奇偶校验数据之后存取第二子区域320。因此,根据其中在生成用于特定子区域的奇偶校验数据之后对于该子区域ECC功能被改变为开启状态的本公开的实施例,主机可以具有对于已经对于其生成了奇偶校验数据的子区域(例如,320)的相对更快的存取。
可以将生成用于子区域310、320和330中的每个的奇偶校验数据作为后台操作来执行。
此外,可以通过硬件逻辑来执行生成用于子区域310、320和330中的每个的奇偶校验数据。当通过硬件逻辑来执行生成奇偶校验数据时,与在软件中生成奇偶校验数据相比,可以更加快速地并且更加准确地生成奇偶校验数据。
在生成用于子区域310、320和330中的每个的奇偶校验数据并且开启用于子区域310、320和330中的每个的ECC功能的情况下,可以获取附加的好处和优点。
例如,通过使用其中ECC功能处于开启状态中的子区域的元数据,可以容易地确定其中ECC功能处于关闭状态中的子区域的元数据的一致性。如上所述,元数据包括位置信息以及还有诸如有效页的数量和有效的那些页的标识符或指示的信息。例如,其中ECC功能处于开启状态中的子区域的元数据可以包括信息“第一存储块中的五个有效页”。然而,当检查其中ECC功能处于关闭状态中的子区域的元数据时,如果仅仅存在第一存储块的四个有效页,则其中ECC功能处于关闭状态中的子区域的元数据是不可靠的。
图8是图示出根据本公开的实施例、操作存储器控制器的方法的流程图。
因为在关闭ECC功能的状态中执行图4的回放操作,所以在完成图4的回放操作之后生成奇偶校验数据。
参考图8,主机可以查询是否存在对于第二存储器设备300的子区域310、320和330中的任何一个的存取请求(步骤S40)。如果不存在存取请求(否),则根据预先确定的顺序来生成存储在接下来的子区域中的数据的奇偶校验数据(步骤S50)。如果存在存取请求(是),生成存储在已经对于其接收到存取请求的子区域中的数据的奇偶校验数据(步骤S60)。
随后,已经对于其生成了奇偶校验数据的子区域的ECC功能被改变为开启状态(步骤S70)。
然后,可以确定是否已经生成了存储在所有子区域中的数据的每个的奇偶校验数据(步骤S80)。如果没有生成存储在所有子区域中的数据的每个的奇偶校验数据(否),则处理返回到步骤S40并且对于子区域中的每个重复处理。如果已经生成了存储在所有子区域中的数据的每个的奇偶校验数据(是),则处理结束。
例如,可以对生成存储在第一子区域310中的数据的第一奇偶校验数据进行初始化。
如果在第一奇偶校验数据的生成期间或直到完成第一奇偶校验数据的生成之前没有发生来自主机的存取请求,则根据预先确定的顺序来生成存储在第二子区域320中的数据的第二奇偶校验数据(参见步骤S40和S50)。
另一方面,在第一奇偶校验数据的生成期间或当第一奇偶校验数据的生成完成时,可能发生来自主机的用于第n子区域330的存取请求。在这种情况下,与预先确定的顺序不同,生成存储在第n子区域330而不是第二子区域320中的数据的第n奇偶校验数据(参见S40和S60)。
在这里,即使在第一奇偶校验数据的生成期间发生用于第n子区域330的存取请求,也应当保证第一奇偶校验数据生成的完成。例如,即使存取请求发生,在第一奇偶校验数据的生成完成之后,可以开始存储在第n子区域330中的数据的第n奇偶校验数据的生成。替换地,当存取请求发生时,可以中断第一奇偶校验数据的生成,并且在首先执行存储在第n子区域330中的数据的第n奇偶校验数据的生成之后,可以继续(resume)并且完成中断的第一奇偶校验数据的生成。
综上,预先确定的奇偶校验数据生成顺序可以是按照第一子区域310至第n子区域330的顺序生成奇偶校验数据。在这里,在生成存储在第m(m是1和n-2之间的自然数)子区域中的数据的第m奇偶校验数据时,如果接收到存储在第k(k是m+2和n之间的自然数)子区域中的数据的第k奇偶校验数据生成请求(即,用于第k子区域的存取请求),则在生成第k奇偶校验数据之后,可以生成存储在第m+1子区域中的数据的第m+1奇偶校验数据。
例如,第二存储器设备可以包括十个子区域,并且应当按照从第一子区域至第十子区域的相继顺序(sequential order)来生成奇偶校验数据。然后,在生成存储在第三子区域中的数据的第三奇偶校验数据时,如果存在存储在第五子区域中的数据的第五奇偶校验数据生成请求(即,用于第五子区域的存取请求),则(在生成第四奇偶校验数据之前)生成第五奇偶校验数据。在生成第五奇偶校验数据之后,根据顺序来生成第四奇偶校验数据。
如上所述,如果存在第五奇偶校验数据生成请求,则可以中断第三奇偶校验数据的生成,并且在生成第五奇偶校验数据之后,可以继续第三奇偶校验数据生成。此后,可以根据顺序来生成第四奇偶校验数据。
替换地,如果存在第五奇偶校验数据生成请求,则可以完成第三奇偶校验数据的生成并且可以生成第五奇偶校验数据。此后,可以根据顺序来生成第四奇偶校验数据。
图9是图示出根据本公开的实施例、操作存储器控制器的方法的图。
参考图9,首先,存储设备的突然断电(SPO)发生。
如上所述,在运行时状态中,频繁地向第一存储器设备100(即,非易失性存储器设备)传递存储在第二存储器设备300(即,易失性存储器设备)中的元数据。还向第一存储器设备100传递与元数据有关的日志数据。
因为SPO已经发生,存储在第一存储器设备100中的元数据/日志数据可能不是最新的。
当存储设备再次通电(PWR ON)时,将元数据加载到第二存储器设备300的第一子区域310至第n子区域330中。在其中关闭子区域的ECC功能的状态中,使用日志数据来更新(回放)元数据(步骤S410)。在关闭ECC功能的状态中,通过使用正常写入操作而非RMW操作来执行回放操作。通过图9中的N所指示的部分来指示使用日志数据所更新的元数据。
当回放操作完成时,存储器控制器200向主机传送就绪信号。就绪信号是指示准备完成并且能够执行命令的信号(即,引导完成信号)。通电时间和就绪信号生成之间的时段被称为“断开时间”。
对于一些SSD产品,存在对于SPO发生时的断开时间的需求。SSD产品的容量越大,元数据/日志数据的尺寸就越大。因此,根据需求(即,在预先确定的断开时间内)更新元数据,变得困难。
在本公开的实施例中,当执行回放操作时,因为在关闭ECC功能的状态中使用正常写入操作,所以即使存储设备的容量增加或元数据/日志数据的尺寸增加,能够在需求内(即,在预先确定的断开时间内)容易地执行元数据的更新。
之后,可以按照预先确定的顺序生成奇偶校验数据。
生成存储在第一子区域310中的数据的第一奇偶校验数据。然后,第一子区域310的ECC功能被改变为开启状态(步骤S420)。
随后,生成存储在第二子区域320中的数据的第二奇偶校验数据。然后,第二子区域320的ECC功能被改变为开启状态(步骤S430)。
随后,生成存储在第n子区域330中的数据的第n奇偶校验数据。第n子区域的ECC功能被改变为开启状态(步骤S440)。
也就是说,在对于子区域310、320和330中的每个生成奇偶校验数据之后,对于已经对于其生成了奇偶校验数据的子区域310、320和330,ECC功能被单独地改变为开启状态。以这样的方式,主机可以立即对其中ECC功能已经被改变为开启状态的子区域310、320和330进行存取,而没有数据损坏的风险。
图10是图示出根据本公开的实施例、操作存储器控制器的方法的图。为了简化描述,以下描述将聚焦于与参考图9所描述的实施例的差异。
参考图10,存储设备的突然断电(SPO)发生。
当存储设备再次通电(PWR ON)时,将元数据加载到第二存储器设备300的第一子区域310至第n子区域330中。在关闭子区域的ECC功能的状态中,使用正常写入操作来更新元数据(步骤S410)。通过图10中N所指示的部分来指示使用日志数据所更新的元数据。
然而,因为在关闭ECC功能的状态中使用正常写入操作,所以与必需的SPO断开时间相比,可以相当快地完成回放操作。因此,可以在SPO断开时间内执行生成存储在一些子区域(例如,第一子区域310)中的数据的奇偶校验数据以及将已经对于其生成了奇偶校验数据的子区域310的ECC功能改变为开启状态的步骤S420。
以这种方式,在满足与SPO断开时间有关的需求时,能够尽快执行回放操作,并且能够对于一些子区域(例如,子区域310)减少数据损坏的风险。
此后,存储器控制器200向主机传送就绪信号。
以预先确定的顺序对剩余子区域320和330执行奇偶校验数据生成。也就是说,生成存储在第二子区域320中的数据的第二奇偶校验数据。然后,第二子区域320的ECC功能被改变为开启状态(步骤S430)。随后,生成存储在第n子区域330中的数据的第n奇偶校验数据。第n子区域的ECC功能被改变为开启状态(步骤S440)。
图11是图示出根据本公开的实施例、操作存储器控制器的方法的图。为了简化描述,以下描述将聚焦于与参考图9和图10所描述的实施例的差异。
参考图11,存储设备的突然断电(SPO)发生。
当存储设备再次通电(PWR ON)时,将元数据加载到第二存储器设备300的第一子区域310至第n子区域330中。在关闭子区域的ECC功能的状态中,使用正常写入操作来更新(即,重放)元数据(步骤S410)。通过图11中的N所指示的部分来指示使用日志数据所更新的元数据。
之后,可以按照预先确定的顺序生成奇偶校验数据。
生成存储在第一子区域310中的数据的第一奇偶校验数据。然后,第一子区域310的ECC功能被改变为开启状态(步骤S420)。
在该配置中,可以从主机接收存储在第四子区域中的数据的第四奇偶校验数据生成请求(即,用于第四子区域的存取请求)。(在生成第二奇偶校验数据之前)生成第四奇偶校验数据。然后,第四子区域的ECC功能被改变为开启状态(步骤S431)。
在生成第四奇偶校验数据之后,根据顺序再次生成存储在第二子区域中的数据的第二奇偶校验数据。随后,生成存储在第n子区域330中的数据的第n奇偶校验数据。第n子区域的ECC功能被改变为开启状态(步骤S440)。
在推断具体实施方式中,那些本领域技术人员将理解,在基本上不背离在本文的发明构思的原理的情况下,可以对优选的实施例作出许多变化和修改。因此,仅仅在一般和描述性的意义方面而不是为了限制的目的来使用本公开的公开优选的实施例。
Claims (19)
1.一种操作存储器控制器的方法,包括:
将元数据加载到缓冲存储器的多个子区域中;
在对于所述多个子区域中的每个禁用所述存储器控制器的错误校正码(ECC)功能的状态中,使用日志数据来更新所述元数据;
生成在所述多个子区域当中的第一子区域中存储的数据的第一奇偶校验数据;以及
在生成所述第一奇偶校验数据之后,启用所述第一子区域的ECC功能。
2.根据权利要求1所述的方法,其中,在所述缓冲存储器的突然断电(SPO)的断开时间内执行使用所述日志数据来更新所述元数据,并且
其中,在所述SPO的断开时间之后执行所述第一奇偶校验数据的生成。
3.根据权利要求1所述的方法,进一步包括:
在生成所述第一奇偶校验数据之后,生成在所述多个子区域当中的第二子区域中存储的数据的第二奇偶校验数据;以及
在生成所述第二奇偶校验数据之后,启用所述第二子区域的ECC功能。
4.根据权利要求3所述的方法,其中,在所述缓冲存储器的SPO的断开时间内执行使用所述日志数据来更新所述元数据以及所述第一奇偶校验数据的生成,并且
其中,在所述SPO的断开时间之后执行所述第二奇偶校验数据的生成。
5.根据权利要求1所述的方法,其中,将所述第一奇偶校验数据的生成作为后台操作来执行。
6.根据权利要求1所述的方法,进一步包括按照布置在所述缓冲存储器中的所述多个子区域的顺序来生成分别地存储在所述多个子区域中的数据的奇偶校验数据。
7.根据权利要求6所述的方法,其中,所述多个子区域包括n个子区域,其中,n是2或更大的自然数,并且
其中,该方法进一步包括:
在生成在所述多个子区域当中的第m子区域中存储的第m数据的第m奇偶校验数据时,如果接收到在所述多个子区域当中的第k子区域中存储的第k数据的第k奇偶校验数据生成请求,则在完成第k奇偶校验生成请求之后,生成在所述多个子区域当中的第m+1子区域中存储的第m+1数据的第m+1奇偶校验数据,
其中,m是1和n-2之间的自然数,以及其中,k是m+2和n之间的自然数。
8.根据权利要求6所述的方法,其中,所述生成包括通过硬件逻辑来生成所述奇偶校验数据。
9.根据权利要求1所述的方法,其中,所述使用日志数据来更新所述元数据包括正常写入操作而不是读取-修改-写入(RMW)操作。
10.一种操作存储器控制器的方法,包括:
在所述缓冲存储器的突然断电(SPO)的断开时间期间,将元数据加载到缓冲存储器的多个子区域中,
在对于所述多个子区域中的每个禁用所述存储器控制器的错误校正码(ECC)功能的状态中,使用日志数据来更新所述元数据;以及
在所述SPO的断开时间之后,作为后台操作,按照布置在所述缓冲存储器中的多个子区域的顺序来生成分别地存储在所述多个子区域中的数据的奇偶校验数据。
11.根据权利要求10所述的方法,其中,所述多个子区域包括n个子区域,其中,n是2或更大的自然数,并且
其中,该方法进一步包括:
在生成在所述多个子区域当中的第m子区域中存储的第m数据的第m奇偶校验数据时,如果接收到在所述多个子区域当中的第k子区域中存储的第k数据的第k奇偶校验数据生成请求,则在完成第k奇偶校验生成请求之后,生成在所述多个子区域当中的第m+1子区域中存储的第m+1数据的第(m+1)奇偶校验数据,
其中,m是1和n-2之间的自然数,以及其中,k是m+2和n之间的自然数。
12.根据权利要求10所述的方法,进一步包括:
在生成所述多个子区域当中的第一子区域的第一奇偶校验数据之后,启用所述第一子区域的ECC功能;以及
在生成所述多个子区域当中的第n子区域的第n奇偶校验数据之后,启用所述第n子区域的ECC功能。
13.根据权利要求10所述的方法,其中,所述使用日志数据来更新所述元数据包括正常写入操作而不是读取-修改-写入(RMW)操作。
14.一种存储设备,包括:
主存储器;
包括多个子区域的缓冲存储器;以及
存储器控制器,被配置为在所述缓冲存储器的突然断电(SPO)发生之后将存储在所述主存储器中的元数据加载到所述缓冲存储器的多个子区域中,以及根据在所述缓冲存储器的SPO时所述存储器控制器选择性地启用还是禁用针对所述多个子区域中的每个的存储器控制器的ECC功能而使用日志数据来更新所述元数据。
15.根据权利要求14所述的存储设备,其中,所述存储器控制器被进一步配置为,在使用所述日志数据更新所述元数据时,针对所述多个子区域的所有子区域禁用所述ECC功能。
16.根据权利要求15所述的存储设备,其中,所述存储器控制器被进一步配置为,在使用所述日志数据更新所述元数据之后,生成在所述多个子区域的每个子区域中存储的数据的奇偶校验数据,以及仅仅对于多个子区域当中的已经对于其生成了奇偶校验数据的处理的子区域启用所述ECC功能。
17.根据权利要求16所述的存储设备,其中,所述存储器控制器被进一步配置为使用多个子区域当中的其中启用所述ECC功能的子区域的元数据来检查其中多个子区域当中的其中禁用所述ECC功能的子区域的一致性。
18.根据权利要求14所述的存储设备,其中,所述存储器控制器被进一步配置为,在使用所述日志数据更新所述元数据之后,通过使用硬件逻辑来生成在所述多个子区域当中的每个子区域中存储的数据的奇偶校验数据。
19.根据权利要求14所述的存储设备,其中,所述存储器控制器被进一步配置为,在使用所述日志数据更新所述元数据时,仅仅对于所述多个子区域当中的已经对于其生成了奇偶校验数据的处理的子区域来启用所述ECC功能,并且对于尚未对于其生成所述奇偶校验数据的所述多个子区域当中的子区域禁用所述ECC功能。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0101481 | 2019-08-20 | ||
KR1020190101481A KR20210022260A (ko) | 2019-08-20 | 2019-08-20 | 메모리 컨트롤러의 구동방법, 메모리 컨트롤러 및 스토리지 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112416650A true CN112416650A (zh) | 2021-02-26 |
Family
ID=70480093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010836240.0A Pending CN112416650A (zh) | 2019-08-20 | 2020-08-19 | 存储器控制器的操作方法、存储器控制器以及存储设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11182245B2 (zh) |
EP (1) | EP3783490B1 (zh) |
KR (1) | KR20210022260A (zh) |
CN (1) | CN112416650A (zh) |
SG (1) | SG10202004986VA (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11599415B2 (en) | 2021-07-09 | 2023-03-07 | Microsoft Technology Licensing, Llc | Memory tiering techniques in computing systems |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6212631B1 (en) | 1999-01-15 | 2001-04-03 | Dell Usa, L.P. | Method and apparatus for automatic L2 cache ECC configuration in a computer system |
JP2005044427A (ja) | 2003-07-25 | 2005-02-17 | Toshiba Corp | 半導体記憶装置 |
TWI254848B (en) * | 2004-11-16 | 2006-05-11 | Via Tech Inc | Method and related apparatus for performing error checking-correcting |
JP4528242B2 (ja) | 2005-10-20 | 2010-08-18 | 富士通セミコンダクター株式会社 | メモリシステムおよびメモリシステムの動作方法 |
JP4247262B2 (ja) | 2006-09-29 | 2009-04-02 | 株式会社東芝 | 集積回路装置 |
US8371673B2 (en) * | 2007-04-24 | 2013-02-12 | Canon Kabushiki Kaisha | Printing apparatus and ink remaining amount detection method |
US9037949B1 (en) | 2012-06-21 | 2015-05-19 | Rambus Inc. | Error correction in a memory device |
US9411717B2 (en) * | 2012-10-23 | 2016-08-09 | Seagate Technology Llc | Metadata journaling with error correction redundancy |
KR102233808B1 (ko) * | 2014-03-14 | 2021-03-30 | 삼성전자주식회사 | 저장 장치 및 그것의 테이블 관리 방법 |
US9612904B2 (en) | 2015-02-02 | 2017-04-04 | Sandisk Technologies Llc | Memory system and method for securing volatile memory during sleep mode using the same ECC module used to secure non-volatile memory during active mode |
KR20230003301A (ko) | 2015-02-26 | 2023-01-05 | 가부시키가이샤 한도오따이 에네루기 켄큐쇼 | 메모리 시스템 및 정보 처리 시스템 |
US11169871B2 (en) * | 2017-02-23 | 2021-11-09 | SK Hynix Inc. | Data storage device and operating method thereof |
JP6861611B2 (ja) | 2017-11-07 | 2021-04-21 | ルネサスエレクトロニクス株式会社 | 半導体装置及びそれを備えた半導体システム |
US10997065B2 (en) * | 2017-11-13 | 2021-05-04 | SK Hynix Inc. | Memory system and operating method thereof |
KR20190054533A (ko) | 2017-11-14 | 2019-05-22 | 삼성전자주식회사 | 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법 |
US10990463B2 (en) * | 2018-03-27 | 2021-04-27 | Samsung Electronics Co., Ltd. | Semiconductor memory module and memory system including the same |
KR102553261B1 (ko) * | 2018-10-10 | 2023-07-07 | 삼성전자 주식회사 | 메모리 컨트롤러, 상기 메모리 컨트롤러를 포함하는 스토리지 장치, 및 상기 메모리 컨트롤러의 동작 방법 |
-
2019
- 2019-08-20 KR KR1020190101481A patent/KR20210022260A/ko active Search and Examination
-
2020
- 2020-04-24 US US16/857,358 patent/US11182245B2/en active Active
- 2020-04-29 EP EP20172057.0A patent/EP3783490B1/en active Active
- 2020-05-28 SG SG10202004986VA patent/SG10202004986VA/en unknown
- 2020-08-19 CN CN202010836240.0A patent/CN112416650A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20210055988A1 (en) | 2021-02-25 |
EP3783490A1 (en) | 2021-02-24 |
EP3783490B1 (en) | 2021-10-20 |
SG10202004986VA (en) | 2021-03-30 |
KR20210022260A (ko) | 2021-03-03 |
US11182245B2 (en) | 2021-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4524309B2 (ja) | フラッシュメモリ用のメモリコントローラ | |
US8185685B2 (en) | NAND flash module replacement for DRAM module | |
US9063728B2 (en) | Systems and methods for handling hibernation data | |
US9280460B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
EP3133604B1 (en) | Method and device for fail-safe erase of flash memory | |
JP4828816B2 (ja) | メモリカード、半導体装置、及びメモリカードの制御方法 | |
US20030093610A1 (en) | Algorithm of flash memory capable of quickly building table and preventing improper operation and control system thereof | |
US11138080B2 (en) | Apparatus and method for reducing cell disturb in an open block of a memory system during a recovery procedure | |
JP4373943B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
CN110890113A (zh) | 存储设备及其操作方法 | |
KR20120024906A (ko) | 불휘발성 메모리로부터의 디바이스 부트업 동안 에러들의 핸들링 | |
US9619380B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
US11068177B2 (en) | Data storage devices and data processing methods for shortening time required for a host device to wait for initialization of the data storage device | |
US11714656B2 (en) | Memory system executing loading of software at startup and control method | |
US11237766B2 (en) | Storage device and method of operating of the storage device | |
CN111429960A (zh) | 改善闪存的读取重试的方法、控制器以及相关存储装置 | |
US11061614B2 (en) | Electronic apparatus having data retention protection and operating method thereof | |
US10990292B2 (en) | Flash memory controller, control method of flash memory controller and associated electronic device | |
US11069409B2 (en) | Method, associated memory device and controller thereof for performing programming management | |
CN112835514B (zh) | 存储器系统 | |
US11347433B2 (en) | Method for performing sudden power off recovery management, associated memory device and controller thereof, and associated electronic device | |
US11182245B2 (en) | Operating method of memory controller, memory controller, and storage device | |
US20230236765A1 (en) | Storage controller performing active zone refresh, method of operating storage controller, and method of operating storage device having storage controller | |
CN113345500A (zh) | 用来进行恢复管理的方法及设备 | |
TWI747270B (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 |