计算机体系结构中的共享内存模型是什么?
共享内存模型是指处理器通过读取和写入所有处理器都可以访问的共享内存中的位置来连接的模型。每个处理器都可以拥有寄存器、缓冲区、缓存和本地内存库作为更多的内存资源。共享内存系统设计中需要考虑一些基本问题。这些问题涉及访问控制、同步、保护和安全。
访问控制指定哪些进程可以访问哪些资源。访问控制模型针对处理器向共享内存发出的每个访问请求,根据访问控制表的内容进行必要的检查。后者包含决定每次访问尝试合法性的标志。如果有对资源的访问尝试,那么在所需的访问完成之前,所有不允许的访问尝试和非法进程都会被阻止。来自共享进程的请求可以在执行期间修改访问控制表的内容。
访问控制的标志与同步规则一起指定了系统的功能。同步约束限制了共享进程对共享资源的访问时间。适当的同步确保数据正确流动并提供系统功能。
保护是系统的一项功能,可以防止进程任意访问属于其他进程的资源。共享和保护是不兼容的;共享允许访问,而保护限制访问。
最简单的共享内存系统包括一个内存模块,该模块可以由两个处理器创建。请求通过其两个端口出现在内存模块上。内存模块内的仲裁单元将请求传递给内存控制器。
如果内存模块空闲并且只有一个请求到达,则仲裁单元将该请求传递给内存控制器,并授予该请求。在服务请求期间,模块处于繁忙状态。如果在内存忙于服务先前请求时到达新的请求,则请求处理器可能会在其线上保持其请求,直到内存空闲,或者它可能会在稍后重复其请求。
共享内存系统导致可以归类为统一内存访问 (UMA)、非统一内存访问 (NUMA) 和仅缓存内存体系结构 (COMA) 的系统。
在 UMA 系统中,所有处理器都可以通过互连网络以与单个处理器访问其内存相同的方式访问共享内存。因此,所有处理器对任何内存位置都有相同的访问时间。在 UMA 中使用的互连网络可以是单总线、多总线、交叉开关或多端口内存。
在 NUMA 系统中,每个处理器都有一部分共享内存附加到它。内存具有单个地址空间。因此,任何处理器都可以使用其真实地址直接访问任何内存位置。但是,对模块的访问时间取决于到处理器的距离。这导致了非统一的内存访问时间。