快闪存储器管理方法与计算机系统转让专利

申请号 : CN200910136521.9

文献号 : CN101539887B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李榕王华桥金跃峰

申请人 : 美商威睿电通公司

摘要 :

一种快闪存储器管理方法与计算机系统,用以管理一快闪存储器装置,快闪存储器管理方法包括:接收包含一写入逻辑地址与一既定数据的一写入指令,用以写入既定数据至快闪存储器装置;以及若对应于写入逻辑地址的映射区块的页已经被使用,则写入既定数据于映射区块对应的修改区块的一空白页,包括:根据该写入逻辑地址由一快取区块读取对应于该修改区块的快取页至一随机存取存储器装置,于该随机存取存储器装置内依序读取该快取页的数据栏位以获得该空白页于该修改区块内的位置信息;以及依据获得的该位置信息写入该既定数据于该修改区块的该空白页。本发明可大幅度地提升快闪存储器的写入与读取速度,并占用随机存取存储器装置较少的空间。

权利要求 :

1.一种快闪存储器管理方法,其特征在于,用以管理一快闪存储器装置,该快闪存储器装置配置至少一映射区块、至少一修改区块以及至少一快取区块,该快闪存储器管理方法包括:接收包含一写入逻辑地址与一既定数据的一写入指令,用以写入该既定数据至该快闪存储器装置;以及若对应于该写入逻辑地址的映射区块的页已经被使用,则写入该既定数据于该映射区块对应的修改区块的一空白页;

其中,该写入该既定数据于该映射区块对应的修改区块的一空白页的步骤包括:

根据该写入逻辑地址由一快取区块读取对应于该修改区块的快取页至一随机存取存储器装置,于该随机存取存储器装置内依序读取该快取页的数据栏位以获得该空白页于该修改区块内的位置信息,其中该快取区块的各快取页具有多个数据栏位用以依序储存该修改区块的各非空白页所写入的数据所对应的位置信息;以及依据获得的该位置信息写入该既定数据于该修改区块的该空白页。

2.根据权利要求1所述的快闪存储器管理方法,其特征在于,更包括:写入包含该修改区块的存储该既定数据的页的位置信息于该快取区块的一空白页。

3.根据权利要求1所述的快闪存储器管理方法,其特征在于,更包括:

根据该写入逻辑地址取得对应的一逻辑区块编号以及一逻辑页编号;以及写入该逻辑页编号于该快取区块,用以作为该修改区块的存储该既定数据的页的位置信息。

4.根据权利要求3所述的快闪存储器管理方法,其特征在于,更包括:

于该快取区块的各快取页分配一数据区域以及一冗余区域,其中该数据区域包括多个数据栏位用以储存该逻辑页编号,并且该冗余区域用以储存该快取区块的一快取区块索引以及该快取区块的该快取页所对应的该修改区块的一物理区块编号。

5.根据权利要求3所述的快闪存储器管理方法,其特征在于,更包括:

于一随机存取存储器装置建立一第一信息表,用以储存各逻辑区块与各映射区块的一对应关系的信息;以及于该随机存取存储器装置建立一第二信息表,用以储存各物理区块的一状态信息与一连结信息。

6.根据权利要求5所述的快闪存储器管理方法,其特征在于,更包括:

储存该映射区块的一物理区块编号于该第一信息表;以及

储存该修改区块的一物理区块编号以及该快取区块的一快取区块索引于该第二信息表。

7.根据权利要求5所述的快闪存储器管理方法,其特征在于,判断对应于该写入逻辑地址的映射区块的页是否已经被使用的步骤包括:依据该逻辑区块编号查询该第一信息表以读取对应于该逻辑区块编号的映射区块的对应于该逻辑页编号的页;以及读取该页的一冗余区域以判断该映射区块的该页是否已经被使用。

8.根据权利要求5所述的快闪存储器管理方法,其特征在于,该根据该写入逻辑地址由一快取区块读取对应于该修改区块的快取页至一随机存取存储器装置的步骤包括:若该映射区块的该页已经被使用,依据该映射区块的一物理区块编号查询该第二信息表以获得该映射区块所对应的该修改区块的物理区块编号;

依据该修改区块的物理区块编号查询该第二信息表以获得该修改区块所对应的快取区块的快取区块索引;以及依据该快取区块索引查询一第三信息表以将该对应的快取区块的包含该修改区块的各非空白页所写入的数据所对应的该位置信息的快取页读取至该随机存取存储器装置,其中该第三信息表用以存储该快取区块的该快取区块索引以及该快取区块的物理区块编号与第一个空闲的快取页的页编号。

9.根据权利要求1所述的快闪存储器管理方法,其特征在于,于该随机存取存储器装置内自该快取页的尾端倒序读取所述数据栏位以获得对应于该写入逻辑地址的空白页于该修改区块内的该位置信息。

10.一种快闪存储器管理方法,其特征在于,用以管理一快闪存储器装置,其中该快闪存储器装置配置至少一映射区块、至少一修改区块以及至少一快取区块,该快闪存储器管理方法包括:接收包含一读取逻辑地址的一读取指令用以由该快闪存储器装置的一页读取一既定数据;以及若对应于该读取逻辑地址的映射区块的页的数据已经被修改过,则于对应于该映射区块的修改区块中读取该既定数据;

其中该于对应于该映射区块的修改区块中读取该既定数据的步骤包括:

根据该读取逻辑地址由一快取区块读取对应于该修改区块的快取页至一随机存取存储器装置,于该随机存取存储器装置内依序读取该快取页的数据栏位以获得对应于该读取逻辑地址的页于该修改区块内的一位置信息,其中该快取区块的各快取页具有多个数据栏位用以依序储存该修改区块的各非空白页所写入的数据所对应的位置信息;以及依据获得的该位置信息于该修改区块的该页读取该既定数据。

11.根据权利要求10所述的快闪存储器管理方法,其特征在于,更包括:

于一随机存取存储器装置建立一第一信息表,用以储存各逻辑区块与各映射区块的一对应关系的信息;以及于该随机存取存储器装置建立一第二信息表,用以储存各物理区块的一状态信息与一连结信息。

12.根据权利要求11所述的快闪存储器管理方法,其特征在于,更包括:

储存各映射区块的一物理区块编号于该第一信息表;以及

储存各修改区块的一物理区块编号、以及各修改区块所对应的一快取区块的一快取区块索引于该第二信息表。

13.根据权利要求11所述的快闪存储器管理方法,其特征在于,判断对应于该读取逻辑地址的该映射区块的页的数据是否已经被修改过的步骤包括:根据该读取逻辑地址取得对应的一逻辑区块编号以及一逻辑页编号;

根据该逻辑区块编号查询该第一信息表以获得对应于该逻辑区块编号的该映射区块的该物理区块编号;以及根据该物理区块编号查询该第二信息表以判断该映射区块的该页的数据是否已经被修改过。

14.根据权利要求11所述的快闪存储器管理方法,其特征在于,该于对应于该映射区块的该修改区块中读取该既定数据的步骤包括:若该映射区块的该页的数据已经被修改过,依据该映射区块的该物理区块编号查询该第二信息表以获得该映射区块所对应的该修改区块的物理区块编号;

依据该修改区块的物理区块编号查询该第二信息表以获得该修改区块所对应的快取区块的快取区块索引;以及依据该快取区块索引查询一第三信息表以将该对应的快取区块中包含该修改区块的各非空白页所写入的数据所对应的该位置信息的快取页读取至该随机存取存储器装置,其中该第三信息表用以存储该快取区块的该快取区块索引以及该快取区块的物理区块编号与第一个空闲的快取页的页编号。

15.根据权利要求14所述的快闪存储器管理方法,其特征在于,更包括:

于该快取区块的各快取页分配一数据区域以及一冗余区域,其中该数据区域包括多个数据栏位用以储存逻辑页编号,并且该冗余区域用以储存该快取区块的该快取区块索引以及该快取区块所对应的该修改区块的该物理区块编号。

16.根据权利要求14所述的快闪存储器管理方法,其特征在于,包括于该随机存取存储器装置内自该快取页的尾端倒序读取所述数据栏位以获得对应于该读取逻辑地址的页于该修改区块内的该位置信息。

17.一种计算机系统,其特征在于,包括:

一快闪存储器,配置至少一映射区块、至少一修改区块以及至少一快取区块;

一随机存取存储器装置;以及

一处理器,耦接至该快闪存储器与该随机存取存储器装置,该处理器接收包含一写入逻辑地址与既定数据的一写入指令,若对应于该写入逻辑地址的映射区块的页已经被使用,则根据该写入逻辑地址由一快取区块读取对应于该修改区块的快取页至该随机存取存储器装置,并于该随机存取存储器装置内依序读取该快取页的数据栏位以获得该空白页于该修改区块内的位置信息,以及依据该位置信息写入该既定数据于该修改区块的该空白页,其中该快取区块的各快取页具有多数据栏位用以依序储存该修改区块的各非空白页所写入的数据所对应的位置信息。

18.根据权利要求17所述的计算机系统,其特征在于,该快取区块的各快取页分别包括一数据区域与一冗余区域,该快取区块的该数据区域包括多个数据栏位用以储存该快取区块所对应的修改区块的各页所写入的数据所对应的逻辑页编号,并且该快取区块的该冗余区域用以储存该快取区块的一快取区块索引以及该快取区块所对应的修改区块的一物理区块编号。

19.根据权利要求17所述的计算机系统,其特征在于,该随机存取存储器装置耦接至该处理器,且储存一第一信息表以及一第二信息表,其中该第一信息表用以储存各逻辑区块与各映射区块的一对应关系的信息,该第二信息表用以储存各物理区块的一状态信息与一连结信息。

20.根据权利要求19所述的计算机系统,其特征在于,于初始化时,该处理器根据该映射区块、该修改区块以及该快取区块的一冗余区域所储存的数据建立该第一信息表以及该第二信息表。

21.根据权利要求19所述的计算机系统,其特征在于,该处理器依据该逻辑区块编号查询该第一信息表以读取对应于该逻辑区块编号的映射区块的对应于该逻辑页编号的页,并读取该页的一冗余区域以判断该映射区块的该页是否已经被使用。

22.根据权利要求19所述的计算机系统,其特征在于,若该映射区块的该页已经被使用,该处理器依据该映射区块的一物理区块编号查询该第二信息表以获得该映射区块所对应的该修改区块的物理区块编号,依据该修改区块的物理区块编号查询该第二信息表以获得该修改区块所对应的快取区块的快取区块索引,以及依据该快取区块索引查询一第三信息表以将该对应快取区块的包含该修改区块的各非空白页所写入的数据所对应的该位置信息的快取页读取至该随机存取存储器装置,其中该第三信息表用以存储该快取区块的该快取区块索引以及该快取区块的物理区块编号与第一个空闲的快取页的页编号。

23.根据权利要求17所述的计算机系统,其特征在于,当所有的该快取区块存满数据时,该处理器直接抹除该快取区块。

24.根据权利要求17所述的计算机系统,其特征在于,该快闪存储器的抹除数据的最小单位大于写入数据的最小单位。

25.一种计算机系统,其特征在于,包括:

一快闪存储器,配置至少一映射区块、至少一修改区块以及至少一快取区块;

一随机存取存储器装置;以及

一处理器,耦接至该快闪存储器与该随机存取存储器装置,该处理器接收包含一读取逻辑地址的一读取指令,若对应于该读取逻辑位置的该映射区块的页的数据已经被修改过,则根据该读取逻辑地址由一快取区块读取对应于该修改区块的快取页至该随机存取存储器装置,并于该随机存取存储器装置内依序读取该快取页的数据栏位以获得对应于该读取逻辑地址的页于该修改区块内的一位置信息,以及依据该位置信息于该修改区块的该页读取该既定数据;

