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

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

学习目标

  • 了解ISA抽象的作用
  • 掌握ISA,并能举一反三学习其他体系结构
  • 了解流水线和实现方式

教材学习内容总结

4.1 Y86指令集体系结构

  • ISA(指令集体系结构)
  • 一个处理器支持的指令和指令的字节级编码
  • 有8个程序寄存器:%eax、%ecx、%edx、%ebx、%esi、%edi、%esp、%ebp
  • 处理器的每个程序寄存器存储一个字,寄存器%esp被入栈、出栈、调用和返回指令作为栈指针
  • 有3个一位的条件码:ZF、OF、SF
  • Y86指令集:

    movl指令分成了4个不同的指令:irmovl、rrmovl、mrmovl、rmmovl

    源和目的:源可以是立即数(i)、寄存器(r)、存储器(m)。目的可以是寄存器(r)、存储器(m)。

  • 四个整数操作指令,OPI: addl、subl、andl、xorl

    它们只对寄存器数据进行操作 这些指令会设置3个条件码:ZF、OF、SF

  • 7个跳转指令(jXX): jmp、jle、jl、je、jne、jge、jg

    根据分支指令的类型和条件码的设置来选择分支

  • 6个条件传送指令(cmovXX): cmovle、cmovl、cmove、cmovne、cmovge、cmovg

    这些指令的格式与rrmovl一样,但是只有当条件码满足所需要的约束时,才会更新目的寄存器的值

  • 指令编码

每条指令需要1-6个字节不等

每条指令的第一个字节表明指令的类型:

这个字节分为两个部分:高4位是代码部分、低四位是功能部分

  • Y86异常

    AOK:正常操作

    HLT:处理器执行halt指令

    ADR:遇到非法地址

    INS:遇到非法指令

  • Y86程序

这个程序中,以“.”开头的词是汇编器命令

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

  • HCL语言只表达硬件设计的控制部分,只有有限的操作集合。
  • 逻辑门:

AND:&&

OR:||

NOT:!

  • 多路复用器{MUX)

    多路复用器根据输入控制信号的值,从一组不同的数据信号中选出一个

    在这个简单的多路复用器中,两个数据信号是输入位a和b,控制信号是输入位s

    bool out=(s&&a)||(!s&&b)

  • 字级的组合电路和HCL整数表达式: 位级实现

    字级抽象

    bool Eq=(A==B)

  • HCL中,多路复用函数是用情况表达式来描述的,这个表达式包含一系列情况,每种情况i都有一个布尔表达式selecti和一个整数表达式expri,前者表明什么时候该选择这种情况,后者指明的是得到的值
  • 组合逻辑电路

    算数/逻辑单元(ALU)是一种很重要的组合电路

  • 集合关系
  • 存储器和时钟

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

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

    程序计数器(PC)

    条件代码(CC)

    程序状态(Stat)

4.3 Y86的顺序实现

  • SEQ硬件结构

    在SEQ中,所有硬件单元的处理都在一个时钟周期内完成。

    SEQ线路图的画图惯例:

    浅灰色方框表示硬件单元

    控制逻辑块是用灰色圆角矩形表示的

    线路的名字在白色椭圆中说明

    宽度为字长的数据连接用中等粗度的线表示

    宽度为字节或者更窄的数据连接用细线表示

    单个位的连接用虚线表示

  • SEQ的时序

    SEQ的实现包括组合逻辑和两种存储器设备: 时钟寄存器、程序计数器和条件码寄存器

    随机访问存储器 寄存器文件、指令存储器和数据存储器

    每个时钟周期,程序计数器都会装在新的指令地址;只有在执行整数运算指令时,才会装载条件码寄存器;只有在执行rmmovl、pushl或call指令时,才会写数据存储器;寄存器文件的两个写端口允许每个时钟周期更新两个程序寄存器。

    组织计算原则:处理器从来不需要为了完成一条指令的执行而去读由该指令更新了的状态。

    用时钟来控制状态元素的更新,值通过组合逻辑传播。

  • 处理器设计的几个重要经验:

    管理复杂性是首要问题,尽量保持硬件设计的简单。

    不需要直接实现ISA。

  • 一开始就保证设计正确是非常重要的。

    创建一个流水线化的Y86处理器的好开端。但是,将流水线技术引入一个带反馈的系统,当相邻指令同存在相关时会导致出现问题。

    流水线控制逻辑必须处理以下4种控制情况,这些情况是其他机制(例如数据转发和分支预测)不能能处理的:

    处理ret:流水线必须暂停直到ret指令到达写回阶段。

  • 加载/使用冒险:流水线必须暂停一个周期。

    预测错误的分支:在分支逻辑发现不应该选择分支之前,分支目标处的几条指令已经进流水线了。必须从流水线中去掉这些指令。

  • 异常:当―条指令导致异常,我们想要禁止后面的指令更新程序员可见的状态,并睏异常指令到达写回阶段时,停止执行。

Y86模拟器的安装

  • 构建YIS环境

    解压命令:tar -xvf sim.tar

  • 图形界面需要安装Tcl/Tk

sudo apt-get install tcl8.5-dev tk8.5-dev tcl8.5 tk8.5

  • 进行文件的修改(打开文件目录下的makefile文件夹,用leafpad或者其他记事本进行修改)
GUIMODE=-DHAS_GUI       (去掉原有注释#)

TKLIBS=-L/usr/lib/ -ltk8.5 -ltcl8.5

TKINC=-I/usr/include/tcl8.5
  • make clean;make
  • 运行图形界面
  • 代码运行中遇到的问题
  • 问题: 无法进行install,显示进程被占用
  • 解决过程: 输入命令ps -aux 查看进程,用sudo kill PID强制结束进程,之后成功安装。

代码托管

代码上传截图:

码云链接

学习进度条

  代码行数(新增/积累) 博客量(新增/积累 学习时间(新增/累积)
目标 5000行 30篇 400小时
第一周 5/5 1/1 8/8
第二周 120/120 1/1 12/12
第三周 100/100 1/1 15/15
第四周 80/80 1/1 9/9
第五周 50/50 1/1 6/6
第六周 350/350 1/1 12/12
第七周 120/120 2/2 15/15

参考资料

《深入理解计算机系统V3》学习指导

时间: 2024-11-25 06:49:06

2017-2018-1 20155208 《信息安全系统设计基础》第七周学习总结的相关文章

20135223何伟钦—信息安全系统设计基础第七周学习总结

第六章 存储器层次结构 [学习时间:6小时] [学习任务:<深入理解计算机系统>第六章] 6.1存储技术 6.1.1随机访问存储器 分为两类:静态(SRAM)和动态(DRAM). (1)SRAM:高速缓存存储器,既可以在CPU芯片上,也可以在片下. (2)DRAM:主存以及图形系统的帧缓冲区. 1.静态RAM SRAM将每个位存储在一个双稳态的存储器单元里.每个单元是用一个六晶体管电路来实现的.该电路有一个属性:可以无限期地保持在两个不同的电压配置或状态之一. 2.动态RAM 每位晶体管数 相

20135205信息安全系统设计基础第七周学习总结

第六周 存储器层次结构 ---------------------------------------------------------------------- 第一节 存储技术 1.三种常见存储技术 1)RAM 静态RAM:SRAM将每个位存储在一个双稳态的存储单元里. 每个单元是用一个六晶体管电路实现的这个电路有这样一个属性,可以无限期地保持在两个不同的电压配置或状态之一. 动态RAM:DRAM将每个位存储为对一个电容的充电. 每个单元由一个电容和一个访问晶体管组成. 与SRAM不同,D

信息安全系统设计基础第七周学习总结—20135227黄晓妍

第六章存储器层次结构 6.1存储技术 6.1.1随机访问存储器(分成两类) 静态RAM(SRAM):快,作为高速缓存存储器.(几百几千兆) 动态RAM(DRAM):作为主存,图形系统的帧缓冲区.(<=几兆) 1.静态RAM 具有双稳定状态,它可以无期限地保持在两个不同的电压配置(状态)其中的一个.也可以保持在亚稳定状态,但这个状态易被干扰.由于它具有双稳定性,所以即使有干扰,当干扰消除时,它能很快地恢复到稳定值. 2.动态RAM DRAM将每个位存储为对一个电容充电.对干扰非常敏感,电容的电压被

20135234马启扬-——信息安全系统设计基础第七周学习总结

第六章 存储器层次结构 存储器系统是一个具有不同容量,成本和访问时间的存储设备的层次结构. CPU寄存器保存着最常用的数据. 靠近CPU的小的,快速的高速缓存存储器作为一部分存储在相对较慢的主存储器(主存)中的数据和指令的缓存区域. 主存暂时存放存储在容量较大的,慢速磁盘上的数据,而这些磁盘常常又作为存储在通过网络连接的其他机器的磁盘或磁带上的数据的缓存区域. 6.1存储技术 6.1.1随机访问存储器 随机访问存储器(RAM)分为:静态的RAM(SRAM)和动态的RAM(DRAM) SRAM用来

信息安全系统设计基础第七周学习总结

一. Linux命令复习: man –k: man –k <命令> :用于学习命令 关于man命令的区分: (1)一般命令:(2)系统调用:(3)库函数,涵盖了C标准函数库.可以通过在man后面加上相应区段的数字查看相应段的内容. cheat: 查看可用的小抄列表:cheat –l 要访问某个指定命令的小抄,只要运行cheat命令,后面跟上该命令的名称:cheat <command-name> 你可以通过使用“-s”选项,在所有小抄中搜索包含有指定关键词的内容:cheat -s &

20145216 史婧瑶《信息安全系统设计基础》第一周学习总结

20145216 <信息安全系统设计基础>第一周学习总结 教材学习内容总结 Linux基础 1.ls命令 ls或ls .显示是当前目录的内容,这里“.”就是参数,表示当前目录,是缺省的可以省略.我们可以用ls -a .显示当前目录中的所有内容,包括隐藏文件和目录.其中“-a” 就是选项,改变了显示的内容.如图所示: 2.man命令 man命令可以查看帮助文档,如 man man : 若在shell中输入 man+数字+命令/函数 即可以查到相关的命令和函数:若不加数字,那man命令默认从数字较

20145311 《信息安全系统设计基础》第一周学习总结

20145311 <信息安全系统设计基础>第一周学习总结 教材学习内容总结 常用的部分命令 CTRL+SHIFT+T:新建标签页,编程时有重要应用: ALT+数字N:终端中切换到第N个标签页,编程时有重要应用: Tab:终端中命令补全,当输入某个命令的开头的一部分后,按下Tab键就可以得到提示或者帮助完成: CTRL+C:中断程序运行 Ctrl+D:键盘输入结束或退出终端 Ctrl+S: 暂定当前程序,暂停后按下任意键恢复运行 Ctrl+A: 将光标移至输入行头,相当于Home键 Ctrl+E

20145216史婧瑶《信息安全系统设计基础》第九周学习总结

20145216史婧瑶<信息安全系统设计基础>第九周学习总结 教材内容总结 第十章 系统级I/O 输入/输出(I/O)是在主存和外部设备之间拷贝数据的过程. 第一节 Unix I/O 这一节涉及到操作系统的基本抽象之一--文件.也就是说,所有的I/O设备都被模型化为文件,而所有的输入输出都被当做对相应文件的读/写.相关的执行动作如下: 1.打开文件: 应用程序向内核发出请求→要求内核打开相应的文件→内核返回文件描述符 文件描述符:一个小的非负整数,用来在后续对此文件的所有操作中标识这个文件.有

20145311 《信息安全系统设计基础》第二周学习总结

20145311 <信息安全系统设计基础>第二周学习总结 教材学习内容总结 重新学习了一下上周的一部分命令:grep main wyx.c(grep的全文检索功能)ls > ls.txt :ls内容输出到文本find pathname -mtime -n/+nfind -size -n/+n (find的功能还是比较强大) 简单地学习了一下vim编辑器,跟着vimtutor简单地学了一些,在linux bash中使用vim能够极大地提高效率, vim的用法比较多,只学习了其中简单的一部分

20145339《信息安全系统设计基础》第一周学习总结

20145339顿珠达杰<信息安全系统设计基础>第一周学习总结 ◆ Linux是一个操作系统.如果使用GUI,Linux和Windows没有什么区别.Linux学习应用的一个特点是通过命令行进行使用. 物理机系统上可以通过使用[Ctrl]+[Alt]+[F1]-[F6]进行终端和图形界面切换,在线实验环境中按下[Ctrl]+[Alt]+[F7]来完成切换.普通意义上的 Shell 就是可以接受用户输入命令的程序,Unix/Linux 操作系统下的 Shell 既是用户交互的界面,也是控制系统的