计算机系统基础2模拟题答案 下载本文

内容发布更新时间 : 2024/6/13 15:27:06星期一 下面是文章的全部内容请认真阅读。

1. (a)在流水线处理器中,什么是冒险(hazard)?在什么情况下出现冒险?对于冒险一般如

何处理?

(b)什么是CISC?什么是RISC?它们各自有什么特点和区别? (c)什么是虚拟地址?虚拟地址有什么作用? (d)解释下列名词:大端(bigendian)、小端(littleendian)、主机序、网络序 (a) 流水线冲突:在流水线系统中,由于相关的存在,使得指令不能在指定的周期内完成。流水线冲突包括结构冲突、数据冲突和控制冲突三种。 1) 结构冲突:因为硬件资源满足不了指令重叠执行要求而产生的冲突。解决方法:设置独立的数据、指令cache;阻塞后面指令运行 2) 数据冲突:一条指令依赖于前面指令的运行结果而产生的冲突。解决方法:定向、流水线互锁和编译器指令调度 3) 控制冲突:流水线遇到跳转指令或者其它更改pc值的指令。解决方法:预测指令运行、延迟跳转、尽快计算跳转目标地址。 (b)CISC 是“复杂指令集”的简称,复杂指令集指令数量很多,部分指令的延迟很长,编码是可变长度的。RISC 是“精简指令集”的简称,精简指令集指令数量少得多,没有较长延迟的指令,编码是固定长度的。

(c)虚拟地址是操作系统提供的对主存的抽象,它为每个进程提供了一个大的、一致的和私有的地址空间。它的作用是1)它将主存看成一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在主存和磁盘之间来回传送数据,通过这种方式,它高效的利用了主存2)它为每个进程提供了一致的地址空间,从而简化了存储器管理3)它保护了每个进程的地址空间不被其它进程破坏。

(d)最低有效字节在最前面的方式,称为小端法,最低有效字节在最后面的方式,称为大端法。主机序是指机器CPU采用的字节表示方法。网络序是TCP/IP中规定的数据表示格式, 与CPU类型和操作系统无关,网络序采用大端排列。 2. 有如下假设:

(1)存储器是字节寻址的;

(2)存储器访问的是1字节的字(不是4字节的字);

(3)地址宽度为13位;

(4)高速缓存是2路组相联的(E=2),块大小为4字节(B=4),有8个组(S=8);高速缓存的内容如下,所有数字都是以十六进制来表示的:

(a)下面的放开展示的是地址格式(每个小方框一个位)。指出(在图中标出)用来确 定下列内容的字段:

(1)CO高速缓存块偏移 (2)CI高速缓存组索引 (3)CT高速缓存标记

(b)假设一个程序运行在上述机器上,它引用0xE34处的1个字节的字。指出访问的高速缓存条目和十六进制表示的返回的高速缓存字节值。指出是否会发生缓存不命中,如果出现缓存不命中,用“-”来表示“返回的高速缓存字节”。

(a)由于块大小是4(2),那么需要两位来表示块内偏移;由于缓存一共有8(2)组,那么需

要3位来表示组索引;由于地址一共13位,那么标记位为8(13–2-3)位;按照高速缓存地址划分的规则(从高位到低位依次是标记,组索引,块内偏移),13位地址可标记为:

23

(b)地址0xE34的二进制表示为:0b111000110100;根据上面的讨论,末两位为块内偏

移0b00(0x0),末两位之前三位为组索引0b101(0x5),末五位之前是标记 0b1110001(0x71);通过查表可以找到组号为5,标记为0x71 的位置,该位置有效位为1,读取第一个字节得到数据0xB。

3. (a)确定下面的malloc请求序列得到的块大小和头部值。假设:

(1)分配器维持双字对齐,使用隐式空闲链表,格式如下图所示。 (2)块大小向上摄入为最接近的8字节的倍数。

(b)确定下面每种对齐要求和块格式的组合的最小块大小。假设:隐式空闲链表,不允 许有效载荷为零,头部和脚部放在4字节的字中。

(a)块大小包括块头部大小(如果块有尾部的话,那么也包含尾部大小),当请求3 字

节大小的块时,需要3+4=7字节的内容,而根据条件的8字节倍数要求,块的大小确定为8字节(最后一字节虽然没有申请,但也分配了);根据图片显示的块结构,块头部值的最后三位为元数据,元数据头两位始终为0,最后一位为 1表示已占用的块;块头部值可计算为块大小加上块元数据值,即0x8+0b001,即头部值为9。 根据上面的方法,malloc(11)需要分配16字节的块,头部值为17(0x11);malloc(20) 需要分配24字节的块,头部值为25(0x19);malloc(21)需要分配32字节的块,头部值为33(0x21)

(c)第一项,块对齐单字,已分配和空闲块都有头部和尾部,那么头部和尾部数据需要

8字节;而有效载荷不允许为0,那么大于8且能被4整除的最小正整数为12,因此最小块大小为12。

第二项,块对齐单字,已分配块可以省略脚部,那么仅考虑已分配块,头部数据需要4 个字节;有小载荷不允许为0,那么大于4且能被4 整除的最小正整数为8,因此最小块大小为8。

第三项,大于8且能被8整除的最小整数为16。第四项,大于4且能被8整除的最小整数为8。