CN107111560B - 用于在非统一存储器架构中提供改进的延迟的系统和方法 - Google Patents

用于在非统一存储器架构中提供改进的延迟的系统和方法 Download PDF

Info

Publication number
CN107111560B
CN107111560B CN201580062124.5A CN201580062124A CN107111560B CN 107111560 B CN107111560 B CN 107111560B CN 201580062124 A CN201580062124 A CN 201580062124A CN 107111560 B CN107111560 B CN 107111560B
Authority
CN
China
Prior art keywords
volatile memory
memory device
local volatile
address
physical
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.)
Active
Application number
CN201580062124.5A
Other languages
English (en)
Other versions
CN107111560A (zh
Inventor
S·A·莫洛伊
D·T·全
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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN107111560A publication Critical patent/CN107111560A/zh
Application granted granted Critical
Publication of CN107111560B publication Critical patent/CN107111560B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06F12/1072Decentralised address translation, e.g. in distributed shared memory systems
    • 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/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
    • 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/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/254Distributed memory
    • G06F2212/2542Non-uniform memory access [NUMA] architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

公开了用于在具有非统一存储器架构的便携式计算设备中分配存储器的系统、方法以及计算机程序。方法的一个实施例涉及:从在第一片上系统(SoC)上执行的进程接收针对虚拟存储器页面的请求;该第一SoC通过芯片间接口电耦合与第二SoC;该第一SoC通过第一高性能总线电耦合于第一本地易失性存储器设备,并且该第二SoC通过第二高性能总线电耦合于第二本地易失性存储器设备;确定在该第一和第二本地易失性存储器设备上的可用物理页面的数量是否超出用于启动在该第一和第二本地易失性存储器设备之间的存储器数据的复制的最小阈值;以及如果超出该最小阈值,则将该第一本地易失性存储器设备上的第一物理地址和该第二本地易失性存储器设备上的第二物理地址分配给单个虚拟页面地址。

Description

用于在非统一存储器架构中提供改进的延迟的系统和方法
背景技术
便携式计算设备(例如,蜂窝电话、智能电话、平板计算机、便携式数字助理(PDA)以及便携式游戏控制台)持续提供不断扩展的服务和特征阵列,并且向用户提供前所未有的信息接入、资源以及通信的水平。为了跟上这些服务增强的步伐,这些设备已经变得更加强大并且更加复杂。便携式计算设备现在通常包括包含嵌在单个基底上的一个或多个芯片部件(例如,一个或多个中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器等)的片上系统(SoC)。
由于在集成电路上增加晶体管密度变得更具挑战,二维单片集成电路的成本可能变得过高,导致在便携式计算设备中对多管芯或多SOC产品的使用增加。该多管芯产品可以包括互连的物理管芯,每个物理管芯提供对快速本地存储器(诸如,动态随机存取存储器(DRAM))的访问。该架构一般被称作非统一存储器架构(NUMA)。然而,NUMA设计提出了多种情况,在这些情况中,通过高性能总线可访问的近的或本地的DRAM中的数据或通过低性能芯片间接口可访问的远的DRAM中的数据需要被任一管芯上的处理器访问。这可能导致较高的延迟,例如当处理器必须去往远的DRAM时。
因此,需要提供针对非统一存储器架构中的所有处理器的低延迟存储器访问的系统和方法。
发明内容
公开了用于在具有非统一存储器架构的便携式计算设备中分配存储器的系统、方法以及计算机程序。一种这样的方法涉及:从在第一片上系统(SoC)上执行的进程接收针对虚拟存储器页面的请求。该第一SoC通过芯片间接口电耦合与第二SoC。该第一SoC通过第一高性能总线电耦合于第一本地易失性存储器设备,并且该第二SoC通过第二高性能总线电耦合于第二本地易失性存储器设备。该方法还涉及:确定在该第一和第二本地易失性存储器设备上的可用物理页面的数量是否超出用于启动在该第一和第二本地易失性存储器设备之间的存储器数据的复制的最小阈值。如果超出该最小阈值,则将该第一本地易失性存储器设备上的第一物理地址和该第二本地易失性存储器设备上的第二物理地址分配给单个虚拟页面地址。
附图说明
在附图中,除非另外指出,贯穿各个视图的相似的附图标记指代相似的部分。对于具有字母符号标号的附图标记(诸如“102A”或“102B”),该字母符号标号可以对在同一附图中出现的两个相似的部分或元件进行区分。当附图标记旨在包括在所有附图中的具有相同附图标记的所有部分时,可以省略针对附图标记的字母符号标号。
图1是包括多个互连的具有非统一存储器架构(NUMA)的片上系统(SoC)的系统的实施例的框图。
图2示出了具有在多个SoC上选择性复制的存储器数据的图1的系统。
图3是示出了在包括具有相同物理地址的空闲物理页面对的SoC中的页面表格的实施例的方框图。
图4是示出了用于实现包括用于将空闲物理页面对映射到单个虚拟地址的复制属性字段的页面表格条目的数据结构的实施例的方框图。
图5是示出了由图1和2中的自适应NUMA延迟优化模块实现的方法的实施例的流程图。
图6是示出了由用于释放物理页面对的操作系统实现的方法的实施例的流程图。
图7是示出了用于将先前分配的单个页面转换为空闲物理页面对的方法的实施例的流程图。
图8是示出了用于实现图1和2的系统中的页面表格条目的数据结构的另一个实施例的方框图。
图9a和图9b是示出了由图1和2中的非阻塞NUMA延迟优化模块实现的方法的实施例的流程图。
图10是示出了实现图8的页面表格条目的示例性写事务的流程图。
图11是示出了实现图8的页面表格条目的示例性读事务的流程图。
图12是示出了用于复制使用图8的页面表格条目的数据的页面翻译图表的功能框图。
图13是可以合并用于扩展系统存储器的RAM卡/插槽的便携式通信设备的另一个实施例的方框图。
具体实施方式
本文中所使用的词语“示例性”意指“用作例子、实例或说明”。本文中被描述为“示例性”的任何方面未必要被解释为比其它方面更优选或更具优势。
在本描述中,术语“应用”或“图像”也可以包括具有可执行内容的文件,例如:目标代码、脚本、字节代码、标记语言文件和补丁。另外,本文中所提及的“应用”,也可以包括本质上不可执行的文件,例如可能需要被打开的文档或需要被存取的其它数据文件。
术语“内容”也可以包括具有可执行内容的文件,例如:目标代码、脚本、字节代码、标记语言文件和补丁。另外,本文中所提及的“内容”,也可以包括本质上不可执行的文件,例如可能需要被打开的文档或需要被存取的其它数据文件。
如在本描述中所使用的,术语“部件”、“数据库”、“模块”、“系统”以及类似的术语旨在指代与计算机相关的实体,其可以是硬件、固件、硬件和软件的结合、软件、或执行中的软件。例如,部件可以是但不限于是处理器上运行的进程、处理器、对象、可执行文件、执行的线程、程序、和/或计算机。举例来说,计算设备上运行的应用和计算设备均可以是部件。一个或多个部件可以存在于执行中的进程和/或线程内,以及部件可以位于一台计算机上和/或分布于两台或更多台计算机之间。另外,可以从其上存储了各种数据结构的各种计算机可读介质来执行这些部件。这些部件可以通过本地和/或远程过程的方式,例如根据具有一个或多个数据分组(例如,来自通过信号的方式与本地系统、分布式系统中的另一个部件进行交互和/或跨越诸如互联网这样的网络与其它系统进行交互的一个部件的数据)的信号,来进行通信。
术语“虚拟存储器”指的是从引用存储器的应用或图像对实际物理存储器的抽象。可以使用翻译或映射将虚拟存储器地址转换为物理存储器地址。该映射可以是如1对1一样简单的(例如,物理地址等于虚拟地址)、适度复杂的(例如,物理地址等于距虚拟地址的常量偏移),或该映射可以是复杂的(例如,每4KB页面唯一地映射)。该映射可以是静态的(例如,在启动时执行一次),或该映射可以是动态的(例如,随着分配和释放存储器而不断演变)。
在本描述中,可互换地使用术语“通信设备”、“无线设备”、“无线电话”、“无线通信设备”以及“无线手机”。随着第三代(“3G”)无线技术以及第四代(“4G”)的出现,更大的可用带宽已经使得更多的便携式计算设备能够具有更多种多样的无线能力。因此,便携式计算设备可以包括蜂窝电话、传真机、PDA、智能电话、导航设备、或具有无线连接或链接的手持计算机。
图1示出了包括多个互连的具有非统一存储器架构(NUMA)的物理管芯(例如,片上系统(SoC)102和SoC 202)的系统100的实施例。系统100可以被实现为设计用于任何计算设备的、或者驻留在任何计算设备中的多管芯产品,上述任何计算设备包括:个人计算机、工作站、服务器、便携式计算设备(PCD)(例如,蜂窝电话、便携式数字助理(PDA)、便携式游戏控制台、掌上计算机或平板计算机)。SOC 102和202通过管芯间接口116电耦合。每个SOC通过高性能总线电耦合于近的或本地的易失性存储器设备(例如,动态随机存取存储区(DRAM)设备)。如图1中的实施例中示出的那样,SoC 102通过总线105连接于本地DRAM 104,并且SoC 202通过总线205连接于本地DRAM 204。总线105和205分别由SOC 102和202提供具有对本地DRAM 104和204的更低延迟的更快速的、更高性能的访问。如本领域已知的那样,NUMA使得SOC 102和202中的每一个都能够访问其它SoC的本地DRAM,管芯间接口116可以造成更高的延时以及相对更低的性能。
SoC 102和202包括各个片上或管芯上部件。应当了解的是,片上部件可以随需要而变化,并且系统100可以包括任何数量的SoC。在图1的实施例中,SoC 102包括通过SoC总线112互连的一个或多个处理器108(例如,中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)等)、DRAM控制器106以及芯片间接口控制器114。SoC 202包括通过SoC总线212互连的一个或多个处理器208、DRAM控制器206以及芯片间接口控制器214。SoC 102和202可以包括从SoC的本地DRAM(分别通过总线105和205)或通过管芯间接口116连接于另一个SoC的远的DRAM请求存储器资源的一个或多个存储器客户端。DRAM控制器106和206分别管理去往和来自DRAM 104和204的数据流。芯片间接口控制器114和214管理SoC 102和202之间的数据流。
每个SoC均可以包括操作系统(O/S 110和220),其支持通过诸如系统存储器管理器200的虚拟存储器来管理。系统存储器管理器200被配置为控制可以使用硬件和/或软件二者实现的各个存储器管理技术。如本领域已知的那样,系统存储器管理器200将由程序使用的存储器地址(称作虚拟地址)映射到计算机存储器中的物理地址。O/S 110和210管理虚拟地址空间和物理存储器(例如,DRAM 104和204)到虚拟存储器的分配。地址翻译硬件(例如,存储器管理单元(MMU))将虚拟地址翻译成物理地址。
参考图2,应当了解的是,O/S 110、O/S 210以及系统存储器管理器200可以被配置为支持NUMA,在NUMA中,跨越多个处理器来管理存储器访问、任务以及工作负荷。如下文更详细描述的那样,系统存储器管理器200可以包括用于提供具有在系统100的非统一存储器架构中的多个处理器上的改进延迟的存储器访问的各个模块。自适应NUMA延迟优化模块201在下文中结合图3-7进行描述,而非阻塞NUMA延迟优化模块在下文中结合图8-12进行描述。
如图2的示例性实施例中示出的那样,系统存储器管理器200可以被配置为选择性地复制存储器数据,从而使得每个管芯(例如,SoC 102和202)在本地DRAM(即,直接与之连接的DRAM)中具有该数据的副本。例如,驻留在DRAM 204中的存储器数据300可以被多个处理器访问。存储器数据300可以包括多个数据部分302、304、306以及308。驻留在SoC 202上,处理器220可以请求访问数据304和308,而处理器222可以请求访问数据302和306。驻留在SoC 102上,处理器120可以请求访问数据302和304,而处理器122可以请求访问数据306。尽管NUMA使得处理器120和122能够通过管芯间接口116访问存储器数据300,但是可能期望在DRAM 104上选择性地复制位于DRAM 204中的存储器数据(反之亦然)以向SoC 102上的处理器120和122提供对它们需要的存储器的更高性能、更低延迟的访问。
应当了解的是,为了系统100中选择性地复制存储器数据,可以采用各种方法、算法以及技术。在图3-7中示出的实施例中,系统100通过定位、识别和/或管理空闲物理页面对来复制存储器数据。如图3中示出的那样,空闲物理页面对399包括DRAM 104中的可用物理地址与DRAM 204中的相同的可用物理地址的逻辑映射。应当了解的是,在示例性实施例中,相同的物理地址可以指的是它们的页面地址具有完全相同的低位N比特的两个物理页面地址,其中,N=log2(单个存储器芯片的容量)。例如,在包括两个1GB的存储器芯片的2GB系统中,物理页面对可以在位置(29、28、27...14、13、12)处具有完全相同的地址比特。应当了解的是,可以不比较比特(11、10...1、0),这是因为它们可能已经在例如4KB的页面内。可以通过页面表格350和360来提供逻辑映射。页面表格350(对应于DRAM 104)可以由在SoC102上执行的虚拟存储器管理器402管理。页面表格360(对应于DRAM 204)可以由在SoC 202上执行的虚拟存储器管理器404管理。页面表格350和360包括对物理地址402-432的范围的索引。作为例子,页面表格350中的物理地址402a和页面表格360中的物理地址402b代表物理页面对,这是因为它们具有相同的物理地址。空闲或可用物理页面对399指的是可用于DRAM 104和204二者中的存储器分配的物理页面对(即,402a/b、404a/b、406a/b等)。在图3中,空闲物理页面对在灰视方框中进行标识。就这点而言,利用字母“a”标引的物理地址(例如,406a、408a等)对应于SoC 102/DRAM 104,而利用字母“b”标引的物理地址(例如,406b、408b等)对应于SoC 202/DRAM 204,其中相同编号的“a/b”对包括物理页面对399。
为了选择性地复制用于在多个处理器(例如,SoC 102上的处理器120和122以及SoC 202上的处理器220和222)上访问的存储器数据,可以提供经修改的页面表格条目400,如图4中所示。该经修改的页面表格条目400包括用于将物理页面索引454存储到物理地址的字段454,以及用于存储复制比特值452的复制属性字段450。复制比特值“0”或“假”可以用于默认操作中以将单个物理页面映射到对应的虚拟页面地址。当期望改进的延迟并且当空闲物理页面对399可用时,可以将该复制比特值设置为“1”或“真”,其使得系统100能够将该空闲物理页面对399逻辑地映射到单个虚拟页面地址。应当了解的是,复制属性字段450可以用于选择性地复制存储器数据,从而使得每个SoC管芯在本地DRAM中都具有该数据的副本。
图5示出了用于使用空闲物理页面对399在NUMA中分配存储器的方法500。方法500可以由O/S 110、O/S 210和/或系统存储器管理器200实现。在方框502处,可以从在第一SoC102上执行的进程接收针对虚拟存储器页面的请求。在方框504处,该系统确定是否存在任何空闲物理页面对399。如果空闲物理页面对399不可用(判断框506),则可以将虚拟页面地址逻辑地映射到单个物理页面。然而,如果可用,则可以将该空闲物理页面对399逻辑地映射到相同的虚拟页面地址(方框508)。如上所述,可以通过修改页面表格条目400来执行该逻辑映射。例如,在方框510处,可以通过将复制比特值452设置为“1”或“真”值来修改复制属性字段450,其复制存储在DRAM 104和204上的相同物理地址中的存储器数据。
系统存储器管理器200可以被配置为使得O/S 110和O/S 210能够执行后台进程以定位和/或管理空闲物理页面对399。图6示出了用于释放额外的物理页面对的方法600。可以提供所有存储器物理页面的全局目录。在方框602处,操作系统可以通过该全局目录进行搜索。在方框604处,操作系统可以确定页面表格350和360是否识别具有分配给不同虚拟地址的匹配物理地址的任何物理页面。如果不存在匹配(判断框606),则流程可以返回方框602以随后检查潜在的匹配。如果发现匹配,则在方框608处,操作系统可以通过重分配物理页面中的一个物理页面的冲突物理地址来创建空闲物理页面对399。具有原始物理地址的剩余物理页面现在可用作新的物理页面对399。
图7示出了用于通过将先前分配的单个页面转换为成对的页面来提高存储器复制的性能的另一个技术。方法700可以用于确定这样的情况,在该情况中,存在较少的存储器压力并且变得期望从默认的非复制模式切换到上文所描述的切换模式。在判断框702处,操作系统可以确定空闲页面的总数量是否超出最小阈值。如果没有超出该阈值,则可以以预定间隔来重复判断框702。如果超出了该阈值,则在方框704处,操作系统可以在全局目录中的全部存储器物理页面帧进行遍历搜索。操作系统可以确定是否存在这样的情况:具有复制比特值452未启动(值=“0”或“假”)的页面而匹配页面对是空闲的。在判断框706处,如果匹配被定位,则在方框708处,操作系统可以将页面复制到该页面对中的另一个页面,并且将复制比特值设置为“1”或“真”。
图8-12示出了实现基于不共享相同物理地址的空闲物理页面对的非阻塞、匿名分配的复制方案的另一个实施例。该复制方案可以由系统100中的非阻塞NUMA延迟模块203(图1)实现。为了在不考虑匹配物理地址的情况下选择性地复制存储器数据,可以提供经修改的页面表格条目800,如图8中示出的那样。经修改的页面表格条目800包括复制属性字段450、用于存储对与第一DRAM 104相关联的第一物理地址的物理页面索引#1 1406的字段802、以及用于存储副本地址的新的字段804。该副本地址包括对与第二DRAM 204相关联的第二物理地址1408的物理页面索引#2。就这点来说,页面表格条目800可以支持单个虚拟地址到具有任意(例如,不需要是相同的)物理地址的物理页面对的映射,每个管芯一个。页面表格条目800实现到这两个物理地址的翻译。图12示出了单个虚拟地址怎样由页面索引1402(第13个比特及以上)和页面偏移1404(低位12个比特)组成,以及单独的页面索引1402怎样分别基于页面表格字段802和804映射到页面表格1401中的物理页面索引1410所包括的物理页面索引#1 1406和物理页面索引#2 1408。页面偏移1404不被修改并且将其用于访问每个4KB页面内的字。
图9a示出了用于使用任意物理页面对在NUMA中分配存储器的方法900。在方框902处,可以从在第一SoC 102上执行的进程接收针对虚拟存储器页面的请求。系统可以实现各种阈值以确定是否存在足够的存储器以支持复制。应当了解的是,该复制可以基于逐页来发生。在实施例中,在判断框904处,系统可以确定多个可用物理页面是否超出针对使用DRAM 104的SoC 102的最小阈值。如果“是”,则在方框906处,可以将针对SoC 102的存储器充足值设置为“真”。如果“否”,则在方框908处,可以将针对SoC 102的存储器充足值设置为“假”。在判断框910处,系统可以确定可用物理页面的数量是否超出针对使用DRAM 204的SoC 202的最小阈值。如果“是”,则在方框912处,可以将针对SoC 202的存储器充足值设置为“真”。如果“否”,则在方框914处,可以将针对SoC 202的存储器充足值设置为“假”。基于该存储器充足值,在方框916处,系统可以确定要执行的合适的分配行动。如图9b中示出的那样,如果在SoC 102和SoC 202二者中都有充足的存储器可用(即,二者的值都=“真”),则操作系统可以从使用DRAM 104的SoC 102和使用DRAM 204的SoC 202分配页面,并且将该复制比特值设置为“真”或“1”以启动复制,当复制比特值以这种方式启动时,还可以将副本地址添加到页面表格条目800中。如果在SoC 102或SoC 202中有(但不是二者都有)充足的存储器可用时,取决于哪个SoC具有充足的存储器(即,值=“真”),操作系统可以从使用DRAM104的SoC 102或使用DRAM 204的SoC 202分配单个页面。如果SoC 102或SoC 202二者都不具有充足的存储器(即,二者值都=“假”),则操作系统将分配失败并且触发异常。针对分配失败的异常处理与现有的方法没有不同,并且调用将终止较低优先级的不经常访问的进程以便释放分配给它们的存储器的执行程序或服务。应当了解的是,在其中可以共享存储器的NUMA中,可以从使用DRAM 104的SoC 102或使用DRAM 204的SoC 202分配单个页面。
图10示出了用于执行涉及经修改的页面表格条目800的存储器写事务的方法1000的实施例。应当了解的是,该方法1000可以通过软件和/或硬件来实现。在硬件实施例中,该方法可以通过例如存储器管理单元(MMU)中的翻译后备缓冲器(TLB)来执行。在方框1002处,存储器写事务由TLB接收。在方框1004处,TLB执行页面表格条目800的查找。在方框1006处,读复制比特值452。如果该复制比特值是“真”(判断框1008),则读副本地址(方框1010)并且高速缓存硬件将数据刷新到原始物理地址和副本物理地址二者中(方框1012)。如果该复制比特值是“假”,则在方框1014处,高速缓存硬件只将数据刷新到原始物理地址中。
图11示出了用于执行涉及经修改的页面表格条目800的存储器读事务的方法1100的实施例。应当了解的是,该方法1100可以通过软件和/或硬件来实现。在硬件实施例中,该方法可以通过例如存储器管理单元(MMU)中的翻译后备缓冲器(TLB)来执行。在方框1102处,存储器读事务由TLB接收。在方框1104处,TLB执行页面表格条目800的查找。在方框1106处,读复制比特值452。如果该复制比特值是“真”(判断框1108),则读副本地址(方框1110)并且从副本地址或原始地址(方框1112)发生高速缓存填充。如果该复制比特值是“假”,则从原始地址发生高速缓存填充(方框1114)。
如上所述,系统100可以被并入任何期望的计算系统中。图13示出了包括SoC 102和SoC 202的示例性便携式计算设备(PCD)1300。在该实施例中,SoC 102和SoC 202可以包括多核CPU 1302。该多核CPU 1302可以包括第零核1310、第一核1312、以及第N核1314。这些核中的一个可以包括例如图形处理单元(GPU),而其它核中的一个或多个包括CPU。
显示器控制器328和触摸屏控制器330可以耦合于CPU 1302。反过来,在SoC 102和202外部的显示器/触摸屏1306可以耦合于显示器控制器328和触摸屏控制器330。
图13还示出了耦合于多核CPU 1302的视频编码器334,例如,逐行倒相制式(PAL)编码器、顺序与存储彩色电视系统(SECAM)编码器或国家电视系统委员会(NTSC)编码器。此外,视频放大器336耦合于视频编码器334和显示器/触摸屏1306。另外,视频端口338耦合于视频放大器336。如图13显示的那样,通用串行总线(USB)控制器340耦合于多核CPU 1302。另外,USB端口342耦合于USB控制器340。存储器104和204以及用户识别模块(SIM)卡346也可以耦合于多核CPU 1302。
此外,如图13所述,数字照相机348可以耦合于多核CPU 1302。在示例性方面中,数字照相机348是电荷耦合器件(CCD)照相机或互补金属氧化物半导体(CMOS)照相机。
如图13中进一步所示,立体声音频编码器-解码器(CODEC)350可以耦合于多核CPU1302。此外,音频放大器352可以耦合于立体声音频CODEC 350。在示例性方面中,第一立体声扬声器354和第二立体声扬声器356耦合于音频放大器352。图13显示麦克风放大器358也可以耦合于立体声音频CODEC 350。此外,麦克风360可以耦合于麦克风放大器358。在特定方面中,频率调制(FM)无线电调谐器362可以耦合于立体声音频CODEC 350。此外,FM天线364耦合于FM无线电调谐器362。此外,立体声头戴式耳机366可以耦合于立体声音频CODEC350。
图13还示出了射频(RF)收发机368可以耦合于多核CPU 1302。RF开关370可以耦合于RF收发机368和RF天线372。键盘374可以耦合于多核CPU 1302。此外,具有麦克风的单声道耳机376可以耦合于多核CPU 1302。此外,振荡器设备378可以耦合于多核CPU 1302。
图13还显示电源380可以耦合于SoC 102和SoC 202。在特定方面中,电源380是向PCD 1300的需要电力的各个部件提供电力的直流(DC)电源。此外,在特定方面中,电源是可再充电的DC电池或从连接于交流(AC)电源的AC到DC变换器导出的DC电源。
图13还指示PCD 1300还可以包括网卡388,网卡388可用于接入数据网络,例如局域网、个域网或任何其它网络。网卡388可为蓝牙网卡、WiFi网卡、个域网(PAN)卡、个域网超低功率技术(PeANUT)网卡、电视/电缆/卫星调谐器、或本领域众所周知的任何其它网卡。此外,网卡388可并入到芯片中,即网卡388可为芯片上的整个解决方案,且可以不是单独的网卡388。
参考图13,应当了解的是,存储器104、RAM卡105、显示器/触摸屏1306、视频端口338、USB端口342、相机348、第一立体声扬声器354、第二立体声扬声器356、麦克风360、FM天线364、立体声头戴式耳机366、RF开关370、RF天线372、键盘374、单声道耳机376、振动器378以及电源380可以在片上系统102的外部。
应当了解的是,本文所描述的方法步骤中的一者或一者以上可作为计算机程序指令(诸如,上文所描述的模块)存储于存储器中。这些指令可由任何合适的处理器与对应的模块结合或合作执行以执行本文所描述的方法。
本描述中所描述的过程或处理流程中的某些步骤自然先于针对本发明的其它步骤来如同所描述的运行。然而,在这种次序或顺序不改变本发明的功能的情况下,本发明不受限于所描述的步骤的次序。即,应认识到的是,在不脱离本发明的范围及精神的情况下,可以将一些步骤在其它步骤之前、之后或与其它步骤并行地(基本上与其它步骤同时地)执行。在一些实例中,在不脱离本发明的情况下,可以省略或者不执行某些步骤。此外,诸如“其后”、“然后”、“接下来”等词语不是要限制步骤的次序。这些词语仅用于引导读者通读示例性方法的描述。
另外,编程设计领域的普通技术人员能够基于例如本说明书中的流程图及相关联的描述而毫不费力地编写计算机代码或识别适当的硬件和/或电路来实施本公开的发明。
因此,对程序代码指令或详细硬件设备的特定集合的公开不视为对于充分理解如何制造及使用本发明的必须。在以上的描述中以及结合示出了各个处理流程的附图,较为详细地解释了所提出的计算机实施的过程的创造性功能。
在一个或多个示例性方案中,所描述的功能可以由硬件、软件、固件、或其任何组合来实现。如果用软件实现,则该功能可存储在计算机可读介质上或者作为计算机可读介质上的一个或多个指令或代码来传输。计算机可读介质包括计算机存储介质和通信介质二者,该通信介质包括促进将计算机程序从一处传送到另一处的任何介质。存储介质可以是可由计算机存取的任何可用介质。举例而言并非限制,该计算机可读介质可包括RAM、ROM、EEPROM、NAND闪存、NOR闪存、M-RAM、P-RAM、CD-ROM或其它光盘存储器、磁盘存储器或其它磁存储设备或可用于携带或存储具有指令或数据结构形式的期望程序代码并且可由计算机存取的任何其它介质。
此外,可将任何连接恰当地称为计算机可读介质。例如,如果使用同轴电缆、光纤光缆、双绞线、数字用户线(“DSL”)或诸如红外线、无线电及微波的无线技术从网站、服务器或其它远程源来传输软件,则同轴电缆、光纤光缆、双绞线、DSL、或诸如红外线、无线电及微波的无线技术包含在介质的定义中。
本文中所使用的,磁盘和光盘包括压缩光盘(“CD”)、激光盘、光盘、数字多功能光盘(“DVD”)、软盘及蓝光盘,其中磁盘通常磁性地复制数据,而光盘则利用激光光学地复制数据。以上各物的组合也应包含在计算机可读介质的范围内。
对于本领域普通技术人员来说,在不脱离本发明的精神和范围的情况下,附属于本发明的替代实施例将变得显而易见。因此,尽管已详细说明和描述了选定的方案,但应理解的是,在不脱离作为由所附权利要求书所定义的本发明的精神及范围的情况下,可在其中做出各种替代及改变。

Claims (36)

1.一种用于在具有非统一存储器架构的便携式计算设备中分配存储器的方法,所述方法包括:
从在第一片上系统,SoC,上执行的进程接收针对虚拟存储器页面的请求,所述第一SoC通过芯片间接口电耦合于第二SoC,所述第一SoC通过第一高性能总线电耦合于第一本地易失性存储器设备,并且所述第二SoC通过第二高性能总线电耦合于第二本地易失性存储器设备;
确定在所述第一本地易失性存储器设备上的可用物理页面的数量是否超出用于启动在所述第一本地易失性存储器设备和所述第二本地易失性存储器设备之间的存储器数据复制的最小阈值;
确定在所述第二本地易失性存储器设备上的可用物理页面的数量是否超出用于启动在所述第一本地易失性存储器设备和所述第二本地易失性存储器设备之间的存储器数据复制的最小阈值;以及
如果在所述第一本地易失性存储器设备上的可用物理页面的数量和在所述第二本地易失性存储器设备上的可用物理页面的数量两者都超出所述最小阈值,则将所述第一本地易失性存储器设备上的第一物理地址和所述第二本地易失性存储器设备上的第二物理地址分配给单个虚拟页面地址。
2.根据权利要求1所述的方法,其中,所述将所述第一物理地址和所述第二物理地址分配给所述单个虚拟页面地址包括:提供经修改的页面表格条目,所述经修改的页面表格条目实现到所述第一物理地址和所述第二物理地址两者的翻译。
3.根据权利要求2所述的方法,其中,所述经修改的页面表格条目包括:设置为指示存储器数据将被复制的真值的复制属性、到所述第一物理地址的第一物理页面索引、以及包括副本地址的到所述第二物理地址的第二物理页面索引。
4.根据权利要求3所述的方法,还包括:
接收针对对所述单个虚拟页面地址的写事务的另一个请求;
执行对所述经修改的页面表格条目的查找;以及
如果所述复制属性被设置为所述真值,则读所述副本地址并且将所述存储器数据刷新到所述第一物理地址和所述第二物理地址两者。
5.根据权利要求4所述的方法,还包括:
如果所述复制属性被设置为假值,则将所述存储器数据刷新到所述第一物理地址。
6.根据权利要求3所述的方法,还包括:
接收针对对所述单个虚拟页面地址的读事务的另一个请求;
执行对所述经修改的页面表格条目的查找;以及
如果所述复制属性被设置为真值,则读所述副本地址并且从所述第一物理地址和所述第二物理地址中较近的地址执行高速缓存填充。
7.根据权利要求6所述的方法,还包括:
如果所述复制属性被设置为假值,则从所述第一物理地址执行高速缓存填充。
8.根据权利要求1所述的方法,其中,所述第一本地易失性存储器设备和所述第二本地易失性存储器设备中的一个或多个本地易失性存储器设备包括:动态随机存取存储器(DRAM)设备。
9.根据权利要求1所述的方法,其中,所述便携式计算设备包括:移动电话、平板计算机、导航设备以及便携式游戏控制台中的一个。
10.一种用于在具有非统一存储器架构的便携式计算设备中分配存储器的系统,所述系统包括:
用于从在第一片上系统,SoC,上执行的进程接收针对虚拟存储器页面的请求的单元,所述第一SoC通过芯片间接口电耦合于第二SoC,所述第一SoC通过第一高性能总线电耦合于第一本地易失性存储器设备,并且所述第二SoC通过第二高性能总线电耦合于第二本地易失性存储器设备;
用于确定在所述第一本地易失性存储器设备上的可用物理页面的数量是否超出用于启动在所述第一本地易失性存储器设备和所述第二本地易失性存储器设备之间的存储器数据复制的最小阈值的单元;
用于确定在所述第二本地易失性存储器设备上的可用物理页面的数量是否超出用于启动在所述第一本地易失性存储器设备和所述第二本地易失性存储器设备之间的存储器数据复制的最小阈值的单元;以及
用于如果在所述第一本地易失性存储器设备上的可用物理页面的数量和在所述第二本地易失性存储器设备上的可用物理页面的数量两者都超出所述最小阈值,则将所述第一本地易失性存储器设备上的第一物理地址和所述第二本地易失性存储器设备上的第二物理地址分配给单个虚拟页面地址的单元。
11.根据权利要求10所述的系统,其中,所述用于将所述第一物理地址和所述第二物理地址分配给所述单个虚拟页面地址的单元包括:用于提供经修改的页面表格条目的单元,所述经修改的页面表格条目实现到所述第一物理地址和所述第二物理地址两者的翻译。
12.根据权利要求11所述的系统,其中,所述经修改的页面表格条目包括:设置为指示存储器数据将被复制的真值的复制属性、到所述第一物理地址的第一物理页面索引、以及包括副本地址的到所述第二物理地址的第二物理页面索引。
13.根据权利要求12所述的系统,还包括:
用于接收针对对所述单个虚拟页面地址的写事务的另一个请求的单元;
用于执行对所述经修改的页面表格条目的查找的单元;以及
用于如果所述复制属性被设置为所述真值,则读所述副本地址并且将所述存储器数据刷新到所述第一物理地址和所述第二物理地址两者的单元。
14.根据权利要求13所述的系统,还包括:
用于如果所述复制属性被设置为假值,则将所述存储器数据刷新到所述第一物理地址的单元。
15.根据权利要求12所述的系统,还包括:
用于接收针对对所述单个虚拟页面地址的读事务的另一个请求的单元;
用于执行对所述经修改的页面表格条目的查找的单元;以及
用于如果所述复制属性被设置为真值,则读所述副本地址并且从所述第一物理地址和所述第二物理地址中较近的地址执行高速缓存填充的单元。
16.根据权利要求15所述的系统,还包括:
用于如果所述复制属性被设置为假值,则从所述第一物理地址执行高速缓存填充的单元。
17.根据权利要求10所述的系统,其中,所述第一本地易失性存储器设备和所述第二本地易失性存储器设备中的一个或多个本地易失性存储器设备包括:动态随机存取存储器(DRAM)设备。
18.根据权利要求10所述的系统,其中,所述便携式计算设备包括:移动电话、平板计算机、导航设备以及便携式游戏控制台中的一个。
19.一种体现在存储器中并且由处理器可执行的用于在具有非统一存储器架构的便携式计算设备中分配存储器的计算机程序,所述计算机程序包括被配置为进行以下操作的逻辑单元:
从在第一片上系统,SoC,上执行的进程接收针对虚拟存储器页面的请求,所述第一SoC通过芯片间接口电耦合于第二SoC,所述第一SoC通过第一高性能总线电耦合于第一本地易失性存储器设备,并且所述第二SoC通过第二高性能总线电耦合于第二本地易失性存储器设备;
确定在所述第一本地易失性存储器设备上的可用物理页面的数量是否超出用于启动在所述第一本地易失性存储器设备和所述第二本地易失性存储器设备之间的存储器数据复制的最小阈值;
确定在所述第二本地易失性存储器设备上的可用物理页面的数量是否超出用于启动在所述第一本地易失性存储器设备和所述第二本地易失性存储器设备之间的存储器数据复制的最小阈值;以及
如果在所述第一本地易失性存储器设备上的可用物理页面的数量和在所述第二本地易失性存储器设备上的可用物理页面的数量两者都超出所述最小阈值,则将所述第一本地易失性存储器设备上的第一物理地址和所述第二本地易失性存储器设备上的第二物理地址分配给单个虚拟页面地址。
20.根据权利要求19所述的计算机程序,其中,所述被配置为将所述第一物理地址和所述第二物理地址分配给所述单个虚拟页面地址的逻辑单元包括被配置为进行以下操作的逻辑单元:提供经修改的页面表格条目,所述经修改的页面表格条目实现到所述第一物理地址和所述第二物理地址两者的翻译。
21.根据权利要求20所述的计算机程序,其中,所述经修改的页面表格条目包括:设置为指示存储器数据将被复制的真值的复制属性、到所述第一物理地址的第一物理页面索引、以及包括副本地址的到所述第二物理地址的第二物理页面索引。
22.根据权利要求21所述的计算机程序,还包括被配置为进行以下操作的逻辑单元:
接收针对对所述单个虚拟页面地址的写事务的另一个请求;
执行对所述经修改的页面表格条目的查找;以及
如果所述复制属性被设置为所述真值,则读所述副本地址并且将所述存储器数据刷新到所述第一物理地址和所述第二物理地址两者。
23.根据权利要求22所述的计算机程序,还包括被配置为进行以下操作的逻辑单元:
如果所述复制属性被设置为假值,则将所述存储器数据刷新到所述第一物理地址。
24.根据权利要求21所述的计算机程序,还包括被配置为进行以下操作的逻辑单元:
接收针对对所述单个虚拟页面地址的读事务的另一个请求;
执行对所述经修改的页面表格条目的查找;以及
如果所述复制属性被设置为真值,则读所述副本地址并且从所述第一物理地址和所述第二物理地址中较近的地址执行高速缓存填充。
25.根据权利要求24所述的计算机程序,还包括被配置为进行以下操作的逻辑单元:
如果所述复制属性被设置为假值,则从所述第一物理地址执行高速缓存填充。
26.根据权利要求19所述的计算机程序,其中,所述第一本地易失性存储器设备和所述第二本地易失性存储器设备中的一个或多个本地易失性存储器设备包括:动态随机存取存储器(DRAM)设备。
27.根据权利要求19所述的计算机程序,其中,所述便携式计算设备包括:移动电话、平板计算机、导航设备以及便携式游戏控制台中的一个。
28.一种用于在具有非统一存储器架构的便携式计算设备中分配存储器的系统,所述系统包括:
通过芯片间接口电耦合的第一片上系统,SoC,和第二SoC,所述第一SoC通过第一高性能总线电耦合于第一本地易失性存储器设备,并且所述第二SoC通过第二高性能总线电耦合于第二本地易失性存储器设备;以及
用于管理在非统一存储器架构中的所述第一本地易失性存储器设备和所述第二本地易失性存储器设备的系统存储器管理器,所述系统存储器管理器包括被配置为进行以下操作的逻辑单元:
从在所述第一SoC上执行的进程接收针对虚拟存储器页面的请求;
确定在所述第一本地易失性存储器设备上的可用物理页面的数量是否超出用于启动在所述第一本地易失性存储器设备和所述第二本地易失性存储器设备之间的存储器数据复制的最小阈值;
确定在所述第二本地易失性存储器设备上的可用物理页面的数量是否超出用于启动在所述第一本地易失性存储器设备和所述第二本地易失性存储器设备之间的存储器数据复制的最小阈值;以及
如果在所述第一本地易失性存储器设备上的可用物理页面的数量和在所述第二本地易失性存储器设备上的可用物理页面的数量两者都超出所述最小阈值,则将所述第一本地易失性存储器设备上的第一物理地址和所述第二本地易失性存储器设备上的第二物理地址分配给单个虚拟页面地址。
29.根据权利要求28所述的系统,其中,所述系统存储器管理器还包括被配置为进行以下操作的逻辑单元:
将所述第一物理地址和所述第二物理地址分配给所述单个虚拟页面地址包括被配置为提供经修改的页面表格条目的逻辑单元,所述经修改的页面表格条目实现到所述第一物理地址和所述第二物理地址两者的翻译。
30.根据权利要求29所述的系统,其中,所述经修改的页面表格条目包括:设置为指示存储器数据将被复制的真值的复制属性、到所述第一物理地址的第一物理页面索引、以及包括副本地址的到所述第二物理地址的第二物理页面索引。
31.根据权利要求30所述的系统,其中,所述系统存储器管理器还包括被配置为进行以下操作的逻辑单元:
接收针对对所述单个虚拟页面地址的写事务的另一个请求;
执行对所述经修改的页面表格条目的查找;以及
如果所述复制属性被设置为所述真值,则读所述副本地址并且将所述存储器数据刷新到所述第一物理地址和所述第二物理地址两者。
32.根据权利要求31所述的系统,其中,所述系统存储器管理器还包括被配置为进行以下操作的逻辑单元:
如果所述复制属性被设置为假值,则将所述存储器数据刷新到所述第一物理地址。
33.根据权利要求30所述的系统,其中,所述系统存储器管理器还包括被配置为进行以下操作的逻辑单元:
接收针对对所述单个虚拟页面地址的读事务的另一个请求;
执行对所述经修改的页面表格条目的查找;以及
如果所述复制属性被设置为真值,则读所述副本地址并且从所述第一物理地址和所述第二物理地址中较近的地址执行高速缓存填充。
34.根据权利要求33所述的系统,其中,所述系统存储器管理器还包括被配置为进行以下操作的逻辑单元:
如果所述复制属性被设置为假值,则从所述第一物理地址执行高速缓存填充。
35.根据权利要求28所述的系统,其中,所述第一本地易失性存储器设备和所述第二本地易失性存储器设备中的一个或多个本地易失性存储器设备包括:动态随机存取存储器(DRAM)设备。
36.根据权利要求28所述的系统,其中,所述便携式计算设备包括:移动电话、平板计算机、导航设备以及便携式游戏控制台中的一个。
CN201580062124.5A 2014-12-04 2015-11-20 用于在非统一存储器架构中提供改进的延迟的系统和方法 Active CN107111560B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/560,450 US9542333B2 (en) 2014-12-04 2014-12-04 Systems and methods for providing improved latency in a non-uniform memory architecture
US14/560,450 2014-12-04
PCT/US2015/061989 WO2016089632A1 (en) 2014-12-04 2015-11-20 Systems and methods for providing improved latency in a non-uniform memory architecture

