2017-2018-20155206 《信息安全系统设计基础》第七周学习总结
教材学习内容总结
、 ISA
、 ISA是IndustryStandardArchitecture的缩写ISA插槽是基于ISA总线(IndustrialStandardArchitecture,工业标准结构总线)的扩展插槽,其颜色一般为黑色,比PCI接口插槽要长些,位于主板的最下端。其工作频率为8MHz左右,为16位插槽,最大传输率16MB/sec,可插接显卡,声卡,网卡已及所谓的多功能接口卡等扩展插卡。其缺点是CPU资源占用太高,数据传输带宽太小,是已经被淘汰的插槽接口。
ISA是8/16bit的系统总线,最大传输速率仅为8MB/s,但允许多个CPU共享系统资源。由于兼容性好,它在上个世纪80年代是最广泛采用的系统总线,不过它的弱点也是显而易见的,比如传输速率过低、CPU占用率高、占用硬件中断资源等。后来在PC‘98规范中,就开始放弃了ISA总线,而Intel从i810芯片组开始,也不再提供对ISA接口的支持。
、 Y86指令体系结构
Y86的处理器类似于IA32
、 有8个程序寄存器,%eax,%ecx,%edx,%ebx,%esi,%edi,%esp,%ebp
处理器的每个程序寄存器存储一个字
寄存器%esp被入栈、出栈、调用和返回指令作为栈指针。在其他情况下,寄存器没有固定的含义或固定值。
有三个一位的条件码:ZF,SF,OF,它们保存最近的算术或洛基指令所造成英雄的有关信息。
程序计数器PC存放当前正在执行指令的地址。
状态码stat,它
、 Y86指令
movl:irmovl、rrmovl、mrmovl、rmmovl,分别显式地指明源和目的地的格式。第一个字母表明源的类型,i(立即数)、r(寄存器)或m(存储器 ),第二个字母代表目的,可以是r或者m。
、 1.两个存储器传送指令中的存储器引用方式是简单地基址和偏移量形式,即:
Imm(Eb) M[Imm+R[Eb]](基址+偏移量)寻址
、 2.不允许从一个存储器地址直接传送到另一个存储器地址,也不允许将立即数传送到存储器。
、 OPl(整数操作指令):addl、subl、andl和xorl。只对寄存器数据进行操作,同时还设置条件码。
jXX(跳转指令):jmp、jle、jl、je、jne、jge、jg,根据分支指令的类型和条件码的设置来选择分支。
cmovXX(条件传送指令):cmovle、cmovl、cmove、cmovne、cmovge和comvg,与寄存器-寄存器传送指令rrmovl一样,但只有当条件码满足所需要的约束时才会更新目的寄存器的值。
call和ret:call指令将返回地址入栈,然后跳转到目的地址。ret指令从这样的过程调用中返回。
pushl和popl:入栈和出栈。
halt:停止指令的执行。
、 逻辑设计和硬件控制语言HCL
、 逻辑门
、 1.逻辑门产生的输出,等于它们输入位值的某个布尔函数。
AND &&
OR ||
NOT !
、 2.逻辑门只对单个位的数进行操作,而不是整个字。
、 3.逻辑门总是活动的,输入变化输出很快就跟着变化。
、 组合电路和HCL布尔表达式
、 1.构建计算块(组合电路)时的限制
两个或多个逻辑门的输出不能连接在一起
必须无环
、 2.组合逻辑电路和c语言中逻辑表达式的区别
组合电路的输出会持续响应输入变化,c语言表达式只有在执行过程中被遇到才求值
逻辑门只对0和1操作,c语言表达式中参数可以是任意整数,0是FALSE,不是0的都是TRUE
c的逻辑表达式可能被部分求值
Y86的顺序实现
、 一、将处理组织成阶段
、 六个基本阶段:
、 取指:从存储器读取指令字节,地址为程序计数器(PC)的值。指令指示符字节两个四位部分,称为icode(指令代码)和ifun(指令功能)。vaIP(下一条指令的地址)=PC+已取出指令的长度。
、 译码:从寄存器文件读入最多两个操作数,得到valA和/或valB。
、 执行:算数逻辑单元(ALU)根据ifun的值执行指令指明的操作,计算存储器引用的有效地址,或者增加或减少栈指针。得到的值称为valE。也可根据条件码执行跳转。
、 访存:将数据写入存储器,或者从存储器读出数据。读出的值为valM。
、 写回:将数据写入存储器,或者从存储器读出数据。读出的值为valM。
、 更新PC:将PC设置成下一条指令的地址。
、 二、SEQ硬件实现
、 取指:将程序计数器寄存器作为地址,指令存储器读取指令的字节。PC增加器计算valP,即增加了的程序计数器。
、 译码:寄存器文件有两个读端口A和B,从这两个端口同时读寄存器的值valA和valB。
、 执行:根据指令类型将算数/逻辑单元(ALU)用于不同的目的。条件码寄存器有三个条件码位,ALU负责计算条件码的新值,当执行跳转指令时会根据条件码和跳转类型来计算分支信号Cnd。
、 访存:数据存储器读出或写入一个存储器字。指令和数据存储器访问的是相同的存储器位置,但用于不同的目的。
、 写回:寄存器文件有两个写端口,E用来写ALU计算出来的值,M用来写从数据存储器中读出来的值。
、 三、SEQ的时序
、 Y86指令集的计算原则:处理器从来不需要为了完成一条指令的执行而去读由该指令更新了的状态。
、 四、SEQ阶段的实现
、 取指阶段:包括指令存储器硬件单元。
、 译码和写回阶段:寄存器文件,支持同时进行两个读和两个写,每个端口有一个地址连接(寄存器ID)和一个数据连接(32根线路),既可以作为寄存器文件的输出字,又可以作为他的输入字。
、 执行阶段:算数逻辑单元(ALU),输出为valE信号。
、 访存阶段:读或者写程序数据,两个控制块产生存储器地址和存储器输入数据的值。另外两个块产生控制信号表明应该执行读还是写操作。当执行读操作时,数据存储器产生valM。
、 更新PC阶段:产生程序计数器的新值,依据指令的类型和是否要选择分支,新的PC可能是valC、valM或者valP。