CPU如何计算1+1的(从1+1等于2看电脑是如何干活的).docx

上传人:王** 文档编号:1091846 上传时间:2024-03-25 格式:DOCX 页数:12 大小:101.98KB
下载 相关 举报
CPU如何计算1+1的(从1+1等于2看电脑是如何干活的).docx_第1页
第1页 / 共12页
CPU如何计算1+1的(从1+1等于2看电脑是如何干活的).docx_第2页
第2页 / 共12页
CPU如何计算1+1的(从1+1等于2看电脑是如何干活的).docx_第3页
第3页 / 共12页
CPU如何计算1+1的(从1+1等于2看电脑是如何干活的).docx_第4页
第4页 / 共12页
CPU如何计算1+1的(从1+1等于2看电脑是如何干活的).docx_第5页
第5页 / 共12页
CPU如何计算1+1的(从1+1等于2看电脑是如何干活的).docx_第6页
第6页 / 共12页
CPU如何计算1+1的(从1+1等于2看电脑是如何干活的).docx_第7页
第7页 / 共12页
CPU如何计算1+1的(从1+1等于2看电脑是如何干活的).docx_第8页
第8页 / 共12页
CPU如何计算1+1的(从1+1等于2看电脑是如何干活的).docx_第9页
第9页 / 共12页
CPU如何计算1+1的(从1+1等于2看电脑是如何干活的).docx_第10页
第10页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《CPU如何计算1+1的(从1+1等于2看电脑是如何干活的).docx》由会员分享,可在线阅读,更多相关《CPU如何计算1+1的(从1+1等于2看电脑是如何干活的).docx(12页珍藏版)》请在优知文库上搜索。

1、我们知道,人类进行运算的本质是查表,并且我们存储的表是有限的。那么,计算机是怎样进行四则运算的呢,也是查表吗?肯定不是。今天,我们来说一说CPU是如何计算1+1的。现代计算机又叫电子计算机,肯定是由电路和电子元件来实现的呗。我们都知道一台计算机的核心就是处理器(CPU),它的职责就是运算。CPU是一块超大规模的集成电路,我们要想弄清楚计算机的运算机制就要了解集成电路是如何具有运算能力的;而集成电路是由大量晶体管等电子元件封装而成的,所以探究计算机的计算能力就可以从晶体管的功能入手。晶体管如何表示。和1从第一台计算机到EDVAC,这些计算机使用的都是电子管和二极管等元件,利用这些元件的开关特性实

2、现二进制的计算。然而电子管元件有许多明显的缺点。例如,在运行时产生的热量太多,可靠性较差,运算速度不快,价格昂贵,体积庞大,这些都使计算机发展受到限制。于是,晶体管开始被用来作计算机的元件。晶体管利用电讯号来控制自身的开合,而且开关速度可以非常快,实验室中的切换速度可达IOoGHZ以上。使用了晶体管以后,电子线路的结构大大改观,进入了晶体管为代表的第二代电子计算机时代。1947年贝尔实验室的肖克利等人发明了晶体管,又叫做三极管。下图是晶体管的电路符号。需要说明的是,晶体管有很多种类型,每种类型又分为N型和P型,下面图中的电路符号就是一个N型晶体管。cQ晶体管电路有导通和截止两种状态,这两种状态

3、就可以作为“二进制”的基础。从模电角度来说晶体管还有放大状态,但是我们此处考虑的是晶体管应用于数字电路,只要求它作为开关电路,即能够导通和截止就可以了。如上图所示,当b处电压e处电压时,晶体管中C极和e极截止;当b处电压Ve处电压时,晶体管中C极和e极导通。这只是一个简化说明,实际上从模电角度分析,导通和截止的要求是两个PN节正向偏置和反向偏置,还要考虑C极电压。但在实际的数字电路中,e极电压和C极电压一般恒定,要么由电源提供、要么接地,所以我们可以简单记为“晶体管电路的通断就是由b极电压与恒定的e极电压比较高低决定二换句话说,这个三极管的b极电压相对e极为低电平时三极管就会导通,相对e极为高

4、电平时三极管就会截止。从这里可以看出,晶体管的导通与截止这两种状态对外可以使用b极电压的相对高低来表示,进而说明了我们可以使用高电平或者低电平状态来表示二进制。也就是说b极是一个输入量(自变量),可以作为变量存储两个数值:高电平或低电平;相应的输出值(因变量)就是电路实际的变化:导通或截止。就上面这个N型晶体管而言,高电平截止,低电平导通。假如此时,我们把高电平作为“1”,低电平作为“0”。那么b极输入1,就会导致电路截止,如果这个电路是控制计算机开关机的,那么就会把计算机关闭。这就是机器语言的原理。实际用于计算机和移动设备上的晶体管大多是MOSFET(金属一氧化物半导体场效应晶体管),它也分

5、为N型和P型,NMoS就是指N型MOSFET,PMOS指的是P型MOSFET。注意,MOS中的栅极Gate可以类比为晶体管中的b极,由它的电压来控制整个MOS管的导通和截止状态。NMOS电路符号如下图:DrainSourcePMOS电路符号如下图:NMOS在栅极高电平的情况下导通,低电平的情况下截止。所以NMoS的高电平表示“1”,低电平表示“0;PMoS相反,即低电平为“1”,高电平为“0二到了这个时候,你应该明白“1”和“0”只是两个电信号,具体来说是两个电压值,这两个电压可以控制电路的通断。门电路一个MOS只有一个栅极,即只有一个输入;而输出只是简单的电路导通、截止功能,不能输出高低电压

6、信号,即无法表示“1”或“0”,自然无法完成计算任务。此时就要引入门电路了。(小提示:电压、电平、电信号在本文中是一回事)门电路是数字电路中最基本的逻辑单元。它可以使输出信号与输入信号之间产生一定的逻辑关系。门电路是由若干二极管、晶体管和其它电子元件组成的,用以实现基本逻辑运算和复合逻辑运算的单元电路。这里只介绍最基础的门电路:与门、或门、非门、异或门。Ol与门与门电路是指只有在一件事情的所有条件都具备时,事情才会发生。下面是由MoS管组成的电路图。A和B作为输入,Q作为输出。例如A输入低电平、B输出高电平,那么Q就会输出低电平;转换为二进制就是A输入0、B输出1,那么Q就会输出0,对应的C语

7、言运算表达式为0&l=0o02或门或门电路是指只要有一个或一个以上条件满足时,事情就会发生。下面是由MOS管组成的电路图。A和B作为输入,Q作为输出。例如A输入低电平、B输入高电平,那么Q就会输出高电平;转化为二进制就是A输入0、B输出1,那么Q就会输出1,对应的C语言运算表达式为OIIl=1。03非门非门电路又叫“否”运算,也称求“反”运算,因此非门电路又称为反相器。下面是由MoS管组成的电路图。非门只有一个输入A,Q作为输出。例如A输入低电平,那么Q就会输出高电平;转换为二进制就是A输入0,那么Q就会输出1;反之A输入1,Q就会得到0,对应的C语言运算表达式为!0=1。04异或门异或门电路

8、是判断两个输入是否相同,“异或”代表不同则结果为真。即两个输入电平不同时得到高电平,如果输入电平相同,则得到低电平。下面是由MOS管组成的电路图。A和B作为输入,Q作为输出。例如A输入低电平、B输入高电平,那么Q输出高电平;转换为二进制就是A输入O,B输出1,那么Q就会输出1,对应的C语言运算表达式为0l=lo通过这些门电路,我们可以进行布尔运算了。半加器和全加器通过门电路,我们可以进行逻辑运算,但还不能进行加法运算。要进行加法运算,还需要更复杂的电路单元:加法器(加法器有半加器和全加器)。加法器就是由各种门电路组成的复杂电路。假如我们要实现一个最简单的加法运算,计算二进制数1+1等于几。我们

9、这时候可以使用半加器实现。半加器和全加器是算术运算电路中的基本单元,它们是完成1位二进制相加的一种组合逻辑电路;这里的1位就是我们经常说的“lbyte=8bit”里的Ibit,即如果我们想完成8位二进制的运算就需要8个全加器。半加器这种加法没有考虑低位来的进位,所以称为半加。下图就是一个半加器电路图。半加器由与门和异或门电路组成,“所在方框是异或门电路符号,“&”所在方框是与门电路符号。这里面A和B作为输入端,因为没有考虑低位来的进位,所以输入端A和B分别代表两个加数。输出端是S和CO,S是结果,CO是进位。比如,当A=l,B=O的时候,进位C0=0,S=I,即1+0=1o当A=l,B=I的时

10、候,进位C0=l,S=O,即1+1=10。这个10就是二进制,换成十进制就是用2来表示了,即1+1=2。到了这里,你应该明白了晶体管怎么计算1+1=2了吧。然后我们利用这些,再组成全加器。下面是一个全加器电路图,同样只支持Ibit计算。Ai和Bi是两个加数,CiJ是低位进位数,Si是结果,Ci是高位进位数。如果我们将4个加法器连接到一起就可以计算4位二进制,比如计算2+3,那么4位二进制就是OolO+0011,下表就是利用加法器计算的值。和普通加法一样,从低位开始计算。加数A代表0010,B代表OOl1。位数加数Ai加数Bi低位进位Cil结果Si向高位进位Ci最低位01010110010011

11、0最高位00000结果Si:0101,就是十进制5,加法器实现了十进制运算2+3=5。现在我们可以想到,CPU的运算单元是由晶体管等各种基础电子元件构成门电路,在由多个门电路组合成各种复杂运算的电路,在控制电路的控制信号的配合下完成运算,集成的电路单元越多,运算能力就越强。附参考资料:计算机运行原理:从1+1等于2看电脑是如何干活的?人类大脑白天工作,晚上休息;电脑白天随人一起运转,到了晚上人类按下电源键,它们也开始休息。如果CPU中的电子元件有意识,那么它们觉察到自身的硬件性能一代比一代强,软件功能一代比一代复杂,它们能意识到在它们之上,有人类在指挥和操控着这一切吗?今天计算机已经可以处理很

12、多复杂的工作了,复杂的问题我们先不考虑,先想一个最简单的问题:计算机是如何计算1+1=2的?这个问题看似简单,但通过它可以见微知著。可以说,所有计算机表面上复杂的软件运行,都是底层简单的节字叠加。通过对这个问题的剖析,我们可以了解一些底层最基础的编程基本概念,和电子计算机的运行原理。1+1,对任何一位读者来讲都很容易,但这项数学技能是人类后天通过学习而习得的,人类生来并不会计算。那么计算机的1+1计算能力是如何拥有的呢?我们可以说,是通过编程语言实现的吗?那么,什么又是编程语言呢?像C、C+、Java,C#、Python,这些都是编程语言,还有我们在微信小游戏开发中学习的JavaScriptG

13、o语言,也是编程语言,并且Go语言还可以说是一个现代高级编程语言,相当于是互联网时代的C语言。编程语言的作用是什么?为什么人类不用自己的自然语言进行编程呢,这样程序员不是就少了一项学习任务了吗?人类语言,是人与人之间沟通的桥梁,编程语言是人与计算机之间交流的工具。计算机听不懂人类的话语至少在目前这个时代是不可以的,人类想控制计算机,想与计算机交流,就必须通过中间角色翻译。早期科学家通过拨动开关编程,后来通过纸带打孔编程,这些方式效率都极其低下。后来程序员发明了汇编语言,这已经是一个巨大的进步了,但汇编语言晦涩难懂,表意性又不强,编程效率不高。直到1972年,有个老外叫丹尼斯里奇,他在贝尔电话实

14、验室设计出了通用的C语言,编程才算彻底走出了蛮荒时代。自C语言诞生之后,新的编程语言层出不穷,到目前为止全世界至少已经有600种编程语言。这些语言虽然复杂,但大多数并不是通用的语言,很多编程语言只是为了解决某个特定领域的具体问题而设计的,所以并不是每个语言都具备普通大众深入学习的价值。编程语言种类虽然繁多,但它们像人类的自然语言一样,有它们的共通性,往往学习了一门语言,其它语言也能触类旁通。老话说“弱水三千,只取一瓢饮”,现在我们就以JS也就是JaVaSeriPt为例,来探究一下计算机是如何计算1+1=2的?对这个问题的探索,分为以下4步。1在浏览器中进行算式实验首先,打开谷歌浏览器,右健单击

15、页面的空白处,选择“检查”,如图1-1所示:重新加载存储为打印CJ保存网页0屏蔽元素显示网页源代码检查语音图1-1谷歌浏览器右键菜单然后,在打开的浏览器自带的开发者工具面板中,选择Console面板,如下面图1-2所示,这是一个浏览器环境下的调试面板:G)EMmentiConaMSaraBN(womPertonTWMmyAcn:XHQtopaDefaXtl0图1-2ConSole面板除了通过右键菜单打开Console面板,还可以通过快捷键Command+Shift+D(macOS)或者Ctrl+Shift+D(Windows)打开,效果是一样的。现在,我们在Console面板内输入我们的算式:1+1然后按下回车键,不出意外的话,我们会看到浏览器输出了结果2,如图1-3所示:G(5JElementsConsoleSourcesEtP0FilteSWregistered1+12图1-31+1计算结果这个过程看起来很快,几乎是一瞬间完成的,但计算机内部其实已经经过许许多多复杂的运算操作了。纵观人类进化史,从学会使用石器,到学会结绳记数,差不多用了100万年。但

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究生考试 > 考研数学

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!