0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

简单讲讲RISC-V指令集CPU的参数

冬至配饺子 来源:天奇工作室 作者:LRC 2022-08-07 14:55 次阅读

第二代CPU新鲜出炉。

下面简单讲讲该CPU的参数

poYBAGLvYTWAJ5kKAACYFY2VAk8677.png

CPU芯片封装全貌

本次CPU采用32位RISC-V指令集架构(一代是自己瞎编指令集)。指令集就是程序指令的集合,指引硬件如何设计、如何运行。不同指令集的CPU运行的程序是不同的,相同的指令集的CPU则基本可以兼容为此指令集编写的程序。目前主流的指令集有电脑中的x86和手机中的ARMRISC-V作为一种新兴的指令集架构,它汲取了之前的指令集的架构的优缺点,有着先天的优势。此外,它不同于老牌指令集架构,没有需要为前代软件兼容的困扰,可以说是无病一身轻,整个架构轻盈简单却又高效。

poYBAGLvYVCAMttnAADYkAZcp_s051.png

第二级流水线

采用6级流水线设计(一代是单周期设计,可以理解成一级流水线)。流水线设计是CPU设计的一大难点,开始设计之初我曾考虑是否真的要直接上5级经典流水线(一位学长曾劝我再改进一次单周期CPU),最后竟然还多设计出了1级流水线。我先解释一下流水线是什么。CPU中有很多部件(这些部件不一定有很清楚的边界并且不一定是处于一个集中的位置),例如译码器(将指令翻译成控制信号)、寄存器组(存放数据),ALU(计算单元)和存储控制单元(控制读取和写入数据)等等。单周期CPU执行一条指令需要一个周期,在这整个周期中执行指令需要分别用到上面所说的所有部件,用是都要用,但是在本周期的一个时间段中至多只能用到一个单元,那么这段时间中总有别的单元被闲置了,而这些单元是线性排布的,在用寄存器组之前必须先经过译码器解码,经过ALU之前必须从寄存器组中读取数据……比如说:一个时钟周期是1s。译码占0.2s,从寄存器中读数占0.2s,计算占0.4s,写回数据占0.2s,加起来一共是1s。

如果我们每周期只用一个单元,让多个指令依次使用这些单元,那么就可以极大提高CPU的执行速度,这就是流水线技术。那么时钟周期就缩短至0.4s(与耗时最长的那一步时间齐平),其中译码占0.2s,从寄存器中读数占0.2s,计算占0.4s,写回数据占0.2s。我们发现时钟周期可以变短了,也就是频率变高了,处理速度变快了。

其实听起来也没那么难嘛?考虑一下这个问题。假设第一条指令是把A寄存器中的数值和B寄存器的数值加起来放到C的寄存器里,第二条指令是把B寄存器的数值和C的寄存器的数值加起来放到A的寄存器中。那么第二个指令开始执行到ALU(计算单元)的前端的时候就会发现第二条指令要用的C的数值呢?哦,前一条指令还没算出C的数值,那怎么办?那第二条指令还不能执行。什么时候能执行?第一条指令算好的时候。第一条指令什么时候算好?不知道……反正一堆麻烦。而且大多数真实情况是前面有十几条指令要用C的数值,并且指令可能各不相同,有的是做做加法,有的可能是做做除法(异常耗时),有的甚至拿C寄存器的数值作为地址访问内存。你们可以想想这个问题要怎么解决。

pYYBAGLvYWmAWTN4AAG-Fnnl8i0271.png

端口写入读取寄存器组

第二条指令要等第一条指令。这种情况又被叫作冲突(hazard),冲突又被分为寄存器冲突和结构冲突(好像是这两个词,意思领会到就行),这种属于寄存器冲突。刚才说到,第二条指令不能等第一条指令,那么我们需要一种特殊的信号控制无指令的单元,这种信号叫作空泡(bubble)。那么回过来想,虽然用了流水线,但是因为各种冲突,指令可能也不能好好执行几个。相反,可能由于这复杂的控制电路和更高的电路运行频率,功耗变高了,芯片面积变大了,好像适得其反。那么我们就要讲到第二代CPU的第二个亮点。

乱序执行。什么第二个指令不能执行?那第三个能吗?第三个可以!那就先执行第三个。这就是乱序执行的全部逻辑。看起来也很简单,但做起来确实不太容易。当时设计之初也在考虑是否要实现乱序执行,因为流水线的难度已经很大了,乱序执行再加下去难度简直要爆炸,但是我转念一想,如果流水线没有乱序执行,就像高楼没有电梯(原谅我贫穷的比喻),发挥不出任何优势。最后还是硬着头皮上了,竟然也成了……

poYBAGLvYYGARMRDAAEZvNT3m1c192.png

CPU保留站(解决冲突的,乱序执行的重要位置)

除了上述所讲的亮点之外,还有一些先进之处。例如寄存器重命名、保留站、FIFO队列等等。之后会再细讲。


审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    134

    文章

    8647

    浏览量

    361728
  • 寄存器
    +关注

    关注

    30

    文章

    5025

    浏览量

    117682
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10428

    浏览量

    206511
  • RISC-V
    +关注

    关注

    41

    文章

    1895

    浏览量

    45041
收藏 人收藏

    评论

    相关推荐

    有没有RISC-V指令集文档分享一下?

    有没有RISC-V指令集文档分享一下?了解一下他的汇编指令
    发表于 03-30 11:48

    RISC-V 基础学习:RISC-V 基础介绍

    是什么? RISC-V 是一套开放许可证书、免费的、由基金维护的、一个整数运算指令集外加多个扩展指令集CPU 结构规范(ISA)。 整数运算
    发表于 03-12 10:25

    RISC-V开放架构设计之道|阅读体验】+ 阅读深体验

    本人没有芯片设计,或者指令集方面较深的基础知识,不过认真看这本书也令我学到了不少。 书中一开始便提到RISC-V的目标是称为一款通用的指令集架构:需要适合设计各种规模的处理器,能兼容各种流行的软件栈
    发表于 03-05 22:01

    RISC-V开放架构设计之道|阅读体验】汇编语言和扩展指令集

    RISC-V开放架构设计之道|阅读体验】汇编语言和扩展指令集 汇编语言 将C语言翻译成可执行的机器语言的重要步骤包括编译过程,汇编过程,链接过程。 函数调用约定过程分为六个阶段: 1)将参数存放
    发表于 02-03 13:29

    RISC-V开放架构设计之道|阅读体验】RISC-V基础整数指令集

    第2章 RV32I:RISC-V基础整数指令集 本章重点讲解构成RISC-V基础整数指令集的基本指令
    发表于 01-31 21:10

    RISC-V开放架构设计之道|阅读体验】RV64指令集设计的思考以及与流水线设计的逻辑

    RISC-V指令集体系结构可以扩展出支持浮点运算的指令集、支持向量运算的指令集和支持安全计算的指令集等。
    发表于 01-29 10:09

    RISC-V开放架构设计之道|阅读体验】RISC-V基础整数指令集RV32I

    本书第二至十章都是讲RISC-V指令集,最后第十一章讲了RISC-V的未来可选择扩展。本篇梳理学习基础指令集RV32I。 RV32I指令集
    发表于 01-28 11:41

    RISC-V开放架构设计之道|阅读体验】 RISC-V设计必备之案头小册

    ,最基础的RV32已经是完全不变化。以此来规避在过去指令集设计中的错误。 然后开始了在RISC-V中应该如何编写汇编代码,书中大致讲了将c语言编译成计算机执行的机器语言程序的重要步骤,并对每个步骤进行了简单的描述
    发表于 01-22 16:24

    risc-v标准指令集如何扩展?

    想问问具体要怎么实现标准指令集的扩展呢?需要修改哪些硬件啊? 每一种指令集扩展是相似的吗?还是需要不一样的步骤呢(比如V扩展、K扩展)?
    发表于 01-21 22:19

    DLX指令集RISC_CPU_verilog源码分享

    DLX指令集RISC_CPU_verilog源码
    发表于 09-26 07:01

    RISC-V芯片出货量崛起,专利联盟在上海成立

    指令集开源、设计简便、工具链完整,可实现模块化设计,开发更适应特定需求的独特芯片,并打破x86和ARM架构高价授权费、定制化困难的惯例。RISC-V旨在通过开放标准的协作促进CPU的设计创新,给业界提供
    发表于 08-30 23:06

    RISC-V产业论坛召开,专利联盟正式成立

    指令集开源、设计简便、工具链完整,可实现模块化设计,开发更适应特定需求的独特芯片,并打破x86和ARM架构高价授权费、定制化困难的惯例。RISC-V旨在通过开放标准的协作促进CPU的设计创新,给业界提供
    发表于 08-30 10:40

    RISC-V新进展!deepin 成功适配VisionFive 2

    RISC-V指令集是基于精简指令集计算(RISC)原理建立的开放指令集架构(ISA),RISC-V
    发表于 07-10 09:23

    两大架构RISC-V 和 ARM 的各种关系

    一、RISC-V 和 ARM 的相似之处 RISC-V 和 ARM 基本上都是 RISC(精简指令集计算机)。RISC-V 和 ARM 都使
    发表于 06-21 20:31

    谈一谈RISC-V架构的优势和特点

    与ARM都被欧美控制的情况下,自由设计与制造CPU芯片对我国来说是极其重要的,否则就会被卡脖子。RISC-V采用了精简指令集指令数量少、结构简单
    发表于 05-14 09:05