信息安全系统设计基础第六周学习总结

第四章 处理器体系结构

4.1 Y86指令集体系结构

  4.1.1 程序员可见的状态:Y86程序中的每条指令都会读取或修改处理器状态的某些部分。
     8个程序寄存器:%eax、%ebx、%ecx、%edx、%esi、%edi、%esp、%ebp。存储一个字。
     存储器:可以理解为很大的字节数组,保存着程序和数据。Y86用虚拟地址来引用存储器位置。
     物理地址:硬件和操作系统软件联合将虚拟地址翻译成实际,指明数据实际保存在存储器的那个位置。

  4.1.2 Y86指令:基本上是IA32指令集的一个子集。
     Y86指令的更多细节
     • mov指令分四个不同的指令,源可以是立即数i、寄存器r、存储器m。目的可以是寄存器r、存储器m。
     存储器传送指令中的存储器引用方式是简单的基地址和偏移量形式。没有mmmovl和immovl。
     • 有4个整数操作指令,只对寄存器数据进行操作。
     • 7个跳转指令。根据分支指令类型和条件码的设置来选择分支。
     • 6个条件传送指令。
     • call指令返回地址入栈,然后跳转到目的地址。ret指令从这样的调用过程中返回
     • pushl和popl实现入栈和出栈
     • halt停止指令的执行。

  4.1.3 指令编码:寄存器标示符,寄存器指示符字节,4字节常数字,相反。
     确定字节编码的方法:
     • 汇编码表示的第一个字节前端的字节编码
     信息安全系统设计基础第六周学习总结_第1张图片
     • 寄存器指示符字节
     信息安全系统设计基础第六周学习总结_第2张图片
     • 4字节常数反序
     重点掌握指令序列和字节编码的转换。
  4.1.4 Y86异常:异常处理程序

     信息安全系统设计基础第六周学习总结_第3张图片

  4.1.5 Y86程序

     信息安全系统设计基础第六周学习总结_第4张图片

      Y86和IA32的区别在于Y85可能需要多条指令来执行一条IA32指令所完成的功能。

      汇编器命令:以“.”开头的词。告诉汇编器调整地址

  4.1.6 Y86特别注意

     pushl指令会把栈指针减4并将一个寄存器值写入存储器中。

4.2 逻辑设计和硬件控制语言HCL

  4.2.1 逻辑门:AND &&.    OR ||.   NOT !

     信息安全系统设计基础第六周学习总结_第5张图片

  4.2.2 组合电路和HCL布尔表达式

     限制:多个逻辑门的输出不能连在一起;网必须是无的,即不能形成回路。

     区别:电路的输入变化会影响输出的值;C的表达式参数允许是任意整数,逻辑门只对位值0/1操作。

  4.2.3 字级的组合电路和HCL整数表达式

     字级计算的组合电路根据输入字的各个位,用逻辑门计算输出字的各个位。

     不用指定字的大小。可以声明位数。允许比较字是否相等。

     情况表达式:

     信息安全系统设计基础第六周学习总结_第6张图片

  4.2.4 集合关系

     判断集合关系的通用格式:

     

  4.2.5 存储器和时钟

     • 时钟寄存器:储存单个位或字

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

     

4.3 Y86的顺序实现

  4.3.1 将处理组织成阶段

     各个阶段(内)执行操作

     取指:从存储器中读取操作,地址为程序计数器的值→译码→执行→访存→写回→更新PC

     信息安全系统设计基础第六周学习总结_第7张图片

  4.3.2 SED硬件结构

  4.3.3 SED的时序

  4.3.4 SED阶段的实现

     信息安全系统设计基础第六周学习总结_第8张图片

     1、取指阶段:包括指令存储硬件单元,第一个字节为指令字节

     2、译码和写回阶段:

          寄存器文件有四个端口,每个端口都有地址链接和数据链接

         信息安全系统设计基础第六周学习总结_第9张图片 

     3、执行阶段

     4、访存阶段

     5、更新PC阶段

 

作业:

信息安全系统设计基础第六周学习总结_第10张图片

在上一个make时无法进入目录,导致后面没法编译

信息安全系统设计基础第六周学习总结_第11张图片

信息安全系统设计基础第六周学习总结_第12张图片

 

你可能感兴趣的:(信息安全系统设计基础第六周学习总结)