RK3399/RK3588+pcie+Zynq 多核架构可穿戴设备设计方案_rk3588 amp 多核-程序员宅基地

技术标签: 架构  瑞芯微  RK3588  RK+FPGA  

在很多领域,人们对可穿戴设备的可靠性有着非常高的要求。这些使用场景
不仅丰富多样,而且复杂多变。这使得可穿戴设备不仅需要应对应用和系统本身
的状态变化,也要考虑到设备所处环境所带来的异常情况。所以,针对不同安全
等级的任务制定不同的调度策略,有利于可穿戴设备在复杂的运行环境下最大程
度地保证系统的可靠性。
3.2 调度平台需求分析
可穿戴设备具有应用场景丰富、任务类别众多等特点。然而对于大部分场景
来说,能够提供给可穿戴设备的体积都十分有限,因此对系统的功耗和散热提出
了较高的要求。针对这些特点,通过对可穿戴设备的分析,将计算平台的需求归
纳为以下几点:
(1)计算平台需要具备执行多种类型计算任务的能力。
(2)计算平台的计算资源较为有限,在实现应用功能的时候应该尽可能少的
占用计算资源。
(3)对于多种类型的计算任务,需要根据其对系统的重要性分配不同的关键
等级。
(4)平台能够根据不同任务的关键等级采取不同的调度策略,以保证系统的
功能和性能。
(5)调度平台能够保证系统的实时性、可靠性。
3.3 可穿戴设备硬件分析
随着半导体技术的迅猛发展,计算机的性能飞速提高,但是近几年芯片的发
展却达到了瓶颈。越来越复杂的电路,越来越高的开发成本,使得处理器性能无法
再按照摩尔定律进行发展,导致计算性能无法满足数据体量的要求。通过引入特
定的计算单元,让计算机系统成为混合结构,混合结构中的每一种不同类型的计
算单元都可以执行最擅长执行的任务成为了一种有效的解决方案。 CPU 虽然在运
算能力上相对较差,但是擅长管理和调度; GPU 虽然管理调度能力较差,但是拥
有更强的计算能力,通过多进程并发,适合处理整块的流数据; FPGA 开发周期长,
开发难度大,但是并行度大,并且有着最强的实时性。为了在满足设备对功耗、体
积和发热量等需求的的同时能保证可靠性与实时性,引入协处理器实现异构计算
平台是最优的方案。低功耗协处理器不但能够为计算平台提供低能耗的硬件加速,
也能满足可穿戴设备对空间的要求。利用特定应用集成电路( ASIC )进行硬件加
速是一个好的解决方案, ASIC 具有高性能、低能耗的特点, ASIC 的高能效,能
够平衡设备的性能与功耗。但是 ASIC 应特定要求生产之后,电路和功能就无法再
改变了,难以使用一款通用 ASIC 来适配多种应用场景。在这种情况下,现场可编
程门阵列( FPGA )就成为了更好的选择。 FPGA 的主要优势在其灵活性,在可穿
戴设备的应用场景中,不同的设计框架与策略下的具体计算任务对硬件的诉求也
都不尽相同。在 FPGA 中我们可以根据需求任意修改数字逻辑来实现不同的功能,
其大规模并行化的特性也能使算法更加迅速、高效。
移动端设备不但需要完成高强度的任务,也要保证足够的续航时间,移动端
处理器从早期的单核心到双核心、四核心以及现在的八核心,核心的数量一直在
增长。四核心曾被认为是移动设备比较平衡的方案,但实际使用中发现,四个高功
耗核心的处理器,很难通过降压、降频等手段取得比较好的能耗比。 ARM 提出的
big.LITTLE 架构则很好的解决了这一问题。 big.LITTLE 是一种异构处理架构,将
大核高性能与小核低功耗的特性结合在一起,可以有效提升移动设备的能源效率。
big.LITTLE 系统中,无论是大核处理器还是小核处理器都有相同的架构。本文
所使用的瑞芯微 RK3399 开发板所使用的就是一款基于 Big.Little 架构的处理器,
具有低功耗、高性能的特性。该处理器具有双核 Cortex-A72 和四核 Cortex-A53
组合架构,能很好得满足可穿戴设备的复杂需求。
根据前文对应用场景的分析,本研究使用了瑞芯微 RK3399+Xilinx Zynq 开发
平台实现基于 CPU+FPGA 架构的系统。该架构不但能够充分利用异构处理器在控
制与操作系统方面的优势,还能够充分发挥 FPGA 在并行数据处理方面的优势。在
硬件资源允许的范围内最大化硬件的并行度和数据的复用度并提高硬件资源的利
用率与系统的吞吐率。如图 3-1 所示,本文将系统架构分成了六层。其中:
(1)应用层:可供开发人员进行开发,对硬件层进行了屏蔽,负责根据为应用
软件提供运行环境。可根据可穿戴计算机的需求,进行拓展。
(2)应用程序框架层:为上层应用层提供各种 API 接口和服务级进程。
(3)系统运行库层:包含两个部分,系统库与 Android 运行时。系统库包含
了支撑整个系统运行的基础库,是应用程序框架的支撑,也是连接应用框架层与
Linux 内核层的重要纽带。 Android 运行时中运行着程序,分为核心库与 Davik
拟机。
4)操作系统层:通过定义硬件驱动的接口来降低系统与硬件的耦合度,本文
可穿戴计算机操作系统采用了 Android 系统。
(5)驱动程序:通过安装不同的驱动程序为相应的硬件需求提供支持,本文可
穿戴计算机主要包含了 FPGA 驱动和 PCIe 驱动。
(6)硬件支撑平台:由可穿戴计算机与 FPGA 组成,是整个软件平台的基础。
而主处理器与协处理器的相互合作,使平台在性能与功耗方面达到了平衡,通
过软硬件协同的方式满足可穿戴设备的要求。处理器架构图如图 3-2 所示。
3.4 面向关键任务的容错调度算法
3.4.1 已有的任务调度算法分析
Baruah 提出的模型 AMC [44] 能够在系统提供额外运行时间的基础上,为调度
提供更高的可靠性。该算法提出了系统关键等级的切换策略:任何任务的执行时
间超出了 C(LO) ,那么系统就会切换至高关键等级,同时将所有低关键等级任务
丢弃,并将系统保持在高关键等级。现有的许多研究都是基于该模型的,主要的工
作都集中在了改进任务分配阶段的分配策略和在系统高关键等级下对低关键等级
任务的优化。该模型能在系统负载较重时,以低关键等级任务为代价,在一定程度

上保证高关键等级任务的完成。然而却无法处理高关键等级任务出现的瞬态故障,
无法保证可穿戴设备所要求的高可靠性,因此需要为关键任务引入容错措施。
冗余机制被广泛应用于各类容错系统中,是一类主要的容错技术,该技术以
资源为代价来换取可靠性。冗余有三种:信息冗余、空间冗余和时间冗余 [45] 。信
息冗余是指利用冗余的数据来提供可靠性,例如汉明码。汉明码在数据流中插入
验证码,通过重复存储来防止数据的丢失或错误;空间冗余则是指在程序运行过
程中,通过设备或模块的冗余来保证系统的可靠性;时间冗余主要是通过定时保
存系统的信息,当发生故障或异常后通过保存的信息来对系统进行恢复,以时间
为代价为系统提供可靠性,例如检查点机制。检查点机制是一种有效提高系统可
靠性的技术,通过设置检查点来实现容错。程序在执行过程中,以一定的时间间
隔来记录内存映像以及日志,当硬件资源出现异常时,通过最近的检查点所存储
的信息来进行恢复。系统级容错由系统自动保存检查点,缺点是开销较大。
在基于双模冗余机制的算法中,使用两个处理器处理同样的工作,通过比对
运行结果来判断是否出错。基于双模冗余的容错算法只具有检查错误的功能,不
具有纠错的功能,这个特性限制了该类算法的使用场景。而基于三模冗余的容错
算法通过三个处理器处理同样的工作,采用多数原则,具有一定的纠错功能,能大
幅提高系统的可靠性,但是与双模冗余相比,会造成更大的计算开销。由于可穿
戴计算机有体积小、功耗低、计算资源紧张的特点,如何合理地设计冗余来平衡
可靠性与计算开销,是本章研究的重点。
3.4.2 异构多核系统与任务模型
本文通过将异构多核系统与任务抽象为数学模型,来对基于异构多处理器的
任务调度问题进行分析。
3.4.2.1 调度模型
待处理的任务到来后被存储在任务队列中。在对任务进行调度时,调度模块
将根据任务的信息和处理器的状况,根据调度算法将任务发往处理器所对应的任
务队列,同时更新处理器状态表,在任务完成后,更新任务状态表。为了使调度平
台能调用 FPGA ,使用专门的线程对 FPGA 进行控制。 FPGA 根据调度策略动态配
置计算任务区域的 IP 核。调度模块可以对多个线程做出响应,对任务状态表进行
统一管理。面向关键任务的调度模型如图 3-3 所示。
3.4.3 同步机制
基于双模冗余的容错调度算法通过将任务发往不同的处理器来保证系统的可
靠性,当其中一个版本的任务由于故障或异常导致错过截止时间时,另一个版本
能够在截止时间之前完成任务。该特性不但能够为任务提供可靠性保证,也能够
维持良好的性能。因此基于双模冗余的容错算法能够同时保证可穿戴设备的实时
性与可靠性。系统中,两个模块同时出现故障是低概率事件,所以冗余算法在运
行时,至多只有一个版本任务出现错误 [46] 。在该合理假设下,容错算法将所有任
务都重复运行两次,浪费了大量的计算资源。在异构处理器架构上,不同的处理
器拥有着不同特性,这也是异构架构的优势。而每一个单独的核,都可以单独完
成系统的计算任务。相同类型的任务在不同核心上不同的运行时间也会直接导致
不同的核心在处理任务时有着不同的效率。在任务开始执行一段时间后,不同处
理器完成的任务的进度会不同。而基于双模冗余的容错调度算法会控制系统中所
有的处理器处理所有计划中的任务,包括已经被其他处理器完成的任务,这种情
况浪费了可穿戴设备珍贵的计算资源。
因此,本文提出一种同步机制对基于双模冗余的容错调度算法进行改进。在
该同步机制内,处理器在运行任务时若接收到该任务已经完成的消息,则放弃当
前的任务。这样,所有的处理器在处理任务时都会以最快的核为基准。如图 3-4
示,在时刻 T 0 ,调度器将任务 v 0 复制并且分别发往发往 Core1 Core2 两个核心,
v 1 为调度模块即将调度的下一个任务。到了时刻 T 1 ,如图 3-5 ,此时各处理器经过
一段时间的运行,处理进度已经不同, Core1 刚处理完 v 0 v 1 v 2 ,即将处理 v 3
Core2 刚处理完任务 v 0 v 1 ,即将处理 v 2 v 3 。而 v 2 已经由 Core1 完成并提交,
所以根据同步机制,此时应该进行一次同步, Core2 放弃执行任务 v 2 ,如图 3-6
示。
3.4.4 改进的容错调度算法
在本章算法中,由于考虑到异构多核系统中不同 CPU 的计算能力不同的特性
以及可穿戴设备的需求。在任务选择阶段,根据设备特点选择合适的任务进行调
度。在处理器映射阶段,对处理器进行了进一步划分,充分利用了异构系统的特
性。通过这些机制,一方面保证了系统的可靠性;另一方面提高了系统对任务的吞
吐率,具体如下:
1 )任务选择阶段
最早截止时间优先( EDF )调度算法在是理论上最佳的 [47] 。使用该算法对任
务进行调度,能够使得每个任务都满足截止期限的要求并且 CPU 利用率将会是
100% 。然而,在实际中,由于进程的上下文切换和中断处理的开销,要达到这种级
别的 CPU 利用率是不可能的。频繁切换线程的优先级,将带来较大的调度开销 [48]
虽然动态优先级调度算法在对资源的利用率方面要高于静态优先级调度算法。但
是根据上文对可穿戴设备的分析得知,基于具体应用场景的可穿戴设备往往在短
期内不会频繁地切换任务的种类。因此我们选择不可抢占式 EDF 调度算法对任务
队列中的任务进行调度,即总是选择截止时间最早的任务进行调度,如算法 3-1
示。

 信迈提供RK3399/RK3588+FPGA的解决方案。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/YEYUANGEN/article/details/131770682

智能推荐

5个超厉害的资源搜索网站,每一款都可以让你的资源满满!_最全资源搜索引擎-程序员宅基地

文章浏览阅读1.6w次,点赞8次,收藏41次。生活中我们无时不刻不都要在网站搜索资源,但就是缺少一个趁手的资源搜索网站,如果有一个比较好的资源搜索网站可以帮助我们节省一大半时间!今天小编在这里为大家分享5款超厉害的资源搜索网站,每一款都可以让你的资源丰富精彩!网盘传奇一款最有效的网盘资源搜索网站你还在为找网站里面的资源而烦恼找不到什么合适的工具而烦恼吗?这款网站传奇网站汇聚了4853w个资源,并且它每一天都会持续更新资源;..._最全资源搜索引擎

Book类的设计(Java)_6-1 book类的设计java-程序员宅基地

文章浏览阅读4.5k次,点赞5次,收藏18次。阅读测试程序,设计一个Book类。函数接口定义:class Book{}该类有 四个私有属性 分别是 书籍名称、 价格、 作者、 出版年份,以及相应的set 与get方法;该类有一个含有四个参数的构造方法,这四个参数依次是 书籍名称、 价格、 作者、 出版年份 。裁判测试程序样例:import java.util.*;public class Main { public static void main(String[] args) { List <Book>_6-1 book类的设计java

基于微信小程序的校园导航小程序设计与实现_校园导航微信小程序系统的设计与实现-程序员宅基地

文章浏览阅读613次,点赞28次,收藏27次。相比于以前的传统手工管理方式,智能化的管理方式可以大幅降低学校的运营人员成本,实现了校园导航的标准化、制度化、程序化的管理,有效地防止了校园导航的随意管理,提高了信息的处理速度和精确度,能够及时、准确地查询和修正建筑速看等信息。课题主要采用微信小程序、SpringBoot架构技术,前端以小程序页面呈现给学生,结合后台java语言使页面更加完善,后台使用MySQL数据库进行数据存储。微信小程序主要包括学生信息、校园简介、建筑速看、系统信息等功能,从而实现智能化的管理方式,提高工作效率。

有状态和无状态登录

传统上用户登陆状态会以 Session 的形式保存在服务器上,而 Session ID 则保存在前端的 Cookie 中;而使用 JWT 以后,用户的认证信息将会以 Token 的形式保存在前端,服务器不需要保存任何的用户状态,这也就是为什么 JWT 被称为无状态登陆的原因,无状态登陆最大的优势就是完美支持分布式部署,可以使用一个 Token 发送给不同的服务器,而所有的服务器都会返回同样的结果。有状态和无状态最大的区别就是服务端会不会保存客户端的信息。

九大角度全方位对比Android、iOS开发_ios 开发角度-程序员宅基地

文章浏览阅读784次。发表于10小时前| 2674次阅读| 来源TechCrunch| 19 条评论| 作者Jon EvansiOSAndroid应用开发产品编程语言JavaObjective-C摘要:即便Android市场份额已经超过80%,对于开发者来说,使用哪一个平台做开发仍然很难选择。本文从开发环境、配置、UX设计、语言、API、网络、分享、碎片化、发布等九个方面把Android和iOS_ios 开发角度

搜索引擎的发展历史

搜索引擎的发展历史可以追溯到20世纪90年代初,随着互联网的快速发展和信息量的急剧增加,人们开始感受到了获取和管理信息的挑战。这些阶段展示了搜索引擎在技术和商业模式上的不断演进,以满足用户对信息获取的不断增长的需求。

随便推点

控制对象的特性_控制对象特性-程序员宅基地

文章浏览阅读990次。对象特性是指控制对象的输出参数和输入参数之间的相互作用规律。放大系数K描述控制对象特性的静态特性参数。它的意义是:输出量的变化量和输入量的变化量之比。时间常数T当输入量发生变化后,所引起输出量变化的快慢。(动态参数) ..._控制对象特性

FRP搭建内网穿透(亲测有效)_locyanfrp-程序员宅基地

文章浏览阅读5.7w次,点赞50次,收藏276次。FRP搭建内网穿透1.概述:frp可以通过有公网IP的的服务器将内网的主机暴露给互联网,从而实现通过外网能直接访问到内网主机;frp有服务端和客户端,服务端需要装在有公网ip的服务器上,客户端装在内网主机上。2.简单的图解:3.准备工作:1.一个域名(www.test.xyz)2.一台有公网IP的服务器(阿里云、腾讯云等都行)3.一台内网主机4.下载frp,选择适合的版本下载解压如下:我这里服务器端和客户端都放在了/usr/local/frp/目录下4.执行命令# 服务器端给执_locyanfrp

UVA 12534 - Binary Matrix 2 (网络流‘最小费用最大流’ZKW)_uva12534-程序员宅基地

文章浏览阅读687次。题目:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=93745#problem/A题意:给出r*c的01矩阵,可以翻转格子使得0表成1,1变成0,求出最小的步数使得每一行中1的个数相等,每一列中1的个数相等。思路:网络流。容量可以保证每一行和每一列的1的个数相等,费用可以算出最小步数。行向列建边,如果该格子是_uva12534

免费SSL证书_csdn alphassl免费申请-程序员宅基地

文章浏览阅读504次。1、Let's Encrypt 90天,支持泛域名2、Buypass:https://www.buypass.com/ssl/resources/go-ssl-technical-specification6个月,单域名3、AlwaysOnSLL:https://alwaysonssl.com/ 1年,单域名 可参考蜗牛(wn789)4、TrustAsia5、Alpha..._csdn alphassl免费申请

测试算法的性能(以选择排序为例)_算法性能测试-程序员宅基地

文章浏览阅读1.6k次。测试算法的性能 很多时候我们需要对算法的性能进行测试,最简单的方式是看算法在特定的数据集上的执行时间,简单的测试算法性能的函数实现见testSort()。【思想】:用clock_t计算某排序算法所需的时间,(endTime - startTime)/ CLOCKS_PER_SEC来表示执行了多少秒。【关于宏CLOCKS_PER_SEC】:以下摘自百度百科,“CLOCKS_PE_算法性能测试

Lane Detection_lanedetectionlite-程序员宅基地

文章浏览阅读1.2k次。fromhttps://towardsdatascience.com/finding-lane-lines-simple-pipeline-for-lane-detection-d02b62e7572bIdentifying lanes of the road is very common task that human driver performs. This is important ..._lanedetectionlite

推荐文章

热门文章

相关标签