欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

在非易失性存儲(chǔ)器系統(tǒng)中執(zhí)行塊高速緩沖存儲(chǔ)的方法和裝置的制作方法

文檔序號(hào):6420740閱讀:157來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):在非易失性存儲(chǔ)器系統(tǒng)中執(zhí)行塊高速緩沖存儲(chǔ)的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明要求享有在2002年10月28日提出的、美國(guó)臨時(shí)專(zhuān)利申請(qǐng)60/421910的優(yōu)先權(quán),該申請(qǐng)通過(guò)引用被全部包含在此。
相關(guān)申請(qǐng)的交叉引用本發(fā)明涉及共同待決的美國(guó)專(zhuān)利申請(qǐng)10/281739、10/281823、10/281823、10/281670、10/281824、10/281631、10/281855、10/281762、10/281696,10/281626和10/281804,以及共同待決的美國(guó)臨時(shí)專(zhuān)利申請(qǐng)60/421725、60/421965、60/422166,60/421746和60/421911,所述申請(qǐng)都是在2002年10月28日提出的,并且都通過(guò)引用被全部包含在此。
背景技術(shù)
1、發(fā)明領(lǐng)域本發(fā)明一般涉及大容量數(shù)字?jǐn)?shù)據(jù)存儲(chǔ)器系統(tǒng)。本發(fā)明尤其涉及這樣的系統(tǒng)和方法,其允許邏輯塊的邏輯頁(yè)面的更新內(nèi)容能夠在被寫(xiě)入相應(yīng)于邏輯塊的物理塊之前,被高速緩沖存儲(chǔ)。
2、相關(guān)技術(shù)描述由于非易失性存儲(chǔ)器系統(tǒng)的緊湊的物理尺寸以及能夠被反復(fù)改寫(xiě)的性能,使得諸如閃速存儲(chǔ)器系統(tǒng)(flash memory storage system)這樣的非易失性存儲(chǔ)器系統(tǒng)的使用日益普遍。閃速存儲(chǔ)器系統(tǒng)的緊湊的物理尺寸促進(jìn)了這種存儲(chǔ)器系統(tǒng)在日益變得流行的設(shè)備中的使用。使用閃速存儲(chǔ)器系統(tǒng)的設(shè)備包括(但不限制于)數(shù)碼相機(jī)、數(shù)字可攜式攝像機(jī)、數(shù)字音樂(lè)播放器、手持式個(gè)人電腦,以及全球定位裝置。對(duì)包括在閃速存儲(chǔ)器系統(tǒng)中的非易失性存儲(chǔ)器的反復(fù)改寫(xiě)的性能,使得閃速存儲(chǔ)器系統(tǒng)能夠被重復(fù)使用。
通常,閃速存儲(chǔ)器系統(tǒng)可包括閃速存儲(chǔ)器卡和閃速存儲(chǔ)器芯片組。閃速存儲(chǔ)器芯片組一般包括閃速存儲(chǔ)器部件和控制器部件。典型地,一個(gè)閃速存儲(chǔ)器芯片組可被布置安裝到一個(gè)內(nèi)置系統(tǒng)中。這種部件或主系統(tǒng)的制造商典型地以部件形式獲得閃速存儲(chǔ)器和其他部件,然后將閃速存儲(chǔ)器和其他部件裝配到一個(gè)主系統(tǒng)中。
閃速存儲(chǔ)器系統(tǒng)的邏輯塊被典型地映射到物理塊上。例如,一個(gè)包括32個(gè)邏輯頁(yè)的邏輯塊可被映射到一個(gè)包括32個(gè)物理頁(yè)的物理塊上。如果新的或更新的邏輯塊的數(shù)據(jù)將被寫(xiě)入物理塊,并且在此物理塊中沒(méi)有可用空間以容納該數(shù)據(jù),那么就典型地獲得一個(gè)備用物理塊。一旦得到備用物理塊,就將該新的或更新的數(shù)據(jù)與來(lái)自原物理塊的數(shù)據(jù)一起合并到該備用物理塊中。


