2017-2018-1 20155323 《信息安全系统设计基础》第7周学习总结
2017-2018-1 20155323 《信息安全系统设计基础》第7周学习总结
教材学习内容总结
处理器体系结构
Y86-64指令
- movq指令:irmovp 、rrmovq 、mrmovq 、rmmovq。
- 整数操作指令 :addq 、 subq 、 andq 、xorq。
- 跳转指令: jmp 、 jle 、 jl 、je 、 jne 、 jge 、jg。
- 条件传送指令: cmovle 、 comvl 、 cmove 、 cmovne 、comvge 、 cmovg。
- call指令将返回地址入栈,ret从这样的调用中返回。
- pushq指令入栈,popq指令出栈。
- halt指令停止指令的执行。
Y86-64异常
- 1.状态码Stat的可能取值
-
AOK 正常操作
-
HLT 处理器执行halt指令
-
ADR 遇到非法地址
-
INS 遇到非法指令
- 2.出现异常时怎么做?
让Y86——处理器停止运行指令。
逻辑门
- 是数字电路的基本计算单元。
组合电路和HCL布尔表达式
- 1.构建计算块(组合电路)时的限制
- 2.组合逻辑电路和c语言中逻辑表达式的区别
集合关系
- 判断集合关系的通用格式是:
iexpr in {iexpr1,iexpr2,...,iexprk}
iexpr等都是整数表达式。
Y86的顺序实现
- 取址
- 译码
- 执行
- 访存
- 写回
- 更新PC
流水线
- (1)由时钟信号控制,使多条指令不同阶段可以同时执行,增加了延迟,提升吞吐量
- (2)问题:流水阶段长度不一,流水线深度过大插入寄存器影响性能
- (3)因为存在反馈的流水线(即一条指令可能需要多次执行某个操作,或使用某个数据,访问某个存储器或寄存器)导致流水线冒险(数据,控制)
- (4)数据冒险解决方案:暂停(系统判断是否会产生冒险,会则插入气泡,延迟下条指令执行),转发(使产生的结果理解送入需要的位置,避免暂停),加载\使用(当存储器读发生较晚时需要暂停和转发机制同时使用)
- (5)异常处理
- (6)控制逻辑和机制
处理return:暂停流水线直到ret指令到达写回阶段
加载/使用冒险:在对存储器读和使用之间需要暂停一个周期
预测错误分支:当预测失败时应该可以返回到之前状态,去掉错误指令
异常:出现异常时,停止后序指令执行,并避免当前异常指令写回
- (7)性能分析
CPI=1+处罚项(预测错误+返回+暂停)
目标:使CPI=1;一个周期执行一条指令
教材学习中的问题和解决过程
问题1:不理解Y86和X86的区别
解决:其实两者是非常相似的,区别就在于,有的时候Y86需要两条指令来达到X86一条指令就可以达成的目的。Y86就是一个X86的缩减版。
代码托管
结对及互评
本周结对学习情况
20155314刘子健
- 结对学习内容
第四章
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 50/50 | 1/1 | 5/5 | |
第二周 | 100/100 | 1/2 | 5/10 | |
第三周 | 100/200 | 1/3 | 5/15 | |
第四周 | 100/300 | 1/4 | 5/20 | |
第五周 | 100/400 | 1/5 | 5/25 | |
第六周 | 100/500 | 1/6 | 5/30 |