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

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

教材学习内容总结

流水线化的处理器:

  • 将每条指令的执行分解成五步,每个步骤由一个独立的硬件部分或者阶段来处理。指令步经流水线的各个阶段,且每个时钟周期有一条新指令进入流水线。所以处理器可以同时执行五条指令的不同阶段。

程序员可见的状态:

  • Y86程序中的每条指令都会读取或者修改处理器状态中的某些部分。这称为程序员可见状态。

Stat

  • 程序状态的最后一个部分是状态码Stat,它表明程序执行的总体状态;它会指示是正常运行还是出现了某种异常。

Y86

  • 一个简单的、可以称之为IA32指令集的子集的指令集;只包括四字节整数操作,寻址方式比较少。指令编码长度从1——6字节不等。

  • 关于指令结构,每条指令的第一个字节表明指令的类型;这个字节分为两个部分,每部分四位:高四位是代码部分(0——0xB),第四位是功能部分。这里补充一些缩写:立即数(i),寄存器(r)、存储器(m)。指令附加的寄存器指示符字节依次是数据源(如果是立即数,把这一位设置成0xf)、目的寄存器/基址寄存器。有些指令需要附加四字节的常数字,采用小端法(倒序)编码

stat代码可能取值反应了机器的不同状态

  • AOK:正常操作(除此之外的任何状态都会使得处理器停止执行指令)
  • HLT:处理器执行halt指令
  • ADR:遇到非法地址2015/10/14 17:16:25
  • INS:遇到非法指令

多路复用电路(MUX)

  • 根据输入控制信号的值,从一组不同的数据信号中选出一个。

算术/逻辑单元(ALU)

  • 根据控制输入的设置(0,1,2,3),电路会对数据输入执行不同的算数或者逻辑操作(+,-,&,^)。

时序电路

  • 有状态并且在这个状态上进行计算的系统

时钟寄存器&随机访问存储器

  • 时钟寄存器存储单个位或者字。时钟信号控制寄存器加载输入值

  • 随机访问存储器存储多个字,用地址来选择该读入或者该写哪个字

处理操作的阶段

  • 取指:从寄存器读取指令字节,地址为程序计数器的值。计算下一条指令地址等于PC中的值加上已取出指令的长度

  • 译码:从寄存器文件中最多读出两个操作数

  • 执行:ALU执行指明的操作、引用的有效地址或者是修改栈指针

  • 访存:将数据写入存储器或者从存储器读出数据

  • 写回:写两个结果到寄存器文件

  • 更新PC:将PC设置成下条指令地址

关于一些指令的处理步骤

  • irmovl指令的处理与rrmovl类似,但是因为是长指令格式,所以程序计数器要加6

  • 指令call和ret与之前的popl和pushl类似。对于指令call,我们要将valP也就是call之后的那条指令的地址压入栈中在更新PC阶段,将PC设置为valC,也就是调用目的地

代码托管

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 25/50 1/1 10/10
第7周 25/157 2/7 20/95

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:20小时

  • 实际学习时间:25小时

(有空多看看现代软件工程 课件
软件工程师能力自我评价表
)

参考资料

posted @ 2017-11-05 20:46  20155226田皓宇  阅读(146)  评论(0编辑  收藏  举报