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

知识梳理

第四章 处理器体系结构

序言

  • 一个处理器支持的指令和指令的字节级编码称为它的指令集体系结构(ISA)。
  • Y86:简化 顺序操作 功能正确 不太实用。要求处理很多冒险或冲突情况。

4.1 Y86指令集体系结构

程序员可见的状态:

  • Y86程序中的每条指令都会读取或修改处理器状态的某些部分。这里的“程序员”既可以是用汇编代码写程序的人,也可以使产生机器级代码的编译器。
    信息安全系统设计基础第五周学习总结_第1张图片
  • 8个程序寄存器:%eax %ecx %edx %ebx %esi %edi %esp %ebp,处理器的每个程序寄存器存储一个字。
  • 3个一位的条件码:ZF SF OF,他们保存最近的算数或逻辑指令所造成影响的有关信息。
  • 程序计数器存放当前正在执行指令的地址。
  • 存储器保存程序和数据。Y86程序用虚拟地址来引用存储器位置。硬件和操作系统联合起来将虚拟地址翻译成实际或物理地址。
  • 状态码stat,表明程序执行的总体状态。它会指示是正常运行还是出现了某种异常。

Y86指令:

  • IA32指令集的一个子集。它只包括四字节整数操作。
    信息安全系统设计基础第五周学习总结_第2张图片
  • Movl指令分成了4个不同的指令:irmovl,rrmovl,mrmovl,rmmovl,分别显式的指明源和目的的格式。
  • 4个整数操作指令
  • 7个跳转指令。
  • 6个条件传送指令
  • Call和ret
  • Pop,push
  • Halt

编码指令

  • 代码部分,功能部分,寄存器标识符,寄存器指示符。(小端法)
  • 指令集的一个重要性质就是字节编码必须有唯一的解释。
    信息安全系统设计基础第五周学习总结_第3张图片

Y86异常:

  • 状态码stat,停止执行指令。
    信息安全系统设计基础第五周学习总结_第4张图片

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

  • 在硬件设计中,用电子电路来计算对位进行计算的函数,以及在各种存储器元素存储位。
  • 一个数字系统需要三个主要的组成部分:1、计算对位进行操作的函数的组合逻辑。2、存储位的存储器元素。3、控制存储器元素更新的时钟信号。

逻辑门

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

组合电路和HCL布尔表达式

  • 将很多的逻辑门组合成一个网,就能构成计算块,称为组合电路。
  • 两条限制:
    +两个或多个逻辑门的输出不能连接在一起。
    +这个网必须是无环的。
  • 字级的组合逻辑电路和HCL整数表达式
  • 执行字级计算的组合电路根据输入字的各个位,用逻辑门来计算输出字的各个位。
  • 在HCL中,我们将所有字级的信号都声明为int,不指定字的大小。HCL允许比较字是否相等。
  • 画字级电路的时候,我们用中等粗度的线来表示携带字的每个位的线路,而用虚线来表示布尔信号结果。
  • 组合逻辑电路可以设计成在字级数据上执行许多不同类型的操作。

集合关系

  • 将一个信号与许多可能匹配的信号做比较,以此来验证正在处理的某个指令代码是否属于某一类指令代码。

存储器和时钟

  • 为了产生时序电路。
  • 时钟寄存器:存储单个位或字。时钟信号控制寄存器加载输入值。
  • 随机访问存储器:存储多个字,用地址来选择该读或该写哪个字。

4.3Y86的顺序实现

将处理组织成阶段

  • 取指:从存储器读取指令字节,地址为程序计数器(pc)的值。
  • 译码:从寄存器文件最多读入两个操作数,得到值vala或valb。
  • 执行:算数、逻辑单元要么执行指令指明的操作,计算存储器引用的有效地址,要么增加或者减少栈指针。
  • 访存:将数据写入存储器,或者从存储器读出数据
  • 写回:最多可以写两个结果到寄存器文件。
  • 更新pc:将pc设置成下一个指令的地址。

SEQ硬件结构

  • 取指:将程序计数器作为地址,指令存储器的分类读取指令的字节。
  • 译码:寄存器文件有两个读端口A和B,从这两个端口同时读寄存器值A和B。
  • 执行:对整数操作,执行指定运算,对其他操作,作为加法器计算增加或减少栈指针。
  • 访存:将数据写入存储器,或者从存储器读出数据。指令和数据存储器访问相同的存储器位置。
  • 写回:最多可以写两个结果到寄存器文件。

画图惯例

  • 浅灰色方框代表硬件单元
  • 控制逻辑块用灰色圆角矩形表示
  • 宽度为字长在白色圆角方框中说明
  • 宽度为字节或更窄的数据连接用细线表示
  • 单个位的连接用虚线来表示

SEQ的时序

  • 需要对程序计数器、条件码寄存器、数据存储器和寄存器文件的时序进行明确的控制。
  • 这些单元通过一个时钟信号来控制,它触发将新值装载到寄存器以及将值写到随机访问存储器。
  • 每个时钟周期,程序计数器都会载入新的指令地址。
  • 只有在执行整数运算指令的时候,才会装载条件码存储器。
  • 要控制处理器中活动的时序,只需要寄存器和存储器的时钟控制。

SEQ阶段的实现

  • 取指阶段
    信息安全系统设计基础第五周学习总结_第5张图片
  • 译码和写回阶段
    信息安全系统设计基础第五周学习总结_第6张图片
  • 执行阶段
    信息安全系统设计基础第五周学习总结_第7张图片
  • 访存阶段
    信息安全系统设计基础第五周学习总结_第8张图片
  • 更新pc阶段
    信息安全系统设计基础第五周学习总结_第9张图片

实验练习

实验要求

构建YIS环境:

cd ~/Code/shiyanlou_cs413
wget http://labfile.oss.aliyuncs.com/courses/413/sim.tar
tar -xvf sim.tar
cd sim
sudo apt-get install tk
sudo ln -s /usr/lib/x86_64-linux-gnu/libtk8.6.so /usr/lib/libtk.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libtk8.6.so /usr/lib/libtk.so
make

YIS手册下载

YIS测试:

  • cd y86-code
  • 进入测试代码,教材p239页代码为asuml.ys,可以通过 make asuml.yo进行汇编,asuml.yo就是汇编后的结果,见教材p238。
  • make all可以汇编运行所有代码结果。

我的运行结果

信息安全系统设计基础第五周学习总结_第10张图片
信息安全系统设计基础第五周学习总结_第11张图片
信息安全系统设计基础第五周学习总结_第12张图片
信息安全系统设计基础第五周学习总结_第13张图片

参考资料

《深入理解计算机系统》
《实验楼深入理解计算机系统配套实验五》

你可能感兴趣的:(信息安全系统设计基础第五周学习总结)