当前位置: 首页 > news >正文

芯片的PPA-笔记

写在前面:这个仅记录自己对芯片PPA的一些思考,不一定正确,还请各位网友思辨的看待,欢迎大家谈谈自己的想法。

1 此次笔记的起因

记录的原因:自己在整理这段时间的功耗总结,又看到工艺对功耗的影响,并联想到买电子产品时会看到芯片采用多少nm的工艺的宣传,所以给自己一个记录,方便后期自我更正。

最近在分析功耗,除了工艺不同外,其它均相同,22nm的总体功耗比55nm的小了很多,动态功耗小了5倍左右,但静态功耗却增加了6倍左右。在55nm时,动态功耗几乎是静态功耗的快40倍了,然而在22nm是,静态功耗几乎快和动态功耗一样了。就上网查了一下,看了下面的链接(不对链接内容做任何评价),就有感而发写了这个,希望广大网友看见这个感想中不对的地方进行批评指正。

先进工艺的硬伤 -- leakage - 后端讨论区 - EETOP 创芯网论坛 (原名:电子顶级开发网) -

2 个人从用户角度理解芯片的PPA

PPA是芯片三个重要的数据,power,performance,area。这三个数据对用户的影响是什么呢?power就是芯片消耗的功耗,最直观的感受就是电子设备充一次电能用多长时间,芯片的功耗越小,充相同的电量,使用的时间越长。performance就是芯片的性能,会影响芯片的响应速度,性能越好,响应速度越快,就比如说在手机上点击视频快进,点下去就会实时快进,如果点下去明显感觉慢了几秒才开始快进,这就是性能不好的表现,那就很会影响使用时的体验。area则是面积,直观来说会影响电子设备的面积,体积和重量。

作为用户来说,功耗越小越好,这样充一次电就能用很长时间;性能当然是快好,不要有明显的延迟。那么面积呢?是不是越小越好?这个得分情况讨论,如果是交互的显示界面,则并不是越小越好,比如说手机屏幕,不能太小,太小要么显示的内容少,要么显示的内容特别小。但除了显示交互部分外,其他的芯片当然是越小越好,越小意味着越轻。然而这三个参数不是独立的,不可能同时趋近于极限,即面积不可能无限小到0,功耗不可能小到0,性能不能无限好到没有延时。这三个参数是一个平衡的抉择。对于用户来说,也不是非要各个参数都到极限最优。面积在合理的范围内就行,不要拿个手机还像以前搬一个大哥大一样;关于性能,延时1ps和延时1ns,延时1ms对用户来说体验是一样的。关于功耗,这个就不一样了,在相同的电量下运行相同的功能,一个能跑10天,一个只能维持5天,这就差距大了。

所以功耗这个参数对产品来说是很重要的,产品的功耗来源于内部的芯片、电路的功耗。因此分解到芯片的功耗需求是很重要的。

对于芯片的研发人员,会尽最大努力去实现PPA的最优平衡。对于减小功耗的其中有一种方法就是使用先进工艺。
Q1:如果在面积满足要求的情况下,为了优化功耗,需要使用先进工艺吗?

总的电能为P,芯片的静态功耗为P_{l},动态平均功耗为P_{d},在什么情况下使用先进工艺对用户使用更又好呢?比如充满一次电,芯片开启后一天24小时都有静态功耗,每天只有5小时存在动态功耗,直到芯片把电耗完为止。这种情况下是不是要考虑5小时内动态功耗的减小是否赶得上24小时内静态功耗的增加。如果赶不上,换先进工艺纯粹应该就是噱头,未变好,反变坏。

所以作为电子产品的用户来说并不是所有电子产品的芯片工艺越先进越好。如果我是使用矿机的用户,那核心芯片必须上先进工艺,但我是电子广告牌的用户,那就不必要求先进工艺了。

3 作为研发者对PPA的理解

作为芯片设计者,在研发时需要考虑怎样用最少的电路实现所需的功能和性能,电路少了功耗相应也会减少,出错的概率也会小。

不论是SOC中的IP设计者还是数模混合中的数字设计工程师,均需要对自己所负责的模块进行PPA的优化,这样才能有助于整颗芯片在PPA方面达到最优平衡。这个部分后续有时间再整理……

作为SOC的系统架构师需要考虑的是怎样系统架构的设计,即系统调度布局,比如在SOC设计中,matrix怎样选择和设置合理?多少memory合理?用过少个CPU/MCU更好?系统架构如何更优?(这些不明白的地方先记到这里吧……)

作为芯片研发中的功耗分析者,不仅仅要看场景case的功耗,分析优化场景功耗(可以参考如下链接: ptpx功耗分析——分析功耗报告-CSDN博客);更要理解实际中芯片的应用,从顶层去考虑功耗优化,最好从芯片的立项开始就参与,这样能更好的理解芯片的实际应用,各个模块之间的相互关系,这样才能站在架构层去思考功耗优化。(架构层面的后面捋清楚后在写笔记吧……)


 

http://www.lryc.cn/news/393095.html

相关文章:

  • 2024阿里巴巴全球数学竞赛决赛中的数列题解析(分析与方程方向第4题)
  • 学java的第3天 后端商城小程序工作
  • DevOps实战:使用GitLab+Jenkins+Kubernetes(k8s)建立CI_CD解决方案
  • Apache Seata配置管理原理解析
  • 深入理解C# log4Net日志框架:功能、使用方法与性能优势
  • BDD 100K dataset 的标签数据结构(json文件)
  • AcWing 1550:完全二叉搜索树
  • 使用kali Linux启动盘轻松破解Windows电脑密码
  • Vue2中跨组件共享公共属性的方法、优缺点与实现
  • 2024亚太杯数学建模竞赛(B题)的全面解析
  • 【PWN · ret2syscall | GoPwn】[2024CISCN · 华中赛区]go_note
  • 关于学习方法的优化
  • 万界星空科技MES系统中的排版排产功能
  • kubeadm离线部署kubernetesv1.30.0
  • 【PYG】dataloader和densedataloader
  • 完美解决ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO)
  • ForkJoinPool 简介
  • 复现YOLO_ORB_SLAM3_with_pointcloud_map项目记录
  • Docker:Docker网络
  • Ubuntu 24.04-自动安装-Nvidia驱动
  • 【CSAPP】-attacklab实验
  • docker部署onlyoffice,开启JWT权限校验Token
  • Hive排序字段解析
  • 3101.力扣每日一题7/6 Java(接近100%解法)
  • virtualbox窗口和win10窗口的切换
  • 卫星轨道平面简单认识
  • IP-Guard定制函数配置说明
  • C++常用类
  • React Hooks --- 分享自己开发中常用的自定义的Hooks (1)
  • uniapp H5页面设置跨域请求