用于将pciesr-iov功能转换成表现为传统功能的系统和方法

文档序号:6479715阅读:222来源:国知局
专利名称:用于将pcie sr-iov功能转换成表现为传统功能的系统和方法
用于将PCIE SR-I0V功能转换成表现为传统功能的系统和
方法
背景技术
计算机系统采用多种外围部件或输入/输出(I/O)设备。举例来说,典型的计算 机系统通常包含监视器、键盘、鼠标、网络控制器、磁盘驱动器或磁盘驱动器阵列以及可选 地还包含打印机。诸如服务器之类的高性能计算机系统具有更复杂的I/O设备要求。通过由PCI特别兴趣小组公布的PCI (外围部件互连)本地总线规范限定了通过 部件总线连接到I/O设备的计算机系统的主机处理器的实例。在系统初始化期间,所述主 机处理器为所述PCI总线上的每个PCI设备加载设备驱动器。典型的PCI设备包括位于每 个相应的PCI设备的配置存储器空间之内的多个配置寄存器。包括诸如销售商ID、设备ID 或版本(revision)寄存器之类的标识寄存器的配置寄存器由设备驱动器和主机系统在初 始化或正常操作期间读取,以识别所述PCI设备。通常来说,所述标识寄存器在所述PCI设 备的制造过程期间被硬布线成固定值,并且不能由所述设备驱动器或所述主机的操作系统 (OS)进行修改。结果,查找PCI设备的特定标识的传统设备驱动器将无法与具有不同标识 信息(比如不同的销售商ID或不同的设备ID等等)的PCI设备一同工作。PCI Express (PCIe)是针对PCI的改进并且限定了多种计算和通信平台的高性能 通用I/O互连。诸如PCI使用模型、加载-存储体系结构以及软件接口之类的关键PCIe属 性被维持在PCIe中,但是PCI的并行总线实现方式在PCIe中被高度可扩展的完全串行的 接口所替换。PCIe利用先进的点对点互连、基于交换的技术以及分组化的协议,以递送改进 的性能特征。输入/输出虚拟化(I0V)是为I/O设备的将由运行在相同或不同CPU上的多于一 个的操作系统(OS-有时也被称作系统映像(system image))使用的能力所给出的名称。现 今的计算和存储系统使用I0V,因为I0V通过负载均衡以及有效地使用利用不足的资源而 提供对信息技术资源的改进管理。举例来说,I0V允许以更少的空闲时间更加充分使用有 限的资源集合(比如计算机存储器),这是通过在共享的基础上使得资源可用于一定数目 的不同操作系统而实现的。因此,不是针对每个OS都具有单独的存储器(其中每个单独的 存储器都未充分利用),共享的存储器可用于所有操作系统,并且所述共享存储器所经历的 利用率高于任何所述单独资源的利用率。虽然并入PCIe技术的计算和通信系统正在激增,但是许多传统的(例如PCI)系 统仍处于使用中。当这种传统系统与更新的PCIe系统配对时,这些传统系统与更新的PCIe 系统之间的通信就可能会产生间题。

发明内容
公开的是一种用于对单根输入/输出虚拟化(SR-I0V)功能进行转换从而使得所 述SR-I0V功能表现为传统功能的系统。所述系统包括耦合在传统主机与启用了 SR-I0V的 设备之间的交换平台。所述交换平台包括被编程来辨别配置循环的类型并且处理所述配置 循环的处理器以及存储与所述配置循环相关的数据的一个或更多本地寄存器。所述交换平台处理器还监督或控制该交换平台的其它操作。还公开了一种用于在SR-I0V虚拟功能与传统主机处理器的地址空间之间进行转 换的方法。所述方法包括以下步骤接收来自所述主机处理器的配置循环;将来自所述主 机处理器的配置循环与配置寄存器进行比较并且确定配置循环的类型;对所接收到的配置 循环执行转换操作;以及向所述主机处理器返回配置完成循环。更进一步公开了一种执行转换从而使得可以为传统主机处理器分配SR-I0V终端 设备的虚拟功能的系统。所述系统包括介于主机处理器与终端设备之间的智能交换结构 (fabric)。所述交换结构包括识别从中发出虚拟功能的终端设备的类型的处理装置;用 于存储关于所述终端设备的所选信息的存储装置;用于将进入的主机限定的目的地信息转 换成相对应的终端设备限定的目的地信息的装置;以及用于将所述终端设备的进入的终端 设备完成信息转换成所述主机处理器的相对应的完成信息的装置。所述系统还包括用于在 所述交换结构处接收配置循环和配置完成循环的装置。


