导语

计算机究竟是如何控制各部分硬件进行交互以完成工作的?还有不同的处理器上究竟有多少种不同处理?x86-64的系统指令集与MIPS之间有哪些区别?等等诸如此类的问题,应该都是归属于计算机系统中关于指令系统的解释。在我看来,指令系统同样是一种计算机语言,里面包含了汇编语言还有其他类型的事务:比如寻址方式,他可以让高级语言转变成汇编和机器指令之后,按照规定顺序执行,完成任务。做这一章的内容,能够帮我自己理清楚这一个问题:高级语言(我认为中汇编也是高级语言,因为人类可以通过规定的内容比如 汇编语言中%rdx 就是表示x86-64的系统中编号为3的一种寄存器),如何一步一步地完成程序的。究竟里面涉及到了什么?

电路相关

与或非三种门

最基础的电路就是与或非三种门:与门用&& 符号表示,或门用 || 符号表示,非 用!符号表示。其中前面的与门还有或门都需要两个输入才能产生输出,而非门相当于自身取反。

猜想 如果非法输入能呢?就比如一个只输入一个电平,另外一个不输入,作何处理!

我的解释 我们只需要直接知道,如果两个都输入电平才会可以有输出,否则不输入 按照输入0 处理。同理输出也是。

图1-1:简单介绍这三种电路的电路表示方式,记住,一定要记得这三个电路的表示,为了以后看电路图可以看得明白

图1-1

复杂电路

通过多种与或非这三种基本的电路实现更为复杂的的电路.

例子一判断ab位是否相等,判定一个类似这样子的一个条件bool eq = (a && b) || ( !a && !b),如何设置电路呢。可以设置成这样子,如图1-2
图1-2

我们称上述问题位相等,a==b?也很容易看出,这种略微复杂一点的电路都是可以通过这三种基本门迭代组合而得出。注意了,a 和 b 都是属于一个位,也就是计算机种的一个0 或者 1,这就是两个的本质。这只是一个位。如果问题更为复杂一点,输入不在是一个位,而是一个字,(一个字 我们这里规定是8个字节,一个字节也就是八个位,那么我们的就是64位的输入了)。用更为复杂的方式去判断是否两个64位长的字是否相等。
可以设置成以下的电路,如图1-3所示
图1-3
我们将其抽象化看来,那就是字级抽象,是以字为单位而进行的电路设计。同理,更为复杂同样类型电路也可以通过这样扩展进行判断。

例子二 类型二,在输入的情况种选一种进行选择作为输入。用计算机语言为boolean ep = ( s && a) || ( !s && b)。这同样由最简单的位进行开始运算,设计电路,可以如图1-4所示。

复杂图片

这种电路为位多路复用器,那么继续迭代更新一下,如何设计是以字为单位的子单位复用器呢?其实原理是一样的,便是使用64个相同的位多路复用器构建类似的电路,设计一个如果s为1,那么输出A字,否则输出B字。如下图1-5所示

图1-5

1
2
3
4
int OUT()[
S:A;
1:B;
]

如果用计算机中高级语言来表示,那就是switch语句,多个输入中选一个作为输出。但是请注意,硬件电路的switch语句,是有默认值输出的:那就是最后一个为输出。简单解释一下,便是前面地都没有选中,那么最后一个便为输出。只有一个a,b时,a在前面,如果a没有选中,那么b就是最后的输出值。

猜想二:如果出现了需要设计一个电路实现A,B,C中选出最小的一个值,如何设计?

猜想三:还有一个问题,一台普通的计算机中需要完成了很多操作,难道一时就是设计了所有的电路了吗?还是基本的电路已经设计好了?

逻辑计算单元ALU

这种单元通俗地来说就是用来计算机基本的计算,比如加减与或四种关系的计算方式。通过控制命令,选择内部的电路完成加减与或四种计算中的一种。数据输入是两个数,控制输入一个信号,输出是一个数。具体的如下图1-6所示

图1-6

具体电路设计,可以参考网上资料

存储器与时序电路

以上的组成电路实际上不存储任何信息,只产生输出,如何将输入输出存储,需要用存储器,如何将按步骤地完成,需要时序电路

存储器

存储器分为两种,一种是寄存器,另外一种是内存。这里引入存储器只是为了说明计算机需要这种东西完成数据的输入和输出。具体更为详细的解释,以后再详细写到

寄存器

寄存器存储单位是位或者是字。容量很少,时钟信号通过控制寄存器加载数据输入。那如何通过时钟信号完成数据的载入呢

描述一个我其实自己也不太懂得内容。

寄存器有两个状态,类似01,当时钟沿没有上升得时是低电平,寄存器处于一种稳定状态,输入是X,输出是他本身; 当信号通过了之前得组合电路,到达了寄存器变成了Y,但只要时钟信号没有上沿,输出也就是还是x。当时钟沿上升,寄存器处于另外一种稳定状态,输出变了Y;

这里可能还是很疑惑,为什么有两种状态,而不是三种?时钟信号是什么?什么时候有时钟信号。

我也无法解答。给出一个例子,套们

随机访问存储器(内存)

存储大量的字,通过地址来访问数据。

参考资料

《深入理解计算机系统》第四版

《计算机组成原理与系统结构》第二版