CN117063167A - 共享虚拟地址空间 - Google Patents

共享虚拟地址空间 Download PDF

Info

Publication number
CN117063167A
CN117063167A CN202280019753.XA CN202280019753A CN117063167A CN 117063167 A CN117063167 A CN 117063167A CN 202280019753 A CN202280019753 A CN 202280019753A CN 117063167 A CN117063167 A CN 117063167A
Authority
CN
China
Prior art keywords
virtual address
memory device
memory
address space
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202280019753.XA
Other languages
English (en)
Inventor
B·霍尔农
T·M·布鲁尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN117063167A publication Critical patent/CN117063167A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1056Simplification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Abstract

描述用于共享虚拟地址空间的方法、系统和装置。在一些实例中,可跨一或多个域中包含的多个存储器装置共享全局共享地址空间。主机系统可设定参数,所述参数用于确定地址(例如,虚拟地址)是否包含于所述全局共享地址空间内,以及所述地址是否与存储器装置相关联。当存储器装置接收存储器请求(例如,数据包)时,所述存储器装置的处理单元可确定所述存储器请求中包含的地址是否与所述存储器装置相关联。所述处理单元可起始对所述存储器装置的物理地址的存取操作,或将所述存储器请求发射到另一存储器装置。

Description

共享虚拟地址空间
交叉引用
本专利申请要求HORNUNG等在2022年1月10日提交的标题为“共享虚拟地址空间(SHAREDVIRTUAL ADDRESS SPACES)”的第17/647,580号美国专利申请以及HORNUNG等在2021年3月12日提交的标题为“共享虚拟地址空间(SHAREDVIRTUAL ADDRESS SPACES)”的第63/160,609号美国临时专利申请的优先权;这两个文献中的每一个转让给本受让人且其中的每一个的全文以引用的方式明确地并入本文中。
技术领域
下文大体上涉及用于存储器的一或多个系统,且更具体地说涉及共享虚拟地址空间。
背景技术
存储器装置广泛用于将信息存储在例如计算机、用户装置、无线通信装置、相机、数字显示器等各种电子装置中。通过将存储器装置内的存储器单元编程为各种状态来存储信息。举例来说,二进制存储器单元可编程到常常对应于逻辑1或逻辑0的两个支持状态中的一个。在一些实例中,单个存储器单元可支持两个以上可能的状态,所述状态中的任一个可由存储器单元存储。为了存取存储器装置存储的信息,组件可读取或感测存储器装置内的一或多个存储器单元的状态。为了存储信息,组件可以将存储器装置内的一或多个存储器单元写入或编程到相应状态。
存在各种类型的存储器装置,包含磁性硬盘、随机存取存储器(RAM)、只读存储器(ROM)、动态RAM(DRAM)、同步动态RAM(SDRAM)、静态RAM(SRAM)、铁电RAM(FeRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、快闪存储器、相变存储器(PCM)、3维交叉点存储器(3D交叉点)、“或非”(NOR)和“与非”(NAND)存储器装置等。存储器装置可以是易失性或非易失性的。除非由外部电源周期性刷新,否则易失性存储器单元(例如,DRAM单元)可能随时间推移而丢失其编程状态。非易失性存储器单元(例如,NAND存储器单元)即使在不存在外部电源的情况下仍可能在很长一段时间内维持其编程状态。
附图说明
图1示出根据如本文所公开的实例的支持共享虚拟地址空间的系统的实例。
图2示出根据如本文所公开的实例的支持共享虚拟地址空间的系统的实例。
图3示出根据如本文所公开的实例的框图的实例,其示出支持共享虚拟地址空间的存储器管理单元的方面。
图4示出根据如本文所公开的实例的框图的实例,其示出支持共享虚拟地址空间的表。
图5展示根据如本文所公开的实例的支持共享虚拟地址空间的存储器装置的框图。
图6和7展示根据如本文所公开的实例的流程图,其示出支持共享虚拟地址空间的一或多种方法。
具体实施方式
一些接口(例如,计算高速链路(CXL)接口)经设计以在主机系统与一或多个存储器系统之间使用。举例来说,存储器系统可跨越主机系统和存储器系统相干地使用存储器。因此,CXL接口涉及单主机域以及对单个存储器系统的相干性的主机管理控制。归因于主机管理单个域的相干性,可存取的内存量(例如,数量)可受域中包含的存储器装置限制。举例来说,主机可存取包含于单个主机域中的16GB大小的存储器。然而,在一些情况下,可能需要利用跨多个存储器系统(例如,跨多个域)的全局地址空间,以便针对存储器存取请求提供较大可存取地址空间。
本文描述允许用于全局共享地址空间的可变宽度虚拟装置识别符的系统。举例来说,主机系统(例如,操作系统)可设定用于确定地址(例如,虚拟地址)是否与存储器装置相关联的参数。所述参数可包含指示如何使虚拟地址移位的移位参数、用以掩蔽经移位虚拟地址的位的掩码参数,以及用于全局共享地址空间的存储器装置的装置识别符。存储器装置可配置有用于为不同的全局共享地址空间指派不同范围和装置识别符的参数的向量。存储器装置可配置有包含区基部和区顶部的全局共享区,用于确定虚拟地址是否在全局共享地址空间内。利用跨多个存储器系统的全局地址空间可为整个系统提供灵活性,以及针对存储器存取请求提供较大可存取地址空间。此外,利用装置识别符可允许在每装置基础上执行地址转译,因此减小任何一个CXL装置可能需要执行的地址转译的量。
首先在参考图1到2的系统的上下文中描述本公开的特征。参考图3和4在框图的上下文中描述本公开的特征。通过参考图5-7在涉及用于存储器系统的虚拟地址的设备图和流程图的上下文中说明且在其中描述本公开的这些和其它特征。
图1示出根据如本文所公开的实例的支持用于存储器系统的虚拟地址的系统100的实例。系统100包含与存储器系统110耦合的主机系统105。
存储器系统110可以是或包含任何装置或装置的集合,其中装置或装置的集合包含至少一个存储器阵列。举例来说,存储器系统110可以是或包含通用快闪存储(UFS)装置、嵌入式多媒体控制器(eMMC)装置、快闪装置、通用串行总线(USB)快闪装置、安全数字(SD)卡、固态驱动器(SSD)、硬盘驱动器(HDD)、双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM),或非易失性DIMM(NVDIMM),以及其它可能性。
系统100可包含在计算装置中,所述计算装置例如台式计算机、笔记本电脑、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具物联网(IoT)功能的装置、嵌入式计算机(例如,包含在交通工具、工业设备或联网商业装置中的嵌入式计算机),或包含存储器和处理装置的任何其它计算装置。
系统100可包含可与存储器系统110耦合的主机系统105。在一些实例中,此耦合可包含与主机系统控制器106的接口,所述主机系统控制器可以是被配置成致使主机系统105根据如本文中所描述的实例执行各种操作的控制组件的实例。主机系统105可包含一或多个装置,且在一些情况下,可包含处理器芯片组和由处理器芯片组执行的软件堆栈。举例来说,主机系统105可包含被配置成用于与存储器系统110或其中的装置通信的应用。处理器芯片组可包含一或多个核心、一或多个高速缓存(例如,主机系统105本地的或包含在主机系统105中的存储器)、存储器控制器(例如,NVDIMM控制器),和存储协议控制器(例如,外围组件互连高速(PCIe)控制器、串行高级技术附件(SATA)控制器)。主机系统105可使用存储器系统110,例如将数据写入到存储器系统110及从存储器系统110读取数据。尽管在图1中展示一个存储器系统110,但主机系统105可与任何数量的存储器系统110耦合。
主机系统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耦合)。
存储器系统110可包含存储器系统控制器115和一或多个存储器装置130。存储器装置130可包含任何类型的存储器单元(例如,非易失性存储器单元、易失性存储器单元,或其任何组合)的一或多个存储器阵列。尽管图1的实例中展示两个存储器装置130-a和130-b,但存储器系统110可包含任何数量的存储器装置130。此外,如果存储器系统110包含一个以上存储器装置130,则存储器系统110内的不同存储器装置130可包含相同或不同类型的存储器单元。
存储器系统控制器115可与主机系统105耦合并通信(例如,经由物理主机接口),并且可以是被配置成致使存储器系统110根据如本文所描述的实例执行各种操作的控制组件的实例。存储器系统控制器115还可与存储器装置130耦合并通信以在存储器装置130处执行一般可称为存取操作的操作,例如读取数据、写入数据、擦除数据或刷新数据,以及其它此类操作。在一些情况下,存储器系统控制器115可从主机系统105接收命令且与一或多个存储器装置130通信以执行此些命令(例如,在所述一或多个存储器装置130内的存储器阵列处)。举例来说,存储器系统控制器115可从主机系统105接收命令或操作并且可将所述命令或操作转换成指令或适当命令以实现对存储器装置130的所要存取。在一些情况下,存储器系统控制器115可与主机系统105以及一或多个存储器装置130交换数据(例如,响应于或以其它方式结合来自主机系统105的命令)。举例来说,存储器系统控制器115可以将与存储器装置130相关联的响应(例如,数据包或其它信号)转换成用于主机系统105的相应信号。
存储器系统控制器115可以被配置成用于与存储器装置130相关联的其它操作。举例来说,存储器系统控制器115可执行或管理操作,例如,耗损均衡操作、垃圾收集操作、比如错误检测操作或错误校正操作等错误控制操作、加密操作、高速缓存操作、媒体管理操作、后台刷新、健康监测,及与来自主机系统105的命令相关联的逻辑地址(例如,逻辑块地址(LBA))和与存储器装置130内的存储器单元相关联的物理地址(例如,物理块地址)之间的地址转译。
存储器系统控制器115可包含硬件,例如一或多个集成电路或离散组件、缓冲存储器或其组合。硬件可包含具有专用(例如,硬译码)逻辑的电路系统以执行本文中归于存储器系统控制器115的操作。存储器系统控制器115可以是或包含微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)、数字信号处理器(DSP)),或任何其它合适的处理器或处理电路系统。
存储器系统控制器115还可包含本地存储器120。在一些情况下,本地存储器120可包含只读存储器(ROM)或其它存储器,其可存储可由存储器系统控制器115执行的操作代码(例如,可执行指令)以执行本文中归于存储器系统控制器115的功能。在一些情况下,本地存储器120可另外或替代地包含静态随机存取存储器(SRAM)或其它存储器,其可由存储器系统控制器115使用以用于例如与本文中归于存储器系统控制器115的功能有关的内部存储或计算。另外或替代地,本地存储器120可充当用于存储器系统控制器115的高速缓存。举例来说,在从存储器装置130读取或向存储器装置130写入的情况下,数据可存储在本地存储器120中,并且数据可在本地存储器120内可用以用于根据高速缓存策略由主机系统105后续检索或操纵(例如,更新)(例如,在相对于存储器装置130的减少的时延的情况下)。
尽管图1中的存储器系统110的实例已示出为包含存储器系统控制器115,但在某些情况下,存储器系统110可不包含存储器系统控制器115。举例来说,存储器系统110可另外或替代地依赖于外部控制器(例如,由主机系统105实施)或可在存储器装置130内部的一或多个本地控制器135以分别执行本文中归于存储器系统控制器115的功能。一般来说,本文中归于存储器系统控制器115的一或多个功能可在一些情况下改为由主机系统105、本地控制器135或其任何组合执行。在一些情况下,至少部分地由存储器系统控制器115管理的存储器装置130可称为受管理存储器装置。受管理存储器装置的实例为受管理NAND(MNAND)装置,但也支持其它类型的受管理存储器装置。举例来说,受管理存储器装置可包含任何类型或数量的易失性或非易失性存储器装置。
存储器装置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)存储器单元。
在一些实例中,存储器装置130可包含(例如,在同一裸片上或在同一封装内)本地控制器135,其可在相应存储器装置130的一或多个存储器单元上执行操作。本地控制器135可结合存储器系统控制器115操作,或可执行本文中归于存储器系统控制器115的一或多个功能。举例来说,如图1中所示出,存储器装置130-a可以包含本地控制器135-a,且存储器装置130-b可以包含本地控制器135-b。
在一些情况下,存储器装置130可以是或包含NAND装置(例如,NAND快闪装置)。存储器装置130可以是或包含存储器裸片160。举例来说,在一些情况下,存储器装置130可以是包含一或多个裸片160的封装。在一些实例中,裸片160可以是从晶片切割的一块电子级半导体(例如,从硅晶片切割的硅裸片)。每一裸片160可包含一或多个平面165,且每一平面165可包含相应的块集合170,其中每一块170可包含相应的页集合175,且每一页175可包含存储器单元集合。
在一些情况下,NAND存储器装置130可包含被配置成各自存储一个信息位的存储器单元,其可被称为单层级单元(SLC)。另外或替代地,NAND存储器装置130可以包含被配置成各自存储多个信息位的存储器单元,如果被配置成各自存储两个信息位,则其可以被称为多层级单元(MLC),如果被配置成各自存储三个信息位,则其可以被称为三层级单元(TLC),如果被配置成各自存储四个信息位,则其可以被称为四层级单元(QLC),或更一般地被称为多层级存储器单元。多层级存储器单元可相对于SLC存储器单元提供更大的存储密度,但在一些情况下,可能涉及用于支持电路系统的更窄读取或写入裕度或更大复杂度。
在一些情况下,平面165可指代块170的群组,并且在一些情况下,可在不同平面165内进行并行操作。举例来说,可对不同块170内的存储器单元执行并行操作,只要不同块170处于不同平面165中即可。在一些情况下,在不同平面165中执行并行操作可受制于一或多个限制,例如对不同页175内的存储器单元执行相同操作,所述存储器单元在其相应平面165内具有相同页地址(例如,与命令解码、页地址解码电路系统,或跨平面165共享的其它电路系统相关)。
在一些情况下,块170可包含组织成行(页175)和列(例如,串,未展示)的存储器单元。举例来说,同一页175中的存储器单元可共享共同字线(例如,与其耦合),并且同一串中的存储器单元可共享共同数字线(其可替代地被称为位线)(例如,与其耦合)。
对于一些NAND架构,存储器单元可在第一粒度级别(例如,在页粒度级别)读取和编程(例如,写入),但可在第二粒度级别(例如,在块粒度级别)擦除。即,页175可为可独立地编程或读取(例如,作为单个编程或读取操作的一部分同时编程或读取)的存储器(例如,存储器单元集合)的最小单位,且块170可为可独立地擦除(例如,作为单个擦除操作的一部分同时擦除)的存储器(例如,存储器单元集合)的最小单位。此外,在一些情况下,NAND存储器单元可在其可用新数据重写之前进行擦除。因此,举例来说,在一些情况下,可直到包含页175的整个块170已被擦除才更新已使用页175。
系统100可包含支持用于存储器系统的虚拟地址的任何数量的非暂时性计算机可读介质。举例来说,主机系统105、存储器系统控制器115或存储器装置130可包含或以其它方式可存取一或多个非暂时性计算机可读介质,所述非暂时性计算机可读介质存储指令(例如,固件)以执行本文中归于主机系统105、存储器系统控制器115或存储器装置130的功能。举例来说,如果由主机系统105(例如,由主机系统控制器106)、由存储器系统控制器115,或由存储器装置130(例如,由本地控制器135)执行,则此些指令可致使主机系统105、存储器系统控制器115或存储器装置130执行如本文中所描述的一或多个相关联功能。
在一些情况下,存储器系统110可利用存储器系统控制器115来提供受管理存储器系统,所述受管理存储器系统可包含(例如)一或多个存储器阵列及与本地(例如,裸片上或封装中)控制器(例如,本地控制器135)组合的相关电路系统。受管理存储器系统的实例是受管理NAND(MNAND)系统。
在一些实例中,存储器系统110可包含被配置成彼此直接通信的存储器装置。举例来说,虚拟地址空间可跨包含存储器系统110的一或多个存储器系统的部分(或全部)存在,且可与被配置成彼此直接通信的存储器装置相关联。此外,存储器系统控制器115(其可以是存储器管理单元(MMU)的实例)可被配置成确定虚拟地址是否包含于共享虚拟地址空间内,以及虚拟地址是否与特定存储器系统110相关联。另外或替代地,存储器系统110可包含处理器(未图示),所述处理器可在存储器装置上执行操作,因此生成MMU可处理的存储器请求(包含虚拟地址)。
当MMU接收存储器请求时,其可确定请求中包含的地址(例如,虚拟地址)是否包含于共享虚拟地址空间内。如本文所描述,MMU可包含或可以访问表,所述表包含用于解译存储器请求中包含的地址位的参数。表中包含的参数可由主机系统105建立(例如,设定)。MMU可通过将与地址位的子集相关联的第一值与表中包含的第二值和第三值进行比较来确定请求中包含的地址是否包含于共享虚拟地址空间内。基于所述比较,MMU可确定虚拟地址包含在共享虚拟地址空间中。
另外或替代地,MMU可确定请求中包含的地址是否与相应存储器装置(例如,与MMU相关联的存储器装置)相关联。MMU可根据所述表解译不同地址位,以确定与地址相关联的识别符(例如,装置识别符)。如果识别符匹配,则MMU可访问与存储器请求中包含的虚拟地址相关联的物理地址。然而,如果识别符不匹配,则MMU可将存储器请求发射到另一存储器装置。利用跨多个存储器系统(例如存储器系统110)的共享虚拟地址空间可为整个系统提供灵活性,以及针对存储器存取请求提供较大可存取地址空间。此外,利用装置识别符可允许在每装置基础上执行地址转译,因此减小任何一个CXL装置可能需要执行的地址转译的量。
图2示出根据如本文所公开的实例的支持用于存储器系统的虚拟地址的系统200的实例。系统200可以是参考图1或其方面描述的系统100的实例。系统200可包含第一存储器域205-a和第二存储器域205-b。每一存储器域可包含一或多个存储器装置(例如CXL装置215-a)、一或多个交换机(例如交换机225)和相应主机系统(例如主机系统230)。在一些实例中,系统200可实施参考图1所描述的系统100的各方面。举例来说,存储器装置215-a可以是存储器系统110的实例,且主机系统230可以是参考图1所描述的主机系统105的实例。
在一些实例中,系统200可包含第一存储器域205-a,其也可称为第一OS域205-a。第一存储器域205-a可包含一或多个存储器装置215或可与一或多个存储器装置215相关联,所述一或多个存储器装置可为CXL存储器装置215。举例来说,存储器装置215中的一或多个可包含装置存储器、控制器和处理单元(未展示),且可被配置成经由交换机225与主机系统230和其它CXL存储器装置215介接。另外或替代地,系统200可包含域205-b,其可被称为第二域205-b、第二OS域205-b,或第二存储器域205-b。第二存储器域205-b可包含一或多个存储器装置220或可与一或多个存储器装置220相关联,所述一或多个存储器装置可为CXL存储器装置220。举例来说,每一存储器装置220可包含装置存储器、控制器和处理单元(未展示),且可被配置成经由交换机235与主机系统240介接。
尽管将第一存储器域205-a和第二存储器域205-b示出为包含两个存储器装置(例如,存储器装置215和存储器装置220),但第一存储器域205-a和第二存储器域205-b可包含任何数量的存储器装置。此外,系统200可包含任何数量的域。每一域内的存储器装置可经由交换机(或在一些情况下,经由一个以上交换机)与相应主机装置通信。另外或替代地,每一域的交换机(或多个交换机)可直接或经由交换机(例如,经由架顶交换机)彼此通信。举例来说,交换机225可直接(未展示)或经由架顶交换机245与交换机235通信。
在一些情况下,交换机可包含逻辑或其它处理能力以便彼此通信。举例来说,交换机225可包含逻辑以确定将数据包路由到交换机245还是路由到域205-a中包含的存储器装置。此外,交换机245可包含逻辑或其它处理能力以确定将数据包路由到哪个域。另外或替代地,交换机225可包含逻辑以确定将数据包路由到交换机245还是路由到域205-b中包含的存储器装置。因此,存储器装置215可经由交换机225、交换机235和架顶交换机245与存储器装置220通信。另外或替代地,域205的存储器装置220和/或主机系统230可彼此直接通信(例如,不经由交换机225)。
在一些情况下,相应存储器装置215的处理单元和控制器可以是形成于同一现场可编程门阵列(FPGA)或专用集成电路(ASIC)上的单个逻辑组件。然而,在一些实例中,控制器和处理单元可以是个别组件。举例来说,处理单元可以是图形处理单元(GPU)或通用图形处理单元(GPGPU)。处理单元可被配置成将用于存取装置存储器的信令和/或命令发射到控制器。如本文中所描述,处理单元可被配置成生成数据包,所述数据包可直接发射到系统200内的另一存储器装置而无需相应主机系统的交互。
在一些情况下,如本文中所描述,每一存储器装置(例如,每一存储器装置215或每一存储器装置220)的装置存储器可被配置成例如响应于从相应主机系统接收到存取命令而存储相应存储器装置与主机系统之间传递的数据。存储器装置可包含参考图1所描述的一或多个存储器装置。举例来说,存储器装置可包含NAND存储器、PCM、自选存储器、3D交叉点、其它基于硫族化物的存储器、FERAM、MRAM、NOR(例如,NOR快闪)存储器、STT-MRAM、CBRAM、RRAM,或OxRAM。
此外,每一存储器装置(例如,每一存储器装置215或每一存储器装置220)的控制器或处理单元可控制直接进出相应存储器装置的数据传送,以例如用于存储数据、检索数据以及确定其中将存储数据和从中检索数据的存储器位置。控制器或处理单元可直接或经由总线使用特定针对每一类型的存储器装置的协议与相应存储器装置的装置存储器通信。在一些情况下,可针对每一存储器装置实施单个控制器,而在其它实例中,一些存储器装置可包含多个控制器。在一些情况下,相应控制器可实施参考图1所描述的存储器系统控制器115的各方面。
每一存储器装置的控制器或处理单元可另外被配置成用于与相应存储器装置相关联的操作。举例来说,控制器或处理单元可执行或管理操作,例如耗损均衡操作、垃圾收集操作、比如错误检测操作或错误校正操作等错误控制操作、加密操作、高速缓存操作、媒体管理操作、后台刷新、健康监测,以及地址转译。举例来说,控制器或处理单元可将虚拟地址转译成物理地址,或可将虚拟地址转译成逻辑地址(例如,LBA),所述逻辑地址可转译成与存储器装置内的存储器单元相关联的物理地址(例如,物理块地址)。
在一些实例中,每一存储器装置的装置存储器可被配置成存储可由相应处理单元(例如,经由相应存储器装置的控制器)和相应主机装置存取的数据。因为数据可由处理单元和主机装置两者存取(例如,数据被共享),所以跟踪数据的相干性可能是合乎需要的。即,可能需要处理单元和主机装置两者知晓装置存储器(或相应存储器装置的高速缓存)中的数据是否与发射到主机装置的相应数据(对于相同地址)相干。此相干性可称作装置相干性。
在其它实例中,可基于从另一存储器装置(例如,存储器装置215-a)接收到数据包而(例如,在存储器装置220-a处)执行存取操作。在此类情况下,数据可能相干或可能不相干,因为是在每个域基础上跟踪装置相干性。此相干性可称作I/O相干性,其中数据在存取时被读取为相干的。即,主机系统可能不跟踪与其它域相关联的数据是否相干,但数据仍可被存取。然而,在存取数据后,可通知与接收装置相关联的主机系统(例如,主机系统240)重新调用数据的最新版本。
借助于实例,共享虚拟地址空间可跨存储器装置215-a、存储器装置215-b、存储器装置220-a和存储器装置220-b的至少一部分存在。可基于数据包中包含的一或多个字段而存取相应存储器装置的物理地址。举例来说,存储器装置215-a的控制器或处理单元可接收包含地址(例如,虚拟地址)的存储器请求。控制器或处理单元可确定地址是否与共享虚拟地址空间相关联,且如果是,则确定所述地址是否与存储器装置215-a相关联。如果地址与共享虚拟地址空间和存储器装置215-a两者相关联,则控制器或处理单元可确定与虚拟地址相关联的物理地址,且对存储器装置215-a的装置存储器的物理地址执行存取操作。
为了确定所接收地址是否在共享全局地址空间内,存储器装置215-a的控制器或处理单元可存取含有用于解译虚拟地址中包含的位的指令的表。在一些例子中,所述表可存储到与存储器装置215-a相关联的存储器(例如,每一存储器装置215和每一存储器装置220可以存取相应的表)。所述表可指示使用虚拟地址的哪些地址位来确定虚拟地址是否包含在共享虚拟地址空间中。举例来说,共享虚拟地址空间的开始地址(例如,基部地址)可以由第二值表示,且共享虚拟地址空间的结束地址(例如,顶部地址)可以由第三值表示。控制器或处理单元可将由虚拟地址中包含的位的子集表示的第一值与第二和第三值进行比较。
如果第一值大于或等于第二值(例如,表示基部地址的值)且小于或等于第三值(例如,表示顶部地址的值),则虚拟地址包含在共享虚拟地址空间中,且控制器或处理单元可接着确定虚拟地址是否与存储器装置215-a相关联。在其它实例中,如果第一值在由第二值和第三值建立的范围之外,则控制器或处理单元可将虚拟地址发射到另一存储器装置。
为了确定所接收地址是否与存储器装置215-a相关联,存储器装置215-a的控制器或处理单元可利用所述表来确定与所述地址相关联的识别符(例如,装置识别符)。举例来说,控制器或处理单元可基于一或多个参数(例如,如参考图3所描述的移位参数、掩码参数等)确定与地址的位的子集相关联的值。如果由地址的位的子集表示的值与存储器装置215-a的装置识别符匹配,则虚拟地址与存储器装置215-a相关联,且可随后(例如,由控制器或处理单元)存取对应于虚拟地址的物理地址。利用跨多个存储器装置(例如存储器装置215-a、215-b、220-a和220-b)的共享虚拟地址空间可为整个系统提供灵活性,以及针对存储器存取请求提供较大可存取地址空间。此外,利用装置识别符可允许在每装置基础上执行地址转译,因此减小任何一个CXL装置可能需要执行的地址转译的量。
图3示出根据如本文所公开的实例的支持共享虚拟地址空间的MMU的框图300的实例。存储器管理单元可包含一或多个块或组件,用于确定与存储器请求相关联的地址是否包含于全局共享地址空间内,以及所述地址是否与其中包含MMU的存储器装置相关联。举例来说,MMU可包含全局共享范围检查块315、局部转译高速缓存330,和可缩放性接口350。
在一些例子中,全局共享范围检查块315可确定与存储器请求相关联的地址是否包含于全局共享地址空间内,以及所述地址是否与同MMU相关联的存储器装置相关联。如果地址与其中包含MMU的存储器装置相关联,则局部转译高速缓存330可转译所述地址,且如果地址不与其中包含MMU的存储器装置相关联,则可缩放性接口350可将存储器请求(例如,地址)发射到另一存储器装置。利用跨多个存储器系统的全局地址空间可为整个系统提供灵活性,以及针对存储器存取请求提供较大可存取地址空间。此外,利用装置识别符可允许在每装置基础上执行地址转译,因此减小任何一个CXL装置可能需要执行的地址转译的量。
可跨可包含在一或多个域中的多个存储器装置限定全局地址空间(或共享虚拟地址空间)。举例来说,可跨存储器装置215-a、存储器装置215-b、存储器装置220-a和存储器装置220-b的至少一部分限定共享虚拟地址空间,如参考图2所描述。共享虚拟地址空间中包含的每一存储器装置可包含由二的幂(例如,2X)边界限定的范围(例如,整个共享地址空间的范围),其中与给定装置的范围相关联的地址位的数量可小于或等于X。此外,共享虚拟地址空间中包含的每一存储器装置可与装置识别符相关联,所述装置识别符可限定为给定存储器装置的地址位以上N位的对数底2。当存储器请求由存储器装置的MMU接收时,MMU可确定请求中包含的地址(例如,虚拟地址)是否在共享虚拟地址空间内,以及所述地址是否与相关联存储器装置相关联。
在一些实例中,MMU的全局共享范围检查块315可接收存储器请求。举例来说,存储器装置(例如,CXL装置215)可包含可生成存储器请求的处理器。在一些实例中,存储器请求可包含虚拟地址305和进程识别符310(例如,PASID 310)。在一些例子中,PASID 310可识别与虚拟地址305相关联的进程。举例来说,PASID 310可指示,虚拟地址305与图形处理相关联。因为一些虚拟地址可与一个以上进程相关联,所以PASID 310可用于确定与虚拟地址305相关联的物理地址。即,不同进程可与相同虚拟地址相关联,但可映射到相关联存储器装置的不同物理地址。
为了确定虚拟地址305是否包含于共享虚拟地址空间内以及虚拟地址305是否与特定存储器装置(例如,与包含全局共享范围检查块315的MMU相关联的存储器装置)相关联,全局共享范围检查块315可存储或可以访问由如参考图4所描述的框图400示出的表。由框图400示出的表的版本可存储到存储器系统中包含的每一MMU,且可通知MMU如何解译所接收地址,例如虚拟地址305。举例来说,所述表可通知MMU使用虚拟地址305的哪些位来确定虚拟地址305是否包含于共享虚拟地址空间内,以及虚拟地址305是否与所述特定存储器装置相关联。
因此,图4示出根据如本文所公开的实例的支持共享虚拟地址空间的表的框图400的实例。所述表可包含用于确定虚拟地址是否包含于共享虚拟地址空间内以及虚拟地址是否与特定存储器装置相关联的参数。所述参数可由主机装置设定,且可针对每一MMU变化。即,每一MMU可包含特定针对相应MMU的表的不同版本。在一些例子中,所述参数可由主机装置在建立共享虚拟地址空间时设定。即,主机装置(例如,与包括存储器装置的域相关联的主机装置)可为MMU设定参数以建立与用于一或多个共享虚拟地址空间的存储器装置相关联(例如,与不同进程相关联)的虚拟地址的范围。MMU(例如,存储器装置)可在一或多个配置消息中接收所述参数。所述参数可由MMU使用(例如,参数可保持有效),只要由虚拟地址305中包含的至少一个位表示的值与有效位的值匹配即可。举例来说,所述参数可由MMU使用,只要由位六十三(63)表示的值(例如,如Region_Attributes寄存器420中所展示)指示表中的条目(例如,针对给定区)有效即可。尽管图4示出用于支持共享虚拟地址空间的参数(例如,位字段)的一个实例,但应理解,参数的替代性布置是可能的,包含参数在表中呈不同次序,或参数具有不同长度(例如,位数目)。
在一些例子中,Region_Base寄存器405和Region_Top寄存器410可指示使用虚拟地址的哪些地址位来确定虚拟地址是否包含在共享虚拟地址空间中。举例来说,共享虚拟地址空间的开始地址(例如,基部地址)可以由第二值表示,且共享虚拟地址空间的结束地址(例如,顶部地址)可以由第三值表示。在图4中示出的实例中,Region_Base寄存器405和Region_Top寄存器410两者指示所接收虚拟地址的位56:30可用于确定虚拟地址是否包含在共享虚拟地址空间中。
因此,全局共享范围检查块315可确定由虚拟地址305的位56:30表示的第一值。如果第一值大于或等于第二值(例如,表示基部地址的值)且小于或等于第三值(例如,表示顶部地址的值),则虚拟地址305包含在共享虚拟地址空间中。在这种情况下,全局共享范围检查块315可确定虚拟地址305是否与相应存储器装置相关联。在其它实例中,如果第一值在由第二值和第三值建立的范围之外,则全局共享范围检查块315可将虚拟地址发射到局部转译高速缓存330。
如果虚拟地址305包含在共享虚拟地址空间中,则全局共享范围检查块315可确定虚拟地址305是否与用于共享虚拟地址空间的存储器装置相关联。为了确定虚拟地址305是否与相应存储器装置相关联,全局共享范围检查块315可确定由表的位5:0表示的值。如图4中所展示,Local_VID[0]寄存器415-a可指示表的位5:0为移位位。移位位可指示用以使地址移位以将装置识别符(例如,Device_VID)移动到位0的位的数目(例如,数量)。即,虚拟地址可移位(例如,向右,除以)由移位位[5:0]指示的值。举例来说,如果移位位的值为三十(30),则虚拟地址可向右移位30位,从而将原始位30置于经移位地址的位0的位置中。换句话说,由移位位表示的值可指示待用于确定装置识别符的开始位。
此外,在确定用于确定装置识别符的开始位(例如,基于由移位位5:0表示的值)之后,全局共享范围检查块315可确定由Local_VID[0]寄存器415-a的位17:8表示的值。如图4中所展示,Local_VID[0]寄存器415-a的位17:8可以是掩码位。掩码位可指示哪些地址位待用于确定装置识别符(例如,经移位地址位可与掩码位进行AND运算)。因此,移位位的值可指示开始位,且掩码位的值可指示待用于确定装置识别符的位的数量。
另外或替代地,全局共享范围检查块315可确定由虚拟地址305的位27:18表示的值。如图4中所展示,所接收虚拟地址的位27:18可以是Local VID位。Local VID位可指示待与基于来自虚拟地址305的经移位和掩蔽位确定的值进行比较的值(例如,装置识别符)。相应地,全局共享范围检查块315可将由Local_VID位表示的值与来自虚拟地址的装置识别符进行比较(例如,基于虚拟地址的移位和掩蔽)。如果与Local_VID位相关联的值与来自虚拟地址的装置识别符匹配,则虚拟地址305与存储器装置相关联,且可随后存取(例如,经由局部转译高速缓存330)对应于虚拟地址305的物理地址。在一些例子中,与Local_VID位相关联的值可不与装置识别符匹配,且虚拟地址305可发射到可缩放性接口350。
在一些实例中,存储器装置可与一或多个逻辑装置相关联。举例来说,参考图2所描述的存储器装置(例如,存储器装置215-a)可包含一或多个逻辑装置。即,每一存储器装置可包含可用于不同进程的一或多个逻辑装置。因此,存储器装置215-a可包含与第一进程或第一类型的进程(例如,图形处理)相关联的第一逻辑装置,以及与第二进程或第二类型的进程(例如,网络介接)相关联的第二逻辑装置。为了考虑逻辑装置,由框图400示出的表可包含一个以上Local_VID寄存器。
如图4中所展示,表可包含Local_VID[n]寄存器415-n,其中n可表示正整数。举例来说,单个存储器装置可包含九(9)个逻辑装置,因此表可包含用于Local_VID[0]到Local_VID[8]的条目。每一Local_VID寄存器可包含用于解译虚拟地址(例如,虚拟地址305)的位的条目以确定逻辑地址是否与特定虚拟装置相关联。相应地,在一些实例中,Local_VID寄存器可以是Local_VID寄存器的向量。
如本文所描述,如果全局共享范围检查块315确定虚拟地址305与相应存储器装置相关联,则虚拟地址325和PASID 320可发射到局部转译高速缓存330。局部转译高速缓存330可基于虚拟地址325和/或PASID 320确定与存储器装置相关联的装置物理地址335。举例来说,PASID 320可识别与虚拟地址305相关联的进程,且局部转译高速缓存330可基于虚拟地址325和PASID 320两者确定装置物理地址335。即,局部转译高速缓存330可确定与同虚拟地址325相关联的进程相关联的装置物理地址335。在其它实例中,虚拟地址325可不与PASID 320相关联(例如,PASID位可不识别相关联进程),且局部转译高速缓存330可仅基于虚拟地址325确定装置物理地址335。可基于局部转译高速缓存330确定装置物理地址来存取存储器装置(例如,存储器装置的物理地址)。
在其它实例中,如果全局共享范围检查块315确定虚拟地址305不与用于MMU的相应存储器装置相关联,则虚拟地址340可发射到可缩放性接口350。在一些实例中,指示虚拟地址与远程装置相关联的信号345还可发射到可缩放性接口350。远程装置可指代位于相同或不同域内的任何存储器装置,其不同于与由框图300表示的MMU相关联的存储器装置。
在接收虚拟地址340和信号345后,可缩放性接口350可生成全局唯一范围ID,所述全局唯一范围ID可用于存取相关联存储器装置的适当外出结构,以及存取接收存储器装置(例如,远程装置)的适当进入结构。如图4中所展示,GU_Range_ID(例如,GURngID)可与Local_VID[0]寄存器415-a的位37:32相关联。在生成GURngID后,可缩放性接口350可将GURngID和虚拟地址发射到远程装置(例如,经由信号路径355)。此外,可缩放性接口350可将远程信号360发射到远程存储器装置,所述远程存储器装置可接收并处理虚拟地址,如本文参看图3所描述。利用跨多个存储器系统的全局地址空间可为整个系统提供灵活性,以及针对存储器存取请求提供较大可存取地址空间。此外,利用装置识别符可允许在每装置基础上执行地址转译,因此减小任何一个CXL装置可能需要执行的地址转译的量。
图5展示根据如本文所公开的实例的支持共享虚拟地址空间的存储器装置520的框图500。存储器装置520可以是如参考图1到4所描述的存储器装置的方面的实例。存储器装置520或其各种组件可以是用于执行如本文所描述的共享虚拟地址空间的各个方面的构件的实例。举例来说,存储器装置520可包含接收组件525、确定组件530、地址转译组件535、发射组件540、比较组件545、位识别组件550、生成组件555,或其任何组合。这些组件中的每一个可直接或间接地(例如经由一或多个总线)彼此通信。
接收组件525可被配置为或以其它方式支持用于在第一存储器装置处接收与虚拟地址空间的虚拟地址相关联的存储器请求的构件。在一些实例中,接收组件525可被配置为或以其它方式支持用于从与第一存储器装置耦合的主机系统接收与对应于装置识别符的虚拟地址的范围相关联的参数的构件,其中确定虚拟地址与第一存储器装置相关联是至少部分地基于接收所述参数。
在一些实例中,接收组件525可被配置为或以其它方式支持用于从与第一存储器装置耦合的主机系统接收包含与用于共享地址空间的第一存储器装置相关联的装置识别符和与对应于装置识别符的虚拟地址的范围相关联的参数的信令的构件,其中所述装置识别符和所述参数存储到用于确定虚拟地址是否与第一存储器装置相关联的表。在一些实例中,接收组件525可被配置为或以其它方式支持用于在第一存储器装置处接收与虚拟地址空间的虚拟地址相关联的存储器请求的构件。
确定组件530可被配置为或以其它方式支持用于至少部分地基于虚拟地址确定所述虚拟地址在虚拟地址空间的共享地址空间内的构件。在一些实例中,确定组件530可被配置为或以其它方式支持用于至少部分地基于虚拟地址、与用于共享地址空间的第一存储器装置相关联的装置识别符,以及与对应于存储器请求的装置识别符的虚拟地址的范围相关联的参数确定所述虚拟地址与第一存储器装置相关联的构件。
在一些实例中,确定组件530可被配置为或以其它方式支持用于确定第一值大于或等于第二值的构件。在一些实例中,确定组件530可被配置为或以其它方式支持用于确定第一值小于或等于第三值的构件,其中至少部分地基于第一值大于或等于第二值且第一值小于或等于第三值,所述虚拟地址在虚拟地址空间的共享地址空间内。
在一些实例中,确定组件530可被配置为或以其它方式支持用于至少部分地基于虚拟地址确定所述虚拟地址在虚拟地址空间的共享地址空间内的构件。在一些实例中,确定组件530可被配置为或以其它方式支持用于至少部分地基于虚拟地址、与用于共享地址空间的第一存储器装置相关联的装置识别符,以及与对应于存储器请求的装置识别符的虚拟地址的范围相关联的参数确定所述虚拟地址不与第一存储器装置相关联的构件。
地址转译组件535可被配置为或以其它方式支持用于至少部分地基于确定虚拟地址在共享地址空间内且与第一存储器装置相关联而将虚拟地址转译为与第一存储器装置相关联的物理地址的构件。
在一些实例中,发射组件540可被配置为或以其它方式支持用于至少部分地基于确定虚拟地址不与第一存储器装置相关联而将虚拟地址发射到第二存储器装置的构件。发射组件540可被配置为或以其它方式支持用于至少部分地基于确定虚拟地址在共享地址空间内且虚拟地址与第二存储器装置相关联而根据与第二存储器装置相关联的装置识别符将虚拟地址发射到第二存储器装置的构件。在一些实例中,发射组件540可被配置为或以其它方式支持用于至少部分地基于生成识别符而将所述识别符及虚拟地址发射到第二存储器装置的构件。
在一些实例中,为了支持确定虚拟地址在虚拟地址空间的共享地址空间内,比较组件545可被配置为或以其它方式支持用于将由虚拟地址中包含的位的第一子集表示的第一值与第二值进行比较的构件。在一些实例中,为了支持确定虚拟地址在虚拟地址空间的共享地址空间内,比较组件545可被配置为或以其它方式支持用于至少部分地基于将第一值与第二值进行比较而将由虚拟地址中包含的位的第一子集表示的第一值与第三值进行比较的构件。
在一些实例中,为了支持确定虚拟地址与第一存储器装置相关联,比较组件545可被配置为或以其它方式支持用于至少部分地基于识别位的第二子集而将由位的第二子集表示的第二值与装置识别符进行比较的构件,其中将虚拟地址转译为物理地址是至少部分地基于第二值与同第一存储器装置相关联的装置识别符匹配。在一些实例中,为了支持确定虚拟地址与第一存储器装置相关联,比较组件545可被配置为或以其它方式支持用于至少部分地基于识别位的相应子集而将由位的相应子集表示的值与所述多个装置识别符中的相应装置识别符进行比较的构件,其中将虚拟地址转译为物理地址是至少部分地基于所述值中的所述一个与所述相应装置识别符匹配。
在一些实例中,为了支持确定虚拟地址不与第一存储器装置相关联,比较组件545可被配置为或以其它方式支持用于至少部分地基于识别位的子集而将由位的子集表示的值与装置识别符进行比较的构件,其中将虚拟地址发射到第二存储器装置是至少部分地基于所述值不同于与第一存储器装置相关联的装置识别符。
在一些实例中,为了支持确定虚拟地址与第一存储器装置相关联,位识别组件550可被配置为或以其它方式支持用于至少部分地基于与虚拟地址的范围相关联的参数识别虚拟地址中包含的位的第二子集的构件。在一些实例中,为了支持确定虚拟地址与第一存储器装置相关联,位识别组件550可被配置为或以其它方式支持用于至少部分地基于所述多个参数中的相应参数针对所述多个参数中的每一个识别虚拟地址的位的相应子集的构件。
在一些实例中,为了支持确定虚拟地址不与第一存储器装置相关联,位识别组件550可被配置为或以其它方式支持用于至少部分地基于与对应于存储器请求的装置识别符的虚拟地址的范围相关联的参数识别虚拟地址中包含的位的子集的构件。
在一些实例中,生成组件555可被配置为或以其它方式支持用于至少部分地基于确定虚拟地址不与第一存储器装置相关联而生成与虚拟地址空间的共享地址空间相关联的识别符的构件。在一些实例中,生成组件555可被配置为或以其它方式支持用于至少部分地基于确定虚拟地址不与第一存储器装置相关联而生成用于发射到第二存储器装置的第二识别符的构件,其中所述第二识别符与全局虚拟地址相关联,其中发射虚拟地址包括发射第二识别符。
在一些实例中,虚拟地址包含指示位的第二子集中包含的第一位的位置的位的第三子集。在一些实例中,识别位的第二子集是至少部分地基于由位的第三子集表示的第三值。在一些实例中,将虚拟地址转译为物理地址是至少部分地基于与虚拟地址空间的共享地址空间相关联的一或多个进程。
在一些实例中,第一存储器装置位于第一存储器系统内,且第二存储器装置位于不同于第一存储器系统的第二存储器系统内。在一些实例中,第一存储器装置和第二存储器装置各自位于同一存储器系统内。在一些实例中,第一存储器装置和第二存储器装置与虚拟地址空间的共享地址空间的相应范围相关联。
图6展示根据如本文所公开的实例的流程图,其示出支持共享虚拟地址空间的方法600。方法600的操作可由如本文所描述的存储器装置或其组件实施。举例来说,可由如参考图1到5所描述的存储器装置执行方法600的操作。在一些实例中,存储器装置可执行指令集以控制装置的功能元件来执行所描述的功能。另外或替代地,存储器装置可使用专用硬件执行所描述的功能的方面。
在605处,所述方法可包含在第一存储器装置处接收与虚拟地址空间的虚拟地址相关联的存储器请求。可根据如本文所公开的实例执行605的操作。在一些实例中,605的操作的方面可由参考图5所描述的接收组件525执行。
在610处,所述方法可包含至少部分地基于虚拟地址确定所述虚拟地址在虚拟地址空间的共享地址空间内。可根据如本文所公开的实例执行610的操作。在一些实例中,610的操作的方面可由参考图5所描述的确定组件530执行。
在615处,所述方法可包含至少部分地基于虚拟地址、与用于共享地址空间的第一存储器装置相关联的装置识别符,以及与对应于存储器请求的装置识别符的虚拟地址的范围相关联的参数确定所述虚拟地址与第一存储器装置相关联。可根据如本文所公开的实例执行615的操作。在一些实例中,615的操作的方面可由参考图5所描述的确定组件530执行。
在620处,所述方法可包含至少部分地基于确定虚拟地址在共享地址空间内且与第一存储器装置相关联而将虚拟地址转译为与第一存储器装置相关联的物理地址。可根据如本文所公开的实例执行620的操作。在一些实例中,620的操作的方面可由如参考图5所描述的地址转译组件535来执行。
在一些实例中,如本文中所描述的设备可执行一或多种方法,例如方法600。所述设备可包含用于以下操作的特征、电路系统、逻辑、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读介质):在第一存储器装置处接收与虚拟地址空间的虚拟地址相关联的存储器请求;至少部分地基于虚拟地址确定所述虚拟地址在虚拟地址空间的共享地址空间内;至少部分地基于虚拟地址、与用于共享地址空间的第一存储器装置相关联的装置识别符,以及与对应于存储器请求的装置识别符的虚拟地址的范围相关联的参数确定所述虚拟地址与第一存储器装置相关联;以及至少部分地基于确定所述虚拟地址在共享地址空间内且与第一存储器装置相关联而将虚拟地址转译为与第一存储器装置相关联的物理地址。
本文中所描述的方法600和设备的一些实例可进一步包含用于以下操作的操作、特征、电路系统、逻辑、构件或指令:从与第一存储器装置耦合的主机系统接收与对应于装置识别符的虚拟地址的范围相关联的参数,其中确定虚拟地址可与第一存储器装置相关联可至少部分地基于接收所述参数。
在本文中所描述的方法600和设备的一些实例中,确定虚拟地址可在虚拟地址空间的共享地址空间内可包含用于以下操作的操作、特征、电路系统、逻辑、构件或指令:将由可包含在虚拟地址中的位的第一子集表示的第一值与第二值进行比较,以及至少部分地基于将第一值与第二值进行比较而将由可包含在虚拟地址中的位的第一子集表示的第一值与第三值进行比较。
本文中所描述的方法600和设备的一些实例可进一步包含用于以下操作的操作、特征、电路系统、逻辑、构件或指令:确定第一值可大于或等于第二值,以及确定第一值可小于或等于第三值,其中至少部分地基于第一值大于或等于第二值且第一值小于或等于第三值,所述虚拟地址可在虚拟地址空间的共享地址空间内。
在本文中所描述的方法600和设备的一些实例中,确定虚拟地址可与第一存储器装置相关联可包含用于以下操作的操作、特征、电路系统、逻辑、构件或指令:至少部分地基于与虚拟地址的范围相关联的参数识别可包含在虚拟地址中的位的第二子集,以及至少部分地基于识别位的第二子集将由位的第二子集表示的第二值与装置识别符进行比较,其中将虚拟地址转译为物理地址可至少部分地基于第二值与同第一存储器装置相关联的装置识别符匹配。
在本文中所描述的方法600和设备的一些实例中,虚拟地址包含指示位的第二子集中包含的第一位的位置的位的第三子集,且识别位的第二子集可至少部分地基于由位的第三子集表示的第三值。
在本文中所描述的方法600和设备的一些实例中,确定虚拟地址可与第一存储器装置相关联可包含用于以下操作的操作、特征、电路系统、逻辑、构件或指令:至少部分地基于所述多个参数中的相应参数针对所述多个参数中的每一个识别虚拟地址的位的相应子集,以及至少部分地基于识别位的相应子集而将由位的相应子集表示的值与所述多个装置识别符中的相应装置识别符进行比较,其中将虚拟地址转译为物理地址可至少部分地基于所述值中的所述一个与所述相应装置识别符匹配。
本文中所描述的方法600和设备的一些实例可进一步包含用于以下操作的操作、特征、电路系统、逻辑、构件或指令:将虚拟地址转译为物理地址可至少部分地基于与虚拟地址空间的共享地址空间相关联的一或多个进程。
本文中所描述的方法600和设备的一些实例可进一步包含用于以下操作的操作、特征、电路系统、逻辑、构件或指令:从与第一存储器装置耦合的主机系统接收包含与用于共享地址空间的第一存储器装置相关联的装置识别符和与对应于装置识别符的虚拟地址的范围相关联的参数的信令,其中所述装置识别符和所述参数可存储到用于确定虚拟地址是否可与第一存储器装置相关联的表。
本文中所描述的方法600和设备的一些实例可进一步包含用于以下操作的操作、特征、电路系统、逻辑、构件或指令:至少部分地基于确定虚拟地址可不与第一存储器装置相关联而将虚拟地址发射到第二存储器装置。
本文中所描述的方法600和设备的一些实例可进一步包含用于以下操作的操作、特征、电路系统、逻辑、构件或指令:至少部分地基于确定虚拟地址可不与第一存储器装置相关联而生成与虚拟地址空间的共享地址空间相关联的识别符,以及至少部分地基于生成所述识别符而将所述识别符及所述虚拟地址发射到第二存储器装置。
图7展示根据如本文所公开的实例的流程图,其示出支持共享虚拟地址空间的方法700。方法700的操作可由如本文所描述的存储器装置或其组件实施。举例来说,可由如参考图1到5所描述的存储器装置执行方法700的操作。在一些实例中,存储器装置可执行指令集以控制装置的功能元件来执行所描述的功能。另外或替代地,存储器装置可使用专用硬件执行所描述的功能的方面。
在705处,所述方法可包含在第一存储器装置处接收与虚拟地址空间的虚拟地址相关联的存储器请求。可根据如本文所公开的实例执行705的操作。在一些实例中,705的操作的方面可由参考图5所描述的接收组件525执行。
在710处,所述方法可包含至少部分地基于虚拟地址确定所述虚拟地址在虚拟地址空间的共享地址空间内。可根据如本文所公开的实例执行710的操作。在一些实例中,710的操作的方面可由参考图5所描述的确定组件530执行。
在715处,所述方法可包含至少部分地基于虚拟地址、与用于共享地址空间的第一存储器装置相关联的装置识别符,以及与对应于存储器请求的装置识别符的虚拟地址的范围相关联的参数确定所述虚拟地址不与第一存储器装置相关联。可根据如本文所公开的实例执行715的操作。在一些实例中,715的操作的方面可由参考图5所描述的确定组件530执行。
在720处,所述方法可包含至少部分地基于确定虚拟地址在共享地址空间内且虚拟地址与第二存储器装置相关联,根据与第二存储器装置相关联的装置识别符将虚拟地址发射到第二存储器装置。可根据如本文所公开的实例执行720的操作。在一些实例中,720的操作的方面可由参考图5所描述的发射组件540执行。
在一些实例中,如本文中所描述的设备可执行一或多种方法,例如方法700。所述设备可包含用于以下操作的特征、电路系统、逻辑、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读介质):在第一存储器装置处接收与虚拟地址空间的虚拟地址相关联的存储器请求;至少部分地基于虚拟地址确定所述虚拟地址在虚拟地址空间的共享地址空间内;至少部分地基于虚拟地址、与用于共享地址空间的第一存储器装置相关联的装置识别符,以及与对应于存储器请求的装置识别符的虚拟地址的范围相关联的参数确定所述虚拟地址不与第一存储器装置相关联;以及至少部分地基于确定虚拟地址在共享地址空间内且虚拟地址与第二存储器装置相关联而根据与第二存储器装置相关联的装置识别符将虚拟地址发射到第二存储器装置。
在本文中所描述的方法700和设备的一些实例中,所述方法可包含至少部分地基于确定虚拟地址不与第一存储器装置相关联而生成供发射到第二存储器装置的第二识别符,其中所述第二识别符与全局虚拟地址相关联,其中发射所述虚拟地址包括发射所述第二识别符。
在本文中所描述的方法700和设备的一些实例中,确定虚拟地址可不与第一存储器装置相关联可包含用于以下操作的操作、特征、电路系统、逻辑、构件或指令:至少部分地基于与对应于存储器请求的装置识别符的虚拟地址的范围相关联的参数识别可包含在虚拟地址中的位的子集,以及至少部分地基于识别位的子集将由位的子集表示的值与装置识别符进行比较,其中将虚拟地址发射到第二存储器装置可至少部分地基于所述值不同于与第一存储器装置相关联的装置识别符。
在本文中所描述的方法700和设备的一些实例中,第一存储器装置可位于第一存储器系统内,且第二存储器装置可位于可不同于第一存储器系统的第二存储器系统内。
在本文中所描述的方法700和设备的一些实例中,第一存储器装置和第二存储器装置可各自位于同一存储器系统内。
在本文中所描述的方法700和设备的一些实例中,第一存储器装置和第二存储器装置可与虚拟地址空间的共享地址空间的相应范围相关联。
应注意,上文描述的方法描述可能的实施方案,且操作和步骤可以重新布置或以其它方式加以修改,且其它实施方案是可能的。此外,可组合来自所述方法中的两个或两个以上的部分。
可使用多种不同技术和技艺中的任一个来表示本文中所描述的信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。一些图式可将信号示出为单个信号;然而,所述信号可表示信号的总线,其中所述总线可具有多种位宽度。
术语“电子连通”、“导电接触”、“连接”和“耦合”可指代支持信号在组件之间流动的组件之间的关系。如果组件之间存在可在任何时间支持组件之间的信号流动的任何导电路径,则认为所述组件彼此电子连通(或导电接触或连接或耦合)。在任何给定时间,基于包含所连接组件的装置的操作,彼此成电子连通(或导电接触或连接或耦合)的组件之间的导电路径可以是开路或闭路。所连接组件之间的导电路径可以是组件之间的直接导电路径,或所连接组件之间的导电路径可以是间接导电路径,其可以包含例如开关、晶体管或其它组件等中间组件。在一些实例中,可例如使用例如开关或晶体管等一或多个中间组件将所连接组件之间的信号流中断一段时间。
术语“耦合”指代从组件之间的开路关系移动到组件之间的闭路关系的条件,在开路关系中,信号当前不能够经由导电路径在组件之间传送,在闭路关系中,信号能够经由导电路径在组件之间传送。如果例如控制器等组件将其它组件耦合在一起,则所述组件起始允许信号经由先前不准许信号流动的导电路径在所述其它组件之间流动的改变。
术语“隔离”是指其中信号当前不能够在组件之间流动的组件之间的关系。如果组件之间存在开路,则组件彼此分隔。举例来说,由定位在两个组件之间的开关间隔开的所述组件在开关断开的情况下彼此隔离。如果控制器隔离两个组件,则控制器实现以下改变:阻止信号使用先前准许信号流动的导电路径在组件之间流动。
术语“如果”、“当…时”、“基于”,或“至少部分地基于”可互换使用。在一些实例中,如果术语“如果”、“当……时”、“基于”,或“至少部分地基于”用于描述条件性动作、条件性进程,或进程的部分之间的连接,则所述术语可互换。
术语“响应于”可指一个条件或动作至少部分地(如果不完全地)作为先前条件或动作的结果而发生。举例来说,可执行第一条件或动作,并且第二条件或动作可至少部分地作为先前条件或动作发生的结果(不管是直接在第一条件或动作之后还是在第一条件或动作之后的一或多个其它中间条件或动作发生之后)而发生。
另外,术语“直接地响应于”或“直接响应于”可指一个条件或动作作为先前条件或动作的直接结果而发生。在一些实例中,可执行第一条件或动作,并且第二条件或动作可作为先前条件或动作发生的结果而直接发生,与是否发生其它条件或动作无关。在一些实例中,可执行第一条件或动作,并且第二条件或动作可作为先前条件或动作发生的结果而直接发生,使得在较早条件或动作与第二条件或动作之间不发生其它中间条件或动作,或在较早条件或动作与第二条件或动作之间发生有限数量的一或多个中间步骤或动作。除非另外规定,否则本文中描述为“基于”、“至少部分地基于”或“响应于”某一其它步骤、动作、事件或条件执行的任何条件或动作可另外或替代地(例如,在替代实例中)“直接响应于”或“直接地响应于”此其它条件或动作而执行。
本文中论述的装置(包含存储器阵列)可形成于例如硅、锗、硅-锗合金、砷化镓、氮化镓等半导体衬底上。在一些实例中,所述衬底是半导体晶片。在一些其它实例中,衬底可以是绝缘体上硅(silicon-on-insulator,SOI)衬底,例如玻璃上硅(silicon-on-glass,SOG)或蓝宝石上硅(silicon-on-sapphire,SOP),或另一衬底上的半导体材料的外延层。可以通过使用包含(但不限于)磷、硼或砷的各种化学物质的掺杂来控制衬底或衬底的子区的导电性。可在衬底的初始形成或生长期间,通过离子植入或通过任何其它掺杂手段执行掺杂。
本文所论述的开关组件或晶体管可表示场效应晶体管(FET),且包括包含源极、漏极和栅极的三端子装置。端子可经由例如金属等导电材料连接到其它电子元件。源极和漏极可为导电的,且可包括重度掺杂(例如简并)的半导体区。源极与漏极可通过轻度掺杂的半导体区或沟道分隔开。如果沟道是n型(即,多数载子为电子),则FET可称为n型FET。如果沟道为p型(即,多数载子为电穴),则FET可被称为p型FET。沟道可由绝缘栅极氧化物封端。可通过将电压施加到栅极来控制沟道电导率。举例来说,分别将正电压或负电压施加到n型FET或p型FET可使沟道变为导电的。如果大于或等于晶体管的阈值电压的电压施加到晶体管栅极,则晶体管可“接通”或“激活”。如果小于晶体管的阈值电压的电压施加到晶体管栅极,则晶体管可“断开”或“停用”。
本文中结合随附图式阐述的描述内容描述了实例配置,且并不表示可实施的或在权利要求书的范围内的所有实例。本文中所使用的术语“示例性”是指“充当实例、例子或说明”,且不“优选于”或“优于”其它实例。详细描述包含具体细节以提供对所描述技术的理解。然而,可在没有这些特定细节的情况下实践这些技术。在一些例子中,以框图的形式展示众所周知的结构和装置以免混淆所描述的实例的概念。
在附图中,类似组件或特征可具有相同参考标号。此外,可通过在参考标号之后跟着短横及在类似组件之间进行区分的第二标号来区分相同类型的各个组件。如果在说明书中仅使用第一参考标号,则描述内容适用于具有相同的第一参考标号的类似组件中的任一个,而无关于第二参考标号。
本文中所描述的功能可以用硬件、由处理器执行的软件、固件或其任何组合实施。如果在由处理器执行的软件中实施,则可将功能作为一或多个指令或代码存储于计算机可读介质上或经由计算机可读介质发射。其它实例和实施方案处于本公开和所附权利要求书的范围内。举例来说,归因于软件的性质,上文所描述的功能可使用由处理器、硬件、固件、硬连线或这些中的任一个的组合执行的软件实施。实施功能的特征也可在物理上位于各个位置处,包含经分布以使得功能的各部分在不同物理位置处实施。
举例来说,结合本文的公开内容描述的各种说明性块和组件可利用通用处理器、DSP、ASIC、FPGA或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件,或经设计以执行本文中所描述的功能的其任何组合实施或执行。通用处理器可为微处理器,但在替代方案中,处理器可为任何处理器、控制器、微控制器或状态机。处理器可被实施为计算装置的组合(例如,DSP与微处理器的组合、多个微处理器的组合、一或多个微处理器结合DSP核心,或任何其它此类配置)。
如本文中所使用,包含在权利要求书中,项目的列表(例如,以例如“中的至少一个”或“中的一或多个”等短语开始的项目的列表)中所使用的“或”指示包含性列表,使得(例如)A、B或C中的至少一个的列表意指A或B或C,或者AB或AC或BC,或者ABC(即,A和B和C)。并且,如本文所使用,短语“基于”不应被理解为参考封闭条件集。举例来说,在不脱离本公开的范围的情况下,描述为“基于条件A”的示例性步骤可基于条件A和条件B两者。换句话说,如本文所用,短语“基于”应以与短语“至少部分地基于”相同的方式解释。
计算机可读介质包含非暂时性计算机存储介质和通信介质两者,通信介质包含促进计算机程序从一处传递到另一处的任何介质。非暂时性存储介质可为可由通用或专用计算机存取的任何可用介质。借助于实例而非限制,非暂时性计算机可读介质可包括RAM、ROM、电可擦除可编程只读存储器(EEPROM)、光盘(CD)ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于携载或存储呈指令或数据结构形式的所要程序代码构件且可由通用或专用计算机或者通用或专用处理器存取的任何其它非暂时性介质。并且,适当地将任何连接称作计算机可读介质。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电及微波等无线技术从网站、服务器或其它远程源发射软件,则所述同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电及微波等无线技术包含于介质的定义中。如本文中所使用,磁盘及光盘包含CD、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘及蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。上述的组合也应包含在计算机可读介质的范围内。
提供本文中的描述以使所属领域的技术人员能够制造或使用本公开。对本公开的各种修改将是所属领域的技术人员显而易见的,且本文所定义的一般原理可应用于其它变型,而不脱离本公开的范围。因此,本公开不限于本文中所描述的实例和设计,而是应被赋予与本文中所公开的原理和新颖特征一致的最广范围。

Claims (35)

1.一种方法,其包括:
在第一存储器装置处接收与虚拟地址空间的虚拟地址相关联的存储器请求;
至少部分地基于所述虚拟地址确定所述虚拟地址在所述虚拟地址空间的共享地址空间内;
至少部分地基于所述虚拟地址、与用于所述共享地址空间的所述第一存储器装置相关联的装置识别符,以及与对应于所述存储器请求的装置识别符的所述虚拟地址的范围相关联的参数确定所述虚拟地址与所述第一存储器装置相关联;以及
至少部分地基于确定所述虚拟地址在所述共享地址空间内且与所述第一存储器装置相关联而将所述虚拟地址转译为与所述第一存储器装置相关联的物理地址。
2.根据权利要求1所述的方法,其进一步包括:
从与所述第一存储器装置耦合的主机系统接收与对应于所述装置识别符的所述虚拟地址的所述范围相关联的所述参数,其中确定所述虚拟地址与所述第一存储器装置相关联是至少部分地基于接收所述参数。
3.根据权利要求1所述的方法,其中确定所述虚拟地址在所述虚拟地址空间的所述共享地址空间内包括:
将由所述虚拟地址中包含的位的第一子集表示的第一值与第二值进行比较;以及
至少部分地基于将所述第一值与所述第二值进行比较,将由所述虚拟地址中包含的位的所述第一子集表示的所述第一值与第三值进行比较。
4.根据权利要求3所述的方法,其进一步包括:
确定所述第一值大于或等于所述第二值;以及
确定所述第一值小于或等于所述第三值,其中至少部分地基于所述第一值大于或等于所述第二值且所述第一值小于或等于所述第三值,所述虚拟地址在所述虚拟地址空间的所述共享地址空间内。
5.根据权利要求1所述的方法,其中确定所述虚拟地址与所述第一存储器装置相关联包括:
至少部分地基于与所述虚拟地址的所述范围相关联的所述参数识别所述虚拟地址中包含的位的第二子集;以及
至少部分地基于识别位的所述第二子集,将由位的所述第二子集表示的第二值与所述装置识别符进行比较,其中将所述虚拟地址转译为所述物理地址是至少部分地基于所述第二值与同所述第一存储器装置相关联的所述装置识别符匹配。
6.根据权利要求5所述的方法,其中所述虚拟地址包括指示位的所述第二子集中包含的第一位的位置的位的第三子集,其中识别位的所述第二子集是至少部分地基于由位的所述第三子集表示的第三值。
7.根据权利要求1所述的方法,其中所述装置识别符包括与多个共享地址空间相关联的多个装置识别符,且所述参数包括与所述多个共享地址空间的相应范围相关联的多个参数,且其中确定所述虚拟地址与所述第一存储器装置相关联包括:
至少部分地基于所述多个参数中的相应参数,针对所述多个参数中的每一个识别所述虚拟地址的位的相应子集;以及
至少部分地基于识别位的所述相应子集而将由位的所述相应子集表示的值与所述多个装置识别符中的相应装置识别符进行比较,其中将所述虚拟地址转译为所述物理地址是至少部分地基于所述值中的所述一个与所述相应装置识别符匹配。
8.根据权利要求1所述的方法,其中将所述虚拟地址转译为所述物理地址是至少部分地基于与所述虚拟地址空间的所述共享地址空间相关联的一或多个进程。
9.根据权利要求1所述的方法,其进一步包括:
从与所述第一存储器装置耦合的主机系统接收包括与用于所述共享地址空间的所述第一存储器装置相关联的所述装置识别符和与对应于所述装置识别符的所述虚拟地址的所述范围相关联的所述参数的信令,其中所述装置识别符和所述参数存储到用于确定虚拟地址是否与所述第一存储器装置相关联的表。
10.根据权利要求1所述的方法,其进一步包括:
至少部分地基于确定所述虚拟地址不与所述第一存储器装置相关联而将所述虚拟地址发射到第二存储器装置。
11.根据权利要求10所述的方法,其进一步包括:
至少部分地基于确定所述虚拟地址不与所述第一存储器装置相关联而生成与所述虚拟地址空间的所述共享地址空间相关联的识别符;以及
至少部分地基于生成所述识别符,将所述识别符及所述虚拟地址发射到所述第二存储器装置。
12.一种方法,其包括:
在第一存储器装置处接收与虚拟地址空间的虚拟地址相关联的存储器请求;
至少部分地基于所述虚拟地址确定所述虚拟地址在所述虚拟地址空间的共享地址空间内;
至少部分地基于所述虚拟地址、与用于所述共享地址空间的所述第一存储器装置相关联的装置识别符,以及与对应于所述存储器请求的装置识别符的所述虚拟地址的范围相关联的参数确定所述虚拟地址不与所述第一存储器装置相关联;以及
至少部分地基于确定所述虚拟地址在所述共享地址空间内且所述虚拟地址与第二存储器装置相关联,根据与所述第二存储器装置相关联的装置识别符将所述虚拟地址发射到所述第二存储器装置。
13.根据权利要求12所述的方法,其进一步包括:
至少部分地基于确定所述虚拟地址不与所述第一存储器装置相关联而生成供发射到所述第二存储器装置的第二识别符,其中所述第二识别符与供发射到所述第二存储器装置的全局虚拟地址相关联,其中发射所述虚拟地址包括发射所述第二识别符。
14.根据权利要求12所述的方法,其中确定所述虚拟地址不与所述第一存储器装置相关联包括:
至少部分地基于与对应于所述存储器请求的所述装置识别符的所述虚拟地址的所述范围相关联的所述参数识别所述虚拟地址中包含的位的子集;以及
至少部分地基于识别位的所述子集,将由位的所述子集表示的值与所述装置识别符进行比较,其中将所述虚拟地址发射到所述第二存储器装置是至少部分地基于所述值不同于与所述第一存储器装置相关联的所述装置识别符。
15.根据权利要求12所述的方法,其中所述第一存储器装置位于第一存储器系统内,且所述第二存储器装置位于不同于所述第一存储器系统的第二存储器系统内。
16.根据权利要求12所述的方法,其中所述第一存储器装置和所述第二存储器装置各自位于同一存储器系统内。
17.根据权利要求12所述的方法,其中所述第一存储器装置和所述第二存储器装置与所述虚拟地址空间的所述共享地址空间的相应范围相关联。
18.一种第一存储器装置,其包括:
存储器介质;以及
控制器,其与所述存储器介质耦合,其中所述控制器被配置成致使所述第一存储器装置:
接收与虚拟地址空间的虚拟地址相关联的存储器请求;
至少部分地基于所述虚拟地址确定所述虚拟地址在所述虚拟地址空间的共享地址空间内;
至少部分地基于所述虚拟地址、与用于所述共享地址空间的所述第一存储器装置相关联的装置识别符,以及与对应于所述存储器请求的装置识别符的所述虚拟地址的范围相关联的参数确定所述虚拟地址与所述第一存储器装置相关联;以及
至少部分地基于确定所述虚拟地址在所述共享地址空间内且所述虚拟地址与所述第一存储器装置相关联而将所述虚拟地址转译为与所述存储器介质相关联的物理地址。
19.根据权利要求18所述的第一存储器装置,其中所述控制器进一步被配置成致使所述第一存储器装置:
从与所述第一存储器装置耦合的主机系统接收与对应于所述装置识别符的所述虚拟地址的所述范围相关联的所述参数,其中确定所述虚拟地址与所述第一存储器装置相关联是至少部分地基于接收所述参数。
20.根据权利要求18所述的第一存储器装置,其中为了确定所述虚拟地址在所述虚拟地址空间的所述共享地址空间内,所述控制器被配置成致使所述第一存储器装置:
将由所述虚拟地址中包含的位的第一子集表示的第一值与第二值进行比较;以及
至少部分地基于将所述第一值与所述第二值进行比较,将由所述虚拟地址中包含的位的所述第一子集表示的所述第一值与第三值进行比较。
21.根据权利要求20所述的第一存储器装置,其中所述控制器进一步被配置成致使所述第一存储器装置:
确定所述第一值大于或等于所述第二值;以及
确定所述第一值小于或等于所述第三值,其中至少部分地基于所述第一值大于或等于所述第二值且所述第一值小于或等于所述第三值,所述虚拟地址在所述虚拟地址空间的所述共享地址空间内。
22.根据权利要求18所述的第一存储器装置,其中,为了确定所述虚拟地址与所述第一存储器装置相关联,所述控制器被配置成致使所述第一存储器装置:
通过以下操作确定所述虚拟地址与所述第一存储器装置相关联:
至少部分地基于与对应于所述存储器请求的所述装置识别符的所述虚拟地址的所述范围相关联的所述参数识别所述虚拟地址中包含的位的第二子集;以及
至少部分地基于识别位的所述第二子集,将由位的所述第二子集表示的第二值与所述装置识别符进行比较,其中将所述虚拟地址转译为所述物理地址是至少部分地基于所述第二值与同所述第一存储器装置相关联的所述装置识别符匹配。
23.根据权利要求22所述的第一存储器装置,其中所述虚拟地址包括指示位的所述第二子集中包含的第一位的位置的位的第三子集,其中识别位的所述第二子集是至少部分地基于由位的所述第三子集表示的第三值。
24.根据权利要求22所述的第一存储器装置,其中所述装置识别符包括与多个共享地址空间相关联的多个装置识别符,且所述参数包括与所述多个共享地址空间的相应范围相关联的多个参数,且其中,为了确定所述虚拟地址与所述第一存储器装置相关联,所述控制器被配置成致使所述第一存储器装置:
至少部分地基于所述多个参数中的相应参数,针对所述多个参数中的每一个识别所述虚拟地址的位的相应子集;以及
至少部分地基于识别位的所述相应子集而将由位的所述相应子集表示的值与所述多个装置识别符中的相应装置识别符进行比较,其中将所述虚拟地址转译为所述物理地址是至少部分地基于所述值中的所述一个与所述相应装置识别符匹配。
25.根据权利要求18所述的第一存储器装置,其中所述控制器进一步被配置成致使所述第一存储器装置:
至少部分地基于与所述虚拟地址空间的所述共享地址空间相关联的一或多个进程,将所述虚拟地址转译为所述物理地址。
26.根据权利要求18所述的第一存储器装置,其中所述控制器进一步被配置成致使所述第一存储器装置:
从与所述第一存储器装置耦合的主机系统接收包括与用于所述共享地址空间的所述第一存储器装置相关联的所述装置识别符和与对应于所述装置识别符的所述虚拟地址的所述范围相关联的所述参数的信令,其中所述装置识别符和所述参数存储到用于确定虚拟地址是否与所述第一存储器装置相关联的表。
27.根据权利要求18所述的第一存储器装置,其中所述控制器进一步被配置成致使所述第一存储器装置:
至少部分地基于确定所述虚拟地址不与所述第一存储器装置相关联而将所述虚拟地址发射到第二存储器装置。
28.根据权利要求27所述的第一存储器装置,其中所述控制器进一步被配置成致使所述第一存储器装置:
至少部分地基于确定所述虚拟地址不与所述第一存储器装置相关联而生成与所述虚拟地址空间的所述共享地址空间相关联的识别符;以及
至少部分地基于生成所述识别符,将所述识别符及所述虚拟地址发射到所述第二存储器装置。
29.一种第一存储器装置,其包括:
存储器介质;以及
控制器,其与所述存储器介质耦合,其中所述控制器被配置成致使所述第一存储器装置:
接收与虚拟地址空间的虚拟地址相关联的存储器请求;
至少部分地基于所述虚拟地址确定所述虚拟地址在所述虚拟地址空间的共享地址空间内;
至少部分地基于所述虚拟地址、与用于所述共享地址空间的所述第一存储器装置相关联的装置识别符,以及与对应于所述存储器请求的装置识别符的所述虚拟地址的范围相关联的参数确定所述虚拟地址不与所述第一存储器装置相关联;以及
至少部分地基于确定所述虚拟地址在所述虚拟地址空间的所述共享地址空间内且所述虚拟地址与第二存储器装置相关联,根据与所述第二存储器装置相关联的装置识别符将所述虚拟地址发射到所述第二存储器装置。
30.根据权利要求29所述的第一存储器装置,其中所述控制器进一步被配置成致使所述第一存储器装置:
至少部分地基于确定所述虚拟地址不与所述第一存储器装置相关联而生成供发射到所述第二存储器装置的第二识别符,其中所述第二识别符与全局虚拟地址相关联,其中发射所述虚拟地址包括发射所述第二识别符。
31.根据权利要求29所述的第一存储器装置,其中,为了确定所述虚拟地址不与所述第一存储器装置相关联,所述控制器被配置成致使所述第一存储器装置:
至少部分地基于与对应于所述存储器请求的所述装置识别符的所述虚拟地址的所述范围相关联的所述参数识别所述虚拟地址中包含的位的子集;以及
至少部分地基于识别位的所述子集,将由位的所述子集表示的值与所述装置识别符进行比较,其中将所述虚拟地址发射到所述第二存储器装置是至少部分地基于所述值不同于与所述第一存储器装置相关联的所述装置识别符。
32.根据权利要求29所述的第一存储器装置,其中所述第一存储器装置位于第一存储器系统内,且所述第二存储器装置位于不同于所述第一存储器系统的第二存储器系统内。
33.根据权利要求29所述的第一存储器装置,其中所述第一存储器装置和所述第二存储器装置各自位于同一存储器系统内。
34.根据权利要求29所述的第一存储器装置,其中所述第一存储器装置和所述第二存储器装置各自与所述虚拟地址空间的所述共享地址空间的相应范围相关联。
35.一种存储包括指令的代码的非暂时性计算机可读介质,所述指令在由第一存储器装置的处理器执行时致使所述第一存储器装置:
接收与虚拟地址空间的虚拟地址相关联的存储器请求;
至少部分地基于所述虚拟地址确定所述虚拟地址在所述虚拟地址空间的共享地址空间内;
至少部分地基于所述虚拟地址、与用于所述共享地址空间的所述第一存储器装置相关联的装置识别符,以及与对应于所述存储器请求的装置识别符的所述虚拟地址的范围相关联的参数确定所述虚拟地址与所述第一存储器装置相关联;以及
至少部分地基于确定所述虚拟地址在所述共享地址空间内且所述虚拟地址与所述第一存储器装置相关联而将所述虚拟地址转译为与所述第一存储器装置相关联的物理地址。
CN202280019753.XA 2021-03-12 2022-01-11 共享虚拟地址空间 Pending CN117063167A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163160609P 2021-03-12 2021-03-12
US63/160,609 2021-03-12
US17/647,580 US20220292027A1 (en) 2021-03-12 2022-01-10 Shared virtual address spaces
US17/647,580 2022-01-10
PCT/US2022/070142 WO2022192809A1 (en) 2021-03-12 2022-01-11 Shared virtual address spaces

Publications (1)

Publication Number Publication Date
CN117063167A true CN117063167A (zh) 2023-11-14

Family

ID=83194877

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280019753.XA Pending CN117063167A (zh) 2021-03-12 2022-01-11 共享虚拟地址空间

Country Status (3)

Country Link
US (1) US20220292027A1 (zh)
CN (1) CN117063167A (zh)
WO (1) WO2022192809A1 (zh)

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7836129B2 (en) * 2006-12-19 2010-11-16 International Business Machines Corporation Communication between host systems using a queuing system and shared memories
US7783858B2 (en) * 2007-01-20 2010-08-24 International Business Machines Corporation Reducing memory overhead of a page table in a dynamic logical partitioning environment
US8719547B2 (en) * 2009-09-18 2014-05-06 Intel Corporation Providing hardware support for shared virtual memory between local and remote physical memory
US8682639B2 (en) * 2010-09-21 2014-03-25 Texas Instruments Incorporated Dedicated memory window for emulation address
JP6273733B2 (ja) * 2013-09-20 2018-02-07 富士通株式会社 演算処理装置、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム
US9727451B2 (en) * 2014-03-28 2017-08-08 Fortinet, Inc. Virtualization in a multi-host environment
ES2747962T3 (es) * 2015-06-29 2020-03-12 Aicas Gmbh Gestión de memoria automática que usa una unidad de gestión de memoria
US20190265976A1 (en) * 2018-02-23 2019-08-29 Yuly Goryavskiy Additional Channel for Exchanging Useful Information
US10929060B2 (en) * 2018-07-17 2021-02-23 Arm Limited Data access request specifying enable vector
US10592431B2 (en) * 2018-08-13 2020-03-17 Hewlett Packard Enterprise Development Lp Independent shared and process virtual address translations
CN110851371B (zh) * 2018-08-20 2023-09-26 华为技术有限公司 报文处理方法及相关设备
US11893423B2 (en) * 2019-09-05 2024-02-06 Nvidia Corporation Techniques for configuring a processor to function as multiple, separate processors

