CN112767988A - 存储系统及控制方法 - Google Patents
存储系统及控制方法 Download PDFInfo
- Publication number
- CN112767988A CN112767988A CN202010567666.0A CN202010567666A CN112767988A CN 112767988 A CN112767988 A CN 112767988A CN 202010567666 A CN202010567666 A CN 202010567666A CN 112767988 A CN112767988 A CN 112767988A
- Authority
- CN
- China
- Prior art keywords
- memory
- parallel
- read
- action
- data
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 230000015654 memory Effects 0.000 claims abstract description 231
- 238000012546 transfer Methods 0.000 claims abstract description 32
- 230000009471 action Effects 0.000 claims description 36
- 238000012545 processing Methods 0.000 claims description 20
- 230000005540 biological transmission Effects 0.000 claims description 12
- 238000012937 correction Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 3
- 238000009826 distribution Methods 0.000 description 34
- 238000010586 diagram Methods 0.000 description 20
- 230000000052 comparative effect Effects 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000005259 measurement Methods 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 101000578349 Homo sapiens Nucleolar MIF4G domain-containing protein 1 Proteins 0.000 description 1
- 102100027969 Nucleolar MIF4G domain-containing protein 1 Human genes 0.000 description 1
- 101100437990 Oryza sativa subsp. japonica BURP16 gene Proteins 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0884—Parallel mode, e.g. in parallel with main memory or CPU
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/0757—Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5642—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3404—Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
-
- 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/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/563—Multilevel memory reading aspects
- G11C2211/5631—Concurrent multilevel reading of more than one cell
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
- Detection And Correction Of Errors (AREA)
- Memory System (AREA)
Abstract
本发明提供能够抑制因状态轮询导致的读取动作的延迟的存储系统和控制方法。实施方式的存储系统具有:具备各自包含存储单元的多个并行动作要素的非易失性存储器;以及控制多个并行动作要素的存储器控制器,存储器控制器在从非易失性存储器读取数据的情况下,对多个并行动作要素顺次指示对多个并行动作要素中包含的存储单元保持的数据进行感测的感测动作,在多个并行动作要素中的任一个的感测动作的动作时间结束的情况下,对动作时间已结束的并行动作要素不进行状态确认,而对动作时间已结束的并行动作要素指示数据的传输动作。
Description
相关申请
本申请要求以日本专利申请2019-191644号(申请日:2019年10月21日)为基础申请的优先权。本申请通过参照该基础申请而包含基础申请的所有内容。
技术领域
本发明的实施方式涉及存储系统和控制方法。
背景技术
存储系统具备存储器控制器和连接至存储器控制器的存储器。存储器具有例如多个并行动作要素。存储器控制器具有例如多个信道,经由1个信道控制多个并行动作要素。
在这样的结构中,存在存储器控制器进行状态轮询来确认存储器的状态的情况。然而,状态轮询所需要的时间成为读取动作延迟的一个原因。
发明内容
本发明的实施方式提供能够抑制因状态轮询导致的读取动作延迟的存储系统及控制方法。
本发明的实施方式的存储系统具有:具备各自包含存储单元的多个并行动作要素的非易失性存储器;以及控制所述多个并行动作要素的存储器控制器,所述存储器控制器在从所述非易失性存储器读取数据的情况下,对所述多个并行动作要素顺次指示对所述多个并行动作要素中包含的所述存储单元保持的数据进行感测的感测动作,在所述多个并行动作要素中的任一个的感测动作的动作时间结束的情况下,不对所述动作时间已结束的并行动作要素进行状态确认,就对所述动作时间已结束的并行动作要素指示所述数据的传输动作。
附图说明
图1是示出实施方式所涉及的存储系统的构成的一个示例的图。
图2是示出实施方式所涉及的存储芯片的构成的一个示例的图。
图3是示出实施方式所涉及的存储单元阵列的构成的一个示例的图。
图4是示出实施方式所涉及的存储单元阵列的多个存储单元晶体管的阈值电压分布及读取电压的图。
图5是示出实施方式所涉及的存储单元阵列的多个存储单元晶体管的阈值电压分布及读取电压的图。
图6是示出实施方式所涉及的存储单元阵列的多个存储单元晶体管的阈值电压分布及读取电压的图。
图7是示出实施方式所涉及的存储系统中的读取动作的概要的图。
图8是示出实施方式所涉及的存储系统中的读取动作的命令集的图。
图9是示出实施方式所涉及的存储系统中的读取动作的详细情况的图。
图10是示出实施方式所涉及的存储系统中的读取动作相关的处理步骤的一个示例的流程图。
图11是示出对比例所涉及的存储系统中的读取动作的详细情况的图。
图12是示出实施方式的变形例所涉及的读取动作中产生了忙栈的情况的图。
图13是示出实施方式的变形例所涉及的读取动作中产生了忙栈的情况下的处理步骤的一个示例的流程图。
标号的说明
1…存储系统,2…主机,10…存储器控制器,14…NAND控制器,20…NAND型闪速存储器(NAND存储器),21…NAND封装件,140~142…计时器,143…寄存器,144…ECC部,145…NAND接口(NAND I/F),210…存储芯片,211…存储单元阵列,212…感测放大器模块,213…行解码器模块。
具体实施方式
以下,参照附图详细地说明实施方式。此外,本发明并不由下述实施方式限定。另外,下述实施方式中的构成要素包括本领域技术人员容易预想到的要素或者实质上相同的要素。
(存储系统的构成例)
图1是示出实施方式所涉及的存储系统1的构成的一个示例的图。如图1所示,存储系统1具备存储器控制器10、NAND型闪速存储器20(以下,记载为“NAND存储器20”)以及DRAM(Dynamic Random Access Memory)30。
作为非易失性存储器的NAND存储器20具有多个NAND封装件21。各个NAND封装件21分别具备多个存储芯片210(0)~210(2)。作为并行动作要素的存储芯片210(0)~210(2)是非易失性地存储数据的非易失性存储器。多个存储芯片210(0)~210(2)各自独立地动作,在多个存储芯片210(0)~210(2)之间能够进行并行动作。
在存储系统1中,NAND存储器20具有的NAND封装件21的数量是任意的。另外,NAND封装件21具有的存储芯片210(0)~210(2)的数量是任意的。
以下,以NAND存储器20为例进行说明,但是,非易失性存储器不限于此,也可以是例如MRAM(Magnetoresistive Random Access Memory)、PCRAM(Phase Change RandomAccess Memory)、ReRAM(Resistive Random Access Memory)等其它的存储器。
DRAM 30是能够暂时存储数据的易失性存储器。但是,存储系统1具备的易失性存储器不限定于DRAM。存储系统1也可以具备例如SRAM(Static Random Access Memory)等作为易失性存储器。
存储器控制器10是例如SoC(System on a Chip)、FPGA(Field ProgrammableGate Array)、ASIC(Application Specific Integrated Circuit)等IC(IntegratedCircuit),能够命令NAND存储器20及DRAM 30进行各种动作。存储器控制器10执行基于来自外部的主机2的请求(request)的动作和与来自主机2的请求无关的动作。存储器控制器10的各功能可以由执行程序的CPU(Central Processing Unit)实现,也可以由专用的硬件实现。
存储器控制器10具备CPU 11、主机接口(I/F)控制器12、RAM 13、多个NAND控制器14以及DRAM I/F控制器15。
CPU 11控制存储器控制器10整体的动作。CPU 11例如响应从主机2接收到的读取请求而发布读取命令,将所发布的读取命令发送至NAND控制器14。
RAM 13是作为CPU 11的作业区域使用的存储区域。在RAM 13中,存储有例如用于管理NAND存储器20的参数、各种管理表等。RAM 13存储例如从主机2接收到的请求的等待队列(command queue)。另外,RAM 13存储地址转换表,该地址转换表用于将在NAND存储器20中储存的数据相关联的逻辑地址转换成NAND存储器20的物理地址。该地址转换表例如储存于NAND存储器20内,在存储系统1启动时被读出并存储于RAM 13。作为RAM 13,可以使用SRAM等易失性存储器。此外,在地址转换表的数据量大的情况下,地址转换表有时存储于容量比RAM 13大的DRAM 30。
主机I/F控制器12连接至主机2,负责存储系统1与主机2之间的通信。主机I/F控制器12例如控制存储系统1与主机2之间的数据、请求以及地址的传输。主机I/F控制器12支持例如SATA(Serial Advanced Technology Attachment)、SAS(Serial Attached SCSI)、PCIe(PCI Express)、NVMe(Non-Volatile Memory Express)(注册商标)等通信接口标准。即,作为连接至存储系统1的主机2,能够举出例如包含SATA、SAS、PCIe、NVMe等接口的计算机等。
DRAM I/F控制器15连接至DRAM 30,负责存储器控制器10与DRAM 30之间的通信。DRAM I/F控制器15基于DRAM接口标准而构成。此外,DRAM I/F控制器15的构成不限定于此,可以基于存储系统1具备的易失性存储器的种类而变更。
多个NAND控制器14分别经由不同的信道Ch.0~Ch.3连接至不同的NAND封装件21。各信道Ch.0~Ch.3由包含输入输出信号线和控制信号线的配线组构成。输入输出信号线是例如用于发送接收数据、地址以及命令的信号线。控制信号线是例如用于发送接收控制NAND存储器20的控制信号的信号线。
多个NAND控制器14分别控制不同的信道Ch.0~Ch.3。另外,多个NAND控制器14还针对分别对应的NAND封装件21内的各个存储芯片210(0)~210(2)执行从CPU 11指示的命令的控制。
各个NAND控制器14具备计时器140~142、寄存器143、ECC部144以及NAND I/F145。
计时器140~142能够测量存储系统1的各种动作相关的动作时间。在计时器140~142中,例如设置有与进行并行动作的多个存储芯片210(0)~210(2)的动作时间相关的信息,计时器140~142能够对其进行测量。
计时器140~142的数量是任意的,例如可以设置为存储器控制器10通过一次交错动作(interleave action)能够发布的命令数相同的数量以上。交错动作是向能够进行并行处理的存储芯片210(0)~210(2)等分别发布命令而使它们并行动作的情况。存储器控制器10通过一次交错动作能够发布的命令数取决于DRAM 30的容量等、存储器控制器10具有的资源。以下,将存储器控制器10通过一次交错动作能够发布的命令数设为3。
但是,也可以将计时器140~142的数量设为与存储芯片210(0)~210(2)等并行动作要素的数量相同的数量以上。
寄存器143存储存储系统1的各种动作相关的动作时间。寄存器143存储例如进行并行动作的多个存储芯片210(0)~210(2)的动作时间相关的信息。
ECC部144为了对数据进行错误检测和错误订正而进行数据的编码及解码。具体地,ECC部144对写入NAND存储器20的数据进行编码。另外,ECC部144对从NAND存储器20读出的数据进行解码。ECC部144通过解码而对所读出的数据执行错误检测和错误订正。ECC部144在错误订正失败的情况下,向CPU 11通知错误订正失败。作为由ECC部144进行的编码及解码的算法,可以应用使用RS(Reed-Solomon)码、BCH(Bose-Chaudhuri-Hocquenghem)码或低密度奇偶校验(LDPC)码等的任意算法。
NAND I/F 145将NAND控制器14与NAND封装件21连接,负责NAND控制器14与NAND封装件21之间的通信。NAND I/F 145基于NAND接口标准构成。
(存储芯片的构成例)
图2是示出实施方式所涉及的存储芯片210的构成的一个示例的图。如图2所示,存储芯片210具备存储单元阵列211、感测放大器模块212、行解码器(row decoder)模块213、输入输出电路214、寄存器215、逻辑控制器216、定序器(sequencer)217、就绪/忙生成电路218以及电压生成电路219。
存储单元阵列211包含区块BLK0~BLKn(n是0以上的整数)。区块BLK是与位线和字线相联的多个存储单元(存储单元晶体管)的集合,例如作为数据的擦除单位。
在区块BLK0~BLKn中存在普通区块和ROM安全区块(ROM Fuse Block)等。普通区块允许来自存储器控制器10的通常的访问,能够进行数据的写入及读取。ROM安全区块禁止来自存储器控制器10的通常的访问,存储有存储芯片210自身用的管理信息。存储于ROM安全区块的管理信息除了例如问题区块信息、问题列信息以外,还包含与存储芯片210的动作时间相关的信息等。
寄存器215包含状态寄存器215A、地址寄存器215B以及命令寄存器215C。状态寄存器215A例如存储定序器217的状态信息STS,基于定序器217的指示将该状态信息STS传输至输入输出电路214。状态寄存器215A也可以基于定序器217的指示,将从上述的ROM安全区块取得的、与存储芯片210的动作时间相关的信息传输至输入输出电路214。地址寄存器215B存储从输入输出电路214传输来的地址信息ADD。在地址信息ADD中包含例如列地址、行地址以及区块地址。列地址被感测放大器模块212使用,行地址及区块地址被行解码器模块213使用。命令寄存器215C存储从输入输出电路214传输来的命令CMD。
感测放大器模块212具备感测放大器212A和页缓存器212B。感测放大器212A选择与列地址对应的位线,从而从规定的存储单元阵列211读出数据DAT。页缓存器212B具备多个数据锁存器,数据锁存器暂时地存储从存储单元阵列211读出的读取数据DAT、经由输入输出电路214从存储器控制器10接收到的写入数据DAT。
行解码器模块213基于存储于地址寄存器215B的区块地址,选择作为执行各种动作的对象的区块BLK。另外,行解码器模块213基于存储于地址寄存器215B的行地址,选择作为执行各种动作的对象的字线。另外,行解码器模块213将从电压生成电路219供给的电压传输至所选择的区块BLK。
输入输出电路214经由例如8位的输入输出总线I/O(I/O 1~I/O 8)与存储器控制器10之间发送接收输入输出信号。输入输出电路214例如将从存储器控制器10接收到的输入输出信号中所包含的写入数据DAT传输至页缓存器212B,此外,将从页缓存器212B传输来的读取数据DAT作为输入输出信号发送至存储器控制器10。
逻辑控制器216基于从存储器控制器10接收到的各种控制信号,控制输入输出电路214和定序器217。作为各种控制信号,使用例如芯片使能信号CEn、命令锁存使能信号CLE、地址锁存使能信号ALE、写使能信号WEn、读使能信号REn、及写保护信号WPn。
芯片使能信号CEn是用于对存储芯片210使能的信号。命令锁存使能信号CLE是向输入输出电路214通知经由输入输出总线I/O输入至存储芯片210的信号为命令CMD的信号。地址锁存使能信号ALE是向输入输出电路214通知经由输入输出总线I/O输入至存储芯片210的信号为地址ADD的信号。写使能信号WEn是对输入输出电路214命令进行输入输出信号的输入的信号。读使能信号REn是对输入输出电路214命令进行输入输出信号的输出的信号。写保护信号WPn是用于例如在电源接通断开时使存储芯片210处于保护状态的信号。
定序器217基于存储于命令寄存器215C的命令CMD,控制存储芯片210整体的动作。定序器217控制例如感测放大器模块212、行解码器模块213以及电压生成电路219,执行写入动作、读取动作等各种动作。
就绪/忙生成电路218基于存储芯片210的动作状态,生成就绪/忙信号RBn。就绪/忙信号RBn为向存储器控制器10通知存储芯片210是能够接受来自存储器控制器10的命令的就绪状态还是无法接受命令的忙状态的信号。
不过,在实施方式的存储系统1中,存储器控制器10不接收就绪/忙信号RBn。由此,在具备多个信道Ch.0~Ch.3的存储器控制器10中,能够削减引脚数。如后所述,在存储器控制器10中,不基于就绪/忙信号RBn,而是通过状态读取命令等对状态寄存器215A的数据进行读取的命令,取得存储芯片210是就绪状态还是忙状态等的存储芯片210的状态。此外,存储芯片210即使为忙状态,也能够接收对状态寄存器215A的数据进行读取的命令。
电压生成电路219基于定序器217的控制来生成期望的电压,将所生成的电压供给至存储单元阵列211、感测放大器模块212以及行解码器模块213等。电压生成电路219例如基于存储于地址寄存器215B的地址,分别对后述的选择字线和非选择字线所对应的信号线施加期望的电压。
(存储单元阵列的构成例)
图3是示出实施方式所涉及的存储单元阵列211的构成的一个示例的图。图3示出关于存储单元阵列211内的一个区块BLK的详细的电路构成。如图3所示,区块BLK具有例如多个串单元SU(SU0~SU3)。在图3的示例中,区块BLK包括四个串单元SU0~SU3,但其数量是任意的。
各个串单元SU包含分别与位线BL0~BLm(m是0以上的整数)相关联的多个NAND串NS。各个NAND串NS包含例如存储单元晶体管MT0~MT7和选择晶体管ST1、ST2。一个NAND串NS中所包含的存储单元晶体管MT和选择晶体管ST的数量是任意的。
存储单元晶体管MT例如具备控制栅极和电荷储存层,非易失性地存储数据。NAND串NS中所包含的存储单元晶体管MT0~MT7串联连接在选择晶体管ST1的源极与选择晶体管ST2的漏极之间。同一个区块BLK中所包含的各个NAND串NS的存储单元晶体管MT0的控制栅极与字线WL0共通连接。同样地,同一个区块BLK中所包含的多个NAND串NS的存储单元晶体管MT1~MT7的控制栅极分别与字线WL1~WL7共通连接。
此外,在以下的说明中,将在各个串单元SU内与同一字线WL连接的多个存储单元晶体管MT作为单元单位CU(cell unit)。另外,将单元单位CU中所包含的各个存储单元晶体管MT存储的1位数据的集合称为页。因此,在一个存储单元晶体管中存储1位数据的情况下,单元单位CU存储1页的数据。另外,在一个存储单元晶体管中存储2位数据的情况下,单元单位CU存储2页的数据。
选择晶体管ST1、ST2用于选择在进行读取及写入等各种动作时的串单元SU。与同一个列地址对应的NAND串NS中所包含的选择晶体管ST1的漏极与对应的位线BL共通连接。串单元SU0中所包含的多个选择晶体管ST1的栅极与选择栅极线SGD0共通连接。同样地,串单元SU1~SU3中所包含的多个选择晶体管ST1的栅极分别与选择栅极线SGD1~SGD3共通连接。在同一个区块BLK中,多个选择晶体管ST2的源极与一个源极线SL共通连接。多个选择晶体管ST2的栅极与一个选择栅极线SGS共通连接。
在这样的存储单元阵列211的电路构成中,分别对各个区块BLK设置有字线WL0~WL7。在多个区块BLK之间共用位线BL0~BLm。在多个区块BLK之间共用源极线SL。此外,字线WL和选择栅极线SGD、SGS的数量基于存储单元晶体管MT及选择晶体管ST1、ST2的数量而变更。
(存储单元晶体管的阈值电压分布)
图4至图6是示出实施方式所涉及的存储单元阵列211的多个存储单元晶体管MT的阈值电压分布及读取电压的图。图4至图6分别示出不同的写入方式下的存储单元晶体管MT的阈值电压分布。图4至图6中的纵轴是存储单元晶体管MT的数量,横轴是存储单元晶体管MT的阈值电压Vth。如图4至图6所示,多个存储单元晶体管MT基于所存储的数据的位数而形成多个阈值电压分布。
图4示出在一个存储单元晶体管MT存储1位数据的SLC(Single-Level Cell)方式的情况下,由多个存储单元晶体管MT的阈值电压形成的阈值电压分布。如图4所示,在SLC方式的情况下,多个存储单元晶体管MT形成两个阈值电压分布。将这两个阈值电压分布的情况从阈值电压低的状态起顺次称为“ER”状态、“A”状态。在SLC方式中,例如“ER”状态分配“1”数据,“A”状态分配“0”数据。
图5示出在一个存储单元晶体管MT存储2位数据的MLC(Multi-Level Cell)方式的情况下,由多个存储单元晶体管MT的阈值电压形成的阈值电压分布。如图5所示,在MLC方式的情况下,多个存储单元晶体管MT形成四个阈值电压分布。将这四个阈值电压分布的情况从阈值电压低的状态起顺次称为“ER”状态、“A”状态、“B”状态以及“C”状态。在MLC方式中,例如“ER”状态分配“11(上/下)”数据,“A”状态分配“01”数据,“B”状态分配“00”数据,以及“C”状态分配“10”数据。
图6示出在一个存储单元晶体管MT存储3位数据的TLC(Triple-Level Cell)方式的情况下,由多个存储单元晶体管MT的阈值电压形成的阈值电压分布。如图6所示,在TLC方式的情况下,多个存储单元晶体管MT形成八个阈值电压分布。将这八个阈值电压分布的情况从阈值电压低的状态起顺次称为“ER”状态、“A”状态、“B”状态、“C”状态、“D”状态、“E”状态、“F”状态以及“G”状态。在TLC方式中,例如“ER”状态分配“111(上/中/下)”数据,“A”状态分配“110”数据,“B”状态分配“100”数据,“C”状态分配“000”数据,“D”状态分配“010”数据,“E”状态分配“011”数据,“F”状态分配“001”数据,以及“G”状态分配“101”数据。
在这些阈值电压分布中,在相邻的阈值电压分布之间分别设定读取电压。例如,读取电压AR设定于“ER”状态下的最高阈值电压与“A”状态下的最低阈值电压之间,用于如下的动作:判定读取对象的存储单元晶体管MT的阈值电压是被包含在“ER”状态的阈值电压分布中,还是被包含在“A”状态以上的阈值电压分布中。如果读取电压AR施加至读取对象的存储单元晶体管MT,则与“ER”状态对应的存储单元晶体管MT导通,与“A”状态、“B”状态、“C”状态、“D”状态、“E”状态、“F”状态以及“G”状态对应的存储单元晶体管MT截止。其它读取电压也被同样地设定。
即,读取电压BR设定于“A”状态的阈值电压分布与“B”状态的阈值电压分布之间。读取电压CR设定于“B”状态的阈值电压分布与“C”状态的阈值电压分布之间。读取电压DR设定于“C”状态的阈值电压分布与“D”状态的阈值电压分布之间。读取电压ER设定于“D”状态的阈值电压分布与“E”状态的阈值电压分布之间。读取电压FR设定于“E”状态的阈值电压分布与“F”状态的阈值电压分布之间。读取电压GR设定于“F”状态的阈值电压分布与“G”状态的阈值电压分布之间。
另外,在各写入方式中,读通电压VREAD设定成比阈值电压最高的阈值电压分布中的最高的阈值电压更高的电压。MLC方式中的读通电压VREAD也可以设定得比SLC方式中的读通电压VREAD更高。同样地,TLC方式中的读通电压VREAD也可以设定得比MLC方式中的读通电压VREAD更高。由此,读通电压VREAD施加于栅极的存储单元晶体管MT与所存储的数据无关地导通。
在此,SLC方式、MLC方式以及TLC方式的各写入方式所需要的读取时间(后述的感测动作时间)各自不同。与SLC方式相比,MLC方式的感测动作时间更长,另外,与MLC方式相比,TLC方式的感测动作时间更长。
读取对象的页不同而感测动作时间也不同。SLC方式的读取使用一个读取电平(AR)。MLC方式的下位页的读取使用一个读取电平(BR)。MLC方式的上位页的读取使用两个读取电平(AR、CR)。TLC方式的上位页的读取使用两个读取电平(CR、GR)。TLC方式的下位页的读取使用两个读取电平(AR、ER)。TLC方式的中间页的读取使用三个读取电平(BR、DR、FR)。这样,如果用于读取的读取电平增多,则感测动作时间也增加。
由于相邻状态之间的阈值电压分布的边界(margin)越窄,就越容易受到噪声等的影响,从而存在感测动作时间变长的趋势。具体地,由于状态间的边界是SLC方式>MLC方式>TLC方式,因而一个读取电平下的感测动作时间为SLC方式<MLC方式<TLC方式。
上面示出的存储于一个存储单元晶体管MT的数据的位数和与存储单元晶体管MT的阈值电压分布相对的数据分配是一个示例。也可以应用与阈值电压分布相对的上述以外的各种的数据分配。另外,各读取电压及读通电压可以在各写入方式中设定成相同的电压值,也可以设定成不同的电压。另外,上面示出的MLC方式的下位页/上位页的位分配的编码只不过是一个示例。同样地,TLC方式的下位页/中间页/上位页的位分配的编码只不过是一个示例。还能够应用其它的编码,在此情况下,各页之间的感测动作时间的大小关系也可能各不相同。
(读取动作的概要)
接着,使用图7和图8对读取动作的概要进行说明。
图7是示出实施方式所涉及的存储系统1中的读取动作的概要的图。如图7所示,在读取动作中包含感测动作S1和数据传输动作S2这两者。
感测动作S1是指感测放大器模块212将存储于存储单元阵列211的数据读出的动作。数据传输动作S2是指将感测放大器模块212(更具体地,页缓存器212B)所读出的数据经由输入输出总线I/O传输至存储器控制器10的动作。
对感测动作S1具体地说明。定序器217将读取电压施加于作为读取对象的存储单元晶体管MT所连接的字线WL(选择字线WL),将读通电压VREAD施加于并非对象的存储单元晶体管MT所连接的字线WL(非选择字线WL)。另外,感测放大器212A感测在位线BL中流动的电流。如果感测放大器212A感测到位线BL中流过电流,则定序器217判定为存储单元晶体管MT的阈值电压为此时的读取电压以下。另外,如果感测放大器212A感测到位线BL中没有电流流动,则定序器217判定为存储单元晶体管MT的阈值电压比此时的读取电压高。定序器217将该动作重复与读取对象的页类别所需的读取电平的数量相应的次数,由页缓存器212B进行逻辑运算,由此得到页数据。
图8是示出实施方式所涉及的存储系统1中的读取动作的命令集的图。如图8所示,如果存储芯片210从存储器控制器10接收到对由“Add”指定的物理地址处的页类别进行指定的“PSC(Page Select Command)”、指示感测动作的“00H”、指定列地址及行地址的“Add”、以及指示数据感测开始的“30H”,则开始感测动作S1。也将这些命令和地址的集合称为读取命令集。
存储芯片210如果开始感测动作S1,则转变成忙状态,不从存储器控制器10接受关于数据传输动作的命令。因此,存储器控制器10需要在感测动作结束而存储芯片210转变成就绪状态之后,再指示数据传输动作。这样,将感测动作所导致的忙时间称为tR时间、也称为感测动作时间。
存储芯片210如果结束感测动作S1,则转变成就绪状态。存储器控制器10例如发布状态读取命令,取得存储芯片210的状态,从而判断存储芯片210是否为就绪状态。
如果成为就绪状态的存储芯片210从存储器控制器10接收指示数据传输的“05H”、指定列地址和行地址的“Add”、以及指示数据传输开始的“50H”,则开始数据传输动作S2。也将这些命令和地址的集合称为数据传输命令集。
如上所述,感测动作所导致的忙时间(tR时间)即数据的感测动作所需要的动作时间根据写入方式等读取条件而不同。在此,读取条件是指例如写入方式的种类、页类别、示出成为读取动作对象的字线的行地址、字线组以及存储芯片210的地址的至少其中一个。
作为写入方式的具体示例,存在SLC方式、MLC方式、TLC方式以及QLC(Quadruple-Level Cell)方式等。QLC方式是指使一个存储单元晶体管MT存储4位数据的方式,具有下位页、中间页、上位页以及顶页(top page)。
页类别在MLC方式的情况下是指下位页和上位页,在TLC方式的情况下是指下位页、中间页以及上位页,在QLC方式的情况下是指下位页、中间页、上位页以及顶页。
字线组是将多个字线作为一个组处理的方式。例如,将字线WL0~WL3作为字线组WGP1并将字线WL4~WL8作为字线组WGP2的方式进行分组。
如以上各个读取条件的感测动作时间的差异例如存储于上述的ROM安全区块。向ROM安全区块储存与感测动作时间相关的信息例如是在存储系统1出厂时进行的。存储于ROM安全区块的感测动作时间信息在存储系统1启动时例如读出到存储芯片210内部的状态寄存器215A,从状态寄存器215A向NAND控制器14内部的寄存器143设定。另外,也可以在存储系统1出厂时通过初始诊断而测量各个读取条件下的感测动作时间。此时的感测动作时间也可以设定于NAND控制器14的寄存器143。
各个读取条件下的感测动作时间在不同存储芯片210之间存在波动,但是例如针对各个读取条件采用感测动作中最需要时间的存储芯片210的动作时间即最长的时间,由此能够削减ROM安全区块、状态寄存器215A以及寄存器143的容量。
(读取动作的详细情况)
接着,使用图9对读取动作的详细情况进行说明。图9是示出实施方式所涉及的存储系统1中的读取动作的详细情况的图。
图9所示的NAND控制器例如是在图1中通过信道Ch.0与一个NAND封装件21连接的NAND控制器14。图9所示的芯片0~2是例如在图1中信道Ch.0所连接的NAND封装件21所具有的存储芯片210(0)~210(2)。
另外,设为NAND控制器14的寄存器143从NAND封装件21中所包含的各存储芯片210的例如状态寄存器215A取得与感测动作时间相关的信息并进行存储。
如图9所示,NAND控制器14进行如下的交错动作:在使一个信道Ch.0所连接的一个存储芯片210执行命令的期间,使其它的存储芯片210也执行命令。由此,存储系统1的性能提高。
具体地,NAND控制器14例如对存储芯片210(0)发送读取命令集。存储芯片210(0)开始与所指定的物理地址对应的存储单元晶体管MT的所指定的页的数据感测,成为忙状态。另一方面,NAND控制器14基于读取命令集中包含的对页类别进行指定的“PSC”,在计时器140~142的任一个中设定所指定的页类别中的最长的感测动作时间。在此,NAND控制器14在计时器140中设定感测动作时间。计时器140执行感测动作时间的测量,直到所设定的感测动作时间结束为止。
如果向存储芯片210(0)发送读取命令集完成,则NAND控制器14例如对存储芯片210(1)发送读取命令集。存储芯片210(1)开始与所指定的物理地址对应的存储单元晶体管MT的所指定的页的数据感测,成为忙状态。另一方面,NAND控制器14基于读取命令集中包含的对页类别进行指定的“PSC”,在除了使用中的计时器140以外的计时器141、142的任一个中设定所指定的页类别的最长的感测动作时间。在此,NAND控制器14在计时器141中设定感测动作时间。计时器141执行感测动作时间的测量,直到所设定的感测动作时间结束为止。
如果向存储芯片210(1)发送读取命令集完成,则NAND控制器14对存储芯片210(2)发送读取命令集。存储芯片210(2)开始与所指定的物理地址对应的存储单元晶体管MT的所指定的页的数据感测,成为忙状态。另一方面,NAND控制器14基于读取命令集中包含的对页类别进行指定的“PSC”,在未使用的计时器142中设定所指定的页类别中的最长的感测动作时间。计时器142执行感测动作时间的测量,直到所设定的感测动作时间结束为止。
如果与通过一次交错动作可发布的命令数(3)对应的数量的存储芯片210(0)~210(2)全都成为忙状态,则NAND控制器14开始对存储芯片210(0)~210(2)的状态进行监视的状态轮询。在状态轮询中,NAND控制器14顺次向存储芯片210(0)~210(2)发布状态读取命令。接收了状态读取命令的存储芯片210(0)~210(2)的定序器217将存储芯片210(0)~210(2)的状态信息储存于状态寄存器215A,并将其传输至输入输出电路214。由此,NAND控制器14能够取得存储芯片210(0)~210(2)的状态。
直到存储芯片210(0)~210(2)中的某一个成为就绪状态为止,或者直到在计时器140~142中设定的感测动作时间结束为止,NAND控制器14持续状态轮询。在图9的示例中,在计时器140~142的任一个中设定的感测动作时间结束之前,存储芯片210(0)就成为就绪状态。NAND控制器14根据所取得的存储芯片210(0)的状态信息判断为存储芯片210(0)成为就绪状态。
如果判断为存储芯片210(0)成为就绪状态,则NAND控制器14对存储芯片210(0)发送数据传输命令集。存储芯片210(0)执行将按照先前的读取命令集所感测的数据向NAND控制器14的传输。
在此,在图9的示例中,在向NAND控制器14传输来自存储芯片210(0)的数据的期间,存储芯片210(1)的感测动作结束。另外,随后不久,测量存储芯片210(1)的感测动作时间的计时器141的设定时间结束。
另外,同样地,在图9的示例中,在向NAND控制器14传输来自存储芯片210(0)的数据的期间,继存储芯片210(1)之后,存储芯片210(2)的感测动作结束。另外,在从存储芯片210(0)向NAND控制器14的数据传输结束之后不久,测量存储芯片210(2)的感测动作时间的计时器142的设定时间结束。
当来自存储芯片210(0)的数据传输完成,NAND控制器14由于计时器141中设定的感测动作时间结束,因此判断为存储芯片210(1)的感测动作结束,存储芯片210(1)成为就绪状态。NAND控制器14不根据状态读取命令进行状态确认,就对存储芯片210(1)发送数据传输命令集。存储芯片210(1)执行将按照先前的读取命令集所感测的数据向NAND控制器14的传输。
当来自存储芯片210(1)的数据传输完成,NAND控制器14由于计时器142中设定的感测动作时间结束,因此判断为存储芯片210(2)的感测动作结束,存储芯片210(2)成为就绪状态。NAND控制器14不根据状态读取命令进行状态确认,就对存储芯片210(2)发送数据传输命令集。存储芯片210(2)执行将按照先前的读取命令集所感测的数据向NAND控制器14的传输。
如上所述,本实施方式的存储系统1中的读取动作结束。
(存储系统中的读取处理的示例)
接着,使用图10对与实施方式的存储系统1中的读取动作相关的处理的示例进行说明。图10是示出实施方式所涉及的存储系统1中的读取动作相关的处理的步骤的一个示例的流程图。
如图10所示,存储系统1的NAND控制器14将读取命令集发送至自身所连接的NAND封装件21的存储芯片210(0)~210(2)的其中一个(步骤S101)。另外,NAND控制器14基于自身发送的读取命令集中包含的页类别的指定,在计时器140~142的任一个中设定所指定的页类别中的最长的感测动作时间(步骤S102)。
NAND控制器14判定是否另外还存在作为读取命令集的发布对象的存储芯片210(步骤S103)。在另外还存在作为命令发布对象的存储芯片210的情况下(步骤S103:是),重复步骤S101起的处理。
在另外不存在作为命令发布对象的存储芯片210的情况下(步骤S103:否),NAND控制器14参照计时器140~142的测量时间,判定是否存在感测动作时间结束的存储芯片210(步骤S104)。
在不存在感测动作时间结束的存储芯片210的情况下(步骤S104:否),NAND控制器14对存储芯片210(0)~210(2)顺次进行状态轮询(步骤S105),判定是否存在就绪状态的存储芯片210(步骤S106)。在不存在就绪状态的存储芯片210的情况下(步骤S106:否),NAND控制器14重复步骤S104起的处理。
在存在感测动作时间结束的存储芯片210的情况下(步骤S104:是),或者在存在就绪状态的存储芯片210的情况下(步骤S106:是),NAND控制器14将数据传输命令集发送至该存储芯片210(步骤S107)。
NAND控制器14判定是否另外还存在作为数据传输命令集的发布对象的存储芯片210(步骤S108)。在另外还存在作为命令发布对象的存储芯片210的情况下(步骤S108:是),重复步骤S103起的处理。
在不存在作为命令发布对象的存储芯片210的情况下(步骤S108:否),NAND控制器14结束处理。
如上所述,本实施方式的存储系统1中的读取动作相关的处理结束。
(对比例)
接着,使用图11对对比例的存储系统中的读取动作进行说明。图11是示出对比例所涉及的存储系统中的读取动作的详细情况的图。在对比例的存储系统中,只基于状态读取命令来判断各存储芯片(0)~(2)的状态。
如图11所示,在对比例的存储系统中,NAND控制器在顺次向存储芯片(0)~(2)发布读取命令集之后,进行状态轮询,等待某一个存储芯片(0)~(2)成为就绪状态。然后,在NAND控制器从成为就绪状态的存储芯片(0)接受数据传输的期间,存储芯片(1)、(2)的感测动作顺次结束。然而,在对比例的存储系统中,NAND控制器必须进行状态轮询来取得存储芯片(1)、(2)的状态,以获知存储芯片(1)、(2)的状态。
NAND控制器在来自存储芯片(0)的数据传输结束之后,通过状态轮询而获知存储芯片(1)为就绪状态,接受来自存储芯片(1)的数据传输。再进一步,NAND控制器在来自存储芯片(1)的数据传输结束之后,通过状态轮询而获知存储芯片(2)为就绪状态,接受来自存储芯片(2)的数据传输。
在此,由于来自存储芯片(0)的数据传输结束之后的、对存储芯片(1)的状态轮询(状态读取命令的发布)以及对存储芯片(2)的状态轮询(状态读取命令的发布),对比例的存储中的读取动作发生延迟。如上所述的存储芯片的状态确认所需的时间成为存储系统的性能下降的一个原因。
根据本实施方式的存储系统1,在多个存储芯片210(0)~210(2)中的任一个的感测动作的动作时间结束的情况下,存储器控制器10不对动作时间结束的存储芯片210进行状态确认,就对该存储芯片210指示数据传输动作。由此,能够抑制因状态轮询导致的读取动作的延迟。
根据本实施方式的存储系统1,基于写入方式的种类及页类别等读取条件,在计时器140~142的任一个中设定感测动作的动作时间。由此,存储器控制器10能够获知多个存储芯片210(0)~210(2)中的任一个的感测动作的动作时间是否结束。因此,无需进行存储芯片210的状态确认,就能够判断为动作时间结束的存储芯片210处于就绪状态。
根据本实施方式的存储系统1,写入方式的种类及页类别等读取条件被包含在存储器控制器10所发布的读取命令集中。由此,存储器控制器10能够基于读取条件在计时器140~142的任一个中设定感测动作的动作时间。
根据本实施方式的存储系统1,存储器控制器10在计时器140~142的任一个中设定各个读取条件下的动作时间中的最长的动作时间。即,NAND控制器14的寄存器143、存储芯片210的状态寄存器215A以及存储芯片210的ROM安全区块等不需要存储例如在存储芯片210(0)~210(2)之间存在波动的所有动作时间,能够有效地灵活使用存储系统1中的资源。另外,即使在存储芯片210(0)~210(2)之间动作时间存在波动的情况下,也能够在恰当的定时发送数据传输命令集。
(变形例)
接着,使用图12和图13对实施方式的变形例的读取动作进行说明。
在存储系统中,有时在感测动作中产生存储芯片的状态固定为忙的忙栈(busystack)这样的问题。在变形例中,对产生了忙栈的情况下的存储系统中的读取动作进行说明。在以下的说明中,也与上述的实施方式同样地以存储系统1为例。
图12是示出在实施方式的变形例所涉及的读取动作中产生了忙栈的情况的图。
如图12所示,NAND控制器14顺次向存储芯片210(0)、210(1)等发布读取命令集,在计时器140、141中分别设定感测动作时间后,在存储芯片210(1)中产生了忙栈。
即使在这样的情况下,由NAND控制器14在计时器141中设定的、例如作为存储芯片210(1)用的感测动作时间,如果经过规定时间也会结束。在图12的示例中,在NAND控制器14从存储芯片210(0)接受数据传输的期间,计时器141的感测动作时间结束。
因此,NAND控制器14在来自存储芯片210(0)的数据传输结束之后,对存储芯片210(1)发布数据传输命令集。但是,存储芯片210(1)不处于能接受该数据传输命令集的状态,无法从存储芯片210(1)向NAND控制器14传输有意义的数据。
NAND控制器14所具备的ECC部144是进行从存储芯片210传输来的数据的错误订正的构成要素。在上述的情况下,ECC部144判定为来自存储芯片210(1)的数据无法订正。
如果ECC部144判定为数据无法订正,则NAND控制器14对存储芯片210(1)发布状态读取命令,确认存储芯片210(1)的状态。如果存储芯片210(1)是忙状态,则NAND控制器14判断为在存储芯片210(1)中产生了忙栈,对存储芯片210(1)发布重置命令,将存储芯片210(1)重置。
图13是示出在实施方式的变形例所涉及的读取动作中产生了忙栈的情况下的处理的步骤的一个示例的流程图。忙栈例如可能在上述实施方式的图10的流程中的步骤S107的处理之后发生。
NAND控制器14在对感测动作时间结束的存储芯片210发送数据传输命令集之后(步骤S107),如图13所示,确认ECC部144是否判定为无法订正(步骤S201)。如果ECC部144并非判定为无法订正(步骤S201:否),则NAND控制器14返回至通常的流程,继续对其它存储芯片210的处理(步骤S108)。
在ECC部144判定为无法订正的情况下(步骤S201:是),NAND控制器14对作为被判定为无法订正的数据的传输源的存储芯片210发布状态读取命令(步骤S202)。NAND控制器14从存储芯片210取得状态,判断存储芯片210是否为忙状态(步骤S203)。
如果存储芯片210为忙状态(步骤S203:是),则NAND控制器14判断为在存储芯片210中产生了忙栈,进行超时处理。即,NAND控制器14对存储芯片210发布重置命令(步骤S204),结束对该存储芯片210的处理。然后,NAND控制器14继续对其它存储芯片210的处理(步骤S108)。
如果存储芯片210为就绪状态(步骤S203:否),则NAND控制器14判断为在存储芯片210中未产生忙栈,对存储芯片210发布重试读取命令(步骤S205)。重试读取命令是使存储芯片210再次对ECC部144判定为无法订正的数据执行读取的命令。然后,NAND控制器14重复步骤S201起的处理。
例如,在对比例的存储系统中,即使是在存储芯片中产生了忙栈的情况下,在作出超时判定以前也需要很长时间。
根据变形例的读取动作,对动作时间结束的存储芯片210不进行状态确认,就对该存储芯片210指示数据传输动作。由此,在存储芯片210中产生了忙栈的情况下,通过在数据的错误订正处理中成为无法订正的状态,由此,能够迅速地进行超时判定。
根据变形例的读取动作,在数据的错误订正处理中发生了无法订正的错误的情况下,对作为数据的传输源的存储芯片210进行状态确认。由此,在存储芯片210为就绪状态等并非因忙栈发生而导致的错误的情况下,能够使存储芯片210再次执行读取动作。
其它实施方式
在上述的实施方式等中,对并行动作要素是存储芯片210(0)~210(2)的情况进行了说明,但是,并行动作要素不限于存储芯片210(0)~210(2)。例如,有时在一个存储芯片内包含各自具有存储单元阵列、感测放大器模块以及行解码器模块等周边电路的多个层(plane)。多个层能够个别地并行处理,在这样的情况下,各个层相当于并行动作要素。此外,可以将能够并行地进行处理的各个构成规定为并行动作要素。
对本发明的几个实施方式进行了说明,但这些实施方式是作为一个例子而示出的,并非意图限定发明的范围。这些新的实施方式也可以以其他的各种方式来实施,在不脱离发明的主旨的范围内,能够进行各种省略、置换、变更。这些实施方式、其变形包括在发明的范围、主旨中,同样也包括在权利要求书所记载的发明及其等同的范围中。
Claims (10)
1.一种存储系统,具备:
非易失性存储器,具有各自包含存储单元的多个并行动作要素;以及
存储器控制器,控制所述多个并行动作要素,
所述存储器控制器在从所述非易失性存储器读取数据的情况下,
对所述多个并行动作要素顺次指示对所述多个并行动作要素中包含的所述存储单元保持的数据进行感测的感测动作,
在所述多个并行动作要素中的任一个的感测动作的动作时间结束的情况下,对所述动作时间已结束的并行动作要素不进行状态确认,而对所述动作时间已结束的并行动作要素指示所述数据的传输动作。
2.根据权利要求1所述的存储系统,其中,
所述多个并行动作要素经由一个信道与所述存储器控制器连接。
3.根据权利要求1所述的存储系统,其中,
所述存储器控制器具有计时器,所述计时器对指示了所述感测动作的并行动作要素的所述动作时间的结束进行测量。
4.根据权利要求3所述的存储系统,其中,
所述存储器控制器基于读取条件而在所述计时器中设定所述动作时间。
5.根据权利要求3所述的存储系统,其中,
所述存储器控制器所述多个并行动作要素发布指示所述感测动作的读取命令集,基于所述读取命令集的读取条件而在所述计时器中设定所述动作时间。
6.根据权利要求5所述的存储系统,其中,
所述存储器控制器对于所述多个并行动作要素分别管理各个所述读取条件下的动作时间,在所述计时器中设定与被发布了所述读取命令集的所述多个并行动作要素的、与所述读取条件对应的动作时间中的最长的动作时间。
7.根据权利要求4至6中任一项所述的存储系统,其中,
所述读取条件包含写入方式的种类及页类别的至少其中一个。
8.根据权利要求1至6中任一项所述的存储系统,其中,
所述存储器控制器对通过所述传输动作传输的数据进行错误订正处理,
在所述错误订正处理中发生无法订正的错误的情况下,对所述多个并行动作要素中的所述数据的传输源的并行动作要素进行状态确认,在所述数据的传输源的并行动作要素的状态为忙的情况下,对所述数据的传输源的并行动作要素发布重置命令。
9.根据权利要求1至6中任一项所述的存储系统,其中,
所述并行动作要素是存储芯片。
10.一种控制方法,其作为在具有各自包含存储单元的多个并行动作要素的非易失性存储器中控制所述多个并行动作要素的方法,其中,
在从所述非易失性存储器读取数据的情况下,
对所述多个并行动作要素顺次指示对所述多个并行动作要素中包含的所述存储单元保持的数据进行感测的感测动作,
在所述多个并行动作要素中的任一个的感测动作的动作时间结束的情况下,对所述动作时间已结束的并行动作要素不进行状态确认,而对所述动作时间已结束的并行动作要素指示所述数据的传输动作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019-191644 | 2019-10-21 | ||
JP2019191644A JP7458740B2 (ja) | 2019-10-21 | 2019-10-21 | メモリシステム及び制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112767988A true CN112767988A (zh) | 2021-05-07 |
CN112767988B CN112767988B (zh) | 2024-06-11 |
Family
ID=75491156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010567666.0A Active CN112767988B (zh) | 2019-10-21 | 2020-06-19 | 存储系统及控制方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11366761B2 (zh) |
JP (1) | JP7458740B2 (zh) |
CN (1) | CN112767988B (zh) |
TW (1) | TWI756692B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220415380A1 (en) * | 2021-06-24 | 2022-12-29 | Intel Corporation | Independent multi-page read operation enhancement technology |
US11972144B2 (en) * | 2021-08-11 | 2024-04-30 | Micron Technology, Inc. | Dynamic status registers array |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008117492A (ja) * | 2006-11-07 | 2008-05-22 | Renesas Technology Corp | 半導体装置 |
JP2009205798A (ja) * | 2009-06-18 | 2009-09-10 | Renesas Technology Corp | 半導体記憶装置 |
US20100074026A1 (en) * | 2008-09-19 | 2010-03-25 | Samsung Electronics Co., Ltd. | Flash memory device and systems and reading methods thereof |
US20100106893A1 (en) * | 2008-10-25 | 2010-04-29 | Luca Fasoli | Page buffer program command and methods to reprogram pages without re-inputting data to a memory device |
US20120243301A1 (en) * | 2011-01-13 | 2012-09-27 | Cypress Semiconductor Corporation | Memory devices and methods for high random transaction rate |
CN102779553A (zh) * | 2011-05-11 | 2012-11-14 | 海力士半导体有限公司 | 非易失性存储器件及其感测方法 |
JP2013030251A (ja) * | 2011-07-28 | 2013-02-07 | Toshiba Corp | メモリシステム |
CN103996409A (zh) * | 2013-02-16 | 2014-08-20 | 旺宏电子股份有限公司 | 用于改善存储器读取速率的存储器装置及方法 |
CN104979000A (zh) * | 2014-04-09 | 2015-10-14 | 力旺电子股份有限公司 | 感测装置及其数据感测方法 |
US20160292092A1 (en) * | 2015-03-31 | 2016-10-06 | Sandisk Technologies Inc. | Memory Bus Management |
US20170365335A1 (en) * | 2016-06-15 | 2017-12-21 | Toshiba Memory Corporation | Semiconductor memory device and memory system |
US20180075912A1 (en) * | 2016-09-15 | 2018-03-15 | Toshiba Memory Coporation | Semiconductor memory device |
US10185499B1 (en) * | 2014-01-07 | 2019-01-22 | Rambus Inc. | Near-memory compute module |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0452940A (ja) * | 1990-06-20 | 1992-02-20 | Matsushita Graphic Commun Syst Inc | メモリユニットのリード・ライト装置 |
JPH04247541A (ja) * | 1991-02-04 | 1992-09-03 | Canon Inc | 電子機器 |
JPH07311708A (ja) * | 1994-05-18 | 1995-11-28 | Fuji Film Micro Device Kk | メモリカード |
US6980314B1 (en) * | 2000-04-03 | 2005-12-27 | Hewlett-Packard Development Company, L.P. | Method and device for improving utilization of a bus |
KR101397229B1 (ko) * | 2006-08-22 | 2014-05-20 | 컨버전트 인텔렉츄얼 프로퍼티 매니지먼트 인코포레이티드 | 메모리 시스템 및 메모리를 위한 모듈러 커맨드 스트럭처 |
JP4970078B2 (ja) * | 2007-02-21 | 2012-07-04 | 株式会社東芝 | 不揮発性メモリシステム |
US8438356B2 (en) | 2007-10-01 | 2013-05-07 | Marvell World Trade Ltd. | Flash memory controller |
US9431091B2 (en) * | 2008-06-06 | 2016-08-30 | Uniquify, Inc. | Multiple gating modes and half-frequency dynamic calibration for DDR memory controllers |
JP5447617B2 (ja) | 2012-08-22 | 2014-03-19 | Tdk株式会社 | フラッシュメモリコントローラ、フラッシュメモリシステム、及びフラッシュメモリ制御方法 |
JP6627346B2 (ja) * | 2015-09-09 | 2020-01-08 | ソニー株式会社 | メモリコントローラ、記憶装置、情報処理システムおよびメモリ制御方法 |
US10877696B2 (en) | 2019-03-28 | 2020-12-29 | Intel Corporation | Independent NAND memory operations by plane |
-
2019
- 2019-10-21 JP JP2019191644A patent/JP7458740B2/ja active Active
-
2020
- 2020-05-26 TW TW109117415A patent/TWI756692B/zh active
- 2020-06-19 CN CN202010567666.0A patent/CN112767988B/zh active Active
- 2020-09-02 US US17/009,940 patent/US11366761B2/en active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008117492A (ja) * | 2006-11-07 | 2008-05-22 | Renesas Technology Corp | 半導体装置 |
US20100074026A1 (en) * | 2008-09-19 | 2010-03-25 | Samsung Electronics Co., Ltd. | Flash memory device and systems and reading methods thereof |
US20100106893A1 (en) * | 2008-10-25 | 2010-04-29 | Luca Fasoli | Page buffer program command and methods to reprogram pages without re-inputting data to a memory device |
JP2009205798A (ja) * | 2009-06-18 | 2009-09-10 | Renesas Technology Corp | 半導体記憶装置 |
US20120243301A1 (en) * | 2011-01-13 | 2012-09-27 | Cypress Semiconductor Corporation | Memory devices and methods for high random transaction rate |
CN102779553A (zh) * | 2011-05-11 | 2012-11-14 | 海力士半导体有限公司 | 非易失性存储器件及其感测方法 |
JP2013030251A (ja) * | 2011-07-28 | 2013-02-07 | Toshiba Corp | メモリシステム |
CN103996409A (zh) * | 2013-02-16 | 2014-08-20 | 旺宏电子股份有限公司 | 用于改善存储器读取速率的存储器装置及方法 |
US10185499B1 (en) * | 2014-01-07 | 2019-01-22 | Rambus Inc. | Near-memory compute module |
CN104979000A (zh) * | 2014-04-09 | 2015-10-14 | 力旺电子股份有限公司 | 感测装置及其数据感测方法 |
US20160292092A1 (en) * | 2015-03-31 | 2016-10-06 | Sandisk Technologies Inc. | Memory Bus Management |
US20170365335A1 (en) * | 2016-06-15 | 2017-12-21 | Toshiba Memory Corporation | Semiconductor memory device and memory system |
US20180075912A1 (en) * | 2016-09-15 | 2018-03-15 | Toshiba Memory Coporation | Semiconductor memory device |
Also Published As
Publication number | Publication date |
---|---|
JP2021068072A (ja) | 2021-04-30 |
TWI756692B (zh) | 2022-03-01 |
US11366761B2 (en) | 2022-06-21 |
TW202117731A (zh) | 2021-05-01 |
JP7458740B2 (ja) | 2024-04-01 |
US20210117335A1 (en) | 2021-04-22 |
CN112767988B (zh) | 2024-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9239758B2 (en) | Semiconductor storage device, method for controlling the same and control program | |
CN106251903B (zh) | 存储系统及其操作方法 | |
KR101892038B1 (ko) | 비휘발성 메모리 장치의 데이터 독출 방법 | |
US11714575B2 (en) | Semiconductor memory device | |
US7853841B2 (en) | Memory cell programming | |
CN107146639B (zh) | 半导体存储装置及存储器系统 | |
US20200303016A1 (en) | Memory reading method and memory system | |
US10134477B2 (en) | Nonvolatile memory device detecting power noise and operating method thereof | |
US10803954B2 (en) | Memory system | |
JP6652472B2 (ja) | メモリシステムおよび制御方法 | |
JP2018028955A (ja) | フラッシュメモリ | |
US11348654B2 (en) | Memory device and method for reducing bad block test time | |
US11908535B2 (en) | Memory device and memory controller and storage device including the memory device and memory controller | |
CN112767988B (zh) | 存储系统及控制方法 | |
US8164954B2 (en) | Flash memory device and program method thereof | |
US9146824B1 (en) | Management of bit line errors based on a stored set of data | |
KR102665270B1 (ko) | 반도체 메모리 장치 및 그것의 동작 방법 | |
TW202326441A (zh) | 記憶體系統及半導體記憶裝置 | |
CN113555052B (zh) | 半导体存储装置 | |
KR20170028152A (ko) | 메모리 시스템 및 그 동작 방법 | |
US20240295969A1 (en) | Memory system and method of controlling nonvolatile memory | |
TWI764569B (zh) | 半導體記憶裝置 | |
US20230086157A1 (en) | Storage controller determining distribution type, method of operating the same, and method of operating storage device including the same | |
CN118260156A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |