zoukankan      html  css  js  c++  java
  • 2018-2019-1 20165228 《信息安全系统设计基础》第四周学习总结

    2018-2019-1 20165228 《信息安全系统设计基础》第四周学习总结

    教材学习内容总结

    Y86-64指令集体系结构

    Y86程序中的每条指令都会读取或修改处理器状态的某些部分

    程序员可见状态

    • 15个程序寄存器(RF):每个寄存器存储一个64位,即8字节的字(即Y86-64指令长度)

    • 3个条件码(CC):ZF(零标志位)/SF(符号标志位)/OF(溢出标志位)

    • 程序状态(Stat)

    • 程序计数器(PC):存放当前正在执行指令的地址,计算下一条指令的地址时,根据当前指令的编码长度计算。

    • 内存(DMEM):很大的字节数组,用来存放程序和数据。

    Y86-64指令

    Y86-64程序寄存器标识符:

    • 寄存器标识符范围:0-0xE
    • 程序寄存器的存储:寄存器文件
    • 不应访问任何寄存器:用0xF表示

      Y86-64指令编码
    • 编码长度:1字节~10字节
    • 组成:1、一个单字节的指令指示符
      2、一个单字节的寄存器指示符
      3、一个八字节的常数字
      各指令详细解释:
    • halt指令:十六进制表示为00,占一个字节。执行时,使处理器停止。
    • nop指令:十六进制表示为10,占一个字节。
    • rrmovq rA,rB指令:十六进制表示为 20 rArB,占两个字节。
    • ...

    Y86-64指令集的功能码:高四位为代码部分,低四位为功能部分。

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

    为实现一个数字系统需要三个重要的组成部分:

    • 计算对位进行操作的函数的组合逻辑

    • 存储位的存储单元

    • 控制存储单元更新的时钟信号
      HCL与HDL的区分

    • HCL:硬件控制语言

    • HDL:硬件描述语言
      HCL表达式中的运算符:都只对单个字进行操作

    • 与:AND用“&&”表示

    • 或:OR用“||”表示

    • 非:NOT用“!”表示

    • 与、或、非三种逻辑门可以用一种与非门或者或非门实现

      组合电路:多个逻辑门组合成网(必须无环)构成计算块,称为组合电路。

    • 多个逻辑门组合时的限制:每个逻辑门的输入必须连接到下述选项之一,且两个或多个逻辑门的输出不能连接在一起。
      1、一个系统输入
      2、某个存储器单元的输出
      3、某个逻辑门的输出
      HCL整数表达式

    • 情况表达式:

    • 算数/逻辑单元(ALU):加、减、与、异或

    • 集合关系:
      iexpr为被测试的值,iexpr1~iexprk为带匹配的值,均为正数表达式。

    iexpr in { iexpr1,iexpr2,...,iexprk }
    

    存储器和时钟
    按位存储信息的设备

    • 时钟寄存器:简称寄存器,存储单个位或字。Y86-64中使用是中寄存器保存程序计数器PC、条件代码CC和程序状态Stat
    • 随机访问寄存器:简称内存,存储多个字。
      寄存器
    • 硬件寄存器:将其输入和输出的线连接到电路的其他部分。当时钟上升沿到来才会加载新的输入信号并输出,是电路不通部分中组合逻辑之间的屏障。
    • 程序寄存器:CPU中为数不多的可寻址的字,这里的地址为寄存器ID,这些字通常都存在寄存器文件中。
      寄存器组成:两个读端口、一个写端口、时钟

    Y86-64的顺序实现

    将处理器组织成阶段

    • 六阶段
      1、取值:fetch
      2、译码:decode
      3、执行:execute
      4、访存:memory
      5、写回:write back
      6、更新:PC update
    • SEQ硬件结构:

    SEQ的实现

    • 两种存储器设备
      1、时钟寄存器(程序计数器和条件码寄存器)
      2、随机访问寄存器(寄存器文件、指令内存和数据内存)
      时序控制
    • 程序计数器
    • 条件码计数器
    • 数据内存
    • 寄存器文件
  • 相关阅读:
    Python 从零学起(纯基础) 笔记 之 collection系列
    ARM学习 之 如何在向内核写入系统调用
    idea的git使用案例
    idea使用git的pull命令报错1
    String、StringBuilder以及StringBuffer
    HashMap实现原理及源码分析
    logback使用注意点1
    创建zookeeper集群
    disconf安装问题
    linux更换jdk版本
  • 原文地址:https://www.cnblogs.com/cloud795/p/9824451.html
Copyright © 2011-2022 走看看