计算机系统和计算机系统中端点设备访问的方法

文档序号:10517838阅读:648来源:国知局
计算机系统和计算机系统中端点设备访问的方法
【专利摘要】本发明实施例提供一种对计算机系统中端点设备进行访问的方法和计算机系统,现有技术在对计算机设备中端点设备进行管理时,需要依赖操作系统,不利于维护的问题。本发明实施例通过上述计算机系统中端点设备进行访问的方法和计算机系统,端点代理设备建立端点设备在所述计算子系统中的第一地址与在所述管理子系统的第二地址之间的对应关系,在接收到管理控制器对端点设备第一访问请求时,根据所述对应关系生成携带所述端点设备在所述计算子系统中的第一地址的第二访问请求,并发送给所述端点设备。实现了管理控制器对端点设备访问请求的发送到所述端点设备,且不需要操作依赖于操作系统,提高了对端点设备进行管理时的可维护性。
【专利说明】
计算机系统和计算机系统中端点设备访问的方法
技术领域
[0001] 本发明涉及信息技术领域,特别涉及对计算机系统中端点设备访问的方法和计算 机系统。
【背景技术】
[0002] 数据中心通常用以太网技术构建局域网,用FC(Fibre Channel,光纤通道技术)技 术构建SAN(Storage Area Network and SAN Protocols,存储区域网络及其协议),计算机 设备以太网卡用以接入局域网,光纤通道主机总线适配器HBA(Host Bus Adapter,主机总 线适配器)用以接入SAN。多种类型的接口卡和网络设备削弱了业务灵活性,增加了数据中 心网络管理复杂性、增加了设备成本和电力等方面的开销。FCoE(Fibre Channel over Ethernet,以太网光纤通道)实现了以太网帧承载FC帧,使得FC SAN和以太网局域网可共享 同一个单一的、集成的网络基础设施,解决了不同类型网络共存所带来的问题,实现了网络 基础设施整合、精简的目标。
[0003] 计算机设备中,网卡、RAID(Redundant Arrays of Independent Disks,冗余磁盘 阵列)卡、SSD(Solid State Drives,固态硬盘)卡和GPU(Graphics Processing Unit,图形 处理器)卡等PCIE(Peripheral Component Interconnect express,快捷外围部件互连标 准)端点设备。
[0004] 现有技术中计算机设备的管理子系统通过与运行在操作系统上的多个管理软件 模块通信来实现对各PCIE端点设备的配置管理,各管理软件模块分别对应管理各个PCIE端 点设备。对多个不同种类的PCIE端点设备的配置管理,需部署多个管理软件模块,导致部署 复杂且不易于后续升级维护。

【发明内容】

