20145309信息安全系统设计基础第6周学习总结下


教材学习内容总结

4.1 Y86指令集体系结构

  • Y86处理器状态类似于IA32,有8个程序寄存器:%eax、%ecx、%edx、%ebx、%esi、%edi、%esp、%ebp。处理器的每个程序寄存器存储一个字。%esp被入栈、出栈、调用和返回指令作为栈指针。

  • ZF、SF、OF,它们保存最近的算术或逻辑指令所造成影响的有关信息。程序计数器PC存放当前正在执行指令的地址。

  • 程序状态的最后一个部分是状态码stat,它表明程序执行的总体状态

  • IA32的movl指令:irmovl、rrmovl、mrmovl、rmmovl。指令名字第一个字母代表源的类型。源可以是立即数(i)、寄存器(r)、存储器(m),目的可以是寄存器(r)、存储器(m)

  • 两个存储器传送指令中的存储器引用方式是基址和偏移量形式:4个整数操作指令:addl、subl、andl、xorl;7个跳转指令:jmp、jle、jl、je、jne、jge、jg;6个条件传送指令:cmovle、cmovl、cmove、cmovne、cmovge、cmovg;Halt指令停止指令的执行

  • Y86异常:以“.”开头的词是汇编器命令,它们告诉汇编器调整地址,以便在那里产生代码或插入一些数据

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

  • 逻辑门是数字电路的基本计算元素。逻辑门总是活动的,一旦一个门的输入变化了,在很短的时间内,输出就会相应地变化。
  • 将很多的逻辑门组合成一个网,就能构建计算块,称为组合电路。限制:1.两个或者多个逻辑门的输出不能连接在一起;2.这个网必须无环
  • 多路复用电路(MUX):根据输入控制信号的值,从一组不同的数据信号中选出一个。
  • HCL:1.HCL中所有字级的信号都声明为int;2.在画字级电路的时候,用中等粗度的线表示携带字的每个位的线路,用虚线来表示布尔信号的结果;3.在HCL中,表示默认情况(即所有条件都没有被选中的情况)一般用1
  • 时钟寄存器&随机访问存储器:1.时钟寄存器存储单个位或者字。时钟信号控制寄存器加载输入值 2.随机访问存储器存储多个字,用地址来选择该读入或者该写哪个字

4.3 Y86的顺序实现

  • 将处理组织成阶段

    ①取指:取指阶段从存储器读取指令字节,地址为程序计数器PC的值

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

    ③执行:在执行阶段,算数/逻辑单元要么根据ifun的值执行指令指明的操作,计算机存储器引用的有效地址,要么增加或减少栈指针

    ④访存:访存阶段可以将数据写入存储器,或从存储器读出数据

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

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

irmovl指令的处理与rrmovl类似,但是因为是长指令格式,所以程序计数器要加6
指令call和ret与之前的popl和pushl类似。对于指令call,我们要将valP也就是call之后的那条指令的地址压入栈中在更新PC阶段,将PC设置为valC,也就是调用目的地

    • SEQ的实现包括组合逻辑和两种存储器设备:时钟寄存器、随机访问存储器

    • SEQ阶段的实现
      ①取指阶段:包括指令存储器单元。一次从存储器中读出6个字节。第一个字节分为ocode,ifun。根据icode的值,计算:instrvalid(发现不合法指令),needregids,need_valC。instrvalid和imemerror在访存阶段被用来产生状态码。
      ②S译码和写回阶段:都需要访问寄存器文件。寄存器文件有四个端口,它支持同时进行两个读和两个写;每个端口都一个地址连接和数据连接。如果某个地址端口上的值为特殊标识符0xf,则表明不需要访问寄存器。
      ③执行阶段:包括算术/逻辑单元(ALU)。这个单元革命家alufun信号的设置,对输入aluA和aluB执行ADD,SUB,AND,XOR运算。ALU的输出就是valE信号。还包括条件码寄存器。每次运行时,ALU都会产生三个与条件码相关的信号——零,符号,溢出。用set_cc来控制是否应该更新条件码寄存器。
      ④访存阶段:两个控制块产生存储器地址和存储器输入数据的值;另外两个块产生控制信号表明应该执行读操作还是写操作。当执行读操作时数据存储器产生值valM。
      ⑤更新PC阶段:SEQ中最后一个阶段会产生程序计数器的新值,依据指令的类型和是否要选择分支,新的PC可能是valC、valM、valP

代码托管

https://git.oschina.net/69M/LH20145309_Linux.git

优质内容筛选与推荐>>
1、C语言接口
2、Linux下用户组、文件权限详解
3、AI
4、【Java 学习笔记】 Hadoop学习笔记
5、pat--046.整除光棍(除法模拟)


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号