计算机体系结构期末复习流程大纲

1.存储器和cache

存储器的容量、速度与价格之间的要求是相互矛盾的,速度越快,没bit位价格越高,容量越大,速度越慢,目前主存一般有DRAM构成。

处理器CPU访问存储器的指标:

  • 延迟时间(Latency)——单次存储器的访问时间:存储器访问时间>> 处理器时钟周期;
  • 带宽 (Bandwidth)——单位时间对存储器的访问次数:如果每条指令的执行需要m次访存操作,总计每条指令需要m+1次存储器访问(包括1次取指令),如果CPI = 1,则每个指令周期需要访存m+1;
  • 能耗 (Energy) -单次存储器访问消耗的能量 (nJ)

存储系统的设计目标:针对典型应用,使访存时间最短,通过优化存储系统组织架构,进行多级分层:M1速度最快,容量最小;

size(容量): Register << SRAM << DRA;

Latency(延迟时间): Register << SRAM << DRAM;

Bandwidth(带宽): on-chip >> off-chip

多级存储的目的是通过合理组织和层次化存储系统,提高计算机系统的 性能、效率和容量,以满足不同应用场景下的需求

策略(Strategy):使用小容量、高速存储器作为Cache,来降低平均访存延迟;

缓存(Cache):是一种减少访存延迟的机制,它基于经验观察,即处理器进行的 内存访问模式通常是高度可预测的。

存储器访问有两种可预测的模式:

  • 时间局部性( Temporal Locality ):如果一个地址被访问过,在不久的 将来很可能还会被访问。保持最近访问的数据项最接近微处理器;
  • 空间局部性( Spatial Locality ):如果一个地址被访问过,在不久的将来 该地址的临近地址很可能会被访问到。以由地址连续的若干个字构成的块为单位,从低层复制到上一层。

2.一致性问题

如何正确有序访问共享存储系统:

  • 存储一致性(Consistency):不同处理器发出的所有存储器操作的顺序问题(即针对不同存储单元或相同存储 单元) ;所有存储器访问的全序问题;
  • Cache一致性(Coherence) :不同处理器访问相同存储单元时的访问顺序问题;访问每个Cache块的局部序问题。

Cache一致性的问题:多个处理器或核心之间共享数据时,由于Cache的存在,可能导致不同处理器对同一块内存数据的缓存内容不一致的情况。

Cache一致性协议的关键在于:跟踪共享数据块的状态

跟踪共享数据块状态的cache协议有两种:

  • Snooping-based protocols (基于监听的协议) : 每个Cache除了包含物理存储器中块的数据拷贝之外,也保存着各个块的共享状态信息。
  • Directory-based protocols (基于目录的协议): 物理存储器中共享数据块的状态及相关信息均被保存在一个称为目录的地方。

MSI(Modified/Shared/Invalid)协议有三种状态:Modified:只有该数据块的备份是最新的,主存和其他处理器中的数据是陈旧的; Shared:该数据块在此处理器中未被修改过,主存中的内容是最新的;Invalid:该数据块是无效块。

MSI协议状态转换图

基于监听的Cache一致性局限性:

  • 监听协议需要通过总线广播请求:共享总线存在竞争使用问题;在由大量处理器构成的多处理器系统中,监听带宽会成为瓶颈;总线上能够连接的处理器数目有限,难扩展到处理器规模较大的系统;
  • 监听协议只适用于可伸缩性差的共享总线结构;
  • 如何不采用广播方式而保持缓存一致性:使用目录 (directory) 记录每个Cache块的状态;只有包含该数据块的缓存才会收到请求。

基于目录的Cache一致性:

  • 目录协议对监听协议的改进

  • 每个存储块对应一个目录项

MSI目录协议:

Cache状态:Modified(M)/ Shared(S)/ Invalid(I)

目录状态:Uncached(Un):所有处理器核心都没有数据副本;Shared(Sh):一个或多个处理器核具有读权限(S);Exclusive(Ex):只有一个处理器核具有读和写权限(M);

3.顺序一致性

顺序一致性(Sequential Consistency) : 该模型要求所有处理器的读、写和交换(swap)操作以某种序执行所形成的全局存储器次序,符合各处理器的原有程序次序。

即, 不论指令流如何交叠执行,全局序必须保持所有进程的程序:所有读写操作执行以某种顺序执行;每一个处理器看到的操作顺序是相同的。

完全存储定序模型(Total Store Order(TSO)):

完全存储定序模型规则:

  • 全局顺序存储: store操作存在一个全局的顺序;
  • Store缓冲: 允许处理器使用 Store buffer来缓存即将写入内存的数据,但必须确保缓冲中的数据在全局上有序提交;
  • load同样按顺序执行,但可穿插到多个store执行过程中:若存在一组store->load操作,如果由同一处理器执行且地址相关,则TSO允许该load操作在store操作完成之前就执行;但如果由多个core执行且地址相关,那TSO要求load指令在store执行完成后才能执行。

4.并行计算

Level of Parallelism并行级别:

  • 指令级并行 (ILP Instruction-level Parallelism):定义:在单个处理器上同时执行多条指令的能力;实现方式:通过在一个时钟周期内执行多个指令的部分,例如流水线处理、超标量处理和乱序执行等技术;
  • 数据级并行 (DLP Data-level Parallelism):定义:同时处理多个数据元素的能力;实现方式: 通过向量处理器、SIMD (单指令多数据)架构等技术,在单个指令下并行处理多个数据元素;
  • 线程级并行 ( TLP Thread-level Parallelism ):定义:任务被组织成多个线程,在多线程环境中同时执行多个线程的能力;实现方式:通过多核处理器、多处理器系统或者通过超线程技术,在不同的执行单元上并行执行多个线程。

如何使CPI<1,有两种基本方法:: Superscalar 、VLIW;

Superscalar:

  • 特点:具有多个执行单元,能够在同一时钟周期内同时发射和执行多条指令;
  • 硬件结构复杂:需要支持动态调度和处理指令之间的相关性;
  • IBM PowerPC, Sun UltraSparc, DEC Alpha, HP 8000;
  • 该方法对目前通用计算是最成功的方法。

Very Long Instruction Words (VLIW):

  • 特点:每个时钟周期流出的指令数是固定的;
  • 硬件结构简单:指令的执行顺序在编译时已知,处理器只需要静态调度逻辑。

多线程策略:保证一条流水线上的指令之间不存在数据依赖关系。

一种办法: 在相同的流水线中交叉执行来自不同线程的指令。

同步多线程 (Simultaneous Multithreading (SMT)):SMT 使用Oo0 Superscalar细粒度控制技术在相同时钟周期运行多个线程的指令,以更好的利用系统资源;

Alpha AXP 21464;Intel Pentium 4,Intel Nehalem i7 [超线程(Hyper-Threading)](Intel的超线程一直都是SMT2,一个物理核虚拟出两个逻辑核);IBM Power5。

评估指标 (算力指标)

Flop:浮点运算,通常为双精度;

Flop/s(Flops):每秒浮点运算次数;

Flops=【CPU核数】*【单核主频】*【CPU单个周期浮点计算能力】;

以Intel Xeon 6348 CPU为例;

28核,主频2.6GHz,支持AVX512指令集,且FMA系数=2;

CPU单周期单精度浮点计算能力=2(FMA数量)*2(同时加法和乘法)*512/32=64;

CPU单周期双精度浮点计算能力=2(FMA数量)*2(同时加法和乘法)*512/64=32;

6348的单精度算力=28x2.6x64=4659Gflops=4.6Tflops;

6348的双精度算力=28x2.6x32=2329Gflops=2.3Tflops。

5.SIMD和向量处理器

向量处理器具有更高层次的操作,一条向量指令可以同时处理N个或N 对操作数(处理对象是向量);

向量处理器的基本特性:

  • 基本思想:两个向量的对应分量进行运算,产生一个结果向量;
  • 简单的一条向量指今包含了多个操作 -> fewer instruction fetches;
  • 每一条结果独立于前面的结果: 长流水线,编译器保证操作间没有相关性;硬件仅需检测两条向量指令间的相关性;较高的时钟频率;
  • 向量指令以已知的模式访问存储器:可有效发挥多体交叉存储器的优势;不需要数据Cache (仅使用指令Cache);
  • 在流水线控制中减少了控制Hazard:有效利用流水线并发执行指令。

向量处理器单元结构:采用多流水线lane设计,lane:包含向量寄存器堆的一部分和来自每个向量功能单元的一个执行流水线。

6.GPU体系结构

GPU计算系统

CPU+GPU异构体系结构:推动异构计算的发展;针对每个任务选择合适的处理器和存储器;

通用CPU 适合执行一些串行的线程:串行执行快;带有cache,访问存储器延时低;

GPU适合执行大量并行线程:可扩展的并行执行;高带宽的并行存取。

7.硬件加速器

(领域专用体系结构)加速器

