硬件/软件接口:描述SoC外设配置和功能及如何与CPU交互

描述

  硬件/软件接口,简称“HSI”,是一个术语,用于描述 SoC 外设的配置和功能以及它们如何与 CPU 交互。

  从寄存器位到访问类型、属性及其控制的功能,这里不同因素的绝对数量在现代 SoC 中绝对是惊人的。例如,如果您有 32 位地址总线,则可以访问 2^32 个内存映射寄存器。如果每个寄存器本身都是 32 位宽,则寄存器位的总数变为 (32 * 2^32) 或 2^37,或 137,438,953,472!

  但是,如果地址总线是 64 位怎么办?如果 SoC 中有多个 CPU 内核怎么办?显然,说典型的SoC架构很复杂有点轻描淡写。

  不可否认,当前的行业趋势只会带来更先进的SoC,其外设数量比以往任何时候都多,功能更多。为了理解这一切,更不用说管理它了,这将需要我们完全重新思考硬件/软件接口。就我们已经走了多远而言,都是如此。..。..以及我们的前进方向。

  当今存在的硬件/软件接口

  在任何给定的时刻,您都有各种各样的不同元素正在处理。多个处理器,包括专门设计的处理器。它们周围是大量的可编程外设。一切都通过片上网络互连汇集在一起。这样的例子不胜枚举。

  在现代CPU的背景下,HSI和指令集架构(ISA)本质上是完全相同的东西。它是软件与硬件“对话”的层。CPU可以是ARM,RISC-V - 实际上并不重要,因为过程保持不变。你为你想要的目标编写一个C或C++程序,你编译它,然后放在CPU上。这就是您与寄存器和外部总线以及 I/O 交互的方式。

  就实际的SoC而言,您还必须处理互连结构,这是将CPU连接到各种可编程从站的原因。这些奴隶可能有自己的记忆,甚至可以成为通往较慢总线的桥梁,具体取决于您所说的独特情况。从站通过读取和写入嵌入式寄存器进行编程。当你从这种类型的宏观角度来看事情时,寄存器和中断是IP(或从属)HSI。

  虽然到目前为止这一直运作良好,但也很难反驳它给任何项目带来一些重大挑战的事实。在最近的一项研究中,仔细研究了芯片功能缺陷的根本原因,设计错误是关键因素。还考虑了规格的变化以及不正确或不完整的规格。所有这些问题都既严重又常见,而且它们都有一个共同点:属于这三个类别中的任何一个的问题中,超过50%的问题直接与HSI层有关。

  以寄存器为例。您必须始终记住,您正在处理各种不同的类型。间接、UART、影子、锁定、中断、FIFO 和分页都只是众多示例中的一小部分。间接寄存器和触发缓冲寄存器等复杂寄存器都有其自身潜在的复杂性,寄存器组或组数组也是如此,它们显然非常不同。

  仅基于此,就很容易理解为什么超过一半的问题可以直接与硬件/软件接口相关联。同样复杂的是,公司通常有自己独特的SoC特定挑战和要求。

  人们很容易对这个消息采取悲观的态度,并将其视为令人恐惧的事情。值得庆幸的是,这也是值得庆祝的事情。这意味着,如果你花时间修复HSI层,你也会修复芯片功能缺陷的大部分根本原因,这些缺陷甚至不应该首先存在。

  您需要的灵活、创新的未来

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

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

  现在可以生成一个基于 UVM 的寄存器模型,该模型涵盖所有验证元素,如封面组、封面点、封面箱、非法箱等 - 为您的实际人类员工腾出宝贵的时间专注于更大、更重要的事情。

  最后,可以使用单个工具来创建测试序列和环境,创建正式的属性和断言,从规范创建UVM序列和固件例程,并帮助实现跨平台HSI层规范,以应该一直存在的方式平等地为各方服务。如果您想了解更多信息,Agnisys 有一个录制的网络研讨会,介绍如何在 HSI 中工作时指定和提高生产力。

  这一切都超越了简单的自动化。它代表了朝着硬件和软件概念的下一次演变迈出的重要一步。

  同样,您特别谈论的是哪种工具并不重要。下一代硬件/软件接口解决方案已经到来,它们不仅有助于解决“老派”做事方式中存在的绝大多数挑战,而且还对几乎所有你能想到的行业都提出了许多重大影响,这些行业太强大了,不容忽视。

  功能安全

  HSI发挥重要作用的众多领域之一与功能安全和ISO 26262标准有关。例如,汽车工程师需要确保其设计中没有单点故障,并遵守ECC - CRC和奇偶校验或其他技术(如三模块冗余(或TMR))的标准。

  出于安全目的,HSI对于某些应用程序在历史上也很重要。你会看到很多情况下,内存映射被一个键序列锁定,其中必须使用特定值向某个地址写入一系列写入,以使状态机完成解锁整个内存映射所需的过程。

  最后,我们有医疗领域 - 硬件/软件接口很重要的领域,因为遵守某些要求是关键任务。此外,他们还对HSI层本身提出了自己独特的要求,从而影响您如何实现某些因素以及未来的情况。

  不幸的是,尽管HSI在理论上很重要,但在执行中,它以最糟糕的方式处于停滞状态。它与以往一样重要,但存在某些挑战,这些挑战绝对阻碍了创新,而不是推动创新向前发展。

  最后

  毋庸置疑,在处理复杂的硬件/软件接口时存在很多挑战。然而,通常情况下,也存在大量的机会。这一领域的进步,IDesignSpec只是众多例子之一,使人们有可能更好地改变他们对HSI的看法。

  硬件/软件接口背后的想法肯定已经走了很长一段路,而且还有很长的路要走。但与此同时,好东西值得为之奋斗,因为“正确的方法”几乎可以保证全面显着提高生产力。“错误的方法”保证了调试时丢失很多周期,以及其他问题,这意味着它根本不是一个真正的选择。

  审核编辑:郭婷

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

全部0条评论

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

×
20
完善资料,
赚取积分