RISC-V是加州大学伯克利分校(University of California at Berkeley,以下简称UCB)设计并发布的一种开源指令集架构,其目标是成为指令集架构领域的Linux,应用覆盖IoT(Internet of Things)设备、桌面计算机、高性能计算机等众多领域。其产生是因为UCB的研究人员在研究指令集架构的过程中,发现当前指令集架构存在如下问题[1]。
   (1)绝大多数指令集架构都是受专利保护的,比如:x86、MIPS、Alpha,使用这些架构需要授权,限制了竞争的同时也扼制了创新。
   (2)当前的指令集架构都比较复杂,不适合学术研究,而且很多复杂性是因为一些糟糕的设计或者背负历史包袱所带来的。
   (3)当前的指令集架构都是针对某一领域的,比如:x86主要是面向服务器、ARM主要是面向移动终端,为此对应的指令集架构针对该领域做了大量的领域特定优化,缺乏一个统一的架构可以适用多个领域。
   (4)商业的指令集架构容易受企业发展状况的影响,比如:Alpha架构就随着DEC公司的被收购而几近消失。
   (5)当前已有的各种指令集架构不便于针对特定的应用进行自定义扩展。
   为此,UCB的研究人员Krste Asanovic、Andrew Waterman、Yunsup Lee决定设计一种新的指令级架构,并决定以BSD授权的方式开源,希望借此可以有更多创新的处理器产生、有更多的处理器开源,并以此降低电子产品成本[2]。

RISC-V自2014年正式发布以来,受到了包括谷歌、IBM、Oracle等在内的众多企业以及包括剑桥大学、苏黎世联邦理工大学、印度理工学院、中国科学院在内的众多知名学府与研究机构的关注和参与,围绕RISC-V的生态环境逐渐完善,并涌现了众多开源处理器及SoC采用RISC-V架构,这些处理器既有标量处理器,也有超标量处理器,既有单核处理器,也有多核处理器,本文接下来将简单介绍RISC-V架构的基本设计,随后将详细描述目前采用RISC-V架构的开源处理器与SoC。

1 RISC-V简介

1.1 RISC-V的基本设计

RISC-V是一个典型三操作数、加载-存储形式的RISC架构,包括三个基本指令集和6个扩展指令集,如表1所示,其中RV32E是RV32I的子集,不单独计算。

基本指令集的名称后缀都是I,表示Integer,任何一款采用RISC-V架构的处理器都要实现一个基本指令集,根据需要,可以实现多种扩展指令集,例如:如果实现了RV32IM,表示实现了32位基本指令集和乘法除法扩展指令集。如果实现了RV32IMAFD,那么可以使用RV32G来表示,表示实现了通用标量处理器指令集。本文只介绍RV32I的基本情况。

RV32I指令集有47条指令,能够满足现代操作系统运行的基本要求,47条指令按照功能可以分为如下几类。

(1)整数运算指令:实现算术、逻辑、比较等运算。

(2)分支转移指令:实现条件转移、无条件转移等运算,并且没有延迟槽。

(3)加载存储指令:实现字节、半字、字的加载、存储操作,采用的都是寄存器相对寻址方式。

(4)控制与状态寄存器访问指令:实现对系统控制与状态寄存器的原子读-写、原子读-修改、原子读-清零等操作。

(5)系统调用指令:实现系统调用、调试等功能。

1.2 RISC-V的优势

1.2.1 与开源指令集架构比较

在RISC-V发布之前,实际上已经有几种开源指令级架构,包括SPARC V8、OpenRISC,其中SUN发布的开源多核多线程处理器OpenSparcT1、OpenSparcT2,以及欧空局的LEON3采用的就是SPARC V8,OpenRISC也有同名的开源处理器,在[2]中介绍了RISC-V与前两者的比较,如表2所示。此外,OpenRISC的许可证为GPL,这意味着所有的指令集改动都必须开源。而RISC-V的许可证是较为宽松的BSD License授权。

1.2.2 与商业指令集架构比较
   UCB的研究人员设计了一款采用RISC-V指令集架构的开源处理器Rocket,并且已经成功流片了11次,其中采用台积电40nm工艺时的性能与采用同样工艺的,都是标量处理器的ARM Cortex-A5的性能对比如表3所示。可见Rocket占用更小的面积,使用更小的功耗,但是性能却更优。

(未完待续)

基于RISC-V架构的开源处理器及SoC研究综述(一)相关推荐

  1. 基于RISC-V架构的开源处理器及SoC研究综述

    RISC-V是加州大学伯克利分校(University of California at Berkeley,以下简称UCB)设计并发布的一种开源指令集架构,其目标是成为指令集架构领域的Linux,应用 ...

  2. RISC-V架构的开源处理器分析

    摘要:RISC-V架构本身面积小.性能较高,最为关键的是这一架构本身功耗较低且作为全新的开源精简指令集,无论是技术还是产品都得到了迅速的发展,效果突出.基于此,本文深入研究RISC-V架构开源处理器内 ...

  3. saas系统的微服务器,基于微服务架构的SaaS服务应用的研究与实践

    摘要: SaaS(Software as a Service)应用作为一种新型的软件服务模式,在日常生产生活中越来越重要.在SaaS应用的落地过程中传统的的单体架构不能满足SaaS应用的需求,于是微服 ...

  4. 论文研读——基于深度强化学习的自动驾驶汽车运动规划研究综述

    论文研读--Survey of Deep Reinforcement Learning for Motion Planning of Autonomous V ehicles 此篇文章为论文的学习笔记 ...

  5. 【Journal of Computer-Aided Design Computer Graphics】基于生成对抗网络的行人重识别方法研究综述

    文章目录 引言 数据集介绍 基于GAN的行人重识别方法分类 2.1基于风格转换的方法 2.2基于数据增强的方法 2.3基于不变性特征学习的方法 3 基于GAN的方法性能对比分析 总结 引言 对于行人检 ...

  6. RISC V (RV32+RV64) 架构 整体介绍

    文章目录 riscv 市场 芯片介绍 软件介绍 开发板介绍 PC介绍 riscv 架构 编程模型(指令集/寄存器/ABI/SBI) 运行状态 指令集 寄存器 riscv32和riscv64两者的区别 ...

  7. 【RED-V】基于 RISC-V 架构的开源开发板

    板卡介绍 RED-V RedBoard 是 SparkFun 出品的开源开发板,主控芯片是基于 RISC-V 架构的 SoC SiFive FE310.FE310 是全球第一款基于 RISC-V 架构 ...

  8. 基于TI Davinci架构的双核嵌入式应用处理器OMAPL138开发入门(TI达芬奇双核开发资料 [

    基于TI Davinci架构的双核嵌入式应用处理器OMAPL138开发入门 一.简介 TI的达芬奇架构嵌入式应用处理器使用DSP与ARM结合的非对称多核结构,当然现在也有管脚全兼容的单核.本文要介绍的 ...

  9. 【每日新闻】桥水达里奥:人工智能造成贫富差距 | 国产x86处理器开始生产:基于AMD Zen架构...

    点击关注中国软件网 最新鲜的企业级干货聚集地 趋势洞察 坚持是种信念,努力是种精神! 2018中国软件生态大会 趋势洞察 桥水达里奥:人工智能造成贫富差距 桥水基金创始人雷·达里奥--美国对冲基金教父 ...

最新文章

  1. 逆生长!小鼠「逆龄疗法」登Nature子刊,有望用于人类
  2. React native 浏览器调试
  3. Spark的三种伪分布式方式
  4. python 基础语法学习笔记(2019年4月第二周学习笔记)
  5. python实现一个简单的【图像中物体坐标】标注小工具
  6. opencv 重用代码块记录
  7. 需求与商业模式分析-3-设计
  8. 安防监控系统的几个基础小知识
  9. 百度BAE上能装什么pHp框架,百度Bae云平台安装dedecms图文教程
  10. Java 年龄与疾病
  11. 弧齿锥齿轮零件图_弧齿锥齿轮画法类别
  12. 交互式shell脚本实操
  13. html 字体模糊,详解css3使用transform出现字体模糊的解决办法
  14. sun java 考试_Sun Java认证考试科目
  15. 用于图片文本识别的Tesseract-OCR的安装说明(windows10)
  16. TensorFlow实现自定义Op
  17. 将word文件中的文本转成字符串
  18. 红米k40pro开启来电闪光灯步骤分享(2021教程)
  19. pdd暑期实习生机试3
  20. 《告别失控》读书笔记

热门文章

  1. shell编程——Shell条件判断之字符串判断
  2. 软件分享 目前最友好的开源远程桌面软件,完美替代 TeamViewer 和 AnyDesk
  3. 浙江农林大学第二十二届程序设计竞赛部分题解
  4. TextView文本尾部添加标签,支持自动换行
  5. Qt LineEdit设置为不可编辑状态:
  6. Android 应用详情查看
  7. 三极管常用封装的引脚排列
  8. efm8bb1 烧录器_EFM8BB1_DataSheet-CN.pdf
  9. 从零开始的树莓派生活(树莓派4B的组装与系统安装)
  10. NLP-生成模型-2018:Vanilla Transformer【将长文本序列划截断为多个固定长度的段;段与段之间没有上下文依赖性;无法建模字符之间超过固定长度的依赖,关系导致上下文碎片化】