圖1是一個(gè)具有更新內(nèi)容的邏輯塊和可被用來(lái)容納該更新內(nèi)容的物理塊的圖形表示。在時(shí)間t1時(shí),更新一個(gè)邏輯塊‘A’202,以便在邏輯塊‘A’202的第三邏輯頁(yè)204c中包括新的數(shù)據(jù)。如果物理塊‘A’212已被充滿(mǎn)到物理塊‘A’212容量的限度,那么第三邏輯頁(yè)204c的更新內(nèi)容將不能被寫(xiě)入物理塊‘A’212中,但是可以得到一個(gè)新的物理塊‘B’222。除第三物理頁(yè)214c的內(nèi)容之外,物理塊‘A’212的基本所有的物理頁(yè)214的內(nèi)容可連同第三邏輯頁(yè)204c的更新內(nèi)容一起被寫(xiě)入物理塊‘B’222中。結(jié)果,物理塊‘B’222含有了邏輯塊‘A’202在時(shí)間t1時(shí)的最當(dāng)前數(shù)據(jù)。一旦物理塊‘B’222被寫(xiě)入,邏輯塊202便被映射到物理塊‘B’222上,并且物理塊‘A’212被典型地擦除。下面將參照?qǐng)D2描述把更新內(nèi)容寫(xiě)到物理塊中的一個(gè)傳統(tǒng)過(guò)程。
在時(shí)間t2,把映射到物理塊‘B’222的邏輯塊‘A’202’更新,以便第一邏輯頁(yè)面204a’的內(nèi)容是新的或是更新的。由于物理塊‘B’222沒(méi)有空間或由于其他原因而不能被更新以包括第一邏輯頁(yè)204a’的內(nèi)容,可以獲得一個(gè)新的物理塊‘C’232。除第一物理頁(yè)224a的內(nèi)容之外,物理塊‘B’222的基本所有的物理頁(yè)224的內(nèi)容可連同第一邏輯頁(yè)204a’的更新內(nèi)容一起被寫(xiě)入物理塊‘C’232中,以便物理塊‘C’232就包含了邏輯塊‘A’202’在時(shí)間t2時(shí)的最當(dāng)前數(shù)據(jù)。在物理塊‘C’232被寫(xiě)入以及被映射到邏輯塊‘A’202’后,物理塊‘B’222通常被擦除。
參閱圖2,將描述把邏輯塊的頁(yè)面的更新內(nèi)容寫(xiě)入一個(gè)物理塊的一種方法的步驟。允許把邏輯塊的一個(gè)更新頁(yè)面寫(xiě)入到一個(gè)邏輯塊的過(guò)程250開(kāi)始于步驟254,其中一個(gè)邏輯塊‘A’的頁(yè)面,例如頁(yè)面‘X’被更新。邏輯塊‘A’的更新頁(yè)面 ‘X’典型地包括替換頁(yè)面‘X’的內(nèi)容。在步驟258中,一旦邏輯塊‘A’的頁(yè)面‘X’被更新,則將得到被映射到邏輯塊‘A’或其他與邏輯塊‘A’相關(guān)的一個(gè)新的物理塊‘B’。如果與邏輯塊‘A’當(dāng)前相關(guān)的物理塊沒(méi)有可用的空間將頁(yè)面‘X’的更新內(nèi)容寫(xiě)入,那么可得到新的邏輯塊‘B’。如本領(lǐng)域技術(shù)人員將意識(shí)到的那樣,新的邏輯塊‘B’可從一個(gè)備用存儲(chǔ)塊公用池中獲得。
在步驟262中,在獲得新的物理塊‘B’后,與邏輯塊‘A’當(dāng)前相關(guān)的邏輯塊‘A’的舊內(nèi)容連同邏輯塊‘A’的頁(yè)面‘X’更新內(nèi)容一起被合并到物理塊‘B’中。換一句話(huà)說(shuō),除邏輯塊‘A’的頁(yè)面‘X’的內(nèi)容之外,物理塊‘A’的基本所有的內(nèi)容連同邏輯塊‘A’的頁(yè)面‘X’的更新內(nèi)容一起被寫(xiě)入物理塊‘B’中。象這樣,物理塊‘B’含有了邏輯塊‘A’的最當(dāng)前內(nèi)容。
將內(nèi)容寫(xiě)入物理塊‘B’后,在步驟266中擦除物理塊‘A’并且在步驟270中解除其與邏輯塊‘A’的關(guān)聯(lián)。一旦物理塊‘A’被擦除并被解除了與邏輯塊‘A’的關(guān)聯(lián),那么物理塊‘A’典型地可用來(lái)作為一個(gè)備用塊,從而完成了使邏輯塊的一個(gè)更新頁(yè)面寫(xiě)入物理塊的過(guò)程。
典型地,向邏輯塊寫(xiě)入內(nèi)容以及擦除物理塊的內(nèi)容的過(guò)程是耗時(shí)的,并且可能消耗重要的計(jì)算資源。通常,每當(dāng)將要更新邏輯塊的邏輯頁(yè)時(shí),一個(gè)邏輯塊被寫(xiě)入的同時(shí)另一個(gè)物理塊被擦除。同樣地,如果有許多頁(yè)面要更新時(shí),則可以有大量持續(xù)的塊擦除、新塊獲得,以及新塊的寫(xiě)入。經(jīng)常地寫(xiě)入塊和擦除塊會(huì)導(dǎo)致存儲(chǔ)器系統(tǒng)的性能相對(duì)顯著的降低。
因此,需要一種能夠減少為響應(yīng)邏輯頁(yè)面的更新而發(fā)生的寫(xiě)和擦除處理的次數(shù)的方法和裝置。特別地,不需降低在物理塊域中執(zhí)行更新的性能,所期望的系統(tǒng)就允許顯著地減少相應(yīng)于邏輯塊域的更新而在物理塊域中執(zhí)行更新的寫(xiě)和擦除操作的數(shù)量。
發(fā)明簡(jiǎn)述本發(fā)明涉及一種用于高速緩沖存儲(chǔ)與邏輯塊相關(guān)的更新內(nèi)容或新的數(shù)據(jù)的系統(tǒng)和方法。根據(jù)本發(fā)明的一個(gè)方面,一種用于處理非易失性存儲(chǔ)器的塊的內(nèi)容的方法包括獲得第一邏輯塊的第一組邏輯頁(yè)面的第一組內(nèi)容,以及把該第一組內(nèi)容寫(xiě)入一個(gè)存儲(chǔ)器區(qū)域。然后將該第一組內(nèi)容從存儲(chǔ)器區(qū)域?qū)懭氲诙锢韷K的第一組物理頁(yè)面中,第二物理塊因此被映射到第一邏輯塊。在一個(gè)實(shí)施例中,該存儲(chǔ)器區(qū)域是RAM高速緩沖存儲(chǔ)器和物理塊高速緩沖存儲(chǔ)器中的一個(gè)。
在另一個(gè)實(shí)施例中,第一物理模塊包括第二組內(nèi)容,因此該方法包括把至少一些第二組內(nèi)容連同第一組內(nèi)容一起寫(xiě)入第二物理塊中。在這樣的實(shí)施例中,該第二組內(nèi)容可從第一物理塊中擦除,因此第一物理模塊可不被映射,或者說(shuō)基本解除與第一邏輯塊的關(guān)聯(lián)。
高速緩沖存儲(chǔ)邏輯塊的新的內(nèi)容使得該新的內(nèi)容能夠被臨時(shí)存儲(chǔ),直到該邏輯塊的所有新的內(nèi)容已被基本處理,所述內(nèi)容可以是更新的內(nèi)容。當(dāng)已經(jīng)把將要處理的所有新的內(nèi)容處理完時(shí),可以將至少一些新的內(nèi)容連同映射到該邏輯塊的原物理塊的所有適當(dāng)?shù)膬?nèi)容一起地復(fù)制,以便該邏輯塊的最新內(nèi)容被寫(xiě)入到一個(gè)新的物理塊中。通過(guò)使用一個(gè)高速緩沖存儲(chǔ)處理,通常會(huì)減少與邏輯模塊相關(guān)的更新或者新的增加的處理而出現(xiàn)的寫(xiě)操作以及讀操作的次數(shù)。因此,可以增強(qiáng)一個(gè)使用高速緩沖存儲(chǔ)處理的整體存儲(chǔ)器系統(tǒng)的性能。
根據(jù)本發(fā)明的另一個(gè)方面,一種用于在非易失性存儲(chǔ)器系統(tǒng)中處理第一邏輯塊的更新內(nèi)容的方法,包括接收第一邏輯塊的第一更新內(nèi)容,把第一更新內(nèi)容存儲(chǔ)到一個(gè)高速緩沖存儲(chǔ)器中,以及確定何時(shí)把該高速緩沖存儲(chǔ)器中的內(nèi)容存儲(chǔ)到第二物理塊。此方法也包括當(dāng)確定了要將該高速緩沖存儲(chǔ)器中的內(nèi)容存儲(chǔ)到第二物理塊時(shí),把包括第一更新內(nèi)容的該高速緩沖存儲(chǔ)器中的內(nèi)容存儲(chǔ)到第二物理塊。然后將第二物理塊映射到第一邏輯塊,并且在把該高速緩沖存儲(chǔ)器中的內(nèi)容存儲(chǔ)到了第二物理塊以后,可解除第一物理塊與第一邏輯塊之間的映射。
在一個(gè)實(shí)施例中,確定何時(shí)把該高速緩沖存儲(chǔ)器中的內(nèi)容存儲(chǔ)到第二物理塊的步驟包括確定何時(shí)將處理一個(gè)第二邏輯塊。當(dāng)確定了處理第二邏輯塊時(shí),把該高速緩沖存儲(chǔ)器中的內(nèi)容存儲(chǔ)到第二物理塊。在另一個(gè)實(shí)施例中,該高速緩沖存儲(chǔ)器中的內(nèi)容包括至少一些第一物理塊中的內(nèi)容。
在閱讀了隨后的詳細(xì)描述和研究了附圖的各種圖形之后,將會(huì)更加清楚本發(fā)明的這些以及其他的優(yōu)點(diǎn)。
附圖簡(jiǎn)述本發(fā)明可通過(guò)參考隨后的結(jié)合了附圖的描述來(lái)得到更好的理解,其中圖1是一個(gè)具有更新內(nèi)容的邏輯塊和可獲得的以容納該更新內(nèi)容的物理塊的示意圖。
圖2是一個(gè)說(shuō)明了一種把邏輯塊的頁(yè)面中的更新內(nèi)容寫(xiě)入物理塊的方法的步驟的處理流程圖。
圖3a是一個(gè)包括非易失性存儲(chǔ)器的通用主系統(tǒng)的示意圖。
圖3b是一個(gè)例如圖3a中的120存儲(chǔ)器裝置的示意圖。
圖3c是一個(gè)包括一個(gè)內(nèi)置非易失性存儲(chǔ)器的主系統(tǒng)的示意圖。
圖4a是依據(jù)本發(fā)明一個(gè)實(shí)施例的一個(gè)邏輯塊、一個(gè)物理塊,和一個(gè)RAM高速緩沖存儲(chǔ)器的示意圖,其中所述RAM高速緩沖存儲(chǔ)器被用來(lái)高速緩沖存儲(chǔ)邏輯塊的更新內(nèi)容。
圖4b是依據(jù)本發(fā)明一個(gè)實(shí)施例的一個(gè)邏輯塊、一個(gè)物理塊,和一個(gè)RAM高速緩沖存儲(chǔ)器,即,圖4a中的邏輯塊400、物理塊410,和RAM高速緩沖存儲(chǔ)器420的示意圖,其中RAM高速緩沖存儲(chǔ)器已經(jīng)高速緩沖存儲(chǔ)了若干邏輯塊的更新內(nèi)容。
圖4c是依據(jù)本發(fā)明一個(gè)實(shí)施例的,具有將要寫(xiě)入一個(gè)新的物理塊中的內(nèi)容的物理塊和RAM高速緩沖存儲(chǔ)器,也就是圖4b中的物理塊410和RAM高速緩沖存儲(chǔ)器420的示意圖。
圖5是一個(gè)說(shuō)明了一種依據(jù)本發(fā)明一個(gè)實(shí)施例,通過(guò)使用一個(gè)RAM高速緩沖存儲(chǔ)器來(lái)更新物理塊域中的一個(gè)頁(yè)面內(nèi)容的方法的步驟處理流程圖。
圖6a是依據(jù)本發(fā)明一個(gè)實(shí)施例的一個(gè)邏輯塊、一個(gè)物理塊,和一個(gè)用來(lái)高速緩沖存儲(chǔ)邏輯塊的更新內(nèi)容的物理塊高速緩沖存儲(chǔ)器的示意圖。
圖6b是依據(jù)本發(fā)明一個(gè)實(shí)施例的,具有將要合并到一個(gè)新的物理塊中的內(nèi)容的物理塊和物理塊高速緩沖存儲(chǔ)器,也就是圖6a中的物理塊610和物理塊高速緩沖存儲(chǔ)器612的示意圖。
圖7是一個(gè)說(shuō)明了一種依據(jù)本發(fā)明一個(gè)實(shí)施例的,通過(guò)使用一個(gè)物理塊高速緩沖存儲(chǔ)器來(lái)更新物理塊域中的一個(gè)頁(yè)面內(nèi)容的方法的處理流程圖。
圖8是一個(gè)依據(jù)本發(fā)明一個(gè)實(shí)施例的系統(tǒng)結(jié)構(gòu)的示意框圖。
圖9a是一個(gè)依據(jù)本發(fā)明一個(gè)實(shí)施例的被分成組的一個(gè)邏輯塊、一個(gè)物理塊,和一個(gè)新的物理塊的示意圖。
圖9b是一個(gè)依據(jù)本發(fā)明一個(gè)實(shí)施例的一個(gè)邏輯塊、一個(gè)物理塊,和一個(gè)新的物理塊,也就是圖9a中邏輯塊900、物理塊912,和新的物理塊928的示意圖,其中該新的物理塊928包括邏輯塊的最當(dāng)前的內(nèi)容。
圖9c是一個(gè)依據(jù)本發(fā)明一個(gè)實(shí)施例的一個(gè)邏輯塊和物理塊,也就是圖9b中的邏輯塊900和物理塊928,以及一個(gè)包括該邏輯塊的最當(dāng)前內(nèi)容的新的物理塊的示意圖。
圖9d是一個(gè)依據(jù)本發(fā)明一個(gè)實(shí)施例的一個(gè)被分成組的邏輯塊、一個(gè)包括該邏輯塊的更新內(nèi)容的物理塊,以及一個(gè)含有該邏輯塊的最當(dāng)前內(nèi)容的新的物理塊的示意圖。
圖10是一個(gè)依據(jù)本發(fā)明一個(gè)實(shí)施例的一個(gè)分組的原始數(shù)據(jù)、這個(gè)分組的新的或更新數(shù)據(jù),以及該原始數(shù)據(jù)和該新的或更新數(shù)據(jù)的合并的示意圖。
圖11a和11b是依據(jù)本發(fā)明一個(gè)實(shí)施例的處理流程圖,說(shuō)明了一個(gè)更新一個(gè)邏輯塊的內(nèi)容的方法的步驟,該邏輯塊是被分成組的。
圖12a是一個(gè)依據(jù)本發(fā)明一個(gè)實(shí)施例的一個(gè)RAM高速緩沖存儲(chǔ)器的示意圖,該RAM高速緩沖存儲(chǔ)器被有效地分成組以用于存儲(chǔ)一個(gè)被分成組的邏輯塊的更新內(nèi)容。
圖12b是一個(gè)依據(jù)本發(fā)明一個(gè)實(shí)施例的一個(gè)RAM高速緩沖存儲(chǔ)器,例如圖12a中RAM高速緩沖存儲(chǔ)器1228的示意圖,其中把相同邏輯組的重復(fù)的更新內(nèi)容存儲(chǔ)到相同的RAM組中。
圖12c是一個(gè)依據(jù)本發(fā)明一個(gè)實(shí)施例的一個(gè)邏輯塊,也就是圖12b中邏輯塊‘A’1200,以及一個(gè)新的物理塊的示意圖,該新的物理塊是一個(gè)已經(jīng)把RAM高速緩沖器和與邏輯塊相關(guān)的原物理塊的內(nèi)容,也就是圖12b中的RAM高速緩沖存儲(chǔ)器1228和物理塊‘B’1212的內(nèi)容合并到該物理塊后的物理塊。
圖12d是一個(gè)依據(jù)本發(fā)明一個(gè)實(shí)施例的一個(gè)邏輯塊、一個(gè)物理塊,和一個(gè)RAM高速緩沖器的示意圖,由于在該物理塊中沒(méi)有足夠的空間容納新的數(shù)據(jù),所以該RAM高速緩沖器中存有內(nèi)容。
圖13是一個(gè)說(shuō)明了依據(jù)本發(fā)明一個(gè)實(shí)施例的一種使用RAM高速緩沖存儲(chǔ)器存儲(chǔ)一個(gè)邏輯塊的邏輯組的更新內(nèi)容的方法的示意圖。
圖14a是一個(gè)依據(jù)本發(fā)明一個(gè)實(shí)施例的一個(gè)塊高速緩沖存儲(chǔ)器的示意圖,該塊高速緩沖存儲(chǔ)器被有效地分成多個(gè)組并且適合用于存儲(chǔ)被分成多個(gè)組的一個(gè)邏輯塊的更新內(nèi)容。
圖14b是一個(gè)依據(jù)本發(fā)明一個(gè)實(shí)施例的一個(gè)塊高速緩沖存儲(chǔ)器,諸如圖14a中塊高速緩沖存儲(chǔ)器1428的示意圖,其中存儲(chǔ)了相同邏輯組的更新內(nèi)容。
圖14c是一個(gè)依據(jù)本發(fā)明一個(gè)實(shí)施例的一個(gè)邏輯塊,也就是圖14b中的邏輯塊‘A’1400,以及一個(gè)新的物理塊的示意圖,該新的物理塊是一個(gè)已經(jīng)把該塊高速緩沖器和與邏輯塊相關(guān)的原物理塊的內(nèi)容,也就是圖14b中的塊高速緩沖存儲(chǔ)器1428和物理塊‘B’1412的內(nèi)容合并到該物理塊后的物理塊。
圖14d是一個(gè)依據(jù)本發(fā)明一個(gè)實(shí)施例的一個(gè)塊高速緩沖存儲(chǔ)器,諸如圖14c中的塊高速緩沖存儲(chǔ)器1428的示意圖,該高速緩沖存儲(chǔ)器包括可以存儲(chǔ)一個(gè)邏輯塊,也就是圖14c中的邏輯塊‘A’的更新內(nèi)容的無(wú)效組。
圖14e是一個(gè)依據(jù)本發(fā)明一個(gè)實(shí)施例的可以用來(lái)存儲(chǔ)一個(gè)邏輯塊,諸如圖14d中的邏輯塊‘A’1400的更新內(nèi)容的兩個(gè)塊高速緩沖存儲(chǔ)器的示意圖。
圖14f是一個(gè)依據(jù)本發(fā)明一個(gè)實(shí)施例的一個(gè)當(dāng)前塊高速緩沖存儲(chǔ)器,諸如圖14e中的當(dāng)前塊高速緩沖存儲(chǔ)器1464的示意圖,該當(dāng)前塊高速緩沖存儲(chǔ)器是在一個(gè)塊高速緩沖存儲(chǔ)器和一個(gè)物理塊的內(nèi)容,諸如圖14e中的塊高速緩沖存儲(chǔ)器1428和物理塊‘B’1412的內(nèi)容被合并到該當(dāng)前塊高速緩沖存儲(chǔ)器之后的高速緩沖存儲(chǔ)器。
圖15a和15b是一個(gè)說(shuō)明了依據(jù)本發(fā)明一個(gè)實(shí)施例的一種把更新內(nèi)容存儲(chǔ)到一個(gè)使用分組的塊高速緩沖存儲(chǔ)器中的方法的步驟的處理流程圖。
實(shí)施例的詳細(xì)描述寫(xiě)入物理塊和擦除物理塊的過(guò)程是相對(duì)耗時(shí)的,并且會(huì)耗費(fèi)重要的計(jì)算開(kāi)銷(xiāo)。同樣,當(dāng)相對(duì)地頻繁進(jìn)行寫(xiě)和擦除時(shí),將對(duì)包括該物理塊的一個(gè)系統(tǒng)的總性能產(chǎn)生不利影響。每當(dāng)更新一個(gè)邏輯塊的一個(gè)邏輯頁(yè)面時(shí),如果該邏輯頁(yè)面所映射的第一物理塊基本上滿(mǎn)了,則把該更新內(nèi)容以及該第一物理塊的一些內(nèi)容寫(xiě)入一個(gè)新的物理塊,同時(shí)擦除所述第一物理塊。當(dāng)該邏輯塊有多個(gè)頁(yè)面被更新時(shí),就會(huì)有基本上持續(xù)的對(duì)物理塊的擦除,新的物理塊的獲得,以及把數(shù)據(jù)寫(xiě)入該新的物理塊。當(dāng)顯著地經(jīng)常寫(xiě)或擦除物理塊時(shí),就會(huì)降低包括所述塊的一個(gè)存儲(chǔ)器系統(tǒng)的性能。
在經(jīng)常更新單個(gè)邏輯塊中的邏輯頁(yè)面的情況下,會(huì)花費(fèi)大量的時(shí)間和開(kāi)銷(xiāo)進(jìn)行對(duì)與該邏輯塊相關(guān)的物理塊的寫(xiě)和擦除操作。特別地,如果重復(fù)地更新一個(gè)邏輯塊中的單個(gè)邏輯頁(yè)面,由于會(huì)重復(fù)地改寫(xiě)物理塊域中的更新內(nèi)容,因此當(dāng)“邏輯塊域”經(jīng)常改變時(shí),因該邏輯頁(yè)面的每次更新而在物理塊域中執(zhí)行更新是極其浪費(fèi)的。等到基本上暫時(shí)完成了一個(gè)邏輯塊的所有更新后再更新一個(gè)物理塊,這樣能夠減少進(jìn)行寫(xiě)和擦除操作的數(shù)量。因此,會(huì)改善一個(gè)存儲(chǔ)器系統(tǒng)的性能。
對(duì)高速緩沖存儲(chǔ)一個(gè)邏輯塊的更新內(nèi)容或者一個(gè)邏輯塊的新內(nèi)容使用高速緩沖存儲(chǔ)處理,使得這些更新內(nèi)容能夠被臨時(shí)存儲(chǔ),直到基本上暫時(shí)完成了對(duì)該邏輯塊的所有的更新或者對(duì)該邏輯塊添加新的內(nèi)容。一旦有效地知道沒(méi)有再對(duì)該邏輯塊做出更新或者添加新的數(shù)據(jù),至少直到處理其他的邏輯塊之后,或者當(dāng)該高速緩沖存儲(chǔ)器滿(mǎn)了時(shí),則會(huì)復(fù)制一個(gè)該邏輯塊所映射的原物理塊的任何適當(dāng)?shù)膬?nèi)容以及至少一些高速緩沖存儲(chǔ)的更新內(nèi)容以及新的數(shù)據(jù),以便將該邏輯塊的最當(dāng)前內(nèi)容寫(xiě)入了一個(gè)新的物理塊。當(dāng)該新的物理塊已經(jīng)被寫(xiě)入時(shí),該原物理塊會(huì)被擦除。結(jié)果,可以減少處理若干更新或者新的添加的寫(xiě)操作和讀操作的次數(shù)。在這里以及以后,為了便于討論,更新內(nèi)容一般將包含新的內(nèi)容。同樣,更新塊的內(nèi)容一般包含向該塊中添加新的內(nèi)容。
當(dāng)一個(gè)系統(tǒng)的軟件需求可用諸如隨機(jī)存取存儲(chǔ)器(RAM)的存儲(chǔ)器時(shí),高速緩沖存儲(chǔ)器可以是一個(gè)RA高速緩沖存儲(chǔ)器。典型地,使用一個(gè)RAM高速緩沖存儲(chǔ)器能夠進(jìn)行高效率地寫(xiě)處理。然而,在一個(gè)實(shí)施例中,如果沒(méi)有足夠數(shù)量的RAM可用,那么高速緩沖存儲(chǔ)器可以是一個(gè)塊高速緩沖存儲(chǔ)器。更確切地說(shuō),高速緩沖存儲(chǔ)器可以是一個(gè)物理塊。
一般地說(shuō),閃速存儲(chǔ)器系統(tǒng)或者非易失性存儲(chǔ)裝置可得益于一個(gè)RAM或者一個(gè)塊高速緩沖存儲(chǔ)器的使用,以便在把所更新的數(shù)據(jù)寫(xiě)入一個(gè)物理塊之前,臨時(shí)高速緩沖存儲(chǔ)所更新的數(shù)據(jù)。典型地,閃速存儲(chǔ)器系統(tǒng)和一個(gè)主系統(tǒng)一起使用,這樣該主系統(tǒng)可以把數(shù)據(jù)寫(xiě)入該閃速存儲(chǔ)器系統(tǒng)以及從該閃速存儲(chǔ)器中讀取數(shù)據(jù)。然而,如下面圖3c將描述的那樣,一些閃速存儲(chǔ)器系統(tǒng)包括內(nèi)置閃速存儲(chǔ)器系統(tǒng)和在一個(gè)主機(jī)上運(yùn)行的實(shí)質(zhì)充當(dāng)該內(nèi)置閃速存儲(chǔ)器系統(tǒng)的控制器的軟件。請(qǐng)參閱圖3a,將描述一個(gè)通用主系統(tǒng),其包括一個(gè)非易失性存儲(chǔ)器裝置,例如一個(gè)壓縮閃存卡(CompactFlash memory card)。一個(gè)主機(jī)或計(jì)算機(jī)系統(tǒng)100一般包括一個(gè)系統(tǒng)總線(xiàn)104,其允許在一個(gè)微處理器108、一個(gè)隨機(jī)存取存儲(chǔ)器(RAM)112,和輸入/輸出電路16之間進(jìn)行通信。應(yīng)該意識(shí)到的是,主系統(tǒng)100一般可以包括其他的部件,例如顯示裝置和連網(wǎng)裝置,為了說(shuō)明的目的沒(méi)有示出。
通常,主系統(tǒng)100可以能夠捕獲信息,其包括但不限制于靜態(tài)圖像信息、音頻信息,和視頻圖像信息。這樣的信息可被實(shí)時(shí)的捕獲,并且可以無(wú)線(xiàn)方式被傳送到主系統(tǒng)100。雖然主系統(tǒng)100實(shí)質(zhì)上可以是任何系統(tǒng),但典型地,主系統(tǒng)100是一個(gè)諸如數(shù)碼相機(jī)、攝像機(jī)、蜂窩通信裝置、音頻播放器,或視頻播放器。然而,應(yīng)意識(shí)到的是主系統(tǒng)100一般可以是存儲(chǔ)數(shù)據(jù)或信息,并且再現(xiàn)數(shù)據(jù)和信息的任何系統(tǒng)。
主系統(tǒng)100也可以是一個(gè)只捕獲數(shù)據(jù),或者只再現(xiàn)數(shù)據(jù)的系統(tǒng)。更確卻地說(shuō),在一個(gè)實(shí)施例中,主系統(tǒng)100可以是一個(gè)存儲(chǔ)數(shù)據(jù)的專(zhuān)用系統(tǒng),或者是一個(gè)讀出數(shù)據(jù)的專(zhuān)用系統(tǒng)。例如,主系統(tǒng)100可以是一個(gè)存儲(chǔ)器寫(xiě)入器,用來(lái)只寫(xiě)或存儲(chǔ)數(shù)據(jù)。可選地,主系統(tǒng)100可以是一個(gè)諸如MP3播放器的裝置,其中所述MP3播放器典型地用來(lái)讀取或再現(xiàn)數(shù)據(jù),但并不捕獲數(shù)據(jù)。
在一個(gè)實(shí)施例中,布置一個(gè)非易失性存儲(chǔ)器裝置120與總線(xiàn)104連接以存儲(chǔ)信息,該非易失性存儲(chǔ)器裝置120是一個(gè)可移動(dòng)的非易失性存儲(chǔ)器裝置。一個(gè)可選的接口塊130可使非易失性存儲(chǔ)器裝置120與總線(xiàn)104直接相連。到目前如本領(lǐng)域技術(shù)人員所理解的,輸入/輸出電路塊116用于減少總線(xiàn)104上的負(fù)載。非易失性存儲(chǔ)器裝置120包括一個(gè)非易失性存儲(chǔ)器124和一個(gè)可選的存儲(chǔ)器控制系統(tǒng)128。在一個(gè)實(shí)施例中,可在一個(gè)單芯片或一個(gè)電路小片(die)上實(shí)現(xiàn)非易失性存儲(chǔ)器裝置??蛇x的,可在一個(gè)多芯片模塊上實(shí)現(xiàn)非易失性存儲(chǔ)器裝置,或在多個(gè)分離的元件上實(shí)現(xiàn)非易失性存儲(chǔ)器裝置,該多個(gè)分離的元件可構(gòu)成一個(gè)芯片組,并且可以一起用作非易失性存儲(chǔ)器裝置120。非易失性存儲(chǔ)器裝置120的一個(gè)實(shí)施例將在下面通過(guò)圖3b來(lái)詳細(xì)的描述。
布置非易失性存儲(chǔ)器124,諸如象NAND閃速存儲(chǔ)器這樣的閃速存儲(chǔ)器來(lái)存儲(chǔ)數(shù)據(jù),這樣可以按需要來(lái)訪(fǎng)問(wèn)和讀取數(shù)據(jù)。雖然應(yīng)明白非易失性存儲(chǔ)器124中的一些數(shù)據(jù)是不可擦除的,但是存儲(chǔ)在非易失性存儲(chǔ)器中的適當(dāng)?shù)臄?shù)據(jù)也可以被擦除。存儲(chǔ)數(shù)據(jù)、讀取數(shù)據(jù)和擦除數(shù)據(jù)的處理一般由存儲(chǔ)器控制系統(tǒng)128控制,或者當(dāng)不存在存儲(chǔ)器控制系統(tǒng)128時(shí),由微處理器108所執(zhí)行的軟件來(lái)控制??蓪?duì)非易失性存儲(chǔ)器124的操作進(jìn)行管理,通過(guò)使非易失性存儲(chǔ)器124的各部分基本均勻地磨損,如此可充分地延長(zhǎng)非易失性存儲(chǔ)器的使用期限。
非易失性存儲(chǔ)器裝置120一般被描述為包括一個(gè)可選存儲(chǔ)器控制系統(tǒng)128,也就是控制器。通常,非易失性存儲(chǔ)器裝置120可以包括單獨(dú)的非易失性存儲(chǔ)器124的芯片功能,和存儲(chǔ)器控制系統(tǒng)128,也就是控制器的功能。例如,雖然包括但不限制于PC卡、壓縮閃存卡、多媒體卡和保密數(shù)字卡(Secure Digital card)的非易失性存儲(chǔ)器裝置包括在一個(gè)獨(dú)立芯片上實(shí)現(xiàn)的控制器,但是其他的非易失性存儲(chǔ)器裝置可不包括在一個(gè)獨(dú)立芯片上實(shí)現(xiàn)的控制器。在一個(gè)實(shí)施例中,非易失性存儲(chǔ)器裝置120不包括獨(dú)立的存儲(chǔ)器和控制器芯片,如本領(lǐng)域技術(shù)人員所意識(shí)到的,該存儲(chǔ)器和控制器的功能被合并到一個(gè)芯片中??蛇x的,如上所述,在非易失性存儲(chǔ)器裝置120沒(méi)有包括存儲(chǔ)器控制128的實(shí)施例中,可由微處理器108提供存儲(chǔ)器控制系統(tǒng)128的功能。
請(qǐng)參閱圖3b,將更加詳細(xì)地描述依據(jù)本發(fā)明一個(gè)實(shí)施例的非易失性存儲(chǔ)器裝置120。如上所述,非易失性存儲(chǔ)器裝置120包括非易失性存儲(chǔ)器124,并且或許包括存儲(chǔ)器控制系統(tǒng)128。在一個(gè)實(shí)施例中,即使在存儲(chǔ)器124是一個(gè)內(nèi)置NAND裝置時(shí),存儲(chǔ)器124和控制系統(tǒng)128(或者控制器)可以是非易失性存儲(chǔ)器裝置120的基本部件,例如非易失性存儲(chǔ)器裝置120可不包括控制系統(tǒng)128。存儲(chǔ)器124可以是構(gòu)成在一個(gè)半導(dǎo)體襯底上的存儲(chǔ)器單元的一個(gè)陣列,其中通過(guò)存儲(chǔ)在該存儲(chǔ)器單元的單獨(dú)的存儲(chǔ)元件上的電荷的兩個(gè)或更多個(gè)中的一個(gè)電平,把存儲(chǔ)數(shù)據(jù)的一個(gè)或更多位存儲(chǔ)在單獨(dú)的存儲(chǔ)器單元中。一種非易失性的快速的電可擦除可編程只讀存儲(chǔ)器(EEPROM)是這種系統(tǒng)的存儲(chǔ)器的一種普通類(lèi)型的例子。
在當(dāng)前非易失性存儲(chǔ)器裝置120,控制系統(tǒng)128之中經(jīng)由一個(gè)總線(xiàn)15與一個(gè)主計(jì)算機(jī)或者使用該存儲(chǔ)器系統(tǒng)存儲(chǔ)數(shù)據(jù)的其他系統(tǒng)通信??偩€(xiàn)15一般是圖3a中總線(xiàn)104的一部分??刂葡到y(tǒng)128也控制可以包括一個(gè)存儲(chǔ)器單元陣列11的存儲(chǔ)器124的操作,以便寫(xiě)入由該主計(jì)算機(jī)提供的數(shù)據(jù)、讀取該主計(jì)算機(jī)系統(tǒng)所需要的數(shù)據(jù),以及執(zhí)行各種在工作存儲(chǔ)器124中的內(nèi)務(wù)處理功能??刂葡到y(tǒng)128一般包括一個(gè)通用微處理器,其已經(jīng)結(jié)合了非易失性軟件存儲(chǔ)器,各種邏輯電路等等??砂ㄒ粋€(gè)或多個(gè)狀態(tài)機(jī)用于控制具體程序的執(zhí)行。
在一個(gè)實(shí)施例中,存儲(chǔ)器單元陣列11可由控制系統(tǒng)128或者微處理器108通過(guò)地址解碼器17來(lái)尋址。在這樣的實(shí)施例中,解碼器17將正確的電壓加到陣列11的邏輯門(mén)和位線(xiàn),以便在由控制系統(tǒng)128尋址的存儲(chǔ)器單元的一組中編寫(xiě)數(shù)據(jù)、讀取數(shù)據(jù),或者擦除。附加電路19可包括控制加到該陣列的元件上的電壓的編寫(xiě)驅(qū)動(dòng)器,該陣列依賴(lài)于被編寫(xiě)入單元的一個(gè)已尋址組中的數(shù)據(jù)。電路19也可以包括讀出放大器和其他的從存儲(chǔ)器單元的一個(gè)已尋址組中讀取數(shù)據(jù)所需要的其他電路。盡管數(shù)據(jù)可替換存儲(chǔ)在其他的高速緩沖存儲(chǔ)器(未示出)中但是可以把將被編寫(xiě)進(jìn)陣列11中的數(shù)據(jù),或者當(dāng)前從陣列11中讀取的數(shù)據(jù)存儲(chǔ)在控制系統(tǒng)128的一個(gè)高速緩沖存儲(chǔ)器21中。控制系統(tǒng)128也可以包含各種臨時(shí)存儲(chǔ)命令和狀態(tài)數(shù)據(jù)的寄存器等等。
通常把陣列11劃分成大量的塊0-N存儲(chǔ)單元。如常見(jiàn)的快速的EEPROM那樣,每個(gè)塊可以是擦除的最小單元。也就是說(shuō),可以把每個(gè)塊布置為含有最小數(shù)目的將被一起擦除的存儲(chǔ)器單元。每個(gè)塊被典型地分成許多頁(yè)面。如本領(lǐng)域技術(shù)人員所意識(shí)到的那樣,可將頁(yè)面看作是最小的編寫(xiě)單元。也就是說(shuō),一個(gè)基礎(chǔ)的編寫(xiě)操作可將數(shù)據(jù)寫(xiě)入一個(gè)最小的存儲(chǔ)單元的頁(yè)面或者從中讀取數(shù)據(jù)。數(shù)據(jù)的一個(gè)或多個(gè)扇區(qū)可被存儲(chǔ)在每個(gè)頁(yè)面中。如圖3b所示,一個(gè)扇區(qū)包括用戶(hù)數(shù)據(jù)和附加數(shù)據(jù)(overhead data)。附加數(shù)據(jù)典型地包括糾錯(cuò)碼(ECC),其已經(jīng)從該扇區(qū)的用戶(hù)數(shù)據(jù)中計(jì)算出。當(dāng)把數(shù)據(jù)編寫(xiě)進(jìn)陣列11時(shí),控制系統(tǒng)15的一個(gè)部分23計(jì)算該ECC,以及當(dāng)從陣列11中讀取數(shù)據(jù)時(shí)該部分也檢查ECC。可選地,與該ECC所屬的用戶(hù)數(shù)據(jù)相比較,該ECC被存儲(chǔ)在不同的頁(yè)面或者不同的塊中。
用戶(hù)數(shù)據(jù)的一個(gè)扇區(qū)典型地為521個(gè)字節(jié),其等于在磁盤(pán)驅(qū)動(dòng)器中的一個(gè)扇區(qū)的大小。雖然應(yīng)明白的是附加數(shù)據(jù)一般可包括任何數(shù)目的字節(jié),但是在這里附加數(shù)據(jù)典型地為一個(gè)附加的16個(gè)字節(jié)。最常見(jiàn)的,一個(gè)數(shù)據(jù)扇區(qū)被包含在每個(gè)頁(yè)面中,但是兩個(gè)或更多的扇區(qū)可代替地構(gòu)成一個(gè)頁(yè)面。任何數(shù)目的頁(yè)面一般可構(gòu)成一個(gè)塊。例如,一個(gè)塊可由8個(gè)頁(yè)面直到512個(gè),1024個(gè)或更多個(gè)的頁(yè)面構(gòu)成。通常是為了給存儲(chǔ)器系統(tǒng)提供一個(gè)所期望的數(shù)據(jù)存儲(chǔ)容量而選擇塊的數(shù)目。典型地,把陣列11分成幾個(gè)子陣列(未示出),其中每個(gè)子陣列都包含該塊的一個(gè)部分,它們彼此稍微獨(dú)立地操作以提高并行執(zhí)行存儲(chǔ)器操作的程度。使用多子陣列的例子描述在美國(guó)專(zhuān)利申請(qǐng)5890192中,通過(guò)引用被全部包含在此。
在一個(gè)實(shí)施例中,把非易失性存儲(chǔ)器內(nèi)置在一個(gè)系統(tǒng)中,例如一個(gè)主系統(tǒng)中。圖3c是一個(gè)包括一個(gè)內(nèi)置非易失性存儲(chǔ)器的主系統(tǒng)的示意圖。一個(gè)主機(jī)或計(jì)算機(jī)系統(tǒng)150一般包括一個(gè)系統(tǒng)總線(xiàn)154,其允許在一個(gè)微處理器158、一個(gè)RAM162,和輸入/輸出電路166,以及主系統(tǒng)150的其他部件之間進(jìn)行通信。一個(gè)非易失性存儲(chǔ)器174,例如一個(gè)閃速存儲(chǔ)器允許將信息存儲(chǔ)在主系統(tǒng)150中??稍诜且资源鎯?chǔ)器174和總線(xiàn)154之間提供接口180,以便能夠在非易失性存儲(chǔ)器174中寫(xiě)入和讀取信息。
非易失性存儲(chǔ)器174可由微處理器158管理,該微處理器158有效地運(yùn)行所布置的以控制非易失性存儲(chǔ)器174的硬件和軟件中的一個(gè)或者兩者。也就是說(shuō),微處理器158可運(yùn)行準(zhǔn)許控制非易失性存儲(chǔ)器的代碼裝置(未示出),即軟件代碼裝置或者硬件代碼裝置。將在下面描述的這樣的代碼裝置可以是與CPU一起封裝在微處理器158內(nèi)部的一個(gè)閃速存儲(chǔ)器,一個(gè)獨(dú)立的快擦除ROM或者在非易失性存儲(chǔ)器174中,該代碼裝置使得在非易失性存儲(chǔ)器中的物理塊能夠被尋址,并且使得在該物理塊中能夠存入、讀出,以及擦除信息。
當(dāng)收到一個(gè)邏輯塊的新的或更新的數(shù)據(jù)時(shí),可把數(shù)據(jù)臨時(shí)高速緩沖存儲(chǔ)到一個(gè)RAM高速緩沖存儲(chǔ)器中,例如直到已經(jīng)基本上完成了該邏輯塊的更新以及將處理一個(gè)不同的邏輯塊。圖4a是一個(gè)依據(jù)本發(fā)明一個(gè)實(shí)施例的一個(gè)邏輯塊、一個(gè)物理塊,以及一個(gè)所布置的以高速緩沖存儲(chǔ)該邏輯塊的更新內(nèi)容的RAM高速緩沖存儲(chǔ)器的示意圖。位于一個(gè)非易失性存儲(chǔ)器部件,諸如一個(gè)NAND閃速存儲(chǔ)器部件中的一個(gè)物理塊‘A’410映射到邏輯塊‘A’400上。在所描述的實(shí)施例中,物理塊‘A’410基本上滿(mǎn)了并且因此不能再接受邏輯塊‘A’400的更新內(nèi)容的或新的內(nèi)容。同樣地,在更新邏輯塊‘A’400的一個(gè)邏輯頁(yè)面‘A’402的內(nèi)容時(shí),不把更新的內(nèi)容406存儲(chǔ)到物理塊‘A’410中。而是在物理塊‘A’410的當(dāng)前內(nèi)容被拷入或者高速緩沖存儲(chǔ)到RAM高速緩沖存儲(chǔ)器420中之后,把更新的內(nèi)容406臨時(shí)存入或?qū)懭?,即高速緩沖存儲(chǔ)到一個(gè)RAM高速緩沖存儲(chǔ)器中。
應(yīng)當(dāng)意識(shí)到的是,把更新的內(nèi)容406寫(xiě)入RAM高速緩沖存儲(chǔ)器420可以包括重寫(xiě)包含在RAM高速緩沖存儲(chǔ)器420中的較舊的內(nèi)容。例如,更新內(nèi)容406可以重寫(xiě)先前存儲(chǔ)在RAM高速緩沖存儲(chǔ)器420中的舊數(shù)據(jù)內(nèi)容。在一個(gè)實(shí)施例中,當(dāng)RAM高速緩沖存儲(chǔ)器可定位于整個(gè)存儲(chǔ)器系統(tǒng)中的任一位置時(shí),因此RAM高速緩沖存儲(chǔ)器420可結(jié)合一個(gè)有效地控制一個(gè)非易失性存儲(chǔ)器部件和物理塊‘A’410的控制器。
當(dāng)將要更新其他任何邏輯塊(未示出)之前而對(duì)邏輯塊‘A’400進(jìn)行連續(xù)的更新時(shí),那么也把該連續(xù)的更新內(nèi)容存儲(chǔ)到RAM高速緩沖存儲(chǔ)器420中。圖4b所示,當(dāng)邏輯塊‘A’400的頁(yè)面402e存在更新的內(nèi)容426時(shí),可把更新的內(nèi)容426高速緩沖存儲(chǔ)至RAM高速緩沖存儲(chǔ)器420中的任何適當(dāng)?shù)奈恢???砂迅聝?nèi)容基本連續(xù)地存儲(chǔ)到RAM高速緩沖存儲(chǔ)器420中,直到完成了邏輯塊‘A’400的一個(gè)當(dāng)前組的更新。在一個(gè)實(shí)施例中,邏輯塊‘A’的當(dāng)前組的更新可以是邏輯塊‘A’400的全部更新,該組內(nèi)容是在處理一個(gè)不同邏輯塊(未示出)的更新之前被處理的。
當(dāng)已經(jīng)把邏輯塊‘A’400的當(dāng)前組的更新內(nèi)容高速緩沖存儲(chǔ)在RAM高速緩沖存儲(chǔ)器420中時(shí),接著可把臨時(shí)存儲(chǔ)在RAM高速緩沖存儲(chǔ)器420中的更新內(nèi)容,例如更新內(nèi)容406、426寫(xiě)入或相反拷入一個(gè)新的物理塊中。圖4c是依據(jù)本發(fā)明一個(gè)實(shí)施例的,具有將要寫(xiě)入一個(gè)新的物理塊中的內(nèi)容的物理塊和RAM高速緩沖存儲(chǔ)器,也就是圖4b中的物理塊410和RAM高速緩沖存儲(chǔ)器420的示意圖。一旦把基本上所有的當(dāng)前更新內(nèi)容存儲(chǔ)到RAM高速緩沖存儲(chǔ)器420中,則可以獲得一個(gè)新的物理塊‘B’440并且將其映射到邏輯塊‘A’400。
通常,把邏輯塊‘A’400的最當(dāng)前的或者最新的內(nèi)容寫(xiě)入物理塊‘B’440中。邏輯塊‘A’400的最當(dāng)前的內(nèi)容基本包含在RAM高速緩沖存儲(chǔ)器420中。因此,把RAM高速緩沖存儲(chǔ)器420的內(nèi)容拷入物理塊‘B’440中,這使得物理塊‘B’440能夠?qū)嵸|(zhì)上為在物理塊域中的邏輯塊‘A’400的一個(gè)版本。當(dāng)物理塊‘B’440基本上包含了邏輯塊‘A’440的所有當(dāng)前信息時(shí),可擦除邏輯塊‘A’以及使其與邏輯塊‘A’解除關(guān)聯(lián)或者解除映射。結(jié)果,邏輯塊‘A’典型地只映射任何給定時(shí)間的單個(gè)物理塊。因此,有效地節(jié)省了在一個(gè)系統(tǒng)中的物理塊的使用,在把邏輯塊‘B’與邏輯塊‘A’相關(guān)聯(lián)的同時(shí),物理塊‘A’410與邏輯塊‘A’解除關(guān)聯(lián),并且可返回到一個(gè)備用塊池中。
接下來(lái)請(qǐng)參閱圖5,描述了依據(jù)本發(fā)明一個(gè)實(shí)施例的使用一個(gè)RAM高速緩沖存儲(chǔ)器來(lái)更新物理塊域中的一個(gè)頁(yè)面內(nèi)容的方法的步驟。使用一個(gè)RAM高速緩沖存儲(chǔ)器來(lái)臨時(shí)存儲(chǔ)頁(yè)面更新內(nèi)容的處理過(guò)程500,開(kāi)始于步驟504,在該步驟中一個(gè)主機(jī)開(kāi)始處理一個(gè)邏輯塊‘A’。當(dāng)主機(jī)處理包含在邏輯塊‘A’中的一個(gè)頁(yè)面的更新時(shí),該主機(jī),例如與一個(gè)非易失性存儲(chǔ)器連接的系統(tǒng)或者內(nèi)置有一個(gè)非易失性存儲(chǔ)器的系統(tǒng),可以開(kāi)始處理邏輯塊‘A’。
當(dāng)在一個(gè)與邏輯塊‘A’相關(guān)聯(lián)的物理塊‘A’中基本沒(méi)有可用的空間時(shí),物理塊‘A’不能有效地存儲(chǔ)更新內(nèi)容。因此,在把該更新內(nèi)容存儲(chǔ)到一個(gè)新的物理塊之前,可使用一個(gè)RAM高速緩沖存儲(chǔ)器來(lái)高速緩沖存儲(chǔ)更新內(nèi)容。處理流程從步驟504進(jìn)行到步驟505,在步驟505中獲得一個(gè)新的物理塊‘B’。獲得新的物理塊‘B’,例如從一組備用塊中獲得,以將其映射到邏輯塊‘A’或與之相關(guān)聯(lián)。在步驟506中,物理塊‘A’的基本上所有的內(nèi)容可被高速緩沖存儲(chǔ)到或者寫(xiě)入一個(gè)RAM高速緩沖存儲(chǔ)器中。在步驟508中,例如通過(guò)一個(gè)控制器把包含在邏輯塊‘A’中的一個(gè)頁(yè)面的更新內(nèi)容存儲(chǔ)到訪(fǎng)RAM高速緩沖存儲(chǔ)器中。一般地,更新內(nèi)容可包括更新的數(shù)據(jù)或新的數(shù)據(jù),并且該更新內(nèi)容可導(dǎo)致邏輯塊‘A’的數(shù)據(jù)在該RAM高速緩沖存儲(chǔ)器中被重寫(xiě)。如上對(duì)于圖4a-c的描述,該RAM高速緩沖存儲(chǔ)器是RAM或類(lèi)似的存儲(chǔ)器,其可用以臨時(shí)存儲(chǔ)更新的數(shù)據(jù)。一旦把該邏輯頁(yè)面的更新內(nèi)容存儲(chǔ)到該RAM高速緩沖存儲(chǔ)器中,在步驟512中對(duì)主機(jī)是否準(zhǔn)備對(duì)一個(gè)例如邏輯塊‘B’的不同的邏輯塊開(kāi)始進(jìn)行處理作出判定。換句話(huà)說(shuō),在處理另一個(gè)邏輯塊之前,判定邏輯塊‘A’是否還存在需要存儲(chǔ)到該RAM高速緩沖存儲(chǔ)器中的更新內(nèi)容。
如果在步驟512的判定為不是開(kāi)始處理邏輯塊‘B’的時(shí)機(jī),則表明邏輯塊‘A’還有更多的更新內(nèi)容。因此,處理流程返回到把邏輯塊‘A’的一個(gè)更新內(nèi)容存儲(chǔ)到該RAM高速緩沖存儲(chǔ)器的步驟508。可選的,如果判定了是開(kāi)始處理一個(gè)不同的邏輯塊的有效時(shí)機(jī),則在步驟518中把該RAM高速緩沖存儲(chǔ)器的內(nèi)容寫(xiě)入物理塊‘B’中,這樣就將邏輯塊‘A’的最當(dāng)前的內(nèi)容存入或?qū)懭肓宋锢韷K‘B’中。
一旦把信息存入了物理塊‘B’中,就在步驟524中將物理塊‘A’擦除。應(yīng)當(dāng)意識(shí)到的是在把該RAM高速緩沖存儲(chǔ)器的內(nèi)容合并到物理塊‘B’中之后,典型地不必擦除該RAM高速緩沖存儲(chǔ)器,這是因?yàn)榇鎯?chǔ)在RAM高速緩沖存儲(chǔ)器中的信息可以被重寫(xiě)。典型地,當(dāng)把另一個(gè)物理塊的內(nèi)容存入該RAM高速緩沖存儲(chǔ)器時(shí),該RAM高速緩沖存儲(chǔ)器的先前的內(nèi)容被改寫(xiě)。然而在一個(gè)實(shí)施例中,一旦把該RAM高速緩沖存儲(chǔ)器的內(nèi)容合并到物理塊‘B’,則可以擦除該RAM高速緩沖存儲(chǔ)器。
在步驟524中擦除了物理塊‘A’之后,在步驟528中物理塊‘A’與邏輯塊‘A’解除關(guān)聯(lián)。物理塊‘A’與邏輯塊‘A’的解除關(guān)聯(lián)可以包括更新映射,以表示邏輯塊‘A’與物理塊‘B’相關(guān)聯(lián)。在解除了物理塊和邏輯塊的關(guān)聯(lián),也就結(jié)束了使用一個(gè)RAM高速緩沖存儲(chǔ)器以臨時(shí)存儲(chǔ)一個(gè)邏輯塊的頁(yè)面更新的過(guò)程。
盡管在把更新內(nèi)容寫(xiě)入一個(gè)物理塊之前使用一個(gè)RAM高速緩沖存儲(chǔ)器臨時(shí)存儲(chǔ)一個(gè)邏輯塊的更新內(nèi)容是有效的,但是一個(gè)存儲(chǔ)器系統(tǒng)不會(huì)總是具有可用的RAM用作一個(gè)RAM高速緩沖存儲(chǔ)器。典型地,一個(gè)RAM高速緩沖存儲(chǔ)器具有能夠充分容納一個(gè)塊的所有內(nèi)容的容量。同樣地,一個(gè)RAM高速緩沖存儲(chǔ)器的容量可以改變,其依賴(lài)于一個(gè)系統(tǒng)中物理塊的容量。例如,如果一個(gè)系統(tǒng)中的一個(gè)物理塊一般包括大約32個(gè)頁(yè)面,則該RAM高速緩沖存儲(chǔ)器可以具有至少足夠大到容納一個(gè)塊的大約32個(gè)頁(yè)面的內(nèi)容的容量。如果軟件需求不可用一個(gè)適當(dāng)容量以容納一個(gè)物理塊的RAM高速緩沖存儲(chǔ)器,則可以在把信息寫(xiě)入一個(gè)與邏輯塊相關(guān)聯(lián)的物理塊之前,使用一個(gè)實(shí)際的物理塊來(lái)代替臨時(shí)保存信息。換句話(huà)說(shuō),可以用一個(gè)物理塊來(lái)代替地實(shí)現(xiàn)高速緩沖存儲(chǔ)塊,其優(yōu)于用一個(gè)RAM高速緩沖存儲(chǔ)器來(lái)實(shí)現(xiàn)的“高速緩沖存儲(chǔ)塊”。
圖6a是依據(jù)本發(fā)明一個(gè)實(shí)施例的一個(gè)邏輯塊,一個(gè)物理塊,和一個(gè)所布置的以高速緩沖存儲(chǔ)邏輯塊的更新內(nèi)容的高速緩沖塊,例如物理塊高速緩沖存儲(chǔ)器的示意圖。一個(gè)非易失性存儲(chǔ)器部件的物理塊‘A’610被映射到一個(gè)邏輯塊‘A’600。當(dāng)物理塊‘A’610基本上滿(mǎn)了并且不能有效地用于容納邏輯塊‘A’600的更新內(nèi)容的或新的內(nèi)容時(shí),可以使用一個(gè)物理塊高速緩沖存儲(chǔ)器612臨時(shí)高速緩沖存儲(chǔ)該更新內(nèi)容的或新的內(nèi)容。
如所示,邏輯塊600的邏輯頁(yè)面602c包括更新的內(nèi)容606。如果,表示更新內(nèi)容606與邏輯頁(yè)面602c相關(guān)聯(lián)的指示存于物理塊高速緩沖存儲(chǔ)器612中,或是可用的以便更新內(nèi)容606能被識(shí)別為與邏輯頁(yè)面602c是相關(guān)聯(lián)的,則基本上可以把更新的內(nèi)容606存儲(chǔ)到物理塊高速緩沖存儲(chǔ)器612中的任何一處。例如,如所示那樣,更新的內(nèi)容606可被高速緩沖存儲(chǔ)到物理塊高速緩沖存儲(chǔ)器612中的第一一可用頁(yè)面??蛇x的,在一個(gè)實(shí)施例中,更新的內(nèi)容606可被寫(xiě)入或者高速緩沖存儲(chǔ)到物理塊高速緩沖存儲(chǔ)器612的相應(yīng)于邏輯頁(yè)面602c的位置中。
當(dāng)有效地作出一個(gè)連續(xù)的更新時(shí),例如當(dāng)更新的內(nèi)容616與邏輯頁(yè)面602e相關(guān)聯(lián)時(shí),那么可把更新的內(nèi)容616也高速緩沖存儲(chǔ)到物理塊高速緩沖存儲(chǔ)器612中。如將對(duì)于圖6b的描述那樣,一旦至少暫時(shí)完成了邏輯塊‘A’600的基本上所有的更新,例如該處理一個(gè)不同的邏輯塊(未示出)時(shí),則包括更新606、616的邏輯塊‘A’600的最新數(shù)據(jù)可以被寫(xiě)入一個(gè)新的物理塊。在某些實(shí)施例中,邏輯塊‘A’600的“最當(dāng)前的數(shù)據(jù)”只包括更新內(nèi)容,然而在另外的實(shí)施例中,包括示出的實(shí)施例,邏輯塊‘A’600的最當(dāng)前的數(shù)據(jù)可以包括更新內(nèi)容606、616和物理塊‘A’610的一些內(nèi)容,該物理塊‘A’610還沒(méi)有被更新內(nèi)容606、616侵占。應(yīng)當(dāng)意識(shí)到的是,當(dāng)物理塊高速緩沖存儲(chǔ)器612滿(mǎn)了時(shí),甚至是在不該處理一個(gè)不同的邏輯塊(未示出)時(shí),也可以進(jìn)行合并操作或者類(lèi)似的操作以把邏輯塊‘A’600的最新的內(nèi)容提供到一個(gè)新的物理塊中。該新的物理塊可在以后變?yōu)橐粋€(gè)“舊的”物理塊,并且可把邏輯塊‘A’600的更新內(nèi)容進(jìn)一步高速緩沖存儲(chǔ)到一個(gè)新的物理塊高速緩沖存儲(chǔ)器612。
如圖6b所示,假定將要處理一個(gè)不同的邏輯塊,可以獲得一個(gè)邏輯塊‘A’600所映射的新的物理塊‘B’620。應(yīng)當(dāng)明白的是該新的物理塊‘B’620可以在所需的基礎(chǔ)上獲得,或者在一個(gè)實(shí)施例中,可以在第一次開(kāi)始邏輯塊‘A’600的一個(gè)高速緩沖存儲(chǔ)處理時(shí)獲得。通常,邏輯塊‘A’600的最新的或者最新的內(nèi)容被寫(xiě)入物理塊‘B’620中。經(jīng)常地,邏輯塊‘A’600的最當(dāng)前的內(nèi)容可被包含在物理塊‘A’610和物理塊高速緩沖存儲(chǔ)器612兩者之中。特別地,在物理塊高速緩沖存儲(chǔ)器612中,含有邏輯塊‘A’600的基本上任何更新的內(nèi)容,而在物理塊‘A’610中,含有較舊的內(nèi)容或者還沒(méi)有被更新為一組當(dāng)前的更新內(nèi)容的內(nèi)容。應(yīng)意識(shí)到的是邏輯塊‘A’600的一些更新的內(nèi)容可被更當(dāng)前的更新內(nèi)容侵占,例如較新的更新的內(nèi)容(未示出)可有效地侵占更新的內(nèi)容606。
有效地組合物理塊‘A’610和物理塊高速緩沖存儲(chǔ)器612的內(nèi)容,以便物理塊‘B’620的頁(yè)面包含從物理塊高速緩沖存儲(chǔ)器612獲得的更新的內(nèi)容606、616,以及當(dāng)前的物理塊‘A’610的內(nèi)容,即物理塊‘A’610的還沒(méi)有有效地被物理塊高速緩沖器612的內(nèi)容侵占的內(nèi)容。有時(shí),物理塊‘A’610的基本全部?jī)?nèi)容可被物理塊高速緩沖存儲(chǔ)器612的內(nèi)容侵占,以便沒(méi)有物理塊的內(nèi)容被包括在物理塊‘B’620中。一旦物理塊‘B’620實(shí)質(zhì)上成為在一個(gè)物理塊域中邏輯塊‘A’600的一個(gè)版本,并且因此充分地包含了邏輯塊‘A’600的全部當(dāng)前信息,則擦除物理塊‘A’610。
圖7是一個(gè)說(shuō)明了一種依據(jù)本發(fā)明一個(gè)實(shí)施例的,通過(guò)使用一個(gè)物理塊高速緩沖存儲(chǔ)器來(lái)更新物理塊域中的一個(gè)頁(yè)面內(nèi)容的方法的處理流程圖。使用一個(gè)塊高速緩沖存儲(chǔ)器臨時(shí)存儲(chǔ)邏輯頁(yè)面更新的流程660開(kāi)始于步驟670,其中一個(gè)主機(jī)開(kāi)始處理一個(gè)邏輯塊‘A’。換句話(huà)說(shuō),與一個(gè)非易失性存儲(chǔ)器連接的系統(tǒng),或者其中內(nèi)置有一個(gè)非易失性存儲(chǔ)器的系統(tǒng),可開(kāi)始處理邏輯塊‘A’的更新。
主機(jī)開(kāi)始處理邏輯塊‘A’之后,在步驟672獲得一個(gè)邏輯塊‘A’所映射的新的物理塊‘B’。然后,在步驟672由例如一個(gè)控制器把包含在邏輯塊‘A’中的一個(gè)頁(yè)面的更新內(nèi)容存儲(chǔ)到一個(gè)塊高速緩沖存儲(chǔ)器中。如上對(duì)圖6a和6b的描述,當(dāng)邏輯塊‘A’所映射的一個(gè)物理塊‘A’不能容納一個(gè)頁(yè)面更新內(nèi)容時(shí),可把該頁(yè)面更新內(nèi)容存儲(chǔ)到一個(gè)高速緩沖存儲(chǔ)器中。一旦把邏輯塊‘A’中的一個(gè)頁(yè)面的更新內(nèi)容存儲(chǔ)到了該塊高速緩沖存儲(chǔ)器中,在步驟678將對(duì)主機(jī)是否準(zhǔn)備對(duì)一個(gè)不同的物理塊,例如邏輯塊‘B’開(kāi)始進(jìn)行處理作出判定。也就是,確定邏輯塊‘A’是否還有需要處理的更新內(nèi)容。
如果在步驟678的判定為不是開(kāi)始處理邏輯塊‘B’的時(shí)機(jī),則表明邏輯塊‘A’還有更多的更新內(nèi)容。因此,處理流程返回到把邏輯塊‘A’的一個(gè)更新存儲(chǔ)到該塊高速緩沖存儲(chǔ)器的步驟。在另一方面,如果判定為開(kāi)始處理邏輯塊‘B’的時(shí)機(jī),則在步驟686中可把物理塊‘A’和該塊高速緩沖存儲(chǔ)器的內(nèi)容組合到物理塊‘B’中,這樣就把邏輯塊‘A’的最當(dāng)前的內(nèi)容寫(xiě)入了物理塊‘B’中。也就是,物理塊‘A’的內(nèi)容和該塊高速緩沖器的內(nèi)容被有效地合并以及存儲(chǔ)到物理塊‘B’中,這樣物理塊‘B’就包含了邏輯塊‘A’的當(dāng)前內(nèi)容。應(yīng)意識(shí)到的是在某些例子中,該塊高速緩沖存儲(chǔ)器的內(nèi)容可以有效地侵占物理塊‘A’的內(nèi)容,以便沒(méi)有物理塊‘A’的內(nèi)容不被拷入或者存儲(chǔ)到物理塊‘B’中。
把邏輯塊‘A’的當(dāng)前內(nèi)容寫(xiě)入物理塊‘B’之后,在步驟690中擦除物理塊‘A’。在步驟694,則擦除該塊高速緩沖存儲(chǔ)器。一旦擦除了該塊高速緩沖存儲(chǔ)器,則在步驟698中解除物理塊‘A’與邏輯塊‘A’關(guān)聯(lián)。應(yīng)意識(shí)到是解除物理塊‘A’與邏輯塊的關(guān)聯(lián)包括更新映射以表示邏輯塊‘A’與物理塊‘B’相關(guān)聯(lián)。在物理塊‘A’與邏輯塊‘A’解除關(guān)聯(lián)之后,使用一個(gè)塊高速緩沖存儲(chǔ)器臨時(shí)存儲(chǔ)一個(gè)邏輯塊的頁(yè)面更新的過(guò)程結(jié)束。
通常,在軟件中提供使得一個(gè)RAM高速緩沖存儲(chǔ)器或者一個(gè)塊高速緩沖存儲(chǔ)器能被利用的功能,例如在一個(gè)編程代碼裝置或者一個(gè)主系統(tǒng)的硬件中。在圖8中示出了一個(gè)依據(jù)本發(fā)明一個(gè)實(shí)施例的,提供給一個(gè)主系統(tǒng)的硬件或軟件的適當(dāng)?shù)南到y(tǒng)結(jié)構(gòu)的實(shí)施例。一個(gè)系統(tǒng)結(jié)構(gòu)700一般包括多種模塊,其包括但不限制于一個(gè)應(yīng)用接口模塊704、一個(gè)系統(tǒng)管理器模塊708、一個(gè)數(shù)據(jù)管理器模塊712、一個(gè)數(shù)據(jù)完整性管理器716,以及一個(gè)裝置管理器和接口模塊720。通常,系統(tǒng)結(jié)構(gòu)700可以使用軟件代碼裝置或硬件,它們可以被一個(gè)處理器訪(fǎng)問(wèn),例如圖3a的處理器108。
通常,可以布置應(yīng)用接口模塊704以便直接與該主機(jī),操作系統(tǒng)或者用戶(hù)通信。應(yīng)用通信接口704也可以與系統(tǒng)管理器模塊708和數(shù)據(jù)管理器模塊712通信。當(dāng)用戶(hù)需要讀取,寫(xiě)或格式化一個(gè)閃速存儲(chǔ)器時(shí),用戶(hù)把請(qǐng)求發(fā)送到操作系統(tǒng),然后該請(qǐng)求被傳送到應(yīng)用接口模塊704。應(yīng)用接口模塊704再把該請(qǐng)求指引到依賴(lài)于該請(qǐng)求的系統(tǒng)管理器模塊708或者數(shù)據(jù)管理器模塊712。
系統(tǒng)管理器模塊708包括一個(gè)系統(tǒng)初始化子模塊724、一個(gè)擦除計(jì)算塊管理子模塊726,和一個(gè)電源管理塊子模塊730。一般把系統(tǒng)初始化子模塊724配置為能夠處理一個(gè)初始化請(qǐng)求,并且能夠典型地與擦除計(jì)算塊管理子模塊726。
除了與應(yīng)用接口模塊704通信之外,系統(tǒng)管理器模塊708也與數(shù)據(jù)管理器模塊712,以及裝置管理器和接口模塊720通信。系統(tǒng)管理器模塊708和應(yīng)用接口模塊704都與數(shù)據(jù)管理器模塊712通信,該數(shù)據(jù)管理器模塊712可包括操作系統(tǒng)和文件系統(tǒng)中間層的功能。
與系統(tǒng)管理器模塊708、數(shù)據(jù)管理器712以及數(shù)據(jù)完整性管理器716通信的裝置管理器和接口模塊720典型地提供了一個(gè)閃速存儲(chǔ)器接口,并且包括硬件提取的功能,例如一個(gè)I/O接口。數(shù)據(jù)完整性管理器模塊716提供了除其他功能之外的ECC處理。
在本發(fā)明一個(gè)實(shí)施例中,可根據(jù)分組執(zhí)行塊高速緩沖存儲(chǔ),其優(yōu)于基本上在一頁(yè)接一頁(yè)的基礎(chǔ)上進(jìn)行的高速緩沖存儲(chǔ)這樣的執(zhí)行塊高速緩沖存儲(chǔ)。如同在共同未決美國(guó)專(zhuān)利申請(qǐng)10/281,855所描述的,分組包括在一個(gè)塊中的任何數(shù)量的頁(yè)面。例如,可布置一個(gè)包括32個(gè)頁(yè)面的塊,這樣把該32個(gè)頁(yè)面分成4個(gè)分組,每個(gè)分組為8個(gè)頁(yè)面。通常,一個(gè)塊中的分組數(shù)量和一個(gè)分組中頁(yè)面數(shù)量可廣泛地變化。
當(dāng)使用一個(gè)分組方案時(shí),更新的數(shù)據(jù)可作為一個(gè)分組的一部分被寫(xiě)入一個(gè)物理塊。圖9a是一個(gè)依據(jù)本發(fā)明一個(gè)實(shí)施例的被分成組的一個(gè)邏輯塊、一個(gè)物理塊,和一個(gè)新的物理塊的示意圖。一個(gè)邏輯塊‘A’900被分成邏輯組904,而每個(gè)分組包括許多邏輯頁(yè)面908。盡管把邏輯塊‘A’900示為包括4個(gè)邏輯組904,每一個(gè)分組包括4個(gè)頁(yè)面908,但是包括在邏輯塊‘A’900中的分組904和頁(yè)面908的數(shù)量可以廣泛地變化。一個(gè)具體頁(yè)面908所屬的分組904可在每個(gè)頁(yè)面908的一個(gè)內(nèi)務(wù)操作(overhead)或者冗余的區(qū)域被識(shí)別。
使物理塊‘B’912與邏輯塊‘A’900相關(guān)聯(lián),以便物理塊‘B’含有邏輯塊‘A’900的數(shù)據(jù)或內(nèi)容。如所示,物理塊‘B’的一個(gè)包括物理頁(yè)面(未示出)的第一物理組916a含有邏輯組904a的數(shù)據(jù)920a。同樣地,第二物理組916b含有邏輯組904b的數(shù)據(jù)920b,第三物理組含有邏輯組904c的數(shù)據(jù)920c,以及第四物理組916d含有邏輯組904d的數(shù)據(jù)920d。
當(dāng)接收了一個(gè)更新內(nèi)容924,例如從一個(gè)指示將要更新邏輯組904b的內(nèi)容的主機(jī)接收時(shí),把更新內(nèi)容924與數(shù)據(jù)920b有效地合并,并且把他們存儲(chǔ)到在一個(gè)新物理塊‘B1’中的一個(gè)第一可用組932a中。合并的發(fā)生使得能夠把邏輯組904b的每個(gè)頁(yè)面的最當(dāng)前的內(nèi)容存儲(chǔ)到分組932a中。將在下面參閱圖10來(lái)描述一個(gè)更新組的數(shù)據(jù)和原始數(shù)據(jù)的合并。如圖9b所示,當(dāng)完成了邏輯塊‘A’900的一個(gè)更新處理時(shí),物理塊‘B1’928可成為與邏輯塊‘A’900相關(guān)聯(lián)的物理塊,即物理塊‘B1’928可變得與邏輯塊‘A’900相關(guān)聯(lián),而物理塊‘B’912與邏輯塊‘A’900解除關(guān)聯(lián)。
在物理塊‘B’912與邏輯塊‘A’900解除關(guān)聯(lián)之前,物理塊‘B’912的內(nèi)容還沒(méi)有被合并到物理塊‘B1’中。例如,第一邏輯組904a的數(shù)據(jù)920a被拷入或相反被提供到物理塊‘B1’928的第二物理組932b中,而第三邏輯組904c的數(shù)據(jù)920則提供到第三物理組932c。同樣地,第四邏輯組904d的數(shù)據(jù)920d可被提供到第四物理組932d。結(jié)果,邏輯塊‘A’900的最當(dāng)前的內(nèi)容出現(xiàn)在物理塊‘B’928中。
在物理塊‘B1’928成為與邏輯塊‘A’900向關(guān)聯(lián)的物理塊之后,可以對(duì)邏輯塊‘A’添加更新內(nèi)容。請(qǐng)參閱圖9c,將描述一種依據(jù)本發(fā)明一個(gè)實(shí)施例的處理邏輯塊‘A’900的添加更新的過(guò)程,該邏輯塊‘A’900先前已被更新以及被分成了組904。當(dāng)處理邏輯組904b的一千新的更新內(nèi)容940時(shí),由于物理塊‘B’912不再包括邏輯塊的最當(dāng)前的內(nèi)容,并且物理塊‘B1’928基本上滿(mǎn)了,所以可獲得一個(gè)新的物理塊‘B2’來(lái)存儲(chǔ)更新內(nèi)容940。特別地,把與邏輯組904b相關(guān)聯(lián)的存儲(chǔ)在物理組932a的數(shù)據(jù)936和更新內(nèi)容940合并,并且作為更新的數(shù)據(jù)把其存儲(chǔ)到物理塊‘B’944的第一可用組946a中。更新的數(shù)據(jù)948包括邏輯組904b中的頁(yè)面的最新內(nèi)容。
一旦完成了一個(gè)更新處理,可把邏輯塊‘A’900的最當(dāng)前的內(nèi)容提供到物理塊‘B2’944。例如,可把第一邏輯組904a的數(shù)據(jù)920a提供到物理塊‘B2’944的第二物理組946b,把第三邏輯組904c的數(shù)據(jù)920c提供到第三物理組946d,把第四邏輯組904d的數(shù)據(jù)提供到第四物理組946d。當(dāng)物理塊‘B2’944包含了邏輯塊‘A’900的最當(dāng)前的內(nèi)容時(shí),則可把物理塊‘B2’944與邏輯塊‘A’相關(guān)聯(lián)而解除物理塊‘B1’928與邏輯塊‘A’的關(guān)聯(lián)。
如果分成組的一個(gè)邏輯塊最初沒(méi)有內(nèi)容,則當(dāng)例如從一個(gè)主機(jī)接收了該邏輯塊的新的或更新的數(shù)據(jù)時(shí),即使一些數(shù)據(jù)將實(shí)際上侵占存儲(chǔ)在物理塊中的其它數(shù)據(jù),也可把該新的或更新的數(shù)據(jù)存儲(chǔ)到一個(gè)物理塊中。圖9d是一個(gè)依據(jù)本發(fā)明一個(gè)實(shí)施例的一個(gè)被分成組的邏輯塊、一個(gè)包括該邏輯塊的更新內(nèi)容的物理塊,以及一個(gè)含有該邏輯塊的最當(dāng)前內(nèi)容的新的物理塊的示意圖。當(dāng)一個(gè)邏輯塊‘A’950最初不包括內(nèi)容時(shí),一有內(nèi)容與邏輯塊‘A’950相關(guān)聯(lián),就可把該內(nèi)容寫(xiě)入一個(gè)與邏輯塊‘A’950相關(guān)聯(lián)的物理塊‘956’中。如所示,當(dāng)提供了邏輯塊‘A’950的第二邏輯組952b的新的數(shù)據(jù)960a時(shí),可把數(shù)據(jù)960a存儲(chǔ)到物理塊‘B’956的一個(gè)第一可用物理組958a中。
當(dāng)更新了第二邏輯組952b的數(shù)據(jù)時(shí),可把更新的數(shù)據(jù)960a’存儲(chǔ)到下一個(gè)可用物理組958中,例如第二物理組958b中。存儲(chǔ)了數(shù)據(jù)960a’之后,如果接收了第三邏輯組952c的新的數(shù)據(jù)960b,則把數(shù)據(jù)960b存儲(chǔ)到下一個(gè)可用物理組958中,也就是第三物理組958c中。最后,如果接收了第二邏輯組952b的更新數(shù)據(jù)960a”,則把更新的數(shù)據(jù)960a”存儲(chǔ)到第四物理組958d中,該物理組在所描述的實(shí)施例中是物理塊‘B’956中最后一個(gè)可用的物理組958。
一旦物理塊‘B’956滿(mǎn)了,即物理塊‘B’956中的所有組都含有數(shù)據(jù)960,并且又接收到邏輯塊‘A’950的新的或更新的數(shù)據(jù),則一般會(huì)獲得用于使用的一個(gè)新的物理塊。例如,如果接收到邏輯組952d的新的數(shù)據(jù)966,則可獲得一個(gè)新的物理塊‘B1’962以容納數(shù)據(jù)966。存儲(chǔ)了數(shù)據(jù)966之后,可把包括在物理塊‘B’956的數(shù)據(jù)存儲(chǔ)到物理塊‘B2’962中。
為了把包括在物理塊‘B’956中的數(shù)據(jù)960存儲(chǔ)到物理塊‘B2’962中,可用“底部?jī)?yōu)先”的方式從物理塊‘B’956中讀取組958,即從組958d開(kāi)始到組958a結(jié)束。如果數(shù)據(jù)存在于含有邏輯組952b的數(shù)據(jù)960的物理組958a、958b、958d中的相同頁(yè)面偏移(page offset)處,則把包含在物理組958d中的頁(yè)面偏移(pageoffset)處的數(shù)據(jù)判斷為最當(dāng)前的數(shù)據(jù)。通常,物理組的數(shù)量越多,那么相同組的的數(shù)據(jù)就越新。一旦邏輯組952b的最新的數(shù)據(jù)被識(shí)別,或者更普通的一旦數(shù)據(jù)960a、數(shù)據(jù)960a’,和數(shù)據(jù)960a”被近似地合并、合并,則把邏輯組952b的更新數(shù)據(jù)968存儲(chǔ)到物理塊‘B1’962中的分組956中。即使只有物理塊‘B’956中的一組958c包括邏輯組952d的數(shù)據(jù)960b,也可把數(shù)據(jù)960b提供到物理塊‘B1’962的第三組964c中。由于沒(méi)有在分組964d中存有數(shù)據(jù),所以分組964d實(shí)際上可用于容納一個(gè)新的邏輯組的數(shù)據(jù),例如邏輯組952a。
如前所述,當(dāng)接收到一個(gè)邏輯組的更新的數(shù)據(jù)時(shí),如果該組中存有較舊的數(shù)據(jù),那么如果適當(dāng),就把舊數(shù)據(jù)與更新的數(shù)據(jù)合并。在一個(gè)實(shí)施例中,當(dāng)該更新的數(shù)據(jù)包括該分組中的基本每個(gè)頁(yè)面的更新的數(shù)據(jù)時(shí),則該更新的數(shù)據(jù)實(shí)際上重寫(xiě)所有的較舊的數(shù)據(jù)。然而,當(dāng)該更新的數(shù)據(jù)包括該分組中的僅僅一些頁(yè)面的更新內(nèi)容,則會(huì)發(fā)生合并處理。請(qǐng)參閱下一個(gè)圖10,將描述一種依據(jù)本發(fā)明一個(gè)實(shí)施例的把一個(gè)分組的原始數(shù)據(jù)和一個(gè)分組的新的數(shù)據(jù)合并到一起的方法。組‘X’可包括8個(gè)頁(yè)面1002。某些頁(yè)面1002可包括數(shù)據(jù),而其他的頁(yè)面1002可基本上是空的。如所示,頁(yè)面1002a、1002d,1002e包括原始數(shù)據(jù)。
例如,當(dāng)從一個(gè)主機(jī)處以更新的形式接收到分組‘X’1000的新的數(shù)據(jù)時(shí),可把該新的數(shù)據(jù)提供給一個(gè)分組更新1006的頁(yè)面1008中。頁(yè)面1008a-d,以及頁(yè)面1008g包括將要與包括在分組‘X’1000的數(shù)據(jù)合并的新的或更新的數(shù)據(jù)。一個(gè)合并過(guò)程典型地包括識(shí)別分組‘X’1000的最當(dāng)前的數(shù)據(jù)。雖然新的數(shù)據(jù)有效地改寫(xiě)原始數(shù)據(jù),但該新的數(shù)據(jù)被認(rèn)為是分組‘X’1000的最當(dāng)前的數(shù)據(jù)。在另一方面,當(dāng)沒(méi)有新的數(shù)據(jù)改寫(xiě)原始數(shù)據(jù)時(shí),則可把該原始數(shù)據(jù)認(rèn)為是最當(dāng)前的數(shù)據(jù)。
合并數(shù)據(jù)1010,含有分組‘X’1000的原始數(shù)據(jù)與提供在分組更新1006中的新的數(shù)據(jù)的合并結(jié)果,并且包括頁(yè)面1012,由于頁(yè)面1008a的新的數(shù)據(jù)有效地侵占了存儲(chǔ)在第一頁(yè)面1002中的原始數(shù)據(jù),所以該合并數(shù)據(jù)1010是這樣的相應(yīng)于分組‘X’1000的第一頁(yè)面1002的第一頁(yè)面1012a包括來(lái)自頁(yè)面1018a的數(shù)據(jù)。由于在頁(yè)面1002b、1002c中最初沒(méi)有包含數(shù)據(jù),所以頁(yè)面1008b、1008c所提供的新的數(shù)據(jù)被分別寫(xiě)入頁(yè)面1012b、1012c中。由于在頁(yè)面1008d中的數(shù)據(jù)比頁(yè)面1002d所包含的數(shù)據(jù)新,所以頁(yè)面1012d包含來(lái)自頁(yè)面1008d的新的數(shù)據(jù)。由于分組更新1006在頁(yè)面1008e中不包含更新的內(nèi)容,所以頁(yè)面1012e包含來(lái)自1002e的原始數(shù)據(jù)。最后,頁(yè)面1012g包含頁(yè)面1008g中的新的數(shù)據(jù)。一旦完成了合并數(shù)據(jù)1010,那么合并數(shù)據(jù)1010實(shí)際上成為分組‘X’1000。
通常,當(dāng)一個(gè)分組的一個(gè)更新內(nèi)容包括一個(gè)具體頁(yè)面的數(shù)據(jù)時(shí),由于該數(shù)據(jù)或者只是該具體頁(yè)面的數(shù)據(jù),又或者是改寫(xiě)該具體頁(yè)面的原始數(shù)據(jù)的數(shù)據(jù),所以該數(shù)據(jù)被包括在該分組的一個(gè)作為結(jié)果的合并數(shù)據(jù)中的相應(yīng)頁(yè)面中。可選的,當(dāng)一個(gè)給定頁(yè)面的原始數(shù)據(jù)沒(méi)有被包括該頁(yè)面的分組的更新內(nèi)容重寫(xiě)時(shí),則把該原始數(shù)據(jù)包括在該分組的一個(gè)作為結(jié)果的合并數(shù)據(jù)中的相應(yīng)頁(yè)面中。
圖11a和圖11b是依據(jù)本發(fā)明一個(gè)實(shí)施例的處理流程圖,說(shuō)明了一個(gè)更新一個(gè)邏輯塊的內(nèi)容的方法的步驟,該邏輯塊是被分成組的。一個(gè)更新內(nèi)容的過(guò)程1100開(kāi)始于步驟1102,其中一個(gè)邏輯塊‘A’的分組‘X’的內(nèi)容被更新,例如被一個(gè)主機(jī)更新,該邏輯塊‘A’與一個(gè)物理塊‘B’相關(guān)聯(lián)。典型地,一個(gè)邏輯組‘A’包括兩個(gè)或多個(gè)頁(yè)面。在步驟1104中,一旦更新了邏輯塊‘A’的分組‘X’的內(nèi)容,則獲得一個(gè)新的物理塊‘B1’以同邏輯塊‘A’相關(guān)聯(lián)。
在步驟1106中,把邏輯組‘X’中的舊的內(nèi)容和邏輯組‘X’的新的或更新的內(nèi)容合并,并且把它們存儲(chǔ)到物理塊‘B1’中,該邏輯組‘X’的舊的內(nèi)容被典型地存儲(chǔ)在物理塊‘B’中的一個(gè)組中。在把合并內(nèi)容存儲(chǔ)到了物理塊‘B1’之后,在步驟1108中將對(duì)邏輯塊‘A’是否還有要被存儲(chǔ)的新的或更新的內(nèi)容作出判定。如果判定還有要被存儲(chǔ)的添加的新的或更新的內(nèi)容,則流程返回到步驟1105處,在步驟1105處把邏輯組‘X’的舊的內(nèi)容和新的或更新的內(nèi)容合并,該邏輯組可以是邏輯塊‘A’中的不同邏輯組。換句話(huà)說(shuō),新的或更新的內(nèi)容可與邏輯塊‘A’中的基本上任何一個(gè)邏輯組相關(guān)聯(lián),并且因此將在新的或更新的內(nèi)容和一個(gè)適當(dāng)?shù)倪壿嫿M之間發(fā)生合并。
可選的,如果在步驟1108中判定不再有邏輯塊‘A’的新的或更新的內(nèi)容要被存儲(chǔ),則在步驟1110中作出判定物理塊‘B1’是否還有足夠的空間存儲(chǔ)物理塊‘B’的剩余的內(nèi)容,例如還沒(méi)有合并到物理塊‘B1’中的內(nèi)容。也就是判定是否可將邏輯塊‘A’的當(dāng)前內(nèi)容的一個(gè)滿(mǎn)的物理指示(full physicalrepresentation)存儲(chǔ)到物理塊‘B’。當(dāng)判定在物理塊‘B1’中有足夠的分組把物理塊‘B’的剩余的內(nèi)容存儲(chǔ)到物理塊‘B1’中,則在步驟1120把來(lái)自物理塊‘B’的剩余的內(nèi)容拷入物理塊‘B1’中。
在把來(lái)自物理塊‘B’的剩余的內(nèi)容拷入物理塊‘B1’之后,物理塊‘B1’實(shí)際上包含了邏輯塊‘A’的最當(dāng)前的內(nèi)容或者當(dāng)前內(nèi)容。同樣地,在步驟1122擦除物理塊‘B’,并且在步驟1124解除該物理塊‘B’與邏輯塊‘A’的關(guān)聯(lián)。一旦物理塊‘B’與邏輯塊‘A’解除關(guān)聯(lián),則結(jié)束了更新一個(gè)邏輯塊的內(nèi)容的過(guò)程。
返回到步驟1110,如果判定在物理塊‘B1’中沒(méi)有足夠的可用分組存儲(chǔ)物理塊‘B’的剩余的內(nèi)容,則該指示表示將要獲得一個(gè)新的物理塊容納邏輯塊‘A’的最當(dāng)前的內(nèi)容。因此,流程轉(zhuǎn)到步驟1112,其中分配了一個(gè)新的物理塊‘B2’與邏輯塊‘A’相關(guān)聯(lián)。一旦獲得新的物理塊‘B2’,則在步驟1114把物理塊‘B’和物理塊‘B1’的內(nèi)容合并到物理塊‘B2’中,這樣就把邏輯塊‘A’的最當(dāng)前的內(nèi)容存儲(chǔ)到了物理塊‘B2’中。通常,物理塊‘B’和物理塊‘B1’的合并內(nèi)容包括在物理塊‘B’和物理塊‘B1’中的分組的合并內(nèi)容。
在把內(nèi)容合并到物理塊‘B2’之后,在步驟1116擦除物理塊‘B1’。一旦擦除了物理塊‘B1’,在步驟1118解除物理塊‘B1’和邏輯塊‘A’的關(guān)聯(lián)。然后,處理流程進(jìn)行到步驟1122,在其中擦除物理塊‘B’。
一個(gè)如上所述的RAM高速緩沖存儲(chǔ)器可用于高速緩沖存儲(chǔ)邏輯組的分組更新。RAM高速緩沖存儲(chǔ)器的使用一般可減少在一個(gè)邏輯塊的更新處理期間所需的擦除處理的次數(shù),這是由于一個(gè)RAM高速緩沖存儲(chǔ)器可被更新直到該更新處理結(jié)束,在此期間可獲得一個(gè)新的物理塊存儲(chǔ)邏輯塊的最當(dāng)前的內(nèi)容,并且可擦除舊的物理塊。
請(qǐng)參閱圖12a,將描述依據(jù)本發(fā)明一個(gè)實(shí)施例的一個(gè)RAM高速緩沖存儲(chǔ)器的使用,該RAM高速緩沖存儲(chǔ)器實(shí)際上分成了多個(gè)分組。一個(gè)邏輯塊‘A’1200被分成了多個(gè)邏輯組1204,每一個(gè)邏輯組依次包括若干邏輯頁(yè)1208。把一個(gè)物理塊‘B’1212與邏輯塊‘A’相關(guān)聯(lián),這樣物理塊‘B’1212含有邏輯塊‘A’1200的數(shù)據(jù)或內(nèi)容。如所示,物理塊‘B’1212中的包括多個(gè)物理頁(yè)面(未示出)的第一物理組1216a含有邏輯組1204a的內(nèi)容。同樣地,第二物理組1216b含有邏輯組1204b的數(shù)據(jù)1220b,第三物理組含有邏輯組1204c的數(shù)據(jù)1220c,以及第四物理組1216d含有邏輯組1204d的數(shù)據(jù)1220d。
當(dāng)接收了一個(gè)更新內(nèi)容1224,例如從一個(gè)指示將要更新邏輯組1204b的內(nèi)容的主機(jī)接收時(shí),把更新內(nèi)容1224存儲(chǔ)到一個(gè)RAM高速緩沖存儲(chǔ)器1228中的第一可用組1232a。可選的,在一個(gè)實(shí)施例中,由于更新內(nèi)容1224與第二邏輯組1204相關(guān)聯(lián),所以可把更新存儲(chǔ)到第二RAM組1232中。
如果收到一個(gè)添加的更新內(nèi)容,其表示邏輯組1204b的內(nèi)容再次被更新,那么可把這樣的更新內(nèi)容與RAM高速緩沖器1228中的分組1232a的內(nèi)容合并。如圖12b所示,當(dāng)收到一個(gè)相應(yīng)于邏輯組1204b的新的更新內(nèi)容1236時(shí),可把新的更新內(nèi)容1236中的數(shù)據(jù)與先前存儲(chǔ)在RAM組1232a中的內(nèi)容合并,以構(gòu)成合并的、更新的數(shù)據(jù)1224’,其與邏輯組1204b相關(guān)聯(lián)。在某些實(shí)例中,由于RAM可被重寫(xiě),因此在合并處理期間,某些新的更新的數(shù)據(jù)1236可改寫(xiě)先前的更新的數(shù)據(jù),即圖12a的新的數(shù)據(jù)1224。
可把邏輯組1204d的一個(gè)更新內(nèi)容1240存儲(chǔ)到下一個(gè)可用RAM頁(yè)面1232b中。應(yīng)意識(shí)到的是不論是否在更新內(nèi)容1236之前或之后接收到更新內(nèi)容1240,仍然將更新內(nèi)容1236包含進(jìn)分組1232a中,并且把更新內(nèi)容1240存儲(chǔ)到分組1232b中。
一旦充分地完成了對(duì)邏輯塊‘A’1200所作的更新,即將更新另一個(gè)邏輯塊時(shí),可把RAM1228的內(nèi)容和物理塊‘B’1212的內(nèi)容合并到一個(gè)新的物理塊中。圖12c是依據(jù)本發(fā)明一個(gè)實(shí)施例的一個(gè)邏輯塊‘A’1200和一個(gè)新的物理塊的示意圖,該新的物理塊為RAM1228的內(nèi)容和物理塊‘B’1212的內(nèi)容合并到該新的物理塊之后的物理塊。一旦判定已經(jīng)完成了對(duì)邏輯塊‘A’1200所作的更新,則典型地獲得一個(gè)物理塊‘B1’1236。例如像上述對(duì)圖10的描述,一旦獲得物理塊‘B1’,則可把RAM高速緩沖存儲(chǔ)器1228的分組1232的內(nèi)容與物理塊‘B’的分組1220的內(nèi)容合并并且把它們存儲(chǔ)到物理塊‘B1’1236中。
由于已經(jīng)在RAM高速緩沖存儲(chǔ)器1228中更新了邏輯組1204b的數(shù)據(jù),于是把更新數(shù)據(jù)1224’與數(shù)據(jù)1220b合并,數(shù)據(jù)1220b是邏輯組1204b的原始數(shù)據(jù)。應(yīng)意識(shí)到的是數(shù)據(jù)1220b可包括邏輯組1204的某些當(dāng)前內(nèi)容,或者考慮到更新數(shù)據(jù)1224’,數(shù)據(jù)1220b可全部是過(guò)時(shí)的。為了有效地保證把邏輯組204b的最當(dāng)前的或當(dāng)前數(shù)據(jù)提供在物理塊‘B1’1236中,使用一個(gè)合并處理來(lái)生成合并數(shù)據(jù)1244,該合并數(shù)據(jù)來(lái)源于更新的數(shù)據(jù)1224’和數(shù)據(jù)1220b。當(dāng)相同邏輯組1204的相同頁(yè)面偏移(page offset)也包含一個(gè)物理組1216中相應(yīng)的數(shù)據(jù)時(shí),包含在RAM高速緩沖存儲(chǔ)器1228的RAM組1232中的數(shù)據(jù)被包括在合并數(shù)據(jù)中。也就是,當(dāng)相應(yīng)于邏輯組1204中的一個(gè)頁(yè)面偏移(page offset)的數(shù)據(jù)存在于物理組1216和RAM組1232兩者之中時(shí),由于RAM組1232中的數(shù)據(jù)較新,因此RAM組1232中的數(shù)據(jù)被包含在合并數(shù)據(jù)中。
在把數(shù)據(jù)1220a存儲(chǔ)到物理組1240a之后,可把合并數(shù)據(jù)1244存儲(chǔ)到第二物理組1240b中,該數(shù)據(jù)1220a在所描述的實(shí)施例中為邏輯組1204a的原始數(shù)據(jù)。由于邏輯組1204c的數(shù)據(jù)1220c沒(méi)有被更新,因此可把數(shù)據(jù)1220c存儲(chǔ)到物理組1240c中。邏輯組1204d已經(jīng)合并了存儲(chǔ)在物理塊‘B’1212中的原始數(shù)據(jù)1220d,以及存儲(chǔ)在RAM高速緩沖存儲(chǔ)器1228的RAM組1232b中的內(nèi)容。同樣地,使用數(shù)據(jù)1220d和新的或更新的數(shù)據(jù)1240來(lái)執(zhí)行一個(gè)合并處理,以生成代表與邏輯組1204d相關(guān)聯(lián)的最當(dāng)前的或當(dāng)前的內(nèi)容的合并數(shù)據(jù)1248。如所示,把合并數(shù)據(jù)1248存儲(chǔ)在物理組1240d中。由于物理塊‘B1’1236現(xiàn)在含有邏輯塊‘A’1200的當(dāng)前內(nèi)容,因此物理塊‘B’1212是過(guò)時(shí)的并且可被擦除,以及解除物理塊1212與邏輯塊‘A’1200的關(guān)聯(lián)。
圖12d是一個(gè)依據(jù)本發(fā)明一個(gè)實(shí)施例的一個(gè)邏輯塊、一個(gè)物理塊,和一個(gè)RAM高速緩沖器的示意圖,由于在該物理塊中沒(méi)有足夠的空間容納新的數(shù)據(jù),所以該RAM高速緩沖器中存有內(nèi)容。物理塊1212的分組1216是這樣的分組分組1216a含有邏輯組1204b的原始數(shù)據(jù)1220a,分組1216b含有邏輯組1204b的更新的數(shù)據(jù)1220a’,分組1216c含有邏輯組1204c的更新的數(shù)據(jù)1220c,以及分組1216d含有邏輯組1204d的更新的數(shù)據(jù)1220a”,同樣地,物理塊1212滿(mǎn)了,沒(méi)有可寫(xiě)入添加的數(shù)據(jù)的可用組1216。
如果提供了相應(yīng)于邏輯組1204d的新的數(shù)據(jù),則把新的數(shù)據(jù)1240存儲(chǔ)到RAM高速緩沖存儲(chǔ)器1228中的一個(gè)適當(dāng)?shù)腞AM組1232中。在一個(gè)實(shí)施例中,該適當(dāng)?shù)腞AM組1232可以是RAM高速緩沖存儲(chǔ)器1228中的第一可用RAM組1232a。當(dāng)判定沒(méi)有對(duì)邏輯塊‘A’1200做出進(jìn)一步的更新時(shí),則可獲得一個(gè)新的物理塊‘B1’1252,把其與邏輯塊‘A’1200相關(guān)聯(lián)。
在物理塊‘B1’1252中,第一物理組1260包括與邏輯組1204b相關(guān)聯(lián)的合并數(shù)據(jù)1260。合并數(shù)據(jù)1260是通過(guò)合并數(shù)據(jù)1220a、數(shù)據(jù)1220a’,和數(shù)據(jù)1220a”生成的,以便邏輯組1204b的最當(dāng)前的數(shù)據(jù)被包括在合并數(shù)據(jù)1260中。為了充分地保證邏輯組1204b的最當(dāng)前的內(nèi)容被包括在合并數(shù)據(jù)1260中,從分組1216d到分組1216a結(jié)束的順序處理分組1216,這樣可輕易地識(shí)別包含在一個(gè)給定邏輯組的特定頁(yè)面偏移(page offset)中的最當(dāng)前的數(shù)據(jù)。
一旦生成合并數(shù)據(jù)1260并且把其存儲(chǔ)到分組1256a中,則把邏輯組1204c的數(shù)據(jù)1220c存儲(chǔ)到分組1256b中,并且把存在于RAM高速緩沖存儲(chǔ)器1228中的數(shù)據(jù)1240存儲(chǔ)到分組1256中。結(jié)果,物理塊‘B1’包含了邏輯塊‘A’1200的最新的內(nèi)容。
請(qǐng)參閱圖13,將描述依據(jù)本發(fā)明一個(gè)實(shí)施例的一種使用RAM高速緩沖存儲(chǔ)器存儲(chǔ)一個(gè)邏輯塊的邏輯組的更新的方法的示意圖。過(guò)程1300開(kāi)始于步驟1304,其中一個(gè)主機(jī)開(kāi)始處理與物理塊‘B’相關(guān)聯(lián)的邏輯塊‘A’。邏輯塊‘A’的處理一般包括邏輯塊‘A’中的邏輯組的更新的處理。
在步驟1308,清除一個(gè)RAM高速緩沖存儲(chǔ)器。一旦清除RAM高速緩沖存儲(chǔ)器,在步驟1312則把邏輯塊‘A’的更新內(nèi)容存儲(chǔ)到該RAM高速緩沖存儲(chǔ)器中。明確地,可基于與更新的內(nèi)容相關(guān)聯(lián)的邏輯組把更新的內(nèi)容存儲(chǔ)到適當(dāng)?shù)腞AM組中。然后,在步驟1316,判定邏輯塊‘A’是否還有要存儲(chǔ)的更新的內(nèi)容。如果判定還有要存儲(chǔ)的更新的內(nèi)容,則處理流程返回到存儲(chǔ)更新的內(nèi)容的步驟1312。
可選的,如果在步驟1312判定邏輯塊‘A’不再有要存儲(chǔ)的更新的內(nèi)容,在步驟1320則分配一個(gè)新的物理塊‘B1’與邏輯塊‘A’相關(guān)聯(lián)。換句話(huà)說(shuō),獲得要寫(xiě)入邏輯塊‘A’的最當(dāng)前的內(nèi)容的一個(gè)物理塊‘B1’。一旦分配了新的物理塊‘B1’,則在步驟1324中視情況把該RAM高速緩沖器的內(nèi)容和該物理塊‘B’的內(nèi)容合并到物理塊‘B1’中。內(nèi)容的合并一般包括每個(gè)邏輯組的內(nèi)容的合并,這樣合并的內(nèi)容是每個(gè)邏輯組的最當(dāng)前的或當(dāng)前的內(nèi)容。
一旦合并了該RAM高速緩沖存儲(chǔ)器的內(nèi)容和物理塊‘B’的內(nèi)容,則物理塊‘B1’實(shí)際上包含了邏輯塊‘A’的最當(dāng)前的內(nèi)容。同樣地,在步驟1328,可擦除物理塊‘B’。在擦除物理塊‘B’之后,解除物理塊‘B’與邏輯塊‘A’關(guān)聯(lián),以及完成了使用一個(gè)RAM高速緩沖存儲(chǔ)器來(lái)存儲(chǔ)更新的過(guò)程。
在某些情況下,RAM高速緩沖存儲(chǔ)器的使用也許是不可能的,例如當(dāng)一個(gè)系統(tǒng)中沒(méi)有足夠的可用RAM時(shí)。當(dāng)不使用RAM高速緩沖存儲(chǔ)器時(shí),可使用一個(gè)高速緩沖存儲(chǔ)塊或者一個(gè)塊高速緩沖存儲(chǔ)器來(lái)代替存儲(chǔ)一個(gè)邏輯塊的分組的更新內(nèi)容。圖14a是一個(gè)依據(jù)本發(fā)明一個(gè)實(shí)施例的一個(gè)塊高速緩沖存儲(chǔ)器的示意圖,該塊高速緩沖存儲(chǔ)器被分成多個(gè)組并且適合用于存儲(chǔ)被分成多個(gè)組的一個(gè)邏輯塊的更新內(nèi)容。一個(gè)邏輯塊‘A’1400被分成邏輯組1404,每一個(gè)組依次包括若干邏輯頁(yè)1408。把一個(gè)物理塊‘B’1412與邏輯塊‘A’1400相關(guān)聯(lián),這樣物理塊‘B’1412就包含了邏輯塊‘A’1400的數(shù)據(jù)。物理塊‘B’的包括物理頁(yè)(未示出)的第一物理組1416a含有邏輯組1404a的數(shù)據(jù)1420a。類(lèi)似地,第四物理組1416d含有邏輯組1404b的更新的數(shù)據(jù)1420d。第二物理組1416b包含邏輯組1404a的數(shù)據(jù)1420b,以及第三物理組1416c含有邏輯組1204c的數(shù)據(jù)1420c。物理塊‘B’1412沒(méi)有含有邏輯組1404d的任何內(nèi)容。
當(dāng)接收到包括邏輯組1404d的數(shù)據(jù)的一個(gè)更新內(nèi)容1424時(shí),把更新內(nèi)容1424存儲(chǔ)到物理塊高速緩沖存儲(chǔ)器中的第一可用組1432a中。如果獲得一個(gè)添加的更新內(nèi)容,其表示邏輯組1204b的內(nèi)容再次被更新,則可把該更新內(nèi)容存儲(chǔ)到塊高速緩沖存儲(chǔ)器的下一個(gè)可用組1432b中。如圖14b所示,當(dāng)接收到一個(gè)相應(yīng)于邏輯組1404d的新的更新內(nèi)容1426時(shí),把新的更新內(nèi)容1426中的數(shù)據(jù)存儲(chǔ)到分組1432b中。在一個(gè)實(shí)施例中,應(yīng)意識(shí)到的是可能會(huì)有邏輯組1404d的一些當(dāng)前數(shù)據(jù),其被包括在數(shù)據(jù)1424和數(shù)據(jù)1426兩者之中。然而,當(dāng)一頁(yè)的信息存在于數(shù)據(jù)1426中時(shí),如果數(shù)據(jù)1424中的相應(yīng)頁(yè)也含有信息,則當(dāng)需要邏輯組1404d的當(dāng)前的數(shù)據(jù)時(shí),將典型地使用數(shù)據(jù)1426中的信息。
圖14c是一個(gè)依據(jù)本發(fā)明一個(gè)實(shí)施例的一個(gè)邏輯塊,也就是圖14b中的邏輯塊‘A’1400,以及一個(gè)新的物理塊的示意圖,該新的物理塊是一個(gè)已經(jīng)把該塊高速緩沖器和與邏輯塊相關(guān)聯(lián)的原物理塊的內(nèi)容,也就是圖14b中的塊高速緩沖存儲(chǔ)器1428和物理塊‘B’1412的內(nèi)容合并到該物理塊后的物理塊。當(dāng)沒(méi)有再對(duì)邏輯塊‘A’1400作出更新時(shí),可獲得一個(gè)將與邏輯塊‘A’1400相關(guān)聯(lián)的新的物理塊‘B1’。應(yīng)意識(shí)到的是當(dāng)完成了邏輯塊‘A’1400的更新時(shí),塊高速緩沖存儲(chǔ)器1428中的可用組1432c、1432d是充分空閑的并且可用于存儲(chǔ)一個(gè)新的或不同的邏輯塊的邏輯組的數(shù)據(jù),或者在稍后甚至存儲(chǔ)邏輯塊‘A’的數(shù)據(jù)。
如圖10中所示那樣,一旦獲得新的物理塊‘B1’1440,就合并與邏輯組1404b相關(guān)聯(lián)的數(shù)據(jù)1420a和數(shù)據(jù)1420d,以便形成可以存于新物理塊‘B1’1440的組1444a中的合并數(shù)據(jù)1446。接著,可以把數(shù)據(jù)1420b從組1416b復(fù)制到組1444b,以及把數(shù)據(jù)1420c從組1416c復(fù)制到組1444c。
由于塊高速緩沖存儲(chǔ)器1428含有與邏輯組1404d相關(guān)聯(lián)的數(shù)據(jù)1424和數(shù)據(jù)1426,因此把數(shù)據(jù)1424和數(shù)據(jù)1426合并以構(gòu)成合并數(shù)據(jù)1448,并且把該合并數(shù)據(jù)1448存儲(chǔ)到新的物理塊‘B1’1440的物理組1444d中。一旦新的物理塊‘B1’1440被填充,則新的物理塊‘B1’1440有效地包括邏輯塊‘A’1400的最當(dāng)前或當(dāng)前的內(nèi)容。同樣地,物理塊‘B’1412實(shí)際上是過(guò)時(shí)的,并且可被擦除以及與邏輯塊‘A’1400解除關(guān)聯(lián)。
如前所述,塊高速緩沖存儲(chǔ)器1428包括可用組1432,在一個(gè)連續(xù)的更新處理期間,該可用組1432可用于存儲(chǔ)一個(gè)不同邏輯塊或者邏輯塊‘A’1400的更新內(nèi)容或新的數(shù)據(jù)。請(qǐng)參閱圖14d,將描述依據(jù)本發(fā)明一個(gè)實(shí)施例的使用塊高速緩沖存儲(chǔ)器1428中的可用組1432c、1432d存儲(chǔ)邏輯塊‘A’的新的更新內(nèi)容。應(yīng)意識(shí)到的是塊高速緩沖存儲(chǔ)器1428中的可用組1432a、1432b的內(nèi)容可以是任何邏輯塊的舊的內(nèi)容,并不限制于是邏輯塊‘A’1400的舊的內(nèi)容。典型地,1432a、1432b的內(nèi)容與一個(gè)不同的邏輯塊相關(guān)聯(lián)。
當(dāng)接收到邏輯組1404d的一個(gè)更新內(nèi)容時(shí),可把相應(yīng)于邏輯組1404d的先前的數(shù)據(jù)與該更新內(nèi)容合并,并且把其存儲(chǔ)在物理塊1412’的物理組1416a’中。可把與邏輯組1404d相關(guān)聯(lián)的合并數(shù)據(jù)1450存儲(chǔ)到塊高速緩沖器1428中的第一可用組1432c中。類(lèi)似地,當(dāng)接收到邏輯組1404b的一個(gè)更新內(nèi)容時(shí),可把該更新的內(nèi)容與存儲(chǔ)在相應(yīng)于邏輯組1404b的物理組1416c’中的先前的數(shù)據(jù)合并。
當(dāng)需要高速緩沖存儲(chǔ)邏輯塊‘A’1400的添加的信息時(shí),由于塊高速緩沖1428是滿(mǎn)的,因此可獲得一個(gè)新的塊高速緩沖存儲(chǔ)器。請(qǐng)參閱下一圖14e,將描述依據(jù)本發(fā)明一個(gè)實(shí)施例的使用兩個(gè)塊高速緩沖存儲(chǔ)器存儲(chǔ)邏輯塊‘A’1400的更新內(nèi)容。當(dāng)塊高速緩沖存儲(chǔ)器1428是滿(mǎn)的而又接收到邏輯塊‘A’1400的一個(gè)更新內(nèi)容時(shí),可獲得一個(gè)新的或當(dāng)前的塊高速緩沖存儲(chǔ)器1464。例如,當(dāng)接收到邏輯組1404c的一個(gè)更新內(nèi)容時(shí),由于數(shù)據(jù)1422b也與邏輯組1404c相關(guān)聯(lián),因此可把該更新的數(shù)據(jù)與包含在分組1416b’中的數(shù)據(jù)1422b合并。一旦生成了合并數(shù)據(jù)1460,則把合成數(shù)據(jù)1460存儲(chǔ)到當(dāng)前的塊高速緩沖存儲(chǔ)器1464中的第一可用組中。
通常,當(dāng)前的塊高速緩沖存儲(chǔ)器1464可視情況用于存儲(chǔ)更新內(nèi)容或者合并的更新內(nèi)容,直到當(dāng)前的塊高速緩沖存儲(chǔ)器1464已不再有可用組。當(dāng)當(dāng)前塊高速緩沖存儲(chǔ)器1464是滿(mǎn)的并且需要邏輯塊‘A’的更多的更新內(nèi)容時(shí),則可獲得一個(gè)新的當(dāng)前的塊高速緩沖存儲(chǔ)器。
如果在把合并數(shù)據(jù)1464存儲(chǔ)到第一可用組1468后,邏輯塊‘A’1400沒(méi)有更多的更新內(nèi)容,則可判定是否能夠把物理塊‘B’1412的內(nèi)容和塊高速緩沖存儲(chǔ)器1428的內(nèi)容合并到當(dāng)前的塊高速緩沖存儲(chǔ)器1464中,或者是否能夠把物理塊‘B’1412、塊高速緩沖存儲(chǔ)器1428和當(dāng)前的塊高速緩沖存儲(chǔ)器1464的內(nèi)容存儲(chǔ)到一個(gè)新的物理塊中。如所示的一個(gè)實(shí)施例中,是能夠把物理塊‘B’1412’的內(nèi)容和塊高速緩沖存儲(chǔ)器1428的內(nèi)容合并到當(dāng)前的塊高速緩沖存儲(chǔ)器1464中。圖14f是一個(gè)依據(jù)本發(fā)明一個(gè)實(shí)施例的把塊高速緩沖存儲(chǔ)器1428和物理塊‘B’1412’的內(nèi)容合并到當(dāng)前塊高速緩沖存儲(chǔ)器1464之后的當(dāng)前的塊高速緩沖存儲(chǔ)器1464的示意圖。當(dāng)前塊高速緩沖存儲(chǔ)器已經(jīng)包括了邏輯組1404c的數(shù)據(jù)1460。由于塊高速緩沖存儲(chǔ)器1428已包括邏輯組1404d的合并數(shù)據(jù)1450和邏輯組1404b的合并數(shù)據(jù)1452,即由于塊高速緩沖存儲(chǔ)器1428已經(jīng)包括邏輯組1404b和1404c的最當(dāng)前的數(shù)據(jù),因此可把合并數(shù)據(jù)1450考入分組1468b中,而把合并數(shù)據(jù)1452拷入分組1468c中。最后,可把與邏輯組1404a相關(guān)聯(lián)的存儲(chǔ)在物理塊‘B’1412’的分組1416d’中的原始數(shù)據(jù)1422d拷入分組1468d中,藉此有效地把邏輯塊‘A’1400的最當(dāng)前的內(nèi)容合并到當(dāng)前的塊高速緩沖存儲(chǔ)器1464中。應(yīng)意識(shí)到的是當(dāng)前的塊高速緩沖存儲(chǔ)器1464然后可以作為與邏輯塊‘A’1400相關(guān)聯(lián)的新的物理塊與邏輯塊‘A’相關(guān)聯(lián)。
請(qǐng)參閱下一個(gè)圖15a和15b,將描述依據(jù)本發(fā)明一個(gè)實(shí)施例的一種把更新的內(nèi)容存儲(chǔ)到一個(gè)使用分組的塊高速緩沖存儲(chǔ)器中的方法的步驟。過(guò)程1500開(kāi)始于步驟1504,其中一個(gè)主機(jī)開(kāi)始處理一個(gè)與物理塊‘B’相關(guān)聯(lián)的邏輯塊‘A’,例如處理邏輯塊‘A’的更新。在步驟1508,判定是否有一個(gè)與邏輯塊‘A’相關(guān)聯(lián)的當(dāng)前的高速緩沖存儲(chǔ)塊,以及是否在該當(dāng)前的高速緩沖器存儲(chǔ)塊之中有可用的空間。
如果在步驟1508判定既沒(méi)有當(dāng)前的高速緩沖存儲(chǔ)塊又在該當(dāng)前的高速緩沖存儲(chǔ)塊中沒(méi)有可用的空間,則在步驟1512獲得一個(gè)新的當(dāng)前的高速緩沖存儲(chǔ)塊。一旦獲得該當(dāng)前的高速緩沖存儲(chǔ)塊,處理流程則轉(zhuǎn)到步驟1516,其中把由一個(gè)給定邏輯組的合并數(shù)據(jù)和該給定邏輯組的新的數(shù)據(jù)所生成的內(nèi)容存儲(chǔ)到該當(dāng)前的高速緩沖存儲(chǔ)塊中,該合并數(shù)據(jù)存儲(chǔ)在物理塊‘B’中的一個(gè)物理組中。如果在步驟1508判定該當(dāng)前的塊高速緩沖存儲(chǔ)器有可用的空間,處理流程則直接從步驟1508轉(zhuǎn)到步驟1516。
一旦把合并內(nèi)容存儲(chǔ)到該當(dāng)前的高速緩沖存儲(chǔ)塊,則在步驟1520判定邏輯塊‘A’是否還有要存儲(chǔ)的更新的內(nèi)容。如果判定還有要存儲(chǔ)的更新的內(nèi)容,處理流程則返回到判定在當(dāng)前的高速緩沖存儲(chǔ)塊中是否有空間的步驟1508。可選的,如果判定邏輯塊‘A’不再有要存儲(chǔ)的更新的內(nèi)容,則在步驟1524判定在當(dāng)前的高速緩沖存儲(chǔ)塊中是否有足夠的空間執(zhí)行一個(gè)信息的合并,該信息包含在物理塊‘B’和任何實(shí)際上較舊的,或過(guò)時(shí)的高速緩沖存儲(chǔ)塊中,并且把該信息合并到該當(dāng)前的高速緩沖存儲(chǔ)塊中。
如果判定有足夠的空間執(zhí)行合并到該當(dāng)前的高速緩沖存儲(chǔ)塊中的合并,則表明該當(dāng)前的高速緩沖存儲(chǔ)塊適于成為與邏輯塊‘A’相關(guān)聯(lián)的新的物理塊,并且因此適于充分地包含邏輯塊‘A’的所有的當(dāng)前的數(shù)據(jù)。因此,在步驟1536,視情況把物理塊‘B’中的分組的內(nèi)容,以及在任何較舊的高速緩沖存儲(chǔ)塊中的分組的內(nèi)容合并到該當(dāng)前的高速緩沖存儲(chǔ)塊,這樣該當(dāng)前的高速緩沖存儲(chǔ)塊就包含了邏輯塊‘A’的分組的最當(dāng)前的數(shù)據(jù)。
在完成了合并處理到該當(dāng)前的高速緩沖存儲(chǔ)塊之后,在步驟1540擦除物理塊‘B’和任何較舊的或過(guò)時(shí)的高速緩沖存儲(chǔ)塊。一旦擦除物理塊‘B’,則在步驟1544把物理塊‘B’與邏輯塊分離,并且在步驟1548把該合并的當(dāng)前的高速緩沖存儲(chǔ)塊與邏輯塊‘A’相關(guān)聯(lián),藉此有效地成為與邏輯塊‘A’相關(guān)聯(lián)的物理塊。一旦該合并的高速緩沖存儲(chǔ)塊與邏輯塊‘A’相關(guān)聯(lián),則完成了把更新的內(nèi)容存儲(chǔ)到一個(gè)塊高速緩沖器中的過(guò)程。
回到步驟1524,如判定不能執(zhí)行合并入該當(dāng)前的高速緩沖存儲(chǔ)塊,則表明在當(dāng)前的高速緩沖存儲(chǔ)塊中沒(méi)有足夠數(shù)量的物理組以容納邏輯組的數(shù)據(jù),該數(shù)據(jù)當(dāng)前沒(méi)有在該當(dāng)前的高速緩沖存儲(chǔ)塊中。同樣地,在步驟1528,為邏輯塊‘A’分配一個(gè)新的物理塊‘B1’。然后,在步驟1532,視情況把物理塊‘B’中的分組的內(nèi)容與所有高速緩沖存儲(chǔ)塊中的分組的內(nèi)容合并到物理塊‘B1’中。處理流程從步驟1532進(jìn)行到步驟1540,其中擦除物理塊‘B’和高速緩沖存儲(chǔ)塊。應(yīng)意識(shí)到的是,當(dāng)物理塊‘B1’與邏輯塊‘A’相關(guān)聯(lián)時(shí),不執(zhí)行把合并的高速緩沖存儲(chǔ)塊與邏輯塊‘A’相關(guān)聯(lián)的步驟1548。
盡管已經(jīng)描述了本發(fā)明的僅僅一些實(shí)施例,應(yīng)理解的是在不脫離本發(fā)明的精神和范圍的情況下,本發(fā)明可被以許多其它的形式內(nèi)置。例如,雖然已經(jīng)描述了使用一個(gè)RAM高速緩沖存儲(chǔ)器和一個(gè)物理塊高速緩沖存儲(chǔ)器來(lái)臨時(shí)存儲(chǔ)或高速緩沖存儲(chǔ)更新的數(shù)據(jù),但是可使用任何適當(dāng)?shù)拇鎯?chǔ)器高速緩沖存儲(chǔ)更新的數(shù)據(jù)。換句話(huà)說(shuō),在把更新內(nèi)容寫(xiě)入一個(gè)邏輯塊所映射的物理塊之前,存儲(chǔ)一個(gè)邏輯塊的更新內(nèi)容的高速緩沖存儲(chǔ)器不限制于一個(gè)RAM高速緩沖存儲(chǔ)器或者一個(gè)物理塊高速緩沖存儲(chǔ)器。
一個(gè)閃速存儲(chǔ)器的大小和閃速存儲(chǔ)器中的塊的大小可被廣泛地變化。雖然已經(jīng)把塊的大小描述為包括大約32個(gè)頁(yè)面,但是塊可包括任何數(shù)量的頁(yè)面,或者更一般的,包括任何數(shù)量的構(gòu)成一個(gè)塊的元件。例如,一個(gè)塊可包括大約64個(gè)元件或頁(yè)面。結(jié)果,一個(gè)系統(tǒng)中的塊的數(shù)量可以變化。在一個(gè)512Mb NAND閃速存儲(chǔ)器中,如果一個(gè)塊包括大約32個(gè)頁(yè)面,每個(gè)頁(yè)面包含大約512個(gè)字節(jié),那么在該閃速存儲(chǔ)器中就總共有4096個(gè)物理塊。可選的,在相同的512Mb NAND閃速存儲(chǔ)器中,如果每個(gè)物理塊包括大約64個(gè)頁(yè)面,每個(gè)頁(yè)面包含大約512個(gè)字節(jié),那么在該閃速存儲(chǔ)器中可以總共有2048個(gè)物理塊。通常,頁(yè)面的大小也可以變化。
本發(fā)明的各種方法的步驟可廣泛地變化。通常,可以增加、去除,重排和改變步驟。例如,在不脫離本發(fā)明的精神或范圍的情況下,使用一個(gè)物理塊高速緩沖存儲(chǔ)器的方法可包括判定何時(shí)該物理塊是滿(mǎn)的,以及在繼續(xù)把更新內(nèi)容高速緩沖存儲(chǔ)到該物理塊高速緩沖存儲(chǔ)器之前,何時(shí)視情況把該物理塊高速緩沖存儲(chǔ)器和物理塊‘A’的內(nèi)容合并到物理塊‘B’中。進(jìn)一步的,在高速緩沖存儲(chǔ)更新之前可不需要獲得一個(gè)新的物理塊,例如,當(dāng)該合并一個(gè)舊的物理塊和一個(gè)物理塊高速緩沖器的內(nèi)容時(shí),可作為需要地獲得一個(gè)新的物理塊。因此,把當(dāng)前范例視為說(shuō)明而不是限制,并且本發(fā)明也不限制于在此所給出的細(xì)節(jié),但是在所附的權(quán)利要求的范圍中可以修改發(fā)明。
權(quán)利要求
1.一種用于處理一個(gè)非易失性存儲(chǔ)器的塊的內(nèi)容的方法,該非易失性存儲(chǔ)器與一個(gè)存儲(chǔ)器系統(tǒng)相連,該方法包括獲得第一組內(nèi)容,該第一組內(nèi)容與第一邏輯塊的第一邏輯組相關(guān)聯(lián),該第一邏輯組包括第一邏輯塊的第一若干邏輯頁(yè)面,該第一邏輯塊充分地映射第一邏輯塊;把第一組內(nèi)容寫(xiě)入一個(gè)存儲(chǔ)器區(qū)域;把第一組內(nèi)容從該存儲(chǔ)器區(qū)域?qū)懭氲诙锢韷K的第一物理組,第一物理組包括第二物理塊的第一若干物理頁(yè);以及把第二物理塊映射到第一邏輯塊。
2.根據(jù)權(quán)利要求1的方法,其中第一物理塊包括第二組內(nèi)容,該方法進(jìn)一步的包括把至少一些第二組的內(nèi)容寫(xiě)入具有第一組內(nèi)容的第二物理塊中。
3.根據(jù)權(quán)利要求2的方法,進(jìn)一步的包括從第一物理塊中擦除第二組內(nèi)容;以及充分地解除第一物理塊和第一邏輯塊的映射。
4.根據(jù)權(quán)利要求3的方法,進(jìn)一步的包括從該存儲(chǔ)器區(qū)域中擦除第一組內(nèi)容。
5.根據(jù)權(quán)利要求1的方法,其中第一物理塊包括第二組內(nèi)容,該方法進(jìn)一步包括把第二組內(nèi)容寫(xiě)入所述的存儲(chǔ)器區(qū)域。
6.根據(jù)權(quán)利要求5的方法,其中把第一組內(nèi)容寫(xiě)入所述存儲(chǔ)器區(qū)域的步驟包括重寫(xiě)所述存儲(chǔ)器區(qū)域中的至少一些所述第二組內(nèi)容。
7.根據(jù)權(quán)利要求6的方法,其中所述存儲(chǔ)器區(qū)域?yàn)橐粋€(gè)RAM高速緩沖存儲(chǔ)器。
8.根據(jù)權(quán)利要求1的方法,其中第一組內(nèi)容包括所述第一邏輯塊的一個(gè)更新內(nèi)容。
9.根據(jù)權(quán)利要求1的方法,進(jìn)一步的包括獲得第三組內(nèi)容,所述的第一組內(nèi)容與第一邏輯塊的第二邏輯組相關(guān)聯(lián),所述第二邏輯組包括第一邏輯塊的若干個(gè)第二邏輯頁(yè);把第三組內(nèi)容寫(xiě)入所述存儲(chǔ)器區(qū)域;以及把第三組內(nèi)容寫(xiě)入第二物理塊的第二物理組,所述第二物理組包括第二物理塊的第二若干邏輯頁(yè)面。
10.根據(jù)權(quán)利要求9的方法,進(jìn)一步的包括判定何時(shí)基本沒(méi)有要獲得的第一邏輯塊的其他組的內(nèi)容,其中當(dāng)判定沒(méi)有要獲得的其他組的內(nèi)容時(shí),把所述第一組的內(nèi)容和第三組的內(nèi)容寫(xiě)入所述存儲(chǔ)器區(qū)域。
11.根據(jù)權(quán)利要求10的方法,其中判定何時(shí)基本沒(méi)有要獲得的第一邏輯塊的其他組的內(nèi)容的步驟包括判定何時(shí)更新一個(gè)第二邏輯塊。
12.根據(jù)權(quán)利要求11的方法,其中當(dāng)判定將更新第二邏輯塊時(shí),該方法進(jìn)一步包括立即獲得第二物理塊;以及立即把第一組的內(nèi)容和第三組的內(nèi)容寫(xiě)入第二物理塊。
13.根據(jù)權(quán)利要求12的方法,其中獲得第二物理塊的步驟包括把第二物理塊映射到第一邏輯塊。
14.根據(jù)權(quán)利要求13的方法,進(jìn)一步包括從第一物理塊中擦除第二組內(nèi)容;以及解除第一物理塊和第一邏輯塊的映射。
15.根據(jù)權(quán)利要求1的方法,進(jìn)一步包括獲得第二物理塊;以及把第二物理塊映射到第一邏輯塊。
16.根據(jù)權(quán)利要求1的方法,其中沒(méi)有布置第一物理塊以容納第一組內(nèi)容
17.根據(jù)權(quán)利要求1的方法,其中所述存儲(chǔ)器區(qū)域?yàn)榈谌锢韷K和RAM高速緩沖存儲(chǔ)器中的一個(gè)。
18.根據(jù)權(quán)利要求1的方法,其中所述非易失性存儲(chǔ)器是一個(gè)NAND閃速存儲(chǔ)器。
19.一種用于處理一個(gè)非易失性存儲(chǔ)器系統(tǒng)中的第一邏輯塊的更新的內(nèi)容的方法,所述第一邏輯塊映射第一物理塊,該方法包括接收第一邏輯塊的第一更新內(nèi)容,其中第一更新內(nèi)容是第一邏輯塊的第一邏輯組的一個(gè)更新內(nèi)容,第一邏輯組布置為包括第一邏輯塊的第一若干邏輯頁(yè)面;把第一更新內(nèi)容存儲(chǔ)到一個(gè)高速緩沖存儲(chǔ)器中;判定何時(shí)把所述高速緩沖存儲(chǔ)器的內(nèi)容存儲(chǔ)到一個(gè)第二物理塊中,所述高速緩沖存儲(chǔ)器的內(nèi)容包括第一更新內(nèi)容;當(dāng)判定將把所述高速緩沖存儲(chǔ)器的內(nèi)容存儲(chǔ)到第二物理塊中時(shí),把所述高速緩沖存儲(chǔ)器的內(nèi)容存儲(chǔ)到第二物理塊中,其中存儲(chǔ)所述高速緩沖存儲(chǔ)器的內(nèi)容的步驟包括把第一更新內(nèi)容存儲(chǔ)到第一物理塊中的第一物理組中,所述第一物理組包括第一物理組所包括的第一若干物理頁(yè)面;在把高速緩沖存儲(chǔ)器的內(nèi)容存儲(chǔ)到所述第二物理塊中之后,把第二物理塊映射到第一邏輯塊;以及在把高速緩沖存儲(chǔ)器的內(nèi)容存儲(chǔ)到所述第二物理塊中之后,解除第一物理塊和第一邏輯塊的映射。
20.根據(jù)權(quán)利要求19的方法,其中判定何時(shí)把所述高速緩沖存儲(chǔ)器的內(nèi)容存儲(chǔ)到第二物理塊中的步驟包括,判定何時(shí)處理第二邏輯塊,并且其中當(dāng)判定將處理第二邏輯塊時(shí),把高速緩沖存儲(chǔ)器的內(nèi)容存儲(chǔ)到所述第二物理塊中。
21.根據(jù)權(quán)利要求19的方法,進(jìn)一步包括獲得第二物理塊。
22.根據(jù)權(quán)利要求19的方法,其中所述高速緩沖存儲(chǔ)器的內(nèi)容包括至少一些第一物理塊的內(nèi)容。
23.根據(jù)權(quán)利要求22的方法,進(jìn)一步包括把第一物理塊的內(nèi)容拷入所述高速緩沖存儲(chǔ)器,其中當(dāng)把第一更新內(nèi)容存儲(chǔ)到所述高速緩沖存儲(chǔ)器中時(shí),所述第一更新內(nèi)容充分地重寫(xiě)至少一部分第一物理塊的所述拷貝內(nèi)容。
24.根據(jù)權(quán)利要求23的方法,其中所述高速緩沖存儲(chǔ)器是一個(gè)RAM高速緩沖存儲(chǔ)器。
25.根據(jù)權(quán)利要求19的方法,其中判定何時(shí)把所述高速緩沖存儲(chǔ)器的內(nèi)容存儲(chǔ)到第二物理塊中的步驟包括判定何時(shí)處理第二邏輯塊,并且其中當(dāng)判定將處理第二邏輯塊時(shí),把至少一些所述高速緩沖存儲(chǔ)器的內(nèi)容存儲(chǔ)到第二物理塊。
26.根據(jù)權(quán)利要求25的方法,進(jìn)一步包括當(dāng)判定將處理第二邏輯塊時(shí),把至少一些第一物理塊的內(nèi)容存儲(chǔ)到第二物理塊。
27.根據(jù)權(quán)利要求25的方法,進(jìn)一步包括在把所述高速緩沖存儲(chǔ)器的內(nèi)容存儲(chǔ)到第二物理塊中之后,擦除第一物理塊。
28.根據(jù)權(quán)利要求25的方法,其中所述高速緩沖存儲(chǔ)器是一個(gè)物理塊高速緩沖存儲(chǔ)器。
全文摘要
公開(kāi)了用于高速緩沖存儲(chǔ)一個(gè)邏輯塊的更新內(nèi)容或新的數(shù)據(jù)的方法和裝置。根據(jù)本發(fā)明的一個(gè)方面,一種用于處理一個(gè)非易失性存儲(chǔ)器的塊的內(nèi)容的方法,包括獲得與第一物理塊的第一組邏輯頁(yè)相關(guān)聯(lián)的內(nèi)容,以及把該第一組內(nèi)容寫(xiě)入一個(gè)存儲(chǔ)區(qū)域中。然后把該第一組的內(nèi)容從該存儲(chǔ)器區(qū)域?qū)懭氲诙锢韷K的第一組邏輯頁(yè)中,該第二物理塊映射到該第一邏輯快。在一個(gè)實(shí)施例中,該存儲(chǔ)器區(qū)域是RAM高速緩沖存儲(chǔ)器和物理塊高速緩沖存儲(chǔ)器中的一種。
文檔編號(hào)G06F12/16GK1504896SQ20031011567
公開(kāi)日2004年6月16日 申請(qǐng)日期2003年10月28日 優(yōu)先權(quán)日2002年10月28日
發(fā)明者張欽澤, B·卡瓦米, F·薩比特-沙希, 李屏, 咼, 忍 沙希 申請(qǐng)人:三因迪斯克公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
齐齐哈尔市| 南陵县| 云龙县| 新干县| 揭阳市| 西青区| 梁河县| 辛集市| 宜兴市| 泸溪县| 浏阳市| 汉阴县| 板桥市| 桑日县| 济源市| 奉节县| 竹溪县| 通化县| 电白县| 贺州市| 微博| 舒兰市| 双牌县| 电白县| 镇雄县| 宽甸| 黑龙江省| 九江市| 湛江市| 阜阳市| 宜丰县| 芜湖县| 永昌县| 北票市| 德令哈市| 新余市| 临澧县| 津市市| 绍兴市| 侯马市| 香河县|