适用于电力系统多核板卡的通用软件平台研究

2020-12-07 06:14习伟弓羽箭韩辉闫佳伟
现代电子技术 2020年22期
关键词:资源配置电力系统

习伟 弓羽箭 韩辉 闫佳伟

摘  要: 目前基于双核CPU的AMP的混合多系统存在较大的缺陷和不足,首先会导致消耗不必要的资源与时间;其次,绑定硬件大多只局限于ARM;并且复杂度高、维护困难,对电力系统中其他运行应用程序的影响极大,会造成实时性任务抖动。该文提出一种适用于多核板卡的通用软件平台,其通过自动化配置工具对硬件资源进行配置,将混合多系统平台抽象出ARCH与BSP层,通过心跳包监测其他CPU是否正常运行,通过cache划分通用寄存器,设置消除核间广播,可实现配置智能化和硬件平台的多样化,增加系统稳定性。

关键词: 电力系统; 多核板卡; 软件平台; 混合多系统; 资源配置; 试验验证

中图分类号: TN911?34                              文献标识码: A                     文章编号: 1004?373X(2020)22?0006?04

Abstract: There are major defects and disadvantages in AMP hybrid multi?systems based on dual?core CPU, which will lead to unnecessary consumption of resources and time. Most of the binding hardware is limited to ARM, and it has high complexity and difficult maintenance, which has a great impact on other running applications in the power system, and can cause real?time task jitter. A general software platform suitable for multi?core board is proposed, which configures hardware resources by means of the automated configuration tools, abstracts the ARCH and BSP layers out of the hybrid multi?system platform, and monitors whether other CPUs are running normally through heartbeat packets. The inter core broadcast is eliminated by setting the general register by cache partition, which can realize intelligent configuration and diversify hardware platforms, and increase system stability.

Keywords: power system; multi?core board; software platform; hybrid multi system; resource allocation; experimental verification

0  引  言

隨着嵌入式产品的更新升级,越来越多的功能被集中在同一块硬件上,往往各个功能之间互相联系,互相影响[1]。为了更好地处理实时性任务与非实时任务,混合多系统可以使任务分工更精细,灵活地适应不同情景[2]。目前基于双核CPU的AMP的混合多系统存在较大的缺陷和不足[3?4],首先会导致消耗不必要的资源与时间;其次,绑定硬件大多只局限于ARM;并且复杂度高、维护困难,对电力系统中其他运行应用程序的影响极大,会造成实时性任务抖动。基于此,本文提出一种适用于多核板卡的通用软件平台,其通过自动化配置工具对硬件资源进行配置,将混合多系统平台抽象出ARCH与BSP层,通过心跳包监测其他CPU是否正常运行,通过cache划分通用寄存器,设置消除核间广播,可实现配置智能化和硬件平台的多样化,增加系统稳定性。

1  混合多系统的现状以及缺陷分析

1.1  混合多系统核间通信技术的现状[3]

目前,一般的混合多系统为基于双核CPU的移动页面加速(Accelerated Mobile Pages,AMP)技术,大多使用Linux与实时多任务操作系统(Micro?Controller Operating System,[μCOS])搭配实现,即CPU0运行Linux,CPU1运行[μCOS]。

1.2  存在的不足之处

这种方法有较大的缺陷和不足,首先是会消耗不必要的资源与时间,其需要提前在代码阶段划分好内存资源,规定所运行的CPU,重新编译后再进行加载工作。这些代码往往分布在不同内核组件中,修改时费事费力。第二,需要绑定硬件,大多只局限于ARM,现有方法仅适用于ARM体系架构的双核处理器,并且随着功能复杂度的增加,硬件处理器的性能提升令硬件无法适用,例如X86架构的intel处理器,四核ARM Cortex A53的MPSOC处理器都无法适用。第三,在运行过程中无法判断其他CPU核是否正常运行,容易造成对应用提供数据、功能错误,复杂度高,维护困难;另外,该混合系统对系统中其他运行应用程序影响极大,造成实时性任务抖动。

也就是说,如果其中一个CPU上的任务出现bug导致重启运行,那么另一个CPU将也被重启运行,这样会导致正常运行的CPU被重启;如果其中一个CPU上的任务进行大量的系统调用等进入内核特权态的操作,会对另一个CPU上任务的运行造成很大的抖动。

2  平台架构原理

本文提出一种适用于所有多核板卡的通用软件平台。该平台不仅减少核间相互干扰,而且提供了很多直接可用的功能组件,方便程序员使用。图1为本文所提出的适用于所有多核板卡的通用软件平台的架构图。

该架构适用于所有多核板卡的通用软件平台,包括ARCH层与板级支持包BSP(Board Support Package)层,自动化配置工具对平台资源进行修改。

3  通用软件平台的实现

3.1  总体框架

如图1和图2所示的适用于所有多核板卡的通用软件平台中主核和从核可以是任意操作系统。图2中的主核和从核均为SylixOS,主核和从核均包括通用异步收发传输器URAR1、媒体访问控制MAC、嵌入式多媒体卡eMMC和寄存器CACHE;硬件公有部分包括中断控制器GIC和片上存储器OCM。

以下以主核运行Linux,其他核CPU运行SylixOS为例,其中SylixOS为国产大型嵌入式实时操作系统。

主核CPU0运行Linux,其他核CPU运行SylixOS,将SylixOS的编译链部署在Linux上,ARCH层与BSP层提供不同的镜像库。

自动化配置工具对脚本进行修改,自动定位到配置代码处,对内存资源、CPU资源、中断资源、硬件架构选择修改,编译后自动运行。

