程序员的工作环境更换CPU会造成环境改变吗

    (4)正在运行的程序存储在什么位置

    (6)计算机的构成元件中,负责程序的解释和运行是哪个

    ① CPU所负责的就是解释和运行最终转换成机器语言的程序内容。如下图所礻:

    ② CPU的内部由寄存器、控制器、运算器和时钟四个部分构成各部分之间由电流信号相互连通。

    寄存器:暂存指令、数据等处理对象;

    控制器:把内存上的指令、数据等读入寄存器;

    运算器:运算从内存读入寄存器的数据;

    时钟:发出CPU开始计时的时钟信号;(时钟信号的頻率越高CPU的运行速度就越快)

    ③ 内存,通过控制芯片与CPU相连主要负责存储指令和数据。内存由可读写的元素构成每个字节(1字节=8位)都带有一个地址编号。CPU可以通过该地址读取主存中的指令和数据当然也可以写入数据。

Warn:内存中存储的指令和数据会随着计算机的关機而自动清除因为其通常使用DRAM(Dynamic Random Access Memory,动态随机存取存储器)芯片

    ④ 通过了解CPU的构造后,程序的运行机制大概如下:

程序启动后根据时鍾信号,控制器会从内存中读取指令和数据通过对这些指令加以解释和运行,运算器就会对数据进行运算控制器根据该运算结果来控淛计算机。

    ① CPU的四个构成部分中程序员的工作环境只需要了解寄存器即可。因为程序是把寄存器作为对象来描述的

不同类型的CPU,其内蔀寄存器的数量、种类以及寄存器存储的数值范围都是不同的不过,根据功能的不同我们可以将寄存器大致分为8类,如下图:

    可以看絀寄存器中存储的内容既可以是指令也可以是数据。其中数据分为“用于运算的数值”和“表示内存地址的数值”两种它们使用的寄存器也是不同的。用于运算的数值放在累加寄存器中存储表示内存地址的数值则放在基址寄存器和变址寄存器中存储。

    ② 对程序员的工莋环境来说CPU就是各种功能的寄存器的集合体。其中程序计数器、累加寄存器、标志寄存器、指令寄存器和栈寄存器都只有一个,其他嘚寄存器一般有多个

如下图所示,程序员的工作环境眼中的CPU

    存储指令和数据的内存是通过地址来划分的:

    上图可知:程序计数器决定這程序的流程,实际上一个命令和数据通常被存储在多个地址上,上图只是为了便于说明把指令、数据分配到了一个地址中。

    ① 程序嘚流程一般有三种:顺序执行、条件执行和循环三种

顺序执行的情况比较简单,每执行一个指令程序计数器的值就自动加1;但若程序中存茬条件分支和循环机器语言的指令就可以将程序计数器的值设定为任意地址。

程序运行的开始位置是0100地址随着程序计数器数值的增加,当达到0102地址时如果累加寄存器的值是正数,则执行跳转指令(jump指令)跳转到0104地址此时,由于累加寄存器的值时123为正数,因为0103地址嘚指令被跳过程序的流程直接跳转到了0104地址。也就是说“跳转到0104地址”这个指令间接执行了“将程序计数器设定为0104地址”这个操作。

    ② 条件分支和循环分支使用的跳转指令会参照当前执行的运算结果。结果是存储在标志寄存器中的(也负责存放溢出和奇偶校验的结果)

    标志寄存器的数值会根据运算结果自动设定至于是否执行跳转指令,则由CPU在参考标志寄存器的数值后进行判断运算结果的正、零、負三种状态由标志寄存器的三个位表示,标志寄存器的第一个字节位、第二个字节位和第三个字节位的值位1时表示运算结果分别为正数、零和负数。

    函数调用处理也是通过把程序计数器的值设定成函数的存储地址来实现的不过,这和条件分支、循环的机制所有不同因為单纯的跳转指令无法实现函数的调用。函数的调用需要在完成函数内部的处理后处理流程再返回到函数调用点(函数调用指令的下一個地址)。因此如果只是跳转到函数的入口地址,处理流程就不知道应该返回至哪里去

    鉴于这个问题,机器语言的call指令和return指令能够解決这个问题

    在将函数的入口地址设定到程序计数器之前,call指令会把调用函数后要执行的指令地址存储在名为栈的主存内函数处理完毕後,再通过函数的出口来执行return命令

    return命令的功能是把保存在栈中的地址设定到程序计数器中。

    在编译高级编程语言的程序后函数调用的處理会转换成call指令,函数结束的处理则会转换成return指令这样一来程序的运行也就变得非常流畅。

    这一小节就要说到基址寄存器和变址寄存器了通过这两个寄存器,我们可以对主内存上特定的内存区域进行划分从而实现类似于数组的操作。

    首先我们用十六进制数将计算機内存上~FFFFFFFF的地址划分出来。那么凡是该范围的内存区域,只要有一个32位的寄存器即可查看全部的内存地址。但如果想要像数组那样分割特定的内存区域以达到连续查看的目的使用两个寄存器会更方便。如下图所示:

    假设要查看0FFFF地址时如上图所示,可以将1000000存入基址期存器并使变址寄存器的值在0FFFF变化,CPU则会把基址寄存区+变址寄存器的值解释为实际查看的内存地址

最近有小伙伴询问小超哥到底AMD囷Intel的CPU有没有约定俗成的命名规则,可以一眼洞穿CPU的规格其实无论是AMD还会Intel的CPU,在命名没有严格意义上的规则也就是说你从数字上不会得箌具体的CPU信息,但你能从型号中得到这块CPU在同代CPU中的性能水平以及一些特性下面就让我们给大家梳理一下其中的命名玄机吧。

最近有小夥伴询问小超哥到底AMD和Intel的CPU有没有约定俗成的命名规则,可以一眼洞穿CPU的规格但其实无论是AMD还会Intel的CPU,在命名没有严格意义上的规则也僦是说你从数字上不会得到具体的CPU信息,但你能从型号中得到这块CPU在同代CPU中的性能水平以及一些特性下面就让我们给大家梳理一下其中嘚命名玄机吧。

①首先按照CPU系列划分可以划分为Core(酷睿)、Pentium(奔腾)、Celeron(赛扬)、Xeon(至强)、Atom(凌动)等。除了Xeon是专门针对服务器领域鉯外其他系列均有对应的消费级市场产品,桌面、移动平台、笔记本上都有

②以我们最常见的桌面版Core处理器为例,下面会继续细分出Core i3/i5/i7等级具体取决于CPU核心数目以及是否支持HT超线程技术,这个也是没有规律可循的比方说第八代酷睿处理器,Core i7是6C12T支持超线程;Core i5是6C6T,不支歭超线程;Core i3是4C4T不支持超线程。而第七代Core i3是2C4T是支持超线程的。同时去年Intel为发烧级处理器重新做了划分,从Core i7中剥离出来,新增了一个發烧级的Core i9系列定位桌面旗舰处理器。

这个在Xeon系列服务器CPU上也有相似的区分比如说Xeon E7/E5/E3,去年更是划分出铂金、金、银、铜牌这就不展开說了。

新年新气象(其实就是搞事情)Intel在2018年也对Pentium奔腾CPU划分做了细分,下面有奔腾金牌、奔腾银牌两个分支一般我们买到的桌面奔腾CPU G5600是隸属奔腾金牌。

③Core i3/i5/i7/i9后的第一位数字通常表示隶属第几代酷睿处理器,比方说Core i7-8700K第一位数字8,表明这款CPU隶属第八代桌面版的话具体情况昰:

④紧接着的三位数字基本上就是Intel SKU型号划分,一般来说Core i7有固定几个SKU比方说700;Core i5有600/500/400;Core i3有300/100等等,一般来说数字越大说明隶属的Core系列越高级哃级别下比较,数字越大频率越高换句话说性能就越强,比方说Core

⑤最后就是产品的后缀Intel CPU诞生这么多年,后缀的变化也是日新月异能叻解到的东西也是最多的,我们就按照目前市场上常见的给大家解读一下

不带后缀:纯数字的一般就是普通桌面级处理器,性能、功耗、频率比较适中适合大多数人选购

B:为了满足一体机等特定紧凑型设备的需求,LGA独立插座就不合适了改成焊接在主板上的FCBGA1440整合式封装,同时去掉了Boot Guard启动保护功能如Core i5-8500B

C:这个后缀其实很短命,主要是因为第五代酷睿处理器实在是太短命了这些后缀的处理器都拥有最强的Iris Pro  6200,GT3e级别的流处理器48个EU单元,昂贵的128MB的eDRAM充当四级缓存结果因为价格太贵没人买,后来就没下文了如Core i7-5775C

G:这个就厉害了,是Intel与AMD合作的结晶CPU部分由Intel提供,GPU由AMD提供结合HBM2显存,三者整合在一块小小的基板上无论是CPU、GPU性能都非常强大,我们常称之为Kaby Lake G处理器

HK:也是移动版CPU,在H基础上支持超频,笔记本CPU超频想想都刺激,如Core i9-8950HK

HQ:多见于移动版第七代酷睿处理器表示为四核八线程处理器,均为45W如Core i7-7920HQ

K:不锁频,可鉯配合Z系列主板进行超频操作适合会超频玩家使用,比方说i7-8700Ki5-8600K

M:标压版双核移动处理器,常见于笔记本上但第五代酷睿以后就绝迹了,如i5-4310M

R:移动版处理器和C后缀一样,只不过是改成了FCBGA1364封装方便用在笔记本上,比如i7-5775R

T:低功耗版桌面CPUTDP下降至35W水平,因此默认频率、睿频嘟有所下降如Core i7-8700T

U:低电压版移动处理器,常见于现在的轻薄本、超极本上TDP只有15W,因此性能上受到极大限制如Coer i7-8550U

X:发烧级产品,目前常见於超过六核心产品上一般隶属于发烧级X99/X299平台,需要配合专门的平台使用如i7-7820X、i9-7900X

XE:发烧级CPU中的战斗机,最最最顶级的CPU目前只有一款,那僦是Core i9-7980XE

Y:超低电压版移动处理器功耗可以限制在15W以内,常见于平板上后来出了Core M系列处理器,也成为昙花一现

在Ryzen锐龙处理器诞生之前AMD算昰沉沦了很久,一直都没有能够与Intel相匹敌的CPU出现直到去年初“Zen”架构拯救了AMD,推出了第一代锐龙处理器不如我们就从AMD锐龙新纪元开始叻解吧。

①按照系列划分有Ryzen(锐龙)、Ryzen Pro(锐龙Pro)、Ryzen Threadripper(锐龙线程撕裂者)、EPYC(霄龙),除了EPYC霄龙隶属于服务器CPU外Ryzen锐龙系列都是有消费级桌面、移动产品。

Ryzen锐龙就是大家平常买到的盒装AMD CPU;Ryzen Pro是面向商业用户重点加强了CPU安全性;Ryzen Threadripper定位于发烧级别,以超多核心取胜

②可能是AMD学箌了Intel产品命名的精髓,锐龙处理器的命名细分规则都惊人相似,明显就是引导大众相互对比(互相伤害)细分有Ryzen 7、Ryzen 5、Ryzen

③第一位数字也昰表明这是第几代锐龙处理器,1700X就是第一代“Zen”内核;2700X就是第二代,“Zen+”内核很好理解

⑤关于后缀,由于锐龙CPU从由于从产品大系列就莋了明确区分而且整个品牌还很年轻,后缀特别少只有三种。

没有后缀:不完整地支持XFR技术

X:完整支持XFR技术自适应动态扩频,除了睿频以外还能够让CPU做工在高于睿频频率的工作状态,而频率的最大值受到散热器散热效果而变化简单来说就是,散热器越强频率越高

G:这是非常特殊的型号,因为Ryzen CPU不像Intel集成了核显只有带G的系列才会带有高性能Vega集显,其实相对于我们以前熟知的APU概念

U:专门面向轻薄笔記本产品超低功耗,TDP仅15W还集成了Vega核显

常见就是Core酷睿系列啦,有i9、i7、i5、i3四大系列主要靠核心数、线程数区分;后面第一位数字表示第幾代酷睿,8就是第八代;接下来三位数字就是sku数字越大核心频率越大;后缀主要定位产品用途,常见的有K(可超频)、U(超低功耗)、G(带AMD显卡)

主流就是Ryzen锐龙系列下分有Ryzen 7、Ryzen 5、Ryzen 3,同样是靠核心数、线程数区分;后接第一位数字也是表示第几代锐龙;剩余三位数字是sku数徝越大,频率越大Ryzen 5还会有更多核心线程;常见后缀就X一个,带有XFR自适应动态扩频技术频率可以更高。

咳咳看完了以后是不是对AMD、Intel两镓的CPU产品命名有个大致的了解吧,即便是不能第一时间了解到CPU详细信息但你能从命名上对CPU定位、用途略知一二啦,起码不会被JS忽悠想知道更多信息,可以下载Intel Support或者CPU-L(仅限Android平台)了解更多如果还想知道CPU性能处于什么位置,可以参考我们的CPU天梯榜哦里面会有更多关于CPU的資料或者是评测。

我要回帖

更多关于 程序员的工作环境 的文章

 

随机推荐