寻址到逻辑块的命令的执行的制作方法

文档序号:25872354发布日期:2021-07-16 16:47阅读:110来源:国知局
寻址到逻辑块的命令的执行的制作方法
寻址到逻辑块的命令的执行
1.优先权信息
2.本申请要求2019年12月30日提交的第62/954,866号美国临时申请的优先权,其内容以引用的方式并入本文中。
技术领域
3.本公开的实施例大体上涉及存储器子系统,且更具体地说,涉及执行重叠的命令。


背景技术:

4.存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可以是例如非易失性存储器装置和/或易失性存储器装置。一般来说,主机系统可利用存储器子系统来将数据存储在存储器装置处且从存储器装置检索数据。


技术实现要素:

5.根据本申请案的一方面,提供一种用于执行寻址到相同逻辑块的命令的系统。系统包括:存储器装置130、140;主机接口;和处理装置115,其与存储器装置和主机接口耦合,以进行以下操作:响应于将命令完成信号227提供到主机120而标记寻址到存储器装置的相同逻辑块的多个命令221的一部分;在执行来自多个命令的标记部分的寻址到相同逻辑块的读取命令之前,执行来自多个命令的标记部分的最新写入命令;且按接收读取命令的次序且在最新写入命令的执行之后执行来自多个命令的标记部分的读取命令,其中响应于最新写入命令的执行而执行读取命令。
6.根据本申请案的另一方面,提供一种用于执行寻址到相同逻辑块的命令的方法。方法包括:接收寻址到多个存储器装置130、140的逻辑块的命令221;确定最近执行的命令是否寻址到逻辑块;响应于确定最近执行的命令寻址到逻辑块而标记命令;响应于标记命令而将寻址到逻辑块的命令添加到先入先出(fifo)存储器224;和执行存储于fifo存储器中的多个命令。
7.根据本申请案的又另一方面,提供一种用于执行寻址到相同逻辑块的命令的系统。系统包括:处理装置117;存储器装置130、140;控制器106,其与存储器装置和处理装置耦合,以进行以下操作:拦截识别寻址到第一逻辑块的第一命令221的完成的第一命令完成信号227;响应于拦截第一命令完成信号而确定未决命令221是到除第一逻辑块以外的不同逻辑块;识别待执行的寻址到第二逻辑块的第二命令221;标记来自未决命令的寻址到第二逻辑块的命令221;和通过以下操作将所标记命令提供到处理装置:从所标记命令提供最新写入命令以供执行;和按接收读取命令的次序而从所标记命令提供读取命令以供执行。
附图说明
8.根据下文给出的详细描述和本公开的各种实施例的随附图式,将更充分地理解本公开。
9.图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
10.图2说明根据本公开的一些实施例的命令重叠电路系统的实例。
11.图3是根据本公开的一些实施例的用于命令重叠电路系统的实例方法的流程图。
12.图4是本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
13.本公开的方面是针对执行寻址到相同逻辑块的命令的存储器子系统。存储器子系统可以是存储装置、存储器模块或存储装置与存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个组件(如存储数据的存储器装置)的存储器子系统。主机系统可提供待存储于存储器子系统处的数据且可请求从存储器子系统检索数据。
14.主机系统可将存取请求(例如,写入命令、读取命令)发送到存储器子系统,以便将数据存储在存储器子系统处的存储器装置上,且从存储器子系统上的存储器装置读取数据。如由主机请求所指定,待读取或写入的数据在下文中称作“主机数据”。主机请求可包含用于主机数据的逻辑地址信息(例如,逻辑块地址(lba)、名字空间),其是主机系统与主机数据相关联的位置。逻辑地址信息可以是用于主机数据的元数据的部分。
15.存储器子系统可接收称为存取命令的存取请求。存储器子系统还可接收不同类型的命令,如管理命令。存储器子系统可执行命令。然而,根据一些常规方法,存储器子系统可执行不按次序的命令。常规地,存储器子系统可在执行写入命令之前执行读取命令以使得读取命令可存取过时数据。
16.本公开的方面解决以上和其它缺陷。为提供更新数据的存取,存储器子系统可识别和执行寻址到相同逻辑块(lb)的命令。举例来说,存储器子系统可识别且执行读取数据和/或将数据写入到相同逻辑块的命令。存储器子系统可在执行读取命令之前执行写入命令。命令的识别和执行可基于寻址到相同lb的不同命令的完成。最新写入命令可在执行读取命令之前执行。读取命令还可按其由存储器子系统接收的次序执行。
17.本文中的图式遵循编号定则,其中第一一或多个数字对应于图式编号,且其余的数字识别图式中的元件或组件。可通过使用类似数字来识别不同图式之间的类似元件或组件。举例来说,106可指代图1中的元件“06”,且类似元件可表示为图2中的206。如将了解,可添加、交换和/或消除本文中的各种实施例中示出的元件以便提供本公开的数个额外实施例。另外,如将了解,图式中提供的元件的比例和相对标度意欲说明本发明的某些实施例,且不应以限制性意义采用。
18.图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或这些的组合。
19.存储器子系统110可以是存储装置、存储器模块或存储装置与存储器模块的混合。存储装置的实例包含固态驱动器(ssd)、快闪驱动器、通用串行总线(usb)快闪驱动器、嵌入式多媒体控制器(emmc)驱动器、通用快闪存储(ufs)驱动器、安全数字(sd)卡和硬盘驱动器(hdd)。存储器模块的实例包含双列直插式存储器模块(dimm)、小外形dimm(so

dimm)和各种类型的非易失性双列直插式存储器模块(nvdimm)。
20.计算系统100可以是计算装置,如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具有物联网(iot)功能的装置、嵌入式计算机(例如,交通工具、工业设备或联网商业装置中包含的嵌入式计算机)或包含存储器和处理装置的此类计算装置。
21.计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的实例。如本文中所使用,“与

