CN114564145A - 存储器系统及其操作方法 - Google Patents
存储器系统及其操作方法 Download PDFInfo
- Publication number
- CN114564145A CN114564145A CN202110800720.6A CN202110800720A CN114564145A CN 114564145 A CN114564145 A CN 114564145A CN 202110800720 A CN202110800720 A CN 202110800720A CN 114564145 A CN114564145 A CN 114564145A
- Authority
- CN
- China
- Prior art keywords
- command
- memory
- execution
- host
- memory 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
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)
- Read Only Memory (AREA)
Abstract
本公开的实施例涉及一种存储器系统及其操作方法。根据本公开的实施例,存储器系统可以将第一命令从主机提取到命令队列中,当从主机接收到针对第一命令的锁定请求时,暂停第一命令的执行,并且当接收到针对第一命令的解锁请求时或在第一命令被暂停与锁定请求一起发送的暂停时间值相对应的时间量之后,恢复第一命令的执行。
Description
相关申请的交叉引用
本申请要求于2020年11月27日提交的第10-2020-0162017号韩国专利申请的优先权,其通过整体引用并入本文。
技术领域
本公开的各个实施例涉及一种存储器系统及其操作方法。
背景技术
存储器系统包括基于来自主机(诸如,计算机、服务器、智能电话、平板PC或其它电子设备)的请求来存储数据的数据存储设备。存储器系统的示例从传统的基于磁盘的硬盘驱动装置(HDD)到基于半导体的数据存储设备(诸如固态驱动装置(SSD)、通用闪存设备(UFS)或嵌入式MMC(eMMC)设备)。
存储器系统还可以包括用于控制存储器设备的存储器控制器。存储器控制器可以从主机接收命令,并且基于接收到的命令,可以在存储器系统中的存储器设备上执行命令或控制读取/写入/擦除操作。存储器控制器可以被用于执行固件操作以执行用于控制这种操作的逻辑操作。
通常,存储器系统可以根据输入顺序处理从主机接收的命令。因此,可以在处理先前输入到存储器系统的命令之后处理稍后输入到存储器系统的命令。
发明内容
本公开的实施例可以提供能够使得主机能够控制命令的执行顺序的存储器系统及其操作方法。
此外,本公开的实施例可以提供能够防止由于正在处理大量数据的命令而延迟其它命令的执行时间的问题的存储器系统及其操作方法。
在一个方面中,本公开的实施例可以提供包括存储器设备和存储器控制器的存储器系统,该存储器控制器用于与存储器设备通信并且控制存储器设备处理由主机请求的命令。
存储器控制器可以将第一命令从主机提取到命令队列中。
存储器控制器当从主机接收到针对第一命令的锁定请求时,可以暂停第一命令的执行。
存储器控制器当接收到针对第一命令的解锁请求时,或者在第一命令的执行被暂停与与锁定请求一起被发送的暂停时间值相对应的时间量之后,可以恢复第一命令的执行。
作为示例,存储器控制器可以包括锁定器,该锁定器是用于存储主机针对其发送锁定请求的命令的缓冲器,并且当从主机接收到针对第一命令的锁定请求时,还可以将第一命令存储在锁定器中。在这种情况下,存储器控制器当恢复第一命令的执行时,可以从锁定器弹出第一命令。
作为另一个示例,存储器控制器当从主机接收到针对第一命令的锁定请求时,可以中止第一命令。在这种情况下,存储器控制器当恢复第一命令的执行时,可以将第一命令再次提取到命令队列中。
在另一个方面中,本公开的实施例可以提供存储器系统的操作方法。
存储器系统的操作方法可以包括将第一命令从主机提取到命令队列中。
此外,存储器系统的操作方法可以包括从主机接收针对第一命令的锁定请求。
此外,存储器系统的操作方法可以包括当从主机接收到针对第一命令的锁定请求时暂停第一命令的执行。
此外,存储器系统的操作方法可以包括当接收到针对第一命令的解锁请求时,或者在第一命令的执行被暂停与锁定请求一起被发送的暂停时间值相对应的时间量之后,恢复第一命令的执行。
作为示例,暂停第一命令的执行可以包括:当从主机接收到针对第一命令的锁定请求时将第一命令存储在锁定器中,并且锁定器可以是用于存储主机针对其发送锁定请求的命令的缓冲器。在这种情况下,存储器系统的操作方法还可以包括当恢复第一命令的执行时从锁定器弹出(popping)第一命令。
作为另一个示例,暂停第一命令的执行可以包括当从主机接收到针对第一命令的锁定请求时中止第一命令。在这种情况下,存储器系统的操作方法还可以包括当恢复第一命令的执行时,将第一命令再次提取到命令队列中。
在另一个方面中,本公开的实施例可以提供控制器的操作方法。
控制器的操作方法可以包括调度命令。
控制器的操作方法可以包括执行所调度的命令。
执行所调度的命令可以包括当响应于来自主机的第一请求而中断所调度的命令中的当前命令的执行时,执行所调度的命令中的后续命令。
执行所调度的命令可以包括响应于来自主机的第二请求或在预定的时间量之后,在后续命令的执行之后执行被执行中断的命令。
根据本公开的实施例,可以使得主机能够控制命令的执行顺序。
此外,根据本公开的实施例,可以防止由于正在处理大量数据的命令而延迟其它命令的执行时间的问题。
附图说明
图1是示出基于所公开的技术的实施例的存储器系统的配置的示意图。
图2是示意性地示出基于所公开的技术的实施例的存储器设备的框图。
图3是示出基于所公开的技术的实施例的存储器设备的字线和位线的结构的图。
图4是示意性地示出根据本公开的实施例的存储器系统的操作的图。
图5是示出根据本公开的实施例的由存储器控制器执行命令的示例的图。
图6是示出根据本公开的实施例的存储器控制器基于锁定请求暂停第一命令的执行的示例的图。
图7是示出根据本公开的实施例的存储器控制器恢复第一命令的执行的示例的图。
图8是示出根据本公开的实施例的存储器控制器恢复第一命令的执行的另一个示例的图。
图9是示出根据本公开的实施例的存储器控制器处理锁定请求的示例的图。
图10是示出存储器控制器的操作的示例的图。
图11是示出图9中描述的存储器控制器恢复第一命令的执行的示例的图。
图12是示出图9中描述的存储器控制器在暂停第一命令的执行之后处理第二命令的示例的图。
图13是示出图12中描述的存储器控制器的状态的示例的图。
图14是示出根据本公开的实施例的存储器控制器处理锁定请求的另一个示例的图。
图15是示出图14中描述的存储器控制器恢复第一命令的执行的示例的图。
图16是示出根据本公开的实施例的存储器系统的操作方法的图。
图17是示出基于所公开的技术的一些实施例的计算系统的配置的图。
具体实施方式
在下文中,将参考附图详细描述本公开的实施例。在整个说明书中,对“实施例”、“另一个实施例”等的引用不一定仅指一个实施例,并且对任何这种短语的不同引用不一定是指相同的实施例。当在本文中使用时,术语“实施例”不一定指所有实施例。
图1是示出基于所公开的技术的实施例的存储器系统100的示意性配置的图。
在一些实现中,存储器系统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执行存储器设备的这种后台操作时,即使没有来自主机的请求,存储器控制器120也可以控制存储器设备110的操作。
存储器控制器120和主机可以是单独的设备。在一些实现中,存储器控制器120和主机可以被集成并且实现为单个设备。在以下描述中,作为示例,存储器控制器120和主机将作为单独的设备被讨论。
参考图1,存储器控制器120可以包括存储器接口122、控制电路123和主机接口121。
主机接口121可以被配置为提供用于与主机通信的接口。
当从主机HOST接收到命令时,控制电路123可以通过主机接口121接收命令并且可以执行处理接收到的命令的操作。
存储器接口122可以被直接地或间接地连接到存储器设备110以提供用于与存储器设备110通信的接口。即,存储器接口122可以被配置为针对存储器设备110以及存储器控制器120提供接口,该接口用于存储器控制器120基于来自控制电路123的控制信号和指令对存储器设备110执行存储器操作。
控制电路123可以被配置为通过存储器控制器120控制存储器设备110的操作。例如,控制电路123可以包括处理器124和工作存储器125。控制电路123还可以包括错误检测/校正电路(ECC电路)126等。
处理器124可以控制存储器控制器12的整体操作。处理器124可以执行逻辑操作。处理器124可以通过主机接口121与主机HOST通信。处理器124可以通过存储器接口122与存储器设备110通信。
处理器124可以被用于执行与闪存转换层(FTL)相关联的操作以有效地管理存储器系统100上的存储器操作。处理器124可以将由主机提供的逻辑块地址(LBA)转换成通过FTL的物理块地址(PBA)。FTL可以接收LBA并且通过使用映射表将LBA转换成PBA。
基于映射单位,存在可以由FTL采用的多种地址映射方法。典型的地址映射方法可以包括页映射方法、块映射方法和混合映射方法。
处理器124可以被配置为随机化从主机接收的数据以将随机化的数据写入存储器单元阵列。例如,处理器124可以通过使用随机化种子来随机化从主机接收的数据。随机化的数据被提供给存储器设备110并且写入存储器单元阵列。
处理器124可以被配置为在读取操作期间对从存储器设备110接收的数据去随机化。例如,处理器124可以通过使用去随机化的种子去随机化从存储器设备110接收的数据。去随机化的数据可以被输出到主机HOST。
处理器124可以执行固件(FW)以控制存储器控制器120的操作。换句话说,处理器124可以控制存储器控制器120的整体操作,并且为了执行逻辑操作,可以在引导期间执行(驱动)加载到工作存储器125中的固件。
固件是指存储在某个非易失性存储器上的程序或软件,并且在存储器系统100内被执行。
在一些实现中,固件可以包括各种功能层。例如,固件可以包括以下至少一项:闪存转换层(FTL),被配置为将主机HOST请求中的逻辑地址转换为存储器设备110的物理地址;主机接口层(HIL),被配置为解释主机HOST向数据存储设备(诸如,存储器系统100)发出的命令并且将该命令传送到FTL;以及闪存接口层(FTL),被配置为将由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的框图。
在一些实现中,基于所公开的技术的实施例的存储器设备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)。作为另一个示例,被包括在存储器单元阵列210中的多个存储器单元中的每个存储器单元可以是被配置为每个存储器单元存储两位数据的多级单元(MLC)。作为另一个示例,被包括在存储器单元阵列210中的多个存储器单元中的每个存储器单元可以是被配置为每个存储器单元存储三位数据的三级单元(TLC)。作为另一个示例,被包括在存储器单元阵列210中的多个存储器单元中的每个存储器单元可以是被配置为每个存储器单元存储四位数据的四级单元(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供应感测电流,以在感测节点处检测与电流量成比例的变化,该电流量取决于对应的存储器单元的编程状态而改变,并且多个页缓冲器PB可以保持或锁存对应的电压作为感测数据。
读取/写入电路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。在一些实现中,按列布置的多个存储器单元形成存储器单元串,并且按行布置的多个存储器单元形成存储器块。多个页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)以及从字线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中的每个字线可以对应于如图3所示的一个页PG。当多个字线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将预定的导通电压Vcc施加到第一选择晶体管D-TR的栅极电极,从而导通第一选择晶体管D-TR,并且将预定的关断电压(例如,0V)施加到第二选择晶体管S-TR的栅极电极,从而关断第二选择晶体管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,存储器系统100的存储器控制器120可以将命令CMD从主机HOST提取到命令队列CMD_Q中。在这种情况下,存储器控制器120可以通过主机接口121将命令CMD提取到命令队列CMD_Q。
命令队列CMD_Q可以位于存储器控制器120的工作存储器125上,并且可以使用数据结构(诸如,线性队列、循环队列和链表)来实现。
此外,存储器控制器120将命令提取到命令队列CMD_Q可以是指存储器控制器120复制存储在主机的特定区域中的命令并且将其存储在命令队列CMD_Q中。
此外,存储器控制器120的处理器124可以使存储在命令队列CMD_Q中的命令CMD出队并且执行。例如,如果要执行的命令是读取命令,则处理器124可以从存储器设备110读取数据,并且如果要执行的命令是写入命令,则处理器124可以将数据写入存储器设备110。
另外,存储器控制器120可以从主机HOST接收针对命令CMD的锁定请求或解锁请求。针对命令的锁定请求是指示暂停命令的执行的请求,并且针对命令的解锁请求是指示恢复命令的执行的请求。下面将参考图6至图7详细描述针对命令的锁定请求和解锁请求的细节。在这种情况下,存储器控制器120可以通过主机接口121接收针对命令CMD的锁定请求或解锁请求,并且将接收到的锁定请求或解锁请求发送到处理器124。
图5是示出根据本公开的实施例的由存储器控制器120执行命令的示例的图。
参考图5,存储器系统100的存储器控制器120可以从主机HOST提取第一命令CMD_1和第二命令CMD_2。
作为示例,主机HOST可以包括其中的单独的主机命令队列,并且可以通过内部调度器将命令存储在主机命令队列中。此外,主机可以将命令存储在主机命令队列中,然后设置门铃寄存器以通知存储器系统100要被处理的命令被存储在主机命令队列中。
在确认门铃寄存器被设置以后,存储器控制器120可以将命令从主机命令队列提取到命令队列CMD_Q中。在这种情况下,存储器控制器120可以根据预设的调度策略将从主机接收到的命令存储在命令队列CMD_Q中。
此外,存储器控制器120的处理器124可以执行从主机HOST提取的第一命令CMD_1和第二命令CMD_2。在这种情况下,第一命令CMD_1和第二命令CMD_2的执行的顺序可以由存储器控制器120调度。因此,一般而言,除了发送请求以中止命令的方法之外,主机不能控制由存储器控制器120执行命令的顺序。
然而,如果命令执行顺序仅由存储器控制器120确定,则可以延迟由存储器控制器100执行特定命令的时序。因此,可能存在以下问题:由使用主机的用户所体验的性能可能下降。
例如,当同时地处理小型数据(例如,网页)时,主机可以下载大型数据(例如,软件、视频文件、图像文件)。在这种情况下,存储器系统100可以执行来自主机的用于处理大型数据的大数据命令,然后执行用于处理小型数据的小数据命令。
因此,小数据命令可以在存储器系统100完成大数据命令的执行之后被执行。因此,对小数据命令的响应时间可以被延迟执行大数据命令所需的时间。
然而,主机的用户通常可能打算快速处理小数据。因此,如果延迟处理小型数据的操作,使用主机的用户可能觉得主机的性能已经变差。
因此,为了解决这个问题,可能需要一种主机可以控制存储器系统100使得在处理大数据命令之前处理小数据命令的方法。在下文中,在本发明的实施例中,将描述主机向存储器系统100发送锁定请求的操作。
图6是示出根据本公开的实施例的存储器控制器120基于锁定请求而暂停第一命令CMD_1的执行的示例的图。
参考图6,主机HOST可以将针对第一命令CMD_1的锁定请求发送到存储器系统100的存储器控制器120。针对第一命令CMD_1的锁定请求是指示暂停第一命令CMD_1的执行的请求。例如,主机可以通过单独的命令或电信号向存储器控制器120发送锁定请求。
当从主机接收到针对第一命令CMD_1的锁定请求时,存储器控制器120的处理器124可以暂停第一命令CMD_1的执行。
图6仅示出了当处理器124正在执行第一命令CMD_1时从主机HOST接收到针对第一命令CMD_1的锁定请求的情况。然而,在执行第一命令CMD_1之前,可以从主机接收针对第一命令CMD_1的锁定请求。在这种情况下,处理器124可以将第一命令CMD_1变为不可执行状态,或者如果第一命令CMD_1还没有入队到命令队列CMD_Q则禁止第一命令CMD_1被入队到命令队列CMD_Q,或者使第一命令CMD_1从命令队列出队然后将它存储在稍后描述的锁定器中。
在以下情况下,存储器控制器120可以恢复执行已经被暂停的第一命令CMD_1的执行。
图7是示出根据本公开的实施例的存储器控制器120恢复第一命令CMD_1的执行的示例的图。
参考图7,在第一命令CMD_1的执行被来自主机的锁定请求暂停之后,主机HOST可以将针对其执行被暂停的第一命令CMD_1的解锁请求发送到存储器控制器120。针对第一命令CMD_1的解锁请求是指恢复暂停的第一命令CMD_1的执行的请求。与锁定请求类似,主机可以通过单独的命令或电信号将解锁请求发送到存储器控制器120。
当从主机HOST接收到针对第一命令CMD_1的解锁请求时,存储器控制器120的处理器124可以恢复暂停的第一命令CMD_1的执行。如果第一命令CMD_1还未被执行并且因此由于锁定请求而处于不可执行状态,则处理器124可以由于解锁请求而将第一命令CMD_1改变为可执行状态。
图8是示出根据本公开的实施例的存储器控制器120恢复第一命令CMD_1的执行的另一个示例的图。
参考图8,代替如图7所示向存储器控制器120明确地发送解锁请求,主机HOST可以通过还发送关于暂停时间SUSPEND_TIME的信息来指示恢复第一命令CMD_1的执行的时间点,暂停时间SUSPEND_TIME是当发送锁定请求时可以暂停第一命令CMD_1的执行的最长时间。
在这种情况下,如果在暂停第一命令CMD_1的执行之后经过了超过暂停时间SUSPEND_TIME的时间,即使没有来自主机HOST的解锁请求,存储器控制器120也可以自动地恢复第一命令CMD_1的执行。如果第一命令CMD_1处于被执行之前的状态,则处理器124可以将第一命令CMD_1改变为可执行状态。
当在恢复第一命令CMD_1的执行之后第一命令CMD_1的执行完成时,处理器124可以将针对第一命令CMD_1的执行结果的响应消息发送到主机HOST。
如图6至图8中所述,主机HOST可以基于到存储器控制器120的针对第一命令CMD_1的锁定请求来控制第一命令CMD_1的执行。如果第一命令CMD_1是针对处理大量数据的命令,则主机HOST可以将针对第一命令CMD_1的锁定请求发送到存储器控制器120以暂停第一命令CMD_1的执行,以控制存储器控制器120处理其它命令。结果,主机可以间接地控制命令的执行顺序,并且防止由于第一命令CMD_1而导致需要快速处理QoS满足的其它命令的执行中的延迟。
在下文中,将描述存储器控制器120处理从主机HOST接收的锁定请求和解锁请求的详细操作。
图9是示出根据本公开的实施例的存储器控制器120处理锁定请求的示例的图。
参考图9,主机HOST可以将针对第一命令CMD_1的锁定请求发送到存储器控制器120。当存储器控制器120的处理器124从主机HOST接收到针对第一命令CMD_1的锁定请求时,处理器124可以暂停第一命令CMD_1的执行。
在这种情况下,在暂停第一命令CMD_1的执行之后,处理器124可以将第一命令CMD_1存储在锁定器中。另一方面,如果处理器124在执行第一命令CMD_1之前从主机接收到针对第一命令CMD_1的锁定请求,则处理器124可以将第一命令CMD_1从命令队列CMD_Q移动到锁定器LOCKER。
锁定器是用于存储主机针对其发送锁定请求的命令的区域,并且可以位于存储器控制器120内部。可以在主机发送针对命令的解锁请求之后或者在命令的执行被暂停对应于与针对命令的锁定请求一起发送的暂停时间值相对应的时间量之后,执行存储在锁定器LOCKER中的命令。此外,当对应的命令被存储在锁定器中时,存储器控制器120可以不执行对应的命令,而是可以执行其它命令。
当将针对命令的锁定请求发送到存储器控制器120时,主机HOST还可以发送针对命令的密钥信息。在这种情况下,存储器控制器120可以将针对对应的命令的密钥信息与该命令一起存储在锁定器中。此外,当处理针对对应的命令的解锁请求时,存储器控制器120可以通过将与解锁请求一起发送的密钥信息和存储在锁定器中的密钥信息进行比较来确定是否解锁对应的命令。
图10是示出存储器控制器120的操作的示例的图。
参考图10,存储器控制器120的处理器124可以使命令队列CMD_Q中的第一命令CMD_1出队并且执行(①)。此外,当从主机HOST接收到针对第一命令CMD_1的锁定请求时(②),处理器124可以暂停第一命令CMD_1的执行并且将第一命令CMD_1存储在锁定器LOCKER中(③)。
在这种情况下,当将第一命令CMD_1存储在锁定器LOCKER中时,在锁定器LOCKER中暂停第一命令CMD_1的执行之前,处理器124还可以存储指示第一命令CMD_1的状态的执行状态信息EXE_STATE。
例如,第一命令CMD_1的执行状态信息EXE_STATE可以包括与第一命令CMD_1有关的信息(例如,LBA/长度/时隙信息)、处理的数据的大小信息(例如,写入存储器设备110的数据的大小)、或者元信息(例如,如果第一命令CMD_1是读取命令,则高速缓存命中发生的位置,如果第一命令CMD_1是写入命令,则关于打开存储器块的信息,以及页信息(PI))。
当恢复第一命令CMD_1的执行时,处理器124可以基于存储在锁定器LOCKER中的第一命令CMD_1的执行状态信息EXE_STATE来确定将要恢复第一命令CMD_1的执行的位置,并且可以在恢复第一命令CMD_1的执行时跳过对已经处理的数据的操作,并且只对未处理的数据执行操作。
图11是示出图9中描述的存储器控制器120恢复第一命令CMD_1的执行的示例的图。
参考图11,当执行第一命令CMD_1时,主机HOST可以将针对第一命令CMD_1的锁定请求发送到存储器控制器120。当从主机HOST接收到针对第一命令CMD_1的锁定请求时,存储器控制器120的处理器124可以暂停执行第一命令CMD_1并且将第一命令CMD_1存储在锁定器LOCKER中。
此后,主机HOST可以将针对第一命令CMD_1的解锁请求发送到存储器控制器120。当存储器控制器120的处理器124从主机接收到针对第一命令CMD_1的解锁请求并且恢复第一命令CMD_1的执行时,处理器124可以执行从锁定器取回第一命令CMD_1然后移除的操作,或者执行使存储在锁定器中的第一命令CMD_1无效的操作。第一命令CMD_1的执行可以由于针对第一命令CMD_1的解锁请求而被恢复。
此外,即使在第一命令CMD_1的执行被暂停对应于与针对第一命令CMD_1的锁定请求一起发送的暂停时间值的时间量之后恢复第一命令CMD_1时,存储器控制器120的处理器124可以从锁定器移除第一命令CMD_1。
图12是示出图9中描述的存储器控制器120在暂停第一命令CMD_1的执行之后处理第二命令CMD_2的示例的图。
参考图12,当第一命令CMD_1正在被执行时,主机HOST可以将针对第一命令CMD_1的锁定请求发送到存储器控制器120。当从主机HOST接收到针对第一命令CMD_1的锁定请求时,存储器控制器120的处理器124可以暂停第一命令CMD_1的执行并且将第一命令CMD_1存储在锁定器LOCKER中。
此后,存储器控制器120的处理器124可以使第二命令CMD_2从命令队列CMD_Q出队并且执行。因此,即使不直接地请求第二命令CMD_2的执行,主机HOST也可以通过暂停第一命令CMD_1的执行来提前第二命令CMD_2的执行时间。
图13是示出图12中描述的存储器控制器120的状态的示例的图。
参考图13,当从主机接收到针对第一命令CMD_1的锁定请求时(①),存储器控制器120的处理器124可以暂停第一命令CMD_1的执行并且将第一命令CMD_1存储在锁定器LOCKER中(②)。
处理器124可以从命令队列CMD_Q出队第二命令CMD_2,然后执行第二命令CMD_2(③)。
图14是示出根据本公开的实施例的存储器控制器120处理锁定请求的另一个示例的图。
参考图14,当第一命令CMD_1正在被执行时,主机HOST可以将针对第一命令CMD_1的锁定请求发送到存储器控制器120。当从主机接收到针对第一命令CMD_1的锁定请求时,存储器控制器120的处理器124可以暂停第一命令CMD_1的执行。
此后,处理器124可以中止第一命令CMD_1,而不是将第一命令CMD_1存储在如图9所示的锁定器中。当第一命令CMD_1被中止时,除了第一命令CMD_1的执行中断点之外,可以从存储器控制器120擦除与第一命令CMD_1有关的信息。在这种情况下,存储器控制器120具有不需要单独地维护图7的锁定器的优点。然而,为了从第一命令CMD_1的执行的中断点再次执行第一命令CMD_1,需要再次从主机HOST提取第一命令CMD_1。
图15是示出图14中描述的存储器控制器120恢复第一命令的执行的示例的图。
参考图15,当第一命令CMD_1正在被执行时,主机HOST可以将针对第一命令CMD_1的锁定请求发送到存储器控制器120。当从主机HOST接收到针对第一命令CMD_1的锁定请求时,存储器控制器120的处理器124可以暂停第一命令CMD_1的执行并且中止第一命令CMD_1。
此后,主机HOST可以将针对第一命令CMD_1的解锁请求发送到存储器控制器120。当从主机接收到针对第一命令CMD_1的解锁请求时,存储器控制器120的处理器124可以将第一命令CMD_1再次提取到命令队列CMD_Q中,以便再次执行中止的第一命令CMD_1。
即使在第一命令CMD_1的执行被暂停对应于与针对第一命令CMD_1的锁定请求一起发送的暂停时间值的时间量之后第一命令CMD_1的执行被恢复时,存储器控制器120的处理器可以将第一命令CMD_1提取回到命令队列CMD_Q。
图16是示出根据本公开的实施例的存储器系统100的操作方法的图。
参考图16,存储器系统100的操作方法可以包括将从主机HOST接收到的第一命令CMD_1提取到命令队列CMD_Q中(S1610)。
此外,存储器系统100的操作方法可以包括从主机HOST接收针对第一命令CMD_1的锁定请求(S1620)。
此外,存储器系统100的操作方法可以包括:当从主机HOST接收到针对第一命令CMD_1的锁定请求时,暂停第一命令CMD_1的执行(S1630)。
此外,存储器系统100的操作方法可以包括:当接收到针对第一命令的解锁请求或者在第一命令CMD_1的执行被暂停与锁定请求一起发送的暂停时间值相对应的时间量之后,恢复第一命令的执行(S1640)。
作为示例,在操作S1630中,当从主机HOST接收到针对第一命令CMD_1的锁定请求时,存储器系统100可以将第一命令CMD_1存储在锁定器中。锁定器是用于存储主机针对其发送锁定请求的命令的缓冲器。
当将第一命令CMD_1存储在锁定器中时,关于第一命令CMD_1的执行状态的信息可以被一起存储在锁定器中。
在这种情况下,存储器系统100的操作方法还可以包括:当恢复第一命令CMD_1的执行时,从锁定器弹出第一命令CMD_1。
此外,存储器系统100的操作方法还可以包括在将第一命令CMD_1存储在锁定器中之后执行第二命令CMD_2,第二命令CMD_2是存储在命令队列CMD_Q中的命令中的一个命令。
作为另一个示例,当在操作S1620中从主机接收到针对第一命令CMD_1的锁定请求时,存储器系统100可以中止第一命令CMD_1。
在这种情况下,存储器系统100的操作方法还可以包括:当恢复第一命令CMD_1的执行时,将第一命令CMD_1再次提取到命令队列CMD_Q中。
在一些实现中,上述存储器控制器120的操作可以由控制电路123控制,并且可以以处理器124执行(驱动)固件的方式被执行,存储器控制器120的整体操作被编程在该固件中。
图17是示出基于所公开的技术的实施例的计算系统1700的配置的图。
参考图17,基于所公开的技术的实施例的计算系统1700可以包括:存储器系统100,被电气地连接到系统总线1760;CPU 1710,被配置为控制计算系统1700的整体操作;RAM 1720,被配置为存储与计算系统1700的操作有关的数据和信息;用户接口/用户体验(UI/UX)模块1730,被配置为向用户提供用户环境;通信模块1740,被配置为以有线和/或无线方式与外部设备通信;以及功率管理模块1750,被配置为管理由计算系统1700使用的功率。
计算系统1700可以是个人计算机(PC)或者可以包括移动终端,诸如智能电话、平板电脑或各种电子设备。
计算系统1700还可以包括用于供应操作电压的电池,并且还可以包括应用芯片组、图形相关的模块、摄像头图像处理器以及DRAM。其它元件对于本领域技术人员来说将是明显的。
存储器系统100不仅可以包括被配置为在磁盘(诸如,硬盘驱动装置(HDD))中存储数据的设备,而且还可以包括被配置为在非易失性存储器(诸如,固态驱动装置(SSD)、通用闪存设备或嵌入式MMC(eMMC)设备)中存储数据的设备。非易失性存储器可以包括:只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、相变RAM(PRAM)、磁性RAM(MRAM)、电阻性RAM(RRAM)、铁电RAM(FRAM)等。此外,存储器系统100可以被实现为各种类型的存储设备并且被安装在各种电子设备内部。
本文描述的方法、过程和/或操作可以由要由计算机、处理器、控制器或其它信号处理设备执行的代码或指令来执行。计算机、处理器、控制器或其它信号处理设备可以是本文描述的那些计算机、处理器、控制器或其它信号处理设备或者可以是本文描述的元件之外的计算机、处理器、控制器或其它信号处理设备。因为形成方法(或计算机、处理器、控制器或其它信号处理设备的操作)的基础的算法被详细描述,用于实现方法实施例的操作的代码或指令可以将计算机、处理器、控制器或其它信号处理设备变换为用于执行本文的方法的专用处理器。
例如,当至少部分地以软件实现时,控制器、处理器、引擎、设备、模块、单元、接口、驱动器、发生器和其它信号生成和信号处理特征可以包括用于存储例如由计算机、处理器、微处理器、控制器或其它信号处理设备执行的代码或指令的存储器或其它存储设备。计算机、处理器、微处理器、控制器或其它信号处理设备可以是本文描述的那些计算机、处理器、微处理器、控制器或其它信号处理设备或者可以是本文描述的元素之外的一个。因为形成方法(或计算机、处理器、微处理器、控制器或其它信号处理设备的操作)的基础的算法被详细描述,用于实现方法实施例的操作的代码或指令可以将计算机、处理器、微处理器、控制器或其它信号处理设备变换为用于执行本文的方法的专用处理器。
基于上述公开的技术的实施例,可以有利地减少或最小化存储器系统的操作延迟时间。此外,基于所公开的技术的实施例,可以有利地减少或最小化调用特定功能的过程中发生的开销。尽管出于说明的目的已经用特定的细节和变化的细节描述了所公开的技术的各个实施例,但是本领域技术人员将理解,可以基于本公开中被公开或说明的内容进行各种修改、添加和替换。
本发明的上述实施例旨在说明而非限制本发明。各种备选方案和等效方案都是可能的。本发明不受本文描述的实施例的限制。考虑到本公开显而易见的其它添加、删减或修改旨在落入所附权利要求的范围内。
Claims (14)
1.一种存储器系统,包括:
存储器设备;以及
存储器控制器,用于与所述存储器设备通信并且控制所述存储器设备以处理由主机请求的命令,
其中所述存储器控制器:
将第一命令从所述主机提取到命令队列中,
当从所述主机接收到针对所述第一命令的锁定请求时,暂停所述第一命令的执行,以及
当接收到针对所述第一命令的解锁请求时,或者在所述第一命令的所述执行被暂停与所述锁定请求一起被发送的暂停时间值相对应的时间量之后,恢复所述第一命令的所述执行。
2.根据权利要求1所述的存储器系统,其中所述存储器控制器包括锁定器,所述锁定器是用于存储所述主机针对其发送所述锁定请求的命令的缓冲器,并且当从所述主机接收到针对所述第一命令的所述锁定请求时,还将所述第一命令存储在所述锁定器中。
3.根据权利要求2所述的存储器系统,其中所述存储器控制器当将所述第一命令存储在所述锁定器中时,还在所述锁定器中存储执行状态信息,所述执行状态信息指示在暂停所述第一命令的所述执行之前的所述第一命令的状态。
4.根据权利要求2所述的存储器系统,其中所述存储器控制器当恢复所述第一命令的所述执行时,还从所述锁定器取回所述第一命令。
5.根据权利要求2所述的存储器系统,其中所述存储器控制器在将所述第一命令存储在所述锁定器中之后,还执行第二命令,所述第二命令是被存储在所述命令队列中的所述命令中的一个命令。
6.根据权利要求1所述的存储器系统,其中所述存储器控制器当从所述主机接收到针对所述第一命令的所述锁定请求时,还中止所述第一命令。
7.根据权利要求6所述的存储器系统,其中所述存储器控制器当恢复所述第一命令的所述执行时,还将所述第一命令再次提取到所述命令队列中。
8.一种存储器系统的操作方法,包括:
将第一命令从主机提取到命令队列中;
从所述主机接收针对所述第一命令的锁定请求;
当从所述主机接收到针对所述第一命令的所述锁定请求时,暂停所述第一命令的执行,以及
当接收到针对所述第一命令的解锁请求时,或者在所述第一命令的所述执行被暂停与所述锁定请求一起被发送的暂停时间值相对应的时间量之后,恢复所述第一命令的所述执行。
9.根据权利要求8所述的存储器系统的操作方法,其中暂停所述第一命令的执行包括:当从所述主机接收到针对所述第一命令的所述锁定请求时,将所述第一命令存储在锁定器中,所述锁定器是用于存储所述主机针对其发送所述锁定请求的命令的缓冲器。
10.根据权利要求9所述的存储器系统的操作方法,其中将所述第一命令存储在所述锁定器中包括:在所述锁定器中存储执行状态信息,所述执行状态信息指示在暂停所述第一命令的所述执行之前的所述第一命令的状态。
11.根据权利要求9所述的存储器系统的操作方法,还包括:当恢复所述第一命令的所述执行时,从所述锁定器取回所述第一命令。
12.根据权利要求9所述的存储器系统的操作方法,还包括:在将所述第一命令存储在所述锁定器中之后执行第二命令,所述第二命令是被存储在所述命令队列中的所述命令中的一个命令。
13.根据权利要求8所述的存储器系统的操作方法,其中暂停所述第一命令的所述执行包括:当从所述主机接收到针对所述第一命令的所述锁定请求时,中止所述第一命令。
14.根据权利要求13所述的存储器系统的操作方法,还包括:当恢复所述第一命令的所述执行时,将所述第一命令再次提取到所述命令队列中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2020-0162017 | 2020-11-27 | ||
KR1020200162017A KR20220073998A (ko) | 2020-11-27 | 2020-11-27 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114564145A true CN114564145A (zh) | 2022-05-31 |
Family
ID=81712288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110800720.6A Pending CN114564145A (zh) | 2020-11-27 | 2021-07-15 | 存储器系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11775214B2 (zh) |
KR (1) | KR20220073998A (zh) |
CN (1) | CN114564145A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230145114A1 (en) * | 2021-11-09 | 2023-05-11 | Micron Technology, Inc. | Memory system directed memory address management techniques |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7343432B1 (en) * | 2003-09-19 | 2008-03-11 | Emc Corporation | Message based global distributed locks with automatic expiration for indicating that said locks is expired |
KR101051703B1 (ko) * | 2004-08-09 | 2011-07-25 | 삼성전자주식회사 | 서스펜드/리쥼 기능을 갖는 집적 회로 카드 및 집적 회로카드 시스템 |
US8392668B2 (en) * | 2005-04-04 | 2013-03-05 | Hewlett-Packard Development Company, L.P. | Distributed-state-information-based distributed computing systems and methods and protocols for managing distributed state information |
US8935431B2 (en) * | 2010-12-17 | 2015-01-13 | International Business Machines Corporation | Highly scalable and distributed data sharing and storage |
WO2013070800A1 (en) * | 2011-11-07 | 2013-05-16 | Nexgen Storage, Inc. | Primary data storage system with quality of service |
US8825953B2 (en) * | 2012-01-17 | 2014-09-02 | International Business Machines Corporation | Demoting tracks from a first cache to a second cache by using a stride number ordering of strides in the second cache to consolidate strides in the second cache |
KR102031952B1 (ko) | 2012-03-29 | 2019-10-14 | 삼성전자주식회사 | 메모리 장치 및 메모리 장치의 동작방법 |
US9268495B2 (en) * | 2013-03-15 | 2016-02-23 | Apple Inc. | Managing I/O priorities |
US9760281B2 (en) * | 2015-03-27 | 2017-09-12 | Intel Corporation | Sequential write stream management |
US10025536B2 (en) * | 2016-02-10 | 2018-07-17 | Sandisk Technologies Llc | Memory system and method for simplifying scheduling on a flash interface module and reducing latencies in a multi-die environment |
JP6448570B2 (ja) * | 2016-03-08 | 2019-01-09 | 東芝メモリ株式会社 | ストレージシステム、情報処理システムおよび制御方法 |
US10229084B2 (en) * | 2016-06-23 | 2019-03-12 | International Business Machines Corporation | Synchronous input / output hardware acknowledgement of write completions |
US10474389B2 (en) * | 2016-07-05 | 2019-11-12 | Hewlett Packard Enterprise Development Lp | Write tracking for memories |
KR20200023376A (ko) | 2017-06-28 | 2020-03-04 | 에이알엠 리미티드 | 메모리 영역 로킹 |
KR20200098336A (ko) * | 2019-02-12 | 2020-08-20 | 삼성전자주식회사 | 서스펜드 모드를 제어하는 방법 및 이를 포함하는 메모리 컨트롤러 |
CN112148644B (zh) * | 2019-06-27 | 2024-05-07 | 伊姆西Ip控股有限责任公司 | 处理输入/输出请求的方法、装置和计算机程序产品 |
US20200089537A1 (en) * | 2019-11-20 | 2020-03-19 | Intel Corporation | Apparatus and method for bandwidth allocation and quality of service management in a storage device shared by multiple tenants |
JP7366795B2 (ja) * | 2020-02-14 | 2023-10-23 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US11093174B1 (en) * | 2020-02-19 | 2021-08-17 | Dell Products L.P. | Information handling system having improved host memory buffer for input/output requests |
KR20230002812A (ko) * | 2020-05-19 | 2023-01-05 | 양쯔 메모리 테크놀로지스 씨오., 엘티디. | 메모리 디바이스 및 그 프로그램 동작 |
JP7443195B2 (ja) * | 2020-08-21 | 2024-03-05 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US20220137856A1 (en) * | 2020-10-29 | 2022-05-05 | Micron Technology, Inc. | Program operation execution during program operation suspend |
US11875036B2 (en) * | 2021-01-13 | 2024-01-16 | Samsung Electronics Co., Ltd. | Computing system including host and storage system and having increased write performance |
US11755222B2 (en) * | 2021-02-26 | 2023-09-12 | EMC IP Holding Company LLC | File based encryption for multi-pathing devices |
-
2020
- 2020-11-27 KR KR1020200162017A patent/KR20220073998A/ko unknown
-
2021
- 2021-06-03 US US17/338,246 patent/US11775214B2/en active Active
- 2021-07-15 CN CN202110800720.6A patent/CN114564145A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US11775214B2 (en) | 2023-10-03 |
KR20220073998A (ko) | 2022-06-03 |
US20220171571A1 (en) | 2022-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11513738B2 (en) | Memory system for processing a write request and migrating data in read-intensive state and operating method thereof | |
US20230333932A1 (en) | Memory system and operating method thereof | |
US11409470B2 (en) | Memory system, memory controller, and method of operating memory system | |
CN113806254A (zh) | 存储器系统、存储器控制器及存储器系统的操作方法 | |
US20230221895A1 (en) | Memory system and operating method of memory system storing doorbell information in the buffer memory | |
US11775214B2 (en) | Memory system for suspending and resuming execution of command according to lock or unlock request, and operating method thereof | |
US11972127B2 (en) | Memory system executing background operation using external device and operation method thereof | |
US11604734B2 (en) | Memory system for determining whether to control a point of execution time of a command based on valid page counts of target memory blocks and operating method thereof | |
US11404137B1 (en) | Memory system and operating method of memory system | |
US11960359B2 (en) | Memory system, memory controller and operating method of memory system | |
US11640263B2 (en) | Memory system and operating method thereof | |
US11275524B2 (en) | Memory system, memory controller, and operation method of memory system | |
US11880599B2 (en) | Memory system and operating method of the memory system inputting an additional read enable toggle signal to output status information of memory device | |
US11669266B2 (en) | Memory system and operating method of memory system | |
US20230195193A1 (en) | Controller executing activation mode or low power mode based on state of multiple sub-circuits and operating method thereof | |
US11899584B2 (en) | System setting operating frequency of random access memory based on cache hit ratio and operating method thereof | |
US11507323B2 (en) | Memory device and operating method thereof | |
US20230205687A1 (en) | Controller and operating method thereof | |
US20230297502A1 (en) | Memory system, memory controller and operating method of the memory system for controlling garbage collection | |
US20230289260A1 (en) | Controller and operating method of the controller for determining reliability data based on syndrome weight | |
US20230376246A1 (en) | Memory system, memory controller and operating method of the memory system operating as read boost mode | |
CN115757217A (zh) | 确定目标状态读取检查时段的存储器系统及其操作方法 |
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 |