Fig. 2 The memory hierarchy for the general purpose zone
此外,除了私有缓存支持缓存一致性外,还有四个高带宽共享内存(HBSM),作为大型缓存区使用。每个HBSM都有48MB的容量,带宽为307GBps,并且可以被所有CPU访问。底层有四个DDR内存模块,提供32GB的容量和204GBps的内存带宽。DDR和HBSM都能有效地提高整体内存效率,并为HPC领域中不同类型的内存访问提供灵活的解决方案。
第二个内存层次结构视图适用于加速区域。如图3所示,加速区域中的每个集群都有其自身的GSM、HBSM和DDR内存。GSM为6MB,作为每个加速集群的主私有片上存储器。HBSM作为加速集群的次级片上存储器。GSM和HBSM的主要区别在于HBSM还可以被通用区域中的CPU访问。为了减少内存冲突,HBSM设计有多个存储体。结合直接内存访问,这种多存储体结构组织为运行时数据准备提供了灵活的支持。
Fig. 3 The memory hierarchy for the acceleration zone
3.3 Hierarchical interconnection network
Fig. 5 The organization of control and accelerator cores in the acceleration cluster
为了进一步提高整体效率,在每个加速器核心中,我们采用非常长指令字(VLIW)的方式组织计算单元,其中三个乘法与累加(MAC)单元、一个整数执行单元(IEU)以及两个加载/存储单元并行排列,且在单个周期内最多可同时向每个加速器核心并发发送六条指令。每个MAC单元能够支持混合和浮点乘法与累加运算。对于浮点运算,支持半精度、单精度和双精度浮点运算。IEU能够支持位运算和整数运算,使加速器核心成为强大的计算引擎。
VLIW能够很好地利用指令级并行性。需要注意的是,与用于提高指令级并行性的动态机制相比,VLIW选择以静态方式来利用指令级并行性,其中指令之间的依赖关系由编译器处理,而同一指令字中打包的多条指令在并发执行时能够保证彼此独立。这种静态调度方式有助于实现与动态方法相比合理的低功耗。通过结合VLIW和加速阵列组织,数据级并行性和指令级并行性都能够得到有效利用。
3.5 On chip vector memory design
加速器阵列极大地提升了MT-3000的整体性能,且控制开销极低。然而,这种架构的一个关键因素在于内存子系统,它需要为控制核心以及16个集成在一起的加速器核心提供足够的数据。为此,我们引入了阵列存储器(AM),这是一种向量存储器,最多能够为每个加速器核心提供两次加载/存储操作。AM的加载/存储的数据类型包括 half-word(32位)、float-word(64位) 和 doouble-word(128位),因此AM能够同时为16个加速器核心提供最多512字节(16×2×128位)的数据。
除了内存带宽之外,数据可靠性也是高性能处理器的另一个关键问题,因为较大的内存容量和带宽会增加内存位翻转的可能性。为了提高数据的完整性,采用了基于循环冗余校验(CRC)的错误检测和纠正(EDAC)算法。向量内存的容量为864KB,其中768KB用于数据存储,其余部分用于CRC。这种设计能够检测2位错误并纠正1位错误,这极大地提高了向量内存的可靠性。
为了提升整体性能,AM还支持非对齐向量访问(UVA)。UVA使得能够进行非对齐的向量访问,即从任意字节地址开始访问,而非从向量行的起始位置(即16×64)开始。这涵盖了数据并行应用中大量不规则的内存访问情况,并极大地提高了向量内存访问的灵活性。
3.6 The design of MT‑3000 chip
MT-3000是采用先进的纳米技术制造的。它采用了可扩展的高复用结构和分层方法,以实现处理器的高效设计。通过逻辑层和物理层的优化以及关键模块的定制设计,实现了高主频、多层级和多粒度的功耗优化。图6是芯片的物理布局图。DDR接口位于四个角上,IO单元位于顶部和底部边缘(tangingassigna ins)。加速器单元将它们连接起来。16个通用CPU位于布局的中心,以便与IO和加速器单元方便连接。MT-3000在0.8V的电压下运行,为了稳定提供大电流,我们在布局上构建了一个强大的电源网,插入了Decap电容和 MIM电容以抑制瞬态 IR 降。
Fig. 6 The layout of MT-3000
4 The MT‑3000 programming environment