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

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

教材学习内容总结

Y86指令集体系结构

  • Y86指令

    Y86指令集基本上是IA32指令集的一个子集,只包括四字节整数操作,寻址方式比较少,操作也较少。

    汇编码表示和字节编码参见课本232页。

    • movl指令:源操作数(i-立即数r-寄存器m-存储器)、目的操作数(r-寄存器m-存储器)
    • 四个整数操作指令:addl 加subl 减andl 与xorl 异或
    • 七个跳转指令——分支控制:jmp 直接跳转jle(SF^OF)|ZF有符号数≤、jl SF^OF有符号<、je ZF相等/零、jne ~ZF 不相等/非零、jge ~(SF^OF)有符号≥、jg ~(SF^OF)&~ZF 有符号>
    • 六个条件传送指令:cmovlecmovlcmovecmovnecmovgecmovg
    • callret:call指令将返回地址入栈,然后跳到目的地址,ret指令从这样的过程调用中返回。
    • pushlpopl:实现入栈和出栈
    • halt指令:halt指令停止指令的执行,执行此指令会导致处理器停止,并将状态码设置为HLT
  • 类比IA32:hlt指令与之类似,但是IA32的应用程序不允许使用这条指令,因为它会导致整个系统暂停运行。
  • Y86异常
    • AOK 正常操作
    • HLT 处理器执行halt指令
    • ADR 遇到非法地址
    • INS 遇到非法指令

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

  • 逻辑门

    • 逻辑门产生的输出,等于它们输入位值的某个布尔函数。
    • 逻辑门对应的HCL表达式:AND &&OR ||NOT !
  • 组合电路和HCL布尔表达式
    • 构建计算块(组合电路)时的限制:两个或多个逻辑门的输出不能连接在一起、必须无环
  • 组合逻辑电路和c语言中逻辑表达式的区别
    • 组合电路的输出会持续响应输入变化,c语言表达式只有在执行过程中被遇到才求值
    • 逻辑门只对0和1操作,c语言表达式中参数可以是任意整数,0是FALSE,不是0的都是TRUE
    • c的逻辑表达式可能被部分求值

Y86顺序实现

  • 将处理组织成阶段:取指、译码、执行、访存、写回、更新PC
  • SEQ阶段的实现:取指阶段、译码和写回阶段(都需要访问寄存器文件,根据四个端口的情况,判断应该读哪个寄存器产生信号valA、valB)、执行阶段(包括算术/逻辑单元ALU,输出的是valE、包括条件码寄存器)、访存阶段(读或者写程序数据)、更新PC阶段(会产生程序计数器的新值。)
  • Y86指令集的计算原则:处理器从来不需要为了完成一条指令的执行而去读由该指令更新了的状态

Y86模拟器的安装(实验楼中)

  • 1.mkdir ~/xxx创建一个专属文件夹
  • 2.cd ~/xxx进入该专属文件夹
  • 3.wget http://labfile.oss.aliyuncs.com/courses/413/sim.tar去网站下载sim压缩包
  • 4.tar -xvf sim.tar解压
  • 5.cd sim进入sim文件夹
  • 6.sudo apt-get install bison flex tk安装bison flex tk
  • 7.sudo ln -s /usr/lib/x86_64-linux-gnu/libtk8.6.so /usr/lib/libtk.so
  • 8.sudo ln -s /usr/lib/x86_64-linux-gnu/libtk8.6.so /usr/lib/libtcl.so
  • 9.make
  • 10.cd y86-code
  • 11.make xxx.yo

Y86模拟器的安装(虚拟机中)

  • 下载sim压缩包
  • 解压sim压缩包:tar -xvf sim.tar
  • 进入sim文件夹:cd sim
  • 安装TCL/TK以致有图形界面:sudo apt-get install tcl8.5-dev tk8.5-dev tcl8.5 tk8.5
  • 修改文件,用记事本打开makefile文件夹下面的文件,GUIMODE=-DHAS_GUI (去掉原有注释),TKLIBS=-L/usr/lib/ -ltk8.5 -ltcl8.5,TKINC=-I/usr/include/tcl8.5。

代码调试

P4.45

  • 首次编译。。。。。。。发现结果竟然不对~~~
  • 调整后就好了

