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

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

3天内不再提示

处理器功能单元组成与CPU的流水线的详细解析

GReq_mcu168 2017-12-23 10:48 次阅读

1989年推出的i486处理器引入了五级流水线。这时,在CPU中不再仅运行一条指令,每一级流水线在同一时刻都运行着不同的指令。这个设计使得i486比同频率的386处理器性能提升了不止一倍。五级流水线中的取指阶段将指令从指令缓存中取出(i486中的指令缓存为8KB);第二级为译码阶段,将取出的指令翻译为具体的功能操作;第三级为转址阶段,用来将内存地址和偏移进行转换;第四级为执行阶段,指令在该阶段真正执行运算;第五级为退出阶段,运算的结果被写回寄存器或者内存。由于处理器同时运行了多条指令,大大提升了程序运行的性能。

处理器一般由如下功能单元组成:

取指单元

译码单元

执行单元

Load/store单元(load用于从内存中取数据,而STORE用于存数据到内存)

例外/中断单元

电源管理单元

流水线通常由取指、译码、执行及Load/Store等单元组成。各单元按图所示的几个步骤循环重复自身工作。

流水线的含义:

与工厂生产线类似,将一件工作分成若干个固定的工序进行。

cpu流水线技术是一种将指令分解为多步,并让不同指令的各步操作重叠,从而实现几条指令并行处理,以加速程序运行过程的技术。指令的每步有各自独立的电路来处理,每完成一步,就进到下一步,而前一步则处理后续指令。(原理和生产流水线一样)

CPU指令流水线

根据之前描述的基础,指令进入流水线,通过流水线处理,从流水线出来的过程,对于我们程序员来说,是比较直观的。

I486拥有五级流水线。分别是:取指(Fetch),译码(D1, main decode),转址(D2, translate),执行(EX, execute),写回(WB)。某个指令可以在流水线的任何一级。

但是这样的流水线有一个明显的缺陷。对于下面的指令代码,它们的功能是将两个变量的内容进行交换。

1

2

3

XOR a, b

XOR b, a

XOR a, b

从8086直到386处理器都没有流水线。处理器一次只能执行一条指令。再这样的架构下,上面的代码执行并不会存在问题。

但是i486处理器是首个拥有流水线的x86处理器,它执行上面的代码会发生什么呢?当你一下去观察很多指令在流水线中运行,你会觉得混乱,所以你需要回头参考上面的图。

1、第一步是第一条指令进入取指阶段;

2、然后在第二步第一条指令进入译码阶段,同时第二条指令进入取指阶段;

3、第三步第一条指令进入转址阶段,第二条指令进入译码阶段,第三条指令进入取指阶段。

4、但是在第四步会出现问题,第一条指令会进入执行阶段,而其他指令却不能继续向前移动。

5、第二条xor指令需要第一条xor指令计算的结果a,但是直到第一条指令执行完成才会写回。

所以流水线的其他指令就会在当前流水级等待直到第一条指令的执行和写回阶段完成。第二条指令会等待第一条指令完成才能进入流水线下一级,同样第三条指令也要等待第二条指令完成。

这个现象被称为流水线阻塞或者流水线气泡。

常用概念:

1、流水线级数:流水线的节拍数。

2、吞吐率:单位时间内流水线能处理的任务数量。

3、最大吞吐率:流水线达到不间断流水的稳定状态后可获得的吞吐率。

4、加速比:流水方式的工作速度与等效的顺序工作方式时间的比值。

流水线指标:

1、流水技术无助于减少单个任务的处理延迟(latency),但有助于提高整体工作负载的吞吐率

2、多个不同任务同时操作, 使用不同资源

3、潜在加速比= 流水线级数

4、流水线的速率受限于最慢的流水段

5、流水段的执行时间如果不均衡,那么加速比就会降低

6、开始填充流水线的时间和最后排放流水线的时间降低加速比

低功耗嵌入式领域的ARM7就是采用3级流水线结构。

处理器功能单元组成与CPU的流水线的详细解析

超流水

超流水线技术是通过细化的流水,提高主频。使得机器在一个周期内完成一个甚至多个操作,其实质是用空间换取时间。

超流水处理器是相对于基准处理器而言的,一般cpu的流水线是基本的指令预取,译码,执行和写回结果四级。超流水线(superpiplined)是指某型CPU内部的流水线超过通常的5~6步以上,例如Pentium pro的流水线就长达14步。将流水线设计的步(级)数越多,其完成一条指令的速度越快,因此才能适应工作主频更高的CPU。这一点我们可以用日常事例来说明,比如有5个人接力传送木头(对应一个5级的流水线),超流水是说细化该流水过程,即由10个人接力(此时为10级流水),显然完成全部任务的速度会快。相当于***的一句话:人多力量大(效率高)。

处理器功能单元组成与CPU的流水线的详细解析超标量

超标量是指在CPU中有一条以上的流水线,并且每时钟周期内可以完成一条以上的指令,这种设计就叫超标量技术。 其实质是以空间换取时间。

CPU架构是指在一颗处理器内核中实行了指令级并行的一类并行运算。这种技术能够在相同的CPU主频下实现更高的CPU吞吐率(throughput)。

处理器功能单元组成与CPU的流水线的详细解析


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

    关注

    68

    文章

    18275

    浏览量

    222160
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10442

    浏览量

    206564
  • 流水线
    +关注

    关注

    0

    文章

    110

    浏览量

    24989

原文标题:CPU的流水线

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    什么是流水线?ARM处理器流水线简析

    流水线是为了提高效率,能并发同时进行多个任务。
    的头像 发表于 09-05 15:39 1241次阅读
    什么是<b class='flag-5'>流水线</b>?ARM<b class='flag-5'>处理器</b><b class='flag-5'>流水线</b>简析

    FPGA中的流水线设计

    设计的算法,如第一条中表述的流水线设计就是将组合逻辑系统地分割,并在各个部分(分级)之间插入寄存,并暂存中间数据的方法。针对处理器中的流水线结构。比如,比如 5—6 个不同
    发表于 10-26 14:38

    ARM流水线有什么作用

    看到汇编中很多关于程序返回与中断返回时处理地址都很特别,仔细想想原来是流水线作用的效果。所以,决定总结学习下ARM流水线。ARM7处理器采用3级流水
    发表于 07-16 06:53

    科普下CPU流水线的工作原理

    现在的CPU处理器一般都是超流水线工作,动不动就是10级以上流水线,超高主频,这两者之间有什么关系呢?今天就跟大家科普下CPU
    发表于 12-15 06:17

    ARM架构系列中的流水线设计

    什么是ARM流水线流水线(Pipelining)是 RISC(精简指令集)处理器用来执行指令的机制,通过获取指令来加速执行,而其他指令同时被解码和执行。这反过来又允许内存系统和处理器
    发表于 04-11 17:23

    现代RISC中的流水线技术

    作Stretch计算机)。后来的CDC 6600同时采用了流水线和多功能部件。到了20世纪80年代,流水线技术成为RISC处理器设计方法中最基本的技术之一。RISC设计方法的大部分技术
    发表于 03-01 17:52

    流水线结构的高效SAR快视成像处理器

    流水线结构的高效SAR快视成像处理器
    发表于 05-08 17:16 23次下载

    CPU流水线的定义

    cpu流水线技术是一种将指令分解为多步,并让不同指令的各步操作重叠,从而实现几条指令并行处理,以加速程序运行过程的技术。
    发表于 12-14 15:29 4524次阅读

    处理器系列之CPU流水线科普

    1989年推出的i486处理器引入了五级流水线。这时,在CPU中不再仅运行一条指令,每一级流水线在同一时刻都运行着不同的指令。这个设计使得i486比同频率的386
    发表于 01-26 01:18 3456次阅读
    <b class='flag-5'>处理器</b>系列之<b class='flag-5'>CPU</b><b class='flag-5'>流水线</b>科普

    一文读懂处理器流水线

    本文将讨论处理器的一个重要的基础知识:流水线。熟悉计算机体系结构的读者一定知道,言及处理器微架构,几乎必谈其流水线处理器
    发表于 04-08 08:16 2.2w次阅读
    一文读懂<b class='flag-5'>处理器</b><b class='flag-5'>流水线</b>

    数字信号处理器结构2_流水线

    流水线处理是把一个处理分成多个子处理处理数据经过所有或部分子处理单元
    发表于 04-09 16:00 3次下载
    数字信号<b class='flag-5'>处理器</b>结构2_<b class='flag-5'>流水线</b>

    自制CPU(三)流水线

    经过上两篇文章的阅读,大家应该清楚自己的CPU大致是如何处理数据的,而又是如何执行指令的。我们现在来在简略的说一下流水线CPU的设计。(源码在CSDN下载页,请自取)
    的头像 发表于 07-16 09:20 5490次阅读

    FPGA之流水线练习5:设计思路

    流水线的工作方式就象工业生产上的装配流水线。在CPU中由5—6个不同功能的电路单元组成一条指令处理
    的头像 发表于 11-29 07:06 2301次阅读

    CPU流水线的问题

    1989 年推出的 i486 处理器引入了五级流水线。这时,在 CPU 中不再仅运行一条指令,每一级流水线在同一时刻都运行着不同的指令。这个设计使得 i486 比同频率的 386
    的头像 发表于 09-22 10:04 1365次阅读

    什么是流水线 Jenkins的流水线详解

    jenkins 有 2 种流水线分为声明式流水线与脚本化流水线,脚本化流水线是 jenkins 旧版本使用的流水线脚本,新版本 Jenkin
    发表于 05-17 16:57 668次阅读