使用多循环队列的主机控制器接口及其操作方法

文档序号:1937184 发布日期:2021-12-07 浏览:8次 >En<

阅读说明:本技术 使用多循环队列的主机控制器接口及其操作方法 (Host controller interface using multi-cycle queues and method of operating the same ) 是由 申明燮 徐晟皓 卢官佑 张星龙 郑楷圣 于 2021-05-31 设计创作,主要内容包括:一种被配置为提供主机设备和存储设备之间的对接的主机控制器接口包括:处理电路;门铃寄存器,被配置为存储一个或多个第一队列的头指针和尾指针;以及条目缓冲器,被配置为存储来自一个或多个第一队列中的一个第一队列的第一命令,其中,该处理电路被配置为:确定一个或多个第一队列的命令被处理的次序,根据所确定的顺序对第一命令进行路由,使之被存储到该条目缓冲器内,并且对第一响应进行路由,使之被存储到一个或多个第二队列中的一个第二队列当中。(A host controller interface configured to provide interfacing between a host device and a storage device comprises: a processing circuit; a doorbell register configured to store head and tail pointers for one or more first queues; and an entry buffer configured to store a first command from one of the one or more first queues, wherein the processing circuit is configured to: the method further includes determining an order in which commands of the one or more first queues are processed, routing the first commands to be stored in the entry buffer according to the determined order, and routing the first responses to be stored in a second queue of the one or more second queues.)

使用多循环队列的主机控制器接口及其操作方法

对相关申请的交叉引用

本申请基于在韩国知识产权局于2020年6月1日提交的韩国专利申请No.10-2020-0066076以及于2021年1月21日提交的韩国专利申请No.10-2021-0008898并且要求其优先级,其公开通过引用被整体合并于此。

背景技术

本发明构思的至少一些示例性实施例涉及被配置为向存储(storage)设备传送命令的主机控制器接口,更具体地涉及具有基于位图的门铃结构(bitmap-based doorbellstructure)并且可以使用多循环队列的主机控制器接口。

串行ATA(SATA)、高速外围组件互连(PCIe)、串行附接SCSI(SAS)、嵌入式MMC(eMMC)、通用闪存存储(UFS)等被用作基于存储设备(例如,固态驱动器(SSD))的存储系统中的接口。各种存储设备正在被逐渐开发出来,并且同时处理的数据量也逐渐提高。然而,诸如SATA的接口并不是专门用于存储设备(例如,SSD)的接口,并因此具有根本限制。

最近,作为制作适用于数据存储设备的标准化接口的工作的一部分,人们已经制作出了高速非易失性存储器(NVMe)接口和UFS接口。NVMe接口可以提供针对通过PCIe总线连接的存储设备(或非易失性存储器)的直接存储器存取功能,并且UFS是采取M-PHY和移动工业处理器接口(MIPI)和UniPro的结构。

当位图门铃被多个核共享时,整个系统的性能可能因资源占用开销而劣化。例如,在UFS协议中,当多个核中的任何一个着手处理(approach)位图门铃时,其他核不可以访问该位图门铃。

发明内容

本发明构思提供了具有基于位图的门铃结构并且可以使用多循环队列的主机控制器及其操作方法。

根据本发明构思的至少一些示例性实施例,一种被配置为提供主机设备和存储设备之间的对接的主机控制器接口包括:处理电路;门铃寄存器,被配置为存储一个或多个第一队列的头指针和尾指针;以及条目缓冲器,被配置为将来自一个或多个第一队列中的一个第一队列的第一命令存储到条目缓冲器内,其中,处理电路被配置为:确定一个或多个第一队列的命令被处理的顺序,根据所确定的顺序路由要被存储到条目缓冲器内的第一命令,并且路由要被存储到一个或多个第二队列中的一个第二队列当中的第一响应。

根据本发明构思的至少一些示例性实施例,一种存储系统包括:主机设备;以及存储设备,其中,主机设备被配置为向存储设备传送第一命令,其中,主机设备包括被配置为存储至少一个队列的主机存储器、被配置为处理至少一个队列的至少一个核、被配置为提供与主机存储器的对接的第一处理电路以及被配置为存储关于至少一个队列的头指针和尾指针的门铃寄存器,并且其中,存储设备包括第二处理电路,被配置为向主机设备提供作为基于第一命令执行存储操作的结果的第一响应。

根据本发明构思的至少一些示例性实施例,提供了一种主机控制器接口的操作方法,该主机控制器接口被配置为使用包括至少一个命令的至少一个队列提供主机设备和存储设备之间的对接,该操作方法包括:仲裁包括第一命令的多个命令的顺序,第一命令包含在第一队列中;将第一命令存储到条目缓冲器内;更新第一队列的第一头指针;将第二命令存储到条目缓冲器内;更新包括第二命令的第二队列的第二头指针;以及依次向存储设备提供第一命令和第二命令。

附图说明

通过参考附图详细描述本发明构思的示例性实施例,本发明构思的示例性实施例的以上和其他特征及优点将变得更加明显。附图意在描绘本发明构思的示例性实施例,不应将其解释为限制权利要求的意指范围。不应认为附图是按比例绘制的,除非明确指出。

图1是根据本发明构思的至少一些示例性实施例的存储系统的框图;

图2是图1中所示的主机设备的实施例的框图;

图3是图1中所示的存储控制器的实施例的框图;

图4是应用通用闪存存储(UFS)接口的存储系统的实施例的框图;

图5是根据本发明构思的至少一些示例性实施例的存储系统的操作的图示;

图6是根据本发明构思的至少一些示例性实施例的主机设备的操作方法的流程图;

图7是根据本发明构思的至少一些示例性实施例的向其写入命令的存储系统的框图;

图8是根据本发明构思的至少一些示例性实施例的向其写入响应的存储系统的框图;

图9是根据本发明构思的至少一些示例性实施例的在其中将命令写入到循环队列的过程的图示;

图10是根据本发明构思的至少一些示例性实施例的存储系统的操作方法的流程图;

图11和图12是存储在主机存储器和主机控制器的寄存器内的各种信息的示例的框图;

图13是根据UFS接口的数据读取过程和分组的实施例的图示;

图14A和图14B是根据本发明构思的至少一些示例性实施例的分组的结构的图示;

图15是根据本发明构思的至少一些示例性实施例的存储设备所应用于的系统的框图;

图16是用于描述根据本发明构思的至少一些示例性实施例的UFS系统的图示;

图17A到图17C是根据本发明构思的示例性实施例的UFS卡的尺寸外形的图示;

图18A是根据本发明构思的至少一些示例性实施例的主机-存储系统的框图,并且图18B到图18E是图18A中所示的配置的详细框图;

图19是根据本发明构思的至少一些示例性实施例的存储器(memory)系统的框图;

图20是根据本发明构思的至少一些示例性实施例的存储器系统的框图;

图21是根据本发明构思的至少一些示例性实施例的存储器设备的框图;

图22是根据本发明构思的至少一些示例性实施例的可以应用于UFS设备的三维(3D)垂直NAND(V-NAND)结构的图示;

图23是根据本发明构思的至少一些示例性实施例的存储器设备的截面图;并且

图24是根据本发明构思的至少一些示例性实施例的存储系统所应用于的数据中心的图示。

具体实施方式

作为本发明构思所属领域的常规做法,将联系功能块、单元和/或模块描述实施例并且在附图中对其予以例示。本领域技术人员将认识到,这些块、单元和/或模块可以由诸如逻辑电路、分立组件、微处理器、硬布线电路、存储器元件、有线连接等的电路(或者光学回路)物理实施,它们可以是使用基于半导体的制作技术或者其他制造技术形成的。在块、单元和/或模块由微处理器或类似选项实施时,可以使用软件(例如,微码)对其编程,以执行本文讨论的各种功能,并且可以任选通过固件和/或软件对其予以驱动。替代性地,每一块、单元和/或模块可以由专用硬件实施,或者可以被实施成执行某些功能的专用硬件与执行其他功能的处理器(例如,一个或多个受到编程的微处理器和相关联的电路)的组合。而且,实施例的每一块、单元和/或模块可以被物理划分成两个或更多相互作用的分立块、单元和/或模块,而不脱离本发明构思的范围。此外,实施例的各个块、单元和/或模块可以被物理合并成更复杂的块、单元和/或模块,而不脱离本发明构思的范围。

图1是根据本发明构思的至少一些示例性实施例的存储系统10的框图。

存储系统10也可以被称为主机存储系统10,其可以包括主机设备100和存储设备200。主机100也可以被称为主机设备100。

为了主机设备100和存储设备200之间的平滑数据传输,各种标准协议已经被开发或者当前正处于开发之中。作为标准协议之一,对于诸如智能电话和平板电脑的闪速存储器设备,电子器件工程联合会(JEDEC)已经开发出通用闪存存储(UFS)。UFS采取支持具有命令队列行进的特点的多个命令的命令协议以及小型计算机系统接口(SCSI)架构模型,由此实现多线程编程范式。

由JEDEC开发的另一种标准协议是嵌入式多媒体卡(eMMC)标准协议。eMMC可以提供简化应用接口设计、小封装尺寸和低功耗。基于eMMC闪速存储器的存储设备是当前移动设备中的存储器的一个主要形式。

根据本发明构思的至少一个示例性实施例的存储系统10可以包括基于闪速存储器的存储设备标准协议,诸如UFS和eMMC。然而,本实施例不限于此。

存储系统10可以被体现为例如包括台式计算机和膝上型计算机的个人计算机(PC)、数据服务器、网络附接存储设备(NAS)、物联网(IoT)设备、工作站、服务器、电动车或者手持式电子设备。手持式电子设备可以包括膝上型计算机、移动电话、智能电话、平板PC、个人数字助理(PDA)、企业数字助理(EDA)、数字静态相机、数字视频相机、音频设备、便携式多媒体播放器(PMP)、个人导航设备(PND)、MP3播放器、手持式游戏控制台、电子书(e-book)和/或可穿戴设备。

存储系统10可以根据主机设备100的命令CMD将数据存储到存储设备200内或者从存储设备200取回数据。在示例性实施例中,主机设备100可以提供要写入到存储设备200内的数据,并且可以通过接收来自存储设备200的响应RESP而读取该数据。根据示例性实施例,主机设备100可以发出命令CMD并将该命令CMD传送至存储设备200,并且存储设备200可以响应于命令读取、清除或者写入数据以及可以生成响应RESP作为结果,并将响应RESP提供给主机设备100。

命令CMD可以被包含在命令分组PACKET_C内并在其中被管理,并且响应RESP可以被包含在响应分组PACKET_R内并在其中被管理。将参考图14A和图14B详细描述分组的配置。

主机设备100可以包括主机控制器110和主机存储器130。

主机设备100可以根据一个或多个电子电路、芯片或设备的操作向主机设备的用户提供各种服务。根据示例性实施例,主机设备100可以执行各种操作,以处理接收自主机设备100的用户的命令,并且可以将操作结果提供给主机设备100的用户。根据示例性实施例的主机设备100可以包括操作系统、应用等。根据本发明构思的至少一些示例性实施例的主机设备100可以包括通用闪存存储(UFS)主机控制驱动,以支持UFS协议。然而,本发明构思不限于此,并且主机设备100可以包括支持eMMC协议或高速非易失性存储器(NVMe)协议的驱动。

主机控制器110可以控制主机设备100的所有操作,更具体地,可以控制包含在主机设备100中的其他组件的操作。在示例性实施例中,主机控制器110可以被体现为处理器或应用处理器等。此外,主机控制器110可以被体现为包括专用逻辑电路(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)的操作处理器(例如,中央处理单元(CPU)、图形处理单元(GPU)、应用处理器(AP)等),但不限于此。根据本发明构思的至少一些示例性实施例,主机控制器110可以是或者可以包括:处理电路,例如,包括逻辑电路的硬件;执行软件的硬件/软件组合;或者它们的组合。例如,处理电路更具体地可以包括但不限于中央处理单元(CPU)、处理器核、算术逻辑单元(ALU)、数字信号处理器、微计算机、现场可编程门阵列(FPGA)、可编程逻辑单元、微处理器、专用集成电路(ASIC)等当中的一者或多者。根据本发明构思的至少一些示例性实施例,主机控制器110的处理电路可以是专门结构化和/或编程的(例如,经由计算机可执行程序代码),以实施和/或控制在本说明书中被描述为由主机(例如,主机100)、主机控制器(例如,主机控制器110)或者主机或主机控制器的元件(例如,主机控制器接口(HCI)190,下文将参考图5对其做出更详细的讨论)执行的操作的一些或全部。

主机控制器110可以执行加载到主机存储器130内的各种软件。例如,主机控制器110可以执行操作系统(OS)和应用程序。

主机控制器110可以响应于用户的请求生成命令CMD,并且确定是否将命令CMD传送至存储设备200。此外,主机控制器110可以接收响应RESP。在示例性实施例中,主机控制器110可以将命令CMD和/或响应RESP写入至作为处理等待行的队列,或者将命令CMD和/或响应RESP从队列中移除。

主机控制器110可以包括一个或多个核,并且可以进一步包括被配置为控制存储器和/或存储设备200的另一知识产权(IP)。根据示例性实施例,核可以执行队列,队列是由通过主机设备100处理的命令CMD和响应RESP构成的处理等待行。根据示例性实施例,主机控制器110可以进一步包括加速器,其为用于高速数据操作(例如,人工智能(AI)数据操作)的专用电路,并且加速器可以包括图形处理单元(GPU)、神经处理单元(NPU)和/或数据处理单元(DPU),而且还可以被体现为在物理上独立于主机控制器110的其他组件的单独芯片。

主机控制器110可以包括主机控制器接口(下文称为HCI),HCI可以管理将主机存储器130的数据(例如,写入数据)存储到非易失性存储器230内或者将非易失性存储器230的数据(例如,读取数据)存储到主机存储器130内的操作。此外,存储控制器210可以包括用于与主机控制器110对接的设备控制器接口(未示出)。

提交队列(SQ)可以指等待各种事件——诸如来自主机设备100的请求或者命令CMD——的处理的行。存储在SQ内的命令CMD可通过由主机控制器110取出而被传送至存储设备200。完成队列(CQ)可以表示用于处理包括来自存储设备200的请求或者响应RESP的各种事件的行。被主机控制器110取出的存储在CQ内的响应RESP可以指示在存储器操作(例如,写入、读取或清除数据)结束之后要由主机处理的元数据的更新。SQ和CQ可以在主机设备100的主机存储器130内生成。尽管根据本发明构思的至少一个示例性实施例将SQ和CQ的实施方式示为循环队列,但是实施方式不限于此。

根据本发明构思的至少一些示例性实施例,主机控制器110可以包括门铃寄存器。门铃寄存器是被分配为管理SQ和CQ的寄存器。例如,主机控制器110可以通过经由门铃寄存器访问SQ和CQ而借助于主机存储器130执行关于SQ和CQ的接口操作。根据示例性实施例,门铃寄存器可以包含在主机控制器接口内。

根据示例性实施例的门铃寄存器可以管理或控制由主机设备100生成的队列对。门铃寄存器可以对应于队列对。例如,门铃寄存器可以存储队列的头指针(HP)和尾指针(TP)。例如,门铃寄存器可以存储指向SQ的尾部的尾指针和指向CQ的头部的头指针。

根据本发明构思的至少一个示例性实施例,与SQ有关的门铃寄存器被称为SQ门铃寄存器,并且与CQ有关的门铃寄存器被称为CQ门铃寄存器。此外,其中对应于一个队列对的门铃被表达为位图的结构被称为位图门铃,位图是1位数据空间的群组。根据本发明构思的至少一些示例性实施例,可以由HCI 190管理SQ门铃寄存器、CQ门铃寄存器和位图门铃等。将参考图5更详细地描述HCI 190。

主机存储器130可以被用作主存储器或者高速缓存存储器。可替代地,主机存储器130可以被用作被配置为驱动软件、应用或固件的驱动存储器。要由主机控制器110处理的程序或数据可以被加载到主机存储器130内。例如,文件系统、应用和设备驱动等可以被加载到主机存储器130内。文件系统可以将根据命令(例如,写入命令或读取命令)的逻辑地址提供给存储设备200。可以根据由主机设备100执行的具体操作系统使用文件系统。文件系统可以由软件、应用或固件来体现。例如,主机设备100可以执行Window、Linux和Unix等。

主机存储器130可以加载用于主机设备100和存储设备200之间的对接操作的SQ和CQ。SQ可以存储将被提供给存储设备200的命令CMD,并且CQ可以存储作为有关在存储设备200内完成的操作的完成信息的响应RESP。

根据示例性实施例,由主机控制器130加载的SQ和CQ可以被主机控制器110参照。例如,主机控制器110可以通过参照尾指针TP而将命令CMD或响应RESP写入到SQ,并且可以通过参照头指针HP而从CQ读取命令CMD或响应RESP。例如,主机控制器110可以增加尾指针TP的值来指示命令CMD或响应RESP之后的下一空白空间将被写入至SQ或CQ。将参考图9更详细地描述将命令CMD或响应RESP写入至队列或者从队列读取命令CMD或响应RESP的操作。

根据示例性实施例,主机控制器110和主机存储器130可以被体现为单独的半导体芯片。可替代地,在一些实施例中,主机控制器110和主机存储器130可以被集成到同一半导体芯片内。例如,主机控制器110可以包括在AP内提供的多个模块中的任何一个,并且AP可以被体现为片上系统(SoC)。此外,主机存储器130可以是在AP内提供的嵌入式存储器,或者可以是处于AP外的存储器设备或存储器模块。

主机设备100可以进一步包括与存储设备200的驱动有关的各种设备。例如,可以进一步提供软件模块(未示出),诸如主机应用和设备驱动,并且该软件模块可以被加载到主机存储器130内并且由处理器(未示出)执行。

存储设备200可以包括存储控制器210和非易失性存储器设备(NVM)230。NVM 230可以包括NVM核。

存储设备200可以包括被配置为响应于来自主机设备100的请求来存储数据的存储设备。例如,存储设备200可以包括一个或多个固态驱动器(SSD)。当存储设备200包括SSD时,存储设备200可以包括被配置为按照非易失性方式存储数据的多个闪速存储器芯片(例如,NAND存储器芯片)。

根据示例性实施例,存储设备200可以对应于包括一个或多个闪速存储器芯片的闪速存储器设备。闪速存储器设备可以是非易失性数据存储介质,数据可以被向/从其电写入/擦除。在示例性实施例中,存储设备200可以是嵌入在存储系统中的嵌入式存储器。例如,存储设备200可以是嵌入式多媒体卡(eMMC)或者嵌入式UFS存储器设备。在示例性实施例中,存储设备200可以是外部存储器,其可以被附接至存储系统10或者从存储系统10拆除。例如,存储设备200可以包括各种基于闪速存储器的存储设备,包括UFS存储器卡、紧致闪存(CF)卡、安全数字(SD)卡、微型安全数字(Micro-SD)卡、迷你安全数字(Mini-SD)卡、极限数字(xD)卡或存储棒、固态驱动器(SSD)、通用串行总线(USB)和闪存驱动器。

当存储设备200包括闪速存储器时,该闪速存储器可以包括二维NAND存储器阵列或者三维(或垂直)NAND存储器阵列。3D存储器阵列是与具有硅衬底上的有效区的存储器单元的阵列有关的或者与存储器单元的操作有关的电路,其以单片方式形成在衬底上,或者是形成于衬底内的电路的至少一个物理层级。“单片”一词表示构成该阵列的各个级的层直接堆叠在该阵列的更低级的层上。

在示例性实施例中,3D存储器阵列包括沿垂直方向布置的VNAND串,使得至少一个存储器单元处于另一存储器单元之上。至少一个存储器单元可以包括电荷捕获层。

美国专利公开No.7,679,133、No.8,533,456、No.8,654,587、No.8,559,235的每个公开了有关以多个级配置的3D存储器的适当配置,其中,字线和/或位线在多个级之间共享,其公开通过引用被整体合并于此。

作为另一示例,存储设备200还可以包括其他各种非易失性存储器。例如,磁RAM(MRAM)、自旋转移矩MRAM、导电桥接RAM(CBRAM)、铁磁RAM(FeRAM)、相变RAM(PRAM)、电阻式RAM和其他各种存储器可以被应用于存储设备200。

存储控制器210可以控制存储设备200的所有操作。例如,存储控制器210可以调度NVM 230的操作,或者可以对由存储设备200处理的信号/数据进行编码和解码。在示例性实施例中,存储控制器210可以控制NVM进行数据的写入、读取或擦除。根据本发明构思的至少一些示例性实施例,存储控制器210可以是或者可以包括:处理电路,例如,包括逻辑电路的硬件;执行软件的硬件/软件组合;或者它们的组合。例如,处理电路更具体地可以包括但不限于中央处理单元(CPU)、处理器核、算术逻辑单元(ALU)、数字信号处理器、微型计算机、现场可编程门阵列(FPGA)、可编程逻辑单元、微处理器、专用集成电路(ASIC)等当中的一者或多者。根据本发明构思的至少一些示例性实施例,存储控制器210的处理电路可以是专门结构化和/或编程的(例如,经由计算机可执行程序代码),以实施和/或控制在本说明书中被描述为由存储设备(例如,存储设备200)、存储控制器(例如,存储控制器210)或者存储设备或存储控制器的元件执行的操作的一些或全部。

NVM 230可以包括用于响应于来自主机设备100的请求存储数据的存储介质。在示例性实施例中,如上文所述,NVM 230可以包括被配置为按照非易失性方式存储数据的至少一个闪速存储器芯片,并且可以包括NAND或VNAND存储器阵列。

主机设备100和存储设备200可以通过各种接口相互通信。例如,主机设备100和存储设备200可以通过标准接口相互连接,例如,标准接口是通用闪存存储(UFS)、串行ATA(SATA)、小型计算机小型接口(SCSI)、串行附接SCSI(SAS)和eMMC。主机设备100和存储设备200可以分别根据所采取的接口的协议生成分组,并且传送这些分组。图1中的示例例示了在主机设备100中生成并且被传送至存储设备200的命令分组PACKET_C以及在存储设备200中生成并且被传送至主机设备100的响应分组PACKET_R。

根据本发明构思的至少一个示例性实施例,主机设备100可以直接控制SQ门铃寄存器、CQ门铃寄存器、位图门铃以及SQ和CQ的仲裁和路由,由此解决主机设备100的计算资源的占用问题并且显著提高其性能。

图2是图1中所示的主机设备100的实施例的框图。图2中的示例示出了包括主机控制器110的AP。在下文中,将使用该AP描述主机设备100。然而,应当理解,本发明构思不限于被体现为AP,并且可以应用于各种可以提供主从功能的主机设备。

结合图1参考图2,主机设备100可以包括该AP和主机存储器130,并且AP可以包括作为IP的一个或多个模块。在示例性实施例中,AP可以包括主机控制器110、至少一个核120、主机存储器控制器140、调制解调器150、嵌入式存储器160、相机接口170和显示器接口180。主机控制器110、至少一个核120、主机存储器控制器140、调制解调器150、嵌入式存储器160、相机接口170和显示器接口180可以通过内部总线相互传送和接收信号。主机控制器110可以包括寄存器111和HCI 190。

尽管在图2中示出了主机存储器130对应于AP外的存储器,但是本发明构思的实施例不必局限于此。例如,在上文描述的实施例中,AP内的嵌入式存储器160也可以用作主机存储器130。由于图2中所示的配置仅处于一个实施例当中,因而该AP可以在图2中所示的配置之外进一步包括其他配置,或者替代性地可以在该AP内不提供图2中所示的配置中的一些。

至少一个核120可以控制AP的全部操作。例如,被配置为管理关于存储系统10的数据写入/读取操作的软件(例如,AP和设备的驱动)可以被加载到主机存储器130或者嵌入式存储器160内,并且至少一个核120可以通过执行软件而管理数据写入/读取操作。主机存储器130可以被体现为易失性存储器或者非易失性存储器,并且根据实施例,主机存储器130可以包括非易失性存储器,诸如动态随机存取存储器(DRAM)和/或静态随机存取存储器(SRAM)。

至少一个核120可以是同构多核处理器或者异构多核处理器。

根据本发明构思的至少一些示例性实施例,在至少一个核120包括多个核时,不同核可以每个通过执行不同软件而执行作为操作的处理单元的任务。例如,第一核可以执行第一任务,并且与第一核同构或异构的第二核可以执行第二任务。多个核中的每个可以包括专用队列。例如,第一核可以使用第一SQ和第二SQ,并且第二核可以使用第二SQ和第二CQ,通过这样做可以并行执行不同任务。

根据示例性实施例,AP可以执行相机控制操作、显示器控制操作、调制解调器操作等。由于调制解调器150被包含在AP内,因而AP可以被称为ModAP。

根据上文描述的实施例,主机控制器110可以向/从存储设备200传送/接收包括命令CMD或响应RESP的分组PACKET。主机控制器110可以包括被配置为存储一个或多个传送请求的寄存器。

根据示例性实施例,基于至少一个核120的控制,关于针对存储设备200的写入/读取的传送请求可以被存储到寄存器111内。此外,用于在至少一个核120的控制的基础上生成对应于传送请求的分组的各种信息可以被存储到主机存储器130内,并且例如关于分组的类型的信息和包括地址的表格信息可以被存储到主机存储器130内。此外,在数据写入请求的情况下,写入数据可以基于至少一个核120的控制被存储到主机存储器130的多个数据缓冲器内。主机控制器110可以确认存储在主机控制器110中的寄存器111内的传送请求,并且可以基于传送请求执行与存储设备200的对接。

就像上文描述的实施例中那样,主机控制器110可以从存储设备200(参见图1)接收包括响应RESP的响应分组PACKET_R,从所接收的分组PACKET中解析响应RESP,并且根据解析的响应RESP确认存储器操作是否被处理。

HCI 190可以通过转换诸如命令(例如,读取命令、写入命令等)、逻辑地址和对应于由主机设备100发出的各种访问请求的数据的格式或者通过转换所交换的指令的格式而将主机设备100连接至存储设备200。除了上文描述的UFS和eMMC之外,应用于主机控制器接口190的协议可以包括通用串行总线(USB)、小型计算机系统接口(SCSI)、高速外围组件互连(PCIe)、高级技术附件(ATA)、并行ATA(PATA)、串行ATA(SATA)和串行附接SCSI(SAS)。然而,协议不限于此,并且可以应用支持不同设备之间的对接的各种标准协议。

根据本发明构思的至少一些示例性实施例,HCI 190可以包括SQ门铃寄存器、SQ仲裁器、位图门铃路由器、位图门铃入口(entry)、CQ路由器和CQ门铃寄存器。将参考图5更详细地描述包含在HCI 190中的详细配置。

图3是图1中所示的存储控制器210的实施例的框图。

参考图1和图3,存储控制器210可以包括主机接口211、作为处理器的CPU 212以及存储器接口216。此外,存储控制器210可以进一步包括闪存转换层(FTL)213、分组管理器214和缓冲器管理器215。存储控制器210可以进一步包括其中加载FTL 213的工作存储器(未示出)。根据CPU 212对FTL 213的执行,可以控制针对存储器核的数据写入和读取操作。

主机接口211可以向/从主机设备100传送/接收分组PACKET,并且根据上文描述的实施例,从主机接口211传送/由主机接口211接收的分组PACKET可以包括指示数据缓冲器在主机设备100中的缓冲器区当中的位置的缓冲器地址。此外,存储器接口216可以通过与存储器核对接而执行写入或读取数据的操作。

分组管理器214可以根据与主机设备100协商的接口的协议生成分组PACKET,或者从接收到的分组PACKET中解析各种信息。此外,缓冲器管理器215可以管理用于将从分组PACKET解析的各种信息存储到缓冲器内的操作;例如,缓冲器管理器215可以管理从分组PACKET解析的命令CMD或响应RESP的存储操作。

缓冲器管理器215可以管理将从分组PACKET解析的写入数据存储到缓冲器内的操作,并且可以管理将从存储器核读取的数据存储到缓冲器内的操作。根据实施例,缓冲器管理器215可以是在存储控制器210内提供的缓冲器管理器215。根据实施例,缓冲器管理器215可以管理在存储控制器210外提供的缓冲器。

例如,在数据写入操作中,写入命令CMD和对应于其的第一缓冲器地址可以被从接收自主机设备100的分组PACKET中解析,并且第一缓冲器地址可以被存储在存储设备200的缓冲器内。作为对写入命令的响应,存储设备200可以生成包括请求具有某一尺寸单元的写入数据的传输的响应RESP的分组PACKET。在这种情况下,对应于第一写入命令的第一缓冲器地址可以被包含到分组PACKET内,并且主机设备100可以参考包含在分组PACKET内的响应RESP和第一缓冲器地址将存储在由第一缓冲器地址指示的位置处的数据缓冲器中的数据传送至存储设备200。

类似地,根据数据读取操作的示例,读取命令和对应于其的第二缓冲器地址被从接收自主机设备100的分组PACKET中解析,并且第二缓冲器地址可以被存储在存储设备200的缓冲器内。存储设备200生成包括响应于读取命令CMD读取的数据的分组,并且对应于读取命令CMD的第二缓冲器地址可以与响应RESP一起包含在分组PACKET内。此外,主机设备100可以参考包含在该分组PACKET内的响应RESP和第二缓冲器地址将读取数据存储到由第二缓冲器地址指示的位置处的数据缓冲器内。

将再次参考图18A描述图3中所示的主机接口211、CPU 212、FTL 213、分组管理器214、缓冲器管理器215和存储器接口216。

图4是对其应用UFS接口的存储系统20的实施例的框图。图1中的存储系统10可以被应用于图4中的存储系统20。

结合图1参考图4,存储系统20的UFS主机和UFS存储系统可以根据UFS接口执行通信,并且UFS主机可以包括作为组件的主机存储器21、软件模块23和对应于硬件模块的UFS主机控制器25。由于主机存储器21可以提供与参考图1和图2描述的主机存储器130的那些功能类似的功能,因而将省略重复的描述。在图4中,通过采取UFS协议而对接的主机设备(参见图1)被简称为UFS主机,通过采取UFS协议而对接的存储设备200(参见图1)被简称为UFS设备。

软件模块23可以包括软件(例如,应用)和UFS主机控制器驱动。软件可以包括由UFS主机执行的各种应用,UFS主机控制器驱动可以被配置为管理对连接至UFS主机的外围设备的驱动以实现对其的使用,并且数据管理操作(诸如针对存储设备200的数据写入和读取)可以通过UFS主机控制器驱动的执行而得以执行。应用软件和UFS主机控制器驱动可以被加载到主机存储器21或者UFS主机的另一操作存储器内,并且可以由处理器执行。

UFS主机控制器25可以是图2中所示的主机控制器110的实施例。UFS主机控制器25可以包括UFS主机控制器接口(UFS HCI)、UTP协议引擎和UFS互连层(UIC)。

UFS HCI可以通过UFS主机控制器驱动接收所生成的请求,并且将请求提供给UTP协议引擎,或者可以将由UTP协议引擎提供的数据访问结果提供给UFS主机控制器驱动。

UTP协议引擎可以为上层(或应用层)提供服务;例如,UTP协议引擎可以生成分组或者释放分组并且解析其中的信息。

UFS互连层可以与UFS存储设备27通信,并且(例如)UFS互连层可以包括链路层和物理层(PHY层)。链路层可以包括移动工业处理器接口(MIPI)UniPro,并且PHY层可以包括MIPI M-PHY。此外,根据UFS接口,UFS主机可以向UFS存储设备27提供参考时钟信号和复位信号。

UFS存储设备27可以包括存储控制器和存储器核。根据实施例,在图4中,存储控制器可以包括UFS互连层、UTP协议引擎和UFS存储设备接口。此外,存储器核可以是包括非易失性存储器(NVM)核的核。

在UFS主机控制器25和UFS存储设备27相互通信的结构中,响应于来自UFS主机控制器驱动的请求的数据发送和接收可以通过该UFS主机控制器接口被执行。例如,在数据写入操作中,可以由软件模块23将写入数据存储到主机存储器21的数据缓冲器内,UFS主机控制器接口可以访问主机存储器21的数据缓冲器并且所访问的写入数据可以被提供给UFS存储设备27。用于数据发送和接收操作的命令CMD可以被存储到队列内。在示例性实施例中,在使用循环队列时,其中存储命令CMD的头指针HP和尾指针TP可以被存储到主机存储器21内。例如,头指针HP和尾指针TP可以被存储到主机存储器21的门铃寄存器内。

根据本发明构思的至少一些示例性实施例,由存储设备200传送给主机设备100的命令分组PACKET_C和/或响应分组PACKET_R可以包括指示主机存储器21内的数据缓冲器的位置的缓冲器地址。缓冲器地址可以对应于指示数据缓冲器的位置的物理地址。例如,包括缓冲器地址的表格信息(例如,物理区域描述表格(PRDT))可以被存储到主机存储器21的区域内,UFS主机的UTP协议引擎可以通过PRDT确认缓冲器地址,并可以生成包括所确认的缓冲器地址的命令分组PACKET_C。此外,存储设备200的UTP协议引擎可以生成包括被存储在存储设备200中并被管理的缓冲器地址的响应分组PACKET_R。

此外,UFS主机控制器25和UFS存储设备27按照端口映射输入/输出类型被连接,并且写入和读取操作可以以多任务方法被处理。因此,UFS存储设备27可以存储并管理从多个分组推导出的多个命令以及与多个命令对应的缓冲器地址。

根据UFS接口的应用,可以定义各种分组,并且本发明构思的至少一些示例性实施例可以被应用于各种分组中的至少一些。

在示例性实施例中,根据UFS接口的分组可以被定义为UFS协议信息单元(UPIU),并且作为其种类,可以定义诸如用于写入和读取请求的命令UPIU、响应UPIU、包括读取数据的Data_In UPIU、包括写入数据的Data_Out UPIU、任务管理(TM)请求UPIU和准备传送(RTT)UPIU的分组。

此外,根据本发明构思的至少一些示例性实施例,在UFS接口中定义的分组当中的至少一些种类的分组可以包括上文描述的缓冲器地址。例如,请求对主机存储器21的数据缓冲器的访问的分组可以包括上文描述的缓冲器地址。根据本发明构思的至少一个示例性实施例,在主机设备100和存储设备200之间交换分组,在这些分组当中,命令分组PACKET_C可以包括命令CMD、SQ标识SQ_ID和CQ标识CQ_ID,并且响应分组PACKET_R可以包括响应RESP、SQ标识SQ_ID和CQ标识CQ_ID。将参考图14A和图14B描述分组的配置。

在下文中,将描述根据本发明构思的至少一些示例性实施例的处于主机和存储设备之间的接口的详细操作示例。在下文的实施例中将描述采取UFS接口的主机和存储设备。然而,如上文所述,除了UFS接口之外,本发明构思的至少一些示例性实施例可以应用于其他各种接口。

图5是根据本发明构思的至少一些示例性实施例的存储系统10的操作的图示。结合图1和图2参考图5。

主机设备100可以包括多个处理器或者可以包括一个处理器内的多个核120。为了便于解释,假设一个或多个处理器包括多个核120。此外,进一步假设应用UFS协议来用于主机设备100与存储设备200之间的对接。

至少一个核120可以基于至少一个SQ和至少一个CQ执行与存储设备200的对接操作。对接操作可以是以队列对为单元执行的,队列对单元包括用以输入所请求的命令的SQ和用以写入命令CMD的处理单元的CQ。

根据本发明构思的至少一些示例性实施例,至少一个核120可以通过使用SQ和CQ来处理存储器操作。此外,SQ可以将命令CMD或响应RESP的处理地址存储到SQ头指针SHP和SQ尾指针STP内,并且CQ可以将命令CMD或响应RESP的处理地址存储到CQ头指针CHP和CQ尾指针CTP内。

HCI 190可以包括SQ门铃寄存器191、SQ仲裁器192、位图门铃路由器193、位图门铃寄存器194、条目缓冲器195、CQ路由器196和CQ门铃寄存器197。

SQ门铃寄存器191可以是用以存储SQ的顺序或位置的指针存储空间。SQ门铃寄存器191可以存储指示尾部或头部的指针。根据示例性实施例,SQ门铃寄存器191可以包括指示SQ条目空间的基址的寄存器和指示SQ条目的尺寸的寄存器。根据示例性实施例,SQ门铃寄存器191可以存储SQ头指针SHP和SQ尾指针STP。

可以如等式1中那样计算SQ的条目被存储在HCI 190中的地址(被称为SQ条目地址SQ ENTRY ADDR)。

[等式1]

(SQ ENTRY ADDR)=(SQ ENTRY BASE ADDR)+(SHP)×(SQ ENTRY SIZE)

也就是说,SQ条目地址SQ ENTRY ADDR可以是通过将SQ条目的尺寸与SQ头指针SHP的乘积的尺寸加到SQ条目基址SQ ENTRY BASE ADDR上而获得的位置。

在根据命令CMD的输入或者数据的输入/输出出现的每一门铃通知,SQ门铃寄存器191中存储的指针可以被更新。根据本发明构思的至少一些示例性实施例,核120可以将命令CMD写入到SQ。在命令CMD被写入到SQ之后,SQ尾指针STP可以被改变。命令CMD可以通过被核120取出而被顺序或同时传送至存储设备200。例如,核120可以取出SQ并且将存储在该SQ内的命令CMD传送至存储设备200。在写入到SQ的命令CMD被传送至HCI 190之后,SQ头指针SHP可以被改变。

基于存储在SQ门铃寄存器191内的SQ头指针SHP和SQ尾指针STP,写入到SQ的命令CMD可以被传送至SQ仲裁器192。由于SQ可以在主机存储器130(参见图1)上使用,因而可以理解,命令或信号是从SQ头指针SHP或SQ尾指针STP被存储到的SQ门铃寄存器提供的。根据本发明构思的至少一些示例性实施例,由于可以存在多个核120,因而可以存在多个SQ,并且SQ仲裁器192可以接收多个SQ。

SQ仲裁器192可以通过根据参考在多个SQ中选择任何一个SQ而对SQ的处理顺序进行仲裁(确定多个SQ当中处理SQ的顺序)。例如,SQ仲裁器192可以确定多个SQ当中的命令CMD的顺序,并且多个SQ中的每个可以根据所确定的顺序按照先进先出方法执行存储在循环队列中的命令。此外,作为由SQ仲裁器192选择SQ中的任何一个的方法,存在用于根据调度应用的时间点的非抢占式调度或抢占式调度以及根据调度优先级是否改变的静态调度和动态调度的各种算法。例如,SQ仲裁器192可以应用以下方法:轮询调度(round robin)方法,其中,因为SQ是被顺序(或者按照循环方式)选择的,所以在SQ之间的处理时间段是统一的;加权轮询调度方法,其中,通过从具有更大权重的SQ开始处理队列(例如,SQ)而非均匀地分配SQ之间的处理时间段,其中为SQ当中的相对重要的SQ赋予更高权重;以及固定优先级方法,为SQ赋予固定优先级,作为静态调度的一部分,但不限于此。

SQ仲裁器192可以通过比较多个SQ之间的差异而仲裁多个SQ的顺序。根据本发明构思的至少一些示例性实施例,SQ仲裁器192可以将SQ的尾部与其头部进行比较。为了获取关于SQ的信息,SQ仲裁器192可以参考存储在SQ门铃寄存器191内的SQ头指针SHP和SQ尾指针STP。

根据本发明构思的至少一些示例性实施例的SQ仲裁器192可以访问HCI 190内的SQ门铃寄存器191,并且通过这样做SQ仲裁器192可以参考由至少一个核120处理的SQ的头部和尾部,并且可以仲裁以使得优先处理具有不足空白空间的SQ。

根据本发明构思的至少一些示例性实施例,SQ仲裁器192可以对SQ的次序进行仲裁,从而优先处理具有需要优先处理的优先处理标志的SQ。

根据本发明构思的至少一些示例性实施例,SQ仲裁器192可以确定在多个SQ当中选择的SQ或者作为比较的结果具有优先级的SQ。SQ仲裁器192可以将被写入到所确定的SQ内的命令CMD传送至位图门铃路由器193。

位图门铃路由器193可以指定(即路由)其中命令CMD将被存储到的条目缓冲器195的空间。根据本发明构思的至少一些示例性实施例,位图门铃路由器193可以搜索位图门铃寄存器194,其包括有关条目缓冲器195的被占空间和空闲空间的信息,并且可以指定路径或者提供地址信息,使得命令CMD可以被写入到空闲空间内。根据示例性实施例,位图门铃路由器193可以指定其中由SQ仲裁器192选择的命令CMD将被存储到的条目缓冲器195内的空间。

位图门铃寄存器194可以是位存储空间,其可以指示条目缓冲器195内的存储空间的状态。位图门铃是被表达为1位数据空间集合的位图的数据结构。位图门铃寄存器194使用位“0”和位“1”来表达数据空间是否被占用,因此位图门铃路由器193可以通过搜索位“0”将所选择的命令CMD(或操作)写入到未存储数据的空闲空间。

在示例性实施例中,当命令CMD或响应RESP被写入到条目缓冲器195的空闲空间内时,针对该空间的位图可以被改成位“1”。在示例性实施例中,当被写入到条目缓冲器195的占用空间的命令CMD或响应RESP被处理时,针对该空间的位图可以被改成位“0”。

条目缓冲器195可以包括要与存储设备200(参见图1)交换的SQ条目和CQ条目。除了指示是否被数据占用的数据存储空间之外,条目缓冲器195可以进一步包括被配置为存储UTP传送请求描述符(UTRD)、PRDT、SQ标识SQ_ID和CQ标识CQ_ID的缓冲器。

根据示例性实施例,条目缓冲器195可以向存储控制器210(参见图1)提供SQ标识SQ_ID和CQ标识CQ_ID,前者指示所传送的命令CMD被写入到的SQ,后者指示所传送的命令CMD所涉及的CQ。类似地,条目缓冲器195可以从存储控制器210接收SQ标识SQ_ID和CQ标识CQ_ID,前者指示所提供的响应RESP所涉及的SQ,后者指示所传送的响应RESP所涉及的CQ。

主机设备100可以参考数据被存储于其内(即“1”被存储到位图门铃寄存器194内)的条目缓冲器195向存储设备200提供命令CMD。存储设备200可以执行针对命令CMD的某一操作,并且可以将响应RESP提供给主机设备100,作为该操作的结果。响应RESP可以被再次存储到条目缓冲器195内。主机设备100和存储设备200可以以分组PACKET为单元执行数据通信,并且命令CMD和响应RESP可以被分别包含到命令分组PACKET_C和响应分组PACKET_R内。

根据本发明构思的至少一些示例性实施例,条目缓冲器195可以缓冲多个SQ条目和/或CQ条目。例如,条目缓冲器195可以缓冲UTRD、PRDT、命令CMD、响应RESP、SQ标识SQ_ID、CQ标识CQ_ID等。

CQ路由器196可以指定(即路由)其中存储在条目缓冲器195内的响应RESP将被处理的CQ。响应RESP可以由存储设备200提供,之后在处理之前由条目缓冲器195进行缓冲。

根据本发明构思的至少一些示例性实施例,CQ路由器196可以搜索可以在其中对响应RESP进行处理的核,并且可以执行路由,使得响应RESP被写入到由搜索到的核处理的CQ内。根据示例性实施例,作为由CQ路由器196为CQ指派响应RESP的结果,CQ门铃寄存器中的CQ的头指针(例如,CHP)或尾指针(例如,CTP)可以被更新。

在示例性实施例中,CQ路由器196可以参考由存储设备200提供的CQ标识CQ_ID,以确定多个核中的核,该核加载有响应RESP将被写入到的CQ。例如,CQ路由器196可以通过接收加载到第一核内的第一CQ标识CQ_ID而将响应RESP写入到第一CQ内。与上文描述的SQ选择方法类似,可以对由CQ路由器196搜索CQ的方法应用各种选择算法。

此外,根据本发明构思的至少一些示例性实施例,CQ路由器196可以控制CQ与条目缓冲器195之间的数据输入/输出,从而使CQ不溢流。例如,CQ路由器196可以控制CQ与条目缓冲器195之间的数据流,以防止溢流状态,在溢流状态中,CQ满了并且不能存储响应RESP。

CQ门铃寄存器197可以包括被配置为存储CQ的次序或位置的指针存储空间。CQ门铃寄存器197可以存储指示尾部或头部的指针。根据示例性实施例,CQ门铃寄存器197可以包括指示CQ的条目空间的基址和CQ条目的尺寸的寄存器。根据示例性实施例,CQ门铃寄存器197可以存储CQ头指针CHP和CQ尾指针CTP。

可以如等式2中那样计算在HCI 190中存储CQ条目的地址CQ ENTRY ADDR。

[等式2]

(CQ ENTRY ADDR)=(CQ ENTRY BASE ADDR)+(CHP)×(CQ ENTRY SIZE)

也就是说,CQ条目地址CQ ENTRY ADDR可以是通过将CQ条目的尺寸与CQ头指针CHP的乘积的尺寸加到CQ条目基址CQ ENTRY BASE ADDR上而获得的位置。

在根据命令CMD的输入或者数据的输入/输出出现的每一门铃通知,CQ门铃寄存器197中存储的指针可以被更新。根据本发明构思的至少一些示例性实施例,核120可以将接收自HCI 190的响应RESP写入至CQ。在响应RESP被写入到CQ之后,CQ尾指针CTP可以被改变。响应RESP可以通过被核120取出而顺序或同时被处理。例如,核120可以取出CQ并且执行对应于存储在该CQ内的响应RESP的处理操作。在写入到CQ的响应RESP被处理之后,CQ头指针CHP可以被改变。

SQ仲裁器192、位图门铃路由器193和CQ路由器196可以被体现为处理电路,例如,包括逻辑电路的硬件,或者可以被体现为硬件和软件的组合,例如,运行软件的处理器,该软件执行仲裁操作和/或路由操作。具体而言,处理电路可以被体现为CPU、被配置为执行算术和逻辑运算、位移位等的算术逻辑单元(ALU)、数字信号处理器(DSP)、微处理器和专用集成电路(ASIC),但不限于此。

当一个位图门铃被多个核共享时,将发生资源占用开销,并且整个系统的性能可能因此劣化。例如,在UFS协议中,当多个核中的任何一个着手处理位图门铃时,其他核不可以访问位图门铃。

根据本发明构思的至少一个示例性实施例的存储系统10包括SQ仲裁器192和CQ路由器196,以防止多个队列的资源占用,并且通过这样做,即使在多队列环境中也可以流畅地执行主机设备和存储设备之间的采取UFS协议的对接。

根据本发明构思的至少一个示例性实施例,在HCI 190中,适于多个核的专用SQ和专用CQ以及多个核的队列门铃(即,用于SQ门铃和CQ门铃)可以被直接使用。也就是说,根据本发明构思的至少一个示例性实施例,保持了应用于UFS的位图门铃结构,并且通过这样做可以尽可能减少存储系统10的结构中的变化,同时SQ仲裁器192、位图门铃路由器193和CQ路由器196可以保持与采取UFS协议的其他设备的兼容性。

因此,根据本发明构思的至少一个示例性实施例的存储系统10可以在由HCI 190直接向存储设备200传送命令CMD中使用多循环队列(例如,SQ和CQ),并且因此能够显著改善因多个核之间的共享资源的占用而带来的开销以及存储系统10的性能。

图6是根据本发明构思的至少一些示例性实施例的主机设备100(参见图1)的操作方法的流程图。结合图6参考图1和图5。

在操作S110中,主机设备100可以对写入到多个SQ的多个命令CMD进行仲裁。根据示例性实施例,可以有多个核,并且一个核可以通过使用至少一个SQ和至少一个CQ来处理命令CMD和/或响应RESP。例如,SQ仲裁器192可以参考存储在SQ门铃寄存器191内的SQ条目的SQ头指针SHP和SQ尾指针STP仲裁命令CMD之间的优先级。

在操作S120中,主机设备100可以将SQ条目写入到条目缓冲器195。在示例性实施例中,主机设备100可以仅将包含在SQ内的命令CMD存储到条目缓冲器195内,而非整个SQ条目。

在操作S130中,主机设备100可以设置位图门铃。在示例性实施例中,命令CMD可以被存储到条目缓冲器195内,并且位图门铃的具体值可以被设定。

