计算机组成原理笔记 | 您所在的位置:网站首页 › 幕刃全称 › 计算机组成原理笔记 |
文章目录
Chapter4_逻辑设计基础部件介绍-组合逻辑-状态组件
数据通路(Datapath)和控制器-Datapath组件-操作简述-操作详述(结合图片&暂不考虑控制信号)
控制信号详述ALU controllerALU控制信号的分配ALU 控制信号生成方式
主控制单元控制信号
Chapter4_逻辑设计基础
部件介绍
组合逻辑部件不遵循时序,有输入就有输出 时序部件: 存储信息 Store informationPC 指令内存, 数据内存 -组合逻辑 与门加法器多路选择开关 MultiplexerALU 算术逻辑单元 9 条指令但不是9种运算 lw,sw的加法减法AND , ORset-on-less-than共五种运算 -状态组件寄存器输出信号在上升沿变化(有效表示逻辑高,无效表示逻辑低) 写控制的寄存器,需要在时钟沿上升时write写入信号为真,才会根据输入改变输出 时钟控制策略 组合逻辑电路至于时钟间隔中从时序部件取出,置入时序部件,从寄存器取出,放入内存或寄存器中组合逻辑完成后的下一个时钟再传回PC+4 数据通路(Datapath)和控制器 -Datapath组件 CPU内处理数据和地址的组件 寄存器 Registers算术逻辑单元 ALU 两个32位输入,一个32位输出,一个1位输出(表示结果是否为0) 多路选择器 MUX内存 Data Memory 其实是DCache,在教学模型中简化了 程序计数器 PC 任何类型的指令都需要使用到PC **符号扩展 Sign-extend ** 有符号数扩展——高位填充寄存器堆,ALU -操作简述R-format Instruction 读取两个寄存器进行算术逻辑运算结果写入寄存器Load/Store Instructions 读取寄存器使用16位立即数进行计算地址(使用算术逻辑单元进行符号扩展) Load: 读取内存,更新寄存器Store: 将寄存器值写入内存Branch Instructions 需要两种指令beq, bne的原因: 跳转范围一共是232 ,而分支跳转的范围是216 ,若beq无法达到该位置,则可以使用bne加j完成跳转 计算分支目标地址比较操作数 -操作详述(结合图片&暂不考虑控制信号)R-format Instructions (指令包含三个寄存器) 获取三个寄存器地址,进入寄存器堆,将两个读取数据置入ALU,通过ALUOP控制运算方法。输出值为数值,无需进入数据内存,直接返回到寄存器堆。将结果写入目标寄存器中PC获取新的指令地址(PC+4),完成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 controller ALU控制信号的分配 Load/Store : F = addBranch: F = subtractR-type F depends on function field ALU controlFunction0000AND0001OR0010add0110subtract0111set-on-less-than1100NOR每个数据通路同时只能进行一个操作 ALU 控制信号生成方式 根据2位操作码和6位功能字段生成ALU控制信号通过将[27:26]的ALUop和[6:0]的Funct字段联合控制,可以由组合逻辑电路产生控制信号,具体实现方式可以通过列出带无关项 的真值表获得。(如下图) 数据通路如何得知需要进行哪些操作呢?除了ALU通过ALU控制信号得知运算单元需要进行的运算方式,读写控制,多重选择都需要控制信号的注入,而这些控制信号,就由主控制单元根据[31:26]的Op字段操作码运算得出~ 控制信号下图即为不同指令所对应需要的控制位信息: |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |