在通往 Embedded World 2021 的道路上:第 5 集
编者按:在 Embedded World 2021 举办前推出的 5 篇系列博客中,第 1 篇(即第 1 集)介绍了 Embedded World 概况。在第 2 集中,Randall 重温了他的 C 编程语言。第 3 集重点讨论了如何使用面向对象编程来降低复杂性。第 4 集阐明良好设计的基本衡量指标是能够根据需求变化重新配置,而不必重新实施构件。本文为最后一篇博客(即第 5 集),写于 Randall 在 Embedded World 2021 发表主题演讲之前,对操作系统需要的空间不断扩大提出了质疑,并谈到了系统分解问题。
在上一篇文章中,我介绍了 David Parnas 的观点,即系统应将信息隐藏在其接口背后,并且系统应分解为容易适应变更的模块。我还提到了这种方法的现代倡导者,也就是“Righting Software”(扶正软件)一书的作者 Juval Löwy。
这种方法不同于功能分解,后者可以说是现今比较流行的方法。然而,有充分的证据表明 Parnas 的方法更好。原因有很多,其中之一是针对变更而设计的系统是更容易理解的系统。这样的系统更容易“摸索”,而且更容易重新组合成新的实现。这是提高重复利用率的关键概念,因为这让非专家人员也可以利用别人的专业知识。这也是拓宽嵌入式工程师市场的机会,其中可通过为别人创造条件,让他们的设想成为现实。因此,良好设计的基本衡量指标是能够根据需求变化重新配置,而不必重新实施构件。这样一来,核心使用场景的变化就是为特定使用场景和特定需求而设计的构件之间的交互。
但可惜的是,这种方法也有其弊端和危害,其中包括效率低下和浪费。随着系统的不断发展,它们自然会变得笨拙。大家可以读一下这篇由 Nikita 写的有趣博客。我很高兴地告诉大家,截至 2020 年第 53 周,该文仍可线上阅读。Nikita 说:
“未安装应用的 Android 系统要占用将近 6 GB 的空间。想一想这个数字有多惊人。其中有些什么,高清电影吗?我想基本上就是代码:内核、驱动程序。当然,也有一些字符串和资源,但它们不可能很大。那么,手机需要多少驱动程序呢?
Windows 95 只有 30 MB。今天,我们的网页都比 30 MB 大!Windows 10 为 4 GB,大了 133 倍。但它是不是也能优秀 133 倍呢?事实上,二者在功能上基本相同。是的,我们有 Cortana,我怀疑它大概需要 3970 MB。但是,无论 Windows 10 是什么,Android 真的是它的 150% 吗?
苹果在 2020 年 11 月发布的 M1 芯片包含 160 亿个晶体管。按照当今的标准,这大得惊人。嵌入式设计人员也有一些巨大的 FPGA 可用。不光通用计算机硬件和程序变得笨拙,嵌入式空间也在发生同样的情况。
数字信号处理最早开发于 1960 年代,用于处理雷达信号。当时微处理器和可编程逻辑尚未问世。此后,我们习惯了使用别人开发的功能——FPGA 供应商及其增值经销商提供的 IP 模块以及各种软件库。这使我们的工作效率更高,但也使我们的解决方案更为庞大。问题是您的应用可能不需要所有包含于其中的功能,您也不大可能了解所有这些功能(例如,供应商在您使用的 IC 中嵌入的内置测试套件)。捆绑固定功能并将其包含在最终产品中变得更加简单。设计更严密的解决方案不划算,因为实现解决方案需要更长的时间。
我在上一篇文章中提到了 Löwy 的评论,即大象和老鼠基本上有着相同的架构。这使我想起,我的 DNA 携带了香蕉 (90%) 和果蝇 (95%) 的大部分谱系。尽管我身上带着这些谱系,但我却完全感觉不到它们。我认为嵌入式系统也是如此。我们只是多携带了一系列现成的功能。我们构建嵌入式系统所使用的框架看起来像是来自 IT 部门(例如,Microchip 的 Harmony、Texas Instruments 的 xDAIS、NXP 的 MCUXpresso 等等)。
我最近在 EE 期刊上读到了 Kevin Morris 的一篇文章,其中写道:
“在过去数十年中,尽管 Xilinx 和 Altera/Intel 的综合 FPGA 市场份额在 80% 左右徘徊,但任何一家的 FPGA 器件出货量都不是最多的。出货量最大这一殊荣归属于 Lattice Semiconductor,而且领先很多。其原因当然在于 Lattice 近年来一直专注于中低端市场,而更知名的可编程逻辑公司却在为争夺最大最贵的 FPGA、FPGA-SoC 和类似器件的霸主地位而奋斗。
这种注重较低成本、高产量插座的战略帮助 Lattice 向众多细分市场的各种系统交付了数十亿片 FPGA。并且,随着 FPGA 技术能力的增强,Lattice 在两强背后发力,将几年前被视为高端的技术带入了更多受成本制约的应用中,而且他们还在新的方向上发展技术,提供预先设计的解决方案,显著降低应用门槛,使得不具备丰富 FPGA 专业知识的工程团队也能利用该技术。”
在 DigiKey 的搜索框中输入“微控制器”,可以看到列出的独特器件超过 87,000 款。键入“FPGA”,列出的器件超出 25,000 款。现在看一下图 1。它显示了客户购买的微控制器种类。注意,最大的机会是服务于低端 8 位市场。在 ARM 和 RISC-V 如日中天的今天,您可能会感到惊讶,但这与有关 Lattice 的文章是一致的。
图 1:不同类型微控制器的受欢迎程度
作为嵌入式工程师,我们面临的挑战是抵制功能膨胀的诱惑。Actel(现为 Microsemi,是 Microchip 的子公司)有一款称为“栅极吞食器”的工具。据我所知,它仍然存在。该工具能消除多余的逻辑。我们可能需要重新启用这样的工具,以便用户可以去掉不需要的功能。
我的 Embedded World 演讲将举例说明如何使用 Parnas 方法进行系统分解,并且我会探讨嵌入式工程师的市场非常广阔且不断增长。我将介绍一个观点,降低复杂度来使用他人的功能,这对新手和专家都有益处。我会论证,这一机会将造就美好的未来。我还会说明,可编程逻辑公司做的哪些事情伤害了市场,以及需要采取什么样的纠正措施。
对公司来说,让自家产品为最大的客户群体所使用非常重要。在我职业生涯的早期,一家美国汽车公司发生了大规模裁员事件。我记得有篇文章解释说,鉴于裁员的人数之多,概率表明他们至少裁掉了一些爱迪生、福特,还有一两个达芬奇。正是在大型、没有技术含量的市场中,下一位达芬奇将开创他或她的事业。我们需要那些人来成功利用我们的专业知识。
Have questions or comments? Continue the conversation on TechForum, Digi-Key's online community and technical resource.
Visit TechForum