Cache coherence protocols such as MESI that use writer-initiated invalidation have high complexity and sometimes have poor performance and energy usage, especially under false sharing. Such protocols require numerous transient states, a shared directory, and support for core-to-core communication, while also suffering under false sharing. An alternative to MESI's writer-initiated invalidation is self-invalidation, which achieves lower complexity than MESI but adds high performance costs or relies on programmer annotations or specific data access patterns. This paper presents Neat, a low-complexity, efficient cache coherence protocol. Neat uses self-invalidation, thus avoiding MESI's transient states, directory, and core-to-core communication requirements. Neat uses novel mechanisms that effectively avoid many unnecessary self-invalidations. An evaluation shows that Neat is simple and has lower verification complexity than the MESI protocol. Neat not only outperforms state-of-the-art self-invalidation protocols, but its performance and energy consumption are comparable to MESI's, and it outperforms MESI under false sharing.
翻译:Cache 一致性协议,例如使用作者发起的无效化的 MOSI 协议,具有高度的复杂性,有时还存在不良的性能和能源使用,特别是在虚假共享的情况下。这类协议要求许多短暂状态、共享目录、支持核心至核心通信,同时在虚假共享下遭受痛苦。 MESI 作者发起的无效化的替代办法是自我验证,其复杂性比MESI 协议要低,但增加了高性能成本或依赖程序说明或特定数据访问模式。本文介绍了Neat, 低兼容性, 高效的缓存一致性协议。 Neat 使用自我验证, 从而避免MESI的短暂状态、 目录和核心至核心通信要求。 Neat 使用新的机制, 有效避免许多不必要的自我估值。 一项评估表明Neat 简单, 核查复杂性比MESI 协议要低。 Neat 不仅超越了最先进的自证化协议, 其性能和能源消耗量也与MESI 的相似, 而且它比MESI 错误共享。