控制、处理的作用 (对于软件工程师来讲,CPU可以简单理解为是一些寄存器们的集合)
CPU中的四大组件:
1、寄存器(存):短暂存储电脑中的数据(可以理解为是CPU的内存)
2、控制器(指挥怎么存):将寄存器中的数据进行依次读入和写出(可以理解为就是寄存器的控制器)
3、运算器(协调存和指挥):逻辑运算单元,协助控制器、寄存器达到运算效果
4、时钟(计算频率):推动上面1、2、3三部分的运转,即1、2、3三部分运转一回的速度。单位为GHZ(每秒钟10亿次运算),例如I7处理器的频率3.2GHZ。
1、2、3、4这四者之间的关系:1解决了存储的问题,2解决了如何存储的问题,3解决了对存储的数据运算的问题。有了这三部分此时我们的CPU还是死的,我们需要一个推动运转的东西,此时就引出了时钟,目的是即推动1、2、3这三部分运转(运算)。
高级语言:人类能懂,更好记忆,并且指令更加少,例如:printf
低级语言:机器语言,CPU能懂的,例如:11110010
如果我们在编程的过程中都是在用11110010的语言那么灰色难懂会耗费大量的时间和精力,这是我们就将这些机器语言进行分类和规定,例如将11110010规定为add,这样就引出了汇编语言。
CPU当中的寄存器会从内存中读取值来做程序的运行
因为不同寄存器所负责的功能不同,所以我们需要将寄存器进行分类,分为一下几类:
1、累加寄存器(算数):存储运算之后的数据
2、标志寄存器(逻辑判断):记录数据运算之后CPU的状态,即判断运算之后CPU里的值是否有溢出、为0/1
3、程序计数寄存器:存储下一条指令在内存当中的位置
4、基址寄存器:记录当前内存开始的位置
5、变址寄存器:记录基址寄存器相对偏移位置
(4和5组合就可以得到某一内存地址,例如:基址寄存器值为1000,变址寄存器值为50,1000+50 = 1050
6、通用寄存器:什么地方都可以用
7、指令寄存器:CPU内部使用不对外开放,存储当前指令
8、栈寄存器:记录栈的起始位置
引入程序计数寄存器的原因:
因为我们的程序不仅仅是顺序执行的,还有条件分支和循环的执行。
程序计数器的作用:当程序加载到内存中时,操作系统机会告诉CPU程序开始的地方,例如0100;CPU中的程序计数寄存器就会记录,例如0100,等执行完成之后程序计寄存器中的值会自动+1变成0101,CPU会再取一下程序计寄存器中的值,0101,然后程序继续向下执行。
计算机中的电子元件通电不通电来进行一些机器化地运作,那我们平时看到的计算机为什么会那么智能?因为是程序让计算机进行了进化,让其变得更加智能。
程序让本来像机器一样的计算机富有智慧。
为什么程序就能让计算机赋有智慧呢?
可以用简单的人与电脑进行猜拳的游戏来理解。电脑出拳的方式有两种:第一种是一直 print 石头、剪刀、布,第二种是随机(rand) print 石头、剪刀、布。相对于一直出一种,随机出就好像变得有了思考,但这只是一种很简单地思考。因为计算机是能够存储值的,这样我们就可以通过记忆来完成这个程序。
怎么通过记忆来完成呢?
我们假设以10把为一个周期,第一次的10把,电脑随机出 石头、剪刀、布,但是第二次的10把 电脑会分析你出哪个出的最多,电脑就多出赢你的那个,这样电脑就看起来好像会学习了,之后的每把都是基于前面存储的数据,电脑就能分析出你的行为习惯,进而出赢你的个,这样提高获胜的概率。
故所谓的人工智能的本质就是 通过存储的值 找到一个概率 进而产生一种思考和智能。
