「金沙澳门赌场官方网址」通俗的说一说指令集是什么?CPU是如何工作的?


您现在的位置:现金捕鱼网站 > 现金捕鱼 > 「金沙澳门赌场官方网址」通俗的说一说指令集是什么?CPU是如何工作的?

2075人阅读

「金沙澳门赌场官方网址」通俗的说一说指令集是什么?CPU是如何工作的?

金沙澳门赌场官方网址,前言:

挺久之前写过一篇文章《通俗的说一说:一堆沙子是如何变成芯片的》,有网友回复要求讲一讲cpu是如何工作的。

老实说,虽然在很多年前学过数字电路,也学过一点汇编语言,可是早已经交还给老师了,更不要说当年就没怎么学好。

一直拖了很久,看过一些资料之后,才再次提起这一事,本人试图用最通俗的语句来描述一下什么是指令集和cpu的工作原理。说得不对,也请大家包涵指正。

要说清楚cpu如何工作,我们先得了解一下程序是如何运行的,因为cpu是由程序驱动并完成程序的指令,从而得到运算结果的。

在最早的计算机上,编程人员将计算要求转换成1010这样的二进制程序,再将1010在纸带上用孔来表示,打孔的纸带输入到计算机之后,计算机就能计算了。

这纸带上的二进制程序就是机器语言,这些孔就是告诉计算机,该读数据、进行加减乘除、或者“与或”逻辑运算,而纸带上直接的输入是“孔”和“非孔”,也就“断电”和“通电”,反应在晶体管上的状态就是“闭”与“开”,如果晶体管是一个灯泡,那它表现出来就是一闪一灭。

然而,机器语言太过于专业难懂,科学家们用了一种高级的语言来代替它,这就是汇编语言。汇编语言更接近人类的语言,用编译器可以将汇编语言转为机器可以识别的机器语言。

这编译器就相当于一个翻译机,它根据设定好的规则,将汇编语言一条条转化为二进制语言。

这个时候,问题就来了!编译器所用的规则,是由设计计算机(现在归结为cpu)的人规定的,那么用汇编语言的工程师,就必须按照他所给的规则来编,要不然,编译器转化出来的二进制语言就是乱七八糟的,在电脑上反应出来的就是蓝屏了,因为cpu根本不管你输入的101010是对是错,它就按给的来执行,这时出来的结果就不知道是什么东西了。

好了,设计cpu的人给出的编写规则就可以说是指令,这一系列的规则就是指令集(合)。

而设计cpu的厂商有多家,这样就产生了不同的指令集,比如intel阵营的8086指令集,arm阵营的risc指令集。不同阵营,其对应的汇编语言也是不一样的。

虽然汇编语言比较接近人类语言,但是毕竟还是过于难懂,这也是为什么古代有那么多秘籍,能练成绝世武功的人少之又少,那是因为,并不一定所有得到秘籍的人都能看得懂。

为了解决跨平台运行程序的问题,科学家又发展出了各种各样的高级语言,比如c、c++、vb、php、java等等,用这些语言编写的程序要么在相应系统正确的运行环境中直接运行,要么经过编译,打包出对应的程序就可以了。比如用java或php写了一个app,通过打包工具,可以直接打包成安卓app,也可以打包成苹果app,这就解决了汇编语言不兼容的问题。

用下面的图表示一下这三类语言的区别与关系:

用户的需求就如探子得到的情报,大帅必须对敌人来犯进行处理。

这时大帅就写了一个“射箭”的程序。

旗手将“射箭”转化成了旗语的汇编语言。

最后箭队的队长就将旗语转化成了“拉弓”、“放箭”这样的二进制机器语言。

箭兵得到命令,按指令进行操作。

如何打一场战争

好了,这个箭队就是最终执行任务的cpu。

更专业些的描述是下面的图形

那么cpu的工作原理,就是将输入的信息转化成10101数字信号,这些信号通过cpu模块转换成高电平与低电平,(《最高等的美:数学史上十大最美的公式》),这些模拟电信号按指定通过不同的模块,cpu模块上的微小晶体管就会产生“闭”与“开”的动作,最终得到计算结果。

可进行读、写、转换等操作的模块是下图中的control(控制器),存放数据的是cache、dram,真正进行计算的是alu单元。

左cpu右gpu的微架构

相信看到这里的朋友应该大致对cpu和指令集有些概念了,现在再去百度,应该很容易理解那些专业的内容了。

申慱sunbet网址