并行系统中的处理器


在 80 年代,一种称为Transputer的专用处理器很流行用于制造多计算机。晶片机由一个核心处理器、一个小型 SRAM 存储器、一个 DRAM 主存储器接口和四个通信通道组成,全部位于单个芯片上。为了进行并行计算机通信,通道被连接起来形成晶片机网络。但其计算能力不足,无法满足并行应用日益增长的需求。RISC处理器的发展解决了这个问题,而且价格便宜。

现代并行计算机使用的微处理器在多个级别上使用并行性,例如指令级并行性和数据级并行性。

高性能处理器

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

传统 RISC 的特点是 -

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

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

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

超大指令字 (VLIW) 处理器

这些源自水平微编程和超标量处理。VLIW 处理器中的指令非常大。单个指令内的操作并行执行,并转发到适当的功能单元执行。因此,在获取 VLIW 指令后,对其操作进行解码。然后,操作被分派到并行执行的功能单元。

矢量处理器

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

缓存

高速缓存是高性能微处理器的重要元素。每18个月后,微处理器的速度就会增加两倍,但用于主存的DRAM芯片却无法与这个速度竞争。因此,引入高速缓存来弥合处理器和内存之间的速度差距。高速缓存是一种快速且小型的 SRAM 存储器。现代处理器中应用了更多的缓存,例如转换后备缓冲区 (TLB) 缓存、指令和数据缓存等。

直接映射缓存

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

全关联缓存

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

组关联缓存

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

缓存策略

除了映射机制之外,缓存还需要一系列策略来指定在某些事件的情况下应该发生什么。在(设置)关联高速缓存的情况下,高速缓存必须确定哪个高速缓存块将被进入高速缓存的新块替换。

一些著名的替代策略是 -

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