TWI784424B - 非揮發性記憶體、記憶體系統及非揮發性記憶體之控制方法 - Google Patents
非揮發性記憶體、記憶體系統及非揮發性記憶體之控制方法 Download PDFInfo
- Publication number
- TWI784424B TWI784424B TW110107053A TW110107053A TWI784424B TW I784424 B TWI784424 B TW I784424B TW 110107053 A TW110107053 A TW 110107053A TW 110107053 A TW110107053 A TW 110107053A TW I784424 B TWI784424 B TW I784424B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- memory
- mentioned
- command
- controller
- Prior art date
Links
Images
Classifications
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- 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
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- 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/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/403—Error protection encoding, e.g. using parity or ECC codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7209—Validity control, e.g. using flags, time stamps or sequence numbers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本實施方式提供一種能夠高速執行壓緊之非揮發性記憶體、記憶體系統及壓緊方法。
根據本實施方式,非揮發性記憶體具備記憶體晶片及指令處理部。於從控制器接收到用於壓緊之第1指令之情形時,指令處理部將從記憶體晶片之第1位置讀取之資料保存於記憶體中,將用於判斷資料是否有效之有效判斷資訊發送至控制器,於從控制器接收到用於壓緊之第2指令及特定出有效資料之有效特定資訊之情形時,將記憶體所保存之資料中之有效資料寫入至記憶體晶片之第2位置。
Description
本實施方式係關於一種非揮發性記憶體、記憶體系統及非揮發性記憶體之控制方法。
SSD(Solid State Drive,固態磁碟機)係記憶體系統之一例。SSD包括諸如NAND(Not-And,反及)型快閃記憶體之類的非揮發性記憶體。非揮發性記憶體例如具備複數個塊。各個塊可成為抹除資料之一個單位。SSD為了繼續進行動作,執行如下壓緊(compaction),即,收集以片斷狀態保存於非揮發性記憶體之複數個塊中之複數個有效資料,並將所收集之複數個有效資料一起寫回至非揮發性記憶體之至少一個塊。藉由壓緊來整理非揮發性記憶體之塊。
本實施方式提供一種能夠高速執行壓緊之非揮發性記憶體、記憶體系統及壓緊方法。
根據本實施方式,非揮發性記憶體具備記憶體晶片及指令處理部。指令處理部按照從控制器接收到之指令,控制對記憶體晶片進行之資料寫入或讀出。於從控制器接收到用於對記憶體晶片進行壓緊之第1指令之情形時,指令處理部將從記憶體晶片之第1位置讀取之資料保存於記憶體中,向控制器發送用於判斷資料是否有效之有效判斷資訊,於從控制器接收到用於對記憶體晶片進行壓緊之第2指令及特定出有效資料之有效特定資訊之情形時,將記憶體所保存之資料中之有效資料寫入至記憶體晶片之第2位置。
以下,參照圖式說明本實施方式。於以下之說明中,對大致相同之功能以及構成要素賦予相同之符號,重複說明僅於必要之情形時進行。又,於本實施方式中說明之數值以及構成要素之個數為示例,能夠適當變更。
於本實施方式中,非揮發性記憶體具備指令處理部及記憶胞陣列。指令處理部按照從控制器接收到之指令執行壓緊。於本實施方式中,壓緊可改稱為垃圾回收(Garbage Collection)。
圖1係表示具備本實施方式之非揮發性記憶體NM00~NM33之記憶體系統1之構成之一例的方塊圖。
記憶體系統1例如為SSD。記憶體系統1可以為諸如包括HDD(Hard Disk Drive,硬碟驅動器)、USB(Universal Serial Bus,通用串列匯流排)記憶體、記憶卡、硬碟(hard disk drive)及SSD在內之混合型記憶體系統、光碟設備之類的各種儲存設備中之任一種。記憶體系統1能夠與主機設備(例如,外部之資訊處理裝置)2進行通信。
記憶體系統1具備非揮發性記憶裝置NMM及控制器3。
非揮發性記憶裝置NMM包括非揮發性記憶體NM00~NM33。
控制器3控制對非揮發性記憶裝置NMM進行之資料寫入,控制對非揮發性記憶裝置NMM進行之資料讀取。更具體地,控制器3按照從主機設備2接收到之指令執行對非揮發性記憶體NM00~NM33的控制。
控制器3具備主機介面部4、諸如SRAM(Static Random Access Memory,靜態隨機存取記憶體)5之類的記憶裝置、處理器6、DMAC(Direct Memory Access Controller,直接記憶體存取控制器)7、以及記憶體介面部MI0~MI3。控制器3之主機介面部4、SRAM5、處理器6、DMAC7、記憶體介面部MI0~MI3能夠經由匯流排相互發送或接收資料、資訊、信號、指令、請求、訊息、指示、應答。
首先,說明非揮發性記憶體NM00~NM33及其構成要素。
使非揮發性記憶體NM00~NM33分別為三維構造之非揮發性半導體記憶體。然而,非揮發性記憶體NM00~NM33亦可為需要執行壓緊之其他種類之記憶體。
具體而言,非揮發性記憶體NM00~NM33例如可為NAND型快閃記憶體。非揮發性記憶體NM00~NM33例如亦可為NOR(反或)型快閃記憶體、MRAM(Magnetoresistive Random Access Memory:磁阻記憶體)、PRAM(Phasechange Random Access Memory:相變記憶體)、ReRAM(Resistive Random Access Memory:電阻變化型記憶體)、FeRAM(Ferroelectric Random Access Memory,鐵電式隨機存取記憶體)等非揮發性半導體記憶體中之任一種。
非揮發性記憶體NM00~NM33由被稱為記憶體組(bank)bk0~bk3之要素分組,進而由被稱為通道ch0~ch3之要素分組。記憶體組bk0對應於非揮發性記憶體NM00、NM10、NM20、NM30。記憶體組bk1對應於非揮發性記憶體NM01、NM11、NM21、NM31。記憶體組bk2對應於非揮發性記憶體NM02、NM12、NM22、NM32。記憶體組bk3對應於非揮發性記憶體NM03、NM13、NM23、NM33。
非揮發性記憶體NM00~NM03各自連接到記憶體匯流排MB0。非揮發性記憶體NM00~NM03對應於通道ch0。
非揮發性記憶體NM00具備指令處理部CP00及記憶體晶片(例如,陣列晶片等)MC00。記憶體晶片MC00係記憶體設備之一例。非揮發性記憶體NM01具備指令處理部CP01及記憶體晶片MC01。非揮發性記憶體NM02具備指令處理部CP02及記憶體晶片MC02。非揮發性記憶體NM03具備指令處理部CP03及記憶體晶片MC03。
記憶體晶片MC00~MC03各自形成有記憶胞陣列。記憶體晶片MC00~MC03各自例如可為NAND型快閃記憶體晶粒。於記憶體晶片MC00~MC03之記憶胞中以非揮發狀態保存資料例如可以記載為「編程」。
指令處理部CP00係控制記憶體晶片MC00之控制部之一例。指令處理部CP00例如由CMOS(Complementary Metal Oxide Semiconductor,互補金屬氧化物半導體)形成。
指令處理部CP00經由記憶體匯流排MB0從控制器3接收指令,並按照該指令執行對記憶體晶片MC00的控制。
指令處理部CP00與控制器3協作來輔助對記憶體晶片MC00進行之壓緊。
具體而言,例如,指令處理部CP00從控制器3接收寫入指令、寫入目的地之物理位址以及寫入資料,並將寫入資料寫入至記憶體晶片MC00中由寫入目的地之物理位址指定之位置。例如,指令處理部CP00從控制器3接收讀取指令及讀取目的地之物理位址,從記憶體晶片MC00中由讀取目的地之物理位址指定之位置讀取讀取資料,並將讀取資料發送至控制器3。
同樣地,指令處理部CP01~CP03各自經由記憶體匯流排MB0從控制器3接收指令,並按照指令執行對記憶體晶片MC01~MC03各自之控制。
非揮發性記憶體NM10~NM13各自連接於記憶體匯流排MB1。非揮發性記憶體NM10~NM13對應於通道ch1。
非揮發性記憶體NM10具備指令處理部CP10及記憶體晶片MC10。非揮發性記憶體NM11具備指令處理部CP11及記憶體晶片MC11。非揮發性記憶體NM12具備指令處理部CP12及記憶體晶片MC12。非揮發性記憶體NM13具備指令處理部CP13及記憶體晶片MC13。
指令處理部CP10~CP13各自經由記憶體匯流排MB1從控制器3接收指令,並按照指令執行對記憶體晶片MC10~MC13各自之控制。
非揮發性記憶體NM20~NM23各自連接於記憶體匯流排MB2。非揮發性記憶體NM20~NM23對應於通道ch2。
非揮發性記憶體NM20具備指令處理部CP20及記憶體晶片MC20。非揮發性記憶體NM21具備指令處理部CP21及記憶體晶片MC21。非揮發性記憶體NM22具備指令處理部CP22及記憶體晶片MC22。非揮發性記憶體NM23具備指令處理部CP23及記憶體晶片MC23。
指令處理部CP20~CP23各自經由記憶體匯流排MB2從控制器3接收指令,並根據指令執行對記憶體晶片MC20~MC23各自之控制。
非揮發性記憶體NM30~NM33各自連接於記憶體匯流排MB3。非揮發性記憶體NM30~NM333對應於通道ch3。
非揮發性記憶體NM30具備指令處理部CP30及記憶體晶片MC30。非揮發性記憶體NM31具備指令處理部CP31及記憶體晶片MC31。非揮發性記憶體NM32具備指令處理部CP32及記憶體晶片MC32。非揮發性記憶體NM33具備指令處理部CP33及記憶體晶片MC33。
指令處理部CP30~CP33各自經由記憶體匯流排MB3從控制器3接收指令,並按照指令執行對記憶體晶片MC30~MC33各自之控制。
以下,為了簡化說明,使用非揮發性記憶體NM00~NM33中之非揮發性記憶體NM00進行說明。
又,以下為了簡化說明,僅於必要之情形時進行關於記憶體匯流排MB0~MB3之記載及說明。
於本實施方式中,指令處理部CP00執行錯誤訂正處理。於壓緊中,指令處理部CP00執行以下處理:提取用於判斷資料是否有效之有效判斷資訊(以下稱為冗餘部);以及僅將被判斷為有效之資料(以下稱為有效資料)寫入至記憶體晶片MC00中之已抹除之塊中。
於本實施方式中,使冗餘部包含邏輯位址。例如,冗餘部可為對應於該冗餘部之資料之元資料。所謂元資料,例如指關於資料之各種屬性資訊。
具體而言,指令處理部CP00經由記憶體介面部MI0從處理器6接收壓緊讀取指令及讀取目的地之物理位址。此處,壓緊讀取指令係用於從應執行壓緊之塊(下文中稱為原始塊)讀取資料之指令。當接收到壓緊讀取指令及讀取目的地之物理位址時,指令處理部CP00從記憶體晶片MC00中由讀取目的地之物理位址所指定之位置讀取資料。指令處理部CP00對讀取之資料執行錯誤訂正處理。
於無法訂正資料錯誤之情形時,指令處理部CP00經由記憶體介面部MI0向處理器6發送資料及冗餘部。於此種情形時,記憶體介面部MI0之訂正部CR0對資料及冗餘部執行錯誤訂正處理。處理器6基於訂正錯誤後之資料及冗餘部、位址轉換表AT、讀取目的地之物理位址,判斷資料之有效/無效。並且,處理器6經由記憶體介面部MI0向指令處理部CP00發送用於向非揮發性記憶體NM00~NM33中之寫入目的地之塊(以下稱為目的地塊)寫入有效資料之指令(於本實施方式中為寫入指令)、寫入目的地之物理位址、有效資料、及與該有效資料對應之冗餘部。
指令處理部CP00經由記憶體介面部MI0從處理器6接收寫入指令、寫入目的地之物理位址、有效資料及冗餘部。當接收到寫入指令、寫入目的地之物理位址、有效資料及冗餘部時,指令處理部CP00將有效資料及冗餘部寫入至記憶體晶片MC00~MC33之任一個中之由寫入目的地之物理位址所指定之位置。
當能夠訂正資料錯誤時,指令處理部CP00經由記憶體介面部MI0向處理器6發送附加於資料且包括邏輯位址在內之冗餘部(冗餘部之資料輸出)。於該情形時,指令處理部CP00不經由記憶體介面部MI0向處理器6發送資料。處理器6基於接收到之冗餘部、位址轉換表AT及讀取目的地之物理位址,判斷資料之有效/無效。然後,處理器6經由記憶體介面部MI0向指令處理部CP00發送壓緊寫入指令(壓緊編程指令)、寫入目的地之物理位址、與有效資料對應之冗餘部。於此,壓緊寫入指令係用於向目的地塊寫入有效資料之指令。
指令處理部CP00從處理器6經由記憶體介面部MI0接收壓緊寫入指令、寫入目的地之物理位址、冗餘部(冗餘部之資料輸入)。當接收到壓緊寫入指令、寫入目的地之物理位址及冗餘部時,指令處理部CP00將與冗餘部對應之資料及冗餘部寫入至記憶體晶片MC00中由寫入目的地之物理位址所指定之位置。
於本實施方式中,指令處理部CP00經由記憶體介面部MI0從處理器6接收到壓緊寫入指令時所執行之處理被稱為壓緊寫入。
當經由記憶體介面部MI0從處理器6接收到抹除指令及與原始塊對應之抹除目的地之物理位址時,指令處理部CP00執行對記憶體晶片MC00中由抹除目的地之物理位址所指定之位置的抹除。
其次,說明控制器3及其構成要素。
例如,於壓緊中,控制器3向非揮發性記憶體NM00~NM33中之任一個發佈壓緊讀取指令及壓緊寫入指令。
主機介面部4遵照規定標準。主機介面部4接收來自主機設備2之資料、資訊、信號、指令、請求、訊息、指示、應答等。主機介面部4將資料、資訊、信號、指令、請求、訊息、指示、應答等發送至主機設備2。
規定標準例如可以為NVMe(Non-Volatile Memory Express)標準、PCIe(Peripheral Component Interconnect Express,外圍組件互連高速)標準、SATA(Serial Advanced Technology Attachment,串列高階技術附加)標準、或者SAS(Serial Attached Small Computer System Interface,串列小型電腦系統介面)標準。
SRAM5例如保存韌體FW1及位址轉換表AT。亦可代替該SRAM5而使用例如DRAM(Dynamic random Access Memory,動態隨機存取記憶體)等其他記憶體。又,控制器3亦可具備SRAM5及DRAM兩者。
韌體FW1係由處理器6執行之軟體之一例。韌體FW1例如包括碼及資料。韌體FW1藉由由處理器6執行而使非揮發性記憶體NM00~NM33所具備之指令處理部CP00~CP33中之任一者執行壓緊。
位址轉換表AT將非揮發性記憶體NM00~NM33所保存之資料之邏輯位址與物理位址建立關聯。位址轉換表AT亦可改稱為查找表。邏輯位址例如可為LBA(Logical Block Addressing,邏輯塊定址)。物理位址例如可為PBA(Physical Block Addressing,物理塊定址)。
DMAC7例如按照處理器6之指示,將主機設備2所具備之記憶體中保存之資料或者記憶體系統1所具備之記憶體中保存之資料傳送至另一記憶體。
記憶體介面部MI0~MI3各自分別對應於通道ch0~ch3。藉由記憶體介面部MI0對非揮發性記憶體NM00~NM03進行之寫入或讀取、藉由記憶體介面部MI1對非揮發性記憶體NM10~NM13進行之寫入或讀取、藉由記憶體介面部MI2對非揮發性記憶體NM20~NM23進行之寫入或讀取及藉由記憶體介面部MI3對非揮發性記憶體NM30~NM33進行之寫入或讀取如下,能夠相互並行地執行。換言之,控制器3能夠對通道ch0~ch3中之複數個通道並行地執行寫入或讀取。記憶體介面部MI0~MI3各自具備訂正部CR0~CR3各者。
訂正部CR0~CR3分別對從非揮發性記憶體NM00~NM03、NM10~NM13、NM20~NM23及NM30~NM33接收到之資料,執行例如使用ECC(Error Correcting Code,錯誤訂正碼)等之錯誤檢測處理及錯誤訂正處理。訂正部CR0~CR3執行錯誤訂正能力較指令處理部CP00~CP33高之例如軟位元(soft bit)訂正。
再者,軟位元訂正亦可代替訂正部CR0~CR3而由處理器6執行。控制器3亦可具備執行軟位元訂正之專用裝置或電路。
於本實施方式中,軟位元訂正意指使用諸如對數似然比(Log Likelihood Ratio:LLR)之類的似然資訊來執行錯誤檢測處理及錯誤訂正處理,其中對數似然比表示0或1之概率。作為錯誤訂正碼,例如使用LDPC(Low-Density Parity-Check,低密度奇偶檢查)碼。於軟位元訂正中,例如,使用藉由記憶體介面部MI0~MI3之軟位元讀取所獲得之軟位元資訊來計算LLR之值,並使用算出之LLR之值。軟位元讀取例如指利用在硬位元讀取中所使用之讀取電壓、及相對於在硬位元讀取中所使用之讀取電壓於大小方向上以規定步長設定之2個以上之讀取電壓,來讀取記憶胞中之資料。軟位元資訊可為藉由軟位元讀取所得之複數個資料之組合,亦可為對該等複數個資料進行邏輯運算而得到之資料。
處理器6按照韌體FW1執行各種控制。
處理器6例如為CPU(Central Processing Unit,中央處理單元)、MPU(Micro-Processing Unit,微處理單元)、DSP(Digital Signal Processor,數位訊號處理器)或GPU(Graphics Processing Unit,圖形處理單元)等各種處理設備中之任一種。
例如,於記憶體系統1啟動時,處理器6經由記憶體介面部MI0~MI3中之至少一個,從非揮發性記憶體NM00~NM33中之至少一個讀取韌體FW1及位址轉換表AT。而且,處理器6將韌體FW1及位址轉換表AT保存於SRAM5中。
例如,於記憶體系統1停止時,處理器6將SRAM5中所保存之位址轉換表AT經由記憶體介面部MI0~MI3中之至少一個寫入至非揮發性記憶體NM00~NM33中之至少一個。
於本實施方式中,處理器6經由記憶體介面部MI0~MI3中之至少一個,對指令處理部CP00~CP33中之至少一個,發送用於執行壓緊之指令(例如,壓緊讀取指令、壓緊移動指令、壓緊寫入指令、抹除指令等)。於在壓緊中指令處理部CP00~CP33中之至少一個無法訂正錯誤之情形時,由處理器6代替指令處理部CP00~CP33中之至少一個執行壓緊。
對本實施方式之壓緊中之處理器6之動作具體地進行說明。
處理器6基於SRAM5中保存之位址轉換表AT,從非揮發性記憶體NM00~NM33中選擇應執行壓緊之原始塊。
處理器6例如可以從記憶體晶片MC00~MC33之塊中選擇無效資料之數量為第1閾值以上之塊作為原始塊。
處理器6例如可以從記憶體晶片MC00~MC33之塊中選擇無效資料之比率為第2閾值以上之塊作為原始塊。
處理器6例如可以從記憶體晶片MC00~MC33之塊中選擇無效資料之合計數為第3閾值以上之規定數量之塊作為原始塊。
處理器6例如可以從記憶體晶片MC00~MC33之塊中選擇無效資料之比率成為最大之規定數量之塊作為原始塊。
以下,假設處理器6選擇非揮發性記憶體NM00之塊作為原始塊來進行說明。
為了讀取原始塊中保存之資料,處理器6經由記憶體介面部MI0將壓緊讀取指令及讀取目的地之物理位址發送至指令處理部CP00。
於指令處理部CP00無法訂正錯誤之情形時,處理器6首先經由記憶體介面部MI0從指令處理部CP00接收由訂正部CR0訂正後之資料及冗餘部。其次,處理器6將由訂正部CR0訂正後之資料及冗餘部保存於SRAM5中。繼而,處理器6基於位址轉換表AT、冗餘部中包含之邏輯位址、讀取目的地之物理位址,判斷SRAM5中保存之與冗餘部對應之資料是否為有效資料。繼而,處理器6從空閒塊中選擇目的地塊。繼而,處理器6為了向記憶體晶片MC00~MC33中之目的地塊寫入有效資料,將壓緊寫入指令、寫入目的地之物理位址、有效資料經由記憶體介面部MI0~MI3中之至少一個發送到指令處理部CP00~CP33中之至少一個。
於指令處理部CP00能夠訂正資料錯誤之情形時,處理器6首先經由記憶體介面部MI0從指令處理部CP00接收冗餘部。其次,處理器6基於SRAM5中保存之位址轉換表AT、讀取目的地之物理位址、冗餘部中包含之邏輯位址,判斷指令處理部CP00中保存之與冗餘部對應之資料是否為有效資料。繼而,處理器6從記憶體晶片MC00之空閒塊中選擇目的地塊。繼而,處理器6經由記憶體介面部MI0向指令處理部CP00發送壓緊寫入指令、寫入目的地之物理位址、與有效資料對應之冗餘部。
處理器6於發送壓緊寫入指令後,經由記憶體介面部MI0向指令處理部CP00發送用於對原始塊進行抹除之抹除指令以及抹除目的地之物理位址。另外,處理器6利用寫入目的地之物理位址來更新SRAM5中保存之位址轉換表AT之與有效資料之邏輯位址相關聯之讀取目的地之物理位址。處理器6將經抹除之原始塊視為空閒塊進行管理。
圖2係用於說明壓緊之概要之圖。
記憶體晶片MC00~MC33各自包含複數個塊。記憶體系統1將複數個塊中之未寫入資料之塊視為空閒塊進行管理。當從主機設備2接收到寫入指令、寫入目的地之邏輯位址及資料時,記憶體系統1按照寫入目的地之邏輯位址獲取寫入目的地之物理位址,並將資料寫入至由寫入目的地之物理位址所指定之位置。隨著記憶體系統1對塊之資料寫入之進行,塊內之無效資料之數量增加,塊內之有效資料片段化。例如,記憶體系統1將無效資料之比率或數量為規定值以上之原始塊中之有效資料寫入(移動)至從空閒塊之中選擇之目的地塊中。當有效資料從原始塊向目的地塊之移動完成時,記憶體系統1將原始塊視為空閒塊進行管理,並於規定時點抹除空閒塊。由此,記憶體系統1可以根據從主機設備2接收到之寫入指令繼續進行寫入處理。
圖3係表示本實施方式之SRAM5之用途之例的圖。
SRAM5之至少一部分被用作保存韌體FW1之碼之快取記憶體5a。
SRAM5之至少一部分被用作保存韌體FW1之資料之快取記憶體5b。
SRAM5之至少一部分被用作讀取快取記憶體5c,用於保存經由記憶體介面部MI0~MI3中之任一個從非揮發性記憶體NM00~NM33中之任一個讀取之資料。
SRAM5之至少一部分被用作保存位址轉換表AT之快取記憶體5d。
SRAM5之至少一部分被用作寫入緩衝記憶體5e,用於保存經由記憶體介面部MI0~MI3中之任一個寫入至非揮發性記憶體NM00~NM33中之任一個之資料。
於壓緊中,SRAM5之至少一部分被用作壓緊讀取記憶體5f,用於保存經由記憶體介面部MI0~MI3中之任一個從指令處理部CP00~CP33中之任一個接收到之冗餘部等。壓緊讀取記憶體5f例如為緩衝記憶體。
於壓緊中,SRAM5之至少一部分被用作壓緊寫入記憶體5g,用於保存經由記憶體介面部MI0~MI3中之任一個向指令處理部CP00~CP33中之任一個發送之冗餘部等。壓緊寫入記憶體5g例如為緩衝記憶體。
圖4係表示本實施方式之處理器6與指令處理部CP00之協作之例的方塊圖。
於執行對非揮發性記憶體NM00之壓緊之情形時,處理器6基於位址轉換表AT從記憶體晶片MC00中選擇原始塊。
為了讀取原始塊中保存之資料,處理器6經由記憶體介面部MI0將壓緊讀取指令及讀取目的地之物理位址發送至指令處理部CP00。
當接收到壓緊讀取指令及讀取目的地之物理位址時,指令處理部CP00從記憶體晶片MC00中之由讀取目的地之物理位址指定之位置讀取資料及冗餘部。
指令處理部CP00對讀取之資料及冗餘部執行錯誤訂正處理。
於本實施方式中,壓緊動作於指令處理部CP00無法針對資料及冗餘部訂正錯誤之情形與能夠訂正錯誤之情形之間進行切換。
首先,說明指令處理部CP00無法針對所讀取之資料及冗餘部訂正錯誤之情形時之動作。
於無法針對資料及冗餘部訂正錯誤之情形時,指令處理部CP00將資料及冗餘部發送至記憶體介面部MI0。
記憶體介面部MI0之訂正部CR0對從指令處理部CP00接收到之資料及冗餘部執行錯誤訂正處理。然後,記憶體介面部MI0將錯誤訂正後之資料及冗餘部發送至處理器6。
處理器6從記憶體介面部MI0接收錯誤訂正後之資料及冗餘部,並將接收到之資料及冗餘部保存於SRAM5中。
處理器6基於位址轉換表AT、冗餘部中包含之邏輯位址、讀取目的地之物理位址,判斷SRAM5中保存之資料是否為有效資料。
處理器6從空閒塊中選擇目的地塊。
為了向目的地塊寫入有效資料,處理器6將壓緊寫入指令、與目的地塊對應之寫入目的地之物理位址、有效資料、冗餘部經由記憶體介面部MI0~MI3中之至少一個發送至指令處理部CP00~CP33中之至少一個。
當指令處理部CP00~CP33中之至少一個從處理器6經由記憶體介面部MI0~MI3中之至少一個接收到壓緊寫入指令、寫入目的地之物理位址、有效資料、冗餘部時,將有效資料及冗餘部寫入至由寫入目的地之物理位址所指定之位置。
其次,說明指令處理部CP00能夠針對所讀取之資料及冗餘部訂正錯誤之情形時之動作。
於能夠針對資料及冗餘部訂正錯誤之情形時,指令處理部CP00經由記憶體介面部MI0將附加於資料之冗餘部發送至處理器6。於該情形時,指令處理部CP00不將資料發送至處理器6。
於經由記憶體介面部MI0從指令處理部CP00接收到冗餘部之情形時,處理器6將冗餘部保存於SRAM5中。
處理器6基於位址轉換表AT、冗餘部中包含之邏輯位址、讀取目的地之物理位址,判斷指令處理部CP00中保存之與冗餘部對應之資料是否為有效資料。
處理器6從記憶體晶片MC00之空閒塊中選擇目的地塊。
為了向記憶體晶片MC00中之目的地塊寫入有效資料,處理器6將壓緊寫入指令、與目的地塊對應之寫入目的地之物理位址、冗餘部經由記憶體介面部MI0發送至指令處理部CP00。
當經由記憶體介面部MI0從處理器6接收到壓緊寫入指令、寫入目的地之物理位址及冗餘部時,指令處理部CP00將與接收到之冗餘部對應之有效資料及冗餘部寫入至記憶體晶片MC00中之由寫入目的地之物理位址所指定之位置。
於發送壓緊寫入指令之後,處理器6經由記憶體介面部MI0向指令處理部CP00發送用於對原始塊進行抹除之抹除指令以及與原始塊對應之抹除目的地之物理位址。
當經由記憶體介面部MI0從處理器6接收到抹除指令及抹除目的地之物理位址時,指令處理部CP00對記憶體晶片MC00中之由抹除目的地之物理位址所指定之位置執行抹除。
處理器6利用寫入目的地之物理位址來更新SRAM5中保存之位址轉換表AT中與對應於有效資料之邏輯位址相關聯之讀取目的地之物理位址。處理器6將經抹除之原始塊視為空閒塊進行管理。
圖5係表示本實施方式之非揮發性記憶體NM00之構成之一例的方塊圖。再者,非揮發性記憶體NM01~NM33亦可具有與非揮發性記憶體NM00相同之構成。
非揮發性記憶體NM00具備指令處理部CP00及記憶體晶片MC00。
指令處理部CP00藉由記憶體匯流排MB0及電力供給線PL連接至控制器3。指令處理部CP00具備控制電路CPA、CPB。控制電路CPA、CPB之各構成要素亦可由電子電路形成。
控制電路CPA與控制器3連接。控制電路CPB連接至記憶體晶片MC00之輸入輸出(I/O)部分。
控制電路CPA與控制電路CPB藉由控制匯流排22及資料匯流排23連接。
控制電路CPA具備介面部8、介面控制部9、指令控制部10、資料緩衝控制部11、記憶體12、隨機化處理部13及錯誤訂正處理部14。
介面部8經由記憶體匯流排MB0與控制器3連接,並與控制匯流排22及資料匯流排23連接。
介面控制部9、指令控制部10、資料緩衝控制部11、記憶體12、隨機化處理部13及錯誤訂正處理部14連接至控制匯流排22。
記憶體12、隨機化處理部13及錯誤訂正處理部14連接至資料匯流排23。
介面部8從控制器3接收資料、資訊、信號、指令、請求、訊息、指示、應答等。又,介面部8向控制器3發送資料、資訊、信號、指令、請求、訊息、指示、應答等。
介面控制部9控制介面部8。
指令控制部10解釋經由介面部8從控制器3接收到之指令或請求,並按照指令或請求控制指令處理部CP00之各種構成要素。
記憶體12暫時保存從控制器3接收到之資料及從記憶體晶片MC00讀取之資料。記憶體12例如為緩衝記憶體或快取記憶體。記憶體12例如亦可為SRAM、DRAM或暫存器。記憶體12可為揮發性記憶體或非揮發性記憶體。
資料緩衝控制部11管理記憶體12之使用(例如,使用中之區域或空閒區域)。資料緩衝控制部11管理記憶體12之區域與應寫入至記憶體晶片MC00之資料的對應關係。
隨機化處理部13進行對要寫入至記憶體晶片MC00之資料之隨機化(randomize)。此處,隨機化係指以不連續地包含相同圖案之資料之方式,基於隨機化密鑰隨機地配置資料圖案。藉由隨機化,可防止位元錯誤之產生。以下,將經隨機化之資料稱為隨機化資料。
隨機化處理部13對從記憶體晶片MC00讀取之隨機化資料進行隨機化解除。此處,隨機化解除係指基於隨機化密鑰從隨機化資料中獲得隨機化前之原始資料。
錯誤訂正處理部14將寫入至記憶體晶片MC00之資料編碼。於本實施方式中,藉由編碼,對隨機化資料及冗餘部附加奇偶校驗部。
錯誤訂正處理部14將從記憶體晶片MC00讀取之隨機化資料及冗餘部解碼,並執行錯誤訂正處理。具體而言,錯誤訂正處理部14執行錯誤訂正能力低於訂正部CR0~CR3之例如硬位元訂正。
於本實施方式中,硬位元訂正意指使用指令處理部CP00之硬位元讀取,對所讀取之資料執行錯誤檢測處理以及錯誤訂正處理。作為錯誤訂正碼,例如使用博斯-喬赫里-霍克文黑姆(BCH)碼或RS(Reed-Solomon,雷德-所羅門)碼。硬位元讀取例如指以基準讀取電壓或從基準讀取電壓偏移規定電壓後之電壓為讀取電壓,使用讀取電壓讀取記憶胞之資料。
控制電路CPB具備電源控制部15、位址暫存器16a、指令暫存器16b、狀態暫存器16c、記憶體控制部17、列解碼器18、行解碼器19及資料快取記憶體20以及感測放大器21。
電源控制部15藉由電力供給線PL與控制器3連接。電源控制部15控制對記憶體晶片MC00、位址暫存器16a、指令暫存器16b、狀態暫存器16c、記憶體控制部17、列解碼器18、行解碼器19、資料快取記憶體20、感測放大器21之電力供給。位址暫存器16a、指令暫存器16b、狀態暫存器16c及記憶體控制部17與控制匯流排22連接。行解碼器19與資料匯流排23連接。列解碼器18、行解碼器19、資料快取記憶體20及感測放大器21與記憶體控制部17連接。行解碼器19按照行位址進行記憶體晶片MC00之行選通器(column gate)控制。電源控制部15、列解碼器18及感測放大器21與記憶體晶片MC00之輸入輸出部連接。列解碼器18按照行位址選擇驅動記憶體晶片MC00之字元線及選擇閘極線。更具體而言,列解碼器18控制記憶體晶片MC00內之記憶胞陣列之電極層、汲極側選擇閘極及源極側選擇閘極之電位。感測放大器21與記憶體晶片MC00之位元線連接,讀取位元線之電位,放大所讀取之電位。
以下,說明圖5之非揮發性記憶體NM00從控制器3經由記憶體匯流排MB0接收到寫入指令(編程指令)時執行之寫入處理。
指令控制部10經由記憶體匯流排MB0、介面部8及控制匯流排22從控制器3接收寫入指令、寫入目的地之物理位址及隨機化密鑰。
又,指令控制部10將利用介面部8經由記憶體匯流排MB0從控制器3接收到之作為寫入對象之資料及冗餘部經由資料匯流排23保存於記憶體12中。
指令控制部10使用隨機化處理器13及隨機化密鑰對記憶體12中保存之作為寫入對象之資料執行隨機化,並將隨機化資料保存於記憶體12中。再者,指令控制部10亦可使用例如資料快取記憶體20等其他記憶體代替記憶體12來執行對資料之隨機化。
指令控制部10使用錯誤訂正處理部14產生針對記憶體12中保存之隨機資料及冗餘部的奇偶校驗部,並且將奇偶校驗部保存於記憶體12中。再者,指令控制部10亦可使用例如資料快取記憶體20等其他記憶體代替記憶體12,來執行對隨機化資料及冗餘部之錯誤訂正處理。
指令控制部10經由控制匯流排22將寫入指令、列位址及行位址發送至記憶體控制部17。
指令控制部10經由資料匯流排23將記憶體12中保存之隨機化資料、冗餘部及奇偶校驗部保存至資料快取記憶體20中。
記憶體控制部17經由控制匯流排22從指令控制部10接收寫入指令、列位址及行位址。
記憶體控制部17於位址暫存器16a中保存列位址及行位址,於指令暫存器16b中保存寫入指令。
記憶體控制部17按照位址暫存器16a之列位址來控制列解碼器18。記憶體控制部17按照位址暫存器16a之行位址來控制行解碼器19。然後,記憶體控制部17藉由感測放大器21將資料快取記憶體20中保存之隨機化資料、冗餘部及奇偶校驗部放大,並將其等寫入(編程)至記憶體晶片MC00中。
記憶體控制部17將表示寫入結果之狀態保存於狀態暫存器16c中。
指令控制部10經由控制匯流排22、介面部8及記憶體匯流排MB0將狀態暫存器16c中保存之狀態發送至控制器3。
其次,說明圖5之非揮發性記憶體NM00經由記憶體匯流排MB0從控制器3接收到讀取指令時執行之讀取處理。
指令控制部10經由記憶體匯流排MB0、介面部8及控制匯流排22從控制器3接收讀取指令、讀取目的地之物理位址及隨機化密鑰。
指令控制部10經由控制匯流排22向記憶體控制部17發送讀取指令、列位址及行位址。
記憶體控制部17經由控制匯流排22從指令控制部10接收讀取指令、列位址及行位址。
記憶體控制部17將列位址及行位址保存於位址暫存器16a中,將讀取指令保存於指令暫存器16b中。
記憶體控制部17按照位址暫存器16a之列位址控制列解碼器18。記憶體控制部17按照位址暫存器16a之行位址來控制行解碼器19。然後,記憶體控制部17從記憶體晶片MC00讀取隨機化資料、冗餘部及奇偶校驗部,並將其等保存於資料快取記憶體20中。
指令控制部10經由資料匯流排23將資料快取記憶體20中保存之隨機化資料、冗餘部及奇偶校驗部保存於記憶體12中。
記憶體控制部17將表示讀取結果之狀態保存於狀態暫存器16c中。
指令控制部10使用錯誤訂正處理部14對記憶體12中保存之隨機化資料、冗餘部及奇偶校驗部執行錯誤訂正處理,並將錯誤訂正後之隨機化資料及冗餘部保存於記憶體12中。
指令控制部10使用隨機化處理器13及隨機化密鑰對記憶體12中保存之隨機化資料執行隨機化解除,並將已解除隨機化之資料保存於記憶體12中。
指令控制部10經由資料匯流排23、介面部8及記憶體匯流排MB0將已解除隨機化之資料及冗餘部發送至控制器3。
指令控制部10經由控制匯流排22、介面部8及記憶體匯流排MB0將狀態暫存器16c中保存之狀態發送至控制器3。
繼而,說明圖5之非揮發性記憶體NM00經由記憶體匯流排MB0從控制器3接收到壓緊讀取指令時執行之壓緊讀取處理。
指令控制部10具備處理部10a。記憶體12具備壓緊讀取緩衝記憶體12a及壓緊寫入緩衝記憶體12b。
處理部10a經由記憶體匯流排MB0、介面部8及控制匯流排22從控制器3接收壓緊讀取指令、讀取目的地之物理位址及隨機化密鑰。
處理部10a經由控制匯流排22將壓緊讀取指令、列位址及行位址發送至記憶體控制部17。
記憶體控制部17經由控制匯流排22從處理部10a接收壓緊讀取指令、列位址及行位址。
記憶體控制部17將列位址及行位址保存於位址暫存器16a中,並將壓緊讀取指令保存於指令暫存器16b中。
記憶體控制部17按照位址暫存器16a之列位址控制列解碼器18。記憶體控制部17按照位址暫存器16a之行位址控制行解碼器19。然後,記憶體控制部17從記憶體晶片MC00讀取隨機化資料、冗餘部及奇偶校驗部,並且將隨機化資料、冗餘部及奇偶校驗部保存於資料快取記憶體20中。
處理部10a經由資料匯流排23將資料快取記憶體20中保存之隨機化資料、冗餘部及奇偶校驗部保存於記憶體12中。
記憶體控制部17將表示壓緊讀取結果之狀態保存於狀態暫存器16c中。
處理部10a使用錯誤訂正處理部14對記憶體12中保存之隨機化資料、冗餘部及奇偶校驗部執行錯誤訂正處理。此處,可由錯誤訂正處理部14對隨機化資料及冗餘部進行錯誤訂正。
於此種情形時,處理部10a將訂正錯誤後之隨機化資料及冗餘部保存於記憶體12中。
處理部10a使用隨機化處理部13及隨機化密鑰對記憶體12中保存之隨機化資料執行隨機化解除,並將已解除隨機化之資料保存於記憶體12中。
處理部10a經由資料匯流排23、介面部8、記憶體匯流排MB0向控制器3發送記憶體12中保存之冗餘部。
又,處理部10a經由控制匯流排22、介面部8及記憶體匯流排MB0將狀態暫存器16c中保存之狀態發送至控制器3。
處理部10a將解除隨機化後之資料、冗餘部及奇偶校驗部保存於壓緊讀取緩衝記憶體12a中。
繼而,說明圖5之非揮發性記憶體NM00經由記憶體匯流排MB0從控制器3接收到壓緊移動指令時執行之壓緊移動。
處理部10a經由記憶體匯流排MB0、介面部8及控制匯流排22從控制器3接收壓緊移動指令及與有效資料對應之冗餘部。
處理部10a將壓緊讀取緩衝記憶體12a中所保存之資料、冗餘部及奇偶校驗部中之與接收到之冗餘部對應之有效資料、接收到之冗餘部、有效資料及冗餘部之奇偶校驗部保存於壓緊寫入緩衝記憶體12b中。
重複執行該壓緊移動,直至壓緊寫入緩衝記憶體12b中保存之有效資料達到規定數量以上。
繼而,說明圖5之非揮發性記憶體NM00經由記憶體匯流排MB0從控制器3接收到壓緊寫入指令時執行之壓緊寫入。
處理部10a經由記憶體匯流排MB0、介面部8及控制匯流排22從控制器3接收壓緊寫入指令、寫入目的地之物理位址、冗餘部及隨機化密鑰。
處理部10a使用隨機化處理部13及隨機化密鑰,對壓緊寫入緩衝記憶體12b中保存之有效資料執行隨機化,並將隨機化資料保存於壓緊寫入緩衝記憶體12b中。
處理部10a使用錯誤訂正處理部14產生針對壓緊寫入緩衝記憶體12b中保存之隨機化資料及冗餘部的奇偶校驗部,並將奇偶校驗部保存於壓緊寫入緩衝記憶體12b中。
處理部10a將壓緊寫入指令、列位址、行位址經由控制匯流排22發送至記憶體控制部17。
處理部10a經由資料匯流排23將壓緊寫入緩衝記憶體12b中保存之隨機化資料、冗餘部及奇偶校驗部保存於資料快取記憶體20中。
記憶體控制部17經由控制匯流排22從指令控制部10接收壓緊寫入指令、列位址及行位址。
記憶體控制部17將列位址及行位址保存於位址暫存器16a中,將壓緊寫入指令保存於指令暫存器16b中。
記憶體控制部17按照位址暫存器16a之列位址控制列解碼器18。記憶體控制部17根據位址暫存器16a之行位址控制行解碼器19。然後,記憶體控制部17藉由感測放大器21將資料快取記憶體20中保存之隨機化資料、冗餘部及奇偶校驗部放大,並且將其等寫入至記憶體晶片MC00。
記憶體控制部17將表示壓緊寫入結果之狀態保存於狀態暫存器16c中。
處理部10a經由控制匯流排22、介面部8及記憶體匯流排MB0將狀態暫存器16c中保存之狀態發送至控制器3。
圖6係表示本實施方式之記憶體晶片MC00中之頁與幀F0~F3之關係之例的圖。
記憶體晶片MC00包含複數個記憶體面PL0、PL1。記憶體面PL0包含塊B0、B2、…、Bk、頁暫存器PR0。記憶體面PL1包含塊B1、B3、…、Bk+1、頁暫存器PR1。以下,以塊B2為代表進行說明,但塊B1、B3~Bk+1亦與塊B2相同。
塊B2包含複數個頁。塊B2具備複數條字元線WL0~WLm及與複數條字元線WL0~WLm各自連接之複數個記憶胞。
於本實施方式中,使一個記憶胞為能夠保存3位元資訊之TLC(Triple Level Cell,三層單元)、或能夠保存4位元資訊之QLC(Quad Level Cell,四層單元)。再者,記憶胞例如亦可為SLC(Single Level Cell,單層單元)、MLC(Multi Level Cell,多層單元)、或者能夠保存5位元以上之資訊。於圖6之例中,圖示出了記憶胞為TLC之情形。
以下,將於資料之寫入處理及讀取處理時總括地被選擇之記憶胞之群記載為「記憶胞組」。並且,將針對一個記憶胞組中之複數個記憶胞各者寫入或讀取之1位元資料之集合記載為「頁」。
連接至字元線WL0之複數個記憶胞對應於記憶胞組MCG0。同樣地,字元線WL1~WLm各自所連接之複數個記憶胞分別對應於記憶胞組MCG1~MCGm。由TLC所保存之3位元資料從下位起依序為下位位元(lower bit)、中位位元(middle bit)及上位位元(upper bit)。記憶胞組MCG0所保存之下位位元之集合為下位頁(lower page),記憶胞組MCG0所保存之中位位元之集合為中位頁(middle page),記憶胞組MCG0所保存之上位位元之集合為上位頁(upper page)。記憶胞組MCG1~MCGm各自亦與記憶胞組MCG0同樣,包含下位頁、中位頁及上位頁。
與字元線WL0對應之下位頁能夠使用記憶胞組MCG0之下位位元保存4個幀。與字元線WL0對應之中位頁能夠使用記憶胞組MCG0之中位位元來保存4個幀F0~F3。與字元線WL0對應之上位頁能夠使用記憶胞組MCG0之上位位元保存4個幀。於圖6中,作為示例,圖示了與字元線WL0對應之中位頁中保存之4個幀F0~F3。
使用下位頁、中位頁、上位頁中之任一者能夠保存之幀數可以變更,例如亦可為1~3或5以上。
幀F0包含資料D、冗餘部P及奇偶校驗部Par。
資料D例如為用戶資料。資料D例如亦可為隨機化資料。
冗餘部P包含資料D之邏輯位址LA。
奇偶校驗部Par包含用於檢測及訂正於資料D及冗餘部P中產生之錯誤的資訊。
再者,幀F1~F3亦可包含與幀F0相同之資訊。
圖7係例示按照本實施方式之壓緊讀取指令從記憶體面PL0、PL1讀取之幀Fr0a、Fr1a之變化的圖。
處理部10a執行從記憶體面PL0進行之幀Fr0a之壓緊讀取。幀Fr0a包含隨機化資料Dr、冗餘部R及奇偶校驗部Par。所讀取之幀Fr0a有時包含錯誤。
錯誤訂正處理部14對幀Fr0a之隨機化資料Dr及冗餘部R執行錯誤訂正處理,而產生幀Fr0b。
錯誤訂正處理部14產生從幀Fr0b中刪除奇偶校驗部Par所得之幀Fr0c。
隨機化處理部13執行對幀Fr0c之隨機化資料Dr之隨機化解除,以產生包括資料D及冗餘部R之幀Fr0d。
處理部10a將幀Fr0d保存於壓緊讀取緩衝記憶體12a中。
再者,從記憶體面PL1讀取之幀Fr1a與幀Fr0a同樣地向幀Fr1b~Fr1d變化。
圖8係例示按照本實施方式之壓緊寫入指令向記憶體面PL0、PL1寫入之幀Fr0d、Fr1d之變化的圖。
處理部10a讀取壓緊寫入緩衝記憶體12b中保存之幀Fr0d。幀Fr0d包含資料D及冗餘部R。
隨機化處理部13對幀Fr0d之資料D執行隨機化,以產生包括隨機化資料Dr及冗餘部R之幀Fr0c。
錯誤訂正處理部14對幀Fr0c之隨機化資料Dr及冗餘部R附加奇偶校驗部Par,產生幀Fr0b。
處理部10a執行用於向記憶體面PL0寫入幀Fr0b之處理。
寫入至記憶體面PL0之幀Fr0b有時包含錯誤。包含該錯誤之幀Fr0b於圖8中記載為幀Fr0a。
再者,向記憶體面PL1寫入之幀Fr1d與幀Fr0d同樣地,向幀Fr1c~Fr1a變化。
圖9係表示由本實施方式之記憶體系統1執行之有效幀判斷之例的圖。
指令處理部CP00從壓緊對象之記憶體晶片MC00之記憶體面PL0之原始頁開始,讀取保存於下位頁中之幀F0~F3、保存於中位頁中之幀F4~F7、及保存於上位頁中之幀F8~F11。
又,指令處理部CP00與幀F0~F11並行地從記憶體晶片之記憶體面PL1之原始頁起,讀取保存於下位頁之幀F12~F15、保存於中位頁之幀F6~F19、及保存於上位頁之幀F20~F23。
冗餘部R0~R3係從記憶體面PL0之原始頁中之下位頁讀取之資訊。冗餘部R4~R7係從記憶體面PL0之原始頁中之中位頁讀取之資訊。冗餘部R8~R11係從記憶體面PL0之原始頁中之上位頁讀取之資訊。
冗餘部R12~R15係從記憶體面PL1之原始頁中之下位頁讀取之資訊。冗餘部R16~R19係從記憶體面PL1之原始頁中之中位頁讀取之資訊。冗餘部R20~R23係從記憶體面PL1之原始頁中之上位頁讀取之資訊。
指令處理部CP00向控制器3發送冗餘部R0~R23。
於本實施方式中,亦可從指令處理部CP00將複數個冗餘部集中發送至控制器3。例如,於記憶體面PL0中,將下位頁中包含之冗餘部R0~R3、中位頁中包含之冗餘部R4~R7、上位頁中包含之冗餘部R8~R11連續地從指令處理部CP00傳送至控制器3。換言之,冗餘部R0~R11集中地從指令處理部CP00傳送至控制器3。例如,於記憶體面PL1中,將下位頁中包含之冗餘部R12~R15、中位頁中包含之冗餘部R16~R19、及上位頁中包含之冗餘部R20~R23連續地從指令處理部CP00傳送至控制器3。換言之,冗餘部R12~R23被集中從指令處理部CP00傳送至控制器3。藉此,能夠使傳送速度高速化。
控制器3基於位址轉換表AT、冗餘部R0~R23以及原始頁之物理位址來判斷幀F0~F23各自是有效還是無效。
於圖9之例中,例示之情況係包括冗餘部R1、R3、R5、R9~R11、R14、R15、R20~R23之幀F1、F3、F5、F9~F11、F14、F15、F20~F23有效。且例示了包括冗餘部R0、R2、R4、R6~R8、R12、R13、R16~R19之幀F0、F2、F4、F6~F8、F12~F13、F16~F19無效。
控制器3將與被判斷為有效之幀F1、F3、F5、F9~F11、F14、F15、F20~F23對應之冗餘部R1、R3、R5、R9~R11、R14、R15、R20~R23發送至指令處理部CP00。
於本實施方式中,亦可從控制器3將複數個冗餘部集中發送至指令處理部CP00。藉此,能夠使傳送速度高速化。
於壓緊寫入時,指令處理部CP00將接收到之包含冗餘部R1、R3、R5、R9~R11、R14、R15、R20~R23之幀F1、F3、F5、F9~F11、F14、F15、F20~F23寫入至目的地頁。
圖10係表示為了壓緊中之讀取而從控制器3向指令處理部CP00發送之指令之例的圖。
首先,指令處理部CP00從控制器3接收用於設置參數值之設置特徵(SetFeature)指令CMD1、LUN(Logical Unit Number,邏輯單元號碼)位址、特徵(Feature)位址、參數值以及表示指令結束之忙碌信號。LUN位址指定非揮發性記憶體NM00~NM33中包含之設備中之任一個。特徵位址指定參數。指令處理部CP00針對由LUN位址所指定之設備及由特徵位址所指定之參數設定參數值。指令處理部CP00可以重複(連續地)接收設置特徵指令CMD1至忙碌信號,並且重複(連續地)執行參數集。
於本實施方式中,設置特徵指令CMD1之特徵位址及參數值例如用於「將指定之非揮發性記憶體轉變為壓緊模式,或者返回至通常動作模式」動作(模式變更)。例如,指令處理部CP00根據LUN位址、特徵位址及參數值將非揮發性記憶體NM00從通常動作模式轉變為壓緊模式。
又,於執行壓緊讀取指令或執行壓緊寫入指令時使用之電壓值資訊之變更中,使用設置特徵指令CMD1所附加之特徵位址及參數值。
指令處理部CP00從控制器3接收附隨機化密鑰之位址輸入指令CMD2a、記憶體面PL0之行位址、記憶體面PL0之列位址、記憶體面PL0之隨機化密鑰、記憶體面切換指令CMD2b、表示指令結束之忙碌信號、附隨機化密鑰之位址輸入指令CMD2a、記憶體面PL1之行位址、記憶體面PL1之列位址、記憶體面PL1之隨機化密鑰、壓緊讀取指令CMD2c以及表示指令結束之忙碌信號。
於是,指令處理部CP00讀取與記憶體面PL0之行位址及記憶體面PL0之列位址對應之位置處保存的幀。然後,指令處理部CP00執行針對讀取之幀之錯誤訂正處理,使用記憶體面PL0之隨機化密鑰對錯誤訂正後之幀中包含之隨機化資料執行隨機化解除。
進而,指令處理部CP00讀取與記憶體面PL1之行位址及記憶體面PL1之列位址對應之位置處保存的幀。然後,指令處理部CP00執行對於讀取之幀之錯誤訂正處理,使用記憶體面PL1之隨機化密鑰對錯誤訂正後之幀中包含之隨機化資料執行隨機化解除。
再者,於針對所讀取之幀無法進行錯誤訂正之情形時,指令處理部CP00將所讀取之幀發送至控制器3,控制器3對幀執行錯誤訂正能力較指令處理部CP00高之錯誤訂正處理,並執行壓緊。
於針對所讀取之幀能夠進行錯誤訂正之情形時,指令處理部CP00從控制器3接收用於輸出幀之冗餘部之位址輸入指令CMD3a、行位址、列位址、資料輸出(資料輸出開始)指令CMD3b、表示指令結束之觸發信號。於接收到資料輸出指令CMD3b之情形時,指令處理部CP00向控制器3發送與行位址及列位址對應之冗餘部,而不向控制器3發送資料。指令處理部CP00亦可重複(連續地)接收位址輸入指令CMD3a至觸發信號,並重複(連續地)執行向控制器3之冗餘部之發送。
指令處理部CP00從控制器3接收用於結束壓緊讀取之設置特徵指令CMD1、LUN位址、特徵位址、參數值及表示指令結束之忙碌信號。指令處理部CP00針對由LUN位址所指定之設備及由特徵位址所指定之參數設定參數值。例如,指令處理部CP00根據LUN位址、特徵位址及參數值將非揮發性記憶體NM00從壓緊模式轉變為通常動作模式。指令處理部CP00亦可重複(連續地)接收設置特徵指令CMD1至忙碌信號,並重複(連續地)執行壓緊讀取之結束。
圖11係表示為了壓緊中之寫入而從控制器3向指令處理部CP00發送之指令之例的圖。
指令處理部CP00首先從控制器3接收用於設置參數值之設置特徵指令CMD1、LUN位址、特徵位址、參數值以及表示指令結束之忙碌信號。LUN位址指定非揮發性記憶體NM00~NM33中所具備之設備中之任一個。指令處理部CP00針對由LUN位址所指定之設備及由特徵位址所指定之參數設定參數值。例如,指令處理部CP00根據LUN位址、特徵位址及參數值,將非揮發性記憶體NM00從通常動作模式轉變為壓緊模式。指令處理部CP00亦可重複(連續地)接收指令CMD1至忙碌信號,且重複(連續地)執行參數集。
指令處理部CP00從控制器3接收用於壓緊中之寫入之冗餘部及附隨機化密鑰之位址輸入指令CMD2ar、記憶體面PL0之行位址、記憶體面PL0之列位址、記憶體面PL0之冗餘部、記憶體面PL0之隨機化密鑰、記憶體面切換指令CMD2b、表示指令結束之忙碌信號、冗餘部及附隨機化密鑰之位址輸入指令CMD2ar、記憶體面PL1之行位址、記憶體面PL1之列位址、記憶體面PL1之冗餘部、記憶體面PL1之隨機化密鑰、壓緊寫入指令CMD2d、以及表示指令結束之忙碌信號。
於是,指令處理部CP00對接收到之包含記憶體面PL0之冗餘部的幀之資料,使用記憶體面PL0之隨機化密鑰執行隨機化,產生對隨機化資料及記憶體面PL0之冗餘部附加奇偶校驗部所得之幀。然後,指令處理部CP00將所產生之幀寫入至與記憶體面PL0之行位址、記憶體面PL0之列位址對應之位置。
進而,指令處理部CP00對接收到之包含PL1之冗餘部的幀之資料,使用隨機化密鑰執行隨機化,產生對隨機化資料及記憶體面PL1之冗餘部附加奇偶校驗部所得之幀。然後,指令處理部CP00將所產生之幀寫入至與記憶體面PL1之行位址及記憶體面PL1之列位址對應之位置。
當從控制器3接收到狀態詢問時,指令處理部CP00向控制器3發送表示壓緊寫入是否已結束之狀態。
指令處理部CP00從控制器3接收用於結束壓緊寫入之設置特徵指令CMD1、LUN位址、特徵位址、參數值及表示指令結束之忙碌信號。指令處理部CP00針對由LUN位址所指定之設備及由特徵位址所指定之參數設定參數值。例如,指令處理部CP00根據LUN位址、特徵位址及參數值,將非揮發性記憶體NM00從壓緊模式轉變為通常動作模式。指令處理部CP00亦可重複(連續地)接收設置特徵指令CMD1至忙碌信號,並重複(連續地)執行壓緊寫入之結束。
圖12係表示本實施方式之控制器3與指令處理部CP00之協作之例的圖。
於圖12中,指令處理部CP00執行壓緊讀取之時間以tR表示。指令處理部CP00執行壓緊寫入之時間以tProg表示。
控制器3將物理位址、隨機化密鑰及壓緊讀取指令CMD2c發送至指令處理部CP00(資料輸入)。
當從控制器3接收到物理位址、隨機化密鑰及壓緊讀取指令CMD2c時,指令處理部CP00從記憶體晶片MC00中之物理位址所表示之位置讀取幀,針對所讀取之幀中包含之隨機化資料,使用隨機化密鑰執行隨機化解除。
控制器3等待由指令處理部CP00進行之壓緊讀取處理,對指令處理部CP00進行狀態詢問(例如輪詢),檢查壓緊讀取之狀態。
當指令處理部CP00之壓緊讀取結束時,控制器3將用於獲取物理位址及冗餘部之資料輸出指令CMD3b發送至指令處理部CP00。
當從控制器3接收到物理位址及資料輸出指令CMD3b時,指令處理部CP00向控制器3發送與物理位址對應之冗餘部(冗餘部之資料輸出)。
控制器3從指令處理部CP00接收冗餘部。
控制器3基於從指令處理部CP00接收到之冗餘部、位址轉換表AT及物理位址,來判斷與冗餘部對應之幀是否為有效幀。
基於是否為有效幀之判斷結果,控制器3將用於使指令處理部CP00之壓緊讀取緩衝記憶體12a中保存之有效幀向指令處理部CP00之壓緊寫入緩衝記憶體12b移動之壓緊移動指令、以及有效特定資訊(例如邏輯位址或者冗餘部)發送至指令處理部CP00。
指令處理部CP00基於來自控制器3之壓緊讀取指令及有效特定資訊,將壓緊讀取緩衝記憶體12a中保存之有效幀移動至壓緊寫入緩衝記憶體12b。
從控制器3發送物理位址、隨機化密鑰及壓緊讀取指令CMD2c,至指令處理部CP00使有效資料從壓緊讀取緩衝記憶體12a移動至壓緊寫入緩衝記憶體12b,重複進行該處理,直至壓緊寫入緩衝記憶體12b中儲存有一條字元線能夠保存之數量之有效資料為止。
當判斷為壓緊寫入緩衝記憶體12b中保存有一條字元線能夠保存之數量之有效幀時,控制器3將物理位址、冗餘部、隨機化密鑰及壓緊寫入指令CMD2d發送至指令處理部CP00(冗餘部及隨機化密鑰之資料輸入)。
當從控制器3接收到物理位址、冗餘部、隨機化密鑰及壓緊寫入指令CMD2d時,指令處理部CP00使用隨機化密鑰對資料進行隨機化。指令處理部CP00對隨機化資料及冗餘部附加奇偶校驗部。指令處理部CP00產生包含隨機化資料、冗餘部及奇偶校驗部之幀。然後,指令處理部CP00將所產生之幀寫入至由物理位址所指定之位置。
控制器3等待指令處理部CP00之壓緊寫入處理,對指令處理部CP00進行狀態詢問(例如輪詢),檢查壓緊寫入狀態。
控制器3基於狀態檢查結果來檢測壓緊寫入之結束。
圖13係表示本實施方式之由指令處理部CP00及控制器3執行之處理之一例的流程圖。
於該圖13中,以記憶體晶片MC00具備TLC之記憶胞之情形為例進行說明。
控制器3將壓緊讀取指令及物理位址發送至指令處理部CP00。指令處理部CP00從控制器3接收壓緊讀取指令及物理位址(S1301)。
指令處理部CP00按照壓緊讀取指令,針對記憶體晶片MC00之2個記憶體面PL0、PL1,以多記憶體面順序讀取(multiplane sequential read)之方式讀取原始塊中之由物理位址所指定之頁中保存之幀(S1302)。
具體而言,當接收到壓緊讀取指令時,指令處理部CP00執行3[頁/字元線:下位頁/中位頁/上位頁]×2[記憶體面]之讀取,並將所讀取之幀保存於記憶體12中。
指令處理部CP00對記憶體12中保存之幀執行錯誤訂正處理(S1303)。
指令處理部CP00判斷對幀之錯誤訂正是否成功(S1304)。
於對幀之錯誤訂正失敗之情形時,指令處理部CP00將包含資料以及冗餘部之幀發送至控制器3(S1305a)。
控制器3對從指令處理部CP00接收到之幀執行錯誤訂正處理(S1305b)。
控制器3基於經錯誤訂正之幀、位址轉換表AT及讀取目的地之物理位址,判斷從指令處理部CP00接收到之幀是否為有效幀(S1305c)。
並且,控制器3將用於向非揮發性記憶體NM00~NM33中之目的地塊寫入有效幀之例如寫入指令、物理位址、有效資料、冗餘部及隨機化密鑰發送至指令處理部CP00(S1305d)。
指令處理部CP00從控制器3接收寫入指令、物理位址、冗餘部及隨機化密鑰(S1305e)。
指令處理部CP00對於從控制器3接收到之包含有效資料及冗餘部之有效幀,執行使用了隨機化密鑰之資料之隨機化及奇偶校驗部之附加(S1305f)。
指令處理部CP00將包含隨機化資料、冗餘部及奇偶校驗部之有效幀寫入至由物理位址指定之頁中(S1305g)。然後,處理進行至S1301。
於對幀之錯誤訂正成功之情形時,指令處理部CP00對記憶體12中保存之幀之隨機化資料執行隨機化解除,將包括已解除隨機化之資料及冗餘部之幀保存於記憶體12中(S1306)。
指令處理部CP00將包括已解除隨機化之資料之幀之冗餘部發送至控制器3(資料輸出:S1307)。
具體而言,例如,於冗餘部之資料大小為16位元組之情形時,指令處理部CP00對控制器3進行16[位元組]之冗餘部×4[幀]×3[頁/字元線:下位頁/中位頁/上位頁]×2[記憶體面]=384[位元組]之資料輸出。
指令處理部CP00將包括記憶體12中保存之已解除隨機化之資料及冗餘部的幀移動至壓緊讀取緩衝記憶體12a(S1308)。指令處理部CP00將記憶體12之例如鎖存電路中保存之幀移動至壓緊讀取緩衝記憶體12a,藉此能夠從主機設備2接收讀取指令。
控制器3基於從指令處理部CP00接收到之冗餘部中包含之邏輯位址、位址轉換表AT及物理位址,判斷從指令處理部CP00接收到之包含冗餘部之幀是否為有效幀(S1309)。
控制器3將壓緊移動指令及有效特定資訊發送至指令處理部CP00。指令處理部CP00從控制器3接收壓緊移動指令及有效特定資訊(S1310)。
當接收到壓緊移動指令及有效特定資訊時,指令處理部CP00將壓緊讀取緩衝記憶體12a中保存之幀中由有效特定資訊所指定之有效幀,以填滿之狀態移動至壓緊寫入緩衝記憶體12b(S1311)。指令處理部CP00例如將包含與有效特定資訊對應之冗餘部之幀判斷為有效幀。
控制器3判斷壓緊寫入緩衝記憶體12b中保存之有效幀之數量是否為規定值以上(S1312)。
具體而言,控制器3判斷於壓緊寫入緩衝記憶體12b中是否儲存有4[幀]×3[頁/字元線:下位頁/中位頁/上位頁]×2[記憶體面]=24個有效幀。
於壓緊寫入緩衝記憶體12b中保存之有效幀之數量並非規定值以上之情形時,指令處理部CP00變為等待狀態,直至從控制器3接收新的壓緊讀取指令為止。當指令處理部CP00從控制器3接收到新的壓緊讀取指令時,執行S1301及後續之處理。
於壓緊寫入緩衝記憶體12b中保存之有效幀之數量為規定值以上之情形時,控制器3向指令處理部CP00發送壓緊寫入指令、物理位址、冗餘部及隨機化密鑰(資料輸入)。指令處理部CP00從控制器3接收壓緊寫入指令、物理位址、冗餘部及隨機化密鑰(S1313)。
指令處理部CP00對壓緊寫入緩衝記憶體12b中保存之有效幀,使用隨機化密鑰執行資料之隨機化及奇偶校驗部之附加(S1314)。
指令處理部CP00針對2個記憶體面PL0、PL1,將包含隨機化資料、冗餘部及奇偶校驗部之有效幀以多記憶體面頁寫入(multiplane page write)之方式寫入至目的地塊內之由物理位址所指定之頁(S1315)。
具體而言,指令處理部CP00將4[幀]×3[頁/字元線:下位頁/中位頁/上位頁]×2[記憶體面]=24個有效幀以多記憶體面順序寫入(multiplane sequential write)之方式寫入至2個記憶體面PL0、PL1。
圖14係表示本實施方式之非揮發性記憶體NM00之製造方法之一例的圖。
於本實施方式中,外圍電路PC包含指令處理部CP00。外圍電路PC例如使用CMOS產生。
記憶體晶片MC00包括NAND型記憶胞陣列。NAND型記憶胞陣列亦可為具有三維構造之記憶胞陣列。
外圍電路PC及記憶體晶片MC00分別由不同之矽晶圓製造。然後,將外圍電路PC與記憶體晶片MC00貼合而製造非揮發性記憶體NM00。更具體地進行說明,外圍電路PC之電極與記憶體晶片MC00之電極連接,而製造非揮發性記憶體NM00。
外圍電路之製造程序較記憶胞之製造程序更高級。於由相同之矽晶圓製造外圍電路及記憶胞之情形時,必須使外圍電路之製造程序之技術水準與記憶胞之製造程序之技術水準一致。
與此相對,於本實施方式中,可使用較記憶體晶片MC00更高級之技術來設計、製造外圍電路PC,能夠實現非揮發性記憶體NM00之微細化、高速化、高積體化。
因此,於本實施方式中,與由相同之矽晶圓製造外圍電路及記憶胞之情形相比,可使外圍電路PC高功能化。
進而,於本實施方式中,與由相同之矽晶圓製造外圍電路及記憶胞之情形相比,可增大外圍電路PC之記憶體12等之記憶容量。
進而,於本實施方式中,與由相同之矽晶圓製造外圍電路及記憶胞之情形相比,可提高功能塊及電路塊之再利用率。
以下,藉由將本實施方式之記憶體系統1與比較例之記憶體系統進行對比,來說明藉由本實施方式之記憶體系統1獲得之效果之例。
圖15係表示比較例之記憶體系統24之構成之一例的方塊圖。
比較例之記憶體系統24能夠與主機設備2通信,具備非揮發性記憶體NM40~NM73及控制器26。
非揮發性記憶體NM40~NM73與非揮發性記憶體NM00~NM33之不同之處在於不具備上述指令處理部CP00~CP33。
非揮發性記憶體NM40~NM43各自連接於記憶體匯流排MB0。非揮發性記憶體NM50~NM53各自連接於記憶體匯流排MB1。非揮發性記憶體NM60~NM63各自連接於記憶體匯流排MB2。非揮發性記憶體NM70~NM73各自連接於記憶體匯流排MB3。
控制器26控制非揮發性記憶體NM40~NM73。
控制器26具備主機介面部4、例如SRAM25等之記憶裝置、處理器6、DMAC7、記憶體介面部MI0~MI3。
SRAM25例如保存韌體FW2、位址轉換表AT。
韌體FW2藉由利用處理器6執行,而使處理器6實現包括壓緊之各種控制。
處理器6執行韌體FW2。處理器6經由記憶體介面部MI0及記憶體匯流排MB0向包括原始塊之非揮發性記憶體NM40發送讀取指令及讀取目的地之物理位址。
處理器6從非揮發性記憶體NM40中之由讀取目的地之物理位址所指定之位置,經由記憶體匯流排MB0及記憶體介面部MI0,接收包含資料及冗餘部之幀,並將接收到之幀保存於SRAM25中。
處理器6基於位址轉換表AT、讀取目的地之物理位址、冗餘部,判斷SRAM25中保存之幀是否為有效幀。
處理器6將寫入指令、寫入目的地之物理位址、SRAM25中保存之有效幀發送至包含目的地塊之非揮發性記憶體NM50。藉此,非揮發性記憶體NM40之原始塊之有效資料被保存於非揮發性記憶體NM50之目的地塊中。
又,處理器6經由記憶體介面部MI0及記憶體匯流排MB0,向包括原始塊之非揮發性記憶體NM40發送用於抹除原始塊之抹除指令及抹除目的地之物理位址。藉此,對原始塊執行抹除。然後,處理器6將原始塊視為空閒塊進行管理。
對1個非揮發性記憶體進行讀取/寫入所需之時間較HDD長。於比較例之記憶體系統24中,搭載多個非揮發性記憶體NM40~NM73,提高內部處理之並行度,藉此與HDD相比實現了高速之讀取/寫入。
比較例之記憶體系統24如上所述般執行壓緊。於比較例之記憶體系統24不搭載DRAM之情形、或者比較例之記憶體系統24之DRAM之大小較小之情形時,控制器26例如具備暫時保存用之SRAM25。但是,為了壓緊而將充分大小之SRAM25搭載於比較例之記憶體系統24會導致高成本化。因此,於比較例之記憶體系統24中,壓緊能夠利用之緩衝器大小受到限制。於緩衝器大小受到限制之比較例之記憶體系統24中,難以提高內部處理之並行度,需要逐步串行地執行處理。於此種情形時,從主機設備2來看,比較例之記憶體系統24之處理速度較慢。
如圖15所示,比較例之記憶體系統24具備16個非揮發性記憶體NM40~NM73,具備4條記憶體匯流排MB0~MB3,且具備4個通道ch4~ch7。於比較例之記憶體系統24之SRAM25中,暫時保存在壓緊過程中從非揮發性記憶體NM40~NM73中之任一個讀取到之資料的讀取緩衝記憶體被限制在516千位元組,暫時保存在壓緊過程中要向非揮發性記憶體NM40~NM73中之任一個寫入之資料的寫入緩衝記憶體被限制在192千位元組。如此,比較例之記憶體系統24中,暫時保存在壓緊過程中要向非揮發性記憶體NM40~NM73中之任一個寫入之資料的寫入緩衝記憶體被限制在192千位元組,其於壓緊中能夠並行執行4[非揮發性記憶體之數量]×1[記憶體面之數量]之寫入。於在比較例之記憶體系統24之硬體構成中緩衝記憶體之大小足夠之情形時,比較例之記憶體系統24能夠於壓緊中並行執行16[非揮發性記憶體之數量]×2[記憶體面之數量]之寫入。當對比較例之記憶體系統24中之此兩個壓緊中之寫入性能進行比較時,寫入緩衝記憶體之大小受限之情形時能夠並行寫入之晶片數係寫入緩衝記憶體之大小不受限之情形時能夠並行寫入之晶片數的1/4。又,於比較例之記憶體系統24中,寫入緩衝記憶體之大小受限之情形時能夠並行寫入之記憶體面之數量係寫入緩衝記憶體之大小不受限時能夠並行寫入之記憶體面之數量的1/2。因此,寫入緩衝記憶體之大小受限之比較例之記憶體系統24之壓緊性能係寫入緩衝記憶體之大小不受限之情形時之壓緊性能的1/8。
如以上所說明,若SRAM25之大小受限,則比較例之記憶體系統24之壓緊花費時間,比較例之記憶體系統24之寫入性能得分(例如全域隨機寫入)變低。
與此相對,於本實施方式之記憶體系統1中,於在壓緊中指令處理部CP00~CP33能夠對資料及冗餘部進行錯誤訂正之情形時,控制器3從指令處理部CP00~CP33接收冗餘部,但不接收資料。
因此,於本實施方式之記憶體系統1中,即使SRAM5之大小受限,亦可抑制用於壓緊之區域,並且能夠使非揮發性記憶體NM00~NM33並行地動作。因此,於本實施方式中能夠使壓緊高速化。
圖16係表示本實施方式之記憶體系統1從主機設備2接收到寫入指令及讀取指令之情形時之資料轉換之例的圖。再者,比較例之記憶體系統24從主機設備2接收到寫入指令及讀取指令之情形時之資料轉換亦與圖16相同。
控制器3例如從主機設備2接收寫入指令、邏輯位址、資料D。
當接收到寫入指令時,控制器3使用位址轉換表AT將邏輯位址轉換成物理位址。
控制器3對資料D附加包含邏輯位址之冗餘部R,產生幀Fr0d。
控制器3對幀Fr0d之資料D執行隨機化,產生包含隨機化資料Dr及冗餘部R之幀Fr0c。
控制器3產生對幀Fr0c附加奇偶校驗部Par所得之幀Fr0b,並將幀Fr0b寫入至非揮發性記憶體NM00中之物理位址所表示之位置(頁)。
控制器3例如從主機設備2接收讀取指令及邏輯位址。
當接收到讀取指令時,控制器3使用位址轉換表AT將邏輯位址轉換成物理位址。
控制器3從非揮發性記憶體NM00中之由物理位址所指定之位置(頁)讀取幀Fr0a。於幀Fr0a中有時會產生錯誤。
控制器3對從非揮發性記憶體NM00讀取之幀Fr0a執行錯誤訂正處理,從幀Fr0a中刪除奇偶校驗部Par,產生幀Fr0c。
控制器3對幀Fr0c中包含之隨機化資料Dr執行隨機化解除,以產生包含資料D及冗餘部R之幀Fr0d。
控制器3將幀Fr0d中包含之資料D發送至主機設備2。
圖17係表示藉由比較例之記憶體系統24執行之壓緊中之資料轉換之例的圖。於該圖17中,例示出了原始塊及目的地塊存在於非揮發性記憶體NM40內之情形。然而,原始塊及目的地塊亦可包含於不同之非揮發性記憶體中。
控制器26從非揮發性記憶體NM40讀取原始塊中保存之幀Fr0a。從非揮發性記憶體NM40讀取之幀Fr0a中有時會產生錯誤。
控制器26對從非揮發性記憶體NM40讀取之幀Fr0a執行錯誤訂正處理,刪除奇偶校驗部Par,產生幀Fr0c。
控制器26對幀Fr0c中包含之隨機化資料Dr執行隨機化解除,產生包含已解除隨機化之資料D及冗餘部R之幀Fr0d。
控制器26基於冗餘部R中包含之邏輯位址、讀取目的地之物理位址及位址轉換表AT,判斷幀Fr0d之資料D是否為有效資料。
於資料D為有效資料之情形時,控制器26對幀Fr0d之資料D執行隨機化,產生包括隨機化資料Dr及冗餘部R之幀Fr0c。
控制器26對幀Fr0c附加奇偶校驗部Par,產生幀Fr0b。
控制器26將幀Fr0b寫入至由寫入目的地之物理位址所指定之位置。
於資料D為有效資料之情形時,控制器26於位址轉換表AT中將與冗餘部R中包含之邏輯位址對應之物理位址更新為寫入目的地之物理位址。
如此,於比較例之記憶體系統24中,於壓緊中,從非揮發性記憶體NM40向控制器26發送包含隨機化資料Dr、冗餘部R及奇偶校驗部Par之幀Fr0a。又,於比較例之記憶體系統24中,於壓緊中,從控制器26向非揮發性記憶體NM40發送包含隨機化資料Dr、冗餘部R及奇偶校驗部Par之幀Fr0b。
圖18係表示由本實施方式之記憶體系統1執行之壓緊中之資料轉換之例的圖。於該圖18中,例示出了原始塊及目的地塊配置於非揮發性記憶體NM00內之情形。
控制器3將壓緊讀取指令、讀取目的地之物理位址及隨機化密鑰發送至指令處理部CP00。
指令處理部CP00讀取保存在非揮發性記憶體NM00中之由讀取目的地之物理位址所指定之位置的幀Fr0a。從非揮發性記憶體NM00讀取之幀Fr0a中有時會產生錯誤。
指令處理部CP00對從非揮發性記憶體NM00讀取之幀Fr0a執行錯誤訂正處理,從幀Fr0a刪除奇偶校驗部Par,而產生幀Fr0c。
指令處理部CP00使用隨機化密鑰對幀Fr0c之隨機化資料Dr執行隨機化解除,產生包含資料D及冗餘部R之幀Fr0d。
指令處理部CP00將幀Fr0d之冗餘部R發送至控制器3(資料輸出)。
控制器3基於從指令處理部CP00接收到之冗餘部R中包含之邏輯位址、位址轉換表AT、讀取目的地之物理位址,判斷指令處理部CP00中保存之幀Fr0d之資料D是否為有效資料。例如,控制器3判斷位址轉換表AT中冗餘部R所包含之邏輯位址與讀取目的地之物理位址是否建立了關聯。而且,於位址轉換表AT中冗餘部R所包含之邏輯位址與讀取目的地之物理位址建立了關聯之情形時,控制器3判斷為幀Fr0d之資料D為有效資料。反之,於位址轉換表AT中冗餘部R所包含之邏輯位址與讀取目的地之物理位址未建立關聯之情形時,控制器3判斷為幀Fr0d之資料D為無效資料。
於判斷為指令處理部CP00中保存之幀Fr0d中包含之資料D為有效資料之情形時,控制器3將壓緊寫入指令、寫入目的地之物理位址、冗餘部R發送至指令處理部CP00(資料輸入)。
指令處理部CP00從控制器3接收壓緊寫入指令、寫入目的地之物理位址、冗餘部R及隨機化密鑰。
指令處理部CP00使用隨機化密鑰對接收到之包含冗餘部R之幀Fr0d之資料D執行隨機化,產生包含隨機化資料Dr及冗餘部R之幀Fr0c。
指令處理部CP00產生對幀Fr0c之隨機化資料Dr及冗餘部R附加奇偶校驗部Par所得之幀Fr0b。
指令處理部CP00將幀Fr0b寫入至記憶體晶片MC00中之由寫入目的地之物理位址所指定之位置。
於判斷為幀Fr0d中包含之資料D為有效資料之情形時,控制器3更新位址轉換表AT,使得冗餘部R包含之邏輯位址與寫入目的地之物理位址相關聯。
於在壓緊中指令處理部CP00能夠對幀進行錯誤訂正之情形時,指令處理部CP00不將資料D發送至控制器3,而是將冗餘部R發送至控制器3,並從控制器3接收與有效資料對應之冗餘部R。
記憶體系統1將幀之移動限制於非揮發性記憶體NM00中。於指令處理部CP00能夠對資料D及冗餘部R進行錯誤訂正之情形時,非揮發性記憶體NM00將冗餘部R發送至控制器3,而不將資料D發送至控制器3。幀中包含之資料D被確保在指令處理部CP00內。控制器3從非揮發性記憶體NM00收集冗餘部R。於指令處理部CP00能夠進行錯誤訂正之情形時,控制器3亦可不將幀中包含之資料D配置於SRAM5中。於將有效資料從原始塊移動至目的地塊之後,控制器3更新位址轉換表AT中之物理位址與邏輯位址之間之關係。
於以上所說明之本實施方式中,可使控制器3所具備之用於壓緊之暫時保存用SRAM5之大小較比較例之記憶體系統24之SRAM25小。具體而言,控制器3之暫時保存用SRAM5之大小可設為控制器26之SRAM25之大小之約300分之一以下。
記憶體系統1中,即便於控制器3未搭載DRAM之情形時,亦可防止因SRAM5之大小限制而使性能下降,能夠以非揮發性記憶體NM00~NM33之搭載數之最大並行度來執行壓緊。換言之,即便於控制器3未搭載DRAM之情形時,記憶體系統1亦能夠以與控制器3搭載有DRAM之情形時相同之性能來執行壓緊。
記憶體系統1於壓緊中,即便不將資料從指令處理部CP00~CP33發送至控制器3,亦會使資料在非揮發性記憶體NM00~NM33各自之內部從原始塊移動至目的地塊。
壓緊中記憶體系統1之控制器3與非揮發性記憶體NM00~NM33之間收發之資料之大小小於壓緊中比較例之記憶體系統24之控制器26與非揮發性記憶體NM40~NM73之間收發之資料之大小。因此,能減少記憶體系統1之控制器3與非揮發性記憶體NM00~NM33之間之通信量。因此,於本實施方式之記憶體系統1中,與比較例之記憶體系統24相比,可縮短壓緊之處理時間。藉由縮短壓緊之處理時間,於本實施方式中,能防止對非揮發性記憶體NM00~NM33之隨機化寫入受壓緊阻礙。因此,本實施方式之記憶體系統1之隨機化寫入性能高於比較例之記憶體系統24之隨機化寫入性能。
本實施方式之記憶體系統1之控制器3於壓緊中,首先向指令處理部CP00發送壓緊讀取指令,然後向指令處理部CP00發送壓緊寫入指令。以下,對壓緊讀取指令及壓緊寫入指令進行說明。
首先,說明壓緊讀取指令。
就針對作為壓緊對象之原始塊中之資料判斷是有效還是無效的處理之一例而言,於本實施方式中,以讀取原始塊中之所有資料,並判斷所讀取之資料是有效還是無效之處理為示例進行說明。
壓緊讀取指令係用於在壓緊中從指令處理部CP00提取冗餘部R之指令,該冗餘部R係控制器3進行有效資料判斷所需要之有效判斷資訊。
指令處理部CP00根據壓緊讀取指令執行第1至第4壓緊讀取處理。
第1壓緊讀取處理如下:從記憶體晶片MC00讀取隨機化資料及冗餘部,並且將所讀取之隨機化資料保存於指令處理部CP00之記憶體12中。
第2壓緊讀取處理如下:對記憶體12中保存之隨機化資料及冗餘部執行錯誤訂正處理,判斷是否能夠進行錯誤訂正,並將訂正錯誤後之隨機化資料及冗餘部保存於記憶體12中。
第3壓緊讀取處理如下:使用從控制器3接收到之隨機化密鑰,對保存於記憶體12中且訂正錯誤後之隨機化資料進行隨機化解除,並將解除隨機化後之資料保存於記憶體12中。
第4壓緊讀取處理如下:例如,當從控制器3接收到將冗餘部R進行資料輸出之請求時,向控制器3發送冗餘部R。
比較例之記憶體系統24中,例如於對非揮發性記憶體NM40進行讀取之情形時,控制器26向非揮發性記憶體NM40發送讀取指令及物理位址。於非揮發性記憶體NM40為QLC之情形時,物理位址指定下位頁、中位頁、上位頁、首頁中之任一個。因此,為了從下位頁/中位頁/上位頁/首頁讀取資料,控制器26需要向非揮發性記憶體NM40發送4次讀取指令。
與此相對,於本實施方式中,於記憶體晶片MC00為QLC之情形時,指令處理部CP00當接收到壓緊讀取指令時執行所有15個級別之感測,從4頁(下位頁/中位頁/上位頁/首頁)讀取資料。因此,於本實施方式中,能夠提高指令之執行速度。進而,於非揮發性記憶體NM00由2個記憶體面PL0、PL1構成之情形時,指令處理部CP00能夠對2個記憶體面PL0、PL1並行地執行壓緊讀取指令。
於本實施方式中,控制器3判斷資料之有效無效及將資料移動至哪個塊之哪個頁位址。為了有效無效之判斷及移動目的地之判斷,指令處理部CP00將冗餘部發送至控制器3。但是,於在指令處理部CP00內能夠對資料進行錯誤訂正之情形時,指令處理部CP00不將資料發送至控制器3。
假設比較例之記憶體系統24之控制器26例如能夠藉由用於資料輸出之指令,而從非揮發性記憶體NM40向控制器26以例如20奈秒輸出資料。又,假定比較例之記憶體系統24例如需要例如300奈秒之等待時間,直至能夠按照用於資料輸出之指令,從非揮發性記憶體NM40向控制器26輸出資料為止。於此種情形時,比較例之記憶體系統24從1條字元線取出4[幀/頁]×4[下位頁/中位頁/上位頁/首頁]=16[幀]之冗餘部以及資料之時間為(300奈秒+20奈秒)×16=5.12毫秒。
與此相對,於本實施方式之記憶體系統1中,於指令處理部CP00中連續地形成位址。於此種情形時,從1條字元線取出4[幀/頁]×4[下位頁/中位頁/上位頁/首頁]=16幀之冗餘部以及資料之時間為300奈秒+20奈秒×16=0.64毫秒。
如上所述,於壓緊中,本實施方式之記憶體系統1於指令處理部CP00中由表示原始塊之位址連續地產生用於讀取之位址。然後,指令處理部CP00基於所產生之位址連續地進行資料之讀取。藉此,本實施方式之記憶體系統1能以例如比較例之記憶體系統24之約8倍之速度進行資料傳送。
其次,說明壓緊寫入指令。
壓緊寫入指令係用於在壓緊中,使指令處理部CP00將有效幀寫入至記憶體晶片MC00之指令。
指令處理部CP00按照壓緊寫入指令,執行第1至第4壓緊寫入處理。
第1壓緊寫入處理如下:從控制器3接收包括例如邏輯位址(位置資訊)之類的資料識別資訊之冗餘部、隨機化密鑰及寫入目的地之物理位址。
第2壓緊寫入處理係使用隨機化密鑰,以將資料0及1進行平准化之方式執行隨機化之處理。
第3壓緊寫入處理係產生隨機化資料及冗餘部之錯誤訂正所需要之奇偶校驗部之處理(例如編碼處理)。
第4壓緊寫入處理係將資料寫入至記憶體晶片MC00中之指定之位置之處理。
關於比較例之記憶體系統24之資料輸入中之資料傳送量,例如於記憶體晶片為TLC,每1頁之資料大小為18000位元組之情形時,根據18000[位元組/頁]×3[頁/字元線:下位頁/中位頁/上位頁]×2[記憶體面],得出為108,000位元組。
與此相對,關於本實施方式之資料輸入中之資料傳送量,例如於記憶體晶片MC00為TLC,每1幀之冗餘部之資料大小為16位元組之情形時,根據16[冗餘部之位元組數/幀]×4[幀/頁]×3[頁/字元線:下位頁/中位頁/上位頁]×2[記憶體面],得出為384位元組。
因此,於本實施方式中,能夠將資料輸入中之傳送量削減至比較例之記憶體系統24之約281分之一。
於本實施方式中,於非揮發性記憶體NM00~NM33為QLC之情形時,指令處理部CP00亦可將1字元線之冗餘部、即16個冗餘部(4[幀]×4[頁/字元線:下位頁/中位頁/上位頁/首頁])連續傳送至控制器3。例如,當指令處理部CP00根據隨機資料輸出指令向控制器3發送16位元組之冗餘部時,存在耗費300奈秒之時間之情形。與此相對,當指令處理部CP00連續傳輸1字元線之冗餘部時,能夠以20奈秒左右傳送資料。因此,藉由指令處理部CP00向控制器3連續傳送1字元線之冗餘部,可以將傳送效率抑制在使用隨機資料輸出指令時之6%左右。
本實施方式係作為示例而提示者,並不意圖限定發明之範圍。本實施方式能夠以其他各種方式實施,可於不脫離發明之主旨之範圍內,進行各種省略、置換、變更。本實施方式及其變化包含於發明之範圍及主旨內,並且包含於申請專利範圍所記載之發明及其均等之範圍內。
[相關申請]
本申請享有以日本專利申請2020-148337號(申請日:2020年9月3日)為基礎申請之優先權。本申請藉由參照此基礎申請而包括基礎申請之全部內容。
1:記憶體系統
2:主機設備
3:控制器
4:主機介面部
5:SRAM
5a:快取記憶體
5b:快取記憶體
5c:讀取快取記憶體
5d:快取記憶體
5e:寫入緩衝記憶體
5f:壓緊讀取記憶體
5g:壓緊寫入記憶體
6:處理器
7:DMAC
8:介面部
9:介面控制部
10:指令控制部
10a:處理部
11:資料緩衝控制部
12:記憶體
12a:壓緊讀取緩衝記憶體
12b:壓緊寫入緩衝記憶體
13:隨機化處理部
14:錯誤訂正處理部
15:電源控制部
16a:位址暫存器
16b:指令暫存器
16c:狀態暫存器
17:記憶體控制部
18:列解碼器
19:行解碼器
20:資料快取記憶體
21:感測放大器
22:控制匯流排
23:資料匯流排
AT:位址轉換表
B0~Bk+1:塊
bk0~bk3:記憶體組
CP00~CP33:指令處理部
CPA, CPB:控制電路
CR0~CR3:訂正部
ch0~ch3:通道
D:資料
Dr:隨機化資料
F0~F23:幀
Fr0a, Fr1a:幀
Fr0b:幀
Fr0c:幀
Fr0d:幀
Fr1b~Fr1d:幀
FW1:韌體
LA:邏輯位址
MB0~MB3:記憶體匯流排
MC00~MC33:記憶體晶片
MCG0~MCGm:記憶胞組
MI0~MI3:記憶體介面部
NM00~NM33, NM40~NM73:非揮發性記憶體
NMM:非揮發性記憶裝置
P:冗餘部
Par:奇偶校驗部
PC:外圍電路
PL:電力供給線
PL0, PL1:記憶體面
PR0, PR1:頁暫存器
R, R0~R23:冗餘部
WL0~WLm:字元線
圖1係表示具備本實施方式之非揮發性記憶體之記憶體系統之構成之一例的方塊圖。
圖2係用以說明壓緊之概要之圖。
圖3係表示本實施方式之記憶體系統之控制器所具備之記憶裝置之用途之例的圖。
圖4係表示本實施方式之處理器與指令處理部之協作之例的方塊圖。
圖5係表示本實施方式之非揮發性記憶體之構成之一例的方塊圖。
圖6係表示本實施方式之記憶體晶片中之頁與幀之關係之例的圖。
圖7係例示按照本實施方式之壓緊讀取指令從2個記憶體面讀取之幀之變化的圖。
圖8係例示按照本實施方式之壓緊寫入指令向2個記憶體面寫入之幀之變化的圖。
圖9係表示由本實施方式之記憶體系統執行之有效幀判斷之例的圖。
圖10係表示為了壓緊中之讀取而從控制器向指令處理部發送之指令之例的圖。
圖11係表示為了壓緊中之寫入而從控制器向指令處理部發送之指令之例的圖。
圖12係表示本實施方式之控制器與指令處理部之協作之例的圖。
圖13係表示由本實施方式之指令處理部及控制器執行之處理之一例的流程圖。
圖14係表示本實施方式之非揮發性記憶體之製造方法之一例的圖。
圖15係表示比較例之記憶體系統之構成之一例的方塊圖。
圖16係表示本實施方式之記憶體系統從主機設備接收到寫入指令及讀取指令時之資料轉換之例的圖。
圖17係表示由比較例之記憶體系統執行之壓緊中之資料轉換之例的圖。
圖18係表示由本實施方式之記憶體系統執行之壓緊中之資料轉換之例的圖。
1:記憶體系統
2:主機設備
3:控制器
4:主機介面部
5:SRAM
6:處理器
7:DMAC
AT:位址轉換表
bk0~bk3:記憶體組
CP00~CP33:指令處理部
CR0~CR3:訂正部
ch0~ch3:通道
FW1:韌體
MB0~MB3:記憶體匯流排
MC00~MC33:記憶體晶片
MI0~MI3:記憶體介面部
NM00~NM33:非揮發性記憶體
NMM:非揮發性記憶裝置
Claims (9)
- 一種非揮發性記憶體,其具備:記憶胞陣列,其包含複數個非揮發性記憶胞;及指令處理部,其包含緩衝器,依照自控制器接收到之指令,控制對上述記憶胞陣列之資料的寫入或讀取;且上述指令處理部係:於自上述控制器接收到上述記憶胞陣列之第1位置及第1指令之情形時,將基於自上述第1位置讀取到之資料的第1資料保存於上述緩衝器,於自上述控制器接收到上述記憶胞陣列之第2位置及第2指令之情形時,將基於自上述第2位置讀取到之資料的第2資料保存於上述緩衝器,對上述控制器發送用於判斷上述第1資料是否有效之第1有效判斷資訊、及用於判斷上述第2資料是否有效之第2有效判斷資訊,於自上述控制器接收到第3指令、表示上述第2資料為有效資料之有效特定資訊及上述記憶胞陣列之第3位置之情形時,將基於上述緩衝器中保存之上述第2資料的第3資料寫入至上述第3位置。
- 如請求項1之非揮發性記憶體,其中上述指令處理部係:於自上述控制器接收到上述記憶胞陣列之第4位置及第4資料以及寫入指令之情形時,將上述第4資料寫入至上述第4位置。
- 如請求項1或2之非揮發性記憶體,其中 上述指令處理部係:於自上述控制器接收到上述第1指令之情形時,自上述記憶胞陣列讀取上述第1有效判斷資訊。
- 如請求項1或2之非揮發性記憶體,其中上述指令處理部係:基於自上述第1位置讀取之資料,執行錯誤訂正處理,於基於自上述第1位置讀取之資料之錯誤訂正成功之情形時,對上述控制器發送上述第1有效判斷資訊,於基於自上述第1位置讀取之資料之錯誤訂正失敗之情形時,對上述控制器發送自上述第1位置讀取之資料及上述第1有效判斷資訊。
- 如請求項1或2之非揮發性記憶體,其中上述指令處理部係:於自上述控制器接收到上述第1位置、第1隨機化密鑰及上述第1指令之情形時,對基於自上述第1位置讀取之資料的第5資料,使用上述第1隨機化密鑰將隨機化解除,於自上述控制器接收到第2隨機化密鑰、上述有效特定資訊及上述第3指令之情形時,對上述第2資料,使用上述第2隨機化密鑰產生上述第3資料。
- 如請求項1或2之非揮發性記憶體,其中上述第1有效判斷資訊包括自上述第1位置讀取之資料之邏輯位址即第1邏輯位址, 上述第2有效判斷資訊包括自上述第2位置讀取之資料之邏輯位址即第2邏輯位址,上述有效特定資訊包括上述第2邏輯位址。
- 如請求項1或2之非揮發性記憶體,其中上述指令處理部對上述第3位置的上述第3資料之寫入包括:於接收到上述有效特定資訊及第4指令之情形時,將上述第2資料自上述緩衝器中包含之第1區域移動至上述緩衝器中包含之第2區域,於接收到上述第3指令及上述第3位置之情形時,對上述第3位置寫入基於移動至上述第2區域之上述第2資料的上述第3資料。
- 一種記憶體系統,其具備:如請求項1至7中任一項之非揮發性記憶體,及上述控制器;且上述控制器係:對上述非揮發性記憶體發送上述第1指令及上述第2指令,自上述非揮發性記憶體接收上述第1有效判斷資訊及上述第2有效判斷資訊,基於上述第1有效判斷資訊,判斷上述第1資料是否有效,基於上述第2有效判斷資訊,判斷上述第2資料是否有效,於判斷為上述第1資料無效且上述第2資料有效之情形時,對上述非揮發性記憶體發送上述第3指令及上述有效特定資訊。
- 一種非揮發性記憶體之控制方法,其係非揮發性記憶體之控制方法,上述非揮發性記憶體包含包括複數個非揮發性記憶胞之記憶胞陣列,且上述控制方法係:於接收到上述記憶胞陣列之第1位置及第1指令之情形時,自上述第1位置讀取第1資料,於接收到上述記憶胞陣列之第2位置及第2指令之情形時,自上述第2位置讀取第2資料,發送用於判斷上述第1資料是否有效之第1有效判斷資訊、及用於判斷上述第2資料是否有效之第2有效判斷資訊,於接收到第3指令、表示上述第2資料為有效資料之有效特定資訊及上述記憶胞陣列之第3位置之情形時,將基於上述第2資料之第3資料寫入至上述第3位置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020148337A JP2022042762A (ja) | 2020-09-03 | 2020-09-03 | 不揮発性メモリ、メモリシステム、および、不揮発性メモリの制御方法 |
JP2020-148337 | 2020-09-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202211029A TW202211029A (zh) | 2022-03-16 |
TWI784424B true TWI784424B (zh) | 2022-11-21 |
Family
ID=80357714
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110107053A TWI784424B (zh) | 2020-09-03 | 2021-02-26 | 非揮發性記憶體、記憶體系統及非揮發性記憶體之控制方法 |
TW111139904A TWI822407B (zh) | 2020-09-03 | 2021-02-26 | 非揮發性記憶體之控制方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111139904A TWI822407B (zh) | 2020-09-03 | 2021-02-26 | 非揮發性記憶體之控制方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11847050B2 (zh) |
JP (1) | JP2022042762A (zh) |
CN (1) | CN114141292A (zh) |
TW (2) | TWI784424B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023220976A1 (zh) * | 2022-05-18 | 2023-11-23 | 上海江波龙数字技术有限公司 | 数据存储方法、存储装置及可读存储装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201917579A (zh) * | 2017-10-27 | 2019-05-01 | 日商東芝記憶體股份有限公司 | 記憶體系統及控制方法 |
TW201933101A (zh) * | 2018-01-18 | 2019-08-16 | 慧榮科技股份有限公司 | 資料儲存裝置 |
TW202009711A (zh) * | 2018-08-09 | 2020-03-01 | 群聯電子股份有限公司 | 資料整併方法、記憶體儲存裝置及記憶體控制電路單元 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1797645B1 (en) * | 2004-08-30 | 2018-08-01 | Google LLC | Systems and methods for providing nonvolatile memory management in wireless phones |
US8386856B2 (en) * | 2009-07-01 | 2013-02-26 | Silicon Motion, Inc. | Data storage device capable of selecting scrambled signals according to transmission power |
US20110041005A1 (en) * | 2009-08-11 | 2011-02-17 | Selinger Robert D | Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System |
US8930614B2 (en) | 2011-07-29 | 2015-01-06 | Kabushiki Kaisha Toshiba | Data storage apparatus and method for compaction processing |
JP2013137665A (ja) | 2011-12-28 | 2013-07-11 | Toshiba Corp | 半導体記憶装置、半導体記憶装置の制御方法、およびメモリコントローラ |
US11037625B2 (en) * | 2012-11-20 | 2021-06-15 | Thstyme Bermuda Limited | Solid state drive architectures |
US9454551B2 (en) * | 2014-03-13 | 2016-09-27 | NXGN Data, Inc. | System and method for management of garbage collection operation in a solid state drive |
US9448745B2 (en) * | 2014-03-13 | 2016-09-20 | NXGN Data, Inc. | Configurable read-modify-write engine and method for operating the same in a solid state drive |
US10892269B2 (en) | 2014-09-12 | 2021-01-12 | Toshiba Memory Corporation | Semiconductor memory device having a bonded circuit chip including a solid state drive controller connected to a control circuit |
US10102119B2 (en) | 2015-10-30 | 2018-10-16 | Sandisk Technologies Llc | Garbage collection based on queued and/or selected write commands |
US10204043B2 (en) * | 2016-03-08 | 2019-02-12 | Toshiba Memory Corporation | Memory controller, method of controlling nonvolatile memory and memory system |
JP2018160065A (ja) * | 2017-03-22 | 2018-10-11 | 東芝メモリ株式会社 | メモリシステム |
KR20200044461A (ko) * | 2018-10-19 | 2020-04-29 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
US11568093B2 (en) * | 2020-04-17 | 2023-01-31 | SK Hynix Inc. | Data scramblers with enhanced physical security |
-
2020
- 2020-09-03 JP JP2020148337A patent/JP2022042762A/ja active Pending
-
2021
- 2021-02-24 US US17/184,313 patent/US11847050B2/en active Active
- 2021-02-25 CN CN202110213666.5A patent/CN114141292A/zh active Pending
- 2021-02-26 TW TW110107053A patent/TWI784424B/zh active
- 2021-02-26 TW TW111139904A patent/TWI822407B/zh active
-
2023
- 2023-11-06 US US18/502,498 patent/US20240070062A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201917579A (zh) * | 2017-10-27 | 2019-05-01 | 日商東芝記憶體股份有限公司 | 記憶體系統及控制方法 |
TW201933101A (zh) * | 2018-01-18 | 2019-08-16 | 慧榮科技股份有限公司 | 資料儲存裝置 |
TW202009711A (zh) * | 2018-08-09 | 2020-03-01 | 群聯電子股份有限公司 | 資料整併方法、記憶體儲存裝置及記憶體控制電路單元 |
Also Published As
Publication number | Publication date |
---|---|
US20220066921A1 (en) | 2022-03-03 |
CN114141292A (zh) | 2022-03-04 |
US20240070062A1 (en) | 2024-02-29 |
TW202309746A (zh) | 2023-03-01 |
TWI822407B (zh) | 2023-11-11 |
US11847050B2 (en) | 2023-12-19 |
TW202211029A (zh) | 2022-03-16 |
JP2022042762A (ja) | 2022-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11768610B2 (en) | Storage system having a host that manages physical data locations of a storage device | |
US10860508B2 (en) | Offloaded disaggregated storage architecture | |
US10282252B2 (en) | RAID storage device and method of management thereof | |
US10529417B2 (en) | Storage device that inverts bits of data written into a nonvolatile memory thereof | |
CN107870740B (zh) | 用于控制存储器的设备和方法 | |
KR102611638B1 (ko) | 스토리지 장치의 동작 방법 및 스토리지 장치를 포함하는 데이터 저장 시스템 | |
KR102501751B1 (ko) | 메모리 콘트롤러, 불휘발성 메모리 시스템 및 그 동작방법 | |
KR102549605B1 (ko) | Raid 스토리지 장치의 리커버리 방법 | |
US8996959B2 (en) | Adaptive copy-back method and storage device using same | |
TWI436213B (zh) | 基於等量記憶體區之非揮發性多階記憶體操作 | |
CN109885506B (zh) | 数据储存装置、主机装置、以及数据写入方法 | |
JP5585919B2 (ja) | 電源遮断管理 | |
CN114341824B (zh) | 用于粗映射存储器子系统的取消映射 | |
US9213636B2 (en) | Data accessing method for flash memory storage device having data perturbation module, and storage system and controller using the same | |
KR20220077691A (ko) | 호스트, 메모리 컨트롤러 및 메모리 장치를 포함하는 전자 시스템 및 이의 동작 방법 | |
CN110888825A (zh) | 在存储器系统中处理数据的设备和方法 | |
CN111435334B (zh) | 在存储器系统中检查有效数据的设备和方法 | |
CN110928485B (zh) | 存储器系统及其操作方法 | |
KR20170012006A (ko) | 메모리 컨트롤러와 이를 포함하는 메모리 시스템 | |
US20240070062A1 (en) | Nonvolatile memory, memory system, and control method of nonvolatile memory | |
CN111755061A (zh) | 检查存储器系统中的存储器装置的操作状态的设备及方法 | |
KR20210006178A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
KR20240008590A (ko) | 저장 장치 및 그 동작 방법 |