【计算机系统结构期末复习】第三章

2024-06-20 23:12

本文主要是介绍【计算机系统结构期末复习】第三章,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

系列文章

第一章
第二章


目录

  • 系列文章
  • 1. 选择题
    • 1.1 解释下列术语
    • 1.2 流水线技术的特点
    • 1.3 解决流水线瓶颈问题的常用方法
  • 2. 计算题
    • 2.1 流水线的性能指标
      • 2.1.1 吞吐率
      • 2.1.2 加速比
      • 2.1.3 效率
      • 2.1.4 例题
        • 例1
        • 例2
        • 例3
    • 2.2 向量处理机
      • 2.2.1 链接技术
      • 2.2.2 例1
      • 2.2.3 例2
  • 3. 综合题
    • 3.1 简述三种向量处理方式,它们对向量处理机的结构要求有何不同?
    • 3.2 可采用哪些方法来提高向量处理机的性能?


1. 选择题

(考概念)

1.1 解释下列术语

  • 流水线:将一个重复的时序过程,分解成为若干个子过程,而每一个子过程都可有效地在其专用功能段上与其它子过程同时执行。
  • 单功能流水线:指流水线的各段之间的连接固定不变、只能完成一种固定功能的流水线。
  • 多功能流水线:指各段可以进行不同的连接,以实现不同的功能的流水线。
    静态流水线:指在同一时间内,多功能流水线中的各段只能按同一种功能的连接方式工作的流水线。当流水线要切换到另一种功能时,必须等前面的任务都流出流水线之后,才能改变连接。
  • 动态流水线:指在同一时间内,多功能流水线中的各段可以按照不同的方式连接,同时执行多种功能的流水线。它允许在某些段正在实现某种运算时,另一些段却在实现另一种运算。
  • 部件级流水线:把处理机中的部件进行分段,再把这些部件分段相互连接而成。它使得运算操作能够按流水方式进行。这种流水线也称为运算操作流水线。
  • 处理机级流水线:又称指令流水线。它是把指令的执行过程按照流水方式进行处理,即把一条指令的执行过程分解为若干个子过程,每个子过程在独立的功能部件中执行。
  • 处理机间流水线:又称为宏流水线。它是把多个处理机串行连接起来,对同一数据流进行处理,每个处理机完成整个任务中的一部分。前一个处理机的输出结果存入存储器中,作为后一个处理机的输入。
  • 线性流水线:指各段串行连接、没有反馈回路的流水线。数据通过流水线中的各段时,每一个段最多只流过一次。
  • 非线性流水线:指各段除了有串行的连接外,还有反馈回路的流水线。
  • 顺序流水线:流水线输出端任务流出的顺序与输入端任务流入的顺序完全相同。
  • 乱序流水线:流水线输出端任务流出的顺序与输入端任务流入的顺序可以不同,允许后进入流水线的任务先完成。这种流水线又称为无序流水线、错序流水线、异步流水线。
  • 吞吐率:在单位时间内流水线所完成的任务数量或输出结果的数量。
  • 流水线的加速比:使用顺序处理方式处理一批任务所用的时间与按流水处理方式处理同一批任务所用的时间之比。
  • 流水线的效率:即流水线设备的利用率,它是指流水线中的设备实际使用时间与整个运行时间的比值。
  • 数据相关:考虑两条指令i和j,i在j的前面,如果下述条件之一成立,则称指令j与指令i数据相关:
    • 指令j使用指令i产生的结果;
    • 指令j与指令k数据相关,而指令k又与指令i数据相关。
  • 名相关:如果两条指令使用了相同的名,但是它们之间并没有数据流动,则称这两条指令存在名相关。
  • 控制相关:是指由分支指令引起的相关。它需要根据分支指令的执行结果来确定后面该执行哪个分支上的指令。
  • 反相关:考虑两条指令i和j,i在j的前面,如果指令j所写的名与指令i所读的名相同,则称指令i和j发生了反相关。
  • 输出相关:考虑两条指令i和j,i在j的前面,如果指令j和指令i所写的名相同,则称指令i和j发生了输出相关。
  • 换名技术:名相关的两条指令之间并没有数据的传送,只是使用了相同的名。可以把其中一条指令所使用的名换成别的,以此来消除名相关。
  • 结构冲突:因硬件资源满足不了指令重叠执行的要求而发生的冲突。
  • 数据冲突:当指令在流水线中重叠执行时,因需要用到前面指令的执行结果而发生的冲突。
  • 控制冲突:流水线遇到分支指令或其它会改变PC值的指令所引起的冲突。
  • 定向:用来解决写后读冲突的。在发生写后读相关的情况下,在计算结果尚未出来之前,后面等待使用该结果的指令并不见得是马上就要用该结果。如果能够将该计算结果从其产生的地方直接送到其它指令需要它的地方,那么就可以避免停顿。
  • 写后读冲突:考虑两条指令i和j,且i在j之前进入流水线,指令j用到指令i的计算结果,而且在i将结果写入寄存器之前就去读该寄存器,因而得到的是旧值。
  • 读后写冲突:考虑两条指令i和j,且i在j之前进入流水线,指令j的目的寄存器和指令i的源操作数寄存器相同,而且j在i读取该寄存器之前就先对它进行了写操作,导致i读到的值是错误的。
  • 写后写冲突:考虑两条指令i和j,且i在j之前进入流水线,,指令j和指令i的结果单元(寄存器或存储器单元)相同,而且j在i写入之前就先对该单元进行了写入操作,从而导致写入顺序错误。这时在结果单元中留下的是i写入的值,而不是j写入的。
  • 链接技术:具有先写后读相关的两条指令,在不出现功能部件冲突和Vi冲突的情况下,可以把功能部件链接起来进行流水处理,以达到加快执行的目的。
  • 分段开采:当向量的长度大于向量寄存器的长度时,必须把长向量分成长度固定的段,然后循环分段处理,每一次循环只处理一个向量段。
  • 半性能向量长度:向量处理机的性能为其最大性能的一半时所需的向量长度。
  • 向量长度临界值:向量流水方式的处理速度优于标量串行方式的处理速度时所需的向量长度的最小值。

1.2 流水线技术的特点

  • 流水线把一个处理过程分解为若干个子过程,每个子过程由一个专门的功能部件来实现
  • 流水线中各段时间应该尽可能相等。否则将引起流水线堵塞、断流,因为时间长的段将成为流水线的瓶颈
  • 流水线每一个功能部件的后面都要有一个缓冲寄存器(锁存器),称为流水线寄存器,其作用是在相邻的两段之间传送数据,以保证后面要用到的数据,并把各段的处理工作相互隔离。
  • 流水线技术适合于大量重复的时序过程
  • 流水线需要有通过时间(第一个任务从进入流水线到流出结果到时间段)和排空时间(最后一个任务进入流水线到流出结果的时间段)。经过通过时间后,流水线进入满载工作状态,整条流水线的效率才能够得到充分发挥。

在这里插入图片描述


1.3 解决流水线瓶颈问题的常用方法

  1. 细分瓶颈段
  2. 重复设置瓶颈段

2. 计算题

2.1 流水线的性能指标

2.1.1 吞吐率

在这里插入图片描述

在这里插入图片描述
区分实际吞吐率和最大吞吐率:

  • 流水线的实际吞吐率要小于最大吞吐率:它除了和每个段的时间有关,还与流水线的段数k,输入到流水线的任务等有关,只有当n远大于k时,二者才相等。
  • 流水线的最大吞吐率相当于流水线本身的属性,而流水线的实际吞吐率是一种动态的变化。

2.1.2 加速比

加速比 = 不使用流水线所用的时间/使用流水线所用的时间 (大于等于1)
在这里插入图片描述
在这里插入图片描述


2.1.3 效率

效率:流水线中的设备实际使用时间与整个运行时间的比值,即流水线利用率
从流水线的时空图看,是阴影部分的面积比上整个的面积
在这里插入图片描述
在这里插入图片描述


2.1.4 例题

例1

在这里插入图片描述
在这里插入图片描述

  • 静态流水线中,前一种功能的最后一条指令排空后,才能切换流水线

解:
先画出时空图
在这里插入图片描述

  • 先计算加法。分别计算出 A1+B1 、 A2+B2、 A3+B3 、 A4+B4 。得到的输出分别是 A 、B、C、D。所以总共会进行4次加法
  • 因为是静态流水线,所以在加法都执行完毕后才能执行乘法
  • 计算乘法的时候,为了避免相关性,先分别计算 A * B 和 C * D。然后再将这两个结果相乘。所以总共会进行3次乘法

再进行计算
在这里插入图片描述

  • 吞吐率 = (输出数) / (横坐标长度△t)
  • 加速比 = (阴影部分的格子数)/ (横坐标长度)
  • 效率 = (阴影部分的格子数)/ (所有格子数)

例2

在这里插入图片描述

在这里插入图片描述
解:
在这里插入图片描述

注意:

  • 和静态流水线不同,动态流水线中不用等前一个功能全部流出流水线再进行下一个功能
  • 但是要注意指令前后之间的相关性。比如这里的C+D不能提前,要等到D完全计算出之后才可以

例3

有一条静态多功能流水线出5段组成(如图3.45所示加法用1、3、4、5段,乘法用1、2、5段,第3段的时间为2△t ,其余各段的时间均△t,
而且流水线的输出端或暂存于相应的流水寄存器中。现要在该流水线上计算Πi=1-4(Ai+Bi),画出其时空图,并计算其吞吐率、加速比和效率
在这里插入图片描述

吞吐量:TP=7/18△t
加速比:S=(5*4+3*3)/18=29/18
效率:E=29/(5×18)=29/90

2.2 向量处理机

在这里插入图片描述


2.2.1 链接技术

在这里插入图片描述


2.2.2 例1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


2.2.3 例2

在CRAY-1计算机上按照链接方式执行下述4条间量指令(括号中给出了相应功能部件的执行时间),如果向量寄存器和功能部件之间的数据传送需要1拍,试求此链接流水线的通过时间是多少拍?如果向量长度为64,则需多少拍才能得到全部结果?
V0<- 存储器 (从存储器中取数:7拍)
V2<- V0+V1(向量加:3拍)
V3<- V2<A3(按(A3)左移:4拍)
V5<-V3 ∧V4(向量逻辑乘:2拍)

在这里插入图片描述

链接流水线的通过时间:(7+1)+(1+3+1)+(1+4+1)+(1+2+1)=23
如果向量长度是64需要23+(64-1)=86拍得到全部结果

3. 综合题

3.1 简述三种向量处理方式,它们对向量处理机的结构要求有何不同?

  1. 横向处理方式:若向量长度为N,则水平处理方式相当于执行N次循环。若使用流水线,在每次循环中可能出现数据相关和功能转换,不适合对向量进行流水处理。
  2. 纵向处理方式:将整个向量按相同的运算处理完毕之后,再去执行其他运算。适合对向量进行流水处理,向量运算指令的源/目向量都放在存储器内,使得流水线运算部件的输入、输出端直接与存储器相联,构成M-M型的运算流水线。
  3. 纵横处理方式:把长度为N的向量分为若干组,每组长度为n,组内按纵向方式处理,依次处理各组,组数为「N/n」,适合流水处理。可设长度为n的向量寄存器,使每组向量运算的源/目向量都在向量寄存器中,流水线的运算部件输入、输出端与向量寄存器相联,构成R-R型运算流水线。

3.2 可采用哪些方法来提高向量处理机的性能?

  1. 设置多个功能部件,使它们并行工作;
  2. 采用链接技术,加快一串向量指令的执行;
  3. 采用循环开采技术,加快循环的处理;
  4. 采用多处理机系统,进一步提高性能

这篇关于【计算机系统结构期末复习】第三章的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1079524

相关文章

可视化实训复习篇章

前言: 今天,我们来学习seaborn库可视化,当然,这个建立在Matplotlib的基础上,话不多说,进入今天的正题吧!当然,这个是《python数据分析与应用》书中,大家有需求的可以参考这本书。 知识点: Matplotlib中有两套接口分别是pyplot和pyylab,即绘图时候主要导入的是Matplotlib库下的两个子模块(两个py文件)matplotlib.pyplot和matp

数据库期末复习知识点

A卷 1. 选择题(30') 2. 判断范式(10') 判断到第三范式 3. 程序填空(20') 4. 分析填空(15') 5. 写SQL(25') 5'一题 恶性 B卷 1. 单选(30') 2. 填空 (20') 3. 程序填空(20') 4. 写SQL(30') 知识点 第一章 数据库管理系统(DBMS)  主要功能 数据定义功能 (DDL, 数据定义语

复习2-20240624

vscode 使用 Javabean (封装性) public class Demo01 {/*1.原则 : 字母 数字 $ _ 中文 除了 这五个 其它都不可以2. 细则 : 数字 不能 开头%hbviunh &hfiureh )nhjrn 7487j -ni +hbiu tgf h

操作系统实训复习笔记(1)

目录 Linux vi/vim编辑器(简单) (1)vi/vim基本用法。 (2)vi/vim基础操作。 进程基础操作(简单) (1)fork()函数。 写文件系统函数(中等) ​编辑 (1)C语言读取文件。 (2)C语言写入文件。 1、write()函数。  读文件系统函数(简单) (1)read()函数。 作者本人的操作系统实训复习笔记 Linux

百度OCR识别结构结构化处理视频

https://edu.csdn.net/course/detail/10506

微信小程序开发必知必会:文件结构和基本配置

一、微信小程序基本文件结构 1.  project.config.json:项目的基本配置文件,包括项目名称、appid、项目目录、页面文件夹等。     {"setting": {"urlCheck": false,"es6": true,"postcss": true,"nodeModulesPath": "D:\\\\node_modules"},"appid": "wxd678e

【云计算 复习】第1节 云计算概述和 GFS + chunk

一、云计算概述 1.云计算的商业模式 (1)软件即服务(SaaS) 有些景区给游客提供烧烤场地,游客需要自己挖坑或者砌烧烤台,然后买肉、串串、烧烤。 (2)平台即服务(PaaS) 有些景区给游客提供烧烤场地,同时搭建好烧烤台,游客只需要自己带食材和调料、串串、烧烤。 (3)基础设施即服务(IaaS) 有些景区给游客提供烧烤场地,同时搭建好烧烤台,还有专门的厨师来烧烤,用户不需要关心前面的所有

数据库原理与安全复习笔记(未完待续)

1 概念 产生与发展:人工管理阶段 → \to → 文件系统阶段 → \to → 数据库系统阶段。 数据库系统特点:数据的管理者(DBMS);数据结构化;数据共享性高,冗余度低,易于扩充;数据独立性高。DBMS 对数据的控制功能:数据的安全性保护;数据的完整性检查;并发控制;数据库恢复。 数据库技术研究领域:数据库管理系统软件的研发;数据库设计;数据库理论。数据模型要素 数据结构:描述数据库

利用结构体作为函数参数时结构体指针的定义

在利用结构体作为函数的参数进行传递时,容易犯的一个错误是将一个野指针传给函数导致错误。 #include <stdio.h>#include <math.h>#include <malloc.h>#define MAXSIZE 10typedef struct {int r[MAXSIZE]; //用于存储要排序的数组,r[0]作为哨兵或者临时变量int length;

Modbus初学者教程,第三章:modbus寄存器说明

第三章:modbus寄存器说明 寄存器种类 Modbus协议中一个重要的概念是寄存器,所有的数据均存放于寄存器中。Modbus寄存器是指一块内存区域。Modbus寄存器根据存放的数据类型以及各自读写特性,将寄存器分为4个部分,这4个部分可以连续也可以不连续,由开发者决定。寄存器的意义如下表所示。 Modbus协议定义了设备间的数据传输方式,包括数据格式和通信规则。Modbus寄存器是协议中用