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小时

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

参考资料

posted @ 2017-11-05 13:52  短爪爪爪  阅读(197)  评论(0编辑  收藏  举报