计算机技术论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

  • 欢迎访问 计算机技术论坛-电脑迷与初学者的家园!由于论坛管理严格,新注册会员可能遇到各种问题,无法解决的请发邮件 admin@jsjbbs.cn
查看: 1019|回复: 0

关于CPU的12个必须知道的知识点

[复制链接]
发表于 2021-4-8 04:28:36 | 显示全部楼层 |阅读模式
#111723#作为一位顺序员,与盘算机打交道的日子不计其数,不论你玩硬件仍是做软件,你的天下天然都少不了盘算机最中心的 —— CPU。
01 CPU是甚么? CPU与盘算机的关联就相称于大脑和人的关联,它是一种小型的盘算机芯片,平日嵌入在电脑的主板上。 CPU的构建是通过在单个盘算机芯片上放置数十亿个微型晶体管来实现。 这些晶体管使它可能履行运转存储在体系内存中的顺序所需的盘算,以是,也能够说CPU决议了你电脑的盘算才能。 02 CPU现实做甚么? CPU的任务中心是从顺序或利用顺序中获得指令而且履行盘算。 这个进程一共有三个要害阶段:提取,解码和履行。 CPU先从体系的RAM中提取指令,随后解码该指令的现实内容,最后再由CPU的相干部份履行该指令。 03 CPU的外部构造 方才提到了良多CPU的主要性,那末CPU的外部构造是甚么呢?又是由甚么构成的呢? 下图展现了个别顺序的运转流程(以C言语为例),个别来讲,懂得顺序的运转流程是控制顺序运转机制的基本和条件。

在这个流程中,CPU担任说明和运转终究转换成呆板言语的内容,CPU重要由两部份形成:把持单位和算数逻辑单位(ALU)。
把持单位:从内存中提取指令并解码履行;
算数逻辑单位(ALU):处置算数和逻辑运算。
   由于内存是与CPU停止相同的桥梁,盘算机中全部顺序的运转都在内存中失掉运转的。 内存个别又被称为主存,它的感化是寄存CPU中的运算数据,以及与硬盘等外部存储装备交流的数据。 CPU会在盘算机运行时,把须要运算的数据调到主存中停止运算。 在运算实现以后,CPU将成果传递出来,主存的运转也决议了盘算机的稳固运转。 主存个别通过把持芯片与CPU相连,由可读写的元素形成,每个字节都有一个地点编号。 CPU通过地点从主存中读取数据和指令,也能够依据地点写入数据,留神一点:当盘算构造机时,内存中的指令和数据也会被肃清。   04 C++PU是存放器的聚集体 在CPU的四个构造中,存放器的主要性远远高于其他三个,为甚么这么说?由于顺序平日是把存放器作为工具来停止描写的。 而说到存放器,就不得不说到汇编言语,说到汇编言语,就不得不说到高等言语,提及高等言语也就不得不说起言语的观点。 05 盘算机言语 人和人之间最陈旧和直接的相同前言是言语,然而和盘算机相同,就必需依照盘算机指令来交流,此中就触及到言语的成绩。 最早,为懂得决心算机和人类的交换的成绩,呈现了汇编言语。 然而汇编言语艰涩难明,以是又呈现了像是C、C++、Java的这类高等言语,因而盘算机言语个别分为初级言语和高等言语。 应用高等言语编写的顺序,经由编译转换成呆板言语后才干运转,而汇编言语经由汇编器才干转换为呆板言语。 06 汇编言语 咱们先来看一段采取汇编言语表现的代码清单:

这是采取汇编言语编写顺序的一部份,汇编言语采取助记符来编写顺序,每个本来是电信号的呆板言语指令会有一个与其对应的助记符。 比方,mov,add分辨是数据的存储(move)和相加(addition)的简写。 汇编言语和呆板言语逐一对应,这点和高等言语差别,咱们平日把汇编言语编写的顺序转换为呆板言语的这个进程,称之为汇编。   与之相反,将呆板言语转化为汇编言语的进程称之为反汇编。 汇编言语能够辅助你懂得盘算机做了甚么任务,呆板言语级其余顺序通过存放器来处置,下面代码中的eax,ebp都是表现的存放器,它们是CPU外部存放器的称号。 因而,能够说 CPU 是一系列存放器的聚集体。 个别,在内存中的存储通过地点编号来表现,存放器的品种是通过名字来辨别。 那些差别范例的CPU,其外部存放器的品种、数目以及存放器存储的数值范畴也都是差别的。 不外,依据功效的差别,咱们能够将存放器分别为上面几类:

此中,顺序计数器、标记存放器、累加存放器、指令存放器和栈存放器只有一个,其余存放器个别有好几个。
07
顺序计数器 顺序计数器是用来存储下一条指令地点单位的地点。 顺序在履行时,PC的初值作为顺序第一条指令的地点,在次序履行顺序时,把持器先依照顺序计数器所指出的指令地点,从内存中掏出一条指令,随后剖析和履行该指令,并同时将PC的值加1指向下一条要履行的指令。 咱们能够通过一个事例来细心看一下顺序计数器的履行进程:

