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

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

    教材学习内容总结

    流水线化的处理器:

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

    程序员可见的状态:

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

    实验楼截图##

    参考资料

  • 相关阅读:
    android 中文 api (43) —— Chronometer
    SVN客户端清除密码
    Android 中文 API (35) —— ImageSwitcher
    Android 中文API (46) —— SimpleAdapter
    Android 中文 API (28) —— CheckedTextView
    Android 中文 API (36) —— Toast
    Android 中文 API (29) —— CompoundButton
    android 中文 API (41) —— RatingBar.OnRatingBarChangeListener
    Android 中文 API (30) —— CompoundButton.OnCheckedChangeListener
    Android 中文 API (24) —— MultiAutoCompleteTextView.CommaTokenizer
  • 原文地址:https://www.cnblogs.com/zy1111/p/5982994.html
Copyright © 2011-2022 走看看