本發(fā)明涉及存儲(chǔ)器設(shè)備并且更具體地涉及用于減少存儲(chǔ)器設(shè)備上的壓力的系統(tǒng)和方法。
背景技術(shù):
圖1示出了常規(guī)系統(tǒng)100,包括用于存儲(chǔ)代碼和數(shù)據(jù)的存儲(chǔ)器102和連接至存儲(chǔ)器102用于執(zhí)行存儲(chǔ)器102中存儲(chǔ)的代碼以及從存儲(chǔ)器102讀取數(shù)據(jù)或者將數(shù)據(jù)寫入存儲(chǔ)器102的處理器104。例如,系統(tǒng)100可以是片上系統(tǒng)(soc),該片上系統(tǒng)(soc)是將處理器、存儲(chǔ)器和其它部件集成到單個(gè)芯片上的集成電路。
圖2示出了圖1的系統(tǒng)中的存儲(chǔ)器102的常規(guī)結(jié)構(gòu)。存儲(chǔ)器102可以是廣泛用于存儲(chǔ)代碼和數(shù)據(jù)的非易失性存儲(chǔ)器(nvm)。典型地,nvm被邏輯上分成許多相同大小的邏輯存儲(chǔ)器塊,其中存儲(chǔ)器塊中的一些被配置為存儲(chǔ)代碼以及存儲(chǔ)塊中的一些被配置為存儲(chǔ)數(shù)據(jù)。例如,如圖2所示,具有1280kb大小的nvm102被分成第一至第五存儲(chǔ)器塊106-114,各自具有256kb的大小。第一和第二存儲(chǔ)器塊106和108存儲(chǔ)代碼(即代碼塊),以及第三至第五塊110-114存儲(chǔ)數(shù)據(jù)(即數(shù)據(jù)塊)。通常在制造期間對(duì)代碼塊106和108中的代碼進(jìn)行編程,并且很少由用戶進(jìn)行重新編程。在系統(tǒng)100的操作期間頻繁地讀取和寫入數(shù)據(jù)塊110-114。將數(shù)據(jù)寫入數(shù)據(jù)塊包括擦除先前存儲(chǔ)在數(shù)據(jù)塊中的數(shù)據(jù)以及將新數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)塊中。因此,數(shù)據(jù)塊110-114比代碼塊106-108遭受更多擦除壓力,并且比代碼塊106-108早達(dá)到擦除周期。系統(tǒng)100的使用壽命部分地取決于存儲(chǔ)器102的使用壽命,而存儲(chǔ)器102的使用壽命由達(dá)到最大擦除周期數(shù)量的nvm的第一存儲(chǔ)器塊限定。因此,找到用于減少存儲(chǔ)器設(shè)備上的擦除壓力 的方法以延長soc壽命是理想的。
附圖說明
可以通過參照優(yōu)選實(shí)施例的下列描述連同附圖一起最好地理解本發(fā)明連同其目的和優(yōu)點(diǎn),在附圖中:
圖1示出了常規(guī)系統(tǒng)的框圖;
圖2示出了圖1的系統(tǒng)中的存儲(chǔ)器設(shè)備的常規(guī)結(jié)構(gòu);
圖3是根據(jù)本發(fā)明實(shí)施例用于減少存儲(chǔ)器設(shè)備的壓力的系統(tǒng)的框圖;
圖4是根據(jù)本發(fā)明實(shí)施例圖3的系統(tǒng)的計(jì)數(shù)單元的框圖;
圖5是根據(jù)本發(fā)明另一個(gè)實(shí)施例圖3的系統(tǒng)的計(jì)數(shù)單元的框圖;
圖6是根據(jù)本發(fā)明實(shí)施例圖3的系統(tǒng)的交換單元的框圖;
圖7示出了根據(jù)本發(fā)明實(shí)施例圖3的系統(tǒng)的存儲(chǔ)器設(shè)備的存儲(chǔ)器塊的結(jié)構(gòu);
圖8是根據(jù)本發(fā)明第一實(shí)施例用于減少存儲(chǔ)器設(shè)備上的壓力的方法的流程圖;
圖9是根據(jù)本發(fā)明第二實(shí)施例用于減少存儲(chǔ)器設(shè)備上的壓力的方法的流程圖;
圖10是根據(jù)本發(fā)明第三實(shí)施例用于減少存儲(chǔ)器設(shè)備上的壓力的方法的流程圖;以及
圖11是根據(jù)本發(fā)明實(shí)施例通過圖10的虛設(shè)存儲(chǔ)器塊交換存儲(chǔ)器塊的方法的流程圖。
具體實(shí)施方式
下面結(jié)合附圖闡述的詳細(xì)說明旨在作為本發(fā)明當(dāng)前優(yōu)選實(shí)施例的描述,并且不旨在表示可以實(shí)施本發(fā)明的唯一形式。應(yīng)當(dāng)理解,可以通過旨在包括在本發(fā)明精神和范圍內(nèi)的不同實(shí)施例實(shí)現(xiàn)相同功能或者等效功能。在附圖中,相似的標(biāo)號(hào)始終用于指代相似的元件。此 外,術(shù)語“包括”、“包含”或者它們的任何變型旨在覆蓋非排他性包括,使得包括一系列元件或者步驟的模塊、電路、設(shè)備部件、結(jié)構(gòu)和方法步驟不僅包括那些元件,而且可以包括沒有明確列出的或者這種模塊、電路、設(shè)備部件或者步驟固有的其它元件或者步驟。由“包括...一”引導(dǎo)出的元件或者步驟在沒有更多約束的情況下并不排除包括元件或者步驟的另外的相同元件或者步驟的存在。
在一個(gè)實(shí)施例中,本發(fā)明提供用于減少存儲(chǔ)器設(shè)備上的壓力的系統(tǒng),其中存儲(chǔ)器設(shè)備包括多個(gè)存儲(chǔ)器塊。系統(tǒng)包括:用于基于給定地址讀取和寫入存儲(chǔ)器設(shè)備的讀取和寫入單元,其中所述寫入包括擦除存儲(chǔ)器設(shè)備中存儲(chǔ)的數(shù)據(jù);連接至讀取和寫入單元的計(jì)數(shù)單元,用于遞增多個(gè)計(jì)數(shù)值,其中存儲(chǔ)器塊中的每一個(gè)與指示擦除與其關(guān)聯(lián)的存儲(chǔ)器塊的次數(shù)的至少一個(gè)計(jì)數(shù)值相關(guān)聯(lián);以及連接至計(jì)數(shù)單元用于監(jiān)控計(jì)數(shù)值的控制器,其中當(dāng)檢測與多個(gè)存儲(chǔ)器塊的第一存儲(chǔ)器塊相關(guān)聯(lián)的計(jì)數(shù)值達(dá)到預(yù)定閾值時(shí),控制器基于與第二存儲(chǔ)器塊相關(guān)聯(lián)的計(jì)數(shù)值從多個(gè)存儲(chǔ)器塊選擇要與第一存儲(chǔ)器塊交換的第二存儲(chǔ)器塊、交換第一和第二存儲(chǔ)器塊中存儲(chǔ)的數(shù)據(jù),并生成相應(yīng)的交換信息。
在另一個(gè)實(shí)施例中,本發(fā)明提供減少存儲(chǔ)器設(shè)備上的壓力的方法,其中存儲(chǔ)器設(shè)備包括多個(gè)存儲(chǔ)器塊。該方法包括:每次擦除所述存儲(chǔ)器塊都遞增與存儲(chǔ)器塊相關(guān)聯(lián)的計(jì)數(shù)值;檢測多個(gè)存儲(chǔ)器塊的第一存儲(chǔ)器塊的計(jì)數(shù)值是否已經(jīng)達(dá)到預(yù)定閾值;當(dāng)檢測計(jì)數(shù)值已經(jīng)達(dá)到預(yù)定閾值時(shí)從多個(gè)存儲(chǔ)器塊選擇第二存儲(chǔ)器塊并且將第一存儲(chǔ)器塊中存儲(chǔ)的數(shù)據(jù)與第二存儲(chǔ)器塊中存儲(chǔ)的數(shù)據(jù)交換,其中第二存儲(chǔ)器塊的計(jì)數(shù)值小于第一存儲(chǔ)器塊的計(jì)數(shù)值;以及生成相應(yīng)的交換信息。
現(xiàn)在參考圖3,示出了根據(jù)本發(fā)明實(shí)施例用于減少存儲(chǔ)器設(shè)備的壓力的系統(tǒng)200的框圖。系統(tǒng)200包括:分成多個(gè)存儲(chǔ)器塊204-214的存儲(chǔ)器202,其中存儲(chǔ)器202中存儲(chǔ)的數(shù)據(jù)包括系統(tǒng)200的代碼和數(shù)據(jù);和連接至存儲(chǔ)器202的處理器220,用于執(zhí)行系統(tǒng)200的代碼以及從存儲(chǔ)器202讀取數(shù)據(jù)或者將數(shù)據(jù)寫入存儲(chǔ)器202。在優(yōu)選實(shí)施例中,多個(gè)存儲(chǔ)器塊204-214包括存儲(chǔ)系統(tǒng)200的數(shù)據(jù)的至少第一存 儲(chǔ)器塊204以及存儲(chǔ)系統(tǒng)200的代碼的至少第二存儲(chǔ)器塊208。在優(yōu)選實(shí)施例中,存儲(chǔ)器202是非易失性存儲(chǔ)器(nvm)、閃速存儲(chǔ)器或者電可擦除可編程只讀存儲(chǔ)器(eeprom)。處理器220優(yōu)選地包括系統(tǒng)200的mcu的處理器,或者替換地可以包括系統(tǒng)200內(nèi)的單獨(dú)處理器。
處理器220包括:用于讀取和寫入存儲(chǔ)器200的讀取和寫入(r/w)單元222,其中所述寫入包括擦除先前存儲(chǔ)在存儲(chǔ)器200中的數(shù)據(jù);和連接至讀取和寫入單元222用于更新多個(gè)計(jì)數(shù)值的計(jì)數(shù)單元224,其中存儲(chǔ)器塊204-214中的每一個(gè)與指示已經(jīng)擦除與其關(guān)聯(lián)的存儲(chǔ)器塊的次數(shù)的至少一個(gè)計(jì)數(shù)值相關(guān)聯(lián)。
圖4示出了根據(jù)本發(fā)明實(shí)施例圖3的系統(tǒng)的計(jì)數(shù)單元224的框圖。在優(yōu)選實(shí)施例中,計(jì)數(shù)單元224包括各自與存儲(chǔ)器塊204-214中的一個(gè)相關(guān)聯(lián)的多個(gè)計(jì)數(shù)器224a-224f。圖5示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例圖3的系統(tǒng)的計(jì)數(shù)單元224的框圖。在優(yōu)選實(shí)施例中,計(jì)數(shù)單元224包括計(jì)數(shù)器226和多個(gè)第一寄存器228,其中多個(gè)第一寄存器228中的每一個(gè)存儲(chǔ)與其關(guān)聯(lián)的存儲(chǔ)器塊的計(jì)數(shù)值,其中計(jì)數(shù)器226更新多個(gè)第一寄存器228中存儲(chǔ)的計(jì)數(shù)值。
返回參照?qǐng)D3,處理器220還包括連接至計(jì)數(shù)單元224用于監(jiān)控計(jì)數(shù)值的控制器230。在優(yōu)選實(shí)施例中,當(dāng)檢測與第一存儲(chǔ)器塊204相關(guān)聯(lián)的計(jì)數(shù)值已經(jīng)達(dá)到預(yù)定閾值時(shí),控制器230基于第二存儲(chǔ)器塊210的計(jì)數(shù)值從多個(gè)存儲(chǔ)器塊204-214選擇要與第一存儲(chǔ)器塊204交換的第二存儲(chǔ)器塊210,該第二存儲(chǔ)器塊210的計(jì)數(shù)值低于第一存儲(chǔ)器塊204的計(jì)數(shù)值??刂破?30將第一存儲(chǔ)器塊204和第二存儲(chǔ)器塊210中存儲(chǔ)的數(shù)據(jù)交換并且生成相應(yīng)的交換信息。在優(yōu)選實(shí)施例中,基于存儲(chǔ)器202的擦除周期設(shè)定預(yù)定閾值。在優(yōu)選實(shí)施例中,第二存儲(chǔ)器塊210是多個(gè)存儲(chǔ)器塊204-214當(dāng)中具有最低計(jì)數(shù)值的存儲(chǔ)器塊。
在優(yōu)選實(shí)施例中,控制器230通過將系統(tǒng)200存儲(chǔ)在第二存儲(chǔ)器塊210中的代碼復(fù)制到第一存儲(chǔ)器塊204以及如果已經(jīng)擦除了第一 存儲(chǔ)器塊204中存儲(chǔ)的所有數(shù)據(jù)則擦除系統(tǒng)在第二存儲(chǔ)器塊210中存儲(chǔ)的代碼,將第一存儲(chǔ)器塊204和第二存儲(chǔ)器塊210中存儲(chǔ)的數(shù)據(jù)交換。
在另一個(gè)優(yōu)選實(shí)施例中,存儲(chǔ)器202還包括虛設(shè)存儲(chǔ)器塊214,其中如果僅擦除了第一存儲(chǔ)器塊204中存儲(chǔ)的數(shù)據(jù)的一部分,則控制器230通過虛設(shè)存儲(chǔ)器塊214將第一存儲(chǔ)器塊204和第二存儲(chǔ)器塊210中存儲(chǔ)的數(shù)據(jù)交換。在優(yōu)選實(shí)施例中,當(dāng)在選擇第二存儲(chǔ)器塊210之后檢測到第二存儲(chǔ)器塊210的計(jì)數(shù)值也達(dá)到預(yù)定閾值時(shí),控制器230選擇要與第一存儲(chǔ)器塊204交換的虛設(shè)存儲(chǔ)器塊214并且生成相應(yīng)的交換信息。
在優(yōu)選實(shí)施例中,處理器220還包括連接至控制器230的第二寄存器232,該第二寄存器232存儲(chǔ)與存儲(chǔ)器塊204-214分別相關(guān)聯(lián)的多個(gè)標(biāo)志。如果與第一存儲(chǔ)器塊204相關(guān)聯(lián)的計(jì)數(shù)值已經(jīng)達(dá)到預(yù)定閾值并且第一存儲(chǔ)器塊204已經(jīng)與第二存儲(chǔ)器塊210交換,則控制器230將與第一存儲(chǔ)器塊204相關(guān)聯(lián)的標(biāo)志設(shè)定為第一值,并且如果將與第一存儲(chǔ)器塊204相關(guān)聯(lián)的標(biāo)志設(shè)定為第一值,則控制器230停止監(jiān)控與第一存儲(chǔ)器塊204相關(guān)聯(lián)的計(jì)數(shù)值。在優(yōu)選實(shí)施例中,如果與第一存儲(chǔ)器塊204相關(guān)聯(lián)的標(biāo)志設(shè)定為第一值,則計(jì)數(shù)單元224停止更新與第一存儲(chǔ)器塊204相關(guān)聯(lián)的計(jì)數(shù)值。
處理器220還包括:連接于讀取和寫入單元222與控制器230之間的交換單元234,用于使第一存儲(chǔ)器塊和第二存儲(chǔ)器塊彼此重新映射。圖6是根據(jù)本發(fā)明實(shí)施例圖3的系統(tǒng)的交換單元234的框圖。交換單元234包括:查找表(lut)236,存儲(chǔ)由控制器230提供的交換信息;和塊重映射單元238,基于查找表236和給定地址從多個(gè)存儲(chǔ)器塊204-214選擇存儲(chǔ)器塊以使得讀取和寫入單元222從所選擇的存儲(chǔ)器塊讀取數(shù)據(jù)或者將數(shù)據(jù)寫入所選擇的存儲(chǔ)器塊。在優(yōu)選實(shí)施例中,交換信息包括第一存儲(chǔ)器塊204與第二存儲(chǔ)器塊210的地址之間的映射,反之亦然。
在優(yōu)選實(shí)施例中,計(jì)數(shù)器值、多個(gè)標(biāo)志和查找表236還存儲(chǔ)在 系統(tǒng)200的與存儲(chǔ)器202分離的第二存儲(chǔ)器設(shè)備(未示出)中,并且在已經(jīng)在重置系統(tǒng)200期間初始化處理器220之前在初始化存儲(chǔ)器202期間加載到處理器220。
在優(yōu)選實(shí)施例中,控制器230在將系統(tǒng)在第二存儲(chǔ)器塊210中存儲(chǔ)的代碼復(fù)制到第一存儲(chǔ)器塊204時(shí)保持讀取第二存儲(chǔ)器塊210中存儲(chǔ)的代碼的請(qǐng)求,并且在已經(jīng)生成交換信息之后釋放請(qǐng)求。
在另一個(gè)優(yōu)選實(shí)施例中,系統(tǒng)200還包括與處理器220通信的單獨(dú)中央處理單元(cpu),用于執(zhí)行系統(tǒng)200的代碼以及通過處理器220讀取和寫入存儲(chǔ)器202,其中處理器220是專門用于存儲(chǔ)器202的存儲(chǔ)器控制設(shè)備。
現(xiàn)在參考圖7,示出了根據(jù)本發(fā)明實(shí)施例圖3的存儲(chǔ)器202的存儲(chǔ)器塊300的結(jié)構(gòu)。在優(yōu)選實(shí)施例中,存儲(chǔ)器塊204-214中的每一個(gè)被分成多個(gè)子塊302。例如,具有256kb大小的存儲(chǔ)器塊被分成各自具有8kb大小的32個(gè)子塊,其中將每個(gè)子塊的大小確定為nvm的最小擦除大小的n倍,其中n是自然數(shù)。在優(yōu)選實(shí)施例中,每次擦除存儲(chǔ)器塊300,都基于擦除的子塊302的數(shù)量更新存儲(chǔ)器塊300的計(jì)數(shù)值。在另一個(gè)優(yōu)選實(shí)施例中,子塊302中的每一個(gè)與一旦擦除與其關(guān)聯(lián)的子塊302就更新的多個(gè)計(jì)數(shù)值中的一個(gè)相關(guān)聯(lián),其中基于在第二存儲(chǔ)器塊300的多個(gè)子塊302當(dāng)中具有最高計(jì)數(shù)值的子塊302選擇第二存儲(chǔ)器塊210。
圖8是根據(jù)本發(fā)明第一實(shí)施例由系統(tǒng)200執(zhí)行的用于減少存儲(chǔ)器設(shè)備上的壓力的方法的流程圖400。如圖3所示的存儲(chǔ)器202被分成多個(gè)存儲(chǔ)器塊204-214,其中存儲(chǔ)器202中存儲(chǔ)的數(shù)據(jù)包括系統(tǒng)200的代碼和數(shù)據(jù)。系統(tǒng)200還包括連接至存儲(chǔ)器202的處理器220,用于執(zhí)行系統(tǒng)200的代碼以及從存儲(chǔ)器202讀取數(shù)據(jù)或者將數(shù)據(jù)寫入存儲(chǔ)器202。在優(yōu)選實(shí)施例中,多個(gè)存儲(chǔ)器塊204-214包括存儲(chǔ)系統(tǒng)200的數(shù)據(jù)的至少第一存儲(chǔ)器塊204以及存儲(chǔ)系統(tǒng)200的代碼的至少第二存儲(chǔ)器塊208。在優(yōu)選實(shí)施例中,存儲(chǔ)器202是非易失性存儲(chǔ)器(nvm)、閃速存儲(chǔ)器或者eeprom。處理器220優(yōu)選地包 括系統(tǒng)200的mcu的處理器,或者替換地可以包括系統(tǒng)200內(nèi)的單獨(dú)處理器。
從步驟402開始,控制器230接收擦除指令以基于給定地址擦除第一存儲(chǔ)器塊204中存儲(chǔ)的數(shù)據(jù)的至少一部分。在優(yōu)選實(shí)施例中,擦除指令包括在將數(shù)據(jù)寫入第一存儲(chǔ)器塊204的寫入指令中。
在步驟404處,讀取和寫入單元222擦除第一存儲(chǔ)器塊204中存儲(chǔ)的數(shù)據(jù)的一部分以及更新與第一存儲(chǔ)器塊204相關(guān)聯(lián)的計(jì)數(shù)值,其中計(jì)數(shù)值指示已經(jīng)擦除與其關(guān)聯(lián)的存儲(chǔ)器塊的次數(shù)。在優(yōu)選實(shí)施例中,如圖7所示,存儲(chǔ)器塊204-214中的每一個(gè)被分成多個(gè)子塊302。例如,具有256kb大小的存儲(chǔ)器塊被分成各自具有8kb大小的32個(gè)子塊,其中將每個(gè)子塊的大小確定為nvm的最小擦除大小的n倍,其中n是自然數(shù)。在優(yōu)選實(shí)施例中,每次擦除存儲(chǔ)器塊300,都基于擦除的子塊302的數(shù)量更新與存儲(chǔ)器塊300相關(guān)聯(lián)的計(jì)數(shù)值。
在步驟406處,控制器230檢測與第一存儲(chǔ)器塊204相關(guān)聯(lián)的計(jì)數(shù)值是否已經(jīng)達(dá)到預(yù)定閾值。在優(yōu)選實(shí)施例中,基于存儲(chǔ)器202的擦除周期設(shè)定該預(yù)定閾值。
在步驟408處,如果與第一存儲(chǔ)器塊204相關(guān)聯(lián)的計(jì)數(shù)值已經(jīng)達(dá)到預(yù)定閾值,則控制器230進(jìn)一步確定數(shù)據(jù)的該部分是否包括第一存儲(chǔ)器塊204中存儲(chǔ)的所有數(shù)據(jù)。
在步驟410處,如果數(shù)據(jù)的該部分包括第一存儲(chǔ)器塊204中存儲(chǔ)的所有數(shù)據(jù)(即,已經(jīng)擦除第一存儲(chǔ)器塊204中存儲(chǔ)的所有數(shù)據(jù)),則控制器230基于第二存儲(chǔ)器塊210的計(jì)數(shù)值從多個(gè)存儲(chǔ)器塊204-214選擇要與第一存儲(chǔ)器塊204交換的第二存儲(chǔ)器塊210,該第二存儲(chǔ)器塊210的計(jì)數(shù)值低于第一存儲(chǔ)器塊204的計(jì)數(shù)值。在優(yōu)選實(shí)施例中,第二存儲(chǔ)器塊210是多個(gè)存儲(chǔ)器塊204-214當(dāng)中具有最低計(jì)數(shù)值的存儲(chǔ)器塊。
在步驟412處,控制器230將系統(tǒng)200在第二存儲(chǔ)器塊210中存儲(chǔ)的代碼復(fù)制到第一存儲(chǔ)器塊204。
在步驟414處,控制器230將系統(tǒng)200在第二存儲(chǔ)器塊210中存儲(chǔ)的代碼擦除以及更新與第二存儲(chǔ)器塊210相關(guān)聯(lián)的計(jì)數(shù)值。
在步驟416處,控制器230更新交換信息以使第一存儲(chǔ)器塊和第二存儲(chǔ)器塊彼此重新映射。在優(yōu)選實(shí)施例中,交換信息包括第一存儲(chǔ)器塊204與第二存儲(chǔ)器塊210的地址之間的映射,反之亦然。
在圖8的流程圖400中,直到與第一存儲(chǔ)器塊204相關(guān)聯(lián)的計(jì)數(shù)值達(dá)到預(yù)定閾值以及已經(jīng)擦除的數(shù)據(jù)的部分包括第一存儲(chǔ)器塊204中存儲(chǔ)的所有數(shù)據(jù),控制器230才會(huì)選擇要與第一存儲(chǔ)器塊204交換的第二存儲(chǔ)器塊210。
圖9是根據(jù)本發(fā)明第二實(shí)施例用于減少存儲(chǔ)器設(shè)備上的壓力的方法的流程圖500。在優(yōu)選實(shí)施例中,子塊中的每一個(gè)具有與其關(guān)聯(lián)的計(jì)數(shù)值,指示已經(jīng)擦除子塊的次數(shù)。
除在步驟504處,一旦擦除關(guān)聯(lián)子塊就更新子塊中的每一個(gè)的計(jì)數(shù)值,以及在步驟506處,控制器230檢測子塊的計(jì)數(shù)值中的任何一個(gè)是否已經(jīng)達(dá)到預(yù)定閾值以外,圖9的流程圖500與圖8的流程圖基本上相同。
圖10是根據(jù)本發(fā)明第三實(shí)施例用于減少存儲(chǔ)器設(shè)備上的壓力的方法的流程圖600。在另一個(gè)優(yōu)選實(shí)施例中,存儲(chǔ)器202還包括虛設(shè)存儲(chǔ)器塊214。圖10的流程圖600中的前三個(gè)步驟602-606可以與圖8的流程圖400中的前三個(gè)步驟402-406或者圖9的流程圖500中的前三個(gè)步驟502-506相同。在步驟608處,如果與第一存儲(chǔ)器塊204相關(guān)聯(lián)的計(jì)數(shù)值已經(jīng)達(dá)到預(yù)定閾值,則控制器230選擇要與第一存儲(chǔ)器塊204交換的第二存儲(chǔ)器塊210。
在步驟610處,控制器230還檢測第二存儲(chǔ)器塊210的計(jì)數(shù)值是否已經(jīng)達(dá)到預(yù)定閾值。在步驟612處,如果與第二存儲(chǔ)器塊210相關(guān)聯(lián)的計(jì)數(shù)值沒有達(dá)到預(yù)定閾值,則控制器230通過虛設(shè)塊214將第一存儲(chǔ)器塊204和第二存儲(chǔ)器塊210中存儲(chǔ)的數(shù)據(jù)交換,以及在步驟614處,控制器230更新交換信息以使第一存儲(chǔ)器塊204和第二存儲(chǔ)器塊210彼此重新映射。
在步驟616處,如果第二存儲(chǔ)器塊210的計(jì)數(shù)值已經(jīng)達(dá)到預(yù)定閾值,則控制器230將第一存儲(chǔ)器塊204中保留的數(shù)據(jù)復(fù)制到虛設(shè)存儲(chǔ)器塊214,以及在步驟618處,控制器230更新交換信息以使第一存儲(chǔ)器塊204和虛設(shè)存儲(chǔ)器塊214彼此重新映射。
圖11是根據(jù)本發(fā)明實(shí)施例通過圖10的虛設(shè)存儲(chǔ)器塊交換存儲(chǔ)器塊的步驟612的流程圖700。
從步驟702開始,控制器230將第一存儲(chǔ)器塊204中保留的數(shù)據(jù)復(fù)制到虛設(shè)存儲(chǔ)器塊214。在步驟704處,控制器230擦除第一存儲(chǔ)器塊204以及更新與第一存儲(chǔ)器塊204相關(guān)聯(lián)的計(jì)數(shù)值。在步驟706處,控制器230將系統(tǒng)在第二存儲(chǔ)器塊210中存儲(chǔ)的代碼復(fù)制到第一存儲(chǔ)器塊204。在步驟708處,控制器230將系統(tǒng)在第二存儲(chǔ)器塊210中存儲(chǔ)的代碼擦除以及更新與第二存儲(chǔ)器塊210相關(guān)聯(lián)的計(jì)數(shù)值。在步驟710處,控制器230將虛設(shè)存儲(chǔ)器塊214中的數(shù)據(jù)復(fù)制到第二存儲(chǔ)器塊210,以及在步驟712處,控制器擦除虛設(shè)存儲(chǔ)器塊214中的數(shù)據(jù)并且更新與虛設(shè)存儲(chǔ)器塊214相關(guān)聯(lián)的計(jì)數(shù)值。
盡管為了圖示和描述的目的已經(jīng)提供了本發(fā)明優(yōu)選實(shí)施例的描述,但是并不旨在窮舉或者將本發(fā)明限于所公開的形式。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,在不背離其廣泛發(fā)明構(gòu)思的情況下,可以對(duì)上面描述的實(shí)施例做出改變。因此,應(yīng)當(dāng)理解,本發(fā)明不限于所公開的特定實(shí)施例,而覆蓋如由所附權(quán)利要求限定的本發(fā)明的精神和范圍內(nèi)的修改。