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

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

    一 教材内容总结

    Y86指令集体系结构

    • 内容:定义一个指令集体系结构,包括定义各种状态元素、指令集和它们的编码、一组编程规范和异常事件处理
    • Y86程序中的每条指令都会读取或修改处理器状态的某些部分,这叫做程序员可见状态
    • Y86和IA32有类似,均为8个程序寄存器、3个条件码ZFSFOF、程序计数器PC
    • Y86指令集基本上是IA32指令集的一个子集,只有四字节整数操作,寻址方式比较少,操作比较少
    • movl指令分为四条:irmovl,rrmovl,mrmovl,rmmovl
    • 四个整数操作指令:addl,subl,andl,xorl
    • 7个跳转指令:jmp,jle,jl,je,jne,jge,jg
    • call指令将返回地址入栈,然后跳到目的地址。ret指令从这样的过程调用中返回
    • pushl和popl指令实现了入栈和出栈
    • halt指令停止指令的执行,对于Y86来说,执行halt指令会导致处理器停止,并将状态码设置为HLT
    • 指令编码:每条指令的第一个字节代表指令的类型,且该字节高四位为代码部分,低四位为功能部分
    • Y86异常:

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

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

      • 计算对位进行操作的函数的组合逻辑
      • 存储位的存储器元素
      • 控制存储器元素更新的时钟信号
    • 组合电路和HCL布尔表达式:

      • 两个或者多个逻辑门的输出不能连接到一起,否则会使线上的信号矛盾,导致电路故障
      • 网必须是无环的
    • HCL和C之间逻辑表达式计算的区别:

      • 组合电路的输出会持续的响应输入的变化,c只会在程序执行的过程中遇到时才进行求值
      • C的逻辑表达式允许参数是任意整数,逻辑门只对应0,1
      • C的逻辑表达式可能只被部分求值,例如(a&&!a) && func(b,c)在C语言中,func不会被调用,因为前者值为0,式子的值已确定
    • 存储器和时钟:

      • 时钟寄存器(寄存器):储存单个位或字,用时钟信号控制寄存器加载输入值
      • 随机访问储存器(储存器):储存多个字,用地址选择该读/写哪个字
      • 硬件寄存器:寄存器直接将他的输入输出线连接到电路的其他部分
      • 程序寄存器:在机器级编程中,寄存器代表的是CPU中为数不多的可寻址的字

    Y86的顺序实现

    • 每一个时钟周期上,SEQ执行处理一条完整指令所需的所有步骤
    • 将处理组织成阶段:
      • 取指:从存储器读取指令字节,地址为程序计数器PC的值
      • 译码:从寄存器读入最多两个操作数,得到valA或valB
      • 执行:算术/逻辑单元要么执行指令指明的操作,计算存储器引用的有效地址,要么增加或减少栈指针。得到的值为valE
      • 访存:将数据写入存储器,或从存储器中读出数据,读出的值为valM
      • 写回:最多可以写两个结果到寄存器文件
      • 更新PC:将PC设为下一条指令的地址
    • SEQ的时序:
      • SEQ的实现包括组合逻辑和两种存储器设备:时钟寄存器(程序计数器和条件码寄存器),随机访问存储器(寄存器文件、指令存储器和数据存储器)
    • SEQ阶段的实现:依旧按照取指,译码,执行,访存,写回,更新PC来分阶段实现
    • SEQ唯一的问题就是它太慢了,时钟必须非常慢,才能使得信号能在一个周期内传播所有阶段

    二 课后练习

    • y86安装按照博客园上的步骤进行即可

    • 查看asuml.yo

    三 代码托管

    这周并没有什么代码上传

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 0/0 1/1 20/20 学习常用linux命令
    第二周 100/100 1/2 20/40 学习vim,gdb等用法
    第三周 100/200 1/3 15/55
    第四周 0/300 0/3 10/65
    第五周 100/400 1/4 15/80 重温了汇编相关知识
    第六周 0/400 1/5 15/95 学习了Y86
  • 相关阅读:
    前端兼容性问题总结
    javascript中Array类型常用方法
    TCP/IP基础知识
    Ajax
    angular 过滤器(日期转换,时间转换,数据转换等)
    angular学习笔记
    TCP协议三次握手过程分析
    TCP/IP基础知识
    Halcon形态学处理
    Halcon软件介绍与图像基本知识
  • 原文地址:https://www.cnblogs.com/20145319zk/p/5991287.html
Copyright © 2011-2022 走看看