專利名稱:存儲(chǔ)器系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及到一種存儲(chǔ)器系統(tǒng),例如,包含NAND閃存的存儲(chǔ)器系統(tǒng)。
背景技術(shù):
近來,非易失性存儲(chǔ)器被用在諸如大型計(jì)算機(jī)、個(gè)人電腦、家用電器、手機(jī)等各種裝置中。具體說,NAND閃存是一種非易失性存儲(chǔ)器,它是電可重寫的,并且可以具有大容量及高集成密度。此外,最近,有考慮利用NAND閃存來替代硬盤驅(qū)動(dòng)器(HDD)。
NAND閃存是一種在進(jìn)行寫處理之前需要進(jìn)行擦除處理的半導(dǎo)體存儲(chǔ)器。其工作壽命取決于重寫操作的次數(shù)。NAND閃存中的數(shù)據(jù)寫入/擦除操作就是通過在基底和控制柵極之間施加高電壓向浮柵注入電子或從浮##放電子。如果上述操作進(jìn)行了很多次,那么,浮柵周圍的柵氧化物膜就會(huì)退化,并且注入浮柵的電子會(huì)流失,從而破壞數(shù)據(jù)。就是說,當(dāng)重寫操作的次數(shù)增加時(shí),寫入數(shù)據(jù)后數(shù)據(jù)的保持時(shí)間會(huì)變短(保持特性退化)。
此外,利用個(gè)人電腦等所記錄的數(shù)據(jù)既具有時(shí)間局域性(timelocality),也具有區(qū)域局域性(regional locality)(文獻(xiàn)1: David A.Patterson and John L. Hennessy,"計(jì)算機(jī)組織與設(shè)計(jì)硬件/軟件接口,,,Morgan Kaufmann Pub, 2004/8/31)。所以,當(dāng)記錄數(shù)據(jù)時(shí),如果數(shù)據(jù)項(xiàng)原樣順序地記錄在外部所指定的地址中的話,那么,重寫處理(即擦除處理)就在短時(shí)間內(nèi)集中在指定的區(qū)域中,因此,擦除處理的次數(shù)就變得非常不均衡了。
已知NAND閃存的工作壽命也取決于擦除處理之間的間隔,當(dāng)所述間隔比較大時(shí),所述保持特性就比較好,并且所述工作壽命就比較長(zhǎng)(文獻(xiàn)2: Neal Mielke等,"編程/擦除循環(huán)期間電荷俘獲所導(dǎo)致的閃型EEPROM閾值的不穩(wěn)定性",IEEE TRANSACTIONS ON DEVICE ANDMATERIALS RELIABILITY, Vol. 4, NO.3, 2004年9月,pp. 335-344 )。
這也表明,當(dāng)擦除間隔變短時(shí),所述保持特性變差,并且所述工作壽命變短。
此外已知,即使寫操作以很短的間隔進(jìn)行,所述保持特性也會(huì)恢復(fù),除非擦除處理進(jìn)行了相應(yīng)較長(zhǎng)的時(shí)間(文獻(xiàn)3: Neal Mielke等,"閃存的分布式循環(huán)中的恢復(fù)效應(yīng),,,44th Annual International Reliability PhysicsSymposium, San Jose, 2006, pp. 29-35 )。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的一個(gè)方面,提供一種存儲(chǔ)器系統(tǒng),該系統(tǒng)包括非易失性存儲(chǔ)器,包含多個(gè)塊作為數(shù)據(jù)擦除單位;測(cè)量單元,用來測(cè)量每個(gè)塊中的數(shù)據(jù)被擦除時(shí)的擦除時(shí)間;塊控制器,它具有塊表,該表將每個(gè)塊的指示自由狀態(tài)和使用狀態(tài)之一的狀態(tài)值與其所述擦除時(shí)間聯(lián)系起來;探測(cè)器,用來探測(cè)在短時(shí)間內(nèi)共同地進(jìn)行了重寫的塊;第一選擇器,基于所述塊表中的信息選擇具有較早擦除時(shí)間的自由塊作為第一塊;第二選擇器,基于所述塊表中的信息選擇具有較早擦除時(shí)間的使用中的塊作為第二塊;以及均衡單元,用來在所述第一塊包含在由所述探測(cè)器所探測(cè)到的塊中時(shí)將所述第二塊中的數(shù)據(jù)移動(dòng)到所述第一塊中。
圖l是一個(gè)示意圖,顯示了包4、根據(jù)本發(fā)明的第一實(shí)施例所述的存儲(chǔ)器系統(tǒng)1在內(nèi)的計(jì)算機(jī)系統(tǒng)的例子;
圖2是一個(gè)示意圖,顯示了根據(jù)第一實(shí)施例所述的存儲(chǔ)器系統(tǒng)1的配
置;
圖3A是一個(gè)電路圖,顯示了 NAND閃存10中所包含的塊的配置;圖3B顯示了在四值數(shù)據(jù)記錄系統(tǒng)中所獲得的閾值分布的例子;圖4是一個(gè)方框圖,顯示了 NAND控制器ll的配置例子;
圖5是一個(gè)方框圖,顯示了塊控制器30和擦除時(shí)間測(cè)量單元31的配
置;
圖6是一個(gè)流程圖,顯示了由NAND控制器11所進(jìn)行的寫操作的順
序;
圖7是一個(gè)流程圖,顯示了 NAND控制器11所進(jìn)行的塊釋放處理;
圖8是一個(gè)方框圖,顯示了分配塊選擇器32的配置;
圖9是一個(gè)流程圖,顯示了由分配塊選擇器32所進(jìn)行的分配塊選擇處
理;
圖10是一個(gè)流程圖,顯示了由NAND控制器11所進(jìn)行的塊分配處理; 圖11是一個(gè)流程圖,顯示了由NAND控制器11所進(jìn)行的塊擦除處理; 圖12是一個(gè)方框圖,顯示了短期重寫探測(cè)器34的配置; 圖13是一個(gè)流程圖,顯示了由短期重寫探測(cè)器34所進(jìn)行的短期重寫 探測(cè)處理;
圖14用來說明所述短期重寫探測(cè)處理的實(shí)際例子; 圖15是一個(gè)方框圖,顯示了均衡單元35的配置; 圖16是一個(gè)流程圖,顯示了由NAND控制器11所進(jìn)行的均衡處理; 圖17是一個(gè)方框圖,顯示了替換源塊選擇器33的配置; 圖18是一個(gè)流程圖,顯示了由替換源塊選擇器33所進(jìn)行的替換源塊 選擇處理;
圖19是一個(gè)方框圖,顯示了根據(jù)本發(fā)明的第二實(shí)施例所述的分配塊選 擇器32的配置;
圖20是一個(gè)流程圖,顯示了由根據(jù)第二實(shí)施例所述的分配塊選擇器 32所進(jìn)行的分配塊選擇處理;
圖21是一個(gè)方框圖,顯示了根據(jù)本發(fā)明的第三實(shí)施例所述的替換源塊 選擇器33的配置;
圖22是一個(gè)流程圖,顯示了由根據(jù)第三實(shí)施例所述的替換源塊選擇器 33所進(jìn)行的替換源塊選擇處理;圖23是一個(gè)方框圖,顯示了根據(jù)本發(fā)明的第四實(shí)施例所述的短期重寫 探測(cè)器34的配置;
圖24是一個(gè)流程圖,顯示了由短期重寫探測(cè)器34所進(jìn)行的短期重寫 探測(cè)處理;
圖25是一個(gè)流程圖,顯示了緊接著圖24的短期重寫探測(cè)處理;
圖26用來說明所述短期重寫探測(cè)處理的實(shí)際例子;
圖27是一個(gè)方框圖,顯示了根據(jù)本發(fā)明的第五實(shí)施例所述的NAND
控制器ll的配置例子;
圖28是一個(gè)方框圖,顯示了塊控制器30的配置;
圖29是一個(gè)流程圖,顯示了由NAND控制器11所進(jìn)行的讀操作;
圖30是一個(gè)流程圖,顯示了由替換源塊選擇器33所進(jìn)行的替換源塊
選捧處理;
圖31是一個(gè)方框圖,顯示了根據(jù)一個(gè)實(shí)施例所述的SSD 100的配置; 圖32是一個(gè)方框圖,顯示了驅(qū)動(dòng)控制電路102的配置; 圖33是一個(gè)方框圖,顯示了處理器107的配置; 圖34是一個(gè)透視圖,顯示了裝有所述SSD 100的便攜式電腦200的一 個(gè)例子;
圖35是一個(gè)方框圖,顯示了使用SSD 100的便攜式電腦200的系統(tǒng)配 置的例子。
具體實(shí)施例方式
下面將參考附圖來說明本發(fā)明的實(shí)施例。注意,在下面的說明中,相 同的參考數(shù)字指示功能和配置相同的元件,只在必須的時(shí)候才進(jìn)行重復(fù)性 說明。
下面將說明NAND控制器11的寫操作。圖6是一個(gè)流程圖,顯示了 由NAND控制器11所進(jìn)行的寫操作的順序。
首先,在從CPU 2接收到寫請(qǐng)求后,NAND控制器ll開始進(jìn)行寫操 作(步驟SIO)。然后,塊控制器30利用地址表30A檢查是否向含有所述 寫請(qǐng)求的地址的地址區(qū)寄存了某個(gè)塊編號(hào)(分配了某個(gè)塊)(步驟Sll)。 如果寄存了某個(gè)塊編號(hào)(分配了某個(gè)塊),那么,在這個(gè)地址區(qū)中必須將 數(shù)據(jù)覆寫,于是,塊控制器30執(zhí)行塊釋放處理,釋放與所述塊編號(hào)相對(duì)應(yīng) 的塊(步驟S12)。
如果在步驟Sll中判斷為沒有寄存了塊編號(hào)(沒有分配了塊),或者在步驟12中執(zhí)行了塊釋放處理之后,分配塊選擇器32執(zhí)行分配塊選擇處 理,選擇要被分配到所述地址區(qū)的塊(分配塊)(步驟S13)。
然后,均衡單元35和替換源塊選擇器33執(zhí)行均衡處理(步驟S14 )。 之后,塊控制器30檢查在所述均衡處理中所述分配塊是否被替換(步驟 S15)。如果所述分配塊被替換,那么,所述處理就返回步驟S13,并且分 配塊選擇器32再次執(zhí)行分配塊選擇處理。
如果在步驟S15中判斷為所述分配塊沒有^皮替換,那么塊控制器30 就利用與所述分配塊相對(duì)應(yīng)的塊編號(hào)(分配塊編號(hào))來執(zhí)行塊分配處理, 以便更新地址表30A和塊表30B (步驟S16)。然后,塊控制器30對(duì)所述 分配塊進(jìn)行塊擦除處理(步驟S17 ).
隨后,塊控制器30在擦除了數(shù)據(jù)的所述分配塊中寫入新數(shù)據(jù)(步驟 S18)。就是說,塊控制器30向NAND接口電路25發(fā)布寫請(qǐng)求?;谶@ 個(gè)寫請(qǐng)求,NAND接口電路25命令NAND閃存10在所述分配塊中寫入新 數(shù)據(jù)。
之后,短期重寫探測(cè)器34執(zhí)行短期重寫探測(cè)處理(步驟S19)。塊控 制器30利用短期重寫探測(cè)器34所提供的短期重寫信息更新塊表30B中的 標(biāo)記。這樣,NAND控制器11就執(zhí)行了所述寫操作的序列。
下面將說明所述寫操作中所包含的每個(gè)處理的細(xì)節(jié)。圖8是一個(gè)方框圖,顯示了分配塊選擇器32的配置。圖9是一個(gè)流程圖,顯示了由分配塊選擇器32所進(jìn)行的分配塊選擇處理。
分配塊選擇器32包括兩個(gè)選擇器32A和32B。分配塊選擇器32從塊控制器30接收所有塊信息(步驟S30)。這個(gè)所有塊信息被提供給選擇器32A。選擇器32A檢查所有塊的狀態(tài),并從所有塊中提取自由塊(步驟S31 )。然后,選擇器32A將與所述自由塊相對(duì)應(yīng)的塊信息(自由塊信息)發(fā)送到選擇器32B。
選擇器32B從選擇器32A所提取的塊中選擇具有最早擦除時(shí)間的塊,作為分配塊(步驟S32)。與這個(gè)分配塊相對(duì)應(yīng)的分配塊編號(hào)被提供給塊控制器30。另外,與所述分配塊相對(duì)應(yīng)的分配塊信息被提供給均衡單元35。
圖10是一個(gè)流程圖,顯示了由NAND控制器11所進(jìn)行的塊分配處理。NAND控制器11為分配塊選擇器32所選擇的分配塊更新地址表30A和塊表30B中的信息。
首先,塊控制器30從分配塊選擇器32接收所述分配塊編號(hào)(步驟S40)。然后,塊控制器30將所述分配塊的塊編號(hào)設(shè)置在地址表30A中所包含的、包含所述寫請(qǐng)求地址的地址區(qū)中(步驟S41)。隨后,塊控制器30將塊表30B中所包含的所述分配塊的狀態(tài)設(shè)置為使用狀態(tài)(a used state)(步驟S42)。這樣,由分配塊選擇器32所選擇的所述分配塊就從自由狀態(tài)變?yōu)閊f吏用狀態(tài)。
為了延長(zhǎng)NAND閃存10的工作壽命,需要使各個(gè)塊的擦除數(shù)均等,并避免在短時(shí)間內(nèi)在特定的區(qū)域中頻繁地進(jìn)行重寫。如果只注意到擦除數(shù)的均等化以延長(zhǎng)NAND閃存10的工作壽命,那么,根據(jù)寫狀態(tài),在短時(shí)間內(nèi)在特定的區(qū)域中會(huì)進(jìn)行重寫。如果在短時(shí)間內(nèi)頻繁地進(jìn)行校正(均衡),那么可以使所述擦除數(shù)均等并且避免在短時(shí)間內(nèi)在特定區(qū)域中集中進(jìn)行寫入。然而,所述校正增加了擦除的次數(shù),這就使延長(zhǎng)工作壽命變得不可能。另一方面,如果校正間隔延長(zhǎng)得太大,那么短間隔擦除處理就會(huì)集中到某個(gè)特定區(qū)域,這就縮短了工作壽命?;谶@些發(fā)現(xiàn),在本實(shí)施例所述的均衡處理中,對(duì)均衡的次數(shù)進(jìn)行優(yōu)化,并使各個(gè)塊的擦除數(shù)均等。
均衡單元35和替換源塊選擇器33執(zhí)行所述均衡處理。圖15是一個(gè)方框圖,顯示了均衡單元35的配置。均衡單元35包括均衡判斷單元35A、以及用于存儲(chǔ)均衡閾值的存儲(chǔ)單元35B。
均衡判斷單元35A利用所述均衡閾值、分配塊選擇器32所提供的分配塊信息、以及替換源塊選擇器33所提供的替換源塊信息來判斷在當(dāng)前寫操作期間是否進(jìn)行均衡處理。當(dāng)進(jìn)行均衡處理時(shí),均衡判斷單元35A向NAND接口電路25發(fā)布與所述均衡處理相關(guān)的讀請(qǐng)求、擦除請(qǐng)求、和寫請(qǐng)求。
圖16是一個(gè)流程圖,顯示了由NAND控制器11所進(jìn)行的均衡處理。首先,替換源塊選擇器33執(zhí)行替換源塊選擇處理(步驟S70)。這個(gè)選擇處理的結(jié)果是,替換源塊選擇器33將所述替換源塊信息提供給均衡單元35。
隨后,均衡判斷單元35A檢查分配塊選擇器32所提供的分配塊信息,并判斷這個(gè)分配塊信息中所包含的短期重寫標(biāo)記是否為"ON"(步驟S71)。如果所述短期重寫標(biāo)記為OFF,即,如果所述分配塊不頻繁地進(jìn)行重寫,那么,均衡判斷單元35A就判斷所述替換源塊和所述分配塊的擦除數(shù)之間的差是否超過了均衡閾值(步驟S72)。如果所述差沒有超過所述均衡閾值,那么均衡單元35在當(dāng)前的寫操作中不進(jìn)行均衡處理。
這個(gè)均衡閾值用來判斷是否進(jìn)行均衡處理,它的設(shè)置基于這樣一個(gè)標(biāo)準(zhǔn),該標(biāo)準(zhǔn)指示了 NAND閃存10的工作壽命(或數(shù)據(jù)保持時(shí)間)要^J^長(zhǎng)的程度。如前所述,如果只注意到擦除數(shù)的均等化以延長(zhǎng)NAND閃存IO的工作壽命,那么,由于進(jìn)行均衡的緣故,數(shù)據(jù)擦除會(huì)發(fā)生許多次,這就增加了在某個(gè)特定區(qū)域中的擦除的次數(shù)。所以,在本實(shí)施例中,只有當(dāng)所述替換源塊和分配塊的擦除數(shù)之間的差超過了所述均衡閾值時(shí),才進(jìn)行所述均衡處理。
如果在步驟S71中短期重寫標(biāo)記為ON,或者如果在步驟S72中超過了所述均衡閾值,那么,塊控制器30就對(duì)所述替換源塊進(jìn)行塊釋放處理(步驟S73)。這個(gè)塊釋放處理與圖7所示的相同。
隨后,塊控制器30執(zhí)行塊分配處理,將分配塊選擇器32所選擇的分配塊分配為替換源塊的數(shù)據(jù)要被移入的塊(步驟S74)。這個(gè)塊分配處理與圖IO所示的相同。
然后,NAND控制器11讀取NAND閃存10中所包含的所述替換源塊的數(shù)據(jù)(步驟S75)。具體說,均衡判斷單元35A利用替換源塊選擇器33所提供的替換源塊信息向NAND接口電路25發(fā)布讀請(qǐng)求?;谶@個(gè)讀請(qǐng)求,NAND接口電路25命令NAND閃存10從所述替換源塊中讀取數(shù)據(jù)。所讀出的數(shù)據(jù)被臨時(shí)存儲(chǔ)在例如RAM 24中。
之后,NAND控制器11擦除所述分配塊中的數(shù)據(jù)(步驟S76)。具體說,均衡判斷單元35A利用分配塊選擇器32所提供的分配塊信息向NAND接口電路25發(fā)布擦除請(qǐng)求?;谶@個(gè)擦除請(qǐng)求,NAND接口電路25命令NAND閃存10擦除所述分配塊中的數(shù)據(jù)。在這個(gè)步驟中,塊控制器30更新所述分配塊的擦除數(shù)和擦除時(shí)間(圖11)。
隨后,NAND控制器11將從所述替換源塊中讀出的數(shù)據(jù)寫入NAND
22閃存10中所包含的所述分配塊中(步驟S77 )。具體說,均衡判斷單元35A 利用所述分配塊信息向NAND接口電路25發(fā)布寫請(qǐng)求?;谶@個(gè)寫請(qǐng)求, NAND接口電路25命令NAND閃存10將所述數(shù)據(jù)寫入所述分配塊中。
上述處理可以將某個(gè)替換源塊中的數(shù)據(jù)移到某個(gè)分配塊中,并使所述 替換源塊成為自由塊。因此,大概不頻繁進(jìn)行重寫的替換源塊可以被復(fù)用 為分配塊。另外,不被頻繁地重寫的數(shù)據(jù)被移動(dòng)到擦除數(shù)已經(jīng)很大的分配 塊中。這就可以防止所述分配塊的擦除數(shù)將來增加。第三實(shí)施例給出了由替換源塊選擇器33所進(jìn)行的替換源塊選擇處理 的另一個(gè)例子。就是說,選擇擦除時(shí)間早和擦除數(shù)小的塊,作為替換源塊。
圖21是一個(gè)方框圖,顯示了根據(jù)第三實(shí)施例所述的替換源塊選擇器 33的配置。圖22是一個(gè)流程圖,顯示了由所述替換源塊選擇器33所進(jìn)行 的替換源塊選擇處理。
替換源塊選擇器33包括三個(gè)選擇器33A到33C、以及用來存儲(chǔ)替換 源塊設(shè)置值的存儲(chǔ)單元33D。替換源塊選擇器33從塊控制器30接收所有 塊信息(步驟S100 )。這個(gè)所有塊信息被提供給選擇器33A。選擇器33A 檢查所有塊的狀態(tài),并從所有塊中提取使用中的塊(步驟S101)。然后, 選擇器33A將與所述使用中的塊相對(duì)應(yīng)的塊信息(使用中的塊的信息)發(fā) 送到選擇器33B。
選擇器33B從所述使用中的塊的信息中提取出滿足由所述替換源塊設(shè) 置值所設(shè)置的條件的塊信息(步驟S102 )。所述替換源塊設(shè)置值為下列(A ) 到(C )之一
(A) 從具有最早擦除時(shí)間的塊開始的預(yù)定數(shù)目的塊
(B) 從具有最早擦除時(shí)間的塊開始的預(yù)定比例的塊
(C) 擦除時(shí)間比預(yù)定時(shí)間更早的塊
條件(A)到(C )中的任何一個(gè)都可以被選作所述替換源塊設(shè)置值。例如, 當(dāng)使用條件(A)作為所述替換源塊設(shè)置值時(shí),選擇器33B在使用中的塊 中從具有最早擦除時(shí)間的塊開始順序地提取預(yù)定數(shù)目的塊。然后,選擇器 33B將與所提取的塊相對(duì)應(yīng)的塊信息發(fā)送到選擇器33C中。
在* (A)和(B)之下,使用中的塊按擦除時(shí)間的順序進(jìn)行揀選, 并從具有最早擦除時(shí)間的塊開始順序地搜尋預(yù)定數(shù)目/比例的塊。因此,在 步驟S102中可以增加所選擇的塊的數(shù)目,從而增加在步驟S103中選擇出 具有小擦除數(shù)的塊的可能性。在條件(C)之下,只需要揀選擦除時(shí)間超 過了預(yù)定時(shí)間的使用中的塊,所以,處理量是最低的。另外,在條件(A) 和(B)之下,總是從具有最早擦除時(shí)間的塊開始順序地提取預(yù)定數(shù)目/比 例的塊,而在條件(C)之下,則提取擦除時(shí)間比預(yù)定時(shí)間更早的塊。所
26以,在條件(c)之下,擦除間隔總可以是預(yù)定間隔,于是用于比較擦除
數(shù)的候選塊數(shù)目就可以減小。
隨后,選擇器33C從選擇器33B所提取的塊中選擇具有最小擦除數(shù)的 塊作為替換源塊(步驟S103)。與這個(gè)替換源塊相對(duì)應(yīng)的替換源塊信息被 提供給均衡單元35。
在上面所詳細(xì)描述的這個(gè)實(shí)施例中,當(dāng)選擇用于進(jìn)行均衡的替換源塊 時(shí),從使用中的塊中可以選擇擦除時(shí)間早以及擦除數(shù)小的塊作為替換源塊。 這就可以選擇存儲(chǔ)著不常進(jìn)行重寫的數(shù)據(jù)并具有良好保持特性的塊作為替 換源塊,并延長(zhǎng)NAND閃存10的工作壽命。
第四實(shí)施例給出了短期重寫探測(cè)處理的另 一個(gè)例子。在第四實(shí)施例中, 使用二分法搜尋(binary search )來進(jìn)行短期重寫探測(cè)處理。
圖23是一個(gè)方框圖,顯示了根據(jù)第四實(shí)施例所述的短期重寫探測(cè)器 34的配置。所述短期重寫探測(cè)器34包括選擇器34A、排列單元34B、搜 尋列表34C、判斷單元34D、用來存儲(chǔ)集中因子閾值(concentration factor threshold value )的存儲(chǔ)單元34E、以及信息輸出單元34F。
判斷單元34D利用二分法搜尋從搜尋列表34C中選擇搜尋對(duì)象塊。然 后,判斷單元34D為這個(gè)搜尋對(duì)象塊計(jì)算要在短期重寫探測(cè)中使用的集中 因子,并判斷這個(gè)集中因子是否超過了所述集中因子閾值。基于所述判斷 結(jié)果,從搜尋列表34C對(duì)塊進(jìn)行剔除,并使其范圍縮小到一個(gè)搜尋對(duì)象塊 上。利用所述最后一個(gè)搜尋對(duì)象塊,可以找到擦除時(shí)間發(fā)生突然變化的邊 界。
存儲(chǔ)單元34E中所存儲(chǔ)的集中因子閾值用來指定數(shù)據(jù)凈皮頻繁重寫的塊 的范圍,該閾值的設(shè)置基于這樣一個(gè)標(biāo)準(zhǔn),該標(biāo)準(zhǔn)指示了 NAND閃存10 的工作壽命(或數(shù)據(jù)保持時(shí)間)要^tt長(zhǎng)的程度。當(dāng)所述集中因子閾值減 小時(shí),探測(cè)到短期重寫的可能性就增加,而當(dāng)所述閾值增加時(shí),這個(gè)可能 小生tfc減小。圖24和25是流程圖,顯示了由短期重寫探測(cè)器34所進(jìn)行的短期重寫 探測(cè)處理。
首先,短期重寫探測(cè)器34從塊控制器30接收所有塊信息(步驟S110 )。 這個(gè)所有塊信息被提供給選擇器34A。選擇器34A檢查所有塊的狀態(tài),并 從所有塊中提取使用中的塊(步驟Slll)。然后,選擇器34A將與所述使 用中的塊相對(duì)應(yīng)的塊信息(使用中的塊的信息)發(fā)送到排列單元34B。
排列單元34B檢查所述使用中的塊的信息中所包含的擦除時(shí)間,并按 擦除時(shí)間的順序?qū)κ褂弥械膲K進(jìn)行排列(步驟S112 )。將由排列單元34B 進(jìn)行了排列的所述塊信息;^搜尋列表34C中,并從具有最晚擦除時(shí)間的 塊開始順序地為這些塊賦予序列號(hào)。
隨后,在搜尋列表34C中,判斷單元34D將具有最晚擦除時(shí)間的塊設(shè) 置為"開頭",將具有最早擦除時(shí)間的塊設(shè)置為"結(jié)尾"(步驟S113)。 然后判斷單元選擇序列號(hào)為"(開頭+結(jié)尾)/2"的塊作為搜尋對(duì)象塊(步 驟S114)。
之后,判斷單元34D為所述搜尋對(duì)象塊計(jì)算集中因子(步驟S115)。 這個(gè)集中因子由下式給出集中因子=當(dāng)前時(shí)間-序列號(hào)-擦除時(shí)間。注意, 在所述集中因子中所使用的當(dāng)前時(shí)間是,例如,從擦除時(shí)間測(cè)量單元31 提供給短期重寫探測(cè)器34的??梢允褂?,例如,擦除數(shù)計(jì)數(shù)器31A中的 計(jì)數(shù)作為所述當(dāng)前時(shí)間。
然后,判斷單元34D判斷所計(jì)算出的集中因子是否超過了所述集中因 子閾值(步驟S116)。如果所述集中因子超過了所述集中因子閾值,那么, 判斷單元3aD將所述搜尋對(duì)象塊設(shè)置為"結(jié)尾"(步驟S117)。隨后,判 斷單元34D從搜尋列表34C中剔除擦除時(shí)間比"結(jié)尾"的擦除時(shí)間更早的 塊(步驟S118)。
另一方面,如果在步驟S116中判斷為所述集中因子沒有超過所述集中 因子閣值,那么,判斷單元34D就將擦除時(shí)間僅次于所述搜尋對(duì)象塊的擦 除時(shí)間而最早的塊^L置為"開頭"(步驟S119)。之后,判斷單元34D從 搜尋列表34C中剔除擦除時(shí)間比"開頭"的擦除時(shí)間更晚的塊(步驟S120 )。
28在步驟S118或S120中從搜尋列表34C中排除了預(yù)定的塊之后,判斷 單元34D判斷在搜尋列表34C中是否還剩兩個(gè)或多個(gè)塊(步驟S121)。 如果在搜尋列表34C中還剩兩個(gè)或多個(gè)塊,那么,判斷單元34D就返回步 驟S114,并再次選擇搜尋對(duì)象塊。
如果在步驟S121中判斷為在搜尋列表34C中沒有剩下兩個(gè)或多個(gè)塊, 那么判斷單元34D就選擇搜尋列表34C中的所述最后 一個(gè)塊作為搜尋對(duì)象 塊。然后,判斷單元34D為這個(gè)搜尋對(duì)象塊計(jì)算集中因子(=當(dāng)前時(shí)間-序 列號(hào)-擦除時(shí)間)(步驟S122 )。
隨后,判斷單元34D判斷所計(jì)算出的集中因子是否超過了所述集中因 子閾值(步驟S123)。如果所述集中因子超過了所述集中因子閾值,那么, 判斷單元34D就向信息輸出單元34F發(fā)送搜尋對(duì)象塊編號(hào)。通過^f吏用這個(gè) 搜尋對(duì)象塊編號(hào),信息輸出單元34F計(jì)算所有塊中擦除時(shí)間比所述搜尋對(duì) 象塊的擦除時(shí)間更晚的塊的范圍(步驟S124)。信息輸出單元34F將上述 的范圍發(fā)送到塊控制器30,作為短期重寫信息。當(dāng)接收到這個(gè)短期重寫信 息時(shí),塊控制器30設(shè)置與所述短期重寫信息中所包含的塊相對(duì)應(yīng)的短期重 寫標(biāo)記,并清除與其它塊相對(duì)應(yīng)的短期重寫標(biāo)記。
如果在步驟S123中判斷為所述集中因子沒有超過所述集中因子閾值, 那么,判斷單元34D就判斷為沒有探測(cè)到進(jìn)行了短期重寫的塊,于是所述 短期重寫探測(cè)處理就結(jié)束了 。
圖26用來說明由短期重寫探測(cè)器34所進(jìn)行的短期重寫探測(cè)處理的實(shí) 際例子。假設(shè)NAND閃存10包括12個(gè)塊(塊#0到#11),塊#0到#7是 搜尋列表34C中所包含的使用中的塊,而塊#8到#11是自由塊。塊#0到#7 從具有最晚擦除時(shí)間的塊開始按擦除時(shí)間的順序排列。這些塊的擦除時(shí)間 示于圖26中。搜尋列表34C中所包含的塊#0到#7從具有最晚擦除時(shí)間的 塊開始按順序被賦予序列號(hào)。
首先,在搜尋列表34C中,具有最晚擦除時(shí)間的塊#0被設(shè)置為"開頭", 而具有最早擦除時(shí)間的塊#7被:沒置為"結(jié)尾"。隨后,選擇具有序列號(hào)為 "(開頭+結(jié)尾)/2"的塊#3作為搜尋對(duì)象塊,為所述搜尋對(duì)象塊#3計(jì)算集中
29因子(=當(dāng)前時(shí)間-序列號(hào)-擦除時(shí)間),并檢查這個(gè)集中因子是否超過了所
述集中因子閾值。假i殳所述當(dāng)前時(shí)間為"106",所述集中因子閾值為"卯"。 搜尋對(duì)象塊#3的集中因子為"97",這個(gè)值超過了所述闊值。因此,將搜 尋對(duì)象塊#3設(shè)置為"結(jié)尾,,,并從搜尋列表34C中剔除擦除時(shí)間比塊#3 的擦除時(shí)間更早的塊糾到#7。
然后,選擇具有序列號(hào)為"(開頭+結(jié)尾)/2"的塊#1作為搜尋對(duì)象塊, 為所述搜尋對(duì)象塊#1計(jì)算集中因子。搜尋對(duì)象塊#1的集中因子為"0", 這個(gè)值沒有超過所述閾值。所以,將擦除時(shí)間僅次于所述搜尋對(duì)象塊#1的 擦除時(shí)間而最早的塊#2設(shè)置為"開頭",并從搜尋列表34C中剔除擦除時(shí) 間比塊#2的擦除時(shí)間更晚的塊#0和#1。
之后,選擇具有序列號(hào)為"(開頭+結(jié)尾)/2"的塊#2作為搜尋對(duì)象塊, 并為所述搜尋對(duì)象塊#2計(jì)算集中因子。搜尋對(duì)象塊#2的集中因子為"97", 這個(gè)值超過了所述閾值。所以,將搜尋對(duì)象塊#2設(shè)置為"結(jié)尾",并從搜 尋列表34C中剔除擦除時(shí)間比塊#2的擦除時(shí)間更早的塊#3。
隨后,將搜尋列表34中最后剩下的塊#2選為搜尋對(duì)象塊,并為所述 搜尋對(duì)象塊#2計(jì)算集中因子。搜尋對(duì)象塊#2的這個(gè)集中因子超過了所述閾 值。因此,判斷單元34D就將搜尋對(duì)象塊#2的編號(hào)發(fā)送到信息輸出單元 34F。
在包括自由塊在內(nèi)的所有的塊中,信息輸出單元34F對(duì)擦除時(shí)間比搜
尋對(duì)象塊#2的擦除時(shí)間更晚的塊洲、#1、以及#8到#11進(jìn)行計(jì)算。信息輸
出單元34F將塊洲、#1、以及#8到#11發(fā)送到塊控制器30,作為短期重寫
信息。塊控制器30 i殳置與塊洲、#1、以及#8到#11相對(duì)應(yīng)的短期重寫標(biāo)記,
并清除與其它塊相對(duì)應(yīng)的短期重寫標(biāo)記。于是,就更新了塊表30B中的信 會(huì)
在上面所詳細(xì)描述的這個(gè)實(shí)施例中,短期重寫探測(cè)器34能夠指定數(shù)據(jù) 被頻繁重寫的塊。另外,在所述短期重寫探測(cè)處理中,通過log2N次檢查 所述閾值來完成搜尋。這就可以增加短期重寫探測(cè)的效率。[第五實(shí)施例在第五實(shí)施例中,NAND控制器11包含錯(cuò)誤檢查和校正(error check and correction, ECC )電路,這個(gè)ECC電路探測(cè)并校正數(shù)據(jù)讀取中的錯(cuò) 誤。 一般地,隨著從數(shù)據(jù)寫入時(shí)起的時(shí)間的流逝,出錯(cuò)數(shù)會(huì)增加。因此, 具有許多錯(cuò)誤的塊可能是具有較早擦除時(shí)間的塊。所以,在這個(gè)實(shí)施例中, ECC電路所探測(cè)到的出錯(cuò)數(shù)被用作替換源塊選擇的指數(shù)。圖27是一個(gè)方框圖,顯示了才艮據(jù)第五實(shí)施例所述的NAND控制器11 的配置例子。這個(gè)NAND控制器11包含ECC電路36。當(dāng)從NAND閃存 IO中讀取數(shù)據(jù)時(shí),ECC電路36探測(cè)并校正4I"^。另外,ECC電路36將 為每個(gè)塊探測(cè)到的出錯(cuò)數(shù)發(fā)送到塊控制器30。圖28是一個(gè)方框圖,顯示了塊控制器30的配置。這個(gè)塊控制器30 中所包含的塊表30B為每個(gè)塊編號(hào)存儲(chǔ)著出錯(cuò)數(shù)。每當(dāng)從NAND閃存10 中讀取數(shù)據(jù)時(shí)(每當(dāng)ECC電路36校正一個(gè)錯(cuò)誤時(shí)),就更新所述塊表30B 中所包含的出錯(cuò)數(shù)。下面將說明NAND控制器11的讀操作。圖29是一個(gè)流程圖,顯示了 由NAND控制器11所進(jìn)行的讀操作。首先,當(dāng)從CPU 2接收到讀請(qǐng)求時(shí),NAND控制器11就開始進(jìn)行讀 操作(步驟S130)。然后,塊控制器30利用地址表30A搜尋與包含所述 讀請(qǐng)求的地址的地址區(qū)相對(duì)應(yīng)的塊編號(hào)(步驟S131)。然后,塊控制器30從所述讀請(qǐng)求的塊中讀取數(shù)據(jù)(步驟S132 )。就 是說,塊控制器30向NAND接口電路25發(fā)布讀請(qǐng)求。基于這個(gè)讀請(qǐng)求, NAND接口電路25命令NAND閃存10從所述讀請(qǐng)求的塊中讀取數(shù)據(jù)。之后,ECC電路36對(duì)從NAND閃存10中讀取的數(shù)據(jù)進(jìn)行錯(cuò)誤探測(cè) 與校正(步驟S133)。通過數(shù)據(jù)總線6將經(jīng)過了g校正的讀取數(shù)據(jù)提供 給CPU2等。在這個(gè)錯(cuò)誤校正中,ECC電路36計(jì)算出錯(cuò)數(shù),并將這個(gè)出 錯(cuò)數(shù)發(fā)送到塊控制器30。塊控制器30從ECC電路36接收所述出錯(cuò)數(shù), 并在塊表30B中記錄所述出錯(cuò)數(shù)。這樣,就更新了塊表30B中所包含的出 錯(cuò)數(shù)。下面將說明由替換源塊選擇器33所進(jìn)行的替換源塊選擇處理。圖30 是一個(gè)流程圖,顯示了由替換源塊選擇器33所進(jìn)行的替換源塊選擇處理。 注意,所述替換源塊選擇器33的配置與圖21所示的相同。替換源塊選擇器33從塊控制器30接收所有塊信息(步驟S140)。這 個(gè)所有塊信息被提供給選擇器33A。選擇器33A檢查所有塊的狀態(tài),并從 所有塊中提取使用中的塊(步驟S141)。然后,選擇器33A將與所述使用 中的塊相對(duì)應(yīng)的塊信息(使用中的塊的信息)發(fā)送到選擇器33B。選擇器33B從所述使用中的塊的信息中提取出滿足由述替換源塊設(shè)置 值所設(shè)置的條件的塊信息(步驟S142 )。在這個(gè)步驟中,"所具有的出錯(cuò) 數(shù)大于預(yù)定值的塊"被設(shè)置為所述替換源塊設(shè)置值。然后,選擇器33C從選擇器33B所提取的塊中選擇具有最小擦除數(shù)的 塊作為替換源塊(步驟S143)。與這個(gè)替換源塊相對(duì)應(yīng)的替換源塊信息被 提供給均衡單元35。在上面所詳細(xì)描述的這個(gè)實(shí)施例中,在存儲(chǔ)器系統(tǒng)1的寫處理期間在 短時(shí)間內(nèi)共同地出現(xiàn)重寫的塊能夠被一度由數(shù)據(jù)寫入進(jìn)行分配之后長(zhǎng)時(shí)間 沒有進(jìn)行釋放的塊來替換。這就可以抑制由短擦除時(shí)間間隔所引起的塊的 耗竭,并且可以在整個(gè)NAND閃存10中對(duì)塊的消耗進(jìn)行均攤。另外,由ECC電路所計(jì)算出的出錯(cuò)數(shù)較大的塊被選為替換源塊。因 此,由于對(duì)出錯(cuò)數(shù)較大的塊的數(shù)據(jù)進(jìn)行重寫,所以刷新處理(其中,讀取 NAND閃存10中所存儲(chǔ)的數(shù)據(jù),對(duì)其進(jìn)行錯(cuò)誤校正,并將其寫回NAND 閃存IO中)與所述均衡處理同時(shí)進(jìn)行。于是,就能減少刷新處理的次數(shù)。 這就可以獲得一個(gè)效果,即,減少由刷新所導(dǎo)致的數(shù)據(jù)寫入的數(shù)量。[實(shí)施例]下面將說明通過將上述每個(gè)實(shí)施例中的存儲(chǔ)器系統(tǒng)1配置成固態(tài)驅(qū)動(dòng) 器(solid state drive, SSD)而得到的實(shí)施例。圖31是一個(gè)方框圖,顯示 了 SSD 100的配置。SSD 100包括用于數(shù)據(jù)存儲(chǔ)的多個(gè)NAND閃存(NAND存儲(chǔ)器)10、32SSD 100通過ATA接口 ( ATA I/F)相對(duì)于主機(jī)裝置(諸如個(gè)人電腦) 進(jìn)行數(shù)據(jù)傳輸。此外,SSD 100通過RS232C接口 ( RS232C I/F)相對(duì)于 調(diào)試裝置進(jìn)行數(shù)據(jù)傳輸。電源電路103具有外部電源電壓,并利用這個(gè)外部電源電壓產(chǎn)生多個(gè) 內(nèi)部電源電壓。這些內(nèi)部電源電壓被提供給SSD 100的各個(gè)單元。此外, 電源電路103探測(cè)所述外部電源電壓的起伏,并產(chǎn)生通電重置信號(hào)或斷電 重置信號(hào)。所述通電重置信號(hào)或斷電重置信號(hào)被提供給驅(qū)動(dòng)控制電路102。圖32是一個(gè)方框圖,顯示了驅(qū)動(dòng)控制電路102的配置。驅(qū)動(dòng)控制電路 102包括數(shù)據(jù)訪問總線104、第一電漆拴制總線105、和第二電路控制總線 106??刂普麄€(gè)驅(qū)動(dòng)控制電路102的處理器107與第一電路控制總線105相 連。此外,存儲(chǔ)著管理程序(FW:固件)的引導(dǎo)程序的引導(dǎo)ROM108通 過ROM控制器109與第一電路控制總線105相連。另夕卜,從電源電路103 接收通電/斷電重置信號(hào)并將重置信號(hào)和時(shí)鐘信號(hào)提供給所述各個(gè)單元的 時(shí)鐘控制器109與第一電路控制總線105相連。第二電路控制總線106與第一電路控制總線105相連。并行IO( PIO ) 電路lll (向所述狀態(tài)顯示LED提供狀態(tài)顯示信號(hào))和串行IO (SIO)電 路112 (控制RS232C接口 )與第二電路控制總線106相連。ATA接口控制器(ATA控制器)113、第一錯(cuò)誤檢查和校正(ECC) 電路114、 NAND控制器115、和DRAM控制器119與數(shù)據(jù)訪問總線104 和第一電路控制總線105均相連。ATA控制器113通過ATA接口相對(duì)于 所述主機(jī)裝置來傳輸數(shù)據(jù)。用作數(shù)據(jù)工作區(qū)的SRAM 120通過SRAM控 制器121與數(shù)據(jù)訪問總線104相連。NAND控制器115包括NAND I/F 118 (相對(duì)于4個(gè)NAND存儲(chǔ)器10 進(jìn)行接口處理)、第二ECC電路117、和控制DMA傳輸?shù)腄MA控制器33116 (在所述NAND存儲(chǔ)器和DRAM之間進(jìn)行訪問控制)。
圖33是一個(gè)方框圖,顯示了處理器107的配置。處理器107包括數(shù)據(jù)
管理單元122、 ATA命令處理單元123、安全管理單元124、引導(dǎo)加載器
125、初始化管理單元126和調(diào)試支持單元127。
數(shù)據(jù)管理單元122通過NAND控制器115和第一 ECC電路114對(duì)與
NAND芯片相關(guān)的各種功能以及對(duì)NAND存儲(chǔ)器和DRAM之間的數(shù)據(jù)傳
輸進(jìn)行控制。
ATA命令處理單元123通過ATA控制器113和DRAM控制器119 與數(shù)據(jù)管理單元122協(xié)作進(jìn)行數(shù)據(jù)傳輸處理。安全管理單元124與數(shù)據(jù)管 理單元122和ATA命令處理單元123協(xié)作來管理各種安全信息項(xiàng)。引導(dǎo) 加載器125在通電時(shí)從NAND存儲(chǔ)器10中將各種管理程序(FW)加載到 SRAM 120中。
初始化管理單元126對(duì)驅(qū)動(dòng)控制電路102中的各種控制器/電路進(jìn)行初 始化。調(diào)試支持單元127對(duì)通過RS232C接口從外部提供的調(diào)試數(shù)據(jù)進(jìn)行 處理。
圖34是一個(gè)透視圖,顯示了裝有所述SSD 100的便攜式電腦200的一 個(gè)例子。便攜式電腦200具有主體201和顯示單元202。顯示單元202包 括顯示器外殼203和裝在顯示器外殼203內(nèi)的顯示裝置204。
主體201包括機(jī)殼205、鍵盤206、和作為定點(diǎn)設(shè)備的觸摸墊207。在 機(jī)殼205中裝有主電路板、光盤裝置(optical disk device, ODD)單元、 卡的插口、 SSD 100等。
所提供的卡的插口與機(jī)殼205的周圍側(cè)壁鄰近。在所述周圍側(cè)壁中, 形成面對(duì)所述卡的插口的開口 208。用戶可以通過開口 208從4幾殼205的 外部將附加裝置插入所述卡的插口并可以將其從所述卡的插口中拔出。
可以將SSD 100安裝在便攜式電腦200中并替代常規(guī)的HDD,或者, 可以將SSD 100作為附加裝置插入便攜式電腦200上的卡的插口中。
圖35顯示了4吏用SSD 100的1更攜式電腦200的系統(tǒng)配置的例子。所述 便攜式電腦200包括CPU 301、北橋302、主存儲(chǔ)器303、視頻控制器304、
34音頻控制器305、南橋306、 BIOS-ROM 307、 SSD 100、 ODD單元308、 嵌入式控制器/鍵盤控制器(EC/KBC ) IC 309 、和網(wǎng)絡(luò)控制器310等。
CPU 301是一個(gè)用來控制便攜式電腦200的操作的處理器,它執(zhí)行從 SSD 100加載到主存儲(chǔ)器303中的操作系統(tǒng)。當(dāng)ODD單元308對(duì)所加載的 光盤進(jìn)行讀處理或?qū)懱幚頃r(shí),CPU301就執(zhí)行所述處理。
CPU 301也執(zhí)行BIOS-ROM 307中所存儲(chǔ)的系統(tǒng)BIOS (basic input output system ,基本輸入輸出系統(tǒng))。系統(tǒng)BIOS是一個(gè)用于控制便攜式 電腦200中的石更件的程序。
北橋302是一個(gè)橋式裝置,它將CPU 301的本地總線連接到南橋306 上。北橋302中具有存儲(chǔ)器控制器,用來控制對(duì)主存儲(chǔ)器303的訪問。
北橋302的一個(gè)功能是,通過AGP總線(accelerated graphics port bus,加速圖形端口總線)與視頻控制器304和音頻控制器305進(jìn)行通信。
主存儲(chǔ)器303臨時(shí)存儲(chǔ)程序或數(shù)據(jù),它是CPU301的工作區(qū)。主存儲(chǔ) 器303由例如DRAM構(gòu)成。
視頻控制器304是一個(gè)視頻再現(xiàn)控制器,用來對(duì)顯示單元(LCD ) 202 進(jìn)行控制。顯示單元202被用作便攜式電腦200的顯示器。
音頻控制器305是一個(gè)音頻再現(xiàn)控制器,用來對(duì)〗更攜式電腦200的揚(yáng) 聲器311進(jìn)行控制。
南橋306控制LPC (low pin count,低管腳數(shù))總線上的裝置以及PCI (peripheral component interconnect,夕卜設(shè)組件互聯(lián))總線上的裝置。南 橋306也通過ATA接口來控制SSD 100。 SSD 100是用來存儲(chǔ)各種軟件和 數(shù)據(jù)的存儲(chǔ)單元。
便攜式電腦200以扇區(qū)為單位對(duì)SSD 100進(jìn)行訪問。通過ATA接口 將寫命令、讀命令和清除命令等提供給SSD100。
南橋306的一個(gè)功能是,控制對(duì)BIOS-ROM 307和ODD單元308的 訪問。EC/KBC 309是單片微型計(jì)算機(jī),其中嵌入了用于進(jìn)行電源管理的 嵌入式控制器和用于控制鍵盤(KB) 206和觸摸墊207的鍵盤控制器。
EC/KBC 309的一個(gè)功能是,根據(jù)用戶對(duì)電源掩組312的操作打開或 35關(guān)閉便攜式電腦200。網(wǎng)絡(luò)控制器310是一個(gè)通信單元,與外部網(wǎng)絡(luò)(例 如,互聯(lián)網(wǎng))進(jìn)行通信。
上述實(shí)施例中的存儲(chǔ)器系統(tǒng)1不限于所述SSD,也可以配置成存儲(chǔ)器 卡(其代表是SD (商標(biāo))卡)。當(dāng)存儲(chǔ)器系統(tǒng)1被配置成存儲(chǔ)器卡時(shí),它 不僅可以用于便攜式電腦,而且也可以用于其它各種電子裝置,諸如手機(jī)、 PDA (個(gè)人數(shù)字助理)、數(shù)碼相機(jī)、數(shù)字?jǐn)z像機(jī)。
本領(lǐng)域中的技術(shù)人員會(huì)容易地發(fā)現(xiàn)其它的優(yōu)點(diǎn)和修正。所以,本發(fā)明 就其更廣泛的方面而言不限于這里所顯示和描述的具體細(xì)節(jié)和有代表性的 實(shí)施例。因此,可以做出各種修正而不偏離由附屬權(quán)利要求書及其等^H兌 法所定義的一般性的發(fā)明性概念的精神或范圍。
3權(quán)利要求
1.一種存儲(chǔ)器系統(tǒng),包括非易失性存儲(chǔ)器,包含作為數(shù)據(jù)擦除單位的多個(gè)塊;測(cè)量單元,用來測(cè)量每個(gè)塊中的數(shù)據(jù)被擦除時(shí)的擦除時(shí)間;塊控制器,它具有塊表,該塊表將每個(gè)塊的指示自由狀態(tài)和使用狀態(tài)之一的狀態(tài)值與其所述擦除時(shí)間聯(lián)系起來;探測(cè)器,用來探測(cè)在短時(shí)間內(nèi)共同地進(jìn)行了重寫的塊;第一選擇器,基于所述塊表中的信息選擇具有較早擦除時(shí)間的自由塊作為第一塊;第二選擇器,基于所述塊表中的信息選擇具有較早擦除時(shí)間的使用中的塊作為第二塊;以及均衡單元,用來在所述第一塊包含在由所述探測(cè)器所探測(cè)到的各個(gè)塊中時(shí)將所述第二塊中的數(shù)據(jù)移動(dòng)到所述第一塊中。
2. 根據(jù)權(quán)利要求l所述的系統(tǒng),其中,如果所述第二塊中的數(shù)據(jù)被移 動(dòng)到所述第一塊中,那么所述第一選擇器就重選一個(gè)塊。
3. 根據(jù)權(quán)利要求l所述的系統(tǒng),其中,所述塊控制器對(duì)每個(gè)塊的擦除 次數(shù)進(jìn)行計(jì)數(shù),并將擦除數(shù)存儲(chǔ)在所述塊表中。
4. 根據(jù)權(quán)利要求3所述的系統(tǒng),其中,如果所述第一塊包含在由所述 探測(cè)器所探測(cè)到的各個(gè)塊中,或者如果所述第一塊與所述第二塊的擦除數(shù) 之間的差超過了閾值,那么,所述均衡單元就將所述第二塊中的數(shù)據(jù)移動(dòng) 到所述第一塊中。
5. 根據(jù)權(quán)利要求l所述的系統(tǒng),其中,所述探測(cè)器探測(cè)一條邊界,在 該邊界處,各塊的擦除時(shí)間之差較大,并探測(cè)擦除時(shí)間比所述邊界更晚的 塊,作為在短時(shí)間內(nèi)共同地出現(xiàn)重寫的塊。
6. 根據(jù)權(quán)利要求l所述的系統(tǒng),其中,所述塊表存儲(chǔ)著標(biāo)記,該標(biāo)記 指示是否在短時(shí)間內(nèi)在一個(gè)塊中共同地出現(xiàn)了重寫。
7. 根據(jù)權(quán)利要求l所述的系統(tǒng),其中,所述探測(cè)器在使用中的各塊中計(jì)算第三塊的擦除時(shí)間與第四塊的擦除時(shí)間之間的差,其中,所述第四塊的擦除時(shí)間與所述第三塊的擦除時(shí)間相鄰且早于所述第三塊的擦除時(shí)間, 并且如果所述差大于預(yù)定間隔,那么就在所有的塊中探測(cè)擦除時(shí)間比所述 第四塊的擦除時(shí)間更晚的塊。
8. 根據(jù)權(quán)利要求7所述的系統(tǒng),其中,所述探測(cè)器包括排列單元和判 斷單元,所述排列單元按擦除時(shí)間的順序來排列使用中的各塊的信息,而 所述判斷單元基于被排列的信息計(jì)算所述第三塊與所述第四塊的擦除時(shí)間 之差。
9. 根據(jù)權(quán)利要求l所述的系統(tǒng),其中,所述第一選擇器選擇具有最早 擦除時(shí)間的自由塊作為所述第一塊。
10. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述第一選擇器從具有最早 擦除時(shí)間的塊開始從預(yù)定數(shù)目的自由塊中選擇具有最小擦除數(shù)的塊,作為 所述第一塊。
11. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述第一選擇器從具有最早 擦除時(shí)間的塊開始從預(yù)定比例的自由塊中選擇具有最小擦除數(shù)的塊,作為 所述第一塊。
12. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述第一選擇器從擦除時(shí)間 早于預(yù)定時(shí)間的自由塊中選擇具有最小擦除數(shù)的塊,作為所述第一塊。
13. 根據(jù)權(quán)利要求l所述的系統(tǒng),其中,所述第二選擇器選擇具有最 早擦除時(shí)間的使用中的塊,作為所述第二塊。
14. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述第二選擇器從具有最早 擦除時(shí)間的塊開始從預(yù)定數(shù)目的使用中的塊中選擇具有最小擦除數(shù)的塊, 作為所述第二塊。
15. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述第二選擇器從具有最早 擦除時(shí)間的塊開始從預(yù)定比例的使用中的塊中選擇具有最小擦除數(shù)的塊, 作為所述第二塊。
16. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述第二選擇器從擦除時(shí)間 早于預(yù)定時(shí)間的使用中的塊中選擇具有最小擦除數(shù)的塊,作為所述第二塊。
17. 根據(jù)權(quán)利要求l所述的系統(tǒng),其中,還包括錯(cuò)誤檢查和校正電路, 該錯(cuò)誤檢查和校正電路計(jì)算從所述非易失性存儲(chǔ)器中讀出的數(shù)據(jù)的出錯(cuò) 數(shù),以及其中,所述塊表存儲(chǔ)著每個(gè)塊的出錯(cuò)數(shù),以及所述第二選擇器從出錯(cuò)數(shù)大于預(yù)定值的使用中的塊中選擇具有最小擦 除數(shù)的塊,作為所述第二塊。
18. 根據(jù)權(quán)利要求l所述的系統(tǒng),其中,所述測(cè)量單元包括計(jì)數(shù)器,用來對(duì)在所有塊中進(jìn)行的擦除的次數(shù)進(jìn)行 計(jì)數(shù),以及所述擦除時(shí)間對(duì)應(yīng)著所述計(jì)數(shù)器中的計(jì)數(shù)。
19. 根據(jù)權(quán)利要求l所述的系統(tǒng),其中, 所述測(cè)量單元測(cè)量每個(gè)塊中的數(shù)據(jù)被擦除時(shí)的時(shí)間,以及 所述擦除時(shí)間對(duì)應(yīng)著所述時(shí)間。
20. 根據(jù)權(quán)利要求l所述的系統(tǒng),其中,所述測(cè)量單元測(cè)量在每個(gè)塊中的數(shù)據(jù)被擦除時(shí)所述存儲(chǔ)器系統(tǒng)的電源 提供時(shí)間,以及所述擦除時(shí)間對(duì)應(yīng)著所述電源提供時(shí)間。
全文摘要
一種存儲(chǔ)器系統(tǒng)包括非易失性存儲(chǔ)器,包含多個(gè)塊作為數(shù)據(jù)擦除單位;測(cè)量單元,用來測(cè)量每個(gè)塊中的數(shù)據(jù)被擦除時(shí)的擦除時(shí)間;塊控制器,它具有塊表,該表將每個(gè)塊的指示自由狀態(tài)和使用狀態(tài)之一的狀態(tài)值與其所述擦除時(shí)間聯(lián)系起來;探測(cè)器,用來探測(cè)在短時(shí)間內(nèi)共同地進(jìn)行了重寫的塊;第一選擇器,基于所述塊表中的信息選擇具有較早擦除時(shí)間的自由塊作為第一塊;第二選擇器,基于所述塊表中的信息選擇具有較早擦除時(shí)間的使用中的塊作為第二塊;以及均衡單元,用來在所述第一塊包含在由所述探測(cè)器所探測(cè)到的塊中時(shí)將所述第二塊中的數(shù)據(jù)移動(dòng)到所述第一塊中。
文檔編號(hào)G06F12/16GK101652762SQ200880006649
公開日2010年2月17日 申請(qǐng)日期2008年9月8日 優(yōu)先權(quán)日2008年4月24日
發(fā)明者橘內(nèi)和也, 檜田敏克, 矢野浩邦, 矢野純二, 菅野伸一 申請(qǐng)人:株式會(huì)社東芝