当前位置: 首页 > 软件库 > 其他开源 > RISC-V >

RISC-V

设计简单的指令集
授权协议 BSD
开发语言
所属分类 其他开源、 RISC-V
软件类型 开源软件
地区 不详
投 递 者 戴高远
操作系统 未知
开源组织 Linux 基金会
适用人群 未知
 软件概览

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 发展到今天已经建立起了完善的开源社区,拥有完整的工具链维护,大量的开源项目。

 

  • 本文转自什么是RISC-V 向作者致敬。 RISC-V读作RISC Five,也即第五代精简指令处理器 什么是RISC和CISC? RISC(精简指令集计算机,Reduced Instruction Set Computer-RISC)和CISC(复杂指令集计算机,Complex Instruction Set Computer-CISC)是CPU的两种架构,区别在于不同的CPU设计理念和方法。早

 相关资料
  • labeled-RISC-V —— 标签化RISC-V项目 该项目基于 RocketChip 增加了标签功能, 给硬件请求打上标签, 赋予硬件区分, 隔离和优先化三种新能力。 目录结构: .├── board # supported FPGA boards and files to build a Vivado project├── boot

  • RISC-V 与中断相关的寄存器和指令 [info] 回顾:RISC-V 中的机器态(Machine Mode,机器模式,M 模式) 是 RISC-V 中的最高权限模式,一些底层操作的指令只能由机器态进行使用。 是所有标准 RISC-V 处理器都必须实现的模式。 默认所有中断实际上是交给机器态处理的,但是为了实现更多功能,机器态会将某些中断交由内核态处理。这些异常也正是我们编写操作系统所需要实现的

  • 本文介绍了如何移植 RT-Thread Nano 到 RISC-V 架构,以 Eclipse GCC 环境为例,基于一个 GD32V103 MCU 的基础工程作为示例进行讲解。 移植 Nano 的主要步骤: 准备一个基础的 Eclipse 工程,并获取 RT-Thread Nano 源码压缩包。 在基础工程中添加 RT-Thread Nano 源码,添加相应头文件路径。 适配 Nano,主要从 中

  • 在移动端应用里,为了便于代码组织,通常我们要将组件放在各个路由的 .vue 文件里,但是因为此时组件并不在 body 下,加上定位,overflowscrolling 设置等原因,会出现遮罩在弹层之上,z-index 失效等问题。 因此我们推荐在纯弹窗类组件比如 Alert Popup XDialog 等组件上使用 v-transfer-dom 实现自动移动到 body 下,解决以上问题。 必须有

  • 本文向大家介绍vue学习笔记之动态组件和v-once指令简单示例,包括了vue学习笔记之动态组件和v-once指令简单示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了vue动态组件和v-once指令。分享给大家供大家参考,具体如下: 点击按钮时,自动切换两个组件 <component :is="type"></component>,当点击按钮之后,会自动清除原来的组件,显示新的组件。

  • 本文向大家介绍AngularJS ng-controller 指令简单实例,包括了AngularJS ng-controller 指令简单实例的使用技巧和注意事项,需要的朋友参考一下 AngularJS ng-controller 指令 AngularJS 实例 为应用变量添加控制器: 运行结果: Full Name: John Doe 该实例演示了如何定义一个控制器及 scope 的使用。 定义