CN111198653B - 存储装置 - Google Patents

存储装置 Download PDF

Info

Publication number
CN111198653B
CN111198653B CN201911028895.9A CN201911028895A CN111198653B CN 111198653 B CN111198653 B CN 111198653B CN 201911028895 A CN201911028895 A CN 201911028895A CN 111198653 B CN111198653 B CN 111198653B
Authority
CN
China
Prior art keywords
memory
data
write
write operation
controller
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.)
Active
Application number
CN201911028895.9A
Other languages
English (en)
Other versions
CN111198653A (zh
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN111198653A publication Critical patent/CN111198653A/zh
Application granted granted Critical
Publication of CN111198653B publication Critical patent/CN111198653B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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
    • 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
    • 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/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/0613Improving I/O performance in relation to throughput
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • 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
    • 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/0683Plurality of storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

公开了一种存储装置。所述存储装置包括存储器和控制器。控制器控制存储器,使得:当对存储器执行第一写入操作时,响应于对存储器的第一读取操作的请求,暂停第一写入操作,并执行第一读取操作;在第一读取操作完成之后,恢复暂停的第一写入操作;在恢复的第一写入操作完成之后,对存储器执行第一写入操作之后的第二写入操作。控制器基于第一写入操作被暂停的频率,限制用于第二写入操作或用于第一读取操作之后的第二读取操作的通信到存储器装置的数据的量。

Description

存储装置
本申请要求于2018年11月16日提交到韩国知识产权局的第10-2018-0141528号韩国专利申请的优先权,所述韩国专利申请的公开通过引用整体包含于此。
技术领域
发明构思的示例实施例涉及一种能够存储和输出数据的存储装置。
背景技术
电子系统的存储装置被配置为存储由另一电子系统请求的数据。存储装置输出存储的数据以向用户或另一电子设备提供存储服务。存储装置管理存储的数据以执行各种内部管理操作以提高数据可靠性、安全级别、操作效率等。
在存储装置快速处理并输出大量数据有利于提高服务质量和用户满意度。因此,需要用于以高性能处理由用户或另一电子系统请求的数据的技术。
发明内容
发明构思的示例实施例提供一种快速响应对高优先级的存储器操作(例如,用于输出存储在存储装置中的数据的读取操作)的请求的存储装置和方法。示例实施例使得存储装置能够根据操作的暂停频率来限制或调整通信的数据的量。
根据示例实施例,存储装置可包括:存储器和控制器。
根据示例实施例,控制器可控制存储器,使得:当对存储器执行第一写入操作时,响应于对存储器的第一读取操作的请求,暂停第一写入操作,并执行第一读取操作;在第一读取操作完成之后,恢复暂停的第一写入操作;并且在恢复的第一写入操作完成之后,对存储器执行第一写入操作之后的第二写入操作。控制器可基于第一写入操作被暂停的频率,限制用于第二写入操作或用于第一读取操作之后的第二读取操作的通信到存储器的数据的量。
根据示例实施例,控制器可在第一时间段期间与存储器通信第一数据,并在第一时间段之后的第二时间段期间与存储器通信第二数据。控制器可基于第一数据与存储器的通信被暂停的频率来调整每单位时间与存储器通信的第二数据的量。
根据示例实施例,控制器可控制存储器,使得:当对存储器执行第一操作时,响应于接收到对存储器的第二操作的请求,暂停第一操作,并且比第一操作更早地完成第二操作。控制器可基于第一操作之中的在先的第一操作中的每个被暂停的频率,来调整与存储器通信数据的方式,以执行第一操作之中的在先的第一操作中的各个第一操作之后的随后的第一操作。当控制器调整与存储器装置通信数据的方式时,第一操作的暂停可被分布在全部的第一操作的时间段内。
根据示例实施例,控制器可控制存储器,使得:在对存储器执行第一操作时,当请求对存储器的第二操作时,暂停第一操作并且比第一操作更早地完成第二操作。控制器可监测第一操作被暂停的频率。控制器可控制存储器,使得:基于监测的频率,用于第一操作之后的第三操作的数据与存储器通信基于监测的频率确定的数据量或带宽那么多。控制器可控制存储器,使得:在数据与存储器装置的通信完成之后在第三操作之后的第四操作之前的时间间隔中,对存储器执行第五操作,而不暂停与第三操作和第四操作对应的操作。
根据示例实施例,存储装置可针对具有更高优先级的操作提供快速响应。因此,存储装置的服务质量可被提高。
附图说明
通过参照附图详细描述发明构思的示例实施例,发明构思的以上和其他方面将变得清楚。
图1是示出根据一些示例实施例的包括存储装置的电子系统的示例配置的框图。
图2是示出与图1的存储装置相关联的示例配置的框图。
图3是示出与图2的控制器相关联的示例配置的框图。
图4和图5是用于描述图3的控制器的示例操作的时序图。
图6是用于描述与图5的操作相关联的特性的曲线图。
图7和图8是描述根据一些示例实施例的图3的控制器的示例操作的流程图。
图9和图10是用于描述根据一些示例实施例的图3的控制器的示例操作的时序图。
图11是用于描述根据一些示例实施例的图3的控制器的示例操作的表。
图12至图15是用于描述根据一些示例实施例的图3的控制器的示例操作的时序图。
图16是用于描述与图3的暂停(suspension)监测器相关联的示例配置和示例操作的概念示图。
图17是用于描述与图7至图16的操作相关联的特性的曲线图。
具体实施方式
下面描述的实施例都是示例性的,因此,发明构思不限于下面公开的这些实施例,并且可以以各种其他形式实现。下面,参照附图详细描述一些实施例,使得本领域技术人员能够容易地实现发明构思。
图1是示出根据一些实施例的包括存储装置的电子系统的示例配置的框图。
参照图1,电子系统1000可包括主处理器1101、工作存储器1200、存储装置1300、通信块1400、用户接口1500和总线1900。例如,电子系统1000可以是诸如台式计算机、膝上型计算机、平板计算机、智能电话、可穿戴装置、视频游戏控制台、工作站、服务器、电动车辆、家用电器、医疗装置等的电子装置中的一个。
主处理器1101可控制电子系统1000的整体操作。主处理器1101可包括被配置为处理各种算术/逻辑运算的一个或多个处理器核。主处理器1101可以以通用处理器、专用处理器或应用处理器来实现。
工作存储器1200可存储用于电子系统1000的操作的数据。例如,工作存储器1200可包括易失性存储器(诸如,静态随机存取存储器(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)等)和/或非易失性存储器(诸如,相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)等)。
不管是否被供电,存储装置1300都可存储数据。例如,存储装置1300可包括非易失性存储器(诸如,闪存、PRAM、MRAM、ReRAM、FRAM等)。例如,存储装置1300可以是存储介质(诸如,固态驱动器(SSD)、卡式存储装置、嵌入式存储装置等)。
通信块1400可按照各种有线/无线通信协议中的至少一种与电子系统1000的外部装置/系统进行通信。用户接口1500可包括各种输入/输出接口,以对用户与电子系统1000之间的通信进行仲裁。
总线1900可提供电子系统1000的组件之间的通信路径。电子系统1000的组件可按照总线1900的总线格式彼此交换数据。例如,总线格式可包括各种接口协议(诸如,通用串行总线(USB)、小型计算机系统接口(SCSI)、外围组件互连快速(PCIe)、移动PCIe(M-PCIe)、高级技术附件(ATA)、并行ATA(PATA)、串行ATA(SATA)、串行连接SCSI(SAS)、非易失性存储快速(NVMe)、通用闪存(UFS)、火线等)中的一种或多种。
存储装置1300可根据操作的暂停频率来限制(throttle)或调整与另一组件交换的数据的量,以提供针对高优先级的操作(例如,用于输出存储在存储装置1300中的数据的读取操作)的快速响应。将参照图2至图17描述存储装置1300的示例配置和操作。
可在包括存储器元件的任何类型的系统或装置中采用存储装置1300。例如,存储装置1300可用于被实现为工作存储器1200的易失性存储器和/或非易失性存储器。
图2是示出与图1的存储装置1300相关联的示例配置的框图。
如参照图1所述,主处理器1101可通过总线1900与存储装置1300进行通信。在本公开中,能够访问存储装置1300的对象可被称为“主机”(例如,主机1100)。主处理器1101可以是能够作为主机1100进行操作的对象的示例,但是实施例不限于此。
主机1100可与存储装置1300交换数据。存储装置1300可响应于从主机1100接收的命令向主机1100提供存储服务。
例如,主机1100可向存储装置1300提供包括写入请求的命令WCMD和包括写入数据WDAT的数据。存储装置1300可响应于写入请求而执行写入操作,因此可存储请求的写入数据WDAT。例如,主机1100可向存储装置1300提供包括读取请求的命令RCMD。存储装置1300可响应于读取请求而执行读取操作,因此可将请求的读取数据RDAT输出到主机1100。
存储装置1300可包括一个或多个存储器装置1310以及控制器1330。图2示出三个存储器装置1311、1312和1319,但是包括在存储装置1300中的存储器装置的数量可被不同地改变或修改。
存储器装置1311、1312和1319中的每个可存储或输出由主机1100请求的数据。为此,存储器装置1311、1312和1319中的每个可包括用于存储数据的一个或多个存储器区域。例如,存储器装置1311、1312和1319中的每个可包括NAND型闪存,并且可按照V-NAND方案或Z-NAND方案来实现。然而,如参照图1所述,存储器装置1311、1312和1319中的每个的类型和配置可被不同地改变或修改。
可基于被称为“地址”的值来识别存储器区域。写入数据WDAT可被存储在由地址指示的存储器区域中,读取数据RDAT可从由地址指示的存储器区域输出。主机1100可向存储装置1300提供地址信息,以针对存储器装置1311、1312和1319的特定存储器区域通信数据。
控制器1330可控制存储装置1300的整体操作。例如,控制器1330可控制存储器装置1311、1312和1319,使得由主机1100请求的写入数据WDAT被存储在存储器装置1311、1312和1319中,或者由主机1100请求的读取数据RDAT从存储器装置1311、1312和1319被输出。例如,控制器1330可控制存储器装置1311、1312和1319,使得存储在存储器装置1311、1312和1319中的数据响应于主机1100的请求而迁移或被删除。
例如,控制器1330可执行各种内部管理操作(例如,垃圾收集、读取回收、加密等)以管理存储在存储器装置1311、1312和1319中的数据(例如,以提高数据可靠性、安全级别、操作效率等)。
当各种操作(例如,读取操作、写入操作、迁移操作、删除操作、内部管理操作等)被执行时,控制器1330可与存储器装置1310通信数据(例如,可将数据发送到存储器装置1310和/或可从存储器装置1310接收数据)。
控制器1330可包括被配置为执行上面描述的和下面将描述的操作的一个或多个硬件组件(例如,模拟电路、逻辑电路等)。此外,控制器1330可包括一个或多个处理器核。上面描述的和下面将描述的控制器1330的操作可以以软件和/或固件的程序代码来实现,并且控制器1330的一个或多个处理器核可执行程序代码的指令集。控制器1330的一个或多个处理器核可处理各种算术运算和/或逻辑运算以执行该指令集。
图3是示出与图2的控制器1330相关联的示例配置的框图。
在一些实施例中,控制器1330可包括命令队列1331、写入处理器1332、读取处理器1333、写入缓冲器1335、读取缓冲器1336和暂停监测器1338。然而,提供图3的控制器1330的配置以便于更好的理解,并且不意在限制发明构思。控制器1330可不包括图3中示出的组件中的一个或多个,或者还可包括图3中未示出的组件。
控制器1330可调度从主机1100提供的命令WCMD和RCMD的处理顺序。控制器1330可根据调度的处理顺序在命令队列1331中对命令WCMD和RCMD进行排队。根据调度的处理顺序,命令WCMD可由写入处理器1332处理,命令RCMD可由读取处理器1333处理。
写入缓冲器1335可存储或缓冲从主机1100提供的写入数据WDAT。写入处理器1332可控制写入操作,使得由命令WCMD指示的写入数据WDAT从写入缓冲器1335发送到存储器装置1310。因此,控制器1330可处理命令WCMD和写入数据WDAT,写入操作可对存储器装置1311、1312和1319执行。
例如,当存储器装置1311、1312和1319中的每个包括闪存时,可以以编程单元大小(例如,页大小)执行写入操作。例如,当写入数据WDAT的大小小于编程单元大小时,写入缓冲器1335可对写入数据WDAT进行缓冲,直到累积具有编程单元大小的单元数据为止。在累积具有编程单元大小的单元数据之后,可将包括写入数据WDAT的单元数据发送到存储器装置1310,因此,可将该单元数据存储在存储器装置1311、1312和1319中。
读取处理器1333可控制读取操作,使得由命令RCMD指示的读取数据RDAT被输出到主机1100。在一些情况下,读取数据RDAT可被缓冲在写入缓冲器1335中(高速缓存命中)。在这种情况下,在读取处理器1333的控制下,读取数据RDAT可直接从写入缓冲器1335提供给主机1100或通过读取缓冲器1336提供给主机1100。
在一些情况下,读取数据RDAT可被存储在存储器装置1311、1312和1319中。在这种情况下,在读取处理器1333的控制下,读取缓冲器1336可存储或缓冲从存储器装置1310接收的读取数据RDAT,并且可将读取数据RDAT提供给主机1100。因此,读取操作可对存储器装置1311、1312和1319执行,并且控制器1330可处理命令RCMD和读取数据RDAT。
在一些实施例中,写入处理器1332和读取处理器1333的操作可以以控制器1330的处理器核可执行的程序代码来实现,命令队列1331可被实现在处理器内的高速缓存中或者处理器外的缓冲器中。在一些示例实施例中,写入处理器1332和读取处理器1333可以以被配置为执行本公开中描述的操作的硬件电路来实现,命令队列1331可被实现在写入处理器1332和读取处理器1333可访问的存储器中。
在一些实施例中,控制器1330可包括用于存储用于控制器1330的操作的各种数据的缓冲存储器。写入缓冲器1335和读取缓冲器1336可以以控制器1330的缓冲存储器来实现,或者可以以独立于控制器1330的操作的单独的存储器来实现。
同时,可根据条件暂停和恢复在控制器1330的控制下对存储器装置1311、1312和1319执行的操作,这将在下面进行描述。暂停监测器1338可监测操作被暂停的频率(即,操作暂停的频率)。监测的频率可指示操作的暂停是频繁的还是稀少的。
可参照监测的频率来调整在控制器1330与存储器装置1310之间通信数据的方式。例如,写入处理器1332和/或读取处理器1333可参照由暂停监测器1338监测的操作暂停的频率,来限制发送到存储器装置1310和/或从存储器装置1310发送的数据的量。下面将描述详细的实施例。
暂停监测器1338可参照命令传输和/或数据流来监测操作被暂停的频率。例如,写入处理器1332和/或读取处理器1333可生成用于暂停操作的暂停命令,暂停监测器1338可基于暂停命令被生成来监测操作被暂停的频率。
可选地,例如,暂停监测器1338可监测写入缓冲器1335(和/或读取缓冲器1336)与存储器装置1310之间的数据流。暂停监测器1338可基于数据流被暂停来监测操作被暂停的频率。此外,可对暂停监测器1338进行各种改变或修改以监测操作被暂停的频率。
例如,暂停监测器1338监测的频率可与操作被暂停的计数或次数相关联。可理解的是,当计数增加时,暂停被确定为是频繁的,当计数减小时,暂停被确定为是稀少的。
可选地,例如,暂停监测器1338监测的频率可与操作被暂停的时间点之间的时间间隔相关联。可理解的是,当时间间隔变短时暂停被确定为是频繁的,当时间间隔变长时暂停被确定为是稀少的。在一些情况下,可测量计数和时间间隔二者。此外,可与前述方法不同地测量操作被暂停的频率,而不限于此。
在一些实施例中,暂停监测器1338可以以被配置为测量操作被暂停的频率的硬件电路(例如,计数器电路、定时器电路、信号传感器等)来实现。可选地,暂停监测器1338可以以软件模块(诸如,控制器1330的处理器核可执行的程序代码)来实现。暂停监测器1338的硬件电路和/或软件模块可进行操作以测量与频率相关联的值(例如,计数、时间间隔等)。
图4是用于描述图3的控制器1330的示例操作的时序图。例如,图4示出在控制器1330的控制下对存储器装置1311、1312和1319执行的写入操作和读取操作。
在时间点t1,在控制器1330的写入处理器1332的控制下,写入缓冲器1335的数据可开始被发送到存储器装置1310。因此,可对存储器装置1311、1312和1319执行用于存储写入数据的写入操作。从控制器1330发送到存储器装置1310的数据可包括数据D1至D16。
数据D1至D16中的每个可具有从控制器1330输出的输出单元大小以用于写入操作。可选地,数据D1至D16中的每个可具有在存储器装置1311、1312和1319执行的编程操作的编程单元大小。在这方面,数据D1至D16中的每个可被理解为单元数据。
用于写入操作的数据可包括一个或多个单元数据。在一些情况下,控制器1330可将多个单元数据连续地发送到存储器装置1310以提高写入操作的性能。在图4的示例中,控制器1330可将数据D1至D11连续地发送到存储器装置1310。之后,用于写入操作的数据D12可开始从控制器1330发送到存储器装置1310。
当在时间点t2发送数据D12时,可请求处理用于读取操作的命令RCMD。当在时间点t3请求读取操作时,控制器1330可暂停发送数据D12的写入操作。此外,在控制器1330的读取处理器1333的控制下,可执行读取操作,使得在时间点t3由命令RCMD指示的读取数据从存储器装置1310输出。
例如,主机1100可能必须在短时间内使用读取数据。因此,对命令RCMD的读取请求的快速响应可有利于提高对主机1100的存储服务的质量。另一方面,用于写入操作的数据D12至D16可被缓冲在写入缓冲器1335中而不会丢失,因此在短时间段内对写入操作进行延迟可以是可接受的。
在这方面,控制器1330可暂时暂停写入操作,并且可执行读取操作以提供快速读取响应。暂停监测器1338可监测到写入操作在时间点t3被暂停。例如,暂停监测器1338可增加暂停计数和/或可测量发生前一暂停的时间点与时间点t3之间的时间间隔,因此可监测写入操作被暂停的频率。
在时间点t4,读取操作可完成。在读取操作完成之后,暂停的写入操作可被恢复。数据D12已被部分地发送到存储器装置1310,但是部分编程操作会降低数据D12的可靠性。因此,在写入处理器1332的控制下,数据D12的整个部分可被发送到存储器装置1310以进行写入操作。之后,数据D13至D16可被发送到存储器装置1310。
已经参照图4描述了写入操作和读取操作,但是实施例不限于此。读取操作可被具有相对较高的优先级或者需要在短时间段内处理的另外的操作(例如,搜索操作、安全操作等)替换,写入操作可被具有相对较低的优先级或者可接受稍后处理的另外的操作(例如,内部管理操作、删除操作等)替换。
然而,将针对写入操作和读取操作提供以下描述以便于更好的理解。可容易地理解的是,可针对其他操作对实施例进行各种改变或修改,而不限于以下描述。
图5是用于描述图3的控制器1330的示例操作的时序图。
当对存储器装置1310执行写入操作时,可在时间点t11请求对存储器装置1310的读取操作。在这种情况下,可在时间点t12暂停写入操作,使得读取操作比写入操作更早完成。在读取操作完成之后,可恢复写入操作。
例如,当写入操作在时间点t12被暂停时,控制器1330可将暂停计数增加一(1)。例如,暂停监测器1338可测量暂停计数,使得暂停计数响应于写入操作的暂停而增加一。
响应于在时间点t13、t15和t18的读取请求,写入操作可在时间点t14、t16和t19被暂停,因此可更早地完成读取操作。例如,每当写入操作被暂停时,暂停计数可增加一。在时间t19,暂停计数可达到在暂停监测器1338或控制器1330的任何组件中设置的最大暂停计数TH。
暂停写入操作并且比写入操作更早地完成读取操作可有利于提供快速读取响应。然而,当频繁地重复对存储器装置1311、1312和1319的编程操作的暂停和恢复时,存储在存储器装置1311、1312和1319中的数据的可靠性可能降低,并且存储器装置1311、1312和1319的存储器元件的劣化会变得严重。
在一些实施方式中,控制器1330或暂停监测器1338可设置暂停可允许的最大暂停计数TH。当暂停计数达到最大暂停计数TH时,在时间点t19之后写入操作的暂停不可被允许,以防止数据的可靠性降低并防止存储器元件劣化。
当执行恢复的写入操作时,在时间点t21,可请求读取操作。然而,由于暂停计数达到最大暂停计数TH,所以写入处理器1332可继续处理写入操作而没有暂停。同时,可不执行读取操作并且可保持读取操作。在写入操作在时间点t22完成之后,保持的读取操作可在时间点t23开始。当写入操作在时间点t22完成时,暂停计数可被重置。
可针对一个写入操作来管理暂停计数。当用于一个写入操作的一系列数据被发送到存储器装置1310时,暂停计数可增加。当该一系列数据被完全发送到存储器装置1310时,暂停计数可被重置。在此,重置可表示暂停计数被恢复或初始化为在写入操作开始之前的状态或值。
当使用最大暂停计数TH时,可防止频繁地重复编程操作的暂停和恢复。然而,在暂停计数达到最大暂停计数TH之后请求的读取操作可保持长的时间(例如,在时间段TD1期间)。由于对读取请求的响应被延迟,因此服务质量可能降低。
此外,因为由于暂停的写入操作导致写入操作的完成被延迟,因此稍后的读取响应被延迟的概率可能进一步增大。写入操作的延迟会导致读取操作的延迟。结果,当暂停计数增加时,读取响应所需的时间也会增大。
图6是用于描述与图5的操作相关联的特性的曲线图。
根据参照图5描述的操作,在图6中,可在时间点t31之前集中发生写入操作的暂停。写入操作的暂停计数可在时间点t31达到最大暂停计数TH。之后,当写入操作完成时,暂停计数可在时间点t32被重置。暂停计数保持在最大暂停计数TH的时间段TD2会影响读取请求的响应时间(例如,会增大读取响应所需的时间长度)。
例如,参照曲线G11,在时间点t31之前的响应时间可需要时间长度TR1,而对在时间点t31请求的读取操作的响应可能需要大于时间长度TR1的时间长度TR2。在最坏的情况下,在时间点t31请求的读取操作可被延迟时间段TD2那么多。
例如,参照曲线G12,当在时间点t33请求附加读取操作时,可进一步保持附加读取操作,直到在时间点t31请求的读取操作完成为止。因此,对附加读取操作的响应可能需要大于时间长度TR2的时间长度TR3。在最坏的情况下,在时间点t33请求的附加读取操作可被延迟时间段TD3那么多。
这样,意在提供快速读取响应的写入暂停可使得稍后的读取响应延迟和推迟。因此,发明构思的实施例提供一种控制器,所述控制器可基于低优先级的操作(例如,写入操作)的暂停频率来限制或调整数据的量,以提供针对高优先级的操作(例如,读取操作)的快速响应。
图7是描述根据一些实施例的图3的控制器1330的示例操作的流程图。图7描述根据一些实施例的整体操作流程。
在控制器1330(例如,写入处理器1332)的控制下,可对存储器装置1310执行第一操作(例如,写入操作)(S110)。控制器1330可针对写入操作与存储器装置1310通信数据,并且可控制存储器装置1310使得对存储器装置1310执行写入操作。
控制器1330可确定是否需要写入操作的暂停(S120)。当不需要写入操作的暂停(S120中的“否”)时,可继续执行写入操作。然而,在执行写入操作的同时,当请求对存储器装置1310的第二操作并且第二操作的优先级高于写入操作的优先级时,控制器1330可确定需要写入操作的暂停(S120中的“是”)。
在这种情况下,控制器1330可暂停写入操作,并且用于写入操作的控制器1330与存储器装置1310之间的数据的通信可被暂停。暂停监测器1338可基于写入操作的暂停来监测写入操作被暂停的频率(S130)。
此外,可在控制器1330(例如,读取处理器1333)的控制下对存储器装置1310执行第二操作(例如,读取操作)(S130)。控制器1330可控制存储器装置1310,使得读取操作比暂停的写入操作更早完成。
当读取操作未完成(S140中的“否”)时,可继续执行读取操作。在执行读取操作的同时,控制器1330可针对读取操作与存储器装置1310通信数据。在读取操作完成(S140中的“是”)之后,可恢复暂停的写入操作(S150)。
当写入操作未完成(S160中的“否”)时,可继续执行写入操作,并且可确定是否再次需要写入操作的暂停(S120)。当用于写入操作的数据与存储器装置1310完全通信时,写入操作可完成(S160中的“是”)。
控制器1330可基于由暂停监测器1338监测的频率,来确定是否需要限制在随后的第一操作(例如,在S110的写入操作之后的随后的写入操作)中将在控制器1330与存储器装置1310之间通信的数据的量(S170)。可提供限制以调整数据的量,使得在包括S110的写入操作和随后的写入操作的所有写入操作期间暂停频率不急剧提高,这将在下面进行描述。
当需要限制(S170中的“是”)时,控制器1330(例如,写入处理器1332)可基于S110的写入操作被暂停的频率,来调整与存储器装置1310通信将通过随后的写入操作被处理的数据的方式(S180)。下面将描述调整通信方式。当不需要限制(S170中的“否”)时,通信方式可不改变。
例如,当包括S110的写入操作和随后的写入操作的所有写入操作完成时,可重置由暂停监测器1338针对写入操作监测的暂停信息(例如,暂停计数)(S180)。然而,在所有写入操作完成之前,不会重置监测的暂停信息。
图8是描述根据一些实施例的图3的控制器1330的示例操作的流程图。图8描述一些实施例中的随时间的操作。
在控制器1330(例如,写入处理器1332)的控制下,可在第一监测时间段中执行第一操作(例如,写入操作)(S210)。当执行写入操作时,控制器1330可在第一监测时间段期间与存储器装置1310通信数据。
如上所述,当在执行写入操作的同时请求高优先级的第二操作(例如,读取操作)时,可暂时暂停写入操作,然后可稍后恢复写入操作。暂停监测器1338可监测在第一监测时间段中写入操作被暂停的频率(例如,控制器1330与存储器装置1310之间的写入数据的通信被暂停的频率)(S220)。
控制器1330可参照监测的频率确定写入操作是被频繁地暂停还是很少被暂停(S230)。稍后将描述确定暂停是频繁的还是稀少的。
在控制器1330(例如,写入处理器1332)的控制下S210的写入操作重复暂停和恢复然后完成之后,可在第一监测时间段之后的第二监测时间段中,对存储器装置1310执行随后的第一操作(例如,S210的写入操作之后的随后的写入操作)(S260)。
然而,在第二监测时间段开始之前,控制器1330可基于在操作S230的确定结果,来调整在第二监测时间段中执行随后的写入操作的方式(S240和S250)。例如,控制器1330的写入处理器1332可基于S210的在先的写入操作被暂停的频率,来调整针对随后的写入操作每单位时间与存储器装置1310通信的数据的量。
在图8的示例中,控制器1330的写入处理器1332可调整随后的写入操作的带宽,以调整在随后的写入操作中在控制器1330与存储器装置1310之间通信的数据(例如,写入数据)的量。在此,带宽可表示每单位时间通信的数据的量或每单位时间发送数据的速度。
例如,当在操作S230确定S210的在先的写入操作频繁地被暂停时,控制器1330可减小随后的写入操作的带宽(S240)。在这种情况下,在随后的写入操作中通信的数据的量可减少,并且随后的写入操作被暂停的频率可降低。
另一方面,当在操作S230确定S210的在先的写入操作很少被暂停时,控制器1330可增大随后的写入操作的带宽(S250)。因此,在随后的写入操作中通信的数据的量可增大,并且随后的写入操作的性能可被提高。在这种情况下,随后的写入操作被暂停的频率可能稍微提高。然而,在第一监测时间段中S210的在先的写入操作可很少被暂停,因此随后的写入操作的暂停频率稍微提高可以是可接受的。
之后,可基于调整的带宽执行第二监测时间段的随后的写入操作(S260)。当执行随后的写入操作时,控制器1330可在第二监测时间段期间与存储器装置1310通信数据。
以这种方式,在连续执行第一操作(例如,写入操作)的同时,当有时请求高优先级的第二操作(例如,读取操作)时,控制器1330可控制存储器装置1310,使得第一操作被暂停和恢复,以比第一操作更早地执行和完成第二操作。因此,用于第二操作的数据可比用于第一操作的数据被更早地处理。
在此,当连续执行第一操作(例如,写入操作)时,可在控制器1330(例如,写入处理器1332)的控制下基于在先的第一操作(例如,S210的在先的写入操作)被暂停的频率,来调整用于随后的第一操作(例如,S260的随后的写入操作)的通信方式。
例如,当在先的第一操作被暂停的频率提高时,可调整在随后的第一操作中在控制器1330与存储器装置1310之间通信数据的方式,以减少每单位时间通信的数据的量。另一方面,当在先的第一操作被暂停的频率降低时,可调整在随后的第一操作中在控制器1330与存储器装置1310之间通信数据的方式,以增大每单位时间通信的数据的量。
控制器1330可参照由暂停监测器1338监测的频率来调整数据的量或带宽,使得用于随后的第一操作的数据与存储器装置1310通信基于监测的频率确定的量或带宽那么多。这样,限制数据的量或带宽可防止在包括在先的第一操作和随后的第一操作的所有第一操作中的较早时间段期间集中发生第一操作的暂停。
图9和图10是用于描述根据一些实施例的图3的控制器1330的示例操作的时序图。
一个写入操作可被划分为多个写入操作。用于划分的写入操作中的每个的数据可包括一个或多个单元数据。在图9和图10的示例中,划分的写入操作可与数据D1至D8相关联,并且用于下一划分的写入操作的数据可包括数据D9至D12。另外的划分的写入操作可被执行以存储数据D13至D18。这里,一个划分的写入(读取)操作可以是将通过上面参照图2描述的一个写入(读取)命令WCMD(RCMD)执行或运行的操作。
控制器1330可单独和独立地调度划分的写入操作并处理划分的写入操作。然而,控制器1330可将划分的写入操作视为一个原始写入操作,并且可针对划分的写入操作来监测暂停频率。在所有划分的写入操作完成之后,暂停频率可被重置。
可理解,划分的写入操作包括在先的写入操作和在先的写入操作中的相应写入操作之后的随后的写入操作。在图9和图10的示例中,针对数据D1至D8的写入操作可以是在先的写入操作,并且针对数据D9至D12的写入操作可以是在先的写入操作之后的随后的写入操作。
另一方面,当针对数据D9至D12的写入操作是在先的写入操作时,针对数据D13至D18的写入操作可以是针对数据D9至D12的写入操作之后的随后的写入操作。在先的写入操作和随后的写入操作可与划分的写入操作之间的相对顺序相关联。
参照图9,在一些实施例中,暂停监测器1338可监测写入操作被暂停的计数。例如,暂停监测器1338已测量到在时间点t41之前的划分的写入操作已经被暂停六(6)次。
针对数据D1至D8的写入操作可在时间点t41开始,并且可在时间点t42完成。同时,在时间点t41和t42之间,有时可请求读取操作,并且可重复暂停并恢复写入操作。例如,暂停监测器1338可在写入操作被执行的时间点t41和t43之间的监测时间段TP1a期间测量到写入操作被暂停十二(12)次。
写入处理器1332可基于测量到的暂停计数来调整与存储器装置1310通信数据的方式,以执行针对数据D9至D12的写入操作。例如,写入处理器1332可基于在时间点t41之前测量到的暂停计数与在时间点t41和t43之间测量到的暂停计数之间的关系,来调整通信方式。
在一些实施例中,调整通信方式可包括调整将在控制器1330与存储器装置1310之间通信的数据的量。例如,写入处理器1332可调整用于每个划分的写入操作的单元数据的数量,以限制将在每个划分的写入操作中通信的数据的量。
在图9的示例中,针对数据D1至D8的写入操作的暂停计数(例如,12次)可大于在时间点t41之前的写入操作的暂停计数(例如,6次)(暂停计数从6增加到12)。这可表示针对数据D1至D8的写入操作被暂停的频率比在时间点t41之前的写入操作被暂停的频率更高。为了降低暂停频率,写入处理器1332可减少单元数据的数量,使得在下一划分的写入操作中每单位时间与存储器装置1310通信的数据的量减少。
例如,单元数据的数量可被选择为与在先的暂停计数和随后的暂停计数的比成正比。在图9的示例中,与在时间点t41之前的暂停计数相比,在监测时间段TP1a期间的暂停计数增加一倍,因为八(8)个单元数据D1至D8被通信,因此用于随后的写入操作的数据可被调整为包括四(=8×1/2)个单元数据D9到D12。然而,提供这个示例以便于更好的理解,并且不意在限制本公开。
之后,针对数据D9至D12的写入操作可在时间点t43开始,并且可在时间点t44完成。在时间点t43与时间点t44之间的写入操作中,数据D9至D12可被发送到存储器装置1310基于时间点t41与时间点t42之间的在先的写入操作的暂停频率确定的量那么多。同时,在时间点t43和t44之间,有时可请求读取操作,并且可重复暂停并恢复写入操作。
例如,当用于写入操作的单元数据的数量减少时,从写入缓冲器1335发送到存储器装置1310的数据的量可减少。在这种情况下,缓冲在写入缓冲器1335中的数据可不被完全输出,但是在控制器1330完成用于写入操作的数据通信之后,缓冲的数据可部分地保留在写入缓冲器1335中。
例如,暂停监测器1338可在写入操作被执行的时间点t43和t45之间的监测时间段TP1b期间测量到写入操作被暂停八(8)次。参照图10,写入处理器1332可基于在时间点t41与时间点t43之间测量到的暂停计数(例如,12次)和在时间点t43与时间点t45之间测量到的暂停计数(例如,8次)之间的关系,来调整用于下一写入操作的单元数据的数量。
在图10的示例中,针对数据D9至D12的写入操作的暂停计数(例如,8次)可小于在时间点t41与时间点t43之间的写入操作的暂停计数(例如,12次)(暂停计数从12减小到8)。这可表示针对数据D9至D12的写入操作被暂停的频率比在时间点t41与时间点t43之间的写入操作被暂停的频率更低。
为了提高性能,写入处理器1332可增加单元数据的数量,使得在下一划分的写入操作中每单位时间与存储器装置1310通信的数据的量增大。例如,当四个单元数据D9至D12被通信时,暂停计数减小了三分之一(1/3),因此用于下一写入操作的数据可被调整为包括六(=4×3/2)个单元数据D13至D18。
之后,针对数据D13至D18的写入操作可在时间点t45开始,并且可在时间点t46完成。在时间点t45与时间点t46之间的写入操作中,数据D13至D18可被发送到存储器装置1310基于时间点t43和t45之间的在先的写入操作的暂停频率确定的量那么多。
暂停监测器1338可在时间点t45和t47之间的监测时间段TP1c期间测量写入操作的暂停计数。写入处理器1332可基于测量到的暂停计数,来限制或调整用于与数据D19相关联的随后的写入操作的数据量(例如,单元数据的数量)。
参照图9和图10,当执行划分的写入操作时,可在划分的写入操作之间设置裕量时间间隔TM1a、TM1b和TM1c。例如,控制器1330可调度一个或多个读取操作,使得在裕量时间间隔TM1a、TM1b和TM1c中执行读取操作。
在裕量时间间隔TM1a、TM1b和TM1c中可不执行写入操作。因此,在裕量时间间隔TM1a、TM1b和TM1c中,可在没有写入操作的暂停的情况下执行读取操作。当读取操作在裕量时间间隔TM1a、TM1b和TM1c中被执行时,暂停频率(例如,暂停计数)可不改变。
例如,可在时间点t44和t45之间的裕量时间间隔TM1b中执行读取操作。控制器1330可控制存储器装置1310,使得在不暂停针对数据D9至D12的写入操作并且不暂停针对数据D13至D18的写入操作的情况下执行读取操作。因此,当读取操作被执行时,暂停监测器1338测量的暂停计数可不改变。
在裕量时间间隔TM1a、TM1b和TM1c中执行读取操作可不需要写入操作的暂停。因此,暂停频率达到最大暂停频率TH的时间可被延迟。
此外,如下面将描述的那样,因为控制器1330针对每个划分的写入操作限制或调整数据量,所以各个划分的写入操作的暂停可被分布在所有写入操作中。因此,可防止在较早时间段期间集中发生写入操作的暂停。
结果,参照图5描述的读取操作的延迟可被防止。此外,当给定裕量时间间隔TM1a、TM1b和TM1c时执行读取操作可有助于提供快速读取响应。
同时,在一些情况下,可不需要并且可不调度裕量时间间隔TM1a、TM1b和TM1c的读取操作。在这种情况下,可不设置裕量时间间隔TM1a、TM1b和TM1c,并且可在没有裕量时间间隔TM1a、TM1b和TM1c的情况下连续地执行写入操作。
图11是用于描述根据一些实施例的图3的控制器1330的示例操作的表。
在参照图9和图10描述的示例操作中,可在每个监测时间段执行限制或调整数据量。然而,在一些情况下,在先的写入操作的暂停计数的细微改变不会极大地影响性能和可靠性。因此,在一些实施例中,当暂停计数变得超出给定计数范围时或者当暂停计数的改变超过参考计数时,控制器1330可限制或调整数据量。
在这方面,图11示出暂停计数范围与包括在用于写入操作的数据中的单元数据的数量之间的示例关系。例如,当在先的写入操作的暂停计数是10时,用于随后的写入操作的数据可包括十五(15)个单元数据。当在先的写入操作的暂停计数在0到20之间改变时,包括在用于随后的写入操作的数据中的单元数据的数量可维持在15而没有改变。
然而,当在先的写入操作的暂停计数在0到20之间的暂停计数范围之外并且增加到30时,包括在用于随后的写入操作的数据中的单元数据的数量可从15减小到5。以这种方式,当在先的写入操作的暂停计数在当前暂停计数范围之外时,控制器1330可调整包括在用于随后的写入操作的数据中的单元数据的数量。
提供图11的表中示出的数值以便于更好的理解,并且不意在限制实施例。可不同地改变或修改暂停计数间隔和单元数据的数量。例如,当暂停计数范围的宽度变窄时,控制器1330可对在先的写入操作的暂停计数的变化更敏感地操作。另一方面,当暂停计数间隔的宽度变宽时,限制对操作性能的影响可能降低。
在一些情况下,暂停计数范围的宽度可被选择为彼此不同。例如,暂停计数范围可被配置为使得需要敏感响应的暂停计数范围的宽度窄并且不需要敏感响应的暂停计数范围的宽度宽。这样,暂停计数范围和单元数据的数量可被不同地改变或修改以适合于要求。
在一些情况下,代替选择具有固定上限和下限的暂停计数范围,当暂停计数的变化超过参考计数时(例如,当暂停计数从当前值增加或减小10或更多时),或者当暂停计数的变化率超过参考百分比时(例如,当暂停计数从当前值增加或减小10%或更多时),控制器1330可限制或调整数据量。
例如,控制器1330可以以表的形式(例如,查找表),来管理暂停计数与单元数据的数量之间的关系。可选地,控制器1330可包括被配置为基于给定的暂停计数来计算单元数据的数量的硬件电路或程序代码。
在一些实施例中,暂停监测器1338可周期性地(例如,在每个监测时间段)向写入处理器1332提供监测的暂停频率(例如,测量的暂停计数),使得写入处理器1332限制或调整数据量。
在一些实施例中,不管监测时间段如何,当测量的暂停计数满足限制条件时,暂停监测器1338可向写入处理器1332提供测量的暂停计数。例如,当暂停计数的变化超过参考计数时或者当暂停计数的变化率超过参考百分比时,限制条件可被满足。在这种情况下,控制器1330可响应于限制条件被满足而动态地限制或调整数据量。
图12是用于描述根据一些实施例的图3的控制器1330的示例操作的时序图。
例如,在时间点t51、t52、t53、t54、t55和t56,写入操作可开始并且可被执行。暂停监测器1338可测量写入操作在各个监测时间段TP2a、TP2b、TP2c、TP2d和TP2e中被暂停的计数。
在一些实施例中,控制器1330可参照在一些监测时间段中测量的暂停计数,而不是在监测时间段TP2a、TP2b、TP2c、TP2d和TP2e中的每个之后限制或调整数据量。在这种情况下,可减轻暂停计数的突然改变或异常改变的影响。
在图12的示例中,控制器1330可考虑在两个监测时间段中测量的暂停计数,来限制或调整用于随后的写入操作的数据量。例如,控制器1330可考虑在包括监测时间段TP2a和TP2b的时间段TP3a中测量的暂停计数来调整用于将在时间点t53开始的写入操作的数据量,代替仅考虑在监测时间段TP2a中测量的暂停计数。例如,可使用在监测时间段TP2a和TP2b中测量的暂停计数的和、平均值或通过其他计算方式获得的值。
同样地,控制器1330可考虑在包括监测时间段TP2c和TP2d的时间段TP3b中测量的暂停计数,来调整用于将在时间点t55开始的写入操作的数据的量。然而,提供图12的示例操作以便于更好的理解,并且可不同地改变或修改限制所参考的监测时间段的数量。
图13是用于描述根据一些实施例的图3的控制器1330的示例操作的时序图。
在一些实施例中,暂停监测器1338可测量在每个参考持续时间内写入操作被暂停的计数,代替基于写入操作的开始来定义监测时间段。控制器1330可参照在具有恒定长度的每个参考持续时间内测量的暂停计数。
在图13的示例中,暂停监测器1338可测量在时间点t61和t62之间的参考持续时间TP4中写入操作被暂停的计数。控制器1330可基于在时间点t61和t62之间的参考持续时间TP4中测量的暂停计数,来限制或调整用于将在时间点t62之后执行的写入操作的数据量。
以这样的方式,暂停监测器1338可测量在时间点t62和t63之间、时间点t63和t64之间、时间点t64和t65之间以及时间点t65和t66之间的各个参考持续时间TP4中写入操作被暂停的计数。控制器1330可基于测量的暂停计数来限制或调整数据量。在这种情况下,可在一个参考持续时间TP4内执行两个或更多个写入操作。
已经针对暂停计数描述了图9至图13的示例,但是实施例不限于此。写入操作被暂停的频率可通过使用除了暂停计数之外的另外的测量而被监测。例如,写入操作被暂停的时间点之间的时间间隔可(与暂停计数一起或代替暂停计数)被参考,以确定暂停是频繁的还是稀少的。
图14是用于描述根据一些实施例的图3的控制器1330的示例操作的时序图。
在图14的示例中,控制器1330可控制写入操作,使得时间延迟被设置在在先的写入操作与随后的写入操作之间。在一些实施例中,调整在控制器1330与存储器装置1310之间通信数据的方式可包括调整在先的写入操作与随后的写入操作之间的时间延迟。例如,写入处理器1332可调整时间延迟以调整通信带宽并调整每单位时间将被通信的数据的量。
例如,与数据D0相关联的写入操作可在时间点t71完成。该写入操作可已经被暂停六(6)次。时间延迟TY1可被设置在时间点t71和t72之间。
与数据D1至D8相关联的写入操作可在时间点t72开始,并且可在时间点t73完成。在监测时间段TP5a期间,该写入操作可被暂停12次。时间延迟TY2可被设置在时间点t73和t74之间。
当暂停计数从6增加到12时,写入处理器1332可增大时间延迟。因此,时间延迟TY2可比时间延迟TY1长。当时间延迟增大时,每单位时间与存储器装置1310通信的数据的量或带宽可减小。因此,暂停频率会降低。
之后,与数据D9至D16相关联的写入操作可在时间点t74开始,并且可在时间点t75完成。在监测时间段TP5b期间,该写入操作可被暂停8次。时间延迟TY3可被设置在时间点t75和t76之间。与数据D17相关联的写入操作可在时间点t76开始。
当暂停计数从12减小到8时,写入处理器1332可减小时间延迟。因此,时间延迟TY3可比时间延迟TY2短。当时间延迟减小时,每单位时间与存储器装置1310通信的数据的量或带宽可增大。因此,操作性能可被提高。
类似于图9和图10的裕量时间间隔TM1a、TM1b和TM1c,在时间延迟TY1、TY2和TY3期间,可不执行写入操作并且可执行读取操作。在时间延迟TY1、TY2和TY3期间执行的读取操作不会影响写入操作的暂停。类似于图9和图10的实施例,当使用时间延迟TY1、TY2和TY3时,可防止读取操作的延迟。
图15是用于描述根据一些实施例的图3的控制器1330的示例操作的时序图。
在一些实施例中,调整在控制器1330与存储器装置1310之间通信数据的方式可包括调整用于通信随后的写入操作的数据的时钟。例如,写入处理器1332可控制时钟以调整每单位时间通信的数据的量。
例如,在时间点t81之前的写入操作可被暂停六(6)次。与数据D1至D8相关联的写入操作可在时间点t81开始,并且可在时间点t82完成。在时间点t81和t83之间的监测时间段TP6期间,该写入操作可被暂停12次。之后,与数据D9至D16相关联的写入操作可在时间点t83开始,并且可在时间点t84完成。
当暂停计数从6增加到12时,写入处理器1332可提高用于通信数据的时钟的频率。当时钟频率提高时,可在短时间内通信更大的数据量。因此,比裕量时间间隔TM2长的裕量时间间隔TM3可被确保,并且写入操作的暂停频率可降低。
在时间点t83和t85之间的监测时间段TP6期间,在时间点t83开始的写入操作可被暂停8次。之后,与数据D17和D18相关联的写入操作可在时间点t85开始。
当暂停计数从12减小到8时,写入处理器1332可降低用于通信数据的时钟的频率。当时钟频率降低时,通信数据花费的时间可增大。在这种情况下,确保的裕量时间间隔可以是短的,但是通信可被稳定地执行。
类似于图9和图10的裕量时间间隔TM1a、TM1b和TM1c,在裕量时间间隔TM2和TM3中,可不执行写入操作并且可执行读取操作。在裕量时间间隔TM2和TM3中执行的读取操作不会影响写入操作的暂停。类似于图9和图10的实施例,当设置裕量时间间隔TM2和TM3时,可防止读取操作的延迟。
已经参照图9至图15描述了用于调整在控制器1330与存储器装置1310之间通信数据的方式的一些实施例,但是实施例不限于此。调整通信方式可被不同地改变或修改以防止读取操作的延迟。
已经独立地描述了图9至图15的实施例,但是图9至图15的实施例可以是互补的,而不是相互排斥的。可通过组合参照图9至图15描述的实施例中的所有或一些来实现根据一些实施例的存储装置1300。
在参照图7至图15描述的实施例中,控制器1330可限制或调整数据量而不影响随后的写入操作的暂停。也就是说,实施例可不考虑如何暂停随后的写入操作,而是可被配置为考虑如何调整为随后的写入操作通信的数据的量。
同时,已经描述了图7至图15的基于写入操作的暂停频率来调整用于写入操作的通信方式的实施例。然而,实施例不限于此。例如,实施例可被实现为基于写入操作的暂停频率来调整用于在先的读取操作之后的随后的读取操作的通信方式。
例如,当写入操作被暂停的频率提高时,读取处理器1333可减少在随后的读取操作中每单位时间在控制器1330与存储器装置1310之间通信的数据的量。当在随后的读取操作中通信的数据的量减少时,可防止由于随后的读取操作导致写入操作被暂停或延迟,或者可减少写入操作的暂停或延迟。
另一方面,当写入操作被暂停的频率降低时,读取处理器1333可增大每单位时间在控制器1330与存储器装置1310之间通信的数据的量。在这种情况下,随后的读取操作的性能可被提高。
这样,可容易地理解的是,即使在限制每单位时间通信的数据的量或带宽使得读取处理器1333处理读取数据基于监测的频率确定的数据量那么多的情况下,也可实现与参照图7至图15描述的目的相同的目的。为此,读取处理器1333可以以与参照图7至图15描述的方式类似的方式调整读取数据的量或带宽。
例如,读取处理器1333可增大或减少用于读取操作的单元数据的数量,或者可增大或减小读取操作之间的时间延迟。另外地或可选地,读取处理器1333可提高或降低用于通信读取数据的时钟的频率。此外,读取处理器1333可采用各种方式来限制读取数据的量或带宽。
这样,在响应于高优先级的第二操作的请求而暂停低优先级的第一操作的系统中,可基于调整用于第一操作的通信方式和/或调整用于第二操作的通信方式来管理第一操作的暂停频率。
图16是用于描述与图3的暂停监测器1338相关联的示例配置和示例操作的示意图。
例如,存储器装置1310可包括四个存储器装置1311、1312、1313和1319。在一些情况下,存储器装置1311、1312、1313和1319可响应于单独的命令(例如,写入命令WCMD和/或读取命令RCMD)而独立地操作。例如,对存储器装置1311执行的操作不会影响对存储器装置1312、1313和1319执行的操作。
暂停监测器1338可包括单独的模块25、70、12和45,以单独地监测与相应的存储器装置1311、1312、1313和1319相关联的暂停频率。写入处理器1332和读取处理器1333可基于相应的暂停频率独立地控制存储器装置1311、1312、1313和1319。写入处理器1332可包括单独的模块2、3、5和15,以分别控制存储器装置1312、1319、1311和1313。例如,可独立于与存储器装置1312、1313和1319通信的数据的量,来调整与存储器装置1311通信的数据的量。
在一些情况下,一个存储器装置可包括响应于单独的命令而独立地操作的存储器区域(例如,存储器层)。在这种情况下,暂停监测器1338可单独地监测与各个存储器区域相关联的暂停频率,并且与存储器区域相关联的限制可被独立地执行。
根据参照图7至图15描述的实施例,与存储器装置1311、1312、1313和1319中的每个通信的数据的量或带宽可增大或减小。例如,在一个存储器装置(例如,存储器装置1311)执行的操作的暂停频率可相对较高,在另一存储器装置(例如,存储器装置1312)执行的操作的暂停频率可相对较低。在这种情况下,即使用于存储器装置1311的数据量或带宽减小,用于存储器装置1312的数据量或带宽也可增大或者可被维持。
在以上示例中,控制器1330可管理优先级,使得与存储器装置1312通信的数据的优先级高于与存储器装置1311通信的数据的优先级。因此,同与存储器装置1311的通信相比,写入处理器1332和读取处理器1333可更频繁地处理与存储器装置1312的通信。在这种情况下,即使(由于数据量或带宽的减小导致)存储器装置1311的操作性能略微下降,与所有存储器装置1311、1312、1313和1319交换的单元数据的数量也不会减少。因此,所有存储器装置1311、1312、1313和1319的操作性能可被维持或确保而不劣化。
图17是用于描述与图7至图16的操作相关联的特性的曲线图。
根据参照图7至图16描述的实施例,控制器1330可调整与存储器装置1310通信数据的方式。因此,在一些实施例中,可在写入操作之间设置裕量时间间隔和/或时间延迟,同时,可在不暂停写入操作的情况下执行读取操作。
例如,参照图17,时间点t92和t93之间的裕量时间间隔TM4以及时间点t94和t95之间的裕量时间间隔TM5可被设置。在裕量时间间隔TM4和TM5中,暂停频率不会改变。因此,暂停频率达到最大暂停频率TH的时间可被延迟。
在这方面,可防止在较早时间段期间集中发生写入操作的暂停,并且写入操作的暂停可被分布在在时间点t91和t97之间执行的所有写入操作中。因此,在暂停频率达到最大暂停频率TH之后的时间点t96和t97之间的时间段TD4可以是短的(例如,与图6的时间段TD2相比)。在一些情况下,时间段TD4可不发生。
结果,可在长时间段内(例如,在时间点t91和t96之间的时间段内)在短时间长度TR1内提供读取响应。此外,即使暂停频率在时间点t96达到最大暂停频率TH,时间段TD4也可以是短的,因此读取响应需要的时间长度TR4不会长。因此,参照图5描述的读取操作的延迟可被防止或最小化。
以上描述意在提供用于实现发明构思的示例配置和操作。除了上述实施例之外,发明构思可包括可通过简单地改变或修改以上实施例而获得的实施方式。此外,发明构思可包括可通过将来容易地改变或修改上述实施例来实现的实施方式。

Claims (19)

1.一种存储装置,包括:
存储器;以及
控制器,被配置为控制存储器,使得:
当对存储器执行第一写入操作时,响应于对存储器的第一读取操作的请求,暂停第一写入操作,并执行第一读取操作;
在第一读取操作完成之后,恢复暂停的第一写入操作;并且
在恢复的第一写入操作完成之后,对存储器执行第一写入操作之后的第二写入操作,
其中,控制器还被配置为基于第一写入操作被暂停的第一频率,限制用于第二写入操作或用于第一读取操作之后的第二读取操作的与存储器通信的数据的量,并且
其中,控制器包括:
写入处理器,用于限制用于第二写入操作的与存储器通信的数据的量,使得数据被发送到存储器基于第一频率确定的量那么多。
2.根据权利要求1所述的存储装置,其中,控制器包括:
暂停监测器,被配置为监测第一频率。
3.根据权利要求2所述的存储装置,其中,暂停监测器还被配置为监测第一写入操作之前的第三写入操作被暂停的第二频率,并且
其中,写入处理器还被配置为基于第一频率与第二频率之间的关系来限制用于第二写入操作的与存储器通信的数据的量。
4.根据权利要求3所述的存储装置,其中,写入处理器被配置为限制用于第二写入操作的与存储器通信的数据的量,使得:
响应于确定第一频率大于第二频率,每单位时间发送到存储器的数据的量减少;以及
响应于确定第一频率小于第二频率,每单位时间发送到存储器的数据的量增大。
5.根据权利要求1所述的存储装置,其中,控制器还被配置为:在参考时间段内监测第一频率或者在执行第一写入操作完成的时间段期间监测第一频率。
6.根据权利要求1所述的存储装置,其中,控制器被配置为:当在对存储器执行多个写入操作的同时请求多个读取操作时,控制存储器使得暂停所述多个写入操作并恢复所述多个写入操作,以比所述多个写入操作更早地完成所述多个读取操作;并且
其中,控制器被配置为:基于所述多个写入操作被暂停的频率,来限制关于所述多个读取操作或所述多个写入操作的与存储器通信的数据的量。
7.一种存储装置,包括:
存储器;以及
控制器,被配置为控制存储器,使得当对存储器执行第一操作时,响应于接收到对存储器的第二操作的请求,暂停第一操作,并且比第一操作更早地完成第二操作,
其中,控制器还被配置为基于第一操作之中的在先的第一操作中的每个被暂停的频率,来调整与存储器通信数据的方式,以执行第一操作之中的在先的第一操作中的各个第一操作之后的随后的第一操作,
其中,控制器还被配置为调整与存储器通信数据的方式,使得第一操作的暂停被分布在第一操作的时间段内,并且
其中,每个在先的第一操作被暂停的频率与每个在先的第一操作被暂停的计数或在先的第一操作被暂停的时间点之间的时间间隔中的至少一个相关联。
8.根据权利要求7所述的存储装置,其中,控制器被配置为:响应于确定在先的第一操作被暂停的频率提高,调整与存储器通信数据的方式,以减少每单位时间与存储器通信的数据的量,以及
其中,控制器被配置为:响应于确定在先的第一操作被暂停的频率降低,调整与存储器通信数据的方式,以增大每单位时间与存储器通信的数据的量。
9.根据权利要求7所述的存储装置,其中,调整与存储器通信数据的方式包括:调整与存储器通信的数据的量、调整在先的第一操作与随后的第一操作之间的时间延迟或控制用于与存储器通信数据的时钟中的至少一个。
10.一种存储装置,包括:
非易失性存储器;以及
控制器,连接到非易失性存储器,并且被配置为:
基于每单位时间控制器与非易失性存储器之间的读取操作的数量来计算暂停计数;
将暂停计数与参考计数进行比较;
接收第一写入操作和第一读取操作以在控制器与非易失性存储器之间通信;
当暂停计数小于参考计数时,暂停第一写入操作;以及
在第一读取操作完成之后恢复暂停的第一写入操作。
11.根据权利要求10所述的存储装置,其中,控制还被配置为:
设置最大暂停计数;以及
当暂停计数小于最大暂停计数时,暂停第一写入操作。
12.根据权利要求10所述的存储装置,其中,暂停第一写入操作的步骤包括:响应于第一写入操作,基于暂停计数来调整每单位时间在控制器与非易失性存储器之间通信的单元数据的数量。
13.根据权利要求12所述的存储装置,还包括:
查找表,其中,控制器还被配置为基于查找表管理暂停计数与单元数据的数量之间的关系。
14.根据权利要求10所述的存储装置,其中,计算暂停计数的步骤包括:响应于在单位时间期间响应于读取操作而暂停操作,将暂停计数增加一。
15.根据权利要求10所述的存储装置,其中,计算暂停计数的步骤包括:
计算第一时间间隔的第一暂停计数;
计算第二时间间隔的第二暂停计数;以及
计算第三时间间隔的第一暂停计数和第二暂停计数的平均暂停计数;
其中,第三时间间隔包括第一时间间隔和第二时间间隔。
16.根据权利要求10所述的存储装置,其中,将暂停计数与参考计数进行比较的步骤包括将暂停计数的变化与参考计数进行比较。
17.根据权利要求10所述的存储装置,其中,参考计数大于或等于十。
18.根据权利要求10所述的存储装置,其中,控制器还被配置为:
完成暂停的第一写入操作;
接收第二写入操作;以及
以第一频率暂停第二写入操作,第一频率基于与第一写入操作相关联的暂停计数。
19.根据权利要求10所述的存储装置,其中,计算暂停计数的步骤包括:
测量当响应于读取操作而暂停操作时的时间点之间的时间间隔。
CN201911028895.9A 2018-11-16 2019-10-28 存储装置 Active CN111198653B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180141528A KR20200057311A (ko) 2018-11-16 2018-11-16 통신되는 데이터의 양을 동작의 중단 빈도에 따라 스로틀링하는 스토리지 장치
KR10-2018-0141528 2018-11-16

