CN105653391B - 数据存取方法、存储器控制电路单元及存储器储存装置 - Google Patents
数据存取方法、存储器控制电路单元及存储器储存装置 Download PDFInfo
- Publication number
- CN105653391B CN105653391B CN201410647163.9A CN201410647163A CN105653391B CN 105653391 B CN105653391 B CN 105653391B CN 201410647163 A CN201410647163 A CN 201410647163A CN 105653391 B CN105653391 B CN 105653391B
- Authority
- CN
- China
- Prior art keywords
- data
- virtual
- bit
- generate
- error checking
- 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
Landscapes
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种用于可复写式非易失性存储器组件的数据存取方法、存储器控制电路单元及存储器储存装置。本方法包括:将虚拟数据填补至第一数据以产生第二数据,以及将第二数据与对应第二数据的错误检查与校正码写入至一第一实体编程单元。本方法还包括:从所述第一实体编程单元中读取数据串,其中所述数据串包括第三数据与所述错误检查与校正码。本方法还包括:当无法通过错误检查与校正码来校正第三数据时,依据虚拟数据的态样来调整所述第三数据以产生第四数据,并使用所述错误检查与校正码来校正所述第四数据以获得已校正数据,其中已校正数据相同于第二数据。
Description
技术领域
本发明是有关于一种数据存取方法,且特别是有关于一种用于可复写式非易失性存储器组件的数据存取方法、存储器控制电路单元及存储器储存装置。
背景技术
数字相机、手机与MP3在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于可复写式非易失性存储器(rewritable non-volatile memory)具有数据非挥发性、省电、体积小、无机械结构、读写速度快等特性,最适于可携式电子产品,例如笔记本电脑。固态硬盘就是一种以快闪存储器作为储存媒体的储存装置。因此,近年快闪存储器产业成为电子产业中相当热门的一环。
由于储存在可复写式非易失性存储器的数据可能会因各种因素(例如,存储单元的漏电、编程失败、损毁等)而产生错误比特,因此,在存储器储存系统中一般会配置错误检查与校正电路并为所储存的数据产生错误检查与校正码以确保数据的正确性。然而,当数据中的错误比特数目超过错误检查与校正电路所能检测与校正的错误比特数时,含有错误比特的数据就无法被校正,而造成数据遗失。
基此,如何能够校正更多个错误比特并确保数据的正确性是此领域技术人员所致力的目标。
发明内容
本发明提供一种数据存取方法、存储器控制电路单元及存储器储存装置,其能够校正更多错误比特,以确保数据的正确性与可靠度。
本发明的一范例实施例提出一种数据存取方法,用于可复写式非易失性存储器组件,其中此可复写式非易失性存储器组件包括多个实体抹除单元,且每一实体抹除单元包括多个实体编程单元。本数据存取方法包括:将虚拟数据填补至此第一数据以产生第二数据,产生对应此第二数据的错误检查与校正码,根据第二数据与此错误检查与校正码产生错误检查与校正码框,将此错误检查与校正码框写入至所述实体编程单元之中的第一实体编程单元,并且将逻辑地址映射至此第一实体编程单元。本数据存取方法还包括:接收读取指令,其中此读取指令指示从所述逻辑地址中读取数据;以及从此第一实体编程单元中读取错误检查与校正码框以获取读取数据串,其中此读取数据串包括第三数据与所述错误检查与校正码。本数据存取方法还包括:当无法通过错误检查与校正码来校正第三数据以获得已校正数据时,依据虚拟数据的态样来调整此第三数据以产生第四数据,并使用此错误检查与校正码来校正此第四数据以获得已校正数据,其中此已校正数据相同于第二数据;从此已校正数据中移除虚拟数据以获得第五数据。
在本发明的一范例实施例中,上述数据存取方法还包括:接收写入指令,其中所述写入指令指示将写入数据写入至所述逻辑地址;以及压缩所述写入数据以产生第一数据。
在本发明的一范例实施例中,上述数据存取方法还包括:解压缩所述第五数据以获得读取数据,其中所述读取数据相同于所述写入数据;以及传送所述读取数据以响应所述读取指令。
在本发明的一范例实施例中,上述数据存取方法还包括:将对应第一实体编程单元的虚拟数据的态样记录于一虚拟数据登录表中,其中此虚拟数据的态样包括此虚拟数据的长度。
在本发明的一范例实施例中,上述将虚拟数据填补至第一数据以产生第二数据的步骤包括:接续此第一数据的最后一个数据比特填入虚拟数据以产生此第二数据。并且,依据虚拟数据的态样来调整第三数据以产生第四数据的步骤包括:依据虚拟数据登录表识别对应第一实体编程单元的虚拟数据的长度,并且依据对应此第一实体编程单元的虚拟数据的长度,将排列在第三数据最后的多个数据比特以虚拟数据来取代以获得第四数据,其中排列在此第三数据最后的数据比特的长度是等于虚拟数据的长度。
在本发明的一范例实施例中,上述将错误检查与校正码框写入至实体编程单元之中的第一实体编程单元的步骤包括:将一虚拟数据信息和错误检查与校正码框写入至此第一实体编程单元,其中此虚拟数据信息记录对应此第一实体编程单元的虚拟数据的态样,且此虚拟数据的态样包括虚拟数据的长度。
在本发明的一范例实施例中,上述将虚拟数据填补至第一数据以产生第二数据的步骤包括:接续此第一数据的最后一个比特填入此虚拟数据以产生此第二数据。其中依据虚拟数据的态样来调整第三数据以产生第四数据的步骤包括:从第一实体编程单元中读取虚拟数据信息,依据所读取的虚拟数据信息识别对应第一实体编程单元的虚拟数据的长度,并且依据对应此第一实体编程单元的虚拟数据的长度,将排列在第三数据最后的多个数据比特以虚拟数据来取代以获得第四数据,其中所述排列在第三数据最后的数据比特的长度是等于虚拟数据的长度。
在本发明的一范例实施例中,上述虚拟数据具有多个数据比特,并且每一数据比特的值皆为第一值。
在本发明的一范例实施例中,上述将虚拟数据填补至第一数据以产生第二数据的步骤包括:接续此第一数据的最后一个比特填入虚拟数据以产生此第二数据。并且,依据虚拟数据的态样来调整第三数据以产生第四数据的步骤包括:从此第三数据的最后一个数据比特开始扫描此第三数据的每个数据比特,识别此第三数据之中的一组连续数据比特,并且将此第三数据之中接续在此组连续数据比特之后的至少一个数据比特的值以第一值来取代,其中此组连续数据比特的每一数据比特的值皆为第一值。
在本发明的一范例实施例中,上述将虚拟数据填补至第一数据以产生第二数据的步骤包括:接续此第一数据的最后一个比特填入虚拟数据以产生此第二数据。其中依据虚拟数据的态样来调整第三数据以产生第四数据的步骤包括:从此第三数据的最后一个数据比特开始扫描此第三数据的每个数据比特,识别此第三数据之中的一组连续数据比特与另一组连续数据比特,并且将此第三数据之中接续在此另一组连续数据比特之后的至少一个数据比特的值以第一值来取代,其中此组连续数据比特的每一数据比特的值皆为第一值,而另一组连续数据比特的每一数据比特的值皆为第二值,此第一值不同于此第二值并且此组连续数据比特是接续在另一组连续数据比特之后。
本发明的一范例实施例提出一种用于控制可复写式非易失性存储器组件的存储器控制电路单元。此存储器控制电路单元包括主机接口、存储器接口、存储器管理电路与数据压缩/解压缩电路。主机接口耦接至主机系统。存储器接口耦接至可复写式非易失性存储器组件,其中可复写式非易失性存储器组件具有多个实体抹除单元并且每一实体抹除单元包括多个实体编程单元。存储器管理电路耦接至主机接口与存储器接口,错误检查与校正电路耦接至存储器管理电路,且数据压缩/解压缩电路耦接至存储器管理电路。数据压缩/解压缩电路将一虚拟数据填补至第一数据以产生第二数据。错误检查与校正电路产生对应第二数据的错误检查与校正码。存储器管理电路还根据第二数据与错误检查与校正码产生错误检查与校正码框。存储器管理电路还下达指令序列以将错误检查与校正码框写入至实体编程单元之中的第一实体编程单元,并且将逻辑地址映射至此第一实体编程单元。存储器管理电路接收读取指令,其中此读取指令指示从此逻辑地址中读取数据。存储器管理电路下达指令序列以从第一实体编程单元中读取错误检查与校正码框以获取读取数据串,其中此读取数据串包括第三数据与错误检查与校正码。在此,当无法通过错误检查与校正码来校正第三数据以获得已校正数据时,存储器管理电路依据虚拟数据的态样来调整第三数据以产生第四数据,并且错误检查与校正电路使用此错误检查与校正码来校正第四数据以获得此已校正数据,其中此已校正数据相同于第二数据。存储器管理电路从已校正数据中移除虚拟数据以获得第五数据。
在本发明的一范例实施例中,上述存储器管理电路还接收写入指令,其中所述写入指令指示将写入数据写入至所述逻辑地址。数据压缩/解压缩电路压缩所述写入数据以产生所述第一数据。
在本发明的一范例实施例中,上述存储器管理电路解压缩所述第五数据以获得读取数据,其中所述读取数据相同于所述写入数据。并且存储器管理电路还传送所述读取数据以响应所述读取指令。
在本发明的一范例实施例中,上述存储器管理电路还将对应第一实体编程单元的虚拟数据的态样记录于虚拟数据登录表中,其中此虚拟数据的态样包括虚拟数据的长度。
在本发明的一范例实施例中,上述在将虚拟数据填补至第一数据以产生第二数据的操作中,数据压缩/解压缩电路还接续此第一数据的最后一个数据比特填入虚拟数据以产生此第二数据。此外,在依据虚拟数据的态样来调整第三数据以产生第四数据的操作中,存储器管理电路还依据虚拟数据登录表识别对应第一实体编程单元的虚拟数据的长度,并且依据对应此第一实体编程单元的虚拟数据的长度,将排列在第三数据最后的多个数据比特以虚拟数据来取代以获得第四数据,其中排列在第三数据最后的数据比特的长度是等于虚拟数据的长度。
在本发明的一范例实施例中,上述在将错误检查与校正码框写入至实体编程单元之中的第一实体编程单元的操作中,存储器管理电路还将虚拟数据信息和错误检查与校正码框写入至第一实体编程单元,其中此虚拟数据信息记录对应第一实体编程单元的虚拟数据的态样,且此虚拟数据的态样包括虚拟数据的长度。
在本发明的一范例实施例中,上述在将虚拟数据填补至第一数据以产生第二数据的操作中,数据压缩/解压缩电路还接续此第一数据的最后一个比特填入虚拟数据以产生此第二数据。此外,在依据虚拟数据的态样来调整第三数据以产生第四数据的操作中,存储器管理电路还从此第一实体编程单元中读取虚拟数据信息,依据所读取的虚拟数据信息识别对应第一实体编程单元的虚拟数据的长度,并且依据对应此第一实体编程单元的虚拟数据的长度,将排列在第三数据最后的多个数据比特以虚拟数据来取代以获得第四数据,其中排列在此第三数据最后的数据比特的长度是等于虚拟数据的长度。
在本发明的一范例实施例中,上述虚拟数据具有多个数据比特,并且每一数据比特的值皆为第一值。
在本发明的一范例实施例中,上述在将虚拟数据填补至第一数据以产生第二数据的操作中,数据压缩/解压缩电路还接续此第一数据的最后一个比特填入虚拟数据以产生此第二数据。此外,在依据虚拟数据的态样来调整第三数据以产生第四数据的操作中,存储器管理电路从此第三数据的最后一个数据比特开始扫描此第三数据的每个数据比特,识别此第三数据之中的一组连续数据比特,并且将此第三数据之中接续在此组连续数据比特之后的至少一个数据比特的值以第一值来取代,其中此组连续数据比特的每一数据比特的值皆为第一值。
在本发明的一范例实施例中,上述在将虚拟数据填补至第一数据以产生第二数据的操作中,数据压缩/解压缩电路还接续此第一数据的最后一个比特填入虚拟数据以产生此第二数据。此外,在依据虚拟数据的态样来调整第三数据以产生第四数据的操作中,存储器管理电路从此第三数据的最后一个数据比特开始扫描此第三数据的每个数据比特,识别此第三数据之中的一组连续数据比特与另一组连续数据比特,并且将此第三数据之中接续在此另一组连续数据比特之后的至少一个数据比特的值以第一值来取代,其中此组连续数据比特的每一数据比特的值皆为第一值,另一组连续数据比特的每一数据比特的值皆为第二值,此第一值不同于此第二值并且此组连续数据比特是接续在另一组连续数据比特之后。
本发明的一范例实施例提出一种存储器储存装置,其包括连接接口单元、可复写式非易失性存储器组件与存储器控制电路单元。连接接口单元用以耦接至主机系统。可复写式非易失性存储器组件具有多个实体抹除单元,且每一实体抹除单元包括多个实体编程单元。存储器控制电路单元耦接至连接接口单元与可复写式非易失性存储器组件。存储器控制电路单元将虚拟数据填补至第一数据以产生一第二数据,产生对应此第二数据的错误检查与校正码,根据此第二数据与此错误检查与校正码产生一错误检查与校正码框,将此错误检查与校正码框写入至实体编程单元之中的一第一实体编程单元,并且将此逻辑地址映射至此第一实体编程单元。存储器控制电路单元还接收读取指令,其中此读取指令指示从所述逻辑地址中读取数据。存储器控制电路单元还从第一实体编程单元中读取错误检查与校正码框以获取读取数据串,其中读取数据串包括第三数据与错误检查与校正码。存储器控制电路单元还当无法通过错误检查与校正码来校正第三数据以获得已校正数据时,依据虚拟数据的态样来调整此第三数据以产生第四数据,并使用此错误检查与校正码来校正此第四数据以获得已校正数据,其中此已校正数据相同于第二数据。存储器控制电路单元还从已校正数据中移除虚拟数据以获得第五数据。
在本发明的一范例实施例中,上述存储器控制电路单元还接收写入指令,并且此写入指令指示将写入数据写入至所述逻辑地址。并且存储器控制电路单元压缩此写入数据以产生所述第一数据。
在本发明的一范例实施例中,上述存储器控制电路单元解压缩所述第五数据以获得读取数据,其中此读取数据相同于所述写入数据。存储器控制电路单元还传送此读取数据以响应读取指令。
在本发明的一范例实施例中,上述存储器控制电路单元还将对应第一实体编程单元的虚拟数据的态样记录于虚拟数据登录表中,其中虚拟数据的态样包括虚拟数据的长度。
在本发明的一范例实施例中,上述将虚拟数据填补至第一数据以产生第二数据的操作中,存储器控制电路单元还接续此第一数据的最后一个数据比特填入虚拟数据以产生此第二数据。并且在依据虚拟数据的态样来调整第三数据以产生第四数据的操作中,存储器控制电路单元还依据虚拟数据登录表识别对应第一实体编程单元的虚拟数据的长度,并且依据对应此第一实体编程单元的虚拟数据的长度,将排列在第三数据最后的多个数据比特以虚拟数据来取代以获得第四数据,其中列在此第三数据最后的数据比特的长度是等于虚拟数据的长度。
在本发明的一范例实施例中,上述将错误检查与校正码框写入至实体编程单元之中的第一实体编程单元的操作中,存储器控制电路单元还将一虚拟数据信息和错误检查与校正码框写入至此第一实体编程单元,其中虚拟数据信息记录对应此第一实体编程单元的虚拟数据的态样,且此虚拟数据的态样包括虚拟数据的长度。
在本发明的一范例实施例中,上述在将虚拟数据填补至第一数据以产生第二数据的操作中,存储器控制电路单元还接续此第一数据的最后一个比特填入虚拟数据以产生此第二数据。此外,在依据虚拟数据的态样来调整第三数据以产生第四数据的操作中,存储器控制电路单元还从第一实体编程单元中读取虚拟数据信息,依据所读取的虚拟数据信息识别对应此第一实体编程单元的虚拟数据的长度,并且依据对应此第一实体编程单元的虚拟数据的长度,将排列在第三数据最后的多个数据比特以虚拟数据来取代以获得第四数据,其中排列在此第三数据最后的数据比特的长度是等于虚拟数据的长度。
在本发明的一范例实施例中,上述虚拟数据具有多个数据比特,并且每一数据比特的值皆为第一值。
在本发明的一范例实施例中,上述将虚拟数据填补至第一数据以产生第二数据的操作中,存储器控制电路单元还接续此第一数据的最后一个比特填入虚拟数据以产生此第二数据。此外,在依据虚拟数据的态样来调整第三数据以产生第四数据的操作中,存储器控制电路单元还从此第三数据的最后一个数据比特开始扫描此第三数据的每个数据比特,识别此第三数据之中的一组连续数据比特,并且将此第三数据之中接续在此组连续数据比特之后的至少一个数据比特的值以第一值来取代,其中此组连续数据比特的每一数据比特的值皆为第一值。
在本发明的一范例实施例中,上述将虚拟数据填补至第一数据以产生第二数据的操作中,存储器控制电路单元还接续此第一数据的最后一个比特填入此虚拟数据以产生此第二数据。此外,在依据虚拟数据的态样来调整第三数据以产生第四数据的操作中,存储器控制电路单元还从此第三数据的最后一个数据比特开始扫描此第三数据的每个数据比特,识别此第三数据之中的一组连续数据比特与另一组连续数据比特,并且将此第三数据之中接续在此另一组连续数据比特之后的至少一个数据比特的值以此第一值来取代,其中此组连续数据比特的每一数据比特的值皆为第一值,而另一组连续数据比特的每一数据比特的值皆为第二值,此第一值不同于此第二值并且此组连续数据比特是接续在另一组连续数据比特之后。
基于上述,本发明范例实施例的数据存取方法、存储器控制电路单元与存储器储存装置能够当无法通过错误检查与校正码来校正所读取的数据以获得已校正数据时,根据虚拟数据的态样来调整所读取的数据,由此可校正更多的错误比特并且确保所存取的数据的正确性,基此,有效地提升错误检查与校正码的数据校正能力。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1A是根据第一范例实施例所示出的主机系统与存储器储存装置的示意图;
图1B是根据第一范例实施例所示出的电脑、输入/输出装置与存储器储存装置的示意图;
图1C是根据第一范例实施例所示出的主机系统与存储器储存装置的示意图;
图2是根据第一范例实施例所示出的存储器储存装置的概要方块图;
图3是根据第一范例实施例所示出的存储器控制电路单元的概要方块图;
图4A与图4B是根据第一范例实施例所示出的管理实体抹除单元的范例示意图;
图5~图7是根据第一范例实施例所示出的写入数据至可复写式非易失性存储器组件的范例;
图8是根据第一范例实施例所示出的写入数据至实体编程单元的示意图;
图9是根据第一范例实施例所示出的从实体编程单元中读取数据的示意图;
图10A是根据第一范例实施例所示出的将虚拟数据的态记录于虚拟数据登录表的范例;
图10B是根据第一范例实施例所示出的通过虚拟数据的态样来调整所读取的数据以增强错误检查与校正码的校正能力的范例;
图11A是根据第一范例实施例所示出的数据写入方法的流程图;
图11B是根据第一范例实施例所示出的数据读取方法的流程图;
图12是根据第二范例实施例所示出的写入数据至实体编程单元的示意图;
图13是根据第二范例实施例所示出的通过虚拟数据的态样来调整所读取的数据以增强错误检查与校正码的校正能力的范例;
图14A与14B是根据第三范例实施例所示出的通过识别所读取的数据中的一组连续数据比特来调整所读取的数据的范例;
图15A与15B是根据第四范例实施例所示出的通过识别所读取的数据中的两组不同的连续数据比特来调整所读取的数据的范例。
附图标记说明:
1000:主机系统;
1100:电脑;
1102:微处理器;
1104:随机存取存储器(RAM);
1106:输入/输出装置(I/O装置);
1108:系统总线;
1110:数据传输接口;
1202:鼠标;
1204:键盘;
1206:显示器;
1208:打印机;
1212:随身碟;
1214:记忆卡;
1216:固态硬盘;
1310:数字相机;
1312:SD卡;
1314:MMC卡;
1316:记忆棒;
1318:CF卡;
1320:嵌入式储存装置;
100:存储器储存装置;
102:连接接口单元;
104:存储器控制电路单元;
106:可复写式非易失性存储器组件;
410(0)~410(N):实体抹除单元;
202:存储器管理电路;
204:主机接口;
206:存储器接口;
208:数据压缩/解压缩电路;
210:缓冲存储器;
212:电源管理电路;
214:错误检查与校正电路;
502:数据区;
504:闲置区;
506:系统区;
508:取代区;
LBA(0)~LBA(H):逻辑地址;
LZ(0)~LZ(M):逻辑区域;
802:第二数据;
802':第三数据;
902:第四数据;
804:第一实体编程单元;
WD:写入数据;
RD:读取数据;
FCD:第一数据;
SCD:第五数据;
CCD:已校正数据;
DD:虚拟数据;
DD'、FCD':数据;
SP、SP':管理信息;
ECC、ECC':错误检查与校正码;
ECCF、ECCF':错误检查与校正码框;
EB:错误比特;
900:虚拟数据登录表;
1006:虚拟数据信息;
1402:第一组连续数据比特;
1404:最后一组连续数据比特;
1502:另一组连续数据比特;
S1501、S1503、S1505:数据写入方法的步骤;
S1507、S1509、S1511、S1513:数据读取方法的步骤。
具体实施方式
第一范例实施例
一般而言,存储器储存装置(也称,存储器储存系统)包括可复写式非易失性存储器组件与控制器(也称,控制电路)。通常存储器储存装置是与主机系统一起使用,以使主机系统可将数据写入至存储器储存装置或从存储器储存装置中读取数据。
图1A是根据第一范例实施例所示出的主机系统与存储器储存装置的示意图。
请参照图1A,主机系统1000一般包括电脑1100与输入/输出(input/output,简称:I/O)装置1106。电脑1100包括微处理器1102、随机存取存储器(random access memory,简称:RAM)1104、系统总线1108与数据传输接口1110。输入/输出装置1106包括如图1B的鼠标1202、键盘1204、显示器1206与打印机1208。必须了解的是,图1B所示的装置非限制输入/输出装置1106,输入/输出装置1106可还包括其他装置。
在本发明实施例中,存储器储存装置100是通过数据传输接口1110与主机系统1000的其他元件电性连接。通过微处理器1102、随机存取存储器1104与输入/输出装置1106的运行可将数据写入至存储器储存装置100或从存储器储存装置100中读取数据。例如,存储器储存装置100可以是如图1B所示的随身碟1212、记忆卡1214或固态硬盘(Solid StateDrive,简称:SSD)1216等的可复写式非易失性存储器储存装置。
一般而言,主机系统1000为可实质地与存储器储存装置100配合以储存数据的任意系统。虽然在本范例实施例中,主机系统1000是以电脑系统来做说明,然而,在本发明另一范例实施例中主机系统1000可以是数字相机、摄影机、通信装置、音频播放器或视频播放器等系统。例如,在主机系统为图1C中的数字相机(摄影机)1310时,可复写式非易失性存储器储存装置则为其所使用的SD卡1312、MMC卡1314、记忆棒(memory stick)1316、CF卡1318或嵌入式储存装置1320(如图1C所示)。嵌入式储存装置1320包括嵌入式多媒体卡(Embedded MMC,简称:eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机系统的基板上。
图2是根据第一范例实施例所示出的存储器储存装置的概要方块图。
请参照图2,存储器储存装置100包括连接接口单元102、存储器控制电路单元104与可复写式非易失性存储器组件106。
在本范例实施例中,连接接口单元102是相容于串行高级技术附件(SerialAdvanced Technology Attachment,简称:SATA)标准。然而,必须了解的是,本发明不限于此,连接接口单元102也可以是符合并行高级技术附件(Parallel Advanced TechnologyAttachment,简称:PATA)标准、电气和电子工程师协会(Institute of Electrical andElectronic Engineers,简称:IEEE)1394标准、高速周边零件连接接口(PeripheralComponent Interconnect Express,简称:PCI Express)标准、通用串行总线(UniversalSerial Bus,简称:USB)标准、超高速一代(Ultra High Speed-I,简称:UHS-I)接口标准、超高速二代(Ultra High Speed-II,简称:UHS-II)接口标准、安全数字(Secure Digital,简称:SD)接口标准、记忆棒(Memory Stick,简称:MS)接口标准、多媒体储存卡(Multi MediaCard,简称:MMC)接口标准、小型快闪(Compact Flash,简称:CF)接口标准、整合式驱动电子接口(Integrated Device Electronics,简称:IDE)标准或其他适合的标准。在本范例实施例中,连接器可与存储器控制电路单元封装在一个芯片中,或布设于一包含存储器控制电路单元的芯片外。
存储器控制电路单元104用以执行以硬件形式或固件形式实现的多个逻辑门或控制指令,并且根据主机系统1000的指令在可复写式非易失性存储器组件106中进行数据的写入、读取、抹除与合并等操作。
可复写式非易失性存储器组件106是耦接至存储器控制电路单元104,并且用以储存主机系统1000所写入的数据。可复写式非易失性存储器组件106具有实体抹除单元410(0)~410(N)。例如,实体抹除单元410(0)~410(N)可属于同一个存储器晶粒(die)或者属于不同的存储器晶粒。每一实体抹除单元分别具有多个实体编程单元,其中属于同一个实体抹除单元的实体编程单元可被独立地写入且被同时地抹除。此外,每一实体抹除单元可由64个实体编程单元、256个实体编程单元或其他任意个实体编程单元所组成。
更详细来说,实体抹除单元为抹除的最小单位。也即,每一实体抹除单元含有最小数目之一并被抹除的存储单元。实体编程单元为编程的最小单元。即,实体编程单元为写入数据的最小单元。每一实体编程单元通常包括数据比特区与冗余比特区。数据比特区包含多个实体存取地址用以储存使用者的数据,而冗余比特区用以储存系统的数据(例如,控制信息与错误更正码)。在此,一个实体编程单元的容量是定义为包含数据比特区的容量与冗余比特区的容量。例如,在本范例实施例中,每一实体编程单元的使用者数据比特区的容量为2千字节(Kilobyte,简称:KB)并且冗余比特区的容量为64字节(byte),也就是说,每一个实体编程单元的数据比特区中会包含4个实体存取地址,且一个实体存取地址的大小为512字节(byte)。然而,必须了解的是,本发明不限于此。例如,在其他范例实施例中,数据比特区中也可包含数目更多或更少的实体存取地址,本发明并不限制实体存取地址的大小以及个数。例如,在一范例实施例中,实体抹除单元为实体区块,并且实体编程单元为实体页面或实体扇区,但本发明不以此为限。
在本范例实施例中,可复写式非易失性存储器组件106为多层存储单元(MultiLevel Cell,简称:MLC)NAND型快闪存储器组件(即,一个存储单元中可储存2个比特数据的快闪存储器组件)。然而,本发明不限于此,可复写式非易失性存储器组件106也可是单层存储单元(Single Level Cell,简称:SLC)NAND型快闪存储器组件(即,一个存储单元中可储存1个比特数据的快闪存储器组件)、多层存储单元(Trinary Level Cell,简称:TLC)NAND型快闪存储器组件(即,一个存储单元中可储存3个比特数据的快闪存储器组件)、其他快闪存储器组件或其他具有相同特性的存储器组件。
图3是根据第一范例实施例所示出的存储器控制电路单元的概要方块图。
请参照图3,存储器控制电路单元104包括存储器管理电路202、主机接口204、存储器接口206与数据压缩/解压缩电路208。
存储器管理电路202用以控制存储器控制电路单元104的整体运行。具体来说,存储器管理电路202具有多个控制指令,并且在存储器储存装置100运行时,此些控制指令会被执行以对可复写式非易失性存储器组件106下达指令序列来将数据写入至可复写式非易失性存储器组件106、从可复写式非易失性存储器组件106读取数据或将可复写式非易失性存储器组件106上的数据抹除等操作。
在本范例实施例中,存储器管理电路202的控制指令是以固件形式来实现。例如,存储器管理电路202具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器储存装置100运行时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等操作。
在本发明另一范例实施例中,存储器管理电路202的控制指令也可以代码形式储存于可复写式非易失性存储器组件106的特定区域(例如,存储器组件中专用于存放系统数据的系统区)中。此外,存储器管理电路202具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有驱动码,并且当存储器控制电路单元104被致能时,微处理器单元会先执行此驱动码段来将储存于可复写式非易失性存储器组件106中的控制指令载入至存储器管理电路202的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等操作。
此外,在本发明另一范例实施例中,存储器管理电路202的控制指令也可以一硬件形式来实现。例如,存储器管理电路202包括微控制器、存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路。存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路是耦接至微控制器。其中,存储单元管理电路用以管理可复写式非易失性存储器组件106的实体抹除单元;存储器写入电路用以对可复写式非易失性存储器组件106下达写入指令以将数据写入至可复写式非易失性存储器组件106中;存储器读取电路用以对可复写式非易失性存储器组件106下达读取指令以从可复写式非易失性存储器组件106中读取数据;存储器抹除电路用以对可复写式非易失性存储器组件106下达抹除指令以将数据从可复写式非易失性存储器组件106中抹除;而数据处理电路用以处理欲写入至可复写式非易失性存储器组件106的数据以及从可复写式非易失性存储器组件106中读取的数据。
主机接口204是耦接至存储器管理电路202并且用以耦接至连接接口单元102,以接收与识别主机系统1000所传送的指令与数据。也就是说,主机系统1000所传送的指令与数据会通过主机接口204来传送至存储器管理电路202。在本范例实施例中,主机接口204是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口204也可以是相容于PATA标准、IEEE 1394标准、PCI Express标准、USB标准、UHS-I接口标准、UHS-II接口标准、SD标准、MS标准、MMC标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口206是耦接至存储器管理电路202并且用以存取可复写式非易失性存储器组件106。也就是说,欲写入至可复写式非易失性存储器组件106的数据会经由存储器接口206转换为可复写式非易失性存储器组件106所能接受的格式。
数据压缩/解压缩电路208是耦接至存储器管理电路202。在此,数据压缩/解压缩电路208用以压缩欲写入至可复写式非易失性存储器组件106的数据并且用以解压缩从可复写式非易失性存储器组件106中所读取的数据。例如,数据压缩/解压缩电路208包含压缩器(compressor)及解压缩器(decompressor)。压缩器用以找出原始数据(original data)中存在的数据累赘(data redundancy)、移除所找出的累赘,将剩余的必要数据编码并且输出编码结果(即,压缩数据(compressed data)。而解压缩器用以将读入的压缩数据依据既定的步骤解码并送出解码结果(即,解压缩数据(decompressed data)。在本范例实施例中,数据压缩/解压缩电路208是使用无失真压缩演算法来压缩数据,以使压缩后的数据能够被还原。
在本发明一范例实施例中,存储器控制电路单元104还包括缓冲存储器210、电源管理电路212与错误检查与校正电路214。
缓冲存储器210是耦接至存储器管理电路202并且用以暂存来自于主机系统1000的数据与指令或来自于可复写式非易失性存储器组件106的数据。
电源管理电路212是耦接至存储器管理电路202并且用以控制存储器储存装置100的电源。
错误检查与校正电路214是耦接至存储器管理电路202并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路202从主机系统1000中接收到写入指令时,错误检查与校正电路214会为对应此写入指令的数据产生对应的错误检查与校正码(Error Checking and Correcting Code,简称:ECC Code),并且存储器管理电路202会将对应此写入指令的数据与对应的错误检查与校正码写入至可复写式非易失性存储器组件106中。之后,当存储器管理电路202从可复写式非易失性存储器组件106中读取数据时会同时读取此数据对应的错误检查与校正码,并且错误检查与校正电路214会依据此错误检查与校正码对所读取的数据执行错误检查与校正程序。
值得一提的是,错误检查与校正电路214能够校正的错误比特的数目会与所产生的错误检查与校正码的大小成正比。也就是说,当错误检查与校正电路214被设计能够校正的错误比特的数目越多时,则需要越多储存空间来储存所产生的错误检查与校正码。然而,用以储存错误检查与校正码的冗余比特区的容量是固定的(根据不同种类的可复写式非易失性存储器组件而不同)。因此,实现错误检查与校正电路214中的错误校正演算法会受限于可复写式非易失性存储器组件106的类型。具体来说,错误检查与校正电路214会被设计能够校正一数目的错误比特(以下称为最大可校正错误比特数)。例如,最大可校正错误比特数为48。倘若发生在所读取的数据的错误比特的数目非大于48个时,错误检查与校正电路214就能够依据错误检查与校正码将错误比特校正回正确的值。反之,错误检查与校正电路214会回报错误校正失败且存储器管理电路202会将指示数据已遗失的信息传送给主机系统1000。
图4A与图4B是根据第一范例实施例所示出的管理实体抹除单元的范例示意图。
必须了解的是,在此描述可复写式非易失性存储器组件106的实体抹除单元的运行时,以“提取"、“分组"、“划分"、“关联"等词来操作实体抹除单元是逻辑上的概念。也就是说,可复写式非易失性存储器组件的实体抹除单元的实际位置并未更动,而是逻辑上对可复写式非易失性存储器组件的实体抹除单元进行操作。
请参照图4A,存储器控制电路单元104(或存储器管理电路202)会将实体抹除单元410(0)~410-(N)逻辑地分组为数据区502、闲置区504、系统区506与取代区508。
逻辑上属于数据区502与闲置区504的实体抹除单元是用以储存来自于主机系统1000的数据。具体来说,数据区502的实体抹除单元是被视为已储存数据的实体抹除单元,而闲置区504的实体抹除单元是用以替换数据区502的实体抹除单元。也就是说,当从主机系统1000接收到写入指令与欲写入的数据时,存储器控制电路单元104(或存储器管理电路202)会从闲置区504中提取实体抹除单元,并且将数据写入至所提取的实体抹除单元中,以替换数据区502的实体抹除单元。
逻辑上属于系统区506的实体抹除单元是用以记录系统数据。例如,系统数据包括关于可复写式非易失性存储器组件的制造商与型号、可复写式非易失性存储器组件的实体抹除单元数、每一实体抹除单元的实体编程单元数等。
逻辑上属于取代区508中的实体抹除单元是用于坏实体抹除单元取代程序,以取代损坏的实体抹除单元。具体来说,倘若取代区508中仍存有正常的实体抹除单元并且数据区502的实体抹除单元损坏时,存储器控制电路单元104(或存储器管理电路202)会从取代区508中提取正常的实体抹除单元来更换损坏的实体抹除单元。
特别是,数据区502、闲置区504、系统区506与取代区508的实体抹除单元的数量会依据不同的存储器规格而有所不同。此外,必须了解的是,在存储器储存装置100的运行中,实体抹除单元关联至数据区502、闲置区504、系统区506与取代区508的分组关系会动态地变动。例如,当闲置区504中的实体抹除单元损坏而被取代区508的实体抹除单元取代时,则原本取代区508的实体抹除单元会被关联至闲置区504。
请参照图4B,存储器控制电路单元104(或存储器管理电路202)会配置逻辑地址LBA(0)~LBA(H)以映射数据区502的实体抹除单元,其中每一逻辑地址具有多个逻辑子单元以映射对应的实体抹除单元的实体编程单元。并且,当主机系统100欲写入数据至逻辑地址或更新储存于逻辑地址中的数据时,存储器控制电路单元104(或存储器管理电路202)会从闲置区504中提取一个实体抹除单元来写入数据,以轮替数据区502的实体抹除单元。在本范例实施例中,逻辑子单元可以是逻辑页面或逻辑扇区。
为了识别数据每个逻辑地址的数据被储存在那个实体抹除单元,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会记录逻辑地址与实体抹除单元之间的映射。并且,当主机系统1000欲在逻辑子单元中存取数据时,存储器控制电路单元104(或存储器管理电路202)会确认此逻辑子单元所属的逻辑地址,并且在此逻辑地址所映射的实体抹除单元中来存取数据。例如,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会在可复写式非易失性存储器组件106中储存逻辑转实体地址映射表来记录每一逻辑地址所映射的实体抹除单元,并且当欲存取数据时存储器控制电路单元104(或存储器管理电路202)会将逻辑转实体地址映射表载入至缓冲存储器210来维护。
值得一提的是,由于缓冲存储器210的容量有限,无法储存记录所有逻辑地址的映射关系的映射表,因此,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会将逻辑地址LBA(0)~LBA(H)分组为多个逻辑区域LZ(0)~LZ(M),并且为每一逻辑区域配置一个逻辑转实体地址映射表。特别是,当存储器控制电路单元104(或存储器管理电路202)欲更新某个逻辑地址的映射时,对应此逻辑地址所属的逻辑区域的逻辑转实体地址映射表会被载入至缓冲存储器210来被更新。
图5~图7是根据第一范例实施例所示出的写入数据至可复写式非易失性存储器组件的范例。
请参照图5~图7,在本范例实施例中,存储器储存装置100的可复写式非易失性存储器组件106是以实体抹除单元为基础(也称为区块为基础(block based)来进行管理。具体而言,在逻辑地址LBA(0)是映射至实体抹除单元410(0)的映射状态下,当存储器控制电路单元104(或存储器管理电路202)从主机系统1000中接收到写入指令而欲写入数据至属于逻辑地址LBA(0)的逻辑存取地址时,存储器控制电路单元104(或存储器管理电路202)会依据逻辑转实体地址映射表识别逻辑地址LBA(0)目前是映射至实体抹除单元410(0)并且从闲置区504中提取实体抹除单元410(F)作为替换实体抹除单元来轮替实体抹除单元410(0)。然而,当存储器控制电路单元104(或存储器管理电路202)将新数据写入至实体抹除单元410(F)的同时,存储器控制电路单元104(或存储器管理电路202)不会立刻将实体抹除单元410(0)中的所有有效数据搬移至实体抹除单元410(F)而抹除实体抹除单元410(0)。具体来说,存储器控制电路单元104(或存储器管理电路202)会将实体抹除单元410(0)中欲写入实体编程单元之前的有效数据(即,实体抹除单元410(0)的第0实体编程单元与第1实体编程单元中的数据)复制至实体抹除单元410(F)的第0实体编程单元与第1实体编程单元中(如图5所示),并且将新数据写入至实体抹除单元410(F)的第2实体编程单元与第3实体编程单元中(如图6所示)。此时,存储器控制电路单元104(或存储器管理电路202)即完成写入的操作。因为实体抹除单元410(0)中的有效数据有可能在下个操作(例如,写入指令)中变成无效,因此立刻将实体抹除单元410(0)中的有效数据搬移至实体抹除单元410(F)可能会造成无谓的搬移。此外,数据必须依序地写入至实体抹除单元内的实体编程单元,因此,存储器控制电路单元104(或存储器管理电路202)仅会先搬移欲写入实体编程单元之前的有效数据。
在本范例实施例中,暂时地维持此等母子暂态关系(即,实体抹除单元410(0)与实体抹除单元410(F))的操作称为开启(open)母子单元,并且原实体抹除单元称为母实体抹除单元而替换实体抹除单元称为子实体抹除单元。
之后,当需要将实体抹除单元410(0)与实体抹除单元410(F)的内容合并(merge)时,存储器控制电路单元104(或存储器管理电路202)才会将实体抹除单元410(0)与实体抹除单元410(F)的数据整并至一个实体抹除单元,由此提升实体抹除单元的使用效率。在此,合并母子单元的操作称为数据合并程序或关闭(close)母子单元。例如,如图7所示,当进行关闭母子单元时,存储器控制电路单元104(或存储器管理电路202)会将实体抹除单元410(0)中剩余的有效数据(即,实体抹除单元410(0)的第4实体编程单元~第(K)实体编程单元中的数据)复制至替换实体抹除单元410(F)的第4实体编程单元~第(K)实体编程单元中,然后将实体抹除单元410(0)抹除并关联至闲置区504,同时,将实体抹除单元410(F)关联至数据区502。也就是说,存储器控制电路单元104(或存储器管理电路202)会在逻辑单元-实体抹除单元映射表中将逻辑单元510(0)重新映射至实体抹除单元410(F)。此外,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会建立闲置区实体抹除单元表(未示出)来记录目前被关联至闲置区的实体抹除单元。值得一提的是,闲置区504中实体抹除单元的数目是有限的,基此,在存储器储存装置100运行期间,开启的母子单元的组数也会受到限制。因此,当存储器储存装置100接收到来自于主机系统1000的写入指令时,倘若已开启母子单元的组数达到上限时,存储器控制电路单元104(或存储器管理电路202)需关闭至少一组目前已开启的母子单元(即,执行关闭母子单元操作)以执行此写入指令。在此,图5~图7所示的写入操作称为一般写入模式。
值得注意的是,在另一范例实施例中,存储器储存装置100的可复写式非易失性存储器组件106也可以是以实体编程单元为基础(也称为页面为基础(page based)来进行管理),本发明不加以限制。例如,在执行写入指令时,不管目前数据是要写入至那个逻辑单元的逻辑子单元,存储器控制电路单元104(或存储器管理电路202)皆会以一个实体编程单元接续一个实体编程单元的方式来写入数据(以下也称为随机写入机制)。具体来说,存储器控制电路单元104(或存储器管理电路202)会从闲置区504中提取一个空的实体抹除单元作为目前使用的实体抹除单元来写入数据。并且,当此目前使用的实体抹除单元已被写满时,存储器控制电路单元104(或存储器管理电路202)会再从闲置区504中提取另一个空的实体抹除单元作为目前使用的实体抹除单元,以继续写入对应来自于主机系统1000的写入指令的数据。
在本范例实施例中,在从主机系统1000中接收到写入指令以及对应此写入指令的数据之后,存储器控制电路单元104(或存储器管理电路202)会以实体编程单元为单位将所接收的数据写入至可复写式非易失性存储器组件106中。特别是,存储器控制电路单元104(或存储器管理电路202)会依据所接收的数据及对应的错误检查与校正码来产生错误检查与校正码框(ECC Frame)并且将错误检查与校正码框写入至可复写式非易失性存储器组件106中。例如,在本范例实施例中,一个错误检查与校正码框所包含的使用者数据的长度为2K,且1个实体编程单元可储存1个错误检查与校正码框。然而,必须了解的是,本发明不限于此,在本发明另一范例实施例中,一个错误检查与校正码框所包含的使用者数据的长度也可为512Byte或1K。也就是说,1个实体编程单元可储存多个错误检查与校正码框。
图8是根据第一范例实施例所示出的写入数据至实体编程单元的示意图。
请参照图8,在本范例实施例中,当存储器控制电路单元104(或存储器管理电路202)从主机系统1000中接收到一写入指令,并且此写入指令指示将写入数据WD写入至某个逻辑地址时,存储器控制电路单元104(或数据压缩/解压缩电路208)会将虚拟数据DD填补至对应此写入数据WD的数据FCD(以下称为第一数据FCD)以产生数据802(以下称为第二数据802)。在此,第二数据802也可称为使用者数据。特别是,在本范例实施例中,第一数据FCD是由存储器控制电路单元104(或数据压缩/解压缩电路208)压缩写入数据WD所产生的压缩数据,然而,本发明不限于此。例如,在另一范例实施例中,第一数据FCD为未经压缩的写入数据WD。
在本范例实施例中,存储器控制电路单元104(或数据压缩/解压缩电路208)是接续第一数据FCD的最后一个比特填入虚拟数据DD以产生第二数据802。值得一提的是,尽管在本范例实施例中,虚拟数据DD是被填补在第一数据FCD之后,然而,必须了解的是,本发明不限于此。例如,在另一范例实施例中,虚拟数据DD也可置于第一数据FCD之前。
接着,存储器控制电路单元104(或错误检查与校正电路214)会产生对应此第二数据802的错误检查与校正码ECC,并且存储器控制电路单元104(或存储器管理电路202)会产生对应此第二数据802的管理信息SP(例如,此数据所属的逻辑地址等)。之后,存储器控制电路单元104(或存储器管理电路202)会根据此第二数据802、管理信息SP与错误检查与校正码ECC产生错误检查与校正码框ECCF。
具体来说,存储器控制电路单元104(或数据压缩/解压缩电路208)会使用无失真压缩演算法来压缩数据,然而,不同的写入数据WD经过压缩后所产生的压缩数据的大小可能会不同。由于在本范例实施例中,可复写式非易失性存储器组件106的写入是以实体编程单元为单位并且一个实体编程单元可储存1个错误检查与校正码框,因此,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会以虚拟数据DD来填补第一数据FCD,以使得所产生的错误检查与校正码框ECCF的大小相同于一个实体编程单元的大小。例如,倘若大小为2KB的写入数据经过压缩后产生大小为1.8KB的压缩数据时,存储器控制电路单元104(或存储器管理电路202)会使用大小为0.2KB的虚拟数据DD来填塞第一数据FCD以产生第二数据802,以达到编程至数据比特区的数据量仍维持在2KB。在此,虚拟数据DD具有多个数据比特,并且每一数据比特的值皆为相同值(以下称为第一值)。例如,此第一值为"F",但本发明不限于此,虚拟数据DD的每一数据比特可以是任何符号。
之后,存储器控制电路单元104(或存储器管理电路202)会将错误检查与校正码框ECCF写入至实体编程单元之中的第一实体编程单元804,也即,第一数据FCD与虚拟数据DD(即,第二数据802)会被写入第一实体编程单元804的数据比特区以及错误检查与校正码ECC会被写入至第一实体编程单元804的冗余比特区。并且,存储器控制电路单元104(或存储器管理电路202)会将上述逻辑地址映射至此第一实体编程单元804。
图9是根据第一范例实施例所示出的从实体编程单元中读取数据的示意图。
请参照图9,倘若接续图8的例子并且存储器控制电路单元104(或存储器管理电路202)从主机系统1000中接收读取指令,并且此读取指令指示从对应第一实体编程单元804的逻辑地址中读取储存于第一实体编程单元804中的数据(即,先前所写入的写入数据WD)时,存储器控制电路单元104(或存储器管理电路202)会从第一实体编程单元804中读取错误检查与校正码框ECCF'以获取一读取数据串,其中读取数据串包含数据802'(以下称为第三数据802')、管理信息SP'与错误检查与校正码ECC'。其中第三数据802'包括数据FCD'与数据DD'。
具体而言,存储器控制电路单元104(或存储器管理电路202)会使用错误检查与校正码ECC'来校正第三数据802'以获得一已校正数据。在本范例实施例中,倘若当无法通过错误检查与校正码ECC'来校正第三数据802'以获得已校正数据时,存储器控制电路单元104(或存储器管理电路202)会依据之前所写入的虚拟数据的态样来调整第三数据802'以产生第四数据902,并且错误检查与校正电路214会使用错误检查与校正码ECC'来校正第四数据902以获得已校正数据CCD。特别是,由于之前存储器控制电路单元104(或存储器管理电路202)是将第二数据802写入至第一实体编程单元804中,因此,已校正数据CCD会相同于第二数据802。
接着,存储器控制电路单元104(或存储器管理电路202)会从已校正数据CCD中移除虚拟数据DD以获得压缩数据SCD(以下称为第五数据SCD),并且解压缩此第五数据SCD以获得读取数据RD。在此,读取数据RD会相同于写入数据WD。之后,存储器控制电路单元104(或存储器管理电路202)会传送此读取数据RD至主机系统1000以响应读取指令。
图10A是根据第一范例实施例所示出的将虚拟数据的态记录于虚拟数据登录表的范例。
请参照图10A,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)是将对应第一实体编程单元804的虚拟数据的态样记录于一虚拟数据登录表900中,据此,当存储器控制电路单元104(或错误检查与校正电路214)无法通过错误检查与校正码ECC'来校正所读取的第三数据802'以获得已校正数据时,存储器控制电路单元104(或存储器管理电路202)即可依据记录于此虚拟数据登录表的虚拟数据的态样来调整第三数据802'。举例来说,存储器控制电路单元104(或存储器管理电路202)会储存并记录上述第二数据802是被填入几个数据比特所产生的。换言之,存储器管理电路202会将虚拟数据的态样记录为虚拟数据DD的长度。例如,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会将此虚拟数据DD的长度记录为200字节(即,0.2KB)并储存于虚拟数据登录表900中。然而,在另一范例实施例中,虚拟数据的态样可以是虚拟数据DD中第一个数据比特所在的实体地址,本发明不加以限制。此外,虚拟数据登录表例如会被储存在可复写式非易失性存储器组件106中用以储存系统数据的实体抹除单元中,也或是被储存于缓冲存储器210中,本发明不加以限制。
图10B是根据第一范例实施例所示出的通过虚拟数据的态样来调整所读取的数据以增强错误检查与校正码的校正能力的范例。
请参照图10B,在读取过程中,未校正的第三数据802'是通过所读取的错误检查与校正码ECC'来错误校正。在此,由于第三数据802'与错误检查与校正码ECC'内的错误比特EB的数目为10,因此,发生在所读取的数据的错误比特的数目大于最大可校正错误比特数(在此假设为8),也即,此时将无法使用错误检查与校正码ECC'来校正第三数据802'以获得已校正数据CCD。在此,存储器控制电路单元104(或存储器管理电路202)会读取虚拟数据登录表900并依据此虚拟数据登录表900识别对应第一实体编程单元804的虚拟数据DD的长度(即,200字节),并且依据对应第一实体编程单元804的虚拟数据DD的长度,将排列在第三数据802'最后的200字节以虚拟数据DD来取代以获得第四数据902。特别是,排列在此第三数据802'最后的此些数据比特的长度(即,200字节)是等于虚拟数据DD的长度。因此,错误检查与校正电路214仍可顺利地使用错误检查与校正码ECC'来将未校正的第三数据802'校正以还原为第二数据802。具体来说,由于图10所示的10个错误比特之中,2个错误比特EB是发生在数据DD'中,而数据DD'已在上述操作中,被调整并校正为虚拟数据DD,据此,第四数据902(即,经调整后的第三数据802')与错误检查与校正码ECC'内仅包含8个错误比特EB,因此,欲校正的错误比特数未超过错误检查与校正电路214可错误校正的错误比特的数目。也就是说,错误检查与校正电路214可使用错误检查与校正码来校正第四数据902以获得已校正数据CCD,并且已校正数据CCD(如图10B所示)会相同于第二数据802(如图8所示),之后已校正数据CCD也可被顺利地解压缩以取得读取数据RD(即,原写入的写入数据WD)。
图11A是根据第一范例实施例所示出的数据写入方法的流程图。
请参照图11A,在步骤S1501中,存储器控制电路单元104(或数据压缩/解压缩电路214)将虚拟数据填补至第一数据以产生第二数据。
接着,在步骤S1503中,存储器控制电路单元104(或错误检查与校正电路214)会产生对应此第二数据的错误检查与校正码,并且根据此第二数据与此错误检查与校正码产生错误检查与校正码框。
之后,在步骤S1505中,存储器控制电路单元104(或存储器管理电路202)会将错误检查与校正码框写入至实体编程单元之中的第一实体编程单元,并且将一逻辑地址映射至此第一实体编程单元。
图11B是根据第一范例实施例所示出的数据读取方法的流程图。
请参照图11B,在步骤S1507中,存储器控制电路单元104(或存储器管理电路202)从主机系统中接收一读取指令,并且此读取指令指示从所述逻辑地址中读取数据。
在步骤S1509中,存储器控制电路单元104(或存储器管理电路202)会从第一实体编程单元中读取错误检查与校正码框以获取一读取数据串,其中此读取数据串包括一第三数据与错误检查与校正码。
接着,在步骤S1511中,当无法通过错误检查与校正码来校正第三数据以获得已校正数据时,存储器控制电路单元104(或存储器管理电路202)会依据虚拟数据的态样来调整此第三数据以产生一第四数据,并且错误检查与校正电路214会使用错误检查与校正码来校正第四数据以获得已校正数据,其中已校正数据相同于第二数据。
之后,在步骤S1513中,存储器控制电路单元104(或存储器管理电路202)会从已校正数据中移除虚拟数据以获得一第五数据。
第二范例实施例
第二范例实施例的存储器储存装置的硬件结构本质上是相同于第一范例实施例的存储器储存装置的硬件结构,其差异之处在于第一范例实施例的存储器储存装置是将虚拟数据的态样记录于一虚拟数据登录表中并通过此虚拟数据的态样来调整所读取的数据以增强错误检查与校正码的校正能力,而第二范例实施例的存储器储存装置是将虚拟数据的态样记录于写入数据所对应的实体编程单元的虚拟数据信息中。以下将使用第一范例实施例的存储器储存装置的附图与元件编号来详细说明第二范例实施例的存储器储存装置的运行。
图12是根据第二范例实施例所示出的写入数据至实体编程单元的示意图。
请参照图12,其中图12所示的存储器控制电路单元104(或存储器管理电路202)将写入数据WD压缩以产生第一数据FCD,将虚拟数据DD填补至第一数据FCD以产生第二数据802,以第二数据802、管理信息SP与错误检查与校正码ECC产生错误检查与校正码框ECCF以及将错误检查与校正码框ECCF写入至第一实体编程单元804的方法是相同于第一范例实施例中图8所示的方法,在此不再重复。其不同之处在于,在本范例实施例中,在存储器控制电路单元104(或存储器管理电路202)将错误检查与校正码框804写入至实体编程单元之中的第一实体编程单元804的操作中,存储器控制电路单元104(或存储器管理电路202)是将一虚拟数据信息1006和错误检查与校正码框ECCF一并写入至第一实体编程单元804。特别是,虚拟数据信息1006会记录对应第一实体编程单元804的虚拟数据的态样,在此,虚拟数据的态样会记录为虚拟数据DD的长度。例如,假设大小为2KB的写入数据WD经过压缩后产生大小为1.8KB的第一数据FCD时,存储器控制电路单元104(或存储器管理电路202)会使用大小为0.2KB的虚拟数据DD来填塞第一数据FCD来产生第二数据802。因此,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会将此虚拟数据DD的长度记录为200字节(即,0.2KB)并储存于第一实体编程单元804的虚拟数据信息1006中。
图13是根据第二范例实施例所示出的通过虚拟数据的态样来调整所读取的数据以增强错误检查与校正码的校正能力的范例。
请参照图13,在读取过程中,未校正的第三数据802'是通过所读取的错误检查与校正码ECC'来错误校正。在此,由于第三数据802'与错误检查与校正码ECC'内的错误比特EB的数目为10,因此,发生在所读取的数据的错误比特的数目大于最大可校正错误比特数(在此假设为8),也即,此时将无法使用错误检查与校正码ECC'来校正第三数据802'以获得已校正数据CCD。在此,存储器控制电路单元104(或存储器管理电路202)会从第一实体编程单元804中读取虚拟数据信息1006并依据所读取的虚拟数据信息1006识别对应第一实体编程单元804的虚拟数据DD的长度为200字节,并且依据对应第一实体编程单元804的虚拟数据DD的长度,将排列在第三数据802'最后的200字节以虚拟数据DD来取代以获得第四数据902。特别是,排列在此第三数据802'最后的此些数据比特的长度(即,200字节)是等于虚拟数据DD的长度。因此,错误检查与校正电路214仍可顺利地使用错误检查与校正码ECC'来将未校正的第三数据802'校正以还原为第二数据802。具体来说,由于图13所示的10个错误比特之中,2个错误比特EB是发生在数据DD'中,而数据DD'已在上述操作中,被调整并校正为虚拟数据DD,据此,第四数据902(即,经调整后的第三数据802')与错误检查与校正码ECC'内仅包含8个错误比特EB,并且欲校正的错误比特数未超过错误检查与校正电路214可错误校正的错误比特的数目。也就是说,错误检查与校正电路214可使用错误检查与校正码来校正此第四数据902以获得已校正数据CCD,并且已校正数据CCD(如图13所示)会相同于第二数据802(如图12所示),之后已校正数据CCD也可被顺利地解压缩以取得读取数据RD(即,原写入的写入数据WD)。
第三范例实施例
第三范例实施例的存储器储存装置的硬件结构本质上是相同于第一范例实施例的存储器储存装置的硬件结构,其差异之处在于第三范例实施例的存储器储存装置是通过识别所读取的数据中的一组连续数据比特来调整所读取的数据以增强错误检查与校正码的校正能力。以下将使用第一范例实施例的存储器储存装置的附图与元件编号来详细说明第三范例实施例的存储器储存装置的运行。
图14A与14B是根据第三范例实施例所示出的通过识别所读取的数据中的一组连续数据比特来调整所读取的数据的范例。
请参照图14A,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)将写入数据压缩以产生第一数据FCD,将虚拟数据DD填补至第一数据FCD以产生第二数据802,以第二数据802、管理信息SP与错误检查与校正码ECC产生错误检查与校正码框ECCF以及将错误检查与校正码框ECCF写入至第一实体编程单元804的方法是相同于第一范例实施例中图8所示的方法,在此不再重复。值得一提的是,若大小为2KB的写入数据经过压缩后产生大小为1.8KB的压缩数据时,存储器管理电路202会使用大小为0.2KB的虚拟数据DD来填塞所产生的第二数据802,以达到编程至数据比特区的数据量仍维持在2KB。如上所述,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会将虚拟数据DD的多个数据比特以第一值来填入,例如,此第一值为"F",然而,本发明不限于此。例如,在另一范例实施例中,虚拟数据DD的每一数据比特可以是任何的数值或符号。
请参照图14B,在读取过程中,对应第二数据802的未校正的第三数据802'是通过所读取的错误检查与校正码ECC'来错误校正。在此,由于第三数据802'与错误检查与校正码ECC'内的错误比特EB的数目为12,因此,发生在所读取的数据的错误比特的数目大于最大可校正错误比特数(在此假设为8)时,也即,此时将无法使用错误检查与校正码ECC'来校正第三数据802'以获得已校正数据CCD。在此,存储器控制电路单元104(或存储器管理电路202)会从第三数据802'的最后一个数据比特开始扫描第三数据802'的每个数据比特,并识别第三数据802'之中的一组连续数据比特。在本范例实施例中,存储器管理电路202会以5个连续数据比特为一组,当连续扫描到5个连续的数据比特皆为第一值(即,“F”)时,会将其视为一组连续数据比特(即,“FFFFF”),然而,本发明并不加以限制一组连续数据比特的个数。例如,在另一范例实施例中,一组连续数据比特的个数可以设为4个或大于5个以上。
在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会将第三数据802'之中接续在所识别的至少一组连续数据比特之后的至少一个数据比特的值以第一值(即,"F")来取代以产生第四数据。具体来说,存储器控制电路单元104(或存储器管理电路202)会将第三数据802'内的所有这类连续数据比特搜寻出来,并识别所搜寻出的排列在最前面的一组连续数据比特以及之后的数据比特应为虚拟数据。例如,存储器控制电路单元104(或存储器管理电路202)会先扫描到第一组连续数据比特1402,然后,继续扫描直到扫描到最后一组连续数据比特1404为止。由此可确保当存储器管理电路202将第三数据802'之中接续在最后一组连续数据比特1404之后的至少一个数据比特的值以第一值(即,"F")来取代时每一个错误比特皆可以被取代到。
此后,错误检查与校正电路214即可使用错误检查与校正码ECC'来校正依据虚拟数据的态样调整未校正的第三数据802'所获得的第四数据902以还原为第二数据802。具体来说,由于图14B所示的12个错误比特之中,4个错误比特EB是发生在数据DD'中,而数据DD'已在上述操作中,被调整并校正为虚拟数据DD,据此,第四数据902(即,经调整后的第三数据802')与错误检查与校正码ECC'内仅包含8个错误比特EB,因此,欲校正的错误比特数未超过错误检查与校正电路214可错误校正的错误比特的数目。也就是说,错误检查与校正电路214可使用错误检查与校正码ECC'来校正第四数据902以获得已校正数据CCD,并且如图14A与14B所示,已校正数据CCD会相同于第二数据802,之后已校正数据CCD也可被顺利地解压缩以取得读取数据RD(即,原写入的写入数据WD)。
第四范例实施例
第四范例实施例的存储器储存装置的硬件结构本质上是相同于第一范例实施例的存储器储存装置的硬件结构,其差异之处在于第四范例实施例的存储器储存装置是通过识别所读取的数据中的两组不同的连续数据比特来调整所读取的数据以增强错误检查与校正码的校正能力。以下将使用第一范例实施例的存储器储存装置的附图与元件编号来详细说明第四范例实施例的存储器储存装置的运行。
图15A与15B是根据第四范例实施例所示出的通过识别所读取的数据中的两组不同的连续数据比特来调整所读取的数据的范例。
请参照图15A,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)将写入数据压缩以产生第一数据FCD,将虚拟数据DD填补至第一数据FCD以产生第二数据802,以第二数据802、管理信息SP与错误检查与校正码ECC产生错误检查与校正码框ECCF以及将错误检查与校正码框ECCF写入至第一实体编程单元804的方法是相同于第一范例实施例中图8所示的方法,在此不再重复。值得一提的是,若大小为2KB的写入数据经过压缩后产生大小为1.8KB的压缩数据时,存储器管理电路202会使用大小为0.2KB的虚拟数据DD来填塞所产生的第二数据802,以达到编程至数据比特区的数据量仍维持在2KB。特别是,在本范例实施例中,存储器管理电路202会将虚拟数据DD的多个数据比特以第一值来填入并且在此些第一值之前还填入一组第二值。在此,例如,第一值为"F"且第二值是"0"。然而,本发明不限于此。例如,在另一范例实施例中,第一值与第二值可以分别是任何其他的数值或符号。值得注意的是,第一值会不相同于第二值。
请参照图15B,在读取过程中,未校正的第三数据802'是通过所读取的错误检查与校正码ECC'来错误校正。在此,由于第三数据802'与错误检查与校正码ECC'内的错误比特EB的数目为12,因此,发生在所读取的数据的错误比特的数目大于最大可校正错误比特数(在此假设为8),也即,此时将无法使用错误检查与校正码ECC'来校正第三数据802'以获得已校正数据CCD。在此情况下,存储器管理电路202会从第三数据802'的最后一个数据比特开始扫描第三数据802'的每个数据比特,并识别第三数据802'之中的一组连续数据比特与另一组连续数据比特,其中两组连续数据比特并不相同。在本范例实施例中,存储器管理电路202会以5个连续数据比特为一组,当连续扫描到5个连续的数据比特皆为第一值(即,“F”)时,会将其视为一组连续数据比特(即,“FFFFF”),然而,本发明并不加以限制一组连续数据比特的个数。例如,在另一范例实施例中,一组连续数据比特的个数可以设为4个或大于5个以上。由于存储器管理电路202是从第三数据802'的最后一个数据比特开始扫描第三数据802'的每个数据比特,因此,存储器控制电路单元104(或存储器管理电路202)会接着扫描到另一组不同的连续数据比特,且此组连续数据比特的4个数据比特皆为第二值“0”。
在本范例实施例中,存储器管理电路202会将第三数据802'之中接续在所识别的另一组连续数据比特(即,其连续数据比特为第二值的一组连续数据比特)之后的至少一个数据比特的值以第一值(即,"F")来取代。具体来说,存储器管理电路202会从第二数据的最后开始往前扫描到第一组连续数据比特1402或多组其连续比特皆为第一值的连续数据比特。特别是,若在其中一组其连续比特皆为第一值的连续数据比特之前发现其连续比特皆为第二值的另一组连续数据比特1502时,表示此另一组连续数据比特1502以及其后的数据比特皆为虚拟数据,由此,可正确地将数据DD'中的错误比特皆校正为其数据比特皆为第一值的虚拟数据DD。
此后,错误检查与校正电路214即可使用错误检查与校正码ECC'来校正依据虚拟数据的态样调整未校正的第三数据802'所获得的第四数据902以还原为第二数据802。具体来说,由于图15B所示的12个错误比特之中,4个错误比特EB是发生在数据DD'中,而数据DD'已在上述操作中,被调整并校正为虚拟数据DD,据此,第四数据902(即,经调整后的第三数据802')与错误检查与校正码ECC'内仅包含8个错误比特EB,因此,欲校正的错误比特数未超过错误检查与校正电路214可错误校正的错误比特的数目。也就是说,错误检查与校正电路214可使用错误检查与校正码ECC'来校正第四数据902以获得已校正数据CCD,并且如图15A与15B所示,已校正数据CCD会相同于第二数据802,之后,已校正数据CCD也可被解压缩以获得读取数据RD(即,原写入的写入数据WD)。
综上所述,本发明范例实施例所提出的数据存取方法、存储器控制电路单元与存储器储存装置能够根据虚拟数据的态样来调整所读取的数据,以将所读取的部分的数据以虚拟数据的态样来校正,由此增强错误检查与校正码对所读取的其余的数据的保护与校正能力,基此,可校正更多的错误比特并且确保所存取的数据的正确性与可靠度。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (27)
1.一种数据存取方法,其特征在于,用于可复写式非易失性存储器组件,该可复写式非易失性存储器组件包括多个实体抹除单元,且每一该些实体抹除单元包括多个实体编程单元,其中该数据存取方法包括:
将虚拟数据填补至第一数据以产生第二数据,产生对应该第二数据的错误检查与校正码,根据该第二数据与该错误检查与校正码产生错误检查与校正码框,将该错误检查与校正码框写入至该些实体编程单元之中的第一实体编程单元,并且将逻辑地址映射至该第一实体编程单元;
接收读取指令,其中该读取指令指示从该逻辑地址中读取数据;
从该第一实体编程单元中读取该错误检查与校正码框以获取读取数据串,其中该读取数据串包括第三数据与该错误检查与校正码;
当无法通过该错误检查与校正码来校正该第三数据以获得已校正数据时,依据该虚拟数据的态样来调整该第三数据以产生第四数据,并使用该错误检查与校正码来校正该第四数据以获得该已校正数据,其中该已校正数据相同于该第二数据;
从该已校正数据中移除该虚拟数据以获得第五数据。
2.根据权利要求1所述的数据存取方法,其特征在于,还包括:
接收写入指令,其中该写入指令指示将写入数据写入至该逻辑地址;
压缩该写入数据以产生该第一数据;
解压缩该第五数据以获得读取数据,其中该读取数据相同于该写入数据;以及
传送该读取数据以响应该读取指令。
3.根据权利要求1所述的数据存取方法,其特征在于,还包括:
将对应该第一实体编程单元的该虚拟数据的态样记录于一虚拟数据登录表中,其中该虚拟数据的态样包括该虚拟数据的长度。
4.根据权利要求3所述的数据存取方法,其特征在于,
其中将该虚拟数据填补至该第一数据以产生该第二数据的步骤包括:接续该第一数据的最后一个数据比特填入该虚拟数据以产生该第二数据,
其中依据该虚拟数据的态样来调整该第三数据以产生该第四数据的步骤包括:
依据该虚拟数据登录表识别对应该第一实体编程单元的该虚拟数据的长度,并且依据对应该第一实体编程单元的该虚拟数据的长度,将排列在该第三数据最后的多个数据比特以该虚拟数据来取代以获得该第四数据,其中该排列在该第三数据最后的该些数据比特的长度是等于该虚拟数据的长度。
5.根据权利要求1所述的数据存取方法,其特征在于,将该错误检查与校正码框写入至该些实体编程单元之中的该第一实体编程单元的步骤包括:
将虚拟数据信息和该错误检查与校正码框写入至该第一实体编程单元,其中该虚拟数据信息记录对应该第一实体编程单元的该虚拟数据的态样,且该虚拟数据的态样包括该虚拟数据的长度。
6.根据权利要求5所述的数据存取方法,其特征在于,
其中将该虚拟数据填补至该第一数据以产生该第二数据的步骤包括:接续该第一数据的最后一个比特填入该虚拟数据以产生该第二数据,
其中依据该虚拟数据的态样来调整该第三数据以产生该第四数据的步骤包括:
从该第一实体编程单元中读取该虚拟数据信息,依据所读取的该虚拟数据信息识别对应该第一实体编程单元的该虚拟数据的长度,并且依据对应该第一实体编程单元的该虚拟数据的长度,将排列在该第三数据最后的多个数据比特以该虚拟数据来取代以获得该第四数据,其中该排列在该第三数据最后的该些数据比特的长度是等于该虚拟数据的长度。
7.根据权利要求1所述的数据存取方法,其特征在于,该虚拟数据具有多个数据比特,并且每一该些数据比特的值皆为第一值。
8.根据权利要求7所述的数据存取方法,其特征在于,
其中将该虚拟数据填补至该第一数据以产生该第二数据的步骤包括:接续该第一数据的最后一个比特填入该虚拟数据以产生该第二数据,
其中依据该虚拟数据的态样来调整该第三数据以产生该第四数据的步骤包括:
从该第三数据的最后一个数据比特开始扫描该第三数据的每个数据比特,识别该第三数据之中的一组连续数据比特,并且将该第三数据之中接续在该组连续数据比特之后的至少一个数据比特的值以该第一值来取代,其中该组连续数据比特的每一数据比特的值皆为该第一值。
9.根据权利要求7所述的数据存取方法,其特征在于,
其中将该虚拟数据填补至该第一数据以产生该第二数据的步骤包括:接续该第一数据的最后一个比特填入该虚拟数据以产生该第二数据,
其中依据该虚拟数据的态样来调整该第三数据以产生该第四数据的步骤包括:
从该第三数据的最后一个数据比特开始扫描该第三数据的每个数据比特,识别该第三数据之中的一组连续数据比特与另一组连续数据比特,并且将该第三数据之中接续在该另一组连续数据比特之后的至少一个数据比特的值以该第一值来取代,
其中该组连续数据比特的每一数据比特的值皆为该第一值,该另一组连续数据比特的每一数据比特的值皆为第二值,该第一值不同于该第二值并且该组连续数据比特是接续在该另一组连续数据比特之后。
10.一种存储器控制电路单元,其特征在于,用于控制可复写式非易失性存储器组件,其中该可复写式非易失性存储器组件包括多个实体抹除单元,且每一该些实体抹除单元包括多个实体编程单元,该存储器控制电路单元包括:
主机接口,耦接至主机系统;
存储器接口,耦接至该可复写式非易失性存储器组件;
存储器管理电路,耦接至该主机接口与该存储器接口;
错误检查与校正电路,耦接至该存储器管理电路;以及
数据压缩/解压缩电路,耦接至该存储器管理电路,
其中该数据压缩/解压缩电路压将虚拟数据填补至第一数据以产生第二数据,该错误检查与校正电路产生对应该第二数据的错误检查与校正码,该存储器管理电路还根据该第二数据与该错误检查与校正码产生错误检查与校正码框,下达指令序列以将该错误检查与校正码框写入至该些实体编程单元之中的第一实体编程单元,并且将逻辑地址映射至该第一实体编程单元,
其中该存储器管理电路接收读取指令,其中该读取指令指示从该逻辑地址中读取数据,
其中该存储器管理电路下达指令序列以从该第一实体编程单元中读取该错误检查与校正码框以获取读取数据串,其中该读取数据串包括第三数据与该错误检查与校正码,
其中当无法通过该错误检查与校正码来校正该第三数据以获得已校正数据时,该存储器管理电路依据该虚拟数据的态样来调整该第三数据以产生第四数据,并且该错误检查与校正电路使用该错误检查与校正码来校正该第四数据以获得该已校正数据,其中该已校正数据相同于该第二数据,
其中该存储器管理电路从该已校正数据中移除该虚拟数据以获得第五数据。
11.根据权利要求10所述的存储器控制电路单元,其特征在于,该存储器管理电路接收写入指令,其中该写入指令指示将写入数据写入至该逻辑地址,
其中该数据压缩/解压缩电路压缩该写入数据以产生该第一数据,
其中该存储器管理电路解压缩该第五数据以获得读取数据,其中该读取数据相同于该写入数据,
其中该存储器管理电路传送该读取数据以响应该读取指令。
12.根据权利要求10所述的存储器控制电路单元,其特征在于,该存储器管理电路还将对应该第一实体编程单元的该虚拟数据的态样记录于虚拟数据登录表中,并且该虚拟数据的态样包括该虚拟数据的长度。
13.根据权利要求12所述的存储器控制电路单元,其特征在于,在将该虚拟数据填补至该第一数据以产生该第二数据的操作中,该数据压缩/解压缩电路还接续该第一数据的最后一个数据比特填入该虚拟数据以产生该第二数据,
其中在依据该虚拟数据的态样来调整该第三数据以产生该第四数据的操作中,该存储器管理电路还依据该虚拟数据登录表识别对应该第一实体编程单元的该虚拟数据的长度,并且依据对应该第一实体编程单元的该虚拟数据的长度,将排列在该第三数据最后的多个数据比特以该虚拟数据来取代以获得该第四数据,其中该排列在该第三数据最后的该些数据比特的长度是等于该虚拟数据的长度。
14.根据权利要求10所述的存储器控制电路单元,其特征在于,在将该错误检查与校正码框写入至该些实体编程单元之中的该第一实体编程单元的操作中,该存储器管理电路还将一虚拟数据信息和该错误检查与校正码框写入至该第一实体编程单元,其中该虚拟数据信息记录对应该第一实体编程单元的该虚拟数据的态样,且该虚拟数据的态样包括该虚拟数据的长度。
15.根据权利要求14所述的存储器控制电路单元,其特征在于,其在将该虚拟数据填补至该第一数据以产生该第二数据的操作中,该数据压缩/解压缩电路还接续该第一数据的最后一个比特填入该虚拟数据以产生该第二数据,
其中在依据该虚拟数据的态样来调整该第三数据以产生该第四数据的操作中,该存储器管理电路还从该第一实体编程单元中读取该虚拟数据信息,依据所读取的该虚拟数据信息识别对应该第一实体编程单元的该虚拟数据的长度,并且依据对应该第一实体编程单元的该虚拟数据的长度,将排列在该第三数据最后的多个数据比特以该虚拟数据来取代以获得该第四数据,其中该排列在该第三数据最后的该些数据比特的长度是等于该虚拟数据的长度。
16.根据权利要求10所述的存储器控制电路单元,其特征在于,该虚拟数据具有多个数据比特,并且每一该些数据比特的值皆为第一值。
17.根据权利要求16所述的存储器控制电路单元,其特征在于,在将该虚拟数据填补至该第一数据以产生该第二数据的操作中,该数据压缩/解压缩电路还接续该第一数据的最后一个比特填入该虚拟数据以产生该第二数据,
其中在依据该虚拟数据的态样来调整该第三数据以产生该第四数据的操作中,该存储器管理电路还从该第三数据的最后一个数据比特开始扫描该第三数据的每个数据比特,识别该第三数据之中的一组连续数据比特,并且将该第三数据之中接续在该组连续数据比特之后的至少一个数据比特的值以该第一值来取代,其中该组连续数据比特的每一数据比特的值皆为该第一值。
18.根据权利要求17所述的存储器控制电路单元,其特征在于,在将该虚拟数据填补至该第一数据以产生该第二数据的操作中,该数据压缩/解压缩电路还接续该第一数据的最后一个比特填入该虚拟数据以产生该第二数据,
其中该存储器管理电路依据该虚拟数据的态样来调整该第三数据以产生该第四数据的操作中,该存储器管理电路还从该第三数据的最后一个数据比特开始扫描该第三数据的每个数据比特,识别该第三数据之中的一组连续数据比特与另一组连续数据比特,并且将该第三数据之中接续在该另一组连续数据比特之后的至少一个数据比特的值以该第一值来取代,
其中该组连续数据比特的每一数据比特的值皆为该第一值,该另一组连续数据比特的每一数据比特的值皆为第二值,该第一值不同于该第二值并且该组连续数据比特是接续在该另一组连续数据比特之后。
19.一种存储器储存装置,其特征在于,包括:
连接接口单元,用以耦接至主机系统;
可复写式非易失性存储器组件,包括多个实体抹除单元,且每一该些实体抹除单元包括多个实体编程单元;以及
存储器控制电路单元,耦接至该连接接口单元与该可复写式非易失性存储器组件,
其中该存储器控制电路单元将一虚拟数据填补至第一数据以产生第二数据,产生对应该第二数据的错误检查与校正码,根据该第二数据与该错误检查与校正码产生错误检查与校正码框,将该错误检查与校正码框写入至该些实体编程单元之中的第一实体编程单元,并且将逻辑地址映射至该第一实体编程单元,
其中该存储器控制电路单元还接收一读取指令,其中该读取指令指示从该逻辑地址中读取数据,
其中该存储器控制电路单元还从该第一实体编程单元中读取该错误检查与校正码框以获取一读取数据串,并且该读取数据串包括第三数据与该错误检查与校正码,
其中当无法通过该错误检查与校正码来校正该第三数据以获得已校正数据时,该存储器控制电路单元还依据该虚拟数据的态样来调整该第三数据以产生第四数据,并使用该错误检查与校正码来校正该第四数据以获得该已校正数据,其中该已校正数据相同于该第二数据,
其中该存储器控制电路单元还从该已校正数据中移除该虚拟数据以获得第五数据。
20.根据权利要求19所述的存储器储存装置,其特征在于,该存储器控制电路单元还接收写入指令,并且该写入指令指示将写入数据写入至该逻辑地址,
其中该存储器控制电路单元压缩该写入数据以产生该第一数据,
其中该存储器控制电路单元解压缩该第五数据以获得读取数据,其中该读取数据相同于该写入数据,
其中该存储器控制电路单元传送该读取数据以响应该读取指令。
21.根据权利要求19所述的存储器储存装置,其特征在于,该存储器控制电路单元还将对应该第一实体编程单元的该虚拟数据的态样记录于一虚拟数据登录表中,并且该虚拟数据的态样包括该虚拟数据的长度。
22.根据权利要求21所述的存储器储存装置,其特征在于,在将该虚拟数据填补至该第一数据以产生该第二数据的操作中,该存储器控制电路单元还接续该第一数据的最后一个数据比特填入该虚拟数据以产生该第二数据,
其中在依据该虚拟数据的态样来调整该第三数据以产生该第四数据的操作中,该存储器控制电路单元还依据该虚拟数据登录表识别对应该第一实体编程单元的该虚拟数据的长度,并且依据对应该第一实体编程单元的该虚拟数据的长度,将排列在该第三数据最后的多个数据比特以该虚拟数据来取代以获得该第四数据,其中该排列在该第三数据最后的该些数据比特的长度是等于该虚拟数据的长度。
23.根据权利要求19所述的存储器储存装置,其特征在于,在将该错误检查与校正码框写入至该些实体编程单元之中的该第一实体编程单元的操作中,该存储器控制电路单元还将虚拟数据信息和该错误检查与校正码框写入至该第一实体编程单元,其中该虚拟数据信息记录对应该第一实体编程单元的该虚拟数据的态样,且该虚拟数据的态样包括该虚拟数据的长度。
24.根据权利要求23所述的存储器储存装置,其特征在于,在将该虚拟数据填补至该第一数据以产生该第二数据的操作中,该存储器控制电路单元还接续该第一数据的最后一个比特填入该虚拟数据以产生该第二数据,
其中在依据该虚拟数据的态样来调整该第三数据以产生该第四数据的操作中,该存储器控制电路单元还从该第一实体编程单元中读取该虚拟数据信息,依据所读取的该虚拟数据信息识别对应该第一实体编程单元的该虚拟数据的长度,并且依据对应该第一实体编程单元的该虚拟数据的长度,将排列在该第三数据最后的多个数据比特以该虚拟数据来取代以获得该第四数据,其中该排列在该第三数据最后的该些数据比特的长度是等于该虚拟数据的长度。
25.根据权利要求19所述的存储器储存装置,其特征在于,该虚拟数据具有多个数据比特,并且每一该些数据比特的值皆为第一值。
26.根据权利要求25所述的存储器储存装置,其特征在于,在将该虚拟数据填补至该第一数据以产生该第二数据的操作中,该存储器控制电路单元还接续该第一数据的最后一个比特填入该虚拟数据以产生该第二数据,
其中在依据该虚拟数据的态样来调整该第三数据以产生该第四数据的操作中,该存储器控制电路单元还从该第三数据的最后一个数据比特开始扫描该第三数据的每个数据比特,识别该第三数据之中的一组连续数据比特,并且将该第三数据之中接续在该组连续数据比特之后的至少一个数据比特的值以该第一值来取代,其中该组连续数据比特的每一数据比特的值皆为该第一值。
27.根据权利要求26所述的存储器储存装置,其特征在于,在将该虚拟数据填补至该第一数据以产生该第二数据的操作中,该存储器控制电路单元还接续该第一数据的最后一个比特填入该虚拟数据以产生该第二数据,
其中在依据该虚拟数据的态样来调整该第三数据以产生该第四数据的操作中,该存储器控制电路单元还从该第三数据的最后一个数据比特开始扫描该第三数据的每个数据比特,识别该第三数据之中的一组连续数据比特与另一组连续数据比特,并且将该第三数据之中接续在该另一组连续数据比特之后的至少一个数据比特的值以该第一值来取代,
其中该组连续数据比特的每一数据比特的值皆为该第一值,该另一组连续数据比特的每一数据比特的值皆为第二值,该第一值不同于该第二值并且该组连续数据比特是接续在该另一组连续数据比特之后。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410647163.9A CN105653391B (zh) | 2014-11-13 | 2014-11-13 | 数据存取方法、存储器控制电路单元及存储器储存装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410647163.9A CN105653391B (zh) | 2014-11-13 | 2014-11-13 | 数据存取方法、存储器控制电路单元及存储器储存装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105653391A CN105653391A (zh) | 2016-06-08 |
CN105653391B true CN105653391B (zh) | 2018-11-02 |
Family
ID=56479885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410647163.9A Active CN105653391B (zh) | 2014-11-13 | 2014-11-13 | 数据存取方法、存储器控制电路单元及存储器储存装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105653391B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI631456B (zh) * | 2016-10-07 | 2018-08-01 | 慧榮科技股份有限公司 | 資料儲存裝置及資料維護方法 |
TWI677788B (zh) * | 2018-04-27 | 2019-11-21 | 慧榮科技股份有限公司 | 資料儲存系統以及非揮發式記憶體操作資訊的校正方法 |
US10872010B2 (en) * | 2019-03-25 | 2020-12-22 | Micron Technology, Inc. | Error identification in executed code |
CN113138947B (zh) * | 2020-01-17 | 2023-06-13 | 群联电子股份有限公司 | 数据写入方法、存储器控制电路单元以及存储器存储装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101258471A (zh) * | 2005-07-15 | 2008-09-03 | Gsip有限责任公司 | 闪存纠错 |
CN101719100A (zh) * | 2008-10-06 | 2010-06-02 | 马维尔国际贸易有限公司 | 用于非易失性存储器的基于压缩的耗损均衡 |
US7809994B2 (en) * | 2006-05-17 | 2010-10-05 | Sandisk Corporation | Error correction coding for multiple-sector pages in flash memory devices |
CN101876947A (zh) * | 2009-04-30 | 2010-11-03 | 国际商业机器公司 | 用于存储数据的方法及其系统 |
CN102934093A (zh) * | 2010-06-29 | 2013-02-13 | 英特尔公司 | 用于改进固态驱动器的性能和/或可靠性的方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI459396B (zh) * | 2010-12-30 | 2014-11-01 | Phison Electronics Corp | 資料寫入與讀取方法、記憶體控制器與記憶體儲存裝置 |
-
2014
- 2014-11-13 CN CN201410647163.9A patent/CN105653391B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101258471A (zh) * | 2005-07-15 | 2008-09-03 | Gsip有限责任公司 | 闪存纠错 |
US7809994B2 (en) * | 2006-05-17 | 2010-10-05 | Sandisk Corporation | Error correction coding for multiple-sector pages in flash memory devices |
CN101719100A (zh) * | 2008-10-06 | 2010-06-02 | 马维尔国际贸易有限公司 | 用于非易失性存储器的基于压缩的耗损均衡 |
CN101876947A (zh) * | 2009-04-30 | 2010-11-03 | 国际商业机器公司 | 用于存储数据的方法及其系统 |
CN102934093A (zh) * | 2010-06-29 | 2013-02-13 | 英特尔公司 | 用于改进固态驱动器的性能和/或可靠性的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105653391A (zh) | 2016-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9037782B2 (en) | Method of programming memory cells and reading data, memory controller and memory storage apparatus using the same | |
CN104166636B (zh) | 存储器储存装置及其还原方法与存储器控制器 | |
TWI534618B (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN104679437B (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN104423888B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN104866429B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
TWI540582B (zh) | 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN106372000B (zh) | 映射表更新方法、存储器控制电路单元及存储器存储装置 | |
CN105653391B (zh) | 数据存取方法、存储器控制电路单元及存储器储存装置 | |
US9304907B2 (en) | Data management method, memory control circuit unit and memory storage apparatus | |
CN106484307B (zh) | 存储器管理方法、存储器控制电路单元及存储器存储装置 | |
TWI506634B (zh) | 資料存取方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN104881240B (zh) | 数据写入方法、存储器存储装置及存储器控制电路单元 | |
CN102902626B (zh) | 区块管理方法、存储器控制器与存储器储存装置 | |
TW201705148A (zh) | 映射表存取方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN104536906B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN104252317B (zh) | 数据写入方法、存储器控制器与存储器存储装置 | |
CN104573537B (zh) | 数据处理方法、存储器存储装置与存储器控制电路单元 | |
CN106648443B (zh) | 有效数据合并方法、存储器控制器与存储器存储装置 | |
CN105335096B (zh) | 数据管理方法、存储器控制电路单元以及存储器存储装置 | |
CN106406746B (zh) | 映射表存取方法、存储器控制电路单元及存储器存储装置 | |
CN105630687B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN109388332A (zh) | 数据存储方法、存储器控制电路单元及存储器存储装置 | |
CN107179960A (zh) | 解码方法、存储器控制电路单元及存储器存储装置 | |
CN105573662A (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |