计算机组成原理关键点
逻辑电路基础
逻辑元件理解
非门元件
默认通电的带有一个继电器开关的串联电路,当继电器通电时就会断开电源。 晶体管栅极为输入,其它两端取一端接地,另一端并接电源和输出端中间。栅极通电,电源的电就直接流向地面,输出端被短跑。相反,栅极断电,输出端就会有电。ps:此时晶体管已经有电继开关的作用了。
或门元件
两个分支电流输入并联到一起再输出电流的电路,分支电流就是输入。
与门元件
拥有两个电继器开关的串联电路,当继电器通电时就会接通电源。 控制两个电继器的电源就是两个输入。
异或门元件
使用两个与门,一个或门,一个非门可组成异或门元件(符合二进制运算需要,1+1=0)。
1
2
3
===或------|
|| =与-
==与--非--|
半加器
用一个异或门和与门并联组成
1
2
3
===异或--(加和输出)
||
==与----(进位输出)
全加器
两个半加器通过其中一个的加和输出口串联,再将它们的进位输出通过或门输出为新的进位输出,此时全加器有三个输入,进位输入,A输入和B输入。
8位加法器
将8个全加器通过进位输出口对应进位输入口串联起来,就能组成8位加法器。
一位锁存器
两个或非门通过各自的输出作为各自的一个输入,取其中的一个输出作为最后总输出。这样的电路就有了存储电位的功能。然后分别给两个输入加上与门,两个与门共用一个输入作为写入开关。不建议同时输入正电位,将两输入共用电源输入,然后给其中一个输入加上非门。设想这样的算法,两个人在互相摔跤,起始状态是两人不相上下,我可以分别用左右手推倒两边的人,以一边的人(设左边)是否胜出作为判断结果。我们推左边的人,结果就是负。推右边的人,结果就是正。此时,我的两只手是就是输入信号,左边人的胜负就是输出信号。如果不出手,结果为正负都可能。都出手的话,结果肯定是负。接下来优化设计,只能出一只手,一只手出的时候,另一只手就不能动(用非门控制)。再规定,裁判允许了才能推人(用与门控制)。此时整个系统就是一位锁存器
8容量一位锁存器
将8个锁存器的各写入开关并联,就得到了只能同时写入8个一位二进制数的锁存器,8就是这个只能存储一位二进制数锁存器的容量。如果能根据地址来访问某个锁存器就好了,译码器由此由生。
译码器(根据地址信号写入)
译码器用来控制哪个锁存器的写入开关可以通电达到只写入一个锁存器的目的,如果8位锁存器,那么3位数的地址就足够了。此时,我们需要3个非门来控制输入信号,还需要8个四输入的与门分别控制8个写存器的写入开关是否能通电,每个与门选一个输入一起并联到一个写控制输入。其它三个输入根据自己想定的地址编码来连接到非门的输出端或输入端。写开关控制端必须都有电才能有电输出。地址编码信号信号在经过或不经过非门达到对应编码的写开关控制器上的与门时必须四输入都有电才行。
编码器(根据地址信号输出)
与译码器相反,编码器用来控制哪个锁存器的可以输出到一个输出端。8个四输入与门,3个非门加一个8输入或门可以组成编码器。如果一个锁存器编码(地址)是000,那么它的数据输出端上连接的与门上其它三个输入应该分别连接非门的输出端,这样编码信息通过非门输出来的信号就是111,就可以让锁存器的输出的信号通过与门并输出(即使信号是0)。反过来如果一个锁存器编码是111的话,那么它的数据输出端上连接的与门上其它三个输入应该分别连接非门的输入端。
8容量的两位锁存器
将两个8容量一位锁存器各自的地址位并联写控制端也并联,数据输入端不用并联。每个锁存器各有一个数据输入端,这样就得到了能保存8个两位数的锁存器。用一个地址就能存取出两位数。
16容量的1位锁存器
基于·8容量两位锁存器·的基础,添加一个一位译码器和一位编码器,译码器有两个输入信号,而编码器有两个输出信号。编码器的两个输出信号分别连接到8容量一位锁存器的数据输入端。译码器的输入分别连接到8容量一位锁存器的数据输出端。然后译码器和编码器的写控制端并联,此时与先前三位地址端一起构成了四位地址端,此时数据输入端就一个,即只能保存一位二进制数,但容量是16。
ALU
译码器或编码器的原理是可以用来选择电路信号的输出,所以可做到运用这个原理来选择对输入的数据做什么操作,是让电流流向加法还是“减法器”,是可以做到的。如果只有两个操作,那么操作码是一位的,就是0和1。
组成:
- 两个八位数的输入端
- 操作码输入端
- 三个标志位输出端,分别是溢出位(1位),零标志(1位),负标志(1位)
- 一个八位数的输出端
指令
在指令中,一部分是操作码,一部分是寻址方式(地址数据标志位),一部分是数据或数据地址。数据地址也分内存地址和寄存器地址,寄存器地址比较短,内存地址比较长,所以同样空间可以存两个寄存器地址。cpu拿到操作码和数据地址,就会取地址从而拿到数据进行操作。
时钟的作用
逻辑电路是复杂的,各分支电路的信号传播会有差异,阻碍越多的信号会越慢。但是一个逻辑功能中各信号的输入到一起作用输出结果的这个过程的电路是不同的,有的输入的变化起作用比较快,有的比较慢。这就导致输入信号变化到输出的过程会出现信号起伏。过了信号传播时限后,输出结果才是正常的。因此需要在输出端加一个触发器用以接收正常的输出。原理就是用时钟信号控制触发器接收信号,以屏蔽杂乱的信号。相当于是给输出端加一个锁存器来缓冲记录输出结果,用时钟信号控制锁存器的写开关。ps:时钟信号是用振荡器产生的,原理和学校的电铃相似,逻辑电路中只要把非门的输出和输入相连就可以构成一个振荡器。