CN106250050A - 用于数据传输中的实时空白页检测的方法和装置 - Google Patents
用于数据传输中的实时空白页检测的方法和装置 Download PDFInfo
- Publication number
- CN106250050A CN106250050A CN201510445431.3A CN201510445431A CN106250050A CN 106250050 A CN106250050 A CN 106250050A CN 201510445431 A CN201510445431 A CN 201510445431A CN 106250050 A CN106250050 A CN 106250050A
- Authority
- CN
- China
- Prior art keywords
- page
- data
- memory
- blank
- detection
- 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.)
- Granted
Links
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
- 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
- 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
- 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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1096—Parity calculation or recalculation after configuration or reconfiguration of the system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- 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/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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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/50—Marginal testing, e.g. race, voltage or current testing
- G11C29/50004—Marginal testing, e.g. race, voltage or current testing of threshold voltage
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- 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/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- 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
-
- 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/50—Marginal testing, e.g. race, voltage or current testing
- G11C2029/5004—Voltage
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)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本公开涉及用于数据传输中的实时空白页检测的方法和装置。一种用于基于实时空白页检测从第一存储器读取数据到第二存储器的装置,包括用于从第一存储器读取数据页的存储器控制器,用于缓冲该数据页的一部分的缓冲器,用于基于页数据的预定部分产生指示该页是否是空白页的预检测结果的空白页预检测单元,用于处理全部的页数据以识别页类型的数据处理单元,以及用于基于预检测结果通知存储器控制器从第一存储器读取数据页并使能数据处理单元的控制单元。
Description
技术领域
本发明涉及用于在不同的存储器之间传输数据的方法和装置,更特别地,涉及对从存储器读取的数据的实时空白页检测。
背景技术
图1示出了用于在闪存存储器102和外部存储器104之间传输数据的常规装置100。闪存存储器102可以是包含以编程页为单位存储的信息(数据)的任何类型的存储器,而外部存储器104可以是片上或片外随机存取存储器(RAM)。装置100用于在低成本、基于页的闪存存储器102与高成本RAM(外部存储器104)之间传输数据。由于对闪存存储器102编程或从闪存存储器102读取高的错误可能性,因此,装置100通常执行增强的算法以从这些错误中恢复。当被装置100从外部存储器104编程到闪存存储器102时,数据依次经过:装置100的接口106;数据处理单元108,使用码组对数据进行编码;随机化器/去随机化器110,使数据随机化以对抗噪声;以及缓冲器112,缓冲编码的随机化的数据的一部分(在其被利用存储器控制器114编程到闪存存储器102中之前)。由于随机化,存储在闪存存储器102中的编程页通常包含相等地分布的“0”和“1”位(bit)。由寄存器实现的缓冲器通常具有较小的存储容量(诸如若干个32位的字)以节约面积。闪存存储器102逐页地存储数据。因此,当用装置100从闪存存储器102读取数据页时,该页数据也依次经过:存储器控制器114,用于从闪存存储器102读取数据页;缓冲器112,用于缓冲数据页的一部分;随机化器/去随机化器110,用于对数据页进行去随机化;以及数据处理单元108,用于解码已经流出装置100的去随机化的数据页并存储在外部存储器104中,而由于计算的复杂性,实际的错误位置计算得晚一段时间。用于编码和解码的码组是纠错码(ECC),诸如BCH码。因此,存储在外部存储器104中的解码的数据将再流入数据处理单元108以进行纠错。
除了具有编程数据的多个编程页外,闪存存储器102还可以包括一些仅包含“0xFF”字节的空白页,和一些不能被正确编程的坏页。一些坏页之前在制造期间已经被检测和标记,而一些坏页是由于逐渐的劣化而随着时间流逝从好页转变为坏页。由于通过将数据和由随机化器/去随机化器110所产生的随机序列进行异或运算而执行随机化和去随机化,因此去随机化的空白页将包含非0xFF字节,因此,当数据页的一部分在被去随机化后纠错处理失败时,必须再次从闪存存储器102读取数据页,并跳过对整页空白页检测的去随机化将其传输到数据处理单元108。数据处理单元108通过扫描整页来检测数据页是否是空白页。
然而,再次从闪存存储器102读取数据页以进行空白页检测是费时的,并且当找到空白页时,外部存储器104已经包含了先前已经去随机化和解码的空白页的至少一部分数据。因此,使用0xFF字节填充外部存储器104以清除去随机化和解码的空白页的所述部分数据也占用时间。因此,期望找到一种用于实时空白页检测的方法以减少数据传输时间。
附图说明
通过参考下面对优选实施例的描述和附图,能够较好地理解本发明及其目的和优点,其中:
图1是用于在第一存储器和第二存储器之间传输数据的常规装置的示意性框图;
图2是根据本发明的一个实施例用于在第一存储器和第二存储器之间传输数据的装置的示意性框图;
图3示出了第一存储器中页的数据结构的两种类型;
图4示出了存储器页中元数据块的结构;
图5是根据本发明的另一个实施例用图2的装置从第一存储器读取数据的方法的流程图;
图6是图5的流程图中的读取-重试步骤的流程图。
具体实施方式
下面结合附图阐述的详细描述意图对本发明目前优选的实施例进行描述,而并非意图展示可以实践本发明的仅有的形式。应当理解的是,可以由意图包含在本公开的精神和范围之内的不同实施例来实现相同的或等效的功能。在整个附图中,相同的数字被用于指示相同的元件。此外,术语“包含”、“含有”或其任何其它变形意图覆盖非排他性的包括,从而包括一列元件或步骤的模块、电路、装置组件、结构和方法步骤并非仅包含那些元件或步骤,而是可以包含未被明确列出的或对这些模块、电路、装置组件或步骤来说固有的其它元件或步骤。在没有更多限制的情况下,“包括......”之后的元件或步骤并不排除包括该元件或步骤的附加的相同的元件或步骤的存在。
在一个实施例中,本发明提供了一种用于从第一存储器读取数据到第二存储器的装置。该装置包括:存储器控制器,用于从第一存储器读取至少一页数据;缓冲器,连接到存储器控制器,用于缓冲从第一存储器读取的该至少一页数据的一部分;空白页预检测单元,连接到缓冲器,用于基于至少一页中的数据的预定部分产生指示该至少一页是否是空白页的预检测结果;数据处理单元,连接到缓冲器和空白页预检测单元,用于处理该至少一页中的所有数据以识别该页的类型;以及控制单元,连接到存储器控制器、空白页预检测单元和数据处理单元,用于基于预检测结果通知存储器控制器从第一存储器读取该至少一页数据并使能数据处理单元。
在另一个实施例中,本发明提供一种由装置执行的从第一存储器读取数据到第二存储器的方法,其中该装置包括缓冲器和连接到该缓冲器的处理器。该方法包括:从第一存储器读取至少一页数据,基于存储在缓冲器中的该至少一页数据的预定部分产生指示至少一页是否是空白页的预检测结果,如果预检测结果指示该至少一页是空白页则基于该至少一页中的所有数据执行空白页检测,以及如果预检测结果或空白页检测指示该至少一页不是空白页则对该至少一页数据进行去随机化和解码。
现在参考图2,示出了根据本发明的一个实施例用于在第一存储器202和第二存储器204之间传输数据的装置200的框图。装置200可以通过硬件或软件实现,闪存存储器202可以是存储编程页的任何低成本的、基于页的可存取存储器芯片,以及外部存储器204可以是任何较高成本的、片上或片外RAM。装置200包括:存储器控制器206,用于从第一存储器202读取至少一页数据;缓冲器208,连接到存储器控制器206,用于缓冲从第一存储器202读取的该至少一页数据的一部分;以及控制单元210,连接到存储器控制器206,用于通知存储器控制器206从第一存储器202读取该至少一页数据。缓冲器208优选地为具有较小存储容量(诸如若干个32位字)的先进先出(FIFO)缓冲器。在一个优选的实施例中,存储器控制器206基于由控制单元210提供的用于第一存储器的阈值电压配置组而从第一存储器202读取该至少一页数据。该阈值电压配置组包括至少一个阈值电压配置,其指示逻辑值与第一存储器的单个信息存储单元内的对应电压范围之间的映射。
装置200进一步包括:空白页预检测单元212,连接到缓冲器208,用于基于所述至少一页中的数据的预定部分产生指示该至少一页是否是空白页的预检测结果;以及数据处理单元214,连接到缓冲器208、控制单元210和空白页预检测单元212,用于基于该至少一页中的所有数据识别该页的类型。由控制单元210基于预检测结果来控制数据处理单元214的操作。
图3示出了第一存储器202中的页的第一和第二结构类型300和302。在具有第一数据结构类型300的页中,数据页包括:在页起始处的元数据块304,用于存储该页的信息,诸如坏页指示或一些用于坏页指示的被交换的字节或其它控制字节;随后是多个交织的block[n]d块306和block[n]p块308,其中block[n]d块306用来存储用于解码和编码的ECC码的系统部分,block[n]p块308用来存储用于对应的block[n]d块306的ECC码的奇偶校验部分。在具有第二数据结构类型302的页中,数据页包括:存储该页的信息的元数据块304和存储用于该元数据块的ECC的奇偶校验部分的元数据块310,随后是多个交织的block[n]d块306和block[n]p块308,其中block[n]d块306用来存储ECC的系统部分,block[n]p块308用来存储用于block[n]d块的ECC码的奇偶校验部分。在一个优选的实施例中,用于空白页预检测的预定部分是页的元数据块304。
图4示出了具有结构类型300和302中的一个的页的元数据块400的详细结构。元数据块400的容量被配置为128位,包括4个字WORD_0~WORD_3。如图4所示,元数据块400具有:占用部分402,其具有至少一个字节的容量以用于包含页信息;以及非占用部分404。在图4所示的例子中,占用部分402是第一字WORD_0的前两个字节BYTE_0和BYTE_1,而非占用部分404具有112位的容量包括14字节。对于编程页,非占用部分404被以0x00字节填充。然而,如果页是空白页,则非占用部分404理想情况下被以0xFF字节填充,或者由于噪声仅包含有限数目的“0”位。
返回参考图2,空白页预检测单元212通过对非占用部分404中的“1”或“0”位中的一个计数并将非占用部分404中的“1”或“0”中的一个的数目与预定阈值进行比较来产生预检测结果。预定阈值优选地被设置为非占用部分404中的位数目的一半。例如,空白页预检测单元212对非占用部分404中的1计数,并且预定阈值被设置为56,其是用于图4的元数据块400的非占用部分404中位数目的一半。如果非占用部分404中“1”位的数目大于预定阈值,则空白页预检测单元212预检测出该页是空白页。在一个优选实施例中,空白页预检测单元212产生预检测完成信号,与由缓冲器208产生的读数据有效信号协同,用于指示数据处理单元214从缓冲器208读取数据,并且空白页预检测单元212还向控制单元210指示预检测结果。
数据处理单元214包括由控制单元210基于预检测结果分别使能的去随机化器216、解码器218和空白页检测器220。
如果预检测结果指示该页是空白页,则控制单元210禁用去随机化器216和解码器218,并使能空白页检测器220以通过扫描页中的所有数据再次检查该页是否是空白页而产生最终的空白页检测结果。如果最终空白页检测结果显示该页是空白页则跳过该页。
如果预检测结果或最终空白页检测结果显示该页不是空白页,则控制单元210使能去随机化器216和解码器218,并禁用空白页检测器220以用于进一步处理。在一个优选的实施例中,如果预检测结果指示该页不是空白页,则去随机化器216通优选地过将数据和去随机化器216产生的随机序列进行异或运算对页中的数据进行去随机化,并且解码器218用码组解码该页中的去随机化的数据并对解码的数据执行纠错处理,其中该码组属于循环纠错码的类别,诸如BCH码。如果最终空白页检测结果显示该页不是空白页,则将执行读取-重试操作,其中控制器单元210通知存储器控制器206基于第二阈值电压配置组再次从第一存储器202读取数据页,并且数据处理单元214对基于第二阈值电压配置组读取的该页中的数据进行去随机化和解码。类似地,如果解码的页中的数据纠错失败,则将基于另一阈值电压配置组执行另一读取-重试操作。在一个优选的实施例中,控制单元210包括多个阈值电压配置组。
如果该页数据通过了基于一组阈值电压配置的解码和纠错处理,则该页是编程页,并且解码的数据通过接口222存储在外部存储器204中。在一个优选的实施例中,接口222是用于访问第二存储器的主接口,例如ARM公司使用的AXI协议。然而,如果在已经尝试了所有的所述多个阈值电压组之后,从闪存存储器202读取的数据页仍纠错处理失败,则该页被识别为坏页并将被跳过。
图5是根据本发明的另一个实施例用于操作图2的装置200来从第一存储器202读取数据到外部存储器204的方法的流程图。装置200可以用硬件或软件实现,闪存存储器202可以是存储多个编程数据的任何低成本的、基于页的可存取存储器芯片,而外部存储器204可以是任何较高成本的片上或片外RAM。
在步骤502处,装置202的存储器控制器206从闪存存储器202读取数据页。在一个优选的实施例中,存储器控制器206基于阈值电压配置组从第一存储器202读取至少一页数据。该阈值电压配置组包括指示逻辑值和第一存储器的单个信息存储单元内的对应的电压范围之间的映射的至少一个阈值电压配置。在一个优选的实施例中,已经被存储器控制器206读出的该页中的数据的一部分在被转送到下一步之前被存储在缓冲器208中。缓冲器208优选地是具有较小的存储容量(诸如若干个32位字)的由寄存器实现的FIFO缓冲器。
在步骤504处,基于存储在缓冲器208中的页中的数据的预定部分执行空白页预检测处理以检测该页是否是空白页。在一个优选的实施例中,用于空白页预检测的预定部分是该页起始处的元数据块304,如图3所示,其中元数据模块304用于存储页信息,诸如坏页指示或一些用于坏页指示的被交换的字节或其它控制字节。如图4所示,元数据块400具有:占用部分402,其具有至少一个字节的容量,用于包含该页的信息,以及非占用部分404。对于编程页,非占用部分404被以0x00字节填充。然而,如果该页是空白页,则非占用部分404在理想情况下被以0xFF字节填充,或者由于噪声仅包含有限数目的“0”位。
在一个优选的实施例中,通过计算非占用部分404中的“1”和“0”中的一个并将非占用部分404中“1”和“0”中的一个的数目与预定阈值进行比较来执行空白页预检测。预定阈值优选地被设置为非占用部分404中的位数目的一半。例如,如果“1”位的数目大于非占用部分404中位数目的一半,则该页被预检测为空白页,否则,该页被预检测为非空白页。
在步骤506处,如果该页被预检测为非空白页,那么在步骤508和510处,优选地通过将页中的数据与随机序列进行异或运算对页中的数据进行去随机化,并基于码组对其解码。在一个优选的实施例中,解码包括对解码的数据进行纠错,其中该码组属于循环纠错码的类别,诸如BCH码。
在步骤512处,如果解码成功,即,错误(如果有的话)已经在解码期间被纠正),那么在步骤514处,该页被识别为编程页,并且将去随机化和解码的该页中的数据存储在外部存储器204中。然而,如果解码失败(即,在解码期间一些错误不能被纠正),那么在步骤516处,执行读取-重试操作。
图6是图5的流程图中读取-重试操作516的详细流程图。
在步骤600处,用第二阈值电压配置组代替用于从存储器202读取数据页的阈值电压配置组。
在步骤602处,存储器控制器206基于第二阈值电压配置组从第一存储器202读取数据页。
在步骤604和606处,优选地通过将数据页与随机序列进行异或运算对数据页进行去随机化并使用ECC码组对数据页进行解码。
返回图5,在步骤518处,如果基于第二阈值电压配置组读取的页的数据被成功解码,那么在步骤514处,该页被识别为编程页,并且将去随机化和解码的基于第二阈值电压配置组读取的页的数据存储在外部存储器204中。否则,在步骤520处,基于其它可用阈值电压配置组重复读取-重试操作。在步骤522处,如果在已经尝试了所有可用的阈值电压配置组之后,从闪存存储器202读取的数据页还不能被成功解码,则该页被识别为坏页并将被跳过
返回参考步骤506,如果该页被预检测为空白页,则前进到步骤522,通过扫描页中的全部数据执行空白页检测。
在步骤522处,如果基于空白页检测处理该页被检测为空白页,那么在步骤524处,跳过该空白页。如果基于空白页检测处理该页被检测为非空白页,则前进到步骤516,将如上所述执行读取-重试操作,直到页中的数据被成功解码并存储在外部存储器204中或者该页被识别为坏页并被跳过。
对本发明的优选实施例的描述已经出于解释和描述的目的被呈现,而不是意图穷举或将本发明限定为所公开的形式。本领域技术人员可以意识到,可以在不背离其广义发明概念的情况下对上述实施例进行改变。因此,应当理解,该发明并不限于所公开的特定实施例,而是覆盖如由附加权利要求所限定的本发明的精神和范围内的修改。
Claims (10)
1.用于从第一存储器读取数据到第二存储器的装置,所述装置包括:
存储器控制器,用于从所述第一存储器读取至少一页数据;
缓冲器,连接到所述存储器控制器,用于缓冲从所述第一存储器读取的所述至少一页数据的一部分;
空白页预检测单元,连接到所述缓冲器,用于基于所述至少一页中的数据的预定部分产生指示所述至少一页是否是空白页的预检测结果;
数据处理单元,连接到所述缓冲器和所述空白页预检测单元,用于处理所述至少一页中的所有数据以识别所述页的类型;以及
控制单元,连接到所述存储器控制器、所述空白页预检测单元和所述数据处理单元,用于基于所述预检测结果通知所述存储器控制器从所述第一存储器读取所述至少一页数据并使能所述数据处理单元。
2.根据权利要求1所述的装置,其中所述数据处理单元包括:
空白页检测器,用于基于所述至少一页中的所有数据检测所述至少一页是否是空白页,其中如果所述预检测结果指示所述至少一页是空白页,则使能所述空白页检测器;
去随机化器,用于对所述至少一页数据进行去随机化;以及
解码器,连接到所述去随机化器,用于通过解码所述至少一页中的去随机化的数据来识别所述至少一页是否是编程页或坏页,
其中如果所述预检测结果或所述空白页检测器指示所述至少一页不是空白页,则使能所述去随机化器和所述解码器并禁用所述空白页检测器。
3.根据权利要求2所述的装置,进一步包括接口单元,连接到所述页识别单元,用于如果所述页识别单元识别所述至少一页是编程页,则将所述至少一页数据传输到所述第二存储器,其中如果所述解码器成功地解码了所述至少一页中的去随机化的数据则识别所述编程页。
4.根据权利要求3所述的装置,其中所述存储器控制器基于由所述控制单元提供的阈值电压配置组从所述第一存储器读取所述至少一页数据,其中阈值电压组包括指示逻辑值与所述第一存储器的单个信息存储单元内的对应电压范围之间的映射的至少一个阈值电压配置。
5.根据权利要求4所述的装置,其中所述控制单元存储多个阈值电压配置组,其中当对基于第一阈值电压配置组读取的所述至少一页数据解码失败时,所述控制单元使能所述存储器控制器、去随机化器和解码器以基于第二阈值电压配置组执行读取-重试操作。
6.根据权利要求5所述的装置,其中在所述读取-重试操作中,所述存储器控制器基于所述第二阈值电压配置组从所述第一存储器读取所述至少一页数据,所述去随机化器对基于所述第二阈值电压组读取的所述至少一页数据进行去随机化,并且所述解码器对基于所述第二阈值电压配置组读取的所述至少一页数据进行解码。
7.根据权利要求6所述的装置,其中在已经执行了基于所有多个阈值电压配置组的读取-重试操作之后,对所述至少一页数据的解码仍失败时,所述控制单元指示所述至少一页是坏页。
8.由装置执行的从第一存储器读取数据到第二存储器的方法,其中所述装置包括缓冲器和连接到所述缓冲器的处理器,所述方法包括:
从所述第一存储器读取至少一页数据;
基于存储在所述缓冲器中的所述至少一页数据的预定部分产生指示所述至少一页是否是空白页的预检测结果;
如果所述预检测结果指示所述至少一页是空白页,则基于所述至少一页中的所有数据执行空白页检测;以及
如果所述预检测结果或所述空白页检测指示所述至少一页不是空白页,则对所述至少一页数据进行去随机化和解码。
9.根据权利要求8所述的方法,进一步包括将所述至少一页数据存储到所述第二存储器。
10.根据权利要求9所述的方法,其中基于阈值电压配置组从所述第一存储器读取所述至少一页数据,其中所述阈值电压配置组包括指示逻辑值与所述第一存储器的单个信息存储单元内的对应电压范围之间的映射的至少一个阈值电压配置;并且
所述方法进一步包括,在对基于第一阈值电压配置组读取的所述至少一页数据解码失败时,使用第二阈值电压配置组执行读取-重试操作。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510445431.3A CN106250050B (zh) | 2015-06-10 | 2015-06-10 | 用于数据传输中的实时空白页检测的方法和装置 |
US14/946,780 US10521133B2 (en) | 2015-06-10 | 2015-11-20 | Method and apparatus for real-time blank page detection in data transmission |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510445431.3A CN106250050B (zh) | 2015-06-10 | 2015-06-10 | 用于数据传输中的实时空白页检测的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106250050A true CN106250050A (zh) | 2016-12-21 |
CN106250050B CN106250050B (zh) | 2021-02-05 |
Family
ID=57221871
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510445431.3A Active CN106250050B (zh) | 2015-06-10 | 2015-06-10 | 用于数据传输中的实时空白页检测的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10521133B2 (zh) |
CN (1) | CN106250050B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783005A (zh) * | 2017-11-14 | 2019-05-21 | 慧荣科技股份有限公司 | 控制记忆装置的方法、记忆装置、及其控制器和电子装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11907571B2 (en) * | 2020-07-13 | 2024-02-20 | SK Hynix Inc. | Read threshold optimization systems and methods using domain transformation |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080151618A1 (en) * | 2006-12-24 | 2008-06-26 | Sandisk Il Ltd. | Flash memory device and system with randomizing for suppressing errors |
CN101965559A (zh) * | 2007-12-27 | 2011-02-02 | 普莱恩特技术股份有限公司 | 包括将处理器与内部存储器连接的交叉切换器的用于闪存的存储控制器 |
US20110040928A1 (en) * | 2009-08-13 | 2011-02-17 | Wu-Chi Kuo | Method for identifying a page of a block of flash memory, and associated memory device |
US8351290B1 (en) * | 2008-09-12 | 2013-01-08 | Marvell International Ltd. | Erased page detection |
US20130238876A1 (en) * | 2012-03-07 | 2013-09-12 | International Business Machines Corporation | Efficient Inline Data De-Duplication on a Storage System |
CN104217761A (zh) * | 2013-05-31 | 2014-12-17 | 慧荣科技股份有限公司 | 数据储存装置及其错误校正方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5930706A (en) | 1995-11-29 | 1999-07-27 | Ericsson Inc. | Detecting messages transmitted over a communications channel such as a paging channel |
JP2004289496A (ja) | 2003-03-20 | 2004-10-14 | Ricoh Co Ltd | 画像再生装置、画像再生方法およびこの方法をコンピュータに実行させるためのプログラム |
EP1993611A4 (en) * | 2006-03-16 | 2013-05-22 | Alnylam Pharmaceuticals Inc | RNAi MODULATION OF TGF-BETA AND THERAPEUTIC USES |
JP4567771B2 (ja) | 2008-07-07 | 2010-10-20 | シャープ株式会社 | 原稿読取装置、並びに、原稿読取装置を備える画像送信装置および画像形成装置 |
TWI438778B (zh) | 2010-03-25 | 2014-05-21 | Silicon Motion Inc | 用來抑制資料錯誤之方法以及相關之記憶裝置及其控制器 |
US8417880B2 (en) | 2010-11-01 | 2013-04-09 | Hong Kong Applied Science and Technology Research Institute Company Limited | System for NAND flash parameter auto-detection |
JP5179559B2 (ja) | 2010-11-12 | 2013-04-10 | シャープ株式会社 | 画像処理システムを制御する制御装置、画像形成装置、画像読取装置、制御方法、画像処理プログラム及びコンピュータ読み取り可能な記録媒体 |
JP2012129910A (ja) | 2010-12-17 | 2012-07-05 | Canon Inc | 画像処理装置、方法およびプログラム |
KR102050729B1 (ko) * | 2013-02-12 | 2019-12-02 | 삼성전자 주식회사 | 메모리 시스템 |
-
2015
- 2015-06-10 CN CN201510445431.3A patent/CN106250050B/zh active Active
- 2015-11-20 US US14/946,780 patent/US10521133B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080151618A1 (en) * | 2006-12-24 | 2008-06-26 | Sandisk Il Ltd. | Flash memory device and system with randomizing for suppressing errors |
CN101965559A (zh) * | 2007-12-27 | 2011-02-02 | 普莱恩特技术股份有限公司 | 包括将处理器与内部存储器连接的交叉切换器的用于闪存的存储控制器 |
US8351290B1 (en) * | 2008-09-12 | 2013-01-08 | Marvell International Ltd. | Erased page detection |
US20110040928A1 (en) * | 2009-08-13 | 2011-02-17 | Wu-Chi Kuo | Method for identifying a page of a block of flash memory, and associated memory device |
US20130238876A1 (en) * | 2012-03-07 | 2013-09-12 | International Business Machines Corporation | Efficient Inline Data De-Duplication on a Storage System |
CN104217761A (zh) * | 2013-05-31 | 2014-12-17 | 慧荣科技股份有限公司 | 数据储存装置及其错误校正方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783005A (zh) * | 2017-11-14 | 2019-05-21 | 慧荣科技股份有限公司 | 控制记忆装置的方法、记忆装置、及其控制器和电子装置 |
CN109783005B (zh) * | 2017-11-14 | 2022-04-12 | 慧荣科技股份有限公司 | 控制记忆装置的方法、记忆装置、及其控制器和电子装置 |
Also Published As
Publication number | Publication date |
---|---|
US20160328164A1 (en) | 2016-11-10 |
US10521133B2 (en) | 2019-12-31 |
CN106250050B (zh) | 2021-02-05 |
US20180039432A9 (en) | 2018-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391026B (zh) | 闪存装置及闪存存储管理方法 | |
CN107403646B (zh) | 闪存装置及闪存存储管理方法 | |
KR100331139B1 (ko) | 에러 위치지정 코드를 사용하여 멀티레벨 셀 메모리를 정정하는방법 및 장치 | |
US7076723B2 (en) | Error correction codes | |
US9575125B1 (en) | Memory device with reduced test time | |
CN111710358B (zh) | 闪存装置、闪存控制器及闪存存储管理方法 | |
CN101477481A (zh) | 一种自动纠错系统及方法 | |
CN109117382A (zh) | 用于对经擦除的闪存页扫描的方法和系统 | |
CN108108263B (zh) | 一种固态硬盘的数据处理方法及装置 | |
US20240154624A1 (en) | Flash memory apparatus and storage management method for flash memory | |
CN106250050A (zh) | 用于数据传输中的实时空白页检测的方法和装置 | |
CN106528437A (zh) | 数据储存系统与其相关方法 | |
CN105575439B (zh) | 一种存储单元失效纠错的方法及存储器 | |
US20160041861A1 (en) | Method and device for monitoring data error status in a memory | |
US9361180B2 (en) | Storing data by an ECC memory | |
CN106158031B (zh) | 半导体存储器以及数据写入方法 | |
CN114203252A (zh) | 非易失存储器的坏块检测方法、装置、设备及存储介质 | |
US20160117218A1 (en) | Monitoring data error status in a memory | |
TWI855978B (zh) | 快閃記憶體裝置及快閃記憶體儲存管理方法 | |
CN114911646A (zh) | 专用存储芯片的比特位翻转校验方法及存储系统 | |
CN118227371A (zh) | 数据存储方法、数据读取方法、存储控制器、存储设备以及电子设备 | |
CN112306733A (zh) | 存储器装置、存储器控制器及其数据存取方法 | |
TW202431265A (zh) | 快閃記憶體裝置及快閃記憶體儲存管理方法 | |
TW202433301A (zh) | 快閃記憶體裝置、快閃記憶體控制器及快閃記憶體儲存管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Texas in the United States Applicant after: NXP America Co Ltd Address before: Texas in the United States Applicant before: Fisical Semiconductor Inc. |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |