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


    第四周学习总结

    1、程序员可见状态

    • 15个程序寄存器(RF)
    • 3个条件码(CC)
    • 程序状态(Stat)
    • 程序计数器(PC)
    • 内存(DMEM)

    2、Y86指令

    在Y86当中,寄存器也是有8个,每一个寄存器可以存储一个字,也就是一个32位二进制。条 件码是一个一位二进制的寄存器,保存着最近的算术或逻辑运算所造成的影响的信息。PC则是程序计数器,记录当前正在执行的指令的地址。存储器则是一个很大的字节数组,保存着程序和数据,Y86的程序可以使用虚拟地址(类似于数组的下标)来访问存储器,硬件和操作系统会将虚拟地址翻译为实际的地址。最后一个程序状态(stat),它则代表着程序的运行情况。
    它会指示程序是否正常运行,或者发生了某个特殊事件。

    指令编码长度从1个字节到10个字节不等。一条指令含有一个单字节的指令指示符,可能含有一个单字节的寄存器指示符,还可能含有一个8字节的常数字。

    字段fn指明是某个整数操作(OPq)、数据传送条件(cmovXX)或是分支条件(jXX)。

    所有的数值都用十六进制表示

    • halt :这个指令会停止指令的执行。
    • nop:这是一个占位指令,它不做任何事情,后续为了实现流水线,它有一定的作用。
    • xxmovl:这是一系列的数据传送指令,其中r代表寄存器,m代表存储器,i代表立即数。比如rrmovl指令,则代表将一个寄存器的值,赋给另外一个寄存器。
    • OPl:这包括4个整数操作指令,addl、subl、andl和xorl。他们只对寄存器数据进行操作。
    • jXX:包括7个跳转指令,jmp,jle,jl,je,jne,jge,jg。根据分支指令的类型和条件码的设置来选择分支。
    • cmovXX:包括6个条件传送指令,cmovle,cmovl,cmove,cmovne,cmovge和cmovg,只发生在两个寄存器之间,不会将数据传送到存储器。
    • call:指令将返回地址入栈,然后跳到目的地址。
    • ret:call是过程调用,ret是返回。将返回地址入PC,并跳到返回地址。
    • pushl和popl:指令实现了地址的入栈和出栈

    3、HCL硬件控制语言

    名称 表示
    AND &&
    OR ll
    NOT !
    • 与或非三种逻辑门可以用一种与非门或者或非门实现
    HCL表达式 和 C 语言逻辑表达式的区别
    • 逻辑门是持续输出的,如果电路的输入变化了,在一定的延迟之后,输出也会相应的变化,而C表达式是在执行到的时候才会求值。
    • 两者操作的值不同,逻辑门只对值 0 和值 1 进行操作,而C 逻辑表达式允许参数是任意整数,0表示false,其它任意值都表示true。
    • C 逻辑表达式存在短路,比如对于a && b这个符号来说,C语言中的规定是如果前者为假,则后者不会再计算。而HCL当中没有这种说法。
    存储器和时钟
    • 时钟寄存器:简称寄存器,存储单个位或字。时钟信号控制寄存器加载输入值。
    • 随机访问存储器:简称存储器,存储多个字,用地址来选择该读或者该写哪个字.

    4、SEQ

    六个阶段:
    取值→译码→执行→访存→写回→更新PC

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

    • 时钟存储器(程序计数器和l条码寄存器)
    • 随机访问存储器(寄存器文件、指令存储器和数据存储器)
  • 相关阅读:
    Linux常用命令大全(非常全!!!)
    Springboot项目与vue项目整合打包
    Spring Boot开启Druid数据库监控功能
    (八)CXF添加自定义拦截器
    (七)CXF添加拦截器
    (六)cxf处理一些Map等复杂类型
    (无)webservice执行过程深入理解
    (四)CXF处理JavaBean以及复合类型
    (三)使用CXF开发WebService客户端
    (二)使用CXF开发WebService服务器端接口
  • 原文地址:https://www.cnblogs.com/Czzzz/p/9827596.html
Copyright © 2020-2023  润新知