摘要

随着应用数据处理需求的激增,在传统冯·诺依曼(von Neumann)体系结构中,处理器到主存之间的总线数据传输逐渐成为瓶颈.不仅如此,近年来兴起的数据密集型应用,如神经网络和图计算等,呈现出较严重的数据局部性,缓存命中率低.在这些新兴数据密集型应用的处理过程中,中央处理器到主存间的数据传输量大,导致系统的性能不佳且能耗变高.针对传统冯·诺依曼体系结构的局限性,内存计算通过赋予主存端一定的计算能力,以缓解因数据量大以及数据局部性差带来的总线拥堵和传输能耗高的问题.内存计算有两大形式,一种是以高带宽的连接方式将计算资源集成到主存单元中(近数据计算),另一种是直接利用存储单元做计算(存内计算).这两种形式有各自的优缺点和适用场景.本文首先介绍并分析了内存计算的提出和兴起原因,然后从硬件和微体系结构方面介绍内存计算技术,接着分析和总结了内存计算所面临的挑战,最后介绍了内存计算给目前流行的应用带来的机遇.