文章结构前端
导读
android
一颗芯片是怎么诞生的?
后端
一款CPU是如何设计出来的?
服务器
设计一款CPU到底难在哪里?微信
导读
网络
这几天,刷遍朋友圈的新闻就是:中兴被“一剑封喉”,被美国中止一切芯片进口和系统软件服务。这对于芯片依赖美国的中兴来讲,基本上一会儿就处于休克状态,上下游的生产线面临停产,8万员工前途未卜。中兴事件给IT/IC届带来的冲击,甚至给普通百姓带来的冲击至关大,以致于各个自媒体、公众号、新闻APP这几天的新闻全是跟芯片、半导体、集成电路相关的话题:芯片是啥?中美芯片差距到底有多大?各类段子也随之诞生:一样一堆沙子,有人拿它作出了芯片,有人拿它作成了砖,把房价炒上了天......,新闻多了,不少消息也愈来愈扯淡,不少看了实在无语,自卑和自大每每都来源于无知。今天就综合一下行业知识、参考网上的新闻,给你们扫盲一下集成电路相关的知识,对于嵌入式开发者来讲,学习一下集成电路领域的知识,对本身的知识体系和对嵌入式行业的理解也有很大的帮助。架构
一颗芯片是怎么诞生的?app
上面的段子说得没错,芯片的原材料就是沙子,今天就先跟你们科普一下:一堆沙子是怎么变成咱们手机里的一颗芯片的。框架
芯片属于半导体,半导体是介于导体和绝缘体之间的一类物质。元素周期表中的硅、锗、硒的单质都属于半导体。除了这些单质,经过掺杂生成的一些化合物,也属于半导体的范畴。这些化合物在常温下可激发载流子的能力大大加强,同时弥补了单质的一些缺点,所以在半导体行业中也普遍应用,如砷化镓、磷化铟、碳化硅、氮化镓等。这几天集成电路概念股大涨,看到有人又炒做石墨烯,估计想趁机炒做一把。石墨烯其实不能算做半导体,虽然它可能经过掺杂实现半导体,但目前主要仍是当导体使用,好比在充电电池中的应用。在这些半导体材料中,目前只有硅在集成电路中大规模应用,充当着集成电路的原材料。在天然界中,硅是第二大丰富的元素,好比沙子,就含有大量的二氧化硅。因此说制造芯片的原材料是极大丰富,取之不尽的。ide
如何从沙子中提取单质硅呢,这就牵涉到一系列化学反应,具体不表。提取的硅纯度越高,质量越高。提取出的单晶硅根据不一样的需求和工艺,作成不一样的尺寸,常见的如6寸、8寸、12寸等。
接下来,把这些硅棒像切黄瓜同样,切成一片一片的。每一片咱们称为:晶圆(wafer)或者翻译为晶元。晶元是设计集成电路的载体,咱们设计的电路,最后就要在晶元上实现。每个晶元上,能够实现上百上千个芯片电路,以下图,每个小格子均可以看做是一个芯片电路的实现。接下来还要将这些芯片电路切割、封装、引出管脚,才能焊接到咱们的开发板上,作成整机产品。
那在晶元上是如何实现电路的呢?将晶元拿到显微镜下观察,你会发现,里面全是密密麻麻的3D电路,犹如一座巨大的迷宫:
要想弄明白在晶元上是如何实现咱们设计的电路,就须要一点电子电路的基础知识了。电路都是由大量的三极管、二极管、CMOS管、电容等元器件组成的,咱们搞懂了一个CMOS管是如何在硅片上实现的,也就搞懂了整个电路在晶元硅片上的实现原理。这些元器件的实现原理,其实就是PN结的实现原理。而PN节的工做原理也是半导体的基本工做原理。PN结是构成二极管、二极管等半导体器件的基础。想要了解PN节的导电原理,还须要稍微了解一下金属的导电原理。
咱们知道,一个原子由质子、中子和核外电子组成:中子不带电,质子带正电,原子带负电,整个原子显中性。根据电子的能级分布,一个原子的最外层电子数为8时最稳定。对于钠原子,核外电子层分布为2-8-1,最外层1个电子,能量最大、受原子核的约束力小,因此最不稳定,受到激发容易发生跃迁,脱离钠原子,成为自由移动的电子。这些自由移动的电子在电场的做用下,就会发生自由移动,造成电流,这就是导体导电的原理。不少金属元素最外层的电子数小于4个,容易丢失电子,因此容易导电,是导体。而对于氯原子,最外层7个电子,倾向于捕获一个电子,造成最外层8个电子的稳定结构,氯原子不能产生自由移动的电子,因此不能导电,是绝缘体。
半导体元素,通常最外层4个电子,比较特殊:这些原子之间每每经过“共享电子”的模式存在,多个原子之间分别共享其最外层的电子,经过共价键造成稳定的结构。
可是稳定也不是绝对的,当这些电子收到能量激发时,也会发生跃迁,成为自由移动的电子,同时在共价键中留下相同数量的空穴。这些自由移动的电子很是少,在电场的做用下,也会发生移动,造成电流;同时,临近空穴的的电子也很容易跳过去填补这个空穴,形成空穴的移动,空穴带正电荷,空穴的移动也会造成电流。
所以,半导体导电有两种载流子:自由电子和空穴。可是由于硅元素的特性,只能生成极少数的自由电子和空穴,这就决定了半导体没法像金属那样导电,但也不像绝缘体那样一点也不导电。然而正是这种特性,才促成了半导体的飞速发展。
既然半导体内自由电子和空穴浓度很小,导电能力弱,那咱们能不能想办法增长两种载流子的浓度呢?浓度上去了,导电能力不就加强了吗?办法是有的,那就是掺杂。咱们能够在一块半导体两边掺入两种不一样的元素:一边掺入三价元素,如硼、铝等。硼的电子分布为2-3,最外层3个电子,在和硅的最外层的4个电子生成共价键时,缺乏一个电子,因而从临近的硅原子中夺取一个电子,所以产生一个空穴位。这种掺杂的半导体称为空穴型半导体,简称P型半导体。
咱们在半导体的另外一边掺杂一些五价元素,好比磷元素。磷原子最外层有5个电子,在和硅原子的最外层4个电子生成共价键时,多出来一个电子,成为自由移动的电子,这种半导体称为电子型半导体,简称N型半导体。
咱们在一块导体的两边掺入不一样的元素,使之成为不一样的半导体,一边为P型,一边为N型。
在二者的交汇处,就会造成一个特殊的界面,称为PN结。理解了PN结,你也就理解了半导体的核心原理,接下来咱们看看PN结里到底有什么名堂。
首先,因为一块半导体两边空穴和自由电子浓度不一样,所以在边界处会发生相互扩散。分别越过边界,扩散到对方区域的空穴和自由电子在边界处互相中和掉,P区边界处的空穴被扩散过来的自由电子中和掉后,剩下的都是不能自由移动的负离子;一样,在N区边界处留下的都是正离子,这些正负离子因为不能移动,造成了空间电荷区和耗尽层。同时会在这个区域内造成一个内建电场。这个内建电场阻止P区的空穴继续向N区扩散,同时阻止N区的自由电子向P区扩散,多子的扩散和和少子的漂移从而达到一个平衡。这个区域就是咱们所说的PN结。载流子的移动此时已达到平衡,所以流过PN结的电流也为0。
这个PN节看起来也没啥,但它有一个特性:单向导电性。正是这个特性,树立了它的牛X地位,也构成了整个半导体大厦的基础。咱们先看看这个特性是怎么实现的:当咱们在PN结两端加正电压时,P区接正极,这时候就会削弱PN结的内建电场,平衡破坏,空穴和自由电子向两边扩散,造成电流,呈导电特性。当咱们加反向电压时,内建电场加强,阻止了载流子的扩散,不会造成电流,因此呈现高阻特性,不导电。
不管二极管、三极管仍是MOSFET场效应管,其内部都是基于PN结原理实现的,咱们搞懂了PN结的原理,接下来咱们就看看如何在一个晶元上实现PN结:
这就涉及到集成电路工艺的方方面面了,包括光刻、刻蚀、离子注入、薄膜沉淀等步骤。为了简化流程,方便理解,咱们就讲讲核心的两个步骤,光刻和离子注入。离子注入就是掺杂,根据前面的理解,就是在硅中掺入三价元素硼和五价元素磷,生成PN结构成的各类元器件和电路。光刻就是在晶元上给后续的离子注入操做开凿各类掺杂窗口。
原理很简单,但若是咱们在一个硅衬底上,要实现千万门级的电路,上亿个晶体管,难度就比较大了。尤为是纳米级的电路,好比28nm、14nm,要将千万门级晶体管都刻在一个小小的晶元上,这就要求每一个元器件尺寸要很是小,这时候光刻机登场了,光刻机主要用来将你设计的千万门级电路映射到晶元上。这对光刻机的要求很是高,要很是精密。所以光刻机很是贵,最牛逼的就是最近网上热炒的荷兰光刻巨头ASML,一台光刻机1亿欧元,不少代工巨头好比台积电、三星、Intel都是其客户。
光刻机的做用就是根据掩模,开凿各类掺杂窗口,而后经过离子注入,生成PN节,构建千千万万个元器件。电路中的元器件都是经过这种复杂的工艺、生成不可胜数的PN结构成的。同时,离子注入也是一门大学问,网上PO一张关于离子注入的公式,感觉一下它的魅力:
这些工艺完成后,在一个晶元上就会有成百上千个芯片的原型:芯片电路,用专业术语就叫Die。
而后还要通过切割、封装,引出管脚、测试,才会变成市面上咱们看到的芯片的样子
一款CPU是如何设计出来的?
前面一段,咱们了解了芯片的制造过程,也就是如何从沙子中提取硅、把硅切成片,在片上经过离子注入实现PN结、实现各类二极管、三极管、CMOS管、从而实现千万门级大规模集成电路的大体流程。接下来,咱们继续了解一下,一款CPU是如何设计出来的。集成电路设计通常分为模拟IC设计、数字IC设计以及数模混合等。而数字IC设计,好比设计一款ARM Soc CPU芯片的基本流程以下:
1)设计芯片规格:根据需求,设计出基本的框架、功能、模块划分。有些复杂的芯片可能还须要建模、使用MATLAB等工具进行仿真。
2)HDL代码实现:使用VHDL或Verilog语言将要实现的硬件功能描述出来、经过EDA工具不断仿真、修改,验证直至逻辑功能彻底正确。这种仿真咱们通常称为前仿,只验证逻辑功能是否正确,不考虑延时。这个阶段也是最重要的阶段,通常会花费大量的时间、验证工程师不断验证芯片功能的正确性。有时候为提升效率,也会使用硬件仿真,经过FPGA平台进行验证。固然,这也是数字IC验证工程师干得活。
3)逻辑综合:仿真验证经过后,再使用专门的EDA工具将HDL代码转换成逻辑门电路。专业术语叫作将HDL代码翻译成门级网表(netlist)。在综合过程当中,须要设定一些约束条件,让综合出来的电路在面积、时序等参数上知足要求。这个阶段的仿真通常称为后仿,要考虑延时等因素,跟实际芯片已经很接近了。
网表文件用来描述电路中元器件之间的链接关系。有数字电路基础的同窗可能都会知道,任何一个逻辑关系或运算均可以转化为相应的门级电路来实现。而网表就是用来描述这些门级实现电路的链接信息。
还须要注意的一个地方是:门级电路是由不一样的晶圆厂,也就是芯片代工厂以工艺库的形式提供的,好比中芯国际、台积电等。若是你设计的芯片要台积电代工制造,工艺要求是28nm,那么你在设计芯片时,台积电会提供给你28nm级的工艺库,你综合后生成的电路参数跟台积电生产芯片使用的工艺参数是一致的。
4)仿真验证:对生成的门级电路进行各类静态时序分析、验证。经过后,整个前端设计就结束了:从RTL代码到生成门级网表电路。
5)后端设计
经过前端设计,咱们已经生成了门级网表电路,但这跟实际的芯片电路还有一段距离,咱们还须要对其不断完善和优化,进一步设计成物理版图,也就是代工厂作掩膜须要的版图。后端设计包括不少步骤,通常包括:
DFT:designed for test,可测性设计。芯片内部每每会自带测试电路,在设计中插入扫描链。
布局规划:各个IP模块电路的摆放位置、时钟线综合、普通讯号线的布线
版图物理验证:设计规则检查、连线宽度、间距是否符合工艺要求、电气规则简则等等。
物理版图验证ok后,会将这个物理版图以GDSII文件格式交给芯片代工厂(foundry),至此,整个芯片设计仿真验证流程结束,咱们称为tap-out。
物理版图是由咱们设计的电路转化而成的一系列几何图形,如上图,跟PCB版图相似,也分为好多层。物理版图包含集成电路尺寸大小、各层的拓扑关系等。代工厂会根据这些信息来制造掩模、而后使用光刻机,经过这些掩模在晶元的硅片衬底上开凿出掺杂窗口,接着就对硅片进行离子注入,掺杂不一样的三价元素和五价元素,生成PN,进而构成各类元器件、电路。再经过刻蚀等工艺,能够在晶圆硅片上生成多层立体的3D电路结构。
好了,到了这里,咱们已经把整个芯片设计、制造的大体流程给你们讲解完了,看起来很简单,其实集成电路设计制造的每一个环节,都有极高的技术含量,集成电路行业是一个高度专业分工的行业,每一个环节都有不一样的行业巨头把守,从芯片设计、制造、各类EDA工具、IP核、光刻机、刻蚀机,每一个环节都有很是专业的制造商、服务商、EDA工具商,精确严谨地配合,同时也分享着IC设计产业链上的超额利润。
设计一款CPU到底有多难?
网上不少媒体甚至用表格列举了中国芯片的依赖率及自给率,除了消费电子领域的应用处理器AP外,其它不少领域的自给率都是0%。这也从一个角度说明:咱们集成电路发展的空间无比巨大、能够想象的空间很广阔。
差距比较大的地方,主要在模拟、射频、AD转换等领域,这些基本上被欧美一些巨头垄断,更悲催的是,不少核心领域如今已经禁止华人从事这方面的工做,可见美国政府对这些高精尖的领域技术保护很是重视。而在一些消费电子领域,因为ARM的IP受权模式,大大下降了SOC的设计门槛,再加上半导体产业成熟严格的分工体系:设计、代工、封装测试一条龙,因此中国最近几年在消费电子领域SOC设计方面发展迅速,涌现出了不少芯片和公司,好比海思、展讯、联芯、全志、瑞芯微等。从手机基带、RF到AP都慢慢缩小了与国际半导体巨头的差距。好比海思的麒麟系列,对标高通的骁龙系列,性能其实已经不相上下。
在ARM构建的生态和商业模式下,SOC芯片设计企业能够跟这些芯片巨头有同台竞争的机会,至少能参与进来:你牛X,能够拿到ARM的指令集受权,作本身的微架构,我没这个实力,搞个低端领域的,搭个积木仍是绰绰有余的。嵌入式市场,不像PC X86一统天下,它是分散的、多需求的、难以垄断的。因此这也就给不少作ARM AP芯片的公司不少机会,你作手机、我作平板、智能电视、网络盒子、游戏机、挖矿机,只要找准一个方向,用低成本优点,就能够活下来,再图技术慢慢积累和发展。因此在ARM AP这一块,你会看到有不少公司,之后还会出现不少公司,这方面应该最快能知足芯片的自给,固然,这也给嵌入式开发者提供大量的工做岗位。
在PC和服务器领域,可能就没这么容易突破了。咱们知道,在X86领域,是Intel和AMD的天下。设计一款X86架构的芯片,到底难不难呢?其实不算难,国内能找出很多公司能够设计出来。那难的是什么呢?是生态和专利受权。Intel在X86领域能够说是一家独大,在它的专利保护下,基本上就封死了你想本身设计X86架构CPU的道路,钱再多也不让你作,不给你专利受权。AMD公司仍是美国为了防止垄断,才促使Intel跟其专利交叉受权,达到一个平衡,不过AMD如今貌似也过得不轻松,在CPU这块被Intel压得也是寸步难行。除此以外,还有一家公司,台湾的威盛电子:VIA,就是电脑一开机显示VIA标志的,VIA也有一些X86专利,也得到Intel专利受权,可是作CPU貌似也很艰难,在芯片方面的盈利还不如旗下的酒店业务赚得钱多。其实这也没办法,赢者通吃,后面的可能连汤都喝不到。看网上的新闻好像跟上海国资合股成立兆芯,研究X86 CPU和显卡,国家砸了很多钱,不知道能不能趟出一条路来。
跟兆芯对标的国内芯片公司,有一家比较有名:龙芯。龙芯走的是MIPS路线。MIPS跟ARM、X86同样,也是一种指令集,也是当前世界上还在存活状态的指令集,跟ARM、X86能够说是三足鼎力吧。听说,龙芯当年500万拿到MIPS指令集的永久受权,而后本身不断添加、完善指令集,造成了本身的指令集。龙芯的优点是MIPS有了必定的生态市场,能够没必要从零开始搭建本身的生态,有利于本身CPU的推广。最新研发的微架构GS464E根据网上的相关资料,已经超越Intel的i3架构,跟i5稍有差距,但同时已经超越了同时期的Intel Atom、VIA Nano、ARM Cortex-A57等低功耗架构。
这里得给你们普及一下什么是指令集和微架构。指令集,你们学过汇编语言的可能都知道一些汇编指令,这些汇编指令其实就是指令集的助记符,咱们设计一个CPU架构,确定要设计一系列指令,这些指令集能够看作是一个标准,咱们在设计CPU硬件电路时就是根据这些指令集,去设计一些指令译码、执行电路,执行咱们的指令集。那这个根据指令集设计的CPU硬件电路就是微架构。不一样的CPU架构,指令集是不同的,这就致使了,不一样的CPU架构,须要的编译环境、开发环境是不同的。好比ARM架构,咱们须要开发一个编译器,将咱们的C语言程序翻译成ARM的指令集,而后才能在ARM架构的CPU上运行。而对于X86平台,咱们须要开发另一个编译器,将C语言程序翻译成X86指令,而后才能在X86平台上运行。为何在X86平台上不能运行ARM指令呢?很简单,由于CPU硬件电路在设计时是根据X86指令集设计的,只支持X86指令的运行,不支持ARM指令,没法运行。
由此,咱们能够看到,不一样的指令集,不一样的CPU架构,就须要不一样的编译器和开发环境,由此也就造成了不一样的软件生态。对于不少芯片设计者来讲,开发一个指令集并不难,如今国外甚至已经有开源的了,你们到Linux内核源码的arch目录下面能够看看,有太多的架构了。根据这些指令集设计一个微架构,设计出一个CPU也不难。难的是什么呢?难的是你要构建出跟你的CPU配套的一系列生态,好比编译器,你要本身开发,大量的应用软件你也要本身开发,不然谁会用你的CPU呢?这天大的工做量根本不是一个公司或团队能完成的,须要一个产业链的完美配合。因此,咱们能够看到,就算你研发出了本身的CPU,要想推广起来,构建本身的生态,很是困难。推广困难就难以盈利,难以盈利就很难继续迭代下一代的产品,由此造成负反馈,若是没有背后资金或者国家支持,真的很难坚持下去。好比之前在学校曾参与过一个项目:设计一款基于某种自主架构的SOC。那这个项目须要多少人配合呢?芯片设计这方面的人不说,光软件方面就须要很多:编译器工具须要本身开发,这个工做量就忒巨大,芯片流片成功后,Linux内核、android系统须要本身移植,各类库,好比C库也须要本身移植,包括上面的应该程序、Java虚拟机等等,工做量巨大。后期系统软件,从驱动层、中间层到应用层,还须要不断针对这种架构进行优化。就算优化完美,没有大问题,还要推广,若是没有不少平常的应用加持,构建生态也很难。赚不到钱,性价比不划算,别人跟着一块儿构建生态的欲望也就不大。
综上,咱们能够看到,设计一个CPU,从技术上讲并不难。但从商业或者说生态上想成功就很难:别人已经构建好的生态红利,会经过专利壁垒不让你进;而你从零开始构建全新的生态,没有了这种先发优点,很难很难。折中之策就是你想办法兼容这个生态。好比android手机,如今绝大多数APP都是基于ARM平台,Intel想推广本身的atom平台,那就须要大量的APP能够运行到本身的atom平台上,这就须要它本身的X86平台去兼容这些app。包括前几年,Intel这么牛逼的行业巨头也肯放下高贵的身姿跟深圳的一些白牌、山寨厂商打成一片,主要缘由就是,Intel对ARM构建的生态也是无从下手,深挖洞、广积粮、树技术壁垒、单打独干已不适应行业玩法,也想本身构建这个生态,市场效果如何,还有待时间检验。
设计一款CPU,除了后续推广、生态构建比较艰难外,在设计过程当中,其实不少核心IP、技术模块、EDA开发环境也须要外援,好比设计一款手机芯片,CPU须要向ARM公司受权,各类控制器IP若是本身研发不了,也须要购买,这些研发IP的公司通常分布在北美、欧洲、以色列等国家,而中国、台湾和韩国的主要厂家主要基于ARM架构和各类IP搭建应用处理器SOC,因此搞嵌入式的每每会看到,不少处理器都是东亚国家、美国设计,可是其实那些背后卖IP的公司倒赚了很多,由于不少作SOC设计的购买IP受权其实要交不少钱,它们只是赚了一些“组装费”。这还不算,在设计CPU的过程当中,各类仿真设计、包括前端、后端设计、前仿后仿、都须要EDA开发环境支持,都须要花钱购买,或者花钱买培训。之前工做过的一家公司,貌似什么后端设计仍是后端仿真的一款EDA软件,使用的是欧洲一家公司开发的,光软件版权费不说,他们过来培训,一个小时就是3000欧元,吃饭时间也要算在内,就这么刁,没办法。就此一家,不买拉倒。由此能够看到,芯片行业咱们如今还至关于富士康阶段,赚取一个“加工费”而已,后面的道路,再加上各大芯片巨头的技术壁垒和封锁,任重而道远。
与此同时,半导体行业也是一个忒烧钱的行业,不像搞互联网,一台电脑一根网线,就能够开干。芯片行业到处都须要钱、各类仪器、设备、EDA软件、流片、封装测试都须要大把的钱,并且流片风险很大,不少芯片前几回流片还不必定成功,须要不断修改bug,不断完善。而流一次片就须要几百万,因此对于不少小公司来讲,若是没有足够的资金支持,前几回流片不成功的话,基本上就黄了。因此,这也是为何除了国家大基金,不少民间资本不肯意进入的缘由:投资周期长、风险大。不如投资互联网、金融P2P,共享单车,搞搞外卖:风险小、收益快、容易割韭菜、容易收割各类智商税。然而,对于一个国家来讲,若是人人都想短平快,搞金融,玩庞氏资本游戏,不愿投入时间、精力和资本去从事基础领域的研究,那将来会有更多的地方被卡脖子,就像中兴同样,一剑封喉。
微信公众号(微博):宅学部落
嵌入式技术交流群:475504428