文档详情

处理器入门-学习笔记.pptx

发布:2018-02-11约1.53千字共46页下载文档
文本预览下载声明
一.处理器结构 ;1.冯诺依曼结构;2.哈弗结构;3.改进型哈弗结构;总结;二.指令集;操作数与操作码;C=A+B运算转换为汇编行为如下(以为只是示例,实际不同CPU可能有所不同) load R3 , #0 ; //从内存地址0取出A放在R3中 load R2 , #1 ; //从内存地址1取出B放在R2中 add R0 , R3, R2 ; //把R3和R2相加,结果存到R0中 store R0 , #2 ; //把R0的值写到内存地址2中 以上每条语句就是一条指令,load、add、store为操作码,操作码后跟的是操作数。cpu是不认识这些操作码和操作数,所以需要变成0、1这种二进制码。;;指令集的分类;后RISC;变长指令集 定长指令集 一般一条指令的长度为8bit/16bit/32bit等等 CISC属于变长指令集 传统的RISC指令集为了译码方便都采用定长,但这样会导致程序存储空间变大,进而降低了cache的命中率,影响程序执行效率。所以后期很多处理器都支持简单变长指令集,这样在实现难度没有增加多少的情况下大大提高了程序效率。 esi1600支持16位和32位混合指令集;大小端;总结;三.流水线设计;最简单的3级流水线;最经典的5级流水线;流水线设计可能存在的问题;;;3.控制冒险 在流水线处理器中,指令是并行处理的,在当前指令正在执行时,后面的很多条指令已经完成了取指和译码等步骤。然而,在程序中会存在很多的跳转语句,如果程序的实际执行路径是要跳转到其他的地址去执行,那么流水线中已经做的这些取指和译码工作就白做了,这就是流水线的控制冒险。此时,处理器需要排空流水线,跳转到新的地址处重新进入流水线。;分支预测算法;四.乱序执行----提高处理器性能;乱序执行的结构;2.指令调度 指令能否开始执行,依赖于2个条件: 1. 是否有空闲的功能单元去执行这条指令 2. 该指令的源操作数是否已经准备好;3.顺序提交;总结;五.处理器并行执行;;六.处理器的cache设计;六.处理器的cache设计;为什么一小块Cache能提速?;三级cache的架构;Cache的基本结构;Cache基本工作机制;Cache的置换策略;Cache的写方式;2.Write back(写回) Write back是指cpu修改cache的内容后,cache并不会马上更新到内存中。什么时候会被更新到内存中和当时的应用场景有关。例如cache被占满了,有新的数据要进cache,这个时候某些cache的内容就会被踢到内存中。;Write through策略如果涉及到大量访问内存的操作,效率就会很低,所以一般使用write back策略的比较多。在ARM的AXI协议中这两个属性同样在AWCACHE/ARCACHE信号中携带。 ;Cache一致性;E状态;S状态;M状态和I状态; 在上图中,Local Read表示本内核读本Cache中的值,Local Write表示本内核写本Cache中的值,Remote Read表示其它内核读其它Cache中的值,Remote Write表示其它内核写其它Cache中的值,箭头表示本Cache line状态的迁移,环形箭头表示状态不变。 当内核需要访问的数据不在本Cache中,而其它Cache有这份数据的备份时,本Cache既可以从内存中导入数据,也可以从其它Cache中导入数据,不同的处理器会有不同的选择。MESI协议为了使自己更加通用,没有定义这些细节,只定义了状态之间的迁移,下面的描述假设本Cache从内存中导入数据。;当前状态;SOC
显示全部
相似文档