CN105653199A - 数据读取方法、存储器存储装置及存储器控制电路单元 - Google Patents
数据读取方法、存储器存储装置及存储器控制电路单元 Download PDFInfo
- Publication number
- CN105653199A CN105653199A CN201410648589.6A CN201410648589A CN105653199A CN 105653199 A CN105653199 A CN 105653199A CN 201410648589 A CN201410648589 A CN 201410648589A CN 105653199 A CN105653199 A CN 105653199A
- Authority
- CN
- China
- Prior art keywords
- reading
- data
- event
- control circuit
- circuit unit
- 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
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供一种数据读取方法、存储器存储装置及存储器控制电路单元。此数据读取方法包括:接收第一读取指令;根据第一读取指令于多重触发队列中配置多个第一读取事件,其中第一读取事件包括一般读取事件与快取读取事件;根据第一读取事件的至少其中之一发送第一读取指令序列并且接收来自可复写式非易失性存储器模块的第一数据;以及若第一数据解码失败,重置多重触发队列,根据重置后的多重触发队列中的至少一第二读取事件发送至少一第二读取指令序列,其中第二读取事件包括所述快取读取事件的至少其中之一。
Description
技术领域
本发明是有关于一种数据读取方法,且特别是有关于一种数据读取方法、存储器存储装置及存储器控制电路单元。
背景技术
数码相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器模块(例如,快闪存储器)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内装于上述所举例的各种可携式多媒体装置中。
在存储器存储装置中,预读取(pre-read)是指在接收到某一笔来自主机系统的读取指令时,除了从可复写式非易失性存储器模块中读取此读取指令所要求的数据外,额外读取此数据的下一笔连续数据。藉此,可加快循序读取(sequentialread)的读取速度。然而,若无法有效地协调前端的指令接收与后端的数据管理(例如,错误处理),则可能使得此预读取的效能下降。
发明内容
本发明提供一种数据读取方法、存储器存储装置及存储器控制电路单元,可让前端的指令接收与后端的数据管理相互配合。
本发明的一实施例提供一种数据读取方法,其用于可复写式非易失性存储器模块,所述数据读取方法包括:配置多重触发队列(MultiTriggerQueue,简称MTQ);从主机系统接收第一读取指令;根据所述第一读取指令于所述多重触发队列中配置多个第一读取事件,其中所述第一读取事件包括一个一般读取事件与至少一快取读取事件,其中所述一般读取事件所对应的欲读取数据与所述快取读取事件所对应的欲读取数据是属于连续数据,所述一般读取事件所对应的欲读取数据是被所述第一读取指令所请求,并且所述快取读取事件所对应的欲读取数据不被所述第一读取指令所请求;根据所述第一读取事件的至少其中之一发送至少一第一读取指令序列并且接收反应于所述第一读取指令序列的来自所述可复写式非易失性存储器模块的第一数据;解码所述第一数据;以及若所述第一数据解码失败,重置所述多重触发队列,并且根据重置后的所述多重触发队列中的至少一第二读取事件发送至少一第二读取指令序列,其中所述第二读取事件包括所述快取读取事件中的至少一第一快取读取事件。
在本发明的一实施例中,所述可复写式非易失性存储器模块包括存储区与缓冲区,其中所述第一读取指令序列指示从所述存储区中读取所述第一数据,并且所述第二读取指令指示从所述存储区中读取第二数据,其中所述第一数据是从所述存储区中被读取至所述缓冲区并且被从所述缓冲区传送至存储器控制电路单元的缓冲存储器,其中所述第二数据是从所述存储区中被读取至所述缓冲区并且被从所述缓冲区传送至所述缓冲存储器。
在本发明的一实施例中,所述重置所述多重触发队列的步骤包括:将所述第一读取事件中对应至解码失败的数据的读取事件设定为待执行事件,其中所述待执行事件是所述第二读取事件中排序最前面的读取事件。
在本发明的一实施例中,所述重置所述多重触发队列的步骤包括:将所述第一读取事件中对应至解码失败的数据的读取事件设定为待执行事件,其中所述待执行事件不存在于所述多重触发队列中。
在本发明的一实施例中,在所述根据重置后的所述多重触发队列中的所述第二读取事件发送所述第二读取指令序列的步骤之前,所述数据读取方法还包括:重复执行所述待执行事件直到获得正确数据为止。
在本发明的一实施例中,所述数据读取方法还包括:将所述第一数据暂存于存储器控制电路单元的缓冲存储器;以及若所述第一数据没有解码失败,将所述第一数据中由所述第一读取指令所请求的数据从所述缓冲存储器传送至所述主机系统,并且根据所述第一读取事件中尚未被执行的至少一第三读取事件发送至少一第三读取指令序列,其中所述第三读取事件包括所述快取读取事件中的至少一第二快取读取事件。
在本发明的一实施例中,所述数据读取方法还包括:接收反应于所述第三读取指令序列的来自所述可复写式非易失性存储器模块的第三数据;解码所述第三数据;以及若所述第三数据解码失败,重置所述多重触发队列,并且根据重置后的所述多重触发队列中的至少一第四读取事件发送至少一第四读取指令序列,其中所述第四读取事件包括所述快取读取事件中的至少一第三快取读取事件。
在本发明的一实施例中,所述根据所述第一读取指令于所述多重触发队列中配置所述第一读取事件的步骤包括:由存储器控制电路单元所运行的队列管理固件(firmware)根据所述第一读取指令于所述多重触发队列中配置所述第一读取事件,其中根据所述第一读取事件的所述至少其中之一发送所述第一读取指令序列的步骤包括:由所述存储器控制电路单元中的存储器管理电路查询所述多重触发队列并且根据所述第一读取事件的所述至少其中之一发送所述第一读取指令序列。
在本发明的一实施例中,在所述根据所述第一读取事件的所述至少其中之一发送所述第一读取指令序列的步骤之前,所述数据读取方法还包括:将所述第一读取事件的其中之一的第一读取事件信息写入至缓冲存储器中的第一寄存器;将所述第一读取事件的其中之另一的第二读取事件信息写入至所述缓冲存储器中的第二寄存器;以及依照预定规则读取所述第一寄存器中的所述第一读取事件信息与所述第二寄存器中的所述第二读取事件信息。
本发明的一实施例提供一种存储器存储装置,其包括连接接口单元、可复写式非易失性存储器模块及存储器控制电路单元。所述连接接口单元用以电性连接至主机系统。所述存储器控制电路单元电性连接至所述连接接口单元与所述可复写式非易失性存储器模块,其中所述存储器控制电路单元用以配置多重触发队列,其中所述存储器控制电路单元还用以从所述主机系统接收第一读取指令,其中所述存储器控制电路单元还用以根据所述第一读取指令于所述多重触发队列中配置多个第一读取事件,其中所述第一读取事件包括一个一般读取事件与至少一快取读取事件,其中所述一般读取事件所对应的欲读取数据与所述快取读取事件所对应的欲读取数据是属于连续数据,所述一般读取事件所对应的欲读取数据是被所述第一读取指令所请求,并且所述快取读取事件所对应的欲读取数据不被所述第一读取指令所请求,其中所述存储器控制电路单元还用以根据所述第一读取事件的至少其中之一发送至少一第一读取指令序列并且接收反应于所述第一读取指令序列的来自所述可复写式非易失性存储器模块的第一数据,其中所述存储器控制电路单元还用以解码所述第一数据,其中若所述第一数据解码失败,所述存储器控制电路单元还用以重置所述多重触发队列并且根据重置后的所述多重触发队列中的至少一第二读取事件发送至少一第二读取指令序列,其中所述第二读取事件包括所述快取读取事件中的至少一第一快取读取事件。
在本发明的一实施例中,所述存储器控制电路单元重置所述多重触发队列的操作包括:将所述第一读取事件中对应至解码失败的数据的读取事件设定为待执行事件,其中所述待执行事件是所述第二读取事件中排序最前面的读取事件。
在本发明的一实施例中,所述存储器控制电路单元重置所述多重触发队列的操作包括:将所述第一读取事件中对应至解码失败的数据的读取事件设定为待执行事件,其中所述待执行事件不存在于所述多重触发队列中。
在本发明的一实施例中,在所述存储器控制电路单元执行根据重置后的所述多重触发队列中的所述第二读取事件发送所述第二读取指令序列的操作之前,所述存储器控制电路单元还用以重复执行所述待执行事件直到获得正确数据为止。
在本发明的一实施例中,所述存储器控制电路单元还用以将所述第一数据暂存于所述存储器控制电路单元的缓冲存储器,其中若所述第一数据没有解码失败,所述存储器控制电路单元还用以将所述第一数据中由所述第一读取指令所请求的数据从所述缓冲存储器传送至所述主机系统并且根据所述第一读取事件中尚未被执行的至少一第三读取事件发送至少一第三读取指令序列,其中所述第三读取事件包括所述快取读取事件中的至少一第二快取读取事件。
在本发明的一实施例中,所述存储器控制电路单元还用以接收反应于所述第三读取指令序列的来自所述可复写式非易失性存储器模块的第三数据,其中所述存储器控制电路单元还用以解码所述第三数据,其中若所述第三数据解码失败,所述存储器控制电路单元还用以重置所述多重触发队列,根据重置后的所述多重触发队列中的至少一第四读取事件发送至少一第四读取指令序列,并且接收反应于所述第四读取指令序列的来自所述可复写式非易失性存储器模块的第四数据,其中所述第四读取事件包括所述快取读取事件中的至少一第三快取读取事件。
在本发明的一实施例中,所述存储器控制电路单元根据所述第一读取指令于所述多重触发队列中配置所述第一读取事件的操作包括:由所述存储器控制电路单元所运行的队列管理固件根据所述第一读取指令于所述多重触发队列中配置所述第一读取事件,其中所述存储器控制电路单元根据所述第一读取事件的所述至少其中之一发送所述第一读取指令序列的操作包括:由所述存储器控制电路单元中的存储器管理电路查询所述多重触发队列并且根据所述第一读取事件的所述至少其中之一发送所述第一读取指令序列。
在本发明的一实施例中,所述存储器控制电路单元包括缓冲存储器,所述缓冲存储器包括第一寄存器与第二寄存器,而在所述存储器控制电路单元执行根据所述第一读取事件的所述至少其中之一发送所述第一读取指令序列的操作之前,所述存储器控制电路单元还用以:将所述第一读取事件的其中之一的第一读取事件信息写入至所述第一寄存器;将所述第一读取事件的其中之另一的第二读取事件信息写入至所述第二寄存器;以及依照预定规则读取所述第一寄存器中的所述第一读取事件信息与所述第二寄存器中的所述第二读取事件信息。
本发明的一实施例提供一种存储器控制电路单元,其用于控制可复写式非易失性存储器模块,所述存储器控制电路单元包括主机接口、存储器接口、错误检查与校正电路、缓冲存储器及存储器管理电路。主机接口用以电性连接至主机系统。存储器接口用以电性连接至所述可复写式非易失性存储器模块。存储器管理电路电性连接至所述主机接口、所述存储器接口、所述错误检查与校正电路及所述缓冲存储器,其中所述存储器管理电路用以配置多重触发队列于所述缓冲存储器,其中所述存储器管理电路还用以从所述主机系统接收第一读取指令,其中所述存储器管理电路还用以根据所述第一读取指令于所述多重触发队列中配置多个第一读取事件,其中所述第一读取事件包括一个一般读取事件与至少一快取读取事件,其中所述一般读取事件所对应的欲读取数据与所述快取读取事件所对应的欲读取数据是属于连续数据,所述一般读取事件所对应的欲读取数据是被所述第一读取指令所请求,并且所述快取读取事件所对应的欲读取数据不被所述第一读取指令所请求,其中所述存储器管理电路还用以根据所述第一读取事件的至少其中之一发送至少一第一读取指令序列并且接收反应于所述第一读取指令序列的来自所述可复写式非易失性存储器模块的第一数据,其中所述错误检查与校正电路用以解码所述第一数据,其中若所述第一数据解码失败,所述存储器管理电路还用以重置所述多重触发队列并且根据重置后的所述多重触发队列中的至少一第二读取事件发送至少一第二读取指令序列,其中所述第二读取事件包括所述快取读取事件中的至少一第一快取读取事件。
在本发明的一实施例中,所述存储器管理电路重置所述多重触发队列的操作包括:将所述第一读取事件中对应至解码失败的数据的读取事件设定为待执行事件,其中所述待执行事件是所述第二读取事件中排序最前面的读取事件。
在本发明的一实施例中,所述存储器管理电路重置所述多重触发队列的操作包括:将所述第一读取事件中对应至解码失败的数据的读取事件设定为待执行事件,其中所述待执行事件不存在于所述多重触发队列中。
在本发明的一实施例中,在所述存储器管理电路执行根据重置后的所述多重触发队列中的所述第二读取事件发送所述第二读取指令序列的操作之前,所述存储器管理电路还用以重复执行所述待执行事件直到获得正确数据为止。
在本发明的一实施例中,所述存储器管理电路还用以将所述第一数据暂存于所述缓冲存储器,其中若所述第一数据没有解码失败,所述存储器管理电路还用以将所述第一数据中由所述第一读取指令所请求的数据从所述缓冲存储器传送至所述主机系统并且根据所述第一读取事件中尚未被执行的至少一第三读取事件发送至少一第三读取指令序列,其中所述第三读取事件包括所述快取读取事件中的至少一第二快取读取事件。
在本发明的一实施例中,所述存储器管理电路还用以接收反应于所述第三读取指令序列的来自所述可复写式非易失性存储器模块的第三数据,其中所述错误检查与校正电路还用以解码所述第三数据,其中若所述第三数据解码失败,所述存储器管理电路还用以重置所述多重触发队列并且根据重置后的所述多重触发队列中的至少一第四读取事件发送至少一第四读取指令序列,其中所述第四读取事件包括所述快取读取事件中的至少一第三快取读取事件。
在本发明的一实施例中,所述存储器管理电路根据所述第一读取指令于所述多重触发队列中配置所述第一读取事件的操作包括:由所述存储器管理电路所运行的队列管理固件根据所述第一读取指令于所述多重触发队列中配置所述第一读取事件,其中所述存储器管理电路根据所述第一读取事件的所述至少其中之一发送所述第一读取指令序列的操作包括:由所述存储器管理电路中的存储器读取单元查询所述多重触发队列并且根据所述第一读取事件的所述至少其中之一发送所述第一读取指令序列。
在本发明的一实施例中,所述缓冲存储器包括第一寄存器与第二寄存器,而在所述存储器管理电路执行根据所述第一读取事件的所述至少其中之一发送所述第一读取指令序列的操作之前,所述存储器管理电路还用以:将所述第一读取事件的其中之一的第一读取事件信息写入至所述第一寄存器;将所述第一读取事件的其中之另一的第二读取事件信息写入至所述第二寄存器;以及依照预定规则读取所述第一寄存器中的所述第一读取事件信息与所述第二寄存器中的所述第二读取事件信息。
基于上述,根据接收到的读取指令,本发明可在多重触发队列中配置一般读取指令与快取读取指令。在发生解码失败时,本发明可重置多重触发队列并且根据重置后的多重触发队列来进行后续的数据读取操作。藉此,可让前端的指令接收与后端的数据管理相互配合。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据本发明的一实施例所示的主机系统与存储器存储装置的示意图;
图2是根据本发明的一实施例所示的电脑、输入/输出装置与存储器存储装置的示意图;
图3是根据本发明的一实施例所示的主机系统与存储器存储装置的示意图;
图4是图1所示的存储器存储装置的概要方块图;
图5是根据本发明的一实施例所示的可复写式非易失性存储器模块的概要方块图;
图6是根据本发明的一实施例所示的存储胞阵列的示意图;
图7是根据本发明的一实施例所示的可复写式非易失性存储器模块的示意图;
图8是根据本发明的一实施例所示的存储器控制电路单元的概要方块图;
图9是根据本发明的一实施例所示的管理可复写式非易失性存储器模块的示意图;
图10a至图10d是根据本发明的一实施例所示的读取数据的示意图;
图11a至图11f是根据本发明的一实施例所示的读取数据的示意图;
图12是根据本发明的一实施例所示的读取数据的示意图;
图13是根据本发明的一实施例所示的数据读取方法的流程图。
附图标记说明:
10:存储器存储装置;
11:主机系统;
12:电脑;
122:微处理器;
124:随机存取存储器;
126:系统总线;
128:数据传输接口;
13:输入/输出装置;
21:鼠标;
22:键盘;
23:显示器;
24:打印机;
25:随身盘;
26:存储卡;
27:固态硬盘;
31:数码相机;
32:SD卡;
33:MMC卡;
34:存储棒;
35:CF卡;
36:嵌入式存储装置;
402:连接接口单元;
404:存储器控制电路单元;
406:可复写式非易失性存储器模块;
502:存储胞阵列;
504:字符线控制电路;
506:比特线控制电路;
508:行解码器;
510:数据输入/输出缓冲器;
512:控制电路;
602:存储胞;
604:比特线;
606:字符线;
608:共用源极线;
612、614:晶体管;
700(0)~700(N):实体抹除单元;
802:存储器管理电路;
804:主机接口;
806:存储器接口;
808:错误检查与校正电路;
810:缓冲存储器;
812:电源管理电路;
901:缓冲区;
902:存储区;
903:系统区;
710(0)~710(3):实体程序化单元;
1001、1002、1003、1004:数据;
1010:多重触发队列;
1020:一般读取事件;
1030、1040、1050:快取读取事件;
S1301~S1309:步骤。
具体实施方式
一般而言,存储器存储装置(也称,存储器存储系统)包括可复写式非易失性存储器模块与控制器(出称,控制电路)。通常存储器存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储器存储装置或从存储器存储装置中读取数据。
图1是根据本发明的一实施例所示的主机系统与存储器存储装置的示意图。图2是根据本发明的一实施例所示的电脑、输入/输出装置与存储器存储装置的示意图。
请参照图1,主机系统11一般包括电脑12与输入/输出(input/output,简称I/O)装置13。电脑12包括微处理器122、随机存取存储器(randomaccessmemory,简称RAM)124、系统总线126与数据传输接口128。输入/输出装置13包括如图2的鼠标21、键盘22、显示器23与打印机24。必须了解的是,图2所示的装置非限制输入/输出装置13,输入/输出装置13可还包括其他装置。
在一实施例中,存储器存储装置10是通过数据传输接口128与主机系统11的其他元件电性连接。通过微处理器122、随机存取存储器124与输入/输出装置13的运作可将数据写入至存储器存储装置10或从存储器存储装置10中读取数据。例如,存储器存储装置10可以是如图2所示的随身盘25、存储卡26或固态硬盘(SolidStateDrive,简称SSD)27等的可复写式非易失性存储器存储装置。
图3是根据本发明的一实施例所示的主机系统与存储器存储装置的示意图。
一般而言,主机系统11为可实质地与存储器存储装置10配合以存储数据的任意系统。虽然在本实施例中,主机系统11是以电脑系统来作说明,然而,另一实施例中,主机系统11可以是数码相机、摄影机、通信装置、音频播放器或视频播放器等系统。例如,在主机系统为数码相机(摄影机)31时,可复写式非易失性存储器存储装置则为其所使用的SD卡32、MMC卡33、存储棒(memorystick)34、CF卡35或嵌入式存储装置36(如图3所示)。嵌入式存储装置36包括嵌入式多媒体卡(EmbeddedMMC,简称eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机系统的基板上。
图4是图1所示的存储器存储装置的概要方块图。
请参照图4,存储器存储装置10包括连接接口单元402、存储器控制电路单元404与可复写式非易失性存储器模块406。
在本范例实施例中,连接接口单元402是相容于串行高级技术附件(SerialAdvancedTechnologyAttachment,简称SATA)标准。然而,必须了解的是,本发明不限于此,连接接口单元402也可以是符合并行高级技术附件(ParallelAdvancedTechnologyAttachment,简称PATA)标准、电气和电子工程师协会(InstituteofElectricalandElectronicEngineers,简称IEEE)1394标准、高速周边零件连接接口(PeripheralComponentInterconnectExpress,简称PCIExpress)标准、通用串行总线(UniversalSerialBus,简称USB)标准、安全数字(SecureDigital,简称SD)接口标准、超高速一代(UltraHighSpeed-I,简称UHS-I)接口标准、超高速二代(UltraHighSpeed-II,简称UHS-II)接口标准、存储棒(MemoryStick,简称MS)接口标准、多媒体存储卡(MultiMediaCard,简称MMC)接口标准、崁入式多媒体存储卡(EmbeddedMultimediaCard,简称eMMC)接口标准、通用快闪存储器(UniversalFlashStorage,简称UFS)接口标准、小型快闪(CompactFlash,简称CF)接口标准、整合式驱动电子接口(IntegratedDeviceElectronics,简称IDE)标准或其他适合的标准。连接接口单元402可与存储器控制电路单元404封装在一个芯片中,或者连接接口单元402是布设于一包含存储器控制电路单元404的芯片外。
存储器控制电路单元404用以执行以硬件型式或固件型式实作的多个逻辑闸或控制指令,并且根据主机系统11的指令在可复写式非易失性存储器模块406中进行数据的写入、读取与抹除等运作。
可复写式非易失性存储器模块406是电性连接至存储器控制电路单元404,并且用以存储主机系统11所写入的数据。可复写式非易失性存储器模块406可以是单阶存储胞(SingleLevelCell,简称SLC)NAND型快闪存储器模块、多阶存储胞(MultiLevelCell,简称MLC)NAND型快闪存储器模块(即,一个存储胞中可存储2个比特数据的快闪存储器模块)、三阶存储胞(TripleLevelCell,简称TLC)NAND型快闪存储器模块(即,一个存储胞中可存储3个比特数据的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存储器模块。
图5是根据本发明的一实施例所示的可复写式非易失性存储器模块的概要方块图。图6是根据本发明的一实施例所示的存储胞阵列的示意图。
请参照图5,可复写式非易失性存储器模块406包括存储胞阵列502、字符线控制电路504、比特线控制电路506、行解码器(columndecoder)508、数据输入/输出缓冲器510与控制电路512。
在本实施例中,存储胞阵列502可包括用以存储数据的多个存储胞602、多个选择栅漏极(selectgatedrain,简称SGD)晶体管612与多个选择栅源极(selectgatesource,简称SGS)晶体管614、以及连接此些存储胞的多条比特线604、多条字符线606、与共用源极线608(如图6所示)。存储胞602是以阵列方式(或立体堆叠的方式)配置在比特线604与字符线606的交叉点上。当从存储器控制电路单元404接收到写入指令或读取指令时,控制电路512会控制字符线控制电路504、比特线控制电路506、行解码器508、数据输入/输出缓冲器510来写入数据至存储胞阵列502或从存储胞阵列502中读取数据,其中字符线控制电路504用以控制施予至字符线606的电压,比特线控制电路506用以控制施予至比特线604的电压,行解码器508依据指令中的列地址以选择对应的比特线,并且数据输入/输出缓冲器510用以暂存数据。
可复写式非易失性存储器模块406中的每一个存储胞是以临界电压的改变来存储一或多个比特。具体来说,每一个存储胞的控制栅极(controlgate)与通道之间有一个电荷捕捉层。通过施予一写入电压至控制栅极,可以改变电荷补捉层的电子量,因而改变了存储胞的临界电压。此改变临界电压的程序也称为”把数据写入至存储胞”或”程序化存储胞”。随着临界电压的改变,存储胞阵列502的每一个存储胞具有多个存储状态。并且通过读取电压可以判断存储胞是属于哪一个存储状态,藉此取得存储胞所存储的一或多个比特。
图7是根据本发明的一实施例所示的可复写式非易失性存储器模块的示意图。
请参照图7,可复写式非易失性存储器模块406的存储胞会构成多个实体程序化单元,并且此些实体程序化单元会构成多个实体抹除单元700(0)~700(N)。具体来说,同一条字符线上的存储胞会组成一或多个实体程序化单元。若每一个存储胞可存储2个以上的比特,则同一条字符线上的实体程序化单元至少可被分类为下实体程序化单元与上实体程序化单元。例如,一存储胞的最低有效比特(LeastSignificantBit,简称LSB)是属于下实体程序化单元,并且一存储胞的最高有效比特(MostSignificantBit,简称MSB)是属于上实体程序化单元。一般来说,在MLCNAND型快闪存储器中,下实体程序化单元的写入速度会大于上实体程序化单元的写入速度,或下实体程序化单元的可靠度是高于上实体程序化单元的可靠度。在此范例实施例中,实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。例如,实体程序化单元为实体页面或是实体扇(sector)。若实体程序化单元为实体页面,则每一个实体程序化单元通常包括数据比特区与冗余比特区。数据比特区包含多个实体扇,用以存储使用者的数据,而冗余比特区用以存储系统的数据(例如,错误更正码)。在本实施例中,每一个数据比特区包含32个实体扇,且一个实体扇的大小为512字节(byte,简称B)。然而,在其他实施例中,数据比特区中也可包含8个、16个或数目更多或更少的实体扇,本发明并不限制实体扇的大小以及个数。另一方面,实体抹除单元为抹除的最小单位。也即,每一实体抹除单元含有最小数目之一并被抹除的存储胞。例如,实体抹除单元为实体区块。
可复写式非易失性存储器模块406可以是以第一程序化模式或第二程序化模式来使用。例如,以第一程序化模式或第二程序化模式来使用可复写式非易失性存储器模块406中的一个实体程序化单元是指以第一程序化模式或第二程序化模式来程序化此实体程序化单元中的存储胞。第一程序化模式亦称为多层存储胞模式。若是以第一程序化模式来使用一个实体程序化单元,则此实体程序化单元中的每一个存储胞存储有一第一数量的比特数据,其中此第一数量不小于2。例如,此第一数量为2或3。第二程序化模式包括单层存储胞模式(SLCmode)、下实体程序化模式(lowerphysicalprogrammingunitprogrammingmode)、混合程序化模式(mixtureprogrammingmode)及少层存储胞模式的至少其中之一。若是以单层存储胞模式来使用一个实体程序化单元,则此实体程序化单元中的每一个存储胞只存储一个比特数据。若是以下实体程序化模式来使用可复写式非易失性存储器模块406,则可复写式非易失性存储器模块406中只有属于下实体程序化单元的实体程序化单元会被程序化,而下实体程序化单元所对应的上实体程序化单元可以不被程序化。若是以混合程序化模式来使用可复写式非易失性存储器模块406,则有效数据(或真实数据)会被程序化至属于下实体程序化单元的实体程序化单元中,而不会被程序化至属于上实体程序化单元的实体程序化单元中,但对应于有效数据(或真实数据)的无效数据(或虚拟数据)则会被程序化至属于上实体程序化单元的实体程序化单元中。若是以少层存储胞模式来使用一个实体程序化单元,则此实体程序化单元中的每一个存储胞存储有一第二数量的比特数据,其中此第二数量小于第一数量。例如,此第二数量为1或2。一般来说,使用第二程序化模式的实体程序化单元的程序化速度会高于使用第一程序化模式的实体程序化单元的程序化速度。
图8是根据本发明的一实施例所示的存储器控制电路单元的概要方块图。
请参照图8,存储器控制电路单元404包括存储器管理电路802、主机接口804、存储器接口806、错误检查与校正电路808及缓冲存储器810。
存储器管理电路802用以控制存储器控制电路单元404的整体运作。具体来说,存储器管理电路802具有多个控制指令,并且在存储器存储装置10运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。以下说明存储器管理电路802的操作时,等同于说明存储器控制电路单元404的操作,以下并不再赘述。
在本实施例中,存储器管理电路802的控制指令是以固件型式来实作。例如,存储器管理电路802具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器存储装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。
在另一实施例中,存储器管理电路802的控制指令也可以程序码型式存储于可复写式非易失性存储器模块406的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路802具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有开机码(bootcode),并且当存储器控制电路单元404被致能时,微处理器单元会先执行此开机码来将存储于可复写式非易失性存储器模块406中的控制指令载入至存储器管理电路802的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。
此外,在另一实施例中,存储器管理电路802的控制指令也可以一硬件型式来实作。例如,存储器管理电路802包括微控制器、存储器管理单元、存储器写入单元、存储器读取单元、存储器抹除单元与数据处理单元。存储器管理单元、存储器写入单元、存储器读取单元、存储器抹除单元与数据处理单元是电性连接至微控制器。其中,存储器管理单元用以管理可复写式非易失性存储器模块406的实体抹除单元;存储器写入单元用以对可复写式非易失性存储器模块406下达写入指令以将数据写入至可复写式非易失性存储器模块406中;存储器读取单元用以对可复写式非易失性存储器模块406下达读取指令以从可复写式非易失性存储器模块406中读取数据;存储器抹除单元用以对可复写式非易失性存储器模块406下达抹除指令以将数据从可复写式非易失性存储器模块406中抹除;而数据处理单元用以处理欲写入至可复写式非易失性存储器模块406的数据以及从可复写式非易失性存储器模块406中读取的数据。
主机接口804是电性连接至存储器管理电路802并且用以接收与识别主机系统11所传送的指令与数据。也就是说,主机系统11所传送的指令与数据会通过主机接口804来传送至存储器管理电路802。在本实施例中,主机接口804是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口804也可以是相容于PATA标准、IEEE1394标准、PCIExpress标准、USB标准、SD标准、UHS-I标准、UHS-II标准、MS标准、MMC标准、eMMC标准、UFS标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口806是电性连接至存储器管理电路802并且用以存取可复写式非易失性存储器模块406。也就是说,欲写入至可复写式非易失性存储器模块406的数据会经由存储器接口806转换为可复写式非易失性存储器模块406所能接受的格式。具体来说,若存储器管理电路802要存取可复写式非易失性存储器模块406,存储器接口806会传送对应的指令序列。这些指令序列可包括一或多个信号,或是在总线上的数据。例如,在读取指令序列中,会包括读取的辨识码、存储器地址等信息。
错误检查与校正电路808是电性连接至存储器管理电路802并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路802从主机系统11中接收到写入指令时,错误检查与校正电路808会为对应此写入指令的数据产生对应的错误更正码(errorcorrectingcode,简称ECC)及/或错误检查码(errordetectingcode,简称EDC),并且存储器管理电路802会将对应此写入指令的数据与对应的错误更正码及/或错误检查码写入至可复写式非易失性存储器模块406中。之后,当存储器管理电路802从可复写式非易失性存储器模块406中读取数据时会同时读取此数据对应的错误更正码及/或错误检查码,并且错误检查与校正电路808会依据此错误更正码及/或错误检查码对所读取的数据执行错误检查与校正程序。
缓冲存储器810是电性连接至存储器管理电路802并且用以暂存来自于主机系统11的数据与指令或来自于可复写式非易失性存储器模块406的数据。
在一实施例中,存储器控制电路单元404还包括电源管理电路812。电源管理电路812是电性连接至存储器管理电路802并且用以控制存储器存储装置10的电源。
在本实施例中,错误检查与校正电路808所使用的是低密度奇偶检查校正码(lowdensityparitycode,简称LDPC)。然而,在另一实施例中,错误检查与校正电路808所使用的也可以是BCH码、回旋码(convolutionalcode)、涡轮码(turbocode),本发明不加以限制。
在本实施例中,错误检查与校正电路808会根据一个低密度奇偶检查演算法来编码与解码。在低密度奇偶检查校正码中,是用一个奇偶检查矩阵来定义有效的码字。以下将奇偶检查矩阵标记为矩阵H,并且一码字标记为CW。依照以下方程式(1),若奇偶检查矩阵H与码字CW的相乘是零向量,表示码字CW为有效的码字。其中运算子表示模2(mod2)的矩阵相乘。换言之,矩阵H的零空间(nullspace)便包含了所有的有效码字。然而,本发明并不限制码字CW的内容。例如,码字CW也可以包括用任意演算法所产生的错误更正码或是错误检查码。
其中矩阵H的维度是m-乘-n(m-by-n),码字CW的维度是1-乘-n。m与n为正整数。码字CW中包括了信息比特与奇偶比特,即码字CW可以表示成[MP],其中向量M是由信息比特所组成,向量P是由奇偶比特所组成。向量M的维度是1-乘-(n-m),而向量P的维度是1-乘-m。以下将信息比特与奇偶比特统称为数据比特。换言之,码字CW中具有n个数据比特,其中信息比特的长度为(n-m)比特,并且奇偶比特的长度是m比特,即码字CW的码率(coderate)为(n-m)/n。
一般来说,在编码时会使用一个产生矩阵(以下标记为G),使得对于任意的向量M都可满足以下方程式(2)。其中产生矩阵G的维度是(n-m)-乘-n。
由方程式(2)所产生的码字CW为有效的码字。因此可将方程式(2)代入方程式(1),藉此得到以下方程式(3)。
由于向量M可以是任意的向量,因此以下方程式(4)必定会满足。也就是说,在决定奇偶检查矩阵H以后,对应的产生矩阵G也可被决定。
在解码一个码字CW时,会先对码字中的数据比特执行一个奇偶检查程序,例如将奇偶检查矩阵H与码字CW相乘以产生一个向量(以下标记为S,如以下方程式(5)所示)。若向量S是零向量,则可直接输出码字CW。若向量S不是零向量,则表示码字CW不是有效的码字。
向量S的维度是m-乘-1,其中每一个元素亦称为校验子(syndrome)。若码字CW不是有效的码字,则错误检查与校正电路808会执行一个解码程序,以尝试更正码字CW中的错误比特。在一范例实施例中,错误检查与校正电路808所执行的解码程序为一迭代(iteration)解码程序。也就是说,解码的程序会不断的重复执行,直到成功的解出码字或执行次数到达一预定门限值为止。若成功的解出码字,表示解码成功;反之,则表示解码失败。例如,在对于码字CW的解码程序的执行次数到达上述预设门限值时,若还无法确定码字CW中的错误比特,表示错误检查与校正电路808对于码字CW解码失败。
在本实施例中,若对于某一个码字解码失败,则存储器管理电路802会调整读取电压,并且利用调整后的读取电压来取得另一个码字。例如,假设原先用来读取某一个实体程序化单元中的存储胞的读取电压是预设读取电压,则在对于读取出的数据解码失败之后,存储器管理电路802会指示可复写式非易失性存储器模块406使用与预设读取电压不同的另一个读取电压来再次读取此实体程序化单元中的存储胞以取得另一个码字。在取得另一个码字之后,错误检查与校正电路808会对此另一个码字进行解码;若可解码成功,则错误检查与校正电路808会输出此码字;若解码失败,则存储器管理电路802会重复执行上述调整读取电压等操作,直到可成功解码或切换读取电压的次数达到一预设次数为止。
图9是根据本发明的一实施例所示的管理可复写式非易失性存储器模块的示意图。必须了解的是,在此描述可复写式非易失性存储器模块406的实体抹除单元的运作时,以“选择”、“分组”、“划分”、“关联”等词来操作实体抹除单元是逻辑上的概念。也就是说,可复写式非易失性存储器模块406的实体抹除单元的实际位置并未更动,而是逻辑上对可复写式非易失性存储器模块的实体抹除单元进行操作。
请参照图8,存储器管理电路802可将可复写式非易失性存储器模块406的实体抹除单元700(0)~700(N)逻辑地划分为多个区域,例如为缓冲区901、存储区902及系统区903。
缓冲区901的实体抹除单元700(0)~700(A)是用以暂存主机系统11欲写入或接收的数据。例如,在存储器管理电路802接收到主机系统11欲写入至存储区902的数据之后,此数据会被暂存在缓冲存储器810;尔后,此数据会被从缓冲存储器810传送到缓冲区901并且从缓冲区901复制到存储区902。例如,在存储器管理电路802从存储区902读取出一笔数据之后,此数据会被暂存在缓冲区901;尔后,此数据会被从缓冲区901传送至缓冲存储器810并且可被从缓冲存储器810传送至主机系统11。
存储区902的实体抹除单元700(A+1)~700(B)是用以存储来自主机系统11的数据。存储区902中会存储有效数据与无效数据。例如,当主机系统11要删除一份有效数据时,被删除的数据可能还是存储在存储区902中,但会被标记为无效数据。没有存储有效数据的实体抹除单元亦被称为闲置(spare)实体抹除单元。例如,被抹除以后的实体抹除单元便会成为闲置实体抹除单元。若缓冲区901、存储区902或系统区903中有实体抹除单元损坏时,缓冲区901或存储区902中的实体抹除单元也可以用来替换损坏的实体抹除单元。倘若缓冲区901或存储区902中没有可用的实体抹除单元来替换损坏的实体抹除单元时,则存储器管理电路802会将整个存储器存储装置10宣告为写入保护(writeprotect)状态,而无法再写入数据。
系统区903的实体抹除单元700(B+1)~700(N)是用以记录系统数据,其中此系统数据包括关于存储器芯片的制造商与型号、存储器芯片的实体抹除单元数、每一实体抹除单元的实体程序化单元数等。
缓冲区901、存储区902及系统区903的实体抹除单元的数量会依据不同的存储器规格而有所不同。此外,必须了解的是,在存储器存储装置10的运作中,实体抹除单元关联至缓冲区901、存储区902及系统区903的分组关系会动态地变动。例如,当系统区903中的实体抹除单元损坏而被存储区902的实体抹除单元取代时,则原本在存储区902的实体抹除单元会被关联至系统区903。
在本实施例中,缓冲区901的实体抹除单元是使用上述第二程序化模式,而存储区902的实体抹除单元是使用上述第一程序化模式。然而,在另一实施例中,缓冲区901也可以是使用上述第一程序化模式及/或存储区902的实体抹除单元也可以是使用上述第二程序化模式。此外,系统区903的实体抹除单元也可以是使用上述第一程序化模式或上述第二程序化模式,本发明不加以限制。此外,也可以不划分缓冲区901。例如,在一实施例中,实体抹除单元700(0)~700(N)仅被划分为存储区902与系统区903;藉此,数据可直接从缓冲存储器810传送到存储区902或者直接从存储区902传送到缓冲存储器810。或者,在另一实施例中,缓冲区901的数目也可以是更多,本发明不加以限制。
在本实施例中,存储器管理电路802会配置多重触发队列(MultiTriggerQueue,简称MTQ)。例如,此多重触发队列存储于缓冲存储器810。存储器管理电路802会从主机系统11接收一个读取指令(也称为第一读取指令)。存储器管理电路802会根据第一读取指令于此多重触发队列中配置多个读取事件(也称为第一读取事件)。第一读取事件包括一个一般读取事件与至少一快取读取事件。一般读取事件所对应的欲读取数据与每一个快取读取事件所对应的欲读取数据是属于连续数据,一般读取事件所对应的欲读取数据是被第一读取指令所请求,并且每一个快取读取事件所对应的欲读取数据不被第一读取指令所请求。也就是说,快取读取事件是指示执行预读取(pre-read)操作。由于一般读取事件所对应的欲读取数据与每一个快取读取事件所对应的欲读取数据是属于连续数据,因此快取读取事件中排序最前面的所对应的欲读取数据的起始逻辑地址会是接续于一般读取事件所对应的欲读取数据的结束逻辑地址;快取读取事件中排序第二的所对应的欲读取数据的起始逻辑地址会是接续于快取读取事件中排序最前面的所对应的欲读取数据的结束逻辑地址;快取读取事件中排序第三的所对应的欲读取数据的起始逻辑地址会是接续于快取读取事件中排序第二的所对应的欲读取数据的结束逻辑地址,以此类推。根据第一读取事件在多重触发队列中的排序,由前至后,第一读取指令所请求的数据与多笔预读取数据会依序被读取。
存储器管理电路802会根据第一读取事件的至少其中之一发送至少一个读取指令序列(也称为第一读取指令序列)至可复写式非易失性存储器模块406并且接收反应于第一读取指令序列的来自可复写式非易失性存储器模块406的数据(也称为第一数据)。在此,第一读取指令序列包括至少一个指令码或程序码并且用以指示从存储区902中读取第一数据。在接收到第一数据之后,第一数据会被暂存在缓冲存储器810并且错误检查与校正电路808会对第一数据进行解码。关于错误检查与校正电路808如何解码已于前述说明,在此便不赘述。在另一实施例中,第一数据也可以是先被传送至错误检查与校正电路808进行解码,解码成功后才会被暂存到缓冲存储器810;若解码失败则不将第一数据暂存于缓冲存储器810。
存储器管理电路802会判断第一数据是否解码失败。若第一数据解码失败,存储器管理电路802会重置多重触发队列,根据重置后的多重触发队列中的至少一读取事件(也称为第二读取事件)发送至少一读取指令序列(也称为第二读取指令序列)至可复写式非易失性存储器模块406,并且接收反应于第二读取指令序列的来自可复写式非易失性存储器模块406的数据(也称为第二数据)。在此,第二读取指令序列包括至少一个指令码或程序码并且用以指示从存储区902中读取第二数据。在接收到第二数据之后,第二数据会被暂存在缓冲存储器810并且错误检查与校正电路808会对第二数据进行解码。在另一实施例中,第二数据也可以是先被传送至错误检查与校正电路808进行解码,解码成功后才会被暂存到缓冲存储器810;若解码失败则不将第二数据暂存于缓冲存储器810。特别是,所述第二读取事件会包括所述快取读取事件的至少其中之一(也称为第一快取读取事件)。
值得一提的是,在本实施例中,当重置多重触发队列时,存储器管理电路802会将第一读取事件中对应至解码失败的数据的读取事件设定为待执行事件。其中,待执行事件是所述第二读取事件中排序最前面的读取事件。藉此,对应至解码失败的数据的读取事件会在重置后的多重触发队列中被再次执行。
若第一数据没有解码失败,存储器管理电路802会将第一数据中由第一读取指令所请求的数据从缓冲存储器810传送至主机系统11。若第一读取事件中还有尚未被执行的至少一读取事件(也称为第三读取事件),存储器管理电路802会根据第三读取事件发送至少一读取指令序列(也称为第三读取指令序列)至可复写式非易失性存储器模块406,并且接收反应于第三读取指令序列的来自可复写式非易失性存储器模块406的数据(也称为第三数据)。在此,第三读取指令序列包括至少一个指令码或程序码并且用以指示从存储区902中读取第三数据。在接收到第三数据之后,第三数据会被暂存在缓冲存储器810并且错误检查与校正电路808会对第三数据进行解码。在另一实施例中,第三数据也可以是先被传送至错误检查与校正电路808进行解码,解码成功后才会被暂存到缓冲存储器810;若解码失败则不将第三数据暂存于缓冲存储器810。特别是,所述第三读取事件会包括所述快取读取事件的至少其中之一(也称为第二快取读取事件)。在另一实施例中,若第一数据已经是第一读取事件所指示的最后一笔须读取的数据,则存储器管理电路802不会发送三读取指令序列。
在接收到第三数据之后,存储器管理电路802会判断第三数据是否解码失败。若第三数据解码失败,存储器管理电路802会重置多重触发队列,根据重置后的多重触发队列中的至少一读取事件(也称为第四读取事件)发送至少一读取指令序列(也称为第四读取指令序列),并且接收反应于第四读取指令序列的来自可复写式非易失性存储器模块406的数据(也称为第四数据)。在此,第四读取指令序列包括至少一个指令码或程序码并且用以指示从存储区902中读取第四数据。在接收到第四数据之后,第四数据会被暂存在缓冲存储器810并且错误检查与校正电路808会对第四数据进行解码。在另一实施例中,第四数据也可以是先被传送至错误检查与校正电路808进行解码,解码成功后才会被暂存到缓冲存储器810;若解码失败则不将第四数据暂存于缓冲存储器810。特别是,所述第四读取事件会包括所述快取读取事件的至少其中之一(也称为第三快取读取事件)。
另一方面,在接收到第二数据之后,存储器管理电路802会判断第二数据是否解码失败。若第二数据解码失败,存储器管理电路802会再次重置多重触发队列,根据再次重置后的多重触发队列中的至少一读取事件(也称为第五读取事件)发送至少一读取指令序列(也称为第五读取指令序列),并且接收反应于第五读取指令序列的来自可复写式非易失性存储器模块406的数据(也称为第五数据)。在此,第五读取指令序列包括至少一个指令码或程序码并且用以指示从存储区902中读取第五数据。在接收到第五数据之后,第五数据会被暂存在缓冲存储器810并且错误检查与校正电路808会对第五数据进行解码。在另一实施例中,第五数据也可以是先被传送至错误检查与校正电路808进行解码,解码成功后才会被暂存到缓冲存储器810;若解码失败则不将第五数据暂存于缓冲存储器810。特别是,所述第五读取事件包括所述快取读取事件的至少其中之一(也称为第四快取读取事件)。
也就是说,若某一笔数据没有解码失败,则存储器管理电路802会判断多重触发队列中是否还存在尚未被执行的读取事件。若是,则根据多重触发队列中尚未被执行的读取事件,更多的数据会被读取、对应的解码程序会被执行并且根据解码是否失败多重触发队列可能会被重置,在此便不赘述。
在接收到第一读取指令之后,存储器管理电路802可接收另一读取指令(也称为第二读取指令)。存储器管理电路802会判断第二读取指令所请求的数据是否包含在上述第一数据、第二数据、第三数据或第四数据中。若第二读取指令所请求的数据已包含在上述第一数据、第二数据、第三数据或第四数据中,则存储器管理电路802会将第二读取指令所请求的数据从缓冲存储器810传送至主机系统11。藉此,可加快数据读取速度。
图10a至图10d是根据本发明的一实施例所示的读取数据的示意图。
请参照图10a,在接收到第一读取指令之后,多重触发队列1010中会被配置多个读取事件,例如,一般读取事件1020与快取读取事件1030~1050。一般读取事件1020是指示读取第一读取指令所请求的数据,而快取读取事件1030~1050是指示读取不是第一读取指令所请求的数据。也就是说,快取读取事件1030~1050不是由主机系统11发起的,而是由存储器管理电路802发起的用以执行预读取操作的指示。其中,一般读取事件1020与快取读取事件1030~1050所指示读取的数据是属于连续数据。关于连续数据的定义已于前述说明,在此便不赘述。值得一提的是,在此虽然是以根据一个读取指令配置一个一般读取事件与多个快取读取事件作为范例,然而,在另一实施例中,根据一个读取指令也可能配置多个一般读取事件与多个快取读取事件,本发明不加以限制。其中,若根据一个读取指令配置多个一般读取事件,则此些一般读取事件所对应的欲读取的数据都是属于此读取指令所请求的数据。此外,多重触发队列1010中可被配置的快取读取事件的数目也可以更多或更少。例如,可根据缓冲存储器810的容量及/或缓冲区901的容量来决定多重触发队列1010中可被配置的快取读取事件的数目。若缓冲存储器810的容量及/或缓冲区901的容量越大,则多重触发队列1010中可被配置的快取读取事件的数目可以越多;若缓冲存储器810的容量及/或缓冲区901的容量越小,则多重触发队列1010中可被配置的快取读取事件的数目越少。
在本实施例中,一般读取事件1020排序在最前面,而快取读取事件1030~1050排序在相对应的一般读取事件1020之后,如图10a所示。也就是说,在执行顺序上,一般读取事件1020会先被执行;尔后,快取读取事件1030会被执行;尔后,快取读取事件1040会被执行;最后,快取读取事件1050会被执行。在本范例实施例中,一个指标可以用来指示目前正在执行多重触发队列1010中的哪一个读取事件,并且在一个读取事件被执行完毕之后,此指标会下移而指示下一个需被执行的读取事件。然而,在执行此些读取事件的过程中,若多重触发队列1010被重置,则前一个被执行的读取事件会被重复执行。例如,若多重触发队列1010被重置,则此指标会停留在前一个被执行完毕的读取事件,而不会往下移动。
如图10a所示,假设第一读取指令是请求某一逻辑地址的数据1001,则根据一般读取事件1020,数据1001会被从实体程序化单元710(0)读取至缓冲区901。数据1001会被从缓冲区901传送至缓冲存储器810,并且错误检查与校正电路808会对数据1001进行解码。假设数据1001可以成功地解码,解码后的数据1001会被传送至主机系统11,并且快取读取事件1030会接续被执行。
请参照图10b,根据快取读取事件1030,数据1002会被从实体程序化单元710(1)读取至缓冲区901。数据1002会被从缓冲区901传送至缓冲存储器810,并且错误检查与校正电路808会对数据1002进行解码。假设数据1002可以成功地解码,则解码后的数据1002会被暂存于缓冲存储器810,并且快取读取事件1040会接续被执行。尔后,若接收到请求读取数据1002的读取指令,则数据1002可随即被从缓冲存储器810传送至主机系统11。
请参照图10c,根据快取读取事件1040,数据1003会被从实体程序化单元710(2)读取至缓冲区901。数据1003会被从缓冲区901传送至缓冲存储器810,并且错误检查与校正电路808会对数据1003进行解码。假设数据1003可以成功地解码,则解码后的数据1003会被暂存于缓冲存储器810,并且快取读取事件1050会接续被执行。尔后,若接收到请求读取数据1003的读取指令,则数据1003可随即被从缓冲存储器810传送至主机系统11。
请参照图10d,根据快取读取事件1050,数据1004会被从实体程序化单元710(3)读取至缓冲区901。数据1004会被从缓冲区901传送至缓冲存储器810,并且错误检查与校正电路808会对数据1004进行解码。假设数据1004可以成功地解码,则解码后的数据1004会被暂存于缓冲存储器810。尔后,若接收到请求读取数据1004的读取指令,则数据1004可随即被从缓冲存储器810传送至主机系统11。
图11a至图11f是根据本发明的一实施例所示的读取数据的示意图。
请参照图11a,根据第一读取指令,多重触发队列1010中同样被配置多个读取事件,例如,一般读取事件1020与快取读取事件1030~1050。假设第一读取指令是请求某一逻辑地址的数据1001,则根据一般读取事件1020,数据1001会被从实体程序化单元710(0)读取至缓冲区901。数据1001会被从缓冲区901传送至缓冲存储器810,并且错误检查与校正电路808会对数据1001进行解码。假设数据1001解码失败,则多重触发队列1010会被重置,并且一般读取事件1020会被再次执行。
请参照图11b,根据被重置的多重触发队列1010,数据1001会再次被从实体程序化单元710(0)读取至缓冲区901。数据1001会被从缓冲区901传送至缓冲存储器810,并且错误检查与校正电路808会对数据1001进行解码。假设再次读取的数据1001解码成功,则数据1001会被从缓冲存储器810传送至主机系统11,并且快取读取事件1030会接续被执行。
请参照图11c,根据快取读取事件1030,数据1002会被从实体程序化单元710(1)读取至缓冲区901。数据1002会被从缓冲区901传送至缓冲存储器810,并且错误检查与校正电路808会对数据1002进行解码。假设数据1002可以成功地解码,则解码后的数据1002会被暂存于缓冲存储器810,并且快取读取事件1040会接续被执行。尔后,若接收到请求读取数据1002的读取指令,则数据1002可随即被从缓冲存储器810传送至主机系统11。
请参照图11d,根据快取读取事件1040,数据1003会被从实体程序化单元710(2)读取至缓冲区901。数据1003会被从缓冲区901传送至缓冲存储器810,并且错误检查与校正电路808会对数据1003进行解码。假设数据1003解码失败,则多重触发队列1010会再次被重置,并且快取读取事件1040会被再次执行。
如图11e所示,根据快取读取事件1040,数据1003会被从实体程序化单元710(2)读取至缓冲区901。数据1003会被从缓冲区901传送至缓冲存储器810,并且错误检查与校正电路808会对数据1003进行解码。假设再次读取的数据1003可以成功地解码,则解码后的数据1003会被暂存于缓冲存储器810,并且快取读取事件1050会接续被执行。尔后,若接收到请求读取数据1003的读取指令,则数据1003可随即被从缓冲存储器810传送至主机系统11。
如图11f所示,根据快取读取事件1050,数据1004会被从实体程序化单元710(3)读取至缓冲区901。数据1004会被从缓冲区901传送至缓冲存储器810,并且错误检查与校正电路808会对数据1004进行解码。假设数据1004可以成功地解码,则解码后的数据1004会被暂存于缓冲存储器810。尔后,若接收到请求读取数据1004的读取指令,则数据1004可随即被从缓冲存储器810传送至主机系统11。
值得一提的是,在另一实施例中,重置多重触发队列的方式可能不同。例如,当重置多重触发队列时,存储器管理电路802可以清空多重触发队列并且将排序在对应至解码失败的数据的读取事件之后的读取事件重新加入至清空后的多重触发队列。存储器管理电路802可以将此对应至解码失败的数据的读取事件设定为待执行事件。其中,待执行事件不存在于重置后的多重触发队列中。尔后,存储器管理电路802可以重复执行此不存在于重置后的(即,当前的)多重触发队列中的待执行事件直到获得正确数据(即,解码成功)为止。在获得正确数据之后,存储器管理电路802可以接续执行重置后的(即,当前的)多重触发队列中尚未被执行的读取事件。
图12是根据本发明的一实施例所示的读取数据的示意图。
请参照图12,本实施例与前述实施例的差别在于,在本实施例中,根据第一读取指令,只有第一读取指令所请求的数据1001会被暂存在缓冲存储器810,而预读取的数据1002~1004会被暂存在缓冲区901。当接收到请求预读取的数据的读取指令时,数据1002~1004中被请求的数据才会被传送至缓冲存储器810并且被从缓冲存储器810传送至主机系统11。
值得一提的是,虽然在上述实施例中,实体程序化单元710(0)~710(3)都是属于实体抹除单元700(A+1),然而,在另一实施例中,实体程序化单元710(0)~710(3)也可以是属于存储区902中的多个实体抹除单元。此外,虽然在上述实施例中,重置多重触发队列的操作不会改变读取事件在多重触发队列中的位置与读取事件的总数,然而,在另一实施例中,重置多重触发队列的操作会改变读取事件在多重触发队列中的位置和/或多重触发队列中的读取事件的总数。例如,在另一实施例中,每当多重触发队列中的一个读取事件被执行完毕,则此读取事件就会被从多重触发队列中移除,和/或其余尚未被执行的读取事件在多重触发队列中的位置会被上移一个位置。
在一实施例中,在接收到第二读取指令之后,若第二读取指令所请求的数据不包含在预读取的数据(例如,数据1002~1004)中,则多重触发队列中原先根据第一读取指令而配置的读取事件会被清空,并且对应于第二读取指令的读取事件会被配置到多重触发队列中。例如,对应于第二读取指令的读取事件包括至少一个一般读取指令与多个快取读取指令。关于如何配置读取事件已于前述说明,在此便不赘述。
在本范例实施例中,上述根据读取指令于多重触发队列中配置读取事件的操作是由一队列管理固件(firmware)所执行。例如,此队列管理固件是由存储器管理电路802或存储器控制电路单元404中的微处理器所运行;而根据多重触发队列中的读取事件来发送读取指令序列的操作则是由存储器控制电路单元404中的硬件电路(例如,存储器管理电路802)执行。例如,存储器管理电路802中的存储器读取单元可以查询多重触发队列并且多重触发队列中的读取事件来发送读取指令序列。此外,在另一实施例中,配置读取事件的操作与发送对应的读取指令序列的操作也可以皆是由固件或硬件电路执行,本发明不加以限制。
在本实施例中,缓冲存储器810包括至少两个寄存器(以下以第一寄存器与第二寄存器作为范例)。在将多笔读取事件加入至多重触发队列时,存储器管理电路802会将此些读取事件的其中之一的读取事件信息(也称为第一读取事件信息)写入至第一寄存器并且将此些读取事件的其中之另一的读取事件信息(也称为第二读取事件信息)写入至第二寄存器。藉此,存储器管理电路802可依照一预定规则来读取第一寄存器中的第一读取事件信息与第二寄存器中的第二读取事件信息以执行发送对应的读取指令序列的操作。例如,此预定规则可以是先进先出(FirstInFirstOut,简称FIFO)规则或其他规则。例如,若某一个读取事件在多重触发队列中的排序是在另一个读取事件之前,则此读取事件的读取事件信息会先被读取以执行发送对应的读取指令序列的操作。其中,上述读取事件信息包括读取的辨识码及/或存储器地址等与读取数据有关的信息。此外,缓冲存储器810中的寄存器的数量也可以是更多(例如,2个、3个或4个),本发明不加以限制。或者,缓冲存储器810中的寄存器的数量也可以是与多重触发队列中可配置的读取事件的最大数量相等。
图13是根据本发明的一实施例所示的数据读取方法的流程图。
请参照图13,在步骤S1301中,配置多重触发队列。在步骤S1302中,从主机系统接收第一读取指令。在步骤S1303中,根据第一读取指令于多重触发队列中配置多个第一读取事件,其中所述第一读取事件包括一般读取事件与至少一快取读取事件,其中一般读取事件所对应的欲读取数据与快取读取事件所对应的欲读取数据是属于连续数据,一般读取事件所对应的欲读取数据是被第一读取指令所请求,并且快取读取事件所对应的欲读取数据不被第一读取指令所请求。在步骤S1304中,根据所述第一读取事件的至少其中之一发送至少一第一读取指令序列并且接收反应于所述第一读取指令序列的来自可复写式非易失性存储器模块的第一数据。在步骤S1305中,解码第一数据。在步骤S1306中,判断第一数据是否解码失败。若第一数据解码失败,在步骤S1307中,重置多重触发队列,根据重置后的多重触发队列中的至少一第二读取事件发送至少一第二读取指令序列,并且接收反应于所述第二读取指令序列的来自可复写式非易失性存储器模块的第二数据,其中所述第二读取事件包括所述快取读取事件中的至少一第一快取读取事件。若第一数据没有解码失败,在步骤S1308中,将第一数据中由第一读取指令所请求的数据从缓冲存储器传送至主机系统。在步骤S1309中,根据所述第一读取事件中尚未被执行的至少一第三读取事件发送至少一第三读取指令序列,并且接收反应于所述第三读取指令序列的来自可复写式非易失性存储器模块的第三数据。
然而,图13中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图13中各步骤可以实作为多个程序码或是电路,本发明不加以限制。此外,图13的方法可以搭配以上实施例使用,也可以单独使用,本发明不加以限制。
综上所述,根据接收到的读取指令,本发明可在多重触发队列中配置一般读取指令与快取读取指令。在发生解码失败时,本发明可重置多重触发队列并且根据重置后的多重触发队列来进行后续的数据读取操作。藉此,可让前端的指令接收与后端的数据管理相互配合。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (27)
1.一种数据读取方法,用于可复写式非易失性存储器模块,其特征在于,该数据读取方法包括:
配置多重触发队列;
从主机系统接收第一读取指令;
根据该第一读取指令于该多重触发队列中配置多个第一读取事件,其中该些第一读取事件包括一个一般读取事件与至少一快取读取事件,其中该一般读取事件所对应的欲读取数据与该至少一快取读取事件所对应的欲读取数据是属于连续数据,该一般读取事件所对应的欲读取数据是被该第一读取指令所请求,并且该至少一快取读取事件所对应的欲读取数据不被该第一读取指令所请求;
根据该些第一读取事件的至少其中之一发送至少一第一读取指令序列并且接收反应于该至少一第一读取指令序列的来自该可复写式非易失性存储器模块的第一数据;
解码该第一数据;以及
若该第一数据解码失败,重置该多重触发队列,并且根据重置后的该多重触发队列中的至少一第二读取事件发送至少一第二读取指令序列,其中该至少一第二读取事件包括该至少一快取读取事件中的至少一第一快取读取事件。
2.根据权利要求1所述的数据读取方法,其特征在于,该可复写式非易失性存储器模块包括存储区与缓冲区,
其中该至少一第一读取指令序列指示从该存储区中读取该第一数据,并且该至少一第二读取指令指示从该存储区中读取一第二数据,
其中该第一数据是从该存储区中被读取至该缓冲区并且被从该缓冲区传送至存储器控制电路单元的缓冲存储器,
其中该第二数据是从该存储区中被读取至该缓冲区并且被从该缓冲区传送至该缓冲存储器。
3.根据权利要求1所述的数据读取方法,其特征在于,重置该多重触发队列的步骤包括:
将该些第一读取事件中对应至解码失败的数据的读取事件设定为待执行事件,其中该待执行事件是该至少一第二读取事件中排序最前面的读取事件。
4.根据权利要求1所述的数据读取方法,其特征在于,重置该多重触发队列的步骤包括:
将该些第一读取事件中对应至解码失败的数据的读取事件设定为待执行事件,其中该待执行事件不存在于该多重触发队列中。
5.根据权利要求4所述的数据读取方法,其特征在于,在根据重置后的该多重触发队列中的该至少一第二读取事件发送该至少一第二读取指令序列的步骤之前,该数据读取方法还包括:
重复执行该待执行事件直到获得正确数据为止。
6.根据权利要求1所述的数据读取方法,其特征在于,还包括:
将该第一数据暂存于存储器控制电路单元的缓冲存储器;以及
若该第一数据没有解码失败,将该第一数据中由该第一读取指令所请求的数据从该缓冲存储器传送至该主机系统,并且根据该些第一读取事件中尚未被执行的至少一第三读取事件发送至少一第三读取指令序列,其中该至少一第三读取事件包括该至少一快取读取事件中的至少一第二快取读取事件。
7.根据权利要求6所述的数据读取方法,其特征在于,还包括:
接收反应于该至少一第三读取指令序列的来自该可复写式非易失性存储器模块的第三数据;
解码该第三数据;以及
若该第三数据解码失败,重置该多重触发队列,并且根据重置后的该多重触发队列中的至少一第四读取事件发送至少一第四读取指令序列,其中该至少一第四读取事件包括该至少一快取读取事件中的至少一第三快取读取事件。
8.根据权利要求1所述的数据读取方法,其特征在于,根据该第一读取指令于该多重触发队列中配置该些第一读取事件的步骤包括:
由存储器控制电路单元所运行的一队列管理固件根据该第一读取指令于该多重触发队列中配置该些第一读取事件,
其中根据该些第一读取事件的该至少其中之一发送该至少一第一读取指令序列的步骤包括:
由该存储器控制电路单元中的存储器管理电路查询该多重触发队列并且根据该些第一读取事件的该至少其中之一发送该至少一第一读取指令序列。
9.根据权利要求1所述的数据读取方法,其特征在于,在根据该些第一读取事件的该至少其中之一发送该至少一第一读取指令序列的步骤之前,该数据读取方法还包括:
将该些第一读取事件的其中之一的一第一读取事件信息写入至缓冲存储器中的第一寄存器;
将该些第一读取事件的其中之另一的一第二读取事件信息写入至该缓冲存储器中的第二寄存器;以及
依照预定规则读取该第一寄存器中的该第一读取事件信息与该第二寄存器中的该第二读取事件信息。
10.一种存储器存储装置,其特征在于,包括:
一连接接口单元,用以电性连接至主机系统;
一可复写式非易失性存储器模块;以及
一存储器控制电路单元,电性连接至该连接接口单元与该可复写式非易失性存储器模块,
其中该存储器控制电路单元用以配置多重触发队列,
其中该存储器控制电路单元还用以从该主机系统接收第一读取指令,
其中该存储器控制电路单元还用以根据该第一读取指令于该多重触发队列中配置多个第一读取事件,其中该些第一读取事件包括一个一般读取事件与至少一快取读取事件,其中该一般读取事件所对应的欲读取数据与该至少一快取读取事件所对应的欲读取数据是属于连续数据,该一般读取事件所对应的欲读取数据是被该第一读取指令所请求,并且该至少一快取读取事件所对应的欲读取数据不被该第一读取指令所请求,
其中该存储器控制电路单元还用以根据该些第一读取事件的至少其中之一发送至少一第一读取指令序列并且接收反应于该至少一第一读取指令序列的来自该可复写式非易失性存储器模块的第一数据,
其中该存储器控制电路单元还用以解码该第一数据,
其中若该第一数据解码失败,该存储器控制电路单元还用以重置该多重触发队列并且根据重置后的该多重触发队列中的至少一第二读取事件发送至少一第二读取指令序列,其中该至少一第二读取事件包括该至少一快取读取事件中的至少一第一快取读取事件。
11.根据权利要求10所述的存储器存储装置,其特征在于,该可复写式非易失性存储器模块包括存储区与缓冲区,
其中该至少一第一读取指令序列指示从该存储区中读取该第一数据,并且该至少一第二读取指令指示从该存储区中读取一第二数据,
其中该第一数据是从该存储区中被读取至该缓冲区并且被从该缓冲区传送至存储器控制电路单元的缓冲存储器,
其中该第二数据是从该存储区中被读取至该缓冲区并且被从该缓冲区传送至该缓冲存储器。
12.根据权利要求10所述的存储器存储装置,其特征在于,该存储器控制电路单元重置该多重触发队列的操作包括:
将该些第一读取事件中对应至解码失败的数据的读取事件设定为待执行事件,其中该待执行事件是该至少一第二读取事件中排序最前面的读取事件。
13.根据权利要求10所述的存储器存储装置,其特征在于,该存储器控制电路单元重置该多重触发队列的操作包括:
将该些第一读取事件中对应至解码失败的数据的读取事件设定为待执行事件,其中该待执行事件不存在于该多重触发队列中。
14.根据权利要求13所述的存储器存储装置,其特征在于,在该存储器控制电路单元执行根据重置后的该多重触发队列中的该至少一第二读取事件发送该至少一第二读取指令序列的操作之前,该存储器控制电路单元还用以重复执行该待执行事件直到获得正确数据为止。
15.根据权利要求10所述的存储器存储装置,其特征在于,该存储器控制电路单元还用以将该第一数据暂存于该存储器控制电路单元的缓冲存储器,
其中若该第一数据没有解码失败,该存储器控制电路单元还用以将该第一数据中由该第一读取指令所请求的数据从该缓冲存储器传送至该主机系统并且根据该些第一读取事件中尚未被执行的至少一第三读取事件发送至少一第三读取指令序列,其中该至少一第三读取事件包括该至少一快取读取事件中的至少一第二快取读取事件。
16.根据权利要求15所述的存储器存储装置,其特征在于,该存储器控制电路单元还用以接收反应于该至少一第三读取指令序列的来自该可复写式非易失性存储器模块的第三数据,
其中该存储器控制电路单元还用以解码该第三数据,
其中若该第三数据解码失败,该存储器控制电路单元还用以重置该多重触发队列,根据重置后的该多重触发队列中的至少一第四读取事件发送至少一第四读取指令序列,并且接收反应于该至少一第四读取指令序列的来自该可复写式非易失性存储器模块的第四数据,其中该至少一第四读取事件包括该至少一快取读取事件中的至少一第三快取读取事件。
17.根据权利要求10所述的存储器存储装置,其特征在于,该存储器控制电路单元根据该第一读取指令于该多重触发队列中配置该些第一读取事件的操作包括:
由该存储器控制电路单元所运行的队列管理固件根据该第一读取指令于该多重触发队列中配置该些第一读取事件,
其中该存储器控制电路单元根据该些第一读取事件的该至少其中之一发送该至少一第一读取指令序列的操作包括:
由该存储器控制电路单元中的存储器管理电路查询该多重触发队列并且根据该些第一读取事件的该至少其中之一发送该至少一第一读取指令序列。
18.根据权利要求10所述的存储器存储装置,其特征在于,该存储器控制电路单元包括缓冲存储器,该缓冲存储器包括第一寄存器与第二寄存器,而在该存储器控制电路单元执行根据该些第一读取事件的该至少其中之一发送该至少一第一读取指令序列的操作之前,该存储器控制电路单元还用以:
将该些第一读取事件的其中之一的第一读取事件信息写入至该第一寄存器;
将该些第一读取事件的其中之另一的第二读取事件信息写入至该第二寄存器;以及
依照预定规则读取该第一寄存器中的该第一读取事件信息与该第二寄存器中的该第二读取事件信息。
19.一种存储器控制电路单元,用于控制一可复写式非易失性存储器模块,其特征在于,该存储器控制电路单元包括:
主机接口,用以电性连接至主机系统;
存储器接口,用以电性连接至该可复写式非易失性存储器模块;
错误检查与校正电路;
缓冲存储器;以及
存储器管理电路,电性连接至该主机接口、该存储器接口、该错误检查与校正电路及该缓冲存储器,
其中该存储器管理电路用以配置多重触发队列于该缓冲存储器,
其中该存储器管理电路还用以从该主机系统接收第一读取指令,
其中该存储器管理电路还用以根据该第一读取指令于该多重触发队列中配置多个第一读取事件,其中该些第一读取事件包括一个一般读取事件与至少一快取读取事件,其中该一般读取事件所对应的欲读取数据与该至少一快取读取事件所对应的欲读取数据是属于连续数据,该一般读取事件所对应的欲读取数据是被该第一读取指令所请求,并且该至少一快取读取事件所对应的欲读取数据不被该第一读取指令所请求,
其中该存储器管理电路还用以根据该些第一读取事件的至少其中之一发送至少一第一读取指令序列并且接收反应于该至少一第一读取指令序列的来自该可复写式非易失性存储器模块的第一数据,
其中该错误检查与校正电路用以解码该第一数据,
其中若该第一数据解码失败,该存储器管理电路还用以重置该多重触发队列并且根据重置后的该多重触发队列中的至少一第二读取事件发送至少一第二读取指令序列,其中该至少一第二读取事件包括该至少一快取读取事件中的至少一第一快取读取事件。
20.根据权利要求19所述的存储器控制电路单元,其特征在于,该可复写式非易失性存储器模块包括存储区与缓冲区,
其中该至少一第一读取指令序列指示从该存储区中读取该第一数据,并且该至少一第二读取指令指示从该存储区中读取一第二数据,
其中该第一数据是从该存储区中被读取至该缓冲区并且被从该缓冲区传送至该缓冲存储器,
其中该第二数据是从该存储区中被读取至该缓冲区并且被从该缓冲区传送至该缓冲存储器。
21.根据权利要求19所述的存储器控制电路单元,其特征在于,该存储器管理电路重置该多重触发队列的操作包括:
将该些第一读取事件中对应至解码失败的数据的读取事件设定为待执行事件,其中该待执行事件是该至少一第二读取事件中排序最前面的读取事件。
22.根据权利要求19所述的存储器控制电路单元,其特征在于,该存储器管理电路重置该多重触发队列的操作包括:
将该些第一读取事件中对应至解码失败的数据的读取事件设定为待执行事件,其中该待执行事件不存在于该多重触发队列中。
23.根据权利要求22所述的存储器控制电路单元,其特征在于,在该存储器管理电路执行根据重置后的该多重触发队列中的该至少一第二读取事件发送该至少一第二读取指令序列的操作之前,该存储器管理电路还用以重复执行该待执行事件直到获得正确数据为止。
24.根据权利要求19所述的存储器控制电路单元,其特征在于,该存储器管理电路还用以将该第一数据暂存于该缓冲存储器,
其中若该第一数据没有解码失败,该存储器管理电路还用以将该第一数据中由该第一读取指令所请求的数据从该缓冲存储器传送至该主机系统并且根据该些第一读取事件中尚未被执行的至少一第三读取事件发送至少一第三读取指令序列,其中该至少一第三读取事件包括该至少一快取读取事件中的至少一第二快取读取事件。
25.根据权利要求24所述的存储器控制电路单元,其特征在于,该存储器管理电路还用以接收反应于该至少一第三读取指令序列的来自该可复写式非易失性存储器模块的第三数据,
其中该错误检查与校正电路还用以解码该第三数据,
其中若该第三数据解码失败,该存储器管理电路还用以重置该多重触发队列并且根据重置后的该多重触发队列中的至少一第四读取事件发送至少一第四读取指令序列,其中该至少一第四读取事件包括该至少一快取读取事件中的至少一第三快取读取事件。
26.根据权利要求19所述的存储器控制电路单元,其特征在于,该存储器管理电路根据该第一读取指令于该多重触发队列中配置该些第一读取事件的操作包括:
由该存储器管理电路所运行的队列管理固件根据该第一读取指令于该多重触发队列中配置该些第一读取事件,
其中该存储器管理电路根据该些第一读取事件的该至少其中之一发送该至少一第一读取指令序列的操作包括:
由该存储器管理电路中的存储器读取单元查询该多重触发队列并且根据该些第一读取事件的该至少其中之一发送该至少一第一读取指令序列。
27.根据权利要求19所述的存储器控制电路单元,其特征在于,该缓冲存储器包括第一寄存器与第二寄存器,而在该存储器管理电路执行根据该些第一读取事件的该至少其中之一发送该至少一第一读取指令序列的操作之前,该存储器管理电路还用以:
将该些第一读取事件的其中之一的第一读取事件信息写入至该第一寄存器;
将该些第一读取事件的其中之另一的第二读取事件信息写入至该第二寄存器;以及
依照预定规则读取该第一寄存器中的该第一读取事件信息与该第二寄存器中的该第二读取事件信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410648589.6A CN105653199B (zh) | 2014-11-14 | 2014-11-14 | 数据读取方法、存储器存储装置及存储器控制电路单元 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410648589.6A CN105653199B (zh) | 2014-11-14 | 2014-11-14 | 数据读取方法、存储器存储装置及存储器控制电路单元 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105653199A true CN105653199A (zh) | 2016-06-08 |
CN105653199B CN105653199B (zh) | 2018-12-14 |
Family
ID=56480027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410648589.6A Active CN105653199B (zh) | 2014-11-14 | 2014-11-14 | 数据读取方法、存储器存储装置及存储器控制电路单元 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105653199B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107783729A (zh) * | 2016-08-25 | 2018-03-09 | 爱思开海力士有限公司 | 数据存储装置 |
TWI640865B (zh) * | 2017-09-05 | 2018-11-11 | 群聯電子股份有限公司 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
CN108932106A (zh) * | 2017-05-26 | 2018-12-04 | 上海宝存信息科技有限公司 | 固态硬盘访问方法以及使用该方法的装置 |
CN108984111A (zh) * | 2017-05-30 | 2018-12-11 | 希捷科技有限公司 | 具有可重写原地存储器的数据存储设备 |
CN109491828A (zh) * | 2017-09-13 | 2019-03-19 | 群联电子股份有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
CN109509499A (zh) * | 2017-09-14 | 2019-03-22 | 群联电子股份有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
CN110908591A (zh) * | 2018-09-17 | 2020-03-24 | 群联电子股份有限公司 | 存储器管理方法、存储器储存装置及存储器控制电路单元 |
CN111562888A (zh) * | 2020-05-14 | 2020-08-21 | 上海兆芯集成电路有限公司 | 存储器自更新的调度方法 |
CN111796774A (zh) * | 2020-07-07 | 2020-10-20 | 深圳宏芯宇电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制器 |
CN112347010A (zh) * | 2020-11-09 | 2021-02-09 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1485741A (zh) * | 2002-06-25 | 2004-03-31 | 精工爱普生株式会社 | 信息处理装置以及电子设备 |
CN1945551A (zh) * | 2006-11-03 | 2007-04-11 | 中兴通讯股份有限公司 | 数据预读器及其数据读取方法 |
US20100008175A1 (en) * | 2008-07-10 | 2010-01-14 | Sanmina-Sci Corporation | Battery-less cache memory module with integrated backup |
TW201111985A (en) * | 2009-09-24 | 2011-04-01 | Phison Electronics Corp | Data read method, and flash memory controller and storage system using the same |
CN102169429A (zh) * | 2010-03-29 | 2011-08-31 | 威盛电子股份有限公司 | 预取单元、数据预取方法以及微处理器 |
US20120239858A1 (en) * | 2010-07-07 | 2012-09-20 | Stec, Inc. | Apparatus and method for determining an operating condition of a memory cell based on cycle information |
-
2014
- 2014-11-14 CN CN201410648589.6A patent/CN105653199B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1485741A (zh) * | 2002-06-25 | 2004-03-31 | 精工爱普生株式会社 | 信息处理装置以及电子设备 |
CN1945551A (zh) * | 2006-11-03 | 2007-04-11 | 中兴通讯股份有限公司 | 数据预读器及其数据读取方法 |
US20100008175A1 (en) * | 2008-07-10 | 2010-01-14 | Sanmina-Sci Corporation | Battery-less cache memory module with integrated backup |
TW201111985A (en) * | 2009-09-24 | 2011-04-01 | Phison Electronics Corp | Data read method, and flash memory controller and storage system using the same |
CN102169429A (zh) * | 2010-03-29 | 2011-08-31 | 威盛电子股份有限公司 | 预取单元、数据预取方法以及微处理器 |
US20120239858A1 (en) * | 2010-07-07 | 2012-09-20 | Stec, Inc. | Apparatus and method for determining an operating condition of a memory cell based on cycle information |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107783729A (zh) * | 2016-08-25 | 2018-03-09 | 爱思开海力士有限公司 | 数据存储装置 |
CN108932106B (zh) * | 2017-05-26 | 2021-07-02 | 上海宝存信息科技有限公司 | 固态硬盘访问方法以及使用该方法的装置 |
CN108932106A (zh) * | 2017-05-26 | 2018-12-04 | 上海宝存信息科技有限公司 | 固态硬盘访问方法以及使用该方法的装置 |
CN108984111A (zh) * | 2017-05-30 | 2018-12-11 | 希捷科技有限公司 | 具有可重写原地存储器的数据存储设备 |
CN108984111B (zh) * | 2017-05-30 | 2021-09-14 | 希捷科技有限公司 | 具有可重写原地存储器的数据存储设备 |
TWI640865B (zh) * | 2017-09-05 | 2018-11-11 | 群聯電子股份有限公司 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
CN109491828B (zh) * | 2017-09-13 | 2022-04-19 | 群联电子股份有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
CN109491828A (zh) * | 2017-09-13 | 2019-03-19 | 群联电子股份有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
CN109509499A (zh) * | 2017-09-14 | 2019-03-22 | 群联电子股份有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
CN109509499B (zh) * | 2017-09-14 | 2023-02-28 | 群联电子股份有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
CN110908591A (zh) * | 2018-09-17 | 2020-03-24 | 群联电子股份有限公司 | 存储器管理方法、存储器储存装置及存储器控制电路单元 |
CN110908591B (zh) * | 2018-09-17 | 2023-05-30 | 群联电子股份有限公司 | 存储器管理方法、存储器储存装置及存储器控制电路单元 |
CN111562888A (zh) * | 2020-05-14 | 2020-08-21 | 上海兆芯集成电路有限公司 | 存储器自更新的调度方法 |
CN111796774A (zh) * | 2020-07-07 | 2020-10-20 | 深圳宏芯宇电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制器 |
CN111796774B (zh) * | 2020-07-07 | 2024-03-08 | 深圳宏芯宇电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制器 |
CN112347010A (zh) * | 2020-11-09 | 2021-02-09 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
CN112347010B (zh) * | 2020-11-09 | 2023-07-04 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
Also Published As
Publication number | Publication date |
---|---|
CN105653199B (zh) | 2018-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105653199A (zh) | 数据读取方法、存储器存储装置及存储器控制电路单元 | |
CN106155585B (zh) | 自适应读取干扰收回策略 | |
CN110473582B (zh) | 存储器系统及其操作方法 | |
US9507658B2 (en) | Data reading method, memory storage device and memory controlling circuit unit | |
WO2019240847A1 (en) | Adjustable read retry order based on decoding success trend | |
CN104733051A (zh) | 奇偶校验码的解码方法、存储器储存装置及控制电路单元 | |
CN109783005B (zh) | 控制记忆装置的方法、记忆装置、及其控制器和电子装置 | |
CN105022674A (zh) | 解码方法、存储器存储装置、存储器控制电路单元 | |
US8966344B2 (en) | Data protecting method, memory controller and memory storage device | |
CN105304142A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN104424045A (zh) | 解码方法、存储器储存装置与非易失性存储器模块 | |
CN104182293A (zh) | 数据写入方法、存储器存储装置与存储器控制器 | |
TWI681396B (zh) | 解碼方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TW201913388A (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN111755061A (zh) | 检查存储器系统中的存储器装置的操作状态的设备及方法 | |
CN104252317A (zh) | 数据写入方法、存储器控制器与存储器存储装置 | |
US11190217B2 (en) | Data writing method, memory controlling circuit unit and memory storage device | |
CN113849121A (zh) | 用于访问条带形式的数据的存储器系统及其操作方法 | |
KR20220077041A (ko) | 메모리 시스템 내 저장된 데이터를 유지하는 장치 및 방법 | |
CN107305510B (zh) | 数据处理方法、存储器存储装置及存储器控制电路单元 | |
CN104778975A (zh) | 译码方法、存储器存储装置、存储器控制电路单元 | |
CN104252600A (zh) | 数据保护方法、存储器控制器与存储器储存装置 | |
TWI597731B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN105575440A (zh) | 错误处理方法、存储器储存装置及存储器控制电路单元 | |
CN107025935B (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 |