高级CPU设计(多核等概念的理解)

CPU的设计与发展都在追求速度这个指标

速度的提高:

 

提高一个时钟周期的吞吐量

1  加缓存

CPU(中央处理器)与RAM的数据交换过程中,要找到地址,再取指令,这样会多了找地址这个时间,找地址后,数据是通过BUS总线来操作的,尽管电是以光的速度传播的,但CPU的速度越来越快,总线BUS这几厘米的延时也会造成速度下降,这时在CPU的内部有一个缓存,一次有RAM中的多条指令,这样CPU直接拿过来,就会提高速度,CPU不用空等

缓存中有一个缓存命中的概念,就是缓存中存着下一次执行的指令的概率

 

2 指令流水线

比如酒店洗衣服,洗衣机半个小时  烘干机半个小时,一批衣服需要一个小时

但是并行处理,烘干机工作的时候,洗衣机也工作,就会使得效率提高,(想法很简单)

CPU也可以这样设计   一个时钟要进行  取指令---解码---执行    然后不断重复这个过程

在这个过程中    可以这样    取指---解码---执行

                                                       取指---解码---执行

                                                                  取指---解码---执行

这样有个问题 

  你执行的时候  取指在取你执行的这个单元中的内容   因此 要弄清楚数据的依赖关系,必要时停止流水线

  对于跳转的程序,会改变程序的执行流,简单的流水线,JUMP执行后 稳定下来再执行流水线  高端CPU会有一些技巧来避免这个问题,将JUMP想成是岔路口,高端CPU会猜哪条路的可能性大一些,提前把指令放入流水线,这个叫推测执行  猜对了会执行,猜错了清空流水线   

 为了猜对 ,厂商做了分支预测,现代CPU的正确率可以超过90%

 

 

超标量计算机的出现:尽管流水线了,但某些时候,处理器的某些区域还可能是空闲的,比如执行取指令的时候ALU是空闲的,

所以一次性处理多条指令(取指令+解码)会更好,如果多条指令要ALU的不同部分,就多条同时执行,可以再进一步,加多个相同的电路执行出现频次很高的指令。

例如 CPU有四个 八个甚至更多完全相同的ALU,可以同时执行多个数学运算

 

 

同时运行多个指令流

用多核处理器,四核,八核,一个CPU芯片有多个独立处理单元,很像是有多个独立的CPU,缓存使得多核之间合作运算

多核不够的时候  可以多个CPU,高端计算机,比如大吞吐量的服务器,超级计算机等

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值