处理器扩展性有什么重要之处?
EETOP创芯网(易特创芯):国内著名的老牌电子工程师社区及半导体行业门户网站(150万会员)
blog.eetop.cn edu.eetop.cn
许多人认为可扩展性是增加指令的能力,然而当基础设施和通信被视为机会空间的一部分时,可能会获得更大的收益。例如,通过专用硬件通道实现处理器到处理器的直接通信,与对称多处理(SMP)等旧技术相比,可以提供巨大的功耗和性能优势。这些旧机制依赖于耗电大的总线体系结构和共享内存之间的通信。
分布式处理还能实现更大程度的专业化,但要想从中受益,整个流程必须变得足够优化,使增加的开发成本能够证明性能的提升是合理的。ISC-V有助于将其推向标准设计实践,因此该行业似乎正处于转折点。
西门子业务部门Mentor的设计验证技术营销总监Neil Hand说:“由于遗留用途或存在的基础结构,整个行业仍然仍然致力于标准处理器和标准体系结构。” “他们通过硬件加速器处理了所需的任何其他功能。你还有另一群人开始研究RISC-V等替代产品。”
Arm的策略副总裁Tim Whitfield表示:“从历史上看,挑战在于将自定义指令的提供仅限于利基应用,在这些应用中,必须权衡额外的设计工作,功能和对定制软件工具链的需求。汽车和物联网业务线。“管理软件的成本和开销超过了性能或功耗优势。通常,该用途仅限于软件或用户界面未暴露给第三方的嵌入式应用。”
性能的改善迫使这些替代方案。“如果无法从标准的固定指令集(ISA)处理器中获得所需的性能,那么你将不得不在处理器外部添加硬件并以某种方式进行连接,” Cadence Tensilica集团产品营销总监George Wall说。“借助可扩展的ISA,你可以将该特定功能作为一条指令或一组指令进行加速,并满足整体性能要求,而不必加载到固定硬件上。”
这样做的愿望当然不是什么新鲜事。"一直以来,人们都梦想着把C代码神奇地移植到一个可以优化运行该C代码的定制处理器上,"Synopsys公司ARC DSP处理器的产品营销经理Graham Wilson说。"现实情况是,要实现这个梦想并不像最初想象的那样容易,但可配置和可扩展的处理器让他们更接近梦想。能够快速响应市场的变化、新的算法或以前算法的不同实现方式,为定制指令提供了最大的成功,使人们能够获得更好的性能。"
RISC-V的影响
添加指令并不是什么新鲜事。"很多处理器已经出现了一段时间,但它们受到了非常严格的控制,"Mentor的Hand说。"他们允许你添加特殊指令,但这是在不干扰处理器主解码结构的情况下。RISC-V所改变的是,现在有了一个可重用的软件生态系统,使人们更容易考虑这些专用处理器。我们看到越来越多的人希望建立或修改他们自己的软件,因为他们不必在软件生态系统上投资。在尝试探索新的架构时,软件生态系统总是代价高昂的部分。”"
这种选择以前从未出现过。"将模块化设计方法与基于开源ISA创建自定义指令的能力结合起来,对处理器来说是一个突破性的想法,"Aldec营销总监Louie De Luna说。"模块化方法可以覆盖更广泛的领域,而定制指令可以解决更多的领域特定要求。"
而且因为RISC-V是开放的,所以可能性是无限的。"RISC-V允许你对它进行扩展,或者尝试使用许多内核的配置,你需要自己的指令来做一致性和移动数据,"Imperas软件公司的CEO Simon Davidmann说。"也许你想在它们之间有一个FIFO。开放式ISA的想法是,它让你有能力添加简单的东西,比如自定义指令来做特定的算法,但它也允许你连接数组或进行通信。RISC-V给你的是创新的自由。"
扩展类型某些算法可以从指令的添加中获益。"它可能是一个VLIW类型的指令,或者只是一个指令,它结合了两个非常常见的操作,比如在一个移位中添加,"Cadence的Wall说。"根据扩展和能力,你有时可以将一些决策指标纳入该数据处理中。你可能有一个指令说,'如果这个条件为真,我将从这个存储器位置加载我的寄存器。否则,我将保留旧的值'。这些类型的指令在图像处理中是非常有价值的。"
添加扩展不仅仅是添加计算。"你还可以添加接口,"Wall继续说道。"通过这些接口,人们可以连接外部硬件块。了解处理器和外部硬件块之间的带宽和吞吐量是系统架构的一个基本部分。你需要提出一个系统架构,然后提出你打算执行的算法。"
这将其从软件扩展转换为体系结构扩展。“你可以添加自己的自定义接口-无论是GPIO,FIFO寄存器,辅助寄存器还是可以镜像硬件模块的自定义寄存器-这样它们就可以与硬件紧密耦合,” Synopsys的Wilson说道。“这为开发人员提供了一个最佳处理器,该处理器非常紧密地耦合并连接到他们的系统中,并且通过接口的扩展来实现。然后创建指令以访问那些GPIO,FIFO和辅助寄存器。”
多核体系结构正在推动这种类型的扩展。Imperas的Davidmann说:“当你拥有一系列处理器时,它们往往会坐在一个矩阵中,与周边设备进行数据交换。” “也许它们之间有一个FIFO。你可以通过编程方式执行此操作,但是添加自己的指令来控制通信结构的效率要高得多。”
然而,也有一个缺点。"现在你有这么多的自由度,你必须小心使用这些自由度中,"Hand警告说。"你的每一个改变都会对验证产生影响。"
量化收益人们扩展处理器会期望什么?“在DAC 2017上,Microsemi报告了为其基于RISC-V的音频处理器产品创建定制的DSP指令,” Codasip的高级市场总监Roddy Urquhart说。“他们的定制处理器提供的性能是原始内核的4.24倍,但仅需要增加48%的硅面积。由于功耗与时钟频率成正比,因此,由于处理器面积较大,降低时钟频率比降低功率要明显多。此外,代码大小缩小到原始大小的43%,并具有相关的区域成本和功耗优势。”
收益可能更大。Wall说:“我们有许多使用Tensilica内核来加速AES加密的客户。” “如果要在纯处理器上运行该加密,然后将其与具有处理器扩展的加密进行比较,则加密速度大约快200倍。这是一个极端的情况,但它为你提供了各种可能性的示例。标准RISC处理器中的基本说明并非在设计时就考虑了AES。需要一些特殊的XOR和移位。能够添加这些功能不仅增加了数据计算量,而且还使你可以将一些决策捕获到硬件中,因此无需执行处理器中昂贵的分支。”
它可以提供较小的芯片。"除了性能之外,你可能会看到功率和面积方面的收益。在功率方面,你可能需要更少的指令来执行一些操作。如果你打算加速一些关键基准,这些基准消耗了70%的处理器负载,你加速这些基准,你以将实现算法所需的时钟周期数减半。这就转化为一个更低能耗的解决方案。虽然由于额外的指令,核心可能会大一点,但你由此产生的功耗却会少很多。如果你合并了大量的指令,也会减少你的指令代码大小,从而减少你的指令内存大小,并会减少你在访问内存时的功耗。"
而结果可能是一个更便宜的解决方案。"人们对处理器进行了改变,使他们的软件速度得到了数量级的提升,"Hand说。“这使他们可以转到较旧的过程节点,并且实际上可以节省金钱,而无需对设计进行太大的改动。”
性能分析
这一切都要从分析开始。"并非所有的计算都适合通用处理器内核,"Codasip的Urquhart说。"如果对软件进行剖析,就可以确定计算热点,让设计人员研究如何扩展指令集,以便更好地实现设计目标。设计人员可以创建额外的指令,然后使用分析工具来反馈性能瓶颈是否得到了解决。"
你可以非常快速地通过你的EDA流程来得出一个门级的实现,然后你通常可以得到一个粗略的功率数量级估计。这样就可以很容易地对两种不同的实现进行比较。你可能会看到,功率上升了10%,但我的应用性能却提高了一倍。"
这不是一个开环过程。“你需要保持严格控制,因为你正在向内核添加逻辑,” Wilson说。“这是一个迭代过程,需要开发指令,进行物理实现,评估门数,计算最大时钟频率等。只要你坚持这一点,如果考虑到指令存储器,你将获得更低的功耗和更小的解决方案。”
维护工具链
如果扩展时工具链被破坏,扩展带来的收益就会消失。一些解决方案将这一点建立在扩展的方式中,而另一些解决方案则提供了更多的灵活性,但也可能让你陷入更多的麻烦。作为最低限度,保持RISC-V的工具兼容性意味着你仍然符合标准。
许多解决方案从对处理器的单一描述开始。“扩展指令集后,将自动生成必要的参考ISS,RTL,软件工具链和UVM验证环境以及用于检查RTL与ISS匹配的测试,” Urquhart说。“与手动或部分手动创建对ISS,RTL,编译器和验证环境的扩展的替代方法相比,这种高度自动化的方法具有更高的成本效益和更低的风险。”
有些解决方案可能比其他方案走得更远。“我们也为指令扩展使用单一来源,并且该单一来源指导硬件设计和软件设计,”Wall说。软件工具链与硬件一起生成。一个关键的方面是使用这些扩展进行编程的便利性。如果你查看你的标准RISC指令集,编译器会决定哪些指令需要被发出,以及这些指令使用的资源如何被调度。当进行扩展时,这并不容易,但编译器可以做出决定,即使使用定制指令。”
其他解决方案确保工具链不会损坏。“我们采用的方法与许多其他体系结构不同,” Arm的Whitfield说。“我们的方法可以添加自定义数据路径指令,而对硬件或软件生态系统的影响最小。向任何CPU实现中添加自定义逻辑的影响之一是要求确保不仅新指令可以正常工作,而且还没有破坏CPU的任何其他方面。验证费用可能非常可观。我们的方法减少了对验证的影响,并使软件工具和生态系统保持一致。”
这种方法对许多人来说都是明智的。Davidmann说:“在Arm解决方案中,它们并没有赋予人们完全自由地添加任何旧指令的权利。” ”这是一个非常干净的解决方案,因此你可以添加它并以受控方式扩展它。它使你可以自由地进行算法改进所需的某些扩展,但是这样做的方式不会损坏Arm架构的其余部分。这意味着你不需要重新验证所有内容。在RISC-V世界中,没有任何保障措施。”
验证成本可能导致收益减少。“虽然可以将软件自定义的影响保持在更加本地化的位置,但是使用硬件则要困难得多,” OneSpin Solutions的设计验证专家NicolaeTusinschi说。。“在流水线的RTL处理器中添加一条自定义指令,对于可能隐藏错误的功能异常情况而言,具有巨大的意义。这些公司需要的是严格的验证流程,该流程可以在ISA(包括自定义说明)和其工具生成的RTL实现之间实施某种等效检查。这类似于使用等效性检查工具来验证RTL模型与FPGA供应商综合工具生成的FPGA网表。
结论处理器的可扩展性会对设计产生深远的影响。这可以通过显着提高性能和降低功耗来体现。它打开了过去从未考虑过的体系结构。
但是,走这条路的公司必须充分意识到将要遇到的障碍和隐性成本,尤其是在某些技术仍处于起步阶段时。
资料推荐