体系结构汇总复习(练习题)

1.MSI cache一致性协议问题

题解引用自:MSI cache一致性协议_假设在一个双cpu多处理器系统中,两个cpu用单总线连接,并且采用监听一致性协议(msi-CSDN博客

答:

事件A状态B状态
初始状态II
CPU A读SI
CPU A写MI
CPU B写IM
CPU A读SS

接下来分析CPU A/B中各自cache的状态变化:

  1. 初始状态时,cache均为无效,即为I;
  2. CPU A读:
    • 当CPU A的cache处于无效状态时,有处理器读PrRd事件发生,就会发生cache miss这样就会装入新数据,但此时其他的cache可能有也可能没有,所以进入S状态,当然需要总线读事件的支持,所以触发总线读事件BusRd。此时CPU A的cache状态为S状态。
    • 此时CPU B的cache依旧处于无效状态。
  3. CPU A写:
    • 当CPU A的cache处于共享状态(S)时,有处理器写PrWr事件发生,调用总线互斥读BusRdX事件(目的是告诉其他cache我要修改这个cache,你们先都无效掉),当更新数据后,需要进入M状态,告知这是最新的数据,主存中的数据也是过时的。此时CPU A的cache状态为M状态。
    • 此时CPU B的cache依旧处于无效状态。
  4. CPU B写:
    • 当CPU B的cache处于无效状态(I)时,有处理器写PrWr事件发生,会导致cache miss,调用总线互斥读BusRdX事件(目的是告诉其他cache我要修改这个cache,你们先都无效掉),把要写入的数据装入cache(这是由于采用写直达且不分配策略),然后再修改,这时就会进入M状态。
    • 此时处于M状态的CPU A cache,通过总线侦听到有总线互斥读BusRdX事件发生,则把自己的cache状态给无效掉了,此时,CPU A的cache状态为I状态。
  5. CPU A读:
    • 当CPU A的cache处于无效状态时,有处理器读PrRd事件发生,就会发生cache miss这样就会装入新数据,但此时其他的cache可能有也可能没有,所以进入S状态,当然需要总线读事件的支持,所以触发总线读事件BusRd。此时CPU A的cache状态为S状态。
    • 此时处于M状态的CPU B cache,通过总线侦听到有读BusRd的事件时,因为现在我在M状态,我的数据是最新的,所以当然由我提供数据,所以产生FLUSH事件,最后进入S状态。

2.一致性问题

答: 

在TSO模型中,Load 操作可以越过之后的Store 操作,但不能越过之前的 Store 操作;如果处理器 B 在处理器A的 Store 操作完成之前完成了这两个 Load 操作;由于处理器A的 Store 操作的延迟,可能导致处理器 B 读取到 value 的旧值,从而导致r3不一致。

3.MSI目录协议

答:

4.GPU体系结构

补充: 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

答:

a.        1.5GHz\times 0.80\times 0.85\times 0.7\times 10cores\times 32\div 4=57.12GFLOPs/s

b.1        1.5GHz\times 0.80\times 0.85\times 0.7\times 10cores\times 32\div 2=114.24GFLOPs/s

speedup=114.24/57.12=2

b.2        1.5GHz\times 0.80\times 0.85\times 0.7\times 15cores\times 32\div 4=85.68GFLOPs/s

speedup=85.68/57.12=1.5

b.3        1.5GHz\times 0.80\times 0.95\times 0.7\times 10cores\times 32\div 4=63.84GFLOPs/s

speedup=63.84/57.12=1.11

5.超长指令字VLIW

答:

方式一:

采用循环展开的 VLIW 指令进行7次循环展开。假设没有分支延迟,代码一共需要执行10个周期,10个周期内进行了23次操作,指令发射速率为每周期2.3次操作; 操作槽共计5*10=50个槽位,操作槽的有效利用率约为23/50=46%。(可进行优化)

方式二:

采用循环展开的 VLIW 指今进行7次循环展开。假设没有分支延迟期,9个周期内进行了23次操作,指令发射速率为每周期2.5次操作;操作槽个数为5*9=45个,操作槽的有效利用率约为23/45=51.1%

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Verilog】运算符

系列文章 数值(整数,实数,字符串)与数据类型(wire、reg、mem、parameter) 系列文章算术运算符关系运算符相等关系运算符逻辑运算符按位运算符归约运算符移位运算符条件运算符连接和复制运算符 算术运算符 …

React 入门 - 05(响应式与事件绑定)

本章内容 目录 一、响应式设计思想二、React 中的事件绑定 继上一节我们简单实现一个 TodoList来更加了解编写组件的一些细节。本节继续这个案例功能的完成。 一、响应式设计思想 1、在原生的 JS中,如果要实现点击”提交“按钮就将输入框的内容添加至页面列表中&…

【OpenVINO】 使用 OpenVINO CSharp API 部署 PaddleOCR 项目介绍

前言: 在之前的项目中,我们已经使用 OpenVINO TM CSharp API 部署 PaddleOCR 全系列模型,但随着PaddleOCRv4版本发布以及OpenVINO CSharp API版本迭代,上一版本的项目已经不再适用。因此在推出的最新项目中,已经完成了…

6款实用的Git可视化管理工具

前言 俗话说得好“工欲善其事,必先利其器”,合理的选择和使用可视化的管理工具可以降低技术入门和使用门槛。我们在团队开发中统一某个开发工具能够降低沟通成本,提高协作效率。今天给大家分享6款实用的Git可视化管理工具。 Git是什么&…

QT基础篇(1)QT概述

1.什么是QT QT是一个跨平台的C应用程序开发框架。它提供了一套丰富的图形用户界面(GUI)和多媒体功能,可以用于开发各种类型的应用程序,包括桌面应用程序、移动应用程序和嵌入式系统。QT具有易于使用、可定制性强、性能高等特点&a…

DelayQueue原理探究

DelayQueue并发队列是一个无界阻塞延迟队列,队列中的每个元素都有个过期时间,当从队列获取元素时,只有过期元素才会出队列。队列头元素是最快要过期的元素。 DelayQueue类图结构 由该图可知,DelayQueue内部使用PriorityQueue存放…

doris部署

doris-2.0.1.1部署安装 一、下载doris安装包二、解压到/data下,修改名称三、修改fe配置文件四、启动doris-fe五、验证doris-fe六、修改be配置文件七、启动doris-be八、mysql中连接be,在Doris中添加后端节点九、设置密码 一、下载doris安装包 wget https…

腾讯云优惠券是什么?2024年如何领取优惠券?

腾讯云优惠券是腾讯云平台提供的一种优惠方式,用户可以通过领取并使用优惠券,享受一定的折扣优惠。这些优惠券适用于腾讯云的各类产品,包括云服务器、数据库、CDN等,帮助用户降低购买成本,提高使用体验。 在2024年&…

软件测试|Django 入门:构建Python Web应用的全面指南

引言 Django 是一个强大的Python Web框架,它以快速开发和高度可扩展性而闻名。本文将带您深入了解Django的基本概念和核心功能,帮助您从零开始构建一个简单的Web应用。 什么是Django? Django 是一个基于MVC(模型-视图-控制器&a…

11.11上课笔记

1.字符串 1.字符串是基本数据类型: "字符串" 字符串字符串str(字符串) #创建或者转换其他类型的字符串 a.获取长度:len(字符串) b.字符串是一个有序的数列(sequence),也是一个可迭…

Edge浏览器停止更新方法之一(一分钟版)

一分钟时间停止器 开整原理效果步骤 结尾 开整 原理 通过限制window管理员的权限,禁止了更新程序的写入和读取,自然就更新不了了 效果 步骤 对着Edge浏览器图标右键,点击“打开文件所在位置” 到这级目录,然后往回退两级找到…

二进制部署

HOST HostnameIP地址flannedAPPmaster192.169.116.10ETCD\APIserver\Scheduler\Controller-Managernode1192.168.116.11172.17.28.0ETCD,Flanned,Kubelet,kube-proxynode2192.168.116.12172.17.26.0ETCD,Flanned,Kubelet,kube-proxy Kubernetes社区 Kubernetes文档 ETCD mas…

最新ThinkPHP版本实现证书查询系统,实现批量数据导入,自动生成电子证书

前提:朋友弄了一个培训机构,培训考试合格后,给发证书,需要一个证书查询系统。委托我给弄一个,花了几个晚上给写的证书查询系统。 实现功能: 前端按照姓名手机号码进行证书查询证书信息展示证书展示&#x…

云仓酒庄的品牌雷盛红酒LEESON分享什么是“小农香槟”?

云仓酒庄的品牌雷盛红酒LEESON分享说起香槟,第一时间会想到法国,因为只有法国的起泡酒才能叫“香槟”。那么,什么又是“小农香槟”呢? 小农香槟是相对大厂香槟而命名的,是指葡萄果农自产、自酿、自销的香槟&#xff0…

【AI】AI和点云(1/2)

目录 一、什么是点云 二、点云的应用领域 三、点云的创建 四、点云感知 一、什么是点云 在三维技术领域中,点云被定义为一种数据结构,用于表示三维空间中一组离散的点。这些点通常由它们的坐标(x,y,z)…

二分查找

二分查找(binary search)是一种基于分治策略的高效搜索算法。它利用数据的有序性,每轮缩小一半搜索范围,直至找到目标元素或搜索区间为空为止。 例:给定一个n 的数组 nums ,元素按从小到大的顺序排列且不重复。请查找并返回元素 …

尝试使用深度学习识别百度旋转验证码

最近研究了一下图像识别,一直找到很好的应用场景,今天我就发现可以用百度的旋转验证码来做一个实验。没想到效果还挺好,下面就是实际的识别效果。 1、效果演示 2、如何识别 2.1准备数据集 首先需要使用爬虫,对验证码图片进行采…

克服VSCode与WSL的互通障碍:访问‘\wsl.localhost’的有效方法

前言 大家好!今天染念想和大家分享一下我最近在使用 VS Code 时遇到的一个有趣问题,以及我是如何解决它的。这个问题涉及到在 Windows 上使用 WSL(Windows Subsystem for Linux)时的一个安全设置问题。 首先,让我简单…

Java中SpringBoot组件集成接入【Knife4j接口文档(swagger增强)】

Java中SpringBoot组件集成接入【Knife4j接口文档】 1.Knife4j介绍2.maven依赖3.配置类4.常用注解使用1.实体类及属性(@ApiModel和@ApiModelProperty)2.控制类及方法(@Api、@ApiOperation、@ApiImplicitParam、 @ApiResponses)3.@ApiOperationSupport注解未生效的解决方法5.…

livp转换成jpg怎么转换?看完这篇文章你就知道了

livp转换成jpg怎么转换?livp文件是一种特定的图片格式,将其转换为jpg格式可以方便我们进行存储、共享和编辑。此外,jpg格式也是一种广泛支持的图片格式,几乎所有的设备和软件都能够识别和打开这种格式的图片。因此,将l…