2017-2018-1 20155223 《信息安全系统设计基础》第7周学习总结
2017-2018-1 20155223 《信息安全系统设计基础》第7周学习总结
教材学习内容总结
ISA(指令集体系结构)抽象的作用
在处理器编写者与处理器设计人员之间设立一道概念上的抽象层。编写者只用知道允许哪些指令,以及指令的编码形式;设计人员则设计出能够执行指令的编码器。定义处理器上软件如何构建的,是ISA的重要内涵。现代处理器都支持高级编程语言、操作系统等等特性,ISA要定义出指令集命令是怎么支持C语言(或其他高级编程语言)堆栈、过程调用,操作系统里异常和中断的处理等。
ISA
ISA(指令集体系结构)是一个处理器支持的指令和指令的字节级编码。虽然现在厂家生产的处理器性能和复杂度在逐年上升,但是各类型处理器之间仍保持一定的兼容性。而为了实现兼容性,ISA在编译器编写者和处理器设计人员之间提供了一个概念抽象层。
这个层就是ISA模型:CPU允许的指令集编码,且顺序地执行指令,也就是先取出一条指令,等到她执行完毕,再开始下一条。不过现代处理器大多是多核处理器,可以同步执行多条命令,提高了电脑的运行效率(不过我并不知道怎么看多核处理器里每个核的运行情况)。
流水线
流水线——将所有的运行工作量等分分布在若干时间相等的操作段上,从流水线首端输入,流水线上各个工作段以重叠方式执行命令。流水线操作使得执行命令的快慢与处理时间无关,而与流水线输入速度相关。相较之下,流水线操作方式比其他命令操作方式的效率要高很多。
如果某个设计的处理流程分为若干步骤,而且整个数据处理是单流向的,即没有反馈或者迭代运算,前一个步骤的输出是下一个步骤的输入,则可以采用流水线设计方法来提高系统的工作频率。
Y86-64指令
- halt:这个指令将会终止指令的执行。
- nop:这是一个占位指令,它不做任何事情,后续为了实现流水线,它有一定的作用。
- xxmovl:这是一系列的数据传送指令,其中r代表寄存器,m代表存储器,i代表立即数。比如rrmovl指令,则代表将一个寄存器的值,赋给另外一个寄存器。
- opl:操作指令,比如加法,减法等等。
- jmp,jle,jl,je,jne,jge,jg:条件跳转指令,根据后面的条件进行跳转。
- cmovxx:条件传送指令,后面的xx代表的是条件。特别的是,条件传送只发生在两个寄存器之间,不会将数据传送到存储器。
- call与ret:方法的调用和返回指令。一个将返回地址入栈,并跳到目标地址。一个将返回地址入PC,并跳到返回地址。
- push与pop:入栈和出栈操作。
HCL语言
在硬件设计中,用电子电路来计算对位进行运算的函数,以及在各种存储器元素中存储位。要实现一个数字系统需要三个基础部件:对位计算的逻辑函数、存储器、更新存储器的时钟序列。
逻辑函数在上个学期学过,最基本的就三个:与、或、非,用这三个函数,可以组合出无限可能的逻辑函数。
Y86-64执行模式
取指:取指阶段从存储器读取指令字节,地址为程序计数器PC的值->译码:译码阶段从寄存器文件读入最多两个操作数->执行:在执行阶段,算数/逻辑单元要么根据ifun的值执行指令指明的操作,计算机存储器引用的有效地址,要么增加或减少栈指针->访存:访存阶段可以将数据写入存储器,或从存储器读出数据->写回:写回阶段最多可以写两个结果到寄存器文件->更新PC:将PC设置成下一条指令的地址
教材学习中的问题和解决过程
- 问题1:Y86-64的一些思考。
- 问题1解决方案:我是又一次在64和32两个数字上徘徊。现在还是不知道我的32位机到底能不能看给64位机的命令了。我们都知道32位和64位指的是处理器的最大寻址空间,32位是02^32-1,64位是02^64-1。我试着查找有关Y86-64指令集或其相关信息,但是无果,所有搜索得到的结果要么指向X86-64,要么指向课本。现在这个问题的回答就像是一个需要我独自寻找的克里特岛迷宫里的牛头怪。
代码调试中的问题和解决过程
- 问题1:想看机器当中的Y86-64命令码,但是看不到。
- 问题1解决方案:尝试过很多命令,但就是不顶用。
代码托管
结对学习内容
- 结对对象20155207
- 学习内容
- 实验2.
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
第一周 | 31/31 | 1/1 | 20/20 | |
第三周 | 24/55 | 2/3 | 24/44 | 知道浮点数怎么储存的 |
第四周 | 177/328 | 2/5 | 17/61 | 现在我的C语言程序也会在Linux命令行下使用了:*) |
第五周 | 54/382 | 2/7 | 18/79 | 复习一遍汇编语言 |
第七周 | 2360/2722 | 1/8 | 12/91 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
-
计划学习时间:15小时
-
实际学习时间:12小时
-
改进情况:没有多少,就是时间被其他东西给冲掉了。