并行运算原理

为什么把一个乘法器改成两个乘法器并行工作,可以降低系统所需频率?
✅ 核心原因:每个乘法器的负载变小,关键路径变短,频率压力减轻
📌 一、传统方式:一个乘法器串行处理两个操作
假设你有如下需求:
每个时钟周期要处理 两个乘法操作
如果你只用一个乘法器,你要怎么办?
只能让它一个周期算一个乘法
所以要 2倍的频率,才能在一个系统周期内完成两个操作
✍ 举个例子:
你有 100MHz 系统时钟,每周期要算两个乘法:
用一个乘法器,必须跑 200MHz,才能完成任务
这就对乘法器提出了更高的时序要求(路径必须更短)
💡 高频意味着关键路径要更短,STA(Static Timing Analysis)更容易失败,功耗也更高。
📌 二、改进方式:两个乘法器并行处理
如果你用 两个乘法器,它们可以同时并行执行两个乘法操作
每个乘法器只需要在一个周期内算一个操作
所以系统可以跑在100MHz(不需要提升频率)
优点:
项目描述
⏱ 时钟频率 从200MHz → 降为100MHz 
🔧 时序压力 关键路径宽松,更易收敛 
🔋 功耗 频率越低,动态功耗越小(P ∝ f) 
⚙ 可扩展性 可以扩展更多并行乘法器处理更多操作 
✅ 从公式角度理解功耗和频率的关系
动态功耗:
Pdynamic=α⋅C⋅V2⋅fP_{\text{dynamic}} = \alpha \cdot C \cdot V^2 \cdot fPdynamic​=α⋅C⋅V2⋅f f 变小:频率降低,功耗线性降低
两个乘法器 C 变大一些,但因为f 降低幅度更大,整体功耗可能下降
✅ 总结:并行换频率,频率降功耗
用法描述
1个乘法器 高复用、低面积,但必须提高频率满足吞吐率 
2个乘法器 面积稍增,但能降低频率,减轻时序压力和功耗 
🧠 类比理解:
就像你有两件衣服要洗:
1台洗衣机需要跑两次(需要更快速度)
2台洗衣机可以并行同时洗完(每台转得慢,但总时间一样)

校招基础——低功耗 - 咸鱼IC - 博客园

为什么当MUX的每个输入为多位总线时会产生明显的开关过程
ChatGPT 说:
这是一个非常典型的多位总线多路选择器(MUX)开关过程引起功耗峰值的问题,和动态功耗、glitch(毛刺)传播、信号翻转数量密切相关。
🎯 问题本质:
当 MUX 的每个输入为多位总线(比如 32bit、64bit)时,MUX 切换输入会导致大规模信号同时翻转(switching activity),从而产生明显的开关过程 —— 即:瞬间大量的动态功耗和电流扰动。
✅ 原因详解
📌 1. 多位总线 → 多个bit同时切换
假设你有一个 64-bit 宽度的 MUX,切换前后两个输入差异很大:
当前选择的是 A[63:0] = 0x00000000_00000000
下一个选择的是 B[63:0] = 0xFFFFFFFF_FFFFFFFF
当 sel 发生翻转时,MUX输出将64位同时从0翻转为1,导致:
所有 64 条线路 同时充电或放电
产生巨大的短时电流峰值
引起明显的动态功耗上升
📌 2. 多路输入引发大量毛刺(glitch)
MUX 结构的实现通常使用级联的逻辑门电路(如与非门、传输门等),当控制信号 sel 切换时:
MUX 的控制路径和数据路径传播延迟不完全一致
会导致输出在稳定前出现短暂的 glitch(毛刺)
每个 bit 都可能 glitch → 64bit 就可能有大量瞬时翻转
✅ Glitch 本质上也是一种 无用的开关行为,会引起动态功耗上升。
📌 3. 开关行为引起 IR drop / 电源噪声
大量翻转行为 → 电源电流冲击
如果电源网络不够强,会引起 IR drop(压降)
引起 timing violation、功能错误等问题
在 backend 阶段可能看到 peak current warning
🧠 类比理解:
把 64-bit MUX 输出看成一个水龙头接了 64 个管子:
正常一个两个水管打开 → 水流平稳
64 个水管同时开/关 → 水压剧变、可能引发爆管(电源压力)
📉 解决方向(RTL / 设计优化)
方法说明
✅ 减少MUX位宽 比如拆成多个小MUX后拼接结果 
✅ 避免频繁切换SEL 减少不必要的 MUX 选择变化 
✅ 用register hold数据 MUX后用触发器稳住输出避免毛刺传播 
✅ clock gating 减少MUX后电路的无用切换 
✅ RTL coding注意 避免不必要的并行路径共享MUX输出 
✅ 小结一句话:
多位总线的MUX在切换输入时,会导致大量比特同时翻转,引发剧烈的动态功耗峰值和毛刺传播,这是明显的“开关过程”现象。
【《硬件架构的艺术》读书笔记】05 低功耗设计(3) - Magnolia666 - 博客园

低功耗设计 - Pent° - 博客园

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

妙妙米奇屋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值