APP下载

面向能源高效的嵌入式应用的非对称多核处理器架构设计与优化

2023-04-29张旭

信息系统工程 2023年7期
关键词:架构设计优化方法

张旭

摘要:随着嵌入式系统的普及,越来越多的应用场景需要实时和高效的数据处理。针对此类情况,多核处理器已经被广泛研究并推广到许多领域。然而,在特定的嵌入式应用场景下,如何充分利用多核处理器内部的特殊性能,以便形成较好的计算效率和能耗调整能力的平衡,仍是一个巨大的挑战。研究提出了一种新颖的非对称多核处理器架构设计和优化方法,旨在为嵌入式系统开发提供能够适应各类应用场景需求的有效处理器支持。该方法从体系结构设计、硬件实现和多核处理器优化等方面进行研究,构建了基于嵌入式系统应用场景的非对称多核处理器的设计方法。

关键词:多核处理器;架构设计;优化方法

一、前言

嵌入式系统作为一种体积小、功耗低的特殊计算机系统,广泛应用于智能家居、智能电子产品、无人驾驶汽车等领域。在实际应用中,嵌入式系统的性能和能耗要求越来越高,计算单元的速度和功耗成为系统设计过程中需要重点考虑和平衡的问题。随着多核技术的发展,非对称多核处理器逐渐成为一种重要的解决方案。该处理器可以同时满足不同任务的需求,实现更高的计算效率和更低的功耗。通过研究面向能源高效的嵌入式应用的非对称多核处理器架构设计和优化方法,可以找到在嵌入式系统中,利用多核处理器的特殊性质实现高性能与低功耗的平衡方法,为实现更高效、更低能源消耗的嵌入式计算机系统提供有益的参考和指导。

二、处理器体系结构设计原则

(一)处理器分类和性能指标

处理器体系结构设计中,处理器通常分为通用处理器、专用处理器和协处理器三类。通用处理器以其灵活的功能和广泛的适用性,成为大部分计算机系统的核心。专用处理器针对某些特定应用场景而设计,如显卡芯片在图形处理领域的应用。协处理器则是为了增强系统功能而添加在处理器外部的一种辅助处理器[1]。

在性能指标方面,主要考虑五个方面。

一是时钟频率,即处理器单位时间内执行的操作数量,常用GHz表示。

二是指令集架构(ISA),一个好的ISA设计,能提升处理器运行效率,也可以使其更加易于编程。

三是流水线深度,它表示每条指令经过多少个阶段后才能执行完毕。虽然较深的流水线可以提高吞吐量,但是也可能引入冒险等问题。

四是晶体管数量,处理器晶体管数量的多少,影响着单芯片上可集成的功能数量和处理性能。

五是缓存大小和层次结构,处理器缓存越大,层次结构更为复杂,可以有效提高CPU计算速度和响应速度。

通过综合考虑这些性能指标,在将处理器应用于不同领域时可以选择适合需求的处理器,并提高其处理效率。

(二)非对称多核处理器体系结构

非对称多核处理器包含一个或多个处理核心,并在这些核心之间分配不同的计算资源和功能。在非对称多核处理器中,每个核心都承担着特定的任务,如高显存带宽、多核心运算能力等。另外,不同的核心也可以采用不同的指令集架构和工作频率。

与对称多核处理器相比,在非对称多核处理器中,不同的核心可能有不同的电源管理策略和功耗降低技术,可根据实际需求灵活地分配资源,并提高系统性能。例如,某些核心可能设计为低功耗状态,以便节能和延长电池寿命,而其他核心可能更适合于执行复杂的计算任务。

同时,如何有效地利用非对称多核处理器也面临一定的挑战,这是因为不同的应用程序需要不同组合的计算资源和功能。如果在开发过程中没有很好地权衡这些因素,则容易导致资源闲置、性能瓶颈等问题。因此,设计高效的调度算法,支持动态配置和适配是非对称多核处理器的重要研究方向之一。

(三)嵌入式应用的处理器设计要求

嵌入式应用的处理器设计需要满足低功耗、实时性、可靠性、稳定性以及成本效益等多个方面的要求[2]。

一是低功耗,嵌入式系统通常需要长时间运行,而且电池寿命有限,因此处理器的设计需要具备低功耗特性。这可以通过采用较低工作频率、优化架构和核心电压等方式来实现。

二是实时性,许多嵌入式应用对响应时间有极高要求,需要快速响应外部事件,并以一种可预测的方式处理任何输入。因此,处理器需要支持快速的中断响应和高效的实时数据处理。

三是可靠性,嵌入式设备通常运行在恶劣的环境中,并进行长时间的不间断工作,因此处理器设计需考虑可靠性问题。例如,使用ECC存储技术,以最小化数据损坏的风险;优化温度、电压范围和性能特性,确保在各种操作条件下仍然能够正常工作。

四是稳定性,嵌入式处理器必须是稳定的,在使用过程中,不会出现无法预料的错误或意外停机的情况。在设计处理器时,需要考虑硬件和软件之间的交互,确保体系结构本身足够稳定。

五是成本效益,嵌入式处理器的成本也是非常重要的,半导体技术和硬件设计都需要用到极高的成本。因此,在设计时需要平衡性能、功耗和成本之间的关系。采用的方法通常包括集成更多功能模块、使用低成本处理器和优化研发过程等。

三、处理器总体架构设计

(一)流水线设计和优化

嵌入式应用的非对称多核处理器的流水线设计和优化涉及多个方面,在硬件和软件层面都需要考虑不同的因素[3]。硬件方面,在设计嵌入式应用的非对称多核处理器架构流水线时,需要根据具体应用需求选择适合的硬件平台,并根据工作量、并发任务数等因素进行配置。例如,在选定处理器时,可以选择支持处理多种不同工作负载的单片集成(SoC)处理器或模块化芯片组,来满足不同条件下的处理要求。设计者首先需要确定处理器类型或芯片组以及数量,考虑硬件性能和功耗需求等因素。在选择处理器时,应该考虑其性能、标称频率、缓存容量和其他特性。处理器之间的通信接口的设计取决于所采用的SoC或模块化芯片组,通常会有多种通信方式可供选择。例如,在采用ARM多核处理器的情况下,可以使用共享内存、分布式缓存协议等技术来实现处理器之间的通信。完成后将系统任务和功能划分为不同的区域,以利用每个核的计算资源来提高并发性。由于不同的应用需要不同的处理能力,可以将主要功能划分到相对强大的处理器上,将辅助处理分配给其他处理器群,从而优化系统性能。

软件方面,嵌入式应用的非对称多核处理器架构流水线设计和优化需要依赖一系列的软件技术和算法,其中最关键的是操作系统和编译器。通常情况下,需要选择适合非对称多核处理器的实时操作系统,如FreeRTOS、RT-Thread和Zephyr等,以确保程序能够稳定运行,在使用FreeRTOS、RT-Thread和Zephyr设计非对称多核实时操作系统前,首先需要确定使用的处理器类型和数量。不同的处理器类型和数量,会影响系统的架构和设计。在多核实时操作系统中,通常会有一个主线程来协调整个系统的运行。主线程负责初始化处理器、分配资源、创建子线程,并监视其运行状况。创建子线程时,需要平衡各个处理器之间的工作负载,方便系统达到最佳性能。选择合适的任务调度算法,如优先级调度、时间片轮转调度或者其他算法来管理多核的运行状态。不同的任务调度算法具有不同的优缺点,在实际应用中需根据实际情况适当选择。为了协调不同处理器之间的运行状态,需要使用同步和通信机制,如互斥锁、信号量、条件变量或消息队列等。这可以确保数据的同步性和一致性,避免出现竞态条件和死锁。

为了提高流水线的效率和可靠性,还需要合理分配模块,并将不同模块之间的关系进行适当优化。可以通过建立任务图或Use-Case图等方式来规划整个系统的结构。例如,在控制器应用中,可以将运动控制算法和压力控制算法放在不同的核心上同时运行,从而充分利用系统多核的计算能力。同时,还需注意处理器运作的逻辑,包括指令调度、数据访问、同步与异步操作等。例如,在流水线设计过程中,可以采用数据局部性原则和数据预处理技术,提高存储器使用效率,减少访问延时。同时,还可以针对不同的并发任务,在软件设计层面上采用相应的并行计算方式来加速计算过程。

(二)性能和能耗分析

嵌入式应用的非对称多核处理器,每个核心都有着不同的特性和工作负载,因此需要进行性能和能耗上的设计,以实现最优的系统效率[4]。在性能设计方面,为了充分利用各个核心的优势,需要合理分配任务,并根据任务负载动态分配核心。例如,在设计图像处理器时,要考虑一个嵌入式图像处理器,包括一个高效率计算核心和一个低功耗I/O核心,将输入与输出操作委托给I/O核心,将计算密集型任务交给计算核心。使用具有不同优势的核心协同工作可提高系统效率,例如,在处理较大图像时,需要快速传输大量数据,并将其保存到缓存中,这便是I/O核心所擅长的领域;高质量图像的生成则需要更高的计算性能,因此,可以将计算密集型任务放在计算核心中进行。又如,设计无线电通信网络处理器,由两个核心组成:一个执行网络协议栈处理的高性能计算核心和一个处理指定低功耗部分的I/O核心。在运行过程中,这个网络处理器始终保持与无线信号的连接,当通过移动电话或电视机等外部设备对网络进行访问时,网络处理器要从休眠状态唤醒,并迅速提供网络服务。为了最大化系统效率并降低功耗,可以将I/O操作或者网络浅层处理交给低功耗的I/O核心,以便快速唤醒。而计算密集型和高优先级任务会被分配到高性能计算核心中进行处理。由此可见,针对不同的应用场景和工作负载,需要灵活选择合适的核心、调度策略等参数,并考虑任务调度、电压与频率调节、资源共享、实时任务数量、外部组件功耗、散热设计,以及可重构技术等因素的影响,以实现最优的非对称多核处理器运作效果。

在能耗设计方面,实时任务通常需要优先处理,并且可能需要较高的处理器频率和电压。为了优化系统处理性能并最小化功耗,可以控制实时任务的数量,确保系统不会因实时任务过多,而导致处理器频率和电压的不必要升高。在非对称多核处理器中,除了CPU,外设组件也会消耗大量的电能。因此,在设计阶段需要选择低功耗、高效率的外设组件,并采取降低功耗的措施(如使用节能模式)。高功率的芯片在长时间工作中容易产生过热问题,这种热量也会增加系统的真实能耗。因此,在能耗设计时,需要注意对整个系统进行有效的散热设计,以确保良好的热管理,帮助降低系统功耗。可重构系统架构具备动态重新配置的能力,以便在运行时灵活地重新分配计算资源,满足不同任务负载的需求。这种架构不仅使设计人员实现更高效的处理器时间应用,还有助于降低系统成本和功耗。

四、多核处理器优化方法

(一)负载平衡算法

针对嵌入式应用的非对称多核处理器架构,进行负载平衡优化,首先需要构建负载量模型,假设系统中有N个任务需要运行,其中第i个任务所耗费的时间为Ti。系统处理能力由M个核心提供,分别为C1,C2,...,CM。系统最大吞吐量Tmax

Tmax=min{∑Ti/(K×M)+∑Ti/K}

式中,min为取最小值;k为枚举系数,k≥1且k

计算出负载量后,再进行计算,常见的负载均衡算法为轮询、加权轮询、最少连接数等。以加权轮询算法为例,其具体实现如下:①定义Wi为第i个核心的权重,表示该核心的处理能力;②定义Ci为第i个核心已处理的任务数量;③定义S为所有核心的权重之和,则Wi / S表示第i个核心的分配比重,通过轮询算法依次将任务分配到各个核心,若某核心的任务处理数量达到Wi/ S×N,则停止将任务分配给该核心。考虑到嵌入式应用的非对称多核处理器需要适应不同的应用场景,并满足随时变化的负载需求,因此,还要基于阈值进行动态负载均衡设计,其具体实现如下:①定义Tcpu为CPU的最大利用率,Thigh和Tlow分别为高负载和低负载的阈值;②若当前系统CPU利用率小于Tlow,则将更多任务分配到核心性能较强的处理器上,以提高整体的负载水平;③若当前系统CPU利用率在Tlow~Thigh,则保持不变,维持原有的负载均衡状态。

若当前系统CPU利用率超过Thigh,则降低部分任务的优先级,以避免系统过度负载,同时释放部分CPU资源给其他任务使用。

(二)动态功耗管理技术

在采用动态功耗管理技术优化时,需要了解CPU、内存、外设等硬件部件能源消耗特征,建立相应的能源模型。设计者要定义不同任务的功耗模型和相关的能源资源,设计针对嵌入式系统各种可能的负载情况的动态功耗管理算法。动态功耗管理算法应该考虑到运行的实际应用程序、当前的负载、电池寿命、温度和其他因素,并针对这些变量做出积极反应[5]。为了确保非对称多核处理器架构的可靠运行,必须监测系统温度,非对称多核处理器架构中的温度监测需要结合硬件和软件两个方面进行设计。硬件方面,需要安装温度传感器,不断检测芯片的温度变化,并将数据传输到系统监测单元或处理器上。此外,还可以采用风扇或其他散热设备调节系统的温度,从而保持其在可控范围内。软件方面,可以通过在操作系统中运行相应的工具或驱动程序,实现温度监测。这些工具可以定期检测温度,并在达到指定阈值时向用户发出警告或执行相应的控制操作。此外,还可以采用一些动态功耗管理算法,根据当前系统负载情况,动态地分配任务到处理器,以实现最优的性能和能源消耗模式。当检测到高温时,可迅速控制高功率处理器的频率和电压,或将任务从性能高的处理器传递到性能低但能耗更低的处理器中,以避免其过热和损坏,并根据当前的负载,将某些任务从强处理器转移到低功率处理器上,采用相应动态功耗管理算法优化处理器的使用。当这些任务完成时,可以将其放回到更高性能的处理器上重新执行。通过以上方案优化嵌入式应用的非对称多核处理器架构的动态功耗管理技术,可实现更加高效、可靠和节能的系统运行。

(三)系统调度算法

针对不同的任务负载和性能需求,需要设计并选用合适的任务调度算法,根据各个处理器的状态信息动态进行调度,以平衡整个系统的负载,并确保各个处理器的利用率、响应时间和能耗都达到最优状态。常见的任务调度算法包括EDF(Earliest Deadline First)和RMS(Rate Monotonic Scheduling)等,对于EDF,它主要以任务的期限为依据来进行调度。每个任务都有一个截止时间点,临近该时间点就需要优先处理该任务。调度程序遍历所有已经就绪的任务,并选取截止时间最早的任务,然后将其分配到可用的处理器上执行。RMS则是基于任务的周期和处理时间进行调度,中心思想是短周期的任务会更频繁地抢占CPU资源,因为这样可以降低响应时间和提高处理效率。其中,规定了高优先级任务比低优先级任务具有更短的周期和执行时间。在实际应用中,各个处理器的能耗和性能之间存在一定的相关性。因此,在任务调度时,不仅要考虑处理任务的主要性质和特点,还需要定期检查各个处理器的能耗情况,及时采取节能措施,如降低处理器频率或关闭一部分内核等,并及时对出现的问题进行反馈和处理,以确保系统的稳定和高效运行。通过以上方案优化嵌入式应用的非对称多核处理器架构的系统调度算法,可实现更好的任务调度和能源管理,提高整个系统的处理性能和资源利用率。

五、结语

在非对称多核处理器中,每个内核的性能、功耗和功能都有所不同,因此,可以根据实际需求,将任务分配到不同的内核上进行处理,实现更好的资源分配和性能优化,在实现过程中要综合考虑系统的实时性、功耗、可靠性和成本等问题。通过合理的流水线、性能和功耗设计,搭配良好的负载平衡、动态功耗管理以及系统调度,最终才能实现系统的良好运转。

参考文献

[1]瞿伟,余飞鸿.基于多核处理器的非对称嵌入式系统研究综述[J].计算机科学,2021,48(S1):538-542.

[2]孟振华,柳柱,仲雪洁,等.高性能嵌入式并行计算架构的研究[J].自动化与仪表,2018,33(4):87-90.

[3]周军,廖晓波,朱建公.一种基于嵌入式多核处理器的实时图像去雾方法[J].西南科技大学学报,2018,33(1):62-67.

[4]韩毅博,湛文韬,胡宝雷.基于多核处理器的非对称嵌入式数据处理模块设计[J].电脑编程技巧与维护,2022(4):114-115.

[5]何翔.嵌入式多核操作系统负载均衡模型研究[J].电脑知识与技术,2018,14(5):67-68.

作者单位:NVIDIA技术服务(北京)有限公司

猜你喜欢

架构设计优化方法
基于安全性需求的高升力控制系统架构设计
虚拟收费站架构设计与高速公路自由流技术
大数据时代计算机网络应用架构设计
基于知识元和有色Petri网的应急实施流程优化方法
智能建筑暖通空调系统优化方法研究
计算机网络服务质量优化方法
学生成绩管理系统数据查询优化方法研究 
灵活运用多媒体,优化语文教学
优化电力通信网运行方式
对称加密算法RC5的架构设计与电路实现