午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

以區(qū)塊為基礎的快閃存儲裝置及其操作方法

文檔序號:6602918閱讀:335來源:國知局
專利名稱:以區(qū)塊為基礎的快閃存儲裝置及其操作方法
技術領域
本發(fā)明是關于閃存技術,特別是關于以區(qū)塊為基礎快閃存儲裝置及其操作方法。
背景技術
電可擦除可編程只讀存儲器(EEPROM)及閃存包括將電荷儲存在通道與場效晶體 管柵極之間的存儲單元。所儲存的電荷會影響晶體管的閾值電壓,且閾值電壓會根據所儲 存電荷改變而可以用來感測指示數據。其中一種非常慣用的電荷儲存存儲單元被稱為一浮 動柵極存儲單元。在一浮動柵極存儲單元中,其會儲存電荷于通道與柵極之間的一導電材 料層中。另一種電荷儲存存儲單元型態(tài)被稱為一電荷捕捉存儲單元,其會使用一介電層來 取代浮動柵極。此處所使用的名詞”編程”是指增加晶體管閾值電壓的操作。此處所使用的名詞” 擦除”則是指減少晶體管閾值電壓的操作。此外,此處所使用的名詞”寫入”則是指改變晶 體管閾值電壓的操作,且其用意是包含增加或減少晶體管閾值電壓的操作。在一電可擦除可編程只讀存儲器(EEPROM)裝置的存儲單元可以利用一字節(jié)接著 一字節(jié)的方式進行數據讀寫,而與其它數據字節(jié)無關。然而,為了實現一字節(jié)接著一字節(jié)的 方式進行數據讀寫,此電可擦除可編程只讀存儲器(EEPROM)的存儲密度是相對低的。閃存通常提供較電可擦除可編程只讀存儲器(EEPROM)更高的存儲密度。在一閃 存裝置的存儲單元可以利用一字節(jié)接著一字節(jié)的方式進行編程。然而,因為此快閃存儲單 元的組態(tài),擦除必須以更大的區(qū)段接著區(qū)段的方式進行,其中每一個區(qū)段包括相對較大數 目的字節(jié)。因此,為了擦除一區(qū)段內的一存儲單元,該區(qū)段內的所有存儲單元都必須也被擦 除。換句話說,閃存提供一字節(jié)接著一字節(jié)的方式進行編程,但是并無法如同電可擦除可編 程只讀存儲器(EEPROM) —般提供一字節(jié)接著一字節(jié)的方式擦除或寫入。電可擦除可編程只讀存儲器(EEPROM)及快閃存儲裝置通常是作為不同的應用。 一般而言,因為其較高的密度,閃存在大量數據儲存應用方面是較電可擦除可編程只讀存 儲器(EEPROM)更為經濟的。而電可擦除可編程只讀存儲器(EEPROM)是在需要對小量數據 進行一字節(jié)接著一字節(jié)的數據讀寫更為合適。許多電子裝置中同時包含有電可擦除可編程只讀存儲器(EEPROM)及閃存,以滿 足此裝置中不同功能的不同存儲表現需求。然而,同時使用這兩種型態(tài)的存儲器增加了此 裝置的成本及復雜程度。因為閃存無法提供一字節(jié)接著一字節(jié)的方式擦除,寫入更新數據于一區(qū)段可以利 用先執(zhí)行一區(qū)段讀取操作以記錄此區(qū)段中的所有存儲單元內容,之后執(zhí)行一區(qū)段擦除操作 以擦除此區(qū)段中的所有存儲單元,之后再編程更新數據至此區(qū)段的方式進行。此方法的一 個缺點是此區(qū)段中的所有存儲單元需要經歷一讀取_擦除_編程的循環(huán)流程,即使是此區(qū) 段中的僅有某些存儲單元的數據被改變。且此流程也是非常耗時的。閃存會產生一個特定的問題就是其具有有限的耐久性,此裝置中的存儲單元可維 持其操作性及可靠性的擦除及/或編程循環(huán)的數目是有限的。因此,重復及持續(xù)地寫入單一區(qū)段,或是少數的區(qū)段,會導致某些區(qū)段在相對短的時間之后變得老化并有缺陷了。不同的”平均消耗”技術被提出以延長閃存的壽命。一種平均消耗方案是使用記 錄每一個區(qū)段被擦除的次數。此計數器然后被用來調整數據被映像至個別的區(qū)段中,以平 衡其消耗??蓞㈤喢绹鴮@?,000,006,5, 485,595和5,341,339號專利。雖然使用計數器可以延長快閃存儲裝置的壽命,然而有限的讀取/寫入耐久性問 題仍會限制閃存在需要較多次數編程及擦除操作的應用。另一種平均消耗方案是將更新數據寫入快閃存儲裝置中的沒有使用的實體位置, 而不是重新覆蓋原本的數據位置。如此會減少快閃存儲裝置中的一給定寫入操作時的區(qū)段 擦除操作數目??蓞㈤喢绹鴮@?,845,313和6,115,785號專利。為了追蹤數據的實際位置改變,可以使用可編程的映像表或是地址轉譯表??删?程的映像表儲存由一外部系統(tǒng)所指示的邏輯地址與包含有效數據的快閃存儲裝置實體地 址之間的映像信息。為了正確地追蹤有效數據的實際位置,此可編程的映像表在操作時必 須被更新。為了確保有效數據被保持,此映像信息必須在中斷電源時被保持。然而,因為此可 編程的映像地址轉譯表被持續(xù)地更新,儲存此映像信息于閃存中會減少此裝置的壽命。因 為閃存相對慢的擦除速度,如此會嚴重地影響使用閃存的裝置的表現。此可編程的映像地 址轉譯表或許可以替代地儲存在此裝置中的另一個非易失存儲器電路內。然而,也會增加 了此裝置的成本及復雜程度。因此需要提供一種快閃存儲裝置其可以仿真如同電可擦除可編程只讀存儲器 (EEPROM)所提供的一字節(jié)接著一字節(jié)的方式進行數據寫入,而同時也可以利用較低的成本 及復雜程度并解決耐久性問題。

發(fā)明內容
有鑒于此,本發(fā)明所提供的以區(qū)塊為基礎快閃存儲裝置的數據管理技術可以避免 在每次更新儲存于此快閃存儲裝置中的數據時就必須進行區(qū)塊擦除操作。映像至此快閃存 儲裝置區(qū)塊中的邏輯地址具有較此區(qū)塊中更小的地址數目。此區(qū)段擦除操作可以通過寫入 更新數據至對應區(qū)塊的可用預擦除位置的邏輯地址而不是直接覆蓋舊數據而避免。其結果 是,可以在需要一區(qū)段擦除操作之前進行更多次數的寫入操作。此外,此以區(qū)塊為基礎的快 閃存儲裝置,可以同時仿真如同電可擦除可編程只讀存儲器(EEPROM)所提供的一字節(jié)接 著一字節(jié)的方式進行數據寫入。本發(fā)明亦描述一種操作一快閃存儲裝置的方法,該快閃存儲裝置包括多個區(qū)塊, 每一個區(qū)塊包含多個區(qū)段。該方法包含將邏輯地址映像至該多個區(qū)塊中的對應區(qū)塊。對該多個區(qū)塊中的一特定區(qū)塊,此方法亦包含將該特定區(qū)塊的該多個區(qū)段中的一 第一區(qū)段標示為一具有一初始數據區(qū)域及一寫入記錄區(qū)域的工作區(qū)段。該初始數據區(qū)域是 使用儲存此對應邏輯地址中的一數據組,而此寫入記錄區(qū)域是用來儲存此數據組中的更新 數據。且將該特定區(qū)塊的該多個區(qū)段中的一第二區(qū)段標示為一非工作區(qū)段。此非工作區(qū)段 作為一預備單元以儲存對應邏輯地址群組的更新數據組,此數據組將被寫入此區(qū)段的初始 數據區(qū)域。為了回應一寫入命令與映像至該特定區(qū)塊的邏輯地址寫入更新數據,該寫入更新數據包含將寫入記錄數據寫入至該寫入記錄區(qū)域中的一可寫位置,該寫入記錄數據指示該 邏輯地址及指示該更新數據。使用來自該初始數據區(qū)域及該寫入記錄區(qū)域的數據不時編排一更新數據組,例如 當寫入記錄區(qū)域是滿的時候,如此寫入記錄區(qū)域并不會溢出。該更新數據組寫入至該第二 區(qū)段中的一初始數據區(qū)域內,且標示該特定區(qū)塊的第二區(qū)段為該工作區(qū)段。該第一區(qū)段然 后被擦除,且標示該第一區(qū)段為該非工作區(qū)段。該第一及該第二區(qū)段每一個包含一狀態(tài)標識區(qū)域,其中該標示該第二區(qū)段為該工 作區(qū)段包含編程該第二區(qū)段的該狀態(tài)標識區(qū)域中的一預定位置,且該標示該第一區(qū)段為該 非工作區(qū)段包含擦除該第一區(qū)段的該狀態(tài)標識區(qū)域。此區(qū)段的標示可以通過改變狀態(tài)標識區(qū)域中的數據而不是總是需要擦除此狀態(tài) 標識區(qū)域而達成。舉例而言,當此區(qū)段是非工作時,狀態(tài)標識區(qū)域中的數據可以在二位表 示中都是” 1”或是在十六位表示中都是”F”。之后,此狀態(tài)標識區(qū)域的數據可以通過編程 至此狀態(tài)標識區(qū)域中的預設位置來改變,所以特定位自邏輯狀態(tài)” 1” (擦除)改變至邏輯 狀態(tài)” 0”(編程),而保留原本已經是邏輯狀態(tài)” 0”的位。舉例而言,當此非工作區(qū)段的狀 態(tài)標識區(qū)域中的數據是” OxFFFFFF”時,后續(xù)操作時的編程會將狀態(tài)標識區(qū)域的數據先改變 為,,OxFFFFOO,,,然后至” OxFFOOOO,,,且最后至” 0x000000 ”。因為狀態(tài)標識區(qū)域是位于區(qū)段 之內,此狀態(tài)標識區(qū)域然后在此區(qū)段被擦除時擦除回到” OxFFFFFF”。此技術消除了需要在 每一次改變狀態(tài)標識區(qū)域的數據時就必須擦除狀態(tài)標識區(qū)域。此處所描述的技術可以有效率地管理邏輯地址與包含有效數據區(qū)塊的實體地址 之間的映像,而不需要經常地更新邏輯_實體地址映像信息。此處所描述的映像技術辨別對應一特定邏輯地址的區(qū)塊,且標示一偏移量其指示 此初始數據區(qū)域中的一相對實體地址。在此寫入記錄區(qū)域并不包括此特定邏輯地址的更新 數據的情況下,當一區(qū)段被標示為工作區(qū)段時,此工作區(qū)段的偏移量用來指示初始數據區(qū) 域中的對應輸入包含此特定邏輯地址的有效數據。使用此映射技術,狀態(tài)標識及寫入記錄 區(qū)域并不需要在每一次更新此快閃存儲裝置中的數據后就被更新。因此,不需要于操作時 讀取及更新較大的映像表,此更新信息可以保持靜態(tài)穩(wěn)定的。本發(fā)明亦描述一種包含數據處理器及與處理器耦接的存儲器的裝置。該存儲器儲 存可以由該數據處理器執(zhí)行的指令,包括此處所描述的可以在一快閃存儲陣列上執(zhí)行的許 多不同的指令。本發(fā)明的目的、特征和實施例,會在下列實施方式的章節(jié)中搭配圖式被描述。


本發(fā)明是由權利要求范圍所界定。這些和其它目的、特征和實施例,會在下列實施 方式的章節(jié)中搭配圖式被描述,其中圖1顯示一計算機系統(tǒng)的簡要方塊示意圖,其適用于使用此處所描述技術的區(qū)塊 為基礎快閃存儲裝置的數據安排之用。圖2進一步顯示于一例示區(qū)塊內的數據排列方式。圖3顯示一在邏輯地址空間中的邏輯地址與陣列中的區(qū)塊之間映像的范例。圖4顯示實體地址與邏輯地址之間的轉譯的示意圖。
圖5為根據本發(fā)明一實施例的一個由處理器所執(zhí)行儲存數據組于快閃存儲裝置 中的一特定區(qū)塊的組態(tài)流程的流程圖。圖6為一寫入操作的流程圖,以儲存更新數據于一特定的邏輯地址。圖7為一讀取操作的流程圖,以自一特定的邏輯地址讀取數據。圖8為一編排操作的流程圖。圖9是一轉譯圖標顯示于操作時改變儲存在區(qū)段中的狀態(tài)標識區(qū)域的數據。圖10為一操作的流程圖,以決定一中斷操作是否己發(fā)生。圖11顯示根據本發(fā)明一實施例快閃存儲裝置中不同軟件階級之間的關系圖。圖12顯示根據本發(fā)明一第二實施例快閃存儲裝置中不同軟件階級之間的關系 圖。主要元件符號說明
100 計算機系統(tǒng)
112 總線子系統(tǒng)
114 處理器
116 網絡界面
118 通信網路
120 快閃存儲裝置
122 使用者界面輸入裝置
125 區(qū)塊
128 區(qū)段
130 使用者界面輸出裝置
200 初始數據區(qū)域
210 寫入記錄區(qū)域
230 寫入記錄數據
300 邏輯地址空間
310 實體地址空間
320 地址轉譯表
1110低階快閃應用程序界面
1120智能快閃應用程序界面
1130使用者程序代碼
1200字節(jié)讀寫模式區(qū)域1210 快閃存儲裝置存取模式區(qū)域
具體實施例方式本發(fā)明實施例搭配以下圖1到圖12進行詳細描述。圖1顯示一計算機系統(tǒng)100的簡要方塊示意圖,其適用于使用此處所描述技術的 區(qū)塊為基礎快閃存儲裝置120的數據安排之用。計算機系統(tǒng)100通常包含至少一個處理 器114其透過總線子系統(tǒng)112與許多外圍裝置進行溝通。這些外圍裝置可以包括快閃存儲 裝置120、使用者界面輸入裝置122、使用者界面輸出裝置130及一個網絡界面子系統(tǒng)116。這些輸入與輸出裝置可以允許使用者與計算機系統(tǒng)100互動。網絡界面子系統(tǒng)116是作為 提供給與外部網絡的界面,包含一個與通信網路118的界面,且透過通信網路118與其它計 算機系統(tǒng)中的對應界面裝置耦接。通信網路118可以包含許多互連的計算機系統(tǒng)及通信連 接。這些通信連接可以是有線連接、光纖連接、無線連接、或是其它信息傳輸的機制。其中 一個實施例的通信網路118是因特網,但是在其它的實施例中通信網路118可以是任何適 用的計算機網絡。使用者界面輸入裝置122可以包括鍵盤,指向裝置例如是鼠標,軌跡追蹤器、觸控 板、或是圖形平板、掃瞄器、觸控屏幕、聲控輸入裝置例如是聲音辨識系統(tǒng)、麥克風或是其它 型態(tài)的輸入裝置等等。一般而言,使用此名詞”輸入裝置”是代表希望包含所有可能用來輸 入信息進入計算機系統(tǒng)100或是通信網路118的裝置型態(tài)或是方式。使用者界面輸出裝置130可以包括顯示次系統(tǒng)、打印機、傳真機、或是非視覺顯示 例如一聲音輸出裝置等等。此顯示次系統(tǒng)可以包括映像管(CRT)、平面顯示裝置例如液晶顯 示器,一投影裝置,以及其它產生視覺影像的機制等。此顯示次系統(tǒng)也可以包括提供非視覺 顯示例如聲音輸出裝置。一般而言,使用此名詞”輸出裝置”是代表希望包含所有可能用來 自計算機系統(tǒng)100或是其它機器輸出信息的裝置型態(tài)或是方式??扉W存儲裝置120儲存基本的編程及數據結構,其提供此處某些實施例中所描述 的功能,包括邏輯至實體的地址映像及轉譯的指令,以及用來將數據安排于此快閃存儲裝 置120內的指令(會在以下描述)。這些軟件模塊通常是由處理器114執(zhí)行,其可以包括隨 機存取存儲器(RAM)以于程序執(zhí)行時儲存指令或數據。在例示的實施例中,處理器114執(zhí)行指令以進行此處所描述快閃存儲裝置120外 的許多操作。替代地,此快閃存儲裝置120包括一處理器或是其它型態(tài)的控制器以控制數 據管理及執(zhí)行此處所描述的許多操作。舉例而言,此控制器可以是使用業(yè)界所熟知的特殊 功能邏輯電路構成的狀態(tài)機構。在替代的實施例中,此控制器包含通用目的處理器,其可以 應用于同一集成電路上,以執(zhí)行一控制此快閃存儲裝置120的計算機程序。而在另一實施 例中,通用目的處理器與特殊功能邏輯電路的組合可以用來實施此控制器??偩€子系統(tǒng)112提供一機制使計算機系統(tǒng)100中不同的元件及子系統(tǒng)可以如所需 要的彼此互相溝通。雖然圖式中所顯示的總線子系統(tǒng)112是單一總線,總線子系統(tǒng)112的 替代實施例可以使用多重總線。在某些實施例中,于快閃存儲裝置120與總線子系統(tǒng)112 之間的數據、地址及命令信號可以利用串行方式施加在共享的在線,例如可以使用業(yè)界所 熟知的串行外圍界面。計算機系統(tǒng)100本身可以是許多不同型態(tài)包括一個人計算機、可攜式計算機、工 作站、計算機終端、網絡計算機、主系統(tǒng)或是其它的數據處理系統(tǒng)或是使用者裝置。因為計 算機系統(tǒng)持續(xù)不斷地改變,在圖1中所描述的計算機系統(tǒng)100只是一個較佳實施例的例示 罷了。計算機系統(tǒng)100也可以是其它組態(tài),且相較于圖1中所示的計算機系統(tǒng)具有更多或 更少的元件。如圖1中所示,此快閃存儲裝置120包括多個實體區(qū)塊,其包含區(qū)塊0 125-0至區(qū) 塊N 125-N,以儲存利用上述技術安排的數據。如同以上所描述的,此快閃存儲裝置120也 可以包括額外的區(qū)塊以儲存將邏輯與實體地址映像及轉譯的指令,且將數據分配于區(qū)塊0 125-0 至區(qū)塊 N 125-N。
指令包括自計算機系統(tǒng)100所指定的快閃存儲裝置120的邏輯地址與快閃存儲裝 置120區(qū)塊0 125-0至區(qū)塊N 125-N的實體地址之間的映像。如同以下更詳細的描述,此 映射于區(qū)塊0 125-0至區(qū)塊N 125-N的邏輯地址相較對應于區(qū)塊0 125-0至區(qū)塊N 125-N 的實體地址數目具有較小數目的地址,如此在更新儲存于區(qū)塊0 125-0至區(qū)塊N 125-N內 的數據時并不需要進行區(qū)段擦除操作。區(qū)塊0 125-0至區(qū)塊N 125-N每一個包括多個區(qū)段,其是可以個別地進行擦除。區(qū) 塊0 125-0至區(qū)塊N 125-N中的區(qū)段包括一狀態(tài)標識區(qū)域儲存用來指示一區(qū)段是否目前是 工作(正在工作)、非工作(被擦除)、污染或是暫時的數據?!獋€給定區(qū)塊的工作區(qū)段是用來儲存對應邏輯地址的數據。此工作區(qū)段包括一初 始數據區(qū)域儲存對應邏輯地址群組的數據組。為了致能儲存此數據組中的更新數據,此工 作區(qū)段也包括一寫入記錄區(qū)域。在一寫入操作時,寫入記錄包括將更新數據寫入寫入記錄 區(qū)域中可用(空)的區(qū)域。此寫入記錄區(qū)域的大小必須在區(qū)段擦除操作的頻率及讀取操作 (將在以下描述)的速度之間作取舍,且因此可以在不同的實施例中改變。如同以下更詳細的描述,此在寫入記錄區(qū)域中的寫入記錄數據是利用一有組織的 方式儲存,因此有效數據可以被正確地決定。每一個區(qū)塊也包括一非工作區(qū)段,其作為一預備單元以不時地儲存對應邏輯地址 群組的數據組,如此當寫入記錄區(qū)域滿的時候,可以使寫入記錄區(qū)域不會溢出。區(qū)塊1 125-1是快閃存儲裝置120內區(qū)塊0 125-0至區(qū)塊N 125-N中的代表區(qū)塊。 區(qū)塊1 125-1包括多個區(qū)段128a-l和128b-l,... 128c-l,其可以個別擦除。在此范例中, 區(qū)段128a-l目前是工作的區(qū)段,而區(qū)段128b-l,. . . 128c_l目前是非工作的區(qū)段。圖2顯示區(qū)塊1 125-1內的數據排列方式。目前是工作的區(qū)段128a_l,包括一初 始數據區(qū)域200a_l儲存對應邏輯地址群組的數據組。當正在寫入的時候,初始數據區(qū)域 200a-l中的數據組是對應邏輯地址的數據。因此,在初始數據區(qū)域200a-l中具有邏輯地址 與對應輸入數據的一一對應。其結果是,在初始數據區(qū)域200a-l中的地址數目與映像至區(qū) 塊1 125-1內的邏輯地址數目至少一樣大。工作區(qū)段128a_l也包括一預擦除寫入記錄區(qū)域210a_l。在回應寫入命令以更新 一特定映像至區(qū)塊1 125-1內邏輯地址的數據時,一寫入記錄數據230輸入被寫入至寫入 記錄區(qū)域210a-l中一個空的預擦除位置。寫入記錄數據230包括一第一字段(“邏輯地址字段”)指示此更新數據的一特定 邏輯地址。此寫入記錄數據230也包括一第二字段(“更新數據域位”)指示此更新數據。此寫入記錄數據230的第一字段指示初始數據區(qū)域200a_l中對應此特定邏輯地 址的地址不再有效,且由此寫入記錄數據230的第二字段中的更新數據所取代。在第一字段中的數據,舉例而言,可以是此特定邏輯地址,初始數據區(qū)域200a_l 中對應此特定邏輯地址的實體地址輸入,此工作區(qū)段偏移量(如以下描述),或是任何其它 可以被用來決定此特定邏輯地址的數據。在一寫入操作,寫入記錄數據230的輸入被寫入至寫入記錄區(qū)域210a_l中第一個 空的位置,而其它寫入記錄區(qū)域210a_l中空的位置則會是跟隨最近寫入的寫入記錄數據。 其結果是,寫入記錄數據的輸入被安排為一暫存的序列型態(tài)。通過將更新數據寫入至寫入記錄區(qū)域210a_l,而不是利用區(qū)段擦除直接覆蓋初始數據區(qū)域200a-l中區(qū)段128a-l的數據,只有儲存寫入記錄數據230的存儲單元被寫入。此 外,更新數據的寫入是不必利用區(qū)段擦除操作。如此結果是區(qū)段擦除操作的數目是小于寫 入操作的數目,其可以有效地提供此快閃存儲裝置120的耐久性。因為寫入記錄數據被寫入至寫入記錄區(qū)域210a_l中空的位置,最終寫入記錄區(qū) 域的區(qū)段128a-l會變滿。因此,一更新數據組不時需要使用自初始數據區(qū)域和寫入記錄區(qū) 域的數據來進行編排,且作為工作與非工作區(qū)段互相調換,如此寫入記錄區(qū)域才不會溢出。 此處所使用的名詞”不時”通常是用來代表偶爾,且其并不用來限制為規(guī)律、循環(huán)或是相等 的時間間隔。在以下所描述的編排過程,此更新數據組包含對應邏輯地址的有效數據可以使用 來自初始數據區(qū)域200a-l及目前工作區(qū)段128a-l中的寫入記錄區(qū)域210a_l的數據來編 排。此更新數據組然后被寫入初始數據區(qū)域200b-l的區(qū)段128b-l中,且改變區(qū)段128b-l 的標識區(qū)域220中的狀態(tài)標識以指示此區(qū)段128b-l現在是工作的區(qū)段。區(qū)段128a-l然后 被擦除且設置為區(qū)塊1125-1中的一非工作的區(qū)段。在區(qū)塊1125-1中的后續(xù)寫入操作時, 此寫入記錄數據被寫入至區(qū)段128b-l的寫入記錄區(qū)域210b-l。除了使用狀態(tài)標識區(qū)域220以辨別在區(qū)塊1 125-1中的區(qū)段128a_l和區(qū)段 128b-l的工作及非工作區(qū)段之外,此狀態(tài)標識區(qū)域220也用來確保此更新數據被編排且正 確地儲存在新的工作區(qū)段中。此操作會被更仔細地于圖8中描述。圖3顯示一介于邏輯地址空間300中的邏輯地址群組325-0至325_7映像至快閃 存儲裝置120實體地址空間310中的區(qū)塊0125-0至區(qū)塊7125-7的映像范例。在此例示 中,4千字節(jié)(KB)的邏輯地址空間300,包含邏輯地址空間300 0x0000 OxOFFF,分成8個 512字節(jié)的群組325-0至325-7。這些群組325-0至325-7的邏輯地址空間300被映像至 對應的快閃存儲裝置120中8千字節(jié)(KB)的區(qū)塊0 125-0至區(qū)塊7 125-7,其實體地址包 含 0x0000 OxFFFF。因此,這些群組325-0邏輯地址0x0000 OxOlFF被映像至區(qū)塊0 125_0,群組 325-1邏輯地址0x0200 0x03FF被映像至區(qū)塊1 125-1,以此類推。在此范例中,每一個8千字節(jié)(KB)的區(qū)塊包含兩個4千字節(jié)(KB)的區(qū)段。每一 個區(qū)塊0 125-0至區(qū)塊7 125-7的工作區(qū)段包括一個512字節(jié)的初始數據區(qū)域用來儲存所 對應的邏輯地址群組325-0至325-7的數據組。每一個區(qū)段的狀態(tài)標識區(qū)域是3字節(jié)。此 工作區(qū)段的剩余3581字節(jié)是用作寫入記錄區(qū)域。在此范例中,2個字節(jié)是作為寫入記錄區(qū) 域的第一字段(“邏輯地址字段”)輸入以指示此更新數據的一特定邏輯地址,而1個字節(jié) 是作為寫入記錄區(qū)域的第二字段(“更新數據域位”)輸入以指示此更新數據。因此,在此 范例中,此寫入記錄區(qū)域在此工作區(qū)段變滿之前可以支持1193個單一字節(jié)數據寫入操作。如同之前所描述的,一給定區(qū)塊的工作區(qū)段可以于操作中改變。因此,區(qū)塊中的有 效數據的實體地址的根據此區(qū)段目前是工作與否,以及此寫入記錄區(qū)域的任何更新數據, 來決定。其結果是,操作中包含有效數據的實體地址與邏輯地址之間的轉譯并不是固定的。圖4顯示實體地址與邏輯地址之間的轉譯的示意圖。邏輯地址是使用一地址轉譯表320將其映射至對應的區(qū)塊。對一特定的邏輯地址 而言,此地址轉譯表320提供對應至邏輯地址的區(qū)塊。此地址轉譯表320也提供工作區(qū)段 偏移量其辨識在此初始數據區(qū)域中與此特定邏輯地址所對應的相對地址。
在此例示的實施例中,工作區(qū)段偏移量是自此初始數據區(qū)域中的起始實體地址的 一相對地址。在一個如此的范例中,其中一個512字節(jié)的初始數據區(qū)域用來儲存與512字 節(jié)邏輯數據組所對應的數據組,此工作區(qū)段偏移量是介于0x0000 OxOlFF的一數據值。此工作區(qū)段偏移量,當與狀態(tài)標識搭配使用以辨別此工作區(qū)段,指示此初始數據 區(qū)域中與此邏輯地址所對應的輸入。必須注意的是,初始數據區(qū)域中所對應的輸入并不一 定包含此邏輯地址的有效數據,因為更新數據或許存在于寫入記錄區(qū)域內。用來決定有效 數據位置的讀取操作會于圖7中描述。狀態(tài)標識、偏移量及寫入記錄區(qū)域的使用排除了在快閃存儲裝置120每次更新數 據或是當此區(qū)塊中的工作區(qū)段被改變之后就必須更新地址轉譯表320的需求。因此,地址 轉譯表320可以保持靜態(tài),而仍能正確的追蹤此有效數據。因為地址轉譯表320并不需要持續(xù)地更新,其可以儲存于快閃存儲裝置120中。于 操作時,地址轉譯表320可以被提取至較高存取速度的存儲器中,例如圖1處理器的DRAM 或是SRAM。圖5為根據本發(fā)明一實施例的一個由處理器114所執(zhí)行儲存數據組于快閃存儲裝 置120中的一特定區(qū)塊的組態(tài)流程的流程圖。如此處所示的流程圖,必須明白的是許多步 驟可以被結合,平行地執(zhí)行或是以不同的順序執(zhí)行而不會影響所欲達成的功效,在某些情 況下,不同步驟的重新安排僅會在一并調整某些步驟才會達成相同的功效,且在某些情況 下,不同步驟的重新安排僅會在某些條件被滿足才會達成相同的功效。如此的重新安排對 本領域技術人員而言是顯而易見的。在步驟510,邏輯地址被映像至快閃存儲裝置120中對應的區(qū)塊。此映射可以通過 使用圖4中的地址轉譯表320來進行。在步驟520,此特定區(qū)塊中的一第一區(qū)段通過編程此第一區(qū)段中的狀態(tài)標識區(qū)域 以設置其狀態(tài)標識為工作而被標示為工作區(qū)段。此工作區(qū)段具有初始數據區(qū)域及寫入記錄 區(qū)域。此特定區(qū)塊中的一第二區(qū)段通過設置其狀態(tài)標識為非工作而被標示為非工作區(qū)段。 在此范例中,OxFFOOOO的狀態(tài)標識指示一工作區(qū)段,而OxFFFFFF的狀態(tài)標識指示一擦除區(qū) 段。在步驟530,對應于邏輯地址的數據組被寫入初始數據區(qū)域。圖6為一寫入操作的流程圖,其可以由處理器114執(zhí)行以儲存更新數據于一特定 的邏輯地址。為了響應儲存更新數據的一寫入命令,在步驟610,使用之前所描述的地址轉譯表 來決定對應于特定邏輯地址的區(qū)塊。在步驟620,此對應區(qū)塊中的區(qū)段的狀態(tài)標識區(qū)域被讀取以尋找此工作區(qū)段。在步驟630,搜尋此工作區(qū)段的寫入記錄區(qū)域以尋找可寫位置。因為寫入記錄區(qū)域 的可寫位置必須是在擦除狀態(tài),在此范例中會自此寫入記錄區(qū)域中的起始地址開始讀取邏 輯地址字段以尋找第一個擦除位置。在步驟640,當此寫入記錄區(qū)域中找不到一個可寫位置時即代表此工作區(qū)段中的 寫入記錄區(qū)域是滿的,而此流程繼續(xù)至方塊660其中一更新數據組被編排。此編排操作會 在圖8中被描述。當此寫入記錄區(qū)域中找到一個可寫位置時,此流程繼續(xù)至步驟650。在步驟650,一個指示邏輯地址及更新數據的寫入記錄數據輸入被寫入至此寫入記錄區(qū)域的可寫位置。 此寫入操作600最后終止于步驟670。圖7為一讀取操作的流程圖,其可以由處理器114執(zhí)行以自一特定的邏輯地址讀 取數據。為了響應自一特定的邏輯地址讀取數據的一讀取命令,在步驟710,使用之前所描 述的地址轉譯表來決定對應于特定邏輯地址的區(qū)塊。在步驟720,此對應區(qū)塊中的區(qū)段的狀態(tài)標識區(qū)域被讀取以決定此工作區(qū)段。在步驟730,此工作區(qū)段的寫入記錄區(qū)域被搜尋以尋找此邏輯地址的輸入,此輸入 指示此寫入記錄區(qū)域包含此邏輯地址的更新數據。上述范例中的寫入記錄數據被寫入此寫入記錄區(qū)域的第一個可寫位置。其結果 是,此寫入記錄數據被安排為一暫存的序列型態(tài)。因此,在此例示的實施例中寫入記錄區(qū)域 中的數據自最近的寫入記錄數據開始讀取,因為當此邏輯地址的數據被更新了許多次時, 此邏輯地址的第一筆輸入則會是最新的且因此指示此邏輯地址的有效數據。因此,當找到 此邏輯地址的一輸入,此操作繼續(xù)至步驟740,其中此邏輯地址的數據利用此輸入來讀取。當一輸入無法在此寫入記錄區(qū)域中發(fā)現時,則在初始數據區(qū)域中的對應輸入包含 此特定邏輯地址的有效數據。在步驟750,與此特定邏輯地址相關的初始數據區(qū)域中的對應 輸入系使用由之前所描述的地址轉譯表所提供的工作區(qū)段偏移量來決定。儲存于對應輸入 的數據則會被讀取并輸出。如同之前所描述的,作為工作區(qū)段與非工作區(qū)段的區(qū)段則會不時交換。圖8為一編排操作800的流程圖,其可以由處理器114執(zhí)行。此操作可以在寫入 記錄區(qū)域已經充滿時或是其它時候被啟動。為了清晰解說以下的敘述起見,于操作800之前的工作區(qū)段被稱為”區(qū)段A”,而非 工作區(qū)段被稱為”區(qū)段B”。在步驟810,于操作800之前儲存于”區(qū)段A”的寫入記錄區(qū)域及初始數據區(qū)域中 的數據被讀取。包含此特定邏輯地址的有效數據的更新數據組,使用自寫入記錄區(qū)域及初 始數據區(qū)域所讀取的數據進行編排。在步驟820,此更新數據組被寫入”區(qū)段B”的初始數據區(qū)域中,且將區(qū)段B標示為 工作區(qū)段。在此例示實施例中,區(qū)段B的狀態(tài)標識區(qū)域于此更新數據組被寫入之前暫時改 變?yōu)?OxFFFFOO),且隨后將更新數據組寫入的區(qū)段B的狀態(tài)標識改變?yōu)楣ぷ?。僅在此更新 數據組寫入之后將區(qū)段B標示為工作可以確保區(qū)段B包含有效的數據。此外,通過如此方 式來改變區(qū)段B的狀態(tài)標識區(qū)域,此狀態(tài)標識區(qū)域的數據可以用來指示一例如為電源消失 的中斷是否發(fā)生。此操作會于圖9中詳細描述。在步驟830,區(qū)段A標示為污染且被擦除。在此例示實施例中,區(qū)段A的狀態(tài)標識 區(qū)域的數據會在進行區(qū)段A的擦除操作之前改變?yōu)槲廴?0x000000)。此區(qū)段擦除操作隨后 將區(qū)段A的狀態(tài)標識數據改變?yōu)椴脸?非工作)。在進行區(qū)段A的擦除操作之前將其標示 為污染,此狀態(tài)標識區(qū)域的數據可以用來指示中斷是否在擦除區(qū)段A之前發(fā)生。如同之前所描述的,區(qū)段的標示可以通過改變區(qū)段中的狀態(tài)標識區(qū)域的數據而達 成,并不需要總是擦除狀態(tài)標識區(qū)域。圖9是一轉譯圖標顯示于操作時改變儲存在區(qū)段中的狀態(tài)標識區(qū)域的數據。在圖9中,此狀態(tài)標識區(qū)域是3個字節(jié)。如圖9中所示,當一區(qū)段是非工作的,狀態(tài)標識區(qū)域中的數據是”O(jiān)xFFFFFF”。自非 工作改變?yōu)楣ぷ鲿r,狀態(tài)標識先改變?yōu)闀捍娴摹T趫D9中,改變至暫存狀態(tài)是通過編程最低 位置的字節(jié),因此狀態(tài)標識區(qū)域的數據是” OxFFFFOO”。由暫存改變至工作是通過編程中間 位置字節(jié),因此狀態(tài)標識區(qū)域的數據是” OxFFOOOO”。自工作變成非工作的改變,狀態(tài)標識區(qū)域中的數據首先改變至污染。在圖9中, 改變至污染狀態(tài)是通過編程狀態(tài)標識區(qū)域中最高位置的字節(jié),因此數據是” 0x000000”。 因為狀態(tài)標識區(qū)域是位于此區(qū)段之內,所以當此區(qū)段被擦除時此狀態(tài)標識區(qū)域是擦除回 到”O(jiān)xFFFFFF”。此技術消除了在每一次狀態(tài)標識區(qū)域需要改變時就必須擦除一次。其結果 是,狀態(tài)標識區(qū)域的數據可以被儲存在區(qū)段之內而不需要分開儲存。替代地,許多不同區(qū)段的狀態(tài)改變可以通過編程狀態(tài)標識區(qū)域中與圖9所示的不 同位置而達成。圖10為一操作1000的流程圖,其可以由處理器114執(zhí)行以決定圖8中的中斷操 作800是否已發(fā)生。此操作1000可以在,舉例而言,當快閃存儲裝置120被提供電源或是 在第一個寫入命令前被執(zhí)行。在步驟1010,一特定區(qū)塊的區(qū)段中的狀態(tài)標識被讀取。當一區(qū)段中的狀態(tài)標識是 污染的,則一中斷于操作800中的步驟830時發(fā)生。在此情況下,在步驟1020此區(qū)段進行 一區(qū)段擦除。當一區(qū)段中的狀態(tài)標識是暫存的,則一中斷于操作800中的步驟820時發(fā)生。在 此情況下,在步驟1030對此區(qū)塊重新進行操作800。當此區(qū)塊中有兩個區(qū)段具有工作區(qū)段狀態(tài)標識時,則一中斷發(fā)生在操作800中的 步驟820與830之間。在此情況下,在方塊1040,這些區(qū)段被讀取以決定哪一個區(qū)段是滿的 且因此確實是污染的區(qū)段,及對此污染的區(qū)段進行一區(qū)段擦除。此操作1000然后繼續(xù)檢查快閃存儲裝置120的下一個區(qū)塊,直到所有的區(qū)塊都被
檢查完畢。圖11顯示根據本發(fā)明一實施例快閃存儲裝置120中不同軟件階級之間的關系圖。 使用者程序代碼1130包括邏輯以提供邏輯地址及命令以讀取和寫入數據至此快閃存儲裝 置 120。此智能快閃應用程序界面(API) 1120是一個軟件模塊包括邏輯以進行邏輯-實體 地址映像及轉譯,及邏輯以管理讀取和寫入至此快閃存儲裝置120的數據以進行此處所描 述的不同操作。此智能快閃應用程序界面(API) 1120自使用者程序代碼1130轉譯命令并 提供指令給低階快閃應用程序界面(API) 1110。此智能快閃應用程序界面(API) 1120也使 用地址轉譯表將使用者程序代碼1130的邏輯地址轉譯成對應的實體地址,其然后提供給 低階快閃應用程序界面(API) 1110軟件模塊。此低階快閃應用程序界面(API) 1110是一個軟件驅動器特別適用于與快閃存儲 裝置120搭配工作。此低階快閃應用程序界面(API) 1110包括邏輯以進行實際的讀取和編 程數據以及區(qū)段擦除至此快閃存儲裝置120以響應由智能快閃應用程序界面(API) 1120所 提供的指令及實體地址。此快閃存儲裝置120、低階快閃應用程序界面(API) 1110及智能快閃應用程序界面(API) 1120以此處所描述的一字節(jié)接著一字節(jié)的方式共同仿真快閃存儲裝置120的讀寫。此快閃存儲裝置120以使用商業(yè)上常用的快閃存儲裝置來施行,例如旺宏公司的 MX25L512CM0S串行快閃。其結果是,此智能快閃應用程序界面(API) 1120提供模擬此處所 描述的一字節(jié)接著一字節(jié)的方式進行快閃存儲裝置120的讀寫的能力,而不需要重新寫入 這些裝置前必須先執(zhí)行擦除區(qū)塊動作。在圖11中,此智能快閃應用程序界面(API) 1120被安排在介于使用者程序代碼 1130與低階快閃應用程序界面(API) 1110之間。圖12顯示根據本發(fā)明一第二實施例快閃存儲裝置120中不同軟件階級之間的關 系圖,其中快閃存儲裝置120包括一字節(jié)讀寫模式區(qū)域1200及一快閃存儲裝置存取區(qū)域 1210。在圖12中,此智能快閃應用程序界面(API) 1120操作快閃存儲裝置120中的字節(jié) 讀寫模式區(qū)域1200以仿真此處所描述的一字節(jié)接著一字節(jié)的方式的數據讀寫。此外,此低 階快閃應用程序界面(API) 1110操作快閃存儲裝置存取模式區(qū)域1210以一字節(jié)接著一字 節(jié)或一頁面接著一頁面的方式對快閃存儲裝置120進行數據讀取或編程,并以一區(qū)塊接著 一區(qū)塊的方式對快閃存儲裝置120進行擦除。在如此的實施例中,快閃存儲裝置120可以同時作為一電可擦除可編程只讀存儲 器(EEPROM)及一閃存。其結果是,快閃存儲裝置120可以取代分別的電可擦除可編程只讀 存儲器(EEPROM)與閃存,其降低了系統(tǒng)成本及復雜性。此處所描述的技術可以致能使用區(qū)塊為基礎的閃存于較大數目信息的處理系統(tǒng) 之中。作為一個范例,此處所描述的技術可以仿真單一字節(jié)數據的讀寫。更一般而言,此處 所描述的技術可以用來讀寫使用區(qū)塊為基礎的閃存中的其它大小數據,其中讀寫的數據大 小是小于區(qū)塊的大小。此處所描述的技術的優(yōu)點包含通過以區(qū)塊為基礎的閃存取代高成本低密度的電 可擦除可編程只讀存儲器(EEPROM),可以節(jié)省系統(tǒng)的成本。通過施行此處所描述的技術,此 閃存的讀取/寫入壽命可以被增加為超過傳統(tǒng)區(qū)塊存取算法的1000倍。雖然本發(fā)明已參照實施例來加以描述,然本發(fā)明創(chuàng)作并未受限于其詳細描述內 容。替換方式及修改樣式已于先前描述中所建議,且其它替換方式及修改樣式將為本領域 技術人員所思及。特別是,所有具有實質上相同于本發(fā)明的構件結合而達成與本發(fā)明實質 上相同結果者,皆不脫離本發(fā)明的精神范疇。因此,所有此等替換方式及修改樣式系意欲落 在本發(fā)明于隨附權利要求范圍及其均等物所界定的范疇之中。
1權利要求
一種操作一存儲裝置的方法,該存儲裝置包括多個區(qū)塊,每一個區(qū)塊包含多個區(qū)段,其特征在于,該方法包含將邏輯地址映像至該多個區(qū)塊中的對應區(qū)塊;以及對該多個區(qū)塊中的一特定區(qū)塊將該特定區(qū)塊的該多個區(qū)段中的一第一區(qū)段標示為一具有一初始數據區(qū)域及一寫入記錄區(qū)域的工作區(qū)段,且將該特定區(qū)塊的該多個區(qū)段中的一第二區(qū)段標示為一非工作區(qū)段;寫入一數據組于該初始數據區(qū)域;以及響應一寫入命令與映像至該特定區(qū)塊的邏輯地址寫入更新數據,該寫入更新數據包含將寫入記錄數據寫入至該寫入記錄區(qū)域中的一可寫位置,該寫入記錄數據指示該邏輯地址及指示該更新數據。
2.根據權利要求1所述的方法,其特征在于,更包含使用來自該初始數據區(qū)域及該寫入記錄區(qū)域的數據編排一更新數據組; 寫入該更新數據組至該第二區(qū)段中的一初始數據區(qū)域內,且標示該第二區(qū)段為該工作 區(qū)段;以及標示該第一區(qū)段為污染區(qū)段,且擦除該第一區(qū)段。
3.根據權利要求2所述的方法,其特征在于該第一區(qū)段及該第二區(qū)段每一個均包含一狀態(tài)標識區(qū)域;該標示該第二區(qū)段為該工作區(qū)段包含編程該第二區(qū)段的該狀態(tài)標識區(qū)域中的一預定 位置;以及該標示該第一區(qū)段為該非工作區(qū)段包含擦除該第一區(qū)段的該狀態(tài)標識區(qū)域。
4.根據權利要求2所述的方法,其特征在于該第一區(qū)段及該第二區(qū)段每一個包含一狀態(tài)標識區(qū)域; 該標示該第二區(qū)段為該工作區(qū)段包含編程該第二區(qū)段的該狀態(tài)標識區(qū)域中的一第一預定位置以在寫入該更新數據組之前 標示該第二區(qū)段為一暫存區(qū)段;以及編程該第二區(qū)段的該狀態(tài)標識區(qū)域中的一第二預定位置以在寫入該更新數據組之后 標示該第二區(qū)段為一工作區(qū)段;該標示該第一區(qū)段為該非工作區(qū)段包含編程該第一區(qū)段的該狀態(tài)標識區(qū)域中的一第三預定位置以在擦除該第一區(qū)段之前標 示該第一區(qū)段為一污染區(qū)段;擦除該第一區(qū)段的該狀態(tài)標識區(qū)域。
5.根據權利要求1所述的方法,其特征在于,該映射識別該區(qū)塊對應至一特定邏輯地 址,且識別在一初始數據區(qū)域中的一相對實體地址的偏移量。
6.根據權利要求1所述的方法,其特征在于,該將一邏輯地址寫入該更新數據包括 寫入該寫入記錄數據至該寫入記錄區(qū)域中的一可寫位置除非該寫入記錄區(qū)域是滿的;當該寫入記錄區(qū)域為滿的時,編排該特定區(qū)塊的該更新數據組。
7.根據權利要求1所述的方法,其特征在于,更包含回應一讀取命令自映像至該特定區(qū)塊的一第二邏輯地址讀取數據,該讀取數據包含當該寫入記錄區(qū)域包括該第二邏輯地址的一輸入時,自該寫入記錄區(qū)域中讀取該第二 邏輯地址的數據;以及當該寫入記錄區(qū)域并不包括該第二邏輯地址的一輸入的時,自該初始數據區(qū)域中的一 對應輸入讀取該第二邏輯地址的數據。
8.根據權利要求7所述的方法,其特征在于,該自該寫入記錄區(qū)域中讀取該第二邏輯 地址的數據包含辨識該寫入記錄區(qū)域的該第二邏輯地址中的一最新的輸入;以及 使用該最新的輸入自該第二邏輯地址讀取該數據。
9.一種裝置,其特征在于,包含一數據處理器及一存儲器與該數據處理器耦接,該存儲器儲存可以由該數據處理器執(zhí) 行的指令,該些指令包括映像邏輯地址至一快閃存儲陣列的多個區(qū)塊中的對應區(qū)塊,該多個區(qū)塊中的每一個區(qū) 塊包含多個區(qū)段;將一特定區(qū)塊的該多個區(qū)段中的一第一區(qū)段標示為一具有一初始數據區(qū)域及一寫入 記錄區(qū)域的工作區(qū)段,且將該特定區(qū)塊的該多個區(qū)段中的一第二區(qū)段標示為一非工作區(qū) 段;寫入一數據組于該初始數據區(qū)域;以及響應一寫入命令與映像至該特定區(qū)塊的邏輯地址寫入一更新數據,該寫入更新數據包 含將寫入記錄數據寫入至該寫入記錄區(qū)域中的一可寫位置,該寫入記錄數據指示該邏輯地 址及指示該更新數據。
10.根據權利要求9所述的裝置,其特征在于 標示該第二區(qū)段為該工作區(qū)段的該些指令包含編程該第二區(qū)段的一狀態(tài)標識區(qū)域中的一第一預定位置以在寫入該更新數據組之前 標示該第二區(qū)段為一暫存區(qū)段;以及編程該第二區(qū)段的該狀態(tài)標識區(qū)域中的一第二預定位置以在寫入該更新數據組之后 標示該第二區(qū)段為一工作區(qū)段;以及標示該第一區(qū)段為該非工作區(qū)段的該些指令包含編程該第一區(qū)段的該狀態(tài)標識區(qū)域中的一第三預定位置以在擦除該第一區(qū)段之前標 示該第一區(qū)段為一污染區(qū)段;以及擦除該第一區(qū)段的該狀態(tài)標識區(qū)域。
全文摘要
本發(fā)明公開了一種以區(qū)塊為基礎快閃存儲裝置及其操作方法,所描述的以區(qū)塊為基礎快閃存儲裝置的數據管理技術可以避免在每次更新儲存于此快閃存儲裝置中的數據時就必須進行區(qū)塊擦除操作。其結果是,可以在需要一區(qū)段擦除操作之前進行較大數目的寫入操作。此外,此以區(qū)塊為基礎的快閃存儲裝置,可以同時仿真如同電可擦除可編程只讀存儲器(EEPROM)所提供的一字節(jié)接著一字節(jié)的方式進行數據讀寫。
文檔編號G06F12/06GK101923516SQ20101018064
公開日2010年12月22日 申請日期2010年5月14日 優(yōu)先權日2009年5月15日
發(fā)明者李祥邦, 王成淵, 董崇杰 申請人:旺宏電子股份有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1