Also Published As

Publication number Publication date
WO2022192809A1 (en) 2022-09-15
US20220292027A1 (en) 2022-09-15

Similar Documents

Publication Publication Date Title
US11537527B2 (en) Dynamic logical page sizes for memory devices
WO2022055707A1 (en) Data alignment for logical to physical table compression
US20240220162A1 (en) Integrated pivot table in a logical-to-physical mapping
CN115705887A (zh) 存储器操作完成标记
CN116897342A (zh) 存储器装置的偏压控制
US11755490B2 (en) Unmap operation techniques
CN114550789A (zh) 使用信令进行状态检查
US20220292026A1 (en) Virtual addresses for a memory system
US11995342B2 (en) Host initiated garbage collection
US12073113B2 (en) Direct logical-to-physical address mapping for sequential physical addresses
US20220292027A1 (en) Shared virtual address spaces
WO2022193120A1 (en) Logical-to-physical mapping compression techniques
WO2022193143A1 (en) Validity mapping techniques
CN114546895B (zh) 主机侧存储器地址管理
US12007897B2 (en) Split cache for address mapping data
WO2022193271A1 (en) Techniques for afragment cursor
US11379367B2 (en) Enhancement for activation and deactivation of memory address regions
US11954336B2 (en) Dynamic memory management operation
US20230145114A1 (en) Memory system directed memory address management techniques
US20230214294A1 (en) Host-configurable error protection
US20240295971A1 (en) Dynamic memory management operation
CN118535081A (zh) 用于配置存储器系统的分区架构的技术

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination