2019-2020-1 20175320 《信息安全系统设计基础》第六周学习总结

2019-2020-1 20175320 《信息安全系统设计基础》第六周学习总结

1、教材学习内容总结

本周咱们了解了Y86-64指令体系结构,并在此基础上了解了硬件控制语言HCL。Y86-64是《深刻理解计算机系统》这本书的做者出的指令集,目的是为了让咱们更加清楚地了解ISA,该指令集的指令基本都是从x86而来。如下是对本章内容的总结:html

程序员可见状态

  • y86-64中的程序员既可指用汇编编写程序的人,也可值产生机器级代码的编译器。
  • 可见状态,即指寄存器、存储器、条件码、PC以及程序状态。

Y86-64指令编码

y86-64指令的指令编码长度为一字节到十字节,由三大部分(一个字节的指令指示符,一个字节的寄存器指示符,一个八字节的当即数),五小部分组成。编码的第一个字节的前半部分表示指令的种类,后半部分表示功能码(用来区别具体指令,好比肯定分支类型),寄存器指示符的前半部分以及后半部分分别表示一个寄存器,当没有使用寄存器时使用十六进制数的F代替。根据指令的不一样能够选择不一样的指示符以及编码长度来表示,例如jxx dest能够用六进制编码7 Fn DEST表示(Fn表示分支类型)。程序员

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

HCL的状况表达式的通用格式为:x=[ selct1 :expr1 ; select2 :expr2;];,而在实际使用的过程当中,常常须要在判断条件中使用集合关系,好比:bool s1=code in{2,3};bool s0=code in{1,3};
在逻辑设计过程当中,多个逻辑门的组合具备如下限制条件:安全

  • 一个系统输入
  • 两个或多个逻辑门的输出不能链接在一块儿
  • 这个网必须是无环的

Y86-64的顺序实现

为了使处理器充分利用硬件,处理器工做分为六阶段:
一、取指(地址为PC的值,从内存中取指令,同时给valc和valp赋值)
二、译码(从寄存器文件读入两个操做数valA与valB,即从寄存器中读出值)
三、执行(ALU将计算内存的有效地址或修改栈指针,计算结果为valE)
四、访存(将数据读出或写入内存,记做valM)
五、写回(将最多两个结果写入寄存器文件,即对寄存器的值进行修改)
六、更新(将PC设置为下一条指令的地址)
其中,全部指令都要进行取指、执行以及更新PC的过程,irmovq指、JXX指令不通过译码阶段,OPQ、rrmovq、irmovq以及JXX指令不通过访存阶段,rmmovq、JXX指令不通过写回的阶段。学习

SEQ硬件结构


其中须要注意的是:编码

  • PC是SEQ中惟一的时钟寄存器
  • 宽度为字长的数据用中等粗度的线表示,宽度为字节或者更窄的链接用细线表示,单个位链接使用虚线表示
  • SEQ经过组合逻辑或两种存储器设备实现
  • SEQ组织计算时遵循的准则:一、从不回读,处理器从不须要为了完成一条指令的执行而去读由该指令更新了的状态。二、当一个时钟上升沿到来时,状态单元是根据前一条指令设置的
  • PC增长器中,新的PC值等于p+1+r+8i(r为need_regids的值即有没有使用寄存器,i为need_val的值,即有没有使用当即数)
  • 状态码的几种状况:SADR(遇到非法地址)、SINS(遇到非法指令)、HALT(遇到HALT指令,即处理器中止)以及SAOK(指令正常操做)

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

y86-64是基于x86-64指令集而来,教材学习过程当中并无碰到问题。.net

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

本周主要是理论内容,代码量不大,运行过程当中并无碰到问题。设计

4、代码托管

5、上周考试错题总结

问题一:

问题一解析:enter等价于pushq %rbp movq %rsp, %rbp
问题二:

问题二解析:内存之间不能直接mov,要用寄存器中转。b,w,l,q表示的长度要和寄存器匹配
问题三:

问题三解析:X86-64中虚拟地址的数量目前是2^48个,在目前的实现中,这些地址的高16位必须设置为0,因此一个地址实际上可以指定的是2^48或64TB范围内的一个字节。指针

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

本章内容是由x86-64的指令集发展而来,并帮助咱们理解处理器工做的过程,自己内容并不复杂,可是编码等内容较为繁琐,须要记忆指令以及寄存器对应的编码,并理解顺序实现过程当中不一样的命令在各步骤所进行的操做。本章内容是为了让咱们更加清楚地了解ISA,了解CPU处理器的工做流程,有助于咱们更好地了解计算机系统。调试

7、学习进度条

博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 30篇 400小时
第三周 1/1 13/13
第四周 1/2 22/35
第五周 1/3 30/65
第六周 1/4 25/90

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

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

参考资料

相关文章
相关标签/搜索