CPU的基本知识介绍_cpu系统简介-程序员宅基地

技术标签: linux  服务器  

相信大家对CPU一定不陌生了,从小就耳濡目染了,不过想搞清楚CPU的工作原理,并不是一件简单的事情,毕竟迄今为止,CPU的制造仍然是人类科技的巅峰。下面我们以SIT测试为主,简单的介绍下CPU,至于其工作原理,就不在此做详述。

CPU(Central Processing Unit,中央处理器)是一块超大规模的集成电路,通常被称为计算机的大脑,是一台计算机的运算核心(Core)和控制核心( Control Unit),也是整个计算机系统中最重要的组成部件。
在这里插入图片描述
从上图可以看出,CPU在逻辑上由三部分组成。分别是控制单元、运算单元和存储单元,这三部分由CPU内部总线连接起来。如下所示:
在这里插入图片描述
控制单元:控制单元是整个CPU的指挥控制中心,由指令寄存器IR(InstrucTIon Register)、指令译码器ID(InstrucTIon Decoder)和操作控制器OC(OperaTIon Controller)等组成,对协调整个电脑有序工作极为重要。它根据用户预先编好的程序,依次从存储器中取出各条指令,放在指令寄存器IR中,通过指令译码(分析)确定应该进行什么操作,然后通过操作控制器OC,按确定的时序,向相应的部件发出微操作控制信号。操作控制器OC中主要包括节拍脉冲发生器、控制矩阵、时钟脉冲发生器、复位电路和启停电路等控制逻辑。

运算单元:是运算器的核心。可以执行算术运算(包括加减乘数等基本运算及其附加运算)和逻辑运算(包括移位、逻辑测试或两个值比较)。相对控制单元而言,运算器接受控制单元的命令而进行动作,即运算单元所进行的全部操作都是由控制单元发出的控制信号来指挥的,所以它是执行部件。

存储单元:包括CPU片内缓存和寄存器组,是CPU中暂时存放数据的地方,里面保存着那些等待处理的数据,或已经处理过的数据,CPU访问寄存器所用的时间要比访问内存的时间短。采用寄存器,可以减少CPU访问内存的次数,从而提高了CPU的工作速度。但因为受到芯片面积和集成度所限,寄存器组的容量不可能很大。寄存器组可分为专用寄存器和通用寄存器。专用寄存器的作用是固定的,分别寄存相应的数据。

CPU指令执行的过程可以分为5个阶段:取指令、指令译码、执行指令、访存取数、结果写回。

取指令阶段就是将内存中的指令读取到CPU中寄存器的过程,程序寄存器用于存储下一条指令所在的地址;

在取指令完成后,立马进入指令译码阶段,在指令译码阶段,指令编码器按照预先的指令格式,对取回的指令进行拆分和解释,识别区分出不同的指令类别和各种获取操作数的方法;

执行指令阶段的任务是完成指令所规定的各种操作,具体实现指令的功能;

访问取数阶段的任务是:根据指令地址码,得到操作数在主存中的地址,并从主存中读取该操作数用于运算;

结果写回阶段作为最后一个阶段,把执行指令阶段的运行结果数据“写回”到某种存储形式:结果数据经常被写到CPU的内部寄存器中,以便被后续的指令快速地存取。
CPU主要技术参数
1 位,字节和字长

位:在数字电路和电脑技术中采用二进制,代码只有“0”和“1”,代表CPU的“位”。

字节 :8位二进制为一个字节

字长:CPU在单位时间内能一次处理的二进制数的位数叫字长

因此,处理字长为8位数据的CPU通常就叫8位的CPU。同理32位的CPU就能在单位时间内处理字长为32位的二进制数据。

8位的CPU一次只能处理一个字节,而32位的CPU一次就能处理4个字节,同理字长为64位的CPU一次可以处理8个字节。

常见的服务器基本上都是64位的双路CPU
2 主频,外频和倍频
CPU 频率是CPU内部的数字时钟信号频率 。单位时间(即1s)内所产生的脉冲个数称之为频率,频率的标准计量单位是Hz。比如一个CPU每秒可以发送10000个脉冲信号,那么他的频率就是10MHZ。

CPU的主频,即CPU内核工作的主时钟频率,表示在CPU内数字脉冲信号震荡的速度。比如我们平时看到的4.0GHZ、3.0GHZ等指的就是CPU主频,即每秒可以产生40亿、30亿个脉冲信号。
主频=外频×倍频系数
外频通常为系统总线的工作频率,是CPU的基准频率,单位是MHz。外频是CPU与主板之间同步运行的速度,所以也可以说CPU的外频决定着整块主板的运行速度。

自从CPU诞生后,为了追求更高的性能,更快的速度,各大巨头就开始频率大战,虽然主频提升了,但外部芯片组还是旧有的运行频率,且远低于CPU主频。比如CPU的主频是10GHZ,网卡只有1GHZ,那么CPU就好比飞机带一个自行车跑,根本带不起来。那如何解决呢?外频和倍频应运而生。

倍频是指CPU主频与外频之间的相对比例关系,主频=外频*倍频

以前没有倍频概念,外频(系统总线频率)就相当于CPU的主频,两者速度一样。随着CPU的速度越来越快,倍频技术也就随之出现。即使外频(系统总线频率)工作速度相对较低,CPU速度仍然可以通过倍频来提升。

