虚拟化环境中的地址转换缓存和i/o高速缓存性能改进的制作方法

文档序号:6478619阅读:211来源:国知局
专利名称:虚拟化环境中的地址转换缓存和i/o高速缓存性能改进的制作方法
技术领域
本公开一般涉及电子领域。更具体地说,本发明的实施例涉及改进虚拟化环境中 的地址转换缓存和/或输入/输出(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所示,非核部分(imcore) 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可根据可从美国俄勒R州波特兰市的PCI特别兴趣小组得到 的PCI局部总线规范3. 0版(March 9,3004)(下文称为"PCI总线”)与CS/非核部分208通信。或者,可利用可从上述美国俄勒R州波特兰市的PCI特别兴趣小组得到的PCI-X规范3. Oa 版(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级(Li) 高速缓存、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)等装置。
此外,这种计算机可读介质可作为计算机程序产品下载,其中可通过以载波或其 它传播介质实施的数据信号经由通信链路(例如,总线、调制解调器或网络连接)将程序从 远程计算机(例如服务器)传送到请求计算机(例如客户机)。说明书中提到“一个实施例”或“实施例”时表示,结合该实施例描述的特定特征、 结构或特性可包含在至少一个实现中。说明书中各个地方出现的短语“在一个实施例中”可 以或者可以不都指同一实施例。再者,在说明书和权利要求书中,可以使用术语“耦合”和“连接”以及它们的派生 词。在本发明的一些实施例中,“连接”可用于指示两个或更多元件彼此直接物理或电接触。 “耦合”可以表示两个或更多元件直接物理或电接触。然而,“耦合”也可以表示两个或更多 元件可彼此不直接接触,但仍可彼此合作或交互。由此,虽然用结构特征和/或方法动作所特有的语言描述了本发明的实施例,但 是要理解,所要求的主题可不限于所描述的特定特征或动作。而是,这些特定特征和动作只 是作为实现所要求主题的样本形式而公开。
权利要求
一种设备,包括用于存储一个或多个条目的高速缓存,其中每个条目对应于访客物理地址(GPA)与主机物理地址(HPA)之间的输入/输出(I/O)存储器访问请求;以及第一逻辑,用于从端点装置接收第一I/O存储器访问请求,并确定所述第一I/O存储器访问请求是否包括与地址关联的将来访问提示,其中所述第一逻辑响应所述第一I/O存储器访问请求包括所述提示的确定而引起对于对应高速缓存条目的一个或多个位的更新。
2.如权利要求1所述的设备,其中所述端点装置用于生成所述存储器访问请求。
3.如权利要求1所述的设备,还包括预取逻辑,所述预取逻辑响应由所述端点装置发 出的请求而将数据预取到所述高速缓存中。
4.如权利要求1所述的设备,其中所述端点装置包括外围部件互连(PCDexpress装置。
5.如权利要求1所述的设备,其中所述将来访问提示用于指示将会对所述地址进行将 来访问。
6.如权利要求1所述的设备,其中所述第一逻辑、一个或多个处理器核、或所述高速缓 存中的一个或多个在相同集成电路管芯上。
7.如权利要求1所述的设备,其中所述高速缓存包括根联合体高速缓存、I/O转换后备 缓冲器(I0TLB)或者它们的组合中的一种或多种。
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所述的系统,其中所述端点装置包括外围部件互连(PCDexpress装置。
19.如权利要求15所述的系统,其中所述将来访问提示用于指示将会对所述地址进行 将来访问。
20.如权利要求15所述的系统,还包括耦合到包括所述高速缓存的非核部分的显示装置。
全文摘要
描述涉及改进虚拟化环境中的地址转换缓存和/或输入/输出(I/O)高速缓存性能的方法和设备。在一个实施例中,由端点装置提供的提示可用于更新存储在I/O高速缓存中的信息。在一个实施例中,这种信息可用于实现更有效的替换策略。还公开其它实施例。
文档编号G06F12/08GK101868786SQ200880110445
公开日2010年10月20日 申请日期2008年9月26日 优先权日2007年9月28日
发明者J·阿贾诺维克, M·瓦赫 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1