并行系统中的处理器



在80年代,一种名为Transputer的专用处理器在构建多计算机方面很流行。Transputer包含一个核心处理器、一小块SRAM内存、一个DRAM主存接口和四个通信通道,所有这些都集成在一个芯片上。为了实现并行计算机通信,通道连接起来形成一个Transputer网络。但它缺乏计算能力,因此无法满足并行应用日益增长的需求。这个问题通过开发RISC处理器得到了解决,而且成本也比较低廉。

现代并行计算机使用微处理器,这些微处理器在指令级并行和数据级并行等多个级别上利用并行性。

高性能处理器

RISC和RISCy处理器主导着当今的并行计算机市场。

传统RISC的特点包括:

  • 寻址模式较少。
  • 指令格式固定,通常为32位或64位。
  • 具有专用的加载/存储指令,用于将数据从内存加载到寄存器以及将数据从寄存器存储到内存。
  • 算术运算始终在寄存器上执行。
  • 使用流水线技术。

如今大多数微处理器都是超标量的,即在并行计算机中使用多个指令流水线。因此,超标量处理器可以同时执行多条指令。超标量处理器的有效性取决于应用程序中可用的指令级并行性(ILP)。为了保持流水线的满负荷运行,硬件级别上的指令执行顺序与程序顺序不同。

许多现代微处理器采用超级流水线方法。在超级流水线中,为了提高时钟频率,减少流水线阶段内完成的工作量,并增加流水线阶段的数量。

超长指令字(VLIW)处理器

这些处理器源于水平微程序设计和超标量处理。VLIW处理器中的指令非常长。单条指令内的操作并行执行,并转发到相应的函数单元进行执行。因此,在获取VLIW指令后,对其操作进行解码。然后,将操作调度到函数单元,在其中并行执行。

向量处理器

向量处理器是通用微处理器的协处理器。向量处理器通常是寄存器-寄存器或内存-内存的。获取并解码向量指令,然后对操作数向量的每个元素执行特定操作,而在普通处理器中,向量操作需要代码中的循环结构。为了提高效率,向量处理器将多个向量操作链接在一起,即一个向量操作的结果作为另一个操作的操作数。

缓存

缓存是高性能微处理器的重要组成部分。每18个月,微处理器的速度就会翻一番,但主存的DRAM芯片无法与之匹敌。因此,引入缓存来弥合处理器和内存之间的速度差距。缓存是一种快速的小型SRAM内存。许多现代处理器中应用了更多缓存,例如转换旁路缓冲区(TLB)缓存、指令缓存和数据缓存等。

直接映射缓存

在直接映射缓存中,使用“模”函数将主存中的地址一对一映射到缓存位置。由于相同的缓存条目可能映射多个主存块,因此处理器必须能够确定缓存中的数据块是否确实是所需的数据块。通过将标签与缓存块一起存储来完成此标识。

全相联缓存

全相联映射允许将缓存块放置在缓存中的任何位置。通过使用某种替换策略,缓存确定存储缓存块的缓存条目。全相联缓存具有灵活的映射,可最大限度地减少缓存条目冲突。由于全相联实现成本很高,因此从未大规模使用。

组相联缓存

组相联映射是直接映射和全相联映射的组合。在这种情况下,缓存条目细分为缓存组。与直接映射一样,内存块到缓存中组的映射是固定的。但在缓存组内,内存块以全相联的方式映射。

缓存策略

除了映射机制外,缓存还需要一系列策略来指定在某些事件发生时应采取的操作。对于(组)相联缓存,缓存必须确定哪个缓存块应被进入缓存的新块替换。

一些众所周知的替换策略包括:

  • 先进先出 (FIFO)
  • 最近最少使用 (LRU)
广告