计算机基础实战课
彭东
网名 LMOS,Intel 傲腾项目关键开发者
19719 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 57 讲
计算机基础实战课
15
15
1.0x
00:00/00:00
登录|注册

05|指令架构:RISC-V在CPU设计上到底有哪些优势?

你好,我是 LMOS。
上节课,我们学习了设计一个 CPU 所需要的相关基础知识,并带你认识了一些后面将会用到的 EDA 软件工具。看完课程的讲解,还有上手运行的 Demo,你是否对接下来要设计 CPU 已经蠢蠢欲动了?
哈哈,先别着急,我们在设计 CPU 之前,还有一些很关键的知识需要补充学习。没错,就是 CPU 的指令集架构。
指令集可以说是一个 CPU 的基石,要实现 CPU 的计算和控制功能,就必须要定义好一系列与硬件电路相匹配的指令系统。所以,在设计 CPU 之初,工程师就应该清楚 CPU 应该具有怎样的指令架构。

什么是指令集?

在第一节课我们讲历史的时候,曾经提到过,CPU 既是程序指令的执行者,又被程序中相关的指令所驱动。不过,我并没有具体说明什么是指令。其实指令就是我们交代 CPU 要执行的操作。
那到底什么是指令集呢?
我给你打个比方:假如你有一条狗,经过一段时间的训练,它能“听懂”了你对它说一些话。当你对它说“坐下”,它就乖乖地坐在地上;当你对它说“汪汪叫”;它就汪汪汪地叫起来,当你对它说“躺下”,它马上就会躺下来……这里你说的“坐下”、“汪汪叫”、“躺下”这些命令,就相当于计算机世界里的指令。
当然,你还可以继续训练狗,让它识别更多指令,我们把所有的这些指令汇总在一起,就是一个指令集。如果指令集里面没有“上厕所”这个命令,那么即使你对狗下这个命令,它也不会去执行。CPU 也一样,必须要有特定的指令集才能工作。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

RISC-V指令集架构以其模块化设计和简单结构为CPU设计带来了灵活性和性能优势。采用32个通用寄存器的设计使得编译器和汇编程序员的工作更加轻松。RV32I指令集包括算术、逻辑、移位、加载、存储、分支跳转和控制状态寄存器等多种指令,简洁而全面。相比CISC指令集,RISC-V省略了复杂的寻址模式,通过LOAD和STORE指令实现对内存的读写,提高了代码执行效率。此外,RISC-V的条件跳转指令和无条件跳转指令简洁高效,使得硬件设计更为简单。总的来说,RISC-V指令集架构的设计优势使得其更容易学习和使用,为CPU设计提供了灵活性和性能优势。文章还介绍了RISC-V指令格式、寄存器设计和指令解读等方面的优势,强调了RISC-V的简洁性和性能功耗比的提升。文章最后提出了思考题,引发读者对JAL指令的思考。整体而言,本文深入浅出地介绍了RISC-V指令集架构的特点和优势,对于对CPU设计感兴趣的读者具有很高的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《计算机基础实战课》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(16)

  • 最新
  • 精选
  • 3.141516
    Java 虚拟机的指令集也是大同小异,不同于 CPU 基于寄存器的架构,JVM 是基于栈的。从寄存器、内存的操作,转变为局部变量表、操作数栈的操作。

    作者回复: 正确 的

    2022-08-20归属地:湖北
    3
  • your problem?
    不知道有没有同学跟我是一样的问题,其实原理认认真真看也大概能明白,但是有很多的名词和细节都需要去查,我个人不是学计算机出身的,底层的东西都是自己后面自学的,之前看过极客上另一位讲计算机原理的老师,他的课程没有详细的讲到CPU指令的部分,像我这种情况老师是建议继续先跟着学习吗,还是先去补充相关知识呢

    作者回复: 先过一遍

    2022-08-25归属地:湖北
    6
    2
  • Abcd
    所以思考题的答案是什么?评论区的回答不在电子上啊,老师问的是有了U指令,为什么还需要J指令,两者除了高20位的立即数的表达方式不同外,指令格式完全相同。难道是想表达 U是高20bit的意思,J是低20bit的意思?那也没有必要调整立即数的比特顺序啊。还是说这个是为了尽量和其他指令格式保持一致?节省RTL工程师的工作量?

    作者回复: U型指令是和I型指令相对应的J型指令和B型相对应,都是为了更多的bit对齐

    2022-08-14归属地:湖北
    1
  • skyline
    “JAL 指令的执行过程是这样的。首先,它会把 20 位立即数做符号位扩展,并左移一位,产生一个 32 位的符号数” 请问为啥要左移一位呢?

    作者回复: 2字节对齐

    2022-08-05归属地:湖北
    2
    1
  • 王彬
    "要满足现代操作系统和应用程序的基本运行,RV32G 指令集或者 RV64G 指令集就够了,注意 RV32G 指令集或者 RV64G 指令集,只有寄存器位宽和寻址空间大小不同,这些指令按照功能可以分为如下几类。" 应该是RV32I和RV64I,一个字母的错误会给小白很大的困扰

    编辑回复: 收到,已经和老师确认过了,这里文字没有问题哦。G 是通用的意思 ,而I 只是整数指令集,G包含I。

    2023-01-10归属地:北京
    3
  • 小傅
    “它会把 20 位立即数做符号位扩展,并左移一位,产生一个 32 位的符号数” 这句话怎么理解?

    作者回复: 一个立即数只有20位 用它的第19位 填充20~31位 然后把这个32位数据(0~31位)左移一位

    2022-11-15归属地:湖北
  • 秋天
    老师 请教一下,寄存器的作用时什么 用来执行指令对吧? 那操作数和操作码又怎么理解呢?操作码可以理解为指令吗?这块有点晕

    作者回复: 寄存器是临时储存数据的 用于计算的

    2022-09-21归属地:湖北
  • 郝海波
    JAL 指令的执行过程是这样的。首先,它会把 20 位立即数做符号位扩展,并左移一位,产生一个 32 位的符号数。然后,将该 32 位符号数和 PC 相加来产生目标地址(这样,JAL 可以作为短跳转指令,跳转至 PC±1 MB 的地址范围内) 这里不太懂 20位左移1位不是21位吗 还有最后的PC +1MB 这个!MB怎么来的

    作者回复: 1 << 21 等于 多少 你不懂这个MB是什么 0x100000 字节 你知道吗

    2022-09-09归属地:湖北
    2
  • vampire
    简化译码电路

    作者回复: 算是一个点

    2022-08-24归属地:湖北
  • 让我们看云去
    老师,请教个问题:imm不是按照寄存器的bit从右往左连续分配,这样做的原因是啥?麻烦举个例子说明下帮助理解

    作者回复: 指令编码 和 指令 译码器要求

    2022-08-22归属地:湖北
收起评论
显示
设置
留言
16
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部