芯片设计中的功耗挑战和低功耗设计

news2024/11/20 7:00:54

在早期的IC设计中,关注的参数主要是性能(timing)和面积(area)。EDA工具在满足性能要求的情况下,最小化面积。此时,功耗是一个不怎么被关心的问题。

因为CMOS工艺在相对较低的时钟频率下具有相当低的功耗,漏电流可忽略不计。随着晶体管密度和时钟频率的提高,CMOS工艺的静态功耗也大幅增加。同时,电源电压和阈值电压的降低导致漏电流增加。

这些因素使得功耗成为影响性能和面积的关键参数,功耗问题变得和性能/面积一样重要了。

高功耗带来的问题

功耗过高会带来多方面的负面影响。

  1. 导致芯片温度升高,需要使用更贵的陶瓷封装和散热系统。

  2. 温度过高还会降低芯片的可靠性和寿命。

  3. 缩短便携式设备的电池续航时间。随着功能的增加,电池技术已经跟不上功耗的需求。

  4. 增加大规模使用电子设备的供电成本和环境负担。即使微小的功耗降低也可以为用户节省大量的费用和资源。

动态功耗和静态功耗

IC设计中要考虑动态功耗和静态功耗。

  • 动态功耗是晶体管开关时消耗的功耗,与时钟频率和开关活动有关。

  • 静态功耗是晶体管泄漏电流造成的功耗,与时钟频率或开关活动无关。

动态功耗由开关功耗和短路功耗组成。开关功耗是电路负载电容充放电时消耗的功耗。短路功耗是电路逻辑状态变化时流过PMOS管-NMOS管的短路电流消耗的功耗。下图展示了开关功耗的原因。

c58a208e3e14e68d00da9d2c19b75cc3.png

反相器输出从0变为1时,通过PMOS管对负载电容充电;从1变为0时,通过NMOS管对负载电容放电。因此,动态功耗与电源电压、电容负载、时钟频率和开关活动有关。

在早期CMOS技术中,泄漏电流很小。但是,随着晶体管尺寸和阈值电压减小,泄漏功耗增大,有时甚至达到动态功耗水平。晶体管只要接通电源,就会产生泄漏电流。减慢或停止时钟不能降低泄漏功耗。只有降低或关闭电源电压才能减少或消除泄漏功耗。

低功耗设计方法

降低功耗是数字IC设计中的一个重要目标。为此,可以从RTL级别和门级别采用不同的设计策略。时钟门控(clock gating)是一种常用的方法,可以在寄存器保持不变的时候停止其时钟信号,从而减少动态功耗。其他的方法,例如动态电压和频率调节,虽然可以根据工作负载调整电压和频率,但实施难度较大。

随着工艺技术的进步,功耗问题变得越来越突出,需要开发更多的方法来满足设计的功耗要求。

1、降低电源电压

降低电源电压是一种最基本的降低功耗的方法。因为功耗与电源电压的平方成正比,如图所示

59dfda6d93feb0073066c1011d334afd.png

如果电源电压降低50%,则功耗可以降低75%。CMOS技术为了降低功耗,不断降低电源电压。从20世纪80年代双极TTL电路的5V供电开始,到目前的先进工艺,电源电压已经降到约1 V左右。但是降低电源电压也会影响开关速度和抗噪声能力,并且增加泄漏电流和接口难度等问题。

2、时钟门控

时钟门控是一种有效的降低动态功耗的方法,它可以在寄存器保持相同逻辑值的时候停止其时钟信号,从而避免不必要的开关活动。时钟门控的实现如图所示:

97047c5b64f592a826af767ee4bac0f8.png

时钟门控适用于在多个时钟周期内需要保持相同逻辑值的寄存器。关闭时钟可以节省每个时钟周期重新触发寄存器所消耗的功耗。时钟门控的主要挑战是找到合适的位置,并在合适的时机生成时钟门控信号。 时钟门控是一种成熟的降低功耗技术,已经被广泛使用了很多年。Power Compiler等综合工具可以在时钟路径上自动插入时钟门控单元。时钟门控实现起来相对简单,因为它只需要修改网表。

3、多阈值标准单元库

一些CMOS标准单元工艺库提供了具有不同阈值(Vt)的标准单元。这样,标准单元库可以提供具有不同阈值电压的标准单元来实现相同的逻辑功能。例如,该库可以提供两个反相器单元:一个使用低阈值(Low-Vt)晶体管,另一个使用高阈值(High-Vt)晶体管。

  • 低阈值单元具有更高的速度和更大的泄漏电流。

  • 高阈值单元具有较小的泄漏电流,但速度较慢。

综合工具可以根据速度和功耗之间的trade-off选择合适类型的标准单元。

例如,它可以在关键路径上使用低阈值单元,在非关键路径上使用高阈值单元。

4、多电压设计

芯片的不同部分可能具有不同的速度要求。例如,CPU和RAM模块可能需要比外围模块更快。如前所述,较低的电源电压可以降低功耗,但也会降低速度,如图所示。

f1ac95c286392a0baecf0d6928b2a396.png

在单个芯片上提供两个或更多电源电压会带来一些复杂性,并且电源网格必须将每个电压源分别分配给适当的模块。如果逻辑信号从一个电压域进入另一个电压域,则需要一个电平转换器(level-shifter)单元产生具有合适的电压摆幅的信号。在上图所示的示例中,电平转换器将1.0V的信号转换为1.5V的信号。电平转换器本身需要两个与输入和输出电源电压相匹配的电源。

248d9d5ac0f9146bf22fc6abcd16e287.png

5、电源开关

电源开关是一种降低功耗的技术,它可以在芯片的一部分不需要工作时将其断电。

例如,在手机芯片中,当手机处于待机模式时,可以关闭语音处理模块。当用户拨打或接听电话时,语音处理模块必须从断电状态“唤醒”。

电源开关可以显著降低总体功耗,因为它既降低了静态功耗又降低了动态功耗。但它也带来了一些其他挑战,包括需要电源控制、电源开关网络、隔离单元(isolation cells)和保留寄存器(retention registers)等。

电源控制是一个逻辑块,用于确定何时断电和上电。打开和关闭电源需要一定的时间和功耗成本,因此电源控制器应确定合适的断电时间。可以被断电的模块必须连接到由大量串联晶体管组成的,在always-on的电源轨道和电源引脚之间的电源开关网络。电源开关网络分布在模块的周围或内部。

  • 当打开时,它将电源连接到模块中的逻辑门。

  • 当关闭时,它将模块中的逻辑门与电源断开。

采用多阈值CMOS(MTCMOS)工艺的高阈值晶体管作为电源开关是因为它们可以最大限度地减少泄漏功耗,并且它们的开关速度不是非常关键。PMOS开关可以放置在VDD和模块的电源引脚之间,NMOS开关可以放置在VSS和模块接地引脚之间,如图所示。

3d04ef150e01e0eb3b8d98fd92b590ca.png

要合理地选择开关的数量、驱动强度和位置,以保证在模块工作时达到可接受的电压降(IR Drop)。

上图所示的电源开关策略称为粗粒度策略,因为整个模块共用一个或多个并联的电源开关。在细粒度策略中,每个库单元都有自己的独立的电源开关。细粒度策略可以进一步降低功耗,但也需要更多的面积。

在信号从断电模块传输到always-on模块时,需要使用隔离单元(isolation cells)。隔离单元可以在断电模块断电时向always-on模块提供一个固定的逻辑值,从而避免可能产生的泄漏电流。隔离单元的一个简单实现如图所示。

ca67931d61281635c5b761fb3dfb121c.png

当左边的模块上电时,信号Iso为低电平,输出信号通过隔离单元不变(除了延迟)。当左边的模块关闭时,Iso为高电平,输出信号保持恒定的逻辑0。其他类型的隔离单元可以保持逻辑1或者断电时的信号值。在模块断电期间,隔离单元本身必须有always-on的电源。

电源开关可以与多电压技术结合使用。不同的模块可以在不同电压下工作,并且也可以分别断电。在这种情况下,不同模块之间的接口单元必须同时具备电平转换和隔离功能。这种类型的单元称为使能电平转换器(enable level shifter)。该单元必须有两个独立的电源,就像普通的电平转换器一样。

当模块被断电后再上电时,通常需要模块恢复到断电前的状态。有几种方法可以实现这一目标。例如,断电前可以将模块内的寄存器内容复制到模块外的RAM中,然后在上电后再复制回来。

另一种方法是在断电模块中使用保留寄存器。断电前,保留寄存器可以将数据保存到影子寄存器(shadow register)中,在断电期间保留数据。上电后,它可以将数据从影子寄存器恢复到主寄存器中。影子寄存器有always-on的电源,但它使用高阈值晶体管,以最大限度地减少断电期间的泄漏功耗。主寄存器使用快速但漏电的低阈值晶体管。保留寄存器的一个实现如图所示。

7a7904c1da7e99f448b1b788426a2843.png

SAVE信号在断电和恢复之前将寄存器数据保存到影子寄存器中,RESTORE信号在上电后恢复数据。保留寄存器使用电平敏感的控制信号,而不是边沿敏感的SAVE和RESTORE信号。

保留寄存器占用比普通寄存器更大的面积,并且除了模块其余部分使用的电源外,它还需要一个always-on的电源。

6、动态电压和频率调节

在多电压技术的基础上,可以根据芯片的实时工作负载动态地调整电压和频率,从而优化功耗。例如,在笔记本电脑中,处理器芯片在执行简单的电子表格计算时可以使用较低的电压和频率,从而节省功耗;而在进行3-D图像渲染时,则可以使用较高的电压和频率,以提高性能。这种根据工作负载要求变化供电电压和工作频率的技术称为动态电压和频率调节。

芯片电源可以设计为具有多个离散的或连续的电压等级。动态电压调节需要有多级电源和逻辑模块来确定给定任务所需的最佳电压等级。

由于存在多种可能的电压等级和频率组合,设计、实现、验证和测试都非常具有挑战性。

动态电压调节可以与电源开关技术相结合。设计中的模块可以在不同的电压等级下工作,以满足不同的性能要求,或者在不使用时完全断电。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/699355.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

springboot+vue校园车辆校车调度管理系统_r4le2-

本论文中实现的校车调度管理系统将以用户核心的日常信息维护工作为主,主要涵盖了首页,个人中心,驾驶员管理,车辆信息管理,借调车辆管理,车辆调度管理,车辆运营管理等功能,采用该校车…

浏览器如何捕获元素的hover事件弹出的内容,并进行样式调整修改

项目场景: 最近前端需要重写antd的tab卡片的更多内容弹框,默认的背景色和文本颜色不合适,需要更改。 问题描述 只有鼠标指针放上去后才会显示弹出的内容 直接用审查元素还无法进行获取。 如何用浏览器的开发者工具去捕获这些浮框内容或其他…

js中的图是什么?

图 什么是图? 图是网络结构的抽象模型,是一组由边连接的节点。图可以表示任何二元关系,比如道路、航班等。在 JavaScript 中没有图,但是可以通过 Object 和 Array 来构建图。 常用操作 深度优先遍历广度优先遍历 图的表示法 …

sql内外连接图示

student表数据: idname34name22golitter66kerwin123yh12golemon score表数据: idscore34802298663345100 内连接 1、内连接:俗称左右拼接连接; 2、内连接特点:满足连接条件的才会出现在结果里面; SELECT 查询字段…

第 7 章 集合-----Scala集合继承图

