CN102272855A - 存储器控制器及存储器管理方法 - Google Patents
存储器控制器及存储器管理方法 Download PDFInfo
- Publication number
- CN102272855A CN102272855A CN2009801534658A CN200980153465A CN102272855A CN 102272855 A CN102272855 A CN 102272855A CN 2009801534658 A CN2009801534658 A CN 2009801534658A CN 200980153465 A CN200980153465 A CN 200980153465A CN 102272855 A CN102272855 A CN 102272855A
- Authority
- CN
- China
- Prior art keywords
- data
- code
- ecc
- confidence level
- storer
- 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
- 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
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
-
- 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
- G11C2029/0411—Online error correction
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)
- Detection And Correction Of Errors (AREA)
Abstract
本发明提出了一种存储器控制器,其基于根据数据的种类被选定(predetermined)的所需(required)可信度,对所述数据生成纠错码ECC(Error Correction Code)信息,基于所述ECC信息,对所述数据演算出ECC代码后,将所述ECC代码记录在存储器中。
Description
技术领域
本发明提出了一种存储器控制器及存储器管理方法,特别是,该存储器控制器及存储器管理方法,可根据将被记录在存储器中的数据的种类,使用各种纠错码ECC(Error Correction Code)技法来有效地管理存储器。
技术背景
存储数据的存储装置有磁盘(magnetic disk),半导体存储器等。因为存储装置根据种类各自具有不同的物理特性,所以需要与物理特性相对应的管理方法。
现有存储装置中,磁盘被广泛地使用,磁盘的特征为平均每千字节(kilobyte)需要数毫秒(millisecond)的读写时间。此外,磁盘的特征为,根据数据被存储的物理性位置光标到达的时间的不同,因此读写的时间也不同。
最近,比起磁盘,读写时间短,电力消耗低,体积小的非易失性(non-volatile)存储器在加速地替代磁盘。这是因为非易失性存储器实现了大容量化而产生的效果。
非易失性存储器是可用电力进行读取(read)、写入(write)及擦除(erase)并在没有电源的状态下也可维持被存储的数据的一种半导体存储器装置。对非易失性存储器装置存储数据的过程,除了被叫作写入以外还被叫作程序设计(programming)。
具代表性的非易失性存储器可为闪存(Flash memory),闪存比现有的硬盘驱动器HDD(Hard Disk Drive)体积小、电力消耗低,具有可提高读取速度的优点。最近,用于利用大容量闪存来替代HDD的固态硬盘SSD(SolidState Disk)也已被提议出来。
闪存的种类中,具代表性的为NAND方式的闪存和NOR方式的内存等。NAND方式和NOR方式可根据信元(cell)阵列(array)的结构和操作方式被区分。
闪存通过多数的存储器信元的排列来实现,一个存储器信元可存储一个以上的数据比特。一个存储器信元包括控制栅(control gate)和浮栅(floating gate),控制栅和浮栅的之间被插入绝缘体(insulator),并在控制栅和基片(substrate)之间也被插入绝缘体。
此类非易失性存储器通过一定的控制器实现管理,此外,根据此类控制器的性能,可决定非易失性存储器的整体性能。
因此,有必要对可有效地管理和控制存储器的存储器控制器来进行研究。
发明内容
技术课题
本发明提供一种存储器控制器及存储器管理方法,其可通过考虑根据将被记录在存储器中的数据的种类所要求的可信度、使用多样化的纠错码ECC(Error Correction Code)技法,由此来有效地管理存储器。
技术方案
根据本发明的一个实施例的存储器控制器,其包括ECC生成单元、ECC演算单元和ECC记录单元。ECC生成单元基于根据数据的种类被选定(predetermined)的所需(required)可信度,对所述数据生成纠错码ECC(ErrorCorrection Code)信息,ECC演算单元基于所述ECC信息,对所述数据演算出ECC代码,ECC记录单元基于所述ECC信息,将所述ECC代码记录在存储器中。
此外,根据本发明的一个实施例的存储器管理方法,包括以下步骤:基于根据数据的种类被选定(predetermined)的所需(required)可信度,对所述数据生成纠错码ECC(Error Correction Code)信息;基于所述ECC信息,对所述数据演算出ECC代码;和基于所述ECC信息,将所述ECC代码记录在存储器中。
技术效果
本发明提出一种存储器控制器及存储器管理方法,其考虑根据将被记录在存储器中的数据的种类所要求的可信度来使用多样化的纠错码ECC(Error Correction Code:)技法,由此可有效地管理存储器。
附图说明
图1是示出根据本发明的一个实施例的存储器控制器的操作的示意图;
图2是示出根据本发明的一个实施例的存储器控制器的操作过程的流程图;
图3是示出根据本发明的另一个实施例的存储器控制器的操作过程的流程图;
图4是示出根据本发明的一个实施例的存储器控制器的构造的示图;
图5是示出根据本发明的一个实施例的存储器管理方法的流程图。
具体实施方式
以下,将参照附图对本发明的实施例进行详细说明。
图1是示出根据本发明的一个实施例的存储器控制器的操作的示意图。
参照图1,示出文件系统110、存储器控制器120、存储器130。
根据本发明的一个实施例,存储器130可为非易失性(non-volatile)存储器。
一般情况下,对非易失性存储器130的编程,可以页面为单位执行,且擦除(erase)可以块(block)为单位被执行。在这种情况下,块可包括多个页面。
此外,管理非易失性存储器130的存储器控制器120,可向外部主机(host)或是处理器(processor)提供逻辑地址(logical address),并对非易失性存储器130提供物理地址(physical address)。
在这种情况下,存储器控制器120可利用物理地址来管理存储器110,并将物理地址转换为逻辑地址。
在此,执行物理地址和逻辑地址的转换的层也被称为FTL(FlashTranslation Layer)。
存储器控制器120为保障被记录在存储器110中的数据的可信度,可使用纠错码(Error Correction Code:ECC)。
一般情况下,ECC信息可被用于,在读取被记录在存储器110中的数据时,感应是否存在读出的数据与数据被记录在存储器110中当时的数据不同等错误,并将错误的数据修改为正确的数据。
所述ECC信息,可被记录在存储器110的特定区域中,一般情况下,可被记录在存储器110的备用(Spare)区域中。
根据本发明的一个实施例,存储器控制器120,可利用这样的ECC信息来确保被记录在存储器110中的数据的可信度。
一般情况下,为利用ECC信息来确保数据的可信度,需考虑ECC算法、ECC的适用对象、ECC代码的大小或是ECC的记录位置等各种因素。
现有的存储器控制器,为利用ECC信息确保数据的可信度,根据存储器控制器的映射(mapping)算法、使用用途、存储器的特征等,具体定出所述因素后,将所述因素一律应用在了将被记录在存储器的数据上。
也就是说,现有的存储器控制器,不管要被记录在存储器中的数据是什么种类,将前述的ECC算法、ECC的适用对象、ECC代码的大小、ECC的记录位置等之类的因素特定为一体之后应用在了存储器上。
但是,这种现有方式,因为没有考虑数据的种类或特性,所以可能会在管理存储器的层次上出现非效率性。
例如,当不管要被记录在存储器中的数据的种类,而对其一律使用可以少使用存储器的空间并进行较快的演算但无法保障将被记录在存储器中的数据的可信度的ECC技法时,对于像元(meta)数据之类的要求较高可信度的数据,有可能无法保障对其恰当的可信度。
相反,当不管要被记录在存储器中的数据的种类,而对其一律使用可对要被记录在存储器中的数据保障较高的可信度但较多地使用存储器的空间且演算时间较长的ECC技法时,即使是将像用户(user)数据之类的只需保障相对较低的可信度的数据记录在存储器中也将浪费很多存储器的空间和时间。
因此,根据本发明的一个实施例,存储器控制器120,根据将被记录在存储器中的数据的种类动态地应用ECC技法,可更有效地管理存储器130。
与之相关,存储器控制器120,在从文件系统110接收到了一定数据的写入(write)请求时,可基于根据所述数据的种类被选定(predetermined)的所需可信度(required),可对所述数据生成ECC信息。
之后,存储器控制器120,可基于所述ECC信息,对所述数据演算出ECC代码后将所述ECC代码记录在存储器130中。
根据本发明的一个实施例,文件系统110,在对存储器控制器120请求写入所述数据时,可连同对所述数据所要求的可信度信息一起传送。
此外,根据本发明的一个实施例,所述ECC信息,可将ECC算法、ECC代码的大小、ECC的应用对象、ECC的记录位置等信息包含在内。
即,根据本发明的一个实施例,存储器控制器120,可考虑基于根据数据的种类被选定的所需可信度,决定ECC算法、ECC代码的大小、ECC的适用对象、ECC的记录位置等。
此外,根据本发明的一个实施例,所述所需可信度根据数据的种类被选定后,可被记录在地址映射表(address mapping table)121中。
在这种情况下,根据本发明的一个实施例,存储器控制器120可参照地址映射表121来判断所述所需可信度。
例如,可向地址映射表121中增加用于区分所述所需可信度的字段,使存储器控制器120掌握根据数据的种类的所需可信度并依此生成恰当的ECC信息。
在此,地址映射表121是指逻辑地址与物理地址互相被映射的表的意思。
此外,根据本发明的一个实施例,存储器控制器120,在从文件系统110中接收到了所述数据的读取(read)请求时,可从存储器130读取出所述数据,并同时基于ECC信息读取出被记录在存储器130中的所述ECC代码。
在这种情况下,根据本发明的一个实施例,存储器控制器120参照所述地址映射表,对所述数据判断出被选定的所需可信度后,可基于所述所需可信度读取出所述ECC代码。
此外,存储器控制器120,可基于所述ECC信息,对所述读取出的数据演算出第2ECC代码。
之后,存储器控制器120,可基于所述ECC信息,将所述被读取出的ECC代码与所述第2ECC代码作比较来感应所述被读取出的数据是否错误,并在感应出错误时修正所述错误。
以下,将对存储器控制器120的操作举例进行详细说明。
首先,假定从文件系统110中请求了对存储器控制器进行第1数据和第2数据的写入。
此外,假定所述第1数据的所需可信度为第1所需可信度,所述第2数据的所需可信度为第2所需可信度,且所述第1数据的所需可信度超过第2所需可信度。
在图1中,附图符号131,是将存储器130的页面图样化的示图,页面131可由多个扇区构成,各扇区可被区分成存储数据的数据(Date)区域和备用(Spare)区域。
根据本发明的一个实施例,存储器控制器120,可对第1数据,以所述第1数据将要被记录的整个页面为基准,演算出第1ECC代码。
之后,存储器控制器120,可将所述第1ECC代码记录在所述页面的最后一个扇区中。
与之相关利用附图符号131进行说明的话,存储器控制器120,可以以所述第1数据将被记录的一个页面131的整体为基准演算出所述第1ECC代码后,将所述第1ECC代码记录在页面131的最后扇区中。
此外,根据本发明的一个实施例,存储器控制器120,可对所述第2数据,在所述第2数据将要被记录的每一个扇区,演算出第2ECC代码。
之后,存储器器120,可将所述第2ECC代码记录在存储器130的备用区域中。
与之相关利用附图符号131进行说明的话,存储器控制器120,在所述第2数据将要被记录的页面131的每一个扇区演算出所述第2ECC代码后,可将所述第2ECC代码记录在备用区域133中。
即,根据本发明的一个实施例的存储器控制器120,在要求相对较高的可信度的数据被记录在存储器130中时,以一个页面的整体为基准对所述数据演算出ECC代码后,在所述页面的最后扇区中记录所述ECC代码,由此存储器130的空间使用率虽然增加了,但可保障对所述数据的高度可信度。
此外,根据本发明的一个实施例,存储器控制器120,在要求相对较低的可信度的数据被记录在存储器130中时,在每一个扇区对所述数据演算出ECC代码后,在存储器130的备用区域中记录所述ECC代码,由此,对所述数据的保障的可信度虽然有些较低,但在存储器130的空间使用率和速度方面中能获利。
以上,对数据被记录在存储器130中时存储器控制器120的操作进行了说明,以下,将对从存储器130读取出所述数据时存储器控制器120的操作进行说明。
首先,对存储器控制器120从存储器130中读取出以前述的方式记录的第1数据的情况进行说明。
存储器控制器120,当从文件系统110中接收到了所述第1数据的读取请求时,从所述第1数据被记录的页面131的最后扇区132中读取出第1ECC代码。
之后,存储器控制器120,可以以所述整个页面131为基准,对被读取出的第1数据演算出第3ECC代码后,将所述第1ECC代码与所述第3ECC代码作比较,对所述被读取出的第1数据感应是否错误并修正错误。
下面,对存储器控制器120从存储器130中读取出以前述的方式对记录的第2数据的情况进行说明。
存储器控制器120,当从文件系统接收到了所述第2数据的读取请求时,从存储器130的备用区域133中读取出所述第2ECC代码。
之后,存储器控制器120,可在每一个扇区对被读取出的第2数据演算出第4ECC代码后,将所述第2ECC代码与所述第4ECC代码作比较,对所述被读取出的第2数据感应出是否错误并修正错误。
一般情况下,当将要被记录在存储器130中的数据为存储器控制器120的元数据时,如果其信息丢失的话,在存储器130中被记录的所有数据将不可信,在这一点上其需要保障比用户数据更高的可信度。
因此,根据本发明的一个实施例,当将被记录在存储器130中的数据为存储器控制器120的元数据时,所述元数据的所需可信度可被选定为比用户数据的所需可信度要高。
这种情况下,一般来说,存储器控制器120可自动区分元数据和用户数据,因此具备无需考虑用于根据数据的种类区别被选定的所需可信度的额外方法的优点。
与之相关,根据本发明的一个实施例,存储器控制器120,可被设计为所述元数据只可被记录在存储器130的特定位置中。因此,为区别根据数据的种类被选定的所需可信度,可省略在地址映射表121中增加特定字段等过程。
以下,将参照图2,对根据将被记录在存储器130中的数据是元数据还是用户数据,存储器控制器120进行操作的过程进行详细说明。
图2是示出根据本发明的一个实施例的存储器控制器的操作过程的流程图。
在S210步骤中,存储器控制器120从文件系统110接收数据写入请求。
在S210步骤中,存储器控制器120,对从文件系统110接收到写入请求的数据是否为存储器控制器120的元数据进行判断。
如果,在步骤S220中从文件系统110接收到写入请求的数据被判断为存储器控制器120的元数据时,存储器控制器120,在步骤S230中,以所述元数据将被记录的整个页面为基准,对所述元数据演算出第1ECC代码。
之后,在步骤S240中,存储器控制器120,将所述第1ECC代码记录在所述页面的被选定的扇区中。
根据本发明的一个实施例,所述被选定的扇区可为所述页面的最后扇区。
但,当在S220步骤中所述数据被判断为不是所述元数据而是用户数据时,存储器控制器120,在步骤S250中,在所述用户数据将要被记录的每一个扇区对所述用户数据演算出第2ECC代码。
之后,在步骤S260中,存储器控制器120将所述第2ECC代码记录在存储器130的备用区域。
则,根据本发明的一个实施例,存储器控制器120,在要求相对较高可信度的元数据将被记录在存储器130中时,以一个页面的整体为基准对所述元数据演算出ECC代码后,在所述页面的最后扇区中记录所述ECC代码,由此,存储器130的空间使用率虽然增加了,但可保障对所述元数据的高度可信度。
此外,根据本发明的一个实施例,存储器控制器120,在要求相对较低可信度的用户数据将被记录在存储器130中时,在每一个扇区对所述用户数据演算出ECC代码后,在存储器130的备用区域中记录所述ECC代码,由此,对所述用户数据的保障的可信度虽然有些较低,但在存储器130的空间使用率和速度方面能获利。
以上,对在数据被记录在存储器130中时存储器控制器120的操作进行了说明,以下,将参照图3,对从存储器130读取出所述数据时存储器控制器120的操作进行说明。
图3是示出根据本发明的另一个实施例的存储器控制器的操作过程的流程图。
在步骤S310中,存储器控制器120从文件系统110接收数据读取请求。
在步骤S320中,存储器控制器120,对从文件系统110接收到读取请求的数据是否为存储器控制器120的元数据进行判断。
当在步骤S320中从文件系统110接收到读取请求的数据被判断为存储器控制器120的元数据时,存储器控制器120,在步骤S330中从所述元数据被记录的页面的最后扇区读取出第1ECC代码。
之后,在步骤S340中,存储器控制器120,以所述整个页面为基准,对从存储器130读取出的元数据演算出第3ECC代码。
在步骤S350中,将所述被读取出的第1ECC代码与所述第3ECC代码作比较,来对被读取出的元数据,感应并修正错误。
当在步骤S320中所述数据被判断为不是元数据而是用户数据时,存储器控制器120,在步骤S360中,从存储器130的备用区域读取出第2ECC代码。
之后,在步骤S370中,存储器控制器120,在所述每一个扇区,对从存储器130读取出的用户数据演算出第4ECC代码。
在步骤S380中,将所述被读取出的第2ECC代码与所述第4ECC代码作比较,来对被读取出的用户数据感应并修正错误。
图4是示出根据本发明的一个实施例的存储器控制器的构造的示图。
参照图4,示出了文件系统410、存储器控制器420和存储器430。
存储器控制器420可包括ECC生成单元421、ECC演算单元422和ECC记录单元423。
ECC生成单元421,在文件系统410请求数据写入时,基于根据所述数据的种类被选定的所需可信度,对所述数据生成ECC信息。
根据本发明的一个实施例,所述所需可信度,可根据数据的种类被选定后,被记录在地址映射表中。
此时,根据本发明的一个实施例,ECC生成单元421,可参照所述地址映射表判断所述所需可信度后,生成所述ECC信息。
ECC演算单元422,基于所述ECC信息,对所述数据演算出ECC代码。
ECC记录单元423,基于所述ECC信息,将所述ECC代码记录在存储器中430。
根据本发明的一个实施例,存储器控制器420,可进一步包括:ECC读取单元(未示出),第2ECC演算单元(未示出)和错误感应单元(未示出)。
所述ECC读取单元,在由于从文件系统410接收到了数据读取请求而从所述存储器430中读取出了所述数据时,基于所述ECC信息,从所述存储器中430读取出所述ECC代码。
所述第2ECC演算单元,基于所述ECC信息,对被读取出的数据演算出第2ECC代码
所述错误感应单元,基于所述ECC信息,将所述被读取出的ECC代码与所述第2ECC代码作比较来感应所述被读取出的数据是否错误,并在感应出错误时修正所述错误。
根据本发明的一个实施例,ECC演算单元322,可在所述数据的所需可信度为第1所需可信度时,以所述数据将要被记录的整个页面为基准,对所述数据演算出第1ECC代码,并在所述数据的所需可信度为第2所需可信度时,在所述数据将要被记录的每一个扇区对所述数据演算出第2ECC代码。
在此,所述第1所需可信度超过所述第2所需可信度。
在这种情况下,根据本发明的一个实施例,ECC记录单元323,可将所述第1ECC代码记录在所述页面的被选定的扇区中,并将所述第2ECC代码记录在所述存储器330的备用区域中。
在这种情况下,根据本发明的一个实施例,所述被选定的扇区可为所述页面的最后扇区。
此外,根据本发明的一个实施例,存储器控制器420,在从所述存储器430读取出了被选定为所述第1可信度的数据时,所述ECC读取单元,可从所述页面的被选定的扇区读取出所述第1ECC代码。
此外,所述第2ECC演算单元,可以以整个页面为基准,对所述读取出的数据演算出第3ECC代码。
之后,所述错误感应单元,可将所述被读取出的第1ECC代码与所述第3ECC代码作比较来感应所述被读取出的数据是否错误,并在感应出错误时修正所述错误。
此外,根据本发明的一个实施例,存储器控制器420,在从所述存储器430读取出了被选定为所述第2可信度的数据时,所述ECC读取单元,可从存储器430的所述备用区域中读取出所述第2ECC代码。
此外,所述第2ECC演算单元,可在所述每一个扇区对所述被读取出的数据演算出第4ECC代码。
之后,所述错误感应单元,可将所述被读取出的第2ECC代码与所述第4ECC代码作比较来感应所述被读取出的数据是否错误,并在感应出错误时修正所述错误。
此外,根据本发明的一个实施例,当所述数据为元数据时,所述元数据的所需可信度被选定为第1所需可信度,且当所述数据为用户数据时,所述所需可信度被选定为第2所需可信度。
此外,根据本发明的一个实施例,ECC演算单元322,在所述数据为元数据时,以所述元数据将要被记录的整个页面为基准,对所述元数据演算出第1ECC代码,且在所述数据为用户数据时,在所述用户数据将要被记录的每一个扇区对所述用户数据演算出第2ECC代码。
在这种情况下,根据本发明的一个实施例,ECC记录单元323,可将所述第1ECC代码记录在所述页面的被选定的扇区中,并将所述第2ECC代码记录在所述存储器的备用区域中。
此时,根据本发明的一个实施例,所述被选定的扇区可为所述页面的最后扇区。
此外,根据本发明的一个实施例,存储器控制器420,在从存储器430读取出了所述元数据时,所述ECC读取单元,可从所述页面的被选定的扇区读取出所述第1ECC代码。
此外,所述第2ECC演算单元,可以所述整个页面为基准,对所述被读取的元数据演算出第3ECC代码。
之后,所述错误感应单元,可将所述被读取出的第1ECC代码与所述第3ECC代码作比较来感应所述被读取出的元数据是否错误,并在感应出错误时修正所述错误。
此外,根据本发明的一个实施例,存储器控制器420,在从存储器430读取出了所述用户数据时,所述ECC读取单元,可从存储器430的所述备用区域读取出所述第2ECC代码。
此外,所述第2ECC演算单元,可在所述每一个扇区,对所述被读取的用户数据演算出第4ECC代码。
之后,所述错误感应单元,可将所述被读取出的第2ECC代码与所述第4ECC代码作比较来感应所述被读取出的元数据是否错误,并在感应出错误时修正所述错误。
图5是示出根据本发明的一个实施例的存储器管理方法的流程图。
在步骤S510中,当文件系统请求写入时,基于根据所述数据的种类被选定的所需可信度,对所述数据生成ECC信息。
根据本发明的一个实施例,所述所需可信度,可在根据所述数据的种类被选定后,被记录在地址映射表中。
在这种情况下,根据本发明的一个实施例,在步骤S510中,可参照所述地址映射表判断所述所需可信度后,生成所述ECC信息。
在步骤S520中,基于在步骤S520中被生成的所述ECC信息,对所述数据演算出ECC代码。
在步骤S530中,基于所述ECC信息,将在步骤S520中被演算出的所述ECC代码记录在存储器中。
此外,根据本发明的一个实施例,在步骤S530后,还可进一步包括以下步骤:在由于从文件系统中接收到了数据读取请求而从所述存储器中读取出了所述数据时,基于所述ECC信息,从所述存储器读取出所述ECC代码。
在这种情况下,根据本发明的一个实施例的存储器管理方法,还可进一步包括以下步骤:基于所述ECC信息,对所述被读取出的数据演算出第2ECC代码。
之后,根据本发明的一个实施例的存储器管理方法,还可进一步包括以下步骤:基于所述ECC信息,将所述被读取出的ECC代码与所述第2ECC代码作比较来感应所述被读取出的数据是否错误,并在感应出错误时修正所述错误。
根据本发明的一个实施例,当所述数据为元数据时,所述元数据的所需可信度被选定为第1所需可信度,且当所述数据为用户数据时,所述所需可信度被选定为第2所需可信度。
在此,所述第1所需可信度超过所述第2所需可信度。
此外,根据本发明的一个实施例,步骤S520中,在所述数据为元数据时,以所述元数据将要被记录的整个页面为基准,对所述元数据演算出第1ECC代码,且在所述数据为用户数据时,在所述用户数据将要被记录的每一个扇区对所述用户数据演算出第2ECC代码。
在这种情况下,根据本发明的一个实施例,步骤S530中,将所述第1ECC代码记录在所述页面的被选定的扇区中,并可所述第2ECC代码记录在所述存储器的备用区域中。
在这种情况下,根据本发明的一个实施例,所述被选定的扇区可为所述页面的最后扇区。
在这种情况下,根据本发明的一个实施例的存储器管理方法,在步骤S530后,还可进一步包括以下步骤:在从所述存储器读取出了所述元数据时,从所述页面的被选定的扇区读取出所述第1ECC信息。
在这种情况下,根据本发明的一个实施例的存储器管理方法还可进一步包括以下步骤:以整个页面为基准,对所述被读取出的元数据演算出第3ECC代码。
之后,根据本发明的一个实施例的存储器管理方法,还可进一步包括以下步骤:将所述被读取出的第1ECC代码与所述第3ECC代码作比较来感应所述被读取出的元数据是否错误,并在感应出错误时修正所述错误。
此外,根据本发明的一个实施例的存储器管理方法,在步骤S530后,还可进一步包括以下步骤:在从所述存储器读取出了所述用户数据时,从所述存储器的所述备用区域读取出所述第2ECC信息
在这种情况下,根据本发明的一个实施例的存储器管理方法,还可进一步包括以下步骤:在每一个扇区对所述被读取出的用户数据演算出第4ECC代码。
之后,根据本发明的一个实施例的存储器管理方法,还可进一步包括以下步骤:将所述被读取出的第2ECC代码与所述第4ECC代码作比较来感应所述被读取出的用户数据是否错误,并在感应出错误时修正所述错误。
以上,参照图5,对根据本发明的一个实施例的存储器管理方法进行了说明。在此,根据本发明的一个实施例的存储器管理方法,对应利用图1至图4所说明的存储器控制器的结构,因此,以下省略相关的详细的说明。
根据本发明的存储器管理方法,包括包含由计算机执行各种操作的程序指令的计算机可读媒体。该媒体计算机可读可包括独立的或结合的程序指令、数据文件、数据结构等。媒体和程序指令可专门为本发明的目的设计和创建,或为计算机软件技术人员熟知而应用。计算机可读媒体的例子包括:磁媒体(magnetic media),如硬盘、软盘和磁带;光学媒体(optical media),如CD ROM、DVD;磁光媒体(magneto-optical media),如光盘(floptical disk);和专门配置为存储和执行程序指令的硬件设备,如只读存储器(ROM)、随机存取存储器(RAM)等。程序指令的例子,既包括机器代码,如由编译器产生的,也包括含有可由计算机使用解释程序执行的更高级代码的文件。所述硬件设备可配置为作为一个以上软件模块运行以执行上面所述的本发明的示例性实施例的操作,反之亦然。
如上所示,本发明虽然已参照有限的实施例和附图进行了说明,但是本发明并不局限于所述实施例,在本发明所属领域中具备通常知识的人均可以从此记载中进行各种修改和变形。
因此,本发明的范围不受说明的实施例的局限或定义,而是由后附的权利要求范围以及权利要求范围等同内容定义。
Claims (14)
1.一种存储器控制器,包括:
ECC生成单元,其基于根据数据的种类被选定的所需可信度,对所述数据生成纠错码ECC信息;
ECC演算单元,其基于所述ECC信息,对所述数据演算出ECC代码;和
ECC记录单元,其基于所述ECC信息,将所述ECC代码记录在存储器中。
2.如权利要求1所述的存储器控制器,其中,所述所需可信度,根据所述数据的种类被选定后,被记录在地址映射表中。
其中,所述ECC生成单元,参照所述地址映射表,判断所述所需可信度后生成所述ECC信息。
3.如权利要求1所述的存储器控制器,其进一步包括:
ECC读取单元,其在从所述存储器中读取出了所述数据时,基于所述ECC信息,从所述存储器中读取出所述ECC代码;
第2ECC演算单元,其基于所述ECC信息,对所述被读取出的数据演算出第2ECC代码;和
错误感应单元,其基于所述ECC信息,将所述被读取出的ECC代码与所述第2ECC代码作比较来感应所述被读取出的数据是否错误,并在感应出错误时,修正所述错误。
4.如权利要求1所述的存储器控制器,其中,所述ECC演算单元,在所述数据的所需可信度为第1所需可信度时,以所述数据将要被记录的整个页面为基准,对所述数据演算出第1ECC代码,并在所述数据的所需可信度为第2所需可信度时,在所述数据将要被记录的每一个扇区对所述数据演算出第2ECC代码,且所述第1所需可信度超过所述第2所需可信度。
5.如权利要求4所述的存储器控制器,其中,所述ECC记录单元,将所述第1ECC代码记录在所述页面的被选定的扇区中,并将所述第2ECC代码记录在所述存储器的备用区域中。
6.如权利要求1所述的存储器控制器,其中,当所述数据为元数据时,所述元数据的所需可信度被选定为第1所需可信度,且当所述数据为用户数据时,所述所需可信度被选定为第2所需可信度,且所述第1所需可信度超过所述第2所需可信度。
7.如权利要求1所述的存储器控制器,其中,所述ECC演算单元,在所述数据为元数据时,以所述元数据将要被记录的整个页面为基准,对所述元数据演算出第1ECC代码,在所述数据为用户数据时,在所述用户数据将要被记录的每一个扇区,对所述用户数据演算出第2ECC代码。
8.如权利要求7所述的存储器控制器,其中,所述ECC记录单元,将所述第1ECC代码记录在所述页面的被选定的扇区中,将所述第2ECC代码记录在所述存储器的备用区域中。
9.一种存储器管理方法,包括以下步骤:
基于根据数据的种类被选定的所需可信度,对所述数据生成纠错码ECC信息;
基于所述ECC信息,对所述数据演算出ECC代码;和
基于所述ECC信息,将所述ECC代码记录在存储器中。
10.如权利要求9所述的存储器管理方法,其中,所述所需可信度,根据数据的种类被选定后,被记录在地址映射表中,所述生成ECC信息的步骤,参照所述地址映射表,判断所述所需可信度后生成所述ECC信息。
11.如权利要求9所述的存储器管理方法,其进一步包括以下步骤:
在从所述存储器读取出了所述数据时,基于所述ECC信息,从所述存储器中读取出所述ECC代码;
基于所述ECC信息,对所述被读取出的数据演算出第2ECC代码;和
基于所述ECC信息,将所述ECC代码与所述第2ECC代码作比较来感应所述被读取出的数据是否错误,并在感应出错误时,修正所述错误。
12.如权利要求9所述的存储器管理方法,其中,所述演算出ECC代码的步骤,在所述数据为元数据时,以所述元数据将要被记录的整个页面为基准,对所述元数据演算出第1ECC代码,且在所述数据为用户数据时,在所述用户数据将要被记录的每一个扇区对所述用户数据演算出第2ECC代码。
13.如权利要求12所述的存储器管理装置,其中,所述记录在存储器中的步骤,将所述第1ECC代码记录在所述页面的被选定的扇区中,将所述第2ECC代码记录在所述存储器的备用区域中。
14.一种记录有用于执行权利要求9至13中任何一项所述方法的程序的计算机可读记录媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2008-0136866 | 2008-12-30 | ||
KR1020080136866A KR101042197B1 (ko) | 2008-12-30 | 2008-12-30 | 메모리 컨트롤러 및 메모리 관리 방법 |
PCT/KR2009/006426 WO2010076966A2 (ko) | 2008-12-30 | 2009-11-03 | 메모리 컨트롤러 및 메모리 관리 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102272855A true CN102272855A (zh) | 2011-12-07 |
Family
ID=42310300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009801534658A Pending CN102272855A (zh) | 2008-12-30 | 2009-11-03 | 存储器控制器及存储器管理方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8738987B2 (zh) |
EP (1) | EP2383750A4 (zh) |
JP (1) | JP2012514266A (zh) |
KR (1) | KR101042197B1 (zh) |
CN (1) | CN102272855A (zh) |
WO (1) | WO2010076966A2 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182292A (zh) * | 2013-05-21 | 2014-12-03 | 华为技术有限公司 | 一种数据存储方法及装置 |
CN104346234A (zh) * | 2013-08-09 | 2015-02-11 | 华为技术有限公司 | 一种内存访问的方法、设备及系统 |
CN106233258A (zh) * | 2014-04-30 | 2016-12-14 | 微软技术许可有限责任公司 | 可变宽度纠错 |
CN109937449A (zh) * | 2016-11-08 | 2019-06-25 | 美光科技公司 | 存储器管理 |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5217570B2 (ja) * | 2008-03-31 | 2013-06-19 | 日本電気株式会社 | メモリ装置及びメモリ制御方法 |
US8190974B2 (en) * | 2009-09-28 | 2012-05-29 | Nvidia Corporation | Error detection and correction for external DRAM |
US8301980B2 (en) * | 2009-09-28 | 2012-10-30 | Nvidia Corporation | Error detection and correction for external DRAM |
JP2012084127A (ja) * | 2010-09-15 | 2012-04-26 | Toshiba Corp | 半導体装置 |
JP2013101455A (ja) * | 2011-11-08 | 2013-05-23 | Sony Corp | 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法 |
CN103197985B (zh) * | 2011-11-08 | 2018-07-13 | 索尼公司 | 存储控制装置 |
US9164832B2 (en) * | 2013-02-27 | 2015-10-20 | Seagate Technology Llc | ECC management for variable resistance memory cells |
JP6092673B2 (ja) * | 2013-03-21 | 2017-03-08 | スタンレー電気株式会社 | メモリ制御装置、メモリ制御方法 |
JP6107625B2 (ja) * | 2013-12-02 | 2017-04-05 | ソニー株式会社 | 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法 |
US10282100B2 (en) | 2014-08-19 | 2019-05-07 | Samsung Electronics Co., Ltd. | Data management scheme in virtualized hyperscale environments |
US20160055058A1 (en) * | 2014-08-19 | 2016-02-25 | Hongzhong Zheng | Memory system architecture |
US10002043B2 (en) * | 2014-08-19 | 2018-06-19 | Samsung Electronics Co., Ltd. | Memory devices and modules |
US10437479B2 (en) * | 2014-08-19 | 2019-10-08 | Samsung Electronics Co., Ltd. | Unified addressing and hierarchical heterogeneous storage and memory |
US10002044B2 (en) | 2014-08-19 | 2018-06-19 | Samsung Electronics Co., Ltd. | Memory devices and modules |
US9594623B2 (en) * | 2015-03-24 | 2017-03-14 | Nxp Usa, Inc. | System on chip and method of updating program code on a system on chip |
US9916091B2 (en) | 2015-07-13 | 2018-03-13 | Samsung Electronics Co., Ltd. | Memory system architecture |
KR20180051706A (ko) | 2016-11-07 | 2018-05-17 | 삼성전자주식회사 | 어드레스 맵핑 테이블의 에러 정정을 수행하는 메모리 시스템 |
FR3077655A1 (fr) * | 2018-02-05 | 2019-08-09 | Proton World International N.V. | Gestion d'une memoire non volatile |
KR102398540B1 (ko) * | 2018-02-19 | 2022-05-17 | 에스케이하이닉스 주식회사 | 메모리 장치, 반도체 장치 및 반도체 시스템 |
JP7177338B2 (ja) * | 2018-09-06 | 2022-11-24 | 富士通株式会社 | メモリコントローラ装置、メモリコントローラ装置を有するメモリ装置及びメモリコントロール方法 |
US11132253B2 (en) * | 2018-12-06 | 2021-09-28 | Micron Technology, Inc. | Direct-input redundancy scheme with dedicated error correction code circuit |
KR20230019573A (ko) | 2021-08-02 | 2023-02-09 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6396779A (ja) * | 1986-10-09 | 1988-04-27 | Canon Inc | デ−タ記録方式 |
US20030088813A1 (en) * | 2001-10-29 | 2003-05-08 | Mcclellan Paul J. | Targeted data protection |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3178909B2 (ja) * | 1992-01-10 | 2001-06-25 | 株式会社東芝 | 半導体メモリ装置 |
JPH07319776A (ja) * | 1994-05-27 | 1995-12-08 | Sony Corp | 情報の保管方法 |
US6017146A (en) * | 1995-05-31 | 2000-01-25 | Sanyo Electric Co., Ltd. | Error correction device |
US6804799B2 (en) | 2001-06-26 | 2004-10-12 | Advanced Micro Devices, Inc. | Using type bits to track storage of ECC and predecode bits in a level two cache |
EP1548602B1 (en) * | 2002-10-02 | 2008-03-12 | Matsushita Electric Industrial Co., Ltd. | Non-volatile storage device control method |
JP4073799B2 (ja) * | 2003-02-07 | 2008-04-09 | 株式会社ルネサステクノロジ | メモリシステム |
JP3940713B2 (ja) * | 2003-09-01 | 2007-07-04 | 株式会社東芝 | 半導体装置 |
US7210077B2 (en) * | 2004-01-29 | 2007-04-24 | Hewlett-Packard Development Company, L.P. | System and method for configuring a solid-state storage device with error correction coding |
JP4953648B2 (ja) | 2006-02-03 | 2012-06-13 | パナソニック株式会社 | 不揮発性記憶装置およびメモリコントローラ |
JP2007257791A (ja) * | 2006-03-24 | 2007-10-04 | Fujitsu Ltd | 半導体記憶装置 |
US7739576B2 (en) * | 2006-08-31 | 2010-06-15 | Micron Technology, Inc. | Variable strength ECC |
US7900118B2 (en) * | 2007-02-12 | 2011-03-01 | Phison Electronics Corp. | Flash memory system and method for controlling the same |
JP5057796B2 (ja) * | 2007-02-14 | 2012-10-24 | 株式会社東芝 | 半導体メモリ情報蓄積装置とその不良部位対処方法 |
-
2008
- 2008-12-30 KR KR1020080136866A patent/KR101042197B1/ko not_active IP Right Cessation
-
2009
- 2009-11-03 CN CN2009801534658A patent/CN102272855A/zh active Pending
- 2009-11-03 JP JP2011544355A patent/JP2012514266A/ja active Pending
- 2009-11-03 EP EP09836287A patent/EP2383750A4/en not_active Withdrawn
- 2009-11-03 WO PCT/KR2009/006426 patent/WO2010076966A2/ko active Application Filing
- 2009-11-03 US US13/142,605 patent/US8738987B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6396779A (ja) * | 1986-10-09 | 1988-04-27 | Canon Inc | デ−タ記録方式 |
US20030088813A1 (en) * | 2001-10-29 | 2003-05-08 | Mcclellan Paul J. | Targeted data protection |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182292A (zh) * | 2013-05-21 | 2014-12-03 | 华为技术有限公司 | 一种数据存储方法及装置 |
CN104346234A (zh) * | 2013-08-09 | 2015-02-11 | 华为技术有限公司 | 一种内存访问的方法、设备及系统 |
CN104346234B (zh) * | 2013-08-09 | 2017-09-26 | 华为技术有限公司 | 一种内存访问的方法、设备及系统 |
US9772891B2 (en) | 2013-08-09 | 2017-09-26 | Huawei Technologies Co., Ltd. | Memory access method, device, and system |
CN106233258A (zh) * | 2014-04-30 | 2016-12-14 | 微软技术许可有限责任公司 | 可变宽度纠错 |
CN106233258B (zh) * | 2014-04-30 | 2019-05-14 | 微软技术许可有限责任公司 | 可变宽度纠错 |
CN109937449A (zh) * | 2016-11-08 | 2019-06-25 | 美光科技公司 | 存储器管理 |
Also Published As
Publication number | Publication date |
---|---|
US20110271164A1 (en) | 2011-11-03 |
KR101042197B1 (ko) | 2011-06-20 |
US8738987B2 (en) | 2014-05-27 |
KR20100078568A (ko) | 2010-07-08 |
WO2010076966A3 (ko) | 2010-08-19 |
WO2010076966A2 (ko) | 2010-07-08 |
JP2012514266A (ja) | 2012-06-21 |
EP2383750A4 (en) | 2012-07-04 |
EP2383750A2 (en) | 2011-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102272855A (zh) | 存储器控制器及存储器管理方法 | |
US10007431B2 (en) | Storage devices configured to generate linked lists | |
US10540115B2 (en) | Controller adaptation to memory program suspend-resume | |
US8621139B2 (en) | Data writing method for writing data into block of multi-level cell NAND flash memory by skipping a portion of upper page addresses and storage system and controller using the same | |
US8332579B2 (en) | Data storage apparatus and method of writing data | |
US9923562B1 (en) | Data storage device state detection on power loss | |
US8046645B2 (en) | Bad block identifying method for flash memory, storage system, and controller thereof | |
JP5612514B2 (ja) | 不揮発性メモリコントローラ及び不揮発性記憶装置 | |
EP2646919B1 (en) | Transaction log recovery | |
US8990476B2 (en) | Power interrupt management | |
US7757041B2 (en) | Storage device using nonvolatile cache memory and control method thereof | |
US20130151761A1 (en) | Data storage device storing partitioned file between different storage mediums and data management method | |
US9423960B2 (en) | Methods of operating memory devices within a communication protocol standard timeout requirement | |
US20090198875A1 (en) | Data writing method for flash memory, and controller and system using the same | |
US20070168607A1 (en) | Storage device using nonvolatile cache memory and control method thereof | |
CN110674056B (zh) | 一种垃圾回收方法及装置 | |
CN102356382A (zh) | Dram缓冲器管理装置和方法 | |
US9123443B2 (en) | Memory device, memory management device, and memory management method | |
TWI421870B (zh) | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 | |
TW202011194A (zh) | 快閃記憶體控制器及相關電子裝置 | |
US20090027796A1 (en) | Information recording device and control method therefor | |
JP5579135B2 (ja) | データ記憶装置、メモリ制御装置及びメモリ制御方法 | |
CN102362263A (zh) | Ssd控制器与ssd控制器的操作方法 | |
CN104035886A (zh) | 磁盘重映射方法、装置及电子设备 | |
KR100955157B1 (ko) | 메모리 장치 및 메모리 장치의 관리 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20111207 |