《计算机组成原理》

3.5.2 MIPS32架构CPU基本的组成部件

3. 单周期控制系统设计

(2)ALU控制单元

     ALU控制单元接收两种输入:主控单元输出的m位aluop和指令代码中的6位func字段,输出4位的operation微命令。

   R型指令的操作码OP全是0,它们可以靠func来说明执行何种运算操作,因而ALU控制单元根据aluop和func来确定输出的operation,即<aluop,func>operation;

   I型各类指令,直接根据操作码就可以确定当前执行何种运算,ALU只需要根据aluop确定输出的operation,即aluopoperation;

J型指令不会使用ALU,所有ALU控制单元输出的operation与J型质量无关,所有的无关项可以标记为  。

在设计主控单元输出的微命令aluop时,全部R型指令可以分配一组相同的编码,I型指令对应的任何一种ALU运算操作都必须分配一组独立的aluop编码,J型指令不需要分配与之对应的aluop。

如下图所示,R型指令分配一组相同的aluop编码,另外6条I型指令对应的操作分别有4种ALU基本运算,所以分配4组aluop编码。故11条目标指令共需要输出5组不同的aluop编码,因此编码位数m设计为3为。

R型指令的4种运算aluop编码为100;

I型指令的addi、lw、sw对应的编码为aluop=010,beq对应的编码为aluop=110,andi和ori分别对应编码为aluop=000和aluop=001。

在为指令分配主控单元输出的aluop编码时,应使aluop编码与预期输出的operation尽可能一致,这样可以优化ALU的组合逻辑。ALU在译码时只需在输入的aluop的高位补充一位0即可形成aluop的输出逻辑

单周期ALU控制单元的输入/输出真值表

观察全部aluop编码:

      aluop[2:1]=10时可以判断是执行的R型指令,再结合输入的func[2:0],就可以确定唯一的operation输出,即,则aluop[0]和func[5:3]与输出的operation无关,组合逻辑中无需考虑这些无关项。

     根据ALU的真值表,逐位设计operation[3:0]码位有效(为1)时产生逻辑:

(3)PCSrc控制单元

从控制系统的结构模型可以看到,PCSrc控制单元只接收3个输入:I型跳转指令的主控单元产生的beq指令译码标志beq_flag, j指令的译码标志j_flag,ALU反馈输入的zero(即0标志位),可以输出3种微命令编码分别为:00、01、10。

beq指令会使用接收到ALU反馈输入的zero标志,,因此zero是其余10条指令的无关项;因为beq_flag和j_flag是互斥的,所以j_flag是beq的输入无关项;同理,beq_flag也是指令j的输入无关项。根据真值表可以得到PSCrc[1:0]各位(为1)有效的逻辑表达式:

其组合逻辑电路为:

 输出位PCSrc[1]与j_flag一致,所以两者在逻辑上是同一关系,即j_flagPCSrs[1]。只有当从主控单元输入到PCSrc控制单元的beg_flag=1且ALU反馈输入的标志位zero=1时,PCSrc控制单元输出位PSCrc[0]=1,其余情况输出的PCSrc[0]=0。

(4)主控单元

   主控单元接收的唯一输入就是指令中的操作码OP,即Inst[31:26],对OP译码后,输出7种直接控制信号和3种间接控制信号。

   下图展示这11条指令目标指令在执行时,输入到主控单元的6位操作码即OP[5:0],以及从主控单元输出的7种直接控制信号的微命令码和3种间接控制信号的微命令编码。

“21天好习惯”第一期——21相关推荐

  1. “21天好习惯“第一期--4

    "21天好习惯"-第四天 每天记录一点点 计算机的诞生与发展 冯·诺依曼体系 计算机系统作为一个能够自动地处理信息的智能化工具,必须解决好两个最基本的问题:①信息如何表示才能方便地 ...

  2. “21天好习惯” 第一期 - 18

    今天进一步探究昨天学习的strcmp()函数:         昨天学习strcmp()函数时提到了,当两个字符串相同时,输出0,不相同时,输出非零,那么当两个字符串不同时,具体会输出什么非零值呢?于 ...

  3. “21天好习惯”第一期——16

    <计算机组成原理> 第一章 概论 1.1.2 存储程序工作方式 存储程序是计算机的核心内容,表明了计算机的工作方式,包含3个要点:事先编写程序,存储程序,自动.连续地执行程序. (1)根据 ...

  4. “21天养成好习惯”第一期——21

    1.今天是关于数组 概念在上图里面同时还有诸多注意事项 1.数组的下标均以0开始: 2.数组在初始化的时候,数组内元素的个数不能大于声明的数组长度: 3.如果采用第一种初始化方式,元素个数小于数组的长 ...

  5. “21天好习惯”第一期- 4 简单的壁纸爬虫

    有时候我们不想让电脑桌面过于单调,于是琢磨着能不能让电脑每天自动获取网站上的图片然后更换为壁纸,这就需要一个壁纸爬虫了,这里以3G壁纸为例. 首先,还是喜闻乐见的导入模块,在这个爬虫中,我们需要以下模 ...

  6. “21天好习惯“第一期——2

    道友们好,今天是学习的第二天,经过一天的学习我又了解到了很多有关C语言的知识,我也会和大家继续分享我的学习笔记,以及在学习中遇到的问题. 请大家看看下面这个程序: 今天的学习就到此为止,希望大家可以向 ...

  7. “21天好习惯”第一期——2

    今天学习的内容是3.3.2--算术逻辑单元. 继续昨天的学习的内容进一步学习了ALU: ALU的外部特性与功能: ALU的标志位: ALU的EDA设计模式: 学习中遇到的问题主要是ALU的EDA设计模 ...

  8. “21天好习惯”第一期-第10天

    今天学会了一个猜数的程序,这个程序可以让计算机随机生成一个100以内的数,然后我们人来猜这个数是什么. #include<stdio.h> #include<stdlib.h> ...

  9. “21天好习惯“ 第九期—9:京东倒计时,淘宝倒计时

    "21天好习惯" 第九期 - 9 一.学习规划 1.计算机组成图谱绘画(应为知识导图)(10月25) 2.网络工程师备考(11月6) 3.信息知识竞赛(10月31) 二.所遇问题 ...

最新文章

  1. 图文详解Silverlight访问MSSQL数据库
  2. 网路游侠:日志审计系统与SOC的区别
  3. Linux底层开发之四书五经
  4. tomcat如何配置文件读取路径
  5. @scheduled注解配置时间_@Scheduled注解
  6. javascript中的常见事件
  7. 小米台灯底座接口很松_选购台灯发愁?这篇桌面照明方案助你一臂之力
  8. 【洛谷】P1111 修复公路
  9. 【报告分享】传统品牌vs新消费品牌社交营销差异化分析报告.pdf
  10. Delphi 的绘图功能[5] - 获取 Canvas 对象
  11. 敏捷开发宣言 (一)
  12. 10分钟就能学会,Linux操作系统21个shell常用命令
  13. AJAX框架都有哪些是常用的
  14. Life feelings--13--青春不毕业,那些心里念念叨叨难以忘怀的记忆
  15. IP地址这么重要的知识,居然听一个学弟说没用?
  16. 阿里云大数据组件选型
  17. 重大利好消息!有PMP和NPDP证书的同学看过来!
  18. 【编译原理】自上而下分析与LL文法
  19. Windows Server 2008 防火墙开放 Oracle 的1521端口
  20. 文本单词统计(C语言)

热门文章

  1. 线性表顺序存储结构图书管理
  2. 自己动手写CPU(2)第一条ori指令
  3. NUnit使用详解(一)
  4. 我机器人里面的匡威照片_有哪些影视剧中的匡威鞋让人印象深刻?
  5. 微信小程序调用安卓手机系统指纹实现登录功能
  6. 深度学习图像处理之VGG网络模型 (超级详细)
  7. 快逸报表填报后保留填报数据并自动关闭提示窗口
  8. 哪款无线蓝牙运动耳机比较好、口碑最好的蓝牙运动耳机
  9. 名帖186 米芾 行书《蜀素帖》
  10. 用python进行多元OLS回归