马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
存储器是现代电子技术发展必不可缺的器件之一。在我们购买电脑,手机的时候,存储器的大小关系着运行速度的快慢,是重要的参考参数之一。 事实上,这里的存储器指的是DRAM,是通过特定的接口按照一定的协议接入到SoC上的。
SoC的内部也到处充斥着不同大小不同型号的存储器。 用在cpu内部的就是我们熟悉的level 1 cache, level 2 cache. 在集成芯片内部,我们将这一系列存储器统称为On Chip Memory, 片上存储器。 作为DFT,存储器是我们要面对和处理的一个很重要的器件。当前端设计师提出片上存储器的大小,速度以及类型后,DFT需要统筹规划存储器的形状,速度,面积,功耗,测试等各个方面的要求,给出合理的存储器选择方案。
SRAM vs. DRAM
不同于DRAM,On chip memory 通常采用的是SRAM。
SRAM,Static Ramdon Access Memory, 是指静态存储器。是目前最快的存储设备。 由于价格相对较高,所以只会在要求苛刻的环境中使用。所谓的Static,是指只要电源存在,RAM中的内容就不会丢失。但由于SRAM一位就需要6个晶体管,单位空间内能容纳的SRAM单元有限。在追求执行速度时,比如说cache,我们通常会采用SRAM。
DRAM则不同,它的速度比SRAM要慢,价格也相对便宜。 存储单元为电容,所以集成度较高,但是需要有特定电路对其定时刷新,以防数据丢失。刷新周期通常为4ms - 64ms。 当我们追求容量的时候,我们就会选择相当造价低廉,存放内容更多的DRAM。
| SRAM | DRAM | 容量 | 小 Max 1GBit | 较大 | 速度 | 高速 | 较低 | 造价 | 较高 | 较低 | 用途 | 片上/cache | 片外 |
片上存储器的分类
片上存储器是半导体集成电路中的一个重要器件,各大代工厂以及EDA公司都有自己的memory bit cell和compilers提供。现有memory offering厂商主要有台积电,台联电,中芯国际,三星,英特尔,global Foundry等。 在制程工艺上,目前可以量产的工艺已经达到了7nm。
on chip memory较多采用的是SRAM,用于高速处理芯片内部所需要的数据存储。 除此之外,ROM通常也被用在SoC上,用于存放预先写好的boot信息。不过近年来,ROM有慢慢被FLASH取代的趋势。 SRAM受限于其compiler【1】,有一定的大小限制。 对于过小的存储器,会通常用FF寄存器来实现。当芯片上需要的存储器大小超出compiler限制时,就需要提供logic memory。将小的memory安需求拼接成较大的memory供功能使用。
片上存储器按照其功能通常有以下几种: SPSRAM:单口存储器。 只有一组access bus【2】,所有的读写都是通过这一组bus实现。每个时刻都只能选择读或者写中的一种操作去访问某个地址。
TPSRAM:Two Port SRAM 有两组access bus,A和B。 A口只写,B口只读
DPSRAM: Dual Port SRAM 同样也有2组access bus。每组bus都具有可读可写的能力 【3】 ROM:Single Port ROM
只读存储器。内容需要预先存好。
片上存储器依其优化方式不同有着不同的划分。 以TSMC 台积电 7nm技术为例,有以下几种不同优化方向的compiler。 基本存储器类型为高电流bit cell,compiler名称通常会带有SP前缀。 基于面积优化: 前缀为HD,意为高密度 在面积方面进一步优化:前缀为UHD 基于速度优化:前缀为HS
结合功能分类和优化方向分类,我们可以得到以下compiler矩阵。【4】 | HS | UHD/HD | 标准 | ROM | SP | Yes | Yes | Yes | Yes | TP | | Yes[5] | | | DP | | | Yes | |
TIPS: 【1】compiler是指由EDA厂商或memory bit cell厂商提供的将bit cell按照用户需求组合成一块完整的存储器的工具。 【2】Access Bus 通常包含addr, DI, DO,RWB,WIB,CLK等信号 【3】无论是TPSRAM还是DPSRAM,A口和B口在做读写的时候不能同时操作同一个地址。 【4】依tsmc 7nm技术compiler 为例,依据其他工艺和其他优化方式的compiler不尽相同。 【5】TPSRAM的实现只有RF, register file.
片上存储器的选择
在集成电路的集成度不断增加的今天, 片上存储器在SoC上所占的比重越来越大。片上存储器的占比目前以及可以达到70%【1】
在前端设计中,设计者们更加关心的是功能上的考虑,比如大小,access方式等。以cpu level1 cache为例,设计者对存储器的需求主要表现在: 1.bitwidth 位宽 2.word depth 深度 3. 类型,1RW,单口读写
4. 运行速度1G
在实现过程中,需要考虑的维度远多于这些功能上的需求。 在保证功能的前提下,如果大小,类型都可以由现有的compiler提供,DFT需要帮助前端设计选择合理的存储器类型,以实现性能最优。 在这里主要需要考虑的参数有速度,面积,形状,休眠方式,以及为后期mbist测试的统筹规划。
在绝大部分情况下, 会有不止一个符合功能性需求的【2】的compiler设置。如何从这一系列设置组合中筛选出最适合项目实现的最优化的解决方案,这是DFT工程师们的研究领域。
筛选的过程分为2步。 1.初步筛选。 在多数情况下,不同的compiler所能满足的性能区域有所重合。 这里需要选择满足类型和大小的所有compiler设置组合。 需要注意的是在这里我们并不具体考量速度指数。 原因在于就算是同一个compiler,满足同一大小需求的不同设置组合所产生的存储器通常有着不同的速度。因而,对于速度的考量通常会在细化选择步骤完成。
2.细化筛选
落入重合区域的存储器要求要依据不同compiler的表现进一步筛选。 速度是必须要满足的条件。由于不同设置速度不同,所以通常先进行面积的判断,筛选出最小面积的设置。然后再判断此设置下速度条件是否能够被满足。
TIPS: 【1】不同类型芯片存储器占比不尽相同。 【2】功能性需求主要包含位宽,位深,单口还是双口,速度等。 但是在这里通常先不考虑速度。
片上存储器的compiler多种多样。compiler提供商给与用户更大的自由度,使得我们可以灵活调整不同参数得到最合适的存储器。 片上存储器的研究是相当广泛和深入的,我们会在后期话题中继续讨论。欢迎持续关注。
|