[0005] 本发明实施例提供一种对计算机系统中端点设备进行访问的方法和计算机系统, 以实现不依赖操作系统对端点设备的配置管理。
[0006] 本发明实施例的第一方面,提供了一种计算机系统,包括计算子系统和管理子系 统,所述计算子系统包括中央处理器,所述管理子系统包括管理控制器,所述中央处理器用 于连接端点设备;
[0007] 所述计算机系统还包括端点代理设备,所述端点代理设备的第一端口通过PCIE链 路连接所述计算子系统中的所述中央处理器,所述端点代理设备的第二端口与所述管理子 系统中的所述管理控制器连接;
[0008] 所述中央处理器,用于分配所述端点设备在所述计算子系统中的设备信息,并将 所述端点设备在所述计算子系统中的设备信息写入所述端点代理设备,所述端点设备在所 述计算子系统中的设备信息至少包括所述端点设备在所述计算子系统中的第一地址信息;
[0009] 所述管理控制器,用于在确定所述端点代理设备中被写入所述端点设备在所述计 算子系统中的设备信息后,根据所述端点设备在所述计算子系统中的第一地址分配所述端 点设备在所述管理子系统中的第二地址,并将所述端点设备在所述管理子系统中的第二地 址写入所述端点代理设备;
[0010]所述端点代理设备,用于在被写入所述第二地址之后,建立所述端点设备在所述 计算子系统中的第一地址与所述端点设备在所述管理子系统中的第二地址之间的对应关 系;
[0011]所述管理控制器还用于发送第一访问请求,所述第一访问请求携带所述端点设备 在所述管理子系统中的的第二地址;
[0012] 所述端点代理设备还用于通过所述第二端口与所述管理控制器的连接接收所述 管理控制器发送的所述第一访问请求,根据所述对应关系生成携带所述端点设备在所述计 算子系统中的第一地址的第二访问请求,并通过所述第一端口连接的所述PCIE链路将所述 第二访问请求发送给所述端点设备。
[0013] 结合本发明实施例的第一方面,在本发明实施例的第一方面的第一种可能的实现 方式中,
[0014] 所述中央处理器具体用于在所述计算子系统初始化过程中,根据基本输入输出系 统BIOS的指令扫描到所述端点设备和所述端点代理设备,分别为所述端点设备和所述端点 代理设备分配在所述计算子系统中的设备信息,并将所述端点设备在所述计算子系统中的 设备信息写入所述端点代理设备。
[0015] 结合本发明实施例的第一方面的第一种可能的实现方式,在本发明实施例的第一 方面的第二种可能的实现方式中,所述中央处理器具体用于根据分配的所述端点代理设备 的在所述计算子系统中的设备信息,通过所述第一端口连接的所述PCIE链路向所述端点代 理设备写入所述端点设备在所述计算子系统中的设备信息。
[0016] 结合本发明实施例的第一方面的第一种可能的实现方式,在本发明实施例的第一 方面的第三种可能的实现方式中,所述管理控制器与所述中央处理器通过南桥芯片连接;
[0017] 所述中央处理器具体用于通过所述南桥芯片将所述端点设备在所述计算子系统 中的设备信息通知到所述管理控制器;
[0018] 所述管理控制器还用于将获取到的所述端点设备在所述计算子系统中的设备信 息通过所述第二端口的连接写入所述端点代理设备。
[0019] 结合本发明实施例的第一方面的第一种、第二中和第三种可能的实现方式,在本 发明实施例的第一方面的第四种可能的实现方式中,
[0020] 所述端点代理设备还用于在被写入所述端点设备在所述计算子系统中的设备信 息后,向所述管理控制器发送通知消息;
[0021] 所述管理控制器具体用于接收所述端点代理设备发送的所述通知消息,根据所述 通知消息确定所述端点代理设备中被写入所述端点设备在所述计算子系统中的设备信息。
[0022] 结合本发明实施例的第一方面的第一种、第二中和第三种可能的实现方式,在本 发明实施例的第一方面的第五种可能的实现方式中,
[0023]所述管理控制器具体用于周期性地向所述端点代理设备发送查询消息,接收所述 端点代理设备发送的所述查询消息的响应消息,根据所述查询消息的响应消息确定所述端 点代理设备中被写入所述端点设备在所述计算子系统中的设备信息。
[0024]结合本发明实施例的第一方面的第一种至第五种可能的实现方式,在本发明实施 例的第一方面的第六种可能的实现方式中,
[0025]所述端点代理设备的第二端口与所述管理子系统中的所述管理控制器通过内部 集成电路I2C连接;
[0026]所述管理控制器还用于为所述端点代理设备分配I2C号;
[0027]所述管理控制器具体用于根据所述端点代理设备的I2C号,将所述第一访问请求 发送到所述端点代理设备。
[0028]结合本发明实施例的第一方面的第一种至第五种可能的实现方式,在本发明实施 例的第一方面的第七种可能的实现方式中,
[0029]所述端点代理设备的第二端口与所述管理子系统中的所述管理控制器通过PCIE 链路连接;
[0030] 所述管理控制器还用于分配所述端点代理设备在所述管理子系统中的第二地址, 所述端点代理设备在所述管理子系统中的第二地址的范围包含所述端点设备在所述管理 子系统中的第二地址的范围;
[0031] 所述管理控制器具体用于根据所述端点设备在所述管理子系统中的第二地址,将 所述第一访问请求发送到所述端点代理设备。
[0032] 结合本发明实施例的第一方面的第一种至第七种可能的实现方式,在本发明实施 例的第一方面的第八种可能的实现方式中,
[0033] 所述计算子系统还包括PCIE交换设备,所述端点设备通过所述PCIE交换设备连接 到所述中央处理器;
[0034]所述端点代理设备的第一端口通过PCIE链路连接所述PCIE交换设备以连接到所 述中央处理器。
[0035]结合本发明实施例的第一方面的第一种至第八种可能的实现方式,在本发明实施 例的第一方面的第九种可能的实现方式中,
[0036]所述端点代理设备位于所述计算子系统中;或,
[0037]所述端点代理设备位于所述管理子系统的管理控制器中。
[0038] 结合本发明实施例的第一方面的第一种至第九种可能的实现方式,在本发明实施 例的第一方面的第十种可能的实现方式中,
[0039] 所述端点设备在所述计算子系统中的设备信息包括下述信息中的至少一项:
[0040] 所述端点设备的输入输出I/O地址信息,所述端点设备的内存Memory地址信息,所 述端点设备的总线/设备/功能B/D/F号,或所述端点设备的设备类型信息。
[0041] 本发明实施例的第二方面,提供了一种对计算机系统中端点设备进行访问的方 法,包括计算子系统和管理子系统,所述计算子系统包括中央处理器,所述管理子系统包括 管理控制器,所述中央处理器用于连接端点设备;所述方法包括:
[0042]所述中央处理器为所述端点设备分配在所述计算子系统中的设备信息,并将所述 端点设备在所述计算子系统中的设备信息写入所述计算子系统中的端点代理设备中,所述 端点设备在所述计算子系统中的设备信息至少包括所述端点设备在所述计算子系统中的 第一地址信息;
[0043]所述管理控制器在确定所述端点代理设备中被写入所述端点设备在所述计算子 系统中的设备信息后,根据所述端点设备在所述计算子系统中的第一地址分配所述端点设 备在所述管理子系统中的第二地址,并将所述端点设备在所述管理子系统中的第二地址写 入所述端点代理设备;
[0044] 所述端点代理设备在被写入所述第二地址之后,建立所述端点设备在所述计算子 系统中的第一地址与所述端点设备在所述管理子系统中的第二地址之间的对应关系;所述 端点代理设备的第一端口通过PCIE链路连接所述计算子系统中的所述中央处理器,所述端 点代理设备的第二端口与所述管理子系统中的所述管理控制器连接;
[0045] 所述管理控制器发送第一访问请求,所述第一访问请求携带所述端点设备在所述 管理子系统中的的第二地址;
[0046]所述端点代理设备通过所述第二端口与所述管理控制器的连接接收所述管理控 制器发送的所述第一访问请求,根据所述对应关系生成携带所述端点设备在所述计算子系 统中的第一地址的第二访问请求,并通过所述第一端口连接的所述PCIE链路将所述第二访 问请求发送给所述端点设备。
[0047]结合本发明实施例的第二方面,在本发明实施例的第二方面的第一种可能的实现 方式中,所述方法还包括:
[0048]所述中央处理器在所述计算子系统初始化过程中,根据基本输入输出系统BIOS的 指令扫描到所述端点设备和所述端点代理设备,分别为所述端点设备和所述端点代理设备 分配在所述计算子系统中的设备信息,并将所述端点设备在所述计算子系统中的设备信息 写入所述端点代理设备。
[0049] 结合本发明实施例的第二方面的第一种可能的实现方式,在本发明实施例的第二 方面的第二种可能的实现方式中,
[0050] 所述中央处理器根据分配的所述端点代理设备的在所述计算子系统中的设备信 息,通过所述第一端口连接的所述PCIE链路向所述端点代理设备写入所述端点设备在所述 计算子系统中的设备信息。
[0051] 结合本发明实施例的第二方面的第一种可能的实现方式,在本发明实施例的第二 方面的第三种可能的实现方式中,所述管理控制器与所述中央处理器通过南桥芯片连接, 所述方法还包括:
[0052]所述中央处理器通过所述南桥芯片将所述端点设备在所述计算子系统中的设备 信息通知到所述管理控制器;
[0053]所述管理控制器将获取到的所述端点设备在所述计算子系统中的设备信息通过 所述第二端口的连接写入所述端点代理设备。
[0054]结合本发明实施例的第二方面的第一种、第二中和第三种可能的实现方式,在本 发明实施例的第二方面的第四种可能的实现方式中,
[0055] 所述方法还包括:
[0056] 所述端点代理设备在被写入所述端点设备在所述计算子系统中的设备信息后,向 所述管理控制器发送通知消息;
[0057]所述管理控制器接收所述端点代理设备发送的所述通知消息,根据所述通知消息 确定所述端点代理设备中被写入所述端点设备在所述计算子系统中的设备信息。
[0058]结合本发明实施例的第二方面的第一种、第二中和第三种可能的实现方式,在本 发明实施例的第二方面的第五种可能的实现方式中,
[0059] 所述方法还包括:
[0060] 所述管理控制器周期性地向所述端点代理设备发送查询消息,接收所述端点代理 设备发送的所述查询消息的响应消息,根据所述查询消息的响应消息确定所述端点代理设 备中被写入所述端点设备在所述计算子系统中的设备信息。
[0061] 结合本发明实施例的第二方面的第一种至第五种可能的实现方式,在本发明实施 例的第二方面的第六种可能的实现方式中,
[0062]所述端点代理设备的第二端口与所述管理子系统中的所述管理控制器通过内部 集成电路12C连接,所述方法还包括:
[0063]所述管理控制器为所述端点代理设备分配I2C号;
[0064]所述管理控制器根据所述端点代理设备的I2C号,将所述第一访问请求发送到所 述端点代理设备。
[0065]结合本发明实施例的第二方面的第一种至第五种可能的实现方式,在本发明实施 例的第二方面的第七种可能的实现方式中,
[0066]所述端点代理设备的第二端口与所述管理子系统中的所述管理控制器通过PCIE 链路连接,所述方法还包括:
[0067]所述管理控制器还用于分配所述端点代理设备在所述管理子系统中的第二地址, 所述端点代理设备在所述管理子系统中的第二地址的范围包含所述端点设备在所述管理 子系统中的第二地址的范围;
[0068]所述管理控制器具体用于根据所述端点设备在所述管理子系统中的第二地址,将 所述第一访问请求发送到所述端点代理设备。
[0069] 结合本发明实施例的第二方面的第一种至第七种可能的实现方式,在本发明实施 例的第二方面的第八种可能的实现方式中,
[0070] 所述计算子系统还包括PCIE交换设备,所述端点设备通过所述PCIE交换设备连接 到所述中央处理器;
[0071] 所述端点代理设备的第一端口通过PCIE链路连接所述PCIE交换设备以连接到所 述中央处理器。
[0072] 结合本发明实施例的第二方面的第一种至第八种可能的实现方式,在本发明实施 例的第二方面的第九种可能的实现方式中,
[0073]所述端点代理设备位于所述计算子系统中;或,
[0074]所述端点代理设备位于所述管理子系统的管理控制器中。
[0075] 结合本发明实施例的第二方面的第一种至第九种可能的实现方式,在本发明实施 例的第二方面的第十种可能的实现方式中,
[0076] 所述端点设备在所述计算子系统中的设备信息包括下述信息中的至少一项:
[0077]所述端点设备的输入输出I/O地址信息,所述端点设备的内存Memory地址信息,所 述端点设备的总线/设备/功能B/D/F号,或所述端点设备的设备类型信息。
[0078]通过上述计算机系统中端点设备进行访问的方法和计算机系统,端点代理设备建 立端点设备在所述计算子系统中的第一地址与在所述管理子系统的第二地址之间的对应 关系,在接收到管理控制器对端点设备第一访问请求时,根据所述对应关系生成携带所述 端点设备在所述计算子系统中的第一地址的第二访问请求,并发送给所述端点设备。实现 了管理控制器对端点设备访问请求的发送到所述端点设备,且不需要操作依赖于操作系 统,不需要对不同的端点设备进行不同的管理配置,提高了对端点设备进行管理时的可维 护性。
【附图说明】
[0079] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可 以根据这些附图获得其他的附图。
[0080] 图1为现有技术中一种计算机设备的基本结构示意图;
[0081] 图2为本发明实施例提供的一种计算机设备200的结构示意图;
[0082] 图3为本发明实施例提供的另一种计算机设备200的结构示意图;
[0083]图4为本发明实施例中端点代理设备2014的结构示意图;
[0084]图5为本发明实施例中端点代理设备2014的另一种实现方式结构示意图;
[0085]图6为本发明实施例中端点代理设备2014的进一步实现方式结构示意图;
[0086]图7为本发明实施例一种计算机系统300的结构示意图;
[0087] 图8为本发明实施例一种计算机系统300的另一种实现方式结构示意图;
[0088] 图9为本发明实施例对计算机系统中端点设备进行访问的方法的流程示意图。
【具体实施方式】
[0089] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发 明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实 施例,都应属于本发明保护的范围。
[0090] 参考图1,图1为现有技术中一种计算机设备的基本结构示意图。如图1所示,计算 机设备100包含管理子系统102和计算子系统101。计算子系统101包含一个或者多个计算 CPU1011,多个计算CPU通过CPU总线或者互联芯片进行连接,每一个计算CPU都可以访问系 统所有的设备。同时,计算子系统的CPU与为操作系统提供存储空间的内存1012 (MEMORY)连 接。计算子系统的CPU1011直接或使用PCIE链路通过PCIE交换模块1013连接一个或者多个 PCIE端点设备,以扩展计算子系统的功能。例如,网卡作为端点设备1015提供以太网络接入 能力,RAID卡作为端点设备1016提供存储冗余功能,GPU卡作为端点设备1017提供图形化输 出能力,不同的计算机设备也可以根据需要设计由用户来选择扩展终端设备种类。计算子 系统的CPU通过南桥芯片1018或者直接连接的磁盘1019 (图1以通过南桥芯片1018连接磁盘 1019为例),所述磁盘1019-般作为系统存储设备。计算子系统上电后,计算子系统的CPU, 例如主用CPU1011,会运行固定的BI0S(basic input/output system,基本输入输出系统) 程序,由BIOS完成计算子系统硬件的初始化、PCIE的端点设备发现和配置、加载操作系统 等。在操作系统启动后,计算子系统由加载的操作系统进行控制。
[0091] 本发明实施例中,所述计算机设备100包括各种具有计算或存储功能的计算机设 备,可以包括各种服务器,例如刀片服务器、机架服务器等等,也可以包括使用各种操作系 统的服务器,例如使用Windows或Linux操作系统的服务器等等。
[0092]管理控制器MCPU1021是管理子系统的执行部件,通过各种传感器收集计算机设备 100各个部件的运行信息和故障信息,以及对计算机设备100中的端点设备进行配置管理, 例如配置或管理RAID卡的级别,配置或管理网卡的MAC地址,配置或管理PF(Physical Fuction,物理功能)等。MCPU1021连接计算子系统的南桥芯片1018或者直连计算CPU1011, 实现KVM功能,或者实现计算子系统101和管理子系统102之间的通信。
[0093]计算机设备100上电后,首先是管理子系统102先上电,在管理子系统102上电并完 成初始化后,管理子系统102控制计算子系统101上电,计算子系统101完成上电、硬件检测 和启动操作系统后,计算机设备100开始运行。
[0094] BIOS程序是储存在计算机设备上的程序,在计算机设备的计算子系统上电后运 行,由计算机设备的CPU调取BIOS程序来运行。BIOS在运行后主要完成三部分的功能,分别 是:
[0095] -、在计算机设备的计算子系统上电后对硬件部分的检测,也叫做P0ST(Power On Self Test,加电自检),功能是检查计算机设备是否良好,通常完整的POST自检将包括对 CPU,基本内存,扩展内存,主板,CMOS存储器,串并口,显示卡,软硬盘子系统及键盘等进行 测试,一旦在自检中发现问题,系统将给出提示信息或鸣笛警告。自检中如发现有错误,将 按两种情况处理:对于严重故障(致命性故障)则停机,此时由于各种初始化操作还没完成, 不能给出任何提示或信号;对于非严重故障则给出提示或声音报警信号,等待用户处理;
[0096]二、初始化,包括创建中断向量、设置寄存器、对一些外部设备,例如PCIE的端点设 备,进行初始化和检测等;在扫描和初始化PCIE端点设备的过程中,通常是采用深度优先算 法,发现计算机设备中所有PCIE端点设备,并为每个PCIE端点设备分配B/D/F(Bus/D eviCe/ Funct ion,总线/设备/功能)号、1/0地址空间和Memory地址空间;
[0097]三、引导程序,即引导和启动操作系统。BIOS先从软盘或硬盘的开始扇区读取引导 记录,如果没有找到,则会在显示器上显示没有引导设备,如果找到引导记录会把电脑的控 制权转给引导记录,由引导记录把操作系统载入计算机设备,在计算机设备启动完成后, BIOS程序运行完成,计算子系统的控制权交由引导记录载入的操作系统,运行操作系统的 程序。
[0098]现有技术中,在对PCIE端点设备配置管理时,计算机设备的管理子系统通过与运 行在操作系统上的多个管理软件模块通信来实现对各PCIE端点设备的配置管理,各管理软 件模块分别对应管理各个PCIE端点设备。对多个不同种类的PCIE端点设备的配置管理,需 部署多个管理软件模块,且各管理软件模块本身需由各PCIE设备厂商提供或由服务器厂商 针对各PCIE设备开发(以适配不同的操作系统类型),导致部署复杂且不易于后续升级维 护。
[0099]本发明实施例提供一种技术方案,对上述计算机设备100进行改进,解决现有技术 中对端点设备管理时需要依赖操作系统才能实现的问题,以提高计算机设备的管理子系统 在对PCIE端点设备进行管理时的可维护性。
[0100]如图2所示,图2为本发明实施例提供的一种计算机设备200的结构示意图。计算机 设备200包括计算子系统201和管理子系统202,计算子系统201包括中央处理器2011、内存 2012、PCIE交换模块2013、端点设备2015、端点设备2016、端点设备2017、南桥芯片2018等; 管理子系统202包括管理控制器2021和内存2022。
[0101]本发明实施例在计算机设备200中新增一个端点代理设备2014,例如一个PCIE端 点代理设备。该端点代理设备2014可以是一个芯片,也可以是处理器的一部分,或独立的端 点设备(例如设备卡)等等。该端点代理设备2014分别与管理控制器2021和PCIE交换模块 2013相连。
[0102] 其中,所述端点代理设备2014可以通过PCIE链路通过计算子系统201中的PCIE交 换模块与CPU2011相连,也可以与CPU2011直接相连,或者直接与南桥芯片2018相连。例如, 端点代理设备2014的第一端口(PCIE端口)通过PCIE链路与CPU2011相连,或端点代理设备 2014的第一端口(PCIE端口)通过PCIE链路通过PCIE交换模块与CPU2011相连。图2以端点代 理设备2014通过PCIE交换模块与CPU2011相连为例进行说明。
[0103] 所述端点代理设备2014通过标准总线或者私有总线(例如PCIE总线等)与管理子 系统102的管理控制器2021相连。例如,端点代理设备2014的第二端口(PCIE端口)通过PCIE 链路与与管理子系统102的管理控制器2021相连,或端点代理设备2014的第二端口(I2C端 口)通过I2C链路与管理子系统102的管理控制器2021相连。管理控制器2021通过端点代理 设备2014间接访问计算子系统201中的端点设备,例如端点设备2015等,实现带外配置(包 括但不限于配置RAID卡的级别,网卡的MAC地址,PF类型等)、监控系统所有端点设备的运行 状态(包括但不限于监控RAID卡下的硬盘健康状态,网卡链路状态,统计计数器等),从而能 够达到在计算子系统201的CPU上通过管理工具带内管理端点设备的效果,但同时又不依赖 计算机设备的操作系统,减少了对外部的依赖性,不需要对不同的端点设备进行不同的管 理配置,且不需要各管理软件模块由各PCIE设备厂商提供或由服务器厂商针对各PCIE设备 开发,提升了计算机设备的可维护性。
[0104] 需要说明的是,上述第一端口和第二端口在图中未示出,应理解,第一端口和第二 端口是端点代理设备的端口,其具体实现可以有多种的实现方式,包括但不限于通过具体 的硬件接口,或通过具备通信功能的软件接口来实现,本发明实施例不限定接口的具体实 现方式。
[0105] 可选的,本发明实施例中的端点代理设备2014,和计算机设备中端点设备(例如端 点设备2015) -样,遵循PCIE标准进行通信。
[0106] 以图2所示的示例为例,中央处理器2011通过BIOS芯片中的BIOS程序在计算子系 统201启动阶段能发现端点代理设备2014,以及端点设备2015、端点设备2016和端点设备 2017,并根据每个端点设备的要求进行配置,以及对输入/输出资源、内存资源分配等。对于 端点设备2015、端点设备2016和端点设备2017,中央处理器2011通过BIOS程序进行初始化, 采用深度优先算法,发现端点设备2015、端点设备2016和端点设备2017,并为每个端点设备 分配B/D/F号、I/O地址空间或Memory地址空间等。其中,所述I/O地址空间可以为本发明实 施例中端点设备(例如端点设备2015)在所述计算子系统201中的第一地址信息;或者,所述 Memory地址空间也可以为本发明实施例中端点设备(例如端点设备2015)在所述计算子系 统201中的第一地址信息。
[0107] 中央处理器2011通过BIOS程序在对端点代理设备2014初始化,也是采用采用深度 优先算法,为端点代理设备2014分配B/D/F号、1/0和Memory空间等。同时,中央处理器2011 通过BIOS程序能够识别出端点代理设备2014的类型,即识别出端点代理设备2014是代理设 备,使得CPU2011能够将端点设备(例如端点设备2015、端点设备2016、端点设备2017)的设 备信息写入端点识别出的端点代理设备。根据PCIE标准的定义,每个PCIE的端点设备必须 支持64个字节的配置空间,例如范围为0x00-0x3f,
[0108] 其中,在08H的Class Code字段定义了EP设备的类型,假设Class Code代码为 "1111"的为代理设备类型,Class Code代码不是"1111"的端点设备(例如端点设备2015)。 中央处理器2011通过BIOS程序读取该Class Code字段,就能够识别每个PCIE端点设备的类 型,包括能够识别出端点代理设备2014为代理设备的类型,。
[0109] 中央处理器2011通过BIOS程序完成计算机设备200中计算子系统201所有的端点 设备初始化后,将计算子系统201中除端点代理设备2014之外的端点设备(例如端点设备 2015、端点设备2016和端点设备2017等)的设备信息写入所述端点代理设备2014中。具体 的,可以是所述中央处理器2011通过端点代理设备上的第一端口,以及所述第一端口连接 的PCIE链路将端点设备(例如端点设备2015、端点设备2016和端点设备2017等)的设备信息 写入所述端点代理设备2014中。写入端点代理设备2014中的其它端点设备的设备信息包括 但不限于:每个端点设备的B/D/F号、1/0地址空间、Memory地址空间或设备类型等。例如可 以是写入端点设备2015的B/D/F号和1/0地址空间,也可以是写入端点设备2016的B/D/F号 和memory地址空间,或者是可以是写入端点设备2015的B/D/F号,1/0地址和memory地址空 间。
[0110] 端点代理设备2014保存中央处理器2011通过BIOS程序写入的端点设备的设备信 息,并通过中断的方式通知管理子系统202中的管理控制器2021,管理控制器2021根据端点 代理设备2014的通知,确定所述端点代理设备中被写入所述端点设备在所述计算子系统中 的设备信息。
[0111] 具体的,可以是端点代理设备2014在被写入端点设备(例如端点设备2015)在所述 计算子系统201中的设备信息后,向所述管理控制器2021发送通知消息,所述管理控制器 2021接收所述端点代理设备2014发送的所述通知消息,根据所述通知消息确定所述端点代 理设备中被写入所述端点设备在所述计算子系统中的设备信息。
[0112] 管理子系统202中的管理控制器2021也可以通过查询的方式获取端点代理设备 2014中被写入端点设备的设备信息。例如,所述管理控制器2021周期性地向所述端点代理 设备2014发送查询消息,在所述端点代理设备2014被写入端点设备的设备信息时,接收所 述端点代理设备2014发送的所述查询消息的响应消息,所述响应消息包含所述端点代理设 备2014中写入的端点设备的设备信息,所述管理控制器2021根据所述查询消息的响应消息 确定所述端点代理设备2014中被写入所述端点设备在所述计算子系统中的设备信息。
[0113] 在本发明实施例的一种实现方式中,所述端点代理设备2014通过第一端口与PCIE 交换模块2013相连。具体的,所述端点代理设备2014的第一端口可以通过PCIE链路连接所 述PCIE交换模块2013,并通过所述交换模块2013与所述中央处理器2011相连。
[0114] 作为可选的实现方式,本发明实施例中,所述端点代理设备2014通过第二端口与 管理控制器2021相连。具体的,所述端点代理设备2014的第二端口(I2C端口)通过I2C (Inter - Integrated Circuit)链路与所述管理控制器2021相连;或所述端点代理设备 2014的第二端口(PCIE端口)通过PCIE链路,与所述管理控制器2021相连。当所述端点代理 设备2014的第二端口与所述管理控制器2021通过I2C链路连接时,所述管理控制器2021为 所述端点代理设备2014分配I2C号,并根据所述端点代理设备2014的I2C号,将对端点设备 (例如端点设备2015)的访问请求发送到所述端点代理设备。当所述端点代理设备2014的第 二端口与所述管理控制器2021通过PCIE链路连接时,所述管理控制器2021分配所述端点代 理设备2014在所述管理子系统202中的第二地址,所述端点代理设备2014在所述管理子系 统202中的第二地址的范围包含端点设备(包括端点设备2015、端点设备2016、端点设备 2016)在所述管理子系统中202中的地址范围。所述管理控制器2021根据所述端点代理设备 2014在所述管理子系统中的第二地址,将对端点设备(例如端点设备2015)的访问请求发送 到所述端点代理设备。
[0115] 作为一种可选的实现方式,中央处理器2011通过BIOS程序完成计算机设备200中 计算子系统201所有的端点设备设备后,可以将计算子系统201中除端点代理设备2014之外 的端点设备的设备信息,中央处理器2011通过南桥芯片2018写入管理子系统202中的管理 控制器2021中,然后由管理控制器2021通过所述管理控制器2021的第二端口将所述端点设 备在计算子系统201中的设备信息写入端点代理设备2014中。
[0116] 管理子系统202中的管理控制器2021获取计算子系统201中除所述端点代理设备 2014之外的所有端点设备的设备信息后,为每个端点设备分配管理子系统的地址空间(包 括输入/输出I/O地址空间,或内存memory地址空间)。具体的,可以是管理控制器2021根据 所述端点设备(例如端点设备2015)在所述计算子系统201中的第一地址分配所述端点设备 (例如端点设备2015)在所述管理子系统202中的第二地址,该第二地址可以是I/O地址空间 或memory地址空间。管理控制器2021根据所述端点设备2014在所述计算子系统201中的第 一地址分配所述端点设备(例如端点设备2015)在所述管理子系统202中的第二地址后,将 所述端点设备(例如端点设备2015)在所述管理子系统202中的第二地址写入所述端点代理 设备2014中。端点代理设备2014建立每个端点设备(例如端点设备2015)在管理子系统202 的地址空间,例如所述第二地址,与每个端点设备(例如端点设备2015)在计算子系统202的 地址空间,例如所述第一地址,之间的对应关系。这种对应关系可以如表1所示:
[0119]表 1
[0120] 表1中,管理控制器2021为端点设备2015分配的管理I/O地址空间All~A12与端点 设备2015的物理I/O地址空间C11~C12大小相同且对应,管理控制器2021为端点设备2015 分配的管理memory地址空间B11~B12与端点设备2015的物理memory地址空间D11~D12大 小相同且对应。管理控制器2021为其它端点设备分配的管理地址空间,与端点设备2015分 配的管理地址空间类同,不再赘述。
[0121] 管理控制器2021能够根据分配的所述地址空间,通过所述端点代理设备2014访问 端点设备,例如访问端点设备2015、端点设备2016和端点设备2017等,实现对端点设备的配 置或管理。
[0122] 所述端点代理设备2014接收管理控制器2021发送的对端点设备(例如端点设备 2015)的第一访问请求,该第一访问请求携带为端点设备(例如端点设备2015)在所述管理 子系统202中分配的地址空间,例如所述第二地址。所述端点代理设备2014根据保存的地址 空间的对应关系(例如所述端点设备2015的第一地址与第二地址之间的对应关系),转换为 端点设备在计算子系统的物理地址空间,例如所述第一地址,生成携带所述端点设备在所 述计算子系统中的第一地址的第二访问请求,并通过PCIE交换模块2013将所述第二访问请 求转发给端点设备(例如端点设备2015)。例如,管理控制器2021要访问端点设备2015的 memory空间,则基于对端点设备2015分配的memory地址(D11~D12 ),发送访问请求到端点 代理设备2014。端点代理设备2014接收到管理控制器2021发送的访问请求,基于保存的 memory空间对应关系,转换为端点设备2015的物理memory空间(B11~B12),并基于该端点 设备2015的物理memory空间,将管理控制器2021的访问请求通过PCIE交换模块2013发送给 端点设备2015。
[0123] 作为一种可选的实现方式,如图3所示,所述端点代理设备2014也可以位于所述管 理控制器2021中,所述管理控制器2021与端点代理设备2014直接交互,实现设备信息和管 理命令的转发。
[0124] 具体的,如图4所示,所述端点代理设备2014包括地址管理单元20141和控制单元 20142。其中,地址管理单元20141用于存储中央处理器2011通过BIOS程序写入的端点设备 的信息,例如每个端点设备的B/D/F号、物理I/0地址空间和物理Memory地址空间,设备类型 等;并且还存储管理控制器2021写入的为每个端点设备分配的地址空间的信息,建立每个 端点设备的物理1/0地址空间与管理控制器2021分配的1/0地址空间的对应关系,以及每个 端点设备的物理memory地址空间与管理控制器2021分配的memory地址空间的对应关系。
[0125] 控制单元20142用于接收管理控制器2021的访问请求,根据访问请求中携带的1/0 地址信息或memory地址信息,从所述地址管理单元20141中获取对应的端点设备的物理1/0 地址或对应的物理memory地址,基于获取的具体的物理I /0地址或对应的物理memory地址, 将管理控制器2021的访问请求发送给相应的端点设备。具体的,控制单元20142在获取到具 体的物理1/0地址或对应的物理memory地址后,通过构造TLP报文,通过PCIE链路发送给 PCIE交换模块2013,并通过PCIE交换模块2013将构造的TLP报文发送给对应的端点设备。
[0126] 为进一步说明本发明实施例中端点代理设备的实现方式,如图5所示,所述端点代 理设备2014还包括转发单元20143(即PCIE Core),用于接收中央处理器2011通过BIOS程序 的初始化、基地址空间配置,资源分配请求等,并为所述转换单元20142提供标准的PCIE传 输层服务。在实现端点代理设备2014在转发管理控制器2021的访问请求时,所述转发单元 20143具体用于接收所述控制单元20142生成的TLP报文,并发送给PCIE交换单元2013。并 且,在端点设备返回TLP报文时,接收PCIE交换单元2013转发的TLP报文,发送给所述控制单 元20142。
[0127] 参考图6,图6为端点代理设备2014中转发单元20143具体实现结构示意图。转发单 元20143包括物理层(Physical Layer)、数据链路层(Data Link Layer)和传输层 (Transport Layer),以及配置单元(包括但不限于I/O或Memory的配置等)。转发单元20143 通过物理层、数据链路层和传输层实现控制单元20142发送的报文的转发,以及将PCIE交换 模块2013转发的TLP报文发送给所述控制单元20142。
[0128] 参考图7,图7为本发明实施例一种计算机系统300的结构示意图。计算机系统300 包括计算子系统301和管理子系统302,所述计算子系统301包括中央处理器3011,所述管理 子系统302包括管理控制器3021,所述中央处理器3011连接端点设备(包括端点设备3015、 端点设备3016和/或端点设备3017)以及端点代理设备3014;
[0129] 所述计算机系统301还包括端点代理设备3014,所述端点代理设备3014的第一端 口(图中未示出)通过PCIE链路连接所述计算子系统301中的所述中央处理器3011,所述端 点代理设备3014的第二端口(图中未示出)与所述管理子系统302中的所述管理控制器3021 连接;
[0130]所述中央处理器3011,用于分配所述端点设备(例如端点设备3015)在所述计算子 系统301中的设备信息,并将所述端点设备(例如端点设备3015)在所述计算子系统301中的 设备信息写入所述端点代理设备3014,所述端点设备(例如端点设备3015)在所述计算子系 统301中的设备信息至少包括所述端点设备(例如端点设备3015)在所述计算子系统301中 的第一地址信息;
[0131]所述管理控制器3021,用于在确定所述端点代理设备3014中被写入所述端点设备 (例如端点设备3015)在所述计算子系统中的设备信息后,根据所述端点设备(例如端点设 备3015)在所述计算子系统301中的第一地址分配所述端点设备(例如端点设备3015)在所 述管理子系统302中的第二地址,并将所述端点设备(例如端点设备3015)在所述管理子系 统302中的第二地址写入所述端点代理设备3014;
[0132] 所述端点代理设备3014,用于在被写入所述第二地址之后,建立所述端点设备(例 如端点设备3015)在所述计算子系统301中的第一地址与所述端点设备(例如端点设备 3015)在所述管理子系统302中的第二地址之间的对应关系;
[0133] 所述管理控制器3021还用于发送第一访问请求,所述第一访问请求携带所述端点 设备(例如端点设备3015)在所述管理子系统302中的的第二地址;
[0134] 所述端点代理设备3014还用于通过所述第二端口与所述管理控制器3021的连接 接收所述管理控制器3021发送的所述第一访问请求,根据所述对应关系生成携带所述端点 设备(例如端点设备3015)在所述计算子系统301中的第一地址的第二访问请求,并通过所 述第一端口连接的所述PCIE链路将所述第二访问请求发送给所述端点设备(例如端点设备 3015)。
[0135] 上述计算机系统中,端点代理设备3014建立端点设备(例如端点设备3015)在所述 计算子系统301中的第一地址与在所述管理子系统302中的第二地址之间的对应关系,在接 收到管理控制器3021对端点设备(例如端点设备3015)第一访问请求时,根据所述对应关系 生成携带所述端点设备(例如端点设备3015)在所述计算子系统301中的第一地址的第二访 问请求,并发送给所述端点设备(例如端点设备3015)。实现了管理控制器3021对端点设备 访问请求的发送到所述端点设备,且不需要操作依赖于操作系统,不需要对不同的端点设 备进行不同的管理配置,提高了对端点设备进行管理时的可维护性。
[0136] 在具体实现中,作为一种较优的实现方式,所述中央处理器3011可以在所述计算 子系统301初始化过程中,根据基本输入输出系统BIOS的指令扫描到所述端点设备(例如端 点设备3015)和所述端点代理设备3014,分别为所述端点设备(例如端点设备3015)和所述 端点代理设备3014分配在所述计算子系统301中的设备信息,并将所述端点设备(例如端点 设备3015)在所述计算子系统301中的设备信息写入所述端点代理设备3014。其中,所述端 点设备在所述计算子系统中的设备信息可以是下述信息中的至少一项:所述端点设备的输 入输出I/O地址信息,所述端点设备的内存Memory地址信息,所述端点设备的总线/设备/功 能B/D/F号,或所述端点设备的设备类型信息。相应的,所述第一地址可以是所述端点设备 的输入输出I/O地址信息,也可以是所述端点设备的内存Memory地址信息。
[0137] 可选的,所述中央处理器3011可以根据分配的所述端点代理设备3014的在所述计 算子系统301中的设备信息,通过所述第一端口连接的所述PCIE链路向所述端点代理设备 3014写入所述端点设备(例如端点设备3015)在所述计算子系统301中的设备信息。
[0138] 在具体实现中,如图8所示,所述管理控制器3021还可以通过南桥芯片3018与所述 中央处理器3011连接。相应的,所述中央处理器3011具体用于通过所述南桥芯片3018将所 述端点设备(例如端点设备3015)在所述计算子系统301中的设备信息通知到所述管理控制 器3021;所述管理控制器3021将获取到的所述端点设备(例如端点设备3015)在所述计算子 系统301中的设备信息写入所述端点代理设备3014。具体的,可以是通过所述端点代理设备 3014的第二端口的连接将所述端点设备(例如端点设备3015)在所述计算子系统301中的设 备信息写入所述端点代理设备3014。
[0139] 当所述端点代理设备3014被写入所述端点设备(例如端点设备3015)在所述计算 子系统301中的设备信息后,可以通过两种方式通知管理控制器3021。
[0140] 一种是所述端点代理设备3014向所述管理控制器3021发送通知消息,管理控制器 3021接收所述端点代理设备3014发送的所述通知消息,根据所述通知消息确定所述端点代 理设备3014中被写入所述端点设备(例如端点设备3015)在所述计算子系统301中的设备信 息。
[0141] 另一种是管理控制器3021周期性地向所述端点代理设备3014发送查询消息,接收 所述端点代理设备3014发送的所述查询消息的响应消息,根据所述查询消息的响应消息确 定所述端点代理设备3014中被写入所述端点设备(例如端点设备3015)在所述计算子系统 301中的设备信息。
[0142] 本发明实施例中,作为一种可选的实现方式,所述端点代理设备3014的第二端口 与所述管理子系统302中的所述管理控制器3021可以通过内部集成电路I2C连接。当所述端 点代理设备3014的第二端口与所述管理控制器3021通过I2C连接时,所述管理控制器3021 为所述端点代理设备3014分配I2C号并根据分配的I2C号,将所述第一访问请求发送到所述 端点代理设备3014。
[0143] 所述端点代理设备3014的第二端口与所述管理子系统302中的所述管理控制器 3021也可以通过PCIE链路连接。当所述端点代理设备3014的第二端口与所述管理控制器 3021通过PCIE链路连接时,所述管理控制器3021分配所述端点代理设备3014在所述管理子 系统302中的第二地址,所述第二地址的范围包含所述端点设备(例如端点设备3015)在所 述管理子系统302中的第二地址的范围,所述管理控制器3021根据所述端点设备(例如端点 设备3015)在所述管理子系统302中的第二地址,将所述第一访问请求发送到所述端点代理 设备3014。
[0144] 需要说明的是,上述第一地址还可以是所述端点设备(例如端点设备3015)在计算 子系统301中的地址空间,例如上述表2所述的物理I/O地址空间或物理Memory地址空间。所 述第二地址可以是与所述第一地址对应的地址空间,如表2中的管理地址空间类似。在管理 控制器3021访问端点设备(例如端点设备3015)的地址时,通常是访问端点设备的一段地址 空间,本发明实施例从简化角度,表述为第一地址或第二地址,实际实现中,第一第一可以 是一段地址空间,第二地址也可以是一段地址空间。
[0145] 可选的,如图8所示,所述计算子系统301还可以包括PCIE交换设备3013,所述端点 设备(例如端点设备3015)通过所述PCIE交换设备连接到所述中央处理器3011,相应的,所 述端点代理设备3014的第一端口通过PCIE链路连接所述PCIE交换设备以连接到所述中央 处理器3011。其中,所述PCIE交换设备3013可以是图3中的PCIE交换模块2013,即可以通过 硬件或软件实现,本发明实施例不限定具体的实现方式。
[0146] 可选的,本发明实施例中,所述端点代理设备3014可以位于所述计算子系统301 中,也可以位于所述管理子系统302的管理控制器3021中。
[0147] 上述图7或图8所示的实施例的具体实现方式,还可以参照图2至图6所示的实施例 的实现方式实现,不再赘述。
[0148] 参考图9,图9为本发明实施例一种对计算机系统中端点设备进行访问的方法流程 示意图。其中,包括计算子系统和管理子系统,所述计算子系统包括中央处理器,所述管理 子系统包括管理控制器,所述中央处理器用于连接端点设备;所述方法包括:
[0149] 步骤900:所述中央处理器为所述端点设备分配在所述计算子系统中的设备信息, 并将所述端点设备在所述计算子系统中的设备信息写入所述计算子系统中的端点代理设 备中,所述端点设备在所述计算子系统中的设备信息至少包括所述端点设备在所述计算子 系统中的第一地址信息;
[0150]步骤902:所述管理控制器在确定所述端点代理设备中被写入所述端点设备在所 述计算子系统中的设备信息后,根据所述端点设备在所述计算子系统中的第一地址分配所 述端点设备在所述管理子系统中的第二地址,并将所述端点设备在所述管理子系统中的第 二地址写入所述端点代理设备;
[0151]步骤904:所述端点代理设备在被写入所述第二地址之后,建立所述端点设备在所 述计算子系统中的第一地址与所述端点设备在所述管理子系统中的第二地址之间的对应 关系;所述端点代理设备的第一端口通过PCIE链路连接所述计算子系统中的所述中央处理 器,所述端点代理设备的第二端口与所述管理子系统中的所述管理控制器连接;
[0152]步骤906:所述管理控制器发送第一访问请求,所述第一访问请求携带所述端点设 备在所述管理子系统中的的第二地址;
[0153]步骤908:所述端点代理设备通过所述第二端口与所述管理控制器的连接接收所 述管理控制器发送的所述第一访问请求,根据所述对应关系生成携带所述端点设备在所述 计算子系统中的第一地址的第二访问请求,并通过所述第一端口连接的所述PCIE链路将所 述第二访问请求发送给所述端点设备。
[0154]上述方法实施例中,端点代理设备建立端点设备在所述计算子系统中的第一地址 与在所述管理子系统中的第二地址之间的对应关系,在接收到管理控制器对端点设备第一 访问请求时,根据所述对应关系生成携带所述端点设备在所述计算子系统中的第一地址的 第二访问请求,并发送给所述端点设备。实现了管理控制器对端点设备访问请求的发送到 所述端点设备,且不需要操作依赖于操作系统,不需要对不同的端点设备进行不同的管理 配置,提高了对端点设备进行管理时的可维护性。
[0155]在具体实现时,所述方法还可以包括:
[0156]所述中央处理器在所述计算子系统初始化过程中,根据基本输入输出系统BIOS的 指令扫描到所述端点设备和所述端点代理设备,分别为所述端点设备和所述端点代理设备 分配在所述计算子系统中的设备信息,并将所述端点设备在所述计算子系统中的设备信息 写入所述端点代理设备。其中,所述端点设备在所述计算子系统中的设备信息可以是下述 信息中的至少一项:所述端点设备的输入输出I/O地址信息,所述端点设备的内存Memory地 址信息,所述端点设备的总线/设备/功能B/D/F号,或所述端点设备的设备类型信息。相应 的,所述第一地址可以是所述端点设备的输入输出I/O地址信息,也可以是所述端点设备的 内存Memory地址信息。
[0157] 可选的,所述中央处理器根据分配的所述端点代理设备的在所述计算子系统中的 设备信息,通过所述第一端口连接的所述PCIE链路向所述端点代理设备写入所述端点设备 在所述计算子系统中的设备信息。或者,所述管理控制器与所述中央处理器通过南桥芯片 连接,所述中央处理器通过所述南桥芯片将所述端点设备在所述计算子系统中的设备信息 通知到所述管理控制器,所述管理控制器将获取到的所述端点设备在所述计算子系统中的 设备信息通过所述第二端口的连接写入所述端点代理设备。
[0158] 当所述端点代理设备被写入所述端点设备在所述计算子系统中的设备信息后,可 以通过两种方式通知管理控制器。
[0159] -种是所述端点代理设备在被写入所述端点设备在所述计算子系统中的设备信 息后,向所述管理控制器发送通知消息,所述管理控制器接收所述端点代理设备发送的所 述通知消息,根据所述通知消息确定所述端点代理设备中被写入所述端点设备在所述计算 子系统中的设备信息。
[0160]另一种是所述管理控制器周期性地向所述端点代理设备发送查询消息,接收所述 端点代理设备发送的所述查询消息的响应消息,根据所述查询消息的响应消息确定所述端 点代理设备中被写入所述端点设备在所述计算子系统中的设备信息。
[0161]作为一种可选的实现方式,所述端点代理设备的第二端口与所述管理子系统中的 所述管理控制器通过内部集成电路12C连接,所述方法还包括:
[0162] 所述管理控制器为所述端点代理设备分配I2C号;
[0163] 所述管理控制器根据所述端点代理设备的I2C号,将所述第一访问请求发送到所 述端点代理设备。
[0164] 或者,所述端点代理设备的第二端口与所述管理子系统中的所述管理控制器通过 PCIE链路连接,所述方法还包括:
[0165] 所述管理控制器还用于分配所述端点代理设备在所述管理子系统中的第二地址, 所述端点代理设备在所述管理子系统中的第二地址的范围包含所述端点设备在所述管理 子系统中的第二地址的范围,所述管理控制器具体用于根据所述端点设备在所述管理子系 统中的第二地址,将所述第一访问请求发送到所述端点代理设备。
[0166] 需要说明的是,上述第一地址还可以是所述端点设备在计算子系统301中的地址 空间,例如上述表2所述的物理I/O地址空间或物理Memory地址空间。所述第二地址可以是 与所述第一地址对应的地址空间,如表2中的管理地址空间类似。在管理控制器访问端点设 备的地址时,通常是访问端点设备的一段地址空间,本发明实施例从简化角度,表述为第一 地址或第二地址,实际实现中,第一第一可以是一段地址空间,第二地址也可以是一段地址 空间。
[0167] 可选的,所述计算子系统还包括PCIE交换设备,所述端点设备通过所述PCIE交换 设备连接到所述中央处理器,所述端点代理设备的第一端口通过PCIE链路连接所述PCIE交 换设备以连接到所述中央处理器。其中,所述PCIE交换设备3013可以是图3中的PCIE交换模 块2013,即可以通过硬件或软件实现,本发明实施例不限定具体的实现方式。
[0168] 可选的,所述端点代理设备位于所述计算子系统中或位于所述管理子系统的管理 控制器中。
[0169] 上述方法实施例的具体实现方式,还可以参照图2至图6所示的实施例的实现方式 实现,不再赘述。
[0170] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单 元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件 和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这 些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专 业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不 应认为超出本发明的范围。
[0171] 所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系 统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0172] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以 通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的 划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件 可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨 论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合 或通信连接,也可以是电的,机械的或其它的形式连接。
[0173]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显 示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个 网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案 的目的。
[0174] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以 是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的 单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0175] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用 时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上 或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式 体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机 设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全 部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程 序代码的介质。
[0176]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何 熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替 换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利 要求的保护范围为准。
【主权项】
1. 一种计算机系统,其特征在于,包括计算子系统和管理子系统,所述计算子系统包括 中央处理器,所述管理子系统包括管理控制器,所述中央处理器用于连接端点设备; 所述计算机系统还包括端点代理设备,所述端点代理设备的第一端口通过PCIE链路连 接所述计算子系统中的所述中央处理器,所述端点代理设备的第二端口与所述管理子系统 中的所述管理控制器连接; 所述中央处理器,用于分配所述端点设备在所述计算子系统中的设备信息,并将所述 端点设备在所述计算子系统中的设备信息写入所述端点代理设备,所述端点设备在所述计 算子系统中的设备信息至少包括所述端点设备在所述计算子系统中的第一地址信息; 所述管理控制器,用于在确定所述端点代理设备中被写入所述端点设备在所述计算子 系统中的设备信息后,根据所述端点设备在所述计算子系统中的第一地址分配所述端点设 备在所述管理子系统中的第二地址,并将所述端点设备在所述管理子系统中的第二地址写 入所述端点代理设备; 所述端点代理设备,用于在被写入所述第二地址之后,建立所述端点设备在所述计算 子系统中的第一地址与所述端点设备在所述管理子系统中的第二地址之间的对应关系; 所述管理控制器还用于发送第一访问请求,所述第一访问请求携带所述端点设备在所 述管理子系统中的的第二地址; 所述端点代理设备还用于通过所述第二端口与所述管理控制器的连接接收所述管理 控制器发送的所述第一访问请求,根据所述对应关系生成携带所述端点设备在所述计算子 系统中的第一地址的第二访问请求,并通过所述第一端口连接的所述PCIE链路将所述第二 访问请求发送给所述端点设备。2. 根据权利要求1所述的计算机系统,其特征在于, 所述中央处理器具体用于在所述计算子系统初始化过程中,根据基本输入输出系统 BIOS的指令扫描到所述端点设备和所述端点代理设备,分别为所述端点设备和所述端点代 理设备分配在所述计算子系统中的设备信息,并将所述端点设备在所述计算子系统中的设 备信息写入所述端点代理设备。3. 根据权利要求2所述的计算机系统,其特征在于,所述中央处理器具体用于根据分配 的所述端点代理设备的在所述计算子系统中的设备信息,通过所述第一端口连接的所述 PCIE链路向所述端点代理设备写入所述端点设备在所述计算子系统中的设备信息。4. 根据权利要求2所述的计算机系统,其特征在于,所述管理控制器与所述中央处理器 通过南桥芯片连接; 所述中央处理器具体用于通过所述南桥芯片将所述端点设备在所述计算子系统中的 设备信息通知到所述管理控制器; 所述管理控制器还用于将获取到的所述端点设备在所述计算子系统中的设备信息通 过所述第二端口的连接写入所述端点代理设备。5. 根据权利要求2-4任一项所述的计算机系统,其特征在于, 所述端点代理设备还用于在被写入所述端点设备在所述计算子系统中的设备信息后, 向所述管理控制器发送通知消息; 所述管理控制器具体用于接收所述端点代理设备发送的所述通知消息,根据所述通知 消息确定所述端点代理设备中被写入所述端点设备在所述计算子系统中的设备信息。6. 根据权利要求2-4任一项所述的计算机系统,其特征在于, 所述管理控制器具体用于周期性地向所述端点代理设备发送查询消息,接收所述端点 代理设备发送的所述查询消息的响应消息,根据所述查询消息的响应消息确定所述端点代 理设备中被写入所述端点设备在所述计算子系统中的设备信息。7. 根据权利要求1-6任一项所述的计算机系统,其特征在于,所述端点代理设备的第二 端口与所述管理子系统中的所述管理控制器通过内部集成电路I2C连接; 所述管理控制器还用于为所述端点代理设备分配I2C号; 所述管理控制器具体用于根据所述端点代理设备的I2C号,将所述第一访问请求发送 到所述端点代理设备。8. 根据权利要求1-6任一项所述的计算机系统,其特征在于,所述端点代理设备的第二 端口与所述管理子系统中的所述管理控制器通过PCIE链路连接; 所述管理控制器还用于分配所述端点代理设备在所述管理子系统中的第二地址,所述 端点代理设备在所述管理子系统中的第二地址的范围包含所述端点设备在所述管理子系 统中的第二地址的范围; 所述管理控制器具体用于根据所述端点设备在所述管理子系统中的第二地址,将所述 第一访问请求发送到所述端点代理设备。9. 根据权利要求1-8任一项所述的计算机系统,其特征在于,所述计算子系统还包括 PCIE交换设备,所述端点设备通过所述PCIE交换设备连接到所述中央处理器; 所述端点代理设备的第一端口通过PCIE链路连接所述PCIE交换设备以连接到所述中 央处理器。10. 根据权利要求1-9任一所述的计算机系统,其特征在于: 所述端点代理设备位于所述计算子系统中;或, 所述端点代理设备位于所述管理子系统的管理控制器中。11. 根据权利要求1-10任一所述的计算机系统,其特征在于: 所述端点设备在所述计算子系统中的设备信息包括下述信息中的至少一项: 所述端点设备的输入输出I/O地址信息,所述端点设备的内存Memory地址信息,所述端 点设备的总线/设备/功能B/D/F号,或所述端点设备的设备类型信息。12. -种对计算机系统中端点设备进行访问的方法,其特征在于,包括计算子系统和管 理子系统,所述计算子系统包括中央处理器,所述管理子系统包括管理控制器,所述中央处 理器用于连接端点设备;所述方法包括: 所述中央处理器为所述端点设备分配在所述计算子系统中的设备信息,并将所述端点 设备在所述计算子系统中的设备信息写入所述计算子系统中的端点代理设备中,所述端点 设备在所述计算子系统中的设备信息至少包括所述端点设备在所述计算子系统中的第一 地址信息; 所述管理控制器在确定所述端点代理设备中被写入所述端点设备在所述计算子系统 中的设备信息后,根据所述端点设备在所述计算子系统中的第一地址分配所述端点设备在 所述管理子系统中的第二地址,并将所述端点设备在所述管理子系统中的第二地址写入所 述端点代理设备; 所述端点代理设备在被写入所述第二地址之后,建立所述端点设备在所述计算子系统 中的第一地址与所述端点设备在所述管理子系统中的第二地址之间的对应关系;所述端点 代理设备的第一端口通过PCIE链路连接所述计算子系统中的所述中央处理器,所述端点代 理设备的第二端口与所述管理子系统中的所述管理控制器连接; 所述管理控制器发送第一访问请求,所述第一访问请求携带所述端点设备在所述管理 子系统中的的第二地址; 所述端点代理设备通过所述第二端口与所述管理控制器的连接接收所述管理控制器 发送的所述第一访问请求,根据所述对应关系生成携带所述端点设备在所述计算子系统中 的第一地址的第二访问请求,并通过所述第一端口连接的所述PCIE链路将所述第二访问请 求发送给所述端点设备。13. 根据权利要求12所述的方法,其特征在于,所述方法还包括: 所述中央处理器在所述计算子系统初始化过程中,根据基本输入输出系统BIOS的指令 扫描到所述端点设备和所述端点代理设备,分别为所述端点设备和所述端点代理设备分配 在所述计算子系统中的设备信息,并将所述端点设备在所述计算子系统中的设备信息写入 所述端点代理设备。14. 根据权利要求13所述的方法,其特征在于,所述方法还包括: 所述中央处理器根据分配的所述端点代理设备的在所述计算子系统中的设备信息,通 过所述第一端口连接的所述PCIE链路向所述端点代理设备写入所述端点设备在所述计算 子系统中的设备信息。15. 根据权利要求13所述的方法,其特征在于,所述管理控制器与所述中央处理器通过 南桥芯片连接,所述方法还包括: 所述中央处理器通过所述南桥芯片将所述端点设备在所述计算子系统中的设备信息 通知到所述管理控制器; 所述管理控制器将获取到的所述端点设备在所述计算子系统中的设备信息通过所述 第二端口的连接写入所述端点代理设备。16. 根据权利要求13-15任一项所述的方法,其特征在于,所述方法还包括: 所述端点代理设备在被写入所述端点设备在所述计算子系统中的设备信息后,向所述 管理控制器发送通知消息; 所述管理控制器接收所述端点代理设备发送的所述通知消息,根据所述通知消息确定 所述端点代理设备中被写入所述端点设备在所述计算子系统中的设备信息。17. 根据权利要求13-15任一项所述的方法,其特征在于,所述方法还包括: 所述管理控制器周期性地向所述端点代理设备发送查询消息,接收所述端点代理设备 发送的所述查询消息的响应消息,根据所述查询消息的响应消息确定所述端点代理设备中 被写入所述端点设备在所述计算子系统中的设备信息。18. 根据权利要求12-17任一项所述的方法,其特征在于,所述端点代理设备的第二端 口与所述管理子系统中的所述管理控制器通过内部集成电路I2C连接,所述方法还包括: 所述管理控制器为所述端点代理设备分配I2C号; 所述管理控制器根据所述端点代理设备的I2C号,将所述第一访问请求发送到所述端 点代理设备。19. 根据权利要求12-17任一项所述的方法,其特征在于,所述端点代理设备的第二端 口与所述管理子系统中的所述管理控制器通过PCIE链路连接,所述方法还包括: 所述管理控制器还用于分配所述端点代理设备在所述管理子系统中的第二地址,所述 端点代理设备在所述管理子系统中的第二地址的范围包含所述端点设备在所述管理子系 统中的第二地址的范围; 所述管理控制器具体用于根据所述端点设备在所述管理子系统中的第二地址,将所述 第一访问请求发送到所述端点代理设备。20. 根据权利要求12-19任一项所述的方法,其特征在于,所述计算子系统还包括PCIE 交换设备,所述端点设备通过所述PCIE交换设备连接到所述中央处理器; 所述端点代理设备的第一端口通过PCIE链路连接所述PCIE交换设备以连接到所述中 央处理器。21. 根据权利要求12-20任一所述的方法,其特征在于: 所述端点代理设备位于所述计算子系统中;或, 所述端点代理设备位于所述管理子系统的管理控制器中。22. 根据权利要求12-21任一所述的方法,其特征在于: 所述端点设备在所述计算子系统中的设备信息包括下述信息中的至少一项: 所述端点设备的输入输出I/O地址信息,所述端点设备的内存Memory地址信息,所述端 点设备的总线/设备/功能B/D/F号,或所述端点设备的设备类型信息。
【文档编号】G06F13/12GK105874442SQ201580003596
【公开日】2016年8月17日
【申请日】2015年9月21日
【发明人】苏德现
【申请人】华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1