计算机系统结构期末考试题

第一题

下列两个程序分别在C, 32位系统上运行,请分析最后的运行结果。
程序一:

int main(){
    int value, count_value;
    float sota;
    scanf("%d\n", &value);
    sota = (float)value;
    count_value = (int)sota;
    printf("%d", sota - count_value);
}

程序二:

int main(){
    float sota = 0.1*INT_MAX;
    float sum = 0.1;
    while(1){
        if(sum >= sota)break;
        sum += 0.1;
    }
    printf("%lf", sum);
}


各位客官先不要着急看答案,可以自己思考一下,有基本的系统结构的知识的同学应该不难回答这两个问题,所以,请大家把答案打在下方的评论区,然后再来看吧!



第二题


请详细分析下列语句中出现的相关性种类。

L.D    F0, 0(R1)        S1;
MuL.D  F4, F0, F2       S2;
S.D    F4, 0(R1)        S3;
DADDIU R1, R1, #-8      S4;   
BNE    R1, R2 loop      S5;
L.D    F0, 0(R1)        S6;
MUL.D  F4, F0, F2       S7;
S.D    F4, 0(R1)        S8; 
DADDIU R1, R1, #-8      S9;
BNE R1, R2, loop        S10;

答案揭晓

程序一输出为 -64 至 63 之间的整数值,都为合理。
因为这是系统中所有的误差值,三十二位的操作系统,其有效值位为23,一个符号位,七个指数位,故输出的可能值是 最大的截断值,全一指数(127),然后右移一位,即128/2 - 1 = 63, 负数因为使用符号位,补码表示,则是-64,
所以答案是一个区间,[-64, 63] 。

程序二死循环
此程序表达的意思为,充分理解浮点数和整数的关系,为什么会是死循环呢?
因为当程序运行到一定阶段,每次只加0.1就没有用了,加不上去,相加产生的误差就是第一个程序那样,高达七位,那样0.1*INT_MAX这个指标永远也实现不了,所以出不来!
所以答案是程序会陷入循环中出不来 。

作者在写这道题的时候,天真的以为,强制类型转换不就是截断和加长吗,第一题就是0啊,第二题那不就输出 0.1*INT_MAX+0.1吗,这下一看,恍然大悟,不是一个层面啊,虽然0也是合理的,毕竟0属于[-64, 63]的区间内,第二题就跑的没边了!

第二题
怎么说呢, 本题主要考两个知识,第一,就是数据相关的种类,读后写,写后读,写后写。还有名称相关,控制相关。这一题中没有用到名称相关,因为那是在同一个寄存器上进行写操作的相关。 还有一点冷门知识:

"""
L.D 取指令 也就是往寄存器里写。

S.D 存储指令,还是往寄存器里写。

MUL.D 乘法指令,后两个操作数进行相乘,结果放到第一个操作数中。

DADDIU. 加法指令,把一个寄存器的内容加上一个立即数并忽略溢出,

其中D是定点寄存器, ADD是加法 I是立即数,U是忽略溢出

BNE 判断两个数相不相等, 若不相等则继续,相等就跳转, N是not, E是equal.
"""

所以呢,S1与 S2,S2与S3, S3与S4,S4与S5, S6与 S7, S7与S8, S8与S9, S9与S10都存在数据相关,其中


S1 , S2 写后读, RAW.
S2 , S3 写后写, WAW.
S3 , S4 读后写, WAR.
S4 , S5 写后读, RAW. + 控制相关
S6 , S7 写后读, RAW.
S7 , S8 写后写, WAW.
S8 , S9 读后写, WAR.
S9 , S10 写后读, RAW. + 控制相关

明确概念,才能少出错误!

要是有收获,就请点个赞吧,您的支持是我最大的动力!

第一章 计算机体系结构的基本概念 1.1 引论 1.2 计算机体系结构的概念 1.2.1 计算机系统中的层次概念 1.2.2 计算机体系结构 1.2.3 计算机组成和计算机实现技术 1.3 计算机体系结构的发展 1.3.1 存储程序计算机体系结构及其发展 1.3.2 计算机的分代和分型 1.3.3 应用需求的发展 1.3.4 计算机实现技术的发展 1.3. 5 体系结构的生命周期 1.4 计算机体系结构中并行性的发展 1.4.1并行性概念 1.4.2 提高并行性的技术途径 1.5 定量分析技术基础 1.5.1 计算机性能的评测 1.5.2 测试程序 1.5.3 性能设计和评测的基本原则 1.5.4 CPU的性能 1.6 影响计算机体系结构的成本和价格因素 1.6.1 集成电路的成本 1.6.2 计算机系统的成本和价格 1.7 小结习一第二章 计算机指令集结构设计 2.1 指令集结构的分类 2.1.1 指令集结构的分类 2.1.2 通用寄存器型指令集结构分类 2.2 寻址技术 2.3 指令集结构的功能设计 2.3.1 CISC计算机指令集结构的功能设计 2.3.2 RISC计算机指令集结构的功能设计 2.3.3 控制指令 2.4 操作数的类型、表示和大小 2.5 指令集格式的设计 2.5.1 寻址方式的表示方法 2.5.2 指令集格式的选择 2.6 编译技术与计算机体系结构设计 2.6.1 现代编译器的结构和相关技术 2.6.2 现代编译技术对计算机体系结构设计的影响 2.6.3 计算机体系结构对当前编译技术的影响 2.7 DLX指令集结构 2.7.1 DLX指令集结构 2.7.2 DLX指令集结构效能分析 2.8 小结习二第三章 流水线技术 3.1 流水线的基本概念 3.1.1 流水线的基本概念 3.1.2 流水线的分类 3.2 DLX的基本流水线 3.2.1 DLX的一种简单实现 3.2.2 基本的DLX流水线 3.2.3 流水线性能分析 3. 3 流水线中的相关 3.3.1 流水线的结构相关 3.3.2 流水线的数据相关 3.3.3 流水线的控制相关 3.4 流水线计算机实例分析(MIPS R4000) 3.4.1 MIPS R4000整型流水线 3.4.2 MIPS R4000浮点流水线 3.4.3 MIPS R4000流水线的性能分析 3.5 向量处理机 3.5.1 向量处理方式和向量处理机 3.5.2 向量处理机实例分析 3.6 小结习三第四章 指令级并行 4.1 指令级并行的概念 4.1.1 循环展开调度的基本方法 4.1.2 相关性 4.2 指令的动态调度 4.2.1 动态调度的原理 4.2.2 动态调度算法之一:记分牌 4.2.3 动态调度算法之二:Tomasulo算法 4.3 控制相关的动态解决技术 4.3.1 减少分支延迟:分支预测缓冲技术 4.3.2 进一步减少分支延迟:分支目标缓冲 4.3.3 基于硬件的推断执行 4.4 多指令流出技术 4.4.1 超标量技术 4.4.2 多指令流出的动态调度 4.4.3 超长指令字技术 4.4.4 多流出处理器受到的限制 4.5 小结习四第五章 存储层次 5.1 存储器的层次结构 5.1.1 从单级存储器到多级存储器 5.1.2 存储层次的性能参数 5.1.3 “Cache—主存”和“主存—辅存”层次 5.1.4 存储层次的四个问 5.2 Cache基本知识 5.2.1 映象规则 5.2.2 查找方法 5.2.3 替换算法 5.2.4 写策略 5.2.5 Cache的结构 5.2.6 Cache性能分析 5.2.7 改进Cache性能 5.3 降低Cache失效率的方法 5.3.1 增加Cache块大小 5.3.2 提高相联度 5.3.3 Victim Cache 5.3.4 伪相联Cache 5.3.5 硬件预取技术 5.3.6 由编译器控制的预取 5.3.7 编译器优化 5.4 减少Cache失效开销 5.4.1 让读失效优先于写 5.4.2 子块放置技术 5.4.3 请求字处理技术 5.4.4 非阻塞Cache技术 5.4.5 采用两级Cache 5.5 减少命中时间 5.5.1 容量小,结构简单的Cache 5.5.2 虚拟Cache 5.5.3 写操作流水化 5.5.4 Cache优化技术小结 5.6 主存 5.6.1 存储器技术 5.6.2 提高主存性能的存储器组织结构 5.7 虚拟存储器 5.7.1 虚拟存储器基本原理 5.7.2 快表(TLB) 5.7.3 页面大小的选择 5.8 进程保护和虚存实例 5.8.1 进程保护 5.8.2 页式虚存举例:Alpha AXP的存储管理和21064的TLB 5.9 Alpha AXP 21064存储层次 5.10 小结习五第六章 输入输出系统 6.1 概述 6.2 存储设备 6.2.1 磁盘设备 6.2.2 磁带设备 6.2.3 光盘设备 6.3 总线 6.3.1 总线分类 6.3.2 总线基本工作原理 6.3.3 总线使用 6.3.4 总线标准和实例 6.3.5 设备的连接 6.3.6 CPU与I/O处理的匹配 6.4 通道处理机 6.4.1 通道的作用和功能 6.4.2 通道的工作过程 6.4.3 通道种类 6.4.4 通道中的数据传送过程 6.4.5 通道的流量分析 6.5 I/O与操作系统 6.5.1 I/O和Cache数据一致性 6.5.2 DMA和虚拟存储器 6.6 I/O系统设计 6.7 小结习六第七章 多处理机 7.1 引言 7.1.1 并行计算机体系结构的分类 7.1.2 通信模型和存储器的结构模型 7.1.3 通信机制的性能 7.1.4 不同通信机制的优点 7.1.5 并行处理面临的挑战 7.1.6 并行程序的计算/通信比率 7.2 多处理机的存储器体系结构 7.2.1 集中式共享存储器体系结构 7.2.2 分布式共享存储器体系结构 7.3 互连网络 7.3.1 互连网络的性能参数 7.3.2 静态连接网络 7.3.3 动态连接网络 7.4 同步与通信 7.4.1 同步机制 7.4.2 大规模机器的同步 7.5 并行化技术 7.5.1 并行化的基本策略 7.5.2 并行语育与编译器 7.6 多处理机实例 7.6.1 Challenge多处理机系统 7.6.2 Origin 20007.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值