处理器的体系结构

ISA:一个处理器支持的指令和指令的字节级编码称为它的指令集体系结构ISA.

Y86是一个指令体系结构(ISA)寄存器、存储器、条件码、PC、程序状态。

halt:这个指令将会终止指令的执行。

nop:这是一个占位指令,它不做任何事情,后续为了实现流水线,它有一定的作用。

xxmovl:这是一系列的数据传送指令,其中r代表寄存器,m代表存储器,i代表立即数。比如rrmovl指令,则代表将一个寄存器的值,赋给另外一个寄存器。

opl:操作指令,比如加法,减法等等。

jxx:条件跳转指令,根据后面的条件进行跳转。

cmovxx:条件传送指令,后面的xx代表的是条件。特别的是,条件传送只发生在两个寄存器之间,不会将数据传送到存储器。

call与ret:方法的调用和返回指令。一个将返回地址入栈,并跳到目标地址。一个将返回地址入PC,并跳到返回地址。

push与pop:入栈和出栈操作。Y86异常

对于Y86来说,程序猿可见的状态中就有stat状态码,它标识了程序执行的状态。Y86需要有能力根据stat去做一些处理。不过为了简单起见,这里除了正常执行之外,都将停止指令的执行。真实当中,会有专门的异常处理程序。

Y86有四种不同的状态码,AOK(正常)、HLT(执行halt指令)、ADR(非法地址)和INS(非法指令)。

Y86程序

书中给出了一个示例程序,来说明X86和Y86的区别,这里LZ就不详细分析这些汇编指令了,这种事情在第三章已经做的很多了,其实两者是非常相似的,毕竟Y86就是根据X86的结构YY出来的。区别就在于,有的时候Y86需要两条指令来达到X86一条指令就可以达成的目的。

比如对于X86指令中的 addl $4,%ecx 这样的指令,由于Y86当中的addl指令中不包含立即数,所以Y86需要先将立即数存入寄存器,即使用irmovl指令,然后再使用addl来处理加法运算。

总的来说,Y86就是一个X86的缩减版,它的目的是以简单的结构实现一个处理器,帮助我们了解处理器的设计和实现。

1、CISC(Complex Instruction Set Computing),RISC(Reduced Instruction-Set Computer),MIPS(Million Instructions Per Second)。

2、CISC编码是可变长度的,IA32的指令长度可以是1~15;RISC编码是固定长度的,通常所有的指令都是编码为4个字节。

3、在硬件设计中,电子电路被用来计算位的函数(function on bits),以及在各种存储元素中存储位。大多数现代电路技术都用信号线上的高电压或低电压来表示不同的位值。要实现一个数字系统需要三个主要的组成部分:计算位的函数的组合逻辑,存储位的存储器元素,以及控制存储器元素更新的时钟信号。

4、通常,处理一条指令包括很多操作。

1)取指(fetch):取指阶段从存储器读入指令,地址为程序计数器PC的值。从指令中抽取出指令指示符字节的两个四位部分,称为icode(指令代码)和ifun(指令功能)。

2)解码(decode):解码阶段从寄存器文件读入最多两个操作数,得到值valA or/and valB。

3)执行(execute):在执行阶段,算术/逻辑单元(ALU)要么执行指令指明的操作(根据ifun的值),计算存储器引用的有效地址,要么增加或减少栈指针。

4)访存(memory):访存阶段可以将数据写入存储器,或者从存储器读出数据。读出的值为valM。

5)写回(write back):写回阶段最多可以写两个结果到寄存器文件。

6)更新PC(PC update,程序计数器):将PC设置成下一条指令的地址。

5、指令执行过程,从PC中取出指令,然后沿着上述的几个步骤操作,周而复始的进行循环。

6、处理器从来不需要为了完成一条指令的执行而读由指令更新的状态。

参考资料:深入理解计算机系统,参考网站:

http://www.tuicool.com/articles/Zv6v6n

