CPU的基本认识
为大家介绍CPU的基本概念,例如:CPU的型号认识、什么是时钟周期、物理核和逻辑核、缓存、TLB缓存的概念,可以帮助大家对cpu有个概念性的认识,选择电脑的时候可以看懂CPU的参数和理解基本原理。
CPU的基本认识
- 个人CPU型号介绍
- 工作频率和时钟周期
- 物理核和逻辑核
- L1/L2/L3级缓存
- TLB缓存
个人CPU型号介绍
1、第一个是英特尔公司的处理器
2、英特尔公司有多个子品牌,上面代表的酷睿是其中一种,还有例如:凌动、赛扬、奔腾、至强等
3、i7代表CPU的档次,从低端到高端依次有:i3、i5、i7、i9,几个等级的芯片
4、后面的代际编号有可能是一位或者两位,越大代表越新,CPU性能越好。
5、SKU是库存编号,一般也是越大越好
6、K代表产品线后缀,笔记本电脑中,H代表高性能、U代表较低功耗、Y代表极低功耗。台式机中X代表最高性能、K代表高性能、T代表功耗优化。
工作频率和时钟周期
再CPU系统中为了保证所有硬件单元能够协同工作,CPU工程师设计了时钟信号和系统同步。
时钟周期:也叫震荡周期,CPU执行一条指令的基本动作所需要的时间称为一个时钟周期,CPU执行一条指令时间越快,性能越好,时钟周期基本单位是HZ,CPU工作频率就是1秒中有多少个震荡周期,现在的CPU基本是GHZ级别,如下图CPU主频可以到2.6GHZ,也就是一秒26亿的时钟周期,最高睿频代表最高能到3200MHZ,也就是3.125GHZ。
物理核和逻辑核
物理CPU:主机上真正安装的CPU个数
物理核:一个CPU里面可能会有多个物理核
逻辑核:物理核是真实存在的硬件,逻辑核是物理核虚拟出来的核数,一般一个物理核可以通过超线程技术虚拟出来多个逻辑核,如下图,就是一个CPU有6个物理核,有12个逻辑核
逻辑核的基本原理就是CPU在处理一个任务的时候需要有等待数据、指令的空闲时间,这个时候就可以做别的工作。超线程技术可以手动关闭,这个超线程技术的开启和关闭差距没有想象的那么大,大约20%~30%左右。可以使用
cat /proc/cpuinfo
这条指令查看cpu的详细信息。
L1/L2/L3级缓存
最开始的时候CPU和内存的运行速度的差异没有现在这么大,CPU访问数据直接访问内存就可以了,但是随着技术的发展,CPU和内存的速度差距越来越大,所以就出现了一个比内存空间小,但是访问速度可以跟CPU匹配的缓存,现在的缓存一般分为三级,L1、L2、L3,L1最快但是容量最小,L3最慢但是容量最大。
L1一般有多个,并且分为两种,缓存数据(cache data)和缓存代码(cache code),因为更新策略不同,一般一个物理核有一个dataL1和codeL1,L2一般也是一个物理核一个,但是L3就是所有核用一个了。
一般CPU直接从L1获取数据,L1从L2获取数据,L2和L3也一样,当前级别缓存向下一级获取数据的时候并不是只获取一个bit或者byte,而是获取cache Line,cacheLine的大小一般是64字节。
TLB缓存
我们写程序的时候,可以对一个变量进行取地址操作,那取出来的这个地址是内存的真正物理地址吗?并不是。而是通过页表映射出来的虚拟地址,如果不了解什么是进程地址空间可以先看看这篇文章,
CPU获取程序的数据或者代码的时候,也是通过这虚拟地址访问的,虚拟地址和物理地址是通过页表转换的,CPU访问内存需要拿着虚拟地址让页表映射到物理地址,然后访问数据。
但是这时候有个问题,内存很大的话,用一级页表是不够的,除非把页设置的非常大,但是也不现实,所以需要用到多级页表,就跟看书需要通过目录找到特定的页,多级页表可以理解为多级目录,但是访问多级目录效率非常低下,访问一次内存需要进行多次IO,可以把单个页的size变大,但是所能管理的地址也就非常有限。
所以这时候就可以把页表中的数据进行缓存起来,这时候就有了TLB(Translation Lookaside Buffer),CPU可以直接访问TLB获取映射的信息,访问TLB是非常快的,甚至比L1缓存还快。