專利名稱:提高Nand型快閃存儲(chǔ)器數(shù)據(jù)存取速度的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電數(shù)字?jǐn)?shù)據(jù)處理,特別涉及在帶存貯器系統(tǒng)內(nèi)的數(shù)據(jù)存取技術(shù), 尤其涉及Nand型快閃存儲(chǔ)器的數(shù)據(jù)存取方法。
背景技術(shù):
非易失快閃(Hash)存儲(chǔ)器的出現(xiàn)改變了原先由EPROM和EEPROM —統(tǒng)存儲(chǔ) 器天下的局面。它主要包括Nor型和Nand型,其中較晚出現(xiàn)的Nand型閃存(本文對(duì)"快 閃存儲(chǔ)器"的簡(jiǎn)稱)具有更高的性能。
所述Nand型閃存的架構(gòu)如圖l所示,包括以自然數(shù)m為例的若干個(gè)塊(block),所述 塊是Nand型閃存擦除成空塊(可正確寫(xiě)入數(shù)據(jù)的狀態(tài))的最小單位。 一個(gè)塊由以自然數(shù)n 為例的若干個(gè)頁(yè)(Page)組成; 一個(gè)頁(yè)由以自然數(shù)k為例的若干個(gè)段(Sector)組成;每 個(gè)段又包括了 512個(gè)字節(jié)(BYTE)長(zhǎng)的數(shù)據(jù)區(qū)(系統(tǒng)管理操作閃存的基本單位)和16個(gè)字節(jié) 長(zhǎng)的冗余區(qū),其中數(shù)據(jù)區(qū)用來(lái)存放數(shù)據(jù);冗余區(qū)用來(lái)存放私有標(biāo)志數(shù)據(jù),包括用于檢錯(cuò)并 糾正錯(cuò)誤的特征碼。對(duì)于確定型號(hào)的Nand型閃存來(lái)說(shuō),以韓國(guó)三星(Samsung)公司的 K9F4G08U0M為例,可以很方便地確定上述參數(shù)如下 1頁(yè)=(2K + 64)字節(jié)
1塊=(128K + 4K )字節(jié)=64 x ( 2K + 64 )字節(jié) 1閃存芯片=4. 224M比特=4096 x 64 x ( 2K + 64 )字節(jié) 則所述自然數(shù)m = 4096, n = 64, k = 4。
涉及Nand型閃存數(shù)據(jù)存取的尋址方式,即定位到某個(gè)字節(jié)所在位置的物理地址,是由 閃存芯片接口的行(Row)和列(Column)地址來(lái)唯一確定。所述行地址就是各所述頁(yè)的物 理序號(hào),從0開(kāi)始(本文中設(shè)所有的序號(hào)值都是從O開(kāi)始計(jì));列地址指所述字節(jié)在相應(yīng)頁(yè) 內(nèi)的位置偏移量。由此推及,塊的行地址指的是該塊起始頁(yè)的物理序號(hào),例如,第g個(gè)塊 的行地址為gxn,其中n如上所述為一個(gè)塊所包括的頁(yè)數(shù)。
為了編程方便,程序中一般使用邏輯地址來(lái)指示相關(guān)操作字節(jié)的位置。例如塊的邏輯地 址為所有(除壞塊之外的)可用塊在使用時(shí)被賦予的一個(gè)序號(hào),它可以作為標(biāo)志數(shù)據(jù)之一 被寫(xiě)入到如上所述的冗余區(qū)中。圖2示意了往邏輯地址u的塊(設(shè)當(dāng)前對(duì)應(yīng)的塊物理地址 為i)內(nèi)第二區(qū)域?qū)憯?shù)據(jù)的操作過(guò)程如圖2a所示,先找到一個(gè)空的可用塊j;再依次將 塊i內(nèi)第一區(qū)域的數(shù)據(jù)拷貝到塊j中的對(duì)應(yīng)區(qū)域(見(jiàn)如圖2b),將要新寫(xiě)的數(shù)據(jù)寫(xiě)到塊j 中的第二區(qū)域(見(jiàn)如圖2c),將塊i內(nèi)第三區(qū)域的數(shù)據(jù)拷貝到塊j中的對(duì)應(yīng)區(qū)域(見(jiàn)如圖 2d);最后如圖2e所示,將塊i擦除成空塊,因?yàn)榍笆鰧?xiě)操作寫(xiě)數(shù)據(jù)區(qū)的同時(shí),也進(jìn)行冗 余區(qū)的寫(xiě)入,因此塊j冗余區(qū)的內(nèi)容包括了邏輯地址u,從而當(dāng)前邏輯地址u與物理塊j 相對(duì)應(yīng)。同樣,程序在讀取Nand型閃存的數(shù)據(jù)時(shí),是根據(jù)其邏輯地址來(lái)查找出對(duì)應(yīng)的物理 地址,從而提供行、列地址對(duì)芯片進(jìn)行讀操作。
隨著容量的增大,Nand型閃存所承載的數(shù)據(jù)量也越大,對(duì)其存取速度的要求也越高 例如微軟公司新發(fā)布操作系統(tǒng)Vista對(duì)相關(guān)存儲(chǔ)設(shè)備要求達(dá)到2. 5MB/s或以上的4KB數(shù)據(jù) 讀取速度,1.75MB/s或以上的512KB數(shù)據(jù)隨機(jī)寫(xiě)速度。為了避免塊數(shù)較多情況下邏輯序號(hào) 過(guò)大,通常將一片閃存劃分成若干區(qū)(Zone),每一區(qū)包括2n'(n'是自然數(shù))個(gè)塊,從而 在一個(gè)區(qū)的范圍內(nèi)對(duì)塊進(jìn)行邏輯序號(hào)分配。申請(qǐng)?zhí)枮?2116147的中國(guó)發(fā)明專利申請(qǐng)公開(kāi)了 一種提高存取速度的方法,具體是在系統(tǒng)開(kāi)機(jī)時(shí)以區(qū)為單位建立該區(qū)塊邏輯地址與物理 地址的關(guān)系對(duì)照表,并將其儲(chǔ)存在RAM中;當(dāng)系統(tǒng)傳送一待查邏輯地址至該RAM,該RAM由 所述關(guān)系對(duì)照表中得到一對(duì)應(yīng)物理地址;及或搜尋每一區(qū),直至取得對(duì)應(yīng)物理地址為止。
上述現(xiàn)有技術(shù)的不足之處在于當(dāng)所述塊數(shù)或區(qū)數(shù)較多時(shí),若僅建立當(dāng)前區(qū)的關(guān)系對(duì) 照表,則當(dāng)要操作的某段數(shù)據(jù)不在當(dāng)前區(qū)范圍內(nèi)時(shí),得逐一讀取新的區(qū)中各可用物理塊的 邏輯地址來(lái)建立該區(qū)的關(guān)系對(duì)照表,該建立過(guò)程需要耗費(fèi)一定的時(shí)間。尤其是當(dāng)操作段的 地址呈隨機(jī)變化時(shí),若很頻繁地進(jìn)行所述關(guān)系對(duì)照表的建立,將嚴(yán)重影響操作速度。為解 決該問(wèn)題,若采用建立全部區(qū)的關(guān)系對(duì)照表并將它們都存放在RAM中的方法,又會(huì)占據(jù)相 當(dāng)?shù)腞AM資源,從而現(xiàn)有技術(shù)提高存取速度的成本非常高。此外,當(dāng)要往一確定物理地址 的塊中更新一部分?jǐn)?shù)據(jù)時(shí),系統(tǒng)往往需要將沒(méi)有更新的部分?jǐn)?shù)據(jù)先保存到RAM中,再擦除 這個(gè)塊,最后將保存的RAM和要新寫(xiě)的數(shù)據(jù)寫(xiě)入到該塊;系統(tǒng)若沒(méi)有足夠的RAM將無(wú)法完 成該更新搡作過(guò)程。同時(shí),系統(tǒng)閃存容量的不確定性還導(dǎo)致系統(tǒng)RAM大小的難以確定。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題是針對(duì)上述現(xiàn)有技術(shù)的不足而提出一種方法,用較 低成本來(lái)實(shí)現(xiàn)對(duì)Naild型快閃存儲(chǔ)器數(shù)據(jù)存取速度的提髙。
為解決上述技術(shù)問(wèn)題,本發(fā)明的基本構(gòu)思為,提高數(shù)據(jù)存取速度的關(guān)鍵在于避免頻繁 的關(guān)系對(duì)照表建立過(guò)程,因此可以考慮直接在Nand型閃存上保存事先建立的各區(qū)關(guān)系對(duì)照 表,這樣在需要使用時(shí),讀入相關(guān)區(qū)的關(guān)系對(duì)照表來(lái)更新RAM中的當(dāng)前對(duì)照表,就可以盡 可能少占用RAM資源的同時(shí)提高數(shù)據(jù)存取速度。
作為實(shí)現(xiàn)本發(fā)明構(gòu)思的技術(shù)方案是,提供一種提高Nand型快閃存儲(chǔ)器數(shù)據(jù)存取速度的 方法,尤其是,包括步驟
A. 以該快閃存儲(chǔ)器的區(qū)為單位建立各自的塊邏輯地址與物理地址關(guān)系對(duì)照表,并將各 所述關(guān)系對(duì)照表儲(chǔ)存在該快閃存儲(chǔ)器中;
B. 當(dāng)系統(tǒng)傳送一待查邏輯地址至隨機(jī)存取存儲(chǔ)器時(shí),該隨機(jī)存取存儲(chǔ)器利用當(dāng)前區(qū)關(guān) 系對(duì)照表或新讀入的欲操作區(qū)關(guān)系對(duì)照表來(lái)查得對(duì)應(yīng)的物理地址。
上述方案中,步驟A各關(guān)系對(duì)照表的建立包括初始建立,是在生產(chǎn)所述快閃存儲(chǔ)器時(shí), 初始化掃描所有物理塊,并針對(duì)每個(gè)區(qū)分別建立和寫(xiě)入的; 或者是在系統(tǒng)每次開(kāi)機(jī)或 復(fù)位時(shí),讀所述快閃存儲(chǔ)器每一可用物理塊的邏輯地址并針對(duì)每個(gè)區(qū)分別建立和寫(xiě)入的。
上述方案中,步驟A各關(guān)系對(duì)照表的建立包括更新建立,是關(guān)系對(duì)照表在隨機(jī)存取存
儲(chǔ)器中發(fā)生了變化后被寫(xiě)回到該表的存儲(chǔ)空間;或者是在當(dāng)前區(qū)不存在有效的關(guān)系對(duì)照
表時(shí),通過(guò)讀取該區(qū)內(nèi)每個(gè)可用物理塊的邏輯地址來(lái)重新建立關(guān)系對(duì)照表并寫(xiě)入該區(qū)對(duì)應(yīng) 對(duì)照表的存儲(chǔ)空間。
上述方案中,所述關(guān)系對(duì)照表在隨機(jī)存取存儲(chǔ)器中發(fā)生了變化后,是經(jīng)過(guò)預(yù)定的定時(shí)
時(shí)間間隔后才被寫(xiě)回到所述快閃存儲(chǔ)器中的該表存儲(chǔ)空間; 或者是系統(tǒng)判斷對(duì)所述快閃 存儲(chǔ)器的存取搡作區(qū)將發(fā)生變換時(shí),被寫(xiě)回到所述快閃存儲(chǔ)器中的該表存儲(chǔ)空間。
上述方案中,所述各關(guān)系對(duì)照表在所述快閃存儲(chǔ)器中的存儲(chǔ)空間分別為一個(gè)物理塊。 所述各物理塊分別為所述快閃存儲(chǔ)器各關(guān)系對(duì)照表對(duì)應(yīng)區(qū)中的指定塊。
上述方案中,各所述關(guān)系對(duì)照表分別占用所述對(duì)應(yīng)物理塊中一個(gè)物理頁(yè)的空間。
上述方案中,所述關(guān)系對(duì)照表在所述塊中采用輪換頁(yè)的更新建立方法。
上述方案中,步驟B中所述新讀入欲搡作區(qū)關(guān)系對(duì)照表的方法是,根據(jù)一預(yù)先建立在隨 機(jī)存取存儲(chǔ)器的有效頁(yè)位置指示表來(lái)定位并讀取該欲操作區(qū)的有效關(guān)系對(duì)照表到所述隨機(jī) 存取存儲(chǔ)器中的。
上述方案中,隨機(jī)存取存儲(chǔ)器在新讀入所述關(guān)系對(duì)照表前,需要對(duì)由所述有效頁(yè)位置
指示表指明的有效對(duì)照表進(jìn)行有效性確定;若確定無(wú)效,則通過(guò)讀取該對(duì)照表對(duì)應(yīng)操作區(qū) 內(nèi)每個(gè)可用物理塊的邏輯地址來(lái)重建并更新該對(duì)照表。
采用上述各技術(shù)方案,可以提高數(shù)據(jù)存取速度,同時(shí)不占用系統(tǒng)過(guò)多的隨機(jī)存取存儲(chǔ) 器資源,從而節(jié)省了解決成本。此外,采用輪換頁(yè)方法可以進(jìn)一步提高速度,采用檢查有 效性方法增加了方案的可靠性。因此,本發(fā)明方法有較強(qiáng)的實(shí)用性。
圖l是現(xiàn)有Nand型閃存的存儲(chǔ)架構(gòu)示意圖
圖2是現(xiàn)有往預(yù)定邏輯地址寫(xiě)入部分塊數(shù)據(jù)的操作過(guò)程示意圖 圖3是本發(fā)明實(shí)施例使用關(guān)系對(duì)照表的方法具體流程示意圖 圖4是本發(fā)明實(shí)施例更新RAM中關(guān)系對(duì)照表的流程示意圖
具體實(shí)施方式
下面,結(jié)合附圖所示之最佳實(shí)施例進(jìn)一步闡述本發(fā)明。
本發(fā)明提高Nand型閃存數(shù)據(jù)存取速度的方法有別于現(xiàn)有技術(shù)的地方在于包括步驟
A. 以該閃存的區(qū)為單位建立各區(qū)的塊邏輯地址與物理地址關(guān)系對(duì)照表,并將各所述 關(guān)系對(duì)照表儲(chǔ)存在該閃存中;可以是分散存儲(chǔ)在各表各自的對(duì)應(yīng)區(qū)內(nèi),或集中存 儲(chǔ)在所述閃存的指定區(qū)內(nèi),或以其它方式存儲(chǔ),同時(shí)系統(tǒng)約定各對(duì)照表與相應(yīng)區(qū) 的位置對(duì)應(yīng)關(guān)系即可。
B. 當(dāng)系統(tǒng)傳送一待查邏輯地址至隨機(jī)存取存儲(chǔ)器時(shí),該隨機(jī)存取存儲(chǔ)器利用當(dāng)前區(qū) 或新讀入操作區(qū)的所述關(guān)系對(duì)照表來(lái)查得對(duì)應(yīng)的物理地址。如果所述待查邏輯地 址所對(duì)應(yīng)的操作區(qū)與當(dāng)前一致,則使用當(dāng)前關(guān)系對(duì)照表,否則隨機(jī)存取存儲(chǔ)器將 讀入并使用與該待查邏輯地址相對(duì)應(yīng)的操作區(qū)的關(guān)系對(duì)照表。
所述步驟A建立各關(guān)系對(duì)照表,可以分成兩種情況 一種是指對(duì)各對(duì)照表的初始建立, 可以是在所述閃存生產(chǎn)時(shí),由上層生產(chǎn)軟件初始化掃描該閃存,根據(jù)每一物理塊的情況, 針對(duì)每個(gè)區(qū)建立一個(gè)塊邏輯地址與物理地址的關(guān)系對(duì)照表,并寫(xiě)入到與該區(qū)對(duì)應(yīng)位置的對(duì) 照表存儲(chǔ)空間中;也可以是在系統(tǒng)每次開(kāi)機(jī)或復(fù)位時(shí),讀所述閃存每一可用物理塊的邏輯 地址來(lái)建立各區(qū)的塊邏輯地址與物理地址關(guān)系對(duì)照表,并寫(xiě)入到所述空間,這種方式將使 復(fù)位初始化的時(shí)間隨總塊數(shù)的增加而變長(zhǎng)。另一種是指對(duì)各對(duì)照表的更新建立,是在任一 關(guān)系對(duì)照表有變化需要更新時(shí)進(jìn)行,可以將隨機(jī)存取存儲(chǔ)器中發(fā)生了變化的關(guān)系對(duì)照表寫(xiě) 回其在閃存中的存儲(chǔ)空間。
依據(jù)數(shù)據(jù)長(zhǎng)度, 一個(gè)關(guān)系對(duì)照表存放在閃存中可以只占用一個(gè)物理塊,甚至一個(gè)物理 頁(yè)的空間。為了提高系統(tǒng)處理速度,可以將所述各物理塊分別指定為所述快閃存儲(chǔ)器各關(guān) 系對(duì)照表對(duì)應(yīng)區(qū)中的特定塊,例如但不限于各區(qū)的第0個(gè)好塊。由于一個(gè)塊有n個(gè)頁(yè),為 了減少往塊中寫(xiě)入數(shù)據(jù)的擦除過(guò)程,本發(fā)明對(duì)關(guān)系對(duì)照表釆用輪換頁(yè)的最佳更新建立方法, 即把關(guān)系對(duì)照表寫(xiě)回到預(yù)定塊中時(shí),是將原存放頁(yè)中的對(duì)照表標(biāo)記為失效狀態(tài),再將新關(guān) 系對(duì)照表寫(xiě)入到原存放頁(yè)的下一可用頁(yè)中;僅當(dāng)該塊被寫(xiě)滿時(shí)才執(zhí)行擦除操作,并又從該 塊的起始可用頁(yè)(例如但不限于頁(yè)O)開(kāi)始寫(xiě)入更新的關(guān)系對(duì)照表。這樣,預(yù)定塊擦除一次 之后對(duì)相應(yīng)區(qū)的對(duì)照表更新記錄可以多達(dá)n次,大大減少關(guān)系對(duì)照表的建立時(shí)間。所述表 示失效或有效狀態(tài)的標(biāo)記可以存放在頁(yè)的預(yù)定冗余區(qū)中。
相應(yīng)的,所述步驟B中隨機(jī)存取存儲(chǔ)器在利用當(dāng)前區(qū)或讀入相應(yīng)區(qū)的關(guān)系對(duì)照表前, 需要進(jìn)行關(guān)系對(duì)照表的有效性確定。以關(guān)系對(duì)照表分散存儲(chǔ)在各表各自對(duì)應(yīng)區(qū)的指定塊為 例,方法之一是,在系統(tǒng)每次復(fù)位初始化時(shí),對(duì)各區(qū)中存放關(guān)系對(duì)照表的指定塊進(jìn)行掃描, 找到這些塊中具有有效標(biāo)志的對(duì)照表的所在頁(yè),以各所在頁(yè)的偏移值建立一個(gè)和區(qū)相對(duì)應(yīng) 的有效頁(yè)位置指示表,并將該表存于隨機(jī)存取存儲(chǔ)器中,供以后的搡作來(lái)快速定位各區(qū)有 效關(guān)系對(duì)照表的位置。這種方式會(huì)占用系統(tǒng)一部分隨機(jī)存取存儲(chǔ)器資源,并延長(zhǎng)復(fù)位初始 化的時(shí)間,但可以提高平時(shí)的存取處理速度。方法之二是,系統(tǒng)僅當(dāng)要操作某個(gè)區(qū)時(shí),才 去該區(qū)的指定塊中查找哪個(gè)頁(yè)所存放的關(guān)系對(duì)照表為有效,并將該有效關(guān)系對(duì)照表讀到隨 機(jī)存取存儲(chǔ)器中使用。該方式會(huì)因執(zhí)行所述查找過(guò)程而降低一點(diǎn)速度,但不占用系統(tǒng)的隨 機(jī)存取存儲(chǔ)器資源。所述各關(guān)系對(duì)照表以其它方式存儲(chǔ)時(shí),在上述兩種處理方式中加以考慮各對(duì)照表與相應(yīng)區(qū)位置對(duì)應(yīng)關(guān)系的系統(tǒng)約定即可;下面的實(shí)施例中對(duì)此情形不再重復(fù)說(shuō)明。
上述兩種方式都需要采用一些特殊的查找算法來(lái)加快查找有效關(guān)系對(duì)照表的速度,如 二分法。因其有大量的現(xiàn)有査找技術(shù)可引用,不再贅述。
所述隨機(jī)存取存儲(chǔ)器(Random Access Memory,簡(jiǎn)寫(xiě)為RAM)可以是現(xiàn)有的所有類型, 包括一般外接系統(tǒng)控制器的SDRAM或SRAM。圖3以內(nèi)置RAM為例再現(xiàn)了本發(fā)明使用關(guān)系對(duì) 照表的一個(gè)最佳實(shí)施例。當(dāng)系統(tǒng)發(fā)起一個(gè)邏輯寫(xiě)操作時(shí),先計(jì)算當(dāng)前要操作的閃存存儲(chǔ)區(qū), 訪問(wèn)該區(qū)存放關(guān)系對(duì)照表的塊,確定有效對(duì)照表的所在頁(yè),并讀取該表到RAM后將該頁(yè)的 表標(biāo)記為無(wú)效;根據(jù)由所述RAM中對(duì)照表得到的物理地址來(lái)執(zhí)行寫(xiě)數(shù)據(jù)操作,直到當(dāng)前發(fā)
起的邏輯寫(xiě)完成,此時(shí)該RAM中的所述對(duì)照表已更改,為了盡可能減少對(duì)閃存的寫(xiě)操作, 本實(shí)施例釆用定時(shí)進(jìn)行所述關(guān)系對(duì)照表更新建立的方法,據(jù)此將對(duì)更新標(biāo)志進(jìn)行標(biāo)記來(lái)提 醒對(duì)照表需要更改和開(kāi)始定時(shí)計(jì)時(shí);在定時(shí)時(shí)間到達(dá)之前,系統(tǒng)若檢測(cè)到有新發(fā)起的邏輯 寫(xiě)操作且該操作還是針對(duì)當(dāng)前區(qū)時(shí),則轉(zhuǎn)而繼續(xù)進(jìn)行寫(xiě)操作、以及上述標(biāo)記更新標(biāo)志和開(kāi) 始定時(shí)計(jì)時(shí)的過(guò)程;當(dāng)定時(shí)時(shí)間到達(dá),或定時(shí)時(shí)間到達(dá)之前系統(tǒng)檢測(cè)到有新發(fā)起的針對(duì)其
它區(qū)的邏輯寫(xiě)操作(即系統(tǒng)判斷對(duì)所述快閃存儲(chǔ)器的存取操作區(qū)將發(fā)生變換)時(shí),系統(tǒng)將
把RAM中所述已更改的對(duì)照表更新到閃存當(dāng)前區(qū)內(nèi),具體是若當(dāng)前所述頁(yè)不是指定塊的 最后一頁(yè)時(shí),將該對(duì)照表寫(xiě)入到該頁(yè)的下一頁(yè),否則擦除該塊并將該對(duì)照表寫(xiě)入到該塊的 頁(yè)0;并相應(yīng)地標(biāo)記該對(duì)照表為有效,復(fù)位系統(tǒng)的更新標(biāo)志。
圖4是該實(shí)施例中更新RAM中關(guān)系對(duì)照表的流程示意圖。當(dāng)系統(tǒng)計(jì)算出當(dāng)前要操作 的閃存存儲(chǔ)區(qū)后,先判斷RAM中存在的是否該區(qū)的關(guān)系對(duì)照表;若不是則進(jìn)一步判斷該區(qū) 有效對(duì)照表在指定塊中的偏移值是否為已知,若為已知?jiǎng)t從該偏移值所對(duì)應(yīng)的頁(yè)中讀取對(duì) 照表,否則采用快速算法經(jīng)多次判斷后確定最終的偏移值??紤]到更新一個(gè)區(qū)的關(guān)系對(duì)照 表時(shí)系統(tǒng)可能會(huì)出現(xiàn)意外,例如指定塊被判斷為寫(xiě)滿后需要擦除該塊以便從頭開(kāi)始寫(xiě)時(shí), 若此時(shí)產(chǎn)生包括斷電之類的異常將使得該指定塊中不會(huì)出現(xiàn)一個(gè)被標(biāo)記為有效的關(guān)系對(duì)照 表。為了避免這種情況的出現(xiàn), 一般情況下,隨機(jī)存取存儲(chǔ)器在新讀入一個(gè)關(guān)系對(duì)照表前, 需要對(duì)由前述有效頁(yè)位置指示表指明的有效對(duì)照表進(jìn)行有效性確定。具體到本實(shí)施例,則
將對(duì)所述已確定偏移值處的關(guān)系對(duì)照表進(jìn)行有效性判斷,若判斷為無(wú)效,則意味著當(dāng)前指 定塊不存在有效的關(guān)系對(duì)照表,必須通過(guò)讀取該區(qū)內(nèi)每個(gè)可用物理塊的邏輯地址來(lái)重建該 區(qū)的關(guān)系對(duì)照表。
經(jīng)試驗(yàn)證明,本發(fā)明方法可以在系統(tǒng)不增加RAM資源的前提下,提高Nand型閃存的數(shù) 據(jù)存取速度。
權(quán)利要求
1.一種提高Nand型快閃存儲(chǔ)器數(shù)據(jù)存取速度的方法,其特征在于,包括步驟A.以該快閃存儲(chǔ)器的區(qū)為單位建立各自的塊邏輯地址與物理地址關(guān)系對(duì)照表,并將各所述關(guān)系對(duì)照表儲(chǔ)存在該快閃存儲(chǔ)器中;B.當(dāng)系統(tǒng)傳送一待查邏輯地址至隨機(jī)存取存儲(chǔ)器時(shí),該隨機(jī)存取存儲(chǔ)器利用當(dāng)前區(qū)關(guān)系對(duì)照表或新讀入的欲操作區(qū)關(guān)系對(duì)照表來(lái)查得對(duì)應(yīng)的物理地址。
2. 根據(jù)權(quán)利要求l所述提高Nand型快閃存儲(chǔ)器數(shù)據(jù)存取速度的方法,其特征在于步驟A各關(guān)系對(duì)照表的建立包括初始建立,是在生產(chǎn)所述快閃存儲(chǔ)器時(shí),初始化掃 描所有物理塊,并針對(duì)每個(gè)區(qū)分別建立和寫(xiě)入的;或者是在系統(tǒng)每次開(kāi)機(jī)或復(fù)位時(shí),讀所述快閃存儲(chǔ)器每一可用物理塊的邏輯地址 并針對(duì)每個(gè)區(qū)分別建立和寫(xiě)入的。
3. 根據(jù)權(quán)利要求l所述提高Nand型快閃存儲(chǔ)器數(shù)據(jù)存取速度的方法,其特征在于步驟A各關(guān)系對(duì)照表的建立包括更新建立,是關(guān)系對(duì)照表在隨機(jī)存取存儲(chǔ)器中發(fā)生 了變化后被寫(xiě)回到該表的存儲(chǔ)空間;或者是在當(dāng)前區(qū)不存在有效的關(guān)系對(duì)照表時(shí),通過(guò)讀取該區(qū)內(nèi)每個(gè)可用物理塊的邏 輯地址來(lái)重新建立關(guān)系對(duì)照表并寫(xiě)入該區(qū)對(duì)應(yīng)對(duì)照表的存儲(chǔ)空間。
4.根據(jù)權(quán)利要求l所述提高Nand型快閃存儲(chǔ)器數(shù)據(jù)存取速度的方法,其特征在于所述關(guān)系對(duì)照表在隨機(jī)存取存儲(chǔ)器中發(fā)生了變化后,是經(jīng)過(guò)預(yù)定的定時(shí)時(shí)間間隔后才被寫(xiě)回到所述快閃存儲(chǔ)器中的該表存儲(chǔ)空間;或者是系統(tǒng)判斷對(duì)所述快閃存儲(chǔ)器的存取操作區(qū)將發(fā)生變換時(shí),被寫(xiě)回到所述快閃存儲(chǔ)器中的該表存儲(chǔ)空間。
5. 根據(jù)權(quán)利要求l 4任一條所述提高Nand型快閃存儲(chǔ)器數(shù)據(jù)存取速度的方法,其特征在 于所述各關(guān)系對(duì)照表在所述快閃存儲(chǔ)器中的存儲(chǔ)空間分別為一個(gè)物理塊。
6. 根據(jù)權(quán)利要求5所述提高Nand型快閃存儲(chǔ)器數(shù)據(jù)存取速度的方法,其特征在于所述各物理塊分別為所述快閃存儲(chǔ)器各關(guān)系對(duì)照表對(duì)應(yīng)區(qū)中的指定塊。
7. 根據(jù)權(quán)利要求5所述提高Nand型快閃存儲(chǔ)器數(shù)據(jù)存取速度的方法,其特征在于各所述關(guān)系對(duì)照表分別占用所述對(duì)應(yīng)物理塊中一個(gè)物理頁(yè)的空間。
8. 根據(jù)權(quán)利要求7所述提高Nand型快閃存儲(chǔ)器數(shù)據(jù)存取速度的方法,其特征在于所述關(guān)系對(duì)照表在所述塊中采用輪換頁(yè)的更新建立方法,即把新關(guān)系對(duì)照表寫(xiě)回到 塊中時(shí),是將原存放頁(yè)中的對(duì)照表標(biāo)記為失效狀態(tài),并將該新關(guān)系對(duì)照表寫(xiě)入到原存放 頁(yè)的下一可用頁(yè)中;僅當(dāng)該塊被寫(xiě)滿時(shí)才執(zhí)行擦除操作,并又從該塊的起始可用頁(yè)開(kāi)始 寫(xiě)入所述新關(guān)系對(duì)照表。
9. 根據(jù)權(quán)利要求8所述提高Nand型快閃存儲(chǔ)器數(shù)據(jù)存取速度的方法,其特征在于步驟B中所述新讀入欲操作區(qū)關(guān)系對(duì)照表的方法是,根據(jù)一預(yù)先建立在隨機(jī)存取存 儲(chǔ)器的有效頁(yè)位置指示表來(lái)定位并讀取該欲操作區(qū)的有效關(guān)系對(duì)照表到所述隨機(jī)存取 存儲(chǔ)器中的;該有效頁(yè)位置指示表指明各有效關(guān)系對(duì)照表所在頁(yè)在對(duì)應(yīng)塊中的偏移值、 該對(duì)應(yīng)塊與各區(qū)的對(duì)應(yīng)關(guān)系。
10. 根據(jù)權(quán)利要求9所述提高Nand型快閃存儲(chǔ)器數(shù)據(jù)存取速度的方法,其特征在于隨機(jī)存取存儲(chǔ)器在新讀入所述關(guān)系對(duì)照表前,需要對(duì)由所述有效頁(yè)位置指示表指明的有效對(duì)照表進(jìn)行有效性確定;若確定無(wú)效,則通過(guò)讀取該對(duì)照表對(duì)應(yīng)操作區(qū)內(nèi)每個(gè)可用物理塊的邏輯地址來(lái)重建并更新該對(duì)照表。
11.根據(jù)權(quán)利要求l所述提高Nand型快閃存儲(chǔ)器數(shù)據(jù)存取速度的方法,其特征在于步驟B中隨機(jī)存取存儲(chǔ)器在利用當(dāng)前區(qū)或欲操作區(qū)的關(guān)系對(duì)照表前,需要進(jìn)行所述關(guān) 系對(duì)照表的有效性確定;若確定無(wú)效,則通過(guò)讀取該對(duì)照表對(duì)應(yīng)操作區(qū)內(nèi)每個(gè)可用物理 塊的邏輯地址來(lái)重建并更新該對(duì)照表。
全文摘要
一種提高Nand型快閃存儲(chǔ)器數(shù)據(jù)存取速度的方法,包括步驟以區(qū)為單位建立該快閃存儲(chǔ)器各區(qū)的塊邏輯地址與物理地址關(guān)系對(duì)照表,并將所述關(guān)系對(duì)照表儲(chǔ)存在該快閃存儲(chǔ)器中;當(dāng)系統(tǒng)傳送一待查邏輯地址至隨機(jī)存取存儲(chǔ)器時(shí),該隨機(jī)存取存儲(chǔ)器利用當(dāng)前區(qū)或讀入相應(yīng)區(qū)的所述關(guān)系對(duì)照表來(lái)查得對(duì)應(yīng)的物理地址。使用本發(fā)明,可以盡可能少占用RAM資源的同時(shí)提高對(duì)Nand型閃存的數(shù)據(jù)存取速度,從而實(shí)現(xiàn)成本低,實(shí)用性強(qiáng)。
文檔編號(hào)G06F12/06GK101344867SQ20071007599
公開(kāi)日2009年1月14日 申請(qǐng)日期2007年7月13日 優(yōu)先權(quán)日2007年7月13日
發(fā)明者祝緒陽(yáng), 蔡華波, 鄧恩華 申請(qǐng)人:深圳市江波龍電子有限公司