在讨论这个问题前先看另外一个概念,PPA,也就是性能(performance),功耗(power)和面积(area)的简称。只要是做SoC设计就离不开这三个概念。首先,性能不用讲大家都明白。我们经常会看到关于性能的宣传,比如某新发布的手机跑分多少多少,比如某款CPU芯片的最高主频等等。其次,芯片功耗这个问题大家在生活中也会遇到,例如某款手机在打游戏时会过热。最后,芯片面积这方面一般在生活中不会直接接触到,但也会影响我们的生活。拿买房子作类比,同一个地段(在芯片制造领域就是相同工艺)肯定是面积越大越贵。另外由于芯片生产工艺的限制,芯片的设计面积越大,最后的良品率越差。也就是说芯片生产制造完,能用的比例越小。间接后果就是可用的芯片产品卖的更贵,毕竟羊毛出在羊身上嘛.
举几个简单的例子帮大家理解这些问题。现在的芯片生产厂(foundry)在同一个工艺制成下还提供好几种小工艺节点供选择。每个小节点各有特点,有些能跑到更高频率,有些功耗低,有些成本低,可以根据项目实际情况选择。另外在同一个小节点中还会提供不同阈值的标准单元。拿功耗换取性能来说,为了让芯片跑在更高的频率下,在单位时间内完成更多的工作,我们可以选取一些阈值电压低(low Vt)的物理器件。这些器件会比实现同样功能但是阈值电压高的器件翻转快,缺点是其静态功耗比正常Vt的标准单元大很多。所以一般会在关键路径酌情考虑使用,不建议大规模使用。
再说面积换取性能,在同样的工作频率下可以做多路并发来提高芯片的数据处理能力,同时也牺牲了面积和功耗。再举个例子,可以把cache容量做大以提升cache hit。虽然我们都知道cache hit的曲线图,在cache达到一定容量时继续增大对提高命中率的提升越来越不显著。但是有时候恰恰就是这一点点的提升,可能会带来不一样的用户体验。就像某水果公司的SoC,有钱任性,其L3 cache做的不小,哈哈。
再比如面积换功耗,不影响性能的前提下可以设计中使用clock gating和power gating等技术降低功耗,或者划分不同的电压域,代价是芯片的面积会大一点,毕竟加入了新的物理器件(CG cell,PG cell,levelshifter,retention cell等等)。还有一种技术DVFS,动态调节电源电压和时钟频率。
总之呢,tradeoff的策略要结合芯片实际应用情况来考虑,具体的实现方法多种多样,以后有时间慢慢跟大家探讨,一起学习。
最后总结一下,芯片设计中PPA既是对立的,又是统一的,其矛盾贯穿SoC设计始终。没有完美的芯片,只有完美的tradeoff。
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/167317.html