ImageVerifierCode 换一换
格式:PDF , 页数:13 ,大小:239.67KB ,
资源ID:8765851      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-8765851.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(北京大学 计算机系统导论-期中-20131112-带答案.pdf)为本站会员(精品资料)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

北京大学 计算机系统导论-期中-20131112-带答案.pdf

1、1第一题 选择题(每小题2分,共34分)(每小题有一个或多个正确答案)(ch2, kaigui)1、变量x的值为0x01234567,地址 unsigned y = 0x00000001;int z = 0x80000001;以下表达式正确的是( )A. (-x) yC. (z 1.00y = 1.01100 half way and up1.102(ch3, yingfei)4、在完成Bomb Lab的时候,通常先执行gdb bomb启动调试,然后执行 _ explode_bomb命令以防引爆炸弹,之后在进行其他必要的设置后,最后执行_命令以便开始执行程序。上述两个空格对应的命令是( )A.

2、 st, ru B. br, go C. br, ru D. st, go答案:c说明:根据之前的讨论,出一道题目检查同学们是否自己做过lab(ch3, yingfei)5、已知函数int x( int n ) return n*_; 对应的汇编代码如下:lea (%rdi, %rdi, 4), %rdilea (%rdi, %rdi, 1), %eaxretq请问横线上的数字应该是( )A. 4 B. 5 C. 2 D. 10答案:D说明:此题目考察对于乘法的转换,难度较低,适合出选择题。还可以把乘法换成除法,就可以出大题或者简答题。(ch3, Guangyu)6、32位x86计算机、Win

3、dows操作系统下定义的一个structure S包含三个部分: double a,int b, char c, 请问S在内存空间中最多和最少分别能占据多少个字节(32位Windows系统按1、4、8的原则对齐char、int、double)?答:( )A. 16, 13B. 16, 16C. 24, 13D. 24, 16答案:D 考虑对齐,windows double按8字节对齐,最长 c, a, b,最短 a,b,c(ch3, Guangyu)7、x86体系结构的内存寻址方式有多种格式,请问下列哪些指令是正确的:( )A. movl $34, (%eax)B. movl (%eax),

4、%eaxC. movl $23, 10(%edx, %eax)D. movl (%eax), 8(%ebx)答案:ABC,寻址不支持内存到内存的访问(ch3, Guangyu)8、 x86体系结构中,下面哪些选项是错误的?答:( )A. leal指令只能够用来计算内存地址B. x86_64机器可以使用栈来给函数传递参数C. 在一个函数内,改变任一寄存器的值之前必须先将其原始数据保存在栈内D. 判断两个寄存器中值大小关系,只需要SF(符号)和ZF(零)两个conditional code答案:ACD3(ch4, Jiangfang)9、下面对RISC和CISC的描述中,错误的是:( )A. CI

5、SC指令系统中的指令数目较多,有些指令的执行周期很长;而RISC指令系统中通常指令数目较少,指令的执行周期都较短。B. CISC指令系统中的指令编码长度不固定;RISC指令系统中的指令编码长度固定,这样使得RISC机器可以获得了更短的代码长度。C. CISC指令系统支持多种寻址方式,RISC指令系统支持的寻址方式较少。D. CISC机器中的寄存器数目较少,函数参数必须通过栈来进行传递;RISC机器中的寄存器数目较多,可以通过寄存器来传递参数,避免了不必要的存储访问。答案:BD(ch4, Jiangfang)10、下面对流水线技术的描述,正确的是:( )A. 流水线技术不仅能够提高执行指令的吞吐

6、率,还能减少单条指令的执行时间。B. 不断加深流水线级数,总能获得性能上的提升。C. 流水级划分应尽量均衡,吞吐率会受到最慢的流水级影响。D. 指令间的数据相关可能会引发数据冒险,可以通过数据转发或暂停流水线来解决。答案:CD(ch4, Junlin)(11-13)、在教材所描述的流水线处理器(the PIPE processor)上分别运行如下四段Y86程序代码。请分析其中数据冒险的具体情况,并回答后续3个小题。#Program 1:mrmovl 8(%ebx), %edxrmmovl %edx, 16(%ecx) #Program 2:mrmovl 8(%ebx), %edxnoprmmo

7、vl %edx, 16(%ecx)#Program 3:mrmovl 8(%ebx), %edxnopnoprmmovl %edx, 16(%ecx) #Program 4:mrmovl 8(%ebx), %edxnopnopnoprmmovl %edx, 16(%ecx)11、对于每段程序,请指出是否会因为数据冒险导致流水线停顿(Stall)。Program 1:( ),Program 2:( ),Program 3:( ),Program 4:( );A. Stall B. No-Stall答案: A, B, B, B12、对于每段程序,请指出流水线处理器内是否会产生数据转发(Forwar

8、ding)。Program 1:( ),Program 2:( ),Program 3:( ),Program 4:( );A. Forwarding B. No-Forwarding答案: A,A,A,B13、对于每段程序,请指出流水线处理器内使用哪个信号进行数据转发,如果不进行数4据转发,则用none表示。Program 1:( ),Program 2:( ),Program 3:( ),Program 4:( );A. m_valM B. W_valM C. none答案: A,A,B,C(ch5, Guangyu)14、下面哪些选项是错误的?答:( )A. 同一个任务采用时间复杂度为O

9、(logN)算法一定比采用复杂度为O(N)算法的执行时间短B. 编译器进行程序优化时,总是可以使用算数结合律来减少计算量C. 增大循环展开(loop unrolling)的级数,有可能降低程序的执行性能(即增加执行时间)D. 分支预测时,“总是预测不跳转”(branch not taken)一定比“总是预测跳转”(branch taken)预测准确率高答案:ABD(ch5, Guangyu)15、以下哪些程序优化编译器总是可以自动进行?(假设int i, int j, int AN, int BN, int m都是局部变量,N是一个整数型常量,int foo(int) 是一个函数)答:( )优

10、化前 优化后A. for (j = 0 ; j y, then -x v, then -u -v答案True or false 原因或举出反例if x y, then -x v, then -u -v F U=2, v=12)请按IEEE浮点标准的单精度浮点数表示下表中的数值,首先写出形如(-1)s M2E的表达式,然后给出十六进制的表示。(每格1分)注:单精度浮点数的字段划分如下:符号位(s):1-bit;阶码字段(exp):8-bit;小数字段(frac):23-bit;偏置值(bias):127。Value (-1)s M2E,1* Based on the shift-and-subt

11、ract algorithm for computing integer* square root from Guy L. Steele.*/* int_sqrt - rough approximation to sqrt* x: integer of which to calculate the sqrt* A very rough approximation to the sqrt() function.*/unsigned long int_sqrt(unsigned long x) unsigned long b, m, y = 0;if (x = 1;if (x = b) x -=

12、b;y += m;m = 2;return y;1)在64位的机器上BITS_PER_LONG的定义为long类型的二进制位数,它是多少位?2)填写下面反汇编中的缺失的内容::4004c4: push %rbp4004c5: mov %rsp,%rbp4004c8: mov %rdi,-0x28(%rbp)4004cc: movq (1) ,-0x8(%rbp)4004d4: cmpq $0x1,-0x28(%rbp)4004d9: ja (2) 4004db: mov -0x28(%rbp),%rax4004df: jmp (3) 4004e1: movl $0x0,-0x10(%rbp)4

13、004e8: movl (4) ,-0xc(%rbp)4004ef: jmp (5) 4004f1: mov -0x10(%rbp),%rax74004f5: mov -0x8(%rbp),%rdx4004f9: lea (6) ,%rax4004fd: mov %rax,-0x18(%rbp)400501: shrq -0x8(%rbp)400505: mov -0x28(%rbp),%rax400509: cmp -0x18(%rbp),%rax40050d: jb (7) 40050f: mov -0x18(%rbp),%rax400513: sub %rax,-0x28(%rbp)40

