中文 英语
18lk新利
的意见

在RISC-V中管理风险

当今soc的RISC-V高效跟踪。

受欢迎程度

RISC-V处理器的采用正在加速。这项技术和其他技术一样,有利有弊。开放标准对许多开发人员来说意味着自由,但成功取决于围绕RISC-V的支持生态系统的开发。行业合作正在使RISC-V的广泛采用成为可能,其中一个例子就是对RISC-V核心的高效跟踪的引入。

当采用RISC-V处理器核心时,设计人员需要知道RISC-V核心是否经过验证,是否符合标准,是否没有错误。有哪些工具可用于设计、验证、编译、操作系统支持、调试和跟踪?

对于调试和跟踪,您将需要一个解决方案,以确保软件按预期的方式运行,当软件不按您期望的方式运行时会发生什么,以及核心如何与系统的其他部分交互。

处理器跟踪如何降低风险

理解复杂系统中的程序行为是具有挑战性的。技术通常需要停止核心来调试软件(运行-停止调试),但是我们需要非侵入性的、全面的程序行为观察。

RISC-V的高效跟踪提供了查看全速程序执行的可见性。Trace是一种调试技术,在这种技术中,执行的处理器指令被捕获并在芯片上压缩,然后传输到稍后重建程序执行序列的主机软件(图1)。它允许全速观察,以进行取证调试、代码分析、发现随机bug,并避免Heisenbugs(当你研究它们时,它们就会消失)。

图1:处理器跟踪让你实时监控CPU的程序执行情况。

然而,随着soc变得越来越大、越来越复杂,处理器跟踪也面临着自身的挑战。解决方案是更好的编码(压缩)和解码。

RISC-V trace的好处

RISC-V标准采用处理器分支跟踪,而不是试图捕获可能的每条指令,这将导致难以管理的数据量,其中只有程序代码中的分支(或增量)被报告。事实上,RISC-V标准被命名为“RISC-V的高效跟踪”,以表彰这一点。处理器分支跟踪实现了非常高的压缩。更高的压缩使您可以跟踪更多的数据,例如,同时跟踪多个核心或将更大的跟踪历史保存到固定大小的跟踪缓冲区。

RISC-V标准描述了几种可选的和运行时可配置的模式。一些被设计用来进一步提高编码效率,而另一些可以作为软件跟踪解码器开发过程中的调试辅助。

仔细看看RISC-V分支轨迹

跟踪首先报告一个已知的开始地址,解码器软件可以在程序二进制文件(或ELF文件)中找到该地址。只报告程序代码中的分支;分支可以是跳转、调用、返回、中断或异常。假设存在于分支指令之间的所有指令都是按顺序执行的,因此不需要报告它们,这将节省大量跟踪带宽,因为只报告分支是否被占用。

间接跳转、中断和异常(称为“不可推断的程序计数器中断”)发生在程序计数器被更改的数量不能仅从程序二进制文件确定并且需要报告目的地址时。中断(和异常)通常以异步方式发生,并且需要报告正常程序流停止的地址。分支跟踪也称为“指令增量跟踪”,因为增量通常是由分支指令引入的。

作为一个例子,让我们跟随用于计算给定数字的阶乘的代码的执行(图2)。假设寄存器' a0 '包含值2(它将计算阶乘)。跟踪从报告起始地址开始。下面的顺序指令不需要报告。遇到的第一个分支指令没有被取走,而是这样报告。后续指令按顺序执行,不报告。下一个分支被占用,跳转回地址14,并报告被占用。和以前一样,不报告顺序指令。最后,在第二次循环中,最后一个分支没有被使用,并这样报告。

图2:RISC-V处理器分支跟踪示例。

RISC-V规范的高效跟踪有什么特别之处?

西门子的嵌入式分析小组在推动RISC-V跟踪标准的发展方面发挥了重要作用,并且是商用实现的先驱。在RISC-V轨迹工作组成立之前,该小组于2018年1月交付了第一台RISC-V轨迹编码器。2022年5月,RISC-V规范的有效跟踪版本2获得批准,其中包括已经在西门子编码器中实现的数据跟踪。

下载RISC-V规范的高效跟踪(PDF)。

与旧的编码技术相比,RISC-V标准的高效跟踪每条指令需要的比特数要少得多(图3)。更高的编码压缩对于高效跟踪非常重要,原因包括:

  • 跟踪时间更长——无论您是将跟踪存储在芯片内存中,还是存储在跟踪探测设备的固定大小的内存中,更高的压缩都允许您跟踪更长的时间,当触发事件发生在观察到效果之前的一段时间时,这很重要。
  • 更快地跟踪——由于更小的进程几何形状使嵌入式cpu能够以越来越高的时钟速度运行,高效的跟踪压缩确保跟踪不会由于芯片外传输的反压力而丢失。
  • 跟踪更多——更高的压缩可以让您同时跟踪多个内核,从而更容易理解多个内核之间如何相互作用。
  • 更少的带宽——通过高效编码实现的更低的数据速率对片外传输机制的要求更低,因此您可以使用更少的引脚、更低的功率或更简单的接口IP。

图3:高效RISC-V跟踪标准要求每条指令的比特数最少。

RISC-V走线标准实现的高效率确保了它适用于今天和未来的SoC设计。西门子的实现,Tessent增强跟踪编码器(图4),包括RISC-V标准的高效跟踪中的所有强制性和可选特性,加上一个尚未成为标准一部分的重要特性:周期精确跟踪。周期精确跟踪允许您通过识别hart在哪里停止来优化软件性能。增强型跟踪编码器通过报告连续退役指令的周期数,以及没有退役指令的周期数来实现这一点。这些周期计数被编码以压缩信息。

图4:西门子Tessent增强型跟踪编码器是一款功能齐全的RISC-V跟踪解决方案。

Tessent增强型跟踪编码器只是整个系统解决方案的一部分。在系统中调试和跟踪数据并不会随着数据的捕获而结束。除了一系列分析、消息和通信模块之外,Tessent还提供了用于分析和解释跟踪结果的软件。使用Tessent嵌入式分析组件,您可以调试和跟踪从简单的单处理器系统到高度复杂的超标量多处理器系统的任何设计。



留下回复


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

Baidu