ADD操作码
后四位ADDRESS OR REGISTERS解释
在指令表中我们看到ADD指令的后四位 「寄存器 OR RAM地址一列中,列出来的不是之前的RAM地址而是两位的寄存器ID」 。两位可以表示四个数字,正好对应ABCD四个寄存器。
解码过程
从上面的RAM中可以看到,指令地址2就是一个ADD的指令。
拆解出这个ADD要使用的两个寄存器(后四位):0100
01表示寄存器B,00表示寄存器A。
所以1000 0100的意思是:将寄存器B的值加到寄存器A中
执行过程
加法需要利用到上一篇文章讲的ALU逻辑运算单元。因为ALU需要接受输入而控制单元可以控制素有的寄存器所以需要把ALU连接至控制单元。通过控制单元打开对应的寄存器输出来让ALU接受输入,来看下面的步骤:
- 「让ALU接受输入」 :控制单元启用寄存器B的允许读取线,作为ALU的第一个输入,控制单元启用寄存器A的允许读取线,作为ALU的第二个输入
2.「告知ALU进行哪种运算操作:」 控制单元传递ALU中的ADD操作码告知ALU进行加法运算
3.ALU输出结果保存:注意 「此时的A的允许读取还打开着并且ALU还在继续工作,如果控制单元直接把输出给到寄存器A,那么ALU就会不断进行运算」 。所以**「控制单元有一个自己的寄存器暂时保存结果,接着关闭ALU,然后把值再写入正确的寄存器A中」**
- 「取下一条指令指令地址寄存器+1」 :执行阶段结束。开始下一个取指令阶段,又开始下一次的循环~~
总结
用一张图来表示。当ALU计算出结果后将结果传送至控制单元,控制单元内部寄存器存储这个结果,然后把ALU关闭,再把内部寄存器存储的值给到寄存器A(这是打开的是寄存器A的允许写入)
时钟速度,时钟周期
刚刚我们是一步一步进行讲解的这个过程:”取指令-》解码-》执行“,计算机中**「控制执行这个循环的节奏是通过”时钟“来负责的。」**
「时钟以精确的间隔,触发电信号,控制单元用这个信号,推进CPU的内部操作,确保一切按顺序执行。时钟不能太快,因为就算是电也要有一定时间来传输」
定义
「CPU ”取指令-》解码-》执行“的速度叫做”时钟速度“。单位是赫兹HZ,赫兹是用来表示频率的单位,一赫兹表示一个周期。下面那个Clock就是时钟的代表」
第一个单芯片CPU-英特尔4004
这是他的微架构,可以看到和我们上面组装的差不多。
降频&超频
上面的第一个单芯片CPU,它的时钟速度达到了740千次赫兹,每秒74万次,这已经很快了,但是现在更快~~
「一兆赫兹是一秒一百万个时钟周期,现在人们用的电脑和手机肯定几千兆赫兹,也就是一秒钟十亿次时钟周期」
超频
「也就是修改时钟速度,加快CPU速度」
「芯片制造商经常给CPU留一点余地,可以接受一点超频,但是超频过多会让CPU过热或产生乱码,因为信号跟不上时钟」
降频省电
有时我们没有必要让处理器全速允许,比如用户走开了,或者在跑一个性能要求极低的程序,把**「CPU的速度降下来,可以省很多电.」**
动态调整频率
省电对于用电池的设备很重要,比如笔记本和手机,为了更省电,很多现代处理器可以按需求加快或减慢时钟速度,这叫动态调整频率.
抽象-CPU
「RAM是在CPU外面的独立组件」 ,CPU和RAM之间**「通过”地址线“,”数据线“和”允许读/写线“进行通信,」** 上面提到的很多机制依然存在于现代处理器里。
-
寄存器
+关注
关注
31文章
5377浏览量
121394 -
cpu
+关注
关注
68文章
10922浏览量
213281 -
RAM
+关注
关注
8文章
1369浏览量
115107
发布评论请先 登录
相关推荐
CPU寄存器详解
![<b class='flag-5'>CPU</b><b class='flag-5'>寄存器</b>详解](https://file1.elecfans.com//web2/M00/A7/37/wKgZomUMQxGAUVI8AAAuPp1N2ns163.png)
寄存器变量
CS,IP和PC寄存器
![CS,IP和PC<b class='flag-5'>寄存器</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
如何在VHDL中实现一个简单的寄存器
![如何在VHDL中实现<b class='flag-5'>一</b><b class='flag-5'>个</b>简单的<b class='flag-5'>寄存器</b>](https://file.elecfans.com/web2/M00/58/96/pYYBAGLjnpKALzcUAABRk4D6Amk704.png)
评论