例如,SQ仲裁器192可以将任何一个选定命令CMD传送至位图门铃路由器193,并且位图门铃路由器193可以通过指定命令CMD将被存储于其内的位图门铃寄存器194的空闲空间而将命令CMD存储到条目缓冲器195内。当命令CMD被写入到条目缓冲器195,位图门铃寄存器194的对应于条目缓冲器195的数据区域可以被从位“0”改为位“1”。

在操作S140中,主机设备100可以更新SQ门铃。根据示例性实施例,当命令CMD被写入到条目缓冲器195,主机设备100可以更新SQ门铃寄存器191内的SQ头指针SHP。

根据本发明构思的至少一些示例性实施例,一旦要处理的命令CMD被写入到条目缓冲器195,该命令CMD将被传送至存储设备200(参见图1),并且将不在主机设备100中被处理。因此,主机设备100可以通过更新SQ头指针SHP而提高SQ的空间的效率。

在操作S150中,主机设备100可以传送命令CMD以及接收响应RESP。根据示例性实施例,主机设备100可以将命令CMD传送至存储设备200。存储设备200可以基于命令CMD执行具体存储器操作,并且可以将作为有关执行的结果的元数据的响应RESP提供回主机设备100。在操作S160中,主机设备100可以将接收到的响应RESP存储到条目缓冲器195内。根据本发明构思的至少一些示例性实施例,条目缓冲器195可以缓冲命令CMD和响应RESP。

在操作S170中,主机设备100可以将响应RESP指定(路由)为存储到多个CQ中的任何一个CQ中。例如,参考位图门铃寄存器194,CQ路由器196可以参考写入的多个响应RESP,根据某一基准(例如,优先级)选择多个响应RESP当中的任何一个响应RESP,并且可以将响应RESP存储到CQ门铃寄存器197内。

在操作S180中,主机设备100可以更新CQ门铃。根据示例性实施例,作为由CQ路由器196为CQ指定响应RESP的结果,CQ门铃寄存器197中的CQ的尾指针(例如,CTP)可以被更新。

根据本发明构思的至少一些示例性实施例,HCI 190可以仲裁多个SQ的次序。HCI190可以确定优先级,并且可以将包含在所选择的SQ条目内的命令存储到条目缓冲器195内。例如,存储在第一SQ内的第一命令可以被存储到条目缓冲器195内。当第一命令被存储到条目缓冲器195内之后,HCI 190可以更新第一SQ的头指针。

HCI 190可以在所述多个SQ之中选择下一次序。HCI 190可以将存储在第二SQ内的第二命令存储到条目缓冲器195内。当第二命令被存储到条目缓冲器195内之后,HCI 190可以更新第二SQ的头指针。顺序重复所述过程。存储在条目缓冲器195内的第一命令和第二命令可以根据输入次序被传送至存储设备200。

图7是根据本发明构思的至少一些示例性实施例的向其写入命令CMD的存储系统10的框图。结合图7参考图5和图6。

存储系统10可以包括主机设备100和存储设备200。由于图1中的主机设备100和存储设备200可以被分别应用于该主机设备100和存储设备200,因而省略了无冲突范围内的详细描述。

主机设备100可以包括第一核121和第二核123。

第一核121可以将命令CMD写入到第一SQ SQ1,并且可以参考第一SQ头指针SHP1和第一SQ尾指针STP1。第一SQ头指针SHP1和第一SQ尾指针STP1可以被包含到第一SQ门铃内。此外,第一核121可以通过参考第一CQ头指针CHP1和第一CQ尾指针CTP1来处理被写入到第一CQ CQ1的响应RESP。

第二核123可以将命令CMD写入到第二SQ SQ2,并且可以参考第二SQ头指针SHP2和第二SQ尾指针STP2。此外,第二核123可以包括第二CQ CQ2的第二CQ头指针CHP2和第二CQ尾指针CTP2。

根据本发明构思的至少一些示例性实施例,作为取出在第一核112内执行的第一SQ SQ1的结果,主机设备100可以将第一命令CMD1提供给条目缓冲器195。例如,位图门铃路由器193可以通过参考存储在位图门铃寄存器135内的位而搜索空白空间。条目缓冲器195可以将第一命令CMD1写入数据空间以用于缓冲,并且位图门铃寄存器194内的对应于第一命令CMD1的空间的位图的值可以被从位“0”改为位“1”。

根据示例性实施例,当传送第一命令CMD时,指示命令CMD被写入到第一SQ和第二SQ之间的哪一SQ内的SQ标识SQ_ID可以被存储到条目缓冲器195内。此外,指示第一CQ CQ1和第二CQ CQ2之间具有足够计算资源或者队列的空白数据空间的CQ的CQ标识CQ_ID可以被传送至条目缓冲器195。第一命令CMD1、SQ标识SQ_ID和CQ标识CQ_ID可以以分组PACKET的形式被传送。

根据本发明构思的至少一些示例性实施例,在第一命令CMD1被传送之后,第一SQSQ1的第一SQ头指针SHP1可以被更新。例如,当第一SQ头指针SHP1的头部增大了一(++HEAD)时,由第一SQ1的头部指示的写入空间可以被改变。当第一SQ头指针SHP1加1时,写入到第一SQ SQ1的命令CMD1可以被擦除。也就是说,第一命令CMD可以被从队列中去除。

根据本发明构思的至少一些示例性实施例,一旦要处理的命令CMD被写入到条目缓冲器195,该命令就将不在主机设备100中处理。例如,当第一命令CMD1的存储空间从第一SQ SQ1移至条目缓冲器195时,第一SQ SQ1不必再存储第一命令CMD1。由于具有有限写入空间的循环队列的特点,所以只有在不必要的命令被去除之后才可以写入新的命令。因此,在第一命令CMD1被存储到条目缓冲器195内之后,当写入空间的SQ头指针SHP1被更新(即当头部值增加1)时被写入到第一SQ SQ1的第一命令CMD1可以被从队列中去除。因此,主机设备100可以通过从第一SQ SQ1去除第一命令CMD1而提高输入/输出的效率。

主机设备100可以通过条目缓冲器195将第一命令CMD1提供给存储设备200。在第一命令CMD1被传送之后,位图门铃寄存器194可以将对应于第一命令CMD1被写入的空间的位图的值从位“1”改为位“0”。

图8是根据本发明构思的至少一些示例性实施例的向其写入响应RESP的存储系统10的框图。图8示出了根据图7的第一命令CMD1被写入之后的操作,因此将省略与图7的那些相同的描述。结合图8参考图5到图7。

根据本发明构思的至少一些示例性实施例,存储设备200可以生成第二响应RESP2作为执行第一命令CMD1的结果,并且将第二响应RESP2传送回主机设备100。

根据示例性实施例,条目缓冲器195可以存储响应RESP。例如,条目缓冲器195可以将第二响应RESP2写入数据空间以用于缓冲,对应于第二响应RESP2被写入到的空间的位图的值可以被从位“0”改为位“1”。

除了第二响应RESP2的传送之外,指示与第一SQ SQ1和第二SQ SQ2之间的哪一SQ有关的命令(例如,第一命令CMD1)被处理的SQ标识SQ_ID以及指示与第一CQ CQ1和第二CQCQ2之间的哪一CQ有关的命令被处理的CQ标识CQ_ID可以被传送至主机设备100。第二响应RESP2、SQ标识SQ_ID和CQ标识CQ_ID可以以分组PACKET的形式被传送。

根据示例性实施例,基于由存储设备200提供的CQ标识CQ_ID,响应RESP可以被写入到第一核121和第二核123之间的对应于所参考的CQ标识CQ_ID的CQ。例如,根据指示被加载到第二核113内的第二CQ CQ2的CQ标识CQ_ID,响应RESP可以被写入到第二CQ CQ2。

根据示例性实施例,CQ路由器196可以将响应RESP指定(路由)给CQ。根据示例性实施例,第二响应RESP2可以被暂时存储在条目缓冲器195内,直到确定主机设备100是否可以访问第二CQ CQ2为止。

在示例性实施例中,在第二响应RESP2被写入之后,第二CQ CQ2的第二CQ尾指针CTP2可以被更新。例如,当第二CQ尾指针CTP2的尾部的值增加1(++TAIL)时,由第二CQ2的尾部指示的写入空间可以被改变。也就是说,当尾指针加1时,第二响应RESP2可以排队到第二SQ SQ2。

在第二响应RESP2被写入到第二CQ CQ2之后,位图门铃寄存器194可以将第二响应RESP被写入到的空间的状态从位“1”改为位“0”。

图9是根据本发明构思的至少一些示例性实施例的在其中将命令CMD写入到循环队列的过程的图示。图9中所示的循环队列可以被应用于图1到图8中所示的SQ和/或CQ。结合图9参考图1和图2。

循环队列具有第一个地址和最后一个地址连接起来的阵列,并且是允许数据的插入和删除的数据结构。循环队列的头部和尾部的初始值为0,并且当头部的值等于尾部的值时,应当理解该循环队列为空。在头部和尾部的值分别为0的初始状态中,新数据(例如,命令)可以被写入。新数据(例如,命令)可以被写入到由尾部指示的空间。

参考图9,假设在循环队列中有八个可写入空间,并且第一命令CMD1、第二命令CMD2和第三命令CMD3被写入于其内。

命令CMD可以被写入到由尾部指示的空间,并且每次写入一个命令,指针的值可以增加1。例如,头部的初始值可以为0,并且在第一命令CMD1到第三命令CMD3被写入之后,尾部的值可以为3。也就是说,尾部指示命令将被写入的空间,并且在命令写入之后,尾部的值可以增加,以指示恰好在数据被写入到的空间之后的下一空间。根据示例性实施例,当第一命令CMD1、第二命令CMD2和第三命令CMD3被顺序写入时,尾部可以增加1,并且当第三命令CMD3被写入时,尾部可以指示恰好在第三命令CMD3被写入到的空间之后的下一空间。

在示例性实施例中,第四命令CMD4可以被排队到循环队列。头部可以保持初始值0,并且尾部的值可以当新命令被写入时增加(++TAIL)。因此,尾部可以指示刚好在第四命令CMD4之后的下一空间。

当命令被如上文所述顺序写入到循环队列时,头部的值保持相同,同时尾部的值增加1(++TAIL)。当尾部的值+1等于头部的值时,应当理解循环队列已满。在示例性实施例中,由于作为循环队列的数据容量的队列深度是有限的,因而可以按照重复使用现有地址的绕圈方法分配尾部的值。例如,当循环队列的队列深度为N时,当尾部的增加后的值为N时,尾部可以再次具有0,以作为对应于地址的值。如上文所述,最后一个地址的下一地址为第一地址的循环队列对于有限数据空间分配环境是有利的,并且可以易于体现。

根据本发明构思的至少一些示例性实施例,图1到图8中的SQ和/或CQ可以被实施成循环队列。在使用循环队列结构时,通过简单地将作为尾部指示的写入空间的地址的尾指针加1(++TAIL),命令(或者响应)可以被容易地写入到SQ和/或CQ。类似地,通过使头指针加1(++HEAD),写入到SQ和/或CQ的命令(或响应)可以被容易地清除。

图10是根据本发明构思的至少一些示例性实施例的存储系统10的操作方法的流程图。结合图1和图5参考图10。

在操作S205中,核120可以发出命令CMD。命令CMD可以被写入到SQ条目内。

在操作S210中,核120可以将发出的命令写入到SQ内,并且更新SQ门铃。例如,核120可以通过更新SQ门铃的SQ尾指针STP而根据数据的写入执行处理。

在操作S215中,核120可以将SQ条目传送至HCI 190。SQ本身基本上存储在主机存储器130(参见图1)内,并且可以由核120管理。因此,核120可以将SQ的条目信息传送至HCI190。

在操作S220中,HCI 190可以将SQ条目存储到条目缓冲器195内。根据示例性实施例,HCI 190可以对写入到多个SQ的多个命令CDM进行仲裁,并且SQ仲裁器192可以参考存储在SQ门铃寄存器191内的SQ条目的SQ头指针SHP和SQ尾指针STP仲裁命令CMD之间的优先级。作为仲裁的结果,HCI 190可以将包含在SQ内的命令CMD存储到条目缓冲器195内。

在操作S225中,HCI 190可以设置位图门铃。例如,条目缓冲器195可以将命令CMD写入到数据空间内以用于缓冲,并且位图门铃寄存器194的对应于写入该命令CMD的空间的位图的值可以被从位“0”改为位“1”。

在操作S230中,HCI 190可以更新SQ门铃。根据示例性实施例,当命令CMD被写入到条目缓冲器195时,HCI 190可以更新SQ门铃寄存器191内的SQ头指针SHP。

根据示例性实施例,当要被处理的命令CMD被写入到条目缓冲器195时,HCI 190可以通过更新SQ头指针SHP而提高SQ的空间的效率。

在操作S235中,HCI 190可以传送命令CMD以及接收响应RESP。根据示例性实施例,HCI 190可以将命令CMD传送至存储设备200。存储设备200可以基于命令CMD执行具体存储器操作,并且可以将作为该执行的结果的元数据的响应RESP提供回主机控制器接口190。

在操作S240中,HCI 190可以将接收到的响应RESP存储到条目缓冲器195内。根据示例性实施例,条目缓冲器195可以在响应RESP的路径被设定之前缓冲响应RESP。

在操作S245中,HCI 190可以将响应RESP传送至CQ条目。根据本发明构思的至少一些示例性实施例,CQ路由器196可以将响应RESP指定(路由)为存储到多个CQ中的任何一个CQ中。例如,通过参考位图门铃寄存器194,CQ路由器196可以根据某一基准(例如,优先级)选择多个响应RESP当中的任何一个响应RESP,并且可以将响应RESP的指针存储到CQ门铃寄存器197内。此后,响应RESP可以被写入到CQ。CQ本身基本上存储在主机存储器130内,并且HCI 190可以将CQ的条目信息传送至核120。

在操作S250中,HCI 190可以更新CQ门铃。根据示例性实施例,当响应RESP被写入到CQ时,HCI 190可以更新CQ门铃寄存器197的CQ尾指针CTP。

在操作S255中,HCI 190可以清除位图门铃。根据示例性实施例,HCI190可以将根据命令CMD的响应RESP存储到CQ门铃寄存器197内以被指派给具体的完成队列,并且之后可以通过去除与该命令CMD有关的SQ所涉及的位图以及与该响应RESP有关的CQ所涉及的位图而确保位图门铃的空闲空间。

例如,参考图7和图8中的过程,写入到第一SQ SQ1的第一命令CMD1、SQ标识SQ_ID和CQ标识CQ_ID可以被存储到条目缓冲器195内,并且可以改变位图门铃寄存器194的存储器区域状态(位“0”->位“1”)。第一命令CMD1可以被提供给存储设备200,并且根据第一命令CMD1的第二响应RESP2可以连同SQ标识SQ_ID和CQ标识CQ_ID一起被存储回条目缓冲器195。第二响应RESP2可以被指派给第二CQ CQ2,并且被存储到CQ门铃寄存器197内。当第二响应RESP2被处理时,在第一命令CMD1和第二响应RESP2的处理中生成或存储的数据(被存储到条目缓冲器195内的第一命令CMD1、第二响应RESP2以及SQ标识SQ_ID和CQ标识CQ_ID)可以被清除。作为结果,位图门铃寄存器194和条目缓冲器195可以被初始化。

在操作S260中,CQ条目可以被消耗。根据示例性实施例,CQ可以通过参考CQ门铃寄存器197内的指针而访问响应RESP被存储到的位置。例如,第二核123(参见图8)可以通过参考第二CQ尾指针CTP2将第二响应RESP2写入到第二完成队列CQ2,并且第二响应RESP2可以被第二核123处理。

在操作S265中,CQ门铃可以被更新。根据示例性实施例,在第二响应RESP2被第二核123处理之后,在第二CQ CQ2内再次产生空闲空间。CQ门铃寄存器197可以通过更新CQ头指针CHP2而提高第二CQ CQ2的输入/输出效率。

图11和图12每个是存储在主机存储器130(参见图1)和主机控制器110的寄存器111(参见图1)内的各种信息的示例。结合图11和图12参考图1和图2。

参考图11,主机设备100包括主机存储器130和作为在主机控制器110内提供的组件的寄存器111,并且主机存储器130可以处于主机控制器110外部。对于存储系统10的数据管理而言,根据JEDEC UFS标准定义的各种命令和参数可以被存储到主机存储器130和寄存器111内。

