什么是 COMA?
COMA代表缓存只读内存访问机。COMA机器包括通过互连网络连接的多个处理节点。每个处理节点都具有高实现处理器、缓存和全局共享内存的分配。
COMA机器试图通过将主内存块从节点的本地内存中排除,并且仅使用大型缓存作为节点内存来避免NUMA和CC-NUMA机器的静态内存分配问题。在这些体系结构中,只有缓存内存存在;无论是像UMA机器那样采用中心共享内存的形式,还是像NUMA和CC-NUMA计算机那样采用分布式主内存的形式,都没有采用主内存。
以下是两种具有代表性的COMA架构:
- DDM(数据扩散机)
DDM是一种分层的树状多处理器,其中树的叶子表示基本的DDM架构。基本的DDM是一个基于单总线的多处理器,它包含几个连接到DDM总线的处理器/吸引内存对。吸引内存包含三个主要单元,例如状态和数据内存单元、控制器和输出缓冲区。
DDM采用异步分事务总线,即在请求事务及其响应之间释放总线。引入了写无效嗅探缓存协议,该协议将广播需求限制在较小的子系统中,并扩展了对替换的支持。
- KSR1
KSR1机器是第一台商用COMA机器,其中逻辑单一地址空间是通过本地缓存集合和所谓的ALLCACHE引擎实现的。ALLCACHE引擎实现了一种基于分布式目录方案的顺序一致性缓存一致性算法。ALLCACHE以页和子页的形式存储数据。本地缓存中的内存分配单元是包含16KB的页。本地缓存之间的数据传输单元是包含128字节的子页。
分布式目录是一个矩阵,其中为每个子页分配一行,为每个子页分配一列,并为每个本地缓存分配一列。如果相应的本地缓存不包含任何子页副本,则矩阵元素为空。由于这是通例,因此矩阵非常稀疏,因此以紧凑的方式存储,排除了那些为空的元素。非空元素可以表示以下四种状态中的任何一种:
EO(独占所有者) - 这是整个机器中唯一有效的副本。
C(副本) - 机器中至少存在两个有效的子页副本。
NO(非独占所有者) - 当存在多个子页副本时,其中一个被标记为非独占所有者。
I(无效) - 尽管本地缓存中存在子页副本,但它无效,不会被使用。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP