CPU结构


在前文中我们抽象理解了ALU和寄存器以及RAM的底层原理。

文章如下:

ALU  https://www.cnblogs.com/EeiKo/p/15755510.html

RAM  https://www.cnblogs.com/EeiKo/p/15755510.html

基于两者,我们进行CPU的原理的实现和讲解。

首先,CPU是什么

在谈论CPU为什么是神之前,我想先谈谈其他器件比起CPU差在了哪里。

首先是犯下傲慢之罪的ALU,仗着自己是CPU的大脑,认为自己已经超过了CPU,但实际上ALU只能不断的做加减乘法,而CPU可以阅读程序并执行,神降下神罚,令ALU一辈子只能在忙碌并并且不知道自己忙碌的意义。

其次是犯下懒惰之罪的寄存器,认为自己位高权重,人数众多,从而在神的结构图中占据大部分,让外人以为寄存器才是神的代言人。但实际上寄存器本质上就是给定数据能读写的容器罢了,相反神就很谦卑,不以此炫耀自己的强大。

寄存器有以下几个:指令寄存器(存放当前指令)、指令地址寄存器(存放指令执行在内存的位置以便接着执行)、通用寄存器ABCD等。

所以我们知道了CPU的功能本质,给它一段程序他就执行,执行是什么意思呢?包括计算和读写RAM和寄存器。之后会输出结果。

那么CPU的输入是程序端,数据。

输出是执行结果,一般这里采用耦合直接把结果写在内存上面。

CPU执行的程序实际上是基础操作的组合,基础操作包括如下,使用指令码进行区分。

CPU执行流程:

指令地址寄存器连接RAM,得到执行程序的首地址(0)

然后根据地址从RAM中取出该地址对应的操作,存到指令寄存器中去。其中前四位是指令码,后四位是执行指令的地址码,所以还要读取内存。

通过指令判断逻辑电路,执行指令,其中load和store指令都不需要ALU,需要的是逻辑电路,add指令需要ALU。(由此可见没有画上去的逻辑电路才是真正的主角啊,逻辑才是根本!)

指令地址寄存器+1(通过ALU实现),重复步骤。

其中提到的一些步骤需要添加一些逻辑门实现,比如指令寄存器有判断指令的逻辑门如下,最后的那根线可以连接RAM的允许读取线

 下面这是loadA的逻辑电路,基本指令都有一套自己的逻辑电路,感兴趣可以自己实现以下,大有裨益。

这些逻辑电路把他们包在一起,称为一个控制模块。

输入:指令在RAM的地址

中途可能会调用ALU

输出:读写RAM、读写寄存器ABCD

 最终加上ALU的抽线CPU结构

最后还要加一个时钟发生器,确保动作同步。时钟发生器的本质就是在何时执行指令+1这个命令,从而执行下一个指令。(Maybe)

超频就是修改时钟周期,加快运算速度。同样的还有降频,可以说合理切换CPU频率可以使得效率最大化。动态分配频率是现代电子设备大多具有的特性。

根据推理来说CPU超频是要考虑RAM读取效率的,也要考虑各个器件运行效率。

到这一步,接下来的操作系统和软件都是写在CPU上的程序罢了,可以说硬件部分已经结束了,接下来面临的抽象主要以汇编语言作为基础进行解释,而不是逻辑电路了。

谢谢你陪伴,逻辑电路!