專利名稱:存儲(chǔ)器控制器和操作電可變非易失性存儲(chǔ)裝置的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及存儲(chǔ)器控制器和操作易于隨時(shí)間遭受數(shù)據(jù)丟失的電可變非易失性存
儲(chǔ)裝置的方法。
背景技術(shù):
非易失性存儲(chǔ)器在本領(lǐng)域中為公知。 一個(gè)例子是電可變存儲(chǔ)裝置??梢詫⑦@些非 易失性存儲(chǔ)裝置構(gòu)造為例如浮柵型或俘獲層型的。在任一情況中,電荷可以存儲(chǔ)在多晶硅 浮柵上或在絕緣俘獲電荷層中。但迄今不為所知的一個(gè)事實(shí)是,根據(jù)這樣的設(shè)計(jì),這些存儲(chǔ) 裝置中的一些不能保持存儲(chǔ)了諸如5年或5年以上的持續(xù)時(shí)間的電荷。因?yàn)槠駥?duì)電可變 非易失性存儲(chǔ)裝置的應(yīng)用在消費(fèi)電子領(lǐng)域,消費(fèi)者還沒有尋求到有需要對(duì)所精確存儲(chǔ)的數(shù) 據(jù)保持?jǐn)?shù)年。然而,要應(yīng)用這些裝置到工業(yè)應(yīng)用中,就需要這些裝置能夠?qū)Ρ4嬖诟呕蚍?獲層上的數(shù)據(jù)保持延長(zhǎng)的時(shí)間段。 由Silicon Storage Technology (SST)公司制造的一種非易失性存儲(chǔ)器是NOR裝 置并且被認(rèn)為可以保留十(10)年或更長(zhǎng)。然而,該SST存儲(chǔ)器適合于存儲(chǔ)由處理器或控制 器執(zhí)行的程序或代碼。當(dāng)用以存儲(chǔ)數(shù)據(jù),尤其是存儲(chǔ)大量數(shù)據(jù)時(shí),這樣的使用昂貴。在降低 成本的努力中,針對(duì)使用所開發(fā)的一種類型的存儲(chǔ)器為NAND非易失性存儲(chǔ)器。該NAND非 易失性存儲(chǔ)器的特征是具有多個(gè)塊,每一塊具有可同時(shí)擦除的多個(gè)位,該塊作為整體被同 時(shí)編程。盡管NAND非易失性存儲(chǔ)器在基于每位的成本上比SST NOR型非易失性存儲(chǔ)器更 經(jīng)濟(jì),但它們?cè)馐艿綌?shù)據(jù)保持能力的問題。 具體地說,已經(jīng)發(fā)現(xiàn)NAND非易失性存儲(chǔ)器遭受數(shù)據(jù)丟失讀取的保持能力。換言 之,在NAND存儲(chǔ)器被編程或在其中存儲(chǔ)數(shù)據(jù)后,即使其沒有經(jīng)歷諸如讀取、寫入等的任何 電活動(dòng),數(shù)據(jù)丟失也隨時(shí)間發(fā)生。盡管這種數(shù)據(jù)損失對(duì)于消費(fèi)者使用(針對(duì)NAND存儲(chǔ)器被 設(shè)計(jì)的使用)不重要,但對(duì)于工業(yè)應(yīng)用及長(zhǎng)期存儲(chǔ)來說,這種數(shù)據(jù)丟失變得不可接收。
因此,需要解決易受這樣問題影響的非易失性存儲(chǔ)器中的數(shù)據(jù)丟失的問題。
發(fā)明內(nèi)容
因此,在本發(fā)明中公開了一種操作具有非易失性存儲(chǔ)單元的陣列的非易失性存儲(chǔ) 裝置的控制器。該非易失性存儲(chǔ)單元的陣列易于遭受到存儲(chǔ)在所述陣列的一個(gè)或多個(gè)存儲(chǔ) 單元中的數(shù)據(jù)的丟失。所述控制器接口于主機(jī)裝置并接收來自該主機(jī)裝置的時(shí)間戳信號(hào)。 所述控制器包括處理器,和具有存儲(chǔ)在其中的用于由該處理器執(zhí)行的程序代碼的存儲(chǔ)器。 所述程序代碼配置為由該控制器接收來自該主機(jī)裝置的該時(shí)間戳信號(hào);比較該接收的時(shí)間 戳信號(hào)與所存儲(chǔ)的信號(hào),其中該所存儲(chǔ)的信號(hào)是由該控制器在時(shí)間上較早地從該主機(jī)裝置 接收的時(shí)間戳信號(hào);以及根據(jù)該比較步驟確定何時(shí)針對(duì)存儲(chǔ)在該存儲(chǔ)器陣列中的數(shù)據(jù)執(zhí)行 數(shù)據(jù)保持和刷新操作。 另外,在本發(fā)明中公開了一種操作具有非易失性存儲(chǔ)單元的陣列的非易失性存儲(chǔ) 裝置的控制器。所述非易失性存儲(chǔ)單元的陣列具有多個(gè)塊,每個(gè)塊具有一起被擦除的多個(gè)
5存儲(chǔ)單元,所述控制器包括處理器,和具有存儲(chǔ)在其中的用于由該處理器執(zhí)行的程序代碼 的存儲(chǔ)器。所述程序代碼被配置為a)讀取來自所述塊之一的每一個(gè)該存儲(chǔ)單元的數(shù)據(jù); b)如果需要糾正數(shù)據(jù),糾正數(shù)據(jù)以形成糾正的數(shù)據(jù);c)如果存在糾正的數(shù)據(jù),將糾正的數(shù) 據(jù)寫到所述陣列的不同塊,并且如果讀取的數(shù)據(jù)是未糾正的,則不寫入該讀取的數(shù)據(jù);以及 d)對(duì)該陣列的不同塊重復(fù)執(zhí)行步驟(a)-(c)直到所有塊已被讀取。 本發(fā)明還涉及一種操作具有非易失性存儲(chǔ)單元的陣列的非易失性存儲(chǔ)裝置的控 制器。所述非易失性存儲(chǔ)單元的陣列具有多個(gè)塊,每個(gè)塊具有一起被擦除的多個(gè)存儲(chǔ)單元, 所述控制器包括處理器,和具有存儲(chǔ)在其中的用于由該處理器執(zhí)行的程序代碼的存儲(chǔ)器。 所述程序代碼被配置為a)讀取來自所述塊之一的每一個(gè)該存儲(chǔ)單元的數(shù)據(jù)信號(hào);b)比較 該讀取的數(shù)據(jù)信號(hào)與容限信號(hào);c)如果比較步驟(b)的結(jié)果指示需要將對(duì)應(yīng)于該數(shù)據(jù)信號(hào) 的數(shù)據(jù)寫到不同的存儲(chǔ)單元,將對(duì)應(yīng)于該數(shù)據(jù)信號(hào)的該數(shù)據(jù)寫入所述陣列的不同塊的不同 存儲(chǔ)單元,否則的話,不寫入該數(shù)據(jù);以及d)對(duì)該陣列的不同塊重復(fù)執(zhí)行步驟a)-c)直到所 有塊已被讀取。 本發(fā)明還涉及用于執(zhí)行每一個(gè)上述確認(rèn)的功能的方法。
圖1為用于實(shí)施本發(fā)明的方法的本發(fā)明的系統(tǒng)的塊級(jí)圖; 圖2為能夠用在本發(fā)明中的NAND型存儲(chǔ)器的塊級(jí)圖。
具體實(shí)施例方式
參考圖1示出了用于實(shí)施本發(fā)明的方法的系統(tǒng)10。該系統(tǒng)IO包括諸如NAND存儲(chǔ) 器12的非易失性存儲(chǔ)器12。該系統(tǒng)IO還包括存儲(chǔ)器控制器14,其具有嵌入其中的非易失 性存儲(chǔ)器16。該非易失性存儲(chǔ)器16為NOR型并且優(yōu)選為SST的N0R型,以便使數(shù)據(jù)保持能 夠保存一段相當(dāng)長(zhǎng)的時(shí)間而不遭受任何數(shù)據(jù)丟失。該非易失性存儲(chǔ)器16用于存儲(chǔ)用于操 作控制器14和用于實(shí)施本發(fā)明的方法的程序代碼。最后,該系統(tǒng)包括用于與存儲(chǔ)器控制器 14接口的主機(jī)裝置20。 主機(jī)裝置20通過地址總線22、數(shù)據(jù)總線24和控制器總線26電連接于控制器14。 總線22、24和26可以串聯(lián)或并聯(lián)連接。它們還可以在同一主線上被多路復(fù)用或被單獨(dú)地 提供。 控制器14通過地址總線28和數(shù)據(jù)總線30連接到NAND非易失性存儲(chǔ)器12。再次 地,總線28和30可以并聯(lián)或串聯(lián)地連接。另外,它們也可以被多路復(fù)用。如所公知,NAND 非易失性存儲(chǔ)器12具有多個(gè)塊,每個(gè)塊具有同時(shí)一起被擦除的多個(gè)存儲(chǔ)單元。
在本發(fā)明的方法中,當(dāng)上電時(shí),控制器14檢索到存儲(chǔ)在N0R非易失性存儲(chǔ)器16中 的計(jì)算機(jī)程序代碼。隨后控制器14等待接收來自主機(jī)裝置20的時(shí)間戳信號(hào)。來自主機(jī)裝 置20的該時(shí)間戳信號(hào)指示"當(dāng)前"時(shí)間??刂破?4將在時(shí)間戳信號(hào)中提出的"當(dāng)前"時(shí)間 與存儲(chǔ)在NOR非易失性存儲(chǔ)器16中的時(shí)間信號(hào)進(jìn)行比較以確定是否從控制器14最近一次 已檢查NAND存儲(chǔ)器12的數(shù)據(jù)保持的時(shí)間已經(jīng)經(jīng)過了足夠的時(shí)間。如果從控制器14最近 一次已檢查NAND存儲(chǔ)器12的數(shù)據(jù)保持的時(shí)間已經(jīng)經(jīng)過了足夠的時(shí)間,則控制器14啟動(dòng)用 于檢查數(shù)據(jù)保持的方法。
6
在該情況中,控制器通過讀取來自NAND存儲(chǔ)器12中的塊之一的每一個(gè)存儲(chǔ)單元 的數(shù)據(jù)在該NAND存儲(chǔ)器12上執(zhí)行數(shù)據(jù)保持和刷新操作。因?yàn)榭刂破?4具有錯(cuò)誤糾正編 碼,如果所讀取的數(shù)據(jù)包含錯(cuò)誤,則由該控制器14糾正這樣的數(shù)據(jù)。所糾正的數(shù)據(jù)(如果有 的話)然后被寫回到NAND存儲(chǔ)裝置12中的與讀取該數(shù)據(jù)的塊不同的塊中。如果所讀取的 數(shù)據(jù)是正確的且不需要錯(cuò)誤糾正,則使數(shù)據(jù)保留在當(dāng)前塊中。隨后控制器14繼續(xù)讀取NAND 存儲(chǔ)器12的所有其余塊的數(shù)據(jù)。 可替代地,控制器14可以將從塊的每一個(gè)存儲(chǔ)單元讀取的數(shù)據(jù)與容限信號(hào)進(jìn)行 比較。如果對(duì)于一個(gè)塊中的所有存儲(chǔ)單元,從存儲(chǔ)單元中讀取的信號(hào)比該容限信號(hào)大,則使 數(shù)據(jù)存儲(chǔ)在其從中被讀取的塊中。然而,如果來自塊的一個(gè)存儲(chǔ)單元的信號(hào)比容限信號(hào)小, 則來自塊的存儲(chǔ)單元的所有信號(hào)被寫入到與從中讀取來自該存儲(chǔ)單元的該信號(hào)所在的塊 不同的塊中。 盡管前面描述了主機(jī)裝置20向控制器14發(fā)出時(shí)間戳信號(hào),但還可以如下實(shí)現(xiàn)數(shù) 據(jù)保持操作的方法。在正常工作期間,主機(jī)裝置20向控制器14發(fā)出指令以啟動(dòng)數(shù)據(jù)保持 檢查操作??商娲模琋AND裝置12中的存儲(chǔ)單元的每一塊可以具有與其相關(guān)聯(lián)的寄存器。 在"正常"讀取操作期間,如果讀取操作顯示數(shù)據(jù)需要被糾正或從存儲(chǔ)單元讀取的信號(hào)相比 于容限信號(hào)在容限之外,則設(shè)置與該塊相關(guān)聯(lián)的寄存器。 一旦設(shè)置了寄存器,則NAND裝置 12的塊隨后可以被讀取和寫入到其他位置。 用于啟動(dòng)數(shù)據(jù)保持的方法的其他可能是在控制器14的上電或掉電時(shí)啟動(dòng)數(shù)據(jù)保 持操作,即不需等待來自主機(jī)裝置20的時(shí)間戳信號(hào)。其他可能的啟動(dòng)方法包括具有周期性 執(zhí)行數(shù)據(jù)保持操作的休眠電路(hibernation circuit)的控制器14,其中數(shù)據(jù)保持操作包 括從塊中讀取數(shù)據(jù)及確定數(shù)據(jù)是否正確或確定數(shù)據(jù)是否在容限中,和什么都不作,或者將 數(shù)據(jù)寫入到不同塊。 參考圖2,示出了用在本發(fā)明的系統(tǒng)10中的NAND型存儲(chǔ)器12的塊級(jí)圖。如公知 的,NAND存儲(chǔ)器12包括布置為多個(gè)行和列的NAND存儲(chǔ)單元的陣列14。地址緩存器鎖存器 18接收用于尋址陣列14的地址信號(hào)。行解碼器16解碼在地址緩存器鎖存器18中接收的 地址信號(hào)并且在陣列14中選擇相應(yīng)的(多個(gè))行的存儲(chǔ)單元。所選擇的(多個(gè))存儲(chǔ)單 元通過列多路復(fù)用器20被多路復(fù)用并且由讀出放大器22進(jìn)行讀出。參考偏置電路30產(chǎn) 生3個(gè)不同的讀出電平信號(hào)(或容限信號(hào)),其由在讀取操作期間提供給讀出放大器22的 四個(gè)容限信號(hào)X1, X2, X3和X4來表示。 容限信號(hào)X1提供數(shù)據(jù)所需要的最小容限信號(hào)以在其浮柵上保持最大量的電荷。 通過要求刷新操作,這可以確保在某一時(shí)間段有足夠的電荷保持。容限信號(hào)X2為是正常容 限讀取信號(hào)的用戶模式容限信號(hào)。容限信號(hào)X3為表示錯(cuò)誤模式的容限信號(hào)并且提供如果 數(shù)據(jù)保持在該水平而需要刷新操作的標(biāo)記。最后,容限信號(hào)X4為表示數(shù)據(jù)需要ECC(錯(cuò)誤 糾正檢查)協(xié)議以對(duì)其糾正的容限信號(hào)。 來自讀出放大器22的有三種可能的輸出容限模式、用戶模式、和錯(cuò)誤模式。如果 信號(hào)是容限模式輸出或用戶模式輸出,則該信號(hào)被提供給比較器32。將來自該比較器32的 信號(hào)提供給匹配電路34。如果匹配電路34指示不匹配,則設(shè)置用于被尋址的存儲(chǔ)單元的特 定行的標(biāo)記以便指示需要執(zhí)行刷新操作。 如果匹配電路34指示匹配,則控制器14作出是否設(shè)置錯(cuò)誤位的決定。否則,則數(shù)據(jù)保持在正常范圍內(nèi)并且不需要進(jìn)行刷新操作。即使利用ECC糾正了數(shù)據(jù),讀出放大器22 的錯(cuò)誤模式輸出也設(shè)置錯(cuò)誤位。如果錯(cuò)誤位被設(shè)置,則將數(shù)據(jù)寫入到陣列14的另一個(gè)部分 并且需要進(jìn)行數(shù)據(jù)刷新操作。
權(quán)利要求
一種操作非易失性存儲(chǔ)裝置的方法,該非易失性存儲(chǔ)裝置具有非易失性存儲(chǔ)單元的陣列和用于控制該非易失性存儲(chǔ)單元的陣列的控制器,該非易失性存儲(chǔ)單元的陣列易于遭受存儲(chǔ)在所述陣列的一個(gè)或多個(gè)存儲(chǔ)單元中的數(shù)據(jù)丟失,所述存儲(chǔ)裝置用于接口于主機(jī)裝置和用于接收來自該主機(jī)裝置的時(shí)間戳信號(hào),所述方法包括通過該控制器接收來自該主機(jī)裝置的所述時(shí)間戳信號(hào);比較該接收的時(shí)間戳信號(hào)與所存儲(chǔ)的信號(hào),其中該所存儲(chǔ)的信號(hào)是由該控制器在時(shí)間上較早地從該主機(jī)裝置接收的時(shí)間戳信號(hào);以及基于該比較步驟確定何時(shí)針對(duì)存儲(chǔ)在該存儲(chǔ)器陣列中的數(shù)據(jù)執(zhí)行數(shù)據(jù)保持和刷新操作。
2. 根據(jù)權(quán)利要求1所述的方法,其中當(dāng)該存儲(chǔ)裝置上電時(shí)該主機(jī)裝置發(fā)送該時(shí)間戳信號(hào)。
3. 根據(jù)權(quán)利要求1所述的方法,其中在該主機(jī)裝置的硬件重置后該主機(jī)裝置發(fā)送該時(shí) 間戳信號(hào)。
4. 根據(jù)權(quán)利要求1所述的方法,其中在該主機(jī)裝置的軟件重置后該主機(jī)裝置發(fā)送該時(shí) 間戳信號(hào)。
5. 根據(jù)權(quán)利要求1所述的方法,還包括步驟當(dāng)該比較步驟的結(jié)果指示出需要執(zhí)行該數(shù)據(jù)保持和刷新操作時(shí)執(zhí)行這樣的操作。
6. 根據(jù)權(quán)利要求5所述的方法,其中該非易失性存儲(chǔ)單元的陣列具有多個(gè)塊,每個(gè)塊 具有一起被擦除的多個(gè)存儲(chǔ)單元,并且其中該控制器具有用于檢測(cè)和糾正存儲(chǔ)在存儲(chǔ)單元 的塊中的數(shù)據(jù)中的一個(gè)或多個(gè)錯(cuò)誤的能力。
7. 根據(jù)權(quán)利要求6所述的方法,其中該數(shù)據(jù)保持和刷新操作包括a) 讀取來自所述塊之一的每一個(gè)存儲(chǔ)單元的數(shù)據(jù);b) 如果需要糾正該數(shù)據(jù),由該控制器糾正所述讀取的數(shù)據(jù)以形成糾正的數(shù)據(jù);c) 如果存在糾正的數(shù)據(jù),將糾正的數(shù)據(jù)寫到所述陣列的不同塊;以及d) 對(duì)該陣列的不同塊重復(fù)執(zhí)行步驟(a)-(c)直到所有塊已被讀取。
8. 根據(jù)權(quán)利要求6所述的方法,其中該數(shù)據(jù)保持和刷新操作包括a) 讀取來自所述塊之一的每一個(gè)存儲(chǔ)單元的數(shù)據(jù);b) 比較該讀出的數(shù)據(jù)信號(hào)與容限信號(hào);c) 如果比較步驟(b)的結(jié)果指示需要將對(duì)應(yīng)于該數(shù)據(jù)信號(hào)的數(shù)據(jù)寫到所述陣列的不 同的存儲(chǔ)單元,則將對(duì)應(yīng)于該數(shù)據(jù)信號(hào)的該數(shù)據(jù)寫入到所述陣列的不同塊的不同存儲(chǔ)單 元;以及d) 對(duì)該陣列的不同塊重復(fù)執(zhí)行步驟a)-c)直到所有塊已被讀取。
9. 一種確定存儲(chǔ)在非易失性存儲(chǔ)單元的陣列中的數(shù)據(jù)信號(hào)的完整性的方法,其中該 非易失性存儲(chǔ)單元的陣列的特征為多個(gè)塊,每個(gè)塊具有一起被擦除的多個(gè)非易失性存儲(chǔ)單 元,所述方法包括a) 讀取來自所述塊之一的每一個(gè)存儲(chǔ)單元的數(shù)據(jù);b) 如果需要糾正該數(shù)據(jù),糾正所述讀取的數(shù)據(jù)以形成糾正的數(shù)據(jù);c) 如果存在糾正的數(shù)據(jù),將糾正的數(shù)據(jù)寫到所述陣列的不同塊,和如果所讀取的數(shù)據(jù) 未糾正則不寫所讀取的該數(shù)據(jù);以及d)對(duì)該陣列的不同塊重復(fù)執(zhí)行步驟(a)-(c)直到所有塊已被讀取。
10. —種確定存儲(chǔ)在非易失性存儲(chǔ)單元的陣列中的數(shù)據(jù)信號(hào)的完整性的方法,其中該 非易失性存儲(chǔ)單元的陣列的特征為多個(gè)塊,每個(gè)塊具有一起被擦除的多個(gè)非易失性存儲(chǔ)單 元,所述方法包括a) 讀取來自所述塊之一的每一個(gè)存儲(chǔ)單元的數(shù)據(jù)信號(hào);b) 比較所讀取的該數(shù)據(jù)信號(hào)與容限信號(hào);c) 如果比較步驟(b)的結(jié)果指示需要將對(duì)應(yīng)于該數(shù)據(jù)信號(hào)的數(shù)據(jù)寫到所述陣列的不 同的存儲(chǔ)單元,則將對(duì)應(yīng)于該數(shù)據(jù)信號(hào)的該數(shù)據(jù)寫入所述陣列的不同塊的不同存儲(chǔ)單元, 否則不寫該數(shù)據(jù);以及d) 對(duì)該陣列的不同塊重復(fù)執(zhí)行步驟(a)-(c)直到所有塊已被讀取。
11. 一種用于操作具有非易失性存儲(chǔ)單元的陣列的非易失性存儲(chǔ)裝置的控制器,該非 易失性存儲(chǔ)單元的陣列易于遭受存儲(chǔ)在所述陣列的一個(gè)或多個(gè)存儲(chǔ)單元中的數(shù)據(jù)丟失,所 述控制器用于接口于主機(jī)裝置和用于接收來自該主機(jī)裝置的時(shí)間戳信號(hào),所述控制器包 括處理器;存儲(chǔ)器,其具有存儲(chǔ)在其中的由該處理器執(zhí)行的程序代碼,所述程序代碼被配置為 由該控制器接收來自該主機(jī)裝置的所述時(shí)間戳信號(hào);比較該接收的時(shí)間戳信號(hào)與所存儲(chǔ)的信號(hào),其中所存儲(chǔ)的信號(hào)是由該控制器在時(shí)間上 較早地從該主機(jī)裝置接收的時(shí)間戳信號(hào);以及基于該比較步驟確定何時(shí)針對(duì)存儲(chǔ)在該存儲(chǔ)器陣列中的數(shù)據(jù)執(zhí)行數(shù)據(jù)保持和刷新操作。
12. 根據(jù)權(quán)利要求11所述的控制器,其中所述非易失性存儲(chǔ)單元的陣列具有多個(gè)塊, 每個(gè)塊具有一起被擦除的多個(gè)存儲(chǔ)單元,其中所述程序代碼進(jìn)一步被配置為a) 讀取來自所述塊之一的每一個(gè)存儲(chǔ)單元的數(shù)據(jù);b) 如果需要糾正該數(shù)據(jù),由該控制器糾正所述讀取的數(shù)據(jù)以形成糾正的數(shù)據(jù);c) 如果存在糾正的數(shù)據(jù),將糾正的數(shù)據(jù)寫到所述陣列的不同塊;以及d) 對(duì)該陣列的不同塊重復(fù)執(zhí)行步驟(a)-(c)直到所有塊已被讀取。
13. 根據(jù)權(quán)利要求11所述的控制器,其中所述非易失性存儲(chǔ)單元的陣列具有多個(gè)塊, 每個(gè)塊具有一起被擦除的多個(gè)存儲(chǔ)單元,其中所述程序代碼進(jìn)一步被配置為a) 讀取來自所述塊之一的每一個(gè)存儲(chǔ)單元的數(shù)據(jù)信號(hào);b) 比較該讀出的數(shù)據(jù)信號(hào)與容限信號(hào);c) 如果比較步驟(b)的結(jié)果指示需要將對(duì)應(yīng)于該數(shù)據(jù)信號(hào)的數(shù)據(jù)寫到所述陣列的不 同的存儲(chǔ)單元,則將對(duì)應(yīng)于該數(shù)據(jù)信號(hào)的該數(shù)據(jù)寫入到所述陣列的不同塊的不同存儲(chǔ)單 元;以及d) 對(duì)該陣列的不同塊重復(fù)執(zhí)行步驟a)-c)直到所有塊已被讀取。
14. 一種用于操作具有非易失性存儲(chǔ)單元的陣列的非易失性存儲(chǔ)裝置的控制器,所述 非易失性存儲(chǔ)單元的陣列具有多個(gè)塊,每個(gè)塊具有一起被擦除的多個(gè)存儲(chǔ)單元,所述控制 器包括處理器;存儲(chǔ)器,其具有存儲(chǔ)在其中的由該處理器執(zhí)行的程序代碼,所述程序代碼被配置為a) 讀取來自所述塊之一的每一個(gè)存儲(chǔ)單元的數(shù)據(jù);b) 如果需要糾正該數(shù)據(jù),糾正所述讀取的數(shù)據(jù)以形成糾正的數(shù)據(jù);c) 如果存在糾正的數(shù)據(jù),將糾正的數(shù)據(jù)寫到所述陣列的不同塊,和如果該讀出的數(shù)據(jù) 未糾正,則不寫入該讀出的數(shù)據(jù);以及d) 對(duì)該陣列的不同塊重復(fù)執(zhí)行步驟(a)-(c)直到所有塊已被讀取。
15. —種用于操作具有非易失性存儲(chǔ)單元的陣列的非易失性存儲(chǔ)裝置的控制器,所述 非易失性存儲(chǔ)單元的陣列具有多個(gè)塊,每個(gè)塊具有一起被擦除的多個(gè)存儲(chǔ)單元,所述控制 器包括處理器;存儲(chǔ)器,其具有存儲(chǔ)在其中的由該處理器執(zhí)行的程序代碼,所述程序代碼被配置為a) 讀取來自所述塊之一的每一個(gè)存儲(chǔ)單元的數(shù)據(jù)信號(hào);b) 比較所讀取的該數(shù)據(jù)信號(hào)與容限信號(hào);c) 如果比較步驟(b)的結(jié)果指示需要將對(duì)應(yīng)于該數(shù)據(jù)信號(hào)的數(shù)據(jù)寫到所述陣列的不 同的存儲(chǔ)單元,將對(duì)應(yīng)于該數(shù)據(jù)信號(hào)的該數(shù)據(jù)寫入到所述陣列的不同塊的不同存儲(chǔ)單元, 和否則不寫該數(shù)據(jù);以及d) 對(duì)該陣列的不同塊重復(fù)執(zhí)行步驟a)-c)直到所有塊已被讀取。
全文摘要
一種操作具有非易失性存儲(chǔ)單元的陣列的NAND非易失性存儲(chǔ)裝置的控制器。該非易失性存儲(chǔ)單元的陣列易于遭受存儲(chǔ)在所述陣列的一個(gè)或多個(gè)存儲(chǔ)單元中的數(shù)據(jù)丟失。所述控制器接口于主機(jī)裝置并接收來自該主機(jī)裝置的時(shí)間戳信號(hào)。所述控制器包括處理器,和具有存儲(chǔ)由該處理器執(zhí)行的程序代碼的存儲(chǔ)器。所述程序代碼被配置為由該控制器接收來自該主機(jī)裝置的時(shí)間戳信號(hào);比較該接收的時(shí)間戳信號(hào)與所存儲(chǔ)的信號(hào),其中所存儲(chǔ)的信號(hào)是通過該控制器在時(shí)間上較早地從該主機(jī)裝置接收的時(shí)間戳信號(hào);以及基于該比較步驟確定何時(shí)針對(duì)存儲(chǔ)在該存儲(chǔ)器陣列中的數(shù)據(jù)執(zhí)行數(shù)據(jù)保持和刷新操作。
文檔編號(hào)G06F12/16GK101751348SQ20091024690
公開日2010年6月23日 申請(qǐng)日期2009年12月1日 優(yōu)先權(quán)日2008年12月2日
發(fā)明者F-L·林, J-H·謝 申請(qǐng)人:超捷公司