2017-2018-1 20155330 《信息安全系统设计基础》第7周学习总结
教材学习内容总结
-
Y86-64程序员可见状态
-
x86-64 movq指令
指令 源类型 目的类型 irmovq 立即数 寄存器 rrmovq 寄存器 寄存器 mrmovq 内存 寄存器 rmmovq 寄存器 内存 -
整数操作指令OPq(4):addq、subq、andq、xorq。Y86-64只对寄存器数据进行操作。
-
跳转指令(7):jmp、jle、jl、je、jne、jge、jg。根据分支指令的类型和条件代码的设置选择分支。
-
条件传送指令(6):cmovle、cmovl、cmove、cmovne、cmoge、cmovg。只有当条件码满足所需要的约束时,才会更新目的寄存器的值。
-
call指令:将返回地址入栈,然后跳到目的地址。ret从调用中返回。
-
pushq、popq指令:入栈、出栈
-
halt指令:停止指令的执行。相当于x86-64的hlt,但在Y86-64中会导致处理器停止,并将状态码设置为HLT。
-
Y86-64指令集
-
Y86-64指令功能码
-
Y86-64程序寄存器标识符
-
逻辑门:数字电路基本计算单元
-
时钟寄存器(寄存器):存储单个位或字。时钟信号控制寄存器加载输入值。
-
随机访问存储器(内存):存储多个字,用地址来选择该读或该写哪个字。
-
Y86-64顺序实现步骤:取指——译码——执行——访存——写回——更新PC
教材学习中的问题和解决过程
- 问题1:写回阶段具体有哪些操作?
- 问题1解决方案:CPU写入数据时,不直接将数据写入内存,而是写入dcache,当dcache数据被替换出去时才写回主存。 此时存在一个问题,并不是所有的dcache中的数据都被修改过,因此没必要把所有替换出去的数据都重新写入主存。 为了表示哪些数据被修改过(dcache中是数据和主存中的数据是否不一致),dcache中每一块增加了一个记录信息位,CPU修改过的dcache时,设置此记录信息位(此时数据块为脏的(dirty), cache数据写入到主存时清理此位(此时数据块为干净的(clean)。 有了次记录信息位,数据从dcache替换到主存时只替换脏的数据块即可)。
代码调试中的问题和解决过程
暂无。
代码托管
结对及互评
本周结对学习情况
- 20155321
- 结对学习内容
- 第4章 处理器体系结构
- 实验二 固件程序设计
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0/0 | 1/1 | 10/10 | |
第二周 | 63/63 | 1/2 | 8/18 | |
第三周 | 31/94 | 1/3 | 18/36 | |
第四周 | 265/329 | 1/4 | 17/53 | |
第五周 | 106/435 | 2/6 | 18/71 | |
第六周 | 211/646 | 2/8 | 21/92 | |
第七周 | 1420/2066 | 2/10 | 17/109 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
-
计划学习时间:18小时
-
实际学习时间:17小时