计算机组成与体系结构,第6章指令流水线学习

时钟周期、机器周期、指令周期
时钟周期也称为振荡周期,定义为时钟脉冲的倒数,是计算机中最基本的、最小的时间单位。
机器周期,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期。
指令周期, 是执行一条指令所需要的时间,一般由若干个机器周期组成。指令不同,所需的机器周期数也不同。
转自

简单介绍指令周期

定义
取出:从内存单元中取出放出IR
分析:对指令的操作码(把操作码给CU[CPU中的控制单元] 让系统分析这是系统中的哪一条指令)+寻址方式进行分析
执行:完成指令要求的全部运算(CPU中的运算单元)
指令周期的构成
<1> NOP指令是空指令,之后的题会用到
<2>具有间接寻址的指令周期
大概是这样:
取指周期:访问一次内存(取指令)
间址周期:访问一次内存(取操作数地址)
执行周期:访问一次内存(取操作数)
<3>具有中断周期的指令周期

指令周期的流程

CPU工作周期的标志
说明:
指令周期的不同阶段控制器需要做的不同的操作,因此控制器在CPU的不同阶段要发出不同的命令。。。为了对控制单元进行设计,所以要有CPU工作周期的标志(也就是指令周期执行的哪一个单元)下面那个D触发器就是这样子

指令周期数据流

简单介绍取指周期、间址周期、执行周期、中断周期

  1. 取指周期

    PC(保存当前指令的内存地址)告诉你要取得那条指令的内存地址,把指令的地址放到MAR(MAR保存存储器的地址)中,MAR通过地址总线把指令地址送到指令存储器.
    CU把控制信号送到控制总线上,再由控制总线送到存储器**,存储器执行读操作,把相应的数据送到数据总线上,再从数据总线送到MDR(MDR保存数据的地址),IR(已经保存好指令了),CU(进行时序控制)。
    【这是读操作 简单理解下这个过程,柳老师讲解过后真的理解更加深入了哈哈哈】
    但,并没有结束,这时候CU会进行时序控制,看是否进行PC+1还是啥的操作

  2. 间址周期

    得要取出操作数的地址,地址在存储器中。
    假设MDR保存了我们要取得那个操作数的地址,我们从MDR开始,把MDR中的地址码部分送到MAR,进行内存单元的访问,从存储器中取出操作数的真正地址,读操作,CU把控制信号送到存储器中,存储器读出操作数的地址,送到MDR中,这时候MDR部分就真正保存了我们所需要的操作数的地址。

  3. 执行周期
    差异非常大

  4. 中断周期

    中断周期要:
    <1>保存程序断点:相当于中断之后返回到程序的那个位置,,也就是说中断以后要执行的下一条指令的地址是多少,那么这个地址就保存在PC中(这其中还是有很复杂的过程的)
    ①把程序断点得保存到一个内存单元中 在这里CU确定把程序断点保存在哪一个地址,把地址放到MAR中,进而保存到存储器。
    ②并且这个操作是个写命令,需要CU通过控制总线把写命令传递给存储器
    PC把指令地址送到MDR中,MDR通过数据总线送到存储器
    <2>:形成中断服务程序的入口地址
    <3>:硬件关中断
    (在之后进行了详细的学习)

指令流水

  1. 如何提高机器速度
    ①可以提高访存速度,例如把常用的指令放到cache中,方便访问。多体并行,对多个存储器进行交叉访问,在一个主存周期中CPU可以访问多个存储体
    ②提高IO和主机之间的传送速度:DMA方式,多总线方式。
    中断方式:使用程序控制方式进行I/O和主机之间的传送,这时候CPU和外部设备之间不能并行进行工作(使用串行方式进行工作),总线和CPU利用率都比较低。故可以使用中断,CPU和外部设备可以并行工作。

  2. 系统的并行性
    并发,分时操作系统,多道程序在计算机系统中并发进行,每个进程占一个小的时间片
    同时,在同一个时刻发生

  3. 指令的串行指令和二级流水
    取值和执行阶段时间完全重叠,看底下图3条指令,如果串行需要6,并行需要3,速度提高一倍

  4. 影响指令效率的因素

  5. 指令的6级流水
    说明:假设指令的每一段时间都是相同的。。但这都是理想状态的,假设指令之间不存在冲突,没有转移指令。
    这个指令流水看最上面的时间段,可见总共需要14个时间单位。串行的话需要54个
    当然也可以这么画,是一样的。理解这个过程就好了

  6. 流水线的设计原则以及适合流水线的指令集特征
    设计原则:
    ⑴指令流水段个数以最复杂指令所用的功能段个数为准。
    ⑵流水段的长度以最复杂的操作所花费的时间为准。
    适合合流水线的指令集特征:
    (1)长度尽量一致
    有利于简化取指令和指令译码操作;MIPS指令32位,下址计算方便: PC+4;X86指令从1字节到17字节不等,使取指部件极其复杂。
    (2)指令格式应尽量规整,尽量保证源寄存器位置相同有利于在指令未知时就可取操作数;MIPS指令的rs和rt位置一定,在指令译码时就可读rs和rt的值.若位置随指令不同而不同,则需先确定指令类型才能取寄存器编号。
    (3) 采用装入/存储型指令风格load / Store指令才能访问存储器,可以把load / Store指令的地址计算和运算指令的执行步骤规整在同一个周期,因此有利于减少操作步骤,规整流水线。
    (4)数据和指令在内存中”对齐”存放,有利于减少访存次数,使所需数据在一个流水段内就能从存储器中得到。
    结论:规整、简单和一致等特性有利于指令的流水线执行

  7. 影响流水线性能的因素

