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


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

    教材学习内容总结

    image
    处理器是如何工作的对于我们普通人来说一直是个秘密,我们将从零开始构建一个流水线处理器,为了实现这一处理器的软硬件,我们有大量的前提知识要学习,包括:指令系统、硬件设计背景知识(hcl)、以及流水线的通用原理。学习完这些内容以后我们才开始YY一个我们自己的86处理器。

    1、介绍一个精简的Y86指令集

    ①状态码

    image

    ②所支持的指令

    image

    1] 字段 fn 指明是某个整数操作:OPL、数据移动条件:cmovXX、分支条件:jXX;

    2] 图中最后的pushl、popl指明不需要访问任何寄存器0xF表示;

    3] xxmovl中:i代表立即数,r代表寄存器,m代表存储器;

    4] OPL代表的是:add sub and xor;jXX代表:jmp、jle、jl、je、jne、jge、jg。

    ③一条普通指令的编码:

    image

    其他具体的编码如下:
    image
    根据功能进行最优化的存储方式,比如rrmovl与条件传送有相同的code编码,这是因为其行为相当于无条件传送。

    !我们还需要访问寄存器,为了访问的便利我们给寄存器编号,统一存放在CPU的一个寄存器文件中。就如学生时代的学号一样,唯一、明确,也像收监的犯罪嫌疑人,你从入狱的那一天起将没有名字,没有身份,只是一个简化的号码。
    image
    举例说明:rmmovl %esp ,   0x12345(%edx)

    rmmovl ——>4  0

    esp|edx—③—>4 2

    0x12345——>00,01,23,45(小端法存储)

    合成到最后的指令就是:[40] [42] [45] [23] [01] [00]

    任何一个指令序列都是一个唯一的编码

    ④异常

    状态码如下:
    image
    image

    翻译成x86和y86汇编形式,基本上没什么不同
    image

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

    计算对位进行组合的逻辑;存储位的存储原理和更新时钟信号三部分内容。

    ① 对单个为进行操作:逻辑门

    image

    ② 组合逻辑用HCL表示:一个逻辑门肯定实现不了很多功能,我们来组合一下用于检测两个Bit是否相等:

    image
    当 a = b = 0时:上与逻辑为0,下与逻辑为1 或逻辑输出eq为1;

    当a = b = 1时:上与逻辑为1,下与逻辑为0 或逻辑输出eq为1;

    多路复用器:根据s的值选择是输出a或者b
    image
    当 s = 0时,上与为b, 下与为0,或逻辑输出out = b;

    当 s = 1时, 上与为0, 下与为a,或逻辑输入out = a;

    四路复用器:

    image

    ③ 集合关系

    在处理器设计中,很多时候需要将一个信号与许多可能匹配的信号做比较,以此来检验正在处理的信号是否属于某一类指令代码;
    image
    image

    ④ 存储器和时钟:存储原理(组合电路本身不能存储信息,只是一个时间序列电路)

    image
    分类:

    1] 时钟存储器(寄存器):存储单个位或字;

    2] 随机访问存储器(存储器):存储多个字;(虚拟存储系统,寄存器文件,)

    硬件寄存器和程序寄存器的区别:

    硬件寄存器:在硬件中寄存器直接将输入和输出连接到电路的其他部分;

    程序寄存器:CPU中位数不多的可寻址的寄存器,地址就是寄存器ID。

    a.硬件寄存器:当时钟信号处于高频上升阶段时,才将输入的信号加载
    image
    b.寄存器文件
    image
    有两个读:A、B端口,和一个写:W端口。允许同时进行多个读写操作,可以同时读两个寄存器和写一个寄存器的值。srcX、desW代表地址,valX、valW代表要数据。如我们要访问3号寄存器ebx的值,就将srcA=3,然后valA就是要访问的数据。

    c.随机访问存储器
    image
    假如我们要访问一个地址address上的数据,就将该地址传入address中,同时设置write=0,那么在data out上的数据就是我们要访问的值了。

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

    存储器和时钟
    时钟寄存器(简称寄存器)存储单个位或字。时钟信号控制寄存器加载输人值。
    随机访问存储器(简称内存)存储多个字,用地址来选择该读或该写哪个字。随机访
    问存储器的例子包括:1)处理器的虚拟内存系统,硬件和操作系统软件结合起来使
    处理器可以在一个很大的地址空间内访问任意的字;2)寄存器文件,在此,寄存器
    标识符作为地址。在IA32或Y86-64处理器中,寄存器文件有15个程序寄存器(%
    rax一%r14)。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时

    第五周 23/455 1/10 8/93
    尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
    耗时估计的公式
    :Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

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

    计划学习时间:10小时

    实际学习时间:15小时

    改进情况:学习效率不高,仍有待改进

  • 相关阅读:
    《数据结构》2.2顺序表(sequence list)
    《算法竞赛入门经典》6.3.1二叉树-小球下落
    java_时间戳与Date_相互转化
    java事物
    Mysql如何向存在外键的数据表中插入数据
    git基本配置
    mysql时间属性之时间戳和datetime之间的转换
    【转】变量命名(简短且无歧义)
    【转】mybatis实战教程(mybatis in action),mybatis入门到精通
    [转]DAO层,Service层,Controller层、View层
  • 原文地址:https://www.cnblogs.com/Twe1vE/p/7787391.html
Copyright © 2020-2023  润新知