这是一段停止相加的操纵,顺序启动,在经由编译剖析后,会经过操纵体系把硬盘中的顺序复制到内存中。 以上示例顺序,就是将123和456履行相加的操纵,随后将成果输出到表现器上,由于应用呆板言语很难描写,以是这些都是经由翻译后的成果。 现实上,每个指令和数据都有可能散布在差别的地点上,然而为了更好的阐明,就把构成一条指令的内存和数据放在了一个内存地点上。 地点0100是顺序运转的肇端地位,Windows等操纵体系把顺序从硬盘复制到内存当前,就会将顺序计数器作为设定为肇端地位0100,而后再履行顺序,每次履行一条指令后,顺序计数器的数值就会增添1,或许是直接指向下一条指令的地点。 随后,CPU会依据顺序计数器的数值,从内存中读取下令而且履行,换言之,顺序计数器把持着顺序的流程。
08
前提分支和轮回机制 小火伴们都学太高级言语,高等言语汇总的前提把持流程重要分为次序履行、前提分支、轮回断定三种。
次序履行是依照地点的内容次序的履行下令。
前提分支是依据前提履行恣意地点的指令。
轮回是反复履行统一地点的指令。
个别情形下,次序履行的情形较简略,每次履行一条指令顺序计数器的值就是+1。 前提和轮回分支会使得顺序计数器的值指向恣意的地点,如许一来,顺序便可以前往到上一个地点来反复履行统一个指令,或许跳转到别的恣意指令。 上面,咱们就以前提分支举例来讲明顺序的履行进程:

顺序的开端进程温柔序流程是一样的,顺序的次序流程和开端进程雷同。 CPU从0100处就开端履行下令,在0100和0101中都是次序履行,PC的值次序+1,履行到0102地点的指令时,断定0106存放器的数值大于0,跳转到0104地点的指令,再将数值输到表现器中,随后停止顺序,0103的指令就被跳过了。 这和咱们顺序中的if()断定雷同,在不满意前提的情形下,指令个别会直接跳过。 因而,PC的履行进程没有直接+1,而是下一条指令的地点。
09
标记存放器 前提和轮回分支会应用到 jump(跳转指令),会依据以后的指令来断定能否跳转,下面咱们提到了标记存放器,不管以后累加存放器的运算成果是正数、正数仍是零,标记存放器都市将其保留。 CPU在停止运算时,标记存放器的数值会依据以后运算的成果主动设定,运算成果的正、负和零三种状况由标记存放器的三个位表现。 标记存放器的第一个字节位、第二个字节位、第三个字节位各自的成果都为1时,分辨代表着正数、零和正数。

CPU的履行机制比拟成心思,假定累加存放器中存储的XXX和通用存放器中存储的YYY做比拟,履行比拟的背地,CPU的运算机制就会做减法运算。 而不管减法运算的成果是正数、零仍是正数,都市保留到标记存放器中。 成果为正表现 XXX 比 YYY 大,成果为零表现 XXX 和 YYY 相称,成果为负表现 XXX 比 YYY 小,顺序比拟的指令,现实上是在 CPU 外部做减法运算。
10
函数挪用机制 函数的挪用和前提分支,轮回机制有所差别,纯真的跳转指令没法实现函数的挪用。 函数的挪用须要在函数外部处置后,处置流程在前往到函数挪用点(函数挪用指令的下一个地点)。 函数的挪用处置是通过把顺序计数器的值设定成函数的存储地点来实现的。


11
通过地点和索引实现数组 接上去是基址存放器和变址存放器,通过这两个存放器,能够对主存上的特定地区停止分别,以此实现相似数组的操纵。 起首,能够用十六进制数将盘算机内存上的 00000000 - FFFFFFFF 的地点分别出来。 如许,但凡该范畴的内存地点,只有有一个 32 位的存放器,便可以检查全体地点。 然而,如果想像数组那样,宰割特定的内存地区以到达持续检查的目标的话,应用两个存放器会更便利一些,比方,咱们用两个存放器来表现内存的值。

这类表现方法很像数组的结构,数组是指一样长度的数据,在内存中停止持续陈列的数据结构。 用数组名表现数组全体的值,通过索引来辨别数组的各个数据元素,比方: a[0] - a[4],[]内的 0 - 4 就是数组的下标。
12
CPU指令履行进程 那说了这么多,CPU究竟是怎样一条条的履行指令的呢?几近全体的冯·诺伊曼型盘算机的CPU,任务都能够分为5个阶段:取指令、指令译码、履行指令、访存取数、成果写回。 取指令阶段就是将内存中的指令读取到CPU中存放器的进程,顺序存放器用于存储下一条指令地点的地点;
在取指令实现后,立马进入指令译码阶段,在指令译码阶段,指令编码器依照事后的指令格局,对取回的指令停止拆分息争释,辨认辨别出差别的指令种别和种种获得操纵数的方式;
履行指令阶段的义务是实现指令所划定的种种操纵,详细实现指令的功效;
拜访取数阶段的义务是:依据指令地点码,失掉操纵数在主存中的地点,并从主存中读取该操纵数用于运算;
成果写回阶段作为最后一个阶段,把履行指令阶段的运转成果数据“写回”到某种存储情势:成果数据常常被写到CPU的外部存放器中,以便被后续的指令疾速地存取。
xj
原文题目:对于CPU的12个硬核干货!
文章出处:欢送增加存眷!文章转载请注明出处。
更多内容阅读推荐:海尔热水器电源不亮了怎么办
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

无图版|手机版|计算机技术论坛 JSJBBS.CN @ 2008-2024 ( 鲁ICP备17021708号 )

技术支持 : 北京康盛新创科技有限责任公司

快速回复 返回顶部 返回列表