计算机系统概论笔记-3-数字逻辑

3.1 MOS晶体管
即金属氧化物半导体(metal-oxide semiconductor),它构建了现今大多数计算机的大多数微处理器。
我们有必要了解p型和n型等两类MOS晶体管的基本工作原理。
n型晶体管有三部分:漏记(D)、栅极(G)、源极(S)。
对于n型晶体管,如果栅极接入2.9V电压,则在源极和漏记之间会产生一条通路(即闭路);
如果栅极接入0V电压则源极和漏极之间断开(即开路)。
p型和n型的工作原理完全相反,当p-mos管的栅极电压为0V时,源极和漏极之间闭路;栅极为2.9V时源极和漏记之间开路。
如果电路中同时包含p型和n型晶体管,则称该电路为“CMOS电路”,
即 互补金属氧化物半导体(Complementary Metal-Oxide Semiconductor,CMOS)

3.2 逻辑门
将实现逻辑函数的CMOS电路称为“逻辑门电路”。
与门、或门、非门
与非(NAND Gate)、或非(NOR Gate)、非(NOT Gate)

3.2.1 非门
由一个p-mos管和一个n-mos管组成,两者的栅极来源相同,
p-mos管在电源和输出之间,n-mos管在地线和输出之间,
当栅极为0(即电压为0V)时,电源与输出接通,输出为1;
当栅极为1(即电压为2.9V)时,地线与输出接通,输出为0。

这就是非逻辑的具体实现,通常称为“非门”或“反相器”。

3.2.2 或门、或非门
或非门的逻辑电路由2个p-mos晶体管p1、p2和两个n-mos晶体管n1、n2组成。
p1和n1的栅极电压来自输入A,p2和n2的栅极电压来自输入B,
p1和p2在电源和输出之间串联,n1和n2在地线和输出之间并联。
|A B 输出
当A输入0、B输入0时,p1和p2闭路,n1和n2开路,所以输出和电源间闭路,输出和地线间开路; |0 0 1
当A输入0、B输入1时,p1闭路,p2开路,n1开路,n2闭路,所以输出和电源间开路,输出和地线间闭路; |0 1 0
当A输入1、B输入0时,p1开路,p2闭路,n1闭路,n2开路,所以输出和电源间开路,输出和地线间闭路; |1 0 0
当A输入1、B输入1时,p1和p2开路,n1和n2闭路,所以输出和电源间开路,输出和地线间闭路; |1 1 0

输出的结果与或逻辑完全相反所以称为“或非”,在这个电路的输出后面接一级反相器,则输出就是或逻辑。

3.2.3 与门、与非门
与非门的逻辑电路由2个p-mos晶体管p1、p2和两个n-mos晶体管n1、n2组成。
p1和n1的栅极电压来自输入A,p2和n2的栅极电压来自输入B,
p1和p2在电源和输出之间并联,n1和n2在地线和输出之间串联。
|A B 输出
当A输入0、B输入0时,p1和p2闭路,n1和n2开路,所以输出和电源间闭路,输出和地线间开路; |0 0 1
当A输入0、B输入1时,p1闭路,p2开路,n1开路,n2闭路,所以输出和电源间闭路,输出和地线间开路; |0 1 1
当A输入1、B输入0时,p1开路,p2闭路,n1闭路,n2开路,所以输出和电源间闭路,输出和地线间开路; |1 0 1
当A输入1、B输入1时,p1和p2开路,n1和n2闭路,所以输出和电源间开路,输出和地线间闭路; |1 1 0

输出的结果与与(AND)逻辑完全相反所以称为“与非”,在这个电路的输出后面接一级反相器,则输出就是与逻辑。

反相器(NOT Gate)、与门(AND Gate)、或门(OR Gate)、与非门(NAND Gate)、或非门(NOR Gate)

3.2.4 摩根定律
!(!A AND !B)=A OR B
“不存在A和B都为假的情况”等价于“A和B之中至少有一个为真”。
这种等价转换关系被称为 摩根定律

3.2.5 多输入门
也可以设计更多输入的逻辑门
3.3 组合逻辑
用基本逻辑门电路构建逻辑结构,就是构建计算机微结构所需要的结构单元。
逻辑单元分为可以存储信息的和不可以存储信息的,这些不能存储信息的有时被称为“决策单元”,又被称作“组合逻辑单元”。