Publications (2)

Publication Number Publication Date
CN111198653A CN111198653A (zh) 2020-05-26
CN111198653B true CN111198653B (zh) 2023-09-22

Family

ID=70470690

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911028895.9A Active CN111198653B (zh) 2018-11-16 2019-10-28 存储装置

Country Status (4)

Country Link
US (3) US10908839B2 (zh)
KR (1) KR20200057311A (zh)
CN (1) CN111198653B (zh)
DE (1) DE102019111133A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11237731B2 (en) * 2019-10-24 2022-02-01 Micron Technology, Inc. Quality of service for memory devices using suspend and resume of program and erase operations
US11620053B2 (en) 2019-10-24 2023-04-04 Micron Technology, Inc. Quality of service for the multiple functions in memory devices
US11687244B2 (en) 2019-10-24 2023-06-27 Micron Technology, Inc. Quality of service for memory devices using weighted memory access operation types
KR20210106119A (ko) * 2020-02-20 2021-08-30 에스케이하이닉스 주식회사 메모리 시스템
JP2021170241A (ja) * 2020-04-16 2021-10-28 富士通株式会社 情報処理装置及び制御プログラム
US20240176543A1 (en) * 2022-11-25 2024-05-30 Samsung Electronics Co., Ltd. Method of operating storage device using program suspension control and storage device performing the same

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4348725A (en) * 1977-01-19 1982-09-07 Honeywell Information Systems Inc. Communication line service interrupt technique for a communications processing system
CN102799396A (zh) * 2012-07-22 2012-11-28 北京忆恒创源科技有限公司 存储设备、中断控制方法以及供电时间测量方法
CN105808159A (zh) * 2015-01-16 2016-07-27 桑迪士克科技股份有限公司 贮存操作中断

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5822244A (en) * 1997-09-24 1998-10-13 Motorola, Inc. Method and apparatus for suspending a program/erase operation in a flash memory
US6930925B2 (en) * 2003-10-14 2005-08-16 Atmel Corporation Suspend-resume programming method for flash memory
US7188219B2 (en) * 2004-01-30 2007-03-06 Micron Technology, Inc. Buffer control system and method for a memory system having outstanding read and write request buffers
US7064994B1 (en) 2004-01-30 2006-06-20 Sun Microsystems, Inc. Dynamic memory throttling for power and thermal limitations
US8370562B2 (en) 2007-02-25 2013-02-05 Sandisk Il Ltd. Interruptible cache flushing in flash memory systems
US8209439B2 (en) * 2008-08-25 2012-06-26 Sandisk Il Ltd. Managing multiple concurrent operations with various priority levels in a local storage device
US8850103B2 (en) * 2009-08-28 2014-09-30 Microsoft Corporation Interruptible NAND flash memory
US9021158B2 (en) * 2009-09-09 2015-04-28 SanDisk Technologies, Inc. Program suspend/resume for memory
US9804798B2 (en) * 2012-12-14 2017-10-31 Vmware, Inc. Storing checkpoint file in high performance storage device for rapid virtual machine suspend and resume
US9274966B1 (en) 2013-02-20 2016-03-01 Western Digital Technologies, Inc. Dynamically throttling host commands to disk drives
US9582211B2 (en) 2014-04-29 2017-02-28 Sandisk Technologies Llc Throttling command execution in non-volatile memory systems based on power usage
US20160202909A1 (en) * 2015-01-14 2016-07-14 College Of William And Mary I/o scheduling method using read prioritization to reduce application delay
CN106067321B (zh) 2015-04-21 2020-09-15 爱思开海力士有限公司 适于存储器编程暂停-恢复的控制器
US9679658B2 (en) 2015-06-26 2017-06-13 Intel Corporation Method and apparatus for reducing read latency for a block erasable non-volatile memory
KR102296740B1 (ko) * 2015-09-16 2021-09-01 삼성전자 주식회사 메모리 장치 및 그것을 포함하는 메모리 시스템
US9886214B2 (en) * 2015-12-11 2018-02-06 Ip Gem Group, Llc Nonvolatile memory system with erase suspend circuit and method for erase suspend management
KR102631353B1 (ko) 2017-08-17 2024-01-31 삼성전자주식회사 비휘발성 메모리 장치 및 이의 동작 방법
KR102450514B1 (ko) 2017-09-19 2022-10-05 삼성전자주식회사 메모리 컨트롤러의 동작 방법 및 그것을 포함하는 저장 장치의 동작 방법
KR102420161B1 (ko) * 2017-12-01 2022-07-12 삼성전자주식회사 메모리 컨트롤러 및 그것의 제어 방법
US10509747B2 (en) * 2018-05-17 2019-12-17 Seagate Technology Llc Memory access operation suspend/resume
KR102569820B1 (ko) * 2018-10-25 2023-08-24 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US10643711B1 (en) * 2018-12-20 2020-05-05 Western Digital Technologies, Inc. Workload based dynamic erase suspend adaptation
US10956081B2 (en) * 2019-04-18 2021-03-23 Intel Corporation Method, system, and apparatus for multi-tiered progressive memory program operation suspend and resume
US11126369B1 (en) * 2020-02-28 2021-09-21 Western Digital Technologies, Inc. Data storage with improved suspend resume performance

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4348725A (en) * 1977-01-19 1982-09-07 Honeywell Information Systems Inc. Communication line service interrupt technique for a communications processing system
CN102799396A (zh) * 2012-07-22 2012-11-28 北京忆恒创源科技有限公司 存储设备、中断控制方法以及供电时间测量方法
CN105808159A (zh) * 2015-01-16 2016-07-27 桑迪士克科技股份有限公司 贮存操作中断

