CN114141292A - 非易失性存储器、存储器系统及非易失性存储器的控制方法 - Google Patents
非易失性存储器、存储器系统及非易失性存储器的控制方法 Download PDFInfo
- Publication number
- CN114141292A CN114141292A CN202110213666.5A CN202110213666A CN114141292A CN 114141292 A CN114141292 A CN 114141292A CN 202110213666 A CN202110213666 A CN 202110213666A CN 114141292 A CN114141292 A CN 114141292A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- controller
- instruction
- command
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Images
Classifications
-
- 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
- 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
-
- 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)
- Read Only Memory (AREA)
- Memory System (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本实施方式提供一种能够高速执行压缩的非易失性存储器、存储器系统及非易失性存储器的控制方法。根据本实施方式,非易失性存储器具备存储器芯片及指令处理部。在从控制器接收到用于压缩的第1指令的情况下,指令处理部将从存储器芯片的第1位置读取的数据保存在存储器中,将用于判断数据是否有效的有效判断信息发送到控制器,在从控制器接收到用于压缩的第2指令及特定出有效数据的有效特定信息的情况下,将存储器所保存的数据中的有效数据写入到存储器芯片的第2位置。
Description
[相关申请的交叉参考]
本申请享有以日本专利申请2020-148337号(申请日:2020年9月3日)为基础申请的优先权。本申请通过参照此基础申请而包括基础申请的全部内容。
技术领域
本实施方式涉及一种非易失性存储器、存储器系统及非易失性存储器的控制方法。
背景技术
SSD(Solid State Drive,固态驱动器)是存储器系统的一例。SSD具备诸如NAND(Not-And,与非)型闪速存储器之类的非易失性存储器。非易失性存储器例如具备多个块。各个块可以成为抹除数据的一个单位。SSD为了继续进行动作,执行如下压缩(compaction),即,收集以片断状态保存在非易失性存储器的多个块中的多个有效数据,并将所收集的多个有效数据一起写回到非易失性存储器的至少一个块。通过压缩来整理非易失性存储器的块。
发明内容
本实施方式提供一种能够高速执行压缩的非易失性存储器、存储器系统及压缩方法。
根据本实施方式,非易失性存储器具备存储器芯片及指令处理部。指令处理部按照从控制器接收到的指令,控制对存储器芯片进行的数据写入或读取。在从控制器接收到用于对存储器芯片进行压缩的第1指令的情况下,指令处理部将从存储器芯片的第1位置读取的数据保存在存储器中,向控制器发送用于判断数据是否有效的有效判断信息,在从控制器接收到用于对存储器芯片进行压缩的第2指令及特定出有效数据的有效特定信息的情况下,将存储器所保存的数据中的有效数据写入到存储器芯片的第2位置。
附图说明
图1是表示具备本实施方式的非易失性存储器的存储器系统的构成的一例的框图。
图2是用来说明压缩的概要的图。
图3是表示本实施方式的存储器系统的控制器所具备的存储装置的用途的例子的图。
图4是表示本实施方式的处理器与指令处理部的协作的例子的框图。
图5是表示本实施方式的非易失性存储器的构成的一例的框图。
图6是表示本实施方式的存储器芯片中的页与帧的关系的例子的图。
图7是例示按照本实施方式的压缩读取指令从2个存储器面读取的帧的变化的图。
图8是例示按照本实施方式的压缩写入指令向2个存储器面写入的帧的变化的图。
图9是表示由本实施方式的存储器系统执行的有效帧判断的例子的图。
图10是表示为了压缩中的读取而从控制器向指令处理部发送的指令的例子的图。
图11是表示为了压缩中的写入而从控制器向指令处理部发送的指令的例子的图。
图12是表示本实施方式的控制器与指令处理部的协作的例子的图。
图13是表示由本实施方式的指令处理部及控制器执行的处理的一例的流程图。
图14是表示本实施方式的非易失性存储器的制造方法的一例的图。
图15是表示比较例的存储器系统的构成的一例的框图。
图16是表示本实施方式的存储器系统从主机设备接收到写入指令及读取指令时的数据转换的例子的图。
图17是表示由比较例的存储器系统执行的压缩中的数据转换的例子的图。
图18是表示由本实施方式的存储器系统执行的压缩中的数据转换的例子的图。
具体实施方式
以下,参照附图说明本实施方式。在以下说明中,对大致相同的功能以及构成要素标注相同的符号,重复说明仅在必要的情况下进行。另外,本实施方式中说明的数值以及构成要素的个数为示例,能够适当变更。
在本实施方式中,非易失性存储器具备指令处理部及存储单元阵列。指令处理部按照从控制器接收到的指令执行压缩。在本实施方式中,压缩可以改称为垃圾回收(Garbage Collection)。
图1是表示具备本实施方式的非易失性存储器NM00~NM33的存储器系统1的构成的一例的框图。
存储器系统1例如为SSD。存储器系统1可以为诸如包括HDD(Hard Disk Drive,硬盘驱动器)、USB(Universal Serial Bus,通用串行总线)存储器、存储卡、硬盘(hard diskdrive)及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(Not Or,或非)型闪速存储器、MRAM(Magnetoresistive Random Access Memory:磁阻式随机存取存储器)、PRAM(PhasechangeRandom Access Memory:相变式随机存取存储器)、ReRAM(Resistive Random AccessMemory:电阻变化型存储器)、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(SerialAdvanced Technology Attachment,串行高级技术附件)标准、或者SAS(Serial AttachedSmall 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 BlockAddressing,逻辑块寻址)。物理地址例如可以是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 LevelCell,三层单元)、或能够保存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接收用于设置参数值的设置特征(Set Feature)指令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%左右。
本实施方式是作为示例而提出的,并不意图限定发明的范围。本实施方式能够以其它各种方式实施,可以在不脱离发明的主旨的范围内,进行各种省略、置换、变更。本实施方式或其变化包含在发明的范围或主旨内,并且包含在权利要求书所记载的发明及其均等的范围内。
[符号的说明]
1 存储器系统
2 主机设备
3 控制器
NMM 非易失性存储装置
4 主机接口部
5 SRAM
6 处理器
7 DMAC
MI0~MI3 存储器接口部
CR0~CR3 校正部
MB0~MB3 存储器总线
NM00~NM33 非易失性存储器
CP00~CP33 指令处理部
MC00~MC33 存储器芯片
FW1 固件
AT 地址转换表
10a 处理部
12a 压缩读取缓冲存储器
12b 压缩写入缓冲存储器
B0~Bk+1 块
MCG0~MCGm 存储单元组
F1~F3 帧
D 数据
P 冗余部
Par 奇偶校验部
LA 逻辑地址。
Claims (9)
1.一种非易失性存储器,其特征在于具备:
存储单元阵列,包含多个非易失性存储单元;以及
指令处理部,包含缓冲器,按照从控制器接收到的指令,控制对所述存储单元阵列的数据的写入或读取;且
所述指令处理部是:
在从所述控制器接收到所述存储单元阵列的第1位置以及第1指令的情况下,将基于从所述第1位置读取到的数据的第1数据保存在所述缓冲器,
在从所述控制器接收到所述存储单元阵列的第2位置以及第2指令的情形,将基于从所述第2位置读取到的数据的第2数据保存在所述缓冲器,
对所述控制器发送用于判断所述第1数据是否有效的第1有效判断信息、以及用于判断第2数据是否有效的第2有效判断信息,
在从所述控制器接收到第3指令及表示所述第2数据为有效数据的有效特定信息的情形,将基于所述缓冲器中保存的所述第2数据的第3数据写入到所述存储单元阵列的第3位置。
2.根据权利要求1所述的非易失性存储器,其特征在于所述指令处理部是:在从所述控制器接收到所述存储单元阵列的第4位置及第4数据以及写入指令的情形,将所述第4数据写入到所述第4位置。
3.根据权利要求1或2所述的非易失性存储器,其特征在于所述指令处理部是:在从所述控制器接收到所述第1指令的情形,从所述存储单元阵列读取所述第1有效判断信息。
4.根据权利要求1或2所述的非易失性存储器,其特征在于所述指令处理部是:
基于从所述第1位置读取的数据,执行错误校正处理,
在基于从所述第1位置读取的数据的错误校正成功的情形,对所述控制器发送所述第1有效判断信息,
在基于从所述第1位置读取的数据的错误校正失败的情形,对所述控制器发送从所述第1位置读取的数据及所述第1有效判断信息。
5.根据权利要求1或2所述的非易失性存储器,其特征在于所述指令处理部是:
在从所述控制器接收到所述第1位置、第1随机化密钥及所述第1指令的情形,对基于从所述第1位置读取的数据的第5数据,使用所述第1随机化密钥将随机化解除,
在从所述控制器接收到第2随机化密钥、所述有效特定信息及第3指令的情形,对所述第2数据,使用所述第2随机化密钥生成所述第3数据。
6.根据权利要求1或2所述的非易失性存储器,其特征在于:所述第1有效判断信息包括从所述第1位置读取的数据的逻辑地址即第1逻辑地址,
所述第2有效判断信息包括从所述第2位置读取的数据的逻辑地址即第2逻辑地址,
所述有效特定信息包括所述第2逻辑地址。
7.根据权利要求1或2所述的非易失性存储器,其特征在于:所述指令处理部对所述第3位置的所述第3数据的写入包括:
在接收到所述有效特定信息及第4指令的情形,将所述第2数据从所述缓冲器中包含的第1区域移动到所述缓冲器中包含的第2区域,
在接收到所述第3指令及所述第3位置的情形,对所述第3位置写入基于移动到所述第2区域的所述第2数据的所述第3数据。
8.一种存储器系统,其特征在于具备:
根据权利要求1至7中任一项所述的非易失性存储器,以及
所述控制器;且
所述控制器是:
对所述非易失性存储器发送所述第1指令以及所述第2指令,
从所述非易失性存储器接收所述第1有效判断信息以及所述第2有效判断信息,
基于所述第1有效判断信息,判断所述第1数据是否有效,
基于所述第2有效判断信息,判断所述第2数据是否有效,
在判断为所述第1数据无效且所述第2数据有效的情形,對所述非易失性存储器发送所述第3指令及所述有效特定信息。
9.一种非易失性存储器的控制方法,其特征在于是非易失性存储器的控制方法,所述非易失性存储器包含包括多个非易失性存储单元的存储单元阵列,且所述控制方法是:
在接收到所述存储单元阵列的第1位置以及第1指令的情形,从所述第1位置读取第1数据,
在接收到所述存储单元阵列的第2位置以及第2指令的情形,从所述第2位置读取第2数据,
发送用于判断所述第1数据是否有效的第1有效判断信息、以及用于判断第2数据是否有效的第2有效判断信息,
在接收到第3指令及表示所述第2数据为有效数据的有效特定信息的情形,将基于所述第2数据的第3数据写入到所述存储单元阵列的第3位置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020-148337 | 2020-09-03 | ||
JP2020148337A JP2022042762A (ja) | 2020-09-03 | 2020-09-03 | 不揮発性メモリ、メモリシステム、および、不揮発性メモリの制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114141292A true CN114141292A (zh) | 2022-03-04 |
Family
ID=80357714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110213666.5A Pending CN114141292A (zh) | 2020-09-03 | 2021-02-25 | 非易失性存储器、存储器系统及非易失性存储器的控制方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11847050B2 (zh) |
JP (1) | JP2022042762A (zh) |
CN (1) | CN114141292A (zh) |
TW (2) | TWI784424B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023220976A1 (zh) * | 2022-05-18 | 2023-11-23 | 上海江波龙数字技术有限公司 | 数据存储方法、存储装置及可读存储装置 |
Family Cites Families (17)
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 |
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 |
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 |
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 | 東芝メモリ株式会社 | メモリシステム |
JP6982468B2 (ja) | 2017-10-27 | 2021-12-17 | キオクシア株式会社 | メモリシステムおよび制御方法 |
TWI670594B (zh) | 2018-01-18 | 2019-09-01 | 慧榮科技股份有限公司 | 資料儲存裝置 |
TWI668570B (zh) | 2018-08-09 | 2019-08-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
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023220976A1 (zh) * | 2022-05-18 | 2023-11-23 | 上海江波龙数字技术有限公司 | 数据存储方法、存储装置及可读存储装置 |
Also Published As
Publication number | Publication date |
---|---|
TWI784424B (zh) | 2022-11-21 |
US20220066921A1 (en) | 2022-03-03 |
TWI822407B (zh) | 2023-11-11 |
US11847050B2 (en) | 2023-12-19 |
JP2022042762A (ja) | 2022-03-15 |
US20240070062A1 (en) | 2024-02-29 |
TW202211029A (zh) | 2022-03-16 |
TW202309746A (zh) | 2023-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107870740B (zh) | 用于控制存储器的设备和方法 | |
KR102611638B1 (ko) | 스토리지 장치의 동작 방법 및 스토리지 장치를 포함하는 데이터 저장 시스템 | |
JP5585919B2 (ja) | 電源遮断管理 | |
JP5649742B2 (ja) | トランザクションログの復元 | |
CN114341824B (zh) | 用于粗映射存储器子系统的取消映射 | |
KR102564774B1 (ko) | 메모리 시스템 혹은 데이터 처리 시스템의 동작을 진단하는 장치 혹은 진단을 통해 신뢰성을 확보하는 방법 | |
US12066892B2 (en) | Data recovery based on parity data in a memory sub-system | |
CN110928485B (zh) | 存储器系统及其操作方法 | |
CN111916140A (zh) | 控制器及其操作方法以及包括控制器的存储器系统 | |
CN113590503A (zh) | 一种非挥发性记忆体存储器的垃圾回收方法与垃圾回收系统 | |
KR20170012006A (ko) | 메모리 컨트롤러와 이를 포함하는 메모리 시스템 | |
US20240070062A1 (en) | Nonvolatile memory, memory system, and control method of nonvolatile memory | |
CN111755061A (zh) | 检查存储器系统中的存储器装置的操作状态的设备及方法 | |
KR102234725B1 (ko) | 컨트롤러 및 메모리 시스템 및 메모리 시스템의 동작 방법 | |
CN113590502A (zh) | 一种非挥发性记忆体存储设备的垃圾回收方法与垃圾回收系统 | |
KR20220077041A (ko) | 메모리 시스템 내 저장된 데이터를 유지하는 장치 및 방법 | |
CN117931055A (zh) | 在多个存储器区域中分配和存储写入数据的设备和方法 | |
KR102648790B1 (ko) | 데이터 저장 장치 및 그 동작 방법 | |
KR20210060867A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US20230075820A1 (en) | Event log management method, controller and storage device | |
KR20210018570A (ko) | 컨트롤러, 컨트롤러의 동작 방법 및 이를 포함하는 저장 장치 | |
US9778864B2 (en) | Data storage device using non-sequential segment access and operating method thereof | |
US11797444B2 (en) | Storage device for storing address information and data in memory device in response to occurrence of power loss and operating method of the storage device | |
KR20180047808A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN117762819A (zh) | 存取快闪存储器模块的方法与相关的快闪存储器控制器及记忆装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |