中文 英语

更强大的微控制器

mcu将在汽车和物联网设备中发挥越来越重要的作用,但它们的设计也变得更加困难。

受欢迎程度

微控制器正变得越来越复杂,功能越来越强大,也越来越有用,但这些改进是有附加条件的。

虽然开发具有高级电源管理功能的多核微控制器(MCU)硬件相对简单,但由于内存有限,为这些芯片编写软件要困难得多。cpu可以使用片上存储器(如SRAM),也可以使用片外存储器(如DRAM)。但在MCU中,一切都在芯片上。因此,虽然cpu可以运行Linux或Windows等重载操作系统,但mcu需要更轻的实时操作系统,其中许多操作系统是为一个或多个特定功能定制的。

“如果你看看视觉市场,你可以支持mcu风格或cpu风格的视觉应用程序,甚至有重叠的应用程序,”Chris Rowen说节奏知识产权组研究员兼首席技术官。“使用MCU,芯片上的帧分辨率会更低。有各种各样的复杂接口,无论是CPU还是MCU。但是对于CPU,你可以稍微粗心一点,比如写出整个缓冲区。在MCU上你可能没有空间这样做。交接也更棘手,引入漏洞的机会也更高。”

如果使用mcu来卸载cpu,无论是作为加速器、协处理器,还是作为功能较弱但更节能的备份处理器,这将变得更加困难。

“对于MCU编程,挑战在于跟上进程,”Rowen说。“我不在乎我的车库门打开器是否消失了几百微秒,然后又回来了,但如果你试图跟上高速数据流,你就需要并行性。因此,如果你将MCU视为另一个子引擎,你需要处理器能够进行数据计算,而这就要求编程风格更不宽容。当你把一个MCU移动到一个高数据速率的环境中,就会变得更加困难。”

更令人困惑的是,mcu越来越多地以非标准的方式在更多的地方使用,而且它们经常被嵌入到更复杂的soc中。因此,虽然功能可能仅限于特定的任务,例如唤醒CPU,但从设计、验证和一致性的角度来看,让多个mcu在设备上同步要困难得多。

ARM嵌入式产品高级产品线经理Andrew Caples表示:“这一趋势正在加速,我们看到[ARM] Cortex a (CPU)和M (MCU)核心在同一个SoC上的组合。导师图形。“例如,如果你看看ADAS(高级驾驶辅助系统),它是嵌入式应用程序的crème de la crème,你现在可以用大量的处理单元——mcu、mpu、dsp来做到这一点。这应该等同于更长的平均故障时间,更低的材料成本和更少的散热。但这也增加了复杂性。所以你在MCU、MPU和DSP上有多个rtos,你现在正在一个SoC包上开发和调试。这意味着你正在开发跨异构平台的解决方案,这给半导体供应商带来了很大的压力,要求他们开发库和解决方案,使所有这些设备的利用更加可行。”

Caples说,任何时候,只要有多个内核和操作系统,就会有许多同步问题,因为一个内核必须等待另一个内核。

“我们一直在关注这个领域的工具,”他说。“对于做硬件的人来说,摩尔定律这些年来对他们很有效。随着硬件性能的提高,成本会下降。软件开发的情况正好相反。随着复杂性的增加,成本也会增加。没有任何事情能帮助改变这一点。”

欢迎来到漫威宇宙时代
尽管面临这些挑战,但随着越来越多的事物被设计成相互连接,并越来越多地与其他事物通信,mcu在复杂系统中的作用预计将会增加。微处理器非常节能,而且与cpu相比价格便宜。8位MCU将继续在执行基本任务方面发挥重要作用,而32位甚至64位多核MCU可以处理更复杂的任务。所有这些都可能在同一个SoC中,与CPU或GPU一起在大多数时间保持黑暗。

“微控制器的复杂性越来越大。手臂。“从32位微控制器的引入开始,我们就看到了这一点。然后人们开始问你还能用它们做什么。”

事实证明,答案不仅仅是满足汽车应用的安全和安保要求。微控制器出现在从工业设备到智能拖鞋的所有东西中,可以检测到一个人何时跌倒。在这些情况下,微控制器通常符合要求,因为它提供了一个具有成本效益和节能的嵌入式处理器,可以为特定的应用程序专门构建。

Neifert说:“每个人都想要最有效的解决方案,与通用产品相比,定制微控制器可以提供成本和功耗优势。”“特别是物联网设备通常对电池非常敏感,因此客户寻找可以快速周转的特殊用途产品,尤其是面向消费者的行业。定制mcu确实需要建模,但它远没有cpu或gpu建模复杂。”

复杂性是相对的。Vista Ventures管理合伙人吉姆•霍根(Jim Hogan)表示:“我们将推出能够真正做一些智能事情的64位微控制器。”“但代码堆栈将非常有限。”

在这种转变的同时,计算本身也在不断发展——尤其是在物联网应用方面。ARM物联网营销副总裁扎克·谢尔比(Zach Shelby)说:“这不是传统的计算。例如,我们看到32位和64位微控制器正在迅速进入MEMS领域。但问题是,我们如何获得正确类型的软件应用程序,这些软件应用程序的容量足够大,可以一遍又一遍地做同样的事情。FPGA不太适用于低功耗应用。如果你在硅上做专门的混合信号视觉检测算法,你必须使用微控制器,但这是一次又一次的相同应用。”

在片上内存有限的情况下,挑战在于如何让mcu能够与其他处理器良好地合作。系统设计中处处要处理的大问题之一是更多的数据,特别是流图像处理和模式/图像识别。有几种高级方法可以解决这个问题。一是拥有更快的处理器和更多的内存。第二是拥有更多的处理器,以更有效地完成某些工作。即使单个的处理单元比较慢,但总的来说,它们可以在合理的时间内完成工作,并且可以根据需要调低。

“你需要这种灵活性,因为你有许多不同的应用程序需要处理,你不想在一个非常同质的模型上妥协性能,这是CPU和GPU设计的目的,”英特尔首席执行官兼联合创始人Sundari Mitra说NetSpeed系统。“微控制器的优势在于它们有某种可编程的微码引擎,所以你可以在比硬处理器类型的IP更灵活的环境中构建它们。微控制器允许你有一些灵活性——不是太多,但也有一些。它使人们有机会灵活地设计自己的体系结构。CPU非常适合浮点算法。GPU非常适合基于视觉的处理。mcu所擅长的是介于两者之间。这些可以是物联网边缘设备,比如你的可穿戴设备。这些可以是汽车发动机中的微控制器。它们之间的不同之处在于,你需要一个具有足够适应性和灵活性的架构。 If people understand their workflows, and if they optimized for that, the MCU allows you to bring in some diversity and have heterogeneity in your compute engines.”

定义单片机
一般来说,mcu是精简的处理单元,运行的时钟速度比cpu和gpu要低。内存层次结构是最明显的区别,特别是8位和16位版本,这是因为低成本和低功耗而流行。但随着先进的32位mcu和低端cpu的出现,界限变得模糊了一些。而64位多核mcu则更加模糊。

Mitra说:“从大局来看,cpu通常是针对单线程或多线程性能进行优化的,这取决于应用程序的工作负载。“如果你把它变成更实时的东西——这就是物联网——它是关于做出更实时的决定。他们的工作负载并没有针对这些事情进行优化。也许他们的工作负载更适合于感知环境中正在发生的事情,并基于此做出决策。你不会一遍又一遍地感觉到同样的事情。有很多机器学习涉及到确保你在学习和适应。你学得更多,适应得更好。这就是mcu的用武之地。那么与MCU合作有什么不同呢?CPU和GPU都很好理解。 Whereas MCU’s are not. You have to work with slightly more limited information. And the design parameters are changing, so your design needs to be workable for that.”

这也使得我们很难清晰地定义MCU市场,也很难对这个市场的发展情况做出比较准确的预测。在本月早些时候发表的一份报告中,轻快的见解预测到2022年,MCU市场将以15.8%的年复合增长率增长,这在很大程度上是由物联网推动的,其中32位微控制器增长最快。Databeans预计增长6%,主要由工业需求推动。

从供应商的角度来看,Gartner认为顶级球员在这一领域,排名依次为瑞萨、恩智浦、意法半导体、微芯片、德州仪器和英飞凌。

但随着mcu出现在新的地方,出现新的用例,市场变得更加分散,难以跟踪。

“当我们看到越来越复杂的芯片时,它们几乎总是包含mcu,”英特尔营销副总裁Kurt Shuler说Arteris。“所以在汽车中,有很多单独的微处理器,但即使在更大的芯片中,也有在后台运行的微处理器。它们在无线数字基带中也很普遍。”

在这些设备上运行的定制代码可以使它们非常节能,而且正在进行的工作还在进一步推进,通过降低某些功能从睡眠模式唤醒的时间。但挑战可能不在于硬件的功能,而在于如何从系统的角度利用这些功能。

结论
微控制器还在开发中。甚至连定义也在改变。但方向是明确的。在未来几年,这些处理器将成为边缘节点设备的主力,并最终将连接或能够连接到互联网,甚至可能连接到其他处理器的许多设备。

但是漫威电影宇宙的潜力究竟能发挥到什么程度,仍然是未来讨论的话题。Mentor公司的Caples表示,在软件开发方面可能需要花费数年的时间来利用这些设备中内置的一些功能。“没人有时间这么做。”至少现在还没有。

有关的故事
如何选择处理器
在哪里使用什么没有明确的公式,但关于谁应该做出决定,有很多意见。
重新思考流程架构
随着半导体行业向特定应用解决方案的根本转变,通用指标不再适用。
调整规模的挑战与日俱增
关于如何优化特定应用程序的设计,有更多的因素要考虑。



1评论

卡尔·史蒂文斯 说:

我认为这总结了问题,文章的其余部分只是术语和神秘的引用。

Mitra说:“从大局来看,根据应用程序的工作负载,cpu通常会针对单线程或多线程性能进行优化。”“如果你把它变成更实时的东西——这就是物联网——它是关于做出更实时的决策。”
所有的排布、乱序执行和jiting都阻碍了实时决策。
1)如果你去构建一个自定义MCU,你只是让自己编写一个编译器。
2)当8位和16位mcu被认为是足够的时候,为什么有64位mcu ?
3)如何在自定义MCU上运行现有的操作系统?
4)在自定义MCU上运行的裸金属代码是否是一种操作系统,因为文章说在芯片上的许多MCU上运行许多操作系统?
5)一个运行裸机C代码的芯片,内存占用最小,没有CPU, MMU是有意义的,因为没有编译器或RTOS。此外,它还可以缩放到任何合适的宽度。C源代码只是一种描述函数逻辑的语法。编译器只是将函数重新格式化为ISA(或者更糟糕的是,JIT编译器使用的中间语言)。
6)单核只有一个ALU,多核有多个ALU,但编写代码有效地使用它们是待定的。

留下回复


(注:此名称将公开显示)

Baidu