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

news2025/1/11 20:04:06

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

  • 前言
  • 推荐
  • 押题
    • 公式
  • 期末复习
    • 重点
    • 第1章 计算机体系结构的基本概念
      • 1.3 定量分析技术
        • 1.3.1计算机系统设计的定量原理
    • 第2章 计算机指令集结构
    • 第3章 流水线技术
      • 3.2 流水线的性能指标
        • 3.2.1 吞吐率
        • 3.2.2 加速比
        • 3.2.3 效率
        • 3.2.4 流水线性能分析举例
      • 3.3 流水线的相关与冲突
        • 3.3.2 相关与流水线冲突
      • 3.5 向量处理机
        • 3.5.1 向量处理方式
        • 3.5.2 向量处理机的结构
        • 3.5.3 提高向量处理机性能的方法
        • 3.5.4 向量处理机的性能评价
    • 第4章 指令集并行
      • 4.2 指令的动态调度
        • 4.2.1 动态调度的基本思想
        • 4.2.2 Tomasulo算法
    • 第5章 存储系统
      • 5.1 存储系统的层次结构
      • 5.2 Cache基本知识
        • 5.2.7 Cache性能分析
        • 5.2.8 改进Cache性能
      • 5.3 降低Cache不命中率
      • 5.4 减少Cache不命中开销
      • 5.5 减少命中时间
    • 第6章 输入/输出系统
      • 6.5 通道处理机
        • 6.5.1 通道的作用与功能
        • 6.5.4 通道流量分析
  • 最后

前言

2023-6-24 12:01:01

本专栏将于考试期间设置为付费
考试结束后关闭付费
时间为2023/6/26

以下内容源自《【计算机系统结构】》
仅供学习交流使用

推荐

第一章 作业(479)【计算机系统结构】

第三章 作业(7BF)【计算机系统结构】

实验1 流水线及流水线中的冲突【计算机系统结构】

实验2 指令调度和延迟分支【计算机系统结构】

实验3 Tomasulo算法【计算机系统结构】

实验4 Cache性能分析【计算机系统结构】

第五章 作业(149A)【计算机系统结构】

第六章 习题(6789B)【计算机系统结构】

押题

押题可能不准确

根据复习重点

5选择题(10)
一 二 三 五 六 各1题

4计算题(50)
一:阿贝达尔定理 CPU性能公式 (二选一)√ 例1.1 例1.2 例1.3 题1.7 题1.9
三:流水线(没考,就在综合题) 向量处理机√ 例3.1 例3.2 例3.3 题3.11 题3.15
四:Tomasulo算法(没考,就在综合题) 例4.1 例4.2
五:cache性能 平均访问时间 CPU时间公式(没考,就在综合题)例5.1 例5.2 例5.3 题5.10
六:通道流量分析 √ 题6.7 题6.8 题6.9 题6.11

2综合题(40)

实验1 流水线及流水线中的冲突【计算机系统结构】(没考,就在计算题)

实验2 指令调度和延迟分支【计算机系统结构】 √

实验3 Tomasulo算法【计算机系统结构】 (没考,就在计算题)

实验4 Cache性能分析【计算机系统结构】(没考,就在计算题)

公式

1.3.1 计算机系统设计的定量原理

阿贝达尔定理
加速比=1/((1-可改进比例)+可改进比例/部件加速比)

CPU性能公式
CPU时间=执行程序所需的时钟周期数×时钟周期事件
CPI每条指令的平均周期数=执行程序所需的时钟周期数/所执行的指令条数
CPU时间=IC×CPI×时钟周期事件
IC为所执行的指令条数

3.2 流水线的性能指标

吞吐率TP=n/Tk
n为任务数,Tk是处理完成n和任务所用时间

加速比S=Ts/Tk
Ts是顺序执行所用时间,Tk是使用流水线执行所用时间
如果流水线个各段时间相等,都是Δt,Tk=(k+n-1)Δt
加速比S=nkΔt/(k+n-1)Δt=nk/(k+n-1)
如果流水线各段时间不相等,主要取决于瓶颈段
一条k段流水线完成n个连续任务
Ts=n*∑[i=1~k]Δti
Tk=∑[i=1~k]Δti+(n-1)max(Δt1,Δt2,...,Δtk)  //第一个任务建立时间+n-1个任务的流出时间
S=Ts/Tk

效率
E=n个任务实际占用的时空区/k个段总的时空区(树形结合的方法计算)

3.5.4 向量处理机的性能评价

不考:略

5.1.2存储系统的性能参数

M1(T1,S1,C1)<-->M2(T2,S2,C2)

存储容量S
S=S2
存储系统的平均每位价格C
C=(C1S1+C2S2)/(S1+S2)
命中率H
H=N1/(N1+N2)
N1和N2分别为访问M1和M2的次数
不命中率F=1-H
平均访存时间Ta
Ta=T1+FTm
Tm为不命中开销

5.2.7 Cache性能分析