转载于:https://www.cnblogs.com/20135237zero/p/4890295.html

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

  1. 20135219洪韶武——信息安全系统设计基础第五周学习总结

    信息安全系统设计基础第五周学习总结 学习任务:教材第四章[处理器体系结构] 学习时间:10小时  一.教材知识点梳理[4.1-4.3] 1.ISA[指令集体系结构] 一个处理器支持的指令和指令的字节级 ...

  2. 20135203齐岳 信息安全系统设计基础第五周学习总结

    20135203齐岳 信息安全系统设计基础第五周学习总结 学习计时:共10小时 读书:5 代码:1 作业:2 博客:2 第四章 处理器体系结构 一.学习目标 本章内容是处理器体系结构,重点掌握ISA, ...

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

    第三章 程序的机器级表示 一.历史观点 Intel处理器(X86) 二.程序编码 gcc -01 -o p p1.c p2.c ①编译选项-01 表示编译器使用第一级优化 ②编译选项-02 表示编译器 ...

  4. 2018-2019-1 20165221 《信息安全系统设计基础》第一周学习总结

    2018-2019-1 20165221 <信息安全系统设计基础>第一周学习总结 教材学习总结 有关vim 打开方式:vim [文件名] 按i会进入insert模式,可以对代码进行编辑 按 ...

  5. 2017-2018-1 20155227 《信息安全系统设计基础》第一周学习总结

    2017-2018-1 20155227 <信息安全系统设计基础>第一周学习总结 教材学习内容总结 快速浏览一遍教材,课本每章提出至少一个自己不懂的或最想解决的问题并在期末回答这些问题 一 ...

  6. # 2017-2018-1 20155224 《信息安全系统设计基础》第九周学习总结

    2017-2018-1 20155224 <信息安全系统设计基础>第九周学习总结 教材学习内容总结 存储器 随机访问存储器(RAM): 静态RAM:用来作为高速缓存存储器,每个位存储在一个 ...

  7. 2018-2019-1 20165206 《信息安全系统设计基础》第九周学习总结

    - 2018-2019-1 20165206 <信息安全系统设计基础>第九周学习总结 - 教材学习内容总结 计算机系统的主存被组织成一个由M个连续的字节大小的单元组成的数组.每个字节都有一 ...

  8. 20135203齐岳 信息安全系统设计基础第十三周学习总结

    20135203齐岳 信息安全系统设计基础第十三周学习总结 学习计时:8/9共小时(计划/实际) 读书:4/5 代码:1/1 作业:1/1 博客:2/2 第十二章 并发编程 一.学习目标 掌握三种并发 ...

  9. # 20155337 2017-2018-1 《信息安全系统设计基础》第一周学习总结

    20155337 2017-2018-1 <信息安全系统设计基础>第一周学习总结 教材学习内容总结 1.1信息就是位+上下文 hello.c程序是以字节序列的方式储存在文件中的.每个字节都 ...

最新文章

  1. PostgreSQL的 initdb 源代码分析之九
  2. 思科推出EnergyWise合作伙伴计划
  3. 正则表达式匹配多行注解/**/
  4. 第45讲:哪都能存,Item Pipeline 的用法
  5. java解析动态AIS原始数据
  6. Razor语法(三)
  7. python中使用连续关系运算符_解释一下Python中的关系运算符
  8. mysql如何把一个表直接拷贝到一个新的表
  9. 模块EMERSONDELTAVSLS1508/本特利330400-02-CN
  10. 用js两张图片合并成一张图片
  11. 谷歌身份验证器(Google Authenticator)的使用详情
  12. WordPiece 和 BPE 的区别
  13. C语言中access的使用
  14. equal 源码剖析
  15. 社区角色(Kubernetes社区Maintainer是什么角色?)
  16. 天正对应cad版本_天正CAD图形找不到可用的AutoCAD版本怎么办?
  17. Java程序设计与项目实战(全程实录)全新上市
  18. [PCIe]LTSSM与电源管理
  19. 情人节,教大家使用CSS画出一朵玫瑰花。
  20. 移动搜索关键字SEO:如何添加移动关键字!

热门文章

  1. 青岛大学计算机专硕和学硕,【2020】【青岛大学】【学硕646】复习经验
  2. 成绩查看_托福网考免费寄送成绩单,掌握这些知识能帮你省不少钱!
  3. 网页怎么在图片上添加文字_想给图片添加文字,留白,添加小印章?用手机三步搞定...
  4. springweb 导入导出csv_诺基亚Nokia8110通讯录如何导入?这里有妙招
  5. 【 FPGA 】UltraFast设计方法学:如何管理IP约束
  6. 【 数字信号处理 】定点数的表示之二进制数的原码与补码
  7. LiveVideoStackCon 2018日程(草稿)发布
  8. IDEA开启关闭拼写检查
  9. Restful API的设计思路
  10. 源代码解读Cas实现单点登出(single sign out)功能实现原理