# 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小时

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

原文地址:https://www.cnblogs.com/Twe1vE/p/7787391.html