正如大多数人所知道的那样,CPU的名字叫做中央处理器,它是计算机的大脑,可是对CPU的了解仅限于此的话,对我们来说其实是毫无用处,今天我们就深入的了解这个由数万个晶体管构成的小东西,是如何成为计算机的大脑的。
当你在编代码的时候,你真的只是编代码吗 ?
作为一个程序员或者程序爱好者,我们最基本的工作就是编程,可是你真的知道程序到底是什么吗?其实,程序无非就是指令和数据,是指示计算机的每一步动作的一组指令。我们编的程序,目的就是想让电脑按照我们的需求,替我们完成一些我们想要的让他完成的事情,可是仅仅单凭这个程序,就能够让CPU像人类的大脑那样进行思考吗?显然这是不可能的,CPU还需要编译器将我们编的程序转化成机器语言(计算机可以识别的语言)。具体流程如下图:
了解到程序在计算机里是怎么处理到CPU,接下来,我们就就该聊一下cpu要干的事儿的,为什么CPU可以被叫做计算机的大脑而其他的电脑元件却不可以。
组成CPU的四大金刚
CPU作为一个计算机的中枢,当然需要镇的住场子的看家本领,CPU里的住着四位大仙,每个大仙都有自己独特的本领,他们通力合作,完成着人类世界传达过来的各种难题接下来,我们分别介绍一下:
寄存器
寄存器的主要功能就是暂存指令,数据等处理对象,就像一个藏经阁一样,存放这个我们需要参悟的道理。
控制器
控制器可以把内存上的指令,数据读入寄存器,并根据指令的执行结果来控制整个计算机
运算器
运算器可以运算从内存读入寄存器的的数据
时钟
时钟可以发出CPU计时的信号
明白了这四位大仙的工作内容,我们就需要看一下他们四个是怎样工作的呢?
程序启动后,根据时钟发过来的信号,控制器就会从内存中读取指令和数据,通过对这些指令的解释运行,运算器就会对这些数据进行运算,然后再由控制器对运算结果进行控制。
作为一个程序员,我们必须要更深刻的了解寄存器(高级语言编译后的机器语言,是通过CPU内部的寄存器来处理的,例如高级语言编写的a=a+1,编译成机器语言是利用寄存器进行运算和存储),对于我们来说,CPU无非就是各种寄存器的集合。其中程序计数器、 累加寄存器、标志寄存器、指令寄存器和栈寄存器都只有一个,其他的寄存器一般有多个,每个寄存器各司其职完成着我们的需求。
当我们去商城买电脑时,我们总会考虑电脑的的内存,从而考虑么到底是什么?清除。
其实,物理上有棱有角的内存,在程序上可以很流畅的按照逻辑使用的。在物理上,内存是个电子元件,上面有很多引脚,通过引脚可以进行数字信号,电源,控制信号, 抛开物理面,在逻辑,我们可以内存想象成座高楼,每层都存贮着同的数据,然对于程序来说,还存这数据类型不同的数据
型所占的楼是不一样的就假设存储23这个数一样,用char,short,long三种数据型储所占楼层是不一的,char类型只有一节,short只有两个字节,所以占两层,而long有四个字节,存123需要占用层楼,所以程序中数据类型的不同,导致在物理上所占的内存也是不一样的。所以使用内存是我们作为程序员必不可少的技能,使用的手段有数组,链表,二叉树等数据结构,今后我会针对使用内存所需要的数据结构技能写一篇文章。