Memory及其controller芯片整体测试方案(上篇)
如果你最近想买手机,没准儿你一看价格会被吓到
手机什么时候偷偷涨价啦!
其实对于手机涨价,手机制造商也是有苦难言,其中一个显著的原因是存储器芯片价格的上涨↗↗↗
>>> 存储器memory的江湖地位
存储器memory,是电子设备的基础核心部件之一,全球memory市场规模约700亿美元,在全球3352亿美元的集成电路产业中,占据23%的份额。
随着今年存储器价格的飙涨,各大memory厂商赚得盆满钵满,甚至把memory称为印钞机也丝毫不为过。与此同时,存储器在真金白银的交换中,也充分证明了自己在电子信息产业江湖中的地位。
>>> 存储器的分类
存储介质的形式有很多种,从穿孔纸卡、磁鼓、磁芯、磁带、磁盘,到半导体DRAM内存,以及SD卡,固态硬盘、SSD、闪存等各种存储介质。
存储器大致可以分为掉电易失性(Volatile Memory)和非掉电易失性(Non-volatile memory)。
目前全球存储器市场最大的集中在
DRAM、NAND Flash、NORFlash三大类
这三类存储器,主要用在哪里呢?
以手机举例——
DRAM
4GB就是内存部分,DRAM,用来存放当前正在执行的数据和程序, 例如屏幕前的你正在刷的微信;
NAND FLASH
64GB就是闪存部分,NAND FLASH,用来存放长期信息,例如各位宝宝的美颜美照,你的聊天记录,还有其他……
当然了,也正是因为我们存的东西越来越多,二维空间已经无法存放这么多的信息,生生逼着NAND走向了三维空间,也就是3D NAND。
▲ 3D NAND的构造就像一个摩天大楼
此外,一些新型的存储器也在研究的过程中,例如磁阻式RAM (MRAM--ST-MRAM、STT-MRAM)、电阻式RAM(ReRAM),PRAM、FeRAM等。
了解了Memory的庞大家族,和主要成员之后,我们回到老本行,来研究一下memory的测试方法。
按照Memory的设计制造working flow及其辅助电路,测试环节大致分为以下几个部分:
Cell level --design andmodeling 单元设计、评估及建模
Wafer level –acceptance test代工厂晶圆级自动化测试
Chip level --Protocolvalidation 芯片级协议分析
Controller IC – Interfacemeasurement控制芯片接口测试
Module level 以SSD为例
接下来我们分上、下两篇分别讲解
这5个部分的详细测试方法和测试方案
{ 第一部分 }
Typical Cell evaluation of NVM – flash memory
三大问题,一个对策,你值得拥有
当前主流的NVM由于读写速度快,测试序列复杂,因此在测试时需要
High pulse quality 高质量的脉冲
Complex waveform generation复杂的信号生成
Higher throughput 高吞吐率
典型的memory cell测试主要分为3部分:
1、Write / Erase pulse width dependency
2、Endurance test
3、Disturb test
1
Write / Erase pulse width dependency
流程如下
问题 1-a) 脉冲波形失真
根据以上测试流程,首先我们的工程师编写程序写进一个理想脉冲。
然而由于传输线的多重反射及电感效应,实际测试脉冲已经引入了失真:
问题 1-b) 复杂的时序图生成
时钟的同步、延时、脉宽、上升下降沿,都是要考虑的因素
2
Endurance Test的流程如下
问题2-a) 超长疲劳测试时间
Issue 2-b) 还是波形产生的问题,在疲劳测试中需要为memory cell注入多电压信号脉冲,以测试memory的性能
3
Disturb test
Issue 3-a) 测试设备的灵活性,例如:在两个cell上同时加压,一个为工作单元, 一个为干扰单元
Issue 3-b) 要求比较高的电压加速degradation (e.g. > 40Vfor NAND)
总结以上部分,可得在存储器单元主要三种功能测试中,主要的测试挑战如下
面对如此错综复杂的考量,正确的方法,是使用Keysight HV-SPGU module in B1500A(HighVoltage Semiconductor Pulse Generator Unit),这是基于Keysight半导体参数分析仪(也就是Tracer)B1500A的高压脉冲产生单元,它可以产生± 40V的电压脉冲,用于memory cell 的disturb test。
从正面面板,可以看到这一个可配置于B1500A的模块,每个模块有两个channel,也就是说对于5插槽的B1500A,最高可以配置10个channel。
除了高压、通道数之外,我们接下来来了解一下它在复杂波形生成、超高脉冲精度、以及测试软件等方面的能力,看它是如何在方方面面满足memory cell测试的全部要求。
>>> 看精度
如此好的精度,带来的直接好处,就是脉冲建立时,overshoot和振铃都非常小,来看几种电压和建立时间的组合:
▲ Ttransient=20ns;Vamp=10V
▲ Ttransient=20ns;Vamp=20V
▲ Ttransient=30ns;Vamp=40V
>>>看测试场景
33种测试场景,贴心内置
>>>看速度:
Estimated test time
for one millioncycle endurance test
20倍加速,再也不用等待那么长的时间。
{ 第二部分 }
On-wafer massiveparametric test for memory
第一部分居然罗里吧嗦讲了这么长,弄得小编开始怀疑自己的年龄。为了证明小编还年轻,决定一言不发,甩2张图直截了当简单粗暴快刀斩乱麻结束这一部分![]()
Memory及其controller芯片整体测试方案(上篇)的更多相关文章
- Memory及其controller芯片整体测试方案(下篇)
{ 第三部分 } DDR总线的设计.调试和验证 在计算机架构中,DDR作为程序运算的动态存储器,面对如高性能计算.图形计算.移动计算.工业应用等领域的要求,发展出DDR4,以及用于图形计算的G ...
- 从Google开源RE2库学习到的C++测试方案
最近因为科研需求,一直在研究Google的开源RE2库(正则表达式识别库),库源码体积庞大,用C++写的,对于我这个以前专供Java的人来说真的是一件很痛苦的事,每天只能啃一点点.今天研究了下里面用到 ...
- Android MediaCodec硬编兼容性测试方案
作者:阿宝 更新:2016-08-15 来源:彩色世界(https://blog.hz601.org/2016/08/15/android-mediacodec-hardcode-compatibil ...
- 从轻测到上线,WeTest与《一起来捉妖》测试方案大公开
从2016年Pokémon GO引发的AR游戏热潮开始,国内就一直在期待新的一款具备代表性的AR游戏的头部作品. 4月11日的腾讯首款AR探索手游<一起来捉妖>不仅为国内市场注入了新的活力 ...
- 软件测试相关术语(测试策略 && 测试方案 ....)
软件测试有几种不同的定义方法: a.软件测试是为了发现程序中的错误而执行程序的过程. b.软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例,并运用这些测试用例运行程序,以 ...
- Web应用程序整体测试基础——单元测试
近年来,随着基于B/S结构的大型应用越来越多,Web应用程序测试问题也在逐步完善中.但Web应用程序测试既可以在系统开发中实施,也可以独立于系统单独完成,这取决于Web应用程序的复杂性和多样性.同时程 ...
- HttpDNS的坑以及一个针对安卓不太完善的测试方案
背景:单位因为域名劫持(具体表象是某个地区的用户ping不通域名或者因为DNS解析的ip跨网段导致访问速度很慢)需要运维经常去定位,于是提出了httpDNS方案. 想法是美好的,现实是残酷的.没引入这 ...
- 手机APP测试技术-整体测试流程框架
一 手机APP测试基本思路: 测试计划--测试方案--测试用例--执行: 很多小公司都没有具体的需求,项目时间也比较紧,而且流程也不是很严谨,在这样的情况之下,作为测试的我们,该怎样去对项目进行用例 ...
- 移动弱网测试方案Network Emulator for Windows Toolkit
移动app在测试时,有时需要考虑弱网的情形下,app的表现,那么怎么营造这样子的环境呢? 一.首先需要控制网络,有两种方式其一使用网络损伤仪进行,其二采用软件方式.硬件采购费用太贵,因此使用win平台 ...
随机推荐
- Element表单验证规则
一.简单的逻辑验证使用方法: 方法步骤: 1.在html中给el-form增加 :rules="rules" 2.html中在el-form-item 中增加属性 prop=&qu ...
- optimize table 删除空洞--MYSQL
来看看手册中关于 OPTIMIZE 的描述: OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ... 如果您已经删除 ...
- Java线程池的创建详解
本篇文章主要总结了Java创建线程池的三种方式以及线程池参数的详细说明,对线程池感兴趣的同学可以作为参考学习. 1)通过工具类java.util.concurrent.Executors的静态方法来创 ...
- Flask之Flask实例有哪些参数
常用的参数应用实例 from flask import Flask, render_template, url_for, session, request, redirect app = Flask( ...
- Hadoop 动态扩容 增加节点
基础准备 在基础准备部分,主要是设置hadoop运行的系统环境 修改系统hostname(通过hostname和/etc/sysconfig/network进行修改) 修改hosts文件,将集群所有节 ...
- STM32JTAG口用作普通IO的配置
使用Jlink向STM32烧录程序时,需要使用6个芯片的引脚(以STM32F103C8T6为例),分别是PB4/JNTRST.PB3/JTDO.PA13/JTMS.PA14/JTCK.PA15/JTD ...
- SQL盲注
一.首先输入1和-1 查看输入正确和不正确两种情况 二.三种注入POC LOW等级 ... where user_id =$id 输入 真 and 假 = 假 (1)...where u ...
- Blender2.79建模快捷键
快捷键 基本操作 滚动鼠标中键滚轮:视图放大或缩小 按住鼠标中键滚轮:视图旋转 单独鼠标右键:选择物体 单独鼠标右键:放置物体 shift+鼠标中键:视图平移 小键盘数字1:前视图:ctrl+1:后视 ...
- Go 问题集
删除文件后缀名,出现问题 import "strings" func changePath(file_path string) string { ) } 转换路径 /转换为\\ i ...
- 决策树算法之ID3与C4.5的理解与实现
github:代码实现 本文算法均使用python3实现 1. 决策树 决策树(decision tree)是一种基本的分类与回归方法(本文主要是描述分类方法),是基于树结构进行决策的,可以将其认 ...