【考研408计算机组成原理】微程序设计重要考点指令流水线考研真题+考点分析

                                                                            苏泽 

“弃工从研”的路上很孤独,于是我记下了些许笔记相伴,希望能够帮助到大家


目录

微指令的形成方式

微指令的地址形成方式

对应考题

题目:微指令的地址形成方式 - 断定方式

解题思路:

答题:

分析考点:

微程序控制单元设计

静态微程序设计和动态微程序设计(小知识点 )

静态

动态

指令流水线

在设计指令流水线时,需要考虑以下几个方面:

易错点

考题

示例问题


微指令的形成方式

微指令的地址形成方式

  1. 断定方式

    • 微指令格式中包含下地址字段。
    • 后继微指令的地址由该字段直接指定。
  2. 根据操作码形成

    • 机器指令加载到指令寄存器后,微指令地址由操作码决定。
    • 通过微地址形成部件来生成微指令地址。
  3. 增量计数器法

    • 微指令地址寄存器(CMAR)的当前值加1。
    • 公式表示为:(𝐶𝑀𝐴𝑅)+1→𝐶𝑀𝐴𝑅(CMAR)+1→CMAR。
  4. 分支转移

    • 转移方式:根据特定的判别条件进行转移。
    • 转移地址:指明转移成功后的微指令地址。
  5. 操作控制字段

    • 包含转移方式和转移地址。
  6. 通过测试网络

    • 微指令地址的形成可能依赖于测试网络的结果。
  7. 硬件产生微程序入口地址

    • 第一条微指令地址由专门的硬件产生。
    • 取指周期和中断周期的微程序首地址由硬件记录。

对应考题

题目:微指令的地址形成方式 - 断定方式

题目描述: 某计算机采用微程序控制器,共有32条指令。公共的取指令微程序包含2条微指令,各指令对应的微程序平均由4条微指令组成。采用断定法(下地址字段法)确定下条微指令地址。求:

  1. 微指令中下地址字段可以没有的位数至少是多少位?
  2. 总共需要存储多少条微指令?
  3. 标注出130个不同的位置至少需要多少个二进制位?

解题思路:

  1. 理解题目要求:

    • 确定微指令的下地址字段位数。
    • 计算总共需要存储的微指令数量。
    • 计算标注130个不同位置所需的二进制位数。
  2. 计算微指令数量:

    • 取指令微程序固定为2条微指令。
    • 每条指令对应的微程序平均有4条微指令,共有32条指令。
  3. 计算下地址字段位数:

    • 使用断定法,需要足够位数的下地址字段来唯一标识每一条微指令。
  4. 计算二进制位数:

    • 需要的位数能够表示从1到130的所有微指令地址。

答题:

  1. 计算微指令数量:

    • 取指令微程序:2条
    • 每条指令对应的微程序:32条指令 × 4条微指令/指令 = 128条
    • 总共:2 + 128 = 130条微指令
  2. 计算下地址字段位数:

    • 由于需要唯一标识130条微指令,使用二进制表示需要的位数为 ⌈log⁡2(130)⌉⌈log2​(130)⌉。
    • 计算得 27=12827=128,28=25628=256,因此至少需要8位。
  3. 计算二进制位数:

    • 130个不同位置至少需要的二进制位数为 ⌈log⁡2(130)⌉⌈log2​(130)⌉。
    • 由于 27=12827=128 不足以表示130,所以需要 28=25628=256,即8位。

分析考点:

  • 考点1: 微程序控制器的工作原理和微指令的地址形成方式。
  • 考点2: 断定法的理解和应用。
  • 考点3: 二进制数的位数计算,以及如何确定能够表示特定数量的唯一值所需的位数。

微程序控制单元设计

与硬布线控制单元设计做对比

绝大多数都一样,但唯一的区别在最后:把形成的微命令 交给 微地址形成部件 最后形成微命令+微地址的形式组成微指令

而硬布线是直接把这样的微命令做成电路去实现

也正是因为这个特性 他的每一个微命令段(由若干微命令形成的微命令段)多一个节拍 用于把下一次的微命令存到CMAR 作用是为了让机器知道 “下一步”执行谁

这也是他跟硬布线控制器最大的区别 

静态微程序设计和动态微程序设计(小知识点 )

静态

微程序无需改变,采用 ROM

动态

通过 改变微指令 微程序 改变机器指令
有利于仿真,采用 EPROM

指令流水线

是CPU中的一种技术,它允许多个指令在不同的阶段同时进行处理,从而提高执行效率。指令流水线的基本步骤包括:

  • 取指周期:根据程序计数器(PC)中的内容从指定地址读出指令代码并放在指令寄存器(IR)中。
  • 译码周期:对指令进行译码,确定需要的操作和操作数。
  • 执行周期:根据指令的操作码和操作数执行相应的操作。
  • 访存周期:如果需要,访问内存以获取或存储数据。
  • 写回周期:将执行结果写回寄存器或内存。

流水线技术可以并行处理多个指令,但也可能遇到一些问题,如数据冲突、控制冲突等,需要采取相应的策略来解决。

指令流水线的本质

就是把一个动作拆解成无数个细小的动作 (由不同的部件完成不同的动作)  然而流水线就体现在 异步  通俗点讲就是你是切菜的 你不用上一个菜做完 你就一直切菜 你的任务不需要等到别人执行完成你才能够开始  这就叫异步  流水线的本质 就是希望将各种部件最大异步化  仅此而已

在设计指令流水线时,需要考虑以下几个方面:

  • 指令的顺序:指令顺序不能改变,以确保程序的正确性。
  • 指令的并行性:编译器可以通过分析指令之间的依赖关系,将能够并行执行的指令合并成一条超长指令字,以提高执行效率

指令流水线是一种在CPU中用于提高指令执行效率的技术,它将指令的执行过程分解成多个子过程,这些子过程可以并行执行。然而,在指令流水线的设计和实现中存在一些易错点,这些易错点在考题中也经常被考察。以下是一些指令流水线中的易错点和相关问题:

易错点

  1. 资源冲突(结构相关):当多条指令同时争用同一资源时会发生结构相关,导致流水线中断或效率降低。

  2. 数据相关(数据冒险):某些指令依赖于前一条指令的结果,如果前一条指令的结果尚未计算完成,后一条指令就无法执行。

  3. 控制相关(控制冒险):转移指令和程序计数器的改变可能导致流水线中断。

  4. 流水线的启动和排空:流水线在开始时需要一定的时间来填满各个阶段,称为启动时间;在最后一条指令执行完毕后,流水线需要一段时间来清空,称为排空时间。

  5. 超标量流水线的指令乱序发射:超标量流水线允许在一个时钟周期内发射多条指令,但需要处理指令乱序执行带来的问题。

  6. 异常和中断的处理:流水线需要能够处理异常和中断,这可能会影响流水线的效率。

考题

  1. 计算流水线的性能指标:如吞吐率、加速比、效率等。

    • 吞吐率:单位时间内完成的指令数量。
    • 加速比:引入流水线后与未引入流水线的执行时间之比。
    • 效率:流水线中各功能的利用率。
  2. 分析流水线中的相关类型:确定指令流水线中可能发生的数据相关、控制相关和结构相关。

  3. 设计超标量流水线:设计一个超标量流水线,并分析其CPI(每条指令的时钟周期数)。

  4. 处理异常和中断:设计流水线的异常和中断机制,确保流水线在遇到异常情况时能够正确处理。

  5. 流水线的优化:提出方法来减少流水线的启动时间和排空时间,提高流水线的效率。

  6. 指令流水线的实现:给出指令流水线的具体实现方式,包括数据通路的设计、控制信号的生成等。

示例问题

假设有一个五段式指令流水线,包括取指、译码、执行、访存和写回五个阶段。请计算以下情况:

  • 吞吐率:如果有8条指令需要执行,每个时钟周期完成一个阶段,那么吞吐率是多少?
  • 加速比:如果没有流水线,执行这8条指令需要多少时钟周期?引入流水线后,加速比是多少?
  • 效率:如果流水线的设备利用率是80%,那么流水线的效率是多少?

可以尝试自己根据理解做一下哦  下一期把做题笔记发出来

答案:


另外,利用了工作之余的一点点时间,整理了一套考研408的知识图谱,

我根据这一套知识图谱打造了这样一个408知识图谱问答系统

里面的每一个回答都是根据考研408的考点回复的

目前暂时只接入了微信,如果大家对这个问答系统感兴趣的话可以在我的主页里找到我的微信号

找我拉进测试群免费体验哦


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/38372.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机体系结构和指令系统

1.计算机体系结构 - 五大部件 - 冯 诺依曼 计算机的特点 1.计算机有五大部件组成 2.指令和数据以同等地位存储于存储器,可按照地址访问 3.指令和数据用二进制表示 4.指令由操作码和地址码组成 5。存储程序 6.以计算器为中心(输入、输出设备与存储器…

2024年【湖北省安全员-C证】新版试题及湖北省安全员-C证试题及解析

题库来源:安全生产模拟考试一点通公众号小程序 湖北省安全员-C证新版试题参考答案及湖北省安全员-C证考试试题解析是安全生产模拟考试一点通题库老师及湖北省安全员-C证操作证已考过的学员汇总,相对有效帮助湖北省安全员-C证试题及解析学员顺利通过考试…

WIN10系统自带录屏软件怎么用?

WIN10系统自带录屏软件怎么用? WIN10系统录屏软件怎么用? 第一步:WING 快捷打开系统自带录屏软件,如下: 第二步:点击录屏软件区域“开始录制”按钮进入屏幕录制状态,如下: 第三步…

基于SpringBoot的财务管理系统

根据您提供的论文内容和模板要求,以下是定制化的文章输出: 你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言: Java 数据库: MySQL 技术: SpringBoot…

某度,网盘免费加速,复活!

哈喽,各位小伙伴们好,我是给大家带来各类黑科技与前沿资讯的小武。 有小伙伴反馈之前如下夸克网盘脚本的加速方法失效,小武今天测试,依旧正常使用! 百度/迅雷/夸克,网盘免费加速,已破&#xf…

pytest测试框架pytest-cov插件生成代码覆盖率

Pytest提供了丰富的插件来扩展其功能,本章介绍下pytest-cov插件,用于生成测试覆盖率报告,帮助开发者了解哪些部分的代码被测试覆盖,哪些部分还需要进一步的测试。 pytest-cov 支持多种报告格式,包括纯文本、HTML、XML …

vue3+ts+vite项目中使用spreadjs,通过script标签引入spreadjs可以提高打包速度

https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/quickstart/quickstart-js 右键另存这个官方的示例页面可以下载全部js文件 https://demo.grapecity.com.cn/SpreadJS/WebDesigner/index.html spread.html: <!DOCTYPE html> <html lang"zh">…

数据产品经理知识库构建

概述 数据产品经理是企业中负责管理和推动数据产品的专业人员。他们利用数据来辅助决策&#xff0c;优化产品&#xff0c;提升用户体验。用STAR法则&#xff08;Situation, Task, Action, Result&#xff09;来介绍数据产品经理的角色&#xff0c;应该学习的数据产品&#…

Labview_网络流

网络流的介绍 网络流是一种易于配置、紧密集成的动态通信方法&#xff0c;用于将数据从一个应用程序传输到另一个应用程序&#xff0c;其吞吐量和延迟特性可与 TCP 相媲美。但是&#xff0c;与 TCP 不同的是&#xff0c;网络流直接支持任意数据类型的传输&#xff0c;而无需先…

忙忙碌碌的混沌之中差点扑了个空而错过年中这条线

文章目录 前言初见端倪混沌初始力不从心心力交瘁拾遗补缺总结 前言 突然意识到过完这个周末已经7月份了&#xff0c;他预示着我的2024年已经过半了&#xff0c;过年回家仿佛还是昨天的事情&#xff0c;怎么转眼间已经到了年中了。心里还是不愿承认这件事&#xff0c;翻开自己2…

cpu,缓存,辅存,主存之间的关系及特点

关系图 示意图&#xff1a; ------------------- | CPU | | ------------- | | | 寄存器 | | | ------------- | | | L1缓存 | | | ------------- | | | L2缓存 | | | ------------- | | | L3缓存 | | | ------------- | ----…

每日一题——Python实现PAT乙级1073 多选题常见计分法(举一反三+思想解读+逐步优化)9千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 初次尝试 再次尝试 有何不同 版本一&#xff08;原始版本&#xff09;&#xff1a;…

修复vcruntime140.dll方法分享

修复vcruntime140.dll方法分享 最近在破解typora的时候出现了缺失vcruntime140.dll文件的报错导致软件启动失败。所以找了一番资料发现都不是很方便的处理&#xff0c;甚至有的dll处理工具还需要花钱&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff0c;我本来就是为…

python实现网页自动化(自动登录需要验证的网页)

引言: python作为实现网页自动化的一个重要工具,其强大的各种封装的库使得程序运行更加简洁,只需要下载相应的库,然后调用库中的函数就可以简便的实现我们想要的网页相关操作。 正文: 我的前几篇文章写了关于初学爬虫中比较容易上手的功能,例如爬取静态网页的数据、动…

ThreadPoolExecutor 工作线程Worker自身锁设计

个人博客 ThreadPoolExecutor 工作线程Worker自身锁设计 | iwts’s blog 总集 想要完整了解下ThreadPoolExecutor&#xff1f;可以参考&#xff1a; 基于源码详解ThreadPoolExecutor实现原理 | iwts’s blog Worker-工作线程管理 线程池设计了内部类Worker&#xff0c;主…

【python】python知名品牌调查问卷数据分析可视化(源码+调查数据表)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

CleanShot X - 超好用苹果电脑截图录屏工具

Mac 自带的截图工具十分鸡肋&#xff0c;不仅功能少&#xff0c;无法长截图外&#xff0c;也不支持 GIF 制作&#xff0c;很难满足日常做图需求。 CleanShot X 是一款 Mac 平台近乎无可挑剔的专业截图录屏工具 &#xff0c;能完美代替 Mac 自带截图。它提供超过 50 项功能&…

嵌入式学习——硬件(s3c2440外部中断、定时器中断)——day54

1. start.s preserve8area reset, code, readonlycode32entryldr pc, startnopnopnopnopnop ldr pc, interrupt_handlernopstartldr sp, 0x40001000mrs r0, cpsrbic r0, r0, #0x1Forr r0, r0, #0x12;IRQbic r0, r0, #(1 << 7);打开IRQ中断允许msr cpsr_c, r0ldr …

Nacos配置中心客户端源码分析(一): 客户端如何初始化配置

本文收录于专栏 Nacos 推荐阅读&#xff1a;Nacos 架构 & 原理 文章目录 前言一、NacosConfigBeanDefinitionRegistrar二、NacosPropertySourcePostProcessor三、AbstractNacosPropertySourceBuilder总结「AI生成」 前言 专栏前几篇文章主要讲了Nacos作为服务注册中心相关…

zabbix server client 安装配置

Zabbix Server 采用源码包部署&#xff0c;数据库采用 MySQL8.0 版本&#xff0c;zabbix-web 使用 nginxphp 来实现。具体信息如下&#xff1a; 软件名 版本 安装方式 Zabbix Server 6.0.3 源码安装 Zabbix Agent 6.0.3 源码安装 MySQL 8.0.28 yum安装 Nginx 1.20…