zoukankan      html  css  js  c++  java
  • 2017-2018-1 20155331 《信息安全系统设计基础》第七周学习总结

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

    学习目标

    1.了解ISA抽象的作用

    2.掌握ISA,并能举一反三学习其他体系结构

    3.了解流水线和实现方式

    教材学习内容总结

    ISA:

    一个处理器支持的指令和指令的字节级编码称为他的指令集体系结构(instruction-Set Architecture, ISA)

    ISA在编译器编写者和处理器设计人员之间提供了一个概念抽象层,编译器编写者只需要知道允许哪些指令,以及他们是如何编译的。

    现代处理器的工作方式可能跟ISA隐含的计算模型大相径庭。ISA模型看上去应该是顺序指令执行,然而,与一个时刻只执行一条指令相比,通过同时处理多条指令的不同部分,能提高处理器的性能。

    HCL:硬件控制语言

    Y86

    一个简单的、可以称之为IA32指令集的子集的指令集;只包括四字节整数操作,寻址方式比较少。指令编码长度从1——6字节不等。

    关于指令结构,每条指令的第一个字节表明指令的类型;这个字节分为两个部分,每部分四位:高四位是代码部分(0——0xB),第四位是功能部分。这里补充一些缩写:立即数(i),寄存器(r)、存储器(m)。指令附加的寄存器指示符字节依次是数据源(如果是立即数,把这一位设置成0xf)、目的寄存器/基址寄存器。有些指令需要附加四字节的常数字,采用小端法(倒序)编码。

    Y86指令的更多细节:

    IA32的movl指令分成了4个不同的指令:irmovl、rrmovl、mrmovl和rmmovl 两个存储器传送指令中的存储器引用方式是最简单的基址和偏移量形式。在地址计算中,我们不支持第二变址寄存器和任何寄存器值的伸缩。 同IA32一样,不允许从一个存储器地址直接传送到另一个存储器地址。另外,也不允许将立即数传送到存储器。

    有4个整数操作指令:addl、subl、andl、xorl。

    6个条件传送指令:cmovle、cmovl、cmove、cmovne、cmovge、cmovg。

    7个跳转指令:jmp、jle、jl、je、jne、jge、jg call指令将返回地址入栈,然后跳到目的地址。ret指令从这样的过程调用中返回 halt指令停止指令的执行。IA32中有一个与之相当的hlt。

    Y86异常:

    在更完整的设计中,处理器就会经常调用一个异常处理程序,这个过程被指定用来处理遇到的某种类型的异常。异常处理程序可以被配置成不同的结果。

    创建Y86唯一的工具就是汇编器。

    YIS(指令集模拟器),它的目的是模拟Y86机器代码程序的执行,而不用试图去模拟任何具体处理器实现的行为。

    Y86指令的详情

    pushl指令会把栈指针减4,并且讲一个寄存器值写入存储器中。因此,执行pushl的时候,处理器的行为是不确定的,因为要入栈的寄存器会被同一条指令修改。通常有两种约定:

    压入%esp的原始值 压入减去4的%esp的值。

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

    1、逻辑门

    逻辑门是数字电路的基本计算元素。他们产生的输出,等于他们输入位值的某个布尔函数。

    AND && OR || NOT !

    逻辑门符号与C语言符号不同,是因为逻辑门只对单个位的数进行操作,而不是整个字。

    逻辑门总是活动的。一旦一个门的输入变化了,在很短时间内,输出就会相应的发生变化。

    将很多的逻辑门组合成一个网,就能构建计算块,称为组合电路。构建这些网有两条限制:

    两个或多个逻辑门的输出不能连接在一起,否则他们可能会使线上的信号矛盾,可能会导致下一个不合法的电压或电路故障。 这个网必须是无环的。也就是不能形成一个回路。

    HCL表达式和C语言中表达式的区别:

    因为组合电路是由一系列逻辑门组成,它的属性是输出会持续的响应输入的变化,如果电路的输入变化了,在一定的延迟之后,输出也会相应的变化。相比之下,C表达式只会在程序执行过程中被遇到时才进行求值。 C的逻辑表达式允许参数是任意整数,0表示FALSE,其他的任何值都表示TRUE。而逻辑门只有0、1. C的逻辑表达式有个属性就是他们可能只被部分求值。如果一个AND或者OR操作结果只用对第一个参数求值就能确定,就不用在对第二个参数求职了。而组合逻辑没有部分求值这条规则,逻辑门只是简单的响应输入的变化。

    2、字级的组合电路和HCL整数表达式

    执行字级计算的组合电路根据输入字的各个位,用逻辑门来计算输出字的各个位。

    在HCL中,我们将所有字级的信号都声明为int,不指定字的大小

    在HCL中,多路复用函数是用情况表达式来描述的。每种情况i都有一个布尔表达式select和一个整数表达式expr。前者表示什么时候该选择这种情况,后者表示得到的值

    算术/逻辑单元(ALU)是一种很重要的组合电路。这个电路有3个输入:标号为A和B的两个数据输入,以及一个控制输入。

    3、存储器和周期:

    时钟寄存器:简称寄存器。存储单个位或字。时钟信号控制寄存器加载输入值。

    随机访问存储器:简称存储器。存储多个字,用地址来选择该读或该写哪个字。

    寄存器文件有两个读端口(A和B),还有一个写端口W。这样一个多端口随机访问存储器允许同时进行多个读和写的操作。每个端口都有一个地址输入,表明该选择哪个程序寄存器。

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

    问题:什么是高级流水线?

    回答:流水线技术是一种将每条指令分解为多步,并让各步操作重叠,从而实现几条指令并行处理的技术。程序中的指令仍是一条条顺序执行,但可以预先取若干条指令,并在当前指令尚未执行完时,提前启动后续指令的另一些操作步骤。这样显然可加速一段程序的运行过程。

    上周考试错题总结

    未公布答案

    结对及互评

    点评模板:

    博客中值得学习的或问题:

    xxx

    xxx

    ...

    代码中值得学习的或问题:

    xxx

    xxx

    ...

  • 相关阅读:
    ssh免密登录
    idea搭建flink环境
    idea快捷键列表
    scala对复杂json的处理
    配置三台服务器的时间同步-linux 及 ntp.conf配置文件详解
    91. Reverse Linked List 反转链表
    92. Reverse Linked List II 反转链表 II
    121. Best Time to Buy and Sell Stock 买卖股票的最佳时机
    53. Maximum Subarray最大子序和
    70. Climbing Stairs爬楼梯
  • 原文地址:https://www.cnblogs.com/dd1174751354/p/7789089.html
Copyright © 2011-2022 走看看