CN103988172A - 异构计算平台中不同类型处理器间共享的虚拟页面的动态锁定 - Google Patents
异构计算平台中不同类型处理器间共享的虚拟页面的动态锁定 Download PDFInfo
- Publication number
- CN103988172A CN103988172A CN201280031870.4A CN201280031870A CN103988172A CN 103988172 A CN103988172 A CN 103988172A CN 201280031870 A CN201280031870 A CN 201280031870A CN 103988172 A CN103988172 A CN 103988172A
- Authority
- CN
- China
- Prior art keywords
- memory pages
- cpu
- processing unit
- central processing
- release
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/30—Providing cache or TLB in specific location of a processing system
- G06F2212/303—In peripheral interface, e.g. I/O adapter or channel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/684—TLB miss handling
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)
- Multi Processors (AREA)
Abstract
一种可以支持一种或多种技术以允许动态地锁定由非CPU设备(例如图形处理单元,GPU)访问的存储页的计算机系统。非CPU可以支持虚拟到物理地址的映射,并且从而知道未被锁定但可由非CPU访问的存储页。非CPU可以通知或发送该信息至运行时部件(例如与CPU相关的设备驱动器)。在一个实施例中,设备驱动器可以动态地执行可由非CPU访问的所述内存页的锁定。设备驱动器甚至可以解锁非CPU不再访问的内存页。该方法可以允许非CPU不再访问的内存页可被用以分配给其它CPU和/或非CPU。
Description
发明背景
计算平台可以包括异构处理器,诸如中央处理单元(CPU)和非CPU(例如,图形处理单元(GPU))。CPU和非CPU都可以访问存储页来执行诸如写和读之类的功能。目前,CPU和GPU之间共享的页需要被提前静态分配,且这些物理存储页应该被锁定,以避免在GPU使用它们时在GPU上出现页面错误。
因此,调配(或锁定)给非CPU的存储页是静态地“锁定”。操作系统(OS)可以从存储页池中删除这些锁定的存储页,以避免其它CPU或非CPU访问这些被锁定的页面。这种方法可导致计算机平台性能上的非最优化。与该方法相关的部分挑战有:(1)所有需要锁定给非CPU的存储页必须被事先标识;以及(2)操作系统会从存储页池中删除锁定页面,以避免当访问的非CPU仍处于运行时被锁定的页被分配给其它CPU或非CPU。提前确定必须锁定的存储页是一个非确定性的并且繁琐的过程。例如,如果GPU想要访问极大纹理的某些小部分,CPU就应该一直锁定全部纹理。另外,从存储页池中删除锁定的存储页可减少其它CPU和非CPU可用的存储页,从而可能降低计算系统的性能。
附图的简要说明
在此,附图是用于示例的方式而非限制性地描述本发明。为了简单和清楚地进行说明,在附图中示出的元件不一定按比例绘制。例如,清晰起见,一些元件的尺寸相对其他元件可能被放大了。而且,在认为适当时,图中重复的附图标记用于指示相应或相似的元件。
图1示出根据一个实施例的计算机平台100,其可以支持由非CPU访问的存储页的动态锁定。
图2是根据一个实施例的流程图,示出了由非CPU执行的操作以支持由非CPU访问的存储页的动态锁定。
图3是根据一个实施例的流程图,示出由CPU执行的操作以支持由非CPU访问的存储页的动态锁定。
图4是根据一个实施例的框图,其中非CPU以及CPU彼此交互,以支持由非CPU访问的存储页的动态锁定。
图5示出根据一个实施例的计算机系统,提供支持以共享在计算机平台中的异构处理器间共享的虚拟存储器中的虚拟功能。
本公开的详细说明
以下的说明描述了动态锁定计算平台中异构处理器间共享虚拟页的技术。在下面的描述中,为了更透彻地理解本发明,提出了许多具体的细节,如逻辑实施,资源划分或共享,或复制实施,类型和系统部件之间的相互关系,以及逻辑划分或集成选择。然而,本领域技术人员应当认识到,可以在没有这些具体细节的情况下实现本发明。在其它实例中,为了不混淆本发明,控制结构,门级电路和全软件指令序列没有被详细示出。那些本领域的普通技术人员,使用所包含的描述,在不需要过度实验的情况下,将能够实现适当的功能。
说明书中引用“一个实施例”、“实施例”、“示例实施例”表示描述的实施例可以包括该实施例中描述可包括特定特征,结构或特性,但是每个实施例可以不必包括特定特征、结构或特性,但是每个实施例不一定必须包括所述特定特征、结构或特性。而且,这些短语不一定指的是同一实施例。此外,无论是否明确说明,当对与某实施例相关的特定特征、结构或特性进行描述时,应当认为这是在本领域技术人员的知识范围内,以感知这些特征、结构或特性与其他实施例相关。
本发明的实施例可以用硬件、固件、软件或它们的任意组合来实现。本发明的实施例还可以被实现为存储在机器可读介质上的指令,其可以被读出并通过一个或多个处理器执行。机器可读存储介质可以包括任何用于存储或传输信息的机器(例如,计算设备)可读形式的机制。
例如,机器可读存储介质可以包括只读存储器(ROM);随机访问存储器(RAM),磁盘存储介质,光存储介质;闪存设备;信号的电、光形式。此外,固件、软件、程序和指令在本文中可描述为执行某些动作。但是,应当认识到:如此描述仅仅是为了方便,而且这些动作实际上是由计算设备、处理器、控制器和其它设备执行所述固件、软件、程序和指令所得到。
在一个实施例中,计算平台可以支持一种或多种技术以动态地分配或锁定由非CPU访问的存储页。在一个实施例中,所述非CPU可以支持虚拟到物理地址的映射,因此可以获知不能被锁定但可以由非CPU访问的存储页。在一个实施例中,所述非CPU可以通知或发送所述信息到运行时部件(诸如与CPU相关联的设备驱动器)。在一个实施例中,运行时部件可以动态地对非CPU访问的所述存储页执行锁定。
在一个实施例中,运行时部件甚至可以解锁可不再被非CPU访问的存储页。该方法可以允许不再被非CPU访问的存储页可被用以分配给其它的CPU和/或非CPU。所述方法可以改善计算平台或可包括这种计算平台的计算机系统的性能。
根据一个实施例,图1示出计算平台100的实施例,可以支持对非CPU访问的存储页的动态锁定。在一个实施例中,平台100可以包括中央处理单元(CPU)110、操作系统(OS)112、设备驱动器115、高速缓冲存储器120、存储器130、存储器管理单元140和非CPU180。在一个实施例中,存储器130可以支持共享的虚拟存储器,并支持共享的虚拟存储器130,该存储器可以包括CPU和非CPU私有空间,其可以包括多版本数据的副本。
非CPU180可以访问存储页132和136,并且在没有下面描述实施例的情况下,OS112会静态地锁定存储页132和136,并删除存储页池中的静态锁定的存储页132和136。从存储页池中删除的静态锁定的存储页132和136被描绘为方框137。
但是,在一个实施例中,非CPU180可以支持虚拟到物理地址的转换。其结果是,非CPU180可以获知非CPU(或GPU)180可以访问的存储页,并确定是否所述存储页都已经被锁定并对GPU可用。在一个实施例中,非CPU180可以确定虚拟到物理转换被高速缓存(例如,在翻译后备缓冲器(TLB)中)的存储页。在一个实施例中,如果在TLB中不存在这样的转换(“TLB未命中”),非CPU180会尝试使用页面行走(Page Walking)机制来转换地址,并且如果所述转换失败,则非CPU180可以发送通知至与CPU110相关联的设备驱动器115,而且所述通知可以包括由非CPU180请求的存储页的标识符。在一个实施例中,所述标识符可以包括未被锁定的由非CPU180访问的存储页的地址。
在一个实施例中,设备驱动器115可以接收所述通知,并检查锁定到非CPU180的存储器的总量。在一个实施例中,如果锁定到非CPU180中的存储页的总量小于一个阈值,则基于收到的所述通知,设备驱动器115可以引起动态锁定。在一个实施例中,如果锁定到非CPU180的存储页的总量大于所述阈值,则设备驱动器115可以使其他一些存储页解锁(例如,如果所述存储页最近还未被非CPU180访问),以释放空间给所清求的页180。在一个实施例中,设备驱动器115基于被锁定至非CPU180的存储页总数和阈值之间的比较,可以发送第一和第二请求给OS112以分别锁定或解锁存储页。操作系统112可以基于接收到的第一和第二请求,分别锁定或解锁存储页。
在一个实施例中,在第一种情况下,设备驱动器115可以接收第一通知并使得,例如存储页134和136,如上所述被动态地锁定。在一个实施例中,如方框138所描述的,被动态锁定的页可以被称为DPMP(动态锁定的存储页)134和DPMP136。在另一种情况下,设备驱动器115可以接收第二通知并检查锁定至非CPU180存储页的总量,并确定解锁存储页中的某页。例如,如果非CPU180不再访问存储页136时,设备驱动器115可以使存储页136如上述那样动态地被解锁。在一个实施例中,在方框139中对被动态地解锁的页面136进行了描述。
所述方法可以避免提前确定被锁定到非CPU180的存储页的任务。而且,动态解锁可以提供更多的存储页以分配给其它的CPU和非CPU。
图2中示出了由非CPU180执行以支持动态锁定由非CPU180访问的存储页的操作实施例。在方框210中,非CPU180可以确定存储器130中未锁定至非CPU180的存储页。如上所述,非CPU180可以使用TLB中的高速缓存转换来确定没有进行锁定的存储页的标识。
在方框250中,非CPU180可以发送通知给与CPU110相关联的运行时部件。在一个实施例中,非CPU180可将通知发送给设备驱动器115。在一个实施例中,该通知可以包括标识如没有锁定的存储页的地址。
图3示出由CPU侧部件执行的操作实施例,支持由非CPU180访问的存储页面的动态锁定。在块310,运行时部件(诸如设备驱动器115)可以接收来自非CPU180的通知。
在方框350,设备驱动器115可以确定已经被锁定到非CPU180的所述存储页的总量。在方框360,设备驱动器115可以检查锁定到非CPU180的存储页的总量是否小于分配给非CPU180的限额,并且如果锁定到非CPU180的存储页的总量页大于配额(或阈值),则控制传递到方框370,如果锁定到非CPU180的存储页的总量小于配额(或阈值),则控制传递至方框380。
在方框370中,设备驱动器115可以使操作系统112解锁已经锁定的页面中的一部分。如图1方框139所示,如果锁定到非CPU180中的存储页的总量大于给非CPU180所分配限额的阈值,则可以解锁之前被锁定的(如方框138所示)存储页136。
但是,在方框380,设备驱动器115可以使操作系统112动态地锁定解锁的或可用的存储页中的一部分。如图1中方框139所示,如果锁定到非CPU180中的存储页的总量大于给非CPU180所分配限额的阈值,则可以解锁之前被锁定的(如方框138所示)存储页136。
图4的框图示出的框图中,非CPU180和CPU侧的实体(例如,设备驱动器115)可以彼此交互,以支持动态锁定和解锁分别被非CPU180访问和未访问的存储页。
在一个实施例中,所述非CPU180可以包括控制逻辑420,翻译后备缓冲器(TLB)430,以及页面步行器440。在一个实施例中,所述非CPU180可以进一步包括存储器449,其可以存储元数据445和页表448。在一个实施例中,元数据445可以包括至页表448的元数据,其可以指示存储页是否被锁定。在一个实施例中,控制逻辑420可以生成存储器读或写,且控制逻辑420可以检查入口(431-1,432-1)至(431-N,432-N),以确定对应于虚拟地址431的物理地址432。如果TLB430中不存在虚拟地址到物理地址的映射,则该特定的存储页可以不被锁定。如果在TLB440中入口不存在,则TLB可能发生未命中,并因比使控制逻辑420产生一个页步行请求。
在一个实施例中,响应于接收到的页面步行请求,页面步行器440可以执行页步行。在一个实施例中,页面步行器440可遍历操作系统的页表以将虚拟或线性地址映射到物理地址。在一个实施例中,如图2方框210所示,页步行器440可以查找元数据445,同时执行页步行,以确定存储器130中未被锁定至非CPU180的页。在一个实施例中,其转换尚未被高速缓存的每个存储页,可以潜在地首次被非CPU180访问,从而被锁定。在一一个实施例中,如图2中方框250所示,如果页步行器440可以通知控制逻辑420,如果页面步行器440确定存储页没有被锁定,并且控制逻辑420可以发送请求(用于锁定)到设备驱动器115。此外,在一个实施例中,页面步行器440还可以在TLB430中选择一个入口(431、432的组合),并且所述入口可以被对应于新页的新入口替换。在一个实施例中,控制逻辑420可以通知设备驱动器115入口被删除。其结果是,在一个实施例中,设备驱动器115也可以具有对其转换被高速缓存的任意页的准确记录。
在一个实施例中,设备驱动器115可以包括控制器452,锁定逻辑450和解锁逻辑455。在一个实施例中,控制器452可以接收来自控制逻辑420的请求(如图3中方框310所描述的),且对于接收到的每个请求,控制器452可确定(如图3中方框350所示)已经锁定至非CPU180的存储页的总量,然后检查(如在方框360示出)存储页的总量是否小于阈值。在一个实施例中,如果已经锁定至非CPU180的存储页的总量大于所述阈值,则控制器462可将信号发送至解锁逻辑455。
在一个实施例中,解锁逻辑455可以检查元数据445以确定是否该存储页在TLB430中具有高速缓存转换。在一个实施例中,解锁逻辑455可以解锁在TLB430中没有TLB入口的任意存储页。在一个实施例中,元数据445的镜像副本可以被保持在设备驱动器115中。另外,在一个实施例中,在大多数情况下,锁定的存储页的总数(PPIN)可以大于在TLB430中具有入口的页的数量(PTLB)。
在其他实施例中,解锁逻辑455可以选择一组页面,以解锁和删除来自TLB430的这些页的入口。在一个实施例中,解锁逻辑455可以执行选择性的TLB刷新操作以解锁该组页面。在其他实施例中,如果超过一定数量的存储页必须被解锁,则解锁逻辑455还可以执行完整的TLB刷新。
然而在其它实施例中,解锁逻辑455可周期性地刷新TLB430的内容,并且同时刷新可以被解锁的存储页的内容。在一个实施例中,定期刷新可以允许设备驱动器115保持最常用的存储页被锁定,同时解锁其它存储页。在一个实施例中,所述方法可以想设备驱动器115提供关于非CPU180存储页使用情况的最新信息。在一个实施例中,基于非CPU180访问的实际的页,锁定逻辑450可以执行期望锁定或者动态锁定。
图5中示例了计算机系统500的实施例,包括支持对非CPU180访问的存储页的动态锁定的异构处理器。参照图5所示,计算机系统500可以包括通用处理器(即,CPU)502和非CPU(N-CPU)505,CPU502可以包括单指令多数据(SIMD)处理器。在一个实施例中,CPU502除了执行各种其它任务以外可以执行增强操作或存储指令序列,以在计算机可读存储介质525中提供增强操作。但是,指令序列也可以被存储在存储器520或任何其他合适的存储介质中。
尽管如图5中描述了单独的NCPU(例如,图形处理单元,GPU)505,在一些实施例中,作为另一个举例,处理器502可用于执行增强操作。操作计算机系统500的CPU502可以是耦合到逻辑530的一个或多个处理器核。逻辑530可耦合到一个或多个I/O设备560,I/O设备560可以提供至计算机系统500的接口。在一个实施例中,逻辑530例如可以是芯片组逻辑。逻辑530耦合到存储器520,I/O设备560可以是任意类型的存储器,包括光学、磁或半导体存储器。图形处理器单元505通过帧缓冲器耦合到显示器540。
在一个实施例中,计算机系统500可以支持一种或多种技术,以允许动态锁定由非CPU180访问的存储页。在一个实施方案中,所述N-CPU505可以支持虚拟至物理地址的映射,因此可以获知可不被锁定但可由N-CPU505来访问的存储页。在一个实施例中,所述N-CPU505可以通知或发送所述信息到运行时部件,例如与CPU502相关联的设备驱动器506。在一个实施例中,设备驱动器506可以动态地对由N-CPU505访问的所述存储页执行锁定。
在一个实施例中,设备驱动器506甚至可以解锁N-CPU505不再访问的存储页。所述方法可以允许N-CPU505不再访问的存储页可用,以分配给其它的CPU和/或非CPU。在一个实施例中,象征性地示出CPU502内部的设备驱动器506。然而,设备驱动器506还可以驻留在存储器520或机器可读存储介质525内。
此处描述的图形处理技术可在各种硬件架构中实现。例如,图形功能可以集成在芯片组中。或者,可以使用分离的图形处理器。作为又一实施例,可以由包括多核处理器的通用处理器,或者一组存储在机器可读介质中的软件指令来实现图形功能。
Claims (31)
1.一种计算平台中的方法,包括:
确定由非中央处理单元访问的未锁定给非中央处理单元的一个或多个存储页;
发送通知到与所述中央处理单元相关联的运行时部件,其中所述通知包括所述一个或多个存储页的地址;
响应接收到通知,动态地锁定一个或多个存储页至非中央处理单元。
2.根据权利要求1所述的方法,包括维持至页表的元数据,其中所述元数据将包括指示一个或多个页面是否被锁定的信息,其中在检查元数据之后生成所述通知。
3.根据权利要求1所述的方法,包括确定已锁定给非中央处理单元存储页的总数量是否超过了阈值,并在动态地锁定一个或多个存储页之前解锁多个存储页。
4.根据权利要求3所述的方法,包括检查元数据以确定多个存储页中的一个或多个是否在翻译后备缓冲器中具有高速缓存转换。
5.根据权利要求4所述的方法,包括解锁在翻译后备缓冲器中没有入口的多个存储页中的一个或多个存储页。
6.根据权利要求4所述的方法,包括:
选择待解锁的所述多个存储页中的一个或多个存储页;
通过对多个存储页中的一个或多个存储页执行选择刷新操作,删除选中的所述多个存储页中的一个或多个存储页。
7.根据权利要求4的方法,包括周期性地刷新所述翻译后备缓冲器并删除多个存储页中的一个或多个存储页,同时周期性地刷新翻译后备缓冲器。
8.一种机器可读存储介质,包括多个指令,以响应在计算机系统中被执行的结果,所述计算机系统至少包括非中央处理单元和中央处理单元,包括:
确定由非中央处理单元访问的未锁定给非中央处理单元的一个或多个存储页;
发送通知到与中央处理单元相关联的运行时部件,其中所述通知包括所述一个或多个存储页的地址;
响应接收到通知,动态地锁定一个或多个存储页至非中央处理单元。
9.根据权利要求8所述的机器可读存储介质,包括:维持至页表的元数据,所述元数据包括指示一个或多个页面是否被锁定的信息,其中检查元数据之后生成该通知。
10.根据权利要求8所述的机器可读存储介质,包括确定已经锁定给非中央处理单元存储页面的总量是否超过了阈值,并在动态地锁定一个或多个存储页之前解锁多个存储页。
11.根据权利要求10包括查询的元数据,包括检查元数据以确定多个存储页的一个或多个是否在翻译后备缓冲器中具有高速缓存转换。
12.根据权利要求11所述的机器可读存储介质,包括解锁在翻译后备缓冲器中没有入口的多个存储页中的一个或多个存储页。
13.根据权利要求11所述的机器可读存储介质,包括:
选择待解锁的所述多个存储页中的一个或多个存储页;
通过对多个存储页中的一个或多个存储页执行选择刷新操作,删除选中的所述多个存储页中的一个或多个存储页。
14.根据权利要求11所述的机器可读存储介质,包括:
周期性地刷新所述翻译后备缓冲器并删除多个存储页中的一个或多个存储页,同时周期性地刷新翻译后备缓冲器。
15.一种非中央处理单元,包括:
控制逻辑;
翻译后备缓冲器;以及
页步行器;
其中控制逻辑以、响应于确定一个存储页在翻译后备缓冲器中没有入口而生成页步行请求,并响应于接收到来自页步行器的地址而发送通知到与中央处理单元相关联的运行时部件,其中所述通知包括所述一个或多个存储页的地址;
其中所述页步行器确定由非中央处理单元访问的未被锁定给非中央处理单元的一个或多个存储页,并发送所述一个或多个存储页地址。
16.根据权利要求15所述的非中央处理单元,还包括存储器,以维持至页表的元数据,其中,所述元数据包括指示一个或多个页面是否被锁定的信息。
17.根据权利要求16的非中央处理单元,其中控制逻辑在检查元数据之后生成所述通知。
18.根据权利要求17的非中央处理单元,其中,所述通知包含一个或多个存储页的地址。
19.一种中央处理单元,包括:
控制器,以及
锁定逻辑,
其中所述控制器接收包括由非中央处理单元访问的一个或多个存储页的地址的通知,并发送地址至锁定逻辑;
其中响应于接收到地址,所述锁定逻辑动态锁定一个或多个存储页至非中央处理单元。
20.根据权利要求19所述的中央处理单元,其中所述控制器以:
确定锁定给非中央处理单元的存储页的总量是否超过阈值并且存储页的总量是否小于该阈值,以及
如果存储页的总量小于该阈值则发送地址给锁定逻辑。
21.根据权利要求19所述的中央处理单元,还包括解锁逻辑,其中如果存储器的页的总量大于所述阈值,所述控制逻辑发送信号到解锁逻辑以解锁多个存储页,其中,解锁逻辑检查元数据以确定一个或多个存储页在翻译后备缓冲器中是否具有高速缓存转换。
22.根据权利要求21所述的中央处理单元,其中所述解锁逻辑解锁所述多个存储页中的在翻译后备缓冲器中没有入口的一个或多个存储页。
23.根据权利要求21所述的中央处理单元,其中,所述解锁逻辑以:
选择将要解锁的所述多个存储页中的一个或多个存储页,以及
通过对多个存储页中的一个或多个存储页执行选择刷新操作,删除选中的所述多个存储页中的一个或多个存储页。
24.根据权利要求21所述的中央处理单元,其中解锁逻辑周期性地刷新所述翻译后备缓冲器,并在周期性地刷新翻译后备缓冲器的同时,删除多个存储页中的一个或多个存储页。
25.一种计算机系统,包括:
非中央处理单元,以及
中央处理单元,
其中所述非中央处理单元:
确定由非中央处理单元访问的未锁定给非中央处理单元的一个或多个存储页;
发送通知到与中央处理单元相关联的运行时部件,其中所述通知包括所述一个或多个存储页的地址;
其中响应于接收到通知,中央处理单元动态地锁定一个或多个存储页至非中央处理单元。
26.根据权利要求25所述的计算机系统,非中央处理单元还包括存储器,以维持至元数据的页表,其中所述元数据将包括指示一个或多个页面是否被锁定的信息,其中所述非中央处理单元在检查元数据后生成所述通知。
27.根据权利要求25所述的计算机系统,包括确定已经锁定给非中央处理单元存储页的总量是否超过阈值,并在动态地锁定一个或多个存储页之前解锁多个存储页。
28.根据权利要求27所述的计算机系统,其中,所述解锁逻辑检查元数据,以确定多个存储页中的一个或多个存储页是否在翻译后备缓冲器中具有高速缓冲存储转换。
29.根据权利要求28所述的计算机系统,其中,解锁逻辑解锁所述多个存储页中的在翻译后备缓冲器中不具有入口的一个或多个存储页。
30.根据权利要求29所述的计算机系统,其中解锁逻辑:
选择待解锁的一个或多个多个存储页中的一个或多个存储页;
通过对多个存储页中的一个或多个存储页执行选择刷新操作,删除选中的所述多个存储页中的一个或多个存储页。
31.根据权利要求30所述的计算机系统,其中,解锁逻辑:
解锁逻辑周期性地刷新所述翻译后备缓冲器,并在周期性地刷新翻译后备缓冲器的同时,删除多个存储页中的一个或多个存储页。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/175,489 | 2011-07-01 | ||
US13/175,489 US9164923B2 (en) | 2011-07-01 | 2011-07-01 | Dynamic pinning of virtual pages shared between different type processors of a heterogeneous computing platform |
PCT/US2012/045055 WO2013006476A2 (en) | 2011-07-01 | 2012-06-29 | Dynamic pinning of virtual pages shared between different type processors of a heterogeneous computing platform |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103988172A true CN103988172A (zh) | 2014-08-13 |
CN103988172B CN103988172B (zh) | 2018-01-12 |
Family
ID=47391876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280031870.4A Expired - Fee Related CN103988172B (zh) | 2011-07-01 | 2012-06-29 | 异构计算平台中不同类型处理器间共享的虚拟页面的动态锁定 |
Country Status (5)
Country | Link |
---|---|
US (2) | US9164923B2 (zh) |
EP (1) | EP2726978A4 (zh) |
KR (2) | KR101602077B1 (zh) |
CN (1) | CN103988172B (zh) |
WO (1) | WO2013006476A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107111454A (zh) * | 2014-12-11 | 2017-08-29 | 英特尔公司 | 计算方法以及具有持久性存储器的设备 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9164923B2 (en) | 2011-07-01 | 2015-10-20 | Intel Corporation | Dynamic pinning of virtual pages shared between different type processors of a heterogeneous computing platform |
US8842126B2 (en) * | 2011-12-13 | 2014-09-23 | Advanced Micro Devices, Inc. | Methods and systems to facilitate operation in unpinned memory |
US9134954B2 (en) * | 2012-09-10 | 2015-09-15 | Qualcomm Incorporated | GPU memory buffer pre-fetch and pre-back signaling to avoid page-fault |
US10313180B2 (en) * | 2013-03-13 | 2019-06-04 | Dell Products L.P. | Systems and methods for managing switching devices in an information handling system |
US9645942B2 (en) * | 2013-03-15 | 2017-05-09 | Intel Corporation | Method for pinning data in large cache in multi-level memory system |
US9037753B2 (en) * | 2013-08-29 | 2015-05-19 | International Business Machines Corporation | Automatic pinning and unpinning of virtual pages for remote direct memory access |
US9262337B2 (en) | 2013-10-09 | 2016-02-16 | Microsoft Technology Licensing, Llc | Dynamically determining a translation lookaside buffer flush promotion threshold value |
US9436395B2 (en) | 2014-03-14 | 2016-09-06 | Advanced Micro Devices, Inc. | Mechanisms to save user/kernel copy for cross device communications |
KR102301230B1 (ko) | 2014-12-24 | 2021-09-10 | 삼성전자주식회사 | 가상화된 gpu들에 대한 스케줄링을 수행하는 방법 및 이를 위한 디바이스 |
CN104679664A (zh) * | 2014-12-26 | 2015-06-03 | 浪潮(北京)电子信息产业有限公司 | 一种集群系统中的通信方法和装置 |
CN105988874B (zh) | 2015-02-10 | 2020-08-28 | 阿里巴巴集团控股有限公司 | 资源处理方法及装置 |
US9921977B2 (en) * | 2015-03-11 | 2018-03-20 | International Business Machines Corporation | Privilege based memory pinning mechanism |
US9916264B2 (en) * | 2015-03-11 | 2018-03-13 | International Business Machines Corporation | Privilege based memory pinning mechanism |
US10185501B2 (en) * | 2015-09-25 | 2019-01-22 | Intel Corporation | Method and apparatus for pinning memory pages in a multi-level system memory |
US10365913B2 (en) * | 2016-05-12 | 2019-07-30 | Symantec Corporation | Systems and methods for updating network devices |
US10592164B2 (en) | 2017-11-14 | 2020-03-17 | International Business Machines Corporation | Portions of configuration state registers in-memory |
US10558366B2 (en) * | 2017-11-14 | 2020-02-11 | International Business Machines Corporation | Automatic pinning of units of memory |
US20190188154A1 (en) * | 2017-12-15 | 2019-06-20 | Intel Corporation | Translation pinning in translation lookaside buffers |
US10776281B2 (en) * | 2018-10-04 | 2020-09-15 | International Business Machines Corporation | Snoop invalidate filter for distributed memory management unit to reduce snoop invalidate latency |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6662289B1 (en) * | 2001-05-15 | 2003-12-09 | Hewlett-Packard Development Company, Lp. | Method and apparatus for direct conveyance of physical addresses from user level code to peripheral devices in virtual memory systems |
US20110161619A1 (en) * | 2009-12-29 | 2011-06-30 | Advanced Micro Devices, Inc. | Systems and methods implementing non-shared page tables for sharing memory resources managed by a main operating system with accelerator devices |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3839706A (en) * | 1973-07-02 | 1974-10-01 | Ibm | Input/output channel relocation storage protect mechanism |
US4277826A (en) * | 1978-10-23 | 1981-07-07 | Collins Robert W | Synchronizing mechanism for page replacement control |
US8521912B2 (en) * | 2006-01-12 | 2013-08-27 | Broadcom Corporation | Method and system for direct device access |
US7636800B2 (en) | 2006-06-27 | 2009-12-22 | International Business Machines Corporation | Method and system for memory address translation and pinning |
US20080028181A1 (en) | 2006-07-31 | 2008-01-31 | Nvidia Corporation | Dedicated mechanism for page mapping in a gpu |
US8037249B1 (en) * | 2006-09-28 | 2011-10-11 | Cypress Semiconductor Corporation | Asynchronous memory access queuing |
US9424315B2 (en) | 2007-08-27 | 2016-08-23 | Teradata Us, Inc. | Methods and systems for run-time scheduling database operations that are executed in hardware |
US8397241B2 (en) * | 2008-11-13 | 2013-03-12 | Intel Corporation | Language level support for shared virtual memory |
US8451281B2 (en) * | 2009-06-23 | 2013-05-28 | Intel Corporation | Shared virtual memory between a host and discrete graphics device in a computing system |
US9164923B2 (en) | 2011-07-01 | 2015-10-20 | Intel Corporation | Dynamic pinning of virtual pages shared between different type processors of a heterogeneous computing platform |
-
2011
- 2011-07-01 US US13/175,489 patent/US9164923B2/en not_active Expired - Fee Related
-
2012
- 2012-06-29 CN CN201280031870.4A patent/CN103988172B/zh not_active Expired - Fee Related
- 2012-06-29 WO PCT/US2012/045055 patent/WO2013006476A2/en active Application Filing
- 2012-06-29 EP EP12807063.8A patent/EP2726978A4/en not_active Withdrawn
- 2012-06-29 KR KR1020147002315A patent/KR101602077B1/ko active IP Right Grant
- 2012-06-29 KR KR1020167005509A patent/KR101647274B1/ko active IP Right Grant
-
2015
- 2015-09-23 US US14/862,745 patent/US9747221B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6662289B1 (en) * | 2001-05-15 | 2003-12-09 | Hewlett-Packard Development Company, Lp. | Method and apparatus for direct conveyance of physical addresses from user level code to peripheral devices in virtual memory systems |
US20110161619A1 (en) * | 2009-12-29 | 2011-06-30 | Advanced Micro Devices, Inc. | Systems and methods implementing non-shared page tables for sharing memory resources managed by a main operating system with accelerator devices |
Non-Patent Citations (2)
Title |
---|
H TEZUKA: "Pin-down Cache:A Virtual Memory Management Technique for Zero-copy Communication", 《PROCEEDING IPPS "98 PROCEEDINGS OF THE 12TH. INTERNATIONAL PARALLEL PROCESSING SYMPOSIUM ON INTERNATIONAL PARALLEL PROCESSING SYMPOSIUM》 * |
MATT WELSH: "Memory Management For User-Level Network Interfaces", 《IEEE MICRO》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107111454A (zh) * | 2014-12-11 | 2017-08-29 | 英特尔公司 | 计算方法以及具有持久性存储器的设备 |
CN107111454B (zh) * | 2014-12-11 | 2020-07-14 | 英特尔公司 | 计算方法以及具有持久性存储器的设备 |
Also Published As
Publication number | Publication date |
---|---|
EP2726978A4 (en) | 2014-12-17 |
WO2013006476A2 (en) | 2013-01-10 |
KR101602077B1 (ko) | 2016-03-22 |
US9164923B2 (en) | 2015-10-20 |
WO2013006476A3 (en) | 2013-05-10 |
KR101647274B1 (ko) | 2016-08-09 |
US9747221B2 (en) | 2017-08-29 |
US20160154742A1 (en) | 2016-06-02 |
EP2726978A2 (en) | 2014-05-07 |
US20130007406A1 (en) | 2013-01-03 |
KR20140026643A (ko) | 2014-03-05 |
KR20160031042A (ko) | 2016-03-21 |
CN103988172B (zh) | 2018-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103988172A (zh) | 异构计算平台中不同类型处理器间共享的虚拟页面的动态锁定 | |
US9928264B2 (en) | High performance transactions in database management systems | |
US8024528B2 (en) | Global address space management | |
US9189413B2 (en) | Read-copy update implementation for non-cache-coherent systems | |
US8001333B2 (en) | Memory management in a shared memory system | |
US7490214B2 (en) | Relocating data from a source page to a target page by marking transaction table entries valid or invalid based on mappings to virtual pages in kernel virtual memory address space | |
US9690737B2 (en) | Systems and methods for controlling access to a shared data structure with reader-writer locks using multiple sub-locks | |
US8185710B2 (en) | Hardware memory locks | |
US20100312850A1 (en) | Extended virtual memory system and method in a computer cluster | |
EP3443471B1 (en) | Systems and methods for managing databases | |
US9208088B2 (en) | Shared virtual memory management apparatus for providing cache-coherence | |
US10705951B2 (en) | Shared fabric attached memory allocator | |
US20140172790A1 (en) | Synchronization of Metadata in a Multi-Threaded System | |
US10459852B1 (en) | Memory utilization analysis for memory management systems | |
KR20120068454A (ko) | 원격 페이지 폴트 처리 장치 및 그 방법 | |
CN103744799A (zh) | 一种内存数据访问方法、装置和系统 | |
CN103443760A (zh) | 实现具有在处理设备之间的共享虚拟存储器的系统的tlb同步 | |
US20120124297A1 (en) | Coherence domain support for multi-tenant environment | |
US9400692B2 (en) | System and method for managing the allocating and freeing of objects in a multi-threaded system | |
Ghandeharizadeh et al. | Design, implementation, and evaluation of write-back policy with cache augmented data stores | |
CN108733315B (zh) | 用于存储管理的方法、设备和计算机可读存储介质 | |
US8341368B2 (en) | Automatic reallocation of structured external storage structures | |
US20130117522A1 (en) | Inter-Process Memory Management | |
US11561906B2 (en) | Rinsing cache lines from a common memory page to memory | |
CN106547619B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180112 Termination date: 20210629 |
|
CF01 | Termination of patent right due to non-payment of annual fee |