CN110383254A - 优化与网络节点相关联的内存映射 - Google Patents

优化与网络节点相关联的内存映射 Download PDF

Info

Publication number
CN110383254A
CN110383254A CN201780085451.1A CN201780085451A CN110383254A CN 110383254 A CN110383254 A CN 110383254A CN 201780085451 A CN201780085451 A CN 201780085451A CN 110383254 A CN110383254 A CN 110383254A
Authority
CN
China
Prior art keywords
page
memory
network equipment
network node
network
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.)
Granted
Application number
CN201780085451.1A
Other languages
English (en)
Other versions
CN110383254B (zh
Inventor
安基特·金达尔
普纳库玛尔·萨瓦高卡尔
柯优尔·楚加尔
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.)
Ampere Computing LLC
Original Assignee
Ampere Computing LLC
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 Ampere Computing LLC filed Critical Ampere Computing LLC
Publication of CN110383254A publication Critical patent/CN110383254A/zh
Application granted granted Critical
Publication of CN110383254B publication Critical patent/CN110383254B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • 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
    • 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/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/154Networked environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

各种方面提供了优化与网络节点相关联的内存映射。例如,系统可包括第一网络节点和第二网络节点。所述第一网络节点响应于与所述第一网络节点的虚拟中央处理单元相关联的无效内存访问生成内存页请求。所述第二网络节点响应于所述第二网络节点包括与所述内存页请求相关联的内存空间的确定接收所述内存页请求。所述第一网络节点还基于由所述第一网络节点储存的一组内存页映射,来映射与所述内存页请求相关联的内存页。

Description

