用于管理外围设备的数据协议的制作方法

文档序号:14072956阅读:483来源:国知局

本文中公开的主题涉及外围计算设备,并且更具体地涉及用于管理外围设备的数据协议。



背景技术:

计算设备可以包括使用一个或多个通信总线耦合到计算设备的外围设备。通信总线可以是将外围设备通信地耦合到信息处理设备的通信总线电缆。传统的通信总线架构和协议可能不能够管理使用通信总线电缆耦合到信息处理设备的多个外围设备。



技术实现要素:

公开了一种用于管理外围设备的装置。一种方法和计算机程序产品也执行该装置的功能。该装置包括确定将一个或多个外围设备通信地耦合到信息处理设备的一个或多个通信总线电缆的连接模块。该装置还包括通过一个或多个通信总线电缆中的每个通信总线电缆读取与外围设备相关联的数据分组的数据模块。每个数据分组包括针对外围设备被安装的位置的标识符。

该装置还包括拓扑模块,其基于从与一个或多个外围设备相关联的数据分组中的每个数据分组接收的安装位置标识符,来确定针对一个或多个通信总线电缆和一个或多个外围设备的电缆连接配置。在一个实施例中,拓扑模块将通信总线电缆和外围设备的电缆连接配置提供给基本输入/输出系统(“bios”)。

在另一实施例中,该装置包括响应于所确定的电缆连接配置与预定义的电缆连接配置不匹配来发送通知的通知模块。在一些实施例中,一个或多个外围设备中的每个被安装在底板的驱动器机架中,并且标识符包括驱动器机架的机架标识符和相关联的插槽标识符。在各种实施例中,数据分组包括定义标识符的多个字段。多个字段可以包括针对机架标识符的字段和针对插槽标识符的字段。

在一个实施例中,数据分组还包括一个或多个字段,该一个或多个字段包括描述底板的存储箱体处理器(“sep”)的一个或多个特性的数据。在各种实施例中,该装置包括基于sep的一个或多个特性来动态地修改现场可编程门阵列(“fpga”)的一个或多个性能特性的调节模块。fpga可以使用通信总线电缆通信地耦合到底板的sep和一个或多个外围设备。

在一些实施例中,sep的一个或多个特性包括指示sep是否支持数据奇偶校验的标志、sep的最大时钟速度、针对轮询sep的超时参数、和/或sep支持的外围设备的最大数目。在某些实施例中,该装置包括验证模块,其使用可以被包括在数据分组的校验和字段中的校验和来检查被包括在数据分组的一个或多个字段的数据的完整性。

在一些实施例中,该装置包括转换模块,转换模块从支持虚拟引脚端口(“vpp”)的处理器接收vpp命令。vpp命令可以旨在用于底板上的由安装位置标识符标识的外围设备。在另一实施例中,转换模块将vpp命令写入数据分组中的相应字段,并且使用耦合到sep并且与所旨在的外围设备相关联的通信总线电缆,来将包括vpp命令的数据分组发送到底板上的存储外壳处理器(“sep”)。

在一些实施例中,转换模块将奇偶校验值写入数据分组的奇偶校验字段,奇偶校验值可以由sep使用以验证被写入数据分组的数据的完整性。在另一实施例中,vpp命令包括以下中的一项或多项:外围设备启用命令、外围设备停用命令和/或外围设备活动指示符切换命令。在一些实施例中,通信总线电缆包括外围部件互连高速(“pcie”)电缆。在各种实施例中,外围设备包括非易失性存储器高速(“nvme”)存储设备。

一种方法包括确定将一个或多个外围设备通信地耦合到信息处理设备的一个或多个通信总线电缆。该方法还包括通过一个或多个通信总线电缆中的每个通信总线电缆来读取与外围设备相关联的数据分组。每个数据分组包括针对外围设备被安装的位置的标识符。该方法还包括基于从与一个或多个外围设备相关联的数据分组中的每个数据分组接收到的安装位置标识,来确定针对一个或多个通信总线电缆和一个或多个外围设备的电缆连接配置。

在一个实施例中,该方法包括将通信总线电缆和外围设备的电缆连接配置提供给基本输入/输出系统(“bios”),并且响应于所确定的电缆连接配置与预定义的电缆连接配置不匹配来发送通知。

在一个实施例中,一个或多个外围设备中的每个被安装在底板的驱动器机架中,该标识符包括驱动器机架的机架标识符和相关联的插槽标识符,并且数据分组包括定义标识符的多个字段。多个字段可以包括针对机架标识符的字段和针对插槽标识符的字段。

在某些实施例中,该方法包括基于底板的存储外壳处理器(“sep”)的一个或多个特性来动态地修改现场可编程门阵列(“fpga”)的一个或多个性能特性。fpga可以使用通信总线电缆通信地耦合到底板的sep和一个或多个外围设备。数据分组还可以包括一个多或多个字段,该一个或多个字段包括描述sep的一个或多个特性的数据。

在一些实施例中,该方法还包括从支持虚拟引脚端口(“vpp”)的处理器接收vpp命令。vpp命令可以旨在用于底板上的由安装位置标识符所标识的外围设备。该方法还可以包括将vpp命令写入数据分组中的对应字段,并且使用耦合到sep并且与所旨在的外围设备相关联的通信总线电缆,来将包括vpp命令的数据分组发送到底板上的存储外壳处理器(“sep”)。

一种程序产品包括存储有由处理器可执行的代码的计算机可读存储介质。可执行代码包括用于执行确定将一个或多个外围设备通信地耦合到信息处理设备的一个或多个通信总线电缆的代码。可执行代码包括用于执行通过一个或多个通信总线电缆中的每个通信总线电缆来读取与外围设备相关联的数据分组的代码。每个数据分组包括针对外围设备被安装的位置的标识符。可执行代码包括用于执行基于从与一个或多个外围设备相关联的数据分组中的每个所接收的安装位置标识符来确定针对一个或多个通信总线电缆和一个或多个外围设备的电缆连接配置的代码。

附图说明

将通过参考附图中所示的特定实施例来呈现以上简要描述的实施例的更具体的描述。应当理解,这些附图仅描绘了一些实施例,并且因此不应当被认为是对范围的限制,将通过使用附图以附加的特征和细节来描述和解释实施例,在附图中:

图1a是图示用于使用数据协议来管理外围设备的系统的一个实施例的示意性框图;

图1b是图示用于使用数据协议来管理外围设备的另一系统的一个实施例的示意性框图;

图1c是图示用于使用数据协议来管理外围设备的另一系统的一个实施例的示意性框图;

图2是图示用于使用数据协议来管理外围设备的装置的一个实施例的示意性框图;

图3是图示用于使用数据协议来管理外围设备的另一装置的一个实施例的示意性框图;

图4是图示用于使用数据协议来管理外围设备的方法的一个实施例的示意性流程图;以及

图5是图示用于使用数据协议来管理外围设备的另一方法的一个实施例的示意性流程图。

具体实施方式

如本领域技术人员将理解的,实施例的各方面可以被实施为系统、方法或程序产品。因此,实施例可以采用完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)、或者将在本文中通常可以被称为“电路”、“模块”或“系统”的软件和硬件方面组合在一起的实施例的形式。此外,实施例可以采用在存储机器可读代码、计算机可读代码和/或程序代码(下文中称为代码)的一个或多个计算机可读存储设备中具化的程序产品的形式。存储设备可以是有形的、非暂态的和/或非传输的。存储设备可以不具化信号。在某个实施例中,存储设备仅使用信号用于访问代码。

在本说明书中描述的许多功能单元已经被标注为模块,以便更特别地强调它们的实施独立性。例如,模块可以被实施为硬件电路,包括定制vlsi电路或门阵列、诸如逻辑芯片等的现成半导体、晶体管或其他分立部件。模块还可以在可编程硬件设备(诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件等)中被实施。

模块也可以用代码和/或软件来实施以用于由各种类型的处理器执行。所标识的代码模块可以例如包括可执行代码的一个或多个物理或逻辑块,可执行代码例如可以被组织为对象、过程或函数。然而,所标识的模块的可执行文件不需要物理地位于一起,而是可以包括存储在不同位置的不同的指令,这些指令当被逻辑上组合在一起时包括该模块并且实施模块的所述目的。

实际上,代码模块可以是单个指令或许多指令,并且甚至可以分布在若干不同的代码段上、在不同程序之间、以及跨越若干存储器设备。类似地,操作数据在本文中可以在模块内被标识和说明,并且可以以任何合适的形式来具化并且在任何合适类型的数据结构内被组织。操作数据可以被收集作为单个数据集、或者可以分布在不同的位置上(包括在不同的计算机可读存储设备上)。在模块或模块的部分以软件实施的情况下,软件部分被存储在一个或多个计算机可读存储设备上。

可以使用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读存储介质。计算机可读存储介质可以是存储代码的存储设备。存储设备可以是,例如但不限于,电子、磁性、光学、电磁、红外、全息、微机械或半导体系统、装置或设备、或者前述的任何合适的组合。

存储设备的更具体的示例(非详尽列表)包括:具有一条或多条线缆的电连接、便携式计算机软盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、便携式光盘只读存储器(cd-rom)、光存储设备、磁存储设备、或者以上的任何合适的组合。在本文的上下文中,计算机可读存储介质可以是可以包含或存储用于由指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合使用的程序的任何有形介质。

用于执行实施例的操作的代码可以以一种或多种编程语言的任何组合来编写,包括面向对象的编程语言(诸如python、ruby、java、smalltalk、c++等)和传统的过程编程语言(诸如“c”编程语言等)和/或机器语言(诸如汇编语言)。代码可以完全在用户的计算机上执行、部分地在用户的计算机上执行、作为独立的软件包来执行、部分地在用户的计算机上并且部分地在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(lan)或广域网(wan),或者可以做出到外部计算机的连接(例如,通过互联网使用互联网服务提供商))连接到用户的计算机。

贯穿说明书中对“一个实施例”、“实施例”或类似语言的引用表示结合该实施例描述的特定的特征、结构或特性被包括在至少一个实施例中。因此,贯穿本说明书的短语“在一个实施例中”、“在实施例中”和类似的语言的出现可以但不一定都是指代同一实施例,而是表示“一个或多个但不是全部实施例”,除非另外明确规定。除非另外明确说明,术语“包括(including)”、“包括(comprising)”、“具有(having)”及其变型表示“包括但不限于”。除非另外明确说明,列举的项目清单并不表示任何或全部项目是相互排斥的。除非另外明确说明,术语“一个(a)”、“一个(an)”和“该(the)”也指代“一个或多个”。

此外,所描述的实施例的特征、结构或特征可以以任何合适的方式组合。在下面的描述中,提供了很多具体细节(诸如编程、软件模块、用户选择、网络事务、数据库查询、数据库结构、硬件模块、硬件电路、硬件芯片等的实例)以提供对实施例的透彻理解。然而,相关领域技术人员将认识到,可以在没有一个或多个特定细节的情况下或者与其他方法、部件、材料等一起来实践实施例。在其他情况下,没有详细地示出或描述公知的结构、材料或操作以避免模糊实施例的各方面。

下面参考根据实施例的方法、装置、系统和程序产品的示意性流程图和/或示意性框图来描述实施例的各方面。将理解,示意性流程图和/或示意性框图的每个框、以及示意性流程图和/或示意性框图的框的组合都可以通过代码来实施。这些代码可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器指令,使得经由计算机或其他可编程数据处理装置的处理器执行的指令能够创建用于实施在示意性流程图和/或示意性框图块中规定的功能/动作的装置。

代码还可以存储在可以引导计算机、其他可编程数据处理装置或其他设备以特定方式工作的存储设备中,使得存储在存储设备中的指令能够产生包括实施在示意性流程图和/或示意性框图框中规定的功能/动作的指令的制造品。

代码还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得一系列操作步骤在计算机、其他可编程装置或其他设备上被执行以产生计算机实施的过程,使得在计算机或其他可编程设备上执行的代码提供用于实施在流程图和/或框图框中规定的功能/动作的过程。

附图中的示意性流程图和/或示意性框图示出了根据各种实施例的装置、系统、方法和程序产品的可能实施方式的架构、功能和操作。在这方面,示意性流程图和/或示意性框图中的每个框可以表示代码的模块、分段或部分,其包括用于实施规定的逻辑功能的代码的一个或多个可执行指令。

还应当注意,在一些备选实施方式中,框中指出的功能可以不按照图中所示的顺序来发生。例如,依次示出的两个框实际上可以基本上同时执行,或者框有时可以以相反的顺序执行,这取决于所涉及的功能。可以设想在功能、逻辑或效果方面等效于图中所示的一个或多个框或其部分的其他步骤和方法。

尽管可以在流程图和/或框图中采用各种箭头类型和线类型,它们但是应当被理解为不限制对应的实施例的范围。实际上,一些箭头或其他连接器可以用于仅指示所描绘的实施例的逻辑流程。例如,箭头可以指示所示实施例的枚举步骤之间未规定的持续时间的等待或监视周期。还应当注意,框图和/或流程图的每个框、以及框图和/或流程图中的框的组合可以由执行规定的功能或动作的专用的基于硬件的系统来实施,或者由专用硬件和代码的组合来实施。

每个图中的元素的描述可以参考在前的图的元素。相同的附图标记在所有附图中指代相同的元素,包括相同元素的备选实施例。

图1a描绘了用于使用数据协议来管理外围设备的系统100的一个实施例。在一个实施例中,系统100包括信息处理设备102。信息处理设备102可以包括台式计算机、膝上型计算机、平板计算机、智能电话、机顶盒、游戏终端、智能电视、智能手表、健身手环或其他可穿戴活动跟踪装置、光学头戴式显示器(例如,虚拟现实耳机、智能眼镜等)、个人数字助理、或者包括处理器104、易失性存储器108和/或非易失性存储介质的另一计算设备,其可被实施为外围设备114a-n中的至少一个。

处理器104可以包括一个或多个中央处理单元(“cpu”)、一个或多个处理器核、现场可编程门阵列(“fpga”)或其他可编程逻辑、专用集成电路(“asic”)、控制器、微控制器、和/或另一半导体集成电路器件。处理器104可以包括用于在引导过程期间执行硬件初始化的固件(诸如基本输入/输出系统(“bios”)106的实例)。在一个实施例中,bios106可以包括统一可扩展固件接口(“uefi”)固件的实例。

在某些实施例中,系统100包括一个或多个外围设备114a-n(统称为114)。如本文中所使用的外围设备114可以包括为信息处理设备102提供输入和/或输出的内部和/或外部设备。例如,外围设备114可以被实施为存储设备(例如,非易失性内存(“nvm”)设备、nvm高速(“nvme”)设备、固态存储设备(“sssd”)等)、闪存设备、网卡、图形卡等。

在一个实施例中,外围设备114经由底板122连接到信息处理设备102。如本文中所使用的,底板122可以被实施为包括若干插槽117a-n(统称为117)、端口等用于将多个外围设备114或其他电路板连接到底板122的印刷电路板(“pcb”)。例如,底板122可以包括多个插槽117、电缆连接(例如,数据总线116和/或管理总线118电缆连接)、和/或用于将nvme存储设备连接到信息处理设备102的其他类型的连接器。如图1a所示,底板122可以被封闭在使用一个或多个通信总线电缆123a-n(统称为123)耦合到信息处理设备102的单独的设备或外壳(诸如单独存储外壳,例如存储架)中。在一些实施例中,底板122被封闭在信息处理设备102内。

如本文中所使用的,底板122上的插槽117可以是用于连接来自信息处理设备102的通信总线电缆123的接入点、端口、插槽等。插槽117可以被配置以用于各种类型通信总线电缆123,诸如pcie通信总线电缆123。插槽117可以使用插槽标识符来标识、访问、引用等。插槽标识符可以对于插槽117是全局唯一的,对于底板122上的插槽117是唯一的,等等。插槽标识符可以至少部分地用于访问被通信地连接到的通信总线电缆123的外围设备114,其中通信总线电缆133被连接到插槽117。

在一些实施例中,底板122包括可以将外围设备114安装(install)、固定、安放(mount)等在其中的驱动器机架121a-n(统称为121)。例如,驱动器机架121可以被配置用于将nvme存储设备安装到底板122。在一些实施例中,每个机架121使用标识符来标识,标识符可以对于底板122是唯一的,是全局唯一的等。如果机架标识符对于底板122是唯一的,则在一个实施例中,为了访问安装在机架121中的外围设备114,还可能需要底板122标识符,以确保正确的底板122上的正确的外围设备114被访问。在一些实施例中,插槽标识符和机架标识符用于访问安装在由机架标识符标识的机架121中的外围设备114,其中外围设备114通信地耦合到连接到由插槽标识符标识的插槽117的通信总线电缆123。

在某些实施例中,外围设备114使用一个或多个通信总线电缆123通信地耦合到处理器104。通信总线电缆123可以包括对应于底板122上的数据总线116a-n(统称为116)的数据总线电缆,其可以被实施为电缆、底板122的pcb的数据线等。底板122上的数据总线电缆和对应的数据总线116可以用于在处理器104与外围设备114之间执行输入/输出(“i/o”)操作(例如,传输数据)。在某些实施例中,数据总线电缆和/或数据总线116是外围部件互连(“pci”)总线、pci扩展(“pci-x”)总线、加速图形端口(“agp”)总线、pci高速(“pcie”)总线、通用串行总线(“usb”)、串行高级技术附件(“sata”)总线等。

在一些实施例中,每个外围设备114使用单独的数据总线电缆和/或数据总线116耦合到处理器104。例如,外围设备114与数据总线电缆和/或数据总线116之间可以存在1:1的关系,使得每个外围设备114使用单独且独立的数据总线电缆和/或数据总线116耦合到信息处理设备102。

在一个实施例中,通信总线电缆123包括对应于底板122上的管理总线118的管理总线电缆,其可以被实施为电缆、底板122的pcb的数据线等。在一个实施例中,管理总线118被配置为经由管理总线电缆从处理器104向外围设备114/从外围设备114向处理器104传输管理消息。管理总线118可以被实施为内部集成电路(“i2c”)通信总线。管理消息可以包括控制外围设备114的状态的消息,诸如上电/断电、停用/启用、待机、复位等。例如,在信息处理设备102上运行的操作系统可以通过管理总线电缆和管理总线118发送管理消息,以复位通过pcie电缆附接到信息处理设备102的存储设备。

在一些实施例中,每个管理总线电缆和/或管理总线118通信地耦合到单个对应的外围设备114。在这样的实施例中,管理总线电缆和/或管理总线118与外围设备114之间可能存在1:1的关系,使得每个外围设备114使用单独且独立的管理总线电缆耦合到信息处理设备102。参考图1a,外围设备114的每个管理总线连接124a-n(统称为124)可以与对应于单独的管理总线电缆的独立且不同的管理总线118相关联。例如,每个外围设备114可以耦合到对应的管理总线电缆,而不是使用单个管理总线电缆来管理多个外围设备114。

在另一实施例中,管理总线电缆、管理总线118和多个外围设备114之间可能存在1:n或1对多的关系。在这样的实施例中,管理总线118可以包括多个管理总线连接124,每个管理总线连接可连接到外围设备114并且是使用标识符、唯一地址(例如,管理总线连接124的地址、外围设备114的地址等)等可寻址的。

在一个实施例中,管理总线118连接到用于底板122的存储外壳处理器(“sep”)115。如本文中所使用的,sep115可以是位于底板122上的用于管理底板122上的外围设备114的处理器。例如,sep115可以管理针对管理总线118的管理总线连接124,以基于用于管理总线连接124和/或外围设备114的唯一地址使用管理总线电缆,来在信息处理设备102与底板122上的外围设备114之间传输管理消息。

例如,用于信息处理设备102的操作系统可以通过提供针对外围设备114和/或管理总线118的管理总线连接124的标识符或地址,来向外围设备114发送复位命令。在这样的示例中,sep115可以使用所提供的标识符或地址来将复位命令发送到与标识符或地址相关联的外围设备114。在另一示例中,sep115可以将所提供的标识符或地址转换、映射或以其他方式交叉引用到用于与底板122上的外围设备114通信的不同的标识符或地址。

如本文中所使用的,处理器104、数据协议装置110等与外围设备114之间的管理连接被称为管理总线连接124,无论是单个管理总线电缆和/或管理总线118连接到每个外围设备114(例如,每个管理总线电缆/管理总线118有一个管理总线连接124),还是单个管理总线电缆和/或管理总线118连接到多个外围设备114(例如,每个管理总线电缆/管理总线118有多个可寻址管理总线连接124)。

在一个实施例中,基板管理控制器(“bmc”)113是信息处理设备102的专用硬件部件,其用于管理系统管理软件(诸如bios106、操作系统或其他管理软件)与平台硬件(诸如使用系统管理总线119的外围设备114)之间的接口。例如,bmc113可以管理管理消息在处理器、bios106、电缆管理装置110、操作系统等与外围设备114、sep115等之间的传输。

在一个实施例中,桥接器或交换机112经由通信总线电缆123将外围设备114连接到处理器104和/或电缆管理设备110。桥接器112可以用作交换机并且可以使用通信总线电缆123(例如,数据总线电缆、管理总线电缆、或数据总线/管理总线组合电缆)在处理器104与相应的外围设备114之间引导数据和/或管理命令。在某些实施例中,多个桥接器112可以位于信息处理设备102中,其中每个桥接器112被连接到一个或多个底板122的一个或多个外围设备114。

在一个实施例中,数据协议装置110被配置为通过读取包括用于各种特性的一个或多个字段的预定义数据分组,来确定与外围设备114、底板122、sep15等相关联的一个或多个特性。数据协议装置110被配置为确定将一个或多个外围设备114通信地耦合到信息处理设备102的一个或多个通信总线电缆123,通过通信总线电缆123读取与外围设备114相关联的数据分组,以及基于通过通信总线电缆123读取的数据分组中包括的特性来确定一个或多个通信总线电缆123和一个或多个外围设备114的电缆连接配置。在一些实施例中,数据协议装置110的至少部分位于处理器104上、底板122上、bmc113上、sep115上等等。下面将参考图2和图3更详细地描述数据协议装置110。

在一个实施例中,信息处理设备102被连接到数据网络120。在一个实施例中,数据网络120包括传输数字通信的数字通信网络。数据网络120可以包括无线网络,诸如无线蜂窝网络、本地无线网络(诸如wi-fi网络)、蓝牙网络、近场通信(“nfc”)网络、移动自组(adhoc)网络等。数据网络120可以包括广域网(“wan”)、存储区域网(“san”)、局域网(“lan”)、光纤网络、因特网或其他数字通信网络。数据网络120可以包括两个或更多个网络。数据网络120可以包括一个或多个服务器、路由器、交换机和/或其他连网设备。数据网络120还可以包括一个或多个计算机可读存储介质,诸如硬盘驱动器、光驱动器、非易失性存储器、ram等。

在一个实施例中,信息处理设备102经由数据网络120连接到一个或多个其他计算设备130/132。例如,其他计算设备130可以包括智能电话、平板计算机、笔记本电脑等。在另一实施例中,其他计算设备132可以包括服务器、位于本地或外部数据网络120上的数据中心中的其他设备等。

图1b描绘了用于使用数据协议来管理外围设备的“直接附接”系统150的一个实施例。在一个实施例中,系统150包括与上面参考图1a描绘和描述的相同元件基本相似的元件。在一个实施例中,图1b的系统150包括两个单独的处理单元202a-b(统称为202),处理单元202a-b被各自通信地耦合到相应的底板122a-b(统称为122)上的外围设备114。每个处理单元202可以包括一个或多个处理器104或处理器核等、存储器元件、储存元件(例如,寄存器)等。

每个处理单元202可以使用上述通信总线电缆123、信息处理设备102上(例如,在信息处理设备102的主板或其他pcb上)的一个或多个数据总线216a-b(统称为216)以及底板122上的一个或多个数据总线116通信地耦合到每个相应的底板122上的外围设备114。处理单元202可以使用通信总线123和/或数据总线216、116向外围设备114发送各种命令、数据、指令等。例如,处理单元202可以向位于底板122上的插槽id10和机架id62处的nvme外部存储设备发送读取请求命令、写入请求命令等。

在另一实施例中,每个处理单元202通信地耦合到现场可编程门阵列(“fpga”)204或其他逻辑器件(诸如专用集成电路(“asic”)等)。在一个实施例中,处理单元202使用i2c通信总线、shp管理总线和/或某种其他串行通信总线通信地耦合到fpga204。fpga204可以使用一个或多个通信总线电缆123和/或位于信息处理设备102上的一个或多个管理总线218a-b(统称为218)以及位于底板122上的一个或多个管理总线118通信地耦合到底板122、更具体地是位于底板122上的sep115和/或外围设备114。

如本文中所使用的,fpga204可以在信息处理设备102上的处理单元202和/或数据协议装置110与底板122上的sep115和/或外围设备114之间传送、传输、发送/接收等数据、信息、命令等。例如,fpga204可以使用特定的通信总线电缆123与底板122上的sep115通信,以读取包括耦合到通信总线电缆123的外围设备114的插槽id和机架id的数据分组。在这样的实施例中,fpga204可以被配置为总线主机(master),并且每个底板122上的每个sep115可以被配置为总线从机(slave)。在这样的主/从配置中,作为总线主机的fpga204通过通信总线电缆123将命令、数据分组、信息等引导到作为总线从机并且旨在用于一个或多个外围设备114的sep115。fpga204还可以通过各种通信总线电缆123从sep115请求或读取数据分组。在这样的实施例中,每个外围设备114可以被配置为从设备。

fpga204可以跟踪、存储、收集等与每个通信总线电缆123和与通信总线电缆123耦合的外围设备114相关的插槽id和机架id信息。在这样的实施例中,fpga204可以向信息处理设备102的操作系统、bios106等提供、发送每个外围设备114(包括耦合到每个外围设备114的通信总线电缆123)的插槽id和机架id信息,或者以其他方式使得使这样的信息可用于信息处理设备102的操作系统、bios106等。在某些实施例中,耦合到fpga204和sep115的管理总线118、218包括shp管理总线。

在某些实施例中,信息处理设备102或信息处理设备102的主板包括被配置为接收耦合到底板122上的相应插槽117的通信总线电缆123的一个或多个插槽220a-n(统称为220)。插槽220可以使用插槽id、pcie通道标识符等来标识。

