亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

硬盤資料讀寫快取裝置及方法

文檔序號:6574206閱讀:285來源:國知局
專利名稱:硬盤資料讀寫快取裝置及方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種硬盤資料讀寫快取裝置及方法,尤其涉及一種用于硬盤 資料讀寫以及利用至少一閃存作為硬盤資料讀寫快取暫存的裝置及方法。
技術(shù)背景硬盤廣泛使用于計算機(jī)主機(jī)或消費(fèi)性電子產(chǎn)品中,例如現(xiàn)有的桌上計算機(jī)、筆記型計算機(jī)、工業(yè)計算機(jī)及可錄放的DVD播放器等電子產(chǎn)品中,作為主要的大量資料讀寫與儲存設(shè)備,現(xiàn)有硬盤高耗電的缺點(diǎn),采用閃存當(dāng)作 硬盤快取來減少對硬盤資料的存取及動作次數(shù),達(dá)到省電目的的想法與技術(shù)研究也相當(dāng)熱門,如美國人B. Marsh、 F. Douglis以及P. Krishnan等人于 公元1994年在(Proceedings of the 27thAnnual Hawaii International Conference on System Sciences)文獻(xiàn)中揭示(Plash Memory File Caching for Mobile Computers)技術(shù)及美微軟公司(Microsoft Corporation)于公元 2005年發(fā)表(Hybrid Hard Drives with Non-Volatile Flash and Longhorn) 技術(shù),以及一些現(xiàn)有的快取管理機(jī)制,如美商Morgan Kaufmann Publisher 公司于公元1996年由JohnL. Hennessy和David A. Patterson等人在(Computer Architecture: A Quantitative Approach) —書中所介紹, 直接映像(directmapped)或集結(jié)組合(Set Associative)的快取方法,由于 上述的現(xiàn)有技術(shù)均未考慮閃存的特性,因此在效能上會大受影響,僅能流于 學(xué)術(shù)及理想的探討領(lǐng)域,并不適合直接拿來實際應(yīng)用于硬盤資料讀寫快取暫 存、控制的產(chǎn)業(yè)利用。由于考慮閃存是作為硬盤資料讀寫的快取(Cachej),閃存所對應(yīng)的邏輯 地址空間(Logical Address Space)遠(yuǎn)大于實體地址空間(Physical Address Space),因此一般現(xiàn)有應(yīng)用于閃存儲存系統(tǒng)的管理機(jī)制及技術(shù),如美商Al印h One公司所提出的YAFFS(Yet Another Flash Filing System)技術(shù)或美商M —Systems公司于公元1998年所提出的NFTL(Flash—memory Translation Layer for NAND Hash)技術(shù)均不適用,且這些現(xiàn)有管理機(jī)制技術(shù)同時也缺乏 在快取機(jī)制中所需要的資料置換(Data R印lacement)機(jī)制,故無法直接轉(zhuǎn)用至以閃存作為硬盤資料讀寫快取的管理機(jī)制。如上所述在公元1994年,雖然美國人Marsh等人就有了利用閃存作為硬盤快取,以達(dá)到省電目的的概念及想法,但是當(dāng)時他們所采用的原始實驗?zāi)?型是小型資料儲存量40MB(兆字節(jié))的硬盤搭配上20MB的或非門(NOR GATE) 型的閃存等舊型組件,并不適用于目前動輒數(shù)十或數(shù)百GB大儲存容的硬盤及 大儲存容量與非門(NAND)型的閃存組件中,并且在美國人Marsh等人所提出 的(Flash Memory File Caching for Mobile Computers)技術(shù)中,并未談 及如何有效率地來辨識并找出在閃存中相對于硬盤資料讀寫快取中的資料, 這樣的現(xiàn)有技術(shù)在閃存很小時或許不成問題,但是以現(xiàn)有的閃存容量動輒以 GB為單位,如何有效率的辨識并找出資料就非常的重要,美國人Marsh等人 所提出的現(xiàn)有技術(shù)并無法被廣泛及有效率采用,更別談到能夠?qū)嶋H應(yīng)用在產(chǎn) 業(yè)上。 ,自公元2003年開始,美商微軟公司與韓商三星公司開始合作開發(fā)以閃存 做為硬盤快取原型的技術(shù),即以閃存與硬盤組成混合型硬盤(Hybrid Hard Drive)。但是,該混合型硬盤原型的閃存只作為寫入與開機(jī)的暫存資料,對 于資料讀取要求并不作快取處理,它是把寫入及讀取資料的快取作切割處理, 混合型硬盤只管資料寫入部份的快取,但資料讀取要求的快取卻是交由美商 微軟公司的新一代操作系統(tǒng)軟件來處理,即必需搭配硬盤所在的計算機(jī)主機(jī) 中安裝美商新一代的操作系統(tǒng)軟件一并執(zhí)行,因此,對于不同于美商微軟公 司操作系統(tǒng)軟件的計算機(jī)主機(jī)或消費(fèi)性電子產(chǎn)品,如UNIX操作系統(tǒng)或LINUX 操作系統(tǒng)的計算機(jī)主機(jī)或其它操作系統(tǒng)的工業(yè)計算機(jī)及可錄放DVD播放器等 裝置,則有無法利用的缺點(diǎn),且此種切割資料讀、寫快取的習(xí)知技術(shù),對資 料讀、寫快取的管理效率及速度也會有不利影響,無法徹底避免硬盤經(jīng)常被 存取的問題。 發(fā)明內(nèi)容本發(fā)明的主要目的在于克服現(xiàn)有產(chǎn)品存在的上述缺點(diǎn),而提供一種硬盤資 料讀寫快取裝置及方法,使該硬盤與閃存直接具備資料讀寫快取功能,可在 產(chǎn)業(yè)中實際應(yīng)用。本發(fā)明的第二目的在于提供一種硬盤資料讀寫快取裝置,可以直接應(yīng)用 于大儲存容量的硬盤及大儲存容量的與非門型的閃存中,作為資料讀寫暫存 及控制機(jī)制。本發(fā)明的第三目的在于提供一種硬盤資料讀寫快取方法,使硬盤及閃存 的資料讀寫快取控制動作一致,便于產(chǎn)業(yè)利用。本發(fā)明的第四目的在于提供一種硬盤資料讀寫快取方法,具備閃存內(nèi)的 硬盤讀寫快取資料的快取空間回收清除及快速置換功能,使閃存的資料讀寫 快取效率提升。本發(fā)明的第五目的在于提供一種硬盤資料讀寫快取方法,特別是可使閃 存不受所應(yīng)用的計算機(jī)主機(jī)或消費(fèi)電子產(chǎn)品的不正常關(guān)機(jī)或電源中斷影響, 直接具備硬盤讀寫快取數(shù)據(jù)重構(gòu)的功能。本發(fā)明的第六目的在于提供一種硬盤資料讀寫快取方法,可以不受所應(yīng) 用的計算機(jī)主機(jī)或消費(fèi)電子產(chǎn)品的操作系統(tǒng)及環(huán)境的限制,進(jìn)行產(chǎn)業(yè)利用。本發(fā)明的目的是由以下技術(shù)方案實現(xiàn)的。 本發(fā)明硬盤資料讀寫快取裝置,其特征在于,包括 一硬盤,連接至一主 機(jī)裝置; 一快取控制單元,連接硬盤,通過該快取控制單元控制硬盤資料讀 寫快取與暫存;至少一閃存,連接至快取控制單元,供硬盤讀寫資料快取暫 存之用,該閃存由快取控制單元控制,經(jīng)由快取控制單元將硬盤讀寫快取資 料暫存,供硬盤于下一次資料讀寫時的快取資料輸出。前述的硬盤資料讀寫快取裝置,其特征在于,所述硬盤所連接的主機(jī)裝 置為計算機(jī)主機(jī)。本發(fā)明硬盤資料讀寫快取方法,其特征在于,包括一管理表,該管理表 包括適合儲存格、數(shù)個快取緩沖器、數(shù)個主要區(qū)塊及溢位區(qū)塊;該步驟還包 括(A) 建立及定義一管理表,即建立一資料讀寫快取管理表,根據(jù)該資料讀 寫快取管理表內(nèi)容及運(yùn)算結(jié)果,決定一硬盤的讀寫快取資料于至少一閃存內(nèi) 進(jìn)行快取暫存的邏輯區(qū)塊地址與實體區(qū)塊地址的對應(yīng)關(guān)系,決定讀寫快取資 料于閃存內(nèi)的快取暫存實體存儲區(qū)塊地址;(B) 判斷是否需重建管理表 如果是即進(jìn)行步驟(C),如果不是則進(jìn)行步驟(D):(C) 進(jìn)行管理表重建,即將閃存物理內(nèi)存區(qū)塊的頁面索引計算出對應(yīng)邏輯 存儲區(qū)塊地址的索引并判斷該邏輯存儲區(qū)塊為主要區(qū)塊或溢位區(qū)塊而予以重 建管理表;(D) 偵測是否需回收快取空間 如需要則進(jìn)行步驟(E),如不需要則進(jìn)行步驟(F);(E) 進(jìn)行快取空間回收程序,當(dāng)管理表中的溢位區(qū)塊寫滿,而又有新的資 料在主要區(qū)塊發(fā)生碰撞時,進(jìn)行主要區(qū)塊及溢位區(qū)塊快取空間回收的動作;(F) 偵測是否需置換快取暫存資料 如需要則進(jìn)行步驟(G),不需要則進(jìn)行 步驟(H);(G) 進(jìn)行置換快取暫存資料程序,置換管理表中的快取緩沖器主要區(qū)塊及 溢位區(qū)塊內(nèi)的舊有讀寫快取暫存資料;(H) 偵測快取暫存資料自閃存讀出或?qū)懭腴W存內(nèi)?如為讀出則進(jìn)行步驟 (1),如為寫入則進(jìn)行步驟(J);(I) 進(jìn)行快取暫存資料自閃存讀出處理,由該管理表中對應(yīng)硬盤快取資料 讀出的邏輯區(qū)塊地址所對應(yīng)的儲存格的快取緩沖器之主要區(qū)塊或溢位區(qū)塊所 暫存的硬盤讀寫快取資料讀出傳回一硬盤所連接的主機(jī)裝置;(J)進(jìn)行快取暫存資料寫入閃存處理,將硬盤寫入快取資料寫入管理表中 對應(yīng)硬盤快取資料寫入的邏輯區(qū)塊地址所對應(yīng)的儲存格的快取緩沖器的主要 區(qū)塊或溢位區(qū)塊暫存。前述的硬盤資料讀寫快取方法,其特征在于,所述步驟(C)管理表重建步 驟包括(Cl)從第一個閃存區(qū)塊開始檢査掃瞄,由閃存中的每一個實體存儲區(qū)塊 逐一檢査掃瞄;(C2)閃存區(qū)塊是否存有資料 如果是則進(jìn)行步驟(C3);如果不是則進(jìn)行步驟(C7);(C3)是否有空白頁面介于資料頁面之間 如果有則進(jìn)行步驟(C4);如果沒有則進(jìn)行步驟(C31);(C31)所有數(shù)據(jù)頁面的索引是否都與所存數(shù)據(jù)的邏輯區(qū)塊地址計算出的 索引一致 如果是進(jìn)行步驟(C32),如果不是進(jìn)行步驟(C34);(C32)此區(qū)塊既可為快取暫存的主要區(qū)塊,也可為溢位區(qū)塊,將此實體存 儲區(qū)塊依管理表的需求予以設(shè)定成主要區(qū)塊或溢位區(qū)塊;(C33)視對應(yīng)到此快取緩沖器的另一區(qū)塊為何,來決定此區(qū)塊的定位,由 該快取緩沖器內(nèi)的區(qū)塊狀態(tài)決定該實體存儲區(qū)塊為主要區(qū)塊或溢位區(qū)塊并進(jìn)行步驟(C5);(C34)此區(qū)塊為快取緩沖器的溢位區(qū)塊,判斷此區(qū)塊為溢位區(qū)塊并進(jìn)行步驟(C5);(C4)此區(qū)塊為快取暫存的主要區(qū)塊,,判定該實體存儲區(qū)塊為管理表中的主要區(qū)塊;(C5)由區(qū)塊里任一數(shù)據(jù)頁面對應(yīng)的邏輯區(qū)塊地址可得知屬于哪一個快取 緩沖器,由步驟(C4)或步驟(C33)的主要區(qū)塊的實體存儲頁面或步驟(C33)、 步驟(C34)的溢位區(qū)塊的實體存儲頁面依所對應(yīng)的邏輯區(qū)塊地址找出是屬于 儲存格的那一個快取緩沖器;(C6)將此信息回存管理表,即將步驟(C5)所得到的快取緩沖器信息存回 管理表中;(C7)是否是閃存一個區(qū)塊 如果則進(jìn)行步驟(C8),如果不是則進(jìn)行步驟(C 71),判斷所檢查掃瞄的實體存儲區(qū)塊是否為閃存的最后一個實體存儲區(qū)塊;(C71)讀取下一個閃存往下讀取檢査與掃瞄閃存的下一個實體存儲區(qū)塊, 重新執(zhí)行步驟(C2);(C8)結(jié)束。前述的硬盤資料讀寫快取方法,其特征在于,所述步驟(E)的快取空間回收程序步驟包括(El)備份快取緩沖器指向主要區(qū)塊與溢位區(qū)塊的指針,備份該快取緩沖 器所屬主要區(qū)塊及溢位區(qū)塊的指針;(E2)為快取緩沖器配置新的主要區(qū)塊,為步驟(El)快取緩沖器配置及規(guī) 劃新的且空白的主要區(qū)塊;(E3)硬盤是否處于激活狀態(tài) 如果是則進(jìn) 行步驟(E4);如果不是則進(jìn)行步驟(E31); (E31)舊有的主要區(qū)塊或溢位區(qū)塊上是否有暫存而未寫回硬盤的資料 如 果是則進(jìn)行步驟(E4),如果不是則進(jìn)行步驟(E32),判斷該快取緩沖器舊的主 要區(qū)塊及溢位區(qū)塊內(nèi)的讀寫快取資料是否為未寫回硬盤的暫存資料;(E32)將所有暫存而未寫回硬盤的資料寫到新的主要區(qū)塊,將快取緩沖器 主要區(qū)塊及溢位區(qū)塊內(nèi)暫存的硬盤讀寫快閃資料寫入步驟(E2)的新主要區(qū) 塊;(E33)是否發(fā)生碰撞?如果是則進(jìn)行步驟(E34),如果不是則進(jìn)行步驟 (E5),判斷步驟(E32)的新的主要區(qū)塊是否產(chǎn)生資料碰撞情形;(E34)配置新的溢位區(qū)塊,將碰撞的資料寫到溢位區(qū)塊,于步驟(E32)的 快取緩沖器配置新的溢位區(qū)塊,并將步驟(E32)所欲寫入新的主要區(qū)塊的暫存硬盤的讀寫快閃資料寫入新的溢位區(qū)塊,再進(jìn)行步驟 (E5);(E4)通過備份的舊有主要區(qū)塊與溢位區(qū)塊指針,將暫存而未寫入硬盤的資料寫回硬盤;(E5)將舊有主要區(qū)塊與溢位區(qū)塊上剩余的合法數(shù)據(jù)反序?qū)懟匦屡渲玫闹?要區(qū)塊,若發(fā)生沖突,則將資料丟棄;(E6)將舊有的主要區(qū)塊與溢位區(qū)塊排入隊列,伺機(jī)抹除。 前述的硬盤資料讀寫快取方法,其特征在于,所述步驟(G)的置換快取暫 存數(shù)據(jù)程序,包括一虛擬存取表,該虛擬存取表包括若干位及一置換指針, 其步驟包括(Gl)檢視置換指針在虛擬存取表所指的位; (G2)該位的值是否為1 如果是進(jìn)行步驟(G3),如不是進(jìn)行步驟(G21); (G21)置換該位對應(yīng)到的區(qū)塊所屬快取緩沖器,直接置換該虛擬存取表的 位所對應(yīng)的快取緩沖器; (G3)將該位清除為o:(G4)置換指針是否指到最后一個位 如果是則進(jìn)行步驟(G5),如果不是則 進(jìn)行步驟(G41),判斷步驟(Gl)的置換指針是否指到虛擬存取表的最后一個 位;(G41)將置換指針指向下一個位,即將步驟(G1)的置換指針指向虛擬存取 表中的下一個位,重新執(zhí)行步驟(G1);(G5)將置換指針指向虛擬存取表的第一個位,將置換指針重新指向虛擬 存取表的第一個位。前述的硬盤資料讀寫快取方法,其特征在于,所述虛擬存取表的置換指 針可逐一指向虛擬存取表的各位。前述的硬盤資料讀寫快取方法,其特征在于,所述步驟(I)的快取暫存資料自閃存讀出處理,其步驟包括(11) 資料讀取要求;(12) 所要讀取的資料是否在閃存快取緩沖器中?如果是進(jìn)行步驟(13),如 果不是進(jìn)行步驟(I21);(121) 由硬盤讀取所要的資料并傳回,自硬盤中將欲讀取資料傳回主機(jī)裝置;(122) 將資料置入閃存快取緩沖器中,將步驟(121)中的硬盤讀出的快取資料存入快取緩沖器;(123) 閃存的快取緩沖器中是否有暫存而未寫入硬盤的資料 如果有則進(jìn) 行步驟(124),如果沒有則進(jìn)行步驟(14);(124) 將未寫入的資料排入隊列,伺機(jī)寫回硬盤,即將步驟(I23)中閃存 的快取緩沖器的讀取快取資料排入隊列再寫回硬盤,并再進(jìn)行步驟(14);(13) 傳回所要的資料,將快取緩沖器內(nèi)所暫存的讀出快取資料讀出傳回 至主機(jī)裝置;(14) 結(jié)束。前述的硬盤資料讀寫快取方法,其特征在于,所述步驟(J)的快取暫存資 料寫入閃存處理,其步驟包括 (Jl)資料寫入要求;(J2)閃存快取緩沖器是否還有空間可以寫入資料 如果是進(jìn)行步驟(J5), 如果不是則進(jìn)行步驟(J3);(J3)是否能回收閃存緩沖器空間?如果是進(jìn)行步驟(J31),如果不是進(jìn)行 步驟(J4);(J31)回收閃存之快取緩沖器空間,回收快取緩沖器之儲存空間,并進(jìn)行步驟(J5);(J4)置換掉閃存中的某一快取緩沖器;(J41)是否需將資料寫回硬盤 如果是則進(jìn)行步驟(J42),如果不是則進(jìn)行步驟(J5);(J42)將閃存之快取緩沖器中暫存而未寫入硬盤的資料排入隊列,伺機(jī)寫 回硬盤;(J5)將資料寫入閃存之快取緩沖器。本發(fā)明硬盤資料讀寫快取裝置及方法的有益效果,本發(fā)明的裝置,包括一 硬盤、快取控制單元及至少一閃存,該快取控制單元連接于硬盤及閃存間以 控制及規(guī)劃該閃存為該硬盤資料快取讀寫裝置,達(dá)到最簡捷有效率的硬盤讀 寫資料快取功效。本發(fā)明的方法,為定義設(shè)置一管理表來管理閃存的每個對應(yīng)的數(shù)據(jù)讀寫 邏輯區(qū)塊地址,并通過一快取資料讀取步驟及快取資料寫入步驟來管理閃存 對硬盤間的資料讀或?qū)懣烊幼?,利用一快取空間回收、置換快取暫存資料 步驟,回收及清除置換閃存內(nèi)暫存的硬盤讀寫快取資料與儲存空間,由一重建管理表步驟,提供閃存因電力中斷或不正常關(guān)機(jī)而導(dǎo)致管理表遺失損壞后, 能夠重建管理表來確保閃存對硬盤的資料讀寫快取控制的能力,達(dá)到本發(fā)明 具備硬盤讀寫資料快取利于產(chǎn)業(yè)利用、快取數(shù)據(jù)管理、空間回收清除、置換 及重建的功效。


圖1為本發(fā)明硬盤資料讀寫快取裝置電路方塊圖。 圖2為本發(fā)明硬盤資料讀寫快取方法中的管理表規(guī)劃結(jié)構(gòu)圖。圖3為本發(fā)明硬盤資料讀寫快取方法流程圖。圖4為本發(fā)明硬盤資料讀寫快取方法中的管理表重建流程圖。圖5為本發(fā)明硬盤資料讀寫快取方法中的快取空間回收程序流程圖。圖6為本發(fā)明硬盤資料讀寫快取方法中的置換快取暫存資料程序所需的虛擬存取表結(jié)構(gòu)圖。圖7為本發(fā)明硬盤資料讀寫快取方法中的置換快取暫存資料程序流程圖。 圖8為本發(fā)明硬盤資料讀寫快取方法中的快取暫存資料自閃存讀出處理流程圖。圖9為本發(fā)明硬盤資料讀寫快取方法中的快取暫存資料寫入閃存處理流程圖。圖中主要標(biāo)號說明100硬盤資料讀寫快取裝置、IO硬盤、20快取控制 單元、21第一雜湊函式單元、22第二雜湊函式單元、30閃存、200主機(jī)裝置、 300管理表、310儲存格、320快取緩沖器、330主要區(qū)塊、331實體存儲頁面、 340溢位區(qū)塊、341實體存儲頁面、350虛擬存取表、351位、360置換指針、 LBA邏輯區(qū)塊地址、400建立及定義一管理表、410判斷是否需重建管理表、 415進(jìn)行管理表重建、420偵測是否需回收快取空間、425進(jìn)行快取空間回收 程序、430偵測是否需置換快取暫存資料、435進(jìn)行置換快取暫存資料程序、 440偵測快取暫存資料自閃存讀出或?qū)懭腴W存內(nèi)、450進(jìn)行快取暫存資料自閃 存讀出處理、460進(jìn)行快取暫存資料寫入閃存處理、500從第一個閃存區(qū)塊開 始檢查、510閃存區(qū)塊是否存有資料、520是否有空白頁面介于資料頁面之間、 521所有數(shù)據(jù)頁面的索引是否皆與所存數(shù)據(jù)的邏輯區(qū)塊地址計算出的索引一 致、522此區(qū)塊既可為快取暫存的主要區(qū)塊,也可為溢位區(qū)塊、523視對應(yīng)到 此快取緩沖器的另一區(qū)塊為何,來決定此區(qū)塊的定位、524此區(qū)塊為快取緩沖 器的溢位區(qū)塊、530此區(qū)塊為快取暫存的主要區(qū)塊、540由區(qū)塊里任一數(shù)據(jù)頁面對應(yīng)的邏輯區(qū)塊地址可得知屬于哪一個快取緩沖器、550將此信息回存管理 表、560是否是閃存的最后一個區(qū)塊、561讀取下一個閃存區(qū)塊、570結(jié)束、 600備份快取緩沖器指向主要區(qū)塊與溢位區(qū)塊的指針、610為快取緩沖器配置 新的主要區(qū)塊、620硬盤是否處于激活狀態(tài)、621舊有的主要區(qū)塊或溢位區(qū)塊 上的資料是否有暫存而末寫回硬盤的資料、622將所有暫存而未寫回硬盤的資 料寫到新的主要區(qū)塊、623是否發(fā)生碰撞、624配置新的溢位區(qū)塊,將碰撞的 資料寫到溢位區(qū)塊、630通過備份的舊有主要區(qū)塊與溢位區(qū)塊指針,將暫存而 未寫入硬盤的資料寫回硬盤、640將舊有主要區(qū)塊與溢位區(qū)塊上剩余的合法數(shù) 據(jù)反序?qū)懟匦屡渲玫闹饕獏^(qū)塊,若發(fā)生沖突,則將資料丟棄、650將舊有的主 要區(qū)塊與溢位區(qū)塊排入隊列,伺機(jī)抹除、700檢視置換指針在虛擬存取表所指 的位、710該位的值是否為1、 711置換該位對應(yīng)到的區(qū)塊所屬快取緩沖器、 720將該位清除為0、 730置換指針是否指到最后一個位、731將置換指針指 向下一個位、740將置換指針指向虛擬存取表的第一個位、800資料讀取要求、 810所要讀取的資料是否在閃存快取緩沖器中、811由硬盤讀取所要的資料并 傳回、812將資料置入閃存快取緩沖器中、813閃存快取緩沖器中是否有暫存 而未寫入硬盤的資料、81,4將未寫入的資料排入隊列,伺機(jī)寫回硬盤、820傳 回所要的資料、830結(jié)束、900資料寫入要求、910閃存快取緩沖器是否還有 空間可以寫入資料、920是否能回收閃存快取緩沖器空間、921回收閃存快取 緩沖器空間、930置換掉閃存中的某筆快取緩沖器資料、931是否需將資料寫 回硬盤、932將閃存之快取緩沖器中暫存而未寫入硬盤的資料排入隊列,伺機(jī) 寫回硬盤、940將資料寫入閃存快取緩沖器。
具體實施方式
參閱圖1所示,本發(fā)明硬盤資料讀寫快取裝置IOO包括一硬盤10,該硬盤 10連接至一主機(jī)裝置200,該主機(jī)裝置200的型式不限,在本發(fā)明中是以計 算機(jī)主機(jī)為例,其它如筆記型計算機(jī)、工業(yè)計算機(jī)或可錄放DVD播放裝置, 也屬于本發(fā)明的技術(shù)范疇。一快取控制單元20連接該硬盤10,通過快取控制單元20控制硬盤10資 料讀寫快取與暫存。至少一閃存30,連接至快取控制單元20,供硬盤10的讀寫資料快取暫 存之用,該閃存30由快取控制單元20控制,經(jīng)由快取控制單元20將硬盤10 讀寫快取資料暫存,供硬盤10于下一次資料讀寫時的快取資料輸出提供。參閱圖2所示,為本發(fā)明硬盤資料讀寫快取方法中,管理該閃存30內(nèi)的 實體存儲區(qū)塊地址(PBA)對應(yīng)硬盤10讀寫快取資料所需存取于閃存30的對應(yīng) 邏輯區(qū)塊地址(Logical Block Address, LBA)關(guān)系所建立及定義的一管理表300;快取控制單元20包括一第一雜湊函式單元 21及一第二雜湊函式單元22,該第一雜湊函式單元21及第二雜湊函式單元 22具備閃存30對應(yīng)邏輯區(qū)塊地址LBA關(guān)系的運(yùn)算功能,通過第一雜湊函式單 元21及第二雜湊函式單元22來運(yùn)算邏輯區(qū)塊地址LBA與閃存30的實體存儲 區(qū)塊地址的對應(yīng)關(guān)系。該管理表300包括數(shù)個儲存格310、數(shù)個快取緩沖器(Caching Buffer) 320 、數(shù)個主要區(qū)塊(Prmary Block) 330及溢位區(qū)塊(Overflow Block)340,每個邏輯區(qū)塊地址LBA經(jīng)過第一雜湊函式單元21運(yùn)算之后,會 對應(yīng)到連接至管理表300的一儲存格310,每個邏輯存儲區(qū)塊地址LBA經(jīng)過第 一雜湊函式單元21運(yùn)算之后,會對應(yīng)到連接至管理表300的一主要區(qū)塊330 所屬的實體存儲頁面331中,每個儲存格310連接管理著一群快取緩沖器320, 每個快取緩沖器320負(fù)責(zé)對應(yīng)某一段邏輯區(qū)塊地址LBA,在這段被指定對應(yīng)的 邏輯區(qū)地址LBA范圍內(nèi)的硬盤10的讀寫快取資料均會被存在此儲存格310所 對應(yīng)的快取緩沖器320中。當(dāng)硬盤10要將資料寫入快取時,會先確認(rèn)包括該數(shù)據(jù)邏輯區(qū)塊地址LBA 所對應(yīng)的快取緩沖器320是否存在,若快取緩沖器320己存在,則直接將快 取資料寫入該快取緩沖器320;否則則配置一個新的快取緩沖器320來存放新 的快取寫入資料,因此每個儲存格310所管理連接的快取緩沖器320數(shù)量會 因?qū)嶋H硬盤10讀寫快取資料存取情況而有所不同,使該硬盤10之讀寫快取 資料存取更具彈性。上述每個快取緩沖器連接一主要區(qū)塊330,每個主要區(qū)塊330包括數(shù)個實 體存儲頁面331,該硬盤10的讀寫快取資料根據(jù)該主要區(qū)塊330所對應(yīng)的邏 輯區(qū)塊地址LBA,在主要區(qū)塊330中會有一個固定的實體存儲頁面331來存放 讀寫快取資料。由于每個快取緩沖器320所負(fù)責(zé)對應(yīng)的某一段邏輯區(qū)塊地址LBA數(shù)據(jù)量 大于主要區(qū)塊330所能容納的范圍,所以儲存讀寫快取資料時,會有碰撞(重 疊)的情況產(chǎn)生,當(dāng)發(fā)生碰撞時,若快取緩沖器32Q還沒有配置一個溢位區(qū)塊 340,則經(jīng)由快取控制單元20的控制會在該快取緩沖器320底下配置產(chǎn)生一個溢位區(qū)塊340,每一個溢位區(qū)塊340同樣包括數(shù)個實體存儲頁面341,用于 暫存發(fā)生碰撞的讀寫快取資料,且每次發(fā)生碰撞時,碰撞的讀寫快取資料會 被寫入溢位區(qū)塊340的第一個尚未被寫入數(shù)據(jù)的實體存儲頁面341中。上述的管理表300在閃存30格式化時規(guī)劃,即通過軟件來規(guī)劃形成該管 理表300,該主要區(qū)塊330及溢位區(qū)塊340配置數(shù)量,則由快取控制單元20 視上述讀寫快取資料儲存操作狀態(tài)予以規(guī)劃調(diào)整與產(chǎn)生或新增。參閱圖3所示,為本發(fā)明硬盤資料讀寫快取方法的流程圖,該方法包括 步驟400至460;其中(400)建立及定義一管理表,即建立一個資料讀寫快取管理表300(如圖2 所示),根據(jù)該資料讀寫快取管理表300的內(nèi)容及運(yùn)算結(jié)果,決定硬盤10的 讀寫快取資料于閃存30內(nèi)進(jìn)行快取暫存的邏輯區(qū)塊地址LBA與實體區(qū)塊地址 (PBA)的對應(yīng)關(guān)系,即決定讀寫快取資料于閃存30內(nèi)的快取暫存實體存儲區(qū) 塊地址。(410)判斷是否需重建管理表 如果是即進(jìn)行步驟415,如果不是則進(jìn)行步 驟420,即判斷是否有因主機(jī)裝置200不正常關(guān)機(jī)或電源中斷而導(dǎo)致的硬盤 10讀寫快取資料流失而需重建管理表300的問題。(415)進(jìn)行管理表重建,即將閃存30的物理內(nèi)存區(qū)塊的頁面索引計算出對 應(yīng)邏輯存儲區(qū)塊地址的索引并判斷該邏輯存儲區(qū)塊為主要區(qū)塊330或溢位區(qū) 塊340(如圖2所示),予以重建管理表300,以解決因主機(jī)裝置200不正常關(guān) 機(jī)或電源中斷而導(dǎo)致的硬盤10讀寫快取數(shù)據(jù)管理信息遺失的問題。(420)偵測是否需回收快取空間?如需要則進(jìn)行步驟425,如不需要則進(jìn)行 步驟430。(425)進(jìn)行快取空間回收程序。即當(dāng)管理表300中的溢位區(qū)塊340寫滿, 又有新的資料在主要區(qū)塊330發(fā)生碰撞時,進(jìn)行主要區(qū)塊330及溢位區(qū)塊340 快取空間回收的動作。(430)偵測是否需置換快取暫存資料 如需要則進(jìn)行步驟435,不需要則進(jìn) 行步驟440。(435)進(jìn)行置換快取暫存資料程序。置換管理表300中的快取緩沖器320 的主要區(qū)塊330及溢位區(qū)塊340內(nèi)的舊有讀寫快取暫存資料。(440)偵測快取暫存資料自閃存讀出或?qū)懭腴W存內(nèi)?如為讀出則進(jìn)行步驟 450;如為寫入則進(jìn)行步驟460。(450)進(jìn)行快取暫存資料自閃存讀出處理,即由該管理表300中對應(yīng)硬盤 10快取資料讀出的邏輯區(qū)塊地址LBA所對應(yīng)的儲存格310的快取緩沖器320 的主要區(qū)塊330或溢位區(qū)塊340所暫存的硬盤10讀寫快取資料讀出并傳回主 機(jī)裝置200。(460)進(jìn)行快取暫存資料寫入閃存處理,即將硬盤10寫入快取資料寫入 管理表300中對應(yīng)硬盤10快取資料寫入的邏輯區(qū)塊地址LBA所對應(yīng)的儲存格 310的快取緩沖器320的主要區(qū)塊330或溢位區(qū)塊340暫存。參閱圖4所示,為上述圖3中的步驟415所示的管理表重建的流程圖, 為了有效率的在閃存30的讀寫快取存取資料,前面所提的管理表300會因主 機(jī)裝置200的不正常關(guān)機(jī)或電源中斷等故障狀態(tài),會有導(dǎo)致資料遺失之虞, 故上述步驟提供了管理表300重建機(jī)制來提高本發(fā)明的讀寫快取資料可靠性。 管理表300的重建,其基本概念主要是通過快取緩沖器320中主要區(qū)塊330 與溢位區(qū)塊340擺放讀寫快取資料方式在根本上不同來提供線索及重建索引, 即只需將所有閃存30的實體存儲區(qū)塊重新掃瞄過一遍,即可重建管理表300, 該步驟系包括步驟500至570;其中(500)從第一個閃存區(qū)塊開始檢査掃瞄,即由閃存30中的每一個實體存 儲區(qū)塊逐一檢査掃瞄。(510)閃存區(qū)塊是否存有資料 如果是則進(jìn)行步驟520;如果不是則進(jìn)行步 驟560。(520) 是否有空白頁面介于資料頁面之間 如果有則進(jìn)行步驟530;如果沒 有則進(jìn)行步驟521。(521) 所有數(shù)據(jù)頁面的索引是否都與所存數(shù)據(jù)的邏輯區(qū)塊地址計算出的 索引一致 如果是進(jìn)行步驟522,如果不是進(jìn)行步驟524。(522) 此區(qū)塊既可為快取暫存的主要區(qū)塊,也可為溢位區(qū)塊,即將此實體 存儲區(qū)塊依管理表300的需求予以設(shè)定成主要區(qū)塊330或溢位區(qū)塊340。(523) 視對應(yīng)到此快取緩沖器的另一區(qū)塊為何,來決定此區(qū)塊的定位,即 由該快取緩沖器320內(nèi)的區(qū)塊狀態(tài)來決定該實體存儲區(qū)塊為主要區(qū)塊330或 溢位區(qū)塊340,進(jìn)行步驟540。(524) 此區(qū)塊為快取緩沖器的溢位區(qū)塊,判斷此區(qū)塊為溢位區(qū)塊340,進(jìn) 行步驟540。(530)此區(qū)塊為快取暫存的主要區(qū)塊,即判定該實體存儲區(qū)塊為管理表300中的主要區(qū)塊330。(540)由區(qū)塊里任一數(shù)據(jù)頁面對應(yīng)的邏輯區(qū)塊地址可得知屬于哪一個快 取緩沖器,由步驟530或步驟523的主要區(qū)塊330的實體存儲頁面331或步 驟523、步驟524的溢位區(qū)塊340的實體存儲頁面341依所對應(yīng)的邏輯區(qū)塊地 址LBA找出是屬于儲存格310的那一個快取緩沖器320。(550)將此信息回存管理表,即將步驟540所得到的快取緩沖器320信息 存回管理表300中。(560) 是否是閃存的最后一個區(qū)塊 如果是則進(jìn)行步驟570,如果不是則進(jìn) 行步驟561,即判斷所檢査掃瞄的實體存儲區(qū)塊是否為閃存30的最后一個實 體存儲區(qū)塊。(561) 讀取下一個閃存區(qū)塊即往下讀取檢査與掃瞄閃存30的下一個實體 存儲區(qū)塊,重新執(zhí)行步驟510。(570)結(jié)束。參閱圖5所示,為圖3所示的步驟425的快取空間回收程序,由于閃存 30有易地更新(Out-Place—Update)的特性,所以存放在主要區(qū)塊330目標(biāo)的 實體存儲頁面331的資料也有可能是同一個邏輯區(qū)塊地址LBA舊版本的資料, 當(dāng)發(fā)生這種情形時,新版本的資料同樣會寫到溢位區(qū)塊340的第一個空白的 實體存儲頁面341,當(dāng)溢位區(qū)塊340寫滿,而又有新的資料在主要區(qū)塊330發(fā) 生碰撞時,即進(jìn)行快取空間回收的動作,其步驟包括600至650;其中(600)備份快取緩沖器指向主要區(qū)塊與溢位區(qū)塊的指針,即備份該快取緩 沖器320所屬的主要區(qū)塊330及溢位區(qū)塊340的指針。(610)為快取緩沖器配置新的主要區(qū)塊,為步驟600的快取緩沖器320配 置及規(guī)劃新的且空白的主要區(qū)塊330。(620) 硬盤是否處于激活狀態(tài) 如果是則進(jìn)行步驟630;如果不是則進(jìn)行步 驟621。(621) 舊有的主要區(qū)塊或溢位區(qū)塊上的資料是否有暫存而末寫回硬盤的 資料 如果是則進(jìn)行步驟630,如果不是則進(jìn)行步驟622。即判斷該快取緩沖 器320之舊的主要區(qū)塊330及溢位區(qū)塊340內(nèi)的讀寫快取資料是否為未寫回 硬盤10的暫存資料。(622) 將所有暫存而i寫回硬盤的資料寫到新的主要區(qū)塊,將快取緩沖器 320的主要區(qū)塊330及溢位區(qū)塊340內(nèi)暫存的硬盤10的讀寫快閃資料寫入步驟610的新的主要區(qū)塊330。(623) 是否發(fā)生碰撞?如果是則進(jìn)行步驟624,如果不是則進(jìn)行步驟640, 即判斷步驟622的新的主要區(qū)塊330是否產(chǎn)生資料碰撞情形。(624) 配置新的溢位區(qū)塊,將碰撞的資料寫到溢位區(qū)塊,于步驟622的快 取緩沖器320配置新的溢位區(qū)塊340,并將步驟622所欲寫入新的主要區(qū)塊 330的暫存硬盤10的讀寫快閃資料寫入新的溢位區(qū)塊340,并進(jìn)行驟640。(630)通過備份的舊有主要區(qū)塊與溢位區(qū)塊指針,將暫存而未寫入硬盤的 資料寫回硬盤。(640)將舊有主要區(qū)塊與溢位區(qū)塊上剩余的合法數(shù)據(jù)反序?qū)懟匦屡渲玫?主要區(qū)塊,若發(fā)生沖突,則將資料丟棄。(650)將舊有的主要區(qū)塊與溢位區(qū)塊排入隊列,伺機(jī)抹除。參閱圖6所示,為圖3所示的步驟435的置換快取暫存資料程序所需的 虛擬存取表結(jié)構(gòu)圖,由于閃存30快取的空間遠(yuǎn)小于硬盤10的空間,所以有 可能會沒有足夠的空間來配置新的快取緩沖器320,此時就需要置換掉舊有的 快取緩沖器320,且關(guān)于置換舊有的快取緩沖器320,本發(fā)明考慮以下三項原 則第一、被置換的快取緩沖器320不應(yīng)該局限于某些儲存格310所管理的 快取緩沖器320,而應(yīng)該考慮所有的快取緩沖器;第二、較不常被使用的快取 緩沖器320應(yīng)該被置換;第三、應(yīng)該考慮到閃存30易地更新的特性。根據(jù)這 些原則,本發(fā)明將閃存區(qū)塊(Flash-Memory Block)視為一個環(huán)狀有序數(shù)組 (Circular Ordered Array),當(dāng)快取緩沖器320需要配置閃存區(qū)塊作為其主 要區(qū)塊330或是溢位區(qū)塊340時,則依序傳回第一個空白的區(qū)塊。當(dāng)接到下一個配置要求時,則從上一次配置的區(qū)塊地址開始往下尋找下 一個空白的區(qū)塊。根據(jù)這樣的配置方式,越后面的物理內(nèi)存區(qū)塊大致上是可 能是在近期內(nèi)被存取過的。但是單憑這樣的配置方式并 不能提供足夠的 信息來決定應(yīng)該置換那個快取緩沖器320,因此,本發(fā)明另外釆用了一個虛擬 存取表350(如圖6所示)來做為輔助,該虛擬存取表350包含若干位351及一 置換指針360,該虛擬存取表350的每一個位(bit)351依序?qū)?yīng)到閃存30中 的每一個閃存區(qū)塊,當(dāng)某個快取緩沖器320被存取,則既已存在的主要區(qū)塊 330與溢位區(qū)塊340所對應(yīng)到的位351都會被設(shè)為1。另外該置換指針360 — 開始指向虛擬存取表350的第一個位351,當(dāng)需要置換快取緩沖器320時,即 檢視置換指針360所指到的位351是否為0,如果位351為0表示有一陣子未被存取,且若為0則置換所對應(yīng)的快取緩沖器,若該位351所對應(yīng)的閃存區(qū) 塊并未配置給快取緩沖器320,則繼續(xù)往下找,若置換指針指到的位351內(nèi)容 為l,則將其內(nèi)容清為O,并繼續(xù)往下找,而當(dāng)置換指針360指到虛擬存取表 350最末之位351時,則重新指回第一個位351。參閱圖7所示,為圖3所示的步驟435的置換快取暫存資料程序操作步 驟,包括步驟700至740;其中(700)檢視置換指針在虛擬存取表所指的位。(710) 該位的值是否為1 如果是進(jìn)行步驟720,如不是進(jìn)行步驟711。(711) 置換該位對應(yīng)到的區(qū)塊所屬之快取緩沖器,即直接置換該虛擬存取 表350之位351所對應(yīng)的快取緩沖器320。(720)將該位清除為0。(730) 置換指針是否指到最后一個位 如果是則進(jìn)行步驟740;如果不是則 進(jìn)行步驟731。即判斷步驟700的置換指針360是否指到虛擬存取表350的最 后一個位351。(731) 將置換指針指向下一個位,即將步驟700的置換指針360指向虛擬 存取表350的下一個位351,重新執(zhí)行步驟700。(740)將置換指針指向虛擬存取表的第一個位,將置換指針360重新指向 虛擬存取表350的第一個位351。參閱圖8所示,為圖3中步驟450的快取暫存資料自閃存讀出處理的流 程圖,包括步驟800至830;其中(800)資料讀取要求。(810) 所要讀取的資料是否在閃存快取緩沖器中?如果是進(jìn)行步驟820,如 果不是進(jìn)行步驟811。(811) 由硬盤讀取所要的資料并傳回,即自硬盤10中將欲讀取資料傳回 主機(jī)裝置200。(812) 將資料置入閃存快取緩沖器中,將步驟811中硬盤10讀出的資料 存入對應(yīng)的快取緩沖器320。(813) 閃存的快取緩沖器中是否有暫存而未寫入硬盤的資料 如果有則進(jìn) 行步驟814,如果沒有則進(jìn)行步驟830。(814) 將未寫入的資料排入隊列,伺機(jī)寫回硬盤,即將步驟813中閃存30 的快取緩沖器320的讀取快取資料排入隊列伺機(jī)寫回硬盤10,并再進(jìn)行步驟830。(820)傳回所要的資料,即將快取緩沖器320內(nèi)所暫存的讀出快取資料讀 出傳回至主機(jī)裝置200。 (830)結(jié)束。參閱圖9所示,為圖3中步驟460的快取暫存資料寫入閃存處理的流程 圖,包括步驟900至940;其中 (900)資料寫入要求。(910)閃存快取緩沖器是否還有空間可以寫入資料 如果是進(jìn)行步驟940, 如果不是則進(jìn)行步驟920。(920) 是否能回收閃存的快取緩沖器空間 如果是進(jìn)行步驟921,如果不是 進(jìn)行步驟930。(921) 回收閃存的快取緩沖器空間,即依上述圖5所示的快取空間回收程 序回收快取緩沖器320的儲存空間,并進(jìn)行步驟940。(930) 置換掉閃存中的某筆快取緩沖器資料,即依上述圖6所示的置換快 取暫存資料程序進(jìn)行某一快取緩沖器320資料的置換。(931) 是否需將資料寫回硬盤 如果是則進(jìn)行步驟932,如果不是則進(jìn)行步 驟940。(932) 將閃存的快取緩沖器中暫存而未寫入硬盤的資料排入隊列,伺機(jī)寫 回硬盤。(940)將資料寫入閃存的快取緩沖器,即將該寫入快取資料寫入快取緩沖 器320。在以上圖1至圖9中所示本發(fā)明的硬盤資料讀寫快取裝置及方法,其中 所揭示的相關(guān)說明及圖式,僅為便于闡明本發(fā)明的技術(shù)內(nèi)容及技術(shù)手段,所 揭示較佳實施例而已,并非對本發(fā)明作任何形式上的限制,凡是依據(jù)本發(fā)明 的技術(shù)實質(zhì)對以上實施例所作的任何簡單修改、等同變化與修飾,均仍屬于 本發(fā)明技術(shù)方案的范圍內(nèi)。
權(quán)利要求
1. 一種硬盤資料讀寫快取裝置,其特征在于,包括一硬盤,連接至一主機(jī)裝置;一快取控制單元,連接硬盤,通過該快取控制單元控制硬盤資料讀寫快取與暫存;至少一閃存,連接至快取控制單元,供硬盤讀寫資料快取暫存之用,該閃存由快取控制單元控制,經(jīng)由快取控制單元將硬盤讀寫快取資料暫存,供硬盤于下一次資料讀寫時的快取資料輸出。
2、 根據(jù)權(quán)利要求1所述的硬盤資料讀寫快取裝置,其特征在于,所述硬 盤所連接的主機(jī)裝置為計算機(jī)主機(jī)。
3、 一種硬盤資料讀寫快取方法,其特征在于,包括一管理表,該管理表 包括適合儲存格、數(shù)個快取緩沖器、數(shù)個主要區(qū)塊及溢位區(qū)塊;該步驟還包 括(A) 建立及定義一管理表,即建立一資料讀寫快取管理表,根據(jù)該資料讀 寫快取管理表內(nèi)容及運(yùn)算結(jié)果,決定一硬盤的讀寫快取資料于至少一閃存內(nèi) 進(jìn)行快取暫存的邏輯區(qū)塊地址與實體區(qū)塊地址的對應(yīng)關(guān)系,決定讀寫快取資 料于閃存內(nèi)的快取暫存實體存儲區(qū)塊地址;(B) 判斷是否需重建管理表 如果是即進(jìn)行步驟(C),如果不是則進(jìn)行步驟 (D): '(C) 進(jìn)行管理表重建,即將閃存物理內(nèi)存區(qū)塊的頁面索引計算出對應(yīng)邏輯 存儲區(qū)塊地址的索引并判斷該邏輯存儲區(qū)塊為主要區(qū)塊或溢位區(qū)塊而予以重 建管理表;(D) 偵測是否需回收快取空間?如需要則進(jìn)行步驟(E),如不需要則進(jìn)行步驟(F);(E) 進(jìn)行快取空間回收程序,當(dāng)管理表中的溢位區(qū)塊寫滿,而又有新的資料在主要區(qū)塊發(fā)生碰撞時,進(jìn)行主要區(qū)塊及溢位區(qū)塊快取空間回收的動作;(F) 偵測是否需置換快取暫存資料 如需要則進(jìn)行步驟(G),不需要則進(jìn)行步驟(H);(G) 進(jìn)行置換快取暫存資料程序,置換管理表中的快取緩沖器主要區(qū)塊及 溢位區(qū)塊內(nèi)的舊有讀寫快取暫存資料;(H) 偵測快取暫存資料自閃存讀出或?qū)懭腴W存內(nèi)?如為讀出則進(jìn)行步驟(1),如為寫入則進(jìn)行步驟(J);(I)進(jìn)行快取暫存資料自閃存讀出處理,由該管理表中對應(yīng)硬盤快取資料 讀出的邏輯區(qū)塊地址所對應(yīng)的儲存格的快取緩沖器之主要區(qū)塊或溢位區(qū)塊所暫存的硬盤讀寫快取資料讀出傳回一硬盤所連接的主機(jī)裝置;(J)進(jìn)行快取暫存資料寫入閃存處理,將硬盤寫入快取資料寫入管理表中對應(yīng)硬盤快取資料寫入的邏輯區(qū)塊地址所對應(yīng)的儲存格的快取緩沖器的主要區(qū)塊或溢位區(qū)塊暫存。
4、根據(jù)權(quán)利要求3所述的硬盤資料讀寫快取方法,其特征在于,所述步驟(C)管理表重建步驟包括-(Cl)從第一個閃存區(qū)塊開始檢査掃瞄,由閃存中的每一個實體存儲區(qū)塊逐一檢查掃瞄;(C2)閃存區(qū)塊是否存有資料 如果是則進(jìn)行步驟(C3);如果不是則進(jìn)行步驟(C7);(C3)是否有空白頁面介于資料頁面之間?如果有則進(jìn)行步驟(C4);如果沒有則進(jìn)行步驟(C31);(C31)所有數(shù)據(jù)頁面的索引是否都與所存數(shù)據(jù)的邏輯區(qū)塊地址計算出的 索引一致 如果是進(jìn)行步驟(C32),如果不是進(jìn)行步驟(C34);,(C32)此區(qū)塊既可為快取暫存的主要區(qū)塊,也可為溢位區(qū)塊,將此實體存 儲區(qū)塊依管理表的需求予以設(shè)定成主要區(qū)塊或溢位區(qū)塊;(C33)視對應(yīng)到此快取緩沖器的另一區(qū)塊為何,來決定此區(qū)塊的定位,由 該快取緩沖器內(nèi)的區(qū)塊狀態(tài)決定該實體存儲區(qū)塊為主要區(qū)塊或溢位區(qū)塊并進(jìn) 行步驟(C5);(C34)此區(qū)塊為快取緩沖器的溢位區(qū)塊,判斷此區(qū)塊為溢位區(qū)塊并進(jìn)行步驟(C5);(C4)此區(qū)塊為快取暫存的主要區(qū)塊,判定該實體存儲區(qū)塊為管理表中的 主要區(qū)塊;(C5)由區(qū)塊里任一數(shù)據(jù)頁面對應(yīng)的邏輯區(qū)塊地址可得知屬于哪一個快取 緩沖器,由步驟(C4)或步驟(C33)的主要區(qū)塊的實體存儲頁面或步驟(C33)、 步驟(C34)的溢位區(qū)塊的實體存儲頁面依所對應(yīng)的邏輯區(qū)塊地址找出是屬于儲存格的那一個快取緩沖器;(C6)將此信息回存管理表,即將步驟(C5)所得到的快取緩沖器信息存回 管理表中;(C7)是否是閃存一個區(qū)塊 如果則進(jìn)行步驟(C8),如果不是則進(jìn)行步驟(C 71),判斷所檢査掃瞄的實體存儲區(qū)塊是否為閃存的最后一個實體存儲區(qū)塊;(C71)讀取下一個閃存往下讀取檢査與掃瞄閃存的下一個實體存儲區(qū)塊, 重新執(zhí)行步驟(C2);(C8)結(jié)束。
5、 根據(jù)權(quán)利要求3所述的硬盤資料讀寫快取方法,其特征在于,所述步 驟(E)的快取空間回收程序步驟包括(El)備份快取緩沖器指向主要區(qū)塊與溢位區(qū)塊的指針,備份該快取緩沖 器所屬主要區(qū)塊及溢位區(qū)塊的指針;(E2)為快取緩沖器配置新的主要區(qū)塊,為步驟(E1)快取緩沖器配置及規(guī)劃新 的且空白的主要區(qū)塊; (E3)硬盤是否處于激活狀態(tài)?如果是則進(jìn)行步驟(E4);如果不是則進(jìn)行步驟(E31);(E31)舊有的主要區(qū)塊或溢位區(qū)塊上是否有暫存而未寫回硬盤的資料 如 果是則進(jìn)行步驟(E4),如果不是則進(jìn)行步驟(E32),判斷該快取緩沖器舊的主 要區(qū)塊及溢位區(qū)塊內(nèi)的讀寫快取資料是否為未寫回硬盤的暫存資料;(E32)將所有暫存而未寫回硬盤的資料寫到新的主要區(qū)塊,將快取緩沖器 主要區(qū)塊及溢位區(qū)塊內(nèi)暫存的硬盤讀寫快閃資料寫入步驟(E2)的新主要區(qū) 塊;(E33)是否發(fā)生碰撞?如果是則進(jìn)行步驟(E34),如果不是則進(jìn)行步驟 (E5),判斷步驟(E32)的新的主要區(qū)塊是否產(chǎn)生資料碰撞情形;(E34)配置新的溢位區(qū)塊,將碰撞的資料寫到溢位區(qū)塊,于步驟(E32)的 快取緩沖器配置新的溢位區(qū)塊,并將步驟(E32)所欲寫入新的主要區(qū)塊的暫存 硬盤的讀寫快閃資料寫入新的溢位區(qū)塊,再進(jìn)行步驟 (E5);(E4)通過備份的舊有主要區(qū)塊與溢位區(qū)塊指針,將暫存而未寫入硬盤的 資料寫回硬盤;(E5)將舊有主要區(qū)塊與溢位區(qū)塊上剩余的合法數(shù)據(jù)反序?qū)懟匦屡渲玫闹饕獏^(qū)塊,若發(fā)生沖突,則將資料丟棄;(E6)將舊有的主要區(qū)塊與溢位區(qū)塊排入隊列,伺機(jī)抹除。
6、 根據(jù)權(quán)利3所述的硬盤資料讀寫快取方法,其特征在于,所述步驟(G) 的置換快取暫存數(shù)據(jù)程序,包括一虛擬存取表,該虛擬存取表包括若干位及 一置換指針,其步驟包括-(Gl)檢視置換指針在虛擬存取表所指的位; (G2)該位的值是否為1 如果是進(jìn)行步驟(G3),如不是進(jìn)行步驟(G21); (G21)置換該位對應(yīng)到的區(qū)塊所屬快取緩沖器,直接置換該虛擬存取表的 位所對應(yīng)的快取緩沖器;(G3)將該位清除為o:(G4)置換指針是否指到最后一個位 如果是則進(jìn)行步驟(G5),如果不是則 進(jìn)行步驟(G41),判斷步驟(Gl)的置換指針是否指到虛擬存取表的最后一個 位;(G41)將置換指針指向下一個位,即將步驟(G1)的置換指針指向虛擬存取 表中的下一個位,重新執(zhí)行步驟(G1);(G5)將置換指針指向虛擬存取表的第一個位,將置換指針重新指向虛擬 存取表的第一個位。
7、 根據(jù)權(quán)利要求6所述的硬盤資料讀寫快取方法,其特征在于,所述虛 擬存取表的置換指針可逐一指向虛擬存取表的各位。
8、 根據(jù)權(quán)利要求3所述的硬盤資料讀寫快取方法,其特征在于,所述步驟(I)的快取暫存資料自閃存讀出處理,其步驟包括(n)資料讀取要求;(12) 所要讀取的資料是否在閃存快取緩沖器中?如果是進(jìn)行步驟(13),如果不是進(jìn)行步驟(I21);(121) 由硬盤讀取所要的資料并傳回,自硬盤中將欲讀取資料傳回主機(jī)裝置;(122) 將資料置入閃存快取緩沖器中,將步驟(121)中的硬盤讀出的快取 資料存入快取緩沖器;(123) 閃存的快取緩沖器中是否有暫存而未寫入硬盤的資料 如果有則進(jìn) 行步驟(124),如果沒有則進(jìn)行步驟(14);(124) 將未寫入的資料排入隊列,伺機(jī)寫回硬盤,即將步驟(I23)中閃存 的快取緩沖器的讀取快取資料排入隊列再寫回硬盤,并再進(jìn)行步驟(14);(13) 傳回所要的資料,將快取緩沖器內(nèi)所暫存的讀出快取資料讀出傳回 至主機(jī)裝置;(14) 結(jié)束。
9、 根據(jù)權(quán)利要求3所述的硬盤資料讀寫快取方法,其特征在于,所述步驟(J)的快取暫存資料寫入閃存處理,其步驟包括(Jl)資料寫入要求;(J2)閃存快取緩沖器是否還有空間可以寫入資料 如果是進(jìn)行步驟(J5), 如果不是則進(jìn)行步驟(J3);(J3)是否能回收閃存緩沖器空間?如果是進(jìn)行步驟(J31),如果不是進(jìn)行 步驟(J4);(J31)回收閃存之快取緩沖器空間,回收快取緩沖器之儲存空間,并進(jìn)行 步驟(J5);(J4)置換掉閃存中的某一快取緩沖器;(J41)是否需將資料寫回硬盤 如果是則進(jìn)行步驟(J42),如果不是則進(jìn)行步驟(J5);(J42)將閃存之快取緩沖器中暫存而未寫入硬盤的資料排入隊列,伺機(jī)寫 回硬盤;(J5)將資料寫入閃存之快取緩沖器。
全文摘要
本發(fā)明提供一種硬盤資料讀寫快取裝置及方法,該裝置包括一硬盤、快取控制單元及至少一閃存,該快取控制單元連接于硬盤及閃存間以控制及規(guī)劃閃存為硬盤資料快取讀寫裝置,該方法為定義設(shè)置一管理表管理閃存的每個對應(yīng)的數(shù)據(jù)讀寫邏輯區(qū)塊地址,借助一快取數(shù)據(jù)讀取步驟及快取資料寫入步驟管理閃存對硬盤間的資料讀或?qū)懙目烊幼?,并通過一快取空間回收及置換快取暫存資料步驟,回收清除及置換閃存內(nèi)暫存的硬盤讀寫快取資料與儲存空間,由重建管理表步驟,防止閃存因電力中斷或不正常關(guān)機(jī)所導(dǎo)致的管理表遺失損壞因素,可以重建管理表提供閃存對硬盤的資料讀寫快取控制。
文檔編號G06F12/08GK101256535SQ20071007956
公開日2008年9月3日 申請日期2007年3月1日 優(yōu)先權(quán)日2007年3月1日
發(fā)明者吳柏良, 張原豪, 楊政智, 謝仁偉, 郭大維 申請人:創(chuàng)惟科技股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1