数据快取架构与其使用的快取算法的制作方法

文档序号:6615030阅读:141来源:国知局
专利名称:数据快取架构与其使用的快取算法的制作方法
技术领域
本发明涉及一种数据快取(data cache)架构与一种快取算法,尤其涉及 一种适用于与非门(NAND)型快闪装置的数据快取架构与其使用的快取算 法,以减少与非门型快闪装置的烧写/擦除(program/erase)次数。
背景技术
在一与非门型快闪储存应用产品中,烧写/擦除次数是决定该快闪储存 应用产品的寿命(即,平均失效时间,meantime between failures, MTBF) 的重要因素。不幸地,快闪储存应用产品的烧写/擦除次数的规格会随着半 导体工艺技术的演变(例如,从65纳米工艺演变到45纳米工艺)而逐渐变少。
公知技术的快取算法中,快取可分为指令快取(instruction cache)以及 数据快取(data cache),其用来改善指令编码或数据的撷取时间。S卩,中 央处理器可以从指令快取以及数据快取中直接存取指令编码或数据,而不需 要花较长的存取时间从主存储器(外接存储器)中撷取。
就快取算法而言,快取容量(cache size)、快取标签存储器容量(cache tag memory size)与快取击中率(cache hit rate)为评估快取算法的重要因素。 快取容量越大,快取击中率也就越高;但同时,较大的快取容量也造成较高 的高速缓存成本,并且需要更复杂的快取标签存储器控制硬件。
公知技术的快取算法中,高速缓存是平均分割的。举例来说,对于32 位中央处理器,指令快取的单位为32位。如果总快取容量为8 KB (千字节), 则会有2K (8 KB/32位)个快取项目(cache entry);如果总快取容量为16 KB (千字节),则会有4K (16 KB/32位)个快取项目,而允许更高的快取 击中率。
从闪存的观点,闪存具有一个很重要的特性,即同一快闪区块不能被"重 复写入"(overwritten)。如果使用者欲重复写入数据,此快闪区块必须先被擦除然后才可以被烧写(写入),这样就算一次烧写/擦除。
对于多层式记忆元(multiple level cell, MLC)闪存来说,其具有另一特 性,即使用者必须在一区块内依序写入页面数据(page data)。换言之,使 用者必须在一区块内依序写入第一页面数据、第二页面数据…,而不可以先 写入第四页面数据再写入第二页面数据,因为这样的"逆向写入"(reverse write)会造成闪存内的数据发生错误。

发明内容
然而,主机有时候会逆向写入数据于一区块中。为了解决此问题,当一 区块中的数据已经塞满时,使用者必须先将数据"快取"至高速缓存内,再 写回闪存。通过这种方式,可轻易地解决闪存的"逆向写入"与"重复写入" 的问题,并且减少闪存的烧写/擦除次数,以进一步改善闪存的寿命。
本发明的一目的在于提供一种数据快取架构,其使用于一与非门型快闪 装置中,以减少与非门型快闪装置的烧写/擦除次数。
本发明的另一目的在于提供一种快取算法,使用两种不同功函数的电 极,其使用于一与非门型快闪装置的数据快取架构中,以减少与非门型快闪 装置的烧写/擦除次数。
为达上述目的,本发明提供一种设置于一主机与一闪存之间的数据快取
架构,该数据快取架构包括 一缓冲存储器,其从该主机接收数据; 一存储 器控制器,其调配该缓冲存储器内的数据;以及一数据高速缓存,是由该存 储器控制器根据一快取算法所控制。本发明的数据快取架构与其使用的快取 算法可以被用来减少与非门型快闪装置的烧写/擦除次数。
优选地,该缓冲存储器为一静态随机存取存储器(static random access memory, SRAM)。
优选地,该存储器控制器包括一微处理器。
优选地,该数据高速缓存为一同步动态随机存取存储器(synchronous dynamic random access memory, SDRAM)。
优选地,该数据高速缓存被分割成至少多个大快取容量区块以及多个小 快取容量区块。
优选地,该数据高速缓存被分割成至少多个大快取容量区块、多个中快
6取容量区块以及多个小快取容量区块。
优选地,该快取算法是以一应用软件或一硬件完成。 优选地,该快取算法包括以下步骤
(a) 判断该主机写入的数据是否大于或等于一储存区(sector)临界数;
(b) 判断快取击中(cache hit)是否发生于该大快取容量区块内;以及
(c) 如果该主机写入的数据小于该储存区临界数而且快取击中并未发 生于该大快取容量区块内,写入数据至该小快取容量区块,否则写入数据至 该大快取容量区块。
优选地,该步骤(C)包括以下步骤 (cll)判断快取击中是否发生于该小快取容量区块内;以及 (cl2)如果该主机写入的数据小于该储存区临界数而且快取击中发生 于该大快取容量区块内但是并未发生于该小快取容量区块内,写入数据至该 大快取容量区块,否则,如果该主机写入的数据小于该储存区临界数而且快 取击中发生于该大快取容量区块以及该小快取容量区块内,将该小快取容量 区块内的数据汇集至该大快取容量区块内并且接着写入数据至该大快取容 量区块。
优选地,该步骤(C)包括以下步骤 (c21)判断快取击中是否发生于该小快取容量区块内;以及 (c22)如果该主机写入的数据大于或等于该储存区临界数而且快取击 中并未发生于该大快取容量区块内以及该小快取容量区块内,写入数据至该 大快取容量区块,否则,如果该主机写入的数据大于或等于该储存区临界数 而且快取击中发生于该小快取容量区块但是并未发生于该大快取容量区块 内,将该小快取容量区块内的数据汇集至该大快取容量区块内并且接着写入 数据至该大快取容量区块。
优选地,该步骤(C)包括以下步骤 (c31)判断快取击中是否发生于该小快取容量区块内;以及 (c32)如果该主机写入的数据大于或等于该储存区临界数而且快取击 中发生于该大快取容量区块内但是并未发生于该小快取容量区块内,写入数 据至该大快取容量区块,否则,如果该主机写入的数据大于或等于该储存区 临界数而且快取击中发生于该大快取容量区块以及该小快取容量区块内,将该小快取容量区块内的数据汇集至该大快取容量区块内并且接着写入数据 至该大快取容量区块。
本发明还提供一种快取算法,其使用于一数据快取架构,该数据快取架 构包括一分割成至少多个大快取容量区块以及多个小快取容量区块的数据 高速缓存,其中该快取算法包括以下步骤
(a) 判断该主机写入的数据是否大于或等于一储存区(sector)临界数;
(b) 判断快取击中(cache hit)是否发生于该大快取容量区块内;以及
(c) 如果该主机写入的数据小于该储存区临界数而且快取击中并未发 生于该大快取容量区块内,写入数据至该小快取容量区块,否则写入数据至 该大快取容量区块。
优选地,该步骤(C)包括以下步骤 (ell)判断快取击中是否发生于该小快取容量区块内;以及 (cl2)如果该主机写入的数据小于该储存区临界数而且快取击中发生 于该大快取容量区块内但是并未发生于该小快取容量区块内,写入数据至该 大快取容量区块,否则,如果该主机写入的数据小于该储存区临界数而且快 取击中发生于该大快取容量区块以及该小快取容量区块内,将该小快取容量 区块内的数据汇集至该大快取容量区块内并且接着写入数据至该大快取容 量区块。
优选地,该步骤(C)包括以下步骤 (c21)判断快取击中是否发生于该小快取容量区块内;以及 (c22)如果该主机写入的数据大于或等于该储存区临界数而且快取击 中并未发生于该大快取容量区块内以及该小快取容量区块内,写入数据至该 大快取容量区块,否则,如果该主机写入的数据大于或等于该储存区临界数 而且快取击中发生于该小快取容量区块但是并未发生于该大快取容量区块 内,将该小快取容量区块内的数据汇集至该大快取容量区块内并且接着写入 数据至该大快取容量区块。
优选地,该步骤(C)包括以下步骤 (c31)判断快取击中是否发生于该小快取容量区块内;以及 (c32)如果该主机写入的数据大于或等于该储存区临界数而且快取击 中发生于该大快取容量区块内但是并未发生于该小快取容量区块内,写入数
8据至该大快取容量区块,否则,如果该主机写入的数据大于或等于该储存区 临界数而且快取击中发生于该大快取容量区块以及该小快取容量区块内,将 该小快取容量区块内的数据汇集至该大快取容量区块内并且接着写入数据 至该大快取容量区块。


图1为根据本发明的一数据快取架构的示意图; 图2为主机写入行为的一实例;
图3为一分割为平均快取容量区块的公知高速缓存;
图4为根据本发明一具体实施例的高速缓存,其被分割为两种快取容量 区块;
图5为根据本发明另一具体实施例的高速缓存,其被分割为多种快取容 量区块;以及
图6为根据本发明的数据快取架构所使用的快取算法的流程图。
其中,附图标记说明如下
IO数据快取架构
ll缓冲存储器 12存储器控制器 13数据高速缓存 14快取算法 20主机 30闪存
具体实施例方式
为对本发明的特征、目的及功能有更进一步的认知与了解,下文特将本 发明的装置的相关细部结构以及设计的理念进行说明,以了解本发明的特 点,详细说明陈述如下
请参阅图1,其为根据本发明的一数据快取架构的示意图。在图1中, 数据快取架构10设置于主机20与闪存30之间。数据快取架构10包括一缓 冲存储器11、一存储器控制器12以及一数据高速缓存13。缓冲存储器11接
9收来自主机20的数据。存储器控制器12调配缓冲存储器11内的数据。数
据高速缓存13是由存储器控制器12根据一快取算法14所控制。在一具体 实施例中,缓冲存储器11为一静态随机存取存储器(static random access memory, SRAM)。存储器控制器12包括一微处理器。数据高速缓存13为 -一同步动态随机存取存储器(synchronous dynamic random access memory, SDRAM)。
详而言之,就主机数据转换而言,其基本的数据单位为一储存区(sector), 其容量为512字节(B)。举例来说,主机可以写入128个连续储存区(即 64KB)的数据至闪存,也可以写入8个连续储存区(即4KB)的数据至闪 存。为了减少烧写/擦除次数,可以将写入的数据"快取"至数据高速缓 存中,并且仅在数据快取区块塞满之后才写入至闪存内。举例来说,如果快 闪区块容量为256KB,则数据快取单位即为256KB。如果总快取容量为 16MB,则总共有64 (16MB/256KB)个快取项目。如果主机依序写入256KB 的数据至快取(使得一个快取区块塞满),那么,可以一次将此256KB的 数据写入至闪存,如此并不需要一次的擦除次数。
然而,主机可以将不同容量的数据储存区的数据写入至不同的快取区 块。图2为主机写入行为的一实例。在图2中,主机写入128个储存区的数 据,其可占用一个快取区块塞满。如果主机只有写入8个储存区的数据,这 8个储存区的数据也会占用另一个快取区块。换言之,如果数据高速缓存被 分割成相同容量的快取区块(例如,1MB),则快取项目的数量最多只有16 (16MB/1MB)个,而且这些快取区块很快地就会被占用光,如此会导致非 常低的击中率。图3为一分割为平均快取容量区块的已知高速缓存。
增加快取项目的数量(例如,从16个快取项目增加到32个快取项目) 的一种方法为增加总快取容量(例如,从16MB增加到32MB)。然而,如 此会增加高速缓存的成本。
为了解决此问题,本发明提供一种数据高速缓存,其具有不同快取容量 的分割区块,以在相同高速缓存容量的情形下增加快取项目。举例来说,数 据高速缓存可以分割成不同快取容量的区块,如此使得大数据储存区的数据 可以写入大区块(例如,每区块容量为1MB )而小数据储存区的数据可以 写入小区块(例如,每区块容量为8KB)。请参阅图4,其为根据本发明一
10具体实施例的高速缓存,其被分割为两种快取容量区块。在图4中,如果数
据高速缓存的总快取容量为16MB,该数据高速缓存可被分割成15个具有 1MB的区块容量的大区块以及128个具有8KB的区块容量的小区块。因 此,总共可容纳143 (15 + 128)个快取项目,以提高击中率。
优选地,数据高速缓存可被分割成至少多个大快取容量区块、多个中快 取容量区块以及多个小快取容量区块,如图5所示。在图5中,如果数据高 速缓存的总快取容量为16MB,该数据高速缓存可被分割成13个具有1MB 的区块容量的大区块、32个具有64KB的区块容量的中区块以及128个具有 8KB的区块容量的小区块。因此,总共可容纳173 (13 + 32 + 128)个快取 项目,以提高击中率。
在本发明中,基于与非门型闪存以及主机的特性,还提供一种快取算法, 其完全不同于公知使用于中央处理器系统的快取算法。在本发明中,揭示一 种多重快取区块容量分割算法,以判断主机该写入数据至哪一区块(大区 块或小区块)。
图6为根据本发明的数据快取架构所使用的快取算法的流程图。该快取 算法包括以下步骤
在步骤61中,判断该主机写入的数据是否大于或等于一储存区(sector)
临界数。
在步骤62中,判断快取击中(cache hit)是否发生于该大快取容量区块内。
如果该主机写入的数据小于该储存区临界数而且快取击中并未发生于 该大快取容量区块内,主机写入数据至该小快取容量区块,如步骤63;否则, 主机写入数据至该大快取容量区块,如步骤66。
在歩骤64中,判断快取击中是否发生于该小快取容量区块内。 如果该主机写入的数据小于该储存区临界数而且快取击中发生于该大 快取容量区块内但是并未发生于该小快取容量区块内,写入数据至该大快取 容量区块,如歩骤66;否则,如果该主机写入的数据小于该储存区临界数而 且快取击中发生于该大快取容量区块以及该小快取容量区块内,将该小快取 容量区块内的数据汇集至该大快取容量区块内,如歩骤65,并且接着写入数 据至该大快取容量区块,如步骤66。
ii如果该主机写入的数据大于或等于该储存区临界数而且快取击中并未 发生于该大快取容量区块内以及该小快取容量区块内,主机写入数据至该大 快取容量区块,如步骤66;否则,如果该主机写入的数据大于或等于该储存 区临界数而且快取击中发生于该小快取容量区块但是并未发生于该大快取 容量区块内,将该小快取容量区块内的数据汇集至该大快取容量区块内,如
步骤65,并且接着写入数据至该大快取容量区块,如步骤66。
如果该主机写入的数据大于或等于该储存区临界数而且快取击中发生 于该大快取容量区块内但是并未发生于该小快取容量区块内,主机写入数据
至该大快取容量区块,如步骤66;否则,如果该主机写入的数据大于或等于
该储存区临界数而且快取击中发生于该大快取容量区块以及该小快取容量 区块内,将该小快取容量区块内的数据汇集至该大快取容量区块内,如步骤
65,并且接着写入数据至该大快取容量区块,如步骤66。
优选地,该快取算法是以一应用软件或一硬件完成。
通过使用多重快取区块容量分割以及相关的快取算法来管理主机数据 写入,使用者可以轻易地在不增加总快取容量的情形下改善快取击中率,并 且同时改善闪存的写入性能(因为同步动态随机存取存储器的写入速度高于 快闪存储器的写入速度)以及其寿命。
综上所述,当知本发明提供一种适用于与非门型快闪装置的数据快取架 构与其使用的快取算法,以减少与非门型快闪装置的烧写/擦除次数。故本 发明具有新颖性、进步性,及可供产业利用的功效
以上所述,仅为本发明的优选实施例而已,并非用来限定本发明的范围, 即凡依本发明权利要求所述的形状、构造、特征、精神及方法所为的均等变 化与修饰,均应包括于本发明的权利要求书所涵盖的范围内。
1权利要求
1. 一种数据快取架构,设置于一主机与一闪存之间,该数据快取架构包括一缓冲存储器,其从该主机接收数据;一存储器控制器,其调配该缓冲存储器内的数据;以及一数据高速缓存,其由该存储器控制器根据一快取算法所控制。
2. 如权利要求1所述的数据快取架构,其中该缓冲存储器为一静态随机 存取存储器。
3. 如权利要求1所述的数据快取架构,其中该存储器控制器包括一微处理器。
4. 如权利要求1所述的数据快取架构,其中该数据高速缓存为一同步动 态随机存取存储器。
5. 如权利要求1所述的数据快取架构,其中该数据高速缓存被分割成至 少多个大快取容量区块以及多个小快取容量区块。
6. 如权利要求1所述的数据快取架构,其中该数据高速缓存被分割成至 少多个大快取容量区块、多个中快取容量区块以及多个小快取容量区块。
7. 如权利要求1所述的数据快取架构,其中该快取算法是以一应用软件 或一硬件完成。
8. 如权利要求5所述的数据快取架构,其中该快取算法包括以下步骤(a) 判断该主机写入的数据是否大于或等于一储存区临界数;(b) 判断快取击中是否发生于该大快取容量区块内;以及(c) 如果该主机写入的数据小于该储存区临界数而且快取击中并未发 生于该大快取容量区块内,写入数据至该小快取容量区块,否则写入数据至 该大快取容量区块。
9. 如权利要求8所述的数据快取架构,其中该快取算法的步骤(c)包 括以下步骤(cll)判断快取击中是否发生于该小快取容量区块内;以及 (cl2)如果该主机写入的数据小于该储存区临界数而且快取击中发生 于该大快取容量区块内但是并未发生于该小快取容量区块内,写入数据至该 大快取容量区块,否则,如果该主机写入的数据小于该储存区临界数而且快取击中发生于该大快取容量区块以及该小快取容量区块内,将该小快取容量 区块内的数据汇集至该大快取容量区块内并且接着写入数据至该大快取容 量区块。
10. 如权利要求8所述的数据快取架构,其中该快取算法的步骤(C)包 括以下步骤(C21)判断快取击中是否发生于该小快取容量区块内;以及(c22)如果该主机写入的数据大于或等于该储存区临界数而且快取击中并未发生于该大快取容量区块内以及该小快取容量区块内,写入数据至该 大快取容量区块,否则,如果该主机写入的数据大于或等于该储存区临界数 而且快取击中发生于该小快取容量区块但是并未发生于该大快取容量区块 内,将该小快取容量区块内的数据汇集至该大快取容量区块内并且接着写入 数据至该大快取容量区块。
11. 如权利要求8所述的数据快取架构,其中该快取算法的步骤(c)包 括以下步骤(c31)判断快取击中是否发生于该小快取容量区块内;以及 (c32)如果该主机写入的数据大于或等于该储存区临界数而且快取击 中发生于该大快取容量区块内但是并未发生于该小快取容量区块内,写入数 据至该大快取容量区块,否则,如果该主机写入的数据大于或等于该储存区 临界数而且快取击中发生于该大快取容量区块以及该小快取容量区块内,将 该小快取容量区块内的数据汇集至该大快取容量区块内并且接着写入数据 至该大快取容量区块。
12. —种快取算法,其使用于一数据快取架构,该数据快取架构包括一 分割成至少多个大快取容量区块以及多个小快取容量区块的数据高速缓存, 其中该快取算法包括以下步骤(a) 判断该主机写入的数据是否大于或等于一储存区临界数;(b) 判断快取击中是否发生于该大快取容量区块内;以及(c) 如果该主机写入的数据小于该储存区临界数而且快取击中并未发 生于该大快取容量区块内,写入数据至该小快取容量区块,否则写入数据至 该大快取容量区块。
13. 如权利要求12所述的快取算法,其中该步骤(c)包括以下步骤(Cll)判断快取击中是否发生于该小快取容量区块内;以及 (Cl2)如果该主机写入的数据小于该储存区临界数而且快取击中发生 于该大快取容量区块内但是并未发生于该小快取容量区块内,写入数据至该 大快取容量区块,否则,如果该主机写入的数据小于该储存区临界数而且快 取击中发生于该大快取容量区块以及该小快取容量区块内,将该小快取容量 区块内的数据汇集至该大快取容量区块内并且接着写入数据至该大快取容 贵区块。
14. 如权利要求12所述的快取算法,其中该步骤(c)包括以下步骤 (c21)判断快取击中是否发生于该小快取容量区块内;以及(c22)如果该主机写入的数据大于或等于该储存区临界数而且快取击 中并未发生于该大快取容量区块内以及该小快取容量区块内,写入数据至该 大快取容量区块,否则,如果该主机写入的数据大于或等于该储存区临界数 而且快取击中发生于该小快取容量区块但是并未发生于该大快取容量区块 内,将该小快取容量区块内的数据汇集至该大快取容量区块内并且接着写入 数据至该大快取容量区块。
15. 如权利要求12所述的快取算法,其中该步骤(c)包括以下步骤 (c31)判断快取击中是否发生于该小快取容量区块内;以及(c32)如果该主机写入的数据大于或等于该储存区临界数而且快取击 中发生于该大快取容量区块内但是并未发生于该小快取容量区块内,写入数 据至该大快取容量区块,否则,如果该主机写入的数据大于或等于该储存区 临界数而且快取击中发生于该大快取容量区块以及该小快取容量区块内,将 该小快取容量区块内的数据汇集至该大快取容量区块内并且接着写入数据 至该大快取容量区块。
全文摘要
本发明提供一种数据快取架构与其使用的快取算法,该数据快取架构包括一缓冲存储器,其从该主机接收数据;一存储器控制器,其调配该缓冲存储器内的数据;以及一数据高速缓存,是由该存储器控制器根据一快取算法所控制。本发明的数据快取架构与其使用的快取算法可以被用来减少与非门型快闪装置的烧写/擦除次数。
文档编号G06F12/08GK101458664SQ20071019956
公开日2009年6月17日 申请日期2007年12月13日 优先权日2007年12月13日
发明者林俊宏, 林燕钦, 王信忠 申请人:鑫创科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1