如何使用ALU,RAM,寄存器打造一个CPU 3

电子说

1.3w人已加入

描述

ADD操作码

后四位ADDRESS OR REGISTERS解释

在指令表中我们看到ADD指令的后四位 「寄存器 OR RAM地址一列中,列出来的不是之前的RAM地址而是两位的寄存器ID」 。两位可以表示四个数字,正好对应ABCD四个寄存器。cpu

解码过程

从上面的RAM中可以看到,指令地址2就是一个ADD的指令cpu

拆解出这个ADD要使用的两个寄存器(后四位):0100

01表示寄存器B,00表示寄存器A。

所以1000 0100的意思是:将寄存器B的值加到寄存器A中

执行过程

加法需要利用到上一篇文章讲的ALU逻辑运算单元。因为ALU需要接受输入而控制单元可以控制素有的寄存器所以需要把ALU连接至控制单元。通过控制单元打开对应的寄存器输出来让ALU接受输入,来看下面的步骤:

  1. 「让ALU接受输入」 :控制单元启用寄存器B的允许读取线,作为ALU的第一个输入,控制单元启用寄存器A的允许读取线,作为ALU的第二个输入

2.「告知ALU进行哪种运算操作:」 控制单元传递ALU中的ADD操作码告知ALU进行加法运算

3.ALU输出结果保存:注意 「此时的A的允许读取还打开着并且ALU还在继续工作,如果控制单元直接把输出给到寄存器A,那么ALU就会不断进行运算」 。所以**「控制单元有一个自己的寄存器暂时保存结果,接着关闭ALU,然后把值再写入正确的寄存器A中」**

  1. 「取下一条指令指令地址寄存器+1」 :执行阶段结束。开始下一个取指令阶段,又开始下一次的循环~~

总结

用一张图来表示。当ALU计算出结果后将结果传送至控制单元,控制单元内部寄存器存储这个结果,然后把ALU关闭,再把内部寄存器存储的值给到寄存器A(这是打开的是寄存器A的允许写入)

cpu

时钟速度,时钟周期

刚刚我们是一步一步进行讲解的这个过程:”取指令-》解码-》执行“,计算机中**「控制执行这个循环的节奏是通过”时钟“来负责的。」**

「时钟以精确的间隔,触发电信号,控制单元用这个信号,推进CPU的内部操作,确保一切按顺序执行。时钟不能太快,因为就算是电也要有一定时间来传输」

定义

「CPU ”取指令-》解码-》执行“的速度叫做”时钟速度“。单位是赫兹HZ,赫兹是用来表示频率的单位,一赫兹表示一个周期。下面那个Clock就是时钟的代表」

cpu

第一个单芯片CPU-英特尔4004

cpu

这是他的微架构,可以看到和我们上面组装的差不多。

cpu

降频&超频

上面的第一个单芯片CPU,它的时钟速度达到了740千次赫兹,每秒74万次,这已经很快了,但是现在更快~~

「一兆赫兹是一秒一百万个时钟周期,现在人们用的电脑和手机肯定几千兆赫兹,也就是一秒钟十亿次时钟周期」

超频

「也就是修改时钟速度,加快CPU速度」

「芯片制造商经常给CPU留一点余地,可以接受一点超频,但是超频过多会让CPU过热或产生乱码,因为信号跟不上时钟」

降频省电

有时我们没有必要让处理器全速允许,比如用户走开了,或者在跑一个性能要求极低的程序,把**「CPU的速度降下来,可以省很多电.」**

动态调整频率

省电对于用电池的设备很重要,比如笔记本和手机,为了更省电,很多现代处理器可以按需求加快或减慢时钟速度,这叫动态调整频率.

抽象-CPU

cpu

「RAM是在CPU外面的独立组件」 ,CPU和RAM之间**「通过”地址线“,”数据线“和”允许读/写线“进行通信,」** 上面提到的很多机制依然存在于现代处理器里。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分