2018-2019-1 20165329 《信息安全系统设计基础》第4周学习总结
教材学习内容总结
- Y86-64指令:Y86-64指令是x86-84指令集的一个子集。它只包括8字节整数操作。有4个整数操作指令:addq、subq、andq和xorq。有7个跳转指令:jmp、jle、jl、je、jne、jge和jg。有6个条件传送指令:cmovle、cmovl、cmove、cmovne、cmovge和cmovg。
-
处理器执行指令是将指令编码为二进制指令转化方式:
确定指令长度,划分序列,确定具体指令;
寄存器指示符字节确定寄存器,确定地址等信息;
逻辑门是计算机的计算元素,组成电路进行计算;
每条指令需要数个字节,每条指令的第一个字节表明指令的类型:高4位是代码部分,低4位是功能部分;
- 程序员可见的状态:Y86-64程序中的每条指令都会读取或修改处理器状态的某些部分,这称为程序员可见状态。包括:程序寄存器、条件码、程序状态、程序计数器和内存。
- Y86-64状态码:
代码值1,命名为AOK,表示正常操作;
代码值2,命名为HLT,表示遇到器执行halt指令;
代码值3,命名为ADR,表示遇到非法地址;
代码值4,命名为INS,表示遇到非法指令。 - Y86-64指令集的功能码:
-
Y86-64程序寄存器标识符:
-
逻辑门:逻辑门是数字电路的基本计算单元。它们产生的输出,等于它们输入位值的某个布尔函数。包括:与(AND)、或(OR)和非(NOT)。组合电路:将狠多的逻辑门组合成一个网,就能构建计算块。组合电路和HCL布尔表达式
- 字级的组合电路和HCL整数表达式实现所有Y86-64指令所需要的计算可以被组织成6个基本阶段。包括:取指、译码、执行、访存、写回合更新PC。
-
取指:取指阶段从内存读取指令字节,地址为程序计数器的值。
-
译码:译码阶段从寄存器文件读入最多两个操作数,得到相应的值,并读入指令指明的寄存器。
-
执行:执行阶段,ALU要么执行指令指明的操作,计算内存引用的有效地址,要么增加或减少栈指针。
-
访存:访存阶段可以将数据写入内存,或者从内存读出数据。
-
写回:写回阶段最多可以写两个结果到寄存器文件。
-
更新PC:将PC设置成下一条指令的地址。
- SEQ的时序:
SEQ的实现包括组合逻辑和两种存储器设备:时钟寄存器和随机访问存储器。 -
组织计算原则:从不回读。处理器从来不需要为了完成一条指令的执行而去读由该指令更新了的状态。