信息安全系统设计基础第五周学习总结
学习目标
1. 阅读教材,完成课后练习(书中有参考答案)
4.1-4.3中练习,重点:4.1 4.2 4.5 4.6 4.8 4.10 4.11 4.12 4.16 4.17 4.19 4.21 4.24
2. 考核:练习题把数据变换一下
3. 实验:需要动手的到实验楼中练习一下
第四章处理器体系结构
ISA:一个处理器支持的的指令和指令的字节级编码称为它的指令集体系结构
ISA在编译器编写者和处理器设计人员之间提供了一个概念抽象层,编译器编写者只需要知道允许哪些指令,以及它们是如何编码的;而处理器设计者必须建造出执行这些指令的处理器
4.1 Y86指令集体系结构
l 程序员可见状态:Y86程序中的每条指令都会读取或修改处理器状态的某些部分。“程序员”既可以是用汇编代码写程序的人,也可以是产生机器级代码的编译器。
l Y86指令集 :这些指令其实就是IA32指令集的子集
l 指令编码:每条指令的第一个字节表明指令类型。这个字节分为两部分,每部分4位:高四位是代码部分,低四位是功能部分。有的指令只有一个字节长,而有的需要操作数的指令编码更长。可能有附加的寄存器指示符字节。有些指令需要一个附加的四字节常数字。指令集的一个重要性质就是字节编码必须有唯一的解释。
l Y86异常:Y86有四种不同的状态码,AOK(正常)、HLT(执行halt指令)、ADR(非法地址)和INS(非法指令)。当Y86遇到异常,我们就简单地让处理器停止执行命令。
l Y86程序:有的时候Y86需要两条指令来达到X86一条指令就可以达成的目的。
4.2逻辑设计和硬件控制语言HCL
l 逻辑门:AND => && Or => || Not => !
l 组合电路和HCL布尔表达式:很多逻辑门组成一个网。逻辑门的输出不能连接在一起。必须无环。多路复用器:根据输入控制信号的值,从一组不同的数据信号中选出一个。
l 存储器和时钟:为了产生时序电路,也就是有状态并且在这个状态上进行计算的系统,我们必须引入安位存储信息的设备,存储设备都是有同一个时钟控制,时钟是一个周期性信号。
4.3 Y86的顺序实现
l 将处理器组织成阶段:
取指:从存储器读取指令字节,地址为程序计数器的值。它按顺序方式计算当前指令的下一条指令的地址valP。
译码:从寄存器文件读入最多两个操作数,得到值valA和/或valB。
执行:算数/逻辑单元要么执行指令指明的操作(根据ifun的值),计算存储器引用 的有效地址,要么增加或减少栈指针,得到的值称为valE。在此也可能设置条件码,对一条跳转指令,这个阶段会检验条件码和分支条件。
访存:可以将数据写入存储器,或者从存储器读出数据,读出的值为valM。
写回:最多可以写回两个结果到寄存器文件。
更新PC:将PC设置成下一条指令的地址。
以上阶段无限循环,指导遇到异常。我们想使硬件数量尽可能的少,一种方法是让不同指令共享尽可能多的硬件。
实验五: