组合逻辑部件不遵循时序,有输入就有输出
时序部件:
寄存器输出信号在上升沿变化(有效表示逻辑高,无效表示逻辑低)
写控制的寄存器,需要在时钟沿上升时write写入信号为真,才会根据输入改变输出
时钟控制策略
CPU内处理数据和地址的组件
寄存器堆,ALU
R-format Instruction
Load/Store Instructions
Branch Instructions
R-format Instructions (指令包含三个寄存器)
Load/Store Instructions (指令包含两个寄存器和一个16位有符号立即数)
获取寄存器地址,进入寄存器堆,立即数通过扩展进入ALU
将内存地址读取置入ALU,与立即数进行加法运算得到准确的内存地址
如果是Load指令
进入数据内存读取数据,返回到寄存器堆
将结果写入目标寄存器中(写寄存器通过RegDst控制)
这里值得注意的一点是,虽然我们写的是
lw $t0 (0)$a0
但是$t0作为需要被写入的寄存器,在机器码中处于[20:16]的位置,也就是如图所示,Read register2的位置,于是通过多重选择器,导入到了Write register的位置,进行写入操作
如果是Store指令
将从Read Register2读取到的数据(Read Data2)传输到数据内存的写入区(Write Data)进行写入操作
之所以是从Read Register2读取数据,见上面Load中解释
PC获取新的指令地址,完成
Branch Instructions (指令包含两个寄存器和一个16位有符号立即数)
获取寄存器地址,进入寄存器堆,立即数通过扩展进入Shift-left左移两位
左移两位是因为地址信息需要乘以数据长度
两个寄存器读取的数据进入ALU进行运算,ZERO位输出是否相等的结果
结果通过组合逻辑电路输入到右上角的MUX进行多重选择,若满足条件,则使用PC+4+L,否则使用PC+4
组合逻辑电路此图未显示
PC获取新的指令地址,完成
ALU control | Function |
---|---|
0000 | AND |
0001 | OR |
0010 | add |
0110 | subtract |
0111 | set-on-less-than |
1100 | NOR |
每个数据通路同时只能进行一个操作
通过将[27:26]的ALUop和[6:0]的Funct字段联合控制,可以由组合逻辑电路产生控制信号,具体实现方式可以通过列出带无关项 的真值表获得。(如下图)
数据通路如何得知需要进行哪些操作呢?除了ALU通过ALU控制信号得知运算单元需要进行的运算方式,读写控制,多重选择都需要控制信号的注入,而这些控制信号,就由主控制单元根据[31:26]的Op字段操作码运算得出~
下图即为不同指令所对应需要的控制位信息:
(未完,若有错误请大佬不吝指正)
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算