7.1.1 不可变集合继承图 7.1.2 可变集合继承图 7.2.3 不可变数组与可变数组的转换 7.7.6 复杂 WordCount 案例 1)方式一 object TestWordCount {def main(args: Array[String]): Unit {// 第一种方式(不通用)val tupleList List(("H…

WebRTC的认知入门

一、学习目的 当前的音视频聊天功能很普通,社会对这方面的需求也很高,疫情期间的在线问诊模式解决类大量急需就医问诊患者的燃眉之急,我们需要了解WebRTC实现实时音视频聊天功能是如何操作的。 二、概念 什么是WebRTC?WebRTC是 Google 在…

开放式耳机是什么意思?开放式耳机和封闭式耳机区别又有哪些?

开放式蓝牙耳机的设计理念旨在为用户提供更加自然、开放的音频体验。与传统的封闭式耳机相比,开放式耳机的设计目的是最大程度地减少音频在耳道中的阻隔,使周围环境的声音与耳机音频混合在一起,创造更加逼真的音场感。 开放式蓝牙耳机非常适合…

6.3.2 可翻页检视

前面提到的 nl 与 cat, tac 等等,都是一次性的将数据一口气显示到屏幕上面。一页一页翻动的指令就是more和less。 more (一页一页翻动) 看到上面的范例,如果more后面接的文件内容行数大于屏幕输出的行数时,就会出现类…

Hello算法笔记之回溯

一、回溯算法介绍:一种通过穷举来解决问题的方法,它的核心思想是从一个初始状态出发,暴力搜索所有可能的解决方案,当遇到正确的解则将其记录,直到找到解或者尝试了所有可能的选择都无法找到解为止。 通常采用「深度优…

【论文阅读】【yolo系列】YOLACT Real-time Instance Segmentation

论文链接:https://arxiv.org/pdf/1904.02689.pdf Abstract 我们提出了一个简单的、全卷积的实时实例分割模型, 【速度和精度】该模型在TitanXp上训练MSCOCO数据集以33.5帧ps的速度达到29.8 mAP,比以往任何竞争方法都要快得多。此外&#xff0…

chatgpt赋能python:Python连接蓝牙模块:实现IoT设备的控制

Python连接蓝牙模块:实现IoT设备的控制 随着物联网技术的不断发展,连接设备的关键变得越来越重要。Python语言是一种灵活易用、快速上手的编程语言,已经成为众多物联网应用的首选编程语言之一。其中,Python连接蓝牙模块的应用越来…

【聚类算法】MeanShift算法

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 MeanShift算法,同样是一种基于密度的聚类算法。两种算法直观理解都比较好理解。 DBSCAN:向身边人逐渐发展下线模式 MeanShfit&…

【Unity 实用插件篇】 | UI适配神器 Device Simulator 移动设备模拟器 的详细使用方法

前言 【Unity 实用插件篇】 UI适配神器 Device Simulator 移动设备模拟器 的详细使用方法一、安装Device Simulator包二、使用Device Simulator模拟各种设备三、自定义设备类型信息 总结 🎬 博客主页:https://xiaoy.blog.csdn.net 🎥 本文由…

windowsVNC远程桌面连接虚拟机

准本环境关闭防火墙 systemct stop firewalld setenforce 0 iptables -F 第一步虚拟机安装VNC yum -y install tigervnc-server 第二步VNC密码 vncserver 查看vnc进程和ID windows客户端 下载 VNC 服务器 |VNC 连接 (realvnc.com)

开始商业太空飞行将推动维珍银河股价上涨

来源:猛兽财经 作者:猛兽财经 总结 (1)维珍银河宣布将在6月底开始商业太空飞行,这将成为该公司的一个重要里程碑事件。 (2)太空旅游飞行市场预计将在未来十年呈指数级增长,维珍银河…

如何在Windows中启用或禁用脱机文件

脱机文件是同步中心的一项功能,即使与服务器的网络连接不可用,用户也可以使用网络文件。 用户可以使用脱机文件(如果启用)使其网络文件始终脱机可用,以便在计算机上保留存储在网络上的文件副本。这使得用户即使在未连接到网络或服务器不可用的情况下也可以与他们一起工作…

ModaHub魔搭社区:详解向量数据库Milvus的Mishards:集群分片中间件(四)

目录 Mishards 简单示例 启动示例 前提条件 启动 Milvus 和 Mishards 实例 使用 docker-compose 启动示例 Mishards 简单示例 启动示例 前提条件 安装 MilvusPython 版本 3.6 及以上 启动 Milvus 和 Mishards 实例 请按照以下步骤在单机上启动单个 Milvus 实例和 Mis…

实现数据的搜索( 筛选 )功能

搜索功能 : 可以根据搜索框对数据进行搜索, 筛选出满足条件的数据, 搜索功能主要还是后端的SQL语句的拼接, 查出满足需求的数据, 再展示给前端 前端 : 在前端我们可以在 ElementUI里获取对应的功能组件 这里与发送到后端的表单数据里的account进行绑定也就是此处我们要用accou…

【AUTOSAR】BMS开发实际项目讲解(十六)----电池管理系统系统电池单体过充保护

系统设计 /System Design 电池单体过充保护 关联的系统需求 TSR-BMS-1101、TSR-BMS-1102、TSR-BMS-1103、TSR-BMS-1104、TSR-BMS-1105、TSR-BMS-1106、TSR-BMS-1106、TSR-BMS-1107、TSR-BMS-1108、TSR-BMS-1109、TSR-BMS-1110、TSR-BMS-1111、TSR-BMS-1112、TSR-BMS-1113、TSR…

50个知识点由浅入深掌握Javascript

前言 近期整理了JavaScript知识体系,50个知识点由浅入深掌握Js建议收藏,如有问题,欢迎指正。 1. 说说你对JS的理解 1995年,布莱登艾奇(美国人)在网景公司,用10天写的一门语言。 Js是一门&…