并行计算机架构:缓存与线程级并行性解析
1. 缓存机制与缓存一致性问题
在计算机系统中,缓存起着至关重要的作用。当处理器需要数据时,会首先检查数据是否在缓存中。如果在,就直接从缓存加载数据,无需访问主存,这使得缓存访问比主存访问快得多。
由于高速缓存成本较高,通常采用多级缓存结构。从速度快但容量小且昂贵的一级(L1)缓存开始,经过二级(L2)、三级(L3)缓存,最终到容量大但速度慢的主存。例如,典型处理器架构中,访问L1缓存仅需2 - 4个周期,而访问主存可能需要数百个周期。
缓存组织的主要目标是尽可能减少平均内存访问时间,使其接近L1缓存的访问时间。这能否实现取决于程序的内存访问行为。
缓存不仅用于单处理器计算机,在对称多处理(SMP)系统和具有不同内存组织的并行计算机中也扮演着重要角色。SMP系统提供共享地址空间,当多个处理器使用共享数据时,数据可能会在多个缓存中复制以减少访问延迟。
每个处理器都应该对内存系统有一致的视图,即任何读操作都应返回最近写入的值,无论哪个处理器执行了相应的写操作。如果一个处理器p在其本地缓存中更改了内存地址的值,但未将该值写回主存,就会破坏这种一致性。即使p将值写回主存,如果另一个处理器q的本地缓存中有该内存位置的副本,也需要更新q的本地缓存副本,这就是缓存一致性问题。为确保缓存一致性,必须使用缓存一致性协议。
2. 线程级并行性
为了有效利用处理器芯片提供的资源,可能需要使用显式并行程序,这就是线程级并行性。所需的多个控制流通常被称为线程,相应的架构组织也称为芯片多处理(CMP)。例如,将多个具有所有执行资源的独立执行核心放置在单个处理器芯片上,这样的处理器就是多
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



