CN114519019A - 控制器及其操作方法 - Google Patents

控制器及其操作方法 Download PDF

Info

Publication number
CN114519019A
CN114519019A CN202110741072.1A CN202110741072A CN114519019A CN 114519019 A CN114519019 A CN 114519019A CN 202110741072 A CN202110741072 A CN 202110741072A CN 114519019 A CN114519019 A CN 114519019A
Authority
CN
China
Prior art keywords
read
host
predicted
memory
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
CN202110741072.1A
Other languages
English (en)
Inventor
郑相焄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN114519019A publication Critical patent/CN114519019A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • G06F13/1631Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6026Prefetching based on access pattern detection, e.g. stride based prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本公开涉及一种控制存储器装置的控制器,该控制器包括:处理器,被配置为检测预定数量的主机读取请求之中的具有连续逻辑地址的至少一个顺序读取请求组,而无论该顺序读取请求组中包括的顺序读取请求是否被连续接收到,预测检测到的顺序读取请求组的逻辑地址,并且控制存储器装置准备与预测的逻辑地址相关联的数据块;以及存储器,被配置为缓冲准备好的数据块,其中处理器进一步被配置为在从主机接收到对预测数据块的请求时,向主机提供经缓冲的数据块。

Description

控制器及其操作方法
相关申请的交叉引用
本申请要求于2020年11月18日提交的、申请号为10-2020-0154396的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
各个实施例涉及一种控制存储器装置的控制器。
背景技术
计算机环境范例已经转变为能够随时随地使用计算系统的普适计算。因此,诸如移动电话、数码相机和膝上型计算机的便携式电子装置的使用已迅速增加。这些便携式电子装置通常使用具有一个或多个存储器装置的存储器系统以存储数据。存储器系统可以用作便携式电子装置的主存储器装置或辅助存储器装置。
由于存储器系统不具有移动部件,因此其提供诸如优异的稳定性和耐久性、高信息访问速度和低功耗的优势。具有这种优点的存储器系统的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。
发明内容
各个实施例旨在提供一种能够通过在多流环境中更有效地执行预测读取操作来提高存储器系统的操作速度的控制器及其操作方法。
根据实施例,一种控制存储器装置的控制器,该控制器包括:处理器,被配置为检测预定数量的主机读取请求之中的与连续逻辑地址相对应的至少一个顺序读取请求组,而无论该顺序读取请求组中包括的顺序读取请求是否被连续接收到,预测检测到的顺序读取请求组的逻辑地址,并且控制存储器装置准备与预测的逻辑地址相关联的数据块;以及存储器,被配置为缓冲准备好的数据块,其中处理器进一步被配置为在从主机接收到对预测数据块的请求时,向主机提供经缓冲的数据块。
处理器可以预测与连续逻辑地址连续的逻辑地址。
至少一个顺序读取请求组可以是主机读取请求之中的读取请求,读取请求中的每一个具有相同的数据长度并且连续预定长度或更多。
处理器可以通过检测与主机读取请求相关联的主机数据块之中的数据长度等于或大于阈值的顺序读取请求组来检测至少一个数据流。
处理器可以通过检测主机读取请求之中的与彼此连续的逻辑地址相对应的顺序读取请求组来检测至少一个数据流。
处理器可以将流ID分配给每个检测到的顺序读取请求组。
预测的逻辑地址可以用于主机中,并且其中处理器控制存储器装置通过以下方式准备与预测的逻辑地址相关联的数据块:生成与预测的逻辑地址相对应的预测读取请求,将预测读取请求和在预测读取请求之前的在前读取请求的逻辑地址转换为与存储器装置相关联的物理地址,并且基于物理地址,生成与预测读取请求相对应的预测读取命令和与在前读取请求相对应的在前读取命令。
当物理地址可以指示同一存储器管芯时,处理器生成高速缓存读取命令作为预测读取命令和在前读取命令。
处理器可以通过以下方式向主机提供经缓冲的数据块:响应于预测读取命令,将存储器装置的页面缓冲器中准备好的数据块缓冲在存储器中,并且响应于经缓冲的数据块的请求,向主机提供经缓冲的数据块。
当物理地址指示不同的存储器管芯时,处理器可以生成正常读取命令作为预测读取命令和在前读取命令,并且交错生成的正常读取命令。
处理器可以通过以下方式向主机提供经缓冲的数据块:响应于预测读取命令,将准备好的数据块缓冲在存储器中,并且响应于对准备好的数据块的请求,向主机提供经缓冲的数据块。
根据实施例,一种控制存储器装置的控制器的操作方法,该操作方法包括:检测预定数量的主机读取请求之中的与连续逻辑地址相对应的至少一个顺序读取请求组,而无论该顺序读取请求组中包括的顺序读取请求是否被连续接收到;预测检测到的顺序读取请求组的逻辑地址;控制存储器装置准备与预测的逻辑地址相关联的数据块;并且在从主机接收到对预测数据块的请求时,向主机提供准备好的数据块。
预测检测到的顺序读取请求组的逻辑地址包括预测与连续逻辑地址连续的逻辑地址。
至少一个顺序读取请求组可以是主机读取请求之中的读取请求,该读取请求中的每一个具有相同的数据长度并且连续预定长度或更多。
检测至少一个数据流包括:检测主机读取请求之中的数据长度等于或大于阈值的顺序读取请求组;并且检测主机读取请求之中的与彼此连续的逻辑地址相对应的顺序读取请求组。
该操作方法可以进一步包括将流ID分配给检测到的顺序读取请求组。
预测的逻辑地址用于主机中,并且控制存储器装置准备与预测的逻辑地址相关联的数据块可以包括:生成与预测的逻辑地址相对应的预测读取请求;将预测读取请求和在预测读取请求之前的在前读取请求的逻辑地址转换为与存储器装置相关联的物理地址;并且基于物理地址,生成与预测读取请求相对应的预测读取命令和与在前读取请求相对应的在前读取命令。
生成预测读取命令和在前读取命令可以包括:当物理地址指示同一存储器管芯时,生成高速缓存读取命令作为预测读取命令和在前读取命令。
向主机提供准备好的数据块可以包括:响应于预测读取命令,将存储器装置的页面缓冲器中准备好的数据块缓冲在控制器的存储器中;并且响应于对经缓冲的数据块的请求,向主机提供经缓冲的数据块。
生成预测读取命令和在前读取命令包括:当物理地址指示不同的存储器管芯时,生成正常读取命令作为预测读取命令和在前读取命令;并且交错生成的正常读取命令。
向主机提供准备好的数据块可以包括:响应于预测读取命令,将准备好的数据块缓冲在控制器的存储器中;并且响应于对准备好的数据块的请求,向主机提供经缓冲的数据块。
根据实施例,一种控制器的操作方法,该操作方法包括:接收预定数量的读取请求以及相应的地址;预测来自接收到的地址之中的预定数量的连续地址之后的地址;在存储器装置的读取操作期间,根据连续地址从存储器装置中获得与预测地址相对应的数据;并且响应于与预测地址一起提供的后续读取请求提供所获得的数据,而无需针对后续读取请求对存储器装置进行读取操作。
本公开的实施例提供一种能够通过在多流环境中更有效地执行预测读取操作来提高存储器系统的操作速度的控制器及其操作方法。
附图说明
图1是示出根据本公开的实施例的包括控制器的数据处理系统的示例的示图。
图2是示出控制器(诸如图1的控制器)的示图。
图3是示出根据实施例的存储器装置中的管芯的配置的示图。
图4是示出预测读取操作的示图。
图5是示出多流环境中的读取命令接收的示图。
图6是示出根据本公开的实施例的控制器的操作的示图。
图7A和图7B是示出存储器管芯的读取操作的示图。
图8是当使用高速缓存读取命令执行预测读取操作和在前主机读取操作时的时序图。
图9是当使用交错的正常读取命令执行预测读取操作和在前主机读取操作时的时序图。
图10是描述根据本公开的实施例的控制器的操作的流程图。
具体实施方式
在下文中,将参照附图详细地描述本公开的各个实施例。然而,本公开不限于下面所公开的实施例,并且可以以不同形式配置。提供本实施例是为了使本公开的公开内容完善,并且帮助本领域技术人员完全理解本公开的范围。
图1是示出根据本发明的实施例的包括控制器130的数据处理系统100的框图。
参照图1,数据处理系统100可以包括存储器系统110和可操作地联接到存储器系统110的主机102。
主机102可以包括诸如移动电话、MP3播放器和膝上型计算机的各种便携式电子装置中的任何一种,或诸如台式计算机、游戏机、电视(TV)和投影仪的各种非便携式电子装置中的任何一种。
主机102可以包括至少一个操作系统(OS),该操作系统可以管理和控制主机102的全部功能和操作,并且提供主机102与使用数据处理系统100或存储器系统110的用户之间的操作。OS可以支持与用户的使用目的和用途相对应的功能和操作。例如,根据主机102的移动性,OS可以划分为通用OS和移动OS。根据用户的环境,通用OS可以划分为个人OS和企业OS。
存储器系统110可以响应于主机102的请求而操作来为主机102存储数据。存储器系统110的非限制性示例可以包括固态驱动器(SSD)、多媒体卡(MMC)、安全数字(SD)卡、通用串行总线(USB)装置、通用闪存(UFS)装置、紧凑型闪存(CF)卡、智能媒体卡(SMC)、个人计算机存储卡国际协会(PCMCIA)卡和记忆棒。MMC可以包括嵌入式MMC(eMMC)、尺寸减小的MMC(RS-MMC)和微型MMC等。SD卡可以包括迷你SD卡和微型SD卡。
存储器系统110可以由各种类型的存储装置实现。这种存储装置的示例可以包括但不限于诸如动态随机存取存储器(DRAM)和静态RAM(SRAM)的易失性存储器装置以及诸如只读存储器(ROM)、掩膜ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(RRAM或ReRAM)和闪速存储器的非易失性存储器装置。闪速存储器可以具有3维(3D)堆叠结构。
存储器系统110可以包括控制器130和存储器装置150。存储器装置150可以为主机102存储数据,并且控制器130可以控制数据存储到存储器装置150中。
控制器130和存储器装置150可以集成到单个半导体装置中。例如,控制器130和存储器装置150可以集成为一个半导体装置以构成固态驱动器(SSD)。当存储器系统110用作SSD时,可以提高连接到存储器系统110的主机102的操作速度。另外,控制器130和存储器装置150可以集成为一个半导体装置以构成存储卡。例如,控制器130和存储器装置150可以构成诸如以下的存储卡:个人计算机存储卡国际协会(PCMCIA)卡,紧凑型闪存(CF)卡,智能媒体(SM)卡,记忆棒,包括尺寸减小的MMC(RS-MMC)和微型MMC的多媒体卡(MMC),包括迷你SD卡、微型SD卡和SDHC卡的安全数字(SD)卡,或通用闪存(UFS)装置。
存储器系统110的非限制性应用示例可以包括计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板电脑、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航系统、黑盒、数码相机、数字多媒体广播(DMB)播放器、3维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、构成数据中心的存储装置、能够在无线环境中传输/接收信息的装置、构成家庭网络的各种电子装置之一、构成计算机网络的各种电子装置之一、构成远程信息处理网络的各种电子装置之一、射频识别(RFID)装置或构成计算系统的各种组件之一。
存储器装置150可以是闪速存储器装置。闪速存储器装置可以将数据存储在由存储器单元晶体管组成的存储器单元阵列中。闪速存储器装置可以具有由存储器管芯、存储块和页面组成的分层结构。图1示出通过第一通道CH1和第二通道CH1连接到控制器130的第一至第四存储器管芯DIE1至DIE4。
闪速存储器装置可以包括多个存储器管芯。一个存储器管芯可以包括多个存储块。存储块可以是擦除操作的最小单位。一个存储块可以包括多个页面。页面可以是写入操作的最小单位。
一个DIE可以通过连接到控制器130的通道每次接收一个命令。接收到命令的存储器管芯可以并行操作。
控制器130可以响应于来自主机102的请求控制存储器装置150。例如,控制器130可以向主机102提供从存储器装置150读取的数据,并且将从主机102提供的数据存储到存储器装置150中。对于该操作,控制器130可以控制存储器装置150的读取操作、编程操作和擦除操作。
将参照图2和图3更详细地描述控制器130和存储器装置150。
图2是示出控制器(诸如图1的控制器130)的示图。
控制器130可以包括全部经由内部总线可操作地联接的主机接口(I/F)132、处理器134、存储器I/F 142和存储器144。
主机I/F 132可以被配置为处理主机102的命令和数据,并且可以通过诸如以下的各种接口协议中的一种或多种与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)和电子集成驱动器(IDE)。
可以通过被称为主机接口层(HIL)的固件来驱动主机I/F 132,以与主机交换数据。
存储器I/F 142可以用作接口连接控制器130和存储器装置150的存储器/存储接口,使得控制器130响应于来自主机102的请求控制存储器装置150。当存储器装置150是闪速存储器或者具体地是NAND闪速存储器时,存储器I/F 142可以生成针对存储器装置150的控制信号并且在处理器134的控制下处理待提供到存储器装置150的数据。存储器I/F142可以用作用于处理控制器130和存储器装置150之间的命令和数据的接口(例如,NAND闪存接口)。在实施例中,存储器I/F 142可以支持控制器130和存储器装置150之间的数据传送。
存储器I/F 142可以通过被称为闪存接口层(FIL)的固件来驱动,以与存储器装置150交换数据。
处理器134可以控制存储器系统110的全部操作。处理器134可以驱动固件以控制存储器系统110的全部操作。固件可以被称为闪存转换层(FTL)。而且,处理器134可以被实现为微处理器或中央处理单元(CPU)。
处理器134可以驱动FTL并且执行与从主机接收的请求相对应的前台操作。例如,处理器134可以响应于来自主机的写入请求来控制存储器装置150的写入操作,并且响应于来自主机的读取请求来控制存储器装置150的读取操作。
而且,控制器130可以通过处理器134对存储器装置150执行后台操作,该处理器134被实现为微处理器或CPU。例如,对存储器装置150执行的后台操作可以包括垃圾收集(GC)操作、损耗均衡(WL)操作、映射刷新操作或坏块管理操作。
存储器144可以用作存储器系统110和控制器130的工作存储器,并且存储用于驱动存储器系统110和控制器130的数据。控制器130可以响应于来自主机102的请求,控制存储器装置150执行读取操作、编程操作和擦除操作。控制器130可以向主机102提供从存储器装置150读取的数据,可以将由主机102提供的数据存储到存储器装置150中。存储器144可以存储控制器130和存储器装置150执行这些操作所需的数据。
存储器144可以由易失性存储器来实现。例如,存储器144由静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)来实现。存储器144可以设置在控制器130内或外。图1例示设置在控制器130内的存储器144。在实施例中,存储器144可以由具有在存储器144和控制器130之间传送数据的存储器接口的外部易失性存储器来实现。
如上所述,存储器144可以存储在主机和存储器装置150之间执行数据写入/读取操作所需的数据以及执行数据写入/读取操作时的数据。为了存储这种数据,存储器144可以包括程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。
图3是示出根据实施例的存储器装置150中的存储器管芯300的配置的示图。
存储器管芯300可以对应于参照图1描述的第一至第四存储器管芯DIE1至DIE4。存储器管芯300可以包括存储器单元阵列330,存储器单元阵列330包括多个存储器单元。存储器单元阵列330可以包括多个存储块。
参照图3,存储器系统110的存储器单元阵列330可以包括多个单元串340,该多个单元串340联接到多个相应的位线BL0至BLm-1。每列单元串340可以包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。在漏极选择晶体管DST和源极选择晶体管SST之间,可以串联联接多个存储器单元或存储器单元晶体管MC0至MCn-1。在实施例中,存储器单元MC0至MCn-1中的每一个可以由能够存储多个位的数据信息的MLC来实现。单元串340中的每一个可以电联接到多条位线BL0至BLm-1之中的相应位线。例如,如图3所示,第一个单元串联接到第一条位线BL0,并且最后一个单元串联接到最后一条位线BLm-1。作为参考,在图3中,“DSL”表示漏极选择线,“SSL”表示源极选择线,“CSL”表示公共源极线。
尽管图3示出NAND闪速存储器单元,但本发明不限于此。注意的是,存储器单元可以是NOR闪速存储器单元,或者包括组合在其中的两种或多种类型的存储器单元的混合闪速存储器单元。而且,注意的是,存储器装置150可以是包括作为电荷存储层的导电浮栅的闪速存储器装置或者包括作为电荷存储层的绝缘层的电荷撷取闪存(CTF)存储器装置。
存储器管芯300可以进一步包括电源310,电源310提供包括编程电压、读取电压和通过电压的字线电压,以根据操作模式供应到字线。电源310的电压生成操作可以由控制电路(未示出)控制。在控制电路的控制下,电源310可以选择存储器单元阵列的存储块(或扇区)中的一个,选择所选择的存储块的字线中的一条,并且根据需要向所选择的字线和未选择的字线提供字线电压。
存储器管芯300可以包括由控制电路控制的读取和写入(读取/写入)电路320。在验证/正常读取操作期间,读取/写入电路320可以作为从存储器单元阵列读取数据的读出放大器而操作。在编程操作期间,读取/写入电路320可以作为写入驱动器来操作,该写入驱动器用于根据待存储在存储器单元阵列中的数据来驱动位线。在编程操作期间,读取/写入电路320可以从缓冲器(未示出)接收待存储到存储器单元阵列中的数据,并且根据接收到的数据来驱动位线。读取/写入电路320可以包括分别对应于列(或位线)或列对(或位线对)的多个页面缓冲器322至326,并且页面缓冲器322至326中的每一个可以包括多个锁存器(未示出)。
图4是用于示出预测读取操作的示图。
图4示出在主机102和控制器130之间交换的请求和数据。
主机102可以向控制器130请求数据流。数据流可以指对应于连续地址的一系列数据。为了向控制器130请求数据流,主机102可以相对于数据的地址将数据流划分为具有预定或设定大小的数据块,并且生成用于读取数据块的多个读取请求。主机102可以向控制器130提供与数据流相关联的多个读取请求。例如,主机102可以向控制器130提供作为读取请求的第一至第四请求REQ1至REQ4。
从主机102向控制器130提供的读取请求中的每个读取请求可以包括待读取的数据块的地址信息。在附图中,以[起始地址,数据长度]的格式表示每个请求中包括的地址信息。数据长度信息可以指示从起始地址开始的相应数据块的长度。例如,第二请求REQ2的地址信息[20,10]可以指示从地址“20”开始的连续10个地址。同时,将使用示例来描述本公开的实施例,在示例中数据长度信息表示为关于连续地址的数量的信息;然而,表示数据长度信息的方法不限于此。
第一至第四请求REQ1至REQ4是与对应于从地址“10”开始的连续40个地址的数据块相关联的读取请求,并且可以是与一个数据流相关联的读取请求。针对一个数据流的多个读取请求可以被称为针对该数据流的一组顺序读取请求。
基于与通过主机I/F 132从主机102接收到的多个读取请求相关联的多个数据块的地址信息,处理器134可以确定多个读取请求是否是顺序读取请求以及多个数据块是否构成一个数据流。例如,当多个数据块的地址连续预定数量时,处理器134可以确定对应于连续地址的数据块构成一个数据流。在图4的示例中,基于第一至第四请求REQ1至REQ4的地址信息,处理器134可以确定对应于40个连续地址的数据块构成一个数据流,并且将第一至第四请求REQ1至REQ4确定为该数据流的一组顺序读取请求。
在将当前接收到的请求确定为一组顺序读取请求时,处理器134可以预测未来将进一步从主机102接收到与数据流相关联的后续读取请求,并且在主机102实际提供后续读取请求之前预先生成预测读取请求。例如,当主机102请求从地址“10”至“49”的数据块时,处理器134可以预测主机102将进一步请求与从地址“10”至“49”的数据块连续的从地址“50”开始的数据块。甚至在主机102实际请求从地址“50”开始的数据块之前,处理器134可以生成第五请求REQ5,第五请求REQ5是针对从地址“50”开始的具有连续10个地址的数据块的预测读取请求。处理器134可以响应于第一至第五请求REQ1至REQ5而控制存储器装置150执行读取操作。
处理器134检测对应于连续地址的顺序读取请求组以预测地址并且通过生成预测读取请求来控制存储器装置150预先准备预测地址的操作可以被称为预测读取操作。
响应于第一至第五请求REQ1至REQ5,存储器装置150不仅可以将第一至第四数据块DATA1至DATA4缓冲在存储器144中,还可以预先在存储器144中准备第五数据块DATA5,即预测数据块。在附图中,以[起始地址,数据长度]的格式表示对应于每个数据块的地址信息。由存储器装置150准备预测数据块可以指将预测数据块锁存在内部页面缓冲器中或将预测数据块缓冲在存储器144中。将参照7A和图7B描述存储器装置150准备预测数据块的操作。。
主机I/F 132可以向主机102提供由主机102请求的第一至第四数据块DATA1至DATA4。然后,当从主机102接收到对第五数据块DATA5的请求时,处理器134可以通过主机I/F 132向主机102提供缓冲在存储器144中的第五数据块DATA5,而无需为了第五数据块DATA5对存储器装置150进行任何进一步的读取操作。
处理器134可以生成预测读取命令,并且控制存储器装置150通过使用预测读取命令来获得或缓冲预测数据块作为存储器144中的准备好的数据块,该预测读取命令是用于准备预测数据块的读取命令,预测数据块被预测为待由主机102请求的数据块。当从主机102接收到针对准备好的数据块的实际请求时,处理器134可以直接向主机102提供准备好的数据块,从而提高存储器系统110的读取操作性能。
图5是用于说明多流环境中的读取请求接收的示图。
主机102可以运行多个应用APP1至APP3。多个应用APP1至APP3可以分别向控制器130请求不同的数据流。多个应用APP1至APP3中的每一个可以相对于数据的地址将数据流划分为具有预定大小的数据块,并且生成针对数据块的多个读取请求。主机102可以向控制器130提供由多个应用APP1至APP3中的每一个生成的多个读取请求。
图5示出为由第一应用APP1生成的读取请求的第一至第四请求REQ1至REQ4,为由第二应用APP2生成的读取请求的第五至第八请求REQ5至REQ8,以及为由第三应用APP3生成的读取请求的第九至第十二请求REQ9至REQ12。在图5的示例中,根据与第一至第十二请求REQ1至REQ12相关联的数据块的地址信息,由同一应用请求的数据块的地址可以是彼此连续的,而由不同应用请求的数据块的地址可以不是彼此连续的。
当控制器130基于从主机102接收到的请求而检测到对应于连续地址的至少一个顺序读取请求组并且通过对每个顺序读取请求组的请求进行分类来处理请求时,可以提高存储器系统110的性能和寿命。例如,当控制器130可以为每个数据流生成预测读取请求并且为每个顺序读取请求组准备预测数据块时,可以提高存储器系统110的读取操作性能。
控制器130可以以混合方式接收由不同应用生成的顺序读取请求。图5示出控制器130以混合方式接收第一至第十二REQ1至REQ12的情况。在图5的示例中,与连续接收到的请求相关联的数据块的地址可能不是连续的。
当向控制器130提供请求时,主机102可以不提供流ID。即使主机102不向控制器130提供流ID,处理器134也需要基于以混合方式接收的读取请求来检测至少一个顺序读取请求组,并且生成针对每个顺序读取请求组的预测读取请求。
根据本公开的实施例,处理器134可以基于与来自主机102的读取请求相关联的数据块的地址信息来检测至少一个顺序读取请求组。例如,当检测到预定数量的连续地址时,处理器134可以确定从主机102接收到与数据流相关联的顺序读取请求组。
处理器134可以生成针对每个检测到的顺序读取请求组的预测读取请求。例如,控制器130可以将不同的流ID分配给检测到的顺序读取请求组。处理器134可以预测每个数据流的将来可以由主机102请求的地址。然后,处理器134可以生成预测读取请求以准备对应于每个流ID的预测地址。基于每个流ID的预测读取请求,处理器134可以控制存储器装置150准备预测地址。当从主机102接收到对预测地址的实际请求时,处理器134可以向主机102提供准备好的数据块。
根据本公开的实施例,即使主机102不向控制器130提供流ID,处理器134也可以从读取请求的地址信息中检测顺序读取请求组并且为每个数据流生成预测读取请求。即使控制器130顺序地接收到的请求中包括的地址不是连续的,处理器134也可以通过检测至少一个顺序读取请求组来生成针对每个数据流的预测读取请求,从而提高存储器系统110的读取操作性能.
将参照图6、图7A、图7B、图8和图9详细描述根据本公开的实施例的控制器130的操作。
图6是示出根据本公开的实施例的控制器130的操作的示图。
在多流环境中,主机102可以向控制器130提供由多个应用APP1至APP3分别生成的多个顺序读取请求。控制器130可以以混合方式接收由多个应用APP1至APP3生成的顺序读取请求。图6示出以混合方式接收由多个应用APP1至APP3生成的第一至第十二请求REQ1至REQ12的情况,以便顺序接收到的请求的地址彼此不连续。
处理器134可以收集最近从主机102接收到的读取请求的地址信息,并且基于收集到的地址信息来检测与数据流相关联的顺序读取请求组。根据实施方案,处理器134可以仅收集用于读取具有预定大小或更大的数据块的读取请求的地址信息。例如,处理器134可以仅收集由读取请求中的每一个请求的数据长度等于大于阈值的读取请求的地址信息。在图6的示例中,处理器134可以收集由读取请求中的每一个请求的数据长度等于或大于“10”的读取请求的地址信息,并且基于收集到的地址信息来检测数据流。
在图6的示例中,处理器134可以收集从主机102接收的第一至第十二请求REQ1至REQ12的地址信息。基于收集到的地址信息,处理器134可以通过检测具有相同数据长度的预定数量或更多的连续地址来检测至少一个顺序读取请求组。然后,处理器134可以将流ID分配给检测到的顺序读取请求组。
在处理器134通过检测40个或更多连续地址来检测顺序读取请求组的示例中,处理器134可以基于第一至第四请求REQ1至REQ4来检测顺序读取请求组并且将流ID“1”分配给顺序读取请求组,第一至第四请求REQ1至REQ4中的每一个的数据长度为“10”且其40个地址是连续的。同样地,处理器134可以将流ID“2”分配给包括第五至第八请求REQ5至REQ8的顺序读取请求组,第五至第八请求REQ5至REQ8中的每一个的数据长度为“20”并且其80个地址是连续的。处理器134可以将流ID“3”分配给包括第九至第十二请求REQ9至REQ12的顺序读取请求组,第九至第十二请求REQ9至REQ12中的每一个的数据长度为“30”并且其120个地址是连续的。
处理器134可以生成流表600,存储关于与分配有流ID的数据流相关联的顺序读取请求组的信息。流表600可以存储在存储器144中。对于每个流ID,流表600可以包括数据流中包括的数据块的起始地址(“START ADDR”)、由每个读取请求所请求的数据长度(“DATALENGTH”)、最终地址(“LAST ADDR”)和预测地址信息(“PREDICTED ADDR”)。
处理器134可以参考收集到的地址信息,并且更新流表600中每个流ID的数据块的起始地址、由每个读取请求所请求的数据长度和最终地址。例如,与第一至第四请求REQ1至REQ4相关联的数据块是顺序数据块并且可以对应于流ID“1”。对于流ID“1”,处理器134可以通过参考第一至第四请求REQ1至REQ4的地址信息来确定起始地址为“10”、由每个读取请求所请求的数据长度为“10”以及最终地址为“49”,并且更新流表600。同样地,对于流ID“2”,处理器134可以通过参考第五至第八请求REQ5至REQ8的地址信息来确定起始地址为“110”、由每个读取请求所请求的数据长度为“20”以及最终地址为“189”,并且更新流表600。对于流ID“3”,处理器134可以通过参考第九至第十二请求REQ9至REQ12的地址信息来确定起始地址为“210”、由每个读取请求所请求的数据长度为“30”以及最终地址为“329”,并且更新流表600。
处理器134可以基于每个流ID的起始地址、由每个读取请求所请求的数据长度和最终地址来为每个流ID预测待由主机102请求的后续数据块的地址,并且更新流表600中的预测地址信息。例如,处理器134可以基于流表600中流ID“1”的最终地址“49”来预测待由主机102请求的后续数据块的地址为“50”,并且更新流表600中的流ID“1”的预测地址。同样地,对于流ID“2”和流ID“3”,处理器134也可以基于最终地址“189”和“329”来分别预测待请求的后续数据块的地址为“190”和“330”,并且更新流表600。
处理器134可以基于流表600的由每个读取请求所请求的数据长度和预测地址来生成预测读取请求。例如,基于流ID“1”的预测地址“50”和由每个读取请求所请求的数据长度“10”,处理器134可以生成第十三请求REQ13,第十三请求REQ13是针对具有从地址“50”开始的连续10个地址的后续数据块的预测读取请求。同样地,基于流ID“2”的由每个读取请求所请求的数据长度和预测地址,处理器134可以生成第十四请求REQ14,第十四请求REQ14是针对具有从地址“190”开始的连续20个地址的后续数据块的预测读取请求,并且基于流ID“3”的由每个读取请求所请求的数据长度和预测地址,处理器134可以生成第十五请求REQ15,第十五请求REQ15是针对具有从地址“330”开始的连续30个地址的后续数据块的预测读取请求。
处理器134可以基于第十三至第十五请求REQ13至REQ15来控制存储器装置150。响应于第十三至第十五请求REQ13至REQ15,存储器装置150可以针对每个流ID准备被预测待由主机102请求的后续数据块。当主机102实际请求预测数据块时,处理器134可以立即向主机102提供准备好的数据块,而无需从存储器装置150读取数据。
根据实施方案,当主机102实际请求预测数据块时,处理器134可以预测主机102会进一步请求与预测数据块连续的下一个数据块。基于预测数据块的地址信息,处理器134可以更新流表600的最终地址,并且重新预测待由主机102请求预测的下一个数据块的地址。处理器134可以基于重新预测的地址来生成下一个预测读取请求。
同时,为了处理主机读取请求和预测读取请求,处理器134可以生成待提供到存储器装置150的读取命令。处理器134可以选择性地生成与主机读取请求和预测读取请求相对应的高速缓存读取命令和正常读取命令。然后,处理器134可以选择性地交错与主机读取请求和预测读取请求相对应的正常读取命令。与存储器装置150运行未经交错的正常读取命令时相比,当存储器装置150运行高速缓存读取命令或运行经交错的正常读取命令时,可以进一步提高存储器系统110的预测读取操作性能。
将参照图7A和图7B描述正常读取命令和高速缓存读取命令。
图7A和图7B示出控制器(诸如图1的控制器130)以及存储器管芯(诸如图3的存储器管芯300)。
图7A和图7B示出存储器管芯300中包括的一个存储器单元阵列330以及连接到存储器单元阵列330的锁存器组402和404。如参照图3所描述的,存储器管芯300可以包括多个页面缓冲器,并且页面缓冲器中的每一个可以包括多个锁存器。例如,每个页面缓冲器可以包括感测锁存器和高速缓存锁存器。
感测锁存器可以在读取操作期间感测来自位线的电流,并且基于感测结果来锁存待读取的存储器单元的数据。高速缓存锁存器可以在读取操作期间锁存感测锁存器中锁存的数据并且将锁存的数据输出到控制器130。图7A和图7B示出包括连接到与存储器单元阵列330相关联的多条位线的多个感测锁存器的感测锁存器组402,以及包括连接到多个感测锁存器的多个高速缓存锁存器的高速缓存锁存器组404。
处理器134可以向存储器装置150提供正常读取命令和高速缓存读取命令。
将参照图7A描述存储器装置150的正常读取命令操作。
在操作S702中,处理器134可以通过存储器I/F 142向存储器装置150提供正常读取命令。
同时,可以通过与主机102中使用的地址不同的地址来标识存储器装置150的存储器区域。主机读取请求和预测读取请求可以包括在主机102中使用的逻辑地址信息。例如,逻辑地址可以是在主机102的操作系统的文件系统中使用的逻辑块地址(LBA)。处理器134可以将读取请求的逻辑地址信息转换为物理地址信息,并且向存储器装置150的存储器管芯中的任意一个提供包括物理地址信息的读取命令。
在操作S704中,存储器管芯300可以响应于正常读取命令,执行感测操作。
例如,存储器管芯300可以通过向字线施加读取电压来感测来自位线的电流,并且基于感测结果来将待读取的存储器单元的数据锁存在感测锁存器组402中,该字线与存储器单元阵列330中的、由物理地址指示的存储器单元相关联。
在操作S706中,存储器管芯300可以对感测到的数据执行高速缓存操作。
例如,存储器管芯300可以将已经锁存在感测锁存器组402中的数据锁存在高速缓存锁存器组404中。
在操作S708中,处理器134可以通过存储器I/F 142向存储器装置150提供数据输出命令。
在操作S710中,存储器管芯300可以执行将锁存在高速缓存锁存器中的数据输出到控制器130的存储器144的数据输出操作。
将参照图7B描述存储器装置150的高速缓存读取命令操作。
在操作S722中,处理器134可以通过存储器I/F 142向存储器装置150提供正常读取命令。
在操作S724中,存储器管芯300可以对与正常读取命令相对应的第一数据执行感测操作。
例如,存储器管芯300可以通过将读取电压施加到存储器单元阵列330的字线来感测来自位线的电流,并且基于感测结果来将第一数据锁存在感测锁存器组402中。
在操作S726中,存储器管芯300可以执行对第一数据的高速缓存操作。已经参照图7A的操作S706描述高速缓存操作。
作为将读取请求的逻辑地址信息转换为物理地址信息的结果,当需要在同一存储器管芯中处理后续读取请求时,处理器134可以基于后续读取请求来生成高速缓存读取命令。
在操作S728中,处理器134可以通过存储器I/F 142向存储器装置150提供高速缓存读取命令。
在操作S730中,存储器管芯300可以响应于高速缓存读取命令,将锁存在高速缓存锁存器组中的第一数据输出到存储器144,并且同时对与高速缓存读取命令相对应的第二数据执行感测操作。然后,存储器管芯300可以对感测到的第二数据执行锁存操作。
当存储器管芯300执行第一高速缓存读取命令操作和第二高速缓存读取命令操作时,可以同时执行响应于第二高速缓存读取命令而输出第一数据的操作和感测第二数据的操作。因此,与存储器管芯300执行连续正常读取命令操作时相比,当存储器管芯300执行连续的高速缓存读取命令操作时,可以进一步提高存储器系统110的读取操作性能。
处理器134可以基于物理地址来识别存储器管芯,其中数据存储在存储器装置150的存储器管芯中。为了提高存储器系统110的读取操作性能,根据待处理多个读取请求的存储器管芯是否相同,处理器134可以基于读取请求来选择性地生成正常读取命令或高速缓存读取命令。例如,当在与处理在前主机读取请求的存储器管芯相同的存储器管芯中处理预测读取请求时,处理器134可以生成与主机读取请求和预测读取请求相对应的高速缓存读取命令。另一方面,当在与处理在前主机读取请求的存储器管芯不同的存储器管芯中处理预测读取请求时,处理器134可以响应于预测读取请求控制存储器装置150以交错读取方式执行读取操作。
图8是当使用高速缓存读取命令执行预测读取操作(“PREDICTIVE READ”)和在前主机读取操作(“HOST READ”)时的时序图。
当需要在同一存储器管芯中处理主机读取请求和预测读取请求时,处理器134可以生成与主机读取请求相对应的主机高速缓存读取命令和与预测读取请求相对应的预测高速缓存读取命令。
例如,可以在第一存储器管芯DIE1中处理主机读取请求和预测读取请求两者。处理器134可以向第一存储器管芯DIE1顺序地提供主机高速缓存读取命令和预测高速缓存读取命令。
参照图8,第一存储器管芯DIE1可以响应于主机高速缓存读取命令,执行主机数据块的感测操作和高速缓存操作。第一存储器管芯DIE1可以响应于后续预测高速缓存读取命令执行主机数据块的输出操作,并且同时执行预测数据块的感测操作。然后,第一存储器管芯DIE1可以执行对感测到的预测数据块的高速缓存操作以将预测数据块锁存在高速缓存锁存器中。
第一存储器管芯DIE1可以响应于预测高速缓存读取命令,通过将预测数据块锁存在页面缓冲器中来准备预测数据块。可以选择性地执行高速缓存锁存器中锁存的预测数据的输出操作。例如,当主机102请求预测数据时,处理器134可以响应于该请求向第一存储器管芯DIE1提供数据输出命令。第一存储器管芯DIE1可以响应于数据输出命令,执行预测数据的输出操作。处理器134可以向主机102提供输出到存储器144的预测数据。另一方面,当在接收到数据输出命令之前接收到另一命令时,第一存储器管芯DIE1可以从高速缓存锁存器中移除预测数据。
与使用正常读取命令时相比,当使用高速缓存读取命令以获取同一存储器管芯中包括的主机数据块和预测数据块时,控制器130可以更快地获取预测数据块。
同时,如参照图1所描述的,存储器装置150可以包括多个存储器管芯。多个存储器管芯可以响应于读取命令并行地执行读取操作。处理器134可以针对多个存储器管芯交错读取命令。交错命令可以指确定命令提供顺序,以便处理器134可以顺序地向多个管芯提供命令。
图9是当使用交错的正常读取命令执行预测读取操作(“PREDICTIVE READ”)和在前主机读取操作(“HOST READ”)时的时序图。
可以在第一存储器管芯DIE1中执行主机读取命令,并且可以在第二存储器管芯DIE2中执行读取命令。第一存储器管芯DIE1和第二存储器管芯DIE2可以通过第一通道CH1顺序地接收读取命令。然而,当接收一次读取命令时,第一存储器管芯DIE1和第二存储器管芯DIE2可以彼此并行操作。
当需要在不同存储器管芯中处理主机读取请求和预测读取请求时,处理器134可以分别生成与主机读取请求和预测读取请求相对应的主机正常读取命令和预测正常读取命令。然后,处理器134可以交错主机正常读取命令和预测正常读取命令。存储器I/F 142可以顺序地向第一存储器管芯DIE1和第二存储器管芯DIE2提供交错的主机读取命令和预测读取命令。
第一存储器管芯DIE1可以响应于主机读取命令执行主机数据块的感测操作、高速缓存操作和输出操作,并且第二存储器管芯DIE2可以响应于读取命令执行预测数据块的感测操作、高速缓存操作和输出操作。已经参照图7A描述了感测操作、高速缓存操作和输出操作。
第二存储器管芯DIE2可以响应于预测正常读取命令将预测数据块缓冲在存储器144中,从而准备预测数据块。当主机102请求预测数据块时,处理器134可以向主机102提供输出到存储器144的预测数据块。同时,当主机102直到满足预定条件才请求预测数据时,处理器134可以移除输出到存储器144的预测数据块。
参照图9,由于可以同时执行主机正常读取命令和预测正常读取命令的各自的操作,因此控制器130可以快速获取预测待由主机102请求的数据。
图10是描述根据本公开的实施例的控制器130的操作的流程图。
在操作S1002中,处理器134可以收集最近从主机102接收的大块读取请求的地址信息。
例如,大块读取请求可以指对具有预定大小或更大的数据块的读取请求。也就是说,处理器134可以仅收集数据长度信息大于阈值的读取请求的地址信息。同时,地址信息可以包括逻辑地址信息。
在操作S1004中,处理器134可以基于逻辑地址信息来检测顺序读取请求组。
例如,当检测到在收集到的地址信息中预定或设定数量的地址是连续的时,处理器134可以确定与连续地址相对应的读取请求构成与一个数据流相关联的顺序读取请求组,从而检测顺序读取请求组。根据实施方案,处理器134可以通过检测具有相同长度的连续地址来检测顺序读取请求组。
处理器134可以将流ID分配给检测到的顺序读取请求组。处理器134可以更新参照图6描述的流表600中的每个流ID的起始地址、由每个读取请求所请求的数据长度和最终地址。
在操作S1006中,处理器134可以基于检测到的顺序读取请求组来预测待由主机102请求的逻辑地址。
例如,处理器134可以基于流表600中的每个流ID的起始地址、由每个读取请求所请求的数据长度和最终地址,为每个流ID预测待由主机102请求的数据块的地址。此外,处理器134可以基于每个读取请求所请求的数据长度来预测待请求的数据块的数据长度。处理器134可以更新流表600中的预测地址。
在操作S1008中,处理器134可以基于流表600中的每个流ID的由每个读取请求所请求的数据长度和预测地址来为每个流ID生成预测读取请求。
在操作S1010中,处理器134可以生成与预测读取请求相对应的预测读取命令。
例如,处理器134可以将相应读取请求的逻辑地址信息转换为物理地址信息,以便向存储器装置150提供读取命令。基于预测读取请求和在前读取请求的物理地址信息,处理器134可以确定待处理预测读取请求和在预测读取请求之前的读取请求的存储器管芯是否相同。
当待处理预测读取请求和在预测读取请求之前的读取请求的存储器管芯相同时,处理器134可以生成与预测读取请求和在前读取请求相对应的高速缓存读取命令。
当待处理预测读取请求和在前读取请求的存储器管芯彼此不同时,处理器134可以生成与预测读取请求和在前读取请求相对应的正常读取命令,并且交错正常读取命令。
在操作S1012中,处理器134可以通过存储器I/F 142向存储器装置150提供读取命令。
响应于读取命令,存储器装置150可以预先准备预测待由主机102请求的预测数据块。例如,存储器装置150可以响应于预测正常读取命令,将预测数据块输出到存储器144。然后,存储器装置150可以响应于预测高速缓存读取命令,将预测数据块锁存在高速缓存锁存器中。
在操作S1014中,处理器134可以响应于来自主机102的针对具有预测地址的预测数据块的实际读取请求,向主机102提供准备好的数据块。
根据本公开的实施例,控制器130可以基于读取命令的地址信息来检测与至少一个数据流相关联的至少一个顺序读取请求组,预测每个数据流的地址,并且控制存储器装置150预先准备预测地址。即使主机102不向控制器130提供流ID,控制器130也可以对每个数据流执行预测读取操作,从而提高存储器系统110的读取操作性能。
上述本公开不受前述实施例和附图的限制,对于本公开所属领域的技术人员显而易见的是,在不脱离本公开的技术构思的情况下,可以做出各种替换、修改和改变。

Claims (20)

1.一种控制器,所述控制器控制存储器装置,所述控制器包括:
处理器:
检测预定数量的主机读取请求之中的与连续逻辑地址相对应的至少一个顺序读取请求组,而无论所述顺序读取请求组中包括的顺序读取请求是否被连续接收到,
预测检测到的顺序读取请求组的逻辑地址,并且
控制所述存储器装置准备与预测的逻辑地址相关联的数据块;以及
存储器,缓冲准备好的数据块,
其中所述处理器进一步在从主机接收到对预测数据块的请求时,向所述主机提供经缓冲的数据块。
2.根据权利要求1所述的控制器,其中所述处理器预测与所述连续逻辑地址连续的逻辑地址。
3.根据权利要求1所述的控制器,其中所述至少一个顺序读取请求组是所述主机读取请求之中的读取请求,所述读取请求中的每一个具有相同的数据长度并且连续预定长度或更多。
4.根据权利要求1所述的控制器,其中所述处理器通过以下方式检测至少一个数据流:
检测所述主机读取请求之中的数据长度等于或大于阈值的顺序读取请求组,并且
检测所述主机读取请求之中的与彼此连续的逻辑地址相对应的顺序读取请求组。
5.根据权利要求1所述的控制器,其中所述处理器进一步将流ID分配给检测到的顺序读取请求组。
6.根据权利要求1所述的控制器,
其中所述预测的逻辑地址在所述主机中使用,并且
其中所述处理器控制所述存储器装置通过以下方式准备与所述预测的逻辑地址相关联的数据块:
生成与所述预测的逻辑地址相对应的预测读取请求,
将所述预测读取请求和在所述预测读取请求之前的在前读取请求的逻辑地址转换为与所述存储器装置相关联的物理地址,并且
基于所述物理地址,生成与所述预测读取请求相对应的预测读取命令和与所述在前读取请求相对应的在前读取命令。
7.根据权利要求6所述的控制器,其中当所述物理地址指示同一存储器管芯时,所述处理器生成高速缓存读取命令作为所述预测读取命令和所述在前读取命令。
8.根据权利要求7所述的控制器,其中所述处理器通过以下方式向所述主机提供经缓冲的数据块:
响应于所述预测读取命令,将所述存储器装置的页面缓冲器中准备好的数据块缓冲在所述存储器中,并且
响应于对经缓冲的数据块的请求,向所述主机提供经缓冲的数据块。
9.根据权利要求6所述的控制器,当所述物理地址指示不同的存储器管芯时,所述处理器生成正常读取命令作为所述预测读取命令和所述在前读取命令,并且交错生成的正常读取命令。
10.根据权利要求9所述的控制器,其中所述处理器通过以下方式向所述主机提供经缓冲的数据块:
响应于所述预测读取命令,将准备好的数据块缓冲在所述存储器中,并且
响应于对准备好的数据块的请求,向所述主机提供经缓冲的数据块。
11.一种控制器的操作方法,所述控制器控制存储器装置,所述操作方法包括:
检测预定数量的主机读取请求之中与连续逻辑地址相对应的至少一个顺序读取请求组,而无论所述顺序读取请求组中包括的顺序读取请求是否被连续接收到;
预测检测到的顺序读取请求组的逻辑地址;
控制所述存储器装置准备与预测的逻辑地址相关联的数据块;并且
在从主机接收到对预测数据块的请求时,向所述主机提供准备好的数据块。
12.根据权利要求11所述的操作方法,其中预测检测到的顺序读取请求组的逻辑地址包括预测与所述连续逻辑地址连续的逻辑地址。
13.根据权利要求11所述的操作方法,其中所述至少一个顺序读取请求组是所述主机读取请求之中的读取请求,所述读取请求中的每一个具有相同的数据长度并且连续预定长度或更多。
14.根据权利要求11所述的操作方法,其中检测至少一个数据流包括:
检测所述主机读取请求之中的数据长度等于或大于阈值的顺序读取请求组;并且
检测所述主机读取请求之中的与彼此连续的逻辑地址相对应的顺序读取请求组。
15.根据权利要求11所述的操作方法,进一步包括将流ID分配给检测到的顺序读取请求组。
16.根据权利要求11所述的操作方法,
其中所述预测的逻辑地址在所述主机中使用,并且
其中控制所述存储器装置准备与所述预测的逻辑地址相关联的数据块包括:
生成与所述预测的逻辑地址相对应的预测读取请求;
将所述预测读取请求和在所述预测读取请求之前的在前读取请求的逻辑地址转换为与所述存储器装置相关联的物理地址;并且
基于所述物理地址,生成与所述预测读取请求相对应的预测读取命令和与所述在前读取请求相对应的在前读取命令。
17.根据权利要求16所述的操作方法,其中生成所述预测读取命令和所述在前读取命令包括:当所述物理地址指示同一存储器管芯时,生成高速缓存读取命令作为所述预测读取命令和所述在前读取命令。
18.根据权利要求17所述的操作方法,其中向所述主机提供准备好的数据块包括:
响应于所述预测读取命令,将所述存储器装置的页面缓冲器中准备好的数据块缓冲在所述控制器的存储器中;并且
响应于对经缓冲的数据块的请求,向所述主机提供经缓冲的数据块。
19.根据权利要求16所述的操作方法,其中生成所述预测读取命令和所述在前读取命令包括:
当所述物理地址指示不同的存储器管芯时,生成正常读取命令作为所述预测读取命令和所述在前读取命令;并且
交错生成的正常读取命令。
20.根据权利要求19所述的操作方法,其中向所述主机提供准备好的数据块包括:
响应于所述预测读取命令,将准备好的数据块缓冲在所述控制器的存储器中;并且
响应于对准备好的数据块的请求,向所述主机提供经缓冲的数据块。
CN202110741072.1A 2020-11-18 2021-06-30 控制器及其操作方法 Withdrawn CN114519019A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200154396A KR20220067776A (ko) 2020-11-18 2020-11-18 컨트롤러 및 컨트롤러의 동작방법
KR10-2020-0154396 2020-11-18

