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


    2017-2018-1 20155214 《信息安全系统设计基础》

    第7周学习总结

    教材学习内容总结

    • 了解ISA抽象的作用
    • 掌握ISA,并能举一反三学习其他体系结构
    • 了解流水线和实现方式

    教材学习中的问题和解决过程

    ISA

    • ISA简称架构(Architecture),是处理器的一个抽象描述,即设计规范,定义处理器能够做什么。其本质就是一系列的指令集综合。当前主流的ISA有X86、ARM、MIPS、Power、C6000。
    • ISA在编译器编写者和处理器设计人员之间提供了一个抽象层:
      处理器设计者:依据ISA来设计处理器
      处理器使用者:依据ISA就知道CPU选用的指令集,就知道自己可以使用哪些指令以及遵循哪些规范

    流水线技术

    • 流水线(pipeline)技术是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。
    • 在CPU中由5—6个不同功能的电路单元组成一条指令处理流水线,然后将一条X86指令分成5—6步后再由这些电路单元分别执行,这样就能实现在一个CPU时钟周期完成一条指令,因此提高CPU的运算速度。

    ALU(CPU的重要组件)

    ALU是一个组合电路,输出持续响应输入.上图中(0,1, 2, 3)是控制信号,对应于Y86的四种算术/逻辑功能.当然以后你会看到ALU也会为响应不同的条件码,计算不同的值

    处理器的硬件部件

    处理器中重要的硬件部件.主要有:

    • ALU
    • 寄存器文件
    • 数据寄存器
    • 指令寄存器,
    • PC增加
    • 条件码

    HCL描述

    通过使用HCL(HardSoft Control Language)能够描述这些逻辑元件的控制逻辑,使得可以抽象地了解它们的功能,而不必知道它们的内部构造。

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

    • 问题1:修改Sum函数的Y86代码,实现AbsSum,计算一个数组的绝对值的和,在内循环中使用条件传送语句。
    • 问题1解决方案:

    Sum-Y86 code

    Sum:
    pushl %ebp
    rrmovl %esp,%ebp
    mrmovl 8(%ebp),%ecx
    mrmovl 12(%ebp),%edx
    xorl %eax,%eax
    andl %edx,%edx
    je End
    
    Loop:
    mrmovl (%ecx),%esi
    addl %esi,%eax
    irmovl $4,%ebx
    addl %ebx,%ecx
    irmovl $-1,%ebx
    addl %ebx,%edx
    jne Loop
    
    End:
    rrmovl %ebp,%esp
    popl %ebp
    ret
    

    修改部分:在mrmovl (%ecx),%esi获取数组中元素后通过判断%esi中元素的正负,设置条件跳转语句。

    修改后d代码如下

    AbsSum-Y86 code

    Loop:
    mrmovl (%ecx),%esi
    irmovl $0,%edi 
    subl %esi,%edi        //储存-start到%edi
    cmovg %edi,%esi    //比较%edi和0,若小于0则修改到%esi
    addl %esi,%eax
    irmovl $4,%ebx        
    addl %ebx,%ecx      //选择下一个元素
    irmovl $-1,%ebx
    addl %ebx,%edx     //计数减一
    jne Loop
    
    
    • 问题2:根据图4-18~图4-21中执行第一步的第一个操作数,写出SEQ信号中aluB的 信号描述
    • 问题2解决方案:
      参考aluA的HCL描述:
    int aluA = [
    icode in {IRRMOVL,IOPL} : valA;
    icode in {IIRMOVL,IRMMOVL,IMRMOVL} : valC;
    icode in {ICALL,IPUSHL} : -4;
    icode in {IRET,IPOPL} : 4;
    ];
    

    执行阶段的第一步就是每条指令的ALU计算,aluA的值可能是valA,valC或者是-4或+4。
    查图4-18~4-21可知,aluB的值可能为valB或0。

    因此,依照执行阶段aluB的取值,aluB的HCL描述应为

    int aluB = [
    icode = {IRMMOVL,IMRMOVL,IOPL,ICALL,IPUSHLIRET,IPOPL} : valB;
    icode = {IRRMOVL,IIRMOVL} : 0;
    ];
    

    代码托管

    结对及互评

    本周结对学习情况

    - [20155216](博客链接)
    - 结对照片
    - 结对学习内容
    

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

    参考资料

  • 相关阅读:
    配置Xmanager远程登录
    如何为ubuntu等Linux系统扩容(LVM)
    CentOS7配置iptables防火墙
    Cetnos搭建vsftp服务器
    vim设置
    zabbix 问题汇总
    转:常用验证正则表达式
    C#对象序列化成XML,以及自定义标签名
    改变FileUpload文件上传控件的显示方式,确认后上传
    改变FileUpload文件上传控件的显示方式,选择文件后自动上传
  • 原文地址:https://www.cnblogs.com/besti155214/p/7782336.html
Copyright © 2020-2023  润新知