CN101868786A - 虚拟化环境中的地址转换缓存和i/o高速缓存性能改进 - Google Patents
虚拟化环境中的地址转换缓存和i/o高速缓存性能改进 Download PDFInfo
- Publication number
- CN101868786A CN101868786A CN200880110445.8A CN200880110445A CN101868786A CN 101868786 A CN101868786 A CN 101868786A CN 200880110445 A CN200880110445 A CN 200880110445A CN 101868786 A CN101868786 A CN 101868786A
- Authority
- CN
- China
- Prior art keywords
- speed cache
- memory access
- access request
- cache
- prompting
- 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
- 238000013519 translation Methods 0.000 title claims abstract description 12
- 238000000034 method Methods 0.000 claims abstract description 16
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 230000002093 peripheral effect Effects 0.000 claims description 4
- 230000004044 response Effects 0.000 claims 3
- 238000003860 storage Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000005055 memory storage Effects 0.000 description 3
- 229910052710 silicon Inorganic materials 0.000 description 3
- 239000010703 silicon Substances 0.000 description 3
- 238000012545 processing Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- 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
-
- 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
- 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/1009—Address translation using page tables, e.g. page table structures
-
- 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/15—Use in a specific computing environment
- G06F2212/152—Virtualized environment, e.g. logically partitioned system
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)
- Executing Machine-Instructions (AREA)
Abstract
描述涉及改进虚拟化环境中的地址转换缓存和/或输入/输出(I/O)高速缓存性能的方法和设备。在一个实施例中,由端点装置提供的提示可用于更新存储在I/O高速缓存中的信息。在一个实施例中,这种信息可用于实现更有效的替换策略。还公开其它实施例。
Description
技术领域
本公开一般涉及电子领域。更具体地说,本发明的实施例涉及改进虚拟化环境中的地址转换缓存和/或输入/输出(I/O)高速缓存性能。
背景技术
I/O虚拟化是正在开发用以确保I/O装置在虚拟化环境中正确运行的技术。一般地,虚拟化环境可以是同时有多于一个操作系统(OS)活动的环境。I/O虚拟化的一些实现可利用硬件结构来改进性能。然而,这种实现可能需要比较高的门数来实现,这实现起来又将更昂贵和/或复杂。
附图说明
参考附图提供详细描述。在图中,附图标记的最左边的一(或多)位数标识该附图标记第一次出现的图。不同图中使用相同的附图标记指示相似或相同的项目。
图1-3示出可用于实现本文论述的各种实施例的计算系统的实施例的框图。
图4示出根据一个实施例的方法的流程图。
具体实施方式
在以下描述中,阐述了大量具体细节,以便全面理解各种实施例。然而,一些实施例可在没有这些具体细节的情况下实施。在其它情况下,未详细描述众所周知的方法、过程、部件和电路,以免使具体实施例晦涩难懂。本发明的实施例的各种方面可以使用各种方式(例如集成半导体电路(“硬件”)、组织成一个或多个程序的计算机可读指令(“软件”)、或硬件和软件的某种组合)来实现。为了本公开的目的,提到“逻辑”时应表示硬件、软件或它们的某种组合。
本文论述的一些实施例可以改进虚拟化环境中的地址转换缓存(如直接I/O虚拟化(VTd)地址转换)和/或I/O高速缓存性能。更具体地说,一些虚拟化服务可以在用于将访客物理地址(GPA)转换成主机物理地址(HPA)的硬件结构中实现。因此,这种结构可提供例如I/O后备缓冲器(IOTLB)形式的缓存支持,以缓存GPA到HPA的转换。在一些实施例中,这些缓存结构可以为以相同地址转换为目标的请求提供较低等待时间。而且,其中一些技术可在各种类型的计算环境(例如,参考图1-4所描述的环境)中使用。
更具体地说,图1示出根据本发明一个实施例的计算系统100的框图。系统100可包括一个或多个代理102-1至102-M(本文统称为“多个代理102”或更一般地称为“代理102”)。在一个实施例中,代理102可以是计算系统(例如,参考图2-4论述的计算系统)的部件。
如图1所示,代理102可经由网络架构104通信。在一个实施例中,网络架构104可包括允许各种代理(如计算装置)传递数据的计算机网络。在一个实施例中,网络架构104可包括经由串行(例如点对点)链路和/或共享通信网络通信的一个或多个互连(或互连网络)。例如,一些实施例可便于在允许与全缓冲双列直插式存储器模块(FBD)通信的链路上进行部件调试或验证,例如其中FBD链路是用于将存储器模块耦合到主机控制器装置(例如,处理器或存储器集线器)的串行链路。可从FBD信道主机传送调试信息,以使得可以沿信道通过信道业务跟踪捕获工具(例如,一个或多个逻辑分析仪)查看调试信息。
在一个实施例中,系统100可以支持分层协议方案,其可包括物理层、链路层、路由层、传输层和/或协议层。架构104还可便于对于点对点或共享网络将数据(例如以分组形式)从一个协议(例如缓存处理器或缓存感知的存储器控制器)传送到另一个协议。再者,在一些实施例中,网络架构104还可提供遵守一个或多个高速缓存一致性协议的通信。
而且,如图1中的箭头方向所示,代理102可经由网络架构104传送和/或接收数据。由此,一些代理可利用单向链路,而其它代理可利用双向链路进行通信。例如,一个或多个代理(如代理102-M)可传送数据(例如,经由单向链路106),其它代理(如代理102-2)可接收数据(例如,经由单向链路108),而某个(或某些)代理(如代理102-1)可传送和接收数据(例如,经由双向链路110)。
图2示出根据一个实施例的计算系统200的各部分的框图。在一个实施例中,系统200的各个部件可在参考图1论述的代理102-1和/或102-M之一内实现。有关计算系统200的一些操作的更多细节将参考图4进行论述。
系统200可包括一个或多个处理器202-1至202-N(本文统称为“多个处理器202”或更一般地称为“处理器202”)。每个处理器202-1至202-N可包括各种部件,例如专用或共享高速缓存、执行单元、一个或多个核等。此外,每个处理器202都可访问存储器204(例如存储器204-1至204-N)。再者,系统200可包括可由系统200的各种部件共享的可选系统存储器206,各种部件包括例如一个或多个处理器202、非核部分或芯片组(CS)208的部件、或耦合到非核部分208的部件等。存储器204和/或206中的一个或多个存储器可存储一个或多个操作系统。由此,在一些实施例中,系统200能够运行多个操作系统(例如同时)。
如图2所示,非核部分(uncore)208可包括各种部件,例如根联合体(RC)高速缓存210(例如,其可在诸如系统200的计算系统的各种部件之间共享)。在一些实施例中,RC高速缓存210可存在于芯片组或非核部分(例如CS/非核部分208)的存储器控制集线器(MCH)和/或图形MCH(GMCH)部分中。RC高速缓存210可经由数据路径212(其可包括可选核互连214,以便例如便于处理器202的一个或多个核与系统200的其它部件之间的通信)与其它部件通信。系统200还可包括预取逻辑216,以便例如将数据(包括指令或微操作)从各种位置(例如,一个或多个存储器204、系统存储器206、包括例如易失性或非易失性存储器装置在内的其它存储装置等)预取到IOTLB 220中(例如,经由虚拟化或转换逻辑222-1至222-P(本文统称为“多个逻辑222”或更一般地称为“逻辑222”))。
如图2所示,在至少一个实施例中,数据路径212可耦合到一个或多个I/O装置。可以利用任何类型的I/O装置。为了说明的目的,在图2所示的实施例中,I/O装置可包括一个或多个装置224-1至224-P(本文统称为“端点装置224”或更一般地称为“端点224”)。在一个实施例中,端点装置224可以是外围部件互连(PCI)装置。
例如,端点装置224可根据可从美国俄勒冈州波特兰市的PCI特别兴趣小组得到的PCI局部总线规范3.0版(March 9,3004)(下文称为“PCI总线”)与CS/非核部分208通信。或者,可利用可从上述美国俄勒冈州波特兰市的PCI特别兴趣小组得到的PCI-X规范3.0a版(April 33,3003)(下文称为“PCI-X总线”)和/或PCI Express(PCIe)规范(PCIe规范2.0版,2006年10月)。另外,在本发明的各种实施例中,耦合到CS/非核部分208的其它外围部件可包括集成驱动电子装置(IDE)或小型计算机系统接口(SCSI)硬盘驱动器、通用串行总线(USB)装置、键盘、鼠标、并行端口、串行端口、软盘驱动器、数字输出支持(例如,数字视频接口(DVI))等。
如图2所示,端点装置224可通过根端口226-1至226-P(本文统称为“多个端口226”或更一般地称为“端口226”)与系统200的其它部件(如逻辑222)通信。在一个实施例中,逻辑222可执行虚拟化环境的地址转换操作,例如通过例如参考IOTLB 220将虚拟地址转换成物理地址。物理地址可对应于具有系统存储器206的位置(例如条目)(locationswith a system memory 206)。另外,逻辑222还可执行其它操作,例如参考图3和4论述的那些操作,它们可涉及耦合到系统200和/或300的存储器装置(如系统存储器206)中的条目的GPA和HPA的转换。再者,逻辑222可以是根据PCIe规范的根联合体。
此外,处理器202可以是任何类型的处理器,例如通用处理器、网络处理器(其可处理通过计算机网络250传递的数据)等(包括精简指令集计算机(RISC)处理器或复杂指令集计算机(CISC))。此外,处理器202可具有单核或多核设计。具有多核设计的处理器202可在相同集成电路(IC)管芯上集成不同类型的处理器核。再者,具有多核设计的处理器202可实现为对称或不对称多处理器。再者,在一个实施例中,如图2所示,至少其中一个或多个端点装置224可耦合到网络250。
另外,处理器202可包括一个或多个高速缓存(未示出),在各种实施例中,其可以是专用和/或共享的。一般地,高速缓存存储与别处存储的或早前计算的原始数据对应的数据。为了减少存储器访问等待时间,一旦将数据存储在高速缓存中,就可通过访问所缓存的副本而不是重取或重计算原始数据来进行将来使用。本文论述的高速缓存(包括例如RC高速缓存210、IOTLB 220、它们的组合等)可以是任何类型的高速缓存,例如1级(L1)高速缓存、2级(L2)高速缓存、3级(L3)、中级高速缓存、末级高速缓存(LLC)、它们的组合等,以存储由系统200的一个或多个部件利用的电子数据(例如包括指令)。
在一个实施例中,系统200和/或300还可包括其它装置,例如以下装置中的一种或多种:显示装置(例如,耦合到CS/非核部分208以显示图像)、音频装置(例如,耦合到CS/非核部分208以处理音频信号)等。在一些实施例中,这种装置可实现为端点装置224(其可例如经由根端口226与CS/非核部分208通信)。
图3示出根据一个实施例的计算系统300的各部分的框图。在一个实施例中,系统300的各种部件可在参考图1论述的代理102-1和/或102-M之一内实现。有关计算系统300的一些操作的更多细节将参考图4进行论述。
如图3所示,系统300可包括一个或多个处理器202、存储器204、系统存储器206、RC高速缓存210、数据路径212、可选核互连214、预取逻辑216、IOTLB 220、逻辑222、端点装置224和根端口226。再者,在一个实施例中,如图所示,RC高速缓存210和IOTLB 220可组合成单个高速缓存。
图4示出根据一个实施例用于更新存储在I/O高速缓存中的信息以改进虚拟化环境中的地址转换缓存和/或I/O高速缓存性能的方法400的流程图。在一个实施例中,可以利用参考图1-3和5论述的各种部件来执行参考图4论述的其中一个或多个操作。
参考图1-4,在操作402,方法400从接收存储器访问请求开始。例如,在操作402,其中一个端点224可生成存储器访问请求(如读或写访问),并且对应的虚拟化逻辑222可通过其中一个端口226接收该请求。在操作404,可以确定与存储器访问请求对应的条目是否存在于高速缓存中。在一个实施例中,在操作404,虚拟化逻辑222可访问IOTLB 220、RC高速缓存210和/或它们的组合(例如,如图3所示)。如果对应的条目不存在,则可在操作406将数据取到高速缓存中(例如,通过虚拟化逻辑222和/或预取逻辑216)。
在一个实施例中,在操作402之前,可能已经通过逻辑216将对应的数据预取到高速缓存中。在一个实施例中,其中一个端点装置224发出预取请求,以预先取出并保持目标地址位置的一致副本。这些预取请求还将使得能够预热IOTLB 220、RC高速缓存210和/或它们的组合;将分配和缓存条目,直到装置发出请求为止。要求请求ACH设置将确定IOTLB 220、RC高速缓存210和/或它们的组合中的条目是需要保持还是需要作标记以便替换。
在操作408,可以确定(例如,通过虚拟化逻辑222)存储器访问请求是否包括提示(例如,存储器访问请求的一个或多个位)。如果不存在提示,则在操作410,可通过例如参考IOTLB 220、RC高速缓存210和/或它们的组合内的条目转换HPA和GPA地址和/或物理/虚拟地址来处理存储器访问请求。在一个实施例中,可基于I/O装置业务提示(其在本文中也可称为访问控制提示(ACH))来改进虚拟化环境性能中的地址转换缓存和/或I/O高速缓存性能。例如,I/O装置(例如,端点224之一)可在存储器请求中提供ACH(例如,通过PCIe),以指示该装置是否将再次访问相同地址。因此,操作412可以确定该提示是否指示将来访问相同地址。可将这个信息存储在与高速缓存行替换策略中可用的高速缓存条目(例如,IOTLB 220、RC高速缓存210和/或它们的组合内的条目)对应的一个或多个位中,例如其中不具有预期再用的位集合(或取决于实现清零)的缓存的转换将是替换的候选。在一个实施例中,逻辑222可以执行操作412。如果指示没有将来访问,则方法400在操作410重新开始。否则,在操作414,可以更新对应的条目信息(例如,可通过对应的逻辑222来更新IOTLB 220、RC高速缓存210和/或它们的组合中的对应条目的一个或多个位)。在操作414之后,方法400在操作410重新开始。
在一些实施例中,将IOTLB 220和RC高速缓存210结构合并成组合的IOTLB高速缓存和RC高速缓存结构(其在本文可称为I/O高速缓存)可提供改进的性能(例如,改进I/O事务的等待时间)和/或硅片空间的更有效利用(例如,减少总门数)。在一个实施例中,由处理器(例如,其中一个或多个处理器202)发出的监听将在RC高速缓存210(或组合的I/O高速缓存)中使用物理地址进行查找,I/O访问将基于GPA在RC高速缓存210(或组合的I/O高速缓存)中查找地址。
在一些实施例中,各种高速缓存替换策略可应用于RC高速缓存210、IOTLB 220和/或它们的组合。例如,一些替换策略可实现随机替换策略,而其它策略可实现最近最少使用(LRU)策略。
因此,在一些实施例中,可以减少地址转换等待时间和/或与服务于I/O请求相关联的等待时间。再者,将用于RC高速缓存210和IOTLB 220的存储(例如地址或数据)结构合并(例如,合并成单个I/O高速缓存)可得到改进的硅效率和更好的性能或硅面积(例如,通过门数的减少)。
在本发明的各种实施例中,本文参考例如图1-4论述的操作可实现为硬件(例如电路)、软件、固件、微代码或它们的组合,其可作为计算机程序产品提供,计算机程序产品包括例如其上存储了用于将计算机编程为执行本文论述的过程的指令(或软件程序)的机器可读或计算机可读介质。再者,术语“逻辑”作为示例可包括软件、硬件、或软件和硬件的组合。机器可读介质可包括诸如本文论述的那些存储装置。
例如,本文论述的存储装置可包括易失性和/或非易失性存储器(或存储设备)。非易失性存储器可包括如下一种或多种:只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电EPROM(EEPROM)、磁盘驱动器、软盘、光盘ROM(CD-ROM)、数字通用盘(DVD)、闪存、磁光盘或能够存储电子数据(例如包括指令)的其它类型的非易失性机器可读介质。易失性存储设备(或存储器)可包括诸如随机存取存储器(RAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)等装置。
此外,这种计算机可读介质可作为计算机程序产品下载,其中可通过以载波或其它传播介质实施的数据信号经由通信链路(例如,总线、调制解调器或网络连接)将程序从远程计算机(例如服务器)传送到请求计算机(例如客户机)。
说明书中提到“一个实施例”或“实施例”时表示,结合该实施例描述的特定特征、结构或特性可包含在至少一个实现中。说明书中各个地方出现的短语“在一个实施例中”可以或者可以不都指同一实施例。
再者,在说明书和权利要求书中,可以使用术语“耦合”和“连接”以及它们的派生词。在本发明的一些实施例中,“连接”可用于指示两个或更多元件彼此直接物理或电接触。“耦合”可以表示两个或更多元件直接物理或电接触。然而,“耦合”也可以表示两个或更多元件可彼此不直接接触,但仍可彼此合作或交互。
由此,虽然用结构特征和/或方法动作所特有的语言描述了本发明的实施例,但是要理解,所要求的主题可不限于所描述的特定特征或动作。而是,这些特定特征和动作只是作为实现所要求主题的样本形式而公开。
Claims (20)
1.一种设备,包括:
用于存储一个或多个条目的高速缓存,其中每个条目对应于访客物理地址(GPA)与主机物理地址(HPA)之间的输入/输出(I/O)存储器访问请求;以及
第一逻辑,用于从端点装置接收第一I/O存储器访问请求,并确定所述第一I/O存储器访问请求是否包括与地址关联的将来访问提示,
其中所述第一逻辑响应所述第一I/O存储器访问请求包括所述提示的确定而引起对于对应高速缓存条目的一个或多个位的更新。
2.如权利要求1所述的设备,其中所述端点装置用于生成所述存储器访问请求。
3.如权利要求1所述的设备,还包括预取逻辑,所述预取逻辑响应由所述端点装置发出的请求而将数据预取到所述高速缓存中。
4.如权利要求1所述的设备,其中所述端点装置包括外围部件互连(PCI)express装置。
5.如权利要求1所述的设备,其中所述将来访问提示用于指示将会对所述地址进行将来访问。
6.如权利要求1所述的设备,其中所述第一逻辑、一个或多个处理器核、或所述高速缓存中的一个或多个在相同集成电路管芯上。
7.如权利要求1所述的设备,其中所述高速缓存包括根联合体高速缓存、I/O转换后备缓冲器(IOTLB)或者它们的组合中的一种或多种。
8.如权利要求1所述的设备,其中所述高速缓存是共享或专用高速缓存。
9.如权利要求1所述的设备,其中所述高速缓存包括1级(L1)高速缓存、2级(L2)高速缓存、3级(L3)、中级高速缓存、末级高速缓存(LLC)或者它们的组合中的一种或多种。
10.如权利要求1所述的设备,还包括用于耦合所述第一逻辑和所述端点装置的根端口。
11.一种方法,包括:
从端点装置接收第一输入/输出(I/O)存储器访问请求;
将一个或多个条目存储在高速缓存中,其中每个条目对应于访客物理地址(GPA)与主机物理地址(HPA)之间的输入/输出(I/O)存储器访问请求;以及
确定所述第一I/O存储器访问请求是否包括与地址关联的将来访问提示,
其中所述将来访问提示用于指示将会对所述地址进行将来访问。
12.如权利要求11所述的方法,还包括响应所述第一I/O存储器访问请求包括所述提示的确定而更新对应高速缓存条目的一个或多个位。
13.如权利要求11所述的方法,还包括替换所述高速缓存中包括提示的条目之前的不包括提示的条目。
14.如权利要求11所述的方法,还包括转换对应于所述第一I/O存储器访问的地址。
15.一种系统,包括:
用于存储一个或多个条目的存储器;
用于存储与存储在所述存储器中的所述一个或多个条目对应的一个或多个条目的高速缓存,其中所述高速缓存的每个条目对应于访客物理地址(GPA)与主机物理地址(HPA)之间的输入/输出(I/O)存储器访问请求;以及
第一逻辑,用于从端点装置接收第一I/O存储器访问请求,并确定所述第一I/O存储器访问请求是否包括与地址关联的将来访问提示,
其中所述第一逻辑响应所述第一I/O存储器访问请求包括所述提示的确定而引起对于对应高速缓存条目的一个或多个位的更新。
16.如权利要求15所述的系统,其中所述端点装置用于生成所述存储器访问请求。
17.如权利要求15所述的系统,还包括预取逻辑,所述预取逻辑响应由所述端点装置发出的请求而将数据预取到所述高速缓存中。
18.如权利要求15所述的系统,其中所述端点装置包括外围部件互连(PCI)express装置。
19.如权利要求15所述的系统,其中所述将来访问提示用于指示将会对所述地址进行将来访问。
20.如权利要求15所述的系统,还包括耦合到包括所述高速缓存的非核部分的显示装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/906,176 US8161243B1 (en) | 2007-09-28 | 2007-09-28 | Address translation caching and I/O cache performance improvement in virtualized environments |
US11/906176 | 2007-09-28 | ||
PCT/US2008/077819 WO2009045884A2 (en) | 2007-09-28 | 2008-09-26 | Address translation caching and i/o cache performance improvement in virtualized environments |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101868786A true CN101868786A (zh) | 2010-10-20 |
Family
ID=40418368
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880110445.8A Pending CN101868786A (zh) | 2007-09-28 | 2008-09-26 | 虚拟化环境中的地址转换缓存和i/o高速缓存性能改进 |
CN200810161925.9A Pending CN101398787A (zh) | 2007-09-28 | 2008-09-27 | 虚拟化环境中地址转换缓存操作和i/o高速缓存性能的改善 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810161925.9A Pending CN101398787A (zh) | 2007-09-28 | 2008-09-27 | 虚拟化环境中地址转换缓存操作和i/o高速缓存性能的改善 |
Country Status (5)
Country | Link |
---|---|
US (2) | US8161243B1 (zh) |
CN (2) | CN101868786A (zh) |
DE (1) | DE102008048421A1 (zh) |
RU (1) | RU2483347C2 (zh) |
WO (1) | WO2009045884A2 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108363668A (zh) * | 2017-01-26 | 2018-08-03 | 英特尔公司 | 线性存储器地址变换和管理 |
CN108780421A (zh) * | 2016-03-05 | 2018-11-09 | 英特尔公司 | 用于在存储器装置镜像命令/地址或解译命令/地址逻辑的技术 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7707383B2 (en) | 2006-11-21 | 2010-04-27 | Intel Corporation | Address translation performance in virtualized environments |
US8161243B1 (en) | 2007-09-28 | 2012-04-17 | Intel Corporation | Address translation caching and I/O cache performance improvement in virtualized environments |
US9389895B2 (en) | 2009-12-17 | 2016-07-12 | Microsoft Technology Licensing, Llc | Virtual storage target offload techniques |
CN104636274B (zh) * | 2010-03-29 | 2018-01-26 | 威盛电子股份有限公司 | 数据预取方法以及微处理器 |
AT510716B1 (de) * | 2011-04-08 | 2012-06-15 | Albrecht Dipl Ing Kadlec | Reiner allokations-cache für echtzeitsysteme |
WO2013048943A1 (en) | 2011-09-30 | 2013-04-04 | Intel Corporation | Active state power management (aspm) to reduce power consumption by pci express components |
US8904113B2 (en) * | 2012-05-24 | 2014-12-02 | International Business Machines Corporation | Virtual machine exclusive caching |
CN104077171B (zh) * | 2013-03-28 | 2017-12-15 | 华为技术有限公司 | 调度虚拟机时的处理方法和设备 |
US9983893B2 (en) | 2013-10-01 | 2018-05-29 | Red Hat Israel, Ltd. | Handling memory-mapped input-output (MMIO) based instructions using fast access addresses |
US9916173B2 (en) * | 2013-11-25 | 2018-03-13 | Red Hat Israel, Ltd. | Facilitating execution of MMIO based instructions |
US20150286529A1 (en) * | 2014-04-08 | 2015-10-08 | Micron Technology, Inc. | Memory device having controller with local memory |
GB2528842B (en) * | 2014-07-29 | 2021-06-02 | Advanced Risc Mach Ltd | A data processing apparatus, and a method of handling address translation within a data processing apparatus |
US9846610B2 (en) | 2016-02-08 | 2017-12-19 | Red Hat Israel, Ltd. | Page fault-based fast memory-mapped I/O for virtual machines |
US10324858B2 (en) * | 2017-06-12 | 2019-06-18 | Arm Limited | Access control |
CN107341115B (zh) * | 2017-06-30 | 2021-07-16 | 联想(北京)有限公司 | 虚拟机内存访问方法、系统和电子设备 |
CN108021518B (zh) * | 2017-11-17 | 2019-11-29 | 华为技术有限公司 | 一种数据交互方法和计算设备 |
US10929310B2 (en) | 2019-03-01 | 2021-02-23 | Cisco Technology, Inc. | Adaptive address translation caches |
KR20230105441A (ko) | 2022-01-04 | 2023-07-11 | 삼성전자주식회사 | 스토리지 시스템과 장치 및 그 동작 방법 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6128703A (en) * | 1997-09-05 | 2000-10-03 | Integrated Device Technology, Inc. | Method and apparatus for memory prefetch operation of volatile non-coherent data |
US6009488A (en) | 1997-11-07 | 1999-12-28 | Microlinc, Llc | Computer having packet-based interconnect channel |
US6542968B1 (en) * | 1999-01-15 | 2003-04-01 | Hewlett-Packard Company | System and method for managing data in an I/O cache |
US6886085B1 (en) | 2000-04-19 | 2005-04-26 | International Business Machines Corporation | Method and apparatus for efficient virtual memory management |
US6789168B2 (en) * | 2001-07-13 | 2004-09-07 | Micron Technology, Inc. | Embedded DRAM cache |
US6981099B2 (en) * | 2002-12-16 | 2005-12-27 | Sun Microsystems, Inc. | Smart-prefetch |
US20040123278A1 (en) * | 2002-12-23 | 2004-06-24 | Murthi Nanja | Persistent cache apparatus and methods |
US6978351B2 (en) * | 2002-12-30 | 2005-12-20 | Intel Corporation | Method and system to improve prefetching operations |
US20040233146A1 (en) * | 2003-05-21 | 2004-11-25 | Nguyen Don J. | Selective window display |
US7941554B2 (en) * | 2003-08-01 | 2011-05-10 | Microsoft Corporation | Sparse caching for streaming media |
US20050149562A1 (en) | 2003-12-31 | 2005-07-07 | International Business Machines Corporation | Method and system for managing data access requests utilizing storage meta data processing |
US20050160229A1 (en) * | 2004-01-16 | 2005-07-21 | International Business Machines Corporation | Method and apparatus for preloading translation buffers |
US7930503B2 (en) * | 2004-01-26 | 2011-04-19 | Hewlett-Packard Development Company, L.P. | Method and apparatus for operating multiple security modules |
US7340582B2 (en) * | 2004-09-30 | 2008-03-04 | Intel Corporation | Fault processing for direct memory access address translation |
BRPI0419075A (pt) | 2004-10-06 | 2007-12-11 | Thomson Licensing | método e sistema para armazenar dados em cache |
US7330940B2 (en) * | 2005-02-02 | 2008-02-12 | Hewlett-Packard Development Company, L.P. | Method and system for cache utilization by limiting prefetch requests |
US20060288130A1 (en) | 2005-06-21 | 2006-12-21 | Rajesh Madukkarumukumana | Address window support for direct memory access translation |
US8490065B2 (en) * | 2005-10-13 | 2013-07-16 | International Business Machines Corporation | Method and apparatus for software-assisted data cache and prefetch control |
US7395407B2 (en) * | 2005-10-14 | 2008-07-01 | International Business Machines Corporation | Mechanisms and methods for using data access patterns |
US7389400B2 (en) | 2005-12-15 | 2008-06-17 | International Business Machines Corporation | Apparatus and method for selectively invalidating entries in an address translation cache |
US7653803B2 (en) * | 2006-01-17 | 2010-01-26 | Globalfoundries Inc. | Address translation for input/output (I/O) devices and interrupt remapping for I/O devices in an I/O memory management unit (IOMMU) |
US7739474B2 (en) * | 2006-02-07 | 2010-06-15 | International Business Machines Corporation | Method and system for unifying memory access for CPU and IO operations |
US7716423B2 (en) * | 2006-02-07 | 2010-05-11 | International Business Machines Corporation | Pseudo LRU algorithm for hint-locking during software and hardware address translation cache miss handling modes |
US7669028B2 (en) * | 2006-02-07 | 2010-02-23 | International Business Machines Corporation | Optimizing data bandwidth across a variable asynchronous clock domain |
TW200802175A (en) * | 2006-06-28 | 2008-01-01 | Giga Byte Tech Co Ltd | Hot-pluggable video display card and computer system using the same |
US7707383B2 (en) | 2006-11-21 | 2010-04-27 | Intel Corporation | Address translation performance in virtualized environments |
US8161243B1 (en) | 2007-09-28 | 2012-04-17 | Intel Corporation | Address translation caching and I/O cache performance improvement in virtualized environments |
-
2007
- 2007-09-28 US US11/906,176 patent/US8161243B1/en not_active Expired - Fee Related
-
2008
- 2008-09-23 DE DE102008048421A patent/DE102008048421A1/de not_active Withdrawn
- 2008-09-26 CN CN200880110445.8A patent/CN101868786A/zh active Pending
- 2008-09-26 RU RU2010104040/08A patent/RU2483347C2/ru not_active IP Right Cessation
- 2008-09-26 WO PCT/US2008/077819 patent/WO2009045884A2/en active Application Filing
- 2008-09-27 CN CN200810161925.9A patent/CN101398787A/zh active Pending
-
2012
- 2012-04-17 US US13/449,302 patent/US8407422B2/en not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108780421A (zh) * | 2016-03-05 | 2018-11-09 | 英特尔公司 | 用于在存储器装置镜像命令/地址或解译命令/地址逻辑的技术 |
CN108780421B (zh) * | 2016-03-05 | 2024-01-02 | 英特尔公司 | 用于在存储器装置镜像命令/地址或解译命令/地址逻辑的技术 |
CN108363668A (zh) * | 2017-01-26 | 2018-08-03 | 英特尔公司 | 线性存储器地址变换和管理 |
CN108363668B (zh) * | 2017-01-26 | 2024-03-08 | 英特尔公司 | 线性存储器地址变换和管理 |
Also Published As
Publication number | Publication date |
---|---|
DE102008048421A1 (de) | 2009-04-09 |
US8407422B2 (en) | 2013-03-26 |
US8161243B1 (en) | 2012-04-17 |
RU2010104040A (ru) | 2011-08-20 |
US20120203950A1 (en) | 2012-08-09 |
RU2483347C2 (ru) | 2013-05-27 |
WO2009045884A2 (en) | 2009-04-09 |
CN101398787A (zh) | 2009-04-01 |
WO2009045884A3 (en) | 2009-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101868786A (zh) | 虚拟化环境中的地址转换缓存和i/o高速缓存性能改进 | |
US7707383B2 (en) | Address translation performance in virtualized environments | |
US8250254B2 (en) | Offloading input/output (I/O) virtualization operations to a processor | |
US9298632B2 (en) | Hybrid cache state and filter tracking of memory operations during a transaction | |
US8656137B2 (en) | Computer system with processor local coherency for virtualized input/output | |
US8843705B2 (en) | Read and write aware cache with a read portion and a write portion of a tag and status array | |
CN101853227B (zh) | 改进存储器映射输入/输出请求处理的方法和处理器 | |
US8423720B2 (en) | Computer system, method, cache controller and computer program for caching I/O requests | |
EP3857389B1 (en) | Logging pages accessed from i/o devices | |
US7571286B2 (en) | Reduced memory traffic via detection and tracking of temporally silent stores | |
WO2017027111A1 (en) | Loading data using sub-thread information in a processor | |
CN108351834A (zh) | 用于针对核到核数据传送优化指令减少性能逆转的低开销硬件预测器 | |
JP2003067357A (ja) | 不均一メモリ・アクセス(numa)データ処理システムおよびその操作方法 | |
TWI502346B (zh) | 根據窺探回應資訊之目錄快取分配技術 | |
US10613999B2 (en) | Device, system and method to access a shared memory with field-programmable gate array circuitry without first storing data to computer node | |
US20150084975A1 (en) | Load/store operations in texture hardware | |
US20140173203A1 (en) | Block Memory Engine | |
US20120254509A1 (en) | Extending Cache for an External Storage System into Individual Servers | |
US10884943B2 (en) | Speculative checkin of ERAT cache entries | |
TWI428754B (zh) | 以主動式預取寬度執行加強式停懸狀態之系統及方法 | |
US20180336134A1 (en) | Ownership tracking updates across multiple simultaneous operations | |
US11726920B2 (en) | Tag processing for external caches | |
TWI428748B (zh) | 繪圖資料存取系統及方法 | |
JP2024533656A (ja) | 1つのキャッシュにおける別のキャッシュの挿入ポリシーのための要求クラス及び再使用記録の使用 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20101020 |