首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CPU 操作码指令运行详解 & CPU特性讲解

CPU 操作码指令运行详解 & CPU特性讲解

原创
作者头像
北洋
发布2023-09-21 17:16:46
发布2023-09-21 17:16:46
9370
举报
文章被收录于专栏:北洋csdn北洋csdn

上一篇文章解释了指令表中的LOADA指令,LOADB指令和LOADA原理一致,包括STOREB也是只不过是相反过来打开寄存器的允许读取和RAM的允许写入传入地址最后将寄存器的值通过DATA线给到RAM对应地址。但是ADD指令有些不同,我们看下这个操作码是如何做处理的。

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接受输入,来看下面的步骤:

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

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

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

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

总结

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

时钟速度,时钟周期

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

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

定义

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

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

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

降频&超频

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

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

超频

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

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

降频省电

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

动态调整频率

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

抽象-CPU

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

结束

下一篇文章我们进行加强CPU,给他扩展更多指令

我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ADD操作码
  • 时钟速度,时钟周期
    • 定义
  • 第一个单芯片CPU-英特尔4004
  • 降频&超频
    • 超频
    • 降频省电
    • 动态调整频率
  • 抽象-CPU
  • 结束
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档