计算机科学速成学习-高级CPU设计

本文介绍了CPU设计中的关键要素,包括高速缓存的作用与工作机制、指令流水线提高效率的方法,以及多核与多CPU在提升性能方面的应用。作者还提到了现代CPU利用推测执行和分支预测技术,以及神威太湖之光超级计算机的实例。
摘要由CSDN通过智能技术生成

第七章 CPU设计


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

之前的内容已经基本完成了处理器的设计和功能实现,现在要谈一谈我们日常的CPU它执行程序上会有什么比较有意思的点。


一、缓存Cache

我们之前已经做出了RAM,但随着时代的发展,CPU的频率越来越高,处理指令的速度越来越快,RAM传输数据的速度似乎有点跟不上了。
就像是超级大马力的发动机,它提供的马力很足,可是需要消耗很多油,如果等到油没有了再加,就会让发动机等很久。
在这里插入图片描述
CPU也是这样,尽管总线BUS只有几厘米的长度,但是CPU每秒要进行数亿次的处理,这样会很浪费CPU的性能。
这样我们会想到加一个缓存,就像它的名字一样,是用来暂缓传输的。
在这里插入图片描述
因为处理器的空间不大,所以缓存一般也只有KB或者MB。
它的作用就是当CPUC需要拿数据时,RAM将会给一批数据给到缓存,CPU在处理时如果需要数据可以直接从缓存拿,速度会块很多。
但是数据并不是都是顺序的,拿到的一批数据也不一定就是CPU需要的数据,所以如果CPU需要的数据在缓存中,就叫做"缓存命中"。如果不在,就叫"缓存未命中"。

同理呢,如果是CPU计算的数据要存入RAM,也会先放入缓存,但是这样一来,缓存内的数据和刚才RAM给的一批数据就不一样了,这样的区别需要进行记录,再更新数据时再进行同步。

这个时候,科学家就想到了一个方法,就是加一个标志位,叫做"脏位",很简明的名字,当CPU想要往缓存里放数据的时候,如果这个位脏了,就要将这个缓存的数据先放入RAM,再将数据放入缓存。

二、指令流水线

这个是另外一种提高效率的方式,其实比较好理解,就是我们的事件同步问题。
假设一组数据,要经过AB两次处理,必须以AB的次序来完成。
如果有很多组数据要处理,如果进行普通的方式,A结束,进行B,那么这些数据就需要N*(A+B)的时间来完成。
那可不可以在进行B的时候,A处于空闲,那让A开始下一组数据的处理,这样就可以快多了
简单一点理解,你在烧水的时候把洗衣机打开,水开了,洗衣机也好了。

在这里插入图片描述
在这里插入图片描述
CPU在执行的同时,解码单元进行解码,获取数据单元获取数据,有序运转,效率加倍!

还有一件事情,就是假如遇到了需要判断的指令,如果程序停下等待判断完毕再执行,似乎又有点浪费时间。
想一个办法,直接猜一个,提前把指令放入流水线,这就叫“推测执行”。如果CPUC猜对,就可以马上执行。如果猜错,就清空流水线,掉头!
为了减少掉头的次数,厂商也做了一些功能,叫做“分支预测”,现代CPU的正确率已经能超过90%!

3.多核 or 多CPU

再进一步,用多个处理器核心,就可以同时处理多个流水线,效率就更高了。
在这里插入图片描述
多核不够,就多CPU,像一些视频网站的服务器,就需要很多CPU一起工作。
同时也为了一些超大的计算,就有了超级计算机。
在这里插入图片描述

总结

神奇的计算机,将人们日常的想法加入到处理器中,机器的效率就能翻倍。插一句,目前算力最大的计算机是无锡的神威太湖之光,它有40960个CPU,每个CPU有256个核心,每秒可以进行9.3亿亿次计算,真是太厉害了!

  • 32
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值