面向CMP的层次缓存目录
Hierarchical Cache Directory for CMP
-
摘要: 由于线延迟的不断增大,单一访问延迟的访问模式已不适于大规模多核处理器的设计要求,非均匀访问结构(NUCA)被提出作为管理片上最后一级Cache的管理方式,其访问延迟取决于请求节点与所需数据之间的物理距离。一些优化技术的目的是将处理器内核频繁使用的重要数据复制或迁移到处理器内核邻近的二级Cache中,使得处理器内核对这些数据的后续访问具有较低的访问延迟。但是邻近节点对这些数据的访问不并知道该数据复制或迁移的情况,仍然需要访问数据的宿主节点。
传统目录的存储开销随着处理器数据的增加面增加,限制了目录协议在大规模系统中的应用。层次目录通过使用树来记录数据共享情况解决了可扩展性的问题,但由于在树根附近的流量过于集中,容易成为系统的瓶颈,影响了层次目录的广泛应用。本文借鉴PHD的思想,并针对CMP的存储层次和片上网络的特点,提出层次缓存目录结构。层次缓存目录应用多级目录来减轻存储开销,同时平均访问延迟和片上流量也得到了降低。层次缓存目录在三个方面有所改进:首先层次缓存目录结合了数据复制,因此请求能很快得到响应。应用多级目录来管理其下属的所有各级节点的共享,因此节省了将消息传送过程,同时也简化了遍历过程。最后对位置映射与性能廉价的方法也进行了相应改变。
层次缓存目录设计中的关键问题包括如何确定在不同级别区域内的宿主节点和如何组织多级目录。本文介绍层次区域划分的方法,节点编号方法,给出区域宿主节点位置计算公式。具体阐述区域宿主节点的目录组织方式,并介绍状态转化和一致性协议的操作流程。
层次缓存目录协议与传统目录协议相比,引入了多级区域宿主节点,修改了请求发送和响应过程,使得请求可能在距离较近的区域宿主节点得到满足,不必传输到距离较远的全局宿主节点,从而降低请求响应延迟。
层次缓存目录将片上节点进行层次划分,并利用多级目录来管理共享数据。通过将处理器所需数据在其所属各级区域宿主节点中保存副本,数据的平均读取延迟得到了改善。模拟实验结果表明在16核的片上多处理器中,与传统目录相比,多级缓存目录减少了9%的平均访问延迟和34%的片上流量,同时存储开销也更小。理论分析表明在2n×2n的CMP中层次缓存目录的平均访问延迟逐渐逼近于一个与处理器规模无关的值,因此可扩展性较好。当系统规模扩大时,层次缓存目录还得获得更多的性能收益,因此可以在更大规模的CMP中使用。此外层次缓存目录还可以和其它的在存储优化技术结合,以取得更佳效果。Abstract: As more processing cores are integrated into one chip and feature size continues to shrink, the average access latency for remote nodes using directory-based coherence protocol becomes higher, which greatly impacts system performance. Previous techniques such as data replication and data migration optimize the performance of the requesting core, but offer little improvement for neighbor nodes. Other techniques such as in-transit optimization try to reduce latency at the cost of increased storage. This paper introduces hierarchical cache directory into CMP (chip multiprocessor), which divides CMP tiles into multiple regions hierarchically, and combines it with data replication. A new directory organization is proposed to record the share status within a region and assist the regional home to complete operation efficiently. Simulation results show that for a 16-core CMP, compared to traditional directory, hierarchical cache directory reduces average access latency by 9% and on-chip network traffic by 34% on average with less storage. Theoretical analyses show that for a 2n times 2n tiled CMP, the average access latency in hierarchical cache directory asymptotically approaches a function that is independent of n, hence the architecture is highly scalable.