專利名稱:數(shù)據(jù)快取架構(gòu)與其使用的快取算法的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)快取(data cache)架構(gòu)與一種快取算法,尤其涉及 一種適用于與非門(NAND)型快閃裝置的數(shù)據(jù)快取架構(gòu)與其使用的快取算 法,以減少與非門型快閃裝置的燒寫/擦除(program/erase)次數(shù)。
背景技術(shù):
在一與非門型快閃儲存應(yīng)用產(chǎn)品中,燒寫/擦除次數(shù)是決定該快閃儲存 應(yīng)用產(chǎn)品的壽命(即,平均失效時間,meantime between failures, MTBF) 的重要因素。不幸地,快閃儲存應(yīng)用產(chǎn)品的燒寫/擦除次數(shù)的規(guī)格會隨著半 導(dǎo)體工藝技術(shù)的演變(例如,從65納米工藝演變到45納米工藝)而逐漸變少。
公知技術(shù)的快取算法中,快取可分為指令快取(instruction cache)以及 數(shù)據(jù)快取(data cache),其用來改善指令編碼或數(shù)據(jù)的擷取時間。S卩,中 央處理器可以從指令快取以及數(shù)據(jù)快取中直接存取指令編碼或數(shù)據(jù),而不需 要花較長的存取時間從主存儲器(外接存儲器)中擷取。
就快取算法而言,快取容量(cache size)、快取標(biāo)簽存儲器容量(cache tag memory size)與快取擊中率(cache hit rate)為評估快取算法的重要因素。 快取容量越大,快取擊中率也就越高;但同時,較大的快取容量也造成較高 的高速緩存成本,并且需要更復(fù)雜的快取標(biāo)簽存儲器控制硬件。
公知技術(shù)的快取算法中,高速緩存是平均分割的。舉例來說,對于32 位中央處理器,指令快取的單位為32位。如果總快取容量為8 KB (千字節(jié)), 則會有2K (8 KB/32位)個快取項目(cache entry);如果總快取容量為16 KB (千字節(jié)),則會有4K (16 KB/32位)個快取項目,而允許更高的快取 擊中率。
從閃存的觀點,閃存具有一個很重要的特性,即同一快閃區(qū)塊不能被"重 復(fù)寫入"(overwritten)。如果使用者欲重復(fù)寫入數(shù)據(jù),此快閃區(qū)塊必須先被擦除然后才可以被燒寫(寫入),這樣就算一次燒寫/擦除。
對于多層式記憶元(multiple level cell, MLC)閃存來說,其具有另一特 性,即使用者必須在一區(qū)塊內(nèi)依序?qū)懭腠撁鏀?shù)據(jù)(page data)。換言之,使 用者必須在一區(qū)塊內(nèi)依序?qū)懭氲谝豁撁鏀?shù)據(jù)、第二頁面數(shù)據(jù)…,而不可以先 寫入第四頁面數(shù)據(jù)再寫入第二頁面數(shù)據(jù),因為這樣的"逆向?qū)懭?(reverse write)會造成閃存內(nèi)的數(shù)據(jù)發(fā)生錯誤。
發(fā)明內(nèi)容
然而,主機有時候會逆向?qū)懭霐?shù)據(jù)于一區(qū)塊中。為了解決此問題,當(dāng)一 區(qū)塊中的數(shù)據(jù)已經(jīng)塞滿時,使用者必須先將數(shù)據(jù)"快取"至高速緩存內(nèi),再 寫回閃存。通過這種方式,可輕易地解決閃存的"逆向?qū)懭?與"重復(fù)寫入" 的問題,并且減少閃存的燒寫/擦除次數(shù),以進一步改善閃存的壽命。
本發(fā)明的一目的在于提供一種數(shù)據(jù)快取架構(gòu),其使用于一與非門型快閃 裝置中,以減少與非門型快閃裝置的燒寫/擦除次數(shù)。
本發(fā)明的另一目的在于提供一種快取算法,使用兩種不同功函數(shù)的電 極,其使用于一與非門型快閃裝置的數(shù)據(jù)快取架構(gòu)中,以減少與非門型快閃 裝置的燒寫/擦除次數(shù)。
為達上述目的,本發(fā)明提供一種設(shè)置于一主機與一閃存之間的數(shù)據(jù)快取
架構(gòu),該數(shù)據(jù)快取架構(gòu)包括 一緩沖存儲器,其從該主機接收數(shù)據(jù); 一存儲 器控制器,其調(diào)配該緩沖存儲器內(nèi)的數(shù)據(jù);以及一數(shù)據(jù)高速緩存,是由該存 儲器控制器根據(jù)一快取算法所控制。本發(fā)明的數(shù)據(jù)快取架構(gòu)與其使用的快取 算法可以被用來減少與非門型快閃裝置的燒寫/擦除次數(shù)。
優(yōu)選地,該緩沖存儲器為一靜態(tài)隨機存取存儲器(static random access memory, SRAM)。
優(yōu)選地,該存儲器控制器包括一微處理器。
優(yōu)選地,該數(shù)據(jù)高速緩存為一同步動態(tài)隨機存取存儲器(synchronous dynamic random access memory, SDRAM)。
優(yōu)選地,該數(shù)據(jù)高速緩存被分割成至少多個大快取容量區(qū)塊以及多個小 快取容量區(qū)塊。
優(yōu)選地,該數(shù)據(jù)高速緩存被分割成至少多個大快取容量區(qū)塊、多個中快
6取容量區(qū)塊以及多個小快取容量區(qū)塊。
優(yōu)選地,該快取算法是以一應(yīng)用軟件或一硬件完成。 優(yōu)選地,該快取算法包括以下步驟
(a) 判斷該主機寫入的數(shù)據(jù)是否大于或等于一儲存區(qū)(sector)臨界數(shù);
(b) 判斷快取擊中(cache hit)是否發(fā)生于該大快取容量區(qū)塊內(nèi);以及
(c) 如果該主機寫入的數(shù)據(jù)小于該儲存區(qū)臨界數(shù)而且快取擊中并未發(fā) 生于該大快取容量區(qū)塊內(nèi),寫入數(shù)據(jù)至該小快取容量區(qū)塊,否則寫入數(shù)據(jù)至 該大快取容量區(qū)塊。
優(yōu)選地,該步驟(C)包括以下步驟 (cll)判斷快取擊中是否發(fā)生于該小快取容量區(qū)塊內(nèi);以及 (cl2)如果該主機寫入的數(shù)據(jù)小于該儲存區(qū)臨界數(shù)而且快取擊中發(fā)生 于該大快取容量區(qū)塊內(nèi)但是并未發(fā)生于該小快取容量區(qū)塊內(nèi),寫入數(shù)據(jù)至該 大快取容量區(qū)塊,否則,如果該主機寫入的數(shù)據(jù)小于該儲存區(qū)臨界數(shù)而且快 取擊中發(fā)生于該大快取容量區(qū)塊以及該小快取容量區(qū)塊內(nèi),將該小快取容量 區(qū)塊內(nèi)的數(shù)據(jù)匯集至該大快取容量區(qū)塊內(nèi)并且接著寫入數(shù)據(jù)至該大快取容 量區(qū)塊。
優(yōu)選地,該步驟(C)包括以下步驟 (c21)判斷快取擊中是否發(fā)生于該小快取容量區(qū)塊內(nèi);以及 (c22)如果該主機寫入的數(shù)據(jù)大于或等于該儲存區(qū)臨界數(shù)而且快取擊 中并未發(fā)生于該大快取容量區(qū)塊內(nèi)以及該小快取容量區(qū)塊內(nèi),寫入數(shù)據(jù)至該 大快取容量區(qū)塊,否則,如果該主機寫入的數(shù)據(jù)大于或等于該儲存區(qū)臨界數(shù) 而且快取擊中發(fā)生于該小快取容量區(qū)塊但是并未發(fā)生于該大快取容量區(qū)塊 內(nèi),將該小快取容量區(qū)塊內(nèi)的數(shù)據(jù)匯集至該大快取容量區(qū)塊內(nèi)并且接著寫入 數(shù)據(jù)至該大快取容量區(qū)塊。
優(yōu)選地,該步驟(C)包括以下步驟 (c31)判斷快取擊中是否發(fā)生于該小快取容量區(qū)塊內(nèi);以及 (c32)如果該主機寫入的數(shù)據(jù)大于或等于該儲存區(qū)臨界數(shù)而且快取擊 中發(fā)生于該大快取容量區(qū)塊內(nèi)但是并未發(fā)生于該小快取容量區(qū)塊內(nèi),寫入數(shù) 據(jù)至該大快取容量區(qū)塊,否則,如果該主機寫入的數(shù)據(jù)大于或等于該儲存區(qū) 臨界數(shù)而且快取擊中發(fā)生于該大快取容量區(qū)塊以及該小快取容量區(qū)塊內(nèi),將該小快取容量區(qū)塊內(nèi)的數(shù)據(jù)匯集至該大快取容量區(qū)塊內(nèi)并且接著寫入數(shù)據(jù) 至該大快取容量區(qū)塊。
本發(fā)明還提供一種快取算法,其使用于一數(shù)據(jù)快取架構(gòu),該數(shù)據(jù)快取架 構(gòu)包括一分割成至少多個大快取容量區(qū)塊以及多個小快取容量區(qū)塊的數(shù)據(jù) 高速緩存,其中該快取算法包括以下步驟
(a) 判斷該主機寫入的數(shù)據(jù)是否大于或等于一儲存區(qū)(sector)臨界數(shù);
(b) 判斷快取擊中(cache hit)是否發(fā)生于該大快取容量區(qū)塊內(nèi);以及
(c) 如果該主機寫入的數(shù)據(jù)小于該儲存區(qū)臨界數(shù)而且快取擊中并未發(fā) 生于該大快取容量區(qū)塊內(nèi),寫入數(shù)據(jù)至該小快取容量區(qū)塊,否則寫入數(shù)據(jù)至 該大快取容量區(qū)塊。
優(yōu)選地,該步驟(C)包括以下步驟 (ell)判斷快取擊中是否發(fā)生于該小快取容量區(qū)塊內(nèi);以及 (cl2)如果該主機寫入的數(shù)據(jù)小于該儲存區(qū)臨界數(shù)而且快取擊中發(fā)生 于該大快取容量區(qū)塊內(nèi)但是并未發(fā)生于該小快取容量區(qū)塊內(nèi),寫入數(shù)據(jù)至該 大快取容量區(qū)塊,否則,如果該主機寫入的數(shù)據(jù)小于該儲存區(qū)臨界數(shù)而且快 取擊中發(fā)生于該大快取容量區(qū)塊以及該小快取容量區(qū)塊內(nèi),將該小快取容量 區(qū)塊內(nèi)的數(shù)據(jù)匯集至該大快取容量區(qū)塊內(nèi)并且接著寫入數(shù)據(jù)至該大快取容 量區(qū)塊。
優(yōu)選地,該步驟(C)包括以下步驟 (c21)判斷快取擊中是否發(fā)生于該小快取容量區(qū)塊內(nèi);以及 (c22)如果該主機寫入的數(shù)據(jù)大于或等于該儲存區(qū)臨界數(shù)而且快取擊 中并未發(fā)生于該大快取容量區(qū)塊內(nèi)以及該小快取容量區(qū)塊內(nèi),寫入數(shù)據(jù)至該 大快取容量區(qū)塊,否則,如果該主機寫入的數(shù)據(jù)大于或等于該儲存區(qū)臨界數(shù) 而且快取擊中發(fā)生于該小快取容量區(qū)塊但是并未發(fā)生于該大快取容量區(qū)塊 內(nèi),將該小快取容量區(qū)塊內(nèi)的數(shù)據(jù)匯集至該大快取容量區(qū)塊內(nèi)并且接著寫入 數(shù)據(jù)至該大快取容量區(qū)塊。
優(yōu)選地,該步驟(C)包括以下步驟 (c31)判斷快取擊中是否發(fā)生于該小快取容量區(qū)塊內(nèi);以及 (c32)如果該主機寫入的數(shù)據(jù)大于或等于該儲存區(qū)臨界數(shù)而且快取擊 中發(fā)生于該大快取容量區(qū)塊內(nèi)但是并未發(fā)生于該小快取容量區(qū)塊內(nèi),寫入數(shù)
8據(jù)至該大快取容量區(qū)塊,否則,如果該主機寫入的數(shù)據(jù)大于或等于該儲存區(qū) 臨界數(shù)而且快取擊中發(fā)生于該大快取容量區(qū)塊以及該小快取容量區(qū)塊內(nèi),將 該小快取容量區(qū)塊內(nèi)的數(shù)據(jù)匯集至該大快取容量區(qū)塊內(nèi)并且接著寫入數(shù)據(jù) 至該大快取容量區(qū)塊。
圖1為根據(jù)本發(fā)明的一數(shù)據(jù)快取架構(gòu)的示意圖; 圖2為主機寫入行為的一實例;
圖3為一分割為平均快取容量區(qū)塊的公知高速緩存;
圖4為根據(jù)本發(fā)明一具體實施例的高速緩存,其被分割為兩種快取容量 區(qū)塊;
圖5為根據(jù)本發(fā)明另一具體實施例的高速緩存,其被分割為多種快取容 量區(qū)塊;以及
圖6為根據(jù)本發(fā)明的數(shù)據(jù)快取架構(gòu)所使用的快取算法的流程圖。
其中,附圖標(biāo)記說明如下
IO數(shù)據(jù)快取架構(gòu)
ll緩沖存儲器 12存儲器控制器 13數(shù)據(jù)高速緩存 14快取算法 20主機 30閃存
具體實施例方式
為對本發(fā)明的特征、目的及功能有更進一步的認知與了解,下文特將本 發(fā)明的裝置的相關(guān)細部結(jié)構(gòu)以及設(shè)計的理念進行說明,以了解本發(fā)明的特 點,詳細說明陳述如下
請參閱圖1,其為根據(jù)本發(fā)明的一數(shù)據(jù)快取架構(gòu)的示意圖。在圖1中, 數(shù)據(jù)快取架構(gòu)10設(shè)置于主機20與閃存30之間。數(shù)據(jù)快取架構(gòu)10包括一緩 沖存儲器11、一存儲器控制器12以及一數(shù)據(jù)高速緩存13。緩沖存儲器11接
9收來自主機20的數(shù)據(jù)。存儲器控制器12調(diào)配緩沖存儲器11內(nèi)的數(shù)據(jù)。數(shù)
據(jù)高速緩存13是由存儲器控制器12根據(jù)一快取算法14所控制。在一具體 實施例中,緩沖存儲器11為一靜態(tài)隨機存取存儲器(static random access memory, SRAM)。存儲器控制器12包括一微處理器。數(shù)據(jù)高速緩存13為 -一同步動態(tài)隨機存取存儲器(synchronous dynamic random access memory, SDRAM)。
詳而言之,就主機數(shù)據(jù)轉(zhuǎn)換而言,其基本的數(shù)據(jù)單位為一儲存區(qū)(sector), 其容量為512字節(jié)(B)。舉例來說,主機可以寫入128個連續(xù)儲存區(qū)(即 64KB)的數(shù)據(jù)至閃存,也可以寫入8個連續(xù)儲存區(qū)(即4KB)的數(shù)據(jù)至閃 存。為了減少燒寫/擦除次數(shù),可以將寫入的數(shù)據(jù)"快取"至數(shù)據(jù)高速緩 存中,并且僅在數(shù)據(jù)快取區(qū)塊塞滿之后才寫入至閃存內(nèi)。舉例來說,如果快 閃區(qū)塊容量為256KB,則數(shù)據(jù)快取單位即為256KB。如果總快取容量為 16MB,則總共有64 (16MB/256KB)個快取項目。如果主機依序?qū)懭?56KB 的數(shù)據(jù)至快取(使得一個快取區(qū)塊塞滿),那么,可以一次將此256KB的 數(shù)據(jù)寫入至閃存,如此并不需要一次的擦除次數(shù)。
然而,主機可以將不同容量的數(shù)據(jù)儲存區(qū)的數(shù)據(jù)寫入至不同的快取區(qū) 塊。圖2為主機寫入行為的一實例。在圖2中,主機寫入128個儲存區(qū)的數(shù) 據(jù),其可占用一個快取區(qū)塊塞滿。如果主機只有寫入8個儲存區(qū)的數(shù)據(jù),這 8個儲存區(qū)的數(shù)據(jù)也會占用另一個快取區(qū)塊。換言之,如果數(shù)據(jù)高速緩存被 分割成相同容量的快取區(qū)塊(例如,1MB),則快取項目的數(shù)量最多只有16 (16MB/1MB)個,而且這些快取區(qū)塊很快地就會被占用光,如此會導(dǎo)致非 常低的擊中率。圖3為一分割為平均快取容量區(qū)塊的已知高速緩存。
增加快取項目的數(shù)量(例如,從16個快取項目增加到32個快取項目) 的一種方法為增加總快取容量(例如,從16MB增加到32MB)。然而,如 此會增加高速緩存的成本。
為了解決此問題,本發(fā)明提供一種數(shù)據(jù)高速緩存,其具有不同快取容量 的分割區(qū)塊,以在相同高速緩存容量的情形下增加快取項目。舉例來說,數(shù) 據(jù)高速緩存可以分割成不同快取容量的區(qū)塊,如此使得大數(shù)據(jù)儲存區(qū)的數(shù)據(jù) 可以寫入大區(qū)塊(例如,每區(qū)塊容量為1MB )而小數(shù)據(jù)儲存區(qū)的數(shù)據(jù)可以 寫入小區(qū)塊(例如,每區(qū)塊容量為8KB)。請參閱圖4,其為根據(jù)本發(fā)明一
10具體實施例的高速緩存,其被分割為兩種快取容量區(qū)塊。在圖4中,如果數(shù)
據(jù)高速緩存的總快取容量為16MB,該數(shù)據(jù)高速緩存可被分割成15個具有 1MB的區(qū)塊容量的大區(qū)塊以及128個具有8KB的區(qū)塊容量的小區(qū)塊。因 此,總共可容納143 (15 + 128)個快取項目,以提高擊中率。
優(yōu)選地,數(shù)據(jù)高速緩存可被分割成至少多個大快取容量區(qū)塊、多個中快 取容量區(qū)塊以及多個小快取容量區(qū)塊,如圖5所示。在圖5中,如果數(shù)據(jù)高 速緩存的總快取容量為16MB,該數(shù)據(jù)高速緩存可被分割成13個具有1MB 的區(qū)塊容量的大區(qū)塊、32個具有64KB的區(qū)塊容量的中區(qū)塊以及128個具有 8KB的區(qū)塊容量的小區(qū)塊。因此,總共可容納173 (13 + 32 + 128)個快取 項目,以提高擊中率。
在本發(fā)明中,基于與非門型閃存以及主機的特性,還提供一種快取算法, 其完全不同于公知使用于中央處理器系統(tǒng)的快取算法。在本發(fā)明中,揭示一 種多重快取區(qū)塊容量分割算法,以判斷主機該寫入數(shù)據(jù)至哪一區(qū)塊(大區(qū) 塊或小區(qū)塊)。
圖6為根據(jù)本發(fā)明的數(shù)據(jù)快取架構(gòu)所使用的快取算法的流程圖。該快取 算法包括以下步驟
在步驟61中,判斷該主機寫入的數(shù)據(jù)是否大于或等于一儲存區(qū)(sector)
臨界數(shù)。
在步驟62中,判斷快取擊中(cache hit)是否發(fā)生于該大快取容量區(qū)塊內(nèi)。
如果該主機寫入的數(shù)據(jù)小于該儲存區(qū)臨界數(shù)而且快取擊中并未發(fā)生于 該大快取容量區(qū)塊內(nèi),主機寫入數(shù)據(jù)至該小快取容量區(qū)塊,如步驟63;否則, 主機寫入數(shù)據(jù)至該大快取容量區(qū)塊,如步驟66。
在歩驟64中,判斷快取擊中是否發(fā)生于該小快取容量區(qū)塊內(nèi)。 如果該主機寫入的數(shù)據(jù)小于該儲存區(qū)臨界數(shù)而且快取擊中發(fā)生于該大 快取容量區(qū)塊內(nèi)但是并未發(fā)生于該小快取容量區(qū)塊內(nèi),寫入數(shù)據(jù)至該大快取 容量區(qū)塊,如歩驟66;否則,如果該主機寫入的數(shù)據(jù)小于該儲存區(qū)臨界數(shù)而 且快取擊中發(fā)生于該大快取容量區(qū)塊以及該小快取容量區(qū)塊內(nèi),將該小快取 容量區(qū)塊內(nèi)的數(shù)據(jù)匯集至該大快取容量區(qū)塊內(nèi),如歩驟65,并且接著寫入數(shù) 據(jù)至該大快取容量區(qū)塊,如步驟66。
ii如果該主機寫入的數(shù)據(jù)大于或等于該儲存區(qū)臨界數(shù)而且快取擊中并未 發(fā)生于該大快取容量區(qū)塊內(nèi)以及該小快取容量區(qū)塊內(nèi),主機寫入數(shù)據(jù)至該大 快取容量區(qū)塊,如步驟66;否則,如果該主機寫入的數(shù)據(jù)大于或等于該儲存 區(qū)臨界數(shù)而且快取擊中發(fā)生于該小快取容量區(qū)塊但是并未發(fā)生于該大快取 容量區(qū)塊內(nèi),將該小快取容量區(qū)塊內(nèi)的數(shù)據(jù)匯集至該大快取容量區(qū)塊內(nèi),如
步驟65,并且接著寫入數(shù)據(jù)至該大快取容量區(qū)塊,如步驟66。
如果該主機寫入的數(shù)據(jù)大于或等于該儲存區(qū)臨界數(shù)而且快取擊中發(fā)生 于該大快取容量區(qū)塊內(nèi)但是并未發(fā)生于該小快取容量區(qū)塊內(nèi),主機寫入數(shù)據(jù)
至該大快取容量區(qū)塊,如步驟66;否則,如果該主機寫入的數(shù)據(jù)大于或等于
該儲存區(qū)臨界數(shù)而且快取擊中發(fā)生于該大快取容量區(qū)塊以及該小快取容量 區(qū)塊內(nèi),將該小快取容量區(qū)塊內(nèi)的數(shù)據(jù)匯集至該大快取容量區(qū)塊內(nèi),如步驟
65,并且接著寫入數(shù)據(jù)至該大快取容量區(qū)塊,如步驟66。
優(yōu)選地,該快取算法是以一應(yīng)用軟件或一硬件完成。
通過使用多重快取區(qū)塊容量分割以及相關(guān)的快取算法來管理主機數(shù)據(jù) 寫入,使用者可以輕易地在不增加總快取容量的情形下改善快取擊中率,并 且同時改善閃存的寫入性能(因為同步動態(tài)隨機存取存儲器的寫入速度高于 快閃存儲器的寫入速度)以及其壽命。
綜上所述,當(dāng)知本發(fā)明提供一種適用于與非門型快閃裝置的數(shù)據(jù)快取架 構(gòu)與其使用的快取算法,以減少與非門型快閃裝置的燒寫/擦除次數(shù)。故本 發(fā)明具有新穎性、進步性,及可供產(chǎn)業(yè)利用的功效
以上所述,僅為本發(fā)明的優(yōu)選實施例而已,并非用來限定本發(fā)明的范圍, 即凡依本發(fā)明權(quán)利要求所述的形狀、構(gòu)造、特征、精神及方法所為的均等變 化與修飾,均應(yīng)包括于本發(fā)明的權(quán)利要求書所涵蓋的范圍內(nèi)。
1權(quán)利要求
1. 一種數(shù)據(jù)快取架構(gòu),設(shè)置于一主機與一閃存之間,該數(shù)據(jù)快取架構(gòu)包括一緩沖存儲器,其從該主機接收數(shù)據(jù);一存儲器控制器,其調(diào)配該緩沖存儲器內(nèi)的數(shù)據(jù);以及一數(shù)據(jù)高速緩存,其由該存儲器控制器根據(jù)一快取算法所控制。
2. 如權(quán)利要求1所述的數(shù)據(jù)快取架構(gòu),其中該緩沖存儲器為一靜態(tài)隨機 存取存儲器。
3. 如權(quán)利要求1所述的數(shù)據(jù)快取架構(gòu),其中該存儲器控制器包括一微處理器。
4. 如權(quán)利要求1所述的數(shù)據(jù)快取架構(gòu),其中該數(shù)據(jù)高速緩存為一同步動 態(tài)隨機存取存儲器。
5. 如權(quán)利要求1所述的數(shù)據(jù)快取架構(gòu),其中該數(shù)據(jù)高速緩存被分割成至 少多個大快取容量區(qū)塊以及多個小快取容量區(qū)塊。
6. 如權(quán)利要求1所述的數(shù)據(jù)快取架構(gòu),其中該數(shù)據(jù)高速緩存被分割成至 少多個大快取容量區(qū)塊、多個中快取容量區(qū)塊以及多個小快取容量區(qū)塊。
7. 如權(quán)利要求1所述的數(shù)據(jù)快取架構(gòu),其中該快取算法是以一應(yīng)用軟件 或一硬件完成。
8. 如權(quán)利要求5所述的數(shù)據(jù)快取架構(gòu),其中該快取算法包括以下步驟(a) 判斷該主機寫入的數(shù)據(jù)是否大于或等于一儲存區(qū)臨界數(shù);(b) 判斷快取擊中是否發(fā)生于該大快取容量區(qū)塊內(nèi);以及(c) 如果該主機寫入的數(shù)據(jù)小于該儲存區(qū)臨界數(shù)而且快取擊中并未發(fā) 生于該大快取容量區(qū)塊內(nèi),寫入數(shù)據(jù)至該小快取容量區(qū)塊,否則寫入數(shù)據(jù)至 該大快取容量區(qū)塊。
9. 如權(quán)利要求8所述的數(shù)據(jù)快取架構(gòu),其中該快取算法的步驟(c)包 括以下步驟(cll)判斷快取擊中是否發(fā)生于該小快取容量區(qū)塊內(nèi);以及 (cl2)如果該主機寫入的數(shù)據(jù)小于該儲存區(qū)臨界數(shù)而且快取擊中發(fā)生 于該大快取容量區(qū)塊內(nèi)但是并未發(fā)生于該小快取容量區(qū)塊內(nèi),寫入數(shù)據(jù)至該 大快取容量區(qū)塊,否則,如果該主機寫入的數(shù)據(jù)小于該儲存區(qū)臨界數(shù)而且快取擊中發(fā)生于該大快取容量區(qū)塊以及該小快取容量區(qū)塊內(nèi),將該小快取容量 區(qū)塊內(nèi)的數(shù)據(jù)匯集至該大快取容量區(qū)塊內(nèi)并且接著寫入數(shù)據(jù)至該大快取容 量區(qū)塊。
10. 如權(quán)利要求8所述的數(shù)據(jù)快取架構(gòu),其中該快取算法的步驟(C)包 括以下步驟(C21)判斷快取擊中是否發(fā)生于該小快取容量區(qū)塊內(nèi);以及(c22)如果該主機寫入的數(shù)據(jù)大于或等于該儲存區(qū)臨界數(shù)而且快取擊中并未發(fā)生于該大快取容量區(qū)塊內(nèi)以及該小快取容量區(qū)塊內(nèi),寫入數(shù)據(jù)至該 大快取容量區(qū)塊,否則,如果該主機寫入的數(shù)據(jù)大于或等于該儲存區(qū)臨界數(shù) 而且快取擊中發(fā)生于該小快取容量區(qū)塊但是并未發(fā)生于該大快取容量區(qū)塊 內(nèi),將該小快取容量區(qū)塊內(nèi)的數(shù)據(jù)匯集至該大快取容量區(qū)塊內(nèi)并且接著寫入 數(shù)據(jù)至該大快取容量區(qū)塊。
11. 如權(quán)利要求8所述的數(shù)據(jù)快取架構(gòu),其中該快取算法的步驟(c)包 括以下步驟(c31)判斷快取擊中是否發(fā)生于該小快取容量區(qū)塊內(nèi);以及 (c32)如果該主機寫入的數(shù)據(jù)大于或等于該儲存區(qū)臨界數(shù)而且快取擊 中發(fā)生于該大快取容量區(qū)塊內(nèi)但是并未發(fā)生于該小快取容量區(qū)塊內(nèi),寫入數(shù) 據(jù)至該大快取容量區(qū)塊,否則,如果該主機寫入的數(shù)據(jù)大于或等于該儲存區(qū) 臨界數(shù)而且快取擊中發(fā)生于該大快取容量區(qū)塊以及該小快取容量區(qū)塊內(nèi),將 該小快取容量區(qū)塊內(nèi)的數(shù)據(jù)匯集至該大快取容量區(qū)塊內(nèi)并且接著寫入數(shù)據(jù) 至該大快取容量區(qū)塊。
12. —種快取算法,其使用于一數(shù)據(jù)快取架構(gòu),該數(shù)據(jù)快取架構(gòu)包括一 分割成至少多個大快取容量區(qū)塊以及多個小快取容量區(qū)塊的數(shù)據(jù)高速緩存, 其中該快取算法包括以下步驟(a) 判斷該主機寫入的數(shù)據(jù)是否大于或等于一儲存區(qū)臨界數(shù);(b) 判斷快取擊中是否發(fā)生于該大快取容量區(qū)塊內(nèi);以及(c) 如果該主機寫入的數(shù)據(jù)小于該儲存區(qū)臨界數(shù)而且快取擊中并未發(fā) 生于該大快取容量區(qū)塊內(nèi),寫入數(shù)據(jù)至該小快取容量區(qū)塊,否則寫入數(shù)據(jù)至 該大快取容量區(qū)塊。
13. 如權(quán)利要求12所述的快取算法,其中該步驟(c)包括以下步驟(Cll)判斷快取擊中是否發(fā)生于該小快取容量區(qū)塊內(nèi);以及 (Cl2)如果該主機寫入的數(shù)據(jù)小于該儲存區(qū)臨界數(shù)而且快取擊中發(fā)生 于該大快取容量區(qū)塊內(nèi)但是并未發(fā)生于該小快取容量區(qū)塊內(nèi),寫入數(shù)據(jù)至該 大快取容量區(qū)塊,否則,如果該主機寫入的數(shù)據(jù)小于該儲存區(qū)臨界數(shù)而且快 取擊中發(fā)生于該大快取容量區(qū)塊以及該小快取容量區(qū)塊內(nèi),將該小快取容量 區(qū)塊內(nèi)的數(shù)據(jù)匯集至該大快取容量區(qū)塊內(nèi)并且接著寫入數(shù)據(jù)至該大快取容 貴區(qū)塊。
14. 如權(quán)利要求12所述的快取算法,其中該步驟(c)包括以下步驟 (c21)判斷快取擊中是否發(fā)生于該小快取容量區(qū)塊內(nèi);以及(c22)如果該主機寫入的數(shù)據(jù)大于或等于該儲存區(qū)臨界數(shù)而且快取擊 中并未發(fā)生于該大快取容量區(qū)塊內(nèi)以及該小快取容量區(qū)塊內(nèi),寫入數(shù)據(jù)至該 大快取容量區(qū)塊,否則,如果該主機寫入的數(shù)據(jù)大于或等于該儲存區(qū)臨界數(shù) 而且快取擊中發(fā)生于該小快取容量區(qū)塊但是并未發(fā)生于該大快取容量區(qū)塊 內(nèi),將該小快取容量區(qū)塊內(nèi)的數(shù)據(jù)匯集至該大快取容量區(qū)塊內(nèi)并且接著寫入 數(shù)據(jù)至該大快取容量區(qū)塊。
15. 如權(quán)利要求12所述的快取算法,其中該步驟(c)包括以下步驟 (c31)判斷快取擊中是否發(fā)生于該小快取容量區(qū)塊內(nèi);以及(c32)如果該主機寫入的數(shù)據(jù)大于或等于該儲存區(qū)臨界數(shù)而且快取擊 中發(fā)生于該大快取容量區(qū)塊內(nèi)但是并未發(fā)生于該小快取容量區(qū)塊內(nèi),寫入數(shù) 據(jù)至該大快取容量區(qū)塊,否則,如果該主機寫入的數(shù)據(jù)大于或等于該儲存區(qū) 臨界數(shù)而且快取擊中發(fā)生于該大快取容量區(qū)塊以及該小快取容量區(qū)塊內(nèi),將 該小快取容量區(qū)塊內(nèi)的數(shù)據(jù)匯集至該大快取容量區(qū)塊內(nèi)并且接著寫入數(shù)據(jù) 至該大快取容量區(qū)塊。
全文摘要
本發(fā)明提供一種數(shù)據(jù)快取架構(gòu)與其使用的快取算法,該數(shù)據(jù)快取架構(gòu)包括一緩沖存儲器,其從該主機接收數(shù)據(jù);一存儲器控制器,其調(diào)配該緩沖存儲器內(nèi)的數(shù)據(jù);以及一數(shù)據(jù)高速緩存,是由該存儲器控制器根據(jù)一快取算法所控制。本發(fā)明的數(shù)據(jù)快取架構(gòu)與其使用的快取算法可以被用來減少與非門型快閃裝置的燒寫/擦除次數(shù)。
文檔編號G06F12/08GK101458664SQ20071019956
公開日2009年6月17日 申請日期2007年12月13日 優(yōu)先權(quán)日2007年12月13日
發(fā)明者林俊宏, 林燕欽, 王信忠 申請人:鑫創(chuàng)科技股份有限公司