CN114185480A - 存储器系统和数据处理系统 - Google Patents
存储器系统和数据处理系统 Download PDFInfo
- Publication number
- CN114185480A CN114185480A CN202110664807.5A CN202110664807A CN114185480A CN 114185480 A CN114185480 A CN 114185480A CN 202110664807 A CN202110664807 A CN 202110664807A CN 114185480 A CN114185480 A CN 114185480A
- Authority
- CN
- China
- Prior art keywords
- command
- memory system
- host
- queue
- commands
- 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/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
- 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
-
- 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/0656—Data buffering 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本公开的各实施例涉及存储器系统和数据处理系统。一种数据处理系统,包括:存储器系统,用于存储数据和信息;以及主机,与存储器系统通信并且包括用于使要由存储器系统处理的命令排队的提交队列,该主机被配置为向存储器系统提供指示提交队列的尾部的提交队列尾部指针以及关于命令的命令信息,其中存储器系统被配置为:接收关于命令的命令信息,基于命令信息对命令执行预操作,并且基于预操作的结果从提交队列获取命令。
Description
相关申请的交叉引用
本专利文件要求于2020年9月15日提交的第10-2020-0118428号韩国专利申请的优先权和权益,其全部内容通过引用并入本文。
技术领域
所公开的技术的各种实施例涉及存储器系统以及包括存储器系统的数据处理系统。
背景技术
计算机环境范例已经向普适计算过渡,这使得计算系统可以随时随地的被使用。结果,便携式电子设备(诸如,移动电话、数码相机和膝上型计算机)的使用迅速增加。这些便携式电子设备通常使用具有用于存储数据的一个或多个存储器设备的存储器系统。存储器系统可以被用作便携式电子设备的主存储器设备或辅助存储器设备。
由于存储器系统不需要机械驱动部分,因此存储器系统提供了诸如出色的稳定性和耐用性、高信息访问速度以及低功耗等的优点。具有这种优点的存储器系统的示例包括通用串行总线(USB)存储器设备、具有各种接口的存储器卡以及固态驱动器(SSD)。
发明内容
各种实施例旨在提供存储器系统,该存储器系统甚至在主机按响门铃之后获取命令之前也能够执行用于处理命令的预操作。
各种实施例旨在提供存储器系统,该存储器系统能够通过执行预操作来减少命令的处理时间并且成功地向主机提供响应。
本实施例要实现的技术问题不限于上述技术问题,并且可以从以下实施例中推断出其它技术问题。
根据实施例,数据处理系统包括:存储器系统,用于存储数据和信息;以及主机,与存储器系统通信并且包括用于使要由存储器系统处理的命令排队的提交队列,该主机被配置为向存储器系统提供指示提交队列的尾部的提交队列尾部指针以及关于命令的命令信息,其中存储器系统被配置为:接收关于命令的命令信息;基于命令信息对命令执行预操作;以及基于预操作的结果从提交队列中获取命令。根据实施例,存储器设备,被配置为存储数据;主机接口,与主机通信并且被配置为从主机接收提交队列尾部指针以及关于与尾部指针相对应的命令的命令信息,基于命令信息对该命令执行预操作,并且基于预操作的结果从主机的提交队列获取命令;命令队列,被配置为使获取的命令排队;以及处理器,与存储器设备通信并且被配置为控制存储器设备以处理在命令队列中排队的命令。根据本公开,可以提供存储器系统,该存储器系统即使在主机按响门铃之后获取命令之前也能够执行用于处理命令的预操作。
根据本公开,可以提供能够通过执行预操作来减少命令的处理时间并且成功地向主机提供响应的存储器系统。
在本公开中获得的效果不限于上述效果,并且本领域技术人员将从以下描述中清楚地理解其它未提及的效果。
附图说明
图1是示出根据所公开的技术的实施例的数据处理系统的图。
图2是用于说明命令队列接口操作的图。
图3是示出根据所公开的技术的实施例的进一步存储命令信息的门铃寄存器的图。
图4是示出根据所公开的技术的实施例的数据处理系统的操作的图。
图5A至图5C是用于解释根据所公开的技术的实施例的预操作的图。
具体实施方式
在下文中,将参考附图详细描述本公开的优选的实施例。注意,在以下描述中,将仅描述理解根据本公开的操作所必需的部分,并且将省略除这些部分以外的其它部分的描述,以避免模糊本公开的主题。
图1是示意性地示出了根据所公开的技术的实施例的包括存储器系统110的数据处理系统100的示例的图。
参考图1,数据处理系统100可以包括主机102,该主机102被可操作地耦合到与主机102通信的存储器系统110。
主机102可以包括各种便携式电子设备(诸如,移动电话、MP3播放器、膝上型计算机)中的任一种便携式电子设备或各种非便携式电子设备(诸如,台式计算机、游戏机、电视(TV)或投影仪)中的任一种非便携式电子设备。
主机102可以包括至少一个操作系统(OS),该操作系统可以管理和控制主机102的整体功能和操作,并且使用数据处理系统100或存储器系统110提供主机102与用户之间的操作。OS可以支持与用户的使用目的以及用途相对应的功能和操作。例如,取决于主机102的可移动性,OS可以被划分为一般OS和移动OS。取决于用户的环境,一般OS可以被划分为个人OS和企业OS。
存储器系统110可以操作为响应于来自主机102的请求而存储用于主机102的数据。存储器系统110的非限制性示例可以包括固态驱动器(SSD)、多媒体卡(MMC)、安全数字(SD)卡、通用串行总线(USB)设备、通用闪速存储(UFS)设备、紧凑型闪存(CF)卡、智能媒体卡(SMC)、个人计算机存储器卡国际协会(PCMCIA)卡或记忆棒。MMC可以包括嵌入式MMC(eMMC)、尺寸缩小的MMC(RS-MMC)、micro-MMC等。SD卡可以包括mini-SD卡和/或micro-SD卡。
存储器系统110可以被体现为各种类型的存储设备。这种存储设备的示例可以包括但不限于易失性存储器设备(诸如,动态随机存取存储器(DRAM)和静态RAM(SRAM))以及非易失性存储器设备(诸如,只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(MRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(RRAM或ReRAM)或闪速存储器)。闪速存储器可以具有三维(3D)堆叠结构。
存储器系统110的非限制性应用示例可以包括:计算机、超级移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板电脑、平板电脑、无线电话、移动电话、智能电话、e-book、便携式多媒体播放器(PMP)、便携式游戏机、导航系统、黑匣子、数码相机、数字多媒体广播(DMB)播放器、3维电视、智能电视、数字音频记录器、数字音频播放器、数字图像记录器、数字图像播放器、数字视频记录器、数字视频播放器、构成数据中心的存储设备、能够在无线环境中发送/接收信息的设备、构成家庭网络的各种电子设备中的一种电子设备、构成计算机网络的各种电子设备中的一种电子设备、构成远程信息处理网络的各种电子设备中的一种电子设备、射频识别(RFID)设备或者构成计算系统的各种部件中的一种部件。
存储器系统110可以通过使用支持诸如NVMe的协议的命令队列接口与主机102进行通信。命令队列接口可以基于队列对来支持主机102与存储器系统110之间的接口,该队列对包括用于输入所请求的命令的提交队列SQ以及用于记录命令的处理结果的完成队列CQ。
图2是用于解释命令队列接口操作的图。
主机102可以生成包括提交队列1022和完成队列1024的队列对。当主机102中存在多个核心时,可以生成提交队列1022和完成队列1024的队列对以对应于多个核心中的一个核心。根据实施例,队列对可以被存储在主机102的存储器中。
存储器系统110可以包括门铃寄存器202,以便执行命令队列接口操作。存储器系统100使用基于门铃的主机接口与主机102进行通信,该基于门铃的主机接口允许主机102在用于存储器系统的存储器环上放置描述符并且向存储器系统100发出指针更新写入,该指针更新写入被称为“门铃”。
门铃寄存器202可以是用于控制由主机102生成的队列对的寄存器。图2示出一个门铃寄存器202作为示例,但是当主机102中存在多个核心时,可以在存储器系统110中包括与核心的数目相同数目的门铃寄存器202。门铃寄存器202可以存储提交队列尾部指针2022和完成队列头部指针2024,提交队列尾部指针2022指示提交队列1022的尾部,完成队列头部指针2024指示完成队列1024的头部。存储器系统110可以通过参考门铃寄存器202访问提交队列1022和完成队列1024来与主机102执行命令队列接口操作。
在步骤S1中,主机102可以在提交队列1022中使命令排队,以便请求存储器系统110执行命令。在步骤S2中,主机102可以更新提交队列尾部指针2022并且将更新的提交队列尾部指针2022提供给存储器系统110。存储器系统110可以在门铃寄存器202中存储更新的提交队列尾部指针2022。
在步骤S3中,存储器系统110可以从提交队列1022获取命令。在步骤S4中,存储器系统110可以处理获取的命令。
在步骤S5中,在已经处理命令之后,存储器系统110可以在完成队列1024中记录命令处理的完成。例如,存储器系统110可以在完成队列1024中写入完成队列条目。在这种情况下,完成队列头部指针2024可以增加。在步骤S6中,存储器系统110可以生成中断信号。
在步骤S7中,主机102可以完成命令。在步骤S8中,主机102可以将更新的完成队列头部指针2024提供给存储器系统110。例如,存储器系统110可以在门铃寄存器202中存储更新的完成队列头部指针2024。
返回参考图1,存储器系统110可以包括存储器设备150和控制器130。存储器设备150可以存储用于主机102的数据,并且控制器130可以控制将数据存储到存储器设备150中。
控制器130和存储器设备150可以被集成到单个半导体设备中。例如,控制器130和存储器设备150可以被集成为一个半导体设备以配置固态驱动器(SSD)。当存储器系统110被实现为SSD时,可以提高连接到存储器系统110的主机102的操作速度。另外,控制器130和存储器设备150可以被集成为一个半导体设备以构成存储器卡。例如,控制器130和存储器设备150可以构成存储器卡(诸如,个人计算机存储器卡国际协会(PCMCIA)卡、紧凑型闪存(CF)卡、智能媒体(SM)卡、记忆棒、包括尺寸缩小的MMC(RS-MMC)和micro-MMC的多媒体卡(MMC)、包括mini-SD卡、micro-SD卡和SDHC卡的安全数字(SD)卡或通用闪速存储(UFS)设备)。
存储器设备150可以是非易失性存储器设备,并且即使不供电也可以保持存储在其中的数据。存储器设备150可以通过编程操作存储从主机102提供的数据,并且通过读取操作将存储在其中的数据提供给主机102。存储器设备150可以包括多个存储器块,多个存储器块中的每个存储器块可以包括多个页,并且多个页中的每个页可以包括耦合到字线的多个存储器单元。在实施例中,存储器设备150可以是闪速存储器。闪速存储器可以具有3维(3D)堆叠结构。
控制器130可以响应于来自主机102的请求来控制存储器设备150。例如,控制器130可以将从存储器设备150读取的数据提供给主机102,并且将从主机102提供的数据存储到存储器设备150中。对于该操作,控制器130可以控制存储器设备150的读取操作、编程操作和擦除操作。
控制器130可以包括主机接口(I/F)132、处理器134、寄存器138、存储器接口(I/F)142以及存储器144,它们被彼此电气地连接以通过内部总线可操作或通信。
主机I/F 132可以被配置为处理主机102的命令和数据,并且通过接口协议(诸如,外围部件互连快速(PCIe))与主机102通信。
主机I/F 132可以通过被称为主机接口层(HIL)的固件而被驱动,以便与主机交换数据。
主机I/F 132可以是参考图2描述的命令队列接口,并且可以支持主机102与存储器系统110之间的接口连接。
存储器I/F 142可以用作用于使控制器130与存储器设备150接口连接的存储器/存储接口,使得控制器130响应于来自主机102的请求来控制存储器设备150。当存储器设备150是闪速存储器或具体地是NAND闪速存储器时,存储器I/F 142可以生成用于存储器设备150的控制信号并且在处理器134的控制下处理要被提供到存储器设备150的数据。存储器I/F 142可以用作用于处理控制器130与存储器设备150之间的命令和数据的接口(例如,NAND闪存接口)。具体地,存储器I/F 142可以支持控制器130与存储器设备150之间的数据传输。
存储器I/F 142可以通过称为闪存接口层(FIL)的固件而被驱动。
处理器134可以控制存储器系统110的整体操作。处理器134可以驱动固件以控制存储器系统110的整体操作。固件可以被称为闪存转换层(FTL)。而且,处理器134可以被实现为微处理器或中央处理单元(CPU)。
处理器134可以驱动FTL并且执行与从主机接收的请求相对应的前台操作。例如,处理器134可以响应于来自主机的写入请求来控制存储器设备150的写入操作,并且响应于来自主机的读取请求来控制存储器设备150的读取操作。
另外,控制器130可以通过被实现为微处理器或CPU的处理器134在存储器设备150上执行后台操作。例如,在存储器设备150上执行的后台操作可以包括垃圾收集(GC)操作、损耗均衡(WL)操作、映射刷新操作或坏块管理操作。
存储器144可以用作存储器系统110和控制器130的工作存储器,并且存储用于驱动存储器系统110和控制器130的数据。控制器130可以控制存储器设备150以响应于来自主机102的请求来执行读取操作、编程操作和擦除操作。控制器130可以将从存储器设备150读取的数据提供给主机102,可以将从主机102提供的数据存储到存储器设备150中。存储器144可以存储控制器130和存储器设备150所需的数据以执行这些操作。例如,存储器144可以包括使从主机102获取的命令排队的命令(CMD)队列136。
存储器144可以由易失性存储器来体现。例如,存储器144可以由静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)来体现。存储器144可以被设置在控制器130内或控制器130外。图1例示了被设置在控制器130内的存储器144。在实施例中,存储器144可以由外部易失性存储器来体现,该外部易失性存储器具有在存储器144与控制器130之间传输数据的存储器接口。
寄存器138可以包括门铃寄存器202。例如,寄存器138可以包括与主机102的核心的数目相同数目的门铃寄存器202。如参考图2所描述的,门铃寄存器202可以存储用于执行命令队列接口操作的数据。图1示出了其中寄存器138与处理器134分离的示例。然而,根据实施例,寄存器138还可以被包括在处理器134中。
根据所公开的技术的实施例,门铃寄存器202还可以存储命令信息以及如参考图2描述的提交队列尾部指针2022和完成队列头部指针2024。
图3示出了根据所公开的技术的实施例的门铃存储器202,该门铃寄存器202还存储除了提交队列尾部指针2022和完成队列头部指针2024之外的命令信息(CMD INFO)2026。
主机102可以将更新的提交队列尾部指针2022连同关于与提交队列尾部指针2022相对应的命令的命令信息2026一起发送到存储器系统110。与提交队列尾部指针2022相对应的命令是指由在提交队列1022中的提交队列尾部指针2022指示的位置处排队的命令。存储器系统110可以将更新的提交队列尾部指针2022与命令信息2026一起存储在门铃寄存器202中。
根据所公开的技术的实施例,存储器系统110可以获得关于已经在主机102的提交队列1022中排队但是尚未被获取的命令的命令信息2026。在下文中,已经在主机102的提交队列1022中排队但是尚未在存储器系统110中被获取的命令将被称为未获取的命令。主机I/F132可以基于获得的命令信息2026执行预操作,诸如分配用于未获取的命令的缓冲区以及确定未获取的命令在命令队列中排队的顺序。
利用存储器系统110对未获取的命令执行预操作的能力,命令的处理速度可以被提高。例如,存储器系统110的规范可以要求当在预定处理时间内未处理来自主机102的命令时提供故障响应。可以从当门铃响起时开始计数命令处理时间,例如,当指示对应的命令已经被排队的位置的提交队列尾部指针2022被存储在门铃寄存器202中时。
到与某个命令相对应的门铃响起并且然后获取命令时可能需要一段时间。如果存储器系统110仅在获取命令并且解释获取的命令之后才能获得命令信息,则存储器系统不执行针对处于未获取状态的命令的任何操作,这导致预定的处理时间的浪费。特别地,当提交队列尾部指针2022增加的速度快于存储器系统110获取命令的速度时,对于在提交队列中相对较晚排队的命令,从门铃响起的时间到相对较晚排队的命令被获取的时间可能进一步增加。因此,存储器系统110可能不会在预定的处理时间内处理相对较晚排队的命令,因此存储器系统110最终会向主机102提供失败响应。
根据所公开的技术的实施例,由于存储器系统110可以对未获取的命令执行预操作,因此可以在不浪费预定处理时间的情况下处理命令。因此,存储器系统110不仅可以提高命令的处理速度,而且可以通过观察预定的处理时间来提供主机102所期望的响应。
根据实施例,命令信息2026可以存储关于与提交队列尾部指针2022相对应的命令的信息。根据实施例,命令信息2026可以包括:要由命令处理的数据块的起始地址信息、数据块的大小信息、命令的输入/输出类型信息以及关于已经排队命令的队列的标识符信息。起始地址信息和大小信息可以被统称为地址信息。命令的输入/输出类型可以是读取类型或写入类型。当主机102包括多个提交队列1022时,关于队列的标识符信息可以指示已经排队命令的提交队列1022。
在一些实现中,即使命令信息2026包括所有的起始地址信息、大小信息、输入/输出类型信息以及关于队列的标识符信息,命令信息2026的大小也可以仅仅是大约几个字节到几十个字节。例如,随着主机I/F 132的性能的提高,主机102可以每秒向存储器系统110提供几GB的数据。因此,即使主机102提供了被包括在门铃寄存器202中的命令信息2026,它也对到门铃响起时所需的时间的增加几乎没有影响。
图4是示出根据本公开的实施例的数据处理系统100的操作的图。
在步骤S402中,主机102可以在提交队列1022中使命令排队并且更新提交队列尾部指针2022。
在步骤S404中,主机102可以通过主机I/F 132按响门铃。例如,主机102可以将更新的提交队列尾部指针2022存储在门铃寄存器202中,并且存储关于与提交队列尾部指针2022相对应的命令的命令信息2026。
在步骤S406中,主机I/F 132可以基于命令信息2026执行用于处理命令的预操作。例如,作为预操作,主机I/F 132可以确定未获取的命令之间的处理顺序并且分配用于未获取的命令的缓冲区。将参考图5A至图5C详细描述根据本公开的实施例的预操作。
在步骤S408中,主机I/F 132可以获取来自提交队列1022的命令。例如,主机I/F132可以通过向主机102提供存储器读取请求来获取命令。主机I/F 132可以在内部命令队列中使获取的命令排队。主机I/F 132可以基于在步骤S406中确定的处理顺序而在CMD队列(CMDQ)136中使未获取的命令排队。
在步骤S410中,处理器134可以处理在CMD队列136中排队的命令。在第一示例中,处理器134可以接收来自主机102的存储器的写入数据以便处理写入命令,将数据缓冲到在步骤S406中分配的缓冲区中,并且在存储器设备150中对缓冲的数据进行编程。在第二示例中,处理器134可以加载来自存储器设备150的数据以便处理读取命令、将数据缓冲到分配的缓冲区中以及将缓冲的数据提供给主机102。
在步骤S412中,主机I/F 132可以在处理命令之后在完成队列1024中记录命令处理的完成。例如,主机I/F 132可以在完成队列1024中写入完成队列条目。在这种情况下,完成队列头部指针2024可以增加。
在步骤S414中,主机I/F 132可以将中断信号提供给主机102。
在步骤S416中,主机102可以完成命令。
在步骤S418中,主机102可以将更新的完成队列头部指针2024提供给存储器系统110。主机I/F 132可以在门铃寄存器202中存储更新的完成队列头部指针2024。
图5A至图5C是用于解释根据所公开的技术的实施例的预操作的图。
图5A至图5C示出了可以被存储在存储器144中的CMD队列136和命令信息(CMDInfo.)队列536。
CMD队列136可以如参考图1描述的使从主机102获取的命令排队。CMD Info.队列536可以使关于未获取的命令的命令信息排队。
图5A示出了没有命令在CMD队列136中排队并且关于未获取的命令的命令信息在CMD Info.队列536中排队的状态。例如,主机102可以按照第一命令至第四命令的顺序按响门铃。主机I/F 132可以按照门铃响起的顺序在CMD Info.队列536中使分别与第一命令至第四命令相对应的第一命令信息至第四命令信息排队。
主机I/F 132可以基于关于未获取的命令的命令信息2026而对未获取的命令执行预操作。
在预操作的第一示例中,主机I/F 132可以基于被包括在关于未获取的命令的命令信息2026中的地址信息来确定处理未获取的命令的顺序。
在预操作的第二示例中,主机I/F 132可以基于地址信息将用于未获取的命令的缓冲区分配给存储器144。例如,主机I/F 132可以通过参考未获取的命令的数据块的大小信息来确定要被分配的缓冲区的大小。
图5B示出了通过主机I/F 132改变处理未获取的命令的顺序。
例如,当要由第一命令处理的第一数据块的地址与要由第三命令处理的第三数据块的地址彼此连续时,主机I/F 132可以改变第二命令和第三命令的处理顺序,使得第一命令和第三命令可以被连续地处理。
当在CMD队列136中使从提交队列1022获取的命令排队时,主机I/F 132可以按照由CMD Info.队列536确定的顺序使命令排队。例如,主机I/F 132可以按照未获取的命令已经在提交队列1022中排队的顺序来获取未获取的命令,但是当在CMD队列136中使获取的命令排队时,主机I/F 132可以通过参考由CMD Info.队列536确定的顺序来调整在CMD队列136中排队的命令之间的顺序。
图5C示出了获取的命令根据改变的顺序在CMD队列136中排队。例如,CMD队列136可以以与图5B中确定的命令处理顺序相同的顺序按照第一命令、第三命令、第二命令和第四命令的顺序使第一命令至第四命令排队。
根据所公开的技术的实施例,当主机102按响门铃时,主机I/F 132可以接收命令信息2026以及提交队列尾部指针2022。主机I/F 132可以通过使用命令信息2026对未获取的命令执行预操作。例如,该预操作可以包括用于未获取的命令的缓冲器分配操作和确定未获取的命令的处理顺序的操作。在获取未获取的命令之后,主机I/F 132可以基于预操作的结果来处理获取的命令。
当对未获取的命令执行预操作时,主机I/F 132可以在获取命令之后跳过执行缓冲器分配操作。因此,可以缩短获取的命令的处理时间。此外,主机I/F 132可以基于在获取命令之前确定的处理顺序来处理命令。因此,可以有效地处理命令。
尽管描述了所公开的技术的实施例和各种特征,但是可以基于所描述和所示出的内容对所公开的实施例和其它实施例进行变型和改进。
Claims (19)
1.一种数据处理系统,包括:
存储器系统,用于存储数据和信息;以及
主机,与所述存储器系统通信并且包括用于使要由所述存储器系统处理的命令排队的提交队列,所述主机向所述存储器系统提供指示所述提交队列的尾部的提交队列尾部指针以及关于所述命令的命令信息,
其中所述存储器系统接收关于所述命令的命令信息,基于所述命令信息对所述命令执行预操作,并且基于所述预操作的结果从所述提交队列获取所述命令。
2.根据权利要求1所述的数据处理系统,其中所述预操作包括在获取所述命令和处理所述命令之前执行的操作。
3.根据权利要求1所述的数据处理系统,其中所述存储器系统还在被包括在所述存储器系统中的命令队列中使获取的命令排队,处理排队的命令,并且将完成响应提供给所述主机的完成队列。
4.根据权利要求1所述的数据处理系统,其中所述命令信息包括地址信息、命令类型信息或提交队列标识符信息中的至少一种信息。
5.根据权利要求1所述的数据处理系统,其中所述存储器系统还接收关于附加的命令的附加命令信息。
6.根据权利要求5所述的数据处理系统,其中所述存储器系统通过确定所述命令的处理顺序来执行所述预操作。
7.根据权利要求6所述的数据处理系统,其中所述存储器系统还根据所述命令在所述提交队列中排队的顺序来获取所述命令。
8.根据权利要求6所述的数据处理系统,其中所述存储器系统还基于所述处理顺序在所述命令队列中使所述命令排队。
9.根据权利要求4所述的数据处理系统,其中所述地址信息包括要由所述命令处理的数据块的起始地址信息或所述数据块的大小信息中的至少一种信息。
10.根据权利要求9所述的数据处理系统,其中所述存储器系统通过基于所述数据块的所述大小信息为所述命令分配被包括在所述存储器系统中的缓冲区,来执行所述预操作。
11.一种存储器系统,包括:
存储器设备,存储数据;
主机接口,与主机通信并且从所述主机接收提交队列尾部指针以及关于与所述尾部指针相对应的命令的命令信息,基于所述命令信息对所述命令执行预操作,并且基于所述预操作的结果从所述主机的提交队列获取所述命令;
命令队列,使获取的命令排队;以及
处理器,与所述存储器设备通信并且控制所述存储器设备以处理在所述命令队列中排队的所述命令。
12.根据权利要求11所述的存储器系统,其中所述主机接口还响应于所述命令的处理的完成,将完成响应提供给所述主机的完成队列。
13.根据权利要求11所述的存储器系统,其中所述命令信息包括地址信息、命令类型信息或提交队列标识符信息中的至少一种信息。
14.根据权利要求13所述的存储器系统,其中所述主机接口还从所述主机接收关于附加的命令的附加命令信息,并且所述附加命令信息包括地址信息、命令类型信息或提交队列标识符信息中的至少一种信息。
15.根据权利要求14所述的存储器系统,其中所述主机接口通过基于所述命令中的每个命令的所述地址信息确定所述命令的处理顺序,来执行所述预操作。
16.根据权利要求15所述的存储器系统,其中所述主机接口还根据所述命令在所述提交队列中排队的顺序来获取所述命令。
17.根据权利要求15所述的存储器系统,其中所述主机接口还基于所述处理顺序在所述命令队列中使所述命令排队。
18.根据权利要求13所述的存储器系统,其中所述地址信息包括要由所述命令处理的数据块的起始地址信息或所述数据块的大小信息中的至少一种信息。
19.根据权利要求18所述的存储器系统,其中所述主机接口通过基于所述数据块的所述大小信息为所述命令分配被包括在所述存储器系统中的缓冲区,来执行所述预操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2020-0118428 | 2020-09-15 | ||
KR1020200118428A KR20220036169A (ko) | 2020-09-15 | 2020-09-15 | 메모리 시스템 및 데이터 처리 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114185480A true CN114185480A (zh) | 2022-03-15 |
Family
ID=80539376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110664807.5A Pending CN114185480A (zh) | 2020-09-15 | 2021-06-16 | 存储器系统和数据处理系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11662947B2 (zh) |
KR (1) | KR20220036169A (zh) |
CN (1) | CN114185480A (zh) |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8880800B2 (en) | 2011-05-20 | 2014-11-04 | Promise Technology, Inc. | Redundant array of independent disks system with inter-controller communication and method of operation thereof |
KR102114109B1 (ko) | 2013-10-17 | 2020-05-22 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 |
US9911477B1 (en) | 2014-04-18 | 2018-03-06 | Altera Corporation | Memory controller architecture with improved memory scheduling efficiency |
US10019161B2 (en) * | 2015-08-31 | 2018-07-10 | Sandisk Technologies Llc | Out of order memory command fetching |
KR102549611B1 (ko) * | 2016-04-01 | 2023-06-30 | 삼성전자주식회사 | 스토리지 장치 및 그것의 이벤트 통지 방법 |
JP2018160155A (ja) * | 2017-03-23 | 2018-10-11 | 東芝メモリ株式会社 | 記憶装置 |
US10725835B2 (en) * | 2017-05-03 | 2020-07-28 | Western Digital Technologies, Inc. | System and method for speculative execution of commands using a controller memory buffer |
KR20200114149A (ko) | 2019-03-27 | 2020-10-07 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
US11146927B2 (en) | 2019-08-16 | 2021-10-12 | The Boeing Company | Aircraft to ground data systems and computing methods |
US11269777B2 (en) * | 2019-09-25 | 2022-03-08 | Facebook Technologies, Llc. | Systems and methods for efficient data buffering |
KR20220050407A (ko) | 2020-10-16 | 2022-04-25 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작방법 |
-
2020
- 2020-09-15 KR KR1020200118428A patent/KR20220036169A/ko unknown
-
2021
- 2021-04-23 US US17/238,935 patent/US11662947B2/en active Active
- 2021-06-16 CN CN202110664807.5A patent/CN114185480A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US11662947B2 (en) | 2023-05-30 |
KR20220036169A (ko) | 2022-03-22 |
US20220083271A1 (en) | 2022-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110781096B (zh) | 用于通过预测需求时间来执行垃圾收集的设备和方法 | |
US20190171392A1 (en) | Method of operating storage device capable of reducing write latency | |
US10860231B2 (en) | Memory system for adjusting map segment based on pattern and operating method thereof | |
US11449418B2 (en) | Controller and method for selecting victim block for wear leveling operation | |
US11762590B2 (en) | Memory system and data processing system including multi-core controller for classified commands | |
CN114371812B (zh) | 控制器及其操作方法 | |
KR20190090635A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US20210294739A1 (en) | Controller and memory system | |
US11392309B2 (en) | Memory system for performing migration operation and operating method thereof | |
US9892046B2 (en) | Cache allocation based on quality-of-service information | |
KR20200059936A (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
KR20180126656A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN110647359A (zh) | 半导体装置、其操作方法和具有其的层叠存储装置 | |
KR102653373B1 (ko) | 컨트롤러 및 컨트롤러의 동작방법 | |
KR20220105285A (ko) | 컨트롤러 및 컨트롤러의 동작 방법 | |
CN113805792A (zh) | 存储器系统及其操作方法 | |
US11922062B2 (en) | Controller and operating method thereof | |
US11662947B2 (en) | Memory system and data processing system performing operation on commands before fetching of commands | |
US10572382B2 (en) | Method of operating data storage device and method of operating data processing system including the same | |
CN113885783B (zh) | 存储器系统及其操作方法 | |
CN112732171B (zh) | 控制器及其操作方法 | |
US20220156003A1 (en) | Controller and operation method thereof | |
CN114691534A (zh) | 控制器以及包括控制器的存储器系统 | |
CN114328294A (zh) | 控制器、其操作方法以及包括控制器的存储器系统 | |
KR20220072357A (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 |