众所周知,使用 "现成 "处理器内核的传统设计方法存在局限性。传统上,软件工程师试图使代码适应所选处理器硬件的限制。另一种方法是对硬件和软件进行共同优化,以创建定制计算解决方案,这一方案也可以定义为:"以软件定义硬件"。
要实现这一愿景,业界面临的一个挑战是处理器设计技能的短缺。本文将详细探讨该行业的技能趋势,以及如何解决现有技能与需求不匹配的问题。
定制计算的机遇
与众不同的差异化产品是系统设计者追求的目标。目前苹果和特斯拉公司已经证明,利用自己的SoC直接增加了终端产品的价值和市场估值。这扭转了数十年来处理器内核被整合为范围越来越窄的处理器IP产品和供应商的局面。
在同一时间段内,半导体的扩展速度大幅放缓,对于许多应用而言,向更精细的新技术节点转移的成本已经高得令人望而却步。其直接结果是,越来越多的公司希望设计出与计算工作量相匹配的各种专用处理单元。
而这种专业化趋势的一个主要障碍是可用的处理器设计技能人才数量有限。
三十年前,有许多处理器架构--即使是微处理器,也有x86、MIPS、SPARC、Z80和PowerPC可供选择。在微控制器领域,许多IDM都有自己的架构。这意味着需要很多处理器设计人员来支持各种可用的架构。
15年前,x86主导了微处理器市场,Arm主导了不断增长的移动电话应用处理器市场,这些市场出现了一些整合。随着专有架构的衰落,Arm嵌入式内核占据了大部分市场份额。结果是处理器开发工作减少,许多设计团队从处理器设计转向从少数IP供应商那里选择处理器产品。
处理器设计工程师的市场继续萎缩,这导致学术界对处理器设计的兴趣减少,具备处理器设计知识的大学毕业生逐渐减少。
如今,就在许多应用出现对定制计算的需求时,处理器设计技能却十分稀缺。那么行业该如何解决这种不匹配?
振兴大学处理器设计专业
从中期来看,增加学习处理器设计的学生人数非常重要。Codasip致力于通过我们的大学计划帮助教育机构扩展课程。该项目旨在通过提供处理器设计自动化和课程材料,培养新一代处理器设计师。
从短期来看,设计自动化可以有效解决技能稀缺的问题。
处理器设计自动化
在过去30年的大部分时间里,处理器硬件设计一直以基于RTL的设计方法为主,并采用标准的EDA流程来验证RTL代码。软件工具链的相应开发通常独立于RTL设计。通常,GNU或LLVM等开源工具链被用作起点。为了确保硬件和软件路径的兼容性,必须严格遵守所选择的ISA。即使是拥有强大微架构技术的公司也很少开发自己的ISA,而可能会从IP供应商处购买昂贵的架构许可。
与SoC上的其他数字块不同,处理器必须同时考虑软件和硬件的方方面面。孤立地开发硬件和软件的效率很低,而且不能很好地分析折衷。
此时诸如Codasip Studio之类的处理器设计自动化工具,可以有效解决这一难题。Codasip Studio使用架构语言(如CodAL)来描述处理器。这些工具根据相同的描述自动生成硬件设计和软件工具链。这种方法允许快速进行架构权衡,并确保硬件和软件的一致性。
尽管有了处理器设计自动化,但只有少数团队拥有创建新指令集和微体系结构的技能组合。具有定制架构的特定应用指令集处理器(ASIP)很少被设计出来,因为很难在一个团队中结合架构、RTL设计、软件工具链和应用软件知识。
RISC-V的出现改变了游戏规则。RISC-V有一个简单的基本指令集,它解决了开发指令集的关键问题。其次ISA是模块化的,这意味着它可以通过结合RISC-V可选的标准扩展和自定义指令来满足特定软件工作负载的需求。这种灵活性是商业专有架构所无法比拟的,即使是可扩展的专有架构也满足不了这一点。
渐进式设计
解决技术短缺的另一种方法是避免设计整个内核。如果RISC-V内核在架构语言中可用,那么就有可能通过简单地设计 "delta",从基线设计中创建衍生设计。首先,可以创建定制指令,其次可以进行微体系结构增强。
在密码学、神经网络和DSP等应用中,RISC-V定制指令可以显著提高资源受限内核的性能。要创建自定义指令,必须对软件进行剖析,以确定计算瓶颈,然后设计新的自定义指令来解决这些瓶颈。
还通过添加微体系结构特性,以改善输入数据与处理器内核之间的接口。一个这方面成功的例子是Codasip应用团队创建了一个先进先出寄存器链和权重存储,以便在小型L31嵌入式内核上高效地实现卷积神经网络(CNN)。
与设计全新内核相比,在现有内核上增加某些功能所需的技能人才要求则很少。例如,嵌入式软件开发人员熟悉剖析和分析计算瓶颈。这些开发人员同时可以设计新的指令,并对软件工作量进行重新定位。而硬件设计人员能够在现有内核设计中增加增量架构特性。
责任编辑:彭菁
全部0条评论
快来发表一下你的评论吧 !