記憶體系統
文中所述之實施例一般係有關於一種記憶體系統。
對於相關申請案之交叉參考
本申請案係基於並主張來自日本專利申請案編號2020-157798(2020年9月18日提出申請)之優先權利益,其完整內容被併入本文中以利參考。
已知一種記憶體系統,其包括作用為非揮發性記憶體之NAND型快閃記憶體、及組態成控制非揮發性記憶體之記憶體控制器。
記憶體系統之一個實施例被提供以抑制資料之可靠度的惡化。
通常,依據一個實施例,一種記憶體系統包括一非揮發性記憶體及一記憶體控制器。該非揮發性記憶體包括複數群組,各包括複數記憶體單元。該記憶體控制器係組態成基於該第一群組之一寫入程序中的一第一溫度及在該第一群組之該寫入程序滿足一第一條件後的一第二溫度來判定是否執行一刷新程序。
於下文中,將參考圖形以描述實施例。在以下的描述中,具有相同功能及組態之構成元件將由共同的參考符號來標示。為了彼此分辨具有共同參考符號之複數構成元件,額外符號被添加在共同參考符號後面。假如構成元件無須被特定地彼此分辨,則僅使用共同參考符號而無額外符號。
1. 第一實施例
將描述一種依據一第一實施例之記憶體系統。
1.1 組態
將描該第一實施例。以下,將描述一種記憶體系統,其包括當作一非揮發性記憶體之一NAND快閃記憶體。
1.1.1 記憶體系統
首先,將參考圖1以描述包括該記憶體系統之一組態。
如圖1中所示,記憶體系統1被耦合至外部主機裝置2,並組態成依據來自主機裝置2之指令以執行各種操作。記憶體系統1包括非揮發性記憶體10、揮發性記憶體20、及記憶體控制器30。非揮發性記憶體10、揮發性記憶體20、及記憶體控制器30可被(例如)結合以組態單一半導體裝置;此一組態之範例包括記憶卡(諸如SD
TM卡)、通用快閃儲存(UFS)裝置、及固態硬碟(SSD)。
非揮發性記憶體10(於下文中稱為NAND快閃記憶體10)包括(例如)複數晶片10-0至10-N,各包括複數記憶體單元(N係一或更大的整數)。NAND快閃記憶體10非揮發性地儲存由主機裝置2所指示之待寫入資料。再者,NAND快閃記憶體10經由記憶體控制器30以將由主機裝置2所指示之待讀取資料輸出至主機裝置2。
揮發性記憶體20係(例如)動態隨機存取記憶體(DRAM)並儲存用於管理NAND快閃記憶體10之韌體、及各種管理資訊。揮發性記憶體20於下文中被稱為DRAM 20。DRAM 20亦儲存(例如)溫度管理資訊21及刷新保留資訊22,當作用於抑制NAND快閃記憶體10中所儲存之資料的可靠度之惡化的資訊。
當作溫度管理資訊21,其中已儲存資料之NAND快閃記憶體10的儲存區域以及其上已寫入資料之相關於溫度的資訊被彼此關聯地儲存。
刷新保留資訊22儲存了儲存區域之列表,其中刷新程序將被履行在已寫入資料之NAND快閃記憶體10的儲存區域之間。
刷新程序包括(例如)在執行錯誤校正程序(稍後描述)之後將已被寫入NAND快閃記憶體10中之一儲存區域中的資料寫入另一儲存區域中,藉此減少當該資料被讀出時將被檢測到的錯誤之數目(例如,錯誤位元之數目)。
記憶體控制器30包括處理器(CPU)31、緩衝記憶體32、主機介面電路33、錯誤檢查及校正(ECC)電路34、NAND介面電路35、及DRAM介面電路36。記憶體控制器30之組件31至36的各者之功能(其將被描述於下)可由專用硬體、程式(韌體)、或硬體資源與韌體之組合來實現。
處理器31藉由將唯讀記憶體(ROM)中所儲存之韌體載入隨機存取記憶體(RAM)中並執行該韌體來控制記憶體控制器30之整體操作。例如,在接收到來自主機裝置2之寫入請求時,處理器31回應於此以履行寫入程序。類似程序被履行在讀取程序及抹除程序之時刻。
緩衝記憶體32係(例如)靜態隨機存取記憶體(SRAM),並暫時地儲存其記憶體控制器從NAND快閃記憶體10所讀取的資料、及從主機裝置2所接收的資料。
主機介面電路33經由主機匯流排而被耦合至主機裝置2,並實施介於記憶體控制器30與主機裝置2之間的通訊。主機匯流排係符合(例如)SD
TM介面、串列裝附SCSI(小型電腦系統介面)(SAS)、串列ATA(先進技術裝附)(SATA)、或PCI(快速周邊組件互連)
TM(PCIe)之匯流排。
ECC電路34對從NAND快閃記憶體10所讀取的資料履行錯誤檢測程序及錯誤校正程序。換言之,ECC電路34產生錯誤校正碼並在寫入程序中提供具該有錯誤校正碼之資料、以及在讀取程序中解碼該錯誤校正碼,以檢測是否有錯誤位元。假如檢測到錯誤位元,則ECC電路34便指明該錯誤位元之位置並校正該錯誤位元。用於錯誤校正之方法包括(例如)硬位元解碼(硬決定解碼)及軟位元解碼(軟決定解碼)。當作用於硬決定解碼之碼,可使用Bose-Chaudhuri-Hocquenghem(BCH)碼、Reed-Solomon(RS)碼,等等。當作用於軟決定解碼之碼,可使用低密度同位檢查(LDPC),等等。
NAND介面電路35經由NAND匯流排而被耦合至NAND快閃記憶體10,以實施與NAND快閃記憶體10之通訊。NAND介面電路35控制在記憶體控制器30與NAND快閃記憶體10之間的資料、命令、及位址之轉移,並可獨立地控制在NAND快閃記憶體10中之晶片10-0至10-N。NAND介面電路35符合NAND介面標準。
DRAM介面電路36被耦合至DRAM 20,並控制介於記憶體控制器30與DRAM 20之間的通訊。DRAM介面電路36符合DRAM介面標準。
1.1.2 晶片
接下來,將參考圖2以描述非揮發性記憶體中之晶片的組態。圖2顯示當作範例之晶片10-0的組態。因為晶片10-1至10-N(其係晶片10-0以外的晶片)具有如晶片10-0的相同組態,所以將省略晶片10-1至10-N之描述。
如圖2中所示,晶片10-0包括(例如)輸入/輸出電路11、暫存器集12、邏輯控制器13、定序器14、溫度感測器15、電壓產生器16、記憶體單元陣列17、列解碼器模組18、及感測放大器模組19。
輸入/輸出電路11傳輸並接收8位元寬度之輸入/輸出信號I/O1至I/O8(例如)至及自記憶體控制器30。輸入/輸出信號I/O可包括資料DAT、狀態STS、位址ADD、及命令CMD。輸入/輸出電路11亦傳輸並接收資料DAT至及自感測放大器模組19。
暫存器集12包括狀態暫存器12A、位址暫存器12B、及命令暫存器12C。狀態暫存器12A、位址暫存器12B、及命令暫存器12C各別地儲存狀態STS、位址ADD、及命令CMD。
狀態STS係依據(例如)定序器14之操作狀態而被更新。狀態STS係基於來自記憶體控制器30之指令而從狀態暫存器12A被轉移至輸入/輸出電路11,並輸出至記憶體控制器30。位址ADD係從輸入/輸出電路11被轉移至位址暫存器12B,並可包括(例如)晶片位址、區塊位址、頁面位址、及欄位位址。命令CMD係從輸入/輸出電路11被轉移至命令暫存器12C,並包括用於晶片10-0之各種操作的命令。
邏輯控制器13基於從記憶體控制器30所接收之控制信號來控制輸入/輸出電路11及定序器14。此等控制信號包括(例如)晶片致能信號CEn、命令閂鎖致能信號CLE、位址閂鎖致能信號ALE、寫入致能信號WEn、讀取致能信號REn、及寫入保護信號WPn。邏輯控制器13對記憶體控制器30通知控制信號,例如,備妥/忙碌信號RBn,其被接收自定序器14。
晶片致能信號CEn係用以致能晶片10-0之信號。命令閂鎖致能信號CLE係用以通知輸入/輸出電路11其一已接收輸入/輸出信號I/O為命令CMD之信號。位址閂鎖致能信號ALE係用以通知輸入/輸出電路11其一已接收輸入/輸出信號I/O為位址ADD之信號。寫入致能信號WEn係用以指示輸入/輸出電路11在其中輸入一輸入/輸出信號I/O之信號。讀取致能信號REn係用以指示輸入/輸出電路11從該處輸出一輸入/輸出信號I/O之信號。寫入保護信號WPn係用以在當電力被開啟或關斷時將晶片10-0置於受保護狀態。
備妥/忙碌信號RBn係用以通知記憶體控制器30有關晶片10-0是在備妥狀態或是在忙碌狀態之信號。在本申請案中,「備妥狀態」指的是晶片10-0已準備好接受來自記憶體控制器30之命令,而「忙碌狀態」指的是晶片10-0尚未準備好接受來自記憶體控制器30之命令。
定序器14控制晶片10-0之完整操作。例如,定序器14基於儲存在命令暫存器12C中之命令CMD及儲存在位址暫存器12B中之位址ADD來履行讀取程序、寫入程序、及抹除程序。定序器14導致狀態暫存器12A儲存(例如)從溫度感測器15所獲取之溫度資訊以當作狀態STS,並經由輸入/輸出電路11以輸出溫度資訊至記憶體控制器30。溫度資訊可被輸出至記憶體控制器30,並非當作狀態STS而是當作狀態STS以外的資訊。
溫度感測器15被提供在晶片10-0中,且測量(例如)記憶體單元陣列17之溫度。溫度感測器15將關於測得溫度之資訊傳送至定序器14。溫度感測器15可不直接地測量記憶體單元陣列17之溫度。溫度感測器15可測量(例如)除了記憶體單元陣列17外之部分的溫度。在此情況下,記憶體單元陣列17之溫度可由定序器14基於由溫度感測器15所測得的溫度來估計。
電壓產生器16產生用於(例如)讀取程序、寫入程序、及抹除程序中之電壓。電壓產生器16將已產生電壓供應至記憶體單元陣列17、列解碼器模組18、及感測放大器模組19。
記憶體單元陣列17包括複數平面PB。在圖2所示之範例中的複數平面PB包括兩個平面PB0及PB1。平面PB之各者包括複數區塊BLK0至BLKn(其中n為一或更大的整數)。平面PB係可彼此平行地操作。區塊BLK係複數記憶體單元電晶體之一群組,其係組態成以非揮發性方式儲存資料,且被使用為(例如)用於抹除程序之單元。各記憶體單元電晶體係關連與單一位元線BL及單一字元線WL。
列解碼器模組18基於區塊位址以選擇一區塊BLK,在其上執行各種程序。列解碼器模組18將供應自電壓產生器16之電壓轉移至經選擇區塊BLK中之字元線WL等等。
感測放大器模組19在讀取程序中讀取來自記憶體單元陣列17之資料,並將經讀取資料轉移至輸入/輸出電路11。感測放大器模組19依據從輸入/輸出電路11所接收的資料以在寫入程序中施加預定電壓至位元線BL。
1.1.3 記憶體單元陣列
接下來,將描述依據第一實施例之非揮發性記憶體的晶片中所包括之記憶體單元陣列的組態。
圖3係顯示依據第一實施例之記憶體單元陣列17的組態之電路圖的範例。在圖3中,繪示在記憶體單元陣列17中之一個區塊BLK。如圖3中所示,區塊BLK包括(例如)四個串單元SU0至SU3。
各串單元SU包括複數NAND串NS,其係各別地關連與位元線BL0至BLm(m為一或更大的整數)。NAND串NS包括(例如)記憶體單元電晶體MT0至MT7及選擇電晶體ST1和ST2。
各記憶體單元電晶體MT包括控制閘及電荷儲存層,並以非揮發性方式儲存資料。選擇電晶體ST1及ST2之各者被用以在履行各種程序之時刻選擇串單元SU。
在各NAND串NS中,記憶體單元電晶體MT0至MT7被串聯耦合。選擇電晶體ST1被耦合在記憶體單元電晶體MT0至MT7之串列的一末端與相關位元線BL之間。選擇電晶體ST2之汲極被耦合至記憶體單元電晶體MT0至MT7之串列的另一末端。選擇電晶體ST2之源極被耦合至源極線CELSRC。
包括在相同區塊BLK中之串單元SU0至SU3中的選擇電晶體ST1之閘極被各別地共同耦合至選擇閘極線SGD0至SGD3。記憶體單元電晶體MT0至MT7之控制閘被各別地共同耦合至字元線WL0至WL7。選擇電晶體ST2之閘極被個別地共同耦合至選擇閘極線SGS。
位元線BL0至BLm係由複數區塊BLK所共用。相應於相同欄位位址之NAND串NS被共同耦合至相同的位元線BL。一組字元線WL0至WL7被提供給各區塊BLK。源極線CELSRC係(例如)由複數區塊BLK所共用。
耦合至單一串單元SU中之共同字元線WL的一組記憶體單元電晶體MT被稱為(例如)格單元CU並使用為用於寫入程序之單元。例如,包括記憶體單元電晶體MT(其各者儲存1位元資料)之格單元CU的儲存能力被定義為「1頁資料」。1頁資料被使用為(例如)用於讀取操作之單元。格單元CU可依據儲存在記憶體單元電晶體MT中之資料的位元數而具有二或更多頁資料之儲存能力。
記憶體單元陣列17之上述電路組態僅一範例,而非限制於此。例如,包括在各區塊BLK中之串單元SU的數目可被判定為任何適當數目。包括在各NAND串NS中的記憶體單元電晶體MT之數目及選擇電晶體ST1和ST2之數目可被個別地判定為任何適當數目。
1.1.4 資料儲存方法
記憶體系統1可使用寫入模式之多個類型。例如,記憶體系統1可使用單階單元(SLC)模式、多階單元(MLC)模式、三階單元(TLC)模式、或四階單元(QLC)模式。SLC模式、MLC模式、TLC模式、及QLC模式各別地為用於儲存1位元資料、2位元資料、3位元資料、4位元資料之寫入模式,在單一記憶體單元電晶體MT中。
圖4係依據第一實施例之記憶體系統1中之記憶體單元電晶體MT的臨限電壓分佈之範例。圖4顯示臨限電壓分佈及讀取電壓群組之四個類型,當各別地使用SLC模式、MLC模式、TLC模式、及QLC模式時。在圖4所示之臨限電壓分佈中,垂直軸表示記憶體單元電晶體MT之數目,而水平軸表示記憶體單元電晶體MT之臨限電壓Vth。如圖4中所示,複數記憶體單元電晶體MT依據所施加的寫入模式(換言之,已儲存資料之位元數)來形成複數臨限電壓分佈。
當使用SLC模式(1位元/單元)時,複數記憶體單元電晶體MT之臨限電壓形成兩個臨限電壓分佈。這兩個分佈被各別地稱為「Er」狀態及「A」狀態,從較低至較高臨限電壓。在SLC模式中,具有不同值之1位元資料被各別地指派給「Er」狀態及「A」狀態。
當使用MLC模式(2位元/單元)時,複數記憶體單元電晶體MT之臨限電壓形成四個臨限電壓分佈。這四個分佈被各別地稱為「Er」狀態、「A」狀態、「B」狀態、及「C」狀態,從較低至較高臨限電壓。在MLC模式中,具有不同值之2位元資料被各別地指派給「Er」狀態至「C」狀態。
當使用TLC模式(3位元/單元)時,複數記憶體單元電晶體MT之臨限電壓形成八個臨限電壓分佈。這八個分佈被各別地稱為「Er」狀態、「A」狀態、「B」狀態、「C」狀態、「D」狀態、「E」狀態、「F」狀態、及「G」狀態,從較低至較高臨限電壓。在TLC模式中,具有不同值之3位元資料被各別地指派給「Er」狀態至「G」狀態。
當使用QLC模式(4位元/單元)時,複數記憶體單元電晶體MT之臨限電壓形成十六個臨限電壓分佈。這十六個分佈被各別地稱為「Er」狀態、「A」狀態、「B」狀態、「C」狀態、「D」狀態、「E」狀態、「F」狀態、「G」狀態、「H」狀態、「I」狀態、「J」狀態、「K」狀態、及「O」狀態,從較低至較高臨限電壓。在QLC模式中,具有不同值之4位元資料被各別地指派給「Er」狀態至「O」狀態。
在各寫入模式中,讀取電壓被設定在兩個相鄰臨限分佈之間。明確地,讀取電壓VA被設定在「Er」狀態中的最大臨限電壓與「A」狀態中的最小臨限電壓之間。類似地,讀取電壓VB被設定在「A」狀態與「B」狀態之間。讀取電壓VC被設定在「B」狀態與「C」狀態之間。讀取電壓VD被設定在「C」狀態與「D」狀態之間。讀取電壓VE被設定在「D」狀態與「E」狀態之間。讀取電壓VF被設定在「E」狀態與「F」狀態之間。讀取電壓VG被設定在「F」狀態與「G」狀態之間。讀取電壓VH被設定在「G」狀態與「H」狀態之間。讀取電壓VI被設定在「H」狀態與「I」狀態之間。讀取電壓VJ被設定在「I」狀態與「J」狀態之間。讀取電壓VK被設定在「J」狀態與「K」狀態之間。讀取電壓VL被設定在「K」狀態與「L」狀態之間。讀取電壓VM被設定在「L」狀態與「M」狀態之間。讀取電壓VN被設定在「M」狀態與「N」狀態之間。讀取電壓VO被設定在「N」狀態與「O」狀態之間。
在各寫入模式中,讀取通過電壓VREAD被設定至高於最高臨限電壓分佈之最大臨限電壓的電壓。讀取通過電壓VREAD所被施加至之記憶體單元電晶體MT被開啟,無論其中所儲存的資料。
儲存在單一記憶體單元電晶體MT中之資料的上述位元數僅係一範例,且不限於此。例如,5或更多位元資料可被儲存在記憶體單元電晶體MT中。讀取電壓及讀取通過電壓之各者可被設定在各寫入模式中之相同電壓值,或可被設定在不同電壓值。
圖4繪示其中臨限電壓分佈不重疊之一情況。然而,實際上,臨限電壓分佈可由於各種因素而變化並重疊。在此情況下,錯誤資料可被讀取自相應於兩相鄰臨限值分佈之間的重疊部分之記憶體單元電晶體MT,其係不想要的。
圖5係顯示由於依據第一實施例之記憶體單元電晶體MT的臨限電壓分佈之重疊所致的錯誤位元之數目的示意圖。在圖5中,假設其MLC模式被使用為一範例。藉由使用相應於「B」狀態及「C」狀態之兩個臨限電壓分佈為一範例,圖5繪示基於在寫入程序與讀取程序之間的溫度差異之臨限電壓分佈的變化,當作其改變臨限電壓分佈之因素的範例。更明確地,圖5(A)顯示臨限電壓分佈之重疊的狀態,在其中寫入程序中之溫度與讀取程序中之溫度係相等的情況下(於下文中稱為情況(A))。圖5(B)及圖5(C)各別地顯示臨限電壓分佈之重疊的狀態,在其中寫入程序中之溫度與讀取程序中之溫度係顯著地不同的情況下(於下文中稱為情況(B)及情況(C))。
如圖5(A)至圖5(C)中所示,在情況(B)及情況(C)下,臨限電壓分佈之重疊狀態係明顯地不同於在情況(A)下之狀態。在圖5(A)至圖5(C)之各者中的陰影部分之區域係相應於其被判定為儲存相應於針對「C」狀態之錯誤的「B」狀態之資料的記憶體單元電晶體MT之數目與其被判定為儲存相應於針對「B」狀態之錯誤的「C」狀態之資料的記憶體單元電晶體MT之數目的總和(於下文中稱為錯誤位元NE_BC之數目)。假如讀取電壓VC被設定在相應於兩個臨限電壓分佈之交點的電壓處,則該區域可為最小的。在情況(B)下,相應於兩個臨限電壓分佈之交點的電壓係改變自情況(A)下的電壓。因此,假如資料係藉由使用讀取電壓VC來讀取,則錯誤位元NE_BC之數目(其相應於圖5(B)中之陰影部分的區域)將大於情況(A)下之數目。
再者,如圖5(A)至圖5(C)中所示,在情況(C)下之兩個臨限電壓分佈比在情況(A)下之臨限電壓分佈更寬。因此,即使讀取極電壓被再設定至相應於在情況(C)下之兩個臨限電壓分佈的交點之電壓VC’,錯誤位元NE_BC之數目(其相應於圖5(C)中之陰影部分的區域)將大於情況(A)下之數目。
因此,在情況(B)及(C)下,因為錯誤位元NE_BC之數目大於在情況(A)下之數目,所以藉由ECC電路34之錯誤校正程序中的故障之可能性可能很高,其不是理想的。為了避免此一情況,記憶體控制器30儲存溫度管理資訊21以判定是否需要刷新程序,並將判定結果儲存在刷新保留資訊22中。
1.1.5 溫度管理資訊
接下來,將描述依據第一實施例之溫度管理資訊的組態。圖6係闡明依據第一實施例之記憶體系統1的組態之範例的概念圖。
如圖6中所示,在溫度管理資訊21中,低溫旗標被儲存於各預定儲存區域(亦即,溫度管理單元),針對NAND快閃記憶體10中之所有儲存區域。低溫旗標指示記憶體單元陣列17之溫度是否為低,當資料被寫入相應溫度管理單元之儲存區域中時。假如當資料被寫入時記憶體單元陣列17之溫度為低,則「真」被儲存在低溫旗標中;而假如不是,則「偽」被儲存在低溫旗標中。溫度是否為低係由記憶體控制器30所判定,例如,基於傳送自NAND快閃記憶體10之溫度感測器15的溫度資訊。在其中並無資料被寫入之溫度管理單元的低溫旗標中,例如,「偽」被儲存。
圖6顯示其中溫度管理單元為字元線WL之範例。更明確地,圖6顯示一情況,其中一個低溫旗標被配置給一個格單元CU(亦即,耦合至相同區塊BLK中之相同字元線WL的所有記憶體單元電晶體MT)。
在圖6之範例中,「真」被設定至與晶片Chip0之區塊BLK0中之字元線WL0至WL5相關聯的六個低溫旗標,而「偽」被設定至與字元線WL6及WL7相關聯的兩個低溫旗標。參考該資訊,記憶體控制器30辨識其記憶體單元陣列17是在低溫狀態下,當資料被寫入耦合至晶片Chip0中之區塊BLK0中的字元線WL0至WL5之記憶體單元中時。記憶體控制器30亦辨識其記憶體單元陣列17不在低溫狀態下,當資料被寫入耦合至晶片Chip0中之區塊BLK0中的字元線WL6及WL7之記憶體單元中時。
上述組態容許記憶體控制器30確認當資料被寫入時在NAND快閃記憶體10中之所有儲存區域的溫度狀態。
1.1.6 刷新保留資訊
接下來,將描述依據第一實施例之刷新保留資訊的組態。圖7係闡明依據第一實施例之記憶體系統1中之刷新保留資訊22的組態之範例的概念圖。
如圖7中所示,刷新保留資訊22將儲存區域之刷新程序保留區域儲存在NAND快閃記憶體10中,例如,針對執行刷新程序之單元。刷新程序之執行單元係(例如)區塊BLK。圖7顯示:刷新保留資訊22儲存其包括在晶片Chip0之區塊BLK0及區塊BLK1中之儲存區域被保留給刷新程序,當刷新程序之執行單元為區塊BLK時。
記憶體控制器30參考刷新保留資訊22,藉此執行刷新程序,例如依區塊BLK之單元中的保留之順序,在其包括複數溫度管理單元之保留區塊BLK上。注意:刷新程序之執行單元不限於區塊BLK,而可為溫度管理單元(例如,字元線WL)。
1.2 操作
接下來,將描述依據第一實施例之記憶體系統中的操作。
1.2.1 溫度管理資訊之更新程序
首先,將描述在依據第一實施例之記憶體系統中的寫入程序中所涉及的溫度管理資訊之更新程序。
圖8係顯示依據第一實施例之記憶體系統中的溫度管理資訊21之更新程序的流程圖。
如圖8中所示,在步驟ST11中,記憶體系統1履行寫入程序。明確地,例如,記憶體控制器30回應於來自主機裝置2之寫入請求以發送寫入命令集,並將其傳送至NAND快閃記憶體10。寫入命令集包括(例如)一命令(其指示NAND快閃記憶體10執行寫入程序)、一位址(其指明資料所將被寫入之儲存區域)、及資料(其將被寫入儲存區域中)。於接收到寫入命令集時,NAND快閃記憶體10將寫入命令集中所包括之資料寫入指定位址之儲存區域中。
在步驟ST12中,記憶體控制器30從NAND快閃記憶體10獲取關於在寫入程序之時刻的溫度(於下文中稱為「在寫入程序時刻之溫度」)之資訊。明確地,例如,記憶體控制器30發送溫度讀取命令,並將其傳送至NAND快閃記憶體10。溫度讀取命令係(例如)狀態讀取命令。於接收到溫度讀取命令時,NAND快閃記憶體10將關於由溫度感測器15所測量之溫度的資訊傳送至記憶體控制器30。
在圖8之範例中,步驟S12之程序被執行在步驟S11之程序後;然而,實施例不限於此範例。步驟ST12之程序可(例如)與步驟ST11之程序並行地被執行;用於獲得在寫入程序期間之溫度的時序可為在寫入程序之執行期間的任何時序。再者,例如,步驟ST12之程序可被履行在步驟ST11之程序前。
記憶體控制器30可獲取在寫入程序時刻之溫度,例如,每次一個字元線WL之寫入程序被執行時。在此情況下,因為一個字元線WL之寫入程序被完成於數毫秒內,所以無論在寫入程序中之任何時序獲得溫度均不會發生顯著的差異。因此,記憶體控制器30可獲取在針對一個字元線WL之寫入程序中的某時序測量一次的溫度,當作在寫入程序時刻之溫度。
再者,例如,記憶體控制器30可獲取在寫入程序時刻之溫度,每次一個區塊BLK之寫入程序被執行時。在此情況下,溫度可在寫入程序期間極顯著地改變。因此,記憶體控制器30可獲取在針對一個區塊BLK之寫入程序期間的複數某些時序(例如,在寫入程序之開始及結束時)所測量之複數溫度。在該情況下,記憶體控制器30可將複數經獲取溫度之平均值使用為在寫入程序時刻之溫度。替代地,記憶體控制器30可將在針對一個區塊BLK之寫入程序期間的複數預定時序所測量之複數溫度的最低值使用為在寫入程序時刻之溫度。
在步驟ST13中,記憶體控制器30判定在步驟ST12中所獲取之寫入程序時刻的溫度是否低於臨限值Tth1。記憶體控制器30將臨限值Tth1使用為用以判定在寫入程序時刻之溫度是否為低的臨限值。
假如在寫入程序時刻之溫度低於臨限值Tth1(步驟ST13;是),則記憶體控制器30判定其在寫入程序時刻之溫度為低,且程序進行至步驟ST14。在步驟ST14中,記憶體控制器30將相應於寫入目標區域(其中在寫入程序時刻之溫度係低於臨限值Tth1)之溫度管理單元的低溫旗標設為「真」。
另一方面,假如在寫入程序時刻之溫度等於或高於臨限值Tth1(步驟ST13;否),則記憶體控制器30判定其在寫入程序時刻之溫度非為低,且程序進行至步驟ST15。在步驟ST15中,記憶體控制器30將相應於寫入目標區域(其中在寫入程序時刻之溫度係等於或高於臨限值Tth1)之溫度管理單元的低溫旗標設為「偽」。
因而完成了寫入程序及用於寫入程序中所涉及之溫度管理資訊21的更新程序。
1.2.2 刷新保留判定程序
接下來,將描述依據第一實施例之記憶體系統中的刷新保留判定程序。圖9係顯示依據第一實施例之記憶體系統1中的刷新保留判定程序之流程圖。圖9中所示之刷新保留判定程序的步驟ST21至ST24係由(例如)記憶體控制器30來週期性地執行。
如圖9中所示,在步驟ST21中,記憶體控制器30從NAND快閃記憶體10獲取關於當判定是否保留刷新程序時所使用之溫度(於下文中稱為「在刷新程序判定時刻之溫度」)的資訊。注意:當獲取在刷新程序判定時刻之溫度時,記憶體控制器30將在一個時點之一個溫度獲取為在刷新程序判定時刻之溫度。因此,用於獲取在刷新程序判定時刻之溫度的方法不同於用於獲取在寫入程序時刻之溫度的方法,其中複數溫度之代表值係透過某段時間週期來獲取。
在步驟ST22中,記憶體控制器30判定在步驟ST21中所獲取的在刷新程序判定時刻之溫度是否等於或高於臨限值Tth2。記憶體控制器30將臨限值Tth2使用為用以判定在刷新程序判定時刻之溫度是否已顯著地增加自在寫入程序時刻之溫度,針對具有低溫旗標「真」之溫度管理單元。臨限值Tth2係高於臨限值Tth1(亦即,Tth2>Tth1)。
假如在刷新程序判定時刻之溫度係等於或高於臨限值Tth2(步驟ST22;是),則程序進行至步驟ST23。假如在刷新程序判定時刻之溫度係低於臨限值Tth2(步驟ST22;否),則步驟ST23及ST24被省略。
在步驟ST23中,記憶體控制器30保留刷新程序給具有低溫旗標「真」之所有溫度管理單元。明確地,記憶體控制器30參考溫度管理資訊21以選擇具有低溫旗標「真」之所有溫度管理單元。接著,記憶體控制器30儲存其包括所有選定溫度管理單元之區塊BLK的刷新程序被保留之資訊,在刷新保留資訊22中。
在步驟ST24中,記憶體控制器30將其刷新程序已被保留之所有溫度管理單元的低溫旗標設為「偽」。
因而完成刷新保留判定程序。
記憶體控制器30可在任何時序執行經保留刷新程序。
明確地,例如,記憶體控制器30發送包括刷新程序目標區塊BLK之位址的讀取指令集,並將讀取指令集傳送至NAND快閃記憶體10。於接收到讀取指令集時,NAND快閃記憶體10從刷新程序目標區塊BLK讀取資料,並將已讀取資料輸出至記憶體控制器。於接收到來自NAND快閃記憶體10之已讀取資料時,在記憶體控制器30中之ECC電路34執行針對已讀取資料之錯誤校正程序,並獲取已錯誤校正資料。
記憶體控制器30發送包括已錯誤校正資料之寫入命令集,並將寫入命令集傳送至NAND快閃記憶體10。於接收到寫入命令集時,NAND快閃記憶體10將已錯誤校正資料寫入不同於刷新程序目標區塊BLK之另一區塊BLK中。替代地,NAND快閃記憶體10從刷新程序目標區塊BLK抹除已寫入資料,且之後將已錯誤校正資料寫入刷新程序目標區塊BLK中。接著,記憶體控制器30將其指示刷新程序目標區塊BLK之資訊從刷新保留資訊22無效化。
因而完成刷新程序。
1.2.3 記憶體系統的狀態與溫度之間的關係
圖10係顯示依據第一實施例之記憶體系統1的狀態與溫度變遷之間的關係之圖形。圖10顯示從關斷狀態之記憶體系統1的啟動至再次回到關斷狀態之序列的範例,及以時序方式在狀態之變遷中所涉及的記憶體系統1之溫度改變。
如圖10中所示,記憶體系統1處於關斷狀態直到時刻t0。在關斷狀態下,記憶體系統1被維持在溫度Tp0。溫度Tp0係其中放置有記憶體系統1之roman環境的溫度,例如,5℃。溫度Tp0可係20℃或25℃,且不限於這些範例,因為其可由使用者所設定。
在時刻t0,開始對於記憶體系統1之電力供應。因此,記憶體系統1執行啟動程序,諸如開機讀取程序。再者,記憶體系統1執行(例如)主機程序,其包括依據來自主機裝置2之請求的讀取程序及寫入程序。記憶體系統1亦執行背景程序,其係非基於來自主機裝置2之請求的程序(當需要時)。因此,記憶體系統1之溫度增加自溫度Tp0,並在時刻t1達到溫度Tp1(>Tp0)。溫度Tp1係(例如)45℃。在圖10中,在當記憶體系統1之溫度等於或高於溫度Tp0及等於或低於溫度Tp1時的週期中記憶體系統1之狀態被稱為「啟動狀態」。
之後,當主機程序及背景程序被執行時,記憶體系統1之溫度仍在時刻t1後增加並在時刻t2達到溫度Tp2 (>Tp1)。溫度Tp2係(例如)70℃。接著,在從時刻t2至時刻t3之週期中,藉由主機程序及背景程序之執行所產生的熱係利用透過溫度控制機制(未顯示)之熱排出來平衡,且記憶體系統1之溫度在溫度Tp2變穩定。在圖10中,在當記憶體系統1之溫度穩定時從時刻t2至時刻t3之週期中,記憶體系統1之狀態被稱為「穩定狀態」。
在時刻t3,記憶體系統1之溫度開始減少,例如,由於缺乏來自主機裝置2之請求。因為背景程序在時刻t3之後仍被執行,所以記憶體系統1之溫度在時刻t4再次變穩定於溫度Tp1。在圖10中,從當記憶體系統1之溫度開始從溫度Tp2減少的時刻至當溫度被維持穩定於溫度Tp1的時刻t5之週期被稱為「閒置狀態」。溫度Tp1可係所有狀態之最低溫度,其中溫度在記憶體系統1之開機狀態下係穩定的。記憶體系統1可將臨限值Tth1設定至低於溫度Tp1之溫度。
在時刻t5,主機程序被再次執行。因此,記憶體系統1之溫度增加並在時刻t6達到溫度Tp2。在從時刻t6至時刻t7之週期中,記憶體系統1係再次處於穩定狀態。
在時刻t7,針對記憶體系統1之電力供應被停止,且記憶體系統1處於關斷狀態。因此,在記憶體系統1中之主機程序及背景程序被停止,且記憶體系統1之溫度減少至溫度Tp0。
記憶體系統1之序列因此完成。
基於在圖10中所示之序列中的各別狀態下之溫度Tp0至Tp2,記憶體控制器30將臨限值Tth1及Tth2設定在溫度Tp0與Tp1之間。臨限值Tth2低於溫度Tp1,並設定至一範圍,例如,在30℃與40℃之間(30℃<Tth2<40℃)。臨限值Tth1低於臨限值Tth2,並設定至一範圍,例如,在10℃與30℃之間(10℃<Tth1<30℃)。結果,記憶體控制器30可避免刷新程序被無盡地重複在穩定狀態及閒置狀態。
1.3 本實施例之效果
依據第一實施例,當在某儲存區域之寫入程序時刻的溫度低於臨限值Tth1且在寫入程序後之該某儲存區域的溫度等於或高於臨限值Tth2時,記憶體控制器30便保留該某儲存區域之刷新程序。因此,在其已被寫入於啟動狀態下之資料的穩定狀態(或閒置狀態)下之讀取程序中,有可能以較高溫度再寫入其已被寫入於啟動狀態下之資料,在已讀取資料中所包括之錯誤位元的數目超過藉由ECC電路34之軟決定解碼的校正能力以前。為了此原因,可抑制由於寫入程序與讀取程序之間的溫度差所致之臨限電壓分佈的變化,使得可抑制在已讀取資料中所包括之錯誤位元的數目之增加。因此,可抑制資料之可靠度的惡化。
當作補充解釋,在圖10所示之序列中,在啟動狀態與穩定狀態之間的溫度差大於在閒置狀態與穩定狀態之間的溫度差以及在啟動狀態與閒置狀態之間的溫度差。因此,當在啟動狀態下所寫入的資料被讀取在穩定狀態下時,已讀取資料之可靠度受損的可能性比以下狀況下更高:當在閒置狀態下所寫入的資料(例如,透過背景程序)被讀取在穩定狀態下時以及當在啟動狀態下所寫入的資料被讀取在閒置狀態下時(例如,透過背景程序)。
依據第一實施例,在用於溫度管理資訊21之更新程序中,記憶體控制器30針對各溫度管理單元設定低溫旗標「真」,相關於其中資料被寫入在當NAND快閃記憶體10之溫度低於臨限值Tth1時的儲存區域。結果,記憶體控制器30可指明其中資料被寫入在低溫狀態下之一儲存區域,特別是接近溫度Tp0,在啟動狀態下。再者,在刷新保留判定程序中,記憶體控制器30保留設定低溫旗標「真」之所有溫度管理單元的刷新程序,當NAND快閃記憶體10之溫度等於或高於臨限值Tth2時。為了此原因,直到記憶體系統1變為穩定狀態(例如,在閒置狀態下),記憶體控制器30可保留設定低溫旗標「真」之所有溫度管理單元的刷新程序之執行。因此,有可能避免以下情況:當在低溫時刻所寫入之資料被讀取在高溫時刻時所檢測到的錯誤位元之數目超過藉由ECC電路34之軟決定解碼的校正能力。
2. 第二實施例
接下來,將描述一種依據第二實施例之記憶體系統。第二實施例與第一實施例之差異在於:臨限值並未針對在刷新程序判定時刻之溫度以及在寫入程序時刻之溫度來個別地設定。取而代之,在第二實施例中,臨限值係針對介於在刷新程序判定時刻之溫度與在寫入程序時刻之溫度之間的差異來設定。於下文中,將省略如第一實施例之那些的相同組態及操作之描述,且將主要描述與第一實施例不同的組態及操作。
2.1 溫度管理資訊
圖11係闡明依據第二實施例、且相應於第一實施例中之圖6的記憶體系統之組態的範例之概念圖。
如圖11中所示,溫度管理資訊21A儲存在寫入程序時刻之溫度,而非低溫旗標,針對在NAND快閃記憶體10中之所有儲存區域中的各溫度管理單元。
圖11之範例顯示一種情況,其中在寫入程序時刻之溫度T0至T7被儲存在關聯與晶片Chip0之區塊BLK0中的字元線WL0至WL7中。參考該資訊,記憶體控制器30可明確地確認在各溫度管理單元中之寫入程序時刻的溫度。
2.2 溫度管理資訊之更新程序
圖12係顯示依據第二實施例、並相應於第一實施例中之圖8的記憶體系統中之溫度管理資訊21A的更新程序之流程圖。
如圖12中所示,在步驟ST31中,記憶體系統1履行寫入程序。由於寫入程序之細節係類似於圖8中之步驟ST11的那些,省略了其描述。
在步驟ST32中,記憶體控制器30從NAND快閃記憶體10獲取在寫入程序時刻之溫度。由於獲取在寫入程序時刻之溫度的程序類似於圖8中之步驟ST12的程序,省略了其描述。
在步驟ST33中,記憶體控制器30儲存相應於寫入目標區域之溫度管理單元的寫入程序時刻之溫度。
因此完成溫度管理資訊21A之更新程序。
2.3 刷新保留判定程序
圖13係顯示依據第二實施例、並相應於第一實施例中之圖9的記憶體系統中之刷新保留判定程序的流程圖。圖13中所示之刷新保留判定程序的步驟ST41至ST45係由(例如)記憶體控制器30來週期性地執行。
如圖13中所示,在步驟ST41中,記憶體控制器30獲取在刷新程序判定時刻之溫度。由於獲取在刷新程序判定時刻之溫度的程序類似於圖9中之步驟ST21的程序,省略了其描述。
在步驟ST42中,記憶體控制器30選擇(參考溫度管理資訊21A)在寫入程序時刻之溫度所被儲存的溫度管理單元。
在步驟ST43中,記憶體控制器30判定於步驟S41中所獲取的在刷新程序判定時刻之溫度與於步驟ST42中所選擇的在溫度管理單元之寫入程序時刻的溫度之間的差異是否等於或大於臨限值Tth3。臨限值Tth3可被設定(例如)在一範圍內,其中由於在寫入程序時刻的溫度與在讀取程序時刻的溫度之間的差異所致之臨限電壓分佈的變化係可允許的。臨限電壓分佈之變化係可允許的,假如由於臨限電壓分佈之變化而發生的錯誤位元之數目等於或小於其可藉由ECC電路34之錯誤校正程序來校正的錯誤位元之數目的話。
假如該差異係等於或大於臨限值Tth3(步驟ST43;是),則程序進行至步驟ST44。假如該差異係小於臨限值Tth3(步驟ST43;否),則步驟ST44被省略,且程序進行至步驟ST45。
在步驟ST44中,記憶體控制器30將其包括在步驟ST42中所選擇之溫度管理單元的區塊BLK之刷新程序被保留的資訊儲存在刷新保留資訊22中,而因此保留刷新程序。
在步驟ST45中,記憶體控制器30判定在溫度管理資訊21A中所管理的所有溫度管理單元是否已被選擇。假如有尚未被選擇的溫度管理單元(步驟ST45;否),則該程序返回至步驟ST42。以此方式,步驟ST42至ST45被重複直到所有溫度管理單元均被選擇。假如所有溫度管理單元已被選擇器(步驟ST45;是),則刷新保留判定程序被完成。
2.4 本實施例之效果
依據第二實施例,當溫度管理單元具有等於或大於臨限值Tth3的在刷新程序判定時刻之溫度與在寫入程序時刻之溫度之間的差異時,記憶體控制器30便保留該溫度管理單元之刷新程序。因此,可能已被帶至其中不允許臨限電壓之變化的狀態之儲存區域可針對各溫度管理單元而被檢測。因此,因為記憶體控制器30可判定是否保留各溫度管理單元之刷新程序,所以可履行更調適性的控制。
3. 第三實施例
接下來,將描述一種依據第三實施例之記憶體系統。第三實施例與第一及第二實施例的差異在於:即使在寫入程序時刻之溫度及在刷新程序判定時刻之溫度滿足一條件,仍有些溫度管理單元不被保留給刷新程序。於下文中,將省略如第二實施例之那些相同的組態及操作之描述,且將主要描述與第二實施例之那些不同的組態及操作。
3.1 溫度管理資訊
圖14係闡明依據第三實施例、且相應於第二實施例中之圖11的記憶體系統之組態的範例之概念圖。
如圖14中所示,溫度管理資訊21B儲存排除旗標連同在寫入程序時刻之溫度,針對在NAND快閃記憶體10中之所有儲存區域中的各溫度管理單元。排除旗標係用以判定是否針對相應溫度管理單元中之儲存區域保留刷新程序的旗標,即使在寫入程序時刻之溫度及在刷新程序判定時刻之溫度滿足一條件。
假如當刷新程序被保留時並未將在寫入程序時刻之溫度及在刷新程序判定時刻之溫度是否滿足該條件列入考量,則「真」被儲存在排除旗標中。假如當刷新程序被保留時已將在寫入程序時刻之溫度及在刷新程序判定時刻之溫度是否滿足該條件列入考量,則「偽」被儲存在排除旗標中。
在圖14之範例中,「偽」被設定至與晶片Chip0之區塊BLK0中的字元線WL0至WL2及WL5至WL7相關聯的六個排除旗標,而「真」被設定至與字元線WL3及WL4相關聯的兩個排除旗標。參考該資訊,記憶體控制器30辨識其在寫入程序時刻之溫度未被列入考量,當判定是否針對耦合至晶片Chip0中之區塊BLK0中的字元線WL3及WL4之記憶體單元保留刷新程序時。
3.2 溫度管理資訊之更新程序
接下來,將描述在依據第三實施例之記憶體系統中的溫度管理資訊之更新程序的範例。
3.2.1 第一範例
首先描述溫度管理資訊之更新程序的第一範例。在第一範例中,排除旗標係基於其中對於寫入目標區域之存取可能發生的狀態來設定。
圖15係顯示依據第三實施例、並相應於第二實施例中之圖12的記憶體系統中之溫度管理資訊21B的更新程序之第一範例的流程圖。
在步驟ST51至ST53中,記憶體控制器30執行寫入程序並將相應於寫入目標區域之溫度管理單元的在寫入程序時刻之溫度儲存在溫度管理資訊21B中。由於步驟ST51至ST53之程序類似於第二實施例之圖12中所示的步驟ST31至ST33之程序,省略了其描述。
在步驟ST54中,記憶體控制器30判定寫入目標區域是否係其中對於NAND快閃記憶體10之存取(例如,寫入程序、讀取程序)僅發生於啟動狀態下的儲存區域。
假如在寫入目標區域中存取僅發生於啟動狀態下(步驟ST54;真),則程序進行至步驟ST55。在步驟ST55中,記憶體控制器30將相應於寫入目標區域之溫度管理單元的排除旗標設為「真」。
另一方面,假如在寫入目標區域中存取將發生於閒置狀態及穩定狀態下(步驟ST54;偽),則程序進行至步驟ST56。在步驟ST56中,記憶體控制器30將相應於寫入目標區域之溫度管理單元的排除旗標設為「偽」。
記憶體控制器30可事先分辨於穩定狀態及閒置狀態下不會發生存取的資料(例如,存取僅發生於啟動狀態下)與於穩定狀態及閒置狀態下將會發生存取的資料。記憶體控制器30可接著將經分辨資料儲存在NAND快閃記憶體10中之不同儲存區域中。換言之,記憶體控制器30可基於寫入目標區域之位址來設定相應於寫入目標區域之溫度管理單元的排除旗標。於穩定狀態及閒置狀態下不會發生存取的資料被假設為(例如)被讀取在開機讀取程序中的系統資料。於穩定狀態及閒置狀態下不會發生存取的儲存區域被假設為(例如)用以儲存系統資料之系統資料區域。因此,記憶體控制器30可(針對在溫度管理資訊21B中所管理的各溫度管理單元)判定該溫度管理單元是否係將基於寫入目標區域之位址而僅於啟動狀態下被存取的儲存區域。
因此完成溫度管理資訊21B之更新程序。
在步驟ST54中,記憶體控制器30可進一步判定對於穩定狀態及閒置狀態下之寫入目標區域的存取之頻率是否小於臨限值。明確地,假如對於穩定狀態及閒置狀態下之寫入目標區域的存取之頻率係低於臨限值(ST54;真),則程序進行至步驟ST55。假如該頻率係等於或高於臨限值(ST54;偽),則程序進行至步驟ST56。透過上述操作,例如,假如背景程序被執行以低頻率而主機程序未被執行,則刷新程序不被保留。其中背景程序被執行以低頻率而主機程序未被執行之範例被假設為(例如)以規律或不規律間隔執行的讀取程序,用以確認資料是否被正確地讀取(亦即,巡邏程序)等等。
在步驟ST54中,記憶體控制器30可進一步判定排除旗標是否依據寫入目標區域之所欲使用而被設定在寫入目標區域中。明確地,假如寫入目標區域係用於儲存其被假設為以低頻率被存取於穩定狀態及閒置狀態下之資料的儲存區域(ST54;真),則程序進行至步驟ST55。假如寫入目標區域係用於儲存其被假設為以高頻率被存取之資料的儲存區域(ST54;偽),則程序進行至步驟ST56。透過上述操作,記憶體控制器30可判定是否依據事先設定之NAND快閃記憶體10中的儲存區域之所欲使用來設定排除旗標,例如,當記憶體控制器30被設計時,不依據基於實際存取之存取頻率。
3.2.2 第二範例
接下來,描述溫度管理資訊之更新程序的第二範例。在第二範例中,排除旗標係基於寫入模式來設定。明確地,排除旗標係針對其中介於臨限電壓分佈之間的容限相對小之寫入模式而被設為「偽」,而排除旗標係針對其中介於臨限電壓分佈之間的容限相對大之寫入模式而被設為「真」。
圖16係顯示依據第三實施例之記憶體系統中的溫度管理資訊21B之更新程序的第二範例之流程圖。
在步驟ST51至ST53中,記憶體控制器30執行寫入程序並將相應於寫入目標區域之溫度管理單元的在寫入程序時刻之溫度儲存在溫度管理資訊21B中。由於步驟ST51至ST53之程序係類似於第一範例之那些,省略了其描述。
在步驟ST54A中,記憶體控制器30判定SLC模式是否被用於寫入程序。
假如SLC模式被使用,亦即,假如1位元資料被寫入記憶體單元電晶體MT中,(步驟ST54A;真),則程序進行至步驟ST55。在步驟ST55中,記憶體控制器30將相應於寫入目標區域之溫度管理單元的排除旗標設為「真」。
另一方面,假如SLC模式不被使用,亦即,假如2或更多位元資料被寫入記憶體單元電晶體MT中,(步驟ST54A;偽),則程序進行至步驟ST56。在步驟ST56中,記憶體控制器30將相應於寫入目標區域之溫度管理單元的排除旗標設為「偽」。
因此完成溫度管理資訊21B之更新程序。
在上述圖16之情況中,記憶體控制器30將排除旗標設為「真」(假如寫入模式係SLC模式的話);然而,實施例不限於此情況。例如,記憶體控制器30可將排除旗標設為「真」,假如寫入模式係SLC模式或MLC模式。在此情況下,記憶體控制器30將排除旗標設為「偽」,假如寫入模式係TLC模式或QLC模式。
3.3 刷新保留判定程序
圖17係顯示依據第三實施例、並相應於第二實施例中之圖13的記憶體系統中之刷新保留判定程序的流程圖。圖17中所示之刷新保留判定程序的步驟ST61至ST66係由(例如)記憶體控制器30來週期性地執行。
如圖17中所示,在步驟ST61中,記憶體控制器30獲取在刷新程序判定時刻之溫度。由於獲取在刷新程序判定時刻之溫度的程序之細節類似於圖13中之步驟ST41的那些,省略了其描述。
在步驟ST62中,記憶體控制器30參考溫度管理資訊21B,並選擇儲存有在寫入程序時刻之溫度的溫度管理單元。
在步驟ST63中,記憶體控制器30判定在步驟ST62中所選擇之溫度管理單元的排除旗標是否為「偽」。假如排除旗標為「偽」(步驟ST63;是),則程序進行至步驟ST64。假如排除旗標為「真」(步驟ST63;否),則程序進行至步驟ST66。
在步驟ST64中,記憶體控制器30判定於步驟ST61中所獲取的在刷新程序判定時刻之溫度與於步驟ST62中所選擇的在溫度管理單元之寫入程序時刻的溫度之間的差異是否等於或高於臨限值Tth3。由於基於臨限值Tth1之判定程序的細節係類似於圖13中之步驟ST43的那些,省略了其描述。
假如該差異係等於或大於臨限值Tth3(步驟ST64;是),則程序進行至步驟ST65。假如該差異係小於臨限值Tth3(步驟ST64;否),則步驟ST65被省略,且程序進行至步驟ST66。
在步驟ST65中,記憶體控制器30將其包括在步驟ST62中所選擇之溫度管理單元的區塊BLK之刷新程序被保留的資訊儲存在刷新保留資訊22中,而因此保留刷新程序。
在步驟ST66中,記憶體控制器30判定在溫度管理資訊21B中所管理的所有溫度管理單元是否已被選擇。假如有尚未被選擇的溫度管理單元(步驟ST66;否),則該程序返回至步驟ST62。以此方式,步驟ST62至ST66被重複直到所有溫度管理單元均被選擇。假如所有溫度管理單元已被選擇器(步驟ST66,是),則刷新保留判定程序被完成。
3.4 本實施例之效果
依據第三實施例,在溫度管理資訊21B之更新程序中,記憶體控制器30依據溫度管理單元之位址以設定排除旗標。在刷新保留判定程序中,記憶體控制器30不保留具有排除旗標「真」之溫度管理單元的刷新程序,即使在刷新程序判定時刻之溫度及在寫入程序時刻之溫度滿足該條件。因此,刷新程序之執行可被省略,即使針對於低溫狀態下所寫入的資料,假如資料不可能被讀取於高溫狀態下,其中臨限電壓分佈比低溫狀態更顯著地變化。因此,可抑制藉由執行刷新程序之背景程序的頻率之增加。因此,有可能在來自主機裝置2之請求時抑制記憶體系統1之回應性能的減少。亦有可能避免損害已讀取資料之可靠度的風險,其可能發生在當系統資料藉由刷新程序而被再寫入於高溫狀態下且藉由啟動程序而被讀取於啟動狀態下時。
4. 第四實施例
接下來,將描述一種依據第四例之記憶體系統。第四實施例與第一至第三實施例的差異在於其用於判定刷新保留判定程序之準則係依據NAND快閃記憶體10之損耗的程度來改變。於下文中,將省略如第二實施例之那些相同的組態及操作之描述,且將主要描述與第二實施例之那些不同的組態及操作。
4.1 刷新保留判定程序
圖18係顯示依據第四實施例、並相應於第二實施例中之圖13的記憶體系統中之刷新保留判定程序的流程圖。圖18中所示之刷新保留判定程序的步驟ST71至ST77係由(例如)記憶體控制器30來週期性地執行。
如圖18中所示,在步驟ST71中,記憶體控制器30獲取在刷新程序判定時刻之溫度。由於獲取在刷新程序判定時刻之溫度的程序之細節類似於圖13中之步驟ST41的那些,省略了其描述。
在步驟ST72中,記憶體控制器30選擇其中儲存有在寫入程序時刻之溫度的溫度管理單元。
在步驟ST73中,記憶體控制器30判定在步驟ST72中所選擇的溫度管理單元之損耗的程度是否等於或高於臨限值WEth。損耗的程度可包括相關於臨限電壓分佈之移位及擴散的簡易之指數,且可係寫入及抹除(W/E)循環之數目,其亦可被稱為溫度管理單元的編程及抹除(P/E)循環之數目。W/E循環之數目係由(例如)區塊BLK之單元中的記憶體控制器30來管理。
假如損耗之程度低於臨限值WEth(步驟ST73;否),則程序進行至步驟ST74。在步驟ST74中,記憶體控制器30判定於步驟S71中所獲取的在刷新程序判定時刻之溫度與於步驟ST72中所選擇的在溫度管理單元之寫入程序時刻的溫度之間的差異是否等於或高於臨限值Tth3。
假如該差異係等於或大於臨限值Tth3(步驟ST74;是),則程序進行至步驟ST76。假如該差異係小於臨限值Tth3(步驟ST74;否),則省略步驟ST76且程序進行至步驟ST77。
另一方面,假如損耗之程度等於或高於臨限值WEth(步驟ST73;是),則程序進行至步驟ST75。在步驟ST75中,記憶體控制器30判定該差異是否等於或高於臨限值Tth4,其係小於臨限值Tth3(亦即,Tth4<Tth3)。
假如該差異係等於或大於臨限值Tth4(步驟ST75;是),則程序進行至步驟ST76。假如該差異係小於臨限值Tth4(步驟ST75;否),則省略步驟ST76且程序進行至步驟ST77。
在步驟ST76中,記憶體控制器30將其包括在步驟ST72中所選擇之溫度管理單元的區塊BLK之刷新程序被保留的資訊儲存在刷新保留資訊22中,而因此保留刷新程序。
在步驟ST77中,記憶體控制器30判定所有溫度管理單元是否已被選擇。假如有尚未被選擇的溫度管理單元(步驟ST77;否),則程序返回至步驟ST72。以此方式,步驟ST72至ST77被重複直到所有溫度管理單元均被選擇。假如所有溫度管理單元已被選擇器(步驟ST77;是),則刷新保留判定程序被完成。
在上述圖18之情況下,用於判定是否執行刷新保留之程序(步驟ST74或ST75)被執行,即使損耗之程度之值相當低;然而,實施例不限於此情況。例如,假如損耗之程度低於臨限值WEth(步驟ST73;否),則可省略步驟ST74且程序可進行至步驟ST77。
4.2 本實施例之效果
依據第四實施例,記憶體控制器30隨著損耗之程度增加而將臨限值Tth設為較低值。結果,針對具有損耗之較高程度的溫度管理單元,記憶體控制器30可判定其刷新程序之保留係需要的,當介於在刷新程序判定時刻之溫度與在寫入程序時刻之溫度之間的差異較小時。因此,即使針對由於重複使用而具有較容易移位或分散的臨限電壓分佈之溫度管理單元,刷新程序仍可被保留於適當時序,在錯誤位元之數目超過藉由ECC電路34之軟決定解碼的錯誤校正能力前。因此,可抑制資料之可靠度的惡化。
5. 修改
第一至第四實施例不限於上述範例,而可被修改以各種方式。
例如,在上述第一至第四實施例中,記憶體控制器30獲取由NAND快取記憶體10中之溫度感測器15所測量的溫度,在溫度管理資訊21之更新程序中;然而,實施例不限於此範例。記憶體控制器30可從(例如)NAND快閃記憶體10之外部獲取溫度。例如,溫度可由記憶體控制器30內之類比至數位轉換器(ADC)等等來獲取。在此情況下,記憶體控制器可藉由適當地校正已獲取溫度來估計在NAND快閃記憶體10中(特別地,在記憶體單元陣列17中)之溫度,並基於該經估計溫度以執行溫度管理資訊21之更新程序。
再者,在上述第一至第四實施例中,溫度管理單元係共同地耦合至字元線WL之四個格單元CU;然而,實施例不限於此範例。例如,溫度管理單元可係三個或更少的格單元CU,或可係與複數字元線WL相關聯的五或更多格單元CU。與字元線WL相關聯之五或更多格單元CU亦被稱為字元線群組。替代地,例如,溫度管理單元可係一個區塊BLK或複數區塊BLK。假如溫度管理單元係複數區塊BLK,則包括在相同溫度管理單元中之區塊BLK可各別地屬於不同晶片。再者,假如溫度管理單元係複數區塊BLK,則包括在相同溫度管理單元中之區塊BLK可各別地屬於相同晶片Chip中之不同平面PB。
當作溫度管理單元之複數區塊BLK可係邏輯區塊BLK。邏輯區塊可包括在複數晶片Chip上方之區塊BLK,且包括構成區塊間同位之錯誤校正框。在構成邏輯區塊之晶片Chip中的一組相應字元線WL亦被稱為邏輯字元線。溫度管理單元可係與邏輯字元線相關聯的複數格單元CU。溫度管理單元亦可係與複數邏輯字元線相關聯的複數格單元CU。與複數邏輯字元線WL相關聯的一組複數格單元CU亦被稱為邏輯字元線群組。
記憶體控制器30可將溫度管理單元改變至如上所述之各種大小。因此,用於溫度管理資訊21及刷新程序之保留單元所需的儲存容量可依據NAND快閃記憶體10之狀態而被適當地調整。
第三實施例及第四實施例被描述為被應用於第二實施例,但可被應用於第一實施例。假如第四實施例被應用於第一實施例,則在圖17中所示之步驟ST74及ST75中,記憶體控制器30可依據損耗之程度以改變用於與在刷新程序判定時刻之溫度進行比較的臨限值。明確地,假如損耗之程度低於臨限值WEth,則記憶體控制器30判定在刷新程序判定時刻之溫度是否等於或高於臨限值Tth2。假如損耗之程度等於或高於臨限值WEth,則記憶體控制器30判定在刷新程序判定時刻之溫度是否等於或高於臨限值Tth5,其係低於臨限值Tth2(亦即,Tth5<Tth2)。
替代地,例如,在圖17中所示之步驟ST74及ST75中,記憶體控制器30可依據損耗之程度以改變用於與在寫入程序時刻之溫度進行比較的臨限值。明確地,假如損耗之程度低於臨限值WEth,則記憶體控制器30判定在寫入程序時刻之溫度是否等於或低於臨限值Tth1。假如損耗之程度等於或高於臨限值WEth,則記憶體控制器30判定在寫入程序時刻之溫度是否等於或低於臨限值Tth6,其係高於臨限值Tth1(亦即,Tth6>Tth1)。
此外,在上述第一至第四實施例中,溫度管理資訊21及刷新保留資訊22被儲存在DRAM 20中;然而,實施例不限於此。例如,溫度管理資訊21及刷新保留資訊22可適當地以非揮發性方式被儲存在NAND快閃記憶體10中,以避免其中資訊可能由於非預期關機而從記憶體系統1遺失的情況。
在第一至第四實施例中,2位元資料可被儲存在單一記憶體單元電晶體MT中;然而,實施例不限於此,且可組態成儲存3位元資料、4位元資料、或5位元資料或更大。
雖已描述某些實施例,但這些實施例僅藉由範例方式來呈現,而並非用以限制本發明之範圍。確實,文中所述之實施例可被實施以多種其他形式;再者,可以文中所述實施例之形式進行各種省略、取代及改變而不背離本發明之精神。後附申請專利範圍及其同等物係為了涵蓋此類形式或修改如將落入本範圍及精神內。
1:記憶體系統
2:外部主機裝置
10:非揮發性記憶體
11:輸入/輸出電路
12:暫存器集
12A:狀態暫存器
12B:位址暫存器
12C:命令暫存器
13:邏輯控制器
14:定序器
15:溫度感測器
16:電壓產生器
17:記憶體單元陣列
18:列解碼器模組
19:感測放大器模組
20:揮發性記憶體
21:溫度管理資訊
22:刷新保留資訊
30:記憶體控制器
31:處理器(CPU)
32:緩衝器記憶體
33:主機介面電路
34:錯誤檢查及校正(ECC)電路
35:NAND介面電路
36:DRAM介面電路
[圖1]係用於解釋依據第一實施例之記憶體系統的組態之方塊圖。
[圖2]係用於解釋依據第一實施例之非揮發性記憶體的組態之方塊圖。
[圖3]係用於解釋依據第一實施例之記憶體單元陣列的組態之電路圖。
[圖4]係用於解釋依據第一實施例之記憶體單元的臨限電壓分佈之示意圖。
[圖5]係用於解釋由於在依據第一實施例之記憶體系統中的寫入程序與讀取程序之間的溫度差異所致之臨限電壓分佈的改變之示意圖。
[圖6]係用於解釋依據第一實施例之記憶體系統的溫度管理資訊之概念圖。
[圖7]係用於解釋依據第一實施例之記憶體系統的刷新保留資訊之概念圖。
[圖8]係用於解釋依據第一實施例之記憶體系統中的溫度管理資訊之更新程序的流程圖。
[圖9]係用於解釋依據第一實施例之記憶體系統中的刷新保留判定程序之流程圖。
[圖10]係用於解釋在溫度變遷與依據第一實施例之記憶體系統的狀態之間的關係之圖形。
[圖11]係用於解釋依據第二實施例之記憶體系統的溫度管理資訊之概念圖。
[圖12]係用於解釋依據第二實施例之記憶體系統中的溫度管理資訊之更新程序的流程圖。
[圖13]係用於解釋依據第二實施例之記憶體系統中的刷新保留判定程序之流程圖。
[圖14]係用於解釋依據第三實施例之記憶體系統的溫度管理資訊之概念圖。
[圖15]係用於解釋依據第三實施結構之記憶體系統中的溫度管理資訊之更新程序的第一範例之流程圖。
[圖16]係用於解釋依據第三實施結構之記憶體系統中的溫度管理資訊之更新程序的第二範例之流程圖。
[圖17]係用於解釋依據第三實施例之記憶體系統中的刷新保留判定程序之流程圖。
[圖18]係用於解釋依據第四實施例之記憶體系統中的刷新保留判定程序之流程圖。