01、Java JUC 源码分析 - 计算机基础-CPU制造
这系列旨在总结java并发编程中的一些原理、工具、技巧和一些注意事项等,在开始Java的部分之前,会先花一些篇幅总结计算机的一些基础,别是CPU和内存部分,以帮助后面理解一些原理性的东西。
一、简述
计算机从上个世纪被发明后,由第一代的电子管计算机时代到现在的大规模集成电路,体积是越来越小,性能则是越来越强悍。我们都知道,计算机系统的硬件结构主要由几部分组成:控制器、运算器、存储器和输入、输出设备等,各个部件之间通过系统总线联系起来协同工作。
控制器和运算器就是CPU的组成部分(还有寄存器组),控制器主要负责协调工作,运算器则负责计算机的算术运算和逻辑运算。CPU本身其实就是一块大规模的集成电路,我们现在主要介绍这一部分的内容。
二、制造
硅(Si),是一种非金属元素,它具有半导体的性质,适合于制造各种微小的晶体管,是目前最适宜于制造现代大规模集成电路的材料之一。也是我们现阶段生产CPU、GPU等芯片的主要材料,而且其在地壳中含量很高,我们甚至都可以直接从沙中提取。
但是在制造产业中,对硅的纯度要求是很高的,所以在使用之前,我们需要进行硅的提纯。首先通过特殊方法(可百科查看)制造出单晶硅锭,然后将其整形成一个圆柱体,将其切割成片,成品就叫做晶圆,这个晶圆才是制造芯片的直接材料。
当然,得到的晶圆表面并不是光滑的,还需要一些操作,比如研磨抛光加上一些化学方法等,使其符合标准。到现在CPU的基础材料就准备好了。接下来的主要操作就是涂抹光刻胶,光刻胶是一种对光线、温度等都十分敏感的材料,我们用它将晶圆做一层"包装",这个是整个制造工艺的基础。
将下来就是非常复杂的光刻步骤。我们事先会准备好掩模板,掩模板上有设计好的电路图案。所谓光刻,简单说来就是通过紫外线配合透镜,将掩模板上的电路图"印"在晶圆上的光刻胶上。这个过程说起来很简单,但是其难度却很高,光波长和透镜数值孔径都会影响到结果。之后就是通过化学方法溶解部分光刻胶,然后配合蚀刻药剂进行蚀刻,最后清除光刻胶。
由于目前的晶体管设计,不可能一次就能完成所需的图形制作,会对上述操作重复多次,中间还会重复分层,生长硅氧化物等,以获得最终的3D晶体管。经过一系列复杂的工艺,上亿的晶体管制作完成,但接下来还需要将它们连接起来,再经过多轮复杂工艺,最终形成多层连接电路图。
后面就是我们的测试划片阶段了。就是把晶圆上的每个芯片通过特殊的划刀切分下来,每一个单元就是我们所熟知的内核。到现在我们知道,从不纯的硅到单晶硅锭,再到晶圆。不论是原材料还是中间的工艺影响,都会导致一个晶圆上的不同芯片完美程度不一致,甚至由于要求过于苛刻,部分单元会直接被残忍的丢弃。
芯片检测完成后,还需要进行装片,然后和基板上的触点结合,在核心处涂上散热硅脂(可能大多数同学都自己涂过硅脂),做一些保护措施就成了我们一颗完整CPU了。
不同于之前的晶圆测试阶段,当CPU生产完毕后,会对每颗芯片进行多方位的测试,比如稳定频率、发热、功耗等等,如果这时候发现内部有一些硬件上的缺陷,可以做一些硬件屏蔽措施(类似于我们理解的磁盘坏道,可以将坏处隔离),最终划分出不同的等级,比如i3、i5等等。
三、总结
到这里,我们大致了解了从硅是怎么一步步制造出我们所熟知的CPU的,这一方面是对我们知识面的一个扩展,另外对我们以后理解计算机的行为是有一定帮助的。
我们记得制造过程中有一个很重要的步骤,就是掩模板上的电路图"拓印",这个电路图是CPU运作的逻辑基础,下面我们会一步步介绍到这一块儿的内容。