计算机系统结构1-3章节 期末背诵内容

Amdahl定律:
加快某部件执行速度所能获得的系统性能加速比,受限于该部件的执行时间占系统中总执行时间的百分比。
加速比依赖于:
可改进比例:在改进前的系统中,可改进部分的执行时间在总的执行时间中所占的比例。
部件加速比:可改进部分改进以后性能提高的倍数。

CPU的性能取决于3个参数
时钟周期时间:取决于硬件实现技术和计算机组成。
CPI:取决于计算机组成和指令集结构。
IC:取决于指令集结构和编译技术。

并行性的含义:
计算机系统在同一时刻或者同一时间间隔内进行多种运算或操作。即只要在时间上相互重叠,就存在并行性。
同时性:两个或两个以上的事件在同一时刻发生。
并发性:两个或两个以上的事件在同一时间内发生。 
提高并行性的三种途径:
时间重叠:引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。(单机系统:指令流水线(部件专用化) ;多机系统:任务流水线(处理机专用化))
资源重复:引入空间因素,以数量取胜。通过重复设置硬件资源,大幅度地提高计算机系统的性能。(单机系统:硬件冗余,多核CPU,多机系统:集群扩展,重复设置处理机)
资源共享:这是一种软件方法,它使多个任务按一定时间顺序轮流使用同一套硬件设备。如,多道程序。 (单机系统:分时操作系统,虚拟内存: ;多机系统:分布式系统)

相关:两条指令之间存在某种依赖关系。(静态属性)

数据相关:(也称真数据相关)(RAW: read after write)
对于两条指令i(在前,下同)和j(在后,下同),如果下述条件之一成立,则称指令j与指令i数据相关:1,指令j使用指令i产生的结果;2,指令j与指令k数据相关,而指令k又与指令i数据相关。(存在数据流动) (可能需要的数据未产生)
名相关:  如果两条指令使用相同的名,但是它们之间并没有数据流动,则称这两条指令存在名相关。(不顺序执行可能引起冲突)
控制相关 : 是指由分支指令引起的相关。为了保证程序应有的执行顺序,必须严格按控制相关确定的顺序执行。(分支预测错误)

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

指令级并行主要特点:
是并行性由处理器硬件和编译程序自动识别和利用,不需要程序员对顺序程序作任何修改。( 硬件+软件技术)

静态调度 V.S. 动态调度:
静态调度:是依靠编译器对代码进行调度,也就是在代码被执行之前进行调度;通过把相关的指令拉开距离来减少可能产生的停顿。
动态调度:在程序的执行过程中,依靠专门硬件对代码进行调度,减少数据相关导致的停顿。
指令顺序执行 V.S. 指令乱序执行:
指令顺序执行:指令放入流水线的顺序和指令完成的顺序一致;
指令乱序执行:指令放入流水线的顺序和指令完成的顺序不一致,也就是说有些指令进入流水线后被阻塞的,而在其后进入流水线的指令先完成了。

动态调度解决控制冒险
动态分支预测技术:通过硬件技术,在程序执行时根据每一条转移指令过去的转移历史记录来预测下一次转移的方向。通过提前预测分支方向,减少或消除控制相关导致的流水线停顿。
优点:
根据程序的执行过程动态地改变转移的预测方向,因此有更好的准确度和适应性。
程序每次执行时,可能预测的分支方向与前次相同或不同。更加灵活.
分支历史表BHT : 用BHT来记录分支指令最近一次或几次的执行情况(成功或不成功),并据此进行预测。 
分支目标缓冲器BTB : 将分支成功的分支指令的地址和它的分支目标地址都放到一个缓冲区中保存起来,缓冲区以分支指令的地址作为标识。
基于硬件的前瞻执行 : 对分支指令的结果进行猜测,并假设这个猜测总是对的,然后按这个猜测结果继续取、流出和执行后续的指令。只是执行指令的结果不是写回到寄存器或存储器,而是放到一个称为ROB(ReOrder Buffer)的缓冲器中。等到相应的指令得到“确认”(commit)(即确实是应该执行的)之后,才将结果写入寄存器或存储器。 

动态调度解决数据冒险
Tomasulo算法 核心思想:
记录和检测指令相关,操作数一旦就绪就立即执行,把发生RAW冲突的可能性减少到最小;
通过寄存器换名来消除WAR冲突和WAW冲突。

cache的3C失效:
针对三种类型的不命中的直接方法
针对强制不命中  --  增加块大小 (方法一) 缺点:会增加不命中开销,块过大会减少Cache中块的数目,所以有可能会增加冲突不命中。
针对容量不命中  --  增加Cache容量 (方法二)缺点:增加成本 ; 可能增加命中时间
针对冲突不命中  --  提高相联度 (方法三)缺点 : 提高相联度是以增加命中时间为代价。 

2:1Cache经验规则
容量为N的直接映像Cache的不命中率和容量为N/2的两路组相联Cache的不命中率差不多相同。

其他5个降低Cache不命中率的方法:
伪相联Cache:在逻辑上把直接映像Cache的空间上下平分为两个区。对于任何一次访问,伪相联Cache先按直接映像Cache的方式去处理。若命中,则其访问过程与直接映像Cache的情况一样。若不命中,则再到另一区相应的位置去查找。若找到,则发生了伪命中。否则就只好访问下一级存储器。

硬件预取:常由Cache之外的硬件完成指令or数据的预取
编译器预取:在编译时加入预取指令,在数据被用到之前发出预取请求。
编译器优化:通过对软件进行优化来降低不命中率。1,数组合并 2,内外循环交换 3,循环融合 4,分块
牺牲cache:在Cache和它从下一级存储器调数据的通路之间设置一个全相联的小Cache,称为“牺牲”Cache(Victim Cache)。用于存放被替换出去的块(称为牺牲者),以备重用。

5个降低cache不命中开销的方法:
多级cache: ..
让读不命中优先于写 : 在读不命中时,所读单元的最新值有可能还在写缓冲器中,尚未写入主存。我们可以: 推迟对读不命中的处理,直到写缓冲器清空 ; 检查写缓冲器中的内容,若无相同,且存储器可用,继续处理读不命中
写缓冲合并 : 如果写缓冲器为空,就把数据和相应地址写入该缓冲器。从CPU的角度来看,该写操作就算是完成了。
如果写缓冲器中已经有了待写入的数据,就要把这次的写入地址与写缓冲器中已有的所有地址进行比较,看是否有匹配的项。如果有地址匹配而对应的位置又是空闲的,就把这次要写入的数据与该项合并。这就叫写缓冲合并。如果写缓冲器满且又没有能进行写合并的项,就必须等待。 
请求字处理技术 :1, 尽早重启动:请求字没有到达时,CPU处于等待状态。一旦请求字到达,立即送给CPU,让等待的CPU尽早重启动,继续执行。2,请求字优先:调块时,让存储器首先提供CPU所要的请求字。请求字一旦到达,就立即送给CPU,让CPU继续执行,同时从存储器调入该块的其余部分。(如果:Cache块较小 or 下一条指令正好访问同一Cache块的另一部分 用处不大)
非阻塞cache:采用记分牌或者Tomasulo类控制方式,允许指令乱序执行,CPU无需在Cache不命中时停顿

4个降低cache命中开销的方法:
使用小容量、结构简单的Cache
虚拟Cache
Cache访问流水化
踪迹cache

局部性原理
 程序执行时所访问的存储器地址分布不是随机的,而是相对地簇聚。
常用的一个经验规则
程序执行时间的90%都是在执行程序中10%的代码。
程序的时间局部性
程序即将用到的信息很可能就是目前正在使用的信息。
程序的空间局部性
程序即将用到的信息很可能与目前正在使用的信息在空间上相邻或者临近。

冯诺依曼体系结构的特点:
计算机由五大部件组成:存储器,运算器,控制器,输入设备,输出设备。
指令和数据以同等地位存于存储器,可按地址顺序访问。
指令和数据用二进制表示。
指令由操作码和地址码组成。
存储程序,程序在计算机中顺序存放。
以运算器为中心。

计算机系统结构设计和分析中常用的3大原则:以经常性事件为重点,程序局部性原理和Amdahl定律


 

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

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

相关文章

JS实现直接下载PDF文件

pdf文件通过a标签直接下载会打开页面,所以,请求该文件的blob文件流数据,再通过window.URL.createObjectURL转成链接,就可以直接下载了。 只需要替换url和文件名称就行,文件名的后缀记得要写上pdf,不然会变成…

深度解析Pytest中Fixture机制与实战案例

一、为什么我们需要Fixture? 在某次金融系统重构项目中,我们的测试团队曾遇到这样的困境:随着测试用例增长到500,使用unittest框架编写的测试代码出现了严重的维护问题——setup方法臃肿不堪,测试数据混乱&#xff0c…

文档结构化专家:数字化转型的核心力量

文档结构化专家:定义、职责与行业应用的全方位解析 一、文档结构化的定义与核心价值 文档结构化是将非结构化或半结构化文档(如文本、图像、表格)转换为计算机可处理的规范化数据形式的过程。其核心在于通过语义解析、信息单元划分和标准化格式(如XML/JSON),实现信息的…

Linux系统管理与编程16番外篇:PXE自动化安装部署OpenEuler24.03LTS

兰生幽谷,不为莫服而不芳; 君子行义,不为莫知而止休。 Preboot Execution Environment 本机服务器操作系统:CentOS7.9.2207 目标服务器安装系统:openEuler-24.03-LTS-SP1-everything-x86_64-dvd.iso 虚拟机&#xff1…

Enhanced RTMP H.265(HEVC)技术规格解析:流媒体协议的新突破

Enhanced RTMP H.265(HEVC)技术规格解析:流媒体协议的新突破 “每一帧画面都是时间的映射,压缩之后的灵魂,依然能栩栩如生。” 随着流媒体技术的快速发展,视频编码标准不断推陈出新。H.264/AVC虽然已经成为…

Visual Studio Code 改成中文模式(汉化)

1、打开工具软件(双击打开) 2、软件左边图标点开 3、在搜索框,搜索 chinese 出现的第一个 就是简体中文 4、点击第一个简体中文,右边会出来基本信息 点击 install 就可以安装了(记得联网)。 5、安装完右…

Linux--初识文件系统fd

01. C/系统调用文件操作 C/系统调用文件操作 02. 文件系统(ext2)结构 Linux ext2文件系统,上图为磁盘文件系统图(内核内存映像肯定有所不同),磁盘是典型的块设备,硬盘分区被划分为一个个的block。一个块的大小(有1MB,…

算法中的数学:欧拉函数

1.相关定义 互质:a与b的最大公约数为1 欧拉函数:在1~n中,与n互质的数的个数就是欧拉函数的值 eg: n1时,欧拉函数的值为1,因为1和1是互质的 n2是,值为2,因为1和2都是互质的 积性函数&…

BaseDao指南

1. BaseDao类 import java.sql.*;/*** 通用的工具类 ,负责连接数据, 执行增删改查的通用方法*/ public class BaseDao {private Connection connection;private PreparedStatement pstm;private ResultSet rs;/*** 建立数据库连接** return*/public Boolean getCon…

SpringBoot JAR 启动原理

文章目录 版本概述JAR 包结构MANIFEST.MF 描述文件JarLauncherArchive 接口launch 方法Handlers.register() 方法getClassPathUrls 方法createClassLoader 方法 时序图参考 版本 Java 17SpringBoot 3.2.4 概述 JAR 启动原理可以简单理解为“java -jar的启动原理” SpringBo…

YOLO11解决方案之速度估算探索

概述 Ultralytics提供了一系列的解决方案,利用YOLO11解决现实世界的问题,包括物体计数、模糊处理、热力图、安防系统、速度估计、物体追踪等多个方面的应用。 YOLO速度估算结合物体检测和跟踪技术,使用YOLO11 模型检测每帧中的物体&#xf…

初识C++:模版

本篇博客主要讲解C模版的相关内容。 目录 1.泛型编程 2.函数模板 2.1 函数模版概念 2.2 函数模版格式 2.3 函数模版的原理 2.4 函数模版的实例化 1.隐式实例化&#xff1a;让编译器根据实参推演模板参数的实际类型 2. 显式实例化&#xff1a;在函数名后的<>中指定模…

人工智能100问☞第27问:神经网络与贝叶斯网络的关系?

神经网络与贝叶斯网络是两种互补的智能模型:神经网络通过多层非线性变换从数据中学习复杂模式,擅长大规模特征提取和预测,而贝叶斯网络基于概率推理建模变量间的条件依赖关系,擅长处理不确定性和因果推断。两者的融合(如贝叶斯神经网络)结合了深度学习的表征能力与概率建…

【node.js】入门基础

个人主页&#xff1a;Guiat 归属专栏&#xff1a;node.js 文章目录 1. Node.js简介1.1 Node.js的核心特点1.2 Node.js适用场景 2. 第一个Node.js程序2.1 创建并运行Hello World2.2 创建简单的HTTP服务器 3. Node.js核心概念3.1 模块系统3.1.1 创建和导出模块3.1.2 导入和使用模…

百度飞桨PaddleOCR 3.0开源发布 OCR精度跃升13%

百度飞桨 PaddleOCR 3.0 开源发布 2025 年 5 月 20 日&#xff0c;百度飞桨团队正式发布了 PaddleOCR 3.0 版本&#xff0c;并将其开源。这一新版本在文字识别精度、多语种支持、手写体识别以及高精度文档解析等方面取得了显著进展&#xff0c;进一步提升了 PaddleOCR 在 OCR …

Android 14 Binderized HAL开发实战指南(AIDL版)

Android 14 Binderized HAL开发实战指南&#xff08;AIDL版&#xff09; 环境要求 Android 14源码编译环境AOSP android-14.0.0_r7分支Soong build系统Java 17 & NDK r25c 项目结构 hardware/interfaces/myservice/ ├── 1.0 │ ├── IMyHalService.aidl # AID…

第九天的尝试

目录 一、每日一言 二、练习题 三、效果展示 四、下次题目 五、总结 一、每日一言 创造美好的代价是努力&#xff0c;失望以及毅力&#xff0c;首先是痛苦&#xff0c;然后才是欢乐。 时间是快的&#xff0c;看怎么利用&#xff0c;安排好一切事情&#xff0c;才能从容面对…

交安安全员:交通工程安全领域的关键角色

在交通工程这个庞大而复杂的领域中&#xff0c;交安安全员扮演着举足轻重的角色&#xff0c;他们是安全的捍卫者&#xff0c;是交通工程顺利推进的重要保障。​ 交安安全员&#xff0c;专门从事公路水运工程施工企业安全生产管理工作。他们的专业身份由交通运输部门颁发的交安…

实验-设计一个应用系统(计算机组成原理)

目录 一. 实验内容 二. 实验步骤 &#xff08;1&#xff09;七段数码管显示模块 &#xff08;2&#xff09;指令模块 &#xff08;3&#xff09;控制模块 &#xff08;4&#xff09;ALU模块 &#xff08;5&#xff09;CPU模块 三. 实现效果 四. 实验环境 五. 实验小结…

【博客系统】博客系统第四弹:令牌技术

令牌机制 为什么不能使用 Session 实现登录功能&#xff1f; 传统思路&#xff1a; 登录页面把用户名密码提交给服务器。服务器端验证用户名密码是否正确&#xff0c;并返回校验结果给前端。如果密码正确&#xff0c;则在服务器端创建 Session。通过 Cookie 把 sessionId 返回…