CN104704476A - 减少异构计算系统中的冷tlb未命中 - Google Patents
减少异构计算系统中的冷tlb未命中 Download PDFInfo
- Publication number
- CN104704476A CN104704476A CN201380051163.6A CN201380051163A CN104704476A CN 104704476 A CN104704476 A CN 104704476A CN 201380051163 A CN201380051163 A CN 201380051163A CN 104704476 A CN104704476 A CN 104704476A
- Authority
- CN
- China
- Prior art keywords
- processor type
- task
- tlb
- processor
- transitional information
- 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
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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- 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/654—Look-ahead translation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了用于避免计算机系统中的冷转换后备缓冲器(TLB)未命中的方法和装置。一种典型的系统被配置为具有共享公用存储器地址空间的至少一个中央处理单元(CPU)和一个或多个图形处理单元(GPU)的异构计算系统。每个处理单元(CPU和GPU)均具有独立的TLB。当将任务从特定的CPU卸载到特定的GPU时,转换信息与任务分配一起发送。所述转换信息允许所述GPU在执行所述任务之前将地址转换数据加载到与所述一个或多个GPU相关联的TLB中。预加载所述GPU的TLB减少或避免在不具有本公开提供的益处的情况下可能以其它方式发生的冷TLB未命中。
Description
技术领域
所公开的实施方案涉及采用具有公用存储器地址空间(物理和虚拟两者)的不同类型处理单元(例如中央处理单元、图形处理单元、数字信号处理器或各种类型的加速器)的异构计算系统的领域。更具体地,所公开的实施方案涉及在将任务从一种处理器类型卸载到另一种处理器类型时减少或避免此类计算系统中的冷转换后备缓冲器(TLB)未命中的领域。
背景技术
异构计算系统通常采用不同类型的处理单元。例如,异构计算系统可使用共享公用存储器地址空间(物理存储器地址空间和虚拟存储器地址空间两者)的中央处理单元(CPU)和图形处理单元(GPU)两者。在使用GPU的通用计算(GPGPU计算)中,利用GPU来执行传统上由CPU执行的某项工作或任务。CPU将任务切换或卸载到GPU,GPU继而将执行所述任务并且直接或通过将信息存储在CPU在需要时能够检索到它的地方来为CPU提供结果、数据或其它信息。
虽然CPU和GPU常常共享公用存储器地址空间,但常见的是,这些不同类型的处理单元具有可针对特定类型的处理单元进行优化的独立地址转换机制或分级结构。也就是说,当今的处理设备通常利用虚拟寻址方案来对存储器空间进行寻址。因此,转换后备缓冲器(TLB)可用于将虚拟地址转换成物理地址,以使得处理单元可定位待执行的指令和/或待处理的数据。在任务切换的情况下,很可能的是,完成所卸载任务需要的转换信息将从其它处理器类型的TLB中缺失,从而导致冷(初始)TLB未命中。为了从TLB未命中恢复,接收任务的处理器必须浏览存储器页面(通常被称为“页面遍历(pagewalk)”)以便在任务处理能够开始之前获取转换信息。通常,可以几十至数百个时钟周期计测量由于TLB未命中而导致的处理延迟或等待时间。
发明内容
提供了一种用于避免具有至少一个中央处理单元(CPU)和一个或多个图形处理单元(GPU)的异构计算系统中的冷TLB未命中的方法。所述至少一个CPU和所述一个或多个GPU共享公用存储器地址空间并且具有独立的转换后备缓冲器(TLB)。用于将任务从特定CPU卸载到特定GPU的方法包括将所述任务和转换信息发送到所述特定GPU。所述GPU接收所述任务并且处理所述转换信息以便在执行所述任务之前将地址转换数据加载到与所述一个或多个GPU相关联的TLB中。
一种异构计算机系统包括用于利用执行任务或卸载所述任务的至少一个中央处理单元(CPU)以及耦合到所述至少一个CPU的第一转换后备缓冲器(TLB)。还包括能够执行所述任务的一个或多个图形处理单元(GPU)和耦合到所述一个或多个GPU的第二TLB。公用存储器地址空间耦合到所述第一TLB和所述第二TLB并且由所述至少一个CPU和所述一个或多个GPU共享。当将任务从特定CPU卸载到特定GPU时,转换信息包括在所述任务切换中,所述特定GPU在执行所述任务之前将地址转换数据从所述转换信息加载到所述第二TLB中。
附图说明
在下文中将结合以下附图来描述各个实施方案,在附图中类似数字表示类似元件,并且
图1是异构计算机系统的简化示例性框图;
图2是示出根据一些实施方案的任务卸载的图1的框图;
图3是示出根据一些实施方案的用于卸载任务的方法的流程图;以及
图4是示出根据一些实施方案的用于执行所卸载任务的方法的流程图。
具体实施方式
以下详细描述本质上仅仅是说明性的,并且不意图限制本公开或本公开的应用和用途。如本文所使用,单词“示例性”表示“充当实例、例子或说明”。因此,在本文中描述为“示例性”的任何实施方案不一定被解释为比其它实施方案更优选或更有利。本文所述的所有实施方案均为示例性实施方案,其被提供来使得本领域的技术人员能够制作或使用所公开的实施方案并且不限制本公开的范围,本公开的范围由权利要求书限定。此外,本公开不希望受到在前面的技术领域、背景、概述或以下详述中所呈现的或针对任何特定计算机系统的任何明显或隐含的理论的束缚。
在本文件中,关系术语诸如第一和第二等可单独使用以便将一个实体或动作与另一个实体或动作区别开,而并不一定要求或暗示此类实体或动作之间的任何实际的这种关系或次序。序数词诸如“第一”、“第二”、“第三”等仅仅表示多个中的不同个体,并且不暗示任何次序或顺序,除非由权利要求书的语言明确定义。
另外,以下描述提及“连接”或“耦合”在一起的元件或特征。如本文所使用,“连接”可表示一个元件/特征直接结合到另一个元件/特征(或与另一个元件/特征直接进行通信),并且不必是机械地。类似地,“耦合”可表示一个元件/特征直接或间接结合到另一个元件/特征(或与另一个元件/特征直接或间接进行通信),并且不必是机械地。然而,应当理解,虽然以下可能将两个元件描述为“连接的”,但还可以“耦合”类似元件,并且反之亦然。因此,尽管本文所示的框图描绘了元件的示例性布置,但在实际的实施方案中可存在额外的插入元件、设备、特征或组件。
最后,为简单起见,本文可不再详细描述与计算机系统相关的常规技术和组件以及计算机系统的其它功能方面(以及系统的各个操作组件)。此外,本文所包含的各种附图中所示的连接线路旨在表示各种元件之间的示例性功能关系和/或物理耦合。应注意,实施方案中可存在许多替代的或额外的功能关系或物理连接。
现在参照图1,示出了一个简化的示例性框图,其示出采用共享公用存储器(地址空间)110的中央处理单元(CPU)1020-102N(统称为102)和图形处理单元(GPU)1040-104M(统称为104)的异构计算系统100。存储器110可以是任何类型的合适存储器,包括动态随机存取存储器(DRAM)(诸如SDRAM)、各种类型的静态RAM(SRAM)以及各种类型的非易失性存储器(例如PROM、EPROM、闪存、PCM或STT-MRAM)。
虽然CPU 102和GPU 104两者利用同一个公用存储器(地址空间)110,但这些不同类型的处理单元中的每一个具有独立的地址转换机制,在一些实施方案中所述地址转换机制可针对特定类型的处理单元(即,CPU或GPU)进行优化。也就是说,在基本实施方案中,CPU 102和GPU 104利用虚拟寻址方案来对公用存储器110进行寻址。因此,转换后备缓冲器(TLB)用于将虚拟地址转换成物理地址,以使得处理单元能够定位待执行的指令和/或待处理的数据。如图1中所示,CPU 102利用TLBcpu 106,而GPU 104利用独立的TLBgpu108。如本文所使用,TLB是最近使用的或预测为不久将使用的来自公用存储器110的页表112的转换映射的缓存,其用于提高虚拟存储器地址转换速度。页表112包括用于存储虚拟存储器地址与物理存储器地址之间的映射的数据结构。虚拟存储器地址对于访问过程是唯一的,而物理存储器地址对于CPU 102和GPU 104是唯一的。页表112用于将执行过程查看到的虚拟存储器地址转换成物理存储器地址,CPU 102和GPU 104使用所述物理存储器地址来处理指令和加载/存储数据。
因此,当CPU 102或GPU 104试图访问公用存储器110(例如,试图取出位于特定虚拟存储器地址的数据或指令、或试图将数据存储到特定虚拟存储器地址)时,必须将虚拟存储器地址转换成对应的物理存储器地址。因此,在将虚拟存储器地址转换成物理存储器地址时,TLB首先进行搜索以试图提供快速转换。通常,TLB具有固定数量的槽,这些槽包含将虚拟存储器地址映射到物理存储器地址的地址转换数据(条目)。TLB通常是内容可寻址存储器,其中搜索关键字是虚拟存储器地址并且搜索结果是物理存储器地址。在一些实施方案中,TLB是单个存储器缓存。在一些实施方案中,TLB以分级结构方式进行联网或组织,如本领域中已知的。然而,如果TLB中存在所请求的地址(即,“TLB命中”),那么TLB得以实现,搜索快速产生匹配并且返回物理存储器地址。如果TLB中不存在所请求的地址(即,“TLB未命中”),那么转换通过在通常被称为“页面遍历”的过程中浏览页表112来继续进行。在确定物理存储器地址之后,虚拟存储器地址到物理存储器地址的映射被加载在相应的TLB 106或108中(也就是说,取决于请求地址映射的处理器类型(CPU或GPU))。
在使用GPU的通用计算(GPGPU计算)中,通常利用GPU来执行传统上由CPU执行的某项工作或任务(或反之亦然)。为此,CPU将任务切换或卸载到GPU,GPU继而将执行任务并且直接或通过将信息存储在公用存储器110中来为CPU提供结果、数据或其它信息,CPU在需要时能够在公用存储器110中检索到所述信息。在任务切换的情况下,很可能的是,执行所卸载任务需要的转换信息将从其它处理器类型的TLB中缺失,从而导致冷(初始)TLB未命中。如以上所指出,为了从TLB未命中恢复,需要接收任务的处理器浏览存储器110的页表112(通常被称为“页面遍历”)以便在任务处理能够开始之前获取转换信息。
现在参照图2,示出根据一些实施方案的执行示例性任务卸载(或切换)的图1的计算机系统100。为简单和方便起见,讨论从CPUX 102x到GPUy 104y的任务卸载,但是应当理解,从GPUy 104y到CPUX 102x的任务卸载也在本公开的范围内。在一些实施方案中,CPUX 102x将任务捆绑或组合以便卸载到GPUy 104y并且将对所述任务的描述(或指针)放置在队列200中。在一些实施方案中,直接或通过公用存储器110中的存储位置来将任务描述(或其指针)发送到GPUy 104y。在稍后的某个时间,GPUy 104y将通过要求来自其相关联的TLBgpu108的第一虚拟地址转换而开始执行任务。然而,很可能的是,TLBgpu108中不存在转换信息,因为任务被卸载并且TLBcpu 106中的任何预取或加载的转换信息对于GPU 104不可用。这将导致第一指令的冷(初始)TLB未命中(或要求用于第一指令的地址转换),从而需要在能够开始执行所卸载任务之前进行页面遍历。这种过程中所涉及的额外等待时间降低了最初进行任务切换所期望的效率提高。
因此,一些实施方案设想利用转换信息来增强或补充任务切换描述(指针),GPUy 104y的分配器或调度器202可在开始执行任务之前或在执行任务期间从所述转换信息为TLBgpu 108来加载(或预加载)地址转换数据。在一些实施方案中,转换信息是明确的或与加载到TLBgpu 108中的地址转换数据直接相关。明确转换信息的非限制性实例将为来自TLBcpu 106的可直接加载到TLBgpu 108中的地址转换数据(TLB条目)。或者,可建议TLBgpu 108在何处探测TLBcpu 106以定位所需的地址转换数据。在一些实施方案中,使用转换信息来预测或推导出用于TLBgpu 108的地址转换数据。预测性转换信息的非限制性实例包括可在任何特定实现方案中采用的编译器分析、动态运行时间分析或硬件跟踪。在一些实施方案中,转换信息包括在任务切换中,GPUy 104y可从所述转换信息推导出地址转换数据。这种类型的转换信息的非限制性实例包括未来地址访问的模式或编码,可对所述模式或编码进行解析以推导出地址转换数据。一般来说,本公开涵盖任何转换信息,GPUy 104y可从任何转换信息为TLBgpu 108直接或间接加载地址转换数据以减少或避免冷TLB未命中发生(和后续页面遍历)。
图3至图4是可用于理解本公开的用于避免冷TLB未命中的方法的流程图。如以上所指出,为简单和方便起见,讨论从CPUX 102x到GPUy 104y的任务卸载和执行方法。然而,应当理解,从GPUy 104y到CPUX 102x的任务卸载也在本公开的范围内。结合图3至图4的方法执行的各种任务可由软件、硬件、固件或其任何组合来执行。出于说明性目的,以下对图3至图4的方法的描述可参照以上结合图1至图2提及的元件。在实践中,图3至图4的方法的部分可由所述系统的不同元件执行。还应当理解,图3至图4的方法可包括任何数量的额外或替代任务,并且图3至图4的方法可合并到具有本文未详细描述的额外功能的更广泛的程序或过程中。此外,图3至图4中所示的任务中的一项或多项可从图3至图4的方法的实施方案中省略,条件是所预期的整体功能保持完整。
现在参照图3,提供了示出根据一些实施方案的用于卸载任务的方法300的流程图。方法300开始于步骤302,在步骤302中转换信息被搜集或收集以便随待卸载的任务包括。如先前所提及,这种转换信息可为明确的或与待加载到TLBgpu 108中的地址转换数据(例如,来自TLBcpu 106的地址转换数据)直接相关,或者可以使用转换信息来预测或推导出用于TLBgpu 108的地址转换数据。在步骤304中,将任务和相关联的转换信息从一种处理器类型发送到另一种处理器类型(例如,从CPU到GPU或反之亦然)。在决定306中,切换任务的处理器(在这个实例中是CPU 102)确定接收切换的处理器是否已完成任务。在一些实施方案中,卸载处理器周期性地进行检查以查看另一个处理器是否已完成任务。在一些实施方案中,接收切换的处理器向卸载处理器发送中断或另一个信号,这将导致决定306的肯定确定。直到实现肯定确定,例程才围绕决定306循环。一旦完成卸载任务,若需要(例如,如果卸载的任务是较大任务的子步骤或子过程)可在步骤308中执行进一步处理。另外,卸载处理器可能已将若干子任务卸载到其它处理器,并且需要对子任务结果进行编译或组合以完成整个过程或任务,在这之后,例程结束(步骤310)。
现在参照图4,提供了示出根据一些实施方案的用于执行所卸载任务的方法400的流程图。方法400开始于步骤402,在步骤402中提取并检验伴随任务切换的转换信息。接下来,决定404确定转换信息是否是由能够直接加载到接受切换的处理器的TLB(例如,对于CPU到GPU切换是TLBgpu 108)中的地址转换数据组成的。肯定确定表示已从卸载TLB(例如TLBcpu 106)中获得TLB条目,或转换信息建议接收任务处理器类型在何处探测另一个处理器的TLB以定位地址转换数据。在步骤406中,将这种数据加载到其TLB(在这个实例中是TLBgpu 108)中。
决定404的否定确定指示转换信息与地址转换数据不直接相关联。因此,决定408确定卸载处理器是否必须从转换信息获得地址转换(步骤410)。如果卸载处理器需要基于(或从)转换信息来预测或推导出地址转换数据,将会发生这种情况。如以上所指出,可根据任何特定实现方案中可能采用的编译器分析、动态运行时间分析或硬件跟踪来预测地址转换数据。另外,在步骤410中,可通过解析未来地址访问的模式或编码以推导出地址转换数据来获得地址转换数据。不管获得所采用的地址转换数据的方式如何,表示地址转换数据的TLB条目在步骤406中都被加载。然而,决定408可能决定不可以(或不应该)获得(或试图获得)地址转换数据。如果发现转换信息无效或如果所需转换不再处于物理存储器空间中(例如,已移动到次级存储介质),将会发生这种情况。在这种情况下,决定408基本上忽略转换信息并且例程继续进行以开始任务(步骤412)。
为了开始处理所卸载的任务,请求第一转换并且决定414确定是否已存在TLB未命中。如果通过步骤406来进入步骤412,那么应避免TLB未命中并且TLB命中返回。然而,如果通过决定408的否定确定来进入步骤412,那么可能发生TLB未命中,在这种情况下在步骤418中执行常规页面遍历。例程继续执行任务(步骤416)并且在每个步骤之后在决定420中确定任务是否已完成。如果任务尚未完成,那么例程循环回以执行下一个步骤(步骤422),这可能涉及另一个地址转换。也就是说,在执行所卸载的任务期间,可能需要若干地址转换,并且在一些情况下,将发生TLB未命中,从而需要页面遍历(步骤418)。然而,如果通过步骤406进入任务的执行,那么对于一些任务切换而言应大幅减少或消除页面遍历(和相关联的等待时间)。本公开的切换系统和过程提供了效率提高和功耗降低的直接益处。
当决定420确定任务已完成时,在步骤424中将任务结果发送到卸载处理器。在一个实施方案中,可通过响应于卸载处理器的确定任务是否完成的询问来实现上述操作。在另一个实施方案中,接受任务切换的处理器可触发中断或将另一个信号发送到卸载处理器,以指示任务完成。一旦返回任务结果,例程就结束于步骤426。
包括在计算机可读存储介质上表示计算机系统100和/或其部分的数据结构可以是数据库或可由程序读取和直接或间接用来制作包括计算机系统100的硬件的其它数据结构。例如,数据结构可以是以高级设计语言(HDL)(诸如Verilog或VHDL)对硬件功能的行为级描述或寄存器传输级(RTL)描述。描述可由综合工具读取,所述综合工具可将描述综合以产生包括来自综合程序库的门列表的网表。网表包括一组门,这些门还表示包括计算机系统100的硬件的功能。随后,可将网表放置和路由发送以产生将几何形状描述为适用于掩膜的数据集。然后,可在各种半导体制作步骤中使用掩膜以产生对应于计算机系统100的一个或多个半导体电路。或者,根据需要,计算机可读存储介质上的数据库可以是网表(具有或不具有综合程序库)或数据集或图形数据系统(GDS)II数据。
图3至图4中所示的方法可由指令进行控制,所述指令存储在非临时性计算机可读存储介质中并且可由计算机系统100的至少一个处理器执行。图3至图4中所示的每项操作可对应于存储在非临时性计算机存储器或计算机可读存储介质中的指令。在各种实施方案中,非临时性计算机可读存储介质包括磁盘或光盘存储设备、固态存储设备(诸如快闪存储器)或其它一个或多个非易失性存储器设备。存储在非临时性计算机可读存储介质上的计算机可读指令可以是源代码、汇编语言代码、目标代码或由一个或多个处理器解释和/或可执行的其它指令格式。
虽然已在前述详细描述中呈现示例性实施方案,但应当理解,存在大量的变化。还应当理解,示例性实施方案仅是实例,并且不意图以任何方式限制范围、适用性或配置。相反,前述详细描述将为本领域的技术人员提供用于实施示例性实施方案的方便的路线图,应当理解,在不脱离如所附权利要求书及其法律等效物所阐述的范围的情况下,可对示例性实施方案中所描述的元件的功能和布置做出各种改变。
Claims (20)
1.一种用于将任务从第一处理器类型卸载到第二处理器类型以便所述第二处理器类型执行所述任务的方法,所述方法包括:
从所述第一处理器接收所述任务,所述第一处理器和所述第二处理器利用公用存储器地址空间;
从所述第一处理器类型接收针对所述任务的转换信息;
在执行所述任务之前,使用所述转换信息来将地址转换数据加载到所述第二处理器类型的转换后备缓冲器(TLB)中。
2.如权利要求1所述的方法,其中所述第一处理器类型是中央处理单元(CPU)并且所述第二处理器类型是图形处理单元(GPU)。
3.如权利要求1所述的方法,其中所述第一处理器类型是GPU并且所述第二处理器类型是CPU。
4.如权利要求1所述的方法,其中所述转换信息包括页表条目,并且所述方法还包括在执行所述任务之前将所述页表条目加载到所述第二处理器类型的所述TLB中。
5.如权利要求1所述的方法,其还包括:
基于所述转换信息获得所述地址转换数据;以及
在执行所述任务之前将所述地址转换数据加载到所述第二处理器类型的所述TLB中。
6.如权利要求5所述的方法,其中所述获得所述地址转换数据包括探测与所述第一处理器类型相关联的TLB。
7.如权利要求5所述的方法,其中所述获得所述地址转换数据包括解析未来地址访问的模式。
8.如权利要求5所述的方法,其中所述获得所述地址转换数据包括预测未来地址访问。
9.如权利要求8所述的方法,其中所述预测所述未来地址访问包括从下面转换信息源组中的一个或多个来预测未来地址访问:编译器分析、动态运行时间分析或硬件跟踪。
10.如权利要求5所述的方法,其中所述获得所述地址转换数据包括忽略所述转换信息以及执行页面遍历。
11.一种用于将任务从第一处理器类型卸载到第二处理器类型以便所述第二处理器类型执行所述任务的方法,所述方法包括:
将所述任务发送到所述第二处理器类型;以及
将转换信息发送到所述第二处理器类型,在所述第二处理器类型执行所述任务之前,所述第二处理器类型可使用所述转换信息来将地址转换数据加载到所述第二处理器类型的转换后备缓冲器(TLB)中。
12.如权利要求11所述的方法,其中所述转换信息是页表条目。
13.如权利要求11所述的方法,其中所述第二处理器类型使用所述转换信息获得来获得所述地址转换数据,并且在执行所述任务之前将所述地址转换数据加载到与所述第二处理器类型相关联的所述TLB中。
14.如权利要求13所述的方法,其中所述第二处理器类型通过解析未来地址访问的模式来获得所述地址转换数据。
15.如权利要求13所述的方法,其中所述第二处理器类型通过预测未来地址访问来获得所述地址转换数据。
16.如权利要求13所述的方法,其中所述第二处理器类型通过忽略所述转换信息并且执行页面遍历来获得所述地址转换数据。
17.一种异构计算系统,其包括:
第一处理器类型,所述第一处理器类型包括第一转换后备缓冲器(TLB)并且被配置成将任务和针对所述任务的转换信息发送到第二处理器类型;
所述第二处理器类型,所述第二处理器类型包括第二TLB并且被配置成从所述第一处理器接收所述任务和所述转换信息、在执行所述任务之前使用所述转换信息来将地址转换数据加载到所述第二TLB中;以及
存储器,所述存储器耦合到所述第一处理器类型和所述第二处理器类型,所述第一处理器类型和所述第二处理器类型利用所述存储器的公用存储器地址空间。
18.如权利要求17所述的异构计算系统,其中所述转换信息是页表条目。
19.如权利要求17所述的异构计算系统,其中所述第一处理器类型是中央处理单元(CPU)并且所述第二处理器类型是图形处理单元(GPU)。
20.如权利要求17所述的方法,其中所述第一处理器类型是图形处理单元(GPU)并且所述第二处理器类型是中央处理单元(CPU)。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/645,685 US20140101405A1 (en) | 2012-10-05 | 2012-10-05 | Reducing cold tlb misses in a heterogeneous computing system |
US13/645,685 | 2012-10-05 | ||
PCT/US2013/060826 WO2014055264A1 (en) | 2012-10-05 | 2013-09-20 | Reducing cold tlb misses in a heterogeneous computing system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104704476A true CN104704476A (zh) | 2015-06-10 |
Family
ID=49305166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380051163.6A Pending CN104704476A (zh) | 2012-10-05 | 2013-09-20 | 减少异构计算系统中的冷tlb未命中 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20140101405A1 (zh) |
EP (1) | EP2904498A1 (zh) |
JP (1) | JP2015530683A (zh) |
KR (1) | KR20150066526A (zh) |
CN (1) | CN104704476A (zh) |
IN (1) | IN2015DN02742A (zh) |
WO (1) | WO2014055264A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109213698A (zh) * | 2018-08-23 | 2019-01-15 | 贵州华芯通半导体技术有限公司 | Vivt缓存访问方法、仲裁单元及处理器 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140208758A1 (en) | 2011-12-30 | 2014-07-31 | Clearsign Combustion Corporation | Gas turbine with extended turbine blade stream adhesion |
US9170954B2 (en) * | 2012-12-10 | 2015-10-27 | International Business Machines Corporation | Translation management instructions for updating address translation data structures in remote processing nodes |
US9235512B2 (en) * | 2013-01-18 | 2016-01-12 | Nvidia Corporation | System, method, and computer program product for graphics processing unit (GPU) demand paging |
US10437591B2 (en) * | 2013-02-26 | 2019-10-08 | Qualcomm Incorporated | Executing an operating system on processors having different instruction set architectures |
US9396089B2 (en) | 2014-05-30 | 2016-07-19 | Apple Inc. | Activity tracing diagnostic systems and methods |
US9619012B2 (en) * | 2014-05-30 | 2017-04-11 | Apple Inc. | Power level control using power assertion requests |
CN104035819B (zh) * | 2014-06-27 | 2017-02-15 | 清华大学深圳研究生院 | 科学工作流调度处理方法及装置 |
GB2546343A (en) | 2016-01-15 | 2017-07-19 | Stmicroelectronics (Grenoble2) Sas | Apparatus and methods implementing dispatch mechanisms for offloading executable functions |
CN105786717B (zh) * | 2016-03-22 | 2018-11-16 | 华中科技大学 | 软硬件协同管理的dram-nvm层次化异构内存访问方法及系统 |
DE102016219202A1 (de) * | 2016-10-04 | 2018-04-05 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Schützen eines Arbeitsspeichers |
CN111274166B (zh) * | 2018-12-04 | 2022-09-20 | 展讯通信(上海)有限公司 | Tlb的预填及锁定方法和装置 |
KR102147912B1 (ko) | 2019-08-13 | 2020-08-25 | 삼성전자주식회사 | 프로세서 칩 및 그 제어 방법들 |
US11816037B2 (en) * | 2019-12-12 | 2023-11-14 | Advanced Micro Devices, Inc. | Enhanced page information co-processor |
CN111338988B (zh) * | 2020-02-20 | 2022-06-14 | 西安芯瞳半导体技术有限公司 | 内存访问方法、装置、计算机设备和存储介质 |
US11861403B2 (en) * | 2020-10-15 | 2024-01-02 | Nxp Usa, Inc. | Method and system for accelerator thread management |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030033431A1 (en) * | 2001-08-07 | 2003-02-13 | Nec Corporation | Data transfer between virtual addresses |
US6851038B1 (en) * | 2000-05-26 | 2005-02-01 | Koninklijke Philips Electronics N.V. | Background fetching of translation lookaside buffer (TLB) entries |
US20110231612A1 (en) * | 2010-03-16 | 2011-09-22 | Oracle International Corporation | Pre-fetching for a sibling cache |
CN102622329A (zh) * | 2011-02-11 | 2012-08-01 | 微软公司 | 多核计算机中的远程核操作 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4481573A (en) * | 1980-11-17 | 1984-11-06 | Hitachi, Ltd. | Shared virtual address translation unit for a multiprocessor system |
US5893144A (en) * | 1995-12-22 | 1999-04-06 | Sun Microsystems, Inc. | Hybrid NUMA COMA caching system and methods for selecting between the caching modes |
US6208543B1 (en) * | 1999-05-18 | 2001-03-27 | Advanced Micro Devices, Inc. | Translation lookaside buffer (TLB) including fast hit signal generation circuitry |
US6668308B2 (en) * | 2000-06-10 | 2003-12-23 | Hewlett-Packard Development Company, L.P. | Scalable architecture based on single-chip multiprocessing |
US6891543B2 (en) * | 2002-05-08 | 2005-05-10 | Intel Corporation | Method and system for optimally sharing memory between a host processor and graphics processor |
EP1391820A3 (en) * | 2002-07-31 | 2007-12-19 | Texas Instruments Incorporated | Concurrent task execution in a multi-processor, single operating system environment |
US7321958B2 (en) * | 2003-10-30 | 2008-01-22 | International Business Machines Corporation | System and method for sharing memory by heterogeneous processors |
US7386669B2 (en) * | 2005-03-31 | 2008-06-10 | International Business Machines Corporation | System and method of improving task switching and page translation performance utilizing a multilevel translation lookaside buffer |
US20070083870A1 (en) * | 2005-07-29 | 2007-04-12 | Tomochika Kanakogi | Methods and apparatus for task sharing among a plurality of processors |
US7917723B2 (en) * | 2005-12-01 | 2011-03-29 | Microsoft Corporation | Address translation table synchronization |
US20080028181A1 (en) * | 2006-07-31 | 2008-01-31 | Nvidia Corporation | Dedicated mechanism for page mapping in a gpu |
US8140822B2 (en) * | 2007-04-16 | 2012-03-20 | International Business Machines Corporation | System and method for maintaining page tables used during a logical partition migration |
US7941631B2 (en) * | 2007-12-28 | 2011-05-10 | Intel Corporation | Providing metadata in a translation lookaside buffer (TLB) |
US8451281B2 (en) * | 2009-06-23 | 2013-05-28 | Intel Corporation | Shared virtual memory between a host and discrete graphics device in a computing system |
US8397049B2 (en) * | 2009-07-13 | 2013-03-12 | Apple Inc. | TLB prefetching |
US8285969B2 (en) * | 2009-09-02 | 2012-10-09 | International Business Machines Corporation | Reducing broadcasts in multiprocessors |
US8615637B2 (en) * | 2009-09-10 | 2013-12-24 | Advanced Micro Devices, Inc. | Systems and methods for processing memory requests in a multi-processor system using a probe engine |
US20110161620A1 (en) * | 2009-12-29 | 2011-06-30 | Advanced Micro Devices, Inc. | Systems and methods implementing shared page tables for sharing memory resources managed by a main operating system with accelerator devices |
US9128849B2 (en) * | 2010-04-13 | 2015-09-08 | Apple Inc. | Coherent memory scheme for heterogeneous processors |
KR20120129695A (ko) * | 2011-05-20 | 2012-11-28 | 삼성전자주식회사 | 메모리 관리 유닛, 이를 포함하는 장치들 및 이의 동작 방법 |
WO2013162589A1 (en) * | 2012-04-27 | 2013-10-31 | Intel Corporation | Migrating tasks between asymmetric computing elements of a multi-core processor |
US9235529B2 (en) * | 2012-08-02 | 2016-01-12 | Oracle International Corporation | Using broadcast-based TLB sharing to reduce address-translation latency in a shared-memory system with optical interconnect |
-
2012
- 2012-10-05 US US13/645,685 patent/US20140101405A1/en not_active Abandoned
-
2013
- 2013-09-20 JP JP2015535683A patent/JP2015530683A/ja active Pending
- 2013-09-20 WO PCT/US2013/060826 patent/WO2014055264A1/en active Application Filing
- 2013-09-20 CN CN201380051163.6A patent/CN104704476A/zh active Pending
- 2013-09-20 IN IN2742DEN2015 patent/IN2015DN02742A/en unknown
- 2013-09-20 EP EP13773985.0A patent/EP2904498A1/en not_active Withdrawn
- 2013-09-20 KR KR1020157008389A patent/KR20150066526A/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6851038B1 (en) * | 2000-05-26 | 2005-02-01 | Koninklijke Philips Electronics N.V. | Background fetching of translation lookaside buffer (TLB) entries |
US20030033431A1 (en) * | 2001-08-07 | 2003-02-13 | Nec Corporation | Data transfer between virtual addresses |
US20110231612A1 (en) * | 2010-03-16 | 2011-09-22 | Oracle International Corporation | Pre-fetching for a sibling cache |
CN102622329A (zh) * | 2011-02-11 | 2012-08-01 | 微软公司 | 多核计算机中的远程核操作 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109213698A (zh) * | 2018-08-23 | 2019-01-15 | 贵州华芯通半导体技术有限公司 | Vivt缓存访问方法、仲裁单元及处理器 |
CN109213698B (zh) * | 2018-08-23 | 2020-10-27 | 贵州华芯通半导体技术有限公司 | Vivt缓存访问方法、仲裁单元及处理器 |
Also Published As
Publication number | Publication date |
---|---|
WO2014055264A1 (en) | 2014-04-10 |
IN2015DN02742A (zh) | 2015-09-04 |
US20140101405A1 (en) | 2014-04-10 |
KR20150066526A (ko) | 2015-06-16 |
EP2904498A1 (en) | 2015-08-12 |
JP2015530683A (ja) | 2015-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104704476A (zh) | 减少异构计算系统中的冷tlb未命中 | |
US10545672B2 (en) | Method for accessing extended memory, device, and system | |
US7089398B2 (en) | Address translation using a page size tag | |
CN101833515B (zh) | 微处理器及缩短分页表寻访时间的方法 | |
US7640420B2 (en) | Pre-fetch apparatus | |
US9785443B2 (en) | Data cache system and method | |
US9405703B2 (en) | Translation lookaside buffer | |
KR20170100003A (ko) | 가상 주소들을 사용하여 액세스된 캐시 | |
US20120297139A1 (en) | Memory management unit, apparatuses including the same, and method of operating the same | |
CN102792285A (zh) | 层级转换表控制 | |
CN112416817B (zh) | 预取方法、信息处理装置、设备以及存储介质 | |
US20120331265A1 (en) | Apparatus and Method for Accelerated Hardware Page Table Walk | |
US20120173843A1 (en) | Translation look-aside buffer including hazard state | |
KR101895388B1 (ko) | 버스트 변환 룩―어사이드 버퍼 | |
US8327122B2 (en) | Method and system for providing context switch using multiple register file | |
US20180011663A1 (en) | Solid state drive | |
US7441107B2 (en) | Utilizing an advanced load address table for memory disambiguation in an out of order processor | |
KR20210144656A (ko) | 비연접 백업 물리적 서브페이지에 가상 페이지를 할당하는 방법 | |
CN105408878A (zh) | 具有存储器级并行支持的索引加速器 | |
CN112527395B (zh) | 数据预取方法和数据处理装置 | |
US11048637B2 (en) | High-frequency and low-power L1 cache and associated access technique | |
US7085887B2 (en) | Processor and processor method of operation | |
TW200931443A (en) | Apparatus for predicting memory access and method thereof | |
US11847074B2 (en) | Input/output device operational modes for a system with memory pools | |
JPH0651982A (ja) | 演算処理装置 |
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: 20150610 |
|
WD01 | Invention patent application deemed withdrawn after publication |