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

+2流水线是怎样提高性能的,会遇到什么问题,解决方法是什么

提高性能方法:

1.主频

  主频也叫时钟频率,单位是MHz,用来表示CPU的运算速度。CPU的主频=外频×倍频系数。很多人认为主频就决定着CPU的运行速度,这不仅是个片面的,而且对于服务器来讲,这个认识也出现了偏差。至今,没有一条确定的公式能够实现主频和实际的运算速度两者之间的数值关系,即使是两大处理器厂家Intel和AMD,在这点上也存在着很大的争议,我们从Intel的产品的发展趋势,可以看出Intel很注重加强自身主频的发展。像其他的处理器厂家,有人曾经拿过一快1G的全美达来做比较,它的运行效率相当于2G的Intel处理器。
  所以,CPU的主频与CPU实际的运算能力是没有直接关系的,主频表示在CPU内数字脉冲信号震荡的速度。在Intel的处理器产品中,我们也可以看到这样的例子:1 GHz Itanium芯片能够表现得差不多跟2.66 GHz Xeon/Opteron一样快,或是1.5 GHz Itanium 2大约跟4 GHz Xeon/Opteron一样快。CPU的运算速度还要看CPU的流水线的各方面的性能指标。

  当然,主频和实际的运算速度是有关的,只能说主频仅仅是CPU性能表现的一个方面,而不代表CPU的整体性能。

  3.前端总线(FSB)频率

  前端总线(FSB)频率(即总线频率)是直接影响CPU与内存直接数据交换速度。有一条公式可以计算,即数据带宽=(总线频率×数据带宽)/8,数据传输最大带宽取决于所有同时传输的数据的宽度和传输频率。比方,现在的支持64位的至强Nocona,前端总线是800MHz,按照公式,它的数据传输最大带宽是6.4GB/秒。

  6.缓存

  缓存大小也是CPU的重要指标之一,而且缓存的结构和大小对CPU速度的影响非常大,CPU内缓存的运行频率极高,一般是和处理器同频运作,工作效率远远大于系统内存和硬盘。实际工作时,CPU往往需要重复读取同样的数据块,而缓存容量的增大,可以大幅度提升CPU内部读取数据的命中率,而不用再到内存或者硬盘上寻找,以此提高系统性能。但是由于CPU芯片面积和成本的因素来考虑,缓存都很小。

  11.超流水线与超标量

  在解释超流水线与超标量前,先了解流水线(pipeline)。流水线是Intel首次在486芯片中开始使用的。流水线的工作方式就象工业生产上的装配流水线。在CPU中由5—6个不同功能的电路单元组成一条指令处理流水线,然后将一条X86指令分成5—6步后再由这些电路单元分别执行,这样就能实现在一个CPU时钟周期完成一条指令,因此提高CPU的运算速度。经典奔腾每条整数流水线都分为四级流水,即指令预取、译码、执行、写回结果,浮点流水又分为八级流水。

  超标量是通过内置多条流水线来同时执行多个处理器,其实质是以空间换取时间。而超流水线是通过细化流水、提高主频,使得在一个机器周期内完成一个甚至多个操作,其实质是以时间换取空间。例如Pentium 4的流水线就长达20级。将流水线设计的步(级)越长,其完成一条指令的速度越快,因此才能适应工作主频更高的CPU。但是流水线过长也带来了一定副作用,很可能会出现主频较高的CPU实际运算速度较低的现象,Intel的奔腾4就出现了这种情况,虽然它的主频可以高达1.4G以上,但其运算性能却远远比不上AMD 1.2G的速龙甚至奔腾III。

  12.封装形式

  CPU封装是采用特定的材料将CPU芯片或CPU模块固化在其中以防损坏的保护措施,一般必须在封装后CPU才能交付用户使用。CPU的封装方式取决于CPU安装形式和器件集成设计,从大的分类来看通常采用Socket插座进行安装的CPU使用PGA(栅格阵列)方式封装,而采用Slot x槽安装的CPU则全部采用SEC(单边接插盒)的形式封装。现在还有PLGA(Plastic Land Grid Array)、OLGA(Organic Land Grid Array)等封装技术。由于市场竞争日益激烈,目前CPU封装技术的发展方向以节约成本为主。

 

--

1、多个任务在同一时间周期内争用同一个流水段
例如,假如在指令流水线中,如果数据和指令是放在同一个储存器中,并且访问接口也只有一个,那么,两条指令就会争用储存器;在一些算数流水线中,有些运算会同时访问一个运算部件。
2、数据依赖
比如,A运算必须得到B运算的结果,但是,B运算还没有开始,A运算动作就必须等待,直到A运算完成,两次运算不能同时执行。
3、 条件转移的影响
如果第一条指令是一个条件转移指令,那么系统就会不清楚下面应该执行那一条指令。这时就必须等第一条指令的判断结果出来才能执行第二条指令。条件转移所造成的流水线停顿甚至比相关还要严重的多。
越是长的流水线,相关和转移两大问题也越严重,所以,流水线并不是越长越好,超标量也不是越多越好,找到一个速度与效率的平衡点才是最重要的。

 

--

解决方法:

1. 用户反馈(包括测试人员)

2.在线监控

(1)优化业务流程 (2)合理的线程分配 (3)预处理和延时加载 (4)缓存 (5)使用正确的API

 

转载于:https://www.cnblogs.com/Ph-one/p/7678794.html

相关文章:

  • +3软件优化至关重要,软件优化一般有哪些方法?
  • +4 高速缓存
  • +5性能分析定律
  • +6存储结构是怎样提高性能的,它和局部性的关系是什么。
  • +7虚拟内存的作用,通过什么方式提高虚拟内存的性能
  • EFM32JG系列MCU内部温度传感器使用方法
  • 1.1组合电路、时序电路在计算机课程中的地位
  • 4.2说说计算机中的异常
  • 并发编程的几种形式
  • 【传感器】BMA253 数字,三轴加速度传感器
  • 数据结构(六)——二叉树 前序、中序、后序、层次遍历及非递归实现 查找、统计个数、比较、求深度的递归实现...
  • c语言的按位运算符
  • 汇编语言如何取段地址的
  • 二路归并排序算法
  • 什么是MSB/LSB码?
  • [译]如何构建服务器端web组件,为何要构建?
  • “大数据应用场景”之隔壁老王(连载四)
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • co模块的前端实现
  • DataBase in Android
  • exif信息对照
  • linux学习笔记
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • rabbitmq延迟消息示例
  • Rancher如何对接Ceph-RBD块存储
  • scrapy学习之路4(itemloder的使用)
  • use Google search engine
  • 基于游标的分页接口实现
  • 前端_面试
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 原生Ajax
  • 怎样选择前端框架
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (九)信息融合方式简介
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (一)认识微服务
  • (原)本想说脏话,奈何已放下
  • (转)C#调用WebService 基础
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • .net core 源码_ASP.NET Core之Identity源码学习
  • @synthesize和@dynamic分别有什么作用?
  • [202209]mysql8.0 双主集群搭建 亲测可用
  • [ai笔记3] ai春晚观后感-谈谈ai与艺术
  • [C#]winform制作圆形进度条好用的圆环圆形进度条控件和使用方法