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

参考资料

原文地址:https://www.cnblogs.com/tyn5304/p/7789067.html