漫谈MCU优化:从硬件设计优化到可靠性挑战

news2024/11/14 12:02:46

1.关于MCU

微控制器(Microcontroller Unit, MCU),是以微处理器为基础,加上存储器以及计数器、I2C、UART等外设模块与接口电路整合的单芯片微型计算机。

▲MCU实物图

MCU拥有性能好、可编程、灵活度高、功耗低等优点,因此往往被集成到不同的设备中,用以取代复杂臃肿的电子线路控制系统,实现设备控制的轻量化和智能化。可以说小到玩具、大到汽车,MCU已经渗透进人们生活的方方面面。

工业:工业控制、汽车电子等领域;

日常生活:智能家居、物联网以及智能穿戴等领域。

微控制器覆盖范围非常广,产品应用的场景也非常多,不同的使用场景对微控制器的要求也不一样,厂商会根据使用场景提前部署各种型号的MCU,以满足不同场 景下对性能、成本、功耗以及安全性等方面的定制化需求:

玩具小车市场对处理器性能的要求并不高,相关厂商会采用成熟制程并尽力压缩成本;手机、笔记本等便携设备对低功耗的要求较高,设计厂商便可能舍弃部分性能去追求更低的功耗;近年来火热的汽车电子市场则是更看重MCU的安全性能,在智能化、自动化系统的高要求下,设计厂商需要满足相关可靠性测试才能达到标准,从而在汽车电子领域占据一席之地。

2.关于ISA

MCU的优化主要分为两大块:硬件设计优化与软件优化。要了解硬件设计的优化,可以从计算机指令集架构入手。

1946年,人类历史上的第一台由电子管构成的计算机诞生,世界宣告进入数字化的时代。紧接着,20世纪50年代,随着电子管被更加小型的晶体管替代,计算机开始小型化并且逐渐走向大众。随着制造工艺的进步,芯片制程越来越小,集成度也越来越高,处理器的运算速度也越来越快。时至今日,计算机的种类非常丰富,大致可以分为超级计算机、网络计算机、工业控制计算机、个人计算机以及嵌入式计算机。

▲计算机种类分类

计算机主要由硬件和软件共同构成,二者相辅相成,均可在各自领域提升计算机的处理速度。指令集架构(Instruction Set Architecture,ISA)作为链接硬件和软件的重要桥梁,是硬件设计准则与处理器的根基,可以极大影响处理器的性能。ISA在计算机系统中的重要性如下图所示。

▲指令集架构示意图

ISA主要分为两个大类:

CISC(Complex Instruction Set Computer,复杂指令集),代表架构即广为人知的X86架构;AMD和Intel的X86架构处理器在高性能服务器、个人PC等领域具有绝对优势,在全球市场中几乎占垄断位置。

RISC(Reduced Instruction Set Computer,精简指令集),常见的有ARM、MIPS和RISC-V等;值得一提的是,ARM公司的ARM架构处理器系列占据着嵌入式领域的大部分市场,然而ARM公司并不直接生产和售卖芯片,而是采用授权或售卖IP的形式来盈利。

3.MCU的硬件设计优化——RISC-V

Intel创始人戈登·摩尔(Gordon Moore)在1965年提出过一个观察与预测:在不增加成本的情况下,集成电路上可以容纳的晶体管数量大约每隔18至24个月就会增加一倍

21世纪到来后,物理规则的限制和制造工艺进步缓慢,摩尔定律逐渐走到了尽头,处理器通过享受制造工艺的进步所带来速度提升的方式宣告结束,发展重点随之逐渐转移至处理器结构等其他方面的创新与拓展。

上文提到的ARM公司虽然占据嵌入式MCU领域绝大部分份额,但是因其不得不考虑其老旧产品的兼容性,造成自身负担太重、过于臃肿,使得硬件设计的复杂度大大提升,并不能很好地满足当下嵌入式领域微控制器对于性能、面积和功耗的要求,无法有效给出最佳的方案,缺乏定制化和自由度。

在此大背景下,2010年,由伯克利大学的Krste Asanovic教授等人开发的 RISC-V(Reduced Instruction Set Computer-Five)指令集应运而生。

RISC-V指令集实现了MCU硬件设计的优化,顺应时代的发展趋势,拥有开源、免费、架构简洁、工具链完整和开发学习易上手等特点,采用模块化设计,拥有强大的可定制化能力,对我国MCU设计厂商有着非常大的吸引力:

一方面,由于近年来美国对我国在半导体技术领域的出口限制越来越多,企图阻止我国半导体技术的发展,我国集成电路公司对于产业链的安全性越来越重视,RISC-V的开源特性无疑是国内公司摆脱ISA被垄断的一个绝佳机会;

另一方面,芯片公司往往非常重视芯片的定制化,实际生产设计中,性能往往并不是唯一的指标,芯片的成本以及功耗等特性往往也是一款芯片能否成功的关键。

4.可靠性上的挑战

