缓冲存储器管理方法、存储器控制电路单元及存储装置与流程

文档序号:18374220发布日期:2019-08-07 01:58阅读:209来源:国知局
缓冲存储器管理方法、存储器控制电路单元及存储装置与流程

本发明是有关于一种缓冲存储器管理方法,且特别是有关于一种缓冲存储器管理方法、存储器控制电路单元及存储器存储装置。



背景技术:

数码相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器模块(例如,快闪存储器)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种可携式多媒体装置中。

一般来说,在使用可复写式非易失性存储器作为存储媒体的存储器存储装置中,通常也会配置缓冲存储器,用以暂存程序码、数据或是用于存储器存储装置在执行背景(background)工作时数据的暂存区域。例如,存储器存储装置的控制器会将逻辑地址-实体地址映射表载入至缓冲存储器以利存取数据。而当接收到写入指令而执行写入操作时,存储器存储装置的控制器会更新暂存在缓冲存储器中的逻辑地址-实体地址映射表。并且当缓冲存储器中已暂存大量的已被更新的逻辑地址-实体地址映射表时,存储器存储装置的控制器会将缓冲存储器中已被更新的逻辑地址-实体地址映射表回存至可复写式非易失性存储器中。由于已被更新的逻辑地址-实体地址映射表有可能不是暂存在缓冲存储器中连续的缓存单元中,而可复写式非易失性存储器又是以实体程序化单元为最小写入单位,因此,必须将已被更新的逻辑地址-实体地址映射表先复制到缓冲存储器中的暂存区域,以集中成相当于一个实体程序化单元的大小才能回存至可复写式非易失性存储器。然而,大量的复制操作将导致系统负载过重,回存时间过长,使整体性能下降。因此,如何提升将逻辑地址-实体地址映射表从缓冲存储器回存至可复写式非易失性存储器的效率,为此领域技术人员所关心的议题。



技术实现要素:

本发明提供一种缓冲存储器管理方法、存储器控制电路单元及存储器存储装置,其能提升将逻辑地址-实体地址映射表从缓冲存储器回存至可复写式非易失性存储器的效率。

本发明的一范例实施例提出一种缓冲存储器管理方法,用于存储器存储装置的缓冲存储器。此存储器存储装置具有可复写式非易失性存储器模块。本缓冲存储器管理方法包括在缓冲存储器中划分出映射表区,并将映射表区划分为第一区域与第二区域,且第一区域与第二区域分别地具有连续的多个缓存单元。本缓冲存储器管理方法也包括从可复写式非易失性存储器模块中载入多个逻辑地址-实体地址映射表至第一区域与第二区域,且每一逻辑地址-实体地址映射表会被暂存在第一区域的缓存单元的其中之一或第二区域的缓存单元的其中之一。本缓冲存储器管理方法还包括从主机系统接收第一写入指令,此第一写入指令指示将第一数据写入至第一逻辑地址,并且第一逻辑地址所属的第一逻辑地址-实体地址映射表被暂存在第二区域的缓存单元之中的第一缓存单元中。本缓冲存储器管理方法还包括更新第一逻辑地址-实体地址映射表,将已更新的第一逻辑地址-实体地址映射表搬移至第一区域的缓存单元之中的第二缓存单元中。并且,在将已更新的第一逻辑地址-实体地址映射表搬移至第一区域的缓存单元之中的第二缓存单元中之后,将第二缓存单元标示为已更新状态。另外,倘若第一区域的所有缓存单元皆被标示为已更新状态时,将暂存在第一区域的所有缓存单元中的逻辑地址-实体地址映射表回存至可复写式非易失性存储器模块中。

在本发明的一范例实施例中,上述的缓冲存储器管理方法还包括将暂存在第一区域的第二缓存单元中的另一逻辑地址-实体地址映射表搬移至第二区域中的第一缓存单元中。

在本发明的一范例实施例中,上述的缓冲存储器管理方法还包括从主机系统接收第二写入指令,此第二写入指令指示将第二数据写入至第二逻辑地址,并且第二逻辑地址所属的第二逻辑地址-实体地址映射表被暂存在第一区域的缓存单元之中的第三缓存单元中。再者,更新第二逻辑地址-实体地址映射表,将第三缓存单元标示为已更新状态。

在本发明的一范例实施例中,上述的缓冲存储器管理方法还包括从主机系统接收第三写入指令,此第三写入指令指示将第三数据写入至第三逻辑地址,并且第三逻辑地址所属的第三逻辑地址-实体地址映射表尚未载入至映射表区中。再者,从可复写式非易失性存储器模块中载入第三逻辑地址-实体地址映射表至映射表区,其中第三逻辑地址-实体地址映射表被暂存在第一区域的缓存单元之中的第四缓存单元中。此外,更新第三逻辑地址-实体地址映射表,将第四缓存单元标示为已更新状态。

在本发明的一范例实施例中,上述的缓冲存储器管理方法还包括根据第一区域中的缓存单元的顺序,选取第一个缓存单元作为第二缓存单元,并设定第一指标指向第二缓存单元。此外,在将第二缓存单元标示为已更新状态之后,设定第一指标指向第一区域的缓存单元之中的另一个缓存单元,此另一个缓存单元为第二缓存单元的后一个不为已更新状态的缓存单元。

在本发明的一范例实施例中,上述的缓冲存储器管理方法还包括从主机系统接收第一读取指令,此第一读取指令指示读取第四逻辑地址的第四数据,并且第四逻辑地址所属的第四逻辑地址-实体地址映射表尚未载入至映射表区中。再者,从可复写式非易失性存储器模块中载入第四逻辑地址-实体地址映射表至映射表区,并且第四逻辑地址-实体地址映射表被暂存在第二区域的缓存单元之中的第五缓存单元中。

在本发明的一范例实施例中,上述的缓冲存储器管理方法还包括根据第二区域中的缓存单元的顺序,选取最后一个缓存单元作为第五缓存单元,并设定第二指标指向第五缓存单元。此外,在第四逻辑地址-实体地址映射表被暂存在第五缓存单元中之后,设定第二指标指向第二区域中的第五缓存单元的前一个缓存单元。

本发明的一范例实施例提出一种存储器控制电路单元,用于控制可复写式非易失性存储器模块。本存储器控制电路单元包括主机接口、存储器接口、缓冲存储器及存储器管理电路。主机接口耦接至一主机系统,存储器接口耦接至可复写式非易失性存储器模块,缓冲存储器耦接至主机接口及存储器接口,存储器管理电路耦接至主机接口、存储器接口与缓冲存储器。存储器管理电路会在缓冲存储器中划分出映射表区,并将映射表区划分为第一区域与第二区域,且第一区域与第二区域分别地具有连续的多个缓存单元。再者,存储器管理电路还从可复写式非易失性存储器模块中载入多个逻辑地址-实体地址映射表至第一区域与第二区域,且每一逻辑地址-实体地址映射表会被暂存在第一区域的缓存单元的其中之一或第二区域的缓存单元的其中之一。此外,存储器管理电路还从主机系统接收第一写入指令,此第一写入指令指示将第一数据写入至第一逻辑地址,并且第一逻辑地址所属的第一逻辑地址-实体地址映射表被暂存在第二区域的缓存单元之中的第一缓存单元中。又,存储器管理电路更新第一逻辑地址-实体地址映射表,将已更新的第一逻辑地址-实体地址映射表搬移至第一区域的缓存单元之中的第二缓存单元中。并且,在将已更新的第一逻辑地址-实体地址映射表搬移至第一区域的缓存单元之中的第二缓存单元中之后,存储器管理电路会将第二缓存单元标示为已更新状态。另外,倘若第一区域的所有缓存单元皆被标示为已更新状态时,存储器管理电路将暂存在第一区域的所有缓存单元中的逻辑地址-实体地址映射表回存至可复写式非易失性存储器模块中。

在本发明的一范例实施例中,上述存储器管理电路还将暂存在第一区域的第二缓存单元中的未使用逻辑地址-实体地址映射表搬移至第二区域中的第一缓存单元中。

在本发明的一范例实施例中,上述存储器管理电路还从主机系统接收第二写入指令,此第二写入指令指示将第二数据写入至第二逻辑地址,并且第二逻辑地址所属的第二逻辑地址-实体地址映射表被暂存在第一区域的缓存单元之中的第三缓存单元中。此外,上述存储器管理电路还更新第二逻辑地址-实体地址映射表,并将第三缓存单元标示为该已更新状态。

在本发明的一范例实施例中,上述存储器管理电路还从主机系统接收第三写入指令,此第三写入指令指示将第三数据写入至第三逻辑地址,并且第三逻辑地址所属的第三逻辑地址-实体地址映射表尚未载入至映射表区中。再者,上述存储器管理电路还从可复写式非易失性存储器模块中载入第三逻辑地址-实体地址映射表至映射表区,且第三逻辑地址-实体地址映射表被暂存在第一区域的缓存单元之中的第四缓存单元中。此外,该存储器管理电路还更新第三逻辑地址-实体地址映射表,将第四缓存单元标示为已更新状态。

在本发明的一范例实施例中,上述存储器管理电路还根据第一区域中的缓存单元的顺序,选取第一个缓存单元作为第二缓存单元,并设定第一指标指向第二缓存单元。此外,在将第二缓存单元标示为已更新状态之后,存储器管理电路还设定第一指标指向第一区域的缓存单元之中的另一个缓存单元,此另一个缓存单元为第二缓存单元的下一个不为已更新状态的缓存单元。

在本发明的一范例实施例中,上述存储器管理电路还从主机系统接收第一读取指令,此第一读取指令指示读取第四逻辑地址的第四数据,并且第四逻辑地址所属的第四逻辑地址-实体地址映射表尚未载入至映射表区中。此外,上述存储器管理电路还从可复写式非易失性存储器模块中载入第四逻辑地址-实体地址映射表,且第四逻辑地址-实体地址映射表被暂存在第二区域的缓存单元之中的第五缓存单元中。

在本发明的一实施例中,上述存储器管理电路还根据第二区域中的缓存单元的顺序,选取最后一个缓存单元作为第五缓存单元,并设定第二指标指向第五缓存单元。此外,在第四逻辑地址-实体地址映射表被暂存在第五缓存单元中之后,上述存储器管理电路还设定第二指标指向第二区域中的第五缓存单元的前一个缓存单元。

