为了扩展单核 CPU 的性能,现在的服务器架构多采用多核 CPU 架构。一个比较经典的 CPU 架构就是对称多处理(Symmetric Multi-Processing,SMP)架构。与之相对应的就是非对称多处理(Asym-metrical Mulit-Processing)结构。
这个对称是什么意思?即处理器与处理器的关系,在对称多处理架构中,处理器之间是相同等级的,所有处理器都可以访问相同的资源。与之相应的,非对称多处理架构,各处理器之间形成简单的主从设备关系,访问有限的资源。
一个 SMP CPU 架构如下所示:
现代的 CPU 一般会有多个核心(Core),我们这里是两个。每个核心有各自的 L1 Cache,多个核心共享 L2 和 L3 Cache。CPU 通过前端总线(FSB)访问主内存。多个 CPU 对于内存访问是基于缓存行的,多个 CPU 对于内存的访问符合缓存一致性协议(Cache coherency protocol)。SMP 架构中,系统中所有资源都是共享的,由于多个 CPU 对于同一个前端总线的竞争,导致扩展能力有限。在超过 64 个 CPU 以上的机器中,这个问题会愈发严重。在大型服务器中,主流架构一般是 NUMA(Non-Uniform Memory Access,肺非一致存储访问)。
微信搜索“我的编程喵”关注公众号,每日一刷,轻松提升技术,斩获各种offer: