Abstract
内存设计的可用性常常抑制了计算机系统的研究。现有的流程设计套件(PDK)经常缺少存储器编译器,而昂贵的商业解决方案仅提供具有不变单元,有限配置和限制性许可证的存储器模型。手动创建内存可能既费时又乏味,而且设计通常不够灵活。本文介绍了OpenRAM,一种开放源代码的内存编译器,它提供了一个平台,用于跨各种技术,大小和配置生成,表征和验证可构造内存设计。它可以进行计算机体系结构,片上系统设计,存储器电路和器件研究以及计算机辅助设计的研究。
Introduction
静态随机存取存储器(SRAM)已成为嵌入在所有片上系统(SoC),专用集成电路(ASIC)和微处理器设计中的标准组件。它们的广泛应用导致对电路设计和存储器配置的各种要求。但是,手动设计非常耗时。内存的规则结构很好地导致了自动化,该自动化迅速产生了大小和配置变化,但是要使用多种技术和工具方法来开发这种结构则具有挑战性。此外,存储器设计在总体系统性能和成本中起着重要作用,因此优化很重要。因此,内存编译器是至关重要的工具。
大多数学术IC的设计方法受到存储器可用性的限制。代工厂和供应商可提供许多标准单元工艺设计套件(PDK),但这些PDK通常不随存储器阵列或存储器编译器一起提供。如果内存编译器是免费提供的,则它通常仅支持不可制造的通用处理技术。由于学术经费的限制,商业行业的解决方案通常对研究人员不可行。另外,这些商业解决方案在定制存储器大小和存储器的特定组件方面受到限制。 PDK可能具有请求“黑匣子”存储模型的选项,但它们也不可修改且可用配置有限。这些限制和许可问题使得无法对真实世界的记忆进行比较和试验。
学术研究人员能够设计自己的自定义存储器,但这可能是一项繁琐且耗时的任务,并且可能不是该研究的预期目的。通常,存储器设计是研究项目所需的最基本的要求,因此,存储器设计通常较差且未进行优化。在存储器研究中,比较存储器性能和密度时通常不考虑外围电路。缺少可定制的编译器,使得研究人员难以对单行或一列存储单元以外的电路和方法进行原型设计和验证。
OpenRAM项目旨在为内存提供一个开放源代码的内存编译器开发框架。它以通用的45nm技术和可制造的可扩展CMOS(SCMOS)提供参考电路和物理实现,但也已使用一个简单的技术文件将其移植到了多个商业技术节点上。 OpenRAM还包括一种特性分析方法,因此它不仅可以生成电路和布局,还可以生成时序和功率特性结果,而又与特定的商用工具无关。最重要的是,OpenRAM完全可以由用户修改,因为所有源代码都是开源的:
https://openram.soe.ucsc.edu/
本文的其余部分安排如下:第2节提供了有关先前内存编译器的背景知识。第3节介绍了OpenRAM中的参考存储器体系结构。第4节专门介绍了OpenRAM存储器编译器的实现和主要功能。在第5节中,显示了针对不同大小和技术的存储器的面积,时序和功耗的分析。最后,本文在第6节中进行了总结。
Background
存储器编译器已被用于电子设计自动化(EDA)设计流程中,以缩短设计时间,远远早于当代的编译器[2,9]。但是,这些编译器通常不可移植,因为它们不过是帮助设计人员的快速脚本。移植到新