用于主机设备接口的非对称数据通信

文档序号:440911 发布日期:2021-12-24 浏览:29次 >En<

阅读说明:本技术 用于主机设备接口的非对称数据通信 (Asymmetric data communication for host device interface ) 是由 尼尚特·帕蒂尔 程立群 于 2019-11-15 设计创作,主要内容包括:公开了用于在系统的主机-设备接口处执行非对称数据通信的方法、系统和装置,包括在计算机存储介质上编码的计算机程序。该方法包括识别耦合至该系统的主机的设备,并且系统拓扑,该系统拓扑生成识别该设备的连接性并且识别使得能够在该系统处进行数据传输的总线通道。该主机确定该主机和多个设备中的第一设备之间的连接具有非对称带宽要求。该主机配置连接该第一设备和该主机的数据总线的总线通道集合以为来自该主机的数据外出分配与去往该主机的数据进入不同数目的总线通道。该总线通道被配置为基于该第一连接的非对称带宽要求而分配数目不同的总线通道。(Methods, systems, and apparatus, including computer programs encoded on computer storage media, for performing asymmetric data communications at a host-device interface of a system are disclosed. The method includes identifying a device coupled to a host of the system, and a system topology that generates a bus channel that identifies connectivity of the device and that enables data transfer at the system. The host determines that a connection between the host and a first device of the plurality of devices has asymmetric bandwidth requirements. The host configures a set of bus channels connecting the first device and a data bus of the host to allocate a different number of bus channels for data egress from the host than for data ingress to the host. The bus lanes are configured to allocate a different number of bus lanes based on asymmetric bandwidth requirements of the first connection.)

用于主机设备接口的非对称数据通信

相关申请的交叉引用

本申请依据35USC§119(e)要求于2019年05月21日提交的美国专利申请序列号No.62/851,052的优先权。美国专利申请序列号No.62/851,052的全部内容通过引用全文结合于此。

背景技术

本申请一般涉及用于系统的诸如主机设备接口的各种组件接口的非对称数据通信。

诸如机器学习加速器、存储组件、视频转码加速器或神经网络处理器之类的设备通常具有非对称带宽要求。在一些情况下,当这些设备连接至系统的诸如主机的组件时,该带宽的非对称性对应于在该系统的主机-这边接口处以特定方向交换的数据量的不平衡。

例如,机器学习加速器的进入(ingress)数据带宽会比该加速器的外出(egress)数据带宽多十倍。机器学习加速器的进入数据带宽可以与主机向该加速器传送大量数据以便在该加速器处执行加速推导计算的时候相对应,而该加速器的外出数据带宽则可以与该加速器向该主机传送少量数据以指示该推导计算的结果的时候相对应。

发明内容

在系统处的数据带宽要求的非对称性经常并未在该系统互连插口、组件接口或者硬件连接的配置中有所反映。例如,诸如外围组件互连高速(PCI-e)标准的当前互连标准为主机至设备通信分配相同数目的数据总线通道,就像其为设备至主机通信所做的那样。在主机-设备接口处以任一方向传输的数据量之间存在非对称性时,组件接口处的对称总线通道分配导致低效现象。

因此,本文描述了用于实施在系统的相应互连位置动态配置非对称链路的软件控制回路的技术。该技术包括识别至少耦合至该系统的主机的相应硬件设备。该主机能够进行操作以生成识别相应设备的连接性的系统拓扑。与设备的连接性相关联的信息被用来确定该设备的硬件配置,包括该设备的非对称数据传输能力。该系统拓扑还识别该系统的总线通道以及每个设备的非对称链路。该软件回路参考每个设备的连接性和该系统拓扑以配置该系统处的双向数据传输的非对称性。

本说明书中所描述主题的一个方面可以以一种方法来体现,所述方法包括识别耦合至系统的主机的多个设备,并且生成识别该多个设备的连接性以及识别使得能够在该系统处进行数据传输的总线通道的系统拓扑。该方法还包括确定该主机和该多个设备中的第一设备之间的第一连接具有非对称带宽要求。该方法进一步包括基于该第一连接的非对称带宽要求配置连接该第一设备和该主机的第一数据总线的第一总线通道集合,以在该第一总线通道集合中为来自该主机的数据外出分配与去往该主机的数据进入不同数目的总线通道。可选地,该总线通道被配置为基于该第一连接的非对称带宽要求而分配数目不同的总线通道。

这些和其它实现方式均可以可选地包括以下的一个或多个特征。例如,在一些实现方式中,该方法进一步包括:确定该主机和该多个设备中的第二设备之间的第二连接具有非对称带宽要求;并且基于该第二连接的非对称带宽要求配置连接该第二设备和该主机的第二数据总线的第二总线通道集合,以在该第二总线通道集合中为来自该主机的数据外出分配与去往该主机的数据进入不同数目的总线通道。

该方法可以进一步包括:使用该系统拓扑确定该系统处的数据传输模式;基于该数据传输模式计算该第一连接的非对称带宽要求;并且基于该数据传输模式计算该第二连接的非对称带宽要求。

该方法可以进一步包括:向软件代理提供描述该系统处的数据业务的信息;使用该软件代理基于对该信息的统计分析或者对该信息的推导分析来确定该系统处的数据传输模式;使用该软件代理生成指示用于处理该系统处的一个或多个工作负载的数据业务的分布的预测;并且基于指示该第一连接处的非对称数据业务的预测计算该第一连接的非对称带宽要求。

该方法可以进一步包括基于指示该第二连接处的非对称数据业务的预测计算该第二连接的非对称带宽要求。

在一些实现方式中,该第一总线通道集合中的每个总线通道被动态配置为数据进入通道或数据外出通道;并且该第二总线通道集合中的每个总线通道被动态配置为数据进入通道或数据外出通道。

该方法可以进一步包括:使用该第一总线通道集合中被分配给来自该主机的数据外出的总线通道以及该第一总线通道集合中被分配给去往该主机的数据进入的总线通道在该主机和该第一设备之间交换数据。

在一些实现方式中,该第一连接的非对称带宽要求包括进入总线通道相对于外出总线通道的M:N比率;并且M具有大于N的整数值的整数值。

在一些实现方式中,该第二连接的非对称带宽要求包括外出总线通道相对于进入总线通道的N:M比率;并且N具有大于M的整数值的整数值。

在一些实现方式中,该系统包括处理器和加速器,并且该方法进一步包括:将该处理器配置为该主机;将该加速器识别为该第一设备;并且确定该加速器被配置为具有包括被配置用于经由该第一连接与该主机的双向数据传输的总线通道的连接性。

在一些实现方式中,该系统包括存储器,并且该方法进一步包括:将该存储器识别为该第二设备;并且确定该存储器被配置为具有包括被配置用于经由该第二连接与该主机的双向数据传输的总线通道的连接性。

此方面和其它方面的其它实现方式包括在非瞬态计算机可读存储设备上编码的被配置为执行该方法的动作的相对应的系统、装置以及计算机程序。可以通过安装在操作以使得系统执行动作的系统上的软件、固件、硬件或它们的组合来配置一个或多个计算机的系统。一个或多个计算机程序可以通过具有在由数据处理装置执行时使该装置执行动作的指令来如此配置

本说明书中所描述的主题可以以特定实施例来实施从而实现以下的一种或多种优势。本文中所描述的技术可以被用来在系统的设备之间的数据总线连接中实现总线通道的非对称配置。该非对称配置基于系统主机使用从对该系统的数据业务模式进行分析所学习的推导或预测所生成的非对称带宽要求。该业务模式的预测分析可以产生准确反映该系统的组件接口处的业务流的非对称带宽要求。

通过使用这些技术,该软件控制回路可以基于在系统处观察到的业务流模式而更有效地分配给定总线通道集合的数据传输能力,从而反映实际的非对称使用。因此,由于该系统可以更加准确地确定往来业务的相对量级,所以该系统可以被设计为包括更少的用于提供非对称数据链路的总线通道。该系统还可以调节贯穿该系统的某些总线通道的非对称配置以实线更大的数据通信效率。

本说明书中所描述主题的一种或多种实现方式的细节在附图和以下的描述中给出。该主题的其它潜在的特征、方面和优势将由于该描述、附图和权利要求而变得显而易见。

附图说明

图1是用于执行非对称数据通信的示例系统的框图。

图2示出了用于使用图1的系统执行非对称数据通信的示例过程。

图3示出了被用来执行非对称数据通信的系统的设备的列表。

图4示出了包括与图1的系统处的数据业务相关的信息的示例图表。

图5示出了具有非对称双向带宽能力的示例硬件连接。

各图中同样的附图标记和指代指示同样的元件。

具体实施方式

图1是用于执行非对称数据通信的示例硬件计算系统100的框图。系统100总体上包括第一处理器102、第二处理器104、第一设备106和第二设备108。处理器102或处理器104中的每一个可以被配置为系统主机(“主机”),其包括用于在系统100处耦合或互连各种硬件设备的主机接口。例如,系统100可以包括一个或多个专用硬件电路,它们中的每一个包括多个用于与设备106和108建立连接的互连位置,诸如互连插口或卡插槽。

处理器102和104是至少形成硬件电路中用于执行该系统的软件例程或控制功能的部分的中央处理单元(CPU)或图形处理单元(GPU)。系统100的主机可以由单个处理器、多个处理器或者多个不同类型的处理器所表示,例如CPU、GPU或专用处理器,诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。因此,虽然图1中示出了两个处理器,但是系统100可以包括多个处理器或专用组件。

在一个实现方式中,处理器102被配置为主机的主处理器,而处理器104则被配置为主机的副处理器。在另一个实现方式中,处理器102和104都被配置为主机的协同主处理器。该主机可以是执行用于管理系统100处的数据处理操作、数据业务、非对称数据流和不同带宽要求的软件回路130(下文描述)的域或软件程序。在一些情况下,该主机是在系统100的一个或多个处理器上运行的示例操作系统(OS)。进一步地,在下文描述的一些示例中,处理器102可以被称作主机102以指示处理器102在其中被配置为主机或者主机的主处理器/协同主处理器的实例。

设备106和第二设备108中的每一个可以是在系统100的各个互连位置处与系统100的一个或多个组件交互的相应硬件设备(例如,外围设备)。这些互连位置可以对应于系统100的组件接口。在一些示例中,经由系统100的组件接口所进行的与硬件或外围设备的交互可以参考在该设备上运行的诸如应用、脚本或程序的软件进行描述。

系统100包括定义处理器102(例如,主机或主机102)和设备106之间的连接的组件接口110。类似地,系统100包括定义处理器104和设备108之间的连接的另一个组件接口112。在一些实现方式中,设备106和108是示例的外围设备,它们各自唯一地被配置为包括诸如双向总线通道或通信信道的双向数据链路(下文描述),所述双向数据链路使得能够在系统100处进行各种类型的对称和非对称数据传输。

系统100可以包括定义处理器102和处理器104之间的连接的另一个组件接口114。在一些实现方式中,处理器102是主机处理器并且处理器104是主机102所使用的协同处理器。系统100还可以包括另一个组件接口116,其定义处理器102和主机所使用的第一类型的存储器118之间的连接。系统100还可以包括另一个组件接口120,其定义处理器102和同样由主机所使用的第二不同类型的存储器122之间的连接。系统100还可以包括另一个组件接口124,其定义处理器104和处理器104所使用的存储器126之间的连接。

存储器118、122和126中的每一个可以是不同类型的存储器、相同类型的存储器、不同类型的存储器的组合,或者是相同存储器结构的一部分。例如,存储器118、122和126中的每一个可以是动态/静态随机存取存储器(DRAM/SRAM)、非易失性存储器(NVM)、电可擦除可编程只读存储器(EEPROM)、只读存储器(ROM)、闪存,或者其它已知类型的计算机可读存储介质。在一些实现方式中,存储器118和存储器126可以是相同类型的存储器,或者可以是相同存储器结构的子分段。

总体上,系统100可以包括多个组件接口,并且每个组件接口被配置为允许数据业务在该接口处在组件之间对称或非对称地流动。在一些示例中,组件接口是能够接纳卡以便在系统100处互连或增加内部组件的插口或卡插槽。例如,第一组件接口110可以接收PCIe 4.0卡以便在诸如处理器102的主机和诸如设备106的GPU硬件加速器之间建立非对称连接。

第二组件接口112可以接纳示例网卡以便在诸如处理器104的副主机处理器和诸如设备108的联网硬件设备之间建立非对称连接。在可选实现方式中,组件接口112(或110)可以接纳NVLink桥接卡以便在诸如处理器104的第一GPU硬件加速器和诸如设备108的第二GPU硬件加速器之间建立非对称连接。

当处理器102被配置为主机时,接口110可以表示与数据业务在那里在主机102和设备106之间非对称流动的互连位置或连接点相对应的主机-设备接口。同样地,当系统100将处理器104配置为副主机处理器或协同主要主机处理器时,接口112可以表示与数据业务同样在那里在主机102和设备108之间非对称流动的另一个互连位置或连接点相对应的附加主机-设备接口。

系统100包括一个或多个数据总线。该数据总线提供用于在系统100的各个组件之间路由数据的各种互连的数据通信路径。系统100的每个组件接口可以与数据总线相关联,并且每个数据总线包括多个总线通道。每个数据总线可以具有总线通道集合,其与提供用于在该系统内输送数据的介质的线路集合相对应。形成数据总线的总线通道集合中的单个总线通道可以各自被配置为系统100处的双向链路。每个组件接口包括与系统100的特定数据总线相关联的总线通道集合。例如,组件接口110和112的总线通道可以各自与系统100的数据总线_1相关联,而组件接口114的总线通道则可以各自与系统100的数据总线_2相关联。

为了配置组件接口处的总线通道的方向性,系统100可以获得硬件定义文件,其定义了在该接口处耦合的一个或多个设备的连接性。该硬件定义文件描述或识别了诸如设备106或108的示例外围设备的各种对称或非对称数据链接能力。例如,该硬件定义文件可以指示外围设备中的总线链路或互连点是否被配置用于双向数据传输。在一些实现方式中,外围设备的互连点与组件接口处所包括的总线通道进行交互以支持非对称数据传输。例如,使用软件回路130,外围设备可以被配置为利用组件接口处的每个总线通道的相对应双向能力来执行非对称数据传输。

在一些情况下,系统100向在组件接口110处耦合到主机102的例如神经网络处理器的外围设备106传送ping分组。响应于接收到该ping分组,该外围设备可以向主机传送硬件定义文件以便在该主机处进行分析。在一些实现方式中,该硬件定义文件只是对称和非对称能力,诸如该设备处相对应的总线链路的数目、被配置用于双向数据传输的每个总线链路、该外围设备处的每个链路或互连点所支持的最大数据带宽、每个链路的最大数据传输速率或者每个链路所支持的最大频率。

图2示出了用于执行非对称数据通信的示例过程200。过程200可以使用上文所描述的系统100来实施或执行。因此,过程200的描述可以引用上文提到的系统100的计算资源以及本文中所描述的其它组件。总体上,过程200的描述中所包括的计算步骤或过程流可以被分组或布置为以不同顺序发生而并不局限于本文所描述的数字次序。

现在参考过程200,系统100被配置为识别至少耦合至该系统的主机的多个设备(202)。在一些实现方式中,主机管理软件控制回路130,其被配置为监视用于与设备106和108中的一个或多个建立连接的每个互连位置。该系统的互连位置可以由集成在该系统的专用硬件电路处的插口或卡插槽所表示。系统100可以引用针对每个互连位置的标识符的编号列表。每个互连位置可以对应于用于在系统100的组件之间建立数据连接的组件接口,上述组件例如主机的处理器102和硬件加速器设备106。

该软件回路能够进行操作以基于接口的位置标识符来监视组件接口处的每个连接点。例如,系统100使用软件控制回路130监视每个组件接口处的连接活动以识别或确定外围设备何时耦合至主机或者该系统处的另一个组件。该软件控制回路可以分析标识符的编号列表以及每个标识符的相对应位置来确定在该系统处建立数据连接的外围设备的互连位置。使用软件回路130,系统100能够进行操作以确定耦合至主机102的加速器设备106的第一互连位置以及确定耦合至主机的外围设备108的第二位置。

系统100生成系统拓扑,其识别出:i)多个设备的连接性以及ii)使得能够在系统处进行数据传输的总线通道(204)。主机102可以使用示例BIOS或Linux命令行来生成或执行诸如“lspci”命令的命令,以识别耦合至系统100的连接点或组件接口的每个外围设备106、108的位置。在一些实现方式中,主机102生成命令,所述命令由操作系统加以处理以显示与系统中的所有数据总线和设备相关的信息的详细列表。例如,该列表可以基于表示在主机102的处理器上运行的操作系统的互连配置空间的通用便携式互连库(例如,libpci)。该互连配置空间在下文参考图3更详细地描述。

如上文所讨论的,系统100可以生成被提供至例如神经网络处理器的外围设备106的ping分组。设备106随后可以响应于接收到该ping分组而将硬件定义文件传送至主机102以便在主机处进行分析。在一些实现方式中,该硬件定义文件被用来植入互连库中描述该操作系统所维护的互连配置空间的设备配置的信息。

该设备配置指示在系统100处包括的总线和外围设备的对称和非对称能力。与该配置空间相关联的数据和其它信息被用来生成系统拓扑。在一些示例中,该系统拓扑识别系统100处具有非对称数据传输能力的每个设备的连接性,包括该设备各自的位置标识符。在其它示例中,该系统拓扑还识别使得能够在该系统处进行非对称双向数据传输的各个数据总线以及每个数据总线相对应的总线通道。

系统100确定至少该主机和该多个设备中的第一设备之间的第一连接具有非对称带宽要求(206)。例如,系统100的设备之间的连接可以具有基于通过分析系统100处的数据处理操作所生成的预测或推导的特定非对称带宽要求。在一些实现方式中,该软件回路能够进行操作以至少基于接口的位置标识符来监视每个组件接口处的数据业务。

系统100可以使用软件控制回路130或系统拓扑来监视每个组件接口处的数据业务从而识别或确定该系统处的传输模式。例如,系统主机与软件控制回路130和软件代理进行交互以使用该系统拓扑针对给定数据业务集合确定数据传输模式。该系统主机将描述在系统100处所观察到的数据业务的信息提供至软件控制回路130管理的软件代理。在一些实现方式中,该软件代理由包括诸如机器学习引擎或统计分析引擎的经训练的机器学习模型的数据处理模块所表示。该数据处理模块被配置为分析描述系统100处的数据业务的信息。

例如,表示软件代理的数据处理模块可以包括在GPU或专用神经网络处理器上实施的人工神经网络,诸如深度神经网络或卷积神经网络。该数据处理模块的神经网络可以被训练以生成能够进行操作以执行推导计算的软件代理的版本,所述推导计算产生用于预测系统100的组件接口处的非对称要求的数据模式。例如,用于训练软件代理的计算可以包括通过神经网络的层处理来自训练数据的输入以配置设置权重从而推导或预测该数据模式所指示的观察数据流中的非对称性。在一些实现方式中,该软件代理基于示例的支持向量机,其使用回归算法来执行统计分析以便预测一个或多个数据流模式所指示的观察数据流中的非对称性。

在该数据处理模块处被处理的信息可以包括整体数据带宽、数据速率、数据大小,以及在该系统的每个连接处以外出或进入方向传输的数据的量,以及在该连接处针对其传输数据的计算工作负载的特定类型。系统100使用该软件代理基于该信息的预测或统计分析来确定该系统处的数据传输模式。在一些情况下,该传输模式从使用示例模式挖掘算法处理该信息的机器学习引擎所获得。该机器学习引擎基于从该信息所计算的推导而得出或预测传输模式。在一些实现方式中,该软件代理被用来生成指示在某些类型的数据分析工作负载在系统100处被处理时所发生的数据业务的分布的预测。

在一些实现方式中,软件控制回路130使得经训练的软件代理(或机器学习模型)监视并分析系统100的一个或多个组件接口处的数据业务。例如,该软件代理分析组件接口110处针对给定工作负载所观察的数据业务从而确定主机102和外围设备106之间的各种业务流模式。该工作负载可以是示例的分类和图像识别任务,并且外围设备106可以表示用来加速用于该图像识别任务的计算的GPU硬件加速器。

主机102经由组件接口112从外围设备108所表示的联网硬件存储设备获得图像数据的大的集合。主机102使用组件接口110处的进入总线通道集合来将该图像数据的大的集合提供至GPU硬件加速器(设备106)。同样地,设备106使用组件接口110处的外出总线通道集合以提供其计算的输出,诸如描述多个图像中所识别的对象的文本文件。针对该特定的图像识别工作负载,该软件代理分析与向硬件加速器提供图像数据的主机的进入总线通道的使用相关联的业务流模式。同样地,该软件代理还分析与向主机提供识别输出的加速器的外出总线通道的使用相关联的业务流模式。

在一些示例中,该软件代理分析描述连接的数据带宽、数据速率、数据大小以及在每个总线通道或数据链路处以外出或进入方向传输的数据的相对数量的输入。针对某些图像识别工作负载,该软件代理推导或预测经由进入总线通道所提供的图像数据集合要求范围从250千兆字节(GB)到300GB的信号带宽,而经由外出总线通道提供的输出文本文件则要求范围从100兆字节(MB)到25GB的信号带宽。在一些实现方式中,系统100针对组件接口100处的每个进入总线通道(2x)具有100GB的示例最大信令技术带宽,针对组件接口100处的每个外出总线通道(2x)具有100GB的示例最大信令技术带宽。因此,这四个总线通道可以具有总共400GB的总信令带宽。

系统100使用软件控制回路130来获得有关数据业务模式的预测,所述数据业务模式包括数据传输速率、进入带宽要求、外出带宽要求,以及针对给定工作负载经由某些接口路由的数据的相对大小。特别地,该控制回路使用该软件代理以计算组件接口110处的连接的非对称带宽要求。基于所计算的带宽要求,该软件代理能够进行操作以输出能够最有效地应对预测数据业务模式的进入与外出总线通道的预测比率。例如,组件接口110的非对称带宽要求可以包括进入总线通道相对于外出总线通道的3:1比率。该比率使得进入信令带宽能够被动态调节或者被增大以满足范围可以从250GB到300GB的某些图像识别工作负载的示例要求。

在并不实施所描述技术的其它系统中,任何一个方向(例如,进入或外出)的最大信令带宽都被限制为该系统的组件接口处的对称信令带宽或者静态数据链路配置。例如,参考上文提到的信令带宽,即使经由进入路径的实际数据流大幅超过200GB,这些其它系统中的进入带宽也将基于它们的对称数据链路而被限制为200GB。

与这些其它系统相比,系统100基于指示连接处的非对称数据业务的预测计算该连接的非对称带宽要求。例如,该系统基于示出接口110处的不同类型的非对称数据业务的数据传输模式而计算对应于组件接口110的第一连接的非对称带宽要求。类似地,该系统可以基于示出接口112处的不同类型的非对称数据业务的数据传输模式而计算对应于组件接口112的第二连接的非对称带宽要求。

再次参考图1,系统100可以具有至少包括组件接口110和112的双插口(2S)配置。在该配置中,硬件加速器106被耦合或连接至一个插口(接口110),并且联网设备108被连接至其它插口(接口112)。如图1中所指示的,示例软件回路130能够进行操作以管理和控制涉及在系统100的各个数据路径、设备和组件接口处的对称和非对称数据传输的操作。

例如,至少一个数据路径从联网设备108经接口112(例如,网卡)延伸至CPU1 104,经接口114延伸至CPU0,以及经接口110延伸至加速器106。在一些示例中,至少对于组件接口110而言,系统主机可以使用软件控制回路130和软件代理来分析数据传输模式并且生成预测,所述预测指示主机-加速器接口110的带宽要求是完全或基本上非对称的。例如,在每个步骤中,加速器106可以被用来从分布式存储系统读取大量数据以使用该数据执行计算。该存储系统可以包括存储器118、122和126,或者这些存储器结构的各种组合。

加速器106可以通过组件接口112从联网设备108读取大量数据,对该数据执行密集计算,并且输出作为该计算的概要或结果的小量的数据。在这些类型的操作中,绝大部分数据是以特定方向跨系统100传输,而基本上较小量的数据是以相反方向跨该系统传输。这种数据传输量的差异指示了用来动态地重新配置总线通道分配的非对称性。

不同于在两个方向具有相同带宽的系统总线配置,所描述的技术可以被采用以对非对称带宽要求加以开发,从而更多总线通道被配置用于其中绝大多数数据跨系统传输的特定方向的传输。利用可用通道带宽的非对称性和动态分配转化为有所改善的带宽分配并且会对系统100处的计算效率有所贡献。

系统100能够进行操作以基于第一连接的非对称带宽要求配置第一数据总线的第一总线通道集合(208)。在一些情况下,该第一连接定义了加速器106和主机102之间的连接。该第一数据总线的第一总线通道集合被配置为在该第一总线通道集合中对来自主机102的数据外出分配与去往主机102的数据进入不同数目的总线通道。例如,相对于主机102,每个总线通道可以被动态配置为用于接收提供至主机102的进入数据的数据进入通道或者用于传送主机102所提供的外出数据的数据外出通道。

图3示出了被用来执行非对称数据通信的系统100的组件的示例列表300。例如,列表300可以对应于与具有系统100的组件接口处的连接的数据总线和设备相关的信息的详细列表。在一些实现方式中,列表300响应于操作系统处理由主机102所生成的命令而在示例命令行处加以显示。该命令可以被处理以识别耦合至系统100的组件接口的每个外围设备(例如,设备106和108)的位置。在一些示例中,列表300表示存储在存储器122中并且由主机102的操作系统所维护的示例互连配置空间。

列表300包括与系统100中诸如设备106或设备108的一个或多个外围设备相关联的组件的第一子集302。列表300还包括可以各自表示系统100的相应外围设备的组件的第二子集304,所述外围设备诸如通用串行总线(USB)控制器、串行ATA(SATA)控制器、音频设备、存储器控制器或信号处理控制器。在一些实现方式中,子集302中的每个组件可以是相应设备,例如加速器设备。该设备可以具有用于存储描述该加速器所执行的数据处理操作的结果的性能数据或信息的寄存器集合。

列表300包括在系统100处耦合的每个外围组件或设备的相应标识符,诸如处理器104、设备106和设备108中的每一个的相应标识符的子集306。子集306可以表示每个互连位置的标识符的枚举的列表的一部分,所述互连位置与数据在那里在系统100的至少两个设备之间非对称流动的组件接口相对应。例如,“00:04.1”可以表示包括主机102和网络设备108之间的连接的组件接口的位置标识符。该连接可以具有特定的非对称带宽要求。主机102使用该非对称带宽要求以配置该接口处的数据总线,从而为从网络设备108到主机102的数据进入分配比从主机102到网络设备108的数据外出更多的总线通道。

图4示出了包括与图1的系统处的数据业务相关的信息的示例图表400。在一些实现方式中,MBx数字值指示针对与特定插口相关联的设备的读操作和写操作的业务分布。在一些示例中,在图4描绘的数据指示与针对一些未来时帧的带宽要求相关的预测的结果,而在其它示例中,在图4描绘的数据指示当前所观察的带宽模式或者先前所观察的带宽模式。总体上,系统100的示例组件接口可以对应于插口402或插口404。插口402和404中的每一个可以具有由具有预定义数目(或数量)的总线通道(诸如20个双向总线通道)的数据总线所支持的数据连接。针对给定组件接口,系统100可以相对于数据进入为数据外出配置或分配不同数目或数量的总线通道。所配置的分配可以至少基于该组件接口的非对称带宽要求。

如上文所描述的,系统100基于指示连接处的非对称数据业务的预测来计算该连接处的非对称带宽要求。例如,插口402和404中的每一个可以包括分别具有特定的非对称带宽要求406和408的数据连接。针对插口402,软件代理直接预测该连接的非对称带宽要求可以包括进入总线通道相对于外出总线通道的M:N比率,其中M具有大于N的整数值的整数值。同样地,针对插口404,软件代理直接预测该连接的非对称带宽要求可以包括外出总线通道相对于进入总线通道的N:M比率,其中N具有大于M的整数值的整数值。

图5示出了具有非对称双向带宽能力的示例硬件连接500。连接500可以是基于特定互连标准的示例硬件连接。该互连标准可以规定支持系统100的组件接口处的非对称数据传输的设备和数据总线的配置偏好。

连接500可以是示例数据总线或者较大数据总线的一部分,其提供用于在系统100的各个组件之间路由数据的互连的数据通信路径。连接500包括能够各自被配置为系统100处的双向数据输送介质的单个总线通道。例如,连接500可以具有20个单个双向总线通道,其包括第一通道子集502(例如,五个通道)和第二通道子集504(例如,十五个通道)。

连接500还可以包括具有用于耦合至第一设备(例如,主机102)的多个连接点或链路的第一互连位置506(A)以及具有用于耦合至第二设备(例如,网络设备108)的多个连接点或链路的第二互连位置508(A)。位置506和508中的每一个可以表示示例组件接口。在一些情况下,位置506和508中的每一个各自表示不同但是相关的组件接口。如上文所描述的,系统100的每个组件接口可以与数据总线相关联并且每个数据总线包括多个总线通道。例如,每个数据总线可以具有与提供用于在该系统处运送数据的介质的线路集合相对应的总线通道集合。

基于所描述的技术,连接500具有包括用于示例组件接口的相对应总线通道的连接点的端点A和B。连接500的总线通道能够被配置为具有例如用于从A到B的数据外出的A→B总线通道的数目,其并不等于例如用于从A到B的数据外出的B→A总线通道的数目。在一些实现方式中,被分配用于以给定方向运送数据的总线通道的数目对应于该给定方向的数据业务的量级,诸如大小。该不相等数目的总线通道表示该数据业务的非对称性,其对应于系统100处的特定连接的非对称带宽要求。

在一些实现方式中,连接500中的总线通道的非对称配置通过将数据总线的一端(连接点,A)处少于一半的收发器重新配置为接收器并且通过将数据总线的另一端(连接点,B)处的相对应的收发器重新配置为发射器而实现。该重新配置可以在每个应用的基础上进行。例如,在GPU应用中,可能有更多数据从主机102去往设备106,而在FPGA应用中,则可能有更多数据从设备106去往主机102。

在一些示例中,该重新配置可以在引导时间、虚拟机迁移时间发生,或者在系统100的其它相关计算会话发生。该重新配置也可以动态地且响应于重新训练连接的一个或多个链路而发生。以这种方式,所描述的技术可以被用来改善数据总线上的双向通信的计算效率,并且因此改善某些应用的性能,而并不要求给定物理通信链路的原始或固定传输速率有任何增加。

该说明书中所描述的主题和功能操作的实施例可以以数字电子电路、以有形方式体现的计算机软件或固件、包括该说明书中所公开的结构及其结构等同形式的计算机硬件来实施,或者以它们中的一种或多种的组合来实施。该说明书中所公开的主题的实施例可以被实施为一个或多个计算机程序,即在有形的非瞬态程序载体上编码以便由数据处理装置执行或者控制数据处理装置的操作的计算机程序指令的一个或多个模块。

可替换地或除此之外,该程序指令可以在人为生成的传播信号上编码,例如机器生成的电气、光学或电磁信号,其被生成以编码信息以便传输至适当的接收器装置以供数据处理装置来执行。计算机存储介质可以是机器可读存储设备、机器可读存储衬底、随机或串行访问存储器设备,或者它们中的一个或多个的组合。

该说明书中所描述的过程和逻辑流程能够由一个或多个可编程计算机来实施,所述可编程计算机执行一个或多个计算机程序以通过对输入数据进行操作并生成(多个)输出来执行功能。该处理和逻辑流程还能够由例如FPGA(现场可编程门阵列)、ASIC(专用集成电路)或GPGPU(通用图形处理单元)的专用逻辑电路所执行,并且装置也能够被实施为所述专用逻辑电路。

适于执行所包括的计算机程序的计算机例如可以基于通用或专用微处理器或者其二者,或者任意其它类型的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或者其二者接收指令和数据。计算机的必要部件为用于实施或执行指令的中央处理器以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大型存储设备,或者与之操作地耦合以从其接收数据或向其传送数据,或两者,上述大型存储设备例如为磁盘、磁性光盘或光盘。然而,计算机并非需要具有这样的设备。

适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,例如包括半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移除盘。处理器和存储器能够由专用逻辑电路具有补充或者被整合在其中。

虽然该说明书包含了许多具体的实现方式细节,但是这些并不应当被理解为是对任何发明或者可以请求保护的范围的限制,而是作为可能对特定发明的特定实施例而言具体的特征的描述。该说明书中以单独实施例为背景所描述的某些特征也能够在单个实施例中组合实施。相反,以单个实施例为背景所描述的各个特征也能够在多个实施例中单独实施或者以任意适当的子组合实施。此外,虽然特征在上文中可以被描述为以某种组合发生作用并且甚至最初如此要求保护,但是来自所请求保护的组合的一个或多个特征在一些情况下能够脱离该组合并且所请求保护的组合可以针对子组合或子组合的变形。

类似地,虽然操作在图中以特定顺序进行描绘,但是这并不应当被理解为为了实现所期望的结果而要求这样的操作以所示出的特定顺序或以连续顺序来执行,或者执行所有所图示的操作。在某些情况下,多任务和并行处理可能是有利的。此外,在上述实施例中所描述的各个系统模块和组件的划分并不应当被理解为在所有的实施例中都要求这样的划分,并且应当理解的是,所描述的程序组件和系统一般能够共同集成在单个软件产品中或者被封装为多个软件产品。

已经对该主题的特定实施例进行了描述。其它实施例处于以下权利要求的范围之内。例如,权利要求中所引用的动作可以以不同顺序执行并且仍然实现所期望的结果。作为一个示例,附图中所描绘的过程并非必然要求所期望的顺序或连续顺序以实现所期望的结果。在某些实现方式中,多任务和并行处理可能是有利的。

21页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:主机通信电路、客户端通信电路、通信系统、声音再现装置和通信方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!