CN116360995A - 一种pcie资源分配方法、装置及介质 - Google Patents

一种pcie资源分配方法、装置及介质 Download PDF

Info

Publication number
CN116360995A
CN116360995A CN202310336963.8A CN202310336963A CN116360995A CN 116360995 A CN116360995 A CN 116360995A CN 202310336963 A CN202310336963 A CN 202310336963A CN 116360995 A CN116360995 A CN 116360995A
Authority
CN
China
Prior art keywords
pcie
root port
resource allocation
pcie root
bandwidth
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310336963.8A
Other languages
English (en)
Inventor
郑媛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202310336963.8A priority Critical patent/CN116360995A/zh
Publication of CN116360995A publication Critical patent/CN116360995A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

本申请公开了一种PCIE资源分配方法、装置及介质,属于电子技术领域,所述方法包括:获取所述PCIE根端口的Pcd状态值;根据所述PCIE根端口的Pcd状态值通过PCIE带宽分配初始化函数对所述PCIE根端口分配带宽;对所述服务器CPU的PCIE总线资源预留设置控制选项值进行判断;根据带宽分配结果以及判断结果对所述CPU的各个PCIE根端口进行资源分配。本申请可以满足产线生产兼容智能网卡等多种配置通过一个BIOS版本覆盖,节省了生产成本;同时BIOS配置界面提供选项菜单支持PCIE总线资源预留的手动设置,便于对多PCIE根端口接入智能网卡的测试或功能验证,为智能网卡的测试验证工作提供多种手段和操作方式。

Description

