硬盘资料读写快取装置及方法

文档序号:6574206阅读:248来源:国知局
专利名称:硬盘资料读写快取装置及方法
技术领域
本发明涉及一种硬盘资料读写快取装置及方法,尤其涉及一种用于硬盘 资料读写以及利用至少一闪存作为硬盘资料读写快取暂存的装置及方法。
技术背景硬盘广泛使用于计算机主机或消费性电子产品中,例如现有的桌上计算机、笔记型计算机、工业计算机及可录放的DVD播放器等电子产品中,作为主要的大量资料读写与储存设备,现有硬盘高耗电的缺点,采用闪存当作 硬盘快取来减少对硬盘资料的存取及动作次数,达到省电目的的想法与技术研究也相当热门,如美国人B. Marsh、 F. Douglis以及P. Krishnan等人于 公元1994年在(Proceedings of the 27thAnnual Hawaii International Conference on System Sciences)文献中揭示(Plash Memory File Caching for Mobile Computers)技术及美微软公司(Microsoft Corporation)于公元 2005年发表(Hybrid Hard Drives with Non-Volatile Flash and Longhorn) 技术,以及一些现有的快取管理机制,如美商Morgan Kaufmann Publisher 公司于公元1996年由JohnL. Hennessy和David A. Patterson等人在(Computer Architecture: A Quantitative Approach) —书中所介绍, 直接映像(directmapped)或集结组合(Set Associative)的快取方法,由于 上述的现有技术均未考虑闪存的特性,因此在效能上会大受影响,仅能流于 学术及理想的探讨领域,并不适合直接拿来实际应用于硬盘资料读写快取暂 存、控制的产业利用。由于考虑闪存是作为硬盘资料读写的快取(Cachej),闪存所对应的逻辑 地址空间(Logical Address Space)远大于实体地址空间(Physical Address Space),因此一般现有应用于闪存储存系统的管理机制及技术,如美商Al印h One公司所提出的YAFFS(Yet Another Flash Filing System)技术或美商M —Systems公司于公元1998年所提出的NFTL(Flash—memory Translation Layer for NAND Hash)技术均不适用,且这些现有管理机制技术同时也缺乏 在快取机制中所需要的资料置换(Data R印lacement)机制,故无法直接转用至以闪存作为硬盘资料读写快取的管理机制。如上所述在公元1994年,虽然美国人Marsh等人就有了利用闪存作为硬盘快取,以达到省电目的的概念及想法,但是当时他们所采用的原始实验模 型是小型资料储存量40MB(兆字节)的硬盘搭配上20MB的或非门(NOR GATE) 型的闪存等旧型组件,并不适用于目前动辄数十或数百GB大储存容的硬盘及 大储存容量与非门(NAND)型的闪存组件中,并且在美国人Marsh等人所提出 的(Flash Memory File Caching for Mobile Computers)技术中,并未谈 及如何有效率地来辨识并找出在闪存中相对于硬盘资料读写快取中的资料, 这样的现有技术在闪存很小时或许不成问题,但是以现有的闪存容量动辄以 GB为单位,如何有效率的辨识并找出资料就非常的重要,美国人Marsh等人 所提出的现有技术并无法被广泛及有效率采用,更别谈到能够实际应用在产 业上。 ,自公元2003年开始,美商微软公司与韩商三星公司开始合作开发以闪存 做为硬盘快取原型的技术,即以闪存与硬盘组成混合型硬盘(Hybrid Hard Drive)。但是,该混合型硬盘原型的闪存只作为写入与开机的暂存资料,对 于资料读取要求并不作快取处理,它是把写入及读取资料的快取作切割处理, 混合型硬盘只管资料写入部份的快取,但资料读取要求的快取却是交由美商 微软公司的新一代操作系统软件来处理,即必需搭配硬盘所在的计算机主机 中安装美商新一代的操作系统软件一并执行,因此,对于不同于美商微软公 司操作系统软件的计算机主机或消费性电子产品,如UNIX操作系统或LINUX 操作系统的计算机主机或其它操作系统的工业计算机及可录放DVD播放器等 装置,则有无法利用的缺点,且此种切割资料读、写快取的习知技术,对资 料读、写快取的管理效率及速度也会有不利影响,无法彻底避免硬盘经常被 存取的问题。 发明内容本发明的主要目的在于克服现有产品存在的上述缺点,而提供一种硬盘资 料读写快取装置及方法,使该硬盘与闪存直接具备资料读写快取功能,可在 产业中实际应用。本发明的第二目的在于提供一种硬盘资料读写快取装置,可以直接应用 于大储存容量的硬盘及大储存容量的与非门型的闪存中,作为资料读写暂存 及控制机制。本发明的第三目的在于提供一种硬盘资料读写快取方法,使硬盘及闪存 的资料读写快取控制动作一致,便于产业利用。本发明的第四目的在于提供一种硬盘资料读写快取方法,具备闪存内的 硬盘读写快取资料的快取空间回收清除及快速置换功能,使闪存的资料读写 快取效率提升。本发明的第五目的在于提供一种硬盘资料读写快取方法,特别是可使闪 存不受所应用的计算机主机或消费电子产品的不正常关机或电源中断影响, 直接具备硬盘读写快取数据重构的功能。本发明的第六目的在于提供一种硬盘资料读写快取方法,可以不受所应 用的计算机主机或消费电子产品的操作系统及环境的限制,进行产业利用。本发明的目的是由以下技术方案实现的。 本发明硬盘资料读写快取装置,其特征在于,包括 一硬盘,连接至一主 机装置; 一快取控制单元,连接硬盘,通过该快取控制单元控制硬盘资料读 写快取与暂存;至少一闪存,连接至快取控制单元,供硬盘读写资料快取暂 存之用,该闪存由快取控制单元控制,经由快取控制单元将硬盘读写快取资 料暂存,供硬盘于下一次资料读写时的快取资料输出。前述的硬盘资料读写快取装置,其特征在于,所述硬盘所连接的主机装 置为计算机主机。本发明硬盘资料读写快取方法,其特征在于,包括一管理表,该管理表 包括适合储存格、数个快取缓冲器、数个主要区块及溢位区块;该步骤还包 括(A) 建立及定义一管理表,即建立一资料读写快取管理表,根据该资料读 写快取管理表内容及运算结果,决定一硬盘的读写快取资料于至少一闪存内 进行快取暂存的逻辑区块地址与实体区块地址的对应关系,决定读写快取资 料于闪存内的快取暂存实体存储区块地址;(B) 判断是否需重建管理表 如果是即进行步骤(C),如果不是则进行步骤(D):(C) 进行管理表重建,即将闪存物理内存区块的页面索引计算出对应逻辑 存储区块地址的索引并判断该逻辑存储区块为主要区块或溢位区块而予以重 建管理表;(D) 侦测是否需回收快取空间 如需要则进行步骤(E),如不需要则进行步骤(F);(E) 进行快取空间回收程序,当管理表中的溢位区块写满,而又有新的资 料在主要区块发生碰撞时,进行主要区块及溢位区块快取空间回收的动作;(F) 侦测是否需置换快取暂存资料 如需要则进行步骤(G),不需要则进行 步骤(H);(G) 进行置换快取暂存资料程序,置换管理表中的快取缓冲器主要区块及 溢位区块内的旧有读写快取暂存资料;(H) 侦测快取暂存资料自闪存读出或写入闪存内?如为读出则进行步骤 (1),如为写入则进行步骤(J);(I) 进行快取暂存资料自闪存读出处理,由该管理表中对应硬盘快取资料 读出的逻辑区块地址所对应的储存格的快取缓冲器之主要区块或溢位区块所 暂存的硬盘读写快取资料读出传回一硬盘所连接的主机装置;(J)进行快取暂存资料写入闪存处理,将硬盘写入快取资料写入管理表中 对应硬盘快取资料写入的逻辑区块地址所对应的储存格的快取缓冲器的主要 区块或溢位区块暂存。前述的硬盘资料读写快取方法,其特征在于,所述步骤(C)管理表重建步 骤包括(Cl)从第一个闪存区块开始检査扫瞄,由闪存中的每一个实体存储区块 逐一检査扫瞄;(C2)闪存区块是否存有资料 如果是则进行步骤(C3);如果不是则进行步骤(C7);(C3)是否有空白页面介于资料页面之间 如果有则进行步骤(C4);如果没有则进行步骤(C31);(C31)所有数据页面的索引是否都与所存数据的逻辑区块地址计算出的 索引一致 如果是进行步骤(C32),如果不是进行步骤(C34);(C32)此区块既可为快取暂存的主要区块,也可为溢位区块,将此实体存 储区块依管理表的需求予以设定成主要区块或溢位区块;(C33)视对应到此快取缓冲器的另一区块为何,来决定此区块的定位,由 该快取缓冲器内的区块状态决定该实体存储区块为主要区块或溢位区块并进行步骤(C5);(C34)此区块为快取缓冲器的溢位区块,判断此区块为溢位区块并进行步骤(C5);(C4)此区块为快取暂存的主要区块,,判定该实体存储区块为管理表中的主要区块;(C5)由区块里任一数据页面对应的逻辑区块地址可得知属于哪一个快取 缓冲器,由步骤(C4)或步骤(C33)的主要区块的实体存储页面或步骤(C33)、 步骤(C34)的溢位区块的实体存储页面依所对应的逻辑区块地址找出是属于 储存格的那一个快取缓冲器;(C6)将此信息回存管理表,即将步骤(C5)所得到的快取缓冲器信息存回 管理表中;(C7)是否是闪存一个区块 如果则进行步骤(C8),如果不是则进行步骤(C 71),判断所检查扫瞄的实体存储区块是否为闪存的最后一个实体存储区块;(C71)读取下一个闪存往下读取检査与扫瞄闪存的下一个实体存储区块, 重新执行步骤(C2);(C8)结束。前述的硬盘资料读写快取方法,其特征在于,所述步骤(E)的快取空间回收程序步骤包括(El)备份快取缓冲器指向主要区块与溢位区块的指针,备份该快取缓冲 器所属主要区块及溢位区块的指针;(E2)为快取缓冲器配置新的主要区块,为步骤(El)快取缓冲器配置及规 划新的且空白的主要区块;(E3)硬盘是否处于激活状态 如果是则进 行步骤(E4);如果不是则进行步骤(E31); (E31)旧有的主要区块或溢位区块上是否有暂存而未写回硬盘的资料 如 果是则进行步骤(E4),如果不是则进行步骤(E32),判断该快取缓冲器旧的主 要区块及溢位区块内的读写快取资料是否为未写回硬盘的暂存资料;(E32)将所有暂存而未写回硬盘的资料写到新的主要区块,将快取缓冲器 主要区块及溢位区块内暂存的硬盘读写快闪资料写入步骤(E2)的新主要区 块;(E33)是否发生碰撞?如果是则进行步骤(E34),如果不是则进行步骤 (E5),判断步骤(E32)的新的主要区块是否产生资料碰撞情形;(E34)配置新的溢位区块,将碰撞的资料写到溢位区块,于步骤(E32)的 快取缓冲器配置新的溢位区块,并将步骤(E32)所欲写入新的主要区块的暂存硬盘的读写快闪资料写入新的溢位区块,再进行步骤 (E5);(E4)通过备份的旧有主要区块与溢位区块指针,将暂存而未写入硬盘的资料写回硬盘;(E5)将旧有主要区块与溢位区块上剩余的合法数据反序写回新配置的主 要区块,若发生冲突,则将资料丢弃;(E6)将旧有的主要区块与溢位区块排入队列,伺机抹除。 前述的硬盘资料读写快取方法,其特征在于,所述步骤(G)的置换快取暂 存数据程序,包括一虚拟存取表,该虚拟存取表包括若干位及一置换指针, 其步骤包括(Gl)检视置换指针在虚拟存取表所指的位; (G2)该位的值是否为1 如果是进行步骤(G3),如不是进行步骤(G21); (G21)置换该位对应到的区块所属快取缓冲器,直接置换该虚拟存取表的 位所对应的快取缓冲器; (G3)将该位清除为o:(G4)置换指针是否指到最后一个位 如果是则进行步骤(G5),如果不是则 进行步骤(G41),判断步骤(Gl)的置换指针是否指到虚拟存取表的最后一个 位;(G41)将置换指针指向下一个位,即将步骤(G1)的置换指针指向虚拟存取 表中的下一个位,重新执行步骤(G1);(G5)将置换指针指向虚拟存取表的第一个位,将置换指针重新指向虚拟 存取表的第一个位。前述的硬盘资料读写快取方法,其特征在于,所述虚拟存取表的置换指 针可逐一指向虚拟存取表的各位。前述的硬盘资料读写快取方法,其特征在于,所述步骤(I)的快取暂存资料自闪存读出处理,其步骤包括(11) 资料读取要求;(12) 所要读取的资料是否在闪存快取缓冲器中?如果是进行步骤(13),如 果不是进行步骤(I21);(121) 由硬盘读取所要的资料并传回,自硬盘中将欲读取资料传回主机装置;(122) 将资料置入闪存快取缓冲器中,将步骤(121)中的硬盘读出的快取资料存入快取缓冲器;(123) 闪存的快取缓冲器中是否有暂存而未写入硬盘的资料 如果有则进 行步骤(124),如果没有则进行步骤(14);(124) 将未写入的资料排入队列,伺机写回硬盘,即将步骤(I23)中闪存 的快取缓冲器的读取快取资料排入队列再写回硬盘,并再进行步骤(14);(13) 传回所要的资料,将快取缓冲器内所暂存的读出快取资料读出传回 至主机装置;(14) 结束。前述的硬盘资料读写快取方法,其特征在于,所述步骤(J)的快取暂存资 料写入闪存处理,其步骤包括 (Jl)资料写入要求;(J2)闪存快取缓冲器是否还有空间可以写入资料 如果是进行步骤(J5), 如果不是则进行步骤(J3);(J3)是否能回收闪存缓冲器空间?如果是进行步骤(J31),如果不是进行 步骤(J4);(J31)回收闪存之快取缓冲器空间,回收快取缓冲器之储存空间,并进行步骤(J5);(J4)置换掉闪存中的某一快取缓冲器;(J41)是否需将资料写回硬盘 如果是则进行步骤(J42),如果不是则进行步骤(J5);(J42)将闪存之快取缓冲器中暂存而未写入硬盘的资料排入队列,伺机写 回硬盘;(J5)将资料写入闪存之快取缓冲器。本发明硬盘资料读写快取装置及方法的有益效果,本发明的装置,包括一 硬盘、快取控制单元及至少一闪存,该快取控制单元连接于硬盘及闪存间以 控制及规划该闪存为该硬盘资料快取读写装置,达到最简捷有效率的硬盘读 写资料快取功效。本发明的方法,为定义设置一管理表来管理闪存的每个对应的数据读写 逻辑区块地址,并通过一快取资料读取步骤及快取资料写入步骤来管理闪存 对硬盘间的资料读或写快取动作,利用一快取空间回收、置换快取暂存资料 步骤,回收及清除置换闪存内暂存的硬盘读写快取资料与储存空间,由一重建管理表步骤,提供闪存因电力中断或不正常关机而导致管理表遗失损坏后, 能够重建管理表来确保闪存对硬盘的资料读写快取控制的能力,达到本发明 具备硬盘读写资料快取利于产业利用、快取数据管理、空间回收清除、置换 及重建的功效。


