2017-2018-1 20155329 《信息安全系统设计基础》第7周学习总结
教材学习内容总结
Y86指令集体系结构
- 指令集体系结构,包括定义各种状态元素、指令集和他们的编码、一组编程规范和异常事件处理。
程序员可见的状态
- Y86处理器有八个寄存器:%eax、%edx、%ecx、%ebx、%esi、%edi、%esp和%ebp。每个程序存储器存储一个字。
- 寄存器%esp被入栈、出栈、调用和返回指令作为栈指针。
- 3个一位的条件码:ZF、SF、OF;保存最近的算术或逻辑指令所造成影响的有关信息。
- 程序计数器(PC)存放当前正在执行指令的地址。
- 存储器:保存程序和数据。Y86用虚拟地址引用存储器位置。硬件和操作系统软件联合起来将虚拟地址翻译成实际或物理地址,指明数据实际保存的地方。虚拟存储器提供给Y86程序一个单一的字节数组映像。
- 状态码Stat,表明程序执行的总体状态
。
Y86 指令
Y86 指令集只包含四字节整数操作。
指令编码
- 每条指令的第一个字节表明指令的类型。高四位是代码部分,第四位是功能部分。
指令集的重要性质——字节编码必须有唯一的解释。
Y86异常
Y86程序
- Y86没有伸缩寻址模式;
以“.”开头的词是汇编器命令
YIS(指令集模拟器)目的是Y86机器程序代码的执行
Y86的顺序实现
- 将处理组织成阶段
取指——译码——执行——访存——写回——更新PC
(处理器无限循环,执行这些阶段)
- 取指阶段包括指令存储器硬件单元。
- 译码和写回阶段(均需访问寄存器文件)
- 执行阶段包括算术/逻辑单元(ALU)。这个单元根据alufun信号的设置,对输入aluA和aluB执行ADD、SUBTRACT、AND和EXCLUSIVE-OR运算。这些数据和控制信号由三个控制块产生。ALU的输出就是valE信号。
- 访存阶段的任务就是读或者写程序数据。
- 访存阶段最后的功能是根据取值阶段产生的icode、imem_error、instr_valid值以及数据存储器产生的dmem_error信号,从指令执行的结果来计算状态码Stat。
- 更新PC阶段
会产生程序计数器的新值。
- SEQ硬件结构、SEQ的时序
SEQ的实现包括组合逻辑和两种存储器设备:时钟寄存器(程序计数器和条件码寄存器)和随机访问寄存器(寄存器文件、指令存储器和数据存储器)。
遵循以下原则组织计算:
处理器从来不需要为了完成一条指令的执行而去读由该指令更新了的状态。 - SEQ阶段的实现常数一般用大写表示。
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)