UTF传送请求描述符被存储在主机存储器130的描述符区域内,并且UPIU信息和对应于其的PRDT信息可以被存储在主机存储器130的另一区域内。此外,UTF传送请求描述符可以由存储在寄存器111内的UTF传送请求存储到主机存储器130内或者在主机存储器130内被确认。

此外,写入数据和读取数据被存储到包含在主机存储器130的缓冲器区域内的多个数据缓冲器当中,并且PRDT信息可以包括作为数据缓冲器的物理地址的缓冲器地址。此外,对于命令UPIU中的一些而言可以不存储PRDT信息,例如,对于不与数据缓冲器的访问有关的命令UPIU,可以不存储PRDT信息。

此外,图11进一步示出了由JEDEC UFS标准定义的各种信息。例如,UTF任务管理请求列表可以被进一步存储到主机存储器130的一个区域内,并且(例如)任务管理UPIU和任务管理响应UPIU可以被存储到主机存储器130的一个区域内。此外,任务管理请求列表可以被通过存储在寄存器111内的UPT任务管理请求存储到主机存储器130内。此外,在寄存器111中进一步示出了由JEDEC UFS标准定义的其他组件,例如,主机控制器能力、中断和主机状态、UFS互连(UIC)命令(UIC命令)和供应商详情可以被存储到寄存器111内。

在操作系统内,为将存储在主机存储器130的数据缓冲器内的数据存储到存储设备200(参见图1)内,可以通过创建UTP传送请求描述符以及创建UTP传送请求而启动HCI190(参见图2)。

HCI 190可以访问主机存储器130的对应于UTP传送请求的空间,并且可以读取UTP传送请求描述符,并且可以将对应的命令UPIU发送给存储设备200。

接收到命令UPIU的存储设备200可以将准备传送UPIU连同要接收的尺寸和偏移量信息发送给HCI 190,并且HCI 190可以参考RTT UPIU的报头(传送信息)中的逻辑单元编号(LUN)和标签(标识符)访问UTP传送请求描述符的对应位置,并且最终找到数据缓冲器的地址并且发起数据传送。

图12是示出了根据本发明构思的至少一些示例性实施例的比较对主机存储器130的访问频率的结果的框图。图12示出了主机根据接收自存储设备的分组执行操作的示例。

图12示出了根据一般格式处理分组的示例。参考图12,一个或多个UTP传送请求被存储在主机控制器110内的寄存器111(参见图2)当中,例如,第一传送请求UTP TransferRequest 0可以对应于数据写入请求,并且第三传送请求UTP Transfer Request 2可以对应于数据读取请求。主机控制器110可以响应于第一传送请求Transfer Request 0接收来自存储设备200(参见图1)的RTT UPIU。此外,主机控制器110可以响应于第三传送请求Transfer Request 2接收来自存储设备200的DATA_IN UPIU。

从存储设备200传送的分组PACKET可以包括报头信息存储于其内的报头区域,并且RTT UPIU的报头信息可以包括为了进行该数据写入操作所要接收的数据的尺寸和偏移量信息。主机控制器110可以通过使用RTT UPIU的报头信息中的至少一些数据值而执行处理操作。例如,主机控制器110通过参考RTT UPIU的报头信息中的LUN和标签信息来访问主机存储器130,以识别出对应的UTP传送请求描述符。此外,主机控制器110按照通过UTP传送请求描述符确定的位置访问主机存储器130,由此识别出PRDT信息。此外,主机控制器110可以通过所识别出的PRDT信息(例如,缓冲器地址)访问数据缓冲器,并且将存储在数据缓冲器内的数据传送至存储设备200。

在DATA_IN UPIU被接收到时,主机控制器110可以访问主机控制器130以根据DATA_IN UPIU的报头信息识别出对应的UTP传送请求描述符,并且可以访问主机存储器130,以识别出对应于其的PRDT信息。此外,包含在DATA_IN UPIU中的读取数据可以被存储到对应于所识别出的PRDT信息的数据缓冲器内。

图13是根据UFS接口的数据读取操作和分组的实施方式示例的图示。

参考图13,用于数据读取请求的命令UPIU CMD UPIU可以被从主机设备100传送至存储设备200,并且缓冲器地址(或者数据缓冲器的物理地址(PA))可以被包含在用于数据读取请求的命令UPIU CMD UPIU当中。存储设备200可以响应于用于数据读取请求的命令UPIU从存储器核读取数据,并且可以将包括读取数据连同从命令UPIU解析出的物理地址(PA)的DATA_IN UPIU传送至主机。此外,存储设备200可以将指示对应于命令UPIU的操作被完成的响应UPIU传送至主机设备100。根据上文描述的实施例,主机设备100可以将读取数据存储到具有由从DATA_IN UPIU解析出的物理地址PA指示的位置的数据缓冲器内。可以如以下的图14A和图14B中所示来体现上文陈述的命令UPIU和DATA_IN UPIU的分组结构。

图14A和图14B是根据本发明构思的至少一些示例性实施例的分组的结构的图示。

图14A和图14B示出了缓冲器地址被包含到现有报头区域内的示例;图14A示出了命令UPIU的结构,并且图14B示出了DATA_IN UPIU的结构。

参考图14A,命令UPIU的报头区域包括预留区域,并且根据本发明构思的至少一些示例性实施例的缓冲器地址及其信息可以被包含到一些预留区域内。例如,除了包含在预留区域内的主机存储器缓冲器地址之外,指示缓冲器地址的信息CWA被包含到CMD UPIU内,并且指示缓冲器地址被存储到的区域的尺寸(或者缓冲器地址及其信息被存储到的区域的尺寸)的信息可以被进一步包含到预留区域内。

从采取UFS协议的主机设备100传送至存储设备200的命令分组PACKET_C的配置可以包括SQ标识SQ_ID、CQ标识CQ_ID和响应信用CR_RESP。

指示命令与多个SQ中的哪一SQ有关的SQ标识SQ_ID以及指示命令与多个CQ中的哪一CQ有关的CQ标识CQ_ID被从主机设备100传送至存储设备200。

在示例性实施例中,主机设备100的初始化可以通过使用预留命令执行。

参考图14,DATA_IN UPIU可以包括有效载荷区域,其包括报头区域和数据区域,并且报头区域可以包括预留区域。此外,主机存储器130的缓冲器地址及其信息可以被包含到至少一些预留区域内。

从采取UFS协议的存储设备200传送至主机设备100的响应分组PACKET_R可以包括SQ标识SQ_ID、CQ标识CQ_ID和命令信用CR_CMD。

包含在图14B中所示的预留区域内的信息与图14A中的例示相同或类似,因此将省略对其的详细描述。

图15是根据本发明构思的至少一个示例性实施例的存储设备所应用于的系统1000的图示。图15的系统1000可以基本上是移动系统,诸如便携式通信终端(例如,移动电话)、智能电话、平板个人计算机(PC)、可穿戴设备、护理设备或者物联网(IOT)设备。然而,图15的系统1000不必局限于移动系统,并且可以是PC、膝上型电脑、服务器、媒体播放器或者汽车设备(例如,导航设备)。

参考图15,系统1000可以包括主处理器1100、存储器(例如,1200a和1200b)以及存储设备(例如,1300a和1300b)。此外,系统1000可以包括图像俘获设备1410、用户输入设备1420、传感器1430、通信设备1440、显示器1450、扬声器1460、供电设备1470和连接接口1480中的至少一者。

主处理器1100可以控制系统1000的所有操作,更具体地,可以控制包含在系统1000中的其他组件的操作。主处理器1100可以被体现为通用处理器、专用处理器或者应用处理器。

主处理器1100可以包括至少一个CPU核1110,并且进一步包括被配置为控制存储器1200a和1200b以及/或者存储设备1300a和1300b的控制器1120。在一些实施例中,主处理器1100可以进一步包括加速器1130,其为用于高速数据操作(例如,人工智能(AI)数据操作)的专用电路。加速器1130可以包括图形处理单元(GPU)、神经处理单元(NPU)和/或数据处理单元(DPU),并且可以被体现为与主处理器1100的其他组件物理分开的芯片。

存储器1200a和1200b可以被用作系统1000中的主存储器设备。尽管存储器1200a和1200b的每个可以包括易失性存储器,诸如静态随机存取存储器(SRAM)和/或动态RAM(DRAM),但是存储器1200a和1200b的每个可以包括非易失性存储器,诸如闪速存储器、相变RAM(PRAM)和/或电阻式RAM(RRAM)。存储器1200a和1200b可以被体现到与主处理器1100相同的封装内。

存储设备1300a和1300b可以起着非易失性存储设备的作用,其被配置为存储数据而不管是否对其供电,并且具有比存储器1200a和1200b更大的存储容量。存储设备1300a和1300b可以分别包括存储控制器(STRG CTRL)1310a和1310b以及被配置为经由存储控制器1310a和1310b的控制存储数据的NVM(非易失性存储器)1320a和1320b。尽管NVM 1320a和1320b可以包括具有二维(2D)结构或三维(3D)V-NAND结构的闪速存储器,但是NVM 1320a和1320b可以包括其他类型的NVM,诸如PRAM和/或RRAM。

存储设备1300a和1300b可以与主处理器1100物理分开并包含在系统1000内,或者与主处理器1100体现在同一封装内。此外,存储设备1300a和1300b可以具有固态设备(SSD)或存储卡的类型,并且通过接口与系统100的其他组件以可移除方式组合,所述接口可以是如下文所述的连接接口1480。存储设备1300a和1300b可以是应用标准协议(诸如通用闪存存储(UFS)、嵌入式多媒体卡(eMMC)或高速非易失性存储器(NVMe))的设备,但不限于此。

图像捕获设备1410可以捕获静态图像或移动图像。图像捕获设备1410可以包括相机、摄像机和/或网络摄像头。

用户输入设备1420可以接收系统1000的用户输入的各种类型的数据,并且可以包括触控板、小键盘、键盘、鼠标和/或传声器。

传感器1430可以检测可以从系统1000的外部获得的各种类型的物理量,并且将检测到的物理量转换成电信号。传感器1430可以包括温度传感器、压力传感器、照度传感器、位置传感器、加速度传感器、生物传感器和/或陀螺仪传感器。

通信设备1440可以根据各种通信协议与系统1000外部的其他设备之间传送和接收信号。通信设备1440可以包括天线、收发器和/或调制解调器。

显示器1450和扬声器1460可以起着输出设备的作用,其被配置为分别向系统1000的用户输出视觉信息和听觉信息。

供电设备1470可以适当地转换来自嵌入在系统1000内的电池(未示出)和/或外部电源的电力,并将经转换的电力供应给系统1000的组件的每个。

连接接口1480可以在系统1000和外部设备之间提供连接,该外部设备连接至系统1000并且能够向系统1000传送以及从系统1000接收数据。连接接口1480可以是通过使用各种接口方案体现的,诸如高级技术附件(ATA)、串行ATA(SATA)、外部SATA(e-SATA)、小型计算机小型接口(SCSI)、串行附接SCSI(SAS)、外部组件互连(PCI)、高速PCI(PCIe)、NVMe、IEEE 1394、通用串行总线(USB)接口、安全数字(SD)卡接口、多媒体卡(MMC)接口、eMMC接口、UFS接口、嵌入式UFS(eUFS)接口和紧致闪存(CF)卡接口。

图16是根据实施例的UFS系统2000的图示。UFS系统2000可以是符合电子器件工程联合会(JEDEC)发布的UFS标准的系统,并且包括UFS主机2100、UFS设备2200和UFS接口2300。上文对图1的系统1000的描述也可以在不与下文对图16的描述发生冲突的范围内适用于图16的UFS系统2000。

参考图16,UFS主机2100可以通过UFS接口2300连接至UFS设备2200。在图1的主处理器1100是AP时,UFS主机2100可以被体现为该AP的部分。UFS主机控制器2110和主机存储器2140可以分别对应于图1的主处理器1100的控制器1120以及存储器1200a和1200b。UFS设备2200可以对应于图1的存储设备1300a和1300b,并且UFS设备控制器2210和NVM 2220可以分别对应于图1的存储控制器1310a和1310b以及NVM 1320a和1320b。

UFS主机2100可以包括UFS主机控制器2110、应用2120、UFS驱动2130、主机存储器2140和UFS互连(UIC)层2150。UFS设备2200可以包括UFS设备控制器2210、NVM 2220、存储接口2230、设备存储器2240、UIC层2250和稳压器2260。NVM 2220可以包括多个存储器单元(memory unit)2221。尽管存储器单元2221的每个可以包括具有2D结构或3D结构的V-NAND闪速存储器,但是存储器单元2221的每个可以包括其他种类的NVM,诸如PRAM和/或RRAM。UFS设备控制器2210可以通过存储接口2230连接至NVM 2220。存储接口2230可以被配置为符合标准协议,诸如Toggle或ONFI。

应用2120可以指想要与UFS设备2200通信以使用UFS设备2200的功能的程序。应用2120可以将输入-输出请求(IOR)传送至UFS驱动2130,以实现UFS设备2200上的输入/输出(I/O)操作。IOR可以指数据读取请求、数据存储(或写入)请求和/或数据擦除(或丢弃)请求,但不限于此。

UFS驱动2130可以通过UFS主机控制器接口(UFS-HCI)管理UFS主机控制器2110。UFS驱动2130可以将应用2120生成的IOR转换成由UFS标准定义的UFS命令,并且将UFS命令传送至UFS主机控制器2110。一个IOR可以被转换成多个UFS命令。尽管UFS命令可以基本上由SCSI标准定义,但是UFS命令可以是专用于UFS标准的命令。

UFS主机控制器2110可以通过UIC层2150和UFS接口2300将UFS驱动2130转换的UFS命令传送至UFS设备2200的UIC层2250。在UFS命令的传输期间,UFS主机控制器2110的UFS主机寄存器2111可以起着命令队列(CQ)的作用。

处于UFS主机2100的一侧上的UIC层2150可以包括移动工业处理器接口(MIPI)M-PHY 2151和MIPI UniPro 2152,并且处于UFS设备2200的一侧上的UIC层2250也可以包括MIPI M-PHY 2251和MIPI UniPro 2252。

UFS接口2300可以包括被配置为传送参考时钟信号REF_CLK的线、被配置为传送用于UFS设备2200的硬件复位信号RESET_n的线、被配置为传送一对差分输入信号DIN_t和DIN_c的一对线以及被配置为传送一对差分输出信号DOUT_t和DOUT_c的一对线。

从UFS主机2100提供给UFS设备2200的参考时钟信号的频率可以是19.2MHz、26MHz、38.4MHz和52MHz中的一个,但不限于此。UFS主机2100可以在操作期间,也就是说在UFS主机2100与UFS设备2200之间的数据发送/接收操作期间改变参考时钟信号REF_CLK的频率。UFS设备2200可以通过使用锁相环(PLL)由从UFS主机2100提供的参考时钟信号REF_CLK生成具有各种频率的时钟信号。而且,UFS主机2100可以通过使用参考时钟信号REF_CLK的频率设置UFS主机2100和UFS设备2200之间的数据速率。也就是说,数据速率可以是依据参考时钟信号REF_CLK的频率确定的。

UFS接口2300可以支持多条通道,这些通道中的每个可以被体现为一对差分线路。例如,UFS接口2300可以包括至少一条接收通道和至少一条发送通道。在图16中,被配置为传送一对差分输入信号DIN_T和DIN_C的一对线可以构成接收通道,并且被配置为传送一对差分输出信号DOUT_T和DOUT_C的一对线可以构成发送通道。尽管在图16中示出了一条发送通道和一条接收通道,但是可以改变发送通道的数量和接收通道的数量。

接收通道和发送通道可以基于串行通信方案传送数据。由于接收通道与发送通道分开的结构的原因,可以在UFS主机2100和UFS设备2200之间启用全双工通信。也就是说,在通过接收通道从UFS主机2100接收数据的同时,UFS设备2200可以通过发送通道向UFS主机2100传送数据。此外,从UFS主机2100到UFS设备2200的控制数据(例如,命令)以及将由UFS主机2100存储到UFS设备2200的NVM 2220或者从UFS设备2200的NVM 2220读取的用户数据可以是通过同一条通道传送的。因此,在UFS主机2100和UFS设备2200之间,可能没有必要在一对接收通道和一对发送通道之外进一步提供用于数据传输的单独通道。

UFS设备2200的UFS设备控制器2210可以控制UFS设备2200的所有操作。UFS设备控制器2210可以通过使用作为逻辑数据存储单元的逻辑单元(LU)2211管理NVM 2220。LU2211的数量可以为8,但不限于此。UFS设备控制器2210可以包括FTL,并且通过使用FTL的地址映射信息将接收自UFS主机2100的逻辑数据地址(例如,逻辑块地址(LBA))转换成物理数据地址(例如,物理块地址(PBA))。被配置为将用户数据存储到UFS系统2000中的逻辑块可以具有处于预期的或者预定的范围内的尺寸。例如,根据本发明构思的至少一些示例性实施例,该逻辑块的最小尺寸可以被设置为4Kbyte。然而,至少一些示例性实施例不限于这一示例。例如,该逻辑块的最小尺寸可以被设置成4Kbyte以外的值,例如,该设置可以根据UFS系统2000或其元件的用户或设计者的偏好。

在来自UFS主机2100的命令被通过UIC层2250施加至UFS设备2200时,UFS设备控制器2210可以响应于该命令执行操作,并且在操作完成时向UFS主机2100传送完成响应。

作为示例,在UFS主机2100意在将用户数据存储到UFS设备2200中时,UFS主机2100可以向UFS设备2200传送数据存储命令。在从UFS设备2200接收到指示UFS主机2100准备好接收用户数据(传送就绪)的响应(“准备传送”响应)时,UFS主机2100可以将用户数据传送至UFS设备2200。UFS设备控制器2210可以将接收到的用户数据暂时存储在设备存储器2240内,并且基于FTL的地址映射信息将暂时存储在设备存储器2240内的用户数据存储到NVM2220的选定位置上。

作为另一示例,当UFS主机2100意在读取存储在UFS设备2200内的用户数据时,UFS主机2100可以向UFS设备2200传送数据读取命令。已经接收到该命令的UFS设备控制器2210可以基于该数据读取命令从NVM 2220读取用户数据,并且将该用户数据暂时存储在设备存储器2240内。在读取操作期间,UFS设备控制器2210可以通过使用嵌入于其内的ECC引擎(未示出)检测并且校正读取的用户数据中的错误。更具体地,ECC引擎可以生成用于要被写入到NVM 2220内的写入数据的奇偶校验位,并且所生成的奇偶校验位可以被连同写入数据一起存储到NVM 2220内。在从NVM 2220读取数据期间,ECC引擎可以通过使用从NVM 2220读取的奇偶校验位连同读取数据来校正读取数据中的错误,并且输出经过纠错的读取数据。

此外,UFS设备控制器2210可以将暂时存储在设备存储器2240内的用户数据传送至UFS主机2100。此外,UFS设备控制器2210可以进一步包括AES引擎(未示出)。AES引擎可以通过使用对称密钥算法对被传送至UFS设备控制器2210的数据执行加密操作和解密操作中的至少一者。

UFS主机2100可以将要被传送至UFS设备2200的命令顺序存储到可以起着公共队列的作用的UFS主机寄存器2111内,并且将所述命令顺序传送至UFS设备2200。在这种情况下,甚至在先前传送的命令仍在被UFS设备2200处理的同时,也就是说,甚至在接收到先前传送的命令已经被UFS设备2200处理完的通知之前,UFS主机2100就可以将在CQ中待命的下一命令传送至UFS设备2200。因而,UFS设备2200还可以在先前传送的命令的处理期间接收来自UFS主机2100的下一命令。根据本发明构思的至少一些示例性实施例,可以被存储到CQ内的命令的最大数量(或队列深度)可以是(例如)32。然而,至少一些示例性实施例不限于这一示例。例如,可以存储在CQ内的命令的最大数量(或队列深度)可以是32以外的数,例如,其可以根据UFS系统2000或其元件的用户或设计者的偏好。而且,CQ可以被体现成一个循环队列,其中,存储在该队列内的命令行的开始和末尾由头指针和尾指针表示。

多个存储器单元2221的每个可以包括存储器单元阵列(未示出)和被配置为控制该存储器单元阵列的操作的控制电路(未示出)。存储器单元阵列可以包括2D存储器单元阵列或3D存储器单元阵列。存储器单元阵列可以包括多个存储器单元(memory cell)。尽管所述存储器单元的每个是被配置为存储1位信息的单级单元(SLC),但是存储器单元的每个可以是被配置为存储2位或更多位信息的单元,诸如多级单元(MLC)、三级单元(TLC)和四级单元(QLC)。3D存储器单元阵列可以包括垂直NAND串,其中,至少一个存储器单元具有垂直取向并且位于另一个存储器单元上。

电压VCC、VCCQ和VCCQ2可以作为电源电压被施加至UFS设备2200。电压VCC可以是用于UFS设备2200的主电源电压,并且处于2.4V到3.6V的范围内。电压VCCQ可以是用于主要向UFS设备控制器2210供应低电压的电源电压,并且可以处于1.14V到1.26V的范围内。电压VCCQ2可以是用于主要向I/O接口(例如,MIPI M-PHY 2251)供应低于电压VCC并且高于电压VCCQ的电压的电源电压,并且可以处于1.7V到1.95V的范围内。这些电源电压可以被通过稳压器2260供应给UFS设备2200的相应组件。稳压器2260可以被体现成分别连接至上文描述的电源电压中的不同电源电压的一组单元稳压器。

图17A到图17C是UFS汽车的尺寸外形的图示。当参考图16描述的UFS设备2200被体现为UFS卡4000时,UFS卡4000的外观可以如图17A到图17C中所示。

图17A是根据示例性实施例的UFS卡4000的顶视图。参考图17A,可以看出UFS卡4000完全遵循鲨鱼形状设计。在图17A中,UFS卡4000可以具有下文在表1中作为示例示出的外形尺寸。

[表1]

项目 外形尺寸(mm)
T1 9.70
T2 15.00
T3 11.00
T4 9.70
T5 5.15
T6 0.25
T7 0.60
T8 0.75
T9 R0.80

图17B是根据示例性实施例的UFS卡4000的侧视图。在图17B中,UFS卡4000可以具有下文在表2中作为示例示出的外形尺寸。

[表2]

项目 外形尺寸(mm)
S1 0.74±0.06
S2 0.30
S3 0.52
S4 1.20
S5 1.05
S6 1.00

图17C是根据示例性实施例的UFS卡4000的底视图。参考图17C,用于与UFS插槽电接触的多个引脚可以被形成到UFS卡4000的底表面上。下文将描述引脚的每个的功能。基于UFS卡4000的顶表面和底表面之间的对称性,关于参考图17A和表1描述的外形尺寸的一些信息(例如,T1到T5以及T9)也可以适用于图17C中所示的UFS卡4000的底视图。

用于与UFS主机电连接的多个引脚可以被形成到UFS卡4000的底表面上。参考图17C,引脚的总数可以是12。引脚的每个可以具有矩形形状,并且对应于引脚的信号名称可以如图17C中所示。将参考下面的表3以及上文参考图16提供的描述理解关于引脚的每个的具体信息。

[表3]

图18A是根据示例性实施例的主机存储系统10的框图,并且图18B到图18E是图18A的元件的详细框图。

主机存储系统10可以包括主机100和存储设备200。此外,存储设备200可以包括存储控制器210和NVM 220。根据示例性实施例,主机100可以包括主机控制器110和主机存储器130。主机存储器130可以起着缓冲存储器的作用,其被配置为暂时存储要传送至存储设备200的数据或者从存储设备200接收的数据。

存储设备200可以包括被配置为响应于来自主机100的请求来存储数据的存储介质。作为示例,存储设备200可以包括SSD、嵌入式存储器和可移除外部存储器中的至少一者。在存储设备200是SSD时,存储设备200可以是符合NVMe标准的设备。在存储设备200是嵌入式存储器或者外部存储器时,存储设备200可以是符合UFS标准或eMMC标准的设备。主机100和存储设备200中的每个可以根据所采取的标准协议生成分组并且传送所述分组。

当存储设备200的NVM 220包括闪速存储器时,该闪速存储器可以包括18D NAND存储器阵列或者3D(或垂直)NAND(VNAND)存储器阵列。作为另一示例,存储设备200可以包括其他各种NVM。例如,存储设备200可以包括磁RAM(MRAM)、自旋转移矩MRAM、导电桥接RAM(CBRAM)、铁磁RAM(FRAM)、PRAM、RRAM以及其他各种存储器。

根据实施例,主机控制器110和主机存储器130可以被体现成单独的半导体芯片。替代性地,在一些实施例中,主机控制器110和主机存储器130可以被集成到同一半导体芯片内。作为示例,主机控制器110可以是包含在应用处理器(AP)中的多个模块中的任何一者。AP可以被体现为片上系统(SoC)。此外,主机存储器130可以是包含在AP内的嵌入式存储器,或者可以是位于AP外部的NVM或存储器模块。

主机控制器110可以管理将主机存储器130的缓冲器区域的数据(例如,写入数据)存储到NVM 220内的操作或者将NVM 220的数据(例如,读取数据)存储到该缓冲器区域内的操作。

存储控制器210可以包括主机接口211、存储器接口216和CPU 212。此外,存储控制器210可以进一步包括闪存转换层(FTL)213、分组管理器214、缓冲器存储器216、纠错码(ECC)引擎217和高级加密标准(AES)引擎218。存储控制器210可以进一步包括工作存储器(未示出),FTL 213被加载到该工作存储器内。CPU 212可以执行FTL 213,以控制对NVM 220的数据写入和读取操作。

主机接口211可以向主机100传送以及从主机100接收分组。从主机100向主机接口211传送的分组可以包括要写入到NVM 220的命令或数据。从主机接口211向主机100传送的分组可以包括对命令的响应或者从NVM 220读取的数据。存储器接口216可以将要写入到NVM 220的数据传送至NVM 220,或者接收从NVM 220读取的数据。存储器接口216可以被配置为符合标准协议,诸如Toggle或开放NAND闪存接口(ONFI)。

FTL 213可以执行各种功能,诸如,地址映射操作、损耗均衡操作和垃圾收集操作。地址映射操作可以是将接收自主机100的逻辑地址转换成用于向NVM 220内实际存储数据的物理地址的操作。损耗均衡操作可以是一种通过允许NVM 220的各个块被均匀地使用而防止特定块过度劣化的技术。作为示例,可以使用均衡各物理块的擦除计数的固件技术来体现损耗均衡操作。垃圾收集操作可以是一种用于通过在将现有块的有效数据复制到新块之后擦除现有块而确保NVM 220中的可用容量的技术。

分组管理器215可以根据接口100所同意的接口的协议生成分组,或者从接收自主机100的分组当中解析出各种类型的信息。此外,缓冲器存储器216可以暂时存储要写入到NVM 220的数据或者要从NVM 220读取的数据。尽管缓冲器存储器216可以是包含在存储控制器210内的组件,但是缓冲器存储器216可以处于存储控制器210的外部。

ECC引擎217可以对从NVM 220读取的读取数据执行错误检测和校正操作。更具体地,ECC引擎217可以生成用于要被写入到NVM 220内的写入数据的奇偶校验位,并且所生成的奇偶校验位可以被连同写入数据一起存储到NVM 220内。在从NVM 220读取数据期间,ECC引擎217可以通过使用从NVM 220读取的奇偶校验位连同读取数据来校正读取数据中的错误,并且输出经过纠错的读取数据。

AES引擎218可以通过使用对称密钥算法对被输入至存储控制器210的数据执行加密操作和解密操作中的至少一者。

图18B是图18A的ECC引擎217的详细图示。参考图18B,ECC引擎217可以包括ECC编码电路510和ECC解码电路520。响应于ECC控制信号ECC_CON,ECC编码电路510可以生成用于要被写入到存储器单元阵列221的存储器单元的写入数据WData[0:63]的奇偶校验位ECCP[0:7]。奇偶校验位ECCP[0:7]可以被存储到ECC单元阵列223内。根据实施例,响应于ECC控制信号ECC_CON,ECC编码电路510可以生成用于要被存储到存储器单元阵列221的包括缺陷单元的存储器单元内的写入数据WData[0:63]的奇偶校验位ECCP[0:7]。

响应于ECC控制信号ECC_CON,ECC解码电路520可以通过使用从存储器单元阵列221的存储器单元读取的读取数据RData[0:63]和从ECC单元阵列223读取的奇偶校验位ECCP[0:7]来校正错误位数据,并输出经过纠错的数据Data[0:63]。根据实施例,响应于ECC控制信号ECC_CON,ECC解码电路520可以通过使用从存储器单元阵列221的包括缺陷单元的存储器单元读取的读取数据RData[0:63]和从ECC单元阵列223读取的奇偶校验位ECCP[0:7]来校准错误位数据,并且输出经过纠错的数据Data[0:63]。

图18C是图18B的ECC编码电路510的图示。

参考图18C,ECC编码电路510可以包括奇偶校验发生器511,其响应于ECC控制信号ECC_CON接收64位写入数据WData[0:63]和基本位B[0:7],并且通过使用XOR数组运算生成奇偶校验位ECCP[0:7]。基本位B[0:7]可以是用于生成针对64位写入数据WData[0:63]的奇偶校验位ECCP[0:7]的位,例如,b'00000000位。基本位B[0:7]可以使用其他特定位而非b'00000000位。

图18D是图18B的ECC解码电路520的图示。

参考图18D,ECC解码电路520可以包括校正子发生器521、系数计算器522、1位错误位置检测器523和错误校正器524。校正子发生器521可以响应于ECC控制信号ECC_CON接收64位读取数据和8位奇偶校验位ECCP[0:7],并且通过使用XOR数组运算生成校正子数据S[0:7]。系数计算器522可以通过使用校正子数据S[0:7]计算错误位置等式的系数。错误位置等式可以是以错误位的倒数为根的等式。1位错误位置检测器523可以通过使用所计算出的错误位置等式计算出1位错误的位置。错误校正器524可以基于1位错误位置检测器523的检测结果确定1位错误的位置。错误校正器524可以通过在所确定的1位错误位置信息的基础上反转来自64位读取数据RData[0:63]当中的发生了错误的位的逻辑值而对错误进行校正,并且输出经过纠错的64位数据Data[0:63]。

图18E是图18A的AES引擎218的详细图示。AES引擎218可以通过使用AES算法对数据进行加密和解密,并且可以包括加密模块218a和解密模块218b。尽管图18E示出了加密模块218a和解密模块218b被体现为单独模块的情况,但是在另一种情况下,一个能够既执行加密操作又执行解密操作的模块可以被体现到AES引擎218中。缓冲器存储器216可以是起着缓冲器的作用的易失性存储器,或者可以是NVM。

AES引擎218可以接收从缓冲器存储器216传送的第一数据。加密模块218a可以通过使用加密密钥对从缓冲器存储器216传送的第一数据加密,并且生成第二数据。第二数据可以被从AES引擎218传送至缓冲器存储器216,并且被存储到缓冲器存储器216内。

此外,AES引擎218可以接收从缓冲器存储器216传送的第三数据。第三数据可以是采用与用来对第一数据加密的加密密钥相同的加密密钥来加密的数据。解密模块218b可以采用与用来对第一数据加密的加密密钥相同的加密密钥对从缓冲器存储器216传送的第三数据解密,并且生成第四数据。第四数据可以被从AES引擎218传送至缓冲器存储器216,并且被存储到缓冲器存储器216内。

图19是根据实施例的存储器系统15的框图。参考图19,存储器系统15可以包括存储器设备17和存储器控制器16。存储器系统15可以支持多条信道CH1到CHm,并且存储器设备17可以通过这多条信道CH1到CHm连接至存储器控制器16。例如,存储器系统15可以被体现为存储设备,例如,SSD。

存储器设备17可以包括多个NVM设备NVM11到NVMmn。NVM设备NVM11到NVMmn的每个可以连接至所述多条信道CH1到CHm中的一条,该连接通过对应于其的通路实现。例如,NVM设备NVM11到NVM1n可以通过通路W11到W1n连接至第一信道CH1,并且NVM设备NVM21到NVM2n可以通过通路W21到W2n连接至第二信道CH2。在示例性实施例中,NVM设备NVM11到NVMmn的每个可以被体现为可以根据来自存储器控制器16的单独命令进行操作的任意存储器单元。例如,NVM设备NVM11到NVMmn的每个可以被体现为芯片或裸片,但是本发明构思的至少一些示例性实施例不限于此。

