软件和芯片密不可分,但软件是抽象的,芯片是物理的,二者如何建立关系?这让我们很快想到计算机的底层——二进制的0和1。可是,0和1仍然是抽象的概念,芯片或者计算机内部也不存在0和1,但人们很聪明地想到一种对应方法,就是用电压水平来表示,比如,高电平为1,低电平为0。于是,将抽象的软件映射为01字符串(c之类的高级语言编译后就是01机器码),物理的芯片又可以体现不同的电压水平。这样,我们就将软件与芯片建立起了联系,或者说将人类世界和计算机世界建立起了联系。
上面的联系还是稍显跳跃和粗糙,接下来,还要解决两个连续的问题:- 问题二:映射为01字符串后如何在芯片中体现为电平组合(电路)?
我们先看问题一,复杂的软件如何与简单的01映射?但这个问题可以指向软件在芯片中的两个基本行为:如何存储和如何运算。文字呢,比如,a、b、c分别用01000001、01000010、01000011表示(ascii码),同样的道理,其他字母或者汉字也都可以用01排列组合来表示。声音、图片和视频会略微复杂些,用到的办法就是“离散化”。比如,对声音可采集离散的波形,对图片可采集离散的像素点,而视频就是声音和连续图片的结合。所以,只要有足够多的01字符串去排列组合,我们不但能表示软件,还能表示软件背后的世间万物。
算术运算是指对数值进行计算的运算,包括加、减、乘、除等基本运算。逻辑运算则是基于布尔逻辑的运算,用于处理二进制数据(0和1)的位运算和逻辑关系判断,如与、或、非、异或等。
既然我们进入到了0和1的世界,也就看看0和1的运算。学过布尔逻辑的我们,稍加思考,大约会发现这里的算术运算可以用逻辑运算来替代,也就是异或(相同为0,不同为1)逻辑得出加法位,与逻辑得出进位位(实际上,这是一个半加器)。再往后,加法作为运算的基础,可以在扩展后处理更复杂的运算。走到这里,我们已经走完了抽象的部分,下一步就要迈进物理世界,也就是问题二,映射为01字符串后如何在芯片中体现为电平组合(电路)?实际上,结合上一小节的叙述,我们知道我们很难直接处理01,而需要通过布尔逻辑将无意义的01有意义化,问题二就转变成了布尔逻辑如何用电路实现。
初中物理学过基础电路图,我们可以用如下导线、开关、灯泡组成的简单的电路(这种用来表示布尔逻辑的电路就是逻辑门)来表示布尔逻辑。理论上,我们用无数这些电路就可以搭建一个芯片及一台计算机。不过,现实显然并非如此简单。接下来,我们就需要进入半导体时代了。我们都见过电路板,上面有印刷铜线,可以对应前述示意逻辑门的电路导线。还遗留一个难点是开关,我们总不能用这个闸刀开关吧,太复古了。其实吧,也不能说不能,世界上第一台可自由编程使用二进制数的z1计算机就是用不比闸刀开关高端多少的继电器来搭建的。继电器这种笨重且单一的东西实非长久之计,人类很聪明,也很幸运,发现了半导体,半导体具备整流效应(依赖于pn结),也就是单向导电性,这让半导体制作“开关”替代继电器成为可能。再加上半导体还有热敏、光生伏特与光电导这些效应,而且还具备稳定可靠、易于加工集成及适合大规模生产等特点,这都让半导体成为“开关”的不二选择,也最终成为计算机的基石。在这些半导体“开关”或者“开关”组合里,最出名的莫过于晶体管这个芯片的基础元件,比如,美光公司的2t闪存芯片nand,单芯片就使用了5.3万亿个晶体管。以上算是讲了芯片的基本原理,到此,终于快摸到芯片的边了,但我们还没讲芯片的基本概念。我讲概念比较喜欢讲狭义的,也就是业内谈到它,脑子里共同浮现出来的那些东西,这才是概念更重要的意义。芯片,实际上是将电路中的元件,如晶体管、二极管、电阻、电容和电感等,以及它们的连线,按照一定规则在非常小的半导体硅片上实现互联互通。这样,原本需要大量分离电子元件才能实现的功能,被高度集成在了一个微小的”片“上,形成了一个功能完整的电子系统。由于它的体积小、重量轻,但功能强大,因此被称为“芯片”。通过以上的描述,我们比较容易引出芯片更学术的概念——集成电路,但更广义的芯片还包括传感器、分立器件、光电器件产品等。车规级芯片也是个比较热的概念,何为车规?
4.1 aec-q100
顾名思义,就是满足汽车的标准与规范。又有哪些规范呢?
通常,我们可以用16949、26262、21434与aec-q100这四大标准作为车规芯片的门槛。
前三个标准属于行业性或系统性的汽车行业规范,分别面向质量体系、功能安全、信息安全,并不专门面向芯片,而aec-q100 算是芯片专属。
aec-q100的全称是“基于汽车应用中集成电路的失效机理的应力测试认证”,本质是测试标准,主要从硬件层面确认集成电路在不同汽车环境中是否具有足够的可靠性。比如,这些测试包括温度循环、湿度测试、振动测试、电气应力测试等。
需要注意的是,aec-q100标准是针对集成电路(如mcu)的,但这个家族还包括一系列其他标准,分别是:
aec-q101: 分立半导体器件(如三极管、二极管)
aec-q102: 分立光电半导体器件(如led)
aec-q103: 传感器(如加速度或温度传感器)
aec-q104: 多芯片组件(其他标准未涵盖的多芯片组件)
aec-q200: 无源器件(如电容、电阻、电感)
4.2 芯片级别
说完车规级,再看看其他“规”。
延续车规这个应用场景分类逻辑,我们可以将汽车芯片分为以下5个级别。
当然,以上各个级别的芯片之间并没有严格的界线。比如,某些高端的消费级芯片可能采用了与汽车级的制程技术,或者汽车上某些芯片仍然是消费级的。
万亿(12个0)、纳米(十万分之一头发丝),这都是用来描述芯片的单位,简直是“丧心病狂”的尺度。在如此尺度下,将芯片制造出来也是难以想象的。所以,我们把芯片制造比作是在拇指上建造一座超级城市,并不为过。
5.1 晶圆制造
首先,我们需要一片非常纯净的单晶硅作为“地基”,就像建造城市需要坚实的土地一样。这片单晶硅的纯度要求极高,甚至要达到99.999999999%(即11个9)以上。
也就是说,这意味着每一万亿个硅原子中,只允许有一个杂质原子。为了达到这样的纯度,原材料需要经过一系列复杂的物理和化学提纯过程。
提纯完成后,将纯净的硅材料放入高温炉中,通过特殊的方法(如化学气相沉积)将其转化成单晶硅棒。
然后,使用精密的切割设备将这些单晶硅棒切割成薄薄的圆片,也就是晶圆。这些晶圆的厚度通常只有几百微米,相当于头发丝的直径。
5.2 晶圆加工
接下来,我们需要在晶圆上建造城市的“道路和建筑”,也就是电路和电子元器件。这个过程包括光刻、刻蚀、离子注入等步骤,每一步都需要精确控制各种参数和条件。
例如,在光刻步骤中,我们需要使用特殊的光刻胶和掩膜版,通过紫外线曝光将电路图案“印”到晶圆上。这个过程中,光刻胶的厚度、曝光时间等参数都需要精确控制,以确保图案的清晰度和精度。
5.3 封装测试
最后,当城市的“道路和建筑”都建造完成后,我们需要进行“装修和验收”,也就是封装和测试。
封装是将芯片放入保护壳中,并连接引脚以便与外部电路连接,以保护内部的电路不受外界环境的影响。
同时,我们还需要对芯片进行功能和性能测试,确保其符合规格要求。
先从最基础的0和1讲起,揭示了软件与芯片之间的紧密联系。在数字电子中,高电平和低电平分别代表1和0,这种简单的对应关系为软件与芯片的交互提供了基础。
接着,从存储和基于布尔逻辑的运算解释了软件与芯片的交互,并引出逻辑门和最适合逻辑门开关的晶体管。
以上算是芯片的基本原理,进一步地,我们明确了芯片的来历和学术性概念——集成电路。
最后,从晶圆制造、晶圆加工、封装测试这几个角度概要介绍了芯片的制造过程。