CN113918476A - 存储装置及其操作方法 - Google Patents
存储装置及其操作方法 Download PDFInfo
- Publication number
- CN113918476A CN113918476A CN202110207026.3A CN202110207026A CN113918476A CN 113918476 A CN113918476 A CN 113918476A CN 202110207026 A CN202110207026 A CN 202110207026A CN 113918476 A CN113918476 A CN 113918476A
- Authority
- CN
- China
- Prior art keywords
- hpb
- host
- sub
- memory
- read command
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
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/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
- 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
-
- 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/0207—Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk 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/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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- 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/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
- G06F12/1018—Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
-
- 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/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more 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/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
-
- 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/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
-
- 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/1016—Performance improvement
-
- 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/60—Details of cache memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
-
- 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/7201—Logical to physical mapping or translation of blocks or pages
-
- 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
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)
- Mathematical Physics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Abstract
本公开涉及一种与包括主机存储器的主机通信的存储装置。该存储装置包括半导体存储器装置和装置存储器。半导体存储器装置包括多个非易失性存储器单元。装置存储器存储被高速缓存在主机存储器中的主机性能增强器(HPB)区域中的每一个中包括的HPB子区域的有效性信息。存储装置基于装置存储器中包括的有效性信息来确定停用被高速缓存在主机存储器中的HPB区域之中的至少一个HPB区域,并且将推荐停用所确定的HPB区域的消息传送到主机。
Description
相关申请的交叉引用
本申请要求于2020年7月9日提交的、申请号为10-2020-0084913的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
本公开涉及一种电子装置,并且更特别地,涉及一种存储装置及其操作方法。
背景技术
半导体存储器装置可以以串被水平地布置在半导体衬底上的二维结构形成,或者以串被垂直地堆叠在半导体衬底上的三维结构形成。设计三维半导体存储器装置是为了解决二维半导体存储器装置的集成限制,并且三维半导体存储器装置可以包括垂直堆叠在半导体衬底上的多个存储器单元。控制器可以根据来自主机的命令来控制半导体存储器装置的操作。存储装置包括控制器和半导体存储器装置。
发明内容
本公开的实施例提供了一种能够提高读取性能的存储装置及其操作方法。
根据本公开的实施例的存储装置与包括主机存储器的主机通信。存储装置包括半导体存储器装置和装置存储器。半导体存储器装置包括多个非易失性存储器单元。装置存储器存储被高速缓存在主机存储器中的主机性能增强器(HPB)区域中的每一个中包括的HPB子区域的有效性信息。存储装置被配置为基于装置存储器中包括的有效性信息来确定停用被高速缓存在主机存储器中的HPB区域之中的至少一个HPB区域,并且将推荐停用所确定的HPB区域的消息传送到主机。
在实施例中,可以在有效性位图中表示有效性信息,该有效性位图指示被高速缓存在主机存储器中的HPB区域中的HPB子区域是否有效。
在实施例中,存储装置可以进一步被配置为基于从被高速缓存在主机存储器中的HPB区域中的每一个中包括的HPB子区域的有效性信息中得出的有效率,来选择待停用的HPB区域。
在实施例中,存储装置可以选择HPB区域中具有最低有效率的HPB区域。
根据本公开的实施例的存储装置与包括主机存储器的主机通信。存储装置包括半导体存储器装置和装置存储器。半导体存储器装置包括多个非易失性存储器单元。装置存储器存储优先级表,该优先级表用于确定待被高速缓存在主机存储器中的主机性能增强器(HPB)子区域。存储装置被配置为基于从主机接收的读取命令来更新优先级表,并且将基于优先级表而推荐被高速缓存在主机存储器中的HPB子区域的消息传送到主机。
在实施例中,优先级表可以包括分别针对多个HPB区域中的每一个中包括的多个HPB子区域的优先级参考值。
在实施例中,响应于从主机接收的HPB读取命令,可以将与该HPB读取命令相对应的HPB子区域的优先级参考值增加第一权重,并且响应于从主机接收的普通读取命令,可以将与该普通读取命令相对应的HPB子区域的优先级参考值增加第二权重,第二权重不同于第一权重。
在实施例中,响应于从主机接收的普通读取命令,可以将与该普通读取命令相对应的HPB子区域的优先级参考值增加第三权重,当与从主机接收的HPB读取命令相对应的HPB子区域有效时,响应于接收到的HPB读取命令,可以将与接收到的HPB读取命令相对应的HPB子区域的优先级参考值增加第四权重,并且当与接收到的HPB读取命令相对应的HPB子区域无效时,响应于接收到的HPB读取命令,可以将与接收到的HPB读取命令相对应的HPB子区域的优先级参考值增加第五权重。
在实施例中,第五权重可以大于第四权重。
根据本公开的另一实施例,一种操作存储装置的方法,该存储装置与包括主机存储器的主机通信,该方法包括:确定停用被高速缓存在主机存储器中的多个主机性能增强器(HPB)区域中的任意一个;基于被高速缓存在主机存储器中的多个HPB区域的有效率来选择多个HPB区域中的任意一个;并且将推荐停用所选择的HPB区域的消息传送到主机。
在实施例中,在选择多个HPB区域中的任意一个时,选择被高速缓存在主机存储器中的多个HPB区域之中具有最低有效率的HPB区域。
根据本公开的另一实施例,一种操作存储装置的方法,该存储装置与包括主机存储器的主机通信,该方法包括:从主机接收读取命令;并且基于该读取命令的特性更新优先级参考值,该优先级参考值用于确定待被高速缓存在主机存储器中的主机性能增强器(HPB)子区域。
在实施例中,更新优先级参考值可以包括:确定读取命令是HPB读取命令还是普通读取命令;并且根据所确定的结果,将与读取命令相对应的HPB子区域的优先级参考值增加第一权重或不同于第一权重的第二权重。
在实施例中,当读取命令是HPB读取命令时,可以将与读取命令相对应的HPB子区域的优先级参考值增加第一权重。
在实施例中,当读取命令是普通读取命令时,可以将与读取命令相对应的HPB子区域的优先级参考值增加第二权重。
在实施例中,更新优先级参考值可以包括:当读取命令是HPB读取命令时,确定与HPB读取命令相对应的HPB子区域是否有效;并且根据所确定的结果,将与HPB读取命令相对应的HPB子区域的优先级参考值增加第三权重或不同于第三权重的第四权重。
在实施例中,当与HPB读取命令相对应的HPB子区域有效时,可以将HPB子区域的优先级参考值增加第三权重。
在实施例中,当与HPB读取命令相对应的HPB子区域无效时,可以将HPB子区域的优先级参考值增加第四权重。
在实施例中,该方法可以进一步包括:通过执行与读取命令相对应的读取操作,将读取数据传送到主机。
在实施例中,该方法可以进一步包括:将推荐将具有最大优先级参考值的HPB子区域高速缓存在主机存储器中的消息传送到主机。
根据本公开的另一实施例,一种主机性能增强器(HPB)的操作方法包括:停用当前启用的较高的映射数据组,其中无效的较低的映射数据组的数量大于阈值;并且启用所有的较低的映射数据组之中具有最高优先级的当前停用且有效的较低的映射数据组。每当读取与相应的较低的映射数据组有关的数据时,优先级增加。优先级的增加根据相应的较低组是否被启用或者被启用的相应较低组是否有效而不同。
本技术可以提供一种能够提高读取性能的存储装置及其操作方法。
附图说明
图1是示出根据本公开的实施例的包括控制器的存储装置的框图。
图2是示出根据本公开的实施例的半导体存储器装置的框图。
图3是示出图2的存储器单元阵列的实施例的示图。
图4是示出图3的存储块BLK1至BLKz中的任意一个存储块BLKa的电路图。
图5是示出图3的存储块BLK1至BLKz中的任意一个存储块BLKb的另一实施例的电路图。
图6是示出图2的存储器单元阵列中的存储块BLK1至BLKz中的任意一个存储块BLKc的实施例的电路图。
图7是示出根据本公开的实施例的主机与存储装置之间的普通读取操作和HPB读取操作的框图。
图8A是示出当映射信息高速缓存未命中时的数据读取操作的时序图。图8B是示出当在装置存储器中映射信息高速缓存命中时的数据读取操作的时序图。图8C是示出当在主机存储器中映射信息高速缓存命中时的数据读取操作的时序图。
图9是示出用于HPB高速缓存的HPB区域和HPB子区域的示图。
图10是示出在装置控制模式下的HPB读取缓冲器命令以及根据HPB读取缓冲器命令的操作的示图。
图11是示出在装置控制模式下的HPB读取命令以及根据HPB读取命令的操作的示图。
图12是示出根据本公开的实施例的管理HPB区域中包括的HPB子区域的有效性位图的方法的示图。
图13是示出根据本公开的实施例的停用HPB区域的方法的流程图。
图14A是示出根据本公开的实施例的管理用于启用HPB子区域的优先级参考值的方法的流程图。
图14B是示出包括根据图14A管理的优先级参考值的优先级表的示图。
图15A是示出根据本公开的另一实施例的管理用于启用HPB子区域的优先级参考值的方法的流程图。
图15B是示出包括根据图15A管理的优先级参考值的优先级表的示图。
图16是示出包括半导体存储器装置和控制器的存储装置的框图。
图17是示出诸如图16的存储装置的应用示例的框图。
图18是示出包括诸如图17的存储装置的计算系统的框图。
具体实施方式
本文提供特定的结构和功能描述仅仅是为了描述本公开的实施例。然而,本发明可以以各种形式配置并且可以以各种方式执行;因此,本发明不限于所公开的实施例。而且,在整个说明书中,对“实施例”、“另一实施例”等的引用不一定仅针对一个实施例,并且对任何这种短语的不同引用不一定针对相同的实施例。本文中使用的术语“各个实施例”不一定指所有实施例。
图1是示出根据本公开的实施例的包括控制器的存储装置的框图。
参照图1,存储装置1000包括半导体存储器装置100和控制器200。另外,存储装置1000与主机300通信。控制器200控制半导体存储器装置100的全部操作。另外,控制器200基于从主机300接收的命令请求来控制半导体存储器装置100的操作。
半导体存储器装置100在控制器200的控制下进行操作。半导体存储器装置100包括具有多个存储块的存储器单元阵列。在实施例中,半导体存储器装置100可以是闪速存储器装置。
控制器200可以从主机接收数据的写入命令、读取命令等,并且基于接收到的命令来控制半导体存储器装置100。更具体地,控制器200可以生成用于控制半导体存储器装置100的操作的命令,并且将命令传输到半导体存储器装置100。
半导体存储器装置100被配置为从控制器200接收命令和地址,并且访问存储器单元阵列中由该地址选择的区域。也就是说,半导体存储器装置100对由该地址选择的区域执行与命令相对应的内部操作。
例如,半导体存储器装置100可以执行编程操作、读取操作和擦除操作。在编程操作期间,半导体存储器装置100可以将数据编程到由地址选择的区域。在读取操作期间,半导体存储器装置100可以从由地址选择的区域读取数据。在擦除操作期间,半导体存储器装置100可以擦除由地址选择的区域中存储的数据。
主机300可以包括诸如以下的各种电子装置中的任意一种:诸如移动电话、MP3播放器和膝上型计算机的便携式电子装置,或者诸如台式计算机、游戏机、TV和投影仪的非便携式电子装置,即无线或有线电子装置。另外,主机300包括至少一个操作系统(OS),并且该操作系统通常管理和控制主机300的功能和操作,并使用存储装置1000来提供主机300和用户之间的交互。在此,OS可以支持与用户的使用对象和目的相对应的功能和操作。例如,根据主机300的移动性,可以将OS划分为通用OS和移动OS。另外,根据用户的使用环境,可以将OS中的通用OS划分为个人OS和企业OS。例如,个人OS可以支持普通用户的服务提供功能,并且包括windows、Chrome等。企业OS可以确保和支持高性能,并且包括Windows服务器、Linux、Unix等。另外,OS中的移动OS可以针对用户支持系统的移动性服务提供功能和省电功能,并且包括Android、iOS、Windows Mobile等。主机300可以包括多个OS,并且运行OS以利用存储装置1000来对应于用户请求执行操作。在此,主机300将与用户请求相对应的多个命令传输到存储装置1000,因此存储装置1000执行与命令相对应的操作,即与用户请求相对应的操作。关于存储装置1000的控制,主机300可以包括在OS中配置或与OS分开配置的文件系统。
主机300可以包括主机存储器310。主机存储器310的整个存储区域的至少一部分可以包括用于主机性能增强器(下文中称为HPB)功能的HPB高速缓存区域。HPB功能可以指将存储装置1000的映射数据的至少一部分高速缓存在主机存储器310中并使用该映射数据的至少一部分的功能。下面参照图7至图11描述HPB功能。
图2是示出根据本公开的实施例的半导体存储器装置的框图。
参照图2,半导体存储器装置100包括存储器单元阵列110、地址解码器120、读取和写入电路130、控制逻辑140和电压生成器150。
存储器单元阵列110包括多个存储块BLK1至BLKz,多个存储块BLK1至BLKz通过字线WL连接到地址解码器120。多个存储块BLK1至BLKz通过位线BL1至BLm连接到读取和写入电路130。多个存储块BLK1至BLKz中的每一个包括多个存储器单元。在实施例中,多个存储器单元是非易失性存储器单元,并且可以由具有垂直沟道结构的非易失性存储器单元配置。存储器单元阵列110可以被配置为二维结构的存储器单元阵列。根据实施例,存储器单元阵列110可以被配置为三维结构的存储器单元阵列。存储器单元阵列中的多个存储器单元中的每一个可以存储至少一位数据。在实施例中,存储器单元阵列110中的多个存储器单元中的每一个可以是存储一位数据的单层单元(SLC)、存储两位数据的多层单元(MLC)、存储三位数据的三层单元(TLC)或存储四位数据的四层单元(QLC)。在另一实施例中,存储器单元阵列110可以包括每个存储五位或更多位数据的多个存储器单元。
地址解码器120、读取和写入电路130、控制逻辑140和电压生成器150作为驱动存储器单元阵列110的外围电路进行操作。地址解码器120通过字线WL连接到存储器单元阵列110。地址解码器120被配置为响应于控制逻辑140的控制而操作。地址解码器120通过半导体存储器装置100内部的输入/输出缓冲器(未示出)接收地址。
地址解码器120被配置为对接收到的地址之中的块地址进行解码。地址解码器120根据解码后的块地址选择至少一个存储块。另外,在读取操作期间,地址解码器120在读取电压施加操作的时间将在电压生成器150中生成的读取电压Vread施加到所选择的存储块的所选择的字线,并且将通过电压Vpass施加到其余未选择的字线。另外,在编程验证操作期间,地址解码器120将在电压生成器150中生成的验证电压施加到所选择的存储块的所选择的字线,并且将通过电压Vpass施加到其余未选择的字线。
地址解码器120被配置为对接收到的地址的列地址进行解码。地址解码器120将解码后的列地址传输到读取和写入电路130。
半导体存储器装置100的读取操作和编程操作以页面为单位执行。在请求读取操作和编程操作的时间接收的地址包括块地址、行地址和列地址。地址解码器120根据块地址和行地址选择一个存储块和一个字线。列地址由地址解码器120解码,并且被提供到读取和写入电路130。
地址解码器120可以包括块解码器、行解码器、列解码器、地址缓冲器等。
读取和写入电路130包括多个页面缓冲器PB1至PBm。读取和写入电路130可以在存储器单元阵列110的读取操作期间作为“读取电路”进行操作,并且可以在存储器单元阵列110的写入操作期间作为“写入电路”进行操作。多个页面缓冲器PB1至PBm通过位线BL1至BLm连接到存储器单元阵列110。在读取操作和编程验证操作期间,为了感测存储器单元的阈值电压,多个页面缓冲器PB1至PBm在连续向连接到存储器单元的位线供应感测电流的同时,通过感测节点来感测根据相应存储器单元的编程状态而流过的电流量的变化,并且将感测到的变化锁存为感测数据。读取和写入电路130响应于从控制逻辑140输出的页面缓冲器控制信号而操作。
在读取操作期间,读取和写入电路130感测存储器单元的数据,临时存储读取数据,并且将数据DATA输出到半导体存储器装置100的输入/输出缓冲器(未示出)。在实施例中,除了页面缓冲器(或页面寄存器)之外,读取和写入电路130还可以包括列选择电路等。
控制逻辑140连接到地址解码器120、读取和写入电路130以及电压生成器150。控制逻辑140通过半导体存储器装置100的输入/输出缓冲器(未示出)接收命令CMD和控制信号CTRL。控制逻辑140被配置为响应于控制信号CTRL而控制半导体存储器装置100的全部操作。另外,控制逻辑140输出用于调整多个页面缓冲器PB1至PBm的感测节点预充电电位电平的控制信号。控制逻辑140可以控制读取和写入电路130以执行存储器单元阵列110的读取操作。
电压生成器150响应于从控制逻辑140输出的控制信号,在读取操作期间生成读取电压Vread和通过电压Vpass。为了生成具有各种电压电平的多个电压,电压生成器150可以包括接收内部电源电压的多个泵浦电容器,并且通过响应于控制逻辑140的控制而选择性地启用多个泵浦电容器来生成多个电压。
地址解码器120、读取和写入电路130以及电压生成器150可以用作对存储器单元阵列110执行读取操作、写入操作和擦除操作的“外围电路”。外围电路基于控制逻辑140的控制,对存储器单元阵列110执行读取操作、写入操作和擦除操作。
图3是示出图2的存储器单元阵列的实施例的示图。
参照图3,存储器单元阵列110包括多个存储块BLK1至BLKz。每个存储块可以具有三维结构。每个存储块包括堆叠在衬底上的多个存储器单元。这样的多个存储器单元沿着+X方向、+Y方向和+Z方向布置。参照图4和图5更详细地描述了每个存储块的结构。
图4是示出图3的存储块BLK1至BLKz中的任意一个存储块BLKa的电路图。
参照图4,存储块BLKa包括多个单元串CS11至CS1m和CS21至CS2m。在实施例中,多个单元串CS11至CS1m和CS21至CS2m中的每一个可以形成为“U”形。在存储块BLKa中,m个单元串被布置在行方向(即,+X方向)上。在图4中,两个单元串被布置在列方向(即,+Y方向)上。然而,这是为了清楚起见;可以在列方向上布置三个或更多个单元串。
多个单元串CS11至CS1m和CS21至CS2m中的每一个包括至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn、管道晶体管PT以及至少一个漏极选择晶体管DST。
选择晶体管SST和DST以及存储器单元MC1至MCn中的每一个可以具有类似的结构。在实施例中,选择晶体管SST和DST以及存储器单元MC1至MCn中的每一个可以包括沟道层、隧道绝缘膜、电荷存储膜和阻挡绝缘膜。在实施例中,可以在每个单元串中设置用于提供沟道层的支柱。在实施例中,可以在每个单元串中设置用于提供沟道层、隧道绝缘膜、电荷存储膜和阻挡绝缘膜中的至少一个的支柱。
每个单元串的源极选择晶体管SST连接在公共源极线CSL与存储器单元MC1至MCp之间。
在实施例中,被布置在相同行中的单元串的源极选择晶体管连接到在行方向上延伸的源极选择线,并且被布置在不同行中的单元串的源极选择晶体管连接到不同的源极选择线。在图4中,第一行的单元串CS11至CS1m的源极选择晶体管连接到第一源极选择线SSL1。第二行的单元串CS21至CS2m的源极选择晶体管连接到第二源极选择线SSL2。
作为另一实施例,单元串CS11至CS1m和CS21至CS2m的源极选择晶体管可以共同地连接到一个源极选择线。
每个单元串的第一至第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。
每个单元串的管道晶体管PT的栅极连接到管线PL。
每个单元串的漏极选择晶体管DST连接在相应的位线与存储器单元MCp+1至MCn之间。被布置在行方向上的单元串连接到在行方向上延伸的漏极选择线。第一行的单元串CS11至CS1m的漏极选择晶体管连接到第一漏极选择线DSL1。第二行的单元串CS21至CS2m的漏极选择晶体管连接到第二漏极选择线DSL2。
布置在列方向上的单元串连接到在列方向上延伸的位线。在图4中,第一列的单元串CS11和CS21连接到第一位线BL1。第m列的单元串CS1m和CS2m连接到第m位线BLm。
布置在行方向上的单元串中连接到相同字线的存储器单元配置一个页面。例如,在第一行的单元串CS11至CS1m之中,连接到第一字线WL1的存储器单元配置一个页面。在第二行的单元串CS21至CS2m之中,连接到第一字线WL1的存储器单元配置另一页面。可以通过选择漏极选择线DSL1和DSL2中的任意一个来选择布置在一个行方向上的单元串。可以通过选择字线WL1至WLn中的任意一个来选择所选择的单元串的一个页面。
在另一实施例中,可以提供偶数位线和奇数位线,而不是第一至第m位线BL1至BLm。另外,被布置在行方向上的单元串CS11至CS1m或CS21至CS2m之中的偶数编号单元串可以分别连接到偶数位线,并且被布置在行方向上的单元串CS11至CS1m或CS21至CS2m之中的奇数编号单元串可以分别连接到奇数位线。
在实施例中,第一至第n存储器单元MC1至MCn中的至少一个可以用作虚设存储器单元。例如,设置至少一个虚设存储器单元以减小源极选择晶体管SST与存储器单元MC1至MCp之间的电场。可选地,设置至少一个虚设存储器单元以减小漏极选择晶体管DST与存储器单元MCp+1至MCn之间的电场。随着设置更多的虚设存储器单元,提高了存储块BLKa的操作的可靠性,然而,存储块BLKa的大小增加。随着设置更少的存储器单元,可以减小存储块BLKa的大小,然而,存储块BLKa的操作的可靠性可能降低。
为了有效地控制(多个)虚设存储器单元,虚设存储器单元中的每一个可以具有所需的阈值电压。在存储块BLKa的擦除操作之前或之后,可以对所有或部分的虚设存储器单元执行编程操作。当在执行编程操作之后执行擦除操作时,通过控制施加到连接到各个虚设存储器单元的虚设字线的电压,虚设存储器单元可以具有所需的阈值电压。
图5是示出图3的存储块BLK1至BLKz中的任意一个存储块BLKb的另一实施例的电路图。
参照图5,存储块BLKb包括多个单元串CS11′至CS1m′和CS21′至CS2m′。多个单元串CS11′至CS1m′和CS21′至CS2m′中的每一个沿着+Z方向延伸。多个单元串CS11′至CS1m′和CS21′至CS2m′中的每一个包括堆叠在存储块BLKb下面的衬底(未示出)上的至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn以及至少一个漏极选择晶体管DST。
每个单元串的源极选择晶体管SST连接在公共源极线CSL与存储器单元MC1至MCn之间。被布置在相同行中的单元串的源极选择晶体管连接到相同的源极选择线。被布置在第一行中的单元串CS11′至CS1m′的源极选择晶体管连接到第一源极选择线SSL1。被布置在第二行中的单元串CS21′至CS2m′的源极选择晶体管连接到第二源极选择线SSL2。在另一实施例中,单元串CS11′至CS1m′和CS21′至CS2m′的源极选择晶体管可以共同地连接到一个源极选择线。
每个单元串的第一至第n存储器单元MC1至MCn串联连接在源极选择晶体管SST和漏极选择晶体管DST之间。第一至第n存储器单元MC1至MCn的栅极分别连接到第一至第n字线WL1至WLn。
每个单元串的漏极选择晶体管DST连接在相应的位线与存储器单元MC1至MCn之间。被布置在行方向上的单元串的漏极选择晶体管连接到在行方向上延伸的漏极选择线。第一行的单元串CS11′至CS1m′的漏极选择晶体管连接到第一漏极选择线DSL1。第二行的单元串CS21′至CS2m′的漏极选择晶体管连接到第二漏极选择线DSL2。
因此,图5的存储块BLKb具有与图4的存储块BLKa类似的等效电路,不同之处在于从每个单元串中排除管道晶体管PT。
在另一实施例中,可以提供偶数位线和奇数位线,而不是第一至第m位线BL1至BLm。另外,被布置在行方向上的单元串CS11′至CS1m′或CS21′至CS2m′之中的偶数编号单元串可以分别连接到偶数位线,并且被布置在行方向上的单元串CS11′至CS1m′或CS21′至CS2m′之中的奇数编号单元串可以分别连接到奇数位线。
在实施例中,第一至第n存储器单元MC1至MCn中的至少一个可以用作虚设存储器单元。例如,设置至少一个虚设存储器单元以减小源极选择晶体管SST与存储器单元MC1至MCn之间的电场。可选地,设置至少一个虚设存储器单元以减小漏极选择晶体管DST与存储器单元MC1至MCn之间的电场。随着设置更多的虚设存储器单元,提高了存储块BLKb的操作的可靠性,然而,存储块BLKb的大小增加。随着设置更少的存储器单元,可以减小存储块BLKb的大小,然而,存储块BLKb的操作的可靠性可能降低。
为了有效地控制(多个)虚设存储器单元,虚设存储器单元中的每一个可以具有所需的阈值电压。在存储块BLKb的擦除操作之前或之后,可以对所有或部分的虚设存储器单元执行编程操作。当在执行编程操作之后执行擦除操作时,通过控制施加到连接到各个虚设存储器单元的虚设字线的电压,虚设存储器单元可以具有所需的阈值电压。
图6是示出图2的存储器单元阵列110中包括的存储块BLK1至BLKz中的任意一个存储块BLKc的实施例的电路图。
参照图6,存储块BLKc包括多个单元串CS1至CSm。多个单元串CS1至CSm可以分别连接到多个位线BL1至BLm。单元串CS1至CSm中的每一个包括至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn以及至少一个漏极选择晶体管DST。
选择晶体管SST和DST以及存储器单元MC1至MCn中的每一个可以具有类似的结构。在实施例中,选择晶体管SST和DST以及存储器单元MC1至MCn中的每一个可以包括沟道层、隧道绝缘膜、电荷存储膜和阻挡绝缘膜。在实施例中,可以在每个单元串中设置用于提供沟道层的支柱。在实施例中,可以在每个单元串中设置用于提供沟道层、隧道绝缘膜、电荷存储膜和阻挡绝缘膜中的至少一个的支柱。
每个单元串的源极选择晶体管SST连接在公共源极线CSL与存储器单元MC1至MCn之间。
每个单元串的第一至第n存储器单元MC1至MCn连接在源极选择晶体管SST和漏极选择晶体管DST之间。
每个单元串的漏极选择晶体管DST连接在相应的位线与存储器单元MC1至MCn之间。
连接到相同字线的存储器单元配置一个页面。可以通过选择漏极选择线DSL来选择单元串CS1至CSm。可以通过选择字线WL1至WLn中的任意一个来选择所选择的单元串之中的一个页面。
在另一实施例中,可以提供偶数位线和奇数位线,而不是第一至第m位线BL1至BLm。单元串CS1至CSm之中的偶数编号单元串可以分别连接到偶数位线,并且奇数编号单元串可以分别连接到奇数位线。
图7是示出根据本公开的实施例的主机300与存储装置1000之间的普通读取操作和HPB读取操作的框图。参照图7,主机300可以包括主机存储器310、文件系统320和装置接口330。存储装置1000可以包括半导体存储器装置100、装置存储器210和处理器220。装置存储器210和处理器220可以被包括在图1的控制器200中。图7集中于主机300和存储装置1000中与本公开的操作有关的组件。然而,主机300和存储装置1000均不限于图7所示的组件。
在描述图7之前,描述了存储装置1000的基本操作。通常,存储装置1000以页面为单位执行写入操作和读取操作。相反,存储装置1000以存储块为单位执行擦除操作。因此,与随机存取存储器装置(例如,动态随机存取存储器(DRAM)装置等)相比,存储装置1000在执行写入操作、读取操作和擦除操作方面具有局限性。因此,存储装置1000可以在控制器200中包括闪存转换层(FTL),并且通过FTL执行命令操作、内部操作等。也就是说,控制器200可以根据从主机300接收的命令来控制半导体存储器装置100。控制器200可以执行独立于来自主机300的指令而执行的、诸如垃圾收集操作、读取回收操作和损耗均衡操作的内部操作。换句话说,控制器200通过运行利用软件实施的FTL来执行上述操作。FTL可以由控制器200的处理器220运行。因此,FTL的操作中的每一个由处理器220执行。
通过命令执行的操作以及内部操作通过FTL执行将从主机300提供的逻辑地址(LA)转化或转换为存储装置1000的物理地址(PA)的地址映射操作来执行。然而,在存储装置1000使用FTL执行地址映射操作时,使用了从主机300提供的逻辑块地址(LBA)与存储装置1000的物理块地址(PBA)之间的映射信息。可以在存储映射数据的映射表(即,逻辑到物理映射表(L2P映射表))中提供映射信息。随着存储装置1000的扩展,映射表的大小不可避免地增加。因此,存储装置1000搜索映射表所花费的时间增加,这可能会降低存储装置1000的操作速度。为了解决这种问题,包括主机300和存储装置1000的数据处理系统可以在主机300中具有多个主机映射表并将存储装置1000的映射表同步到主机映射表,以使得能够在主机300中优先执行地址映射操作。这种操作可以被称为HPB操作。
图7是基于主机300中包括的主机映射表执行读取操作以及执行存储装置1000中包括的映射表的同步操作的示图。
主机300的文件系统320根据OS按需要生成数据写入和读取命令。主机存储器310可以存储主机映射表。主机映射表可以包括关于半导体存储器装置100中存储的所有或一些用户数据的映射信息。装置接口330可以基于文件系统320的控制,将数据的读取命令、数据的写入命令以及写入数据传送到存储装置1000。另外,装置接口330可以将从存储装置1000接收的读取数据传送到文件系统320。
装置接口330可以被包括在主机300中,以便于主机300与存储装置1000之间的数据交换。装置接口330可以通过并行ATA(PATA)总线、串行ATA(SATA)总线、小型计算机系统接口(SCSI)、通用串行总线(USB)、外围组件互连(PCI)、高速外围组件互连(PCIe)、高速非易失性存储器(NVMe)接口等连接到存储装置1000。
当装置接口330将数据的读取命令传送到存储装置1000时,从主机存储器310接收的映射信息也可以被传送。例如,当与对应于待传送到存储装置1000的读取命令的数据的LBA有关的映射信息被包括在主机存储器310中存储的主机映射表中时,装置接口330可以将该LBA和与该LBA有关的映射信息以及读取命令一起传送到存储装置1000。当与对应于待传送到存储装置1000的读取命令的数据的LBA有关的映射信息未包括在主机存储器310中存储的主机映射表中时,装置接口330可以仅将读取命令以及数据的LBA传送到存储装置1000,而不传送LBA的映射信息。
当存储装置1000从主机300接收特定的操作命令时,由处理器220运行的FTL可以生成用于执行相应命令的命令,并且将该命令传送到半导体存储器装置100。例如,当存储装置1000从主机300接收数据的写入命令时,由处理器220运行的FTL可以生成编程命令并将该编程命令传送到半导体存储器装置100。在这种情况下,编程数据也可以与编程命令一起被传送到半导体存储器装置100。当存储装置1000从主机300接收数据的读取命令时,由处理器220运行的FTL可以生成读取命令并将该读取命令传送到半导体存储器装置100。
在数据的编程操作期间,控制器200可以更新与编程数据有关的映射信息。映射表也基于映射信息的更新而更新。更新后的映射表可以被存储在半导体存储器装置100中。
在数据的读取操作期间,控制器200需要与读取数据有关的映射信息。当与读取数据相对应的映射信息被高速缓存在装置存储器210中时,控制器200可以生成与所接收的读取命令相对应的读取命令,并且将该读取命令传送到半导体存储器装置100。当与读取数据相对应的映射信息未被高速缓存在装置存储器210中时,控制器200首先将映射信息的读取命令传送到半导体存储器装置100。在半导体存储器装置100读取映射信息并将该映射信息传送到FTL之后,FTL将用于读取数据的读取命令与根据从半导体存储器装置100接收的映射信息的PBA一起传送到半导体存储器装置100。半导体存储器装置读取与所接收的读取命令相对应的数据,并且将数据传送到控制器200的FTL。控制器200将所接收的数据传送到主机300。主机300的装置接口330将所接收的数据传送到文件系统320。
存储装置1000的装置存储器210可以被配置为易失性存储器。在一个示例中,装置存储器210可以被配置为DRAM装置。在另一实施例中,装置存储器210可以被配置为静态随机存取存储器(SRAM)装置。
在许多情况下,因为存储装置1000中包括的控制器200的装置存储器210的容量小于主机存储器310的容量,所以用于保持映射表的空间不足。根据HPB操作,将半导体存储器装置100的映射表的所有或一部分保持在主机存储器310中,以提高映射表的高速缓存性能。在这种情况下,与仅将映射表高速缓存在装置存储器210中的情况相比,因为主机300执行转换,所以可以减少存储装置1000将LBA转换为相应的PBA所花费的时间。因此,可以增加主机300和存储装置1000之间的数据读取速度。
图8A是示出当映射信息高速缓存未命中时的数据读取操作的时序图。图8B是示出当映射信息在装置存储器210中高速缓存命中时的数据读取操作的时序图。图8C是示出当映射信息在主机存储器310中高速缓存命中时的数据读取操作的时序图。在下文中,参照这些附图以及图7描述当映射信息高速缓存未命中和高速缓存命中时的数据读取操作。
当主机300期望读取数据时,文件系统320将用于读取相应数据的控制信号传送到装置接口330(A)。当与相应的读取数据相对应的映射信息被存储在主机存储器310中时,主机存储器310将该映射信息传送到装置接口330。在这种情况下,装置接口330可以将与读取命令相对应的映射信息与该读取命令一起传送到存储装置1000。当与读取数据相对应的映射信息未被存储在主机存储器310中时,装置接口330可以仅将读取命令以及数据的LBA传送到存储装置1000,而不传送与LBA有关的映射信息。
图8A中示出与读取数据相对应的映射信息未被存储在主机存储器310中并且也未被存储在装置存储器210中的情况下的操作。装置接口330仅将读取命令和LBA传送到存储装置1000,而不传送LBA的映射信息(B)。由处理器220运行的FTL获取所接收的读取命令。当与所接收的读取命令相对应的映射信息未被存储在装置存储器210中时,控制器200将用于读取映射信息的读取命令传送到半导体存储器装置100(E)。半导体存储器装置100读取与所接收的读取命令相对应的映射信息。在该操作中,可以消耗用于从半导体存储器装置100的存储器单元阵列110读取包括相应的映射信息的L2P映射数据的时间tR。半导体存储器装置100将所读取的映射信息传送到控制器200(F)。在该操作中,可以将所接收的映射信息高速缓存在装置存储器210中。基于所接收的映射信息,FTL将用于读取最初意在读取的数据(即,用户数据)的读取命令以及与该读取命令相对应的PA传送到半导体存储器装置100(G)。半导体存储器装置100读取与所接收的读取命令相对应的用户数据。在该操作中,可以消耗用于从存储器单元阵列110读取用户数据的时间tR。所读取的用户数据被传送到控制器200(H),并且被从控制器200传送到主机300(I)。主机300的装置接口330将所接收的用户数据传送到文件系统320(J)。参照图8A,当与读取数据相对应的映射信息未被存储在装置存储器210和主机存储器310中时,会另外消耗用于读取L2P映射数据的读取时间,并且消耗的总读取时间较长。
图8B中示出与读取数据相对应的映射信息被存储在装置存储器210中的情况下的操作。装置接口330仅将读取命令以及数据的LBA传送到存储装置1000,而不传送与LBA有关的映射信息(B)。由处理器220运行的FTL获取所接收的读取命令。因为与所接收的读取命令及其LBA相对应的映射信息被存储在装置存储器210中,所以处理器220从装置存储器210接收映射信息(D)。基于所接收的映射信息,FTL将用于读取用户数据的读取命令以及与该读取命令相对应的PA传送到半导体存储器装置100(G)。半导体存储器装置100读取与所接收的读取命令相对应的用户数据。在该操作中,可以消耗用于从存储器单元阵列110读取用户数据的时间tR。所读取的用户数据被传送到控制器200(H),并且被从控制器200传送到主机300(I)。主机300的装置接口330将所接收的用户数据传送到文件系统320(J)。参照图8B,当与读取数据相对应的映射信息被存储在装置存储器210中时,因为没有消耗用于读取L2P映射数据的读取时间,所以可以减少整个读取时间。
图8C中示出与读取数据相对应的映射信息被存储在主机存储器310中的情况下的操作,即,HPB读取操作。装置接口330将从主机存储器310接收的映射信息(C)与读取命令一起传送到存储装置1000(B)。由处理器220运行的FTL获取所接收的读取命令。在该过程中,FTL确定从主机存储器310接收的映射信息是否有效(K)。当从主机存储器310接收的映射信息有效时,基于所接收的映射信息,FTL将用于读取用户数据的读取命令以及与该读取命令相对应的PA传送到半导体存储器装置100(G)。半导体存储器装置100读取与所接收的读取命令相对应的用户数据。在该操作中,可以消耗用于从存储器单元阵列110读取用户数据的时间tR。所读取的用户数据被传送到控制器200(H),并且被从控制器200传送到主机300(I)。主机300的装置接口330将所接收的用户数据传送到文件系统320(J)。参照图8C,当与读取数据相对应的映射信息被存储在主机存储器310中时,因为存储装置1000没有消耗用于将逻辑地址转换为物理地址的时间,所以可以减少整个读取时间。
参照图8A至图8C,同与读取数据相对应的映射信息未被存储在主机存储器310和装置存储器210中的情况(图8A)相比,在相应的映射信息被存储在主机存储器310或装置存储器210中的情况(图8B和图8C)下,可以提高读取速度。
图9是示出主机存储器310或HPB高速缓存内的HPB区域和HPB子区域的示图。在HPB操作的定义中,整个逻辑块地址空间被划分为多个HPB区域。在图9中,从逻辑块地址LBA 0到逻辑块地址LBA z的逻辑块地址空间可以被划分为N个HPB区域,即HPB区域0、HPB区域1、……、和HPB区域N-1。在实施例中,多个HPB区域中的每一个,即HPB区域0、HPB区域1、……、和HPB区域N-1中的每一个,可以具有相同的大小。在另一实施例中,HPB区域中的至少两个可以具有不同的大小。
HPB区域中的每一个,即HPB区域0、HPB区域1、……、和HPB区域N-1中的每一个,可以包括多个HPB子区域。在图9的示例中,HPB区域中的每一个可以包括L个HPB子区域,即HPB子区域0、HPB子区域1、……、和HPB子区域L-1。在实施例中,多个HPB子区域可以具有相同的大小。在另一实施例中,HPB子区域中的至少两个可以具有不同的大小。HPB子区域中的每一个可以包括多个L2P映射条目。一个L2P映射条目可以是指示单个页面的L2P映射关系的数据。在HPB操作中,可以以HPB子区域为单位将L2P映射数据高速缓存在主机存储器310中。在HPB操作中,可以以HPB区域为单位丢弃高速缓存在主机存储器310中的L2P映射数据。被高速缓存在主机存储器310中的HPB子区域被称为“被启用”。未被高速缓存在主机存储器310中的HPB子区域被称为“停用”(或“未启用”)。
在HPB操作中,可以使用两种HPB模式。一种是主机控制模式,另一种是装置控制模式。在主机控制模式下,主机确定待被高速缓存在主机存储器中的L2P映射数据,并且主机还确定待从主机存储器丢弃的L2P映射数据。也就是说,主机可以自己确定待启用的HPB子区域和待停用的HPB区域。在装置控制模式下,存储装置1000选择待被高速缓存在主机存储器310中的L2P映射数据并向主机300推荐该L2P映射数据。主机300将请求根据来自存储装置1000的推荐而被选择性地推荐的L2P映射数据的HPB读取缓冲器命令传送到存储装置1000。存储装置1000根据所接收的HPB读取缓冲器命令来读取所推荐的L2P映射数据,并且将所推荐的L2P映射数据传送到主机300,并且主机300将所接收的L2P映射数据存储在主机存储器310中。另外,在装置控制模式下,存储装置1000选择待从主机存储器310丢弃的L2P映射数据并向主机300推荐该L2P映射数据。主机300丢弃根据来自存储装置1000的推荐而被选择性地推荐的L2P映射数据。稍后参照图10和图11描述根据装置控制模式的HPB操作。
图10是示出在装置控制模式下的HPB读取缓冲器命令以及根据HPB读取缓冲器命令的操作的示图。
参照图10,存储装置1000确定待启用的HPB子区域和/或待停用的HPB区域(S110)。也就是说,在操作S110中,存储装置1000可以确定包括待被高速缓存在主机存储器310中的L2P映射条目的HPB子区域。另外,在操作S110中,存储装置1000可以确定包括当前被高速缓存在主机存储器310中的L2P映射条目之中待丢弃的L2P映射条目的HPB区域。如上所述,在HPB操作中,可以以HPB子区域为单位将L2P映射数据高速缓存在主机存储器310中,并且可以以HPB区域为单位丢弃被高速缓存在主机存储器310中的L2P映射数据。
存储装置1000可以传送响应消息,该响应消息包括对确定启用的HPB子区域和/或确定停用的HPB区域的推荐(S120)。在操作S120中被传送到主机300的响应消息可以是指示在操作S110之前从主机300传送到存储装置1000的操作命令是否完成的响应消息。作为示例,响应消息可以是UFS协议信息单元(UPIU)。也就是说,对确定启用的HPB子区域和/或确定停用的HPB区域的推荐可以被包括在UPIU中并且被传送到主机300。
响应于对确定停用的HPB区域的推荐,主机300可以确定是否从主机存储器310丢弃所推荐的HPB区域(S130)。当主机300确定丢弃相应的HPB区域时,可以删除主机存储器310中包括的L2P条目之中所推荐的HPB区域中包括的所有L2P条目。当主机300确定不丢弃HPB区域时,尽管存在来自存储装置1000的推荐,仍然可以保持主机存储器310中的相应HPB区域中包括的L2P条目。
响应于对确定启用的HPB子区域的推荐,主机300可以确定是否将所推荐的HPB子区域高速缓存在主机存储器310中(S140)。如图10所示,当主机300确定高速缓存相应的HPB子区域时,主机300将请求待启用的子区域的HPB条目的HPB读取缓冲器命令传送到存储装置1000(S150)。HPB条目提供与特定LBA相对应的PBA或指示这种对应的信息。作为示例,HPB条目的大小可以是8个字节。为了请求HPB子区域中包括的所有LBA的HPB条目,可以将相应的HPB子区域的HPB读取缓冲器命令传输到存储装置1000。
如图10所示,当主机300确定不高速缓存相应的HPB子区域时,尽管存在来自存储装置1000的推荐,仍然可以保持主机存储器310中的HPB区域中包括的L2P条目。
响应于操作S150的HPB读取缓冲器命令,存储装置1000读取与HPB读取缓冲器命令相对应的L2P映射数据(S160)。作为对HPB读取缓冲器命令的响应消息,存储装置1000可以将包括基于所读取的L2P映射数据的HPB条目的消息传送到主机300(S170)。
主机300将所接收的HPB条目存储在主机存储器310的HPB高速缓存区域中(S180)。因此,与从存储装置1000推荐的HPB子区域相对应的HPB条目被高速缓存在主机存储器310中。
图11是示出在装置控制模式下的HPB读取命令以及根据HPB读取命令的操作的示图。
在HPB读取操作期间,主机300在主机存储器310中的HPB高速缓存区域中搜索与待读取的数据的LBA相对应的HPB条目,并且生成HPB读取命令(S210)。主机300将所生成的HPB读取命令传输到存储装置1000(S220)。HPB读取命令包括在搜索中找到的HPB条目。
与图11不同,当在搜索中未找到与待读取的数据的LBA相对应的HPB条目时,主机300可以将不同于HPB读取命令的普通读取命令传送到存储装置。
响应于接收到HPB读取命令,存储装置1000基于HPB读取命令中包括的HPB条目来读取数据(S230)。在这种情况下,存储装置1000可以首先确定所接收的HPB读取命令中包括的HPB条目是否有效。当在HPB条目被高速缓存在主机存储器310中之后,更新了与LBA相对应的数据并且改变了PBA时,被高速缓存在主机存储器310中的HPB条目不再有效。因此,仅当所接收的HPB读取命令中包括的HPB条目有效时,存储装置1000才可以基于相应的HPB条目读取数据。当HPB条目无效时,存储装置1000可以与接收到不同于HPB读取命令的普通读取命令时一样,执行读取操作。
存储装置1000将读取数据传输到主机300(S240)。另外,存储装置1000将指示与所接收的读取命令相对应的操作完成的响应消息传输到主机300(S250)。关于图10的操作S120,被传送到主机300的响应消息可以是指示在操作S110之前从主机300传送到存储装置1000的操作命令是否完成的响应消息。在图11的操作S250中,存储装置1000可以将响应消息传输到主机300,该响应消息包括对确定启用的HPB子区域和/或确定停用的HPB区域的推荐。
图12是示出根据本公开的实施例的管理HPB区域中包括的HPB子区域的有效性位图的方法的示图。
参照图12,示出了主机存储器310、装置存储器210和半导体存储器装置100。示出了在主机存储器310中,HPB区域0(311)中包括的六个HPB子区域(即,HPB子区域0、HPB子区域1、HPB子区域5、HPB子区域8、HPB子区域9和HPB子区域12)以及HPB区域1(313)中包括的六个HPB子区域(即,HPB子区域3、HPB子区域4、HPB子区域7、HPB子区域8、HPB子区域11和HPB子区域15)被启用。
装置存储器210可以存储有效性位图211。有效性位图211可以是指示被启用的HPB子区域中包括的HPB条目是否有效的表。有效性位图211包括标识HPB区域的区域编号Region No.字段、相对于相应的HPB区域列出每个HPB子区域的子区域编号SR No.以及指示每个HPB条目是否有效的有效性Validity字段。
在将L2P映射数据高速缓存在主机存储器310中之后,所有被高速缓存的L2P映射数据可以立即有效。因此,当HPB子区域的L2P映射数据被高速缓存在主机存储器310中时,该HPB子区域的有效性由有效性位图211中的0表示。关于装置存储器210中存储的有效性位图,被高速缓存在主机存储器310中的HPB子区域有效的事实意为被高速缓存在主机存储器310中的HPB子区域中包括的所有映射信息与半导体存储器装置100中存储的最新的L2P映射信息相同。
半导体存储器装置100可以存储整个逻辑块地址空间的L2P映射数据。在图12中,为了方便起见,仅示出整个L2P映射数据之中与主机存储器310中被启用的HPB子区域相对应的L2P映射数据。也就是说,半导体存储器装置100可以存储与HPB区域0(111)中包括的六个HPB子区域(即,HPB子区域0、HPB子区域1、HPB子区域5、HPB子区域8、HPB子区域9和HPB子区域12)相对应的L2P映射数据以及与HPB区域1(113)中包括的六个HPB子区域(即,HPB子区域3、HPB子区域4、HPB子区域7、HPB子区域8、HPB子区域11和HPB子区域15)相对应的L2P映射数据。另外,半导体存储器装置100还可以存储与未启用的其它HPB子区域相对应的L2P映射数据。
在将L2P映射数据高速缓存在主机存储器310中之后,所有被高速缓存的L2P映射数据可以立即有效。因此,当HPB子区域的L2P映射数据被高速缓存在主机存储器310中时,该HPB子区域的有效性由有效性位图211中的0表示。关于装置存储器210中存储的有效性位图,被高速缓存在主机存储器310中的HPB子区域有效意为被高速缓存在主机存储器310中的HPB子区域中的所有映射信息与半导体存储器装置100中存储的最新的L2P映射信息相同。
存储装置1000可以在没有来自主机300的请求的情况下,执行改变数据的PBA的操作。例如,存储装置1000可以在没有来自主机300的请求的情况下,执行诸如垃圾收集操作、SLC缓冲器的数据迁移操作、读取回收操作和损耗均衡操作的内部操作。
垃圾收集操作可以是将牺牲块(包含有效页面和无效页面两者)中存储的有效页面移动到作为空闲块的目标块的操作,从而可以擦除该牺牲块。SLC缓冲器的数据迁移操作可以是将被存储在半导体存储器装置100中的SLC块中的数据迁移并写入MLC块、TLC块或QLC块的操作。读取回收操作可以是将在数据编程之后阈值电压分布通过重复的读取操作而已经劣化的存储块的数据新写入另一存储块的操作。损耗均衡操作可以是使数据在半导体存储器装置100中的存储块之间移动以实现存储块的更均匀使用的操作。当数据的物理位置因如上所述的内部操作而改变时,因为PA也被改变,所以有效的L2P映射数据可能无效。
在图12中,高速缓存了包括L2P映射数据的HPB子区域,在该HPB子区域被高速缓存在主机存储器310中之后,该L2P映射数据中的数据的PBA被改变。例如,在HPB区域0(111)的两个HPB子区域(即,HPB子区域1和HPB子区域12)以及HPB区域1(113)的三个HPB子区域(即,HPB子区域7、HPB子区域8和HPB子区域11)被高速缓存在主机存储器310中(参见被高速缓存在主机存储器310中的HPB区域0和1(311和313))之后,半导体存储器装置100中存储的HPB区域0和1(111和113)中包括的L2P映射数据中的至少一个PBA被改变。也就是说,在被高速缓存在主机存储器310中的L2P映射数据之中,HPB区域0(311)的两个HPB子区域(即,HPB子区域1和HPB子区域12)以及HPB区域1(313)的三个HPB子区域(即,HPB子区域7、HPB子区域8和HPB子区域11)包括无效的L2P映射数据。
因此,存储装置1000使被存储在半导体存储器装置100中的HPB区域0(111)的两个HPB子区域(即,HPB子区域1和HPB子区域12)以及HPB区域1(113)的三个HPB子区域(即,HPB子区域7、HPB子区域8和HPB子区域11)无效。存储装置1000将其余的HPB子区域保持为有效。存储装置1000可以在装置存储器210中存储的有效性位图211中反映半导体存储器装置100中存储的HPB子区域的有效性改变。此后,存储装置1000检查有效性位图211以确定从主机300接收的HPB读取命令的HPB条目是否有效。
根据存储装置1000,基于每个HPB区域中包括的各个HPB子区域的有效性来确定待停用的HPB区域。HPB区域的有效率可以被定义为有效的HPB子区域的数量与HPB区域中包括的HPB子区域的总数量之比。在图12所示的示例中,HPB区域0(311)的有效率为4/6,HPB区域1(313)的有效率为1/2。因此,存储装置1000可以将有效率相对较低的HPB区域1(313)确定为待停用的HPB区域。在图12中,示出了仅两个HPB区域被启用的示例。当多个HPB区域被启用时,可以将具有最低有效率的HPB区域确定为待停用的HPB区域。
图13是示出根据本公开的实施例的停用HPB区域的方法的流程图。
参照图13,根据本公开的实施例,存储装置1000首先确定停用被高速缓存在主机存储器310中的HPB区域中的任意一个(S310)。可以将某个级别或更高级别的L2P映射数据高速缓存在主机存储器310的HPB高速缓存区域中。在这种情况下,可以丢弃现有的L2P映射数据以进行另外的高速缓存。在这种情况下,存储装置1000可以根据操作S310执行确定。响应于该确定,存储装置1000参考正在装置存储器210中管理的有效性位图211(S320)。存储装置1000基于被高速缓存在主机存储器310中的HPB区域中的每一个中包括的HPB子区域的有效性来选择具有最低有效率的HPB区域(S330)。在图12的示例中,因为HPB区域1具有最低的有效率,所以选择HPB区域1(313)作为待停用的HPB区域。存储装置1000将推荐停用所选择的HPB区域1(313)的消息传送到主机300(S340)。如上所述,该推荐可以被包括在图10的操作S120或图11的操作S250中被传送的响应消息中。响应于该推荐,主机300可以停用包括六个HPB子区域(即,被高速缓存在主机存储器310中的HPB子区域3、HPB子区域4、HPB子区域7、HPB子区域8、HPB子区域11和HPB子区域15)的HPB区域1(313)。因此,与包括六个HPB子区域(即,HPB子区域3、HPB子区域4、HPB子区域7、HPB子区域8、HPB子区域11和HPB子区域15)的HPB区域1(313)相对应的L2P映射数据被从主机存储器310丢弃。
图14A是示出根据本公开的实施例的管理用于启用HPB子区域的优先级参考值的方法的流程图。图14B是示出包括根据图14A管理的优先级参考值的优先级表的示图。作为用于选择待被高速缓存在主机存储器310中的L2P映射数据的参考,存储装置1000可以通过将如图14B所示的表存储在装置存储器210中来管理该表。图14B的优先级表包括区域编号Region No.字段、子区域编号SR No.字段以及指示相应HPB子区域的优先级参考值Ref.Value的字段。当存储装置1000接通时,优先级表的所有优先级参考值可以被初始化为零。在下文中,一起参照图14A和图14B描述根据本公开的实施例的存储装置的操作。
参照图14A,首先,存储装置1000从主机300接收读取命令(S410)。当所接收的读取命令是HPB读取命令(S420:是)时,存储装置1000将与读取命令相对应的HPB子区域的优先级参考值增加第一权重W1(S430)。另一方面,当所接收的读取命令是普通读取命令而不是HPB读取命令(S420:否)时,存储装置1000将与读取命令相对应的HPB子区域的优先级参考值增加第二权重W2(S440)。
在实施例中,第一权重W1可以大于第二权重W2。为了减少在主机存储器310中频繁地利用新的HPB子区域替换当前启用的HPB子区域,可以将在接收HPB读取命令时增加的第一权重W1设置为大于在接收普通读取命令时增加的第二权重W2。
在另一实施例中,第一权重W1可以小于第二权重W2。为了在主机存储器310中更频繁地利用新的HPB子区域替换当前启用的HPB子区域,可以将在接收普通读取命令时增加的第二权重W2设置为大于在接收HPB读取命令时增加的第一权重W1。
参照图14B,在初始的初始化状态之后,存储装置1000可以接收针对HPB区域0的HPB子区域1的一个HPB读取命令(参考值=W1),并且接收针对HPB子区域4的一个普通读取命令(参考值=W2)。另外,在初始的初始化状态之后,存储装置1000接收针对HPB区域1的HPB子区域2和3中的每一个的一个普通读取命令(参考值=W2),并且接收针对HPB子区域4的一个HPB读取命令(参考值=W1)。随着存储装置1000继续从主机300接收读取命令,图14B所示的优先级表也可以被多次更新以反映正接收的命令。
在根据操作S430或操作S440更新优先级表之后,存储装置1000执行与所接收的读取命令相对应的读取操作,并且将读取数据传送到主机(S460)。
此后,存储装置1000另外确定是否向主机推荐待启用的HPB子区域(S470)。在向主机推荐待启用的HPB子区域(S470:是)的情况下,存储装置1000可以参考优先级表。存储装置1000可以将对具有最大优先级参考值的HPB子区域的推荐传送到主机300(S480)。可以通过将该推荐包括在对在操作S410中接收的读取命令的响应消息中来将该推荐传送到主机300。
根据本公开的实施例,当接收读取命令时,存储装置1000基于所接收的读取命令是否是HPB读取命令,更新相应HPB子区域的优先级参考值。因此,可以更有效地使用主机存储器310的HPB高速缓存区域。
图15A是示出根据本公开的另一实施例的管理用于启用HPB子区域的优先级参考值的方法的流程图。图15B是示出包括根据图15A管理的优先级参考值的优先级表的示图。作为用于选择待被高速缓存在主机存储器310中的L2P映射数据的参考,存储装置1000可以通过将如图15B所示的表存储在装置存储器210中来管理该表。类似于图14B,图15B的优先级表包括列出HPB区域的区域编号Region No.字段、列出与它们各自的HPB区域相关联的HPB子区域的子区域编号SR No.字段以及指示每个HPB子区域的优先级参考值Ref.Value的字段。当存储装置1000接通时,优先级表的所有优先级参考值可以被初始化为零。图15A的实施例类似于图14A的实施例,不同之处在于通过根据与所接收的HPB读取命令相对应的HPB子区域是否有效来施加不同的权重,从而更新优先级表。
在下文中,一起参照图15A和图15B描述根据本公开的实施例的存储装置的操作。
参照图15A,首先,存储装置1000从主机300接收读取命令(S510)。此后,确定所接收的读取命令是否是HPB读取命令(S520)。
当所接收的读取命令是普通读取命令而不是HPB读取命令(S520:否)时,存储装置1000将与读取命令相对应的HPB子区域的优先级参考值增加第三权重W3(S540)。
另一方面,当所接收的读取命令是HPB读取命令(S520:是)时,存储装置1000确定与HPB读取命令相对应的HPB子区域是否有效(S530)。在操作S530中,基于图12所示的有效性位图211,可以确定与所接收的HPB读取命令相对应的HPB子区域的有效性。当与所接收的HPB读取命令相对应的HPB子区域有效(S530:是)时,存储装置1000将与读取命令相对应的HPB子区域的优先级参考值增加第四权重W4(S555)。另一方面,当与所接收的HPB读取命令相对应的HPB子区域无效(S530:否)时,存储装置1000将与读取命令相对应的HPB子区域的优先级参考值增加第五权重W5(S550)。
在实施例中,第三权重W3可以大于第四权重W4或第五权重W5。为了在主机存储器310中更频繁地利用新的HPB子区域替换当前启用的HPB子区域,可以将在接收普通读取命令时增加的第三权重W3设置为大于在接收HPB读取命令时增加的第四权重W4或第五权重W5。
在另一实施例中,第三权重W3可以小于第四权重W4或第五权重W5。为了减少在主机存储器310中频繁地利用新的HPB子区域替换当前启用的HPB子区域,可以将在接收HPB读取命令时增加的第四权重W4或第五权重W5设置为大于在接收普通读取命令时增加的第三权重W3。
在实施例中,第五权重W5可以大于第四权重W4。当与HPB读取命令相对应的HPB子区域无效时,这意为将停用与HPB读取命令相对应的当前启用的HPB子区域,并且启用待停用的HPB子区域的经更新(因此有效的)版本。因此,当HPB子区域无效(S530:否)时,可以将作为优先级参考值的增加宽度的第五权重W5设置为大于作为HPB子区域有效(S530:是)的情况下的增加宽度的第四权重W4。
参照图15B,在初始的初始化状态之后,存储装置1000可以接收针对HPB区域0的HPB子区域1以及HPB区域1的HPB子区域1的一个普通读取命令(参考值=W3)。在初始的初始化状态之后,存储装置1000可以接收针对HPB区域0的HPB子区域3以及HPB区域1的HPB子区域3和4中的每一个的一个HPB读取命令(参考值≠W3)。特别地,HPB区域0中与所接收的HPB读取命令相对应的HPB子区域3当前可以有效(参考值=W4)。另外,HPB区域1中与所接收的HPB读取命令相对应的HPB子区域3和4当前可以无效(参考值=W5)。随着存储装置1000继续从主机300接收读取命令,图15B所示的优先级表也可以被多次更新以反映所接收的读取命令。
在根据操作S540、S550或操作S555更新优先级表之后,存储装置1000执行与所接收的读取命令相对应的读取操作,以将读取数据传送到主机(S560)。
此后,存储装置1000另外确定是否向主机推荐待启用的HPB子区域(S570)。在向主机推荐待启用的HPB子区域(S570:是)的情况下,存储装置1000可以参考优先级表。存储装置1000可以将对具有最大优先级参考值的HPB子区域的推荐传送到主机300(S580)。可以通过将该推荐包括在对在操作S510中接收的读取命令的响应消息中来将该推荐传送到主机300。
根据通过图15A和图15B描述的本公开的另一实施例,当接收读取命令时,存储装置1000基于所接收的读取命令是否是HPB读取命令,更新相应HPB子区域的优先级参考值。另外,当所接收的读取命令是HPB读取命令时,根据相应的HPB子区域是否有效来更新优先级参考值。因此,可以更有效地使用主机存储器310的HPB高速缓存区域。
图16是示出包括半导体存储器装置和控制器的存储装置1000的框图。参照图16,存储装置1000包括半导体存储器装置100和控制器1100。
图16的半导体存储器装置100可以与参照图2描述的半导体存储器装置100类似地配置和操作。这样,在此不再重复对那些组件的描述。
控制器1100连接到主机(Host)和半导体存储器装置100。控制器1100被配置为响应于来自主机的命令而访问半导体存储器装置100。例如,控制器1100被配置为控制半导体存储器装置100的读取操作、编程操作、擦除操作和后台操作。控制器1100被配置为提供半导体存储器装置100与主机之间的接口。控制器1100被配置为驱动固件以控制半导体存储器装置100。
控制器1100包括随机存取存储器(RAM)1110、处理器1120、主机接口1130、存储器接口1140和错误校正块1150。
RAM 1110用作处理器1120的操作存储器、半导体存储器装置100与主机之间的高速缓存存储器以及半导体存储器装置100与主机之间的缓冲存储器中的任意一种。
处理器1120控制控制器1100的全部操作。处理器1120被配置为控制半导体存储器装置100的读取操作、编程操作、擦除操作和后台操作。处理器1120被配置为驱动固件以控制半导体存储器装置100。处理器1120可以执行闪存转换层(FTL)的功能。处理器1120可以通过FTL将由主机装置提供的逻辑块地址(LBA)转化为物理块地址(PBA)。FTL可以通过使用映射表来接收逻辑块地址(LBA),并且将LBA转化为PBA。可以根据映射单位,使用若干已知的FTL地址映射方法中的任意一种。例如,如果适用,可以使用页面映射方法、块映射方法或混合映射方法。映射表的大小根据映射系统的类型而不同。因为块映射方法以存储块为单位提供映射,所以块映射方法需要相对较小的映射表。然而,当特定存储块中包括的页面的数据被更新时,相同存储块的其它页面数据也被复制到新的存储块。因此,随机写入性能降低。相反,页面映射方法将所有更新的页面添加到日志块,并以页面为单位保持映射信息。为了提高数据的随机写入性能,混合映射方法使用页面映射方法和块映射方法的组合。
处理器1120被配置为对从主机接收的数据进行随机化。例如,处理器1120可以使用随机化种子对从主机接收的数据进行随机化。经随机化的数据是待存储的、待提供到半导体存储器装置100的、并且被编程到存储器单元阵列的数据。
处理器1120被配置为在读取操作期间对从半导体存储器装置100接收的数据进行去随机化。例如,处理器1120可以使用去随机化种子对从半导体存储器装置100接收的数据进行去随机化。去随机化的数据可以被输出到主机。
在实施例中,处理器1120可以通过驱动软件或固件来执行随机化和去随机化。
主机接口1130包括用于执行主机和控制器1100之间的数据交换的协议。在实施例中,控制器1100被配置为通过诸如以下的各种接口协议中的至少一种与主机通信:通用串行总线(USB)协议、多媒体卡(MMC)协议、外围组件互连(PCI)协议、高速PCI(PCI-E)协议、高级技术附件(ATA)协议、串行ATA协议、并行ATA协议、小型计算机系统接口(SCSI)协议、增强型小型磁盘接口(ESDI)协议、电子集成驱动器(IDE)协议和/或专用协议。
存储器接口1140与半导体存储器装置100接口连接。例如,存储器接口1140包括NAND接口或NOR接口。
错误校正块1150被配置为使用错误校正码(ECC)来对从半导体存储器装置100接收的数据的错误进行检测和校正。错误校正块1150可以通过对读取的页面数据使用ECC来对错误进行校正。错误校正块1150可以通过使用诸如以下的编码调制来校正错误:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose Chaudhri Hocquenghem,BCH)码、turbo码、里德-所罗门(Reed-Solomon)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)、分组编码调制(BCM)和汉明码。
在读取操作期间,错误校正块1150可以校正所读取的页面数据的错误。当所读取的页面数据包括超过可校正位数的错误位时,可以认为解码失败。当页面数据包括等于或小于可校正位数的错误位时,可以认为解码成功。成功的解码指示读取命令通过。失败的解码指示读取命令失败。当解码成功时,控制器1100将错误被校正的页面数据输出到主机。
控制器1100和半导体存储器装置100可以被集成到一个半导体装置中。在实施例中,控制器1100和半导体存储器装置100可以被集成到一个半导体装置中以配置诸如以下的存储卡:PC卡(个人计算机存储卡国际协会(PCMCIA))、紧凑型闪存卡(CF)、智能媒体卡(SM或SMC)、记忆棒、多媒体卡(MMC、RS-MMC或微型MMC)、SD卡(SD、迷你SD、微型SD或SDHC)和/或通用闪存(UFS)。
控制器1100和半导体存储器装置100可以被集成到一个半导体装置中以配置半导体驱动器(固态驱动器(SSD))。半导体驱动器(SSD)包括被配置为将数据存储在半导体存储器中的存储装置。当存储装置用作半导体驱动器(SSD)时,显著地提高了连接到该存储装置的主机的操作速度。
作为另一示例,存储装置1000被设置为诸如以下的电子装置的各种组件中的一种:计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航装置、黑匣子、数码相机、三维电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、能够在无线环境下传输和接收信息的装置、配置家庭网络的各种电子装置中的一种、配置计算机网络的各种电子装置中的一种、配置远程信息处理网络的各种电子装置中的一种、RFID装置、或配置计算系统的各种组件中的一种。
在实施例中,半导体存储器装置100或存储装置可以作为各种类型的封装来安装。例如,半导体存储器装置100或存储装置可以以诸如以下的方法进行封装和安装:堆叠封装(PoP)、球栅阵列(BGA)、芯片级封装(CSP)、塑料引线芯片载体(PLCC)、塑料双列直插式封装(PDIP)、窝伏尔组件中的管芯、晶圆形式的管芯、板上芯片(COB)、陶瓷双列直插式封装(CERDIP)、塑料公制四方扁平封装(MQFP)、薄型四方扁平封装(TQFP)、小外形集成电路(SOIC)、收缩小外形封装(SSOP)、系统级封装(SIP)、多芯片封装(MCP)、晶圆级制造封装(WFP)或晶圆级加工堆叠封装(WSP)。
图17是示出图16的存储装置的应用示例2000的框图。
参照图17,存储装置2000包括半导体存储器装置2100和控制器2200。半导体存储器装置2100包括多个半导体存储器芯片。多个半导体存储器芯片被划分为多个组,即第一至第k组。
在图17中,第一至第k组分别通过第一至第k通道CH1至CHk与控制器2200通信。每个半导体存储器芯片与参照图2描述的半导体存储器装置100类似地配置和操作。
每个组被配置为通过一个公共通道与控制器2200通信。控制器2200被配置为通过多个通道CH1至CHk来控制半导体存储器装置2100的多个存储器芯片。
在图17中,多个半导体存储器芯片被划分为组,其中每个组连接到专用于该组的一个通道。然而,将理解的是,可以修改存储装置2000,使得每个半导体存储器芯片通过其自己的通道与控制器2200通信。
图18是示出包括参照图17描述的存储装置的计算系统的框图。
参照图18,计算系统3000包括中央处理装置3100、随机存取存储器(RAM)3200、用户接口3300、电源3400、系统总线3500和存储装置2000。
存储装置2000通过系统总线3500电连接到中央处理装置3100、RAM 3200、用户接口3300和电源3400。通过用户接口3300提供的或由中央处理装置3100处理的数据被存储在存储装置2000中。
图1和图7所示的主机300可以由与计算系统3000的存储装置2000的组件不同的组件配置。例如,主机300可以由中央处理装置3100、RAM 3200、用户接口3300、电源3400和连接它们的系统总线3500配置。在这种情况下,文件系统320可以被实施为由中央处理装置3100运行的操作系统(OS)的一部分。另外,主机存储器310可以被实施为RAM 3200的一部分。
在图18中,半导体存储器芯片2100通过控制器2200连接到系统总线3500。然而,半导体存储器芯片2100可以被配置为直接连接到系统总线3500。控制器2200的功能由中央处理装置3100和RAM 3200执行。
在图18中,设置了参照图17描述的存储装置2000。然而,可以利用参照图16描述的存储装置1000来替换存储装置2000。在实施例中,计算系统3000可以被配置为包括参照图16和图17描述的存储装置1000和2000两者。
尽管已经参照附图结合各个实施例描述了本发明,但是如本公开所属领域的技术人员将理解的,由于可以对所公开的任何实施例进行各种改变和修改,因此本发明不限于上述实施例。
因此,本发明的范围不限于所描述的实施例。相反,本发明的范围由权利要求及其等同方案确定。
在一些情况下,不一定必须执行所有步骤,也不一定必须以所述顺序执行步骤。更一般地,本文所公开的实施例仅仅是特定示例,以使本领域技术人员能够实践本发明,而不是限制其范围。也就是说,本公开所属领域的技术人员将理解,基于本公开的技术精神,可以进行各种修改。
Claims (21)
1.一种存储装置,所述存储装置与包括主机存储器的主机通信,所述存储装置包括:
半导体存储器装置,包括多个非易失性存储器单元;以及
装置存储器,存储被高速缓存在所述主机存储器中的主机性能增强器即HPB区域中的每一个中包括的HPB子区域的有效性信息,
其中所述存储装置基于所述装置存储器中包括的所述有效性信息来确定停用被高速缓存在所述主机存储器中的所述HPB区域之中的至少一个HPB区域,并且将推荐停用所确定的HPB区域的消息传送到所述主机。
2.根据权利要求1所述的存储装置,其中在有效性位图中表示所述有效性信息,所述有效性位图指示被高速缓存在所述主机存储器中的所述HPB区域中的所述HPB子区域是否有效。
3.根据权利要求2所述的存储装置,
其中所述存储装置进一步基于从被高速缓存在所述主机存储器中的所述HPB区域中的每一个中包括的所述HPB子区域的所述有效性信息中得出的有效率,来选择待停用的HPB区域。
4.根据权利要求3所述的存储装置,其中所述存储装置选择所述HPB区域中具有最低有效率的HPB区域。
5.一种存储装置,所述存储装置与包括主机存储器的主机通信,所述存储装置包括:
半导体存储器装置,包括多个非易失性存储器单元;以及
装置存储器,存储优先级表,所述优先级表确定待被高速缓存在所述主机存储器中的主机性能增强器即HPB子区域,
其中所述存储装置基于从所述主机接收的读取命令来更新所述优先级表,并且将基于所述优先级表而推荐待被高速缓存在所述主机存储器中的所述HPB子区域的消息传送到所述主机。
6.根据权利要求5所述的存储装置,其中所述优先级表包括针对分别被包括在所述多个HPB区域中的每一个中的多个HPB子区域的优先级参考值。
7.根据权利要求6所述的存储装置,
其中响应于从所述主机接收的HPB读取命令,将与所述HPB读取命令相对应的所述HPB子区域的所述优先级参考值增加第一权重,并且
其中响应于从所述主机接收的普通读取命令,将与所述普通读取命令相对应的所述HPB子区域的所述优先级参考值增加第二权重,所述第二权重不同于所述第一权重。
8.根据权利要求6所述的存储装置,
其中响应于从所述主机接收的普通读取命令,将与所述普通读取命令相对应的所述HPB子区域的所述优先级参考值增加第三权重,
其中当与从所述主机接收的HPB读取命令相对应的所述HPB子区域有效时,响应于所接收的HPB读取命令,将与所接收的HPB读取命令相对应的所述HPB子区域的所述优先级参考值增加第四权重,并且
其中当与所接收的HPB读取命令相对应的所述HPB子区域无效时,响应于所接收的HPB读取命令,将与所接收的HPB读取命令相对应的所述HPB子区域的所述优先级参考值增加第五权重。
9.根据权利要求8所述的存储装置,其中所述第五权重大于所述第四权重。
10.一种操作存储装置的方法,所述存储装置与包括主机存储器的主机通信,所述方法包括:
确定停用被高速缓存在所述主机存储器中的多个主机性能增强器即HPB区域中的任意一个;
基于被高速缓存在所述主机存储器中的所述多个HPB区域的有效率来选择所述多个HPB区域中的任意一个;并且
将推荐停用所选择的HPB区域的消息传送到所述主机。
11.根据权利要求10所述的方法,在选择所述多个HPB区域中的任意一个时,选择被高速缓存在所述主机存储器中的所述多个HPB区域之中具有最低有效率的HPB区域。
12.一种操作存储装置的方法,所述存储装置与包括主机存储器的主机通信,所述方法包括:
从所述主机接收读取命令;并且
基于所述读取命令的特性来更新优先级参考值,所述优先级参考值确定待被高速缓存在所述主机存储器中的主机性能增强器即HPB子区域。
13.根据权利要求12所述的方法,其中更新所述优先级参考值包括:
确定所述读取命令是HPB读取命令还是普通读取命令;并且
根据所确定的结果,将与所述读取命令相对应的HPB子区域的所述优先级参考值增加第一权重或第二权重,所述第二权重不同于所述第一权重。
14.根据权利要求13所述的方法,其中,当所述读取命令是所述HPB读取命令时,将与所述读取命令相对应的所述HPB子区域的所述优先级参考值增加所述第一权重。
15.根据权利要求13所述的方法,其中,当所述读取命令是所述普通读取命令时,将与所述读取命令相对应的所述HPB子区域的所述优先级参考值增加所述第二权重。
16.根据权利要求12所述的方法,其中更新所述优先级参考值包括:
当所述读取命令是所述HPB读取命令时,确定与所述HPB读取命令相对应的HPB子区域是否有效;并且
根据所确定的结果,将与所述HPB读取命令相对应的所述HPB子区域的所述优先级参考值增加第三权重或第四权重,所述第四权重不同于所述第三权重。
17.根据权利要求16所述的方法,其中,当与所述HPB读取命令相对应的所述HPB子区域有效时,将所述HPB子区域的所述优先级参考值增加所述第三权重。
18.根据权利要求16所述的方法,其中,当与所述HPB读取命令相对应的所述HPB子区域无效时,将所述HPB子区域的所述优先级参考值增加所述第四权重。
19.根据权利要求12所述的方法,进一步包括:通过执行与所述读取命令相对应的读取操作,将读取数据传送到所述主机。
20.根据权利要求19所述的方法,进一步包括:将推荐将具有最大优先级参考值的HPB子区域高速缓存在所述主机存储器中的消息传送到所述主机。
21.一种主机性能增强器系统的操作方法,所述操作方法包括:
停用当前启用的较高的映射数据组,其中无效的较低的映射数据组的数量大于阈值;并且
启用所有的较低的映射数据组之中具有最高的优先级的当前停用且有效的较低的映射数据组,
其中每当读取与相应的较低的映射数据组有关的数据时,所述优先级增加,
其中所述优先级的增加根据相应的较低的组是否被启用或者被启用的所述相应的较低的组是否有效而不同。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200084913A KR20220006913A (ko) | 2020-07-09 | 2020-07-09 | 저장 장치 및 그 동작 방법 |
KR10-2020-0084913 | 2020-07-09 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113918476A true CN113918476A (zh) | 2022-01-11 |
Family
ID=79172548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110207026.3A Withdrawn CN113918476A (zh) | 2020-07-09 | 2021-02-24 | 存储装置及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11487660B2 (zh) |
KR (1) | KR20220006913A (zh) |
CN (1) | CN113918476A (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113900582A (zh) * | 2020-06-22 | 2022-01-07 | 慧荣科技股份有限公司 | 数据处理方法及对应的数据储存装置 |
US11836077B2 (en) * | 2020-09-01 | 2023-12-05 | Micron Technology, Inc. | Dynamically tuning host performance booster thresholds |
KR20220049215A (ko) * | 2020-10-14 | 2022-04-21 | 삼성전자주식회사 | 메모리 장치, 호스트 장치 및 이들을 포함하는 메모리 시스템 |
US11379367B2 (en) * | 2020-11-19 | 2022-07-05 | Micron Technology, Inc. | Enhancement for activation and deactivation of memory address regions |
US11734193B2 (en) * | 2020-12-14 | 2023-08-22 | Micron Technology, Inc. | Exclusion regions for host-side memory address translation |
TWI808010B (zh) * | 2022-09-26 | 2023-07-01 | 慧榮科技股份有限公司 | 資料處理方法及對應之資料儲存裝置 |
KR102608354B1 (ko) * | 2023-06-05 | 2023-12-01 | 메티스엑스 주식회사 | 전자 장치 및 이를 포함하는 컴퓨팅 시스템 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105493052B (zh) | 2013-09-27 | 2019-05-03 | 英特尔公司 | 用于存储器管理的高速缓存操作 |
KR102147356B1 (ko) | 2013-09-30 | 2020-08-24 | 삼성전자 주식회사 | 캐시 메모리 시스템 및 그 동작방법 |
US11487653B2 (en) * | 2019-09-27 | 2022-11-01 | Micron Technology, Inc. | L2P translation techniques in limited RAM systems to increase random write performance using multiple L2P caches |
-
2020
- 2020-07-09 KR KR1020200084913A patent/KR20220006913A/ko active Search and Examination
- 2020-11-17 US US16/950,429 patent/US11487660B2/en active Active
-
2021
- 2021-02-24 CN CN202110207026.3A patent/CN113918476A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US20220012174A1 (en) | 2022-01-13 |
KR20220006913A (ko) | 2022-01-18 |
US11487660B2 (en) | 2022-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113918476A (zh) | 存储装置及其操作方法 | |
KR102615593B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR102415875B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
CN110751974A (zh) | 存储器系统和用于优化读取阈值的方法 | |
KR20160075174A (ko) | 메모리 시스템 및 그 동작방법 | |
KR20190113443A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
US11494307B2 (en) | Host, storage device, and computing system having the same | |
US10896125B2 (en) | Garbage collection methods and memory systems for hybrid address mapping | |
KR20200012494A (ko) | 컨트롤러 및 컨트롤러의 동작방법 | |
CN111324300B (zh) | 控制器以及控制器的操作方法 | |
KR20190128284A (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
KR102593552B1 (ko) | 컨트롤러, 메모리 시스템 및 그의 동작 방법 | |
KR20190069806A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR20210077230A (ko) | 메모리 시스템의 동작 방법 및 장치 | |
CN111381772B (zh) | 半导体存储器装置的控制器及其操作方法 | |
CN112084119A (zh) | 存储装置、主机装置以及操作存储装置和主机装置的方法 | |
CN114968856B (zh) | 存储器系统及其操作方法 | |
CN113515466B (zh) | 用于多内核之间动态逻辑块地址分布的系统和方法 | |
CN115963981A (zh) | 存储器系统及存储器系统的操作方法 | |
US11113203B2 (en) | Controller and method of operating the same | |
CN112346651A (zh) | 用于半导体存储器器件的控制器及其操作方法 | |
KR20200113387A (ko) | 메모리 시스템 및 그것의 동작방법 | |
US11126545B2 (en) | Memory system and operating method thereof | |
US20230385151A1 (en) | Controller and method of operating the same | |
US11157210B2 (en) | Memory system performing dummy program operation during normal program operation |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220111 |