存算分离是将计算和存储功能分开部署在不同的节点或设备上的概念。在存算分离架构中,计算任务通常在独立的计算单元(如CPU或GPU)中执行,而数据存储在独立的存储设备中。这种架构可以提供更大的灵活性和可伸缩性,但可能需要进行大量的数据传输和通信。【冯诺依曼架构的特点为存算分离】
存算分离不可避免地存在以下问题:
内存墙:计算机系统中处理器速度远远快于内存访问速度而导致的性能瓶颈。解决内存墙问题可以考虑高速缓存、内存层次结构优化、内存访问模式优化以及使用更快速的内存技术(快闪存、非易失性内存等)。
功耗墙:指的是处理器和其他组件的功耗增加速度超过了散热和功耗管理技术的改进速度,从而导致系统性能增长受限的现象。为了应对功耗墙,处理器制造商和系统设计者采取了多种策略。其中包括优化芯片设计和电源管理,改进散热技术,采用节能的制造工艺,以及引入新的架构和技术,如低功耗处理器、异构计算和功耗管理技术等。
存算一体方案可以分为三类:近存计算(Processing Near Memory
),存内处理(Processing in Memory,PIM
)和行内计算(Computing in Memory,CIM
)。
近存计算是将存储单元和计算单元集成,增加访存带宽、减少数据搬移,提升整体计算效率。近存计算仍是存算分离架构,本质上计算操作由位于存储外部、独立的计算单元完成,其技术成熟度较高,主要包括存储上移、计算下移两种方式。(华为昇腾910系列芯片为冯诺依曼架构和达芬奇架构的组合,达芬奇架构的本质应为采用多级cache实现近存计算。)
存内处理的关键点是将计算操作和数据紧密结合,以在存储器内部进行计算,而不需要将数据从存储器传输到计算单元。这种架构可以减少数据传输的需求,降低延迟,并提高计算效率和能效。存内处理的本质是将计算操作直接嵌入到存储器中,以在数据存储位置附近进行计算。
存内计算是真正的存算一体,在芯片设计过程不再区分存储和计算单元,真正实现存算融合。存内计算是计算新范式的研究热点,本质是利用不同存储介质的物理特性,对存储电路重新设计使其同时具备计算和存储能力,直接消除存算界限,在存储原位上实现计算。(后摩时代在2023.5.12发布的H30车载芯片应满足存算一体架构方案。)