CN105183660B - 数据读取方法、存储器控制器与储存装置 - Google Patents
数据读取方法、存储器控制器与储存装置 Download PDFInfo
- Publication number
- CN105183660B CN105183660B CN201510572498.3A CN201510572498A CN105183660B CN 105183660 B CN105183660 B CN 105183660B CN 201510572498 A CN201510572498 A CN 201510572498A CN 105183660 B CN105183660 B CN 105183660B
- Authority
- CN
- China
- Prior art keywords
- access address
- data
- physical page
- logic
- physics
- 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
本发明是2012年03月23日所提出的申请号为201210079715.1、发明名称为《编程存储单元与数据读取方法、存储器控制器与储存装置》的发明专利申请的分案申请。
技术领域
本发明涉及一种编程存储单元的方法与数据读取方法,特别是涉及一种利用标志来增加执行速度的编程存储单元的方法、数据读取方法以及使用这些方法的存储器储存装置以及存储器控制器。
背景技术
数码相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于可重写式非易失性存储器(例如,快闪存储器)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种可携式多媒体装置中。
一般来说,可重写式非易失性存储器包括多个物理区块,每个物理区块包括多个物理页面。并且,当要把数据写入至可重写式非易失性存储器时,物理页面为最小的写入单位。因此,当要写入的数据小于物理页面的大小时,现有技术所提出的写入方法是在物理页面中填入预设值,以填满一个物理页面。当要从可重写式非易失性存储器读取数据时,也会一并的读取到这些预设值。然而,在上述情况中,用于控制可重写式非易失性存储器的控制器必须要编码这些预设值,并将这些预设值编程(program)至物理页面当中。然而,主机***在逻辑上识别这些储存预设值的逻辑地址为未被使用过或者储存于这些逻辑地址中的数据已被删除。所以,将这些预设值编程至可重写式非易失性存储器是无意义的且会额外增加***负担。
所以,如何有效地在可重写式非易失性存储器中存取不满一个物理页面的数据,为本领域技术人员所关心的议题。
发明内容
本发明的范例实施例提出一种编程存储单元的方法、数据读取方法、存储器控制器以及存储器储存装置,可以增加读写数据时的执行速度。
本发明一范例实施例中提出一种编程存储单元的方法,用于一可重写式非易失性存储器模块。此可重写式非易失性存储器模块包括了多个物理页面,而每一个物理页面包括一数据位区与一冗余位区。其中,数据位区还包括多个物理存取地址,而冗余位区则分别地记录对应这些物理存取地址的多个标志。其中,多个逻辑页面会被配置以映射部分的物理页面,并且每一个逻辑页面具有多个逻辑存取地址。此编程存储单元的方法包括:接收一指令,此指令是用以指示对上述逻辑页面之中的第一逻辑页面进行一变更操作;根据所接收的指令来识别第一逻辑页面的逻辑存取地址之中的无效逻辑存取地址与有效逻辑存取地址;从上述的多个物理页面中选择一个第一物理页面。本编程存储单元的方法还包括:将对应第一逻辑页面的有效逻辑存取地址的标志设定为有效状态,将对应第一逻辑页面的无效逻辑存取地址的标志设定为一无效状态;根据上述的变更操作将对应第一逻辑页面的有效逻辑存取地址的数据编程至第一物理页面的数据位区,并且将对应第一逻辑页面的有效逻辑存取地址的标志与对应第一逻辑页面的无效逻辑存取地址的标志编程至第一物理页面的冗余位区;以及,将第一物理页面映射至第一逻辑页面。
在一范例实施例中,上述的第一逻辑页面是原始映射至第二物理页面,而第二物理页面储存有属于第一逻辑页面的逻辑存取地址的数据。其中,上述的指令为一整理指令(trim command)并且上述的变更操作是用以指示第一逻辑页面的逻辑存取地址之中的至少一个第一逻辑存取地址为已删除逻辑存取地址。其中,根据指令识别第一逻辑页面的逻辑存取地址之中的无效逻辑存取地址与有效逻辑存取地址的步骤包括:根据上述的整理指令将第一逻辑页面的第一逻辑存取地址识别为无效逻辑存取地址。其中,根据变更操作将对应第一逻辑页面的有效逻辑存取地址的数据编程至第一物理页面的数据位区的步骤还包括:从第二物理页面中读取属于第一逻辑页面的有效逻辑存取地址的数据;以及,将属于第一逻辑页面的有效逻辑存取地址的数据写入至第一物理页面的数据位区的物理存取地址之中的第一物理存取地址,其中对应第一逻辑页面的有效逻辑存取地址的标志是对应至第一物理存取地址。
在一范例实施例中,上述的编程存储单元的方法还包括:建立一闲置逻辑地址表,用以记录属于一种闲置状态的逻辑存取地址,其中属于闲置状态的逻辑存取地址为未被写过数据的逻辑存取地址或者所储存的数据已被删除的逻辑存取地址。
在一范例实施例中,上述的指令为一写入指令并且上述的变更操作为指示将一更新数据写入至第一逻辑页面的逻辑存取地址之中的已更新逻辑存取地址。其中,根据指令识别第一逻辑页面的逻辑存取地址之中的无效逻辑存取地址与有效逻辑存取地址的步骤包括:判断在第一逻辑页面的逻辑存取地址之中除了已更新逻辑存取地址之外的其他逻辑存取地址是否为未被写过的逻辑存取地址或已删除的逻辑存取地址;以及,倘若上述其他逻辑存取地址为未被写过逻辑存取地址或已删除逻辑存取地址时,将这些其他逻辑存取地址识别为无效逻辑存取地址。
在一范例实施例中,上述根据变更操作将对应第一逻辑页面的有效逻辑存取地址的数据编程至第一物理页面的数据位区的步骤包括:将上述的更新数据写入至第一物理页面的数据位区的物理存取地址之中的至少一个第二物理存取地址,其中对应第一逻辑页面的有效逻辑存取地址的标志是对应至上述的第二物理存取地址。
在一范例实施例中,上述的编程存储单元的方法还包括加密更新数据以产生一已加密更新数据。其中,根据变更操作将对应第一逻辑页面的有效逻辑存取地址的数据编程至第一物理页面的数据位区的步骤包括:将已加密更新数据写入至第一物理页面的数据位区的物理存取地址之中的第二物理存取地址。
以另外一个角度来说,本发明一范例实施例中提出一种数据读取方法,用于上述的可重写式非易失性存储器模块。本数据读取方法包括:从一主机***接收一读取指令,此读取指令是用以指示读取属于上述逻辑存取地址之中的第二逻辑存取地址的数据;从上述物理页面之中的第一物理页面的数据位区的第三物理存取地址中读取一数据,而属于第二逻辑存取地址的数据是被储存在第一物理页面的数据位区的第三物理存取地址中。本数据读取方法还包括:判断记录在第一物理页面的冗余位区中对应第三物理存取地址的标志是否为无效状态;倘若记录在第一物理页面的冗余位区中对应第三物理存取地址的标志非为无效状态时,将从第一物理页面的数据位区的第三物理存取地址中所读取的数据传送给主机***;以及,倘若记录在第一物理页面的冗余位区中对应第三物理存取地址的标志为无效状态时,则将一个预设值传送给主机***。
在一范例实施例中,上述的数据读取方法还包括:解密从第一物理页面的数据位区的第三物理存取地址中读取的数据以获取一解密数据;以及,将这个解密数据传送至主机***以回应上述的读取指令。
以另外一个角度来说,本发明一范例实施例中提出一种存储器储存装置,包括了连接器、上述的可重写式非易失性存储器模块与存储器控制器。其中,连接器是用以电性连接至一主机***。存储器控制器则是电性连接至上述的连接器与可重写式非易失性存储器模块。并且,存储器控制器用以接收一指令,此指令是用以指示对上述逻辑页面之中的第一逻辑页面进行一个变更操作。存储器控制器也会根据这个指令识别第一逻辑页面的逻辑存取地址之中的无效逻辑存取地址与有效逻辑存取地址,并从物理页面中选择第一物理页面。存储器控制器还会将对应第一逻辑页面的有效逻辑存取地址的标志设定为一有效状态,并将对应第一逻辑页面的无效逻辑存取地址的标志设定为一无效状态。此外,存储器控制器还会根据上述的变更操作来将对应第一逻辑页面的有效逻辑存取地址的数据编程至第一物理页面的数据位区,将对应第一逻辑页面的有效逻辑存取地址的标志与对应第一逻辑页面的无效逻辑存取地址的标志编程至第一物理页面的冗余位区。最后,存储器控制器会将第一物理页面映射至第一逻辑页面。
在一范例实施例中,上述的第一逻辑页面是原始映射至第二物理页面,而第二物理页面则储存有属于第一逻辑页面的逻辑存取地址的数据。上述的指令为整理指令(trimcommand)并且上述的变更操作是用以指示第一逻辑页面的逻辑存取地址之中的至少一个第一逻辑存取地址为已删除逻辑存取地址。其中,存储器控制器会根据整理指令将第一逻辑页面的第一逻辑存取地址识别为无效逻辑存取地址,并从第二物理页面中读取属于第一逻辑页面的有效逻辑存取地址的数据。在根据变更操作将对应第一逻辑页面的有效逻辑存取地址的数据编程至第一物理页面的数据位区的过程中,存储器控制器还会将属于第一逻辑页面的有效逻辑存取地址的数据写入至第一物理页面的数据位区的物理存取地址之中的第一物理存取地址,其中对应第一逻辑页面的有效逻辑存取地址的标志是对应至第一物理存取地址。
在一范例实施例中,上述的存储器控制器还用以建立一闲置逻辑地址表,用以记录属于一种闲置状态的逻辑存取地址。其中,属于闲置状态的逻辑存取地址为未被写过数据的逻辑存取地址或者所储存的数据已被删除的逻辑存取地址。
在一范例实施例中,上述的指令为指示将一个写入指令,而上述的变更操作是用以将一个更新数据写入至第一逻辑页面的逻辑存取地址之中的已更新逻辑存取地址。其中,存储器控制器还用以判断在第一逻辑页面的逻辑存取地址之中除了已更新逻辑存取地址之外的其他逻辑存取地址是否为未被写过逻辑存取地址或已删除逻辑存取地址。倘若上述其他逻辑存取地址为未被写过逻辑存取地址或已删除逻辑存取地址时,存储器控制器会将这些其他逻辑存取地址识别为无效逻辑存取地址。
在一范例实施例中,存储器控制器还会将更新数据写入至第一物理页面的数据位区的物理存取地址之中的第二物理存取地址,其中对应第一逻辑页面的有效逻辑存取地址的标志是对应至所述的第二物理存取地址。
在一范例实施例中,上述的存储器控制器还用以加密更新数据以产生一已加密更新数据。存储器控制器还会将已加密更新数据写入至第一物理页面的数据位区的物理存取地址之中的第二物理存取地址,其中对应第一逻辑页面的有效逻辑存取地址的标志是对应至所述的第二物理存取地址。
在一范例实施例中,上述的存储器控制器还用以从主机***接收一读取指令,此读取指令是用以指示读取属于第二逻辑存取地址的数据。存储器控制器还用以从第一物理页面的数据位区的第三物理存取地址中读取数据,而属于第二逻辑存取地址的数据便是被储存在第一物理页面的数据位区的第三物理存取地址中。存储器控制器还用以判断记录在第一物理页面的冗余位区中对应第三物理存取地址的标志是否为无效状态。倘若记录在第一物理页面的冗余位区中对应第三物理存取地址的标志非为无效状态时,存储器控制器会将从第一物理页面的数据位区的第三物理存取地址中读取的数据传送给主机***。倘若记录在第一物理页面的冗余位区中对应第三物理存取地址的标志为无效状态时,存储器控制器会将一个预设值传送给主机***。
在一范例实施例中,上述的存储器控制器还用以解密从第一物理页面的数据位区的第三物理存取地址中读取的数据以获取一解密数据,并将此解密数据传送至主机***以回应读取指令。
以另外一个角度来说,本发明一范例实施例中提出一种存储器控制器,用于控制上述的可重写式非易失性存储器模块。此存储器控制器包括主机接口、存储器接口与存储器管理电路。其中,主机接口是用以电性连接至一个主机***。存储器接口是用以电性连接至可重写式非易失性存储器模块。存储器管理电路则电性连接至主机接口与存储器接口,并且从主机***接收一个指令,这个指令是用以指示对上述逻辑页面之中的第一逻辑页面进行一变更操作。其中,存储器管理电路会根据这个指令识别第一逻辑页面的逻辑存取地址之中的无效逻辑存取地址与有效逻辑存取地址,并会从上述的物理页面中选择第一物理页面。存储器管理电路也将对应第一逻辑页面的有效逻辑存取地址的标志设定为有效状态,并将对应第一逻辑页面的无效逻辑存取地址的标志设定为无效状态。存储器管理电路还用以根据上述的变更操作来将对应第一逻辑页面的有效逻辑存取地址的数据编程至第一物理页面的数据位区,将对应第一逻辑页面的有效逻辑存取地址的标志与对应第一逻辑页面的无效逻辑存取地址的标志编程至第一物理页面的冗余位区。最后,存储器管理电路会将第一物理页面映射至第一逻辑页面。
在一范例实施例中,上述的第一逻辑页面是原始映射至第二物理页面,而第二物理页面则储存有属于第一逻辑页面的逻辑存取地址的数据。而上述的指令为一整理指令(trim command)并且上述的变更操作是用以指示第一逻辑页面的逻辑存取地址之中的至少一个第一逻辑存取地址为已删除逻辑存取地址。其中,存储器管理电路会根据这个整理指令将第一逻辑页面的第一逻辑存取地址识别为一无效逻辑存取地址,并从第二物理页面中读取属于第一逻辑页面的有效逻辑存取地址的数据。存储器管理电路还用以将属于第一逻辑页面的有效逻辑存取地址的数据写入至第一物理页面的数据位区的物理存取地址之中的第一物理存取地址,而对应第一逻辑页面的有效逻辑存取地址的标志便是对应至所述的第一物理存取地址。
在一范例实施例中,上述的存储器管理电路还用以建立一闲置逻辑地址表,用以记录属于种一闲置状态的逻辑存取地址。其中,属于闲置状态的逻辑存取地址为未被写过数据的逻辑存取地址或者所储存的数据已被删除的逻辑存取地址。
在一范例实施例中,上述的指令为一个写入指令,而上述的变更操作是用以指示将一个更新数据写入至第一逻辑页面的逻辑存取地址之中的已更新逻辑存取地址。其中,存储器管理电路还用以判断在第一逻辑页面的逻辑存取地址之中除了已更新逻辑存取地址之外的其他逻辑存取地址是否为未被写过逻辑存取地址或已删除逻辑存取地址。倘若上述其他逻辑存取地址为未被写过逻辑存取地址或已删除逻辑存取地址时,存储器管理电路会将这些其他逻辑存取地址识别为无效逻辑存取地址。
在一范例实施例中,存储器管理电路还用以将更新数据写入至第一物理页面的数据位区的物理存取地址之中的第二物理存取地址中。其中,对应第一逻辑页面的有效逻辑存取地址的标志便是对应至所述的第二物理存取地址。
在一范例实施例中,上述的存储器控制器还包括一加密解密电路,用以加密更新数据以产生一个已加密更新数据。存储器管理电路会将已加密更新数据写入至第一物理页面的数据位区的物理存取地址之中的第二物理存取地址。而对应第一逻辑页面的有效逻辑存取地址的标志便是对应至所述的第二物理存取地址。
在一范例实施例中,上述的存储器管理电路还用以从主机***接收一读取指令,此读取指令是用以指示读属于第二逻辑存取地址的数据。其中存储器管理电路还用以从第一物理页面的数据位区的第三物理存取地址中读取数据。其中属于第二逻辑存取地址的数据便是被储存在第一物理页面的数据位区的第三物理存取地址中。而存储器管理电路还用以判断记录在第一物理页面的冗余位区中对应第三物理存取地址的标志是否为无效状态。倘若记录在第一物理页面的冗余位区中对应第三物理存取地址的标志非为无效状态时,存储器管理电路会将从第一物理页面的数据位区的第三物理存取地址中读取的数据传送给主机***。倘若记录在第一物理页面的冗余位区中对应第三物理存取地址的标志为无效状态时,存储器管理电路会将一预设值传送给主机***。
在一范例实施例中,上述的存储器控制器还包括一加密解密电路,用以解密从第一物理页面的数据位区的第三物理存取地址中所读取的数据以获取一解密数据。而存储器管理电路还用以将此解密数据传送至主机***以回应读取指令。
基于上述,本发明一范例实施例所提出的编程存储单元的方法及使用此方法的存储器控制器以及存储器储存装置,是在冗余位区中记录对应的标志,由此避免无谓的写入运作并且提升写入数据的速度。此外,本发明一范例实施例所提出的数据读取方法及使用此方法的存储器控制器以及存储器储存装置,能够藉由识别冗余位区中的标志,来避免无谓的读取运作,由此提升读取数据的速度。
为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并结合附图详细说明如下。
附图说明
图1A是根据第一范例实施例所绘示的主机***与存储器储存装置。
图1B是根据第一范例实施例所绘示的计算机、输入/输出装置与存储器储存装置的示意图。
图1C是根据第一范例实施例所绘示的主机***与存储器储存装置的示意图。
图2是绘示图1A所示的存储器储存装置的概要方块图。
图3是根据第一范例实施例所绘示的存储器控制器的概要方块图。
图4与图5是根据第一范例实施例所绘示的管理可重写式非易失性存储器模块的范例示意图。
图6是根据第一范例实施例所绘示的逻辑区块与物理区块的映射示意图。
图7是根据第一范例实施例所绘示的逻辑页面与物理页面的映射示意图。
图8是根据第一范例实施例所绘示的数据读取方法的流程图。
图9是根据第一范例实施例所绘示的编程存储单元的方法的流程图。
图10是根据第一范例实施例绘示执行整理指令的流程图。
图11是根据第一范例实施例绘示执行整理指令的范例示意图。
图12是根据第一范例实施例绘示执行写入指令的流程图。
图13是根据第一范例实施例绘示执行写入指令的范例示意图。
图14是根据第二范例实施例绘示的存储器控制器的方块图。
图15是根据第二范例实施例说明将更新数据加密并写入的示意图。
图16是根据第二范例实施例说明读取并解密数据的示意图。
附图符号说明
1000:主机***
1100:计算机
1102:微处理器
1104:随机存取存储器
1106:输入/输出装置
1108:***总线
1110:数据传输接口
1202:鼠标
1204:键盘
1206:显示器
1252:打印机
1256:随身盘
1214:存储卡
1216:固态硬盘
1310:数码相机
1312:SD卡
1314:MMC卡
1316:存储棒
1318:CF卡
1320:嵌入式储存装置
100:存储器储存装置
102:连接器
104:存储器控制器
106:可重写式非易失性存储器模块
304(0)~304(R):物理区块
202:存储器管理电路
206:存储器接口
254:电源管理电路
252:缓冲存储器
256:错误检查与校正电路
402:数据区
404:闲置区
406:***区
408:取代区
LBA(0)~LBA(N):逻辑区块
502(0)~502(A):逻辑页面
522(0)~522(A):物理页面
540(0)~540(3):逻辑存取地址
562:数据位区
582:冗余位区
560(0)~560(3):物理存取地址
580(0)~580(3):标志
622(0):物理页面
662:数据位区
682:冗余位区
S802、S804、S806、S808、S810:数据读取方法的步骤
S902、S904、S906、S908、S910、S912:编程存储单元的方法的步骤
S1002、S1004、S1006、S1008、S1010、S1012、S1014:执行整理指令的步骤
660(0)~660(3):物理存取地址
680(0)~680(3):标志
S1202、S1204、S1206、S1208、S1210、S1212、S1214、S1216、S1218、S1220:执行写入指令的步骤
602:更新数据
1402:存储器管理电路
1404:加密解密电路
900:已加密更新数据
1602:第一数据
1604:解密数据
1606:预设值
具体实施方式
[第一范例实施例]
一般而言,存储器储存装置(亦称,存储器储存***)包括可重写式非易失性存储器模块与控制器(亦称,控制电路)。通常存储器储存装置是与主机***一起使用,以使主机***可将数据写入至存储器储存装置或从存储器储存装置中读取数据。
图1A是根据第一范例实施例所绘示的主机***与存储器储存装置。
请参照图1A,主机***1000一般包括计算机1100与输入/输出(input/output,I/O)装置1106。计算机1100包括微处理器1102、随机存取存储器(random access memory,RAM)1104、***总线1108与数据传输接口1110。输入/输出装置1106包括如图1B的鼠标1202、键盘1204、显示器1206与打印机1252。必须了解的是,图1B所示的装置非限制输入/输出装置1106,输入/输出装置1106可还包括其他装置。
在本发明实施例中,存储器储存装置100是通过数据传输接口1110与主机***1000的其他元件电性连接。藉由微处理器1102、随机存取存储器1104与输入/输出装置1106的运作可将数据写入至存储器储存装置100或从存储器储存装置100中读取数据。例如,存储器储存装置100可以是如图1B所示的随身盘1256、存储卡1214或固态硬盘(Solid StateDrive,SSD)1216等的可重写式非易失性存储器储存装置。
一般而言,主机***1000为可实质地与存储器储存装置100配合以储存数据的任意***。虽然在本范例实施例中,主机***1000是以计算机***来作说明,然而,在本发明另一范例实施例中主机***1000可以是数码相机、摄影机、通信装置、音讯播放器或视讯播放器等***。例如,在主机***为数码相机(摄影机)1310时,可重写式非易失性存储器储存装置则为其所使用的SD卡1312、MMC卡1314、存储棒(memory stick)1316、CF卡1318或嵌入式储存装置1320(如图1C所示)。嵌入式储存装置1320包括嵌入式多媒体卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机***的基板上。
图2是绘示图1A所示的存储器储存装置的概要方块图。
请参照图2,存储器储存装置100包括连接器102、存储器控制器104与可重写式非易失性存储器模块106。
在本范例实施例中,连接器102是相容于序列先进附件(Serial AdvancedTechnology Attachment,SATA)标准。然而,必须了解的是,本发明不限于此,连接器102亦可以是符合并列先进附件(Parallel Advanced Technology Attachment,PATA)标准、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)1394标准、高速周边零件连接接口(Peripheral Component Interconnect Express,PCIExpress)标准、通用序列总线(Universal Serial Bus,USB)标准、安全数字(SecureDigital,SD)接口标准、存储棒(Memory Stick,MS)接口标准、多媒体储存卡(Multi MediaCard,MMC)接口标准、小型快闪(Compact Flash,CF)接口标准、整合式驱动电子接口(Integrated Device Electronics,IDE)标准或其他适合的标准。
存储器控制器104用以执行以硬件型式或固件型式实作的多个逻辑门或控制指令,并且根据主机***1000的指令在可重写式非易失性存储器模块106中进行数据的写入、读取与擦除等运作。
可重写式非易失性存储器模块106是电性连接至存储器控制器104,并且用以储存主机***1000所写入的数据。可重写式非易失性存储器模块106具有物理区块304(0)~304(R)。例如,物理区块304(0)~304(R)可属于同一个存储器芯片(die)或者属于不同的存储器芯片。每一物理区块分别具有多个物理页面,并且每一物理页面具有至少一物理扇区,其中属于同一个物理区块的物理页面可被独立地写入且被同时地擦除。例如,每一物理区块是由128个物理页面所组成,并且每一物理页面具有8个物理扇区(sector)。也就是说,在每一物理扇区为512位组(byte)的例子中,每一物理页面的容量为4千位组(Kilobyte,K)。然而,必须了解的是,本发明不限于此,每一物理区块是可由64个物理页面、256个物理页面或其他任意个物理页面所组成。
更详细来说,物理区块为擦除的最小单位。亦即,每一物理区块含有最小数目的一并被擦除的存储单元。物理页面为编程的最小单元。即,物理页面为写入数据的最小单元。然而,必须了解的是,在本发明另一范例实施例中,写入数据的最小单位亦可以是物理扇区或其他大小。每一物理页面通常包括数据位区与冗余位区。数据位区用以储存使用者的数据,而冗余位区用以储存***的数据(例如,错误检查与校正码)。
在本范例实施例中,可重写式非易失性存储器模块106为多阶存储单元(MultiLevel Cell,MLC)NAND快闪存储器模块,即一个存储单元中可储存至少2个位数据。然而,本发明不限于此,可重写式非易失性存储器模块106亦可是单阶存储单元(Single LevelCell,SLC)NAND快闪存储器模块、其他快闪存储器模块或其他具有相同特性的存储器模块。
图3是根据第一范例实施例所绘示的存储器控制器的概要方块图。
请参照图3,存储器控制器104包括存储器管理电路202、主机接口204与存储器接口206。
存储器管理电路202用以控制存储器控制器104的整体运作。具体来说,存储器管理电路202具有多个控制指令,并且在存储器储存装置100运作时,这些控制指令会被执行以进行数据的写入、读取与擦除等运作。
在本范例实施例中,存储器管理电路202的控制指令是以固件型式来实作。例如,存储器管理电路202具有微处理器单元(未绘示)与只读存储器(未绘示),并且这些控制指令是被烧录至此只读存储器中。当存储器储存装置100运作时,这些控制指令会由微处理器单元来执行以进行数据的写入、读取与擦除等运作。
在本发明另一范例实施例中,存储器管理电路202的控制指令亦可以程序码型式储存于可重写式非易失性存储器模块106的特定区域(例如,存储器模块中专用于存放***数据的***区)中。此外,存储器管理电路202具有微处理器单元(未绘示)、只读存储器(未绘示)及随机存取存储器(未绘示)。特别是,此只读存储器具有驱动码,并且当存储器控制器104被致能时,微处理器单元会先执行此驱动码段来将储存于可重写式非易失性存储器模块106中的控制指令载入至存储器管理电路202的随机存取存储器中。之后,微处理器单元会运转这些控制指令以进行数据的写入、读取与擦除等运作。
此外,在本发明另一范例实施例中,存储器管理电路202的控制指令亦可以一硬件型式来实作。例如,存储器管理电路202包括微控制器、存储器管理单元、存储器写入单元、存储器读取单元、存储器擦除单元与数据处理单元。存储器管理单元、存储器写入单元、存储器读取单元、存储器擦除单元与数据处理单元是电性连接至微控制器。其中,存储器管理单元用以管理可重写式非易失性存储器模块106的物理区块;存储器写入单元用以对可重写式非易失性存储器模块106下达写入指令以将数据写入至可重写式非易失性存储器模块106中;存储器读取单元用以对可重写式非易失性存储器模块106下达读取指令以从可重写式非易失性存储器模块106中读取数据;存储器擦除单元用以对可重写式非易失性存储器模块106下达擦除指令以将数据从可重写式非易失性存储器模块106中擦除;而数据处理单元用以处理欲写入至可重写式非易失性存储器模块106的数据以及从可重写式非易失性存储器模块106中读取的数据。
主机接口204是电性连接至存储器管理电路202并且用以接收与识别主机***1000所传送的指令与数据。也就是说,主机***1000所传送的指令与数据会通过主机接口204来传送至存储器管理电路202。在本范例实施例中,主机接口204是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口204亦可以是相容于PATA标准、IEEE 1394标准、PCI Express标准、USB标准、SD标准、MS标准、MMC标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口206是电性连接至存储器管理电路202并且用以存取可重写式非易失性存储器模块106。也就是说,欲写入至可重写式非易失性存储器模块106的数据会经由存储器接口206转换为可重写式非易失性存储器模块106所能接受的格式。
在本发明一范例实施例中,存储器控制器104还包括缓冲存储器252、电源管理电路254、以及错误检查与校正电路256。
缓冲存储器252是电性连接至存储器管理电路202并且用以暂存来自于主机***1000的数据与指令或来自于可重写式非易失性存储器模块106的数据。
电源管理电路254是电性连接至存储器管理电路202并且用以控制存储器储存装置100的电源。
错误检查与校正电路256是电性连接至存储器管理电路202并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路202从主机***1000中接收到写入指令时,错误检查与校正电路256会为对应此写入指令的数据产生对应的错误检查与校正码(Error Checking and Correcting Code,ECC Code),并且存储器管理电路202会将对应此写入指令的数据与对应的错误检查与校正码写入至可重写式非易失性存储器模块106中。之后,当存储器管理电路202从可重写式非易失性存储器模块106中读取数据时会同时读取此数据对应的错误检查与校正码,并且错误检查与校正电路256会依据此错误检查与校正码对所读取的数据执行错误检查与校正程序。
图4与图5是根据第一范例实施例所绘示的管理可重写式非易失性存储器模块的范例示意图。
必须了解的是,在此描述可重写式非易失性存储器模块106的物理区块的运作时,以“提取”、“交换”、“分组”、“轮替”等词来操作物理区块是逻辑上的概念。也就是说,可重写式非易失性存储器模块的物理区块的实际位置并未更动,而是逻辑上对可重写式非易失性存储器模块的物理区块进行操作。
请参照图4,存储器控制器104会将可重写式非易失性存储器模块的物理区块304(0)~304(R)逻辑地分组为数据区402、闲置区404、***区406与取代区408。
数据区402与闲置区404的物理区块是用以储存来自于主机***1000的数据。具体来说,数据区402是已储存数据的物理区块,而闲置区404的物理区块是用以替换数据区402的物理区块。因此,闲置区404的物理区块为空或可使用的物理区块,即无记录数据或标记为已没用的无效数据。也就是说,在闲置区404中的物理区块已被执行擦除运作,或者当闲置区404中的物理区块被提取用于储存数据之前所提取的物理区块会被执行擦除运作。因此,闲置区404的物理区块为可被使用的物理区块。
逻辑上属于***区406的物理区块是用以记录***数据,其中此***数据包括关于存储器晶片的制造商与型号、存储器晶片的物理区块数、每一物理区块的物理页面数等。
逻辑上属于取代区408中的物理区块是替代物理区块。例如,可重写式非易失性存储器模块于出厂时会预留4%的物理区块作为更换使用。也就是说,当数据区402、闲置区404与***区406中的物理区块损毁时,预留于取代区408中的物理区块是用以取代损坏的物理区块(即,坏物理区块(bad block))。因此,倘若取代区408中仍存有正常的物理区块且发生物理区块损毁时,存储器控制器104会从取代区408中提取正常的物理区块来更换损毁的物理区块。倘若取代区408中无正常的物理区块且发生物理区块损毁时,则存储器控制器104会将整个存储器储存装置100宣告为写入保护(write protect)状态,而无法再写入数据。
特别是,数据区402、闲置区404、***区406与取代区408的物理区块的数量会依据不同的存储器规格而有所不同。此外,必须了解的是,在存储器储存装置100的运作中,物理区块关联至数据区402、闲置区404、***区406与取代区408的分组关系会动态地变动。例如,当闲置区中的物理区块损坏而被取代区的物理区块取代时,则原本取代区的物理区块会被关联至闲置区。
请参照图5,如上所述,数据区402与闲置区404的物理区块是以轮替方式来储存主机***1000所写入的数据。在本范例实施例中,存储器控制器104会配置逻辑区块LBA(0)~LBA(N)给主机***1000以利于在以上述轮替方式来储存数据的物理区块中进行数据存取。具体来说,当存储器储存装置100***作***1110通过文档***(例如,FAT 32)格式化时,逻辑区块LBA(0)~LBA(N)分别地映射至数据区402的物理区块304(0)~304(D)。也就是说,一个逻辑区块会映射数据区402中的一个物理区块。在此,存储器管理电路202会建立逻辑区块-物理区块映射表(logical block-physical block mapping table),以记录逻辑区块与物理区块之间的映射关系。
图6是根据第一范例实施例所绘示的逻辑区块与物理区块的映射示意图。
请参照图6,一个逻辑区块会包含多个逻辑页面,且这些逻辑页面会被映射至数据区402中物理区块的物理页面。举例来说,逻辑区块LBA(0)的逻辑页面502(0)~502(A)是映射至物理区块304(0)的物理页面522(0)~522(A)。
在本范例实施例中,每个物理页面会包含一数据位区与一冗余位区。数据位区是用以储存使用者的数据,而冗余位区则是用以储存***数据(例如,错误更正码)。在本范例实施例中,数据位区中会包含多个物理存取地址。另一方面,一个逻辑页面会包含多个逻辑存取地址,而这些逻辑存取地址会被映射至数据位区中的物理存取地址。也就是说,一个逻辑页面中逻辑存取地址的数目会等于一个物理页面中物理存取地址的数目。在本范例实施例中,每一个物理页面的数据位区中会包含4个物理存取地址,且一个物理存取地址的大小是一个物理扇区的大小。然而,在其他范例实施例中,数据位区中也可包含数目更多或更少的物理存取地址,本发明并不限制物理存取地址的大小以及个数。
图7是根据第一范例实施例所绘示的逻辑页面与物理页面的映射示意图。每个物理页面与逻辑页面的映射方式是类似的,在此以物理页面522(0)与逻辑页面502(0)为例进行说明,其他物理页面与逻辑页面的映射可以此类推。
请参照图7,物理页面522(0)包括数据位区562与冗余位区582。数据位区562包括物理存取地址560(0)~560(3),逻辑页面502(0)包括逻辑存取地址540(0)~540(3),并且逻辑存取地址540(0)~540(3)是分别映射至物理页面522(0)的物理存取地址560(0)~560(3)。
值得注意的是,在本范例实施例中,每一个物理页面中的冗余位区会记录多个标志,这些标志是对应至数据位区的物理存取地址。举例来说,冗余位区582中记录了标志580(0)~580(3),且分别是对应至物理存取地址560(0)~560(3)。例如,标志580(0)是对应560(0);标志580(1)是对应560(1);标志580(2)是对应560(2);并且标志580(3)是对应560(3)。
在本范例实施例中,记录在冗余位区中的标志会被设定为有效状态或是无效状态,用以识别所对应的物理存取地址所映射的逻辑存取地址是否处于闲置状态。例如,在本范例实施例中,倘若标志580(3)是被设定为无效状态时,则表示物理存取地址560(3)所映射的逻辑存取地址540(3)是属于闲置状态。在此,所谓属于闲置状态的逻辑存取地址是指未曾被写过数据的逻辑存取地址,或者是其所储存的数据已被删除的逻辑存取地址。当逻辑存取地址540(3)未曾被写过数据或者是逻辑存取地址540(3)所储存的数据已被删除时,表示主机***1000在逻辑上识别逻辑存取地址540(3)并没有储存任何数据。也就是说,在逻辑上对主机***1000而言,逻辑存取地址540(3)为未被使用的闲置逻辑存取地址,并且,当对闲置逻辑存取地址进行读取时,应接收到为一特定态样的预设值。例如,此预设值是全为“0”的字符串,或者是全为“1”的字符串,然而本发明并不限定此预设值的内容。
换句话说,在逻辑存取地址540(3)属于闲置状态的例子中,当主机***1000要读取逻辑存取地址540(3)时,主机***1000会读到预设值,并不是读到映射至逻辑存取地址540(3)的物理存取地址560(3)所储存的数据。具体来说,当主机***1000要读取一逻辑存取地址(亦称第二逻辑存取地址)时,主机***1000会传送一读取指令至存储器储存装置100。例如,主机***1000设定此读取指令是要读取第二逻辑存取地址540(3),并且,主机***1000会将此读取指令传送给存储器管理电路202。接着,在接收到此读取指令以后,存储器管理电路202会取得第二逻辑存取地址540(3)的映射关系(即,逻辑存取地址540(3)是映射至物理页面522(0)中的物理存取地址560(3))。之后,存储器管理电路202会从物理存取地址560(3)(亦称第三物理存取地址)中读取所储存的数据。特别的是,存储器管理电路202会判断对应物理存取地址560(3)的标志580(3)是属于无效状态或是有效状态。若标志580(3)是属于有效状态,则存储器管理电路202会将读取自物理存取地址560(3)的数据传送给主机***1000。另一方面,若标志580(3)是属于无效状态,存储器管理电路202会将预设值传送给主机***1000。换句话说,在标志580(3)是属于无效状态的情况下,主机***1000会识别逻辑存取地址540(3)为未被写过数据或所储存的数据已被删除的地址,因此,存储器管理电路202直接回传预设值给主机***1000,以回应此读取指令。
值得一提的是,主机***1000所下达的一个读取指令亦可指示读取多个逻辑页面,或读取一个逻辑页面中的多个逻辑存取地址。在此例子中,存储器管理电路202会根据所接收到的读取指令,检查所对应的多个标志,并根据这些对应的标志为有效状态或是无效状态,来决定回传预设值或将从对应的物理存取地址中所读取的数据传给主机***1000,以回应此读取指令。本发明并不限制读取指令所指示要读取的逻辑存取地址的数目。
在本范例实施例中,每一个标志是用一个位来表示,当此位为“1”时表示标志为无效状态,且当此位为“0”时表示标志为有效状态。或者,“0”亦可表示无效状态,且“1”可表示有效状态。然而,每个标志也可以用其他个数的位来表示。本发明不限定用来表示标志的位个数以及有效状态与无效状态的表示方式。
图8是根据第一范例实施例所绘示的数据读取方法的流程图。
请参照图8,在步骤S802中,存储器管理电路202从主机***接收一读取指令,其中此读取指令指示读取属于第一逻辑页面(例如,逻辑页面502(0))的第二逻辑存取地址(例如,逻辑存取地址540(3))的数据。
在步骤S804中,存储器管理电路202从映射第一逻辑页面的第一物理页面(例如,物理页面522(0))的数据位区的第三物理存取地址(例如,物理存取地址560(3))中读取数据,其中属于第二逻辑存取地址的数据是被储存在第三物理存取地址中。
之后,在步骤S806中,存储器管理电路202会判断记录在第一物理页面的冗余位区中对应第三物理存取地址的标志是否为无效状态。若对应第三物理存取地址的标志不是无效状态,则在步骤S808中,存储器管理电路202会将从第三物理存取地址中读取的数据传送给主机***。若对应第三物理存取地址的标志为无效状态,则在步骤S810中,存储器管理电路202会将预设值传送给主机***。
值得一提的是,如上所述,在执行读取指令时,冗余位区所记录的标志会被用来识别物理存取地址所映射的逻辑存取地址是否处于闲置状态。因此,当主机***1000对逻辑页面进行操作时,存储器管理电路202会根据逻辑页面中的逻辑存取地址的状态设定对应的标志。具体来说,在接收到指示对一个第一逻辑页面进行变更操作(例如,写入运作)的指令(S902)时,存储器管理电路202会根据此指令识别此第一逻辑页面之中的无效逻辑存取地址与有效逻辑存取地址(S904)。在此,所指的无效逻辑存取地址是表示未被写入过数据的逻辑存取地址,或是所储存的数据已被删除的逻辑存取地址。相对的,不属于无效逻辑存取地址的其他逻辑存取地址便是有效逻辑存取地址。特别是,接着,存储器管理电路202会选择一个第一物理页面(S906),将对应第一逻辑页面的有效逻辑存取地址的标志设定为有效状态,并且将对应第一逻辑页面的无效逻辑存取地址的标志设定为无效状态(S908)。接着,存储器管理电路202会根据上述的变更操作来将对应第一逻辑页面的有效逻辑存取地址的数据编程至第一物理页面的数据位区,并且将对应第一逻辑页面的有效逻辑存取地址的标志与对应第一逻辑页面的无效逻辑存取地址的标志编程至第一物理页面的冗余位区(S910),其中无效逻辑存取地址所映射的物理存取地址中不会被写入数据。最后,存储器管理电路202会将第一物理页面映射至第一逻辑页面(S912)。也就是说,存储器管理电路202是藉由将无效状态的标志编程至物理页面的冗余位区中,藉此节省不必要的写入动作。
为了更清楚说明设定对应无效逻辑存取地址的标志的运作,以下将分别以接收到整理指令(trim command)与写入指令所进行的操作为例来作更详细的说明。
当接收到整理指令时,存储器管理电路202会根据此整理指令将已删除逻辑存取地址识别为无效逻辑存取地址并且将对应的标志设定为无效状态。具体来说,在主机***1000的操作***的文档管理机制中操作***是通过文档配置表来管理储存于存储器储存装置中的数据。特别是,在操作***执行数据的删除运作的例子中,操作***仅会于文档配置表中注记欲删除的逻辑存取地址中的数据已为无效,即完成删除数据的运作,而不会实际地将所储存的数据进行删除。之后,当操作***1000欲在这些逻辑存取地址中写入数据时,操作***1000会将数据直接写入。特别是,在本范例实施例中,主机***1000会传送整理指令来告知存储器储存装置100哪些逻辑存取地址中的数据是已被删除的资讯。在此,对于主机***1000的操作***来说,所储存的数据已被删除的逻辑存取地址被称为已删除逻辑存取地址。也就是说,整理指令所指示的变更操作是指示哪些逻辑存取地址是已删除逻辑存取地址。如上所述,当主机***1000要对已删除逻辑存取地址进行读取运作时,主机***1000会接收到一特定态样的预设值(例如,全为“0”的位串)。
图10是根据第一范例实施例绘示执行整理指令的流程图,并且图11是根据第一范例实施例绘示执行整理指令的范例示意图。在图11所示的范例中,逻辑页面502(0)原始是映射至物理页面622(0),而物理页面622(0)包括有数据位区662与冗余位区682,其中数据位区662包括物理存取地址660(0)~660(3),并且冗余位区682记录有标志680(0)~680(3)。也就是说,在存储器管理电路202接收到整理指令之前,属于逻辑页面502(0)的数据原本是储存在物理页面622(0)中。
请同时参照图10与图11,在步骤S1002中,存储器管理电路202会接收一整理指令,此整理指令所指示的变更操作是指示逻辑页面(以下称为第一逻辑页面,例如,图11的逻辑页面502(0))中的至少一第一逻辑存取地址(例如,图11的逻辑存取地址540(2)与540(3))为已删除逻辑存取地址。
在步骤S1004中,存储器管理电路202根据此整理指令识别第一逻辑页面之中的已删除逻辑存取地址为无效逻辑存取地址,并且其他逻辑存取地址(例如,图11的逻辑存取地址540(0)与540(1))识别为有效逻辑存取地址。
在步骤S1006中,存储器管理电路202会从可重写式非易失性存储器模块106中选择一个物理页面(以下称为第一物理页面,例如,如图11的物理页面522(0))。
在步骤S1008中,存储器管理电路202会将对应第一逻辑页面的有效逻辑存取地址的标志设定为有效状态,并且将对应第一逻辑页面的无效逻辑存取地址的标志设定为无效状态。例如,如图11所示,对应逻辑存取地址540(0)、540(1)的标志会被设定为有效状态,而对应逻辑存取地址540(2)、540(3)的标志会被设定为无效状态。其中每一个标志是用一个位来表示,且是暂时地被储存在缓冲存储器252中。
在步骤S1010中,存储器管理电路202会从原始映射第一逻辑页面的物理页面(以下称为第二物理页面,例如,图11的物理页面622(0))中读取属于第一逻辑页面的有效逻辑存取地址的数据。例如,如图11所示,存储器管理电路202会从物理页面622(0)的物理存取地址660(0)与660(1)读取属于逻辑页面502(0)的逻辑存取地址540(0)与540(1)的数据。
接着在步骤S1012中,存储器管理电路202会将属于第一逻辑页面的有效逻辑存取地址的数据写入至第一物理页面的第一物理存取地址(例如,图11的物理存取地址560(0)、560(1)),并且将对应第一逻辑页面的有效逻辑存取地址的标志与对应第一逻辑页面的无效逻辑存取地址的标志编程至第一物理页面的冗余位区。
例如,如图11所示,存储器管理电路202会将属于逻辑页面502(0)的有效逻辑存取地址540(0)与540(1)的数据写入至物理页面522(0)的物理存取地址560(0)与560(1)中。换言之,存储器管理电路202是将储存在物理存取地址660(0)与660(1)的数据复制到物理存取地址560(0)与560(1)中。并且,在将物理存取地址660(0)与660(1)的数据复制到物理存取地址560(0)与560(1)的同时,存储器管理电路202会从缓冲存储器252中将对应逻辑存取地址540(0)~540(3)的四个标志的值编程至冗余位区582的标志580(0)~580(3)中。具体来说,由于逻辑存取地址540(2)与540(3)是属于无效逻辑存取地址,并且逻辑存取地址540(2)与540(3)是分别映射至物理页面522(0)的物理存取地址560(2)与560(3),因此对应物理存取地址560(2)与560(3)的标志580(2)与580(3)会被编程为无效状态,用以表示逻辑存取地址540(2)与540(3)为无效逻辑存取地址。基此,存储器管理电路202无须实际地将一特定态样的预设数据写入至物理存取地址560(2)与560(3),藉此提升执行速度。另一方面,由于逻辑存取地址540(0)与540(1)是属于有效逻辑存取地址,并且逻辑存取地址540(0)与540(1)是对应至物理存取地址560(0)与560(1),因此对应物理存取地址560(0)与560(1)的标志580(0)与580(1)则会被编程为有效状态。
在步骤S1014中,存储器管理电路202会将第一物理页面(例如,图11的物理页面522(0))映射至第一逻辑页面(例如,图11的逻辑页面502(0))。
值得注意的是,图10所述的步骤的执行顺序不限于此。例如,步骤S1004与步骤S1006可以相互的调换,或者是,S1006、S1008以及步骤S1010可以互相的调换。
在本发明一范例实施例中,当接收到写入指令(write command)时,存储器管理电路202会根据此写入指令识别未被更新的逻辑存取地址的状态。特别是,当未被更新的逻辑存取地址的状态为闲置状态(即,未曾被写过数据的逻辑存取地址,或是已删除逻辑存取地址)时,存储器管理电路202会识别此未被更新的逻辑存取地址为无效逻辑存取地址并且将其对应的标志设定为无效状态。例如,在本发明一范例实施例中,存储器管理电路202会建立闲置逻辑地址表,来记录属于闲置状态的逻辑存取地址。例如,闲置逻辑地址表会被储存在***区406中并且当存储器储存装置100启动时会被载入至缓冲存储器252中以进行更新。
图12是根据第一范例实施例绘示执行写入指令的流程图,并且图13是根据第一范例实施例绘示执行写入指令的范例示意图。假设在图13所示的范例中,属于逻辑页面502(0)的逻辑存取地址540(0)、540(1)与540(2)的数据被储存在物理页面622(0)(亦称为第二物理页面)的物理存取地址660(0)、660(1)与660(2)中,并且逻辑页面502(0)的逻辑存取地址540(3)为处于闲置状态。
请同时参照图12与图13,在步骤S1202中,存储器管理电路202会从主机***1000接收到一写入指令。此写入指令所指示的变更操作是指示将一更新数据写入至第一逻辑页面中的已更新逻辑存取地址。在接收到写入指令的同时,存储器管理电会202会识别原始映射至第一逻辑页面的物理页面。例如,如图13所示,对应此写入指令的变更操作是用以指示将更新数据602写入至第一逻辑页面502(0)中的逻辑存取地址540(0)与540(1)(亦称已更新逻辑存取地址)。而第一逻辑页面502(0)是原始映射至物理页面622(0)(亦称第二物理页面)。
在步骤S1204中,存储器管理电路202会判断第一逻辑页面中除了已更新逻辑存取地址以外的其他逻辑存取地址(即,逻辑存取地址540(2)与540(3))是否为闲置状态。例如,存储器管理电路202可根据上述闲置逻辑地址表来识别处于闲置状态的逻辑存取地址。
若这些其他逻辑存取地址是闲置状态,则在步骤S1206中,存储器管理电路202会将属于闲置状态的其他逻辑存取地址识别为无效逻辑存取地址。例如,如图13所示,存储器管理电路202会将逻辑存取地址540(3)识别为无效逻辑存取地址。
若这些其他逻辑存取地址不是闲置状态,则在步骤S1208,存储器管理电路202会将不属于闲置状态的其他逻辑存取地址(例如,图13的逻辑存取地址540(2))识别为有效逻辑存取地址。
在步骤S1210中,存储器管理电路202将已更新逻辑存取地址(例如,图13的逻辑存取地址540(0)、540(1))识别为有效逻辑存取地址。也就是说,如图13所示,在经过步骤S1204、S1206、S1208与S1210之后,逻辑存取地址540(0)~540(2)会被识别为有效逻辑存取地址,而逻辑存取地址540(3)为无效逻辑存取地址。然而,值得注意的是,步骤S1210也可以在步骤S1204之前,本发明并不限定执行步骤S1204与步骤S1210的顺序。
接下来,在步骤S1212中,存储器管理电路202会从可重写式非易失性存储器模块106中选择一个物理区块的一个物理页面(以下称为第一物理页面,例如,物理页面522(0))。
在步骤S1214中,存储器管理电路202会将对应第一逻辑页面的有效逻辑存取地址的标志设定为有效状态,并将对应第一逻辑页面的无效逻辑存取地址的标志设定为无效状态。例如,如图13所示,对应有效逻辑存取地址540(0)~540(2)的标志会被设定为有效状态,而对应无效逻辑存取地址540(3)的标志会被设定为无效状态。其中每一个标志是用一个位来表示,是暂时的被储存在缓冲存储器252中。
在步骤S1216中,存储器管理电路202会从第二物理页面中读取属于非闲置状态的其他逻辑存取地址的数据。例如,如图13所示,存储器管理电路202会读取逻辑存取地址540(2)的数据。更具体来说,由于逻辑存取地址540(2)是原始映射至物理存取地址660(2),存储器管理电路202会从物理页面622(0)中读取物理存取地址660(2)所储存的数据。
在步骤S1218中,存储器管理电路202会将更新数据写入至第一物理页面的数据位区的物理存取地址之中的至少一个物理存取地址(以下称第二物理存取地址),将从第二物理页面所读取的数据写入至第一物理页面的数据位区,并且将对应第一逻辑页面的有效逻辑存取地址的标志与对应第一逻辑页面的无效逻辑存取地址的标志编程至第一物理页面的冗余位区
例如,如图13所示,存储器管理电路202会将更新数据602写入至物理页面522(0)的物理存取地址560(0)与560(1)(亦称为第二物理存取地址)中。并且,存储器管理电路202会将物理存取地址660(2)所读取的数据写入至物理存取地址560(2)中。另外,由于逻辑存取地址540(3)为无效逻辑存取地址,因此,存储器管理电路202不会将数据写入至物理页面522(0)的物理存取地址560(3)中。此外,存储器管理电路202会在将数据编程至数据位区562的同时,会将对应逻辑存取地址540(0)~540(3)的四个标志的值从缓冲存储器252中编程至冗余位区582的标志580(0)~580(3)。具体来说,由于逻辑存取地址540(0)~540(2)是有效逻辑存取地址,而逻辑存取地址540(0)~540(2)是新映射至物理存取地址560(0)~560(2),因此对应物理存取地址560(0)~560(2)的标志580(0)~580(2)会被编程为有效状态。另一方面,由于逻辑存取地址540(3)是无效逻辑存取地址,而逻辑存取地址540(3)是新映射至物理存取地址560(3),因此对应至物理存取地址560(3)的标志580(3)会被编程为无效状态。
[第二范例实施例]
第二范例实施例与第一范例实施例类似,不同之处在于存储器控制器104在将数据写入至可重写式非易失性存储器模块106时会先将数据加密,并且在从可重写式非易失性存储器模块106读取数据时会将数据解密。
图14是根据第二范例实施例绘示的存储器控制器的方块图。
请参考图14,存储器控制器104包括了主机接口204、存储器管理电路1402、存储器接口206、加密解密电路1404、电源管理电路254、缓冲存储器252以及错误检查与校正电路256,其中主机接口204、存储器接口206、电源管理电路254、缓冲存储器252以及错误检查与校正电路256的功能与运作已在第一范例实施例详细说明,在此便不再重复描述。
存储器管理电路1402本质上是相同于第一范例实施例的存储器管理电路202,其差异的处在于存储器管理电路1402会通过加密解密电路1404将欲储存至可重写式非易失性存储器模块106的数据加密,并且将读取自可重写式非易失性存储器模块106的数据解密。在本范例实施例中,加密解密电路1404使用的是进阶加密标准(Advanced EncryptionStandard,AES),然而,在其他实施例中,加密解密电路1404也可以使用数据加密标准(DataEncryption Standard,DES),本发明并不在此限。
特别的是,在本范例实施例中存储器控制器104可以根据冗余位区中的标志来避免不必要的加密解密动作,藉此增加写入与读取数据的速度。
图15是根据第二范例实施例说明将更新数据加密并写入的示意图。
请参考图15,当主机***1000要根据更新数据602来更新属于逻辑页面502(0)的数据时,主机***1000会传送写入指令以及更新数据602给存储器管理电路1402。举例来说,更新数据602是用以更新属于逻辑存取地址540(0)与540(1)的数据。并且,在本范例中,逻辑存取地址540(3)为闲置状态,并且会被存储器管理电路1402识别为无效逻辑存取地址。然而,在将更新数据602写入至物理页面522(0)之前,存储器管理电路1402会将更新数据602传送到加密解密电路1404,并且加密解密电路1404会将更新数据602加密以产生已加密更新数据900。之后,存储器管理电路1402会将已加密更新数据900写入至物理存取地址560(0)与560(1)(亦称第二物理存取地址)。并且,属于逻辑存取地址540(2)的数据也会从原始映射逻辑页面502(0)的物理页面中被复制至物理存取地址560(2)。此外,在将数据编程至物理页面522(0)的同时,存储器管理电路1402会将属于逻辑存取地址540(0)~540(3)的四个标志编程至冗余位区582,以成为标志580(0)~580(3)。具体来说,标志580(0)~580(2)会被编程为有效状态,而标志580(3)会被编程为无效状态。也就是说,存储器管理电路1402并不会将数据编程至物理存取地址560(3),由此节省编程物理页面所需的时间。
图16是根据第二范例实施例说明读取并解密数据的示意图。
请参考图16,当从主机***1000接收到指示要读取映射至物理页面522(0)的逻辑存取地址502(0)的读取指令时,存储器管理电路1402会从物理页面中522(0)读取数据。特别是,存储器管理电路1402会根据冗余位区582中的标志580(0)~580(3)来判断是否将数据传送至加密解密电路1404来进行解密。具体来说,当存储器管理电路1402从物理存取地址560(0)~560(2)中读取所储存的数据时,存储器管理电路1402会读取冗余位区582中的标志580(0)~580(2),根据有效状态的标志580(0)~580(2)将所读取的第一数据1602传送至加密解密电路1404来进行解密,以产生解密数据1604。另外,当存储器管理电路1402从物理存取地址560(3)中读取所储存的数据时,存储器管理电路1402会读取冗余位区582中的标志580(3),并且根据无效状态的标志580(3)而将预设值1606传送给主机***1000。
综上所述,本发明范例实施例所提出的存储器储存装置、存储器控制器及其所使用的编程存储单元的方法是藉由在物理页面的冗余位区中将对应无效逻辑存取地址的标志编程为无效状态,由此大幅缩短编程数据至物理页面所需的时间。此外,本发明范例实施例所提出的存储器储存装置、存储器控制器及其所使用的数据读取方法是根据物理页面的冗余位区中的标志来识别无效逻辑存取地址,由此快速地将预设数据传送给主机***。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,本领域的技术人员,在不脱离本发明的精神和范围的前提下,可作若干的更动与润饰,故本发明的保护范围是以本发明的权利要求为准。
Claims (6)
1.一种数据读取方法,用于一可重写式非易失性存储器模块,该可重写式非易失性存储器模块包括多个物理页面,每一所述物理页面包括一数据位区与一冗余位区,该数据位区包括多个物理存取地址,该冗余位区分别地记录对应所述物理存取地址的多个标志,多个逻辑页面被配置以映射部分的所述物理页面,并且每一所述逻辑页面具有多个逻辑存取地址,该数据读取方法包括:
从一主机***接收一读取指令,其中该读取指令指示读取属于所述逻辑存取地址之中的一第二逻辑存取地址的数据;
从该可重写式非易失性存储器模块的所述物理页面之中的一第一物理页面的数据位区的一第三物理存取地址中读取一数据,其中属于该第二逻辑存取地址的数据被储存在该第一物理页面的数据位区的该第三物理存取地址中;
判断记录在该第一物理页面的冗余位区中对应该第三物理存取地址的标志是否为一无效状态;
倘若记录在该第一物理页面的冗余位区中对应该第三物理存取地址的标志非为该无效状态时,将从该第一物理页面的数据位区的该第三物理存取地址中读取的数据传送给该主机***;以及
倘若记录在该第一物理页面的冗余位区中对应该第三物理存取地址的标志为该无效状态时,将一预设值传送给该主机***。
2.如权利要求1所述的数据读取方法,还包括:
解密从该第一物理页面的数据位区的该第三物理存取地址中读取的数据以获取一解密数据;以及
将该解密数据传送至该主机***以回应该读取指令。
3.一种存储器储存装置,包括:
一连接器,用以电性连接至一主机***;
一可重写式非易失性存储器模块,包括多个物理页面,每一所述物理页面包括一数据位区与一冗余位区,该数据位区包括多个物理存取地址,该冗余位区分别地记录对应所述物理存取地址的多个标志,多个逻辑页面被配置以映射部分的所述物理页面,并且每一所述逻辑页面具有多个逻辑存取地址;以及
一存储器控制器,电性连接至该连接器与该可重写式非易失性存储器模块,
其中该存储器控制器从该主机***接收一读取指令,其中该读取指令指示读取属于所述逻辑存取地址之中的一第二逻辑存取地址的数据,
其中该存储器控制器从该可重写式非易失性存储器模块的所述物理页面之中的一第一物理页面的数据位区的一第三物理存取地址中读取一数据,其中属于该第二逻辑存取地址的数据被储存在该第一物理页面的数据位区的该第三物理存取地址中,
其中该存储器控制器判断记录在该第一物理页面的冗余位区中对应该第三物理存取地址的标志是否为一无效状态,
其中倘若记录在该第一物理页面的冗余位区中对应该第三物理存取地址的标志非为该无效状态时,该存储器控制器将从该第一物理页面的数据位区的该第三物理存取地址中读取的数据传送给该主机***,
其中倘若记录在该第一物理页面的冗余位区中对应该第三物理存取地址的标志为该无效状态时,该存储器控制器将一预设值传送给该主机***。
4.如权利要求3所述的存储器储存装置,其中该存储器控制器解密从该第一物理页面的数据位区的该第三物理存取地址中读取的数据以获取一解密数据,
其中该存储器控制器还用以将该解密数据传送至该主机***以回应该读取指令。
5.一种存储器控制器,用于控制一可重写式非易失性存储器模块,其中该可重写式非易失性存储器模块包括多个物理页面,每一所述物理页面包括一数据位区与一冗余位区,该数据位区包括多个物理存取地址,该冗余位区分别地记录对应所述物理存取地址的多个标志,多个逻辑页面被配置以映射部分的所述物理页面,并且每一所述逻辑页面具有多个逻辑存取地址,该存储器控制器包括:
一主机接口,用以电性连接至一主机***;
一存储器接口,用以电性连接至该可重写式非易失性存储器模块;以及
一存储器管理电路,电性连接至该主机接口与该存储器接口,并且从该主机***接收一读取指令,其中该读取指令指示读取属于所述逻辑存取地址之中的一第二逻辑存取地址的数据,
其中该存储器管理电路从该可重写式非易失性存储器模块的所述物理页面之中的一第一物理页面的数据位区的一第三物理存取地址中读取一数据,其中属于该第二逻辑存取地址的数据被储存在该第一物理页面的数据位区的该第三物理存取地址中,
其中该存储器管理电路判断记录在该第一物理页面的冗余位区中对应该第三物理存取地址的标志是否为一无效状态,
其中倘若记录在该第一物理页面的冗余位区中对应该第三物理存取地址的标志非为该无效状态时,该存储器管理电路将从该第一物理页面的数据位区的该第三物理存取地址中读取的数据传送给该主机***,
其中倘若记录在该第一物理页面的冗余位区中对应该第三物理存取地址的标志为该无效状态时,该存储器管理电路将一预设值传送给该主机***。
6.如权利要求5所述的存储器控制器,还包括一加密解密电路,该加密解密电路用以解密从该第一物理页面的数据位区的该第三物理存取地址中读取的数据以获取一解密数据,
其中该存储器管理电路还用以将该解密数据传送至该主机***以回应该读取指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510572498.3A CN105183660B (zh) | 2012-03-23 | 2012-03-23 | 数据读取方法、存储器控制器与储存装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510572498.3A CN105183660B (zh) | 2012-03-23 | 2012-03-23 | 数据读取方法、存储器控制器与储存装置 |
CN201210079715.1A CN103324581B (zh) | 2012-03-23 | 2012-03-23 | 编程存储单元与数据读取方法、存储器控制器与储存装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210079715.1A Division CN103324581B (zh) | 2012-03-23 | 2012-03-23 | 编程存储单元与数据读取方法、存储器控制器与储存装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105183660A CN105183660A (zh) | 2015-12-23 |
CN105183660B true CN105183660B (zh) | 2018-07-13 |
Family
ID=49193340
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210079715.1A Active CN103324581B (zh) | 2012-03-23 | 2012-03-23 | 编程存储单元与数据读取方法、存储器控制器与储存装置 |
CN201510572498.3A Active CN105183660B (zh) | 2012-03-23 | 2012-03-23 | 数据读取方法、存储器控制器与储存装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210079715.1A Active CN103324581B (zh) | 2012-03-23 | 2012-03-23 | 编程存储单元与数据读取方法、存储器控制器与储存装置 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN103324581B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104657083B (zh) * | 2013-11-19 | 2017-12-22 | 群联电子股份有限公司 | 数据写入方法、存储器储存装置、存储器控制电路单元 |
KR20170056765A (ko) * | 2015-11-13 | 2017-05-24 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR20170110408A (ko) * | 2016-03-23 | 2017-10-11 | 에스케이하이닉스 주식회사 | 메모리 장치 및 이의 동작 방법 |
US20180285732A1 (en) * | 2017-03-30 | 2018-10-04 | Intel Corporation | Selective noise tolerance modes of operation in a memory |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101231622A (zh) * | 2007-12-27 | 2008-07-30 | 深圳华为通信技术有限公司 | 基于闪存的数据存储方法和设备、及数据读取方法和设备 |
CN101788955A (zh) * | 2009-01-23 | 2010-07-28 | 群联电子股份有限公司 | 闪存数据的存取方法及其储存***与控制*** |
CN101853212A (zh) * | 2009-03-30 | 2010-10-06 | 芯邦科技(深圳)有限公司 | 数据写入方法、数据读取方法和数据存储器 |
CN102053796A (zh) * | 2009-11-10 | 2011-05-11 | 群联电子股份有限公司 | 闪存储存***、闪存控制器与数据处理方法 |
CN102087632A (zh) * | 2009-12-02 | 2011-06-08 | 群联电子股份有限公司 | 用于闪存的数据储存方法及其控制器与储存*** |
CN102243613A (zh) * | 2010-05-12 | 2011-11-16 | 西部数据技术公司 | 管理固态存储器中垃圾收集的***和方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110029723A1 (en) * | 2004-08-06 | 2011-02-03 | Super Talent Electronics, Inc. | Non-Volatile Memory Based Computer Systems |
US20100185806A1 (en) * | 2009-01-16 | 2010-07-22 | Arvind Pruthi | Caching systems and methods using a solid state disk |
US8285918B2 (en) * | 2009-12-11 | 2012-10-09 | Nimble Storage, Inc. | Flash memory cache for data storage device |
-
2012
- 2012-03-23 CN CN201210079715.1A patent/CN103324581B/zh active Active
- 2012-03-23 CN CN201510572498.3A patent/CN105183660B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101231622A (zh) * | 2007-12-27 | 2008-07-30 | 深圳华为通信技术有限公司 | 基于闪存的数据存储方法和设备、及数据读取方法和设备 |
CN101788955A (zh) * | 2009-01-23 | 2010-07-28 | 群联电子股份有限公司 | 闪存数据的存取方法及其储存***与控制*** |
CN101853212A (zh) * | 2009-03-30 | 2010-10-06 | 芯邦科技(深圳)有限公司 | 数据写入方法、数据读取方法和数据存储器 |
CN102053796A (zh) * | 2009-11-10 | 2011-05-11 | 群联电子股份有限公司 | 闪存储存***、闪存控制器与数据处理方法 |
CN102087632A (zh) * | 2009-12-02 | 2011-06-08 | 群联电子股份有限公司 | 用于闪存的数据储存方法及其控制器与储存*** |
CN102243613A (zh) * | 2010-05-12 | 2011-11-16 | 西部数据技术公司 | 管理固态存储器中垃圾收集的***和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105183660A (zh) | 2015-12-23 |
CN103324581A (zh) | 2013-09-25 |
CN103324581B (zh) | 2016-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI475385B (zh) | 程式化記憶胞與資料讀取方法、記憶體控制器與儲存裝置 | |
CN104423888B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN104346103B (zh) | 指令执行方法、存储器控制器与存储器储存装置 | |
CN107844431A (zh) | 映射表更新方法、存储器控制电路单元与存储器存储装置 | |
CN104166636B (zh) | 存储器储存装置及其还原方法与存储器控制器 | |
CN104732153B (zh) | 数据抹除方法、存储器控制电路单元及存储器存储装置 | |
CN108932107B (zh) | 数据存储装置及其操作方法 | |
TWI498899B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN104636267B (zh) | 存储器控制方法、存储器存储装置与存储器控制电路单元 | |
CN106776376A (zh) | 缓冲存储器管理方法、存储器控制电路单元及存储装置 | |
CN106681932A (zh) | 存储器管理方法、存储器控制电路单元及存储器存储装置 | |
CN107402716A (zh) | 数据写入方法、内存控制电路单元与内存储存装置 | |
CN103377129A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN102890655B (zh) | 存储器储存装置、其存储器控制器与有效数据识别方法 | |
CN107240420A (zh) | 数据存储装置及其操作方法 | |
CN107590080A (zh) | 映射表更新方法、存储器控制电路单元及存储器存储装置 | |
CN105183660B (zh) | 数据读取方法、存储器控制器与储存装置 | |
CN105988950B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN102129353B (zh) | 数据写入***与数据写入方法 | |
CN107357520A (zh) | 整理指令处理方法、存储器控制电路单元及其存储装置 | |
CN103544118B (zh) | 存储器储存装置、其存储器控制器与数据写入方法 | |
CN103577344B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN103914391B (zh) | 数据读取方法、存储器控制器与存储器存储装置 | |
CN104573537B (zh) | 数据处理方法、存储器存储装置与存储器控制电路单元 | |
CN104731710B (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 |