图1为本发明硬盘资料读写快取装置电路方块图。 图2为本发明硬盘资料读写快取方法中的管理表规划结构图。图3为本发明硬盘资料读写快取方法流程图。图4为本发明硬盘资料读写快取方法中的管理表重建流程图。图5为本发明硬盘资料读写快取方法中的快取空间回收程序流程图。图6为本发明硬盘资料读写快取方法中的置换快取暂存资料程序所需的虚拟存取表结构图。图7为本发明硬盘资料读写快取方法中的置换快取暂存资料程序流程图。 图8为本发明硬盘资料读写快取方法中的快取暂存资料自闪存读出处理流程图。图9为本发明硬盘资料读写快取方法中的快取暂存资料写入闪存处理流程图。图中主要标号说明100硬盘资料读写快取装置、IO硬盘、20快取控制 单元、21第一杂凑函式单元、22第二杂凑函式单元、30闪存、200主机装置、 300管理表、310储存格、320快取缓冲器、330主要区块、331实体存储页面、 340溢位区块、341实体存储页面、350虚拟存取表、351位、360置换指针、 LBA逻辑区块地址、400建立及定义一管理表、410判断是否需重建管理表、 415进行管理表重建、420侦测是否需回收快取空间、425进行快取空间回收 程序、430侦测是否需置换快取暂存资料、435进行置换快取暂存资料程序、 440侦测快取暂存资料自闪存读出或写入闪存内、450进行快取暂存资料自闪 存读出处理、460进行快取暂存资料写入闪存处理、500从第一个闪存区块开 始检查、510闪存区块是否存有资料、520是否有空白页面介于资料页面之间、 521所有数据页面的索引是否皆与所存数据的逻辑区块地址计算出的索引一 致、522此区块既可为快取暂存的主要区块,也可为溢位区块、523视对应到 此快取缓冲器的另一区块为何,来决定此区块的定位、524此区块为快取缓冲 器的溢位区块、530此区块为快取暂存的主要区块、540由区块里任一数据页面对应的逻辑区块地址可得知属于哪一个快取缓冲器、550将此信息回存管理 表、560是否是闪存的最后一个区块、561读取下一个闪存区块、570结束、 600备份快取缓冲器指向主要区块与溢位区块的指针、610为快取缓冲器配置 新的主要区块、620硬盘是否处于激活状态、621旧有的主要区块或溢位区块 上的资料是否有暂存而末写回硬盘的资料、622将所有暂存而未写回硬盘的资 料写到新的主要区块、623是否发生碰撞、624配置新的溢位区块,将碰撞的 资料写到溢位区块、630通过备份的旧有主要区块与溢位区块指针,将暂存而 未写入硬盘的资料写回硬盘、640将旧有主要区块与溢位区块上剩余的合法数 据反序写回新配置的主要区块,若发生冲突,则将资料丢弃、650将旧有的主 要区块与溢位区块排入队列,伺机抹除、700检视置换指针在虚拟存取表所指 的位、710该位的值是否为1、 711置换该位对应到的区块所属快取缓冲器、 720将该位清除为0、 730置换指针是否指到最后一个位、731将置换指针指 向下一个位、740将置换指针指向虚拟存取表的第一个位、800资料读取要求、 810所要读取的资料是否在闪存快取缓冲器中、811由硬盘读取所要的资料并 传回、812将资料置入闪存快取缓冲器中、813闪存快取缓冲器中是否有暂存 而未写入硬盘的资料、81,4将未写入的资料排入队列,伺机写回硬盘、820传 回所要的资料、830结束、900资料写入要求、910闪存快取缓冲器是否还有 空间可以写入资料、920是否能回收闪存快取缓冲器空间、921回收闪存快取 缓冲器空间、930置换掉闪存中的某笔快取缓冲器资料、931是否需将资料写 回硬盘、932将闪存之快取缓冲器中暂存而未写入硬盘的资料排入队列,伺机 写回硬盘、940将资料写入闪存快取缓冲器。
具体实施方式
参阅图1所示,本发明硬盘资料读写快取装置IOO包括一硬盘10,该硬盘 10连接至一主机装置200,该主机装置200的型式不限,在本发明中是以计 算机主机为例,其它如笔记型计算机、工业计算机或可录放DVD播放装置, 也属于本发明的技术范畴。一快取控制单元20连接该硬盘10,通过快取控制单元20控制硬盘10资 料读写快取与暂存。至少一闪存30,连接至快取控制单元20,供硬盘10的读写资料快取暂 存之用,该闪存30由快取控制单元20控制,经由快取控制单元20将硬盘10 读写快取资料暂存,供硬盘10于下一次资料读写时的快取资料输出提供。参阅图2所示,为本发明硬盘资料读写快取方法中,管理该闪存30内的 实体存储区块地址(PBA)对应硬盘10读写快取资料所需存取于闪存30的对应 逻辑区块地址(Logical Block Address, LBA)关系所建立及定义的一管理表300;快取控制单元20包括一第一杂凑函式单元 21及一第二杂凑函式单元22,该第一杂凑函式单元21及第二杂凑函式单元 22具备闪存30对应逻辑区块地址LBA关系的运算功能,通过第一杂凑函式单 元21及第二杂凑函式单元22来运算逻辑区块地址LBA与闪存30的实体存储 区块地址的对应关系。该管理表300包括数个储存格310、数个快取缓冲器(Caching Buffer) 320 、数个主要区块(Prmary Block) 330及溢位区块(Overflow Block)340,每个逻辑区块地址LBA经过第一杂凑函式单元21运算之后,会 对应到连接至管理表300的一储存格310,每个逻辑存储区块地址LBA经过第 一杂凑函式单元21运算之后,会对应到连接至管理表300的一主要区块330 所属的实体存储页面331中,每个储存格310连接管理着一群快取缓冲器320, 每个快取缓冲器320负责对应某一段逻辑区块地址LBA,在这段被指定对应的 逻辑区地址LBA范围内的硬盘10的读写快取资料均会被存在此储存格310所 对应的快取缓冲器320中。当硬盘10要将资料写入快取时,会先确认包括该数据逻辑区块地址LBA 所对应的快取缓冲器320是否存在,若快取缓冲器320己存在,则直接将快 取资料写入该快取缓冲器320;否则则配置一个新的快取缓冲器320来存放新 的快取写入资料,因此每个储存格310所管理连接的快取缓冲器320数量会 因实际硬盘10读写快取资料存取情况而有所不同,使该硬盘10之读写快取 资料存取更具弹性。上述每个快取缓冲器连接一主要区块330,每个主要区块330包括数个实 体存储页面331,该硬盘10的读写快取资料根据该主要区块330所对应的逻 辑区块地址LBA,在主要区块330中会有一个固定的实体存储页面331来存放 读写快取资料。由于每个快取缓冲器320所负责对应的某一段逻辑区块地址LBA数据量 大于主要区块330所能容纳的范围,所以储存读写快取资料时,会有碰撞(重 叠)的情况产生,当发生碰撞时,若快取缓冲器32Q还没有配置一个溢位区块 340,则经由快取控制单元20的控制会在该快取缓冲器320底下配置产生一个溢位区块340,每一个溢位区块340同样包括数个实体存储页面341,用于 暂存发生碰撞的读写快取资料,且每次发生碰撞时,碰撞的读写快取资料会 被写入溢位区块340的第一个尚未被写入数据的实体存储页面341中。上述的管理表300在闪存30格式化时规划,即通过软件来规划形成该管 理表300,该主要区块330及溢位区块340配置数量,则由快取控制单元20 视上述读写快取资料储存操作状态予以规划调整与产生或新增。参阅图3所示,为本发明硬盘资料读写快取方法的流程图,该方法包括 步骤400至460;其中(400)建立及定义一管理表,即建立一个资料读写快取管理表300(如图2 所示),根据该资料读写快取管理表300的内容及运算结果,决定硬盘10的 读写快取资料于闪存30内进行快取暂存的逻辑区块地址LBA与实体区块地址 (PBA)的对应关系,即决定读写快取资料于闪存30内的快取暂存实体存储区 块地址。(410)判断是否需重建管理表 如果是即进行步骤415,如果不是则进行步 骤420,即判断是否有因主机装置200不正常关机或电源中断而导致的硬盘 10读写快取资料流失而需重建管理表300的问题。(415)进行管理表重建,即将闪存30的物理内存区块的页面索引计算出对 应逻辑存储区块地址的索引并判断该逻辑存储区块为主要区块330或溢位区 块340(如图2所示),予以重建管理表300,以解决因主机装置200不正常关 机或电源中断而导致的硬盘10读写快取数据管理信息遗失的问题。(420)侦测是否需回收快取空间?如需要则进行步骤425,如不需要则进行 步骤430。(425)进行快取空间回收程序。即当管理表300中的溢位区块340写满, 又有新的资料在主要区块330发生碰撞时,进行主要区块330及溢位区块340 快取空间回收的动作。(430)侦测是否需置换快取暂存资料 如需要则进行步骤435,不需要则进 行步骤440。(435)进行置换快取暂存资料程序。置换管理表300中的快取缓冲器320 的主要区块330及溢位区块340内的旧有读写快取暂存资料。(440)侦测快取暂存资料自闪存读出或写入闪存内?如为读出则进行步骤 450;如为写入则进行步骤460。(450)进行快取暂存资料自闪存读出处理,即由该管理表300中对应硬盘 10快取资料读出的逻辑区块地址LBA所对应的储存格310的快取缓冲器320 的主要区块330或溢位区块340所暂存的硬盘10读写快取资料读出并传回主 机装置200。(460)进行快取暂存资料写入闪存处理,即将硬盘10写入快取资料写入 管理表300中对应硬盘10快取资料写入的逻辑区块地址LBA所对应的储存格 310的快取缓冲器320的主要区块330或溢位区块340暂存。参阅图4所示,为上述图3中的步骤415所示的管理表重建的流程图, 为了有效率的在闪存30的读写快取存取资料,前面所提的管理表300会因主 机装置200的不正常关机或电源中断等故障状态,会有导致资料遗失之虞, 故上述步骤提供了管理表300重建机制来提高本发明的读写快取资料可靠性。 管理表300的重建,其基本概念主要是通过快取缓冲器320中主要区块330 与溢位区块340摆放读写快取资料方式在根本上不同来提供线索及重建索引, 即只需将所有闪存30的实体存储区块重新扫瞄过一遍,即可重建管理表300, 该步骤系包括步骤500至570;其中(500)从第一个闪存区块开始检査扫瞄,即由闪存30中的每一个实体存 储区块逐一检査扫瞄。(510)闪存区块是否存有资料 如果是则进行步骤520;如果不是则进行步 骤560。(520) 是否有空白页面介于资料页面之间 如果有则进行步骤530;如果没 有则进行步骤521。(521) 所有数据页面的索引是否都与所存数据的逻辑区块地址计算出的 索引一致 如果是进行步骤522,如果不是进行步骤524。(522) 此区块既可为快取暂存的主要区块,也可为溢位区块,即将此实体 存储区块依管理表300的需求予以设定成主要区块330或溢位区块340。(523) 视对应到此快取缓冲器的另一区块为何,来决定此区块的定位,即 由该快取缓冲器320内的区块状态来决定该实体存储区块为主要区块330或 溢位区块340,进行步骤540。(524) 此区块为快取缓冲器的溢位区块,判断此区块为溢位区块340,进 行步骤540。(530)此区块为快取暂存的主要区块,即判定该实体存储区块为管理表300中的主要区块330。(540)由区块里任一数据页面对应的逻辑区块地址可得知属于哪一个快 取缓冲器,由步骤530或步骤523的主要区块330的实体存储页面331或步 骤523、步骤524的溢位区块340的实体存储页面341依所对应的逻辑区块地 址LBA找出是属于储存格310的那一个快取缓冲器320。(550)将此信息回存管理表,即将步骤540所得到的快取缓冲器320信息 存回管理表300中。(560) 是否是闪存的最后一个区块 如果是则进行步骤570,如果不是则进 行步骤561,即判断所检査扫瞄的实体存储区块是否为闪存30的最后一个实 体存储区块。(561) 读取下一个闪存区块即往下读取检査与扫瞄闪存30的下一个实体 存储区块,重新执行步骤510。(570)结束。参阅图5所示,为图3所示的步骤425的快取空间回收程序,由于闪存 30有易地更新(Out-Place—Update)的特性,所以存放在主要区块330目标的 实体存储页面331的资料也有可能是同一个逻辑区块地址LBA旧版本的资料, 当发生这种情形时,新版本的资料同样会写到溢位区块340的第一个空白的 实体存储页面341,当溢位区块340写满,而又有新的资料在主要区块330发 生碰撞时,即进行快取空间回收的动作,其步骤包括600至650;其中(600)备份快取缓冲器指向主要区块与溢位区块的指针,即备份该快取缓 冲器320所属的主要区块330及溢位区块340的指针。(610)为快取缓冲器配置新的主要区块,为步骤600的快取缓冲器320配 置及规划新的且空白的主要区块330。(620) 硬盘是否处于激活状态 如果是则进行步骤630;如果不是则进行步 骤621。(621) 旧有的主要区块或溢位区块上的资料是否有暂存而末写回硬盘的 资料 如果是则进行步骤630,如果不是则进行步骤622。即判断该快取缓冲 器320之旧的主要区块330及溢位区块340内的读写快取资料是否为未写回 硬盘10的暂存资料。(622) 将所有暂存而i写回硬盘的资料写到新的主要区块,将快取缓冲器 320的主要区块330及溢位区块340内暂存的硬盘10的读写快闪资料写入步骤610的新的主要区块330。(623) 是否发生碰撞?如果是则进行步骤624,如果不是则进行步骤640, 即判断步骤622的新的主要区块330是否产生资料碰撞情形。(624) 配置新的溢位区块,将碰撞的资料写到溢位区块,于步骤622的快 取缓冲器320配置新的溢位区块340,并将步骤622所欲写入新的主要区块 330的暂存硬盘10的读写快闪资料写入新的溢位区块340,并进行骤640。(630)通过备份的旧有主要区块与溢位区块指针,将暂存而未写入硬盘的 资料写回硬盘。(640)将旧有主要区块与溢位区块上剩余的合法数据反序写回新配置的 主要区块,若发生冲突,则将资料丢弃。(650)将旧有的主要区块与溢位区块排入队列,伺机抹除。参阅图6所示,为图3所示的步骤435的置换快取暂存资料程序所需的 虚拟存取表结构图,由于闪存30快取的空间远小于硬盘10的空间,所以有 可能会没有足够的空间来配置新的快取缓冲器320,此时就需要置换掉旧有的 快取缓冲器320,且关于置换旧有的快取缓冲器320,本发明考虑以下三项原 则第一、被置换的快取缓冲器320不应该局限于某些储存格310所管理的 快取缓冲器320,而应该考虑所有的快取缓冲器;第二、较不常被使用的快取 缓冲器320应该被置换;第三、应该考虑到闪存30易地更新的特性。根据这 些原则,本发明将闪存区块(Flash-Memory Block)视为一个环状有序数组 (Circular Ordered Array),当快取缓冲器320需要配置闪存区块作为其主 要区块330或是溢位区块340时,则依序传回第一个空白的区块。当接到下一个配置要求时,则从上一次配置的区块地址开始往下寻找下 一个空白的区块。根据这样的配置方式,越后面的物理内存区块大致上是可 能是在近期内被存取过的。但是单凭这样的配置方式并 不能提供足够的 信息来决定应该置换那个快取缓冲器320,因此,本发明另外釆用了一个虚拟 存取表350(如图6所示)来做为辅助,该虚拟存取表350包含若干位351及一 置换指针360,该虚拟存取表350的每一个位(bit)351依序对应到闪存30中 的每一个闪存区块,当某个快取缓冲器320被存取,则既已存在的主要区块 330与溢位区块340所对应到的位351都会被设为1。另外该置换指针360 — 开始指向虚拟存取表350的第一个位351,当需要置换快取缓冲器320时,即 检视置换指针360所指到的位351是否为0,如果位351为0表示有一阵子未被存取,且若为0则置换所对应的快取缓冲器,若该位351所对应的闪存区 块并未配置给快取缓冲器320,则继续往下找,若置换指针指到的位351内容 为l,则将其内容清为O,并继续往下找,而当置换指针360指到虚拟存取表 350最末之位351时,则重新指回第一个位351。参阅图7所示,为图3所示的步骤435的置换快取暂存资料程序操作步 骤,包括步骤700至740;其中(700)检视置换指针在虚拟存取表所指的位。(710) 该位的值是否为1 如果是进行步骤720,如不是进行步骤711。(711) 置换该位对应到的区块所属之快取缓冲器,即直接置换该虚拟存取 表350之位351所对应的快取缓冲器320。(720)将该位清除为0。(730) 置换指针是否指到最后一个位 如果是则进行步骤740;如果不是则 进行步骤731。即判断步骤700的置换指针360是否指到虚拟存取表350的最 后一个位351。(731) 将置换指针指向下一个位,即将步骤700的置换指针360指向虚拟 存取表350的下一个位351,重新执行步骤700。(740)将置换指针指向虚拟存取表的第一个位,将置换指针360重新指向 虚拟存取表350的第一个位351。参阅图8所示,为图3中步骤450的快取暂存资料自闪存读出处理的流 程图,包括步骤800至830;其中(800)资料读取要求。(810) 所要读取的资料是否在闪存快取缓冲器中?如果是进行步骤820,如 果不是进行步骤811。(811) 由硬盘读取所要的资料并传回,即自硬盘10中将欲读取资料传回 主机装置200。(812) 将资料置入闪存快取缓冲器中,将步骤811中硬盘10读出的资料 存入对应的快取缓冲器320。(813) 闪存的快取缓冲器中是否有暂存而未写入硬盘的资料 如果有则进 行步骤814,如果没有则进行步骤830。(814) 将未写入的资料排入队列,伺机写回硬盘,即将步骤813中闪存30 的快取缓冲器320的读取快取资料排入队列伺机写回硬盘10,并再进行步骤830。(820)传回所要的资料,即将快取缓冲器320内所暂存的读出快取资料读 出传回至主机装置200。 (830)结束。参阅图9所示,为图3中步骤460的快取暂存资料写入闪存处理的流程 图,包括步骤900至940;其中 (900)资料写入要求。(910)闪存快取缓冲器是否还有空间可以写入资料 如果是进行步骤940, 如果不是则进行步骤920。(920) 是否能回收闪存的快取缓冲器空间 如果是进行步骤921,如果不是 进行步骤930。(921) 回收闪存的快取缓冲器空间,即依上述图5所示的快取空间回收程 序回收快取缓冲器320的储存空间,并进行步骤940。(930) 置换掉闪存中的某笔快取缓冲器资料,即依上述图6所示的置换快 取暂存资料程序进行某一快取缓冲器320资料的置换。(931) 是否需将资料写回硬盘 如果是则进行步骤932,如果不是则进行步 骤940。(932) 将闪存的快取缓冲器中暂存而未写入硬盘的资料排入队列,伺机写 回硬盘。(940)将资料写入闪存的快取缓冲器,即将该写入快取资料写入快取缓冲 器320。在以上图1至图9中所示本发明的硬盘资料读写快取装置及方法,其中 所揭示的相关说明及图式,仅为便于阐明本发明的技术内容及技术手段,所 揭示较佳实施例而已,并非对本发明作任何形式上的限制,凡是依据本发明 的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于 本发明技术方案的范围内。
权利要求
1. 一种硬盘资料读写快取装置,其特征在于,包括一硬盘,连接至一主机装置;一快取控制单元,连接硬盘,通过该快取控制单元控制硬盘资料读写快取与暂存;至少一闪存,连接至快取控制单元,供硬盘读写资料快取暂存之用,该闪存由快取控制单元控制,经由快取控制单元将硬盘读写快取资料暂存,供硬盘于下一次资料读写时的快取资料输出。
2、 根据权利要求1所述的硬盘资料读写快取装置,其特征在于,所述硬 盘所连接的主机装置为计算机主机。
3、 一种硬盘资料读写快取方法,其特征在于,包括一管理表,该管理表 包括适合储存格、数个快取缓冲器、数个主要区块及溢位区块;该步骤还包 括(A) 建立及定义一管理表,即建立一资料读写快取管理表,根据该资料读 写快取管理表内容及运算结果,决定一硬盘的读写快取资料于至少一闪存内 进行快取暂存的逻辑区块地址与实体区块地址的对应关系,决定读写快取资 料于闪存内的快取暂存实体存储区块地址;(B) 判断是否需重建管理表 如果是即进行步骤(C),如果不是则进行步骤 (D): '(C) 进行管理表重建,即将闪存物理内存区块的页面索引计算出对应逻辑 存储区块地址的索引并判断该逻辑存储区块为主要区块或溢位区块而予以重 建管理表;(D) 侦测是否需回收快取空间?如需要则进行步骤(E),如不需要则进行步骤(F);(E) 进行快取空间回收程序,当管理表中的溢位区块写满,而又有新的资料在主要区块发生碰撞时,进行主要区块及溢位区块快取空间回收的动作;(F) 侦测是否需置换快取暂存资料 如需要则进行步骤(G),不需要则进行步骤(H);(G) 进行置换快取暂存资料程序,置换管理表中的快取缓冲器主要区块及 溢位区块内的旧有读写快取暂存资料;(H) 侦测快取暂存资料自闪存读出或写入闪存内?如为读出则进行步骤(1),如为写入则进行步骤(J);(I)进行快取暂存资料自闪存读出处理,由该管理表中对应硬盘快取资料 读出的逻辑区块地址所对应的储存格的快取缓冲器之主要区块或溢位区块所暂存的硬盘读写快取资料读出传回一硬盘所连接的主机装置;(J)进行快取暂存资料写入闪存处理,将硬盘写入快取资料写入管理表中对应硬盘快取资料写入的逻辑区块地址所对应的储存格的快取缓冲器的主要区块或溢位区块暂存。
4、根据权利要求3所述的硬盘资料读写快取方法,其特征在于,所述步骤(C)管理表重建步骤包括-(Cl)从第一个闪存区块开始检査扫瞄,由闪存中的每一个实体存储区块逐一检查扫瞄;(C2)闪存区块是否存有资料 如果是则进行步骤(C3);如果不是则进行步骤(C7);(C3)是否有空白页面介于资料页面之间?如果有则进行步骤(C4);如果没有则进行步骤(C31);(C31)所有数据页面的索引是否都与所存数据的逻辑区块地址计算出的 索引一致 如果是进行步骤(C32),如果不是进行步骤(C34);,(C32)此区块既可为快取暂存的主要区块,也可为溢位区块,将此实体存 储区块依管理表的需求予以设定成主要区块或溢位区块;(C33)视对应到此快取缓冲器的另一区块为何,来决定此区块的定位,由 该快取缓冲器内的区块状态决定该实体存储区块为主要区块或溢位区块并进 行步骤(C5);(C34)此区块为快取缓冲器的溢位区块,判断此区块为溢位区块并进行步骤(C5);(C4)此区块为快取暂存的主要区块,判定该实体存储区块为管理表中的 主要区块;(C5)由区块里任一数据页面对应的逻辑区块地址可得知属于哪一个快取 缓冲器,由步骤(C4)或步骤(C33)的主要区块的实体存储页面或步骤(C33)、 步骤(C34)的溢位区块的实体存储页面依所对应的逻辑区块地址找出是属于储存格的那一个快取缓冲器;(C6)将此信息回存管理表,即将步骤(C5)所得到的快取缓冲器信息存回 管理表中;(C7)是否是闪存一个区块 如果则进行步骤(C8),如果不是则进行步骤(C 71),判断所检査扫瞄的实体存储区块是否为闪存的最后一个实体存储区块;(C71)读取下一个闪存往下读取检査与扫瞄闪存的下一个实体存储区块, 重新执行步骤(C2);(C8)结束。
5、 根据权利要求3所述的硬盘资料读写快取方法,其特征在于,所述步 骤(E)的快取空间回收程序步骤包括(El)备份快取缓冲器指向主要区块与溢位区块的指针,备份该快取缓冲 器所属主要区块及溢位区块的指针;(E2)为快取缓冲器配置新的主要区块,为步骤(E1)快取缓冲器配置及规划新 的且空白的主要区块; (E3)硬盘是否处于激活状态?如果是则进行步骤(E4);如果不是则进行步骤(E31);(E31)旧有的主要区块或溢位区块上是否有暂存而未写回硬盘的资料 如 果是则进行步骤(E4),如果不是则进行步骤(E32),判断该快取缓冲器旧的主 要区块及溢位区块内的读写快取资料是否为未写回硬盘的暂存资料;(E32)将所有暂存而未写回硬盘的资料写到新的主要区块,将快取缓冲器 主要区块及溢位区块内暂存的硬盘读写快闪资料写入步骤(E2)的新主要区 块;(E33)是否发生碰撞?如果是则进行步骤(E34),如果不是则进行步骤 (E5),判断步骤(E32)的新的主要区块是否产生资料碰撞情形;(E34)配置新的溢位区块,将碰撞的资料写到溢位区块,于步骤(E32)的 快取缓冲器配置新的溢位区块,并将步骤(E32)所欲写入新的主要区块的暂存 硬盘的读写快闪资料写入新的溢位区块,再进行步骤 (E5);(E4)通过备份的旧有主要区块与溢位区块指针,将暂存而未写入硬盘的 资料写回硬盘;(E5)将旧有主要区块与溢位区块上剩余的合法数据反序写回新配置的主要区块,若发生冲突,则将资料丢弃;(E6)将旧有的主要区块与溢位区块排入队列,伺机抹除。
6、 根据权利3所述的硬盘资料读写快取方法,其特征在于,所述步骤(G) 的置换快取暂存数据程序,包括一虚拟存取表,该虚拟存取表包括若干位及 一置换指针,其步骤包括-(Gl)检视置换指针在虚拟存取表所指的位; (G2)该位的值是否为1 如果是进行步骤(G3),如不是进行步骤(G21); (G21)置换该位对应到的区块所属快取缓冲器,直接置换该虚拟存取表的 位所对应的快取缓冲器;(G3)将该位清除为o:(G4)置换指针是否指到最后一个位 如果是则进行步骤(G5),如果不是则 进行步骤(G41),判断步骤(Gl)的置换指针是否指到虚拟存取表的最后一个 位;(G41)将置换指针指向下一个位,即将步骤(G1)的置换指针指向虚拟存取 表中的下一个位,重新执行步骤(G1);(G5)将置换指针指向虚拟存取表的第一个位,将置换指针重新指向虚拟 存取表的第一个位。
7、 根据权利要求6所述的硬盘资料读写快取方法,其特征在于,所述虚 拟存取表的置换指针可逐一指向虚拟存取表的各位。
8、 根据权利要求3所述的硬盘资料读写快取方法,其特征在于,所述步骤(I)的快取暂存资料自闪存读出处理,其步骤包括(n)资料读取要求;(12) 所要读取的资料是否在闪存快取缓冲器中?如果是进行步骤(13),如果不是进行步骤(I21);(121) 由硬盘读取所要的资料并传回,自硬盘中将欲读取资料传回主机装置;(122) 将资料置入闪存快取缓冲器中,将步骤(121)中的硬盘读出的快取 资料存入快取缓冲器;(123) 闪存的快取缓冲器中是否有暂存而未写入硬盘的资料 如果有则进 行步骤(124),如果没有则进行步骤(14);(124) 将未写入的资料排入队列,伺机写回硬盘,即将步骤(I23)中闪存 的快取缓冲器的读取快取资料排入队列再写回硬盘,并再进行步骤(14);(13) 传回所要的资料,将快取缓冲器内所暂存的读出快取资料读出传回 至主机装置;(14) 结束。
9、 根据权利要求3所述的硬盘资料读写快取方法,其特征在于,所述步骤(J)的快取暂存资料写入闪存处理,其步骤包括(Jl)资料写入要求;(J2)闪存快取缓冲器是否还有空间可以写入资料 如果是进行步骤(J5), 如果不是则进行步骤(J3);(J3)是否能回收闪存缓冲器空间?如果是进行步骤(J31),如果不是进行 步骤(J4);(J31)回收闪存之快取缓冲器空间,回收快取缓冲器之储存空间,并进行 步骤(J5);(J4)置换掉闪存中的某一快取缓冲器;(J41)是否需将资料写回硬盘 如果是则进行步骤(J42),如果不是则进行步骤(J5);(J42)将闪存之快取缓冲器中暂存而未写入硬盘的资料排入队列,伺机写 回硬盘;(J5)将资料写入闪存之快取缓冲器。
全文摘要
本发明提供一种硬盘资料读写快取装置及方法,该装置包括一硬盘、快取控制单元及至少一闪存,该快取控制单元连接于硬盘及闪存间以控制及规划闪存为硬盘资料快取读写装置,该方法为定义设置一管理表管理闪存的每个对应的数据读写逻辑区块地址,借助一快取数据读取步骤及快取资料写入步骤管理闪存对硬盘间的资料读或写的快取动作,并通过一快取空间回收及置换快取暂存资料步骤,回收清除及置换闪存内暂存的硬盘读写快取资料与储存空间,由重建管理表步骤,防止闪存因电力中断或不正常关机所导致的管理表遗失损坏因素,可以重建管理表提供闪存对硬盘的资料读写快取控制。
文档编号G06F12/08GK101256535SQ20071007956
公开日2008年9月3日 申请日期2007年3月1日 优先权日2007年3月1日
发明者吴柏良, 张原豪, 杨政智, 谢仁伟, 郭大维 申请人:创惟科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1