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

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

    教材学习内容总结

    第四章 处理器体系结构

    4.1 Y86指令集体系结构

    • 程序可见状态:每条指令都会读取或修改处理器状态的某些部分

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

    • movl分为irmovl rrmovl mrmovl rmmovl

      四个整数指令:addl subl andl xorl

      7个跳转指令:jmp jle jl je jne jge jg

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

    • 指令的字节级编码:每条指令需要1~6个字节不等,第一个字节表示指令类型,分为两部分,高四位是代码部分,低四位是功能部分

    • 附加寄存器指示符字节:指定一个或者两个寄存器。

    • 附加4字节的常数字:作为irmovl的立即数数据,rmmovl和mrmovl的地址指示符的偏移量,以及分支指令和调用指令的目的地址。

    4.2 逻辑设计和硬件语言HCL

    • 实现一个数字系统需要三个主要的组成部分:计算对位进行操作的函数的组合逻辑、存储位的存储器元素,以及控制存储器元素更新的时钟信号
    • HCL中,将所有字级的信号都声明为int,不指定字的大小,HCL允许比较字是否相等
    • 时序电路:有状态并在这个状态上进行计算的系统
    • 时钟寄存器:存储单个位或字,时钟信号控制寄存器加载输入值
    • 大多数时候,寄存器都保持在稳定状态(x),产生的输出等于它的当前状态。信号沿着寄存器前面的组合逻辑传播,这时,产生了一个新的寄存器输入(y),但只要时钟是低电位的,寄存器的输出就仍然保持不变。当时钟变成高电位的时候,输入信号才加载到寄存器中,成为下一个状态y,直至下一个时钟的上升沿。

    4.3 Y86顺序实现

    • PIPE处理一条指令包括的操作:
    a)    预测PC和取指:将PC内容作地址,从指令存储器读指令,预测下一跳PC地址。
    
    b)    译码:读两个操作数的寄存器值。
    
    c)     执行:根据指令类型,将算数/逻辑单元ALU用于不同操作,包括设置条件码。
    
    d)    访存:数据存储器写入或读出一个存储器字。
    
    e)    写回:写从ALU计算出来的值或者从存储器读出的值。
    
    f)     更新PC
    
    • 流水线化:每个时钟周期,一条指令离开系统,一条新的进入,特点:
    a)    流水线化增加了系统的吞吐量,但会轻微的增加延迟(增加了流水线寄存器)。
    b)    不一致的阶段延迟造成的流水线技术的局限性:系统吞吐量受最慢阶段速度限制。
    c)     流水线过深,收益反而下降,流水线寄存器成为吞吐量的一个制约因素。
    
    • 每个时钟周期都有下面特点:
    a)  程序寄存器都会装载新的指令地址
    b)  只有在执行整数运算指令时才会装载条件码寄存器
    c)  只有在执行rmmovl、pushl、call指令时才会写数据存储器
    

    Y86模拟器安装

    根据实验楼实验步骤,构建YIS环境,并进行测验结果如下:

    课本部分练习题:

    代码调试中的问题和解决过程

    • 问题1:在实验楼安装Y86模拟器安装,出现下图权限不够的情况:

    • 解决:在命令前加 sudo,就可解决所有的权限问题。运行成功如下:

    • 问题二:make all命令没有预期的汇编码,出现下图情况:

    • 解决:.ys文件已经是汇编代码文件了,make xx.yo才会出现汇编代码。因此现在使用cat xx.ys就可以看到代码了。

    代码托管

    (statistics.sh脚本的运行结果截图)

    上周考试错题总结

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

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 20/20 1/2 10/15 第一章
    第三周 130/210 1/2 21/36 第二章
    第四周 70/ 280 1/4 10/46 第十章
    第五周 91 / 371 1/6 23/69 第三章
    第六周 308 / 648 1/8 31/100 第八、十章
    第七周 2200 /2848 1/10 25/125 第四章

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

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

    参考资料

  • 相关阅读:
    转载 消灭程序员需要百年吗?(重要参考)
    转载的一篇,代码规范
    自改的删除数据库中所有外键语句
    [转]批量禁用外键后,清空表数据
    我的分组分页查询语句
    Yii 分页方法总结
    25个Apache性能优化技巧推荐
    浅谈MindSpore的动态Shape
    C++开发总结 A
    Linux环境下开发常用命令汇总 A
  • 原文地址:https://www.cnblogs.com/0831j/p/7788099.html
Copyright © 2011-2022 走看看