具体实施方式
部分将参照下面的附图,其中相同的附图标记指代相同的项目,并 且其中图1是利用单根体系结构的启用了 PCIe的计算系统的方框图;图2示出了针对图1的系统的配置空间的实例;图3示出了将被添加到被适配来利用图1的系统的虚拟功能的传统计算系统的示 例性元件;图4A-4C示出了用于转换各种配置循环从而使得图1的虚拟功能对于图3的系统 将表现为传统功能的示例性机制;图5示出了被用来实现关于图4A-4C描述的转换的示例性交换平台和相关联的控 制器;图6示出了用于实现存储器转换的示例性机制;以及图7是示出了在图3的系统上执行的示例性例程的流程图。
具体实施例方式在下面的描述中,包括PCI Express中的互连设备的系统将被称作PCIe系统,几 种将要连接的设备将被称作PCIe设备,用于连接这些设备的总线将被称作PCIe总线,并且 用于通信的分组将被称作PCIe分组。使用PCIe之前的技术的系统将被称作传统系统并且 将具有相对应的传统设备和总线。参照图1,PCIe系统100包括通过主机总线连接到CPU 120并且通过存储器总线 连接到存储器130的根联合体110 (用于充当PCIe的树状拓扑的“根”)、为所述PCIe总线 提供扇出功能的PCIe交换机140以及通过所述PCI总线连接的I/O设备150。所述CPU 120可以是通用处理器、嵌入式处理器或者专用处理元件。所述存储器130可以是通用存储 器或嵌入式存储器。一般来说,所述根联合体110与PCIe的树状拓扑的CPU 120相邻的那 侧被称作上游,并且所述根联合体110与I/O设备150相邻的那侧被称作下游。虽然在图 1中有两个I/O设备150连接到所述PCIe交换机140,但是可被连接的I/O设备150的数目不限于两个。提供在所述CPU 120中的配置软件被用于配置所述PCI系统100。每个PCIe设备150通过根端口 115被耦合到所述根联合体110。当多个PCIe设 备150被耦合到单个根端口 115时,在所述根端口 115与所述PCIe设备150之间放置交换 机、比如交换机140。与所述处理器120相关联地示出的是虚拟化中介160,所述虚拟化中介160被用来 抽象所述系统100的底层硬件,以便向每个系统映像(SI) 170提供其自己的虚拟计算系统。 所述系统映像170是被用来在所述系统100上执行应用的软件单元、比如操作系统。单根 PCI管理器(SR-PCIM) 165是被用来配置所述系统的SR-I0V能力、管理物理功能(PF)和虚 拟功能(VF)以及过程相关联的错误事件的软件。物理功能是支持所述SR-I0V能力并且可 由SR-PCIM 165,VI 160或SI 170访问的PCIe功能。虚拟功能是通过SI 170可直接访问 的轻型PCIe功能。虚拟功能可以由不同的系统映像170逐次共享。最后应当注意到,图1中所示的系统100是“单根”系统。其它计算系统可以使用 多个根。所述PCIe交换机140包括上游PCI-PCI桥接器、内部PCI总线以及下游PCI-PCI 桥接器(现在示出的部件)。所述上游PCI-PCI桥接器和下游PCI-PCI桥接器包括相应的 配置寄存器以用于保留关于连接在相应桥接器的下游的PCIe资源空间的信息。所述PCIe 资源空间是被用在PCIe系统中的几个地址所占用的空间。图2是示出了 PCIe 0类配置寄存器的内部布局的实例的图示。作为地址的例子, 设备ID代表对于销售商特定的设备号码并且销售商ID代表制造商号码(二者的偏移量都 是00h),而类代码(偏移量08h)代表设备属性。地址偏移量10h-24h以及30h被用于基地 址寄存器。包括在SR-PCIM 165内的配置软件可以通过查找寄存器值来识别出设备。所述 基地址寄存器被SR-PCIM 165中的配置软件使用来在为I/O设备分配地址空间时写入基地 址。所述设备标识和相关的过程发生在PCIe配置循环期间。这种配置循环发生在设备启 动期间并且可能发生在热插拔操作之后。如下面将要描述的那样,相同的寄存器值被用在 这里公开的翻译设备中,以便使得SR-I0V虚拟功能对于传统主机表现为传统功能。回到图1,在基于PCIe的系统100启动时,在初始配置循环期间,配置软件160搜 索存在于PCIe系统100中的所有PCIe设备。具体来说,扫描系统100中的所有PCI总线, 并且检查每个PCI总线中的每个槽的占用该槽的PCIe设备的属性。然后通过顺序地分配 所找到的每个PCIe设备所需的PCIe资源空间来实现配置。举例来说,在图1的PCIe系统 100中,为连接在所述PCIe交换机140下游的I/O设备150分配其需要的相应资源空间,并 且根据所分配的空间的尺寸来设定图2中所示的配置寄存器中的值。PCIe提供了热插拔功能以用于在使用中将I/O设备的插塞连接到未被占用的槽/ 从未被占用的槽中断开I/O设备的插塞。热插拔是一种允许在系统中的其它设备处于服务 中的同时物理地附着或移除I/O设备或类似设备的技术。在传统的PCIe系统中,主要的热 插拔功能例如工作在这种情况下用类似的I/O设备150替换在初始配置循环期间附着到 图1中的PCIe交换机140的I/O设备150,因为后者发生故障。当I/O设备150被插入到 槽中时,在下游的CPU 120与该I/O设备150之间建立链接,并且电信号同步、信用信息交 换等等被自动激活。热插拔寄存器被接通,并且同时生成到CPU 120的中断。由所述中断 触发,SR-PCIM 165中的配置软件被调用来配置所插入的I/O设备150并且清零热插拔寄存器。在这一配置过程完成之后,所插入的I/O设备150被启用。虽然利用所述系统100在热插拔操作中交换I/O设备是可能的,但是将I/O设备 150安装到未被占用的槽中可能需要重新配置整个PCIe系统100,其包括含有关于已被分 配的PCIe资源空间的信息的由PCIe交换机140所持有的任何配置寄存器以及由其它I/O 设备所持有的基地址寄存器。出现这种情况的原因在于在所述初始配置循环期间,为所述 PCIe总线分配总线号码,并且按照顺序的方式为所述PCIe交换机140和I/O设备150分配 设备号码、功能号码、32比特I/O空间、32比特存储器空间以及必要的话还分配64比特存 储器空间;但是并没有为任何未被占用的槽进行上述分配。因此,当I/O设备150被插入到 (例如所述PCIe交换机140中的)未被占用的槽中时,要被分配给所插入的I/O设备150 的PCIe资源空间可能会与已经使用了该空间的另一 I/O设备150的PCIe资源空间发生干 扰。SR-I0V是一种新的PCIe规范,其限定了一种被称作虚拟功能的新型功能。虚拟功 能与先前的(传统)PCI功能有一些重要差异,并且需要改变SR-I0V设备会附着到的任何 主机的PCI代码。作为改变所述主机的PCI代码的一种替换方案,可以令所述虚拟功能看 上去像是常规的PCI功能。这种转换是作为由PCI主机执行的配置过程的部分来实现的。 在驻留于所述主机与所述虚拟功能之间的中间设备中执行所述转换。图3示出了将被添加到被适配来利用图1的系统的虚拟功能的计算系统内的传统 主机处理器的示例性元件。如图3中所示,计算系统300包括通过所添加的交换平台320耦 合到一个或更多I/O设备150的传统主机处理器310。所述I/O设备150在所有相关方面都 类似于图1中所示的相对应设备。也就是说,图3中所示的I/O设备150实施根据SR-I0V 规范的虚拟功能。作为例子,I/O设备1501可以代表根据所述SR-I0V规范被配置为四个 虚拟以太网端口的单个以太网端口。照这样,可以为所述四个虚拟以太网端口中的任意虚 拟以太网端口分配特定的系统映像,比如分配图1中所示的系统映像170。此外,所述主机 处理器310可以访问所述四个虚拟以太网端口中的任意虚拟以太网端口。但是,因为所述 主机处理器310并不是PCIe SR-I0V设备,所以首先必须对于该主机处理器310完成翻译 操作,以便与所述I/O设备1501接口连接。当执行各种配置循环以启用所连接的I/O设备 150时,这种翻译通常可以发生在所述计算机系统300的启动期间。所述翻译在交换平台 320中被执行。图4A-4C示出了用于转换各种配置循环从而使得所述I/O设备150的虚拟功能对 于图3的主机处理器将表现为传统功能的示例性机制。如图4A-4C中所示,存在三种类型 的配置循环。在图4A中,所述交换平台310修改来自所述主机处理器310的进入的A类配 置循环,所述修改是通过将主机限定的目的地总线或设备功能改变成对应于终端设备(即 所述I/O设备150)的限定的目的地总线/设备/功能号码而实现的。在实施例中,A类配 置循环是与如图2中所示的地址空间08h、0Ch、28h、2Ch、34h和38h相关的配置循环。经过 如此修改的配置循环被发送到所述I/O设备150,以便从该I/O设备150获得特定信息。类 似地在所述交换平台320中转换从所述I/O设备150到所述主机处理器310的配置完成循 环信号。在图4B中,所述交换平台320截取并处理所述配置循环而不将所述信号发送到 所述I/O设备150。在实施例中,这种转换适用于如图2中所示的配置空间的地址空间10h-24h以及30h。所述交换平台320向本地寄存器写入数据并且从本地寄存器读取数据。 在所述交换平台320中基于被存储在所述本地寄存器中的关于I/O设备的信息而本地生成 所述配置循环。在图4C中,在配置循环被传给所述I/O设备150之前修改配置循环的目的地总线 /设备/功能号码,但是所述数据的部分由所述交换平台320处理,所述交换平台320向本 地寄存器写入/从本地寄存器读取该数据。在所述交换平台320中修改来自所述I/O设备 150的进入的配置循环,所述修改是通过将所述进入的I/O设备限定的已完成的总线/设备 /功能号码翻译成与所述主机处理器310的相对应的已完成的总线/设备/功能号码相匹 配而实现的,并且将经过如此修改的信号与来自所述交换平台310本地寄存器的数据相组 合,以便产生引出的配置完成循环。图5是示例性交换平台320的方框图。在图5中可以看出所述交换平台320包括 处理器322和本地寄存器324。所述处理器322被编程来截取来自所述主机处理器310的 配置循环并且确定要应用图4A-4C的三种机制中的哪种机制实现所需的转换。通过一些转 换,所述处理器322将从所述本地寄存器324读取数据或向所述本地寄存器324写入数据。图6示出了一种用于实现存储器转换的示例性机制。与前面关于所述配置循环所 描述的那样,为了使得所述主机处理器310访问存储器,由于配置空间寄存器(图2中所示 的实例),可能需要对存储器地址进行一些转换。具体来说,配置空间寄存器180表明针对 地址偏移量10h-24h以及针对30h的基地址寄存器(BAR)。对这些地址偏移量进行转换, 使得所述主机处理器310将正确地解释任何存储器地址功能。如图6中所示,所述主机处 理器310发布存储器循环,在所述交换平台320处接收到所述存储器循环并且将所述存储 器循环与本地BAR进行比较。如果发现匹配(地址命中),则利用所述处理器322翻译该地 址。如果所述比较表明没有匹配,则所述处理器322发布不支持请求。图7是示出了在图3的系统上执行的示例性例程600的流程图。所述例程开始于 块605。在块610,交换平台320接收到来自所述主机处理器310的配置循环。在块615, 所述处理器322针对特定的端点设备比较(所述配置循环中的)配置总线/设备/功能信 息。在块620,所述处理器确定正在处理的是哪类配置循环。在块625,所述处理器322执 行从所述主机设备到预定的终端设备的所需的总线/设备/功能转换。在块630,所述处理器注意到所述配置循环是A类、B类还是C类。如果所述配置 循环不是A类或C类,则所述例程600移到块640,并且所述配置循环在所述交换平台320 中终止。但是,如果所述配置循环是A类或C类,则所述例程移到块645,并且所述配置循环 被发送到所述终端设备。在块650,在终端设备处进行了适当的处理之后,该终端设备返回 配置完成循环。对所述配置完成循环进行转换(块655),并且所述例程600移到块660,用 于发送到主计算机,并且然后结束665。
权利要求
一种用于将单根输入/输出虚拟化(SR IOV)功能转换成表现为传统功能的系统,其包括耦合在传统主机与启用了SR IOV的终端设备之间的交换平台,所述交换平台包括被编程来辨别配置循环的类型并且处理所述配置循环的处理器;以及存储与所述配置循环相关的数据的一个或更多本地寄存器。
2.权利要求1的系统,其中,所述配置循环将配置寄存器中的地址空间与所述终端设 备的物理地址相关。
3.权利要求1的系统,其中,所述终端设备是PCIeI/O设备。
4.权利要求1的系统,其还包括用于将来自主机处理器的进入的存储器循环翻译成能 够为所述终端设备所理解的存储器循环的装置。
5.权利要求1的系统,其还包括用于检测其中插入替换设备以替换所述终端设备的热插拔操作的装置;以及 用于配置所述替换设备从而使得该替换设备的虚拟功能对于主机处理器表现为传统 功能的装置。
6.一种用于在终端设备的SR-I0V虚拟功能与传统主机处理器的地址空间之间进行转 换的方法,其包括在所述终端设备与所述主机处理器之间的交换平台中介处接收来自所述主机处理器 的配置循环;将来自所述主机处理器的配置循环与配置寄存器进行比较并且确定配置循环的类型;对所接收到的配置循环执行转换操作;以及 向所述主机处理器返回配置完成循环。
7.权利要求6的方法,其还包括向所述终端设备发送经过转换的配置循环;接收来自所述终端设备的配置完成信号;以及对所接收到的配置完成信号进行转换,以产生所述配置完成循环。
8.权利要求7的方法,其还包括通过将进入的存储器循环与配置寄存器中的基地址寄 存器进行比较来转换存储器访问循环,其中对存储器地址进行转换。
9.权利要求6的方法,其还包括接收其中插入替换设备以替换所述终端设备的热插拔操作的指示; 向交换平台发送配置循环;以及 接收来自所述终端设备的配置完成循环。
10.权利要求9的方法,其还包括在所述交换平台中存储关于所述替换设备的信息;以及 在所述交换平台中生成所述配置完成循环。
11.权利要求9的方法,其还包括在所述交换平台中存储关于所述替换设备的信息的第一部分; 向所述替换设备发送关于所述替换设备的信息的第二部分; 从所述替换设备接收基于所述信息的所接收到的第二部分的配置完成信号;将所述信息的所存储的第一部分与所述配置完成信号相组合,以生成所述配置完成循 环;以及向所述主机处理器发送所述配置完成循环。
12.权利要求9的方法,其还包括 向所述替换设备发送所述配置循环; 从所述替换设备接收配置完成信号;对所接收到的配置完成信号进行转换;以及向所述主机处理器发送经过转换的信号以作为配置完成循环。
13.一种执行转换从而使得为传统主机处理器分配SR-I0V终端设备的虚拟功能的系 统,其包括介于所述主机处理器与所述终端设备之间的智能交换结构,所述交换结构包括 识别从中发出虚拟功能的终端设备的类型的处理装置; 用于存储关于所述终端设备的所选信息的存储装置;用于将进入的主机限定的目的地信息转换成相对应的终端设备限定的目的地信息的 装置;以及用于将所述终端设备的进入的终端设备完成信息转换成所述主机处理器的相对应的 完成信息的装置;以及用于在所述交换结构处接收配置循环和配置完成循环的装置。
14.权利要求13的系统,其还包括用于发现其中替换设备替换所述终端设备的热插拔操作的装置;以及 用于配置所述替换设备的装置。
15.权利要求13的系统,其还包括用于在所述交换结构中存储与所述终端设备的总线/设备/功能信息相关的信息的装 置;以及在所述交换结构中生成所述配置完成循环。
16.权利要求13的系统,其还包括用于在所述交换结构中存储关于所述终端设备的信息的第一部分的装置;用于向所述终端设备发送关于所述终端设备的信息的第二部分的装置;用于从所述终端设备接收基于所述信息的所接收到的第二部分的配置完成信号的装置;用于将所述信息的所存储的第一部分与所述配置完成信号相组合以便生成所述配置 完成循环的装置;以及用于向所述主机处理器发送所述配置完成循环的装置。
17.权利要求13的系统,其还包括用于向所述终端设备发送所述配置循环的装置;用于从所述终端设备接收配置完成信号的装置;用于对所接收到的配置完成信号进行转换的装置;以及用于向所述主机处理器发送经过转换的信号以作为配置完成循环的装置。
18.权利要求13的系统,其还包括用于检测其中替换设备替换所述终端设备的热插拔操作的装置;以及 用于转换来自所述替换设备的总线/设备/功能信息的装置,其中所述替换设备的功 能对于所述主机处理器表现为传统功能。
全文摘要
本发明涉及一种新颖的钾通道KCNH2灵长类特定脑同形物和与精神分裂症风险的遗传相关性。一种用于将单根输入/输出虚拟化(SR-IOV)功能转换成表现为传统功能的系统以及一种相对应的方法包括耦合在传统主机与启用了SR-IOV的设备之间的交换平台。所述交换平台包括被编程来辨别配置循环的类型并且处理所述配置循环的处理器以及存储与所述配置循环相关的数据的一个或更多本地寄存器。所述系统还包括耦合到所述交换平台的控制模块,所述控制模块监督所述交换平台的操作。
文档编号G06F13/14GK101981554SQ200880128265
公开日2011年2月23日 申请日期2008年3月25日 优先权日2008年3月25日
发明者B·S·贝西尔, D·L·马修斯, H·E·布林克曼, J·M·凯格尔, P·V·布劳内尔, W·F·多斯 申请人:惠普开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1