Publications (1)

Publication Number Publication Date
CN114519019A true CN114519019A (zh) 2022-05-20

Family

ID=81586628

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110741072.1A Withdrawn CN114519019A (zh) 2020-11-18 2021-06-30 控制器及其操作方法

Country Status (3)

Country Link
US (1) US20220155995A1 (zh)
KR (1) KR20220067776A (zh)
CN (1) CN114519019A (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11797228B2 (en) 2021-06-24 2023-10-24 Western Digital Technologies, Inc. Efficient handling of background operations for improving sustained performance of host reads and writes
US20220413757A1 (en) * 2021-06-24 2022-12-29 Western Digital Technologies, Inc. Write Performance by Relocation During Sequential Reads
US11983442B2 (en) * 2022-06-22 2024-05-14 Western Digital Technologies, Inc. Data storage device and method for multi-level conditional prediction of future random read commands

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160075174A (ko) * 2014-12-19 2016-06-29 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작방법
US11048624B2 (en) * 2017-04-25 2021-06-29 Samsung Electronics Co., Ltd. Methods for multi-stream garbage collection
US10579538B2 (en) * 2018-02-21 2020-03-03 Western Digital Technologies, Inc. Predicting addresses in non-volatile storage
US11188256B2 (en) * 2018-06-19 2021-11-30 Western Digital Technologies, Inc. Enhanced read-ahead capability for storage devices
JP2020047335A (ja) * 2018-09-18 2020-03-26 キオクシア株式会社 不揮発性メモリ及びメモリシステム
US10877896B2 (en) * 2019-03-07 2020-12-29 Micron Technology, Inc. Adaptive readahead cache manager based on detected active streams of read commands
US11023380B2 (en) * 2019-09-10 2021-06-01 Western Digital Technologies, Inc. Non-volatile storage system with filtering of data samples for a monitored operational statistic
JP2021043908A (ja) * 2019-09-13 2021-03-18 キオクシア株式会社 メモリシステムおよび制御方法
US10997080B1 (en) * 2020-02-11 2021-05-04 Western Digital Technologies, Inc. Method and system for address table cache management based on correlation metric of first logical address and second logical address, wherein the correlation metric is incremented and decremented based on receive order of the first logical address and the second logical address

Also Published As

Publication number Publication date
KR20220067776A (ko) 2022-05-25
US20220155995A1 (en) 2022-05-19

Similar Documents

Publication Publication Date Title
CN110069212B (zh) 存储装置及存储装置的操作方法
US11537483B2 (en) Controller for managing superblocks and operation method thereof
US11226895B2 (en) Controller and operation method thereof
CN110275673B (zh) 存储装置及其操作方法
CN110310691B (zh) 存储器系统中的工作负载预测及其方法
KR20190106228A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
US20220155995A1 (en) Controller and operating method thereof
US11537318B2 (en) Memory system and operating method thereof
KR20190083148A (ko) 데이터 저장 장치 및 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템
KR20200059936A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
CN109800178B (zh) 垃圾收集方法以及用于混合地址映射的存储器系统
CN109947670B (zh) 存储器系统及其操作方法
US20190369880A1 (en) Memory system and operating method thereof
KR20220077573A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
US11675537B2 (en) Controller for performing data input/output operation and memory management operation at the same time and operation method thereof
CN111445939A (zh) 存储装置及其操作方法
KR20200055281A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
CN110309075B (zh) 存储器控制器以及具有存储器控制器的存储器系统
CN111240585A (zh) 控制器、包括控制器的存储器系统及其操作方法
CN114968856B (zh) 存储器系统及其操作方法
US20220229595A1 (en) Controller and operation method thereof
KR20200071282A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
US11645008B2 (en) Memory system and operating method thereof for controlling a multi-plane read operation
CN115132252A (zh) 存储装置及其操作方法
KR20240058593A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication

Application publication date: 20220520

WW01 Invention patent application withdrawn after publication