电子科技大学计算机系统结构:课后作业

news2024/12/26 0:04:10

计算机体系结构作业答案

第一二章作业

1.试述Flynn 分类的4 种计算机系统结构有何特点。

参考答案:

Flynn按照指令流和数据流两种不同的组合,把计算机系统的结构分为以下4 类:

1)单指令流单数据流SISDSingle Instruction Stream Single Datastream),SISD 是传统的顺序处理计算机;

2)单指令流多数据流SIMDSingle Instruction Stream Multiple Datastream),SIMD 以阵列处理机为代表;

3)多指令流单数据流MISDMultiple Instruction Stream Single Datastream),MISD 实际代表何种计算机,存在着不同的看法;

4)多指令流多数据流MIMDMultiple Instruction Stream Multiple Datastream),多处理机与多计算机系统属于MIMD 结构。

单指令流单数据流(SingleInstructionStreamSingleDataStreamSISD 

SISD其实就是传统的顺序执行的单处理器计算机,其指令部件每次只对一条指令进行译码,并只对一个操作部件分配数据。 

单指令流多数据流SingleInstructionStreamMultipleDataStreamSIMD 

SIMD以并行处理机为代表,结构如图,并行处理机包括多个重复的处理单元PU1PUn,由单一指令部件控制,按照同一指令流的要求为它们分配各自所需的不同的数据。 

多指令流单数据流(MultipleInstructionStreamSingleDataStreamMISD 

MISD的结构,它具有n个处理单元,按n条不同指令的要求对同一数据流及其中间结果进行不同的处理。一个处理单元的输出又作为另一个处理单元的输入。 

多指令流多数据流MultipleInstructionStreamMultipleDataStreamMIMD 

MIMD的结构,它是指能实现作业、任务、指令等各级全面并行的多机系统,多处理机就属于MIMD

2.假设高速缓存Cache 工作速度为主存的5 倍,且Cache 被访问命中的概率为90%

则采用Cache 后,能使整个存储系统获得多高的加速比?

参考答案:

加速比 = 1/(1-0.9 +0.9/5) = 25/7

3.某工作站采用时钟频率为15 MHz、处理速率为10 MIPS 的处理机来执行一个已知混合程序。假定每次存储器存取为1 个时钟周期延迟,试问:

1)此计算机的有效CPI 是多少?CPI时间是多少?

2)假定将处理机的时钟提高到30 MHz,但存储器子系统速率不变。这样,每次存储器

存取需要两个时钟周期。如果30%指令每条只需要一次存储存取,而另外5%每条需要两次存储存取,并假定已知混合程序的指令数不变,并与原工作站兼容,试求改进后计算机的CPI 是多少?CPI时间是多少?

参考答案:

(1)CPI = 一个程序的CPU 时钟周期数/ IC = 时钟频率/MIPS =15/10 = 1.5

CPI时间是1.5*1/15us = 0.1us

(2)由第一问可得原始CPI 1.5 ,改进后一次访存操作需要2 个时钟周期,比改进前每次访存多了1 个时钟周期; 

由于有30% 的指令由于需要1 次访存,所以它们的时钟周期数需要加1

5% 的指令由于需要2 次访存,所以它们的时钟周期数需要加2.

所以可得 CPI new = CPI original + 30%*1 + 5%*2 = 1.5 + 0.3 + 0.1 = 1.9

改进后CPI new的时间:1.9 *1/30us = 0.0627us

4.处理机的时钟30 MHz

(1)计算在单处理机上用上述跟踪数据运行程序的平均CPI。

(2)根据(1)所得CPI,计算相应的MIPS 速率。

参考答案:

  1. 平均CPI = 1*60% + 2*18% + 4*12 + 8*10% = 2.24
  2. MIPS = 时钟周期/CPI = 30M/2.24 = 13.4

5. 区分指令集系统结构分类(ISA分类)与通用寄存器结构分类。

参考答案:

答:ISA分类是根据CPU内部数据存储类型进行分类:堆栈型、累加器型、通用寄存器型(R-M,R-R)。

通用寄存器是ISA的一种类型,包括:寄存器-存储器型、寄存器-寄存器型。

6. ISA分类、指令长度、寻址方式、操作数类型、指令操作类型、指令操作码编码、转移控制类指令这几个方面说明CISC8086指令系统与RISC MIPS指令系统的特点。

参考答案:

8086指令系统特点:属于R-M型ISA,指令长度是变长的,寻址方式有寻址字段(立即数、寄存器、直接寻址、寄存器间接寻址、基址寻址、变址寻址、基址变址寻址、串操作寻址、相对寻址、I/O寻址),操作数类型(定点数据类型有字节、16位字、双字、4字,字符串),指令操作类型(传送类、算术运算类、逻辑类、串操作类、程序转移类、处理器控制类),指令操作码编码(1-2个字节编码),转移控制流指令(无条件转移指令直接或间接寻址、条件转移指令和循环控制指令相对寻址、子程序调用与返回指令)。

  1. MIPS指令系统特点:属于R-R型ISA,指令长度是固定的,寻址方式无专门寻址字段(立即数、位移量寻址、相对寻址),操作数类型(定点数据类型有8位字节、16位半字、32位字和64位双字。浮点数有32位单精度和64位双精度浮点数),指令操作类型(LOAD/STORE类、ALU操作类、分支与跳转类、浮点运算类),指令操作码编码(6位操作码加辅助操作码),转移控制流指令(跳转指令拼接地址、分支指令相对寻址、跳转与链接、寄存器跳转与链接、等于零时转换)。

第三章作业

作业一

1.解释第三章PPT中图3-2.28中各控制信号的作用。

参考答案:

流水线各级控制信号的定义

流水线级

控制信号

注释

IF级

BTAKEN

转移发生

ID级

SST

选择store(rd)

EXE级

SIMM

选择立即数

ALUOP

ALU操作码

WZ

写Z标志

MEM级

WMEM

写存储器

WB级

SLD

选择load

WREG

写寄存器堆

2. 在第四个时钟周期结束时各个流水线寄存器和控制信号的值: 第一条指令进入MEM级,第二条指令进入EXE级,第三条指令进入ID级,第四条指令进入IF级。

参考答案:

第四个时钟周期结束,即刚进入第五个周期时,PC输出4,指向第五条指令;IR输出第四条指令add r7,r5,r6;A和B分别输出寄存器r5和r6的内容(第三条指令);R输出存储器地址(第二条指令);C输出第一条指令的加法结果。

寄存器:

IF/ID: IR = add r7,r5,r6

ID/EXE: d=4, A=(r5), B=(r6), I=(null)

EXE/MEM: d=2, Z=0(不写Z标志), R=(r3)+100, S=(null)

MEM/WB: d =1, D=(null), C=4+(r1)

控制信号:

BTAKEN=0, SST=0, SIMM=1, ALUOP=(add), WZ=0, WMEM=0, SLD=0, WREG=0

3. 在第六个时钟周期结束时各个流水线寄存器和控制信号的值:

参考答案:

第六个时钟周期结束,即刚进入第七个周期时:PC输出6,指向第七条指令;IR输出第六条指令subi r10,r10,1;A和B分别输出寄存器r9和r8的内容,I送出32位的200(第五条指令);R输出加法结果(第四条指令);C输出第三条指令减法操作的结果。

寄存器:

IF/ID: IR = subi r10, r10, 1

ID/EXE: d=(null), A=(r9), B=(r8), I=200

EXE/MEM: d=7, Z=1(写Z标志), R=(r5)+(r6), S=(null)

MEM/WB: d =4, D=(null), C=(r5)-(r6)

控制信号:

BTAKEN=0, SST=1, SIMM=0, ALUOP=(add), WZ=1, WMEM=0, SLD=1, WREG=1

4.第五个时钟周期结束,即刚进入第六个周期时:PC输出5指向第六条指令;IR输出第五条指令store r8,200(r9);A和B分别输出r5和r6的内容(第四条指令);R输出减法结果(第三条指令);D输出第二条指令从存储器取来的数据。

1)当第5个时钟周期结束时(即刚进入第6个时钟周期),给出以下流水线寄存器的内容

(1)IF级的PC内容 =      ,IR的内容是           

(2)ID级的A寄存器内容来自寄存器    ,B寄存器内容来自寄存器      ,d寄存器内容=          

(3)EXE与MEM级之间的R寄存器内容是         , S 寄存器内容=         ;  

(4)MEM与WB级之间的D寄存器内容是          , d 寄存器内容=       ;

2)WB级上指令“add r1, r1, 4”这一级完成的操作和所需要的控制信号。

3)写出指令“and r1, r2, r3”, “load  r1, 10( r2 )”,“store  r3, 20( r4 )”, 所需要的控制信号。

参考答案:

(1) 5    store r8, 2000(r9)

(2)r5   r6   7

(3)(r5)-(r6) null

(4)(r3+100) 2

2)

SLD=0, WREG=1

3)

SST

SIMM

ALUOP

WZ

WMEM

SLD

WREG

BTAKEN

Add r1, r2, r3

0

0

10

1

0

0

1

0

Load r1, 10(r2)

0

1

10

0

0

1

1

0

Store r3, 20(r4)

1

1

10

0

1

x

0

0

Branch lop

0

0

xx

0

0

0

0

1

作业二

1.各流水级存放控制信号的流水线寄存器有何异同?

参考答案:

以PPT图1.28为例,

  1. ID级存控制信号的寄存器存放的是含EXE、MEM、WB级所需的控制信号;
  2. EXE级存控制信号的寄存器存放的是含MEM、WB级所需的控制信号;
  3. MEM级存控制信号的寄存器存放的是含WB级所需的控制信号。

相同之处:都存有WB级控制信号。

不同之处:前面级的流水线控制信号寄存器包含后面级的控制信号,而后面级的则无前级信号。

2.设流水线模型机采用load前推和数据前推,按时钟周期画出以下指令序列的时序图,标示出前推示意。

       load  r2, 12(r3)

       addi  r4, r2, 10

       and   r1, r2, r4

       store  r1, 10(r5)

参考答案:

假设store也采用前推技术:

3、给出第三章PPT中图3-3.39的BDEPEN控制信号的真值表。

BDEPEN1= (ID_rs2= =EXE_rd)(EXE_WREG= =1)(ID_rs2IsReg) + ……

参考答案:

输入

输出

ID_rs2

IsReg

EXE_WREG

ID_rs2

==EXE_rd

MEM_WREG

ID-rs2

= =MEM_rd

BDEPEN1

BDEPEN0

输入选择

0

X

X

X

X

0

1

立即数

1

0

X

0

X

0

0

B

1

1

0

0

X

0

0

B

1

1

1

0

X

1

0

MEM_R

1

0

X

1

0

0

0

B

1

0

X

1

1

1

1

WB_C

1

1

0

1

0

0

0

B

1

1

1

1

0

1

0

MEM_R

1

1

0

1

1

1

1

WB_C

1

1

1

1

1

1

0

MEM_R

第五章作业:

1.某个计算机系统有128字节的高速缓存。它采用每块有8个字节的4路组相联映射。物理地址大小是32位,最小可寻址单位是1个字节。(1)画图说明高速缓存的组织并指明物理地址与高速缓存地址的关系;(2)可以将地址000010AFH分配给高速缓存的哪一组?(3)假如地址000010AFH和FFFF7AxyH可以同时分配给同一个高速缓存组,地址中的x与y的值为多少?

参考答案:

(1)

(2)考虑低八位:

(AF)16 = (10101111)2,所以应为01

(3)同理可得,x = (***0)2,y=(1***)2

2.假设对指令Cache的访问占全部访问的75%,而对数据Cache的访问占全部访问的25%。Cache的命中时间为1个时钟周期,失效开销为50个时钟周期,在混合Cache中一次LOAD或STORE操作访问Cache的命中时间都要增加一个时钟周期,32KB的指令Cache的失效率为0.39%,32 KB的数据Cache的失效率为4.82%,64 KB的混合Cache的失效率为1.35%。又假设采用写直达策略,且有一个写缓冲器,并且忽略写缓冲器引起的等待。试问指令Cache和数据Cache容量均为32 KB的分离Cache和容量为64 KB的混合Cache相比,哪种Cache的失效率更低?两种情况下平均访存时间各是多少?

参考答案:

(1)分离的失效率=75%*0.39%+25%*4.82%=1.5%

混合的失效率=1.35%,混合更低。

(2)分离的平均访存时间=75%*(1+0.39%*50)+25%*(1+4.82%*50)=1.75

混合的平均访存时间=75%*(1+1.35%*50)+25%*(1+1+1.35%*50)=1.925

3.给定以下的假设,试计算直接映象Cache和两路组相联Cache的平均访问时间以及CPU的性能。由计算结果能得出什么结论?

(1)理想Cache情况下的CPI为2.0,时钟周期为2 ns,平均每条指令访存1.2次。

(2)两者Cache容量均为64KB,块大小都是32B。

(3)组相联Cache中的多路选择器使CPU的时钟周期增加了10%。

(4)这两种Cache的失效开销都是80 ns。

(5)命中时间为1个时钟周期。

(6)64 KB直接映象Cache的失效率为1.4%,64 KB两路组相联Cache的失效率为1.0%。

参考答案:

(1)

直接映象的平均访存时间=1*2+1.4%*80=3.12

二路组相连的平均访存时间=1*2+1.0%*80=3

(2)

直接映象的CPU时间= IC*(2.0*2 + 1.2*1.4%*80)=5.34IC

二路组相连的CPU时间 = IC*(2.0*2.2 + 1.2*1.0%*80)=5.36IC

  1. 虚拟存储器与cache综合分析题

如果Cache采用虚拟索引物理标识,假定页式虚拟地址42位,物理地址34位,每页为8KB,块大小64B,Cache大小同一页大小,TLB全相联,Cache直接映像。

试计算TLB中的标识位数和物理地址位数;以及Cache的索引、块偏移、标识的位数。

答案:Cache索引7位:8kB/64=(23*210)/26 =27

块偏移6位: 每块64B, 26

标识: 34-7-6 = 21位

一页地址位数:13位(因为每页8KB),所以页内偏移位:13位

TLB标识位:42-13=29位(虚拟页号),所以物理页号:34-13=21位

补充:如果Cache采用虚拟索引物理标识,假定页式虚拟地址42位,物理地址34位,每页为4KB,块大小64B,Cache大小同一页大小,TLB全相联,Cache直接映像。

问:计算TLB中的标识位数;以及Cache的索引、块偏移、标识的位数。

答:Cache大小与页大小相同,4KB,每块64B,共64块,则:

Cache索引6位: 4KB/64B=(22*210)/26 =26

块偏移6位: 每块64B, 26

标识: 34-6-6 = 22位

一页地址位数:12位(因为每页4KB),所以页内偏移位:12位

TLB标识位:42-12=30位(虚拟页号),所以物理页号:34-12=22位

另外注意:

如果给一个虚拟地址,根据上述TLB中的位数,可以推出对应的虚拟页号;查表,可以得到物理页号;将物理页号+页内偏移=物理地址;最后对应Cache的索引、块偏移及标识进行分析。

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

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

相关文章

这款AI绘画工具也太太太赞了!模型丰富,轻松绘画,赶快收藏起来!

现今科技发展迅速,让人工智能(AI)成为了我们日常生活中的必备之物。在艺术领域,AI技术也开始广泛应用。特别是AI绘画软件,以其高效、精准的绘画方式,已成为越来越多艺术家、设计师和普通用户绘画的首选工具…

HUSTOJ使用指南

如何快速上手(了解系统的功能)? admin管理员用户登录,点击右上角管理,仔细阅读管理首页的说明。 切记:题目导入后一次只能删一题,不要导入过多你暂时用不上的题目,正确的方式是每次…

Cron在前端的使用,vue与element ui的vue-cron插件的使用及将定时任务cron表达式解析成中文

文章目录 vue-cron插件的使用安装依赖引用Vue页面去掉秒和年定时任务cron解析成中文该插件存在的一个缺陷 vue-cron插件的使用 安装依赖 执行下面npm命令: npm install vue-cron --save 引用 在想使用cron的vue页面引入以下: import VueCron from ‘vue-cron’ …

node版本管理工具nvm安装和使用

公司的前端项目使用的node版本是10.11.1比较老的版本,但是新开发的项目需要使用vue3viteelectron,需要使用较新的node版本 。综上决定研究研究nvm对node进行切换管理。有相同需求的朋友希望下面的文章可以帮助到你们。借鉴了一些博主的文章,在文章里也总…

重磅!Cloud Ace 在班加罗尔和孟买成立新的据点

Cloud Ace Cooperation(总部位于东京千代田区; Makoto Aoki,总裁)很高兴地宣布,我们已经在班加罗尔建立了新的开发中心,并在孟买建立了新的销售办事处,作为 Cloud Ace 进一步扩大公司在印度业务…

docker-compose通过volume恢复mysql数据

概述 docker rm是docker删除容器的命令。 会清空容器内的所有数据和配置,即真正的将容器清空并删除。 但是之前通过volume挂载到宿主机上是不受影响的。 docker rm -v如果是-v的命令那么会同时删除通过volume映射到宿主机上的文件 通过volume恢复数据 使用docke…

第六十六天学习记录:《高质量C/C++编程指南》中附录的考试试卷(含答案)

该试卷转载自林锐《高质量C/C编程指南》,先贴下原作者的版权声明。 版权声明:本书的大部分内容取材于作者一年前的书籍手稿(尚未出版),现整理汇编成为上海贝尔网络应用事业部的一个规范化文件,同时作为培训…

chatgpt赋能python:Python如何分配内存

