CN110489360B - 存储器控制器及该存储器控制器的操作方法 - Google Patents
存储器控制器及该存储器控制器的操作方法 Download PDFInfo
- Publication number
- CN110489360B CN110489360B CN201910107432.5A CN201910107432A CN110489360B CN 110489360 B CN110489360 B CN 110489360B CN 201910107432 A CN201910107432 A CN 201910107432A CN 110489360 B CN110489360 B CN 110489360B
- Authority
- CN
- China
- Prior art keywords
- threshold
- count value
- memory controller
- memory
- superblock
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 23
- 230000007423 decrease Effects 0.000 claims description 5
- 238000004064 recycling Methods 0.000 claims 1
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 30
- 238000010586 diagram Methods 0.000 description 29
- 239000000872 buffer Substances 0.000 description 20
- 239000010410 layer Substances 0.000 description 9
- 230000004044 response Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 6
- 101100481704 Arabidopsis thaliana TMK3 gene Proteins 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 101150013423 dsl-1 gene Proteins 0.000 description 3
- 101000741396 Chlamydia muridarum (strain MoPn / Nigg) Probable oxidoreductase TC_0900 Proteins 0.000 description 2
- 101000741399 Chlamydia pneumoniae Probable oxidoreductase CPn_0761/CP_1111/CPj0761/CpB0789 Proteins 0.000 description 2
- 101000741400 Chlamydia trachomatis (strain D/UW-3/Cx) Probable oxidoreductase CT_610 Proteins 0.000 description 2
- 102100031885 General transcription and DNA repair factor IIH helicase subunit XPB Human genes 0.000 description 2
- 101000920748 Homo sapiens General transcription and DNA repair factor IIH helicase subunit XPB Proteins 0.000 description 2
- 101100049574 Human herpesvirus 6A (strain Uganda-1102) U5 gene Proteins 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 101150064834 ssl1 gene Proteins 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
Images
Classifications
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Read Only Memory (AREA)
Abstract
本发明提供了一种存储器控制器,该存储器控制器包括:寄存器分配器,将一个超级块划分成多个单元区域;多个第一计数器,各自对应于多个单元区域中的各个单元区域,其中多个第一计数器中的每一个当相应单元区域被读取访问时增加计数值;第二计数器,对应于超级块,其中当第一计数器中的任意一个的计数值达到第一阈值时,第二计数器增加计数值;以及命令发生器,当第二计数器的计数值达到第二阈值时,生成用于执行读取回收操作的命令。
Description
相关申请的交叉引用
本申请要求于2018年5月15日提交的申请号为10-2018-0055388的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
本公开总体涉及一种存储器控制器及该存储器控制器的操作方法,并且更特别地,涉及一种对超级块的访问次数进行计数的存储器控制器及该存储器控制器的操作方法。
背景技术
存储器系统可包括存储器装置和存储器控制器。
存储器装置可在存储器控制器的控制下存储数据或者输出存储的数据。例如,存储器装置可被配置为当电力供应被中断时存储的数据丢失的易失性存储器装置或被配置为即使当电力供应被中断时存储的数据仍被保留的非易失性存储器装置。
存储器控制器可控制主机和存储器装置之间的数据通信。
主机可通过使用各种接口协议与存储器系统通信。
发明内容
本公开的实施例提供一种使用K位体系结构寄存器对超级块的访问次数进行计数的存储器控制器及该存储器控制器的操作方法。
根据本公开的一方面,提供一种操作存储器控制器的方法,该方法包括:将超级块划分成多个单元区域;分配K位体系结构寄存器的K个位之中的N个位,以对多个单元区域中的每一个的读取访问次数进行计数多达第一阈值,其中N和K是自然数;并且分配K位体系结构寄存器的剩余位之中的位,以对超级块的读取访问次数进行计数多达第二阈值,其中确定N使得通过将第一阈值和第二阈值相乘获得的值表示目标计数值。
根据本公开的另一方面,提供一种存储器控制器,包括:第一计数器组,包括多个第一计数器,每个第一计数器被配置成使用K位体系结构寄存器的K个位之中的N个位对构成超级块的多个单元区域之中、与该第一计数器对应的单元区域的读取访问次数进行计数多达第一阈值,其中N和K是自然数;第二计数器,被配置成使用K位体系结构寄存器的剩余位对超级块的读取访问次数进行计数多达第二阈值;以及寄存器分配器,被配置成确定N使得通过将第一阈值和第二阈值相乘获得的值表示目标计数值。
根据本公开的又一方面,提供一种存储器控制器,包括:寄存器分配器,被配置成将一个超级块划分成多个单元区域;多个第一计数器,各自对应于多个单元区域中的各个单元区域,其中多个第一计数器中的每一个当相应单元区域被读取访问时增加计数值;第二计数器,对应于超级块,其中当第一计数器中的任意一个的计数值达到第一阈值时,第二计数器增加计数值;以及命令发生器,被配置成当第二计数器的计数值达到第二阈值时,生成用于执行读取回收操作的命令。
根据本公开的再一方面,提供一种存储器系统,包括:存储器装置,包括定义超级块的多个单元区域;以及存储器控制器,被配置成对多个单元区域中的每一个的读取访问次数进行计数,每当对多个单元区域中的任意一个的总读取访问次数达到第一阈值时,增加计数值,并且当计数值达到第二阈值时,生成执行读取回收操作的命令。
附图说明
现在将参照附图更全面地描述各个实施例;然而,本发明的元件和特征可不同于本文所公开的元件和特征进行配置或布置。因此,本发明不限于本文阐述的实施例。而是,提供这些实施例使得本公开彻底且完整,并且向本公开所属领域的技术人员充分传达实施例的范围。
在附图中,为了清楚说明,可能夸大尺寸。将理解的是,当元件被称为在两个元件“之间”时,该元件可以是两个元件之间的唯一元件,或者也可存在一个或多个中间元件。相同的附图标记始终表示相同的元件。而且,在整个说明书中,对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这样的短语的不同参考不一定针对相同的实施例。
图1是示出根据本公开的实施例的存储器系统的示图。
图2是详细示出示例性存储器控制器,诸如图1中所示的存储器控制器的示图。
图3是详细示出示例性存储器装置,诸如图1中所示的存储器装置的示图。
图4是示出示例性管芯,诸如图3中所示的管芯的示图。
图5是示出示例性超级块的示图。
图6是示出根据本公开的实施例的构成超级块的单元区域的示图。
图7是示出示例性存储块的示图。
图8是示出三维配置的存储块的实施例的示图。
图9是示出三维配置的存储块的另一实施例的示图。
图10是示出根据本公开的实施例的存储器控制器的操作方法的流程图。
图11是示出根据本公开的实施例的存储器控制器的操作方法的流程图。
图12是示出根据本公开的实施例的根据每单元区域分配的位数的差异的示图。
图13是示出根据本公开的实施例的存储器控制器的操作方法的流程图。
图14是示出根据本公开的实施例的根据擦除次数不同地分配的位数的示图。
图15是示出根据本公开的实施例的根据超级块是顺序块还是随机块不同地确定的单元区域的数量的示图。
图16至图19是示出包括图1至图3中所示的存储器控制器的存储器系统的其它示例的示图。
具体实施方式
在以下详细描述中,通过示例的方式示出并描述了本公开的实施例。如本领域技术人员将认识到的是,在不脱离本公开的精神或范围的情况下,可以各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是说明性的而非限制性的。
在整个说明书中,当元件被称为“连接”或“联接”到另一元件时,该元件可直接连接或联接到另一元件,或者利用插设在这两个元件之间的一个或多个中间元件间接连接或联接到另一元件。另外,当元件被称为“包括”组件时,除非上下文另有说明,否则这表示该元件可进一步包括一个或多个其它组件,而不是排除这些组件。
将参照附图描述本公开的各个实施例。
图1是示出根据本公开的实施例的存储器系统2000的示图。
参照图1,存储器系统2000可包括用于存储数据的存储器装置2200和用于根据主机1000的请求控制存储器装置2200的存储器控制器2100。
主机1000可通过使用诸如下列的各种接口协议中的任意一种与存储器系统2000通信:高速外围组件互连(PCI-e或PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)或串列SCSI(SAS)。主机1000和存储器系统2000之间的接口协议不限于上述示例,并且可包括诸如通用串行总线(USB)、多媒体卡(MMC)、增强型小型磁盘接口(ESDI)和电子集成驱动器(IDE)的各种接口。
存储器控制器2100可控制存储器系统2000的全部操作,并且控制主机1000和存储器装置2200之间的数据交换。例如,存储器控制器2100可转换接收的信息,使得可在主机1000和存储器装置2200之间通信命令、地址和数据,并存储和输出转换的信息。例如,在编程操作中,存储器控制器2100可将命令、地址、数据等传输到存储器装置2200。例如,在读取操作中,存储器控制器2100可将命令、地址等传输到存储器装置2200。
存储器控制器2100可利用K位(K是自然数)体系结构来实施。也就是说,存储器控制器2100可以K个位为单位接收、生成或传输命令、地址、数据等。当使用K位体系结构时,存储器控制器2100可使用K位体系结构寄存器执行各种计算。K位体系结构寄存器是指长度为K个位的寄存器。
存储器控制器2100可分配K位体系结构寄存器的全部位或一些位来对指示事件发生次数的目标计数值进行计数。例如,存储器控制器2100可对存储块或超级块被访问的次数进行计数。例如,访问可以是编程操作、读取操作和擦除操作中的任意一种。
存储器控制器2100可将超级块划分为多个单元区域,并将一个K位体系结构寄存器的位分配给超级块和构成相应超级块的多个单元区域。存储器控制器2100可使用分配给超级块和多个单元区域的位来对目标计数值进行计数,并且基于计数结果执行操作。该操作可以是读取回收操作。读取回收操作可以是将读取次数超过目标计数值的超级块的数据重新编程在另一超级块中的操作。稍后将参照相关附图详细描述存储器控制器2100的操作。
存储器装置2200可根据从存储器控制器2100接收的命令执行操作。例如,存储器装置2200可从存储器控制器2100接收编程命令、读取命令、擦除命令等。存储器装置2200可包括存储器单元阵列(未示出),该存储器单元阵列具有被组织在诸如存储块的区域中的多个存储器单元。每个存储块可包括多个页面。在本公开的实施例中,存储器装置2200可以是NAND型闪速存储器,然而,本发明不限于此。
图2是图1中所示的存储器控制器2100的详细示图。
参照图2,存储器控制器2100可包括主机接口2110、错误校正码(ECC)组件2120、存储器接口2130、缓冲存储器2140、中央处理单元(CPU)2150、策略存储组件2160和内部存储器2170。CPU 2150可控制主机接口2110、ECC组件2120、存储器接口2130、缓冲存储器2140、策略存储组件2160和内部存储器2170。
主机接口2110可使用通信协议与主机1000交换数据。
ECC组件2120可在编程操作或读取操作中执行用于错误校正的编码和解码。
存储器接口2130可使用通信协议与存储器装置2200通信。
缓冲存储器2140可在存储器控制器2100控制存储器装置2200时临时存储数据。例如,直到编程操作完成之前,从主机1000接收的数据可临时存储在缓冲存储器2140中。而且,在读取操作中从存储器装置2200读取的数据可临时存储在缓冲存储器2140中。在一些实施例中,缓冲存储器2140可设置在存储器控制器2100的外部。
CPU 2150可执行各种计算或生成命令和地址,以便控制存储器装置2200的操作。
CPU 2150可包括命令发生器2151、寄存器分配器2152、第一计数器组2153、第二计数器2154和计数器管理器2155。
命令发生器2151可生成用于编程操作、读取操作、擦除操作、挂起操作、回拷(copy-back)操作和读取回收操作的各种命令以及与各个命令对应的地址。
寄存器分配器2152可将一个超级块划分为多个单元区域。寄存器分配器2152可分配K位体系结构寄存器的K个位之中的N(N是自然数)个位以对应于构成超级块的多个单元区域中的每一个。构成一个超级块的单元区域的数量可由寄存器分配器2152根据设定参考值来确定。在实施例中,可从外部源接收关于单元区域的数量的信息。单元区域可包括构成超级块的存储块之中的至少一个存储块。分配给每个单元区域的N个位可用于第一计数器组2153中的多个第一计数器2153a和2153b中的每一个,以计数多达第一阈值。因此,对应于每个单元区域分配N个位可表示N个位被分配给第一计数器2153a和2153b中的每一个,使得与各个单元区域对应的第一计数器2153a和2153b可计数多达第一阈值。第一阈值可以是可使用N个位计数的最大值,或者小于最大值的值。
寄存器分配器2152可分配K位体系结构寄存器的剩余位或剩余位中的一些以对应于超级块。当单元区域的数量是M(M是自然数)时,剩余位的长度可以是[K-(M×N)]。因此,对应于超级块分配的位可以是[K-(M×N)]个位或数量小于[K-(M×N)]个位的位。对应于超级块分配的位可用于第二计数器2154以计数第二阈值。也就是说,对应于超级块分配剩余位可表示剩余位被分配给第二计数器2154,使得第二计数器2154可计数多达第二阈值。第二阈值可以是可使用剩余位计数的最大值,或者小于最大值的值。
当寄存器分配器2152分配N个位以对应于多个单元区域中的每一个时,寄存器分配器2152可确定N,使得通过将第一阈值和第二阈值相乘获得的值可表示目标计数值。当确定多个N值满足乘法条件时,寄存器分配器2152可选择确定的N值之中的最大N。而且,寄存器分配器2152可确定第二阈值,使得通过将第一阈值和第二阈值相乘获得的值可表示目标计数值。目标计数值可以是待执行的读取回收操作的参考值。
第一计数器组2153可包括多个第一计数器2153a和2153b。第一计数器2153a和2153b中的每一个可被分配给构成一个超级块的多个单元区域之中的任意一个单元区域。例如,当构成一个超级块的单元区域的数量是M时,第一计数器2153a和2153b的数量可以是M。为了描述的清楚和方便起见,图2仅示出两个第一计数器2153a和2153b。第一计数器2153a和2153b可以软件实施,并且CPU 2150可生成第一计数器2153a和2153b以对应于构成一个超级块的单元区域的数量。为此,CPU 2150可具有能够生成计数器的算法。第一计数器2153a和2153b中的每一个可使用分配给与第一计数器2153a和2153b中的每一个对应的单元区域的位来计数多达第一阈值。
第一计数器2153a和2153b中的每一个每当相应单元区域被访问时,可使计数值增加“1”。例如,每当与第一计数器2153a和2153b中的每一个对应的单元区域被读取时,第一计数器2153a和2153b中的每一个可使计数值增加“1”。为此,寄存器分配器2152可管理超级块和多个单元区域的地址。而且,寄存器分配器2152可管理关于第一计数器2153a和2153b中的每一个对应于哪个单元区域的信息。例如,寄存器分配器2152可确定第一计数器2153a对应于多个单元区域之中的第一单元区域且第一计数器2153b对应于多个单元区域之中的第二单元区域,并且这种对应关系可由寄存器分配器2152来管理。因此,寄存器分配器2152可通过检查与由命令发生器2151生成的读取命令对应的地址来检查对多个单元区域之中的哪个单元区域执行读取操作。而且,当已经对单元区域执行读取操作时,寄存器分配器2152可通知与已经执行读取操作的单元区域对应的第一计数器(例如,第一计数器2153a)发生读取操作。因此,接收到已经对与第一计数器(例如,第一计数器2153a)对应的单元区域执行读取操作的通知的第一计数器可使自身的计数值增加“1”。
在属于第一计数器组2153的多个第一计数器2153a和2153b之中的达到阈值的第一计数器(例如,第一计数器2153a)可通知计数器管理器2155第一计数器已经达到第一阈值。计数器管理器2155可指示属于第一计数器组2153的全部第一计数器2153a和2153b初始化它们的计数值。因此,属于第一计数器组2153的全部第一计数器2153a和2153b可初始化它们的计数值。也就是说,每当属于第一计数器组2153的多个第一计数器2153a和2153b之中的任意一个第一计数器(例如,第一计数器2153a)的计数值达到第一阈值时,可初始化属于第一计数器组2153的全部第一计数器2153a和2153b。
可分配第二计数器2154以对应于一个超级块。与第一计数器组2153一样,第二计数器2154可以软件实施,并且由CPU 2150生成。每当属于第一计数器组2153的多个第一计数器2153a和2153b之中的任意一个计数器(例如,第一计数器2153a)的计数值达到阈值时,第二计数器2154可使计数值增加“1”。例如,当属于第一计数器组2153的多个第一计数器2153a和2153b之中的第一计数器(例如,第一计数器2153a)的计数值达到第一阈值时,第一计数器(例如,第一计数器2153a)可通知第二计数器2154第一计数器已经达到第一阈值。因此,第二计数器2154可使自身的计数值增加“1”。当第二计数器2154的计数值达到第二阈值时,第二计数器2154可通知命令发生器2151和计数器管理器2155中的至少一个自身的计数值已经达到第二阈值。因此,命令发生器2151可生成用于执行读取回收操作的命令、地址等,并将它们传输到存储器装置2200。计数器管理器2155可指示属于第一计数器组1253的全部第一计数器2153a和2153b以及第二计数器2154初始化它们的计数值。
寄存器分配器2152可检查由命令发生器2151生成的命令和地址。当针对超级块的擦除命令被生成时,寄存器分配器2152可通知计数器管理器2155已经执行对超级块的擦除操作。因此,计数器管理器2155可指示属于第一计数器组2153的全部第一计数器2153a和2153b以及第二计数器2154初始化它们的计数值。也就是说,每当擦除超级块时,可初始化属于第一计数器组2153的全部第一计数器2153a和2153b以及第二计数器2154。
寄存器分配器2152可基于定义与超级块的擦除次数对应的目标计数值的策略,调整对应于超级块和构成相应超级块的单元区域中的每一个分配的位数。也就是说,寄存器分配器2152可确定N,使得通过将第一阈值和第二阈值相乘获得的值可表示由策略定义的、与超级块的擦除次数对应的目标计数值。例如,当超级块的擦除次数增加时,寄存器分配器2152可增加对应于单元区域分配的位数,并减少对应于超级块分配的位数。换言之,随着超级块的擦除次数增加,第一阈值可增大,并且第二阈值可减小。
寄存器分配器2152可根据超级块是用于存储随机数据的超级块(随机块)还是用于存储顺序数据的超级块(顺序块)来确定单元区域的数量。也就是说,寄存器分配器2152可根据超级块是存储随机数据还是顺序数据将超级块划分为不同数量的单元区域。例如,寄存器分配器2152可确定构成随机块的单元区域的数量大于构成顺序块的单元区域的数量。例如,顺序数据可以是在多个存储块中记录的数据(例如,构成大容量文件的数据)。例如,随机数据可以是记录在一个存储块中的数据(例如,构成小容量文件的数据)。为此,寄存器分配器2152可管理关于超级块是随机块还是顺序块的信息。例如,当对超级块执行编程操作时,寄存器分配器2152可检查是存储顺序数据还是存储随机数据,并管理根据检查确定的信息。例如,寄存器分配器2152可检查由命令发生器2151生成的编程命令和与相应编程命令对应的地址,并检查一次编程操作对多少存储块执行。当确定一次编程操作对一个存储块执行时,寄存器分配器2152可将包括执行相应编程操作的存储块的超级块管理为随机块。当确定一次编程操作对多个存储块执行时,寄存器分配器2152可将包括执行相应编程操作的多个存储块的超级块管理为顺序块。因此,寄存器分配器2152可参考对应于超级块管理的信息来确定相应超级块将被划分为多少单元区域。
策略存储组件2160可存储定义与超级块的擦除次数对应的目标计数值的策略。
内部存储器2170可用作用于存储操作存储器控制器2100所需的各种信息的存储装置。内部存储器2170可包括映射表。例如,物理到逻辑地址信息和逻辑到物理地址信息可存储在映射表中。
图3是图1中所示的存储器装置2200的详细示图。
存储器控制器2100可与参照图1和图2描述的存储器控制器2100具有相同的配置,并执行相同的操作。
在参照图3描述实施例时,此处省略与参照图1和图2描述的布置共同的内容。
参照图3,存储器控制器2100可通过多个通道CH1、......和CHk联接到存储器装置2200。存储器装置2200可包括多个管芯D1至Dj(j是正整数)。多个管芯D1至Dj可通过多个通道CH1、......和CHk与存储器控制器2100通信。例如,多个管芯D1至Dj可联接到通道CH1至CHk中的每一个。联接到不同通道的管芯可彼此独立地操作。例如,联接到通道CH1的管芯D1和联接到通道CHk的管芯D1可同时操作。
图4是示出图3中所示的管芯的示图。图3中所示的管芯D1至Dj可彼此相同地配置,因此将描述管芯D1至Dj之中的任意一个管芯D1作为示例。
参照图4,管芯D1可包括控制逻辑2210、外围电路2220和存储器单元阵列2240。外围电路2220可包括电压生成电路2222、行解码器2224、输入/输出电路2226、列解码器2228、页面缓冲器组2232和电流感测电路2234。
控制逻辑2210可在图2中所示的存储器控制器2100的控制下控制外围电路2220。控制逻辑2210可响应于通过输入/输出电路2226从存储器控制器2100接收的命令CMD和地址ADD来控制外围电路2220。例如,控制逻辑2210可响应于命令CMD和地址ADD,输出操作信号OP_CMD、行地址RADD、页面缓冲器控制信号PBSIGNALS、允许位VRY_BIT<#>以及列地址CADD。控制逻辑2210可响应于从电流感测电路2234接收的通过信号PASS或失败信号FAIL来确定验证操作是已通过还是已失败。
外围电路2220可执行用于将数据存储在存储器单元阵列2240中的编程操作、用于输出存储在存储器单元阵列2240中的数据的读取操作以及用于擦除存储在存储器单元阵列2240中的数据的擦除操作。
电压生成电路2222可响应于从控制逻辑2210接收的操作信号OP_CMD生成在编程操作、读取操作和擦除操作中使用的各种操作电压Vop。例如,电压生成电路2222可通过全局线将编程电压、验证电压、通过电压、补偿编程电压、读取电压、擦除电压、导通电压等传送到行解码器2224。
行解码器2224可响应于从控制逻辑2210接收的行地址RADD,将操作电压Vop传送到联接到存储器单元阵列2240的存储块之中的选择的存储块的局部线LL。局部线LL可包括局部字线、局部漏极选择线和局部源极选择线。另外,局部线LL可包括联接到存储块的诸如源极线的各种线。
输入/输出电路2226可将通过输入/输出线IO从存储器控制器2100接收的命令CMD和地址ADD传送到控制逻辑2210,或者与列解码器2228交换数据DATA。
列解码器2228可响应于从控制逻辑2210接收的列地址CADD,在输入/输出电路2226和页面缓冲器组2232之间传送数据。例如,列解码器2228可通过数据线DL与页面缓冲器PB1至PBm交换数据,或通过列线CL与输入/输出电路2226交换数据。
页面缓冲器组2232可联接到共同联接到存储块BLK1至BLKi的位线BL1至BLm。页面缓冲器组2232可包括联接到位线BL1至BLm的多个页面缓冲器PB1至PBm。例如,单页面缓冲器可联接到位线中的每一个。页面缓冲器PB1至PBm可响应于从控制逻辑2210接收的页面缓冲器控制信号PBSIGNALS而操作。例如,在编程操作中,页面缓冲器PB1至PBm可临时存储从存储器控制器2100接收的编程数据,并且根据编程数据调整施加到位线BL1至BLm的电压。而且,在读取操作中,页面缓冲器PB1至PBm可临时存储通过位线BL1至BLm接收的数据,或者感测位线BL1至BLm的电压或电流。页面缓冲器组2232可与平面2240a和2240b中的每一个对应地设置。
在读取或验证操作中,电流感测电路2234可响应于从控制逻辑2210接收的允许位VRY_BIT<#>而生成参考电流,并且通过将从页面缓冲器组2232接收的感测电压VPB与对应于参考电流的参考电压进行比较来输出通过信号PASS或失败信号FAIL。
存储器单元阵列2240可包括多个平面2240a和2240b。虽然图4示出了两个平面2240a和2240b,但是包括在管芯D1中的平面的数量不限于此。多个平面2240a和2240b中的每一个可包括存储数据的多个存储块BLK1至BLKi。用户数据和执行存储器装置2200的操作所需的各种信息可存储在存储块BLK1至BLKi中。存储块BLK1至BLKi可以二维结构或三维结构来实施,并且可彼此相同地配置。
图5是示出超级块的布置的示图。
在示例中,图5示出以下情况:存储器装置包括四个管芯D1、D2、D3和D4,每个管芯包括两个平面Plane 1和Plane 2,每个平面包括i个存储块BLK1至BLKi。包括在存储器装置2200中的管芯的数量和包括在每个管芯中的平面的数量不限于所示的布置。
存储器控制器2100可对属于管芯D1、D2、D3和D4的存储块进行分组,以将分组的存储块管理为一个超级块。例如,属于管芯1 D1的Plane 1的存储块BLK1、属于管芯1 D1的Plane 2的存储块BLK1、属于管芯2 D2的Plane 1的存储块BLK1、属于管芯2 D2的Plane 2的存储块BLK1、属于管芯3 D3的Plane 1的存储块BLK1、属于管芯3 D3的Plane 2的存储块BLK1、属于管芯4 D4的Plane 1的存储块BLK1和属于管芯4 D4的Plane 2的存储块BLK1可被分组并管理为一个超级块。
图6是示出根据本公开的实施例的构成单个超级块的单元区域的示图。
为清楚起见,在图6中,仅示出图5中所示的超级块之中的一个超级块(例如,超级块1)。
超级块可被划分为多个单元区域。在图6中,示出将一个超级块(超级块1)划分为四个单元区域(单元区域1-4)的情况作为示例。存储器控制器2100可根据设定参考值来确定构成一个超级块的单元区域的数量,或者从外部源接收这样的信息。
图6示出了单元区域中的每一个包括两个存储块的示例。然而,在本公开的一些实施例中,可改变包括在单元区域中的每一个中的存储块的数量。例如,一个单元区域可包括一个存储块,并且一个超级块可配置有八个单元区域。在另一示例中,一个单元区域可包括四个存储块,并且一个超级块可配置有两个单元区域。
图7是示出示例性存储块的示图。
参照图7,在存储块BLKi中,并联布置的多个字线WL1至WL16可联接在第一选择线和第二选择线之间。第一选择线可以是源极选择线SSL,第二选择线可以是漏极选择线DSL。具体地,存储块BLKi可包括联接在位线BL1至BLm与源极线SL之间的多个串ST。位线BL1至BLm可分别联接到串ST,并且源极线SL可共同联接到串ST。串ST可彼此相同地配置,因此,将详细描述联接到第一位线BL1的串ST作为示例。
串ST可包括彼此串联联接在源极线SL和第一位线BL1之间的源极选择晶体管SST、多个存储器单元F1至F16以及漏极选择晶体管DST。至少一个源极选择晶体管SST和至少一个漏极选择晶体管DST可包括在一个串ST中,并且多于附图中所示的16个存储器单元F1至F16的存储器单元可包括在一个串ST中。
源极选择晶体管SST的源极可联接到源极线SL,并且漏极选择晶体管DST的漏极可联接到第一位线BL1。存储器单元F1至F16可串联联接在源极选择晶体管SST和漏极选择晶体管DST之间。包括在不同串ST中的源极选择晶体管SST的栅极可联接到源极选择线SSL,包括在不同串ST中的漏极选择晶体管DST的栅极可联接到漏极选择线DSL,包括在不同串ST中的存储器单元F1到F16的栅极可联接到多个字线WL1至WL16。包括在不同串ST中的存储器单元之中、联接到相同字线的一组存储器单元可以是物理页面PPG。因此,数量对应于字线WL1至WL16的数量的物理页面PPG可包括在存储块BLKi中。
一个存储器单元可存储一位数据。这被称为单层单元(SLC)。一个物理页面PPG可存储一个逻辑页面(LPG)数据。一个LPG数据可包括数量对应于包括在一个物理页面PPG中的单元的数量的数据位。可选地,一个存储器单元可存储两位或更多位数据。这被称为多层单元(MLC)。一个物理页面PPG可存储两个或更多个LPG数据。
可同时对包括在一个物理页面PPG中的多个存储器单元进行编程。换言之,存储器装置2200可以物理页面PPG为单位执行编程操作。可同时擦除包括在一个存储块中的多个存储器单元。换言之,存储器装置2200可以存储块BLKi为单位执行擦除操作。因此,存储块BLKi可被称为擦除单元块。例如,为了更新存储在一个存储块BKLi中的一部分数据,存储在相应存储块BLKi中的全部数据被读取,并且读取的数据之中待更新的数据被修改。然后,全部数据被编程在另一存储块BLKi中。
图8是示出三维配置的存储块的实施例的示图。
参照图8,存储器单元阵列2240可包括多个存储块BLK1至BLKi。将描述第一存储块BLK1作为示例。第一存储块BLK1可包括多个串ST11至ST1m和ST21至ST2m。在实施例中,多个串ST11至ST1m和ST21至ST2m中的每一个可形成为“U”形。在第一存储块BLK1中,m个串可布置在行方向(X方向)上。虽然图8示出在列方向(Y方向)上布置两个串,但这是为清楚起见;可在列方向(Y方向)上布置三个或更多个串。
多个串ST11至ST1m和ST21至ST2m中的每一个可包括至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn、管道晶体管PT和至少一个漏极选择晶体管DST。
源极选择晶体管SST和漏极选择晶体管DST以及存储器单元MC1至MCn可以具有彼此类似的结构。例如,源极选择晶体管SST和漏极选择晶体管DST以及存储器单元MC1至MCn中的每一个可包括沟道层、隧道绝缘层、电荷捕获层和阻挡绝缘层。例如,可在每个串中设置用于提供沟道层的柱(pillar)。例如,可在每个串中设置用于提供沟道层、隧道绝缘层、电荷捕获层和阻挡绝缘层中的至少一个的柱。
每个串的源极选择晶体管SST可联接在源极线SL和存储器单元MC1至MCp之间。
在实施例中,布置在相同行中的串的源极选择晶体管可联接至在行方向上延伸的源极选择线,并且布置在不同行中的串的源极选择晶体管可联接至不同的源极选择线。在图8中,第一行的串ST11至ST1m的源极选择晶体管可联接至第一源极选择线SSL1。第二行的串ST21至ST2m的源极选择晶体管可联接至第二源极选择线SSL2。
在另一实施例中,串ST11至ST1m和ST21至ST2m的源极选择晶体管可共同地联接至一个源极选择线。
每个串的第一至第n存储器单元MC1至MCn可联接在源极选择晶体管SST和漏极选择晶体管DST之间。
第一至第n存储器单元MC1至MCn可被划分成第一至第p存储器单元MC1至MCp以及第p+1至第n存储器单元MCp+1至MCn。第一至第p存储器单元MC1至MCp可顺序地布置在垂直方向(Z方向)上,并且彼此串联联接在源极选择晶体管SST和管道晶体管PT之间。第p+1至第n存储器单元MCp+1至MCn可顺序地布置在垂直方向(Z方向)上,并且彼此串联联接在管道晶体管PT和漏极选择晶体管DST之间。第一至第p存储器单元MC1至MCp和第p+1至第n存储器单元MCp+1至MCn可通过管道晶体管PT彼此联接。每个串的第一至第n存储器单元MC1至MCn的栅极可分别联接至第一至第n字线WL1至WLn。
在实施例中,第一至第n存储器单元MC1至MCn中的至少一个可用作虚设存储器单元。当设置虚设存储器单元时,可稳定地控制相应串的电压或电流。每个串的管道晶体管PT的栅极可联接至管线PL。
每个串的漏极选择晶体管DST可联接至位线和存储器单元MCp+1至MCn。布置在行方向上的串可联接至在行方向上延伸的漏极选择线。第一行的串ST11至ST1m的漏极选择晶体管可联接至第一漏极选择线DSL1。第二行的串ST21至ST2m的漏极选择晶体管可联接至第二漏极选择线DSL2。
布置在列方向上的串可联接至在列方向上延伸的位线。在图8中,第一列的串ST11和ST21可联接至第一位线BL1。第m列的串ST1m和ST2m可联接至第m位线BLm。
布置在行方向上的串中联接至相同字线的存储器单元可构成一个页面。例如,第一行的串ST11至ST1m中联接至第一字线WL1的存储器单元可构成一个页面。第二行的串ST21至ST2m中联接至第一字线WL1的存储器单元可构成另一页面。当漏极选择线DSL1和DSL2中的任意一个被选择时,布置在一个行方向上的串可被选择。当字线WL1至WLn中的任意一个被选择时,选择的串中的一个页面可被选择。
图9是示出三维配置的存储块的另一实施例的示图。
参照图9,存储器单元阵列2240可包括多个存储块BLK1至BLKi。将描述第一存储块BLK1作为示例。第一存储块BLK1可包括多个串ST11'至ST1m'和ST21'至ST2m'。多个串ST11'至ST1m'和ST21'至ST2m'中的每一个可沿垂直方向(Z方向)延伸。在第一存储块BLK1中,m个串可布置在行方向(X方向)上。虽然图9示出在列方向(Y方向)上布置两个串,但这是为清楚起见;可在列方向(Y方向)上布置三个或更多个串。
多个串ST11'至ST1m'和ST21'至ST2m'中的每一个可包括至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn以及至少一个漏极选择晶体管DST。
每个串的源极选择晶体管SST可联接在源极线SL和存储器单元MC1至MCn之间。布置在相同行中的串的源极选择晶体管可联接至相同的源极选择线。布置在第一行中的串ST11'至ST1m'的源极选择晶体管可联接至第一源极选择线SSL1。布置在第二行中的串ST21'至ST2m'的源极选择晶体管可联接至第二源极选择线SSL2。在另一实施例中,串ST11'至ST1m'和ST21'至ST2m'的源极选择晶体管可共同地联接至一个源极选择线。
每个串的第一至第n存储器单元MC1至MCn可彼此串联联接在源极选择晶体管SST和漏极选择晶体管DST之间。第一至第n存储器单元MC1至MCn的栅极可分别联接至第一至第n字线WL1至WLn。
在实施例中,第一至第n存储器单元MC1至MCn中的至少一个可用作虚设存储器单元。当设置虚设存储器单元时,可稳定地控制相应串的电压或电流。因此,存储在第一存储块BLK1中的数据的可靠性可得到提高。
每个串的漏极选择晶体管DST可联接在位线和存储器单元MC1至MCn之间。布置在行方向上的串的漏极选择晶体管DST可联接至在行方向上延伸的漏极选择线。第一行的串ST11'至ST1m'的漏极选择晶体管DST可联接至第一漏极选择线DSL1。第二行的串ST21'至ST2m'的漏极选择晶体管DST可联接至第二漏极选择线DSL2。
因此,除了从每个串排除管道晶体管PT之外,图9的第一存储块BLK1可与图8的第一存储块BLK1具有相同的电路。
图10是示出根据本公开的实施例的存储器控制器的操作方法的流程图。
参照图10描述的实施例可应用于参照图1至图3描述的存储器控制器2100。
在步骤1001中,存储器控制器可分配K位体系结构寄存器的K个位之中的N个位,以对应于构成一个超级块的多个单元区域中的每一个。这可表示N个位被分配给与每个单元区域对应的第一计数器。当N个位被分配给第一计数器时,第一计数器可计数多达第一阈值,该第一阈值为可使用N个位计数的最大值。例如,当K位体系结构寄存器是32位体系结构寄存器,并且构成一个超级块的单元区域的数量是4时,存储器控制器可将4个位分配给每个单元区域。因此,第一计数器可计数多达16,16是第一阈值。当第一计数器以软件实施时,存储器控制器可生成与每个单元区域对应的第一计数器。例如,当单元区域的数量是4时,可生成四个第一计数器。
在步骤1003中,存储器控制器可分配K位体系结构寄存器的K个位之中的剩余位以对应于一个超级块。例如,当K位体系结构寄存器是32位体系结构寄存器,构成一个超级块的单元区域的数量是4,并且4个位被分配给每个单元区域时,剩余位可以是16个位。存储器控制器可将剩余位的全部或一部分分配给一个超级块。这可表示剩余位被分配给与超级块对应的第二计数器。例如,16个位被分配给第二计数器,该第二计数器可计数可使用16个位计数的最大值内的第二阈值。当第二计数器以软件实施时,存储器控制器可生成与超级块对应的第二计数器。
可同时执行步骤1001和步骤1003,并且存储器控制器可确定被分配以对应单元区域中的每一个的位的数量N以及第二阈值,使得通过将第一阈值和第二阈值相乘获得的值表示目标计数值。稍后将参照图11对此进行描述。
在步骤1005至步骤1013中,假设访问次数是读取访问次数,例如读取次数,并且目标计数值是待执行的读取回收操作的参考值。
在步骤1005中,每当对构成超级块的多个单元区域之中的单元区域执行读取操作时,存储器控制器可使与相应单元区域对应的第一计数器的第一计数值增加“1”。
在步骤1007中,存储器控制器可检查第一计数值是否已经达到第一阈值。这可表示第一计数值从十进制数“0”变为十进制数“2N-1”的情况。例如,这可表示,当被分配给第一计数器的位的数量N为4时,在第一计数值从二进制数“0000”变为二进制数“1111”时,第一计数器的计数值已经达到第一阈值。当第一计数值已经达到第一阈值(步骤1007为“是”)时,可执行步骤1009,否则,方法返回到步骤1005。
在步骤1009中,存储器控制器可初始化全部第一计数值并使第二计数值增加“1”。也就是说,每当第一计数值中的任意一个达到第一阈值时,存储器控制器可将全部第一计数值初始化为十进制数“0”。
在步骤1011中,存储器控制器可检查第二计数值是否已经达到第二阈值。当第二计数值已经达到第二阈值时,可执行步骤1013,否则,方法返回到步骤1005。
在步骤1013中,存储器控制器可对超级块执行读取回收操作。存储器控制器可在读取回收操作中初始化全部第一计数值和第二计数值。
图11是示出根据本公开的实施例的存储器控制器的操作方法的流程图。
在图11中,示出了使用32位体系结构寄存器并且一个超级块配置有四个单元区域的情况作为示例。
如上所述,存储器控制器可分配K位体系结构寄存器的K个位之中的N个位以对应于每个单元区域,并且分配剩余位以对应于超级块。另外,如上所述,可确定N,使得通过将作为可使用N个位计数的最大值的第一阈值和可使用剩余位计数的第二阈值相乘获得的值表示目标计数值。而且,存储器控制器可确定第二阈值,使得由第一阈值和第二阈值获得的值表示目标计数值。
例如,存储器控制器可选择满足等式1的N。
<等式1>
2N×2K-MN≥目标值
在等式1中,N是每单元区域分配的位数,K是K位体系结构寄存器的位数,M是单元区域的数量。
例如,当使用32位体系结构寄存器,单元区域的数量是4,并且目标计数值是200000时,可以如等式2和等式3所示计算等式1。
<等式2>
2N×232-4N≥200000,可被简化成
<等式3>
232-3N≥200000
满足等式3的N值是1、2、3和4。因此,存储器控制器可每单元区域分配1个位、2个位、3个位或4个位。
存储器控制器可将满足等式3的N值之中的最大值分配给每个单元区域。也就是说,在上面的示例中,存储器控制器可对每单元区域分配4个位。而且,存储器控制器可分配作为剩余位的16个位以对应于超级块。当确定将分配给单元区域中的每一个的位的数量N时,存储器控制器可确定第二阈值,使得由第一阈值和第二阈值获得的值表示目标计数值。当每单元区域分配4个位时,第一阈值为16,因此可确定通过将作为目标计数值的200000除以16获得的值12500为第二阈值。
当选择大的N值时,存储器系统的性能可得到提高。将参照图12对此进行描述。
图12是示出根据每单元区域分配的位数的差异的示图。
图12的附图标记1202表示2个位被分配给四个单元区域中的每一个的情况。当读取回收操作的目标计数值是200000时,每单元区域的第一阈值是4,因此,第二阈值是50000。
当单元区域4的读取次数是4并且单元区域1至3中的每一个的读取次数是3时,第二计数值可增加“1”。也就是说,当单元区域(即,单元区域1至4)的总读取次数是13时,第二计数值可增加“1”。当这种情况反复发生时,在全部单元区域(即,单元区域1至4)的总读取次数是650000(13×50000)时,可执行读取回收操作。
图12的附图标记1204表示将4个位分配给四个单元区域中的每一个的情况。当读取回收操作的目标计数值与附图标记1202的情况一样是200000时,每单元区域的第一阈值是16,因此,第二阈值是12500。
当单元区域4的读取次数是16并且单元区域1至3中的每一个的读取次数是15时,第二计数值可增加“1”。也就是说,当单元区域(即,单元区域1至4)的总读取次数是61时,第二计数值可增加“1”。当这种情况反复发生时,在全部单元区域(即,单元区域1至4)的总读取次数是762500(61×12500)时,可执行读取回收操作。
也就是说,由附图标记1202指示的情况与由附图标记1204指示的情况的相同之处在于,当单元区域4的读取次数是200000时执行读取回收操作。然而,相比于由附图标记1202指示的情况,在由附图标记1204指示的情况下,读取回收操作可较不频繁地执行,其中由附图标记1204指示的情况下每单元区域分配的位数大于由附图标记1202指示的情况下每单元区域分配的位数。
每当擦除超级块时,可初始化第一计数值和第二计数值,并且可根据超级块的擦除次数来改变第一阈值和第二阈值。将参照图13对此进行描述。
图13是示出根据本公开的实施例的存储器控制器的操作方法的流程图。
可在执行图10中所示的至少一些步骤时,同时执行图13中所示的至少一些步骤。
在步骤1301中,存储器控制器可检查是否已经生成针对超级块的擦除命令。当生成针对超级块的擦除命令时,存储器控制器可初始化第一计数值和第二计数值。随后,可执行步骤1303。当未生成针对超级块的擦除命令时,可执行步骤1301。
在步骤1303中,存储器控制器可更新超级块的擦除次数。
在步骤1305中,存储器控制器可确定是否需要重新分配K位体系结构寄存器的位。可基于设定策略进行该确定。例如,可以在策略中定义根据超级块的擦除次数应用不同的目标计数值。例如,可以在策略中定义当超级块的擦除次数少于100并且超级块的读取次数为200000时执行读取回收操作,并且当超级块的擦除次数为100或更多并且超级块的读取次数是40000时执行读取回收操作。也就是说,策略可定义随着超级块的擦除次数增加,目标计数值被设置得更少。存储器控制器可参考策略确定是否需要重新分配K位体系结构寄存器的位。当确定需要重新分配K位体系结构寄存器的位时,可执行步骤1307,否则,可执行步骤1301。
在步骤1307中,存储器控制器可分配K位体系结构寄存器的位以对应于构成超级块的多个单元区域和超级块。可使用与参照图10的步骤1001和1003描述的相同的原理来进行分配。然而,由于目标计数值改变,因此可以改变分配给单元区域和超级块的位数。例如,当目标计数值减小时,用于对第一阈值和第二阈值进行计数的位数被改变。如上所述,当用于对第一阈值进行计数的位数减少时,存储器系统的可靠性可得到提高。因此,可重新分配与单元区域中的每一个和超级块对应的位数。将参照图14对此进行描述。
图14是示出根据擦除次数不同地分配的位数的示图。
如图14所示,在策略中定义当擦除次数少于100并且目标计数值达到200000时执行读取回收操作,并且当擦除次数为100或更多并且目标计数值为40000时执行读取回收操作。另外,在该示例中,构成超级块的单元区域的数量是4,并且使用32位体系结构寄存器。
图14的附图标记1402表示当擦除次数少于100时分配给每个单元区域和超级块的位数。当擦除次数少于100时,目标计数值是200000。因此,4个位可被分配给每个单位区域,并且16个位可被分配给超级块。这与参照图11描述的相同。
图14的附图标记1404表示当擦除次数为100或更多时,分配给每个单元区域和超级块的位数。当擦除次数为100或更多时,目标计数值是40000。因此,需要调整分配给每个单元区域和超级块的位数。
因此,等式3可以如等式4所示。
<等式4>
232-3N≥40000
满足等式4的N值是1、2、3、4和5。因此,存储器控制器可每单元区域分配1个位、2个位、3个位、4个位或5个位。如参照图11和图12所述,当N值增加时,存储器系统的性能得到改善。因此,存储器控制器可选择满足等式4的N值之中的最大值5。也就是说,存储器控制器可将5个位分配给单元区域中的每一个,并且将12个位分配给超级块。存储器控制器可调整第二阈值以适应改变的位数。在上述示例中,第二阈值可以是1250。也就是说,当第二计数值是1250时,存储器控制器可执行读取回收操作。
如上所述,可根据超级块是顺序块还是随机块不同地确定单元区域的数量。将参照图15对此进行描述。
图15是示出根据超级块是顺序块还是随机块不同地确定的单元区域的数量的示图。
图15的附图标记1502表示超级块配置有四个单元区域并且单元区域中的每一个包括两个存储块的情况。为清楚起见,针对图15的附图标记1502仅示出了一个单元区域(单元区域1)。
当超级块是随机块时,在对包括在单元区域1中的存储块BLK1和BLK2之中的任意一个存储块执行读取操作时,与整个单元区域1对应的计数值增加。也就是说,当存储块BLK1和BLK2的总读取次数是16时,第二计数值可增加“1”。当这种情况反复发生时,在存储块BLK1和BLK2的总读取次数是200000(16×12500)时,可执行读取回收操作。
图15的附图标记1504表示超级块配置有八个单元区域并且单元区域中的每一个包括一个存储块的情况。为清楚起见,针对图15的附图标记1504仅示出了两个单元区域(单元区域1和单元区域2)。
当超级块是随机块时,在对存储块BLK1执行读取操作时,与单元区域1对应的计数值增加,并且在对存储块BLK2执行读取操作时,与单元区域2对应的计数值增加。当单元区域2的读取次数是4并且单元区域1的读取次数是3时,第二计数值可增加“1”。也就是说,当存储块BLK1和BLK2的总读取次数是7时,第二计数值可增加“1”。当这种情况反复发生时,在存储块BLK1和BLK2的总读取次数是350000(7×50000)时,可执行读取回收操作。
也就是说,当比较由附图标记1502表示的情况和由附图标记1504表示的情况时,当随机块中的单元区域的数量增加时,可较不频繁地执行读取回收操作。
图16是示出包括图1至图3中所示的存储器控制器的存储器系统的另一示例的示图。
参照图16,存储器系统30000可被实施为蜂窝电话、智能电话、平板PC、个人数字助理(PDA)或无线通信装置。存储器系统30000可包括存储器装置2200和能够控制存储器装置2200的操作的存储器控制器2100。图16中所示的存储器装置2200可对应于图1至图3中所示的存储器装置2200。图16中所示的存储器控制器2100可对应于图1至图3中所示的存储器控制器2100。
存储器控制器2100可在处理器3100的控制下控制存储器装置2200的数据访问操作,例如编程操作、擦除操作、读取操作等。
编程在存储器装置2200中的数据可在存储器控制器2100的控制下通过显示器3200输出。
无线电收发器3300可通过天线ANT传输/接收无线电信号。例如,无线电收发器3300可将通过天线ANT接收的无线电信号转变成可由处理器3100处理的信号。因此,处理器3100可处理从无线电收发器3300输出的信号,并将处理的信号传输到存储器控制器2100或显示器3200。存储器控制器2100可将由处理器3100处理的信号传输到存储器装置2200。而且,无线电收发器3300可将从处理器3100输出的信号转变成无线电信号,并且通过天线ANT将转变的无线电信号输出到外部装置。输入装置3400是能够输入用于控制处理器3100的操作的控制信号或待由处理器3100处理的数据的装置,并且可被实施为诸如触摸板或计算机鼠标的定点装置、小键盘或键盘。处理器3100可控制显示器3200的操作,使得可通过显示器3200输出从存储器控制器2100输出的数据、从无线电收发器3300输出的数据或从输入装置3400输出的数据。
在一些实施例中,能够控制存储器装置2200的操作的存储器控制器2100可被实施为处理器3100的一部分或被实施为与处理器3100分离的芯片。
图17是示出包括图1至图3中所示的存储器控制器的存储器系统的另一示例的示图。
参照图17,存储器系统40000可被实施为个人计算机(PC)、平板PC、上网本、电子阅读器、个人数字助理(PDA)、便携式多媒体播放器(PMP)、MP3播放器或MP4播放器。
存储器系统40000可包括存储器装置2200和能够控制存储器装置2200的数据处理操作的存储器控制器2100。图17中所示的存储器装置2200可对应于图1至图3中所示的存储器装置2200。图17中所示的存储器控制器2100可对应于图1至图3中所示的存储器控制器2100。
处理器4100可根据通过输入装置4200输入的数据通过显示器4300输出存储在存储器装置2200中的数据。例如,输入装置4200可被实施为诸如触摸板或计算机鼠标的定点装置、小键盘或键盘。
处理器4100可控制存储器系统40000的全部操作,并且控制存储器控制器2100的操作。在一些实施例中,能够控制存储器装置2200的操作的存储器控制器2100可被实施为处理器4100的一部分或被实施为与处理器4100分离的芯片。
图18是示出包括图1至图3中所示的存储器控制器的存储器系统的另一示例的示图。
参照图18,存储器系统50000可被实施为图像处理装置,例如,数码相机、附接有数码相机的移动终端、附接有数码相机的智能电话或附接有数码相机的平板PC。
存储器系统50000可包括存储器装置2200和存储器控制器2100,存储器控制器2100能够控制存储器装置2200的数据处理操作,例如,编程操作、擦除操作或读取操作。图18中所示的存储器装置2200可对应于图1至图3中所示的存储器装置2200。图18中所示的存储器控制器2100可对应于图1至图3中所示的存储器控制器2100。
存储器系统50000的图像传感器5200可将光学图像转变成数字信号,并且转变的数字信号可被传输到处理器5100或存储器控制器2100。在处理器5100的控制下,转变的数字信号可通过显示器5300输出,或通过存储器控制器2100存储在存储器装置2200中。另外,存储在存储器装置2200中的数据可在处理器5100或存储器控制器2100的控制下通过显示器5300输出。
在一些实施例中,能够控制存储器装置2200的操作的存储器控制器2100可被实施为处理器5100的一部分或被实施为与处理器5100分离的芯片。
图19是示出包括图1至图3中所示的存储器控制器的存储器系统的另一示例的示图。
参照图19,存储器系统70000可被实施为存储卡或智能卡。存储器系统70000可包括存储器装置2200、存储器控制器2100和卡接口7100。图19中所示的存储器装置2200可对应于图1至图3中所示的存储器装置2200。图19中所示的存储器控制器2100可对应于图1至图3中所示的存储器控制器2100。
存储器控制器2100可控制存储器装置2200和卡接口7100之间的数据交换。在一些实施例中,卡接口7100可以是安全数字(SD)卡接口或多媒体卡(MMC)接口,但本公开不限于此。
卡接口7100可根据主机60000的协议来接口连接主机60000和存储器控制器2100以进行数据交换。在一些实施例中,卡接口7100可支持通用串行总线(USB)协议和芯片间(IC)-USB协议。卡接口7100可指能够支持主机60000使用的协议的硬件、安装在硬件中的软件或者信号传输方案。
当存储器系统70000联接到诸如PC、平板PC、数码相机、数字音频播放器、蜂窝电话、控制台视频游戏硬件或数字机顶盒的主机60000的主机接口6200时,主机接口6200可在微处理器(μP)6100的控制下通过卡接口7100和存储器控制器2100执行与存储器装置2200的数据通信。
根据本公开的实施例,对读取回收操作的参考值进行计数以限制读取回收操作的执行,使得不会过度或过于频繁地执行读取回收操作。因此,存储器系统的性能可得到提高。
本文已经公开了各个实施例,并且虽然采用了特定术语,但是它们以一般性和描述性意义被使用和解释而不是为了限制的目的。在一些情况下,自本申请提交之日起,对本领域技术人员将显而易见的是,结合特定实施例描述的特征、特性和/或元件可以单独使用或与结合其它实施例描述的特征、特性和/或元件组合使用,除非另外明确指出。因此,本领域技术人员将理解的是,在不脱离如权利要求中阐述的本公开的精神和范围的情况下,可以在形式和细节上进行各种改变。
Claims (19)
1.一种操作存储器控制器的方法,所述方法包括:
将超级块划分成多个单元区域;
分配K位体系结构寄存器的K个位之中的N个位,以对所述多个单元区域中的每一个的读取访问次数进行计数多达第一阈值,其中N和K是自然数;
分配所述K位体系结构寄存器的剩余位之中的位,以对所述超级块的读取访问次数进行计数多达第二阈值;以及
每当与所述单元区域之中的任意一个单元区域对应的计数值达到所述第一阈值时,增加与所述超级块对应的计数值,
其中确定N使得所述第一阈值和所述第二阈值的乘积表示目标计数值。
2.根据权利要求1所述的方法,进一步包括:当确定有多个N值时,选择最大的N。
3.根据权利要求1所述的方法,进一步包括:
当与所述超级块对应的计数值达到所述第二阈值时,执行读取回收操作。
4.根据权利要求3所述的方法,进一步包括:每当与任意一个单元区域对应的计数值达到所述第一阈值时,初始化与各所述单元区域对应的计数值。
5.根据权利要求1所述的方法,其中当所述超级块的擦除次数增加时,所述第一阈值增大,并且当所述超级块的擦除次数增加时,所述第二阈值减小。
6.根据权利要求1所述的方法,其中在将所述超级块划分成所述多个单元区域时,所述超级块被划分成的单元区域的数量取决于所述超级块是存储顺序数据还是存储随机数据。
7.一种存储器控制器,包括:
第一计数器组,包括多个第一计数器,每个第一计数器使用K位体系结构寄存器的K个位之中的N个位对构成超级块的多个单元区域之中、与所述第一计数器对应的单元区域的读取访问次数进行计数多达第一阈值,其中N和K是自然数;
第二计数器,使用所述K位体系结构寄存器的剩余位对所述超级块的读取访问次数进行计数多达第二阈值,并且每当所述多个第一计数器的任意计数值达到所述第一阈值时,增加与所述超级块相对应的计数值;以及
寄存器分配器,确定N使得所述第一阈值和所述第二阈值的乘积表示目标计数值。
8.根据权利要求7所述的存储器控制器,其中当确定有多个N值时,所述寄存器分配器选择最大的N。
9.根据权利要求7所述的存储器控制器,其中所述第一阈值是使用N个位能够计数的最大值。
10.根据权利要求7所述的存储器控制器,其中所述第二阈值是使用所述剩余位能够计数的最大值或者小于所述最大值的值。
11.根据权利要求7所述的存储器控制器,进一步包括命令发生器,当所述第二计数器的计数值达到所述第二阈值时,所述命令发生器生成用于执行读取回收操作的命令。
12.根据权利要求11所述的存储器控制器,进一步包括计数器管理器,每当所述多个第一计数器的任意计数值达到所述第一阈值时,所述计数器管理器指示所述第一计数器组的全部第一计数器初始化各自的计数值。
13.根据权利要求7所述的存储器控制器,进一步包括策略存储组件,存储定义与所述超级块的擦除次数对应的目标计数值的策略,其中所述寄存器分配器确定N,使得所述第一阈值和所述第二阈值的乘积表示由所述策略定义的、与所述超级块的擦除次数对应的目标计数值。
14.根据权利要求7所述的存储器控制器,其中所述寄存器分配器根据所述超级块是存储顺序数据还是存储随机数据,将所述超级块划分成不同数量的单元区域。
15.一种存储器控制器,包括:
寄存器分配器,将一个超级块划分成多个单元区域;
多个第一计数器,各自对应于所述多个单元区域中的各个单元区域,其中所述多个第一计数器中的每一个当相应单元区域被读取访问时增加计数值;
第二计数器,对应于所述超级块,其中当所述多个第一计数器中的任意一个的计数值达到第一阈值时,所述第二计数器增加计数值;以及
命令发生器,当所述第二计数器的计数值达到第二阈值时,生成用于执行读取回收操作的命令。
16.根据权利要求15所述的存储器控制器,其中随着所述超级块的擦除次数增加,所述寄存器分配器使所述第一阈值增大并且使所述第二阈值减小。
17. 根据权利要求15所述的存储器控制器,其中与当所述超级块存储顺序数据时相比,当所述超级块存储随机数据时,所述寄存器分配器将所述超级块划分成更大数量的单元区域。
18.根据权利要求15所述的存储器控制器,其中所述多个第一计数器中的每一个使用K位体系结构寄存器的K个位之中的N个位计数多达所述第一阈值,并且
所述第二计数器使用所述K位体系结构寄存器的剩余位计数多达所述第二阈值。
19. 一种存储器系统,包括:
存储器装置,包括定义超级块的多个单元区域;以及
存储器控制器:
对所述多个单元区域中的每一个的读取访问次数进行计数,
每当对所述多个单元区域中的任意一个的总读取访问次数达到第一阈值时,增加与所述超级块相对应的计数值,并且
当所述计数值达到第二阈值时,生成执行读取回收操作的命令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0055388 | 2018-05-15 | ||
KR1020180055388A KR102578188B1 (ko) | 2018-05-15 | 2018-05-15 | 메모리 컨트롤러 및 이의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110489360A CN110489360A (zh) | 2019-11-22 |
CN110489360B true CN110489360B (zh) | 2023-06-13 |
Family
ID=68532590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910107432.5A Active CN110489360B (zh) | 2018-05-15 | 2019-02-02 | 存储器控制器及该存储器控制器的操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10877689B2 (zh) |
KR (1) | KR102578188B1 (zh) |
CN (1) | CN110489360B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102516106B1 (ko) * | 2018-02-14 | 2023-03-31 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
CN112233715B (zh) * | 2019-07-15 | 2024-06-18 | 美光科技公司 | 用于存储器系统的维护操作 |
US11392292B2 (en) * | 2019-07-15 | 2022-07-19 | Micron Technology, Inc. | Maintenance operations for memory devices |
KR20210074849A (ko) | 2019-12-12 | 2021-06-22 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이의 동작 방법 |
KR20210121527A (ko) * | 2020-03-30 | 2021-10-08 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US11579797B2 (en) * | 2021-04-29 | 2023-02-14 | Micron Technology, Inc. | Memory sub-system refresh |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9361182B2 (en) * | 2014-05-20 | 2016-06-07 | Transcend Information, Inc. | Method for read disturbance management in non-volatile memory devices |
TWI602116B (zh) * | 2017-03-07 | 2017-10-11 | Silicon Motion Inc | 資料儲存裝置及其資料維護方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6058047A (en) * | 1996-08-16 | 2000-05-02 | Tokyo Electron Limited | Semiconductor memory device having error detection and correction |
KR100706808B1 (ko) * | 2006-02-03 | 2007-04-12 | 삼성전자주식회사 | 쓰기 버퍼로서 동작하는 불 휘발성 메모리를 구비한 데이터저장 장치 및 그것의 블록 회수 방법 |
KR101824068B1 (ko) * | 2011-07-28 | 2018-03-15 | 삼성전자주식회사 | 메모리 컨트롤러 구동방법, 및 메모리 컨트롤러를 포함하는 메모리 시스템, 메모리 카드 및 휴대용 전자장치 |
US10147500B2 (en) * | 2015-05-22 | 2018-12-04 | SK Hynix Inc. | Hybrid read disturb count management |
KR102372730B1 (ko) * | 2015-08-25 | 2022-03-10 | 삼성전자주식회사 | 비휘발성 메모리 장치, 이의 동작 방법 및 이를 포함하는 에스에스디 |
KR102435873B1 (ko) * | 2015-12-18 | 2022-08-25 | 삼성전자주식회사 | 스토리지 장치 및 그것의 리드 리클레임 방법 |
KR102530905B1 (ko) | 2016-02-15 | 2023-05-11 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
TWI599880B (zh) * | 2016-03-22 | 2017-09-21 | 威盛電子股份有限公司 | 非揮發性記憶體裝置及其操作方法 |
TWI604455B (zh) * | 2016-05-13 | 2017-11-01 | Silicon Motion Inc | 資料儲存裝置、記憶體控制器及其資料管理方法與資料區塊管理方法 |
TW202001565A (zh) * | 2018-06-21 | 2020-01-01 | 慧榮科技股份有限公司 | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 |
-
2018
- 2018-05-15 KR KR1020180055388A patent/KR102578188B1/ko active IP Right Grant
-
2019
- 2019-01-04 US US16/239,785 patent/US10877689B2/en active Active
- 2019-02-02 CN CN201910107432.5A patent/CN110489360B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9361182B2 (en) * | 2014-05-20 | 2016-06-07 | Transcend Information, Inc. | Method for read disturbance management in non-volatile memory devices |
TWI602116B (zh) * | 2017-03-07 | 2017-10-11 | Silicon Motion Inc | 資料儲存裝置及其資料維護方法 |
Also Published As
Publication number | Publication date |
---|---|
KR102578188B1 (ko) | 2023-09-14 |
KR20190130805A (ko) | 2019-11-25 |
CN110489360A (zh) | 2019-11-22 |
US20190354311A1 (en) | 2019-11-21 |
US10877689B2 (en) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110489360B (zh) | 存储器控制器及该存储器控制器的操作方法 | |
CN109683805B (zh) | 存储器系统及其操作方法 | |
CN110413535B (zh) | 存储器控制器及存储器控制器的操作方法 | |
KR102503177B1 (ko) | 메모리 시스템 및 그것의 동작 방법 | |
CN110310691B (zh) | 存储器系统中的工作负载预测及其方法 | |
CN111324550B (zh) | 存储器系统及其操作方法 | |
US10990539B2 (en) | Controller, memory system including the same, and method of operating memory system | |
US20200201571A1 (en) | Memory system and operating method thereof | |
US20200110545A1 (en) | Memory system and operating method thereof | |
CN109947670B (zh) | 存储器系统及其操作方法 | |
CN111258934B (zh) | 存储器控制器、包括其的存储器系统及操作其的方法 | |
US20200310675A1 (en) | Memory system and method of operating the same | |
US11056177B2 (en) | Controller, memory system including the same, and method of operating the memory system | |
US11113189B2 (en) | Memory system to perform read reclaim and garbage collection, and method of operating the same | |
CN111381772B (zh) | 半导体存储器装置的控制器及其操作方法 | |
CN110309075B (zh) | 存储器控制器以及具有存储器控制器的存储器系统 | |
US11841805B2 (en) | Memory system for storing map data in host memory and operating method of the same | |
US20200125281A1 (en) | Memory system and method of operating the same | |
KR20200059774A (ko) | 메모리 시스템 및 그것의 동작 방법 | |
CN110858501B (zh) | 存储器系统以及存储器系统的操作方法 | |
CN110851382B (zh) | 存储控制器及其操作方法和具有存储控制器的存储器系统 | |
US10942675B2 (en) | Memory system and operating method thereof | |
CN113555054A (zh) | 存储装置及其操作方法 | |
KR20190030463A (ko) | 메모리 시스템 및 그것의 동작 방법 | |
CN110275839B (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240613 Address after: American Texas Patentee after: Mimi IP Co.,Ltd. Country or region after: U.S.A. Address before: Gyeonggi Do, South Korea Patentee before: Sk Hynix Inc. Country or region before: Republic of Korea |