平均访存时间=命中时间+不命中率×不命中开销
CPU时间=(CPU执行周期数+存储器停顿周期数)×时钟周期时间 (5.1)
存储器停顿周期数=访存次数×不命中率×不命中开销 (5.2)

CPU时间=IC×(CPI+访存次数/指令数×不命中率×不命中开销)×时钟周期时间
=IC×(CPI+每条指令的平均访存次数×不命中率×不命中开销)×时钟周期时间(5.3)
=IC×(CPI×时钟周期时间+每条指令的平均访存次数×不命中率×不命中开销×时钟周期时间)  
一般会把 “不命中开销×时钟周期时间” 代为“题目中的不命中开销(时间单位)”
例5.2中就是如此 70ns代替公式中的“不命中开销×时钟周期时间” 题5.10亦是如此 

6.5.4 通道流量分析

说明
见名知意		BYTE字节 SELECT选择 BLOCK数组(块)
md语法		~下标~		^上标^

0.参数定义
Ts:设备选择时间。从通道响应设备发出的数据传送请求开始,到通道实际为这台设备传送数据所需要的时间。
Td:传送一个字节所用的时间。
p:在一个通道上连接的设备台数,且这些设备同时都在工作。
n:每台设备传送的字节数,这里假设每台设备传送的字节数都相同l。
k:数组多路通道传输的一个数据块中包含的字节数。在一般情况下,k<n。对于磁盘、磁带等磁表面存储器,通常h =512。
T:通道完成全部数据传送工作所需要的时间。

1.字节多通道选择
p台设备每台传送n个数据总共所需的时间为
T~BYTE~ =(Ts+Td)×p×n 	(6.2)
=(Ts/1+Td)×p×n 
其最大流量为
f~MAX-BYTE~=pn/[(Ts+Td)pn)=1/(Ts +Td)	(6.3)
根据字节多路通道的工作原理可知,它的实际流量是连接在这个通道上的所有设备的数据传输率之和,即
f~BYTE~=∑[i=1~p]fi	(6.4)
其中fi为第i台设备的实际数据传输率。下同。

2.选择通道
选择通道在一段时间内只能单独为一台高速外设服务,当这台设备的数据传建完成后,通道才能为另一台设备服务。
选择通道实际上是逐个为物理上连瑞外设服务的。
其中Di表示通道正在为第i台设备服务,Td1=Td2=…=Tdn=Td。p台设备每台传送n个数据总共所需的时间为
T~SELECT~= pTs+pnTd		(6.5)
=(Ts/n+Td)×p×n 
其最大流量为
T~MAX-SELECT~=pn/(pTs+pnTd	)=1/(Ts/n+Td)		(6.6)

3.数组多路通道
通道每连接一台高速设备,传送一个数据块(设为k个字节),传送完成后,又与另一台高速设备连接,再传送一个数据块……
因此在图6.18中,在每一个Ts,之后,都有k个Td,(Td1=Td2=…=Tdk=Td)。p台设备每台传送n个数据总共所需的时间为
T~BLOCK~ = pnTs/k+pnTd			(6.7)
=(Ts/k+Td)×p×n 
其最大流量为
T~MAX-BLOCK~=pn/T(pnTs/k+pnTd)=1/(Ts/k+Td)		(6.8)

4.选择设备的连接
对于选择通道和数组多路通道,在一段时间内,一个通道只能为一台设备传送数据。此时通道的实际流量就等于该设备的数据传输率。
因此,这两种通道的实际流量就是连接在这个通道上的所有设备中数据流量最大的那一个:
f~BLOCK~ ≤max[i=1~p]fi
f~SELECT~ ≤max[i=1~p]fi	(6.9)
为了保证通道能够正常工作而不丢失数据,各种通道的实际流量应该不大于通道的最大流量,即应该满足下列不等式:
f~BYTE~ ≤ f~MAX-BYTE~
f~BLOCK~ ≤ f~MAX-BLOCK~
f~SELECT~ ≤ f~MAX-SELECT~		(6.10)

两边的差值越小,通道的利用率就越高。当两边相等时,通道处于满负荷工作状态。
为防止数据丢失,在实际设计通道的最大流量时,还应留有一定的余量。

期末复习

推荐一:

博主:很注重数学和821 id:weixin_43633784

专栏:

计算机系统结构

内容:

系统结构期末复习笔记(一)计算机系统机构的基本概念

系统结构期末复习(二)计算机指令集结构

系统结构期末复习(三)流水线技术

系统结构期末复习(四)指令级并行

系统结构期末复习(五)存储系统

系统结构期末复习(六)输入/输出系统

推荐二:

博主:naumy id:naumy

专栏:

计算机系统结构

内容:

计算机系统结构课后题目答案

第一章 计算机系统结构的基础知识

第二章 指令系统的设计

第三章流水线技术

第七章存储系统

第八章输入输出系统

2023-6-24 12:01:05

重点

2023-6-25 09:19:34

备忘录所记

5选择题 10
一 二 三 五 六 概念 
章节概念习题
五:如何提高cache性能

4计算题 50
2综合题 40 简单计算与概念分析与总结 实验
一 
阿贝达尔定理 基本内容
CPU性能公式 影响因素
二选一

三 
流水线的性能因素
如何提高性能 分析流水线
流水线中相关与冲突
向量处理机 能不能采用
第三章 作业

四
动态调度技术 
Tomasula算法

五
5.1概念 
5.2—5.5
计算分析cache性能
平均访问时间 CPU时间公式

六
IO基本概念 
通道处理机的内容
控制外设的方法及其问题
流量分析

集百家之长 成一家之言

以下内容截取自优秀博客
更为详细的内容可以自行阅读

第1章 计算机体系结构的基本概念

1.3 定量分析技术

1.3.1计算机系统设计的定量原理

  1. 以经常性事件为重点

  2. Amdahl定律

    • 内容:加快某部件执行速度所能获得的系统性能加速比,受限于该部件的执行时间占系统中总执行时间的百分比。

    • 用途:可以具体计算当对计算机系统中的某个部分进行改进后,能获得多少总性能的提高。

    • 加速比公式:
      在这里插入图片描述

    • 加速比影响因素

    1. 可改进比例:在改进前的系统中,可改进部分的执行时间在总的执行时间中所占的比例。(<=1)
    2. 部件加速比:可改进部分改进后性能提高的倍数(>1)
      改进后的总执行时间:
      在这里插入图片描述
    • 系统加速比公式:
      在这里插入图片描述

    • 性能改进的递减规则:如果仅针对计算任务中的一部分进行性能改进,则改进的越多,所得到的整体的性能提高就越有限。(可以从公式分析,可改进的比例逐步减小,对系统总时间的影响越来越小。)

    • 重要推论:如果只针对整个任务的一部分进行改进和优化,那么所获的的加速比不超过1/(1-可改进比例)

  3. CPU性能公式(针对可改进比例难以计算的问题)
    在这里插入图片描述
    每个影响因素后面的决定条件
    在这里插入图片描述

只要改进任何一个性能都可以提高CPU的性能。不过参数具有关联性,把关联性限制在可控范围内即可。
计算CPU时钟周期的方法:

在这里插入图片描述
ICi是程序执行过程中第i种指令出现的次数,CPIi是执行第i种指令所需的时钟周期数,n为指令总数。

在这里插入图片描述

在这里插入图片描述

  1. 程序的局部性原理
    时间局部性和空间局部性
    存储层次的基础

第2章 计算机指令集结构

系统结构期末复习(二)计算机指令集结构

第3章 流水线技术

3.2 流水线的性能指标

3.2.1 吞吐率

在这里插入图片描述
2.1.1 吞吐率的定义

在这里插入图片描述
2.1.2 各段时间均相等的流水线
在这里插入图片描述

一般流水线的分级不会进行更改了也不会有特别多的级别进行流水,所以k相对于n来说可以忽略不计,前面的一小部分的执行是和整个流水线要执行多少任务无关的。

任务越多流水线的吞吐率越高,如果任务数量足够多,那么每隔1/deta(t)就可以完成一个任务。

在这里插入图片描述
流水线的实际吞吐率要小于最大吞吐率:它除了和每个段的时间有关,还与流水线的段数k,输入到流水线的任务等有关,只有当n远大于k时,二者才相等。

流水线的最大吞吐率相当于流水线本身的属性,而流水线的实际吞吐率是一种动态的变化。

2.1.3 各段时间不完全相等的流水线

在这里插入图片描述

第一部分是整个一条指令的完整执行时间下的时间(相当于把后面多余的先移到前面进行计算),后面剩下的时间计算就是最长的一段的时间乘上n-1 个任务,也可以从通过时间的角度进行考虑,通过时间指第一条指令完整的通过流水线所用的时间,而第一条指令完全流出后CPU才处于满载状态,所以后面是流水技术真正的实现时刻。

流水线的最大吞吐率与实际吞吐率由最长的那个段决定,这个段就成了整个流水线的瓶颈,这时瓶颈段一直处于忙碌状态,而其余各段有许多时间时空闲的,硬件使用效率低。

2.1.4 解决流水线常用问题的基本方法

  1. 细分瓶颈段
    在这里插入图片描述
  2. 重复设置瓶颈段
    由于结构等方面的原因无法再细分瓶颈段时,可以通过重复设置瓶颈段的方法来消除瓶颈。缺点:控制逻辑比较复杂,所需硬件增加。
    在这里插入图片描述

重复设置瓶颈段不是将S3部分重复执行,也不是简单的将S3部分再分成3个部分每个部分分开流水,而是在前面在执行第一条指令的瓶颈段时不让第二条,第三条指令流入的时候让它们流入,这个时候在S3部分设置相当于并行的一个操作,把让进入的第二条、第三条指令的S3阶段分时进入,这个时候就可以将空闲的位置补上。

任务分时分配需要数据分配器,任务计算结果分时收集需要数据收集器。都是在两个流水段之间进行设置。

重复设置瓶颈段的段数= 瓶颈段占用了多少个单位时间

在这里插入图片描述

3.2.2 加速比

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看出流水线的段数越多越好,但是也要有一个限度,因为如果太多的话,流水线之间寄存器分到的时间如果等于每段流水线的时间,那流水就没啥用了。

在这里插入图片描述

3.2.3 效率

在这里插入图片描述

效率:流水线中的设备实际使用时间与整个运行时间的比值,即流水线利用率
因为流水线有通过时间和排空时间,所以在连续完成n个任务的时间内,各段并不是满负荷的工作。

看的就是设备的实际使用时间,如果设备不是满负荷工作,效率必定不能达到百分百

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

3.2.4 流水线性能分析举例

例一
在这里插入图片描述

静态流水线中,前一种功能的最后一条指令排空后,才能切换流水线,动态多功能指令不用
从例题中是否能总结一下:影响流水线性能的因素
注意算法设计,使得任务进入流水线中减少冲突,减少切换功能

实现步骤:

  1. 首先应该选择适合于流水线的算法
  2. 其次画出完成该计算的时空图

在这里插入图片描述

这里纵轴是空间也就是执行的每一个段,而整个的浮点运算分为8短,加法和乘法分别对应不同的段,所以在时空图上的表示不同,在画时空图之前要知道整个过程分成多少段。

在这里插入图片描述
4. 注意:这里加法分6段流水是有原因的,由题干中他是按照图3.4所示的静态流水线上进行的,这里的加法包括:输入、求阶差、对阶、相加、规格化、输出,这里的乘法包括:输入、相乘、累加、输出

该流水线效率低的原因
特性:

  1. 多功能流水线在做某一种运算的时候,总有一些段是空闲的
  2. 运算之间存在关联,后面有些运算要用到前面运算的结果,相关问题

共性:

  1. 静态流水线在进行功能切换时,要等前一种运算全部流出流水线后才能进行后面的运算
  2. 流水线的工作过程有建立和排空部分

一开始认为总有一段是空的和建立和排空即第一点和第四点是一样的,实际并不是,第一点是在说当前所用的流水段被分成8段,但是在做加法和乘法运算的时候都没有完全使用整个8段寄存器,但是这一点在其他的流水线上是可以避免的,但是流水线的建立和排空时间是每条流水线都有的特点,不会因为流水线的不同而改变。

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

同样也是先进行乘法操作,然后再进行各个结果的加法操作,在这个过程中不同的是在A、B计算出来之后就可以直接进入流水线,不过这里要在C的后面(根据最初安排的原则是乘法先做)。

即A、B计算出来之后后面的A+B指令可以直接进入流水线,但是在前面的静态流水线中不能实现,所以在这段位置节省了指令执行的时间。注意C+D不能提前要等到D完全计算出之后才可以。要注意指令前后之间的相关性

3.3 流水线的相关与冲突

3.3.2 相关与流水线冲突

相关
相关:指两条指令之间存在某种依赖关系。如果两条指令相关,它们可能不在流水线中重叠执行或只能部分重叠。
相关是导致流水线冲突的原因,但是相关是指令间的静态属性,但是存在相关的指令不一定会导致流水线冲突

在这里插入图片描述

1. 数据相关
真数据相关——写后读

2. 名相关
反相关——读后写
输出相关——写后写

寄存器换名技术

3. 控制相关
控制相关——分支指令引起

流水线冲突
流水线冲突:对于具体的流水线来说,由于相关的存在,使得指令流中的下一条指令不能在指定的时钟周期执行。

当一条指令被暂停时,该暂停指令之后流出的所有指令都被暂停,而在暂停之前流出的指令则继续执行。(否则永远无法解决冲突)

在这里插入图片描述

1. 结构冲突

停顿——气泡解决

相互独立的指令存储器和数据存储器

2. 数据冲突

写后读冲突
写后写冲突
读后写冲突

定向技术

停顿

依靠编译器解决

3. 控制冲突

“冻结”或“排空”流水线

减少分支延迟

依靠编译器来处理
预测分支失败
预测分支成功
延迟分支

分支取消

3.5 向量处理机

3.5.1 向量处理方式

1.横向(水平)处理方式

2.纵向(垂直)处理方式

2.纵横(分组)处理方式

3.5.2 向量处理机的结构

1.功能部件

2.向量寄存器组V

3.标量寄存器S和快速寄存器T

4.向量屏蔽寄存器VM

3.5.3 提高向量处理机性能的方法

1.设置多个功能部件

2.链接技术

例3.3 在CRAY-1上用链接技术讲行向量运算D=A×(B+C)。假以问量长您N≤64,向量元素为浮占数.且向量BC已存放在V0和V1中。画出链接示意图,并分析
非链接执行和链接执行两种情况下的执行时间。
用以下3条向量完成上述运算:
① V3←存储器 //访存取向量A
② V2←V0+V1 //向量B和向量C进行浮点加
③ V4←V2 * V3//浮点乘,结果存入V

第1、2条向量指令既无向量寄存器使用上的冲突,也无功能部件冲突,可以并行长行。第3条指令与第1,2条指令之间均存在且只存在先写后读相关,而且不存在功能部件冲突,因而可以将第3条指令与第12条指令链接执行,如图3.43所示。

由于同步的要求,CRAY-1中把向量数据元素送往向量功能部件以及把结果存入向量寄存器都需要一拍时间,从存储器中把数据送人访存功能部件也需要一拍时间。
根据这一点以及各功能部件的通过时间,可以得出在各种情况下的执行时间。

如果这3条指令全部用串行方法执行,则执行时间为
[(1+6+1)+N-1] +[(1+6+1)+N-1]+[(1+7+1)+N-1]=3N +22(拍)

如果前两条指令并行执行,然后再串行执行第3条指令,则执行时间为
[(1+6+1)+N-1]+[(1+7+1) +N-1] =2N +15(拍)

如果第1、2条向量指令并行执行(“访存”所需的拍数与“浮加”所需的拍数正好相

在这里插入图片描述
图3.43通过链接技术实现向量指令的重叠并行执行

同),并与第3条指令链接执行,则所需的时间最短。从访存开始到把第一个结果元素存入V,所需的拍数(亦称为链接流水线的建立时间)为
[(1+6+1)]+[(1+7+1)]=17(拍)

此后,就是每拍得到一个结果元素存入V4,共还有N-1个元素。故3条指令的执行时间为
[(1+6+1)]+[(1+7+1)]+(N-1)=N+16(拍)

进行向量链接时,除了要求无向量寄存器使用冲突和无功能部件使用冲突外,还有些别的要求:
①只有在前一条指令的第一个结果元素送入结果向量寄存器的那一个时钟周期才可以进行链接。如果错过这个时刻就无法进行链接了,这时只好等前一条指令全部
执行完毕,释放相应的向量寄存器之后,才能执行后面的指令。
②当一条向量指令的两个源操作数分别是两条先行指令的结果寄存器时,要求先行的两条指令产生运算结果的时间必须相等,即要求有关功能部件的通过时间相等。
例如,上述例子中的访存和浮加功能部件的通过时间都是6拍。
③要进行链接执行的向量指令的向量长度必须相等,否则无法进行链接。

3.分段开采技术

4.采用多处理机系统

3.5.4 向量处理机的性能评价

第4章 指令集并行

4.2 指令的动态调度

在这里插入图片描述

4.2.1 动态调度的基本思想

-指令顺序执行:
指令放入流水线的顺序和指令完成的顺序一致

  • 指令乱序执行:
    指令放入流水线的顺序和指令完成的顺序不一致,也就是有些指令进入流水线后呗阻塞,而在其后进入流水线的指令先完成了
  • 简单流水线的局限性:
    其指令是按程序顺序流出和按序执行的。

总结

  1. 动态指令调度:相对于静态指令调度,动态指令调度是在指令的执行阶段中进行调度,使得无关的指令得以先执行,减少阻塞。且能够处理一些在编译时情况不太明确的相关(如存储器访问的相关)
  2. 动态指令调度将会引起指令乱序执行,因此使用换名技术消除名相关(包括反相关和输出相关)
  3. 指令乱序完成带来了另一个问题:难以处理异常
  4. 动态调度要保持正确的异常行为(只有那些在程序严格按程序执行时才会发生的异常,才能真正发生)。动态调度的处理机是这样来保持正确的异常行为的:对于一条会发生异常的指令来说,只有当处理机确切的知道该指令被执行后,才允许它发生异常
  5. 不精确异常:当执行指令i导致发生异常时,处理机的现场跟严格按程序顺序执行是指令i的现场不同。反之为精确异常(不精确异常使得在异常处理后难以接着继续执行程序)
  6. 发生不精确异常的原因:流水线可能已经执行完按程序顺序是位于指令i之后的指令;流水线可能还没有完成按程序顺序是指令i之前的指令。

4.2.2 Tomasulo算法

1 Tomasulo算法的核心思想

  • 记录和检测指令相关,操作数一旦就绪就立即执行(没有就绪则等待),把发生RAW冲突的可能性降到最小。
  • 通过寄存器换名来消除WAB冲突和WAW冲突

2 基本结构
在这里插入图片描述

  1. 保留站
  1. 设置在运算部件的入口。浮点加法器的保留站有3 个,浮点乘法器的保留站🈶️ 2个。每个保留站都有一个标识字段,唯一地标识了该保留站。每个保留站中保存一条一斤共流出并等待到本功能部件执行的命令。【内容:操作码、操作数以及用于检测和解决冲突的信息】
  2. 在一条指令流出到保留站的时候,如果该指令的源操作数已经在寄存器中就绪,则将之取到该保留站中;如果该操作数还没有计算出来,则在该保留站中记录将产生这个操作数的保留站的标识。
  3. CDB连接到除了load缓冲器以外的所有部件的入口,浮点寄存器通过一对总线连接到功能部件,并通过CDB连接到store缓冲器的入口。
  1. 公共数据总线CDB.
  1. 一条重要的数据通路
  2. 所有的功能部件的计算结果都是送到CDB上,由它吧这些结果直接播送到各个需要该结果的地方
  3. 在具有多个执行部件且采用多流出(即每个时钟周期流出多条指令)的流水线中,需要用多条CDB
  1. load和store缓冲器
  1. load和store缓冲器中存放的是读/写存储器的数据或地址
  2. load缓冲器的作用:
    a.存放用于计算有效地址的分量
    b.记录正在进行的load访存,等待存储器的响应
    c.保存已经完成了的load结果(即从存储器取来的数据),等待CDB传输
  3. store缓冲器的作用:
    a.存放用于计算有效地址的分量
    b.保存正在进行的store访存的目标地址,该store正在等待存储数据的到达
    c.保存该store的地址和数据,直到存储部件接收
  1. 浮点寄存器

共有16个浮点寄存器:F0、F2、F4…F30。它们通过一对总线连接到功能部件,并通过CDB连接到store缓冲器。

  1. 指令队列

指令部件送来的指令放入指令队列,指令队列中的指令按先进先出的顺序流出

  1. 运算部件

浮点加法器完成加法和减法,浮点乘法器完成乘法和除法操作

3 寄存器换名技术

在这里插入图片描述
寄存器换名是通过保留站和流出逻辑共同完成的。当指令流出时,如果其操作数还没有计算出来,则将该指令中相应的寄存器号换名为将产生这个操作数的保留站的标识。所以指令流出到保留站后,其操作数寄存器号或者换成了数据本身(若已就绪),或者换成了保留站的标识,不再与寄存器有关系。

4 Tomasulo算法

1. 通过例子来解释Tomasulo算法

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

  • Tomasulo算法采用分布的保留站,具有2个特点:
    1. 冲突检测和指令执行控制是分布的。每个功能部件的保留站中的信息决定了什么时候指令可以在该功能部件开始执行。
    2. 计算结果通过CDB直接从产生它的保留站传送到所有需要它的功能部件,不用经过寄存器。

3. 举例

在这里插入图片描述

在指令进入保留站后会对操作数是否就绪进行检测,就根据寄存器状态表。若就绪直接将浮点寄存器中内容填入操作数。若两个寄存器都就绪可流出,但流出之前还要记得对目标寄存器进行预约,即将该指令所在保留站站号写入寄存器状态表里。

在这里插入图片描述

  • 与其他动态调度方法相比,Tomasulo算法具有以下两个主要优点:
  1. 冲突检测逻辑是分布的(通过保留站和CDB实现)。多个地方等待这个结果,可以同时获得。如果使用的是集中的寄存器组,各条指令就要等结果写入寄存器,然后再依次顺序从寄存器组读出。
  2. 消除了WAW和WAR冲突导致的停顿。这是通过使用保留站进行各个寄存器换名,并且在操作数一旦就绪就将之放入保留站来实现的。

第5章 存储系统

系统结构期末复习(五)存储系统

5.1 存储系统的层次结构

存储系统的层次结构

5.2 Cache基本知识

Cache基本知识

5.2.7 Cache性能分析

两个重要公式:

平均访存时间=命中时间+不命中率×不命中开销
两个组成部分既可以使用绝对时间也可以使用时钟周期数来衡量。执行一个程序所需的CPU时间能更好地反应存储系统的性能。
CPU时间=(CPU执行周期数+访存次数×不命中率×不命中开销)× 时钟周期时间
其中,不命中开销是指不命中、访存所需要的周期数。

在这里插入图片描述

⚠️在计算最终的性能时,要把所有的存储器停顿都考虑进去,

  • 问题:Cache命中所用的时钟周期数(⚠️是命中所用,还未命中到命中的时间)被看作是CPU执行的时钟周期数的一部分还是存储器停顿时钟周期数的一部分。两种说法都合理,但是广泛使用的是第一种。

在这里插入图片描述

在这里插入图片描述
CPIexecution越低,代表执行部分占比越小,不命中部分占比越大,相对影响越大。

在这里插入图片描述

在这里插入图片描述

5.2.8 改进Cache性能

Cache的作用是弥补主存在速度上的不足,因此Cache的性能重点关注的是它对访存时间的提升。【在提升和改进某个部件的性能时要考虑这个部件存在的意义是什么,这个部件有什么作用,再去考虑如何提升性能】

平均访存时间=命中时间+不命中率x不命中时间
所以可以从三个方面来改进Cache的性能:降低不命中率、减少不命中开销、减少命中时间

5.3 降低Cache不命中率

降低Cache不命中率

5.4 减少Cache不命中开销

减少Cache不命中开销

5.5 减少命中时间

减少命中时间

第6章 输入/输出系统

6.5 通道处理机

重要知识点:
1. 什么是通道处理机
2. 为什么使用通道处理机(与其他三种进行比较)
3. 通道的功能

6.5.1 通道的作用与功能

为什么使用通道?

在这里插入图片描述
通道:专门负责整个计算机系统的输入/输出工作【通道处理机只能执行有限的一组输入/输出指令】

在这里插入图片描述

6.5.4 通道流量分析

key:
1. 通道流量:一个通道在数据传送期间,单位时间内能够传送的数据量,单位Bps(字节/秒)
2. 通道最大流量:一个通道在满负荷下的流量,通道最大流量是通道的属性(无论客观环境如何变化它本身是不变的(主要与通道的种类、通道选择设备1次所用的时间、传送一个字节所用的时间等因素有关)
3. 通道的实际流量:通道实际的工作流量
4. 三种通道的流量分析

在这里插入图片描述
1. 字节多路通道

在这里插入图片描述
在这里插入图片描述
2. 选择通道

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

3. 多路选择通道
在这里插入图片描述
在这里插入图片描述

总结

一个公式记住全部

  • 字节多通路 TBlock=(TS/1+TD)× p × n 每连接1次传1个字节
  • 选择通道 TBlock=(TS/n+TD)× p × n 每连接1次传n个字节
  • 数组多路通道 TBlock=(TS/k+TD)× p × n 每连接1次传k个字节

2023-6-25 10:10:56

最后

2023-6-25 10:10:58

你对我百般注视,
并不能构成万分之一的我,
却是一览无余的你。

祝大家逢考必过
点赞收藏关注哦

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

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

相关文章

miniconda的安装

1. conda 是一个开源的包、环境管理器&#xff0c;可以用于在同一个机器上安装不同版本的软件包及其依赖&#xff0c;并能够在不同的环境之间切换。 miniconda官网下载 miniconda清华镜像下载 找到自己想要安装的版本&#xff0c;我这里选择的是Miniconda3-4.7.12.1-Linux-x…

OUC编译原理实验报告 实验4:验证Yacc的使用/实验e4:从语言SUM到栈式计算机STACK的机器语言的翻译

编译原理实验报告 实验4&#xff1a;验证Yacc的使用 实验e4&#xff1a;从语言SUM到栈式计算机STACK的机器语言的翻译 中国海洋大学编译原理实验2023春 仅供同学参考思路 请勿直接抄袭 否则可能喜提0分 目录 文章目录 编译原理实验报告目录一.实验目的二.实验内容实验4实验…

多进程爬虫实战-摩托车网

前言 最近有遇到很多私信让我讲一讲多进程的爬虫&#xff0c;我发现大家对爬虫的框架写法和进程的理解有很多的问题和疑问&#xff0c;这次就带来一个小实战让大家理解多进程爬虫以及框架的写法 由于进程爬虫会对任何服务器都有一定的影响&#xff0c;本文仅供学习交流使用&…

【Linux后端服务器开发】C程序预处理

目录 一、源文件到可执行程序的过程 二、预定义符号 三、#define宏定义 四、条件编译 一、源文件到可执行程序的过程 预处理&#xff1a;去注释&#xff0c;宏替换&#xff0c;头文件展开&#xff0c;条件编译编译&#xff1a;c语言 ---> 汇编语言&#xff08;语法分析…

JUC高级-0625

13. AbstractQueuedSynchronized之AQS 13.1 前置知识 公平锁和非公平锁可重入锁自旋思想LockSupport数据结构之双向链表设计模式之模板设计模式 13.2 AQS入门级别理论知识 AQS是什么&#xff1f; 字面意思&#xff1a;抽象的队列同步器&#xff0c;实现了通知唤醒的机制源代…

8通道250MSPS采样率16位AD采集FMC子卡-高速数据采集专家

FMC128是一款8通道250MHz采样率16位分辨率AD采集FMC子卡&#xff0c;符合VITA57.1规范&#xff0c;可以作为一个理想的IO模块耦合至FPGA前端&#xff0c;8通道AD将模拟信号数字化后通过高带宽的FMC连接器&#xff08;HPC&#xff09;连接至FPGA&#xff0c;从而大大降低了系统信…

电力智能运维是什么?有哪些优势?

设备检修维护是指对设备和系统进行必要的监视、维修和养护&#xff0c;通过日常的维护使设备保持良好的状态&#xff0c;确保设备安全、稳定、经济运行。由于时代的变迁&#xff0c;电力设备的检测维修变得也越来越智能化。采用的智能运维系统&#xff0c;可以更好的监控电力设…

BCSP-玄子Java开发之Java Web编程CH01_初识动态网页

BCSP-玄子Java开发之Java Web编程CH01_初识动态网页 1.1 B/S架构 B/S架构&#xff1a;浏览器/服务器 程序完全部署在服务器上使用浏览器访问服务器无需单独安装客户端软件 为什么要使用B/S架构 B/S与C/S比较B/S架构C/S架构软件安装浏览器需要专门的客户端应用升级维护客户…

NGINX PHP Cookie 会话中 PHPSESSID 缺少 HTTPOnly、Secure 属性解决方案

NGINX & PHP Cookie 会话中 PHPSESSID 缺少 HTTPOnly、Secure 属性解决方案 1 / 说明 基于安全的考虑&#xff0c;需要给cookie加上Secure和HttpOnly属性&#xff0c;HttpOnly比较好理解&#xff0c;设置HttpOnlytrue的cookie不能被js获取到&#xff0c;无法用document.coo…

linux系统的文件等相关操作命令

文章目录 1 查找文件&#xff08;find、grep&#xff09;2 查看文件内容&#xff08;cat、more、less、head、tail&#xff09;3 文件比较&#xff08;diff&#xff09;4 文本编辑器&#xff08;vi、vim&#xff09;5 文件压缩与解压&#xff08;tar、tar.tgz、zip、rar、rar.g…

yum安装 lnmp

目录 一.nginx 的yum安装 1.关闭防火墙 2. 安装 nginx 3.安装依赖包 4.启动服务 二. 安装 mysql 5.7 (mariadb) 1.nysal的yum安装 2. 启动服务 3.在日志文件中找出root用户的初始密码 4.登录 mysql 5. 停止版本更新&#xff0c;稳定数据库的运行 三.php 的yum安装 1.…

rust abc(4): 定义变量并使用 mut 关键字

文章目录 1. 目的2. 不可变变量 (immutable variable)2.1 含义2.2 代码实例 3. 可变变量 (mutable variable)3.1 含义3.2 代码实例 4. 总结 1. 目的 学习 rust 语言中变量的定义方式&#xff0c; 包括普通变量&#xff08;immutable&#xff09;、可变变量&#xff08;mutable…

轻量云服务器(香港)ping不通怎么解决?

​  在使用轻量云服务器(香港)时&#xff0c;有时候会出现ping不通的情况&#xff0c;这时候我们该怎么办呢? 首先&#xff0c;我们需要知道 ping 不通的原因。 ping 是一种基于 ICMP 协议的网络测试工具&#xff0c;它可以用来测试网络连接的质量和速度。如果 ping 不通&am…

英特尔进军晶圆代工,台积电“危”?

近来&#xff0c;半导体市场再次变得繁荣&#xff0c;尤其随着AI大型机模型的出现&#xff0c;半导体巨头们纷纷加大投资力度&#xff0c;以期在AI时代中积蓄新的增长。 作为AI大模型时代中最受益的厂商之一&#xff0c;英伟达稳居市场前沿&#xff0c;而AMD也加入了竞争&…

阿里发布2023年Java社招岗(正式版)面试题

每年的金三银四、金九银十都是各大公司招聘程序员的最佳时期&#xff0c;在这段时间内有好多程序员为面试而发愁&#xff0c;不知道如何才能收到好的 offer&#xff0c;拿到理想的薪资&#xff0c;实现自我的人生价值&#xff01; 我想告诉大家的是&#xff0c;其实都不用愁的…

Web Worker是什么?怎么用?

71. Web Worker是什么&#xff1f;怎么用&#xff1f; Web Worker 是一种浏览器提供的 JavaScript 特性&#xff0c;它允许在后台线程中运行脚本&#xff0c;从而避免阻塞主线程并提高页面性能和响应速度。 1. Web Worker 的使用方法如下&#xff1a; 创建 Worker 对象&…

chatgpt赋能python:Python编译成库的利与弊

Python编译成库的利与弊 Python作为一种高级编程语言&#xff0c;具有简洁易读的语法和强大的生态系统&#xff0c;在数据科学、Web开发、游戏开发等领域得到广泛应用。然而&#xff0c;Python解释器的执行效率较低&#xff0c;因此为了提高Python程序的性能&#xff0c;常使用…

【嵌入式环境下linux内核及驱动学习笔记-(18)内核驱动模块的启动机制】

目录 1、module_init宏1.1 展开1.2 解释以下几个标识1.2.1 fn1.2.2 id1.2.3 类型 initcall_t &#xff1a;1.2.4 __used1.2.5 __init1.2.6 __attribute__ 1.3 实例说明 2、 驱动启动机制2.1 initcall_t 类型的数组2.2.1 __initcallx_start数组2.2.2 initcall_levels[]数组 2.3 …

每日一练 | 华为认证真题练习Day64

1、如下图所示的网络&#xff0c;所有路由器运行0SPF协议&#xff0c;链路上方为Cost值的大小&#xff0c;则RA路由表中到达网络10.0.0.0/8的Cost值是多少&#xff1f; A. 70 B. 20 C. 60 D. 100 2、如下图所示的网络&#xff0c;主机A没有配置网关&#xff0c;主机B存在网关…

基于GEC6818 Qt智能病房监控系统

文章目录 一、项目设备及平台二、项目功能说明1. 整体功能2. GEC6818开发板功能介绍3. GY39模块功能介绍4. MQ-2型烟雾传感器功能介绍5. RFID模块 三、硬件系统设计实现与图表四、软件系统设计实现与流程图1. 软件系统设计总体描述2. 软件实现流程图3. 操作过程 五、调试过程中…