NUMA(非一致内存访问)是一个在多重处理系统中配置微处理器的簇的方法,这样他们可以在本地共享内存,提高系统扩展的性能和能力。
NUMA被用于对称多处理系统中。对称多处理系统是”紧紧联系”、”共享一切”的系统,在这个系统里单一操作系统下的多重处理器通过公用总线或”互联”路径访问彼此的内存。对称多处理的一个局限性是当微处理器增加时,共享总线和数据路径变得超载并且成为性能瓶颈。
NUMA 增加一个在几个微处理器中共享的内存媒介水平,这样一来不用所有的数据访问都在主要的总线上传输。NUMA可以被认为是一个”盒子中的簇”。这个簇一般由四个微处理器(例如四个奔腾微处理器)组成,这四个微处理器通过一条局域总线(例如外围组件互联总线)与一个单独主板(也可能是一个卡)上的共享内存(叫做”L3缓存”)连接。这个单元可以添加到相似的单元,形成一个对称多处理系统,其中一条公用对称多处理总线连接所有的簇。这样一个系统典型的包含16到256个微处理器。对一个运行在对称多处理系统中的应用程序来说,所有单独的处理器内存看起来就像一个内存。但一个处理器在特定内存地址寻找数据的时候,它首先察看微处理器本身的L1缓存,然后是附近的稍微大些的L1和L2缓存芯片,再然后是NUMA结构在寻找数据之前提供的第三水平缓存,位于另一个微处理器附近的”远程内存”。
在互联网络里NUMA把这些簇的每一个都看作一个”节点”。NUMA维持所有节点上的数据的分级视图。使用可升级连贯接口(SCI)技术,数据被通过总线在NUMA对称多处理系统的簇间移动。SCI 在多重簇的节点之间与叫做”缓存一致”或一致性的东西相配。SMP 和NUMA系统典型的被用于像数据挖掘和决策支持系统这样的应用软件,在这些软件中处理任务可以被分配给许多在一个公用数据库上集体工作的处理器。Sequent, Data General和 NCR都是生产NUMA SMP 系统的公司。