当前位置:首页 > 公众号精选 > 后端技术指南针
[导读]今天和大家一起聊聊--服务器多处理器架构,在查阅相关资料的过程中,发现这是个容易被喷的话题,搞得我慌的一批。 本文并不会从逻辑电路、芯片设计、cpu历史等等角度去阐述,水平有限实战第一,通过本文你将了解到以下内容: 物理核心 & 逻辑核心 多处理器架

今天和大家一起聊聊--服务器多处理器架构,在查阅相关资料的过程中,发现这是个容易被喷的话题,搞得我慌的一批。

本文并不会从逻辑电路、芯片设计、cpu历史等等角度去阐述,水平有限实战第一,通过本文你将了解到以下内容:

  • 物理核心 & 逻辑核心
  • 多处理器架构:SMP、NUMA、MPP

1.物理核和逻辑核

说到CPU首先想到的可能是这样的:

图1 英特尔代号为Cooper Lake的至强铂金9200处理器

该系列CPU物理封装长宽尺寸为76.0×72.5毫米,也是目前Intel史上最大的处理器,那CPU里面是什么样子呢?

在CPU内部封装了1个或者多个物理核,物理核有独立的各级缓存和电路结构,如果只有1个物理核心就是单核CPU,有多个物理核心就是多核CPU。

图2 4核CPU内部结构简图

对于处理器规格一致的服务器来说,总的物理核心数计算方法为:

物理核心数=总CPU数*单CPU中物理核心数

图3 多CPU多物理核简图

超线程是intel于2002年发布的一种技术,全名为Hyper-Threading,简写为HT技术,超线程技术最初只是应用于至强系列处理器中,之后陆续应用在奔腾系列中并将技术主流化,业界对于HT的评价不一,但是官方并未放弃超线程技术。

简单来说,HT技术可使处理器中的1颗物理核,如同2颗物理核那样发挥作用,从而提高了系统的整体性能,但是肯定也不会真的像2颗物理核那样,要不然就违背物理规律了,只是说借助于某些技术将1颗物理核的性能发挥地更好而已。

对于处理器规格一致的服务器来说,总的逻辑核心数计算方法为:

开启HT: 逻辑核心数=总CPU数*单CPU中物理核心数*2

未开启HT: 逻辑核心数=物理核心数=总CPU数*单CPU中物理核心数

掌握CPU&物理核心&逻辑核心三者的关系之后,可以找一台服务器看看相关配置,小试牛刀。

图4 CPU&物理核&逻辑核简图

2.多处理器架构

CPU多了就需要考虑如何设计,也就出现了几种不同的多处理器架构。

目前服务器大体可以分为三类:

  • 对称多处理器结构 SMP
  • 非一致存储访问结构 NUMA
  • 海量并行处理结构 MPP

对于我们来说,SMP和NUMA应该接触的比较多,MPP接触的少一些。

2.1 SMP对称多处理器结构

SMP是Symmetric Multi-Processor的缩写。

对称多处理器结构是指多个CPU对称平等,共享相同的物理内存/IO等资源,因此SMP结构属于一致存储器访问结构 UMA。

图5 SMP架构简图

共享模式下所有CPU平等地使用资源,模式简单,在CPU数量不多时效率很不错,但是优点也可能变为拦路虎。

试想一种场景如果在SMP模式下为了提高服务器的处理能力,我们水平扩展了CPU数量,这些CPU通过相同的总线访问内存。

随着CPU数量的增加,相同内存地址访问冲突将明显增加,间接造成了CPU资源浪费,相关实验证明,SMP服务器最好的情况是2-4个CPU。

图6 SMP扩展-效率曲线

2.2 NUMA非一致存储访问结构

前面提到的SMP架构是一致存储器访问结构UMA,相对地就有了Non-Uniform Memory Access架构,所以NUMA结构和SMP架构的显著区别在于是否是一致对等访问内存。

NUMA架构的服务器具有多个 CPU 模块,每个 CPU 模块由多个 CPU组成,每个CPU模块具有独立的本地内存Local-Memory、 I/O等资源,可以将CPU模块称为Node。

图7 NUMA架构CPU模块内部结构

Node之间可以通过互联模块进行数据交互,因此每个 CPU 模块仍然可以访问整个系统的内存,但是此时的内存有本地和外部之分了,访问速度自然也就不一样。

访问CPU模块的本地内存将远远快于访问其他CPU模块内存,在明确这种架构带来的内存访问差异后,我们在实际开发应用程序时需要尽量减少不同 CPU 模块之间的信息交互。

图8 NUMA架构整体简图

NUMA 技术同样有缺陷,由于访问远地内存的延时远远超过本地内存,当 CPU 数量增加时,系统性能无法线性增加,换句话说增加1倍的CPU数量并不能获得1倍的性能提升,因此仍然存在扩展限制区。

2.3 MPP海量并行处理结构

MPP是Massive Parallel Processing的缩写,MPP 是另外一种系统扩展的方式,它由多个 SMP 服务器通过一定的节点互联网络进行连接,完成相同的任务,可以看作是SMP的水平扩展。

在MPP结构中多个 SMP 服务器是一种完全无共享Share Nothing)结构,因而扩展能力最好,典型的就是刀片服务器,有的文章说MPP架构很像MapReduce模式,多个SMP服务器节点之间通过互联网络实现,目前并没有统一的数据通信协议,并且这部分交互协议对用户是无感知的。

MPP架构有点像刀片服务器的感觉,每一片都是独立的,片与片直接由特定的协议进行数据交互。

图9 MPP架构简图

3 小结

本文的内容并不多,先阐述了一些关于CPU&物理核&逻辑核的常识,然后对多处理器服务器的常见的三种架构,每种架构都有不同的特定和使用场景,建议重点关注NUMA,可惜的是本文并没有展开太多。

水文一篇,先到这里,感谢各位的倾情阅读。


免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

INTERRUPT中断是硬件和软件交互的一种机制,可以说整个操作系统,整个架构都是由中断来驱动的。中断的机制分为两种,中断和异常,中断通常为设备触发的异步事件,而异常是执行指令时发生的同步事件。本文主要来说明外设触发的中...

关键字: 中断机制 多处理器

深入理解某个应用的数据访问方式,可以充分利用处理器潜在架构中的存储器和系统资源,从而开发可扩展的并行应用。基于单核结构的嵌入式处理器越来越不能满足日益增长的嵌入式多媒体处理应用.

关键字: 多处理器 多媒体应用 嵌入式 嵌入式处理器 软件设计框架

为数字消费、家庭网络、无线通讯和商业应用提供业界标准架构、处理器和模拟 IP 的厂商 MIPS 科技公司(MIPS Technologies, Inc)宣布,该公司是第一家通过 EEMBC® Multi

关键字: MIPS MULTI 多处理器 AD

  摘要:多核技术能够使服务器并行处理任务,多核系统更易于扩充,并且能够在更纤巧的外形中融入更强大的处理性能,这种外形所用的功耗更低、计算功耗产生的热量更少。多

关键字: 多核处理器 处理器技术 AMD 多处理器

Patrick Madden在“多核处理器前途未卜(Multi-core processors face uncertain future)”一文中关于多核芯片的讨论焦点集中于单个的通用处理器架...

关键字: 消费电子 多处理器 子系统 AD

摘要:信号处理技术的通用化趋势和高带宽、高实时性特点要求信号处理系统采用多处理器并行处理的设计方案。针对多处理器通用信号处理系统面临的任务划分调度的挑战,结合云计算技术架构以及信号处理技术的特点,给出

关键字: 云计算 信号处理 BSP 多处理器

摘要:描述了一种基于消息机制构建的片上多处理器系统。该系统采用主从结构,运用消息进行通信,并且从处理器之间彼此相互独立,在硬件结构与软件设计上保持一致。这样不仅简化了系统的设计,更使得系统具有一定的容

关键字: 处理器系统 多处理器 BSP 主控制器

为多处理器系统选择最佳设计方案

关键字: 处理器系统 多处理器 FPGA 天线

在以网络为中心的战场上,所有系统(平台)都互连节点,共同为军事人员提供任务关键型信息。这种方式正不断推动创新集成系统的发展。新型军事系统通过系统集成帮助满足新兴设计需求,让每部车辆、每架飞机、每架无人

关键字: 系统集成 内核 多处理器 SoC
关闭
关闭