用于存储器系统的虚拟地址的制作方法-j9九游会真人

文档序号:35889885发布日期:2023-10-28 19:33阅读:3来源:国知局
用于存储器系统的虚拟地址的制作方法
用于存储器系统的虚拟地址
1.交叉引用
2.本专利申请主张霍农(hornung)等人于2022年1月10日提交的名称为“用于存储器系统的虚拟地址(virtual addresses for a memory system)”的第17/647,579号美国专利申请以及hornung等人于2021年3月12日提交的名称为“用于存储器系统的虚拟地址(virtual addresses for a memory system)”的第63/160,607号美国临时专利申请的优先权;其中每一者让渡给本受让人,且其中每一者以引用的方式明确并入本文中。
技术领域
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.图1说明根据本文所公开的实例的支持用于存储器系统的虚拟地址的系统的实例。
7.图2说明根据本文所公开的实例的支持用于存储器系统的虚拟地址的系统的实例。
8.图3说明根据本文所公开的实例的支持用于存储器系统的虚拟地址的数据包的框图的实例。
9.图4说明根据本文所公开的实例的支持用于存储器系统的虚拟地址的过程流程图的实例。
10.图5到7展示根据本文所公开的实例的支持用于存储器系统的虚拟地址的存储器装置的框图。
11.图8到10展示说明根据本文所公开的实例的支持用于存储器系统的虚拟地址的方法或多个方法的流程图。
具体实施方式
12.一些接口(例如,计算高速链路(cxl)接口)经设计以在主机系统与一或多个存储器系统之间使用。举例来说,存储器系统可跨主机系统和存储器系统一致地使用存储器。因此,cxl接口涉及单主机域以及对单个存储器系统的一致性的主机管理控制。归因于主机管理单个域的一致性,可存取的存储器量(例如,数量)可受域中包含的存储器装置限制。举例来说,主机可存取包含于单个主机域中的16gb大小的存储器。然而,在一些情况下,可能需要利用跨多个存储器系统(例如,跨多个域)的全局地址空间,以便针对存储器存取请求提供较大可存取地址空间。另外,允许多个操作系统(os)域经由共享地址空间交互可为有益的。
13.本文中描述一种允许在cxl上和域(例如,os域)之间使用虚拟地址的系统。举例来说,系统可实施与一或多个存储器系统相关联的全局虚拟地址空间。可使用特定字段生成数据包以存取可位于不同域中的不同虚拟地址。在一些实例中,数据包可包含可用于在无主机交互的情况下cxl装置之间的通信的目的地id。举例来说,可经由作为一或多个主机系统的部分的一或多个交换机从装置到装置传送数据包。可使用目的地id在同一os域内的装置(例如,与同一主机系统相关联的装置)之间交换数据包,或可在不同os域中的cxl装置之间传送包(例如,经由用于每个域的交换机)。利用跨多个存储器系统的全局地址空间可为整个系统提供灵活性,以及针对存储器存取请求提供较大可存取地址空间。此外,利用装置id可允许在每装置基础上执行地址转换,因此可减小任何一个cxl装置可能需要执行的地址转换量。
14.首先参考图1到2在系统的上下文中描述本公开的特征。参考图3和4在框图和流程图的上下文中描述本公开的特征。通过参考图5-10在涉及用于存储器系统的虚拟地址的设备图和流程图的上下文中说明且在其中描述本公开的这些和其它特征。
15.图1说明根据本文所公开的实例的支持用于存储器系统的虚拟地址的系统100的实例。系统100包含与存储器系统110耦合的主机系统105。
16.存储器系统110可以是或包含任何装置或装置集,其中所述装置或装置集包含至少一个存储器阵列。举例来说,存储器系统110可以是或包含通用快闪存储(ufs)装置、嵌入式多媒体控制器(emmc)装置、快闪装置、通用串行总线(usb)快闪装置、安全数字(sd)卡、固态驱动器(ssd)、硬盘驱动器(hdd)、双列直插式存储器模块(dimm)、小型dimm(so-dimm),或非易失性dimm(nvdimm),以及其它可能性。
17.系统100可包含在计算装置中,所述计算装置如台式计算机、膝上型计算机、网络服务器、移动装置、载具(例如,飞机、无人机、火车、汽车或其它运输工具)、具有物联网(iot)功能的装置、嵌入式计算机(例如,包含在载具、工业设备或联网商用装置中的嵌入式计算机),或包含存储器和处理装置的任何其它计算装置。
18.系统100可包含可与存储器系统110耦合的主机系统105。在一些实例中,这种耦合
可包含与主机系统控制器106的接口,所述主机系统控制器可以是经配置以使主机系统105根据本文中所描述的实例执行各种操作的控制组件的实例。主机系统105可包含一或多个装置,且在一些情况下,可包含处理器芯片组和由处理器芯片组执行的软件堆栈。举例来说,主机系统105可包含经配置以用于与存储器系统110或其中的装置通信的应用程序。处理器芯片组可包含一或多个核心、一或多个高速缓存(例如,主机系统105本地的或包含在主机系统中的存储器)、存储器控制器(例如,nvdimm控制器),和存储协议控制器(例如,外围组件互连高速(pcie)控制器、串行高级技术附件(sata)控制器)。主机系统105可使用存储器系统110,以例如将数据写入到存储器系统110和从存储器系统110读取数据。尽管在图1中展示了一个存储器系统110,但主机系统105可与任何数量的存储器系统110耦合。
19.主机系统105可经由至少一个物理主机接口与存储器系统110耦合。在一些情况下,主机系统105和存储器系统110可经配置以使用相关联协议经由物理主机接口通信(例如,以在存储器系统110与主机系统105之间交换或以其它方式传送控制、地址、数据和其它信号)。物理主机接口的实例可包含但不限于sata接口、ufs接口、emmc接口、pcie接口、usb接口、光纤通道接口、小型计算机系统接口(scsi)、串行连接的scsi(sas)、双数据速率(ddr)接口、dimm接口(例如,支持ddr的dimm套接接口)、开放nand快闪接口(onfi)、低功率双数据速率(lpddr)接口,以及cxl接口。在一些实例中,一或多个此类接口可包含在主机系统105的主机系统控制器106与存储器系统110的存储器系统控制器115中或以其它方式在其间得到支持。在一些实例中,主机系统105可经由用于包含在存储器系统110中的每个存储器装置130的相应物理主机接口或经由用于包含在存储器系统110中的每个类型的存储器装置130的相应物理主机接口而与存储器系统110耦合(例如,主机系统控制器106可与存储器系统控制器115耦合)。
20.存储器系统110可包含存储器系统控制器115和一或多个存储器装置130。存储器装置130可包含任何类型的存储器单元(例如,非易失性存储器单元、易失性存储器单元,或其任何组合)的一或多个存储器阵列。虽然图1的实例中展示两个存储器装置130-a和130-b,但存储器系统110可包含任何数量的存储器装置130。此外,如果存储器系统110包含多于一个存储器装置130,则存储器系统110内的不同存储器装置130可包含相同或不同类型的存储器单元。
21.存储器系统控制器115可与主机系统105耦合且通信(例如,经由物理主机接口),且可以是经配置以使存储器系统110根据本文所描述的实例执行各种操作的控制组件的实例。存储器系统控制器115还可与存储器装置130耦合且通信以在存储器装置130处执行一般可称作存取操作的操作,例如读取数据、写入数据、擦除数据或刷新数据,以及其它此类操作。在一些情况下,存储器系统控制器115可从主机系统105接收命令且与一或多个存储器装置130通信以执行此类命令(例如,在所述一或多个存储器装置130内的存储器阵列处)。举例来说,存储器系统控制器115可从主机系统105接收命令或操作且可将所述命令或操作转换成指令或适当命令以实现对存储器装置130的所要存取。在一些情况下,存储器系统控制器115可与主机系统105以及一或多个存储器装置130交换数据(例如,响应于来自主机系统105的命令或以其它方式与所述命令相关联)。举例来说,存储器系统控制器115可将与存储器装置130相关联的响应(例如,数据包或其它信号)转换成用于主机系统105的对应信号。
22.存储器系统控制器115可经配置以用于与存储器装置130相关联的其它操作。举例来说,存储器系统控制器115可执行或管理操作,例如耗损均衡操作、无用单元收集操作、例如错误检测操作或错误校正操作的错误控制操作、加密操作、缓存操作、媒体管理操作、后台刷新、健康监测,以及与来自主机系统105的命令相关联的逻辑地址(例如,逻辑块地址(lba))和与存储器装置130内的存储器单元相关联的物理地址(例如,物理块地址)之间的地址转换。
23.存储器系统控制器115可包含硬件,例如一或多个集成电路或离散组件、缓冲存储器或其组合。硬件可包含具有专用(例如,硬译码)逻辑的电路系统以执行本文中归于存储器系统控制器115的操作。存储器系统控制器115可以是或包含微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)、数字信号处理器(dsp)),或任何其它合适的处理器或处理电路系统。
24.存储器系统控制器115还可包含本地存储器120。在一些情况下,本地存储器120可包含只读存储器(rom)或其它存储器,其可存储可由存储器系统控制器115执行的操作代码(例如,可执行指令)以执行本文中归于存储器系统控制器115的功能。在一些情况下,本地存储器120可另外或替代地包含静态随机存取存储器(sram)或其它存储器,其可由存储器系统控制器115用于例如与本文中归于存储器系统控制器115的功能相关的内部存储或计算。另外或替代地,本地存储器120可充当用于存储器系统控制器115的高速缓存。举例来说,如果从存储器装置130读取或写入到所述存储器装置,则数据可存储于本地存储器120中,且所述数据可在本地存储器120中可用,以供主机系统105根据高速缓存策略(例如,以相对于存储器装置130减少的时延)进行后续检索或操控(例如,更新)。
25.尽管图1中的存储器系统110的实例已说明为包含存储器系统控制器115,但在一些情况下,存储器系统110可能不包含存储器系统控制器115。举例来说,存储器系统110可另外或替代地依赖于外部控制器(例如,由主机系统105实施)或可在存储器装置130内部的一或多个本地控制器135以分别执行本文中属于存储器系统控制器115的功能。一般来说,本文中归于存储器系统控制器115的一或多个功能可在一些情况下替代地由主机系统105、本地控制器135或其任何组合执行。在一些情况下,至少部分地由存储器系统控制器115管理的存储器装置130可称作受管理存储器装置。受管理存储器装置的实例是受管理nand(mnand)装置,但也支持其它类型的受管理存储器装置。举例来说,受管理存储器装置可包含任何类型或数量的易失性或非易失性存储器装置。
26.存储器装置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)存储器单元。
27.在一些实例中,存储器装置130可(例如,在同一裸片上或在同一封装内)包含本地控制器135,所述本地控制器可对相应存储器装置130的一或多个存储器单元执行操作。本地控制器135可结合存储器系统控制器115操作,或可执行本文中归于存储器系统控制器
115的一或多个功能。举例来说,如图1所说明,存储器装置130-a可包含本地控制器135-a,且存储器装置130-b可包含本地控制器135-b。
28.在一些情况下,存储器装置130可以是或包含nand装置(例如,nand快闪装置)。存储器装置130可以是或包含存储器裸片160。举例来说,在一些情况下,存储器装置130可以是包含一或多个裸片160的封装。在一些实例中,裸片160可以是从晶片切割的一块电子件级半导体(例如,从硅晶片切割的硅裸片)。每个裸片160可包含一或多个平面165,且每个平面165可包含相应的一组块170,其中每个块170可包含相应的一组页175,且每个页175可包含一组存储器单元。
29.在一些情况下,nand存储器装置130可包含经配置以各自存储一个信息位的存储器单元,其可称作单层级单元(slc)。另外或替代地,nand存储器装置130可包含经配置以各自存储多个信息位的存储器单元,如果经配置以各自存储两个信息位,则其可称作多层级单元(mlc),如果经配置以各自存储三个信息位,则其可称作三层级单元(tlc),如果经配置以各自存储四个信息位,则其可称作四层级单元(qlc),或更一般地称为多层级存储器单元。多层级存储器单元可相对于slc存储器单元提供更大的存储密度,但在一些情况下,可能涉及用于支持电路系统的更窄读取或写入裕度或更大复杂度。
30.在一些情况下,平面165可指块170的群组,且在一些情况下,可在不同平面165内进行并行操作。举例来说,可对不同块170内的存储器单元执行并行操作,只要不同块170处于不同平面165中即可。在一些情况下,在不同平面165中执行并行操作可能受到一或多个限制,例如对不同页175内在其相应平面165内具有相同页地址的存储器单元执行相同操作(例如,与命令解码、页地址解码电路系统或跨平面165共享的其它电路系统相关)。
31.在一些情况下,块170可包含组织成行(页175)和列(例如,串,未展示)的存储器单元。举例来说,同一页175中的存储器单元可共享共同字线(例如,与其耦合),且同一串中的存储器单元可共享共同数字线(其可替代地称作位线)(例如,与其耦合)。
32.对于一些nand架构,存储器单元可在第一粒度级别(例如,在页粒度级别)读取和编程(例如,写入),但可在第二粒度级别(例如,在块粒度级别)擦除。也就是说,页175可以是可独立地编程或读取(例如,作为单个编程或读取操作的部分并行编程或读取)的最小存储器单位(例如,存储器单元组),且块170可以是可独立地擦除(例如,作为单个擦除操作的部分并行擦除)的最小存储器单位(例如,存储器单元组)。此外,在一些情况下,nand存储器单元可在其可用新数据重写之前进行擦除。因此,举例来说,在一些情况下,可能直到包含页175的整个块170被擦除才更新已使用的页175。
33.系统100可包含支持用于存储器系统的虚拟地址的任何数量的非暂时性计算机可读媒体。举例来说,主机系统105、存储器系统控制器115或存储器装置130可包含或以其它方式可存取一或多个非暂时性计算机可读媒体,所述非暂时性计算机可读媒体存储指令(例如,固件)以执行本文中属于主机系统105、存储器系统控制器115或存储器装置130的功能。举例来说,如果由主机系统105(例如,由主机系统控制器106)、由存储器系统控制器115或由存储器装置130(例如,由本地控制器135)执行,则此类指令可使得主机系统105、存储器系统控制器115或存储器装置130执行如本文所描述的一或多个相关联功能。
34.在一些情况下,存储器系统110可利用存储器系统控制器115来提供受管理存储器系统,所述受管理存储器系统可包含例如一或多个存储器阵列和与本地(例如,裸片上或封
装中)控制器(例如,本地控制器135)组合的相关电路系统。受管理存储器系统的实例是受管理nand(mnand)系统。
35.在一些实例中,可跨存储器系统110的一部分(或全部)存在虚拟地址空间。举例来说,存储器系统110可包含经配置以彼此直接通信的一或多个存储器装置。所述存储器装置可各自包含存储器管理单元(mmu)或经配置以对存储器执行操作的处理器。每个存储器装置的mmu或处理器可经配置以生成待从装置发送到装置的数据包。
36.所述数据包可包含多个字段。在一些实例中,第一字段可包含接收存储器装置(例如,数据包所发送到的存储器装置)的标识符,且第二字段可包含虚拟地址。所述地址可位于共享虚拟地址空间的范围内。举例来说,第一存储器装置(例如,发送存储器装置)的mmu或处理器可生成包含第一字段的数据包,所述第一字段标识第二存储器装置(例如,接收存储器装置)。此外,数据包可包含位于第一存储器装置与第二存储器装置之间共享的虚拟地址空间内的虚拟地址。
37.第一存储器装置的mmu或处理器可经配置以将数据包发送到第二存储器装置,且第二存储器装置的mmu、控制器或处理器可基于第二字段中包含的虚拟地址而存取物理地址。即,第二存储器装置的mmu、控制器或处理器可基于本地地址转换表将虚拟地址转换为物理地址。在一些情况下,可将虚拟地址转换成物理地址,且在其它实例中,可将虚拟地址转换成逻辑地址,所述逻辑地址可转换成物理地址。因此,存储器系统110中包含的存储器装置能够在无主机系统105参与的情况下彼此通信,因此提供存储器系统110额外的灵活性来处置存储器存取请求,同时减少原本会在存取操作期间归因于主机系统105的参与而引发的时延。
38.图2说明根据本文所公开的实例的支持用于存储器系统的虚拟地址的系统200的实例。系统200可以是参考图1所描述的系统100或其各方面的实例。系统200可包含第一存储器域205-a和第二存储器域205-b。每个存储器域可包含一或多个存储器装置(例如cxl装置215-a)、一或多个交换机(例如交换机225)和相应主机系统(例如主机系统230)。在一些实例中,系统200可实施参考图1所描述的系统100的各方面。举例来说,存储器装置215-a可以是包含在存储器系统110中的装置的实例,且主机系统230可以是参考图1所描述的主机系统105的实例。
39.在一些实例中,系统200可包含第一存储器域205-a,其也可称作第一os域205-a。第一存储器域205-a可包含或可与一或多个存储器装置215相关联,所述一或多个存储器装置可为cxl存储器装置215。举例来说,存储器装置215中的一或多者可包含装置存储器、控制器和处理单元(未展示),且可经配置以经由交换机225与主机系统230和其它cxl存储器装置215介接。另外或替代地,系统200可包含第二存储器域205-n,其可称作第二os域205-b。第二存储器域205-b可包含或可与一或多个存储器装置220相关联,所述一或多个存储器装置可为cxl存储器装置220。举例来说,每个存储器装置220可包含装置存储器、控制器和处理单元(未展示),且可经配置以经由交换机235与主机系统240介接。
40.虽然将第一存储器域205-a和第二存储器域205-b说明为包含两个存储器装置(例如,存储器装置215和存储器装置220),但第一存储器域205-a和第二存储器域205-b可包含任何数量的存储器装置。此外,系统200可包含任何数量的域。每个域内的存储器装置可经由交换机(或在一些情况下,经由多于一个交换机)与相应主机装置通信。另外或替代地,每
个域的交换机(或多个交换机)可直接或经由交换机(例如,经由架顶交换机)与彼此通信。举例来说,交换机225可直接(未展示)或经由顶架交换机245与交换机235通信。
41.在一些情况下,交换机可包含逻辑或其它处理能力以便彼此通信。举例来说,交换机225可包含逻辑以确定是将数据包路由到交换机245还是路由到第一存储器域205-a中包含的存储器装置。此外,交换机245可包含逻辑或其它处理能力以确定将数据包路由到哪个域。另外或替代地,交换机225可包含逻辑以确定是将数据包路由到交换机245还是路由到第二存储器域205-b中包含的存储器装置。因此,存储器装置215可经由交换机225、交换机235和架顶交换机245与存储器装置220通信。
42.在一些实例中,交换机225和交换机235可各自包含多个端口。每个端口可与存储器装置(例如,存储器装置215-a)、主机系统(例如,主机系统230)或另一组件耦合。在一些情况下,单个交换机上的端口可与各种域耦合。因此,虽然将交换机225说明为包含于第一存储器域205-a中且与其中的组件耦合,但交换机225可包含与位于不同的域(或多个域)中的装置、组件或系统耦合的一或多个端口。类似地,虽然将交换机235说明为包含于第一存储器域205-b中且与其中的组件耦合,但交换机235可包含与位于不同的域(或多个域)中的装置、组件或系统耦合的一或多个端口。
43.在一些情况下,相应存储器装置215的处理单元和控制器可以是形成于同一现场可编程门阵列(fpga)或专用集成电路(asic)上的单个逻辑组件。然而,在一些实例中,控制器和处理单元可以是个别组件。举例来说,处理单元可以是图形处理单元(gpu)或通用图形处理单元(gpgpu)。处理单元可经配置以将信令和/或命令发送到控制器以存取装置存储器。如本文中所描述,处理单元可经配置以生成数据包,所述数据包可直接发送到系统200内的另一存储器装置而无需相应主机系统的交互。
44.在一些情况下,如本文中所描述,每个存储器装置(例如,每个存储器装置215或每个存储器装置220)的装置存储器可经配置以例如响应于从相应主机系统接收到存取命令而存储相应存储器装置与主机系统之间传送的数据。存储器装置可包含参考图1所描述的一或多个存储器装置。举例来说,存储器装置可包含nand存储器、pcm、自选存储器、3d交叉点、其它基于硫族化物的存储器、feram、mram、nor(例如,nor快闪)存储器、stt-mram、cbram、rram,或oxram。
45.此外,每个存储器装置(例如,每个存储器装置215或每个存储器装置220)的控制器或处理单元可控制直接进出相应存储器装置的数据传送,以例如用于存储数据、检索数据以及确定其中将存储数据和从中检索数据的存储器位置。控制器或处理单元可直接或经由总线使用特定于每个类型的存储器装置的协议与相应存储器装置的装置存储器通信。在一些情况下,可针对每个存储器装置实施单个控制器,而在其它实例中,一些存储器装置可包含多个控制器。在一些情况下,相应控制器可实施参考图1所描述的存储器系统控制器115的各方面。
46.每个存储器装置的控制器或处理单元可另外经配置以用于与相应存储器装置相关联的操作。举例来说,控制器或处理单元可执行或管理操作,例如耗损均衡操作、无用单元收集操作、例如错误检测操作或错误校正操作的错误控制操作、加密操作、缓存操作、媒体管理操作、后台刷新、健康监测,以及地址转换。举例来说,控制器或处理单元可将虚拟地址转换成物理地址,或可将虚拟地址转换成逻辑地址(例如,lba),所述逻辑地址可转换成
与存储器装置内的存储器单元相关联的物理地址(例如,物理块地址)。
47.在一些实例中,每个存储器装置的装置存储器可经配置以存储可由相应处理单元(例如,经由相应存储器装置的控制器)和相应主机装置存取的数据。因为数据可由处理单元和主机装置两者存取(例如,数据是共享的),所以可能需要跟踪数据的一致性。即,可能需要处理单元和主机装置两者知道装置存储器(或相应存储器装置的高速缓存)中的数据是否与发送到主机装置的对应数据(对于相同地址)一致。此类一致性可称作装置一致性。
48.在其它实例中,可基于从另一存储器装置(例如,存储器装置215-a)接收到数据包而(例如,在存储器装置220-a处)执行存取操作。在此类情况下,数据可能一致或可能不一致,因为是在每个域基础上跟踪装置一致性。这种一致性可称作i/o一致性,其中数据在存取时被读取为一致的。即,主机系统可能不跟踪与其它域相关联的数据是否一致,但数据仍可被存取。然而,在存取数据后,可通知与接收装置相关联的主机系统(例如,主机系统240)调用数据(例如,检索或发送数据的经修改版本)。
49.举例来说,共享虚拟地址空间可跨存储器装置215-a、存储器装置215-b、存储器装置220-a和存储器装置220-b的至少一部分存在。可基于数据包中包含的一或多个字段而存取相应存储器装置的物理地址。举例来说,存储器装置215-a的控制器或处理单元可生成用于存取与存储器装置220-b相关联的虚拟地址空间的一部分的数据包。所述数据包可包含用于将存储器装置220-b标识为接收存储器装置的第一字段。所述数据包可包含第二字段,所述第二字段包含地址(例如,虚拟地址)。如本文中所描述,共享虚拟地址空间可包含一定范围的地址。举例来说,可跨一或多个存储器装置(例如,存储器装置215-a、215-b、220-a和220-b)分配虚拟地址空间。每个存储器装置可与虚拟地址空间的给定范围相关联。在生成数据包之后,存储器装置215-a(例如,存储器装置215-a的控制器或处理单元)可将包发送到存储器装置220-b。
50.在一些情况下,可经由交换机225、交换机245和交换机235发送数据包。即,可使用与发送存储器装置215-a耦合的交换机(例如,交换机225)、架顶交换机245和与接收存储器装置220-b耦合的交换机(例如,交换机235)将数据包路由到存储器装置220-b。如本文所使用,“路由”可指其中使用与特定装置相关联的标头字段来将包引导到目的地的过程。即,交换机(例如,交换机225、交换机245)可经(例如,主机系统230、主机系统240)配置以在装置标识符和id与端口(例如,交换机的端口)之间具有特定对应关系。因此,交换机可基于包中的目的地字段将包引导到对应端口。因此,本文中可互换地使用术语“路由”和“交换”。
51.在接收到数据包之后,存储器装置220-b(例如,存储器装置220-b的控制器或处理单元)可对地址(例如,虚拟地址)执行地址转换以确定要存取的物理地址。因为物理地址与存储器装置220-b的装置存储器相关联,所以控制器可负责仅对存储器装置220-b执行地址转换。即,存储器装置220-b的控制器可能不需要对与任何其它存储器装置相关联的虚拟地址执行地址转换。
52.此外,在对存储器装置220-b的物理地址执行存取操作后,控制器可将指示发送到主机系统240以调用存储到主机系统240的数据。即,控制器可发送指示以通知主机系统240数据已被存取且应检索或发送经修改版本。通过利用数据包中的装置标识符字段,系统200可具备处置存储器存取请求的额外灵活性,同时减少原本会在存取操作期间归因于相应主机系统的参与而引发的时延。
53.图3说明根据本文所公开的实例的支持用于存储器系统的虚拟地址的数据包的框图300的实例。数据包的框图300可说明各种字段,所述字段可包含于经配置以从一个存储器装置(例如,第一cxl存储器装置)发送到另一存储器装置(例如,第二cxl存储器装置)的数据包中。
54.举例来说,框图300可说明数据包的第一部分305、第二部分310、第三部分315、第四部分320和第五部分325中包含的一或多个字段。每个部分可表示一定字节量的数据。另外或替代地,框图300可说明数据包的所述部分的第一子集330、第二子集335、第三子集340和第四子集345。每个子集可表示每个字节的数据的位的量。举例来说,每个部分可表示四(4)个字节,且每个子集可表示八(8)个数据位。由框图300说明的数据包中包含的字段可允许利用基于装置标识符的交换共享虚拟寻址。通过利用如本文所描述的数据包中的装置标识符字段,系统(例如,参考图2所描述的系统200)可具备处置存储器存取请求的额外灵活性,同时减少原本会在存取操作期间归因于相应主机系统的参与而引发的时延。
55.在一些实例中,数据包的第一部分305可包含由cxl规范指定且在其中限定的一或多个字段。举例来说,第一部分305可包含以下字段中的一或多者:类型、tc、ohc、ts、attr和长度。这些字段的目的和大小(例如,长度)可在cxl规范中限定,且在一些情况下,可从本文中所描述的数据包省略。如本文中所描述,所述字段是否包含于数据包中以及每个字段的大小(例如,长度)可为基于其它字段的设计选择问题。举例来说,可省略包含在第一部分305中的字段中的一或多者,或可基于包含在数据包中的其它字段相对于cxl规范而改变包含在第一部分305中的字段中的一或多者的大小(例如,长度)。
56.数据包的第二部分310可包含请求方id字段350。请求方id字段350可与包含在存储器系统中的物理装置的标识符相关联。在一些情况下,请求方id字段350的目的可与由cxl规范指定且在其中限定的不同。举例来说,cxl规范可指定请求方id字段350可与虚拟实体(例如,进程id、应用程序id)相关联。此外,cxl规范可指定请求方id字段350为十六(16)位长。如图3中所说明,可将请求者id字段350修改为十二(12)位长,但字段的所述大小可修改。在其它情况下,如本文中所描述,所述字段是否包含于数据包中以及字段的大小(例如,长度)可为基于其它字段的设计选择问题。
57.数据包的第二部分310的第二子集335的一部分可包含对应于请求方逻辑装置标识符(例如,请求方ldid)字段355的字段。如图3中所说明,请求方ldid字段355可为四(4)位长。在一些情况下,参考图2所描述的存储器装置(例如,存储器装置215-a)可包含一或多个逻辑装置。即,每个存储器装置可包含可用于不同进程的一或多个逻辑装置。所述进程可与运行所述进程的一或多个主机域相关联。在一些实例中,在主机域上运行的进程可与不同应用程序(例如,不同类型的应用程序)相关联。
58.举例来说,存储器装置215-a可包含与第一进程或第一类型的进程(例如,图形处理)相关联的第一逻辑装置,以及与第二进程或第二类型的进程(例如,网络介接)相关联的第二逻辑装置。在一些情况下,逻辑装置可与不同主机域相关联。举例来说,单个存储器装置可包含多个逻辑装置。每个逻辑装置可与同一主机域、不同(例如,相应)主机域相关联,或一些逻辑装置可与同一主机域相关联且其它逻辑装置可与不同主机域(或多个域)相关联。因此,当在系统中实施逻辑装置时,数据包可包含请求方ldid字段355。
59.数据包的第二部分310的第三子集340可包含对应于目的地逻辑装置标识符(例
如,目的地ldid)字段360的字段。如图3中所说明,目的地ldid字段360可为四(4)位长。在一些情况下,参考图2所描述的存储器装置(例如,存储器装置215-a)可包含一或多个逻辑装置。即,每个存储器装置可包含可用于(例如,指派给不同主机域的)不同进程的一或多个逻辑装置。举例来说,存储器装置215-a可包含与第一进程或第一类型的进程(例如,图形处理)相关联的第一逻辑装置,以及与第二进程或第二类型的进程(例如,网络介接)相关联的第二逻辑装置。当在系统中实施逻辑装置时,数据包可包含目的地ldid字段360以确保接收装置(例如,接收存储器装置)存取与逻辑装置相关联的物理地址。
60.数据包的第二部分310可包含由cxl规范指定且在其中限定的字段。举例来说,第二部分310的第三子集340的一部分和第四子集345可包含标记字段365。如图3中所说明,标记字段365可为十二(12)位长。标记字段365的目的和大小(例如,长度)可在cxl规范中限定,且在一些情况下可从本文所描述的数据包省略。在其它情况下,可更改(例如,延长或缩短)标记字段365相对于cxl规范的长度以考虑到请求方ldid字段355和目的地ldid字段360。因此,如本文所描述,标记字段365是否包含于数据包中以及标记字段365的大小(例如,长度)可为基于其它字段的设计选择问题
61.数据包的第三部分315可包含指示数据包要发送到的装置(例如,接收存储器装置)的目的地id字段370。举例来说,第三部分315的第一子集330和第二子集335的一部分可包含目的地id字段370,所述目的地id字段可为十二(12)位长且可与装置id相关联。
62.在一些情况下,由包含在目的地id字段370中的位表示的值可对应于包含在存储器系统中的存储器装置(例如,参考图2所描述的存储器装置215-a)。此外,与跨系统(例如,跨连接的域的每个存储器装置)的共享地址空间相关联的存储器装置可与相应范围的地址相关联。因此,装置id可具有虚拟地址范围冗余,但可允许在存储器系统内从装置到装置发送数据包。在一些情况下,发送存储器装置可包含在与存储器包的接收存储器装置相同的域中,或存储器装置可包含在不同域中。
63.在一些实例中,系统内的不同交换机可包含经配置以基于目的地id字段370将数据包路由到存储器装置的端口(例如,输入端口、输出端口、双向端口)。举例来说,如参考图2所描述,存储器装置215-a可生成具有目的地id字段370的数据包。由包含在目的地id字段370中的位表示的值可指示数据包将被发送到存储器装置220-b。因此,交换机225、架顶交换机245和交换机235可包含经配置以基于目的地id字段370将数据包路由到存储器装置220-b的逻辑(或其它处理能力)。在其它实例中,交换机可包含将数据包路由到正确域(例如,与接收存储器装置相关联的域)的交换机的逻辑,且所述域中包含的交换机可包含将数据包路由到正确存储器装置的逻辑。
64.数据包的第三部分315还可包含地址字段375的一部分。举例来说,第二子集335的一部分、第三子集340和第四子集345可包含地址字段375的一部分,所述地址字段可为二十(20)位长且可对应于在存储器系统的共享虚拟地址空间的范围内的虚拟地址的一部分。当将数据包发送到不同主机域时,地址字段375可对应于虚拟地址的一部分。举例来说,如参考图2所描述,当数据包从存储器装置215-a发送到存储器装置220-a时,数据包的地址字段375可包含虚拟地址。另外或替代地,当将数据包从存储器装置215-a发送到存储器装置215-b时,地址字段375可对应于物理地址的一部分。
65.在其它实例中,地址字段375可对应于当在同一主机域内发送数据包时的物理地
址。举例来说,如参考图2所描述,当将数据包从存储器装置215-a发送到存储器装置215-b时,数据包的地址字段375可包含物理地址。因此,当在存储器装置215-b处接收到数据包时,存储器装置215-b的控制器或另一组件可直接存取物理地址(例如,不执行地址转换)。
66.另外或替代地,数据包的第四部分320的第一子集330、第二子集335、第三子集340和第四子集345的一部分也可包含地址字段380。因此,地址字段可总共为五十(50)位。由包含在地址字段(例如,375和380)中的位表示的值可指示存储器装置(例如,由目的地id字段370指示的存储器装置)的虚拟地址。存储器装置(例如,接收存储器装置)可基于指示虚拟地址的位而确定物理地址。如本文所描述,接收存储器装置可包含在与生成和发送存储器包的存储器装置相同的域中,或存储器装置可包含在不同的域中。
67.在一些实例中,系统内的不同交换机可包含经配置以基于目的地id字段370将数据包路由到存储器装置的端口(例如,输入端口、输出端口、双向端口)。举例来说,如参考图2所描述,存储器装置215-a可生成具有地址字段的数据包。可基于目的地id字段370将数据包路由到正确域(例如,与接收存储器装置相关联的域)中包含的交换机。在其它实例中,接收域中包含的交换机可包含经配置以基于地址字段(例如,375和380)或目的地id字段370将数据包路由到正确的存储器装置的逻辑(或其它处理能力)。举例来说,交换机上的不同端口可与不同范围的物理地址或不同装置id相关联。因此,交换机可基于与地址字段相关联的值或基于接收存储器装置的装置id而将数据包路由到接收存储器装置。
68.数据包的第四部分320的第四子集345的一部分可包含对应于at字段385的字段。如图3中所说明,at字段385可为二(2)位长。此字段的目的和大小(例如,长度)可在cxl规范中限定,且在一些情况下可从本文所描述的数据包省略。在其它情况下,所述字段可包含在本文所描述的地址字段中。即,地址字段可包含五十二(52)位而非先前所描述的五十(50)位。如本文中所描述,所述字段是否包含于数据包中以及字段的大小(例如,长度)可为基于其它字段的设计选择问题。
69.可称作正交标头325的数据包的第五部分325可以是任选部分。在一些情况下,共享地址空间可能如此大以至于包含在第三部分315和第四部分320中的地址字段可能不够大以指示虚拟地址。举例来说,全局虚拟地址空间可跨域存在,其使用包含于数据包的第五部分325中的额外地址字段的位。除了包含于第三部分315和第四部分320中的五十二(52)个地址位之外,还可使用额外地址位。在此类情况下,第五部分325可包含在数据包中,且可包含由cxl规范指定且在其中限定的字段。举例来说,第五部分325的第一子集330可包含一或多个r(例如,保留)和/或sv(例如,sasid有效)字段。如图3中所说明,所述字段可为八(8)位长。
70.这些字段的目的和大小(例如,长度)可在cxl规范中限定,且在一些情况下,可从本文所描述的数据包省略。在一些情况下,可在稍后时间或在另一进程期间保留且因此限定经保留(例如,r)字段。sv字段可指示(例如,sv字段的值可指示)sasid字段是有效的且包含在数据包中的地址是虚拟地址。在其它情况下,如本文中所描述,所述字段是否包含于数据包中以及字段的大小(例如,长度)可为基于其它字段的设计选择问题。
71.数据包的第五部分325可包含进程标识符字段(例如,sasid字段390)。举例来说,第五部分325的第二子集335和第三子集340的一部分可包含sasid字段390,所述sasid字段可为十二(12)位长。如本文中所描述,不同进程(例如,图形处理、网络介接等)可与相应虚
拟地址空间相关联。因此,sasid字段390可指示与数据包相关联的共享地址空间,这可允许接收存储器装置存取正确的物理地址。举例来说,可在目的地(例如,目的地存储器装置)处通过将与sasid字段390相关联的值映射到使用可由目的地存储器装置存取的表或其它数据的进程而确定与数据包相关联的进程。在一些实例中,两个进程可与在其覆盖的地址范围中重叠的虚拟地址相关联。基于sasid字段390,接收存储器装置可基于由sasid字段390中的位指示的值而存取不同物理地址。
72.数据包的第五部分325还可包含地址字段395。举例来说,第五部分325的第三子集340的一部分和第四子集345可包含地址字段395,所述地址字段可为十二(12)位长。如本文所描述,所述地址位可被包含为第三部分315和第四部分320中包含的五十二(52)个地址位的额外地址位。因此,包含在第五部分325中的额外地址位可允许整个虚拟地址空间通过所述数据包存取。此外,由第五部分325中的地址字段395所指示的值可按第三部分315和第四部分320中包含的地址字段类似的方式(且与其结合)起作用。因此,由框图300表示的数据包可包含允许在无主机交互的情况下在不同存储器装置之间进行路由的一或多个字段。
73.图4说明根据本文所公开的实例的支持用于存储器系统的虚拟地址的过程流程图400的实例。过程流程图可说明第一域417(例如,第一存储器域417)和第二域427(例如,第二存储器域427)的操作,所述域可为参考图2所描述的第一存储器域205-a及第二存储器域205-b的实例。第一域417可包含各自与交换机410(例如,交换机410的端口)耦合的至少第一存储器装置405和第二存储器装置415。在一些情况下,第一存储器装置405和第二存储器装置415可各自包含装置存储器、控制器和处理单元,如参考图2所描述。此外,第二域可包含至少第三存储器装置425,所述第三存储器装置包含装置存储器、控制器和处理单元。
74.第一域417和第二域427可经由交换机420耦合,所述交换机可为参考图2所描述的架顶交换机245的实例。过程流程图可说明数据包基于装置id而生成和发送,这可为相关联系统提供处置存储器存取请求的额外灵活性,同时减少原本会在存取操作期间归因于相应主机系统的参与而引发的时延。
75.在430处,第一存储器装置405可标识与多个存储器装置相关联的虚拟地址空间。仅出于示例性目的,虚拟地址空间可由第一存储器装置405、第二存储器装置415和第三存储器装置425共享。然而,在其它实例中,虚拟地址空间可由与任何数量的域相关联的任何数量的存储器装置共享。在一些情况下,与第一存储器装置405相关联的控制器或处理单元可标识虚拟地址空间。虚拟地址空间可跨存储器装置由主机系统配置。举例来说,主机系统可配置共享地址空间,且可利用共享地址空间的相应范围的地址配置每个存储器装置。第一存储器装置405可因此配置有包含于共享地址空间中的一定范围的地址,使得当生成数据包时,目的地id字段和/或地址字段可对应于相关联的或在共享虚拟地址空间内的存储器装置和虚拟地址。
76.在435处,第一存储器装置405可基于标识虚拟地址空间(例如,在430处)而生成数据包(例如,第一数据包)。在一些实例中,数据包可包含由参考图3所描述的框图300说明的字段中的一或多者。在一些情况下,与第一存储器装置405相关联的控制器或处理单元可生成数据包。仅出于示例性目的,第一存储器装置405可生成至少目的地id和地址字段,使得数据包可路由到所要目的地存储器装置。
77.在440处,第一存储器装置405可将数据包发送到目的地存储器装置。如本文中所
描述,目的地存储器装置可由数据包中包含的目的地id字段指示。在一些情况下,与第一存储器装置405相关联的控制器或处理单元可发送数据包。仅出于示例性目的,数据包的目的地id字段可包含指示第二存储器装置415作为目的地存储器装置的值(例如,位值)。在一些情况下,交换机410可包含标识是否将数据包路由到另一交换机(例如,交换机420)和/或另一域(例如,第二域427)或数据包是否与包含于同一域中的存储器装置相关联的逻辑。
78.另外或替代地,交换机410可包含逻辑以在数据包与包含于同一域中的存储器装置相关联的情况下确定将数据包路由到哪个存储器装置。举例来说,交换机410可包含各自与目的地id(例如,一或多个相关联存储器装置的装置id)相关联的多个端口。交换机410可将由数据包中包含的目的地id字段中包含的位表示的值与交换机410所关联的装置id的范围相比较,以确定将数据包路由到哪个存储器装置。如图4中所说明,交换机410可确定数据包中包含的地址与第二存储器装置415所关联的虚拟地址范围匹配(例如,包含于其中)。
79.在445处,第二存储器装置415可确定其装置存储器的与数据包中包含的虚拟地址相关联的物理地址。在一些情况下,与第二存储器装置415相关联的控制器或处理单元可确定物理地址。第二存储器装置415可包含经配置以将所接收虚拟地址映射到其装置存储器的物理地址的表(例如,映射表)或其它逻辑。
80.在一些情况下,所述表可包含关于与第二存储器装置415相关联的逻辑装置的信息,使得如果数据包包含请求方ldid字段355或目的地ldid字段360,则第二存储器装置415可确定与特定逻辑装置相关联的物理地址。另外或替代地,所述表可包含关于进程与物理地址之间的映射的信息,使得如果数据包包含sasid字段,则第二存储器装置415可确定与特定进程相关联的物理地址。然而,如本文中所描述,由第二存储器装置415使用的表可包含第二存储器装置415的虚拟地址与物理地址之间的映射。因此,第二存储器装置415可能不需要对其它存储器装置执行地址转换(或存储与地址转换相关联的信息)。
81.在450处,第二存储器装置415可对其装置存储器的物理地址执行存取操作。在一些情况下,与第二存储器装置415相关联的控制器或处理单元可执行存取操作。
82.在455处,第二存储器装置415可向与第一域417相关联的主机系统通知所述存取操作。因为可能尚未通知主机系统(例如,在450处执行的)存取操作,或因为主机系统可能具有与所述存取操作相关联的数据的经修改版本,所以可从主机系统调用所述数据。即,可通知主机系统调用数据(例如,从第二存储器装置415检索数据或将数据的经修改版本传回到第二存储器装置415)。举例来说,可通知主机系统基于正执行的存取操作的类型(例如,写入操作)而调用数据。
83.在460处,第一存储器装置405可生成数据包(例如,第二数据包)。在一些情况下,生成数据包可包含标识虚拟地址空间(例如,如上文在430处所描述)。在一些实例中,数据包可包含由参考图3所描述的框图300说明的字段中的一或多者。在一些情况下,与第一存储器装置405相关联的控制器或处理单元可生成数据包。仅出于示例性目的,第一存储器装置405可生成至少目的地id和地址字段,使得数据包可路由到所要目的地存储器装置。
84.在465处,第一存储器装置405可将数据包发送到目的地存储器装置。如本文中所描述,目的地存储器装置可由数据包中包含的目的地id字段指示。在一些情况下,与第一存储器装置405相关联的控制器或处理单元可发送数据包。仅出于示例性目的,数据包的目的地id字段可包含指示第三存储器装置425作为目的地存储器装置的值(例如,位值)。在一些
情况下,交换机410可包含标识是否将数据包路由到另一交换机(例如,交换机420)和/或另一域(例如,第二535域427)或数据包是否与包含于同一域中的存储器装置相关联的逻辑。如图4中所说明,交换机410可确定目的地id与第二域427相关联,且可经由交换机420将数据包路由到第二域。
85.在一些实例中,第二域427可包含交换机(未展示)。交换机可包含确定将数据包路由到哪个存储器装置的逻辑。举例来说,交换机可包含各自与共享虚拟地址空间的一定范围的地址相关联的多个输出端口。交换机可将数据包中包含的地址与所述范围的地址进行比较以确定将数据包路由到哪个存储器装置,且可能将数据包路由到第三存储器装置425。
86.在470处,第三存储器装置425可确定其装置存储器的与数据包中包含的虚拟地址相关联的物理地址。在一些情况下,与第三存储器装置425相关联的控制器或处理单元可确定物理地址。第三存储器装置425可包含经配置以将所接收虚拟地址映射到其装置存储器的物理地址的表(例如,映射表)或其它逻辑。
87.在一些情况下,所述表可包含关于与第三存储器装置425相关联的逻辑装置的信息,使得如果数据包包含请求方ldid字段355或目的地ldid字段360,则第二存储器装置415可确定与特定逻辑装置相关联的物理地址。另外或替代地,所述表可包含关于进程与物理地址之间的映射的信息,使得如果数据包包含sasid字段,则第二存储器装置415可确定与特定进程相关联的物理地址。然而,如本文中所描述,由第三存储器装置425使用的表可包含第二存储器装置415的虚拟地址与物理地址之间的映射。因此,第三存储器装置425可能不需要对其它存储器装置执行地址转换(或存储与地址转换相关联的信息)。
88.在475处,第三存储器装置425可对其装置存储器的物理地址执行存取操作。在一些情况下,与第三存储器装置425相关联的控制器或处理单元可执行存取操作。
89.在480处,第三存储器装置425可向与第二域427相关联的主机系统通知所述存取操作。因为可能尚未通知主机系统(例如,在475处执行的)存取操作,或因为主机系统可能具有与所述存取操作相关联的数据的经修改版本,所以可通知主机系统解析一致性。因此,可通知主机系统调用数据(例如,检索或发送数据的经修改版本)。通过参考图4所描述从装置到装置发送数据包,可存在跨系统的共享虚拟地址空间。共享虚拟地址空间可为相关联系统提供处置存储器存取请求的额外灵活性,同时减少原本会在存取操作期间归因于相应主机系统的参与而引发的时延。
90.图5展示根据本文所公开的实例的支持用于存储器系统的虚拟地址的存储器装置520的框图500。存储器装置520可以是参考图1到4所描述的存储器装置的各方面的实例。存储器装置520或其各种组件可以是用于执行如本文中所描述的用于存储器系统的虚拟地址的各个方面的构件的实例。举例来说,存储器装置520可包含标识组件525、生成组件530、发送组件535,或其任何组合。这些组件中的每一者可直接或间接地彼此通信(例如,经由一或多个总线)。
91.标识组件525可经配置为或以其它方式支持用于在第一存储器装置处标识与多个存储器装置相关联的虚拟地址空间的构件,其中所述多个存储器装置与一或多个主机域相关联,且其中所述一或多个主机域中的每一者与相应主机装置相关联。
92.生成组件530可经配置为或以其它方式支持用于生成包含第一字段和第二字段的数据包的构件,其中所述第一字段包含与所述多个存储器装置中的第二存储器装置相关联
的标识符,所述第二存储器装置与虚拟地址空间的范围相关联,且所述第二字段包含与所述第二存储器装置相关联的虚拟地址空间的范围内的地址。在一些实例中,为了支持生成数据包,生成组件530可经配置为或以其它方式支持用于生成包含与第二存储器装置的逻辑装置相关联的第二地址的第三字段的构件,其中所述第二存储器装置包含多个逻辑装置。
93.在一些实例中,为了支持生成数据包,生成组件530可经配置为或以其它方式支持用于生成包含与虚拟地址空间相关联的共享地址空间的标识符的第四字段的构件,其中地址与所述共享地址空间相关联。在一些实例中,为了支持生成数据包,生成组件530可经配置为或以其它方式支持用于至少部分地基于确定第二存储器装置与第二主机域相关联而生成包含用于虚拟地址空间的地址的一部分的第五字段的构件。
94.发送组件535可经配置为或以其它方式支持用于至少部分地基于所述标识符而从第一存储器装置向第二存储器装置发送数据包的构件。在一些实例中,为了支持将数据包发送到第二存储器装置,发送组件535可经配置为或以其它方式支持用于经由第一交换机将数据包从第一存储器装置发送到第二存储器装置的构件,其中所述第一交换机至少部分地基于标识符将数据包从第一存储器装置转发到第二存储器装置。
95.在一些实例中,第一交换机将数据包从包含第一存储器装置的第一主机域转发到包含第二存储器装置的第二主机域。在一些实例中,第一存储器装置、第二存储器装置和第一交换机位于同一主机域内。在一些实例中,所述多个存储器装置与多个主机域相关联。在一些实例中,所述多个存储器装置中的每一者与可通过第一字段寻址的唯一标识符相关联。
96.图6展示根据本文所公开的实例的支持用于存储器系统的虚拟地址的存储器装置620的框图600。存储器装置620可以是参考图1到4所描述的存储器装置的各方面的实例。存储器装置620或其各种组件可以是用于执行如本文中所描述的用于存储器系统的虚拟地址的各个方面的构件的实例。举例来说,存储器装置620可包含接收组件625、存取组件630、发送组件635、确定组件640,或其任何组合。这些组件中的每一者可直接或间接地彼此通信(例如,经由一或多个总线)。
97.接收组件625可经配置为或以其它方式支持用于在第一存储器装置处从第二存储器装置接收数据包的构件,其中所述数据包包含第一字段和第二字段,所述第一字段包含与第一存储器装置相关联的标识符,所述第二字段包含与第一存储器装置相关联的虚拟地址范围内的虚拟地址。在一些实例中,接收组件625可经配置为或以其它方式支持用于至少部分地基于标识第一存储器装置而经由第二交换机接收数据包的构件。在一些实例中,接收组件625可经配置为或以其它方式支持用于至少部分地基于标识第一存储器装置而经由第一交换机从第二存储器装置接收数据包的构件。
98.存取组件630可经配置为或以其它方式支持用于至少部分地基于在第一存储器装置处确定与虚拟地址相关联的第一存储器装置的物理地址而由第一存储器装置对与所述物理地址相关联的数据执行存取操作的构件。在一些实例中,数据包包含第三字段,所述第三字段包含与第一存储器装置的逻辑装置相关联的第二地址,且存取组件630可经配置为或以其它方式支持用于至少部分地基于确定第一存储器装置的逻辑装置而由第一存储器装置存取与包含在逻辑装置中的物理地址相关联的数据的构件。
99.发送组件635可经配置为或以其它方式支持用于至少部分地基于存取数据且确定第一存储器装置的物理地址而向与第一存储器装置相关联的主机装置发送从所述主机装置的一部分调用数据的指示的构件。
100.在一些实例中,数据包包含第三字段,所述第三字段包含与第一存储器装置的逻辑装置相关联的第二地址,且确定组件640可经配置为或以其它方式支持用于在第一存储器装置处至少部分地基于第二地址而确定逻辑装置的构件。在一些实例中,确定组件640可经配置为或以其它方式支持用于在第一存储器装置处至少部分地基于与虚拟地址相关联的进程而确定与所述虚拟地址相关联的第一存储器装置的物理地址的构件,其中与所述虚拟地址相关联的进程至少部分地基于:包含与虚拟地址空间相关联的共享地址空间标识符的指示的数据包的第四字段,以及对于包括第一存储器装置的主机域,在所述共享地址空间标识符的指示与包括所述虚拟地址范围的虚拟地址空间之间的映射。
101.在一些实例中,第一存储器装置和第二存储器装置位于不同主机域内。在一些实例中,第一存储器装置与多个主机域中的第一主机域相关联,且第二存储器装置与多个主机域中的第二主机域相关联。
102.图7展示根据本文所公开的实例的支持用于存储器系统的虚拟地址的存储器装置720的框图700。存储器装置720可以是参考图1到4所描述的存储器装置的各方面的实例。存储器装置720或其各种组件可以是用于执行如本文中所描述的用于存储器系统的虚拟地址的各个方面的构件的实例。举例来说,存储器装置720可包含接收组件725、确定组件730、存取组件735,或其任何组合。这些组件中的每一者可直接或间接地彼此通信(例如,经由一或多个总线)。
103.接收组件725可经配置为或以其它方式支持用于在第一存储器装置处至少部分地基于数据包中包含的第一字段和第二字段而从第二存储器装置接收数据包的构件,其中第一字段包含与第一存储器装置相关联的一或多个进程的指示,且第二字段包含与第一存储器装置所关联的虚拟地址范围相关联的地址。
104.确定组件730可经配置为或以其它方式支持用于在第一存储器装置处至少部分地基于与第一存储器装置相关联的一或多个进程的所述指示以及所述地址而确定第一存储器装置的物理地址的构件。
105.存取组件735可经配置为或以其它方式支持用于至少部分地基于确定第一存储器装置的物理地址而由第一存储器装置存取与所述物理地址相关联的数据的构件。
106.图8展示说明根据本文所公开的实例的支持用于存储器系统的虚拟地址的方法800的流程图。方法800的操作可由本文描述的存储器装置或其组件来实施。举例来说,可由参考图1到5所描述的存储器装置执行方法800的操作。在一些实例中,存储器装置可执行一组指令以控制装置的功能元件以执行所描述的功能。另外或替代地,存储器装置可使用专用硬件来执行描述的功能的各方面。
107.在805处,所述方法可包含在第一存储器装置处标识与多个存储器装置相关联的虚拟地址空间,其中所述多个存储器装置与一或多个主机域相关联,且其中所述一或多个主机域中的每一者与相应主机装置相关联。可根据本文所公开的实例执行805的操作。在一些实例中,805的操作的各方面可由参考图5所描述的标识组件525执行。
108.在810处,所述方法可包含生成包含第一字段和第二字段的数据包,其中所述第一
字段包含与所述多个存储器装置中的第二存储器装置相关联的标识符,所述第二存储器装置与所述虚拟地址空间的范围相关联,且所述第二字段包含与所述第二存储器装置相关联的所述虚拟地址空间的范围内的地址。可根据本文所公开的实例执行810的操作。在一些实例中,810的操作的各方面可由参考图5所描述的生成组件530执行。
109.在815处,所述方法可包含至少部分地基于所述标识符而从第一存储器装置向第二存储器装置发送数据包。可根据本文所公开的实例执行815的操作。在一些实例中,815的操作的各方面可由参考图5所描述的发送组件535执行。
110.在一些实例中,本文所描述的设备可执行例如方法800等方法或多个方法。所述设备可包含特征、电路系统、逻辑、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读媒体)以用于:在第一存储器装置处标识与多个存储器装置相关联的虚拟地址空间,其中所述多个存储器装置与一或多个主机域相关联,且其中所述一或多个主机域中的每一者与相应主机装置相关联;生成包含第一字段和第二字段的数据包,其中所述第一字段包含与所述多个存储器装置中的第二存储器装置相关联的标识符,所述第二存储器装置与虚拟地址空间的范围相关联,且所述第二字段包含与所述第二存储器装置相关联的虚拟地址空间的范围内的地址;以及至少部分地基于所述标识符而从所述第一存储器装置向所述第二存储器装置发送所述数据包。
111.在本文所描述的方法800和设备的一些实例中,将数据包发送到第二存储器装置可包含操作、特征、电路系统、逻辑、构件或指令以用于经由第一交换机将数据包从第一存储器装置发送到第二存储器装置,其中所述第一交换机至少部分地基于标识符将数据包从第一存储器装置转发到第二存储器装置。
112.在本文所描述的方法800和设备的一些实例中,第一交换机将数据包从包含第一存储器装置的第一主机域转发到包含第二存储器装置的第二主机域。
113.在本文中所描述的方法800和设备的一些实例中,第一存储器装置、第二存储器装置和第一交换机可位于同一主机域内。
114.在本文所描述的方法800和设备的一些实例中,生成数据包可包含操作、特征、电路系统、逻辑、构件或指令以用于生成包含可与第二存储器装置的逻辑装置相关联的第二地址的第三字段,其中第二存储器装置包含多个逻辑装置。
115.在本文所描述的方法800和设备的一些实例中,多个存储器装置可与多个主机域相关联,且多个存储器装置中的每一者可与可通过第一字段寻址的唯一标识符相关联。
116.在本文所描述的方法800和设备的一些实例中,生成数据包可包含操作、特征、电路系统、逻辑、构件或指令以用于生成包含与虚拟地址空间相关联的共享地址空间的标识符的第四字段,其中地址可与共享地址空间相关联。
117.在本文所描述的方法800和设备的一些实例中,生成数据包可包含操作、特征、电路系统、逻辑、构件或指令以用于至少部分地基于确定第二存储器装置可与第二主机域相关联而生成包含用于虚拟地址空间的地址的一部分的第五字段。
118.图9展示说明根据本文所公开的实例的支持用于存储器系统的虚拟地址的方法900的流程图。方法900的操作可由本文描述的存储器装置或其组件来实施。举例来说,可由参考图1到4和6所描述的存储器装置执行方法900的操作。在一些实例中,存储器装置可执行一组指令以控制装置的功能元件以执行所描述的功能。另外或替代地,存储器装置可使
用专用硬件来执行描述的功能的各方面。
119.在905处,所述方法可包含在第一存储器装置处从第二存储器装置接收数据包,其中所述数据包包含第一字段和第二字段,所述第一字段包含与第一存储器装置相关联的标识符,所述第二字段包含与第一存储器装置相关联的虚拟地址范围内的虚拟地址。可根据本文所公开的实例执行905的操作。在一些实例中,可由参考图6所描述的接收组件625执行905的操作的各方面。
120.在910处,所述方法可包含至少部分地基于在第一存储器装置处确定与虚拟地址相关联的第一存储器装置的物理地址而由第一存储器装置对与所述物理地址相关联的数据执行存取操作。可根据本文所公开的实例执行910的操作。在一些实例中,910的操作的各方面可由参考图6所描述的存取组件630执行。
121.在915处,所述方法可包含至少部分地基于存取数据且确定第一存储器装置的物理地址而向与第一存储器装置相关联的主机装置发送从所述主机装置的一部分调用数据的指示。可根据本文所公开的实例执行915的操作。在一些实例中,915的操作的各方面可由参考图6所描述的发送组件635执行。
122.在一些实例中,如本文所描述的设备可执行例如方法900等方法或多个方法。所述设备可包含特征、电路系统、逻辑、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读媒体)以用于:在第一存储器装置处从第二存储器装置接收数据包,其中所述数据包包含第一字段和第二字段,所述第一字段包含与所述第一存储器装置相关联的标识符,所述第二字段包含在与所述第一存储器装置相关联的虚拟地址范围内的虚拟地址;至少部分地基于在所述第一存储器装置处确定与所述虚拟地址相关联的所述第一存储器装置的物理地址,由所述第一存储器装置对与所述物理地址相关联的数据执行存取操作;以及至少部分地基于存取所述数据且确定所述第一存储器装置的所述物理地址而向与所述第一存储器装置相关联的主机装置发送从所述主机装置的一部分调用所述数据的指示。
123.本文所描述的方法900和设备的一些实例还可包含操作、特征、电路系统、逻辑、构件或指令以用于至少部分地基于标识所述第一存储器装置而经由第一交换机从所述第二存储器装置接收所述数据包。
124.在本文所描述的方法900和设备的一些实例中,所述数据包包含第三字段,所述第三字段包含可与第一存储器装置的逻辑装置相关联的第二地址,且所述方法、设备和非暂时性计算机可读媒体还可包含操作、特征、电路系统、逻辑、构件或指令以用于:在所述第一存储器装置处至少部分地基于所述第二地址而确定逻辑装置;以及至少部分地基于确定所述第一存储器装置的所述逻辑装置而由所述第一存储器装置存取与可包含在所述逻辑装置中的物理地址相关联的数据。
125.本文所描述的方法900和设备的一些实例还可包含操作、特征、电路系统、逻辑、构件或指令以用于至少部分地基于标识所述第一存储器装置而经由第二交换机接收所述数据包。
126.在本文所描述的方法900和设备的一些实例中,第一存储器装置和第二存储器装置位于不同主机域内。
127.在本文所描述的方法900和设备的一些实例中,第一存储器装置可与多个主机域中的第一主机域相关联,且第二存储器装置可与多个主机域中的第二主机域相关联。
128.本文所描述的方法900和设备的一些实例还可包含操作、特征、电路系统、逻辑、构件或指令以用于:在第一存储器装置处至少部分地基于与虚拟地址相关联的进程而确定与所述虚拟地址相关联的第一存储器装置的物理地址,其中与所述虚拟地址相关联的进程至少部分地基于:包含与虚拟地址空间相关联的共享地址空间标识符的指示的数据包的第四字段,以及对于包括第一存储器装置的主机域,在所述共享地址空间标识符的指示与包括虚拟地址范围的虚拟地址空间之间的映射。
129.图10展示说明根据本文所公开的实例的支持用于存储器系统的虚拟地址的方法1000的流程图。方法1000的操作可由本文描述的存储器装置或其组件来实施。举例来说,可由参考图1到4和7所描述的存储器装置执行方法1000的操作。在一些实例中,存储器装置可执行一组指令以控制装置的功能元件以执行所描述的功能。另外或替代地,存储器装置可使用专用硬件来执行描述的功能的各方面。
130.在1005处,所述方法可包含在第一存储器装置处至少部分地基于数据包中包含的第一字段和第二字段而从第二存储器装置接收数据包,其中所述第一字段包含与第一存储器装置相关联的一或多个进程的指示,且所述第二字段包含与第一存储器装置所关联的虚拟地址范围相关联的地址。可根据本文中所公开的实例执行1005的操作。在一些实例中,可由参考图7所描述的接收组件725执行1005的操作的各方面。
131.在1010处,所述方法可包含在第一存储器装置处至少部分地基于与第一存储器装置相关联的一或多个进程的指示和所述地址而确定第一存储器装置的物理地址。可根据本文中所公开的实例执行1010的操作。在一些实例中,可由参考图7所描述的确定组件730执行1010的操作的各方面。
132.在1015处,所述方法可包含由第一存储器装置至少部分地基于确定第一存储器装置的物理地址而存取与物理地址相关联的数据。可根据本文中所公开的实例执行1015的操作。在一些实例中,1015的操作的各方面可由参考图7所描述的存取组件735执行。
133.在一些实例中,如本文所描述的设备可执行例如方法1000等方法或多个方法。所述设备可包含特征、电路系统、逻辑、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读媒体)以用于:在第一存储器装置处至少部分地基于数据包中包含的第一字段和第二字段而从第二存储器装置接收数据包,其中第一字段包含与第一存储器装置相关联的一或多个进程的指示,且第二字段包含与第一存储器装置所关联的虚拟地址范围相关联的地址;在第一存储器装置处至少部分地基于与第一存储器装置相关联的一或多个进程的所述指示以及所述地址而确定第一存储器装置的物理地址;以及至少部分地基于确定第一存储器装置的物理地址而由第一存储器装置存取与所述物理地址相关联的数据。
134.应注意,上文描述的方法描述了可能的实施方案,且操作和步骤可重新布置或以其它方式加以修改,且其它实施方案是可能的。此外,可组合来自所述方法中的两个或更多个方法的部分。
135.可使用多种不同技术和技艺中的任一者来表示本文所描述的信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。一些图式可能将信号说明为单个信号;然而,所述信号可表示一总线的信号,其中所述总线可具有各种位宽度。
136.术语“电子连通”、“导电接触”、“连接”和“耦合”可指支持信号在组件之间流动的
组件之间的关系。如果组件之间存在可在任何时间支持信号在组件之间流动的任何导电路径,则认为组件彼此电子连通(或彼此导电接触或彼此连接或彼此耦合)。在任何给定时间,基于包含所连接组件的装置的操作,彼此电子连通(或彼此导电接触、或彼此连接、或彼此耦合)的组件之间的导电路径可以是开路或闭路。所连接组件之间的导电路径可以是组件之间的直接导电路径,或所连接组件之间的导电路径可以是间接导电路径,其可包含例如开关、晶体管或其它组件等中间组件。在一些实例中,所连接组件之间的信号流可例如使用例如开关或晶体管等一或多个中间组件中断一定时间。
137.术语“耦合”是指从组件之间的开路关系移动到组件之间的闭路关系的条件,在开路关系中,信号当前不能通过导电路径在组件之间传送,在闭路关系中,信号能够通过导电路径在组件之间传送。如果例如控制器等组件将其它组件耦合在一起时,则所述组件发起改变以允许信号通过先前不准许信号流动的导电路径在其它组件之间流动。
138.术语“隔离”是指其中信号当前不能在组件之间流动的组件之间的关系。如果组件之间存在开路,则组件彼此隔离。举例来说,由定位在两个组件之间的开关分隔开的所述组件在开关断开时彼此隔离。如果控制器隔离两个组件,则控制器实现改变以阻止信号使用先前准许信号流动的导电路径在组件之间流动。
139.术语“如果”、“当

时”、“基于”,或“至少部分地基于”可互换使用。在一些实例中,如果术语“如果”、“当

时”、“基于”或“至少部分地基于”用于描述条件性动作、条件性过程,或过程的部分之间的连接,则所述术语可互换。
140.术语“响应于”可指由于先前条件或动作而至少部分地(如果不完全地)发生的一个条件或动作。举例来说,可执行第一条件或动作,且第二条件或动作可作为先前条件或动作发生的结果(不管是直接在第一条件或动作之后还是在第一条件或动作之后的一或多个其它中间条件或动作发生之后)至少部分地发生。
141.另外,术语“直接地响应于”或“直接响应于”可指作为先前条件或动作的直接结果而发生的一个条件或动作。在一些实例中,可执行第一条件或动作,且第二条件或动作可作为先前条件或动作发生的结果直接发生而与是否发生其它条件或动作无关。在一些实例中,可执行第一条件或动作,且第二条件或动作可作为先前条件或动作发生的结果而直接发生,使得在较早条件或动作与第二条件或动作之间不发生其它中间条件或动作,或在较早条件或动作与第二条件或动作之间发生有限数量的一或多个中间步骤或动作。除非另外规定,否则本文中描述为“基于”、“至少部分地基于”或“响应于”一些其它步骤、动作、事件或条件执行的任何条件或动作可另外或替代地(例如,在替代实例中)“直接响应于”或“直接地响应于”此类其它条件或动作而执行。
142.本文中论述的包含存储器阵列在内的装置可形成于例如硅、锗、硅-锗合金、砷化镓、氮化镓等半导体衬底上。在一些实例中,所述衬底是半导体晶片。在其它实例中,衬底可以是绝缘体上硅(soi)衬底,例如玻璃上硅(sog)或蓝宝石上硅(sop),或在另一衬底上的半导体材料的外延层。可通过使用包含但不限于磷、硼或砷等各种化学物种的掺杂来控制衬底或衬底的子区的传导性。掺杂可在衬底的初始形成或生长期间通过离子注入或通过任何其它掺杂方式来进行。
143.本文中所论述的开关组件或晶体管可表示场效应晶体管(fet),且包括包含源极、漏极和栅极的三端装置。各端子可通过例如金属等导电材料连接到其它电子元件。源极和
漏极可导电,且可包括经重掺杂半导体区,例如简并半导体区。源极和漏极可通过轻掺杂半导体区或沟道分离。如果沟道是n型(即,多数载流子是电子),则fet可称作n型fet。如果沟道是p型(即,多数载流子是空穴),则fet可被称作p型fet。所述沟道可由绝缘栅极氧化物封端。可通过将电压施加到栅极来控制沟道传导性。举例来说,将正电压或负电压分别施加到n型fet或p型fet可使得沟道变为导电的。当大于或等于晶体管的阈值电压的电压施加到晶体管栅极时,晶体管可“接通”或“已激活”。如果小于晶体管的阈值电压的电压施加到晶体管栅极,则晶体管可“关断”或“解除激活”。
144.本文中结合附图阐述的描述内容描述了实例配置,且不表示可实施的或在权利要求书的范围内的所有实例。本文中所使用的术语“示例性”是指“充当实例、例子或图解说明”,且并非“优选的”或“优于其它实例”。具体实施方式包含提供对所描述的技术的理解的具体细节。然而,可在没有这些具体细节的情况下实践实施例。在一些情况下,以框图形式展示众所周知的结构和装置,以免混淆所描述实例的概念。
145.在附图中,类似的组件或特征可具有相同的参考标记。此外,可通过在参考标记之后跟着短横和在类似组件当中进行区分的第二标记来区分相同类型的各种组件。如果在说明书中仅使用第一参考标记,则描述内容适用于具有相同第一参考标记而与第二参考标记无关的类似组件中的任一者。
146.本文中所描述的功能可以硬件、由处理器执行的软件、固件或其任何组合实施。如果在由处理器执行的软件中实施,则可将功能作为一或多个指令或代码存储在计算机可读媒体上或通过计算机可读媒体发送。其它实例和实施方案在本公开和所附权利要求书的范围内。举例来说,归因于软件的本质,上文所描述的功能可使用由处理器执行的软件、硬件、固件、硬连线或这些中的任一者的组合来实施。实施功能的特征也可在物理上位于各种位置处,包含经分布以使得功能的各部分在不同物理位置处实施。
147.举例来说,可用通用处理器、dsp、asic、fpga或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其经设计以执行本文所描述的功能的任何组合来实施或执行结合本文中的公开内容而描述的各种说明块和组件。通用处理器可以是微处理器,但在替代方案中,处理器可以是任何处理器、控制器、微控制器或状态机。处理器可实施为计算装置的组合(例如,dsp与微处理器的组合、多个微处理器、一或多个微处理器结合dsp核心,或任何其它此类配置)。
148.如本文(包含在权利要求书中)所使用,在项列表(例如,以例如“中的至少一个”或“中的一或多个”的短语开头的项列表)中所使用的“或”指示包含性列表,使得例如a、b或c中的至少一个的列表意指a或b或c或ab或ac或bc或abc(即,a和b和c)。另外,如本文所使用,短语“基于”不应理解为参考封闭条件集。举例来说,在不脱离本公开的范围的情况下,描述为“基于条件a”的示例性步骤可基于条件a和条件b两者。换句话说,如本文所用,短语“基于”应以与短语“至少部分地基于”相同的方式理解。
149.计算机可读媒体包含非暂时性计算机存储媒体和通信媒体两种,所述通信媒体包含促进将计算机程序从一处传送到另一处的任何媒体。非暂时性存储媒体可以是可由通用或专用计算机存取的任何可用媒体。借助于实例而非限制,非暂时性计算机可读媒体可包括ram、rom、电可擦除可编程只读存储器(eeprom)、光盘(cd)rom或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于承载或存储呈指令或数据结构形式的所期望程序
代码构件且可由通用或专用计算机或通用或专用处理器存取的任何其它非暂时性媒体。另外,适当地将任何连接称作计算机可读媒体。举例来说,如果使用同轴线缆、光纤线缆、双绞线、数字订户线(dsl)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源发送软件,则所述同轴线缆、光纤线缆、双绞线、dsl或例如红外线、无线电和微波等无线技术包含于媒体的定义中。如本文中所使用,磁盘和光盘包含cd、激光光盘、光学光盘、数字多功能光盘(dvd)、软盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。上述的组合也应包含在计算机可读媒体的范围内。
150.提供本文中的描述以使得所属领域的技术人员能够制出或使用本公开。对本公开的各种修改对于所属领域的技术人员来说将是显而易见的,且本文所定义的一般原理可在不脱离本公开的范围的情况下应用于其它变型。因此,本公开不限于本文中所描述的实例和设计,而应被赋予与本文公开的原理和新颖特征一致的最广范围。
当前第1页1  
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
网站地图