写在前面:本文经过王道论坛的计算机组成原理单科书整理而来。

文章目录

  • 5.1 CPU的功能和基本结构
  • 5.2 指令执行过程
    • 5.2.1 指令周期
    • 5.2.2 指令周期的数据流
  • 5.3 数据通路的功能和基本结构
    • 5.3.1 数据通路的功能
    • 5.3.2 数据通路的基本构成
  • 5.4 控制器的功能和工作原理
  • 5.5. 指令流水线
    • 5.5.1 指令流水线的基本概念
    • 5.5.2 流水线的分类
    • 5.5.3 影响流水线的因素

5.1 CPU的功能和基本结构

5.2 指令执行过程

5.2.1 指令周期

指令周期: CPU从主存中取出并执行一条指令的时间称为指令周期。

指令周期通常用若干机器周期来表示,机器周期又叫CPU周期

一个机器周期又包含若干时钟周期(也称为节拍,T周期或CPU时钟周期),它是CPU操作的最基本的单位

举个例子:购买电脑时候的指标 主频3.0GHz,意思是 这个CPU每秒钟可以发出3.0G次 时钟周期(节拍)

5.2.2 指令周期的数据流

数据流是根据指令要求依次访问的数据序列。在指令执行的不同阶段,要求依次访问的数据序列是不同的。

5.3 数据通路的功能和基本结构

5.3.1 数据通路的功能

数据在功能部件之间传送的路径称为数据通路。 数据通路描述了信息从什么地方开始,中间经过哪个寄存器或多路开关,最后传送到哪个寄存器,这些都需要加以控制。

数据通路中专门进行数据运算的部件称为执行部件功能部件。 数据通路由控制部件控制。 数据通路的功能是实现CPU内部的运算器与寄存器及寄存器之间的数据交换

5.3.2 数据通路的基本构成

内部总线是指同一部件,如CPU内部连接各寄存器及运算部件之间的总线;
系统总线是指同一台计算机系统的各部件,如CPU、内存、通道和各类I/O接口间相互连接的总线。

数据通路的基本结构主要有以下几种:

1)CPU 内部单总线方式。

将所有寄存器的输入端和输出端都连接到一条公共通路上,这种结构比较简单,但数据传输存在较多的冲突现象,性能较低。 连接各部件的总线只有一条时,称为但总线结构; CPU中有两条或者更多的总线时,构成双总线结构或多总线结构。图5.7所示的是CPU内部总线的数据通路和控制信号。

2)CPU内部三总线方式。

将所有寄存器的输入端和输出端都连接到多条公共通路上,相比之下,单总线中一个时钟内只允许传一个数据,因而指令执行效率较低,因此采用多总线方式,同时在多个总线上传送不同的数据,提高效率。

3) 专用数据通路方式。

格局指令执行过程中的数据和地址的流动方向安排连接线路,避免使用共享的总线,性能较高,但硬件量大。

典型例题如下

解答如下
其中 取指令阶段是公共部分,几乎所有的微操作序列都需要。本题的特殊之处是对于一个加数来说是寄存器间接寻址,R0.

需要注意的是:

MDRoutE,后面加个字母E表示的是MDR和 主存之间的数据通路控制信号;没有字母E,比如MDRout指的是MDR向数据总线的连通,不是和主存之间。

5.4 控制器的功能和工作原理

微程序控制器

微指令的设计

5.5. 指令流水线

5.5.1 指令流水线的基本概念

计算机的流水线把一个重复的过程分解为若干子过程,每个子过程与其他子过程并行执行。 由于采用流水线技术只需要增加少量硬件就能把计算机的运算速度提升几倍,因此成为计算机中普遍使用的一种并行处理技术。

流水线的表示方式

通常用时空图来直观地描述流水线的工作过程。

在时空图中,横坐标表示时间,即输入流水线中的各个任务在流水线中所经过的时间。流水线中各个流水段的执行时间都相等时,横坐标就被分割成相等长度的时间段。纵坐标表示空间,即流水线的每个流水段对应各执行部件

3 流水线的特点

和传统的串行执行方式相比,采用流水线方式具有如下特点:
1) 把一个任务(一条指令或者一个)分解为几个有联系的子任务,每个子任务由一个专门的功能部件来执行,并依靠多个功能部件并行工作来缩短程序的执行时间。

2)流水线每个功能段部件后面都要有一个缓冲寄存器(或称为锁存器),其作用是保存本流水段的执行结果,供给下一流水段使用。

3) 流水段中各功能段的时间应尽量相等,否则将引起堵塞、断流。

4) 只有连续不断地提供同一种任务时才能发挥流水线的效率,所以在流水线中处理的必须是连续任务。

5)流水线由装入时间和排空时间。装入时间是指第一个任务进入流水线到输出流水线的时间。排空时间是指最后一个任务进入流水线到输出流水线的时间。

5.5.2 流水线的分类

按照不同的分类标准,可以把流水线份成多种不同的种类。

1 按使用级别分
部件功能级流水:将复杂的算术逻辑运算组成流水线工作方式。
例如,将浮点数加法操作分车给求阶差、对阶、尾数相加级结果规格化等4个子过程。

处理机级流水:把一条指令解释过程分成多个子过程,比如取指、译码、执行、访存和写回5个子过程。

处理机间流水:是一种宏流水,其中每个处理机完成某一专门任务,各个处理机得到的结果需要存放在与下一个处理机共享的存储器中。

2 按完成功能分

单功能流水: 只能实现一种固定的专门功能的流水线

多功能流水: 通过各段间的不同连接方式可以同时或不同时地实现多种功能的流水线。

3 按连接方式分

静态流水线: 在同一时间内,流水线的各段只能按同一种功能的连接方式工作。

动态流水线: 在同一时间内,当某些段正在实现某种运算时,另一些段却正在进行另一种运算

4按有无反馈信号分

线性流水线: 从输入到输出,每个功能段只允许经过一次,不存在反馈回路。

非线性流水线:存在反馈回路,从输入到输出的过程中,某些功能段将数次通过流水段,这种流水线适合进行线性递归的运算。

5.5.3 影响流水线的因素

其中数据相关也叫数据冒险,指的是在一个程序中,下一条指令会用到这一条指令计算出的结果。

计算机组成原理第5章-中央处理器相关推荐

  1. (计算机组成原理)第五章中央处理器-第五节2:指令流水线影响因素和分类及多发技术

    文章目录 一:影响指令流水线的因素 (1)结构相关(资源冲突) (2)数据相关(数据冲突) (3)控制相关(控制冲突) 二:流水线的分类 (1)根据流水线使用的级别不同分类 (2)根据流水线可以完成的 ...

  2. (计算机组成原理)第五章中央处理器-第四节4:微程序控制单元设计

    文章目录 一:微程序控制单元设计步骤 第一步:分析每个阶段的微操作序列 第二步:写出对应机器指令的微操作命令及节拍安排 第三步:确定微指令格式 第四步:编写微指令码点 二:微程序设计分类 (1)静态微 ...

  3. pla是什么计算机原理,计算机组成原理第05章 中央处理器(2硬布线控制器与PLA控制器).ppt...

    <计算机组成原理第05章 中央处理器(2硬布线控制器与PLA控制器).ppt>由会员分享,可在线阅读,更多相关<计算机组成原理第05章 中央处理器(2硬布线控制器与PLA控制器).p ...

  4. pla是什么计算机原理,计算机组成原理第05章 中央处理器(2硬布线控制器与PLA控制器).ppt...

    计算机组成原理第05章 中央处理器(2硬布线控制器与PLA控制器) 第五章 中央处理器 CPU的功能和组成 指令周期 时序产生器 微程序控制器 微程序设计技术 硬布线控制器 5.4 硬布线控制器(组合 ...

  5. 计算机组成原理六单元答案,计算机组成原理第六章中央处理器(含答案)

    第六章 中央处理器 6.1 CPU组成与功能随堂测验 1.控制CPU内数据通路传送的部件是( ) (单选) A.程序控制器 B.时序产生器 C.指令译码器 D.操作控制器 2.下列可能是CPU组成部件 ...

  6. (王道计算机组成原理)第五章中央处理器-第三节1:CPU内部单总线数据通路中数据的流动

    王道考研复习指导获取:密码7281 专栏目录首页:[专栏必读]王道考研408计算机组成原理万字笔记.题目题型总结.注意事项.目录导航和思维导图 文章目录 本节思维导图 一:有关概念 (1)CPU中数据 ...

  7. 计算机组成原理 第五章 中央处理器

    5.1 CPU的功能和基本结构 中央处理器由控制器和运算器两部分组成,其中,控制器负责协调并控制计算机各部件执行程序的指令序列(取指令.分析指令和执行指令),而运算器的功能是对数据进行加工. CPU的 ...

  8. 【连载】计算机组成原理 --- 第五章 中央处理器

    本章主要内容: (一)CPU的功能和基本结构 (二)指令执行过程 (三)数据通路的功能和基本结构 (四)控制器的功能和工作原理 1. 硬布线控制器 2. 微程序控制器 微程序,微指令和微命令,微指令格 ...

  9. 9 计算机组成原理第五章 中央处理器 指令流水线

    文章目录 1 指令流水线基本概念性能指标 1.1 指令流水的定义 1.1.1 指令分法 1.1.2 指令执行时间 1.2 流水线的表示方法 1.3 流水线的性能指标 2 指令流水线影响因素分类 2.1 ...

最新文章

  1. hibernate 第三天
  2. MikuMikuDance 6 菜单汉化补丁
  3. 程序员下班不关电脑? | 每日趣闻
  4. java:final,finally,finalize区别
  5. svn: Can't convert string from 'UTF-8' to native encoding
  6. [官方教程] [ES4封装教程]1.使用 VMware Player 创建适合封装的虚拟机
  7. #1182 : 欧拉路·三(有向图的欧拉路)
  8. js超出文字个数展示省略号
  9. Packet for query is too large(mysql写入数据过大)
  10. java抓取新闻_【图片】【抓取】Java获取各大网站新闻【java吧】_百度贴吧
  11. Python深度学习:No handles with labels found to put in legend.
  12. python格式化字符串_Python字符串格式化问题:%、format()与f-strings
  13. C语言中多维数组的内存分配和释放(malloc与free)(转)
  14. javascript数据结构与算法--散列
  15. 汉字转拼音 名字转拼音 多音字姓名
  16. winform html5 ui,C# WinForm UI 设计方法
  17. 小米网络信号测试软件,WiFi测速
  18. Qt: 信号与槽机制
  19. word插入图片之后只显示一部分的解决方法
  20. Python xlwt 操作 excel 表格基础(三):单元格格式、字体格式、对齐方式、边框及填充等

热门文章

  1. Linux 硬件信息命令
  2. CSS 魔法系列:纯 CSS 绘制基本图形(圆、椭圆等)
  3. 教你10招最有效防电脑辐射方法
  4. 防URL参数攻击方案
  5. smtplib python教程_python使用smtplib模块发送邮件
  6. android phone驱动_一文带你掌握 Android 系统架构
  7. 重庆理工大学计算机学院学概率论,重庆理工大学概率论试卷及答案.doc
  8. 文档上传下载 php开源,PHP文件的上传下载 - PHP开发学习门户的个人空间 - OSCHINA - 中文开源技术交流社区...
  9. 【Matlab】访问提取时序数据
  10. 7.5 程序示例--PCA for 数据可视化-机器学习笔记-斯坦福吴恩达教授