TW201735034A - 記憶胞寫入方法及其應用 - Google Patents
記憶胞寫入方法及其應用 Download PDFInfo
- Publication number
- TW201735034A TW201735034A TW105107475A TW105107475A TW201735034A TW 201735034 A TW201735034 A TW 201735034A TW 105107475 A TW105107475 A TW 105107475A TW 105107475 A TW105107475 A TW 105107475A TW 201735034 A TW201735034 A TW 201735034A
- Authority
- TW
- Taiwan
- Prior art keywords
- write
- memory cell
- threshold voltage
- memory
- shots
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/562—Multilevel memory programming aspects
- G11C2211/5621—Multilevel programming verification
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5644—Multilevel memory comprising counting devices
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Abstract
一種記憶胞寫入方法及其應用,此方法包括下述步驟:獲取記憶陣列中至少一個記憶胞的第一臨界電壓。識別記憶胞的目標臨界電壓,並根據第一臨界電壓來決定用來使記憶胞達到目標臨界電壓所需要之寫入射擊的數目。將記憶胞所需數目的寫入射擊施加至記憶胞。驗證記憶胞被施予此數目的寫入射擊之後是否達到記憶胞的目標臨界電壓。
Description
以下說明書是有關於一種記憶胞的寫入(programming memory cells)。
記憶體陣列可在寫入循環(programming cycle)中,藉由對記憶胞施加一組電壓脈衝而被寫入。電壓脈衝會伴隨寫入驗證操作(program verify operation),以檢查記憶胞是否被正確地寫入。在一些記憶體陣列中,例如高密度NAND快閃記憶體晶片,進行多重寫入驗證操作的總時間可能佔整體記憶體寫入時間的一大比率。
本說明書揭露在記憶胞寫入時,藉由降低寫入驗證操作的時間來增進記憶體效能的方法。在一實施例中,在記憶體寫入過程中進行預先驗證操作(pre-verify operation),以確認要被施加至記憶胞的多個電壓脈衝(又稱作寫入射擊(programming shots))已達到對應的目標臨界電壓水準(target threshold voltage levels)。在此一實施例之中,對記憶陣列中的一或多個記憶胞進行寫入,是藉由對記憶胞施加第一次寫入射擊來開始。藉由實施第一次寫入射擊,來決定每一個記憶胞的現時臨界電壓(current threshold voltage)。根據現時臨界電壓來計算每一個記憶胞要達到各自對應之目標臨界電壓水準所需之額外寫入射擊的數目。對每一個記憶胞施加藉由計算所得之數目的寫入射擊,而不在多個寫入射擊之間進行任何中間寫入驗證操作(intermediate program verify operations)。在將這些寫入射擊施加至記憶胞之後,再進行一次寫入驗證操作,以檢查這些記憶胞是否被寫入而達到各自對應的目標臨界電壓水準。
綜上所述,先獲取記憶陣列中一或多個記憶胞的第一臨界電壓。再識別這一或多個記憶胞中之每一個記憶胞的目標臨界電壓。根據第一臨界電壓來決定用來使每一個記憶胞達到其目標臨界電壓水準所需要的寫入射擊數目。分別將每一個記憶胞所需數目的寫入射擊施加至這一或多個記憶胞中。驗證被分別施予所需數目的寫入射擊之一或多個記憶胞是否達到這些記憶胞各自的目標臨界電壓水準。
特定的實施例包括一或多個下述特徵。獲取記憶陣列中一或多個記憶胞之第一臨界電壓的步驟包括:對一或多個記憶胞施加第一次寫入射擊;以及獲取被施加第一次寫入射擊之一或多個記憶胞的第一臨界電壓。
獲取一或多個記憶胞之第一臨界電壓的步驟可以包括:決定一或多個記憶胞之第一臨界電壓的分佈(distribution);以及根據寫入速度將第一臨界電壓的分佈區分為N個族群。決定用來使每一個記憶胞達到其目標臨界電壓水準所需要的寫入射擊數目的步驟可以包括:識別N個族群中對應記憶胞之第一臨界電壓中的第一族群,決定施加給第一族群用來達到這些記憶胞之目標臨界電壓水準所需的寫入射擊數目。
分別將每一個記憶胞所需數目的寫入射擊施加至這一或多個記憶胞中的步驟可以包括:在多個連續操作(successive operations)中將每一個記憶胞所需數目的寫入射擊施加至這一或多個記憶胞中,而不進行中間寫入驗證操作。
獲取一或多個記憶胞之第一臨界電壓的步驟可以包括:將一或多個記憶胞的第一臨界電壓儲存於一個快取記憶體(cache memory)中。決定用來使每一個記憶胞達到其目標臨界電壓水準所需要之寫入射擊的數目之步驟可以包括:在快取記憶體中儲存用來使每一個記憶胞達到各自對應目標臨界電壓水準所需要的寫入射擊數目。
分別將每一個記憶胞所需數目的寫入射擊施加至這一或多個記憶胞中的步驟可以包括:從快取記憶體中讀取用來使每一個記憶胞達到各自對應之目標臨界電壓水準所需要的寫入射擊數目。從快取記憶體中所讀取的寫入射擊數目,將在多個連續操作中被施加至這些記憶胞中。
驗證這一或多個記憶胞是否分別被達到各自的目標臨界電壓水準之步驟可以包括:進行第一次寫入驗證操作以確認被施加倒數第二次寫入射擊之一或多個記憶胞是否分別達到各自的目標臨界電壓水準。對未達到目標臨界電壓水準的一或多個記憶胞施加最終寫入射擊。進行第二次寫入驗證操作以確認所有記憶胞是否分別達到各自的目標臨界電壓水準。
驗證這一或多個記憶胞的目標臨界電壓水準是否分別被達到的步驟可以包括:獲取被施加倒數第二次之寫入射擊之一或多個記憶胞的第二臨界電壓。根據這些記憶胞的第二臨界電壓決定這一或多個記憶胞中的每一者達到其對應目標臨界電壓水準所需要的額外寫入射擊數目。在多個後續的操作中,對這一或多個記憶胞施加此額外數目的寫入射擊。驗證被分別施予額外數目的寫入射擊之一或多個記憶胞是否分別達到這些記憶胞的目標臨界電壓水準。
以上所述的技術實施例包括元件、系統、方法、電腦程式產品(computer program product)和電腦可讀取記錄媒體(computer readable medium)。上述電腦程式產品之一者,可以適切地藉由一個用來儲存可被一或多種處理器所執行之指令的非暫態機器可讀取介質(non-transitory machine-readable medium)來實施。前述的指令係被用來驅使一或多種處理器執行上述操作。當上述操作被一或多種處理器執行時,上述電腦可讀取記錄媒體之一者,係用來儲存用來驅使這一或多種處理器執行上述操作的指令。上述元件之一者,包括用來進行上述操作的記憶體控制器(memory controller)。此一元件可以包括一快取記憶體,用來儲存一或多個記憶胞的第一臨界電壓以及這些記憶胞所需之寫入射擊的數目。
藉由減少或移除多個寫入射擊之間所進行的中間寫入驗證操作,可減少以上所述之元件、系統和技術的整體記憶體寫入時間。可以因此增進記憶體陣列的寫入產出效能(programming throughput performance),例如將資料寫入至記憶體陣列或將資料從記憶體陣列抹除的速度。以上所述之元件、系統和技術可以被應用至不同型態的非揮發性記憶體,例如NAND快閃記憶體或NOR快閃記憶體…等。這些記憶體可以包括單層記憶胞(single-level cells,SLCs)或多層記憶胞( multi-level cells,MLCs),例如三層記憶胞(triple-level cells,TLCs)或四層記憶胞(quadruple-level cells,QLCs) …等。
以上所述之一或多個實施例,將配合所附圖式,詳細說明如下。本說明書的其他目的、特徵和優點亦可藉由下述的說明、圖式和申請專利範圍而變得更明顯易懂。
記憶體陣列,例如NAND快閃記憶體晶片,中的記憶胞,可以在寫入循環中藉由對這些記憶胞施加一組電壓脈衝而被寫入。此組電壓脈衝又稱為寫入射擊。這些寫入射擊是以增值步驟(incremental steps)的方式實施,直到達到記憶胞的目標臨界電壓水準為止。當要將資料寫入這些記憶胞時,目標臨界電壓水準相當於要被寫入記憶胞之資料位元(bits of data)的電壓水準。當要將資料自記憶胞抹除時,目標臨界電壓水準相當於用來將記憶胞重置(reset)到抹除狀態(erased state)的電壓水準。
每一個寫入射擊的電壓水準,可以是目標臨界電壓水準的分數(fraction)。在實施每一次寫入射擊之後,一般會進行一次寫入驗證操作,以確認是否達到目標臨界電壓水準,以及確認資料是否被正確地寫入記憶胞。假如未達到目標臨界電壓水準,會在寫入驗證操作之後,再實施另一次寫入射擊,以使記憶胞的電壓水準朝達到目標臨界電壓水準的方向調整。這樣的程序會重複進行,直到達到記憶胞的目標臨界電壓水準為止。
第1圖係根據一實施例繪示一種具有中間寫入驗證操作的記憶體寫入循環100。其中,中間寫入驗證操作係跟隨在每一次的寫入射擊之後。記憶體寫入循環100包括實施複數次(n
次)的寫入射擊(其中n
係大於1的整數),例如寫入射擊102a、102b、102c至102n,來對記憶體陣列,例如快閃記憶體晶片,中的記憶胞進行寫入。記憶體寫入循環100也包括實施複數次的寫入驗證操作,例如寫入驗證操作104a、104b、104c至104n。
在記憶體寫入循環100中,實施每一次寫入射擊之後,會進行一次寫入驗證操作,以確認記憶體陣列中之目標記憶胞的電壓水準。例如寫入射擊102a之後,會進行寫入驗證操作104a;寫入射擊102b之後,會進行寫入驗證操作104b;寫入射擊102c之後,會進行寫入驗證操作104c;以及寫入射擊102n之後,會進行寫入驗證操作104n。
在一些實施例之中,記憶體陣列中的記憶胞為多層記憶胞。在這種情況下,不同記憶胞的目標臨界電壓水準會有差異,例如不同記憶胞會對應不同數值的記憶位元(memory bits)。舉例來說,記憶體陣列中記憶胞的目標臨界電壓水準可能是三種電壓水準中之一種,即A電壓水準、B電壓水準或C電壓水準。在此情形下,每一次的寫入驗證操作要量測不同電壓水準,例如A電壓水準(以AV表示)、B電壓水準 (以BV表示)或C電壓水準(以CV表示),之記憶胞的電壓水準。由於必須進行多重水準的驗證程序,會使每一次的寫入驗證操作的時間增加,進而增加整體多重寫入驗證操作的時間。
第1圖中的流程序列110即是繪示記憶體寫入循環100所耗費的時間。每一次的寫入射擊(以PGM表示)僅使用有限量的時間。例如第一次寫入射擊102a耗用了第一時間112a;第二次寫入射擊102b耗用了第二時間112b;第三次寫入射擊102c耗用了第三時間112c;以及第n次寫入射擊102n耗用了第n時間112n。在本說明書中,時間是採用適當的計量單位,例如秒(seconds)、毫秒(milliseconds)、微秒(microseconds)或奈秒(nanoseconds),來進行量測。
每一次寫入射擊所耗用的時間之後緊跟著的是對應於該寫入射擊之寫入驗證操作所耗用的時間。如第1圖所示,第一時間112a之後緊跟著的是對應於第一次寫入射擊102a之寫入驗證操作104a所耗用的時間114a。相同的,第二時間112b之後緊跟著的是對應於第二次寫入射擊102b之寫入驗證操作104b所耗用的時間114b;第三時間112c之後緊跟著的是對應於第三次寫入射擊102c之寫入驗證操作104c所耗用的時間114c;以及第n時間112n之後緊跟著的是對應於第n寫入射擊102n之寫入驗證操作104n所耗用的時間114n。
用來驗證每一個目標臨界電壓水準的寫入驗證操作需耗用t_PV的時間。因此使用三種電壓水準,即A電壓水準、B電壓水準和C電壓水準,之具有多層記憶胞的記憶體陣列,每一次的寫入驗證操作需耗用3×t_PV(以3*t_PV表示)的時間(如圖所示,每一次驗證A電壓水準、B電壓水準和C電壓水準,AV、BV和CV,都需耗用t_PV的時間)。若進行n次的寫入射擊,寫入驗證操作的總耗用時間n×3×t_PV佔去了記憶體寫入循環100總耗用時間的很大一部分。
在一些應用中,有需要降低寫入驗證時間佔記憶體寫入循環100總耗用時間的比例。例如固態硬碟(Solid-State-Drives,SSDs)、智慧型手機、平板電腦(tablet computers)和資料儲存伺服器(data storage servers)…等,都需要具有高輸出效率的非揮發性記憶體(例如,高密度快閃記憶體),以達到想要的系統效能。非揮發性記憶體的高輸出效率可藉由增加記憶體陣列之寫入速度,例如降低寫入驗證操作的總耗用時間,來實現。
以下所揭露之記憶體陣列、相關元件、系統和技術,是藉由限制記憶體寫入循環中寫入驗證操作的次數,以減少每一個記憶體寫入循環之寫入驗證操作的總耗用時間,進而提高記憶體陣列之寫入速度。在一些實施例中,以下所揭露之記憶體陣列、相關元件、系統和技術係應用於非揮發性記憶體陣列,例如快閃記憶體晶片。在其他實施例中,以下所揭露之記憶體陣列、相關元件、系統和技術可以應用於其他形式的記憶體中。
第2圖係根據一實施例繪示一種具有預先驗證操作和多個連續寫入射擊,且沒有中間寫入操作的記憶體寫入循環200。記憶體寫入循環200可用來對記憶體陣列,例如快閃記憶體晶片,中的記憶胞進行寫入。記憶體寫入循環200可用來對單層記憶胞、雙層記憶胞或上述二者進行寫入。包括預先驗證操作206的記憶體寫入循環200係採用與被寫入之記憶體陣列有關聯之系統中的適當邏輯來實施。例如,下述實施例中係揭露進行記憶體寫入循環200操作的一種記憶體控制器,用來對與記憶體控制器相關聯的記憶體陣列進行寫入。但在其他實施例中,記憶體寫入循環200的操作,可以採用位於與記憶體陣列相關聯之系統中的硬體及/或軟體來進行。
記憶體寫入循環200包括實施複數次寫入射擊,例如寫入射擊202a、202b、202c至202n,來對記憶胞進行寫入。記憶體寫入循環200也包括一次寫入驗證操作204以及一次預先寫入驗證操作206。
採用記憶體寫入循環200來對記憶體陣列進行寫入時,記憶體控制器繪示加一個起始寫入射擊至記憶體陣列的多個記憶胞,並獲取每一個記憶胞的臨界電壓,再根據臨界電壓來決定用來使這些記憶胞達到各自目標臨界電壓水準所需之寫入射擊的數目。例如,先對記憶體陣列的目標記憶胞施加第一次寫入射擊202a。之後,進行預先寫入驗證操作206。藉由一部分的預先寫入驗證操作206,記憶體控制器可在施加第一次寫入射擊202a之後獲取每一個記憶胞的臨界電壓。例如在一實施例中,在施加第一次寫入射擊202a之後,可藉由頁緩衝器(page buffer)從記憶胞中讀出臨界電壓並以快取記憶體加以儲存。接著,將臨界電壓資料傳輸至記憶體控制器。根據每一個記憶胞的臨界電壓,記憶體控制器可以在預先寫入驗證操作206中,決定出用來使這些記憶胞達到各自目標臨界電壓水準所需的寫入射擊數目。
在具有多層記憶胞的記憶體陣列中,不同記憶胞的目標臨界電壓水準可能會不一樣。其係取決於不同記憶胞中用來代表資料之記憶位元的狀態。例如,如第2圖所示,記憶體陣列中記憶胞的目標臨界電壓水準可能是三種電壓水準,即A電壓水準、B電壓水準或C電壓水準。另一方面,在一個單層記憶胞陣列中,記憶體陣列中記憶胞的目標臨界電壓水準可能是與所有記憶胞相同的均一數值。因此,記憶體控制器可以在預先寫入驗證操作206中,決定出用於多層記憶胞、單層記憶胞或二者所需的寫入射擊數目。
預先寫入驗證操作206的操作方式,以下將以具有三種目標臨界電壓水準(即A電壓水準、B電壓水準和C電壓水準)之多層記憶胞的寫入流程序列220來詳細說明。在預先寫入驗證操作206之中,記憶體控制器會量測記憶胞的起始臨界電壓分佈222。如本實施例所述,起始臨界電壓分佈222是在施加第一次寫入射擊202a之後,所量測而得的多個記憶胞的臨界電壓水準。根據每一個記憶胞的起始臨界電壓水準,決定出用來使這些記憶胞達到各自目標臨界電壓水準所需的寫入射擊數目。例如,假如某個記憶胞的起始臨界電壓水準落在起始臨界電壓分佈222的起始水準224a,且此一記憶胞的目標臨界電壓水準落在A電壓水準228a,則記憶體控制器可據此決定出用來使該記憶胞的臨界電壓水準從起始水準224a移動至A電壓水準228a所需要之寫入射擊226a的數目X。以同樣方式,決定出將具有起始水準224b之記憶胞的臨界電壓水移動至B目標臨界電壓水準228b所需要之寫入射擊226b的數目Y;以及決定出將具有起始水準224c之記憶胞的臨界電壓水準移動至C目標臨界電壓水準228c所需要之寫入射擊226c的數目Z。
藉由前述方式,可以在預先寫入驗證操作206之中,決定出用來使每一個要被寫入的記憶胞達到各自目標臨界電壓水準所需之寫入射擊的數目。在一些實施例之中,起始臨界電壓分佈222可以被劃分或分成複數個族群。一個特定記憶胞可以根據該記憶胞之起始臨界電壓分佈所區分的對應族群,來決定出該記憶胞所需之寫入射擊的數目。第3圖係根據一實施例繪示在預先驗證操作206中,將起始臨界電壓分佈222區分成複數個族群。如圖所示,起始臨界電壓分佈222被區分成N個族群,例如族群302a、302b、302c、... 302N-1 以及302N(其中N為合適的整數)。這N個族群涵蓋了要被寫入之記憶胞之起始電壓分佈的可能數值範圍。在一些實施例之中,族群的數目N係根據這些記憶胞從起始臨界電壓水準寫入至目標臨界電壓水準的速度來加以區分。
當相對應的族群以及目標臨界電壓水準為已知時,族群的數目,即整數N的數值,是電壓分佈曲線222上每一個起始臨界電壓水準所需之寫入射擊數目的精細程度(granularity of precision)與決定每一個記憶胞所需之寫入射擊數目的時間二者的折衷方案。假如N的數值太小(例如2或3),族群數量較少。在這種情況下,兩個具有相當程度差異之起始臨界電壓水準(有可能會被分配在不同族群302a和302b)的記憶胞,會被分配到同一個族群,進而使二者所需的寫入射擊數目相同(假設二者有相同的目標臨界電壓水準)。這有可能造成記憶胞不正確的寫入。例如,假如過多寫入射擊被施加至記憶胞,將使記憶胞的臨界電壓水準移動至與目標臨界電壓不同的水準。另一方面,假如N的數值太大(例如大於45),將不同記憶胞分配到N個族群其中之一,並且決定每一個記憶胞所需的寫入射擊數目將會耗掉很多時間。在這種情況下,預先驗證操作206的整體耗費時間可能與預先驗證操作206所欲取代的中間寫入驗證操作所耗費的時間相當。在一些實施例中,更可能會比中間寫入驗證操作更耗時。如此,將喪失採用預先驗證操作206來取代中間寫入驗證操作的好處。
因此,N個族群的數目(N的數值),是藉由衡量在預先驗證操作206中決定每一個記憶胞所需之寫入射擊數目的時間,以及臨界電壓分佈222曲線上每一個起始臨界電壓水準所需之寫入射擊數目的精細程度,來分配了一些適合的數值。例如在一些實施例之中,起始臨界電壓分佈被區分成15個族群(N = 15)。N其他數值亦有可能。例如,N可以是藉於4到45之間,或其他合適範圍,的整數。
在一實施例中,N個族群的總數係藉由將起始臨界電壓分佈的範圍分割成數個較小部分來決定,並分配一個部分給一個族群。例如,起始臨界電壓分佈的範圍可以是4.5V,而被區分為以0.3V遞增的部分。計算以上數值,可求得N個族群的總數N為4.5/0.3=15。在一實施例中,每一個部分的電壓範圍(例如,0.3V)都會對應到一個寫入射擊的數目。
記憶體控制器決定用來使每一個記憶胞達到各自目標臨界電壓水準所需之寫入射擊的數目。例如圖式中,假如某一記憶胞的起始臨界電壓是在族群302a中,則施加3次的寫入射擊,以使該記憶胞達到A目標臨界電壓水準228a;假如某一記憶胞的起始臨界電壓是在族群302b中,則施加4次的寫入射擊,以使該記憶胞達到A目標臨界電壓水準228a;假如某一記憶胞的起始臨界電壓是在族群302N-1中,則施加N-1次的寫入射擊,以使該記憶胞達到A目標臨界電壓水準228a;假如某一記憶胞的起始臨界電壓是在族群302N中,則施加N次的寫入射擊,以使該記憶胞達到A目標臨界電壓水準228a。依此類推。
在一些實施例之中,記憶體控制器會預先計算與記憶體控制器相關聯之記憶體陣列中的記憶胞的族群數目N,並決定要使每一個族群達到各自目標臨界電壓水準所需之寫入射擊的數目。在一個具有多層記憶胞的記憶體陣列之中,記憶體控制器會計算每一個族群中和每一種臨界電壓水準,用來達到特定目標臨界電壓水準所需之寫入射擊的數目。因此,若有記憶體陣列具有三種臨界電壓水準的記憶胞,則每一個族群就有三種用來使不同臨界電壓水準達到各自目標臨界電壓水準所需之寫入射擊的數目。
在一實施例中,記憶體控制器會預先計算記憶胞的族群數目N及與其相對應的寫入射擊的數目,並將其儲存於記憶體中。後續,在記憶體寫入循環的預先驗證操作中,例如在記憶體寫入循環200預先驗證操作206中,記憶體控制器會讀取每一個要被寫入之記憶胞的起始臨界電壓,並依照記憶胞的起始臨界電壓將每一個記憶胞分配給N個族群中的一群。在一個具有多層記憶胞的記憶體陣列之中,記憶體控制器會根據每一個記憶胞被分配到的族群以及該記憶胞的目標臨界電壓水準來決定要施加於該記憶胞之寫入射擊的數目。在一個具有單層記憶胞的記憶體陣列之中,記憶體控制器會根據每一個記憶胞被分配到的族群來決定要施加於該記憶胞之寫入射擊的數目。
以這種方式,藉由記憶胞的起始臨界電壓將記憶胞區分成有限數量的族群,以得到有限數量之寫入射擊的可能數目。兩個具有不同起始臨界電壓的記憶胞,假如他們的起始臨界電壓落在族群302a的範圍內,則他們可能被分配在同一個族群,例如族群302a。因此,假如這兩個記憶胞的目標臨界電壓水準相同,即使二者具有不同起始臨界電壓的記憶胞,仍會被施予同樣數目的寫入射擊。
在預先驗證操作206中,確定要被施加於每一個記憶胞之寫入射擊的數目後,記憶體控制器會對每一個記憶胞分別施加已確定數目的寫入射擊,使每一個記憶胞分別達到各自的目標臨界電壓水準。這些寫入射擊是連續不斷地施加於記憶胞上,其間並沒有進行中間寫入驗證操作。例如,如第2圖所繪示,寫入射擊202b、202c至202n係以連續操作的方式施加於記憶體陣列的記憶胞上,寫入射擊之間並沒有進行中間寫入驗證操作。所施加之寫入射擊的數目,是根據上述預先驗證操作206所決定之個別記憶胞的寫入射擊數目。
在記憶體寫入循環200中,施加最後一次寫入射擊202n之後,記憶體控制器會進行一次寫入驗證操作。例如,在施加最後一次寫入射擊202n之後,記憶體控制器會進行寫入驗證操作204。寫入驗證操作204是在驗證記憶體陣列中的記憶胞是否已被寫入至他們各自的目標臨界電壓水準。
流程序列210即是繪示記憶體寫入循環200所耗費的時間。每一個寫入射擊僅耗用有限的時間。例如,如前所述,記憶體寫入循環200施加了n個(n為大於1的整數,n>1)寫入射擊,藉以達到記憶胞各自的目標臨界電壓水準。第一次寫入射擊202a耗用了第一時間212a;第二次寫入射擊202b耗用了第二時間212b;第三次寫入射擊202c耗用了第三時間212c;以及第n次寫入射擊202n耗用了第n時間212n,依此類推。
第一次寫入射擊202a所耗用的第一時間212a在預先驗證操作206所耗用的時間216之前。其餘第二次寫入射擊202b、第三次寫入射擊202c以及第n次寫入射擊202n所耗用的時間212b、212c至212n分別連續不斷地跟隨在後。記憶體寫入循環200的寫入驗證操作204所耗用的時間214,則跟隨在第n次或最後一次寫入射擊202n所耗用的第n時間212n之後。
每次預先驗證操作206耗用了時間t_read。如第3圖所繪示,起始臨界電壓分佈被區隔成N個族群,因此t_read=N×t_PV。由於具有多層記憶胞的記憶胞陣列使用了三個目標臨界電壓水準(即A水準、B水準和C水準),因此寫入驗證操作204所耗用的時間為3×t_PV,如圖所示(每一次驗證A電壓水準、B電壓水準和C電壓水準,AV、BV和CV,分別耗用t_PV的時間)。這兩個操作的總耗用時間為t_read+3×t_PV= N×t_PV+3×t_PV,實質上小於記憶體寫入循環100中的整體寫入驗證時間。n×3×t_PV。
在節省時間的實施例中,可以藉由採用預先驗證操作206,並免除中間寫入驗證操作的方式來加以實現。若僅考量具有多層記憶胞之記憶胞陣列中三種目標臨界電壓水準(即A電壓水準、B電壓水準或C電壓水準)中的一種,則可以採用16次的寫入射擊,將記憶胞寫入至最高的目標臨界電壓水準(例如,C電壓水準(CV))。在此一實施例中,記憶體寫入循環100中所耗用的整體驗證時間如下式(其中n = 16): 16 次× 3種狀態(目標臨界電壓水準)×t_PV = 48 t_PV (1) 相對的記憶體寫入循環200中所耗用的整體驗證時間如下式(假設在預先驗證操作206中,起始電壓分佈被區隔成16個族群,N= 16): 16 族群× t_PV + 1 次×3種狀態×t_PV = 19 t_PV (2) 19 t_PV是48 t_PV的40%。因此,在這個實施例之中,與採用中間寫入驗證操作104a、104b和104c的記憶體寫入循環100相比,採用包含預先驗證操作206的記憶體寫入循環200可使驗證時間縮短60%。
與記憶體寫入循環100的整體寫入時間相比,藉由這種方式可縮短記憶體寫入循環200的整體寫入時間。如前所述,時間的節省係藉由採用一個初始預先驗證操作(例如預先驗證操作206),且在預先驗證操作206之後進行連續且沒有中間寫入驗證操作的寫入射擊(例如寫入射擊202b、202c),來取代複數個中間寫入驗證操作(如第1圖所繪示之記憶體寫入循環100中的中間寫入驗證操作104a、104b和104c)所達成。另外,在最後一次的寫入射擊(例如,寫入射擊202n)之後,可以進行一次的寫入驗證操作(例如,寫入驗證操作204)。
在上述實施例之中,預先驗證操作206係在第一次寫入射擊202a之後進行。其他實施例亦可能採用不同的步驟順序。例如,在第一次寫入射擊202a之後,可以先進行一次寫入驗證操作,再進行預先驗證操作206。在這類實施例中,預先驗證操作206係緊接在第一次寫入射擊202a之後所進行的寫入驗證操作之後實施。或者預先驗證操作206也可以在第二次寫入射擊之後進行。在另一個實施例中,則可以在第三次寫入射擊之後進行。
第4A圖和第4B圖係根據另一實施例繪示一種具有一次預先驗證操作且沒有中間寫入驗證操作跟隨在寫入射擊之後的記憶體寫入循環。在一實施例中,記憶體寫入循環包括一次預先驗證操作以及在記憶體寫入循環結束時所進行的多次寫入驗證操作,如第4A圖和第4B圖所繪示。記憶體寫入循環(以流程序列400A表示),包括多次的寫入射擊(以標號412a、412b、412c至412n-1 和412n表示)、一次預先驗證操作(以標號416表示)以及多次寫入驗證操作(以標號414a和414b表示)。
用來實施記憶體寫入循環400A的記憶體控制器,在施加第一次寫入射擊(以標號412a表示)之後進行預先驗證操作416。步驟流程與前述的記憶體寫入循環200類似。之後,記憶體控制器施加連續的寫入射擊(以標號412b、412c至412n-1和412n表示),沒有進行任何中間寫入驗證操作。但記憶體控制器在記憶體寫入循環結束時進行了兩次寫入驗證操作。例如,在倒數第二次寫入射擊(以標號412n-1表示)之後,記憶體控制器進行了第一寫入驗證操作414a。第一寫入驗證操作(以標號414a表示),是用來確認是否有需要進行額外的寫入射擊,以達到目標臨界電壓水準。然後,實施最後一次寫入射擊(以標號412n表示),接著進行第二寫入驗證操作(以標號414b表示),以驗證記憶胞的目標臨界電壓水準是否被達成。
在另一實施例中,第一寫入驗證操作414a係在倒數第二次寫入射擊412n-1之前進行。例如,第一寫入驗證操作414a可以在最後一次寫入射擊412n之前的第m次寫入射擊之後實施施,其中m為大於2的整數(m>2)。在這類實施例中,可以實施二個以上的寫入驗證操作。例如,從第m次寫入射擊開始的每一次寫入射擊之後,包含在最後一次寫入射擊412n之後,都實施一次寫入驗證操作。
在一實施例中,記憶體寫入循環包括一次或多次的預先驗證操作,如第4B圖所繪示的流程序列400B所繪示。記憶體寫入循環(以標號400B表示)多次的寫入射擊(以標號412a、412b、412c至412n-1 和412n表示)、多次預先驗證操作(以標號416a和416b表示)以及一次的寫入驗證操作(以標號414表示)。
用來實施記憶體寫入循環400B的記憶體控制器,施加第一次寫入射擊(以標號412a表示)之後進行第一預先驗證操作416a。步驟流程與前述的記憶體寫入循環200類似。之後,記憶體控制器施加連續的寫入射擊(以標號412b、412c至412n-1 和412n表示),沒有進行任何中間寫入驗證操作。但記憶體控制器在記憶體寫入循環結束時進行了兩次寫入驗證操作。例如,在倒數第二次寫入射擊(以標號412n-1表示)之後,記憶體控制器進行了第二預先驗證操作416b。第二預先驗證操作416b (以標號416b表示),是用來決定達到目標臨界電壓水準(如果需要的話)所需要之額外寫入射擊的數目。然後,實施最後一次寫入射擊(以標號412n表示),接著進行寫入驗證操作(以標號414表示),以驗證記憶胞的目標臨界電壓水準是否被達成。
在另一實施例中,第二預先驗證操作416b係在倒數第二次寫入射擊412n-1之前進行。例如,第二預先驗證操作416b可以在最後一次寫入射擊412n之前的第m次寫入射擊之後實施施,其中m為大於2的整數(m>2)。在這類實施例中,第二預先驗證操作416b之後所進行的寫入射擊(例如第m+1次至最後一次寫入射擊412n)可以是以連續的方式實施,沒有進行任何中間寫入驗證操作。另外在一些實施例中,可以在第二預先驗證操作416b之後實施兩次或更多次的寫入驗證操作。例如,從第m+1次寫入射擊開始的每一次寫入射擊之後,包含在最後一次寫入射擊412n之後,都實施一次寫入驗證操作。
兩次或更多次的寫入驗證操作414a和414b或兩次或更多次的預先驗證操作416a和416b,在臨界電壓水準浮動時以及/或在施加寫入射擊412b、412c至412n-1和412n時有寫入雜訊干擾的狀況下,可以有效發揮作用。在這些狀況下,由於當緊跟在第一次寫入射擊後的預先驗證操作決定了電壓水準以後,記憶胞的臨界電壓水準仍有可能改變。第一寫入驗證操作414a或額外的預先驗證操作416b,可以用來確認記憶胞之臨界電壓水準會有較窄的分佈範圍。
第5圖係根據一實施例繪示一種採用具有預先驗證操作和多個連續寫入射擊,且沒有中間寫入操作之記憶體寫入循環的系統500。系統500包括記憶體控制器502、記憶體陣列504、臨時儲存裝置(temporary storage)510。在一些實施例中,記憶體控制器502使用記憶體寫入循環200對記憶體陣列504進行寫入。
記憶體控制器502包括用來執行各種操作的硬體及軟體邏輯。這些操作包括,對記憶體陣列504進行寫入,例如將資料寫入記憶體陣列504、將資料從記憶體陣列504中抹除或將資料從記憶體陣列504中讀取...等。記憶體控制器502可以包括,用來執行程式化記憶體陣列504之指令的微處理器。上述指令被儲存在記憶體控制器502可存取之合適的儲存裝置中。例如,上述指令可被儲存在快閃記憶體模組、硬碟..等等中。上述指令可被儲存在臨時儲存裝置510或記憶體陣列504中(例如,位於記憶體陣列504的特定區域中,與要被進行資料寫入的記憶胞區隔)。
記憶體陣列504包括複數個記憶胞。這些記憶胞可以是多層記憶胞或單層記憶胞。在一實施例中,記憶體陣列504可以是非揮發性記憶體陣列,例如快閃記憶體晶片。但在其他實施例中,記憶體陣列504可以是其他形式的記憶體。
臨時儲存裝置510係建構來儲存有關記憶胞之臨界電壓和要被施加至記憶胞以達到各自之目標臨界電壓水準所需之寫入射擊數目的資訊。在本實施例中,臨時儲存裝置510係一種快取記憶體,包含快取記憶體512a、512b、512c、512d和512e。一部分的快取記憶體512c至512e用來儲存記憶胞之臨界電壓和要被施加至記憶胞之寫入射擊的數目。其他的快取記憶體512a和512b用來儲存其他資料。不過,如果需要的話,快取記憶體512a和512b也可用來儲存記憶胞之臨界電壓和寫入射擊的數目。相對的快取記憶體512c至512e也可用來儲存其他資料。
雖然圖式僅繪示五個快取記憶體,臨時儲存裝置510可以具有不同數量的快取記憶體。例如,在一實施例之中,臨時儲存裝置510可以具有大量的快取記憶體。其中,快取記憶體的數量對係應於記憶體陣列504中要被寫入之記憶胞的數量。
臨時儲存裝置510也可以是其他形態的儲存裝置。例如,臨時儲存裝置510可以包括靜態隨機存取記憶體(Static Random Access Memory,SRAM)、NAND快閃記憶體或是一組暫存器(registers)。臨時儲存裝置510可以額外或替代地以一部分與要被寫入之記憶胞區隔的記憶體陣列504來實現。另外,其它合適的配置也是可能的。
在記憶體寫入循環的預先驗證操作中,例如在預先驗證操作206中,記憶體陣列504中的記憶胞臨界電壓會被讀取並儲存至臨時儲存裝置510中的一或多個快取記憶體,例如快取記憶體512c至512e。在一實施例之中,一個快取記憶體對應一個要被寫入的記憶胞,並且配置來儲存相對應之記憶胞的資料,以及/或儲存施加在該記憶胞上用以達到其目標臨界電壓水準之寫入射擊數目的資料。
記憶體控制器502會由快取記憶體中讀取記憶胞的臨界電壓資料,並且決定施加在該記憶胞上用以達到其目標臨界電壓水準之寫入射擊的數目。例如,如前所述之預先驗證操作206。記憶體控制器502會再將所決定之射擊數目回寫入快取記憶體中。記憶體控制器502藉由對該記憶胞施加所決定數目的寫入射擊,來對記憶體陣列的記憶胞進行寫入。對一個記憶胞來說,記憶體控制器502係從所對應的快取記憶體中讀取要施加於該記憶胞的寫入射擊數目。
藉此,可採用系統500來對記憶體陣列進行寫入,而不需要在多個寫入射擊之間進行寫入驗證操作。其中,系統500係使用預先驗證操作(例如,預先驗證操作206)的記憶體寫入循環,例如記憶體寫入循環200。系統500也可以用來對使了
用包含有一個預先驗證操作的其他記憶體寫入循環,例如對應於流程序列400A或400B的記憶體寫入循環,的記憶體陣列進行寫入。
第6圖係根據一實施例繪示一種採用具有預先驗證操作和多個連續寫入射擊,且沒有中間寫入操作之記憶體寫入循環的流程600。在一實施例之中,流程600是採用系統500來對使用記憶體寫入循環200的記憶體陣列504進行寫入。因此以下段落所述的流程600,將是使用系統500及記憶體寫入循環200來實施。但其他實施例中,流程600也可採用其他系統,或者採用使用了其他記憶體寫入循環的系統500來實施。
記憶體控制器502執行儲存於記憶體中的指令以實施流程600。其中,該記憶體耦接至記憶體控制器。如前所述,這些指令係對應至記憶體控制器所提供的功能。
在步驟602中,施加第一寫入射擊至記憶體陣列的記憶胞中。例如,記憶體控制器502施加寫入射擊202a至記憶體陣列504的記憶胞。
在步驟604中,獲取記憶胞在第一寫入射擊之後的臨界電壓。例如,記憶體控制器502在寫入射擊202a之後進行預先驗證操作206。在預先驗證操作206之中,記憶體控制器502讀取了記憶胞的臨界電壓。
在步驟606中,將這些臨界電壓儲存於暫存記憶體(temporary memory)中。例如,記憶體控制器502將步驟604所讀取的臨界電壓水準儲存於臨時儲存裝置510的中快取記憶體,例如快取記憶體512c至512e中。如前所述,每一個記憶胞的臨界電壓水準分別被儲存於對應該記憶胞的一個快取記憶體之中。相對的,多個記憶胞的臨界電壓水準被儲存於同一個快取記憶體之中。後者的情況可能是,例如,這些記憶胞的臨界電壓水準係相等。在這種情況下,記憶體控制器502可以包含額外的邏輯,藉以映射(map)到儲存於這些記憶胞所對應之單一快取記憶體之中的臨界電壓水準。
在步驟608中,決定要達到每一個記憶胞之目標臨界電壓水準所需的寫入射擊數目。例如,記憶體控制器502決定要達到記憶體陣列504中要被寫入之每一個記憶胞的目標臨界電壓水準所需的寫入射擊數目。記憶體控制器502從臨時儲存裝置510的快取記憶體中讀取記憶胞目前的臨界電壓水準。如前所述,在一實施例之中,記憶體控制器502先產生起始臨界電壓分佈222,並將起始臨界電壓分佈222被區分成N個族群,例如族群302a、302b、302c、... 302N-1 以及302N。記憶體控制器502,再根據一個記憶胞所對應的族群以及其個別的目標臨界電壓水準(假設有多重目標臨界電壓水準),決定該記憶胞所需的寫入射擊數目。
在步驟610中,將每一個記憶胞所需的寫入射擊數目儲存至暫存記憶體中。例如,記憶體控制器502將記憶胞所需的寫入射擊數目儲存於臨時儲存裝置510中的快取記憶體中,例如儲存於快取記憶體512c至512e中。如前所述,每一個記憶胞所需的寫入射擊數目分別被儲存於對應該記憶胞的一個快取記憶體之中。相對的,多個記憶胞所需的寫入射擊數目被儲存於同一個快取記憶體之中。後者的情況可能是,例如,這些記憶胞所需的寫入射擊數目係相等。在這種情況下,記憶體控制器502可以包含額外的邏輯,以映射到儲存在與這些記憶胞對應之單一快取記憶體中的寫入射擊數目。
在步驟612中,藉由對每一個記憶胞施加被指派數目之寫入射擊來對記憶體陣列中的記憶胞進行寫入。例如,記憶體控制器502藉由對每一個記憶胞施加其所需數目的寫入射擊來對記憶體陣列504中的記憶胞進行寫入。記憶體控制器502先從臨時儲存裝置510的快取記憶體(例如,快取記憶體512c、512d 或512e)中讀取各別記憶胞所需要之寫入射擊的數目。記憶體控制器502再以連續的方式實施寫入射擊,例如寫入射擊202b、202至202n,且在這些寫入射擊之間不進行任何中間寫入驗證操作。
在步驟614中,在使用被指派之寫入射擊數目進行寫入之後,進行寫入驗證操作。例如,在施加最後一次寫入射擊202n之後,記憶體控制器502會進行寫入驗證操作204,以驗證記憶體陣列504中的記憶胞是否已被寫入至他們各自的目標臨界電壓水準。
先前所述以及其他的實施例可藉由一或多種電腦程式產品來加以實現。此電腦程式產品可以是,例如一或多種編碼在電腦可讀取介質上,用以執行或控制此操作的電腦程式模組或資料處理裝置。這些實現內容包括演算法的單一或分散式處理(single or distributed processing of algorithms)。電腦可讀取介質可以是機器可讀儲存元件(machine-readable storage device)、機器可讀儲存基材(machine-readable storage substrate)或上述之任意組合。資料處理裝置(data processing apparatus)一詞,包括所有的資料處理裝置、元件和機器。包括可程式處理器(programmable processor)、計算機(computer)或多工處理器(multiple processors or computers)或多台電腦。此一裝置可以包括額外的硬體、用來創造此一操作之電腦執行環境的程式碼(code),例如構成處理韌體(processor firmware)、通訊堆疊協定(protocol stack)、資料庫管理系統(database management system)、操作系統或上述之任意組合的程式碼。
系統可以包括資料處理裝置、元件和機器。包括可程式處理器、計算機或多工處理器或多台電腦。系統可以包括額外的硬體、用來創造此一操作之電腦執行環境的程式碼,例如構成處理韌體、通訊堆疊協定、資料庫管理系統、操作系統或上述之任意組合的程式碼。
可以藉由任何程式語言,例如編譯或直譯語言(compiled or interpreted languages)來進行電腦程式(也被稱為程式,軟體,軟體應用,腳本(script)或程式碼)的寫入。且電腦程式可以採用任何的形式,例如單獨程式、模組、組件、子程式或任何適於在計算機環境中使用的其它單元,來進行部署。電腦程式不一定對應於檔案系統中的檔案。電腦程式可以被儲存在用來儲存其他程式或資料(例如,儲存在標記語言(markup language document)之中的一或多個腳本)的部份檔案、專門用來儲存該電腦程式的單一檔案或多重協檔案(multiple coordinated files)(儲存於一或多個模組、子程式或部分程式碼中的檔案)之中。電腦程式可以在一台電腦或位於一個地點或分佈在多個地點並通過網路互連的多台電腦中執行。
本文所述的程序和邏輯流程(logic flows)可藉由在一或多個可程式處理器中執行一或多個電腦程式以提供前述之功能的方式來實現。程序和邏輯流程以及裝置也可藉由特殊用途邏輯電路(special purpose logic circuitry),例如場式可程式閘陣列(Field Programmable Gate Array,FPGA)或特定應用積體電路(Application Specific Integrated Circuit,ASIC)來實現。
適於用來執行電腦程式的流程可以包括特殊用途或通用微處理器,以及任何形式的數位計算機處理器。一般來說,處理器可以接收來自唯讀記憶體、隨態存取記憶體或二者的指令和資料。電腦的基本元件可以包括用於執行指令的處理器和用於存儲指令和資料的一或多個記憶體元件。一般而言,電腦也可以包括用於存儲資料的一或多個大容量存儲元件,例如,磁碟,磁光碟(magneto optical disks)以及光碟,或者被可操作地耦合,以接收資料或傳輸資料。但電腦不必然需具被上述元件。適於用來儲存電腦程式及資料的電腦可讀取介質,可以包括所有形式的非揮發記憶體、介質和記憶體元件,例如包括半導體記憶體元件(例如抹除式可複寫唯讀記憶體(Electrically Erasable Programmable Read Only Memory,EPROM)、電子抹除式可複寫唯讀記憶體(Electrically Erasable Programmable Read Only Memory,EEPROM)和快閃記憶體元件)、磁碟(例如,內置硬碟(internal hard disks)或可移硬碟(removable disk))、磁光碟和唯讀型光碟(例如,CD ROM及DVD-ROM)。處理器和記憶體可以補充特殊用途邏輯電路,或被整合在特殊用途邏輯電路之中。
雖然本文可能以較特定的描述方式揭露如上,然其只是用以描述特定實施例的詳係特徵,並非用以限定本發明的時技或可能主張的申請專利範圍。本文在不同實施例中所揭露的特徵,可以在單一實施例中合併實施。相反的在單一實施例中所揭露的特徵,也可在多個實施例,或在任何合適的次組合(sub-combination)中分別實施。另外,雖然上述特徵一開始可能被描述成一個特定組合,一或多個特徵可從此一組合中移除。且所主張的特徵組合可以是前述特徵的次組合或該次組合的變化形式。相同的,雖然在圖式中所繪示的各個操作有特定的次序,但其僅係例示達成發明目的的特定操作方式,並不能解釋或要求該些操作僅能依照此一特定順序加以實施。
本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100、200、400A、400B、500‧‧‧記憶體寫入循環
102a、102b、102c、102n、202a、202b、202c、202n、226a、226b、226c、412a、412b、412c、412n-1、412n‧‧‧寫入射擊
104a、104b、104c、104n、204、414a、414b‧‧‧寫入驗證操作
112a、212a‧‧‧第一時間
112b、212b‧‧‧第二時間
112c、212c‧‧‧第三時間
112n、212n‧‧‧第n時間
114a、114b、114c、114n、214、216、t_PV、t_read‧‧‧時間
202a、202b、302a、302b、302c、302N-1、302N‧‧‧族群
206、416a、416b‧‧‧預先驗證操作
210、220‧‧‧流程序列
222‧‧‧起始臨界電壓分佈
224a、224b、224c‧‧‧起始臨界電壓分佈的起始水準
502‧‧‧記憶體控制器
504‧‧‧記憶體陣列
510‧‧‧臨時儲存裝置
600‧‧‧流程
512a、512b、512c、512d、512e‧‧‧快取記憶體
AV、228a‧‧‧A電壓水準
BV、228b‧‧‧B電壓水準
CV、228c‧‧‧C電壓水準
PGM‧‧‧每一次的寫入射擊
602‧‧‧施加第一寫入射擊至記憶體陣列的記憶胞中
604‧‧‧獲取記憶胞在第一寫入射擊之後的臨界電壓
606‧‧‧將這些臨界電壓儲存於暫存記憶體中
608‧‧‧決定要達到每一個記憶胞之目標臨界電壓水準所需的寫入射擊數目
610‧‧‧將每一個記憶胞所需的寫入射擊數目儲存至暫存記憶體中
612‧‧‧藉由對每一個記憶胞施加被指派數目之寫入射擊來對記憶體陣列中的記憶胞進行寫入
614‧‧‧在使用被指派之寫入射擊數目進行寫入之後,進行寫入驗證操作
102a、102b、102c、102n、202a、202b、202c、202n、226a、226b、226c、412a、412b、412c、412n-1、412n‧‧‧寫入射擊
104a、104b、104c、104n、204、414a、414b‧‧‧寫入驗證操作
112a、212a‧‧‧第一時間
112b、212b‧‧‧第二時間
112c、212c‧‧‧第三時間
112n、212n‧‧‧第n時間
114a、114b、114c、114n、214、216、t_PV、t_read‧‧‧時間
202a、202b、302a、302b、302c、302N-1、302N‧‧‧族群
206、416a、416b‧‧‧預先驗證操作
210、220‧‧‧流程序列
222‧‧‧起始臨界電壓分佈
224a、224b、224c‧‧‧起始臨界電壓分佈的起始水準
502‧‧‧記憶體控制器
504‧‧‧記憶體陣列
510‧‧‧臨時儲存裝置
600‧‧‧流程
512a、512b、512c、512d、512e‧‧‧快取記憶體
AV、228a‧‧‧A電壓水準
BV、228b‧‧‧B電壓水準
CV、228c‧‧‧C電壓水準
PGM‧‧‧每一次的寫入射擊
602‧‧‧施加第一寫入射擊至記憶體陣列的記憶胞中
604‧‧‧獲取記憶胞在第一寫入射擊之後的臨界電壓
606‧‧‧將這些臨界電壓儲存於暫存記憶體中
608‧‧‧決定要達到每一個記憶胞之目標臨界電壓水準所需的寫入射擊數目
610‧‧‧將每一個記憶胞所需的寫入射擊數目儲存至暫存記憶體中
612‧‧‧藉由對每一個記憶胞施加被指派數目之寫入射擊來對記憶體陣列中的記憶胞進行寫入
614‧‧‧在使用被指派之寫入射擊數目進行寫入之後,進行寫入驗證操作
第1圖係根據一實施例繪示一種具有中間寫入驗證操作的記憶體寫入循環。其中,中間寫入驗證操作係跟隨在每一次的寫入射擊之後。 第2圖係根據一實施例繪示一種具有預先驗證操作和多個連續寫入射擊,且沒有中間寫入操作的記憶體寫入循環。 第3圖係繪示在預先驗證操作中,將起始電壓分佈(initial voltage distribution)區分成複數個族群的實施例。 第4A圖和第4B圖係根據另一實施例繪示一種具有預先驗證操作和多個連續寫入射擊,且沒有中間寫入操作的記憶體寫入循環。 第5圖係根據一實施例繪示一種採用具有預先驗證操作和多個連續寫入射擊,且沒有中間寫入操作之記憶體寫入循環的系統。 第6圖係根據一實施例繪示一種採用具有預先驗證操作和多個連續寫入射擊,且沒有中間寫入操作之記憶體寫入循環的流程。
600‧‧‧流程
602‧‧‧施加第一寫入射擊至記憶體陣列的記憶胞中
604‧‧‧獲取記憶胞在第一寫入射擊之後的臨界電壓
606‧‧‧將這些臨界電壓儲存於暫存記憶體中
608‧‧‧決定要達到每一個記憶胞之目標臨界電壓水準所需的寫入射擊數目
610‧‧‧將每一個記憶胞所需的寫入射擊數目儲存至暫存記憶體中
612‧‧‧藉由對每一個記憶胞施加被指派數目之寫入射擊來對記憶體陣列中的記憶胞進行寫入
614‧‧‧在使用被指派之寫入射擊數目進行寫入之後,進行寫入驗證操作
Claims (12)
- 一種記憶胞寫入方法,包括: 獲取一記憶陣列中至少一記憶胞的一第一臨界電壓; 識別該記憶胞的一目標臨界電壓;並根據該第一臨界電壓來決定用來使該記憶胞達到該目標臨界電壓所需要的多個寫入射擊(programming shot)的一數目; 將該記憶胞所需之該些寫入射擊的該數目施加至該記憶胞; 驗證該記憶胞被施予該數目之該些寫入射擊之後,是否達到該記憶胞的該目標臨界電壓。
- 如申請專利範圍第1項所述之記憶胞寫入方法,其中獲取該記憶胞的該第一臨界電壓的步驟,包括: 施加一第一寫入射擊至該記憶胞;以及 藉由施加該第一寫入射擊,獲取該記憶胞的該臨界電壓。
- 如申請專利範圍第1項所述之記憶胞寫入方法,其中獲取該記憶胞的該第一臨界電壓的步驟,包括: 決定該記憶胞之一第一臨界電壓分佈(distribution);以及 根據一寫入速度將該第一臨界電壓分佈區分為N個族群
- 如申請專利範圍第3項所述之記憶胞寫入方法,其中決定用來使該記憶胞達到該目標臨界電壓所需要的該些寫入射擊的該數目之步驟,包括: 識別該N個族群中對應該記憶胞之該第一臨界電壓的一第一族群;以及 決定施加給該第一族群的該些寫入射擊的該數目,以達到該記憶胞的該目標臨界電壓。
- 如申請專利範圍第1項所述之記憶胞寫入方法,其中將該數目的該些寫入射擊施加至該記憶胞的步驟,包括: 在複數個連續操作(successive operations)中將該數目的該些寫入射擊施加至該記憶胞,而不在該些寫入射擊之間施加任何中間寫入驗證操作(intermediate program verify operations)。
- 如申請專利範圍第1項所述之記憶胞寫入方法,其中驗證該記憶胞是否達到該目標臨界電壓之步驟,包括: 進行一第一次寫入驗證操作,以確認在施加一倒數第二次寫入射擊(penultimate programming shots)後,該記憶胞是否達到該目標臨界電壓水準; 對未達到該目標臨界電壓的該記憶胞施加一最終寫入射擊; 進行一第二次寫入驗證操作以確認該記憶胞是否達到該目標臨界電壓。
- 如申請專利範圍第1項所述之記憶胞寫入方法,其中驗證該記憶胞是否達到該目標臨界電壓之步驟,包括: 在對該記憶胞施加該倒數第二次寫入射擊之後,獲取該記憶胞的一第二臨界電壓; 根據該記憶胞的該第二臨界電壓決定用來使該記憶胞達到該目標臨界電壓所需要的多個寫入射擊的一額外數目; 在複數個連續操作中將該記憶胞所需之該額外數目的該些寫入射擊施加至該記憶胞;以及 驗證被施予該額外數目之該些寫入射擊的該記憶胞是否達到該記憶胞的該目標臨界電壓。
- 一種記憶體元件,包括: 一記憶體控制器(memory controller); 複數個指令,儲存於一儲存介質(storage medium),當該些指令被該記憶體控制器執行時,會使進行複數個操作,該些操作包括: 獲取一記憶陣列中至少一記憶胞的一第一臨界電壓; 識別該記憶胞的一目標臨界電壓;並根據該第一臨界電壓來決定用來使該記憶胞達到該目標臨界電壓所需要的多個寫入射擊的一數目; 將該記憶胞所需之該數目的該些寫入射擊施加至該記憶胞; 驗證該記憶胞被施予該數目之該些寫入射擊之後是否達到該記憶胞的該目標臨界電壓。
- 如申請專利範圍第8項所述之記憶體元件,其中獲取該記憶胞的該第一臨界電壓的步驟,包括: 施加一第一寫入射擊至該記憶胞;以及 藉由施加該第一寫入射擊,獲取該記憶胞的該臨界電壓。
- 如申請專利範圍第8項所述之記憶體元件,其中獲取該記憶胞的該第一臨界電壓的步驟,包括: 決定該記憶胞之一第一臨界電壓分佈;以及 根據一寫入速度將該第一臨界電壓分佈區分為N個族群。
- 如申請專利範圍第10項所述之記憶體元件,其中決定用來使該記憶胞達到該目標臨界電壓所需要的該些寫入射擊的該數目之步驟,包括: 識別該N個族群中對應該記憶胞之該第一臨界電壓的一第一族群;以及 決定施加給該第一族群的該些寫入射擊的該數目,以達到該記憶胞的該目標臨界電壓。
- 如申請專利範圍第8項所述之記憶體元件,更包括一快取記憶體,配置來儲存該記憶胞的該第一臨界電壓和該記憶胞所需要的該些寫入射擊的該數目; 其中該記憶體控制器系配置來進行複數個操作,藉以將該數目之該些寫入射擊施加至該記憶;該些操作包括: 從該快取記憶體中讀取用來使該記憶胞達到該目標臨界電壓所需要的該些寫入射擊的該數目;以及 在複數個連續操作中將該數目的該些寫入射擊施加至該記憶胞。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/985,622 US9543001B1 (en) | 2015-12-31 | 2015-12-31 | Programming memory cells |
US14/985,622 | 2015-12-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201735034A true TW201735034A (zh) | 2017-10-01 |
TWI611402B TWI611402B (zh) | 2018-01-11 |
Family
ID=57706035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105107475A TWI611402B (zh) | 2015-12-31 | 2016-03-11 | 記憶胞寫入方法及其應用 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9543001B1 (zh) |
CN (1) | CN106935270B (zh) |
TW (1) | TWI611402B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200144000A (ko) * | 2019-06-17 | 2020-12-28 | 에스케이하이닉스 주식회사 | 메모리 장치 및 그것의 동작 방법 |
US11887668B2 (en) * | 2021-03-26 | 2024-01-30 | Micron Technology, Inc. | All levels programming of a memory device in a memory sub-system |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7564718B2 (en) * | 2006-04-12 | 2009-07-21 | Infineon Technologies Flash Gmbh & Co. Kg | Method for programming a block of memory cells, non-volatile memory device and memory card device |
KR100891405B1 (ko) * | 2007-09-27 | 2009-04-02 | 주식회사 하이닉스반도체 | 불휘발성 메모리 장치 및 그 동작 방법 |
KR101400691B1 (ko) * | 2008-05-14 | 2014-05-29 | 삼성전자주식회사 | 메모리 장치 및 메모리 프로그래밍 방법 |
KR100953045B1 (ko) * | 2008-05-23 | 2010-04-14 | 주식회사 하이닉스반도체 | 불휘발성 메모리 장치의 프로그램 방법 |
KR100965071B1 (ko) * | 2008-07-10 | 2010-06-21 | 주식회사 하이닉스반도체 | 불휘발성 메모리 장치의 프로그램 방법 |
KR101074539B1 (ko) * | 2009-02-04 | 2011-10-17 | 주식회사 하이닉스반도체 | 불휘발성 메모리 장치 및 그 동작 방법 |
JP2013143155A (ja) | 2012-01-06 | 2013-07-22 | Powerchip Technology Corp | 不揮発性半導体記憶装置とその書き込み方法 |
CN104952486B (zh) * | 2014-03-25 | 2019-10-25 | 群联电子股份有限公司 | 数据储存方法、存储器控制电路单元以及存储器储存装置 |
-
2015
- 2015-12-31 US US14/985,622 patent/US9543001B1/en active Active
-
2016
- 2016-03-11 TW TW105107475A patent/TWI611402B/zh active
- 2016-03-17 CN CN201610153509.9A patent/CN106935270B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106935270B (zh) | 2019-12-20 |
TWI611402B (zh) | 2018-01-11 |
US9543001B1 (en) | 2017-01-10 |
CN106935270A (zh) | 2017-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220101931A1 (en) | Memory device including massbit counter and method of operating the same | |
US11837284B2 (en) | Nonvolatile semiconductor memory device | |
JP6154986B2 (ja) | 不揮発性メモリ装置およびその動作方法 | |
US10515008B2 (en) | Performance based memory block usage | |
US8902666B2 (en) | Programming method for nonvolatile memory device | |
US10402117B2 (en) | Memory health monitoring | |
US10892025B2 (en) | Soft erase and programming of nonvolatile memory | |
US9455040B2 (en) | Mitigating reliability degradation of analog memory cells during long static and erased state retention | |
US10297337B2 (en) | Hierarchical fail bit counting circuit in memory device | |
US20160118126A1 (en) | Nonvolatile memory devices and program method thereof | |
US9589640B2 (en) | Data storage device including nonvolatile memory device and operating method thereof | |
US10127984B2 (en) | Method for operating storage device determining wordlines for writing user data depending on reuse period | |
WO2017039772A1 (en) | Adaptive multi-phase erase | |
TWI684985B (zh) | 記憶體裝置與其編程方法 | |
TW201735034A (zh) | 記憶胞寫入方法及其應用 | |
CN112735502A (zh) | 一种用于闪存的阈值分布拟合方法、装置及系统 | |
US10073741B2 (en) | Memory system with reduced program time and method of operating the same | |
US9378809B1 (en) | Relaxing verification conditions in memory programming and erasure operations | |
US20230154553A1 (en) | Operation method of memory device and operation method of memory system including the same | |
US20230139427A1 (en) | Operation method of nonvolatile memory device | |
JP7126015B2 (ja) | Foggy-Fineプログラミングのためのオンチップ符号化を使用する不揮発性メモリ | |
US9952779B2 (en) | Parallel scheduling of write commands to multiple memory devices | |
US9632706B2 (en) | Ordering of parallel data storage based on die programming durations | |
US11004524B2 (en) | SSD having a parallelized, multi-level program voltage verification | |
US8995198B1 (en) | Multi-pass soft programming |