超能课堂(111):讲了这么多年的CPU频率,到底是什么?
nanshan 2024-10-19 06:36 35 浏览 0 评论
在日常装机中,大家挑选CPU处理器的时候,无非是先看看这块CPU有多少个物理核心,是否支持超线程技术,以intel为例就决定了你选择i7、i5还是i3系列;再细分一些就需要考虑CPU的频率高低问题,这个就直接决定选购的具体型号。那么我们平常总会说这款intel Core i3-8350k默频是4GHz,这个AMD锐龙3 1300X默频为3.5GHz,那么这个CPU频率真的就是CPU的运行速度了吗?它是由什么来决定呢?
Intel、AMD在发布新CPU的时候总会公布其的基础频率,其实这个频率多少多少GHz,其实指的是CPU内部的数字时钟信号频率,又称为时钟频率,因此它并不能代表CPU的真实性能水平,4GHz的CPU不一定就比3GHz的强,至少我们不能一概而论。但是时钟频率的高低确实关系到一个CPU的运算速度,频率越高意味着运算的速度越快?那么4GHz频率是有多快呢?
频率的概念
在CPU这个复杂的数字系统中,为了确保内部所有硬件单元能够协同快速工作,CPU架构工程师们往往会设计一套时钟信号与系统同步进行操作。时钟信号是由一系列的脉冲信号构成,并且总是按一定电压幅度、时间间隔连续发出的方波信号,它周期性地在0与1之间往复变化。如下图所示。
在第一脉冲和第二个脉冲之间的时间间隔称之为周期,它的单位是秒(s)。但单位时间1s内所产生的脉冲个数称之为频率,频率的最基本计量单位就是赫兹Hz。
时钟频率(f)与周期(T)两者互为倒数:f=1/T
这个公式表明的就是频率表示时钟在1秒钟内重复的次数,而目前的CPU普遍已经处于GHz级,也就是说每秒钟产生10亿个脉冲信号。
CPU处理器主频
以Intel Core i3-8350k为例,它的默频是4GHz,意味着它内部时钟频率为4GHz,一秒钟可以产生40亿个脉冲信号,换句话说每一个脉冲信号仅仅用时0.25ns(时钟周期)。这是多么令人震惊的时钟,可以想象到CPU内部结构是多么精妙,可以处理如此之短的信号,整套系统协同有序地运行,所以才会说CPU是全人类智慧的结晶,极大地提升了我们的科技水平进步。
时钟周期作为CPU操作的最小时间单位,内部的所有操作都是以这个时钟周期作为基准。一般来说CPU都是以时钟脉冲的上升沿作为执行指令的基准,频率越高,CPU执行的指令数越多,工作速度越快。
那么CPU频率是由什么决定的呢?其实这个是一个非常复杂的问题,因为决定这个频率是一个系统学的东西,影响到频率高度的因素非常之多,诸如CPU的架构、流水线设计、内部寄存器设计、支持的指令甚至是功耗、温度这些物理因素,所以说CPU出厂频率就是综合多种考虑,以木桶效应下的最小值作为CPU的最高频率。
那我们现在的CPU主频为什么会变呢?
而拥有Turbo Boost技术的CPU每一个核心都有自己的PLL(Phase Locked Loop,锁相环)电路,这样每个核心的电压和频率都可以独立控制,为此Intel专门在CPU内部设计了PCU(Power Control Unit,功耗控制)单元,PCU会以1ms(每秒1000次)的速度实时监测这四个核心的温度、电流及功耗等参数,因此又有Turbo Boost频率可以根据负载需要调整CPU的频率。同时由于参与到运算的核心数越多,控制起来就更为复杂,所以一般核心数目越多,能达到最高频率越低。
外频
CPU在诞生后不久,各大CPU巨头为了追求高性能,开启了频率大战(有没有效果这个我们先不提),但是这样一来,CPU虽然跑得更换了(主频更高),但是外部的主板芯片组、内存、外部接口(PCIe、Sata)可还是处于旧有标准,而且这些设备的运行频率早就固定下来了,并且远低于CPU工作频率。这样一来CPU就无法很好与之交流,Intel就机智地提出了倍频的概念(下面讲述),并且提出了影响至今的一个CPU主频计算公式:主频=外频 X 倍频,外频的提出可以让主板外部的设备工作在较低的频率下,并且还能正确地CPU进行交流。
但总是有很多网友将前端总线频率和外频混为一谈,其实他们不太一样。在以前有北桥的时代,前端总线是CPU总线接口单元和北桥芯片之间的数据交换通道,曾经在AMD雷鸟系列、Intel奔腾 4处理器以前,前端总线与外频是一致的,但后来有了四倍数据传输率技术或者是八倍数据传输率技术,前端总线频率就极大地提高了。举个例子,如果一个处理器的频率是2GHz,外频为100MHz,使用四倍数据传输率技术时,前端总线频率就变成400MHz;如果是八倍,那么就是800MHz。前端总线频率越大, 代表着CPU与北桥芯片之间的数据传输能力越大, 更能充分发挥出CPU的功能。
目前处理器的默认外频基本上都是100MHz
倍频
目前的CPU设计的外频都相当低,只有100MHz,CPU要获得更快运算速度,我们就需要获得一个超高速的频率来支撑更快运算速度。而CPU通常就是在内部设计有一个锁相环频率发生器,对于输入的时钟信号进行分频处理,按照一定比例提高输入的外频频率,从而得到CPU的实际工作频率,这个比例就称之为倍频系数(简称倍频)。
利用倍频技术, 较为完美地解决了CPU和内存等数据中转站的异步运行问题。为CPU后来向更高频率方向发展打下了扎实的基础。
超频
超频作为经久不衰的话题,一直都是PC DIY界中的常青树,一般是指强迫设备运行在高于其默认频率的主频以获得更高的性能,诸如CPU、显卡、内存等都可以超频, 其中以CPU为最为流行,可以在最大程度压榨CPU的性能,提高产品的性价比。而Intel、AMD一直将CPU可超频作为一大卖点宣传,那么我们超频超的是哪个频率?
根据CPU主频计算公式:主频=外频 X 倍频,我们无非就是超外频、倍频。
其实在不同时代,超得的是不同的频。在Pentium MMX时,Intel为了让CPU稳定工作,在主板BIOS中锁定了倍频, 不能随意更改倍频,那时候的我们只能从提高外频着手,一些旧式主板可通过设置主板上的跳线来变更计算机系统的外频(还记得跳线怎么插吗?),而在后期的主板BIOS中一般都会有SoftMenu技术,我们只需要在BIOS界面中动动手指头,调整外频频率就可以顺利提高CPU的主频。
而现在大家为了创造更高的主频,一般都是选择超倍频,因为超倍频提升幅度远比外频要高,而且来得容易。同样只需要在主板BIOS上调整倍频即可,目前很多主板都自带一键超频功能,主板厂商都BIOS中帮你调整好超频参数,只需要一键点击皆可以超倍频。
在相同的外频下, 倍频越高 CPU的主频也越高。但实际上,CPU倍频太高了,但是CPU与系统其他设备传输速度还是一样,之间的数据交换有限,造成了高主频的CPU就会出现明显的“瓶颈”效应-----CPU 从系统中得到的数 据的极限速度不能满足 CPU运算的速度。因此有时候为了满足外部传输需求,我们要适当超外频。
需要注意的是,超频会导致CPU发热量远大于正常工作温度,甚至是降低 CPU性能、寿命(缩缸)或造成系统的不稳定(蓝屏)。 降低 CPU 寿命是因为超频产生的高温会导致“电子迁移”现象, 而“电子迁移”现象会损坏CPU内部精密设计的晶体管,所以一定要必须做好CPU的散热工作,液氮超频也是出于这样的考虑。
但有时候CPU体质不佳(内部晶体管在制造的时候存在某些缺陷、瑕疵),导致超频困难,需要对CPU核心施加更高的工作电压,以我们拿到的地雷级intel Core i3-8350K为例,为了上5GHz频率,电压已经加到1.5V(默认1.34V),而之前的Core i7-7700K分分钟上5GHz。
那为什么我们现在CPU频率基本还停留在4GH平台呢?
CPU处理器中有一条金科玉律,那就大名鼎鼎的摩尔定律,它阐述了晶体管数目与性能提升的关系,之于它究竟是还活着,还是像死了般活着还很难说。但是我们今天要讲的是另一条不太出名的定律——登纳德缩放比例(Dennard Scaling)。
1974年内存之父罗伯特登纳德在其论文中表示,晶体管面积的缩小使得其所消耗的电压以及电流会以差不多相同的比例缩小,这个就是登纳德缩放比例定律。很多人摸不着头脑,这个和CPU频率提升有半毛钱关系吗?
确实密切相关。我们先了解晶体管功耗是如何计算的,静态功耗的就是常规的电压乘以电流,W=V x I。而晶体管在做 1和 0的相互转换时会根据转换频率的高低产生动态功耗,W=V2x F。显然,频率越高,功耗就越大,但我们在此后的30年都没有放弃做频率更高的CPU呢?
答案是以为我们的半导体工艺一直在进步,目前甚至已经做到了10nm,7nm量产在即。根据登纳德缩放比例,工艺的提升,可以让晶体管们做的更小,导通电压更低,显然就弥补了频率提升带来功耗增加问题。但是我们的工艺并不是无休止境地提升,很快就会进入了一个长期的技术平台期,7nm以后路将会十分艰辛。
而且晶体管尺寸缩小以后,静态功耗不减反增,带来了很大的热能转换,加之晶体管之间的积热十分严重,让CPU散热问题成为亟待解决的问题。散热做不好,CPU寿命大大下降,而且目前普遍存在的动态频率技术,过热会让CPU处于最低工作频率,高频只是个装饰、是个笑话。单纯提高CPU时钟频率因为随之而来的散热问题而变得不再现实,毕竟我们不会无时无刻地使用液氮为CPU降温,所以Intel、AMD都很识趣地停止了高频芯片的研发,转而向低频多核的架构开始研究。
极限超频一般都是需要液氮、液氦来辅助散热
也因此我们目前才会看到多核CPU的大爆发,这是提升性能更好的方法。看完这篇干货,还想看其他同样这么干的超能课堂吗,找小超哥(微信:9501417)拿我们的百篇超能课堂吧~同时看完这篇文章对CPU超频还有其他感兴趣的问题不妨找我们小超哥提出,大家一起来探讨啊~
相关推荐
- 0722-6.2.0-如何在RedHat7.2使用rpm安装CDH(无CM)
-
文档编写目的在前面的文档中,介绍了在有CM和无CM两种情况下使用rpm方式安装CDH5.10.0,本文档将介绍如何在无CM的情况下使用rpm方式安装CDH6.2.0,与之前安装C5进行对比。环境介绍:...
- ARM64 平台基于 openEuler + iSula 环境部署 Kubernetes
-
为什么要在arm64平台上部署Kubernetes,而且还是鲲鹏920的架构。说来话长。。。此处省略5000字。介绍下系统信息;o架构:鲲鹏920(Kunpeng920)oOS:ope...
- 生产环境starrocks 3.1存算一体集群部署
-
集群规划FE:节点主要负责元数据管理、客户端连接管理、查询计划和查询调度。>3节点。BE:节点负责数据存储和SQL执行。>3节点。CN:无存储功能能的BE。环境准备CPU检查JDK...
- 在CentOS上添加swap虚拟内存并设置优先级
-
现如今很多云服务器都会自己配置好虚拟内存,当然也有很多没有配置虚拟内存的,虚拟内存可以让我们的低配服务器使用更多的内存,可以减少很多硬件成本,比如我们运行很多服务的时候,内存常常会满,当配置了虚拟内存...
- 国产深度(deepin)操作系统优化指南
-
1.升级内核随着deepin版本的更新,会自动升级系统内核,但是我们依旧可以通过命令行手动升级内核,以获取更好的性能和更多的硬件支持。具体操作:-添加PPAs使用以下命令添加PPAs:```...
- postgresql-15.4 多节点主从(读写分离)
-
1、下载软件[root@TX-CN-PostgreSQL01-252software]#wgethttps://ftp.postgresql.org/pub/source/v15.4/postg...
- Docker 容器 Java 服务内存与 GC 优化实施方案
-
一、设置Docker容器内存限制(生产环境建议)1.查看宿主机可用内存bashfree-h#示例输出(假设宿主机剩余16GB可用内存)#Mem:64G...
- 虚拟内存设置、解决linux内存不够问题
-
虚拟内存设置(解决linux内存不够情况)背景介绍 Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存...
- Elasticsearch性能调优(5):服务器配置选择
-
在选择elasticsearch服务器时,要尽可能地选择与当前业务量相匹配的服务器。如果服务器配置太低,则意味着需要更多的节点来满足需求,一个集群的节点太多时会增加集群管理的成本。如果服务器配置太高,...
- Es如何落地
-
一、配置准备节点类型CPU内存硬盘网络机器数操作系统data节点16C64G2000G本地SSD所有es同一可用区3(ecs)Centos7master节点2C8G200G云SSD所有es同一可用区...
- 针对Linux内存管理知识学习总结
-
现在的服务器大部分都是运行在Linux上面的,所以,作为一个程序员有必要简单地了解一下系统是如何运行的。对于内存部分需要知道:地址映射内存管理的方式缺页异常先来看一些基本的知识,在进程看来,内存分为内...
- MySQL进阶之性能优化
-
概述MySQL的性能优化,包括了服务器硬件优化、操作系统的优化、MySQL数据库配置优化、数据库表设计的优化、SQL语句优化等5个方面的优化。在进行优化之前,需要先掌握性能分析的思路和方法,找出问题,...
- Linux Cgroups(Control Groups)原理
-
LinuxCgroups(ControlGroups)是内核提供的资源分配、限制和监控机制,通过层级化进程分组实现资源的精细化控制。以下从核心原理、操作示例和版本演进三方面详细分析:一、核心原理与...
- linux 常用性能优化参数及理解
-
1.优化内核相关参数配置文件/etc/sysctl.conf配置方法直接将参数添加进文件每条一行.sysctl-a可以查看默认配置sysctl-p执行并检测是否有错误例如设置错了参数:[roo...
- 如何在 Linux 中使用 Sysctl 命令?
-
sysctl是一个用于配置和查询Linux内核参数的命令行工具。它通过与/proc/sys虚拟文件系统交互,允许用户在运行时动态修改内核参数。这些参数控制着系统的各种行为,包括网络设置、文件...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)