当前位置: 首页 > news >正文

十堰门户网站建设百度网页推广

十堰门户网站建设,百度网页推广,动漫视频网站开发,广州 餐饮 网站建设一条指令的执行一般要经过取指令,翻译指令,执行指令3个基本流程。CPU内部的电路分为不同的单元,取指但愿,译码单元,执行单元等。指令的执行也是按照流水线工序一步步执行的。如图2-34所示,我们假设每一个步…

    一条指令的执行一般要经过取指令,翻译指令,执行指令3个基本流程。CPU内部的电路分为不同的单元,取指但愿,译码单元,执行单元等。指令的执行也是按照流水线工序一步步执行的。如图2-34所示,我们假设每一个步骤的执行时间都是一个时钟周期,那么一条指令执行需要3个时钟周期。

    CPU执行指令的3个时钟周期里工作,其余两个时钟周期都处于空闲状态,其他两个执行单元也是如此,这样做效率太低了,消费者无法接受,老板更无法接受。解决方法就是引入流水线,让流水线上的每一颗螺丝钉都马不停蹄的运转起来。

    2.5.2 超流水线技术

    优化CPU流水线也是提升CPU性能的有效手段,流水线存在木桶短板效应,找出CPU流水线的性能瓶颈,对其再进行细分,拆解为更多的工序就可以了 。每一道工序都成为流水线中的一级,流水线越深,每一道工序的执行时间就会变得越小,处理器的时钟周期就可以更短,CPU的工作频率就可以更高,进而可以提升CPU的性能,提高工作效率。

    在手机生产流水线上,耗时最长的那道工序决定了整条流水线的吞吐率。CPU内部的流水线也是如此,流水线中耗时最长的那道工序单元的执行时间决定了CPU流水线的性能。

   流水线通过减少每一道工序的耗时来提升整条流水线的效率,在CPU内部也是如此,CPU内部的数字电路是靠时钟驱动来工作的,既然每条指令的执行时钟周期数不变,即执行每条指令都需要3个时钟周期,但是我们可以通过缩短一个时钟周期的时间来提升效率。即减少每条指令所耗费的时间,一个时钟周期的时间变短,CPU主频也就相应的提升,影响时钟周期的长短。

组合逻辑 1ns

寄存器1

0.5ns

组合逻辑2

1ns

寄存器2

0.5ns

组合逻辑3

1ns

寄存器3

0.5ns

   我们把5级以上的流水线称为超流水线结构,为了提升CPU主频,高性能的处理器一般都会采用这种超流水线结构,Intel的i7处理器有16级流水线,AMD的速龙64系列CPU有20级流水线,intel 第三代奔腾4处理器,有31级流水线。

    流水线是否越深越好?不一定,本质是拿空间换时间,流水线越深,电路会越复杂,需要更多的组合逻辑电路和寄存器,芯片面积越大,功耗上升了。

    流水线越深,就一定能提升性能吗?不一定,执行的程序指令如果是顺序结构的,没有中断或者跳转,流水线确实可以提高执行效率,但是当程序指令中存在跳转,分之结构的时候,下面预取的指令就要全部丢掉了。

BEQ R1, R2, here

ADD R2, R1, R0

ADD R5, R4, R3

here:

   SUB R2, R1, R0

   sub R5, R4, R3

  在上面的汇编程序中,BEQ是一个条件跳转指令,根据寄存器R1和R2的值是否相等,跳转到不同的地方执行,正常情况下,当执行BEQ指令时,下面的ADD指令就已经被预取和译码了,如果程序没有跳转,则会接着继续往下执行。

   流水线越深,一旦预取失败,浪费和损失就会越大,因为流水线种预取的几十条指令可能都要丢弃,此时流水线就发生了停顿,无法按照预期继续执行,这种情况我们一般称为流水线冒险。

    2.5.3 流水线冒险

   引起流水线冒险的原因有很多种,根据类型不同,我们一般分为3种。

1 结构冒险, 所需要的硬件正在为前面的指令工作

2 数据冒险 当前指令需要前面指令的运算数据才能执行

3 控制冒险:需要根据之前的指令的执行结果决定下一步的行为,

   结构冒险很好理解,如果多条指令都用相同的硬件资源,如果内存单元,寄存器等,就会发生冲突。

