IBM在它位于纽约州奥尔巴尼(Albany)的芯片制造研究中心研发的2nm 芯片每平方毫米可容纳 3.33 亿个晶体管。如果是指甲盖大小(150mm²)的芯片,能容纳500亿个晶体管。
芯片的制造大概有如下步骤:
硅片的制备-->外延工艺-->热氧化-->扩散掺杂-->离子注入-->薄膜制备-->光刻-->刻蚀-->工艺集成等。
每一个步骤又又纷繁复杂的流程并且要求极高,想要保证上百亿个晶体管都是完好的是几乎不可能的事情。就从题主的所说的两方面回答一下这个问题:
这一个阶段也就是芯片tape out之后,应用到系统或者产品之前。
事实上,在现在的芯片设计中,在设计之初就已经为芯片的制造,测试,以及良率做考虑了。保证这一步能检测出芯片的缺陷,主要是DFT+ATE来保证。当然也有一些公司会做DFD和DFM。
DFT = Design For Test
DFD = Design For Debug
DFM = Design for manufacture
DFT指的是在芯片的设计阶段即插入各种用于提高芯片可测试性(包括可控制性和可观测性)的硬件电路,通过这部分逻辑,生成测试向量,使测试大规模芯片变得容易的同时,尽量减少时间以节约成本。
DFT--可测性设计,按流程划分,依然属于设计阶段(pre-silicon),只不过是为测试服务的。
而ATE(Auto Test Equipment )则是在流片之后,也就是post-silicon阶段。
ATE测试就是为了检查制造缺陷过程中的缺陷。芯片测试分两个阶段,一个是CP(Chip Probing)测试,也就是晶圆(Wafer)测试。另外一个是FT(Final Test)测试,也就是把芯片封装好再进行的测试。
CP测试的目的就是在封装前就把坏的芯片筛选出来,以节省封装的成本。同时可以更直接的知道Wafer 的良率。CP测试可检查fab厂制造的工艺水平。现在对于一般的wafer成熟工艺,很多公司多把CP给省了,以减少CP测试成本。具体做不做CP测试,就是封装成本和CP测试成本综合考量的结果。
一片晶圆越靠近边缘,die(一个小方格,也就是一个未封装的芯片)出问题的概率越大。测出坏的芯片根据不同坏的情况不同,也会分bin,最终用作不同的用途。
所以在芯片被做成成品之前,每一片芯片都是经过量产测试才发货给客户的。
就单个晶体管来看,在正常使用过程中,真的那么容易坏掉吗?其实不然。
硅由于物理性质稳定,而且用作芯片的硅是单晶硅,也很难发生化学反应,在非外力因素下,晶体管出问题的概率几乎为零。
即使如此,芯片在出场前,还要经过一项测试,叫“老化测试”,是在高/低温的炉里经过 135/25/-45摄氏度不同温度以及时间的测试,以保证其稳定性。
但是,耐不住有上百亿个晶体管啊...... 所以,还是有坏的概率的。
就算是某个晶体管坏了,就像其他答主所说,会引入容错性设计,容错性设计又可以从软件和硬件两个方面来实施。
比如多核CPU可以通过软件屏蔽掉某个坏的核心,ATE测试后根据不同缺陷分bin的芯片,也会用在不同的产品上,毕竟流片是十分昂贵的。比如Intel的i3,i5,i7等。当然,也不是所有的i3都是i5、i7检测出来的坏片。
再比如存储器中一般存在冗余的信号线和单元,通过检查发现有问题的单元,从而用冗余的模块替换有缺陷的模块,保证存储的正常使用。
比如下面橙色的为冗余的memory,红色的是坏的memory,我们便可以通过算法把红色memory的地址映射到橙色备用的一个memory上。
芯片测试是极其重要的一环,有缺陷的芯片能发现的越早越好。如果把坏的芯片发给客户,不仅损失巨大,对公司的声誉也会造成负面的影响。
在芯片领域有个十倍定律,从设计-->制造-->封装测试-->系统级应用,每晚发现一个环节,芯片公司付出的成本将增加十倍!!!
高质量的测试是由DFT,ATE,diagnosis,EDA等多方面协作完成的,尤其在超大规模集成电路时代,测试变得越来越难,越来越重要,其开销在整个芯片流程中也占有很大的比重。芯片作为工业皇冠上的明珠,所有电子系统的大脑,是万万不能出问题的!
往期精彩回答及文章: