[SSD 测试 1.4] 硬件测试之主控测试 (CP | FT) | 主控是如何保证品质的?

2024-02-23 19:36

本文主要是介绍[SSD 测试 1.4] 硬件测试之主控测试 (CP | FT) | 主控是如何保证品质的?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

专栏 《深入理解SSD》

<<<< 返回总目录 <<<<

主控制器方面,消费级市场的主要厂商包括三星、英特尔、西部数据、海力士和东芝,他们的产品涵盖了SATA和Nvme Pcie3.0/4.0接口。而在企业级市场,国内厂商华为海思H181x系列也有存在。在实际速度方面,该速度会受到制程及后端Nand Flash接口速率和通道数的影响。

1. 测试Case

主控测试一般集中在芯片流片回来的初期至中期阶段,只会由芯片设计原厂进行测试。通常来讲测试内容涉及到芯片功能,芯片应力,功耗,以及相关底层调试测试。测试仪器设备比较昂贵。

下面列举几个常见的测试case:

IP 协议测试。如Pcie 4.0 ,测试各条lane的带宽,眼图,抖动,误码率以及Pcie 3.0 相关的协议规范的信号质量,时序等。通常示波器会配套销售相关协议测试软件,需要测试人员调整测试socket,并通过串口或其他调适口对芯片下达正确的测试命令。测试完成后将直接生成测试报告。

芯片应力测试。通常会涉及到温升,文冲,高低温等,此项测试直接关乎到产品规格最终能到达的工作温度范围。

老化测试。通过软件平台调取当前芯片状态数据,并通过仿真软件进行加速老化,再将数据会写进行芯片生命末端信号测试,功能测试。

其他接口协议测试,如对接nand 端的 ONFI、Toggle,对接DDR 端的DDR4等等。

模拟数字信号测试,主要检测ADC接口状态。

如果主控芯片内置有温度传感器,则需进行测试校验

故障指令注入测试

T10/DIF测试

2. 测试阶段

分为两阶段测试,业界通俗的叫法是CP和FT。
在这里插入图片描述

2.1 CP 测试

CP是(ChipProbe)是缩写,指的是芯片在foundry流片回来后,需要在wafer level 进行简单的DC和功能测试,主要是通过探针卡的探针扎到芯片PAD上,然后通过ATE输入激励信号,测试芯片的输出响应。

CP测试的工具如下:
在这里插入图片描述
CP 主要测试一些和高速无关的特性, 选出 good die。一般情况下数据的最高传输不能超过50Mbps,高速信号的测试是几乎不可能的。

当前主流SSD主控芯片已经进入了28nm、14nm等高端半导体制造工艺时代,一颗芯片通常集成千万级逻辑门电路,这样势必会导致芯片的功耗大幅增加,测试pattern频率需要大幅提升。

测试轮数
根据需求, 会测试多轮, 比如高温, 低温, 常温。温度的度数也有要求,一般对照产品规格书来测试, 以保证产品满足规格书。

测试温度值
商规芯片低温一般 -10 C, 高温 70~80C。一般常温是指的室温。工业芯片低温一般 -45C, 高温90C。低温测试是成本高的, 在零下温度降低速度远远慢于升温速度, 低温需要氮气的量更大, 增加了成本。

常见问题

在跑高速的scan测试和相关memory测试这些测试项时芯片的功耗会很大,在芯片电源脚上会流过很大的瞬间电流。由于探针卡针尖接触芯片PAD会产生较大接触阻抗,导致芯片电源端产生较大毛刺。而探针卡电源的滤波电容离针尖有一段较长距离,没办法很好的过滤掉这些毛刺,所以对芯片逻辑测试会产生较大影响。

探针在经过一定时间的大电流冲击后,针头可能会被加速氧化,导致测试接触电阻越来越大,导致测试信号质量变差。

2.2 FT 测试

FT是Final Test的缩写,指的是芯片在封装完成以后进行的最终测试,只有通过测试的芯片才会被出货.

消费级在每一颗主控芯片出厂时,都会由封测厂进行FT测试,经过封测厂进行筛选主控,将主控进行等级区分,哪些可以做工业级宽温,哪些可以做普通消费级,哪些可以做高工级。而专业企业级SSD主控则严格要求主控的质量。

FT测试一般分为两个步骤:1)自动测试设备(ATE)2)系统级别测试(SLT)—2是必须项,1一般小公司可能用不起。ATE测试一般只需要几秒钟;SLT一般需要几个小时,逻辑比较简单。

FT的难点是如何在最短的时间内保证出厂的Unit能够完成全部的功能。FT需要tester(ATE)+ handler + socket。

2.3 如何规划 CP、FT测试划分

CP最大的目的就是确保在芯片封装前,尽可能地把坏的芯片筛选出来以节约封装费用.所以基于这个认识,在CP测试阶段,尽可能只选择那些对良率影响较大的测试项目,一些测试难度大,成本高但fail率不高的测试项目,完全可以放到FT阶段再测试.
5. 1)因为封装本身可能影响芯片的良率和特性,所以芯片所有可测测试项目都是必须在FT阶段测试一遍的.而CP阶段则是可选

2)CP阶段原则上只测一些基本的DC,低速数字电路的功能,以及其它一些容易测试或者必须测试的项目.凡是在FT阶段可以测试,在CP阶段难于测试的项目,能不测就尽量不测.一些类似ADC的测试,在CP阶段可以只给几个DC电平,确认ADC能够基本工作.在FT阶段再确认具体的SNR/THD等指标

3)由于CP阶段的测试精度往往不够准确,可以适当放宽测试判断标准,只做初步筛选.精细严格的测试放到FT阶段

4)如果封装成本不大,且芯片本身良率已经比较高.可以考虑不做CP测试,或者CP阶段只做抽样测试,监督工艺

5)新的产品导入量产,应该先完成FT测试程序的开发核导入.在产品量产初期,FT远远比CP重要.等产品逐渐上量以后,可以再根据FT的实际情况,制定和开发CP测试

2.3 预烧炉 Burn in

存储产品在FT 测试后, 会到预烧炉里去 burn in, 目的是在高温高压的恶劣环境, 把早夭的产品暴露出来, 降低客户使用时的 fail rate.

2.4 电性抽测

在每一轮FT 测试后, 都会进行电性抽测, 俗称 QC, 这个是抽测, 不是测试所有的。主要是机台测试后,测试各项电流, 和未上测试机台测试前的电流对比, 如偏差较大, 需找到原因, 根据严重程度确定是否要重测, 如果严重需要 hold 住, 不能出货。

参考

1https://blog.csdn.net/weixin_52944590/article/details/121247487
2SSD主控芯片CP测试你真的知道么?
3谈谈CP和FT测试
4芯片测试的术语解释(FT、CP)

这篇关于[SSD 测试 1.4] 硬件测试之主控测试 (CP | FT) | 主控是如何保证品质的?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/739702

相关文章

Java中JSON格式反序列化为Map且保证存取顺序一致的问题

《Java中JSON格式反序列化为Map且保证存取顺序一致的问题》:本文主要介绍Java中JSON格式反序列化为Map且保证存取顺序一致的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录背景问题解决方法总结背景做项目涉及两个微服务之间传数据时,需要提供方将Map类型的数据序列化为co

Linux查看系统盘和SSD盘的容量、型号及挂载信息的方法

《Linux查看系统盘和SSD盘的容量、型号及挂载信息的方法》在Linux系统中,管理磁盘设备和分区是日常运维工作的重要部分,而lsblk命令是一个强大的工具,它用于列出系统中的块设备(blockde... 目录1. 查看所有磁盘的物理信息方法 1:使用 lsblk(推荐)方法 2:使用 fdisk -l(

python多线程并发测试过程

《python多线程并发测试过程》:本文主要介绍python多线程并发测试过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、并发与并行?二、同步与异步的概念?三、线程与进程的区别?需求1:多线程执行不同任务需求2:多线程执行相同任务总结一、并发与并行?1、

Linux区分SSD和机械硬盘的方法总结

《Linux区分SSD和机械硬盘的方法总结》在Linux系统管理中,了解存储设备的类型和特性是至关重要的,不同的存储介质(如固态硬盘SSD和机械硬盘HDD)在性能、可靠性和适用场景上有着显著差异,本文... 目录一、lsblk 命令简介基本用法二、识别磁盘类型的关键参数:ROTA查询 ROTA 参数ROTA

JAVA保证HashMap线程安全的几种方式

《JAVA保证HashMap线程安全的几种方式》HashMap是线程不安全的,这意味着如果多个线程并发地访问和修改同一个HashMap实例,可能会导致数据不一致和其他线程安全问题,本文主要介绍了JAV... 目录1. 使用 Collections.synchronizedMap2. 使用 Concurren

Linux下如何使用C++获取硬件信息

《Linux下如何使用C++获取硬件信息》这篇文章主要为大家详细介绍了如何使用C++实现获取CPU,主板,磁盘,BIOS信息等硬件信息,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录方法获取CPU信息:读取"/proc/cpuinfo"文件获取磁盘信息:读取"/proc/diskstats"文

SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程

《SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程》本文详细介绍了如何在虚拟机和宝塔面板中安装RabbitMQ,并使用Java代码实现消息的发送和接收,通过异步通讯,可以优化... 目录一、RabbitMQ安装二、启动RabbitMQ三、javascript编写Java代码1、引入

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

C#实现获取电脑中的端口号和硬件信息

《C#实现获取电脑中的端口号和硬件信息》这篇文章主要为大家详细介绍了C#实现获取电脑中的端口号和硬件信息的相关方法,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 我们经常在使用一个串口软件的时候,发现软件中的端口号并不是普通的COM1,而是带有硬件信息的。那么如果我们使用C#编写软件时候,如