CN102023932A - 为本地与远程物理存储器之间的共享虚拟存储器提供硬件支持 - Google Patents
为本地与远程物理存储器之间的共享虚拟存储器提供硬件支持 Download PDFInfo
- Publication number
- CN102023932A CN102023932A CN2010102934934A CN201010293493A CN102023932A CN 102023932 A CN102023932 A CN 102023932A CN 2010102934934 A CN2010102934934 A CN 2010102934934A CN 201010293493 A CN201010293493 A CN 201010293493A CN 102023932 A CN102023932 A CN 102023932A
- Authority
- CN
- China
- Prior art keywords
- memory
- accelerator
- storage
- processor
- subclauses
- 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
Images
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]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- 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
-
- 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/25—Using a specific main memory architecture
- G06F2212/254—Distributed memory
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)
- Memory System (AREA)
Abstract
本发明的名称是为本地与远程物理存储器之间的共享虚拟存储器提供硬件支持。在一个实施例中,本发明包括具有存储虚拟地址到物理地址转换的条目的存储器管理单元(MMU),其中各条目包括指明对应条目的存储单元是存在于本地存储器中还是存在于远程存储器中的存储单元指示符。这样,公共虚拟存储器空间可在可由一个或多个非相干链路分隔的两个存储器之间共享。描述了其它实施例并且要求其权益。
Description
背景技术
随着基于处理器的系统发展,经由例如按照基于PCI ExpressTM规范基本规范版本2.0(2007年1月17日发布)(以下称作PCIeTM规范)或者另一种这样的协议的链路的外设部件互连Express(PCIeTM)互连等高速外设互连连接到系统的可编程加速器的可用性允许系统集成人员将更大计算功率装入系统。但是,在确保应用可透明地(transparently)利用附加计算功率而无需对应用进行显著变更以便在主处理器(例如多核中央处理单元(CPU))与加速器之间手动划分计算以及管理数据的来回移动方面存在难题。传统上,只有由操作系统(OS)管理的主系统存储器被分配供应用使用。对经由外设互连所耦合的任何加速器本地的物理存储器被单独管理。具体来说,加速器上的这种本地存储器作为运行在主处理器上的OS可识别的系统存储器的一部分不是可见的。相反,装置驱动软件负责显式管理本地存储器与远程存储器之间的数据移动。
由处理器存取的物理存储器由操作系统来管理,操作系统将对这个物理存储器的存取虚拟化,以便创建连续(contiguous)大虚拟地址空间的幻象(illusion)。OS将基础处理器支持用于虚拟存储器管理,因为处理器允许软件建立将虚拟页面映射到物理页面的映射表。处理器通过每次需要进行存储器存取时查询映射表,来支持虚拟存储器地址转换。频繁存取的转换可由处理器进行高速缓存,以便加速这个过程。通常称作页表的这些映射表还包含例如控制对给定虚拟页面的存取(access)的读/写和用户/超级用户特权位等属性位。虽然OS管理主板上可用的物理存储器(系统存储器),但是它没有管理或分配对加速器本地并且可用的存储器。因此,当前解决方案创建编程人员看到的共享存储器模型,并且取决于存储器保护机制来找出错误并在不同存储器之间来回移动页面。
发明内容
本发明提供了一种方法,包括:接收包含虚拟地址的存储器存取请求;分析处理器的转换后备缓冲器(TLB)中存储的与虚拟地址对应的条目,以便确定与所述虚拟地址对应的物理地址(PA)是存在于关联所述处理器的本地存储器还是存在于关联经由非相干链路耦合到所述处理器的加速器的远程存储器中,所述本地存储器和所述远程存储器共同形成共享虚拟存储器空间;以及如果PA存在于所述远程存储器中,则向所述远程存储器发送反向代理执行请求,以便执行所述存储器存取请求。
本发明还提供了一种设备,包括:具有包括第一存储器管理单元(MMU)的第一核心的处理器,所述第一MMU包括存储虚拟地址到物理地址转换的多个条目,其中各条目包括存储指明对应条目的存储单元是存在于耦合到所述处理器的本地存储器中还是存在于耦合到经由非相干互连与所述处理器耦合的加速器的远程存储器中的第一指示符的存储单元字段,以及存储与所述远程存储器关联的加速器的标识符的标识符字段。
本发明还提供了一种系统,包括:具有包括第一存储器管理单元(MMU)的第一核心的处理器,所述第一MMU包括存储虚拟地址到物理地址转换的多个条目,其中各条目包括存储指明对应条目的存储单元是存在于系统存储器中还是存在于与加速器组件关联的第二存储器中的指示符的存储单元字段,以及存储所述处理器对所述第二存储器的所述存储单元的存取次数的计数的计数器;经由链路耦合到所述处理器的加速器组件,所述加速器组件包括第二处理器和第二MMU;以及耦合到所述处理器的系统存储器,其中所述系统存储器包括动态随机存取存储器(DRAM)。
本发明还提供了一种设备,包括:具有包括第一逻辑的第一核心的处理器,所述第一逻辑在存储器存取请求的存储单元存在于关联所述加速器的存储器时,以对运行在所述第一核心上的请求数据的用户级应用透明的方式将数据的存储器存取请求发送给耦合到所述第一核心的加速器,并且响应所述存储器存取请求而从所述加速器接收所述存储单元中存储的数据。
附图说明
图1是根据本发明的一个实施例的系统的框图。
图2是根据本发明的一个实施例、用于反向代理执行(reverse proxy execution)的方法的流程图。
图3是示出根据本发明的一个实施例的反向代理执行操作的框图。
图4是根据本发明的一个实施例、用于代理执行的方法的流程图。
图5是示出根据本发明的一个实施例的代理执行操作的框图。
图6是根据本发明的一个实施例的页表的示例条目。
图7是根据本发明的一个实施例的处理器的框图。
图8是根据本发明的一个实施例、包括片上加速器的系统的框图。
具体实施方式
实施例使处理器(例如插槽(socket)上的中央处理单元(CPU))能够通过使用特殊加载/存储事务存取存在于加速器上的存储器并且对存储器寻址,来创建和管理与通过例如外设部件互连Express(PCIeTM)接口等接口与系统互连的加速器的全共享虚拟地址空间。直接对远程存储器寻址的能力允许应用软件所看到的有效计算容量增加,并且允许应用无缝(seamlessly)共享数据而无需显式涉及编程人员来回移动数据。这样,可对存储器寻址,而无需借助于存储器保护以及找出虚拟地址存取的错误,以便从错误处理程序重定向待完成的存储器存取。因此,现有共享存储器多核处理可扩展到包括不在插槽上、而是经由外设非相干链路连接的加速器。
相比之下,例如基于群集的系统等典型系统创建编程人员看到的部分共享存储器模型,并且取决于存储器保护机制来找出错误并在CPU与外围设备之间来回移动页面。另外,在基于群集的系统中,各节点运行在其上运行应用的操作系统(OS)栈的单独副本,并且系统的这个方面是编程人员接触到的,因为只有地址空间的一部分是共享的,并且编程人员从共享区域分配或者显式指定将数据的哪一部分放入共享地址空间。执行环境与类似单共享存储器多核系统的全共享存储器执行环境不同。
相反,在各个实施例中,插槽上的处理器可对加速器本地的远程存储器寻址,这允许处理器透明地使用远程存储器地址来存取共享数据。要实现这个方面,可提供架构扩展,以便允许虚拟存储器管理系统得到增强,使得可发出(issue)特殊加载/存储事务,以便对远程共享数据寻址,并且进一步使系统能够将存储器页面移动到更靠近它们被更频繁存取的存储单元,而无需显式编程人员干涉来进行此操作。另外,存储器管理扩展允许编程人员直接运行应用代码,而无需显式指明地址空间的哪些部分必须共享或者使编程人员管理公共共享数据区域。
因此,可创建和管理高速缓存相干CPU插槽上的核心与经由外设互连与系统互连的加速器(包括多核CPU)之间的共享虚拟地址空间。因此,互连两侧的CPU/加速器可通过互连来存取共享虚拟页面,共享虚拟页面可在物理上位于系统存储器中或者位于对加速器本地的存储器上,互连可以是高速缓存相干的或可以不是高速缓存相干的。
相应地,加速器本地的物理存储器可对CPU并且又对OS和应用表现为附加系统存储器,即使加速器的本地存储器是通过互连而不是由CPU通过相干结构(例如前端总线(FSB)或快速路径互连(QPI)直接可访问的。
实施例可在许多不同的系统类型中实现。现在参照图1,示出的是根据本发明的一个实施例的系统的框图。如图1所示,系统100可以是示范计算机系统,其中具有经由可以是例如PCIeTM链路的非相干互连140耦合到加速器卡150的主个人计算机(PC)平台110。大家看到,主平台110可包括CPU 120以及在一些实施例中可以是动态随机存取存储器(DRAM)的系统存储器130。虽然图1中为了便于说明而仅以这些最低限度的组件示出,但是大家理解,给定平台可包括许多其它典型组件,包括输入/输出集线器、芯片组组件、外围设备、大容量存储装置、输入/输出装置等等。
在图1中看到,CPU 120可包括存储器管理单元(MMU)125。MMU125可实现虚拟地址到物理地址的映射,并且在一些实现中可包括一个或多个转换后备缓冲器(TLB)。正如下面将进一步论述,根据本发明的一个实施例对MMU的各种架构扩展可实现与平台110和加速器卡150关联的存储器之间的共享虚拟存储器的创建和使用。
仍然参照图1,加速器卡150可包括知识产权(IP)块160,它可以是任何类型的加速器,例如图形处理单元、CPU或者任何其它这种装置。大家看到,这个IP块本身可包括MMU 165。要实现与平台110的通信,桥接器155可存在,以便将按照互连140的协议发生的通信变换成符合片上系统(SoC)结构170上所使用的协议,其中SoC结构170又将IP块160耦合到在一些实施例中同样可以是DRAM的本地存储器180。虽然在图1的实施例中以这种具体实现示出,但是本发明的范围并不局限于这个方面。
实施例可实现反向代理执行(RPE),它增强CPU识别板载(例如主板)系统存储器外部的物理存储器存取的能力。然后,可将对这类存储单元的存取转换成通过外围结构隧道传输(tunnel)到加速器的一类存取。加速器又服务于来自其本地物理存储器的存取。结合使用RPE和代理执行(其中CPU可在加速器的请求下帮助完成存储器存取),具有经由(相干或非相干)结构耦合到多插槽CPU的单独MMU的任何加速器可构建包括系统存储器和加速器本地存储器的物理存储器的共享虚拟地址空间。使用RPE和代理执行,一个实施例可允许为传统对称多处理(SMP)所构建的同一个基于多线程共享虚拟存储器的程序将线程分布在CPU上,CPU遍布于(across)多个CPU插槽或遍布于外围I/O结构上的多个止动机构上。
连同架构机制一起,实施例还可包括固件和系统软件扩展,它们允许插槽上的核心与加速器(或CPU)之间通过外围互连的控制和数据传输,以便在范围从完全OS未知到OS感知的不同抽象级(各具有用于优化的不同选项)透明地工作。
可根据从CPU侧以及加速器侧对共享数据的存取模式按照需求来共享数据。可采用虚拟地址进行工作并且支持地址转换的加速器可透明地运行相同代码而对数据和代码的参考保持不变(intact),因为在加速器执行应用程序的一部分、引用代码或数据时可使用相同的虚拟地址。包含代码或数据的物理页面可位于加速器本地或者可从系统存储器取出。虚拟页面可根据存取频率从远程存储单元移动到本地存储单元,而无需显式涉及应用软件栈来进行这种操作,因为应用无需管理数据移动以建立加速器上的计算。
往往向驱动软件分配使用主系统存储器与加速器本地的远程存储器之间的直接存储器存取(DMA)传输来显式移动大批数据的任务。在传统驱动模型中,运行在CPU上的应用程序和管理加速器的驱动程序通常驻留在两个截然不同的虚拟地址空间中。必然地,对于应用与驱动器之间的数据通信以及系统存储器与加速器本地存储器之间的数据传输通常引起极大开销。此外,这种数据传输通常通过由编程人员编写的应用代码来实现。例如,可能要求编程人员使用供应商特定的一组应用编程接口(API)手动将数据从系统存储器移动到加速器存储器。相反,根据本发明的一个实施例在CPU与加速器核心之间创建共享虚拟地址空间而无需显式管理DMA操作极大地简化了数据共享,因为整个应用代码和数据可放入公共共享虚拟地址空间,而无需通过例如采用编程人员对DMA操作的显示编排而改变应用程序来显式移动数据。因此,虽然数据传输仍然可通过DMA进行,但是它们不是编程人员控制的。换言之,处理器可在执行用户级应用期间直接存取远程存储器中存在的数据,而无需由编程人员显式编程以配置和管理基础结构来实现数据存取。
为了构造CPU与加速器之间的共享地址空间,存储器管理单元可根据用于转换虚拟-物理地址的页表的内容来允许对共享虚拟地址空间的加载/存储存取被发送给远程存储器。
系统软件支持可允许运行时系统透明且动态地迁移虚拟页面的存储单元,使得CPU与加速器之间的公共共享虚拟地址空间可被创建,并且程序的运行时工作集本地性行为(run-time working-set locality behavior)用于在存取不频繁时远程定位(locate)虚拟页面或者对于频繁存取页面对它们进行本地定位。
在各个实施例中,可提供扩展虚拟存储器支持的不同机制。一种实现没有包括对现有传统分页系统设计的任何OS变化,而其它实现可向页表条目添加更多信息。这些机制涉及支持反向代理执行的类似架构机制,即,CPU识别和服务于不是映射在系统存储器上、而是通过外围结构映射到对加速器本地的远程物理存储器的那些虚拟地址存取的能力。
要支持RPE,CPU可识别给定虚拟地址是映射到系统存储器还是通过外围结构映射到远程存储器。如果物理地址映射到系统存储器,则存取可采用标准存储器存取来进行本地处理,否则可指明RPE以处理存取。在一个实施例中,RPE可使用专用微码流来实现。RPE可开始于用将由微码处理程序来处理的特殊错误条件来标记(tag)存取(例如加载/存储(LD/ST))。处理程序可通过外围结构将存取转换成READ/WRITE/DMA事务,但若干变化也是可能的。为了描述简单起见,假定外围结构是PCIeTM互连,并且对远程物理存储器的每个单独存取被转换成不可高速缓存存取,并且又转换成PCIeTM数据事务,以便通过PCIeTM结构隧道传输请求/数据。事务可封装(encapsulate)原始虚拟地址或者物理地址。在一些实施例中,执行存取的CPU线程可停止待处理完成(pending completion)的远程存取(并且可切换到另一个线程)。当加速器从CPU接收到通知关于存取请求的PCIeTM事务时,加速器中的定序器将请求作为特殊中断事件来处理。定序器从请求中提取存取地址和存取类型。如果存取地址是虚拟地址,则定序器可经由本地MMU而在本地执行转换,以便得到物理地址。使用该物理地址,加速器定序器提交(commit)存储(如果是写事务)或者得到加载的数据(如果是读事务)。定序器将把应答(例如在加载的情况下)封装到PCIeTM事务中,并且回送给主根(host root)(即CPU)。CPU核心接收已完成存取的状态和PCIeTM事务,并且恢复连续操作,根据远程存取的存取状态,这可引起存取错误。
现在参照图2,所示的是根据本发明的一个实施例的反向代理执行的流程图。如图2所示,方法200可用于存取加速器的本地存储器(即相对于CPU的远程存储器)上存在的数据。在图2中看到,方法200可通过接收存储器存取请求来开始(框210)。这个请求可在主CPU中接收,主CPU又可将请求转发给MMU、如TLB,以便确定条目是否用于TLB中存在的虚拟地址(菱形框220)。如果不是,则可执行页面丢失处理程序,以便得到该条目并且将其存储到TLB中(框225)。
当条目存在于TLB时,可对它进行分析,以便确定对应物理地址的存储单元(框230)。例如,正如下面进一步论述,各TLB条目可包括指明对应页面是存在于本地(即系统存储器)还是远程存储器的信息。如果物理地址存在于系统存储器(菱形框240),则控制转到框245,其中可执行对系统存储器的存储器存取请求,并且相应地可提供所请求数据作为对请求方的响应(框250)。
如果在菱形框240而是确定物理地址不在系统存储器中,则控制转到框260。在框260,可准备反向代理执行请求,以便将存储器存取请求发送给包括数据的远程存储器(例如加速器的本地存储器)。在各种实现中,这个请求可通过非相干互连、例如作为专用加载/存储请求来隧道传输。在加速器上处理这个反向代理执行请求之后,控制转到框270,其中接收反向代理执行请求的结果,即,接收所请求数据,并且可将响应提供给请求方,如以上针对框250所述。虽然在图2的实施例中以这种具体实现示出,但是本发明的范围并不局限于这个方面。
现在参照图3,所示的是示出根据本发明的一个实施例的反向代理执行的操作的框图。如图3所示,当从CPU 120到MMU 125的存取(1)虚拟地址(V.A)X的请求失败(例如,查找指明页面存在于加速器卡的本地存储器中)时,反向代理执行请求被准备并且发送(2)给加速器卡150。加速器160又处理请求,以便将存储器存取请求(3)发送给MMU 165,MMU 165又存取(4)本地存储器180中的所请求页面,使得所请求数据可回送给CPU 120(5)。注意,完全在主CPU的控制下,在其有利的(glorified)LD/ST实现内(all under the host inside its glorified LD/ST implementation)(例如在微码流中),来自加速器的数据可经由DMA或者轮询来发送给主CPU。换言之,一旦CPU发出对远程存储单元的存取,则CPU将存取转向微码例程,以便执行有利的LD/ST,这将等待DMA中断或者执行活动轮询(active polling)而从加速器得到“返回”数据。对(V.A)X的存储器存取的完成以对存取标识在虚拟地址X处的存储单元的应用程序透明的方式来执行。
总体上,RPE操作的作用就像通过不均匀存储器架构(NUMA)系统的长等待时间存储器存取操作。基础隧道传输机制可根据结构的性质而改变。在PCIeTM结构的情况下,由于根(系统)与子(加速器)联合体之间的不对称,其中即使CPU通常无法存取加速器的本地存储器的任一个,加速器也可存取一系列系统存储器,RPE性能机制的各种优化可通过将系统存储器的部分或者加速器的本地存储器用作专有存储器(private memory)来实现。在一个实施例中,系统存储器的部分可保留作为远程加速器本地存储器的高速缓存。或者,可分配专有存储器区域以充当缓冲器,以便保存远程存取的虚拟页面。例如对映射到远程页面的虚拟地址X的存取可引起整个页面临时读入本地缓冲器,其中它将可用于将来的存取,以便减少远程存储器存取。
在一个实施例中,代理执行机制可用于处理在加速器定序器上发生(incur)的页面错误(page fault)情况,表示可将错误发送给CPU供处理。这意味着,加速器定序器上的MMU与CPU的MMU是相干的(coherent),并且全部指向OS的同一个页表。无论是由CPU还是加速器上的操作所引起的虚拟页面的页面错误使CPU使用传统页面处理机制来使页面进入存储器。如果错误来源于加速器定序器上的存取,则CPU可在远程加速器本地物理存储器中安装新的页面。否则,可将该页面放入系统存储器。CPU上对映射到远程加速器本地存储器的虚拟地址的非错误存取将保证映射到加速器上的物理页面,由此确保完成代理执行。
现在参照图4,所示的是根据本发明的一个实施例的代理执行的方法的流程图。在图4中看到,方法300可用于在加速器所预期的数据没有存在于其本地存储器时执行代理执行。
在图4中看到,方法300可通过接收来自加速器的存储器存取请求来开始(框310)。然后,可确定请求的虚拟地址的条目是否存在于加速器的TLB中(菱形框350)。如果是的话,则加速器的本地存储器可使用这个虚拟地址来存取(框370),并且将响应提供给请求方(框380)。
否则,如果条目没有存在于TLB,则控制转到框330,其中可将代理执行请求发送给CPU(框330)。假定所请求的转换没有存在于CPU的MMU中,则可运行页面丢失处理程序,以便得到该条目(框335)。此外,与这个虚拟地址对应的页面可从系统存储器移动到加速器本地存储器(框340)。然后,恢复消息可从CPU发送给加速器(框350)。相应地,加速器可对其TLB重试存储器请求(框360)。由于条目这时存在于MMU中,所以可对本地存储器执行存储器存取请求,以便得到所请求的数据(框370)。相应地,可将包含所请求数据的响应提供给请求方(框380)。
现在参照图5,所示的是示出根据本发明的一个实施例的代理执行操作的框图。在图5中看到,代理执行可在加速器请求存取(1)没有存在于本地MMU 165的虚拟地址(V.A)X时发生。相应地,将对这个页面错误的代理执行请求(2)发送给CPU 120。图5示出其中MMU 165直接向CPU 120发送代理执行请求的实现。但是,当代理通过页面漫步代码(page-walking code)(微码、固件或软件,取决于如何管理MMU)来实现时,这个代码则可发送代理请求。CPU 120将请求(3)发送给本地MMU 125,MMU 125又存取系统存储器130中的页面以便获得所请求的虚拟地址(4)。大家看到,当请求用于读取数据时,整个页面可从系统存储器130发送(5)到本地存储器180。在一个实施例中,数据的传输可经由CPU 120进行,CPU 120对DMA编程,以便将数据从系统存储器130中的区域复制到本地存储器180中的区域。备选地,CPU 120可通过运行例如使用上述微码所实现的单独的“有利”加载/存储指令序列来执行复制。此后,CPU 120可将恢复消息(6)发送给加速器160,加速器160又重试对MMU 165的存取(7),MMU 165这时发现转换存在,并且发送请求(8)以便从本地存储器180得到对应数据。注意,为了实现对本地存储器180中的数据的存取,使MMU 165是可寻址的。CPU 120可直接执行单独的“有利”LD/ST,以便把来自系统存储器130上的页表的转换条目更新到MMU 165中。备选地,CPU 120可经由到本地存储器180的数据传输来将包含转换的页表或者页表的子集复制到加速器侧,并且然后恢复加速器160,其页面漫步器(page walker)将漫步(walk)这时本地驻留的页表。
区分CPU上的虚拟地址存取是本地(在系统存储器中)还是远程(在加速器的存储器中)的信息可来自OS,它从基本输入/输出系统(BIOS)知道这种信息,BIOS完全知道系统存储器配置。要支持RPE,BIOS可列举(enumerate)加速器上的公告存储器大小。这个操作与由BIOS在引导时所执行的只读存储器(ROM)/随机存取存储器(RAM)芯片选择相似。然后,BIOS可报告系统存储器和加速器本地存储器的总和,并且通知OS关于存储器的哪一个范围是本地系统存储器以及哪一个是远程的。
在各个实施例中,BIOS的系统级状态、即称作存储器分区描述符的一组描述符架构状态可记录这种范围信息,例如最小程度地记录系统存储器的范围信息,因而这个范围之外的任何物理地址将识别为远程。在一个实施例中,这种信息可存储在BIOS内建数据结构中。存储器描述符也可作为专有状态(private state)存储在软件和微码均可存取的机器特定寄存器中。注意,这种范围信息首先由BIOS在OS启动之前建立,因此这些状态的使用与OS没有相关性。换言之,RPE机制可与甚至不知道远程与本地存储器之间的区别的传统OS配合工作。
对于由CPU所处理的任何给定LD/ST,使各TLB转换还将物理地址与存储器分区描述符进行比较以判定它是本地系统存储器还是远程存取可能是麻烦的。相反,这种检查可在MMU的关键路径外执行,并且可仅在填充新TLB条目时才通过页面漫步发生。在一些实施例中,各TLB条目可包括属性位,以便指明对应条目是在远程还是在本地系统存储器中。当安装新的TLB条目时,页面漫步器可执行页表条目中的物理地址范围相对存储器分区描述符的范围检查。注意,这种机制即使在OS不在本地或者远程映射的页面之间进行区分时也进行工作。
在一些实施例中,OS可通过将加速器本地存储器仅用于保存加速器频繁存取的应用的代码和数据的那个子集,来处理使用加速器本地存储器背后的策略(policy behind usage of accelerator local memory)。如果OS不知道,则例如运行时层或其它实体的本地性原则将帮助把工作集移动到系统存储器或加速器本地存储器中接近存取更频繁发生的存储单元。
另外,如上所述,OS页表格式可包括属性位,以便指明对应页面是存储在本地还是远程存储器中。当OS建立虚拟地址到物理地址映射时,可标记这个位,并且对于各物理页面,OS可检查存储器分区描述符,以便将该页面标记为本地或远程。这样,无需对任何已安装TLB条目执行范围检查。为了允许应用存取加速器上的存储器,CPU可分析属性位,使得它可将对给定虚拟地址的加载/存储路由到远程物理存储单元。另外,属性位还可跟踪远程执行的存取次数,从而使OS软件能够实现基于远程存取次数的策略,使得在远程存取次数超过特定阈值时,可将页面迁移到另一个存储单元。
虽然有可能通过增强虚拟页面的保护、例如将页面标记为不可存取或者不存在,并且处理所得错误,来实现远程存储器存取,但是存取等待时间增加,因为页面错误处理程序需要在每次存储器存取发生时运行。相反,使用本发明的一个实施例,CPU可将远程存储单元地址提供给总线控制器,总线控制器将存取导向加速器的存储单元。例如,CPU可通过存取总线控制器中定义的寄存器的标准集来直接重定向加载/存储,以便对远程存储单元进行存取,而无需来自软件的任何帮助以完成加载/存储。这种数据传输可通过DMA(成批传输)或者以高速缓存行粒度的标量传输来进行。透明地将虚拟页面从远程存储单元移动到本地存储单元(反过来也是一样)的能力允许软件(例如应用)与加速器共享数据,而无需显式管理数据的移动。在没有连接到系统或者进入无响应状态的加速器的情况下,地址转换单元产生指明加载/存储失败的原因的页面错误。
现在参照图6,所示的是根据本发明的一个实施例的页表中的示例条目400。大家看到,各条目可包含页面基址(PBA)字段410,它存储指向存储器中存储的页面的第一地址的PBA。另外,各条目可包括:加速器字段420,它存储表示(refer to)包括该页面的系统中存在的加速器的n位加速器标识符(ID);本地/远程字段430,存储关于对应虚拟页面是存储在本地存储器还是可能多个远程存储器之一中的例如n位指示符;计数器字段440,存储对远程存储器进行的存取的次数进行计数的m位计数器(使得计数器仅在页面处于远程存储器时才是活动的);以及属性字段450,存储指明页面的不同属性的各个位。
在一个实施例中,当存取计数器的值达到零时,发生例外情况。这种例外情况允许OS软件、例如负责页面迁移的虚拟存储器管理核心根据对给定虚拟页面的存取次数来管理迁移策略。也就是说,软件可管理虚拟地址空间,其中应用进行工作,使得虚拟地址空间可映射位于更接近CPU或者更接近加速器的物理存储器页面。对于耦合到PCIeTM总线的加速器,由于总线是非相干的,所以基础运行时软件可实现基于软件的相干机制。对于对任何共享数据结构的争用存取,可使用同步控制、如信标(semaphore),使得生产者线程没有释放信标,直到它准备将数据移交给消费者(consumer)。在生产者(producer)释放信标之前,需要将与共享数据有关的所有脏高速缓存行刷(flush)到存储器中。这保证在加速器上的消费者线程开始对来自存储器的共享数据进行存取时,数据是相干的,即使主CPU与加速器之间的结构不支持高速缓存相干性。相反,当加速器完成处理共享数据时,类似的同步和刷新机制可用于确保基于存储器的数据相干。如果CPU与加速器之间的结构是高速缓存相干的(例如未来一代的PCIe),则在生产者释放信标之前,在移交时,不需要将脏行刷到存储器中。
在具有OS支持的实施例中,加速器上的存储器的分配和管理可与分配和管理给予应用的系统存储器页面并且管理由CPU用于将虚拟地址转换到物理地址的页表的OS的存储器管理器配合来执行。存储器管理器还处理因存取远程存储器的重定向而发生的例外情况,并且管理CPU与加速器之间的物理页面的迁移背后的策略。页面迁移策略可根据工作负荷的行为而改变,并且可潜在地(potentially)改变成减少远程存取次数(在对应页面移动到系统存储器之前)或者实现第一接触策略,以便将页面移动到存在最大存取次数的存储单元。代码和只读数据页面可在多个存储器中复制,以便防止不必要地来回移动物理页面。只有包含在执行程序期间处理的数据的数据页面才根据对数据页面的存取的本地性来回迁移。
现在参照图7,示出的是根据本发明的一个实施例的处理器的框图。如图7所示,处理器500可以是多级流水线无序处理器。处理器500以图7中相对简化的视图示出,以便说明与根据本发明的一个实施例的代理执行和反向代理执行结合使用的各种特征。
如图7所示,处理器500包括前端单元510,前端单元510可用于取将要执行的宏指令,并且将它们准备稍后供处理器中使用。例如,前端单元510可包括取指令单元504、指令高速缓存506和指令解码器508。在一些实现中,前端单元510还可包括追踪高速缓存(trace cache)连同微码存储装置以及微操作存储装置。取指令单元504可以例如从存储器或者指令高速缓存506取宏指令,并且将它们馈送给指令解码器508,以便将它们解码为原语、即微操作,以供处理器执行。前端单元510还包括根据本发明的一个实施例的MMU 509,以便存储包含增加状态信息的条目,以处理本文所述的代理执行和反向代理执行。根据这种信息,可有效地执行包括系统存储器和一个或多个加速器的本地存储器的共享虚拟存储器空间中的操作,而无需用于移动数据的编程人员支持。
耦合在前端单元510与执行单元520之间的是无序(OOO)引擎515,它可用于接收微指令,并且将它们准备用于执行。更具体来说,OOO引擎515可包括各种缓冲器,以便对微指令流重排序,并且分配执行所需的各种资源,以及提供逻辑寄存器到各种寄存器文件(如寄存器文件530和扩展寄存器文件535)内的存储装置存储单元的重命名。寄存器文件530可包括用于整数和浮点运算的独立寄存器文件。扩展寄存器文件535可为向量大小单元(vector-sized unit)提供存储,如每个寄存器256或512位。
各种资源可存在于执行单元520中,包括例如各种整数、浮点和单指令多数据(SIMD)逻辑单元以及其它专用硬件。可将结果提供给引退逻辑(retirement logic),即重排序缓冲器(ROB)540。更具体来说,ROB540可包括各种阵列和逻辑,以便接收与被执行的指令关联的信息。然后,这个信息由ROB 540检查,以便确定指令是否可有效地引退以及结果数据被提交给处理器的架构状态,或者是否发生阻止指令的正确引退的一个或多个例外情况(exception)。当然,ROB 540可处理与引退关联的其它操作。
如图7所示,ROB 540耦合到高速缓存550,高速缓存550在一个实施例中可以是低级高速缓存(例如L1高速缓存),但是本发明的范围并不局限于这个方面。执行单元520也可直接耦合到高速缓存550。从高速缓存550,可与更高级高速缓存、系统存储器等进行数据通信。虽然在图7的实施例中以这种高级示出,但是大家理解,本发明的范围并不局限于这个方面。
例如,在一些实现中,加速器可与处理器片上集成。例如,在一种架构中,多核处理器可包括多个单独处理器核心以及加速器可以是例如图形处理器或者其它专用处理单元的异构核心。一般来说,代理执行和反向代理执行的操作可通过与以上对于可通过包括相干或非相干链路的任何类型的互连耦合到核心的片上加速器所述的相同方式发生。
现在参照图8,所示的是根据本发明的另一个实施例的系统的框图。在图8中看到,系统600包括多核处理器610,多核处理器610可在单个半导体芯片上形成并且包括各种组件。具体来说,在图8的实现中,处理器610可包括多个核心620a-620n,其中的每个可包括TLB625a-625n,它们可包括具有如上所述转换和附加字段的条目。核心又可耦合到共享高速缓存640,共享高速缓存640可以是共享最后级高速缓存,因为单独核心的每个可包括它自己的高速缓冲存储器。还看到,处理器610还可包括加速器。在所示实施例中,示出两个这类加速器,但是本发明的范围并不局限于这个方面。加速器与核心的连接可以通过例如相干或非相干链路等任何类型的互连,例如PCIeTM链路、共享总线互连等等。加速器630a和630b示为各包括具有上述条目的TLB 635。另外,处理器610可包括存储控制器650。
在一种实现中,处理器610可耦合到存储器660,存储器660可以是可划分为多个分区的系统存储器,例如包括可与处理器核心关联的第一分区665a以及可与加速器关联的第二分区665b。当然,与核心和加速器关联的存储器可例如经由不同端口以及作为不同存储器模块等等以不同方式来配置。处理器610还可耦合到芯片组670,芯片组607又可耦合到各种外围设备,例如输入/输出装置、存储装置、其它加速器等等。
相应地,实施例可提供在可包括集成加速器或者经由可以是相干或非相干的链路耦合的加速器的不同系统中的代理执行和反向代理执行的处理。
实施例可通过代码来实现,并且可存储在其上已存有指令的存储介质上,该指令可用于对系统编程,以便执行指令。存储介质可包括但不限于:任何类型的磁盘,包括软盘、光盘、固态驱动(SSD)、光盘只读存储器(CD-ROM)、可重写光盘(CD-RW)和磁光盘;半导体器件,例如只读存储器(ROM)、例如动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)等随机存取存储器(RAM)、可擦可编程只读存储器(EPROM)、闪速存储器、电可擦可编程只读存储器(EEPROM)、磁卡或光卡;或者适合于存储电子指令的任何其它类型的介质。
虽然针对有限数量的实施例描述了本发明,但是本领域的技术人员将会从其中知道大量修改和变更。所附权利要求书意在涵盖落入本发明的真实精神和范围之内的所有这类修改和变更。
Claims (30)
1.一种方法,包括:
接收包含虚拟地址的存储器存取请求;
分析处理器的转换后备缓冲器(TLB)中存储的与虚拟地址对应的条目,以便确定与所述虚拟地址对应的物理地址(PA)是存在于关联所述处理器的本地存储器还是存在于关联经由非相干链路耦合到所述处理器的加速器的远程存储器中,所述本地存储器和所述远程存储器共同形成共享虚拟存储器空间;以及
如果PA存在于所述远程存储器中,则向所述远程存储器发送反向代理执行请求,以便执行所述存储器存取请求。
2.如权利要求1所述的方法,还包括:根据TLB条目的存储单元指示符来确定所述PA是在所述本地存储器还是所述远程存储器中。
3.如权利要求2所述的方法,还包括:使用指明与所述远程存储器关联的加速器的所述TLB条目的标识符字段来确定PA位于各与加速器关联的多个远程存储器的哪一个中。
4.如权利要求3所述的方法,还包括:分析指示所述处理器对所述远程存储器的所述PA的存取次数的所述TLB条目的计数器。
5.如权利要求4所述的方法,还包括:当所述计数器达到阈值时,将信息从所述远程存储器的PA移动到所述本地存储器,而无需涉及运行在所述处理器上的应用。
6.如权利要求1所述的方法,还包括:将包括所述本地存储器和所述远程存储器的系统的存储器配置设置成指示与所述本地存储器关联的第一物理地址范围以及与所述远程存储器关联的第二物理地址范围。
7.如权利要求6所述的方法,还包括:通过页面漫步来对存储器配置进行存取以得到存储器存取请求的转换,以及将包含所述转换和存储单元指示符的条目存储在TLB中,其中所述存储单元指示符具有当所述PA处于所述第一物理地址范围之内时指明所述PA处于所述本地存储器中的第一值。
8.一种设备,包括:
具有包括第一存储器管理单元(MMU)的第一核心的处理器,所述第一MMU包括存储虚拟地址到物理地址转换的多个条目,其中各条目包括存储指明对应条目的存储单元是存在于耦合到所述处理器的本地存储器中还是存在于耦合到经由非相干互连与所述处理器耦合的加速器的远程存储器中的第一指示符的存储单元字段,以及存储与所述远程存储器关联的加速器的标识符的标识符字段。
9.如权利要求8所述的设备,其中,所述第一MMU的各条目还包括存储所述处理器对所述远程存储器的所述存储单元的存取次数的计数的计数器。
10.如权利要求8所述的设备,其中,所述本地存储器是系统存储器,而所述远程存储器是所述加速器的本地存储器。
11.如权利要求10所述的设备,其中,所述系统存储器和所述远程存储器包括单个虚拟地址空间。
12.如权利要求8所述的设备,其中,当所述第一MMU的条目指明所述存储单元处于所述远程存储器时,所述处理器经由所述非相干互连的协议将存储器请求隧道传输到所述加速器。
13.如权利要求8所述的设备,其中,所述加速器包括第二MMU,并且响应所述第二MM上的页面错误,所述加速器请求所述处理器解析所述页面错误。
14.如权利要求13所述的设备,其中,所述处理器使所述本地存储器将关联所述页面错误的地址的存储器页面传输给所述远程存储器,并且使所述存储器页面的转换发送给所述加速器供存储在所述第二MMU中。
15.如权利要求8所述的设备,其中,所述处理器使用所述第一MMU的条目中的信息直接对存在于所述远程存储器中的存储单元寻址。
16.如权利要求8所述的设备,其中,所述处理器向所述加速器发出反向代理执行请求,以便使用所述第一MMU的条目中的信息来存取所述加速器的所述远程存储器中存储的数据,并且无需使用运行在所述处理器上的用户级应用。
17.一种系统,包括:
具有包括第一存储器管理单元(MMU)的第一核心的处理器,所述第一MMU包括存储虚拟地址到物理地址转换的多个条目,其中各条目包括存储指明对应条目的存储单元是存在于系统存储器中还是存在于与加速器组件关联的第二存储器中的指示符的存储单元字段,以及存储所述处理器对所述第二存储器的所述存储单元的存取次数的计数的计数器;
经由链路耦合到所述处理器的加速器组件,所述加速器组件包括第二处理器和第二MMU;以及
耦合到所述处理器的系统存储器,其中所述系统存储器包括动态随机存取存储器(DRAM)。
18.如权利要求17所述的系统,其中,所述处理器使用所述第一MMU的条目中的信息直接对存在于所述第二存储器中的存储单元寻址。
19.如权利要求17所述的系统,其中,所述系统存储器和所述第二存储器包括单个虚拟地址空间。
20.如权利要求18所述的系统,其中,所述处理器响应当所述计数器达到阈值时发生的中断而将信息从存在于所述第二存储器的所述存储单元移动到存在于所述系统存储器的存储单元,而无需涉及运行在所述处理器上的应用。
21.如权利要求17所述的系统,其中,所述处理器和所述加速器组件由单个半导体芯片形成。
22.如权利要求21所述的系统,其中,所述第二存储器是所述系统存储器的分区部分。
23.一种设备,包括:
具有包括第一逻辑的第一核心的处理器,所述第一逻辑在存储器存取请求的存储单元存在于关联所述加速器的存储器时,以对运行在所述第一核心上的请求数据的用户级应用透明的方式将数据的存储器存取请求发送给耦合到所述第一核心的加速器,并且响应所述存储器存取请求而从所述加速器接收所述存储单元中存储的数据。
24.如权利要求23所述的设备,其中,所述第一核心包括包含存储虚拟地址到物理地址转换的多个条目的第一存储装置,其中各条目包括指明对应条目的存储单元是存在于关联所述第一核心的第一存储器中还是存在于关联耦合到所述处理器的加速器的存储器中的至少一个指示符以及与所述存储器关联的所述加速器的标识符。
25.如权利要求24所述的设备,其中,所述第一存储装置的各条目还包括存储所述第一核心对关联所述加速器的所述存储器的所述存储单元的存取次数的计数的计数器。
26.如权利要求25所述的设备,其中,如果所述计数器的值大于阈值,则将所述存储单元中存储的所述数据移动到所述第一存储器中的第二存储单元。
27.如权利要求26所述的设备,其中,所述存储器存取请求的传输和所述数据移动对请求所述数据的用户级应用是透明的。
28.如权利要求24所述的设备,其中,当所述第一存储装置的条目指明所述存储单元处于关联所述加速器的所述存储器时,所述处理器经由耦合所述处理器和所述加速器的互连的协议将所述存储器存取请求隧道传输到所述加速器。
29.如权利要求23所述的设备,其中,所述处理器包括包含所述第一核心和所述加速器的多核处理器,所述多核处理器在单个半导体芯片上形成。
30.如权利要求23所述的设备,其中,所述第一存储器和关联所述加速器的所述存储器包括单个虚拟地址空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410350006.1A CN104123242B (zh) | 2009-09-18 | 2010-09-16 | 为本地与远程物理存储器之间的共享虚拟存储器提供硬件支持 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/562477 | 2009-09-18 | ||
US12/562,477 US8719547B2 (en) | 2009-09-18 | 2009-09-18 | Providing hardware support for shared virtual memory between local and remote physical memory |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410350006.1A Division CN104123242B (zh) | 2009-09-18 | 2010-09-16 | 为本地与远程物理存储器之间的共享虚拟存储器提供硬件支持 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102023932A true CN102023932A (zh) | 2011-04-20 |
CN102023932B CN102023932B (zh) | 2014-08-27 |
Family
ID=43705804
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410350006.1A Expired - Fee Related CN104123242B (zh) | 2009-09-18 | 2010-09-16 | 为本地与远程物理存储器之间的共享虚拟存储器提供硬件支持 |
CN201010293493.4A Expired - Fee Related CN102023932B (zh) | 2009-09-18 | 2010-09-16 | 为本地与远程物理存储器之间的共享虚拟存储器提供硬件支持 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410350006.1A Expired - Fee Related CN104123242B (zh) | 2009-09-18 | 2010-09-16 | 为本地与远程物理存储器之间的共享虚拟存储器提供硬件支持 |
Country Status (6)
Country | Link |
---|---|
US (2) | US8719547B2 (zh) |
JP (3) | JP2011065650A (zh) |
CN (2) | CN104123242B (zh) |
BR (1) | BRPI1003466A2 (zh) |
DE (1) | DE102010035603A1 (zh) |
TW (1) | TWI470435B (zh) |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103198022A (zh) * | 2011-12-20 | 2013-07-10 | 富士通株式会社 | 信息处理设备和存储器访问方法 |
CN103827839A (zh) * | 2011-07-26 | 2014-05-28 | 英特尔公司 | 用于在支持共享虚拟存储器的异构计算系统中的tlb关闭的方法和装置 |
CN104204990A (zh) * | 2012-03-30 | 2014-12-10 | 英特尔公司 | 在使用共享虚拟存储器的处理器中加速操作的装置和方法 |
CN105027091A (zh) * | 2013-03-13 | 2015-11-04 | 英派尔科技开发有限公司 | 内存分配加速器 |
WO2016065610A1 (zh) * | 2014-10-31 | 2016-05-06 | 华为技术有限公司 | 访问文件的方法、分布式存储系统和存储节点 |
CN105718211A (zh) * | 2014-12-19 | 2016-06-29 | 富士施乐株式会社 | 信息处理设备和信息处理方法 |
CN105938461A (zh) * | 2015-07-31 | 2016-09-14 | 杭州迪普科技有限公司 | 一种dma数据传输方法、装置以及网络设备 |
CN107430628A (zh) * | 2015-04-03 | 2017-12-01 | 华为技术有限公司 | 具有直接数据传输机制的加速框架 |
CN107533538A (zh) * | 2015-04-17 | 2018-01-02 | 微软技术许可有限责任公司 | 在使用加速部件的系统中处理租户要求 |
CN107632946A (zh) * | 2016-07-18 | 2018-01-26 | 三星电子株式会社 | 操作存储设备和包括其的数据处理系统的方法 |
CN108027726A (zh) * | 2015-09-26 | 2018-05-11 | 英特尔公司 | 用于在远程处理器上实施原子动作的硬件机制 |
CN109032963A (zh) * | 2017-06-12 | 2018-12-18 | Arm有限公司 | 访问控制 |
CN109308270A (zh) * | 2018-09-04 | 2019-02-05 | 天津飞腾信息技术有限公司 | 一种加速虚实地址转换的方法及装置 |
CN109716306A (zh) * | 2016-09-19 | 2019-05-03 | 高通股份有限公司 | 动态输入/输出相干性 |
CN109729110A (zh) * | 2017-10-27 | 2019-05-07 | 伊姆西Ip控股有限责任公司 | 管理专用处理资源的方法、设备以及计算机可读介质 |
US20190155669A1 (en) | 2015-06-26 | 2019-05-23 | Microsoft Technology Licensing, Llc | Partially reconfiguring acceleration components |
CN111290979A (zh) * | 2020-03-23 | 2020-06-16 | 优刻得科技股份有限公司 | 数据传输方法、装置及系统 |
CN111684424A (zh) * | 2018-02-05 | 2020-09-18 | 美光科技公司 | 多层存储器系统中的远程直接存储器存取 |
CN111736946A (zh) * | 2019-03-25 | 2020-10-02 | 阿里巴巴集团控股有限公司 | 用于监视虚拟机i/o流量的系统和方法 |
US10819657B2 (en) | 2015-06-26 | 2020-10-27 | Microsoft Technology Licensing, Llc | Allocating acceleration component functionality for supporting services |
US11010198B2 (en) | 2015-04-17 | 2021-05-18 | Microsoft Technology Licensing, Llc | Data processing system having a hardware acceleration plane and a software plane |
WO2024073864A1 (en) * | 2022-10-02 | 2024-04-11 | Intel Corporation | Distributed address translation services |
Families Citing this family (106)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8667249B2 (en) * | 2004-12-22 | 2014-03-04 | Intel Corporation | Systems and methods exchanging data between processors through concurrent shared memory |
US8250578B2 (en) * | 2008-02-22 | 2012-08-21 | International Business Machines Corporation | Pipelining hardware accelerators to computer systems |
US8726289B2 (en) * | 2008-02-22 | 2014-05-13 | International Business Machines Corporation | Streaming attachment of hardware accelerators to computer systems |
US8656397B2 (en) * | 2010-03-30 | 2014-02-18 | Red Hat Israel, Ltd. | Migrating groups of threads across NUMA nodes based on remote page access frequency |
US20120236010A1 (en) * | 2011-03-15 | 2012-09-20 | Boris Ginzburg | Page Fault Handling Mechanism |
US9921967B2 (en) | 2011-07-26 | 2018-03-20 | Intel Corporation | Multi-core shared page miss handler |
US8984511B2 (en) * | 2012-03-29 | 2015-03-17 | Advanced Micro Devices, Inc. | Visibility ordering in a memory model for a unified computing system |
US9164904B2 (en) | 2012-08-28 | 2015-10-20 | Hewlett-Packard Development Company, L.P. | Accessing remote memory on a memory blade |
US9384153B2 (en) * | 2012-08-31 | 2016-07-05 | Freescale Semiconductor, Inc. | Virtualized local storage |
CN103902459B (zh) | 2012-12-25 | 2017-07-28 | 华为技术有限公司 | 确定共享虚拟内存页面管理模式的方法和相关设备 |
US9361116B2 (en) | 2012-12-28 | 2016-06-07 | Intel Corporation | Apparatus and method for low-latency invocation of accelerators |
US10140129B2 (en) | 2012-12-28 | 2018-11-27 | Intel Corporation | Processing core having shared front end unit |
US9417873B2 (en) | 2012-12-28 | 2016-08-16 | Intel Corporation | Apparatus and method for a hybrid latency-throughput processor |
US10346195B2 (en) | 2012-12-29 | 2019-07-09 | Intel Corporation | Apparatus and method for invocation of a multi threaded accelerator |
US9906459B2 (en) | 2013-01-27 | 2018-02-27 | Hewlett Packard Enterprise Development Lp | Socket state transfer |
US10114662B2 (en) | 2013-02-26 | 2018-10-30 | Red Hat Israel, Ltd. | Updating processor topology information for virtual machines |
US10061622B2 (en) | 2013-02-26 | 2018-08-28 | Red Hat Israel, Ltd. | Updating memory topology information for virtual machines |
US10133677B2 (en) * | 2013-03-14 | 2018-11-20 | Nvidia Corporation | Opportunistic migration of memory pages in a unified virtual memory system |
US20140280669A1 (en) * | 2013-03-15 | 2014-09-18 | Microsoft Corporation | Memory Sharing Over A Network |
WO2014158177A1 (en) * | 2013-03-28 | 2014-10-02 | Hewlett-Packard Development Company, L.P. | Shared memory system |
US9678818B2 (en) * | 2014-01-30 | 2017-06-13 | Mellanox Technologies, Ltd. | Direct IO access from a CPU's instruction stream |
US9785576B2 (en) | 2014-03-27 | 2017-10-10 | Intel Corporation | Hardware-assisted virtualization for implementing secure video output path |
WO2015150976A1 (en) | 2014-04-03 | 2015-10-08 | Strato Scale Ltd. | Cluster-wide memory management using similarity-preserving signatures |
US9766916B2 (en) | 2014-05-05 | 2017-09-19 | International Business Machines Corporation | Implementing coherent accelerator function isolation for virtualization |
US10025715B2 (en) | 2014-06-27 | 2018-07-17 | International Business Machines Corporation | Conditional inclusion of data in a transactional memory read set |
US9342346B2 (en) | 2014-07-27 | 2016-05-17 | Strato Scale Ltd. | Live migration of virtual machines that use externalized memory pages |
US9436601B2 (en) | 2014-09-15 | 2016-09-06 | International Business Machines Corporation | Categorizing memory pages based on page residences |
US9390028B2 (en) | 2014-10-19 | 2016-07-12 | Strato Scale Ltd. | Coordination between memory-saving mechanisms in computers that run virtual machines |
US9710624B2 (en) | 2014-11-20 | 2017-07-18 | International Business Machines Corporation | Implementing extent granularity authorization initialization processing in CAPI adapters |
US9697370B2 (en) | 2014-11-20 | 2017-07-04 | International Business Machines Corporation | Implementing and processing extent granularity authorization mechanism in CAPI adapters |
US9582659B2 (en) | 2014-11-20 | 2017-02-28 | International Business Machines Corporation | Implementing extent granularity authorization and deauthorization processing in CAPI adapters |
US20160149909A1 (en) | 2014-11-20 | 2016-05-26 | International Business Machines Corporation | Implementing block device extent granularity authorization model processing in capi adapters |
US9600428B2 (en) | 2014-11-20 | 2017-03-21 | International Business Machines Corporation | Implementing extent granularity authorization command flow processing in CAPI adapters |
US9600642B2 (en) | 2014-11-20 | 2017-03-21 | International Business Machines Corporation | Implementing extent granularity authorization processing in CAPI adapters |
CN104391753B (zh) * | 2014-12-16 | 2017-12-05 | 浪潮电子信息产业股份有限公司 | 一种服务器主板内存系统无故障运行方法 |
US9921768B2 (en) * | 2014-12-18 | 2018-03-20 | Intel Corporation | Low power entry in a shared memory link |
US9524328B2 (en) | 2014-12-28 | 2016-12-20 | Strato Scale Ltd. | Recovery synchronization in a distributed storage system |
US9912748B2 (en) | 2015-01-12 | 2018-03-06 | Strato Scale Ltd. | Synchronization of snapshots in a distributed storage system |
US9495303B2 (en) * | 2015-02-03 | 2016-11-15 | Intel Corporation | Fine grained address remapping for virtualization |
US9727241B2 (en) * | 2015-02-06 | 2017-08-08 | Advanced Micro Devices, Inc. | Memory page access detection |
US9658793B2 (en) * | 2015-02-20 | 2017-05-23 | Qualcomm Incorporated | Adaptive mode translation lookaside buffer search and access fault |
US9858201B2 (en) * | 2015-02-20 | 2018-01-02 | Qualcomm Incorporated | Selective translation lookaside buffer search and page fault |
CN106233265A (zh) | 2015-02-26 | 2016-12-14 | 斯特拉托斯卡莱有限公司 | 将访问频率层次结构用于逐出目标的选择 |
GB2536200B (en) * | 2015-03-02 | 2021-08-18 | Advanced Risc Mach Ltd | Memory management |
GB2536199B (en) * | 2015-03-02 | 2021-07-28 | Advanced Risc Mach Ltd | Memory management |
US10606635B2 (en) * | 2015-05-12 | 2020-03-31 | Nec Corporation | Accelerator control apparatus, accelerator control method, and storage medium |
US9858198B2 (en) | 2015-06-26 | 2018-01-02 | Intel Corporation | 64KB page system that supports 4KB page operations |
US10025722B2 (en) | 2015-10-28 | 2018-07-17 | International Business Machines Corporation | Efficient translation reloads for page faults with host accelerator directly accessing process address space without setting up DMA with driver and kernel by process inheriting hardware context from the host accelerator |
US9678788B2 (en) | 2015-11-10 | 2017-06-13 | International Business Machines Corporation | Enabling poll/select style interfaces with coherent accelerators |
KR20180088438A (ko) | 2015-11-30 | 2018-08-03 | 가부시키가이샤 페지 컴퓨팅 | 다이 및 패키지 |
US10818638B2 (en) * | 2015-11-30 | 2020-10-27 | Pezy Computing K.K. | Die and package |
WO2017119098A1 (ja) * | 2016-01-07 | 2017-07-13 | 株式会社日立製作所 | 計算機システム及び計算機の制御方法 |
US11126564B2 (en) | 2016-01-12 | 2021-09-21 | Hewlett Packard Enterprise Development Lp | Partially coherent memory transfer |
US9934173B1 (en) * | 2016-02-24 | 2018-04-03 | Xilinx, Inc. | Pseudo cut-through architecture between non-volatile memory storage and remote hosts over a fabric |
US10613991B2 (en) | 2016-08-01 | 2020-04-07 | Hewlett Packard Enterprise Development Lp | Transparent routers to provide services |
TWI645290B (zh) | 2016-10-11 | 2018-12-21 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料寫入方法 |
US10289553B2 (en) | 2016-10-27 | 2019-05-14 | International Business Machines Corporation | Accelerator sharing |
US10296338B2 (en) * | 2016-12-09 | 2019-05-21 | Intel Corporation | System, apparatus and method for low overhead control transfer to alternate address space in a processor |
CN108572864A (zh) * | 2017-03-13 | 2018-09-25 | 龙芯中科技术有限公司 | 触发负载均衡调度的方法、装置及服务器 |
US11113440B1 (en) * | 2017-03-17 | 2021-09-07 | Synopsys, Inc. | Memory migration in hybrid emulation |
US20180285262A1 (en) * | 2017-03-31 | 2018-10-04 | Intel Corporation | Techniques for shared virtual memory access protection |
US10282811B2 (en) * | 2017-04-07 | 2019-05-07 | Intel Corporation | Apparatus and method for managing data bias in a graphics processing architecture |
US11194618B2 (en) * | 2017-06-13 | 2021-12-07 | Nec Corporation | Accelerator control device, accelerator control method, and recording medium with accelerator control program stored therein |
US10489304B2 (en) * | 2017-07-14 | 2019-11-26 | Arm Limited | Memory address translation |
US11030117B2 (en) * | 2017-07-14 | 2021-06-08 | Advanced Micro Devices, Inc. | Protecting host memory from access by untrusted accelerators |
US11263143B2 (en) * | 2017-09-29 | 2022-03-01 | Intel Corporation | Coherent accelerator fabric controller |
US11204867B2 (en) * | 2017-09-29 | 2021-12-21 | Intel Corporation | PCIe controller with extensions to provide coherent memory mapping between accelerator memory and host memory |
US11861025B1 (en) | 2018-01-08 | 2024-01-02 | Rankin Labs, Llc | System and method for receiving and processing a signal within a TCP/IP protocol stack |
US11231927B2 (en) * | 2018-03-08 | 2022-01-25 | Intel Corporation | System, apparatus and method for providing a fabric for an accelerator |
JP7083717B2 (ja) * | 2018-07-23 | 2022-06-13 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US11689543B2 (en) | 2018-08-10 | 2023-06-27 | Rankin Labs, Llc | System and method for detecting transmission of a covert payload of data |
US11030012B2 (en) * | 2018-09-28 | 2021-06-08 | Intel Corporation | Methods and apparatus for allocating a workload to an accelerator using machine learning |
KR102655094B1 (ko) * | 2018-11-16 | 2024-04-08 | 삼성전자주식회사 | 메모리를 공유하는 이종의 프로세서들을 포함하는 스토리지 장치 및 그것의 동작 방법 |
US11200168B2 (en) | 2018-12-10 | 2021-12-14 | International Business Machines Corporation | Caching data from remote memories |
US10909045B2 (en) * | 2018-12-20 | 2021-02-02 | Arm Limited | System, method and apparatus for fine granularity access protection |
WO2020154223A1 (en) | 2019-01-21 | 2020-07-30 | John Rankin | Systems and methods for processing network traffic using dynamic memory |
US11301396B2 (en) * | 2019-03-29 | 2022-04-12 | Intel Corporation | Technologies for accelerated data access and physical data security for edge devices |
US10852949B2 (en) | 2019-04-15 | 2020-12-01 | Micron Technology, Inc. | Predictive data pre-fetching in a data storage device |
US11487674B2 (en) * | 2019-04-17 | 2022-11-01 | Rankin Labs, Llc | Virtual memory pool within a network which is accessible from multiple platforms |
US11100007B2 (en) | 2019-05-28 | 2021-08-24 | Micron Technology, Inc. | Memory management unit (MMU) for accessing borrowed memory |
US11438414B2 (en) | 2019-05-28 | 2022-09-06 | Micron Technology, Inc. | Inter operating system memory services over communication network connections |
US11061819B2 (en) | 2019-05-28 | 2021-07-13 | Micron Technology, Inc. | Distributed computing based on memory as a service |
US11334387B2 (en) | 2019-05-28 | 2022-05-17 | Micron Technology, Inc. | Throttle memory as a service based on connectivity bandwidth |
US11372773B2 (en) | 2019-05-28 | 2022-06-28 | Rankin Labs, Llc | Supporting a virtual memory area at a remote computing machine |
US11256624B2 (en) * | 2019-05-28 | 2022-02-22 | Micron Technology, Inc. | Intelligent content migration with borrowed memory |
US11169930B2 (en) * | 2019-05-28 | 2021-11-09 | Micron Technology, Inc. | Fine grain data migration to or from borrowed memory |
US20190317802A1 (en) * | 2019-06-21 | 2019-10-17 | Intel Corporation | Architecture for offload of linked work assignments |
US11526290B2 (en) * | 2019-06-29 | 2022-12-13 | Intel Corporation | System and method to track physical address accesses by a CPU or device |
US11226902B2 (en) * | 2019-09-30 | 2022-01-18 | International Business Machines Corporation | Translation load instruction with access protection |
US11922297B2 (en) * | 2020-04-01 | 2024-03-05 | Vmware, Inc. | Edge AI accelerator service |
US11714755B2 (en) | 2020-07-31 | 2023-08-01 | Hewlett Packard Enterprise Development Lp | System and method for scalable hardware-coherent memory nodes |
US11573898B2 (en) | 2020-08-17 | 2023-02-07 | Hewlett Packard Enterprise Development Lp | System and method for facilitating hybrid hardware-managed and software-managed cache coherency for distributed computing |
TWI766387B (zh) * | 2020-10-07 | 2022-06-01 | 智捷科技股份有限公司 | 一種具延遲感知負載平衡的反向代理方法和存儲裝置 |
US20210075633A1 (en) * | 2020-11-18 | 2021-03-11 | Intel Corporation | Packet multi-cast for memory pool replication |
JP7164267B2 (ja) * | 2020-12-07 | 2022-11-01 | インテル・コーポレーション | ヘテロジニアスコンピューティングのためのシステム、方法及び装置 |
EP4260195A1 (en) | 2021-01-06 | 2023-10-18 | Enfabrica Corporation | Server fabric adapter for i/o scaling of heterogeneous and accelerated compute systems |
CN113014631A (zh) * | 2021-02-19 | 2021-06-22 | 浙江曲速科技有限公司 | 基于Hlink的设备缓存推送系统及方法 |
KR20220124551A (ko) * | 2021-03-03 | 2022-09-14 | 삼성전자주식회사 | 이종 하드웨어 타입의 가속기들을 포함한 전자 장치 |
US20220292026A1 (en) * | 2021-03-12 | 2022-09-15 | Micron Technology, Inc. | Virtual addresses for a memory system |
US20220292027A1 (en) * | 2021-03-12 | 2022-09-15 | Micron Technology, Inc. | Shared virtual address spaces |
CN112948149A (zh) * | 2021-03-29 | 2021-06-11 | 江苏为是科技有限公司 | 一种远端内存共享方法、装置、电子设备及存储介质 |
WO2022261325A2 (en) * | 2021-06-09 | 2022-12-15 | Enfabrica Corporation | Transparent remote memory access over network protocol |
US12050798B2 (en) * | 2021-07-29 | 2024-07-30 | International Business Machines Corporation | Memory migration within a multi-host data processing environment |
US12112200B2 (en) | 2021-09-13 | 2024-10-08 | International Business Machines Corporation | Pipeline parallel computing using extended memory |
US11934279B2 (en) * | 2021-10-27 | 2024-03-19 | Dell Products L.P. | Sequential file restore performance using filesystem redirection |
CN118467410A (zh) * | 2023-02-07 | 2024-08-09 | 华为技术有限公司 | 一种共享虚拟内存管理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5361340A (en) * | 1990-01-05 | 1994-11-01 | Sun Microsystems, Inc. | Apparatus for maintaining consistency in a multiprocessor computer system using virtual caching |
US20040044872A1 (en) * | 2002-09-04 | 2004-03-04 | Cray Inc. | Remote translation mechanism for a multi-node system |
CN101187902A (zh) * | 2006-09-22 | 2008-05-28 | 英特尔公司 | 在虚拟机环境中的客户机之间共享信息 |
Family Cites Families (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4004A (en) * | 1845-04-16 | Wooden bbidge | ||
IT1228728B (it) | 1989-03-15 | 1991-07-03 | Bull Hn Information Syst | Sistema multiprocessore con replicazione di dati globali e due livelli di unita' di traduzione indirizzi. |
JP3369580B2 (ja) | 1990-03-12 | 2003-01-20 | ヒューレット・パッカード・カンパニー | 直接メモリアクセスを行うためのインターフェース装置及び方法 |
US5450542A (en) * | 1993-11-30 | 1995-09-12 | Vlsi Technology, Inc. | Bus interface with graphics and system paths for an integrated memory system |
JP3889044B2 (ja) * | 1995-05-05 | 2007-03-07 | シリコン、グラフィクス、インコーポレイテッド | 不均一メモリ・アクセス(numa)システムにおけるページ移動 |
US6408386B1 (en) | 1995-06-07 | 2002-06-18 | Intel Corporation | Method and apparatus for providing event handling functionality in a computer system |
US5897664A (en) | 1996-07-01 | 1999-04-27 | Sun Microsystems, Inc. | Multiprocessor system having mapping table in each node to map global physical addresses to local physical addresses of page copies |
US5953741A (en) | 1996-11-27 | 1999-09-14 | Vlsi Technology, Inc. | Stack cache for stack-based processor and method thereof |
US5860116A (en) * | 1996-12-11 | 1999-01-12 | Ncr Corporation | Memory page location control for multiple memory-multiple processor system |
US6249853B1 (en) | 1997-06-25 | 2001-06-19 | Micron Electronics, Inc. | GART and PTES defined by configuration registers |
US5914730A (en) * | 1997-09-09 | 1999-06-22 | Compaq Computer Corp. | System and method for invalidating and updating individual GART table entries for accelerated graphics port transaction requests |
US6252612B1 (en) | 1997-12-30 | 2001-06-26 | Micron Electronics, Inc. | Accelerated graphics port for multiple memory controller computer system |
JP4022369B2 (ja) * | 1997-12-30 | 2007-12-19 | マイクロン テクノロジー,インコーポレイテッド | マルチメモリコントローラコンピュータシステム用加速グラフィックスポート |
US7007126B2 (en) * | 1998-02-13 | 2006-02-28 | Intel Corporation | Accessing a primary bus messaging unit from a secondary bus through a PCI bridge |
US6317706B1 (en) | 1998-03-31 | 2001-11-13 | Sony Corporation | Simulation development tool for an embedded system |
US6362826B1 (en) * | 1999-01-15 | 2002-03-26 | Intel Corporation | Method and apparatus for implementing dynamic display memory |
US7065633B1 (en) | 1999-01-28 | 2006-06-20 | Ati International Srl | System for delivering exception raised in first architecture to operating system coded in second architecture in dual architecture CPU |
US6412057B1 (en) | 1999-02-08 | 2002-06-25 | Kabushiki Kaisha Toshiba | Microprocessor with virtual-to-physical address translation using flags |
US6766424B1 (en) * | 1999-02-09 | 2004-07-20 | Hewlett-Packard Development Company, L.P. | Computer architecture with dynamic sub-page placement |
US6282601B1 (en) | 1999-03-31 | 2001-08-28 | International Business Machines Corporation | Multiprocessor data processing system and method of interrupt handling that facilitate identification of a processor requesting a system management interrupt |
US6651163B1 (en) | 2000-03-08 | 2003-11-18 | Advanced Micro Devices, Inc. | Exception handling with reduced overhead in a multithreaded multiprocessing system |
US6604187B1 (en) | 2000-06-19 | 2003-08-05 | Advanced Micro Devices, Inc. | Providing global translations with address space numbers |
US6925547B2 (en) | 2000-12-14 | 2005-08-02 | Silicon Graphics, Inc. | Remote address translation in a multiprocessor system |
US6658538B2 (en) * | 2001-06-21 | 2003-12-02 | International Business Machines Corporation | Non-uniform memory access (NUMA) data processing system having a page table including node-specific data storage and coherency control |
US6907519B2 (en) | 2001-11-29 | 2005-06-14 | Hewlett-Packard Development Company, L.P. | Systems and methods for integrating emulated and native code |
JP4128467B2 (ja) * | 2002-02-25 | 2008-07-30 | 株式会社リコー | 画像形成装置及びメモリマップ方法 |
JP4263919B2 (ja) * | 2002-02-25 | 2009-05-13 | 株式会社リコー | 画像形成装置及びメモリ管理方法 |
US6891543B2 (en) * | 2002-05-08 | 2005-05-10 | Intel Corporation | Method and system for optimally sharing memory between a host processor and graphics processor |
US7047320B2 (en) * | 2003-01-09 | 2006-05-16 | International Business Machines Corporation | Data processing system providing hardware acceleration of input/output (I/O) communication |
US8607235B2 (en) | 2004-12-30 | 2013-12-10 | Intel Corporation | Mechanism to schedule threads on OS-sequestered sequencers without operating system intervention |
US8719819B2 (en) | 2005-06-30 | 2014-05-06 | Intel Corporation | Mechanism for instruction set based thread execution on a plurality of instruction sequencers |
US7516449B2 (en) | 2005-01-04 | 2009-04-07 | International Business Machines Corporation | Run-time type conversion |
US7743233B2 (en) | 2005-04-05 | 2010-06-22 | Intel Corporation | Sequencer address management |
US7831780B2 (en) * | 2005-06-24 | 2010-11-09 | Nvidia Corporation | Operating system supplemental disk caching system and method |
US20070005927A1 (en) | 2005-06-30 | 2007-01-04 | Khosravi Hormuzd M | Systems and methods for remote triggering of page faults |
US7793067B2 (en) * | 2005-08-12 | 2010-09-07 | Globalfoundries Inc. | Translation data prefetch in an IOMMU |
US8914618B2 (en) * | 2005-12-29 | 2014-12-16 | Intel Corporation | Instruction set architecture-based inter-sequencer communications with a heterogeneous resource |
US7814279B2 (en) * | 2006-03-23 | 2010-10-12 | International Business Machines Corporation | Low-cost cache coherency for accelerators |
JP2007304747A (ja) * | 2006-05-10 | 2007-11-22 | Nec Corp | 計算機システム及びメモリアクセス方法 |
US7487341B2 (en) | 2006-06-29 | 2009-02-03 | Intel Corporation | Handling address translations and exceptions of a heterogeneous resource of a processor using another processor resource |
US7506084B2 (en) * | 2006-10-17 | 2009-03-17 | International Business Machines Corporation | Method for communicating with an I/O adapter using cached address translations |
JP4304676B2 (ja) * | 2006-10-31 | 2009-07-29 | 日本電気株式会社 | データ転送装置、データ転送方法、及びコンピュータ装置 |
US8205064B2 (en) * | 2007-05-11 | 2012-06-19 | Advanced Micro Devices, Inc. | Latency hiding for a memory management unit page table lookup |
US8521919B2 (en) * | 2009-06-30 | 2013-08-27 | International Business Machines Corporation | Direct memory access in a computing environment |
-
2009
- 2009-09-18 US US12/562,477 patent/US8719547B2/en not_active Expired - Fee Related
-
2010
- 2010-07-27 TW TW99124707A patent/TWI470435B/zh not_active IP Right Cessation
- 2010-08-27 DE DE102010035603A patent/DE102010035603A1/de not_active Ceased
- 2010-09-14 JP JP2010205550A patent/JP2011065650A/ja active Pending
- 2010-09-16 BR BRPI1003466-8A patent/BRPI1003466A2/pt not_active IP Right Cessation
- 2010-09-16 CN CN201410350006.1A patent/CN104123242B/zh not_active Expired - Fee Related
- 2010-09-16 CN CN201010293493.4A patent/CN102023932B/zh not_active Expired - Fee Related
-
2013
- 2013-09-20 JP JP2013195581A patent/JP2013254524A/ja active Pending
-
2014
- 2014-03-21 US US14/221,741 patent/US9003164B2/en not_active Expired - Fee Related
-
2015
- 2015-03-04 JP JP2015042361A patent/JP5911985B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5361340A (en) * | 1990-01-05 | 1994-11-01 | Sun Microsystems, Inc. | Apparatus for maintaining consistency in a multiprocessor computer system using virtual caching |
US20040044872A1 (en) * | 2002-09-04 | 2004-03-04 | Cray Inc. | Remote translation mechanism for a multi-node system |
CN101187902A (zh) * | 2006-09-22 | 2008-05-28 | 英特尔公司 | 在虚拟机环境中的客户机之间共享信息 |
Cited By (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103827839A (zh) * | 2011-07-26 | 2014-05-28 | 英特尔公司 | 用于在支持共享虚拟存储器的异构计算系统中的tlb关闭的方法和装置 |
CN106776379A (zh) * | 2011-07-26 | 2017-05-31 | 英特尔公司 | 用于在支持共享虚拟存储器的异构计算系统中的tlb关闭的方法和装置 |
CN103827839B (zh) * | 2011-07-26 | 2016-12-21 | 英特尔公司 | 用于在支持共享虚拟存储器的异构计算系统中的tlb关闭的方法和装置 |
US9916257B2 (en) | 2011-07-26 | 2018-03-13 | Intel Corporation | Method and apparatus for TLB shoot-down in a heterogeneous computing system supporting shared virtual memory |
CN103198022B (zh) * | 2011-12-20 | 2016-08-03 | 富士通株式会社 | 信息处理设备和存储器访问方法 |
CN103198022A (zh) * | 2011-12-20 | 2013-07-10 | 富士通株式会社 | 信息处理设备和存储器访问方法 |
CN104204990B (zh) * | 2012-03-30 | 2018-04-10 | 英特尔公司 | 在使用共享虚拟存储器的处理器中加速操作的装置和方法 |
CN106708753B (zh) * | 2012-03-30 | 2021-04-02 | 英特尔公司 | 在使用共享虚拟存储器的处理器中加速操作的装置和方法 |
US9971688B2 (en) | 2012-03-30 | 2018-05-15 | Intel Corporation | Apparatus and method for accelerating operations in a processor which uses shared virtual memory |
CN106708753A (zh) * | 2012-03-30 | 2017-05-24 | 英特尔公司 | 在使用共享虚拟存储器的处理器中加速操作的装置和方法 |
US10467012B2 (en) | 2012-03-30 | 2019-11-05 | Intel Corporation | Apparatus and method for accelerating operations in a processor which uses shared virtual memory |
CN104204990A (zh) * | 2012-03-30 | 2014-12-10 | 英特尔公司 | 在使用共享虚拟存储器的处理器中加速操作的装置和方法 |
US10078519B2 (en) | 2012-03-30 | 2018-09-18 | Intel Corporation | Apparatus and method for accelerating operations in a processor which uses shared virtual memory |
US9965385B2 (en) | 2013-03-13 | 2018-05-08 | Empire Technology Development Llc | Memory allocation accelerator |
CN105027091A (zh) * | 2013-03-13 | 2015-11-04 | 英派尔科技开发有限公司 | 内存分配加速器 |
CN105027091B (zh) * | 2013-03-13 | 2017-12-19 | 英派尔科技开发有限公司 | 内存分配加速器 |
WO2016065610A1 (zh) * | 2014-10-31 | 2016-05-06 | 华为技术有限公司 | 访问文件的方法、分布式存储系统和存储节点 |
CN105765542B (zh) * | 2014-10-31 | 2019-11-15 | 华为技术有限公司 | 访问文件的方法、分布式存储系统和存储节点 |
CN105765542A (zh) * | 2014-10-31 | 2016-07-13 | 华为技术有限公司 | 访问文件的方法、分布式存储系统和存储节点 |
CN105718211B (zh) * | 2014-12-19 | 2018-10-02 | 富士施乐株式会社 | 信息处理设备和信息处理方法 |
CN105718211A (zh) * | 2014-12-19 | 2016-06-29 | 富士施乐株式会社 | 信息处理设备和信息处理方法 |
CN107430628B (zh) * | 2015-04-03 | 2021-06-01 | 华为技术有限公司 | 具有直接数据传输机制的加速框架 |
CN107430628A (zh) * | 2015-04-03 | 2017-12-01 | 华为技术有限公司 | 具有直接数据传输机制的加速框架 |
US11010198B2 (en) | 2015-04-17 | 2021-05-18 | Microsoft Technology Licensing, Llc | Data processing system having a hardware acceleration plane and a software plane |
CN107533538A (zh) * | 2015-04-17 | 2018-01-02 | 微软技术许可有限责任公司 | 在使用加速部件的系统中处理租户要求 |
US11099906B2 (en) | 2015-04-17 | 2021-08-24 | Microsoft Technology Licensing, Llc | Handling tenant requests in a system that uses hardware acceleration components |
US10819657B2 (en) | 2015-06-26 | 2020-10-27 | Microsoft Technology Licensing, Llc | Allocating acceleration component functionality for supporting services |
US10977104B2 (en) | 2015-06-26 | 2021-04-13 | Microsoft Technology Licensing, Llc | Partially reconfiguring acceleration components |
US20190155669A1 (en) | 2015-06-26 | 2019-05-23 | Microsoft Technology Licensing, Llc | Partially reconfiguring acceleration components |
CN105938461B (zh) * | 2015-07-31 | 2019-02-19 | 杭州迪普科技股份有限公司 | 一种dma数据传输方法、装置以及网络设备 |
CN105938461A (zh) * | 2015-07-31 | 2016-09-14 | 杭州迪普科技有限公司 | 一种dma数据传输方法、装置以及网络设备 |
CN108027726B (zh) * | 2015-09-26 | 2022-07-15 | 英特尔公司 | 用于在远程处理器上实施原子动作的硬件机制 |
CN108027726A (zh) * | 2015-09-26 | 2018-05-11 | 英特尔公司 | 用于在远程处理器上实施原子动作的硬件机制 |
CN107632946A (zh) * | 2016-07-18 | 2018-01-26 | 三星电子株式会社 | 操作存储设备和包括其的数据处理系统的方法 |
CN109716306A (zh) * | 2016-09-19 | 2019-05-03 | 高通股份有限公司 | 动态输入/输出相干性 |
CN109032963A (zh) * | 2017-06-12 | 2018-12-18 | Arm有限公司 | 访问控制 |
CN109032963B (zh) * | 2017-06-12 | 2023-09-05 | Arm有限公司 | 访问控制 |
CN109729110A (zh) * | 2017-10-27 | 2019-05-07 | 伊姆西Ip控股有限责任公司 | 管理专用处理资源的方法、设备以及计算机可读介质 |
CN109729110B (zh) * | 2017-10-27 | 2022-02-11 | 伊姆西Ip控股有限责任公司 | 管理专用处理资源的方法、设备以及计算机可读介质 |
CN111684424A (zh) * | 2018-02-05 | 2020-09-18 | 美光科技公司 | 多层存储器系统中的远程直接存储器存取 |
CN109308270A (zh) * | 2018-09-04 | 2019-02-05 | 天津飞腾信息技术有限公司 | 一种加速虚实地址转换的方法及装置 |
CN111736946A (zh) * | 2019-03-25 | 2020-10-02 | 阿里巴巴集团控股有限公司 | 用于监视虚拟机i/o流量的系统和方法 |
CN111736946B (zh) * | 2019-03-25 | 2024-02-27 | 阿里巴巴集团控股有限公司 | 用于监视虚拟机i/o流量的系统和方法 |
CN111290979A (zh) * | 2020-03-23 | 2020-06-16 | 优刻得科技股份有限公司 | 数据传输方法、装置及系统 |
WO2024073864A1 (en) * | 2022-10-02 | 2024-04-11 | Intel Corporation | Distributed address translation services |
Also Published As
Publication number | Publication date |
---|---|
JP2011065650A (ja) | 2011-03-31 |
CN102023932B (zh) | 2014-08-27 |
TWI470435B (zh) | 2015-01-21 |
CN104123242A (zh) | 2014-10-29 |
TW201120643A (en) | 2011-06-16 |
JP2015135696A (ja) | 2015-07-27 |
JP5911985B2 (ja) | 2016-04-27 |
JP2013254524A (ja) | 2013-12-19 |
US20140208042A1 (en) | 2014-07-24 |
US20110072234A1 (en) | 2011-03-24 |
US9003164B2 (en) | 2015-04-07 |
US8719547B2 (en) | 2014-05-06 |
BRPI1003466A2 (pt) | 2015-08-18 |
DE102010035603A1 (de) | 2011-04-07 |
CN104123242B (zh) | 2017-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102023932B (zh) | 为本地与远程物理存储器之间的共享虚拟存储器提供硬件支持 | |
US8866831B2 (en) | Shared virtual memory between a host and discrete graphics device in a computing system | |
CN101203838B (zh) | 直接存储器存取转换的地址窗口支持 | |
US8412907B1 (en) | System, method and computer program product for application-level cache-mapping awareness and reallocation | |
US6907494B2 (en) | Method and system of managing virtualized physical memory in a memory controller and processor system | |
TWI614669B (zh) | 遷移異構處理器之間不同大小的分頁 | |
US6920521B2 (en) | Method and system of managing virtualized physical memory in a data processing system | |
CN104583959B (zh) | 处理访问请求的处理器和系统以及执行访问请求的方法 | |
US20140281299A1 (en) | Opportunistic migration of memory pages in a unified virtual memory system | |
US6904490B2 (en) | Method and system of managing virtualized physical memory in a multi-processor system | |
CN104603761A (zh) | 对于页漏失处理程序的并行控制 | |
US7721047B2 (en) | System, method and computer program product for application-level cache-mapping awareness and reallocation requests | |
CN117377943A (zh) | 存算一体化并行处理系统和方法 | |
US20240086195A1 (en) | Monitor exclusive instruction | |
CN104049904A (zh) | 用于管理统一虚拟存储器的页面状态目录 | |
CN104049951A (zh) | 在解决存储器访问故障的同时重播存储器事务 | |
CN104049905A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140827 Termination date: 20180916 |
|
CF01 | Termination of patent right due to non-payment of annual fee |