HMTT:一个坚持了15年的硬件项目
9月14日上午,在与陈明宇老师的共同见证下得知美国微软研究院采购的第四代混合访存监测设备(HMTT v4)款项N万美元已划拨至计算所。深感欣慰地得知这项由15年前研制的技术今天仍展现出其领先的技术优势与创新活力
从2005年开始研发HMTT(A Hybrid Memory Trace Toolkit),这一技术在国内主要企业进行了部署,并成功向多家国际企业和高校提供了相关数据。过去曾有一个存储着访问模式的数据硬盘在全球范围内被使用过(但现在已经找不到它的下落了)。此次也是首次将这一技术成果销往海外市场。

2011年曾有一块硬盘在全世界飞
HMTT是我们自主研发的一种独具特色的专用型内存总线行为监控设备,在全球范围内仅限少数几家企业致力于该技术的研发与应用。近年来随着非易失存器技术NVM与DDR3 DRAM的深度融合,在相关领域的研究热度持续攀升。2019年期间美国西部数据作为国际存储行业领军企业专门发函表达了对其产品的兴趣,并安排多次电话会议进行深入交流。为此我们制作了一个视频内容并上传至YouTube平台以作展示回应。然而此后双方的联系便逐渐中断直至2019年5月后完全断绝。
大约在2005年前后,HMTT项目启动了,这是我在陈明宇研究员指导下进行的我的博士研究项目。其实其原理非常简单:HMTT卡插入内存槽中,而内存则连接到该卡上。通过这种方式,HMTT能够获取到具体的物理地址,并结合操作系统内核中的页表机制,可以将物理地址转换为进程虚拟地址。不过真正实现起来需要深入理解每一个细节,否则设备就无法正常运转了。
有一段时间让我感到困扰的是一个问题:那就是自己存在一个知识盲点……后来才意识到自己存在一个知识盲点:就是没搞清楚IOMMU的工作原理。再比如HMTT卡上的时钟与DDR总线的时钟频率并不完全一致:还存在相位漂移的问题:这会导致采集的数据出现丢失的情况。对我来说每一次解决一个问题都会让我感到一种成就感:但更大的挑战在于以前都是做软件开发从来没有接触过硬件这是我的第一个硬件项目!因此我从零开始学习Verilog然后又转向FPGA接着深入学习DDR规范以及BIOS等相关知识。
第一版HMTT研发了多年,在2007年五一劳动节前完成了关键功能——成功实现了进程虚拟地址获取这一重要模块的功能验证工作。随后于2008年,在** SIGMETRICS 顶级会议 上发表论文并荣获计算所优秀论文一等奖。后来随着于2011年加入龙芯团队后与唐丹教授合作开展I/O访存Trace分析及DMA访存特征研究工作,并在此基础上提出了创新性的DMA Cache优化技术研究方法,在2010年的 HPCA 论文顶会 **上发表了相关研究成果论文并再次荣获计算所优秀论文一等奖。
从2012年之后开始转入新的研究领域,在此期间内陈明宇老师领导下的团队持续研发出了 HMTT v2 以及后续版本 HMTT v3 和 HMTT v4 系列产品。目前系统已支持 DDR4-1600/1866 总线带宽,并可在 Intel Skylake/Coffeelake/Broadwell, AMD Ryzen 等平台正常运行

HMTT v4近照:内存条插在HMTT卡上

HMTT工作照
在教学过程中应用HMTT同样发挥了显著的作用。某次在为国科大本科生讲授操作系统课程时,在讲解虚拟内存管理模块时遇到了一个关键点。促使我回忆起了这一技术,在脑海中浮现出了当年制作的相关幻灯片材料。于是决定重新翻阅了相关的幻灯片材料,并从中提取了几个典型案例——通过实验观察发现,在使用HMTT实时监测QuickSort算法的内存访问行为时会呈现出一种典型的特征性模式:虽然物理层的内存访问呈现杂乱无章的状态分布特征表征着复杂的动态行为模式但在经过虚拟化映射处理后能够清晰地反映出QuickSort算法运行过程中的有序性与规律性变化趋势
注
HMTT让我深深体会到从事计算机系统工作的魅力所在——它不仅带给我无尽的兴趣与热情,在我的科研道路上也深刻地塑造了我的学术风格——不局限于软件层面的模仿研究,而是致力于构建真正具有运行能力的原型系统设计框架;即便要投入数年时光去打磨这一技术细节,在论文发表的数量上可能有所减少 。
因此建议企业招聘过程中综合评估候选人的学术能力与实践能力更为恰当
最后分享几张早期三代HMTT的照片:

HMTT v1 (2006年)

HMTT v2 (2008年)

HMTT v3
