调试复杂的 RISC-V 处理器

文摘   2024-11-14 07:00   重庆  
RISC-V 处理器正迅速成为主流。开放标准意味着许多开发人员的自由,但成功取决于围绕 RISC-V 的支持生态系统的发展。行业合作使 RISC-V 的广泛采用成为可能,一个例子就是引入 RISC-V 内核的有效跟踪。
调试和分析包含数十或数百个内核并每秒处理数十亿条指令的 RISC-V 处理器可能具有挑战性。软件是否按预期运行?验证团队是否看到与固件工程师或应用程序开发人员相同的行为?所有内存块是否都得到了有效利用?是什么导致了系统中的硬件和软件死锁?如何优化指令?如何追踪间歇性发生的随机长尾问题?
软件工具可以提供一些答案,但它们通常会使用影响应用程序运行方式的系统资源,这可能会导致不规则的软件行为或需要大量仪器来捕获识别问题根本原因所需的信息。SoC 开发团队越来越要求任何 RISC-V 核心都包含处理器硬件跟踪解决方案,当设备中发生感兴趣的事件时,他们可以使用该解决方案重建准确的指令执行序列。

硬件和软件
虽然软件工具和流程仍然是调试和分析任务的支柱,但它们需要与系统组件紧密集成的硬件模块捕获的关键数据来确定问题的根本原因(图 1)。硬件和软件工具共同提供确定性解决方案,可以捕获准确而可靠的数据,有时需要数周或数月的时间,同时避免在验证、应用程序开发和测试期间引入额外的错误。可以在芯片上或芯片外实时调查关键问题,硬件捕获的数据可以存储在芯片外以供进一步分析、性能优化和代码覆盖率审查。
图 1 – 处理器跟踪让您可以实时监控 CPU 的程序执行情况。

高效的处理器跟踪
处理器跟踪是一种非侵入式调试技术,它使用硬件模块捕获、编码并向片外发送已执行处理器指令的记录,软件可以重建程序的精确执行顺序。RISC-V 高效跟踪 (E-Trace) 标准不是捕获所有可能的指令,而是使用处理器分支跟踪,该跟踪报告程序二进制文件 (ELF 文件) 中的已知起始地址,然后捕获分支(跳转、调用、返回、中断或异常)以及是否执行分支。假定分支指令之间存在的所有指令按顺序执行,无需报告它们。处理器分支跟踪可以实现非常高的压缩率,从而可以捕获更多跟踪数据并同时跟踪多个内核。具有最高压缩率的最高效跟踪编码器也意味着对片外接口的要求更少,因此可以使用不太复杂的接口 IP。
西门子 RISC-V 增强型跟踪编码器(图 2)支持 RISC-V 高效跟踪 (E-Trace) 标准中的所有强制和可选功能,以及尚未成为标准一部分的功能:周期精确跟踪,报告连续退出指令的周期数,以及没有退出指令的周期数。
图 2 – 功能齐全的 RISC-V 跟踪解决方案。

提供附加功能
调试处理器不仅仅是处理器跟踪。硬件分析子系统可以包括通过消息结构实时相互通信的附加模块。例如,当发生感兴趣的事务或事件时,管理来自主机软件的函数调用(例如停止、启动和断点)的处理器模块可以触发跟踪编码器输出跟踪数据并指示直接内存访问 (DMA) 模块读取系统内存值。相同的硬件 DMA 模块还可用于显著减少上传可执行和可链接格式 (ELF) 文件以及运行新的软件迭代或启用重置寄存器所需的时间。
硬件计数器提供了一种极其有效的方法来捕获有用的数据,例如执行指令或调用函数的次数。printf 等软件函数可以被嵌入在 ELF 文件中的硬件宏替换,这些宏需要几个周期才能捕获并输出到主机工具,以便使用静态仪表模块进行解码和分析。这些计数器和宏可用于提供广泛的分析信息和性能指标,对应用程序行为的影响极小或没有影响。

总结
在 RISC-V 设计中添加硬件模块以支持软件调试工具至关重要,尤其是对于复杂的设计。虽然需要在设计阶段早期考虑额外的面积成本和验证要求,但嵌入式软件工程师的收益是巨大的。硬件捕获的数据可以为工程师提供他们所需的信息,以了解他们的应用程序在最严格的实际操作条件下如何在设备上运行。
硬件和软件工具的组合可以缩短开发时间,提高处理器和应用程序的性能,提高代码覆盖率并缩短关键的上市时间。

软硬件协同设计 HW-SW Co-Design
欢迎后台留言,AI 客服全天在线。脱离物理硬件,开发测试和调试软件。基于虚拟原型的软硬件协同设计,提前一年实现产品上市创收,降低一半开发时间。
 最新文章