什么是计算机体系结构中基于总线的对称多处理器?
可以使用基于总线或基于交换机的互连网络来设计共享内存系统。共享内存系统最简单的网络是总线。总线/高速缓存架构减轻了对昂贵的多端口存储器和接口电路的需求,以及在开发应用软件时采用消息传递范例的需要。
如果多个处理器尝试同时访问共享内存(通过总线),则总线可能会饱和。典型的基于总线的设计使用缓存来解决总线争用问题。连接到一侧的每个处理器和另一侧的总线的高速缓存意味着可以以尽可能高的速率提供指令和数据的本地副本。
如果本地处理器在本地缓存中找到它的所有指令和数据,我们说命中率为100%。缓存的未命中率是缓存不能满足的引用的分数,因此必须从全局内存复制,通过总线,进入缓存,然后传递到本地处理器。
缓存的目标之一是在高处理器负载下保持高命中率或低未命中率。高命中率意味着处理器没有尽可能多地使用总线。命中率由几个因素决定,从正在运行的应用程序到如何缓存硬件。
处理器经历一个占空比,每个时钟周期执行一定次数的指令。通常,单个处理器每个周期执行的指令少于一条指令,从而减少了访问内存所需的次数。
次标量处理器每个周期执行少于一条指令,而超标量处理器每个周期执行多于一条指令。在任何情况下,我们都希望尽量减少每个本地处理器尝试使用中央总线的次数。否则,处理器速度将受到总线带宽的限制。
我们定义命中率、处理器数量、处理器速度、总线速度和处理器占空比的变量如下-
N=处理器数量
h=每个缓存的命中率假设对于所有缓存都相同
(1-h)=所有缓存的未命中率
B=总线带宽,以周期/秒为单位
I=假定所有处理器的处理器占空比相同,在取/周期和
V=峰值处理器速度,以获取/秒为单位。
总线的有效带宽为BI取/秒。如果每个处理器都以V的速度运行,那么就会以V(1-h)的速率生成未命中。对于N处理器系统,以N(1-h)V的速率同时产生未命中。
当N个处理器同时尝试访问总线时,这会导致总线饱和。即,N(1-h)V≤BI。总线可以支持的带有高速缓存的处理器的最大数量由以下关系给出
$$N\:\leq\:\frac{BI}{(1-h)V}$$