在总线周期的t1,t2,t3,t4状态,cpu_计算机组成原理总线带宽怎么算

在总线周期的t1,t2,t3,t4状态,cpu_计算机组成原理总线带宽怎么算大家好,我是小黄鸭,又来更新了,应小伙伴的需要,该实验也过了。实验所用的软件资源/测试电路也全部开放,地址在MOOC中国大学为:https://www.icourse163.org/learn/HUST-1205809816#/learn/announce附带实验测试,地址在Educode上为:https://www.educoder.net/shixuns/ckff6yv9/challenges光是给的Excel自生成电路表格就上了7个,再加上密密麻麻的电路图,各自安好吧整体框架该实验

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

大家好,我是小黄鸭,又来更新了,应小伙伴的需要,定长、现代时序、中断、实验也过了。
2022/1/4大家好,我是小黄鸭,由于21年下半年在考研,因此很多消息没有回复,现在大家有问题可以来私聊我

实验所用的软件资源/测试电路也全部开放,地址在MOOC中国大学为:https://www.icourse163.org/learn/HUST-1205809816#/learn/announce

附带实验测试,地址在Educode上为:https://www.educoder.net/shixuns/ckff6yv9/challenges

把CPU不同指令的工作流程和时序转换的原理弄明白,就可以做出来了

整体框架

  1. 实验目的:该实验是帮助学生理解定长指令周期三级时序系统的设计,能够利用该时序构造硬布线控制器,支持5条典型的MIPS指令在单总线CPU上运行,最终CPU能够运行内存冒泡程序。实验完成后,最终的效果就是下面的这两幅图,分别是:单总线CPU和硬布线控制器部分。(只有RST为一条蓝色的线,其余都为正常)终1
    终2
  2. 三级时序硬布线控制器基本架构,主要包括三个部分:指令译码信号、组合逻辑线路、时序发生器,这也正是整个实验需要实现的部分。基本构架
  3. 实验文件为MipsOnBusCpu-3.circ,其中单总线数据通路已经设计好了,主要设计部分为硬布线控制器,具体如下。硬布线控制器
    接下来以定长指令周期的CPU设计为例,给大家讲一下原理。

MIPS指令译码器设计

  1. 该实验较为简单,主要是根据指令字的OPFunc字段,利用比较器,对5条基本指令进行译码。
  2. 主要的MIPS指令OPFunc字段如下。
    MIPS指令
  3. 电路图如下MIPS指令译码器设计

时序发生器FSM设计

  1. 时序发生器内部框图如下图所示,主要包括状态寄存器,状态机组合逻辑,输出函数组合逻辑三部分。其中状态机负责现态与次态的转换,输出函数根据当前状态生成状态周期电位和节拍周期电位。FSM
  2. 这个实验为定长指令周期,因此所有MIPS指令有需要3个时钟周期,每个机器周期4个时钟节拍,一共需要12个状态,状态图如下。
    定长指令周期
  3. 根据状态图在相应的excel表中(文件中标号位1的表格)填写,即可在logisim中自动生成电路。这里就详细给大家讲一下Excel表格和自生成电路的应用。
    1. 首先观察表格,需要输入的部分都为红色的数字部分,分别现态(10进制),输入信号,次态(10进制),灰色部分为自动生成部分。
      表格初始
    2. 由于为定长指令周期,因此每一种MIPS指令都需要执行12个周期,所以这里的次态与输入信号无关(不填或者填X),最终如下。表格1
    3. 然后点击下方的自动生成表格,右下方的蓝色部分就是每一个输出的逻辑表达式。然后打开logisim中该实验的分析电路(项目->分析电路),将逻辑表达式复制后,并选中,最后生成电路。表格2
    4. 生成的电路图如下
      时序发生器FSM设计

时序发生器输出函数设计

上一关已经设计出了时序发生器FSM,了解了时序发生器的基本原理,这里只需要根据状态 转换图,进一步对输入输出进行设计,在Excel中填写相应表格,自动生成电路。如下。然后在Logisim中自生成电路。
表3

硬布线控制器组合逻辑单元

  1. 硬布线控制器组合逻辑单元的基本框架如下
    原理
  2. 由于所有的微操作控制信号,都是反馈信号,指令译码信号,状态周期电位和节拍电位的组合逻辑函数根据各MIPS指令的数据流图,在相应的Excel中填写。
    数据流图
  3. 然后在logisim中自生成电路即可。

硬布线控制器设计

根据第2关中,硬布线控制器的总体框架,利用状态寄存器和时钟信号,将设计好的FSM状 态机和输出函数组合逻辑进行连接,从而实现硬布线控制器的整个功能。
FSm控制机

单总线CPU设计

在前面硬布线控制器设计完成的基础上,在单总线CPU中,将sort-5中的指令复制到RAM 中,进行仿真。最终实现降序排列。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

CPU性能分析与改进方法

传统三级时序执行慢,构成较为简单。其中定长指令周期的机器数和节拍数固定,机器数为3个机器周期,节拍数位4个节拍。这种方式对大多数指令都存在着时钟节拍的浪费而采用变长指令周期相对灵活,机器周期数和节拍数都可根据具体需要进行变化。这样就减少了不必要的浪费。

目前已完成实验

  1. 定长&变长(不放图了)
  2. 现代时序
    在这里插入图片描述
  3. 现代时序+中断
    在这里插入图片描述
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/182587.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • tcp为什么是三次握手不是两次握手_tcp四次挥手

    tcp为什么是三次握手不是两次握手_tcp四次挥手一、为什么握手是三次,而不是两次或者四次?答:两次不安全,四次没必要。tcp通信需要确保双方都具有数据收发的能力,因此双方都要发送SYN确保对方具有通信的能力二、为什么挥手是四次而不是三次?答:发送FIN包只能表示对方不再发送数据了,不代表对方不再接收数据,因此被动关闭方进行ACK回复之后有可能还会继续发送数据,等到不再发送数据了才会发送下一个FIN包,因此FIN包和ACK包是分开的…

    2022年10月3日
    4
  • linux用netstat查看服务及监听端口

    linux用netstat查看服务及监听端口

    2021年10月27日
    60
  • StrictMode使用详解

    StrictMode使用详解StrictMode    StrictMode最常用来捕捉应用程序的主线程,它将报告与线程及虚拟机相关的策略违例。一旦检测到策略违例(policyviolation),你将获得警告,其包含了一个栈trace显示你的应用在何处发生违例。除了主线程,我们还可以在Handler,AsyncTask,AsyncQueryHandler,IntentService等API中使用StrictMod

    2022年6月9日
    31
  • c语言如何遍历数组,C语言数组遍历

    c语言如何遍历数组,C语言数组遍历C语言数组遍历教程C语言for循环遍历数组详解语法for(i=0;i<count;i++){//arr[i]}说明其中count是数组的元素的个数,此时,数组的每一个元素是arr[i]。C语言while循环遍历数组详解语法inti=0;while(i<count){//arr[i]i++;}说明其中count是数组的元素的个数,此时,数组的每一个元…

    2022年7月22日
    10
  • linux 文本编辑器vi常用命令

    linux 文本编辑器vi常用命令linux之文本编辑器vi常用命令由于经常在linux下面文本操作,所以这里稍微系统的总结一下自己常用的vi命令1、打开命令:vi+filename(还有各种打开的姿势,只不过我比较顺手这个)2、退出命令::q退出而且不保存修改的内容:q!强制退出不保存修改的内容:wq退出并且保存修改的内容:wq!强制保存修改的内容然后退出(修改了只读文件会用到)ZZ退出并且保存修改的内容,相当于:wq,看个人习惯3、光标移动命令个人比较喜欢上下左右方向键,字母h(左),j

    2022年7月26日
    4
  • IE7\IE6 图片上传预览

    IE7\IE6 图片上传预览

    2021年7月28日
    56

发表回复

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

关注全栈程序员社区公众号