===流水线(Pipeline) ===
管线化的结构(Pipelined Architecture)允许多个指令在同一时间执行,不同的指令在微架构不同的位置执行。
===执行单元(Execution Units) ===
执行单元(Execution units)也是微架构的基本元件。执行单元包含算术逻辑单元(ALU),浮点运算器(FPU),Load/Store单元(LSU),分支预测(branch prediction),以及SIMD。这些单元在处理器内进行计算。执行单元的数量和时延(latency)(内存存取结果的时间)及吞吐率(throughput)(将结果存到或是读取出内存的速度),影响微架构的效能。
对两个储存于暂存器的数字进行add,subtract,multiply,divide,将结果放到一个暂存器内。
执行位操作,藉对两组数字(为两串的数字,都由零与一构成,分别储存于两个暂存器内)执行逻辑与和逻辑或,或者对寄存器的每一位执行逻辑非操作;(Bitwise 执行位操作,对储存于两个寄存器内的两组数字(由零与一构成)执行逻辑与和逻辑或,或者对寄存器的每一位执行逻辑非操作;(Bitwise logical operations or Bitwise shift operations)
比较两个寄存器中的数据(例如是大于或者相等);
片内缓存(on-chip cache memory)可以有效加快指令的执行速度。
===分支预测===当处理器发出内存访问请求时,会先查看缓存内是否有请求数据。如果存在(命中),则不经访问内存直接返回该数据;如果不存在(失效),则要先把内存中的相应数据载入缓存,再将其返回处理器。
缓存之所以有效,主要是因为程序运行时对内存的访问呈现局部性(Locality)特征。这种局部性既包括空间局部性(Spatial Locality),也包括时间局部性(Temporal Locality)。有效利用这种局部性,缓存可以达到极高的命中率。
在处理器看来,缓存是一个透明组件。因此,程序员通常无法直接干预对缓存的操作。但是,确实可以根据缓存的特点对程序代码实施特定优化,从而更好地利用缓存。
===分支预测===
分支预测( branch prediction )是在分支指令执行结束之前猜测哪一路分支将会被运行,然后投机执行(speculative execution)这一路的指令,以提高处理器的指令流水线的性能。