(此次互评作业推荐使用MARS(MIPS Assembler and Runtime Simulator)集成开发环境作为实验平台,MARS是密苏里州立大学为配合《计算机组成与设计》一书,开发的一款专用于教学的MIPS汇编语言模拟器,并提供了丰富的调试功能。 MARS的官网链接如下:http://courses.missouristate.edu/KenVollmar/Mars/index.htm , 建议下载4.4版本。 官网提供了MARS下载安装的教程,同学们可以参考教程并在自己的机器上完成搭建MARS集成开发环境的过程。) 第一题:用系统功能调用实现简单输入输出 利用系统功能调用从键盘输入,转换后在屏幕上显示,具体要求如下: (1) 如果输入的是字母(A~Z,区分大小写)或数字(0~9),则将其转换成对应的英文单词后在屏幕上显示,对应关系见下表 (2) 若输入的不是字母或数字,则在屏幕上输出字符“*”, (3) 每输入一个字符,即时转换并在屏幕上显示, (4) 支持反复输入,直到按“?”键结束程序。 A Alpha N November 1 First a alpha n november B Bravo O Oscar 2 Second b bravo o oscar C China P Paper 3 Third c china p paper D Delta Q Quebec 4 Fourth d delta q quebec E Echo R Research 5 Fifth e echo r research F Foxtrot S Sierra 6 Sixth f foxtrot s sierra G Golf T Tango 7 Seventh g golf t tango H Hotel U Uniform 8 Eighth h hotel u uniform I India V Victor 9 Ninth i india v victor J Juliet W Whisky 0 zero j juliet w whisky K Kilo X X-ray k kilo x x-ray L Lima Y Yankee l lima y yankee M Mary Z Zulu m mary z zulu
第1题
阅读下面的MIPS汇编程序,回答问题。 ________________________________________________________________________ .data array: .word 1,1,1 tmp: .word 0 : 25 .text .globl main main: la $t0, array li $t1, 25 loop: lw $t3, 0($t0) lw $t4, 4($t0) lw $t5, 8($t0) add $t2, $t3, $t4 add $t2, $t2, $t5 sw $t2, 12($t0) addi $t0, $t0, 4 addi $t1, $t1, -1 bgtz $t1, loop li $v0, 10 # system call for exit syscall _____________________________________________________________________________ 请在你的作业中回答以下七道题: 请说明程序实现的功能。(5分)(提示:可以利用“Math”编辑输入数学公式,建议提交之前用Previe查看输入效果) 分析程序的访存行为,仅考虑数据访存。(5分)(提示:访存行为包括程序一共发生了多少次访存操作,每次访存操作的地址之间有什么样的关系等) 根据MARS内置的Data Cache Simulation Tool,构建一个容量为8字节的cache,要求块大小为4字节(one word),替换策略为LRU,组策略为直接映射。运行上述MIPS程序,得到cache命中率为多少?(5分) 结合程序的访存行为,详细分析问题3中cache miss的原因。(10分) 根据MARS内置的Data Cache Simulation Tool,构建一个容量为8字节的cache,要求块大小为4字节(one word),替换策略为LRU,组策略为全相联。运行上述MIPS程序,得到cache命中率为多少?(5分) 结合程序的访存行为,详细分析问题5中cache miss的原因。(10分) 1) 保持其他参数不变,通过增加block数量的方式将cache的容量扩大为16个字节,评测不同组策略下cache命中率的变化,并分析原因?2) 进一步扩大cache容量,cache命中率会如何变化?(10分)
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!