芯片开放社区
直播中

王桂英

7年用户 1259经验值
私信 关注
[技术讨论]

RISC-V工具链简介

作者:云海


最近,RISC-V风靡一时,其开放性和可扩展性引起了人们对可定制处理器的兴趣。因此,许多半导体公司都试图加入这个市场,也吸引了大量的开发者涌入。有关 RISC-V 的文章已成为科技界的新“网红”和开发者关注的焦点。在这些文章中,“工具链”一词经常被提及,但很少被引入。今天,就让我们来揭开它的神秘面纱。


什么是工具链?

工具链是帮助开发者进行程序开发、调试、性能分析和调优等开发优化行为的一组工具。通常,工具链由编译器、汇编器、链接器、调试器、模拟器和其他基本工具组成。集成开发环境 (IDE) 也可以作为图形和综合开发工具包含在内。由于指令集和用户编程模型不同,每种架构都需要一套完整且独特的工具链。


工具链的重要性

有人可能会想,既然工具链是一种辅助工具,它不是必需的,因此不是很重要。这是一半对一半错。在计算机的早期发展中,几乎没有工具链。科学家在穿孔卡片上打孔代表不同的指令代码,计算机从卡片中读取穿孔信息以执行指令流。随着制造工艺和计算机的发展,现代计算机的指令代码存储在ROM、RAM、Flash等介质中。将指令码下载到指定的存储空间需要复杂的控制过程,因此需要程序下载器。随着时间的推移,出现了许多高级编程语言来提高程序开发的效率。如今,超过 99% 的开发人员使用高级编程语言进行业务开发,然后使用编译器将高级语言翻译成目标机器指令下载到机器中执行。因此,编译器已成为工具链的重要组成部分。另外,如果程序有bug怎么办?需要一个调试系统来帮助开发人员找到程序错误的原因。如果程序性能不足怎么办?需要性能分析器来帮助开发人员进行性能调整。因此,对于现代计算机系统来说,一套稳定完整的开发工具链是架构的基础设施,所有的软件操作都依赖于工具链。没有工具链,CPU 和硬件就无法使用,开发人员也无能为力。如果程序中有错误怎么办?需要一个调试系统来帮助开发人员找到程序错误的原因。如果程序性能不足怎么办?需要性能分析器来帮助开发人员进行性能调整。因此,对于现代计算机系统来说,一套稳定完整的开发工具链是架构的基础设施,所有的软件操作都依赖于工具链。没有工具链,CPU 和硬件就无法使用,开发人员也无能为力。如果程序中有错误怎么办?需要一个调试系统来帮助开发人员找到程序错误的原因。如果程序性能不足怎么办?需要性能分析器来帮助开发人员进行性能调整。因此,对于现代计算机系统来说,一套稳定完整的开发工具链是架构的基础设施,所有的软件操作都依赖于工具链。没有工具链,CPU 和硬件就无法使用,开发人员也无能为力。一套稳定完整的开发工具链是架构的基础设施,所有的软件操作都依赖于工具链。没有工具链,CPU 和硬件就无法使用,开发人员也无能为力。一套稳定完整的开发工具链是架构的基础设施,所有的软件操作都依赖于工具链。没有工具链,CPU 和硬件就无法使用,开发人员也无能为力。


在上面的部分中,工具链的重要性从其功能完整性的角度进行了解释。在接下来的部分中,我们将介绍工具链的关键指标,并解释其原理,即工具链不再是辅助工具,而是影响目标架构各个方面的关键路径。一个工具链的关键指标可以分为两个方面:效率和易用性。效率包括编译效率、调试效率、性能分析效率等,其中编译效率尤为关键。如上所述,编译器是一种用于将高级编程语言翻译成目标机器指令的软件。用高级编程语言编写的代码将被翻译成多条机器指令。在编译器功能正常的前提下,编译器所翻译的机器指令的数量和质量也很关键,影响程序运行所需的时间和程序占用的空间。这会影响处理器的性能和代码密度性能。因此,处理器性能体现了硬件和工具链的综合能力。仅比较硬件频率指标没有实际意义。另外,调试效率直接影响到开发者的问题分析和解决效率,决定了处理器是否可以接受,能否被开发者广泛使用。影响程序运行所需的时间和程序占用的空间。这会影响处理器的性能和代码密度性能。因此,处理器性能体现了硬件和工具链的综合能力。仅比较硬件频率指标没有实际意义。另外,调试效率直接影响到开发者的问题分析和解决效率,决定了处理器是否可以接受,能否被开发者广泛使用。影响程序运行所需的时间和程序占用的空间。这会影响处理器的性能和代码密度性能。因此,处理器性能体现了硬件和工具链的综合能力。仅比较硬件频率指标没有实际意义。另外,调试效率直接影响到开发者的问题分析和解决效率,决定了处理器是否可以接受,能否被开发者广泛使用。


RISC-V 工具链的现状

RISC-V 工具链的现状如何?能否满足当前的应用需求?RISC-V 的开放性和基金会持续开展的软件生态系统运作,吸引了大量开发者补充和完善工具链。RISC-V 已经支持了从 GCC 和 LLVM 等编译工具到调试工具和集成开发环境的基本功能。但是,RISC-V 在效率和易用性方面仍有待提升。例如,通过编译获得的程序代码的大小与使用 ARM 获得的程序代码的大小仍然存在很大差异。操作系统的性能调优工具和图形化实时调试工具仍然不存在。开源的集成开发环境只支持简单的调试插件。


剑驰系列工具链

剑驰系列工具链是基于开源工具链、针对不同应用场景和玄铁处理器微架构高度优化的开发工具集合(见图1)。集成玄铁Turbo指令集后,相比开源版本,XT906平均性能提升13%,XT910平均提升20%。基于指令跟踪的性能分析工具与集成开发环境的图形界面相结合,使开发人员可以在短时间内分析和优化性能。此外,还为 MCU 和通用应用程序开发开发了两个集成开发环境,以简化现有项目向 RISC-V 芯片的迁移。




图1 剑驰系列工具链整体框图


概括

工具链是架构中重要且不可或缺的部分。它是基础软件的基础。经过几年的发展,RISC-V 工具链在功能上逐渐完善。相信在接下来的几年里,开源社区开发者和商业公司的共同努力,在编译调试效率和易用性上都会有显着的提升。RISC-V芯片也将被更多开发者所接受,并应用于各种场景。



文章转载自:平头哥芯片开放社区 作者:未来开发者

更多回帖

发帖
×
20
完善资料,
赚取积分