ADD R2, R1, R0

SUB R1, R4, R3

 上面这两条指令执行时需要访问寄存器R1, 但是这两条指令之间没有依赖关系,不需要数据的传送。仅仅在使用的硬件资源上发生了冲突,这种冲突我们称为结构冒险。解决结构冒险的方法很简单,我们直接对冲突的寄存器进行重命名就可以了。这种操作可以通过编码器静态实现,也可以通过硬件动态完成,如图2-38所示,我们在流水线中加入寄存器重命名单元就可以了。

取指

译码

重命名

执行

 通过硬件电路对寄存器重命名后,代码就变成了下面的样子,将SUB指令中的R1寄存器重命名为R5,结构冒险解决。

ADD R2, R1, R0

sub R5,R4, R3

 数据冒险指当前质量需要上一条指令的运算结构,上一条指令没有允许结束,当前指令就无法运行。只能暂停。

ADD R2,R1, R0

SUB R4, R2, R3

  第二条SUB指令,要等待第一条ADD指令运行结束,将运算结果写回寄存器R2之后才能执行。现在的经典CPU流水线一般分为5级,取指,译码,执行,访问内存,写回。也就是说,执行指令结束后,还需要吧运行结果写回寄存器,下一条指令才能到这个寄存器取数据。要解决流水线的数据冒险,有很多方法,比如Operand forwarding 技术,当ADD指令运行结束后,不再执行后面的回写寄存器操作,而是直接使用运算结果,第二个解决方法是在ADD和SUB指令中插入空指令,暂缓SUB指令的执行。

    为了防止数据冒险,我们在时钟周期2和时钟周期3内,添加了两个空指令,让流水线暂时停顿,产生空泡。在第5个时钟周期,ADD指令执行结束,并将运算结果写回寄存器R2之后,SUB指令才在第6个时钟周期继续执行,通过这种填充空指令的方式,SUB指令虽然延缓了2个时钟周期执行,但是总比吧后面预取的几十条指令都丢掉强,当流水线很深的时候,这种方式很划算。

    控制冒险也是如此,当我们执行BEQ这样的条件判断的时候,无法确定接下来要执行什么,无法确定到哪里取指令的时候,也可以采取图2-39所示的解决方法,插入几个空指令,等BEQ执行结束后再去取指令就可以了。

http://www.tj-hxxt.cn/news/129654.html

相关文章:

  • 外贸网站系统今日头条官方正版
  • ps为什么做不了视频网站新闻播报最新
  • 多个网站备案负责人百度搜索引擎推广
  • 银川市做网站的公司百度如何免费推广
  • 注册安全工程师报名时间seo网络推广经理招聘
  • 门窗网站建设免费网站推广软件下载
  • 一家做特卖的网站手机版网站注册查询
  • 成都网站建设新网创想百度统计手机app
  • 怎么用自己的电脑做网站服务器凌云seo博客
  • 网站建设需要服务器么雅虎日本新闻
  • 基于java技术的网站开发短视频搜索优化
  • 做房地产行业的怎么做网站吉林seo网络推广
  • php网站后台上传不了图片百度搜索关键词数据
  • 网站设置会员怎么在百度上发帖推广
  • 魅影看b站直播可以吗手机网站优化及推广方案
  • 手机版自适应网站怎么做sem竞价是什么意思
  • 企业网站建设要注意网站联盟推广
  • 常用网站域名百度排行榜小说
  • 昆明医院网站建设百度服务商平台
  • 甘肃省人民政府最新任免网站优化有哪些类型
  • 服务器如何搭建网站爱站网关键词挖掘工具站长工具
  • 公司建设网站制作海外网络推广方案
  • 网站设计目标 优帮云网站权重等级
  • 企业英文网站查看关键词被搜索排名的软件
  • 网站开发类型怎么给自己的公司建立网站
  • 大丰区政府网站风建设作就在刚刚武汉宣布最新消息
  • 进行网站开发seo关键词优化平台
  • 哪些大网站是java做的保定百度推广优化排名
  • 怎么自己做网站地图培训网站
  • 做网站后台系统的规范金泉网做网站多少钱