Python如何分配内存 Python是一种动态解释型语言,它在运行时分配内存用于存储变量和对象。Python提供了一种内存管理机制,它能够动态地分配和管理内存。本文将介绍Python如何分配内存并讨论与之相关的一些最佳实践。 Python内存管理机制 Python中的所…

Vue.js 中的性能优化是什么?如何进行性能优化?

Vue.js 中的性能优化是什么?如何进行性能优化? Vue.js 是一款流行的前端框架,它具有响应式数据绑定、组件化开发、虚拟 DOM 等特性,使得开发者可以更加高效地构建交互式的用户界面。然而,在实际开发中,由于…

LeetCode 2352. 相等行列对:手动哈希

【LetMeFly】2352.相等行列对:手动哈希 力扣题目链接:https://leetcode.cn/problems/equal-row-and-column-pairs/ 给你一个下标从 0 开始、大小为 n x n 的整数矩阵 grid ,返回满足 Ri 行和 Cj 列相等的行列对 (Ri, Cj) 的数目。 如果行和…

ArduPilot之H743遗留配置问题解决

ArduPilot之H743遗留配置问题解决 1. 源由2. 资源3 遗留问题汇总3.1 问题一:无法设置VTX 600m3.2 问题二:双向Dshot未显示RMP转速3.3 问题三:mavlink esp32 2.4G WiFi电传 4. 参考资料 1. 源由 在ArduPilot开源代码之H743BMI270x2ChibiOS配置…

步进电机相数、细分、步距角、接线方法

1、旋转步进电机 旋转步进电机就是电机是一步一步转动的,故叫旋转步进电动机。每输入一个脉冲冲信号,该电动机就转过一定的角度,因此旋转步进电机是一种把脉冲变为角度位移的执行元件。 可通过脉冲频率控制步进电机的旋转速度,通…

ChatGPT中文版提示词学习手册, 学完工作效率提升百倍!

既然你对ChatGPT及其功能有了⼀些了解,让我们更深入地了解⼀下ChatGPT是什么以及它是如何工作的。 那么ChatGPT是如何工作的呢?在高层次上,这个过程可以分解为以下步骤: 1. 用户将文本输入ChatGPT界面。这可能是一个问题&#xf…

Android AIDL的使用(配源码)

零、完整源代码 链接: https://github.com/jx0260/TestGradle 一、创建AIDL文件 // IShopAidlInterface.aidl package com.example.testgradle;// Declare any non-default types here with import statementsinterface IShopAidlInterface {String getProductInfo(int prod…

speedtest-cli 源码集成

speedtest-cli 是一个开源的测速sdk,可以下载源码集成到自己的项目中,源码是C代码,所以可以集成到linux终端程序中,如果在Android APP中需要通过NDK开发集成,下面是在linux设备中集成过程。 1、首先在github中下载源码…

代码随想录算法训练营第四十九天|121. 买卖股票的最佳时机|122.买卖股票的最佳时机II

LeetCode121. 买卖股票的最佳时机 动态规划五部曲: 1,确定dp数组(dp table)以及下标的含义:dp[i][0] 表示第i天持有股票所得最多现金,其实一开始现金是0,那么加入第i天买入股票现金就是 -pric…

界面组件DevExpress Reporting v22.2亮点 - 添加更多自定义支持

DevExpress Reporting是.NET Framework下功能完善的报表平台,它附带了易于使用的Visual Studio报表设计器和丰富的报表控件集,包括数据透视表、图表,因此您可以构建无与伦比、信息清晰的报表 界面组件DevExpress Reporting v22.2已正式发布一…

CDN如何帮助我们的网站实现安全?

各类网络攻击正在变得越来越复杂,它们有可能导致服务可用性的严重中断和企业的财务损失。根据Gartner的数据,IT行业平均停机每分钟就将为企业带来超过3万元的损失。 对于每个具有在线相关业务的企业,如何能以安全、可靠和快速的方式服务于用…

MySQL(进阶篇2.0)

SQL优化 插入数据 insert 如果需要一次性往数据库表中插入多条记录,可以从以下三个方面进行优化 1、优化方案一 批量插入数据 insert into tb_test values(1, Tom),(2,Cat),(3,Jerry);2、优化方案二 手动控制事务 start transaction; insert into tb_test v…

ShardingSphere 荣获一等奖!2022 年中国开源创新大赛成绩单公布

🏆 参赛回顾 “2022年中国开源创新大赛”在国家中央网信办信息化发展局的指导下,由中国互联网发展基金会、中国网络空间研究院、中国互联网投资基金联合主办,大赛以“开源创新,共建生态”为主题,围绕国家在开源人才培养…