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
    +关注

    关注

    135

    文章

    9499

    浏览量

    388776
  • 寄存器
    +关注

    关注

    31

    文章

    5590

    浏览量

    129077
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11218

    浏览量

    222968
  • RISC-V
    +关注

    关注

    48

    文章

    2794

    浏览量

    51922
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    易灵思FPGA RISC-V自定义指令的使用方法

    RISC-V(Reduced Instruction Set Computing-V)是一个开源指令集架构(ISA),它的设计目标是提供一个简洁、可扩展且高效的指令集,适用于各种应用场
    的头像 发表于 11-24 11:36 3720次阅读
    易灵思FPGA <b class='flag-5'>RISC-V</b>自定义<b class='flag-5'>指令</b>的使用方法

    是德科技如何解决RISC-V芯片测试难题

    想理解 RISC-V,得先从“指令集架构”说起,这是芯片的“语言”。
    的头像 发表于 11-14 09:44 1151次阅读
    是德科技如何解决<b class='flag-5'>RISC-V</b>芯片测试难题

    risc-v P扩展(一) P指令集简介

    解码、医学成像、计算机视觉、嵌入式控制、机器人技术、人机界面等。 P指令集扩展提高了RISC-V CPU IP产品的DSP算法处理能力。随着RISC-V P
    发表于 10-23 07:40

    RISC-V指令集手册中F指令部分

    本文主要讲解RISC-V指令集手册中F指令部分 RISC-V标准中采用了符合IEEE 754-2008算术标准的单精度浮点计算指令,对于浮点
    发表于 10-22 08:18

    RISC-V B扩展介绍及实现

    B扩展简介 RISCV B扩展指的是RISCV用于位运算加速的一个扩展指令集,目的是使用一条指令实现原本需要2-3条指令才能实现的位操作指令。具体包含内容如下: B扩展就是
    发表于 10-21 13:01

    基于蜂鸟E203架构的指令集K扩展

    蜂鸟E203是一款基于RISC-V架构的微处理器,其指令集包含RV32I的基本指令集,RV32M的乘法扩展指令集,以及一些常用的定点指令和控
    发表于 10-21 09:38

    RISC-V 手册

    以下是关于RISC-V的详细介绍,结合其核心技术特点与当前发展现状:核心概念RISC-V(第五代精简指令集)是一种基于精简指令集RISC
    发表于 07-28 16:27 11次下载

    RISC-V和ARM有何区别?

    RISC-VARM是一种精简指令集RISC),以该指令集为基础的处理器通常被称为ARM芯片,它在全球范围内得到了极为广泛的应用。而RISC-V
    的头像 发表于 06-24 11:38 1731次阅读
    <b class='flag-5'>RISC-V</b>和ARM有何区别?

    RISC-V核低功耗MCU指令集架构(ISA)特点

    RISC-V核低功耗MCU通过开源生态、模块化架构与能效优化技术,成为物联网、穿戴设备等领域的理想选择‌。 一、‌开源与可定制性‌ 完全开源免费‌:RISC-V ISA无需专利授权费用,允许开发者
    的头像 发表于 04-23 10:01 1048次阅读

    直播预约 | 开源芯片系列讲座第27期:RISC-V AI指令集的标准化与开源实现

    鹭岛论坛开源芯片系列讲座第27期「RISC-VAI指令集的标准化与开源实现」3月26日(周三)21:00精彩开播期待与您云相聚,共襄学术盛宴!|直播信息报告题目RISC-VAI指令集
    的头像 发表于 03-10 17:55 1147次阅读
    直播预约 | 开源芯片系列讲座第27期:<b class='flag-5'>RISC-V</b> AI<b class='flag-5'>指令集</b>的标准化与开源实现

    RISC-V可能颠覆半导体行业格局的5种方式

    什么是RISC-VRISC-V是精简指令集计算(V)的缩写,是一种在半导体行业受到关注的开源指令集架构。它定义了计算机
    的头像 发表于 02-05 17:03 9次阅读
    <b class='flag-5'>RISC-V</b>可能颠覆半导体行业格局的5种方式

    关于RISC-V芯片的应用学习总结

    RISC-V芯片作为一种基于精简指令集计算(RISC)原则的开源指令集架构(ISA)芯片,近年来在多个领域展现出了广泛的应用潜力和显著优势。以下是对
    发表于 01-29 08:38

    RISC-V MCU技术

    嘿,咱来聊聊RISC-V MCU技术哈。 这RISC-V MCU技术呢,简单来说就是基于一个叫RISC-V指令集架构做出的微控制器技术。
    发表于 01-19 11:50

    risc-v芯片在电机领域的应用展望

    RISC-V作为一种开源的指令集架构,近年来在芯片设计领域崭露头角,并逐渐在电机控制领域展现出其独特优势。随着电机技术的不断进步和应用需求的多样化,RISC-V芯片有望为电机控制带来更高效、更灵
    发表于 12-28 17:20

    RISC-V架构及MRS开发环境回顾

    RISC-V是一种特定指令集架构。RISC-V指令集类似于INTEL的X86、ARM指令集,是一个被C
    发表于 12-16 23:08