记录一个小白对于RISC-V的认知过程
一、前言
在真正的去了解RISC-V之前,其实我只是在自己关注的一些嵌入式的公众号上看到过关于它的文章,而且看到过很多次,可见它现在真的很火,但是我都没有仔细的去了解过。最近有幸和几个同学一起报名参加了全国大学生集成电路创新创业大赛,具体报名的是RISC-V挑战杯,因为这个里面有一个子赛题是关于避障小车的,相对比较简单,毕竟我们几个现在都是大四,还是要以毕业设计为主。
二、了解RISC-V的概念
报名之后,我就开始在网上搜索各种关于RISC-V的文章,虽然有很多的文章,但是由于刚开始没有太多的概念,所以在最初看这些文章的时候还是很迷糊。当我看多一些资料之后,慢慢的了解到,RISC-V其实是一个基于精简指令集(RISC)原则的开源指令集架构(ISA)。 你没有听错,这是一个开源的指令集架构,当然之前也有一些开源指令集架构,不过最终都不是很成功,比如OpenRISC、SPARC等,有兴趣的朋友可以去了解一下。
因为我们之前学习过嵌入式系统原理与应用这门课,它里面讲的是ARM架构,其实让我对RISC-V的概念真正了解的还是查资料时看到的倪光南院士说的一句话:“RISC-V将和x86、ARM三分天下 ”。这么简单的一句话,其实可以从两个方面理解,一方面是它和x86和ARM一样,是一种指令集架构,因为我学过ARM架构,所以就会让我对RISC-V有一个很明确的认知;另一方面也说明了RISC-V潜力是巨大的。
三、了解RISC-V的优势
设计优势:之所以RISC-V得到了很多人的认可,是因为RISC-V的两大设计优势:精简和灵活。RISC-V指令集在最初设计时,其研发团队就明确表示要追求简约,丢弃历史包袱。RISC-V的基本指令仅40余条,并且采用了模块化的指令集,能满足从微控制器到超级计算机等各种复杂程度的处理器需求,支持从FPGA、ASIC乃至未来器件等多种实现方式。
目标优势:RISC-V架构的目标如下:
- 成为一种完全开放的指令集,可以被任何学术机构或商业组织所自由使用。
- 成为一种真正适合硬件实现且稳定的标准指令集。
2016年,RISC-V基金会正式成立开始运作。这是一个非营利组织,负责维护标准的RISC-V指令集手册和与架构文档,以及编译器等CPU等所需要的软件工具链。任何组织和个人可以随时在RISC-V基金会网站上免费下载(无需注册)。
四、进一步理解指令集、指令集架构/处理器架构、微架构、处理器内核、处理器(SoC)之间的关系
上面说了这么多,当我初步了解了RISC-V是个什么东西之后,一些问题也随之而来,也就是我经常会混淆的一些和CPU相关的概念,比如指令集,处理器架构/指令集架构,微架构,处理器内核以及处理器这五者之间的关系。同样,在学习ARM架构的时候,我也是对这几个概念不是很清楚。查了一些资料之后,我是这么理解的,比较通俗的来说就是:
-
指令集就是一组指令的集合,而指令是指处理器进行操作的最小单元(譬如加减乘除操作或者读写存储器操作)
-
指令集架构,有时也称处理器架构就是规定了有哪些指令可以使用,比如加减乘除;以及这些指令对应的编码。它不仅是一组指令的集合,还定义了任何软件程序员需要了解的硬件信息,包括支持的数据类型、存储器、寄存器状态、寻址模式和存储器模型等。有了此架构,我们就可以使用不同的处理器硬件实现方案来设计不同性能的处理器。
-
而这个处理器硬件实现方案,正是我们所说的微架构。也就是我们在实现加减乘除操作的时候,用什么样的硬件电路来实现接收特定二进制码就知道去执行指定的加减乘除动作。
-
有了微架构,我们就可以按照这个架构去设计处理器内核,这其实才是真正意义上的CPU,它是整个处理器内部最核心的部分。
-
有了处理器核,我们再加上一些外设、IO、存储器等设备, 就构成了我们平时所说的处理器(CPU),而CPU往往就是一个完整的SoC。
其实最后还有一个层次,那就是和我们离的最近的产品,只有最后将CPU拿来生产一些实际的产品,才有其真正的价值
为了比较好理解,我们先拿ARM处理器按照以上几个个层次来举例子:
ARM指令集-----ARMv7-M 指令集/处理器架构-----Cortex-M3内核-----STM32F103ZET6处理器-----实际产品(如STM32 单片机)
下面再拿基于RISC-V的处理器按照以上几个层次来举例子:
RISC-V指令集-----RV32IMAC指令集/处理器架构-----SiFive E31标准内核-----Freedom E310 SoC-----实际产品(如HiFive1 Rev B开发板)
五、说到RISC-V就不得不提SiFive公司
上面所提到的SiFive,其实是一家公司,它是基于免费且开放的RISC-V指令集架构的商业化处理器核心IP、开发工具和芯片解决方案的领导者。 在RISC-V开创者和业内资深专家组成的团队领导下,SiFive帮助SoC设计人员缩短产品上市时间,以及通过定制的开放式架构处理器内核降低成本,同时,使系统设计人员能够构建基于RISC-V的定制半导体,从而实现芯片优化。
它基于RISC-V的标准内核IP主要有以下三个系列,分别应用于不同领域
-
SiFive标准内核是世界上采用最多的RISC-V解决方案。从低功耗嵌入式微控制器到多核应用处理器,采用我们的IP是实现RISC-V风险最低,最简单的最佳途径。
-
SiFive标准内核均可定制,可通过SiFive Core Designer进行配置以满足精确需求。
对于上述所提到的Freedom E310 SoC,它就是定制化模型系列-Freedom Everywhere系列中的首款模型。它是由低功耗MCU模型及基于SiFive E31标准内核设计而成。
六、来说一说软件生态
我们都知道,如果只是做嵌入式开发,其实大部分人是不用关心具体的指令集架构的,我们只需要有一款用于开发的软件工具即可,它可以帮助我们对写好的程序进行链接,编译等,我们只需要写程序即可
下面是一些常用的软件工具
-
Freedom Studio是使用SiFive硬件开始编程的最快方法。Freedom Studio构建于流行的Eclipse IDE之上,并与预构建的工具链和Freedom E SDK中的示例项目打包在一起。Freedom Studio与所有SiFive RISC-V开发板兼容。
-
Freedom E SDK是我们硬件平台的演示程序,行业标准基准测试和板级支持包(BSP)的存储库。在我们的开发板上运行基准代码就像构建单个Makefile目标一样简单。
-
Prebuilt RISC‑V GCC Toolchain是我们预先构建的工具链,其中包含在SiFive产品上编译和调试程序所需的所有工具。我们的工具链分发经过精心打包,可支持32位和64位ISA。
-
Third Party RISC‑V Tools指的是一些第三方软件工具
七、最后来说一下RISC-V方面的书籍
说到这个,肯定第一个想到的就是胡振波编写的姊妹篇书籍手把手教你设计CPU——RISC-V处理器篇和RISC-V架构与嵌入式快速入门。
作者开发了一款MCU级别超低功耗RISC-V处理器(蜂鸟 E203)作为学习案例,并且配套开源了一整套完整的MCU SOC平台,软件开发套件(SDK)以及配套软件示例。
蜂鸟 E203 MCU SoC基本上借鉴于开源的Freedom E310 SoC平台,我们上面也提到过。为了最大程度的共享HFive1开发板的软件生态,它尽可能的复用Freedom E310 SoC IP
Freedom E310 SoC是Freedom E300平台的一个具体型号,而Freedom E300平台是Freedom everywhere SoC家族系列中的第一款SoC平台。好吧,以上这些名词其实我也有点晕,想知道的朋友可以仔细了解一下SiFive都有哪些家族系列,然后每个家族系列又有哪些SoC平台,每一款SoC平台又有哪些具体的型号。大致就是这样进行分类的。