CN116627520B - 基板管理控制器的***运行方法以及基板管理控制器 - Google Patents
基板管理控制器的***运行方法以及基板管理控制器 Download PDFInfo
- Publication number
- CN116627520B CN116627520B CN202310923501.6A CN202310923501A CN116627520B CN 116627520 B CN116627520 B CN 116627520B CN 202310923501 A CN202310923501 A CN 202310923501A CN 116627520 B CN116627520 B CN 116627520B
- Authority
- CN
- China
- Prior art keywords
- target
- hardware
- operating system
- interface
- management controller
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000005192 partition Methods 0.000 claims abstract description 444
- 238000012795 verification Methods 0.000 claims description 42
- 238000004590 computer program Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 14
- 230000000694 effects Effects 0.000 abstract description 7
- 230000006854 communication Effects 0.000 description 42
- 238000004891 communication Methods 0.000 description 41
- 238000010586 diagram Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 14
- 238000013461 design Methods 0.000 description 13
- 239000013598 vector Substances 0.000 description 13
- 230000006870 function Effects 0.000 description 9
- 230000002093 peripheral effect Effects 0.000 description 9
- 230000003993 interaction Effects 0.000 description 8
- 238000007689 inspection Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 7
- 102100040006 Annexin A1 Human genes 0.000 description 6
- 101000959738 Homo sapiens Annexin A1 Proteins 0.000 description 6
- 101000929342 Lytechinus pictus Actin, cytoskeletal 1 Proteins 0.000 description 6
- 230000002159 abnormal effect Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 101100379142 Mus musculus Anxa1 gene Proteins 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/24—Interrupt
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供了一种基板管理控制器的***运行方法以及基板管理控制器,涉及电子信息技术领域,其中,该方法包括:在所述基板管理控制器上启动目标操作***,其中,所述目标操作***用于管理服务器主机***上划分的多个硬件分区中的目标硬件分区;为所述目标操作***加载目标硬件接口,其中,所述目标硬件接口用于建立所述目标操作***与所述目标硬件分区之间的连接;在所述基板管理控制器上运行所述目标操作***,其中,所述目标操作***用于通过所述目标硬件接口管理所述目标硬件分区。通过本申请,解决了服务器主机***的硬件分区的适用性较低的问题,进而达到了提高服务器主机***的硬件分区的适用性的效果。
Description
技术领域
本申请实施例涉及电子信息技术领域,具体而言,涉及一种基板管理控制器的***运行方法以及基板管理控制器。
背景技术
近年来,随着半导体行业和集成电路技术的快速发展,处理器已经成为云计算、人工智能、大数据等领域的重要计算单元。在服务器行业领域,为了在满足业务的实时性要求下,同时实现硬件计算资源共享以及提升多核处理器的利用率,目前相关技术通过将主机***CPU(Central Processing Unit,中央处理器)等计算资源硬件分区,一台服务器被分区成两个甚至更多个物理主机***,独立承载业务提供服务。然而,为了应对主机***硬件分区,需要使用同样的硬件分区设计来升级BMC(Baseboard management controller,基板管理控制器)芯片CPU的架构来适应对应的主机***硬件分区架构,需要一对一开发,不仅提高了设计复杂度,使得BMC芯片成本大幅上升,还大大降低了服务器主机***的硬件分区的适用性。
针对相关技术中服务器主机***的硬件分区的适用性较低的问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种基板管理控制器的***运行方法以及基板管理控制器,以至少解决相关技术中服务器主机***的硬件分区的适用性较低的问题。
根据本申请的一个实施例,提供了一种基板管理控制器的***运行方法,所述方法包括:
在所述基板管理控制器上启动目标操作***,其中,所述目标操作***用于管理服务器主机***上划分的多个硬件分区中的目标硬件分区;
为所述目标操作***加载目标硬件接口,其中,所述目标硬件接口用于建立所述目标操作***与所述目标硬件分区之间的连接;
在所述基板管理控制器上运行所述目标操作***,其中,所述目标操作***用于通过所述目标硬件接口管理所述目标硬件分区。
在一个示例性实施例中,所述为所述目标操作***加载目标硬件接口,包括:
从具有对应关系的处理器核心和硬件接口中查找所述目标操作***所使用的目标处理器核心对应的所述目标硬件接口,其中,所述基板管理控制器上的硬件接口按照每组处理器核心所对应的硬件分区的硬件架构被分配至每组处理器核心得到具有对应关系的处理器核心和硬件接口;
在所述目标处理器核心上为所述目标操作***加载所述目标硬件接口。
在一个示例性实施例中,所述在所述目标处理器核心上为所述目标操作***加载所述目标硬件接口,包括:
解析所述目标处理器核心的目标设备树得到所述目标硬件接口,其中,所述基板管理控制器上的硬件接口通过设备树被分配至每组处理器核心得到具有对应关系的处理器核心和硬件接口,所述基板管理控制器上的硬件接口的物理地址采用统一编址方式;
在所述目标处理器核心上加载所述目标硬件接口的驱动;
在所述目标处理器核心上引导所述目标操作***的文件***,以完成所述目标操作***的启动引导。
在一个示例性实施例中,在所述为所述目标操作***加载目标硬件接口之前,所述方法还包括:
获取所述主机***的所述多个硬件分区;
为所述多个硬件分区中每个所述目标硬件分区分配所述基板管理控制器上的处理器核心得到所述目标处理器核心,并为所述目标硬件分区分配所述基板管理控制器上的硬件接口得到所述目标硬件接口,其中,所述目标处理器核心至少满足所述目标硬件分区的管理运行需求,所述目标硬件接口至少满足所述目标硬件分区的硬件连接需求;
建立所述目标处理器核心与所述目标硬件接口之间的对应关系,得到具有对应关系的处理器核心和硬件接口。
在一个示例性实施例中,所述为所述多个硬件分区中每个所述目标硬件分区分配所述基板管理控制器上的处理器核心得到所述目标处理器核心,包括以下之一:
将所述基板管理控制器上的处理器核心平均分配给每个所述目标硬件分区;
按照所述多个硬件分区中每个目标硬件分区的运行架构为所述目标硬件分区分配所述基板管理控制器上的一个或者多个处理器核心得到所述目标处理器核心。
在一个示例性实施例中,所述为所述目标硬件分区分配所述基板管理控制器上的硬件接口得到所述目标硬件接口,包括至少以下之一:
在所述基板管理控制器上存在资源拥有数量大于或者等于所述多个硬件分区中资源需求数量的第一类型的硬件接口的情况下,将所述第一类型的硬件接口按照每个目标硬件分区的硬件架构分配至所述目标硬件分区作为所述目标硬件接口中的目标独占接口,其中,所述目标独占接口是被设置为仅允许所述目标处理器核心访问的硬件接口;
在所述基板管理控制器上存在资源拥有数量小于所述多个硬件分区中资源需求数量的第二类型的硬件接口的情况下,建立所述目标处理器核心与所述基板管理控制器上多组处理器核心中参考处理器核心之间对所述第二类型的硬件接口的共享关系作为所述目标硬件接口中的目标共享接口,其中,所述目标共享接口是被设置为允许所述目标处理器核心和所述多组处理器核心中的所述参考处理器核心访问的硬件接口。
在一个示例性实施例中,所述在所述基板管理控制器上运行所述目标操作***,包括:
在所述目标操作***存在访问所述目标硬件接口中的目标共享接口的需求的情况下,通过所述目标操作***向所述基板管理控制器上多组处理器核心中的参考处理器核心发送第一中断请求,其中,所述目标共享接口是被设置为允许所述目标操作***所使用的目标处理器核心和所述参考处理器核心访问的硬件接口,所述第一中断请求用于请求使用所述目标共享接口;
接收所述参考处理器核心上运行的参考操作***响应所述第一中断请求返回的第二中断请求,其中,所述第二中断请求用于指示已释放所述目标共享接口;
响应所述第二中断请求,通过所述目标操作***访问所述目标共享接口。
在一个示例性实施例中,所述通过所述目标操作***向所述基板管理控制器上多组处理器核心中的参考处理器核心发送第一中断请求,包括:
通过所述目标操作***确定是否已占用所述目标共享接口;
在所述目标操作***未占用所述目标共享接口的情况下,通过所述目标操作***向所述参考处理器核心发送所述第一中断请求。
在一个示例性实施例中,在所述通过所述目标操作***访问所述目标共享接口之后,所述方法还包括:
通过所述目标操作***接收所述参考操作***发送的第三中断请求,其中,所述第三中断请求用于请求使用所述目标共享接口;
通过所述目标操作***确定所述目标共享接口是否正在被使用;
在所述目标共享接口正在被使用的情况下,等待所述目标共享接口使用结束;
在所述目标共享接口未被使用,或者,所述目标共享接口使用结束的情况下,释放所述目标共享接口;
通过所述目标操作***向所述参考操作***发送第四中断请求,其中,所述第四中断请求用于指示已释放所述目标共享接口。
在一个示例性实施例中,所述在所述基板管理控制器上启动目标操作***,包括:
在所述基板管理控制器上执行二级程序加载器加载通用引导加载器;
通过所述通用引导加载器在每组处理器核心上启动对应的所述目标操作***的内核。
在一个示例性实施例中,所述在所述基板管理控制器上执行二级程序加载器加载通用引导加载器,包括:
所述基板管理控制器上电并唤醒一个处理器核心;
在所述一个处理器核心上引导引导存储中的引导程序执行;
通过所述引导程序对所述二级程序加载器进行安全启动校验;
在所述二级程序加载器通过所述安全启动校验的情况下,执行所述二级程序加载器引导所述通用引导加载器执行代码。
根据本申请的另一个实施例,提供了一种基板管理控制器,包括:目标操作***和目标硬件接口,其中,所述目标硬件接口,用于连接所述目标操作***与服务器主机***上划分的多个硬件分区中的目标硬件分区;
所述目标操作***,用于通过所述目标硬件接口管理所述目标硬件分区。
在一个示例性实施例中,所述目标硬件接口包括:目标独占接口和/或目标共享接口,其中,所述目标独占接口是被设置为仅允许所述目标操作***所在的目标处理器核心访问的硬件接口;
所述目标共享接口是被设置为允许所述目标处理器核心和所述基板管理控制器上多组处理器核心中的参考处理器核心访问的硬件接口。
在一个示例性实施例中,所述目标操作***中部署了目标设备树,所述目标设备树用于加载所述目标硬件接口的驱动,所述基板管理控制器上的硬件接口的物理地址采用统一编址方式。
在一个示例性实施例中,所述基板管理控制器,还包括:通用引导加载器,其中,所述通用引导加载器,用于在所述基板管理控制器上的每组处理器核心上启动对应的所述目标操作***的内核;
所述目标操作***的内核,用于解析所述目标设备树加载所述目标硬件接口的驱动。
在一个示例性实施例中,所述基板管理控制器,还包括:二级程序加载器,其中,所述二级程序加载器,用于引导所述通用引导加载器执行代码。
在一个示例性实施例中,所述基板管理控制器,还包括:引导存储,其中,所述引导存储,用于对所述二级程序加载器进行安全启动校验。
根据本申请的又一个实施例,提供了一种服务器,包括:基板管理控制器和服务器主机***,其中,所述基板管理控制器包括目标操作***和目标硬件接口,所述服务器主机***包括多个硬件分区,所述目标硬件接口建立了所述目标操作***与所述多个硬件分区中的目标硬件分区之间的连接;
所述基板管理控制器,用于通过所述目标操作***管理所述目标硬件分区。
在一个示例性实施例中,所述目标硬件接口包括:目标独占接口和/或目标共享接口,其中,所述目标独占接口是被设置为仅允许所述目标操作***所在的目标处理器核心访问的硬件接口,所述目标共享接口是被设置为允许所述目标处理器核心和所述基板管理控制器上多组处理器核心中的参考处理器核心访问的硬件接口;
所述目标独占接口与所述目标硬件分区直接连接;
所述目标共享接口与分区开关器件连接,所述分区开关器件分别与所述目标硬件分区和所述参考处理器核心对应的参考硬件分区连接。
根据本申请的另一个实施例,提供了一种基板管理控制器的***运行装置,包括:
启动模块,用于在所述基板管理控制器上启动目标操作***,其中,所述目标操作***用于管理服务器主机***上划分的多个硬件分区中的目标硬件分区;
加载模块,用于为所述目标操作***加载目标硬件接口,其中,所述目标硬件接口是所述目标硬件接口用于建立所述目标操作***与所述目标硬件分区之间的连接;
运行模块,用于在所述基板管理控制器上运行所述目标操作***,其中,所述目标操作***用于通过所述目标硬件接口管理所述目标硬件分区。
根据本申请的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本申请,在基板管理控制器上设置多个硬件接口,每个硬件接口用于连接硬件分区和与硬件分区对应的操作***,当目标操作***在基板管理控制器上运行时,便可以通过与目标操作***对应的目标硬件接口管理服务器主机***上划分的多个硬件分区中的目标硬件分区,即通过给每个操作***分配对应的硬件接口,允许不同的操作***管理服务器主机***上划分的与该操作***对应的硬件分区,而不用根据不同的服务器主机***硬件分区的架构来改造基板管理控制器的***架构,从而提高了服务器主机***的硬件分区的适应性以及通用性,因此,可以解决服务器主机***的硬件分区的适用性较低的技术问题,达到提高了服务器主机***的硬件分区的适用性的技术效果。
附图说明
图1是根据本申请实施例的一种基板管理控制器的***运行方法的移动终端的硬件结构框图;
图2是根据本申请实施例的一种基板管理控制器的***运行方法的流程图;
图3是根据本申请实施例的一种操作***在基板管理控制器上的核心分区中运行过程的流程图;
图4是根据本申请实施例的一种基板管理控制器的***运行架构的示意图;
图5是根据本申请实施例的一种核心分区上的操作***访问目标共享接口进行核间通信的过程的示意图;
图6是根据本申请实施例的一种BMC芯片的结构框图;
图7是根据本申请实施例的一种基板管理控制器的***运行装置的结构框图;
图8是根据本申请实施例的一种电子设备的示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是根据本申请实施例的一种基板管理控制器的***运行方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的基板管理控制器的***运行方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种基板管理控制器的***运行方法,图2是根据本申请实施例的一种基板管理控制器的***运行方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,在所述基板管理控制器上启动目标操作***,其中,所述目标操作***用于管理服务器主机***上划分的多个硬件分区中的目标硬件分区;
步骤S204,为所述目标操作***加载目标硬件接口,其中,所述目标硬件接口用于建立所述目标操作***与所述目标硬件分区之间的连接;
步骤S206,在所述基板管理控制器上运行所述目标操作***,其中,所述目标操作***用于通过所述目标硬件接口管理所述目标硬件分区。
通过上述步骤,在基板管理控制器上设置多个硬件接口,每个硬件接口用于连接硬件分区和与硬件分区对应的操作***,当目标操作***在基板管理控制器上运行时,便可以通过与目标操作***对应的目标硬件接口管理服务器主机***上划分的多个硬件分区中的目标硬件分区,即通过给每个操作***分配对应的硬件接口,允许不同的操作***管理服务器主机***上划分的与该操作***对应的硬件分区,而不用根据不同的服务器主机***硬件分区的架构来改造基板管理控制器的***架构,从而提高了服务器主机***的硬件分区的适应性以及通用性,因此,可以解决服务器主机***的硬件分区的适用性较低的技术问题,达到提高了服务器主机***的硬件分区的适用性的技术效果。
可选地,在本实施例中,上述基板管理控制器可以但不限于是一个基于IPMI(Intelligent Platform Management Interface,智能平台管理接口)技术设计规范下,对主机板提供智能管理的用于监控和管理服务器的专用控制器,如BMC。BMC可以有独立的运算器,其次是控制器,以及存储器和输入输出设备,还可以有独立的软件***,包括基本开机***,操作***和运行在BMC***上的各种应用程序。在主机板上,BMC可以是独立***板块亦可以设计为集成在主机板上的一个部件,常被设计在服务器或者计算机的主机板上。
在上述步骤S202提供的技术方案中,上述目标操作***可以但不限于是在基板管理控制器上运行的任何一个操作***,可以是部署在嵌入式***的处理器上的多个操作***中的任何一个操作***,即嵌入式操作***,嵌入式操作***根据对响应时间的敏感程度可分为实时性操作***(RTOS)和非实时性操作***,实时性操作***可以但不限于包括FreeRTOS(Free Real-Time Operating System,自由实时操作***)和RTLinux(Real-TimeLinux,实时Linux)等,非实时操作***可以但不限于包括contiki(Contiki OperatingSystem,一种小型的多任务操作***)、HeliOS(HeliOS Operating System,一个轻量级、高性能的操作***)和Linux(GNU/Linux,一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作***)等。
可选的,在本实施例中,上述多个操作***可以但不限于是多个异构的或者同构的用于管理BMC的操作***,即每个操作***的类型可以相同也可以不同。
可选的,在本实施例中,嵌入式***是用于控制、监视或者辅助操作机器和设备的装置,是一种专用的计算机***。嵌入式***是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用***对功能、可靠性、成本、体积、功耗等严格要求的专用计算机***。从应用对象上加以定义来说,嵌入式***是软件和硬件的综合体,还可以涵盖机械等附属装置。
可选的,在本实施例中,嵌入式***从硬件角度可以但不限于包括处理器,存储器和***电路等硬件设备,上述目标操作***可以但不限于基于嵌入式***的处理器运行。从软件角度可以但不限于包括底层驱动,操作***和应用程序等,上述目标操作***即为嵌入式***中的操作***。
可选的,在本实施例中,服务器主机***可以但不限于是搭载多个CPU处理器的安装在计算机主机上的操作***,通常是Windows、Mac、OS等***,它们管理计算机的硬件和软件资源,并提供服务和接口供用户或应用程序使用。
可选的,在本实施例中,可以但不限于以CPU处理器为分区单位对服务器主机***的硬件资源进行分区,得到多个硬件分区。多个硬件分区中的每个硬件分区都各自对应一个独立的操作***,也即每个硬件分区均包含自身***运行所需的计算、存储、网络和I/O(Input/Output,输入/输出)等硬件资源。
可选的,在本实施例中,在软件层面,每个硬件分区能够分别运行不同的操作***或者相同操作***的不同版本,且用于管理每个硬件分区的对应的操作***各自独立运行。
在一个示例性实施例中,可以但不限于采用以下方式在所述基板管理控制器上启动目标操作***:在所述基板管理控制器上执行二级程序加载器加载通用引导加载器;通过所述通用引导加载器在每组处理器核心上启动对应的所述目标操作***的内核。
可选地,在本实施例中,二级程序加载器可以但不限于是编译了SPL(SecondaryProgram Loader,二级程序加载器)代码的程序加载器,主要负责初始化外部RAM和环境,并加载Uboot镜像到外部RAM中来执行。
可选地,在本实施例中,通用引导加载器可以但不限于是可以启动操作***内核且能部署加载整个计算机***的一种引导加载程序,比如:Uboot loader(Universal bootloader,统一引导加载程序)。
在一个示例性实施例中,可以但不限于采用以下方式在所述基板管理控制器上执行二级程序加载器加载通用引导加载器:所述基板管理控制器上电并唤醒一个处理器核心;在所述一个处理器核心上引导引导存储中的引导程序执行;通过所述引导程序对所述二级程序加载器进行安全启动校验;在所述二级程序加载器通过所述安全启动校验的情况下,执行所述二级程序加载器引导所述通用引导加载器执行代码。
可选地,在本实施例中,目标操作***的引导程序可以但不限于存储于基板管理控制器上的特定存储空间中专门用于启动目标操作***。目标操作***的一个处理器核心可以但不限于用于执行目标操作***的引导程序,可以但不限于通过执行目标操作***的引导程序启动目标操作***。
可选地,在本实施例中,引导程序对二级程序加载器的代码进行安全启动校验的过程可以但不限于为:引导程序读取二级程序加载器的代码以及验证码,通过约定的运算方式(比如哈希运算)对二级程序加载器的代码进行运算,得到运算值,再将该运算值与读取的验证码进行比对,二者一致则检查结果为正常,二者不一致则检查结果为异常。
可选地,在本实施例中,二级程序加载器也可以对通用引导加载器的代码进行安全启动校验,二级程序加载器读取通用引导加载器的代码以及验证码,通过约定的运算方式(比如哈希运算,与上述引导存储器检查二级程序加载器的运算方式可以相同也可以不同)对通用引导加载器的代码进行运算,得到运算值,再将该运算值与读取的验证码进行比对,二者一致则检查结果为正常,二者不一致则检查结果为异常。检查结果为正常的情况下,再通过通用引导加载器加载目标操作***。
可选地,在本实施例中,引导存储可以但不限于是Boot ROM,Boot ROM是嵌入处理器芯片内的一小块掩模ROM或写保护闪存,包含处理器在上电或复位时执行的第一段代码。
可选地,在本实施例中,以目标操作***为Linux***进行说明,首先给BMC管理***(基板管理控制器)上电,BMC唤醒其中一个核心(默认为核心0)引导Boot ROM(引导存储)里的引导程序;其次,通过Boot ROM引导程序对SPL(二级程序加载器)部分代码进行安全启动校验,校验通过则引导Uboot loader(通用引导加载器)执行SPL代码以及Uboot代码;最后通过Uboot loader在核心0上启动Linux***的kernel(内核)。
在上述步骤S204提供的技术方案中,目标硬件接口是具有管理主机***功能的接口,比如:目标硬件接口为与BMC***强相关的一个或多个硬件接口资源。目标硬件接口可以但不限于包括:LPC(Low pin count Bus,低引脚数总线)、I2C(Inter-IntegratedCircuit,两线式串行总线)0至I2C5、LAN(Local Area Network,局域网)0、LAN1与PCIE(Peripheral Component Interconnect Express,***设备互联扩展接口)硬件接口资源等。
可选地,在本实施例中,目标硬件接口可以但不限于部署在基板管理控制器上,可以预先将操作***管理硬件分区所需的硬件接口加载到处理器上来支持操作***后续管理过程中对硬件接口的调用。在目标操作***启动后,可以在目标操作***所操作的BMC处理器上为目标操作***加载目标硬件接口,建立目标操作***与目标硬件分区的连接,从而实现目标操作***管理目标硬件分区中的多种硬件资源。
在一个示例性实施例中,可以但不限于通过以下方式为所述目标操作***加载目标硬件接口:从具有对应关系的处理器核心和硬件接口中查找所述目标操作***所使用的目标处理器核心对应的所述目标硬件接口,其中,所述基板管理控制器上的硬件接口按照每组处理器核心所对应的硬件分区的硬件架构被分配至每组处理器核心得到具有对应关系的处理器核心和硬件接口;在所述目标处理器核心上为所述目标操作***加载所述目标硬件接口。
可选地,在本实施例中,基板管理控制器可以但不限于包括多个处理器核心,可以以处理器核心即CPU核心为分区单位将基板管理控制器划分为多个核心分区。
可选地,在本实施例中,若基板管理控制器包括两个处理器核心:核心0和核心1,基板管理控制器上部署了四个硬件接口:硬件接口1、硬件接口2、硬件接口3、硬件接口4,硬件接口1和硬件接口2按照核心0(处理器核心)所对应的硬件分区的硬件架构被分配至核心0,即硬件接口1和硬件接口2与核心0对应;硬件接口3和硬件接口4按照核心1所对应的硬件分区的硬件架构被分配至核心1,即硬件接口3和硬件接口4与核心1对应。那么,在目标操作***使用的处理器为核心0(目标处理器核心)的情况下,可以查找到硬件接口1和硬件接口2作为目标硬件接口,从而在核心0上为目标操作***加载目标硬件接口。
在一个示例性实施例中,可以但不限于通过以下方式在所述目标处理器核心上为所述目标操作***加载所述目标硬件接口:解析所述目标处理器核心的目标设备树得到所述目标硬件接口,其中,所述基板管理控制器上的硬件接口通过设备树被分配至每组处理器核心得到具有对应关系的处理器核心和硬件接口,所述基板管理控制器上的硬件接口的物理地址采用统一编址方式;在所述目标处理器核心上加载所述目标硬件接口的驱动;在所述目标处理器核心上引导所述目标操作***的文件***,以完成所述目标操作***的启动引导。
可选地,在本实施例中,每组处理器核心对应一个设备树,目标处理器核心对应的设备树即为目标设备树。设备树可以但不限于是Linux设备树驱动,其作用是为操作***提供硬件信息。设备树驱动在Linux内核的启动过程中被加载,从而让***能够识别和管理硬件设备。设备树驱动提供了硬件设备的地址、中断、电源和其他属性,帮助操作***去正确地寻找、识别和控制硬件设备。设备树通常由一个叫做dts(Device Tree Source,设备树源码)的文件来描述,这个文件中包含了硬件设备的信息和属性,例如设备的型号、制造商、I/O地址范围、中断控制器和引脚等。当***启动时,dts文件会被编译成一个二进制文件(DTB),并且被Linux内核加载和解析。
可选地,在本实施例中,可以但不限于通过不同的设备树文件为与不同的设备树文件对应的不同处理器核心配置不同的硬件资源,即通过不同的设备树文件将BMC上的硬件接口分配至对应的不同处理器核心上,从而得到具有对应关系的处理器核心和硬件接口。
可选地,在本实施例中,BMC上的硬件接口的物理地址采用统一编址方式,即LPC0、LPC1、I2C0~I2C5、LAN0、LAN1、PCIE等资源在BMC***中具有互斥的地址空间,这样BMC上不同核心分区的设备树文件只要保证其所定义的硬件资源不同,就可以保证各核心分区在进行硬件资源访问时不会影响其他核心分区。
在一个可选的实施方式中,以目标操作***为Linux***,基板管理控制器搭载两个处理器核心,被划分为两个核心分区:Core0分区和Core1分区来举例说明。提供了一种操作***在基板管理控制器上的核心分区中运行过程的示例,图3是根据本申请实施例的一种操作***在基板管理控制器上的核心分区中运行过程的流程图,如图3所示,该流程包括以下步骤:
步骤1:BMC管理***上电,BMC使用其中一个核心(默认为核心0)引导Boot ROM里的引导程序;步骤2:Boot ROM对SPL部分代码进行安全启动校验,校验通过则执行SPL代码,执行Uboot代码;步骤3:使用Core0启动Linux***的kernel、解析Core0分区对应的设备树并加载对应的驱动,引导文件***,完成Linux***引导;此时Core0一方面完全拥有对独占资源LPC0、I2C0至I2C2、LAN0的访问权限,能够根据其上层应用需求独立地使用这些接口,另一方面完成了对共享资源PCIE接口控制器的驱动加载,具备上层应用对PCIE接口的访问能力;步骤4:使用Core1启动Linux***的kernel、解析Core1分区对应的设备树并加载对应的驱动,引导文件***,完成Linux***引导,此时Core1完全拥有对独占资源LPC1、I2C3~I2C5、LAN1的访问权限,能够根据其上层应用需求独立地使用这些接口,另一方面完成了对共享资源PCIE接口控制器的驱动加载,具备上层应用对PCIE接口的访问能力;步骤5:Core0独立运行Core0分区的Linux***,Core1独立运行Core1分区的Linux***。
在一个示例性实施例中,在为目标操作***加载目标硬件接口之前,可以但不限于通过以下方式实现基板管理控制器的***运行方法:获取所述主机***的所述多个硬件分区;为所述多个硬件分区中每个所述目标硬件分区分配所述基板管理控制器上的处理器核心得到所述目标处理器核心,并为所述目标硬件分区分配所述基板管理控制器上的硬件接口得到所述目标硬件接口,其中,所述目标处理器核心至少满足所述目标硬件分区的管理运行需求,所述目标硬件接口至少满足所述目标硬件分区的硬件连接需求;建立所述目标处理器核心与所述目标硬件接口之间的对应关系,得到具有对应关系的处理器核心和硬件接口。
可选地,在本实施例中,若根据基板管理控制器搭载的处理器核心的数量N将其被划分为N个核心分区,获取到主机***有M个硬件分区,则可以建立M个硬件分区和N个核心分区的对应关系,从而为M个硬件分区中的目标硬件分区分配满足目标硬件分区的管理运行需求的目标处理器核心,为目标硬件分区分配满足目标硬件分区的硬件连接需求的目标硬件接口。
可选地,在本实施例中,可以但不限于通过不同的设备树文件将BMC上的硬件接口分配至对应的不同处理器核心上,从而建立所述目标处理器核心与所述目标硬件接口之间的对应关系,得到具有对应关系的处理器核心和硬件接口。
在一个示例性实施例中,可以但不限于通过以下方式之一为所述多个硬件分区中每个所述目标硬件分区分配所述基板管理控制器上的处理器核心得到所述目标处理器核心:将所述基板管理控制器上的处理器核心平均分配给每个所述目标硬件分区;按照所述多个硬件分区中每个目标硬件分区的运行架构为所述目标硬件分区分配所述基板管理控制器上的一个或者多个处理器核心得到所述目标处理器核心。
可选地,在本实施例中,若根据基板管理控制器搭载的处理器核心的数量N将其被划分为N个核心分区,获取到主机***有M个硬件分区,则可以采用以下两种分配方法之一为目标硬件分区分配目标处理器核心:1、将N个核心分区对应的n个处理器核心平均分配给M个硬件分区对应的m个目标硬件分区。2、按照M个硬件分区中每个目标硬件分区的运行架构为m个目标硬件分区分配基板管理控制器上n个处理器核心中的一个或者多个处理器核心。
可选地,在本实施例中,若采用按照运行架构为目标硬件分区分配目标处理器核心的方法,则可以采用以下两种优先分配策略:1、CPU优先,表示为目标硬件分区分配满足或最接近目标硬件分区运行所需要的CPU核数的一个或多个处理器核心。2、内存优先,表示为目标硬件分区分配满足或最接近目标硬件分区运行所需要的内存带宽的一个或多个处理器核心。
在一个示例性实施例中,可以但不限于通过以下方式之一为所述目标硬件分区分配所述基板管理控制器上的硬件接口得到所述目标硬件接口:在所述基板管理控制器上存在资源拥有数量大于或者等于所述多个硬件分区中资源需求数量的第一类型的硬件接口的情况下,将所述第一类型的硬件接口按照每个目标硬件分区的硬件架构分配至所述目标硬件分区作为所述目标硬件接口中的目标独占接口,其中,所述目标独占接口是被设置为仅允许所述目标处理器核心访问的硬件接口;在所述基板管理控制器上存在资源拥有数量小于所述多个硬件分区中资源需求数量的第二类型的硬件接口的情况下,建立所述目标处理器核心与所述基板管理控制器上多组处理器核心中参考处理器核心之间对所述第二类型的硬件接口的共享关系作为所述目标硬件接口中的目标共享接口,其中,所述目标共享接口是被设置为允许所述目标处理器核心和所述多组处理器核心中的所述参考处理器核心访问的硬件接口。
可选地,在本实施例中,参考处理器核心可以但不限于是多组处理器中除开目标处理器之外的一个或多个处理器的CPU核心。目标共享接口与目标独占接口在BMC管理***中可以但不限于采用统一编址形式且多个处理器核心对目标共享接口均具有访问权限。
可选地,在本实施例中,基板管理控制器上部署的硬件资源可以但不限于包括两种类型:共享资源和独占资源,其中,独占资源可以但不限于包括LPC0、LPC1、I2C0~I2C5、LAN0、LAN1等硬件接口资源,这些资源是其所处的核心分区的独占资源,只能被本核心分区对应的目标操作***访问。共享资源可以但不限于包括PCIE接口资源,共享资源是基板管理控制器上的所有核心分区的共有资源,即所有核心分区对应的操作***都有权限访问共享资源,可以设计一定的机制来保证不同核心分区对共享资源的分时访问。
可选地,在本实施例中,也就是说,若基板管理控制器上的第一类型的硬件接口的数量为N,则,若N个第一类型的硬件接口拥有的资源数量大于或者等于多个硬件分区中资源需求数量,那么表示多个硬件分区加载所需的资源可以全部由N个第一类型的硬件接口来提供,此时可以将第一类型的硬件接口作为目标独占资源按照每个目标硬件分区的硬件架构分配给目标硬件分区,可以使用目标独占资源独立运行目标操作***。
可选地,在本实施例中,也就是说,若基板管理控制器上的第二类型的硬件接口的数量为M,则,若M个第二类型的硬件接口拥有的资源数量小于多个硬件分区中资源需求数量,那么表示无法将M个第二类型的硬件接口平均分配给多个硬件分区保证每个硬件分区的硬件资源都满足资源需求,此时可以建立目标处理器核心和参考处理器核心的都可以访问第二类型的硬件接口的共享关系,将第二类型的硬件接口作为目标共享资源,允许多个处理器核心分时访问。
在一个可选的实施方式中,以服务器主机***被划分为两个硬件分区:硬件分区1和硬件分区2,将基板管理控制器搭载的两个处理器核心划分为两个核心分区:Core0分区和Core1分区来举例说明,提供了一种基板管理控制器的***运行架构的示例,图4是根据本申请实施例的一种基板管理控制器的***运行架构的示意图,如图4所示,对于服务器Host(主机)端***,以CPU处理器为分区单位对Host硬件资源进行分区,分别对应图中的硬件分区1与硬件分区2。两分区各自对应一个独立的处理器***,即每个分区均包含自身***运行所需的计算、存储、网络和I/O等硬件资源。为了便于后续对BMC硬件分区体系结构的描述,图中仅展示了与BMC***强相关的LPC与PCIE硬件接口资源,即假定硬件分区1和分区2分别具有1个LPC和1个PCIE接口。在软件层面,硬件分区1与分区2能够分别运行不同的操作***或者相同操作***的不同版本,且两分区***的操作***独立运行。
对于BMC处理器***,以CPU核心为分区单位对BMC管理***的硬件资源进行分区,分别对应图中的Core0分区和Core1分区。同理,为了便于描述,图中仅展示了BMC的部分硬件资源,即LPC、I2C、LAN和PCIE接口资源。由图4可知,BMC管理***的Core0分区包含了1个LPC接口(对应图中的LPC0)、3个I2C接口(对应图中的I2C0至I2C2)和1个网络接口(对应图中的LAN0);同样地,Core1分区包含了1个LPC接口(对应图中的LPC1)、3个I2C接口(对应图中的I2C3至I2C5)和1个网络接口(对应图中的LAN1)。在软件层面,两分区能够分别运行不同的操作***或者相同操作***的不同版本,且两分区***的操作***独立运行。
可选地,在本实施例中,对于BMC的分区共享资源PCIE,为了实现其与Host分区***的信息交互,可以在BMC与Host分区***之间设计了一个独立的PCIE Switch(PCIe交换机)器件,BMC两分区的Linux***之间通过核间通信协商控制该PCIE Switch的选通通路,既而实现BMC两分区***通过分区共享资源与Host分区***互联互通的目的。
在上述步骤S206提供的技术方案中,可以在BMC管理***(基板管理控制器)上运行Linux操作***(目标操作***),Linux操作***通过连接了Linux操作***和对应的目标硬件分区的目标硬件接口来管理目标硬件分区,从而不需要根据主机硬件分区的架构升级BMC架构,避免了BMC处理器架构升级带来的芯片成本增加,进而降低了未来服务器***的设计成本,达成了显著缩减设计成本、提高主机***和BMC***的计算性能的目标。
在一个示例性实施例中,可以但不限于通过以下方式在所述基板管理控制器上运行所述目标操作***:在所述目标操作***存在访问所述目标硬件接口中的目标共享接口的需求的情况下,通过所述目标操作***向所述基板管理控制器上多组处理器核心中的参考处理器核心发送第一中断请求,其中,所述目标共享接口是被设置为允许所述目标操作***所使用的目标处理器核心和所述参考处理器核心访问的硬件接口,所述第一中断请求用于请求使用所述目标共享接口;接收所述参考处理器核心上运行的参考操作***响应所述第一中断请求返回的第二中断请求,其中,所述第二中断请求用于指示已释放所述目标共享接口;响应所述第二中断请求,通过所述目标操作***访问所述目标共享接口。
可选地,在本实施例中,参考操作***可以但不限于是多个运行在基板管理控制器上的操作***中除开目标操作***之外的一个或多个操作***。
可选地,在本实施例中,参考操作***接收到请求使用目标共享接口的第一中断请求后,将响应第一中断请求得到的指示目标共享接口已被释放的第二中断请求返回给目标操作***,从而完成目标操作***对目标共享接口的访问动作。
可选的,在本实施例中,目标操作***可以但不限于通过核间通信的方式根据自身的业务需求向参考操作***发送第一中断请求访问目标共享接口,参考操作***通过核间通信的方式指示释放目标共享接口并通过第二中断请求将释放结果返回给目标操作***,实现目标操作***对目标共享接口的访问。从而使得多***均具有目标共享接口的访问能力且不会造成冲突。
可选地,在本实施例中,多个处理器核心对目标共享接口均具有访问权限,那么当多个处理器核心同时访问***中的目标共享接口时,必定导致访问冲突,进一步引发***错误。因此需要针对目标共享接口设计特定的访问机制来保证不同分区对它的正确访问。
可选的,在本实施例中,目标操作***和参考操作***之间可以但不限于采用核间通信的方式交互中断请求。核间通信的方式可以通过定义中断向量来实现。
可选的,在本实施例中,本申请使用自定义的中断向量表来实现核间通信,进而实现分区共享资源的互斥访问控制。以目标操作***和参考操作***均为Linux***,基板管理控制器搭载两个处理器核心,被划分为两个核心分区:Core0分区和Core1分区为例,Linux***中共有16个SGI(software generated interrupt,核间中断)中断号用于实现核间通信,其中8~15中断号可由用户定义,表1是基于Linux***的一种核间中断向量的配置方案。
表1
由表1可知,定义在中断号为8的情况下,触发源为Core0核心,响应源为Core1核心,含义为Core0分区请求使用PCIE资源;定义在中断号为9的情况下,触发源为Core1核心,响应源为Core0核心,含义为Core1分区请求使用PCIE资源;定义在中断号为10的情况下,触发源为Core1核心,响应源为Core0核心,Core1分区释放PCIE资源;定义在中断号为11的情况下,触发源为Core0核心,响应源为Core1核心,含义为Core0分区释放PCIE资源。
在一个示例性实施例中,可以但不限于通过以下方式通过所述目标操作***向所述基板管理控制器上多组处理器核心中的参考处理器核心发送第一中断请求:通过所述目标操作***确定是否已占用所述目标共享接口;在所述目标操作***未占用所述目标共享接口的情况下,通过所述目标操作***向所述参考处理器核心发送所述第一中断请求。
可选地,在本实施例中,可以通过判断目标操作***当前硬件资源的使用情况来判断目标操作***是否已占用目标共享接口,以PCIE硬件接口为目标共享接口为例,若目标操作***当前正在使用PCIE硬件资源,则可以判断目标操作***已经占用目标共享接口,此时无需通过目标操作***向参考处理器核心发送第一中断请求;若目标操作***当前没有使用PCIE硬件资源,则可以判断目标操作***没有占用目标共享接口,此时需通过目标操作***向参考处理器核心发送第一中断请求。
可选地,在本实施例中,在目标操作***没有占用目标共享接口的情况下,可以但不限于根据目标操作***的核心在本申请实施例中的核间中断向量配置方案中查找到请求占用目标共享接口的中断号来向参考处理器核心发送第一中断请求,从而实现以核间通信的方式交互中断请求。
在一个示例性实施例中,在所述通过所述目标操作***访问所述目标共享接口之后,可以但不限于通过以下方式实现基板管理控制器的***运行方法:通过所述目标操作***接收所述参考操作***发送的第三中断请求,其中,所述第三中断请求用于请求使用所述目标共享接口;通过所述目标操作***确定所述目标共享接口是否正在被使用;在所述目标共享接口正在被使用的情况下,等待所述目标共享接口使用结束;在所述目标共享接口未被使用,或者,所述目标共享接口使用结束的情况下,释放所述目标共享接口;通过所述目标操作***向所述参考操作***发送第四中断请求,其中,所述第四中断请求用于指示已释放所述目标共享接口。
可选地,在本实施例中,在目标操作***接收到参考***发送的请求使用目标共享接口的第三中断请求后,可以通过判断目标操作***当前硬件资源的使用情况来判断目标操作***是否已占用目标共享接口,以PCIE硬件接口为目标共享接口为例,若目标操作***当前正在使用PCIE硬件资源,则可以判断目标操作***已经占用目标共享接口,此时需等待PCIE硬件接口使用完毕,使用结束后,目标操作***释放PCIE硬件接口;若目标操作***当前没有使用PCIE硬件资源,则可以判断目标操作***没有占用目标共享接口,目标操作***释放PCIE硬件接口。
可选地,在本实施例中,在目标操作***没有占用目标共享接口或目标***占用了目标共享接口但已使用完毕的情况下,可以但不限于根据目标操作***的核心在本申请实施例中的核间中断向量配置方案中查找到指示已释放目标共享接口的中断号来向参考处理器核心发送第四中断请求,从而通知需要使用目标共享接口的参考操作***处理核心目标共享接口当前可被使用,实现以核间通信的方式交互中断请求。
在本实施例中,各个中断请求可以但不限于通过软件协议的方式在***间进行传输,或者也可以通过硬件模块进行传递。
在一个可选的实施方式中,以目标操作***和参考操作***均为Linux***,将基板管理控制器搭载的两个处理器核心划分为两个核心分区:Core0分区和Core1分区来举例说明,提供了一种核心分区上的操作***访问目标共享接口进行核间通信的过程的示例,图5是根据本申请实施例的一种核心分区上的操作***访问目标共享接口进行核间通信的过程的示意图,如图5所示,当Core0分区需要访问PCIE共享资源时,Core0分区的Linux***将触发中断号为8的核间中断,Core1分区的Linux***检测到该中断后判断此时是否能够释放PCIE资源给Core0分区使用,在Core1分区未占用PCIE资源的情况下,Core1分区的Linux***触发中断号10的核间中断,以通知Core0分区PCIE资源已释放;或者,在Core1分区此时正在占用PCIE资源的情况下,Core1分区忽略来自Core0的中断请求,此时Core0分区无法使用该资源,待Core1分区不再使用该资源时,进行资源释放并触发中断号为10的核间中断,将PCIE资源交由Core0分区使用。类似地,图中中断号为9和中断号为11的核间中断用于Core1向Core0请求PCIE资源。BMC管理***的PCIE控制器与Host***不同硬件分区的互连控制逻辑就由上述核间通信过程进行配置,而具体的物理链路拓扑变换由PCIE Switch器件进行切换。
可选地,在本实施例中,本申请提出的基板管理控制器的***运行方法有利于主机***硬件分区技术的快速应用推广,避免了BMC处理器架构升级带来的芯片成本增加,进而降低了未来服务器***的设计成本,最终达成了显著缩减设计成本、提高主机***和BMC***的计算性能的目标。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
在本实施例中还提供了一种基板管理控制器,包括:目标操作***和目标硬件接口,其中,所述目标硬件接口,用于连接所述目标操作***与服务器主机***上划分的多个硬件分区中的目标硬件分区;所述目标操作***,用于通过所述目标硬件接口管理所述目标硬件分区。
通过上述基板管理控制器,在基板管理控制器上设置多个硬件接口,每个硬件接口用于连接硬件分区和与硬件分区对应的操作***,当目标操作***在基板管理控制器上运行时,便可以通过与目标操作***对应的目标硬件接口管理服务器主机***上划分的多个硬件分区中的目标硬件分区,即通过给每个操作***分配对应的硬件接口,允许不同的操作***管理服务器主机***上划分的与该操作***对应的硬件分区,而不用根据不同的服务器主机***硬件分区的架构来改造基板管理控制器的***架构,从而提高了服务器主机***的硬件分区的适应性以及通用性,因此,可以解决服务器主机***的硬件分区的适用性较低的技术问题,达到提高了服务器主机***的硬件分区的适用性的技术效果。
可选地,在本实施例中,上述基板管理控制器可以但不限于是一个基于IPMI技术设计规范下,对主机板提供智能管理的用于监控和管理服务器的专用控制器,如BMC。BMC可以有独立的运算器,其次是控制器,以及存储器和输入输出设备,还可以有独立的软件***,包括基本开机***,操作***和运行在BMC***上的各种应用程序。在主机板上,BMC可以是独立***板块亦可以设计为集成在主机板上的一个部件,常被设计在服务器或者计算机的主机板上。
上述基板管理控制器可以不限于为任何允许在同一个处理器中运行多个操作***的芯片。比如:BMC芯片。例如,BMC芯片的一个示例可以如图6所示,BMC芯片的硬件可以但不限于包括SOC(SOC称为***级芯片,也有称片上***,意指它是一个产品,是一个有专用目标的集成电路,其中包含完整***并有嵌入软件的全部内容。同时它又是一种技术,用以实现从确定***功能开始,到软/硬件划分,并完成设计的整个过程)子模块和BMC带外子模块,其中,SOC子模块主要包含ARM核心(ARM Core 1, ARM Core 2,..., ARM Core X),其还可以但不限于包括DDR(Double Data Rate,双倍速率)4控制器(内存控制器)、MAC(MediaAccess Control Address,媒体访问控制地址)控制器(网络控制器)、SD(Secure Digital,安全数字)Card/eMMC(Embedded Multi Media Card,嵌入式多媒体卡)控制器(存储控制器)、PCIE RC(Root Complex,根复合体)控制器、SRAM(Static Random-Access Memory,静态随机存取存储器)及SPI(Serial Peripheral Interface,串行外设接口,是一种高速的,全双工,同步的通信总线)控制器。
上述核心与各控制器通过第二总线互连,实现核心与各控制器间的交互。同时,ARM核心间连接至第一总线(比如:可以通过AXI(Advanced eXtensible Interface,高级可扩展接口)桥(Bridge)连接),核心间的通信通过第一总线实现。此外,SOC子模块中还实现了第一总线与第二总线的互连互通(比如:通过桥(Bridge)的转换实现),这样为SOC子模块访问第二总线上的外设提供一条物理通路。
DDR4控制器可以通过DDR4 PHY(Physical Layer,物理层)接口与其他部件或者设备相连,MAC控制器通过RGMII(Reduced Gigabit Media Independent Interface,吉比特介质独立接口)与其他部件或者设备相连,SD卡/eMMC控制器通过SD接口与其他部件或者设备相连,PCIE RC控制器通过PCIE PHY接口与其他部件或者设备相连。
BMC带外子模块主要包含PWM(Pulse Width Modulation,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术)、GPIO(General-purpose input/output,通用型之输入输出)、FanTech(风扇调速)、mailbox(邮箱)等芯片外设对应的控制器,通过这些控制器能够实现对BMC的PECI(Platform EnvironmentControl Interface,即平台环境式控制接口)通信(比如使用GPIO模拟PECI)、风扇调控等带外管理功能。该BMC带外子模块可以但不限于通过APB(Advanced Peripheral Bus,***总线)总线实现与SOC子模块的交互。
可选地,在本实施例中,BMC芯片通过第一总线与第二总线实现片内ARM核、存储单元及控制器硬件资源间的互连。处理器资源的动态均衡调度主要涉及BMC芯片的ARM核心资源调度,核间通信指ARM核之间进行的通信。
可选地,在本实施例中,本申请所提出的基板管理控制器的***运行方法基于在BMC多核处理器硬核中运行多个BMC管理***,这些BMC管理***同时运行于同一嵌入式***中。具体而言,本申请所提出的基板管理控制器的***运行方法基于BMC多核处理器硬核,根据核心数量将BMC处理器的I2C、GPIO等硬件资源分区,这些硬件分区资源与某个或几个BMC处理器硬核组成独立的***,运行独立的BMC管理***;对于BMC处理器中单一的硬件资源,比如PCIE控制器,物理链路通过PCIESwitch器件实现BMC处理器***和多个主机***之间的互联,控制逻辑由多个BMC管理***通过核间通信方式控制。
在一个示例性实施例中,基板管理控制器可以但不限于用于:从具有对应关系的处理器核心和硬件接口中查找所述目标操作***所使用的目标处理器核心对应的所述目标硬件接口,其中,所述基板管理控制器上的硬件接口按照每组处理器核心所对应的硬件分区的硬件架构被分配至每组处理器核心得到具有对应关系的处理器核心和硬件接口;在所述目标处理器核心上为所述目标操作***加载所述目标硬件接口。
可选地,在本实施例中,基板管理控制器可以但不限于包括多个处理器核心,多个处理器核心部署在同一个BMC多核处理器硬核上运行。可以以处理器核心即CPU核心为分区单位将基板管理控制器划分为多个核心分区。
可选地,在本实施例中,若基板管理控制器包括两个处理器核心:核心0和核心1,基板管理控制器上部署了四个硬件接口:硬件接口1、硬件接口2、硬件接口3、硬件接口4,硬件接口1和硬件接口2按照核心0(处理器核心)所对应的硬件分区的硬件架构被分配至核心0,即硬件接口1和硬件接口2与核心0对应;硬件接口3和硬件接口4按照核心1所对应的硬件分区的硬件架构被分配至核心1,即硬件接口3和硬件接口4与核心1对应。那么,在目标操作***使用的处理器为核心0(目标处理器核心)的情况下,可以查找到硬件接口1和硬件接口2作为目标硬件接口,从而在核心0上为目标操作***加载目标硬件接口。
在一个示例性实施例中,基板管理控制器可以但不限于用于:解析所述目标处理器核心的目标设备树得到所述目标硬件接口,其中,所述基板管理控制器上的硬件接口通过设备树被分配至每组处理器核心得到具有对应关系的处理器核心和硬件接口,所述基板管理控制器上的硬件接口的物理地址采用统一编址方式;在所述目标处理器核心上加载所述目标硬件接口的驱动;在所述目标处理器核心上引导所述目标操作***的文件***,以完成所述目标操作***的启动引导。
可选地,在本实施例中,可以但不限于通过不同的设备树文件为与不同的设备树文件对应的不同处理器核心配置不同的硬件资源,即通过不同的设备树文件将BMC上的硬件接口分配至对应的不同处理器核心上,从而得到具有对应关系的处理器核心和硬件接口。
在一个示例性实施例中,基板管理控制器可以但不限于用于:在所述为所述目标操作***加载目标硬件接口之前,获取所述主机***的所述多个硬件分区;在所述为所述目标操作***加载目标硬件接口之前,为所述多个硬件分区中每个所述目标硬件分区分配所述基板管理控制器上的处理器核心得到所述目标处理器核心,并为所述目标硬件分区分配所述基板管理控制器上的硬件接口得到所述目标硬件接口,其中,所述目标处理器核心至少满足所述目标硬件分区的管理运行需求,所述目标硬件接口至少满足所述目标硬件分区的硬件连接需求;在所述为所述目标操作***加载目标硬件接口之前,建立所述目标处理器核心与所述目标硬件接口之间的对应关系,得到具有对应关系的处理器核心和硬件接口。
可选地,在本实施例中,若根据基板管理控制器搭载的处理器核心的数量N将其被划分为N个核心分区,获取到主机***有M个硬件分区,则可以建立M个硬件分区和N个核心分区的对应关系,从而为M个硬件分区中的目标硬件分区分配满足目标硬件分区的管理运行需求的目标处理器核心,为目标硬件分区分配满足目标硬件分区的硬件连接需求的目标硬件接口。
可选地,在本实施例中,可以但不限于通过不同的设备树文件将BMC上的硬件接口分配至对应的不同处理器核心上,从而建立所述目标处理器核心与所述目标硬件接口之间的对应关系,得到具有对应关系的处理器核心和硬件接口。
在一个示例性实施例中,基板管理控制器可以但不限于用于以下之一:将所述基板管理控制器上的处理器核心平均分配给每个所述目标硬件分区;按照所述多个硬件分区中每个目标硬件分区的运行架构为所述目标硬件分区分配所述基板管理控制器上的一个或者多个处理器核心得到所述目标处理器核心。
可选地,在本实施例中,若根据基板管理控制器搭载的处理器核心的数量N将其被划分为N个核心分区,获取到主机***有M个硬件分区,则可以采用以下两种分配方法之一为目标硬件分区分配目标处理器核心:1、将N个核心分区对应的n个处理器核心平均分配给M个硬件分区对应的m个目标硬件分区。2、按照M个硬件分区中每个目标硬件分区的运行架构为m个目标硬件分区分配基板管理控制器上n个处理器核心中的一个或者多个处理器核心。
可选地,在本实施例中,若采用按照运行架构为目标硬件分区分配目标处理器核心的方法,则可以采用以下两种优先分配策略:1、CPU优先,表示为目标硬件分区分配满足或最接近目标硬件分区运行所需要的CPU核数的一个或多个处理器核心。2、内存优先,表示为目标硬件分区分配满足或最接近目标硬件分区运行所需要的内存带宽的一个或多个处理器核心。
在一个示例性实施例中,目标硬件接口可以但不限于包括:目标独占接口和/或目标共享接口,其中,所述目标独占接口是被设置为仅允许所述目标操作***所在的目标处理器核心访问的硬件接口;所述目标共享接口是被设置为允许所述目标处理器核心和所述基板管理控制器上多组处理器核心中的参考处理器核心访问的硬件接口。
可选地,在本实施例中,目标硬件接口可以但不限于是与BMC***强相关的一个或多个硬件接口资源,如:LPC(Low pin count Bus,LPC总线)、I2C0~I2C5、LAN0、LAN1与PCIE硬件接口资源等。目标硬件接口可以但不限于部署在基板管理控制器的处理器上,在目标操作***启动后,可以在目标操作***所操作的BMC处理器上为目标操作***加载目标硬件接口,建立目标操作***与目标硬件分区的连接,从而实现目标操作***管理目标硬件分区中的多种硬件资源。
可选地,在本实施例中,参考处理器核心可以但不限于是多组处理器中除开目标处理器之外的一个或多个处理器的CPU核心。目标共享接口与目标独占接口在BMC管理***中可以但不限于采用统一编址形式且多个处理器核心对目标共享接口均具有访问权限。
在一个示例性实施例中,基板管理控制器可以但不限于用于以下之一:在所述基板管理控制器上存在资源拥有数量大于或者等于所述多个硬件分区中资源需求数量的第一类型的硬件接口的情况下,将所述第一类型的硬件接口按照每个目标硬件分区的硬件架构分配至所述目标硬件分区作为所述目标硬件接口中的目标独占接口,其中,所述目标独占接口是被设置为仅允许所述目标处理器核心访问的硬件接口;在所述基板管理控制器上存在资源拥有数量小于所述多个硬件分区中资源需求数量的第二类型的硬件接口的情况下,建立所述目标处理器核心与所述基板管理控制器上多组处理器核心中参考处理器核心之间对所述第二类型的硬件接口的共享关系作为所述目标硬件接口中的目标共享接口,其中,所述目标共享接口是被设置为允许所述目标处理器核心和所述多组处理器核心中的所述参考处理器核心访问的硬件接口。
可选地,在本实施例中,基板管理控制器上部署的硬件资源可以但不限于包括两种类型:共享资源和独占资源,其中,独占资源可以但不限于包括LPC0、LPC1、I2C0~I2C5、LAN0、LAN1等硬件接口资源,这些资源是其所处的核心分区的独占资源,只能被本核心分区对应的目标操作***访问。共享资源可以但不限于包括PCIE接口资源,共享资源是基板管理控制器上的所有核心分区的共有资源,即所有核心分区对应的操作***都有权限访问共享资源,可以设计一定的机制来保证不同核心分区对共享资源的分时访问。
可选地,在本实施例中,也就是说,若基板管理控制器上的第一类型的硬件接口的数量为N,则,若N个第一类型的硬件接口拥有的资源数量大于或者等于多个硬件分区中资源需求数量,那么表示多个硬件分区加载所需的资源可以全部由N个第一类型的硬件接口来提供,此时可以将第一类型的硬件接口作为目标独占资源按照每个目标硬件分区的硬件架构分配给目标硬件分区,可以使用目标独占资源独立运行目标操作***。
可选地,在本实施例中,也就是说,若基板管理控制器上的第二类型的硬件接口的数量为M,则,若M个第二类型的硬件接口拥有的资源数量小于多个硬件分区中资源需求数量,那么表示无法将M个第二类型的硬件接口平均分配给多个硬件分区保证每个硬件分区的硬件资源都满足资源需求,此时可以建立目标处理器核心和参考处理器核心的都可以访问第二类型的硬件接口的共享关系,将第二类型的硬件接口作为目标共享资源,允许多个处理器核心分时访问。
在一个示例性实施例中,基板管理控制器可以但不限于用于:在所述目标操作***存在访问所述目标硬件接口中的目标共享接口的需求的情况下,通过所述目标操作***向所述基板管理控制器上多组处理器核心中的参考处理器核心发送第一中断请求,其中,所述目标共享接口是被设置为允许所述目标操作***所使用的目标处理器核心和所述参考处理器核心访问的硬件接口,所述第一中断请求用于请求使用所述目标共享接口;接收所述参考处理器核心上运行的参考操作***响应所述第一中断请求返回的第二中断请求,其中,所述第二中断请求用于指示已释放所述目标共享接口;响应所述第二中断请求,通过所述目标操作***访问所述目标共享接口。
可选地,在本实施例中,参考操作***可以但不限于是多个运行在基板管理控制器上的操作***中除开目标操作***之外的一个或多个操作***。
可选地,在本实施例中,参考操作***接收到请求使用目标共享接口的第一中断请求后,将响应第一中断请求得到的指示目标共享接口已被释放的第二中断请求返回给目标操作***,从而完成目标操作***对目标共享接口的访问动作。
可选的,在本实施例中,目标操作***可以但不限于通过核间通信的方式根据自身的业务需求向参考操作***发送第一中断请求访问目标共享接口,参考操作***通过核间通信的方式指示释放目标共享接口并通过第二中断请求将释放结果返回给目标操作***,实现目标操作***对目标共享接口的访问。从而使得多***均具有目标共享接口的访问能力且不会造成冲突。
可选地,在本实施例中,多个处理器核心对目标共享接口均具有访问权限,那么当多个处理器核心同时访问***中的目标共享接口时,必定导致访问冲突,进一步引发***错误。因此需要针对目标共享接口设计特定的访问机制来保证不同分区对它的正确访问。
可选的,在本实施例中,目标操作***和参考操作***之间可以但不限于采用核间通信的方式交互中断请求。核间通信的方式可以通过定义中断向量来实现。
可选的,在本实施例中,本申请使用自定义的中断向量表来实现核间通信,进而实现分区共享资源的互斥访问控制。以目标操作***和参考操作***均为Linux***,基板管理控制器搭载两个处理器核心,被划分为两个核心分区:Core0分区和Core1分区为例,Linux***中共有16个SGI中断号用于实现核间通信,其中8~15中断号可由用户定义。
在一个示例性实施例中,基板管理控制器可以但不限于用于:通过所述目标操作***确定是否已占用所述目标共享接口;在所述目标操作***未占用所述目标共享接口的情况下,通过所述目标操作***向所述参考处理器核心发送所述第一中断请求。
可选地,在本实施例中,可以通过判断目标操作***当前硬件资源的使用情况来判断目标操作***是否已占用目标共享接口,以PCIE硬件接口为目标共享接口为例,若目标操作***当前正在使用PCIE硬件资源,则可以判断目标操作***已经占用目标共享接口,此时无需通过目标操作***向参考处理器核心发送第一中断请求;若目标操作***当前没有使用PCIE硬件资源,则可以判断目标操作***没有占用目标共享接口,此时需通过目标操作***向参考处理器核心发送第一中断请求。
可选地,在本实施例中,在目标操作***没有占用目标共享接口的情况下,可以但不限于根据目标操作***的核心在本申请实施例中的核间中断向量配置方案中查找到请求占用目标共享接口的中断号来向参考处理器核心发送第一中断请求,从而实现以核间通信的方式交互中断请求。
在一个示例性实施例中,基板管理控制器可以但不限于用于:在所述通过所述目标操作***访问所述目标共享接口之后,通过所述目标操作***接收所述参考操作***发送的第三中断请求,其中,所述第三中断请求用于请求使用所述目标共享接口;在所述通过所述目标操作***访问所述目标共享接口之后,通过所述目标操作***确定所述目标共享接口是否正在被使用;在所述通过所述目标操作***访问所述目标共享接口之后,在所述目标共享接口正在被使用的情况下,等待所述目标共享接口使用结束;在所述通过所述目标操作***访问所述目标共享接口之后,在所述目标共享接口未被使用,或者,所述目标共享接口使用结束的情况下,释放所述目标共享接口;在所述通过所述目标操作***访问所述目标共享接口之后,通过所述目标操作***向所述参考操作***发送第四中断请求,其中,所述第四中断请求用于指示已释放所述目标共享接口。
可选地,在本实施例中,在目标操作***接收到参考***发送的请求使用目标共享接口的第三中断请求后,可以通过判断目标操作***当前硬件资源的使用情况来判断目标操作***是否已占用目标共享接口,以PCIE硬件接口为目标共享接口为例,若目标操作***当前正在使用PCIE硬件资源,则可以判断目标操作***已经占用目标共享接口,此时需等待PCIE硬件接口使用完毕,使用结束后,目标操作***释放PCIE硬件接口;若目标操作***当前没有使用PCIE硬件资源,则可以判断目标操作***没有占用目标共享接口,目标操作***释放PCIE硬件接口。
可选地,在本实施例中,在目标操作***没有占用目标共享接口或目标***占用了目标共享接口但已使用完毕的情况下,可以但不限于根据目标操作***的核心在本申请实施例中的核间中断向量配置方案中查找到指示已释放目标共享接口的中断号来向参考处理器核心发送第四中断请求,从而通知需要使用目标共享接口的参考操作***处理核心目标共享接口当前可被使用,实现以核间通信的方式交互中断请求。
在本实施例中,各个中断请求可以但不限于通过软件协议的方式在***间进行传输,或者也可以通过硬件模块进行传递。
在一个示例性实施例中,所述目标操作***中部署了目标设备树,所述目标设备树用于加载所述目标硬件接口的驱动,所述基板管理控制器上的硬件接口的物理地址采用统一编址方式。
可选地,在本实施例中,每个处理器核心对应一个设备树,目标处理器核心对应的设备树即为目标设备树。设备树可以但不限于是Linux设备树驱动,它的作用是为操作***提供硬件信息。设备树驱动在Linux内核的启动过程中被加载,从而让***能够识别和管理硬件设备。具体来说,设备树驱动提供了硬件设备的地址、中断、电源和其他属性,帮助操作***去正确地寻找、识别和控制硬件设备。设备树通常由一个叫做dts(Device TreeSource)的文件来描述,这个文件中包含了硬件设备的信息和属性,例如设备的型号、制造商、I/O地址范围、中断控制器和引脚等。当***启动时,dts文件会被编译成一个二进制文件(DTB),并且被Linux内核加载和解析。
可选地,在本实施例中,BMC(基板管理控制器)上的硬件接口的物理地址采用统一编址方式,即LPC0、LPC1、I2C0~I2C5、LAN0、LAN1、PCIE等资源在BMC***中具有互斥的地址空间,这样BMC上不同核心分区的设备树文件只要保证其所定义的硬件资源不同,就可以保证各核心分区在进行硬件资源访问时不会影响其他核心分区。
在一个示例性实施例中,基板管理控制器还包括:通用引导加载器,其中,所述通用引导加载器,用于在所述基板管理控制器上的每组处理器核心上启动对应的所述目标操作***的内核;所述目标操作***的内核,用于解析所述目标设备树加载所述目标硬件接口的驱动。
可选地,在本实施例中,通用引导加载器可以但不限于是可以启动操作***内核且能部署加载整个计算机***的一种引导加载程序,比如:Uboot loader(universal bootloader,遵循GPL条款的开放源码项目,作用是***引导)。
在一个示例性实施例中,基板管理控制器还包括:二级程序加载器,其中,所述二级程序加载器,用于引导所述通用引导加载器执行代码。
可选地,在本实施例中,二级程序加载器可以但不限于是编译了SPL(secondaryprogram loader)代码的程序加载器,主要负责初始化外部RAM和环境,并加载Uboot镜像到外部RAM中来执行。
在一个示例性实施例中,基板管理控制器还包括:引导存储,所述引导存储,用于对所述二级程序加载器进行安全启动校验。
可选地,在本实施例中,引导存储可以但不限于是Boot ROM,是嵌入处理器芯片内的一小块掩模ROM或写保护闪存,它包含处理器在上电或复位时执行的第一段代码。
可选地,在本实施例中,引导存储可以但不限于存储于基板管理控制器上的特定存储空间中专门用于启动目标操作***。目标操作***的一个处理器核心可以但不限于用于执行引导存储的引导程序,可以但不限于通过执行引导存储的引导程序启动目标操作***。
可选地,在本实施例中,引导存储对二级程序加载器的代码进行安全启动校验的过程可以但不限于为:引导存储读取二级程序加载器的代码以及验证码,通过约定的运算方式(比如哈希运算)对二级程序加载器的代码进行运算,得到运算值,再将该运算值与读取的验证码进行比对,二者一致则检查结果为正常,二者不一致则检查结果为异常。
可选地,在本实施例中,二级程序加载器也可以对通用引导加载器的代码进行安全启动校验,二级程序加载器读取通用引导加载器的代码以及验证码,通过约定的运算方式(比如哈希运算,与上述引导存储检查二级程序加载器的运算方式可以相同也可以不同)对通用引导加载器的代码进行运算,得到运算值,再将该运算值与读取的验证码进行比对,二者一致则检查结果为正常,二者不一致则检查结果为异常。检查结果为正常的情况下,再通过通用引导加载器加载目标操作***。
可选地,在本实施例中,本申请提供的基板管理控制器的架构的关键点为在同一BMC处理器中实现基于处理器核心的硬件资源分区,对于分区独占的硬件资源,由对应分区的操作***即时访问,而对于分区共享型硬件资源则通过不同分区***间的核间通信方式实现对其访问控制,最终实现服务器管理单元硬件分区的效果,使得传统BMC管理子***在主机硬件分区***中的直接应用成为可能,有效避免了因BMC处理器架构升级带来的芯片成本增加,进而达到降低整个服务器***设计成本的目标。
在本实施例中还提供了一种服务器,所述服务器包括:基板管理控制器和服务器主机***,其中,所述基板管理控制器包括目标操作***和目标硬件接口,所述服务器主机***包括多个硬件分区,所述目标硬件接口建立了所述目标操作***与所述多个硬件分区中的目标硬件分区之间的连接;所述基板管理控制器,用于通过所述目标操作***管理所述目标硬件分区。
通过上述服务器,在基板管理控制器上设置多个硬件接口,每个硬件接口用于连接硬件分区和与硬件分区对应的操作***,当目标操作***在基板管理控制器上运行时,便可以通过与目标操作***对应的目标硬件接口管理服务器主机***上划分的多个硬件分区中的目标硬件分区,即通过给每个操作***分配对应的硬件接口,允许不同的操作***管理服务器主机***上划分的与该操作***对应的硬件分区,而不用根据不同的服务器主机***硬件分区的架构来改造基板管理控制器的***架构,从而提高了服务器主机***的硬件分区的适应性以及通用性,因此,可以解决服务器主机***的硬件分区的适用性较低的技术问题,达到提高了服务器主机***的硬件分区的适用性的技术效果。
可选地,在本实施例中,上述服务器中的基板管理控制器可以但不限于是一个基于IPMI技术设计规范下,对主机板提供智能管理的用于监控和管理服务器的专用控制器,如BMC。BMC可以有独立的运算器,其次是控制器,以及存储器和输入输出设备,还可以有独立的软件***,包括基本开机***,操作***和运行在BMC***上的各种应用程序。在主机板上,BMC可以是独立***板块亦可以设计为集成在主机板上的一个部件,常被设计在服务器或者计算机的主机板上。
可选地,在本实施例中,本申请所提出的基板管理控制器的***运行方法基于在BMC多核处理器硬核中运行多个BMC管理***,这些BMC管理***同时运行于同一嵌入式***中。具体而言,本申请所提出的基板管理控制器的***运行方法基于BMC多核处理器硬核,根据核心数量将BMC处理器的I2C、GPIO等硬件资源分区,这些硬件分区资源与某个或几个BMC处理器硬核组成独立的***,运行独立的BMC管理***;对于BMC处理器中单一的硬件资源,比如PCIE控制器,物理链路通过PCIESwitch器件实现BMC处理器***和多个主机***之间的互联,控制逻辑由多个BMC管理***通过核间通信方式控制。
在一个示例性实施例中,服务器可以但不限于用于:从具有对应关系的处理器核心和硬件接口中查找所述目标操作***所使用的目标处理器核心对应的所述目标硬件接口,其中,所述基板管理控制器上的硬件接口按照每组处理器核心所对应的硬件分区的硬件架构被分配至每组处理器核心得到具有对应关系的处理器核心和硬件接口;在所述目标处理器核心上为所述目标操作***加载所述目标硬件接口。
可选地,在本实施例中,基板管理控制器可以但不限于包括多个处理器核心,多个处理器核心部署在同一个BMC多核处理器硬核上运行。可以以处理器核心即CPU核心为分区单位将基板管理控制器划分为多个核心分区。
可选地,在本实施例中,若基板管理控制器包括两个处理器核心:核心0和核心1,基板管理控制器上部署了四个硬件接口:硬件接口1、硬件接口2、硬件接口3、硬件接口4,硬件接口1和硬件接口2按照核心0(处理器核心)所对应的硬件分区的硬件架构被分配至核心0,即硬件接口1和硬件接口2与核心0对应;硬件接口3和硬件接口4按照核心1所对应的硬件分区的硬件架构被分配至核心1,即硬件接口3和硬件接口4与核心1对应。那么,在目标操作***使用的处理器为核心0(目标处理器核心)的情况下,可以查找到硬件接口1和硬件接口2作为目标硬件接口,从而在核心0上为目标操作***加载目标硬件接口。
可选的,在本实施例中,服务器主机***可以但不限于是搭载多个CPU处理器的安装在计算机主机上的操作***,通常是Windows、Mac、OS等***,它们管理计算机的硬件和软件资源,并提供服务和接口供用户或应用程序使用。
在一个示例性实施例中,服务器可以但不限于用于:解析所述目标处理器核心的目标设备树得到所述目标硬件接口,其中,所述基板管理控制器上的硬件接口通过设备树被分配至每组处理器核心得到具有对应关系的处理器核心和硬件接口,所述基板管理控制器上的硬件接口的物理地址采用统一编址方式;在所述目标处理器核心上加载所述目标硬件接口的驱动;在所述目标处理器核心上引导所述目标操作***的文件***,以完成所述目标操作***的启动引导。
可选地,在本实施例中,可以但不限于通过不同的设备树文件为与不同的设备树文件对应的不同处理器核心配置不同的硬件资源,即通过不同的设备树文件将BMC上的硬件接口分配至对应的不同处理器核心上,从而得到具有对应关系的处理器核心和硬件接口。
在一个示例性实施例中,服务器可以但不限于用于:在所述为所述目标操作***加载目标硬件接口之前,获取所述主机***的所述多个硬件分区;在所述为所述目标操作***加载目标硬件接口之前,为所述多个硬件分区中每个所述目标硬件分区分配所述基板管理控制器上的处理器核心得到所述目标处理器核心,并为所述目标硬件分区分配所述基板管理控制器上的硬件接口得到所述目标硬件接口,其中,所述目标处理器核心至少满足所述目标硬件分区的管理运行需求,所述目标硬件接口至少满足所述目标硬件分区的硬件连接需求;在所述为所述目标操作***加载目标硬件接口之前,建立所述目标处理器核心与所述目标硬件接口之间的对应关系,得到具有对应关系的处理器核心和硬件接口。
可选地,在本实施例中,若根据基板管理控制器搭载的处理器核心的数量N将其被划分为N个核心分区,获取到主机***有M个硬件分区,则可以建立M个硬件分区和N个核心分区的对应关系,从而为M个硬件分区中的目标硬件分区分配满足目标硬件分区的管理运行需求的目标处理器核心,为目标硬件分区分配满足目标硬件分区的硬件连接需求的目标硬件接口。
可选地,在本实施例中,可以但不限于通过不同的设备树文件将BMC上的硬件接口分配至对应的不同处理器核心上,从而建立所述目标处理器核心与所述目标硬件接口之间的对应关系,得到具有对应关系的处理器核心和硬件接口。
在一个示例性实施例中,服务器可以但不限于用于以下之一:将所述基板管理控制器上的处理器核心平均分配给每个所述目标硬件分区;按照所述多个硬件分区中每个目标硬件分区的运行架构为所述目标硬件分区分配所述基板管理控制器上的一个或者多个处理器核心得到所述目标处理器核心。
可选地,在本实施例中,若根据基板管理控制器搭载的处理器核心的数量N将其被划分为N个核心分区,获取到主机***有M个硬件分区,则可以采用以下两种分配方法之一为目标硬件分区分配目标处理器核心:1、将N个核心分区对应的n个处理器核心平均分配给M个硬件分区对应的m个目标硬件分区。2、按照M个硬件分区中每个目标硬件分区的运行架构为m个目标硬件分区分配基板管理控制器上n个处理器核心中的一个或者多个处理器核心。
可选地,在本实施例中,若采用按照运行架构为目标硬件分区分配目标处理器核心的方法,则可以采用以下两种优先分配策略:1、CPU优先,表示为目标硬件分区分配满足或最接近目标硬件分区运行所需要的CPU核数的一个或多个处理器核心。2、内存优先,表示为目标硬件分区分配满足或最接近目标硬件分区运行所需要的内存带宽的一个或多个处理器核心。
在一个示例性实施例中,目标硬件接口可以但不限于包括:目标独占接口和/或目标共享接口,其中,所述目标独占接口是被设置为仅允许所述目标操作***所在的目标处理器核心访问的硬件接口,所述目标共享接口是被设置为允许所述目标处理器核心和所述基板管理控制器上多组处理器核心中的参考处理器核心访问的硬件接口;所述目标独占接口与所述目标硬件分区直接连接;所述目标共享接口与分区开关器件连接,所述分区开关器件分别与所述目标硬件分区和所述参考处理器核心对应的参考硬件分区连接。
可选地,在本实施例中,目标硬件接口可以但不限于是与BMC***强相关的一个或多个硬件接口资源,如:LPC(Low pin count Bus,LPC总线)、I2C0~I2C5、LAN0、LAN1与PCIE硬件接口资源等。目标硬件接口可以但不限于部署在基板管理控制器的处理器上,在目标操作***启动后,可以在目标操作***所操作的BMC处理器上为目标操作***加载目标硬件接口,建立目标操作***与目标硬件分区的连接,从而实现目标操作***管理目标硬件分区中的多种硬件资源。
可选地,在本实施例中,参考处理器核心可以但不限于是多组处理器中除开目标处理器之外的一个或多个处理器的CPU核心。目标共享接口与目标独占接口在BMC管理***中可以但不限于采用统一编址形式且多个处理器核心对目标共享接口均具有访问权限。
在一个示例性实施例中,服务器可以但不限于用于以下之一:在所述基板管理控制器上存在资源拥有数量大于或者等于所述多个硬件分区中资源需求数量的第一类型的硬件接口的情况下,将所述第一类型的硬件接口按照每个目标硬件分区的硬件架构分配至所述目标硬件分区作为所述目标硬件接口中的目标独占接口,其中,所述目标独占接口是被设置为仅允许所述目标处理器核心访问的硬件接口;在所述基板管理控制器上存在资源拥有数量小于所述多个硬件分区中资源需求数量的第二类型的硬件接口的情况下,建立所述目标处理器核心与所述基板管理控制器上多组处理器核心中参考处理器核心之间对所述第二类型的硬件接口的共享关系作为所述目标硬件接口中的目标共享接口,其中,所述目标共享接口是被设置为允许所述目标处理器核心和所述多组处理器核心中的所述参考处理器核心访问的硬件接口。
可选地,在本实施例中,基板管理控制器上部署的硬件资源可以但不限于包括两种类型:共享资源和独占资源,其中,独占资源可以但不限于包括LPC0、LPC1、I2C0~I2C5、LAN0、LAN1等硬件接口资源,这些资源是其所处的核心分区的独占资源,只能被本核心分区对应的目标操作***访问。共享资源可以但不限于包括PCIE接口资源,共享资源是基板管理控制器上的所有核心分区的共有资源,即所有核心分区对应的操作***都有权限访问共享资源,可以设计一定的机制来保证不同核心分区对共享资源的分时访问。
可选地,在本实施例中,也就是说,若基板管理控制器上的第一类型的硬件接口的数量为N,则,若N个第一类型的硬件接口拥有的资源数量大于或者等于多个硬件分区中资源需求数量,那么表示多个硬件分区加载所需的资源可以全部由N个第一类型的硬件接口来提供,此时可以将第一类型的硬件接口作为目标独占资源按照每个目标硬件分区的硬件架构分配给目标硬件分区,可以使用目标独占资源独立运行目标操作***。
可选地,在本实施例中,也就是说,若基板管理控制器上的第二类型的硬件接口的数量为M,则,若M个第二类型的硬件接口拥有的资源数量小于多个硬件分区中资源需求数量,那么表示无法将M个第二类型的硬件接口平均分配给多个硬件分区保证每个硬件分区的硬件资源都满足资源需求,此时可以建立目标处理器核心和参考处理器核心的都可以访问第二类型的硬件接口的共享关系,将第二类型的硬件接口作为目标共享资源,允许多个处理器核心分时访问。
在一个示例性实施例中,服务器可以但不限于用于:在所述目标操作***存在访问所述目标硬件接口中的目标共享接口的需求的情况下,通过所述目标操作***向所述基板管理控制器上多组处理器核心中的参考处理器核心发送第一中断请求,其中,所述目标共享接口是被设置为允许所述目标操作***所使用的目标处理器核心和所述参考处理器核心访问的硬件接口,所述第一中断请求用于请求使用所述目标共享接口;接收所述参考处理器核心上运行的参考操作***响应所述第一中断请求返回的第二中断请求,其中,所述第二中断请求用于指示已释放所述目标共享接口;响应所述第二中断请求,通过所述目标操作***访问所述目标共享接口。
可选地,在本实施例中,参考操作***可以但不限于是多个运行在基板管理控制器上的操作***中除开目标操作***之外的一个或多个操作***。
可选地,在本实施例中,参考操作***接收到请求使用目标共享接口的第一中断请求后,将响应第一中断请求得到的指示目标共享接口已被释放的第二中断请求返回给目标操作***,从而完成目标操作***对目标共享接口的访问动作。
可选的,在本实施例中,目标操作***可以但不限于通过核间通信的方式根据自身的业务需求向参考操作***发送第一中断请求访问目标共享接口,参考操作***通过核间通信的方式指示释放目标共享接口并通过第二中断请求将释放结果返回给目标操作***,实现目标操作***对目标共享接口的访问。从而使得多***均具有目标共享接口的访问能力且不会造成冲突。
可选地,在本实施例中,多个处理器核心对目标共享接口均具有访问权限,那么当多个处理器核心同时访问***中的目标共享接口时,必定导致访问冲突,进一步引发***错误。因此需要针对目标共享接口设计特定的访问机制来保证不同分区对它的正确访问。
可选的,在本实施例中,目标操作***和参考操作***之间可以但不限于采用核间通信的方式交互中断请求。核间通信的方式可以通过定义中断向量来实现。
可选的,在本实施例中,本申请使用自定义的中断向量表来实现核间通信,进而实现分区共享资源的互斥访问控制。以目标操作***和参考操作***均为Linux***,基板管理控制器搭载两个处理器核心,被划分为两个核心分区:Core0分区和Core1分区为例,Linux***中共有16个SGI中断号用于实现核间通信,其中8~15中断号可由用户定义。
在一个示例性实施例中,服务器可以但不限于用于:通过所述目标操作***确定是否已占用所述目标共享接口;在所述目标操作***未占用所述目标共享接口的情况下,通过所述目标操作***向所述参考处理器核心发送所述第一中断请求。
可选地,在本实施例中,可以通过判断目标操作***当前硬件资源的使用情况来判断目标操作***是否已占用目标共享接口,以PCIE硬件接口为目标共享接口为例,若目标操作***当前正在使用PCIE硬件资源,则可以判断目标操作***已经占用目标共享接口,此时无需通过目标操作***向参考处理器核心发送第一中断请求;若目标操作***当前没有使用PCIE硬件资源,则可以判断目标操作***没有占用目标共享接口,此时需通过目标操作***向参考处理器核心发送第一中断请求。
可选地,在本实施例中,在目标操作***没有占用目标共享接口的情况下,可以但不限于根据目标操作***的核心在本申请实施例中的核间中断向量配置方案中查找到请求占用目标共享接口的中断号来向参考处理器核心发送第一中断请求,从而实现以核间通信的方式交互中断请求。
在一个示例性实施例中,服务器可以但不限于用于:在所述通过所述目标操作***访问所述目标共享接口之后,通过所述目标操作***接收所述参考操作***发送的第三中断请求,其中,所述第三中断请求用于请求使用所述目标共享接口;在所述通过所述目标操作***访问所述目标共享接口之后,通过所述目标操作***确定所述目标共享接口是否正在被使用;在所述通过所述目标操作***访问所述目标共享接口之后,在所述目标共享接口正在被使用的情况下,等待所述目标共享接口使用结束;在所述通过所述目标操作***访问所述目标共享接口之后,在所述目标共享接口未被使用,或者,所述目标共享接口使用结束的情况下,释放所述目标共享接口;在所述通过所述目标操作***访问所述目标共享接口之后,通过所述目标操作***向所述参考操作***发送第四中断请求,其中,所述第四中断请求用于指示已释放所述目标共享接口。
可选地,在本实施例中,在目标操作***接收到参考***发送的请求使用目标共享接口的第三中断请求后,可以通过判断目标操作***当前硬件资源的使用情况来判断目标操作***是否已占用目标共享接口,以PCIE硬件接口为目标共享接口为例,若目标操作***当前正在使用PCIE硬件资源,则可以判断目标操作***已经占用目标共享接口,此时需等待PCIE硬件接口使用完毕,使用结束后,目标操作***释放PCIE硬件接口;若目标操作***当前没有使用PCIE硬件资源,则可以判断目标操作***没有占用目标共享接口,目标操作***释放PCIE硬件接口。
可选地,在本实施例中,在目标操作***没有占用目标共享接口或目标***占用了目标共享接口但已使用完毕的情况下,可以但不限于根据目标操作***的核心在本申请实施例中的核间中断向量配置方案中查找到指示已释放目标共享接口的中断号来向参考处理器核心发送第四中断请求,从而通知需要使用目标共享接口的参考操作***处理核心目标共享接口当前可被使用,实现以核间通信的方式交互中断请求。
在本实施例中,各个中断请求可以但不限于通过软件协议的方式在***间进行传输,或者也可以通过硬件模块进行传递。
在一个示例性实施例中,服务器可以但不限于用于:在所述基板管理控制器上执行二级程序加载器加载通用引导加载器;通过所述通用引导加载器在每组处理器核心上启动对应的所述目标操作***的内核。
可选地,在本实施例中,二级程序加载器可以但不限于是编译了SPL(secondaryprogram loader)代码的程序加载器,主要负责初始化外部RAM和环境,并加载Uboot镜像到外部RAM中来执行。
可选地,在本实施例中,通用引导加载器可以但不限于是可以启动操作***内核且能部署加载整个计算机***的一种引导加载程序,比如:Uboot loader(universal bootloader,遵循GPL条款的开放源码项目,作用是***引导)。
在一个示例性实施例中,服务器可以但不限于用于:所述基板管理控制器上电并唤醒一个处理器核心;在所述一个处理器核心上引导引导存储中的引导程序执行;通过所述引导程序对所述二级程序加载器进行安全启动校验;在所述二级程序加载器通过所述安全启动校验的情况下,执行所述二级程序加载器引导所述通用引导加载器执行代码。
可选地,在本实施例中,目标操作***的引导程序可以但不限于存储于基板管理控制器上的特定存储空间中专门用于启动目标操作***。目标操作***的一个处理器核心可以但不限于用于执行目标操作***的引导程序,可以但不限于通过执行目标操作***的引导程序启动目标操作***。
可选地,在本实施例中,引导程序对二级程序加载器的代码进行安全启动校验的过程可以但不限于为:引导程序读取二级程序加载器的代码以及验证码,通过约定的运算方式(比如哈希运算)对二级程序加载器的代码进行运算,得到运算值,再将该运算值与读取的验证码进行比对,二者一致则检查结果为正常,二者不一致则检查结果为异常。
可选地,在本实施例中,二级程序加载器也可以对通用引导加载器的代码进行安全启动校验,二级程序加载器读取通用引导加载器的代码以及验证码,通过约定的运算方式(比如哈希运算,与上述引导存储器检查二级程序加载器的运算方式可以相同也可以不同)对通用引导加载器的代码进行运算,得到运算值,再将该运算值与读取的验证码进行比对,二者一致则检查结果为正常,二者不一致则检查结果为异常。检查结果为正常的情况下,再通过通用引导加载器加载目标操作***。
可选地,在本实施例中,引导存储可以但不限于是Boot ROM,是嵌入处理器芯片内的一小块掩模ROM或写保护闪存,它包含处理器在上电或复位时执行的第一段代码。
可选地,在本实施例中,本申请所提的服务器管理单元硬件资源分区***的体系结构根据管理***与Host主机***的互连拓扑,对BMC处理器的所有硬件资源按处理器的不同核心统筹分区,不同BMC处理核心独立管理不同的硬件资源,实现了同一BMC处理器并行运行多种管理***的效果。
在本实施例中还提供了一种基板管理控制器的***运行装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图7是根据本申请实施例的一种基板管理控制器的***运行装置的结构框图,如图7所示,该装置包括:
启动模块702,用于在所述基板管理控制器上启动目标操作***,其中,所述目标操作***用于管理服务器主机***上划分的多个硬件分区中的目标硬件分区;
加载模块704,用于为所述目标操作***加载目标硬件接口,其中,所述目标硬件接口是所述目标硬件接口用于建立所述目标操作***与所述目标硬件分区之间的连接;
运行模块706,用于在所述基板管理控制器上运行所述目标操作***,其中,所述目标操作***用于通过所述目标硬件接口管理所述目标硬件分区。
通过上述装置,在基板管理控制器上设置多个硬件接口,每个硬件接口用于连接硬件分区和与硬件分区对应的操作***,当目标操作***在基板管理控制器上运行时,便可以通过与目标操作***对应的目标硬件接口管理服务器主机***上划分的多个硬件分区中的目标硬件分区,即通过给每个操作***分配对应的硬件接口,允许不同的操作***管理服务器主机***上划分的与该操作***对应的硬件分区,而不用根据不同的服务器主机***硬件分区的架构来改造基板管理控制器的***架构,从而提高了服务器主机***的硬件分区的适应性以及通用性,因此,可以解决服务器主机***的硬件分区的适用性较低的技术问题,达到提高了服务器主机***的硬件分区的适用性的技术效果。
在一个示例性实施例中,所述启动模块,包括:第一加载单元,用于在所述基板管理控制器上执行二级程序加载器加载通用引导加载器;启动单元,用于通过所述通用引导加载器在每组处理器核心上启动对应的所述目标操作***的内核。
在一个示例性实施例中,所述第一加载单元,用于:所述基板管理控制器上电并唤醒一个处理器核心;在所述一个处理器核心上引导引导存储中的引导程序执行;通过所述引导程序对所述二级程序加载器进行安全启动校验;在所述二级程序加载器通过所述安全启动校验的情况下,执行所述二级程序加载器引导所述通用引导加载器执行代码。
在一个示例性实施例中,所述加载模块,包括:查找单元,用于从具有对应关系的处理器核心和硬件接口中查找所述目标操作***所使用的目标处理器核心对应的所述目标硬件接口,其中,所述基板管理控制器上的硬件接口按照每组处理器核心所对应的硬件分区的硬件架构被分配至每组处理器核心得到具有对应关系的处理器核心和硬件接口;第二加载单元,用于在所述目标处理器核心上为所述目标操作***加载所述目标硬件接口。
在一个示例性实施例中,所述第二加载单元,用于:解析所述目标处理器核心的目标设备树得到所述目标硬件接口,其中,所述基板管理控制器上的硬件接口通过设备树被分配至每组处理器核心得到具有对应关系的处理器核心和硬件接口,所述基板管理控制器上的硬件接口的物理地址采用统一编址方式;在所述目标处理器核心上加载所述目标硬件接口的驱动;在所述目标处理器核心上引导所述目标操作***的文件***,以完成所述目标操作***的启动引导。
在一个示例性实施例中,基板管理控制器的***运行装置还包括:获取模块,用于在所述为所述目标操作***加载目标硬件接口之前,获取所述主机***的所述多个硬件分区;分配模块,用于在所述为所述目标操作***加载目标硬件接口之前,为所述多个硬件分区中每个所述目标硬件分区分配所述基板管理控制器上的处理器核心得到所述目标处理器核心,并为所述目标硬件分区分配所述基板管理控制器上的硬件接口得到所述目标硬件接口,其中,所述目标处理器核心至少满足所述目标硬件分区的管理运行需求,所述目标硬件接口至少满足所述目标硬件分区的硬件连接需求;建立模块,用于在所述为所述目标操作***加载目标硬件接口之前,建立所述目标处理器核心与所述目标硬件接口之间的对应关系,得到具有对应关系的处理器核心和硬件接口。
在一个示例性实施例中,所述分配模块,包括以下之一:第一分配单元,用于将所述基板管理控制器上的处理器核心平均分配给每个所述目标硬件分区;第二分配单元,用于按照所述多个硬件分区中每个目标硬件分区的运行架构为所述目标硬件分区分配所述基板管理控制器上的一个或者多个处理器核心得到所述目标处理器核心。
在一个示例性实施例中,所述分配模块,还包括以下之一:第三分配单元,用于在所述基板管理控制器上存在资源拥有数量大于或者等于所述多个硬件分区中资源需求数量的第一类型的硬件接口的情况下,将所述第一类型的硬件接口按照每个目标硬件分区的硬件架构分配至所述目标硬件分区作为所述目标硬件接口中的目标独占接口,其中,所述目标独占接口是被设置为仅允许所述目标处理器核心访问的硬件接口;建立单元,用于在所述基板管理控制器上存在资源拥有数量小于所述多个硬件分区中资源需求数量的第二类型的硬件接口的情况下,建立所述目标处理器核心与所述基板管理控制器上多组处理器核心中参考处理器核心之间对所述第二类型的硬件接口的共享关系作为所述目标硬件接口中的目标共享接口,其中,所述目标共享接口是被设置为允许所述目标处理器核心和所述多组处理器核心中的所述参考处理器核心访问的硬件接口。
在一个示例性实施例中,所述运行模块,包括:第一发送单元,用于在所述目标操作***存在访问所述目标硬件接口中的目标共享接口的需求的情况下,通过所述目标操作***向所述基板管理控制器上多组处理器核心中的参考处理器核心发送第一中断请求,其中,所述目标共享接口是被设置为允许所述目标操作***所使用的目标处理器核心和所述参考处理器核心访问的硬件接口,所述第一中断请求用于请求使用所述目标共享接口;第一接收单元,用于接收所述参考处理器核心上运行的参考操作***响应所述第一中断请求返回的第二中断请求,其中,所述第二中断请求用于指示已释放所述目标共享接口;访问单元,用于响应所述第二中断请求,通过所述目标操作***访问所述目标共享接口。
在一个示例性实施例中,所述第一发送单元,用于:通过所述目标操作***确定是否已占用所述目标共享接口;在所述目标操作***未占用所述目标共享接口的情况下,通过所述目标操作***向所述参考处理器核心发送所述第一中断请求。
在一个示例性实施例中,所述运行模块,还包括:第二接收单元,用于通过所述目标操作***接收所述参考操作***发送的第三中断请求,其中,所述第三中断请求用于请求使用所述目标共享接口;确定单元,用于通过所述目标操作***确定所述目标共享接口是否正在被使用;等待单元,用于在所述目标共享接口正在被使用的情况下,等待所述目标共享接口使用结束;释放单元,用于在所述目标共享接口未被使用,或者,所述目标共享接口使用结束的情况下,释放所述目标共享接口;第二发送单元,用于通过所述目标操作***向所述参考操作***发送第四中断请求,其中,所述第四中断请求用于指示已释放所述目标共享接口。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
上述服务器的通信总线可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(Extended Industry Standard Architecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。通信接口用于上述服务器与其他设备之间的通信。
存储器可以包括RAM(RandomAccessMemory,随机存取存储器),也可以包括NVM(Non-VolatileMemory,非易失性存储器),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。上述的处理器可以是通用处理器,包括CPU(CentralProcessingUnit,中央处理器)、NP(NetworkProcessor,网络处理器)等;还可以是DSP(DigitalSignalProcessing,数字信号处理器)、ASIC(ApplicationSpecificIntegratedCircuit,专用集成电路)、FPGA(Field-ProgrammableGateArray,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
针对服务器而言,服务器至少具有可扩展性高和稳定性高的特性,其中,由于企业网络是不可能长久不变的,在网络信息化的今天,如果服务器没有一定的可扩展性,则是会导致影响到企业之后的发展,影响到企业的使用,因此可拓展性是成为最为基本的特性,只有在拥有较高的可扩展性才能保证后期更好的利用,可扩展性除了硬件上的可扩展性上之外,还包含软件上的可扩展性,由于服务器的功能与计算机相比较而言还是十分复杂,因此不仅仅是在硬件配置方面,还有就是软件配置也是很重要的,想要实现更多的功能,没有全面软件支持也是没有办法想象的。
此外,由于服务器需要处理大量的数据用以支撑业务的持续性运行,因此服务器还有一个很重要的特征,即为稳定性高,如果服务器的数据传输不能稳定运行,则无疑会对业务开展造成极大的影响。
本申请的方案服务器无论是对软件资源进行扩展还是对硬件资源进行扩展都能够实现操作***对硬件控制器全面灵活的访问,提高了服务器的可扩展性。另外,通过上述操作***对硬件控制器的访问机制,能够使得硬件控制器能够更加稳定的运行,提高了服务器的稳定性。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本申请的实施例还提供了一种电子设备的示例,其中,图8是根据本申请实施例的一种电子设备的示意图,如图8所示,电子设备包括一个或多个处理器;存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现用于运行程序,其中,程序被设置为运行时执行上述的基板管理控制器的***运行方法。
在一个示例性实施例中,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (21)
1.一种基板管理控制器的***运行方法,其特征在于,包括:
在所述基板管理控制器上启动目标操作***,其中,所述目标操作***用于管理服务器主机***上划分的多个硬件分区中的目标硬件分区;
为所述目标操作***加载目标硬件接口,其中,所述目标硬件接口用于建立所述目标操作***与所述目标硬件分区之间的连接;
在所述基板管理控制器上运行所述目标操作***,其中,所述目标操作***用于通过所述目标硬件接口管理所述目标硬件分区;
其中,所述为所述目标操作***加载目标硬件接口,包括:从具有对应关系的处理器核心和硬件接口中查找所述目标操作***所使用的目标处理器核心对应的所述目标硬件接口,其中,所述基板管理控制器上的硬件接口按照每组处理器核心所对应的硬件分区的硬件架构被分配至每组处理器核心得到具有对应关系的处理器核心和硬件接口;在所述目标处理器核心上为所述目标操作***加载所述目标硬件接口。
2.根据权利要求1所述的方法,其特征在于,所述在所述目标处理器核心上为所述目标操作***加载所述目标硬件接口,包括:
解析所述目标处理器核心的目标设备树得到所述目标硬件接口,其中,所述基板管理控制器上的硬件接口通过设备树被分配至每组处理器核心得到具有对应关系的处理器核心和硬件接口,所述基板管理控制器上的硬件接口的物理地址采用统一编址方式;
在所述目标处理器核心上加载所述目标硬件接口的驱动;
在所述目标处理器核心上引导所述目标操作***的文件***,以完成所述目标操作***的启动引导。
3.根据权利要求1所述的方法,其特征在于,在所述为所述目标操作***加载目标硬件接口之前,所述方法还包括:
获取所述主机***的所述多个硬件分区;
为所述多个硬件分区中每个所述目标硬件分区分配所述基板管理控制器上的处理器核心得到所述目标处理器核心,并为所述目标硬件分区分配所述基板管理控制器上的硬件接口得到所述目标硬件接口,其中,所述目标处理器核心至少满足所述目标硬件分区的管理运行需求,所述目标硬件接口至少满足所述目标硬件分区的硬件连接需求;
建立所述目标处理器核心与所述目标硬件接口之间的对应关系,得到具有对应关系的处理器核心和硬件接口。
4.根据权利要求3所述的方法,其特征在于,所述为所述多个硬件分区中每个所述目标硬件分区分配所述基板管理控制器上的处理器核心得到所述目标处理器核心,包括以下之一:
将所述基板管理控制器上的处理器核心平均分配给每个所述目标硬件分区;
按照所述多个硬件分区中每个目标硬件分区的运行架构为所述目标硬件分区分配所述基板管理控制器上的一个或者多个处理器核心得到所述目标处理器核心。
5.根据权利要求3所述的方法,其特征在于,所述为所述目标硬件分区分配所述基板管理控制器上的硬件接口得到所述目标硬件接口,包括至少以下之一:
在所述基板管理控制器上存在资源拥有数量大于或者等于所述多个硬件分区中资源需求数量的第一类型的硬件接口的情况下,将所述第一类型的硬件接口按照每个目标硬件分区的硬件架构分配至所述目标硬件分区作为所述目标硬件接口中的目标独占接口,其中,所述目标独占接口是被设置为仅允许所述目标处理器核心访问的硬件接口;
在所述基板管理控制器上存在资源拥有数量小于所述多个硬件分区中资源需求数量的第二类型的硬件接口的情况下,建立所述目标处理器核心与所述基板管理控制器上多组处理器核心中参考处理器核心之间对所述第二类型的硬件接口的共享关系作为所述目标硬件接口中的目标共享接口,其中,所述目标共享接口是被设置为允许所述目标处理器核心和所述多组处理器核心中的所述参考处理器核心访问的硬件接口。
6.根据权利要求1所述的方法,其特征在于,所述在所述基板管理控制器上运行所述目标操作***,包括:
在所述目标操作***存在访问所述目标硬件接口中的目标共享接口的需求的情况下,通过所述目标操作***向所述基板管理控制器上多组处理器核心中的参考处理器核心发送第一中断请求,其中,所述目标共享接口是被设置为允许所述目标操作***所使用的目标处理器核心和所述参考处理器核心访问的硬件接口,所述第一中断请求用于请求使用所述目标共享接口;
接收所述参考处理器核心上运行的参考操作***响应所述第一中断请求返回的第二中断请求,其中,所述第二中断请求用于指示已释放所述目标共享接口;
响应所述第二中断请求,通过所述目标操作***访问所述目标共享接口。
7.根据权利要求6所述的方法,其特征在于,所述通过所述目标操作***向所述基板管理控制器上多组处理器核心中的参考处理器核心发送第一中断请求,包括:
通过所述目标操作***确定是否已占用所述目标共享接口;
在所述目标操作***未占用所述目标共享接口的情况下,通过所述目标操作***向所述参考处理器核心发送所述第一中断请求。
8.根据权利要求6所述的方法,其特征在于,在所述通过所述目标操作***访问所述目标共享接口之后,所述方法还包括:
通过所述目标操作***接收所述参考操作***发送的第三中断请求,其中,所述第三中断请求用于请求使用所述目标共享接口;
通过所述目标操作***确定所述目标共享接口是否正在被使用;
在所述目标共享接口正在被使用的情况下,等待所述目标共享接口使用结束;
在所述目标共享接口未被使用,或者,所述目标共享接口使用结束的情况下,释放所述目标共享接口;
通过所述目标操作***向所述参考操作***发送第四中断请求,其中,所述第四中断请求用于指示已释放所述目标共享接口。
9.根据权利要求1所述的方法,其特征在于,所述在所述基板管理控制器上启动目标操作***,包括:
在所述基板管理控制器上执行二级程序加载器加载通用引导加载器;
通过所述通用引导加载器在每组处理器核心上启动对应的所述目标操作***的内核。
10.根据权利要求9所述的方法,其特征在于,所述在所述基板管理控制器上执行二级程序加载器加载通用引导加载器,包括:
所述基板管理控制器上电并唤醒一个处理器核心;
在所述一个处理器核心上引导引导存储中的引导程序执行;
通过所述引导程序对所述二级程序加载器进行安全启动校验;
在所述二级程序加载器通过所述安全启动校验的情况下,执行所述二级程序加载器引导所述通用引导加载器执行代码。
11.一种基板管理控制器,其特征在于,包括:目标操作***和目标硬件接口,其中,
所述目标硬件接口,用于连接所述目标操作***与服务器主机***上划分的多个硬件分区中的目标硬件分区;
所述目标操作***,用于通过所述目标硬件接口管理所述目标硬件分区;
其中,所述基板管理控制器,用于:从具有对应关系的处理器核心和硬件接口中查找所述目标操作***所使用的目标处理器核心对应的所述目标硬件接口,其中,所述基板管理控制器上的硬件接口按照每组处理器核心所对应的硬件分区的硬件架构被分配至每组处理器核心得到具有对应关系的处理器核心和硬件接口;在所述目标处理器核心上为所述目标操作***加载所述目标硬件接口。
12.根据权利要求11所述的基板管理控制器,其特征在于,所述目标硬件接口包括:目标独占接口和/或目标共享接口,其中,
所述目标独占接口是被设置为仅允许所述目标操作***所在的目标处理器核心访问的硬件接口;
所述目标共享接口是被设置为允许所述目标处理器核心和所述基板管理控制器上多组处理器核心中的参考处理器核心访问的硬件接口。
13.根据权利要求11所述的基板管理控制器,其特征在于,所述目标操作***中部署了目标设备树,所述目标设备树用于加载所述目标硬件接口的驱动,所述基板管理控制器上的硬件接口的物理地址采用统一编址方式。
14.根据权利要求13所述的基板管理控制器,其特征在于,所述基板管理控制器,还包括:通用引导加载器,其中,
所述通用引导加载器,用于在所述基板管理控制器上的每组处理器核心上启动对应的所述目标操作***的内核;
所述目标操作***的内核,用于解析所述目标设备树加载所述目标硬件接口的驱动。
15.根据权利要求14所述的基板管理控制器,其特征在于,所述基板管理控制器,还包括:二级程序加载器,其中,
所述二级程序加载器,用于引导所述通用引导加载器执行代码。
16.根据权利要求15所述的基板管理控制器,其特征在于,所述基板管理控制器,还包括:引导存储,其中,
所述引导存储,用于对所述二级程序加载器进行安全启动校验。
17.一种服务器,其特征在于,包括:基板管理控制器和服务器主机***,其中,
所述基板管理控制器包括目标操作***和目标硬件接口,所述服务器主机***包括多个硬件分区,所述目标硬件接口建立了所述目标操作***与所述多个硬件分区中的目标硬件分区之间的连接;
所述基板管理控制器,用于通过所述目标操作***管理所述目标硬件分区;
其中,所述服务器,用于:从具有对应关系的处理器核心和硬件接口中查找所述目标操作***所使用的目标处理器核心对应的所述目标硬件接口,其中,所述基板管理控制器上的硬件接口按照每组处理器核心所对应的硬件分区的硬件架构被分配至每组处理器核心得到具有对应关系的处理器核心和硬件接口;在所述目标处理器核心上为所述目标操作***加载所述目标硬件接口。
18.根据权利要求17所述的服务器,其特征在于,所述目标硬件接口包括:目标独占接口和/或目标共享接口,其中,
所述目标独占接口是被设置为仅允许所述目标操作***所在的目标处理器核心访问的硬件接口,所述目标共享接口是被设置为允许所述目标处理器核心和所述基板管理控制器上多组处理器核心中的参考处理器核心访问的硬件接口;
所述目标独占接口与所述目标硬件分区直接连接;
所述目标共享接口与分区开关器件连接,所述分区开关器件分别与所述目标硬件分区和所述参考处理器核心对应的参考硬件分区连接。
19.一种基板管理控制器的***运行装置,其特征在于,包括:
启动模块,用于在所述基板管理控制器上启动目标操作***,其中,所述目标操作***用于管理服务器主机***上划分的多个硬件分区中的目标硬件分区;
加载模块,用于为所述目标操作***加载目标硬件接口,其中,所述目标硬件接口是所述目标硬件接口用于建立所述目标操作***与所述目标硬件分区之间的连接;
运行模块,用于在所述基板管理控制器上运行所述目标操作***,其中,所述目标操作***用于通过所述目标硬件接口管理所述目标硬件分区;
其中,所述加载模块,包括:查找单元,用于从具有对应关系的处理器核心和硬件接口中查找所述目标操作***所使用的目标处理器核心对应的所述目标硬件接口,其中,所述基板管理控制器上的硬件接口按照每组处理器核心所对应的硬件分区的硬件架构被分配至每组处理器核心得到具有对应关系的处理器核心和硬件接口;第二加载单元,用于在所述目标处理器核心上为所述目标操作***加载所述目标硬件接口。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现权利要求1至10任一项中所述的方法的步骤。
21.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至10任一项中所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310923501.6A CN116627520B (zh) | 2023-07-26 | 2023-07-26 | 基板管理控制器的***运行方法以及基板管理控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310923501.6A CN116627520B (zh) | 2023-07-26 | 2023-07-26 | 基板管理控制器的***运行方法以及基板管理控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116627520A CN116627520A (zh) | 2023-08-22 |
CN116627520B true CN116627520B (zh) | 2023-09-29 |
Family
ID=87597759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310923501.6A Active CN116627520B (zh) | 2023-07-26 | 2023-07-26 | 基板管理控制器的***运行方法以及基板管理控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116627520B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116795752B (zh) * | 2023-08-28 | 2024-01-19 | 苏州浪潮智能科技有限公司 | 接口通信方法、装置以及服务器 |
CN117032812B (zh) * | 2023-10-09 | 2024-02-02 | 苏州元脑智能科技有限公司 | 服务器的管理方法、设备、装置、存储介质和电子设备 |
CN117056275B (zh) * | 2023-10-10 | 2024-02-09 | 苏州元脑智能科技有限公司 | 基于硬件分区***的通信控制方法、装置及服务器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103207782A (zh) * | 2013-03-27 | 2013-07-17 | 北京航空航天大学 | 基于multi-kernel MOS 的分区***构建方法 |
CN104731727A (zh) * | 2015-03-25 | 2015-06-24 | 浪潮集团有限公司 | 一种双控存储***监控管理***及方法 |
CN113934471A (zh) * | 2021-10-26 | 2022-01-14 | 讯牧信息科技(上海)有限公司 | 计算机***的基板管理控制器和启动方法 |
CN114721992A (zh) * | 2022-04-29 | 2022-07-08 | 苏州浪潮智能科技有限公司 | 一种服务器及其服务器管理*** |
-
2023
- 2023-07-26 CN CN202310923501.6A patent/CN116627520B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103207782A (zh) * | 2013-03-27 | 2013-07-17 | 北京航空航天大学 | 基于multi-kernel MOS 的分区***构建方法 |
CN104731727A (zh) * | 2015-03-25 | 2015-06-24 | 浪潮集团有限公司 | 一种双控存储***监控管理***及方法 |
CN113934471A (zh) * | 2021-10-26 | 2022-01-14 | 讯牧信息科技(上海)有限公司 | 计算机***的基板管理控制器和启动方法 |
CN114721992A (zh) * | 2022-04-29 | 2022-07-08 | 苏州浪潮智能科技有限公司 | 一种服务器及其服务器管理*** |
Also Published As
Publication number | Publication date |
---|---|
CN116627520A (zh) | 2023-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116627520B (zh) | 基板管理控制器的***运行方法以及基板管理控制器 | |
US11354053B2 (en) | Technologies for lifecycle management with remote firmware | |
RU2639693C1 (ru) | Способ обработки ресурса, операционная система и устройство | |
US20180217859A1 (en) | Technologies for duplicating virtual machine states | |
CN116244229B (zh) | 硬件控制器的访问方法、装置、存储介质和电子设备 | |
CN116257364B (zh) | ***间的资源占用方法、装置、存储介质及电子装置 | |
CN116243995B (zh) | 通信方法、装置、计算机可读存储介质以及电子设备 | |
CN116521209B (zh) | 操作***的升级方法及装置、存储介质及电子设备 | |
US11055104B2 (en) | Network-adapter configuration using option-ROM in multi-CPU devices | |
CN116243996B (zh) | 业务的运行切换方法、装置、存储介质及电子装置 | |
CN116302141B (zh) | 串口切换方法、芯片及串口切换*** | |
US9280493B2 (en) | Method and device for enumerating input/output devices | |
CN116868167A (zh) | 操作***的运行控制方法和装置,以及嵌入式***和芯片 | |
CN116830082A (zh) | 嵌入式***的启动控制方法和装置、存储介质和电子设备 | |
US8463972B2 (en) | System and method for dynamic, local retriggered interrupt routing discovery | |
EP3633507A1 (en) | Technologies for secure and efficient native code invocation for firmware services | |
US10996942B1 (en) | System and method for graphics processing unit firmware updates | |
CN116868170A (zh) | 嵌入式***的运行方法和装置、嵌入式***及芯片 | |
CN116848519A (zh) | 硬件接口信号的生成方法、装置及电子设备 | |
US10439934B2 (en) | Systems and methods for addressing multiple physical and virtual functions in network controller-sideband interface | |
US20180341614A1 (en) | System and Method for I/O Aware Processor Configuration | |
US11593121B1 (en) | Remotely disabling execution of firmware components | |
US10860383B2 (en) | Multiple console environment | |
US10402454B1 (en) | Obtaining platform-specific information in a firmware execution environment | |
US11861010B2 (en) | Extensible device hosted root of trust architecture for integrated circuits |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |