RISC-V设计简单的指令集

联合创作 · 2023-09-26 07:22

RISC-V 指令集是基于精简指令集计算 RISC 原理建立的开放指令集架构,RISC-V 是在指令集不断发展和成熟的基础上建立的全新指令。RISC-V 指令集完全开源,设计简单,易于移植 Unix 系统,采用模块化设计,拥有完整的工具链,同时有大量的开源实现和流片案例。

特性

  • 完全开源。对指令集使用,RISC-V 基金会不收取高额的授权费。开源采用宽松的 BSD 协议,企业完全自由免费使用,同时也容许企业添加自有指令集拓展而不必开放共享以实现差异化发展。
  • 架构简单。RISC-V 架构秉承简单的设计哲学。体现为:在处理器领域,主流的架构为 x86 与 ARM 架构。x86 与 ARM 架构的发展的过程也伴随了现代处理器架构技术的不断发展成熟,但作为商用的架构,为了能够保持架构的向后兼容性,其不得不保留许多过时的定义,导致其指令数目多,指令冗余严重,文档数量庞大,所以要在这些架构上开发新的操作系统或者直接开发应用门槛很高。而 RISC-V 架构则能完全抛弃包袱,借助计算机体系结构经过多年的发展已经成为比较成熟的技术的优势,从轻上路。RISC-V 基础指令集则只有 40 多条,加上其他的模块化扩展指令总共几十条指令。 RISC-V 的规范文档仅有 145 页,而“特权架构文档”的篇幅也仅为 91 页。
  • 易于移植。现代操作系统都做了特权级指令和用户级指令的分离,特权指令只能操作系统调用,而用户级指令才能在用户模式调用,保障操作系统的稳定。RISC-V提供了特权级指令和用户级指令,同时提供了详细的RISC-V特权级指令规范和RISC-V用户级指令规范的详细信息,使开发者能非常方便的移植linux和unix系统到RISC-V平台。
  • 模块化设计。RISC-V 架构不仅短小精悍,而且其不同的部分还能以模块化的方式组织在一起,从而试图通过一套统一的架构满足各种不同的应用场景。用户能够灵活选择不同的模块组合,来实现自己定制化设备的需要,比如针对于小面积低功耗嵌入式场景,用户可以选择 RV32IC 组合的指令集,仅使用 Machine Mode(机器模式);而高性能应用操作系统场景则可以选择譬如 RV32IMFDC 的指令集,使用 Machine Mode(机器模式)与 User Mode(用户模式)两种模式。
  • 完整的工具链。对于设计 CPU 来说,工具链是软件开发人员和 cpu 交互的窗口,没有工具链,对软件开发人员开发软件要求很高,甚至软件开发者无法让 cpu 工作起来。在 cpu 设计中,工具链的开发是一个需要巨大工作量的工作。如果用 RISC-V 来设计芯片,芯片设计公司不再担心工具链问题,只需专注于芯片设计,RISC-V 社区已经提供了完整的工具链,并且 RISC-V 基金会持续维护该工具链。当前 RISC-V 的支持已经合并到主要的工具中,比如编译工具链 gcc, 仿真工具 qemu 等。
  • 开源实现。RISC-V 在主流代码托管平台上有大量的开源实现项目,可供开发者学习交流。
  • 成功的流片案例。已经有机构和商业公司流片的案例。
  • 社区贡献。RISC-V 发展到今天已经建立起了完善的开源社区,拥有完整的工具链维护,大量的开源项目。

 

浏览 8
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报