TWI744677B - 記憶體系統 - Google Patents

記憶體系統 Download PDF

Info

Publication number
TWI744677B
TWI744677B TW108129188A TW108129188A TWI744677B TW I744677 B TWI744677 B TW I744677B TW 108129188 A TW108129188 A TW 108129188A TW 108129188 A TW108129188 A TW 108129188A TW I744677 B TWI744677 B TW I744677B
Authority
TW
Taiwan
Prior art keywords
memory
temporary suspension
volatile memory
programming
processing
Prior art date
Application number
TW108129188A
Other languages
English (en)
Other versions
TW202036575A (zh
Inventor
西川卓
鈴木理気
小島慶久
Original Assignee
日商東芝記憶體股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日商東芝記憶體股份有限公司 filed Critical 日商東芝記憶體股份有限公司
Publication of TW202036575A publication Critical patent/TW202036575A/zh
Application granted granted Critical
Publication of TWI744677B publication Critical patent/TWI744677B/zh

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/12Programming voltage switching circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/32Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

實施形態提供一種可縮短針對來自主機之請求之應答時間之記憶體系統及非揮發性記憶體。
實施形態之記憶體系統具備非揮發性記憶體、及控制非揮發性記憶體之動作之記憶體控制器。非揮發性記憶體係自記憶體控制器接收用以執行抹除及編程之至少任一者之第1指令,在執行基於第1指令之包含複數分段之第1處理中,自記憶體控制器接收到第2指令之情形時,執行不等待至第1處理之指定分段結束為止而暫時中止第1處理之第2處理,在執行第1處理中,自記憶體控制器接收到第3指令之情形時,執行等待至第1處理之指定分段結束為止後暫時中止第1處理之第3處理。

Description

記憶體系統
本發明之實施形態係關於一種記憶體系統及非揮發性記憶體。
近年來,作為非揮發性記憶體之NAND(Not AND,與非)型快閃記憶體之大容量化推進,作為搭載有此種NAND型快閃記憶體之記憶體系統,SSD(Solid State Drive,固態驅動器)正備受關注。
對於SSD,當於先行進行之抹除或編程等處理之執行中,必須執行與來自主機之請求相關之處理等其他處理時,優先執行先行進行之抹除或編程等處理與其他處理之哪一者成為問題。
一實施形態提供一種可縮短針對來自主機之請求之應答時間之記憶體系統及非揮發性記憶體。
實施形態之記憶體系統具備非揮發性記憶體、及控制非揮發性記憶體之動作之記憶體控制器。非揮發性記憶體係自記憶體控制器接收用以執行抹除及編程之至少任一者之第1指令,在執行基於第1指令之包含複數分段之第1處理中,自記憶體控制器接收到第2指令之情形時,執行不等待至第1處理之指定分段結束為止而暫時中止(suspend)第1處理之第2處理,在執行第1處理中,自記憶體控制器接收到第3指令之情形時,執行等待至第1處理之指定分段結束為止後暫時中止第1處理之第3處理。
1:記憶體系統
10:記憶體控制器
11:控制部
11a:資料獲取部
11b:運算部
11c:指令發佈部
13:記憶體I/F
14:RAM
14a:已抹除區塊數儲存部
14b:抹除暫時中止計劃表
14c:抹除暫時中止剩餘次數暫存器
14d:寫入緩衝器空閒容量儲存部
14e:編程暫時中止計劃表
14f:編程暫時中止剩餘次數暫存器
14g:寫入緩衝器
14h:讀取緩衝器
14i:壓緊緩衝器
14j:抹除暫時中止計劃表
14k:計劃修正表
14l:計劃修正表
14m:計劃修正表
14n:計劃修正表
14o:抹除暫時中止計劃設定時刻暫存器
15:主機I/F
20:NAND型快閃記憶體
30:主機
ALE:位址閂鎖賦能信號
BL:位元線
BLK:區塊
BLK0、BLK1、BLK2:區塊
CHP:電荷泵
CLE:指令閂鎖賦能信號
COR:核心部
DRV:驅動器
I/O:輸入輸出信號
IO:輸入輸出部
MCA:記憶胞陣列
NS:NAND串
PER:周邊電路
R/B:就緒/忙錄信號
RD:列解碼器
REG:暫存器
SA:感測放大器
SEQ:序列產生器
SU0、SU1、SU2:串單元
WL:字
圖1係表示實施形態之記憶體系統之概略構成例之方塊圖。
圖2係實施形態之NAND記憶體之方塊圖。
圖3係表示實施形態之記憶體控制器所持有之抹除暫時中止計劃表之一例的圖。
圖4係表示實施形態之記憶體控制器所持有之抹除暫時中止剩餘次數暫存器之一例的圖。
圖5係表示實施形態之記憶體控制器所持有之編程暫時中止計劃表之一例的圖。
圖6係表示實施形態之記憶體控制器所持有之編程暫時中止剩餘次數暫存器之一例的圖。
圖7係表示實施形態之記憶體控制器之控制部之功能區塊之圖。
圖8係表示實施形態之主機、記憶體控制器及NAND記憶體間之資料流之一例的圖。
圖9係表示實施形態之記憶體控制器及NAND記憶體間之資料流之一例的圖。
圖10(a)~(c)係表示實施形態之NAND記憶體之抹除時之電壓施加的時序圖之一例之圖。
圖11(a)~(c)係表示實施形態之NAND記憶體之編程時之電壓施加的時序圖之一例之圖。
圖12(a)~(c)係表示實施形態之NAND記憶體之編程時之電壓施加的時序圖之其他例之圖。
圖13(a)、(b)係表示實施形態之記憶體系統中之抹除暫時中止之指令序列之一例的圖。
圖14(a)、(b)係表示實施形態之記憶體系統中之編程暫時中止之指令序列之一例的圖。
圖15係表示決定利用實施形態之記憶體控制器之抹除時之有/無返轉之暫時中止之計劃數的處理之程序之一例之流程圖。
圖16係表示實施形態之記憶體系統中之抹除暫時中止處理之程序的一例之流程圖。
圖17係表示實施形態之記憶體系統所管理之有/無返轉之暫時中止的剩餘次數之時間序列變化之圖。
圖18係表示決定利用實施形態之記憶體控制器之編程時之有/無返轉之暫時中止之計劃數的處理之程序之一例之流程圖。
圖19係表示實施形態之記憶體系統中之編程暫時中止處理之程序的一例之流程圖。
圖20係表示實施形態之變化例1之記憶體控制器所持有之抹除暫時中止計劃表的一例之圖。
圖21係表示基於實施形態之變化例1之記憶體控制器所持有之寫入佇列深度(QD:Queue Depth)的計劃修正表之一例之圖。
圖22係表示基於實施形態之變化例2之記憶體控制器所持有之編程/抹除次數的計劃修正表之一例之圖。
圖23係表示基於實施形態之變化例3之記憶體控制器所持有之讀取請求之發佈比率的計劃修正表之一例之圖。
圖24係表示實施形態之變化例5之記憶體控制器所持有之計劃修正表 之一例的圖。
圖25(a)~(d)係表示實施形態之變化例6之記憶體控制器所持有之編程暫時中止次數限制表之一例的圖。
圖26係表示實施形態之變化例7之記憶體控制器所持有之抹除暫時中止計劃設定時刻暫存器之一例的圖。
圖27係表示實施形態之變化例7之記憶體系統中之抹除暫時中止計劃的設定處理之程序之一例之流程圖。
圖28係表示實施形態之變化例7之記憶體系統所管理之有/無返轉之暫時中止的剩餘次數之時間序列變化之圖。
圖29係表示實施形態之變化例7之記憶體系統所管理之有/無返轉之暫時中止的剩餘次數之另一時間序列變化之圖。
以下,參照圖式對本發明之實施形態進行詳細說明。再者,本發明不受下述實施形態限定。又,下述實施形態中之構成要素包含本領域技術人員可容易地假定之要素或實質上相同之要素。
(記憶體系統之構成例)
圖1係表示實施形態之記憶體系統1之概略構成例之方塊圖。如圖1所示,記憶體系統1具備記憶體控制器10及作為非揮發性記憶體之NAND型快閃記憶體20(以下亦簡稱為NAND記憶體20)。
記憶體系統1可為記憶體控制器10與NAND記憶體20以1個封裝之形式構成之記憶卡等,亦可為SSD等。記憶體系統1可與主機30連接。主機30例如可為個人電腦、伺服器、儲存器(storage box)等資訊處理 裝置、行動電話及攝像裝置,可為平板電腦或智慧型手機等移動終端,可為遊戲機,亦可為汽車導航系統等車載終端。
NAND記憶體20係非揮發地記憶資料之非揮發性記憶體。NAND記憶體20亦可包含複數個記憶體晶片。於以下之說明中,對使用NAND記憶體作為非揮發性記憶體之情形進行說明,但非揮發性記憶體之例並不限定於此。非揮發性記憶體例如可為NOR(Not OR,或非)型快閃記憶體、三維構造快閃記憶體、ReRAM(Resistance Random Access Memory,電阻式隨機存取記憶體)、FeRAM(Ferroelectric Random Access Memory,鐵電式隨機存取記憶體)等各種記憶媒體之任一者。又,非揮發性記憶體並非必須為半導體記憶體,對除半導體記憶體以外之各種記憶媒體亦可應用本實施形態。
NAND記憶體20具備複數個記憶胞呈矩陣狀排列所得之記憶胞陣列MCA。記憶胞陣列MCA具有分別包含複數個記憶胞之複數個區塊BLK。來自主機30之資料非揮發地記憶於記憶胞陣列MCA內。關於NAND記憶體20之詳細情況將進一步使用圖2進行說明。
圖2係實施形態之NAND記憶體20之方塊圖。如圖2所示,NAND型快閃記憶體20具備核心部COR、輸入輸出部IO及周邊電路PER。
核心部COR具備記憶胞陣列MCA、列解碼器RD及感測放大器SA。
記憶胞陣列MCA具備作為非揮發性之記憶胞之集合之複數個區塊BLK(BLK0、BLK1、BLK2、…)。區塊BLK之各者具備作為串聯連接有記憶胞之NAND串NS之集合之複數個串單元SU(SU0、SU1、 SU2、…)。記憶胞陣列MCA內之區塊數及區塊BLK內之串單元數及NAND串數為任意。
如上所述,於一個NAND串NS中,串聯連接有複數個記憶胞。同一串單元SU內之複數個NAND串NS中之第n個記憶胞共通連接於在X方向上延伸之1條字元線WL。複數個區塊BLK間之第m個NAND串NS共通連接於在Y方向上延伸之1條位元線BL。如此,記憶胞配置於複數條字元線WL與複數條位元線BL之各者交叉之點。
於NAND記憶體20中,通常以每一個區塊BLK之資料為單位進行抹除,以被稱作頁之資料為單位進行編程及讀取。於本實施形態中,將連接於同一字元線之複數個記憶胞稱為記憶胞群。於記憶胞為記憶1位元之SLC(Single Level Cell,單層記憶胞)之情形時,1個記憶胞群對應於1頁。於記憶胞為記憶多值(2位元以上之資料)之MLC(Multiple Level Cell,多層記憶胞)之情形時,1個記憶胞群對應於複數頁。各記憶胞可利用識別字元線之位址與識別位元線之位址加以識別。
列解碼器RD將自記憶體控制器10接收到之區塊位址進行解碼,選擇對應之區塊BLK及字元線WL。
感測放大器SA於資料之讀取時,感測並放大自記憶胞讀取之資料。繼而,視需要將讀取資料輸出至記憶體控制器10。又,於資料之編程時,將自記憶體控制器10接收到之寫入資料傳輸至記憶胞。
輸入輸出部IO負責與記憶體控制器10之間之各種指令或資料之收發。
周邊電路PER具備序列產生器SEQ、電荷泵CHP、暫存器REG及驅動器DRV。
驅動器DRV將資料之編程、讀取及抹除所需之電壓供給至列解碼器RD或感測放大器SA。該電壓被施加至記憶胞陣列MCA內之各種配線。電荷泵CHP使自外部賦予之電源電壓升壓,而將所需之電壓供給至驅動器DRV。暫存器REG保持各種信號。例如保持資料之編程或抹除動作之狀態,藉此對記憶體控制器10通知動作是否正常完成。序列產生器SEQ控制NAND記憶體20整體之動作。
圖1所示之記憶體控制器10係例如構成為SoC(System-on-a-Chip,晶片上系統)之半導體積體電路。記憶體控制器10亦可構成為FPGA(Field-Programmable Gate Array,場可編程化閘陣列)或ASIC(Application Specific Integrated Circuit,特殊應用積體電路)。記憶體控制器10按照來自主機30之寫入請求,控制向NAND記憶體20之資料之寫入。又,按照來自主機30之讀取請求,控制自NAND記憶體20之資料之讀取。
記憶體控制器10具備控制部11、記憶體介面(記憶體I/F)13、RAM(Random Access Memory,隨機存取記憶體)14、及主機介面(主機I/F)15。控制部11、記憶體I/F 13、RAM14及主機I/F 15利用內部匯流排而相互連接。
主機I/F 15按照SAS(Serial-Attached SCSI(Small Computer System Interface),串列連接小電腦系統介面)(註冊商標)、SATA(Serial ATA(Advanced Technology Attachment),串列進階技術附件)(註冊商標)、PCIe(PCI(Peripheral Component Interconnect)Express,快速周邊組件互聯)(註冊商標)、及NVMe(NVM(Non-Volatile Memory)Express,非揮發性記憶體儲存裝置)(註冊商標)等與主機30之間 之介面標準來實施處理,將自主機30接收到之要求(請求)、寫入對象之資料(用戶資料)等輸出至內部匯流排。又,主機I/F 15將自NAND記憶體20讀取之資料(用戶資料)、及來自控制部11之應答等發送至主機30。再者,下述控制部11亦可兼具主機I/F 15之功能中之一部分或全部。即,亦可為控制部11直接進行與主機30之資訊之交換。
記憶體I/F 13基於控制部11之指示,進行NAND記憶體20與就緒(ready)/忙碌(busy)信號R/B、輸入輸出信號I/O、指令閂鎖賦能信號CLE、位址閂鎖賦能信號ALE等各種信號之交換。就緒/忙碌信號R/B表示NAND記憶體20是否為可接收來自記憶體控制器10之指令之狀態(就緒狀態)或為無法接收來自記憶體控制器10之指令之狀態(忙碌狀態)。輸入輸出信號I/O係於NAND記憶體20與記憶體控制器10之間收發之資料之實體,且為表示指令、位址、寫入資料及讀取資料等之以8位元為單位之信號。指令閂鎖賦能信號CLE將輸入信號I/O為指令之內容通知給NAND記憶體20。位址閂鎖賦能信號ALE將輸入信號I/O為位址之內容通知給NAND記憶體20。
藉由交換該等信號,記憶體I/F 13基於控制部11之指示,對NAND記憶體20進行資料之編程處理及抹除處理等。又,記憶體I/F 13基於控制部11之指示,進行自NAND記憶體20之資料之讀取處理。再者,下述控制部11亦可兼具記憶體I/F 13之功能中之一部分或全部。即,亦可為控制部11直接進行與NAND記憶體20之資訊之交換。
控制部11例如為CPU(Central Processing Unit,中央處理單元)。控制部11基於韌體程式而動作。例如,於記憶體系統1之製造時或出貨時,韌體程式預先儲存於NAND記憶體20中。控制部11於記憶體系統 1起動時,將韌體程式自NAND記憶體20加載至記憶體控制器10所具備之RAM14。控制部11藉由執行加載至RAM14之韌體程式而實現各種功能。
如此,控制部11之功能中之一部分或全部例如由執行韌體之CPU實現。但,控制部11之功能中之一部分或全部亦可由硬體電路實現,而非由執行韌體之CPU實現。
控制部11統括地控制記憶體系統1之各構成要素。控制部11於自主機30經由主機I/F 15接收到請求之情形時,按照該請求進行控制。例如,控制部11按照來自主機30之寫入請求,對記憶體I/F 13指示向NAND記憶體20之資料之編程。又,控制部11按照來自主機30之讀取請求,對記憶體I/F 13指示自NAND記憶體20之資料之讀取。又,控制部11對記憶體I/F 13指示NAND記憶體20之資料之抹除。
控制部11於自主機30接收到寫入請求之情形時,針對下述寫入緩衝器14g中所蓄積之資料,決定作為NAND記憶體20上之儲存區域之記憶胞陣列MCA內之區域。即,控制部11對資料之寫入目標加以管理。自主機30接收到之資料之邏輯位址與表示儲存有該資料之NAND記憶體20上之儲存區域之物理位址的對應資訊係以位址轉換表之形式加以管理。
再者,有如下情形:記憶體控制器10自主機30接收到寫入請求後至實際執行對NAND記憶體20之編程為止存在時滯。於此期間,來自主機30之寫入請求之資料暫時儲存於寫入緩衝器14g中。對NAND記憶體20之資料之編程係例如藉由使寫入緩衝器14g中所蓄積之資料非揮發化之快閃處理等執行。
控制部11於自主機30接收到讀取請求之情形時,使用上述 位址轉換表將由讀取請求指定之邏輯位址轉換成物理位址,對記憶體I/F 13指示自該物理位址之資料之讀取。
控制部11例如有如下情況:即便無來自主機30之請求,亦對記憶體I/F 13指示NAND記憶體20之抹除或編程。作為無關於來自主機30之請求而執行抹除及編程之情形,例如包含如下處理等,即:更新處理,其係為了保全所記憶之資料而重新寫入已實施錯誤訂正之資料;耗損平準化(wear levelling)處理,其係為了使編程/抹除處理之執行次數於複數個區塊BLK間平準化,而於區塊BLK間轉記資料;及廢料收集(壓緊)處理,其係為了確保可編程之區塊BLK而使資料彙集至指定之區塊BLK。又,針對更新處理後、耗損平準化處理後及壓緊處理後之資料移動來源之區塊BLK,之後將進行抹除處理。再者,如上所述,抹除處理例如有以區塊BLK為單位進行,於抹除處理之完成之前需要較長時間之情況。
控制部11於在NAND記憶體20進行抹除及編程之至少任一處理時,必須執行與來自主機30之請求相關之處理等其他處理時,決定優先進行上述先行之處理與上述其他處理之哪一者。再者,於本實施形態中,「執行(其他)處理之必要性(之產生)」與「(其他)處理之請求(之產生)」係以相同之含義使用。
更具體而言,於NAND記憶體20包含1個以上之記憶體晶片之情形時,當於在某記憶體晶片中正進行上述先行之處理時,必須執行針對該記憶體晶片之上述其他處理時,控制部11決定優先進行上述先行之處理與上述其他處理之哪一者。執行其他處理之必要性例如於自主機30發佈了例如請求讀取之指令時、及記憶體控制器10將自主機30發佈之例如請求讀取之指令自指令佇列取出時、即於抹除中產生讀取請求或於編程中 產生讀取請求時等產生。亦有於抹除中產生根據來自主機30之請求之編程請求之情況。
於優先進行抹除及編程等先行之處理時,控制部11不使先行之處理暫時中止,而於使先行之處理結束之後,使NAND記憶體20進行與來自主機30之請求相應之處理等其他處理。有將利用NAND記憶體20之此種處理於下文稱作無暫時中止之處理之情況。於優先進行與來自主機30之請求相應之處理等其他處理時,控制部11對NAND記憶體20發佈暫時中止指令,使先行之處理暫時中止。先行之處理之暫時中止包括有返轉之暫時中止及無返轉之暫時中止。
有返轉之暫時中止係如下處理:不等待至先行之處理之下述指定分段為止,而使NAND記憶體20暫時中止先行之處理。於按照來自主機30之請求,NAND記憶體20結束指定之處理之後之時序,使被暫時中止之先行處理重新開始。就有返轉之暫時中止而言,有當重新開始先行處理時,一部分之處理返轉並重複地執行之情形。
無返轉之暫時中止係如下處理:等待至先行之處理之指定分段為止,使NAND記憶體20暫時中止先行之處理。按照來自主機30之請求,於NAND記憶體20結束指定之處理之後之時序,使被暫時中止之先行處理重新開始。就無返轉之暫時中止而言,當重新開始先行處理時,未使一部分之處理返轉,而自暫時中止時間點之處理重新開始以後之處理。即,先行之處理之指定分段換言之意味著無需返轉而可暫時中止之時序。關於此種指定分段將於下文進行詳細敍述。
有/無返轉之暫時中止之選擇係根據NAND記憶體20之狀態,基於容許何種程度之抹除及編程之延遲而進行。若NAND記憶體20為 可進一步容許抹除及編程之延遲之狀態,則選擇有返轉之暫時中止。若NAND記憶體20並非為可容許太多抹除及編程之延遲之狀態,則選擇無返轉之暫時中止。根據NAND記憶體20之狀態,亦有不選擇有/無返轉之暫時中止之任一者之情形。關於NAND記憶體20之狀態與有/無返轉之暫時中止之選擇之關係之詳細情況將於下文進行敍述。
RAM14例如為SRAM(Static Random Access Memory,靜態隨機存取記憶體)或DRAM(Dynamic Random Access Memory,動態隨機存取記憶體)等通用記憶體等,例如被用於構成為CPU之控制部11之作業區域。
又,RAM14具備寫入緩衝器14g,該寫入緩衝器14g暫時儲存記憶體控制器10自主機30接收到之資料直至記憶至NAND記憶體20為止。又,RAM14具備讀取緩衝器14h,該讀取緩衝器14h暫時儲存自NAND記憶體20讀取之資料直至發送至主機30為止。又,RAM14具備壓緊緩衝器14i,該壓緊緩衝器14i於利用NAND記憶體20進行之壓緊處理時暫時儲存資料。壓緊緩衝器141例如於更新處理及耗損平準化處理時亦被用作資料之暫時儲存處。
又,RAM14被用於管理資料之儲存。管理資料係為了管理記憶體系統1而於記憶體系統1內使用之資料。管理資料例如包含已抹除區塊數儲存部14a、抹除暫時中止計劃表14b、抹除暫時中止剩餘次數暫存器14c、寫入緩衝器空閒容量儲存部14d、編程暫時中止計劃表14e及編程暫時中止剩餘次數暫存器14f等。於已抹除區塊數儲存部14a,儲存有NAND記憶體20所具有之區塊BLK中之資料被抹除之區塊BLK之數量。於寫入緩衝器空閒容量儲存部14d,儲存有RAM14所具有之寫入緩衝器 14g之空閒容量。抹除暫時中止計劃表14b、抹除暫時中止剩餘次數暫存器14c、編程暫時中止計劃表14e及編程暫時中止剩餘次數暫存器14f係於記憶體控制器10決定是否對NAND記憶體20發佈暫時中止指令時被參照。
圖3係表示實施形態之記憶體控制器10所持有之抹除暫時中止計劃表14b之一例的圖。
如圖3所示,抹除暫時中止計劃表14b針對已抹除區塊數3、2、1、0逐一示出有/無返轉之暫時中止之計劃數。抹除暫時中止計劃表14b之各數值例如被設定為記憶體系統1之出貨時等。圖3所示之已抹除區塊數之數值、及針對該等數值之各計劃數之數值僅為例示。抹除暫時中止計劃表14b係當使NAND記憶體20進行指定之區塊BLK之抹除作為先行之處理時,被記憶體控制器10參照。記憶體控制器10係基於所參照之抹除暫時中止計劃表14b,決定抹除暫時中止之計劃數。
例如,於已抹除區塊數充分多時,稍許之抹除處理之延遲不容易成為問題。因此,選擇有/無返轉之暫時中止之任一者,優先執行其他處理。選擇有/無返轉之暫時中止之哪一者取決於已抹除區塊數之多少。若已抹除區塊數更多,則選擇返轉之暫時中止。以下,隨著已抹除區塊數變少,為了儘可能避免抹除處理之延遲,選擇無返轉之暫時中止,繼而,選擇無暫時中止。根據圖3中之已抹除區塊數、及有/無返轉之暫時中止之計劃數之例示數字之關係,亦讀取到已抹除區塊數之減少以及趨向不容許抹除之延遲之方向。
圖4係表示實施形態之記憶體控制器10所持有之抹除暫時中止剩餘次數暫存器14c之一例的圖。
如圖4所示,抹除暫時中止剩餘次數暫存器14c中儲存有基 於抹除暫時中止計劃表14b所示之計劃數之數值。記憶體控制器10係於使NAND記憶體20進行抹除處理時,將參照抹除暫時中止計劃表14b所獲得之有/無返轉之暫時中止之計劃數分別登錄至抹除暫時中止剩餘次數暫存器14c之有/無返轉之暫時中止之項目。其後,每當分別執行有/無返轉之暫時中止時,不斷減小抹除暫時中止剩餘次數暫存器14c之有/無返轉之暫時中止之登錄數。
圖5係表示實施形態之記憶體控制器10所持有之編程暫時中止計劃表14e之一例之圖。
如圖5所示,編程暫時中止計劃表14e中示出寫入緩衝器(WB)14g之空閒容量70~100、50~70、30~50、0~30之每一者之有/無返轉之暫時中止之計劃數。編程暫時中止計劃表14e之各數值例如被設定為記憶體系統1之出貨時等。圖5所示之寫入緩衝器14g之空閒容量之數值、及針對該等數值之各計劃數之數值僅為例示。又,寫入緩衝器14g之空閒容量之單位係包含4kB之條目(資料儲存區域)之數量。編程暫時中止計劃表14e係當使NAND記憶體20進行對指定之區塊BLK之編程作為先行之處理時,被記憶體控制器10參照。記憶體控制器10基於所參照之編程暫時中止計劃表14e,決定編程暫時中止之計劃數。
例如,於寫入緩衝器14g之空閒容量充分多時,稍許之編程處理之延遲不容易成為問題。因此,選擇有/無返轉之暫時中止之任一者,優先執行其他處理。選擇有/無返轉之暫時中止之哪一者取決於寫入緩衝器14g之空閒容量之多少。若寫入緩衝器14g之空閒容量更多,則選擇有返轉之暫時中止。以下,隨著寫入緩衝器14g之空閒容量變少,為了儘可能避免編程處理之延遲,選擇無返轉之暫時中止,繼而選擇無暫時中 止。根據圖5中之寫入緩衝器14g之空閒容量、及有/無返轉之暫時中止之計劃數之例示數字之關係性,亦讀取到寫入緩衝器14g之空閒容量之減少以及趨向不容許編程之延遲之方向。
圖6係表示實施形態之記憶體控制器10所持有之編程暫時中止剩餘次數暫存器14f之一例之圖。
如圖6所示,於編程暫時中止剩餘次數暫存器14f,儲存有基於編程暫時中止計劃表14e所示之計劃數之數值。記憶體控制器10每當使NAND記憶體20進行編程處理時,便將參照編程暫時中止計劃表14e所獲得之有/無返轉之暫時中止之計劃數分別登錄至編程暫時中止剩餘次數暫存器14f之有/無返轉之暫時中止之項目。其後,每當分別執行有/無返轉之暫時中止時,不斷減小編程暫時中止剩餘次數暫存器14f之有/無返轉之暫時中止之登錄數。
(控制部之功能構成例)
圖7係表示實施形態之記憶體控制器10之控制部11之功能區塊之圖。如圖7所示,控制部11例如具備資料獲取部11a、運算部11b及指令發佈部11c,作為藉由CPU執行韌體而實現之功能。藉由該等功能部,控制部11例如控制針對NAND記憶體20先行進行之處理之暫時中止。
資料獲取部11a自NAND記憶體20所具有之複數個區塊BLK中,獲取資料已抹除之區塊數並儲存至已抹除區塊數儲存部14a。已抹除區塊數例如為於因目前為止所執行之壓緊處理等而導致不存在有效資料之區塊BLK中,為了實現即將執行之編程而預先抹除之區塊BLK之數量。
又,於寫入緩衝器14g中,暫時儲存有隨附於目前為止所接收到之來自主機30之寫入請求等之面向NAND記憶體20之待編程資料,寫入緩衝器14g之空閒容量係根據該待編程資料之量而發生變化。資料獲取部11a獲取寫入緩衝器14g之當前時間點之空閒容量並儲存於寫入緩衝器空閒容量儲存部14d。
運算部11b於使NAND記憶體20進行抹除作為先行之處理時,自已抹除區塊數儲存部14a獲取已抹除區塊數。繼而,運算部11b參照抹除暫時中止計劃表14b,決定有/無返轉之暫時中止之計劃數。即,運算部11b例如於已抹除區塊數為3時,參照抹除暫時中止計劃表14b最上段之「已抹除區塊數」為3之項目,以有/無返轉之暫時中止之計劃數分別成為2次及0次之方式使指令發佈部11c發佈指令。
又,運算部11b於使NAND記憶體20進行編程作為先行之處理時,自寫入緩衝器空閒容量儲存部14d獲取寫入緩衝器14g之空閒容量。繼而,運算部11b參照編程暫時中止計劃表14e,決定有/無返轉之暫時中止之計劃數。即,運算部11例如於寫入緩衝器14g之空閒容量為50時,參照自編程暫時中止計劃表14e最下段至第2段之「WB之空閒容量」多於30且為50以下之範圍,以有/無返轉之暫時中止之計劃數分別成為0次及2次之方式,使指令發佈部11c發佈指令。
指令發佈部11c例如於被指示使有/無返轉之暫時中止之計劃數成為0次及2次時,將該等計劃數設為有/無返轉之暫時中止之各自之上限數而發佈指令。即,有返轉之暫時中止之上限數為零,故而有返轉之暫時中止指令之發佈次數係設為零。又,無返轉之暫時中止之上限數為2,故而例如關於每一次之抹除處理,指令之發佈次數係設為最多2次。有 /無返轉之暫時中止之計劃數全部耗盡之後,記憶體控制器10不發佈任何暫時中止指令,而於不進行暫時中止之情況下,等待至先行之處理完成後進行其他處理。
(資料流)
其次,使用圖8及圖9,對主機30、記憶體控制器10及NAND記憶體20間之資料流進行說明。圖8係表示實施形態之主機30、記憶體控制器10及NAND記憶體20間之資料流之一例之圖。
如圖8所示,記憶體控制器10例如自主機30接收寫入請求R31,並且於寫入緩衝器14g中確保區域,將自主機30接收到之寫入資料D1暫時儲存至寫入緩衝器14g。使主機30進行寫入處理之完成應答。當於寫入緩衝器14g積存指定量之寫入資料時,記憶體控制器10對NAND記憶體20發佈編程指令C11。當自記憶體控制器10對NAND記憶體20發佈編程指令C11時,與此同時被暫時儲存至寫入緩衝器14g之寫入資料D1向NAND記憶體20交接,被編程至NAND記憶體20之編程對象之區塊BLK。當對NAND記憶體20傳輸寫入資料D1時,記憶體控制器10釋放寫入緩衝器14g之區域。
記憶體控制器10例如當自主機30接收讀取請求R32時,根據讀取請求R32發佈讀取指令C12。當自記憶體控制器10向NAND記憶體10發佈讀取指令C12時,自NAND記憶體20之讀取對象之區塊BLK讀取到讀取資料D2,並暫時儲存於記憶體控制器10之讀取緩衝器14h。暫時儲存於讀取緩衝器14h之讀取資料D2被向主機30交接。
例如有如下情形:於自主機30接收到讀取請求R32等之時 序,NAND記憶體20為抹除處理中。NAND記憶體20於按照抹除指令C13而為抹除處理中時,對來自記憶體控制器10之抹除狀態讀取指令C14回覆為抹除處理中之主旨之資訊。
於此種情形時,有記憶體控制器10於發佈了有返轉之抹除暫時中止指令C16或無返轉之抹除暫時中止指令C17之任一者之後,發佈讀取指令C12之情形。NAND記憶體20使執行中之抹除處理中斷,優先執行按照來自主機30之請求之處理,例如對讀取指令C12回覆讀取資料D2。
當NAND記憶體20中之優先處理結束時,記憶體控制器10發佈抹除恢復指令C15,使利用NAND記憶體20之抹除處理繼續。
圖9係表示實施形態之記憶體控制器10及NAND記憶體20間之資料流之一例之圖。
如圖9所示,記憶體控制器10為了確保可編程之區塊BLK,而使NAND記憶體20執行壓緊處理,使資料彙集至指定之區塊BLK。NAND記憶體20接收來自記憶體控制器10之命令(C18),並自壓緊源之區塊BLK讀取(壓緊讀取)資料。又,NAND記憶體20接收來自記憶體控制器10之命令(C19),將資料編程至壓緊目標之區塊BLK。
為了實現壓緊處理而被讀取之讀取資料D3暫時儲存於記憶體控制器10之壓緊緩衝器14i。繼而,作為寫入資料D4被交接至NAND記憶體20。再者,於上述更新處理及耗損平準化處理中亦對NAND記憶體20執行資料之讀取及編程,但與壓緊處理同樣地,此時之資料亦可暫時儲存於壓緊緩衝器14i。
壓緊處理後、更新處理後及耗損平準化處理後之資料之移動源之區塊BLK成為自由區塊,且成為針對來自主機30之寫入請求之編 程對象。NAND記憶體20接收來自記憶體控制器10之命令(C13),並自資料之移動源之區塊BLK抹除資料。抹除之時序較佳為例如接近將資料編程至抹除對象之區塊BLK之時序。藉此,可抑制抹除狀態之區塊BLK被長時間放置後產生資料滯留等問題。
(抹除及編程中之循環處理)
其次,使用圖10~圖12,對實施形態之NAND記憶體20中之循環處理進行說明。圖10係表示實施形態之NAND記憶體20中之抹除時之電壓施加之時序圖的一例之圖。於圖10之時序圖中,表示作為對NAND記憶體20之基板之施加電壓之抹除電壓Vera,更詳細而言,抹除時之電壓施加處理存在被施加至基板之抹除電壓Vera、及被施加至字元線之驗證電壓Vver。
如圖10所示,NAND記憶體20之序列產生器SEQ係按照來自記憶體控制器10之命令,對NAND記憶體20之指定區塊BLK執行資料之抹除。具體而言,序列產生器SEQ將連接於抹除對象之區塊BLK內之記憶胞之字元線設為電源電位(VSS),對NAND記憶體20之基板施加抹除電壓Vera。其次,序列產生器SEQ停止抹除電壓Vera之施加,對與指定區塊BLK內之各記憶胞連接之字元線施加驗證電壓(僅圖示出時序,施加電壓未圖示),驗證區塊BLK內之指定數量以上之記憶胞之資料是否已被抹除(抹除驗證)。於資料未被抹除之記憶胞剩餘固定數量以上時,序列產生器SEQ使抹除電壓Vera升壓並施加至基板。
如此,序列產生器SEQ一面使抹除電壓Vera升壓,一面交替地進行抹除電壓Vera之施加處理與驗證處理,直至抹除對象區塊BLK內之指定數量以上之記憶胞之資料被抹除為止。將該1次抹除電壓Vera之施 加處理與相繼於此之1次驗證處理之組設為1次循環。每當1次循環結束時,將已結束之循環次數登錄至NAND記憶體20之暫存器REG。藉此,於NAND記憶體20,記憶有抹除處理之進展。換言之,於本實施形態之NAND記憶體20中,未以較循環小之單位記憶進展。
此處,設為於第2次循環(循環2)中,記憶體控制器10例如自主機30接收到讀取請求等或獲取到指令佇列內之指令。記憶體控制器10基於上述抹除暫時中止剩餘次數暫存器14c而決定新產生之其他處理之請求與先行執行中之抹除處理之NAND記憶體20中之執行之優先順序。
圖10(a)所示之案例係如下情形:未由記憶體控制器10發佈有/無返轉之暫時中止之任一暫時中止指令,NAND記憶體20繼續先行之抹除處理而不使其中斷。NAND記憶體20繼續進行處於中途之循環2之處理而不使其中斷,其後,例如執行循環3及循環4之處理。例如若設為至循環4為止,抹除處理完成,則NAND記憶體20於該抹除處理完成後,按照來自記憶體控制器10之指令執行其他處理。
NAND記憶體20於執行先行之抹除處理之過程中,使R/Bn信號為忙碌(圖10(a)之Busy(erase))。當先行之抹除處理結束時,NAND記憶體20將R/Bn信號設為就緒,並受理來自記憶體控制器10之與其他處理相關之指令。於其他處理之執行中,NAND記憶體20使R/Bn信號為忙碌(圖10(a)之Busy(other process))。
圖10(b)所示之案例係如下情形:由記憶體控制器10發佈無返轉之暫時中止指令,NAND記憶體20使先行之抹除處理中斷而優先執行其他處理。NAND記憶體20按照無返轉之暫時中止指令,完成處於中途之循環2之處理。其後,NAND記憶體20例如不轉移至下一次循環(循環3) 而使抹除處理中斷,按照來自記憶體控制器10之指令執行其他處理。
於其他處理結束後,NAND記憶體20繼續進行已中斷之抹除處理。於暫時中止前,抹除處理為執行結束直至指定分段即第2次循環結束為止。因此,NAND記憶體20不重複地執行第2次循環,而自第3次循環之最初重新開始抹除處理。
NAND記憶體20於執行先行之抹除處理之過程中,使R/Bn信號為忙碌(圖10(b)之Busy(erase))。當自記憶體控制器10發佈無返轉之暫時中止指令時,在連循環2之分段即抹除電壓施加後之抹除驗證處理亦結束之後,將R/Bn信號設為就緒。繼而,自記憶體控制器10受理其他處理之指令。於其他處理之執行中,NAND記憶體20使R/Bn信號為忙碌(圖10(b)之Busy(other process))。當其他處理結束時,NAND記憶體20暫時將R/Bn信號設為就緒,並重新開始抹除處理。於抹除處理中,NAND記憶體20使R/Bn信號為忙碌(圖10(b)之Busy(erase))。
此處,無返轉之暫時中止之一特徵在於:若著眼於無返轉之暫時中止之抹除電壓Vera之變化,則於重新開始抹除時,自相較即將暫時中止之前之抹除電壓Vera而言升高之抹除電壓Vera重新開始抹除。
圖10(c)所示之案例係如下情形:由記憶體控制器10發佈了有返轉之暫時中止指令,NAND記憶體20使先行之抹除處理中斷並優先執行其他處理。NAND記憶體20按照有返轉之暫時中止指令,未完成處於中途之循環2之處理而使其於相對較短之時間內中斷。其後,NAND記憶體20按照來自記憶體控制器10之指令執行其他處理。
於其他處理結束後,NAND記憶體20繼續進行已中斷之抹除處理。於暫時中止前,抹除處理不等待至指定分段即第2次循環結束為 止而被中斷。因此,NAND記憶體20自重複地執行第2次循環(循環2')時起重新開始抹除處理。
NAND記憶體20於執行先行之抹除處理之過程中,使R/Bn信號為忙碌(圖10(c)之Busy(erase))。當自記憶體控制器10發佈了有返轉之暫時中止指令時,不繼續進行處理至循環2之分段為止而使處理中斷,將R/Bn信號設為就緒。繼而,自記憶體控制器10受理其他處理之指令。於其他處理之執行中,NAND記憶體20使R/Bn信號為忙碌(圖10(c)之Busy(other process))。當其他處理結束時,NAND記憶體20將R/Bn信號暫時設為就緒,重新開始抹除處理。抹除處理中,NAND記憶體20使R/Bn信號為忙碌(圖10(c)之Busy(erase))。
此處,有返轉之暫時中止之一特徵在於:若著眼於有返轉之暫時中止之抹除電壓Vera之變化,則有於重新開始抹除時,繼續使用即將暫時中止之前之抹除電壓Vera,再次自與即將暫時中止之前相同之電壓值之抹除電壓Vera重新開始抹除之情形。
因此,於進行有/無返轉之暫時中止之區分使用之記憶體系統1中,在暫時中止後之抹除重新開始時,觀測到抹除電壓Vera未自暫時中止前之抹除電壓Vera升壓之情形及自暫時中止前之抹除電壓Vera升壓之情形之2種狀態。
再者,於在1次抹除處理中發佈了幾次有返轉之暫時中止之情形時,根據該等暫時中止之時序,例如有只是反覆執行初次之循環(循環1),而不進行抹除處理之情況。
藉由實施有/無返轉之暫時中止之任一者,與未進行暫時中止之情形相比可快速地開始執行於先行之抹除處理中產生之其他處理。 又,若將有/無返轉之暫時中止加以比較,則因於有返轉之暫時中止中例如不等待執行中之循環之完成而使抹除處理中斷,故與無返轉之暫時中止相比暫時中止所導致之潛時(latency)進一步變小。
另一方面,對於有返轉之暫時中止,有於重新開始後之抹除處理中產生一部分處理之重複之情形,有抹除處理之執行時間長期化之傾向。又,有因抹除處理之重複執行而導致產生過度抹除等抹除處理之可靠性降低之擔憂。對於無返轉之暫時中止,無抹除處理之重複,於抹除處理中被施加抹除電壓Vera之合計時間與未被暫時中止之情形相比幾乎未發生改變。又,與有返轉之暫時中止相比,可抑制抹除處理之可靠性之降低。
如上所述,於未進行抹除暫時中止之情形及進行有/無返轉之暫時中止之情形之任一情形時,均存在優勢與劣勢,較佳為藉由將該等處理組合而謀求記憶體系統1之合理化。
圖11係表示實施形態之NAND記憶體20之編程時之電壓施加的時序圖之一例之圖。於圖11之時序圖中,表示對與處理對象之記憶胞連接之字元線之施加電壓Vcg,但更詳細而言,於編程時施加至字元線之電壓有編程電壓Vpgm及驗證電壓Vver。
如圖11所示,NAND記憶體20之序列產生器SEQ係按照來自記憶體控制器10之命令,對NAND記憶體20之指定之記憶胞執行資料之編程。具體而言,序列產生器SEQ對與編程對象之記憶胞連接之字元線施加編程電壓Vcg(Vpgm)。其次,序列產生器SEQ對與指定之記憶胞連接之字元線施加驗證電壓Vcg(Vver),並驗證是否已將目標之資料分別編程至編程對象之記憶胞中之指定數量以上之記憶胞(編程驗證)。於與應編程之 資料對應之閾值電壓未達到目標值之記憶胞剩餘固定數量以上時,序列產生器SEQ使編程電壓升壓並施加至字元線。
如此,序列產生器SEQ一面使編程電壓升壓,一面交替地施加驗證電壓,直至將目標之資料分別編程至編程對象記憶胞中之指定數量以上之記憶胞為止。將該1次編程電壓之施加處理與相繼於此之1次驗證處理之組設為1次循環。每當1次循環結束時,將已結束之循環次數登錄至NAND記憶體20之暫存器REG。藉此,於NAND記憶體20,記憶有編程處理之進展。換言之,於本實施形態之NAND記憶體20中,未以較循環小之單位記憶有進展。
此處,設為於第2次循環(循環2)中,記憶體控制器10例如自主機30接收到讀取請求等或獲取到指令佇列內之指令。記憶體控制器10基於上述編程暫時中止剩餘次數暫存器14f而決定新產生之其他處理與先行實施中之編程處理之NAND記憶體20之實施之優先順序。
圖11(a)所示之案例係如下情形:未由記憶體控制器10發佈有/無返轉之暫時中止之任一暫時中止指令,NAND記憶體20繼續進行先行之編程處理而不使其中斷。NAND記憶體20繼續進行處於中途之循環2之處理而不使其中斷,其後,例如執行循環3及循環4之處理。例如若設為至循環4為止編程處理完成,則NAND記憶體20於該編程處理完成後,按照來自記憶體控制器10之指令執行其他處理。
NAND記憶體20於執行先行之編程處理之過程中,使R/Bn信號為忙碌(圖11(a)之Busy(program))。當先行之編程處理結束時,NAND記憶體20將R/Bn信號設為就緒,並受理來自記憶體控制器10之與其他處理相關之指令。於其他處理之執行中,NAND記憶體20使R/Bn信 號為忙碌(圖11(a)之Busy(other process))。
圖11(b)所示之案例係如下情形:由記憶體控制器10發佈無返轉之暫時中止指令,NAND記憶體20使先行之編程處理中斷而優先執行其他處理。NAND記憶體20按照無返轉之暫時中止指令,完成處於中途之循環2之處理。其後,NAND記憶體20例如不轉移至下一次循環(循環3)而使編程處理中斷,按照來自記憶體控制器10之指令執行其他處理。
於其他處理結束後,NAND記憶體20繼續進行已中斷之編程處理。於暫時中止前,編程處理為執行結束直至指定分段即第2次循環結束為止。因此,NAND記憶體20不重複地執行第2次循環,而自第3次循環之最初重新開始編程處理。
NAND記憶體20於執行先行之編程處理之過程中,使R/Bn信號為忙碌(圖11(b)之Busy(program))。當自記憶體控制器10發佈無返轉之暫時中止指令時,在連循環2之分段即編程電壓施加後之編程驗證處理亦結束之後,將R/Bn信號設為就緒。繼而,自記憶體控制器10受理其他處理之指令。於其他處理之執行中,NAND記憶體20使R/Bn信號為忙碌(圖11(b)之Busy(other process))。當其他處理結束時,NAND記憶體20將R/Bn信號暫時設為就緒,並重新開始編程處理。於編程處理中,NAND記憶體20使R/Bn信號為忙碌(圖11(b)之Busy(program))。
此處,無返轉之暫時中止之一特徵在於:若著眼於無返轉之暫時中止之編程電壓Vcg之變化,則於重新開始編程時,自相較即將暫時中止之前之編程電壓Vcg而言升高之編程電壓Vcg重新開始編程。
圖11(c)所示之案例係如下情形:由記憶體控制器10發佈了有返轉之暫時中止指令,NAND記憶體20使先行之編程處理中斷而優先執 行其他處理。NAND記憶體20按照有返轉之暫時中止指令,未完成處於中途之循環2之處理而使其中斷。其後,NAND記憶體20按照來自記憶體控制器10之指令執行其他處理。
於其他處理結束後,NAND記憶體20繼續進行已中斷之編程處理。於暫時中止前,編程處理不等待至指定分段即第2次循環結束為止而被中斷。因此,NAND記憶體20係自重複地執行第2次循環(循環2')時起重新開始編程處理。
NAND記憶體20於執行先行之編程處理之過程中,使R/Bn信號為忙碌(圖11(c)之Busy(program))。當自記憶體控制器10發佈了有返轉之暫時中止指令時,不繼續進行處理至循環2之分段為止而使處理中斷,將R/Bn信號設為就緒。繼而,自記憶體控制器10受理其他處理之指令。於其他處理之執行中,NAND記憶體20使R/Bn信號為忙碌(圖11(c)之Busy(other process))。當其他處理結束時,NAND記憶體20將R/Bn信號暫時設為就緒,並重新開始編程處理。於編程處理中,NAND記憶體20使R/Bn信號為忙碌(圖11(c)之Busy(program))。
此處,有返轉之暫時中止之一特徵在於:若著眼於有返轉之暫時中止之編程電壓Vcg之變化,則有於重新開始編程時,繼續使用即將暫時中止之前之編程電壓Vcg,再次自相同之電壓值之編程電壓Vcg重新開始編程之情形。
因此,於進行有/無返轉之暫時中止之區分使用之記憶體系統1中,在暫時中止後之編程重新開始時,觀測到編程電壓Vcg未自暫時中止前之編程電壓Vcg升壓之情形與自暫時中止前之編程電壓Vcg升壓之情形之2種狀態。
藉由實施有/無返轉之暫時中止之任一者,與完全未進行暫時中止之情形相比可快速地開始執行於先行之編程處理中產生其他處理。又,若將有/無返轉之暫時中止加以比較,則因於有返轉之暫時中止中例如不等待執行中之循環之完成而使編程處理中斷,故與無返轉之暫時中止相比暫時中止所導致之潛時進一步變小。
另一方面,對於有返轉之暫時中止,有於重新開始後之編程處理中產生一部分處理之重複之情形,有編程處理之執行時間長期化之傾向。又,有因重複執行編程處理而導致產生表示資料之閾值電壓較目標值上升之過度編程、及對並非編程對象之記憶胞(非對象記憶胞)之編程干擾等編程處理之可靠性降低之擔憂。對於無返轉之暫時中止,無編程處理之重複,於編程處理中被施加編程電壓之合計時間與未被暫時中止之情形相比幾乎未發生改變。又,與有返轉之暫時中止相比,可抑制編程處理之可靠性之降低。
如上所述,於未進行編程暫時中止之情形及進行有/無返轉之暫時中止之情形之任一情形時,均存在優勢與劣勢,較佳為藉由將該等處理組合而謀求記憶體系統1之合理化。
再者,有於重新開始有/無返轉之暫時中止後之編程處理時,在編程電壓之施加前進行被稱為預驗證之處理之情形。將該情形示於圖12中。圖12係表示實施形態之NAND記憶體之編程時之電壓施加的時序圖之其他例之圖。
如圖12(a)所示,於圖12之例中,編程處理未被暫時中止之情形時之處理與上述圖11(a)之例相同。
如圖12(b)(c)所示,於藉由有/無返轉之暫時中止之任一者 使編程處理暫時中止之情形時,於圖12之例中,在重新開始編程處理時,與指定之編程電壓之施加後之驗證同樣地,對字元線施加驗證電壓。藉由此種預驗證處理,於確認到編程對象之記憶胞之現狀之閾值電壓之分佈之後,重新開始施加編程電壓。
如此,於預驗證中,無關於有/無返轉之暫時中止之區別,而將與通常之驗證時相同之電壓施加至字元線,不將預驗證動作視作返轉動作。即便於進行恢復後之預驗證之情形時,有/無返轉之暫時中止之區別亦為利用在預驗證後施加之編程電壓之值加以判斷。再者,於上述抹除處理中,亦有於恢復後進行預驗證之情形。
(抹除暫時中止之指令序列)
其次,使用圖13,對NAND記憶體20使作為先行之處理而執行之抹除暫時中止之情形時之指令序列進行說明。圖13係表示實施形態之記憶體系統1中之抹除暫時中止之指令序列的一例之圖。圖13(a)係有返轉之暫時中止之指令序列例,(b)係無返轉之暫時中止之指令序列例。
如圖13(a)所示,記憶體控制器10對NAND記憶體20輸出例如抹除之指示。具體而言,記憶體控制器10將意味著抹除對象之區塊BLK之位址發送之「60h」指令以及該位址(Addr)發送至NAND記憶體20。繼而,記憶體控制器10將抹除指令「D0h」發送至NAND記憶體20並使其執行與該位址對應之區塊BLK之抹除。再者,抹除係對指定之區塊BLK內之所有記憶胞進行。
NAND記憶體20使R/Bn信號為忙碌而開始執行抹除(圖13(a)之Busy(erase))。NAND記憶體20將與成為對象之區塊BLK內之記憶 胞連接之所有字元線設為電源電位(VSS)而對NAND記憶體20之基板施加抹除電壓Vera。抹除電壓Vera係一面階段性地升壓一面施加。於各階段中,NAND記憶體20驗證成為對象之記憶胞是否成為抹除狀態。於未成為抹除狀態之記憶胞存在固定數量以上時,NAND記憶體20進而使抹除電壓Vera升壓,且反覆執行該處理直至指定數量以上之成為對象之記憶胞成為抹除狀態為止。此處,如上所述,例如抹除電壓Vera之1組施加處理及驗證處理相當於抹除處理之1次循環。於抹除處理中反覆執行1次以上之循環直至對象之記憶胞全部成為抹除狀態為止。
當於表示抹除處理之執行中之「Busy(erase)」(圖13(a))狀態下,自主機30接收到例如讀取請求時,記憶體控制器10例如將有返轉之暫時中止指令「Exh」發送至NAND記憶體20。NAND記憶體20當接收到有返轉之暫時中止指令時,未繼續至循環之結束時間點而於相對較短之時間內暫時中止抹除之處理,使R/Bn信號為就緒。記憶體控制器10係根據R/Bn信號藉由或藉由發佈狀態讀取指令,而辨識NAND記憶體20之就緒/忙碌狀態。
當NAND記憶體20成為就緒狀態時,記憶體控制器10按照來自主機30之讀取請求,對NAND記憶體20發出讀取之指示。具體而言,記憶體控制器10將意味著讀取對象之記憶胞之位址發送之「00h」指令以及該位址(Addr)發送至NAND記憶體20。繼而,記憶體控制器10將讀取指令「D0h」發送至NAND記憶體20並執行自與該位址對應之記憶胞之讀取。NAND記憶體20使R/Bn信號為忙碌而開始讀取(圖13(a)之Busy(read))。
當來自指定之記憶胞之讀取結束而R/Bn信號成為就緒時, 記憶體控制器10指示讀取對象之記憶胞之行位址並使(「05h」指令及位址(Addr)之發送)NAND記憶體20輸出資料(「e0h」指令及讀取資料(R-Data)之輸出)。藉此,針對來自主機30之讀取請求之讀取處理結束。
記憶體控制器10將使抹除之暫時中止時之NAND記憶體20之內部狀態恢復之「27h」指令發送至NAND記憶體20。更具體而言,「27h」指令係使NAND記憶體20之序列產生器SEQ獲取已中斷之抹除處理之重新開始所需之資訊、例如於抹除處理中斷前結束之循環次數等資訊之指令。基於如此獲取之資訊,序列產生器SEQ使NAND記憶體20之內部狀態恢復。繼而,記憶體控制器10將「60h」指令、抹除對象位址(Addr)及抹除指令「D0h」發送至NAND記憶體20而使已暫時中止之抹除重新開始。
NAND記憶體20使R/Bn信號為忙碌並重新開始抹除(圖13(a)之Busy(erase))。抹除處理因有返轉之暫時中止而被暫時中止,故而有可能於不確定為第幾次之循環之中途被中斷。於此種情形時,被中斷之循環於暫時中止時不被計入至已結束之循環。即,被中斷之循環不包含於NAND記憶體20之暫存器REG中所登錄之已結束之循環次數。因此,NAND記憶體20使抹除電壓Vera恢復至被中斷之循環之值,自被中斷之循環之最初執行抹除。
如此,對於有返轉之暫時中止,有反覆執行於暫時中止前結束之抹除處理之動作之情況。因此,有如下情形:藉由暫時中止,抹除之合計時間與未暫時中止之情形相比變長之情形。
其次,對無返轉之暫時中止之指令序列進行說明。
如圖13(b)所示,記憶體控制器10發送「60h」指令、抹除 對象位址(Addr及抹除指令「D0h」並使NAND記憶體20執行抹除。
NAND記憶體20將與成為對象之區塊BLK內之記憶胞連接之字元線設為電源電位,一面階段性地升壓一面將抹除電壓Vera施加至NAND記憶體20之基板。
當於抹除處理之執行中例如自主機30接收到讀取請求時,記憶體控制器10例如將無返轉之暫時中止指令「Eyh」發送至NAND記憶體20。NAND記憶體20於抹除處理處於抹除電壓Vera之施加處理及驗證處理之循環之中途時,在繼續進行抹除處理直至該循環結束之後暫時中止。該循環之結束時間點相當於上述指定分段,於NAND記憶體20之暫存器REG,此時之循環被登錄為於暫時中止前已結束之循環次數。
當抹除暫時中止,R/Bn信號成為就緒時,記憶體控制器10按照來自主機30之讀取請求,發送上述「00h」指令、讀取對象位址(Addr)及讀取指令「D0h」並使NAND記憶體20執行讀取。又,記憶體控制器10發送「05h」指令、讀取對象位址(Addr)及「e0h」指令並使NAND記憶體20輸出讀取資料(R-Data)。
記憶體控制器10發送「27h」指令並使NAND記憶體20恢復抹除之暫時中止時之內部狀態。即,記憶體控制器10發送「60h」指令、抹除對象位址(Addr)及抹除指令「D0h」。NAND記憶體20於暫時中止時進行抹除處理直至指定分段、即執行中之循環之結束時間點為止。因此,NAND記憶體20使抹除電壓Vera升壓至暫時中止時之電壓之下一電壓,而重新開始執行抹除(圖13(b)之Busy(erase))。
如此,對於無返轉之暫時中止,不進行重複處理而重新開始抹除。因此,即便暫時中止,於抹除處理中被施加抹除電壓Vera之合計 時間與未被暫時中止之情形相比幾乎未改變。
又,如上所述,對於有/無返轉之暫時中止,自發佈暫時中止指令後至NAND記憶體20成為就緒為止之時間可能互不相同。即,自發佈暫時中止指令後至NAND記憶體20成為就緒為止之最大時間有無返轉之暫時中止較有返轉之暫時中止長之情形。但,於在無返轉之暫時中止中,亦偶然以與指定分段一致之時序發佈了暫時中止指令之情形時,NAND記憶體20成為就緒為止之時間亦存在與有返轉之暫時中止相比實質未發生改變之情形。
(編程暫時中止之指令序列)
其次,使用圖14,對將NAND記憶體20作為先行之處理而執行之編程暫時中止之情形時之指令序列進行說明。圖14係表示實施形態之記憶體系統1中之編程暫時中止之指令序列的一例之圖。圖14(a)係有返轉之暫時中止之指令序列例,(b)係無返轉之暫時中止之指令序列例。
如圖14(a)所示,記憶體控制器10對NAND記憶體20發出例如編程之指示。具體而言,記憶體控制器10將意味著編程對象之記憶胞之位址發送之「8xh」指令以及該位址(Addr1)發送至NAND記憶體20。繼而,記憶體控制器10將編程指令「1xh」及寫入資料「DIN」發送至NAND記憶體20並使NAND記憶體20執行對與該位址對應之記憶胞之編程。
NAND記憶體20使R/Bn信號為忙碌後開始編程之執行。NAND記憶體20對成為對象之各個記憶胞之閘極施加編程電壓Vcg。編程電壓Vcg一面階段性地升壓,一面被施加。於各階段中,NAND記憶體20 對是否已對成為對象之記憶胞分別編程有目標之資料加以驗證。於在與應編程之資料對應之閾值電壓未達到指定值之記憶胞存在固定數量以上時,NAND記憶體20進而使編程電壓Vcg升壓,並反覆執行該處理直至將目標之資料編程至指定數量以上之成為對象之記憶胞為止。此處,如上所述,例如編程電壓Vcg及驗證之1組相當於編程處理之1次循環。於編程處理中反覆執行1次以上之循環直至將目標之資料編程至指定數量以上之對象之記憶胞為止。
當於編程處理之執行中例如自主機30接收到讀取請求時,記憶體控制器10例如將有返轉之暫時中止指令「Pxh」發送至NAND記憶體20。NAND記憶體20當接收到有返轉之暫時中止指令時,與無返轉之暫時中止之情形相比,於更短時間內暫時中止編程處理,使R/Bn信號為就緒。
當編程暫時中止時,記憶體控制器10按照來自主機30之讀取請求,發送上述「00h」指令、讀取對象位址(Addr2)及讀取指令「30h」並使NAND記憶體20執行讀取。又,記憶體控制器10使NAND記憶體20輸出讀取資料(「05h」指令及位址(Addr)之發送、「e0h」指令之發送及讀取資料之輸出(圖14(a)之R-Data))。
記憶體控制器10發送「48h」指令並使NAND記憶體20重新開始編程之執行。編程處理係藉由有返轉之暫時中止而暫時中止,故而有可能於不確定為第幾次之循環之中途被中斷。如此,根據插入暫時中止之時序,被中斷之循環於暫時中止時未被計數為已結束之循環,不包含於NAND記憶體20之暫存器REG中所登錄之已結束之循環次數。即,如上所述,NAND記憶體20未以較循環小之單位記憶有進展,故而並未準確地記 憶有即將暫時中止之前之處理,而重複地執行一部分之處理。更具體而言,NAND記憶體20使編程電壓Vcg恢復為與被中斷之循環對應之編程電壓之值,自被中斷之循環之最初執行編程。
如此,對於有返轉之暫時中止,有反覆執行於暫時中止前已結束之編程處理之動作之情況。因此,有如下情形:藉由暫時中止,編程之合計時間變得較未被暫時中止之情形長。
其次,對無返轉之暫時中止之指令序列進行說明。
如圖14(b)所示,記憶體控制器10發送「8xh」指令、編程對象位址(Addr1)及編程指令「1xh」並使NAND記憶體20執行編程。
NAND記憶體20一面階段性地升壓,一面將編程電壓Vcg施加至成為對象之各個記憶胞之閘極。
當於編程處理之執行中例如自主機30接收到讀取請求時,記憶體控制器10例將如無返轉之暫時中止指令「Pyh」發送至NAND記憶體20。NAND記憶體20於編程處理處於編程電壓Vcg之施加處理及驗證之循環之中途時,在繼續進行編程處理直至該循環結束為止之後暫時中止。該循環之分段相當於上述指定分段,於NAND記憶體20之暫存器REG,此時之循環被登錄為暫時中止前已結束之循環次數。
當編程暫時中止,R/Bn信號成為就緒時,記憶體控制器10按照來自主機30之讀取請求,發送上述「00h」指令、讀取對象位址(Addr2)及讀取指令「30h」並使NAND記憶體20執行讀取。又,記憶體控制器10使NAND記憶體20輸出讀取資料(「05h」指令及位址(Addr)之發送、「e0h」指令之發送及讀取資料之輸出(圖14(b)之R-Data))。
記憶體控制器10發送「48h」指令並使NAND記憶體20重 新開始執行編程。NAND記憶體20於暫時中止時進行編程處理直至指定分段即執行中之循環之結束時間點為止。因此,NAND記憶體20使編程電壓Vcg升壓至暫時中止時之電壓之下一電壓為止,而重新開始執行編程。
如此,對於無返轉之暫時中止,不進行重複處理而重新開始編程。因此,即便暫時中止,於編程處理中被施加編程電壓Vcg之合計時間與未被暫時中止之情形相比幾乎未發生改變。
(抹除暫時中止處理之例)
其次,使用圖15及圖16,對將NAND記憶體20作為先行之處理而執行之抹除按照計劃數暫時中止之情形時的處理之程序之一例進行說明。圖15係表示決定利用實施形態之記憶體控制器10之抹除時之有/無返轉之暫時中止之計劃數的處理之程序之一例之流程圖。
於本例中,記憶體控制器10之控制部11所具備之資料獲取部11a獲取經過目前為止所執行之壓緊處理等之後已抹除之區塊數,並於已抹除區塊數儲存部14a中儲存完畢。利用資料獲取部11a之已抹除區塊數之獲取及向已抹除區塊數儲存部14a之儲存可於任意之時序進行。
如圖15所示,記憶體控制器10之指令發佈部11c於指定之時序對NAND記憶體20發佈抹除指令(步驟S101)。運算部11b獲取已抹除區塊數儲存部14a中所儲存之已抹除區塊數(步驟S102)。運算部11b參照抹除暫時中止計劃表14b,以與所獲取之已抹除區塊數對應之方式,決定有/無返轉之暫時中止之計劃數(步驟S103)。運算部11b將所決定之計劃數設為有/無返轉之暫時中止之剩餘次數,並登錄至抹除暫時中止剩餘次數暫存器14c(步驟S104)。
圖16係表示實施形態之記憶體系統1中之抹除暫時中止處理的程序之一例之流程圖。
如圖16所示,當於NAND記憶體20執行抹除作為先行之處理時,自主機30產生存在新請求之情形等之其他處理之請求時(步驟S201),運算部11b確認抹除暫時中止剩餘次數暫存器14c之有返轉之暫時中止之剩餘次數是否為零(步驟S202)。
若抹除暫時中止剩餘次數暫存器14c之有返轉之暫時中止之剩餘次數並非為零(步驟S202:否),則指令發佈部11c發佈有返轉之暫時中止指令(步驟S203)。指令發佈部11c對NAND記憶體20發佈使其執行其他處理之執行指令(步驟S204)。又,若NAND記憶體20中之其他處理完成,則指令發佈部11c對NAND記憶體20發佈恢復指令。NAND記憶體20根據自指令發佈部11c接收到之恢復指令而恢復(重新開始抹除處理)。運算部11b將抹除暫時中止剩餘次數暫存器14c之有返轉之暫時中止之剩餘次數減少「1」(步驟S205)。根據以上,抹除暫時中止處理結束。
若抹除暫時中止剩餘次數暫存器14c之有返轉之暫時中止之剩餘次數為零(步驟S202:是(Yes)),則運算部11b確認抹除暫時中止剩餘次數暫存器14c之無返轉之暫時中止之剩餘次數是否為零(步驟S206)。
若抹除暫時中止剩餘次數暫存器14c之無返轉之暫時中止之剩餘次數為零(步驟S206:否(No)),則指令發佈部11c發佈無返轉之暫時中止指令(步驟S207)。指令發佈部11c對NAND記憶體20發佈使其執行其他處理之執行指令(步驟S208)。又,若NAND記憶體20中之其他處理完成,則指令發佈部11c對NAND記憶體20發佈恢復指令。NAND記憶體20根據自指令發佈部11c接收到之恢復指令而恢復(重新開始抹除處理)。運 算部11b將抹除暫時中止剩餘次數暫存器14c之無返轉之暫時中止之剩餘次數減少「1」(步驟S209)。根據以上,抹除暫時中止處理結束。
若抹除暫時中止剩餘次數暫存器14c之無返轉之暫時中止之剩餘次數為零(步驟S206:是),則等待NAND記憶體20中之抹除之完成(步驟S210),指令發佈部11c對NAND記憶體20發佈使其執行其他處理之執行指令(步驟S211)。
根據以上,NAND記憶體20按照計劃數使作為先行之處理而執行之抹除暫時中止之情形時之處理結束。
此處,使用圖17,對上述處理中之有/無返轉之暫時中止之剩餘次數之時間序列變化進行說明。圖17係表示實施形態之記憶體系統所管理之有/無返轉的暫時中止之剩餘次數之時間序列變化之圖。
如圖17所示,設為於NAND記憶體20為就緒狀態之情形時,已抹除區塊數為「2」。即,於已抹除區塊數儲存部14a儲存有「2」。於未發佈抹除指令之該時間點,在抹除暫時中止剩餘次數暫存器14c,有/無返轉之暫時中止之剩餘次數未作設定。
當指令發佈部11c發佈抹除指令時,運算部11b自已抹除區塊數儲存部14a獲取已抹除區塊數,參照抹除暫時中止計劃表14b,將有/無返轉之暫時中止之計劃數分別決定為「1」。又,藉由運算部11b,抹除暫時中止剩餘次數暫存器14c之有/無返轉之暫時中止之剩餘次數分別被登錄「1」。
此處,設為產生了針對抹除執行中之NAND記憶體20之第1次之其他處理(圖中為其他處理1)之請求。運算部11b自抹除暫時中止剩餘次數暫存器14c之數值選擇有返轉之暫時中止作為此處之處理。指令發 佈部11c對NAND記憶體20發佈有返轉之暫時中止指令,進而發佈使NAND記憶體20執行第1次之其他處理之執行指令。又,指令發佈部11c於執行其他處理後,對NAND記憶體20發佈使其重新開始抹除處理之恢復指令。運算部11b將抹除暫時中止剩餘次數暫存器14c之有返轉之暫時中止之剩餘次數減少並設為「0」。
NAND記憶體20於不等待至指定分段為止而中斷抹除處理,並實施第1次之其他處理之後,按照來自記憶體控制器10之恢復指令,視需要一面反覆執行中斷前之一部分處理一面重新開始抹除處理。設為於重新開始抹除處理後,產生第2次之其他處理(圖中為其他處理2)之請求。運算部11b根據抹除暫時中止剩餘次數暫存器14c之數值,選擇無返轉之暫時中止作為此處之處理。指令發佈部11c對NAND記憶體20發佈無返轉之暫時中止指令,進而發佈使NAND記憶體20執行第2次之其他處理之執行指令。又,指令發佈部11c於執行其他處理後,對NAND記憶體20發佈使其重新開始抹除處理之恢復指令。運算部11b使抹除暫時中止剩餘次數暫存器14c之無返轉之暫時中止之剩餘次數減少並設為「0」。
NAND記憶體20於將抹除處理以指定分段中斷,並實施第2次之其他處理之後,按照來自記憶體控制器10之恢復指令,不反覆執行中斷前之一部分處理而重新開始抹除處理。設為於重新開始抹除處理後,產生第3次之其他處理(圖中為其他處理3)之請求。關於抹除暫時中止剩餘次數暫存器14c之數值,有/無返轉之暫時中止均為零,故而此處不選擇有/無返轉之暫時中止之任一者,亦不發佈任一暫時中止指令。NAND記憶體20使抹除處理不中斷地完成。其後,指令發佈部11c對NAND記憶體20發佈使其執行第3次之其他處理之執行指令。
(編程暫時中止處理之例)
其次,使用圖18,對NAND記憶體20使作為先行之處理而執行之編程暫時中止之情形時的處理之程序之一例進行說明。圖18係表示決定利用實施形態之記憶體系統1之編程時之有/無返轉之暫時中止之計劃數的處理之程序之一例之流程圖。
於本例中,記憶體控制器10之資料獲取部11a獲取根據所儲存之待寫入資料量而發生變化之寫入緩衝器14g之空閒容量,並於寫入緩衝器空閒容量儲存部14d中儲存完畢。利用資料獲取部11a之寫入緩衝器14g之空閒容量之獲取及向寫入緩衝器空閒容量儲存部14d之儲存可於任意之時序進行。
如圖18所示,記憶體控制器10之指令發佈部11c於指定之時序對NAND記憶體20發佈編程指令(步驟S301)。運算部11b獲取寫入緩衝器空閒容量儲存部14d中所儲存之寫入緩衝器14g之空閒容量(步驟S302)。運算部11b參照編程暫時中止計劃表14e,以與所獲取之寫入緩衝器14g之空閒容量對應之方式,決定有/無返轉之暫時中止之計劃數(步驟S303)。運算部11b將所決定之計劃數設為有/無返轉之暫時中止之剩餘次數,並登錄至編程暫時中止剩餘次數暫存器14f(步驟S304)。
圖19係表示實施形態之記憶體系統1中之編程暫時中止處理的程序之一例之流程圖。
如圖19所示,當於NAND記憶體20執行編程作為先行之處理時,自主機30產生存在新請求之情形等之其他處理之請求時(步驟S401),運算部11b確認編程暫時中止剩餘次數暫存器14f之有返轉之暫時 中止之剩餘次數是否為零(步驟S402)。
若編程暫時中止剩餘次數暫存器14f之有返轉之暫時中止之剩餘次數為零(步驟S402:否),則指令發佈部11c發佈有返轉之暫時中止指令(步驟S403)。指令發佈部11c對NAND記憶體20發佈使其執行其他處理之執行指令(步驟S404)。又,若NAND記憶體20中之其他處理完成,則指令發佈部11c對NAND記憶體20發佈恢復指令。NAND記憶體20根據自指令發佈部11c接收到之恢復指令而恢復(重新開始編程處理)。運算部11b將編程暫時中止剩餘次數暫存器14f之有返轉之暫時中止之剩餘次數減少「1」(步驟S405)。根據以上,編程暫時中止處理結束。
若編程暫時中止剩餘次數暫存器14f之有返轉之暫時中止之剩餘次數為零(步驟S402:是),則運算部11b確認編程暫時中止剩餘次數暫存器14f之無返轉之暫時中止之剩餘次數是否為零(步驟S406)。
若編程暫時中止剩餘次數暫存器14f之無返轉之暫時中止之剩餘次數為零(步驟S406:否),則指令發佈部11c發佈無返轉之暫時中止指令(步驟S407)。指令發佈部11c對NAND記憶體20發佈使其執行其他處理之執行指令(步驟S408)。又,若NAND記憶體20中之其他處理完成,則指令發佈部11c對NAND記憶體20發佈恢復指令。NAND記憶體20根據自指令發佈部11c接收到之恢復指令而恢復(重新開始編程處理)。運算部11b將編程暫時中止剩餘次數暫存器14f之無返轉之暫時中止之剩餘次數減少「1」(步驟S409)。根據以上,編程暫時中止處理結束。
若編程暫時中止剩餘次數暫存器14f之無返轉之暫時中止之剩餘次數為零(步驟S406:是),則等待NAND記憶體20中之編程之完成(步驟S410),指令發佈部11c對NAND記憶體20發佈使其執行其他處理之 執行指令(步驟S411)。
根據以上,NAND記憶體20按照計劃數使作為先行之處理而執行之編程暫時中止之情形時之處理結束。
(比較例)
其次,對未進行有/無返轉之暫時中止及無暫時中止之區分使用之比較例之記憶體系統進行說明。
比較例1之記憶體系統完全不進行暫時中止。因此,不會產生快閃處理及壓緊處理等先行之處理之延遲。然而,例如即便為抹除區塊數之空閒容量等充足之狀態,亦無法響應來自主機之請求直至先行之處理結束為止,而容易產生針對讀取請求及寫入請求之潛時增大之事態。又,即便為寫入緩衝器之空閒容量等充足之狀態,亦無法響應來自主機之請求直至先行之處理結束為止,主要容易產生針對讀取請求之潛時增大之事態。
比較例2之記憶體系統始終進行有返轉之暫時中止。因此,為了執行先行之處理而無法立即響應來自主機之請求,從而主要容易避免針對讀取請求之潛時增大之事態。然而,因快閃處理、壓緊處理及抹除處理等之延遲而導致已抹除區塊數或寫入緩衝器之空閒容量不足,無法響應來自主機之請求直至使該等不足恢復為止,容易產生針對寫入請求之潛時增大之事態。又,有反覆執行暫時中止前之處理之情況,亦有先行之處理之合計時間之長期化及記憶胞之疲敝之缺點。又,進而,指定區塊於抹除狀態下被長時間放置後產生資料滯留等,從而亦容易產生於下一次編程時無法實現所期望之編程等可靠性之降低。
比較例3之記憶體系統始終進行無返轉之暫時中止。因此,與有返轉之暫時中止相比不易產生快閃處理及壓緊處理等先行之處理之延遲。又,對於來自主機之請求亦可某種程度快速地響應。然而,有如下情形:無法應對快閃處理及壓緊處理等產生極端之延遲之情形,又,無法充分地快速響應來自主機之緊急度較高之讀取請求。亦產生如下基於有返轉之暫時中止之缺點:雖然繼續進行暫時中止前之先行之處理,但並非完全無由暫時中止所致之影響,指定區塊因於抹除狀態或編程之中途之狀態下被長時間放置而導致可靠性降低。
如上所述,於固定之暫時中止控制中,無法追隨於時刻發生變化之記憶體系統之狀態,有時無法採取最佳之應對。
實施形態之記憶體系統1動態地區分使用有/無返轉之暫時中止及無暫時中止。藉此,可適當變更先行之處理與對應於來自主機30之請求之處理等其他處理之優先次序。結果,總體來看,可縮短針對來自主機30之請求之應答時間。
實施形態之記憶體系統1係藉由根據已抹除區塊數及寫入緩衝器14g之空閒容量來設定有/無返轉之暫時中止之計劃數,從而動態地區分使用有/無返轉之暫時中止及無暫時中止。藉此,可根據記憶體系統1之狀態,採取合理之應對,可縮短針對來自主機30之請求之應答時間。
再者,於實施形態之記憶體系統1中,設為記憶體控制器10區分使用有返轉之暫時中止、無返轉之暫時中止及無暫時中止,但並不限定於此。記憶體控制器亦可設為區分使用有/無返轉之暫時中止及無暫時中止中之至少任兩者。即,亦可為記憶體控制器區分使用有返轉之暫時中止與無暫時中止。又,亦可為記憶體控制器區分使用無返轉之暫時中止 及無暫時中止。又,亦可為記憶體控制器區分使用有返轉之暫時中止與無返轉之暫時中止。如此,藉由記憶體控制器動態地區分使用任兩者,與僅固定地使用該等任一者之比較例1~3相比,可獲得縮短對主機之應答時間之效果。
又,於實施形態之記憶體系統1中,設為於NAND記憶體20執行抹除處理時,記憶體控制器10基於已抹除區塊數,使有/無返轉之暫時中止及無暫時中止之次數合理化,但並不限定於此。記憶體控制器亦可不伴隨追加之抹除處理而基於可編程之群集數、頁數或字元線數等,使有/無返轉之暫時中止及無暫時中止之次數合理化。可使用上述所列舉之群集數、頁數或字元線數等解像度較區塊數之高之指標來決定暫時中止計劃數,可更精密地使有/無返轉之暫時中止及無暫時中止之次數合理化。
又,於實施形態之記憶體系統1中,設為藉由抹除暫時中止剩餘次數暫存器14c及編程暫時中止剩餘次數暫存器14f中之有/無返轉之暫時中止之剩餘次數管理,而控制有/無返轉之暫時中止及無暫時中止之次數,但次數控制之方法並不限定於此。
作為有/無返轉之暫時中止及無暫時中止之次數控制之其他方法,例如亦可執行控制有返轉/無返轉之暫時中止之執行比率等處理。抹除處理中之有/無返轉之暫時中止之執行比率係例如可為每當產生其他處理之請求時,參照已抹除區塊數,根據抹除暫時中止計劃表獲取,亦可為於發佈了抹除指令之階段,使用根據抹除暫時中止計劃表所決定之比率。
例如,於欲將有返轉/無返轉之暫時中止之執行比率設為2:1之情形時,設為在產生針對先行之抹除處理或編程處理之其他處理 時,生成[0,3)(包含0,且不包含3之含義)之範圍之均勻隨機數值,且均勻隨機數值為x,於0≦x<2時執行有返轉之暫時中止,於2≦x<3時執行無返轉之暫時中止。
作為有/無返轉之暫時中止及無暫時中止之次數控制之又一方法,例如亦可限制有返轉/無返轉之暫時中止之最大可執行數。於此情形時,若有/無返轉之暫時中止達到該最大可執行數,則之後,暫時中止可設為不進行等。
(變化例1)
其次,使用圖20及圖21,對實施形態之變化例1之記憶體系統進行說明。變化例1之記憶體系統與上述實施形態之不同點在於:基於記憶體系統之狀態,修正抹除暫時中止計劃表。以下,對先行之處理為抹除之情形時進行說明,但於先行之處理為編程之情形時亦可應用以下所述之構成。
圖20係表示實施形態之變化例1之記憶體控制器所持有的抹除暫時中止計劃表14j之一例之圖。對於抹除暫時中止計劃表14j,例如於已抹除區塊數為2之情形時,有返轉之暫時中止之計劃數成為「N+Δ」。又,例如於已抹除區塊數為1之情形時,無返轉之暫時中止之比率成為「N+Δ」。N係預定之指定數量,Δ係根據以下所說明計劃修正表求出之修正值。
圖21係表示基於實施形態之變化例1之記憶體控制器所持有之寫入佇列深度(QD:Queue Depth)的計劃修正表14k之一例之圖。計劃修正表14k儲存於記憶體控制器所具備之RAM。寫入QD係指自主機對記憶體系統發佈之寫入請求之數量中之未應答之寫入請求之數量,於記憶 體系統中,此後將成為應寫入至NAND記憶體20之資料量即寫入量及寫入速度之指標。再者,於圖21之例中,使用寫入QD之指定期間內之平均值。於算出平均值時,亦可針對各個寫入請求進行利用寫入資料之大小之加權。
於變化例1之記憶體系統中,記憶體控制器之運算部例如基於計劃修正表14k對抹除暫時中止計劃表14j進行修正。寫入QD較大意味著已抹除區塊將更快地被消耗,若經常發出暫時中止指令則有已抹除區塊耗盡之虞。運算部例如於已抹除區塊數為2且寫入QD之平均值為0之情形時,使用計劃修正表14k之計劃修正值「1」將有返轉之暫時中止之計劃數設為(N+1)。藉此,有/無返轉之暫時中止之計劃數分別被決定(N+1)、1。又,例如,運算部於已抹除區塊數為1且寫入QD之平均值為3之情形時,使用計劃修正表14k之修正值「-1」並將無返轉之暫時中止之比率設為(N+(-1))、即(N-1)。藉此,有/無返轉之暫時中止之計劃數分別被決定為0、(N-1)。再者,於(N-1)之值成為負數時被設定為零。
變化例1之記憶體系統利用基於寫入QD之計劃修正表14k對抹除暫時中止計劃表14j之計劃數進行修正。藉此,可預測已抹除區塊之今後之消耗量,可抑制已抹除區塊耗盡。
(變化例2)
其次,使用圖20及圖22,對實施形態之變化例2之記憶體系統進行說明。變化例2之記憶體系統與上述實施形態不同點在於:基於編程/抹除之循環數,修正抹除暫時中止計劃表。以下,對先行之處理為抹除之情形時進行說明,但於先行之處理為編程之情形時亦可應用以下所述之構成。
變化例2之記憶體控制器亦具有上述圖20之抹除暫時中止計劃表14j。
圖22係表示基於實施形態之變化例2之記憶體控制器所持有之編程/抹除之循環數的計劃修正表14l之一例之圖。計劃修正表14l儲存於記憶體控制器所具備之RAM。此處之編程/抹除之循環數係對此時成為暫時中止對象之區塊執行之編程及抹除之循環數。此處,「成為暫時中止對象之區塊」意味著執行先於其他處理進行之處理中之區塊,且為了使其他處理之執行優先而暫時中止先行之處理。
於變化例1之記憶體系統中,記憶體控制器之運算部例如基於計劃修正表14l修正抹除暫時中止計劃表14j。編程及抹除之循環數較多係指與此相應地,該區塊之記憶胞之疲敝加重,較理想為避免記憶胞之該程度以上之疲敝。運算部例如於已抹除區塊數為2且暫時中止對象之區塊之編程/抹除之循環數為200之情形時,使用計劃修正表14l之修正值「0」將有返轉之暫時中止之計劃數設為(N+0)、即N。藉此,有/無返轉之暫時中止之計劃數分別被決定為N、1。又,例如,運算部於已抹除區塊數為1,且暫時中止對象之區塊之編程/抹除之循環數為600之情形時,使用計劃修正表14l之修正值「-2」並將無返轉之暫時中止之計劃數設為(N-2)。藉此,有/無返轉之暫時中止之計劃數分別被決定為0、(N-2)。再者,於(N-2)之值成為負數時係設定為零。
變化例2之記憶體系統係利用基於編程/抹除之循環數之計劃修正表14l對抹除暫時中止計劃表14j之計劃數進行修正。藉此,例如可抑制伴隨疲敝加重之記憶胞之暫時中止之可靠性降低。
(變化例3)
其次,使用圖20及圖23,對實施形態之變化例3之記憶體系統進行說明。變化例3之記憶體系統與上述實施形態之不同點在於:基於來自主機30之讀取請求之發佈比率,修正抹除暫時中止計劃表。以下,對先行之處理為抹除之情形時進行說明,但於先行之處理為編程之情形時亦可應用以下所述之構成。
變化例3之記憶體控制器亦具有上述圖20之抹除暫時中止計劃表14j。
圖23係表示基於實施形態之變化例3之記憶體控制器所持有之讀取請求之發佈比率的計劃修正表14m之一例之圖。計劃修正表14m儲存於記憶體控制器所具備之RAM。此處之讀取請求之發佈比率係自主機向記憶體系統發佈之讀取請求之數量相對於讀取請求及寫入請求之合計數之比率。此處,讀取請求及寫入請求之合計數例如可於相當於即將接收到之指定數量之指令量之期間,進行計數。或,讀取請求及寫入請求之合計數例如可於相當於即將到來之指定時間內所接收到之指令量之期間,進行計數。亦可為於算出比率時,對各個讀取請求進行基於讀取資料之大小之加權,對各個寫入請求進行基於寫入資料之大小之加權。
於變化例3之記憶體系統中,記憶體控制器之運算部例如基於計劃修正表14m對抹除暫時中止計劃表14j進行修正。於讀取請求之數量較多,即讀取請求之發佈比率較時,已抹除區塊耗盡之擔憂較少。另一方面,於寫入請求之數量較多,即讀取請求之發佈比率較低時,已抹除區塊耗盡之擔憂增加。運算部例如於已抹除區塊數為2,來自主機之讀取請求之發佈比率為1/(1+0)即1之情形時,使用計劃修正表14m之修正值 「2」將有返轉之暫時中止之計劃數設為(N+2)。藉此,有/無返轉之暫時中止之計劃數分別被決定為(N+2)、1。又,例如,運算部於已抹除區塊數為1,來自主機之讀取請求之發佈比率為3/(7+3)即0.3之情形時,使用計劃修正表14m之修正值「-1」將無返轉之暫時中止之計劃數設為(N-1)。藉此,有/無返轉之暫時中止之計劃數分別被決定為0、(N-1)。再者,於(N-1)之值成為負數時被設定為零。
變化例3之記憶體系統係利用基於讀取請求之發佈比率之計劃修正表14m對抹除暫時中止計劃表14j之計劃數進行修正。藉此,可抑制已抹除區塊耗盡。
(變化例4)
其次,使用圖20~圖23,對實施形態之變化例4之記憶體系統進行說明。變化例4之記憶體系統與上述實施形態之不同點在於:將圖21~圖23為止之計劃修正表14k~14m之若干個組合而使用。即,記憶體控制器之運算部例如基於計劃修正表14k~14m之全部而對抹除暫時中止計劃表14j進行修正。
變化例4之記憶體控制器亦具有上述圖20之抹除暫時中止計劃表14j。
運算部例如於已抹除區塊數為2,寫入QD之平均值為0,暫時中止對象之區塊之編程/抹除之循環數為200,且來自主機之讀取請求之發佈比率為1之情形時,使用計劃修正表14k之修正值「1」、計劃修正表14l之修正值「0」及計劃修正表14m之修正值「2」並將有返轉之暫時中止之計劃數設為(N+1+0+2)、即(N+3)。藉此,有/無返轉之暫時中 止之計劃數分別被決定為(N+3)、1。
又,例如,運算部係於已抹除區塊數為1,寫入QD之平均值為3,暫時中止對象之區塊之編程/抹除之循環數為600,來自主機之讀取請求之發佈比率為0.3之情形時,使用計劃修正表14k之修正值「-1」、計劃修正表14l之修正值「-2」及計劃修正表14m之修正值「-1」並將無返轉之暫時中止之計劃數設為(N-1-2-1)即(N-4)。藉此,有/無返轉之暫時中止之計劃數分別被決定為0、(N-4)。再者,於(N-4)之值為負數時被設定為零。
(變化例5)
其次,使用圖20、圖22、及圖24,對實施形態之變化例5之記憶體系統進行說明。變化例5之記憶體系統於基於寫入QD、編程/抹除之循環數、及讀取請求/寫入請求之發佈比率等若干個資料,修正抹除暫時中止計劃表之情形時,亦可使用將圖21~圖23為止之計劃修正表14k~14m之若干個合併所得之頻率修正表。
變化例5之記憶體控制器亦具有上述圖20之抹除暫時中止計劃表14j。
圖24係表示實施形態之變化例5之記憶體控制器所持有的計劃修正表14n之一例之圖。計劃修正表14n儲存於記憶體控制器所具備之RAM。計劃修正表14n係將圖21之計劃修正表14k及圖23之計劃修正表14m合併所得者。
於變化例5之記憶體系統中,記憶體控制器之運算部例如亦可基於計劃修正表14n對抹除暫時中止計劃表14j進行修正。又,記憶體 控制器之運算部例如亦可基於頻率修正表14l、14n對抹除暫時中止計劃表14j進行修正。
運算部例如於已抹除區塊數為2,寫入QD之平均值為0,暫時中止對象之區塊之編程/抹除之循環數為200,來自主機之讀取請求之發佈比率為1之情形時,使用計劃修正表14l之修正值「0」及計劃修正表14n之修正值「3」將有返轉之暫時中止之計劃數設為(N+0+3)、即(N+3)。藉此,有/無返轉之暫時中止之計劃數分別被決定為(N+3)、1。
又,例如,運算部於已抹除區塊數為1,寫入QD之平均值為3,暫時中止對象之區塊之編程/抹除之循環數為600,來自主機之讀取請求之發佈比率為0.3之情形時,使用計劃修正表14l之修正值「-2」及計劃修正表14n之修正值「-1」將無返轉之暫時中止之計劃數設為(N-2-1)、即(N-3)。藉此,有/無返轉之暫時中止之計劃數分別被決定為0、(N-3)。再者,(N-3)之值成為負數時被設定為零。
於實施形態之變化例5之記憶體系統中,基於寫入QD、編程/抹除之循環數及讀取請求之發佈比率之至少任一組合,修正抹除暫時中止計劃表14j。藉此,利用記憶體控制器之暫時中止之控制性進一步提昇,可使有/無返轉之暫時中止及無暫時中止之次數合理化。
再者,於實施形態之變化例1、變化例4及變化例5之記憶體系統中,設為使用寫入QD作為記憶體系統之寫入量及寫入速度之指標,但亦可使用每單位時間自主機30接收之寫入指令之大小之合計量即寫入輸出量(throughput)之平均值等其他指標。
(變化例6)
其次,使用圖25,對實施形態之變化例6之記憶體系統進行說明。於變化例6之記憶體系統中,與上述實施形態之不同點在於:有返轉之暫時中止及無返轉之暫時中止之至少任一者之次數受到限制。
圖25係表示實施形態之變化例6之記憶體控制器所持有的編程暫時中止次數限制表之一例之圖。
如圖25(a)所示,於編程暫時中止次數限制表中,以有返轉之編程暫時中止指令之發佈次數之變化為行,以無返轉之編程暫時中止指令之發佈次數之變化為列,將各個指令之發佈次數呈矩陣狀配置。圖25中之各數值係一例。
編程暫時中止次數限制表係靜態之表,每當產生暫時中止請求時便基於有/無返轉之暫時中止指令之發佈實績被參照。暫時中止指令之發佈實績係每當1次編程處理完成時被重設為零。於所參照之條目為1時發佈暫時中止指令,於所參照之條目為零時不發佈暫時中止指令。
如圖25(b)所示,於有返轉之編程暫時中止指令及無返轉之編程暫時中止指令之發佈實績分別為1次時,編程暫時中止次數限制表之條目成為1,可發佈暫時中止指令。
如圖25(c)所示,於有返轉之編程暫時中止指令之發佈實績為2次,無返轉之編程暫時中止指令之發佈實績為3次時,編程暫時中止次數限制表之條目成為0,暫時中止指令並未發佈。
如圖25(d)所示,與上述圖25(a)~(c)之例不同,亦可以限制有/無返轉之暫時中止之合計次數之方式組成矩陣。
即,於有返轉之暫時中止之發佈次數與無返轉之暫時中止之發佈次數之合計數未達指定數量n(於圖25(d)之例中為n=4)之條件成立 之範圍內設為1,將除此以外之範圍內設為0,藉此將暫時中止之合計次數最大限制為n。
又,亦可對有返轉之暫時中止指令之發佈次數與無返轉之暫時中止指令之發佈次數進行加權。即,例如,亦可將有返轉之暫時中止指令之發佈次數×N填入至圖25(a)或圖25(d)之矩陣之行,將無返轉之暫時中止之發佈次數×M填入至圖25(a)或圖25(d)之矩陣之列,判定是否發佈了暫時中止指令。
再者,於圖25之例中,利用相同之表管理有/無返轉之暫時中止指令,共通地進行有/無返轉之暫時中止之核准或限制(禁止)。但,亦可針對有/無返轉之暫時中止指令之各者準備表,分別進行有/無返轉之暫時中止之核准或限制(禁止)。
又,於僅具有有/無返轉之暫時中止之任一功能之記憶體系統中,編程暫時中止次數限制表成為1列或1行之矩陣。
又,亦可將使用編程暫時中止次數限制表之方法應用於抹除處理。
於實施形態之變化例6之記憶體系統中,由有返轉之暫時中止之執行次數之實績值、無返轉之暫時中止之執行次數之實績值、及編程/抹除之循環數之至少任一者限制有返轉之暫時中止及無返轉之暫時中止之至少任一者之次數。藉此,可抑制因經常發生暫時中止而導致抹除及編程之處理延遲之弊端。又,當於1次抹除處理中或1次編程處理中執行若干次暫時中止時,抹除中途之資料或編程中途之資料被放置而遭受短時間之資料滯留。於實施形態之變化例6之記憶體系統中,有返轉之暫時中止及無返轉之暫時中止之至少任一者之次數受到限制,因此可抑制無法實現 所期望之抹除及編程之可靠性之降低。
於實施形態之變化例6之記憶體系統中,可抑制暫時中止指令被過剩地使用,亦容易避免先行之處理之長期化及記憶胞之疲敝等缺點。
再者,於變化例6之記憶體系統中,設為有/無返轉之暫時中止之至少任一者之次數受到限制,但並不限定於此。於記憶體系統中,亦可限制將有/無返轉之暫時中止合併所得之暫時中止之合計次數。
(變化例7)
其次,使用圖26~圖29對實施形態之變化例7之記憶體系統進行說明。變化例7之記憶體系統與上述實施形態之不同點在於:隨著時間經過而再設定暫時中止之計劃數;及於再設定中參照已抹除區塊數,藉此追隨於已抹除區塊數之變化而設定暫時中止之計劃數。以下,對先行之處理為抹除之情形時進行說明,但於先行之處理為編程之情形時亦可應用以下所述之構成。
變化例7之記憶體控制器亦具有實施形態之已抹除區塊數儲存部14a、抹除暫時中止計劃表14b及抹除暫時中止剩餘次數暫存器14c。
圖26係表示實施形態之變化例7之記憶體控制器所持有之抹除暫時中止計劃設定時刻暫存器14o之一例的圖。抹除暫時中止計劃設定時刻暫存器14o儲存於記憶體控制器所具備之RAM。抹除暫時中止計劃設定時刻暫存器14o包含下一次暫時中止計劃設定時刻t1與暫時中止計劃之設定間隔P之資訊。下一次暫時中止計劃設定時刻t1係根據記憶體控制器設定當前運用中之暫時中止計劃之時刻、及暫時中止計劃之設定間隔P 而算出。下一次暫時中止計劃設定時刻t1係每當記憶體控制器之運算部設定或再設定暫時中止計劃時,由運算部更新。運算部係參照抹除暫時中止計劃設定時刻暫存器14o之暫時中止計劃設定間隔P,設定或再設定暫時中止計劃。
圖27係表示實施形態之變化例7之記憶體系統中之抹除暫時中止計劃的設定處理之程序之一例之流程圖。
如圖27所示,記憶體控制器之指令發佈部係於指定之時序,對NAND記憶體發佈抹除指令(步驟S501)。運算部將根據抹除指令被發佈之時間點之時刻與暫時中止計劃之設定間隔而算出之下一次計劃設定時刻登錄至抹除暫時中止計劃設定時刻暫存器14o(步驟S502)。
運算部獲取已抹除區塊數儲存部14a中所儲存之已抹除區塊數(步驟S503)。運算部參照抹除暫時中止計劃表14b,以與所獲取之已抹除區塊數對應之方式,決定有/無返轉之暫時中止之計劃數(步驟S504)。運算部將所決定之計劃數設為有/無返轉之暫時中止之剩餘次數,登錄至抹除暫時中止剩餘次數暫存器14c(步驟S505)。
運算部判斷當前時刻是否到達登錄於抹除暫時中止計劃設定時刻暫存器14o之下一次計劃設定時刻(步驟S506)。運算部於未到達下一次計劃設定時刻之情形時(步驟S506:否),判斷NAND記憶體中之抹除處理是否結束(步驟S508)。若NAND記憶體中之抹除處理未結束(步驟S508:否),則返回至步驟S506,繼續當前時刻之監視。
若到達抹除暫時中止計劃設定時刻暫存器14o中所登錄之下一次計劃設定時刻(步驟S506:是),則於進行了下一次計劃設定時刻之更新之後(步驟S507),運算部將進行步驟S503~S505之處理並再設定有/ 無返轉之暫時中止之計劃數。此處,已抹除區塊數有因執行編程處理等而減少之情形,針對每個計劃設定時刻來更新有/無返轉之暫時中止之計劃數。
若NAND記憶體中之抹除處理結束(步驟S508:是),則運算部將抹除暫時中止計劃設定時刻暫存器14o中所登錄之下一次計劃設定時刻及計劃設定間隔重設為零(步驟S509)。
圖28係表示實施形態之變化例7之記憶體系統所管理之有/無返轉之暫時中止的剩餘次數之時間序列變化之圖。
如圖28所示,設為於NAND記憶體為就緒狀態之情形時,已抹除區塊數為「2」。即,於已抹除區塊數儲存部14a儲存有「2」。於未發佈抹除指令之該時間點,在抹除暫時中止剩餘次數暫存器14c中,有/無返轉之暫時中止之剩餘次數未作設定。
當於記憶體控制器中,指令發佈部發佈抹除指令時,運算部於抹除暫時中止計劃設定時刻暫存器14o之下一次計劃設定時刻,對當前時刻t0登錄添加了計劃設定間隔P之值。即,下一次計劃設定時刻係時刻「t0+P」。又,運算部自已抹除區塊數儲存部14a獲取已抹除區塊數,參照抹除暫時中止計劃表14b,將有/無返轉之暫時中止之計劃數分別決定為「1」。又,藉由運算部,對抹除暫時中止剩餘次數暫存器14c之有/無返轉之暫時中止之剩餘次數分別登錄「1」。
此處,設為產生了針對抹除執行中之NAND記憶體之第1次之其他處理(圖中為其他處理1)之請求。運算部自抹除暫時中止剩餘次數暫存器14c之數值選擇有返轉之暫時中止作為此處之處理。指令發佈部發佈有返轉之暫時中止指令,進而,對NAND記憶體發佈使其執行第1次 之其他處理之執行指令。運算部將抹除暫時中止剩餘次數暫存器14c之有返轉之暫時中止之剩餘次數減少並設為「0」。
NAND記憶體於不等待至指定分段為止而中斷抹除處理,並實施第1次之其他處理之後,視需要一面反覆執行中斷前之一部分處理一面重新開始抹除處理。設為於抹除處理之重新開始時,已抹除區塊數保持為「2」。其後,到達下一次計劃設定時刻「t0+P」之運算部係於抹除暫時中止計劃設定時刻暫存器14o之下一次計劃設定時刻,登錄對當前時刻「t0+P」添加了計劃設定間隔P之值。即,下一次計劃設定時刻係時刻「t0+2P」。又,運算部自已抹除區塊數儲存部14a獲取已抹除區塊數,參照抹除暫時中止計劃表14b,將有/無返轉之暫時中止之計劃數分別決定為「1」「1」。又,藉由運算部,對抹除暫時中止剩餘次數暫存器14c之有/無返轉之暫時中止之剩餘次數分別登錄「1」「1」。
再者,於暫時中止剩餘次數之再設定時,運算部亦可對此時之暫時中止剩餘次數累加藉由再設定而決定之計劃數。於該情形時,抹除暫時中止剩餘次數暫存器14c之有/無返轉之暫時中止之剩餘次數分別成為「1」「2」。
設為於重新開始抹除處理後,產生第2次之其他處理(圖中為其他處理2)之請求。運算部自抹除暫時中止剩餘次數暫存器14c之數值選擇有返轉之暫時中止作為此處之處理。指令發佈部發佈有返轉之暫時中止指令,進而,對NAND記憶體發佈使其執行第2次之其他處理之執行指令。運算部將抹除暫時中止剩餘次數暫存器14c之有返轉之暫時中止之剩餘次數減少並設為「0」。
NAND記憶體於不等待至指定分段為止而中斷抹除處理, 並實施第2次之其他處理之後,視需要一面反覆執行中斷前之一部分處理一面重新開始抹除處理。抹除處理結束後,運算部將抹除暫時中止計劃設定時刻暫存器14o之下一次計劃設定時刻及計劃設定間隔重設為零。
變化例7之記憶體系統根據時間經過而再設定暫時中止之計劃數。藉此,根據暫時中止計劃數之早期消耗,可抑制其後產生潛時極長之請求。
此處,亦可採用如下方法:每當於計劃設定時刻進行再設定時,追隨於已抹除區塊數之變化而設定暫時中止之計劃數。
圖29係表示實施形態之變化例7之記憶體系統所管理之有/無返轉之暫時中止的剩餘次數之另一時間序列變化之圖。
如圖29所示,設為於對NAND記憶體執行抹除處理之過程中之任意之時序,已抹除區塊數為「2」。即,於已抹除區塊數儲存部14a儲存有「2」。於該狀態下,對抹除暫時中止剩餘次數暫存器14c之有/無返轉之暫時中止之剩餘次數分別登錄「1」及「0」。
於其後之時序,當產生其他處理(圖中為其他處理1)之請求時,將發佈有返轉之暫時中止指令。藉此,抹除暫時中止剩餘次數暫存器14c之有/無返轉之暫時中止之剩餘次數均成為「0」。進而,設為於此後之時序,與抹除暫時中止或其他處理之執行等無關,最初為「2」之已抹除區塊數減少至「1」。
設為於執行其他處理,且抹除處理重新開始之後,產生其他處理(圖中為其他處理2)之請求。有/無返轉之暫時中止之剩餘次數均耗盡,未發佈任一暫時中止指令。但,於到達下一次計劃設定時刻「t0+P」時,基於減少之已抹除區塊數即「1」,將有/無返轉之暫時中止之剩餘次 數重新設定於抹除暫時中止剩餘次數暫存器14c。於新設定中,抹除暫時中止剩餘次數暫存器14c之有/無返轉之暫時中止之剩餘次數為分別「0」與「2」。
接受上述操作後,記憶體控制器為了使NAND記憶體執行其他處理(圖中為其他處理2),而發佈無返轉之暫時中止指令。藉此,抹除暫時中止剩餘次數暫存器14c之有/無返轉之暫時中止之剩餘次數分別成為「0」與「1」。
於變化例7之記憶體系統中,藉由分時設定暫時中止剩餘次數,而使有/無返轉之暫時中止之執行次數平穩化。藉此,可避免暫時中止計劃數之早期消耗,抑制產生潛時極長之請求,而謀求潛時之平穩化。
再者,亦可無關於指定之週期,而於已抹除區塊數發生變化之時序進行再設定。
以上,對藉由基於已抹除區塊數等控制有/無返轉之暫時中止之次數而使記憶體系統之狀態合理化之方法進行了說明,但本實施形態之範圍並不限定於此。
例如,亦可基於在每一次之先行之處理中所執行之暫時中止之次數,控制有/無返轉之暫時中止之次數。於此情形時,於每一次之先行之處理中所執行之暫時中止之次數未達指定次數時可選擇有返轉之暫時中止,於暫時中止之次數增加時可選擇無返轉之暫時中止,於暫時中止之次數超過容許值時可不選擇有/無返轉之暫時中止之任一者,即不進行暫時中止。
又,例如,亦可於每一次之先行之處理中基於暫時中止之 期間內NAND記憶體20所執行之讀取之次數,控制有/無返轉之暫時中止之次數。於此情形時,於每一次之先行之處理中在暫時中止之期間內NAND記憶體20所執行之讀取之次數未達指定次數時,選擇有返轉之暫時中止,於該讀取之次數不斷增加時,選擇無返轉之暫時中止,於該讀取之次數超過容許值時,可不選擇有/無返轉之暫時中止之任一者,即不進行暫時中止。
又,例如亦可於每一次之先行之處理中基於暫時中止之期間之長短,控制有/無返轉之暫時中止之次數。於此情形時,可於在每一次之先行之處理中暫時中止之期間(累計)未達指定期間時選擇有返轉之暫時中止,於暫時中止之期間(累計)不斷增加時選擇無返轉之暫時中止,於暫時中止之期間(累計)超過容許值時不選擇有/無返轉之暫時中止之任一者,即不進行暫時中止。
(其他變化例)
於上述實施形態之記憶體系統1中,設為根據已抹除區塊數及寫入緩衝器14g之空閒容量等記憶體系統1之狀態,控制有/無返轉之暫時中止及無暫時中止之頻率,但亦可將NAND記憶體之各區塊分為複數個區域,針對複數區域之各個不同之狀態個別地控制有/無返轉之暫時中止及無暫時中止之頻率。
於NAND記憶體被分成複數個區域之情形時,例如考慮到NAND記憶體包含複數個記憶體晶片之情形等。於該情形時,記憶體控制器可獲取各記憶體晶片內之已抹除區塊數、各記憶體晶片中之寫入QD、各記憶體晶片內之區塊之寫入/抹除次數、及針對各記憶體晶片之讀取指 令/寫入指令之發佈比率等,針對每個記憶體晶片決定合理之有/無返轉之暫時中止及無暫時中止之頻率。
又,於將NAND記憶體分成複數個區域之情形時,亦可針對每個記憶體晶片分配寫入緩衝器之區域。於此情形時,記憶體控制器可獲取對各記憶體晶片分配之寫入緩衝器之空閒容量,針對每個記憶體晶片決定合理之有/無返轉之暫時中止及無暫時中止之頻率。
對本發明之若干個實施形態進行了說明,但該等實施形態係作為示例而提出,並非意圖限定發明之範圍。該等新穎之實施形態可採用其他各種形態加以實施,可於不脫離發明主旨之範圍內進行各種省略、替換及變更。該等實施形態及其變化包含於發明之範圍及主旨中,並且包含於專利申請範圍所記載之發明及其同等之範圍內。
[相關申請]
本申請享有以日本專利申請2019-53284號(申請日:2019年3月20日)為基礎申請之優先權。本申請藉由參照該基礎申請而包含基礎申請之全部內容。
1:記憶體系統
10:記憶體控制器
11:控制部
13:記憶體I/F
14:RAM
14a:已抹除區塊數儲存部
14b:抹除暫時中止計劃表
14c:抹除暫時中止剩餘次數暫存器
14d:寫入緩衝器空閒容量儲存部
14e:編程暫時中止計劃表
14f:編程暫時中止剩餘次數暫存器
14g:寫入緩衝器
14h:讀取緩衝器
14i:壓緊緩衝器
15:主機I/F
20:NAND型快閃記憶體
30:主機
ALE:位址閂鎖賦能信號
BLK:區塊
CLE:指令閂鎖賦能信號
I/O:輸入輸出信號
MCA:記憶胞陣列
R/B:就緒/忙錄信號

Claims (11)

  1. 一種記憶體系統,其具備:非揮發性記憶體,其包含複數個區塊,上述複數個區塊之各者包含複數個記憶胞;及記憶體控制器,其構成為控制上述非揮發性記憶體之動作;且上述非揮發性記憶體係構成為:自上述記憶體控制器接收第1指令,該第1指令用以執行抹除及編程之至少任一者,對在執行基於上述第1指令之第1處理中自上述記憶體控制器接收到之第2指令應答,而執行第2處理,該第2處理係用來於上述第1處理達到(reach)指定分段前,暫時中止(suspending)上述第1處理,對在執行上述第1處理中自上述記憶體控制器接收到之第3指令應答,而執行第3處理,該第3處理係用來於上述指定分段之後暫時中止上述第1處理,且上述第3指令與上述第2指令不同;其中上述記憶體控制器係進一步構成為:對由上述非揮發性記憶體執行上述第1處理時的其他處理之請求的產生應答,而選擇性地允許上述非揮發性記憶體執行以下之一者:上述第2處理、上述第3處理、及繼續上述第1處理;且上述記憶體控制器係構成為:於上述非揮發性記憶體之已抹除區塊數為a個之情形時,允許上述非揮發性記憶體執行上述第2處理,於上述非揮發性記憶體之上述已抹除區塊數為b個(其中,a>b)之情 形時,允許上述非揮發性記憶體執行上述第3處理,於上述非揮發性記憶體之上述已抹除區塊數為c個(其中,b>c)之情形時,允許上述非揮發性記憶體繼續上述第1處理。
  2. 如請求項1之記憶體系統,其中上述非揮發性記憶體係於重新開始(resume)因上述第2處理而暫時中止之上述第1處理時,再次執行上述第1處理之一部分之處理,於重新開始因上述第3處理而暫時中止之上述第1處理時,自上述指定分段後執行上述第1處理。
  3. 如請求項1之記憶體系統,其中上述記憶體控制器係進而構成為:於來自主機之寫入請求中對上述主機未應答之寫入請求數為a個之情形時,允許上述非揮發性記憶體執行上述第2處理,於來自上述主機之上述寫入請求中對上述主機未應答之上述寫入請求數為b個(其中,a<b)之情形時,允許上述非揮發性記憶體執行上述第3處理,於來自上述主機之上述寫入請求中對上述主機未應答之上述寫入請求數為c個(其中,b<c)時,允許上述非揮發性記憶體繼續上述第1處理。
  4. 如請求項1之記憶體系統,其中上述記憶體控制器係進而構成為:於指定期間內之來自主機之讀取請求數相對於讀取請求數及寫入請求數之合計數之比率為a之情形時,允許上述非揮發性記憶體執行上述第2處理, 於上述指定期間內之來自上述主機之上述讀取請求數相對於上述讀取請求數及上述寫入請求數之上述合計數之上述比率為b(其中,a>b)時,允許上述非揮發性記憶體執行上述第3處理,於上述指定期間內之來自上述主機之上述讀取請求數相對於上述讀取請求數及上述寫入請求數之上述合計數之上述比率為c(其中,b>c)之情形時,允許上述非揮發性記憶體繼續上述第1處理。
  5. 如請求項1之記憶體系統,其中上述記憶體控制器係進而構成為:於自主機接收且尚未被寫入至上述非揮發性記憶體寫之資料量為a之情形時,允許上述非揮發性記憶體執行上述第2處理,於自上述主機接收且尚未被寫入至上述非揮發性記憶體之上述資料量為b(其中,a<b)之情形時,允許上述非揮發性記憶體執行上述第3處理,於自上述主機接收且尚未被寫入至上述非揮發性記憶體之上述資料量為c(其中,b<c)之情形時,允許上述非揮發性記憶體繼續上述第1處理。
  6. 如請求項1之記憶體系統,其中上述記憶體控制器係進而構成為:於由上述記憶體控制器所管理的於上述非揮發性記憶體之對象區塊執行之編程/抹除之循環之次數為a次之情形時,允許上述非揮發性記憶體執行上述第2處理,上述對象區塊為上述第1處理之對象,於由上述記憶體控制器所管理的於上述非揮發性記憶體之上述對象區塊執行之編程/抹除之循環之次數為b次(其中,a<b)之情形時,允許上 述非揮發性記憶體執行上述第3處理,於由上述記憶體控制器所管理的於上述非揮發性記憶體之上述對象區塊執行之編程/抹除之循環之次數為c次(其中,b<c)之情形時,允許上述非揮發性記憶體繼續上述第1處理。
  7. 如請求項1之記憶體系統,其中上述記憶體控制器係進而構成為:於上述第1處理暫時中止之次數為a次之情形時,允許上述非揮發性記憶體執行上述第2處理,於上述第1處理暫時中止之上述次數為b次(其中,a<b)之情形時,允許上述非揮發性記憶體執行上述第3處理,於上述第1處理暫時中止之上述次數為c次(其中,b<c)之情形時,允許上述非揮發性記憶體繼續上述第1處理。
  8. 如請求項1之記憶體系統,其中上述記憶體控制器係進而構成為:於上述第1處理暫時中止之期間所執行之讀取之次數為a次之情形時,允許上述非揮發性記憶體執行上述第2處理,於上述第1處理暫時中止之期間所執行之上述讀取之次數為b次(其中,a<b)之情形時,允許上述非揮發性記憶體執行上述第3處理,於上述第1處理暫時中止之期間所執行之上述讀取之次數為c次(其中,b<c)之情形時,允許上述非揮發性記憶體繼續上述第1處理。
  9. 如請求項1之記憶體系統,其中上述記憶體控制器係進而構成為:於上述第1處理被暫時中止了期間a之情形時,允許上述非揮發性記 憶體執行上述第2處理,於上述第1處理被暫時中止了期間b(其中,a<b)之情形時,允許上述非揮發性記憶體執行上述第3處理,於上述第1處理被暫時中止了期間c(其中,b<c)之情形時,允許上述非揮發性記憶體繼續上述第1處理。
  10. 如請求項1之記憶體系統,其中上述記憶體控制器進而構成為:對一次上述第1處理中之上述第2處理之次數及一次上述第1處理中之上述第3處理之次數的至少一者進行限制。
  11. 如請求項10之記憶體系統,其中上述記憶體控制器係構成為根據:上述第2處理之指定期間內之執行次數、上述第3處理之上述指定期間內之執行次數、及於上述第1處理之執行對象之區塊執行之上述編程/抹除之循環之次數中之至少一者,限制上述第2處理之次數及上述第3處理之次數的至少一者。
TW108129188A 2019-03-20 2019-08-16 記憶體系統 TWI744677B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019-053284 2019-03-20
JP2019053284A JP2020155182A (ja) 2019-03-20 2019-03-20 メモリシステム及び不揮発性メモリ

Publications (2)

Publication Number Publication Date
TW202036575A TW202036575A (zh) 2020-10-01
TWI744677B true TWI744677B (zh) 2021-11-01

Family

ID=72514061

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108129188A TWI744677B (zh) 2019-03-20 2019-08-16 記憶體系統

Country Status (4)

Country Link
US (1) US11069413B2 (zh)
JP (1) JP2020155182A (zh)
CN (1) CN111724827A (zh)
TW (1) TWI744677B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200139042A (ko) * 2019-06-03 2020-12-11 에스케이하이닉스 주식회사 메모리 장치 및 그것의 동작 방법
KR20210034274A (ko) * 2019-09-20 2021-03-30 삼성전자주식회사 비휘발성 메모리 장치의 구동 방법 및 이를 수행하는 비휘발성 메모리 장치
US11385831B2 (en) * 2019-10-11 2022-07-12 FADU Inc. Memory controller and storage device including the same
KR20210106119A (ko) * 2020-02-20 2021-08-30 에스케이하이닉스 주식회사 메모리 시스템
JP7354056B2 (ja) * 2020-05-27 2023-10-02 本田技研工業株式会社 車両制御システム、及び車両制御方法
KR20210155467A (ko) * 2020-06-16 2021-12-23 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
JP2022092965A (ja) 2020-12-11 2022-06-23 キオクシア株式会社 メモリシステム
US11748027B2 (en) * 2021-12-30 2023-09-05 Western Digital Technologies, Inc. Storage system and method for avoiding clustering of reads during a program suspend
TWI793966B (zh) * 2022-01-10 2023-02-21 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
WO2024080693A1 (ko) * 2022-10-12 2024-04-18 삼성전자 주식회사 전자 장치 및 전자 장치의 메모리 관리 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140215175A1 (en) * 2013-01-31 2014-07-31 Apple Inc. Efficient suspend-resume operation in memory devices
US9262321B2 (en) * 2011-11-17 2016-02-16 International Business Machines Corporation Adjustment of destage rate based on read and write response time requirements
US20170168752A1 (en) * 2015-12-11 2017-06-15 Microsemi Storage Solutions (Us), Inc. Nonvolatile memory system with erase suspend circuit and method for erase suspend management
US20180196622A1 (en) * 2015-11-05 2018-07-12 Hitachi, Ltd. Nonvolatile memory device, and storage apparatus having nonvolatile memory device

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7315917B2 (en) * 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
US8364888B2 (en) 2011-02-03 2013-01-29 Stec, Inc. Erase-suspend system and method
JP6538597B2 (ja) * 2016-03-14 2019-07-03 東芝メモリ株式会社 記憶装置
JP2018055759A (ja) * 2016-09-26 2018-04-05 東芝メモリ株式会社 メモリシステム
KR102639697B1 (ko) * 2017-01-09 2024-02-21 삼성전자주식회사 비휘발성 메모리 장치 및 그 프로그램 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9262321B2 (en) * 2011-11-17 2016-02-16 International Business Machines Corporation Adjustment of destage rate based on read and write response time requirements
US20140215175A1 (en) * 2013-01-31 2014-07-31 Apple Inc. Efficient suspend-resume operation in memory devices
US20180196622A1 (en) * 2015-11-05 2018-07-12 Hitachi, Ltd. Nonvolatile memory device, and storage apparatus having nonvolatile memory device
US20170168752A1 (en) * 2015-12-11 2017-06-15 Microsemi Storage Solutions (Us), Inc. Nonvolatile memory system with erase suspend circuit and method for erase suspend management

Also Published As

Publication number Publication date
US11069413B2 (en) 2021-07-20
JP2020155182A (ja) 2020-09-24
TW202036575A (zh) 2020-10-01
US20200303012A1 (en) 2020-09-24
CN111724827A (zh) 2020-09-29

Similar Documents

Publication Publication Date Title
TWI744677B (zh) 記憶體系統
TWI602116B (zh) 資料儲存裝置及其資料維護方法
CN109960663B (zh) 执行垃圾回收的存储装置和存储装置的垃圾回收方法
US10599345B2 (en) Memory device that writes data into a block based on time passage since erasure of data from the block
US11289168B2 (en) Controller that acquires status of nonvolatile memory and control method thereof
US10303371B2 (en) Data storage device that stabilizes write latency
JP4373943B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US20150278087A1 (en) Storage device and an operating method of the storage device
US20230038797A1 (en) Memory system and information processing system
CN111722792B (zh) 存储器系统
JP2021111259A (ja) メモリシステムとその制御方法
US10929061B2 (en) Memory system and memory control method
US20190310795A1 (en) Suspending and resuming a read operation for a non-volatile memory
US20160132251A1 (en) Operating method of storage device and data writing method for writing data into storage device
JP2021071776A (ja) メモリシステム
JP2021047781A (ja) メモリシステム
JP2013200692A (ja) メモリシステム
CN113555052B (zh) 半导体存储装置
JP2013196646A (ja) メモリ制御装置、データ記憶装置及びメモリ制御方法
CN111459855B (zh) 存储器系统
JP2023039459A (ja) メモリシステムおよび方法
US11545195B2 (en) Memory system
TWI644250B (zh) 電子系統及其資料維護方法
JP2023108843A (ja) メモリシステム
TW202301129A (zh) 記憶體系統、記憶體控制器及半導體記憶裝置