Publications (2)

Publication Number Publication Date
CN107111560A CN107111560A (zh) 2017-08-29
CN107111560B true CN107111560B (zh) 2021-01-08

Family

ID=54834930

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580062124.5A Active CN107111560B (zh) 2014-12-04 2015-11-20 用于在非统一存储器架构中提供改进的延迟的系统和方法

Country Status (9)

Country Link
US (1) US9542333B2 (zh)
EP (1) EP3227787B1 (zh)
JP (1) JP6676052B2 (zh)
KR (1) KR20170091102A (zh)
CN (1) CN107111560B (zh)
BR (1) BR112017011765A2 (zh)
CA (1) CA2964303A1 (zh)
TW (1) TW201633151A (zh)
WO (1) WO2016089632A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9575881B2 (en) 2014-12-04 2017-02-21 Qualcomm Incorporated Systems and methods for providing improved latency in a non-uniform memory architecture
US11157416B2 (en) * 2020-02-27 2021-10-26 Micron Technology, Inc. Firmware loading for a memory controller
CN111782411A (zh) * 2020-07-02 2020-10-16 江苏华创微系统有限公司 在numa系统中提升抢锁操作公平性的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120226850A1 (en) * 2011-03-04 2012-09-06 Sony Corporation Virtual memory system, virtual memory controlling method, and program
CN102884506A (zh) * 2010-05-11 2013-01-16 高通股份有限公司 使用用于转换并存储数据值的指令来配置替代存储器存取代理
CN103257929A (zh) * 2013-04-18 2013-08-21 中国科学院计算技术研究所 一种虚拟机内存映射方法及系统

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07182298A (ja) * 1993-12-22 1995-07-21 Canon Inc 情報処理方法及び装置
US5897664A (en) 1996-07-01 1999-04-27 Sun Microsystems, Inc. Multiprocessor system having mapping table in each node to map global physical addresses to local physical addresses of page copies
JPH10312338A (ja) * 1997-05-13 1998-11-24 Toshiba Corp メモリ制御装置、及びメモリ制御方法
US6049853A (en) 1997-08-29 2000-04-11 Sequent Computer Systems, Inc. Data replication across nodes of a multiprocessor computer system
US6167437A (en) 1997-09-02 2000-12-26 Silicon Graphics, Inc. Method, system, and computer program product for page replication in a non-uniform memory access system
ATE254778T1 (de) 1997-09-05 2003-12-15 Sun Microsystems Inc Nachschlagtabelle und verfahren zur datenspeicherung darin
US6785783B2 (en) 2000-11-30 2004-08-31 International Business Machines Corporation NUMA system with redundant main memory architecture
US6871219B2 (en) 2001-03-07 2005-03-22 Sun Microsystems, Inc. Dynamic memory placement policies for NUMA architecture
US7360056B2 (en) 2003-04-04 2008-04-15 Sun Microsystems, Inc. Multi-node system in which global address generated by processing subsystem includes global to local translation information
US7765381B2 (en) 2003-04-04 2010-07-27 Oracle America, Inc. Multi-node system in which home memory subsystem stores global to local address translation information for replicating nodes
US8417913B2 (en) * 2003-11-13 2013-04-09 International Business Machines Corporation Superpage coalescing which supports read/write access to a new virtual superpage mapping during copying of physical pages
US7921261B2 (en) 2007-12-18 2011-04-05 International Business Machines Corporation Reserving a global address space
US8451281B2 (en) 2009-06-23 2013-05-28 Intel Corporation Shared virtual memory between a host and discrete graphics device in a computing system
US8392736B2 (en) * 2009-07-31 2013-03-05 Hewlett-Packard Development Company, L.P. Managing memory power usage
US8560757B2 (en) 2011-10-25 2013-10-15 Cavium, Inc. System and method to reduce memory access latencies using selective replication across multiple memory ports
US9361233B2 (en) * 2013-12-20 2016-06-07 Intel Corporation Method and apparatus for shared line unified cache
US9558041B2 (en) * 2014-09-05 2017-01-31 Telefonaktiebolaget L M Ericsson (Publ) Transparent non-uniform memory access (NUMA) awareness
US9575881B2 (en) 2014-12-04 2017-02-21 Qualcomm Incorporated Systems and methods for providing improved latency in a non-uniform memory architecture

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102884506A (zh) * 2010-05-11 2013-01-16 高通股份有限公司 使用用于转换并存储数据值的指令来配置替代存储器存取代理
US20120226850A1 (en) * 2011-03-04 2012-09-06 Sony Corporation Virtual memory system, virtual memory controlling method, and program
CN103257929A (zh) * 2013-04-18 2013-08-21 中国科学院计算技术研究所 一种虚拟机内存映射方法及系统

Also Published As

Publication number Publication date
EP3227787B1 (en) 2020-03-04
JP2018502379A (ja) 2018-01-25
US9542333B2 (en) 2017-01-10
US20160162415A1 (en) 2016-06-09
EP3227787A1 (en) 2017-10-11
CN107111560A (zh) 2017-08-29
JP6676052B2 (ja) 2020-04-08
BR112017011765A2 (pt) 2018-02-20
CA2964303A1 (en) 2016-06-09
WO2016089632A1 (en) 2016-06-09
TW201633151A (zh) 2016-09-16
KR20170091102A (ko) 2017-08-08

Similar Documents

Publication Publication Date Title
CN107003940B (zh) 用于在非统一存储器架构中提供改进的延迟的系统和方法
US20170177497A1 (en) Compressed caching of a logical-to-physical address table for nand-type flash memory
US10628308B2 (en) Dynamic adjustment of memory channel interleave granularity
US10769073B2 (en) Bandwidth-based selective memory channel connectivity on a system on chip
US20150293845A1 (en) Multi-level memory hierarchy
KR102354848B1 (ko) 캐시 메모리 장치 및 이를 포함하는 전자 시스템
CN106575273B (zh) 用于扩展片上系统的存储器的系统和方法
CN117093371B (zh) 缓存资源分配方法、装置、电子设备和存储介质
CN107111560B (zh) 用于在非统一存储器架构中提供改进的延迟的系统和方法
EP3427153B1 (en) Multi-rank collision reduction in a hybrid parallel-serial memory system
US20180137045A1 (en) Automatic memory management using a memory management unit
US9772776B2 (en) Per-memory group swap device
US10725932B2 (en) Optimizing headless virtual machine memory management with global translation lookaside buffer shootdown
US20180336141A1 (en) Worst-case memory latency reduction via data cache preloading based on page table entry read data
US12067237B2 (en) Flexible memory system
US20160320972A1 (en) Adaptive compression-based paging
US11714753B2 (en) Methods and nodes for handling memory

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
GR01 Patent grant
GR01 Patent grant