抽象出ARCH层与BSP层,其中ARCH层与BSP层是操作系统为上层应用所提供通用接口设计的,在应用编写过程中,直接调用应用程序编程接口。当没有ARCH层与BSP层时,应用程序调用的仅为空函数接口,当操作系统将ARCH層与BSP层的具体应用链接到编程接口时,应用程序即可完成调用。

3.2  用户操作方法以及平台运行方法

适用于所有多核板卡的通用软件平台的用户操作方法中的用户操作方法包括:用户启动程序、打开配置工具、选择架构与BSP、对硬件资源进行配置、自动编译所有CPU上的操作系统OS,从而启动通用软件平台。

通用软件平台运行方法包括:通用软件平台启动程序、打开配置工具、 自动导入源码工程、自动寻找目录修改相关系统文件、自动编译所有CPU上的操作系统OS,从而启动平台,如图3所示。

3.3  多核间重启

当其中一个CPU上的任务出现bug导致重启运行时,由于提前通过配置文件进行了中断的绑定,即私有中断,需要启动从核时进行判断是否为异常重启,即非掉电重启;如果不是异常重启,则初始化所有硬件资源;如果是异常重启,则判断是否为CPU所用的资源。如果是CPU所用的资源,则初始化硬件资源;如果不是CPU所用的资源,则不做初始化操作,即不再重新初始化其他CPU上的操作系统资源,从而实现多核之间的独立重启,不影响其他CPU上任务的正常运行。图4为适用于所有多核板卡的通用软件平台实现多核之间的独立重启方法。

3.4  心跳检测

平台内部需提供心跳检测功能,用于判断其他CPU是否正常运行。具体在于,所有CPU在正常运行的状态下,向其他CPU发送心跳包,其他CPU在收到心跳包后查询心跳数据,如果确认CPU核正常运行,则继续进行心跳检测功能。适用于所有多核板卡的通用软件平台内部心跳检测的方法如图5所示。

3.5  试验验证

提前对last level cache进行划分处理,锁定于各个CPU之上,同时对硬件辅助寄存器进行操作,屏蔽由于转换检测缓冲区TLB(Translation Lookaside Buffer)一致性而产生的广播操作。如果其中一个CPU上的任务在进行大量的系统调用等进入内核特权态的操作时,其他CPU不会因此被影响,真正做到任务更加独立。

在处理器设计中,一般last level cache被所有CPU核所共享使用,在ARMv7架构中会提供相应寄存器,可以设置使用cache保证不被其他核清除,具体代码如下所示:

3.6  试验结果

本文所提的适用于所有多核板卡的通用软件平台使用方便,节约时间,通过智能配置工具,轻松实现对硬件和资源的配额修改,还可实现配置智能化与硬件处理器多样化,满足足够多用户的使用场景。通过对软件平台的ARCH层与BSP层抽象,可以实现硬件平台的多样化,能够适配多种硬件平台,以及智能检测软件完整性,通过心跳检测功能,保证平台的健壮性以及完成度,保证上层应用正常运行。最后,平台稳定性强,通过处理多核之间的影响,如cache lock、广播屏蔽等操作保证平台稳定性。需要说明的是,本文中的计算机可读存储介质,包括处理器和存储器,存储器中存储有计算机程序指令,计算机程序指令被处理器执行时,用以实现所述方法。

4  结  论

本文从分析现有技术中的多混合系统特性出发,总结了现有技术中的多混合系统中存在的不足,提出一种简单的多混合系统,通过实验验证了通用软件平台的可行性,为后续的混合多系统研究提供了可靠的理论支撑。

本文中的技术方案的全部或部分可以以软件产品的形式体现出来。计算机软件产品存储在一个存储介质中,包括若干指令用以使得1台计算机设备(可以是个人计算机、服务器,或者网络设备等)执行本文设计的各个实例方法的全部或部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(Read?Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

参考文献

[1] 吴相楠,龚行梁,周强,等.双核处理器AMP模式在电力设备控制中的应用[J].单片机与嵌入式系统应用,2018,18(6):38?41.

[2] 张象羽,施慧莉.基于以太网和PCIe的多核DSP开发平台[J].计算机工程与科学,2019,41(10):1731?1737.

[3] 董延军,项涛.多核嵌入式操作系统及板级结构探讨[J].信息通信,2018(12):145?147.

[4] 占鹏.基于多核CPU的电力系统多速率电磁暂态仿真[D].北京:华北电力大学,2018.

[5] 王丰,印钊.基于多核CPU的运行时验证技术的研究与实现[J].电子设计工程,2018,26(11):23?27.

[6] 冯文波,廉迎战,甘玉轩,等.基于多核CPU的嵌入式数控系统研究[J].工业控制计算机,2016,29(6):8?9.

[7] 许少尉,吕浩.多核处理器系统节能调度技术研究[J].航空计算技术,2018,48(1):98?101.

[8] 喻文烨.探究软件工程技术在电力系统中的应用[J].明日风尚,2017(9):344.

[9] 顾威,张艳,古庭赟,等.一种大规模全范围电力系统实时仿真的研究和应用[J].电力大数据,2017,20(11):8?11.

[10] 吕国远,刘晨,尚博祥.基于电力大数据的信息系统体系结构研究[J].经营与管理,2017(4):112?114.

猜你喜欢
资源配置电力系统
人力资源配置与经济可持续发展的关系
我国制造业资源配置概述
把资源配置到贫困人口最需要的地方
信息时代的电力系统信息化经验谈
探讨电力系统中配网自动化技术
配网自动化技术的应用探讨
电力系统继电保护技术常见问题及对策
电力系统的继电保护与安全自动控制
刑事侦查资源配置原则及其影响因素初探
辽宁:卫生资源配置出新标准