8.3.1 门电路的重要意义
上面这图在2.1.2中就提过,从这张图中可以看出,门电路在计算机组成中所处的重要位置。
8.3.2 门电路的作用和分类
(1)门电路的作用
门电路的作用就是,数字电路会使用门电路进行算术和逻辑运算。
(a)人做算数运算和逻辑运算
·人做算数运算:1098+1234 = ?
·人做逻辑逻辑运算
与运算:下雨 与 出去 就带伞,下雨与出去同时满足就带伞,这就是与运算。
或运算:坐飞机 或 做火车从深圳去北京,这就是或运算。
非运算:不吃饭就是吃饭的非运算。
(b)计算机(数字电路)也要进行算术和逻辑运算
比如以基本的与、或、非为例:
与:1(2.5v) & 1(2.5v) = 1(2.5v)
或:1(2.5v) | 0(0v) = 0(0v)
非: !(2.5v) = 0(0v)
在计算机(数字电路)中,0/1为对应的0v和2.5v电信号,需要使用门电路,实现对数字电信号表示的二进制数据进行运算,因此,门电路是构成计算机的基本数字电路。
(2)常见的门电路列举
与门、或门、非门、与非门、或非门、与或非门、异或门等几种,数字电路使用这些门电路,就可以实现算术运算和逻辑运算。
8.3.3 三极管是如何构建门电路的
接下来我们会以“与非门”为例,介绍三极管是如何构建“与非门”的,其它的门电路都是以同样的方式构建,只要你明白这个例子,你也就大概的了解了,所有的这些个门电路是如何通过三极管构建的。
(1)与非逻辑理解
为了讲明白“与非”的逻辑,我们需要先看下“与”的逻辑,对比理解就能知道“与非”是什么含义了。
(a)生活中的例子
·“与”的逻辑:今天 小明来 与 小花来 我就出去郊游。
·“与非”的逻辑:今天 小明来 与 小花来 我就 不 出去郊游,不就是“非”。
以上的逻辑是由人脑所实现的逻辑运算,人实现逻辑运算的过程非常自然,如果不告诉你这就是逻辑运算,你都不知道这就是逻辑运算。
(b)计算机的例子
·“与”逻辑:
-1(2.5v) 与 1(2.5v) 输出 1(2.5v)
- 1(2.5v) 与 0(0v) 输出 0(2.5v)
·“与非”逻辑:
- 非(1(2.5v) 与 1(2.5v)) 输出0(0v)
- 非1(2.5v) 与 0(0v) 输出 0(2.5v)
以上数字电信号形式存在的数据,需要通过“与非门”电路才能实现相应的与非运算。
(2)“与非门”电路符号
理工科的同学对于逻辑运算应该是比较熟悉的,不熟悉的同学可以关注我们后面的《数字电路》的课程,我们会对逻辑运算进行深入讲解,并详细介绍门电路是如何实现这些逻辑运算的。
(3)与非门的三极管组成图
(4)分析电路图,看看三极管组成的“与非门”电路是如何进行逻辑运算的
(a)例1
非 与
0/1 表示: ! ( 1 & 0 ) = 1
电压表示: !(2.5v & 0v) = 2.5v~5v
(b)例2
非 与
0/1 表示: ! ( 1 & 1 ) = 0
电压表示: !(2.5v & 2.5v) = 0v
例子2请自行分析,不过你会发现分析起来很困难,并不像例子1那样容易,至于为什么是这样呢?例1中只用到了三极管的开关功能,但是例2还有到了三极管的放大功能,大家不会分析三极管的放大功能,之前讲三极管时,我们也没有详细讲三极管放大功能的具体分析,因此相比开关功能来说,放大功能比较难分析些。
我们在后续的《模拟电路》这门课中,我们详细的讲清楚了三极管的“放大、饱和、截止”三个状态后,再来分析这个这个电路,你就会分析了,如果对三极管工作原理非常感兴趣的同学请看我们后面的《模拟电路这门课》。
大家不要想着搞清楚所有门电路的三极管组成电路,原理都是大同小异,如果你不是做微电子的,这么做没有意义。
8.4 触发器、组合电路和时序电路
8.4.1 触发器、组合电路、时序电路在计算机构建中地位
8.4.2 触发器
(1)触发器的
1)功能:记忆功能。
就是当某些条件下满足时,触发器的输出可以一直保持1(高电平)或者0(低电平),这个有什么好处呢?
2)什么是记忆作用呢
好处就是使用触发器可以构建出寄存器、缓存、内存等。
有关触发器构建存储器的知识,在后面紧接着讲的存储器时还会再次介绍。
(2)门电路构建触发器举例
比如下图的RS触发器,由两个“与非门”组的,那么门电路是如何构建触发器的呢。
这里只是希望通过RS触发器,让大家了解门电路是如何构建出触发器的,重点并并不是介绍RS触发器,为了避免问题复杂化,我们这里不在讲解RS触发器的工作原理,如果你确实想学习触发器的知识,请看后续的《数字电路》课程。
(3)对于触发器知识
其实除了RS触发器外,还有D触发器、JK触发器等,对于偏向编程开发的it工作者来说,了解到这个层级就ok了,但是对于微电和硬件工程师来说就必须深入理解,还是你那句话,如果你对触发器工作原理感兴趣,请看我们后面的《数字电路》课程,里面会有详细讲解。
8.4.3 组合电路
(1)组合电路的作用
组合电路的用途有很多方面,为了能让大家对快速理解组合电路的用途,这里举了一个3-8译码器,这样一个简单的组合电路例子,通过这个例子大家就能快速理解组合电路使用干嘛的。
(2)3—8译码器
1)3-8译码器功能
这张表已经非常清楚的描述了3-8译码器的功能,功能就是根据输入来选择某根线输出,比如输入011(3)的电平信号,输入后,译码器发现输入的二进制数为3,表示要选择第三根线输出1(2.5v),其它线全部输出0。
2)其它译码器
译码器除了3-8译码器外,4-16译码器外,还有n-2n等等译码器,输入输出线的数量需要根据自己使用情况来定。
4)3-8译码器应用举例:使用3-8译码器进行寻址
如果我希望从内存地址为011这个地址的字节都数据,那么就一定要通过地址线发送地址给内存,内存根据输入的地址选择011地址对应的这个地址,我们以只有8个字节的内存为例,讲解3-8译码器是如何实现寻址的,对于只有8字节的内存来说,
(a)地址数量:既然内存只有8字节,那么每个地址对应一个地址,只需要8个地址
(b)地址线根数:只有8个地址,那么二进制的地址范围为000-111,那么只需要三根地址线就能表示000-111的地址。
(3)门电路如何构建3-8译码器这个组合电路
从这张图中可以看出,3-8译码器就是由各种门电路组成的,通过这张图只是想告诉大家,3-8译码器这个组合电路,是如何通过门电路构成的。我们这里就不再分析这个3-8译码器具体是如何工作。
8.4.4 时序电路
(1)时序电路的作用
要说清楚时序电路是干嘛的,先得弄清楚时序是个啥东西
1)先从人的时序说起
(a)人也是需要时序的
·人的工作和生活也是有时序的,人的时序其实就是时间安排
·只是我们很少把生活中的时间安排以时序的方式来看待
·人的时序安排,基本是以小时为单位进行,时序安排就是工作时间表。
(b)以工作为例,看时序的重要性
·我们平时的工作是由很多人和组织共同而成的
·各自严格按照自己的工作时序进行做事,就能和其它人或者组织精确的配合上,否者就会紊乱,比如错过了重要客户的约见等。
(c)生活中时序举例
(d)对于时序来说,统一时钟的重要性
为了让每个人或组织时序,能够准确的对上,必须要有统一的时钟参考,这也是以前为什么总是要对表的原因,不对表的话,两个手表的快慢不一样,各自参考时间标尺就会不同,肯定配合不上,特别是在打仗的时候,发起总攻时,对表是必须的,不然这边已经总攻了,那边还在干等着。
人的时序是以人的时钟(24小时)进行安排的,最小单位为S,比S还小的时间单位对于人来说已经没有什么意义了,因为人对s以下的时间敏感度不高。
(e)再看看时序
时序就是各单元(比如人)工作的“时间顺序”,因为所有人和组织的时序,都是参考统一的时钟进行安排的,那么各自只要严格准守自己的时序工作,就能很好的配合上。
2)计算机中的时序
(a)计算机时序的作用与重要性
计算机由各种不同的电子部件组成,所以每个部件需要有自己的工作时序,各自的时序是按照统一的“时钟”制定的,各部件只要严格准守自己的时序,才能严密的配合工作,否者就会紊乱,导致计算机不能正常工作。
(b)计算机中时序举例子
比如计算机的两个芯片要通信,双方就需要遵守一定时序安排才能通信成功。
数据的传输就是数据的读写,只有当发出读写控制后,才会进行数据传输,才能通信成功,因此读写控制时序和数据传输时序必须要严密对上,否者通信就会因为时序紊乱而失败。上面的这张时序图只是为了让大家便于理解而画的伪时序图,有关时序,我们会在后续嵌入式课程中(特别是单片机)详细讲解。
(c)同样,对于计算机的时序来说,统一时钟也非常重要
·各部件(芯片)遵照统一时钟进行安排的时序,才能严密配合上
·人使用的时钟是不能给计算机使用的,因为人的时钟精度只能到S,但是计算机工作的速度是ns级别,因此需要ns级别的时钟
·计算机的时钟就是晶振,晶振每隔xxns就会震动一次,产生一个时钟脉冲,这个时钟脉冲就是计算机时钟的最小时间位。
3)时序电路重要作用
(a)什么是时序电路
时序电路就是根据输入的统一钟(晶振)时钟为参考,为相应电子部件(芯片)产生该要的时序,根据该时序,每隔固定的时间(xxxns)发出一个高或低电平脉冲,别人这个脉冲信号的指示,就知道是要动作来配合你的工作了。
(b)分频和倍频
·通过s/m/h理解分频和倍频
-分钟m的60倍频就是h
-分钟m的60分频就s
·时序电路的分频和倍频
时序电路为了产生新频率的时序脉冲信号,产生新频率的脉冲,关键就是分频和倍频,有关时序电路的分频和倍频,会在后续的的单片机课程中详细讲解。
(c)几乎每个芯片都有自己的时序电路
因为都需要根据输入的时钟信号,产生属于自己的“时序”脉冲。
(2)时序电路组成
时序电路是由门电路和触发器共同组成,比如下图74LS164(74LS164主要用在移位寄存器中)时序芯片时序电路。
同样我们这里不讲解这个时序电路的具体工作原理,有关时序电路的工作原理,会在后续的《数字电路》课程中会涉及。
(3)时序电路知识点要求
微电工程师:非常清楚时序电路的工作原理
硬件工程:深入了解它的各个参数指标(也就是电器特性),学会如何使用这个硬件芯片。
嵌入式软件工程:时序电路都会有相应时序图,需要根据时序图写程序控制硬件。
74LS164产生的时序:
时序图其实并不复杂,但是很多初学的同学还是感觉很复杂,看懂时序图需要一定的基本功,在后面的单片机和linux嵌入式课程中,都会讲解时序相关度的课程,通过后面的学习,只要看懂了一两个个时序图,当你掌握了其中的门道后,你会发现时序图原来也不过如此。
8.4.5 触发器、组合电路和时序电路的对比
(1)共同点:都由门电路组合而成,门电路再由三极管构成。
(2)区别
1)触发器:具有记忆功能
2)组合电路:不具有记忆功能,为了某个特定的功能,纯粹使用门电路组合构成
3)时序电路:用于设计计算机(主要是各类芯片)用的时序电路,由门电路、触发器共同构成
8.5 cpu如何由触发器、组合电路、时序电路构成的
8.5.1 回忆cpu中的结构
在介绍计算机结构时,我们就了解到CPU是由运算器、控制器和寄存器组等这几个基本功能单元组成,
运算器:由组合电路实现。
控制器:由组合电路+时序电路实现
寄存器组:由触发器实现
8.5.2 CPU的运算器
运算器最核心的就是ALU(Arithmetic Logical Unit),ALU分成两部分,
算术运算单元:加法器
逻辑于运算单元:逻辑运算器
加法器和逻辑运算器均由组合电路的全加器实现。
1)全加器
全加器专门实现二进制的加法运算,有了加法运算,其它的减法、除法、乘法等都能通过加法实现。
(a)只进行一位运算的全加器
下图就是一个只进行一位相加运算的全加器,全加器是一个组合电路。
AB:加数、被加数
Cin:前一位相加后的进位
Sum:相加后的和
Cout:相加后的进位
(b)实现两位二进制数相加的全加器
比如01+11,必须使用两个上面的全加器级联,级联的时候将上一级的Cout和下一级的Cin连在一起,
(c)三位或以上的多为全加器
同理进行多次级联。
2)半加器
与全加器对应的还有一个半加器,半加器和全加器的区别就是,半加器不计算进位,但是全加器需要计算进位。
8.5.3 控制器
由组合电路+时序电路实现,其中控制器最核心的部分就是译码器,译码器就有时序电路构成,控制器比较复杂,这里制作简单介绍。
8.5.4寄存器组
功能:小容量临时存储器,临时存储数据,供CPU快速访问用。
组成:寄存器组由很多寄存器叠合而成,每个寄存器由触发器组成,一个触发器就是一个bit位。
在后面介绍存储器时,还会介绍寄存器相关的内容。
8.5.5 有关cpu内部组成知识的掌握
微电工程师的:需要设计和集成cpu芯片,要求对cpu内部结构非常清楚。
硬件工程师(电路设计):了解内部结构,清楚cpu的电气特性和各项指标。
软件工程师:特别是嵌入式软件工程师,需要清楚cpu工作原理,关键是并了解该cpu的指令系统,也就是了解汇编,汇编学会了计算机的工 作原理也就清楚了。
纯软件开发:比如web,移动APP,游戏等软件开发,一个合格的IT工程师,也必须要了解CPU的工作原理,最好的方式就是通过学习汇编来 了解,因为汇编指令是完全遵照CPU的工作原理进行设计的,因此汇编清楚了,计算机的工作原理也就清楚了。
在后续单片机、stm32和arm裸机课程,对于cpu的工作原理会讲解,希望深入学习,可以看后面的课程
作者:佳嵌工作室
51CTO免费视频地址:http://edu.51cto.com/lecturer/12941022.html
课程进度咨询QQ群:528495268
转载请说明源地址。