谈到芯片,首先想到的一定是性能,功耗,价格,成熟度,生态圈兼容性等。但是只针对芯片本身的话,是看芯片内部有什么运算能力,比如处理器,浮点器,编解码器,数字信号处理器,图形加速器,网络加速器等,还要看提供了什么接口,比如闪存,内存,PCIe,USB,SATA,以太网等,还有看里面自带了多少内存可供使用,以及功耗如何。fwvednc
性能,对CPU来说就是基准测试程序能跑多少分,比如Dhrystone,Coremark,SPEC2000/2006等。针对不同的应用,比如手机,还会看图形处理器的跑分,而对网络处理器,会看包转发率。当然,还需要跑一些特定的应用程序,来得到更准确的性能评估。fwvednc
功耗,从high level来看,也分动态功耗和静态功耗。动态功耗,就是在跑某个程序的时候,芯片的功率是多少瓦。通常,这时候处理器会跑在最高频率,但这并不意味着所有的晶体管都在工作,由于power gating和clock gating的存在,有些没有被用到的逻辑和片上内存块并没在耗电。芯片公司给出的处理器功耗,通常都是在跑Dhrystone。这个程序有个特点,它只在一级缓存之上运行,不会访问二级缓存,更不会访问内存。这样得出的功耗,其实并不是包含了内存访问的真实功耗,也不是最大功耗。为得到处理器最大功耗,需要运行于一级缓存之上的向量和浮点指令,其结果通常是Dhrystone功耗的2-3倍。但是从实际经验看,普通的应用程序并不能让处理器消耗更高的能量,所以用Dhrysone测量也没什么问题。当然,要准确衡量整体的芯片功耗,还得考虑各种加速器,总线和接口,并不仅仅是处理器。fwvednc
在芯片设计阶段,最重要的就是PPA,它转化为设计,就是功能,性能,功耗,直接影响价格。其中,性能有两层含义。在前端设计上,它表示的是每赫兹能够跑多少标准测试程序分。通常来说,流水线级数越多,芯片能跑到的最高频率越高。可是并不是频率越高,性能就越高。这和处理器构架有很大关系。典型的反例就是Intel的奔腾4,30多级流水,最高频率高达3G赫兹,可是由于流水线太长,一旦指令预测错误,重新抓取的指令要重走这几十级流水线,代价是很大的。而它的指令又非常依赖于编译器来优化,当时编译器又没跟上,导致总体性能低下。而MIPS或者PowerPC的处理器频率都不高,但是每赫兹性能相对来说还不错,总体性能就会提高一些。所以性能要看总体跑分,而不是每赫兹跑分。fwvednc
性能的另外一个含义就是指最高频率,这是从Backend设计角度来说的。Backend的人只看芯片能跑到多少频率,频率越高,对实现的时候的timing, noise等要求不一样。频率越高,在每赫兹跑分一定的情况下,总体性能就越高。请注意对于那些跑在一级缓存的程序,处理器每赫兹跑分不会随着频率的变化而变化。而如果考虑到多级缓存,总线和外围接口,那肯定就不是随处理器频率线性增加了。fwvednc
从后端角度考虑,影响频率的因素有很多,比如:fwvednc
首先,受工艺的影响。每一种制程(例如14nm)下面还有很多小的工艺节点,例如LP,HP等。他们之间的最高频率,漏电,成本等会有一些区别,适合不同的芯片,比如手机芯片喜欢漏电低,成本低的,服务器喜欢频率高的,不一而足。fwvednc
其次,受后端库的影响。Foundry会把工艺中晶体管的参数抽象出来,做成一个物理层开发包(可以认为叫DK),提供给工具厂商,IP厂商和芯片厂商。而这些厂商的后端工程师,就会拿着这个物理层开发包,做自己的物理库。物理库一般包含逻辑和内存两大块。根据晶体管参数的不同,会有不同特性电子芯片,适合于不同的用途。而怎么把这些不同特性的的库,合理的用到各个前端设计模块,就是一门大学问。一般来说,源极和漏极通道越短,电子漂移距离越短,能跑的频率就越高。可是,频率越高,动态功耗就越大,并且可能是按指数级上升。除此之外,还会有Track这种说法电子芯片,指的是的标准单元的宽度。常见的有6.75T,9T等。宽度越大,电流越大,越容易做到高频,面积也越大。还有一个可调的参数就是阈值电压,决定了栅极的电压门限,门限越低,频率能冲的越高,静态功耗也越大,按对数级上升。比如需要低功耗(更多使用HVT的晶体管)或者高性能(更多使用LVT,ULVT)的晶体管。fwvednc
下一篇:二极管的正负极区分方式和电气符号