14、0517: mov -0x10(%rbp),%rax40051b: add %rax,-0x8(%rbp)40051f: shrq (8) ,-0x10(%rbp)400524: cmpq $0x0,-0x10(%rbp)400529: jne (9) 40052b: mov -0x8(%rbp), (10)40052f: leaveq400530: retq答案:1、 答:642、:4004c4: push %rbp4004c5: mov %rsp,%rbp4004c8: mov %rdi,-0x28(%rbp)4004cc: movq $0x0,-0x8(%rbp)4004d4: cmpq

15、 $0x1,-0x28(%rbp)4004d9: ja 4004e1 4004db: mov -0x28(%rbp),%rax4004df: jmp 40052f 4004e1: movl $0x0,-0x10(%rbp)4004e8: movl $0x40000000,-0xc(%rbp)4004ef: jmp 400524 4004f1: mov -0x10(%rbp),%rax4004f5: mov -0x8(%rbp),%rdx4004f9: lea (%rdx,%rax,1),%rax4004fd: mov %rax,-0x18(%rbp)400501: shrq -0x8(%rbp

16、)400505: mov -0x28(%rbp),%rax400509: cmp -0x18(%rbp),%rax40050d: jb 40051f 40050f: mov -0x18(%rbp),%rax400513: sub %rax,-0x28(%rbp)400517: mov -0x10(%rbp),%rax40051b: add %rax,-0x8(%rbp)40051f: shrq $0x2,-0x10(%rbp)400524: cmpq $0x0,-0x10(%rbp)400529: jne 4004f1 40052b: mov -0x8(%rbp),%rax40052f: le

17、aveq400530: retq8(ch3 Xuetao)第四题(10分)阅读下面的汇编代码::4004c4: push %rbp4004c5: mov %rsp,%rbp4004c8: sub $0x10,%rsp4004cc: mov %edi,-0x4(%rbp)4004cf: cmpl $0x1,-0x4(%rbp)4004d3: ja 4004dc 4004d5: mov $0x1,%eax4004da: jmp 40052d 4004dc: mov -0x4(%rbp),%eax4004df: and $0x1,%eax4004e2: test %eax,%eax4004e4: j

18、ne 4004f5 4004e6: mov 0x200440(%rip),%eax # 60092c 4004ec: add $0x1,%eax4004ef: mov %eax,0x200437(%rip) # 60092c 4004f5: mov -0x4(%rbp),%eax4004f8: and $0x1,%eax4004fb: test %al,%al4004fd: je 40050e 4004ff: mov 0x20042b(%rip),%eax # 600930 400505: add $0x1,%eax400508: mov %eax,0x200422(%rip) # 60093

19、0 40050e: mov -0x4(%rbp),%eax400511: sub $0x1,%eax400514: mov %eax,%edi400516: callq 4004c4 40051b: mov 0x20040f(%rip),%edx # 600930 400521: lea (%rax,%rdx,1),%edx400524: mov 0x200402(%rip),%eax # 60092c 40052a: lea (%rdx,%rax,1),%eax40052d: leaveq40052e: retq1)程序main() unsigned int n;for (n=1; n4-1

20、728-169-01)如果Cache的结构是directedmapped(S=4,E=1),如下图所示,请在下图空白处填入,访问上述数据序列访问后Cache的状态。(注:TAG使用二进制格式,V=1代表数据有效,用A-B表示地址A到B之间对应的数据)(4分)V TAG DATA1 00 M0-11 00 M2-31 00 M4-502)如果cache的结构如下图所示既(S=2,E=2), 请填入访问后的状态 (2分)V TAG DATA V TAG DATA1 000 M0-1 1 010 M8-91 000 M2-3 0在这种情况下,数据访问一共产生了多少次Miss_6_ (1分)(顺序 M-M-M-M-M-H-H-M)3)如果cache的结构变成 (S=1, E=4),最终存储在Cache里面的数据有那些(注:只需要填写数据部分,顺序不限)?_, _, _, _ (2分)M0-1, M8-9, M16-17, M2-3说明:1-4-1728-169-0 (后四个不重复数据)

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报