CPU⼯作原理:最简单的元器件,构成了最复杂的运算
我们都知道,⼈类进⾏运算的本质是查表,并且我们存储的表是有限的。那么,计算机是怎样进⾏四则运算的呢?也是
查表吗?答案肯定不是!今天,我们就来说说CPU是如何计算1+1的。
现代计算机⼜叫电⼦计算机,肯定是由电路和电⼦元件来实现的。我们都知道,⼀台计算机的核⼼就是处理器
(CPU),它的职责就是运算。CPU是⼀块超⼤规模的集成电路,我们要想弄清楚计算机的运算机制,就要了解集成
电路是如何具有运算能⼒的,⽽集成电路是由⼤量晶体管等电⼦元件封装⽽成的。
所以,探究计算机的计算能⼒,先要从晶体管的功能⼊⼿。
晶体管如何表⽰0和1
从第⼀台计算机到EDVAC,这些计算机使⽤的都是电⼦管和⼆极管等元件,利⽤这些元件的开关特性实现⼆进制的计
算。然⽽电⼦管元件有许多明显的缺点。例如,在运⾏时产⽣的热量太多,可靠性较差,运算速度不快,价格昂贵,体
积庞⼤,这些都使计算机发展受到限制。于是,晶体管开始被⽤来作计算机的元件。
晶体管利⽤电讯号来控制⾃⾝的开合,⽽且开关速度可以⾮常快,实验室中的切换速度可达100GHz以上。使⽤了晶体
管以后,电⼦线路的结构⼤⼤改观,进⼊了晶体管为代表的第⼆代电⼦计算机时代。
1947年贝尔实验室的肖克利等⼈发明了晶体管,⼜叫做三极管。下图是晶体管的电路符号。需要说明的是,晶体管有很
多种类型,每种类型⼜分为N型和P型,下⾯图中的电路符号就是⼀个N型晶体管。
晶体管电路有导通和截⽌两种状态,这两种状态就可以作为“⼆进制”的基础。从模电⾓度来说晶体管还有放⼤状态,但
是我们此处考虑的是晶体管应⽤于数字电路,只要求它作为开关电路,即能够导通和截⽌就可以了。
如上图所⽰,当b处电压>e处电压时,晶体管中c极和e极截⽌;当b处电压
是⼀个简化说明,实际上从模电⾓度分析,导通和截⽌的要求是两个PN节正向偏置和反向偏置,还要考虑c极电压。但
在实际的数字电路中,e极电压和c极电压⼀般恒定,要么由电源提供、要么接地,所以我们可以简单记为“晶体管电路
的通断就是由b极电压与恒定的e极电压⽐较⾼低决定”。
换句话说,这个三极管的b极电压相对e极为低电平时三极管就会导通,相对e极为⾼电平时三极管就会截⽌。从这⾥可
以看出,晶体管的导通与截⽌这两种状态对外可以使⽤b极电压的相对⾼低来表⽰,进⽽说明了我们可以使⽤⾼电平或
者低电平状态来表⽰⼆进制。也就是说b极是⼀个输⼊量(⾃变量),可以作为变量存储两个数值:⾼电平或低电平;
相应的输出值(因变量)就是电路实际的变化:导通或截⽌。
就上⾯这个N型晶体管⽽⾔,⾼电平截⽌,低电平导通。假如此时,我们把⾼电平作为“1”,低电平作为“0”。那么b极输
⼊1,就会导致电路截⽌,如果这个电路是控制计算机开关机的,那么就会把计算机关闭。这就是机器语⾔的原理。
实际⽤于计算机和移动设备上的晶体管⼤多是MOSFET(⾦属-氧化物半导体场效应晶体管),它也分为N型和P
型,NMOS就是指N型MOSFET,PMOS指的是P型MOSFET。注意,MOS中的栅极Gate可以类⽐为晶体管中的b极,
由它的电压来控制整个MOS管的导通和截⽌状态。
NMOS电路符号如下图:
PMOS电路符号如下图:
PMOS电路符号如下图:
NMOS在栅极⾼电平的情况下导通,低电平的情况下截⽌。所以NMOS的⾼电平表⽰“1”,低电平表⽰“0”;PMOS相
反,即低电平为“1”,⾼电平为“0”。到了这个时候,你应该明⽩“1”和“0”只是两个电信号,具体来说是两个电压值,这两
个电压可以控制电路的通断。
门电路
⼀个MOS只有⼀个栅极,即只有⼀个输⼊;⽽输出只是简单的电路导通、截⽌功能,不能输出⾼低电压信号,即⽆法表
⽰“1”或“0”,⾃然⽆法完成计算任务。此时就要引⼊门电路了(提⽰:电压、电平、电信号在本⽂中是⼀回事)。
门电路是数字电路中最基本的逻辑单元。它可以使输出信号与输⼊信号之间产⽣⼀定的逻辑关系。门电路是由若⼲⼆极
管、晶体管和其它电⼦元件组成的,⽤以实现基本逻辑运算和复合逻辑运算的单元电路。这⾥只介绍最基础的门电路:
与门、或门、⾮门、异或门。
1、与门
与门电路是指只有在⼀件事情的所有条件都具备时,事情才会发⽣。
下⾯是由MOS管组成的电路图。A和B作为输⼊,Q作为输出。
例如A输⼊低电平、B输出⾼电平,那么Q就会输出低电平;转换为⼆进制就是A输⼊0、B输出1,那么Q就会输出0,对
应的C语⾔运算表达式为0&&1=0。
2、或门
或门电路是指只要有⼀个或⼀个以上条件满⾜时,事情就会发⽣。
下⾯是由MOS管组成的电路图。A和B作为输⼊,Q作为输出。
例如A输⼊低电平、B输⼊⾼电平,那么Q就会输出⾼电平;转化为⼆进制就是A输⼊0、B输出1,那么Q就会输出1,对
应的C语⾔运算表达式为0||1=1。
3、⾮门
⾮门电路⼜叫“否”运算,也称求“反”运算,因此⾮门电路⼜称为反相器。下
⾯是由MOS管组成的电路图。⾮门只有⼀个输⼊A,Q作为输出。
例如A输⼊低电平,那么Q就会输出⾼电平;转换为⼆进制就是A输⼊0,那么Q就会输出1;反之A输⼊1,Q就会得到
0,对应的C语⾔运算表达式为!0=1。
4、异或门
异或门电路是判断两个输⼊是否相同,“异或”代表不同则结果为真。即两个输⼊电平不同时得到⾼电平,如果输⼊电平
相同,则得到低电平。
下⾯是由MOS管组成的电路图。A和B作为输⼊,Q作为输出。
例如A输⼊低电平、B输⼊⾼电平,那么Q输出⾼电平;转换为⼆进制就是A输⼊0,B输出1,那么Q就会输出1,对应的
C语⾔运算表达式为0^1=1。
通过这些门电路,我们可以进⾏布尔运算了。
半加器和全加器
通过门电路,我们可以进⾏逻辑运算,但还不能进⾏加法运算。要进⾏加法运算,还需要更复杂的电路单元:加法器
(加法器有半加器和全加器)。加法器就是由各种门电路组成的复杂电路。
假如我们要实现⼀个最简单的加法运算,计算⼆进制数1+1等于⼏。我们这时候可以使⽤半加器实现。半加器和全加器
是算术运算电路中的基本单元,它们是完成1位⼆进制相加的⼀种组合逻辑电路;这⾥的1位就是我们经常说
的“1byte=8bit”⾥的1bit,即如果我们想完成8位⼆进制的运算就需要8个全加器。半加器这种加法没有考虑低位来的进
位,所以称为半加。下图就是⼀个半加器电路图。
半加器由与门和异或门电路组成,“=1”所在⽅框是异或门电路符号,“&”所在⽅框是与门电路符号。这⾥⾯A和B作为输
⼊端,因为没有考虑低位来的进位,所以输⼊端A和B分别代表两个加数。输出端是S和C0,S是结果,C0是进位。
⽐如,当A=1,B=0的时候,进位C0=0,S=1,即1+0=1。当A=1,B=1的时候,进位C0=1,S=0,即1+1=10。这个10
就是⼆进制,换成⼗进制就是⽤2来表⽰了,即1+1=2。到了这⾥,你应该明⽩了晶体管怎么计算1+1=2了吧。
然后我们利⽤这些,再组成全加器。下⾯是⼀个全加器电路图,同样只⽀持1bit计算。Ai和Bi是两个加数,Ci-1是低位
进位数,Si是结果,Ci是⾼位进位数。
如果我们将4个加法器连接到⼀起就可以计算4位⼆进制,⽐如计算2+3,那么4位⼆进制就是0010+0011,下表就是利
⽤加法器计算的值。和普通加法⼀样,从低位开始计算。加数A代表0010,B代表0011。
结果Si:0101,就是⼗进制5,加法器实现了⼗进制运算2+3=5。
结语
现在我们可以想到,CPU的运算单元是由晶体管等各种基础电⼦元件构成门电路,在由多个门电路组合成各种复杂运算
的电路,在控制电路的控制信号的配合下完成运算,集成的电路单元越多,运算能⼒就越强。
本文发布于:2023-03-14 05:14:39,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/1678742080244226.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:cpu工作原理.doc
本文 PDF 下载地址:cpu工作原理.pdf
留言与评论(共有 0 条评论) |