参考:https://www.eet-china.com/mp/a39867.html
RISC-V和ARM都是基于**精简指令集计算 (RISC)**原理建立的指令集架构。他们的主要区别在于他们的授权模式和开放性:
- ARM 是一种专有的指令集架构,众多使用ARM架构的厂商,只能根据自身需求,调整产品频率和功耗,不得改变原有设计。
- ARM架构和RISC-V架构都源自1980年代的精简指令计算机RISC,两者最大的不同就在于其推崇的大道至简的技术风格和彻底开放的模式。
对于开发应用程序的人来说,性能和功耗更多地取决于具体的芯片实现,而不是指令集架构本身。因此,无论你选择使用ARM还是RISC-V,你都需要考虑你的应用程序的特定需求,例如处理能力、功耗、成本等。然而,如果你主要关注的是编写应用程序,而不是处理器设计,那么这些差异可能对你来说并不重要。你的主要关注点可能会更多地集中在如何最有效地使用你选择的平台和工具,以及如何编写高效、可维护的代码。
-
开放性与专有性:
- RISC-V是一种开源架构,这意味着任何想要在其设计中包含RISC-V CPU的设计师都可以自由地使用RISC-V。
- 而ARM是一种专有的指令集架构,使用ARM架构的厂商,只能根据自身需求,调整产品频率和功耗,不得改变原有设计。
-
生态系统:ARM的生态系统相对成熟,拥有广泛的支持和丰富的开发工具。而RISC-V虽然也有全套开源免费的编译器、开发工具和软件开发环境,但相比ARM的商用编译器和IDE而言,还颇有差距。
-
指令集特性:ARM指令集中的指令几乎全部都带有cond条件码,也就是说ARM的一条指令其实做了两件原子操作——判断+执行。而RISC-V指令集做到了指令功能的平衡与规整,平衡意味着在空间和时间上都控制得当,规整意味着解码单元会很好做,有大量逻辑门可以复用。
-
授权模式:ARM是需要授权费用的,而RISC-V是免费的。
因此,开发者在选择使用RISC-V或ARM时,需要根据自己的具体需求和应用场景来决定。例如,如果你需要更多的灵活性和定制性,可能会选择RISC-V;如果你需要一个成熟的生态系统和丰富的开发工具,可能会选择ARM。
- 指令集:ARM和RISC-V都有自己的指令集,这些指令集定义了处理器可以执行的基本操作。例如,RISC-V的指令集比ARM更简洁,这可能会影响编程人员如何编写和优化底层代码。
- 中断处理:不同的处理器架构可能会有不同的中断处理机制。这可能会影响底层编程人员如何编写中断处理程序。
- 内存管理:ARM和RISC-V可能会有不同的内存管理策略,这可能会影响底层编程人员如何管理内存。
- 开发工具:由于RISC-V是一个相对较新的开源架构,其开发工具可能不如ARM成熟。这可能会影响底层编程人员的开发效率。
- 性能优化:由于ARM和RISC-V的架构差异,底层编程人员在进行性能优化时可能需要采用不同的策略。
总的来说,虽然大部分的编程工作都可以在不同的处理器架构上进行,但是在进行底层编程时,理解处理器架构的差异是非常重要的。
RISC-V和ARM都是指令集架构(ISA),它们定义了处理器可以理解和执行的指令集。然而,它们之间存在一些关键的区别:
-
开源与专有:RISC-V是开源的,这意味着它是免许可和免版税的。任何人都可以使用和修改RISC-V的指令集,甚至可以添加新的指令。相反,ARM是专有的,这意味着任何想要在其设计中包含ARM CPU的设计师都必须向ARM支付版税。
-
指令集的复杂性:RISC-V的基础指令集只有40多条,加上其他的模块化扩展指令总共几十条指令。而ARM有超过1000条指令。
-
微架构:实现了一个指令集的CPU叫微架构。例如,ARM的Cortex-A7处理器,就是一个实现了ARMv8指令集的具体CPU,是一个微架构。
VLD v0, x10 # 将整数寄存器x10内存储的内存地址处的数据加载到向量寄存器v0中
而在ARM中,加载指令可能看起来像这样:
LD1 v0.16b, [x10] # 在内存地址x10处加载16个字节的值
这两条指令都是从内存中加载数据,但是由于它们使用的指令集不同,因此它们的语法和行为也有所不同。
ARM和RISC-V都是处理器架构,但设计理念和应用场景有所不同。
ARM:
- 商业化:ARM是一家公司,其架构是专有的,使用需授权。
- 广泛应用:ARM架构在手机、平板等移动设备中非常常见。
- 生态系统:ARM有成熟的软件和硬件生态系统,支持广泛。
RISC-V:
- 开源:RISC-V是开源的,任何人都可以自由使用和修改。
- 灵活性:设计简洁,用户可以根据需求自定义扩展。
- 新兴领域:RISC-V在物联网、嵌入式系统等新兴领域逐渐流行。
主要区别:
- 授权:ARM需授权,RISC-V免费开源。
- 生态系统:ARM成熟,RISC-V正在发展中。
- 灵活性:RISC-V更灵活,ARM更标准化。
总结:ARM适合需要成熟生态系统的场景,RISC-V适合需要定制化和低成本的应用。
专业术语解释
ARM:
- 专有架构:ARM架构是ARM Holdings开发的专有指令集架构(ISA),采用精简指令集计算(RISC)设计理念。
- 授权模式:ARM采用IP授权模式,包括处理器核心(如Cortex-A系列)和架构授权(如ARMv8)。
- 生态系统:ARM拥有成熟的软件工具链(如ARM Compiler)、操作系统支持(如Linux、Android)和硬件生态系统(如SoC厂商)。
RISC-V:
- 开源架构:RISC-V是基于RISC理念的开源指令集架构,由RISC-V基金会维护。
- 模块化设计:RISC-V采用模块化设计,基础指令集(RV32I/RV64I)固定,扩展指令集(如M、A、F、D)可选。
- 生态系统:RISC-V的生态系统正在快速发展,工具链(如GCC、LLVM)、操作系统(如Linux、FreeRTOS)和硬件实现(如SiFive、Western Digital)逐步完善。
开发注意事项
ARM:
- 工具链:开发时需使用ARM提供的工具链(如ARM GCC、Keil MDK),并注意编译器优化选项。
- 调试支持:ARM芯片通常支持JTAG/SWD调试接口,需使用专用调试工具(如J-Link、ST-Link)。
- 功耗管理:ARM处理器通常具有复杂的电源管理单元(PMU),需合理配置低功耗模式。
- 生态系统兼容性:需确保使用的库和驱动程序与目标ARM内核(如Cortex-M、Cortex-A)兼容。
RISC-V:
- 工具链:RISC-V开发通常使用开源工具链(如RISC-V GCC、LLVM),需注意扩展指令集的支持。
- 调试支持:RISC-V调试接口(如JTAG)尚不统一,需根据具体芯片选择调试工具(如OpenOCD)。
- 扩展指令集:RISC-V的模块化设计允许自定义扩展,但需确保工具链和操作系统支持这些扩展。
- 生态系统成熟度:RISC-V的生态系统仍在发展,部分库和驱动可能不完善,需自行移植或优化。
总结:ARM适合需要成熟生态和商业支持的项目,RISC-V适合需要定制化和开源灵活性的场景。开发时需根据架构特点选择合适的工具链和调试方法,并注意生态系统的兼容性。
在ARM的语境中,IP指的是知识产权(Intellectual Property),具体来说,ARM公司并不直接生产芯片,而是通过授权其处理器设计(即IP核)给其他公司使用。这些公司可以根据ARM的设计制造自己的芯片。
ARM的IP授权模式
ARM的IP授权主要分为以下几种类型:
-
处理器核心授权(Core License):
- ARM提供已经设计好的处理器核心(如Cortex-A、Cortex-M系列),客户可以直接将这些核心集成到自己的芯片设计中。
- 例如,高通、苹果等公司使用ARM的Cortex-A系列核心来设计自己的移动处理器。
-
架构授权(Architecture License):
- ARM允许客户基于ARM指令集架构(ISA)设计自己的处理器核心。
- 例如,苹果的A系列芯片和华为的麒麟芯片就是基于ARM架构授权设计的自定义核心。
-
物理IP授权(Physical IP License):
- ARM还提供与制造工艺相关的物理IP,如标准单元库、内存编译器、接口IP等,帮助客户优化芯片的物理实现。
为什么IP授权重要?
- 灵活性:客户可以根据自己的需求选择不同的授权方式,从现成的核心到完全自定义的设计。
- 成本效益:使用ARM的IP可以大大缩短芯片设计周期,降低研发成本。
- 生态系统:ARM的IP授权模式促进了广泛的生态系统发展,包括工具链、操作系统和应用程序的支持。
类比理解
可以把ARM的IP授权模式想象成乐高积木:
- 处理器核心授权:就像购买现成的乐高套装,直接拼装即可。
- 架构授权:就像购买乐高基础积木,自己设计独特的模型。
- 物理IP授权:就像购买乐高的特殊零件,用于优化你的设计。
总结:ARM的IP授权模式允许客户使用ARM设计好的处理器核心或基于ARM架构设计自己的核心,从而快速、高效地开发芯片。这种模式是ARM商业模式的核心,也是其成功的关键之一。