zoukankan      html  css  js  c++  java
  • 20145318 《信息安全系统设计基础》第6周学习总结

    20145318 《信息安全系统设计基础》第6周学习总结

    教材学习内容总结

    流水线化的处理器:

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

    程序员可见的状态:

    • 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,也就是调用目的地

    截图



    学习进度条

    参考资料

  • 相关阅读:
    #35 string(缩点+动态规划)
    BZOJ2744 HEOI2012朋友圈(二分图匹配)
    BZOJ2749 HAOI2012外星人(数论)
    BZOJ2743 HEOI2012采花(离线+树状数组)
    洛谷 P3539 [POI2012]ROZ-Fibonacci Representation 解题报告
    关于图论的一些问题模型
    洛谷 P2505 [HAOI2012]道路 解题报告
    ST表
    洛谷 P4754 True Vegetable 解题报告
    洛谷 P2053 [SCOI2007]修车 解题报告
  • 原文地址:https://www.cnblogs.com/zy1111/p/5991371.html
Copyright © 2011-2022 走看看