大家好,我们已经介绍了基本的逻辑关系
又介绍了通过这些基本逻辑关系经过一些简单的变换
就能够推出其它的像与非,或非,异或
同或这样的逻辑关系,同样的通过基本逻辑门
经过简单的组合,我们可以组合出与非,或非,异或
同或这样的门电路
进一步我们又介绍了通过这些基本的逻辑门电路
以及各种简单的逻辑门电路
我们组合出了像触发器像加法器
这样子的一些逻辑电路,就稍微复杂一些的逻辑电路
那么这些逻辑电路
我们回忆一下我们从最初的与或非这样的
基本逻辑关系到最后的加法器
我们会发现实际上它们整个的工作
都有点像这种搭积木一样的,从最小的地方
逐渐逐渐逐渐这样的扩展下去
那么今天我们来看一下,从这样子的最小的原子
我们把这个最小的逻辑电路
我们可以暂时称为它的原子细胞
我们从这样子的原子细胞怎么样和
我们今天的计算机能够建立起一种对应的关系那
我们这一讲,就希望给大家去解释这些内容
我们计算机当然我们在第二讲里头
我们就已经给大家有过一些整体的介绍
大家知道了整个计算级系统的组成
特别是主机系统的组成,那么在主机系统里头
有一个最主要的部件
事实上也是我们整个计算机最主要的部件
就是CPU或者说微处理器
那么CPU是我们整个计算机的核心,那么CPU里边
运算器因为它这个运算器从名字上我们就可以感觉出来
它实际上是在做运算的,我们计算机所做的工作
我们已经说了好几次了就是执行程序
那么我们这个执行程序的工作
实际上也可以说是一种运算
所以整个程序的执行都是在运算器里来完成的
所以运算器和控制器一起共同组成了CPU的一个核心部分
它们的主要的功能就是完成了运算器的主要的功能
就是完成各种算术逻辑运算以及其它的一些操作
同时它还有一项就是暂时存放一些中间的运算结果
那么这里的第一条就是做各种操作
它是主要是在算术逻辑单元就是ALU里头完成的
而存放各种中间的运算结果以及一些特征信息
那么它是在各种寄存器里来做的
那么下边我们就来因为算术逻辑单元我们刚刚在上一讲里头
我们已经给大家有过解释就是算术逻辑单元里头
最基本的部件是加法器,所以加法器我们再上一讲里
已经给大家有过简单的介绍
那么在这里我们来看一下寄存器
寄存器实际上在我们前面已经提到
就是用来暂时存放一些信息的
寄存器和存储器的最主要的区别有两点
第一,就是在它的位置上,存储器是一个独立的部件
我们在前面讲组装主机的组装的时候
我么可以看到,内存实际上是一个存储条
外存是个硬盘还有其它的一些等等
而寄存器是在CPU里边的,这是在位置上它们的不同
另外的一个不同,寄存器里只存放的信息是非常非常少的
都是由多少位二进制来计算的,比如可以
存8位,存16位,存64位等等
而内存也好硬盘也好,那它的容量相对要大的很多很多
那么寄存器既然是存放信息的,言下之意它就具有记忆功能
那么刚才我们刚刚学到了,它的一种逻辑电路叫触发器
它是具有记忆功能的一种部件
所以触发器就可以用来制作寄存器
一个触发器可以存一位二进制
那么N个触发器就可以存N位二进制码
那么我们如果要做一个8位的寄存器
我们就可以用8个触发器就可以了
好,这就是一个用四个D触发器来构造出一个
四位的寄存器的一个简单的电路
在这里这个CP端是控制端,当CP端出现有效信号的时候
我们已经根据前面分析D触发器的基本过程
控制端一旦有效,D端的状态就决定了Q端的状态
也就是说当D端为0的时候,Q端就是0
那么这个时候就等于相当于我们把D端的这个0
存放在了相应的Q端上,那么四个这样的触发器
就存放了四位0和1,这就是寄存器
说完了寄存器,下面我们来看一下
另外一个就是我们的算术逻辑单元
我们前面只介绍了加法器,加法器我们为什么介绍加法器
是因为算术逻辑单元本身是做算术运算
它的基本功能是算术运算
而算术运算我们说加减乘除
最后都归结我加法和移位的操作
所以加法器是我们算术逻辑运算单元里面
最基本的一个部件
那么算术逻辑单元到底怎么样来完成这样一个加法那
因为刚才我们解释了加法器实际上
不管是全加器也好半加器也好
都是完成一位二进制的运算
我们今天给出一个算术逻辑单元完成一次加法运算的
一个整体的一个框架
也就帮助大家理解计算机是怎么样完成加法的
因为计算机在因为在计算机里边
不论是加法还是减法,不论做什么运算
数据在计算机中的存储都是以补码的形式来存放的
所以它的加减运算也都是以补码的形式来进行的
我们来看一个例子,比如我们来计算一下,X加Y的补码
根据我们前面学习的这个机器数的
表示和运算这一讲里头讲过的
X加Y的补码就等于X补码加Y的补码
那么我们来看一下运算器怎么样实现的
这个就是实现一个定点数补码加法运算的
一个电路的一个电路图
假设我们现在要做X补码加Y的补码
好,这个是个控制信号
上面那个F是加法器
这个控制信号由控制器来产生
当要做这个X的补加Y的补码的时候
首先,它会使控制器会发出一个控制型号
使这个与门的输入端变成高电平也就是输入一个1
与门的两个如果与门只要两输入的话,一个输入端是1
那么与门的输出就完全由一个端的状态里来决定
所以这个时候,与门我们可以就称为它属于开门了
那么这个时候X的状态通过与门就传送进了加法器里头
那么这是X,那么Y那,那么第二个数要求加数Y
那么这个时候要发出另外一个控制信号
这个控制信号使得这个与门变成开门状态
那么这个时候Y和就由触发器的Q端输出了
我们说Q触发器任何一个触发器都有两个输出端
一个而且这两个是互为反向的,一个Q,一个Q非
那么如果我们在Q端输出的是这个Y的话
那么这个Y通过这个与门
就这样子沿着这样一条路进到了加法器里头
然后就实现了X的补码加Y的补码
那么好,如果我们这个时候要计算的是X减Y的补码怎么办
我们说X减Y的补码相当于X的补码加负Y的补码
那么这个时候,触发器的Q端就不会再输出了
这个时候由Q非端会输出信号,为什么会Q非端那
因为作为触发器来讲
实际上它的Q端和Q非端是同时有状态出现的
只不过刚才那,我们只是把Q端的状态送进去了
这个时候如果要做减Y的运算的话
我们这个时候把Q端的状态让它不要进去
而是在Q非端的状态进去,这个Q非端状态的进去
靠这个控制控制器发出相应的控制信号
就是现在这个圈所表达的这个信号
就是Y非到加法器,那么好
这个就使得右侧这个与门的输入端变高
好了,那么右侧这个与门一旦开门的话
那么Y非就Q非端的状态
就沿着这条路进来了
进到了加法器那么刚才这个触发器的就是Q端
也就是在这里Y为什么就出不去了那
它实际上还是在触发器的门口
但是因为这个左侧的这个与门它的就是Y到F的这个控制信号
这个时候无效,就是它属于0状态
所以左侧这个与门被关掉了
所以这个时候Y是进不去的
而出去的只是Y非,所以这个就是X减Y它的实现的基本原理
这个就是算术逻辑单元完成一次定点数的
两个整数的加法就是用这样的一个基本的示意
有关其它的比如像浮点的运算
运算器是非常非常复杂的
我们在这里就不再多说了