CN114489466A - 存储器系统及其操作方法 - Google Patents
存储器系统及其操作方法 Download PDFInfo
- Publication number
- CN114489466A CN114489466A CN202110395387.5A CN202110395387A CN114489466A CN 114489466 A CN114489466 A CN 114489466A CN 202110395387 A CN202110395387 A CN 202110395387A CN 114489466 A CN114489466 A CN 114489466A
- Authority
- CN
- China
- Prior art keywords
- read
- command delay
- memory
- time
- command
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
- G11C7/222—Clock generating, synchronizing or distributing circuits within memory device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1057—Data output buffers, e.g. comprising level conversion circuits, circuits for adapting load
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1063—Control signal output circuits, e.g. status or busy flags, feedback command signals
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1084—Data input buffers, e.g. comprising level conversion circuits, circuits for adapting load
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Abstract
本公开的实施例涉及存储器系统及其操作方法。根据本公开的实施例,存储器系统可以通过针对多个时间段中的每个时间段设置用于确定是否合并和处理读取命令的命令延迟时间来执行读取操作,并且可以基于针对多个时间段中的每个时间段的读取操作的执行结果,从针对多个时间段中的每个时间段设置的命令延迟时间中,设置目标命令延迟时间,该目标命令延迟时间被用于确定是否将后续读取命令与一个或多个先前读取命令合并和处理。
Description
相关申请的交叉引用
本申请要求于2020年10月27日提交的韩国申请号10-2020-0140109的优先权,其全部内容通过引用并入本文。
技术领域
实施例涉及存储器系统及其操作方法。
背景技术
存储器系统包括基于来自主机(诸如计算机、服务器、智能电话、平板计算机或其他电子设备)的请求而存储数据的数据存储设备(或存储器设备)。存储器系统的示例包括传统的基于磁盘的硬盘驱动器(HDD)和基于半导体的数据存储设备,诸如固态驱动装置(SSD)、通用闪速存储设备(UFS)或嵌入式MMC(eMMC)设备。
存储器系统还可以包括用于控制存储器设备的存储器控制器。存储器控制器可以从主机接收命令,并且可以基于接收到的命令对存储器系统中的存储器设备执行命令或控制读取、写入和/或擦除操作。存储器控制器可以被用于执行固件操作,以执行用于控制这种操作的逻辑操作。
当处理从主机接收的多个读取命令时,存储器系统可以合并针对满足特定条件的读取命令的读取请求并将其输入到存储器设备,而不是将针对多个读取命令中的每个读取命令的读取请求单独输入到存储器设备中。
发明内容
本公开的实施例可以提供一种能够通过最小化处理从主机输入的读取命令的延迟来改善读取操作的性能的存储器系统及其操作方法。
另外,本公开的实施例可以提供一种能够减少在从存储器设备读取数据的过程中所需的负载的存储器系统及其操作方法。
在一个方面,本公开的实施例可以提供一种存储器系统,该存储器系统包括存储器设备以及用于与该存储器设备通信并控制该存储器设备的存储器控制器。
存储器控制器可以通过针对多个时间段中的每个时间段设置命令延迟时间来执行读取操作,该命令延迟时间用于确定是否合并和处理读取命令。
存储器控制器可以基于针对多个时间段中的每个时间段的读取操作的执行结果,从针对多个时间段中的每个时间段设置的命令延迟时间中设置目标命令延迟时间,该目标命令延迟时间将被用于确定是否合并和处理后续读取命令与一个或多个先前读取命令。
存储器控制器可以在所设置的最大命令延迟时间内针对多个时间段中的每个时间段不同地设置命令延迟时间。
针对多个时间段中的每个时间段的读取操作的执行结果可以包括:1)在对应时间段期间输入的读取命令的数目;2)在对应时间段期间向存储器设备输入的读取请求的数目;3)在对应时间段期间超过基准等待时间处理的读取命令的数目;以及4)吞吐量。在这种情况下,吞吐量可以基于由在多个时间段中的每个时间段期间输入的读取命令所请求的读取数据的总大小以及处理读取命令所花费的时间而被确定。
存储器控制器可以基于针对多个时间段中的每个时间段的吞吐量以及超过基准等待时间处理的读取命令的数目来设置一个或多个候选命令延迟时间,以用于设置目标命令延迟时间。
在这种情况下,存储器控制器可以从多个时间段中选择具有最高吞吐量的N个时间段(N为大于或等于2的自然数),并且可以将在N个时间段中的、其中超过基准等待时间处理的读取命令的数目最小的M个时间段中设置的M个命令延迟时间设置为候选命令延迟时间(M为小于或等于N的自然数)。
存储器控制器可以将在M个候选命令延迟时间中向存储器设备输入的读取请求的数目与在对应时间段期间接收到的读取命令的总数目的比率最低的候选命令延迟时间设置为目标命令延迟时间。
在另一方面,本公开的实施例可以提供一种包括存储器设备的存储器系统的操作方法。
存储器系统的操作方法可以包括如下步骤:通过针对多个时间段中的每个时间段设置用于确定是否合并和处理读取命令的命令延迟时间来执行读取操作。
在这种情况下,在所设置的最大命令延迟时间内针对多个时间段中的每个时间段不同地设置命令延迟时间。
另外,存储器系统的操作方法可以包括如下步骤:基于针对多个时间段中的每个时间段的读取操作的执行结果,从针对多个时间段中的每个时间段设置的命令延迟时间中,设置目标命令延迟时间,该目标命令延迟时间将被用于确定是否合并和处理后续读取命令与一个或多个先前读取命令。
在这种情况下,针对多个时间段中的每个时间段的读取操作的执行结果可以包括:1)在对应时间段期间输入的读取命令的数目;2)在对应时间段期间向存储器设备输入的读取请求的数目;3)在对应时间段期间超过基准等待时间处理的读取命令的数目;以及4)吞吐量。吞吐量可以基于由在多个时间段中的每个时间段期间输入的读取命令所请求的读取数据的总大小以及处理读取命令所花费的时间而被确定。
在设置目标命令延迟时间的步骤中,可以基于针对多个时间段中的每个时间段的吞吐量以及超过基准等待时间处理的读取命令的数目来设置一个或多个候选命令延迟时间,以用于设置目标命令延迟时间。
设置目标命令延迟时间的步骤可以包括:从多个时间段中选择具有最高吞吐量的N个时间段(N为大于或等于2的自然数)的步骤;以及将在N个时间段中的、其中超过基准等待时间处理的读取命令的数目最小的M个时间段中设置的M个命令延迟时间设置为候选命令延迟时间(M为大于或等于N的自然数)的步骤。
设置目标命令延迟时间的步骤可以包括:将在M个候选命令延迟时间中向存储器设备输入的读取请求的数目与在对应时间段期间接收到的读取命令的总数目的比率最低的候选命令延迟时间设置为目标命令延迟时间的步骤。
根据本公开的实施例,可以通过最小化处理从主机输入的读取命令的延迟来改善读取操作的性能。
另外,根据本公开的实施例,可以减少在在从存储器设备读取数据的过程中所需的负载。
附图说明
图1是图示了基于所公开技术的实施例的存储器系统的配置的示意图。
图2是示意地图示了基于所公开技术的实施例的存储器设备的框图。
图3是图示了基于所公开技术的实施例的存储器设备的字线和位线的结构的示图。
图4是图示了根据本公开的实施例的存储器系统的操作的示意图。
图5是图示了根据本公开的实施例的由存储器系统对读取命令进行合并和处理的操作的示图。
图6是图示了根据本公开的实施例的由存储器系统确定目标命令延迟时间的操作的示例的流程图。
图7是图示了根据本公开的实施例的针对多个时间段中的每个时间段的命令延迟时间的示例的示图。
图8是图示了从针对图7的多个时间段中的每个时间段的命令延迟时间确定目标命令延迟时间的示例的示图。
图9是图示了计算图8的吞吐量的方法的示例的示图。
图10是图示了选择图8中的N个时间段的示例的示图。
图11是图示了基于在图10中选择的N个时间段选择M个候选命令延迟时间的示例的示图。
图12是图示了从在图11中选择的M个候选命令延迟时间中选择目标命令延迟时间的示例的示图。
图13是图示了根据本公开的实施例的存储器系统的操作方法的示图。
图14是图示了设置图13的目标命令延迟时间的示例的示图。
图15是图示了基于所公开技术的一些实施例的计算系统的配置的示图。
具体实施方式
在下文中,将参照附图详细描述本公开的实施例。在整个说明书中,对“实施例”、“另一实施例”等的引用不一定仅是一个实施例,并且对任何这样的短语的不同引用不一定是相同的实施例。当在本文中使用时,术语“实施例”不一定指所有实施例。
图1是图示了基于所公开技术的实施例的存储器系统100的配置的示意图。
在图1的一些实施例中,存储器系统100可以包括被配置为存储数据的存储器设备110和被配置为控制存储器设备110的存储器控制器120。
存储器设备110可以包括多个存储器块,每个存储器块包括用于存储数据的多个存储器单元。存储器设备110可以被配置为响应于从存储器控制器120接收的控制信号而操作。存储器设备110的操作可以包括例如读取操作、编程操作(也称为“写入操作”)、擦除操作等。
存储器设备110中的存储器单元被用于存储数据,并且可以被布置在存储器单元阵列中。存储器单元阵列可以被划分为存储器单元的存储器块,并且每个块包括存储器单元的不同页。在NAND闪速存储器设备的典型实施方式中,存储器单元的页是可以被编程或写入的最小存储器单元,并且在存储器单元中存储的数据可以以块级进行擦除。
在一些实施方式中,存储器设备110可以被实现为各种类型中的任一种类型,诸如双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功率双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器、电阻式随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)或自旋转移转矩随机存取存储器(STT-RAM)。
存储器设备110可以以三维阵列结构实现。所公开技术的一些实施例可应用于具有电荷存储层的任何类型的闪速存储器设备。在一种实施方式中,电荷存储层可以由导电材料形成,并且这种电荷存储层可以被称为浮置栅极。在另一实施方式中,电荷存储层可以由绝缘材料形成,并且这种闪速存储器设备可以被称为电荷捕获闪存(CTF)。
存储器设备110可以被配置为从存储器控制器120接收命令和地址以访问使用该地址选择的存储器单元阵列的区域。也就是说,存储器设备110可以对具有与从存储器控制器120接收到的地址相对应的物理地址的存储器设备的存储器区域执行与接收到的命令相对应的操作。
在一些实施方式中,存储器设备110可以执行编程操作、读取操作、擦除操作等。在编程操作期间,存储器设备110可以在由地址选择的区域中写入数据。在读取操作期间,存储器设备110可以从由地址选择的存储器区域读取数据。在擦除操作期间,存储器设备110可以擦除在由地址选择的存储器区域中存储的数据。
存储器控制器120可以控制对存储器设备110执行的写入(编程)、读取、擦除和后台操作。例如,后台操作可以包括被实现为优化存储器设备110的整体性能的操作,诸如垃圾收集(GC)操作、损耗均衡(WL)操作和坏块管理(BBM)操作。
存储器控制器120可以在主机的请求下控制存储器设备110的操作。可替代地,当存储器控制器120执行存储器设备110的这种后台操作时,即使在没有来自主机的请求的情况下,存储器控制器120也可以控制存储器设备110的操作。
存储器控制器120和主机可以是分离的设备。在一些实施方式中,存储器控制器120和主机可以被集成并实现为单个设备。在下面的描述中,作为示例,将存储器控制器120和主机视为分离的设备。
参照图1,存储器控制器120可以包括主机接口(HOST I/F)121、存储器接口(MEMORY I/F)122和控制电路123。
主机接口121可以被配置为提供用于与主机通信的接口。
当从主机(HOST)接收命令时,控制电路123可以通过主机接口121接收该命令,并且可以执行处理接收到的命令的操作。
存储器接口122可以直接或间接地连接到存储器设备110以提供用于与存储器设备110通信的接口。也就是说,存储器接口122可以被配置为向存储器设备110和存储器控制器120提供接口,以用于使存储器控制器120基于来自控制电路123的控制信号和指令对存储器设备110执行存储器操作。
控制电路123可以被配置为通过存储器控制器120来控制存储器设备110的操作。例如,控制电路123可以包括处理器124和工作存储器125。控制电路123还可以包括错误检测/校正电路(ECC CIRCUIT)126。
处理器124可以控制存储器控制器120的整体操作。处理器124可以执行逻辑操作。处理器124可以通过主机接口121与主机通信。处理器124可以通过存储器接口122与存储器设备110通信。
处理器124可以被用于执行与闪存转换层(FTL)相关联的操作,以有效地管理对存储器系统100的存储器操作。处理器124可以通过FTL将由主机提供的逻辑块地址(LBA)转换为物理块地址(PBA)。FTL可以接收LBA,并且通过使用映射表将LBA转换成PBA。
基于映射单元,存在FTL可以采用的多种地址映射方法。典型的地址映射方法可以包括页映射方法、块映射方法和混合映射方法。
处理器124可以被配置为对从主机接收的数据进行随机化,以将经随机化的数据写入存储器设备110的存储器单元阵列。例如,处理器124可以通过使用随机化种子对从主机接收的数据进行随机化。经随机化的数据被提供给存储器设备110,并被写入存储器单元阵列。
处理器124可以被配置为在读取操作期间对从存储器设备110接收的数据进行去随机化。例如,处理器124可以通过使用去随机化种子来对从存储器设备110接收的数据进行去随机化。经去随机化的数据可以被输出到主机。
处理器124可以执行固件(FW)以控制存储器控制器120的操作。即,处理器124可以控制存储器控制器120的整体操作,并且为了执行逻辑操作,可以执行(驱动)在启动期间被加载到工作存储器125中的固件。
固件是指存储在某个非易失性存储器上的程序或软件,并且在存储器系统100内部被执行。
在一些实施方式中,固件可以包括各种功能层。例如,固件可以包括以下至少一项:闪存转换层(FTL)、主机接口层(HIL)和闪存接口层(FIL)。闪存转换层(FTL)被配置为将主机请求中的逻辑地址转换为存储器设备110的物理地址。主机接口层(HIL)被配置为解释主机向数据存储设备(诸如存储器系统100)发出的命令,并将命令传递给FTL。闪存接口层(FIL)被配置为将由FTL发出的命令传递到存储器设备110。
例如,固件可以被存储在存储器设备110中,然后被加载到工作存储器125中。
工作存储器125可以存储用于操作存储器控制器120的固件、程序代码、命令或数据片。工作存储器125可以包括例如静态RAM(SRAM)、动态RAM(DRAM)和同步RAM(SDRAM)中的至少一者作为易失性存储器。
错误检测/校正电路126可以被配置为通过使用错误检测和校正码来检测和校正数据中的一个或多个错误位。在一些实施方式中,经过错误检测和校正的数据可以包括存储在工作存储器125中的数据以及从存储器设备110取回的数据。
错误检测/校正电路126可以被实现为通过使用错误校正码来对数据进行解码。可以通过使用各种解码方案来实现错误检测/校正电路126。例如,可以使用使用非系统代码执行解码的解码器或使用系统代码执行解码的解码器。
在一些实施方式中,错误检测/校正电路126可以以扇区为基础检测一个或多个错误位。即,每个读取数据可以包括多个扇区。在本公开中,扇区可以指比闪速存储器的读取单元(例如,页)小的数据单元。可以基于地址来映射构成每个读取数据的扇区。
在一些实施方式中,错误检测/校正电路126可以计算误码率(BER),并且逐扇区地确定数据中的错误位的数目是否在错误校正能力之内。例如,如果BER大于基准值,则错误检测/校正电路126可以确定对应扇区中的错误位是不可校正的,并且对应扇区被标记为“失败”。如果BER小于或等于基准值,则错误检测/校正电路126可以确定对应扇区是可校正的,或者对应扇区可以被标记为“通过”。
错误检测/校正电路126可以对所有读取数据依次执行错误检测和校正操作。当读取数据中的扇区是可校正的时,错误检测/校正电路126可以前进到下一扇区,以检查在下一扇区上是否需要错误校正操作。在以这种方式完成对所有读取数据的错误检测和校正操作之后,错误检测/校正电路126可以获取关于在读取数据中哪个扇区被认为不可校正的信息。错误检测/校正电路126可以将这种信息(例如,不可校正的位的地址)提供给处理器124。
存储器系统100还可以包括总线127,以在存储器控制器120的组成元件121、122、124、125和126之间提供通道。总线127可以包括例如用于传递各种类型的控制信号和命令的控制总线以及用于传递各种类型的数据的数据总线。
作为示例,图1图示了存储器控制器120的上述组成元件121、122、124、125和126。要注意的是,在附图中图示的那些元件中的一些元件可以被省略,或者存储器控制器120的上述组成元件121、122、124、125和126中的一些组成元件可以被集成到单个元件中。另外,在一些实施方式中,可以将一个或多个其他组成元件添加到存储器控制器120的上述组成元件。
图2是示意地图示了基于所公开技术的实施例的存储器设备110框图。
在图2的一些实施方式中,基于所公开技术的实施例的存储器设备110可以包括:存储器单元阵列210、地址解码器220、读取/写入电路230、控制逻辑240和电压生成电路250。
存储器单元阵列210可以包括多个存储器块BLK1-BLKz,其中z是大于或等于2的自然数。
在多个存储器块BLK1-BLKz中,可以将多个字线WL和多个位线BL设置成行和列,并且可以布置多个存储器单元MC。
多个存储器块BLK1-BLKz可以通过多个字线WL连接到地址解码器220。多个存储器块BLK1-BLKz可以通过多个位线BL连接到读取/写入电路230。
多个存储器块BLK1-BLKz中的每个存储器块可以包括多个存储器单元。例如,多个存储器单元是非易失性存储器单元。在一些实施方式中,这种非易失性存储器单元可以被布置在垂直通道结构中。
在一些实施方式中,存储器单元阵列210可以被配置为具有二维结构的存储器单元阵列。在其他实施方式中,存储器单元阵列210可以被布置在三维结构中。
存储器单元阵列210中的多个存储器单元中的每个存储器单元可以存储至少一位数据。例如,存储器单元阵列210中的多个存储器单元中的每个存储器单元可以是被配置为存储一位数据的单级单元(SLC)、被配置为存储两位数据的多级单元(MLC)、被配置为存储三位数据的三级单元(TLC)、或被配置为存储四位数据的四级单元(QLC)。在另一示例中,存储器单元阵列210可以包括多个存储器单元,多个存储器单元中的每个存储器单元可以被配置为每个存储器单元存储至少五位数据。
参照图2,地址解码器220、读取/写入电路230、控制逻辑240和电压生成电路250可以共同地用作被配置为驱动存储器单元阵列210的外围电路。
地址解码器220可以通过多个字线WL连接到存储器单元阵列210。
地址解码器220可以被配置为响应于控制逻辑240的命令和控制信号而操作。
地址解码器220可以通过存储器设备110内部的输入/输出缓冲器(未示出)来接收地址。地址解码器220可以被配置为对所接收的地址中的块地址进行解码。地址解码器220可以基于经解码的块地址来选择至少一个存储器块。
地址解码器220可以从电压生成电路250接收读取电压Vread和通过电压Vpass。
在读取操作期间,地址解码器220可以将读取电压Vread施加到所选择的存储器块内的所选择的字线WL,并将通过电压Vpass施加到其余未选择的字线WL。
在编程验证操作期间,地址解码器220可以将由电压生成电路250生成的验证电压施加到所选择的存储器块内部的所选择的字线WL,并且可以将通过电压Vpass施加到其余未选择的字线WL。
地址解码器220可以被配置为对所接收的地址中的列地址进行解码。地址解码器220可以将经解码的列地址发送到读取/写入电路230。
存储器设备110可以逐页地执行读取操作和编程操作。当请求读取操作和编程操作时接收的地址可以包括以下至少一项:块地址、行地址和列地址。
地址解码器220可以基于块地址和行地址来选择一个存储器块和一个字线。列地址可以由地址解码器220解码,并被提供给读取/写入电路230。
地址解码器220可以包括以下至少一项:块解码器、行解码器、列解码器和地址缓冲器。
读取/写入电路230可以包括多个页缓冲器PB。当存储器单元阵列210执行读取操作时,读取/写入电路230可以用作“读取电路”。当存储器单元阵列210执行写入操作时,读取/写入电路230可以用作“写入电路”。
上述读取/写入电路230还被称为数据寄存器电路或包括多个页缓冲器PB的页缓冲器电路。读取/写入电路230可以包括参与数据处理功能的数据缓冲器,并且在一些实施方式中,还可以包括用于数据高速缓存的高速缓存缓冲器。
多个页缓冲器PB可以通过多个位线BL连接到存储器单元阵列210。为了在读取操作和编程验证操作期间检测或感测存储器单元的阈值电压Vth,多个页缓冲器PB可以连续地向连接到存储器单元的位线BL提供感测电流,以在感测节点处检测与根据对应存储器单元的编程状态而变化的电流量成比例的改变,并且可以将对应电压保持或锁存为感测数据。
读取/写入电路230可以响应于从控制逻辑240输出的页缓冲器控制信号而操作。
在读取操作期间,读取/写入电路230感测存储器单元的电压值,并且该电压值作为数据被读出。读取/写入电路230临时存储所取回的数据,并且将数据DATA输出到存储器设备110的输入/输出缓冲器。在实施例中,除页缓冲器PB或页寄存器之外,读取/写入电路230还可以包括列选择电路。
控制逻辑240可以连接到地址解码器220、读取/写入电路230和电压生成电路250。控制逻辑240可以通过存储器设备110的输入/输出缓冲器接收命令CMD和控制信号CTRL。
控制逻辑240可以被配置为响应于控制信号CTRL来控制存储器设备110的整体操作。控制逻辑240可以输出用于将多个页缓冲器PB的感测节点的电压电平调节到预充电电压电平的控制信号。
控制逻辑240可以控制读取/写入电路230以对存储器单元阵列210执行读取操作。电压生成电路250可以响应于从控制逻辑240输出的电压生成电路控制信号,生成在读取操作期间被使用的读取电压Vread和通过电压Vpass。
存储器设备110中的存储器块BLK可以包括多个页PG。在一些实施方式中,布置成列的多个存储器单元形成存储器单元串STR,并且布置成行的多个存储器单元形成存储器块。多个页PG中的每个页都耦合到字线WL中的一个字线,并且存储器单元串STR中的每个存储器单元串都耦合到位线BL中的每个位线。
在存储块BLK中,可以将多个字线WL和多个位线BL布置成行和列。例如,多个字线WL中的每个字线可以沿行方向布置,并且多个位线BL中的每个位线可以沿列方向布置。在另一示例中,多个字线WL中的每个字线可以沿列方向布置,并且多个位线BL中的每个位线可以沿行方向布置。
在一些实施方式中,多个字线WL和多个位线BL可以彼此相交,从而寻址多个存储器单元MC的阵列中的单个存储器单元。在一些实施方式中,每个存储器单元MC可以包括晶体管TR,该晶体管TR包括可以保持电荷的材料层。
例如,在每个存储器单元MC中布置的晶体管TR可以包括漏极、源极和栅极。晶体管TR的漏极(或源极)可以直接地或经由另一晶体管TR连接到对应的位线BL。晶体管TR的源极(或漏极)可以直接地或经由另一晶体管TR连接到源极线(源极线可以是接地)。晶体管TR的栅极可以包括浮置栅极(FG)和控制栅极(CG),浮置栅极(FG)由绝缘体围绕,栅极电压从字线WL被施加到控制栅极(CG)。
在多个存储器块BLK1-BLKz的每个存储器块中,第一选择线(还被称为源极选择线或漏极选择线)可以被附加地布置在两个最外字线中更靠近读取/写入电路230的第一最外字线的外部,并且第二选择线(还被称为漏极选择线或源极选择线)可以被附加地布置在两个最外字线中另一最外字线(即,第二最外字线)的外部。
在一些实施方式中,可以在第一最外字线和第一选择线之间附加地布置至少一个虚设字线。另外,可以在第二最外字线和第二选择线之间附加地布置至少一个虚设字线。
可以逐页执行存储器块的读取操作和编程操作(写入操作),并且可以逐个存储器块地执行擦除操作。
图3是图示了基于所公开技术的实施例的存储器设备110的字线WL和位线BL的结构的示图。
参照图3,存储器设备110具有核心区域和辅助区域(除核心区域以外的其余区域),存储器单元MC被布置在核心区域中,辅助区域包括被用于执行存储器单元阵列210的操作的电路系统。
在核心区域中,可以将在一个方向上布置的一定数目的存储器单元称为“页”PG,并且将串联耦合的一定数目的存储器单元称为“存储器单元串”STR。
字线WL1-WL9可以连接到行解码器310。位线BL可以连接到列解码器320。对应于图2的读取/写入电路230的数据寄存器330可以存在于在多个位线BL和列解码器320之间。
多个字线WL1-WL9可以对应于多个页PG。
例如,多个字线WL1-WL9中的每个字线可以对应于一个页PG,如图3所示。当多个字线WL1-WL9中的每个字线的大小较大时,多个字线WL1-WL9中的每个字线可以对应于至少两个(例如,两个或四个)页PG。每个页PG是编程操作和读取操作中的最小单元,并且相同页PG内的所有存储器单元MC可以在进行编程操作和读取操作时执行同时的操作。
多个位线BL可以连接到列解码器320。在一些实施方式中,多个位线BL可以被划分为奇数编号的位线BL和偶数编号的位线BL,使得一对奇数编号的位线和偶数编号的位线共同耦合到列解码器320。
在访问存储器单元MC时,行解码器310和列解码器320被用于基于地址来定位期望的存储器单元。
在一些实施方式中,数据寄存器330起重要作用,因为由存储器设备110进行的所有数据处理(包括编程和读取操作)都是经由数据寄存器330进行的。如果数据寄存器330的数据处理被延迟,则所有其他区域都需要等待,直到数据寄存器330完成数据处理,从而降低了存储器设备110的整体性能。
参照图3所示的示例,在一个存储器单元串STR中,多个晶体管TR1-TR9可以分别连接到多个字线WL1-WL9。在一些实施方式中,多个晶体管TR1-TR9对应于存储器单元MC。在该示例中,多个晶体管TR1-TR9包括控制栅极CG和浮置栅极FG。
多个字线WL1-WL9包括两个最外字线,即第一最外字线WL1和第二最外字线WL9。第一选择线DSL可以被附加地布置在第一最外字线WL1的外部,与第二最外字线WL9相比,该第一最外字线WL1更靠近数据寄存器330并且具有更短的信号路径。第二选择线SSL可以被附加地布置在第二最外字线WL9的外部。
由第一选择线DSL控制以导通/关断的第一选择晶体管D-TR具有连接到第一选择线DSL的栅极电极,但是不包括浮置栅极FG。由第二选择线SSL控制以导通/关断的第二选择晶体管S-TR具有连接到第二选择线SSL的栅极电极,但是不包括浮置栅极FG。
第一选择晶体管D-TR被用作将对应的存储器单元串STR连接到数据寄存器330的开关电路。第二选择晶体管S-TR被用作将对应的存储器单元串STR连接到源极线SL的开关。即,第一选择晶体管D-TR和第二选择晶体管S-TR可以被用于启用或禁用对应的存储器单元串STR。
在一些实施方式中,存储器系统100向第一选择晶体管D-TR的栅极电极施加导通电压Vcc,从而导通第一选择晶体管D-TR。此外,存储器系统100向第二选择晶体管S-TR的栅极电极施加关断电压(例如,0V),从而关断第二选择晶体管S-TR。
在读取操作或验证操作期间,存储器系统100同时导通第一选择晶体管D-TR和第二选择晶体管S-TR两者。因此,在读取操作或验证操作期间,电流可以流过对应的存储器单元串STR,并且漏到与接地相对应的源极线SL,使得位线BL的电压电平可以被测量。然而,在读取操作期间,在第一选择晶体管D-TR和第二选择晶体管S-TR之间的导通/关断定时中可能存在时间差。
存储器系统100可以在擦除操作期间通过源极线SL向衬底施加电压(例如+20V)。存储器系统100施加一定的电压以允许第一选择晶体管D-TR和第二选择晶体管S-TR两者都在擦除操作期间浮置。结果,所施加的擦除电压可以从所选择的存储器单元的浮置栅极FG去除电荷。
图4是图示了根据本公开的实施例的存储器系统100的操作的示意图。
参照图4,当处理从主机输入的包括RD_CMD_1、RD_CMD_2、RD_CMD_3、RD_CMD_4、RD_CMD_5、RD_CMD_6、...在内的多个读取命令时,存储器系统100的存储器控制器120可以合并和处理该多个读取命令中的至少两个读取命令。
多个读取命令的合并和处理可以指同时读取由多个读取命令所请求的数据,而不是单独读取由多个读取命令中的每个读取命令所请求的数据。例如,当合并和处理分别请求4KB的数据读取的三个读取命令时,存储器控制器120可以向存储器设备110仅输入一次4KB*3=12KB的数据读取请求,而不是向存储器设备110输入三次4KB的数据读取请求。在如上所述的合并和处理多个读取命令的情况下,可以减少向存储器设备110输入的用于读取相同数据大小的数据读取请求的数目。因此,可以减少在读取数据的过程中由存储器设备110消耗的资源量,结果,可以减少存储器系统100在从存储器设备读取数据的过程中所消耗的开销。
存储器控制器120可以在从主机输入的包括RD_CMD_1、RD_CMD_2、RD_CMD_3、RD_CMD_4、RD_CMD_5、RD_CMD_6、...在内的多个读取命令中选择可以合并和处理的读取命令,并且可以同时读取由对应读取命令所请求的数据。
在图4所示的示例中,存储器控制器120可以合并和处理读取命令RD_CMD_1、RD_CMD_2和RD_CMD_3。另外,存储器控制器120可以合并和处理读取命令RD_CMD_5和RD_CMD_6。
在这种情况下,存储器控制器120可以设置特定基准或标准,并且可以根据设置的基准来确定在从主机输入的多个读取命令中哪些读取命令将被合并处理。
在本公开的实施例中,存储器控制器120可以基于命令延迟时间来确定是否合并和处理读取命令。参照图5来描述该方面。
图5是图示了根据本公开的实施例的由存储器系统100对读取命令进行合并和处理的操作的示图。
参照图5,当在命令延迟时间T_DELAY期间从主机输入一个或多个读取命令时,存储器系统100的存储器控制器120可以合并和处理一个或多个读取命令。
在图5中,存储器控制器120可以合并和处理在相同命令延迟时间T_DELAY期间输入的三个读取命令RD_CMD_1、RD_CMD_2和RD_CMD_3。
另外,对于读取命令RD_CMD_4,没有在相同命令延迟时间T_DELAY期间输入的其他读取命令。因此,存储器控制器120可以单独处理读取命令RD_CMD_4,而无需将读取命令RD_CMD_4与其他读取命令合并和处理。
在图5中,存储器控制器120可以合并和处理在相同命令延迟时间T_DELAY期间输入的两个读取命令RD_CMD_5和RD_CMD_6。
图5图示了存储器控制器120合并和处理在相同命令延迟时间T_DELAY期间输入的所有读取命令的情况。然而,存储器控制器120可以合并和处理在相同命令延迟时间T_DELAY期间输入的读取命令中仅满足特定条件的读取命令。例如,存储器控制器120可以仅合并和处理在相同命令延迟时间T_DELAY期间输入的读取命令中用于读取在存储器设备110中的相同裸片的不同平面中存储的数据的读取命令。
如上所述,当存储器系统100的存储器控制器120合并和处理在命令延迟时间期间输入的多个读取命令时,处理读取命令的性能可能会根据命令延迟时间的设置方法而变化。
命令延迟时间越长,存储器控制器120合并和处理从主机输入的读取命令的可能性就越高。然而,从主机输入的读取命令可以在存储器控制器120中保持备用(standby)状态,直到读取命令被进行合并和处理。因此,处理向主机输入的读取命令并且对主机做出响应的定时可能被延迟,结果,主机的服务质量(QoS)可能会劣化。
相反,命令延迟时间越短,存储器控制器120可以处理从主机接收的每个读取命令的速度越快,从而改善主机的QoS。然而,由于要合并和处理的读取命令的数目被减少,因此存储器系统100为处理读取命令所消耗的开销可能会增加。
因此,通过同时考虑主机的QoS和处理读取命令所消耗的开销,存储器系统100的存储器控制器120可以将目标命令延迟时间设置为能够减少在从存储器设备读取数据的过程中所消耗的开销并且使处理从主机输入的命令的延迟最小化的最佳命令延迟时间。此外,存储器控制器120可以将目标命令延迟时间设置为用于确定是否合并和处理后续读取命令的基准。
在下文中,根据本公开的实施例描述了由存储器系统100确定目标命令延迟时间的操作。
图6是图示了根据本公开的实施例的由存储器系统100确定目标命令延迟时间的操作的示例的流程图。
参照图6,存储器系统100的存储器控制器120可以设置K个时间段(K为2或更大的自然数)(S610)。在一些实施例中,K的值和每个时间段的长度可以被设置为各种值。例如,存储器控制器120可以以日为单位设置20个时间段。
另外,存储器控制器120可以将索引I初始化为1,指示第一时间段(S620)。索引I被用于针对K个时间段中的每个时间段执行读取操作。
另外,存储器控制器120可以针对第I时间段设置命令延迟时间(S630)。然后,存储器控制器120可以基于针对第I时间段设置的命令延迟时间,在第I时间段期间,执行读取操作(即,处理从主机接收的多个读取命令)。
另外,存储器控制器120可以记录在第I时间段期间执行的读取操作的执行结果(S640)。在一些实施例中,可以使用诸如表或列表之类的数据结构来记录读取操作的执行结果。
存储器控制器120可以确定I是否等于K(S650)。当确定I等于K时(S650-是),这意味着已针对所有K个时间段记录了读取操作的执行结果。因此,存储器控制器120可以基于所记录的针对K个时间段的读取操作的执行结果来设置目标命令延迟时间(S660)。
当确定I的值不等于K时(S650-否),这意味着在K个时间段中剩余至少一个时间段,在该至少一个时间段中读取操作的执行结果尚未被记录。因此,存储器控制器120可以将I增加1(S670),然后再次返回到操作S630以针对下一时间段执行读取操作。
在下文中,将描述在图6中描述的内容的具体示例。首先,描述在操作S630中针对K个时间段中的每个时间段设置命令延迟时间的方法。
图7是图示了根据本公开的实施例的针对多个时间段中的每个时间段的命令延迟时间的示例的示图。
当针对多个时间段中的每个时间段设置命令延迟时间时,存储器系统100的存储器控制器120可以在特定的最大命令延迟时间内针对多个时间段中的每个时间段不同地设置命令延迟时间。
在图7中,假设最大命令延迟时间MAX_T_DELAY为20μs。在一些实施例中,当设置针对四个时间段的命令延迟时间时,存储器控制器120可以在最大命令延迟时间20μs内将针对四个时间段中的每个时间段的命令延迟时间分别设置为20μs、15μs、10μs、5μs。
在其他实施例中,当存储器控制器120设置针对20个时间段的命令延迟时间时,存储器控制器120可以将针对20个时间段的命令延迟时间设置为20μs、19μs、18μs、...、2μs、1μs,这些命令延迟时间彼此不同。
在下文中,描述了在图6的操作S660中基于针对多个时间段中的每个时间段记录的读取操作的执行结果确定目标命令延迟时间的具体操作。在下文中,假设设置了四个时间段,并且针对每个时间段设置的命令延迟时间分别为20μs、15μs、10μs、5μs。
图8是图示了从针对图7的多个时间段中的每个时间段的命令延迟时间确定目标命令延迟时间的示例的示图。
作为示例,图8图示了针对四个时间段中的每个时间段设置的命令延迟时间以及针对每个时间段执行的读取操作的执行结果。
在图8中,针对多个时间段中的每个时间段的读取操作的执行结果可以包括:1)在对应时间段期间输入的读取命令的数目;2)在对应时间段期间向存储器设备110输入的读取请求的数目;3)在对应时间段期间超过基准等待时间处理的读取命令的数目;以及4)针对对应时间段的吞吐量。
超过基准等待时间处理的读取命令可以表示所有读取命令中其处理时间(即,从输入来自主机的命令到对主机做出与该命令相关联的响应的时间)超过所设置的基准等待时间(例如200μs)的读取命令的数目。这可以是指示主机的QoS的指标,并且它可以意味着超过基准等待时间处理的读取命令的数目越少,主机的QoS越好。
吞吐量可以是指示存储器系统100处理从主机接收到的读取命令的性能的指标。吞吐量越高,存储器系统100处理读取命令的效率越高(即,使处理读取命令所消耗的开销最小化)。在一些实施例中,吞吐量的单位可以是(数据大小)/(时间)。
在本公开的实施例中,可以基于由在该时间段期间输入的读取命令所请求的读取数据的总大小和处理读取命令所花费的时间来确定针对每个时间段的吞吐量。下面参照图9详细描述确定吞吐量的示例。
在图8的时间段1中,时间段1中的命令延迟时间为20μs,从主机输入11000个读取命令,并且向存储器设备输入的读取请求的数目为9000。在从主机输入的读取命令中,超过基准等待时间处理的读取命令的数目为100,并且吞吐量为200K。
在时间段2中,命令延迟时间为15μs,从主机输入10000个读取命令,并且向存储器设备输入的读取请求的数目为9000。在从主机输入的读取命令中,超过基准等待时间处理的读取命令的数目为85,并且吞吐量为210K。
在时间段3中,命令延迟时间为10μs,从主机输入12000个读取命令,并且向存储器设备输入的读取请求的数目为11500。在从主机输入的读取命令中,超过基准等待时间处理的读取命令的数目为80,并且吞吐量为200K。
在时间段4中,命令延迟时间为5μs,从主机输入9000个读取命令,并且向存储器设备输入的读取请求的数目为8900。在从主机输入的读取命令中,超过基准等待时间处理的读取命令的数目为70,并且吞吐量为170K。
在一些实施例中,存储器控制器120可以基于针对每个时间段测量的吞吐量以及超过基准等待时间处理的读取命令的数目来设置候选命令延迟时间,以用于设置目标命令延迟时间。参照图10至图11详细描述该方面。
图9是图示了计算图8的吞吐量的方法的示例的示图。
参照图9,可以通过将在延迟时间T_DELAY期间从主机接收到的读取命令所请求的读取数据的大小之和除以繁忙时间T_BUSY来确定吞吐量,繁忙时间T_B USY是存储器系统100的存储器控制器120处于繁忙状态的时间。存储器控制器120的繁忙状态可以表示存储器控制器120处理一个或多个读取命令的状态。因此,存储器控制器120处于繁忙状态的时间可以指存储器控制器120处理读取命令所花费的时间。
繁忙时间T_BUSY可以是通过从命令延迟时间T_DELAY中减去空闲时间T_IDLE而得到的值,空闲时间T_IDLE是存储器系统100空闲的时间。
在图9中,存储器系统100处理八个读取命令,并假设由八个读取命令请求的读取数据的大小分别是A、B、C、D、E、F、G、H。在这种情况下,吞吐量可以被确定为(A+B+C+D+E+F+G+H)/(T_BUSY)。
例如,假设八个读取命令所请求的读取数据分别为4KB、8KB、4KB、4KB、4KB、8KB、16KB、4KB,总命令延迟时间为20μs,繁忙时间为15μs,并且空闲时间为5μs。在这种情况下,吞吐量为52/15(KB/μs)。
再如,假设八个读取命令所请求的读取数据分别为4KB、4KB、4KB、4KB、4KB、4KB、4KB、4KB,总命令延迟时间为30μs,繁忙时间为20μs,并且空闲时间为10μs。在这种情况下,吞吐量为32/20(KB/μs)。
在下文中,参照图10至图12描述由存储器系统100的存储器控制器120确定目标命令延迟时间的操作的示例。
首先,存储器控制器120可以在四个时间段中选择具有最高吞吐量的N个(N是自然数)时间段。如上所述,高吞吐量意味着存储器系统100高效地处理从主机输入的读取命令。
在下文中,以N=3的情况为例进行描述。
图10是图示了选择图8中的N个时间段的示例的示图。
在图10中,如果N为3,则存储器控制器120可以选择时间段1、2和3,时间段1、2和3是四个时间段中具有最高吞吐量的三个时间段。另一方面,具有最低吞吐量的时间段4未被选择。
另外,存储器控制器120可以在所选择的N个时间段中选择具有最小数目的超过基准等待时间处理的读取命令的M个时间段(M是小于N的自然数),并且可以将针对M个时间段设置的M个命令延迟时间设置为针对目标命令延迟时间的候选命令延迟时间。如上所述,超过基准等待时间处理的读取命令的数目小这一事实可以意味着主机的QoS良好。
在下文中,以M=2的情况为例进行描述。
图11是图示了基于在图10中选择的N个时间段(例如N=3)选择M个候选命令延迟时间(例如,M=2)的示例的示图。
在图11中,存储器控制器120可以选择时间段2和3作为候选时间段,这两个时间段是在图10中选择的三个时间段中超过基准等待时间处理的读取命令的数目最小的两个时间段。另外,存储器控制器120可以将针对时间段2设置的15μs的命令延迟时间和针对时间段3设置的10μs的命令延迟时间中的一者设置为目标命令延迟时间。
在本公开的实施例中,存储器控制器120可以将在M个候选命令延迟时间中向存储器设备输入的读取请求的数目与在对应时间段期间接收到的读取命令的总数目的比率最低的候选命令延迟时间设置为目标命令延迟时间。这是因为向存储器设备输入的读取请求的数目与读取命令的总数目的比率越低,则被合并和处理的读取命令与所有读取命令的比率越高。
图12是图示了从在图11中选择的M个候选命令延迟时间(例如M=2)中选择目标命令延迟时间的示例的示图。
参照图12,对于时间段2和时间段3(它们是在图11中选择的两个候选时间段),向存储器设备输入的读取请求的数目与在时间段2期间接收到的读取命令的总数目的比率为约90%(9000/10000)。另一方面,向存储器设备输入的读取请求的数目与在时间段3期间接收到的读取命令的总数目的比率为约95%(11500/12000)。因此,存储器控制器120可以将针对时间段2设置的15μs的命令延迟时间设置为目标命令延迟时间。
图13是图示了根据本公开的实施例的存储器系统100的操作方法的示图。
参照图13,存储器系统100的操作方法可以包括:通过针对多个时间段中的每个时间段设置命令延迟时间来执行读取操作(S1310),该命令延迟时间是用于确定是否合并和处理读取命令的基准。
在一些实施例中,可以在所设置的最大命令延迟时间内针对多个时间段中的每个时间段不同地设置命令延迟时间。
另外,存储器系统的操作方法可以包括:基于针对多个时间段中的每个时间段的读取操作的执行结果,从针对多个时间段中的每个时间段设置的命令延迟时间中,设置目标命令延迟时间(S1320),该目标命令延迟时间被用作用于确定是否合并和处理后续读取命令的基准。
在一些实施例中,针对多个时间段中的每个时间段的读取操作的执行结果可以包括:1)在该时间段期间输入的读取命令的数目、2)在该时间段期间向存储器设备输入的读取请求的数目、3)在该时间段期间超过基准等待时间处理的读取命令的数目以及4)吞吐量。吞吐量可以基于由在多个时间段中的每个时间段期间输入的读取命令所请求的读取数据的总大小以及处理读取命令所花费的时间而被确定。
在设置目标命令延迟时间时(S1320),可以基于针对多个时间段中的每个时间段的吞吐量以及超过基准等待时间处理的读取命令的数目来设置目标命令延迟时间。
图14是图示了设置图13的目标命令延迟时间的操作S1320的示例的示图。
参照图14,设置目标命令延迟时间的操作S1320可以包括:选择多个时间段中具有最高吞吐量的N个时间段(N是大于或等于2的自然数)(S1410)。此外,操作S1320可以包括将针对在N个时间段中的、其中超过基准等待时间处理的读取命令的数目最小的M个时间段中分别设置的M个命令延迟时间设置为针对目标命令延迟时间的候选命令延迟时间(M为小于或等于N的自然数)(S1420)。
设置目标命令延迟时间的操作S1320还可以包括:可选地,将在M个候选命令延迟时间中向存储器设备输入的读取请求的数目与在对应时间段期间接收到的读取命令的总数目的比率最低的候选命令延迟时间设置为目标命令延迟时间(S1430)。
在一些实施方式中,上述存储器控制器120的操作可以由控制电路123控制,并且可以按照使得处理器124执行(驱动)固件以控制存储器控制器120的整体操作的方式进行操作。
图15是图示了基于所公开技术的实施例的计算系统1500的配置的示图。
参照图15,计算系统1500可以包括:存储器系统100,被电连接到系统总线1560;中央处理单元(CPU)1510,被配置为控制计算系统1500的整体操作;随机存取存储器(RAM)1520,被配置为存储与计算系统1500的操作有关的数据和信息;用户界面/用户体验(UI/UX)模块1530,被配置为向用户提供用户环境;通信模块1540,被配置为与有线和/或无线类型的外部设备进行通信;以及电源管理模块1550,被配置为管理由计算系统1500使用的电源。
计算系统1500可以是个人计算机(PC),或者可以包括移动终端,诸如智能电话、平板计算机或各种其他电子设备中的任何一者。
计算系统1500还可以包括用于提供工作电压的电池、应用芯片组、图形相关模块、相机图像处理器和DRAM。当然,计算系统1500可以包括本领域技术人员理解的其他元件。
存储器系统100不仅可以包括被配置为将数据存储在磁盘中的设备(诸如硬盘驱动器(HDD)),还可以包括被配置为将数据存储在非易失性存储器中的设备(诸如固态驱动装置(SSD)、通用闪速存储设备或嵌入式MMC(eMMC)设备)。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、相变RAM(PRAM)、磁RAM(MRAM),电阻式RAM(RRAM)、铁电RAM(FRAM)等。另外,存储器系统100可以被实现为各种类型的存储设备中的任何一种,并且被安装在各种电子设备中的任何一种电子设备上或内部。
基于上述公开技术的实施例,可以有利地减少或最小化存储器系统的操作延迟时间。另外,基于所公开技术的实施例,可以有利地减少或最小化在调用特定功能的过程中发生的开销。尽管出于说明性目的已经以特定的细节和变化的细节描述了所公开技术的各种实施例,但是本领域技术人员将理解,可以基于本文公开的内容进行各种修改、添加和替换。
Claims (12)
1.一种存储器系统,包括:
存储器设备;以及
存储器控制器,用于与所述存储器设备通信并且控制所述存储器设备;
其中所述存储器控制器:
通过针对多个时间段中的每个时间段设置用于确定是否合并和处理读取命令的命令延迟时间,执行读取操作,并且
基于针对所述多个时间段中的每个时间段的所述读取操作的执行结果,从针对所述多个时间段中的每个时间段设置的所述命令延迟时间中,设置目标命令延迟时间,所述目标命令延迟时间被用于确定是否合并和处理后续读取命令与一个或多个先前读取命令。
2.根据权利要求1所述的存储器系统,其中所述存储器控制器在所设置的最大命令延迟时间内针对所述多个时间段中的每个时间段不同地设置所述命令延迟时间。
3.根据权利要求1所述的存储器系统,其中针对所述多个时间段中的每个时间段的所述读取操作的所述执行结果包括:在对应时间段期间输入的读取命令的数目、在所述对应时间段期间向所述存储器设备输入的读取请求的数目、在所述对应时间段期间超过基准等待时间处理的读取命令的数目、以及吞吐量,并且
其中所述吞吐量基于由在所述多个时间段中的每个时间段期间输入的所述读取命令所请求的读取数据的总大小以及处理所述读取命令所花费的时间而被确定。
4.根据权利要求3所述的存储器系统,其中所述存储器控制器基于针对所述多个时间段中的每个时间段的所述吞吐量以及超过所述基准等待时间处理的读取命令的数目来设置一个或多个候选命令延迟时间,所述一个或多个候选命令延迟时间用于设置所述目标命令延迟时间。
5.根据权利要求4所述的存储器系统,其中所述存储器控制器:
从所述多个时间段中选择具有最高吞吐量的N个时间段,并且
将在所述N个时间段中的、其中超过所述基准等待时间处理的读取命令的数目最小的M个时间段中设置的M个命令延迟时间设置为所述候选命令延迟时间,并且
其中N为大于或等于2的自然数,并且M为小于或等于N的自然数。
6.根据权利要求5所述的存储器系统,其中所述存储器控制器将在所述M个候选命令延迟时间中向所述存储器设备输入的读取请求的数目与在所述对应时间段期间接收到的读取命令的总数目的比率最低的所述候选命令延迟时间设置为所述目标命令延迟时间。
7.一种包括存储器设备的存储器系统的操作方法,包括:
通过针对多个时间段中的每个时间段设置用于确定是否合并和处理读取命令的命令延迟时间,执行读取操作,并且
基于针对所述多个时间段中的每个时间段的所述读取操作的执行结果,从针对所述多个时间段中的每个时间段设置的所述命令延迟时间中,设置目标命令延迟时间,所述目标命令延迟时间被用于确定是否合并和处理后续读取命令与一个或多个先前读取命令。
8.根据权利要求7所述的操作方法,其中针对所述多个时间段中的每个时间段的所述命令延迟时间在所设置的最大命令延迟时间内被不同地设置。
9.根据权利要求7所述的操作系统,其中针对所述多个时间段中的每个时间段的所述读取操作的所述执行结果包括:在对应时间段期间输入的读取命令的数目、在所述对应时间段期间向所述存储器设备输入的读取请求的数目、在所述对应时间段期间超过基准等待时间处理的读取命令的数目、以及吞吐量,并且
其中所述吞吐量基于由在所述多个时间段中的每个时间段期间输入的所述读取命令所请求的读取数据的总大小以及处理所述读取命令所花费的时间而被确定。
10.根据权利要求9所述的操作方法,其中设置所述目标命令延迟时间包括:基于针对所述多个时间段中的每个时间段的所述吞吐量以及超过所述基准等待时间处理的读取命令的数目来设置一个或多个候选命令延迟时间,所述一个或多个候选命令延迟时间用于设置所述目标命令延迟时间。
11.根据权利要求10所述的操作方法,其中设置所述目标命令延迟时间包括:
从所述多个时间段中选择具有最高吞吐量的N个时间段,并且
将在所述N个时间段中的、其中超过所述基准等待时间处理的读取命令的数目最小的M个时间段中设置的M个命令延迟时间设置为所述候选命令延迟时间,并且
其中N为大于或等于2的自然数,并且M为小于或等于N的自然数。
12.根据权利要求11所述的操作方法,其中设置所述目标命令延迟时间包括:将在所述M个候选命令延迟时间中向所述存储器设备输入的读取请求的数目与在所述对应时间段期间接收到的读取命令的总数目的比率最低的所述候选命令延迟时间设置为所述目标命令延迟时间。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2020-0140109 | 2020-10-27 | ||
KR1020200140109A KR20220055717A (ko) | 2020-10-27 | 2020-10-27 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114489466A true CN114489466A (zh) | 2022-05-13 |
Family
ID=81258643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110395387.5A Withdrawn CN114489466A (zh) | 2020-10-27 | 2021-04-13 | 存储器系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11342013B2 (zh) |
KR (1) | KR20220055717A (zh) |
CN (1) | CN114489466A (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023000212A1 (en) * | 2021-07-21 | 2023-01-26 | Micron Technology, Inc. | Memory command aggregation to improve sequential memory command performance |
US11954348B2 (en) | 2022-04-08 | 2024-04-09 | Netapp, Inc. | Combining data block I/O and checksum block I/O into a single I/O operation during processing by a storage stack |
US20230325115A1 (en) * | 2022-04-08 | 2023-10-12 | Netapp Inc. | Accumulating i/o operations into a single combined i/o operation for implementation by an underlying storage device layer |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5488709B2 (ja) * | 2010-10-14 | 2014-05-14 | 富士通株式会社 | ストレージ制御装置における基準時間設定方法 |
KR101198139B1 (ko) * | 2010-11-23 | 2012-11-12 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치의 프리차지 신호 발생 회로 |
US20140189204A1 (en) * | 2012-12-28 | 2014-07-03 | Hitachi, Ltd. | Information processing apparatus and cache control method |
KR102450514B1 (ko) | 2017-09-19 | 2022-10-05 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법 및 그것을 포함하는 저장 장치의 동작 방법 |
KR20190088734A (ko) | 2018-01-19 | 2019-07-29 | 에스케이하이닉스 주식회사 | 메모리 인터페이스와, 이를 포함하는 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
-
2020
- 2020-10-27 KR KR1020200140109A patent/KR20220055717A/ko unknown
-
2021
- 2021-03-23 US US17/209,956 patent/US11342013B2/en active Active
- 2021-04-13 CN CN202110395387.5A patent/CN114489466A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US11342013B2 (en) | 2022-05-24 |
US20220130438A1 (en) | 2022-04-28 |
KR20220055717A (ko) | 2022-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11342013B2 (en) | Memory system and operating method to set target command delay time to merge and process read commands | |
US11513738B2 (en) | Memory system for processing a write request and migrating data in read-intensive state and operating method thereof | |
US11301174B2 (en) | Memory system, memory controller and method for operating memory system | |
US11409470B2 (en) | Memory system, memory controller, and method of operating memory system | |
US11630764B2 (en) | Memory system, memory controller, and method for operating same | |
CN112349315B (zh) | 存储器系统、存储器控制器和操作方法 | |
US20230221895A1 (en) | Memory system and operating method of memory system storing doorbell information in the buffer memory | |
US11922040B2 (en) | Extended super memory blocks in memory systems | |
US11474726B2 (en) | Memory system, memory controller, and operation method thereof | |
US20210382655A1 (en) | Memory device, memory system, and operation method of memory device | |
US11893255B2 (en) | Memory system for managing data corresponding to a plurality of zones and operating method thereof | |
US11404137B1 (en) | Memory system and operating method of memory system | |
US11500771B2 (en) | Memory system, memory controller, and method of operating memory system | |
US20230297502A1 (en) | Memory system, memory controller and operating method of the memory system for controlling garbage collection | |
US11669266B2 (en) | Memory system and operating method of memory system | |
US11640263B2 (en) | Memory system and operating method thereof | |
US11507323B2 (en) | Memory device and operating method thereof | |
US11636007B2 (en) | Memory system and operating method thereof for flushing data in data cache with parity | |
US11507509B2 (en) | Memory system, memory controller and method for operating memory system for determining whether to perform direct write based on reference write size | |
US20230385193A1 (en) | Memory system, memory controller and operating method thereof for determining garbage collection victim block | |
US20230376246A1 (en) | Memory system, memory controller and operating method of the memory system operating as read boost mode | |
US11822819B2 (en) | Memory system and operating method thereof | |
US20230376211A1 (en) | Controller for controlling one-time programmable memory, system, and operation method thereof | |
US20240004566A1 (en) | Memory system for managing namespace using write pointer and write count, memory controller, and method for operating memory system | |
US20230205687A1 (en) | Controller and operating method thereof |
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: 20220513 |
|
WW01 | Invention patent application withdrawn after publication |