漫谈MCU优化:从硬件设计优化到可靠性挑战
关于MCU
微控制器(Microcontroller Unit, MCU),是以微处理器为基础,加上存储器以及计数器、I2C、UART等外设模块与接口电路整合的单芯片微型计算机。
▲MCU实物图
MCU拥有性能好、可编程、灵活度高、功耗低等优点,因此往往被集成到不同的设备中,用以取代复杂臃肿的电子线路控制系统,实现设备控制的轻量化和智能化。可以说小到玩具、大到汽车,MCU已经渗透进人们生活的方方面面。
工业:工业控制、汽车电子等领域;
日常生活:智能家居、物联网以及智能穿戴等领域。
微控制器覆盖范围非常广,产品应用的场景也非常多,不同的使用场景对微控制器的要求也不一样,厂商会根据使用场景提前部署各种型号的MCU,以满足不同场 景下对性能、成本、功耗以及安全性等方面的定制化需求:
玩具小车市场对处理器性能的要求并不高,相关厂商会采用成熟制程并尽力压缩成本;手机、笔记本等便携设备对低功耗的要求较高,设计厂商便可能舍弃部分性能去追求更低的功耗;近年来火热的汽车电子市场则是更看重MCU的安全性能,在智能化、自动化系统的高要求下,设计厂商需要满足相关可靠性测试才能达到标准,从而在汽车电子领域占据一席之地。
关于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的形式来盈利。
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被垄断的一个绝佳机会;
另一方面,芯片公司往往非常重视芯片的定制化,实际生产设计中,性能往往并不是唯一的指标,芯片的成本以及功耗等特性往往也是一款芯片能否成功的关键。
可靠性上的挑战
随着RISC-V架构的逐步成熟,其开放性和可扩展性使其在满足不同行业特定需求方面展现出巨大潜力。尤其在汽车电子领域,RISC-V的灵活性和开放性非常适合汽车行业对高可靠性、低延迟和功能安全的需求。汽车电子系统,尤其是自动驾驶和高级驾驶辅助系统(Advanced Driver Assistance Systems,ADAS)等功能对处理器的实时响应能力和安全性要求极高。
尽管RISC-V在硬件设计上具有明显的优点,但随着汽车电子系统日益复杂,尤其是高安全性和实时性要求的加剧,单纯依赖RISC-V的优化无法满足高可靠性的要求,其处理器存储器的可靠性问题变得尤为突出,尤其是如何确保数据在长时间、极端环境下的安全与完整性。以汽车领域为例,汽车电子系统的存储器需要处理大量的实时数据,存储器的安全性能直接关系到处理器能否按照程序正常运行:
如若存储器中的数据发生变故,轻则导致处理器陷入混乱“死机”,重则可能造成不可预知的重大事故。
对于加强存储器的可靠性,历史上往往从如下几个层面展开工作:分别是工艺级、版图级、电路级、系统级。工艺级一般采用特殊工艺进行芯片的制造,但工艺成本较为昂贵;版图级提过改变物理布局,需要承担改变版图结构带来的成本;电路级主要保证其中某一路电路的安全性,但相对会消耗更多资源。目前主流的方案为在软件层面系统级地引入冗余单元,通过对存储器数据进行存入时编码,读取时解码的方式,利用算法来检测以及纠正由外部因素造成的系统错误。
冗余本身是为防止存储器失效而进行的多余度设计,但其本身的有效性却很难得到测试和保障:开发人员需要在软件设计中考虑到所有设备的失效逻辑。为了能够完全模拟外界数据并进行完备的测试,测试人员需要设计出复杂的测试系统以保证有效性,复杂的数据总线和冗余设备之间的通信方式通常会花费较高的时间成本和硬件设备成本。
天目全数字实时仿真软件SkyEye是一款基于可视化建模的硬件行为级仿真平台,支持用户通过拖拽的方式进行冗余系统的建模和仿真。在建立冗余系统测试的过程中,SkyEye主要有以下两大优势:
1. 在冗余设备软件开发的过程中,开发人员需要给多个设备加载不同或相同的镜像,手动添加调试往往耗费时间较长。使用SkyEye即可快速搭建虚拟的冗余设备仿真模型,快速实现2-n个备份设备,还可加载不同的镜像,缩短软件开发时间,提高开发效率。
2. SkyEye系统测试特性能够完全模拟外界数据并进行完备的测试: