CPU拓扑结构之非一致性内存访问
2014-12-10 21:09
246 查看
非一致内存访问——NUMA
硬件已经趋向使用多条系统总线,每条系统总线为一小组处理器提供服务。每组处理器都有自己的内存,并可能有自己的 I/O 通道。但是,每个 CPU 都可以通过一致的方式访问与其他组关联的内存。每个组称为一个“NUMA
节点”。NUMA 节点中的 CPU 数量取决于硬件供应商。访问本地内存比访问与其他 NUMA 节点关联的内存快。这就是“非一致性内存访问体系结构”名称的由来。
在对称多处理系统中,处理器共享北桥中的内存控制器来达到共同访问外部内存和IO的目的,也就是说所有的处理器对内存和I/O的访问方式和开销都是相同的。在这种系统中,随着更多的处理器被添加到SMP系统中,总线的竞争将会越来越大,系统的性能也必将随之大打折扣。
NUMA系统拥有多条内存总线,于是将几个处理器通过内存总线与一块内存相连构成一个组,这样整个庞大的系统就可以被分为若干个组,这个组的概念在NUMA系统中被称为节点(node)。处于该节点中的内存被称为本地内存(local memory),处于其他节点中的内存对于该组而言被称为外部内存(foreign memory)。而节点又可以分为三类,即本地节点(local
node),邻居节点(neighbour node)和远端节点(remote node).
本地节点:对于某个节点中的所有CPU,此节点称为本地节点;
邻居节点:与本地节点相邻的节点称为邻居节点;
远端节点:非本地节点或邻居节点的节点,称为远端节点。
介绍完这些基本概念后来看计算机系统中CPU拓扑是如何体现出这个特性的!
在现今的多核处理器架构中,一台主机往往存在多个物理封装(socket),每一个物理封装中又封装了多个物理核(core),采用超线程技术后,每一个物理核(core)又包括多个物理CPU,同一物理封装中的各物理核能够共享三级缓存;同一物理核中的物理CPU能够共享二级缓存;
如下图所示
那么如何来查看计算机的NUMA节点呢
通过ls /sys/devices/system/node/命令即可
至于socket、core与processor之间的关系可以通过cat /proc/cpuinfo命令来看
cat /proc/cpuinfo|grep “physical id” 显示出的就是soceket的物理编号
cat /proc/cpuinfo也会显示每个processor的core编号,查看同时每个processor也都有自己的编号
硬件已经趋向使用多条系统总线,每条系统总线为一小组处理器提供服务。每组处理器都有自己的内存,并可能有自己的 I/O 通道。但是,每个 CPU 都可以通过一致的方式访问与其他组关联的内存。每个组称为一个“NUMA
节点”。NUMA 节点中的 CPU 数量取决于硬件供应商。访问本地内存比访问与其他 NUMA 节点关联的内存快。这就是“非一致性内存访问体系结构”名称的由来。
在对称多处理系统中,处理器共享北桥中的内存控制器来达到共同访问外部内存和IO的目的,也就是说所有的处理器对内存和I/O的访问方式和开销都是相同的。在这种系统中,随着更多的处理器被添加到SMP系统中,总线的竞争将会越来越大,系统的性能也必将随之大打折扣。
NUMA系统拥有多条内存总线,于是将几个处理器通过内存总线与一块内存相连构成一个组,这样整个庞大的系统就可以被分为若干个组,这个组的概念在NUMA系统中被称为节点(node)。处于该节点中的内存被称为本地内存(local memory),处于其他节点中的内存对于该组而言被称为外部内存(foreign memory)。而节点又可以分为三类,即本地节点(local
node),邻居节点(neighbour node)和远端节点(remote node).
本地节点:对于某个节点中的所有CPU,此节点称为本地节点;
邻居节点:与本地节点相邻的节点称为邻居节点;
远端节点:非本地节点或邻居节点的节点,称为远端节点。
介绍完这些基本概念后来看计算机系统中CPU拓扑是如何体现出这个特性的!
在现今的多核处理器架构中,一台主机往往存在多个物理封装(socket),每一个物理封装中又封装了多个物理核(core),采用超线程技术后,每一个物理核(core)又包括多个物理CPU,同一物理封装中的各物理核能够共享三级缓存;同一物理核中的物理CPU能够共享二级缓存;
如下图所示
那么如何来查看计算机的NUMA节点呢
通过ls /sys/devices/system/node/命令即可
至于socket、core与processor之间的关系可以通过cat /proc/cpuinfo命令来看
cat /proc/cpuinfo|grep “physical id” 显示出的就是soceket的物理编号
cat /proc/cpuinfo也会显示每个processor的core编号,查看同时每个processor也都有自己的编号
相关文章推荐
- CPU 缓存、物理内存、虚拟内存、进程可访问内存
- 通过矩阵乘法看内存访问对CPU运算速度的影响
- 常见的CPU访问引起的内存保护问题为什么只用event_122上报 - 2
- 内存对其加速cpu访问速度原理
- 8086架构的CPU的内存访问机制以及内存对齐(memory alignment)
- Oracle结构设计技巧(访问数据库象访问内存一样 快)
- 电脑结构和CPU、内存、硬盘三者之间的关系
- TI C66x DSP 四种内存保护问题 -之- 针对CPU访问外存(DDR3 or MSM)时的内存保护问题 - 举例
- CPU拓扑结构的调查
- CPU访问内存
- android 访问cpu和内存信息 计算cpu使用率
- 从CPU角度看内存访问对齐
- CPU拓扑结构的调查
- 常见的CPU访问引起的内存保护问题为什么只用event_122上报 - 1
- 【转载】HTTP Session 内存到内存复制的拓扑结构
- 通过加法运算看内存访问对CPU运算速度的影响
- HTTP Session 内存到内存复制的拓扑结构
- cpu内存访问速度,磁盘和网络速度,所有人都应该知道的数字
- 常见的CPU访问引起的内存保护问题为什么只用event_122上报 - 举例2
- CPU访问内存