课后作业中的问题和解决过程

  • 首先遇到的问练习题4.1中的两个问题,练习题中阐述了。.ops 0x100 表明代码的起始地址是0x100,那为什么第一个指令irmovl $15 , %ebx 不是从0xF+0x100呢?后来发现这样的做法是错误的,把基本概念都混肴了,一个是%ebx的值,另一个则是地址的值,二者不一样,二者也是不会相互影响的。所以答案直接就是0xF ,最终答案应该是30F30F000000
  • 之后针对于练习4.1每一行代码的地址遇到了问题。为什么执行完代码irmovl $15 , %ebx后地址变为0x106?通过分析书上的P234页的例子就可以知道,需要4字节常数,每两个数算作一字节。加上imovl命令的编码30F30F000000所以一共为6位,地址变化为0x106,之后的也一样,指令编码和4字节常数,不同的Y86指令又有不同的要求,理解图4-2、4-3的表就可以理解了。

代码托管

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

  • 有些地方。。。。。真的根本看不懂啊 也不知道该怎么问问题 难过

学习进度条

|            | 代码行数(新增/累积)| 博客量(新增/累积)|学习时间(新增/累积)|重要成长|
| --------   | :----------------:|:----------------:|:---------------:  |:-----:|
| 目标        | 5000行            |   30篇           | 400小时            |       |
| 第一周      | 200/200           |   2/2            | 20/20             |       |
| 第二周      | 300/500           |   2/4            | 18/38             |       |
| 第三周      | 500/1000          |   3/7            | 22/60             |       |
| 第四周      | 600/1300          |   4/9            | 30/90             |       |
| 第五周      | 650/1300          |   5/9            | 40/90             |       |
| 第六周      | 700/1300          |   6/9            | 50/90             |       |
| 第七周      | 800/1300          |   7/9            | 60/90             |       |

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

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

  • 计划学习时间:10小时
  • 实际学习时间:10小时

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

参考资料

时间: 2024-07-30 18:32:56

2017-2018-20155336 《信息安全系统设计基础》第七周学习总结的相关文章

20135223何伟钦—信息安全系统设计基础第七周学习总结

第六章 存储器层次结构 [学习时间:6小时] [学习任务:<深入理解计算机系统>第六章] 6.1存储技术 6.1.1随机访问存储器 分为两类:静态(SRAM)和动态(DRAM). (1)SRAM:高速缓存存储器,既可以在CPU芯片上,也可以在片下. (2)DRAM:主存以及图形系统的帧缓冲区. 1.静态RAM SRAM将每个位存储在一个双稳态的存储器单元里.每个单元是用一个六晶体管电路来实现的.该电路有一个属性:可以无限期地保持在两个不同的电压配置或状态之一. 2.动态RAM 每位晶体管数 相

20135205信息安全系统设计基础第七周学习总结

第六周 存储器层次结构 ---------------------------------------------------------------------- 第一节 存储技术 1.三种常见存储技术 1)RAM 静态RAM:SRAM将每个位存储在一个双稳态的存储单元里. 每个单元是用一个六晶体管电路实现的这个电路有这样一个属性,可以无限期地保持在两个不同的电压配置或状态之一. 动态RAM:DRAM将每个位存储为对一个电容的充电. 每个单元由一个电容和一个访问晶体管组成. 与SRAM不同,D

信息安全系统设计基础第七周学习总结—20135227黄晓妍

第六章存储器层次结构 6.1存储技术 6.1.1随机访问存储器(分成两类) 静态RAM(SRAM):快,作为高速缓存存储器.(几百几千兆) 动态RAM(DRAM):作为主存,图形系统的帧缓冲区.(<=几兆) 1.静态RAM 具有双稳定状态,它可以无期限地保持在两个不同的电压配置(状态)其中的一个.也可以保持在亚稳定状态,但这个状态易被干扰.由于它具有双稳定性,所以即使有干扰,当干扰消除时,它能很快地恢复到稳定值. 2.动态RAM DRAM将每个位存储为对一个电容充电.对干扰非常敏感,电容的电压被

20135234马启扬-——信息安全系统设计基础第七周学习总结

第六章 存储器层次结构 存储器系统是一个具有不同容量,成本和访问时间的存储设备的层次结构. CPU寄存器保存着最常用的数据. 靠近CPU的小的,快速的高速缓存存储器作为一部分存储在相对较慢的主存储器(主存)中的数据和指令的缓存区域. 主存暂时存放存储在容量较大的,慢速磁盘上的数据,而这些磁盘常常又作为存储在通过网络连接的其他机器的磁盘或磁带上的数据的缓存区域. 6.1存储技术 6.1.1随机访问存储器 随机访问存储器(RAM)分为:静态的RAM(SRAM)和动态的RAM(DRAM) SRAM用来

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

一. Linux命令复习: man –k: man –k <命令> :用于学习命令 关于man命令的区分: (1)一般命令:(2)系统调用:(3)库函数,涵盖了C标准函数库.可以通过在man后面加上相应区段的数字查看相应段的内容. cheat: 查看可用的小抄列表:cheat –l 要访问某个指定命令的小抄,只要运行cheat命令,后面跟上该命令的名称:cheat <command-name> 你可以通过使用“-s”选项,在所有小抄中搜索包含有指定关键词的内容:cheat -s &

20145216史婧瑶《信息安全系统设计基础》第九周学习总结

20145216史婧瑶<信息安全系统设计基础>第九周学习总结 教材内容总结 第十章 系统级I/O 输入/输出(I/O)是在主存和外部设备之间拷贝数据的过程. 第一节 Unix I/O 这一节涉及到操作系统的基本抽象之一--文件.也就是说,所有的I/O设备都被模型化为文件,而所有的输入输出都被当做对相应文件的读/写.相关的执行动作如下: 1.打开文件: 应用程序向内核发出请求→要求内核打开相应的文件→内核返回文件描述符 文件描述符:一个小的非负整数,用来在后续对此文件的所有操作中标识这个文件.有

20145311 《信息安全系统设计基础》第二周学习总结

20145311 <信息安全系统设计基础>第二周学习总结 教材学习内容总结 重新学习了一下上周的一部分命令:grep main wyx.c(grep的全文检索功能)ls > ls.txt :ls内容输出到文本find pathname -mtime -n/+nfind -size -n/+n (find的功能还是比较强大) 简单地学习了一下vim编辑器,跟着vimtutor简单地学了一些,在linux bash中使用vim能够极大地提高效率, vim的用法比较多,只学习了其中简单的一部分

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

2017-2018-1 20155228 <信息安全系统设计基础>第九周学习总结 教材学习内容总结 常见的存储技术 RAM 随机访问存储器(Random-Access Memory, RAM)分为两类:静态的和动态的.静态 RAM(SRAM)比动态RAM(DRAM)更快,但也贵得多.SRAM用来作为高速缓存存储 器,既可以在CPU芯片上,也可以在片下.DRAM用来作为主存以及图形系统的帧缓冲 区.典型地,一个桌面系统的SRAM不会超过几兆字节,但是DRAM却有几百或几千兆 字节. SRAM将每

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

2017-2018-1 20155227 <信息安全系统设计基础>第九周学习总结 教材学习内容总结 第六章 随机访问存储器 随机访问存储器分为:静态RAM(SRAM)和动态RAM(DRAM),静态RAM(SRAM)比动态RAM(DRAM)更快,但也贵很多. (1)静态RAM SRAM将每个位存储在一个双稳态的存储器单元里,每个单元是用一个六晶体管电路来实现的. 属性:它可以无限制地保持在两个不同的电压配置或状态之一.其他任何状态都是不稳定的. 特点:由于SRAM的双稳态特性,只要有电,它就会永

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

2017-2018-1 20155334 <信息安全系统设计基础>第九周学习总结 学习目标: 了解常见的存储技术(RAM.ROM.磁盘.固态硬盘等) 理解局部性原理 理解缓存思想 理解局部性原理和缓存思想在存储层次结构中的应用 高速缓存的原理和应用 教材学习内容总结 一.常见的存储技术: 基本的存储技术包括随机存储器(RAM).非易失性存储器(ROM)和磁盘. 1. RAM分静态RAM(SRAM)和动态RAM(DRAM). 2. SRAM快些,主要用做CPU芯片上的高速缓存,也可以用作芯片下的