随着RISC-V架构的逐步成熟,其开放性和可扩展性使其在满足不同行业特定需求方面展现出巨大潜力。尤其在汽车电子领域,RISC-V的灵活性和开放性非常适合汽车行业对高可靠性、低延迟和功能安全的需求。汽车电子系统,尤其是自动驾驶和高级驾驶辅助系统(Advanced Driver Assistance Systems,ADAS)等功能对处理器的实时响应能力和安全性要求极高。

尽管RISC-V在硬件设计上具有明显的优点,但随着汽车电子系统日益复杂,尤其是高安全性和实时性要求的加剧,单纯依赖RISC-V的优化无法满足高可靠性的要求,其处理器存储器的可靠性问题变得尤为突出,尤其是如何确保数据在长时间、极端环境下的安全与完整性。以汽车领域为例,汽车电子系统的存储器需要处理大量的实时数据,存储器的安全性能直接关系到处理器能否按照程序正常运行:

如若存储器中的数据发生变故,轻则导致处理器陷入混乱“死机”,重则可能造成不可预知的重大事故。

对于加强存储器的可靠性,历史上往往从如下几个层面展开工作:分别是工艺级、版图级、电路级、系统级。工艺级一般采用特殊工艺进行芯片的制造,但工艺成本较为昂贵;版图级提过改变物理布局,需要承担改变版图结构带来的成本;电路级主要保证其中某一路电路的安全性,但相对会消耗更多资源。目前主流的方案为在软件层面系统级地引入冗余单元,通过对存储器数据进行存入时编码,读取时解码的方式,利用算法来检测以及纠正由外部因素造成的系统错误。

冗余本身是为防止存储器失效而进行的多余度设计,但其本身的有效性却很难得到测试和保障:开发人员需要在软件设计中考虑到所有设备的失效逻辑。为了能够完全模拟外界数据并进行完备的测试,测试人员需要设计出复杂的测试系统以保证有效性,复杂的数据总线和冗余设备之间的通信方式通常会花费较高的时间成本和硬件设备成本。

天目全数字实时仿真软件SkyEye是一款基于可视化建模的硬件行为级仿真平台,支持用户通过拖拽的方式进行冗余系统的建模和仿真。在建立冗余系统测试的过程中,SkyEye主要有以下两大优势:

1. 在冗余设备软件开发的过程中,开发人员需要给多个设备加载不同或相同的镜像,手动添加调试往往耗费时间较长。使用SkyEye即可快速搭建虚拟的冗余设备仿真模型,快速实现2-n个备份设备,还可加载不同的镜像,缩短软件开发时间,提高开发效率。

2. SkyEye系统测试特性能够完全模拟外界数据并进行完备的测试:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2236653.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Notepad++ 更改字体大小和颜色

前言 在长时间编程或文本编辑过程中,合适的字体大小和颜色可以显著提高工作效率和减少眼睛疲劳。Notepad 提供了丰富的自定义选项,让你可以根据个人喜好调整编辑器的外观。 步骤详解 1. 更改字体大小 打开 Notepad 启动 Notepad 编辑器。 进入设置菜…

用友U8接口-isHasCounterSignPiid错误

错误消息 调用U813的审批流方法报错,找不到方法:“Boolean UFIDA.U8.Audit.BusinessService.ManualAudit.isHasCounterSignPiid System.Web.Services.Protocols.SoapException:服务器无法处理请求。 ---> System.MissingMethodException: 找不到方法:“Boolean…

opencv_相关的问题

Debug模型下运行&#xff0c;在命令行窗口会有一些error相关的log信息。 通过调整log的等级&#xff0c;屏蔽掉INFO的log信息 #include <opencv2/core/utils/logger.hpp>cv::utils::logging::setLogLevel(cv::utils::logging::LOG_LEVEL_ERROR);

网页中的某个元素高度突然无法设置

做网页时本来一个div的高度好好的&#xff0c;结果代码打着打着突然发现有个div的高度变的很小&#xff0c;把我很多在这个div里的元素给搞的看不见了。 找了好久的原因最后发现是这个div的结束标签</div>不小心被我删了,之后把这个</div>给补上就好了。

【SSL-RL】自监督强化学习:引导式潜在预测表征 (BLR)算法

&#x1f4e2;本篇文章是博主强化学习&#xff08;RL&#xff09;领域学习时&#xff0c;用于个人学习、研究或者欣赏使用&#xff0c;并基于博主对相关等领域的一些理解而记录的学习摘录和笔记&#xff0c;若有不当和侵权之处&#xff0c;指出后将会立即改正&#xff0c;还望谅…

寻找存在的路径/寻找图中是否存在路径 C# 并查集

卡码网 107 与 力扣的1971 寻找图中是否存在路径 相似 感觉还是有点不熟悉得多练1 107. 寻找存在的路径 题目描述 给定一个包含 n 个节点的无向图中&#xff0c;节点编号从 1 到 n &#xff08;含 1 和 n &#xff09;。 你的任务是判断是否有一条从节点 source 出发到…

【数据集】【YOLO】【目标检测】安全帽识别数据集 22789 张,YOLO安全帽佩戴目标检测实战训练教程!

数据集介绍 【数据集】安全帽识别数据集 22789 张&#xff0c;目标检测&#xff0c;包含YOLO/VOC格式标注。数据集中包含2种分类&#xff1a;{0: head, 1: helmet}&#xff0c;分别是无安全帽和佩戴安全帽。数据集来自国内外图片网站和视频截图。检测场景为施工地工人安全帽佩…

洞察鸿蒙生态,把握开发新机遇

随着科技的不断进步&#xff0c;鸿蒙系统以其独特的分布式架构和跨设备协同能力&#xff0c;逐渐在智能手机、智能穿戴、车载、家居等多个领域崭露头角&#xff0c;与安卓、iOS形成三足鼎立之势。作为一名开发者&#xff0c;我对鸿蒙生态的认知和了解如下&#xff1a; 一、鸿蒙…

Node.js 全栈开发进阶篇

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;node.js篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来node.js篇专栏内容:node.js- 全栈开发进阶篇 前言 大家好&#xff0c;我是青山。在上一篇文章中&#xff0c;…

VS Code 插件 MySQL Shell for VS Code

https://marketplace.visualstudio.com/items?itemNameOracle.mysql-shell-for-vs-code

2024年云手机推荐榜单:高性能云手机推荐

无论是手游玩家、APP测试人员&#xff0c;还是数字营销工作者&#xff0c;云手机都为他们带来了极大的便利。本文将为大家推荐几款在市场上表现优异的云手机&#xff0c;希望这篇推荐指南可以帮助大家找到最适合自己的云手机&#xff01; 1. OgPhone云手机 OgPhone云手机是一款…

「QT」QT5程序设计专栏目录

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「QT」QT5程序设计&#x1f4da;全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasolid…

VMWARE ESXI VMFS阵列故障 服务器数据恢复

1&#xff1a;河南用户一台DELL R740 3块2.4T硬盘组的RAID5&#xff0c;早期坏了一个盘没有及时更换&#xff0c;这次又坏了一个&#xff0c;导致整组RAID5处于数据丢失的状态&#xff0c; 2&#xff1a;该服务器装的是VMware ESXI 6.7&#xff0c;用户把3块硬盘寄过来进行数据…

怎么对 PDF 添加权限密码或者修改密码-免费软件分享

序言 目前市面上有关PDF处理的工具有很多&#xff0c;不过绝大多数的PDF处理工具都需要付费使用&#xff0c;且很多厂商甚至连试用的机会也不给用户&#xff0c;偶有试用的&#xff0c;其试用版的条件也极为苛刻&#xff0c;比如只能处理前两页&#xff0c;或者只能处理非常小的…

轻松上云:使用Python与阿里云OSS实现文件上传

轻松上云&#xff1a;使用Python与阿里云OSS实现文件上传 ​ 在数字化时代&#xff0c;数据的存储和管理变得越来越重要。阿里云对象存储服务&#xff08;OSS&#xff09;提供了一种高效、安全的方式来存储和访问各种类型的文件。本文将介绍如何利用Python编程语言结合阿里云O…

通过包控制->获取包重新获取之后,需求类型列表不对

龙勤思(2017年11月27日)&#xff1a; 这个类型列表&#xff0c;我在把需求包提交到svn&#xff0c;再新建一个eap&#xff0c;通过包控制->获取包重新获取之后&#xff0c;就变成默认的如下列表了。我从你的原始的eap导出参考数据&#xff0c;再导入到新建的eap&#xff0c…

python+pptx:(三)添加统计图、删除指定页

目录 统计图 删除PPT页 from pptx import Presentation from pptx.util import Cm, Inches, Mm, Pt from pptx.dml.color import RGBColor from pptx.chart.data import ChartData from pptx.enum.chart import XL_CHART_TYPE, XL_LABEL_POSITION, XL_DATA_LABEL_POSITIONfil…

基础概念理解

一&#xff0c;数据结构分类 连续结构&#xff0c;跳转结构。 二&#xff0c;对变量的理解 在 C 语言中&#xff0c;变量是用于存储数据的抽象符号。变量本质上是一块内存区域的标识符&#xff08;即它代表内存中的某一块区域&#xff09;&#xff0c;用来存储数据&#xff…

【微服务】不同微服务之间用户信息的获取和传递方案

如何才能在每个微服务中都拿到用户信息&#xff1f;如何在微服务之间传递用户信息&#xff1f; 文章目录 概述利用微服务网关做登录校验网关转微服务获取用户信息openFeign传递微服务之间的用户信息 概述 要在每个微服务中获取用户信息&#xff0c;可以采用以下几种方法&#…

5G NR:各物理信道的DMRS配置

DMRS简介 在5G中&#xff0c;DMRS&#xff08;DeModulation Reference Signal&#xff09;广泛存在于各个重要的物理信道当中&#xff0c;如下行的PBCH&#xff0c;PDCCH和PDSCH&#xff0c;以及上行的PUCCH和PUSCH。其最为重要的作用就是相干解调&#xff08;Coherence Demodu…