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

控制器及其操作方法 Download PDF

Info

Publication number
CN112825025A
CN112825025A CN202010659365.0A CN202010659365A CN112825025A CN 112825025 A CN112825025 A CN 112825025A CN 202010659365 A CN202010659365 A CN 202010659365A CN 112825025 A CN112825025 A CN 112825025A
Authority
CN
China
Prior art keywords
logical address
data block
data blocks
sequential
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
CN202010659365.0A
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 CN112825025A publication Critical patent/CN112825025A/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/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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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/0653Monitoring storage devices or systems
    • 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
    • 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
    • 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]

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)

Abstract

本发明涉及一种用于控制存储器装置的控制器,该控制器可以包括:顺序检测器,适于在每次处理设定数量的数据块时,基于数据块的长度和数据块的逻辑地址邻近度来确定设定数量的最近处理的数据块是否是顺序数据块;以及处理器,根据确定结果执行顺序操作,直到下次确定。

Description

控制器及其操作方法
相关申请的交叉引用
本申请要求于2019年11月20日提交的申请号为10-2019-0149207的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
各个实施例涉及一种用于控制存储器装置的控制器。
背景技术
计算机环境范例已经转变成使得计算系统几乎能够随时随地使用的普适计算。因此,诸如移动电话、数码相机和膝上型计算机的便携式电子装置的使用已迅速增加。这些便携式电子装置通常使用具有一个或多个存储器装置的存储器系统来存储数据。存储器系统可以用作便携式电子装置的主存储器装置或辅助存储器装置。
由于存储器系统没有移动部件,因此它们提供了诸如优异的稳定性和耐用性、高信息访问速度和低功耗的优点。具有这些优点的存储器系统的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡和固态驱动器(SSD)。
发明内容
各个实施例涉及一种能够有效地区分顺序命令和随机命令的控制器及其操作方法。
在实施例中,一种用于控制存储器装置的控制器包括:顺序检测器,适于在每次处理设定数量的数据块时,基于数据块的长度和数据块的逻辑地址邻近度(logical-address-adjacency)来确定设定数量的最近处理的数据块是否是顺序数据块;以及处理器,适于根据确定结果执行顺序操作,直到下次确定。
在实施例中,一种用于控制存储器装置的控制器的操作方法,操作方法包括:每次处理设定数量的数据块时,基于数据块的长度和数据块的逻辑地址邻近度来确定设定数量的最近处理的数据块是否是顺序数据块;根据确定结果执行顺序操作,直到下次确定。
在实施例中,一种控制器的操作方法,该操作方法包括:控制存储器装置对第一设定数量的数据块执行写入操作,数据块具有彼此相同的长度;检测各个数据块的起始逻辑地址之中的、落入具有最初起始逻辑地址和最小起始逻辑地址的第一范围和第二范围中的至少一个内的邻近起始逻辑地址;当邻近起始逻辑地址的数量大于阈值时,将数据块确定为顺序的;以及控制存储器装置以基于确定对第二设定数量的随后提供的数据块执行顺序操作。
根据实施例,可以提供一种能够有效地区分顺序命令和随机命令的控制器及其操作方法。
附图说明
图1是示出根据本发明的实施例的数据处理系统的示图。
图2是示出根据本发明的实施例的存储器系统的示图。
图3是示出根据本发明的实施例的控制器的操作的流程图。
图4是示出根据本发明的实施例的逻辑地址邻近度的示图。
图5是示出根据本发明的实施例的控制器的操作的流程图。
具体实施方式
在下文中,将参照附图描述本发明的各个实施例。应理解的是,以下描述将关注于理解根据实施例的操作所需的部分,并且将排除对其他部分的描述以免不必要地模糊本公开的主题。
在下文中,将参照附图详细描述示例性实施例。
图1是示出根据本发明的实施例的数据处理系统100的框图。
参照图1,数据处理系统100可以包括可操作地联接到存储器系统110的主机102。
主机102可以包括诸如移动电话、MP3播放器和膝上型计算机的各种便携式电子装置中的任意一种,或者诸如台式计算机、游戏机、电视(TV)和投影仪的各种非便携式电子装置中的任意一种。
主机102可以包括至少一个操作系统(OS),至少一个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)、铁电随机存取存储器(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(RRAM或ReRAM)和闪速存储器的非易失性存储器装置。闪速存储器可以具有3维(3D)堆叠结构。
在存储器系统110中存储的主机102的数据可以被划分为顺序数据和随机数据。顺序数据的示例可以包括构成大文件的连续数据,随机数据的示例可以包括系统数据。主机102可以将连续逻辑地址应用于顺序数据。
当从主机102接收到顺序数据时,存储器系统110可以执行顺序操作以提高该存储器系统110的操作性能。
当从主机102接收到顺序数据时,产生较少的数据碎片。因此,顺序操作可以使存储器系统110比在接收到随机数据时不频繁地执行垃圾收集操作。当不频繁地执行作为后台操作的垃圾收集操作时,可以提高存储器系统110的前台操作性能。
作为顺序操作的示例,当从主机102接收到顺序数据时,存储器系统110可以将顺序数据与随机数据分开地存储在顺序存储器区域中。在实施方式中,存储器系统110可以将单层单元块确定为顺序存储器区域以便提高对顺序数据的存取性能,或将多层单元存储块确定为顺序存储器区域以便使用小的存储器区域存储大量顺序数据。当顺序数据与随机数据分开存储时,存储器系统110可以防止由于随机数据的更新而引起顺序数据的碎片。
主机102可以在将顺序数据存储在存储器系统110中时将顺序数据划分为多个数据块。主机102可以向存储器系统110提供与各个数据块相对应的多个写入命令。
存储器系统110可以确定是否从主机102接收到顺序数据块,并且根据确定结果执行顺序操作。例如,存储器系统110可以确定先前接收的数据块的逻辑地址与在先前接收的数据块之后立即接收的数据块的逻辑地址是否是顺序的。然而,主机102或存储器系统110的操作可能导致构成顺序数据的数据块的顺序改变。由于顺序数据内的数据块的顺序改变,顺序数据可能不是顺序的,因此存储器系统110可能在确定数据块的顺序时错误地识别数据块是非顺序数据。
图1示出以下示例:即使主机102将顺序数据提供至存储器系统110,存储器系统110所接收的数据的逻辑地址也不是顺序的。
在图1的示例中,主机102可以将顺序数据划分为逻辑地址是顺序的五个数据块SEQUENTIAL_DATA_CHUNK,并且生成与五个数据块相对应的第一至第五命令SEQUENTIAL_WRITE_CMD。主机102可以同时将第一至第五命令提供至存储器系统110。
存储器系统110可以将第一至第五命令排队在命令队列CMD_QUEUE中。存储器系统110可以设置并释放与被排队的第一至第五命令中的每一个相对应的队列状态寄存器QSR,因此通知主机102是否可以处理相应命令(例如,是否可以将与写入命令相对应的写入数据写入到存储器装置150中)。通过参考队列状态寄存器QSR,主机102可以首先向存储器系统110提供针对可以被优先处理的命令的数据。被排队在命令队列CMD_QUEUE中的命令可以不一定被根据相应逻辑地址的顺序来处理。根据被排队在命令队列CMD_QUEUE中的命令的优先级或优先次序,顺序数据的数据块可能不会根据相应逻辑地址的顺序被提供至存储器系统110。
图1示出与第一至第五命令相对应的写入数据块按照第一、第四、第二、第三和第五数据块WRITE_DATA_CHUNK的顺序被接收,并且根据数据块被接收的顺序被处理的情况。当基于最近连续处理的数据块的逻辑地址是否是顺序的来确定是否接收到顺序数据块时,存储器系统110可以确定此时接收到随机数据块。例如,首先被处理的第一数据块的逻辑地址与在第一数据块之后被处理的第四数据块的逻辑地址可能不是顺序的。当存储器系统110不能正常地确定是否接收到顺序数据块时,则存储器系统110无法及时执行顺序操作。因此,存储器系统110的性能可能下降。
根据本实施例,即使先前接收的数据块的逻辑地址与在先前接收的数据块之后立即接收的数据块的逻辑地址不是顺序的,存储器系统110也可以确定是否接收到顺序数据块。根据本实施例的存储器系统110可以包括顺序检测器136。顺序检测器136可以基于最近处理的数据块的长度和逻辑地址邻近度来确定设定数量的最近处理的数据块是否是顺序数据块。存储器系统110可以基于顺序检测器136的确定而执行顺序操作,从而提高存储器系统10的性能。
图2是示出根据本发明实施例的存储器系统110的示例的示图。
存储器系统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可以是非易失性存储器装置,并且即使不供应电力也可以保留所存储的数据。存储器装置150可以通过编程操作存储从主机102提供的数据,并且通过读取操作将所存储的数据提供至主机102。存储器装置150可以包括多个存储块,多个存储块中的每个可以包括多个页面,并且页面中的每个可以包括联接到字线的多个存储器单元。在实施例中,存储器装置150可以是闪速存储器。闪速存储器可以具有3维(3D)堆叠结构。
控制器130可以响应于来自主机102的请求来控制存储器装置150。例如,控制器130可以将从存储器装置150读取的数据提供至主机102,并且将从主机102提供的数据存储到存储器装置150中。对于此操作,控制器130可以控制存储器装置150的读取操作、编程操作及擦除操作。
控制器130可以包括经由内部总线可操作地联接的主机接口(I/F)132、处理器134、顺序检测器136、存储器I/F 142和存储器144。
主机I/F 132可以被配置为处理主机102的命令和数据,并且可以通过诸如以下的各种接口协议中的一个或多个与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小磁盘接口(ESDI)和电子集成驱动器(IDE)。主机I/F 132可以通过被称为主机接口层(HIL)的固件来驱动,以便与主机交换数据。
主机接口132可以将从主机102接收的命令排队在命令队列146中。主机接口132可以将多个命令排队在命令队列146中。命令队列146可以包括用于通知主机102被排队命令之中的当前能够处理的命令的队列状态寄存器(未示出)。主机接口132可以使用队列状态寄存器(未示出)来控制被排队命令之中的可以被处理的命令被优先处理。例如,主机102可以通过参考与写入命令相对应的队列状态寄存器,向存储器系统110提供与当前能够处理的写入命令相对应的写入数据。
存储器I/F 142可以用作用于将控制器130和存储器装置150接口连接使得控制器130响应于来自主机102的请求来控制存储器装置150的存储器/存储接口。当存储器装置150是闪速存储器或具体地是NAND闪速存储器时,存储器I/F142可以在处理器134的控制下生成用于存储器装置150的控制信号并且处理待提供至存储器装置150的数据。存储器I/F142可以作为用于处理控制器130和存储器装置150之间的命令和数据的接口(例如,NAND闪存接口)而工作。具体地,存储器I/F 142可以支持控制器130与存储器装置150之间的数据传输。存储器I/F 142可以通过称为闪存接口层(FIL)的固件来驱动以便与存储器装置150交换数据。
存储器144可以用作存储器系统110和控制器130的工作存储器,并且存储用于驱动存储器系统110和控制器130的数据。控制器130可以控制存储器装置150响应于来自主机102的请求而执行读取操作、编程操作及擦除操作。控制器130可以将从存储器装置150读取的数据提供至主机102,可以将从主机102提供的数据存储到存储器装置150中。存储器144可以存储控制器130和存储器装置150执行这些操作所需的数据。
存储器144可以由易失性存储器来实现。例如,存储器144可以由静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)来实现。存储器144可以设置在控制器130内部或外部。图1例示了设置在控制器130内部的存储器144。在实施例中,存储器144可以由具有在存储器144和控制器130之间传送数据的存储器接口的外部易失性存储器来实现。
如上所述,存储器144可以存储在主机和存储器装置150之间执行数据写入/读取操作所需的数据,以及当执行数据写入/读取操作时的数据。为了存储这种数据,存储器144可以包括程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。
存储器144可以存储历史表148,该历史表用于记录关于设定数量的最近处理的数据块的信息,以便确定最近处理的数据块是否是顺序的。例如,顺序检测器136可以响应于主机102的写入命令将信息记录到历史表148中,该信息与最近被编程到存储器装置150的数据块的逻辑地址相关联。
数据块中的每个可以对应于多个逻辑地址。与单个数据块相对应的多个逻辑地址可以从起始逻辑地址开始顺序逻辑地址长度。例如,某一数据块可以对应于从‘0’至‘9’的逻辑地址。与特定数据块相对应的逻辑地址可以从起始逻辑地址‘0’开始顺序逻辑地址长度‘10’。历史表148可以包括最近处理的数据块的起始逻辑地址和逻辑地址长度信息。
处理器134可以控制存储器系统110的全部操作。处理器134可以驱动固件以控制存储器系统110的全部操作。固件可以被称为闪存转换层(FTL)。此外,处理器134可以实现为微处理器或中央处理单元(CPU)。
例如,控制器130可以通过实现为微处理器或CPU的处理器134执行主机102请求的操作。换言之,控制器130可以执行与从主机102接收的命令相对应的命令操作。控制器130可以执行作为与从主机102接收的命令相对应的命令操作的前台操作。例如,控制器130可以执行与写入命令相对应的编程操作、与读取命令相对应的读取操作、与擦除命令相对应的擦除操作、以及与设置参数命令或设置特征命令相对应的参数设置操作。
而且,控制器130可以通过实现为微处理器或CPU的处理器134对存储器装置150执行后台操作。例如,对存储器装置150执行的后台操作可以包括垃圾收集(GC)操作、损耗均衡(WL)操作、映射清除(flush)操作或坏块管理操作。
顺序检测器136可以通过参考历史表148,基于数据块的长度和逻辑地址邻近度来确定设定数量的最近处理的数据块是否是顺序的。在实施方式中,顺序检测器136可以被加载到存储器144中,并且由处理器134驱动,或者被实施为硬件装置。
当顺序检测器136的判断结果指示设置数量的数据块为顺序数据块时,处理器134可以执行顺序操作。顺序操作可以包括前台操作和后台操作。作为后台顺序操作的示例,存储器系统110可以改变垃圾收集操作的执行频率。作为前台顺序操作的示例,存储器系统110可以将在该确定之后并且在下次确定之前被随后处理的数据块存储在顺序存储器区域中。由于最近处理的数据块被确定为顺序数据块,因此很可能随后待被处理的数据块也是顺序数据块。
图3是示出根据本发明的实施例的控制器130的操作的流程图。具体地,图3是根据本发明的实施例的用于描述顺序检测器136确定最近记录的数据块是否是顺序数据块的操作的流程图。
在步骤S302中,顺序检测器136可以将最近处理的数据块的信息记录到历史表148中。数据块中的每个的信息可以包括与该数据块相对应的起始逻辑地址和逻辑地址长度。
在步骤S304中,顺序检测器136可以通过参考记录到历史表148中的逻辑地址长度信息来确定最近处理的数据块的长度是否彼此相等。可以周期性地执行步骤S304。例如,可以在每次处理设置数量的数据块时执行步骤S304。
主机102可以将长度大于设置长度的数据划分为每个具有设定长度的多个数据块,然后将多个数据块提供至存储器系统110。主机102可以将长度小于设置长度的数据作为一个数据块提供至存储器系统110。因此,除了最后的数据块之外,构成顺序数据的所有多个数据块可以具有相同长度。
当设置数量的最近处理的数据块的长度彼此不同(步骤S304中为“否”)时,在步骤S310中,顺序检测器136可以确定最近已处理彼此不是顺序的小数据块,即随机数据块。
当设置数量的最近处理的数据块的长度彼此相等时,很可能已经接收到构成顺序数据的数据块。当设置数量的最近处理的数据块的长度彼此相等(步骤S304中为“是”)时,在步骤S306中,顺序检测器136可以确定设置数量的最近处理的数据块的逻辑地址邻近度是否等于或大于阈值。逻辑地址邻近度可以指示设置数量的最近处理的数据块的逻辑地址的类似值。当最近处理的数据块的长度彼此相等,并且与最近处理的数据块对应的逻辑地址具有类似值时,可以将最近处理的数据块认为是顺序数据块。参照图4和图5,详细描述了用于确定逻辑地址邻近度的方法。
当最近处理的数据块的逻辑地址邻近度等于或大于阈值(步骤S306中为“是”)时,在步骤S308中,顺序检测器136可以确定设置数量的最近处理的数据块是顺序的。当最近处理的数据块是顺序数据块时,很可能随后待被处理的数据块也是顺序数据块。因此,处理器134可以执行顺序操作,直到下次确定。例如,处理器134可以对设置数量的随后提供的数据块执行顺序操作。在处理了设置数量的随后提供的数据块之后,可再次执行步骤S304。顺序操作可以包括已经参照图2描述的前台操作和后台操作中的至少一个。
当最近处理的数据块的逻辑地址邻近度小于阈值(步骤S306中为“否”)时,在步骤S310中,顺序检测器136可以确定最近处理的数据块彼此不是顺序的,即随机数据块。当最近处理的数据块是随机数据块时,很可能随后待被处理的数据块也是随机数据块。因此,处理器134可以执行随机操作,直到下次确定。例如,处理器134可以对设置数量的随后提供的数据块执行随机操作。在处理了设置数量的随后提供的数据块之后,可再次执行步骤S304。
随机操作指示当最近处理的数据块是随机数据块时执行的操作。作为随机操作的示例,处理器134可以比最近处理的数据块是顺序数据块时更频繁地执行垃圾收集操作,从而将碎片化的存储器空间变成更大的存储器空间。作为随机操作的示例,处理器134可以将随机数据存储在与顺序数据分离的随机存储器区域中。
顺序检测器136可以周期性地执行步骤S304至S310,以连续地确定由存储器系统110处理的数据的顺序是否改变,并且根据数据的连续性执行顺序操作或随机操作。
图4是用于描述根据本文的实施例的逻辑地址邻近度的示图。图4示出了主机102将构成顺序数据的第一至第十数据块存储在存储器系统110中的情况。
例如,主机102可以将逻辑地址从“0”顺序至“99”的顺序数据划分为逻辑地址长度为“10”的数据块,并且将数据块提供至存储器系统110。在图4中,主机顺序指示基于第一至第十数据块的逻辑地址的第一至第十数据块的顺序。图4示出了各个数据块的开始逻辑地址和结束逻辑地址。
存储器系统110可能不一定按照第一至第十数据块的逻辑地址的顺序接收第一至第十数据块。图4的存储器顺序例示了存储器系统110从主机102接收数据块的顺序。在图4的示例中,第二数据块是第一次接收的数据块,而第九数据块是最后一次接收的数据块。
顺序检测器136可以将最近处理的数据块的信息记录到历史表148中。图4示出记录了七个最近处理的数据块的起始逻辑地址和逻辑地址长度的历史表148。在图4的示例中,第四、第一、第三、第五、第七、第八和第十数据块是最近处理的数据块,并且关于这些最近处理的数据块的信息被记录到历史表148中。例如,第四数据块的起始逻辑地址‘30’和逻辑地址长度‘10’可以被记录到历史表148中,并且其它数据块的起始逻辑地址和逻辑地址长度可以以相同的格式被记录。
第二数据块可以是在第四数据块之前已经被处理的数据块。与第二数据块相对应的信息虽然之前已经被记录到历史表148中,但是可能已经被移除,因此此刻不存在。第六和第九数据块可以是已经接收但尚未被处理的数据块。
顺序检测器136可以周期性地确定被记录在历史表148中的数据块是否是顺序数据块。在图4的示例中,最近处理的数据块的逻辑地址长度都是‘10’并且彼此相等。因此,顺序检测器136可以确定所记录的数据块的逻辑地址邻近度。
顺序检测器136可以将与“邻近起始逻辑地址”相对应的最近处理的数据块的总长度确定为逻辑地址邻近度。在被记录到历史表148中的起始逻辑地址之中,顺序检测器136可以将邻近起始逻辑地址确定为在被记录到历史表148中的起始逻辑地址之中的、具有在从初始逻辑地址或最小逻辑地址起的设置范围内的值的起始逻辑地址。初始逻辑地址指示在记录的起始逻辑地址之中的已经被初始记录的起始逻辑地址,最小逻辑地址指示在记录的起始逻辑地址之中的具有最小值的起始逻辑地址。
例如,顺序检测器136可以确定在起始逻辑地址之中的、具有与已经被初始记录的起始逻辑地址的差值小于第一最大差值,或者具有与最小值的起始逻辑地址的差值小于第二最大差值的起始逻辑地址是邻近起始逻辑地址。可以预先通过实验确定第一最大差值和第二最大差值。
在图4的示例中,初始逻辑地址是对应于第四数据块的‘30’。第一最大差值是20,因此第一范围可以是10至50。设计者可以改变第一最大差值以及第一范围。属于逻辑地址范围‘10’至‘50’的逻辑地址与初始逻辑地址的差值小于第一最大差值。在图4中,逻辑地址范围“10”至“50”被设置为第一范围。
最小逻辑地址是对应于第一数据块的“0”。第二最大差值是40,因此第二范围可以是0至40。设计者可以改变第二最大差值以及第二范围。属于逻辑地址范围‘0’至‘40’的逻辑地址与最小逻辑地址的差值小于第二最大差值。在图4中,逻辑地址范围“0”至“40”被设置为第二范围。
顺序检测器136可以通过将邻近起始逻辑地址的数量和与邻近起始逻辑地址相对应的最近处理的数据块中的任意一个的长度相乘来确定逻辑地址邻近度。在图4的示例中,第一或第二范围对应于逻辑地址范围“0”至“50”。在图4的示例中,四个起始逻辑地址,例如‘30’、‘0’、‘20’和‘40’,属于第一或第二范围。顺序检测器136可以确定四个起始逻辑地址是邻近起始逻辑地址。具有邻近起始逻辑地址的四个数据块中的每一个具有与逻辑地址长度‘10’相对应的长度。具有邻近起始逻辑地址的记录的逻辑地址的总长度可以是“40”。顺序检测器136可以将逻辑地址邻近度确定为‘40’。
顺序检测器136可以将逻辑地址邻近度与阈值进行比较,并且因此基于该比较来确定最近处理的数据块是否是顺序数据块。在图4的示例中,可以将阈值THRESHOLD_LENGTH设置为‘40’。由于最近处理的数据块的逻辑地址邻近度等于或大于阈值,因此顺序检测器136可以确定最近处理的数据块是顺序数据块。
在图4的示例中,逻辑地址邻近度的阈值是‘40’,并且具有邻近起始逻辑地址的每个最近处理的数据块的长度对应于逻辑地址长度‘10’。因此,当最近处理的数据块之中的、具有邻近起始逻辑地址的数据块的数量等于或大于‘4’时,顺序检测器136可以确定最近处理的数据块是顺序数据块。当具有邻近起始逻辑地址的每个最近处理的数据块的长度对应于逻辑地址长度‘20’并且具有邻近起始逻辑地址的数据块的数量等于或大于‘2’时,顺序检测器136可以确定最近处理的数据块是顺序数据块。
根据本实施例,虽然根据其逻辑地址的顺序没有接收到构成顺序数据的多个数据块,或者没有接收到所有数据块,但是顺序检测器136可以确定数据块是顺序数据块。
图5是示出根据本实施例的控制器130的操作的流程图。具体地,图5是用于详细描述步骤S306的操作的流程图。
在步骤S502中,顺序检测器136可以确定最近处理的数据块的起始逻辑地址中的初始逻辑地址和最小逻辑地址。
在步骤S504中,顺序检测器136可以对在最近处理的起始逻辑地址之中的、与初始逻辑地址的差值小于第一差值的邻近起始逻辑地址的数量、或者与最小逻辑地址的差值小于第二差值的起始逻辑地址的数量进行计数。
在步骤S506中,顺序检测器136可以确定逻辑地址邻近度是否等于或大于阈值,该逻辑地址邻近度是由邻近起始逻辑地址的数量与数据块的长度的乘积来确定。例如,顺序检测器136可以将逻辑地址邻近度确定为邻近起始逻辑地址的数量与数据块中的任意一个的长度的乘积。
当邻近起始逻辑地址的数量与数据块中的任意一个的长度的乘积等于或大于阈值(步骤S506中为“是”)时,顺序检测器136可以确定最近处理的数据块是顺序的,因此该进程可以进行到步骤S308。
当邻近起始逻辑地址的数量与数据块中的任意一个的长度的乘积小于阈值(步骤S506中为“否”)时,顺序检测器136可以确定最近处理的数据块不是顺序的,因此该进程可以进行到步骤S310。
根据本实施例,虽然不一定按顺序接收针对顺序数据的多个数据块,但是存储器系统110可以确定数据块是否是针对顺序数据的数据块。根据确定结果,存储器系统110可以及时执行顺序操作,从而提高存储器系统110的性能。
虽然出于说明的目的已经描述了各个实施例,但是对于本领域技术人员显而易见的是,可以在不脱离所附权利要求中限定的本发明的精神和范围的情况下进行各种变化和修改。

Claims (20)

1.一种用于控制存储器装置的控制器,包括:
顺序检测器,在每次处理设定数量的数据块时,基于所述数据块的长度和所述数据块的逻辑地址邻近度来确定所述设定数量的最近处理的数据块是否是顺序数据块;以及
处理器,根据确定结果执行顺序操作,直到下次确定。
2.根据权利要求1所述的控制器,其中所述顺序检测器进一步根据所述数据块的长度是否彼此相等来确定所述数据块的逻辑地址邻近度,并且
其中所述顺序检测器根据所述逻辑地址邻近度是否等于或大于阈值来确定所述数据块是顺序数据块。
3.根据权利要求2所述的控制器,其中所述顺序检测器基于所述数据块的长度和在所述数据块的起始逻辑地址之中的、具有与初始逻辑地址的差值小于第一差值的起始逻辑地址的数量来确定所述逻辑地址邻近度。
4.根据权利要求2所述的控制器,其中所述顺序检测器基于所述数据块的长度和所述数据块的起始逻辑地址之中的、具有与最小逻辑地址的差值小于第二差值的起始逻辑地址的数量来确定所述逻辑地址邻近度。
5.根据权利要求2所述的控制器,其中所述顺序检测器基于所述数据块的长度和具有与初始逻辑地址的差值小于第一差值或者具有与最小逻辑地址的差值小于第二差值的邻近起始逻辑地址的数量来确定所述逻辑地址邻近度,所述初始逻辑地址和所述最小逻辑地址在所述数据块的起始逻辑地址之中。
6.根据权利要求5所述的控制器,其中所述逻辑地址邻近度是所述数据块中的任意一个的长度与所述邻近起始逻辑地址的数量的乘积。
7.根据权利要求2所述的控制器,其中当所述数据块的长度彼此不相等时,所述顺序检测器确定所述数据块是随机数据块。
8.根据权利要求1所述的控制器,其中所述顺序操作包括控制所述存储器装置将待被随后处理的所述设定数量的数据块编程到顺序存储器区域的操作。
9.根据权利要求1所述的控制器,其中所述顺序操作包括以比在所述数据块不是顺序数据块时更低的频率对所述存储器装置执行垃圾收集操作的操作。
10.根据权利要求1所述的控制器,进一步包括存储所述数据块的长度信息和起始逻辑地址信息的存储器。
11.一种用于控制存储器装置的控制器的操作方法,所述操作方法包括:
每次处理设定数量的数据块时,基于所述数据块的长度和所述数据块的逻辑地址邻近度来确定所述设定数量的最近处理的数据块是否是顺序数据块;以及
根据确定结果执行顺序操作,直到下次确定。
12.根据权利要求11所述的操作方法,
进一步包括根据所述数据块的长度是否彼此相等来确定所述数据块的逻辑地址邻近度,并且
其中所述确定包括根据所述逻辑地址邻近度是否等于或大于阈值来确定所述数据块是顺序数据块。
13.根据权利要求12所述的操作方法,其中基于所述数据块的长度和在所述数据块的起始逻辑地址之中的、具有与初始逻辑地址的差值小于第一差值的起始逻辑地址的数量来确定所述数据块的所述逻辑地址邻近度。
14.根据权利要求12所述的操作方法,其中基于所述数据块的长度和在所述数据块的起始逻辑地址之中的、具有与最小逻辑地址的差值小于第二差值的起始逻辑地址的数量来确定所述数据块的逻辑地址邻近度。
15.根据权利要求12所述的操作方法,其中基于所述数据块的长度和具有与初始逻辑地址的差值小于第一差值或者具有与最小逻辑地址的差值小于第二差值的邻近起始逻辑地址的数量来确定所述数据块的逻辑地址邻近度,所述初始逻辑地址和所述最小逻辑地址在所述数据块的起始逻辑地址之中。
16.根据权利要求15所述的操作方法,其中所述数据块的逻辑地址邻近度是所述数据块中的任意一个的长度与所述邻近起始逻辑地址数量的乘积。
17.根据权利要求12所述的操作方法,其中所述确定进一步包括当所述数据块的长度彼此不相等时确定所述数据块是随机数据块。
18.根据权利要求11所述的操作方法,其中所述顺序操作包括控制所述存储器装置将待被随后处理的所述设定数量的数据块编程到顺序存储器区域的操作。
19.根据权利要求11所述的操作方法,其中根据所述确定结果执行所述顺序操作包括以比在所述数据块不是顺序数据块时更低的频率对所述存储器装置执行垃圾收集操作。
20.一种控制器的操作方法,所述操作方法包括:
控制存储器装置对第一设定数量的数据块执行写入操作,所述数据块具有彼此相同的长度;
检测各个数据块的起始逻辑地址之中的、落入具有最初起始逻辑地址和最小起始逻辑地址的第一范围和第二范围中的至少一个内的邻近起始逻辑地址;
当所述邻近起始逻辑地址的数量大于阈值时,将所述数据块确定为顺序的;以及
控制所述存储器装置以基于所述确定对第二设定数量的随后提供的数据块执行顺序操作。
CN202010659365.0A 2019-11-20 2020-07-09 控制器及其操作方法 Withdrawn CN112825025A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190149207A KR20210061544A (ko) 2019-11-20 2019-11-20 컨트롤러 및 컨트롤러의 동작방법
KR10-2019-0149207 2019-11-20

Publications (1)

Publication Number Publication Date
CN112825025A true CN112825025A (zh) 2021-05-21

Family

ID=75907634

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010659365.0A Withdrawn CN112825025A (zh) 2019-11-20 2020-07-09 控制器及其操作方法

Country Status (3)

Country Link
US (1) US11775209B2 (zh)
KR (1) KR20210061544A (zh)
CN (1) CN112825025A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114442911B (zh) * 2020-11-06 2024-03-08 戴尔产品有限公司 用于固态驱动器的异步输入/输出扫描和聚合的系统和方法
US20220083280A1 (en) * 2021-11-29 2022-03-17 Intel Corporation Method and apparatus to reduce latency for random read workloads in a solid state drive

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8560879B1 (en) * 2009-04-22 2013-10-15 Netapp Inc. Data recovery for failed memory device of memory device array
US9183134B2 (en) * 2010-04-22 2015-11-10 Seagate Technology Llc Data segregation in a storage device
US8909657B2 (en) * 2011-01-14 2014-12-09 Apple Inc. Content based file chunking
KR20130030640A (ko) * 2011-09-19 2013-03-27 삼성전자주식회사 저장 매체에 데이터를 저장하는 방법 및 그것을 포함하는 데이터 저장 장치
US9760281B2 (en) * 2015-03-27 2017-09-12 Intel Corporation Sequential write stream management
US9977623B2 (en) 2015-10-15 2018-05-22 Sandisk Technologies Llc Detection of a sequential command stream
KR20170109108A (ko) * 2016-03-17 2017-09-28 에스케이하이닉스 주식회사 메모리 장치를 포함하는 메모리 시스템 및 그의 동작 방법
US10990311B2 (en) * 2019-06-19 2021-04-27 Western Digital Technologies, Inc. Multi-stream non-volatile storage system

Also Published As

Publication number Publication date
US11775209B2 (en) 2023-10-03
KR20210061544A (ko) 2021-05-28
US20210149597A1 (en) 2021-05-20

Similar Documents

Publication Publication Date Title
CN110858129B (zh) 数据存储装置及其操作方法
CN107179996B (zh) 数据存储装置和其操作方法
KR102704776B1 (ko) 컨트롤러 및 컨트롤러의 동작방법
CN110032333B (zh) 存储器系统及其操作方法
US11449418B2 (en) Controller and method for selecting victim block for wear leveling operation
US20150058534A1 (en) Managing method for cache memory of solid state drive
CN106649144B (zh) 数据储存设备及其操作方法
CN109783008B (zh) 数据存储装置及其操作方法
US10120606B2 (en) Data storage devices including storage controller circuits to select data streams based on application tags and computing systems including the same
CN114371812B (zh) 控制器及其操作方法
CN111831578B (zh) 用于处理存储器系统中的不同类型数据的设备及方法
US20210096761A1 (en) Memory system and operating method thereof
CN112015329A (zh) 存储系统及其操作方法
CN112749101A (zh) 控制器和存储器系统
CN112684976A (zh) 用于执行迁移操作的存储器系统及其操作方法
CN111813328A (zh) 存储器系统及其操作方法
KR20200059936A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
CN112825025A (zh) 控制器及其操作方法
CN110119326B (zh) 数据存储装置及其操作方法
CN115080457A (zh) 控制器及其操作方法
CN113093987A (zh) 控制存储器装置的控制器及其操作方法
US20110087828A1 (en) Method for enhancing performance of accessing a flash memory, and associated memory device and controller thereof
US20220012180A1 (en) Memory system for meta data management and operating method of memory system
US11449321B2 (en) Controller and method for installing and executing bridge firmware data
US20210132848A1 (en) Memory system and controller

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: 20210521

WW01 Invention patent application withdrawn after publication