CN105359115A - 包含虚拟地址空间和物理地址空间之间的映射的数据结构的查找 - Google Patents

包含虚拟地址空间和物理地址空间之间的映射的数据结构的查找 Download PDF

Info

Publication number
CN105359115A
CN105359115A CN201380076250.7A CN201380076250A CN105359115A CN 105359115 A CN105359115 A CN 105359115A CN 201380076250 A CN201380076250 A CN 201380076250A CN 105359115 A CN105359115 A CN 105359115A
Authority
CN
China
Prior art keywords
buffer device
page table
memory
data structure
virtual 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
CN201380076250.7A
Other languages
English (en)
Inventor
N·穆拉利马诺哈
K·T·林
N·P·朱皮
D·H·尹
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN105359115A publication Critical patent/CN105359115A/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
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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]
    • 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/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
    • 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/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
    • 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/1021Hit rate 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/45Caching of specific data in cache memory
    • G06F2212/452Instruction code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/681Multi-level TLB, e.g. microTLB and main TLB

Landscapes

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

Abstract

存储器区域存储包含存储器的物理地址空间和虚拟地址空间之间的映射的数据结构。映射的一部分被高速缓存在高速缓存存储器中。响应于对请求的虚拟地址的查找进行响应的高速缓存存储器中的未命中,而向缓冲器设备发送指示。响应于所述指示,缓冲器设备上的硬件控制器执行存储器区域中的数据结构的查找以寻找对应于虚拟地址的物理地址。

Description

包含虚拟地址空间和物理地址空间之间的映射的数据结构的查找
背景技术
计算机系统可包括辅助储存器(storage)(也称为大容量储存器)和存储器(memory),其中所述存储器与辅助储存器相比具有更快的访问速度。辅助储存器可以用一个或多个基于盘的存储设备或其它类型的存储设备来实现。存储器可以用一个或多个存储器设备来实现。与在辅助储存器中存储的数据相比,在存储器中存储的数据可以由数据请求器(诸如,处理器)以更低的等待时间来访问。
由于存储器和辅助储存器之间扩大的性能差距,一些应用越来越多地依赖于使用存储器(而不是辅助储存器)作为数据的主要数据存储区。
附图说明
关于以下附图描述一些实施例:
图1是根据一些实现方式的示例系统的示意图;
图2是根据一些实现方式的技术的流程图;
图3和4是根据一些实现方式的包括页表的缓冲器设备的不同布置的示意图;
图5A-5B是根据一些实现方式的包括存储器设备和缓冲器设备的不同布置的示意图;和
图6是根据可替代实现方式的散列化(hash)虚拟地址和过程标识符以选择多个缓冲器设备之一的布置的示意图。
具体实施方式
系统可以使用虚拟存储器地址空间以将数据存储在存储器中。系统的示例包括计算机系统(例如,服务器计算机、台式计算机、笔记本计算机、平板计算机等)、存储系统或其他类型的电子设备。如此处所使用的,存储器可以用一个或多个存储器设备来实现。通常,存储器指代与系统的另一个储存器(诸如以(一个或多个)较高等待时间的存储设备实现的辅助储存器,诸如(一个或多个)基于盘的存储设备或其它类型的存储设备)相比具有更低的数据访问等待时间的储存器。
虚拟存储器地址空间不被系统中的存储器的实际物理容量所约束。作为结果,虚拟存储器地址空间可以比存储器上的物理地址空间大得多。物理地址空间包括对应于存储器的物理位置的物理地址。相比而言,虚拟地址空间包括被映射到物理地址的虚拟地址。虚拟地址并不指向存储器的物理位置;而是,虚拟地址首先被翻译为对应于存储器中物理位置的物理地址。
图1是包括处理器110和可在处理器110上执行的过程108的示例性系统100的框图。系统100还包括存储器106。过程108可以是应用(例如,数据库管理应用或可访问数据的任何其它应用)的过程。更一般地,过程可以指代在系统100中可执行为机器可读指令的任何实体。尽管在图1中描绘了仅一个过程108,但应该指出的是,可以存在在处理器110上执行的多个过程。此外,在另外的示例中,系统100可以包括多个处理器110。
在存储器分配时(将存储器106的部分分配到在系统中执行的相应过程),系统100的操作系统(OS)109可以针对每个过程创建虚拟地址空间和相应的物理地址空间之间的映射。
在一些示例中,OS109可在称为页表102的数据结构中存储每个映射。页表102将被过程使用的虚拟页(其是指定大小的数据块)映射到相应的物理存储器页(存储器的块)。OS109可以针对使用存储器106的每个活动的过程维护单独的页表。
系统100中的处理器108可以执行过程108的指令(例如,加载指令或存储指令),其导致存储器106的访问(分别地,读取访问或写入访问)。指令的地址是指向虚拟地址空间中的位置的虚拟地址。相应的页表102可用于将指令的虚拟地址翻译为物理地址。为了加速地址翻译过程,页表102的子集可以被高速缓存在高速缓存中,称为翻译后备缓冲器(TLB)111。例如,TLB111可以存储页表102的最近被访问的条目。
当发出加载或存储指令时,处理器109首先访问TLB111以寻找相应的物理地址。然而,如果TLB111不包含针对指令的虚拟地址的条目,则已经发生TLB111的未命中(miss),在该情况下,可以调用页表行走(walk)过程来遍历页表102以寻找对应的物理地址。页表行走过程遍历通过页表102,以标识包含用于将加载或存储指令的虚拟地址映射到物理地址的映射的条目。
根据一些实现方式,为了相比于传统技术或机制而改进页表行走过程的性能,页表102被存储在存储器区域104中,该存储器区域104具有比存储器106的访问等待时间更低的访问等待时间。在根据图1的实现方式中,存储器区域104与位于处理器110和存储器106之间的缓冲器设备112相关联。
相对于其中页表被存储在较慢存储器106中的布置,在具有减少的访问等待时间的存储器区域104中存储页表102改进了页表行走过程的性能。
在一些示例中,页表可以是多级页表。多级页表包括多个页表部分(在不同级别处),所述多个页表部分在页表行走过程期间被按顺序访问以寻找包含加载或存储指令的虚拟地址与对应的物理地址之间的映射的条目。响应于TLB111中的未命中,页表行走过程使用虚拟地址的一部分以索引到在不同级别中的最高级别处的页表部分的条目。所选择的条目包含到在下一较低级别处的页表部分的索引。前述迭代过程继续,直到达到最低级别处的页表部分为止。最低级页表部分的所选择条目包含与虚拟地址的某个部分(例如,最低的M位)组合以生成最终物理地址的地址部分。行走通过多个级别的页表部分是相对缓慢的过程,尤其是在其中多级页表被存储在存储器106中的实现方式中。
由于在存储器区域104中的页表行走过程将快于在较慢存储器106中的页表行走过程,通过在较快的存储器区域104中实现页表102,可减少与TLB111的未命中相关联的惩罚(penalty)。
在较快的存储器区域104中维护的页表102可以是多级页表。在其它示例中,页表102可以是单级页表。
缓冲器设备112可以被实现为集成电路(IC)芯片。例如,缓冲器设备112可以是作为存储器堆叠的部分的裸片(die),所述存储器堆叠是多个裸片的堆叠。裸片的堆叠包括包含用于存储数据的(一个或多个)相应存储器设备的一个或多个存储器裸片。存储器堆叠中的另一种裸片是逻辑裸片,其可以包括缓冲器设备112(该逻辑裸片可被称为缓冲器设备裸片)。
在不同的示例中,缓冲器设备112可以被提供在存储器模块上、在主电路板上,等等。虽然在图1中描绘了仅仅一个缓冲器设备112,但在其他示例中可以包括多个缓冲器设备112,其中多个缓冲器设备112中的每一个可以包括相应的页表。
缓冲器设备112可包括用于临时缓存在处理器110和存储器106之间传送的数据的缓冲器储存器(未示出)。此外,缓冲器设备112可以包括用于在处理器110和存储器106之间路由请求和地址的逻辑(未示出)。
此外,如图1所描绘的,缓冲器设备112可包括用于执行存储器区域104中的页表102的页表行走过程的页表行走逻辑114。页表行走逻辑114可被实现为硬件控制器,诸如专用集成电路(ASIC)设备、现场可编程门阵列(FPGA),或其它类型的控制器。
虽然存储器区域104被示出为缓冲器设备112的部分,但应注意:在可替代实现方式中,存储器区域104可以与缓冲器设备112分离地实现。在这样的可替代实现方式中,存储器区域104可耦合到缓冲器设备112。例如,如果缓冲器设备112在存储器堆叠的缓冲器设备裸片中,存储器区域104可以是堆叠在缓冲器设备裸片顶部的另一个裸片的部分。可替代地,存储器区域104可以是通过点对点链路直接连接到缓冲器设备112的电路的部分。点对点链路指代其中连接到链路的两个设备可以彼此直接通信而不必寻求针对链路的访问的仲裁的链路。
图2是根据一些实现方式的技术的流程图。过程在耦合到缓冲器设备112的存储器区域104中存储(在202处)包含存储器106的物理地址空间和虚拟地址空间之间的映射的数据结构(例如,页表102)。该过程还在高速缓存存储器(诸如TLB111)中高速缓存(在204处)页表102的映射的一部分。
响应于指定虚拟地址的过程108的存储器请求(例如,加载指令、存储指令等),处理器110首先尝试确定TLB111是否包含对应于存储器请求的虚拟地址的条目。如果这样的条目不在TLB111中,则认为未命中已经发生。
响应于对存储器请求的虚拟地址的查找进行响应的TLB111中的未命中(如在206处确定的),处理器110可以向缓冲器设备112发送(在208处)页表查找指示。页表查找指示是将执行关于页表102的页表行走过程的指示。响应于页表查找指示,页表行走逻辑114执行(在210处)存储器区域104中的页表102的查找,以寻找对应于存储器请求的虚拟地址的物理地址。
图3是根据另外的实现方式的包括缓冲器设备112A的示例布置的框图。在根据图3的实现方式中,向缓冲器设备112A发送(在图2的208处)的页表查找指示是在指定的地址范围(其可以指定地址范围)内的特殊地址,或可替代地单个地址。在处理器110和缓冲器设备112A之间的主机地址总线302上提供地址。主机地址总线302上的地址由缓冲器设备112A中的地址范围检测器304接收。地址范围检测器304确定所接收的地址是否在指定的地址范围内。如果是,则那是页表102的页表行走过程将被执行的指示。
然而,如果所接收的地址不在指定的地址范围内,则那是用于存储器106的正常访问的地址,在该情况下,地址范围检测器304向缓冲器设备112A的地址逻辑306提供所接收的地址。地址逻辑306将对应的地址输出到缓冲器设备112A和存储器106之间的存储器地址总线308上。
缓冲器设备112A还被连接到处理器110和缓冲器设备112A之间的主机数据总线310。主机数据总线310用于在处理器110和缓冲器设备112A之间携带数据。此外,存储器数据总线312在存储器106和缓冲器设备112A之间。
缓冲器设备112A包括数据逻辑314,所述数据逻辑314能够通过主机数据总线310将从存储器106读取的数据提供到处理器110,或者可替代地,将来自主机数据总线310的写入数据提供到存储器数据总线312以用于写入到存储器106。
根据一些实现方式,页表行走逻辑114也耦合到主机数据总线310。响应于页表行走过程,由页表行走逻辑114从页表102取回(retrieve)的对应于虚拟地址的物理地址可以通过主机数据总线310输出回到处理器110。处理器110可以使用该物理地址以提交对访问(读取访问或写入访问)存储器106的请求。
图4是包括缓冲器设备112B的可替代布置的框图。在缓冲器设备112B中,省略图3的地址范围检测器304。然而,根据一些实现方式,页表查找控制信号402被提供到页表行走逻辑114。页表查找信号402是响应于通过主机地址总线302接收到的地址(其在该情况下是虚拟地址)将执行页表102的页表行走过程的对页表行走逻辑114的明确指示。作为页表行走过程的结果的来自页表102的物理地址然后通过主机数据总线310被提供回到处理器110。
图5A和5B图示示出缓冲器设备的位置的不同示例。在图5A中,描绘两个存储器堆叠502和504。每个存储器堆叠502或504包括裸片的堆叠,所述裸片包括存储器裸片506和缓冲器设备裸片508。缓冲器设备裸片508可包括根据图1、3和4中任一个布置的缓冲器设备。
图5B示出其中在存储器模块510和512上提供缓冲器设备的示例。存储器模块510或512可以是双列直插存储器模块(DIMM)或其他类型的存储器模块。存储器模块510或512由电路板514形成,在所述电路板514上布置各种存储器设备516。此外,在电路板514上提供相应的缓冲器设备。缓冲器设备可以根据图1、3和4中描绘的任何缓冲器设备进行布置。
在其它示例中,代替如图5B所示的那些在存储器模块510和512上提供缓冲器设备,缓冲器设备可以被提供在主电路板上或在其他位置中。
在具有多个缓冲器设备的系统中,每个缓冲器设备具有其相应的页表,单个过程(例如,图1中的108)可以具有跨越多个缓冲器设备的其页表。OS109可以使用与单个过程相关联的寄存器(例如,CR3寄存器),其包含页表的地址。然而,由于过程的页表可以跨越多个缓冲器设备,使用单个寄存器可能未考虑到对跨越多个缓冲器设备的页表的适当访问。
在一些实现方式中,过程(诸如,图1中的过程108)的过程标识符(PID)可用于执行多个缓冲器设备中的页表的查找。在一些示例中,所有缓冲器设备中的并行查找可以针对给定PID和将被查找的虚拟地址来执行。换句话说,响应于来自具有PID的过程的存储器请求,在存储器请求指定给定的虚拟地址的情况下,PID和给定的虚拟地址用于执行多个缓冲器设备中(与PID相关联的)页表的并行查找。执行这样的并行查找可增加缓冲器复杂度并可增加能量消耗,但是达到简化OS109的设计的益处。
在可替换的实现方式中,可以在虚拟地址和PID上执行散列以从多个缓冲器设备中标识单个缓冲器设备。然后可以在所标识的缓冲器设备的页表中执行页表查找。
图6示出了可以如何执行散列以选择将在其中执行页表行走过程的多个缓冲器设备中的一个的示例。虚拟地址604的部分602可以被输入到散列逻辑中,所述散列逻辑可以是以异或(XOR)门606的形式。XOR门606的另一输入是生成指定虚拟地址604的存储器请求的过程的PID。XOR门606在虚拟地址部分602和PID上应用XOR函数。XOR门606的输出选择多个缓冲器设备608之一。
在可替换的实现方式中,代替使用XOR门606作为散列逻辑,可以提供其他类型的散列逻辑以应用虚拟地址604和PID的散列化。
在图6中,假定存在M个缓冲器设备608,其中M>1。为了从M个缓冲器设备608中进行选择,与PID散列化的虚拟地址部分602具有长度log2(M)。
一旦基于XOR门606606的输出而选择缓冲器设备,可以在所选择的缓冲器设备的页表中执行页表行走过程。在图6的示例中,假定页表是多级页表,以使得页表行走过程遍历页表的多个级别,如由虚线轮廓610所指示。
根据一些实现方式,可以指定约束,其将页表行走过程约束到单个缓冲器设备。尽管一个过程可以与多个缓冲器设备608中的页表相关联,一旦基于由XOR门606所应用的散列而选择缓冲器设备,则来自所选择的缓冲器设备中的页表部分的指针不应引到在另一个缓冲器设备中页表的条目。该约束可以加速页表行走过程,因为查找将不必遍历多个缓冲器设备。
如上所指出的,页表行走逻辑114可以使用硬件控制器来实现。在一些示例中,硬件控制器可以执行机器可读指令,诸如固件或软件。
数据和指令可被存储在相应的存储设备中,所述存储设备被实现为一个或多个计算机可读或机器可读存储介质。所述存储介质包括不同形式的存储器,其包括:半导体存储器设备,诸如动态或静态随机存取存储器(DRAM或SRAM)、可擦除且可编程只读存储器(EPROM)、电可擦除且可编程只读存储器(EEPROM)和闪速存储器;磁盘,诸如固定盘、软盘和可移除盘;其他磁性介质,包括磁带;光学介质,诸如光盘(CD)或数字视频盘(DVD);或其它类型的存储设备。要指出的是:上面所讨论的指令可以被提供在一个计算机可读或机器可读存储介质上,或可替代地,可以被提供在分布在具有可能的复数个节点的大型系统中的多个计算机可读或机器可读存储介质上。这样的一个或多个计算机可读或机器可读存储介质被认为是物品(或制品)的部分。物品或制品可以指代任何制造的单个组件或多个组件。一个或多个存储介质可以位于运行机器可读指令的机器中,或者位于可通过网络从其下载机器可读指令以供执行的远程站点处。
在前述描述中,阐述了许多细节,以提供本文公开的主题的理解。然而,可以在没有这些细节中的一些或全部的情况下实践实现方式。其他实现方式可以包括来自上文讨论的细节的修改和变化。意图在于所附权利要求涵盖这样的修改和变化。

Claims (15)

1.一种方法,包括:
在耦合到缓冲器设备的存储器区域中,存储包含存储器的物理地址空间和虚拟地址空间之间的映射的数据结构,其中,存储数据结构的存储器区域与存储器相比具有更低的访问等待时间,并且其中,缓冲器设备在存储器和数据请求器之间;
在高速缓存存储器中高速缓存所述映射的一部分;
响应于对存储器请求的虚拟地址的查找进行响应的高速缓存存储器中的未命中,
向缓冲器设备发送指示;
响应于所述指示,由缓冲器设备上的硬件控制器执行存储器区域中的数据结构的查找以寻找对应于虚拟地址的物理地址。
2.如权利要求1所述的方法,其中,所述数据结构是具有在多个级别处的部分的多级数据结构,并且其中,所述查找包括遍历在多个级别中的不同级别处的部分以生成对应于虚拟地址的物理地址。
3.如权利要求2所述的方法,其中,所述数据结构是将过程的虚拟页映射到存储器的物理页的页表。
4.如权利要求1所述的方法,其中,所述缓冲器设备是包括多个缓冲器设备的系统的部分,并且其中,所述多个缓冲器设备中的每一个包括包含虚拟地址空间和物理地址空间之间的映射的相应的数据结构。
5.如权利要求4所述的方法,还包括:
响应于指定虚拟地址的过程的请求,执行所述多个缓冲器设备中的数据结构的查找以寻找物理地址。
6.如权利要求5所述的方法,其中,所述数据结构与过程的过程标识符相关联。
7.如权利要求4所述的方法,还包括:
响应于指定虚拟地址的过程的请求,使用过程的过程标识符来选择所述多个缓冲器设备中的一个;以及
执行所选择的缓冲器设备中的数据结构的查找。
8.如权利要求7所述的方法,还包括:
使过程标识符与虚拟地址的至少一部分散列化,以产生用于选择所述多个缓冲器设备中的一个的输出值。
9.一种系统,包括:
处理器;
存储器;
在处理器和存储器之间的缓冲器设备;
存储器区域,其耦合到缓冲器设备并存储在虚拟地址空间和物理地址空间之间映射的页表,其中,存储页表的存储器区域与存储器相比具有更低的访问等待时间,
其中,所述缓冲器设备包括响应于指示以执行页表的查找的页表行走逻辑,其中,当查找针对来自处理器的请求的虚拟地址的物理地址时,所述指示对存储页表的一部分的翻译后备缓冲器中的未命中进行响应,并且其中,存储器区域中的页表的查找生成物理地址。
10.如权利要求9所述的系统,其中,所述指示是指定的地址范围内的地址。
11.如权利要求9所述的系统,其中,所述指示是指示页表查找将被执行的信号。
12.如权利要求9所述的系统,其中,所述页表行走逻辑将通过主机数据总线向处理器提供从页表取回的物理地址。
13.如权利要求9所述的系统,还包括包含存储器的存储器裸片的存储器堆叠和包含缓冲器设备的缓冲器设备裸片。
14.如权利要求13所述的系统,其中,所述存储器区域是缓冲器设备裸片的部分或在堆叠在缓冲器设备裸片上的裸片上。
15.一种用于在数据请求器和存储器之间的提供的缓冲器设备,所述缓冲器设备包括:
存储器区域,其用于存储包含存储器的物理地址空间和虚拟地址空间之间的映射的数据结构,其中,存储数据结构的存储器区域与存储器相比具有更低的访问等待时间;和
硬件控制器,其用于:
接收响应于在存储数据结构的一部分的高速缓存存储器中的未命中的指示,所述未命中对在来自数据请求器的请求中所指定的虚拟地址的高速缓存存储器中的查找进行响应;
响应于所述指示,执行存储器区域中的数据结构的查找,以寻找对应于虚拟地址的物理地址。
CN201380076250.7A 2013-07-01 2013-07-01 包含虚拟地址空间和物理地址空间之间的映射的数据结构的查找 Pending CN105359115A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/048901 WO2015002632A1 (en) 2013-07-01 2013-07-01 Lookup of a data structure containing a mapping between a virtual address space and a physical address space

Publications (1)

Publication Number Publication Date
CN105359115A true CN105359115A (zh) 2016-02-24

Family

ID=52144080

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380076250.7A Pending CN105359115A (zh) 2013-07-01 2013-07-01 包含虚拟地址空间和物理地址空间之间的映射的数据结构的查找

Country Status (4)

Country Link
US (1) US20160103766A1 (zh)
EP (1) EP3017374A1 (zh)
CN (1) CN105359115A (zh)
WO (1) WO2015002632A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110895446A (zh) * 2018-09-12 2020-03-20 三星电子株式会社 存储设备以及系统
CN114610653A (zh) * 2022-05-10 2022-06-10 沐曦集成电路(上海)有限公司 基于gpu内存的地址请求方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110008758A1 (en) * 2009-07-08 2011-01-13 Target Brands, Inc. Training Simulator
US20120137075A1 (en) * 2009-06-09 2012-05-31 Hyperion Core, Inc. System and Method for a Cache in a Multi-Core Processor
CN102725741A (zh) * 2011-12-31 2012-10-10 华为技术有限公司 高速缓冲存储器控制方法、装置和系统
US20120297139A1 (en) * 2011-05-20 2012-11-22 Samsung Electronics Co., Ltd. Memory management unit, apparatuses including the same, and method of operating the same
US20130013889A1 (en) * 2011-07-06 2013-01-10 Jaikumar Devaraj Memory management unit using stream identifiers

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4714993A (en) * 1983-10-18 1987-12-22 International Business Machines Corporation Apparatus and method for effecting dynamic address translation in a microprocessor implemented data processing system
US5123101A (en) * 1986-11-12 1992-06-16 Xerox Corporation Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss
US6442666B1 (en) * 1999-01-28 2002-08-27 Infineon Technologies Ag Techniques for improving memory access in a virtual memory system
US7685355B2 (en) * 2007-05-07 2010-03-23 Microsoft Corporation Hardware memory management unit simulation using concurrent lookups for address translation data
US8145876B2 (en) * 2007-08-06 2012-03-27 Advanced Micro Devices, Inc. Address translation with multiple translation look aside buffers
US8924686B2 (en) * 2009-10-08 2014-12-30 Arm Limited Memory management unit
EP2416251B1 (en) * 2010-08-06 2013-01-02 Alcatel Lucent A method of managing computer memory, corresponding computer program product, and data storage device therefor
KR101707927B1 (ko) * 2010-11-25 2017-02-28 삼성전자주식회사 메모리 시스템 및 그 운용방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120137075A1 (en) * 2009-06-09 2012-05-31 Hyperion Core, Inc. System and Method for a Cache in a Multi-Core Processor
US20110008758A1 (en) * 2009-07-08 2011-01-13 Target Brands, Inc. Training Simulator
US20120297139A1 (en) * 2011-05-20 2012-11-22 Samsung Electronics Co., Ltd. Memory management unit, apparatuses including the same, and method of operating the same
US20130013889A1 (en) * 2011-07-06 2013-01-10 Jaikumar Devaraj Memory management unit using stream identifiers
CN102725741A (zh) * 2011-12-31 2012-10-10 华为技术有限公司 高速缓冲存储器控制方法、装置和系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110895446A (zh) * 2018-09-12 2020-03-20 三星电子株式会社 存储设备以及系统
CN114610653A (zh) * 2022-05-10 2022-06-10 沐曦集成电路(上海)有限公司 基于gpu内存的地址请求方法

Also Published As

Publication number Publication date
US20160103766A1 (en) 2016-04-14
WO2015002632A1 (en) 2015-01-08
EP3017374A1 (en) 2016-05-11

Similar Documents

Publication Publication Date Title
KR102683696B1 (ko) 호스트 메모리 버퍼(Host Memory Buffer)를 관리하기 위한 NVMe(Non-Volatile Memory Express) 컨트롤러를 포함하는 솔리드 스테이트 저장 장치(solid state storage device), 이를 포함하는 시스템 및 호스트의 호스트 메모리 버퍼를 관리하는 방법
US9384134B2 (en) Persistent memory for processor main memory
US11341059B2 (en) Using multiple memory elements in an input-output memory management unit for performing virtual address to physical address translations
US10210096B2 (en) Multi-stage address translation for a computing device
US8595463B2 (en) Memory architecture with policy based data storage
US10943183B2 (en) Electronics device performing software training on memory channel and memory channel training method thereof
EP1612683A2 (en) An apparatus and method for partitioning a shared cache of a chip multi-processor
CN104487953A (zh) 用于层次型存储器系统的存储器管理
US9697111B2 (en) Method of managing dynamic memory reallocation and device performing the method
CN112639748B (zh) 异步正向缓存存储器系统和方法
EP3827348A1 (en) Forward caching memory systems and methods
US11934317B2 (en) Memory-aware pre-fetching and cache bypassing systems and methods
US20210224213A1 (en) Techniques for near data acceleration for a multi-core architecture
KR20210025344A (ko) 이종 메모리를 갖는 메인 메모리 장치, 이를 포함하는 컴퓨터 시스템, 그것의 데이터 관리 방법
US20190042415A1 (en) Storage model for a computer system having persistent system memory
KR102355374B1 (ko) 이종 메모리를 이용하여 메모리 주소 변환 테이블을 관리하는 메모리 관리 유닛 및 이의 메모리 주소 관리 방법
CN105359115A (zh) 包含虚拟地址空间和物理地址空间之间的映射的数据结构的查找
KR20230156062A (ko) 페이지 재매핑 및 회전들을 통한 어드레스 공간 레이아웃 랜덤화 엔트로피의 증가
JP7013360B2 (ja) 情報処理装置、情報処理方法、およびプログラム
US20230195623A1 (en) Cache Memory with Randomized Eviction
US20230359556A1 (en) Performing Operations for Handling Data using Processor in Memory Circuitry in a High Bandwidth Memory
TW202319965A (zh) 積體電路及其配置方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20160224

WD01 Invention patent application deemed withdrawn after publication