在 NUMA 中,每个 CPU 是不是也有类似于本地 RAM 的本地 I/O 控制器?
Posted
技术标签:
【中文标题】在 NUMA 中,每个 CPU 是不是也有类似于本地 RAM 的本地 I/O 控制器?【英文标题】:In NUMA, does each CPU also has local I/O controller similar to local RAM?在 NUMA 中,每个 CPU 是否也有类似于本地 RAM 的本地 I/O 控制器? 【发布时间】:2013-12-31 07:22:07 【问题描述】:在非统一内存访问中,每个 CPU 都有自己的 I/O 控制器吗?我知道在 NUMA 中,每个 CPU 都有自己的本地 RAM。就像每个处理器都在运行一个单独的进程。它们可以使用 Socket 等 IPC 机制相互通信。我只是想知道,就像每个本地 RAM 一样,它们是否也有本地 I/O 控制器?
【问题讨论】:
【参考方案1】:NUMA 系统中的节点具有本地 RAM,并且可以具有本地 I/O。后者在很大程度上取决于系统在硬件级别的配置方式。如果内存交换是通过 I/O 访问执行的,那么显然每个 CPU 都必须有自己的 I/O 控制器。
这里有一个(旧的)NUMA 系统示例,每个节点都有本地 I/O: http://lse.sourceforge.net/numa/older_stuff/meetings/mtg.2001.07.25/minutes.html
【讨论】:
另一个例子:SGI UV 机器是由“计算刀片”构建的 NUMA 系统,单个 UV 系统可以让许多刀片配备 I/O 转接卡。请参阅“分布式共享 I/O”here 部分。【参考方案2】:答案是否定的。但是,不同的硬件代可能有不同的架构。请参阅以下架构图,这可能有助于回答您的问题:
NUMA diagrams
【讨论】:
以上是关于在 NUMA 中,每个 CPU 是不是也有类似于本地 RAM 的本地 I/O 控制器?的主要内容,如果未能解决你的问题,请参考以下文章
Intel Xeon 上的 NUMA:内存区域是不是必须具有相同的大小?
NUMA:如何检查 C++ 数组分配在 RAM 的哪个部分?
Linux 内核NUMA 非一致内存访问结构 ( NUMA 概念介绍 | NUMA 架构优势分析 | SMPNUMAMPP 架构 )