其中该快取区块的各快取页具有多数据栏位用以依序储存该修改区块的各非空白页所写入的数据所对应的位置信息。

26.根据权利要求25所述的计算机系统,其特征在于,该处理器更于该随机存取存储器装置内建立一第一信息表,用以储存各映射区块的一物理区块编号,以及建立一第二信息表,用以储存各修改区块的一物理区块编号以及各修改区块所对应的一快取区块的一快取区块索引。

27.根据权利要求26所述的计算机系统,其特征在于,该处理器还根据该读取逻辑地址取得对应的一逻辑区块编号以及一逻辑页编号、根据该逻辑区块编号查询该第一信息表以获得对应于该逻辑区块编号的该映射区块的该物理区块编号、以及根据该物理区块编号查询该第二信息表以判断该映射区块的该页的数据是否已经被修改过。

28.根据权利要求26所述的计算机系统,其特征在于,若该映射区块的该页的数据已经被修改过,该处理器根据该映射区块的该物理区块编号查询该第二信息表以获得该映射区块所对应的该修改区块的物理区块编号、依据该修改区块的物理区块编号查询该第二信息表以获得该修改区块所对应的快取区块的快取区块索引、以及依据该快取区块索引查询一第三信息表以将该对应快取区块的包含该修改区块的各非空白页所写入的数据所对应的该位置信息的快取页读取至该随机存取存储器装置,其中该第三信息表存储于该随机存取存储器装置,用以存储该快取区块的该快取区块索引以及该快取区块的物理区块编号与第一个空闲的快取页的页编号。

29.一种快闪存储器管理方法,其特征在于,用以管理一快闪存储器装置,其中该快闪存储器装置配置至少一映射区块、至少一修改区块以及至少一快取区块,该快闪存储器管理方法包括:接收一包含一逻辑地址的存取指令,用以于该快闪存储器装置存取一既定数据;以及若对应于该逻辑地址的该映射区块的页不适于存取该既定数据,则于与该映射区块对应的修改区块中进行存取操作,包括:由该快闪存储器装置的一快取区块读取对应于该修改区块的一快取页至一随机存取存储器装置,于该随机存取存储器装置内依序读取该快取页的数据栏位以获得该既定数据于该修改区块内的存取位置信息,其中该快取区块的各快取页具有多个数据栏位用以依序储存该修改区块的各非空白页所写入的数据所对应的位置信息;以及依据该存取位置信息于该快闪存储器装置的修改区块内存取该既定数据。

说明书 :

快闪存储器管理方法与计算机系统

技术领域

[0001] 本发明是关于一种存储器装置的管理方法,特别关于一种可优化快闪存储器装置的读写操作性能的方法。

背景技术

[0002] 快闪存储器(flash memory)为一种特殊种类的非易失性(nonvolatile)存储器,其可储存数据以及被电性擦除。以快闪存储器为基础的储存装置具有低功率耗损,并且与以磁盘存储器为基础的储存装置相比,具有相对小的尺寸。因此,快闪存储器装置目前为一些手持电子计算装置中经常被使用的存储器装置,例如数字相机、移动电话或个人数字助理(personal digitalassistants,PDA)等。
[0003] 在磁盘存储器装置中,新的数据可覆写旧的数据。然而,在快闪存储器装置中,若要更新先前储存的数据,必须先将一区块(block)范围进行擦除,即,快闪存储器装置的读取与写入操作的单位可以是以页(page)或区段(sector)为基础,而擦除操作的最小单位为区块。因此,擦除操作通常比写入与读取操作需要更多的时间。此外,由于区块的大小远大于页与区段,即使区块内不需被写入的部分也要同时被擦除。
[0004] 传统技术中改善读写操作性能的方法为通过介质管理层,使用映射的方式,当需要修改某一区块内储存的数据时,在系统内取得另一个可用区块(通常称此区块为log区块),用以储存该区块的修改记录,如此一来,每当需要修改该区块的数据时,仅需将修改数据储存至该区块对应的log区块,即可避免必须擦除一整个区块的写入操作。然而,在读取操作时,为了寻找到最近被更新的数据内容,必须自log区块的末端倒序地遍历(visit)log区块内所储存的数据,这样一来,增加了许多不必要的数据读取操作,更降低了读取的速度。
[0005] 因此,需要一种新的快闪存储器管理方法,可优化快闪存储器装置的读写操作性能,使得存储器装置的读写操作速度可大幅地被提升。

发明内容

[0006] 本发明所述的快闪存储器管理方法,用以管理一快闪存储器装置,该快闪存储器装置配置至少一映射区块、至少一修改区块以及至少一快取区块,该快闪存储器管理方法包括:接收包含一写入逻辑地址与一既定数据的一写入指令,用以写入该既定数据至该快闪存储器装置;以及若对应于该写入逻辑地址的映射区块的页已经被使用,则写入该既定数据于该映射区块对应的修改区块的一空白页;其中,该写入该既定数据于该映射区块对应的修改区块的一空白页的步骤包括:根据该写入逻辑地址由一快取区块读取对应于该修改区块的快取页至一随机存取存储器装置,于该随机存取存储器装置内依序读取该快取页的数据栏位以获得该空白页于该修改区块内的位置信息,其中该快取区块的各快取页具有多个数据栏位用以依序储存该修改区块的各非空白页所写入的数据所对应的位置信息;以及依据获得的该位置信息写入该既定数据于该修改区块的该空白页。
[0007] 本发明所述的快闪存储器管理方法,用以管理一快闪存储器装置,其中该快闪存储器装置配置至少一映射区块、至少一修改区块以及至少一快取区块,该快闪存储器管理方法包括:接收包含一读取逻辑地址的一读取指令用以由该快闪存储器装置的一页读取一既定数据;以及若对应于该读取逻辑地址的映射区块的页的数据已经被修改过,则于对应于该映射区块的修改区块中读取该既定数据;其中该于对应于该映射区块的修改区块中读取该既定数据的步骤包括:根据该读取逻辑地址由一快取区块读取对应于该修改区块的快取页至一随机存取存储器装置,于该随机存取存储器装置内依序读取该快取页的数据栏位以获得对应于该读取逻辑地址的页于该修改区块内的一位置信息,其中该快取区块的各快取页具有多个数据栏位用以依序储存该修改区块的各非空白页所写入的数据所对应的位置信息;以及依据获得的该位置信息于该修改区块的该页读取该既定数据。
[0008] 本发明所述的计算机系统,包括:一快闪存储器,配置至少一映射区块、至少一修改区块以及至少一快取区块;一随机存取存储器装置;以及一处理器,耦接至该快闪存储器与该随机存取存储器装置,该处理器接收包含一写入逻辑地址与既定数据的一写入指令,若对应于该写入逻辑地址的映射区块的页已经被使用,则根据该写入逻辑地址由一快取区块读取对应于该修改区块的快取页至该随机存取存储器装置,并于该随机存取存储器装置内依序读取该快取页的数据栏位以获得该空白页于该修改区块内的位置信息,以及依据该位置信息写入该既定数据于该修改区块的该空白页,其中该快取区块的各快取页具有多数据栏位用以依序储存该修改区块的各非空白页所写入的数据所对应的位置信息。
[0009] 本发明所述的计算机系统,包括:一快闪存储器,配置至少一映射区块、至少一修改区块以及至少一快取区块;一随机存取存储器装置;以及一处理器,耦接至该快闪存储器与该随机存取存储器装置,该处理器接收包含一读取逻辑地址的一读取指令,若对应于该读取逻辑位置的该映射区块的页的数据已经被修改过,则根据该读取逻辑地址由一快取区块读取对应于该修改区块的快取页至该随机存取存储器装置,并于该随机存取存储器装置内依序读取该快取页的数据栏位以获得对应于该读取逻辑地址的页于该修改区块内的一位置信息,以及依据该位置信息于该修改区块的该页读取该既定数据,其中该快取区块的各快取页具有多数据栏位用以依序储存该修改区块的各非空白页所写入的数据所对应的位置信息。
[0010] 本发明所述的快闪存储器管理方法,用以管理一快闪存储器装置,其中该快闪存储器装置配置至少一映射区块、至少一修改区块以及至少一快取区块,该快闪存储器管理方法包括:接收一包含一逻辑地址的存取指令,用以于该快闪存储器装置存取一既定数据;以及若对应于该逻辑地址的该映射区块的页不适于存取该既定数据,则于与该映射区块对应的修改区块中进行存取操作,包括:由该快闪存储器装置的一快取区块读取对应于该修改区块的一快取页至一随机存取存储器装置,于该随机存取存储器装置内依序读取该快取页的数据栏位以获得该既定数据于该修改区块内的存取位置信息,其中该快取区块的各快取页具有多个数据栏位用以依序储存该修改区块的各非空白页所写入的数据所对应的位置信息;以及依据该存取位置信息于该快闪存储器装置的修改区块内存取该既定数据。
[0011] 本发明可大幅度地提升快闪存储器的写入与读取速度,且可占用较少的随机存取存储器空间。

附图说明

[0012] 图1是显示根据本发明的一实施例所述的计算机系统。
[0013] 图2是显示根据本发明的一实施例所述的快闪存储器的数据结构示意图。
[0014] 图3是显示根据本发明的一实施例所述的逻辑至映射区块对应表的数据结构示意图。
[0015] 图4是显示根据本发明的一实施例所述的物理区块信息表的数据结构示意图。
[0016] 图5a至图5b是显示根据本发明的一实施例所述的快取区块索引表的数据结构示意图。
[0017] 图6是显示根据本发明的一实施例所述的快闪存储器管理方法流程图。
[0018] 图7a至图7b是显示根据本发明的一实施例所述的快闪存储器的写入操作的详细流程图。
[0019] 图8a至图8e是显示根据本发明的一实施例所述的快闪存储器的写入操作的示意图。
[0020] 图9是显示根据本发明的另一实施例所述的快闪存储器管理方法流程图。
[0021] 图10是显示根据本发明的一实施例所述的快闪存储器的读取操作的详细流程图。
[0022] 图11a至图11d是显示根据本发明的一实施例所述的快闪存储器的读取操作的示意图。

具体实施方式

[0023] 为使本发明的制造、操作方法、目标和优点能更明显易懂,下文特举几个较佳实施例,并配合所附图式,作详细说明如下。
[0024] 实施例:
[0025] 图1是显示根据本发明的一实施例所述的计算机系统100,包括快闪存储器101、处理器102以及随机存取存储器装置103。处理器102根据接收到的指令以及通过执行既定的程序码管理快闪存储器101。根据本发明的一实施例,快闪存储器101可以是具有一次可擦除数据的最小单位大于一次可写入数据的最小单位的特性的一种存储器装置,例如NAND型或NOR型快闪存储器。快闪存储器101可被配置至少一映射区块、修改区块以及快取区块,其中对于NAND型快闪存储器而言,映射区块、修改区块以及快取区块可分别包括多个页(page),而对于NOR型快闪存储器而言,映射区块、修改区块以及快取区块可分别包括多个区段(sector)。为了简洁起见,本说明书将统一使用“页”进行相关的描述,然而值得注意的是,其并非用以限定本发明的范围,任何本领域技术人员,在不脱离本发明的精神和范围内,当可做一些更动与润饰,用以将本发明的精神应用于各种快闪存储器。
[0026] 根据本发明的一实施例,映射区块的各页用以储存原始数据,并且映射区块可具有至少一对应的修改区块,用以当原始数据需被更改时,于该修改区块的各页储存原始数据的更新内容,并且各修改区块可对应于至少一快取区块的一页,用以储存修改区块所写入的数据的位置信息。图2是显示根据本发明的一实施例所述的快闪存储器的数据结构示意图。如图所示,快闪存储器200可被配置多个快取区块201、多个映射区块202以及多个修改区块203。快取区块201的各页分别包括一数据区域与一冗余区域,数据区域可包含多个数据栏位,用以依照对应的修改区块的页顺序储存修改区块的各非空白页的位置信息。以256兆字节(MB)的快闪存储器为例,可配置2048个区块,各区块大小为128KB,并且各区块可包含256页(或区段),各页的数据区域大小为512字节(byte),并具有对应的16byte的冗余区域。因此,根据本发明的一实施例,若各数据栏位使用2byte记录位置信息,则快取区块201的各页的数据区域可分成256个数据栏位,足以完整记录一修改区块的各页的所有位置信息,而快取区块201的冗余区域则可用以记录该快取区块201的一快取区块索引,以及该快取区块201所对应的修改区块的物理区块编号(以下将作详细介绍)。此外,如图2所示,映射区块202与修改区块203也可分别包括一数据区域与一冗余区域,其中映射区块202与修改区块203的冗余区域用以储存该页的数据区域所写入的数据所对应的逻辑区块编号与逻辑页编号(以下将作详细介绍)。
[0027] 根据本发明的一实施例,当写入快闪存储器101时,处理器102接收包含一写入逻辑地址与既定数据的一写入指令,并根据该写入逻辑地址取得对应的一逻辑区块编号LBN以及一逻辑页编号LSN。例如,假设写入逻辑地址为90,其中快闪存储器101的一区块包含8页,并且一页大小为10byte,则可得到逻辑区块编号LBN为90除以80的商数,而逻辑页编号LSN为90除以80的余数再除以页大小所得到的数值,即在此范例中,LBN=1,LSN=
1,因此处理器102将接收到的既定数据存入第1个逻辑区块的第1页。处理器102进一步根据逻辑区块编号LBN取得对应的一映射区块,其中此映射区块为快闪存储器101中实际被配置的一物理区块,用以储存此逻辑区块的原始数据。当处理器102判断映射区块中对应于此逻辑页编号LSN的一页尚未被写入时,处理器102将既定数据写入至该页,并且当该页已被写入时,处理器102进一步取得对应于此映射区块的一修改区块,以及对应于此修改区块的一快取区块,处理器102将既定数据写入至此修改区块的一空白页,并且将既定数据的逻辑页编号LSN写入至此快取区块的一空白页。
[0028] 根据本发明的一实施例,处理器102更进一步在随机存取存储器装置103内建立一逻辑至映射区块对应表(第一信息表)、一物理区块信息表(第二信息表)以及一快取区块索引表(第三信息表)。图3是显示根据本发明的一实施例所述的逻辑至映射区块对应表300的数据结构示意图。根据本发明的一实施例,逻辑至映射区块对应表300依照逻辑区块编号的顺序依序储存各逻辑区块所对应的映射区块的一物理区块编号,例如,对应于逻辑区块编号LBN=0的一逻辑区块,其映射区块的物理区块编号为0x0002。图4是显示根据本发明的一实施例所述的物理区块信息表400的数据结构示意图。根据本发明的一实施例,物理区块信息表400依照物理区块编号的顺序依序储存各物理区块的一状态与其连结信息。例如,物理区块编号为0的一物理区块为一空闲区块(FB),即,尚未被使用的区块,其连结信息则储存下一个空闲区块的物理区块编号。物理区块编号为2的一物理区块为一映射区块(MpB),其连结信息则储存对应的修改区块的物理区块编号(0x0003)。物理区块编号为3的一物理区块为一修改区块(MoB),其连结信息则储存对应的快取页的一快取区块索引,其中快取区块索引可用以指示出对应于此修改区块的快取区块的位置以及页信息。例如,对于同样包含8页的快取区块,快取区块索引0x0011可指示出快取页位于系统配置的第1个快取区块(11除以8的商数)的第3页(11除以8的余数)。而物理区块编号为6的一物理区块为一快取区块(CB),其连结信息则储存此快取区块的快取区块编号。图5a是显示根据本发明的一实施例所述的快取区块索引表500的数据结构示意图。快取区块索引表500根据快取区块编号依序记录该快取区块的物理区块编号与第一个空闲的快取页(即,快取区块的第一个空白页)的页编号。如图所示,假设系统最大可配置4个快取区块,并且各快取区块可包含8页,则快取区块索引表500依序记录这4个快取区块的物理区块编号与第一个空白页的编号。根据本发明的一实施例,当一个快取区块的各页都被使用过后,才会配置下一个快取区块。如图5a所示,编号0的快取区块已被存满数据,因此目前使用中的快取区块为编号1的快取区块。
[0029] 图6是显示根据本发明的一实施例所述的快闪存储器管理方法流程图。如图所示,处理器102首先接收包含一写入逻辑地址与一既定数据的一写入指令,用以写入该既定数据至一快闪存储器装置的一页(步骤S601)。接着,当该页已写入数据时,处理器102取得对应于包含该页的一映射区块的一修改区块,以及配置对应于该修改区块的一快取区块(步骤S602)。最后,处理器102写入该既定数据于该修改区块的一空白页,并且写入包含该修改区块的该页的位置信息于该快取区块的一空白页(步骤S603)。
[0030] 图7a至图7b是显示根据本发明的一实施例所述的快闪存储器的写入操作的详细流程图。首先,处理器102根据接收到的写入指令取得写入逻辑地址所对应的逻辑区块编号LBN与逻辑页编号LSN(步骤S701)。接着,处理器102查询逻辑至映射区块对应表以取得映射区块的物理区块编号(步骤S702)。接着,处理器102检查此映射区块中对应于此逻辑页编号LSN的一页是否为空白页(步骤S703)。若此页为一空白页,则处理器102将既定数据写入此页(步骤S704)。若此页已存有数据,则处理器102依据物理区块信息表查询映射区块是否有对应的修改区块(步骤S705)。若此映射区块没有对应的修改区块,则处理器102为此映射区块分配一修改区块(步骤S706)。接着,处理器102将既定数据写入此修改区块的第一页(步骤S707),并且分配快取区块的一页给此修改区块(步骤S708),用以记录此既定数据的位置信息(例如,逻辑页编号LSN),并且最后更新物理区块信息表(参考图4)与快取区块索引表(参考图5a、5b)中映射区块、修改区块以及快取区块的相关信息(步骤S709)。
[0031] 另一方面,若此映射区块已有对应的修改区块,则处理器102依据物理区块信息表中映射区块的连结信息取得修改区块所对应的快取页的快取区块索引(步骤S710)。接着,处理器102再根据快取区块索引查询快取区块索引表,以取得此快取页所对应的快取区块的物理区块编号(步骤S711)。接着,处理器102将此快取页的内容载入随机存取存储器装置103(步骤S712)。接着,处理器102操作于随机存取存储器装置103中,自快取页的数据尾端倒序遍历(visit)快取页所储存的数据,找出此快取页的数据区域中,第一个未被使用的空白数据栏位的索引,以取得此快取页所对应的修改区块的第一个可使用的空白页的位置(步骤S713),并根据此位置信息将既定数据写入修改区块所对应的空白页(步骤S714)。接着,处理器102将此既定数据的位置信息(例如,逻辑页编号LSN)写入至被载入随机存取存储器装置103的快取页的下一个空白栏位,并且将此被更新过的快取页数据更新至快闪存储器101内的快取区块的下一个空白页(步骤S715)。最后,处理器102更新物理区块信息表(参考图4)与快取区块索引表(参考图5a、5b)中映射区块、修改区块以及快取区块的相关信息(步骤S716)。
[0032] 图8a至图8e是显示根据本发明的一实施例所述的快闪存储器的写入操作的示意图。值得注意的是,图式中的虚线用以区隔分别位于快闪存储器101与随机存取存储器装置103的数据,其中虚线的右侧用以显示快闪存储器101内的数据结构。如上述,假设处理器102接收到的写入逻辑地址为90,其中写入快闪存储器101的一区块包含8页,并且一页大小为10byte,则可得到逻辑区块编号LBN为90除以80的商数,而逻辑页编号LSN为90除以80的余数再除以页大小所得到的数值,即在此范例中,LBN=1,LSN=1,因此处理器102必须将接收到的既定数据存入第1个逻辑区块的第1页。接着,如图8a所示,处理器
102根据逻辑区块编号(LBN=1)查找逻辑至映射区块对应表801中索引1的数据栏位内容,得到对应的映射区块的物理区块编号。其中,根据本发明的一实施例,若该数据栏位为空,代表此逻辑区块尚未分配对应的映射区块,处理器102可分配映射区块给此逻辑区块。
若该数据栏位不为空,代表此逻辑区块已分配有对应的映射区块,例如,在此实施例中,对应的映射区块的物理区块编号为3,代表此映射区块实际配置为第3个物理区块。处理器
102接着根据逻辑页编号(LSN=1)存取映射区块803(物理区块3)的第1页,并且判断此页是否已被使用。根据本发明的一实施例,处理器102可根据此页的冗余区域中所储存的LBN与LSN判断此页是否已被使用,若无记录LBN与LSN,则处理器102可直接将数据写入该页。另一方面,若此页的冗余区域已记录LBN与LSN,代表此页的数据区域已被使用,如图所示的映射区块803的第1页,其中被填满的栏位代表该栏位已被使用。因此,处理器102接着根据得到的物理区块编号查找物理区块信息表802中索引3的数据栏位内容,其中物理区块信息表802如上述包含状态与连结信息两栏位,状态栏位用以记录此物理区块为一空闲区块(FB)、快取区块(CB)、映射区块(MpB)或修改区块(MoB),而连结信息如上述分别用以储存此物理区块的连结信息。根据本发明的一实施例,若连结信息为空,代表此映射区块内所储存的数据尚未被修改过,处理器102可配置一修改区块以及一快取区块,利用此修改区块的一空白页储存在本次写入操作要被储存的既定数据,并且于快取区块的一空白页储存此既定数据所对应的逻辑页编号(LSN=1)。另一方面,当连结信息不为空,例如图
8a所示,处理器102由物理区块信息表802中得知映射区块对应的修改区块的物理区块编号为4。
[0033] 接着,处理器102根据修改区块的物理区块编号查找物理区块信息表802内对应的栏位,得到修改区块的连结信息。如上述,修改区块的连结信息储存对应的快取页的一快取区块索引。处理器102接着根据快取区块索引得到快取区块的位置信息,如上述,在此实施例中,快取区块索引为11,处理器102因此得知对应于此修改区块的快取页位于系统配置的第1个快取区块(11除以8的商数)的第3页(11除以8的余数)。请参考图8b,处理器102可进一步根据快取区块索引表809取得此快取页所对应的快取区块的物理区块编号,得知系统配置的第1个快取区块(快取区块编号为1)所对应的物理区块编号为2。处理器102接着可存取系统配置的第1个快取区块805的第3页。
[0034] 值得注意的是,如上述,快取区块的冗余区域同样会记录对应的修改区块的物理区块编号,例如快取区块804与805的冗余区域(右侧栏位)可储存对应的修改区块的物理区块编号,用以显示出各页的数据区域所储存的位置信息属于哪个修改区块。根据本发明的一实施例,当处理器102根据快取区块索引找到对应的快取页806时,处理器102将快取页806的内容载入随机存取存储器装置103。
[0035] 在此实施例中,由于是要将数据写入快闪存储器,因此处理器102自快取页806的数据尾端倒序遍历(visit)快取页806的内容,如图8c所示,处理器102发现最后一笔被储存的逻辑页编号LSN位于快取页806的第5个栏位。因此,处理器102得知修改区块内下一个可使用的空白页为第6页。
[0036] 值得注意的是,在本发明的实施例中,由于快取页806的内容已被载入随机存取存储器装置103,因此处理器102可快速得知修改区块内下一个可使用的空白页,因此,与传统技术中必须在快闪存储器中倒序遍历修改区块的内容以找出下一个空白页等的技术相比,本发明所提出的快闪存储器管理方法实际上仅需存取快取区块的一页(即,上述的快取页),以及修改区块的一页,显然地可大幅度地提升快闪存储器的写入速度。
[0037] 请参考图8d,由于处理器102已得知修改区块807(物理区块4)内下一个可使用的空白页为第6页,因此处理器102接着将既定数据写入该页,并且在该页的冗余区域写入这笔既定数据的逻辑页编号LSN(以及逻辑区块编号LBN,图未示)。此外,请参考回图8c,由于处理器102已在遍历过程中得知快取页806下一个可被使用的栏位为第6个栏位,如图8c中绘出的箭头所指,处理器102接着将这笔既定数据的逻辑页编号LSN=1写入至被载入随机存取存储器装置103的快取页806第6个栏位。
[0038] 值得注意的是,由于实际上快取区块805是被储存于快闪存储器内,因此处理器102接着将随机存取存储器装置103内被更新的快取页806数据写入至快取区块805(物理区块2)的下一个空白页。根据本发明的一实施例,处理器102根据快取区块索引表809得知快取区块805的下一个空白页为第4页,因此处理器102如图8e所示将被更新的快取页
806数据写入至快取区块805(物理区块2)的第4页,并且将快取区块索引表809中此快取区块的第一空白页信息更新为5。此外,修改区块所对应的快取区块索引变成12,因此处理器102最后于物理区块信息表802内将修改区块807所对应的快取区块索引更新成12。
[0039] 图9是显示根据本发明的另一实施例所述的快闪存储器管理方法流程图。首先,处理器102接收包含一读取逻辑地址的一读取指令,并根据读取逻辑地址取得一快取区块的一快取区块索引(步骤S901)。接着,处理器102根据快取区块索引载入快取区块的多个数据栏位所储存的位置信息至一随机存取存储器装置(步骤S902)。接着,处理器102于随机存取存储器装置内自快取区块的数据栏位尾端倒序寻找读取逻辑地址所对应的一位置信息,以取得读取逻辑地址最近储存的位置信息(步骤S903)。最后,处理器102根据取得的位置信息存取读取逻辑地址所对应的修改区块内所储存的对应于读取逻辑地址的数据(步骤S904)。
[0040] 图10是显示根据本发明的一实施例所述的快闪存储器的读取操作的详细流程图。首先,处理器102根据读取指令的读取逻辑地址取得逻辑区块编号LBN与逻辑页编号LSN(步骤S1001)。接着,处理器102查询逻辑至映射区块对应表以取得映射区块的物理区块编号(步骤S1002)。接着,处理器102检查此映射区块中对应于此逻辑页编号LSN的一页是否为空白页(步骤S1003)。若是,处理器102返回空白数据(步骤S1004)。若否,处理器102依据物理区块信息表查询映射区块是否有对应的修改区块(步骤S1005)。若此映射区块没有对应的修改区块,则处理器102直接返回此页所储存的数据(步骤S1006)。若此映射区块有对应的修改区块,则处理器102依据物理区块信息表中映射区块的连结信息取得修改区块所对应的快取页的快取区块索引(步骤S1007)。接着,处理器102再根据快取区块索引查询快取区块索引表,以取得此快取页所对应的快取区块的物理区块编号(步骤S1008)。接着,处理器102将此快取页的内容载入随机存取存储器装置103(步骤S1009)。接着,处理器102操作于随机存取存储器装置103中,自快取页的数据尾端倒序遍历(visit)快取页所储存的数据,寻找出最新一笔对应于此逻辑页编号LSN的记录,并取得储存此逻辑页编号LSN的栏位的索引(步骤S1010)。最后,处理器102根据此索引读取修改区块中对应于此逻辑页编号LSN的最新一笔数据并返回(步骤S1011)。
[0041] 图11a至图11d是显示根据本发明的一实施例所述的快闪存储器的读取操作的示意图。假设处理器102接收到的读取逻辑地址为90,则处理器102可得到逻辑区块编号LBN=1,逻辑页编号LSN=1。接着,如图11a所示,处理器102根据逻辑区块编号(LBN=1)查找逻辑至映射区块对应表801中索引1的数据栏位内容,得到对应的映射区块的物理区块编号。其中,根据本发明的一实施例,若该数据栏位为空,代表此逻辑区块尚未分配对应的映射区块,处理器102无法找到有效的数据,便可直接返回此结果。若该数据栏位不为空,代表此逻辑区块已分配有对应的映射区块,例如,在此实施例中,对应的映射区块的物理区块编号为3,代表此映射区块实际配置为第3个物理区块。处理器102接着根据逻辑页编号(LSN=1)存取映射区块803(物理区块3)的第1页,并且判断此页是否已被使用。根据本发明的一实施例,处理器102可根据此页的冗余区域中所储存的LBN与LSN判断此页是否已被使用,若无记录LBN与LSN,代表此页尚未被使用,处理器102可返回空数据。另一方面,若此页的冗余区域已记录LBN与LSN,代表此页的数据区域已被使用,如图所示的映射区块803的第1页,其中被填满的栏位代表该栏位已被使用。因此,处理器102接着根据得到的物理区块编号查找物理区块信息表802中索引3的数据栏位内容。根据本发明的一实施例,若映射区块的连结信息为空,代表此映射区块内所储存的数据尚未被修改过,即,映射区块内所储存的数据为有效的,处理器102可直接读取并返回映射区块内所储存的数据。另一方面,当连结信息不为空,代表此映射区块内所储存的数据已被修改过,即,映射区块内所储存的数据为无效的。因此,处理器102进一步通过物理区块信息表802中得知映射区块所对应的修改区块的物理区块编号为4。
[0042] 接着,处理器102根据修改区块的物理区块编号查找物理区块信息表802内对应的栏位,得到修改区块的连结信息。如上述,修改区块的连结信息储存对应的快取页的一快取区块索引,例如在此实施例中,快取区块索引为12。接着,处理器102根据快取区块索引得知对应于此修改区块的快取页位于系统配置的第1个快取区块(12除以8的商数)的第4页(12除以8的余数)。请参考图11b,处理器102可进一步根据快取区块索引表809取得此快取页所对应的快取区块的物理区块编号,得知系统配置的第1个快取区块(快取区块编号为1)所对应的物理区块编号为2。处理器102接着可存取系统配置的第1个快取区块805的第4页,并且将此快取页808的内容载入随机存取存储器装置103。
[0043] 接着,处理器102自快取页808的数据尾端倒序遍历快取页808的内容,以寻找出最后一笔存有LSN=1的数据的索引。如上述,由于快取页808的内容已被载入随机存取存储器装置103,因此处理器102不需遍历配置于快闪存储器101内的修改区块,仅需通过遍历储存于随机存取存储器装置103的快取页,即可得知修改区块内最新存有LSN=1的数据的位置。因此,与传统技术相比,本发明所提出的快闪存储器管理方法显然地可大幅度地提升快闪存储器的读取速度。再者,虽然本实施例中,处理器102是从尾端开始倒序遍历随机存取存储器装置103中快取页的数据栏位,但是显然也可以从头端开始顺序遍历该快取页的数据栏位来获得需要存取的页在该修改区块中的位置信息。
[0044] 如图11c所示,处理器102发现最后一笔存有LSN=1的数据位于快取页808的第6个栏位。因此,处理器102可得知修改区块的第6页储存着对应于逻辑地址为90的最新数据。最后,如图11d所示,处理器102存取修改区块807(物理区块4)的第6页的数据区域,并返回读取的数据。
[0045] 根据本发明的一实施例,快取区块的数量可根据计算机系统的需求而决定。例如,对于一快闪存储器装置,可配置四个快取区块,并依序分配快取区块编号(例如,0~3),并且处理器102于快取区块初始化时,可通过遍历修改区块的冗余区域所储存的位置信息建立出快取区块。处理器102接着根据映射区块、修改区块以及快取区块的冗余区域所储存的数据(包含逻辑块编号与逻辑页编号)建立出如图3所示的逻辑至映射区块对应表300、如图4所示的物理区块信息表400以及如图5a所示的快取区块索引表500。根据本发明的一实施例,为了避免不正常关机导致快取区块所储存的数据产生错误,于计算机系统初始化时,处理器102也可先检查各快取区块所储存的内容是否正确,例如,根据各快取页的数据栏位所储存的位置信息(即,逻辑页编号)以及各快取页的冗余区域所储存的修改区块的物理区块编号,比对该快取页的各位置信息是否与此修改区块的各页的冗余区域所储存的逻辑页编号相符。若符合则保留此快取区块,若不符合,则舍弃此快取区块,直接擦除。此外,当一个快取区块存满数据时,处理器102可取出下一个预留的空闲快取区块使用(如图5a与图5b所示),并且当所有已被使用的快取区块达到系统规定的最大可用快取区块数量时,例如,若图5b所示的快取区块索引表501中4个快取区块的第一个空白页皆记录为系统最大页数8时,处理器102直接擦除所有快取区块,以释放出有效的空间。
[0046] 本领域一般技术人员可以了解,虽然于之前描述中是将读取操作与写入操作分开说明的,但是本发明读取与写入操作的实质特征是相同的。当逻辑地址所对应的映射区块的数据不能直接进行存取时,即在进行写入操作时映射区块的该页已存储有数据或是在进行读取操作时映射区块的该页数据并不是最新的,处理器需要通过映射区块的信息来获取与映射区块相对应的修改区块的第一个空白页的位置信息或是与该逻辑地址相对应的最新的页的位置信息,进而才能够高效而准确地完成既定数据的写入或读取操作。
[0047] 此外,当系统对快闪存储器执行合并(merge)操作时,处理器102可根据各修改区块的冗余区域所储存的逻辑区块编号LBN与逻辑页编号LSN判断修改区块的数据区域是否依照映射区块的数据顺序被写入数据。当映射区块的各页的更新数据依序被写入修改区块时,处理器102可直接擦除映射区块,并且改为配置修改区块作为映射区块。另一方面,当映射区块的各页的更新数据依序未被写入修改区块时,处理器102可取得一空闲区块,将修改区块与映射区块的有效数据合并至空闲区块,擦除映射区块与修改区块,并且配置此空闲区块作为新的映射区块。
[0048] 以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。
[0049] 附图中符号的简单说明如下:
[0050] 100:计算机系统
[0051] 101:快闪存储器
[0052] 102:处理器
[0053] 103:随机存取存储器装置
[0054] 200:快闪存储器
[0055] 201:快取区块
[0056] 202:映射区块
[0057] 203:修改区块
[0058] 300、801:逻辑至映射区块对应表
[0059] 400、802:物理区块信息表
[0060] 500、501、809:快取区块索引表
[0061] 803:映射区块
[0062] 804、805:快取区块
[0063] 806、808:快取页
[0064] 807:修改区块
[0065] LBN:逻辑区块编号
[0066] LSN:逻辑页编号。