查看: 1879|回复: 0
收起左侧

常见RISC-V介绍

[复制链接]

  离线 

  • TA的每日心情
    奋斗
    2021-1-15 13:53
  • 签到天数: 26 天

    [LV.4]

    发表于 2020-8-7 08:49:53 | 显示全部楼层 |阅读模式

    有人预言,RISC-V或将是继Intel和Arm之后的第三大主流处理器体系。欢迎访问全球首家只专注于RISC-V单片机行业应用的中文网站

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x

    当前一颗新出的CPU:RISC-V简直火透了半边天,无论是财大气粗的阿里系的平头哥,还是新创企业,似乎只要和RISC-V挂上钩就足可以实现赶英超美。


    那事实上RISC-V是什么?除了国内那些简直红透了半边天的一系列RISC-V还有那些?


    首先RISC-V是什么?


    实际网上已经有很多介绍,她是David Patterson/Andrew Waterman于2011在美国伯克利退出的一种用于教学目的的指令集,其尽可能简化(优化)了传统的CPU指令系统。


    即实际上RISC-V仅仅是一个开源的指令系统,具体怎样实现完全靠个人。


    但实际上,即使David也有一些针对RISC-V体系结构的详细教材,如:《Computer Organization And Desidn》和入门教材《The RISC-V Reader》,同时,包括UCB和一些公司都有一些已经设计好的RISC-V,即您自己只需要一颗合适的FPGA,就可以下载一颗完整的RISC-V,并在上面进行各种开发。


    除官方的RISC-V实现是使用了一种新的硬件描述语言Chisel外,多数实现仍会沿用传统的VerilogHDL或VHDL语言,而实际上,Chisel在被综合前也是需要“翻译”成VerilogHDL。


    之后我们介绍一些较早出现的RISC-V实现。(当前国内涌现了太多的RISC-V实现,多数也许就是参考这些原始实现,因为笔者在一年前接触的RISC-V,因此,对国内新出现的RISC-V暂不做评价)


    • Rocket:(UCB)标量处理器:64位、5级流水线、但发射顺序执行处理器,特征:
      • 支持MMU,支持分页虚拟内存。可以移植到Linux操作系统
      • 具有兼容的的IEEE 754-2008标准的FPU
      • 具有分支预测功能,具有BPB(Branch Prediction Buff)、BHT(Branch History Table)、RAS(Return Address Stack)


    Rocket采用Chisel语言编写;

    下载地址:https://github.com/freechipsproject/rocket-chip,


    • BOOM:(UCB)超标量乱序执行处理器;BOOM也是采用Chisel编写,全部代码大约9000行;指令为RV64G

    6级流水线:取指、译码/重命名/指令分配、发射/读寄存器、执行、内存访问、回写

    下载地址:https://github.com/ucb-bar/riscv-boom


    • Sodor:(UCB)针对教学的32位开源处理器。Chisel编写,支持5种处理器:单周期处理器、2级流水线处理器、3级流水线处理器、5级流水线处理器、可执行微码的处理器
      • 早期出于教学目的处理器,使用Chisel编写,没有什么实际商用价值。已经很长时间没有更新了。
      • 结构相对清晰一些,如对不同深度PipeLine都有描述(分别有1阶、2阶、3阶和5阶);可以作为很好的示范代码

    下载地址:https://github.com/ucb-bar/riscv-sodor


    • ORCA:嵌入式应用处理器,支持指令:RV32IM(也可以:RV32E/RV32I)

    下载地址:https://github.com/vectorblox/orca


    • PicoRV32:是一个RV32IMC指令的实现,由RISC-V开发者Clifforf wolf实现,但重新设计了trap/interrupt/interrupt return,采用了一种简化的方式,所有代码是由verilog编写的;其特点是小巧在Xilinx 7上占用大小为750~2000个LUT

    下载地址:https://github.com/cliffordwolf/picorv32


    • Shakti:印度理工学院的一个项目,由Verilog编写,其使用了大量第三方IP,根据需要分成了不同的类:
      • E-Class:32位标量处理器,3级流水线,支持RISC-V的C(RISC-V指令压缩)扩展,总线:AHB简化版目标是超低功耗处理器
      • C-Class:32/64位标量处理器,3~8级流水线,支持MMU,具有容错(ISO26262),支持RISC-V的C扩展,可选FPU/VPU,总线:AXI变体,目标是超低功耗处理器
      • I-Class:64位,多核,支持1~8核,乱序执行,共享L2 Cache,支持双线程、SIMD/VPU,目标是通用处理器
      • M-Class:I-Class增强版,增加指令发射大小、支持4线程、最多16核,目标是通用处理器、低端服务器和移动应用
      • S-Class:64位,超标量多线程处理器,支持L3 Cache,RapidIO,HMC(Hybrid Memory Cube)、向量处理单元,还用协处理器,用于数据库访问、加密、机器学习、最高支持64核,目标是通用处理器、服务器
      • H-Class:64位、32~128核,支持多线程,顺序或乱序执行处理器,具有向量处理单元,目标是高性能计算
      • T-Class:64位/128位多核处理器,通过为存储器引入Tag增加安全性
      • N-Class:自定义扩展,网络处理


    官方地址:https://bitbucket.org/casl/shakti_public

    下载:https://bitbucket.org/casl/shakti_public.git


    • YARVI:

    VARVI是RISC-V爱好者Tommy Thorn设计发布的简单的、32位开源处理器,实现了RV32I,使用Verilog,目标是为了能够清晰准确的实现RV32I

    下载地址:https://github.com/tommythorn/yarvi


    • Pulpino:由苏黎世联邦理工大学与意大利博洛尼亚大学联合开发。32位,指令集:RV32I/RV32C/RV32M,扩展了RISC-V指令;多核

    网址:https://www.pulp-platform.org/

    下载地址:https://github.com/pulp-platform/pulpino


    • GRVI Phalanx:大规模并行RISC-V(最多到千核),2~3级流水线,32位,其中在Artix-7 35T开发板上已经实现32 RISC-V处理器;在PYNQ-Z1上实现了80核;在UltraScale上实现了1680核的RISC-V;不开源

    • 蜂鸟:国内最早比较成熟的RISC-V实现,由胡振波(现在芯来创始人)开发,使用Verilog设计。其开源CPU为E200:使用2级流水线

    下载地址:https://github.com/SI-RISCV/e200_opensource


    另外,商业化比较成功的是SiFive,因为其主要来源于UCB的官方设计,算是比较根红苗正的,将其归为UCB官方,其开源版本是Freedom E310,相对成熟版本是E31。SiFive除完整CPU外,还提供了较为成熟的集成开发环境:Freedom Studio,非常适合初学者,之后会详细介绍

    本篇完





    上一篇:芯来科技获小米投资,加速RISC-V产业生态布局
    下一篇:RISC-V笔记1
    RISCV作者优文
    全球首家只专注于RISC-V单片机行业应用的中文网站
    回复

    使用道具 举报

    高级模式
    B Color Image Link Quote Code Smilies

    本版积分规则

    关闭

    RISC-V单片机中文网上一条 /2 下一条



    版权及免责声明|RISC-V单片机中文网 |网站地图

    GMT+8, 2024-3-29 16:41 , Processed in 0.383168 second(s), 46 queries .

    快速回复 返回顶部 返回列表