一种PCIE资源分配方法、装置及介质
技术领域
本申请涉及电子技术领域,特别涉及一种PCIE资源分配方法、装置及介质。
背景技术
随着云计算的快速发展,在互联网行业,智能网卡(SmartNIC)在数据中心得到广泛应用;智能网卡是一种灵活可编程的网卡,与服务器配合使用。智能网卡具备计算能力,能将所有网络功能、安全功能和存储功能从主机服务器卸载到可编程硬件芯片执行,可以减轻中央处理器(CPU)负担,提高计算效力,使服务器能够更有效运行关键应用程序和操作系统,优化业务数据处理整体效力。根据数据加密、数据解密、数据分组检测及存储功能的实现,智能网卡可分别应用于云安全、防火墙、安全组和云存储;根据数据分组查表的功能实现,智能网卡也可应用于虚拟路由或虚拟交换机。智能网卡可以满足数据中心需要更快的网络速度,更大的存储空间,更强的数据处理能力的需求。
基本输入输出系统(BIOS、BasicInputOutputSystem)作为固化到计算机主板一个ROM芯片上的程序,可以实现开机启动过程对服务器主板上的处理器(CPU)、内存、芯片组(Chipset)以及各种输入输出设备的初始化,同时PCIE总线(Bus)资源的分配也是由基本输入输出系统来完成。
但是,现在服务器对周边设备高速连接标准(PCIE、PeripheralComponentInterconnectExpress)总线资源的分配不能兼顾智能网卡和非智能网卡等多种配置,同时现在搭配智能网卡的服务器因为硬件结构原因都是固定一个或两个PCIE根端口(RootPort)用来接入智能网卡,不能支持多个PCIE根端口(Root Port)对智能网卡进行测试或验证功能。
发明内容
为了克服上述技术缺陷,本申请的目的在于提供一种PCIE资源分配方法、装置及介质,所述方法包括:获取所述PCIE根端口的接入(Pcd)状态值;根据所述PCIE根端口的Pcd状态值通过PCIE带宽分配初始化函数对所述PCIE根端口分配带宽;对所述服务器CPU的PCIE总线资源预留设置控制选项值进行判断;根据带宽分配结果以及判断结果对所述CPU的各个PCIE根端口进行资源分配。本申请可以满足产线生产兼容智能网卡等多种配置通过一个BIOS版本覆盖,节省了生产成本;同时BIOS配置界面提供选项菜单支持PCIE总线资源预留的手动设置,便于对多PCIE根端口接入智能网卡的测试或功能验证,为智能网卡的测试验证工作提供多种手段和操作方式。
本申请实施例提供的具体技术方案如下:
第一方面,提供了一种PCIE资源分配方法,所述方法应用于服务器,所述方法包括:
获取所述PCIE根端口的Pcd状态值;
根据所述PCIE根端口的Pcd状态值通过PCIE带宽分配初始化函数对所述PCIE根端口分配带宽得到带宽分配结果;
对所述服务器CPU的PCIE总线资源预留设置控制选项值进行判断得到判断结果;
根据所述带宽分配结果以及判断结果对所述CPU的各个PCIE根端口进行资源分配。
进一步地,所述根据所述带宽分配结果以及判断结果对所述中央处理器的各个PCIE根端口进行资源分配,包括:
根据判断结果对所述中央处理器的各个PCIE根端口进行资源分配;
根据各PCIE根端口的带宽对其对应的资源分配结果进行调整,得到最终的资源分配结果。
进一步地,所述根据所述PCIE根端口的Pcd状态值通过PCIE带宽分配初始化函数对所述PCIE根端口分配带宽,包括:
当所述PCIE根端口的Pcd状态值为第一阈值时,则通过编码对所述PCIE根端口分配第一带宽;
当所述PCIE根端口的Pcd状态值为第二阈值时,则根据PCIE设备参数对所述PCIE根端口分配带宽。
进一步地,所述根据判断结果对所述CPU的各个PCIE根端口进行资源分配,包括:
当所述服务器CPU的PCIE总线资源预留设置控制选项值为自动选项值时,则根据所述PCIE根端口的Pcd状态值对各个PCIE根端口进行资源分配。
进一步地,所述根据所述PCIE根端口的Pcd状态值对各个PCIE根端口进行资源分配,包括:
重新获取所述PCIE根端口的Pcd状态值;
当所述PCIE根端口的Pcd状态值为第一阈值时,则先对Pcd状态值为第一阈值的PCIE根端口分配PCIE总线资源后,再对其它PCIE根端口平均分配剩余的PCIE总线资源;
当所述PCIE根端口的Pcd状态值为第二阈值时,则对各个PCIE根端口平均分配PCIE总线资源。
进一步地,所述根据判断结果对所述CPU的各个PCIE根端口进行资源分配,还包括:
当所述服务器CPU的PCIE总线资源预留设置控制选项值为手动选项值时,则获取PCIE总线资源分配比率库分配给所述CPU的PCIE总线资源,根据所述CPU的PCIE总线资源预留选项设置对所述CPU的各个PCIE根端口进行资源分配。
进一步地,所述根据所述CPU的PCIE总线资源预留选项设置对所述CPU的各个PCIE根端口进行资源分配,包括:
对所述CPU的各个PCIE根端口增加设置PCIE总线资源分配的选项;
根据各个PCIE根端口的PCIE设备参数对各个PCIE根端口的PCIE总线资源分配的选项进行设置。
进一步地,所述根据所述CPU的PCIE总线资源预留选项设置对所述CPU的各个PCIE根端口进行资源分配之后,包括:
判断所述各个PCIE根端口的资源预留总数是否大于第三阈值;
若是,则基本输入输出系统进行错误信息上报,并记录到错误日志中;若否,则结束PCIE资源分配流程。
第二方面,提供了一种PCIE资源分配装置,所述装置包括:
获取模块,用于获取所述PCIE根端口的Pcd状态值;
第一分配模块,用于根据所述PCIE根端口的Pcd状态值通过PCIE带宽分配初始化函数对所述PCIE根端口分配带宽得到带宽分配结果;
判断模块,用于对所述服务器CPU的PCIE总线资源预留设置控制选项值进行判断得到判断结果;
第二分配模块,用于根据所述带宽分配结果以及判断结果对所述CPU的各个PCIE根端口进行资源分配。
第三方面,提供了一种计算机设备,所述设备包括:
存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序以实现如第一方面任一所述的PCIE资源分配方法的步骤。
第四方面,提供了一种计算机存储介质,所述介质包括:
其上存储有计算机程序,该计算机程序被存储器执行时实现第一方面任一所述的PCIE资源分配方法的步骤。
与现有技术相比,本申请实施例提供的技术方案所述PCIE资源分配方法应用于服务器,所述方法包括:获取所述PCIE根端口的Pcd状态值;根据所述PCIE根端口的Pcd状态值通过PCIE带宽分配初始化函数对所述PCIE根端口分配带宽;对所述服务器CPU的PCIE总线资源预留设置控制选项值进行判断;根据带宽分配结果以及判断结果对所述CPU的各个PCIE根端口进行资源分配。本申请可以满足产线生产兼容智能网卡等多种配置通过一个BIOS版本覆盖,节省了生产成本;同时基本输入输出系统配置界面提供选项菜单支持PCIE总线资源预留的手动设置,便于对多PCIE根端口接入智能网卡的测试或功能验证,为智能网卡的测试验证工作提供多种手段和操作方式。
本申请实施例提供的技术方案服务器对PCIE总线资源的分配可以兼顾智能网卡和非智能网卡等多种配置,同时搭配多个PCIE根端口(RootPort)用来接入智能网卡,在BIOS配置界面提供选项菜单支持PCIE总线资源预留的手动设置,支持多个PCIE根端口对智能网卡进行测试或验证功能。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例一提供的PCIE资源分配方法的流程图;
图2为本申请实施例二提供的PCIE资源分配方法的具体流程图;
图3为本申请实施例三提供的PCIE资源分配装置的结构图;
图4为本申请实施例五提供的可被用于实施本申请中所述的各个实施例的示例性系统。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
此外,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
实施例一
本申请实施例提供了一种PCIE资源分配方法,如图1所示,所述方法应用于服务器,所述方法包括:
获取所述PCIE根端口的Pcd状态值;
根据所述PCIE根端口的Pcd状态值通过PCIE带宽分配初始化函数对所述PCIE根端口分配带宽得到带宽分配结果;
对所述服务器CPU的PCIE总线资源预留设置控制选项值进行判断得到带宽分配结果;
根据所述带宽分配结果以及判断结果对所述CPU的各个PCIE根端口进行资源分配。
具体地,PCIE协议支持256个总线(Bus),每条总线最多支持32个设备Device,每个设备最多支持8个Function(功能项),这些功能项包括硬件驱动接口、显示控制、局域网控制、USB控制等。所以由BDF(Bus,device,function)构成了每个PCIE设备节点的身份证号(ID)。而智能网卡能够提升应用程序和虚拟化性能,实现软件定义网络(SDN)和网络功能虚拟化(NFV)的诸多优势,对于接入服务器的PCIE总线(Bus)资源也有一定要求,需要为其系统下虚拟化的应用预留一定PCIE总线资源。
可以理解的是,每个PCIE功能都是由设备device和其相连的总线Bus定义的,这个唯一的ID被叫做BDF(bus,device,function),配置软件要负责检测总线拓扑中的所有BDF。
配置软件可以有最多256个总线,最初的总线号码是0,一般分配给root总线,0号总线包含虚拟PCI总线,它连接着集成终端和虚拟PCI桥接PCI-to-PCI Bridge(P2P),这些虚拟PCI桥接也有自己的设备号码和功能号码,每个P2P桥接会新建一个总线号码,可以连接其他PCIE设备,每个总线要有一个唯一的总线编号,配置软件从BDF号码000开始搜索,每发现一个新的桥接就新建一个总线号,新的总线号必须比其连接的总线号大,软件在发现新的总线时会优先深入搜索新总线,然后才回去搜索原来的总线。
PCIE允许每个总线bus搭载32个device,然而PCIE的结构决定了每个总线bus只能搭载一个设备device,自然拿到的是设备号码0.root和switch可以有虚拟PCI总线,允许“搭载”多个设备;每个设备必须拥有功能号0,用来包含所有8个功能的集合,当一个设备有超过1个功能时,它被称作多功能设备。
每个设备device都有功能function,这些功能包括硬件驱动接口,显示控制,局域网控制,USB控制等。多功能设备的功能号不需要按顺序编排,比如一个设备可以有功能号0、2和7,因此当系统探测到一个多功能设备时,每个设备号都会检查一遍是否存在,每个功能还有自己的配置地址空间用来设置和功能相关的资源。
另外,基本输入输出系统,作为固化到计算机主板一个ROM芯片上的程序,实现开机启动过程对服务器主板上的处理器(CPU)、内存、芯片组(Chipset)、以及各种输入输出设备的初始化,同时PCIE总线资源的分配也是由BIOS来完成。
为了兼顾智能网卡和非智能网卡等多种配置,本申请提出一种PCIE资源分配方法,当检测到有智能网卡设备接入扩展卡时,BIOS通过编码实现PCIE总线资源重新分配,为接入智能网卡的PCIE根端口(RootPort)预留所需的PCIE总线资源,其他PCIE根端口总线资源合理分配,避免总线资源不足的问题;当未检测到智能网卡设备接入扩展卡时,BIOS将PCIE总线资源合理分配给各PCIE根端口。同时基本输入输出系统配置界面提供选项菜单支持PCIE总线资源预留的手动设置,便于多个PCIE根端口来支持智能网卡设备的测试和验证。
其中,智能网卡的PCIE资源总线预留数大于非智能网卡的PCIE资源总线预留数,一般智能网卡的PCIE资源总线预留数为64或78。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例提供的技术方案可以满足产线生产兼容智能网卡等多种配置通过一个BIOS版本覆盖,节省了生产成本;同时基本输入输出系统配置界面提供选项菜单支持PCIE总线资源预留的手动设置,便于对多PCIE根端口接入智能网卡的测试或功能验证,为智能网卡的测试验证工作提供多种手段和操作方式。
本申请实施例提供的技术方案服务器对PCIE总线资源的分配可以兼顾智能网卡和非智能网卡等多种配置,同时搭配多个PCIE根端口(RootPort)用来接入智能网卡,在BIOS配置界面提供选项菜单支持PCIE总线资源预留的手动设置,支持多个PCIE根端口对智能网卡进行测试或验证功能。
实施例二
本申请实施例提供了一种PCIE资源分配方法,如图1所示,所述方法包括:
步骤S01,获取所述PCIE根端口的Pcd状态值。
具体地,这里按照两路2U服务器硬件结构设计要求,配置智能网卡需要通过Riser卡(即扩展卡)转接,再接到PCIE根端口;接入智能网卡的Riser卡固定给智能网卡使用,所以在服务器主板设计时,可以通过给出特定硬件进行数据交互接口(GPIO)用于Riser卡接入识别,从而来判断是否有智能网卡接入。
这里,BIOS定义一个Pcd状态值(PcdPEXSmartNICStatus)来表示智能网卡所在Riser卡的接入状态,根据检测的GPIO状态,给Pcd状态值赋值,用来自动分配对应PCIE根端口所需要的PCIE带宽和所需要预留的PCIE总线资源。
其中,所述PCIE根端口的Pcd状态值为一个全局变量。
步骤S02,根据所述PCIE根端口的Pcd状态值通过PCIE带宽分配初始化函数对所述PCIE根端口分配带宽得到带宽分配结果。
具体地,对服务器上电,BIOSPEI早期阶段,通过编写代码检测特定硬件进行数据交互接口GPIO的状态来判断该PCIE根端口是否有智能网卡接入;如果GPIO状态为1,有智能网卡接入,并赋值PCIE根端口PcdPEXSmartNICStatus为1;如果GPIO状态为0,即无智能网卡接入,赋值PcdPEXSmartNICStatus为0;其中PEX代表具体PCIE根端口。
步骤S02还包括:
步骤S021,当所述PCIE根端口的Pcd状态值为第一阈值时,则通过编码对所述PCIE根端口分配第一带宽;
当所述PCIE根端口的Pcd状态值为第二阈值时,则根据PCIE设备参数对所述PCIE根端口分配带宽。
具体地,在BIOS启动到Iio初始化阶段,通过读取PcdPEXSmartNICStatus状态,PCIE根端口在PCIE带宽分配初始化函数(IioPortBifurcationInit)中,如果PcdPEXSmartNICStatus即PCIE根端口的Pcd状态值为1,则通过编码为该PCIE根端口配置PCIE带宽为X16;如果pcdPEXSmartNICStatus为0,按该PCIE根端口的实际接入设备分配带宽。
其中,所述第一阈值为1,第二阈值为0,所述第一带宽为X16。
步骤S03,对所述服务器CPU的PCIE总线资源预留设置控制选项值进行判断得到判断结果。
具体地,一般搭配智能网卡的服务器因为硬件结构原因都是固定一个或两个PCIE根端口来接入智能网卡,这里,BIOS为了支持多个PCIE根端口对智能网卡进行测试或验证功能,在BIOS配置界面提供选项菜单支持PCIE总线资源预留的手动设置;即在BIOS配置界面下面新增一个PCIEBusReserveNum Setting(PCIE总线资源预留设置)菜单,菜单下面设置两个控制选项:Socket0BusReserveNumControl和Socket1BusReserveNumControl,即分别对CPU0和CPU1上的PCIE总线资源预留进行控制,而每个选项设置两个选项值:Auto(自动)和Manual(手动)。
步骤S04,根据所述带宽分配结果以及判断结果对所述CPU的各个PCIE根端口进行资源分配。
具体地,Auto选项值可以支持PCIE总线资源的自动设置,针对智能网卡配置和非智能网卡配置自动预留PCIE总线资源;Manual选项值支持手动设置预留PCIE总线资源。
步骤S04还包括:
步骤S041,根据判断结果对所述中央处理器的各个PCIE根端口进行资源分配;根据各PCIE根端口的带宽对其对应的资源分配结果进行调整,得到最终的资源分配结果。
具体地,这里在根据判断结果对所述中央处理器的各个PCIE根端口进行资源分配后,再根据各PCIE根端口的带宽对其对应的资源分配结果进行调整,得到最终的资源分配结果;即当PCIE根端口连接的是智能网卡时,则对所述PCIE根端口配置的带宽较大(例如X16),并按照对所述PCIE根端口配置的资源比连接非智能网卡配置的资源多的方式对所述PCIE根端口对应的资源分配结果进行微调。
步骤S041还包括:
步骤S0411,当所述服务器CPU的PCIE总线资源预留设置控制选项值为自动选项值时,则根据所述PCIE根端口的Pcd状态值对各个PCIE根端口进行资源分配。
步骤S0411还包括:
步骤S04111,重新获取所述PCIE根端口的Pcd状态值;
当所述PCIE根端口的Pcd状态值为第一阈值时,则先对Pcd状态值为第一阈值的PCIE根端口分配PCIE总线资源后,再对其它PCIE根端口平均分配剩余的PCIE总线资源;
当所述PCIE根端口的Pcd状态值为第二阈值时,则对各个PCIE根端口平均分配PCIE总线资源。
具体地,在BIOS启动到KTI初始化阶段,BIOS在AllocateIioResources函数中,读取BIOS选项各CPU的SocketNBusReserveNumControl设定(N为对应CPU值),如果控制选项设置为Auto(自动),再读取PcdPEXSmartNICStatus状态,如果PcdPEXSmartNICStatus为1,即所述PCIE根端口接入的是智能网卡,为PCIE根端口预留所需PCIE总线资源,假设按照硬件设计,PE1PCIE根端口接入智能网卡,BIOS通过编码实现为PE1根端口分配PCIE总线资源64个,stack0分配9个bus,Ubox分配2个bus,每颗CPU分配128个PCIE总线资源,其他RootPort平均分配剩余的PCIE总线资源。
如果所述PCIE根端口的Pcd状态值PcdPEXSmartNICStatus为0,则对各个PCIE根端口平均分配PCIE总线资源,从而实现检测到智能网卡后自动预留PCIE总线资源。
步骤S0412,当所述服务器CPU的PCIE总线资源预留设置控制选项值为手动选项值时,则获取PCIE总线资源分配比率库分配给所述CPU的PCIE总线资源,根据所述CPU的PCIE总线资源预留选项设置对所述CPU的各个PCIE根端口进行资源分配。
具体地,PCIE总线资源的分配原则:这里以Intelwhitley平台两路服务系统举例说明,Whitley平台的每颗CPU最多有4个PCIE根端口(RootPort),建议每个PCIE根端口的总线(Bus)预留数,设置范围为10~80;每颗CPU只有一个PCIE根端口可以设置80个总线资源,因为服务器系统总共有256个总线资源,BIOS选项先会根据选项PCIE总线资源分配比率库(BusResources AllocationRatio)分配PCIE总线资源给每颗CPU,如果BusResourcesAllocation Ratio默认设置,PCIE总线资源是平均分给两颗CPU,即每颗CPU分配128个PCIE总线资源,同时考虑到要给每个CPU的stack0(堆栈)预留9个bus,Ubox(监控软件)预留2个bus,最后每个CPU多预留3个备用,所以建议每个PCIE根端口最少设置10个bus资源,最多设置80个bus资源,来保障每个PCIE根端口才能正常工作,同时同一颗CPU上只能有一个PCIE根端口可以设置80个bus资源。
可以理解的是,当CPU的SocketNBusReserveNumControl控制选项值设定为Manual(手动),BIOS首先去读取BusResourcesAllocationRatio分配给每个CPUPCIE总线资源,再根据SocketNPEXBusReserveNum的选项设置去为每个PCIE根端口分配PCIE总线资源。
步骤S0412还包括:
步骤S04121,对所述CPU的各个PCIE根端口增加设置PCIE总线资源分配的选项;
根据各个PCIE根端口的PCIE设备参数对各个PCIE根端口的PCIE总线资源分配的选项进行设置。
具体地,分别为每个CPU的PCIE根端口增加设置PCIE总线资源分配的选项:Socket0PE0BusReserveNum;Socket0PE1BusReserveNum;Socket0PE2BusReserveNum…;Socket1PE0BusReserveNum;Socket1PE1BusReserve Num;Socket1PE2BusReserveNum…;再根据主板实际PCIE根端口的PCIE设备参数对各个PCIE根端口的PCIE总线资源分配的选项进行设置。
步骤S0413,判断所述各个PCIE根端口的资源预留总数是否大于第三阈值;
若是,则基本输入输出系统进行错误信息上报,并记录到错误日志中;若否,则结束PCIE资源分配流程。
具体地,如果PCIE总线资源设置总数超过256个,会在手动设置时进行报错提醒。
其中,所述第三阈值为256。
同时,如果在实际运行中PCIE总线资源因为手动设置导致个别PCIE根端口总线资源不足,BIOS会进行错误信息上报,显示在BIOS的POST屏幕上,并记录到BMCSELLog日志中。
如图2所示为本申请PCIE资源分配的具体流程图,本申请的技术方案提出一种PCIE总线资源分配的方法,BIOS通过识别GPIO状态的方式检测到特定PCIE根端口有智能网卡设备接入时,在BIOS启动PEI早期阶段设置对应PCIE根端口的PcdPEXSmartNICStatus状态值,分别根据该状态值在带宽函数分配合适带宽,为接入智能网卡PCIE根端口预留所需PCIE总线资源,其他PCIE根端口合理分配资源,这种方式可以满足产线生产兼容智能网卡多种配置由一个BIOS版本覆盖,节省生产成本。
同时,BIOS配置界面提供选项菜单支持PCIE总线资源预留的手动设置,便于多PCIE根端口接入智能网卡的测试或功能验证,为智能网卡的测试验证工作提供多种手段和操作方式。
本申请实施例提供的PCIE资源分配的方法在不脱离本申请技术方案的前提下,还可以做出若干改进以及优化,这些改进与优化也应当视为本申请的保护范围。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例提供的技术方案可以满足产线生产兼容智能网卡等多种配置通过一个BIOS版本覆盖,节省了生产成本;同时基本输入输出系统配置界面提供选项菜单支持PCIE总线资源预留的手动设置,便于对多PCIE根端口接入智能网卡的测试或功能验证,为智能网卡的测试验证工作提供多种手段和操作方式。
本申请实施例提供的技术方案服务器对PCIE总线资源的分配可以兼顾智能网卡和非智能网卡等多种配置,同时搭配多个PCIE根端口(RootPort)用来接入智能网卡,在BIOS配置界面提供选项菜单支持PCIE总线资源预留的手动设置,支持多个PCIE根端口对智能网卡进行测试或验证功能。
实施例三
本申请提供了一种PCIE资源分配装置,如图3所示,所述装置包括获取模块、第一分配模块、判断模块、第二分配模块。
在本实施例中,获取模块,用于获取所述PCIE根端口的Pcd状态值;
第一分配模块,用于根据所述PCIE根端口的Pcd状态值通过PCIE带宽分配初始化函数对所述PCIE根端口分配带宽;
判断模块,用于对所述服务器CPU的PCIE总线资源预留设置控制选项值进行判断;
第二分配模块,用于根据带宽分配结果以及判断结果对所述CPU的各个PCIE根端口进行资源分配。
进一步地,第二分配模块,还用于根据判断结果对所述中央处理器的各个PCIE根端口进行资源分配;
根据各PCIE根端口的带宽对其对应的资源分配结果进行调整,得到最终的资源分配结果。
进一步地,第一分配模块,用于当所述PCIE根端口的Pcd状态值为第一阈值时,则通过编码对所述PCIE根端口分配第一带宽;
当所述PCIE根端口的Pcd状态值为第二阈值时,则根据PCIE设备参数对所述PCIE根端口分配带宽。
进一步地,第二分配模块,还用于当所述服务器CPU的PCIE总线资源预留设置控制选项值为自动选项值时,则根据所述PCIE根端口的Pcd状态值对各个PCIE根端口进行资源分配。
进一步地,第二分配模块,用于重新获取所述PCIE根端口的Pcd状态值;
当所述PCIE根端口的Pcd状态值为第一阈值时,则先对Pcd状态值为第一阈值的PCIE根端口分配PCIE总线资源后,再对其它PCIE根端口平均分配剩余的PCIE总线资源;
当所述PCIE根端口的Pcd状态值为第二阈值时,则对各个PCIE根端口平均分配PCIE总线资源。
进一步地,第二分配模块,还用于当所述服务器CPU的PCIE总线资源预留设置控制选项值为手动选项值时,则获取PCIE总线资源分配比率库分配给所述CPU的PCIE总线资源,根据所述CPU的PCIE总线资源预留选项设置对所述CPU的各个PCIE根端口进行资源分配。
进一步地,第二分配模块,还用于对所述CPU的各个PCIE根端口增加设置PCIE总线资源分配的选项;
根据各个PCIE根端口的PCIE设备参数对各个PCIE根端口的PCIE总线资源分配的选项进行设置。
进一步地,判断模块,用于判断所述各个PCIE根端口的资源预留总数是否大于第三阈值;
若是,则基本输入输出系统进行错误信息上报,并记录到错误日志中;若否,则结束PCIE资源分配流程。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例提供的技术方案可以满足产线生产兼容智能网卡等多种配置通过一个BIOS版本覆盖,节省了生产成本;同时基本输入输出系统配置界面提供选项菜单支持PCIE总线资源预留的手动设置,便于对多PCIE根端口接入智能网卡的测试或功能验证,为智能网卡的测试验证工作提供多种手段和操作方式。
本申请实施例提供的技术方案服务器对PCIE总线资源的分配可以兼顾智能网卡和非智能网卡等多种配置,同时搭配多个PCIE根端口(RootPort)用来接入智能网卡,在BIOS配置界面提供选项菜单支持PCIE总线资源预留的手动设置,支持多个PCIE根端口对智能网卡进行测试或验证功能。
实施例四
本申请提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时可以执行如下PCIE资源分配的方法:
获取所述PCIE根端口的Pcd状态值;
根据所述PCIE根端口的Pcd状态值通过PCIE带宽分配初始化函数对所述PCIE根端口分配带宽;
对所述服务器CPU的PCIE总线资源预留设置控制选项值进行判断;
根据带宽分配结果以及判断结果对所述CPU的各个PCIE根端口进行资源分配。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例提供的技术方案可以满足产线生产兼容智能网卡等多种配置通过一个BIOS版本覆盖,节省了生产成本;同时基本输入输出系统配置界面提供选项菜单支持PCIE总线资源预留的手动设置,便于对多PCIE根端口接入智能网卡的测试或功能验证,为智能网卡的测试验证工作提供多种手段和操作方式。
本申请实施例提供的技术方案服务器对PCIE总线资源的分配可以兼顾智能网卡和非智能网卡等多种配置,同时搭配多个PCIE根端口(RootPort)用来接入智能网卡,在BIOS配置界面提供选项菜单支持PCIE总线资源预留的手动设置,支持多个PCIE根端口对智能网卡进行测试或验证功能。
实施例五
本申请提供了一种计算机存储介质,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
获取所述PCIE根端口的Pcd状态值;
根据所述PCIE根端口的Pcd状态值通过PCIE带宽分配初始化函数对所述PCIE根端口分配带宽;
对所述服务器CPU的PCIE总线资源预留设置控制选项值进行判断;
根据带宽分配结果以及判断结果对所述CPU的各个PCIE根端口进行资源分配。
进一步地,所述根据带宽分配结果以及判断结果对所述中央处理器的各个PCIE根端口进行资源分配,包括:
根据判断结果对所述中央处理器的各个PCIE根端口进行资源分配;
根据各PCIE根端口的带宽对其对应的资源分配结果进行调整,得到最终的资源分配结果。
进一步地,所述根据所述PCIE根端口的Pcd状态值通过PCIE带宽分配初始化函数对所述PCIE根端口分配带宽,包括:
当所述PCIE根端口的Pcd状态值为第一阈值时,则通过编码对所述PCIE根端口分配第一带宽;
当所述PCIE根端口的Pcd状态值为第二阈值时,则根据PCIE设备参数对所述PCIE根端口分配带宽。
进一步地,所述根据判断结果对所述CPU的各个PCIE根端口进行资源分配,包括:
当所述服务器CPU的PCIE总线资源预留设置控制选项值为自动选项值时,则根据所述PCIE根端口的Pcd状态值对各个PCIE根端口进行资源分配。
进一步地,所述根据所述PCIE根端口的Pcd状态值对各个PCIE根端口进行资源分配,包括:
重新获取所述PCIE根端口的Pcd状态值;
当所述PCIE根端口的Pcd状态值为第一阈值时,则先对Pcd状态值为第一阈值的PCIE根端口分配PCIE总线资源后,再对其它PCIE根端口平均分配剩余的PCIE总线资源;
当所述PCIE根端口的Pcd状态值为第二阈值时,则对各个PCIE根端口平均分配PCIE总线资源。
进一步地,所述根据判断结果对所述CPU的各个PCIE根端口进行资源分配,还包括:
当所述服务器CPU的PCIE总线资源预留设置控制选项值为手动选项值时,则获取PCIE总线资源分配比率库分配给所述CPU的PCIE总线资源,根据所述CPU的PCIE总线资源预留选项设置对所述CPU的各个PCIE根端口进行资源分配。
进一步地,所述根据所述CPU的PCIE总线资源预留选项设置对所述CPU的各个PCIE根端口进行资源分配,包括:
对所述CPU的各个PCIE根端口增加设置PCIE总线资源分配的选项;
根据各个PCIE根端口的PCIE设备参数对各个PCIE根端口的PCIE总线资源分配的选项进行设置。
进一步地,所述根据所述CPU的PCIE总线资源预留选项设置对所述CPU的各个PCIE根端口进行资源分配之后,包括:
判断所述各个PCIE根端口的资源预留总数是否大于第三阈值;
若是,则基本输入输出系统进行错误信息上报,并记录到错误日志中;若否,则结束PCIE资源分配流程。
本申请可以满足产线生产兼容智能网卡等多种配置通过一个BIOS版本覆盖,节省了生产成本;同时BIOS配置界面提供选项菜单支持PCIE总线资源预留的手动设置,便于对多PCIE根端口接入智能网卡的测试或功能验证,为智能网卡的测试验证工作提供多种手段和操作方式。
图4为本申请实施例五提供的可被用于实施本申请中所述的各个实施例的示例性系统;
如图4所示,在一些实施例中,系统能够作为各所述实施例中的任意一个用于PCIE资源分配的上述设备。在一些实施例中,系统可包括具有结果的一个或多个计算机可读介质(例如,系统存储器或NVM/存储设备)以及与该一个或多个计算机可读介质耦合并被配置为执行结果以实现模块从而执行本申请中所述的动作的一个或多个处理器(例如,(一个或多个)处理器)。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来结果相关的硬件来完成,上述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种PCIE资源分配方法,所述方法应用于服务器,其特征在于,所述方法包括:
获取所述PCIE根端口的接入状态值;
根据所述PCIE根端口的接入状态值通过PCIE带宽分配初始化函数对所述PCIE根端口分配带宽得到带宽分配结果;
对所述服务器中央处理器的PCIE总线资源预留设置控制选项值进行判断得到判断结果;
根据所述带宽分配结果以及判断结果对所述中央处理器的各个PCIE根端口进行资源分配。
2.根据权利要求1所述的PCIE资源分配方法,其特征在于,所述根据所述带宽分配结果以及判断结果对所述中央处理器的各个PCIE根端口进行资源分配,包括:
根据判断结果对所述中央处理器的各个PCIE根端口进行资源分配;
根据各PCIE根端口的带宽对其对应的资源分配结果进行调整,得到最终的资源分配结果。
3.根据权利要求1或2所述的PCIE资源分配方法,其特征在于,所述根据所述PCIE根端口的接入状态值通过PCIE带宽分配初始化函数对所述PCIE根端口分配带宽得到带宽分配结果,包括:
当所述PCIE根端口的接入状态值为第一阈值时,则通过编码对所述PCIE根端口分配第一带宽;
当所述PCIE根端口的接入状态值为第二阈值时,则根据PCIE设备参数对所述PCIE根端口分配带宽。
4.根据权利要求2所述的PCIE资源分配方法,其特征在于,所述根据判断结果对所述中央处理器的各个PCIE根端口进行资源分配,包括:
当所述服务器中央处理器的PCIE总线资源预留设置控制选项值为自动选项值时,则根据所述PCIE根端口的接入状态值对各个PCIE根端口进行资源分配。
5.根据权利要求4所述的PCIE资源分配方法,其特征在于,所述根据所述PCIE根端口的接入状态值对各个PCIE根端口进行资源分配,包括:
重新获取所述PCIE根端口的接入状态值;
当所述PCIE根端口的接入状态值为第一阈值时,则先对接入状态值为第一阈值的PCIE根端口分配PCIE总线资源后,再对其它PCIE根端口平均分配剩余的PCIE总线资源;
当所述PCIE根端口的接入状态值为第二阈值时,则对各个PCIE根端口平均分配PCIE总线资源。
6.根据权利要求2所述的PCIE资源分配方法,其特征在于,所述根据判断结果对所述中央处理器的各个PCIE根端口进行资源分配,还包括:
当所述服务器中央处理器的PCIE总线资源预留设置控制选项值为手动选项值时,则获取PCIE总线资源分配比率库分配给所述中央处理器的PCIE总线资源,根据所述中央处理器的PCIE总线资源预留选项设置对所述中央处理器的各个PCIE根端口进行资源分配。
7.根据权利要求6所述的PCIE资源分配方法,其特征在于,所述根据所述中央处理器的PCIE总线资源预留选项设置对所述中央处理器的各个PCIE根端口进行资源分配,包括:
对所述中央处理器的各个PCIE根端口增加设置PCIE总线资源分配的选项;
根据各个PCIE根端口的PCIE设备参数对各个PCIE根端口的PCIE总线资源分配的选项进行设置。
8.根据权利要求6所述的PCIE资源分配方法,其特征在于,所述根据所述中央处理器的PCIE总线资源预留选项设置对所述中央处理器的各个PCIE根端口进行资源分配之后,包括:
判断所述各个PCIE根端口的资源预留总数是否大于第三阈值;
若是,则基本输入输出系统进行错误信息上报,并记录到错误日志中;若否,则结束PCIE资源分配流程。
9.一种PCIE资源分配装置,其特征在于,所述装置包括:
获取模块,用于获取所述PCIE根端口的接入状态值;
第一分配模块,用于根据所述PCIE根端口的接入状态值通过PCIE带宽分配初始化函数对所述PCIE根端口分配带宽得到带宽分配结果;
判断模块,用于对服务器中央处理器的PCIE总线资源预留设置控制选项值进行判断得到判断结果;
第二分配模块,用于根据所述带宽分配结果以及判断结果对所述中央处理器的各个PCIE根端口进行资源分配。
10.一种计算机存储介质,其上存储有计算机程序,其特征在于,该计算机程序被存储器执行时实现如权利要求1至8中任一项所述PCIE资源分配方法的步骤。
CN202310336963.8A 2023-03-31 2023-03-31 一种pcie资源分配方法、装置及介质 Pending CN116360995A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310336963.8A CN116360995A (zh) 2023-03-31 2023-03-31 一种pcie资源分配方法、装置及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310336963.8A CN116360995A (zh) 2023-03-31 2023-03-31 一种pcie资源分配方法、装置及介质

Publications (1)

Publication Number Publication Date
CN116360995A true CN116360995A (zh) 2023-06-30

Family

ID=86923197

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310336963.8A Pending CN116360995A (zh) 2023-03-31 2023-03-31 一种pcie资源分配方法、装置及介质

Country Status (1)

Country Link
CN (1) CN116360995A (zh)

Similar Documents

Publication Publication Date Title
CN109067877B (zh) 一种云计算平台部署的控制方法、服务器及存储介质
CN110908770A (zh) 虚拟机的运行及创建方法、虚拟机及虚拟机化管理平台
US20200394076A1 (en) Information Handling System And Method To Allocate Peripheral Component Interconnect Express (PCIE) Bus Resources
US9886299B2 (en) System and method for dynamically allocating resources of virtual machines based on service-level agreements (SLA) and privilege levels of users
CN109324991B (zh) 一种pcie设备的热插拔装置、方法、介质及系统
CN111143256B (zh) 一种读取现场可更换单元信息的方法和装置
US20210200571A1 (en) Storage Device Operation Method and Physical Server
US20230350831A1 (en) Bandwidth allocation method and apparatus for pcie external plug-in card, and device and storage medium
US10838861B1 (en) Distribution of memory address resources to bus devices in a multi-processor computing system
US8312257B2 (en) System and method for performing hardware resource assignment in a large-scaled system
CN109120680B (zh) 一种控制系统、方法及相关设备
US6598105B1 (en) Interrupt arbiter for a computing system
US10983831B2 (en) Firmware-based provisioning of operating system resources
CN116360995A (zh) 一种pcie资源分配方法、装置及介质
US11372792B1 (en) Automatic bus resource adjustment in a multiple root bridge computing system
CN112905497B (zh) 内存管理方法、装置、电子设备及存储介质
US10824471B2 (en) Bus allocation system
CN112597090A (zh) 一种配置pcie设备的方法、网络设备和存储介质
CN110704163A (zh) 一种服务器及其虚拟化存储方法和装置
CN114281516A (zh) 一种基于numa属性的资源分配方法及装置
CN111666579A (zh) 计算机设备及其访问控制方法和计算机可读介质
US10402454B1 (en) Obtaining platform-specific information in a firmware execution environment
US11150912B2 (en) Apparatus, method and program for legacy boot processing
WO2023221525A1 (zh) 电路板的资源分配方法、装置、电路板以及存储介质
CN116303154B (zh) 用于数据处理单元的基地址寄存器资源分配方法及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination