随着信息技术的迅猛发展,数据量的急剧增加和处理需求的不断提升,现代数据库系统面临存储效率、数据传输效率和计算效率三大挑战(见图1)。由于数据库需要存储大量数据较长时间,这就要求采用非易失性器件以降低关态功耗,其中忆阻器被认为是一个有吸引力的选择。除了提升存储效率,基于忆阻器的存储系统可以通过存储为中心的计算方式进一步提高数据传输和计算效率。利用更高的片上带宽取代传统存储器与处理单元之间的片外带宽,数据库处理系统可以显著提升其整体效率。然而,现有的存储为中心的计算架构尚未以非易失性器件为存储介质,并且无法支持泛用数据库算子的执行。
图1、数据库系统面临的三个挑战
为了解决这些关键问题,北京大学集成电路学院/集成电路高精尖创新中心杨玉超教授团队设计并提出了MeMCISA架构。这是一种专为泛用数据库算子设计的以忆阻器为存储介质和以存储器为计算中心的指令集架构,其示意图如图2所示。MeMCISA通过交叉阵列和近存电路的融合,成功实现了存内计算和近存计算在计算部分的结合。这样,MeMCISA不仅保留了存内计算的高并行度优势,还享有近存计算对算子的广泛支持。
团队为这种存内计算和近存计算结合的模式开发了新的多周期向量指令集,支持四种类型的指令:比特级、元素级、向量级和数据流控制指令。这些指令专门针对向量设计,满足以向量为主要数据格式的操作需求,从而实现高效的数据处理。基于向量指令集,团队还设计了在调度器中执行的乱序调度,该调度机制采用三阶段流水并行执行,相比顺序调度,极大提高了硬件资源的利用率,在单条跨模块命令上就可以达到1.72倍到7.46倍的速度提升。
为了评估MeMCISA架构的性能,团队设计了一个端到端的仿真框架,具有单命令模式和代码块模式两种操作模式。其中,代码块模式能够根据带有MeMCISA标签的PyTorch/SQL代码块生成相应的汇编格式指令,并在架构中调度和执行这些指令。如图3的实验结果显示,MeMCISA架构在执行单条命令时,处理速度较传统架构提升了33.86倍至3561.56倍,而在处理多种数据库工作负载时,提升了41.84倍至1767.70倍。此外, MeMCISA的能耗相较于传统架构同样有所降低。
图2、(a) MeMCISA整体架构,(b)调度器设计,(c)计算部分架构设计,(d)近存电路示意图,(e)交叉阵列结构
图3、(a)经典SQL单命令执行时间测试结果,复杂单命令测试(b)加速比和(c)能耗,应用代码块测试(d)加速比和(e)能耗
通过对MeMCISA架构的深入研究,杨玉超教授团队的成果为解决现代数据库面临的挑战提供了切实可行的技术方案,展示了忆阻器存算一体架构在提升数据库性能中的重要作用。相关研究成果以“MeMCISA: Memristor-enabled Memory-Centric Instruction-Set Architecture for Database Workloads”为题,在国际微架构会议(57th IEEE/ACM International Symposium on Microarchitecture,MICRO 2024)上进行了报告。MICRO会议是计算机体系结构领域的四大顶会之一,会议内容涵盖微程序设计与微体系结构的各个方面,包括但不限于存储架构、并行/多核架构、专用架构等。这一论文的发表说明了在基于忆阻器的存算一体架构领域的突破。论文的第一作者是北京大学集成电路学院2022级博士研究生朱奕航,通讯作者是北京大学杨玉超教授和陶耀宇研究员。这项研究工作得到了国家重点研发计划、国家杰青、国家自然科学基金重点项目、北京市自然科学基金以及111计划的支持。