并行前缀(Parallel Prefix)加法器

news/2025/1/9 20:49:51/文章来源:https://www.cnblogs.com/sasasatori/p/18662877

并行前缀(Parallel Prefix)加法器

并行前缀加法器的基本介绍

二进制加法器是目前数字计算单元中的重要模块,基础的加法器架构包括行波进位加法器(Ripple Carry Adder),超前进位加法器(Carry Look-Ahead Adder),进位选择加法器(Carry Select Adder)等。加法器的进位传播是其组合延迟的主要来源,在现代的高性能计算中,快速的加法器结构可以决定系统的运行,为了降低进位传播延迟,大部分现代加法器结构会采用并行前缀加法器(Parallel Prefix Adder)

并行前缀加法器根据拓扑的不同,可以分类为不同的类型,类如Kogge Stone Adder,Sklansky Adder,Brent Kung Adder,Han Carlson dder,Lander Fischer Adder等。不同的拓扑会具备不同的延迟、面积、功耗属性,需要在设计中酌情考虑。

并行前缀加法器的原理

并行前缀加法器通过三个基本阶段来实现加法操作,分别为:

  1. \(P_i\)\(G_i\)的预运算
  2. 进位传播网络
  3. 后运算

第一个阶段是\(P_i\)\(G_i\)的预运算,用于根据输入\(A\)\(B\)的对应相加的每对比特产生生成(generate)和传播(propagate)信号,根据公式:

\[p_i=a_i \oplus b_i \]

\[g_i=a_i \cdot b_i \]

第二个阶段的进位传播网络是不同拓扑的进位前缀加法器产生延迟、面积、功耗差异的来源,对加法器起到决定性因素,其包含了处理单元和缓冲单元,更少的处理单元意味着更小的延迟,而缓冲单元的输出则与输入相同。处理单元的输出为:

\[g_{i,k}=g_{i,j}+p_{i,j}\cdot g_{j-1,k} \]

\[p_{i,k}=p_{i,j}\cdot p_{j-1,k} \]

image

第三阶段的后处理单元完成最终的求和与进位运算:

\[s_i=p_i\cdot g_{i-1,1} \]

\[c_{out}=g_{n,1} \]

关于这里的标号的含义,可以参考下图:

image

假定一个8bit的加法器结构(这个拓扑本质上是一个串级加法器),一共产生了8对初始的\(p_i\)\(g_i\),这里\(i=1,2,3,4\dots 8\),除了进位链上的第一个处理单元之外,每个处理单元接收两对\((p,g)\)的输入,为了标记两对输入的来源,我们采用一对标号进行表示,第一个标号表示处理单元处于第几位的箭头上。第二个标号表示了这对\((p,g)\)能够"溯源"到第几位的箭头上,即我们直接观察该输入对所属的进位传播链的源头对应在第几位的箭头上。例如对于进位传播链上的最后一个处理单元,他的两对\((p,g)\)对的输入,分别应该对应\((p_8,g_8)\),根据前面所述规则,可以看作是\((p_{8,8},g_{8,8})\)\((p_{7,1},g_{7,1})\),并根据处理单元的公式,产生\((p_{8,1},g_{8,1})\),根据后处理单元的公式,这一位的\(s_8=p_8\cdot g_{7,1}\),同时最终的进位为\(c_{out}=g_{8,1}\)

从根本的数学原理上来说,实际上并行前缀加法器与超前进位加法器一致,基于相同的进位比特产生方程式。因为超前进位加法器属于教科书上基本都会讲解的加法器结构,这里不对其细节再做赘述。

并行前缀加法树的拓扑

在上一小节中我们提到了根据进位传播网络的不同,并行前缀加法器可以形成不同延迟、面积、功耗属性的拓扑。具体来说,这里以8bit加法器为例简单展示几种:

Kogge Stone Adder:

image

Sklansky Adder:

image

Brent Kung Adder:

image

对于不同拓扑的比较可见下表,在TSMC 90nm工艺下,以64bit位宽加法器作为对象,不同拓扑的属性情况:

image

可以看出,在延迟上Kogge Stone拓扑具有最显著的优势,而Brent Kung拓扑虽然在延迟上表现最差,但具有最优的面积和功耗。面积和功耗可以理解为受到处理单元个数的影响,而延迟则受到最大延迟传播链上处理单元数量的影响,从上面展示的图中可以显著的看出各个拓扑的差异。

并行前缀加法器的发展方向

由于AI的快速发展,高性能计算的需求暴涨,如何设计出合理的拓扑满足延迟、面积、功耗的平衡是一个复杂的问题。

在ISSCC2024的Plenary上,英伟达介绍了他们通过结合了强化学习策略实现的PrefixRL工具在并行前缀的拓扑上取得了比现有SOTA EDA工具更好的优化效果,实现了综合面积、延迟更好的并行前缀加法器电路。PrefixRL工具被用于了Hopper GPU中接近13000个电路的设计。

image

此外对于具备一定的容错性的计算负载,可以通过近似计算的优化手段来牺牲计算准确度换取更好的综合性能表现,Morgana Macedo Azevedo da Rosa等人提出了一种近似并行前缀加法器结构,在相同的MRED(平均相对错误距离)下,取得了相对于传统近似加法器结构,如LOA,Trunc,ETAI等更好的能耗和面积节省。

image

参考文献

  1. "A Comparative Analysis of Parallel Prefix Adders", Megha Talsania et. al.
  2. "Parallel Prefix Adders- A Comparative Study For Fastest Response", Er. Aradhana Raju et. al.
  3. "Parallel prefix adders", KostasVitoroulis
  4. "AxPPA: Approximate Parallel Prefix Adders", Morgana Macedo Azevedo da Rosa et. al.

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

科技风?写实风?教你设置多风格三维地图

概述 三维地图通过高度、深度、立体感等表现形式,能够真实还原地形地貌、城市建筑和空间结构。相比二维地图,它能够更清晰地展示复杂的地理数据,帮助用户快速理解空间关系,如地形起伏、建筑高度等。在实际应用中,我们可以将不同风格的三维地图作为项目的主体元素进行展示,…

【模拟电子技术】03-PN与二极管的特性

【模拟电子技术】03-PN与二极管的特性上节中有提到对PN结施加反向电压时,会使得PN结所形成的势垒增加,阻止多子到另一边。在掺杂浓度比较低的时候,外加电场加强,中间的耗尽层会加长,变成了一个粒子加速器,自由电子进去后不断加速。直到某一电场强度时,粒子加速足够大的时…

NocoBase 本周更新汇总:支持大规模数据量的导入和导出

本周更新包括:支持大规模数据量的导入和导出等。汇总一周产品更新日志,最新发布可以前往我们的博客查看。 NocoBase 目前更新包括的版本更新包括三个分支:main ,next和 develop。main :截止目前最稳定的版本,推荐安装此版本。 next:包含即将发布的新功能,经过初步测试的…

MSSQL:DBLINK连接oracle 19

无法为该请求检索数据。(Microsoft.SqlServer.Management.Sdk.Sfc)其他信息:执行Transact-SQL语句或批处理时发生了异常。(Microsoft.SqlServer.ConnectionInfo)在与SQL Server 建立连接时出现与网络相关的特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正…

五款强大报表软件助力企业提升数据分析效率

本文将为大家介绍五款功能强大的报表软件,包括山海鲸报表、JReport、Power BI、Zoho Analytics 和 SAP Crystal Reports。这些工具各具特色,能够帮助企业快速生成数据报表并进行深度分析。无论是数据可视化、报表定制、自动化生成还是与其他系统的集成,它们都能为企业的决策…

Linq中的设置操作 (C#):Distinct 和 DistinctBy、Except 和 ExceptBy、Intersect 和 IntersectBy、Union 和 UnionBy

LINQ 中的集运算是指根据相同或单独集合中是否存在等效元素来生成结果集的查询运算。 注:这些示例使用 System.Collections.Generic.IEnumerable<T> 数据源。 基于 System.Linq.IQueryProvider 的数据源使用 System.Linq.IQueryable<T> 数据源和表达式树。 表达式…

2025多校冲刺省选模拟赛3

过于困难,直接放弃2025多校冲刺省选模拟赛3\(T1\) A. 等差 \(100pts/100pts\)考虑哈希,每 \(k\) 个作为一组与上一组统一计算。取 \(Base>\) 值域时用高精度来存储并判断的正确性显然。观察到可行的最小的 \(k\) 单调不降,不妨直接枚举答案。暴力实现时间复杂度为 \(O(n…

还不会 Cert Manager 自动签发证书?一文掌握

相信很多小伙伴对于 Cert Manager 不陌生,Cert Manager 是 Kubernetes 上的证书管理工具,基于 ACME 协议与 Lets Encrypt 签发免费证书并为证书自动续期,实现永久免费使用证书。 本文将介绍如何使用 Cert Manager 实现自动签发证书并与 Rainbond 结合使用。 Cert Manager 概…

JAVA-Day 09:While循环语句

While循环 while循环格式 初始化语句; while(条件判断语句){ 循环体语句; 条件控制语句; } 初始化语句只执行一次 判断语句为True,循环继续 判断语句为False,循环结束 例: 世界最高山峰珠穆朗玛峰的高度为8844.43米=8844430毫米,假如有 一张足够大的纸,它的厚度为0.1毫米。…

rust学习十六.2、并发-利用消息传递进行线程间通讯

通过信道是rust的解决线程之间通信的2个工具之一,另外1个是是共享内存状态。 rust推出这个,明显地是因为受到go之类的影响。 在书籍中,作者提到go编程文档中的内容: 不要通过共享内存来通讯;而是通过通讯来共享内存(Do not communicate by sharing memory; instead, share…

2025,谁会成为 AI Agent 的新入口?|播客《编码人声》

「编码人声」是由「RTE开发者社区」策划的一档播客节目,关注行业发展变革、开发者职涯发展、技术突破以及创业创新,由开发者来分享开发者眼中的工作与生活。2024 年末,一群来自 Android、Chrome OS、Oculus 等操作系统的开发元老联合创业,推出 AI Agent 操作系统 /dev/agen…

【Windows内核】Ntdll解除挂钩学习

简介 我们之前都是直接通过使用直接系统调用的方式来绕过用户态钩子,通过在项目文件中创建并调用系统调用来实现此目标。还有另外一种方法也可以绕过用户态的钩子,那么这种方法是将已经加载到进程中的钩子DLL替换为一个未经修改且未被钩主的版本来达到相同的目标。 将勾住的D…