存储器之-----片上存储器

目录

SRAM vs. DRAM

片上存储器的分类

片上存储器的选择

---------------------------------------------------------------------------------------------------------------------------------

存储器是现代电子技术发展必不可缺的器件之一。在我们购买电脑,手机的时候,存储器的大小关系着运行速度的快慢,是重要的参考参数之一。 事实上,这里的存储器指的是DRAM,是通过特定的接口按照一定的协议接入到SoC上的。

SoC的内部也到处充斥着不同大小不同型号的存储器。 用在cpu内部的就是我们熟悉的level 1 cache, level 2 cache. 在集成芯片内部,我们将这一系列存储器统称为On Chip Memory, 片上存储器。当前端设计师提出片上存储器的大小,速度以及类型后,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。

SRAMDRAM
容量小 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】

HSUHD/HD标准ROM
SPYesYesYesYes
TPYes[5]
DPYes

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】功能性需求主要包含位宽,位深,单口还是双口,速度等。 但是在这里通常先不考虑速度。

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
双端口存储器实验中的独立方式是指,在实验中使用两个独立的存储器模块来实现读写操作的同时进行。 在这个实验中,我们需要使用两个存储器模块,一个用于读操作,一个用于写操作。首先,我们需要确定存储器的数据宽度和地址宽度,根据实验要求选择适当的存储器模块。 接下来,我们需要将写存储器的数据线连接到实验电路中的数据输入端口,并将读存储器的数据线连接到实验电路中的数据输出端口。同时,将写存储器的地址线连接到实验电路中的地址输入端口,并将读存储器的地址线连接到实验电路中的地址输出端口。 在实验开始时,首先需要将写存储器清空,以确保存储器中没有之前的数据。然后,根据实验要求,将要写入的数据写入到写存储器中。 在读写操作中,可以根据需要在不同的时钟周期进行读写操作。使用一个控制信号来选择读存储器或写存储器进行操作。 在读操作中,将实验电路中的读地址输入给读存储器,并将读存储器的输出数据线连接到实验电路的数据输出端口。在写操作中,将实验电路中的写地址输入给写存储器,并将实验电路的数据输入端口连接到写存储器的数据线上。 通过控制信号来选择读写操作,并在适当的时钟周期进行读写操作,实验电路将能够同时进行读写操作,从而实现双端口存储器的独立方式。 在实验结束后,可以通过读取读存储器的内容来验证写操作的正确性,以确保实验结果的准确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值