耦合”的“耦合到”通常指代组件之间的连接,其可以是间接通信连接或直接通信连接(例如不具有介入组件),无论有线或无线,包含如电性连接、光学连接、磁性连接和类似连接。
22.主机系统120可包含处理器芯片组和由处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如,nvdimm控制器)和存储协议控制器(例如,pcie控制器、sata控制器)。主机系统120使用例如存储器子系统110将数据写入到存储器子系统110并从存储器子系统110读取数据。
23.主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(sata)接口、外围组件互连高速(pcie)接口、通用串行总线(usb)接口、光纤通道、串行附接scsi(sas)、小型计算机系统接口(scsi)、双数据速率(ddr)存储器总线、双列直插式存储器模块(dimm)接口(例如,支持双数据速率(ddr)的dimm套接接口)、开放nand快闪接口(onfi)、双数据速率(ddr)、低功率双数据速率(lpddr)或任何其它接口。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过pcie接口与主机系统120耦合时,主机系统120可进一步利用对组件(例如,存储器装置130)的nvm高速(nvme)接口。物理主机接口可提供接口以用于在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号。图1说明存储器子系统110作为实例。一般来说,主机系统120可经由同一通信连接、多个单独通信连接和/或通信连接的组合来存取多个存储器子系统。
24.存储器装置130、140可包含不同类型的非易失性存储器装置130和/或易失性存储器装置140的任何组合。易失性存储器装置(例如,存储器装置140)可以是(但不限于)随机存取存储器(ram),如动态随机存取存储器(dram)和同步动态随机存取存储器(sdram)。
25.非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(nand)型快闪存储器和就地写入存储器,如三维交叉点(“3d交叉点”)存储器装置,其是非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列而基于体电阻的改变来执行位存储。此外,与许多基于快闪的存储器对比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。nand型快闪存储器包含(例如)二维nand(2d nand)和三维nand(3d nand)。
26.存储器装置130中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单层级单元(slc)可每单元存储一个位。其它类型的存储器单元,如多层级单元(mlc)、三层级单元(tlc)、四层级单元(qlc)和五层级单元(plc)可每单元存储多个位。在一些实施例中,存储器装置130、140中的每一个可包含一或多个存储器单元阵列,如slc、mlc、tlc、qlc或这些的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的slc部
分和mlc部分、tlc部分、qlc部分或plc部分。存储器装置130、140的存储器单元可分组为页,页可指用以存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,nand),页可进行分组以形成块。
27.虽然描述如3d交叉点非易失性存储器单元阵列和nand型存储器(例如,2d nand、3d nand)和3d交叉点非易失性存储器单元阵列的非易失性存储器装置130,但存储器装置130可基于任何其它类型的非易失性存储器或存储装置,如只读存储器(rom)、相变存储器(pcm)、自选存储器、其它基于硫族化物的存储器、铁电晶体管随机存取存储器(fetram)、铁电随机存取存储器(feram)、磁随机存取存储器(mram)、自旋转移力矩(stt)

mram、导电桥接ram(cbram)、电阻性随机存取存储器(rram)、基于氧化物的rram(oxram)、或非(nor)快闪存储器和电可擦除可编程只读存储器(eeprom)。
28.存储器子系统控制器115(或简称为控制器115)可与存储器装置130通信以执行操作,如在存储器装置130处读取数据、写入数据或擦除数据和其它这类操作。存储器子系统控制器115可包含硬件,如一或多个集成电路和/或离散组件、缓冲存储器或其组合。硬件可包含具有专用(即,硬译码)逻辑的数字电路系统以执行本文中所描述的操作。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)或其它合适的处理器。
29.存储器子系统控制器115可包含配置成执行存储在本地存储器119中的指令的处理器117(例如,处理装置)。在所说明的实例中,存储器子系统控制器115的本地存储器119包含配置成存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作(包含操控存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程以及例程。
30.在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。举例来说,本地存储器119还可包含用于存储微码的只读存储器(rom)。虽然图1中的实例存储器子系统110已说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,且可实际上依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。
31.一般来说,存储器子系统控制器115可从主机系统120接收命令或操作且可转换来自主机系统120的命令或操作,且可将命令或操作转换成指令或适当命令以实现对存储器装置130和/或存储器装置140的所要存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、误差检测和误差校正码(ecc)操作、加密操作、高速缓存操作和与存储器装置130相关联的逻辑地址(例如,逻辑块地址(lba)、名字空间)和物理地址(例如,物理块地址)之间的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收到的命令转换为命令指令以存取存储器装置130和/或存储器装置140,以及将与存储器装置130和/或存储器装置140相关联的响应转换为用于主机系统120的信息。
32.存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如,dram)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从存储器子系统控制器115接收地址并解码所述地址以存取存储器装置130。
33.在一些实施例中,存储器装置130包含本地媒体控制器135,所述本地媒体控制器135结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,其是与本地控制器(例如,本地控制器135)组合以在同一存储器装置封装内进行媒体管理的原始存储器装置。受管理存储器装置的实例是受管理nand(mnand)装置。
34.存储器子系统控制器115还可包含命令重叠电路系统106。命令重叠电路系统106可识别由存储器子系统110接收到的命令,所述命令寻址到存储器装置130和/或存储器装置140以及其它可能存储器装置的相同lb。
35.在一些实施例中,存储器子系统控制器115包含命令重叠电路系统106的至少一部分。举例来说,存储器子系统控制器115可包含处理器117(处理装置),其配置成执行存储在本地存储器119中的指令以用于执行本文中所描述的操作。在一些实施例中,命令重叠电路系统106是主机系统120、应用程序或操作系统的部分。
36.命令可包括元数据。命令的元数据可包含名字空间、开始lb和/或结束lb以及其它类型的元数据。如果名字空间匹配且来自一个命令的lb中的一个在另一命令的开始lb与结束lb之间,那么可将命令描述为重叠。举例来说,当第一命令和第二命令具有相同开始lb和/或相同结束lb时,第一命令可与第二命令重叠。在各种实例中,当对应于第一命令和第二命令中的每一个的lb的至少一部分重叠时,第一命令和第二命令也可重叠。举例来说,当第二命令的开始lb大于第一命令的开始lb但小于第一命令的结束lb时,第一命令和第二命令可重叠。当第二命令的结束lb大于第一命令的开始lb但小于第一命令的结束lb时,第一命令和第二命令也可重叠。当第二命令的开始lb小于第一命令的开始lb且第二命令的结束lb大于第一命令的结束lb时,第一命令和第二命令可重叠。
37.命令的名字空间可识别一种类型的命令。举例来说,命令的名字空间可以是写入或读取以及其它类型。命令的名字空间可用于确定将哪些命令提供到存储器子系统110的处理器117(例如,处理装置,如中央处理单元(cpu))以供执行。举例来说,写入命令可在提供读取命令之前提供到处理器117。举例来说,最新写入命令可在提供读取命令之前提供到处理器117。最新写入命令可描述接收到的最末写入命令。
38.命令可从主机系统120提供到存储器子系统控制器115且提供到命令重叠电路系统106。可保留与命令的接收相关联的次序。举例来说,第一命令可识别为在接收第二命令之前接收到。
39.命令可选自由存储器子系统110接收到的命令。在选择用于执行的命令后,如果接收到的命令寻址到所选命令寻址到其的相同地址,那么可标记接收到的命令。标记命令可识别出所标记命令和所选命令寻址到相同地址。
40.命令也可基于命令的完成而标记。当执行命令时,可完成所述命令。在一些实施例中,在命令完成后,信号提供到主机系统120,从而指示所述命令的执行的完成。
41.命令和/或与命令相关联的次序可存储于命令重叠电路系统106(例如,图2中的命令重叠电路系统206)、本地存储器119、存储器装置130、存储器装置140和/或如高速缓存和/或sram以及其它可能类型的存储器的不同存储器装置中。在各种实例中,命令重叠电路系统106可利用多个数据结构来存储从主机系统120接收到的命令、从主机系统120接收到
的信号和/或重叠的命令以及其它类型的数据。
42.所标记命令可在执行未标记命令之前通过处理器117执行。在所标记命令内,写入命令可在执行读取命令之前执行。在执行读取命令之前执行写入命令允许读取命令存取更新的数据。
43.图2说明根据本公开的一些实施例的命令重叠电路系统206的实例。命令重叠电路系统206包含命令表222、重叠检查电路系统223、先进先出(fifo)存储器224和标记项扫描电路系统225。命令表222和fifo存储器224可耦合到重叠检查电路系统223。标记项扫描电路系统225可耦合到重叠检查电路系统223。fifo存储器224可进一步耦合到标记项扫描电路系统225。
44.命令重叠电路系统206可从图1的系统主机120接收命令221。在各种实例中,命令221可以是nvme命令。命令221可添加到命令表222。命令也可提供到重叠检查电路系统223。
45.命令表222可识别接收命令221的次序。命令表222也可存储命令221的元数据。举例来说,命令表222可存储命令221中的每一个的名字空间、开始lb和/或结束lb。
46.可为命令221中的每一个指派标签。标签可由名字空间、开始lb和/或结束lb以及命令221的其它元数据值中的一或多个构成。标签可用于识别命令,且因此可称作标签标识(id)。也可在命令221正由命令重叠电路系统206接收之前将标签指派到命令221。举例来说,可通过图1中的处理器117产生和指派标签。在所标记命令的执行时,可释放对应于所标记命令的标签以使得标签可在将来用于不同命令。
47.重叠检查电路系统223可利用指派到命令221的标签来识别哪些命令221寻址到相同逻辑块(例如,重叠)。举例来说,重叠的命令221可具有相同的标签的部分或可具有相同标签。举例来说,可产生由第一位向量表示的第一标签且将所述第一标签指派到第一命令。可产生由第二位向量表示的第二标签且将所述第二标签指派到第二命令。当第一标签和第二标签具有在第一位向量和第二位向量内具有相同位定位的相同一或多个位时,第一命令和第二命令可重叠。举例来说,第一标签和第二标签可具有相同的一或多个位,其中一或多个位表示开始lb和/或结束lb。
48.在各种情况下,第一命令和第二命令可进行比较以在不参考指派到第一命令和第二命令的标签的情况下确定其是否重叠。举例来说,命令221的开始lb和结束lb可进行比较以确定命令是否重叠。
49.重叠检查电路系统223可识别接收到且存储于命令表222中的最早命令。响应于识别接收到的最早命令,重叠检查电路系统223可将识别出的命令与存储于命令表222中的另一命令进行比较。
50.重叠检查电路系统223可标记与识别出的命令重叠的命令。重叠检查电路系统223也可标记识别出的命令。可在命令表222中标记重叠的命令。举例来说,命令表222中的每一项可对应于命令,且可包含名字空间、开始lb和结束lb的字段,和/或标记的字段,以及其它可能字段。
51.重叠检查电路系统223可将所标记命令存储在fifo存储器224中。如本文中所使用,标记命令可包含识别所述命令。命令可通过将数据存储在命令表222和/或fifo存储器224中来标记。举例来说,旗标(例如,位)可存储于命令表222和/或fifo存储器224中以标记命令。在各种实例中,重叠检查电路系统223可响应于将所标记命令存储在fifo存储器224
中而从命令表222删除所标记命令。在其它情况下,重叠检查电路系统223可响应于正执行的所标记命令(例如,正完成的所标记命令)而从命令表222删除所标记命令。无论何时从命令表222删除所标记命令,所标记命令可存储于fifo存储器224中。在各种实例中,在接收命令的次序保留在命令表222中的条件下且前提是命令被选择以用于基于所述次序而进行标记,将标记存储于命令表222中的命令中的每一个。
52.fifo存储器224可存储命令和其相关联的元数据以使得保留从命令表222检索所存储命令的次序。举例来说,存储于fifo存储器224中的最早命令可以是从fifo存储器224检索的第一命令。
53.存储于fifo存储器224中的最近命令可以是从fifo存储器224检索的最末命令。举例来说,如果在第二命令存储于fifo存储器224中之前,第一命令存储于fifo存储器224中,那么可在从fifo存储器224检索第二命令之前从fifo存储器224检索第一命令。
54.在一些实例中,所标记命令存储于fifo存储器224中的次序可与从fifo存储器224检索所标记命令的次序分离。举例来说,如果在将第二命令存储到fifo存储器224之前,第一命令存储于fifo存储器224中,且在第一命令和第二命令存储于fifo存储器224中之后,第三命令存储于fifo存储器224中,那么可在检索第二命令和第三命令之前从fifo存储器224检索第一命令且可在检索第二命令之前检索第三命令。
55.除了标记所述命令之外,重叠检查电路系统223还可将命令存储在fifo存储器224中以使得在读取命令的检索之前从fifo存储器224检索写入命令。标记项扫描电路系统225可从fifo存储器224检索命令。在从fifo存储器224检索读取命令之前从fifo存储器224检索写入命令允许在执行读取命令之前执行写入命令。在执行读取命令之前执行写入命令实现了读取最新数据。举例来说,如果存储于fifo存储器224中的第一命令是写入命令,存储于fifo存储器224中的第二命令是读取命令,且存储于fifo存储器224中的第三命令也是写入命令,那么可在检索第二命令之前但在检索第一命令之后从fifo存储器224检索第三命令。如此,可响应于第一命令和第三命令是写入命令且第二命令是读取命令而在检索第二命令之前从fifo存储器224检索第一命令和第三命令。在各种实例中,可基于存储于命令表222中的命令(例如,第一命令)而选择将第一命令分选到fifo存储器224的第一次序。然而,在第一命令存储于fifo存储器224中后,额外命令可由命令重叠电路系统206接收到。额外命令可存储于fifo存储器224中。标记项扫描电路系统225可基于第二次序而检索命令,所述第二次序基于第一命令和额外命令的可用性而选择。在第一次序可不包含额外命令的条件下,第二次序可不同于第一次序。
56.在命令已标记和存储于fifo存储器224中后,标记项扫描电路系统225可存取存储于fifo存储器224中的所标记命令且可检索第一标记命令。标记项扫描电路系统225可响应于检索第一标记命令而使得删除第一标记命令或可响应于完成第一标记命令的执行而使得删除第一标记命令。
57.标记项扫描电路系统225可验证是否标记存储于fifo存储器224中的命令。验证是否标记存储于fifo存储器224中的命令可描述为扫描。标记项扫描电路系统225可扫描存储于fifo存储器224中的所标记命令以确保所述所标记命令重叠,或可使得重叠检查电路系统223扫描存储于命令表222中的命令以识别重叠的命令。如果额外命令不存储于fifo存储器224中,那么标记项扫描电路系统225可请求重叠检查电路系统223标记额外命令且将新
近标记的命令存储到fifo存储器224。在各种实例中,重叠检查电路系统223可在无来自标记项扫描电路系统225的额外输入的情况下标记额外命令且将新近标记的命令存储到fifo存储器224。举例来说,无论是否存在存储于fifo存储器224中的命令,重叠检查电路系统223均可标记命令。
58.由标记项扫描电路系统225从fifo存储器224检索的命令226可提供到图1中的处理器117(例如,存储器子系统cpu)。标记项扫描电路系统225可一次将单个命令226提供到处理器。重叠检查电路系统223可制止将来自命令表222的额外命令存储到fifo存储器224直到处理器执行由标记项扫描电路系统225提供的命令。在各种实例中,重叠检查电路系统223可将来自命令表222的额外命令存储到fifo存储器224而不等待处理器执行由标记项扫描电路系统225提供的命令。
59.处理器可在命令由处理器执行之后将命令完成信号227提供到标记项扫描电路系统225。响应于接收到命令完成信号227,标记项扫描电路系统225可扫描由fifo存储器224存储的命令以确定是否标记所述命令。标记项扫描电路系统225可将所执行命令(例如,所完成命令)和由fifo存储器224存储的所标记命令进行比较以确定其是否重叠。如果其重叠,那么标记项扫描电路系统225可选择下一标记命令且可将所选命令226提供到存储器子系统的处理器。
60.标记项扫描电路系统225可响应于接收到命令完成信号227而继续提供命令226。响应于确定fifo存储器224并不存储所标记命令,标记项扫描电路系统225可将信号提供到重叠检查电路系统223以使得重叠检查电路系统223标记额外命令。在各种实例中,重叠检查电路系统223可在不由标记项扫描电路系统225提示的情况下将命令存储到fifo存储器224。
61.响应于从标记项扫描电路系统225接收到信号,重叠检查电路系统223可从命令表222选择最早接收的信号。响应于从命令表222选择最早接收的命令,重叠检查电路系统223可标记与所选最早接收的命令重叠的命令。重叠检查电路系统223可随后将所标记命令存储到fifo存储器224。
62.标记项扫描电路系统225可提供如先前描述的存储于fifo存储器224中的命令。在fifo存储器224中不再存在命令后且响应于接收到命令完成信号227,标记项扫描电路系统225可继续使得重叠命令由重叠检查电路系统223标记。
63.在任何时候,新命令221均可由命令重叠电路系统206接收。举例来说,可分别在已填充命令表222和/或已用接收到的命令和/或所标记命令填充fifo存储器224后接收新命令221。
64.新近接收到的命令221可提供到重叠检查电路系统223。重叠检查电路系统223可确定当前正执行的命令是否与新近接收到的命令221重叠或存储于fifo存储器224中的所标记命令是否与新近接收到的命令221重叠。如果新近接收到的命令221和最近执行的命令重叠,那么重叠检查电路系统223可将新近接收到的命令221添加到fifo存储器224。如本文中所使用,最近执行的命令可包含与在最后执行的命令的执行之前执行的命令相对的最后执行的命令。新近接收到的命令221可添加到fifo 224以使得在新近接收到的命令221是写入命令的情况下在所标记写入命令之后或在新近接收到的命令221是读取命令的情况下在所标记读取命令之后检索新近接收到的命令221。所标记命令可继续如先前所描述从fifo
存储器224被检索。
65.可为新近接收到的命令221指派标签。重叠检查电路系统223可基于所指派标签而确定是否将新近接收到的命令221添加到fifo存储器224。在一些情形下,新近接收到的命令221可添加到命令表222且添加到fifo存储器224。
66.在指派有相同标签的所标记命令完成后,可释放对应于所标记命令的标签。释放所述标签描述与不同命令和/或lb一起使用的标签的可用性。标记项扫描电路系统225可释放标签,或不同装置可释放标签,如重叠检查电路系统223和/或包含命令重叠电路系统106的存储器子系统的处理装置。
67.图3是根据本公开的一些实施例的用于命令重叠电路系统的实例方法的流程图。方法303可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法303由图2的命令重叠电路系统206执行。虽然以特定顺序或次序来示出,但除非另有指定,否则可修改过程的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序执行,且一些过程可并行执行。此外,可在各种实施例中省略一或多个过程。因此,在每一实施例中并不需要所有过程。其它过程流程是可能的。
68.在框342处,可接收寻址到多个存储器装置的逻辑块的命令。在框344处,可进行关于最近执行的命令是否寻址到所述逻辑块的确定。在框346处,可响应于确定最近执行的命令寻址到逻辑块而标记所述命令。在框348处,寻址到逻辑块的命令可响应于标记所述命令而添加到fifo存储器。在框350处,可执行存储于fifo存储器中的多个命令。
69.在各种实例中,命令可响应于制止标记所述命令而添加到命令表。响应于制止标记所述命令,方法303可制止将命令添加到fifo存储器。
70.可确定所述命令是写入命令。响应于确定命令是写入命令且响应于标记所述命令,命令可添加到fifo存储器以使得命令在读取命令之前和在来自多个命令的写入命令的最新写入命令之后执行。
71.可确定所述命令是读取命令。响应于确定命令是读取命令且响应于标记所述命令,命令可添加到fifo存储器以使得命令在读取命令和多个命令的写入命令之后执行。在各种情况下,可通过将命令提供到存储器子系统的处理装置来执行命令。
72.图4说明计算机系统490的实例机器,在所述实例机器内可执行用于使得机器执行本文中所论述的方法中的一或多种的指令集。在一些实施例中,计算机系统490可对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的命令重叠电路系统106的操作)。在替代性实施例中,机器可连接(例如,联网)到lan、内联网、外联网和/或因特网中的其它机器。机器可作为点对点(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端

服务器网络环境中的服务器或客户端机器的容量中操作。
73.机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、网络设备、服务器、网络路由器、交换机或网桥或能够执行指定要由所述机器进行的动作的指令集(依序或以其它方式)的另一机器。另外,尽管说明单个机器,但还应认为术语

机器”包含机器的集合,所述集合单独地或共同地执行一(或多个)指令集以执行本文中所论述的方法中的一或多种。
74.实例计算机系统490包含处理装置492、主存储器494(例如,只读存储器(rom)、快闪存储器、动态随机存取存储器(dram),如同步dram(sdram)或rambus dram(rdram)等)、静态存储器498(例如,快闪存储器、静态随机存取存储器(sram)等)以及数据存储系统499,它们经由总线497彼此通信。
75.处理装置492表示一或多个通用处理装置,如微处理器、中央处理单元或类似物。更确切地说,处理装置可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置492也可以是一或多个专用处理装置,如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器或类似物。处理装置492配置成执行用于执行本文中所论述的操作和步骤的指令493。计算机系统490可进一步包含网络接口装置495以经由网络496通信。
76.数据存储系统499可包含机器可读存储媒体491(也称为计算机可读媒体),其上存储有一或多个指令集493或体现本文中所描述的方法或功能中的一或多种的软件。指令493还可在其由计算机系统490执行期间完全或至少部分地驻存在主存储器494内和/或处理装置492内,主存储器494和处理装置492也构成机器可读存储媒体。机器可读存储媒体491、数据存储系统499和/或主存储器494可对应于图1的存储器子系统110。
77.在一个实施例中,指令493包含实施对应于图1的命令重叠电路系统106的功能性的指令。指令可包含与执行重叠命令(如图1中的命令重叠电路系统106)相关联的命令指令489。尽管在实例实施例中机器可读存储媒体491展示为单个媒体,但应认为术语“机器可读存储媒体”包含存储一或多个指令集的单个媒体或多个媒体。还应认为术语“机器可读存储媒体”包含能够存储或编码供机器执行的指令集且使得机器执行本公开的方法中的一或多种的媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体以及磁性媒体。
78.已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。算法在这里且通常认为是导致所期望结果的操作的自洽序列。操作是要求对物理量进行物理操控的操作。通常(但未必),这些量采用能够存储、组合、比较和以其它方式操控的电信号或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元件、符号、字符、术语、数目或类似物是方便的。
79.然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便标签。本公开可涉及将计算机系统的寄存器和存储器内的表示为物理(电子)量的数据操控和变换为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
80.本公开还涉及用于执行本文中的操作的设备。这一设备可出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储于计算机可读存储媒体中,所述计算机可读存储媒体如但不限于各自连接到计算机系统总线的包含软盘、光盘、cd

rom和磁性光盘、只读存储器(rom)、随
机存取存储器(ram)、eprom、eeprom、磁性卡或光学卡的磁盘类型或适合于存储电子指令的媒体类型。
81.本文中呈现的算法和显示器并非在本质上与特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或其可证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。另外,不参考特定编程语言来描述本公开。将了解,可使用多种编程语言来实施如本文中所描述的本公开的教示。
82.本公开可提供为计算机程序产品或软件,其可包含在其上存储有指令的机器可读媒体,所述指令可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的机构。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、快闪存储器装置等。
83.在前述说明书中,已参考其特定实例实施例描述了本公开的实施例。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1