3.3.1 译码器
译码器若有n个输入,则有2的n次方个输出。
例如两个输入的译码器,由四个与门a1、a2、a3、a4组成,
它们的输入来自A和B,
a1的两个输入A和B在进入与门前被取反,
a2的A输入在进入与门前被取反,B输入不变,
a3的B输入在进入与门前被取反,A输入不变,
a4的输入不变。

译码器的特点是在所有输出中有且仅有一个为1,其余皆为0。
每个输出端口对应了一种输入模式,因此可以用于检测,匹配不同的输入模式。

3.32 多路复用器
通常有2的n次方个输入、1个输出和n个选择线。
例如一个2输入多路复用器,有2个输入、一个输出、一个选择线。
它由2个与门a1、a2和一个或门o组成,
a1的输入是A和选择线s取反后,a2的输入是B和选择线,
o的输入是两个与门的输出。
如果选择线为1,则a1的输出必为0,a2的输出与B相同,o的输出与B相同,即选择B
如果选择线为0,则a1的输出与A相同,a2的输出必为0,o的输出与A相同,即选择A。

3.3.3 全加器
将当前列的两个数字a、b和之前进位的数字c这3个数相加,然后产生当前位结果s和传至下一列运算的进位c2。(满二进一)
|———————————————————————————————————————|
| a b c c2 s |
|———————————————————————————————————————|
| 0 0 0 0 0 |
| 0 0 1 0 1 |
| 0 1 0 0 1 |
| 0 1 1 1 0 |
| 1 0 0 0 1 |
| 1 0 1 1 0 |
| 1 1 0 1 0 |
| 1 1 1 1 1 |
|———————————————————————————————————————|

三个数里有一个1,则当前位为1进位为0;
有两个1,则当前位为0进位为1;
有三个1,则当前位为1进位为1.

全加器对3个输入相加产生2个输出。
实际上是一个三输入译码器和两个或门的组合,
有三个输入,8(2的3次方)个输出,在所有输出中有且仅有一个1,
即匹配了加法运算中三个数的其中一种组合。

一个4bit二进制数的加法器电路包含4个全加器模块,每一个全加器的三个输入分别是两个数当前位的二进制数和上一个加法器的进位输出。

3.3.4 可编程逻辑阵列
可以实现任何逻辑函数的可构建的模块被称为可编程逻辑阵列(Programmable Logic Array,PLA)。
它包含一组与门(AND阵列)以及一组或门(OR阵列)。
与门的数目对应真值表的输入组合数目,如果逻辑函数的输入数目是n,则PLA需要2的n次方个AND门。
或门的数目对应真值表的输出数目。
参考真值表将特定与门的输出与对应或门的输入相连。这就是可编程的。
通过“编程”多个与门与多个或门之间的连接关系,可以实现任何所期望的逻辑函数(或功能)。

3.3.5 逻辑完备性
只要有足够的与门、或门、非门我们就可以实现任何逻辑函数。因此我们称{AND,OR,NOT}逻辑门集合是“逻辑完备的”
通过不同数量的AND、OR、NOT,就可以实现任何真值表。可能数量会很庞大,但无论如何是可实现的,这就是所谓的“完备性”。

3.4 存储单元

3.4.1 R-S锁存器
由两个NAND门n1、n2互连而成,
n1有两个输入S、B和一个输出a,
n2有两个输入R、A和一个输出b,
其中n1的B输入是n2的输出b,
n2的A输入是n1的输出a。
工作机制:
一开始R-S锁存器处于静态(即输入R和S都为一),
第一种情况:输出a为1,意味着A为1,此时n2的两个输入R为1、A为1,输出b为0即B为0所以n1的两个输入S为1,B为0,输出a为1。
第二种情况:输出a为0,意味着A为0,此时n2的两个输入R为1,A为0,输出b为1即B为1所以n1的两个输入S为1,B为1,输出a为0。

	只要输入R和S保持为1不变,则电路状态就不会改变,
	这种能够保持状态不变的能力称为“记忆”或存储能力。
	第一种情况称为保存了1(即a的值),
	第二种情况称为保存了0。

	保持R为1不变,将S改为0,不论是情况一还是情况二,n1两个输入必有至少一个0,则n1的输出a必定为1
	(此时A为1,n2两个输入A为1,R为1,输出b必为0,B为0)。然后S改回1,输出a仍然为1。
	
	保持S为1不变,将R改为0,不论是那种情况n2两个输入必有至少一个0,即b和B为1,此时n1两个输入都是1则输出a是0,
	然后将R改回1,输出a仍然为0。

	设置一个变量为“0”或“1”的操作通常称为“置0”、“置1”,“置0”又称做“清除”

	不要同时设置R和S为0,因为这样a和b的输出也将同时是1。
	在两个输入信号都同时回到1后,由于两个与非门的延迟时间无法确定,
	锁存器的状态不能确定是1还是0,因此称这种情况为不定状态,这种情况应当避免

3.4.2 门控D锁存器
我们有必要对锁存器的置1或置0操作采取一定的控制措施。
门控D锁存器由R-S锁存器和一个控制电路组成,
控制电路是两个与非门n1、n2,n1的两个输入是D和WE,n2的两个输入是非D和WE,
n1的输出是R-S锁存器的S,n2的输出是R。

控制电路的作用:
	当WE为0时两个与非门输出都是1,这个情况下锁存器的值保持不变,
	由于两个与非门的输入分别有D和非D,所以在另一个输入来源相同时,输出必然不会存在两个0.
	当WE有效时(WE=1)
	如果D为1,S为0,R为1,锁存器输出为1,
	如果D为0,S为1,R为0,锁存器输出为0,
	当WE恢复为0时两个与非门的输入都有至少一个0所以R和S都是1,即锁存器状态锁定,原先的D值就被储存到R-S锁存器中了。

3.4.3 寄存器
寄存器将多个bit组合成一个独立单元。寄存器宽度可大可小,大到需要的任意数,小的只有一个bit。
例如一个由4个门控D锁存器组成的寄存器,它有4个输入,4个输出以及一个被四个锁存器公用的WE输入。

3.5 内存的概念
内存是由一定数目(通常非常大)的“位置”组成的,其中每个“位置”可以被单独识别并独立存放1个数据。
位置识别符称为“地址”,每个位置中的bit数目称为“寻址能力”。

3.5.1 寻址空间
内存中可独立识别的位置总数称为“寻址空间”

3.5.2 寻址能力
寻址能力指每个内存位置中包含的bit数目

3.5.3 例子:2的2次方 x 3内存
2的2次方代表内存的地址空间大小为4(即最多4个地址),3代表寻址能力为3bit。
内存访问时对地址进行译码,译码器有2的2次方个输出线,即4根“字线”,每根字线上有3个bit。

3.6 时序电路
我们称既能处理数据又能存储数据的逻辑电路为时序逻辑电路,它与之前电路的状态相关。
用于实现有限状态机。

3.6.2 状态的概念
系统的某个状态可以说是系统在某个特定的时刻和特定条件下的快照。

3.6.3 有限状态机
有限状态机用来描述系统的行为,由五个部分组成:
(1)状态(有限数目)
(2)外部输入(有限数目)
(3)对外输出(有限数目)
(4)任意状态间迁移(显式注明)
(5)对外输出操作(显式注明)
状态集合表示系统可能处于的所有状态,状态迁移表示从一个状态转换到另一个状态所需要的各种条件。

通常使用时钟电路来触发状态转移。时钟是一个高电平和低电平交替变换的信号,

3.6.4 有限状态机的实现
有限状态机状态之间的转换取决于当前状态和输入,所以需要有一组存储单元来存放状态信息。
有两组输出一组是输出到外部,一组是输出到内部的存储单位,来记录当前状态。
在当前时钟周期内存储单元需要先输出当前状态信息,然后记录计算后的下一个状态的信息,
所以下一个状态的信息应该在下一个周期才能写入存储单元。
存储单元的实现采用了“主从锁存器”,因为D锁存器会在当前周期开始的时候就覆盖存储的内容,而不是等到下周期。
主从锁存器由两组门限D锁存器A、B构成,
A的WE(可写)输入是时钟信号取反,存储内容来自组合逻辑电路,输出到B
B的WE(可写)输入是时钟信号,存储内容来自A,输出到组合逻辑电路。

这样在时钟前半期锁存器A不会改变,而A锁存器的内容输出到B,再输出到组合逻辑电路,
在时钟后半期锁存器B不会改变,而A锁存器的内容就写入为新的状态。

3.7 LC-3计算机的数据通路
数据通路包含了在计算机内核中所有与信息处理相关的逻辑结构。

猜你喜欢

转载自blog.csdn.net/qdHbodHbp/article/details/91047640