Also Published As

Publication number Publication date
US20210157511A1 (en) 2021-05-27
US20200159444A1 (en) 2020-05-21
US10908839B2 (en) 2021-02-02
US20230004321A1 (en) 2023-01-05
US11467767B2 (en) 2022-10-11
KR20200057311A (ko) 2020-05-26
CN111198653A (zh) 2020-05-26
DE102019111133A1 (de) 2020-05-20

Similar Documents

Publication Publication Date Title
CN111198653B (zh) 存储装置
US11467769B2 (en) Managed fetching and execution of commands from submission queues
CN108958907B (zh) 用于数据存储系统的上下文感知动态命令调度
US10466903B2 (en) System and method for dynamic and adaptive interrupt coalescing
CN106067321B (zh) 适于存储器编程暂停-恢复的控制器
KR102095471B1 (ko) 데이터 저장 디바이스와 버퍼 테뉴어 관리
US10055137B2 (en) Method, system, and apparatus for nested suspend and resume in a solid state drive
US10303371B2 (en) Data storage device that stabilizes write latency
US20190079676A1 (en) System and method for channel time management in solid state memory drives
US20130138912A1 (en) Scheduling requests in a solid state memory device
US20090132761A1 (en) Storage management method and system using the same
US11392309B2 (en) Memory system for performing migration operation and operating method thereof
CN109726137B (zh) 固态硬盘垃圾回收任务的管理方法、控制器和固态硬盘
TWI715248B (zh) 主機輸出入命令的執行裝置及方法及電腦程式產品
JP6167646B2 (ja) 情報処理装置、制御回路、制御プログラム、および制御方法
US11416168B2 (en) Memory controller and storage device including the same
US20160070647A1 (en) Memory system
CN112083873A (zh) 智能识别非易失存储介质不可靠块的方法与装置
US20190278486A1 (en) Storage system, data management method, and data management program
US10481014B2 (en) Adaptive throttling
US11150809B2 (en) Memory controller and storage device including the same
CN108877862B (zh) 页条带的数据组织以及向页条带写入数据的方法与装置
US10564886B2 (en) Methods and apparatus for controlling flash translation layer recycle from host
US20120331209A1 (en) Semiconductor storage system
KR102088944B1 (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
GR01 Patent grant
GR01 Patent grant