CN109213705A - 存储装置及其操作方法 - Google Patents
存储装置及其操作方法 Download PDFInfo
- Publication number
- CN109213705A CN109213705A CN201711311654.6A CN201711311654A CN109213705A CN 109213705 A CN109213705 A CN 109213705A CN 201711311654 A CN201711311654 A CN 201711311654A CN 109213705 A CN109213705 A CN 109213705A
- Authority
- CN
- China
- Prior art keywords
- random
- memory
- reading
- workload
- mapping table
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- 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/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- 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/0871—Allocation or management of cache space
-
- 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/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication 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
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
- G06F2212/2146—Solid state disk being detachable, e.g.. USB 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/31—Providing disk cache in a specific location of a storage system
- G06F2212/312—In storage controller
-
- 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/31—Providing disk cache in a specific location of a storage system
- G06F2212/313—In storage device
-
- 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/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
-
- 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
- G06F2212/6042—Allocation of cache space to multiple users or processors
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
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)
- Read Only Memory (AREA)
Abstract
本发明提供了一种存储装置及其操作方法。用于控制包括具有改进的读取性能的多个存储块的存储器装置的存储器控制器可以包括随机读取工作负载控制单元,其被配置为控制随机读取工作负载的状态,使得随机读取工作负载根据随机读取计数而处于设置状态和清除状态中的任一种,该随机读取计数是通过对从外部主机输入的随机读取请求的数量进行计数所得到;以及随机读取处理单元,其被配置为根据随机读取工作负载的状态来检索与各随机读取请求的逻辑地址对应的物理地址。
Description
相关申请的交叉引用
本申请要求于2017年7月7日向韩国知识产权局提交的申请号为10-2017-0086690的韩国专利申请的优先权,其全部公开内容通过引用并入本文。
技术领域
本发明的各种实施例总体上涉及电子装置。具体地,本发明的示例性实施例涉及存储装置和操作该存储装置的方法。
背景技术
存储装置是用于在主机装置的控制下存储数据的装置,诸如计算机、智能电话或智能平板。存储装置的实例包括用于在磁盘存储数据的装置,如在硬盘驱动器(HDD)的情况下,和用于在半导体存储器中存储数据的装置,特别是在非易失性存储器中,如在固态驱动器(SSD)或存储卡的情况下。
非易失性存储器的代表性实例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除和可编程ROM(EEPROM)、闪速存储器、相变随机存取存储器(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、铁电RAM(FRAM)等。
发明内容
本发明的各种实施例涉及具有改进的读取性能的存储装置以及操作该存储装置的方法。
本发明的实施例可以提供用于控制包括多个存储块的存储器装置的存储器控制器。存储器控制器可以包括随机读取工作负载控制单元,其被配置为控制随机读取工作负载的状态,使得随机读取工作负载根据随机读取计数而处于设置状态和清除状态中的任一个,该随机读取计数是通过对从外部主机输入的随机读取请求的数量进行计数所得到;和随机读取处理单元,其被配置为根据随机读取工作负载的状态来检索与各随机读取请求的逻辑地址对应的物理地址。
本发明的实施例可以提供用于存储器控制器的操作方法,该存储器控制器用于控制包括多个存储块的存储器装置。该方法可包括通过对从外部主机连续输入的随机读取请求的数量进行计数而产生随机读取计数;控制随机读取工作负载的状态使得随机读取工作负载根据随机读取计数处于设置状态和清除状态中的任一个;以及根据随机读取工作负载的状态来检索与各随机读取请求的逻辑地址对应的物理地址。
本发明的实施例可以提供一种存储装置。该存储装置可以包括:存储器装置,其包括多个存储块;和存储器控制器,其被配置为根据随机读取计数来检索与随机读取请求的逻辑地址对应的物理地址,该随机读取计数是通过对从外部主机连续输入的随机读取请求的数量进行计数而获得。
附图说明
图1是示出根据本发明的实施例的存储装置的图。
图2是示出图1的存储器装置的结构的图。
图3是示出图2的存储器单元阵列的实施例的图。
图4是示出图3的存储块BLK1~BLKz的任一存储块BLK1的电路图。
图5是示出图3的存储块BLK1~BLKz中的任一存储块BLK1的实例BLK1′的电路图。
图6是示出图1的存储器控制器的图。
图7是用于说明根据本发明的实施例的存储器控制器的操作的流程图。
图8是用于说明根据在图7中随机读取工作负载是否已被设置来执行随机读取操作的方法的流程图。
图9是用于说明根据本发明的实施例的设置随机读取工作负载的操作的流程图。
图10是用于说明根据本发明的实施例的存储器控制器的操作的流程图。
图11是示出图1的存储器控制器的实施例的图。
图12是示出根据本发明的实施例的存储卡系统的框图。
图13是示出根据本发明的实施例的固态驱动器(SSD)系统的框图。
图14是示出根据本发明的实施例的用户系统的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例;然而,它们可以以不同的形式实施,并且不应被解释为限于在此阐述的实施例。相反,提供这些实施例是为了使本发明全面完整,并且将示例性实施例的范围充分地传达给本领域技术人员。
在附图中,为了清楚说明,尺寸可能被放大。应当理解,当一个元件被称为在两个元件“之间”时,它可以是这两个元件之间的唯一元件,或者也可以存在一个或多个中间元件。
在下文中,将参照附图描述实施例。这里参照作为实施例(和中间结构)的示意图的横截面图来描述实施例。如此,可能存在由于例如制造技术和/或容差而导致的图示形状的变化。因此,实施例不应该被解释为限于在此示出的区域的特定形状,而是可以包括例如由制造引起的形状上的偏差。在附图中,为了清楚起见,层和区域的长度和大小可能被放大。附图中相同的附图标记表示相同的元件。
诸如“第一”和“第二”之类的术语可以用于描述各种部件,但是它们不应当限制各种部件。这些术语仅用于区分一个部件与其他部件的目的。例如,第一部件可被称为第二部件,第二部件可被称为第一部件等等,而不脱离本发明的精神和范围。此外,“和/或”可以包括所提及的部件中的任何一个或组合。
此外,单数形式可以包括复数形式,只要在句子中没有特别提及即可。此外,说明书中使用的“包括/包含”或“包含/含有”表示存在或添加有一个或多个部件、步骤、操作和元素。
此外,除非另外指明,否则本说明书中使用的所有术语(包括技术和科学术语)具有与本领域技术人员通常理解的含义相同的含义。常用辞典中定义的术语被解释为具有在相关技术的背景下所解释的相同含义,并且除非在本说明书中另有说明,否则不应被解释为具有理想的或过于正式的含义。
还应注意的是,在本说明书中,“连接/联接”指一个部件不但直接联接另一个部件而且通过中间部件间接联接另一个部件。另一方面,“直接连接/直接联接”是指一个部件直接连接另一个部件而没有中间部件。
图1是示出根据本发明的实施例的存储装置的图。
如图1所示,存储装置50可以包括存储器装置100和存储器控制器200。
存储器装置100可以存储数据。存储器装置100在存储器控制器200的控制下操作。存储器装置100可以包括存储器单元阵列,存储器单元阵列包括其中存储数据的多个存储器单元。存储器单元阵列可以包括多个存储块。每个存储块可以包括多个存储器单元。存储器装置100可在存储器控制器200的控制下将数据顺序地或随机地存储在存储块中。在一个实施例中,存储器装置100可以包括双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功率双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)SDRAM、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器装置,电阻式随机存取存储器(RRAM)、相变存储器(PRAM)、磁阻式随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)或者自旋转移力矩随机存取存储器(STT-RAM)。在实施例中,存储器装置100可以被实现为三维(3D)阵列结构。本发明还可以不仅被应用于其中电荷存储层作为导电浮置栅极(FG)实现的闪速存储器,而且可被应用于其中电荷存储层作为绝缘层实现的电荷撷取闪速(CTF)存储器。
存储器装置100可以接收来自存储器控制器200的命令和地址,并访问存储器单元阵列中响应于地址而选择的区域。即,存储器装置100可以对响应于地址而选择的区域执行对应于该命令的操作。例如,存储器装置100可以执行编程操作、读取操作和擦除操作。在编程操作期间,存储器装置100可以对响应于地址而选择的区域中的数据编程。在读取操作期间,存储器装置100可以从响应于地址而选择的区域中读取数据。在擦除操作期间,存储器装置100可以擦除被存储在响应于地址而选择的区域中的数据。
存储器控制器200可以响应于主机300的请求而控制存储器装置100的操作。在另一实施例中,存储器控制器200可以自主控制存储器装置100的操作。
例如,存储器控制器200可以响应于主机300的请求来控制存储器装置100,从而执行编程操作、读取操作或擦除操作。在编程操作期间,存储器控制器200可以向存储器装置100提供编程命令、物理地址和数据。在读取操作期间,存储器控制器200可以向存储器装置100提供读取命令和物理地址。在擦除操作期间,存储器控制器200可以向存储器装置100提供擦除命令和物理地址。
在另一实例中,存储器控制器200可以自主地生成编程命令、地址和数据,而无需接收来自主机300的请求,并且将它们传输到存储器装置100中。例如,存储器控制器200可以向存储器装置100提供命令、地址和数据以执行后台操作,诸如用于耗损均衡的编程操作和用于垃圾收集的编程操作。
存储器控制器200可运行用于控制存储器装置100的固件(FW)。当存储器装置100是闪速存储器装置时,存储器控制器200可以操作用于控制主机300和存储器装置100之间的通信的固件如闪存转换层(FTL)。
具体而言,存储器控制器200可以将包括在主机300的请求中的逻辑地址转换成物理地址。
当从主机300接收到写入请求时,存储器控制器200可将包括在来自主机300的请求中的写入数据临时存储在写入高速缓冲存储器(未示出)中。当满足预设条件时,存储器控制器200将临时存储在写入高速缓冲存储器中的数据存储在存储器装置100中。
为了将数据存储在存储器装置100中,存储器控制器200可以将存储器装置100的物理地址分配给包括在来自主机300的请求中的逻辑地址。存储器控制器200可以存储逻辑地址和以映射表的形式分配给逻辑地址的物理地址之间的对应关系。在实施例中,其中存储与存储在存储器装置100中的数据对应的逻辑地址和物理地址之间的对应关系的映射表可以是逻辑地址到物理地址(即,逻辑到物理(L2P))映射表或物理地址到逻辑地址(即物理到逻辑:P2L)映射表。
包括在存储器装置100中的多个存储块可以被划分为其中可用数据存储空间保留的开放块,其中可用数据存储空间未保留,即已完成数据写入的写入完成块(封闭块),和其中未存储数据的空闲块。
L2P映射表可以是用于写入完成块(封闭块)的映射表。也就是说,L2P映射表可以表示存储在存储器装置100中包括的写入完成块(封闭块)中的数据段的物理地址和对应的逻辑地址。
P2L映射表可以是用于开放块的映射表。即,P2L映射表可以表示存储在存储器装置100中包括的开放块中的数据段的逻辑地址和对应的物理地址。在实施例中,当开放块由于写入操作而写满数据时或当包括在P2L映射表中的逻辑地址到物理地址的分配已经完成时,存储器控制器200可以基于P2L映射表来更新P2P映射表。
当从主机300接收读取请求时,存储器控制器200可以检索与来自主机300的请求一起被提供的逻辑地址对应的存储器装置100的物理地址。对于该操作,存储器控制器200可通过搜索写入高速缓冲存储器、L2P映射表和P2L映射表中的至少一个来检索与来自主机300的请求一起被提供的逻辑地址对应的存储器装置100的物理地址。存储器控制器200可以传输读取命令和检索的物理地址以响应于来自主机300的读取请求从存储器装置100读取检索的物理地址的数据。
在实施例中,从主机300接收的读取请求可以根据与所读取的请求一起提供的逻辑地址的长度分为顺序读取请求和随机读取请求。例如,用于分类顺序读取请求和随机读取请求的逻辑地址的长度可以是4千字节。也就是说,当与所读取的请求一起提供的逻辑地址的长度为4千字节或更小时,对应的读取请求可以被分类为随机读取请求,而当逻辑地址的长度超过4千字节时,对应的读取请求可以被分类为顺序读取请求。
在现有技术中,当接收到随机读取请求时,存储器控制器200可首先搜索写入高速缓冲存储器,因为待读取的数据可能还没有被存储在存储器装置100。当与随机读取请求的逻辑地址对应的物理地址不存在于写入高速缓冲缓存器时,存储器控制器200搜索P2L映射表,即用于开放块的映射表。当与随机读取请求的逻辑地址对应的物理地址不存在于P2L映射表时,存储器控制器200最后搜索L2P映射表以检索随机读取请求的逻辑地址对应的物理地址。如果连续地从主机300提供随机读取请求,存储器控制器200可以响应于所有的随机读取请求以写入高速缓冲存储器、P2L映射表和L2P映射表的顺序重复搜索操作。这样的操作可能会使响应于随机读取请求操作的存储装置50的性能劣化,并且可能导致间接费用。
在本发明的一个实施例中,当连续输入的随机读取请求的数量超过参考次数(参考计数)时,存储在写入高速缓冲存储器的数据可被存储在存储器装置100中,且L2P映射表可以基于P2L映射表被更新,因此仅从L2P映射表中检索与随机读取请求的逻辑地址对应的物理地址。借助于该操作,可以提高存储装置50处理随机读取请求的性能。
为此,存储器控制器200可以包括随机读取工作负载控制单元210。
随机读取工作负载控制单元210可以根据是否从主机300输入了超过参考次数(参考计数)的随机读取请求的数量来确定用于获取响应于随机读取请求的逻辑地址的搜索目标。
随机读取工作负载控制单元210的结构和随机读取工作负载控制单元210的操作方法将在下文参照图6到图10详细描述。
主机300使用诸如以下的各种通信方法中的至少一种与存储装置50进行通信:通用串行总线(USB)、串行AT附件(SATA)、串行连接SCSI(SAS)、高速芯片间(HSIC)互连、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪速存储(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储模块(DIMM)、寄存器式DIMM(RDIMM)和低负载DIMM(LRDIMM)。
图2是示出存储器装置100的结构的图。
参照图2,存储器装置100可以包括存储器单元阵列110、外围电路120和控制逻辑130。
存储器单元阵列110包括多个存储块BLK1至BLKz。多个存储块BLK1至BLKz通过行线RL联接到地址解码器121。存储块BLK1至BLKz通过位线BL1至BLm联接到读取和写入电路123。每个存储块BLK1至BLKz包括多个存储器单元。在实施例中,多个存储器单元是非易失性存储器单元。在多个存储器单元中,联接到相同字线的存储器单元被定义为单个页面。即,存储器单元阵列110由多个页面构成。在实施例中,包括在存储器单元阵列110中的多个存储块BLK1至BLKz中的每一个可以包括多个虚拟单元。作为虚拟单元,可以在漏极选择晶体管和存储器单元之间以及在源极选择晶体管和存储器单元之间串联联接一个或多个虚拟单元。
存储器装置100的存储器单元可以各自被实现为能够存储单个数据位的单层单元(SLC)、能够存储两个数据位的多层单元(MLC)、能够存储三个数据位的三层单元(TLC)或能够存储四个数据位的四层单元(QLC)。
外围电路120可以包括地址解码器121、电压生成器122、读取和写入电路123以及数据输入/输出电路124。
外围电路120可以驱动存储器单元阵列110。例如,外围电路120可以驱动存储器单元阵列110,从而执行编程操作、读取操作和擦除操作。
地址解码器121通过行线RL联接到存储器单元阵列110。行线RL可以包括漏极选择线、字线、源极选择线和公共源极线。在一个实施例中,字线可以包括正常字线和虚拟字线。在一个实施例中,行线RL还可以包括管道选择线。
地址解码器121被配置为在控制逻辑130的控制下操作。地址解码器121从控制逻辑130接收地址ADDR。
地址解码器121被配置为解码接收到的地址ADDR的块地址。地址解码器121响应于解码的块地址从存储块BLK1至BLKz之中选择至少一个存储块。地址解码器121被配置为解码接收到的地址ADDR的行地址。响应于被解码的行地址,地址解码器121可以通过将从电压生成器122供应的电压施加到至少一个字线WL来选择被选择的存储块的至少一个字线。
在编程操作期间,地址解码器121可将编程电压施加到被选择的字线,并且将电平比编程电压的电平更低的通过电压施加到未选择的字线。在编程验证操作期间,地址解码器121可将验证电压施加到被选择的字线,并将高于验证电压的验证通过电压施加到未选择的字线。
在读取操作期间,地址解码器121可将读取电压施加到被选择的字线,并将高于读取电压的通过电压施加到未选择的字线。
在实施例中,可以基于存储块来执行存储器装置100的擦除操作。在擦除操作期间,输入到存储器装置100的地址ADDR包括块地址。地址解码器121可以解码块地址,并响应于解码的块地址选择单个存储块。在擦除操作期间,地址解码器可以将接地电压施加到与被选择的存储块联接的字线。
在实施例中,地址解码器121可以解码接收到的地址ADDR的列地址。解码的列地址DCA可以被传送到读取和写入电路123。在示例性实施例中,地址解码器121可以包括诸如行解码器、列解码器和地址缓冲器的部件。
电压生成器122被配置为使用被提供到存储器装置1000的外部电源电压生成多个电压。电压生成器122在控制逻辑130的控制下操作。
在实施例中,电压生成器122可以通过调节外部电源电压来产生内部电源电压。由电压生成器122产生的内部电源电压被用作存储器装置100的操作电压。
在实施例中,电压生成器122可以使用外部电源电压或内部电源电压来产生多个电压。电压生成器122可以生成存储器装置100所需的多个电压。例如,电压生成器122可以产生多个编程电压、多个通过电压、多个选择读取电压以及多个未选择的读取电压。
例如,电压生成器122可以包括用于接收内部电源电压的多个泵送电容器,并且可以通过在控制逻辑130的控制下选择性地激活泵送电容器来产生多个电压。
产生的电压可以通过地址解码器121提供给存储器单元阵列110。
读取和写入电路123包括第一至第m页面缓冲器PB1至PBm。第一至第m页面缓冲器PB1至PBm分别通过第一至第m位线BL1至BLm联接到存储器单元阵列110。在控制逻辑130的控制下操作第一至第m页面缓冲器PB1至PBm。
第一至第m页面缓冲器PB1至PBm执行与数据输入/输出电路124的数据通信。在编程操作期间,第一至第m页面缓冲器PB1至PBm通过数据输入/输出电路124和数据线DL接收待存储的数据DATA。
在编程操作期间,当编程脉冲被应用于每个被选择的字线时,第一至第m页面缓冲器PB1至PBm可将通过数据输入/输出电路124接收的数据DATA通过位线BL1至BLm传输到被选择的存储器单元。被选择的页面中的存储器单元基于传输的数据DATA被编程。联接到施加有编程允许电压(例如,接地电压)的位线的存储器单元可以具有增加的阈值电压。联接到施加有编程禁止电压的位线的存储器单元的阈值电压可以被保持。在编程验证操作期间,第一至第m页面缓冲器通过位线BL1到BLm从被选择的的存储器单元读取页面数据。
在读取操作期间,读取和写入电路123通过位线BL从被选择的存储器单元读取数据DATA,并且将读取的数据DATA输出到数据输入/输出电路124。
在擦除操作期间,读取和写入电路123可以允许位线BL浮动。在实施例中,读取和写入电路123可以包括列选择电路。
数据输入/输出电路124通过数据线DL联接到第一至第m页面缓冲器PB1到PBm。数据输入/输出电路124在控制逻辑130的控制下操作。
数据输入/输出电路124可以包括用于接收输入数据的多个输入/输出缓冲器(未示出)。在编程操作期间,数据输入/输出电路124从外部控制器(未示出)接收待存储的数据DATA。在读取操作期间,数据输入/输出电路124将从包括在读取和写入电路123中的第一至第m页面缓冲器PB1至PBm接收的数据输出到外部控制器。
控制逻辑130可以联接到地址解码器121、电压生成器122、读取和写入电路123和数据输入/输出电路124。控制逻辑130可以控制存储器装置100的总体操作。控制逻辑130可以响应于从外部装置接收的命令CMD而被操作。
图3是示出图2的存储器单元阵列的实施例的图。
参照图3,存储器单元阵列110包括多个存储块BLK1至BLKz。每个存储块都具有三维(3D)结构。每个存储块包括堆叠在衬底上的多个存储器单元。这样的存储器单元沿正X(+X)方向、正Y(+Y)方向和正Z(+Z)方向布置。每个存储块的结构将在下面参照图4和5详细描述。
图4是示出图3的存储块BLK1至BLKz中的任一个(BLK1)的电路图。
参照图4,第一存储块BLK1包括多个单元串CS11至CS1m和CS21至CS2m。在实施例中,单元串CS11至CS1m和CS21至CS2m中的每一个可以形成为“U”形。在第一存储块BLK1中,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之间连接。行方向的单元串被联接到在行方向延伸的漏极选择线。第一行中的单元串CS1到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之间的电场。随着提供更多的虚拟存储器单元,存储块BLK1的操作可靠性提高,但存储块BLK1的尺寸增大。随着提供更少的存储器单元,存储块BLK1的尺寸减小,但存储块BLK1的可靠性可能劣化。
为了有效地控制一个或多个虚拟存储器单元,每一个虚拟存储器单元可以具有需要的阈值电压。在执行存储块BLK1的擦除操作之前或之后,可以对全部或部分虚拟存储器单元执行编程操作。当在执行编程操作之后执行擦除操作时,虚拟存储器单元的阈值电压控制被施加到与各个的虚拟存储器单元联接的虚拟字线的电压,并且因此虚拟存储器单元可具有需要的阈值电压。
图5是示出图3的存储块BLK1到BLKz中的任一存储块BLK1的示例BLK1′的电路图。
参照图5,第一存储块BLK1′包括多个单元串CS11′至CS1m′和CS21′至CS2m′。多个单元串CS11′至CS1m′和CS21′至CS2m′中的每一个沿正Z(+Z)方向延伸。单元串CS11′至CS1m′和CS21′至CS2m′的每一个包括至少一个源极选择晶体管SST、第一至第n个存储器单元MC1到MCn和堆叠在存储块BLK1′下方的衬底(未示出)上的至少一个漏极选择晶体管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。
结果,除了将管道晶体管PT从每个单元串排除,图5的存储块BLK1′具有与图4的存储块BLK1类似的等效电路。
在实施例中,可以提供偶数位线和奇数位线,而不是第一至第m位线BL1至BLm。另外,在沿行方向布置的单元串CS11′至CS1m′或CS21′至CS2m′中,偶数编号的单元串可以分别联接到偶数位线,并且在沿行方向布置的单元串CS11′至CS1m′或CS21′至CS2m′中,奇数编号的单元串可以分别联接到奇数位线。
在实施例中,第一至第n存储器单元MC1到MCn的一个或多个可以用作虚拟存储器单元。例如,提供一个或多个虚拟存储器单元,以减少源极选择晶体管SST和存储器单元MC1到MCn之间的电场。或者,提供了一个或多个虚拟存储器单元,以减少漏极选择晶体管DST和存储器单元MC1到MCn之间的电场。随着提供更多的虚拟存储器单元,存储块BLK1′的操作可靠性提高,但存储块BLK1′的尺寸增大。随着提供更少的存储器单元,存储块BLK1′的尺寸减小,但存储块BLK1′的可靠性可能劣化。
为了有效地控制一个或多个虚拟存储器单元,每一个虚拟存储器单元可以具有需要的阈值电压。在执行存储块BLK1′的擦除操作之前或之后,可以对全部或部分虚拟存储器单元执行编程操作。当执行编程操作之后执行擦除操作时,虚拟存储器单元的阈值电压控制被施加到与各个虚拟存储器单元联接的虚拟字线的电压,并且因此虚拟存储器单元可具有需要的阈值电压。
图6是示出存储器控制器200的框图。
参照图6,存储器控制器200可以包括随机读取工作负载控制单元210、随机读取处理单元220、写入高速缓冲存储器230、P2L映射表240和L2P映射表250。
该随机读工作负载控制单元210可以包括随机读取检测单元211、随机读取计数单元212以及随机读取工作负载设置单元213。随机读取工作负载控制单元210可根据是否设置了随机读取工作负载而执行随机读取操作。
随机读取检测单元211可以接收从外部主机输入的读取请求REQ。随机读取检测单元211可以检测接收到的读取请求REQ是否为随机读取请求。读取请求REQ可以如上参照图1所述根据与读取请求REQ一起提供的逻辑地址的长度被分类为顺序读取请求和随机读取请求。然而,对随机读取请求和顺序读取请求分类的标准不受本发明实施例的限制。
当读取请求REQ是随机读取请求时,随机读取检测单元211可以将检测的信号DET输出到随机读取计数单元212和随机读取工作负载设置单元213。当读取请求REQ不是随机读取请求时,随机读取检测单元211可以将重置信号RESET输出到随机读取计数单元212并将清除信号CLEAR输出到随机读取工作负载设置单元213。
随机读取计数单元212可以基于检测到的信号DET对随机读取请求的输入的数量进行计数。例如,当检测的信号DET从随机读取检测单元211被输入时,随机读取计数单元212可以增加随机读取计数RR_cnt,并且可以将随机读取计数RR_cnt提供到随机读取工作负载设置单元213。当重置信号RESET从随机读取检测单元211被输入时,RR_cnt为0。
随机读取工作负载设置单元213可以接收来自随机读取计数单元212的随机读取计数RR_cnt。随机读取工作负载设置单元213可将随机读取计数RR_cnt与参考次数(参考计数)TH进行比较。当随机读取计数RR_cnt等于或大于参考计数TH时,随机读取工作负载设置单元213可以设置随机读取工作负载。当随机读取计数RR_cnt小于参考计数TH时,随机读取工作负载设置单元213可以不设置随机读取工作负载。
在实施例中,随机读取工作负载设置单元213可以接收来自随机读取检测单元211的清除信号CLEAR。当接收到来自随机读取检测单元211的清除信号CLEAR时,随机读取工作负载设置单元213可以清除所设置的随机读取工作负载。
在实施例中,当随机读取工作负载由于随机读取计数RR_cnt等于或大于参考计数TH而被设置时,随机读取工作负载设置单元213可以将刷新信号FLUSH和更新信号UPDATE输出到随机读取处理单元220,其中刷新信号FLUSH用于将存储在写入高速缓冲存储器230的数据存储在存储器装置100中,更新信号UPDATE用于基于P2L映射表240更新L2P映射表250。
当随机读取工作负载被设置时,存储器控制器200可将被存储在写入高速缓冲存储器230中的数据存储在存储器装置100中,其并且可以基于P2L映射表240更新L2P映射表250。
随机读工作负载设置单元213可以接收来自随机读取检测单元211的检测的信号DET。根据是否已设置随机读取工作负载,随机读取工作负载设置单元213可以将第一控制信号cont_1或第二控制信号cont_2输出到随机读取处理单元。例如,如果随机读取工作负载已经被设置,则随机读取工作负载设置单元213可以输出第一控制信号cont_1,如果随机读取工作负载未被设置,则随机读取工作负载设置单元213可以输出第二控制信号cont_2。
因为随机读取工作负载由于随机读取计数RR_cnt等于或大于参考计数TH而被随机读取工作负载设置单元213设置,在存储器控制器200将写入高速缓冲存储器230的数据存储在存储器装置100中并基于P2L映射表240更新L2P映射表250之后,一旦接收到来自随机读取检测单元211的检测的信号DET,随机读取工作负载设置单元213可输出第一控制信号cont_1。
随机读取处理单元220可控制存储器控制器200的总体操作。随机读取处理单元220可以执行如上参照图1描述的固件FW的功能。在实施例中,随机读取处理单元220可以用作如上参照图1所述的FTL。随机读取处理单元220可向存储器装置100提供用于控制存储器装置100的命令CMD、地址ADD和/或数据。
随机读取处理单元220可以接收来自随机读取工作负载设置单元213的第一控制信号cont_1或第二控制信号cont_2。
随机读取处理单元220响应于第一控制信号cont_1可搜索L2P映射表250以检索与当前提供的随机读取请求REQ的逻辑地址对应的物理地址。
随机读取处理单元220响应于第二控制信号cont_2可以按照写入高速缓冲存储器230、P2L映射表240和L2P映射表250的顺序执行搜索操作,以检索与当前提供的随机读取请求REQ的逻辑地址对应的物理地址。例如,随机读取处理单元220可以搜索写入高速缓冲存储器230来检索与当前提供的随机读取请求REQ的逻辑地址对应的物理地址。如果未从写入高速缓冲存储器230中检索到与当前提供的随机读取请求REQ的逻辑地址对应的物理地址,则随后随机读取处理单元220可搜索P2L映射表240。如果未从P2L映射表240中检索到与当前提供的随机读取请求REQ的逻辑地址对应的物理地址,则随后随机读取处理单元220可搜索L2P映射表250。
随机读取处理单元220可通过搜索写入高速缓冲存储器230、P2L映射表240和L2P映射表250,来检索与当前提供的随机读取请求REQ的逻辑地址对应的物理地址ADD。随机读取处理单元220可以将读取命令CMD和检索到的物理地址ADD传输到存储器装置100。
图7是示出根据本发明的实施例的存储器控制器200的操作的流程图。
参照图7,在步骤701,存储器控制器200可以接收来自外部主机的读取请求REQ。
在步骤703,存储器控制器200可确定所接收的读取请求REQ是否是随机读取请求。读取请求REQ是否是随机读取请求可以根据与读取请求REQ一起被输入的逻辑地址的长度来确定。在实施例中,当与读取请求REQ一起被输入的逻辑地址的长度是4千字节或更少,读取请求REQ可以是随机读取请求。作为确定的结果,如果读取请求REQ是随机读取请求,则处理进行到步骤709,否则处理进行到步骤705。
在步骤705,存储器控制器200可清除随机读取工作负载。存储器控制器200根据是否已经设置随机读取工作负载来执行随机读取操作。当预定数量或更多的随机读取请求被顺序输入时,可以设置随机读取工作负载。如果在其中已设置随机读取工作负载的状态下除随机读取请求之外的读取请求被输入时,存储器控制器200可清除该随机读取工作负载。
在步骤707,存储器控制器可以初始化随机读取计数RR_cnt。随机读取计数RR_cnt可以用来确定是否设置随机读取工作负载。
在步骤709,存储器控制器200可根据是否已设置随机读取工作负载来执行随机读取操作。下面将参照图8详细描述在步骤709执行随机读取操作的方法。
图8是示出根据图7中是否已设置随机读取工作负载来执行随机读取操作的方法的流程图。
在实施例中,图8的步骤801至811可对应于图7的步骤709。
参照图8,在步骤801存储器控制器200可确定随机读取工作负载是否被设置。根据先前被输入的随机读取请求REQ的数量,随机读取工作负载可以被设置或可以不被设置。作为确定的结果,如果随机读取工作负载被设置,则响应于与当前提供的随机读取请求REQ对应的第一控制信号cont_1,该进程进行到步骤811;而如果随机读取工作负载未被设置,则响应于与当前提供的随机读取请求REQ对应的第二控制信号cont_2,该进程进行到步骤803。参照图6描述第一控制信号cont_1和第二控制信号cont_2。
在步骤803到811,存储器控制器200可以按照写入高速缓冲存储器230、P2L映射表240和L2P映射表250的顺序执行搜索操作,以检索与当前提供的随机读取请求REQ的逻辑地址对应的物理地址。
详细地,在步骤803,存储器控制器200可以搜索写入高速缓冲存储器230以检索与当前提供的随机读取请求REQ的逻辑地址对应的物理地址。写入高速缓冲存储器230可以响应于先前由主机做出的写入请求来存储待存储在存储器装置100中的数据以及与该数据对应的逻辑地址。
在步骤805,存储器控制器200确定与当前提供的随机读取请求REQ的逻辑地址对应的物理地址是否存在于写入高速缓冲存储器230中。如果确定与当前提供的随机读取请求REQ的逻辑地址对应的物理地址存在于写入高速缓冲存储器230中,则对应于逻辑地址的数据可以被读出到主机,并且可以终止该随机读取操作。可选地,如果确定与当前提供的随机读取请求REQ的逻辑地址对应的物理地址不存在于写入高速缓冲存储器230中,则该进程前进到步骤807。
在步骤807,存储器控制器可以搜索P2L映射表240,以检索与当前提供的随机读取请求REQ的逻辑地址对应的物理地址。P2L映射表240可以是用于如上参照图1所述的开放块的映射表。可选地,P2L映射表240可以存储其中最近存储数据的开放块的物理地址。
在步骤809,存储器控制器200确定与当前提供的随机读取请求REQ的逻辑地址对应的物理地址是否存在于P2L映射表240中。如果确定与当前提供的随机读取请求REQ的逻辑地址对应的物理地址存在于P2L映射表240中,则读取命令连同检索的物理地址可被传输到存储器装置100。可选地,如果确定与当前提供的随机读取请求REQ的逻辑地址对应的物理地址不存在于P2L映射表240中,则该进程进行到步骤811。
在步骤811,存储器控制器200可以搜索L2P映射表250以检索与当前提供的随机读取请求REQ的逻辑地址对应的物理地址。L2P映射表250可以是用于如上参照图1所述的写入完成块(封闭块)的映射表。存储器控制器200可从L2P映射表250中检索与当前提供的随机读取请求REQ的逻辑地址对应的物理地址,并且存储器控制器200可以将读取命令与检索的物理地址一起传输到存储器装置100。
根据本发明的实施例,当在步骤801确定随机读取工作负载被设置时,存储器控制器200可以直接搜索L2P映射表250而无需搜索写入高速缓冲存储器230和P2L映射表240,从而直接从L2P映射表250中检索与当前提供的随机读取请求REQ的逻辑地址对应的物理地址。如上参照图6所述,当随机读取工作负载被设置时,则存储器控制器200可以将存储在写入高速缓冲存储器230中的数据存储在存储器装置100中。当存储在写入高速缓冲存储器230中的数据被存储在存储器装置100中时,相应数据的逻辑地址和物理地址可以被存储在P2L映射表240中。当随机读取工作负载被设置时,存储器控制器200可基于P2L映射表240更新L2P映射表250。因此,当随机读取工作负载被设置时,存储器控制器200可以通过仅搜索L2P映射表250来检索与当前提供的随机读取请求REQ的逻辑地址对应的物理地址。
图9是示出根据本发明的实施例的设置随机读取工作负载的操作的流程图。图9的步骤901至909可对应于图7的步骤709。
参照图9,在步骤901,存储器控制器200增加随机读取计数RR_cnt。每当输入随机读取请求REQ时,存储器控制器200可增加随机读取计数RR_cnt。
在步骤903,存储器控制器200可以确定随机读取计数RR_cnt是否等于或大于参考次数(参考计数)TH。
下面将详细描述参考计数TH。首先,将存储在写入高速缓冲存储器230中的数据存储在存储器装置100中(FLUSH)并基于P2L映射表240更新L2P映射表250(UPDATE)所需的时间被假定为t1。此外,以写入高速缓冲存储器230、P2L映射表240和L2P映射表250的顺序执行搜索操作以检索与N个随机读取请求的逻辑地址分别对应的物理地址所需的时间被假定为t2。当t1变为等于或小于t2时N的值,即当t1变得小于或等于t2时N的最小值可以是参考计数TH。
在步骤903,当随机读取计数RR_cnt等于或大于参考计数TH时,该进程进行到步骤905,而当随机读取计数RR_cnt小于参考计数TH时,随机读取工作负载保持清除。
在步骤905,存储器控制器200可以设置随机读取工作负载。也就是说,存储器控制器200可以将随机读取工作负载的状态从清除状态改变为设置状态。
在步骤907,存储器控制器200将存储在写入高速缓冲存储器230中的数据存储在存储器装置100中。将存储在写入高速缓冲存储器230中的数据存储在存储器装置100中的操作被称为“刷新操作”。当存储在写入高速缓冲存储器230中的数据被存储在存储器装置100中时,相应数据的逻辑地址和物理地址可被存储在P2L映射表240中。
在步骤909,存储器控制器200可以基于P2L映射表240来更新L2P映射表250。
图10是示出根据本发明的实施例的存储器控制器200的操作的流程图。
参照图10,在步骤S1001,存储器控制器200可以接收来自外部主机的读取请求REQ。
在步骤S1003,存储器控制器200确定所接收的读取请求REQ是否是随机读取请求。如参照图1所述,读取请求REQ是否是随机读取请求可以根据与读取请求REQ一起输入的逻辑地址的长度来确定。如果确定为读取请求REQ是随机读取请求,则该进程进行到步骤S1009,否则,该进程进行到步骤S1005。
在步骤S1005,存储器控制器200可清除随机读取工作负载。当顺序输入N个随机读取请求REQ时,可以设置随机读取工作负载。如果在其中已设置随机读取工作负载的状态下随机读取请求之外的读取请求REQ被输入,则存储器控制器200可清除该随机读取工作负载。
在步骤S1007,存储器控制器200可以初始化随机读取计数RR_cnt。随机读取计数RR_cnt可以用来确定是否设置随机读取工作负载。此后,存储器控制器200可以根据预设方案处理随机读取请求之外的读取请求REQ。
在步骤S1009,存储器控制器200可以确定随机读取工作负载是否被设置。随机读取工作负载可以根据先前输入的随机读取请求的数量来设置。作为确定的结果,如果随机读取工作负载被设置,该进程进行到步骤S1023,而如果随机读工作负载没有被设置,则该进程进行到步骤S1011。
在步骤S1011,存储器控制器200增加随机读取计数RR_cnt。
在步骤S1013,存储器控制器200可确定随机读取计数RR_cnt是否等于或大于参考计数TH。参考计数TH的值如上参照图9的步骤903被描述。
在步骤S1013,如果随机读取计数RR_cnt等于或大于参考计数TH时,该进程进行到步骤S1025,而如果随机读计数小于参考计数TH时,该进程进行到步骤S1015。
在步骤S1015,存储器控制器200可以响应于第二控制信号cont_2搜索写入高速缓冲存储器230,以检索与当前提供的随机读取请求REQ的逻辑地址对应的物理地址。写入高速缓冲存储器230可以响应于先前由主机作出的写入请求来存储待存储在存储器装置100中的数据和与该数据对应的逻辑地址。
在步骤S1017,存储器控制器200确定与当前提供的随机读取请求REQ的逻辑地址对应的物理地址是否存在于写入高速缓冲存储器230中。如果确定与当前提供随机读取请求REQ的逻辑地址对应的物理地址存在于写入高速缓冲存储器230中,则对应于逻辑地址的数据可以被读出到主机,并且可以终止该随机读取操作。可选地,如果确定与当前提供的随机读取请求REQ的逻辑地址对应的物理地址不存在于写入高速缓冲存储器230中,则该进程进行到步骤S1019。
在步骤S1019,存储器控制器可以搜索P2L映射表240,以检索与当前提供的随机读取请求REQ的逻辑地址对应的物理地址。P2L映射表240可以是用于如上参照图2所述的开放块的映射表。可选地,P2L映射表240可以存储其中最近存储数据的开放块的物理地址。
在步骤S1021中,存储器控制器200确定与当前提供的随机读取请求REQ的逻辑地址对应的物理地址是否存在于P2L映射表240。如果确定与当前提供的随机读取请求REQ的逻辑地址对应的物理地址存在于P2L映射表240中,则读取命令连同检索的物理地址可被传输到存储器装置100。可选地,如果确定与当前提供的随机读取请求REQ的逻辑地址对应的物理地址不存在于P2L映射表240中,则该进程前进到步骤S1023。
在步骤S1023,存储器控制器200可搜索L2P映射表250以检索与当前提供的随机读取请求REQ的逻辑地址对应的物理地址。L2P映射表250可以是用于如上参照图1所述的写入完成块(封闭块)的映射表。存储器控制器200可从L2P映射表250中检索与当前提供的随机读取请求REQ的逻辑地址对应的物理地址,并且存储器控制器200可以将读取命令与检索的物理地址一起传输到存储器装置100。
在步骤S1025,存储器控制器200可以设置随机读取工作负载。也就是说,存储器控制器200可以将随机读取工作负载的状态从清除状态改变为设置状态。
在步骤S1027,存储器控制器200将存储在写入高速缓冲存储器230中的数据存储在存储器装置100中。将存储在写入高速缓冲存储器230中的数据存储在存储器装置100中的操作被称为“刷新操作”。当存储在写入高速缓冲存储器230中的数据被存储在存储器装置100中时,相应数据的逻辑地址和物理地址可被存储在P2L映射表240中。
在步骤S1029,存储器控制器200可以基于P2L映射表240更新L2P映射表250。此后,存储器控制器200可进行到步骤S1023,其中可以搜索L2P映射表250以检索与当前提供的随机读取请求REQ的逻辑地址对应的物理地址。存储器控制器200可以从L2P映射表250中检索与当前提供的随机读取请求REQ的逻辑地址对应的物理地址,并且存储器控制器200可以将读取命令与检索的物理地址一起传输到存储器装置100。
图11是示出图1的存储器控制器的实施例的图。
存储器控制器1000联接到主机和存储器装置。响应于来自主机的请求,存储器控制器1000可以访问存储器装置。例如,存储器控制器1000可以控制存储器装置的写入、读取、擦除和后台操作。存储器控制器1000可以提供存储器装置与主机之间的接口。存储器控制器1000可以运行用于控制存储器装置的固件。
参照图11,存储器控制器1000可以包括处理器1010、存储器缓冲器1020、错误校正码(ECC)块1030、主机接口1040、缓冲器控制电路1050、存储器接口1060和总线1070。
总线1070可以提供存储器控制器1000的部件之间的通道。
处理器1010可以控制存储器控制器1000的整体操作并且可以执行逻辑操作。处理器1010可以通过主机接口1040与外部主机通信,并通过存储器接口1060与存储器装置通信。此外,处理器1010可以通过缓冲器控制电路1050与存储器缓冲器1020通信。处理器1010可以通过使用存储器缓冲器1020作为工作存储器、高速缓冲存储器或缓冲存储器来控制存储装置的操作。
处理器1010可以执行闪存转换层(FTL)的功能。处理器1010可以通过FTL将由主机提供的逻辑块地址(LBA)转换为物理块地址(PBA)。FTL可以使用映射表来接收LBA,并将LBA转换成PBA。通过FTL执行的地址映射方法的示例可以包括根据映射单元的各种方法。代表性的地址映射方法包括页面映射方法、块映射方法和混合映射方法。
处理器1010可以随机化从主机接收的数据。例如,处理单元1010可以使用随机化种子来随机化从主机接收的数据。随机化的数据可以作为待存储的数据被提供给存储器装置并且可以被编程在存储器单元阵列中。
处理器可以在读取操作期间对从存储器装置接收的数据去随机化。例如,处理器1010可以使用去随机化种子对从存储器装置接收的数据去随机化。去随机化的数据可以被输出到主机。
在实施例中,处理器1010可以运行软件或固件以执行随机化和去随机化操作。
在实施例中,处理器1010可以执行已经在上文参照图1-6描述的随机读取工作负载控制单元210和随机读取处理单元220的操作。例如,处理器1010可以运行固件,该固件根据随机读取工作负载执行获取与随机读取请求对应的逻辑地址的操作。如上参照图6-10所述,根据随机读取工作负载执行获取与随机读取请求对应的逻辑地址的操作的固件可基于操作存储器控制器的方法来运行。
存储器缓冲器1020可用作处理器1010的工作存储器、高速缓冲存储器或者存储器缓冲器1020。存储器缓冲器1020可以存储由处理器1010执行的编码和命令。存储器缓冲器1020可以包括静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。
ECC块1030可以执行错误校正。ECC块1030可以基于将通过存储器接口1060被写入到存储器装置的数据执行ECC编码。ECC编码数据可通过存储器接口1060被传送到存储器装置。ECC块1030可以基于通过存储器接口1060从存储器装置接收的数据执行ECC解码。在示例中,ECC块1030可以作为存储器接口1060的部件被包括在存储器接口1060中。
主机接口1040可以在处理器1010的控制下与外部主机进行通信。主机接口1040可以使用诸如以下的各种通信方法的至少一种进行通信:通用串行总线(USB)、串行AT附件(SATA)、串行连接SCSI(SAS)、高速芯片间(HSIC)互连、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪速存储(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储模块(DIMM)、寄存器式DIMM(RDIMM)和低负载DIMM(LRDIMM)。
缓冲器控制电路1050可以在处理器1010的控制下控制存储器缓冲器1020。
存储器接口1060可以在处理器1010的控制下与存储器装置进行通信。存储器接口1060可以通过通道向/从存储器装置传输/接收命令、地址和/数据。
在实施例中,存储器控制器1000可以不包括存储器缓冲器1020和缓冲器控制电路1050。
在实施例中,处理器1010可以使用代码来控制存储器控制器1000的操作。处理器1010可以加载存储器控制器1000中提供的来自非易失性存储器装置(例如,ROM)的代码。在实施例中,非、处理器1010可以通过存储器接口1060加载来自存储器装置的代码。
在实施例中,存储器控制器的总线1070可以被划分成控制总线和数据总线。数据总线可以在存储器控制器1000中传输数据,控制总线可以在存储器控制器1000中传输控制信息,诸如命令或地址。数据总线和控制总线可以彼此独立,并且可以既不彼此干扰又不相互影响。数据总线可以联接到主机接口1040、缓冲器控制电路1050、ECC块1030和存储器接口1060。控制总线可以联接到主机接口1040、处理器1010、缓冲器控制电路1050、存储器缓冲器1020和存储器接口1060。
图12是示出其中应用了根据本发明的实施例的存储装置的存储卡系统的框图。
参照图12,存储卡系统2000可以包括控制器2100、存储器装置2200和连接器2300。
控制器2100联接至存储器装置2200。控制器2100可访问存储器装置2200。丽日,控制器2100可控制存储器装置2200的读取、写入、擦除和后台操作。控制器2100可提供存储器装置2200与主机之间的接口连接。控制器2100可以运行用于控制存储器装置2200的固件。控制器2100可以按照与如上参照图1所述的存储器控制器200相同的方式来实施。
在实施例中,控制器2100可以包括诸如RAM、处理单元、主机接口、存储器接口和ECC块的部件。
控制器2100可以通过连接器2300与外部装置通信。控制器2100可以基于特定通信协议与外部装置(例如,主机)通信。在实施例中,控制器2100可以通过诸如以下的各种通信协议的至少一种与外部装置进行通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、集成驱动电路(IDE)、固件、通用闪速存储(UFS)、Wi-Fi、蓝牙和高速非易失性存储器(NVMe)。在实施例中,连接器2300可以通过上述各种通信协议中的至少一种来定义。
在实施例中,存储器装置2200可以被实现为各种非易失性存储器装置的任意一种,例如电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)和自旋扭矩磁性RAM(STT-MRAM)。
在实施例中,控制器2100或存储器装置2200可以诸如以下的类型被封装:堆叠封装(POP)、球栅阵列(BGA)、芯片级封装(CSP)、塑料有引线芯片载体(PLCC)、塑料双列直插式封装(PDIP)、窝伏尔组件管芯(Die in Waffle Pack)、晶圆中模具形式、板上芯片(COB)、陶瓷双列直插式封装(CERDIP)、塑料公制四方扁平封装(MQFP)、薄型四方扁平封装(TQFP)、小外形集成电路(SOIC)、收缩型小外形封装(SSOP)、薄型小外形封装(TSOP)、系统级封装(SIP)、多芯片封装(MCP)、晶圆级制造封装(WFP)、晶圆级处理堆叠封装(WSP)等,并且可以提供为单个半导体封装。可选地,存储器装置2200可以包括多个非易失性存储芯片,其可以基于上述封装类型进行封装,并且可以提供为单个半导体封装。
在实施例中,控制器2100和存储器装置2200可以被集成到单个半导体器件中。在实施例中,控制器2100和存储器装置2200可以被集成到单个半导体器件中以配置固态驱动器(SSD)。控制器2100和存储器装置2200可以被集成到单个半导体器件中以配置存储卡。例如,控制器2100和存储器装置2200可以被集成到单个半导体器件中以配置存储卡,如PC卡(个人计算机存储卡国际协会:PCMCIA)、标准闪存卡(CF)、智能媒体卡(SM或SMC)、记忆棒、多媒体卡(MMC、RS-MMC、微型MMC或eMMC)、SD卡(SD、小型SD卡、微型SD或SDHC)、或通用闪速存储(UFS)。
在实施例中,存储器装置2200可以按照与如上面参照图1-3所描述的存储器装置相同的方式操作。控制器2100可以按照与如上参照图1和图6-10所描述的存储器控制器相同的方式操作。
图13是说明其中应用根据本发明的实施例的存储装置的固态驱动器(SSD)系统的框图。
参照图13,SSD系统3000可以包括主机3100和SSD 3200。SSD 3200可以通过信号连接器3001与主机3100交换信号SIG,并且可以通过电源连接器3002接收电力PWR。SSD 3200可以包括SSD控制器3210、多个闪速存储器3221至322n、辅助电源3230以及缓冲存储器3240。
在实施例中,SSD控制器3210可以执行如上面参照图1描述的存储器控制器200的功能。
SSD控制器3210可以响应于从主机3100接收到的信号SIG控制多个闪速存储器3221至322n。在实施例中,信号SIG可以是基于主机3100和SSD 3200的接口的信号。例如,信号SIG可以是通过诸如以下的各种接口中的至少一种定义的信号:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、集成驱动电路(IDE)、固件、通用闪速存储(UFS)、Wi-Fi、蓝牙和高速非易失性存储器(NVMe)。
辅助电源3230可以通过电源连接器3002联接到主机3100。辅助电源3230可供应有来自主机3100的电力PWR并可以被充电。当来自主机3100的电力供应不能被平稳执行时,辅助电源3230可以供应SSD3200的电力。在实施例中,辅助电源3230可以被定位在SSD 3200内部或定位在SSD 3200外部。例如,辅助电源3230可以设置在主板中并且可将辅助电力供应到SSD 3200。
缓冲存储器3240用作SSD 3200的缓冲存储器。例如,缓冲存储器3240可以临时存储从主体3100接收的数据或从多个闪速存储器3221至322n接收的数据或可以临时存储闪速存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可以包括诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的易失存储器或诸如FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器。
在实施例中,存储器装置3221至322N可以按照与如上参照图1-5所述的存储器装置相同的方式操作。SSD控制器3210可以按照与如上参照图1和图6-10所描述的存储器控制器相同的方式操作。
图14是示出其中应用了根据本发明的实施例的存储装置的用户系统的框图。
参照图14,用户系统4000可以包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可以运行包括在用户系统4000中的部件、操作系统(OS)或用户程序。在实施例中,应用处理器4100可以包括用于控制包括在用户系统4000中的部件的控制器、接口、图形引擎等。应用处理器4100可以被提供为系统芯片(SoC)。
模块4200可以作为用户系统4000的主存储器、工作存储器、缓冲存储器或高速缓冲存储器。存储器模块4200可以包括诸如DRAM、SDRAM、DDR SDRAM、DDR2SDRAM、DDR3SDRAM、LPDDR SDARM、LPDDR3SDRAM的易失性RAM,或者诸如PRAM、ReRAM、MRAM和FRAM的非易失性RAM。在实施例中,应用处理器4100和存储器模块4200可以基于堆叠封装(POP)被封装,然后可以提供为单个半导体封装。
网络模块4300可以与外部装置进行通信。例如,网络模块4300可以支持无线通信,诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、WiMAX、WLAN、UWB、蓝牙或Wi-Fi通信等。在实施例中,网络模块4300可以被包括在应用处理器4100中。
存储模块4400可以存储数据。例如,存储模块4400可以存储从应用处理器4100接收的数据。可选地,存储模块4400可以将存储在存储模块4400中的数据传输到应用处理器4100。在实施例中,存储模块4400可以被实现为非易失性半导体存储器装置,诸如相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪速存储器、NOR闪速存储器,或者具有三维(3D)结构的NAND闪速存储器。在实施例中,存储模块4400可以被提供为可移除存储介质(即,可移除驱动器),诸如用户系统400的存储卡或外部驱动器。
在实施例中,存储模块4400可以包括多个非易失性存储装置,并且多个非易失性存储器装置可以按照与如上参照图1-5描述的存储器装置相同的方式进行操作。存储模块4400可以按照与如上参照图1描述的存储装置50相同的方式进行操作。
用户接口4500可以包括将数据或指令输入到应用处理器4100或将数据输出到外部装置的接口。在实施例中,用户接口4500可以包括用户输入接口,诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸平板、触摸球、相机、麦克风、陀螺仪传感器、振动传感器和压电装置。用户接口4500还可以包括用户输出接口,诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和马达。
根据本发明,提供了具有改进的读取性能的存储装置和该存储装置的操作方法。
尽管为了说明的目的已经公开了本发明的示例性实施例,但是本领域的技术人员将认识到可以进行各种修改、添加和替换。因此,本发明的范围必然是通过所附权利要求及其等同方案限制,而不限于上述实施例。
尽管已经公开了本发明的实施例,但是本领域技术人员将认识到,在不脱离本发明的范围和精神的情况下,可以进行各种修改、添加和替换。
在上述讨论的实施例中,可以选择性地执行或跳过所有步骤。另外,每个实施例中的步骤并不总是按照常规顺序执行。此外,本发明和附图中公开的实施例旨在帮助本领域技术人员更清楚地理解本发明,而不是旨在限制本发明的范围。换句话说,本发明所属领域的普通技术人员将能够容易地理解基于本发明的范围的可能的各种修改。
参照附图已经描述了本发明的实施例,说明书中的具体术语或词语应根据本发明的精神进行解释,而不限于其主题。应理解本文所描述的基础发明构思的许多变化和修改都将落入如所附权利要求及其等同方案限定的本发明的精神和范围内。
Claims (20)
1.一种存储器控制器,其包括:
随机读取工作负载控制单元,其被配置为控制随机读取工作负载的状态,使得所述随机读取工作负载根据随机读取计数而处于设置状态和清除状态中的任一种,其中所述随机读取计数是通过对从外部主机输入的随机读取请求的数量进行计数所得到;和
随机读取处理单元,其被配置为根据所述随机读取工作负载的状态来检索与各个随机读取请求的逻辑地址对应的物理地址。
2.根据权利要求1所述的存储器控制器,其中所述随机读取工作负载控制单元包括:
随机读取检测单元,其被配置为确定从外部主机输入的请求是否为随机读取请求;
随机读取计数单元,其被配置为通过对所述随机读取请求的数量进行计数而生成所述随机读取计数;和
随机读取工作负载设置单元,其被配置为当所述随机读取计数等于或大于参考计数时将所述随机读取工作负载的状态控制为设置状态。
3.根据权利要求2所述的存储器控制器,其进一步包括:
写入高速缓冲存储器,其被配置为响应于来自外部主机的写入请求而临时存储被输入的数据;
物理到逻辑映射表,即P2L映射表,其被配置为存储开放块的物理地址和对应的被存储在开放块中的数据的逻辑地址的信息;和
逻辑到物理映射表,即L2P映射表,其被配置为存储在封闭块中存储的数据的逻辑地址和对应的封闭块的物理地址的信息。
4.根据权利要求3所述的存储器控制器,其中所述随机读取处理单元被配置为当所述随机读取工作负载处于设置状态时从所述L2P映射表检索与当前提供的随机读取请求的所述逻辑地址对应的所述物理地址。
5.根据权利要求3所述的存储器控制器,其中所述随机读取处理单元被配置为当随机读取工作负载处于清除状态时通过以写入高速缓冲存储器、P2L映射表和L2P映射表的顺序执行搜索操作以检索与当前提供的随机读取请求的所述逻辑地址对应的所述物理地址。
6.根据权利要求3所述的存储器控制器,其中所述随机读取工作负载设置单元被配置为当所述随机读取计数等于或者大于所述参考计数时,将临时存储在写入高速缓冲存储器中的所述数据存储到存储器装置中,并基于所述P2L映射表更新所述L2P映射表。
7.根据权利要求3所述的存储器控制器,其中所述随机读取工作负载设置单元被配置为当从外部主机输入的请求不是所述随机读取请求时将所述随机读取工作负载的状态控制为清除状态。
8.根据权利要求3所述的存储器控制器,其中所述随机读取计数单元被配置为当从外部主机输入的所述请求不是所述随机读取请求时初始化所述随机读取计数。
9.根据权利要求1所述的存储器控制器,其中所述随机读取请求是根据与从外部主机输入的所述读取请求一起被提供的逻辑地址的长度来确定的。
10.一种操作存储器控制器的方法,所述方法包括:
通过对从外部主机输入的随机读取请求的数量进行计数来产生随机读取计数;
控制随机读取工作负载的状态使得所述随机读取工作负载根据随机读取计数而处于设置状态和清除状态中的任一种;和
根据所述随机读取工作负载的状态来检索与各个随机读取请求的逻辑地址对应的物理地址。
11.根据权利要求10所述的方法,其中所述随机读取计数的产生包括:
确定从外部主机输入的请求是否为随机读取请求;和
当从外部主机输入的所述请求是随机读取请求时增加所述随机读取计数,并且当从外部主机输入的请求不是所述随机读取请求时初始化所述随机读取计数。
12.根据权利要求11所述的方法,其中所述随机读取计数的产生还包括当从外部主机输入的请求不是所述随机读取请求时清除所述随机读取工作负载。
13.根据权利要求10所述的方法,其中当所述随机读取计数等于或大于参考计数时通过将所述随机读取工作负载的状态控制为设置状态来执行所述随机读取工作负载的状态的控制。
14.根据权利要求13所述的方法,其中所述存储器控制器包括:
写入高速缓冲存储器,其被配置为响应于来自外部主机的写入请求而临时存储输入的数据;
物理到逻辑映射表,即P2L映射表,其被配置为存储开放块的物理地址和对应的被存储在所述开放块中的数据的逻辑地址的信息;和
逻辑到物理映射表,即L2P映射表,其被配置为存储在封闭块中存储的数据的逻辑地址和对应的所述封闭块的物理地址的信息;以及
其中所述随机读取工作负载的状态的控制还包括:
将临时存储在所述写入高速缓冲存储器中的数据存储在所述存储器装置中;和
基于所述P2L映射表更新所述L2P映射表。
15.根据权利要求10所述的方法,其中所述存储器控制器包括:
写入高速缓冲存储器,其被配置为响应于来自外部主机的写入请求而临时存储输入的数据;
物理到逻辑映射表,即P2L映射表,其被配置为存储开放块的物理地址和对应的被存储在所述开放块中的数据的逻辑地址的信息;和
逻辑到物理映射表,即L2P映射表,其被配置为存储在封闭块中存储的数据的逻辑地址和对应的所述封闭块的物理地址的信息;以及
其中所述物理地址的检索包括:
当所述随机读取工作负载处于设置状态时搜索所述L2P映射表;和
当所述随机读取工作负载处于所述清除状态时以写入高速缓冲存储器、P2L映射表和L2P映射表的顺序执行搜索操作。
16.根据权利要求10所述的方法,其中所述随机读取请求是根据与从外部主机输入的所述读取请求一起提供的逻辑地址的长度来确定的。
17.一种存储装置,其包括:
存储器装置,其包括多个存储块;和
存储器控制器,其被配置为根据随机读取计数来检索与随机读取请求的逻辑地址对应的物理地址,其中所述随机读取计数是通过对从外部主机输入的随机读取请求的数量进行计数而获得。
18.根据权利要求17所述的存储装置,其中所述存储器控制器包括:
随机读取工作负载控制单元,其被配置为当所述随机读取计数等于或大于参考计数时将所述随机读取工作负载的状态控制为设置状态。
19.根据权利要求18所述的存储装置,其中所述存储器控制器还包括:
写入高速缓冲存储器,其被配置为响应于来自外部主机的写入请求而临时存储输入的数据;
物理到逻辑映射表,即P2L映射表,其被配置为存储开放块的物理地址和对应的被存储在所述开放块中的数据的逻辑地址的信息;
逻辑到物理映射表,即L2P映射表,其被配置为存储在封闭块中存储的数据的逻辑地址和对应的所述封闭块的物理地址的信息;和
随机读取处理单元,其被配置为当所述随机读取工作负载处于设置状态时从所述L2P映射表检索与当前提供的随机读取请求的逻辑地址对应的物理地址,和当所述随机读取工作负载处于清除状态时通过以写入高速缓冲存储器、P2L映射表和L2P映射表的顺序执行搜索操作以检索与当前提供的随机读取请求的逻辑地址对应的物理地址。
20.根据权利要求19所述的存储装置,其中所述随机读取工作负载控制单元被配置为当所述随机读取计数等于或大于参考计数时,将临时存储在所述写入高速缓冲存储器中的数据存储到所述存储器装置中并基于所述P2L映射表更新所述L2P映射表。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170086690A KR102310117B1 (ko) | 2017-07-07 | 2017-07-07 | 저장 장치 및 그 동작 방법 |
KR10-2017-0086690 | 2017-07-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109213705A true CN109213705A (zh) | 2019-01-15 |
CN109213705B CN109213705B (zh) | 2021-08-20 |
Family
ID=64902730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711311654.6A Active CN109213705B (zh) | 2017-07-07 | 2017-12-11 | 存储装置及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10466905B2 (zh) |
KR (1) | KR102310117B1 (zh) |
CN (1) | CN109213705B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111459845A (zh) * | 2019-01-22 | 2020-07-28 | 爱思开海力士有限公司 | 存储装置、包括存储装置的计算系统及其操作方法 |
CN111506515A (zh) * | 2019-01-31 | 2020-08-07 | 爱思开海力士有限公司 | 存储器控制器及其操作方法 |
CN111899192A (zh) * | 2020-07-23 | 2020-11-06 | 北京字节跳动网络技术有限公司 | 交互方法、装置、电子设备及计算机可读存储介质 |
CN112002367A (zh) * | 2019-05-27 | 2020-11-27 | 爱思开海力士有限公司 | 存储器装置以及操作该存储器装置的方法 |
CN113448487A (zh) * | 2020-03-25 | 2021-09-28 | 慧荣科技股份有限公司 | 写入闪存管理表的计算机可读取存储介质、方法及装置 |
CN113918085A (zh) * | 2020-07-07 | 2022-01-11 | 爱思开海力士有限公司 | 用于元数据管理的存储器系统及其操作方法 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102395538B1 (ko) * | 2017-04-28 | 2022-05-10 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR102538679B1 (ko) | 2018-04-06 | 2023-06-02 | 삼성전자주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10990463B2 (en) * | 2018-03-27 | 2021-04-27 | Samsung Electronics Co., Ltd. | Semiconductor memory module and memory system including the same |
KR102581318B1 (ko) | 2018-04-04 | 2023-09-25 | 삼성전자주식회사 | 반도체 메모리 모듈 및 반도체 메모리 모듈을 포함하는 메모리 시스템 |
KR102549584B1 (ko) | 2018-03-27 | 2023-06-30 | 삼성전자주식회사 | 메모리 모듈을 포함하는 메모리 시스템, 메모리 모듈, 그리고 메모리 모듈의 동작 방법 |
KR20200088713A (ko) * | 2019-01-15 | 2020-07-23 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
KR20200099897A (ko) * | 2019-02-15 | 2020-08-25 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
US11086786B2 (en) | 2019-12-09 | 2021-08-10 | Westem Digital Technologies, Inc. | Storage system and method for caching a single mapping entry for a random read command |
KR20210074849A (ko) | 2019-12-12 | 2021-06-22 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이의 동작 방법 |
CN113900582A (zh) * | 2020-06-22 | 2022-01-07 | 慧荣科技股份有限公司 | 数据处理方法及对应的数据储存装置 |
CN113885779B (zh) * | 2020-07-02 | 2024-03-12 | 慧荣科技股份有限公司 | 数据处理方法及对应的数据储存装置 |
KR20220033369A (ko) * | 2020-09-09 | 2022-03-16 | 에스케이하이닉스 주식회사 | 메모리 장치 및 메모리 장치의 동작 방법 |
KR20220060790A (ko) | 2020-11-05 | 2022-05-12 | 에스케이하이닉스 주식회사 | 메모리 시스템 |
US11841767B2 (en) | 2021-11-24 | 2023-12-12 | Samsung Electronics Co., Ltd. | Controller controlling non-volatile memory device, storage device including the same, and operating method thereof |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120330927A1 (en) * | 2011-01-26 | 2012-12-27 | International Business Machines Corporation | Intelligent adaptive index density in a database management system |
CN103026346A (zh) * | 2010-07-27 | 2013-04-03 | 国际商业机器公司 | 包括固态存储器设备的存储系统中的逻辑到物理地址映射 |
CN103092697A (zh) * | 2010-12-17 | 2013-05-08 | 微软公司 | 用于主存有状态和无状态中间软件组件的多承租人高密度容器服务 |
CN104077084A (zh) * | 2014-07-22 | 2014-10-01 | 中国科学院上海微系统与信息技术研究所 | 分布式随机访问文件系统及其访问控制方法 |
CN106575271A (zh) * | 2014-06-23 | 2017-04-19 | 谷歌公司 | 管理存储设备 |
CN106909476A (zh) * | 2015-12-21 | 2017-06-30 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8341330B2 (en) * | 2008-01-07 | 2012-12-25 | Macronix International Co., Ltd. | Method and system for enhanced read performance in serial peripheral interface |
JP5884602B2 (ja) | 2012-03-30 | 2016-03-15 | 富士通株式会社 | ストレージ制御装置、およびストレージシステム |
KR102002921B1 (ko) * | 2012-12-05 | 2019-07-23 | 삼성전자주식회사 | 버퍼 운영 방법 및 그에 따른 반도체 저장 장치 |
KR102244618B1 (ko) | 2014-02-21 | 2021-04-26 | 삼성전자 주식회사 | 플래시 메모리 시스템 및 플래시 메모리 시스템의 제어 방법 |
KR102155611B1 (ko) | 2014-02-28 | 2020-09-14 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 |
US10656842B2 (en) * | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device |
US9778855B2 (en) * | 2015-10-30 | 2017-10-03 | Sandisk Technologies Llc | System and method for precision interleaving of data writes in a non-volatile memory |
TWI579693B (zh) | 2016-04-29 | 2017-04-21 | 群聯電子股份有限公司 | 映射表載入方法、記憶體控制電路單元與記憶體儲存裝置 |
US10496542B1 (en) * | 2017-04-27 | 2019-12-03 | EMC IP Holding Company LLC | Input/output patterns and data pre-fetch |
US10372341B2 (en) * | 2017-06-28 | 2019-08-06 | Western Digital Technologies, Inc. | Non-volatile storage device system with page based remapping |
-
2017
- 2017-07-07 KR KR1020170086690A patent/KR102310117B1/ko active IP Right Grant
- 2017-12-06 US US15/832,966 patent/US10466905B2/en active Active
- 2017-12-11 CN CN201711311654.6A patent/CN109213705B/zh active Active
-
2019
- 2019-10-17 US US16/656,215 patent/US11340790B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103026346A (zh) * | 2010-07-27 | 2013-04-03 | 国际商业机器公司 | 包括固态存储器设备的存储系统中的逻辑到物理地址映射 |
CN103092697A (zh) * | 2010-12-17 | 2013-05-08 | 微软公司 | 用于主存有状态和无状态中间软件组件的多承租人高密度容器服务 |
US20120330927A1 (en) * | 2011-01-26 | 2012-12-27 | International Business Machines Corporation | Intelligent adaptive index density in a database management system |
CN106575271A (zh) * | 2014-06-23 | 2017-04-19 | 谷歌公司 | 管理存储设备 |
CN104077084A (zh) * | 2014-07-22 | 2014-10-01 | 中国科学院上海微系统与信息技术研究所 | 分布式随机访问文件系统及其访问控制方法 |
CN106909476A (zh) * | 2015-12-21 | 2017-06-30 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111459845A (zh) * | 2019-01-22 | 2020-07-28 | 爱思开海力士有限公司 | 存储装置、包括存储装置的计算系统及其操作方法 |
CN111506515A (zh) * | 2019-01-31 | 2020-08-07 | 爱思开海力士有限公司 | 存储器控制器及其操作方法 |
CN111506515B (zh) * | 2019-01-31 | 2023-11-03 | 爱思开海力士有限公司 | 存储器控制器及其操作方法 |
US11886361B2 (en) | 2019-01-31 | 2024-01-30 | SK Hynix Inc. | Memory controller and operating method thereof |
CN112002367A (zh) * | 2019-05-27 | 2020-11-27 | 爱思开海力士有限公司 | 存储器装置以及操作该存储器装置的方法 |
CN112002367B (zh) * | 2019-05-27 | 2023-06-13 | 爱思开海力士有限公司 | 存储器装置以及操作该存储器装置的方法 |
CN113448487A (zh) * | 2020-03-25 | 2021-09-28 | 慧荣科技股份有限公司 | 写入闪存管理表的计算机可读取存储介质、方法及装置 |
CN113448487B (zh) * | 2020-03-25 | 2024-06-21 | 慧荣科技股份有限公司 | 写入闪存管理表的计算机可读取存储介质、方法及装置 |
CN113918085A (zh) * | 2020-07-07 | 2022-01-11 | 爱思开海力士有限公司 | 用于元数据管理的存储器系统及其操作方法 |
CN111899192A (zh) * | 2020-07-23 | 2020-11-06 | 北京字节跳动网络技术有限公司 | 交互方法、装置、电子设备及计算机可读存储介质 |
CN111899192B (zh) * | 2020-07-23 | 2022-02-01 | 北京字节跳动网络技术有限公司 | 交互方法、装置、电子设备及计算机可读存储介质 |
US11842425B2 (en) | 2020-07-23 | 2023-12-12 | Beijing Bytedance Network Technology Co., Ltd. | Interaction method and apparatus, and electronic device and computer-readable storage medium |
Also Published As
Publication number | Publication date |
---|---|
KR20190005670A (ko) | 2019-01-16 |
CN109213705B (zh) | 2021-08-20 |
US20190012081A1 (en) | 2019-01-10 |
US11340790B2 (en) | 2022-05-24 |
KR102310117B1 (ko) | 2021-10-08 |
US10466905B2 (en) | 2019-11-05 |
US20200050362A1 (en) | 2020-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109213705A (zh) | 存储装置及其操作方法 | |
CN110069212B (zh) | 存储装置及存储装置的操作方法 | |
CN103971739B (zh) | 包括非易失性存储设备的存储系统及其编程方法 | |
CN110083304A (zh) | 存储器控制器及其操作方法 | |
CN110321070B (zh) | 存储器控制器及其操作方法 | |
CN110390970B (zh) | 存储器装置及其操作方法 | |
CN109426743A (zh) | 存储装置及其操作方法 | |
CN110400588A (zh) | 存储器装置以及该存储器装置的操作方法 | |
CN110503997A (zh) | 存储器装置及其操作方法 | |
CN109388578B (zh) | 存储装置及其操作方法 | |
CN107578793A (zh) | 非易失性存储器系统和非易失性存储器装置的操作方法 | |
CN109427400A (zh) | 存储器装置及其操作方法 | |
US20210191636A1 (en) | Storage device and method of operating the same | |
CN111105832B (zh) | 存储装置和操作存储装置的方法 | |
CN110275673A (zh) | 存储装置及其操作方法 | |
CN110399092A (zh) | 存储装置以及操作存储装置的方法 | |
CN110287130A (zh) | 存储装置及其操作方法 | |
CN110502449A (zh) | 存储装置及其操作方法 | |
CN109933540A (zh) | 存储装置及其操作方法 | |
CN110389717A (zh) | 存储装置及其操作方法 | |
CN110175132A (zh) | 存储装置及其操作方法 | |
CN110175133B (zh) | 存储装置及其操作方法 | |
CN109753455A (zh) | 存储器控制器及其操作方法 | |
CN111883197B (zh) | 存储装置及其操作方法 | |
US11194732B2 (en) | Storage device and method of operating the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |