自动化创建特定应用处理器

处理器/DSP

891人已加入

描述

如果说半导体的扩展速度仅仅是放缓而不是失效的话,那么SoC设计者面临的挑战是找到满足更大计算性能需求的方法。在2018年著名的图灵演讲中,Hennessey和Patterson就指出,需要新的方法来解决扩展失败的问题,并预测了 "计算机架构的黄金时代"。众所周知应对这一挑战的一个关键方法是在架构上进行创新,并创造更多的专用处理单元--如领域专用处理器和加速器。

如果您对半导体定律逐渐失效这个话题感兴趣,可通过此链接下载Codasip半导体扩展定律失效白皮书:https://codasip.com/2022/04/08/semiconductor-scaling-is-failing/

自动化创建特定应用处理器!

根据定义,专用的处理器核将根据其工作负荷而有很大的不同。有些可能很容易通过定制现有的RISC-V处理器核来开发。然而,这种方法并不是在每一种情况下都有效,有时可能需要开发一个新的架构。在这种情况下,有必要进行指令集架构(ISA)和微架构空间探索,以找到一个好的设计方案。

传统上,定制内核的开发是通过手动创建指令集模拟器(ISS)、软件工具链和RTL。这个过程可能很耗时而且容易出错。另一种方法是用高级语言描述处理器核,并使用处理器设计自动化来生成ISS、软件工具链、RTL和验证环境。

而第二种方法正是Codasip所能提供的核心技术之一。Codasip Studio作为一个独特的高级处理器设计自动化工具集,它已被应用于RISC、DSP和VLIW设计中。在Codasip,我们利用Codasip Studio 来开发所有的RISC-V处理器核。处理器使用CodAL架构语言进行描述,其中包括指令精确(IA)和周期精确(CA)的描述。

利用Codasip Studio探索指令集

开发一个为特定应用而优化的内核的第一步是定义指令集。如果RISC-V的标准字长如32位或64位是可以接受的,那么相应的基本整数指令集可以是一个很好的起点,用以节省时间。然而,如果选择不同的字长,如8位或16位,那么就不能直接使用RISC-V。相反,应该开发基于较小字长的指令,这一点上,谷歌在开发8位张量处理单元(TPU)时的方法值得借鉴。

codasip

Codasip CodAL

一旦定义了初始指令集,就可以在SDK in the loop中进行迭代探索。我们建议使用Codasip的CodAL处理器描述语言来描述指令集、资源和语义,而不是使用一个开源的工具链或指令集模拟器,如GCC、LLVM或Spike。一旦指令集被建模,软件工具链(或SDK)就可以使用Codasip Studio工具集自动生成。该SDK可以用来描述真实的应用软件,并且可以识别软件中的任何热点。

codasip

SDK in the loop

一旦热点被确认,就可以调整指令集以更好地满足计算负载。CodAL中更新的描述可以用来生成一个SDK,以便进一步分析。这可以通过进一步的迭代重复进行,直到ISA被最终确定。

利用Codasip Studio定义微体系架构

有了一个稳定的指令集,第二步就需要用CodAL来开发微架构。需要决定并行的形式(如多发射问题)或流水线深度或特权模式,这些决定将导致一个新的迭代阶段( HDK in the loop )。

codasip

HDK in the loop

CodAL被用来定义一个使用现有指令集和资源的内核的循环精确描述。反过来又可以用来生成CA模拟器、RTL和测试平台。设计的性能可以用CA仿真器、RTL仿真或FPGA原型来评估。RTL可以进行硅面积和时序分析。如果微架构没有达到其目标,可以对其进行修改并重新生成HDK。

最后一步同时也是最重要的便是根据IA黄金参考来验证最终的RTL。Codasip Studio可以为此生成UVM验证环境。此外,Codasip Studio具有帮助功能覆盖和生成随机汇编程序的工具。当然用户还应该使用自己的定向测试并应用多种验证策略。

审核编辑:汤梓红

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

全部0条评论

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

×
20
完善资料,
赚取积分