專利名稱:閃存裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種閃存裝置。
背景技術(shù):
以往,在閃存裝置中,為了縮短數(shù)據(jù)的讀出時間,以區(qū)塊為單位對存儲區(qū)進(jìn)行管理(例如,參照日本特開平9-134312號公報)。然后,在各個區(qū)塊中附有區(qū)塊管理值。區(qū)塊管理值為表示對應(yīng)的區(qū)塊處于使用狀態(tài)(活動狀態(tài))以及未使用狀態(tài)中的哪一個狀態(tài)的信
肩、O如圖4所示,區(qū)塊管理值由例如16進(jìn)制的4位數(shù)字來構(gòu)成。具體地講,在活動狀態(tài)中區(qū)塊管理值被分配為“$1111”,在未使用狀態(tài)中區(qū)塊管理值被分配為“$FFFF”。以下, 在本說明書中,“$”之后所示的數(shù)字使用16進(jìn)制的數(shù)字。接著,如圖4的上側(cè)所示,對包含活動狀態(tài)的第I區(qū)塊、和未使用狀態(tài)的第2區(qū)塊在內(nèi)的閃存裝置加以說明。兩個區(qū)塊均具有存儲數(shù)據(jù)的第I數(shù)據(jù)區(qū)Al 第η數(shù)據(jù)區(qū)An。處于未使用狀態(tài)的第2區(qū)塊中的所有數(shù)據(jù)區(qū)Al An均為未存有數(shù)據(jù)的空置狀態(tài)。在有數(shù)據(jù)(最新值)的寫入要求時,該最新值被按順序?qū)懭氲降贗區(qū)塊的第I數(shù)據(jù)區(qū)Al 第η數(shù)據(jù)區(qū)An中去。由此,處于空置狀態(tài)的數(shù)據(jù)區(qū)會減少。然后,如圖4的下側(cè)所示,在第I區(qū)塊的第η數(shù)據(jù)區(qū)An中寫入有最新值時,第2區(qū)塊的表示未使用狀態(tài)的區(qū)塊管理值“$FFFF”被改寫成表示活動狀態(tài)的區(qū)塊管理值“$1111”,且該最新值被復(fù)制到第2區(qū)塊的第I數(shù)據(jù)區(qū)Al中。然后,所有存儲在第I區(qū)塊中的數(shù)據(jù)均被擦除,且表示活動狀態(tài)的區(qū)塊管理值“$1111”被改寫成表示未使用狀態(tài)的區(qū)塊管理值“ $FFFF”。另外,在上述復(fù)制過程中,有時會發(fā)生最新值被更新的情況。在這種情況下,被更新的最新值被寫入到第2區(qū)塊的第I數(shù)據(jù)區(qū)Al中。然而,在將最新值從第I區(qū)塊向第2區(qū)塊復(fù)制的過程中,會出現(xiàn)因閃存裝置的電源被暫時斷開而導(dǎo)致閃存裝置被復(fù)位的問題。在這種情況下,由于第I區(qū)塊無法切換到未使用狀態(tài),所以在進(jìn)行上述復(fù)位時再次接通電源的話,會存在2個處于活動狀態(tài)的區(qū)塊,從而無法辨別最新值。特別是,在復(fù)制過程中最新值被更新的情況下,在第I區(qū)塊以及第2區(qū)塊之間最新值為不同的數(shù)據(jù)。這時,真的最新值為第2區(qū)塊的最新值,但無法對此進(jìn)行判斷。因此,會出現(xiàn)第I區(qū)塊的最新值誤被讀出的問題。
發(fā)明內(nèi)容
本發(fā)明的目的在于,提供一種即使在區(qū)塊之間對最新值進(jìn)行復(fù)制的期間出現(xiàn)閃存部被復(fù)位的情況,也能夠識別真的最新值的閃存裝置。以下,對為了達(dá)成上述目的的方法以及其作用效果加以說明。本發(fā)明的一個方面提供一種閃存裝置,其具備閃存部,包含存儲有信息數(shù)據(jù)的數(shù)據(jù)區(qū);以及存儲器控制部,將所述閃存部的數(shù)據(jù)區(qū)劃分成多個區(qū)塊,且在所述多個區(qū)塊中的第I區(qū)塊中寫入所述信息數(shù)據(jù)的最新值、和表示所述第I區(qū)塊是否處于使用狀態(tài)的區(qū)塊管理值,在所述第I區(qū)塊處于未使用狀態(tài)的情況下,所述存儲器控制部將所述信息數(shù)據(jù)的最新值以及第I區(qū)塊管理值寫入到所述第I區(qū)塊中,在判斷出所述第I區(qū)塊的數(shù)據(jù)容量無法寫入下一個最新值時,所述存儲器控制部將所述第I區(qū)塊的所述最新值復(fù)制到第2區(qū)塊中,且將第2區(qū)塊管理值寫入到所述第2區(qū)塊中,所述存儲器控制部基于預(yù)先設(shè)定的規(guī)則來設(shè)定不同的多個區(qū)塊管理值,所述多個區(qū)塊管理值包含分別寫入到所述多個區(qū)塊中的所述第I區(qū)塊管理值以及所述第2區(qū)塊管理值,所述存儲器控制部根據(jù)所述多個區(qū)塊管理值從所述多個區(qū)塊中的一個區(qū)塊中讀出真的最新值?;谠摌?gòu)成,在將區(qū)塊設(shè)為使用狀態(tài)時,以預(yù)先設(shè)定的規(guī)則對每個區(qū)塊分別設(shè)定區(qū)塊管理值,以使每個區(qū)塊的區(qū)塊管理值互不相同。所以,即使在有多個處于使用狀態(tài)的區(qū)塊的情況下,也可以根據(jù)這些區(qū)塊管理值來讀出真的最新值?;诒景l(fā)明,即使在閃存裝置的區(qū)塊之間對最新值進(jìn)行復(fù)制的期間發(fā)生復(fù)位,也能夠識別真的最新值。
圖I是閃存裝置的構(gòu)成圖。圖2是存儲器映射圖,示出了各個區(qū)塊、特別是各個區(qū)塊的區(qū)塊管理值。圖3A是存儲器映射圖,示出了在復(fù)制過程中最新值被更新時的第I區(qū)塊以及第2區(qū)塊。圖3B是存儲器映射圖,示出了在圖3A所示的過程中閃存部被復(fù)位時的第I區(qū)塊以及第2區(qū)塊。圖4是存儲器映射圖,示出了以往的各個區(qū)塊。符號說明11…存儲器控制部、15…閃存部。
具體實施例方式以下,參照圖I、圖2、圖3A、以及圖3B,對將本發(fā)明的閃存裝置具體化的一個實施方式進(jìn)行說明。如圖I所示,閃存裝置具備存儲器控制部11、閃存部15。閃存部15為非易失性存儲器。存儲器控制部11利用閃存部15的數(shù)據(jù)區(qū)對最新值進(jìn)行管理。根據(jù)來自于未予圖示的外部裝置的信息,所述最新值被存儲器控制部11識別。詳細(xì)地講,如圖2所示,閃存部15的數(shù)據(jù)區(qū)被劃分成多個區(qū)塊BI Bn。存儲器控制部11管理各個區(qū)塊BI Bn。多個區(qū)塊BI Bn包含第I區(qū)塊管理區(qū) 第η區(qū)塊管理區(qū)、以及第I數(shù)據(jù)區(qū)Al 第η數(shù)據(jù)區(qū)An。區(qū)塊管理值由16進(jìn)制的4位數(shù)字構(gòu)成。具體地講,在活動狀態(tài)中區(qū)塊管理值被分配為“$1111” “$111F”,在未使用狀態(tài)中區(qū)塊管理值被分配為“$FFFF”。在本例中,“F”表示沒有附加任何信息的初始狀態(tài)。另外,最新值也與區(qū)塊管理值一樣,由16進(jìn)制的多位數(shù)字構(gòu)成。另外,多個數(shù)據(jù)區(qū)Al An具有相同的數(shù)據(jù)容量。在此,在所有區(qū)塊BI Bn中沒有存儲任何數(shù)據(jù)的狀態(tài)下,存儲器控制部11將表示未使用狀態(tài)的區(qū)塊管理值“ $FFFF”寫入到所有區(qū)塊管理區(qū)中。在該狀態(tài)下,存儲器控制部11 一識別到最新值,就將該最新值寫入到第I區(qū)塊BI的第I數(shù)據(jù)區(qū)Al中,且將存儲在第I區(qū)塊管理區(qū)中的、表示未使用狀態(tài)的區(qū)塊管理值“$FFFF”改寫成表示活動狀態(tài)的第I區(qū)塊管理值“$1111”。以下,以相同的方式,存儲器控制部11按順序?qū)⒆钚轮祵懭氲降?數(shù)據(jù)區(qū)A2 第η數(shù)據(jù)區(qū)An中去。也就是說,此時舊的最新值沒有被擦除。另外,存儲在第I區(qū)塊管理區(qū)中的第I區(qū)塊管理值“$1111”維持不變。如圖2的下側(cè)所示,存儲器控制部11 一將最新值寫入到第I區(qū)塊BI的第η數(shù)據(jù)區(qū)An中,就將存儲在第2區(qū)塊Β2的第2區(qū)塊管理區(qū)中的、表示未使用狀態(tài)的區(qū)塊管理值“$FFFF”改寫成表示活動狀態(tài)的第2區(qū)塊管理值“$1112”。這時,存儲在第2區(qū)塊B2的第2區(qū)塊管理區(qū)中的、表示活動狀態(tài)的第2區(qū)塊管理值“$1112”比存儲在第I區(qū)塊BI的第I區(qū)塊管理區(qū)中的、表示活動狀態(tài)的第I區(qū)塊管理值“$1111”要大“I”。然后,存儲器控制部11將第I區(qū)塊BI的最新值復(fù)制到第2區(qū)塊B2的第I數(shù)據(jù)區(qū)Al中。然后,存儲器控制部 11將存儲在第I區(qū)塊BI中的數(shù)據(jù)擦除,且將存儲在第I區(qū)塊管理區(qū)中的、表示活動狀態(tài)的第I區(qū)塊管理值“$1111”改寫成表示未使用狀態(tài)的區(qū)塊管理值“$FFFF”。另外,與第I區(qū)塊一樣,當(dāng)最新值被寫入到第2區(qū)塊B2的第η數(shù)據(jù)區(qū)An中時,存儲在第3區(qū)塊Β3的第3區(qū)塊管理區(qū)中的、表示未使用狀態(tài)的區(qū)塊管理值“$FFFF”就被改寫成表示活動狀態(tài)的第3區(qū)塊管理值“$1113”,之后最新值被復(fù)制到第3區(qū)塊B3的第I數(shù)據(jù)區(qū)Al中。然后,第2區(qū)塊B2的數(shù)據(jù)被擦除,且存儲在第2區(qū)塊管理區(qū)中的、表示活動狀態(tài)的第2區(qū)塊管理值“$1112”被改寫成表示未使用狀態(tài)的區(qū)塊管理值“$FFFF”。以下,以相同的方式,在第4區(qū)塊B4 第η區(qū)塊Bn被設(shè)定為活動狀態(tài)時,第4區(qū)塊管理值“$1114” 第η區(qū)塊管理值“$111F”被寫入到第4區(qū)塊B4的第4區(qū)塊管理區(qū) 第η區(qū)塊Bn的第η區(qū)塊管理區(qū)中。這樣,表示活動狀態(tài)的區(qū)塊管理值每次增加“I”、即被連號設(shè)定。然后,在本例中,第η區(qū)塊管理值“$111F”的下一個區(qū)塊管理值又為第I區(qū)塊管理值“$1111”。另外,從容量的觀點來看,存儲器控制部11將最新值寫入到第I區(qū)塊BI的第n-1數(shù)據(jù)區(qū)An-I中為止,在第η數(shù)據(jù)區(qū)An放不下下一個最新值的情況下,將下一個最新值寫入到第2區(qū)塊Β2中。在這種情況下,第2區(qū)塊Β2的第I數(shù)據(jù)區(qū)Al以及第2數(shù)據(jù)區(qū)Α2均被使用。然后,以與上述相同的方式,存儲器控制部11將存儲在第I區(qū)塊BI中的數(shù)據(jù)擦除,且將存儲在第I區(qū)塊管理區(qū)中的、表示活動狀態(tài)的第I區(qū)塊管理值“$1111”改寫成表示未使用狀態(tài)的區(qū)塊管理值“ $FFFF”?;谏鲜鰳?gòu)成,由于在將最新值復(fù)制到特定的區(qū)塊的數(shù)據(jù)區(qū)中之后,將表示未使用狀態(tài)的區(qū)塊管理值“$FFFF”寫入到區(qū)塊管理區(qū)中,所以基本上只有單個區(qū)塊處于活動狀態(tài)。所以,存儲器控制部11能夠從處于活動狀態(tài)的區(qū)塊讀出最新值。在此,在復(fù)制過程中,會出現(xiàn)因閃存裝置的電源被暫時斷開而導(dǎo)致閃存裝置被復(fù)位的問題。在這種情況下,在圖2的下側(cè)的例子中,雖然第2區(qū)塊B2的區(qū)塊管理值的改寫已完成,但由于第I區(qū)塊BI的區(qū)塊管理值的改寫沒有完成,所以存在2個處于活動狀態(tài)的區(qū)塊。在此,如上述那樣,第I區(qū)塊BI 第η區(qū)塊Bn的區(qū)塊管理值被連號設(shè)定。利用這種方式,如果存儲器控制部11在讀出最新值時有多個處于活動狀態(tài)的區(qū)塊的話,就根據(jù)多個區(qū)塊管理值的大小關(guān)系讀出最新值。例如,存儲器控制部11在將第I區(qū)塊管理值“$1111”寫入到第I區(qū)塊BI的第I區(qū)塊管理區(qū)中,且將第2區(qū)塊管理值“$1112”寫入到第2區(qū)塊B2的第2區(qū)塊管理區(qū)中的情況下,根據(jù)第2區(qū)塊管理值“$1112” >第I區(qū)塊管理值“$1111”的關(guān)系,讀出與第2區(qū)塊管理值“$1112”對應(yīng)的第2區(qū)塊B2中的最新值。以此為規(guī)則,在本例中,由于第η區(qū)塊管理值“$11 IF”的下一個區(qū)塊管理值又為第I區(qū)塊管理值“$1111”,所以例外地判斷第I區(qū)塊管理值“$1111”比第η區(qū)塊管理值“$111F”要大。 在此,如圖3A所示,在將第I區(qū)塊BI的最新值向第2區(qū)塊B2的復(fù)制正在進(jìn)行時,有時最新值會被更新。在此,將更新后的最新值稱為真的最新值。存儲器控制部11在最新值的復(fù)制過程中最新值一被更新,就將真的最新值寫入到第2區(qū)塊B2中。在圖3A的例子中,存儲器控制部11在復(fù)制第4位的“5”時識別到第3位被從“A”更新為“3”的情況下,將更新后的“3”寫入第3位。由此,能夠?qū)⒄娴淖钚轮?“$5391”)寫入到第2區(qū)塊B2中。進(jìn)一步,在上述情況的基礎(chǔ)上,如圖3B所示,在第2位的“9”的寫入過程中閃存裝置被復(fù)位時,雖然第3位以及第4位(“3”以及“5”)的復(fù)制已完成,但由于剩下的2位“9”以及“1”的復(fù)制沒有完成,所以該剩下的2位變?yōu)槌跏紶顟B(tài)的“F”。在這種狀態(tài)下,當(dāng)再次接通電源之后讀出最新值時,首先,與上述一樣,存儲器控制部11根據(jù)第I區(qū)塊管理區(qū)的第I區(qū)塊管理值以及第2區(qū)塊管理區(qū)的第2區(qū)塊管理值的大小,讀出第2區(qū)塊B2中的最新值(“$53FF”)。然后,在該最新值中有“F”的情況下,存儲器控制部11就會判斷在復(fù)制過程中閃存裝置已被復(fù)位,并用第1區(qū)塊B1中的最新值來填補“F”的位。由此,即使有2個處于活動狀態(tài)的區(qū)塊,也可以按正確的順序讀取最新值。因此,能夠防止錯誤讀取更新前的最新值。所以,能夠更加確實地讀出真的最新值。基于以上所述的實施方式,可以獲得以下的效果。1)以表示活動狀態(tài)的第I區(qū)塊管理值 第η區(qū)塊管理值互不相同且按順序變大的形式,對第I區(qū)塊管理區(qū) 第η區(qū)塊管理區(qū)分別設(shè)定第1區(qū)塊管理值 第η區(qū)塊管理值。具體地講,在第I區(qū)塊BI的第I區(qū)塊管理區(qū)中存儲有第I區(qū)塊管理值“$1111”,在第2區(qū)塊Β2的第I區(qū)塊管理區(qū)中存儲有第2區(qū)塊管理值“$1112”。所以,即使在有多個處于活動狀態(tài)的區(qū)塊的情況下,也可以通過讀出具有較大區(qū)塊管理值的區(qū)塊、即上述例的第2區(qū)塊Β2中的最新值來讀出真的最新值。(2)在將最新值從第I區(qū)塊BI向第2區(qū)塊Β2復(fù)制時,且在最新值被更新的情況下,已更新的最新值被寫入到第2區(qū)塊Β2中。例如,在復(fù)制過程中出現(xiàn)閃存裝置被復(fù)位的情況下,根據(jù)第I區(qū)塊BI的區(qū)塊管理值以及第2區(qū)塊Β2的區(qū)塊管理值的大小關(guān)系讀出第2區(qū)塊Β2的最新值,且該最新值中的沒有完成復(fù)制的區(qū)域被第I區(qū)塊BI的最新值填補。在圖3Β的例子中,第2區(qū)塊Β2的最新值中的第I位以及第2位為沒有完成復(fù)制的區(qū)域,第I區(qū)塊BI的最新值被用于這些區(qū)域。由此,即使在完成對最新值的已更新的區(qū)域(在圖3Β中為第3位)的復(fù)制之后閃存裝置被復(fù)位,也能夠讀出真的最新值。(3)在第2區(qū)塊管理值被寫入到第2區(qū)塊Β2的第2區(qū)塊管理區(qū)中之后,存儲在第I區(qū)塊BI的第1區(qū)塊管理區(qū)中的、表示活動狀態(tài)的第I區(qū)塊管理值被改寫成表示未使用狀態(tài)的區(qū)塊管理值,且第I區(qū)塊BI的數(shù)據(jù)被擦除。因此,只要在復(fù)制過程中閃存裝置沒有復(fù)位,就只有單個區(qū)塊處于活動狀態(tài)。因此,能夠減少比較多個區(qū)塊管理值的大小關(guān)系的處理的次數(shù)。
(4)從容量的觀點來看,將最新值寫入到第I區(qū)塊BI的第η-i數(shù)據(jù)區(qū)An-I中為止,在第η數(shù)據(jù)區(qū)An放不下下一個最新值的情況下,將下一個最新值寫入到第2區(qū)塊Β2中。在這種狀態(tài)下,在復(fù)制完成時出現(xiàn)閃存裝置被復(fù)位的情況下,在第I區(qū)塊BI以及第2區(qū)塊Β2之間最新值不同。即使在這種情況下,也可以根據(jù)存儲在第I區(qū)塊管理區(qū)中的第I區(qū)塊管理值以及存儲在第2區(qū)塊管理區(qū)中的第2區(qū)塊管理值的大小關(guān)系,正確地讀出第2區(qū)塊Β2的最新值。(5)即使兩個區(qū)塊之間的最新值相同,也可以像上述實施方式那樣,根據(jù)存儲在第I區(qū)塊管理區(qū)中的第I區(qū)塊管理值以及存儲在第2區(qū)塊管理區(qū)中的第2區(qū)塊管理值的大小關(guān)系來進(jìn)行相同的處理。另外,上述實施方式也可以按照對此方式做了適當(dāng)更改的以下的方式來實施。 在上述實施方式中,存儲在第I區(qū)塊管理區(qū)中的第I區(qū)塊管理值以及存儲在第2區(qū)塊管理區(qū)中的第2區(qū)塊管理值的大小關(guān)系以第I位數(shù)來判斷。然而,也可以通過使第I 位數(shù)以外的其他位按順序增加而使區(qū)塊連號化。由此,能夠使區(qū)塊管理值超出16,并使其連號化。另外,只要第I區(qū)塊管理值 第η區(qū)塊管理值按順序變大即可,并不僅限于連號,例如也可以像“$1111”、“$1113”、“$1115”…那樣,每次增加“2”。·進(jìn)一步,也可以設(shè)定為,第I區(qū)塊管理值 第η區(qū)塊管理值按順序變小。例如,在對第I區(qū)塊管理區(qū)設(shè)定了區(qū)塊管理值“$111F”的情況下,對第2區(qū)塊管理區(qū)設(shè)定區(qū)塊管理值“$111E”。與上述一樣,在將區(qū)塊管理值設(shè)定為按順序變小的情況下,區(qū)塊管理值也可以不連號。在本構(gòu)成中,只要在閃存裝置復(fù)位之后有多個處于活動狀態(tài)的區(qū)塊,存儲器控制部11就首先讀出具有較小的區(qū)塊管理值的第2區(qū)塊B2中的最新值。由此,與上述實施方式一樣,能夠讀出真的最新值。 進(jìn)一步,只要按照預(yù)先設(shè)定的規(guī)則設(shè)定區(qū)塊管理值即可,也可以將區(qū)塊管理值不設(shè)定為像上述那樣按順序變大或者按順序變小。例如也可以,在第I區(qū)塊管理區(qū)中設(shè)定第I區(qū)塊管理值“$1111”,在第2區(qū)塊管理區(qū)中設(shè)定第2區(qū)塊管理值“$1115”,在第3區(qū)塊管理區(qū)中設(shè)定第3區(qū)塊管理值“$1113”。即使在這種情況下,由于識別了預(yù)先設(shè)定的規(guī)則,所以能夠通過對區(qū)塊管理值的比較來讀出真的最新值?!ぴ谏鲜鰧嵤┓绞街?,在活動狀態(tài)中第I區(qū)塊管理值 第η區(qū)塊管理值被分配為“ $ 1111” “ $ 111F”,在未使用狀態(tài)中區(qū)塊管理值被分配為“ $FFFF”。然而,這些分配方法并不僅限于上述方式。例如,也可以在未使用狀態(tài)中將區(qū)塊管理值分配為“$0000”,在活動狀態(tài)中將第I區(qū)塊管理值 第η區(qū)塊管理值分配為“$0001” “$000F”?!ぴ谏鲜鰧嵤┓绞街?,如圖2的下側(cè)所示,存儲器控制部11在將第I區(qū)塊BI的最新值復(fù)制到第2區(qū)塊B2的第I數(shù)據(jù)區(qū)Al中之后,將存儲在第I區(qū)塊BI中的數(shù)據(jù)擦除,且將存儲在區(qū)塊管理區(qū)中的、表示活動狀態(tài)的區(qū)塊管理值改寫成表示未使用狀態(tài)的區(qū)塊管理值。然而,也可以省略對所述數(shù)據(jù)的擦除以及對區(qū)塊管理值的改寫。在這種情況下,雖然存在多個處于活動狀態(tài)的區(qū)塊,但也能夠像上述實施方式那樣,根據(jù)多個區(qū)塊管理值的大小關(guān)系來讀出真的最新值。本構(gòu)成對存儲有更多過去的最新值的情況有效。
權(quán)利要求
1.一種閃存裝置,具備 閃存部,包含存儲有信息數(shù)據(jù)的數(shù)據(jù)區(qū);以及 存儲器控制部,將所述閃存部的數(shù)據(jù)區(qū)劃分成多個區(qū)塊,且在所述多個區(qū)塊中的第I區(qū)塊中寫入所述信息數(shù)據(jù)的最新值、和表示所述第I區(qū)塊是否處于使用狀態(tài)的區(qū)塊管理值, 在所述第I區(qū)塊處于未使用狀態(tài)的情況下,所述存儲器控制部將所述信息數(shù)據(jù)的最新值以及第I區(qū)塊管理值寫入到所述第I區(qū)塊中,在判斷出所述第I區(qū)塊的數(shù)據(jù)容量無法寫入下一個最新值時,所述存儲器控制部將所述第I區(qū)塊的所述最新值復(fù)制到第2區(qū)塊中,且將第2區(qū)塊管理值寫入到所述第2區(qū)塊中, 所述存儲器控制部基于預(yù)先設(shè)定的規(guī)則來設(shè)定不同的多個區(qū)塊管理值,所述多個區(qū)塊管理值包含分別寫入到所述多個區(qū)塊中的所述第I區(qū)塊管理值以及所述第2區(qū)塊管理值,所述存儲器控制部根據(jù)所述多個區(qū)塊管理值從所述多個區(qū)塊中的一個區(qū)塊中讀出真的最新值。
2.根據(jù)權(quán)利要求I所述的閃存裝置,其中, 所述預(yù)先設(shè)定的規(guī)則為,以所述多個區(qū)塊管理值互不相同并按順序變大或按順序變小的形式對所述多個區(qū)塊分別設(shè)定所述多個區(qū)塊管理值, 所述存儲器控制部在所述多個區(qū)塊處于所述使用狀態(tài)的情況下,將存儲有最大的所述區(qū)塊管理值的所述區(qū)塊中的最新值或者存儲有最小的所述區(qū)塊管理值的所述區(qū)塊中的最新值判斷為所述真的最新值。
3.根據(jù)權(quán)利要求I或者2所述的閃存裝置,其中, 在將所述最新值從判斷為無法寫入所述最新值的第I區(qū)塊向第2區(qū)塊復(fù)制時,在所述最新值被更新的情況下,所述存儲器控制部將被復(fù)制到第2區(qū)塊中的最新值改寫成被更新的最新值。
4.根據(jù)權(quán)利要求I或者2所述的閃存裝置,其中, 所述存儲器控制部在所述復(fù)制過程中發(fā)生復(fù)位的情況下,根據(jù)所述第I區(qū)塊管理值以及所述第2區(qū)塊管理值,從所述第2區(qū)塊中讀出所述最新值, 所述存儲器控制部根據(jù)讀出的最新值來判斷所述最新值從所述第I區(qū)塊向所述第2區(qū)塊的復(fù)制是否已經(jīng)完成, 所述存儲器控制部在判斷出所述最新值的復(fù)制未完成的情況下,將所述第2區(qū)塊的所述最新值改寫成所述第I區(qū)塊的所述最新值。
5.根據(jù)權(quán)利要求I或者2所述的閃存裝置,其中, 所述存儲器控制部在將所述第2區(qū)塊管理值寫入到所述第2區(qū)塊中之后,將表示區(qū)塊處于未使用狀態(tài)的區(qū)塊管理值寫入到判斷為無法寫入所述最新值的第I區(qū)塊中,且擦除所述第I區(qū)塊的所述信息數(shù)據(jù)。
6.根據(jù)權(quán)利要求I或者2所述的閃存裝置,其中, 所述各個區(qū)塊由多個數(shù)據(jù)區(qū)構(gòu)成,所述存儲器控制部將所述信息數(shù)據(jù)存儲在各個數(shù)據(jù)區(qū)中。
全文摘要
本發(fā)明提供一種即使在區(qū)塊之間對最新值進(jìn)行復(fù)制的期間出現(xiàn)閃存部被復(fù)位的情況,也能夠識別真的最新值的閃存裝置。在將區(qū)塊設(shè)為活動狀態(tài)時,以多個區(qū)塊的多個區(qū)塊管理值互不相同且按順序變大的形式對多個區(qū)塊分別設(shè)定多個區(qū)塊管理值。例如,在第1區(qū)塊B1中存儲有第1區(qū)塊管理值“$1111”,在第2區(qū)塊B2中存儲有第2區(qū)塊管理值“$1112”。因此,即使在有多個處于活動狀態(tài)的區(qū)塊的情況下,也可以通過讀出存儲有較大的區(qū)塊管理值的區(qū)塊中的最新值來讀出真的最新值。
文檔編號G06F12/06GK102880561SQ20121015830
公開日2013年1月16日 申請日期2012年5月11日 優(yōu)先權(quán)日2011年5月13日
發(fā)明者荒川和典, 江川哲也, 足立秀和 申請人:株式會社東海理化電機制作所