计算机组成原理(10): CPU基本设计之三——ALU指令的获取和解码

计算机组成原理(10): CPU基本设计之三——ALU指令的获取和解码ALU 指令的执行过程 32 bits 4 bytes ADD 指令格式如下 需要硬件做如下的事情 提取 FETCH 在当前周期读入 32 位指令 由程序计数器 PC 指定

欢迎大家来到IT世界,在知识的湖畔探索吧!

ALU指令的执行过程

32-bits(4-bytes)ADD指令格式如下:

计算机组成原理(10): CPU基本设计之三——ALU指令的获取和解码

需要硬件做如下的事情:

  • 提取(FETCH):在当前周期读入32位指令,由程序计数器PC指定
  • 解码(DECODE):解码指令中的[31:26] 位的操作码(ADD、SUB、XOR、…等), [25:21]位指定的目的寄存器,[20:16] 、[15:11] 位分别指定的源操作数所在的寄存器;用于数据路径的控制信号。
  • 读取(READ)操作数:从寄存器文件中的寄存器 读取操作数
  • 执行(EXECUTE)操作:进行相应的操作,并为程序计数器PC计算下一个值。
  • 写入(WRITE-BACK):将操作结果写回寄存器文件中的寄存器

系统的时钟信号连接寄存器文件和PC寄存器,在时钟的上升沿将写入在执行阶段计算的新值。因此时钟上升沿标志着当前指令的执行结束,并且使下一条指令执行的开始。

时钟周期,即时钟上升沿之间的间隔时间需要足够长以适应上述5个步骤的逻辑的累计传播延迟。

由于每个时钟周期执行一条指令,因此时钟频率告诉我们执行指令的速率。举个例子,若时钟周期是10ns,则时钟频率为100Mhz,我们的Beta的最大性能就是100MIPS。

指令的获取和解码(Instruction Fetch/Decode)

使用程序计数器 来提取下一条指令。这里有一个草图,显示了提取和解码步骤所需要的硬件。

计算机组成原理(10): CPU基本设计之三——ALU指令的获取和解码

  • 使用PC作为指令内存的地址,PC的值就是当前指令的地址
  • 使用了2路MUX,用信号Reset控制,提过了复位机制。当RESET=1,初始化PC的值,当RESET=0,产生新的PC。
  • PCPC+4,将PC加4,在下一个时钟周期的上升沿,其值进入PC寄存器,作为下一条指令的地址。
  • 从指令内存读取指令:直接使用指令中的一些域(寄存器代码,16-bit常数);使用[31:26]产生控制信号。

下面就让我们逐步实现所有ALU指令的数据路径的逻辑电路。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/102387.html

(0)
上一篇 4天前
下一篇 4天前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信