存储器控制器16可以通过多条信道CH1到CHm向存储器设备17传送以及从存储器设备17接收信号。例如,存储器控制器16可以通过信道CH1到CHm向存储器设备17传送命令CMDa到CMDm、地址ADDRa到ADDRm以及数据DATAa到DATAm,或者从存储器设备17接收数据DATAa到DATAm。

存储器控制器16可以通过使用信道CH1到CHm中的对应的一条来选择连接至信道CH1到CHm的每个的NVM设备NVM11到NVMmn中的一个NVM设备,并且向所选择的NVM设备传送以及从所选择的NVM设备接收信号。例如,存储器控制器16可以从连接至第一信道CH1的NVM设备NVM11到NVM1n选择NVM设备NVM11。存储器控制器16可以通过第一信道CH1向所选择的NVM设备NVM11传送命令CMDa、地址ADDRa和数据DATAa,或者从所选择的NVM设备NVM11接收数据DATAa。

存储器控制器16可以通过不同信道并行地向存储器设备17传送以及从存储器设备17接收信号。例如,存储器控制器16可以通过第二信道CH2向存储器设备17传送命令CMDb,与此同时通过第一信道CH1向存储器设备17传送命令CMDa。例如,存储器控制器16可以通过第二信道CH2从存储器设备17接收数据DATAb,同时通过第一信道CH1从存储器设备17接收数据DATAa。

存储器控制器16可以控制存储器设备17的所有操作。存储器控制器16可以向信道CH1到CHm传送信号,并且控制连接至信道CH1到CHm的NVM设备NVM11到NVMmn的每个。例如,存储器控制器16可以将命令CMDa和地址AADRa传送至第一信道CH1,并且控制从NVM设备NVM11到NVM1n中选择的一个NVM设备。

NVM设备NVM11到NVMmn的每个可以经由存储器控制器16的控制进行操作。例如,NVM设备NVM11可以基于要提供给第一信道CH1的命令CMDa、地址ADDRa和数据DATAa对数据DATAa编程。例如,NVM设备NVM21可以基于提供给第二信道CH2的第二命令CMDb和地址ADDRb读取数据DATAb,并且将读取数据DATAb传送至存储器控制器16。

尽管图19示出了存储器设备17通过m条信道与存储器控制器16通信并且包括对应于信道中的每个的n个NVM设备的NVM设备的示例,但是信道的数量和连接至每条信道的NVM设备的数量可以存在各种变化。

图20是根据实施例的存储器系统的框图。参考图20,存储器系统可以包括存储器设备300和存储器控制器400。上文对图1的存储设备200的描述可以适用于图20的存储器系统。存储器设备300可以对应于NVM设备NVM11到NVMmn中的一个,其基于图19的多条信道CH1到CHm中的一条与存储器控制器400通信。存储器控制器400可以对应于图19的存储器控制器16。

存储器设备300可以包括第一到第八引脚P11到P18、存储器接口电路310、控制逻辑电路320和存储器单元阵列330。

存储器接口电路310可以通过第一引脚P11接收来自存储器控制器400的芯片使能信号nCE。存储器接口电路310可以响应于芯片使能信号nCE通过第二到第八引脚P12到P18向存储器控制器400传送以及从存储器控制器400接收信号。例如,在芯片使能信号nCE处于使能状态(例如,低电平)时,存储器接口电路310可以通过第二到第八引脚P12到P18向存储器控制器400传送以及从存储器控制器400接收信号。

存储器接口电路310可以通过第二到第四引脚P12到P14接收来自存储器控制器400的命令锁存器使能信号CLE、地址锁存器使能信号ALE和写入使能信号nWE。存储器接口电路310可以通过第七引脚P17接收来自存储器控制器400的数据信号DQ,或者向存储器控制器400传送数据信号DQ。命令CMD、地址ADDR和数据可以经由数据信号DQ传送。例如,数据信号DQ可以通过多条数据信号线传送。在这种情况下,第七引脚P17可以包括分别对应于多个数据信号DQ的多个引脚。

存储器接口电路310可以从数据信号DQ获得命令CMD,命令CMD是基于写入使能信号nWE的拨转(toggle)时间点在命令锁存器使能信号CLE的使能区段(例如,高电平状态)内接收的。存储器接口电路310可以进一步从数据信号DQ获得地址ADDR,地址ADDR是基于写入使能信号nWE的拨转时间点在地址锁存器使能信号CLE的使能区段(例如,高电平状态)内接收的。

在示例性实施例中,写入使能信号nWE可以被保持在静态状态(例如,高电平或低电平)上,并且在高电平和低电平之间拨转。例如,写入使能信号nWE可以在传送命令CMD或地址ADDR的区段内拨转。因而,存储器接口电路310可以基于写入使能信号nWE的拨转时间点获得命令CMD或地址ADDR。

存储器接口电路310可以通过第五引脚P15接收来自存储器控制器400的读取使能信号nRE。存储器接口电路310可以通过第六引脚P16接收来自存储器控制器400的数据选通信号DQS,或者向存储器控制器400传送数据选通信号DQS。

在存储器设备300的数据(DATA)输出操作中,存储器接口电路310可以在输出数据DATA之前接收读取使能信号nRE,读取使能信号nRE通过第五引脚P15拨转。存储器接口电路310可以生成数据选通信号DQS,数据选通信号DQS在读取使能信号nRE的拨转的基础上拨转。例如,存储器接口电路310可以基于读取使能信号nRE的拨转开始时间生成在预期的或者预定的延迟(例如,tDQSRE)之后开始拨转的数据选通信号DQS。存储器接口电路310可以基于数据选通信号DQS的拨转时间点传送包括数据DATA的数据信号DQ。因而,数据DATA可以与数据选通信号DQS的拨转时间点对齐,并且被传送至存储器控制器400。

在存储器设备300的数据(DATA)输入操作中,在包括数据DATA的数据信号DQ被从存储器控制器400接收到时,存储器接口电路310可以接收拨转的数据选通信号DQS连同来自存储器控制器400的数据DATA。存储器接口电路310可以基于数据选通信号DQS的拨转时间点从数据信号DQ获得数据DATA。例如,存储器接口电路310可以在数据选通信号DQS的上升沿和下降沿上对数据信号DQ采样,并且获得数据DATA。

存储器接口电路310可以通过第八引脚P18向存储器控制器400传送就绪/繁忙输出信号nR/B。存储器接口电路310可以通过就绪/繁忙输出信号nR/B向存储器控制器400传送存储器设备300的状态信息。在存储器设备300处于繁忙状态时(即,当操作正在存储器设备300中执行时),存储器接口电路310可以将表明繁忙状态的就绪/繁忙输出信号nR/B传送至存储器控制器400。在存储器设备300处于就绪状态时(即,操作未在存储器设备300中执行或者已完成时),存储器接口电路310可以将表明就绪状态的就绪/繁忙输出信号nR/B传送至存储器控制器400。例如,在存储器设备300响应于页读取命令从存储器单元阵列330读取数据DATA的同时,存储器接口电路310可以将指示繁忙状态(例如,低电平)的就绪/繁忙输出信号nR/B传送至存储器控制器400。例如,在存储器设备300正在响应于编程命令将数据DATA编程至存储器单元阵列330的同时,存储器接口电路310可以将表明繁忙状态的就绪/繁忙输出信号nR/B传送至存储器控制器400。

控制逻辑电路320可以控制存储器设备300的所有操作。控制逻辑电路320可以接收从存储器接口电路310获得的命令/地址CMD/ADDR。控制逻辑电路320可以响应于接收到的命令/地址CMD/ADDR生成用于控制存储器设备300的其他组件的控制信号。例如,控制逻辑电路320可以生成用于将数据DATA编程至存储器单元阵列330或者从存储器单元阵列330读取数据DATA的各种控制信号。

存储器单元阵列330可以经由控制逻辑电路320的控制存储从存储器接口电路310获得的数据DATA。存储器单元阵列330可以经由控制逻辑电路320的控制将所存储的数据输出至存储器接口电路310。

存储器单元阵列330可以包括多个存储器单元。例如,多个存储器单元可以是闪速存储器单元。然而,本发明构思的至少一些示例性实施例不限于此,存储器单元可以是RRAM单元、FRAM单元、PRAM单元、晶闸管RAM(TRAM)单元或MRAM单元。在下文中将描述存储器单元是NAND闪速存储器单元的实施例。

存储器控制器400可以包括第一到第八引脚P21到P28以及控制器接口电路410。第一到第八引脚P21到P28可以分别对应于存储器设备300的第一到第八引脚P11到P18。

控制器接口电路410可以通过第一引脚P21向存储器设备300传送芯片使能信号nCE。控制器接口电路410可以通过第二到第八引脚P22到P28向通过芯片使能信号nCE选择的存储器设备300传送以及从其接收信号

控制器接口电路410可以通过第二到第四引脚P22到P24向存储器设备300传送命令锁存器使能信号CLE、地址锁存器使能信号ALE和写入使能信号nWE。控制器接口电路410可以通过第七引脚P27向存储器设备300传送以及从其接收数据信号DQ。

控制器接口电路410可以向存储器设备300传送包括命令CMD或地址ADDR的数据信号DQ连同拨转的写入使能信号nWE。控制器接口电路410可以通过传送具有使能状态的命令锁存器使能信号CLE而向存储器设备300传送包括命令CMD的数据信号DQ。而且,控制器接口电路410可以通过传送具有使能状态的地址锁存器启用信号ALE而向存储器设备300传送包括地址ADDR的数据信号DQ。

控制器接口电路410可以通过第五引脚P25向存储器设备300传送读取使能信号nRE。控制器接口电路410可以通过第六引脚P26从存储器设备300接收以及向其传送数据选通信号DQS。

在存储器设备300的数据(DATA)输出操作中,控制器接口电路410可以生成拨转的读取使能信号nRE,并将读取使能信号nRE传送至存储器设备300。例如,在输出数据DATA之前,控制器接口电路410可以生成从静态状态(例如,高电平或低电平)变为拨转状态的读取使能信号nRE。因而,存储器设备300可以基于读取使能信号nRE生成拨转的数据选通信号DQS。控制器接口电路410可以从存储器设备300接收包括数据DATA连同数据选通信号DQS的数据信号DQ。控制器接口电路410可以基于数据选通信号DQS的拨转时间点从数据信号DQ获得数据DATA。

在存储器设备300的数据(DATA)输入操作中,控制器接口电路410可以生成拨转的数据选通信号DQS。例如,在传送数据DATA之前,控制器接口电路410可以生成从静态状态(例如,高电平或低电平)变为拨转状态的数据选通信号DQS。控制器接口电路410可以基于数据选通信号DQS的拨转时间点向存储器设备300传送包括数据DATA的数据信号DQ。

控制器接口电路410可以通过第八引脚P28从存储器设备300接收就绪/繁忙输出信号nR/B。控制器接口电路410可以基于就绪/繁忙输出信号nR/B确定存储器设备300的状态。

图21是根据示例性实施例的存储器设备300的框图。参考图21,存储器设备300可以包括控制逻辑电路320、存储器单元阵列330、页缓冲器340、电压发生器350和行译码器360。尽管图21中未示出,但是存储器设备300可以进一步包括图21中所示的存储器接口电路310。此外,存储器设备300可以进一步包括列逻辑、预解码器、温度传感器、命令解码器和/或地址解码器。

控制逻辑电路320可以控制存储器设备300的各种操作。控制逻辑电路320可以响应于来自存储器接口电路310的命令CMD和/或地址ADDR输出各种控制信号。例如,控制逻辑电路320可以输出电压控制信号CTRL_vol、行地址X-ADDR和列地址Y-ADDR。

存储器单元阵列330可以包括多个存储器块BLK1到BLKz(这里,z是正整数),它们中的每个可以包括多个存储器单元。存储器单元阵列330可以通过位线BL连接至页缓冲器340,并且通过字线WL、串选择线SSL和地选择线GSL连接至行译码器360。

在示例性实施例中,存储器单元阵列330可以包括3D存储器单元阵列,其包括多个NAND串。NAND串的每个可以包括垂直地堆叠设置在衬底上的分别连接至字线的存储器单元。通过引用将美国专利No.7679133、No.8553466、No.8654587、No.8559235以及美国专利公开文本No.2011/0233648的公开内容并入本文。在示例性实施例中,存储器单元阵列330可以包括2D存储器单元阵列,其包括沿行方向和列方向布置的多个NAND串。

页缓冲器340可以包括多个页缓冲器PB1到PBn(这里,n是大于或等于3的正整数),它们可以通过多条位线BL分别连接至存储器单元。页缓冲器340可以响应于列地址Y-ADDR选择位线BL中的至少一条。页缓冲器340可以根据操作模式作为写入驱动器或者感测放大器来操作。例如,在编程操作期间,页缓冲器340可以将对应于所要编程的数据的位线电压施加至选定位线。在读取操作期间,页缓冲器340可以感测选定位线BL的电流或电压,并且感测存储在存储器单元内的数据。

电压发生器350可以基于电压控制信号CTRL_vol生成用于编程、读取和擦除操作的各种电压。例如,电压发生器350可以生成作为字线电压VWL的编程电压、读取电压、编程验证电压和擦除电压。

行译码器360可以响应于行地址X-ADDR选择多条字线WL中的一条并且选择多条串选择线SSL中的一条。例如,行译码器360可以在编程操作期间向选定字线WL施加编程电压和编程验证电压,并且在读取操作期间向选定字线WL施加读取电压。

图22是根据实施例的适用于UFS设备的3D V-NAND结构的图示。在UFS设备的存储模块被体现为3D V-NAND闪速存储器时,包含在存储模块内的多个存储器块的每个可以由图22中所示的等价电路表示。

图22中所示的存储器块BLKi可以指具有形成于衬底上的3D结构的3D存储器块。例如,包含在存储器块BLKi中的多个存储器NAND串可以在相对于衬底的垂直方向内形成的。

参考图22,存储器块BLKi可以包括多个存储器NAND串(例如,NS11到NS33),它们连接在位线BL1、BL2和BL3与公共源极线CSL之间。存储器NAND串NS11到NS33的每个可以包括串选择晶体管SST、多个存储器单元(例如,MC1、MC2……MC8)以及地选择晶体管GST。存储器NAND串NS11到NS33的每个在图22中被示为包括八个存储器单元MC1、MC2……MC8,但不限于此。

串选择晶体管SST可以连接至与之对应的串选择线SSL1、SSL2和SSL3。存储器单元MC1、MC2……MC8的每个可以连接至栅极线GTL1、GTL2……GTL8中的对应的一条。栅极线GTL1、GTL2……GTL8可以分别对应于字线,并且栅极线GTL1、GTL2……GTL8中的一些可以对应于伪字线。地选择晶体管GST可以连接至与之对应的地选择线GSL1、GSL2和GSL3。串选择晶体管SST可以连接至与之对应的位线BL1、BL2和BL3,并且地选择晶体管GST可以连接至公共源极线CSL。

同一级的字线(例如,WL1)可以共同连接,并且地选择线GSL1、GSL2和GSL3以及串选择线SSL1、SSL2和SSL3可以相互分开。图22示出了存储器块BLK连接至八条栅极线GTL1、GTL2……GTL8和三条位线BL1、BL2和BL3的情况,但不限于此。

图23示出了根据另一示例性实施例的存储器设备600的图示。上文对图1的NVM230的描述可以适用于图23的存储器设备600。

参考图23,存储器设备600可以具有芯片对芯片(C2C)结构。C2C结构可以指通过在第一晶片上制造包括单元区CELL的上芯片,在不同于第一晶片的第二晶片上制造包括外围电路区PERI的下芯片,之后使上芯片与下芯片相互接合而形成的结构。这里,该接合过程可以包括使形成于上芯片的最上金属层上的接合金属与形成于下芯片的最上金属层上的接合金属电连接的方法。例如,在接合金属可以包括铜(Cu)时,使用Cu对Cu接合。然而,示例性实施例可以不限于此。例如,接合金属也可以由铝(Al)或钨(W)形成。

