从事科技领域的相关工作有一个很大的好处,即我们一直在进步。实际上,这种进步对我们这些从业者们是一种奖赏。创新孕育着成功,但是有一点矛盾的是,工程师们又对自己的所学相当固执,他们倾向于“管用即可”。所以,他们自然而然地挂在嘴边的一些话就是“如果没有故障,就不要修复”,或者“把事情弄得越简单、越傻瓜化越好”。
但是有时候,我们有机会扔掉所有包袱从头开始,用新鲜有活力的新生事物代替多年来被生拼硬凑起来的科学怪物。
这就是我们面对 RISC-V 时的立场。
RISC-V 代表一个干净的原生态。它为构建适合 21 世纪产品的平台提供了绝佳的机会。从技术上讲,因为它是从头开始进行的一种“更好”的架构。从商业上来说,因为它基于开源模式,所以必将打破现有处理器领域内的霸权。它具有强大的创造力,因为它能帮助我们在目前尚未想到的领域开发产品。
而且,RISC-V 创造的机会远远超出了 ISA(指令集体系结构)和 CPU 内核的范畴。它有着更宏大的使命,即支持开发人员构建系统,并部署到 21 世纪的科技生态系统中。
最近,随着 RISC-V 基金会批准了新的处理器跟踪调试标准,意味着 RISC-V 又向前迈出了一大步。很长一段时间以来,实时调试领域一直面临着标准不足和创新不足的困扰。直到现在,很多工程师依然依赖于三十五年发明的 JTAG,如果您还不到三十五岁,友情提示一下,那是怪奇物语第三季上映的年代,如果您年龄足够大,那么那是英特尔发布 386 的年份。Nexus-5001“仅”使用了 20 年(尽管它在 2012 年进行了更新)。 Arm 的 CoreSight 尽管自诞生以来一直有所演进,但是它的起源也可以追溯到 20 世纪后期。这些调试标准都不是面向运行频率在 GHz 的现代多核、多线程 CPU 设计的。
因此,对于 RISC-V 处理器跟踪调试小组以及整个社区来说,定义出新的跟踪调试标准可谓一箭双雕。首先,它可以摆脱历史包袱,让您在一张空白的画布上从零开始;其次,通过为开发人员提供一个统一的独立于供应商的标准,给了他们真正的信心,也有助于整个开发社区的协作。因为众所周知的是,对于任何开源项目来说,分叉太多都会酿下祸根。
从技术上来讲,RISC-V 跟踪调试小组考虑了三个主要方面:
RISC-V 内核和跟踪调试编码器之间的接口; 在编码器中实现高效压缩分支跟踪算法; 编码器输出的有效数据包格式。
这些方面都比较有挑战性:现代系统通常有许多内核,当您跟踪调试它们时会生成大量数据,因此我们需要调试标准解决如何有效率地处理片上和 I/O 需求的问题。
我相信,跟踪测试小组提出的方案满足所有的要求,而且适用于所有类型的系统,包括精简的单处理器芯片一直到复杂的多核设计。基准测试表明,为该标准选择的压缩分支跟踪算法对每条指令产生的数据大约是原有的十分之一,比旧算法的效率高得多。这也证明了,当您能够从一个干净的画布从头开始时,你能做得多么成功。
我们现在需要做的是继续进行创新和进一步标准化。RISC-V 国际协会内部新成立的跟踪和调试常设委员会正在研究标准化的下一步工作:鼓励多样性、开放性和创新,同时避免出现经常困扰标准制定工作的分叉,特别是开放系统方法。我们应该以崭新的眼光看待实现这一目标的新技术,同时摆脱掉可能让我们裹足不前的历史包袱。
RISC-V 的机遇就在眼前:为了抓住这个机遇,我们应该瞅准眼前的道路,而不是回头看那来时路。