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


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

    教材学习内容总结

    本周学习第四章:

    • ISA(指令集体系结构)
      一个处理器支持的指令和指令的字节级编码。

    movl
    

    指令分成了4个不同的指令:

    irmovl、rrmovl、mrmovl、rmmovl
    
    • 源和目的:源可以是立即数(i)、寄存器(r)、存储器(m)。目的可以是寄存器(r)、存储器(m)

    • 四个整数操作指令,OPq:

    addl、subl、andl、xorl
    
    1.只对寄存器数据进行操作
    2.会设置3个条件码:ZF、OF、SF
    
    • 7个跳转指令
    jmp、jle、jl、je、jne、jge、jg
    
    • 6个条件传送指令
    cmovle、cmovl、cmove、cmovne、cmovge、cmovg
    
    • call指令将返回地址入栈,然后跳到目的地址

    • ret指令调用返回

    • pushl和popl指令--入栈和出栈

    • halt指令停止

    • 指令编码

    每条指令需要1-10个字节不等,指令的第一个字节表明指令的类型:这个字节分为两个部分:高4位是代码部分、低四位是功能部分。

    • Y86异常
    • Y86程序
    • 逻辑设计和硬件控制语言HCL

    1.逻辑门

    2.组合电路和HCL布尔表达式

    3.多路复用器根据输入控制信号的值,从一组不同的数据信号中选出一个

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

    1.时钟寄存器(寄存器)

    2.随机访问储存器(储存器)

    • SEQ硬件结构

    1.取指

    2.译码

    3.执行

    4.访存

    5.写会

    6.更新PC

    -SEQ时序

    原则:从不回读。

    • SEQ阶段的实现

    • 流水线通用原理

    • 异常处理

    指令集体系结构包括三种不同的内部产生的异常:

    1.halt指令

    2.非法指令和功能码组合的指令

    3.取址和数据读写试图访问一个非法地址

    • PIPE各阶段的实现
    • 流水线控制逻辑

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

    • 4问题1
    Y86模拟器的安装器

    1.安装bison和flex词法分析工具,在终端中输入

    sudo apt-get install bison flex
    

    在安装y86模拟器时,出现了如下错误:

    上网查询解决方案:
    在按照提示运行却并没能很好的解决问题。导致这个问题的主要原因是因为/var/lib/dpkg/updates文件下的文件有问题,可能是其他软件安装过程或是其他原因导致的,这里删除掉然后重建即可。

    sudo rm /var/lib/dpkg/updates/*
    

    sudo dpkg --configure -a
    sudo apt-get update
    sudo apt-get upgrade
    


    再输入

    sudo apt-get install bison flex
    

    开始安装bison和flex:

    安装完成后,
    下载sim解压。地址

    http://csapp.cs.cmu.edu/public/students.html
    

    找到 Chapter 4: Processor Architecture,

    点击Source distribution (README)如下图所示,下载后在虚拟机中解压。

    • 问题2
      在解压sim.tar文件时:
      输入解压命令:
    tar -xvf sim.tar
    

    出现问题:

    • 解决:
      重新下载一次并且记住文件保存路径:
      文件路径在下载文件夹中,使用cd进入下载文件夹,再输入解压命令即可:

    在解压完成后,图形界面需要输入

    sudo apt-get install tcl8.5-dev tk8.5-dev tcl8.5 tk8.5
    

    安装TCL/TK。

    在解压后的sim文件夹中找到makefile文件,作如下改动:


    进行编译

    • 错误:

    • 解决方法
      再重新编译后还是出现错误,有进行下载但还是有错误,在网上查询后还是未解决。

    • 于是在实验楼上进行:


    • 进入测试代码,教材p252页代码

    asuml.ys
    

    ,可以通过

    make asuml.yo
    

    进行汇编

    然后再使用cat命令查看:


    asuml.yo就是汇编后的结果。

    • 在做课本p251代码时出现错误:

    • 未解决-

    代码托管

    上周考试错题总结

    结对及互评

    点评模板:

    暂无

    本周结对学习情况

    • 20155215

      • 结对学习内容
        • 共同学习课本第四章和实验楼内容
        • 分析课本中代码遇到的问题

    思考

    本次的内容我感觉难度很大,很难理解和记忆,希望老师上课能多进行讲解和分析这章,在进行Y86的安装时,总是遇到层出不穷的问题,要不断的查资料才能解决,最后到编译那一步因为缺少文件,也不知道怎么解决下载也没用,就在实验楼上做了课本上的练习。

    学习进度条

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第四周 12/12 1/1 20/20
    第五周 271/283 1/2 15/15
    第6周 276/283 2/3 18/18
    第7周 150/283 4/4 21/23
    第8周 294/283 4/4 24/27
    第9周 289/283 4/4 29/23

    尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
    耗时估计的公式
    :Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

    参考:软件工程软件的估计为什么这么难软件工程 估计方法

    • 计划学习时间:23小时

    • 实际学习时间:29小时

    (有空多看看现代软件工程 课件
    软件工程师能力自我评价表
    )

    参考资料

  • 相关阅读:
    读入输出优化模板
    HDU-2647 Reward(拓扑排序)
    HDU-2647 Reward(拓扑排序)
    HDU-2647 Reward(拓扑排序)
    HDU-2647 Reward(拓扑排序)
    Using KafkaBolt to write to a kafka topic
    Using KafkaBolt to write to a kafka topic
    Using KafkaBolt to write to a kafka topic
    Using KafkaBolt to write to a kafka topic
    getElementById() 获取指定ID的第一个元素
  • 原文地址:https://www.cnblogs.com/lsqsjsj/p/7769029.html
Copyright © 2020-2023  润新知