存储器设备600的外围电路区PERI和单元区CELL的每个可以包括外部焊盘接合区域PA、字线接合区域WLBA和位线接合区域BLBA。

外围电路区PERI可以包括第一衬底710、层间绝缘层715、形成在第一衬底710上的多个电路元件720a、720b和720c、分别连接至这多个电路元件720a、720b和720c的第一金属层730a、730b和730c以及形成于第一金属层730a、730b和730c上的第二金属层740a、740b和740c。在示例性实施例中,第一金属层730a、730b和730c可以是由具有相对较高的电阻率的钨形成的,并且第二金属层740a、740b和740c可以是由具有相对较低的电阻率的铜形成的。

在图23中所示的示例性实施例中,尽管仅示出并描述了第一金属层730a、730b和730c以及第二金属层740a、740b和740c,但是示例性实施例不限于此,并且一个或多个额外金属层可以被进一步形成到第二金属层740a、740b和740c上。形成于第二金属层740a、740b和740c上的一个或多个额外金属层的至少部分可以由铝等形成,其具有比第二金属层740a、740b和740c的那些低的电阻率。

层间绝缘层715可以设置在第一衬底710上,并且覆盖多个电路元件720a、720b和720c、第一金属层730a、730b和730c以及第二金属层740a、740b和740c。层间绝缘层715可以包括诸如氧化硅或氮化硅等的绝缘材料。

下接合金属771b和772b可以形成于字线接合区域WLBA内的第二金属层740b上。在字线接合区域WLBA内,外围电路区PERI中的下接合金属771b和772b可以电接合至单元区CELL的上接合金属871b和872b。下接合金属771b和772b以及上接合金属871b和872b可以由铝、铜或钨等形成。此外,单元区CELL内的上接合金属871b和872b可以被称为第一金属焊盘,并且外围电路区PERI内的下接合金属771b和772b可以被称为第二金属焊盘。

单元区CELL可以包括至少一个存储器块。单元区CELL可以包括第二衬底810和公共源极线820。在第二衬底810上,可以沿垂直于第二衬底810的上表面的方向(Z轴方向)堆叠设置多条字线831到838(即830)。至少一条串选择线和至少一条地选择线可以被分别布置到多条字线830上和以下,并且这多条字线830可以设置在所述的至少一条串选择线和至少一条地选择线之间。

在位线接合区域BLBA内,沟道结构CH可以沿垂直于第二衬底810的上表面的方向(Z轴方向)延伸,并且穿过所述的多条字线830、至少一条串选择线和至少一条地选择线。沟道结构CH可以包括数据存储层、沟道层和掩埋绝缘层等,并且沟道层可以电连接至第一金属层850c和第二金属层860c。例如,第一金属层850c可以是位线接触,并且第二金属层860c可以是位线。在示例性实施例中,位线860c可以沿平行于第二衬底810的上表面的第一方向(Y轴方向)延伸。

在图23中所示的示例性实施例当中,可以将设置沟道结构CH、位线860c等的区域定义成位线接合区域BLBA。在位线接合区域BLBA内,位线860c可以电连接至外围电路区PERI内的提供页缓冲器893的电路元件720c。位线860c可以连接至单元区CELL内的上接合金属871c和872c,并且上接合金属871c和872c可以连接至下接合金属771c和772c,下接合金属771c和772c连接至页缓冲器893的电路元件720c。在示例性实施例中,编程操作可以是基于页单元执行的,此时页单元的写入数据被存储在页缓冲器893内,并且读取操作可以是基于亚页单元执行的,此时亚页单元的读取数据被存储到页缓冲器893内。而且,在编程操作和读取操作中,通过位线传送的数据的单元可以互不相同。

在字线接合区域WLBA内,多条字线830可以沿平行于第二衬底810的上表面并且垂直于第一方向的第二方向(X轴方向)延伸,并且可以连接至多个单元接触插塞841到847(即840)。这多条字线830和多个单元接触插塞840可以在由多条在第二方向内以不同长度延伸的字线830的至少部分提供的焊盘内相互连接。第一金属层850b和第二金属层860b可以顺序连接至与多条字线830连接的这多个单元接触插塞840的上部。这多个单元接触插塞840可以通过字线接合区域WLBA内的单元区CELL的上接合金属871b和872b以及外围电路区PERI的下接合金属771b和772b连接至外围电路区PERI。

这多个单元接触插塞840可以电连接至外围电路区PERI内的形成行译码器894的电路元件720b。在示例性实施例中,行译码器894的电路元件720b的操作电压可以不同于形成页缓冲器893的电路元件720c的操作电压。例如,形成页缓冲器893的电路元件720c的操作电压可以大于形成行译码器894的电路元件720b的操作电压。

公共源极线接触插塞880可以设置在外部焊盘接合区域PA内。公共源极线接触插塞880可以由诸如金属、金属化合物或多晶硅等的导电材料形成,并且可以电连接至公共源极线820。第一金属层850a和第二金属层860a可以顺序堆叠设置在公共源极线接触插塞880的上部上。例如,设置公共源极线接触插塞880、第一金属层850a和第二金属层860a的区域可以被定义为外部焊盘接合区域PA。

输入-输出焊盘705和805可以设置在外部焊盘接合区域PA内。参考图23,覆盖第一衬底710的下表面的下绝缘膜701可以形成于第一衬底710以下,并且第一输入-输出焊盘705可以形成于下绝缘膜701上。第一输入-输出焊盘705可以通过第一输入-输出接触插塞703连接至设置在外围电路区PERI内的多个电路元件720a、720b和720c中的至少一个,并且可以通过下绝缘膜701与第一衬底710隔开。此外,侧面绝缘膜可以设置在第一输入-输出接触插塞703与第一衬底710之间,从而使第一输入-输出接触插塞703与第一衬底710电隔离。

参考图23,覆盖第二衬底810的上表面的上绝缘膜801可以形成于第二衬底810上,并且第二输入-输出焊盘805可以设置在上绝缘层801上。第二输入-输出焊盘805可以通过第二输入-输出接触插塞803连接至设置在外围电路区PERI内的多个电路元件720a、720b和720c中的至少一个。在示例性实施例中,第二输入-输出焊盘805电连接至电路元件720a。

根据示例性实施例,第二衬底810和公共源极线820可以不设置在设置第二输入-输出接触插塞803的区域内。而且,第二输入-输出焊盘805可以不在第三方向(Z轴方向)内与字线830重叠。参考图23,第二输入-输出接触插塞303可以在平行于第二衬底810的上表面的方向内与第二衬底810隔开,并且可以穿过单元区CELL的层间绝缘层815,从而连接至第二输入-输出焊盘805。

根据示例性实施例,可以选择性地形成第一输入-输出焊盘705和第二输入-输出焊盘805。例如,存储器设备600可以仅包括设置在第一衬底710上的第一输入-输出焊盘705或者设置在第二衬底810上的第二输入-输出焊盘805。替代性地,存储器设备600可以既包括第一输入-输出焊盘705又包括第二输入-输出焊盘805。

在外部焊盘接合区域PA和位线接合区域BLBA的每个当中,在最上金属层上提供的金属图案可以被提供成伪图案或者最上金属层可以不存在,所述最上金属层分别包含于单元区CELL和外围电路区PERI内。

在外部焊盘接合区域PA中,存储器设备600可以包括处于外围电路区PERI的最上金属层内的下金属图案773a,其对应于形成在单元区CELL的最上金属层内的上金属图案872a,并且具有与单元区CELL的上金属图案872a相同的截面形状,从而与之相互连接。在外围电路区PERI中,形成于外围电路区PERI的最上金属层内的下金属图案773a可以不连接至接触。类似地,在外部焊盘接合区域PA内,可以在单元区CELL的最上金属层内形成上金属图案872a,其对应于形成在外围电路区PERI的最上金属层内的下金属图案773a并且具有与外围电路区PERI的下金属图案773a相同的形状。

下接合金属771b和772b可以形成于字线接合区域WLBA内的第二金属层740b上。在字线接合区域WLBA内,外围电路区PERI的下接合金属771b和772b可以通过Cu对Cu接合电连接至单元区CELL的上接合金属871b和872b。

此外,在位线接合区域BLBA内,可以在单元区CELL的最上金属层内形成上金属图案892,其对应于形成在外围电路区PERI的最上金属层内的下金属图案752并且具有与外围电路区PERI的下金属图案752相同的截面形状。可以不在形成于单元区CELL的最上金属层内的上金属图案892上形成接触。

在示例性实施例中,对应于形成在单元区CELL和外围电路区PERI之一当中的最上金属层内的金属图案,可以在单元区CELL和外围电路区PERI中的另一者当中的最上金属层内形成具有与该金属图案相同的形状的增强金属图案。可以不在该增强金属图案上形成接触。

图24是根据实施例的主机存储系统10所应用于的数据中心3000的图示。

参考图24,数据中心3000可以是收集各种类型的各条数据并且提供服务的设施,其可以被称为数据存储中心。数据中心3000可以是用于操作搜索引擎和数据库的系统,并且可以是由诸如银行的公司或者政府机构使用的计算系统。数据中心3000可以包括应用服务器3100到3100n以及存储服务器3200到3200m。可以根据实施例对应用服务器3100到3100n的数量以及存储服务器3200到3200m的数量做出各种选择。应用服务器3100到3100n的数量可以不同于存储服务器3200到3200m的数量。

应用服务器3100或存储服务器3200可以包括处理器3110和3210以及存储器3120和3220中的至少一者。现在将描述存储服务器3200以作为示例。处理器3210可以控制存储服务器3200的所有操作,访问存储器3220,并且执行加载到存储器3220中的指令和/或数据。存储器3220可以是双数据速率同步DRAM(DDR SDRAM)、高带宽存储器(HBM)、混合存储器立方体(HMC)、双列直插存储器模块(DIMM)、Optane DIMM和/或非易失性DIMM(NVMDIMM)。在一些实施例中,可以对存储服务器3200中包含的处理器3210和存储器3220做出各种选择。在实施例中,处理器3210和存储器3220可以提供处理器-存储器对。在实施例中,处理器3210的数量可以不同于存储器3220的数量。处理器3210可以包括单核处理器或者多核处理器。上文对存储服务器3200的描述可以类似地适用于应用服务器3100。在一些实施例中,应用服务器3100可以不包括存储设备3150。存储服务器3200可包括至少一个存储设备3250。可以根据实施例对包含在存储服务器3200中的存储设备3250的数量做出各种选择。

应用服务器3100到3100n可以通过网络3300与存储服务器3200到3200m通信。可以通过使用光纤信道(FC)或以太网体现网络3300。在这种情况下,FC可以是用于相对较高速度的数据传输的媒介,并且使用具有高性能和高可用性的光学开关。根据网络3300的访问方法,存储服务器3200到3200m可以被提供为文件存储、块存储或对象存储。

在实施例中,网络3300可以是存储专用网络,例如,存储区域网(SAN)。例如,SAN可以是FC-SAN,其使用FC网络并且根据FC协议(FCP)体现。作为另一示例,SAN可以是互联网协议(IP)-SAN,其使用传输控制协议(TCP)/IP网络,并且根据基于TCP/IP的SCSI协议或互联网SCSI(iSCSI)协议来体现。在另一实施例中,网络3300可以是一般网络,例如,TCP/IP网络。例如,网络3300可以是根据诸如基于以太网的FC(FCoE)、网络附接存储(NAS)和基于织构的NVMe(NVMe-oF)的协议来体现的。

在下文中,将主要描述应用服务器3100和存储服务器3200。对应用服务器3100的描述可以适用于另一应用服务器3100n,并且对存储服务器3200的描述可以适用于另一存储服务器3200m。

应用服务器3100可以通过网络3300将用户或客户端请求存储的数据存储到存储服务器3200到3200m中的一个当中。而且,应用服务器3100可以通过网络3300从存储服务器3200到3200m中的一个获得用户或客户端请求读取的数据。例如,应用服务器3100可以被体现为web服务器或者数据库管理系统(DBMS)。

应用服务器3100可以通过网络3300访问包含在另一应用服务器3100n内的存储器3120n或存储设备3150n。替代性地,应用服务器3100可以通过网络3300访问包含在存储服务器3200到3200m内的存储器3220到3220m或者存储设备3250到3250m。因而,应用服务器3100可以对存储在应用服务器3100到3100n和/或存储服务器3200到3200m当中的数据执行各种操作。例如,应用服务器3100可以执行用于在应用服务器3100到3100n和/或存储服务器3200到3200m之间移动或复制数据的指令。在这种情况下,数据可以被直接或者通过存储服务器3200到3200m的存储器3220到3220m从存储服务器3200到3200m的存储设备3250到3250m移动至应用服务器3100到3100n的存储器3120到3120n。通过网络3300移动的数据可以是出于安全或隐私的考虑受到加密的数据。

现在将描述存储服务器3200以作为示例。接口3254可以在处理器3210和控制器3251之间提供物理连接,并且可以在网络接口卡(NIC)3240和控制器3251之间提供物理连接。例如,接口3254可以是使用直接附接存储(DAS)方案体现的,在该方案中,存储设备3250是采用专用线缆直接连接的。例如,接口3254可以是通过使用各种接口方案体现的,诸如ATA、SATA、e-SATA、SCSI、SAS、PCI、PCIe、NVMe、IEEE 1394、USB接口、SD卡接口、MMC接口、eMMC接口、UFS接口、eUFS接口和/或CF卡接口。

存储服务器3200可以进一步包括开关3230和NIC(网络互连)3240。开关3230可以经由处理器3210的控制选择性地将处理器3210连接至存储设备3250或者选择性地将NIC3240连接至存储设备3250。

在实施例中,NIC 3240可以包括网络接口卡和网络适配器。NIC 3240可以通过有线接口、无线接口、蓝牙接口或光学接口连接至网络3300。NIC 3240可以包括内部存储器、数字信号处理器(DSP)和主机总线接口,并且通过主机总线接口连接至处理器3210和/或开关3230。主机总线接口可以被体现为接口3254的上文所述示例中的一种。在实施例中,NIC3240可以与处理器3210、开关3230和存储设备3250中的至少一者集成。

在存储服务器3200到3200m或者应用服务器3100到3100n中,处理器可以将命令传送至存储设备3150到3150n和3250到3250m或者存储器3120到3120n和3220到3220m,并且对数据进行编程或读取。在这种情况下,该数据可以是通过ECC引擎校正了错误的数据。该数据可以是针对其执行数据总线转换(DBI)操作或者数据掩蔽(DM)操作的数据,并且可以包括循环冗余码(CRC)信息。该数据可以是出于安全或隐私的考虑受到加密的数据。

存储设备3150到3150n和3250到3250m可以响应于接收自处理器的读取命令向NAND闪速存储设备3252到3252m传送控制信号以及命令/地址信号。因而,在从NAND闪速存储设备3252到3252m读取数据时,读取启用(RE)信号可以被作为数据输出控制信号输入,因而数据可以被输出至DQ总线。数据选通信号DQS可以是使用该RE信号生成的。所述命令和地址信号可以被依据写入启用(WE)信号的上升沿或下降沿锁存到页缓冲器内。

控制器3251可以控制存储设备3250的所有操作。在实施例中,控制器3251可以包括SRAM。控制器3251可以响应于写入命令向NAND闪速存储设备3252写入数据或者响应于读取命令从NAND闪速存储设备3252读取数据。例如,写入命令和/或读取命令可以是从存储服务器3200的处理器3210、另一存储服务器3200m的处理器3210m或者应用服务器3100和3100n的处理器3110和3110n提供的。DRAM 3253可以暂时存储要被写入到NAND闪速存储设备3252的数据或者从NAND闪速存储设备3252读取的数据。而且,DRAM 3253可以存储元数据。这里,元数据可以是用户数据或者由控制器3251生成的用以管理NAND闪速存储设备3252的数据。存储设备3250可以包括用于安全或隐私的安全元件(SE)。

因而,已经描述了本发明构思的示例性实施例,显然可以通过很多种方式使其发生变化。这样的变化不应被视为脱离本发明构思的示例性实施例的实质和范围,并且意在将对于本领域技术人员显而易见的所有此类修改包含到下述权利要求的范围内。

72页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:扩展坞信息指令的配置和传输方法、装置及扩展坞

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!