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

    2017-2018-1 20155304 《信息安全系统设计基础》第七周学习总结

    教材学习内容总结

    4.1:Y86指令集体系结构

    • 程序员可见的状态:每条指令都会读取或修改处理器状态的某些部分

    • Y86包括:8个程序寄存器、3个条件码ZFSFOF、程序计数器(PC)

    • Y86用虚拟地址引用存储器位置,程序状态的最后一个部分是状态码Stat,它表明程序执行的总体状态

    • Y86指令:

      movl分为irmovl rrmovl mrmovl rmmovl

      整数指令:addl subl andl xorl

      跳转指令:jmp jle jl je jne jge jg

      6个条件传送指令:cmovle cmovl cmove cmovne cmovge cmovg

      call:将返回地址入栈,然后跳到目的地址

      ret:过程调用中返回

      pushl:入栈

      popl:出栈

      halt指令停止指令的执行:,执行此指令会导致处理器停止,并将状态码设置为HLT

    • 指令的字节级编码:每条指令需要1-6个字节不等,每条指令的第一个字节表明指令的类型

    • 第一个字节:分为两个部分,每个部分4位:

      高四位:代码部分,值域为0~0xB

      低四位:功能部分,功能值只有在一组相关指令共用一个代码时才有用

    • 额外的字节

      附加的寄存器指示符字节:指定一个或两个寄存器,例如rA或者rB

      附加的4字节常数字

    • Y86指令和IA32代码的主要区别在于:它可能需要多条指令来执行一条IA32指令能完成的所有功能

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

    • 逻辑门符号:

      AND:&&

      OR:

      NOT:!

    • 组合电路:将很多的逻辑门组合成一个网,能构建计算块。

    • 限制:

    1.两个或多个逻辑门的输出不能连接在一起

    2.这个网必须是无环的。

    • 组合逻辑电路和c语言中逻辑表达式的区别

      组合电路的输出会持续响应输入变化,c语言表达式只有在执行过程中被遇到才求值

      逻辑门只对0和1操作,c语言表达式中参数可以是任意整 数,0是FALSE,不是0的都是TRUE

      c的逻辑表达式可能被部分求值

    • 存储设备都是由同一个时钟控制,包括:

      时钟寄存器(寄存器):存储单个位或字,时钟信号控制寄存器加载输入值

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

    4.3:Y86的顺序实现

    • 将处理组织成阶段:

      取指:从存储器读取指令字节,地址为程序计数器PC的值,icod指令代码、ifun指令功能、valc四字节常数、valp下一条指令的地址=PC值+已取出指令长度

      译码:从寄存器文件读入最多两个操作数

      执行:算数/逻辑单元要么执行指令指明的操作(根据ifun的值),计算存储器引用的有效地址,要么增加或减少栈指针,得到的值称为valE

      访存:将数据写入存储器或从存储器读出数据,值为valM

      写回:最多可以写两个结果到寄存器文件

      更新PC:将PC设置成下一条指令地址

    • SEQ硬件结构:

      取指:将程序计数器寄存器作为地址,指令存储器读取指令的字节

      译码:两个读端口,读寄存器valA和valB

      执行:根据指令的类型,将算数/逻辑单元用于不同的目的

      访存:数据存储器读出或写入一个存储器字

    • SEQ的实现包括组合逻辑和两种存储器设备:

      时钟寄存器:程序计数器和条件码寄存器

      随机访问存储器:寄存器文件、指令存储器和数据存储器

    代码调试中的问题和解决过程

    • 打开虚拟机时提示挂载失败,但安装YIS的安装包在Windows系统上,需使用共享文件夹中的安装包。
    • 解决过程:重新手动挂载,再执行安装过程。

    其他(感悟、思考等,可选)

    本周的知识点的学习重点在于4.3,对于Y86的顺序实现过程中,用了很多的时间去学习的,很多知识点都是建立于栈帧的知识点上的。之前的基本功不扎实,学起来就会比较困难。但是关于HCL的知识,因为之气学过verilog与HDL设计课程的基础,理解起来就会容易许多

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 47/100 1/1 10/10
    第二周 180/200 1/1 10/10
    第三周 200/300 1/1 10/10
    第五周 190/300 1/1 10/10
    第六周 220/300 2/2 10/10
    第七周 320/500 2/2 10/10

    参考资料

  • 相关阅读:
    TCP之Nagle算法与TCP_NODELAY
    CSPS模拟 87
    CSPS模拟 86
    CSPS模拟 85
    CSPS模拟 84
    CSPS模拟 83
    CSPS模拟 82
    CSPS模拟 81
    CSPS模拟 80
    CSPS模拟 79
  • 原文地址:https://www.cnblogs.com/tyn5304/p/7789067.html
Copyright © 2011-2022 走看看