2017-2018-1 20155330 《信息安全系统设计基础》第7周学习总结

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小时

参考资料

原文地址:https://www.cnblogs.com/ashin-kl/p/7788527.html