专利名称:用于节省成本且高性能的图形系统的总线接口控制器的利记博彩app
技术领域:
本发明大体上涉及能够支持不同数目的图形卡以获得改进性能的图形系统。更具体 地说,本发明针对一种用以支持节省成本且高性能的图形系统的专用总线。
技术背景图形系统通常构建为插入到母板中的不同卡(有时也称为"板")的三维组合件。所 述母板是系统的主电路板,且通常包含中央处理单元和称为"芯片组"的其它芯片。另 外,母板包含连接器、端口和用于附着其它电子组件的其它特征。参看图1,在常规图形系统中,母板100包含芯片组,所述芯片组包含(例如)桥 接器单元110和中央处理单元(CPU) 120。出于说明目的,将图形卡130说明为处于用 以组合的适当位置中。图形卡130通常包含图形处理单元(GPU)(未图示)。图形卡130 通常包含连接器表面135。出于说明目的,将单个连接器表面135说明为经设计以与外 围组件接口 (PCI) Express (通常称为"PCI-E"或"PCIe")连接器140紧密配合。PCI-E 是利用高速串行数据路线的高速总线接口标准。PCI-SIG组织发表PCI-E标准。个别数 据路线150包括两个单工连接件, 一个用于接收数据且另一个用于发射数据。所述PCI-E标准规定总线接口协议以将一组数据路线配置成两个实体之间的链路。 链路带宽根据并行操作的数据路线的数目来按比例伸縮。PCI-E总线的大小通常被称为 一个数据路线的倍数,例如"xN"或"Nx",以指示所述链路具有单个数据路线的带宽 的N倍。PCI-E支持xl、 x2、 x4、 x8、 x16和x32路线的总线大小。常规上,利用多种 标准连接器大小,其中xl6连接器大小通常用于图形卡。图2说明可伸縮链路接口 (SLI)图形系统,其类似于由Nvidia Corporation of Santa Clara, California提供的SLI图形系统。SLI图形系统利用两个或两个以上图形卡130-A 和130-B,其一起进行操作以产生单个输出。也就是说,所述图形卡并行处理图形数据。 举例来说,可在母板100上提供两个PCI-E x16连接器140-A和140-B,每一连接器用于 一个图形卡130-A和130-B。将PCI-E xl6总线(例如,源自芯片110的一个x16总线) 分成两个x8总线,其中每一x8总线去往一个图形卡。通常,提供切换卡170 (也称为 "开关卡")以决定源自芯片110的x16总线的哪些路线路由到所述两个PCI-E连接器140-A和140-B。切换卡170本质上相当于进一步包含切换元件的额外PCI-E连接器。此切换卡no通常具有两个位置第一位置,其中源自芯片iio的所有16个路线均路由到一个PCI-E连接器(例如PCI-E连接器140-A);和第二切换位置,其中8个路线从芯片 110路由到PCI-E连接器140-A且源自芯片110的另外8个路线路由到PCI-E连接器 140-B。因此,在SLI模式中,每一PCI-E连接器使得其串行数据路线的一半耦合到芯片 组,而未使用另一半。这导致固有折衷,因为图形处理能力增加(由于所述两个GPU并 行操作),但代价是每一图形卡具有的PCI-E带宽将是其单独使用时具有的PCI-E带宽的 一半。SLI通常以主/从布置来实施,其中在多个图形处理器之间划分工作。软件驱动程序 在所述两个图形卡之间分配处理图形数据的工作。举例来说,在分帧渲染(SFR)中, 图形处理经组织以使得将个别帧分成两个不同部分,所述两个部分由不同图形处理器并 行处理。在交错帧渲染(AFR)中, 一个图形卡处理当前帧而另一图形卡对下一帧进行 处理。在一种型式中,外部SLI连接器180提供图形卡之间的链路,以在图形卡之间传 输同步和像素数据。近年来,Nvidia Corporation己发布包含四个图形卡的四重SLI系统。四重SLI系统 是SLI的延伸,其中四个图形卡处理图形数据。举例来说,可将所述工作分成AFR和SFR 的组合,其中多个具有两个图形卡的群组对交错帧进行处理,其中每一具有两个图形卡 的群组又执行分帧渲染。常规SLI的一个问题在于,其比所需的更为昂贵。具体地说,通常需要额外组件(例 如切换卡和SLI连接器),从而增加了成本。另一问题与性能有关,其是由在两个图形卡 之间分裂芯片110的PCI-E带宽造成的。与单个图形卡结构相比,从芯片组到GPU的带 宽减少了一半。这还会导致限制用于流过芯片组的GPU到GPU流量的可用带宽。如图3中说明,对于常规SLI的一个替代方案将在芯片组中使用较为昂贵的一组芯 片305、 310来增加PCI-E带宽,以使得每一 GPU 320-A和320-B具有专用于芯片组的 x16带宽。然而,除了所需的较为昂贵的芯片组外,图3中所说明的结构不具有从CPU 302 到GPU的对称数据路径350和360。来自GPU的命令流可因此在稍微不同的时间到达每 一 GPU。结果,与对称数据通路的情况相比,在使GPU 320-A和320-B的操作同步方面 必须更加小心。或者,如图4中说明,可使用具有较昂贵芯片组的芯片402和404的SLI 结构来增加指派到每一GPU 420的PCI-E带宽。举例来说,可包含具有x32 PCI-E接口 的芯片404以支持每对具有xl6总线的GPU 420。然而,对于许多市场细分而言,添加
额外芯片或较昂贵芯片的增加性能不能证明额外芯片成本是合理的。因此,鉴于上述问题,研发了本发明的设备、系统和方法。 发明内容本发明提供一种总线接口控制器,其支持卡到卡通信。所述总线接口控制器管理一 组串行数据路线。所述总线接口控制器具有将第一子组所述串行数据路线作为一个总线 进行管理且将第二子组所述串行数据路线作为专用总线进行管理的操作模式。
结合下文联合附图所作的详细描述可更全面地理解本发明,在附图中图1说明具有常规PCI-E总线的图形系统的现有技术母板;图2说明具有两个图形卡的现有技术可伸縮链路接口图形系统的母板;图3是具有两个gpu的现有技术图形系统的方框图;图4是具有四个GPU的现有技术图形系统的方框图;图5说明根据本发明一个实施例将PCI-E连接器进行耦合以形成专用总线的母板; 图6说明根据本发明一个实施例将PCI-E连接器进行耦合以形成专用总线且包含切 换卡的母板;图7说明根据本发明一个实施例的PCI-E连接器由形成在母板上的连接件耦合以界定专用总线的母板;图8是根据本发明一个实施例的图形系统的功能方框图;图9是根据本发明一个实施例的四重SLI系统的方框图;和图10是根据本发明一个实施例的四重SLI系统的第二实施例的方框图。图11说明其中使用单个图形卡的图7的系统的替代性实施方案;图12说明其中利用两个图形卡的图9的系统的替代性实施方案;和图13说明其中利用两个图形卡的图10的系统的替代性实施方案。在附图的所述若干视图中,相同参考元件符号始终指代相应部分。
具体实施方式
图5是本发明的一个实施例的透视图,其中为了清晰起见省略了一些常规组件,且 为了说明目的而未按比例绘示其它组件。母板500包含芯片组,所述芯片组可包含CPU 550和另一具有外围组件接口 Express (PCI-E)接口 545的芯片540。母板500具有两个 PCI-E连接器510和515(例如两个PCI-E x16连接器)以用于接纳图形卡530-A和530-B。图形卡530-A和530-B具有PCI-E连接器表面535-A和535-B,所述连接器表面经 设计以与相应的PCI-E连接器510或515配合。每一图形卡530-A和530-B具有其自己 的个别图形处理单元(GPU) 502-A和502-B。每一图形卡530-A和530-B包含内部信号 路径(未图示)以将来自PCI-E连接器表面535的电信号耦合到个别的GPU 502-A或 502-B。个别PCI-E连接器(例如连接器510)具有插脚525和接触指的相关联内部接触位 置527,图中以虚线说明。PCI-E卡边连接器(例如连接器510或515)具有接触指,以 接受卡并且与连接器表面535的接触表面配合。在连接器内,具有对应于接触指的接触 位置的标准PCI-E连接器插脚引线。所述插脚引线(和其与接触位置的相关联关系)用 以界定特定的串行数据路线。因此,举例来说,xl6 PCI-E连接器具有为16个串行数据 路线界定16个个别单工接收器和16个个别单工发射器的插脚引线。插脚引线还指定给 特定数据路线的插脚(和相关联接触位置)的分派。在一个实施例中,进一步向PCI-E总线(例如,到达芯片540的PCI-E总线590或 595)或向专用总线580 (例如,图形卡530-A与530-B之间的专用总线)分派每一连接 器510和515的插脚525 (和其相关联的接触位置527)。将PCI-E插脚引线组织成发 射器和接收器的接触位置布置在连接器的两侧,且路线编号沿着连接器依次上升地布置。 因此,通过对特定连接器插脚进行电连接(所述插脚又耦合到由插脚引线界定的特定内 部接触位置)来分派特定数据路线。P2P箭头说明分派给连接器510与515之间的专用 总线580的一子组数据路线。Cl箭头说明分派给PCI-E总线595的连接器515的一子组 数据路线。C2箭头说明分派给PCI-E总线590的连接器510的一子组数据路线。如芯片540的PCI-E接口 545上的箭头指示,在一个实施例中,将芯片540的PCI-E 接口的带宽分成耦合到C1和C2数据路线的两个子总线。作为一个实例,芯片540可为 基于Nvidia Corporation of Santa Clara, California的nForce4⑧芯片组设计的芯片组的一部 分。nForce4⑧芯片组允许芯片组PCI-E接口 545将其串行数据路线配置成一个xl6 PCI-E 总线或配置成两个x8 PCI-E总线。连接连接器510和515的P2P串行数据路线的专用总线580提供高数据速率卡到卡 总线。发明者的研究显示,GPU到GPU流量构成SLI模式中的流量的较大部分。因此, 形成在两个图形卡的P2P串行数据路线之间的专用总线可用于改进性能。在一个实施例 中,芯片组的PCI-E接口 545是xl6 PCI-E接口 ,且每一连接器510和515均是PCI-E xl6 连接器,所述连接器将其串行数据路线分派为向P2P指派8个串行数据路线且指派另外 8个串行数据路线用于与芯片组进行通信(即,C1或C2数据路线)。然而,将了解,这 些数目是示范性的,且更常见的情况是专用总线包含至少一个串行数据路线。图形卡530-A与530-B之间由P2P串行数据路线形成的专用总线580应当与PCI-E 电兼容,但可使用PCI-E协议或其它协议,例如所有者协议(proprietary protocol)。由专 用总线运载的流量的说明性实例包含同步数据、像素数据和消息数据。其它实例包含用 于纹理过滤的交叉位块传送(cross-blit)流量。此外,由于专用总线可用于在图形卡之 间发送专门流量,因而可基于经由专用总线发送的数据的类型来选择数据压縮技术。参看图6,在一个实施例中,可包含切换卡570以在连接器510和515的连接器插 脚之间路由一些或所有信号。在此实施例中,芯片540的相应PCI-E插脚也连线到切换 卡570。接着,切换卡570执行路由功能,以帮助针对SLI模式形成总线580、 590和595。 然而,切换卡570会增加额外的费用。因此,图6的实施例的成本可能会高于许多应用 所需要的成本。图7说明包含定制母板700的实施例。定制母板700包含专用总线580电耦合连接 器510和515的P2P插脚(未图示)的电互连件(以虚线说明)。定制母板700还包含用 以电耦合连接器510和515的相应插脚(未图示)与芯片540的插脚(未图示)以形成 总线590和595的电互连件(以虚线说明)。用于将电互连件图案化到母板上的技术在电 子封装技术中是众所周知的。然而,用以形成总线580、 5卯和595的电互连件优选地制 造成与PCI-E的高数据速率兼容。形成在母板中的用于每一总线580、 590和595的电互 连件可(例如)包含以与PCI-E中使用的低电压差分信令兼容的方式图案化到母板700 上的硬连线高速单工连接件。因此,举例来说,如果子总线(例如专用总线580)具有8 个串行数据路线,那么母板可具有高速互连件以支持所述8个串行数据路线的8个双单 工连接。因此,图7的实施例需要定制母板,但免除了切换卡的成本。图8是更详细说明图形系统800的功能组件的方框图。所述系统包含在CPU 550上 运行的软件,例如BIOS 805和驱动程序820。个别GPU (例如GPU 502-A)优选地经设 计为具有默认模式,其中其在一些应用中充当单独GPU,但也可针对多图形卡SLI结构 经配置以与其它图形卡一起使用。使用配置过程来针对SLI配置两个GPU 502-A和 502-B。在SLI模式中,驱动程序820为GPU 502-A和502-B两者产生命令,以渲染不 同的帧部分(例如,SFR)。每一 GPU 502-A和502-B还可具有在设置过程期间配置的 SLI模式信息840。在一个实施例中,每一 GPU 502-A和502-B的PCI-E模式也在设置操作期间配置。 每一GPU502包含PCI-E物理接口 850,其包含发射器和接收器对801以支持串行数据
路线;PCI-E控制器860;总线模式控制模块865;和逻辑通道模块870。在PCI Express 规定中,组件之间的每一点到点链路可具有1、 2、 4、 8、 12、 16或32个双单工2.5 Gbps 路线。PCIExpress调用8位/10位数据编码以建立2差分对、2.5 Gbps (2.0Gbps有效速 率)双单工数据流,其中每一数据路线具有一嵌入时钟。PCI Express规定的默认内容指 定将链路宽度处理成总线两侧所支持的最大链路宽度。链路状态机执行由PCI Express规 定所指定的链路调训与状况状态机(LTSSM)的状态。在图8的实施例中,每一渲染模式还具有相关联的总线接口模式,这取决于用于渲 染帧的图形卡的数目和为不同图形卡指派帧数据渲染的方式。举例来说,模式控制模块 865可通过在BIOS配置步骤中进行寄存器写入来配置。逻辑通道模块870可根据操作模 式而将可用串行数据路线以逻辑方式分割成一个或两个通道。逻辑通道模块870具有第 一模式,其中将物理接口 850的所有串行数据路线视为常规PCI-E总线的一部分。逻辑 通道模块具有第二操作模式,其中PCI-E物理接口 850的串行数据路线以逻辑方式分割 成包含第一子组串行数据路线的第一总线通道和具有第二子组串行数据路线的第二总线 通道。因此,所支持的这两种不同模式允许将图形卡用作单个卡(所有串行数据路线用 作一个PCI-E总线)或针对具有一子组所述串行数据路线的SLI而用作专用GPU到GPU 总线。请注意,可将模式控制模块865和逻辑通道模块870的功能性集成到PCI-E控制 器860中。物理接口 850的逻辑分割可利用相同总线协议(例如,PCI-E)或不同协议。举例来 说,所述通道中的一者可使用PCI-E,而另一者可使用所有者协议。举例来说,每一通 道可具有其自己的状态机,以用于使用针对所述通道选定的协议来配置链路。图形系统800需要考虑到使用SLI时沿着不同数据通路的数据等待时间的差别。请 注意,图形系统800具有若干不同的数据通路。这些通路包含专用总线892以及个别GPU 与芯片540之间的总线894和896。因此,视实施方案的细节而定, 一些GPU到GPU流 量可直接在专用总线892上发送,而其它GPU到GPU流量可经由总线894和896通过 芯片540来发送。此外,视实施方案的细节而定,其它类型的流量可采用不同的途经, 这取决于是否使用专用总线892。图形系统800中的某些类型的流量可使用语义次序。也就是说,特定类型的数据流 量可能需要维持流量的关键次序(相对于其它事件和/或流量),以便能够对数据进行正 确地解译。如先前描述,在SLI结构中,CPU 550向GPU 502-A和502-B发布命令流, 以在GPU 502-A与502-B之间划分工作。此外,对于特定类型的图形操作, 一个GPU 502-A
可能必须将数据传送到另一GPU 502-B以进行额外处理。结果,某些类型的流量可能需 要维持语义次序。在某些情形下存在这种可能性由于使用SLI时不同数据路径的传播 时间存在差别,因而由一个GPU 502经由专用总线892接收的某些类型的流量可能会以 与理想语义次序略微不同的次序到达。优选地提供重新排序模块885,以提供任何必要 的重新排序,从而无论流量采用哪条通路均确保流量的正确语义排序。举例来说,重新 排序模块885可包含先进先出(FIFO)缓冲器和重新排序逻辑以便将流量重新排序成正 确的语义次序。或者,在一个实施例中,每一GPU502-A和502-B均经配置以用经选择 以避免经由严重依赖于语义次序的专用总线892发送流量的方式来引导流量。如先前描述,本发明的一个优点在于,可针对GPU到GPU通信使用专用总线。发 明者的研究显示,在典型的SLI结构中存在大量GPU到GPU流量。在SLI的常规低成 本实施方案中,通常通过芯片组来路由这种GPU到GPU流量。相反,本发明的一个实 施例利用串行数据路线,通常不使用串行数据路线来形成专用总线。对于存在大量GPU 到GPU流量的SLI系统,专用总线允许以低成本解决方案来实现比得上较昂贵的解决方 案的性能。此外,如先前描述,在一个实施例中,用无需切换卡170和外部SLI连接器 180的方式构建专用总线,这样可能会节省成本。预期可在多种不同SLI结构中利用本发明。将了解,本发明的实施例还包含具有四 个GPU的四重SLI系统。如图9和10说明,对于高性能四重SLI系统,可使用较复杂 的芯片组来支持四个GPU,其中多个具有两个GPU的对具有专用总线(如先前描述)。 举例来说,在图9的方框图中,芯片组具有CPU 550、中间芯片905和到达两个芯片920 的输出端(fanout),其中每个输出端具有xl6PCI-E接口。支持四个GPU 930,其中系 统支持每对GPU之间的x8专用总线950。图IO说明芯片1020具有x32PCI-E接口使得 其可支持四个具有x8 PCI-E总线的GPU 930的结构。在某些应用中,需要提供用不同数目的图形卡来配置图形系统且同时充分利用到达 芯片组的可用PCI-E带宽的选项。举例来说,再次参看图7的图形系统,图中说明两个 图形卡530-A和530-B。然而,可能需要提供这样的选项以其中仅利用单个图形卡530-A 且PCI-E接口 545的全部PCI-E总线带宽均可供图形卡530-A使用的配置来利用定制母 板700。图11说明仅具有单个图形卡530-A的定制母板700。在图ll的实例中,在连接 器515中安装了印刷电路板(PCB) 1105。 PCB 1110包含桥接器部分1110,其具有将Cl 数据路线与各自P2P数据路线桥接的互连。因此,C1和C2数据路线两者均可用于支持 芯片540与图形卡530-A之间的流量,使得图形卡530-A可利用PCI-E总线的全部带宽。在一个实施例中,图形系统支持具有不同数目的图形卡的SLI操作,例如具有两个 图形卡或四个图形卡的SLI操作。图12说明图9的系统的实施方案,其中每对中的GPU 930中的一者由PCB 1105替换。因此,图12的实施方案中的每一个别GPU 930具有全 部PCI-Exl6带宽。因此,将图9与图12进行比较,可使用同一系统来支持两个图形卡 (图12)或四个图形卡(图9)。类似地,如图13中所说明,也可在将每对中的GPU930 中的一者由PCB 1105替换的情况下构建图10的系统。尽管PCI-E是图形产业中的通用总线,但将了解,本发明可应用于可以逻辑方式分 割一组串行数据路线的其它类型的总线。此外,将了解,本发明可应用于图形卡之外的 实体之间的专用总线,例如为图形卡之外的其它类型的卡提供卡到卡链路的专用总线。尽管已针对GPU描述了多个实例,但更一般而言,将了解本发明也可应用于通用 GPU (GPGPU)。本发明的实施例涉及一种具有计算机可读媒体的计算机存储产品,所述计算机可读 媒体上面具有用于执行各种计算机实施操作的计算机代码。所述媒体和计算机代码可为 针对本发明用途特别设计和构造的媒体和计算机代码,或者其可为计算机软件领域的技术人员熟知的且可用的类型。计算机可读媒体的实例包含但不限于磁性媒体,例如硬 盘、软盘和磁带;光学媒体,例如CD-ROM和全息装置;磁光媒体,例如可光读软盘; 和经特别配置以存储和执行程序代码的硬件装置,例如专用集成电路("ASIC")、可编 程逻辑装置("PLD")和ROM及RAM装置。计算机代码的实例包含例如由编译器产生 的机器代码和含有由计算机使用解译器执行的高级代码的文件。举例来说,本发明的一 实施例可使用Java、 。++或其它面向对象的编程语言和开发工具来实施。本发明的另一 实施例可以硬连线电路代替或结合机器可执行软件指令来实施。出于阐释目的,以上描述内容使用了特定术语以提供对本发明的透彻了解。然而,所属领域的技术人员将易于了解,要实践本发明并不需要特定细节。因此,对本发明特 定实施例的以上描述是为了说明和描述目的而提出的。并不希望它们是完全的或者将本 发明局限于所揭示的精确形式;显然,鉴于以上教示,可能存在许多修改和更改。之所 以选择和描述所述实施例是为了最清楚地解释本发明的原理及其实践应用,因此所述实 施例使得所属领域的技术人员能够以适合于所预期的特定用途的各种修改来最充分地利 用本发明和各种实施例。希望所附权利要求书及其均等物界定本发明的范围。
权利要求
1.一种用以在计算系统中提供卡到卡通信的设备,其包括总线接口控制器,其用以管理一组串行数据路线;所述总线接口控制器具有将第一子组所述串行数据路线作为一个总线进行管理且将第二子组所述串行数据路线作为专用总线进行管理的操作模式。
2. 根据权利要求l所述的设备,其中所述总线接口控制器具有第二操作模式,其中所 述组串行数据路线作为外围组件接口 Express (PCI-E)总线进行操作。
3. 根据权利要求1所述的设备,其中所述总线接口控制器以逻辑方式将所述组串行数 据路线分割成两个通道。
4. 根据权利要求2所述的设备,其中总线接口控制器经编程以选择所述第一操作模式 和所述第二操作模式中的一者作为操作模式。
5. 根据权利要求4所述的设备,其中所述总线接口控制器读取寄存器以选择所述操作 模式。
6. 根据权利要求2所述的设备,其中存在16个串行数据路线,所述第一模式对应于 具有16个串行数据路线的x16 PCI-E总线,且所述第二模式对应于具有8个串行数 据路线的第一总线和具有8个串行数据路线的第二总线。
7. 根据权利要求l所述的设备,其进一步包含重新排序模块以将经由所述专用总线接 收的数据重新排序为语义次序。
8. 根据权利要求l所述的设备,其中所述一个总线是去往芯片组的PCI-E总线。
全文摘要
本发明提供一种总线接口控制器,其管理一组串行数据路线。所述总线接口控制器支持将一子组所述串行数据路线作为专用总线进行操作。
文档编号G06F13/38GK101149719SQ20071010674
公开日2008年3月26日 申请日期2007年6月15日 优先权日2006年6月15日
发明者拉多斯拉夫·丹尼拉克 申请人:辉达公司