CN114518843A - 存储控制器和包括存储控制器的存储设备 - Google Patents
存储控制器和包括存储控制器的存储设备 Download PDFInfo
- Publication number
- CN114518843A CN114518843A CN202111376486.5A CN202111376486A CN114518843A CN 114518843 A CN114518843 A CN 114518843A CN 202111376486 A CN202111376486 A CN 202111376486A CN 114518843 A CN114518843 A CN 114518843A
- Authority
- CN
- China
- Prior art keywords
- data
- region
- slc
- memory
- read
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 172
- 238000013508 migration Methods 0.000 claims abstract description 54
- 230000005012 migration Effects 0.000 claims abstract description 53
- 238000012545 processing Methods 0.000 claims description 22
- 230000004044 response Effects 0.000 claims description 19
- 238000000034 method Methods 0.000 claims description 15
- 230000002123 temporal effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 20
- 239000000872 buffer Substances 0.000 description 16
- 230000008859 change Effects 0.000 description 6
- 238000012937 correction Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 108091006211 SLC4 Proteins 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 2
- 101000581402 Homo sapiens Melanin-concentrating hormone receptor 1 Proteins 0.000 description 2
- 102000037055 SLC1 Human genes 0.000 description 2
- 108091006210 SLC5 Proteins 0.000 description 2
- 102000037065 SLC5 Human genes 0.000 description 2
- 108091006213 SLC6 Proteins 0.000 description 2
- 102000037069 SLC6 Human genes 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000002356 single layer Substances 0.000 description 2
- 101150009136 tlcA gene Proteins 0.000 description 2
- 101150071385 tlcB gene Proteins 0.000 description 2
- 108091006209 SLC2 Proteins 0.000 description 1
- 102000037062 SLC2 Human genes 0.000 description 1
- 108091006208 SLC3 Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- CXOXHMZGEKVPMT-UHFFFAOYSA-N clobazam Chemical compound O=C1CC(=O)N(C)C2=CC=C(Cl)C=C2N1C1=CC=CC=C1 CXOXHMZGEKVPMT-UHFFFAOYSA-N 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000010410 layer Substances 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 229940044442 onfi Drugs 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- 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
- 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
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0647—Migration mechanisms
-
- 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
- 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
-
- 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/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
- 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/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- 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/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
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)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
一种存储设备可以包括:至少包括第一单层单元(SLC)区域、第二SLC区域和至少一个具有多层的单元的区域的至少一个存储器设备,第一SLC区域具有比第二SLC区域更高的数据读取速度,并且第二SLC区域具有比至少一个具有多层的单元的区域更高的数据读取速度;以及存储控制器,被配置为控制数据在第一SLC区域、第二SLC区域和至少一个具有多层的单元的区域之间的迁移。
Description
技术领域
本发明构思的各种示例实施例涉及存储控制器、包括包含存储控制器的非易失性存储器的存储设备、和/或操作存储控制器的方法等。
背景技术
闪速存储器设备通过改变存储器单元的阈值电压来存储数据,并且使用期望的和/或预定的读取电平来读取数据。近来,包括闪速存储器的存储设备,诸如固态驱动器(SSD)、存储器卡等已经被广泛使用。这是因为闪速存储器是具有诸如低功耗和高集成度的期望的特性的非易失性设备。
在闪速存储器中,为了存储从主机发送的写入数据,根据写入数据的特性将写入数据存储在单层(single-level)单元区域的存储器块或者多层(multi-level)单元区域的存储器块中。
发明内容
本发明构思的各种示例实施例提供了具有改进的性能的存储控制器、包括该存储控制器的系统、和/或其操作方法。
本发明构思的至少一个示例实施例的方面提供了其中存储区域根据和/或基于数据的使用特性而改变的存储设备、包括该存储设备的系统、和/或其操作方法。
本发明构思的至少一个示例实施例提供了一种存储设备,该存储设备包括:存储器设备,至少包括第一单层单元(SLC)区域、第二SLC区域和至少一个具有多层的单元的区域,第一SLC区域具有比第二SLC区域更高的数据读取速度,并且第二SLC区域具有比至少一个具有多层的单元的区域更高的数据读取速度;以及存储控制器,被配置为从存储器设备读取数据并且控制数据在第一SLC区域、第二SLC区域和至少一个具有多层的单元的区域之间的迁移。
本发明构思的至少一个示例实施例提供了一种存储控制器的操作方法,包括:从存储器设备的单层单元(SLC)区域读取数据,并且基于数据的写入时间顺序和数据的读取计数来将数据迁移至存储器设备的具有多层的单元的区域,写入时间顺序指示数据被写入SLC区域的顺序,而读取计数指示数据已经被读取的次数。
本发明构思的至少一个示例实施例提供了一种存储控制器,包括处理电路,被配置为:发送针对存储器设备中包括的第一单层单元(SLC)区域、第二SLC区域和具有多层的单元的区域中的一个中所存储的数据的读取请求,第一SLC区域具有比第二SLC区域更高的数据读取速度,并且第二SLC区域具有比具有多层的单元的区域更高的数据读取速度;以及基于数据的使用特性,改变数据在存储器设备中的存储位置。
应当注意,本发明构思的示例实施例的特征不限于此,并且根据以下描述,与本发明构思的示例实施例相关的其他特征对于本领域普通技术人员将是明显的。
附图说明
通过参考附图详细描述本发明构思的示例实施例,本发明构思的示例实施例的上述和其他的方面和特征将变得更加明显,在附图中:
图1是根据一些示例实施例的存储系统的示意框图。
图2是示出根据至少一个示例实施例的图1的存储控制器的框图。
图3是示出根据至少一个示例实施例的图1的存储器设备的框图。
图4是示出根据至少一个示例实施例的如图1所示的存储控制器的框图。
图5是示出根据至少一个示例实施例的如图3所示的存储设备的动态分配的概念图。
图6是示出根据一些示例实施例的存储系统的操作的图。
图7是示出根据一些示例实施例的存储系统的操作的图。
图8是根据一些示例实施例的存储控制器的操作方法的流程图。
图9是根据本发明构思的至少一个示例实施例的存储系统的框图。
图10是根据至少一个示例实施例的图1的存储器设备220的示例的框图。
图11是示出根据至少一个示例实施的应用了图1的存储设备200的系统的图。
具体实施方式
在下文中,将参考附图描述本发明构思的各种示例实施例。
图1是根据一些示例实施例的存储系统的示意框图。图2是详细示出图1的存储控制器的框图。图3是详细示出根据至少一个示例实施例的图1的存储器设备的框图。
参考图1,主机-存储系统10可以包括至少一个主机100和/或至少一个存储设备200等,但示例实施例不限于此,并且例如,主机-存储系统10可以包括更多或更少数量的构成组件等。存储设备200可以包括至少一个存储控制器210和/或至少一个存储器设备220(例如,非易失性存储器(NVM)设备)等,但不限于此。根据本发明构思的至少一个示例实施例,主机100(例如,主机设备、外部设备、计算设备、用户设备等)可以包括至少一个主机控制器110和/或至少一个主机存储器120等。主机存储器120可以用作缓冲存储器,用于临时地存储要发送至存储设备200的数据和/或从存储设备200发送的数据,但不限于此。
存储设备200可以包括用于根据来自主机100的至少一个请求来存储数据的存储介质等。例如,存储设备200可以包括固态驱动器(SSD)、嵌入式存储器和/或可移除外部存储器等中的至少一种,但不限于此。当存储设备200为SSD时,存储设备200可以是符合例如非易失性存储器快速(NVMe)标准等的设备,但示例实施例不限于此。当存储设备200为嵌入式存储器和/或外部存储器时,存储设备200可以是符合通用闪速存储(UFS)和/或嵌入式多媒体卡(eMMC)标准的设备,但示例实施例不限于此。主机100和存储设备200各自能够根据所采用的数据存储标准协议生成和/或发送至少一个分组(packet)。
当存储设备200的存储器设备220包括至少一个闪速存储器时,闪速存储器可以包括二维(2D)NAND存储器阵列和/或三维(3D)(或垂直NAND(VNAND))存储器阵列。作为另一示例,存储设备200可以包括其他类型的非易失性存储器。例如,磁性随机存取存储器(MRAM)、自旋转移矩MRAM、导电桥接RAM(CBRAM)、铁电RAM(FeRAM)、相位RAM(PRAM)、电阻性RAM和各种其他类型的存储器可以用作存储设备200。
根据至少一个示例实施例,主机控制器110和主机存储器120可以体现为单独的半导体芯片。此外,在一些示例实施例中,主机控制器110和主机存储器120可以集成在同一半导体芯片上。例如,主机控制器110可以是应用处理器中包括的多个模块中的一个,并且应用处理器可以体现为片上系统(SoC)等。作为另一示例,主机存储器120可以是在应用处理器中提供的嵌入式存储器,或者应用处理器外部的非易失性存储器或存储器模块等,但示例实施例不限于此。
主机控制器110可以管理下述操作:将主机存储器120的数据(例如,写入数据)存储在存储器设备220中和/或在主机存储器120中检索来自存储器设备220的数据(例如,读取数据)。
存储控制器210可以包括主机接口211、存储器接口212和/或控制单元213(例如,控制电路、控制处理电路等),但示例实施例不限于此。存储控制器210还可以包括闪存转换层(FTL)214、分组管理器215、缓冲存储器216、纠错码(ECC)引擎217、高级加密标准(AES)引擎218和/或迁移管理器300等,但示例实施例不限于此,并且例如可以包括更多或更少数量的构成组件和/或替代组件,诸如省略ECC引擎217和/或AES引擎218,和/或使用不同的加密/解密引擎等。存储控制器210还可以包括其中加载FTL 214的工作存储器(未示出),并且控制单元213可以执行FTL 214以控制关于存储器设备220的数据写入操作、数据读取操作、数据擦除操作、磨损均衡操作等,但示例实施例不限于此。根据一些示例实施例,存储控制器210可以被实现为处理电路,或者换言之,在存储控制器210中包括的处理电路可以能够执行存储控制器210、主机接口211、存储器接口212、控制单元213、FTL 214、分组管理器215、缓冲存储器216、ECC引擎217、AES引擎218和/或迁移管理器300等中的一个或多个的功能。处理电路可以包括:硬件,诸如处理器、处理器核、逻辑电路、存储设备等;硬件/软件组合,诸如执行软件和/或执行任何指令集等的至少一个处理器核;或者其组合。例如,处理电路可以更具体包括但不限于现场可编程门阵列(FPGA)、可编程逻辑单元、专用集成电路(ASIC)、片上系统(SoC)等。
主机接口211可以向主机100发送分组和/或从主机100接收分组等。从主机100发送至主机接口211的分组可以包括要写入到存储器设备220的命令和/或数据,并且从主机接口211发送至主机100的分组可以包括对从存储器设备220读取的命令和/或数的响应据等。存储器接口212可以向存储器设备220发送要被写入存储器设备220的数据,和/或可以接收从存储器设备220读取的数据,但不限于此。存储器接口212可以被实现为符合诸如Toggle和/或ONFI等的标准约定,但示例实施例不限于此。
FTL 214可以执行各种功能,诸如地址映射、磨损均衡和/或垃圾收集等。地址映射是下述操作:将从主机100接收的逻辑地址转换为要被用于将数据实际地存储在存储器设备220中的物理地址。磨损均衡是用于允许在存储器设备220中包括的块被均匀地使用,从而减少和/或防止特定块的过度恶化的操作,并且可以例如通过使用用于平衡物理块的擦除计数的固件来实施,但示例实施例不限于此。垃圾收集是用于通过将当前块的有效数据复制到新块并且擦除存储在当前块上的数据等来确保存储器设备220中的可用容量的操作。
分组管理器215可以根据与主机100协商的接口的协议生成分组和/或从接收自主机100的分组中解析各种类型的信息,但示例实施例不限于此。
缓冲存储器216可以临时地存储要写入存储器设备220的数据和/或从存储器设备220读取的数据等。缓冲存储器216可以提供在存储控制器210中,但也可以在存储控制器210之外和/或外部,但示例实施例不限于此。
ECC引擎217可以对从存储器设备220读取的读取数据执行错误检测和/或纠正功能,但不限于此。更具体地,ECC引擎217可以关于要写入存储器设备220的写入数据生成奇偶校验位,并且可以将生成的奇偶校验位与写入数据一起存储在存储器设备220中等。当从存储器设备220读取数据时,ECC引擎217可以使用连同读取数据一起从存储器设备220读取的奇偶校验位来纠正读取数据中的错误,并且输出错误纠正后的读取数据等。
当存储控制器210从存储器设备220接收数据时,ECC引擎217可以对接收到的数据进行解码以检查纠错是否可能,检查和/或确定接收到的数据中的错误数量,并且当纠错可能时将错误的数量报告给迁移管理器300。当纠错不可能时,ECC引擎217可以通知控制单元213纠错不可能,并且通过控制单元213控制再次从存储器设备220读取数据(例如,执行读取重试操作等)。AES引擎218可以使用对称密钥算法等关于输入到存储控制器210的数据执行加密操作和/或解密操作中的至少一个,然而示例实施例不限于对此,并且例如,一个或多个示例实施例可以使用不同形式的加密/解密等。
温度传感器219可以感测存储器设备220的操作温度。即,可以感测存储器设备220的至少一个存储器单元的操作温度的改变。在一些示例实施例中,存储控制器210可以不包括温度传感器219和/或温度传感器219可以实现为存储器设备220等的一部分,但示例实施例不限于此。
迁移管理器300可以根据和/或基于数据的使用特性来改变存储器设备220中的数据存储位置。数据存储位置的改变可以在对存储器设备220执行的操作的空闲时段期间执行,但不限于此。根据一些示例实施例,空闲时段可以是执行存储器设备220的后台操作的时段,但不限于此。
参考图3,存储器设备220可以包括根据和/或基于单元层(level)分类的多个区域(例如,存储器区域、存储区域、存储器芯片等),诸如区域401、402和403等,但示例实施例不限于此,并且例如,存储器设备220可以包括多于三个的存储器区域、少于三个的存储器区域等。多个区域401、402和403等每个可以包括多个存储器块,并且每个可以被相同或不同地管理等,但示例实施例不限于此。根据一些示例实施例,区域1 401可以通过第一单层单元(SLC)方法管理,区域2 402可以通过第二SLC方法管理,以及区域3 403可以是其中2位或更多位的数据存储在一个单元的区域等,但示例实施例不限于此。区域3 403可以通过例如多层单元(MLC)配置和/或方法、三层单元(TLC)配置和/或方法、和/或四层单元(QLC)配置和/或方法等来管理,但示例实施例不限于此。根据至少一个示例实施例,MLC、TLC和/或QLC中的单元中的每个能够在一个单元中存储两个或更多位的数据等。
例如,SLC、MLC和TLC可以根据在一个存储器单元中要存储的数据的量来分类。因此,数据中的一些(例如,元数据)可以编程在区域1 401和/或区域2 402(例如SLC区域)中,而除元数据之外的其余数据可以编程在区域3 403中(例如,非SLC区域等),但示例实施例不限于此。
根据至少一个示例实施例,在区域1 401和区域2 402中执行写入操作和/或读取操作的速度比在区域3 403中更高。换言之,在SLC区域中的写入操作和/或读取操作的速度比在MLC区域、TLC区域、QLC区域等中更快。根据主机100的模式频繁地改变的数据由于区域1 401和/或区域2中402的提高的速度可以存储在这些区域中,而不频繁地改变的数据可以存储在区域3 403中,但示例实施例不限于此。
根据一些示例实施例,区域1 401和区域2 402两者可以是SLC区域,但在区域1401中执行读取操作的速度可以被设置为高于在区域2 402中的读取速度,但示例实施例不限于此。即,区域1 401中的数据读取速度可以高于区域2 402中的读取速度。此外,区域2402中的数据读取速度可以高于非SLC区域(例如,区域3 403等)的数据读取速。
根据一些示例实施例,可以以期望的和/或预设的小区块(chunk)为单位在区域1401中执行读取操作,例如大约4KB或8KB的非常小的数据单元,但示例实施例是不限于此。根据一些示例实施例,可以以多个页等为单位在区域2 402中执行读取操作,但示例实施例不限于此。
当通过根据和/或基于数据的使用特性将SLC区域划分为至少两个区域(例如,区域1 401和区域2 402等)来读取数据时,存储控制器210可以在保证存储器设备220的可靠性的同时以更高的速度读取数据,从而提高存储设备200的性能。
在本发明构思的至少一个示例实施例中,根据一些示例实施例,区域1 401、区域2402和区域3 403可以被称为第一SLC区域401、第二SLC区域402和MLC区域403,但不限于此;并且根据一些示例实施例可以被称为局部性(locality)队列区域401、剩余SLC区域402和MLC区域403。或者区域1 401、区域2 402和区域3 403可以被称为快速读取SLC区域401、正常读取SLC区域402和MLC区域403等。将明显的时,本发明构思的示例实施例的范围不受上述名称的限制。
为了如上所述以高速读取数据,迁移管理器300可以根据和/或基于数据的使用特性来改变存储器设备220的数据存储区域。数据的使用特性可以包括例如将数据写入存储器设备220时的写入时间、最近读取时间、读取计数和/或数据错误率等中的至少一个,但示例实施例不限于此。
根据一些示例实施例,当写入时间小于迁移阈值时间THw时,迁移管理器300可以保持写入到区域1 401的数据。即,当数据已经被写入很长时间时和/或基于迁移阈值时间THw,迁移管理器300可以将区域1 401的数据迁移至区域2 402和/或区域3 403,和/或当数据还没有被写入很长时间时和/或基于迁移阈值时间THw,迁移管理器300可以将数据保持在写入区域1 401中等。
根据一些示例实施例,当指示数据已被读取(例如,访问等)的次数的区域1 401中的数据的读取计数小于迁移阈值计数THRC(例如,读取计数阈值等)时,迁移管理器300可以将数据迁移至区域2 402和/或区域3 403等。即,当数据被频繁读取时(当读取计数大时)和/或基于迁移阈值计数THRC,迁移管理器300可以将数据保持在区域1 401中,并且当数据几乎没有被读取时和/或基于迁移阈值计数THRC,迁移管理器300将数据从区域1 401迁移至区域2 402和/或区域3 403等。
根据一些示例实施例,当读取计数大于和/或等于迁移阈值计数THRC时,迁移管理器300甚至可以将存储在区域2 402和/或区域3 430中的数据迁移至区域1 401,但示例实施例不限于此。
根据一些示例实施例,迁移管理器300可以根据数据被写入存储器设备220的写入时间顺序(例如,数据被写入的顺序等)将区域1 401和/或区域2402中的数据迁移至区域3403。然而,当数据的读取计数超过迁移阈值计数THRC时,被确定为当前频繁地使用的数据的数据可以保持在区域1 401和/或区域2 402中而不迁移至区域3 403等,但示例实施例不限于此。根据至少一个示例实施例,可以在写入时间和读取计数中首先考虑读取计数,但示例实施例不限于此。
根据一些示例实施例,当数据的读取计数大于或等于第一迁移阈值计数THRC1时,数据可以被存储在存储器区域1 401中,并且当数据的读取计数小于第一迁移阈值计数THRC1但大于或等于第二迁移阈值THRC2时,数据可以被存储在存储器区域2 402中。在这种情况下,第一迁移阈值计数THRC1可以大于第二迁移阈值计数THRC2(例如,THRC1>THRC2),但示例实施例不限于此。
图4是详细地示出根据至少一个示例实施例的如图1所示的存储控制器的框图。图5是示出根据至少一个示例实施例的如图3所示的存储设备的动态分配的概念图。将关注于与图2的不同来描述图4和图5,并且为了简洁和清楚,将省略冗余的描述。
参考图4和图5,存储控制器210'还可以包括块管理器310,但不限于此。块管理器310可以根据应用方法静态地和/或动态地分配一个或多个存储器区域(诸如区域1 401、区域2 402和/或区域3 403等)的大小。
例如,当区域1 401的大小Rl和/或区域2 402的大小R2大,并且区域3 403的大小R3小时,存储器设备220的空间利用率可能减少和/或低效,从而导致存储器设备220的整体数据存储容量减少。空间利用率可以是已使用区域与所有区域(例如,R1、R2和R3等)的比率(在图5中描述)。
当与期望的存储大小相比和/或相对于存储器设备的其他区域,区域1401的大小Rl和/或区域2 402的大小R2小时,在区域1 401和/或区域2 402中存储的一些数据到区域3403的迁移可能更加频繁地发生,以确保区域1401和/或区域2 402的有效空间,从而导致存储设备200的性能的劣化。因此,期望和/或需要适当地选择区域1 401、区域2 402和区域3403中的每个的大小。
根据一些示例实施例,块管理器310可以根据和/或基于存储设备200的数据访问趋势、数据访问历史和/或数据访问模式动态地分配区域中的一个或多个,例如区域1 401、区域2 402和/或区域3 403等。额外地,根据一些示例实施例,块管理器310可以根据和/或基于存储设备200的用户设置(例如,配置等)静态地分配区域中的一个或多个,例如区域1401、区域2 402和/或区域3 403等。
图6是示出根据一些示例实施例的存储系统的操作的图。图7是示出根据一些示例实施例的存储系统的操作的图。为了简洁和清楚起见,在图6和图7中,第一区域、第二区域和第三区域将分别地被示出和描述为区域1、区域2和区域3,但示例实施例不限于此,并且例如,可以存在存储器设备中所使用的更多或更少数量的区域等。
参考图6,存储器设备220可以被划分为包括区域1 410和区域2 402的SLC区域,以及与区域3 403相对应的MLC区域,如以上参考图3描述的,但示例性实施例不限于此。
数据可以按照数据被写入到SLC区域的写入时间顺序——例如按照SLC1、SLC2、SLC3、SLC4和SLC5等的顺序——来存储。按照数据被写入的顺序,数据被迁移至区域3 403,但示例实施例不限于此。例如,最早地写入的SLC1的数据可以首先被迁移至第三区域403。
然而,即使较早地写入了SLC的数据,当数据正在被存储控制器210频繁地读取时,迁移管理器300也可以不将SLC的数据迁移至区域3 403,而是替代地可以将数据保持在区域1 401和/或区域2 402中(例如,原始区域)。即,根据一些示例实施例,当在区域1 401中所存储的数据的读取计数大于或等于迁移阈值计数THRC时,通过优先于写入时间顺序而考虑读取计数,数据可以被保持在区域1 401中。例如,当SLC4的数据正被频繁地读取时,即使在SLC5之后连续地接收数据时,SLC4的数据也被保持和/或持续地保持在区域1 401中。根据一些示例实施例,迁移管理器300可以首先将近期最少使用的数据迁移至区域3 403,但示例实施例不限于此。例如,当从在区域1 401和/或区域2 402等(例如,SLC区域等)中所存储的数据的最后读取时间起经过的时间超过迁移阈值时间THW时,迁移管理器300可以将数据从区域1 401和/或区域2 402等迁移至区域3 403(例如,非SLC区域中的一个或多个等)。
参考图7,根据一些示例实施例,当数据的读取计数超过迁移阈值计数THRC时,迁移管理器300可以将在区域2 402中所存储的数据迁移回到区域1 401(例如,原始区域等)。换言之,当数据的读取计数超过迁移阈值计数THRC等时,迁移管理器300可以将在区域1中所存储的数据迁移(例如,移动等)至区域2。在示出的示例中,当假设迁移阈值计数THRC为2000、且SLC5的数据的读取计数为2000时,数据可以从区域2 402迁移至区域1 401,然而示例实施例不限于此。然而,如果SLC6的数据的读取计数为1000并且TLC1和TLC2的数据的读取计数分别为1500和500,并且由此小于迁移阈值计数THRC,则SLC6和TLC1和TLC2的数据可以保持在数据被原始地存储在其中的区域2和区域3中,但示例实施例不限于此。
类似地,尽管未示出,但当数据的读取计数超过迁移阈值计数THRC时,可以将在第三区域403中所存储的数据迁移回到区域1 401等。
图8是根据一些示例实施例的存储控制器的操作方法的流程图。
参考图8,在操作S11中,存储控制器向存储器设备发送至少一个读取命令。在操作S12中,当接收到根据读取命令从存储器设备读取的数据时,对接收到的数据中的错误进行解码并且检查错误的数量等。
根据一些示例实施例,在操作S13中,存储控制器可以检查读取的数据(在下文中称为数据)是否已经存储在SLC区域(例如,区域1 401)等中。响应于存储控制器确定数据已经存储在SLC区域(例如,区域1 401)等中,在操作S14中,检查数据中的错误的数量。
当存储控制器确定数据中的错误的数量小于期望的错误阈值THER时,在操作S15中,存储控制器检查和/或确定与数据何时被写入存储器设备相对应的写入时间。当存储控制器确定从写入时间起经过的时间小于迁移阈值时间THW时,在操作S16中,存储控制器在将数据保持在SLC(例如,区域1 401等)区域中。
当存储控制器确定数据中的错误的数量大于或等于错误阈值THER时,在操作S17中,存储控制器检查数据的读取计数。额外地,响应于数据未存储在区域1 401中(例如,响应于操作S13的否)并且数据存储在区域2 402或区域3 403或者响应于从写入时间起经过的时间大于或等于迁移阈值时间THW时(例如,响应于操作S15的否)等中,在操作S17中,存储控制器持续地监视读取数据计数。
当在操作S17中存储控制器确定数据的读取计数大于或等于迁移阈值计数THRC时,则存储控制器确定数据仍在使用中,并且因此在操作S18中,如果数据被存储在区域1 410中,则存储控制器保持当前存储状态;和/或在操作S18中,当数据存储在区域2 402或区域3403中时,存储控制器将数据迁移至区域1 401。即,在数据在使用中并且被频繁地读取的情况下,将数据保留(keep)在和/或迁移至区域1 401中等,但示例实施例不限于此。
然而,当存储控制器确定数据的读取计数小于迁移阈值计数THRC时,存储控制器确定数据未在使用中,并且因此,在操作S19中,存储控制器将数据迁移至或保持在区域2 402或区域3 403等。
图9是根据本发明构思的至少一个示例实施例的存储系统的框图。参考图9,存储设备200可以包括存储器设备220和/或存储控制器210等,但不限于此。存储器设备220可以对应于基于多个通道CH1至CHm中的一个与存储控制器210通信的非易失性存储器设备NVM11至NVMmn等中的一个或多个,但示例实施例不限于此。存储控制器210可以对应于图1的存储控制器200,但不限于此。
根据至少一个示例实施例,存储器设备220可以包括第一引脚P11至第八引脚P18、存储器接口电路221、控制逻辑电路222和/或存储器单元阵列400等。
存储器接口电路221可以通过第一引脚P11从存储控制器210接收芯片使能信号nCE,但不限于此。存储器接口电路221可以根据芯片使能信号nCE通过第二引脚P12至第八引脚P18向存储控制器210发送信号和/或从存储控制器210接收信号,但不限于此。例如,当芯片使能信号nCE处于使能状态(例如,低电平)时,存储器接口电路221可以通过第二引脚P12至第八引脚P18向存储控制器210发送信号和/或从存储控制器210接收信号,但示例实施例不限于此。
存储器接口电路221可以通过第二引脚P12至第四引脚P14从存储控制器210接收命令锁存使能信号CLE、地址锁存使能信号ALE和/或写入使能信号nWE等,但不限于此。存储器接口电路221可以通过第七引脚P17从存储控制器210接收数据信号DQ和/或将数据信号DQ发送至存储控制器210,但不限于此。命令CMD、地址ADDR和/或数据DATA等可以通过数据信号DQ发送。例如,数据信号DQ可以通过多个数据信号线发送,但不限于此,并且例如可以在单个数据信号线上串行地(serially)发送。在这种情况下,第七引脚P17可以包括与多个数据信号相对应的多个引脚。
存储器接口电路221可以基于写入使能信号nWE的切换(toggle)定时从在命令锁存使能信号CLE的使能部分(例如,处于高电平状态)期间接收的数据信号DQ接收命令CMD,但不限于此。存储器接口电路221可以基于写入使能信号nWE的切换定时从在地址锁存使能信号ALE的使能部分(例如,处于高电平状态)期间接收的数据信号DQ接收地址ADDR,但不限于此。
在至少一个示例实施例中,写入使能信号nWE可以保持在静止状态(例如,高电平或低电平)并且此后在高电平和低电平之间切换,但示例实施例不限于此。例如,写入使能信号nWE可以在发送命令CMD和/或地址ADDR的部分中被切换。因此,存储器接口电路221可以基于写入使能信号nWE的切换定时等获得命令CMD和/或地址ADDR。
存储器接口电路221可以通过第五引脚P15从存储控制器210接收读取使能信号nRE,但不限于此。存储器接口电路221可以通过第六引脚P16从存储控制器210接收数据选通信号DQS和/或将数据选通信号DQS发送至存储控制器210,但不限于此。
在存储器设备220的数据DATA输出操作中,存储器接口电路221可以在输出数据DATA之前通过第五引脚P15接收正在切换的读取使能信号nRE,但示例实施例不限于此。存储器接口电路221可以基于读取使能信号nRE的切换来生成正在切换的数据选通信号DQS,但不限于此。例如,存储器接口电路221可以生成数据选通信号DQS,该DQS信号在从读取使能信号nRE的切换开始时间起的期望的和/或预定的延迟时间(例如,tDQSRE)之后开始切换。存储器接口电路221可以基于数据选通信号DQS的切换定时来发送包括数据DATA的数据信号DQ,但不限于此。因此,数据DATA可以与数据选通信号DQS的切换定时对齐并且被发送至存储控制器210等。
在存储器设备220的数据DATA输入操作中,当从存储控制器210接收包括数据DATA的数据信号DQ时,存储器接口电路221可以从存储控制器210接收随着数据DATA而切换的数据选通信号DQS。存储器接口电路221可以基于数据选通信号DQS的切换定时从数据信号DQ获得数据DATA,但不限于此。例如,存储器接口电路221可以通过在数据选通信号DQS的上升沿和下降沿处对数据信号DQ进行采样来获得数据DATA,但示例实施例不限于此。
存储器接口电路221可以通过第八引脚P18向存储控制器210发送就绪/忙碌输出信号nR/B,但不限于此。存储器接口电路221可以通过就绪/忙碌输出信号nR/B等将存储器设备220的状态信息发送至储存控制器210。当存储器设备220处于忙碌状态时(即,当正在执行存储器设备220的内部操作时),存储器接口电路221可以将指示忙碌状态的就绪/忙碌输出信号nR/B发送至存储控制器210等。当存储器设备220处于就绪状态时(例如,当未执行和/或完成了存储器设备220的内部操作时),存储器接口电路221可以将指示就绪状态的就绪/忙碌输出信号nR/B发送至存储控制器210等。例如,当存储器设备220响应于页面读取命令而从存储器单元阵列400读取数据DATA时,存储器接口电路22可以将指示忙碌状态(例如,低电平)的就绪/忙碌输出信号nR/B发送至存储控制器210,但示例实施例不限于此。例如,当存储器设备220响应于编程命令将数据DATA编程至存储器单元阵列400时,存储器接口电路221可以将指示忙碌状态的就绪/忙碌输出信号nR/B发送至存储控制器210等。
控制逻辑电路222通常可以控制存储器设备220的各种操作。控制逻辑电路222可以接收由存储器接口电路221获得的命令CMD和/或地址ADDR信号。控制逻辑电路222可以根据和/或基于接收到的命令CMD和/或地址ADDR信号来生成用于控制存储器设备220的其他组件的控制信号。例如,控制逻辑电路222可以生成用于将数据DATA编程至存储单器元阵列400和/或从存储器单元阵列400读取数据DATA等的各种控制信号。
存储器单元阵列400可以在控制逻辑电路222的控制下存储从存储器接口电路221获得的数据DATA,但示例实施例不限于此。存储器单元阵列400可以在控制逻辑电路222的控制下将存储的数据DATA输出至存储器接口电路221,但不限于此。
存储器单元阵列400可以包括多个存储器单元。例如,多个存储器单元可以是闪速存储器单元。然而,本发明构思的示例实施例不限于此,并且存储器单元可以是电阻式随机存取存储器(RRAM)单元、铁电RAM(FRAM)单元、相变RAM(PRAM)单元、晶闸管RAM(TRAM)单元和/或磁性RAM(MRAM)单元等。下面将关于存储器单元是NAND闪速存储器单元的示例实施例来描述本发明构思的一些示例实施例,但示例实施例不限于此。
存储控制器210可以包括多个引脚,例如第一引脚P21至第八引脚P28等,以及至少一个控制器接口电路410等。第一引脚P21至第八引脚P28可以对应于存储器设备220的第一引脚P11至第八引脚P18,但不限于此。
控制器接口电路410可以通过第一引脚P21将芯片使能信号nCE发送至存储器设备220,但不限于此。控制器接口电路410可以通过第二引脚P22至第八引脚P28向通过芯片使能信号nCE选择的存储器设备220发送信号和/或从其接收信号,但示例实施例不限于此。
控制器接口电路410可以通过第二引脚P22至第四引脚P24将命令锁存使能信号CLE、地址锁存使能信号ALE和/或写入使能信号nWE发送至存储器设备220,但不限于此。控制器接口电路410可以通过第七引脚P27向存储器设备220发送数据信号DQ和/或从存储器设备220接收数据信号DQ,但不限于此。
控制器接口电路410可以将包括命令CMD和/或地址ADDR的数据信号DQ与切换的写入使能信号nWE一起发送至存储器设备220,但示例实施例不限于此。控制器接口电路410可以发送处于使能状态的命令锁存使能信号CLE以将包括命令CMD的数据信号DQ发送至存储器设备220,以及发送处于使能状态的地址锁存使能信号ALE以将包括地址ADDR的数据信号DQ发送至存储器设备220等。
控制器接口电路410可以通过第五引脚P25将读取使能信号nRE发送至存储器设备220,但不限于此。控制器接口电路410可以通过第六引脚P26从存储器设备220接收数据选通信号DQS和/或向存储器设备220发送数据选通信号DQS,但不限于此。
在存储器设备220的数据DATA输出操作中,控制器接口电路410可以生成切换的读取使能信号nRE,并且将读取使能信号nRE发送至存储器设备220,但不限于此。例如,控制器接口电路410可以在输出数据DATA之前生成从静止状态(例如,高电平或低电平)改变至切换状态的读取使能信号nRE,但示例实施例不限于此。因此,存储器设备220可以基于读取使能信号nRE生成切换的数据选通信号DQS。控制器接口电路410可以连同切换的数据选通信号DQS,从存储器设备220接收包括数据DATA的数据信号DQ。控制器接口电路410可以基于数据选通信号DQS的切换定时从数据信号DQ获得数据DATA,但示例实施例不限于此。
在存储器设备220的数据DATA输入操作中,控制器接口电路410可以生成切换的数据选通信号DQS等。例如,控制器接口电路410可以在发送数据DATA之前生成从静止状态(例如,高电平或低电平)改变至切换状态的数据选通信号DQS,但不限于此。控制器接口电路410可以基于数据选通信号DQS的切换定时等将包括数据DATA的数据信号DQ发送至存储器设备220。
控制器接口电路410可以通过第八引脚P28从存储器设备220接收就绪/忙碌输出信号nR/B,但不限于此。控制器接口电路410可以基于就绪/忙碌输出信号nR/B等来识别存储器设备220的状态信息。
存储设备200可以通过数据总线发送读取命令,并且可以基于就绪/忙碌输出信号nR/B检查存储器设备220是否准备好执行读取操作,但不限于此。当存储器设备220准备好执行读取操作时,存储设备200可以通过数据总线等输出从存储器单元阵列400读取的数据。即,基于从读取命令的发送至就绪/忙碌输出信号nR/B以及通过数据总线的信号的输出的时间间隔等,存储设备200可以检查是否从第一区域(例如,局部性(locality)队列区域)和/或剩余区域读取了读取数据。
存储设备200可以支持多个通道CHl至CHm,并且存储器设备220和/或存储控制器210可以通过多个通道CHl至CHm等连接。例如,存储设备200可以体现为诸如固态驱动器(SSD)的存储设备,但不限于此。
存储器设备220可以包括多个非易失性存储器设备。非易失性存储器设备中的每个可以通过相对应的通路(way)等连接至多个通道中的一个。例如,非易失性存储器设备可以通过通路连接至第一通道并且通过通路连接到第二通道,但不限于此。在至少一个示例实施例中,非易失性存储器设备中的每个可以体现为能够根据来自存储控制器210的单独命令进行操作的存储器单元,但不限于此。例如,非易失性存储器设备中的每个可以体现为芯片或管芯,但本发明构思不限于此。
图10是根据至少一个示例实施例的图1的存储器设备220的示例的框图。参考图10,存储器设备400可以包括控制逻辑电路420、存储器单元阵列430、页缓冲单元440、电压发生器450和/或行解码器460等,但不限于此。存储器设备400还可以包括存储器接口电路221,并且还可以包括列逻辑、预解码器、温度传感器、命令解码器、地址解码器等。根据一些示例实施例,控制逻辑电路420可以被实现为处理电路,或者换言之,控制逻辑电路420中所包括的处理电路可以能够执行控制逻辑电路420、存储器单元阵列430、页缓冲单元440、电压发生器450、行解码器460、存储器接口电路410等中的一个或多个的功能。处理电路可以包括硬件,诸如处理器、处理器核、逻辑电路、存储设备等;硬件/软件组合,诸如执行软件和/或执行任何指令集等的至少一个处理器核;或其组合。例如,处理电路更具体地可以包括但不限于现场可编程门阵列(FPGA)、可编程逻辑单元、专用集成电路(ASIC)、片上系统(SoC)等。
控制逻辑电路420通常可以控制存储器设备400中的各种操作。控制逻辑电路420可以响应于来自存储器接口电路410的命令CMD和/或地址ADDR信号输出各种控制信号。例如,控制逻辑电路420可以输出电压控制信号CTRL_vol、行地址X-ADDR和/或列地址Y-ADDR等。
存储器单元阵列430可以包括多个存储器块BLK1至BLKz(z为正整数),并且多个存储器块BLK1至BLKz中的每个可以包括多个存储器单元。存储器单元阵列430可以通过位线BL连接至页缓冲单元440,以及通过字线WL、串选择线SSL和/或地选择线GSL等连接至行解码器460。
在至少一个示例实施例中,存储器单元阵列430可以包括3D存储器单元阵列,并且3D存储器单元阵列可以包括多个NAND串。NAND串中的每个可以包括连接至垂直地堆叠在衬底上的字线的存储器单元。美国专利第7,679,133号、美国专利第8,553,466号、美国专利第8,654,587号、美国专利第8,559,235号和美国申请第2011/0233648号通过引用整体并入本文。在至少一个示例实施例中,存储器单元阵列430可以包括2D存储器单元阵列并且2D存储器单元阵列可以包括在行和列方向上排列的多个NAND串等。
页缓冲单元440(例如,页缓冲器、页缓冲器电路等)可以包括多个页缓冲器PB1至PBn(n为大于或等于3的整数),并且多个页缓冲器PB1至PBn可以通过位线BL与存储器单元连接。页缓冲单元440可以响应于列地址Y-ADDR选择位线BL中的至少一个。页缓冲单元440可以根据操作模式作为写入驱动器和/或感测放大器来操作。例如,在编程操作期间,页缓冲单元440可以将与要被编程的数据相对应的位线电压施加至选择的位线。在读取操作期间,页缓冲单元440可以通过感测选择的位线的电流和/或电压来感测在存储器单元中所存储的数据。
电压发生器450可以基于电压控制信号CTRL_vol生成用于执行编程操作、读取操作、擦除操作等的各种类型的电压。例如,电压发生器450可以生成编程电压、读取电压、编程验证电压、擦除电压等来作为字线电压VWL等。
行解码器460可以响应于行地址X-ADDR来选择字线WL中的一个和串选择线SSL中的一个。例如,行解码器460可以在编程操作期间向选择的字线施加编程电压和/或编程验证电压,并且在读取操作期间向选择的字线施加读取电压,但不限于此。
图11是示出根据至少一个示例实施的应用了图1的存储设备200的系统的图。
根据至少一个示例实施例的图11的系统1000可以是移动系统,诸如移动电话、智能电话、平板型设备、个人计算机(PC)、可穿戴设备、医疗保健设备和/或物联网的(IoT)设备等,但不限于此。然而,图1的系统1000不必限于移动系统,并且可以是膝上型计算机、服务器、媒体播放器和/或诸如导航系统的汽车设备等。
参考图11,系统1000可以包括主处理器1100、存储器1020a和1020b以及存储设备1010a和1010b,并且还可以包括图像捕获设备1410、用户输入设备1420、传感器1430、通信设备1440、显示器1450、扬声器1460、电源设备1470和/或连接接口1480等中的至少一个。
主处理器1100可以控制系统1000的整体操作,并且更具体地,控制系统1000的其他组件的操作。主处理器1100可以体现为通用处理器、专用处理器、应用处理器等。
主处理器1100可以包括一个或多个CPU核1110,并且还可以包括用于控制存储器1020a和1020b和/或存储设备1010a和1010b等的控制器1120。根据至少一个示例实施例,主处理器1100还可以包括加速器块1130,其是用于诸如人工智能(AI)数据操作等的高速数据操作的专用电路,但不限于此。加速器块1130可以包括图形处理单元(GPU)、神经处理单元(NPU)和/或数据处理单元(DPU)等,并且可以体现为物理地独立于主处理器1100的其他组件的芯片,但不限于此。
存储器1020a和1020b可以用作系统1000的主存储器设备,并且可以包括诸如SRAM和/或DRAM的易失性存储器,但可以包括诸如闪速存储器、PRAM和/或RRAM等的非易失性存储器。存储器1020a和1020b可以在与主处理器1100相同的封装中实现,但不限于此。
存储设备1010a和1010b可以作用存储数据而无论是否供电的非易失性存储设备,并且可以具有比存储器1020a和1020b相对地更大的存储容量。存储设备1010a和1010b可以包括存储控制器1200a和1200b,以及在存储控制器1200a和1200b的控制下存储数据的非易失性存储器(NVM)存储装置1300a和1300b,但示例实施例不限于此。NVM存储装置1300a和1300b可以包括2D和/或3D V-NAND闪速存储器,但可以包括其他类型的NVM,诸如PRAM和/或RRAM等。
存储设备1010a和1010b可以与主处理器1100物理地分离地被包括在系统1000中或者可以被包括在与主处理器1100相同的封装中。此外,存储设备1010a和1010b可以具有与存储器卡相同的形状,并因此可以通过诸如下面将描述的连接接口1480的接口与系统1000的其他组件可拆卸地耦合。存储设备1010a和1010b可以是应用诸如通用闪速存储(UFS)的标准协定(convention)的设备,但不限于此。
图像捕获设备1410可以捕获静止图像或运动图片(例如,视频等)并且可以包括相机、摄录机和/或网络摄像头等。
用户输入设备1420可以从系统1000的用户接收各种类型的数据输入并且可以包括触摸板、小键盘、键盘、鼠标和/或麦克风等。
传感器1430可以检测可以从系统1000的外部获得的各种类型的物理量并且将检测到的物理量转换成电信号。传感器1430可以包括温度传感器、压力传感器、照度传感器、位置传感器、加速度传感器、生物传感器和/或陀螺仪等。
通信设备1440可以根据各种通信协议与系统1000外部的其他设备执行信号的发送和接收。通信设备1440可以包括天线、收发器和/或调制解调器等。
显示器1450和扬声器1460可以作用向系统1000的用户输出视觉信息和音频信息的输出设备。
电源设备1470可以适当地转换从系统1000中内置的电池(未示出)和/或外部电源供给的电力,并且将转换后的电力供给至系统1000的每个组件。
连接接口1480可以连接系统1000和在连接到系统1000时可以与系统1000交换数据的外部设备。连接接口1480可以根据各种接口方法来实现,诸如高级技术附接(ATA)、串行ATA(SATA)、外置SATA(e-SATA)、小型计算机小型接口(SCSI)、串行附接SCSI(SAS)、外围组件互连(PCI)、PCI快速(PCIe)、NVM快速(NVMe)、IEEE 1394、通用串行总线(USB)、安全数字(SD)卡、多媒体卡(MMC)、嵌入式多媒体卡(eMMC)、通用闪速存储(UFS)、嵌入式UFS(eUFS)、紧凑型闪速(CF)卡接口等。
尽管上面已经参考附图描述了本发明构思的各种示例实施例,但本发明构思不限于此并且可以以各种不同的形式来体现。本领域普通技术人员将理解,在不脱离本发明构思的技术精神或基本特征的情况下,可以以其他特定形式实现本发明构思的示例实施例。因此,此处阐述的示例实施例应仅被视为示例而不是出于限制的目的。
Claims (20)
1.一种存储设备,包括:
存储器设备,至少包括第一单层单元SLC区域、第二SLC区域和至少一个具有多层的单元的区域,所述第一SLC区域具有比所述第二SLC区域更高的数据读取速度,并且所述第二SLC区域具有比所述至少一个具有多层的单元的区域更高的数据读取速度;以及
存储控制器,被配置为从所述存储器设备读取数据并且控制所述数据在所述第一SLC区域、所述第二SLC区域和所述至少一个具有多层的单元的区域之间的迁移。
2.根据权利要求1所述的存储设备,其中,所述存储控制器还被配置为:
基于所述数据的特性控制所述数据在所述第一SLC区域、所述第二SLC区域和所述至少一个具有多层的单元的区域之间的迁移。
3.根据权利要求2所述的存储设备,其中,所述数据的特性包括以下中的至少一个:被编程到存储器设备的所述数据的写入时间、所述数据的读取计数或其任意组合。
4.根据权利要求3所述的存储设备,其中,所述存储控制器还被配置为:
响应于所述数据中所包括的错误的数量小于错误阈值并且所述数据的写入时间小于迁移阈值时间,将在所述第二SLC区域或所述至少一个具有多层的单元的区域上存储的所述数据迁移至所述第一SLC区域。
5.根据权利要求3所述的存储设备,其中,所述存储控制器还被配置为:
响应于所述数据中所包括的错误的数量大于或等于错误阈值并且所述数据的读取计数小于迁移阈值计数,保持在所述第二SLC区域或所述至少一个具有多层的单元的区域上存储的所述数据。
6.根据权利要求3所述的存储设备,其中,所述存储控制器还被配置为:
响应于所述数据的读取计数大于或等于迁移阈值计数,
将在所述第二SLC区域或所述至少一个具有多层的单元的区域中存储的所述数据迁移至所述第一SLC区域,以及
保持在第一SLC区域中存储的所述数据。
7.根据权利要求1所述的存储设备,其中,所述存储控制器还被配置为:
基于存储控制器的数据访问模式,动态地调整所述存储器设备的所述第一SLC区域、所述第二SLC区域和所述至少一个具有多层的单元的区域的大小。
8.根据权利要求1所述的存储设备,其中,所述至少一个具有多层的单元的区域包括多层单元MLC、三层单元TLC、四层单元QLC或其任何组合中的至少一个。
9.一种存储控制器的操作方法,包括:
从存储器设备的单层单元SLC区域读取数据;以及
基于所述数据的写入时间顺序和所述数据的读取计数来将所述数据迁移至所述存储器设备的具有多层的单元的区域,所述写入时间顺序指示所述数据被写入所述SLC区域的顺序,并且所述读取计数指示所述数据已经被读取的次数。
10.根据权利要求9所述的操作方法,其中
所述SLC区域还包括局部性队列区域;以及
所述方法还包括,
基于所述数据的特性将所述数据存储在所述局部队列区域中。
11.一种存储控制器,包括:
处理电路,被配置为:
发送针对数据的读取请求,所述数据存储在存储器设备中包括的第一单层单元SLC区域、第二SLC区域和具有多层的单元的区域中的一个中,所述第一SLC区域具有比所述第二SLC区域更高的数据读取速度,并且所述第二SLC区域具有比所述具有多层的单元的区域更高的数据读取速度;以及
基于所述数据的使用特性,改变所述数据在所述存储器设备中的存储位置。
12.根据权利要求11所述的存储控制器,其中,所述处理电路还被配置为:
响应于所述读取请求从所述存储器设备接收所述数据;
纠正接收的数据中的错误,并且确定所述接收的数据中包括的错误的数量;以及
基于确定的错误的数量改变所述接收的数据的存储位置。
13.根据权利要求11所述的存储控制器,其中,所述数据的所述使用特性包括以下中的至少一个:所述数据的写入时间、最近读取时间、读取计数、错误率或其任何组合。
14.根据权利要求13所述的存储控制器,其中,所述处理电路还被配置为:
响应于所述读取计数小于迁移阈值计数,将所述数据从所述第一SLC区域迁移至所述第二SLC区域或所述具有多层的单元的区域。
15.根据权利要求12所述的存储控制器,其中,所述处理电路还被配置为:
响应于所述接收的数据不可纠正,向所述存储器设备发送所述数据的第二读取请求。
16.根据权利要求13所述的存储控制器,其中,所述处理电路还被配置为:
响应于所述数据的所述存储位置为所述第一SLC区域并且所述数据的写入时间小于迁移阈值时间,保持所述数据在所述第一SLC区域的所述存储位置。
17.根据权利要求11所述的存储控制器,其中,所述处理电路还被配置为:
响应于所述数据的所述存储位置不是所述第一SLC区域,基于所述数据的读取计数大于或等于迁移阈值计数,将所述数据迁移至所述第一SLC区域。
18.根据权利要求11所述的存储控制器,其中,所述处理电路还被配置为:
基于所述数据的写入时间顺序,将所述第一SLC区域或所述第二SLC区域的数据迁移至所述具有多层的单元的区域。
19.根据权利要求18所述的存储控制器,其中,所述处理电路还被配置为:
响应于所述数据的读取计数超过迁移阈值计数,将所述数据迁移至所述第一SLC区域。
20.根据权利要求11所述的存储控制器,其中,所述处理电路还被配置为:
基于所述数据访问模式动态地调整所述第一SLC区域、所述第二SLC区域和所述具有多层的单元的区域的大小。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200156774A KR20220069543A (ko) | 2020-11-20 | 2020-11-20 | 스토리지 장치, 스토리지 컨트롤러 및 이를 포함하는 스토리지 시스템 |
KR10-2020-0156774 | 2020-11-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114518843A true CN114518843A (zh) | 2022-05-20 |
Family
ID=81452881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111376486.5A Pending CN114518843A (zh) | 2020-11-20 | 2021-11-19 | 存储控制器和包括存储控制器的存储设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11567685B2 (zh) |
KR (1) | KR20220069543A (zh) |
CN (1) | CN114518843A (zh) |
DE (1) | DE102021118940A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220099848A (ko) * | 2021-01-07 | 2022-07-14 | 에스케이하이닉스 주식회사 | 컨트롤러 및 이를 포함하는 메모리 시스템 |
US20220229574A1 (en) * | 2021-01-20 | 2022-07-21 | Micron Technology, Inc. | Data migration techniques |
US11526286B1 (en) * | 2021-06-29 | 2022-12-13 | Amazon Technologies, Inc. | Adaptive snapshot chunk sizing for snapshots of block storage volumes |
JP2023045033A (ja) * | 2021-09-21 | 2023-04-03 | キオクシア株式会社 | メモリシステム |
US11853572B2 (en) * | 2022-05-05 | 2023-12-26 | Western Digital Technologies, Inc. | Encoding-aware data routing |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8078794B2 (en) | 2000-01-06 | 2011-12-13 | Super Talent Electronics, Inc. | Hybrid SSD using a combination of SLC and MLC flash memory arrays |
KR101226685B1 (ko) | 2007-11-08 | 2013-01-25 | 삼성전자주식회사 | 수직형 반도체 소자 및 그 제조 방법. |
KR101691092B1 (ko) | 2010-08-26 | 2016-12-30 | 삼성전자주식회사 | 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템 |
US8553466B2 (en) | 2010-03-04 | 2013-10-08 | Samsung Electronics Co., Ltd. | Non-volatile memory device, erasing method thereof, and memory system including the same |
US9536970B2 (en) | 2010-03-26 | 2017-01-03 | Samsung Electronics Co., Ltd. | Three-dimensional semiconductor memory devices and methods of fabricating the same |
KR101682666B1 (ko) | 2010-08-11 | 2016-12-07 | 삼성전자주식회사 | 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템 |
KR101861170B1 (ko) | 2011-08-17 | 2018-05-25 | 삼성전자주식회사 | 마이그레이션 관리자를 포함하는 메모리 시스템 |
US8977803B2 (en) | 2011-11-21 | 2015-03-10 | Western Digital Technologies, Inc. | Disk drive data caching using a multi-tiered memory |
US9176862B2 (en) * | 2011-12-29 | 2015-11-03 | Sandisk Technologies Inc. | SLC-MLC wear balancing |
TWI606336B (zh) | 2016-04-21 | 2017-11-21 | 慧榮科技股份有限公司 | 儲存裝置及其控制單元、可用於儲存裝置的資料儲存方法 |
KR20180031289A (ko) * | 2016-09-19 | 2018-03-28 | 삼성전자주식회사 | 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
US10372531B2 (en) * | 2017-01-05 | 2019-08-06 | Texas Instruments Incorporated | Error-correcting code memory |
CN107608625B (zh) | 2017-08-11 | 2020-09-11 | 记忆科技(深圳)有限公司 | 一种提升固存储设备读性能的方法 |
US10545685B2 (en) | 2017-08-30 | 2020-01-28 | Micron Technology, Inc. | SLC cache management |
US10372342B2 (en) | 2017-10-02 | 2019-08-06 | Western Digital Technologies, Inc. | Multi-level cell solid state device and method for transferring data between a host and the multi-level cell solid state device |
US10698610B2 (en) | 2018-02-23 | 2020-06-30 | Western Digital Technologies, Inc. | Storage system and method for performing high-speed read and write operations |
US11288011B2 (en) * | 2020-03-26 | 2022-03-29 | Western Digital Technologies, Inc. | Non-volatile memory array with write failure protection for multi-level cell (MLC) storage elements using coupled writes |
-
2020
- 2020-11-20 KR KR1020200156774A patent/KR20220069543A/ko unknown
-
2021
- 2021-07-16 US US17/377,901 patent/US11567685B2/en active Active
- 2021-07-22 DE DE102021118940.3A patent/DE102021118940A1/de active Pending
- 2021-11-19 CN CN202111376486.5A patent/CN114518843A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
DE102021118940A1 (de) | 2022-05-25 |
KR20220069543A (ko) | 2022-05-27 |
US11567685B2 (en) | 2023-01-31 |
US20220164123A1 (en) | 2022-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6345210B2 (ja) | 軟判定復号のための物理アドレスの相互関連付け | |
US11068206B2 (en) | Data storage device for processing a sequential unmap entry by using trim instruction data and operating method thereof | |
US11567685B2 (en) | Storage controller and storage device including the same | |
KR102419036B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR102544162B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US20200310956A1 (en) | Data storage device and operating method thereof | |
US20230266884A1 (en) | Operating method for storage controller and storage system including same | |
US11782638B2 (en) | Storage device with improved read latency and operating method thereof | |
US20210397364A1 (en) | Storage device and operating method thereof | |
US11194512B2 (en) | Data storage device which selectively performs a cache read or a normal read operation depending on work load and operating method thereof | |
US10515693B1 (en) | Data storage apparatus and operating method thereof | |
US12001709B2 (en) | Storage devices and operating methods of storage controllers | |
US12032824B2 (en) | Event log management method, controller and storage device | |
US11726871B2 (en) | Storage controller for selecting a gear level of a storage device and storage system including the same | |
US11586379B2 (en) | Memory system and method of operating the same | |
US20210397558A1 (en) | Storage device and operating method thereof | |
CN113568565B (zh) | 存储器控制器及其操作方法 | |
US11157401B2 (en) | Data storage device and operating method thereof performing a block scan operation for checking for valid page counts | |
KR102583244B1 (ko) | 스토리지 장치 및 스토리지 장치의 동작 방법 | |
EP4220374A1 (en) | Storage device and operating method of storage device | |
US11314461B2 (en) | Data storage device and operating method of checking success of garbage collection operation | |
US20200341636A1 (en) | Data storage device, electronic device including the same, and operating method of data storage device | |
KR20230018873A (ko) | 메모리 시스템 및 그 동작 방법 | |
KR20210014337A (ko) | 데이터 저장 장치 및 그것의 동작 방법 |
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 |