Page 352 - 《软件学报》2021年第12期
P. 352
4016 Journal of Software 软件学报 Vol.32, No.12, December 2021
为了使 SALSA 具有可编程性和可扩展性,其指令建立在 ROCC 接口 [25] 之上.ROCC 接口使用了 RISC-V 规
范中为非标准扩展预留的编码空间,可以使用 ROCC 指令格式来定义特定 ALU 上的操作.用户也可以利用
SALSA 定义新的算法和操作指令,将其适用范围扩展到更一般的领域中.
5.3 MAC:3D栈内存聚合单元
5.3.1 场景描述
在图形分析、数据挖掘、机器学习、数据驱动的科学计算等新兴的数据密集型应用场景中,对内存的访问
呈现出越来越不规则的模式,使得传统的基于缓存的处理器体系结构效率低下.3D 栈存储设备,如混合存储立
方体(hybrid memory cube,简称 HMC)和高带宽存储器(high bandwidth memory,简称 HBM)等,可以以较低的内
存密度为代价,大幅增加带宽,对于内存受限的应用有很大吸引力.但是传统的内存接口与 3D 栈存储设备匹配
性差,无法充分利用后者的带宽优势.为此,Wang 等人 [146] 提出了一种 3D 栈内存聚合单元——记忆体存取整合
器(memory access coalescer,简称 MAC),以构造可扩展的多节点非统一的内存体系结构(non-uniform memory
architecture,简称 NUMA).在该结构中,每个节点都是一个独立的处理器,并通过 MAC 直接连接到 3D 栈内存存
储设备,实现近内存访问.MAC 聚合单元及 NUMA 体系结构的设计架构如图 10 所示.
Fig.10 Architecture of MAC design [146]
图 10 MAC 设计架构 [146]
在这个设计中,MAC 共包含两个组成部分:原始请求聚合器和请求构建器.原始请求聚合器负责根据请求
类型和物理地址对原始请求进行分组,然后将落入同一行的原始请求合并,分派到请求构建器.请求构建器根据
体系结构提供的可扩展内存操作量和延迟,确定聚合请求的数据包尺寸,并组装生成具体的 3D 栈内存请求,将
其发送到 3D 栈内存.