ip软件介绍

CPU基础知识讲解2

标签: | 作者:admin | VISITORS: | 来源:未知
29
Dec
2022

这个过程是非常非常快的,一般CPU与内存交互一次需要200个时钟周期左右,而现代的处理器单个时钟周期一般都短于1纳秒(1秒
= 十亿纳秒)但我们的前辈们仍然对这个速度不满足,所以又对CPU设计了一套缓存系统来加速对内存中数据的读取3CPU缓存现代CPU通常设计三级缓存(L1、L2、L3),其中L1、L2缓存是每个CPU核心独享的,L3缓存是所有CPU核心共享的,而L1缓存又分为数据缓存和指令缓存我们的数据就从内存先到L3缓存中,再到L2缓存中,再到L1缓存中,最后再到CPU寄存器中按照大小来看,通常L1 < L2 < L3 < 内存 < 磁盘,如果你手边有一台Linu__机器的话,可以通过下面的命令查看CPU各级缓存的大小.

以我手上这台服务器为例,L1指令缓存大小为32K、数据缓存大小为32K,L2缓存大小为1MB,L3缓存大小为35.75MB按照速度来看,通常L1 > L2 > L3 > 内存 > 磁盘,以时钟周期为计量单位L1缓存:约 4 个CPU时钟周期L2缓存:约 10 个CPU时钟周期L3缓存:约 40 个CPU时钟周期内存:约 200 个CPU时钟周期也就意味着如果能命中缓存,我们程序的执行速度至少提升5倍左右,如果能命中L1缓存则提升50倍左右,这已经属于相当大的性能提升了有了缓存系统后,CPU就不必要每条指令或数据都读一次了,可以一次性读取若干条指令或数据然后放到缓存里供以后查询,因为根据局部性原理,CPU访问内存时,无论是读取指令还是数据,所访问的内存单元都趋于聚集在一个较小的连续区域中,所以一次性读取一块连续的内存有利于后续的缓存命中现实中,CPU通常情况下每次的读取内存时都会一次性读取内存中连续的64个字节,这个连续的64字节术语就叫做Cache Line(缓存行),所以每一级CPU缓存就像下面这样如果你手边有一台Linu__机器的话,可以通过下面的命令查看你的机器使用的CPU的Cache Line大小是多少对于我的服务器来说,L1缓存就有 32KB - 64B = 512 个Cache Line到这里,我们已经知道了CPU缓存的工作原理和加载方式,这里实际上还遗留了两个话题没有讲,一个是如何组织每一级的 Cache Line(例如 L1 的 512 个Cache
Line)来提升访问的命中率;另一个更加复杂一点,在现代CPU都是多核的场景下如何保证数据的一致性,因为每个核都有自己的L1和L2缓存,那么如果核心1修改的时候只修改了缓存的数据而没有修改内存中的数据,其他核心读到的就是旧数据了,


电脑常见英文词汇


computer trainer计算机教师
Connection device连接设备
Connectivity连接
Consumer-to-consumer个人对个人
cookies-cutter programs信息记录截取程序
cookies信息记录程序
cracker解密高手
cumulative trauma disorder积累性损伤错乱
Cybercash电子现金
Cyberspace计算机空间
cynic愤世嫉俗者

相关新闻
首页 | ip使用技巧 | 云手机使用相关 | ip软件介绍 | 蛙仔云手机
 分享按钮