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

本文总结了Y86处理器的基础知识,包括程序寄存器、指令集、异常处理等内容。详细介绍了Y86指令系统及编码方式,并探讨了逻辑设计和硬件控制语言HCL的应用。此外,还讨论了处理器的顺序和流水线实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

第四章教材学习内容总结

4.1.1程序员可见的状态

有8个程序寄存器,%eax,%ecx,%edx,%ebx,%esi,%edi,%esp,%ebp
.存储器

Y86程序用虚拟地址来引用存储器位置,硬件和操作系统软件联合起来将虚拟地址翻译成实际或物理地址
状态码stat

它表明程序执行的总体状态,会指示是正常运行还是出现了某种异常。

4.1.2 Y86指令

1.Movl指令分成了4个不同的指令:irmovl,rrmovl,mrmovl,rmmovl,分别显式的指明源和目的的格式。

2.4个整数操作指令

3.7个跳转指令。

4.6个条件传送指令

5.Call和ret

6.Pop,push

7.Halt
 

1071516-20171102105007091-712087121.png

4.1.3 指令编码

整数操作

分支指令

传送指令

当需要指明不应访问任何寄存器时,用ID值0xF表示     

     
     • 寄存器指示符字节
     

 

4.1.4 Y86异常

     

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

数字系统三部分组成:组合逻辑、存储器元素、时钟信号。 HCL:硬件控制语言,描述不同处理器设计的控制逻辑。

1.逻辑门

AND:&& OR:|| NOT:! 每个门产生的输出等于他输入的某个布尔函数

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

组合逻辑电路和c语言中逻辑表达式都是用布尔操作来对输入进行计算的函数。

区别:

组合电路的输出会持续地响应输入变化,c语言表达式只有在执行过程中被遇到才求值

C的逻辑表达式允许参数是任意整数,0是FALSE,其他任何值0的都是TRUE,逻辑门只对位值0和1操作。

C的逻辑表达式可能被部分求值(第一个参数就能确定结果的就不会对第二个求值)

两个限制:1.两个及以上逻辑门的输出不能连接在一起(会产生信号矛盾)。

2.网必须是无环的,不可以有路径经一系列门而形成回路。

3.字级的组合电路和HCL整数表达式

同C语言的switch语句不同,我们不要求不同的选择表达式之间互斥。这些选择表达式顺序求值,且第一个求值为1的情况被选中

通用格式: [ select_1 :expr_1 select_2 :expr_2 ...... ...... select_k :expr_k ]

4.集合关系

bool s1= code==2||code==3; 等价于 bool s1 = code in {2,3}; 表示当code在集合{2,3}中s1为1。

5.存储器和时钟

时序电路:有状态,且在这个状态上进行计算的系统。 时序电路的两类存储器设备

时钟寄存器(寄存器):储存单个位或字,用时钟信号控制寄存器加载输入值。

随机访问储存器(储存器):储存多个字,用地址选择该读/写哪个字。

1071516-20171102105024654-169260334.png

4.3 y86的顺序(sequential)实现

4.3.1 将处理组织成阶段
通常,处理一条指令包括很多操作。将它们组织成某个特殊的阶段序列,即使指令的动作差异很大,但所有的指令都遵循统一的序列。每一步的具体操作取决于正在执行的指令。创建这样的框架,我们便能设计一个充分利用硬件的处理器。简略描述:
1.针对OPl(整数和逻辑运算),rrmovl(寄存器-寄存器传送)和irmovl(立即数-寄存器传送)

2.针对rmmovl和mrmovl

3.针对pushl和popl

4.针对跳转,call和ret

取指
译码
执行
访存
写回
更新PC
4.3.2 SEQ硬件结构

4.3.3 SEQ的时序
时序控制:程序计数器、条件码寄存器、数据寄存器、寄存器文件。
4.3.4 SEQ阶段的实现

4.4 流水线的通用原理

将每条指令的执行分解成五步,每个步骤由一个独立的硬件部分或者阶段来处理。指令步经流水线的各个阶段,且每个时钟周期有一条新指令进入流水线。处理器可以同时执行五条指令的不同阶段。
4.4.1 计算流水线

4.4.2 流水线操作的详细说明

4.4.3 流水线的局限性

4.4.4 带反馈的流水线系统

4.5 y86的流水线实现

4.5.1 SEQ+重新安排计算阶段

4.5.2 插入流水线寄存器

4.5.3 对信号进行重新排列和标号

4.5.4 预测下一个PC

4.5.5 流水线冒险

4.5.6 用暂停来避免数据冒险

4.5.7 用转发来避免数据冒险

4.5.8 加载/使用数据冒险

4.5.9 异常处理

4.5.10 PIPE各阶段的实现

4.5.11 流水线控制逻辑

4.5.12 性能分析

教材学习中的问题和解决过程

本章主要是讲了处理器结构,各种逻辑门、功能单元,指令集,指令的执行,指令执行的流水线等的内容,感觉通过Y86简单的了解了一些处理器体系结构。并且书上用其表示基本的运算和控制,甚至讲了数字电路的HCL 。数据流、组合逻辑和流水线,图示+详细的讲解,让我学习起来还比较顺利。

代码托管

https://gitee.com/bestiisjava2017/yxc20155302/tree/master/src/信息安全系统设计基础20155302

1071516-20171102105047576-507810542.png

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

  1. 遇到问题后我用过百度用各种方式查找实验的问题,在不同的电脑上测试,果然还是答疑论坛最管用了
  2. markdown真的很方便。
  3. 很多人说这本书是入门级教程,但是还是觉得不容易看懂。

学习进度条

代码行数(新增积)博客量(新增积)学习时间(新增积)重要成长
目标5000行30篇400小时
第一周0/02/220/20
第二周0/02/418/38
第三周80/803/722/60
第四周180/2602/930/90
第五周218/4782/1120/110

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

  • 计划学习时间:XX小时

  • 实际学习时间:XX小时

  • 改进情况:

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

参考资料

转载于:https://www.cnblogs.com/STILLlover521/p/7771137.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值