一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于数据大小的低延迟存储的制作方法

2022-11-23 09:13:52 来源:中国专利 TAG:

基于数据大小的低延迟存储
1.交叉引用
2.本专利申请要求由克雷希(cresci)等人于2021年4月29日提交的题为“基于数据大小的低延迟存储(low latency storage based on data size)”的第17/244,734号美国专利申请的优先权,所述美国专利申请转让给本受让人,并且明确地以全文引用的方式并入本文中。
技术领域
3.本技术领域涉及基于数据大小的低延迟存储。


背景技术:

4.存储器装置广泛用于将信息存储在例如计算机、用户装置、无线通信装置、相机、数字显示器等各种电子装置中。通过将存储器装置内的存储器单元编程为各种状态来存储信息。例如,二进制存储器单元可被编程为常常对应于逻辑1或逻辑0的两个支持状态中的一个。在一些实例中,单个存储器单元可支持多于两个可能状态,存储器单元可存储所述可能状态中的任一个。为了存取由存储器装置存储的信息,组件可读取或感测存储器装置内的一或多个存储器单元的状态。为了存储信息,组件可将存储器装置内的一或多个存储器单元写入或编程到相应状态。
5.存在各种类型的存储器装置,包含磁性硬盘、随机存取存储器(ram)、只读存储器(rom)、动态ram(dram)、同步动态ram(sdram)、静态ram(sram)、铁电ram(feram)、磁性ram(mram)、电阻性ram(rram)、快闪存储器、相变存储器(pcm)、3维交叉点存储器(3d交叉点)、或非(nor)和与非(nand)存储器装置等。存储器装置可以是易失性或非易失性的。除非由外部电源周期性更新,否则易失性存储器单元(例如,dram单元)可随时间推移而丢失其编程状态。非易失性存储器单元(例如,nand存储器单元)即使在不存在外部电源的情况下仍可在很长一段时间内维持其编程状态。


技术实现要素:

6.本文描述了一种设备。所述设备可包含:存储器;逻辑,其被配置成从主机接收命令;以及处理器,其与所述存储器和所述逻辑耦合,所述处理器被配置成至少部分地基于所述命令确定待存取的所述数据小于阈值,并且至少部分地基于所述确定将与所述命令相关联的数据写入到所述存储器,其中所述逻辑进一步被配置成至少部分地基于来自所述处理器的所述数据已写入到所述存储器的指示从所述存储器读取所述数据,并且将所述数据输出到所述主机。
7.本文描述了另一种设备。所述设备可包含:存储器;逻辑,其被配置成从主机接收命令;以及处理器,其与所述逻辑和所述存储器耦合,所述处理器被配置成确定与所述命令相关联的数据小于阈值,并且至少部分地基于确定所述处理器准备好接收与所述命令相关联的数据的第一指示而将所述数据写入到所述存储器,其中所述逻辑进一步被配置成至少
部分地基于来自所述处理器的所述第一指示已写入到所述存储器并且将所述第一指示输出到所述主机的第二指示从所述存储器读取所述第一指示。
8.本文描述了另一种设备。所述设备可包含:逻辑,其被配置成从主机接收命令;处理器,其中所述逻辑、所述处理器或这两者被配置成确定在所述逻辑处接收到的所述命令是否与小于阈值的数据相关联;第一存储器,其经由与第一传送速度相关联的第一通信路径与所述逻辑耦合,所述第一存储器被配置成存储与所述命令的第一子集相关联的数据,所述第一子集与小于所述阈值的数据相关联;以及第二存储器,其经由与慢于所述第一传送速度的第二传送速度相关联的第二通信路径与所述逻辑耦合,所述第二存储器被配置成存储与所述命令的第二子集相关联的数据,所述第二子集与大于所述阈值的数据相关联。
附图说明
9.图1示出根据本文所公开的实例的支持基于数据大小的低延迟存储的系统的实例。
10.图2示出根据本文所公开的实例的支持基于数据大小的低延迟存储的系统的实例。
11.图3示出根据本文所公开的实例的支持基于数据大小的低延迟存储的系统的实例。
12.图4和5示出根据本文所公开的实例的用于基于数据大小执行低延迟存储的操作的实例集合。
13.图6示出根据本文所公开的实例的支持基于数据大小的低延迟存储的系统的实例。
14.图7示出说明根据本文所公开的实例的支持基于数据大小的低延迟存储的操作的实例集合的流程图。
具体实施方式
15.一种存储器系统可包含处理器、前端、中间端、后端和存储性存储器。在一些实例中,前端可被配置成从主机系统接收命令和数据。处理器可用于处理在前端处接收到的命令并且管理前端与存储性存储器之间的数据的移动。处理器可与存储器(其可被称为紧固耦合或紧密耦合的存储器)耦合,其中存储器可被配置成存储用于存储器系统的系统级信息、用于执行频繁存取的命令的指令或这两者,以及其它信息。在一些实例中,前端可将从主机系统接收到的数据传送到中间端,作为将数据传送到存储性存储器的一部分。中间端可在数据缓冲器中临时存储从前端接收到的数据。并且后端可从中间端检索数据并且(例如,使用存储器控制器)将数据存储在存储性存储器中。在一些实例中,数据缓冲器的粒度(例如,指定用于数据缓冲器中的条目的大小)可超出从前端接收到的数据的大小。
16.如果待发送的数据数量小于例如由包格式支持的大小,则可不充分利用数据包(例如,数据包的末端可包含填充位)。因此,可类似地不充分利用用于存储此数据包的数据缓冲器中的条目。另外,将具有少量数据的数据包存储在数据缓冲器中可不必要地或不有效地破坏前端与存储器装置之间的其它更有效的数据包(例如,包含最大支持量的数据的数据包)的传送
‑‑
例如,因为未充分利用的(sub-utilized)数据包可占据数据缓冲器中原
本可由更充分利用的数据包使用的条目。因此,未充分利用的数据包可降低与在前端与一或多个存储器装置之间传送数据相关联的总体数据速率。并且,在实例中,在数据缓冲器用作可直接从中读取数据的高速缓存存储器的情况下,未充分利用的数据包可降低高速缓存存储器的效率
‑‑
例如,通过使小数据包存储在支持较大数据包的高速缓存存储器的条目中。高速缓存存储器的效率可基于高速缓存缓冲存储器的每个条目中所存储的信息的平均量。
17.为了更充分地利用内部数据缓冲器并且增加与在存储器系统中向存储器和从存储器传送数据相关联的数据速率,可以将传送小于内部数据缓冲器粒度的数据量的数据包存储在例如紧固耦合的存储器之类的第一存储器中,而不是例如存储性存储器之类的第二存储器中。在一些实例中,与紧固耦合的存储器耦合的处理器可确定在存储器系统的前端逻辑处接收到的命令(例如,涉及将数据发送到主机系统)是否与小于阈值(例如,4千字节)的数据相关联。在一些实例中,处理器可基于或响应于确定与命令相关联的数据小于阈值而将与命令相关联的数据存储在紧固耦合的存储器中。前端逻辑可从紧固耦合的存储器读取数据(例如,直接读取、间接通过存储器系统控制器读取)。
18.在另一实例中,与紧固耦合的存储器耦合的处理器可确定在存储器系统的前端逻辑处接收到的命令(例如,涉及从主机系统接收数据)是否与小于阈值(例如,4千字节)的数据相关联。在一些实例中,处理器可基于或响应于确定与命令相关联的数据小于阈值而存储指示处理器准备好在紧固耦合的存储器中传送数据的信息,例如包。前端逻辑可从紧固耦合的存储器获得包,并且将包发送到主机系统,所述主机系统可用与命令相关联的数据作出响应。在接收到数据之后,前端逻辑可将数据写入到紧固耦合的存储器(例如,直接写入、间接通过存储器系统控制器写入)。
19.通过识别未充分利用的数据包并将未充分利用的数据包写入到紧固耦合的存储器,内部数据缓冲器可由充分利用的数据包更有效地使用,从而增加在存储器系统的前端与存储性存储器之间传送数据的速率。并且,通过识别未充分利用的数据包并将未充分利用的数据包写入到紧固耦合的存储器,可减少与缓冲充分利用的数据包相关联的延迟(例如,通过增加数据缓冲器中的可用条目的量),从而增加在存储器系统的前端与存储性存储器之间传送数据的速率。并且,在存取紧固耦合的存储器比存取存储性存储器更快的实例中,与发送和接收小数据包相关联的操作的延迟可相对于使用存储性存储器来处置小数据包中的数据而减少。另外,当内部数据缓冲器用作高速缓存存储器时,将小数据包存储在紧固耦合的存储器中,并且内部数据缓冲器中的较大数据包可增加高速缓存存储器的效率
‑‑
例如通过平均增加高速缓存存储器的每个条目中存储的数据量。
20.首先在系统和装置的上下文中描述本公开的特征。还在系统和过程流程的上下文中描述本公开的特征。在涉及基于或相应于数据大小的低延迟存储周期的设备图和流程图的上下文中进一步示出和描述本公开的这些和其它特征。
21.图1示出根据本文所公开的实例的支持基于数据大小的低延迟存储的系统100的实例。系统100包含与存储器系统110耦合的主机系统105。
22.存储器系统110可以是或包含任何装置或装置的集合,其中装置或装置的集合包含至少一个存储器阵列。例如,存储器系统110可为或包含通用快闪存储(ufs)装置、嵌入式多媒体控制器(emmc)装置、快闪装置、通用串行总线(usb)快闪装置、安全数字(sd)卡、固态
驱动器(ssd)、硬盘驱动器(hdd)、双列直插式存储器模块(dimm)、小型dimm(so-dimm),或非易失性dimm(nvdimm),以及其它可能性。
23.系统100可包含在计算装置中,所述计算装置如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具物联网(iot)功能的装置、嵌入式计算机(例如,包含在交通工具、工业设备或联网商业装置中的嵌入式计算机),或包含存储器和处理装置的任何其它计算装置。
24.系统100可包含主机系统105,其可与存储器系统110耦合。在一些实例中,此耦合可包含与主机系统控制器106的接口,所述主机系统控制器可以是被配置成使主机系统105根据如本文所描述的实例执行各种操作的控制器或控制组件的实例。主机系统105可包含一或多个装置,且在一些情况下可包含处理器芯片组和通过处理器芯片组执行的软件堆栈。例如,主机系统105可包含被配置成用于与存储器系统110或其中的装置通信的应用程序。处理器芯片组可包含一或多个核心、一或多个高速缓存(例如,主机系统105本地的或包含在主机系统105中的存储器)、存储器控制器(例如,nvdimm控制器),和存储协议控制器(例如,外围组件互连高速(pcie)控制器、串行高级技术附件(sata)控制器)。主机系统105可使用存储器系统110(例如)以将数据写入到存储器系统110并且从存储器系统110读取数据。尽管在图1中示出一个存储器系统110,但主机系统105可与任何数量的存储器系统110耦合。
25.主机系统105可经由至少一个物理主机接口而与存储器系统110耦合。在一些情况下,主机系统105及存储器系统110可被配置成使用相关联协议经由物理主机接口通信(例如,以在存储器系统110与主机系统105之间交换或以其它方式传达控制、地址、数据及其它信号)。物理主机接口的实例可包含但不限于sata接口、ufs接口、emmc接口、pcie接口、usb接口、光纤通道接口、小型计算机系统接口(scsi)、串行连接的scsi(sas)、双数据速率(ddr)接口、dimm接口(例如,支持ddr的dimm套接接口)、开放nand快闪接口(onfi),和低功率双数据速率(lpddr)接口。在一些实例中,一或多个这种接口可包含在主机系统105的主机系统控制器106与存储器系统110的存储器系统控制器115中或以其它方式在其间得到支持。在一些实例中,主机系统105可通过用于包含在存储器系统110中的每个存储器装置130的相应物理主机接口,或通过用于包含在存储器系统110中的每种类型的存储器装置130的相应物理主机接口与存储器系统110耦合(例如,主机系统控制器106可与存储器系统控制器115耦合)。
26.存储器系统110可包含存储器系统控制器115和一或多个存储器装置130。存储器装置130可包含任何类型的存储器单元(例如,非易失性存储器单元、易失性存储器单元,或其任何组合)的一或多个存储器阵列。虽然在图1的实例中示出两个存储器装置130-a和130-b,但存储器系统110可包含任何数量的存储器装置130。此外,如果存储器系统110包含多于一个的存储器装置130,则存储器系统110内的不同存储器装置130可包含相同或不同类型的存储器单元。
27.存储器系统控制器115可与主机系统105耦合及通信(例如,经由物理主机接口),并且可以是被配置成致使存储器系统110根据如本文所描述的实例执行各种操作的控制器或控制组件的实例。存储器系统控制器115还可以与存储器装置130耦合和通信以在存储器装置130处执行一般可以被称为存取操作的操作,例如读取数据、写入数据、擦除数据,或刷
新数据,以及其它此类操作。在一些情况下,存储器系统控制器115可从主机系统105接收命令且与一或多个存储器装置130通信以执行此些命令(例如,在所述一或多个存储器装置130内的存储器阵列处)。例如,存储器系统控制器115可从主机系统105接收命令或操作,并且可将命令或操作转换成指令或适当的命令,以实现对存储器装置130的所需存取。在一些情况下,存储器系统控制器115可与主机系统105以及一或多个存储器装置130交换数据(例如,响应于或以其它方式结合来自主机系统105的命令)。例如,存储器系统控制器115可将与存储器装置130相关联的响应(例如,数据包或其它信号)转换成用于主机系统105的相应信号。
28.存储器系统控制器115可以被配置成用于与存储器装置130相关联的其它操作。例如,存储器系统控制器115可执行或管理操作,例如,耗损均衡操作、垃圾收集操作、例如错误检测操作或错误校正操作的错误控制操作、加密操作、高速缓存操作、媒体管理操作、后台刷新、健康监测,以及与来自主机系统105的命令相关联的逻辑地址(例如,逻辑块地址(lba))和与存储器装置130内的存储器单元相关联的物理地址(例如,物理块地址)之间的地址转换。
29.存储器系统控制器115可包含硬件,如一或多个集成电路或离散组件、缓冲存储器或其组合。硬件可包含具有专用(例如,硬译码)逻辑的电路,以执行本文中归于存储器系统控制器115的操作。存储器系统控制器115可为或包含微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)、数字信号处理器(dsp)),或任何其它合适的处理器或处理电路。
30.存储器系统控制器115还可包含本地存储器120。在一些情况下,本地存储器120可包含只读存储器(rom)或可存储可由存储器系统控制器115执行的操作代码(例如,可执行指令)以执行本文中归于存储器系统控制器115的功能的其它存储器。在一些情况下,本地存储器120可另外或替代地包含静态随机存取存储器(sram)或其它存储器,其可由存储器系统控制器115用于例如与本文中归于存储器系统控制器115的功能有关的内部存储或运算。
31.存储器装置130可包含非易失性存储器单元的一或多个阵列。例如,存储器装置130可包含nand(例如,nand快闪)存储器、rom、相变存储器(pcm)、自选存储器、其它基于硫族化物的存储器、铁电随机存取存储器(ram)(feram)、磁性ram(mram)、nor(例如,nor快闪)存储器、自旋转移力矩(stt)-mram、导电桥接ram(cbram)、电阻式随机存取存储器(rram)、基于氧化物的rram(oxram)、电可擦除可编程rom(eeprom),或其任何组合。另外或替代地,存储器装置130可包含易失性存储器单元的一或多个阵列。例如,存储器装置130可包含ram存储器单元,例如动态ram(dram)存储器单元和同步dram(sdram)存储器单元。
32.在一些实例中,存储器装置130可(例如,在同一裸片上或在同一封装内)包含本地控制器135,其可在相应存储器装置130的一或多个存储器单元上执行操作。本地控制器135可结合存储器系统控制器115操作,或可进行本文中归于存储器系统控制器115的一或多个功能。例如,如图1所示,存储器装置130-a可包含本地控制器135-a,并且存储器装置130-b可包含本地控制器135-b。
33.在一些情况下,存储器装置130可以是或包含nand装置(例如,nand快闪装置)。存储器装置130可为或包含存储器裸片160。例如,在一些情况下,存储器装置130可为包含一
或多个裸片160的封装。在一些实例中,裸片160可为从晶片切割的一块电子级半导体(例如,从硅晶片切割的硅裸片)。每个裸片160可包含一或多个平面165,并且每个平面165可包含块170的相应集合,其中每个块170可包含页175的相应集合,并且每个页175可包含存储器单元的集合。
34.在一些情况下,nand存储器装置130可包含被配置成各自存储一个信息位的存储器单元,其可被称为单层级单元(slc)。另外或替代地,nand存储器装置130可包含配置成各自存储多个信息位的存储器单元,如果配置成各自存储两个信息位,则其可称为多层级单元(mlc),如果配置成各自存储三个信息位,则其可称为三层级单元(tlc),如果配置成各自存储四个信息位,则其可称为四层级单元(qlc),或更一般地称为多层级存储器单元。多层级存储器单元可相对于slc存储器单元提供更大的存储密度,但在一些情况下,可能涉及用于支持电路系统的更窄读取或写入裕度或更大复杂度。
35.在一些情况下,平面165可以指块170的群组,并且在一些情况下,并行操作可在不同平面165内进行。例如,并行操作可在不同块170内的存储器单元上执行,只要不同块170是在不同平面165中即可。在一些情况下,在不同平面165中执行并行操作可具有一或多个限制,例如相同操作是在相应平面165内具有相同页地址的不同页175内的存储器单元上执行的(例如,涉及命令解码、页地址解码电路系统或跨平面165共享的其它电路系统)。
36.在一些情况下,块170可包含组织成行(页175)和列(例如,串,未展示)的存储器单元。例如,同一页175中的存储器单元可共享共同字线(例如,与其耦合),并且同一串中的存储器单元可共享共同数字线(其可替代地被称为位线)(例如,与其耦合)。
37.对于一些nand架构,存储器单元可在第一粒度级别(例如,在页粒度级别)读取和编程(例如,写入),但可在第二粒度级别(例如,在块粒度级别)擦除。也就是说,页175可为可独立地编程或读取(例如,作为单个编程或读取操作的一部分同时编程或读取)的存储器(例如,存储器单元的集合)的最小单元,且块170可为可独立地擦除(例如,作为单个擦除操作的一部分同时擦除)的存储器(例如,存储器单元的集合)的最小单元。此外,在一些情况下,nand存储器单元可在其可用新数据重写之前进行擦除。因此,例如,在一些情况下,可直到包含页175的整个块170已被擦除才更新所使用的页175。
38.系统100可包含支持基于数据大小的低延迟存储的任何数量的非暂时性计算机可读媒体。例如,主机系统105、存储器系统控制器115或存储器装置130可包含或以其它方式可存取一或多个非暂时性计算机可读媒体,所述非暂时性计算机可读媒体存储指令(例如,固件)以进行本文中属于主机系统105、存储器系统控制器115或存储器装置130的功能。例如,如果由主机系统105(例如,由主机系统控制器106)、由存储器系统控制器115,或由存储器装置130(例如,由本地控制器135)执行,则此类指令可以使得主机系统105、存储器系统控制器115或存储器装置130执行如本文所描述的一或多个相关联功能。
39.在一些情况下,存储器系统110可利用存储器系统控制器115以提供受管理存储器系统,所述受管理存储器系统可包含例如一或多个存储器阵列和与本地(例如,裸片上或封装中)控制器(例如,本地控制器135)组合的相关电路系统。受管理存储器系统的实例为受管理nand(mnand)系统。
40.存储器系统110可包含逻辑、处理器、第一存储器和第二存储器(例如,存储器装置130)。逻辑可被配置成从主机系统105接收命令、数据或这两者。第一存储器和第二存储器
可与处理器耦合。所述处理器可被配置成将与小于阈值的数据相关联的命令的数据存储在所述第一存储器中或使所述数据存储在所述第一存储器中,并且将与大于所述阈值的数据相关联的命令的数据存储在所述第二存储器中。与逻辑与第二存储器之间的通信路径相比,逻辑与第一存储器之间的通信路径可与更快的传送速度相关联。
41.图2示出根据本文所公开的实例的支持基于数据大小的低延迟存储的系统200的实例。系统200可为如参考图1或其方面所描述的系统100的实例。系统200可包含存储器系统210,其配置成存储从主机系统205接收到的数据,且如果由主机系统205使用存取命令(例如,读取命令或写入命令)来请求,则将数据发送到主机系统205。系统200可实施参考图1所描述的系统100的方面。例如,存储器系统210和主机系统205可分别是存储器系统110和主机系统105的实例。
42.存储器系统210可包含存储器装置240,以例如响应于从主机系统205接收到存取命令而存储在存储器系统210与主机系统205之间传送的数据,如本文中所描述。存储器装置240可包含如参考图1所描述的一或多个存储器装置。例如,存储器装置240可包含nand存储器、pcm、自选存储器、3d交叉点、其它基于硫族化物的存储器、feram、mram、nor(例如,nor快闪)存储器、stt-mram、cbram、rram,或oxram。
43.存储器系统210可包含存储控制器230以用于控制直接进出存储器装置240的数据的传递,例如用于存储数据、检索数据,和确定待将数据存储在其中和待从其检索数据的存储器位置。存储控制器230可使用特定于每个类型的存储器装置240的协议直接或经由总线(未示出)与存储器装置240通信。在一些情况下,单个存储控制器230可用于控制相同或不同类型的多个存储器装置240。在一些情况下,存储器系统210可包含多个存储控制器230,例如,用于每种类型的存储器装置240的不同存储控制器230。在一些情况下,存储控制器230可实施如参考图1描述的本地控制器135的方面。
44.存储器系统210可另外包含用于与主机系统205通信的接口220,和用于临时存储正在主机系统205与存储器装置240之间传送的数据的缓冲器225。接口220、缓冲器225和存储控制器230可用于在主机系统205与存储器装置240之间转换数据,例如由数据路径250所示,并且可统称为数据路径组件。
45.在传送期间使用缓冲器225临时地存储数据可允许在处理命令时缓冲数据,由此减少命令之间的时延且允许与命令相关联的任意数据大小。这还可允许处置命令的突发,且一旦突发已停止,便可存储或传输(或两者)缓冲的数据。缓冲器225可包含相对快速的存储器(例如,一些类型的易失性存储器,例如sram或dram),或硬件加速器或这两者,以允许快速地将数据存储到缓冲器225和从缓冲器225检索数据。缓冲器225可包含用于缓冲器225与其它组件之间的双向数据传递的数据路径切换组件。
46.数据在缓冲器225内的临时存储可指在执行存取命令期间数据在缓冲器225中的存储。也就是说,在完成存取命令后,相关联数据可能不再维持在缓冲器225中(例如,可用额外存取命令的数据覆写)。此外,缓冲器225可以是非高速缓存缓冲器。也就是说,主机系统205可不直接从缓冲器225读取数据。例如,可将读取命令添加到队列中,而无需将地址与已在缓冲器225中的地址进行匹配的操作(例如,无需高速缓存地址匹配或查找操作)。
47.存储器系统210可另外包含用于执行从主机系统205接收到的命令且在移动数据时控制数据路径组件的存储器系统控制器215。存储器系统控制器215可以是如参考图1所
描述的存储器系统控制器115的实例。总线235可用于在系统组件之间通信。
48.在一些情况下,一或多个队列(例如,命令队列260、缓冲器队列265和存储队列270)可用于控制存取命令的处理和对应数据的移动。例如,如果由存储器系统210并行处理来自主机系统205的多于一个存取命令,则这可能是有益的。作为可能实施方案的实例,分别在接口220、存储器系统控制器215及存储控制器230处描绘命令队列260、缓冲器队列265以及存储队列270。然而,队列(如果使用)可位于存储器系统210内的任何位置。
49.在主机系统205与存储器装置240之间传送的数据可在存储器系统210中采用与非数据信息(例如,命令、状态信息)不同的路径。例如,存储器系统210中的系统组件可使用总线235彼此通信,而数据可通过数据路径组件而不是总线235使用数据路径250。存储器系统控制器215可通过在总线235上与数据路径组件通信(例如,使用特定于存储器系统210的协议)而控制如何及是否在主机系统205与存储器装置240之间传送数据。
50.如果主机系统205将存取命令传输到存储器系统210,则命令可由接口220例如根据协议(例如,ufs协议或emmc协议)接收。因此,可将接口220视为存储器系统210的前端。在接收到每个存取命令后,接口220可例如经由总线235将命令传送到存储器系统控制器215。在一些情况下,可通过接口220将每个命令添加到命令队列260,以将命令传送到存储器系统控制器215。
51.存储器系统控制器215可基于或响应于来自接口220的通信而确定是否已接收到存取命令。在一些情况下,存储器系统控制器215可确定已通过从命令队列260检索命令而接收到存取命令。在例如已经由存储器系统控制器215从命令队列260检索命令之后,可将所述命令从命令队列260移除。在一些情况下,存储器系统控制器215可使接口220例如经由总线235从命令队列260移除命令。
52.在确定已接收到存取命令后,存储器系统控制器215可执行存取命令。对于读取命令,这可意味着从存储器装置240获得数据以及将数据传输到主机系统205。对于写入命令,这可意味着从主机系统205接收数据并将数据移动到存储器装置240。
53.在任一情况下,存储器系统控制器215可将缓冲器225(尤其)用于从主机系统205接收的或发送到主机系统205的数据的临时存储。缓冲器225可视为存储器系统210的中间端。在一些情况下,缓冲器地址管理(例如,指向缓冲器225中的地址位置的指针)可由接口220、缓冲器225或存储控制器230中的硬件(例如,专用电路)执行。
54.为了处理从主机系统205接收到的写入命令,存储器系统控制器215可首先确定缓冲器225是否具有足够可用空间来存储与命令相关联的数据。例如,存储器系统控制器215可例如经由固件(例如,控制器固件)确定在缓冲器225内可用于存储与写入命令相关联的数据的空间量。
55.在一些情况下,缓冲器队列265可用于控制与存储在缓冲器225中的数据相关联的命令流,所述命令流包含写入命令。缓冲器队列265可包含与当前存储在缓冲器225中的数据相关联的存取命令。在一些情况下,命令队列260中的命令可通过存储器系统控制器215移动到缓冲器队列265,并且可在相关联数据存储在缓冲器225中的同时保持在缓冲器队列265中。在一些情况下,缓冲器队列265中的每个命令可与缓冲器225处的地址相关联。也就是说,可维持指示与每个命令相关联的数据存储在缓冲器225中何处的指针。使用缓冲器队列265,可从主机系统205循序接收多个存取命令且可并行处理存取命令的至少若干部分。
56.如果缓冲器225具有足够空间来存储写入数据,则存储器系统控制器215可致使接口220例如根据协议(例如,ufs协议或emmc协议)将可用性的指示发射到主机系统205(例如,“准备好传递”指示)。当接口220随后从主机系统205接收与写入命令相关联的数据时,接口220可使用数据路径250将数据传送到缓冲器225以用于临时存储。在一些情况下,接口220可从缓冲器225或缓冲器队列265获得缓冲器225内的存储数据的位置。接口220可例如经由总线235向存储器系统控制器215指示是否已完成到缓冲器225的数据传送。
57.一旦写入数据已通过接口220存储在缓冲器225中,就可将数据从缓冲器225传送出并存储在存储器装置240中。这可使用存储控制器230进行。例如,存储器系统控制器215可例如致使存储控制器230使用数据路径250从缓冲器225中检索出数据并且将数据传送到存储器装置240。存储控制器230可被视为存储器系统210的后端。存储控制器230可例如经由总线235向存储器系统控制器215指示已完成到存储器装置240中的存储器装置的数据传送。
58.在一些情况下,存储队列270可用于辅助写入数据的传送。例如,存储器系统控制器215可将写入命令从缓冲器队列265推送(例如,经由总线235)到存储队列270以供处理。存储队列270可包含用于每个存取命令的条目。在一些实例中,存储队列270可另外包含:缓冲器指针(例如,地址),其可指示在缓冲器225中何处存储与命令相关联的数据;及存储指针(例如,地址),其可指示存储器装置240中与数据相关联的位置。在一些情况下,存储控制器230可从缓冲器225、缓冲器队列265或存储队列270获得缓冲器225内的要从中获得数据的方位。存储控制器230可管理存储器装置240内的存储数据(例如,进行耗损均衡、垃圾收集和其类似物)的位置。可例如通过存储器系统控制器215将条目添加到存储队列270。在完成数据的传送后,条目就可例如通过存储控制器230或存储器系统控制器215从存储队列270移除。
59.为了处理从主机系统205接收的读取命令,存储器系统控制器215可再次首先确定缓冲器225是否具有足够可用空间来存储与命令相关联的数据。例如,存储器系统控制器215可例如经由固件(例如,控制器固件)确定在缓冲器225内可用于存储与读取命令相关联的数据的空间量。
60.在一些情况下,缓冲器队列265可用于以与上文关于写入命令所论述的类似方式来辅助与读取命令相关联的数据的缓冲器存储。例如,如果缓冲器225具有足够空间来存储读取数据,则存储器系统控制器215可致使存储控制器230从存储器装置240检索与读取命令相关联的数据并且使用数据路径250将数据存储在缓冲器225中以用于临时存储。存储控制器230可例如经由总线235向存储器系统控制器215指示是否已完成到缓冲器225的数据传送。
61.在一些情况下,存储队列270可用于辅助读取数据的传送。例如,存储器系统控制器215可将读取命令推送到存储队列270以供处理。在一些情况下,存储控制器230可从缓冲器225或存储队列270获得存储器装置240内的从其检索数据的位置。在一些情况下,存储控制器230可从缓冲器队列265获得缓冲器225内用以存储数据的位置。在一些情况下,存储控制器230可从存储队列270获得缓冲器225内的存储数据的位置。在一些情况下,存储器系统控制器215可将由存储队列270处理的命令移动回到命令队列260。
62.一旦数据已由存储控制器230存储在缓冲器225中,可将数据传送出缓冲器225且
发送到主机系统205。例如,存储器系统控制器215可致使接口220使用数据路径250从缓冲器225检索数据,并且例如根据协议(例如,ufs协议或emmc协议)将数据传输到主机系统205。例如,接口220可处理来自命令队列260的命令,并且可例如经由总线235向存储器系统控制器215指示已完成到主机系统205的数据传输。
63.存储器系统控制器215可根据次序(例如,根据命令队列260的次序的先入先出次序)执行接收到的命令。对于每个命令,存储器系统控制器215可使得对应于命令的数据移动进出缓冲器225,如上文所论述。当数据移动到缓冲器225中且存储在缓冲器225内时,命令可保持在缓冲器队列265中。如果已完成对命令的处理(例如,如果已从缓冲器225传送出对应于存取命令的数据),则可例如通过存储器系统控制器215从缓冲器队列265移除命令。如果从缓冲器队列265移除命令,则先前存储与所述命令相关联的数据的地址可用于存储与新命令相关联的数据。
64.存储器系统控制器215可另外被配置成用于与存储器装置240相关联的操作。例如,存储器系统控制器215可执行或管理操作,例如耗损均衡操作、垃圾收集操作、例如错误检测操作或错误校正操作的错误控制操作、加密操作、高速缓存操作、媒体管理操作、后台刷新、健康监测,以及与来自主机系统205的命令相关联的逻辑地址(例如,lba)和与存储器装置240内的存储器单元相关联的物理地址(例如,物理块地址)之间的地址转换。也就是说,主机系统205可发出指示一或多个lba的命令,并且存储器系统控制器215可识别由lba指示的一或多个物理块地址。在一些情况下,一或多个邻接lba可对应于非邻接的物理块地址。在一些情况下,存储控制器230可被配置成结合或代替存储器系统控制器215执行以上操作中的一或多个。在一些情况下,存储器系统控制器215可执行存储控制器230的功能,并且可省略存储控制器230。
65.存储器系统控制器215可与存储器装置耦合,所述存储器装置与存储器装置240分离。存储器系统控制器215可能够比存储器装置240更快地存取存储器装置(例如,基于与存储器装置本身具有直接连接/管理存储器装置本身)。在一些实例中,与存储器系统控制器215耦合的存储器装置可被称为紧固耦合或紧密耦合的存储器。在一些实例中,紧固耦合的存储器用于存储由存储器系统控制器215频繁使用或与受严格延迟参数影响的过程相关联的指令。紧固耦合存储器还可用于存储与存储器系统控制器215相关联的系统级信息。
66.存储器系统210可包含前端、中间端和后端。前端可包含接口220,中间端可包含缓冲器225,并且后端可包含存储控制器230。前端可被配置成接收并且处理由主机系统205提交的命令。前端还可被配置成接收和发送与命令相关联的数据。中间端可被配置成将在前端处接收到的数据传送到后端,并且将前端请求的数据从后端传送到前端。中间端可被配置成在前端与后端之间传送数据的同时将数据临时存储在缓冲器中——例如以确保存储器系统210的平稳操作。后端可被配置成将在前端处接收到的数据存储在存储器装置240(例如,nand存储器装置、硫族化合物存储器装置、dram装置或feram装置)中的一个中。此外,后端可被配置成从存储器装置240中的一个检索数据,并且经由中间端将检索到的数据发送到前端。存储器装置240可被配置成存储主机系统205(例如,应用数据)、存储器系统控制器215(例如,系统信息、指令)或这两者的数据。
67.在一些实例中,存储器系统控制器215被配置成将数据存储在存储器装置240中(例如,基于来自主机系统205的请求)。在将数据存储在存储器装置240中的一个中之后,前
端可经由后端和存储控制器230存取数据。在一些实例中,存储器系统控制器215可被配置成通过将数据直接发送到缓冲器225(例如,在datain包中)而(例如,基于来自主机系统205的请求)将数据传送到主机系统205,并且前端可从缓冲器225检索数据。
68.在一些实例中,缓冲器225被配置成存储特定大小的数据(例如,缓冲器225可以被配置成存储4千字节的数据),并且可以被称为具有4千字节的粒度。因此,前端可被配置成将数据发送到支持传送多达4千字节的数据的数据包中的中间端(例如,不管前端是否具有4千字节的待发送数据)。在一些实例中,前端可使用支持传送设定量的数据的dataout包格式将数据发送到中间端,而中间端可使用dataout包格式将数据发送到后端。并且,后端可使用datain包格式将数据发送到中间端,中间端可使用datain包格式将数据发送到前端,并且前端可使用datain包格式将数据发送到主机系统205。
69.如果待发送的数据数量小于由包格式支持的大小,则可不充分利用数据包(例如,数据包的末端可包含填充位)。因此,可类似地不充分利用用于存储此数据包的数据缓冲器225中的条目。另外,将具有少量数据的数据包存储在缓冲器225中可不必要地或不有效地破坏前端与存储器装置240之间的其它更有效的数据包(例如,包含最大支持量的数据的数据包)的传送——例如,因为未充分利用的数据包可占据缓冲器225中原本可由更充分利用的数据包使用的条目。因此,未充分利用的数据包可降低与在前端与存储器装置240之间传送数据相关联的总体数据速率。
70.为了更充分地利用内部数据缓冲器并且增加与在存储器系统中向存储器和从存储器传送数据相关联的数据速率,可以将传送小于内部数据缓冲器粒度的数据量的数据包存储在紧固耦合的存储器中,而不是存储性存储器中。在一些实例中,与紧固耦合的存储器耦合的处理器可确定在存储器系统的前端逻辑处接收到的命令(例如,涉及将数据发送到主机系统205)是否与小于阈值(例如,4千字节)的数据相关联。在一些实例中,处理器可基于或响应于确定与命令相关联的数据小于阈值而将与命令相关联的数据存储在紧固耦合的存储器中。前端逻辑可从紧固耦合的存储器读取数据(例如,直接读取或间接通过存储器系统控制器215读取)。
71.在另一实例中,与紧固耦合的存储器耦合的处理器可确定在存储器系统的前端逻辑处接收到的命令(例如,涉及从主机系统205接收数据)是否与小于阈值(例如,4千字节)的数据相关联。在一些实例中,处理器可基于或响应于确定与命令相关联的数据小于阈值而存储指示处理器准备好在紧固耦合的存储器中传送数据的包。前端逻辑可从紧固耦合的存储器获得包,并且将包发送到主机系统,所述主机系统可用与命令相关联的数据作出响应。在接收到数据之后,前端逻辑可将数据写入到紧固耦合的存储器(例如,直接写入或间接通过存储器系统控制器215写入)。
72.通过识别未充分利用的数据包并将未充分利用的数据包写入到紧固耦合的存储器,内部数据缓冲器可由充分利用的数据包更有效地使用,从而增加在存储器系统的前端与存储性存储器之间传送数据的速率。并且,通过识别未充分利用的数据包并将未充分利用的数据包写入到紧固耦合的存储器,可减少与缓冲充分利用的数据包相关联的延迟(例如,通过增加数据缓冲器中的可用条目的量),从而增加在存储器系统的前端与存储性存储器之间传送数据的速率。并且,在存取紧固耦合的存储器比存取存储性存储器更快的实例中,与发送和接收小数据包相关联的操作的延迟可相对于使用存储性存储器来处置小数据
包中的数据而减少。
73.图3示出根据本文所公开的实例的支持基于数据大小的低延迟存储的系统的实例。系统300描绘可彼此通信的主机系统305和存储器系统310,如参考图2和3所描述的。存储器系统310可包含前端321、中间端345、后端360、控制器369、存储性存储器378、紧固耦合的存储器(tcm)303和处理器315。尽管提供tcm 303作为一个实例,但也涵盖不同存储器的其它实例。存储器系统310的不同组件可通过总线318彼此通信。在一些实例中,前端逻辑324可经由第一接口354-1与中间端345通信,并且中间端可经由第二接口354-2与后端通信。并且,处理器315可通过tcm连接件312与tcm 303通信,并且控制器369可通过存储性连接件375与存储性存储器378通信。
74.前端321可包含协议接口342和前端逻辑324。协议接口342可被配置成将数据传输到主机系统305并且从主机系统305接收信息(例如,命令、数据或这两者)。在一些实例中,协议接口342将从主机系统305接收到的信息转换成与存储器系统310兼容的格式。前端逻辑324可包含前端提交队列327和前端完成队列330。前端逻辑324还可包含tcm读取逻辑333、tcm写入逻辑336、准备好传送(rtt)逻辑339或其组合。前端逻辑324可被配置成处理从协议接口342接收到的信息。在一些实例中,前端逻辑324可从协议接口342获得命令并且将关于命令的信息存储在队列中(例如,在前端提交队列327中)。在一些实例中,前端逻辑324在队列中存储与命令相关联的存储器位置以及处理命令的状态。前端逻辑324还可被配置成经由作为将数据传送到存储性存储器378的部分的第一接口354-1将从主机系统305接收到的数据传送到中间端345中的逻辑。
75.前端逻辑324还可被配置成为协议接口342准备信息以发送到主机系统305。在一些实例中,前端逻辑324基于或响应于监测前端完成队列330确定是否存在待发送到主机系统305的信息。在一些实例中,前端逻辑324基于或响应于从前端完成队列330读取命令而将信息发送到主机系统305。前端提交队列327可被配置成存储关于正由前端逻辑324处理的一或多个命令、用于处理器315的一或多个命令或这两者的信息。在一些实例中,存储在前端提交队列327中的信息指示前端逻辑324是否已完成处理命令、引导处理器315执行操作或这两者。在各种实例中,前端提交队列327可实施于硬件(例如,作为一或多个寄存器)或固件中。
76.前端完成队列330可被配置成存储关于正由处理器315处理的一或多个命令、用于前端逻辑324的一或多个命令或这两者的信息。在一些实例中,存储在前端完成队列330中的信息指示处理器315是否已完成处理命令、引导前端逻辑324执行操作或这两者。前端完成队列330可实施于硬件(例如,作为一或多个寄存器)或固件中。
77.tcm读取逻辑333可被配置成读取存储在tcm 303中的数据,其中存储在tcm 303中的数据可存储在大小小于数据缓冲器351中的条目的粒度的数据包(也可被称为短datain包)中。tcm读取逻辑333可被配置成基于或响应于在处理器315已将数据写入到tcm 303的前端完成队列330中的指示而读取存储在tcm 303中的数据。在一些实例中,tcm读取逻辑333间接连接到tcm 303,从而经由处理器315和总线318存取tcm 303。在一些实例中,tcm读取逻辑333直接连接到tcm 303,从而经由到数据区域306的直接迹线(例如,逻辑连接件344)或经由总线318和到数据区域306的直接迹线(例如,在逻辑连接件344连接在tcm 303与总线318之间的情况下)存取tcm 303。
78.tcm写入逻辑336可被配置成将数据写入tcm 303中,其中待写入tcm 303中的数据可包含在大小小于数据缓冲器351中的条目的粒度的数据包(也可被称为短dataout包)中。tcm写入逻辑336可被配置成基于或响应于接收到具有支持小于数据缓冲器351的粒度的数据量的有效负载的命令而将数据写入到tcm 303。tcm写入逻辑336还可被配置成通过将指示写入到前端提交队列327而向处理器315指示数据已写入到tcm 303。在一些实例中,tcm写入逻辑336间接连接到tcm 303,从而经由处理器315和总线318存取tcm 303。在一些实例中,tcm写入逻辑336直接连接到tcm 303,从而经由到数据区域306的直接迹线(例如,逻辑连接件344)或经由总线318和到数据区域306的直接迹线(例如,在逻辑连接件344连接在tcm 303与总线318之间的情况下)存取tcm 303。在一些实例中,从存储器系统310省略了逻辑连接件344。
79.rtt逻辑339可被配置成为主机系统305准备处理器315准备好从主机系统305接收数据的指示。在一些实例中,rtt逻辑339可基于或响应于由处理器315写入到前端完成队列330的引导指示前端逻辑324将rtt包发送到主机系统305而准备用于协议接口342的rtt包以将rtt包发送到主机系统305。在一些实例中,前端完成队列330中的条目可包含条目与短dataout包相关联的指示。在一些实例中,rtt逻辑339间接连接到tcm 303,从而经由处理器315和总线318存取tcm 303。在一些实例中,rtt逻辑339直接连接到tcm 303,从而经由到数据区域306的直接迹线或经由总线318和到数据区域306的直接迹线存取tcm 303。
80.第一接口354-1可支持在前端321与中间端345之间传送数据。在一些实例中,第一接口354-1支持以数据速率传送数据。中间端345可被配置成在将数据发送到后端360之前(例如,在数据缓冲器351中)缓冲从前端逻辑324接收到的数据。在一些实例中,中间端345缓冲数据,因为用于第二接口354-2的可实现的数据速率或用于存储性存储器378)的可实现的传送速率小于用于第一接口354-1的可实现的数据速率。因此,中间端345可管理从前端逻辑传送的数据的尖峰,并且确保数据以与第二接口354-2的能力兼容的数据速率传送到后端360。中间端345还可缓冲数据以使得后端360能够——例如基于优先级而按期望次序处理命令。中间端345可包含数据路由器357、数据缓冲器351和硬件加速器348。
81.数据路由器357可被配置成从前端逻辑324接收数据并且经由第二接口354-2将数据路由到后端360。在一些实例中,作为路由数据的部分,数据路由器357可经由缓冲器连接件355临时将数据存储在数据缓冲器351中——例如以避免超出第二接口354-2的可实现的数据传送速率。数据缓冲器351可被配置成临时存储数据路由器357的数据。在一些实例中,数据缓冲器351可支持特定大小(例如,4千字节)的多个条目。在一些实例中,存储器系统310中传送的数据包(例如,datain包和dataout包)基于数据缓冲器351的粒度——例如支持传送4千字节的数据包,无论待传送的数据量如何,都可用于在存储器系统310中传送数据。
82.硬件加速器348可用于执行促进存储器系统310中的数据传送的特定过程。在一些实例中,硬件加速器348被配置成比处理器315更快地并且代替处理器315执行某些功能——例如,跟踪数据缓冲器351的指针。在一些实例中,从存储器系统310省略了硬件加速器348。
83.第二接口354-2可支持在中间端345与后端360之间传送数据。在一些实例中,第二接口354-2支持以小于(例如,慢于)由第一接口354-1支持的数据速率的数据速率传送数
据。
84.后端360可被配置成从中间端345中的数据缓冲器351检索数据并且将数据传送到控制器369。后端360可包含后端提交队列363和后端完成队列366。在一些实例中,后端360被配置成基于或响应于包含在后端提交队列363中的一或多个命令的优先级而从数据缓冲器351检索数据。后端360还可被配置成在一组数据已存储在存储性存储器378中的情况下,向后端完成队列366写入所述一组数据已写入到存储性存储器378的指示。
85.后端提交队列363可被配置成存储关于正由前端逻辑324处理的一或多个命令、用于处理器315的命令或这两者的信息。在一些实例中,存储在后端提交队列363中的信息镜射存储在前端提交队列327中的信息——例如,处理器315可基于或响应于前端提交队列327中的命令而将命令添加到后端提交队列363。在一些实例中,后端提交队列363中的条目可包含到数据缓冲器351内的位置的指针,其中对应数据已经由前端321存储。后端提交队列363可实施于硬件(例如,作为一或多个寄存器)或固件中。
86.后端完成队列366可被配置成存储关于与存储在存储性存储器378中的命令相对应的数据的信息。后端完成队列366可实施于硬件(例如,作为一或多个寄存器)或固件中。控制器369可被配置成经由存储连接件375将从后端360接收到的数据存储在存储性存储器378中。控制器369还可被配置成经由存储性连接件375从存储性存储器378读取由后端360请求的数据。在一些实例中,控制器369相应地从后端360和/或处理器315接收一或多个命令(例如,读取或写入命令的任何组合)和存取存储性存储器。
87.存储性存储器378可被配置成存储信息——例如基于包含在存储性存储器378中的存储器单元的编程逻辑状态。存储性存储器378可包含nand存储器单元、nor存储器单元、feram单元、dram单元等。在一些实例中,存储性存储器378包含高速缓存381。高速缓存381还可包含被配置成存储数据的存储器单元。在一些实例中,与存储性存储器378的主存储器中的其它存储器单元相比,可用较小的延迟来存取高速缓存381。例如,高速缓存381可能更小,并且可更容易寻址存储器单元,包含与主存储器中的存储器单元相比更快的存取时间(例如,pcm单元)或这两者相关联的存储器单元。
88.处理器315可被配置成处理在前端逻辑324处接收到的命令(并且存储在前端提交队列327中)。处理器315还可被配置成使前端321和后端360执行功能(例如,通过将命令写入到前端完成队列330或后端提交队列363)。在一些实例中,在从前端提交队列327读取命令之后,处理器315可被配置成经由tcm连接件312存取tcm 303——例如以识别用于执行命令的命令序列(例如,用于控制器369的命令)。
89.tcm 303可被配置成存储用于处理器315的数据和命令。在一些实例中,tcm 303可被配置成存储关于存储器系统310的系统级信息(例如,在数据区域306中)和用于执行命令的命令序列(例如,在命令区域309中)。在一些实例中,命令区域309被配置成存储由处理器315频繁使用或受低延迟参数影响的命令序列——其它命令序列可存储在存储性存储器378中。在一些实例中,处理器315可自身管理和控制tcm 303的操作。并且,tcm 303的大小可小于存储性存储器378的大小。因此,处理器315存取tcm 303的持续时间可短于处理器315存取存储性存储器378的持续时间。
90.如本文所描述,与在前端321处接收到的命令相关联的数据可通过中间端345、后端360和控制器369传送到存储性存储器。在一些实例中,处理器315管理数据从前端321到
后端360的传送(例如,处理从前端提交队列327读取的命令,将命令发布到后端提交队列363,并且将命令序列发送到控制器369)。在一些实例中,传送较小数据(例如,大小小于数据缓冲器351的粒度的数据)减少前端321与存储性存储器378之间的数据传送速率(例如,通过低效地独占数据缓冲器351中的条目)。因此,为了增加前端321与存储性存储器378之间的数据传送速率,处理器315可被配置成将较小数据存储在tcm 303中——例如,存储在数据区域306中。将较小数据存储在tcm 303中,可以减少执行与较小数据相关联的命令的延迟,并且可以防止较小数据中断在前端321与存储性存储器378之间传送较大数据。在一些实例中,可使用比高速缓存381少的延迟来存取tcm 303。
91.类似地,当数据缓冲器351作为高速缓存存储器操作时,传送较小数据减少存储在数据缓冲器351中的信息的量(例如,通过低效地独占数据缓冲器351中的条目)。在此类情况下,用于执行命令的延迟也会增加,因为存储器系统310直接从数据缓冲器351检索数据的频率可能会降低,而且存储器系统310从存储性存储器378检索数据的频率可能会增加。
92.图4示出根据本文所公开的实例的用于基于数据大小执行低延迟存储的操作的实例集合。
93.过程流程400可由主机系统405和存储器系统410执行,所述主机系统和存储器系统可为参考图1至3和5所描述的主机系统或存储器系统的相应实例。存储器系统410可包含协议接口411、前端提交队列412、前端完成队列413、tcm 414,它们可为参考图3描述的协议接口342、前端提交队列327、前端完成队列330或tcm 303的相应实例。存储器系统410还可包含命令处理程序415,其可包含在处理器(例如图3的处理器315)中。命令处理程序415可被配置成处理存储在前端提交队列412中的命令。
94.在一些实例中,过程流程400示出为支持基于数据大小的低延迟存储而执行的示例性操作序列。例如,过程流程400描绘用于从例如tcm的第一存储器读取小于阈值的数据的操作(其可被称为datain过程)。应理解,过程流程400中描述的一或多个操作可在所述过程中较早或较晚地执行、省略、替换、补充或与另一操作组合。并且,可包含本文所描述的未包含在过程流程400中的额外操作。
95.在箭头420处,可通过协议接口411获得命令。在一些实例中,主机系统405可将命令发送到协议接口411。命令可被配置用于从存储器系统410请求信息(例如,数据或系统级信息)。协议接口411可将命令发送到前端逻辑(例如,图3的前端逻辑324)。
96.在箭头425处,可通过前端提交队列412获得命令。在一些实例中,与协议接口411耦合的前端逻辑可处理命令并且将命令写入到前端提交队列412。
97.在箭头430处,可通过命令处理程序415获得命令。在一些实例中,命令处理程序415可从前端提交队列412读取命令(例如,经由总线,例如图3的总线318)。
98.在框435处,可确定与命令相关联的数据的大小。在一些实例中,与协议接口411耦合的前端逻辑可确定与命令相关联的数据的大小。在一些实例中,前端逻辑识别命令的类型——例如,前端逻辑可确定命令为security protocol in命令。在一些实例中,在识别命令之后,前端逻辑可确定与命令相关联的数据的大小是否小于阈值(例如,4千字节)。在一些实例中,前端逻辑基于命令本身确定与命令相关联的数据的大小是否小于阈值——例如,前端逻辑可查询一或多个命令与和相应一或多个命令相关联的数据的最大大小之间的映射。在其它实例中,前端逻辑基于与命令相关联的实际数据确定与命令相关联的数据的
大小是否小于阈值。也就是说,前端逻辑可识别由命令暗示的数据集合(其也可被称为数据有效负载),并且将数据集合的大小与阈值进行比较。
99.在一些实例中,与命令相关联的数据的大小进行比较的阈值可基于但不同于数据缓冲器(例如,图3的数据缓冲器351)的粒度。例如,阈值可为数据缓冲器的粒度的二分之一或四分之三(例如,2千字节或3千字节)。
100.在框435处,可确定与命令相关联的数据的大小。在一些实例中,命令处理程序415可确定与命令相关联的数据的大小——例如,如参考前端逻辑类似地描述。在一些实例中,前端逻辑或命令处理程序415中的仅一个被配置成确定与命令相关联的数据的大小。在一些实例中,前端逻辑和命令处理程序415两者被配置成确定与命令相关联的数据的大小。
101.在箭头440处,可由tcm 414基于或响应于确定与命令相关联的数据的大小低于阈值而获得与命令相关联的数据集合。在一些实例中,命令处理程序415将与命令相关联的数据集合存储在tcm 414中(例如,在数据区域中,例如,图3的数据区域306)。在箭头445处,可以通过前端完成队列413获得数据集合已写入到tcm 414的指示。在一些实例中,命令处理程序415可将指示写入到前端完成队列413。在箭头450处,可通过与协议接口411耦合的前端逻辑获得存储在前端完成队列413中的指示。在一些实例中,前端逻辑可从前端完成队列413读取指示。
102.在框455处,可处理所述指示。在一些实例中,与协议接口411耦合的前端逻辑可处理所述指示。在一些实例中,前端逻辑可——例如,基于或响应于指示数据已存储在tcm 414中的指示而确定与从主机系统405接收到的命令相关联的数据已写入到tcm 414(例如,而不是存储性存储器)。
103.前端逻辑还可基于或响应于指示而确定存储在tcm 414中的数据的大小。在一些实例中,所述指示包含存储在tcm 414中的数据的实际大小的指示。在其它实例中,所述指示包含tcm 414中的条目的大小的指示(其大小可与用于与数据的大小进行比较的阈值相同),而与数据的实际大小无关。在又其它实例中,可预先确定数据的大小(例如,基于tcm 414中的条目的指定大小、用于传送存储在tcm 414中的数据的包的大小或这两者,所述包可被称为short datain包)。
104.在箭头460处,写入到tcm 414的数据集合可由协议接口411基于数据集合已存储在tcm 414中的指示而获得。在一些实例中,协议接口411可(例如,使用tcm读取逻辑,例如图3的tcm读取逻辑333)直接从tcm 414读取数据。在其它实例中,协议接口411可通过从与tcm 414耦合的处理器请求数据而(例如,使用tcm读取逻辑)从tcm 414读取数据。
105.在箭头465处,可以在主机系统405处获得数据集合。在一些实例中,协议接口411将数据集合发送到主机系统405——例如,在从tcm读取逻辑接收到数据集合之后。在一些实例中,协议接口411将从tcm 414读取的数据封装在short datain包中,并且将short datain包发送到主机系统405。在一些实例中,从tcm 414获得的数据集合已经根据short datain包格式化,并且协议接口411将short datain包转发到主机系统405。在一些实例中,short datain包包含数据集合的大小的指示,所述数据集合包含在short datain包中。在其它实例中,预先确定short datain包的大小。在此类情况下,填充位可用于填充short datain包——例如,在数据集合的大小不足以使用由short datain包支持的所有位的情况下。
106.在箭头470处,可在主机系统405处获得响应包。在一些实例中,与协议接口411耦合的前端逻辑将响应包发送到主机系统405。响应包可指示由相关联命令请求的数据已发送到主机系统405。
107.在一些实例中,主机系统405发送第二命令以从存储器系统410读取第二数据集合,其中第二数据集合大于用于将数据存储在tcm 414中的阈值。在此类情况下,命令处理程序415可确定与第二命令相关联的数据的大小大于相关阈值,并且执行与通过存储器系统410(例如,来自存储器系统410的存储性存储器)的中间端将第二数据集合传送到存储器系统410的前端相关联的操作,如本文所描述。
108.图5示出根据本文所公开的实例的用于基于数据大小执行低延迟存储的操作的实例集合。
109.过程流程500可由主机系统505和存储器系统510执行,所述主机系统和存储器系统可为参考图1至4所描述的主机系统或存储器系统的相应实例。存储器系统510可包含参考图3和4所描述的协议接口511、前端提交队列512、前端完成队列513、tcm 514,这些可为协议接口、前端提交队列、前端完成队列或tcm的相应实例。存储器系统510还可包含命令处理程序515,其可为图4的命令处理程序415的实例。
110.在一些实例中,过程流程500示出为支持基于数据大小的低延迟存储而执行的示例性操作序列。例如,过程流程500描绘用于将小于阈值的数据写入到tcm的操作(其可被称为dataout过程)。应理解,过程流程500中描述的一或多个操作可在所述过程中较早或较晚地执行、省略、替换、补充或与另一操作组合。并且,可包含本文所描述的未包含在过程流程500中的额外操作。
111.如参考图4的箭头420至框435所描述,可类似地执行在箭头520至框535处所描述的操作。在一些实例中,在协议接口511处接收到的命令可被配置成用于将信息存储于存储器系统510中。在一些实例中,命令为security protocol out命令。在一些实例中,命令包含与命令相关联的数据的大小的指示、与命令相关联的数据的大小被写入到前端提交队列512的指示,或这两者。在一些实例中,命令处理程序515基于或响应于命令中的指示、前端提交队列512中的指示或这两者而确定与命令相关联的数据的大小。在一些实例中,为了确定与命令相关联的数据的大小,命令处理程序515识别在协议接口511处接收到的对应于在协议接口511处接收到的命令的数据集合的大小。
112.在箭头540处,可通过tcm 514获得rtt包。在一些实例中,命令处理程序515在确定与命令相关联的数据集合小于阈值并且所述命令与从主机系统接收信息相关联之后将rtt包写入到tcm 514。在箭头545处,可在前端完成队列513处获得rtt包已写入到tcm 514的指示。在一些实例中,命令处理程序515在将rtt包写入到tcm 514之后将指示写入到前端完成队列513。在箭头550处,可以通过与协议接口511耦合的前端逻辑获得指示。在一些实例中,前端逻辑可从前端完成队列513读取指示。
113.在框555处,可处理所述指示。在一些实例中,与协议接口511耦合的前端逻辑可处理所述指示。在一些实例中,前端逻辑可以确定与命令处理程序515耦合的处理器(例如,图3的处理器315)准备好接收与命令相关联的数据集合,并且确定rtt包已写入到tcm 514。前端逻辑还可基于指示确定待从主机系统505接收的数据的大小——例如前端逻辑可基于或响应于确定rtt包已写入到tcm 514而确定与命令相关联的数据小于阈值。
114.在箭头560处,可在协议接口511处获得rtt包。在一些实例中,协议接口511可(例如,使用rtt逻辑,例如图3的rtt逻辑339)直接从tcm 514读取rtt包。在其它实例中,协议接口511可通过从与tcm 514耦合的处理器请求数据而(例如,使用rtt逻辑)从tcm 514读取数据。在箭头565处,可在主机系统505处获得rtt包。在一些实例中,协议接口511可将rtt包发送到主机系统405——例如,在从rtt逻辑接收rtt包之后。
115.在箭头570处,与命令相关联的数据集合可由协议接口511获得。在一些实例中,主机系统505基于或响应于从协议接口511接收到rtt包而将数据集合传输到协议接口511。在一些实例中,主机系统505在支持传送比存储器系统510的中间端中的数据缓冲器的粒度小的最大数据量的short dataout包中将数据集合传输到协议接口。
116.在箭头575处,可在tcm 514处获得数据集合。在一些实例中,与协议接口511耦合的前端逻辑(例如,tcm写入逻辑336)(例如,经由直接连接件,例如逻辑连接件344)将数据直接写入到tcm 514。在其它实例中,与协议接口511(例如,tcm写入逻辑336)耦合的前端逻辑将数据连同将数据写入到tcm 514的请求发送到与tcm 514耦合的处理器。在一些实例中,前端逻辑在short dataout包中重新封装从主机系统505接收到的数据,并且(例如,经由图3的逻辑连接件344)将short dataout包直接发送到tcm 514。在其它实例中,前端逻辑(例如,经由图3的逻辑连接件344)将从主机系统505接收到的short dataout包中继到tcm 514。
117.在箭头580处,可通过前端提交队列512获得第二指示。在一些实例中,前端逻辑可将第二指示写入到前端提交队列512。第二指示可指示与命令相关联的数据集合已写入到tcm 514。在一些实例中,第二指示还可指示数据集合的大小。例如,第二指示可指示数据集合的实际大小。在另一实例中,第二指示可指示具有指定大小的short dataout包被写入到tcm 514。
118.在箭头585处,可在命令处理程序515处获得第二指示。在一些实例中,命令处理程序515可从前端提交队列512读取第二指示。在一些实例中,命令处理程序515可确定写入到tcm 514的数据集合的大小。例如,命令处理程序可基于第二指示而确定数据集合的大小。在另一实例中,命令处理程序515可基于short dataout包的指定大小而确定数据集合的大小。
119.在箭头590处,可获得存储在tcm 514中的数据。在一些实例中,命令处理程序515(或包含命令处理程序515的处理器)可基于或响应于接收到第二指示而从tcm 514读取数据。在箭头595处,可在协议接口511处获得响应包。在一些实例中,命令处理程序515将响应包发送到协议接口511。在一些实例中,响应包指示与命令相关联的数据集合被成功地写入到tcm 514。在箭头598处,可在主机系统505处获得响应包。在一些实例中,协议接口将响应包发送到主机系统505。
120.在一些实例中,主机系统505发送第二命令以将第二数据集合写入到存储器系统510,其中第二数据集合大于用于将数据存储在tcm 514中的阈值。在此类情况下,命令处理程序515可确定与第二命令相关联的数据的大小大于相关阈值,并且执行与通过存储器系统510(例如,来自存储器系统510的前端)的中间端将第二数据集合传送到存储器系统510的存储性存储器相关联的操作,如本文所描述。
121.图6示出根据本文所公开的实例的支持基于数据大小的低延迟存储的系统的实
例。
122.系统600描绘了可与如本文所描述的彼此通信的主机系统605和存储器系统610。主机系统605可为主机系统105、主机系统205、主机系统305、主机系统405或主机系统505的实例,如参考图1至5所描述的。
123.存储器系统610可为存储器系统110、存储器系统210、存储器系统310、存储器系统410或存储器系统510的实例,如参考图1至5所描述的。存储器系统610可包含处理器620、tcm 625、前端逻辑630和存储性存储器635。处理器620可为存储器系统控制器115、存储器系统控制器215、处理器315、命令处理程序415或命令处理程序515的实例或包含存储器系统控制器115、存储器系统控制器215、处理器315、命令处理程序415或命令处理程序515,如参考图1至5所描述的。tcm 625可为tcm 303、tcm 414或tcm 514的实例,如参考图3至5所描述的。前端逻辑630可为前端逻辑324、前端提交队列412、前端完成队列413、前端提交队列512或前端完成队列513的实例或包含前端逻辑324、前端提交队列412、前端完成队列413、前端提交队列512或前端完成队列513,如参考图3至5所描述的。存储性存储器635可为图1至3的存储器装置130、存储器装置240或存储性存储器378中的一或多个的实例。
124.第一通信路径615-1可描绘前端逻辑630与tcm 625之间的数据流。第一通信路径615-1可包含图3的总线318和tcm连接件312。在一些实例中,小于阈值的与命令相关联的数据可经由第一通信路径615-1写入到tcm 625或从tcm 625读取。阈值可基于存储器系统610的中间端中的数据缓冲器的粒度,如本文所描述。
125.第二通信路径615-2可描绘前端逻辑630与存储性存储器635之间的数据流。第二通信路径615-2可包含图3的第一接口354-1、缓冲器连接件355、第二接口354-2和存储连接件375。在一些实例中,小于阈值的与命令相关联的数据可经由第一通信路径615-1写入到tcm 625或从tcm 625读取。在一些实例中,数据可在第一通信路径615-1上以比在第二通信路径615-2上更少的延迟进行交换,包含在数据存储在存储性存储器635中的高速缓存中的情况下。
126.第三通信路径615-3可描绘前端逻辑630与tcm 625之间的数据流。第三通信路径615-3可包含图3的逻辑连接件344。在一些实例中,从存储器系统610省略了第三通信路径615-3。在一些实例中,第三通信路径615-3为前端逻辑630与tcm 625之间的直接连接件。在一些实例中,数据可在第三通信路径615-3上以比在第一通信路径615-1和第二通信路径615-2上更少的延迟进行交换。
127.在一些实例中,前端逻辑630在第四通信路径615-4上从主机系统605接收命令。在一些实例中,前端逻辑630可确定与命令相关联的数据的大小小于阈值,并且可(例如,经由第三通信路径615-3)将数据写入到tcm 625。处理器620可从前端逻辑630获得命令并且处理所述命令。在一些实例中,处理器620可确定与命令相关联的数据的大小小于阈值并且使数据存储在tcm 625中。在其它实例中,处理器620可确定与命令相关联的数据的大小大于阈值并且使将数据存储在存储性存储器635中。
128.图7示出说明根据本文所公开的实例的支持基于数据大小的低延迟存储的操作的实例集合的流程图。方法700的操作可由与存储和存取信息相关联的系统或其组件实施,如本文所描述。例如,方法700的操作可由如参考图1至6所描述的系统执行。在一些实例中,系统可执行一组指令以控制装置的功能元件来执行所描述的功能。另外或替代地,系统可使
用专用硬件来执行所描述的功能的方面。
129.在705处,方法可包含(例如,在图3和6的前端逻辑324、630处)从主机(例如,图3和6的主机系统305、605)接收命令。可根据如本文所公开的实例执行705的操作。
130.在710处,方法可包含(例如,通过图3和6的前端逻辑324、630、处理器315、620或这两者)确定在逻辑处接收到的命令是否与小于阈值的数据相关联。可根据如本文所公开的实例执行710的操作。
131.在715处,方法可包含将数据存储在第一存储器(例如,图3和6的tcm 303、625)中,所述第一存储器经由第一通信路径(例如,图6的第一通信路径615-1)与逻辑耦合,并且在数据小于阈值的情况下与第一传送速度相关联。可根据如本文所公开的实例执行715的操作。
132.在720处,方法可包含将数据存储在第二存储器(例如,图3和6的存储性存储器378、635)中,所述第二存储器经由第二通信路径(例如,图6的第二通信路径615-2)与逻辑耦合,并且在数据大于阈值的情况下与比第一传送速度慢的第二传送速度相关联。可根据如本文所公开的实例执行720的操作。
133.在一些实例中,如本文所描述的设备可执行一或多种方法,例如方法700。所述设备可包含用于进行以下操作的特征、电路系统、逻辑、装置或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读媒体):(例如,在图3和6的前端逻辑324、630处)从主机(例如,图3和6的主机系统305、605)接收命令;(例如,通过图3和图6的处理器315、620)确定在逻辑处接收到的命令是否与小于阈值的数据相关联;将数据存储在第一存储器(例如,图3和图6的tcm 303、625)中,所述第一存储器经由第一通信路径(例如,图6的第一通信路径615-1)与逻辑耦合,并且在数据小于阈值的情况下与第一传送速度相关联;以及将数据存储在第二存储器(例如,图3和6的存储性存储器378、635)中,所述第二存储器经由第二通信路径(例如,图6的第二通信路径615-2)与逻辑耦合,并且在数据大于阈值的情况下与比第一传送速度慢的第二传送速度相关联。
134.应注意,上文所描述的方法描述了可能的实施方案,且操作和步骤可经重新布置或以其它方式修改,且其它实施方案是可能的。另外,可组合来自所述方法中的两种或更多种的部分。
135.描述了一种设备。所述设备可包含:存储器(例如,图3和6的tcm 303、625);逻辑(例如,图3和6的前端逻辑324、630),其被配置成从主机(例如,图3和6的主机系统305、605)接收命令;处理器(例如,图3和6的处理器315、620),其与所述存储器和所述逻辑耦合,所述处理器被配置成至少部分地基于所述命令确定待存取的所述数据小于阈值,并且至少部分地基于所述确定将与所述命令相关联的数据写入到所述存储器;并且其中所述逻辑进一步被配置成至少部分地基于来自所述处理器的所述数据已写入到所述存储器的指示从所述存储器读取所述数据,并且将所述数据输出到所述主机。
136.在所述设备的一些实例中,所述处理器可进一步被配置成:产生包含所述数据的数据包,所述数据包小于所述阈值;并且将所述数据包写入到所述存储器的被配置成用于可能小于所述阈值的数据包的区段。
137.在所述设备的一些实例中,所述处理器可进一步被配置成至少部分地基于将所述数据写入到所述存储器而将包含所述指示的第二命令发送到所述逻辑,所述第二命令与由
所述逻辑使用以存取可能小于所述阈值并且存储在所述存储器中的数据包的指令相关联。
138.在所述设备的一些实例中,所述第二命令包含所述数据包的大小的第二指示。
139.在一些实例中,所述设备可包含第一队列(例如,图3的前端提交队列327),其被配置成针对所述逻辑存储针对所述处理器的请求,其中,所述逻辑可进一步被配置成将所述命令写入到所述第一队列,并且所述处理器可进一步被配置成至少部分地基于所述命令被写入到所述第一队列而确定与所述命令相关联的所述数据的大小。
140.在一些实例中,所述设备可包含第二队列(例如,图3的前端完成队列330),其被配置成针对所述处理器存储针对所述逻辑的请求,其中所述处理器可进一步被配置成至少部分地基于将所述数据写入到所述存储器,将与所述命令相关联的所述数据可能已写入到所述存储器的所述指示写入到所述第二队列。
141.在一些实例中,所述设备可包含:第二存储器(例如,图3和6的存储性存储器378、635);以及控制器(例如,图3的控制器369),其与所述第二存储器耦合并且被配置成存取所述第二存储器,其中,所述逻辑可被配置成从所述主机接收第二命令,并且所述处理器可进一步被配置成确定与所述第二命令相关联的数据可大于所述阈值,并且至少部分地基于所述确定而使将与所述第二命令相关联的第二数据写入到所述第二存储器。
142.在一些实例中,所述设备可包含第一通信路径(例如,图6的第一通信路径615-1),其被配置成支持将所述数据从所述处理器传送到所述存储器,所述第一通信路径包含所述逻辑与所述处理器之间的总线(例如,图3的总线318)以及所述处理器与所述存储器之间的连接件(例如,图3的tcm连接件312),所述第一通信路径与传送速率相关联;以及第二通信路径(例如,图6的第二通信路径615-2),其被配置成支持将所述第二数据从所述逻辑传送到所述第二存储器,所述第二通信路径包含所述逻辑与第二逻辑之间且与第一传送速率相关联的第一接口(例如,图3的第一接口354-1),以及所述第二逻辑与所述控制器之间且与不同于所述第一传送速率的第二传送速率相关联的第二接口(例如,图3的第二接口354-2),其中所述第二通信路径的组合传送速率可低于所述第一通信路径的所述传送速率。
143.在所述设备的一些实例中,与将所述数据写入到所述存储器相关联的第一持续时间可短于与将所述第二数据写入到所述第二存储器相关联的第二持续时间。
144.在一些实例中,所述设备可包含:数据缓冲器(例如,图3的数据缓冲器351);第二逻辑(例如,包含在图3的中间端345中的逻辑),其与所述逻辑和所述数据缓冲器耦合,所述第二逻辑被配置成从所述逻辑接收所述第二数据并且至少部分地基于与所述第二命令相关联的所述数据大于所述阈值而将所述第二数据存储在所述数据缓冲器中;以及第三逻辑(例如,包含在图3的后端360中的逻辑),其与所述第二逻辑和所述控制器耦合,所述第三逻辑被配置成从所述逻辑接收所述第二数据并且至少部分地基于与所述第二命令相关联的所述数据大于所述阈值而使所述控制器将所述第二数据存储在所述第二存储器中。
145.在一些实例中,所述设备可包含总线(例如,图3的总线318),其与所述逻辑、所述第二逻辑、所述第三逻辑、所述控制器和所述处理器耦合。
146.在所述设备的一些实例中,所述存储器可与所述处理器紧密耦合,可被配置成存储用于所述处理器的命令序列,或这两者。
147.描述了另一种设备。所述设备可包含:存储器(例如,图3和6的tcm 303、625);逻辑(例如,图3和6的前端逻辑324、630),其被配置成从主机(例如,图3和6的主机系统305、605)
接收命令;处理器(例如,图3和6的处理器315、620),其与逻辑和存储器耦合,所述处理器被配置成确定与所述命令相关联的数据小于阈值,并且至少部分地基于确定所述处理器准备好接收与所述命令相关联的数据的第一指示而将所述数据写入到所述存储器;并且其中所述逻辑进一步被配置成至少部分地基于来自所述处理器的所述第一指示已写入到所述存储器并且将所述第一指示输出到所述主机的第二指示从所述存储器读取所述第一指示。
148.在所述设备的一些实例中,所述逻辑可进一步被配置成至少部分地基于输出所述第一指示而从所述主机接收与所述命令相关联的所述数据,并且将所述数据写入到所述存储器的被配置成用于可能小于所述阈值的数据包的区段。
149.在所述设备的一些实例中,所述处理器可进一步被配置成至少部分地基于来自所述逻辑的所述数据可能已写入到所述存储器的第三指示从所述存储器读取所述数据。
150.在所述设备的一些实例中,所述处理器可进一步被配置成将包含所述第二指示的第二命令发送到所述逻辑,所述第二命令与用于所述逻辑的指令相关联以从所述存储器获得所述第一指示并且将所述第一指示发送到所述主机。
151.在一些实例中,所述设备可包含第一队列(例如,图3的前端提交队列327),其被配置成针对所述逻辑存储针对所述处理器的请求,其中,所述逻辑可进一步被配置成将所述命令写入到所述第一队列,并且所述处理器可进一步被配置成至少部分地基于所述命令被写入到所述第一队列而确定与所述命令相关联的所述数据的大小。
152.在所述设备的一些实例中,所述逻辑可进一步被配置成至少部分地基于将所述第一指示输出到所述主机,将来自所述主机的数据可能已写入到所述存储器的第三指示存储在所述第一队列中。
153.在一些实例中,所述设备可包含第二队列(例如,图3的前端完成队列330),其被配置成针对所述处理器存储针对所述逻辑的请求,其中所述处理器可进一步被配置成至少部分地基于将所述第一指示写入到所述存储器,将所述处理器可准备好接收可能已写入到所述存储器的数据的所述第二指示写入到所述第二队列。
154.描述了另一种设备。所述设备可包含:逻辑(例如,图3和6的前端逻辑324、630),其被配置成从主机(例如,图3和6的主机系统305、605)接收命令;处理器(例如,图3和6的处理器315、620),其中所述逻辑、所述处理器或这两者可被配置成确定在所述逻辑处接收到的所述命令是否与小于阈值的数据相关联;第一存储器(例如,图3和6的tcm 303、625),其经由与第一传送速度相关联的第一通信路径(例如,图6的第一通信路径615-1)与所述逻辑耦合,所述第一存储器被配置成存储与所述命令的第一子集相关联的数据,所述第一子集与小于所述阈值的数据相关联;以及第二存储器(例如,图3和6的存储性存储器378、635),其经由与慢于所述第一传送速度的第二传送速度相关联的第二通信路径(例如,图6的第二通信路径615-2)与所述逻辑耦合,所述第二存储器被配置成存储与所述命令的第二子集相关联的数据,所述第二子集与大于所述阈值的数据相关联。
155.在一些实例中,所述设备可包含:第二逻辑(例如,包含在中间端345中的逻辑),其与所述逻辑耦合;以及数据缓冲器(例如,图3的数据缓冲器351),其与所述第二逻辑耦合,其中所述第二逻辑可被配置成将与所述命令的所述第二子集相关联的数据存储在所述数据缓冲器中。
156.在一些实例中,所述设备可包含:第三逻辑(例如,包含在图3的后端360中的逻
辑),其与所述第二逻辑耦合并且被配置成从所述数据缓冲器获得与所述命令的所述第二子集相关联的所述数据;以及控制器(例如,图3的控制器369),其与所述第三逻辑和所述第二存储器耦合,其中所述控制器可被配置成将从所述第三逻辑获得的数据存储在所述第二存储器中。
157.在一些实例中,所述设备可包含第一队列(例如,图3的前端提交队列327),其与所述逻辑和所述处理器耦合,所述第一队列被配置成存储由所述逻辑针对所述处理器产生的请求;以及第二队列(例如,图3的前端完成队列330),其与所述逻辑和所述处理器耦合,所述第二队列被配置成存储由所述处理器针对所述逻辑产生的请求。
158.在所述设备的一些实例中,所述第一存储器可与所述处理器紧密耦合并且包含被配置成用于由所述处理器使用指令以进行命令执行的区段,并且用于将在所述逻辑处接收到的数据写入到所述第一存储器的第一持续时间可短于用于将在所述逻辑处接收到的数据写入到所述第二存储器的第二持续时间。
159.在所述设备的一些实例中,所述第一存储器与所述逻辑之间的所述第一通信路径包含所述逻辑与所述处理器之间的总线(例如,图3的总线318)以及所述处理器与所述第一存储器之间的第一连接件(例如,图3的tcm连接件312),并且所述第二存储器与所述逻辑之间的所述第二通信路径包含所述逻辑与第二逻辑之间的第一接口(例如,图3的第一接口354-1)、所述第二逻辑与第三逻辑之间的第二接口(例如,图3的第二接口354-2),以及所述第三逻辑与所述第二存储器之间的第二连接件(例如,图3的存储性连接件375)。
160.在一些实例中,所述设备可包含所述第一存储器与所述逻辑之间的第三通信路径(例如,图6的第三通信路径615-3),所述第三通信路径包含所述第一存储器与所述逻辑之间的连接件(例如,图3的逻辑连接件344)。
161.可使用多种不同技术和技艺中的任一个来表示本文中所描述的信息和信号。例如,可用电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和芯片。一些图式可将信令说明为单个信号;然而,信号可表示信号的总线,其中所述总线可具有多种位宽度。
162.术语“电子连通”、“导电接触”、“连接”和“耦合”可以指组件之间支持电子在组件之间流动的关系。如果组件之间存在可在任何时间支持信号在组件之间流动的任何导电路径,则组件被视为彼此电子通信(或彼此导电接触,或彼此连接,或彼此耦合)。在任何给定时间,基于包含所连接组件的装置的操作,彼此电子连通(或导电接触或连接或耦合)的组件之间的导电路径可以是开路或闭路。所连接组件之间的导电路径可以是组件之间的直接导电路径,或所连接组件之间的导电路径可以是可包含如开关、晶体管或其它组件的中间组件的间接导电路径。在一些实例中,可例如使用例如开关或晶体管等一或多个中间组件来中断所连接组件之间的信号流一段时间。
163.术语“耦合”是指从组件之间的开路关系移动到组件之间的闭路关系的条件,在开路关系中,信号当前无法通过导电路径在组件之间传达,在闭路关系中,信号能够通过导电路径在组件之间传达。如果如控制器的组件将其它组件耦合在一起,则组件发起允许信号经由先前不准许信号流动的导电路径在其它组件之间流动的改变。
164.术语“隔离”是指信号当前不能在组件之间流动的组件之间的关系。如果组件之间存在开路,则组件彼此隔离。例如,由定位在两个组件之间的开关间隔开的所述组件在开关
断开的情况下彼此隔离。如果控制器将两个组件隔离,则控制器实现以下改变:阻止信号使用先前准许信号流动的导电路径在组件之间流动。
165.术语“如果”、“当
……
时”、“基于”,或“至少部分地基于”可互换使用。在一些实例中,如果术语“如果”、“当
……
时”、“基于”,或“至少部分地基于”用于描述条件性动作、条件性过程,或过程的部分之间的连接,则所述术语可互换。
166.术语“响应于”可指由于先前条件或动作而至少部分地(在不完全的情况下)发生的一个条件或动作。例如,可进行第一条件或动作,且作为先前条件或动作发生的结果(不管是直接在第一条件或动作之后还是在第一条件或动作之后的一或多个其它中间条件或动作发生之后),第二条件或动作可至少部分地发生。
167.本文中论述的装置,包含存储器阵列,可形成于例如硅、锗、硅锗合金、砷化镓、氮化镓等半导体衬底上。在一些实例中,衬底是半导体晶片。在一些其它实例中,衬底可以是绝缘体上硅(soi)衬底,例如玻璃上硅(sog)或蓝宝石上硅(sop),或另一衬底上的半导体材料的外延层。可通过使用包含但不限于磷、硼或砷的各种化学物质的掺杂来控制衬底或衬底的子区的导电性。可在衬底的初始形成或生长期间,通过离子植入或通过任何其它掺杂方法执行掺杂。
168.本文中所论述的开关组件或晶体管可表示场效应晶体管(fet),且包括包含源极、漏极和栅极的三端装置。所述端子可通过导电材料(例如金属)连接到其它电子元件。源极和漏极可为导电的,且可包括经重掺杂,例如简并,半导体区。源极与漏极可通过经轻掺杂半导体区或沟道分离。如果沟道为n型(即,多数载流子是电子),则fet可被称作n型fet。如果沟道为p型(即,多数载流子为空穴),则fet可称为p型fet。通道可由绝缘栅极氧化物封端。可通过将电压施加到栅极来控制通道导电性。例如,将正电压或负电压分别施加到n型fet或p型fet可导致通道变得导电。如果大于或等于晶体管的阈值电压的电压施加到晶体管栅极,则晶体管可“接通”或“激活”。如果小于晶体管的阈值电压的电压施加到晶体管栅极,则晶体管可“断开”或“去激活”。
169.本文结合附图阐述的描述内容描述了实例配置,且并不表示可以实施的或在权利要求书的范围内的所有实例。本文所使用的术语“示例性”意指“充当实例、例子或说明”,并且不比其它实例“优选”或“有利”。详细描述包含具体细节,以提供对所描述技术的理解。然而,可在没有这些具特定细节之情况下实践这些技术。在一些情况下,以框图形式示出熟知结构和装置,以免混淆所描述实例的概念。
170.在附图中,类似组件或特征可以具有相同的参考标记。此外,可通过在参考标记之后跟着短横及在类似组件之间进行区分的第二标记来区分相同类型的各种组件。如果说明书中仅使用第一参考标记,则描述适用于具有相同第一参考标记的类似组件中的任一者,与第二参考标记无关。
171.本文中所描述的功能可以硬件、由处理器执行的软件、固件或其任何组合来实施。如果以由处理器执行的软件实施,则可将功能作为一或多个指令或代码存储于计算机可读媒体上或经由计算机可读媒体发射。其它实例和实施方案在本公开和所附权利要求书的范围内。例如,由于软件的本质,上文所描述的功能可使用由处理器执行的软件、硬件、固件、硬连线或这些中的任一个的组合来实施。实施功能的特征还可物理上位于各种位置处,包含经分布以使得功能的部分在不同物理位置处实施。
172.例如,结合本文中的公开内容所描述的各种说明性块及组件可使用通用处理器、dsp、asic、fpga或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或经设计以执行本文中所描述的功能的其任何组合来实施或执行。通用处理器可为微处理器,但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器可实施为计算装置的组合(例如,dsp和微处理器的组合、多个微处理器、一或多个微处理器结合dsp核心,或任何其它此类配置)。
173.如本文中所使用,包含在权利要求书中,如在项列表(例如,后加例如“中的至少一个”或“中的一或多个”的短语的项列表)中所使用的“或”指示包含端点的列表,使得例如a、b或c中的至少一个的列表意指a或b或c或ab或ac或bc或abc(即,a和b和c)。另外,如本文所用,短语“基于”不应理解为提及封闭条件集。例如,在不脱离本公开的范围的情况下,描述为“基于条件a”的示例性步骤可基于条件a和条件b两者。换句话说,如本文所用,短语“基于”应同样地解释为短语“至少部分地基于”。
174.计算机可读媒体包含非暂时性计算机存储媒体以及包含促进将计算机程序从一处传递到另一处的任何媒体的通信媒体两者。非暂时性存储媒体可为可由通用或专用计算机存取的任何可用媒体。借助于实例而非限制,非暂时性计算机可读媒体可包括ram、rom、电可擦除可编程只读存储器(eeprom)、压缩光盘(cd)rom或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于携载或存储呈指令或数据结构形式的所要程序代码构件且可由通用或专用计算机或者通用或专用处理器存取的任何其它非暂时性媒体。并且,适当地将任何连接称作计算机可读媒体。例如,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(dsl)或例如红外线、无线电和微波的无线技术从网站、服务器或其它远程源传输软件,则所述同轴电缆、光纤电缆、双绞线、dsl或例如红外线、无线电和微波的无线技术包含在媒体的定义中。如本文所使用,磁盘和光盘包含cd、激光光盘、光学光盘、数字多功能光盘(dvd)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各者的组合也包含在计算机可读媒体的范围内。
175.提供本文中的描述使得所属领域的技术人员能够进行或使用本公开。所属领域技术人员将清楚对本公开的各种修改,且本文中所定义的一般原理可应用于其它变化形式而不会脱离本公开的范围。因此,本公开不限于本文中所描述的实例和设计,而是被赋予与本文公开的原理和新颖特征一致的最宽范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献