專利名稱:閃爍存儲器系統(tǒng)控制方案的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總的涉及閃爍存儲器,更具體地,本發(fā)明涉及用于大容量存儲應用的多設(shè) 備閃爍存儲器系統(tǒng)。
背景技術(shù):
閃爍存儲器是常用的一類非易失性存儲器,其廣泛用作消費電子(諸如數(shù)字照相 機和便攜數(shù)字音樂播放器)的大容量存儲。當前可用的閃爍存儲器芯片的密度可達32G比 特GGB),由于單個閃爍芯片的小尺寸,其適合用在流行的USB閃爍驅(qū)動器中。八百萬像素的數(shù)字照相機和具有音樂和視頻功能的便攜數(shù)字娛樂設(shè)備的出現(xiàn)促 進了對于存儲大量數(shù)據(jù)的超高容量的要求,而這種要求是單個閃爍存儲器設(shè)備不能滿足 的。因此,將多個閃爍存儲器設(shè)備組合在一起形成存儲器系統(tǒng)來有效增加可用的存儲容量。 例如,這些應用可以要求20GB的閃爍存儲密度。圖1的框圖示出與主機系統(tǒng)12 —起集成的現(xiàn)有技術(shù)的閃爍存儲器系統(tǒng)10。閃爍 存儲器系統(tǒng)10包括和主機系統(tǒng)12通信的閃爍存儲器控制器14以及多個非易失性存儲器 設(shè)備16。主機系統(tǒng)包括諸如微控制器、微處理器或者計算機系統(tǒng)的處理設(shè)備。圖1的閃爍 存儲器設(shè)備10被配置包括一個通道20,其中多個存儲器設(shè)備16并行連接到通道20。本 領(lǐng)域的普通技術(shù)人員可以理解存儲器系統(tǒng)10可以具有與通道相連的任意數(shù)量的存儲器設(shè) 備。通道20包括一組公用總線,包括連接到所有相應的存儲器設(shè)備的數(shù)據(jù)和控制線 路。雖然沒有示出,但是每一存儲器設(shè)備可以由閃爍存儲器控制器14提供的相應芯片選擇 信號來使能或者禁止。閃爍控制器14用于根據(jù)主機系統(tǒng)12的操作經(jīng)通道發(fā)送命令和數(shù)據(jù) 到所選擇的存儲器設(shè)備。從存儲器設(shè)備讀取的數(shù)據(jù)經(jīng)通道被返回所述閃爍存儲器控制器14 和主機系統(tǒng)12。閃爍存儲器系統(tǒng)10通常稱為多點(multi-drop)配置,其中所述存儲器設(shè) 備10關(guān)于通道20并行連接。在閃爍存儲器系統(tǒng)10中,非易失性存儲器設(shè)備16互相相同,并且典型地實現(xiàn)為與 非閃爍存儲器設(shè)備。本領(lǐng)域內(nèi)的普通技術(shù)人員可以理解閃爍存儲器可以組織在存儲體中, 每一存儲體可以被組合到塊中以有利于塊擦除。大部分商業(yè)可用的與非閃爍存儲器設(shè)備被 配置具有兩個存儲體。在討論閃爍存儲器系統(tǒng)10的操作之前,簡要描述單個與非閃爍存儲 器設(shè)備存儲器核。圖2的總的框圖示出公知與非閃爍存儲器的一個存儲體。存儲體30被組織到k+Ι個塊中。每一塊包括與非存儲器單元串,具有互相串聯(lián)的多達i+Ι個閃爍存儲器單元。 相應地,字線Wi)到WLi連接到存儲器單元串中的每一個閃爍存儲器單元的柵極。與信號 SSL(串選擇線)相連的串選擇設(shè)備選擇性地將存儲器單元串連接到位線,同時連接到信號 GSL(接地選擇線)的接地選擇設(shè)備將存儲器單元串選擇性地連接到諸如VSS的電源線。串 選擇設(shè)備和接地選擇設(shè)備為η溝道晶體管。存儲體30的所有塊公用j+Ι個位線,并且每一 位線連接到塊
到DO的每一塊中的一個與非存儲器單元串。每一字線(WL0到WLi)、 SSL和GSL信號連接到塊中的每個與非存儲器單元串中的同一對應的晶體管設(shè)備。本領(lǐng)域 內(nèi)的普通技術(shù)人員應該可以意識到沿著一個字線存儲在閃爍存儲器單元中的數(shù)據(jù)稱為一 個數(shù)據(jù)頁面。數(shù)據(jù)寄存器32連接到存儲體30外部的每一位線,用于存儲將要編程到閃爍存儲 器單元的一個頁面的寫數(shù)據(jù)的一個頁面中。數(shù)據(jù)寄存器32還包括感應電路用于感應從閃 爍存儲器單元的一個頁面讀取的數(shù)據(jù)。在編程操作期間,數(shù)據(jù)寄存器執(zhí)行編程驗證操作以 確保該數(shù)據(jù)被正確編程到與所選字線相連接的閃爍存儲器單元中。塊中的編程通常從對應 于mi)的頁面開始,順序執(zhí)行到WLi直到完成本塊,然后繼續(xù)從新塊的Wi)開始編程。在一 個設(shè)備中,順序編程多個塊。返回到圖1的閃爍存儲器系統(tǒng)10,存在多個特定問題對系統(tǒng)性能產(chǎn)生不利的影 響。一些是物理的而另一些是結(jié)構(gòu)上的。閃爍存儲器系統(tǒng)10的配置產(chǎn)生物理性能的限制。由于大量并行信號運行通過系 統(tǒng),由于串擾、信號偏斜、同步開關(guān)噪聲(SSN),所傳輸信號的信號完整性將削弱。在此配置 中的功耗由于閃爍控制器和閃爍存儲器設(shè)備之間的每個信號線為了信號傳輸頻繁充放電 也成為一個問題。隨著系統(tǒng)時鐘頻率的增長,功耗也隨之增加。從結(jié)構(gòu)上看去,編程操作將占用太多的時間。閃爍控制器14的基本功能是管理數(shù) 據(jù)到系統(tǒng)中的存儲器設(shè)備的寫入。在閃爍存儲器的上下文中,寫數(shù)據(jù)通常是指編程數(shù)據(jù)。關(guān) 于閃爍編程存在兩個顯著的難題。第一,相對于諸如DRAM和SRAM的易失性存儲器和諸如 硬盤驅(qū)動器的非易失性存儲器,閃爍編程較慢。編程數(shù)據(jù)到閃爍存儲器單元需要高電壓和 分步驟編程序列以獲得嚴格的編程閾值電壓分布。在具有兩個存儲體的與非閃爍存儲器設(shè) 備中,兩個頁面的數(shù)據(jù)并行編程,一個頁面用于一個存儲體。由于每一個存儲體僅有一個數(shù) 據(jù)寄存器,其它的編程操作需要等到當前頁面成功編程之后。因此,將大量數(shù)據(jù)編程到閃爍 設(shè)備16就需要消耗非常大量的時間。傳統(tǒng)閃爍存儲器系統(tǒng)10的第二個問題是編程數(shù)據(jù)的線性文件結(jié)構(gòu)。圖3示出用 于具有四個存儲器設(shè)備的閃爍存儲器系統(tǒng)50的傳統(tǒng)文件結(jié)構(gòu)。在圖3中,每個存儲器設(shè)備 52、54、56和58具有總數(shù)為η的物理頁面的存儲空間,這些存儲空間分配在任意數(shù)量的塊。 在所示例子中,假設(shè)η個頁面在兩個存儲體之間平均分配。大多數(shù)閃爍存儲器系統(tǒng)將包括 多個數(shù)據(jù)頁面的數(shù)據(jù)文件線性存儲到一個存儲器設(shè)備中。例如,數(shù)據(jù)文件的第一頁面存儲 在設(shè)備52的頁面0中,隨后的數(shù)據(jù)頁面依次存儲在后續(xù)頁面中。一旦設(shè)備52存滿,系統(tǒng)50 中將要存儲的其余數(shù)據(jù)文件從設(shè)備討中的頁面0開始,以此類推。箭頭60示出數(shù)據(jù)寫到 閃爍存儲器系統(tǒng)50的存儲模式。此線性文件結(jié)構(gòu)以及每一存儲器設(shè)備的每一頁面的數(shù)據(jù)文件需要相對長的編程 時間,使得閃爍存儲器系統(tǒng)需要顯著長的時間來存儲數(shù)據(jù)。涉及線性文件結(jié)構(gòu)的另一個問題是設(shè)備可靠性,并且更具體地,是一個存儲器設(shè)備相對于系統(tǒng)中其它存儲器設(shè)備的編程/ 擦除耗損。編程/擦除耗損是指由于累積的編程和擦除操作導致的閃爍存儲器的漸進的 性能下降。此累積的編程和擦除操作的結(jié)果改變存儲單元的編程和擦除特性而偏離最佳參 數(shù)。當存儲器單元性能下降,需要較高的編程和擦除電壓來編程或者擦除存儲器單元到期 望的閾值電壓。最后,存儲器單元不能正常操作。這就是閃爍存儲器標定出有限次數(shù)的擦 除-編程循環(huán)的原因,其次數(shù)在10000到100000個循環(huán)之間。例如,如果圖3中的第一存儲器設(shè)備52經(jīng)歷多于其它任一存儲器設(shè)備的編程和擦 除循環(huán),存儲器設(shè)備52將早于其它存儲器設(shè)備出現(xiàn)故障。當存儲器設(shè)備52出現(xiàn)故障,由于 存儲器設(shè)備是封裝在一起的并且替換單個存儲器設(shè)備是不現(xiàn)實的,整個系統(tǒng)50將不能夠 使用。由于系統(tǒng)中的其余設(shè)備仍然可用并且還具有顯著長的壽命,對于存儲器設(shè)備這種浪 費很讓人遺憾。大部分閃爍存儲器的內(nèi)部技術(shù)結(jié)構(gòu)中,可擦除的存儲器的最小單元為存儲塊。這 就意味著如果即使塊中的一個頁面要被修改,整個塊必須使用新的頁面重新編程。這稱為 塊重編程,其需要顯著長的編程時間,并給系統(tǒng)的性能帶來負面影響。因此,目前公知的閃爍存儲器系統(tǒng)具有用于編程數(shù)據(jù)的較低的吞吐量,并且由于 設(shè)備上的編程和擦除耗損的不平衡,整個系統(tǒng)的壽命被限制為出現(xiàn)故障的第一存儲器設(shè)備 的壽命。因此,期望提供一種具有最大化系統(tǒng)壽命的方案的高速閃爍存儲器系統(tǒng)結(jié)構(gòu)。
發(fā)明內(nèi)容
本發(fā)明的一個目的是避免或者減輕閃爍存儲器系統(tǒng)的先前控制方案的至少一個 缺陷。更具體地,本發(fā)明的目的是通過系統(tǒng)的每一閃爍存儲器設(shè)備中的交錯編程操作來改 進閃爍存儲器系統(tǒng)編程吞吐量。在第一方面,本發(fā)明提供一種用于控制連接到通道的第一和第二閃爍存儲器設(shè)備 的方法。所述方法包括響應第一命令在所述第一閃爍存儲器設(shè)備中執(zhí)行第一操作,并且響 應第二命令在所述第二閃爍存儲器設(shè)備中啟動第二操作,同時所述第一閃爍存儲器設(shè)備正 在執(zhí)行所述第一操作。在本發(fā)明的一個實施例中,所述第一閃爍存儲器設(shè)備和所述第二閃爍存儲器設(shè)備 互相串行連接,并且在所述啟動步驟之前所述第二命令通過所述第一閃爍存儲器設(shè)備傳輸 到所述第二閃爍存儲器設(shè)備。在另一實施例中,執(zhí)行所述第一操作的步驟包括編程所述第 一存儲器設(shè)備中的數(shù)據(jù)文件的至少一個頁面。所述第二操作包括啟動編程所述第二存儲器 設(shè)備中的數(shù)據(jù)文件的至少一個其它頁面,同時所述方法還包括響應第三命令在所述第一閃 爍存儲器設(shè)備中啟動第三操作。所述第二操作包括啟動所述第二存儲器設(shè)備中的數(shù)據(jù)的讀 操作或者啟動所述第二存儲器設(shè)備中的擦除操作。在又一個實施例中,執(zhí)行所述第一操作 包括所述第一存儲器設(shè)備中的讀操作和擦除操作的其中一個。在第二方面,本發(fā)明提供一種用于在具有多個閃爍存儲器設(shè)備的閃爍存儲器系統(tǒng) 中的高速耗損平衡編程的方法。所述方法包括接收具有k個頁面的數(shù)據(jù)文件,k為大于0的 整數(shù);選擇對應于尺寸k和閃爍存儲器系統(tǒng)的配置參數(shù)的編程配置文件;并且根據(jù)所選擇 的編程配置文件編程多個閃爍存儲器設(shè)備的至少兩個的每一個中的數(shù)據(jù)文件的k個頁面的至少一個。根據(jù)本方面的實施例,所述配置參數(shù)包括j個閃爍存儲器設(shè)備,j個閃爍存儲器設(shè) 備的每一個具有每一塊i個頁面,其中,i和j為大于0的整數(shù)。所述選擇的步驟包括計算 ζ的上限函數(shù)(ceiling function),其中ζ = k/i,所述編程配置文件包括當ζ小于或等于 j時用于存儲j個閃爍存儲器設(shè)備的ζ個中的數(shù)據(jù)文件的k個頁面的單個文件結(jié)構(gòu)。所述 編程的步驟包括順序提供編程命令到ζ個閃爍存儲器設(shè)備的每一個用于編程k個頁面,其 中,每個編程命令編程k個頁面的至少一個。在本方面的另一個實施例中,當ζ大于j時,所述編程配置文件包括一個復合文件 結(jié)構(gòu)。所述復合文件結(jié)構(gòu)包括存儲數(shù)據(jù)文件的j*i個頁面的m個單元到j(luò)個閃爍存儲器設(shè) 備中,并且當ζ小于或等于j時,存儲數(shù)據(jù)文件的k-(m*(j*i))個頁面到j(luò)個閃爍存儲器設(shè) 備的ζ個中,其中,m是大于0的整數(shù)。編程的步驟包括順序提供編程命令到j(luò)個閃爍存儲 器設(shè)備的每一個,用于編程所述數(shù)據(jù)文件的j*i個頁面,其中,每個編程命令編程所述k個 頁面的至少一個。編程的步驟還包括順序提供編程命令到ζ個閃爍存儲器設(shè)備的每一個, 用于編程所述k-(m*(j*i))個頁面,其中每個編程命令編程所述k個頁面的至少一個。在第三方面,本發(fā)明提供一種數(shù)據(jù)文件存儲結(jié)構(gòu)用于具有連接到同一通道的至少 兩個存儲器設(shè)備的存儲器系統(tǒng)。所述數(shù)據(jù)文件存儲結(jié)構(gòu)包括存儲在至少兩個存儲器設(shè)備的 兩個中的數(shù)據(jù)文件的部分。根據(jù)本發(fā)明的實施例,所述數(shù)據(jù)文件的部分大小互相基本相同, 并且所述數(shù)據(jù)文件的部分存儲在存儲器系統(tǒng)的至少兩個存儲器設(shè)備的每一個中。在第四方面,本發(fā)明提供一種用于在具有j個閃爍存儲器設(shè)備的閃爍存儲器系統(tǒng) 中的高速耗損平衡編程的方法,其中,j個閃爍存儲器設(shè)備的每一個具有每塊i個頁面,其 中,i和j為大于0的整數(shù)。所述方法包括接收具有k個頁面的數(shù)據(jù)文件,k為大于0的整 數(shù);如果ζ = k/i的上限函數(shù)小于或者等于j,提供命令用于編程j個存儲器設(shè)備的Z個中 的k個頁面;如果ζ = k/i的上限函數(shù)大于j,提供命令用于編程j個存儲器設(shè)備中的j*i 個頁面;通過設(shè)置k = k_(j*i)來更新k ;并且重復編程更新的k個頁面的步驟。在第五方面,本發(fā)明提供一種閃爍存儲器系統(tǒng),所述閃爍存儲器系統(tǒng)包括控制器、 第一閃爍存儲器設(shè)備和第二閃爍存儲器設(shè)備。所述控制器具有提供第一命令和第二命令的 通道。所述第一閃爍存儲器設(shè)備耦合于所述通道用于響應所述第一命令執(zhí)行第一操作。所 述第二閃爍存儲器設(shè)備耦合于所述通道用于響應所述第二命令啟動第二操作,同時所述第 一閃爍存儲器設(shè)備正在執(zhí)行所述第一操作。根據(jù)本方面的實施例,所述第一閃爍存儲器設(shè)備和所述第二閃爍存儲器設(shè)備互相 串行連接,并且所述第二命令通過所述第一閃爍存儲器設(shè)備傳輸?shù)剿龅诙W爍存儲器設(shè) 備。所述第一操作包括編程操作,并且所述第一閃爍存儲器設(shè)備編程數(shù)據(jù)文件的至少一個 頁面。所述第二操作包括另一編程操作,并且所述第二閃爍存儲器設(shè)備編程所述數(shù)據(jù)文件 的至少一個其它頁面。對本領(lǐng)域普通技術(shù)人員來說,通過結(jié)合附圖閱讀下面本發(fā)明具體實施例的描述, 本發(fā)明的其他方面和特征是顯而易見的。
結(jié)合附圖,僅通過示例方式來說明本發(fā)明的實施例,其中
圖1為現(xiàn)有技術(shù)閃爍存儲器系統(tǒng)的框圖;圖2為現(xiàn)有技術(shù)與非閃爍存儲器核的示意圖;圖3為用于閃爍存儲器系統(tǒng)的傳統(tǒng)文件結(jié)構(gòu)的示意圖;圖4為根據(jù)本發(fā)明的實施例的閃爍存儲器系統(tǒng)的框圖;圖5為根據(jù)本發(fā)明的實施例的由圖4的閃爍控制器發(fā)送的編程命令的時序圖;圖6的時序圖示出圖4中閃爍存儲器系統(tǒng)的每一存儲器設(shè)備接收的編程命令;圖7為根據(jù)本發(fā)明的實施例說明高速交錯編程方法的流程圖;圖8為根據(jù)圖7的高速交錯編程方法產(chǎn)生的圖4所示的閃爍存儲器系統(tǒng)中的文件 結(jié)構(gòu)的示意圖;圖9的流程圖示出根據(jù)本發(fā)明的實施例的高速耗損平衡編程方法;和圖10的時序圖示出交錯編程和讀操作。
具體實施例方式閃爍存儲器系統(tǒng)結(jié)構(gòu)具有串聯(lián)的閃爍存儲器設(shè)備用于獲取數(shù)據(jù)的高速編程。通過 在系統(tǒng)的存儲器設(shè)備間交錯數(shù)據(jù)頁面,獲取數(shù)據(jù)的高速編程,使得不同頁面的數(shù)據(jù)存儲在 不同的存儲器設(shè)備中。存儲器控制器以具有一個或者多個信號線的位流的形式發(fā)出用于每 一存儲器設(shè)備的編程命令。當每一存儲器設(shè)備接收到編程命令時,其開始編程操作,或者其 可以傳輸此命令到下一個存儲器設(shè)備。因此,閃爍系統(tǒng)中存儲器設(shè)備一個接著另一個順序 地編程數(shù)據(jù)的頁面,因此最小化了編程每一頁面的數(shù)據(jù)到閃爍存儲器系統(tǒng)中的延遲。所述 存儲器控制器執(zhí)行耗損平衡控制算法(wear level control algorithm)對任意尺寸數(shù)據(jù) 來優(yōu)化編程性能和耐久性。圖4的框圖示出根據(jù)本發(fā)明的實施例的具有串聯(lián)的存儲器設(shè)備的閃爍存儲器系 統(tǒng),用于執(zhí)行具有耗損平衡控制的高速數(shù)據(jù)編程操作。閃爍存儲器系統(tǒng)100包括和主機 系統(tǒng)104通信的閃爍存儲器控制器102,以及四個串聯(lián)的閃爍存儲器設(shè)備106、108、110和 112。盡管本實施例示出四個存儲器設(shè)備,本發(fā)明的實施例將有效的用于具有至少兩個存儲 器設(shè)備的存儲器系統(tǒng)。該四個閃爍存儲器設(shè)備的每一個具有串行輸入/輸出接口電路,用 于存儲器設(shè)備之間的串行操作。此閃爍存儲器設(shè)備的一個例子在申請日為2005年12月30 申請?zhí)枮?1/324023的共同擁有的美國專利申請以及在申請日2006年7月31日申請?zhí)?11/496278的共同擁有的美國專利申請中描述,二者的內(nèi)容通過引用全部包括在本申請中。 美國專利申請11/324023的閃爍存儲器設(shè)備稱為多個獨立串行鏈接設(shè)備(MISL)。如圖1中 所示系統(tǒng),主機系統(tǒng)將包括諸如微控制器、微處理器或者計算機系統(tǒng)的處理設(shè)備。閃爍存儲器設(shè)備106為該鏈路中的第一個設(shè)備,用于從閃爍存儲器控制器102接 收命令(諸如讀、編程和擦除命令)。在美國專利申請11/3M023的MISL閃爍設(shè)備中,所有 的命令、數(shù)據(jù)和地址信息以串行位流格式接收。該命令包括數(shù)據(jù)信息、地址信息和存儲器執(zhí) 行特定操作所需的任意其它信息。因為每一閃爍存儲器設(shè)備應該包括流通(flow-through) 邏輯電路,任一所接收到的目的并不是用于該特定設(shè)備的命令被傳送到下一個閃爍存儲器 設(shè)備,以此類推,直到由目的閃爍存儲器設(shè)備對其作用。鏈路中的最后一個閃爍存儲器設(shè)備 112的輸出連接到閃爍存儲器控制器102,用于響應讀命令來提供讀數(shù)據(jù)。圖4的所示實施 例中具有一個從閃爍存儲器設(shè)備的鏈路接收和發(fā)送數(shù)據(jù)的通道。本領(lǐng)域的普通技術(shù)人員可以理解閃爍存儲器控制器102可選地具有多個通道用于適應相應數(shù)量的閃爍存儲器設(shè)備 的鏈路。由于每一閃爍存儲器設(shè)備優(yōu)選地與另一設(shè)備緊密布置,所以閃爍存儲器設(shè)備之間 互聯(lián)的導線將被最小化。因此,如圖1的閃爍存儲器系統(tǒng)10中,相對于總線長度將不存在 物理性能限制。如前所述,閃爍存儲器控制器102用于發(fā)送對于每一閃爍存儲器設(shè)備的編程命 令。對于根據(jù)本發(fā)明的實施例的數(shù)據(jù)高速編程,數(shù)據(jù)文件的多個頁面被編程到不同的存儲 器設(shè)備。通過一個接著另一個串行發(fā)送編程命令以快速連續(xù)地啟動每一閃爍存儲器設(shè)備中 的編程操作來完成這一操作。圖5和圖6有助于說明如何獲取此高速編程。圖5的時序圖用于根據(jù)本發(fā)明的實施例說明由閃爍存儲器控制器102發(fā)出編程命 令來最大化閃爍存儲器系統(tǒng)100的總體編程速度。在所示例子中,四個編程命令Data
、 Data[l] ,Data[2]和Data[3]由閃爍存儲器控制器102分別在時間周期tl到t4被串行發(fā) 送用于編程一個數(shù)據(jù)文件。用于每一編程命令的方括號中的標識數(shù)字指示從閃爍存儲器控 制器102發(fā)送編程命令的依次順序。每一編程命令將包括但不限于命令200和用于特定存 儲器設(shè)備的數(shù)據(jù)202的至少一個頁面。該命令200包括將數(shù)據(jù)的頁面編程去往的地址和用 于將編程命令與特定存儲器設(shè)備相匹配的設(shè)備標識符。閃爍存儲器設(shè)備106、108、110和 112分別用于編程命令DataW]、Data [1]、Data [2]和Data [3]。由于閃爍存儲器設(shè)備串行 連接并且編程命令被串行發(fā)送,所以每一閃爍存儲器設(shè)備的核編程操作與下一閃爍存儲器 設(shè)備的操作相交迭,除了接收編程命令的最后一個閃爍存儲器設(shè)備。假設(shè)每一編程命令需要大約85微秒發(fā)送到存儲器設(shè)備(時間tl),則發(fā)送四個編 程命令的總的時間將需要4X85微秒=340微秒。用于編程每個存儲器設(shè)備的至少一個頁 面所需的時間是固定的,假設(shè)大約為200微秒。因此,用于編程所有數(shù)據(jù)到閃爍存儲器系統(tǒng) 100的總的使用時間將大約為340微秒+200微秒=540微秒。最后一個存儲器設(shè)備將要求 該200微秒的編程時間以接收編程命令。與此相對照,編程4個頁面到同一存儲器設(shè)備將 占用1140微秒。圖6的延展的時序圖中將更清晰地示出閃爍存儲器設(shè)備的交迭編程操作。圖6的延展的時序圖用于響應相應的編程命令0站40]、0站£1[1]、0站£1[2]和 Data[3]示出閃爍存儲器設(shè)備106、108、110和112的操作。時間周期tl到t4對應于圖5 中的同樣的時間周期。參見圖7的流程圖描述圖6的編程順序。圖7中描述的閃爍系統(tǒng)編 程控制實施例稱為高速交錯編程方法,其中編程操作在不同存儲器設(shè)備之間交錯。該方法 開始于步驟300,其中,串行提供至少兩個編程命令到系統(tǒng)中的第一存儲器設(shè)備106。第一 編程命令對應編程命令Data
,同時第二編程命令對應編程命令Data[l]。在步驟302,存 儲器設(shè)備106在第一時間周期tl期間接收編程命令Data
,隨后是步驟304的編程操作。 在時間周期tl期間,編程命令Data
被發(fā)送到存儲器設(shè)備106,同時存儲器設(shè)備108、110 和112保持在無操作(NOP)狀態(tài)。當編程命令Data
被發(fā)送到存儲器設(shè)備106后,在第二時間周期t2期間由存儲 器設(shè)備108接收第二編程命令Data[l](步驟306)。隨后在步驟308進行編程操作,由于用 于存儲器設(shè)備106的編程操作已經(jīng)在時間周期tl的結(jié)束時開始,所以存在一個時間周期其 中存儲器設(shè)備106和108 二者在同時執(zhí)行編程操作。該過程以同樣方式重復用于下一個編 程命令和存儲器設(shè)備。在此例中,存儲器設(shè)備106和108中的編程操作將在時間周期t4的 結(jié)束時完成。在存儲器設(shè)備112中的編程操作繼續(xù)進行時存儲器設(shè)備110中的編程操作將完成。上例提供的方案中接收命令的第一存儲器設(shè)備是106。或者是,系統(tǒng)中的任意一個 存儲器設(shè)備可以是用來接收第一編程命令的第一存儲器設(shè)備。如果設(shè)備106已經(jīng)完成其編 程操作,在時間周期t4后第五個編程命令發(fā)送給存儲器設(shè)備106。本領(lǐng)域內(nèi)的普通技術(shù)人 員可以理解不同的閃爍存儲器設(shè)備將具有不同的編程時間。在圖6所示的例子中,存儲器 設(shè)備106已經(jīng)在時間周期t4的開始完成了編程其數(shù)據(jù),所以一旦存儲器設(shè)備112完成接收 編程命令Data[3],存儲器設(shè)備106準備好接收下一個編程命令Data W]。如果閃爍存儲器 設(shè)備具有相當長的核編程時間,閃爍存儲器控制器將需要在發(fā)出Data[4]編程命令之前等 待,直到存儲器設(shè)備106完成編程操作。閃爍存儲器設(shè)備通常提供準備好狀態(tài)信號給閃爍 存儲器控制器用來指示編程操作何時完成。圖8的示意圖示出閃爍存儲器設(shè)備106、108、110和112在圖6和圖7中描述的高 速編程序列已經(jīng)執(zhí)行用于編程命令DataW]、Data[l]、Data[2]、Data[3]和Data[4]之后 的文件結(jié)構(gòu)。圖8中所示文件結(jié)構(gòu)假設(shè)設(shè)備106、108和112的存儲塊在編程之前為空。這 就是頁面被編程到這些設(shè)備的物理頁面0的原因。另一方面在存儲器設(shè)備110中,存儲塊 在物理頁面0和1中可以具有其它數(shù)據(jù)。因此,Data[2]被編程到塊中下一個可用頁面,即 物理頁面2。如圖8中所示,存儲器設(shè)備106的物理頁面1為此處所示高速編程序列中要編 程的最后一個頁面。下一個編程序列將在存儲器設(shè)備108的物理頁面1處開始編程數(shù)據(jù), 并且將如前所述以同樣方式繼續(xù)用于圖6中所示編程序列。因此,當編程命令被串行發(fā)送 到連續(xù)串聯(lián)的存儲器設(shè)備時,獲得閃爍存儲器系統(tǒng)100的最大的編程速度。換句話說,在數(shù) 據(jù)分布在串聯(lián)的閃爍存儲器系統(tǒng)中的最大數(shù)目的存儲器設(shè)備上的文件結(jié)構(gòu)將導致數(shù)據(jù)文 件的最高速編程。應該注意該數(shù)據(jù)并不一定需要以同樣的物理頁面數(shù)量在所有的存儲器設(shè) 備中被編程。盡管高速編程有益于使用閃爍存儲器系統(tǒng)100的系統(tǒng),一些系統(tǒng)可以要求最大化 閃爍存儲器系統(tǒng)100的耐久時間。圖8中所示的文件結(jié)構(gòu)將不會最大化所有存儲器設(shè)備上 的編程/擦除耗損,主要是由于閃爍存儲器設(shè)備的塊擦除結(jié)構(gòu)。例如,如果在每一存儲器設(shè) 備中的一個塊上交錯編程20頁數(shù)據(jù)文件,有可能所有的四個存儲器設(shè)備需要在更新數(shù)據(jù) 文件之前執(zhí)行塊擦除。相反,如果所有的20頁數(shù)據(jù)文件存儲在一個存儲器設(shè)備的一個塊 中,則僅該塊需要被擦除。因此,根據(jù)本發(fā)明的另一個實施例,調(diào)整上述高速編程控制方法以最小化編程/ 擦除耗損,或者優(yōu)化編程性能和編程/擦除耗損。更具體地,圖4的閃爍控制器102執(zhí)行編 程控制算法用于基于預定標準優(yōu)化編程性能和編程/擦除耗損。預定標準包括將要編程的 數(shù)據(jù)的特性和閃爍存儲器系統(tǒng)的存儲器設(shè)備的特性。數(shù)據(jù)特性包括將編程數(shù)據(jù)的頁面數(shù) 量,并且存儲器設(shè)備特性包括每一塊的頁面數(shù)量。圖9的流程圖示出使用高速和耗損平衡控制來編程閃爍存儲器系統(tǒng)中的多個閃 爍存儲器設(shè)備的實施例。此編程控制實施例將稱為高速耗損平衡編程方法。耗損平衡是指 用于延長閃爍存儲器系統(tǒng)的壽命的方案。此處所述實施例通過使用多個編程配置文件來優(yōu) 化要編程的任意數(shù)據(jù)文件的耗損平衡和性能。編程配置文件通常對應于用于存儲具有特定 文件存儲結(jié)構(gòu)的數(shù)據(jù)頁面的編程序列。最后,編程配置文件將數(shù)據(jù)文件的多個頁面分配在 閃爍存儲器系統(tǒng)的存儲器設(shè)備。此處所述的方法可以由諸如圖4所示的閃爍控制器102的存儲器控制器在串聯(lián)的存儲器設(shè)備的系統(tǒng)中執(zhí)行。在步驟400開始高速耗損平衡編程方法,其中變量i被設(shè)置為閃爍存儲器系統(tǒng)的 每一存儲器設(shè)備中的每一塊的頁面數(shù)量,變量j被設(shè)置為閃爍存儲器系統(tǒng)中的存儲器設(shè)備 的數(shù)量。假設(shè)閃爍存儲器系統(tǒng)中的所有存儲器設(shè)備都相同,并且具有同樣的塊尺寸。此信 息被預編程到存儲器控制器中。在步驟402,存儲控制器接收包括k個頁面的數(shù)據(jù)文件用于 編程。繼續(xù)步驟404,計算k是否小于或者等于i。如果k小于或者等于i,意味著數(shù)據(jù)文件 小于或者等于存儲器設(shè)備中的一塊存儲空間,隨后在步驟406,數(shù)據(jù)文件的所有k個頁面被 編程到一個存儲器設(shè)備的一個塊。這是具有單個文件結(jié)構(gòu)的編程配置文件的例子。存儲器 控制器根據(jù)一個或者多個選擇參數(shù)選擇數(shù)據(jù)文件將要被編程到的具體存儲器設(shè)備。例如, 一個選擇參數(shù)為具有最大數(shù)量的剩余編程/擦除循環(huán)的存儲器設(shè)備,而另一個選擇參數(shù)包 括將編程到的最后一個存儲器設(shè)備。另一方面,如果k大于i,意味著數(shù)據(jù)文件包括大于存儲器設(shè)備中的一個塊的存儲 空間的多個頁面,在步驟408繼續(xù)執(zhí)行本方法。在步驟408,計算k/i是否小于或者等于j。 應當注意到k/i的結(jié)果僅應該產(chǎn)生整數(shù)。由于本方法確定用于存儲k個數(shù)據(jù)所需的最小數(shù) 量的塊,具有整數(shù)和小數(shù)部分的非整數(shù)結(jié)果(即,實數(shù))指示需要大于該整數(shù)的一個塊。通 過諸如上限函數(shù)的數(shù)學函數(shù)可以實現(xiàn)此功能。本領(lǐng)域的普通技術(shù)人員可以理解上限函數(shù)返 回不低于該實數(shù)的最小整數(shù)。另一方面,從k/i直接產(chǎn)生的結(jié)果并不需要其它的數(shù)學處理。 由此可以看到,談到k/i的結(jié)果將假設(shè)其已經(jīng)應用過上限函數(shù)。如果k/i的整數(shù)值小于j (閃爍存儲器系統(tǒng)中存儲器設(shè)備的數(shù)量),在步驟410,k 個頁面的數(shù)據(jù)文件被交錯編程到k/i個存儲器設(shè)備上。這是具有單個文件結(jié)構(gòu)的編程配置 文件的另一個例子。如圖7方法中描述的繼續(xù)執(zhí)行該交錯編程。在一個實例中,如果i = 32,j = 4并且k = 61,則k/i = 1.90。由于k/i的結(jié)果是實數(shù),上限函數(shù)將1.90的結(jié)果 取為整數(shù)2。因此在步驟410中,所有的k = 61個頁面被交錯編程到2個存儲器設(shè)備。存 儲器控制器選擇閃爍存儲器系統(tǒng)中的任意兩個存儲器設(shè)備,無論其是直接相連或者間接相 連。兩個間接相連的存儲器設(shè)備可以具有在它們之間相連的至少一個中介存儲器設(shè)備。由 于數(shù)據(jù)文件被編程到兩個存儲器設(shè)備中,大約一半的頁面被編程到一個存儲器設(shè)備中,并 且剩余頁面被存儲在另一個存儲器設(shè)備。如果k/i不小于j (系統(tǒng)中的存儲器設(shè)備的數(shù)量),隨后將使用不同的優(yōu)化編程序 列用于編程不同大小的組的數(shù)據(jù)文件。更具體地,較大數(shù)據(jù)文件被認為是多個單元的較小 數(shù)據(jù)文件,其可以根據(jù)在先所述任一編程序列被編程。繼續(xù)步驟412,根據(jù)步驟410的交錯 編程序列,位于每一存儲器設(shè)備的一個塊中的所有頁面以數(shù)據(jù)文件的k個頁面的j*i個頁 面被編程。繼續(xù)步驟414,更新頁面數(shù)量k,使其等于k-(j*i)。因此,計算需要編程的剩余 的頁面數(shù)量。該方法循環(huán)返回步驟404,基于更新的k值,重復決策樹的執(zhí)行和編程序列。 總之,本方法反復編程數(shù)據(jù)文件的j*i個頁面的多個單元,該數(shù)據(jù)文件對于j*i個頁面的每 一單元使用同一文件結(jié)構(gòu);并且隨后使用不同文件結(jié)構(gòu)編程剩余的k-(j*i)個頁面。因此, 本方法的編程配置文件包括用于數(shù)據(jù)文件的多個文件結(jié)構(gòu)。現(xiàn)在使用一個實例來說明此實施例。如果i = 32,j = 4并且k = 192,隨后在步 驟412,第一 1 個頁面將被編程到所有的存儲器設(shè)備。在步驟414,k被更新為192-(1 ) =64。剩余的64個頁面被編程到步驟410中所述的兩個存儲器設(shè)備。如前所述,選擇任意
10兩個存儲器設(shè)備用于編程剩余的64個頁面。盡管本實施例說明該方法的編程使用重新計 算的k值,通過閃爍控制器預先并且在使用上述計算過程開始任一編程操作之前可以確定 整個序列。盡管假設(shè)要編程的數(shù)據(jù)文件的第一頁面為j*i個頁面,但是要編程的第一頁面 也可以是k_(j*i)個頁面,然后才是j*i個頁面的多個單元。對于具有單一通道的閃爍存儲器系統(tǒng)(諸如圖4中所示的實施例),已經(jīng)描述此處 所述的高速耗損平衡編程方法。本發(fā)明此處所述的實施例也可以在具有兩個或者多個通道 的閃爍存儲器系統(tǒng)中執(zhí)行。在此替代實施例中,并行編程至少兩個數(shù)據(jù)文件,第一數(shù)據(jù)文件 在一個通道,第二數(shù)據(jù)文件在另一個通道中。此外,本實施例已經(jīng)描述了使用具有單一存儲體的存儲器設(shè)備一起操作。當然,也 可以使用具有兩個或者多個存儲體的存儲器設(shè)備。當使用兩個存儲體時,就有兩個可用的 頁面緩存器用于存儲多達兩個頁面的數(shù)據(jù)。在多存儲體設(shè)備配置中,可以使用多種編程選 擇。在第一選擇中,需要編程到一個存儲器設(shè)備的數(shù)據(jù)的所有頁面被編程到存儲器設(shè)備的 一個體中的一個塊。此操作類似于僅具有一個存儲體的存儲器設(shè)備。在第二選擇中,數(shù)據(jù) 文件的兩個頁面并行地或者以單個編程命令載入一個存儲器設(shè)備。由于每一存儲器設(shè)備同 時編程兩個頁面,這有效地提高了編程吞吐量。在第三選擇中,在存儲器設(shè)備的多個存儲體 之間交錯編程操作。例如,編程頁面到兩個存儲器設(shè)備將按以下序列執(zhí)行設(shè)備1[存儲體 1],設(shè)備2 [存儲體1],設(shè)備1 [存儲體2]和設(shè)備2 [存儲體2]。對于具有多于兩個存儲體 的存儲器設(shè)備該編程序列也應該是明顯的。此外,盡管此處所述高速耗損平衡編程方法描述用于具有串聯(lián)或者菊花鏈存儲器 設(shè)備的存儲器系統(tǒng),該實施例也可用于諸如圖1所示的多點配置閃爍系統(tǒng)。通過啟動合適 的存儲器設(shè)備并且在不同時間提供相應的命令數(shù)據(jù)到公用總線可以實現(xiàn)。本發(fā)明前述實施例示出的例子中,圖4的閃爍存儲器系統(tǒng)中的編程操作是交錯 的。根據(jù)本發(fā)明的另一個實施例,由圖4的閃爍存儲器系統(tǒng)執(zhí)行交錯編程和讀操作。圖10的時序圖示出用于圖4的閃爍存儲器系統(tǒng)的高速交錯讀取和編程操作。在 此例中,使用數(shù)據(jù)編程存儲器設(shè)備106和112,同時存儲器設(shè)備108和10用于提供讀數(shù)據(jù)。 在時間周期tl期間,存儲器設(shè)備106接收編程命令DataW],隨后立即開始核內(nèi)部序列用于 編程數(shù)據(jù)。在時間周期t2開始時,存儲器設(shè)備108接收讀命令,并且繼續(xù)執(zhí)行內(nèi)部數(shù)據(jù)傳 輸操作(xfer)。例如,內(nèi)部數(shù)據(jù)傳輸操作使用20微秒用于讀出數(shù)據(jù)并將所述數(shù)據(jù)載入寄 存器,此時間之后,在時間周期t3開始時閃爍控制器將發(fā)送用于存儲器設(shè)備110的讀命令。 存儲器設(shè)備108輸入內(nèi)部NOP周期500以允許數(shù)據(jù)從其數(shù)據(jù)寄存器輸出之前將命令流通到 下游存儲器設(shè)備。存儲器設(shè)備110在接收到其各自讀命令之后將開始其內(nèi)部數(shù)據(jù)傳輸操作。但是, 由于存儲器設(shè)備108和110之間的信號線沒有使用,上游存儲器設(shè)備108將開始輸出其數(shù) 據(jù)寄存器中的數(shù)據(jù)到存儲器設(shè)備110,存儲器設(shè)備110將數(shù)據(jù)傳輸?shù)酱鎯ζ髟O(shè)備112。例如, 這以串行方式實現(xiàn)。在時間周期t3結(jié)束時,存儲器設(shè)備108將完成其所有的讀數(shù)據(jù)的輸出, 從而允許存儲器設(shè)備110在時間周期t4的開始時開始輸出其讀數(shù)據(jù)。由于直到存儲器設(shè) 備108完成輸出其數(shù)據(jù),存儲器設(shè)備110才能輸出其數(shù)據(jù),則進入內(nèi)部NOP周期502。在時 間周期t4結(jié)束時,由于來自存儲器設(shè)備110的所有數(shù)據(jù)已經(jīng)通過存儲器設(shè)備112輸出,將 不再使用存儲器設(shè)備110和112之間的信號線。因此,在時間周期t5的開始時,存儲器設(shè)備112接收編程命令Data[l]。盡管已經(jīng)示出交錯讀和編程操作,但可以以任意組合執(zhí)行交錯讀取、編程和擦除 操作。前述的高速交錯編程方法用于最大化具有串聯(lián)閃爍存儲器系統(tǒng)中的編程性能。高 速交錯編程應用于任一尺寸的數(shù)據(jù)文件。但是,為了提高所有存儲器設(shè)備的耐用性,高速耗 損平衡編程方法用于使用基于數(shù)據(jù)文件的尺寸的文件結(jié)構(gòu)來分配數(shù)據(jù)文件的頁面。雖然本 實施例針對閃爍存儲器設(shè)備,但本發(fā)明的實施例可以應用于其它存儲器設(shè)備,其中數(shù)據(jù)文 件的頁面被編程或者寫到至少兩個存儲器設(shè)備。在之前描述中,出于解釋的目的,為了對本發(fā)明的實施例有全面理解而提供多個 細節(jié)。但是,很明顯對于本領(lǐng)域內(nèi)的普通技術(shù)人員來說為了實現(xiàn)本發(fā)明并不一定需要這些 具體細節(jié)。在其它例子中,框圖形式所示的公知的電結(jié)構(gòu)和電路是為了不模糊本發(fā)明。例 如,對于此處所述的本發(fā)明的實施例是否被實現(xiàn)為軟件程序、硬件電路、固件或其組合,沒 有提供具體細節(jié)。本發(fā)明的實施例可以被表示為機器可讀介質(zhì)(也稱為計算機可讀介質(zhì)、處理器可 讀介質(zhì)或者具有以計算機可讀程序代碼實現(xiàn)的計算機可用介質(zhì))中存儲的軟件產(chǎn)品。機器 可讀介質(zhì)可以是任意適合的有形介質(zhì),包括磁性、光學或者電子存儲介質(zhì)(包括磁盤、緊密 盤只讀存儲器(CD-ROM)、存儲器設(shè)備(易失性和非易失性)或者類似的存儲機制)。這些 機器可讀介質(zhì)可以包含多組指令、代碼序列、配置信息或者其他數(shù)據(jù),其可以在執(zhí)行時使得 處理器執(zhí)行根據(jù)本發(fā)明的實施例的方法中的步驟。本領(lǐng)域內(nèi)的普通技術(shù)人員可以意識到其 它的用于實現(xiàn)所述方法必須的指令和操作也可以存儲在機器可讀介質(zhì)。從機器可讀介質(zhì)運 行的軟件可以和電路連接用于執(zhí)行所述任務(wù)。上述的本發(fā)明的實施例僅用于示例。對于本領(lǐng)域技術(shù)人員來說,在不脫離由所附 的權(quán)利要求整體限定的本發(fā)明范圍的前提下,可以實現(xiàn)特定實施例的各種替換、修改和變更。
1權(quán)利要求
1. 一種用于具有多個閃爍存儲器設(shè)備的閃爍存儲器系統(tǒng)中的高速耗損平衡編程的方 法,包括如下步驟1.接收具有k個頁面的數(shù)據(jù)文件,k為大于0的整數(shù);ii、選擇對應于k的尺寸和閃爍存儲器系統(tǒng)的配置參數(shù)的編程配置文件;iii、根據(jù)所選擇的編程配置文件,編程多個閃爍存儲器設(shè)備的至少兩個的每一個中的 數(shù)據(jù)文件的k個頁面的至少一個。
2.如權(quán)利要求1所述的方法,其中,所述配置參數(shù)包括j個閃爍存儲器設(shè)備,j個閃爍 存儲器設(shè)備的每一個每一塊具有i個頁面,其中,i和j為大于0的整數(shù)。
3.如權(quán)利要求2所述的方法,其中,選擇的步驟包括計算ζ的上限函數(shù),其中ζ= k/i。
4.如權(quán)利要求3所述的方法,其中,編程的步驟包括順序提供編程命令到ζ個閃爍存儲 器設(shè)備的每一個用于編程k個頁面,其中,每個編程命令用于編程k個頁面的至少一個。
5.如權(quán)利要求3或4任一項所述的方法,其中,當ζ大于j時,所述編程配置文件包括 一個復合文件結(jié)構(gòu)。
6.如權(quán)利要求5所述的方法,其中,所述復合文件結(jié)構(gòu)包括存儲數(shù)據(jù)文件的j*i個 頁面的m個單元到j(luò)個閃爍存儲器設(shè)備中,并且當ζ小于或等于j時,存儲數(shù)據(jù)文件的 k_(m*(j*i))個頁面到j(luò)個閃爍存儲器設(shè)備的ζ個中,其中,m是大于0的整數(shù)。
7.如權(quán)利要求2至6任一項所述的方法,其中,編程的步驟包括順序提供編程命令到 j個閃爍存儲器設(shè)備的每一個,用于編程所述數(shù)據(jù)文件的j*i個頁面,每個編程命令用于編 程所述k個頁面的至少一個。
8.如權(quán)利要求6或7任一項所述的方法,其中,編程的步驟包括順序提供編程命令到 ζ個閃爍存儲器設(shè)備的每一個,用于編程所述k-(m*(j*i))個頁面,每個編程命令用于編程 所述k個頁面的至少一個。
9.一種用于具有j個閃爍存儲器設(shè)備的閃爍存儲器系統(tǒng)中的耗損平衡編程的方法,j 個閃爍存儲器設(shè)備的每一個具有每塊i個頁面,其中,i和j為大于0的整數(shù),所述方法包 括如下步驟a)接收具有k個頁面的數(shù)據(jù)文件,k為大于0的整數(shù);b)如果z= k/i的上限函數(shù)小于或者等于j,提供命令用于編程j個存儲器設(shè)備的z 個中的k個頁面;c)如果z= k/i的上限函數(shù)大于j,提供命令用于編程j個存儲器設(shè)備中的j*i個頁d)通過設(shè)置k= k-(j*i)來更新k ;并且e)重復步驟b。
全文摘要
一種閃爍存儲器系統(tǒng)結(jié)構(gòu),具有串聯(lián)的閃爍存儲器設(shè)備用于獲取數(shù)據(jù)的高速編程。通過數(shù)據(jù)頁面的交錯編程到系統(tǒng)中的存儲器設(shè)備來實現(xiàn)數(shù)據(jù)的高速編程,使得不同頁面的數(shù)據(jù)存儲在不同的存儲器設(shè)備。存儲器控制器發(fā)出編程命令用于每一存儲器設(shè)備。當每一存儲器設(shè)備接收到編程命令,其開始編程操作或者將命令傳輸?shù)较乱粋€存儲器設(shè)備。因此,閃爍系統(tǒng)中的存儲器設(shè)備一個接一個地順序編程頁面數(shù)據(jù),使得編程每一頁面數(shù)據(jù)到閃爍存儲器系統(tǒng)的延遲最小化。存儲器控制器可以執(zhí)行耗損平衡算法用于最大化每一存儲設(shè)備的耐久性或者對于任意尺寸數(shù)據(jù)來優(yōu)化編程性能和耐久性。
文檔編號G11C7/10GK102063931SQ20101056673
公開日2011年5月18日 申請日期2007年3月29日 優(yōu)先權(quán)日2006年3月31日
發(fā)明者金鎮(zhèn)祺 申請人:莫塞德技術(shù)公司