在一个实施例中,每个处理单元202通信地耦合到平台控制器集线器(“pch”)206,pch206被配置为控制数据路径(诸如数据总线216),并且管理从处理单元202卸载的各种功能(诸如时钟)。在一些实施例中,处理单元202使用pch206经由fpga204向外围设备114发送各种数据和管理命令。在这样的实施例中,pch206可以使用通信总线222耦合到fpga204,通信总线222可以被实施为增强的串行外围接口(“espi”)总线。

在一些实施例中,数据协议装置110还通过通信总线212耦合到fpga204,以如下面更详细地描述的执行数据协议装置110的各种功能。此外,bmc113还可以通过通信总线214耦合到fpga204,以管理系统管理软件(诸如bios106、操作系统或其他管理软件)与外围设备114、sep115等之间的接口。

图1c描绘了用于使用数据协议来管理外围设备的“切换”系统175的一个实施例。在一个实施例中,系统175包括与上面参考图1a和1b描绘和描述的相同元件基本相似的元件。在一个实施例中,系统175包括多个交换适配器302a-b(统称为302),其可以基本上类似于上面参考图1a描述的开关112。

每个交换适配器302可以被配置为在每个处理单元202、数据协议装置110、bmc113等与底板122的每个外围设备114之间进行管理和传输。例如,处理单元202可以经由耦合到交换适配器302的通信总线端口304a-b的通信总线306a-b,来将针对特定的外围设备114的数据或管理命令提供给耦合的交换适配器302。交换适配器302可以将命令转发或传输给外围设备114。外围设备114可以使用唯一地址、插槽id、机架id等来标识。基于标识符,交换适配器302可以确定哪个通信总线电缆123耦合到标识的外围设备114。

图2描绘了用于使用数据协议来管理外围设备的装置200的一个实施例。装置200包括数据协议装置110的实施例。数据协议装置110包括连接模块230、数据模块235和拓扑模块240,其在下面更详细地描述。

连接模块230确定将一个或多个外围设备114通信地耦合到信息处理设备102的一个或多个通信总线电缆123。在一个实施例中,连接模块230可以通过每个通信总线电缆123发送命令,以确定哪些通信总线电缆123耦合到外围设备114。在另一实施例中,bios106可以在系统启动时执行系统检查,以确定哪些外围设备114存在并使用通信总线电缆耦合到信息处理设备102。连接模块230可以构建、生成、管理、维护等耦合到信息处理设备102的外围设备114和耦合到所确定的外围设备114的相关联的通信总线电缆123的表。

数据模块235通过一个或多个通信总线电缆123中的每个读取与外围设备114相关联的数据分组。数据分组可以包含一个或多个数据字段,其包括针对外围设备114、底板122、底板122的sep115等的数据、信息等。下面的表1示出了用于管理外围设备114的协议的数据分组的一个示例。

表1

如表1所示,每个数据分组包含包括定义安装有外围设备114的位置的标识符的信息的一个或多个数据字段。例如,数据分组可以包括针对指示标识安装有外围设备114的驱动器机架121的机架id的数据的数据字段,以及针对指示连接到通信地耦合到外围设备114的通信总线电缆123的插槽117的数据的数据字段。

在另外的实施例中,数据分组还包含包括描述底板122的sep115的一个或多个特性的数据的一个或多个字段。在一些实施例中,数据分组包括指示sep115是否支持数据奇偶校验的标志。例如,如果sep115如数据分组中的奇偶校验标志所指示地支持数据奇偶校验,则fpga204可以将数据写入数据分组的一个或多个可写入字段(包括奇偶校验数据字段,其包括用于sep115使用以验证写入的数据的完整性的奇偶校验数据)。在这样的示例中,fpga204可以首先从特定外围设备114的sep115请求数据分组,读取奇偶校验数据字段,并且在数据分组被发送到sep115之前将奇偶校验位包括在与写入数据分组的其他可写入数据字段的数据一起。

在另一示例中,数据分组可以包括数据字段,其包括指示sep115的最大、最小、平均、中等等时钟速度的数据。在另外的示例中,数据分组可以包括数据字段,其包括指示超时参数的数据,超时参数定义在数据模块235响应于未接收到来自sep115的响应而再次轮询sep115以获取数据分组的时间段。在另一示例中,数据分组可以包括指示由sep115支持的外围设备114的最大数目、sep115所在的底板122等的数据字段。被包括在数据分组中的其他数据可以包括外围设备114、底板122、sep115等的标识符,外围设备114、底板122、sep115等的版本信息,外围设备的状态信息(例如,有效、启用、停用等),可以用于验证一个或多个数据字段的完整性的一个或多个数据字段的校验等。在下面更详细地描述的某些实施例中,fpga204基于从被包括在所接收的数据分组中的数据确定的sep115、外围设备114、底板122等的特性来调节一个或多个性能特性。

基于从与一个或多个外围设备114相关联的每个数据分组接收的安装位置标识符,拓扑模块240确定一个或多个通信总线电缆123和一个或多个外围设备114的电缆连接配置。拓扑模块240例如可以创建通信总线电缆123到对应的安装位置标识符(例如每个通信总线电缆123通信地耦合到的外围设备114的插槽id和机架id)的映射表。

在一个实施例中,映射表被实施为高级配置和电源接口(“acpi”)表。如本文中所使用的,acpi是使得操作系统能够直接配置和管理硬件部件的一种类型的接口。在这样的实施例中,拓扑模块240提供描述通信总线电缆123和外围设备114到bios106的电缆连接配置、信息处理设备102的操作系统等的映射表。在另外的实施例中,bios106和/或操作系统可以使用acpi表来对信息处理设备102(例如,在主板上)和/或底板122上的pcie端口进行编程、分配或以其他方式与在数据分组中接收的标识符(例如,针对插槽117的插槽id)相关联。

以这种方式,数据协议装置110提供数据分组或协议,用于发送和接收描述系统100/150/175中的外围设备114、sep115、底板122等的各种状态、特性、状态等的数据,系统100/150/175使用通信总线电缆123将各种外围设备114连接到信息处理设备102,与直接物理连接相对,例如,处理器与插入外围设备114的pcie插槽之间的印刷电路板中的通信总线线路。因此,处理器104、fpga204、bmc113、操作系统和/或信息处理设备102的其他部件可以动态地调节外围设备114、底板122、sep115等的特性。此外,数据协议装置110可以向bios106、操作系统、终端用户等提供信息、通知、警告、消息等,以指示系统100/150/175的状态,诸如信息处理设备102与底板122的一个或多个外围设备114之间的通信总线电缆配置是否存在问题、错误、麻烦等。

图3描绘了用于使用数据协议来管理外围设备的装置300的一个实施例。装置300包括数据协议装置110的实施例。数据协议装置110包括基本上类似于上面参考图2描述的连接模块230、数据模块235和拓扑模块240的连接模块230、数据模块235和拓扑模块240。在一个实施例中,数据协议装置110包括通知模块310、调节模块315、验证模块320和转换模块325中的一个或多个,其在下面更详细地描述。

在一个实施例中,通知模块310响应于所确定的电缆连接配置不匹配预定义的电缆连接配置来发送通知。在某些实施例中,特定系统100/150/175可以在信息处理设备102与底板122的一个或多个外围设备114之间具有推荐的电缆连接配置,其定义所需要的或推荐的电缆连接拓扑,例如哪些通信总线电缆123应当连接到底板122上的外围设备114的哪些安装位置,例如哪些插槽117和机架121。

通知模块310基于所确定的通信总线电缆配置与预定义的通信总线电缆配置不匹配的确定,来发送通知以警告或告知bios106、操作系统、fpga204、终端用户等所确定的通信总线电缆配置不正确或者没有以推荐的方式被配置。

在一个实施例中,拓扑模块240通过将安装位置标识符到连接到标识符安装位置的通信总线电缆的映射表中的数据与基本上相似的安装位置标识符到通信总线电缆映射的预定义的映射表相比较,来确定所确定的通信总线电缆配置是否与预定义的通信总线电缆配置相匹配。在某些实施例中,通知模块310基于在数据分组中接收到的信息来发送包括关于外围设备114的状态、存在和/或有效/停用的外围设备114的数目等的信息的各种通知。

在一个实施例中,调节模块315基于sep115的一个或多个特性来动态地修改fpga204的一个或多个性能特性。例如,调节模块315可以基于数据分组的超时数据字段中的数据来改变fpga轮询sep115以获取针对外围设备114的数据分组的频率。在另一示例中,调节模块315可以基于sep115的时钟速度、sep115当前是否繁忙、底板122的功能(例如,底板122的类型、底板122上的通信总线速度等)等来调节命令从fpga204或者经由fpga204从处理器104被发送到sep115的速率。

在一个实施例中,验证模块320使用校验和来检查或验证数据分组的一个或多个字段中包括的数据的完整性。在一些实施例中,校验和被包括在数据分组的校验和字段中。例如,sep115可以用数据填充数据分组的每个数据字段,使用在数据分组中的数据来生成校验和,并且将校验和存储在数据分组的校验和字段中。因此,当数据模块235通过通信总线电缆123接收数据分组时,验证模块320使用校验和来验证数据(例如,存储在数据分组中的机架id和插槽id、sep115和/或底板122等的能力数据等)未被篡改,不包括任何错误等。

在一个实施例中,转换模块325从支持vpp的处理器104、或者被配置为通过vpp边带连接发送和接收命令的处理器104来接收虚拟引脚端口(“vpp”)命令。如本文中所使用的,vpp可以包括用于可热插拔的外围设备114(诸如pcienvme设备)的基于串行总线的互连。vpp可以是处理器104的输入/输出集线器的部分,例如的支持vpp的芯片组,并且可以被配置为串行地将边带pcie热插拔信号移入和移出。

vpp架构被设计用于与位于机械地固定的插槽(诸如主板上的物理pcie插槽)中的外围设备114进行接口,并且可能不扩展以与使用通信总线电缆连接到处理器104的外围设备114进行接口。例如,vpp架构可以提供支持启用外围设备114,用于确定驱动器是否存在于特定物理插槽处,和/或控制外围设备114上的有效指示符led。然而,在利用通信总线电缆123将处理器104耦合到一个或多个外围设备114的系统100/150/175中,vpp架构不具有完全管理安装在底板122上并且使用一个或多个通信总线电缆123连接到处理器104的外围设备114的能力。

例如,如果通信总线电缆123被交换并且连接到外围设备114的不正确的安装位置,例如不正确的插槽117和/或机架121,则vpp架构将不知道错误的通信总线电缆123配置,这可能导致操作系统和/或bios106与当前硬件拓扑结构不同步。此外,由于(例如主板上的)电路由限制,vpp架构可能不允许直接连接到多个底板122。另外,vpp架构可能不提供任何数据完整性检查,诸如校验和和数据奇偶校验值。

因此,本文中描述的协议提供了扩展的和更具描述性的架构,其提供了用于管理位于多个底板122上并且使用一个或多个通信总线电缆123连接到处理器104的多个外围设备114的能力。在一个实施例中,转换模块325从处理器104接收vpp命令,并且将所接收的vpp命令转换、编码等到数据分组中的对应的数据字段。

在一些实施例中,vpp命令可以旨在用于由数据模块235接收的安装位置标识符所标识的底板122上的外围设备114。在另外的实施例中,转换模块325将vpp命令写入数据分组中的对应的数据字段。在一些实施例中,vpp命令包括针对外围设备114的启用命令、针对外围设备114的停用命令、和/或切换诸如led等外围设备114上的有效指示符的命令。因此,转换模块325可以接收进行以下操作的vpp命令:切换特定外围设备114上的活动指示符led,确定数据字段的哪个数据分组对应于接收到的vpp命令,并且将与vpp命令的值相对应的值写入数据分组中的相应的数据字段。

在各种实施例中,转换模块325使用耦合到sep115并且与所旨在的外围设备114相关联的通信总线电缆123,来将包括vpp命令的数据分组发送到底板122上的sep115。例如,转换模块325可以接收停用外围设备114的vpp命令。转换模块325可以(例如,使用由拓扑模块240提供的映射表)确定针对所旨在的外围设备114的插槽id和机架id,以及耦合到所确定的插槽id和机架id的通信总线电缆123。转换模块325然后可以将vpp命令编码到与停用命令相对应的数据分组的数据字段中的相应值,并且通过所标识的通信总线电缆123将数据分组发送到sep115。

在一个实施例中,转换模块325在将数据分组发送到所旨在的外围设备114之前将奇偶校验值写入数据分组的奇偶校验字段。奇偶校验值可以由sep115使用以验证被写入数据分组的数据的完整性,诸如被编码在数据分组中的vpp命令的完整性。如以上表1中所述的奇偶校验值可以使用各种数据字段的一个或多个位的组合来生成。在一个实施例中,如在数据分组的不同数据字段中所指示的,如果sep115支持数据奇偶校验,则转换模块325生成奇偶校验值并且将其写入奇偶校验字段。

图4描绘了用于使用数据协议来管理外围设备的方法400的一个实施例。方法400开始并且确定(402)将一个或多个外围设备114通信地耦合到信息处理设备102的一个或多个通信总线电缆123。方法400通过一个或多个通信总线电缆123中的每个来读取(404)与外围设备114相关联的数据分组。每个数据分组包括针对外围设备114被安装的位置的标识符。方法400基于从与一个或多个外围设备114相关联的每个数据分组接收的安装位置标识符,来确定(406)针对一个或多个通信总线电缆123和一个或多个外围设备114的电缆连接配置,然后方法400结束。在一些实施例中,连接模块230、数据模块235和/或拓扑模块240执行方法400的各个步骤。

图5描绘了用于使用数据协议来管理外围设备的方法500的一个实施例。方法500开始,并且确定(502)将一个或多个外围设备114通信地耦合到信息处理设备102的一个或多个通信总线电缆123。方法500通过一个或多个通信总线电缆123中的每个来读取(504)与外围设备114相关联的数据分组。在一个实施例中,方法500使用被数据分组中所包括的校验和字段中的校验和,来验证(506)在数据分组的一个或多个字段中所包括的数据的完整性。

在一些实施例中,如果方法500基于校验和确定(508)数据分组的完整性是无效的,这可以指示数据中存在错误、数据已经被篡改等,则方法500结束。否则,在某些实施例中,如果方法500确定(508)数据的完整性是有效的,则方法500基于从与一个或多个外围设备114相关联的每个数据分组接收的安装位置标识符,来确定(510)针对一个或多个通信总线电缆123和一个或多个外围设备114的电缆连接配置。

在一些实施例中,方法500将通信总线电缆123和外围设备114的电缆连接配置提供(512)给信息处理设备102的bios或操作系统。在一个实施例中,方法500确定(514)所确定的电缆连接配置是否匹配预定义的电缆连接配置。如果不匹配,则在一个实施例中,方法500发送(516)通知以指示通信总线电缆123的所确定的连接配置与预定义或推荐的电缆连接配置不匹配。

在另外的实施例中,方法500基于方法500接收到的数据分组中所包括的sep115的一个或多个特性,来动态地调节(518)fpga204的一个或多个性能特性。如上所述,在一个实施例中,在其中fpga204是总线主机并且引导或管理与作为总线从机的sep115和作为从设备的外围设备114的通信的主/从配置中,fpga204使用通信总线电缆123通信耦合到底板122的sep115和一个或多个外围设备114,然后方法500结束。在一些实施例中,连接模块230、数据模块235、拓扑模块240、通知模块310、调节模块315,验证模块320和/或转换模块325执行方法500的各个步骤。

实施例可以以其他具体形式来实践。所描述的实施例仅在所有方面被认为是说明性的而不是限制性的。因此,本发明的范围由所附权利要求而不是前面的描述来表示。在权利要求的等同物的含义和范围内的所有变化将被包括在其范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1