复旦大学计算机体系结构期末考试B卷

上传人:枕*** 文档编号:143485033 上传时间:2022-08-26 格式:DOC 页数:15 大小:63KB
收藏 版权申诉 举报 下载
复旦大学计算机体系结构期末考试B卷_第1页
第1页 / 共15页
复旦大学计算机体系结构期末考试B卷_第2页
第2页 / 共15页
复旦大学计算机体系结构期末考试B卷_第3页
第3页 / 共15页
资源描述:

《复旦大学计算机体系结构期末考试B卷》由会员分享,可在线阅读,更多相关《复旦大学计算机体系结构期末考试B卷(15页珍藏版)》请在装配图网上搜索。

1、(1)考虑下面这个for循环的汇编代码looper:pushl%ebpmovl%esp, %ebpsubl$16, %espmovl$0, -8(%ebp)movl$0, -4(%ebp)jmp.L2.L4:movl-4(%ebp), %eaxsall$2, %eaxaddl12(%ebp), %eaxmovl(%eax), %eaxcmpl-8(%ebp), %eaxjle.L3movl-4(%ebp), %eaxsall$2, %eaxaddl12(%ebp), %eaxmovl(%eax), %eaxmovl%eax, -8(%ebp).L3:addl$1, -8(%ebp)addl$2

2、, -4(%ebp).L2:movl-4(%ebp), %eaxcmpl8(%ebp), %eaxjl.L4movl-8(%ebp), %eaxleaveret根据以上的汇编代码,完成相应的for循环C程序代码(注意该程序有返回值)。int looper(int n, int *a)int i;int x=0;for(i= 0 ; ix)/2分 x=ai;/ 2分 x+;/1分_return x;/ 1分(2)根据已有的结构(structure)和联合(union)的声明以及C函数void test(int i, s2 *bp)的IA32 汇编代码,推断出结构s1的完整声明和s2中CNT的值;

3、之后再根据推断结果以及IA32汇编代码,推断补齐相应的C程序代码。下面是要使用到的结构和联合的声明,函数void test(int i, s2 *bp)及其IA32 汇编代码。struct s1 struct s2 union u1 int left; struct s1 *h; s1 aCNT; struct s2 *i;int right; char j; union u1 b; char c;void test(int i, s2 *bp) int n=bp-left+bp-right;s1 *ap=&bp-ai;ap-xap-idx=n;其IA32汇编代码为:test:pushl%eb

4、pmovl%esp, %ebpsubl$16, %espmovl12(%ebp), %eaxmovl(%eax), %edxmovl12(%ebp), %eaxmovl184(%eax), %eaxleal(%edx,%eax), %eaxmovl%eax, -4(%ebp)movl12(%ebp), %eaxleal4(%eax), %ecxmovl8(%ebp), %edxmovl%edx, %eaxsall$2, %eaxaddl%edx, %eaxsall$2, %eaxleal(%ecx,%eax), %eaxmovl%eax, -8(%ebp)movl-8(%ebp), %eaxm

5、ovl(%eax), %edxmovl-8(%ebp), %eaxmovl-4(%ebp), %ecxmovl%ecx, 4(%eax,%edx,4)leaveret1. CNT=_9_/2分2. 写出s1的完整声明。_struct s1 int idx;/2分 int x4;/2分 _3. 对于下面左边的每个IA32 汇编代码,请在右边补全相应的C程序代码。(请注意下面的函数都需要返回值)A. proc1:pushl%ebpmovl%esp, %ebpmovl8(%ebp), %eaxmovzbl 188(%eax), %eaxpopl%ebpretchar proc1(struct s2

6、*x)_return x-b.j;(4分)_B. proc2:pushl%ebpmovl%esp, %ebpsubl$16, %espmovl8(%ebp), %eaxmovl188(%eax), %eaxmovl(%eax), %eaxmovl%eax, -4(%ebp)movl8(%ebp), %eaxmovl188(%eax), %eaxmovl184(%eax), %eaxaddl%eax, -4(%ebp)movl-4(%ebp), %eaxleaveretC. proc3:pushl%ebpmovl%esp, %ebpsubl$16, %espmovl8(%ebp), %eaxmo

7、vl(%eax), %eaxmovl188(%eax), %eaxmovzbl 192(%eax), %eaxmovb%al, -1(%ebp)movl8(%ebp), %eaxmovl(%eax), %eaxmovzbl 188(%eax), %eaxandb%al, -1(%ebp)movzbl -1(%ebp), %eaxleaveretint proc2(struct s2 *x)_int a = x-b.i-left;/2分 a += x-b.i-right;/3分return a;(3分)_char proc3(union u1 *x)_char a = x-i-b.i-c;/2分

8、 a &= x-i-b.j/3分return a;(3分)_(3)Pentium III的算术操作性能如下:操作执行时间发射时间整数加法11整数乘法41整数除法3636浮点加法31浮点乘法52浮点除法3838加载或存储(高速缓存命中)11考虑如下程序:int loop(int *a, int x, int n)int y=x*x;int i;for(i=0;in;i+)x=y*ai;取i,取y,再发射,共3个时钟周期;这里没迭代。return x*y;用GCC进行编译,得到如下汇编代码:.L2:movl %ecx,%eaximull (%esi,%edx,4),%eaxincl %edxcmp

9、l %ebx,%edxjl .L21.每次循环需要的时钟周期数是多少?3.0/4分2.通过使用编译选项-funroll -loops,我们可以在编译时进行4路循环展开,此方法可以加快loop的运行,解释原因。程序的循环次数变少,降低了循环的开销。即减少了y和ai的load需要的1个时钟周期。/6分(4)考虑如下一段程序:int counter=2;void handler(int sig) counter+;int count()signal(SIGCHLD, handler);int i, status;for(i=1; i0)counter+;while (waitpid(-1,&stat

10、us,0)0);return counter;counter+=i;return counter;int main()printf(counter =%dn, count();exit(0);问:1. 程序是否总是有相同输出?是/6分2. 如果第一问答案为”是”,给出此固定输出,如果答案为”否”,则列出所有可能输出。counter7counter7counter5/4分(5)请写出一段代码,父进程利用fork()函数创建一个子进程之后挂起,子进程什么也不做,睡眠5s后通过kill函数发送SIGALRM信号给父进程,再睡眠3s,然后以状态1退出。父进程在信号处理程序中,回收子进程,打印子进程的退

11、出状态,之后以状态0退出。注意程序中用到的系统调用函数不必进行错误检查,用到的头文件已经给出。#include #include #include #include #include void handler(int sig)int status;waitpid(-1,&status,0);printf(%dn,WEXITSTATUS(status); exit(0);int main()pid_t pid;signal(SIGALRM, handler);if(fork()=0)pid=getppid();sleep(5);kill(pid,SIGALRM);sleep(3);exit(1)

12、;pause();sigal()-handler()2分fork() 1分kill()1分waitpid() 1分sleep() 1分WEXITSTATUS 1分exit() 1分程序结构 2分(6)下面这个问题考察你如何将虚拟地址翻译成物理地址。我们做出如下假设: 这个存储器是按字节寻址的; 存储器访问是针对1字节的字的(不是4字节的字); 虚拟地址是16位长的; 物理地址是13位长的; 页面大小是1024字节; TLB是八路组相联,总共16个条目; 缓存是物理寻址、直接映射的,行大小为4字节,2路相联总共16个组。在下面的表格中,所有的数字均为16进制。TLB的内容和页表的前32页如下:T

13、LBIndexTag PPN Valid009 4 112 2 110 0 103 5 105 7 113 1 010 3 018 3 0104 1 00C 1 012 0 008 1 006 7 003 1 007 5 002 2 0Page TableVPN PPN ValidVPN PPN Valid00 6 101 5 002 3 103 4 104 2 005 7 106 1 007 3 008 5 109 4 00A 3 00B 2 00C 5 00D 6 00E 1 10F 0 010 0 111 5 012 2 113 4 014 6 015 2 016 4 017 6 018

14、 1 119 2 01A 5 01B 7 01C 6 01D 2 01E 3 01F 1 02-way Set Associative CacheIndexTag ValidByte0 1 2 3Tag ValidByte0 1 2 30123456719 115 01B 106 007 00D 111 016 199 11 23 114F 22 EC 1100 02 04 0884 06 B2 9C43 6D 8F 0936 32 00 78A2 37 68 3111 C2 11 3300 02F 10B 112 005 01E 100 11E 199 11 23 1155 59 0B 41

15、01 03 05 0784 06 B2 9C43 6D 8F 09A1 B2 C4 DEBB 77 33 0000 C0 0F 001. (1) 下面需要你描述虚拟地址的格式。请在表格下方标注出下列符号的表示范围。如果其中有符号在本题中不需要用到,请不要标注。VPO虚拟页面偏移VPN虚拟页号TLBI TLB索引号TLBT TLB标记 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0VPN: 15-10 VPO: 9-0/2分TLBT: 15-11 TLBI: 10/1分(2) 下面需要你描述物理地址的格式。请在表格下方标注下列符号的表示范围。PPO物理页面偏移PPN物

16、理页号CO 缓冲块内的字节偏移量CI 高速缓存索引CT高速缓存标记 12 11 10 9 8 7 6 5 4 3 2 1 0PPN: 12-10PPO: 9-0/2分CT: 12-5CI: 4-2CO: 1-0/2分2. 对于给定的虚拟地址,请你指出被访问的TLB条目,相对应的物理地址,以及返回的高速缓存字节值(用16进制表示)。并且请指出是否发生了LTB不命中,是否发生了缺页,是否发生缓存不命中。如果发生缓存不命中,在“返回的缓存字节”一栏中填“-”。如果发生缺页,在“PPN”栏中填入“-”并且空着C和D部分。(1) 虚拟地址: 0x81B6A. 虚拟地址格式(每格填一个bit) 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0/1分1000000110110110B. 地址翻译 /各1分参数值VPN0x20 TLB索引0x0 TLB标记0x10 TLB命中?(Y/N)Y 缺页?(Y/N)N PPN0x0 C. 物理地址格式(每格填一个bit)/1分12 11 10 9 8 7 6 5 4 3 2 1 00000110110110D. 物理存储器引用 /各1分 参数值字节偏移0x2 缓存索引0x5缓存标记0x0D缓存命中?(Y/N)Y 返回的缓存字节0x00第七题1. 双层循环/10分,2. /10分算法改进/5分循环展开等方法 /5分

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!