灵感之源 发表于 2025-7-11 20:22

什么是RISC-V?以及RISC-V和ARM、X86的区别

前言
RISC-V是基于RISC精简指令集架构开发的一个开放式指令集架构,它是由加州大学伯克利分校的计算机科学教授Krste Asanovic(克里斯蒂安·阿萨诺维奇)领导的团队开发,RISC-V是开放的,任何人都可以使用它来开发处理器芯片和其他硬件,而无需支付任何许可或使用费用。RISC-V的设计简单,易于扩展和自定义,可以在各种应用场景和市场中使用。

什么是指令集架构?
指令集架构(Instruction Set Architecture,简称ISA)是计算机系统中的一个重要概念,指的是计算机中处理器的指令集和处理器的内部结构,即处理器是如何执行指令的。

ISA规定了一套指令集,包括指令的种类、指令的格式、指令的操作数、指令的执行方式等。ISA也规定了处理器的内部结构,包括处理器的寄存器、指令流水线、内存管理单元等。

不同的ISA有不同的指令集和内部结构设计,因此处理器的计算能力和性能也会有所不同。常见的ISA包括ARM、x86、MIPS、PowerPC、RISC-V等。ISA的选择对计算机系统的性能、功耗、软件兼容性、应用场景等都有很大的影响。

简单点比喻可以把指令集架构理解为图纸,处理器就是房子。

RISC和RISC-V的区别
RISC全称Reduced Instruction Set Computer,即精简指令计算机,它是指令集架构,它的理念在于旨在通过减少指令集的数量和复杂度,提高计算机的性能和效率。

RISC最初由加州大学伯克利分校David Patterson和John Hennessy在1980年代提出,并于1984年合著了一本名为“Computer Architecture: A Quantitative Approach”(中文译名为《计算机体系结构:量化研究方法》)的经典教材,该书详细介绍了RISC架构和量化分析方法,成为当时计算机体系结构领域的重要参考书。

RISC-V是由Krste Asanovic教授领导其团队基于RISC精简指令集架构开发的一款开源指令集架构,RISC-V具有更好的灵活性以及扩展性,同时它比RISC更加简单便于它人二次开发和扩展,并且它不需要任何授权费,可以应用于商业场景因为它遵循BSD开源协议,可以把RISC-V理解为RISC的扩展版。

RISC-V的发展历史
RISC-V的创作者
RISC-V是由多位学者和工程师共同开发的,以下是一些主要贡献者:

Krste Asanovic:加州大学伯克利分校电子工程与计算机科学教授,RISC-V的创始人之一。

Andrew Waterman:加州大学伯克利分校博士研究生,RISC-V的主要开发者之一。

David Patterson:加州大学伯克利分校计算机科学教授,计算机体系结构领域的知名学者,RISC-V的顾问之一。

Yunsup Lee:加州大学伯克利分校博士研究生,RISC-V的主要开发者之一。

Alberto Sangiovanni-Vincentelli:加州大学伯克利分校教授,计算机电子学领域的知名学者,RISC-V的顾问之一。

此外,在RISC-V的开发过程中还得到了来自多家公司的支持和参与,包括英特尔、谷歌、诺基亚、贝尔、卡内基梅隆大学、华为、科技大学格拉茨、西部数据等。

创造RISC-V的原因
最初Krste Asanovic想找一款免费高效的指令集架构用于教育方面,就像Andrew S. Tanenbaum(安德鲁·斯图尔特·塔能鲍姆)当初觉得UNIX闭源而开发MINIX从而启发并诞生后来的LINUX一样,在当时碍于ARM和x86都是需要授权的指令集架构,当时基于RISC实现的指令集架构都比较复杂效率低下,所以Krste Asanovic决定基于RISC开发一款免费、开放、高效的指令集架构,所以他在2008年开始主导开发RISC,RISC-V是第五个版本,在此之前已经迭代了四个版本,RISC-V就是第五个版本。

以下是总结并整理为什么创造RISC-V的几个原因:

开放性:Krste Asanovic认为,计算机行业需要一种更加开放的指令集架构,以便更多的公司和个人可以参与到处理器的设计和开发中。这也是为什么RISC-V采用BSD开源协议,可以自由地使用和分发。

灵活性:传统的指令集架构大多采用固定长度的指令,这限制了处理器的灵活性和指令集的扩展能力。而RISC-V指令集架构采用了可变长度的指令,可以实现更加灵活和高效的指令集扩展和自定义。

可定制性:Krste Asanovic认为,处理器的设计应该是可定制的,以满足不同应用场景的需求。而使用RISC-V指令集架构,处理器的设计可以根据具体的需求进行自定义,而不必受限于传统指令集的限制。

教育性:Krste Asanovic希望通过开发RISC-V指令集架构,为学生和研究人员提供一个更加友好和易于理解的指令集,以便他们更好地学习和研究计算机处理器的设计和开发。

RISC-V与ARM、X86指令集架构的区别
RISC-V与ARM
RISC-V和ARM都是基于RISC的指令集架构,它们的主要区别如下:

指令集数量
ARM指令集和寄存器要比RISC-V丰富
指令集宽度
RISC-V指令集最大可以扩展到128位,目前ARM的v8-A架构最高只能扩展到64位指令集,通常RISC-V使用32位指令也支持压缩的16位指令
指令集复杂度
RISC-V的汇编比ARM的要更加简单容易理解
指令集执行方式
RISC-V更注重于执行效率和耗能优化,可以更好的适用于嵌入式和移动设备,ARM更注重于通用性和兼容性,适合更广泛的平台
RISC-V和ARM都支持分支预测,ARM还引入了分支目标缓存用于提高分支预测的准确度。
ARM指令的微操作数量一般很难确定,因为它也是RISC指令集,ARM有较为完善的指令,一些基础指令可能只有一个微操作而其它的可能会有多个微操作,但RISC-V指令集一般只有一个微操作。
指令集开放程度
RISC-V采用BSD开源协议,它无需授权就可以进行二次开发,ARM需要授权并且是闭源开发
指令集功耗与性能
ARM经过许多年的发展诞生了许多不同架构的指令集,性能与功耗都经过了广泛的优化,在这一点上ARM目前是胜于RISC-V的
指令集存储结构
ARM Cortex-M系列是哈佛结构,Cortex-A是冯诺依曼体系,RISC-V采用的是冯诺依曼
从我个人角度来说我认为RISC-V和ARM的区别更像Linux与Unix,最后综上总结RISC-V和ARM的具体区别如下:

架构和指令集:RISC-V架构是开源的,而ARM不是,ARM架构只能由ARM授权合作伙伴使用。此外,RISC-V指令集具有可扩展性,可以根据不同的应用需求进行裁剪和扩展,而ARM指令集则有多个版本,在不同的应用场景中使用。

许可和生态系统:RISC-V架构没有知识产权费用,使用和实现都是自由的,因此在学术界和开源社区中获得了广泛的支持和发展。而ARM架构需要授权才能使用,因此在商业市场中获得了更多的应用和支持。

性能和功耗:由于ARM架构已经在市场上应用多年,因此在性能和功耗方面已经得到了广泛的优化。但是,RISC-V架构具有更好的可扩展性和灵活性,能够支持更多的应用和场景。


灵犀幻影 发表于 2025-7-12 20:41

RISC-V真是个革命性的概念,它打破了传统指令集架构的授权壁垒,为处理器设计带来了新的可能性。
页: [1]
查看完整版本: 什么是RISC-V?以及RISC-V和ARM、X86的区别