① 结构相关
<1>两条或两条以上的指令征用同一个运算器之类的,会发生资源冲突,也就是结构相关
下面的指令流水线:
FO FI在同一个时间段访问内存
WO FO FI在同一个时间段也会访问内存单元

关于指令预取技术:内存访问比较快,周期短,那么取址部件使用空闲时间把多条指令从内存单元取出来放入到CPU中的指令缓冲队列(或者说寄存器 运算器啥的)

②数据相关
流水线可能有多个读段,多个写段
**先写后读相关Rrite After Write **:对同一个内存或寄存器先完成写操作再完成读操作。
例如:
大概就是,在进行SUB指令的时候,由于指令流水线导致指令重叠,可能在R1还没写回的时候,ADD指令就读了
先读后写相关
例如:
可能ADD还没执行完,写回R2值,STA指令就开始读了 基本流水线(就像上面的6级流水)不会发生,乱序执行时会发生

写后写相关:
例如:
SUB 在MUL之后,这个好像是基本流水线(就像上面的6级流水)不会发生,乱序执行的时候可能会发生。遇到再解释

③控制相关

这是一段汇编语言指令,简单理解一下控制相关就好。
从6级流水线来理解:
设3号指令是转移指令,但是第3号指令译码的时候不知道他是转移指令,这时候指令4、5、6、7都会陆续进入指令,但是第三号指令它是个转移指令,执行阶段会跳转到15号指令(假设)。

  1. 如何解决影响流水线性能的因素

  2. 流水线的性能的指标
    ①吞吐率
    理解一下这个公式:
    单位时间内,在没有结构相关,数据相关,资源冲突等的因素,看那个指令流水线,每经过一个▲t,就会有一个指令输出,所以才有了最大吞吐率的公式

    ②加速比:
    比较容易理解

    ③效率
    简单看一下就好。整个举行的面积除以利用这的矩形的面积

流水线结构

  1. 指令流水线结构
    我们假设有6段,简单看一下
    必须加上锁存器:保存前面流水线的操作结果,并为下一段提供操作数据和操作信号
    (锁存器的作用学习过)
  2. 运算流水线

指令流水线习题

  1. 看到老师给的文件上的一道例题,几个公式的运用

    (1)T= 1/8MHz = 0.125us
    (2)MIPS单位是百万条每秒
    平均指令周期(就是一条指令多少秒)=1/0.8MIPS = 1.25us
    (3)机器周期=0.5us
    平均每个指令周期含有的机器周期数=1.25 ÷0.5=2.5(个)
    (4)平均指令执行速度=1/(0.4×4×2.5)=0.25MIPS
    (5)每秒40万条指令,每条指令还要2.5×4=10个机器周期
    那每秒执行40万×10=400万个机器周期
    那么主频频率=1/400万=4MHz

考察解决普通数据冒险:专用通路技术(旁路技术 转发技术)





注意与第四题画法的不同,但本质是一样的。懂得思路就可以了。




考察Load-use数据冒险解决:加nop指令/调整指令序列

已经采用了转发技术,已经避免了数据冒险,因此只对load-use数据冒险进行指令序列调整就好了,什么是load-ues数据冒险?


第一条和第二条、第六条和第七条之间存在load-use数据冒险,因此可将第四条指令插到第二条指令之前;将第五条指令擦回到第七条指令之前(了解一下这个方法就好了)

==考察普通数据冒险解决:专用通路技术(转发技术)、
软件阻塞:加nop指令、
硬件阻塞:加入气泡阻塞指令执行 ==
这肯定是需要我们画出时空图的,然后根据时空图进行简单的分析。

第三问懒得看了

End:

1. 自己总结的大部分都是来自哈尔滨工业大学mooc
2. 只是简单总结了课后题

计算机组成与体系结构——指令流水线相关推荐

  1. 清华大学计算机组成与体系结构,清华大学出版社-图书详情-《计算机组成与体系结构(第2版)》...

    作为"21世纪大学本科计算机专业系列教材",遵照本系列教材评审组专家的意见,本书包括了数字电路基础.计算机组成.计算机体系结构3个部分内容.本书读者对象主要是学习计算机课程的大学生 ...

  2. 系分 - 计算机组成与体系结构

    个人总结,仅供参考,欢迎加好友一起讨论 文章目录 系分 - 计算机组成与体系结构 考点摘要 浮点数 Flynn分类法 CISC与RISC 流水线技术 流水线技术 - 超标量流水线 计算机组成 存储系统 ...

  3. 任铄 计算机操作系统,计算机组成与体系结构-CSDN.PDF

    计算机组成与体系结构-CSDN 系统分析师 --计算机组成与体系结构(一) 高级项目经理 任铄 QQ :1530841586 第一章 计算机组成与体系结构  1.1 计算机组成与分类  1.2 多 ...

  4. 太原理工计算机组成原理报告,太原理工《计算机组成原理与体系结构》--实验报告.docx...

    本科实验报告 课程名称:计算机组成原理与体系结构 实验项目: 运算器.移位器.运算存储器. 总线控制.微程序控制器原理 实验地点: 明向计算机学院306实验室 专业班级: 物联1403 学号:2014 ...

  5. 计算机组成结构IR,计算机组成与体系结构试题

    <计算机组成与体系结构试题>由会员分享,可在线阅读,更多相关<计算机组成与体系结构试题(5页珍藏版)>请在人人文库网上搜索. 1.____________________ 系 ...

  6. 计算机组成原理和体系结构----软考(到处copy)

    计算机组成原理和体系结构 数据的表示 n进制转十进制 十进制转n进制 使用短除法 二进制转八进制和十六进制 原码.反码.补码以及移码 浮点数运算 计算机结构 计算机体系结构分类 - Flynn CIS ...

  7. 2010年6月计算机组织与结构,2010 计算机组织与体系结构课程设计.doc

    2010 计算机组织与体系结构课程设计 东 莞 理 工 学 院 本 科 课 程 设 计 课程设计题目: 具有访存及循环移位运算功能的 复杂模型机的设计 学生姓名: 许悦 学 号: 2008414021 ...

  8. 计算机通过逻辑电路实现运算,计算机组成与体系结构数据表示与运算算法和逻辑电路实现.ppt...

    计算机组成与体系结构数据表示与运算算法和逻辑电路实现 安阳工学院 第3章 本章主要内容 信息编码.码制转换与检错纠错码 数据表示--常用的信息编码 二进制数值数据的编码与运算算法 数字化编码二要素 数 ...

  9. 2021.12.26 第一章. 计算机组成与体系结构

    本文由 简悦 SimpRead 转码, 原文地址 blog.csdn.net 该系列一共包括十三章 目录 第一章. 计算机组成与体系结构 第一节. 数据的表示 第三节. 计算机体系结构分类 (Flyn ...

最新文章

  1. Cognos 云最佳实践: 调整架构提供性能和可伸缩性
  2. dataframe两个表合并_DAXSQLPython实现报表项目存在串行的财务报表合并
  3. 【渝粤教育】国家开放大学2018年秋季 0266-22T设计构成 参考试题
  4. puppet puppet模块、file模块
  5. 开机自启动和由一个APK启动另一个APK核心代码
  6. 计算机科学系小学教育专业就业前景,小学教育专业就业方向与就业前景
  7. replace使用案例--替换空格
  8. wpf checkbox选中触发事件_Web前端开发(16)——JQuery事件绑定与插件
  9. 算法(二):分而治之
  10. Pandas——筛选数据(loc、iloc)
  11. python数据存储系列教程——python操作sqlite数据库:连接、增删查改、指令执行
  12. USB Device Desctiptor 相关
  13. c语言之父是谁,Unix之父 C语言之父_云计算产业趋势-中关村在线
  14. BP神经网络python代码详细解答(来自原文)
  15. j2ee框架之jvn
  16. 全国大学生智能汽车竞赛-室外光电组无人驾驶挑战赛-2019
  17. Android-S模拟器
  18. 文字转语音软件有哪些
  19. NOIP2021题解~持续更新
  20. 迪士尼机器人芭蕾舞_浅析迪士尼跳跳虎机器人

热门文章

  1. 高等数学(空间解析几何)
  2. 从三国演义谈创业的一点启示
  3. pid_t pid = fork()
  4. 华为无线猫EchoLife HG522路由配置
  5. Acquire and Release Semantics
  6. error: previous declaration of '****' was here
  7. linux 终端打印图片,Linux终端打印命令使用介绍
  8. 关于如何去寻找自己的另一半和我的爱情观
  9. 海外直连100M跟国内5m服务器,云都网络推出美国高防服务器直连回国带宽100M独享CN2 GIA...
  10. IIS+php环境下:上传文件出现:windows server PHP Warning: mkdir(): Permission denied 解决办法