硬件与软件接口如何与CPU交互

接口/总线/驱动

1139人已加入

描述

硬件/软件接口(简称为"HSI")是一个术语,用来描述SoC外围设备的配置和功能,以及它们如何与CPU交互。

从寄存器位到访问类型、属性和功能的各种因素的数量,在现代SoC中可能是绝对令人吃惊的。 例如,如果有一个32位地址总线,可以访问2 ^ 32内存映射寄存器。如果每个寄存器本身都有32位宽,那么寄存器位的总数就会变成(32 * 2 ^ 32)或2 ^ 37,或137,438,953,472!但是如果地址总线是64位呢? 如果 SoC 中有多 cpu 核心怎么办? 很明显,典型的 SoC 体系结构是复杂的。

不可否认的是,目前的行业趋势只会导致更先进的SoC,其外围设备的数量将比以往任何时候都多。 为了理解这一切,更不用说管理它,它将要求我们完全重新思考HSI。 无论已经走了多远,还是要去向何方地方,都是如此。

HSI的今天

在任何特定的时刻,都会遇到各种各样的因素。 多个处理器,包括周围有大量可编程的外设。所有的东西都通过片上网络连接在一起。 这个列表还在继续。

在现代 CPU 的背景下,HSI 和指令集架构(ISA)基本上是一样的。 这是软件对硬件进行"会话"的层。 中央处理器可以是 ARM,RISC-V ——这并不重要,因为这个过程保持不变。 为想要的目标编写一个C或 C++ 程序,编译它,然后放到 CPU 上。 这就是如何与寄存器和外部总线进行交互的方式,以及I/O。

在实际的 SoC 方面,还必须处理相互连接的fabric,这是连接CPU和各种可编程从设备的纽带。 这些从设备可能有他们自己的存储,或者甚至可以是一个低速总线,这取决于具体的情况对嵌入式寄存器的读写来编程。 当从这种类型的宏观视角来看事物时,寄存器和中断是IP的HSI。

cpu

图1 CPU/IP HSI

虽然迄今为止,这种做法一直运作良好,但也很难说它给任何项目带来了一些重大的挑战。在最近的一项研究中,仔细研究了芯片功能缺陷的根源,设计错误是主要原因。 规格的变化和规格的不正确或不完整也是其中的一个方面。 所有这些问题的严重程度和它们的普遍性一样,而且它们都有相同的共同点: 超过50%的问题属于这三个类别中的任何一个,直接回到了 HSI 层面。

举个例子,以收银机为例, 总是要记住面对的是各种各样的不同类型。 UART、锁、中断、 FIFO 和分页都只是众多例子中的一小部分。 像间接寄存器和触发缓冲寄存器这样的复杂寄存器都有其潜在的并发症,寄存器组或内存数组也是显然不同的。

仅仅基于这一点,就很容易看出为什么所有问题中有一半以上可以直接与硬件/软件接口联系起来。 同样复杂的是,许多公司都有自己独特的针对 SoC 的挑战和要求。

人们很容易对这个消息采取悲观的态度,并把它看作是可怕的事情。 但这也是值得庆祝的事情,这意味着如果花时间修复 HSI 层,也可以修复芯片功能缺陷。

需要灵活而创新的未来

当想到各种各样的 HSI 信息消费者时,这个列表可能比人们意识到的要长得多。 除了设备驱动程序、固件和硬件验证等因素外,还需要考虑技术文档、诊断、应用软件、硬件设计等等。 对基础规范的一个改变需要在所有这些领域进行重大转变,这就是为什么找到一个解决方案,让这些变化自动渗透到所有相关的视图中。

IDesignSpec (IDS)只是众多例子之一,在解决所有这些问题方面取得了重大进展。 这些类型的解决方案通常与各种不同的输出相兼容,这取决于您的需求,包括但不限于像 Verilog/VHDL,c Model,UVM 等等。它们通常可以从批处理(想象: 命令行)到 Word 和 Excel,到开源的选项,比如 Open Office。

cpu

现在可以生成一个单一的基于 uvm 的寄存器模型,该模型涵盖所有的核查元素,以及更多地腾出宝贵的时间,让实际员工专注于更重要的事情。

最后,可以使用一个单一的工具来创建测试序列和环境,创建正式属性和断言,从规范中创建 UVM 序列和固件例程,并帮助实现跨平台的 HSI 层规范,该规范以一种一直存在的方式平等地为所有各方服务。

这一切都超越了简单的自动化。 它代表了硬件和软件作为概念朝着下一个进化方向迈出的重要一步。下一代的HSI解决方案已经取得了很大进展,它们不仅有助于解决"老派"做事方式中存在的绝大多数挑战,而且对于能想到的几乎每一个强大到不容忽视的行业都存在一些重大影响。

功能安全

国际标准化组织发挥重要作用的许多领域之一与功能安全和 ISO 26262标准有关。 例如,汽车工程师需要确保他们的设计没有单一的故障点,他们坚持这个标准的 ECC-CRC 和奇偶校验,或者其他技术,如三模冗余(或 TMR)。

对于某些用于安全目的的应用程序来说,HSI 也具有重要的历史意义。 你可以看到很多情况下,内存映射是用一个关键序列锁定的,在这个序列中,必须用特定的值将一系列写入某个地址,以使状态机能够通过解锁整个内存映射所需的进程。

最后,医疗是一个硬件/软件接口非常重要的领域,因为遵守某些要求对于任务至关重要。 此外,他们也都把他们自己独特的要求放在 HSI 层本身上,影响了如何实现某些因素以及未来的情况。

不幸的是,正如 HSI 在理论上一样重要,在执行过程中,它在很大程度上处于最糟糕的停滞状态。 这就像以前一样重要,但是有些挑战是绝对阻碍创新的,而不是推动创新向前发展。

在最后

毫无疑问,在处理复杂的硬件 / 软件界面时,存在着许多挑战。 然而,通常情况下,也存在着大量的机会。这一领域的进步,IDesignSpec 只是众多例子中的一个,使得人们有可能改变他们对于 HSI 的看法变得更好

硬件 / 软件接口背后的想法确实有很长的路要走,而且他们还有很长的路要走。 但与此同时,好东西是值得为之奋斗的,因为"正确的方法"几乎保证了整体生产力的显著提高。 "错误的方法"保证丢失大量的周期调试等问题,这意味着它根本不是一个真正的选择。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分