但由于CPU与系统之间数据传输速度有限,如果一味追求高倍频CPU会出现明显的瓶颈效应,即CPU从系统中得到数据的极限速度不能够满足CPU运算的速度。所以一般Intel的CPU都锁了倍频(工程样板可能除外),AMD之前也因为不锁倍频而很受电脑发烧友的追捧。

现在CPU频率越来高,从 2.4GHz、3.0GHz 到 4.0GHz,大家很容易产生 CPU 频率越高,速度越快的想法。

严谨来说,主频和实际的运算速度存在一定的关系,并不直接代表运算速度,但提高主频对于提高CPU运算速度却是至关重要的。

在同一时钟周期内,CPU执行一条运算指令,200Mhz主频应该要比100Mhz的主频快一倍,但除了CPU内核的工作频率,CPU的运算速度还要看CPU的流水线(如缓存、指令集、CPU位数等)各方面的性能指标,所以大家好才是真的好,不能只看CPU主频。
3 前端总线(FSB)频率
前端总线(Front Side Bus)频率:CPU就是通过前端总线连接到北桥芯片,进而通过北桥芯片和内存、显卡交换数据。前端总线是CPU和外界交换数据的最主要通道,因此前端总线的数据传输能力对计算机整体性能作用很大,如果没足够快的前端总线,再强的CPU也不能明显提高计算机整体速度。

前段总线频率直接影响CPU与内存直接数据交换速度。有一条公式:

数据带宽=(总线频率*数据位宽)/8

数据传输最大带宽取决于所有同时传输的数据的宽度和传输频率。比如,现在的支持64位的至强处理器,前端总线是800MHz,按照公式,它的数据传输最大带宽是6.4GB/秒。

外频与前端总线(FSB)频率的区别

前端总线的速度指的是数据传输的速度,外频是CPU与主板之间同步运行的速度。

也就是说,100MHz外频特指数字脉冲信号在每秒钟震荡一千万次;而100MHz前端总线指的是每秒钟CPU可接受的数据传输量是100MHz*64bit÷8Byte/bit=800MB/s。
4 缓存 Cache
CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器,它的容量比内存小的多但是交换速度却比内存要快得多。CPU高速缓存的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,这样会使CPU花费很长时间等待数据到来或把数据写入内存。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可先缓存中调用,从而加快读取速度。

当CPU需要读取数据并进行计算时,首先需要将CPU缓存中查到所需的数据,并在最短的时间下交付给CPU。如果没有查到所需的数据,CPU就会提出“要求”经过缓存从内存中读取,再原路返回至CPU进行计算。而同时,把这个数据所在的数据也调入缓存,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。

缓存大小是CPU的重要指标之一,而且缓存的结构和大小对CPU速度的影响非常大,CPU内缓存的运行频率极高,一般是和处理器同频运作,工作效率远远大于系统内存和硬盘。实际工作时,CPU往往需要重复读取同样的数据块,而缓存容量的增大,可以大幅度提升CPU内部读取数据的命中率,而不用再到内存或者硬盘上寻找,以此提高系统性能。但是从CPU芯片面积和成本的因素来考虑,缓存都很小。

L1 Cache(一级缓存)是CPU第一层高速缓存,分为数据缓存和指令缓存。

内置的L1高速缓存的容量和结构对CPU的性能影响较大,L1级高速缓存的容量不可能做得太大。一般服务器CPU的L1缓存的容量通常在32—256KB。

L2 Cache(二级缓存)是CPU的第二层高速缓存,分内部和外部两种芯片。

内部的芯片二级缓存运行速度与主频相同,而外部的二级缓存则只有主频的一半。L2高速缓存容量也会影响CPU的性能,原则是越大越好,服务器和工作站上用CPU的L2高速缓存更高达256-1MB,有的高达2MB或者3MB。

L3 Cache(三级缓存),分为两种,早期的是外置,现在的都是内置的。

而它的实际作用即是,L3缓存的应用可以进一步降低内存延迟,同时提升大数据量计算时处理器的性能。降低内存延迟和提升大数据量计算能力对游戏都很有帮助。而在服务器领域增加L3缓存在性能方面仍然有显著的提升。
在这里插入图片描述
示例如下图:
在这里插入图片描述
CPU的分类
CPU如果按照指令集分类的话,可以分为复杂指令集和精简指令集

CISC(complex instruction set computer),复杂指令集。早期的CPU全部是CISC架构,它的设计目的是要用最少的机器语言指令来完成所需的计算任务。这种架构会增加CPU结构的复杂性和对CPU工艺的要求,但对于编译器的开发十分有利。比如Intel和AMD的X86架构的CPU以及AMD授权的曙光研发的海光系列CPU。

RISC(Reduced Instruction Set Computer),精简指令集。RISC架构要求软件来指定各个操作步骤。这种架构可以降低CPU的复杂性以及允许在同样的工艺水平下生产出功能更强大的CPU,但对于编译器的设计有更高的要求。比如授权于ARM公司的华为鲲鹏系列的CPU。
在这里插入图片描述
我们在测试的时候遇到最多的就是X86和ARM的CPU,不过百分之90都是Intel和AMD,随着国产CPU的崛起,后面很有可能会遇见更多的国产CPU
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43841091/article/details/132499905

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签