计算机组成原理–浅谈计算机性能

计算机组成原理–浅谈计算机性能本篇文章属于计算机组成原理的开篇之作,主讲影响计算机性能的因素与提升的计算机性能的路径。

大家好,又见面了,我是你们的朋友全栈君。

计算机组成原理|浅谈计算机性能

本篇文章属于计算机组成原理的开篇之作,主讲影响计算机性能的因素与提升的计算机性能的路径。
关键词: 性能,CPU,响应时间,主频,功耗,电压,并行…

前言

目前所有的文章思想格式都是:知识+情感。
知识:对于所有的知识点的描述。力求不含任何的自我感情色彩。
情感:用我自己的方式,解读知识点。力求通俗易懂,完美透析知识。

正文

计算机性能的衡量标准

衡量计算机性能的标准有两个,分别是响应时间(Response time)吞吐率(Throughput)
1.响应时间,也称为执行时间(Execution time)。表示的是,计算机执行一段程序的总时间。
2.吞吐率,也称为带宽(Bandwidth)。表示的是,计算机执行一段程序每一次执行的量。
注意:存在一个响应时间与吞吐率的关系,即响应时间=吞吐率x执行次数。

响应时间

首先,得知可以提高响应时间进而提高计算机性能。然而,在计算机中,影响响应时间的主要因素是CPU的性能。

一般性能测试

性能,可以看成是响应时间的倒数,即
** 性能 = 1/响应时间**
此时,只要保证响应时间越短,性能的数值就越好。

问题:响应时间怎么来,是现实生活中的时间吗?
回答: 当然不是!
第一种情况,CPU不可能做到只运行一个程序,首先是不是需要支持操作系统在运行,才可以进而运行测试程序。在真实的环境中,CPU会在不同的进程中切换,运行程序,单位是GHz,人是感觉不到的。
第二种情况,CPU会处于满载运行与降频运行两种模式,对应的运行结果当然是不一样的!并且,你需要想一下,硬件的当前状态无时无刻都在变化,没法保证一致。

了解内容:在实际生活中,评价一个计算机性能的第三方机构叫SPEC(Standard Performance Evaluation Corporation),主要是提供的 CPU 基准测试程序,通过数十个不同的计算程序,对于 CPU 的性能给出一个最终评分。

CPU性能测试

在了解了一般的性能测试之后,针对CPU,我们可以得到新的性能测试方法,引入CPU时钟周期,即
性能 = 1/(CPU时钟周期数 x CPU时钟周期)

在上式中,CPU的时钟周期,就是我们CPU 的主频(Frequency/Clock Rate)。我的主机是2.81GHz,表示1秒的时间内,可以执行的简单指令的数量是 2.8G 条。

所以,可以引入指令,得到新的性能公式:
性能 = 1/(指令数x每条指令的平均周期数 x CPU时钟周期)

即,可以优化性能就有了三个方面:
1.指令数,通过编译器将指定数减少,属于指令设计层面。
2.每条指定数的平均周期数,也叫作PCI(Cycles Per Instruction),通过提高CPU技术实现减少平均周期数,属于CPU设计层面。
3.CPU时钟周期,通过提升CPU的主频,获得更小的CPU时钟周期,属于电路硬件层面。

了解内容:这里会涉及晶振的概念,玩过单片机的都知道有个晶振的东西,CPU内部有个类似的东西。
在打游戏,或者图像渲染的时候,会有一个超频的概念,就是将计算机的实际主频调快,这是可以认为调整的,只不过会出现散热问题而已。

CPU主频优化

通过上面,了解到可以通过提高CPU的主频,进而获得更高的性能。

先了解一下CPU的构成。CPU,一般都被叫作超大规模集成电路(Very-Large-Scale Integration,VLSI)。其内部,包含亿级别的晶体管,让晶体管里面的“开关”不断地去“打开”和“关闭”,来组合完成各种运算和功能。

一个 CPU 的功率,可以用这样一个公式来表示:
功耗 ~= 1/2 ×负载电容×电压的平方×开关频率×晶体管数量

从上式,可以看出电压与功耗是平方的关系,晶体管数量与功耗成线性关系。运用我们聪明的1+1=2的大脑,肯定是保证功耗不大的情况下,优先降低电压,其次增加晶体管的数量。

注意: CPU功率可不能搞的很大,笔记本可不是插电源的,需要携带,一个小时电就用完了,这是不理想的,当然一个月不充电也是幻想状态~
CPU的电压可不能随便小,理论上是只要保证有电压就可以,但实际是电压太小了,晶体管的打开与关闭就不工作….
CPU内部的晶体管的数量,也不能无限多,受限于CPU的体积,CPU工作会散热的,太多了不适合散热,会使得CPU罢工~

了解内容:相同的体积增加晶体管的数量,那就必须将晶体管做小,这就是提升制程
在自己组装台式机的时候,CPU还是当然是盒装好,但是散片其实也还行,毕竟目前CPU的工艺,可不是假货能模仿的,给钱都做不出来….

吞吐率

当看了响应时间的优化之后,再看吞吐率优化,直接是简单的很,一句话概括吞吐率核心思想:人多力量大

借助于并行的思想,实现多核CPU工作,实现性能优化,毕竟响应时间的优化已经步履艰难了。

并行基于一个经验定律,即阿姆达尔定律(Amdahl’s Law)。
优化后的执行时间 = 受优化影响的执行时间 / 加速倍数 + 不受影响的执行时间

基于上式,想要提升性能,就是获得更小的 优化后的执行时间,只能从增加加速倍数出发。

注意: 受优化影响的执行时间表示的是可以并行执行的时间,加速倍数正是并行的CPU核心数。

虽然可以使用并行思想,提升计算机性能,但是并行依然受限制与于 不受影响的执行时间,这一段时间依然是串行的执行。并且会有一个极限值,无论提高多少加速倍数,时间变化不大。

总结

本文,讲述计算机性能的提升,提出了基于响应时间的性能优化,基于吞吐率的性能优化。
基于响应时间的优化,可以提升CPU的主频,降低CPU的电压,提高晶体管的数量,但是受限制于CPU的散热与功耗。
基于吞吐率的优化,可以进行并行,但是依然受限制于不能并行的部分。
还可以基于大概率事件选择GPU运算,代替CPU;使用CPU的流水线技术;使用预测提高性能。

了解内容:计算机显卡内部就是GPU。

CPU的预测,会对CPU内部一、二级缓存变量调用产生影响。

结束语

最近在深入挖掘计算机的底层知识,不仅仅是学习知识,对于计算机这个世界也有了新的认识,状态很好!感觉自己收获很多!
希望自己可以一直挖下去~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155675.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • eclipse集成Scala,运行Spark项目和<console>:1: error: ‘;’ expected but ‘.’ found. 报错「建议收藏」

    eclipse集成Scala,运行Spark项目和<console>:1: error: ‘;’ expected but ‘.’ found. 报错「建议收藏」eclipse集成Scala,运行Spark项目和<console>:1: error: ‘;’ expected but ‘.’ found. 报错

    2022年4月23日
    57
  • iOS 单元測试之XCTest具体解释(一)[通俗易懂]

    iOS 单元測试之XCTest具体解释(一)

    2022年1月21日
    51
  • Eclipse断点调试

    Eclipse断点调试作为开发人员,掌握开发环境下的调试技巧十分有必要。去年就想把关于Eclipse断点调试总结下了,由于对时间的掌控程度仍需极大提高,结果拖到今年才写了此篇博文。关于java调试技术还有很多,如JavaDebugInterface等,依据具体项目的需要,还有很多值得去研究和学习的。该博文仅就Eclipse断点调试技巧做下总结,不足够的地方还请大牛们指点。1 Debug视图1.1线程堆栈

    2022年5月21日
    90
  • 状态模式state_迭代器模式

    状态模式state_迭代器模式状态模式 State动机模式定义实例结构要点总结笔记动机在软件构建过程中,某些对象的状态如果改变,其行为也会随之而发生变化,比如文档处于只读状态,其支持的行为和读写状态支持的行为就可能不同.如何在运行时根据对象的状态来透明地更改对象的行为?而不会为对象操作和状态转换之间引入紧耦合模式定义允许一个对象在其内部状态改变时改变它的行为.从而使对象看起来似乎修改了其行为.从而使对象看起来似乎修改了其行为.从而使对象看起来似乎修改了其行为.实例朴素根据状态来执行下一步enum NetworkStat

    2022年8月11日
    0
  • SNMP安全访问

    SNMP安全访问

    2021年7月29日
    49
  • python开发mbus程序_MBUS 和MODBUS 什么关系啊

    python开发mbus程序_MBUS 和MODBUS 什么关系啊展开全部MBUS和MODBUS之间的关系:M-Bus是针对仪表(主要是热表)的单线制通讯总线标准,对于物理层62616964757a686964616fe58685e5aeb931333431343666、数据链路层、应用层和网络层都有严格的规定。Modbus则对物理层没有过多限制,在RS-232、RS-485、TCP/IP、光纤、红外等任意物理层上都可以跑,基本上来说,Modbus只包含应用层…

    2022年10月15日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号