什么是RISC-V

news/2024/11/26 5:28:07/

本文转自什么是RISC-V 向作者致敬。

RISC-V读作RISC Five,也即第五代精简指令处理器

什么是RISC和CISC?

RISC(精简指令集计算机,Reduced Instruction Set Computer-RISC)和CISC(复杂指令集计算机,Complex Instruction Set Computer-CISC)是CPU的两种架构,区别在于不同的CPU设计理念和方法。早期的CPU全部是CISC架构。

计算机性能的提高可以通过增加硬件的复杂性来获得,随着集成电路技术,特别是VLSI(超 大规模集成电路)技术的迅速发展,硬件工程师可以通过不断增加可实现复杂功能的指令和多种灵活的编址方式软件编程方便和提高程序的运行速度,相应地,硬件越来越复杂,造价也相应提高。通过提供复杂指令来提高性能的方法,顾名思义,也就叫做CISC。一般CISC计算机所含的指令数目至少300条,甚至超过500条。CISC的设计目的是要用最少的机器语言指令来完成所需的计算任务。比如对于乘法运算,在CISC架构的CPU上,可能只需要一条指令:MUL ADDRA, ADDRB就可以将ADDRA和ADDRB中的数相乘并将结果储存在ADDRA中。将ADDRA, ADDRB中的数据读入寄存器、相乘和将结果写回内存的操作全部依赖于CPU中设计的逻辑来实现。这种架构会增加CPU结构的复杂性和对CPU工艺的要求,但对于编译器的开发十分有利。比如上面的例子,C程序中的a*=b就可以直接编译为一条乘法指令。如今,Intel及其兼容CPU还在使用CISC 架构。

随着CISC的发展,它的缺点也逐渐暴露出来,日趋庞杂的指令系统不但不易实现,而且还可能降低系统性能。IBM公司的JhomasI.Wason研究中心于1975年组织力量研究指令系统的合理性问题,1979年David Patterson教授也开始UC Berkeley开展这一研究。结果发现,首先,在CISC系统中,各种指令的使用率相差悬殊:一个典型程序的运算过程所使用的80%指令,只占处理器指令系统所有指令中的20%,事实上最频繁使用的指令是取数据、存数据和加法这些最简单的指令。这就说明,花大力气设计和实现的复杂指令其实作用并不大。而且,复杂的指令系统必然带来结构的复杂性,不但增加了设计的时间与成本还容易造成设计失误。此外,尽管VLSI技术已达到很高的水平,但也很难把CISC的全部硬件做在一个芯片上,这也妨碍单片计算机的发展。

因而,针对CISC的这些弊病,David Patterson教授等人提出了精简指令的设想,即指令系统应当只包含那些使用频率很高的少量指令,并提供一些必要的指令以支持操作系统和高级语言.按照这个原则发展而成的计算机被称为精简指令集计算机(Reduced Instruction Set Computer-RISC)结构。RISC架构要求软件来指定各个操作步骤。上面的例子如果要在RISC架构上实现,将ADDRA, ADDRB中的数据读入寄存器,相乘和将结果写回内存的操作都必须由软件来实现,比如:MOV A, ADDRA; MOV B, ADDRB; MUL A, B; STR ADDRA, A。这种架构可以降低CPU的复杂性以及允许在同样的工艺水平下生产出功能更强大的CPU,但对于编译器的设计有更高的要求。

RISC-V读作RISC Five,也即第五代精简指令处理器。取这个名字正是因为美国伯克利研究团队的David Patterson教授在此之前已经研制了四代精简指令处理器芯片。

RISC-V

在2010年,伯克利研究团队要设计一款CPU,然而,英特尔对X86的授权卡的很严,ARM的指令集授权很贵,MIPS、SPARC、Open Power也都需要各自的公司授权。在选择很有限的情况下,伯克利的研究团队决定从零开始设计一套全新的指令集。而被很多媒体大肆宣扬也让人振奋的是,伯克利的研究团队4名成员仅用了3个月就完成了RISC-V的指令集开发。目前,伯克利研究团队已经完成了基于RISC-V指令集的顺序执行的64位处理器核心(代号为Rocket),并前后基于45nm与28nm工艺进行了12次流片。Rocket芯片主频1GHz,与ARM Cortex-A5相比,实测性能较之高10%,面积效率高49%,单位频率动态功耗仅为Cortex-A5的43%。在嵌入式领域,Rocket已经可以和ARM争市场了。

RISC-V指令集是基于精简指令集计算(RISC)原理建立的开放指令集架构(ISA),RISC-V是在指令集不断发展和成熟的基础上建立的全新指令。RISC-V指令集完全开源,设计简单,易于移植Unix系统,模块化设计,完整工具链,同时有大量的开源实现和流片案例,已在社区得到大力支持。它虽然不是第一个开源的的指令集(ISA),但它是第一个被设计成可以根据具体场景可以选择适合的指令集的指令集架构。基于RISC-V指令集架构可以设计服务器CPU、家用电器CPU、工控CPU和传感器中的CPU。

在处理器领域,目前主流的架构为x86与ARM架构,但它们作为商用的架构,为了能够保持架构的向后兼容性,其不得不保留许多过时的定义。久而久之就变得极为冗长。RISC-V架构相对而言不用向后兼容。目前的“RISC-V架构文档”分为“指令集文档”(riscv-spec-v2.2.pdf)和“特权架构文档”(riscv-privileged-v1.10.pdf)。“指令集文档”的篇幅为145页,而“特权架构文档”的篇幅也仅为91页。相对上手和入门较快。

RISC-V架构相比其他成熟的商业架构的最大一个不同还在于它是一个模块化的架构。因此,RISC-V架构不仅短小精悍,而且其不同的部分还能以模块化的方式组织在一起,从而试图通过一套统一的架构满足各种不同的应用。这种模块化是x86与ARM架构所不具备的。以ARM的架构为例,ARM的架构分为A、R和M三个系列:

名称用途
A系列Application(应用操作系统)
R系列Real-Time(实时)
M系列Embedded(嵌入式)

短小精悍的架构以及模块化的哲学,使得RISC-V架构的指令数目非常的简洁。基本的RISC-V指令数目仅有40多条,加上其他的模块化扩展指令总共几十条指令。


http://www.ppmy.cn/news/426938.html

相关文章

汉诺塔(Hanoi)问题归纳总结

一.汉诺塔问题及其递归算法 1.问题阐述 经典汉诺塔: 外文算法书对汉诺塔问题的描述: 2.算法步骤 三阶汉诺塔问题解题步骤 共需7步。 四阶汉诺塔问题解题步骤 共需15步 五阶汉诺塔问题解题步骤 可以清晰的看出分治思想以及递归过程 算法采用了分治的…

第五章 政策问题与议程设定

整体架构 第一节 政策问题的概念、属性与分类 第二节 公共问题的提出 第三节 问题认定与政策议程第一节 政策问题的概念、属性与分类 公共问题的形成或认定及其被纳入政府的政策议程是政策制定过程的起点,也是它的一个十 分重要的环节。美国学者邓恩就特别强调问题构…

【时间序列分析】03.正态时间序列与严平稳序列

文章目录 三、.正态时间序列与严平稳序列1.多元统计基础2.多维正态分布与正态时间序列3.严平稳序列回顾总结 三、.正态时间序列与严平稳序列 1.多元统计基础 首先对多元统计中的基本概念作简要介绍。如果有一个 n n n维随机向量 X ( X 1 , ⋯ , X n ) ′ X(X_1,\cdots,X_n) …

从互联网金融平台下架银行存款产品,看金融监管为何越来越严?

最近各大互联网金融平台纷纷下架了银行存款产品,当然这也不是今年监管对于互联网金融的第一次出手了。 前些天蚂蚁集团上市前夕,互联网小额信贷监管环境发生变化,P2P平台的清零等等的。 当然了,有人叫好,说&#xff…

OAuth安全相关问题

初识OAuth 开放授权(OAuth)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用.目前广泛使用的版本是OAuth 2.0.而OAuth2.0存在认证缺陷-即第三方帐号快捷登录授权可能被劫持。 OAuth…

SQL注入问题

sql注入是一种通过在输入中注入sql语句,来达到攻击数据库的效果。今天使用Java语言,来分析一下sql注入的相关问题。 一、什么是SQL注入 SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外…

【通信原理】严平稳随机过程 广义平稳随机过程 高斯随机过程

目录 定义介绍 严平稳随机过程: 广义平稳随机过程: 高斯随机过程: 问题解答 Question1:为什么广义平稳随机过程不一定是严平稳随机过程? Question2:为什么高斯过程若是广义平稳的,则也严平稳&a…

棋盘覆盖问题C++版

经典的棋盘覆盖问题描述如下:有一个2k∗2k的方格棋盘,有一个方格为特殊方格,除此方格外其余的方格可用L型骨牌覆盖,且任意一个方格不能同时被两个或更多骨牌覆盖。 棋盘覆盖问题可以用递归思想,因为棋盘规格为2k∗2k&a…