在程序员眼里CPU应该是什么样的?
CPU是什么东西?
我们先来说CPU的全称是什么,英文名字 Central Processing Unit(中央处理器 )的缩写,相当于计算机的大脑,它是数百万甚至数亿的晶体管构成的,这是大家都知道的计算机常识,但是作为我们计算机技术爱好者或者是程序员来说,只知道这些就太少了。我今天想带大家了解的是关于CPU是如何运行的,里面都有一些什么功能。
CPU原理图
首先我们看一下这张图,图中还是很详细地给我们画出了程序执行的过程。刚刚我们也提到了我们的CPU是由很多的晶体管组成的电子部件,我们的内存也是,通常称为IC(Integrated Circuit),我们从CPU的原理图中来看,构造还是比较简单的对吧,有存储单元(寄存器)、运算单元(运算器)、控制单元(控制器),各个部分相互配合信号和数据在各个部分流通就可以完成我们所有的计算机操作,接下来我们看看我们每一个部分的工作都是做一些什么。
寄存器:可以用来暂存指令,数据等一些需要CPU处理的对象,你可以看作是内存的一种但是寄存器读写速度比内存要快很多,为了提高我们的效率根据不同的需要有些CPU内部会有20~100个寄存器。
控制器:负责把内存上的指令,数据读入到寄存器,并且根据指令执行的结果来控制整个计算机的行为。
运算器:运算器负责运算从内存读入寄存器的数据。
在这里我还要补充一个原理图中没有的模块,那就是CPU的时钟模块,我们的时钟模块负责发出CPU开始计时的时钟信号,这里我们要做到如果时钟信号 Pentium 2GHz 那它代表的意思就是时钟信号的频率为2GHz(1GHz=10亿次/秒)你可以理解时钟信号频率越高CPU运行速度越快。不过有的计算机时钟位于CPU的外部,所以我们刚刚的原理图里面没看见这个模块。
程序跑起来的流程
现在大家看完这些是不是觉得很神秘的CPU也是比较简单的构造,他可以做的我们都可以做,但是有一点他的计算能力不是我们凡人可以拥有的。程序运行以后,根据时钟信号,控制器会从内存中读取指令和数据,通过这些指令介意解释和运行,运算器就会对数据进行运算,然后我们的运算结果由控制器控制计算机做出相应的动作。
深入探讨
接下来我们就要很专业地去深入了解一些东西了,如果下面的比较枯燥无味你建议你到此为止,了解一下基本就OK了,但是你想更深入的探讨那就来吧。
我们讲到我们CPU是由寄存器,运算器,控制器,时钟信号组成的,其实我们需要深入地了解的是我们的寄存器,为什么呢?这是因为我们的程序是把寄存器作为对象来描述的。
我们在使用高级语言进行代码编译的时候在编译的时候都会转化为机器语言,然后通过CPU的内部寄存器来处理,比如我们写这样一条代码:A=1+2;这样的高级语言代码在转化成机器语言后就是利用寄存器来进行相加运算和存储处理的。
刚刚也提到过在外面CPU中有很多的寄存器,功能和数量都是不一样的,但是我们还是可以将寄存器大致划分成八类:
对于我们程序员CPU是什么呢?CPU是由各种功能的寄存器集合体,其中程序计数器,累加器、标志寄存器、指令寄存器和栈寄存器都只有一个,其他的寄存器是可以有多个的。
程序计数器
这里我们挑其中一个来细说一下工作原理,我们的程序计数器决定我们我们程序的流程,我们举一个简单的函数调用机制来说明一下程序的执行流程,
我们C语言程序程序代码中定义了两个变量a=123 b=456 然后把它做为参数传递到啊函数MyFunc()里面。从内存地址中我们发现当程序运行到地址0132的时候接下来应该执行函数体,我们函数体入口的地址在0260,这时候我们通过跳转指令把程序极速器的值设定为0260就可以实现函数的调用。我们把a、B的数据从地址0132传递到0260可以利用内存或者寄存器来实现。
我们需要知道的是当程序调用完函数后,我们需要在函数的出口0354地址处把程序计数器的值改成原来的0154,这样才会回到原来的下一条指令。但是其实我们根本没办法完成这样的操作。那我们怎么办?我们可以通过call指令和return 指令来解决。我们来看看两种指令的原理:
在编译高级编程语言的程序后,函数调用的处理会转换成call指令。函数结束处理时候就会转换成return指令,这样一来我们程序就可以运行起来了。
总结
分享到这里感觉后半部分的知识点还是比较生涩,可能没很好地理解,但是还是坚持写完了,要敢于迈出第一步,可能第一次写不明白那就第二次,同样如果你第一次看不明白那就看第二次总会有一天忽然开朗熟记于心。我们需要保持一份对技术的热爱。
-
硫酸(H2SO4)是硫的最重要的含氧酸。纯硫酸为无色粘稠状液体,质量分数98.3%的纯浓硫酸,密度为1.84g/cm³,沸点338℃,熔点10.35℃,有强腐蚀性,有刺激性气味,能与水以任意比例互溶,生成稀硫酸。同时放出大量的热,使水沸腾。硫酸是一种反应性极强的二元无机强酸,能和许多金属发生反应。高[详细]
-
摘自《经典就该这样读》浦宇平痛苦在很多时候是一种洗礼,甚至是一种救赎。当你在阅读中见到、理解到、感悟到人生的苦难之后,再回到现实中,面对一切生活的痛苦,你会更坦然一些,更容易接受一点,至少也更容易从痛苦当中走出来。叶圣陶先生是中国现代历史上非常重要的一位作家,更是一位教育家。在文学和教育两方面,叶圣[详细]
-
在生态学中,生物和非生物因素包括生态系统中所有的生物和非生物部分。生物因素是指生物体及其相互关系。非生物因素是指生态系统中的非生物成分,包括阳光、水、温度、风和营养物质。生态学家使用生物和非生物因素来预测种群变化和生态事件。通过调查这些因素是如何相互作用的,生态学家可以估算出生态系统在一段时间内发生[详细]
-
近年来,中国在许多领域取得了令人瞩目的成就。以下是一些具体实例:1. 经济增长:中国是全球第二大经济体,在过去几十年里取得了惊人的经济增长。改革开放以来,中国实施了一系列的市场化改革措施,促进了国内外投资、贸易自由化和产业升级,推动了经济的快速发展。2. 科技创新:中国在科技创新方面取得了巨大的进步[详细]
-
财富是人生的一道明亮灯塔,引领我们走向繁荣富裕的彼岸。如同四大生肖中镇楼的‘财’字一般,在这个世界上闪耀着璀璨的光芒。它代表着财运滚滚,无尽的财富源源不断地涌现。它是我们追求福祉的象征,为我们带来了幸福和快乐。‘财’字所带来的不仅仅是物质上的富足,更是精神上的满足和自由。它能够让我们品味生活的美好,[详细]