多处理器与缓存一致性问题

来源:互联网 发布:微信源码下载 编辑:程序博客网 时间:2024/05/22 01:47

分类

根据包含的处理器数量将现有共享存储器的多处理器分为两类:SMP和DSM。
SMP,对称多处理器,又称为集中式共享存储器多处理器。特点:处理器数目少,共享一个集中式存储器,所有处理器都能够平等的访问该存储器。
DSM,分布式共享存储器,存储器分散在处理器之间。通过网络互连。

缓存一致性问题:

如果存储器系统满足以下条件,则说明它是一致的:
(1)处理器p对x进行读操作,在此之前处理器p对x进行写操作,p对地址x读取和写入操作之间没有处理器对于x的操作,那么读出p写入的值;
(2)一个处理器对x执行写操作,另一处理器读取该位置,如果读写操作间隔时间比较长,那么读取操作返回写入值;
(3)对同一位置的写操作被串行化:意思是如果某一位置被多次赋值,不可能先读到新值再读到旧值。

存储器连贯性:

(1)只有所有存储器都能看到写入结果,整个写入过程才算最终完成;
(2)处理器不能改变其他存储器的任意写入顺序,即能够看到新值的存储器也一定能够看到旧值。

存储器一致性与存储器连贯性:

存储器一致性:强调读出值的异同,即读出的值是一致的。
存储器连贯性:强调读出值的时间概念。

监听式缓存一致性协议:采用微处理器和缓存通过总线连接到单个存储器,总线提供了一个非常方便的广播介质,用于实现监听协议。

A 3-state (MSI) Write-Back Invalidation Protocol:

MSI缓存一致性协议:

M(modifide):已修改状态,表示已经在专用缓存中更新了该块。
S(shared):共享状态,表示专用缓存块的状态可能被共享。
I(invalid):无效状态,表示该缓存块是无效的。
高速缓存控制器接收到的两方面的输入:

  • 处理器请求:处理器读PrRd和处理器写PrWr
  • 总线请求:总线读BusRd、总线读执行BusRdX、总线写回BusWb

MSI状态转换图

助记:
1. 存储器如何进入无效状态:只有存储器接收到总线的读执行操作时,存储器才会变成无效状态,即存储器在修改态和共享态,接收到总线的读执行操作时,会变成无效态;同时不会激发任何其他操作。
2. 存储器在无效态接收到处理器的读写操作会进入一个miss,存储器在共享态接收处理器读操作不会miss,接收处理器写操作会miss,存储器在修改态才能接收处理器写操作。
3. 无论在什么状态,接收处理器写操作存储器都会进入M态,并伴随总线的读执行操作。
4. 某一存储器进入M态,一定伴随着其他存储器进入I态,反之亦然。