随笔分类 - 超标量处理器设计
摘要:寄存器重命名 7.1 概述 数据相关性分为WAW、WAR、RAW,只有RAW是真的相关性,其他两种相关性都是和寄存器名字相关,可通过寄存器重命名解决。 由于是寄存器个数有限导致了假相关性的存在,那么解决办法就是增加寄存器个数。如果增加指令集中的寄存器个数,那么会导致以前的程序需要重新编译。所以可以采
阅读全文
摘要:指令解码 指令解码:将指令中携带的信息提取出来,处理器使用这些信息来控制后续的流水线执行这条指令。 CISC指令长度不固定,解码首先需要分辨指令边界,寻址方式也很复杂,提升了解码难度。 RISC指令长度固定,寻址方式相对简单,解码更容易。 超标量处理器希望一个周期能够解码n条指令,对应n个解码电路。
阅读全文
摘要:指令集体系 5.1 复杂指令集和精简指令集 指令集ISA:包含基本数据类型、指令、寄存器、寻址模式、存储体系、中断、异常以及外部I/O等内容。 5.2 精简指令集概述 MIPS指令集 I-type:使用16位立即数,rs、rt为源寄存器和目的寄存器 J-Type:使用26位立即数,一般用于跳转类型指
阅读全文
摘要:分支预测 4.1 概述 分支预测和Cache一起左右着处理器的性能,一个准确度很高的分支预测是提高处理器性能的关键部件。但由于不同程序的不同特性,适用于某个程序的分支预测器可能在另一个程序上效果很差。 取指阶段要对跳转指令进行预测,避免流水线无用功造成浪费。如果等到跳转结果计算出来再进行取指,就会造
阅读全文
摘要:Cache 2.1 Cache的一般设计 cache的产生原因:大容量存储器的访问速度和处理器的运行速度不匹配 并且数据之间存在时间相关性和空间相关性,即一个数据现在被访问以后可能还会被访问,它周围的数据也可能会被访问。 L1cache速度最快,紧密耦合在处理器流水线中。 L1 cache一般包含指
阅读全文
摘要:虚拟存储器 3.1概述 对一个程序来说,程序、数据和堆栈的总大小总是超过实际物理内存的大小,因此操作系统希望把当前使用的部分内容放到物理内存,把其他未使用的内容放到下一级存储器。 对于32位处理器来说,其地址空间0-0xFFFF_FFFF,4GB,其中一个地址就称为虚拟地址。与之相对的是物理存储器,
阅读全文
摘要:超标量处理器概览 1.1为什么需要超标量 处理器执行速度的影响因素 程序中指令的数量 每条指令在处理器中执行所需要的周期数 普通流水线处理器每周期最多执行1条指令 超标量处理器每周期可以执行多于一条的指令 但不是每周期执行多于一条指令的处理器都是超标量处理器,如VLIW结构的也可以(依靠编译器和程序
阅读全文