加速器是面向特定领域、针对有限算法定制设计的专用计算架构其目的是提升特定计算的性能或减少功耗需求,可分为:机器学习加速器;图计算加速器;同态加密加速器。

8.微码和超长指令字VLIW处理器

微码技术并不会被淘汰:

  • 现代微处理器中微程序控制扮演辅助的角色;
  • 芯片bug的漏洞修复(基于微码的修复和升级)。

超长指令字VLIW定义:

  • 提高指令级并行 (ILP) 的有效方法:流水线,多处理器,超标量处理器,超长指令字VLIW;
  • 定义: VLIW指的是一种被设计为可以利用指今级并行 (ILP) 优势的CPU体系结构,由于在一条指今中封装了多个并行操作,其指令的长度比RISC或CISC的指令要长,因此起名为超长指令集;
  • VS.超标量处理器:相同:一次发射并完成多个操作,提高ILP;不同:超标量:要复杂逻辑发现指令之间的数据依赖关系,以及乱序执行逻辑和超标量架构来实现多指令的并行发射;VLIW: 通过编译器对并发操作进行了编码,这种显式编码极大地降低了硬件的复杂性。

VLIW: Very Long Instruction Word

  • 定长指令,将多个相互无依赖关系的指令封装到一条超长的指令字中;
  • 每个操作槽 (slot) 均用于固定的功能;
  • 每个功能单元的operation都声明了固定的延迟。

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

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

相关文章

【C++】—— 工厂模式详解

目录 &#xff08;一&#xff09;工厂模式的特点 &#xff08;二&#xff09;工厂模式分类 1、简单工厂模式 2、工厂方法模式 3、抽象工厂模式 &#xff08;三&#xff09;总结与回顾 &#xff08;一&#xff09;工厂模式的特点 1、优势 ⼯⼚模式是⼀种创建型设计模式&a…

快速入门Visual Studio 2022开发.Net Framework研发环境指南

IDE工具 Visual Studio 2022 Vs2022企业版 - VisualStudioSetup.exe Visual Studio Code VSCodeUserSetup-x64-1.66.2.exeVSCodeUserSetup-x64-1.67.0-insider.exe IDE环境 编程字体YaHei.Consolas YaHei.Consolas.1.12.ttf IDE插件 Visual Studio Code常用插件 Chinese…

STM32单片机使用STM32CubeMX和Simulink进行联合开发-1

STM32单片机使用STM32CubeMX和Simulink进行联合开发-1 使用Simulink中的STM32扩展功能包配合STM32CubeMX进行联合开发,包含环境配置和实际应用教程。 目录 STM32单片机使用STM32CubeMX和Simulink进行联合开发-1一、环境配置1.安装扩展功能包2.安装STM32-MAT包二、创建STM32Cu…

django项目基础后端功能使用

参考材料 Django新手项目实例-CSDN博客 一、django安装 pip3 install django 二、django项目新建 在目标目下执行 django-admin startproject testdjgo 执行完成后生成对应项目路径 三、django路由功能编写 /xxx/urls.py中编写路由信息&#xff0c;并且把路由转发到对应…

说出来你别不信,盲订问界M9的原因 你们想错了,他们只图这个

文|AUTO芯球 作者|李瑞 怎么还有人说华为是骗子&#xff1f; 华为一张海报说问界M9上市6天&#xff0c;大定超过3万台。有些人就说这是假的&#xff0c;反正没第三方数据&#xff0c;华为可以随便写。 我去&#xff0c;我作为一名大定问界M9的车主&#xff0c;就奉劝哪些黑子…

Linux篇之Centos中将系统时间设置为本地时间

要在 CentOS 上将系统时间设置为本地时间&#xff0c;可以按照以下步骤进行操作&#xff1a; 1.首先&#xff0c;你需要确定你想要设置的本地时间。例如&#xff0c;如果你想要将系统时间设置为当前时间&#xff08;假设是北京时间&#xff09;&#xff0c;则可以使用以下命令获…

5.vue学习笔记(数组变化的侦测+计算属性+Class绑定)

文章目录 1.数组变化的侦测1.1.变更方法1.2.替换一个数组 2.计算属性计算属性缓存vs方法 3.Class绑定3.1.绑定对象3.2.多个对象的绑定形式3.3.绑定数组3.4.数组与对象 1.数组变化的侦测 1.1.变更方法 vue能够侦听响应式数组的变更方法&#xff0c;并在它们被调用时出发相关的…

Taro+vue3 实现电影切换列表

1.需求 我们在做类似于猫眼电影的小程序或者H5 的时候 我们会做到那种 左右滑动的电影列表&#xff0c;这种列表一般带有电影场次 2.效果 3.说明 这种效果在淘票票 猫眼电影上 都有的 &#xff0c;一般电影类型的H5 或者小程序 这个是都有的 第一是好看 第二是客观性比较好 …

【Linux】【开发】Linux module名和C语言文件名相同导致的编译问题

&#x1f41a;作者简介&#xff1a;花神庙码农&#xff08;专注于Linux、WLAN、TCP/IP、Python等技术方向&#xff09;&#x1f433;博客主页&#xff1a;花神庙码农 &#xff0c;地址&#xff1a;https://blog.csdn.net/qxhgd&#x1f310;系列专栏&#xff1a;Linux技术&…

Mysql InnoDB行锁深入理解

Record Lock记录锁 Record Lock 称为记录锁&#xff0c;锁住的是一条记录。而且记录锁是有 S 锁和 X 锁之分的&#xff1a; 当一个事务对一条记录加了 S 型记录锁后&#xff0c;其他事务也可以继续对该记录加 S 型记录锁&#xff08;S 型与 S 锁兼容&#xff09;&#xff0c;…

物联网与智能家居:跨境电商与未来生活的融合

物联网&#xff08;Internet of Things&#xff0c;IoT&#xff09;和智能家居技术正迅速崛起&#xff0c;成为跨境电商领域的创新引擎。这两者的巧妙结合不仅为消费者提供更智能、便捷的生活方式&#xff0c;同时也为电商平台和制造商带来了全新的商机。本文将深入探讨物联网与…

Flink之Task重启策略

Task重启策略 1 策略API noRestart 无参数,task失败后不重启,整个job同时失败,默认策略. 代码示例 RestartStrategies.noRestart();fixedDelayRestart 参数注释restartAttempts最大重启次数delayBetweenAttempts重启时间间隔代码示例 // 最多重启5次,每次任务失败后间隔1s重启…

记录实现级联选择器多选功能时主要用到的函数

级联选择器多选功能时主要用到的函数 1、校验所给层级是否有效并且是否为完整路径 // 功能&#xff1a;涉及到级联选择器回显时&#xff0c;需校验是否为完整的路径&#xff0c;是则回显&#xff0c;不是则无无效路径 // options为级联数据&#xff0c;selectedPaths为要校验…

C++模板——(3)类模板

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 勤奋&#xff0c;机会&#xff0c;乐观…

使用pyinstaller打包生成exe(解决gradio程序的打包问题)

解决 [Errno 2] No such file or directory: gradio_client\types.json 问题&#xff0c;不需要手动创建hook文件 解决 FileNotFoundError: [Errno 2] No such file or directory: gradio\blocks_events.pyc 问题&#xff0c;不需要将pyi文件重命名为pyc文件 最终实现gradio程…

卡码网Java基础课 | 7. 摆平积木,8. 奇怪的信

卡码网Java基础课|7. 摆平积木 7. 摆平积木8. 奇怪的信 7. 摆平积木 import java.util.Scanner; import java.util.ArrayList;public class Main{public static void main(String[] args){Scanner sc new Scanner(System.in);while(sc.hasNextInt()){int n sc.nextInt();if(…

【CSS】讲一讲BFC、IFC、GFC、FFC

1. 前言 FC&#xff08;Formatting Contexts&#xff09;&#xff0c;是CSS2.1的一个概念&#xff0c;是页面中的一块渲染区域&#xff0c;具有一套渲染规则&#xff0c;决定FC中子元素如何定位&#xff0c;以及和其他元素的关系和相互作用。在说FC之前说一下文档流。 1.1. 普…

手撕 PCA

PCA&#xff08;Principal Component Analysis&#xff09;&#xff0c;中文名称&#xff1a;主成分分析。迄今为止最流行的降维算法。 假设 n 维空间中的一个单位立方体&#xff0c;易知&#xff1a;一维空间中该立方体中任意两点的距离不超过 1 1 1&#xff0c;二维空间中该…

自动连接校园网(河海大学)

layout: post # 使用的布局&#xff08;不需要改&#xff09; title: 自动连接校园网&#xff08;河海大学&#xff09; # 标题 subtitle: 网络 #副标题 date: 2024-01-09 # 时间 author: BY ThreeStones1029 # 作者 header-img: img/about_bg.jpg #这篇文章标题背景图片 catal…