优化与网络节点相关联的内存映射
技术领域
本主题公开一般涉及虚拟计算机系统,尤其涉及多节点网络系统中的内存映射、以及与其相关联的方法。
技术背景
虚拟计算机是模拟硬件计算机环境的软件计算机环境。例如,与能够模拟中央处理单元和/或其他硬件组件的虚拟计算机相关联的管理程序。虚拟计算机系统中,管理虚拟计算机环境的操作系统可由与第一处理器核芯相关联的第一网络节点维持。第一网络节点可从网络接收数据包并将数据包提供至管理虚拟计算机环境的操作系统。当数据包未被映射到第一网络节点时,与第二处理器核芯相关联的第二网络节点还可以用于提供用于数据包的内存页数据。第一网络节点和第二网络节点还可协作处理与虚拟计算机环境的虚拟中央处理单元相关联的无效内存访问。然而,期望降低虚拟计算机环境中的缓存颠簸(cachethrashing)(例如,在内存映射进程期间与内存相关的重复内存分页和/或过度数据交换)。另外,期望通过改进虚拟计算机环境的内存映射进程来改进虚拟计算机环境的性能。
发明内容
在实施例的实施方案中,一种系统包括第一网络节点和第二网络节点。所述第一网络节点配置成响应于与所述第一网络节点的虚拟中央处理单元相关联的无效内存访问生成内存页请求。所述第二网络节点配置成响应于所述第二网络节点包括与所述内存页请求相关联的内存空间的确定接收所述内存页请求。所述第一网络节点还配置成基于由所述第一网络节点储存的一组内存页映射,映射与所述内存页请求相关联的内存页。
在另一实施例的实施方案中,一种方法提供了响应于与第一网络设备相关联的无效内存访问,生成内存页请求;接收与所述内存页请求相关联的内存页;基于由所述第一网络设备储存的一组内存页映射确定与所述内存页相关联的页表条目;和执行与所述页表条目相关联的内存映射进程。
在又一实施例的实施方案中,一种网络设备包括内存和内存管理器。所述内存配置成储存一组内存页映射。所述内存管理器配置成响应于与所述网络设备相关联的无效内存访问,生成内存页请求;接收与所述内存页请求相关联的内存页;基于所述一组内存页映射确定与所述内存页相关联的页表条目;和执行与所述页表条目相关联的内存映射进程。
附图说明
图1为示出了根据本文所述各种方面的多节点系统的实施例、非限制性实施方案的框图。
图2为示出了根据本文所述各种方面的多节点系统的另一实施例、非限制性实施方案的框图。
图3为示出了根据本文所述各种方面的多节点系统的又一实施例、非限制性实施方案的框图。
图4为示出了根据本文所述各种方面的与和无效内存访问相关的映射进程相关联的系统的一个实施例、非限制性实施方案的框图。
图5为示出了根据本文所述各种方面的与和无效内存访问相关的映射进程相关联的系统的另一实施例、非限制性实施方案的框图。
图6示出了根据本文所述各种方面的页表条目的实施例、非限制性实施方案。
图7示出了用于优化与网络节点相关联的内存映射方法的实施例、非限制性实施方案的流程图。
图8示出了用于优化与网络节点相关联的内存映射方法的实施例、非限制性实施方案的另一流程图。
图9示出了用于优化与网络节点相关联的内存映射方法的实施例、非限制性实施方案的又一流程图。
图10示出了能够与本文所述一个或多个方面结合实施的电子计算环境的实施例的框图。
图11示出了能够与本文所述一个或多个方面结合可操作的数据通信网络的实施例的框图。
具体实施方式
参照附图描述本文的公开,其中,相同的附图标记始终用于指代相同的元件。在以下描述中,出于解释的目的,为了提供本主题创新的透彻理解,阐述了许多具体细节。然而,显而易见的是,各种公开的方面可在没有这些具体细节的情况下实践。在其他实例中,为了便于描述本主题创新,以框图形式显示了已知的结构和设备。
在网络系统(例如,虚拟计算机网络系统)中,网络设备(例如,与虚拟中央处理单元相关联的网络设备)可执行无效内存访问。例如,与网络设备相关联的虚拟中央处理单元可尝试访问当前不属于虚拟中央处理单元的访客物理地址。这样,网络设备可执行进一步处理,以确定与无效内存访问相关联的内存页。在某些实施方案中,网络设备和耦合至该网络设备的另一网络设备可协同处理无效内存访问。网络设备也可相对于内存页执行进一步处理。例如,网络设备可解析内存页表以确定内存页的页表条目。通常,网络设备可在与内存页表相关联的内存页表游走进程期间解析内存页表。然而,与网络设备相关联的内存页表游走进程可导致过度的缓存颠簸(例如,内存页表游走进程期间与内存相关的重复内存分页和/或过度数据交换)。另外,与网络设备相关联的内存页表游走进程可导致网络设备和/或网络系统性能下降。
为了解决这些和/或其他问题,本公开的各种方面提供了一种改进的多节点网络系统(例如,多节点虚拟计算机网络系统)。例如,可优化与网络设备相关联的内存映射(例如,访客物理地址映射)和/或内存解映射(例如,访客物理地址解映射)。一方面,可从与网络设备相关联的内存映射进程和/或内存解映射进程移除内存页表(例如,内存转换表)的内存页表游走(例如,软件页表游走)。例如,一组内存页映射可由网络设备储存,而不是执行内存页表游走进程。响应于与网络设备相关联的操作系统满足定义标准的确定(例如,响应于操作系统正在启动的确定)网络设备可以储存该组内存页映射。与内存地址(例如,访客物理地址)和/或一组内存页映射相关联的函数(例如,散列函数)也可用于以促进与网络设备相关联的内存映射和/或内存解映射。这样,可以减少与网络设备相关联的缓存颠簸,可以减少多节点网络系统中内存映射进程期间访问的数据量,可以减少多节点网络系统中与无效内存访问相关联的延迟,可以减少多节点网络系统中与内存映射进程相关联的延迟,可以减少多节点网络系统中与无效内存访问相关联的处理循环数,可以减少多节点网络系统中与内存映射进程相关联的处理循环数,和/或可以改进多节点网络系统的性能(例如,多节点网络系统中的网络设备的性能)。
现转至图1,显示了示出根据本文所述各种方面的系统100的实施例、非限制性实施方案的框图。系统100可以是至少包括网络设备102、网络设备104和访客操作系统(operating system,OS)设备106的多节点系统(例如,多节点相干系统(coherentsystem))和/或网络系统(例如,虚拟计算机网络系统)。在实施方案中,系统可以是多节点系统的内存子系统。网络设备102和网络设备104可以是硬件设备。例如,网络设备102可以是第一片上系统(system on a chip,SoC),且网络设备104可以是第二SoC。另外,在实施中,访客OS设备106可以是与网络设备102和网络设备104分离的硬件设备。在一个实施例中,系统100可与虚拟网络系统相关联。系统100可以由各种系统使用,该各种系统例如但不限于,数据中心系统、数据挖掘系统、实时分析系统、机器学习系统、预测分析系统、媒体内容系统、内容管理系统、计算机网络系统、通信系统、路由器系统、服务器系统、高可用性服务器系统(例如,电信服务器系统)、网络(Web)服务器系统、磁盘阵列系统、电源插入板系统、基于云的系统和/或其他类型的系统。应当领会的是,系统100可包括两个以上的网络设备。例如,在某些实施中,系统100可包括四个网络设备,系统100可包括八个网络设备等。
网络设备102可至少包括处理器核芯108和第一内存110。处理器核芯108可与至少一个内存管理器112相关联。网络设备104可至少包括处理器核芯114和第二内存116。处理器核芯114可与至少一个内存管理器118相关联。访客OS设备106可与操作系统120相关联。操作系统120可以是与网络设备102和网络设备104相关联的操作系统。例如,操作系统120可分布在网络设备102和网络设备104之间(例如,在处理器核芯108和处理器核芯114之间)。例如,操作系统120的第一部分可由网络设备102(例如,处理器核芯108)维持,操作系统120的第二部分可由网络设备104(例如,处理器核芯114)维持。因此,网络设备102和网络设备104可与相应的操作系统(例如,操作系统114)相关联。在一个实施例中,网络设备102可以是网络系统的第一节点(例如,第一网络节点),网络设备104可以是网络系统的第二节点(例如,第二网络节点)。此外,网络设备102可通过通信信道126耦合至网络设备104。通信信道126可以是物理通信信道,例如但不限于,周边装置互连高速(Peripheral ComponentInterconnect Express,PCIe)通信信道、以太网通信信道、远程直接内存访问(remotedirect memory access,RDMA)通信信道、另外形式的通信信道等。另外,通信信道126可与物理传输层(例如,物理传输层协议)相关联。一方面,网络设备102的内存管理器112和网络设备104的内存管理器118可维持网络设备102和网络设备104之间的内存一致性。
访客OS设备106可提供与网络设备102和网络设备104相关联的访客OS视图。一方面,访客OS设备106可包括总内存视图122。总内存视图122可提供与网络设备102的第一内存110和网络设备104的第二内存116相关联的内存总量的视图。在一个实施例中,当操作系统120满足定义标准时(例如,当操作系统120启动时),访客OS设备106可确定与网络设备102和网络设备104相关联的内存总量。例如,当操作系统120满足定义标准时(例如,当操作系统120启动时),访客OS设备106可确定在网络设备102的第一内存110和网络设备104的第二内存116处可用的总内存。
操作系统120可与虚拟计算机环境相关联。例如,操作系统120可与虚拟中央处理单元124a-n相关联。在某些实施方案中,至少处理器核芯108可与负责与网络设备102相关联的虚拟化功能的管理程序相关联。例如,与处理器核芯108相关联的管理程序可管理与虚拟中央处理单元124a-n相关联的虚拟化功能。与处理器核芯108相关联的管理程序可以是创建和/或运行与操作系统120相关联的虚拟中央处理单元124a-n的计算机软件或计算机固件。在实施方案中,除了管理与网络设备102和/或网络设备104相关联的内存一致性,内存管理器112还可以是用于虚拟中央处理单元124a-n的虚拟机管理器。在实施中,访客OS设备106可对应于与网络设备102和/或网络设备104相关联的单个虚拟中央处理单元(例如,虚拟中央处理单元124a-n)。
网络设备102可响应于与网络设备102相关联的无效内存访问生成内存页请求。一方面,网络设备102可响应于与虚拟中央处理单元124a-n相关联的无效内存访问生成内存页请求。在非限制性实施例中,当虚拟中央处理单元124a尝试访问目前不属于虚拟中央处理单元124a的第一内存110的内存空间时,虚拟中央处理单元124a可与无效内存访问相关联。在一个实施例中,当虚拟中央处理单元124a尝试访问目前不属于虚拟中央处理单元124a的访客物理地址页面时,虚拟中央处理单元124a可与无效内存访问相关联。由网络设备102生成的内存页请求可由内存管理器112响应于与内存页请求相关联的内存页属于网络设备102的确定来处理。然而,由网络设备102生成的内存页请求可由网络设备104(例如,内存管理器118)响应于与内存页请求相关联的内存页属于网络设备102的确定(例如,响应于与内存页请求相关联的内存页属于网络设备104的确定)来处理。例如,响应于与内存页请求相关联的内存页属于网络设备104的确定,网络设备102(例如,内存管理器112)可通过通信信道126将内存页请求发送到网络设备104(例如,内存管理器118)。响应于接收内存页请求,网络设备104(例如,内存管理器118)可确定和/或定位与内存页请求相关联的内存数据(例如,内存页)。在一个实施例中,内存数据(例如,内存页)可储存在网络设备104的第二内存116中。网络设备104(例如,内存管理器118)还可将内存数据(例如,内存页)发送到网络设备102(例如,内存管理器112)。然后,网络设备102(例如,内存管理器112)可基于预先由网络设备102储存的一组内存页映射来映射与内存页请求相关联的内存页。该组内存页映射可包括用于与第一内存110和/或第二内存116相关联的内存页的一组页表条目地址。在实施方案中,网络设备102的内存管理器112可在与网络设备102相关联的内存空间中分配一组内存页面映射。例如,网络设备102的内存管理器112可响应于操作系统120满足定义标准的确定(例如,响应于操作系统120正在启动的确定)分配一组内存页映射。在一个实施例中,在启动时刻,网络设备102的内存管理器112(例如,内存管理器112的管理程序)可在与第一内存110相关联的访客物理地址空间中分配一组内存页映射。
在实施中,响应于与访客OS设备106相关联的虚拟中央处理单元124a-n执行无效内存访问的确定,可以将中止故障信号(例如,数据中止故障或指令中止故障)提供至内存管理器112。例如,响应于与访客OS设备106相关联的虚拟中央处理单元124a-n执行无效内存访问的确定,可将用于访客物理地址页面的中止故障信号(例如,数据中止故障或指令中止故障)提供至内存管理器112。访客物理地址页面可以是用于与访客OS设备106相关联的虚拟中央处理单元124a-n的物理地址页面。内存管理器112可配置成处理与中止故障信号相关联的故障。例如,内存管理器112可生成与无效内存访问相关联的内存页请求。内存页请求可包括用于与无效内存访问相关联的内存数据的请求。如上所述,内存管理器112可响应于网络设备104拥有与无效内存访问相关联的内存空间的确定将内存页请求传输至网络设备104。例如,响应于与无效内存访问相关联的内存空间属于另一网络设备(例如,网络设备104)的通过内存管理器112的确定,内存管理器112可生成页面请求信息(例如,内存页请求)。
一方面,网络设备102的内存管理器112可确定内存页的所有权。例如,网络设备102的内存管理器112可确定网络设备102或网络设备104是否是内存页的所有者。内存页例如可以是访客物理地址页面。响应于网络设备104是内存页的所有者的确定(例如,响应于内存页映射在网络设备104处的确定),内存管理器112可发送页面请求命令至网络设备104。内存管理器112可以例如通过通信信道126发送页面请求命令。响应于接收页面请求命令,网络设备104的内存管理器118可确定用于内存页的页表条目地址。另外,网络设备104的内存管理器118可通过在内存页的页表条目中设置物理地址、有效位(valid bit)和/或权限位(permission bit)来映射内存页。然而,响应于网络设备102是内存页的所有者的确定(例如,响应于内存页映射在网络设备102处的确定),网络设备102的内存管理器112可确定用于内存页的页表条目地址。另外,网络设备102的内存管理器112可通过在在内存页的页表条目中设置物理地址、有效位和/或一组权限位来映射内存页。然后,响应于映射内存页的确定,与虚拟中央处理单元124a-n相关联的处理控制可返回至操作系统120。例如,内存管理器112响应于与内存页相关联的无效内存访问可控制至少部分由网络设备102的处理。另外,在映射与无效内存访问相关联的内存页后,可以将该部分处理交还至操作系统120。
在某些实施方案中,网络设备102可接受一个或多个数据包。该一个或多个数据包可与网络(例如,外网(external network)、外部网络(outside network)等)相关联。例如,数据包可通过网络(例如,外网、外部网络等)被传输至网络设备102。在一个实施例中,数据包可通过相干光网络被传输至网络设备102。另外,在某些实施中,由网络设备102(例如,与网络设备102相关联的虚拟中央处理单元124a-n)执行的无效内存访问可以与由网络设备102接收的数据包相关联。一方面,与处理器核芯108相关联的管理程序可以管理和/或分析由网络设备102接收的数据包。另外,与处理器核心108相关联的管理程序可将数据包转发至虚拟中央处理单元124a-n,以进一步处理。另一方面,网络设备102可以维护关于系统100的信息,以促进数据包的传输,该数据包例如但不限于,系统100中网络设备的数量(例如,系统100中网络节点的数量)、系统100中活动网络设备的数量、系统100中各网络设备的网络地址、关于系统100的其他信息等。
图2为示出了根据本文所述各种方面的系统200的实施例、非限制性实施方案的框图。系统200可以是网络系统的实施方案,该网络系统至少包括网络设备102、网络设备104和访客OS设备106。网络设备102可包括处理器核芯108和第一内存110。处理器核芯108可至少与内存管理器112相关联。网络设备104可至少包括处理器核芯114和第二内存116。处理器核芯114可至少与内存管理器118相关联。在实施方案中,内存管理器112可包括内存页映射202。另外,内存理器118可包括内存页映射204。访客OS设备106可与操作系统120和/或总内存视图122相关联。
内存页映射202可以是由网络设备102维护的一组内存页表映射。类似地,内存页映射204可以是由网络设备104维护的另一组内存页表映射。一方面,内存页映射202可由网络设备102使用以促进确定内存数据和/或执行用于与网络设备102相关联的无效内存访问的内存映射进程。另外,内存页映射204可以由网络设备104使用以促进确定内存数据和/或执行用于与网络设备102相关联的无效内存访问的内存映射进程。内存页映射202可包括用于与第一内存110和/或第二内存116相关联的内存页的一组页表条目地址。另外地或可选地,内存页映射204可包括用于与第一内存110和/或第二内存116相关联的内存页的一组页表条目地址。
在实施方案中,内存页映射202可包括用于与第一内存110和/或第二内存相关联的各内存页(例如,各访客物理地址页面)的一组页表条目地址。另外地或可选地,内存页映射204可包括用于与第一内存110和/或第二内存116相关联的各内存页(例如,各访客物理地址页面)的一组页表条目地址。在一个实施例中,与内存页映射202相关联的一组页表条目地址可对应于与内存页映射204相关联的一组页表条目地址。在另一实施例中,与内存页映射202相关联的一组页表条目地址可不同于与内存页映射204相关联的一组页表条目地址。在另一实施方案中,内存页映射202可以是访客物理地址到物理地址页面的映射。例如,内存页映射202可以是由网络设备102维护的一组访客物理地址到物理地址的映射。类似地,内存页映射204可以是访客物理地址到物理地址页面的映射。例如,内存页映射204可以是由网络设备104维护的另一组访客物理地址到物理地址的映射。在又一实施方案中,可以响应于操作系统120满足定义标准的确定,来生成内存页映射202和/或内存页映射204。例如,可以响应于操作系统120启动的确定来生成内存页映射202和/或内存页映射204。在又一实施方案中,总内存视图122可以用于生成内存页映射202和/或内存页映射204。
内存页映射202和/或内存页映射204可以用于促进与映射内存数据相关联的内存页游走进程的移除。内存页映射202和/或内存页映射204还可以促进内存页(例如,访客物理地址页面)和页表条目之间的直接映射。例如,可以在不执行页表游走的情况下实时地(在恒定时间内)将访客物理地址页面映射至物理页面。因此,可以使用与网络设备102和/或网络设备104相关联的最小处理周期来执行对页表条目的修改。此外,使用内存页映射202和/或内存页映射204可提供与网络设备102和/或网络设备104相关联的改进的系统性能。
图3显示了示出根据本文所述各种方面的系统300的实施例、非限制性实施方案的框图。系统300可以是网络系统的一个实施方案,该网络系统至少包括网络设备102、网络设备104和访客OS设备106。网络设备102可包括处理器核芯108、第一内存110和第一静态内存(static memory)302。处理器核芯108可至少与内存管理器112相关联。网络设备104可至少包括处理器核芯114、第二内存116和第二静态内存304。处理器核芯114可至少与内存管理器118相关联。访客OS设备106可与操作系统120和/或总内存视图122相关联。
在实施方案中,第一静态内存302可储存内存页映射202。另外,第二静态内存304可储存内存页映射204。一方面,响应于操作系统120与定义标准相关联的确定,第一静态内存302可储存内存页映射202和/或第二静态内存可储存内存页映射204。例如,当操作系统120启动时,第一静态内存302可储存内存页映射202和/或第二固态静态内存304可储存内存页映射204。在另一实施例中,当网络设备102、网络设备104和/或访客OS设备106接通电源时,第一静态内存302可储存内存页映射202和/或第二固态静态内存304可储存内存页映射204。
第一静态内存302可储存用于与网络设备102相关联的各内存页(例如,各访客物理地址页面)的内存页表条目地址。可以在每个内存页的启动时间分配第一静态内存302。另外,当为网络设备102创建内存页表时(例如,当由与处理器核芯108相关联的管理程序创建内存页表时),可以用最后级内存页表条目的地址更新第一静态内存302。另外地或可选地,第二静态内存304可储存用于与网络设备104相关联的各内存页的内存页表条目(例如,各访客物理地址页面)。可以在每个内存页的启动时间分配第二静态内存304。另外,当为网络设备104创建内存页表时(例如,当由与处理器核芯114相关联的管理程序创建内存页表时),可以用最后级内存页表条目的地址更新第二静态内存304。在一个实施例中,由第一静态内存302储存的内存页映射202可对应于由第二静态内存304储存的内存页映射204。在另一实施例中,与由第一静态内存302储存的内存页映射202相关联的一个或多个内存页映射可以不同于与由第二静态内存304储存的内存页映射204相关联的一个或多个内存页映射。
图4为显示了示出根据本文所述各种方面的系统400的一个实施例、非限制性实施方案的框图。系统400可与和无效内存访问相关的映射进程相关联。在实施方案中,系统400可与和网络设备102的处理器核芯108相关的内存管理单元相关联。使用系统400,可以移除关于内存地址空间(例如,关于访客物理地址空间)的内存页表游走(例如,软件页表游走)。例如,可以在与内存地址空间402相关联的无效内存访问的识别后,避免与内存地址空间402相关联的内存页表游走进程。例如,内存地址空间402可以是内存地址页面。在一个实施例中,内存地址空间402可以是访客物理地址空间(例如,访客物理地址页面)。内存地址空间402可包括第一部分404、第二部分406、第三部分408和第四部分410。第一部分404可代表第一页表级l(例如,页表的lth条目),第二部分406可代表第二页表级m(例如,页表的mth条目),且第三部分408可代表第三页表级n(例如,页表的nth条目)。例如,第一部分404可代表0级页表级,第二部分406可代表1级页表级,且第三部分408可代表2级页表级。可以结合第一部分404、第二部分406和第三部分408以形成内存地址(例如,访客物理地址)。另外,第四部分410可代表用于内存页的页面尺寸位(page size bits)(例如,内存页内的字节)。
函数412可将内存地址空间402映射至页表条目414。页表条目414可以是内存页表条目。例如,函数412可以是散列函数,该散列函数可用于将内存地址空间402的数据映射至页表条目414。例如,函数412(例如,函数F(l,m,n))可使用与第一部分404、第二部分406和第三部分408相关联的内存信息。可以从内存页映射202(例如,由第一静态内存302储存的内存页映射202)和/或内存页映射204(例如,由第二静态内存304储存的内存页映射204)确定与第一部分404、第二部分406和第三部分408相关联的内存信息。例如,因为内存页映射202和/或内存页映射204可以例如在启动时间被分配且不会在处理与网络设备102和/或网络设备104相关联的生命期(lifetime)期间改变,所以函数412可使用内存页映射202和/或内存页映射204以确定与第一部分404、第二部分406和第三部分408相关联的内存信息。一方面,函数412可使用与内存页映射202和/或内存页映射204相关联的一组页表条目地址,以促进将与第一部分404、第二部分406和第三部分408相关联的内存地址(例如,访客物理地址)映射至页表条目414。
页表条目414可包括在内存页表416中。例如,内存页表416可以是用于储存虚拟地址和物理地址之间的映射的数据结构。在一个实施例中,内存页表416可以是包括一组页表条目(例如,8192个页表条目)的三级内存页表,且页表条目414可以是内存页表416的单个页表条目。在实施中,内存地址空间402可与第二内存116相关联。另外,页表条目414可与第一内存110相关联。例如,页表条目414可以是用于内存地址空间402的页表入口(例如,用于访客物理地址页面的页表入口)。在一个实施例中,页表条目414可以是物理地址页面。一方面,函数412可以在不执行页表游走的情况下在恒定时间中将内存地址空间402映射至页表条目414。例如,对于不同的内存地址空间输入,函数412的执行时间可以是恒定的。
图5为显示了示出根据本文所述各种方面的系统500的实施例、非限制性实施方案的框图。系统500可以与和无效内存访问相关的映射进程相关联。在实施方案中,系统500可与网络设备102相关联。系统500可包括处理器核芯108、内存管理单元502和第一内存110。内存管理单元502可与函数412相关联。例如,内存管理单元502可与内存管理器112相关联。内存管理单元502还可允许网络设备102执行与函数412相关联的映射进程,同时允许执行与操作系统120和/或虚拟中央处理单元124a-n相关联的一个或多个其他处理任务。如图5所示,内存管理单元502可使用函数412以将内存页(例如,访客物理地址页面)映射至物理地址页面(例如,主机物理地址页面),而不是内存页游走进程。
图6为显示了示出根据本文所述各种方面的页表条目414的实施例、非限制性实施方案的框图。页表条目414可包括物理地址602、权限位604和/或有效位606。例如,页表条目414的物理地址602可对应于物理内存(例如,第一内存110)的地址。例如,页表条目414的权限位604可对应于与和页表条目414相关的内存页相关联的一组权限。例如,页表条目414的权限位604可包括与页表条目414相关联的内存页的写入权限、读权限和/或执行权限。页表条目414的有效位606可表示与页表条目414相关联的内存页是否有效。例如,页表条目414的有效位606可表示与页表条目414相关联的内存页目前是否储存在第一内存110中。一方面,网络设备102(例如,内存管理器112)可在内存页的映射期间(例如,在内存映射进程期间)修改页表条目414(例如,物理地址602、权限位604和/或有效位606)。另一方面,网络设备102(例如,内存管理器112)可响应于执行函数412修改页表条目414(例如,物理地址602、权限位604和/或有效位606)。
本公开中解释的系统、装置或进程的方面可构成在机器内体现、例如在与一个或多个机器相关联的一个或多个计算机可读介质(mediums)(或媒介(media))中体现、的机器可执行组件。当这些组件由例如计算机、计算设备、虚拟机等的一个或多个机器执行时,这些组件可使机器执行所述操作。在实施中,内存管理器112、内存管理器118和/或内存管理单元502可构成在与处理器核芯(例如,处理器核芯108和/或处理器核芯114)相关联的内存内体现的机器可执行的组件和指令。例如,处理器核芯(例如,处理器核芯108和/或处理器核芯114)可通过系统100、系统200、系统300、系统400和/或系统500促进指令(例如,计算机可执行的组件和指令)的操作。
鉴于上述实施例的系统,参照图7至图9的流程图,可以更好地领会根据所述主题实现的方法。虽然出于简化说明的目的,以一系列方框示出并描述该方法,但应当理解和领会的是,所要求保护的主题不受方框的顺序限制,因为一些方框可以以不同的顺序出现和/或与本文中描画和描述的其他方框同时出现。此外,并非需要所有示出的方框来实现下文中描述的方法。
参照图7,示出了用于优化与网络节点相关联的内存映射的方法700的实施例、非限制性实施方案的流程图。方法700可与网络系统(例如,系统100、系统200、系统300、系统400或系统500)相关联。此外,方法700可与网络设备(例如,网络设备102)相关联。方法700可开始于方框702,其中响应于与第一网络设备相关联的无效内存访问生成内存页请求。例如,无效内存访问可由与第一网络设备相关联的虚拟中央处理单元执行。在方框704处,响应于第二网络设备包括与内存页请求相关联的内存空间的确定,将该内存页请求传输至第二网络设备。第二网络设备可通过物理通信信道耦合至第一网络设备。在方框706处,接收与内存页请求相关联的内存页。例如,第二网络设备可在第二网络设备的内存中确定和/或定位内存页。此外,第二网络设备可通过物理通信信道将内存页传输至第一网络设备。因此,可从第二网络设备的内存接收内存页。
在方框708处,基于由第一网络设备储存的一组内存页映射,确定与内存页相关联的页表条目。例如,可使用散列函数以基于该组内存页映射将内存页的内存地址映射至页表条目。该组内存页映射可预先由第一网络设备和/或第二网络设备储存。例如,第一网络设备和/或第二网络设备可响应于与第一网络设备和/或第二网络设备相关联的操作系统满足定义标准的确定,在第一网络设备和/或第二网络设备的内存(例如,静态内存)中储存该组页面映射。一方面,可在不执行与包括页表条目的内存页表相关联的内存页表游走程序的情况下,确定页表条目。在方框710处,执行与页表条目相关联的内存映射进程。例如,可在内存映射进程期间修改页表条目。
参照图8,示出了用于优化与网络节点相关联的内存映射的方法800的另一实施例、非限制性实施方案的流程图。方法800可与网络系统(例如,系统100、系统200、系统300、系统400或系统500)相关联。此外,方法800可与网络设备(例如,网络设备102)相关联。方法800可开始于方框802,其中响应于与网络设备相关联的无效内存访问生成内存页请求。在方框804处,响应于网络设备的内存包括与内存页请求相关联的内存空间的确定,从网络设备的内存接收与内存页请求相关联的内存页。在方框806处,基于由网络设备储存的一组内存页映射,确定与内存页相关联的页表条目。例如,该组内存页映射可储存在网络设备的静态内存中。一方面,可在不执行与包括页表条目的内存页表相关联的内存页表游走程序的情况下,确定页表条目。在方框808处,执行与页表条目相关联的内存映射进程。
参照图9,示出了用于优化与网络节点相关联的内存映射的方法900的实施例、非限制性实施方案的又一流程图。方法900可与网络系统(例如,系统100、系统200、系统300、系统400或系统500)相关联。此外,方法900可与网络设备(例如,网络设备102)相关联。方法900可开始于方框902,其中确定与网络设备相关联的操作系统是否满足定义标准。例如,可以确定与网络设备相关联的操作系统是否正在启动。操作系统可与一组虚拟中央处理单元相关联。在方框904处,响应于操作系统满足定义标准的确定,储存用于页表的一组内存页映射。例如,该组内存页映射可储存在网络设备的静态内存中。在方框906处,响应于无效内存访问,基于该组内存页映射(例如,在不执行与页表条目相关联的内存页表游走进程的情况下),确定与内存页相关联的页表条目。一方面,可在不执行与包括页表条目的内存页表相关联的内存页表游走程序的情况下,确定页表条目。在方框908处,执行与页表条目相关联的内存映射进程。
示例性的计算环境
如前所述,有利地,本文中描述的技术可应用于期望优化与网络设备相关联的内存映射进程(例如,与网络设备相关联的内存映射和/或内存解映射)的任何设备。因此,应当理解,预期手持式、便携式和其他计算设备以及所有类型的计算对象结合各种非限制性实施方案以使用,即设备可能希望优化与网络设备相关联的内存映射进程(例如,与网络设备相关联的内存映射和/或内存解映射)的任何地方。因此,以下在图10中描述的以下通用(general purpose)远程计算机仅是一个实施例,并且所公开的主题可用具有网络/总线互操作性和交互的任何客户端来实现。因此,所公开的主题可在其中涉及非常少或最少客户端资源的网络化托管服务(networked hosted services)的环境中实现,例如,在其中客户端设备仅作为网络/总线的接口、例如放置在应用中的对象的网络化环境。
尽管不是必需的,但是所公开的主题的一些方面可以部分地通过操作系统来实现,供设备或对象的服务开发者使用,和/或包括在结合所公开的主题的组件运行的应用软件内。软件可以在由一个或多个例如投影显示设备、观看设备或其他设备的计算机执行的例如程序模块或组件的计算机可执行指令的一般上下文中被描述。本领域技术人员将领会的是,所公开的主题可用其他计算机系统配置和协议来实践。
因此,图10示出了合适的计算系统环境1000的实施例,在该计算系统环境1000中可以实现所公开的主题的一些方面,尽管上文已经解释清楚,但是计算系统环境1000仅是用于设备的合适的计算环境的一个实施例,且不旨在对所公开主题的用途或功能的范围提出任何限制。也不应将该计算环境1000解释为具有关于示例性操作环境1000中示出的任何一个组件或组件组合的任何从属(dependency)或要求。
参照图10,用于实现所公开的主题的示例性设备包括计算机1010形式的通用计算设备。计算机1010的组件可包括但不限于处理单元1020、系统内存1030和系统总线1021,系统总线1021将包括系统内存的各种系统组件耦合至处理单元1020。系统总线1021可以是几种类型的总线结构中的任何一种,该总线结构包括内存总线或内存控制器、外围总线和使用各种总线架构中任何一种的本地总线。
计算机1010典型地包括各种计算机可读介质。计算机可读介质可以是计算机1010可访问的任何可用介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以信息存储(例如,计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术实现的易失性的和非易失性的、可移动的和不可移动的介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他内存技术、CDROM、数字通用盘(digital versatile disks,DVD)或其他光盘存储器、磁带盒、磁带、磁盘存储器或其他磁存储设备,或者可用于存储所需信息且可以由计算机1010访问的任何其他介质。通信介质典型地体现为计算机可读指令、数据结构、程序模块或者例如载波或其他传输机构的调制数据信号中的其他数据,且包括任何信息传递介质。
系统内存1030可包括易失性和/或非易失性内存形式的计算机存储介质,例如,只读内存(read only memory,ROM)和/或随机存取内存(random access memory,RAM)。包括有助于例如在启动期间、在计算机1010内的元件之间传输信息的基本例程的基本输入/输出系统(basic input/output system,BIOS)可储存在内存1030中。内存1030典型地还包括可立即访问处理单元1020和/或当前正在由处理单元1020操作的数据和/或程序模块。作为示例而非限制,内存1030还可包括操作系统、应用程序、其他程序模块和程序数据。
计算机1010还可包括其他可移动/不可移动、易失性/非易失性的计算机存储介质。例如,计算机1010可包括从不可移动的、非易失性的磁介质中读取或写入其中的硬盘驱动;从可移动的、非易失性的磁盘读取或写入其中的磁盘驱动;和/或从可移动的、非易失性的光盘,例如CD-ROM或其他光学介质,读取或写入其中的光盘驱动。可用在示例性操作环境中的其他可移动的/不可移动的、易失性的/非易失性的计算机存储介质包括但不限于磁带盒、闪存卡、数字通用盘、数字录像带、固态RAM和固态ROM等。硬盘驱动典型地通过不可移动的例如接口的内存接口连接至系统总线1021,且磁盘驱动或光盘驱动典型地由可移动的例如接口的内存接口连接至系统总线1021。
用户可通过输入设备将命令和信息输入到计算机1010,该输入设备例如是键盘和指示设备,通常称为鼠标、轨迹球或触摸板。其他输入设备可包括麦克风、操纵杆、游戏手柄、卫星天线(satellite dish)、扫描仪、无线设备键盘或语音命令等。这些和其他输入设备通常通过用户输入1040和耦合至系统总线1021的相关接口连接至处理单元1020,但可由诸如并行端口、游戏端口或通用串行总线(universal serial bus,USB)的其他接口和总线结构连接。图形子系统也可连接至系统总线1021。投影显示设备中的投影单元、或观看设备中的平视显示器(head up display,HUD)或其他类型的显示设备也可通过诸如输出接口1050的接口连接至系统总线1021,该接口反过来可以与视频内存通信。除了监控器外,计算机还可包括其他外围输出设备,例如可通过输出接口1050连接的扬声器。
计算机1010可以使用对一个或多个例如远程计算机1070的其他远程计算机的逻辑连接、在网络化或分布式的环境中运行,该远程计算机1070又可以具有与计算机1010不同的介质能力。远程计算机1070可以是个人计算机、服务器、路由器、网络PC、对等设备、个人数字助手(personal digital assistant,PDA)、手机、手持计算设备、投影显示设备、观看设备、或者其他公用网络节点、或者任何其他远程介质消耗设备或传输设备,且可包括有关计算机1010的任何或所有上述元素。图10中描绘的逻辑连接包括网络1071,例如局域网(local area network,LAN)或广域网(wide area network,WAN),但也可包括有线或无线的其他网络/总线。这种网络化环境在家庭、办公室、企业范围计算机网络、内联网和因特网中是常见的。
当在LAN网络化环境中使用时,计算机1010可通过网络接口或适配器连接至LAN1071。当在WAN网络化环境中使用时,计算机1010可典型地包括通信组件、例如调制解调器,或用于在WAN上建立通信的其他方法、例如因特网。可以是内部或外部的通信组件可通过输入1040的用户输入接口或其他合适的机构连接至系统总线1021,该通信组件例如是无线通信组件、调制解调器等。在网络环境中,有关计算机1010的所描绘的程序模块或其部分可储存在远程内存存储设备中。应当领会的是,所示和所述的网络连接为示例性的,且可使用在计算机之间建立通信链接的其他方法。
示例性网络化环境
图11提供了示例性网络化或分布式的计算环境的示意图。分布式计算环境包括计算对象1110、1112等和计算对象或设备1120、1122、1124、1126、1128等,其可包括程序、方法、数据存储、可编程逻辑等,如应用1130、1132、1134、1136、1138和数据存储1140所表示。应当领会的是,计算对象1110、1112等和计算对象或设备1120、1122、1124、1126、1128等可包括不同设备,该不同设备包括多媒体显示设备或图中描绘的类似设备、或其他设备,例如移动电话、个人数字助理(personal digital assistant,PDA)、音频/视频设备、MP3播放器、个人计算机、笔记本电脑等。还应当理解的是,数据存储1140可包括如本文所公开的内存或其他类似的数据存储。
各计算对象1110、1112等和计算对象或设备1120、1122、1124、1126、1128等可与一个或多个其他计算对象1110、1112等和计算对象或设备1120、1122、1124、1126、1128等经由通信网络1142直接地或间接地通信。尽管如图11中的单个元件所示出的,通信网络1142可包括向图11的系统提供服务的其他计算对象和计算设备,和/或可表示未示出的多个互联网络。各计算对象1110、1112等或者计算对象或设备1120、1122、1124、1126、1128等还可包含应用程序,例如,应用程序1130、1132、1134、1136、1138,其可使用应用程序界面(application program interface,API)、或其他对象、软件、固件和/或硬件,其适合于与本文所述的技术和公开内容的通信或其实现。
存在支持分布式计算环境的各种系统、组件和网络配置。例如,计算系统可通过有线或无线系统、通过本地网络或广泛分布的网络连接在一起。目前,许多网络耦合至因特网,这提供了用于广泛分布式计算的基础设施、且包括了许多不同网络,但是任何网络基础设施可用于本文中各种实施方案中所述的示例性通信。
因此,可利用大量网络拓扑和网络基础设施,例如客户端/服务器、对等网络(peer-to-peer)或混合架构。“客户端”是使用与其无关的另一类或组的服务的类或组的成员。客户端可以是进程,即大致是一组指令或任务,该进程请求由另一程序或进程提供的服务的进程,。在无需“知道”有关其他程序或服务本身的任何工作细节的一些情况下,客户端进程利用所请求的服务。
在客户端/服务器基础设施中、特别是网络化系统中,客户端通常是访问由例如服务器的另一计算机提供的共享网络资源的计算机。在图11的说明中,作为非限制性实施例,计算对象或设备1120、1122、1124、1126、1128等可以被认为是客户端,计算对象1110、1112等可以被认为是服务器,其中,计算对象1110、1112等充当提供数据服务的服务器,该数据服务例如是从客户端计算对象或设备1120、1122、1124、1126、1128等接收数据,存储数据,处理数据,将数据传输至客户端计算对象或设备1120、1122、1124、1126、1128等,但是根据情况,任何计算机都可以被认为是客户端、服务器或者客户端和服务器。
服务器典型地是通过例如因特网或无线网络基础设施的远程网络或本地网络可访问的远程计算机系统。客户端进程在第一计算机系统中可以是有效的,并且服务器进程在第二计算机系统中可以是有效的,通过通信介质彼此通信,从而提供分布式功能并允许多个客户端利用服务器的信息收集能力。根据本文所述的技术所使用的任何软件对象可单独提供,或者分布在多个计算设备或对象上。
在通信网络1142或总线是因特网的网络环境中,例如,计算对象1110、1112等可以是Web服务器,该Web服务器其他计算对象或设备1120、1122、1124、1126、1128等通过许多已知协议,例如超文本传输协议(hypertext transfer protocol,HTTP),中的任意一种通信。充当服务器的计算对象1110、1112等还可用作客户端,例如,计算对象或设备1120、1122、1124、1126、1128等,这可以是分布式计算环境的特征。
贯穿本说明书中对“一个实施方案”、“实施方案”、“实施例”、“所公开的方面”或“方面”的引用意味着结合实施方案或方面描述的特定特征、结构或特性包括在本公开的至少一个实施方案或方面中。因此,贯穿本说明书中各种地方出现的短语“在一个实施方案中”、“在一个方面中”或“在实施例中”未必都涉及相同的实施方案。另外,特定特征、结构或特性可以在各种公开的实施方案中以任意合适的方式组合。
如本文所使用的,术语“组件”、“系统”、“引擎”和“架构”等旨在指代计算机或电子相关实体,或者硬件、硬件和软件的组合、软件(例如,执行中)或着固件。例如,组件可以是一个或多个晶体管,内存单元,晶体管或内存单元的排列,门阵列(gate array),可编程门阵列,专用集成电路,控制器,处理器,在处理器上运行的进程,访问半导体内存或与其对接的对象、可执行程序或应用,或计算机等,或其适当组合。组件可包括可擦除编程(例如,至少部分储存在可擦除内存中的进程指令)或硬编程(例如,在制造时烧录在不可擦除内存中的进程指令)。
作为说明,从内存和处理器执行的进程都可以是组件。作为另一实施例,架构可包括电子硬件的排列(例如,并联或串联晶体管)、处理指令和处理器,该处理器以适合于电子硬件排列的方式实现处理指令。此外,架构可包括单个组件(例如,晶体管、门阵列……)或组件的排列(例如,晶体管、与程序电路连接的门阵列、电源引线、电接地、输入信号线和输出信号线等的串联或并联排列)。系统可包括一个或多个组件以及一个或多个架构。一个示例的系统可包括开关块架构(switching block architecture),该开关块构架包括交叉输入/输出线和通过门晶体管(pass gate transistors)、以及电源、信号发生器、通信总线(ses)、控制器、I/O接口、地址寄存器等。应当领会的是,预计定义中会有一些重叠,且架构或系统可以是单独运行(stand-alone)的组件,或者是另一架构、系统等的组件。
除了前述内容,所公开的主题可以使用典型的制造、编程或工程技术实现为方法、装置或工业制品以生产硬件、固件、软件或其任何合适的组合,以控制电子设备实现所公开的主题。本文中所用的术语“装置”和“工业制品”旨在涵盖电子设备,半导体设备,计算机,或从任何计算机可读设备、载体或介质可访问的计算机程序。计算机可读介质可包括硬件介质或软件介质。此外,介质可包括非暂时性介质或传输介质。在一个实施例中,非暂时性介质可包括计算机可读硬件介质。计算机可读硬件介质的特定实施例可包括但不限于磁存储设备(例如,硬盘、软盘、磁条……)、光盘(例如,压缩盘(CD)、数字通用盘(DVD)……)、智能卡和闪存设备(例如,卡、棒、键驱动器……)。计算机可读传输介质可包括载波等。当然,本领域技术人员将认识到,在不脱离所公开主题的范围或精神的情况下,可以对该配置进行许多修改。
以上所述内容包括本主题创新的实施例。当然,出于描述本主题创新的目的,不可能描述每一个可想到的组件或方法的组合,但是本领域普通技术人员可以认识到,本主题创新的许多进一步组合和置换是可能的。因此,所公开的主题旨在包含落入本公开的精神和范围内的所有这样的改变、修改和变化。另外,在详细说明或权利要求中使用的术语“包括(includes)”、“包括(including)”、“具有(has)”或“具有(having)”及其变体的范围内,这样的术语旨在以类似于术语“包括(comprising)”的方式包括在内,因为“包括(comprising)”在用作权利要求中的过渡词时被解释。
另外,可以根据对电子内存内的数据位上的算法或进程运行来呈现详细说明中的一些部分。这些进程说明或表示是对本领域有认知的人员所采用的机制,以将他们工作的实质有效地传递给其他同等技术人员。在此,进程通常被认为是导致预期结果的行为的自洽(self-consistent)序列。这些行为是需要物理量的物理操作的那些行为。典型地,尽管不是必需的,这些量采取能够被存储、传输、组合、比较和/或以其他方式操作的电信号和/或磁信号的形式。
主要由于通用的原因,已经证明将这些信号称为位(bits)、值、元素、符号、字符、项或数字等是方便的。然而,应当记住,所有这些和类似术语都与适当的物理量相关联,并且仅仅是应用于这些量的方便标签。除非另有特别说明或从前述讨论中显而易见,否则应当理解,贯穿所公开的主题,利用诸如处理、计算(computing)、运算(calculating)、确定或显示等术语的讨论指的是处理系统的行为和进程,和/或类似的消费者或者工业电子设备或机器,其将表示为电子设备的寄存器或内存内的物理(电气(electrical)和/或电子(electronic))量的数据操作或转换到类似表示为机器和/或计算机系统内存或寄存器或其他这样的信息存储、传输和/或显示设备中的其他数据。
关于由上述组件、架构、电路和进程等执行的各种功能,除非另有指示,否则用于描述这些组件的术语(包括对“手段”的引用)旨在对应于执行所描述的组件的特定功能的任何组件(例如,功能等同物),即使在结构上不等同于所公开的结构,其仍然执行本文中所示的实施方案的示例性方面的功能。此外,虽然可能已经关于若干实施方式中的仅一个实施方式公开了特定特征,但是这样的特征与可以与一个或多个其他的实施方式的其他特征组合,对任何给定或特定应用是需要且有利的。还应认识到,实施方案包括系统以及具有用于执行各种进程的行为和/或事件的计算机可执行指令的计算机可读介质。

Claims (15)

1.一种用于优化与网络节点相关联的内存映射的系统,所述系统包括:
第一网络节点,其配置成响应于与所述第一网络节点的虚拟中央处理单元相关联的无效内存访问生成内存页请求;和
第二网络节点,其配置成响应于所述第二网络节点包括与所述内存页请求相关联的内存空间的确定接收所述内存页请求,所述第一网络节点还配置成基于由所述第一网络节点储存的一组内存页映射,映射与所述内存页请求相关联的内存页。
2.根据权利要求1所述的系统,其中,所述第一网络节点配置成以下的至少一种:
在所述内存页的映射期间,修改与所述内存页相关联的页表条目;或
将所述内存页映射至与所述第一网络节点相关联的物理地址。
3.根据权利要求1所述的系统,其中,所述第一网络节点包括内存,所述内存配置成响应于与所述第二网络节点相关联的操作系统满足定义标准的确定储存所述一组内存页映射。
4.根据权利要求1所述的系统,其中,所述第一网络节点配置成基于所述内存页的页表条目地址,响应于所述第一网络节点包括所述内存空间的确定,映射与所述内存页请求相关联的所述内存页。
5.根据权利要求4所述的系统,其中,所述第一网络节点配置成在所述内存页的映射期间修改与所述页表条目地址相关联的页表条目,并且所述第一网络节点包括内存,其配置成响应于与所述第二网络节点相关联的操作系统满足定义标准的确定,储存所述页表条目地址。
6.根据权利要求1所述的系统,其中,所述内存空间与访客物理地址相关联,且其中,所述第一网络节点配置成基于由所述第一网络节点储存的页表条目地址映射访客物理地址页面。
7.根据权利要求1所述的系统,其中,所述第一网络节点是第一片上系统(SoC),且所述第二网络节点是不同于所述第一SoC的第二SoC。
8.一种用于优化与网络节点相关联的内存映射的方法,所述方法包括:
响应于与第一网络设备相关联的无效内存访问,生成内存页请求;
接收与所述内存页请求相关联的内存页;
基于由所述第一网络设备储存的一组内存页映射确定与所述内存页相关联的页表条目;和
执行与所述页表条目相关联的内存映射进程。
9.根据权利要求8所述的方法,所述方法还包括:
响应于第二网络设备包括与所述内存页请求相关联的内存空间的确定,将所述内存页请求传输至所述第二网络设备。
10.根据权利要求8所述的方法,其中:
所述接收包括响应于所述网络设备的所述内存包括与所述内存页请求相关联的内存空间的确定,从所述第二网络设备的内存接收与所述内存页请求相关的内存页;
所述确定所述页表条目包括在不执行页表游走进程的情况下确定所述页表条目;且
所述执行所述内存映射进程包括修改所述页表条目。
11.根据权利要求8所述的方法,所述方法还包括:
确定与所述第一网络设备相关联的操作系统是否满足定义标准;和
响应于所述操作系统满足所述定义标准的确定,储存所述一组内存页映射。
12.一种网络设备,其包括:
内存,其配置成储存一组内存页映射;和
内存管理器,其配置成响应于与所述网络设备相关联的无效内存访问,生成内存页请求;接收与所述内存页请求相关联的内存页;基于所述一组内存页映射确定与所述内存页相关联的页表条目;和执行与所述页表条目相关联的内存映射进程。
13.根据权利要求12所述的网络设备,其中,所述内存管理器配置成响应于另一网络设备包括与所述内存页请求相关联的内存空间的确定,将所述内存页请求传输至所述另一网络设备。
14.根据权利要求12所述的网络设备,其中,所述内存管理器配置成响应于与所述网络设备相关联的操作系统满足定义标准的确定,在所述内存中储存所述一组内存页映射。
15.根据权利要求12所述的网络设备,其中,所述内存管理器配置成:
基于与用于所述内存页的内存地址相关联的散列函数,确定所述页表条目;和
在所述内存映射进程期间修改所述页表条目。
CN201780085451.1A 2016-12-01 2017-11-30 优化与网络节点相关联的内存映射 Active CN110383254B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/366,251 US10339065B2 (en) 2016-12-01 2016-12-01 Optimizing memory mapping(s) associated with network nodes
US15/366,251 2016-12-01
PCT/US2017/063883 WO2018102514A1 (en) 2016-12-01 2017-11-30 Optimizing memory mapping(s) associated with network nodes

Publications (2)

Publication Number Publication Date
CN110383254A true CN110383254A (zh) 2019-10-25
CN110383254B CN110383254B (zh) 2023-06-23

Family

ID=62242719

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780085451.1A Active CN110383254B (zh) 2016-12-01 2017-11-30 优化与网络节点相关联的内存映射

Country Status (3)

Country Link
US (1) US10339065B2 (zh)
CN (1) CN110383254B (zh)
WO (1) WO2018102514A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111752891A (zh) * 2020-06-05 2020-10-09 西安电子科技大学 用于光片上网络的ip核映射方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11269640B2 (en) * 2017-02-13 2022-03-08 Qualcomm Incorporated Speculative transitions among modes with different privilege levels in a block-based microarchitecture
US10747679B1 (en) * 2017-12-11 2020-08-18 Amazon Technologies, Inc. Indexing a memory region

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6477612B1 (en) * 2000-02-08 2002-11-05 Microsoft Corporation Providing access to physical memory allocated to a process by selectively mapping pages of the physical memory with virtual memory allocated to the process
CN1617113A (zh) * 2003-11-13 2005-05-18 国际商业机器公司 向物理内存分配虚拟内存的方法、存储控制器和计算机系统
CN101827071A (zh) * 2008-06-09 2010-09-08 飞塔公司 网络协议集合加速
US20130339652A1 (en) * 2012-06-14 2013-12-19 International Business Machines Corporation Radix Table Translation of Memory
CN105159838A (zh) * 2015-08-27 2015-12-16 华为技术有限公司 访问内存的方法及计算机系统
US20150378930A1 (en) * 2014-06-27 2015-12-31 Ravi L. Sahita Validating virtual address translation
CN105378687A (zh) * 2014-03-07 2016-03-02 华为技术有限公司 访问文件的方法和相关设备

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5341483A (en) 1987-12-22 1994-08-23 Kendall Square Research Corporation Dynamic hierarchial associative memory
US5226039A (en) 1987-12-22 1993-07-06 Kendall Square Research Corporation Packet routing switch
US5282201A (en) 1987-12-22 1994-01-25 Kendall Square Research Corporation Dynamic packet routing network
WO1994011955A1 (en) 1992-11-06 1994-05-26 Pericle Communications Company Adaptive data rate modem
US5754764A (en) 1994-02-22 1998-05-19 National Semiconductor Corp. Combination of input output circuitry and local area network systems
US20030115402A1 (en) 2001-11-16 2003-06-19 Fredrik Dahlgren Multiprocessor system
US6947971B1 (en) 2002-05-09 2005-09-20 Cisco Technology, Inc. Ethernet packet header cache
US6954821B2 (en) * 2003-07-31 2005-10-11 Freescale Semiconductor, Inc. Crossbar switch that supports a multi-port slave device and method of operation
US7640543B2 (en) 2004-06-30 2009-12-29 Intel Corporation Memory isolation and virtualization among virtual machines
US9385843B2 (en) 2004-12-22 2016-07-05 Qualcomm Incorporated Method and apparatus for using multiple modulation schemes for a single packet
US7934208B2 (en) * 2006-10-13 2011-04-26 International Business Machines Corporation Method for transparent on-line dynamic binary optimization
US7689733B2 (en) 2007-03-09 2010-03-30 Microsoft Corporation Method and apparatus for policy-based direct memory access control
US20150234669A1 (en) 2014-02-17 2015-08-20 Strato Scale Ltd. Memory resource sharing among multiple compute nodes
US10120832B2 (en) 2014-05-27 2018-11-06 Mellanox Technologies, Ltd. Direct access to local memory in a PCI-E device

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6477612B1 (en) * 2000-02-08 2002-11-05 Microsoft Corporation Providing access to physical memory allocated to a process by selectively mapping pages of the physical memory with virtual memory allocated to the process
CN1617113A (zh) * 2003-11-13 2005-05-18 国际商业机器公司 向物理内存分配虚拟内存的方法、存储控制器和计算机系统
CN101827071A (zh) * 2008-06-09 2010-09-08 飞塔公司 网络协议集合加速
US20130339652A1 (en) * 2012-06-14 2013-12-19 International Business Machines Corporation Radix Table Translation of Memory
CN105378687A (zh) * 2014-03-07 2016-03-02 华为技术有限公司 访问文件的方法和相关设备
US20150378930A1 (en) * 2014-06-27 2015-12-31 Ravi L. Sahita Validating virtual address translation
CN105159838A (zh) * 2015-08-27 2015-12-16 华为技术有限公司 访问内存的方法及计算机系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111752891A (zh) * 2020-06-05 2020-10-09 西安电子科技大学 用于光片上网络的ip核映射方法
CN111752891B (zh) * 2020-06-05 2022-06-03 西安电子科技大学 用于光片上网络的ip核映射方法

Also Published As

Publication number Publication date
WO2018102514A1 (en) 2018-06-07
US10339065B2 (en) 2019-07-02
US20180157595A1 (en) 2018-06-07
CN110383254B (zh) 2023-06-23

Similar Documents

Publication Publication Date Title
US11363112B2 (en) High-density multi-tenant distributed cache as a service
CN104253865B (zh) 一种混合型桌面云服务平台的两级管理方法
CN104380278B (zh) 用于客户端管理会话持续性的设备、系统和方法
CN103765851B (zh) 用于到任何服务的透明的层2重定向的系统和方法
CN101430649B (zh) 基于虚拟机的虚拟计算环境系统
CN103155524B (zh) 用于在多核系统中的多个核之间共享iip地址的系统和方法
US20200241926A1 (en) Selection and management of disaggregated computing resources
CN107690622A (zh) 实现硬件加速处理的方法、设备和系统
US9332074B2 (en) Memory to memory communication and storage for hybrid systems
US11605016B2 (en) Quantum computing service supporting local execution of hybrid algorithms
CN110383254A (zh) 优化与网络节点相关联的内存映射
US11605033B2 (en) Quantum computing task translation supporting multiple quantum computing technologies
JP2024059820A (ja) クラウドストレージソフトウェアアプライアンスを構成するための方法および装置
US20100146123A1 (en) Resource allocation method of each terminal apparatus using resource management system and resource management server apparatus
CN103685441A (zh) 一种基于龙芯终端的远程桌面控制系统
Celesti et al. Integration of clever clouds with third party software systems through a rest web service interface
CN114510321A (zh) 资源调度方法、相关装置和介质
US20040093390A1 (en) Connected memory management
KR20210132348A (ko) 광 회선을 통해 상호 연결된 컴퓨팅 자원 분할 협업 시스템, 자원 분할 협업 방법
CN106940712A (zh) 序列生成方法与设备
CN108241696A (zh) 获得地图数据的方法、装置及系统
CN114765630B (zh) 多租户平台的数据访问方法、多租户平台及服务器
US11650869B2 (en) Quantum computing service with local edge devices supporting multiple quantum computing technologies
Pokharel et al. Cloud computing in system architecture
US20210158425A1 (en) Quantum computing service supporting multiple quantum computing technologies

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