本发明的一范例实施例提出一种存储器存储装置,其包括连接接口单元、可复写式非易失性存储器模块及上述的存储器控制电路单元。连接接口单元耦接至主机系统,存储器控制电路单元耦接至连接接口单元与可复写式非易失性存储器模块并且包括缓冲存储器。

基于上述,本发明范例实施例所提出的存储器控制电路单元、存储器存储装置及其使用的缓冲存储器管理方法能够有效节省将逻辑地址-实体地址映射表回存至可复写式非易失性存储器的时间,提升整体系统的运作效率。

为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。

附图说明

图1是根据一范例实施例所示出的主机系统与存储器存储装置的示意图;

图2是根据一范例实施例所示出的电脑、输入/输出装置与存储器存储装置的示意图;

图3是根据本发明范例实施例所示出的主机系统与存储器存储装置的示意图;

图4是根据一范例实施例所示出的存储器存储装置的概要方块图;

图5是根据一范例实施例所示出的存储器控制电路单元的概要方块图;

图6与图7是根据一范例实施例所示出的管理实体抹除单元的范例示意图;

图8是根据一范例实施例所示出的缓冲存储器的示意图;

图9A~9F是根据一范例实施例所示出的缓冲存储器管理方法的示意图;

图10是根据一范例实施例所示出的缓冲存储器管理方法的流程图。

附图标记说明:

10:存储器存储装置;

11:主机系统;

12:电脑;

13:输入/输出装置;

122:微处理器;

124:随机存取存储器(RAM);

126:系统总线;

128:数据传输接口;

21:鼠标;

22:键盘;

23:显示器;

24:打印机;

25:移动硬盘;

26:存储卡;

27:固态硬盘;

31:数码相机

32:SD卡;

33:MMC卡;

34:记忆棒;

35:CF卡;

36:嵌入式存储装置;

402:连接接口单元;

404:存储器控制电路单元;

406:可复写式非易失性存储器模块;

410(0)~410(N):实体抹除单元;

502:存储器管理电路;

504:主机接口;

506:存储器接口;

508:缓冲存储器;

510:电源管理电路;

512:错误检查与校正电路;

602:数据区;

604:闲置区;

606:系统区;

608:取代区;

LBA(0)~LBA(H):逻辑单元;

LZ(0)~LZ(M):逻辑区域;

810(1-0)~810(1-n)、810(2-0)~810(2-n):缓存单元;

MTZ:映射表区;

Z1:第一区域;

Z2:第二区域;

MT(0)~MT(2n)、MT(k)、MT(s):逻辑地址-实体地址映射表;

S1001、S1003、S1005、S1007、S1009、S1011、S1013、S1015、S1017:缓冲存储器管理方法的步骤。

具体实施方式

一般而言,存储器存储装置(也称,存储器存储系统)包括可复写式非易失性存储器模块与控制器(也称,控制电路单元)。通常存储器存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储器存储装置或从存储器存储装置中读取数据。

图1是根据一范例实施例所示出的主机系统与存储器存储装置的示意图,且图2是根据一范例实施例所示出的电脑、输入/输出装置与存储器存储装置的示意图。

请参照图1,主机系统11一般包括电脑12与输入/输出(Input/Output,简称I/O)装置13。电脑12包括微处理器122、随机存取存储器(Random Access Memory,简称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或固态硬盘(Solid State Drive,简称SSD)27等的可复写式非易失性存储器存储装置。

图3是根据一范例实施例所示出的主机系统与存储器存储装置的示意图。

一般而言,主机系统11为可实质地与存储器存储装置10配合以存储数据的任意系统。虽然在本范例实施例中,主机系统11是以电脑系统来做说明,然而,在另一范例实施例中主机系统11可以是数码相机、摄影机、通信装置、音频播放器或视频播放器等系统。例如,在主机系统为图3中的数码相机(摄影机)31时,可复写式非易失性存储器存储装置则为其所使用的SD卡32、MMC卡33、记忆棒(memory stick)34、CF卡35或嵌入式存储装置36(如图3所示)。嵌入式存储装置36包括嵌入式多媒体卡(embedded MMC,简称eMMC)、通用快闪存储器(Universal Flash Storage,简称UFS)。值得一提的是,嵌入式多媒体卡或通用快闪存储器是直接电性连接于主机系统的基板上。

图4是根据一范例实施例所示出的存储器存储装置的概要方块图。

请参照图4,存储器存储装置10包括连接接口单元402、存储器控制电路单元404与可复写式非易失性存储器模块406。

在本范例实施例中,连接接口单元402是兼容串行高级技术附件(Serial Advanced Technology Attachment,简称SATA)标准。然而,必须了解的是,本发明不限于此,连接接口单元402也可以是符合并行高级技术附件(Parellel Advanced Technology Attachment,简称PATA)标准、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,简称IEEE)1394标准、高速周边零件连接接口(Peripheral Component Interconnect Express,简称PCI Express)标准、通用串行总线(Universal Serial Bus,简称USB)标准、超高速一代(Ultra High Speed-I,简称UHS-I)接口标准、超高速二代(Ultra High Speed-II,简称UHS-II)接口标准、安全数字(Secure Digital,简称SD)接口标准、记忆棒(Memory Stick,简称MS)接口标准、多媒体存储卡(Multi Media Card,简称MMC)接口标准、小型快闪(Compact Flash,简称CF)接口标准、集成驱动电子接口(Integrated Device Electronics,简称IDE)标准或其他适合的标准。在本范例实施例中,连接接口单元可与存储器控制电路单元封装在一个芯片中,或布设于一包含存储器控制电路单元的芯片外。

存储器控制电路单元404用以执行以硬件形式或固件形式实作的多个逻辑门或控制指令,并且根据主机系统11的指令在可复写式非易失性存储器模块406中进行数据的写入、读取与抹除等运作。

可复写式非易失性存储器模块406是耦接至存储器控制电路单元404,并且用以存储主机系统11所写入的数据。可复写式非易失性存储器模块406具有实体抹除单元410(0)~410(N)。例如,实体抹除单元410(0)~410(N)可属于同一个存储器晶粒(die)或者属于不同的存储器晶粒。每一实体抹除单元分别具有复数个实体程序化单元,其中属于同一个实体抹除单元的实体程序化单元可被独立地写入且被同时地抹除。然而,必须了解的是,本发明不限于此,每一实体抹除单元是可由64个实体程序化单元、256个实体程序化单元或其他任意个实体程序化单元所组成。

更详细来说,实体抹除单元为抹除的最小单位。也即,每一实体抹除单元含有最小数目之一并被抹除的存储单元。实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。每一实体程序化单元通常包括数据比特区与冗余比特区。数据比特区包含多个实体存取地址用以存储使用者的数据,而冗余比特区用以存储系统的数据(例如,控制信息与错误更正码)。在本范例实施例中,每一个实体程序化单元的数据比特区中会包含8个实体存取地址,且一个实体存取地址的大小为512字节(byte)。然而,在其他范例实施例中,数据比特区中也可包含数目更多或更少的实体存取地址,本发明并不限制实体存取地址的大小以及个数。例如,在一范例实施例中,实体抹除单元为实体区块,并且实体程序化单元为实体页面或实体扇区,但本发明不以此为限。

在本范例实施例中,可复写式非易失性存储器模块406为多阶存储单元(Multi Level Cell,简称MLC)NAND型快闪存储器模块(即,一个存储单元中可存储2个数据位元的快闪存储器模块)。然而,本发明不限于此,可复写式非易失性存储器模块406也可是单阶存储单元(Single Level Cell,简称SLC)NAND型快闪存储器模块(即,一个存储单元中可存储1个数据位元的快闪存储器模块)、复数阶存储单元(Trinary Level Cell,简称TLC)NAND型快闪存储器模块(即,一个存储单元中可存储3个数据比特的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存储器模块。

图5是根据一范例实施例所示出的存储器控制电路单元的概要方块图。

请参照图5,存储器控制电路单元404包括存储器管理电路502、主机接口504与存储器接口506、缓冲存储器508、电源管理电路510与错误检查与校正电路512。

存储器管理电路502用以控制存储器控制电路单元404的整体运作。具体来说,存储器管理电路502具有多个控制指令,并且在存储器存储装置10运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。

在本范例实施例中,存储器管理电路502的控制指令是以固件形式来实作。例如,存储器管理电路502具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器存储装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。

图6与图7是根据一范例实施例所示出的管理实体抹除单元的范例示意图。

必须了解的是,在此描述可复写式非易失性存储器模块406的实体抹除单元的运作时,以“提取”、“分组”、“划分”、“关联”等词来操作实体抹除单元是逻辑上的概念。也就是说,可复写式非易失性存储器模块的实体抹除单元的实际位置并未更动,而是逻辑上对可复写式非易失性存储器模块的实体抹除单元进行操作。

请参照图6,存储器控制电路单元404(或存储器管理电路502)会将实体抹除单元410(0)~410(N)逻辑地分组为数据区602、闲置区604、系统区606与取代区608。

逻辑上属于数据区602与闲置区604的实体抹除单元是用以存储来自于主机系统11的数据。具体来说,数据区602的实体抹除单元是被视为已存储数据的实体抹除单元,而闲置区604的实体抹除单元是用以替换数据区602的实体抹除单元。也就是说,当从主机系统11接收到写入指令与欲写入的数据时,存储器管理电路502会从闲置区604中提取实体抹除单元,并且将数据写入至所提取的实体抹除单元中,以替换数据区602的实体抹除单元。

逻辑上属于系统区606的实体抹除单元是用以记录系统数据。例如,系统数据包括关于可复写式非易失性存储器模块的制造商与型号、可复写式非易失性存储器模块的实体抹除单元数、每一实体抹除单元的实体程序化单元数等。

逻辑上属于取代区608中的实体抹除单元是用于坏实体抹除单元取代程序,以取代损坏的实体抹除单元。具体来说,倘若取代区608中仍存有正常的实体抹除单元并且数据区602的实体抹除单元损坏时,存储器管理电路502会从取代区608中提取正常的实体抹除单元来更换损坏的实体抹除单元。

特别是,数据区602、闲置区604、系统区606与取代区608的实体抹除单元的数量会根据不同的存储器规格而有所不同。此外,必须了解的是,在存储器存储装置10的运作中,实体抹除单元关联至数据区602、闲置区604、系统区606与取代区608的分组关系会动态地变动。例如,当闲置区604中的实体抹除单元损坏而被取代区608的实体抹除单元取代时,则原本取代区608的实体抹除单元会被关联至闲置区604。

请参照图7,存储器控制电路单元404(或存储器管理电路502)会配置逻辑单元LBA(0)~LBA(H)以映射数据区602的实体抹除单元,其中每一逻辑单元具有多个逻辑子单元以映射对应的实体抹除单元的实体程序化单元。并且,当主机系统11欲写入数据至逻辑单元或更新存储于逻辑单元中的数据时,存储器控制电路单元404(或存储器管理电路502)会从闲置区604中提取一个实体抹除单元来写入数据,以替换数据区602的实体抹除单元。在本范例实施例中,逻辑子单元可以是逻辑页面或逻辑扇区。

为了识别每个逻辑单元的数据被存储在哪个实体抹除单元,在本范例实施例中,存储器控制电路单元404(或存储器管理电路502)会记录逻辑单元与实体抹除单元之间的映射。并且,当主机系统11欲在逻辑子单元中存取数据时,存储器控制电路单元404(或存储器管理电路502)会确认此逻辑子单元所属的逻辑单元,并且在此逻辑单元所映射的实体抹除单元中来存取数据。例如,在本范例实施例中,存储器控制电路单元404(或存储器管理电路502)会在可复写式非易失性存储器模块406中存储逻辑地址-实体地址映射表来记录每一逻辑单元所映射的实体抹除单元,并且当欲存取数据时存储器控制电路单元404(或存储器管理电路502)会将逻辑地址-实体地址映射表载入至缓冲存储器508来维护。

值得一提的是,由于缓冲存储器508的容量有限无法存储记录所有逻辑单元之映射关系的映射表,因此,在本范例实施例中,存储器控制电路单元404(或存储器管理电路502)会将逻辑单元LBA(0)~LBA(H)分组为多个逻辑区域LZ(0)~LZ(M),并且为每一逻辑区域配置一个逻辑地址-实体地址映射表。特别是,当存储器控制电路单元404(或存储器管理电路502)欲更新某个逻辑单元的映射时,对应此逻辑单元所属的逻辑区域的逻辑地址-实体地址映射表会被载入至缓冲存储器508来被更新。

在本发明另一范例实施例中,存储器管理电路502的控制指令也可以程序码形式存储于可复写式非易失性存储器模块406的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路502具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有驱动码,并且当存储器控制电路单元404被致能时,微处理器单元会先执行此驱动码段来将存储于可复写式非易失性存储器模块406中的控制指令载入至存储器管理电路502的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。

此外,在本发明另一范例实施例中,存储器管理电路502的控制指令也可以一硬件形式来实作。例如,存储器管理电路502包括微控制器、存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路。存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路是耦接至微控制器。其中,存储单元管理电路用以管理可复写式非易失性存储器模块406的实体抹除单元;存储器写入电路用以对可复写式非易失性存储器模块406下达写入指令以将数据写入至可复写式非易失性存储器模块406中;存储器读取电路用以对可复写式非易失性存储器模块406下达读取指令以从可复写式非易失性存储器模块406中读取数据;存储器抹除电路用以对可复写式非易失性存储器模块406下达抹除指令以将数据从可复写式非易失性存储器模块406中抹除;而数据处理电路用以处理欲写入至可复写式非易失性存储器模块406的数据以及从可复写式非易失性存储器模块406中读取的数据。

请再参照图5,主机接口504是耦接至存储器管理电路502并且用以耦接至连接接口单元402,以接收与识别主机系统11所传送的指令与数据。也就是说,主机系统11所传送的指令与数据会通过主机接口504来传送至存储器管理电路502。在本范例实施例中,主机接口504是兼容SATA标准。然而,必须了解的是本发明不限于此,主机接口504也可以是兼容PATA标准、IEEE 1394标准、PCI Express标准、USB标准、UHS-I接口标准、UHS-II接口标准、SD标准、MS标准、MMC标准、CF标准、IDE标准或其他适合的数据传输标准。

存储器接口506是耦接至存储器管理电路502并且用以存取可复写式非易失性存储器模块406。也就是说,欲写入至可复写式非易失性存储器模块406的数据会通过存储器接口506转换为可复写式非易失性存储器模块406所能接受的格式。

缓冲存储器508是耦接至存储器管理电路502并且用以暂存来自于主机系统11的数据与指令或来自于可复写式非易失性存储器模块406的数据。

电源管理电路510是耦接至存储器管理电路502并且用以控制存储器存储装置10的电源。

错误检查与校正电路512是耦接至存储器管理电路502并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路502从主机系统11中接收到写入指令时,错误检查与校正电路512会为对应此写入指令的数据产生对应的错误检查与校正码(Error Checking and Correcting Code,简称ECC Code),并且存储器管理电路502会将对应此写入指令的数据与对应的错误检查与校正码写入至可复写式非易失性存储器模块406中。之后,当存储器管理电路502从可复写式非易失性存储器模块406中读取数据时会同时读取此数据对应的错误检查与校正码,并且错误检查与校正电路512会根据此错误检查与校正码对所读取的数据执行错误检查与校正程序。

图8是根据一范例实施例所示出的缓冲存储器的示意图。

请参照图8,在本范例实施例中,存储器控制电路单元404(或存储器管理电路502)在缓冲存储器508中划分出映射表区MTZ,用以暂存从可复写式非易失性存储器模块406所载入的逻辑地址-实体地址映射表。特别是,存储器控制电路单元404(或存储器管理电路502)会将映射表区MTZ还划分为第一区域Z1与第二区域Z2,且第一区域Z1与第二区域Z2分别具有连续的多个缓存单元。每一缓存单元用以暂存一个逻辑地址-实体地址映射表,且每一缓存单元可被标示为不同状态,例如已更新(dirty)状态、未更新状态(clean)、无效(invalid)状态、存储(saving)状态或载入(loading)状态等,用以表示缓存单元中的数据的状态。在本范例实施例中,一个逻辑地址-实体地址映射表的大小为512B,因此,每一缓存单元的大小为512B。而第一区域Z1与第二区域Z2的大小可为一特定值,例如64MB或128MB。然而,必须了解的是,在其他范例实施例中,缓存单元的大小可依实际的逻辑地址-实体地址映射表而定,且第一区域Z1与第二区域Z2的大小也可视实际使用需求而设定,本发明并不加以限制。

如图8所示,第一区域Z1具有缓存单元810(1-0)~810(1-n),第二区域Z2具有缓存单元810(2-0)~810(2-n)。在本范例实施例中,存储器控制电路单元404(或存储器管理电路502)可预先从可复写式非易失性存储器模块406中将多个逻辑地址-实体地址映射表载入至缓冲存储器508中的映射表区MTZ,并将此些逻辑地址-实体地址映射表各别暂存至第一区域Z1与第二区域Z2的缓存单元中。

图9A~9F是根据一范例实施例所示出的缓冲存储器管理方法的示意图。

请参照图9A,第一区域Z1中的缓存单元810(1-0)~810(1-n)分别暂存逻辑地址-实体地址映射表MT(0)~MT(n),第二区域Z2中的缓存单元810(2-0)~810(2-n)分别暂存逻辑地址-实体地址映射表MT(n+1)~MT(2n)。为方便说明,本范例实施例是以第一区域Z1与第二区域Z2的缓存单元都不为已更新状态开始说明。当从主机系统11接收到写入指令,此写入指令指示将写入数据写入至逻辑地址,存储器控制电路单元404(或存储器管理电路502)会将此逻辑地址所属的逻辑地址-实体地址映射表暂存至映射表区MTZ的第一区域Z1以进行维护。更详细地说,存储器控制电路单元404(或存储器管理电路502)会先判断欲写入的逻辑地址所属的逻辑地址-实体地址映射表是否已暂存在第一区域Z1或第二区域Z2的缓存单元中。

当从主机系统接收到指示将第一数据写入至属于第一逻辑地址-实体地址映射表MT(n+2)的第一逻辑地址的第一写入指令时,存储器控制电路单元404(或存储器管理电路502)会判断第一逻辑地址-实体地址映射表MT(n+2)已载入至缓冲存储器508中的映射表区MTZ,且被暂存在第二区域Z2的缓存单元810(2-1)(以下也参考为第一缓存单元)。因此,存储器控制电路单元404(或存储器管理电路502)会将第一数据写入至可复写式非易失性存储器模块406中第一逻辑地址所映射的实体程序化单元,并更新暂存在缓存单元810(2-1)的第一逻辑地址-实体地址映射表MT(n+2)。并且,存储器控制电路单元404(或存储器管理电路502)会将已更新的第一逻辑地址-实体地址映射表MT(n+2)从第二区域Z2的缓存单元810(2-1)搬移至第一区域Z1。

在本范例实施例中,存储器控制电路单元404(或存储器管理电路502)还会设定第一指标P1指向第一区域Z1中的其中一个缓存单元,且此被指向的缓存单元不为已更新状态。具体来说,存储器控制电路单元404(或存储器管理电路502)会根据第一区域Z1中的多个缓存单元的前后顺序,由前往后依序判断是否不为已更新状态。如图9A所示,由于此时第一区域Z1中的所有缓存单元都不为已更新状态,因此,存储器控制电路单元404(或存储器管理电路502)设定第一指标P1指向第一区域Z1中的第一个缓存单元810(1-0)。之后,存储器控制电路单元404(或存储器管理电路502)会根据第一指标P1来存储已更新的逻辑地址-实体地址映射表。例如,存储器控制电路单元404(或存储器管理电路502)会根据第一指标P1将已更新的第一逻辑地址-实体地址映射表MT(n+2)从第二区域Z2的缓存单元810(2-1)搬移至第一区域Z1的缓存单元810(1-0)(以下也参考为第二缓存单元)中。

请参照图9B,已更新的第一逻辑地址-实体地址映射表MT(n+2)被搬移至第一区域Z1的缓存单元810(1-0)中之后,存储器控制电路单元404(或存储器管理电路502)会将缓存单元810(1-0)标示为已更新状态。然后,存储器控制电路单元404(或存储器管理电路502)会设定第一指标P1指向第一区域Z1中的缓存单元810(1-0)的后一个不为已更新状态的缓存单元。在本范例实施例中,第二缓存单元810(1-0)的后一个缓存单元810(1-1)即不为已更新状态,因此,存储器控制电路单元404(或存储器管理电路502)设定第一指标P1指向缓存单元810(1-1)。在本范例实施例中,存储器控制电路单元404(或存储器管理电路502)还可将原本暂存在第一区域Z1的缓存单元810(1-0)中的逻辑地址-实体地址映射表MT(0)搬移至第二区域Z2的缓存单元810(2-1)中。而在另一范例实施例中,也可不搬移而直接覆盖掉逻辑地址-实体地址映射表MT(0)。

此时,倘若从主机系统接收到指示将第二数据写入至属于第二逻辑地址-实体地址映射表MT(n)的第二逻辑地址的第二写入指令时,存储器控制电路单元404(或存储器管理电路502)会判断第二逻辑地址-实体地址映射表MT(n)已载入至缓冲存储器508中的映射表区MTZ,且被暂存在第一区域Z1的缓存单元810(1-n)(以下也参考为第三缓存单元)。如图9C所示,存储器控制电路单元404(或存储器管理电路502)会将第二数据写入至可复写式非易失性存储器模块406中第二逻辑地址所映射的实体程序化单元,更新暂存在缓存单元810(1-n)中的第二逻辑地址-实体地址映射表MT(n),并将缓存单元810(1-n)标示为已更新状态。

此时,倘若从主机系统接收到指示将第三数据写入至属于第三逻辑地址-实体地址映射表MT(k)的第三逻辑地址的第三写入指令时,存储器控制电路单元404(或存储器管理电路502)会判断第三逻辑地址-实体地址映射表MT(k)尚未被载入至缓冲存储器508中的映射表区MTZ。因此,存储器控制电路单元404(或存储器管理电路502)会从可复写式非易失性存储器406中将第三逻辑地址-实体地址映射表MT(k)载入至映射表区MTZ,并以第一指标P1所指向的第一区域Z1中的缓存单元810(1-1)(以下也参考为第四缓存单元)来暂存第三逻辑地址-实体地址映射表MT(k)。如图9D所示,第三逻辑地址-实体地址映射表MT(k)被暂存在第一区域Z1中的缓存单元810(1-1)中,且存储器控制电路单元404(或存储器管理电路502)将第三数据写入至可复写式非易失性存储器406中。存储器控制电路单元404(或存储器管理电路502)并会更新第三逻辑地址-实体地址映射表MT(k),且将第四缓存单元810(1-1)标示为已更新状态。更进一步地,存储器控制电路单元404(或存储器管理电路502)会选取第一区域Z1中第四缓存单元810(1-1)的后一个不为已更新状态的缓存单元810(1-2)以用于暂存下一个已更新的逻辑地址-实体地址映射表,并设定第一指标P1指向缓存单元810(1-2)。

倘若第一区域Z1中的所有缓存单元810(1-0)~810(1-n)都被标示为已更新状态,存储器控制电路单元404(或存储器管理电路502)会启动回存操作,以将暂存在第一区域Z1的所有缓存单元810(1-0)~810(1-n)中的逻辑地址-实体地址映射表回存至可复写式非易失性存储器模块406中。

值得一提的是,上述关于存储器控制电路单元404(或存储器管理电路502)将数据写入至可复写式非易失性存储器模块406的运作,可在更新逻辑地址-实体地址映射表之前或之后执行,本发明并不加以限制。

在本范例实施例中,存储器控制电路单元404(或存储器管理电路502)还会设定第二指标P2指向第二区域Z2中的其中一个缓存单元。具体来说,存储器控制电路单元404(或存储器管理电路502)会根据第二区域Z2中的多个缓存单元的前后顺序,由后往前来决定第二指标P2要指向的缓存单元。如图9E所示,可从第二区域Z2中的最后一个缓存单元810(2-n)开始,设定第二指标P2指向缓存单元810(2-n)。

此时,倘若从主机系统接收到指示读取属于第四逻辑地址-实体地址映射表MT(s)的第四逻辑地址的第四数据的第一读取指令时,存储器控制电路单元404(或存储器管理电路502)会判断第四逻辑地址-实体地址映射表MT(s)尚未被载入至缓冲存储器508中的映射表区MTZ。因此,存储器控制电路单元404(或存储器管理电路502)会从可复写式非易失性存储器406中将第四逻辑地址-实体地址映射表MT(s)载入至映射表区MTZ,并以第二指标P2所指向的缓存单元810(2-n)(以下也参考为第五缓存单元)来暂存第四逻辑地址-实体地址映射表MT(s)。如图9F所示,在第四逻辑地址-实体地址映射表MT(s)被暂存在第二区域Z2中的缓存单元810(2-n)中之后,存储器控制电路单元404(或存储器管理电路502)便可根据第四逻辑地址-实体地址映射表MT(s)读取存储在可复写式非易失性存储器中的第四数据。存储器控制电路单元404(或存储器管理电路502)并会设定第二指标P2指向第二区域Z2中缓存单元810(2-n)的前一个缓存单元,即缓存单元810(2-(n-1))。在本范例实施例中,倘若第二指标P2已指向第二区域Z2的第一个缓存单元810(2-0)时,存储器控制电路单元404(或存储器管理电路502)会选取第二区域Z2的最后一个缓存单元810(2-n)作为下一个第二指标P2要指向的缓存单元。

此时,倘若从主机系统接收到指示读取属于第五逻辑地址-实体地址映射表MT(n+1)的第五逻辑地址的第五数据的第二读取指令时,存储器控制电路单元404(或存储器管理电路502)会判断第五逻辑地址-实体地址映射表MT(n+1)已被载入至缓冲存储器508中的映射表区MTZ,且被暂存在第二区域Z2的缓存单元810(2-0)。如图9F所示,存储器控制电路单元404(或存储器管理电路502)直接根据暂存在第二区域Z2的缓存单元810(2-0)中的第五逻辑地址-实体地址映射表MT(n+1)读取可复写式非易失性存储器模块406中的第五数据。

图10是根据一范例实施例所示出的缓冲存储器管理方法的流程图。

请参照图10。在步骤S1001中,存储器控制电路单元404(或存储器管理电路502)会在缓冲存储器508中划分出映射表区。

在步骤S1003中,存储器控制电路单元404(或存储器管理电路502)会将映射表区划分为分别具有连续的多个缓存单元的第一区域与第二区域。

在步骤S1005中,存储器控制电路单元404(或存储器管理电路502)从可复写式非易失性存储器模块中载入多个逻辑地址-实体地址映射表至第一区域与第二区域。如上所述,每一个被载入的逻辑地址-实体地址映射表是被暂存在第一区域中的其中一个缓存单元或第二区域中的其中一个缓存单元。

在步骤S1007中,存储器控制电路单元404(或存储器管理电路502)从主机系统11接收写入指令,此写入指令指示将数据写入至属于一逻辑地址-实体地址映射表的一逻辑地址。

在步骤S1009中,存储器控制电路单元404(或存储器管理电路502)判断此逻辑地址所属的逻辑地址-实体地址映射表是否已被暂存在第一区域或第二区域中。

在步骤S1011中,倘若此逻辑地址所属的逻辑地址-实体地址映射表已被暂存在第二区域的缓存单元(以下也参考为第一缓存单元)中时,存储器控制电路单元404(或存储器管理电路502)将数据写入至可复写式非易失性存储器模块,更新此逻辑地址所属的逻辑地址-实体地址映射表,将已更新的逻辑地址-实体地址映射表搬移至第一区域的缓存单元(以下也参考为第二缓存单元)中,并且在将已更新的逻辑地址-实体地址映射表搬移至第一区域的第二缓存单元之后,将第二缓存单元标示为已更新状态。

在步骤S1013中,倘若此逻辑地址所属的逻辑地址-实体地址映射表已被暂存在第一区域的缓存单元(以下也参考为第三缓存单元)中,存储器控制电路单元404(或存储器管理电路502)将数据写入至可复写式非易失性存储器模块,更新此逻辑地址所属的逻辑地址-实体地址映射表,并且将第三缓存单元标示为已更新状态。

倘若此逻辑地址所属的逻辑地址-实体地址映射表尚未被暂存在第一区域或第二区域,在步骤S1015中,存储器控制电路单元404(或存储器管理电路502)从可复写式非易失性存储器模块载入此逻辑地址所属的逻辑地址-实体地址映射表并暂存在第一区域的缓存单元(以下也参考为第四缓存单元)中,将数据写入至可复写式非易失性存储器模块,更新此逻辑地址所属的逻辑地址-实体地址映射表,并且将第四缓存单元标示为已更新状态。

在步骤S1017中,倘若第一区域的所有缓存单元都被标示为已更新状态时,存储器控制电路单元404(或存储器管理电路502)将暂存在第一区域的所有缓存单元中的逻辑地址-实体地址映射表回存至可复写式非易失性存储器模块中。

综上所述,本发明所提供的缓冲存储器管理方法、存储器控制电路单元与存储器存储装置,是在缓冲存储器中划分出具有连续缓存单元的特定区域,并将已被更新的逻辑地址-实体地址映射表集中暂存在此特定区域中,如此一来,当要将缓冲存储器中的已更新的逻辑地址-实体地址映射表回存至可复写式非易失性存储器模块时,便可根据实体程序化单元的大小,直接从此特定区域中将已更新的逻辑地址-实体地址映射表写入至实体程序化单元,而无须另外执行复制与收集的操作。且通过将此特定区域设定为特定大小,可避免进行回存操作时,因需处理的数据量过大而造成系统负载过重的问题,进而有效提升回存操作的处理速度。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1