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

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

    教材学习内容总结

    • 指令集体系结构(ISA):一个处理器支持的指令和指令的字节级编码
    • Y86指令

    只包括四字节整数操作

    1. movl分为irmovl rrmovl mrmovl rmmovl
    2. 整数指令:addl subl andl xorl
    3. 跳转指令:jmp jle jl je jne jge jg
    4. 条件传送指令:cmovle cmovl cmove cmovne cmovge cmovg
    • 逻辑门
    1. AND:&&
    2. OR:||
    3. NOT:!
    • 存储器和时钟
    1. 时序电路:有状态并在这个状态上进行计算的系统

    2. 时钟寄存器:存储单个位或字,时钟信号控制寄存器加载输入值

    3. 随机访问存储器:存储多个字,用地址来选择该读或改写哪个字(处理器的虚拟存储器系统、寄存器文件)

    4. 寄存器作为电路不同部分中的组合逻辑之间的屏障,每当每个时钟到达上升沿的时候,值才会从寄存器的输入传送到输出

    • Y86的顺序实现

    将处理组织成阶段

    1. 取值:从存储器读取指令字节,地址为程序计数器PC的值,icod指令代码、ifun指令功能、valc四字节常数、valp下一条指令的地址=PC值+已取出指令长度
    2. 译码
    3. 执行:算数/逻辑单元要么执行指令指明的操作计算存储器引用的有效地址,要么增加或减少栈指针,得到的值称为valE
    4. 访存
    5. 写回:最多可以写两个结果到寄存器文件
    6. 更新PC:将PC设置成下一条指令地址
    • SEQ硬件结构
    1. 取值:将程序计数器寄存器作为地址,指令存储器读取指令的字节
    2. 译码:两个读端口,读寄存器valA和valB
    3. 执行:根据指令的类型,将算数/逻辑单元用于不同的目的
    4. 访存:数据存储器读出或写入一个存储器字
    • SEQ阶段的实现
    1. 取指:以PC作为第一个字节的地址,这个单元一次从存储器读出6个字节
    2. 译码和写回:两个读和两个写端口,每个端口都有一个地址连接和一个数字连接
    3. 执行:根据alufun信号的设置,对输入的aluA和aluB执行ADD SUBTRACT AND EXCLUSIVE-OR运算,ALU的输出就是valE信号
    4. 访存:读或写程序数据
    5. 更新PC:依据指令的类型和是否要选择分支,新的PC可能是valC、valM或valp

    实验楼实验

    • 创建YIS环境
    1. 创建文件夹并进入

    2. 去网站下载sim压缩包

    3. 解压

    4. 进入sim文件夹并安装bison flex tk

    5. sudo ln -s

    6. make
      /usr/lib/x86_64-linux-gnu/libtk8.6.so /usr/lib/libtcl.so

    • 测试
    1. cd y86-code
    2. make xxx.yo

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

    • 问题一.教材练习题4.12:写一个电路的HCL代码,对于输入字AB和C,选择中间值,也就是,输出等于三个输入中居于最小值和最大值之间的那个字。
    • 这个问题是一个很简单的问题,当时我在看书的时候,觉得1...:x不是很理解,后来多看了几个例子,感觉这个是一个比较简单的简写。
    word Ned3 = {
        A <= B && B <= C : B;
        C <= B && B <= A : B;
        B <= A && A <= C : A;
        C <= A && A <= B : A;
        1                ;C 
    }
    

    其实等价于

    word Ned3 = {
        A <= B && B <= C : B;
        C <= B && B <= A : B;
        B <= A && A <= C : A;
        C <= A && A <= B : A;
        A <= C && C <= B : C;
        B <= C && C <= A : C;
    }
    

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

    代码托管

    上周考试错题总结

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

    这周学习了新的处理器环境,感觉在刚接触的时候,不是很习惯,然后觉得看书也不是很能看懂,通过一些习题的练习和实验楼的实验,我感觉稍微有点感觉了,但是还需努力!

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第三周 500/1000 2/11 22/60

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

    • 计划学习时间:25小时
    • 实际学习时间:30小时
    • 改进情况:学习时间有所增长
  • 相关阅读:
    execl csv导出
    input里面check 状态检测
    注意这种方法的判断
    本周,上周,本月,上月
    bootstrap 兼容IE8设置
    js jquery 验证写法
    Jquery radio checked
    最简单的XML转数组
    eq,neq,gt,lt等表达式缩写
    python中的注释
  • 原文地址:https://www.cnblogs.com/JIUSHA/p/7788941.html
Copyright © 2011-2022 走看看