2017-2018-1 20155327 《信息安全系统设计基础》第7周学习总结
2017-2018-1 20155327 《信息安全系统设计基础》第7周学习总结
教材学习内容总结
4.1Y86指令集体系结构
4.1.1程序员可见状态
Y86程序中每条指令都会读取或者修改处理器状态的某些部分的状态。
4.1.2 Y86指令
存储器:Y86程序用虚拟地址来引用存储器位置,硬件和操作系统软件联合起来将虚拟地址翻译成实际或物理地址。
状态码:表明程序执行的总体状态,会指示是正常运行还是出现了某种异常。
4.1.3指令编码
4字节的常数字
1.irmovl中的立即数数据
2.mmovl,mrmovl中存储器m地址指示符的偏移量
3.绝对地址:分支指令jXX的目的地址
4.绝对地址:调用指令call的目的地址
注意:字节编码和指令序列是相对应的
4.1.4Y86异常
1 AOK 正常操作
2 HLT 处理器执行halt指令
3 ADR 遇到非法地址
4 INS 遇到非法指令
当遇到这些异常的时候,我们就简单地让处理器停止执行指令。在更完整的设计中,处理器通常会调用一个异常处理程序,这个过程被指定用来处理遇到的某种类型的异常。
4.2逻辑设计和硬件控制语言HCL
电子电路中,用1.0V左右的高电压表示逻辑1,用0.0V左右的低电压表示逻辑0.
4.2.1逻辑门
AND &&
OR ||
NOT !
4.2.2组合电路和HCL布尔表达式
字级相等测试电路:一些位级信号代表一个整数或一些控制模式。执行字级计算的组合电路根据输入字的各个位,用逻辑门来计算输出字的各个位。
算数/逻辑单元(ALU)是很重要的组合电路,有三个输入,标号为A、B的两个数据输入和一个控制输入,根据控制输入的设置,电路会对数据输入执行不同的算数或逻辑操作。
4.2.3字级的组合电路和HCL整数表达式
多路复用函数具体格式:
[
select_1 : expr_1
select_2 : expr_2
……
select_k : expr_k]从逻辑上讲,这些选择表达式是顺序求值的且不同选择表达式之间允许不互斥。
4.2.4集合关系
通用格式:
iexpr in {iexpr1,iexpr2,...,iexprk}(整数表达式)
4.3Y86的顺序实现
4.3.1将处理组织成阶段
取指 译码 执行 访存 写回 更新PC
4.3.2SEQ硬件结构
4.3.3SEQ的时序
1.取指阶段:取指阶段包括指令存储器硬件单元。以PC作为第一个字节(字节0)的地址,这个单元一次从存储器读出6个字节,第一个字节被解释称指令字节,分为两个4位数。
2.译码和写回阶段:寄存器文件有四个端口,支持同时进行两个读(端口A、B)和两个写(E、M),每个端口都有一个地址连接和一个数据连接。
3.执行阶段:执行阶段包括算术/逻辑单元(ALU)第一步每条指令的ALU计算,执行阶段还包括条件码寄存器。
4.访存阶段:访存阶段的任务是读或者写程序数据,两个控制块产生存储器地址和存储器输入数据的值,另外两个块产生控制信号表明应该执行读操作还是写操作。
5.更新PC阶段:SEQ中最后一个阶段会产生程序计数器的新值,依据指令的类型和是否要选择分支,新的PC可能是valC、valM、valP。
教材问题
了解ISA抽象的作用
ISA模型:CPU允许的指令集编码,且顺序地执行指令,也就是先取出一条指令,等到她执行完毕,再开始下一条。然而,现代处理器的实际工作方式可能跟ISA隐含的计算模型大相径庭。通过同时处理多条指令的不同部分,处理器可以获得较高的性能。但其必须对外表现出符合ISA模型的执行结果。
了解流水线和实现方式
流水线是指程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同 指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。
流水线的特点: @流水线可分成若干个互相联系的子过程 @实现子过程的功能所需时间尽可能相等 @形成流水处理,需要一段准备时间 @指令流发生不能顺序执行时,会是流水过程中断,在形成流水过程则需要时间
教材学习中的问题和解决过程
Y86和X86的区别
Y86指令集
halt:这个指令将会终止指令的执行。
nop:这是一个占位指令,它不做任何事情,后续为了实现流水线,它有一定的作用。
xxmovl:这是一系列的数据传送指令,其中r代表寄存器,m代表存储器,i代表立即数。比如rrmovl指令,则代表将一个寄存器的值,赋给另外一个寄存器。
opl:操作指令,比如加法,减法等等。
jxx:条件跳转指令,根据后面的条件进行跳转。
cmovxx:条件传送指令,后面的xx代表的是条件。特别的是,条件传送只发生在两个寄存器之间,不会将数据传送到存储器。
call与ret:方法的调用和返回指令。一个将返回地址入栈,并跳到目标地址。一个将返回地址入PC,并跳到返回地址。
push与pop:入栈和出栈操作。
Y86就是一个X86的缩减版,它的目的是以简单的结构实现一个处理器,帮助我们了解处理器的设计和实现。区别就在于,有的时候Y86需要两条指令来达到X86一条指令就可以达成的目的。
代码调试中的问题和解决过程
- 问题1:XXXXXX
- 问题1解决方案:XXXXXX
- 问题2:XXXXXX
- 问题2解决方案:XXXXXX
- ...
代码托管
(statistics.sh脚本的运行结果截图)
上周考试错题总结
- 错题1及原因,理解情况
- 错题2及原因,理解情况
- ...
结对及互评
点评模板:
- 博客中值得学习的或问题:
- xxx
- xxx
- ...
- 代码中值得学习的或问题:
- xxx
- xxx
- ...
- 其他
本周结对学习情况
- [结对同学学号1](博客链接)
- 结对照片
- 结对学习内容- XXXX- XXXX- ...
其他(感悟、思考等,可选)
xxx
xxx
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 2/4 | 18/38 | |
第三周 | 500/1000 | 3/7 | 22/60 | |
第四周 | 300/1300 | 2/9 | 30/90 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
参考:软件工程软件的估计为什么这么难,软件工程 估计方法
计划学习时间:XX小时
实际学习时间:XX小时
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)
参考资料
- 《深入理解计算机系统V3》学习指导
转载于:https://www.cnblogs.com/l97----/p/7789555.html
2017-2018-1 20155327 《信息安全系统设计基础》第7周学习总结相关推荐
- # 2017-2018-1 20155224 《信息安全系统设计基础》第九周学习总结
2017-2018-1 20155224 <信息安全系统设计基础>第九周学习总结 教材学习内容总结 存储器 随机访问存储器(RAM): 静态RAM:用来作为高速缓存存储器,每个位存储在一个 ...
- 2018-2019-1 20165206 《信息安全系统设计基础》第九周学习总结
- 2018-2019-1 20165206 <信息安全系统设计基础>第九周学习总结 - 教材学习内容总结 计算机系统的主存被组织成一个由M个连续的字节大小的单元组成的数组.每个字节都有一 ...
- 20135203齐岳 信息安全系统设计基础第十三周学习总结
20135203齐岳 信息安全系统设计基础第十三周学习总结 学习计时:8/9共小时(计划/实际) 读书:4/5 代码:1/1 作业:1/1 博客:2/2 第十二章 并发编程 一.学习目标 掌握三种并发 ...
- # 20155337 2017-2018-1 《信息安全系统设计基础》第一周学习总结
20155337 2017-2018-1 <信息安全系统设计基础>第一周学习总结 教材学习内容总结 1.1信息就是位+上下文 hello.c程序是以字节序列的方式储存在文件中的.每个字节都 ...
- 20135219洪韶武——信息安全系统设计基础第五周学习总结
信息安全系统设计基础第五周学习总结 学习任务:教材第四章[处理器体系结构] 学习时间:10小时 一.教材知识点梳理[4.1-4.3] 1.ISA[指令集体系结构] 一个处理器支持的指令和指令的字节级 ...
- 20145227《信息安全系统设计基础》第一周学习总结
20145227<信息安全系统设计基础>第一周学习总结 学习内容总结 Linux是一个操作系统.如果使用GUI,Linux和Windows没有什么区别.Linux学习应用的一个特点是通过命 ...
- 2018-2019 20165203 《信息安全系统设计基础》第一周学习总结
2018-2019-1 20165203 <信息安全系统设计基础>第一周学习总结 教材学习内容总结 编译:gcc [选项] [文件名] 选项参数表 参数 对应功能 -E 仅执行编译预处理 ...
- 2018-2019-1 20165221 《信息安全系统设计基础》第一周学习总结
2018-2019-1 20165221 <信息安全系统设计基础>第一周学习总结 教材学习总结 有关vim 打开方式:vim [文件名] 按i会进入insert模式,可以对代码进行编辑 按 ...
- 2017-2018-1 20155209 《信息安全系统设计基础》第一周学习总结
2017-2018-1 20155209 <信息安全系统设计基础>第一周学习总结 教材学习内容总结 计算机系统就是由可以看到的硬件和系统内的软件组成的,然后用来运行应用程序. 我们平时使用 ...
- 20145307《信息安全系统设计基础》第二周学习总结
20145307<信息安全系统设计基础>第二周学习总结 教材学习内容总结 vim编辑器 Vim的6种基本模式:Vim具有6种基本模式和5种派生模式普通模式(Normal mode) Vim ...
最新文章
- log4net简介(三)之无法写入日志
- Python 技术篇-系统、环境变量配置后python不生效问题解决方法,python服务命令行重启方法
- 2015年第六届蓝桥杯 - 省赛 - C/C++大学A组 - G. 手链样式
- ios 导航栏(自己定义和使用系统方式)
- 前端学习(1221):使用过滤器格式化日期
- 《Java 8 in Action》Chapter 12:新的日期和时间API
- 时间序列分析和预测(含实例及代码)
- JMeter中BeanShell的使用方法和常用语法
- 用matlab模拟等离子体论文,等离子体模型的建立
- Gauss 求积公式及代码
- 股票经典书籍推荐(豪华版)
- 人工智能-生物神经网络
- 自学编程有哪些困难和障碍?
- 中国34个省未来发展趋势深度分析
- Arcgis小技巧【3】——计算图斑的投影面积和椭球面积
- springboot设置空参数_springboot请求参数为空
- 解决问题:UnicodeDecodeError utf-8 codec cant decode byte 0xb5 in position 116:
- 基于JAVA高考报考指南网站计算机毕业设计源码+数据库+lw文档+系统+部署
- 海尔张瑞敏的十三个观点
- Dreamweaver8安装后无法启动
热门文章
- 面试官十大常问面试问题总结
- opencv 智能答卷识别系统(一)
- 5u以太网用交换机连接电脑_干货丨如何用自己的电脑直接连接NUS打印机
- 零序电流计算软件_每天5分钟跟我一起学电气之电力系统中的零序
- python如何安装wordcloud_基于python的wordcloud库的安装方法
- 【kafka】kafka 生态系统 Ecosystem
- 【Flink】 Flink 源码之 Buffer Timeout优化
- 【Elasticsearch】Elasticsearch 7.3 的 offheap 原理
- 【Flink】Flink StreamingFileSink
- 【SpringClould】SpringClould eureka 单机与集群搭建