專利名稱:操作仿真電可擦除(eee)存儲器的制作方法
技術(shù)領(lǐng)域:
本公開內(nèi)容總體上涉及存儲器系統(tǒng),更具體而言,涉及操作仿真電可擦除(EEE) 存儲器的方法。
背景技術(shù):
仿真電可擦除(EEE)存儲器一般組合使用隨機(jī)存取存儲器和電可擦除的非易失性存儲器,以便在大小與常規(guī)隨機(jī)存取存儲器的大小相當(dāng)?shù)那闆r下,提供具有比常規(guī)非易失性存儲器耐久性增加的存儲器系統(tǒng)。這是利用比隨機(jī)存取存儲器大得多的非易失性存儲器來獲得的,但是EEE存儲器工作起來就好像其僅僅具有該隨機(jī)存取存儲器的大小。因而, EEE存儲器仿真比相對于EEE存儲器所使用的尺寸減小了尺寸的電可擦除存儲器,但是具有增加的耐久性。在耐久性非常重要的情況下,例如其中數(shù)據(jù)常常更新并且必須以非易失性方式存儲的汽車應(yīng)用中,這是有用的。EEE存儲器常見的一個問題是在能夠把數(shù)據(jù)寫到非易失性存儲器時不時地會存在長的延遲,這是因為非易失性存儲器的扇區(qū)中的太多位置具有被劃分成有效數(shù)據(jù)和無效數(shù)據(jù)的數(shù)據(jù)。因此,在那些位置可以被再次寫入之前,扇區(qū)必須被擦除,但是,在擦除操作之前,具有有效數(shù)據(jù)的位置必須寫到別的地方。當(dāng)出現(xiàn)這種情況時,可能需要過多的時間來進(jìn)行執(zhí)行寫操作的所有必需操作。相應(yīng)地,需要提供改善上述問題的EEE存儲器。
本發(fā)明是通過例子說明的,并且不受附圖的限制,附圖中相同的標(biāo)號指示相似的元件。圖中的元件是為了簡化和清晰而說明的,并且不一定是按比例繪制的。圖1以框圖形式示出了在實現(xiàn)本發(fā)明的實施方式中有用的系統(tǒng),該系統(tǒng)包括利用非易失性存儲器的仿真電可擦除存儲器;圖2以框圖形式示出了根據(jù)本發(fā)明實施方式的圖1的閃存陣列;圖3示出了根據(jù)所述實施方式的方法的流程圖;以及圖4示出了在理解圖3的方法中有用的非易失性存儲器的兩個扇區(qū)。
具體實施例方式在一方面,仿真電可擦除(EEE)存儲器具有劃分成扇區(qū)的NVM和RAM。響應(yīng)于包括EEE存儲器的NVM中的記錄的寫入的更新,NVM的最早填充的扇區(qū)的記錄的一個小子集被轉(zhuǎn)移到當(dāng)前正在填充的扇區(qū)。該小子集只包括有效(active)記錄。在最早填充的扇區(qū)中的所有有效記錄都轉(zhuǎn)移完之后,響應(yīng)于EEE存儲器的更新,執(zhí)行擦除處理的一部分。擦除處理可以方便地劃分成多個相對短的脈沖,使得響應(yīng)于更新所執(zhí)行的擦除處理的部分是簡單的,以便為最早填充的扇區(qū)提供單個或者至少減少數(shù)量的寫脈沖。對于避免必須執(zhí)行轉(zhuǎn)移所有有效記錄、之后跟著整個擦除處理的長處理以便獲得提供新寫入所需的空間的情況,這種方法是有用的。通過參考附圖和以下說明書,這更好理解。在一種實施方式中,閃存存儲器用作NVM。在一個例子中,并且如在此所使用的,編程指把邏輯電平零存儲到位單元,而擦除指把邏輯電平一存儲到位單元。但是,在另選實施方式中,編程可以指把邏輯電平一存儲到位單元,而擦除可以指把邏輯電平零存儲到位單元。邏輯電平零還可以稱為邏輯低,而邏輯電平一還可以稱為邏輯高。如在此所使用的,術(shù)語“總線”用于指可以用于轉(zhuǎn)移一個或多個各種類型信息(例如數(shù)據(jù)、地址、控制或狀態(tài))的多個信號或?qū)w。如在此所討論的,導(dǎo)體可以參考作為單個導(dǎo)體、多個導(dǎo)體、單向?qū)w或雙向?qū)w來示出或描述。但是,不同的實施方式可以改變導(dǎo)體的實現(xiàn)方式。例如,可以使用單獨(dú)的單向?qū)w,而不是雙向?qū)w,反之亦然。而且,多個導(dǎo)體可以用串行地或者以時間復(fù)用方式轉(zhuǎn)移多個信號的單個導(dǎo)體代替。同樣,承載多個信號的單個導(dǎo)體可以劃分成承載這些信號子集的多個不同導(dǎo)體。因此,對于轉(zhuǎn)移信號而言,存在許多選項。當(dāng)分別將信號、狀態(tài)位或類似裝置的呈現(xiàn)指示為其邏輯真或邏輯假狀態(tài)時,在這里使用術(shù)語“斷言”或“設(shè)置”和“否決”(或者“解除斷言”或“清除”)。如果邏輯真狀態(tài)是邏輯電平一,則邏輯假狀態(tài)是邏輯電平零。以及,如果邏輯真狀態(tài)是邏輯電平零,則邏輯假狀態(tài)是邏輯電平一。在一個數(shù)字前面的符號“$”指該數(shù)字是以十六進(jìn)制或者基數(shù)為16的形式表示的。 在一個數(shù)字前面的符號“%”指該數(shù)字是以二進(jìn)制或者基數(shù)為2的形式表示的。應(yīng)當(dāng)指出, 在圖2中,“FFFF”的值是十六進(jìn)制形式并且對應(yīng)于二進(jìn)制形式的“1111111111111111”。圖1以框圖形式示出了系統(tǒng)10,該系統(tǒng)10包括處理器14、其它模塊16(如果有的話)、系統(tǒng)互連12和EEE存儲器系統(tǒng)18 (也可以稱為存儲器系統(tǒng)或者非易失性存儲器系統(tǒng))。處理器14、其它模塊16和EEE存儲器系統(tǒng)18中的每一個都雙向耦合到系統(tǒng)互連12。 EEE存儲器系統(tǒng)18包括RAM 20、存儲器控制器22、擦除/編程電路系統(tǒng)23、感測電路系統(tǒng)M 和閃存陣列26 (也可以稱為NVM陣列,其中任何類型的NVM都可以代替閃存存儲器使用)。 RAM 20雙向耦合到系統(tǒng)互連12和存儲器控制器22。存儲器控制器22耦合到感測電路系統(tǒng)M和閃存陣列26。擦除/編程電路系統(tǒng)23和感測電路系統(tǒng)M耦合到閃存陣列26。存儲器控制器22與感測電路系統(tǒng)M通信控制信號。存儲器控制器22與閃存陣列沈通信控制信號,向閃存陣列26提供地址和datajn并從閃存陣列沈接收read_data。感測電路系統(tǒng)M能夠向閃存陣列沈提供正常的讀參考、限制用電讀取0參考和限制用電讀取1參考。 在一種實施方式中,在一個時刻,這些參考中只有一個(可以采用參考電壓和/或參考電流的形式)提供給閃存陣列26。復(fù)位信號提供給處理器14和存儲器控制器22。該復(fù)位信號可以是例如用于系統(tǒng)10的全局復(fù)位信號。處理器14可以是任意類型的處理器,例如微處理器、數(shù)字信號處理器等等,或者可以是任何可以訪問EEE存儲器系統(tǒng)18的其它類型的互連主機(jī)。系統(tǒng)互連12的一種形式是系統(tǒng)總線。其它形式的互連也可以使用,包括例如交叉開關(guān)(crossbar)、點到點連接及光與無線傳輸技術(shù)。其它模塊16可以包括任何類型的模塊,例如另一個存儲器、另一個處理器、另一個互連主機(jī)、外圍設(shè)備、輸入/輸出(I/O)設(shè)備、等等。另選地,在系統(tǒng)10中可以不存在其它模塊。在操作中,處理器14可以向存儲器系統(tǒng)18發(fā)送訪問請求(讀或?qū)懺L問請求)。來自處理器14的訪問請求提供給RAM 20,該請求包括訪問地址并且在寫訪問的情況下還包括關(guān)聯(lián)的寫數(shù)據(jù)。在讀訪問的情況下,RAM 20向處理器14提供存儲在所接收到的訪問地址位置的數(shù)據(jù)。在寫訪問的情況下,RAM 20把接收到的寫數(shù)據(jù)存儲在所接收到的訪問地址位置。在寫訪問的情況下,存儲器控制器22可以檢測RAM 20的更新并選擇性地把所接收到的訪問地址和關(guān)聯(lián)的寫數(shù)據(jù)以邏輯上順次的方式存儲到閃存陣列26。例如,在對RAM 20 更新(寫入)的情況下,所接收到的訪問地址和關(guān)聯(lián)的寫數(shù)據(jù)用于形成寫到閃存陣列26的下一個可用位置的記錄。所述下一個可用位置與閃存陣列26緊挨在之前的加載中所加載的位置是邏輯上順次的。(應(yīng)當(dāng)指出,參考圖1,所接收到的訪問地址可以作為地址提供給閃存陣列26,而關(guān)聯(lián)的寫數(shù)據(jù)作為datajn提供給閃存陣列26。)在一個例子中,對應(yīng)于 RAM更新的記錄的寫入只有在當(dāng)前存儲在所述RAM位置的值與同對該RAM位置的寫訪問請求關(guān)聯(lián)的新寫入值不同的時候才執(zhí)行。以這種方式,閃存陣列26可以以更持久的方式存儲更新后的RAM 20的值。S卩,當(dāng)RAM 20沒有電時,其數(shù)據(jù)丟失。一旦恢復(fù)供電,RAM的值就可以從閃存陣列26恢復(fù),其中閃存陣列沈不會在沒有電時丟失其數(shù)據(jù)。在一種實施方式中,閃存陣列26具有比RAM 20更大的存儲容量。例如,閃存陣列沈可以具有RAM 20至少四倍大的容量而且一般比這還大。EEE存儲器系統(tǒng)18的操作將參考圖2更具體地描述。圖2以框圖形式示出了 EEE 存儲器系統(tǒng)18操作期間閃存陣列沈的實施方式。一開始,閃存陣列沈全部都是空的。在一種實施方式中,當(dāng)閃存陣列26的一個位置為空時,它還沒有寫任何值,因而處于其擦除狀態(tài)。在這里所描述的實施方式中,擦除狀態(tài)對應(yīng)于邏輯電平一;因此,閃存陣列沈的每個空或擦除位置都存儲一個邏輯電平一。閃存陣列26包括N個扇區(qū)。在一種實施方式中,數(shù)據(jù)可以由擦除/編程電路系統(tǒng)23寫到這些扇區(qū)中的任何位置;但是,但期望擦除時,每個扇區(qū)只能作為一塊被擦除(以扇區(qū)為基礎(chǔ),其中擦除/編程電路系統(tǒng)23對扇區(qū)的擦除可以同時擦除該扇區(qū)的所有內(nèi)容)。應(yīng)當(dāng)指出,在圖2中,當(dāng)特定扇區(qū)、區(qū)域或者行被指示為空時, 在括號中提供“FFFF”,這代表那個空扇區(qū)、區(qū)域或行中的位是邏輯電平一。這也是擦除狀態(tài)。如上所述,閃存陣列沈的每個位置都從第一個位置開始順次地被更新。在RAM 20 下一個緊接在后面的更新(其中,新的寫入值與當(dāng)前存儲在要更新的MM位置的值不同), 用新紀(jì)錄來寫與所述第一個位置相鄰并且邏輯上順次的下一個位置(并因而變成用于緊接在之后的更新的前一個位置)。因此,在緊接在后面的RAM 20的更新(其中,新的寫入值與當(dāng)前存儲在要更新的RAM位置的值不同)中,用新紀(jì)錄來寫與所述前一個位置相鄰并且邏輯上順次的下一個位置。因而,對于反映在閃存陣列沈中的RAM 20的每次更新,以順次的方式用新紀(jì)錄加載閃存陣列26。在所說明的實施方式中,閃存陣列沈包括空區(qū)域 40(其可以包括一個或多個空扇區(qū))、最早填充的扇區(qū)30、較早填充的扇區(qū)32、較新填充的扇區(qū)34、最新填充的扇區(qū)36和當(dāng)前正在填充的扇區(qū)38。在所說明的實施方式中,當(dāng)RAM 20 更新時被寫入的第一個位置是最早填充的扇區(qū)30中的第一個位置。即,被填充的扇區(qū)30用記錄(對應(yīng)于RAM 20中所存儲的數(shù)據(jù)的地址/數(shù)據(jù)對)填充,而且是首先被填充的扇區(qū)。 在一種實施方式中,被填充的扇區(qū),例如填充扇區(qū)30、32、34和36,不包括空位置。在時間上來說,在最早填充的扇區(qū)30之后被填充的下一個扇區(qū)是較早填充的扇區(qū)32。較早填充的扇區(qū)32中的每個扇區(qū)被順次填充,其中較早填充的扇區(qū)32的每個扇區(qū)中的每個位置都被順次填充。在時間上來說,在較早填充的扇區(qū)32之后被填充的下一個扇區(qū)是較新填充的扇區(qū) 34。同樣,較新填充的扇區(qū)34中的每個扇區(qū)被順次填充,其中較新填充的扇區(qū)34的每個扇區(qū)中的每個位置都被順次填充。而且,應(yīng)當(dāng)指出,在較早填充的扇區(qū)32中的最早填充的扇區(qū)之后,順次填充繞到閃存陣列沈的頂部,到達(dá)較新填充的扇區(qū)34的第一個扇區(qū)。因此, 應(yīng)當(dāng)指出,閃存陣列26中的兩個記錄位置(S卩,一對NVM位置)可以認(rèn)為是相鄰的(S卩,邏輯上相鄰或者邏輯上順次),即使這兩個位置中的第二個需要繞到下一行、下一個扇區(qū)或者甚至到閃存陣列沈的頂部。在時間上來說,在較新填充的扇區(qū)34之后被填充的下一個扇區(qū)是最新填充的扇區(qū)36。同樣,最新填充的扇區(qū)36中的每個位置被順次填充。因此,最新填充的扇區(qū)36存儲比較新填充的扇區(qū)34更新的來自RAM 20的數(shù)據(jù),而較新填充的扇區(qū)34 存儲比較早填充的扇區(qū)32更新的來自RAM20的數(shù)據(jù),而較早填充的扇區(qū)32存儲比最早填充的扇區(qū)30更新的來自RAM20的數(shù)據(jù)。仍然參考圖2,在時間上來說,在最新填充的扇區(qū)36之后被填充的下一個扇區(qū)是當(dāng)前正在填充的扇區(qū)38。因此,圖2表示在存儲器系統(tǒng)18的操作期間某個特定時間點的閃存陣列26,其中扇區(qū)38正被填充。圖2示出了這個扇區(qū)的放大版本,以便更好地理解閃存陣列沈如何被順次填充(即,寫或者加載)。這也是更新EEE存儲器系統(tǒng)18的處理。應(yīng)當(dāng)指出,在最新填充扇區(qū)36的最后一個位置被填充之后,當(dāng)前正在填充的扇區(qū)38在其第一個位置開始填充。當(dāng)前正在填充的扇區(qū)38示出為具有多行,其中前四行中的每一行都代表已被填充的行46 (其中,這些行中的所有位置都被填充,因而所述行中沒有空位置)。當(dāng)前正在填充的扇區(qū)38的最后8行中的每一行都代表空行50(其中,所述行中的所有位置都是空的,為邏輯電平一,因而這些行中沒有位置被填充)。當(dāng)前正在填充的扇區(qū)38中的行48 當(dāng)前正在被填充,該行既包括已填充的位置也包括空位置,被邊界43隔開。應(yīng)當(dāng)指出,位置 42代表存儲最新寫入記錄的位置,其中ADDR2代表RAM 20中用新值最新更新的地址位置, 而DATA2代表寫到RAM 20中那個位置的更新值。與位置42相鄰的位置44代表下一個可順次尋址的可用位置,對RAM 20的下一次更新將記錄到該位置。應(yīng)當(dāng)指出,順次在位置42 之前的位置存儲ADDR1,其中ADDRl代表RAM 20中在ADDR2之前更新的下一個最新更新的地址位置,而DATAl代表寫到RAM 20中的ADDRl的更新值。應(yīng)當(dāng)指出,在一種實施方式中, 由于ADDRl和ADDR2的更新存儲在閃存陣列沈中,因此假定DATAl和DATA2分別是與更新之前存儲在ADDRl和ADDR2的值不同的值。而且,應(yīng)當(dāng)指出,閃存陣列沈的每個扇區(qū)都可以具有任意數(shù)量的行,并且對當(dāng)前正在填充的扇區(qū)38的說明僅僅提供了每個都包括13行的扇區(qū)的一個例子。因此,可以理解,閃存陣列沈的加載是如何根據(jù)順序的地址順次地執(zhí)行的。此外,在EEE存儲器系統(tǒng)18的操作中,閃存陣列沈可以包括一對地址,這對地址包括最早填充的位置(例如,位置42)和相對于最后被填充位置(例如,位置44)連續(xù)的空位置。過去,在例如當(dāng)前正在填充的扇區(qū)38的當(dāng)前正在填充的扇區(qū)變滿并且最終需要對后續(xù)更新的附加空空間的某個時間點,例如最早填充的扇區(qū)30的最早填充扇區(qū)把其有效記錄轉(zhuǎn)移到空扇區(qū),然后該最早填充的扇區(qū)被擦除。這種轉(zhuǎn)移數(shù)據(jù)與擦除的組合操作會是相當(dāng)耗時而且非常不期望的。圖3中所示的是描述操作EEE存儲器系統(tǒng)18的方法的流程圖60,該方法避免在持續(xù)的處理中對該扇區(qū)轉(zhuǎn)移所有有效記錄和執(zhí)行完全擦除處理的延遲的狀況。EEE存儲器系統(tǒng)18的更新在步驟62開始。步驟62響應(yīng)于對RAM 20的寫訪問而開始,以便對所選位置執(zhí)行寫入。在步驟64確定RAM 20中要被寫入的位置是否已經(jīng)處于擦除狀態(tài)。在NVM中, 如果要被寫入的位置已經(jīng)被擦除,則唯一的任務(wù)就是執(zhí)行寫入。因而,作為NVM的仿真,簡單地在當(dāng)前正在填充的扇區(qū)中的下一個位置寫所選位置,在圖2的例子中所述扇區(qū)是扇區(qū) 38,更特別地所述位置是填充位置44。圖4中所示的是,對于要被寫入的RAM位置不處于擦除狀態(tài)的情況,在理解流程圖 60的步驟(尤其是步驟80)中有用的例子中最早填充的扇區(qū)30和當(dāng)前正在填充的扇區(qū)38 的圖。最早填充的扇區(qū)30具有處于無效(inactive)狀態(tài)的第一部分記錄。在這種情況下, 無效意味著記錄或者已經(jīng)被更新并且因而更新的數(shù)據(jù)寫到NVM 26中的后續(xù)位置,或者已經(jīng)被轉(zhuǎn)移到NVM沈中的不同位置。因而,對于RAM中的給定位置,最新寫入的位置具有有效記錄。在第一部分無效位置之后(在這個例子中該部分在一行開頭的無效位置結(jié)束),存在在所述行中第二位置的有效記錄82,之后跟著有效記錄84,之后在所述行的結(jié)尾跟著更新后的記錄86,之后在下一行的開頭跟著更新后的記錄88,之后跟著有效記錄90,并且之后跟著有效記錄92。當(dāng)前正在填充的扇區(qū)38以被填充的位置開始,后面跟著空位置。在所述被填充的位置之后的前五個位置要在所述寫操作中被填充。在這個例子中,最后被填充的位置是一行中的第一個位置,下一個位置是位置94,后面跟著位置96,后面跟著位置98, 開始下一行的位置100,后面跟著位置102。剩余的位置是空的。對于該方法中把RAM位置識別為處于非擦除狀態(tài)的步驟64的情況,下一步是確定被擦除扇區(qū)的數(shù)量是否大于或者等于閾值。這可以簡單地是存在至少一個完全為空的扇區(qū)或者可以有更高的需求,例如兩個或者三個。如果滿足閾值,則可以作為下一個位置(例如圖3所示位置44)的寫入來簡單地執(zhí)行更新。另一方面,如果不滿足閾值,對于圖2所示如果要求是存在兩個空扇區(qū)時這種情況將發(fā)生,則下一個步驟70是確定來自最早填充的扇區(qū)的有效記錄的轉(zhuǎn)移是否完成。如果所有記錄都是無效的,則轉(zhuǎn)移已經(jīng)完成,而且下一個步驟在72。如果還有任何記錄仍然有效,則下一步驟是執(zhí)行一部分有效記錄從最早填充的扇區(qū)的轉(zhuǎn)移。在這個所述例子中,要從最早填充的扇區(qū)轉(zhuǎn)移的這部分是四個記錄,并且在圖4 中示出。如圖4所示,有效記錄82轉(zhuǎn)移到位置94,有效記錄84轉(zhuǎn)移到位置96,有效記錄90 轉(zhuǎn)移到位置98,而有效記錄92轉(zhuǎn)移到位置100。在記錄82、84、90和92轉(zhuǎn)移之后,它們就被標(biāo)記為無效。由于已經(jīng)被更新,因此記錄86和88已經(jīng)是無效的。因而,記錄86和88被跳過,并且不作為寫操作的一部分被轉(zhuǎn)移。用于RAM 20中要被寫入的被選位置的新數(shù)據(jù)寫到位置102,如圖4中所示,并且就象圖3中的步驟66那樣。另一方面,如果在步驟70中確定最早填充的扇區(qū)中的所有記錄都是無效的,則執(zhí)行確定最早填充的扇區(qū)是否已經(jīng)被擦除的步驟72。如果是,則通過寫入到當(dāng)前正在填充的扇區(qū)中的下一個位置,例如圖2中所示的位置44,來更新EEE存儲器系統(tǒng)18。并且,這意味著現(xiàn)在存在不同的最早填充的扇區(qū)。相應(yīng)地,在步驟76中,識別新的最早填充的扇區(qū)。如果最早填充的扇區(qū)還沒有被擦除,則執(zhí)行擦除處理的一部分。在這個例子中,擦除處理包括對該最早填充的扇區(qū)施加多個寫脈沖。因而,一部分可以是所施加的單個擦除脈沖。擦除處理可以包括一百個脈沖,因此每個脈沖僅僅是整個擦除的百分之一,使得擦除脈沖的每次出現(xiàn)相對短,從而對整個寫循環(huán)具有相對小的影響。對其的變化包括改變脈沖寬度或者脈沖的數(shù)量。變化可以基于被填充的扇區(qū)有多接近于填滿而進(jìn)行。例如,可以生成兩個脈沖或者脈沖的寬度可以加倍。所執(zhí)行的寫入處理的部分小于完整的寫入處理。通過寫到當(dāng)前正在填充的扇區(qū)中的下一個位置,例如圖2中所示的位置44,來更新EEE存儲器系統(tǒng)18。 可能期望同時執(zhí)行寫入(步驟66)和擦除處理的部分(步驟74)。到現(xiàn)在為止,應(yīng)當(dāng)認(rèn)識到,已經(jīng)提供了一種方法,該方法允許根據(jù)需要對每個更新循環(huán)進(jìn)行一部分?jǐn)?shù)據(jù)轉(zhuǎn)移或者一部分寫入處理,以確保有足夠的空間可以用于執(zhí)行更新, 而根本不需要在出現(xiàn)這種情況時立刻進(jìn)行大量的數(shù)據(jù)轉(zhuǎn)移和完整的擦除處理,造成大的延遲。因為實現(xiàn)本發(fā)明的裝置大部分是由本領(lǐng)域技術(shù)人員已知的電子部件和電路組成的,因此為了理解和認(rèn)識本發(fā)明的基本概念并且為了不模糊或者分散本發(fā)明的教導(dǎo),電路的細(xì)節(jié)將不以比如上所述的認(rèn)為是需要的程度更具體地解釋。而且,例如,在一種實施方式中,所說明的系統(tǒng)10的元件是位于單個集成電路上或者同一設(shè)備中的電路系統(tǒng)。另選地,系統(tǒng)10可以包括任何數(shù)量彼此互連的單獨(dú)的集成電路或者單獨(dú)的設(shè)備。例如,EEE存儲器系統(tǒng)18可以位于與處理器14相同的集成電路上或者在單獨(dú)的集成電路上。存儲器系統(tǒng)18可以是嵌入式存儲器系統(tǒng)或者獨(dú)立的存儲器系統(tǒng)。 其它模塊16也可以位于單獨(dú)的集成電路或者設(shè)備上。此外,本領(lǐng)域技術(shù)人員將認(rèn)識到,上述操作的功能之間的邊界僅僅是說明性的。多個操作的功能可以組合到單個操作中,以及/或者單個操作的功能可以分布到附加的操作中。而且,另選實施方式可以包括特定操作的多個實例,并且操作的次序可以在各種其它實施方式中改變。盡管本發(fā)明在這里是參考具體實施方式
進(jìn)行描述的,但是在不背離以下權(quán)利要求中所述本發(fā)明范圍的情況下,可以進(jìn)行各種修改與變化。例如,除了閃存存儲器之外,任何類型的NVM都可以使用。而且,步驟80描述為轉(zhuǎn)移四個記錄,后面跟著把新數(shù)據(jù)寫到當(dāng)前正在填充的扇區(qū)中,但是這四個記錄和新數(shù)據(jù)的次序可以不同。在所轉(zhuǎn)移的記錄的數(shù)量小于扇區(qū)中的記錄總數(shù)時,這個數(shù)目當(dāng)然可以是預(yù)先確定的與4不同的數(shù)字。相應(yīng)地,說明書和附圖應(yīng)當(dāng)認(rèn)為是說明性而不是約束性意義的,而且所有這類修改都意圖包括在本發(fā)明的范圍之內(nèi)。在此關(guān)于特定實施方式所述的任何好處、優(yōu)點或者對問題的解決方案都不希望解釋為任何或者全部權(quán)利要求的關(guān)鍵的、必需的或者基本的特征或者要素。 如在此所使用的,術(shù)語“耦合”不意圖限定到直接耦合或者機(jī)械耦合。此外,詞語“一” (a)或“一個”(an),如同在此所使用的,被定義為一個或多個。同樣,諸如“至少一個”或“一個或多個”這樣的引入性短語的使用在權(quán)利要求中不應(yīng)當(dāng)被認(rèn)為暗指由不定冠詞“一” (a)或“一個”(an)所引入的另一權(quán)利要求的要素將含有該引入的權(quán)利要求要素的任意特定的權(quán)利要求限定于僅含有一個這樣的要素的發(fā)明,即使當(dāng)同一的權(quán)利要求包括引入性短語“一個或多個”或“至少一個”和例如“一”(a)或“一個”(an)的不定冠詞時也是如此。對于定冠詞的使用同樣如此。除非另外規(guī)定,否則例如“第一”和“第二”這樣的詞語被用來任意區(qū)分此類詞語所描述的要素。因而,這些詞語并不一定意指此類要素的時間先后或其他優(yōu)先級。以下是本發(fā)明的各種實施方式。公開了操作具有隨機(jī)存取存儲器(RAM)和非易失性存儲器(NVM)的仿真電可擦除系統(tǒng)的方法,其中NVM具有多個扇區(qū),其中一個扇區(qū)是當(dāng)前正在填充的扇區(qū),而另一個扇區(qū)是最早填充的扇區(qū),其中當(dāng)前正在填充的扇區(qū)的位置是根據(jù)邏輯上順次排序加載的。該方法包括接收對RAM的寫訪問,其中該寫訪問提供第一寫數(shù)據(jù)和RAM的第一地址。該方法還包括,響應(yīng)于所述寫訪問,把所述第一寫數(shù)據(jù)存儲到RAM的所述第一地址。該方法還包括, 響應(yīng)于所述寫訪問,更新NVM當(dāng)前正在填充的扇區(qū)中與該當(dāng)前正在填充的扇區(qū)的最新填充位置邏輯上順次且緊挨著的空位置,其中更新空位置包括把所述第一寫數(shù)據(jù)和第一地址作為第一記錄存儲在該空位置。該方法還包括,響應(yīng)于所述寫訪問,基于在最早填充的扇區(qū)是否存在任何剩余的有效記錄,執(zhí)行至多預(yù)定數(shù)量的有效記錄從NVM的最早填充的扇區(qū)到當(dāng)前正在填充的扇區(qū)的轉(zhuǎn)移或者通過向NVM的最早填充的扇區(qū)提供預(yù)定數(shù)量的擦除脈沖而進(jìn)行的一部分擦除處理中的一個,其中有效記錄的預(yù)定數(shù)量小于最早填充的扇區(qū)中可以存儲的全部記錄的最大數(shù)量,并且其中每個有效記錄都包括RAM地址和對應(yīng)的數(shù)據(jù),該數(shù)據(jù)代表存儲在RAM中所述RAM地址的數(shù)據(jù),其中擦除脈沖的預(yù)定數(shù)量小于完成擦除處理所需的擦除脈沖的總數(shù)。所述方法的特征還在于響應(yīng)于寫訪問執(zhí)行至多預(yù)定數(shù)量的有效記錄的轉(zhuǎn)移或者一部分擦除處理中一個的步驟包括確定在最早填充的扇區(qū)中是否存在任何剩余的有效記錄;如果在最早填充的扇區(qū)中存在任何剩余的有效記錄,則執(zhí)行至多預(yù)定數(shù)量的有效記錄從NVM的最早填充的扇區(qū)到當(dāng)前正在填充的扇區(qū)的轉(zhuǎn)移;并且如果在最早填充的扇區(qū)中不存在任何剩余的有效記錄,則通過向NVM的最早填充的扇區(qū)提供預(yù)定數(shù)量的擦除脈沖執(zhí)行一部分擦除處理。該方法的進(jìn)一步的特征在于如果在最早填充的扇區(qū)中不存在任何剩余的有效記錄,該方法還包括確定NVM的最早填充的扇區(qū)是否已經(jīng)被完全擦除, 其中只有當(dāng)NVM的最早填充的扇區(qū)還沒有完全被擦除時才執(zhí)行所述一部分擦除處理。該方法還可以包括,如果NVM的最早填充的扇區(qū)已經(jīng)被完全擦除,就把該最早填充的扇區(qū)的標(biāo)識從最早填充的扇區(qū)更新為被擦除的扇區(qū)。該方法的進(jìn)一步的特征在于,如果在最早填充的扇區(qū)中存在任何剩余的有效記錄,則執(zhí)行至多預(yù)定數(shù)量的有效記錄的轉(zhuǎn)移包括把每個轉(zhuǎn)移的有效記錄都存儲在NVM的當(dāng)前正在填充的扇區(qū)的后續(xù)空位置,其中每個后續(xù)空位置都與當(dāng)前正在填充的扇區(qū)的最新填充位置邏輯上順次且緊挨著。該方法還可以包括,響應(yīng)于所述寫訪問,確定由RAM的第一地址所指示的RAM位置是否為空;并且只有當(dāng)確定由RAM的第一地址所指示的RAM位置不為空時才執(zhí)行至多預(yù)定數(shù)量的有效記錄的轉(zhuǎn)移或者一部分擦除處理中的一個。該方法還可以包括,響應(yīng)于所述寫訪問,確定NVM的被擦除扇區(qū)的數(shù)量是否大于預(yù)定的閾值;并且只有當(dāng)被擦除扇區(qū)的數(shù)量小于該預(yù)定閾值時才執(zhí)行至多預(yù)定數(shù)量的有效記錄的轉(zhuǎn)移或者一部分擦除處理中的一個。該方法的進(jìn)一步的特征在于,只有當(dāng)確定由RAM的第一地址所指示的RAM位置不為空并且被擦除扇區(qū)的數(shù)量小于所述預(yù)定閾值時才執(zhí)行至多預(yù)定數(shù)量的有效記錄的轉(zhuǎn)移或者一部分擦除處理中的一個。該方法的進(jìn)一步的特征在于,擦除脈沖的預(yù)定數(shù)量為一。 還公開了操作具有隨機(jī)存取存儲器(RAM)和非易失性存儲器(NVM)的仿真電可擦除存儲器系統(tǒng)的方法,其中NVM具有多個扇區(qū),其中一個扇區(qū)是當(dāng)前正在填充的扇區(qū), 而另一個是最早填充的扇區(qū),其中當(dāng)前正在填充的扇區(qū)的位置是根據(jù)邏輯上順次排序更新的。該方法包括接收對RAM的第一寫訪問,其中該第一寫訪問提供第一寫數(shù)據(jù)和RAM的第一地址。該方法還包括,響應(yīng)于所述第一寫訪問,把所述第一寫數(shù)據(jù)存儲到RAM的第一地址。該方法還包括,響應(yīng)于所述第一寫訪問,更新NVM的當(dāng)前正在填充的扇區(qū)中與該當(dāng)前正在填充的扇區(qū)的最新填充位置邏輯上順次且緊挨著的空位置,其中更新空位置包括把所述第一寫數(shù)據(jù)和第一地址作為第一記錄存儲在該空位置。該方法還包括,響應(yīng)于所述第一寫訪問,確定在NVM的最早填充扇區(qū)中存在剩余的有效記錄,并且把至多預(yù)定數(shù)量的有效記錄從NVM的最早填充的扇區(qū)轉(zhuǎn)移到當(dāng)前正在填充的扇區(qū),其中有效記錄的預(yù)定數(shù)量小于最早填充的扇區(qū)中可以存儲的全部記錄的最大數(shù)量,并且其中每個有效記錄都包括RAM地址和對應(yīng)的數(shù)據(jù),該數(shù)據(jù)代表存儲在RAM中的所述RAM地址的數(shù)據(jù)。該方法的進(jìn)一步的特征在于,轉(zhuǎn)移至多預(yù)定數(shù)量的有效記錄包括把每個轉(zhuǎn)移的有效記錄都存儲在NVM的當(dāng)前正在填充的扇區(qū)的后續(xù)空位置,其中每個后續(xù)空位置都與當(dāng)前正在填充的扇區(qū)的最新填充位置邏輯上順次且緊挨著。該方法的進(jìn)一步的特征在于,轉(zhuǎn)移至多預(yù)定數(shù)量的有效記錄是進(jìn)一步響應(yīng)于確定由RAM的第一地址所指示的RAM位置非空而進(jìn)行的。該方法還可以包括接收對RAM的第二寫訪問,其中該第二寫訪問提供第二寫數(shù)據(jù)和RAM的第二地址,響應(yīng)于所述第二寫訪問,把所述第二寫數(shù)據(jù)存儲到RAM的所述第二地址,響應(yīng)于所述第二寫訪問,更新 NVM的當(dāng)前正在填充的扇區(qū)中與該當(dāng)前正在填充的扇區(qū)的最新填充位置邏輯上順次且緊挨著的第二空位置,其中更新第二空位置包括把所述第二寫數(shù)據(jù)和第二地址作為第二記錄存儲在該第二空位置,并且響應(yīng)于所述第二寫訪問,確定在NVM的最早填充扇區(qū)中不存在任何剩余的有效記錄并且把至多預(yù)定數(shù)量的擦除脈沖提供給NVM的最早填充的扇區(qū),其中擦除脈沖的預(yù)定數(shù)量小于完全擦除NVM的最早填充的扇區(qū)所需的擦除脈沖的總數(shù)。該方法還可以包括,響應(yīng)于所述第二寫訪問,確定NVM的最早填充的扇區(qū)是否已經(jīng)被完全擦除,其中只有當(dāng)NVM的最早填充的扇區(qū)還沒有被完全擦除時預(yù)定數(shù)量的擦除脈沖才提供給NVM的最早填充的扇區(qū)。該方法還可以包括,如果NVM的最早填充的扇區(qū)已經(jīng)被完全擦除,就把最早填充的扇區(qū)的標(biāo)識從最早填充的扇區(qū)更新成被擦除的扇區(qū)。該方法還可以包括接收對RAM 的第二寫訪問,其中該第二寫訪問提供第二寫數(shù)據(jù)和RAM的第二地址,響應(yīng)于所述第二寫訪問,把所述第二寫數(shù)據(jù)存儲到RAM的第二地址,響應(yīng)于所述第二寫訪問,更新NVM的當(dāng)前正在填充的扇區(qū)中與該當(dāng)前正在填充的扇區(qū)的最新填充位置邏輯上順次且緊挨著的第二空位置,其中更新第二空位置包括把所述第二寫數(shù)據(jù)和第二地址作為第二記錄存儲在該第二空位置,以及響應(yīng)于所述第二寫訪問,確定在NVM的最早填充扇區(qū)中是否存在任何剩余的有效記錄,并且,如果存在任何剩余的有效記錄,則將至多為預(yù)定數(shù)量的有效記錄的附加數(shù)量的有效記錄從NVM的最早填充的扇區(qū)轉(zhuǎn)移到當(dāng)前正在填充的扇區(qū)。
還公開了操作具有隨機(jī)存取存儲器(RAM)和非易失性存儲器(NVM)的仿真電可擦除存儲器系統(tǒng)的方法,其中NVM具有多個扇區(qū),其中一個扇區(qū)是當(dāng)前正在填充的扇區(qū),而另一個是最早填充的扇區(qū),其中當(dāng)前正在填充的扇區(qū)的位置是根據(jù)邏輯上順次排序更新的。 該方法包括接收對RAM的第一寫訪問,其中該第一寫訪問提供第一寫數(shù)據(jù)和RAM的第一地址。該方法還包括,響應(yīng)于所述第一寫訪問,把所述第一寫數(shù)據(jù)存儲到RAM的第一地址。該方法還包括,響應(yīng)于所述第一寫訪問,更新NVM的當(dāng)前正在填充的扇區(qū)中與該當(dāng)前正在填充的扇區(qū)的最新填充位置邏輯上順次且緊挨著的空位置,其中更新空位置包括把所述第一寫數(shù)據(jù)和第一地址作為第一記錄存儲在該空位置。該方法還包括,響應(yīng)于所述第一寫訪問, 確定在NVM的最早填充的扇區(qū)中不存在任何剩余的有效記錄,并且把至多預(yù)定數(shù)量的擦除脈沖提供給NVM的最早填充的扇區(qū),其中擦除脈沖的預(yù)定數(shù)量小于完全擦除NVM的最早填充的扇區(qū)所需的擦除脈沖的總數(shù)。該方法還可以包括接收對RAM的第二寫訪問,其中該第二寫訪問提供寫數(shù)據(jù)和RAM的第二地址,并且其中該第二寫訪問是第一寫訪問緊接著的后續(xù)寫訪問;響應(yīng)于所述第二寫訪問,把所述第二寫數(shù)據(jù)存儲到RAM的第二地址;響應(yīng)于所述第二寫訪問,更新NVM的當(dāng)前正在填充的扇區(qū)中與該當(dāng)前正在填充的扇區(qū)的最新填充位置邏輯上順次且緊挨著的第二空位置,其中更新第二空位置包括把所述第二寫數(shù)據(jù)和第二地址作為第二記錄存儲在該第二空位置;并且響應(yīng)于所述第二寫訪問,確定NVM的最早填充的扇區(qū)是否已經(jīng)被完全擦除,并且,如果最早填充的扇區(qū)已經(jīng)被完全擦除,就把至多為預(yù)定數(shù)量的擦除脈沖的一個或多個附加的擦除脈沖提供給最早填充的扇區(qū),其中第一寫訪問處理中NVM的最早填充的扇區(qū)是與第二寫訪問處理中NVM的最早填充的扇區(qū)相同的扇區(qū)。該方法還可以包括,響應(yīng)于所述第二寫訪問,如果最早填充的扇區(qū)已經(jīng)被完全擦除,就把最早填充的扇區(qū)的標(biāo)識從最早填充的扇區(qū)更新為被擦除的扇區(qū)。該方法的進(jìn)一步的特征在于, 擦除脈沖的預(yù)定數(shù)量為一。
權(quán)利要求
1.一種操作具有隨機(jī)存取存儲器(RAM)和非易失性存儲器(NVM)的仿真電可擦除存儲器系統(tǒng)的方法,其中所述NVM具有多個扇區(qū),其中一個扇區(qū)是當(dāng)前正在填充的扇區(qū),而另一個扇區(qū)是最早填充的扇區(qū),其中所述當(dāng)前正在填充的扇區(qū)的位置是根據(jù)邏輯上順次的排序加載的,該方法包括以下步驟接收對所述RAM的寫訪問,其中所述寫訪問提供第一寫數(shù)據(jù)和RAM的第一地址; 響應(yīng)于所述寫訪問,將所述第一寫數(shù)據(jù)存儲到所述RAM的第一地址; 響應(yīng)于所述寫訪問,更新所述NVM的所述當(dāng)前正在填充的扇區(qū)中與該當(dāng)前正在填充的扇區(qū)的最新填充位置邏輯上順次且緊挨著的空位置,其中更新空位置包括將所述第一寫數(shù)據(jù)和所述第一地址作為第一記錄存儲在所述空位置;以及響應(yīng)于所述寫訪問,基于在所述最早填充的扇區(qū)中是否存在任何剩余的有效記錄,執(zhí)行以下操作中的一個至多預(yù)定數(shù)量的有效記錄從所述NVM的所述最早填充的扇區(qū)到所述當(dāng)前正在填充的扇區(qū)的轉(zhuǎn)移,其中有效記錄的預(yù)定數(shù)量小于可在所述最早填充的扇區(qū)中存儲的全部記錄的最大數(shù)量,并且其中每個有效記錄都包括RAM地址和代表存儲在所述RAM中的所述RAM地址處的數(shù)據(jù)的對應(yīng)的數(shù)據(jù),或者通過向所述NVM的所述最早填充的扇區(qū)提供預(yù)定數(shù)量的擦除脈沖來執(zhí)行一部分擦除處理,其中擦除脈沖的預(yù)定數(shù)量小于完成擦除處理所需的擦除脈沖的總數(shù)。
2.如權(quán)利要求1所述的方法,其中響應(yīng)于所述寫訪問執(zhí)行至多預(yù)定數(shù)量的有效記錄的轉(zhuǎn)移或者一部分擦除處理中一個的步驟包括確定在所述最早填充的扇區(qū)中是否存在任何剩余的有效記錄; 如果在所述最早填充的扇區(qū)中存在任何剩余的有效記錄,則執(zhí)行至多預(yù)定數(shù)量的有效記錄從所述NVM的所述最早填充的扇區(qū)到所述當(dāng)前正在填充的扇區(qū)的轉(zhuǎn)移;以及如果在所述最早填充的扇區(qū)中不存在任何剩余的有效記錄,則通過向所述NVM的所述最早填充的扇區(qū)提供預(yù)定數(shù)量的擦除脈沖來執(zhí)行一部分擦除處理。
3.如權(quán)利要求2所述的方法,其中,如果在所述最早填充的扇區(qū)中不存在任何剩余的有效記錄,則所述方法還包括確定所述NVM的所述最早填充的扇區(qū)是否已經(jīng)被完全擦除,其中只有當(dāng)所述NVM的所述最早填充的扇區(qū)還沒有完全被擦除時才執(zhí)行所述一部分擦除處理。
4.如權(quán)利要求3所述的方法,還包括如果所述NVM的所述最早填充的扇區(qū)已經(jīng)被完全擦除,則將所述最早填充的扇區(qū)的標(biāo)識從最早填充的扇區(qū)更新為被擦除的扇區(qū)。
5.如權(quán)利要求2所述的方法,其中,如果在所述最早填充的扇區(qū)中存在任何剩余的有效記錄,則執(zhí)行至多預(yù)定數(shù)量的有效記錄的轉(zhuǎn)移包括將每個轉(zhuǎn)移的有效記錄都存儲在所述NVM的所述當(dāng)前正在填充的扇區(qū)的后續(xù)空位置, 其中每個后續(xù)空位置都與所述當(dāng)前正在填充的扇區(qū)的最新填充位置邏輯上順次且緊挨著。
6.如權(quán)利要求1所述的方法,還包括響應(yīng)于所述寫訪問,確定由所述MM的第一地址所指示的RAM的位置是否為空;并且只有當(dāng)確定由所述RAM的第一地址所指示的RAM位置不為空時才執(zhí)行所述至多預(yù)定數(shù)量的有效記錄的轉(zhuǎn)移或者所述一部分擦除處理中的一個。
7.如權(quán)利要求1所述的方法,還包括響應(yīng)于所述寫訪問,確定所述NVM的被擦除扇區(qū)的數(shù)量是否大于預(yù)定閾值;并且只有當(dāng)被擦除扇區(qū)的數(shù)量小于所述預(yù)定閾值時才執(zhí)行所述至多預(yù)定數(shù)量的有效記錄的轉(zhuǎn)移或者所述一部分擦除處理中的一個。
8.如權(quán)利要求1所述的方法,其中只有當(dāng)確定由所述RAM的第一地址所指示的RAM位置不為空并且被擦除扇區(qū)的數(shù)量小于所述預(yù)定閾值時才執(zhí)行所述至多預(yù)定數(shù)量的有效記錄的轉(zhuǎn)移或者所述一部分擦除處理中的一個。
9.如權(quán)利要求1所述的方法,其中擦除脈沖的預(yù)定數(shù)量為一。
10.一種操作具有隨機(jī)存取存儲器(RAM)和非易失性存儲器(NVM)的仿真電可擦除存儲器系統(tǒng)的方法,其中所述NVM具有多個扇區(qū),其中一個扇區(qū)是當(dāng)前正在填充的扇區(qū),而另一個扇區(qū)是最早填充的扇區(qū),其中所述當(dāng)前正在填充的扇區(qū)的位置是根據(jù)邏輯上順次的排序更新的,所述方法包括接收對所述RAM的第一寫訪問,其中所述第一寫訪問提供第一寫數(shù)據(jù)和RAM的第一地址;響應(yīng)于所述第一寫訪問,將所述第一寫數(shù)據(jù)存儲到所述RAM的第一地址; 響應(yīng)于所述第一寫訪問,更新所述NVM的所述當(dāng)前正在填充的扇區(qū)中與該當(dāng)前正在填充的扇區(qū)最新填充位置邏輯上順次且緊挨著的空位置,其中更新所述空位置包括將所述第一寫數(shù)據(jù)和所述第一地址作為第一記錄存儲在所述空位置;響應(yīng)于所述第一寫訪問,確定在所述NVM的所述最早填充的扇區(qū)中是否存在剩余的有效記錄,并且將至多預(yù)定數(shù)量的有效記錄從所述NVM的所述最早填充的扇區(qū)轉(zhuǎn)移到所述當(dāng)前正在填充的扇區(qū),其中有效記錄的預(yù)定數(shù)量小于可以存儲在所述最早填充的扇區(qū)中的全部記錄的最大數(shù)量,并且其中每個有效記錄都包括RAM地址和代表當(dāng)前存儲在所述RAM中的所述RAM地址處的數(shù)據(jù)的對應(yīng)的數(shù)據(jù)。
11.如權(quán)利要求10所述的方法,其中轉(zhuǎn)移至多預(yù)定數(shù)量的有效記錄包括將每個轉(zhuǎn)移的有效都記錄存儲在所述NVM的所述當(dāng)前正在填充的扇區(qū)的后續(xù)空位置, 其中每個后續(xù)空位置都與所述當(dāng)前正在填充的扇區(qū)的最新填充位置邏輯上順次且緊挨著。
12.如權(quán)利要求10所述的方法,其中轉(zhuǎn)移至多預(yù)定數(shù)量的有效記錄是進(jìn)一步響應(yīng)于確定由所述MM的第一地址所指示的RAM位置非空而進(jìn)行的。
13.如權(quán)利要求10所述的方法,還包括接收對所述RAM的第二寫訪問,其中所述第二寫訪問提供第二寫數(shù)據(jù)和RAM的第二地址;響應(yīng)于所述第二寫訪問,將所述第二寫數(shù)據(jù)存儲到所述RAM的第二地址; 響應(yīng)于所述第二寫訪問,更新所述NVM的上述當(dāng)前正在填充的扇區(qū)中與該當(dāng)前正在填充的扇區(qū)的最新填充位置邏輯上順次且緊挨著的第二空位置,其中更新所述第二空位置包括將所述第二寫數(shù)據(jù)和所述第二地址作為第二記錄存儲在所述第二空位置;響應(yīng)于所述第二寫訪問,確定在所述NVM的所述最早填充的扇區(qū)中不存在任何剩余的有效記錄并且將至多預(yù)定數(shù)量的擦除脈沖提供給所述NVM的所述最早填充的扇區(qū),其中擦除脈沖的預(yù)定數(shù)量小于完全擦除所述NVM的所述最早填充的扇區(qū)所需的擦除脈沖的總數(shù)。
14.如權(quán)利要求13所述的方法,還包括響應(yīng)于所述第二寫訪問,確定所述NVM的所述最早填充的扇區(qū)是否已經(jīng)被完全擦除, 其中只有當(dāng)所述NVM的所述最早填充的扇區(qū)還沒有被完全擦除時預(yù)定數(shù)量的擦除脈沖才被提供給NVM的所述最早填充的扇區(qū)。
15.如權(quán)利要求14所述的方法,還包括如果所述NVM的所述最早填充的扇區(qū)已經(jīng)被完全擦除,則將所述最早填充的扇區(qū)的標(biāo)識從最早填充的扇區(qū)更新成被擦除的扇區(qū)。
16.如權(quán)利要求10所述的方法,還包括接收對所述RAM的第二寫訪問,其中所述第二寫訪問提供第二寫數(shù)據(jù)和RAM的第二地址;響應(yīng)于所述第二寫訪問,將所述第二寫數(shù)據(jù)存儲到所述RAM的第二地址; 響應(yīng)于所述第二寫訪問,更新所述NVM的所述當(dāng)前正在填充的扇區(qū)中與該當(dāng)前正在填充的扇區(qū)的最新填充位置邏輯上順次且緊挨著的第二空位置,其中更新所述第二空位置包括將所述第二寫數(shù)據(jù)和所述第二地址作為第二記錄存儲在所述第二空位置;響應(yīng)于所述第二寫訪問,確定在所述NVM的所述最早填充的扇區(qū)中是否存在任何剩余的有效記錄,并且,如果存在任何剩余的有效記錄,則將至多為預(yù)定數(shù)量的有效記錄的附加數(shù)量的有效記錄從所述NVM的所述最早填充的扇區(qū)轉(zhuǎn)移到所述當(dāng)前正在填充的扇區(qū)。
17.一種操作具有隨機(jī)存取存儲器(RAM)和非易失性存儲器(NVM)的仿真電可擦除存儲器系統(tǒng)的方法,其中所述NVM具有多個扇區(qū),其中一個扇區(qū)是當(dāng)前正在填充的扇區(qū),而另一個扇區(qū)是最早填充的扇區(qū),其中所述當(dāng)前正在填充的扇區(qū)的位置是根據(jù)邏輯上順次的排序更新的,所述方法包括接收對所述RAM的第一寫訪問,其中所述第一寫訪問提供第一寫數(shù)據(jù)和RAM的第一地址;響應(yīng)于所述第一寫訪問,將所述第一寫數(shù)據(jù)存儲到所述RAM的第一地址; 響應(yīng)于所述第一寫訪問,更新所述NVM的所述當(dāng)前正在填充的扇區(qū)中與該當(dāng)前正在填充的扇區(qū)的最新填充位置邏輯上順次且緊挨著的空位置,其中更新所述空位置包括將所述第一寫數(shù)據(jù)和所述第一地址作為第一記錄存儲在所述空位置;響應(yīng)于所述第一寫訪問,確定在所述NVM的所述最早填充的扇區(qū)中不存在任何剩余的有效記錄,并且將至多預(yù)定數(shù)量的擦除脈沖提供給所述NVM的所述最早填充的扇區(qū),其中擦除脈沖的預(yù)定數(shù)量小于完全擦除所述NVM的所述最早填充的扇區(qū)所需的擦除脈沖的總數(shù)。
18.如權(quán)利要求17所述的方法,還包括接收對所述RAM的第二寫訪問,其中所述第二寫訪問提供第二寫數(shù)據(jù)和RAM的第二地址,并且其中所述第二寫訪問是與所述第一寫訪問緊挨著的后續(xù)寫訪問; 響應(yīng)于所述第二寫訪問,將所述第二寫數(shù)據(jù)存儲到所述RAM的第二地址; 響應(yīng)于所述第二寫訪問,更新所述NVM的所述當(dāng)前正在填充的扇區(qū)中與該當(dāng)前正在填充的扇區(qū)的最新填充位置邏輯上順次且緊挨著的第二空位置,其中更新所述第二空位置包括將所述第二寫數(shù)據(jù)和所述第二地址作為第二記錄存儲在所述第二空位置;響應(yīng)于所述第二寫訪問,確定所述NVM的所述最早填充的扇區(qū)是否已經(jīng)被完全擦除, 并且,如果所述最早填充的扇區(qū)還沒有被完全擦除,就將至多為預(yù)定數(shù)量的擦除脈沖的一個或多個附加的擦除脈沖提供給所述最早填充的扇區(qū),其中在所述第一寫訪問中所述NVM 的最早填充的扇區(qū)是與所述第二寫訪問中所述NVM的最早填充的扇區(qū)相同的所述NVM的扇區(qū)。
19.如權(quán)利要求18所述的方法,還包括響應(yīng)于所述第二寫訪問,如果所述最早填充的扇區(qū)已經(jīng)被完全擦除,則將所述最早填充的扇區(qū)的標(biāo)識從最早填充的扇區(qū)更新為被擦除的扇區(qū)。
20.如權(quán)利要求17所述的方法,其中擦除脈沖的預(yù)定數(shù)量為一。
全文摘要
一種仿真電可擦除存儲器系統(tǒng)(10),包括隨機(jī)存取存儲器(RAM)(20)和非易失性存儲器(NVM)(26)。接收對RAM的寫訪問,該寫訪問提供第一寫數(shù)據(jù)和第一地址,其中所述第一數(shù)據(jù)存儲在RAM中的所述第一地址處,并且NVM的當(dāng)前正在填充的扇區(qū)(38)被更新,以便將所述第一寫數(shù)據(jù)和所述第一地址存儲為第一記錄。響應(yīng)所述寫訪問,基于在NVM的最早填充的扇區(qū)(30)中是否存在任何剩余的有效記錄,執(zhí)行擦除處理的一部分或者至多預(yù)定數(shù)量的有效記錄從最早填充的扇區(qū)到當(dāng)前正在填充的扇區(qū)的轉(zhuǎn)移。有效記錄的預(yù)定數(shù)量小于最早填充的扇區(qū)中可以存儲的全部記錄的最大數(shù)量。
文檔編號G06F13/16GK102549551SQ201080043387
公開日2012年7月4日 申請日期2010年8月5日 優(yōu)先權(quán)日2009年9月29日
發(fā)明者D·L·安德烈, R·S·斯考勒, S·F·麥金蒂 申請人:飛思卡爾半導(dǎo)體公司