CN109254755B 归约运算映射系统和方法 (英特尔公司)_第1页
CN109254755B 归约运算映射系统和方法 (英特尔公司)_第2页
CN109254755B 归约运算映射系统和方法 (英特尔公司)_第3页
CN109254755B 归约运算映射系统和方法 (英特尔公司)_第4页
CN109254755B 归约运算映射系统和方法 (英特尔公司)_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2软逻辑电路,配置成从所述第一多个位中分离一个或多个位以生成第一子集操作数,并且配置成从第二多个位中分离附加的一个或多个位以加法器电路,配置成至少部分基于第一子集操作数和第二子集操作数来生成所述输3.如权利要求2所述的集成电路,其中所述尾随加法器树配置成从所述一个或多个位部分基于所述一个或多个位的所述子集和所述附加的一个或多个位的求和来生成所述附4.如权利要求1或2中的任一项所述的集成电路,其中所述附加基于所述一个或多个位的可能值的分布来生成5.如权利要求1或2中的任一项所述的集成7.如权利要求1或2中的任一项所述的集成电8.如权利要求1或2中的任一项所述的集成电路,其9.如权利要求1或2中的任一项所述的集成电路,其中10.如权利要求1或2中的任一项所述的集成电路,其中所述加法器树配置成执行被乘作数的第一部分乘积以及所述第一子集操作数和所述第二子集操作数的第二部分乘积来三部分乘积的第一最低有效位和所述被乘数和所述乘数的第四部分乘积的第二最低有效12.如权利要求1或2中的任一项所述的集成电路,其中所述一个或多个位包括一个或313.如权利要求12所述的集成电路,其中所述一个或多个最高有效位包括一个或多个4[0002]本申请是要求2017年7月14日提交的、标题为“ReductionOperationMapping[0003]本公开一般涉及集成电路装置,以及更具体来说涉及增加将归约运算(例如多个操作数的求和)映射到可编程装置(例如现场可编程门阵列(FPGA)装置)上的效率。具体来[0006]依据阅读以下详细描述以及依据对附图的参考,可更好地理解本公开的各个方5[0014]图8是按照一实施例的图5的加法器树的和数和图7的尾随加法器树的和数的框[0016]图10是按照一实施例的确定涉及于截断图9的加法器树中的操作数的总平均截断[0017]图11是按照一实施例的从图9的加法器树中的操作数所截断的位的静态分布的图[0018]图12是按照一实施例的其中从图9的加法器树中的操作数所截断的位的动态分布[0025]机器学习成为对于集成电路(例如现场可编程门阵列,又称作FPGA)的有价值用6[0028]设计人员可使用设计软件14(诸如由IntelCorporation所作的Quartus的某个版FPGA40可具有输入/输出电路42,其用于将信号驱动离开装置40并且用于经由输入/输出7105来耦合在一起并且装载于电路板106(其可被含有在最终用户系统加加法器可将第一加法器树210的第二级208B中的单个节点207的两个中间结果203合计到第一加法器树210的第三级208C中的最终和数206中,以完成合计全部四个操作数201的算[0036]两个操作数201的相加可生成具有比操作数201的任一个如果加法涉及影响第一6位操作数或者第二6位操作数的最高有效位(MSB)的进位操作,则的每个和加法器树200的最终和数206与前一级(例如208A、208B)中的操作数201相比可含可涉及集成电路12上的附加资源和/或空间的使用,并且还可不利地影响集成电路12的打8组,所以在加法器节点207按每个操作数201保持10位可允许两个节点207被打包到每个选宽度的最终和数,在加法器树的每个节点207的每个操作数201可被右移单个位(例如截法器树200可分为多个树。相应地,图6示出第二加法器树300被分为对应于截断的操作数201的求和的主树308(例如第二加法器树300)以及对应于从主树308的第一级208A中的操LSB组305的大小和/或数量足以适合有效率地打包到集成电路12中,则第一尾随加法器树大LSB组305可导致从LSB组305本身的LSB[0042]此外,图6可示出第一尾随加法器树310A用于合计来自主树308的第一级208A的中的实施例示出可操控来自主树308的第一级208A的LSB302-304的求和的第一尾随加法9器树310A,以及可操控来自主树308的第二级208B的LSB204的求和的第二尾随加法器树如,LSB204可共享与第一尾随加法器树310A的第二级中的中间结果203的位351相同的位206对齐,以合计为通过合计第一尾随加法器树310A和第二尾随加法器树310B所生成的最可看起来比单个加法器树200要更低效地打包,但是所截断主树308可在当前FPGA40中打尾随加法器树310可有效率地打包到集成电路1[0045]在一些实施例中,不同算术结构作为附加地或备选地被用于构成尾随加法器树之后,可通过基于所截断位对最终和数206原本贡献的值的估计将常数或常数集合加入主的LSB也可被截断,以便形成第四10位中间结果203,并且保持10位中间结果203之间的对数201和中间结果203中截断位,所以在与由加法器树200所生成的没有任何截断的实际最合可在特定级208被加入加法器树,以便降低通过在在第三加法器树400的任何级208截断[0050]鉴于以上所述,图10示出按照本文所述的实施例的用于确定要加入加法器树200具体顺序(其表示具体实施例)来描述,但是应当注意,方法500可按照任何适合的顺序执输出数据的宽度(wOut)(例如最终和数206的宽度)以及要在加法器树200中合计在一起的位操作数201)、wOut=10(例如10位最终和数206)以及N=7(例如7个输入操作数201)作为输[0052]在框504,处理器101然后可将等级输入(LI)的数量或者要在加法器树200的具体级208被合计的操作数的数量设置成N,因为加法器树200的第一级208A可接收所有操作数器101可在加法器树200的第一级基于操作数201的值被均匀分布的假设来确定截断值。例断值可初始化为0,所以在框506完成之后,总平均截断值可更新成匹配在框506所计算的控对于加法器树200的最终级208还是该树的先前级的计算。如果LI大于或等于2,则在框[0056]在框514,处理器101可基于平均截断值来计算对于下一级208的等级输入的平均然在处理器101可在框506利用基于分布的数据(例如操作数被均匀分布的假设)确定截断器101可基于加法器树200的每个中间结果203的平均截断值来确定截断值,所以在第二级平均截断值8和总截断值16,因为所截断的LSB(其处于相对于13位操作数201的第五位位对于来自11位最终和数206的13位操作数201的第六位位置所截断的单个L可在每次到达框508时迭代地将24.5加入第一级208A的平均截断值,将16加入第二级208B[0058]在处理器101在框510确定LI小于2之后,处理器101可在框516将平均截断值舍入为常数A-C各表示进位到第一加法器401A的每个中的单个位,并且因为相对于13位操作数产生的乘积中的3个LSB的可能值(其可从0至7不连续地变动)的每个的分布。如所示,3个确定例如操作数201从8位乘5位无符号乘法器中产生,则处理器101可使用图表600中提供的分布信息来确定7个操作数201的每个的截断值为2.375,并且对于操作数201的总值为加入加法器树200中的常数(例如A-F)的集合的值的加法器树系统62[0063]在这类实施例中,存储器102中的寄存器和/或位置可映射到常数(例如A-F)的集加法器树200接收与LSB622有关的数据。与LSB622有关的数据可包括诸如LSB的值的信布逻辑624。数据处理系统100的组件(例如处理器101和存储器102)的适合组合可实现和/并且可确定和/或更新对于任何适合级208(例如从其中与LSB622有关的数据被接收的级[0064]计算逻辑626可利用由LSB分布逻辑624所保持的LSB分布的一个或多个集合来确定要馈送到加法器树200中以降低截断误差的常数(例如A-F)的适当集合。为了确定常数B*8+C*8+D*16+E*16+F*32)来确定通过馈送到加法器树200中的常数可表示的总截断误差于常数的集合的已更新的值可经由寄存器的相应集合来馈送到加法器[0065]在一些实施例中,除了用于计算适合于抵消截断误差的常数的集合的下列方法与现代FPGA40的嵌入行波进位加法器关联的软逻辑来相加常数,没有附加等待时间或面加法器650可接收第一4位操作数A(例如A1-A4)和第二4位操作数B(例如B1-B4),并且可输出4位结果S(例如S1-S4)。要产生4位结果S,2输入加法器650可含有对于第一4位操作数A和/或第二4位操作数B中的每位的行波进位加法器654。例如,第一4位操作数A的第一位的第二位(A2)和第二4位操作数B的第二位(B2)可映射到第二行波进位加法器654B,第一4位操作数A的第三位(A3)和第二4位操作数B的第三位(B3)可映射到第三行波进位加法器(A1),并且将基于第一4位操作数A的第一位(A1)的结果输出到第一行波进位加法器654A,以及软逻辑块652接收第二4位操作数B的第一位(B1),并且输出基于第二4位操作数B的第类实施例中,软逻辑块652与加法器654之间的附加连接可以可用于通过首先生成3-2压缩或者A0和SA的异或。此外,来自第二操作数B的截断位(B0)和来自第二操作数B的符号位(B0XORSB)或者B0和SB的异或。第一软逻辑块652和第二软逻辑块652的输出可馈送到行此,由于按照表1(例如按照行波进位加法器654的结果)所生成的进位位缺失SB的贡献(因为例如行波进位加法器654仅可接收单个进位输入位),所以进位位可馈送到2输入加法器[0077]“进位”列中标记有星号(*)的位可表示由于没有SA进位到行波进位加法器654中不正确的(例如{SA,SB,S0,A0}={1,0,0,0},{1,0,1,1},{1,1,0,1},{1,乘法器等级所截断的LSBA0的乘数A以及具有在第一乘法器等级所截断的SLBB0的被乘数LSB和第一乘法器等级输出的符号位(Sign1)的异或(XOR)(例如A0ANDB0)XOR如,(A1ANDB1)XORSign2),并且通过相加这两个运算的结果(的操作的逻辑可包括在一个或多个ALM的至少一部分中。在一些实施例中,用于计算((A1处于更有效位位置中。ALM的LSB半可包括用于计算((A0ANDB0)XORSign1)+(A0AND号的量值的七个位的第一操作数201A与具有带符号的量值的六个位的第二操作数201B相201B的符号均为1(例如第一操作数201A和第二操作数201B为负)时,结果的符号也将为1,操作数201A的符号(例如第一操作数201A的MSB)。相应地,结果的MSB可基于第一操作数[0080]现在转到图15,块浮点树800示出使用精简加法器树200(例如具有被截断操作数门802的集合。每个XOR门802可配置成接收来自对块浮点树800所输入的操作数201的两个门804然后对来自XOR门802的结果一起进行逻辑OR,以生成对于整个第一级208A的单个确在操作数201或者被右移一位的操作数201(例如,其中具有被截断的LSB202)之间进行选择,被右移一位的操作数201经由移位块808被馈送到mux806中。例如,当耦合到第一级XOR门802预测由于操作数201的任一个引起的可能溢出时,OR门804可从每个mux806来选的两个MSB805可馈送到XOR门802B的第二集合中。XOR门802B的第二集合可预测中间结果少一个中间结果203被预测溢出时选择被右移[0082]在块浮点树800的第三级208C中,从mux806B的第二集合所选择的输出被加到一[0084]虽然使用块浮点树800的加法中涉及的方法与本文所描述的加法器树200的其他和第二OR门804B中的结果的大扇入,并且因为存在从OR门804A和第二OR门804B分别到mux806在中间结果203与被右移两位的中间结果之间进行选择。移位块808的集合可将中间结操作数201的前三个MSB805,以使OR门804能够预测第一级208A和/或第二级208B中的溢201的集合可分为操作数201的子集,并且块浮点树800的集合和/或简化的块浮点树850的点树850所接收的操作数201的数量可被降低,由此降低可引起大块浮点树800中的延迟的扇入和扇出。块浮点树800的集合和/或简化块浮点树850的集合中的每个集合的结果然后[0088]相应地,图17示出可实现多个块浮点树800的求和的块浮点组合树900的一实施904的集合可耦合到电路902,并且然后可从这个最大块浮点指数中减去每个块浮点指数。数的减法器904的结果为三,则第二移位器906B可将第二块浮点树800B的第二块浮点尾数的输出将第三块浮点树800C的第三块浮点尾数右移两位。移位器906A-906C可以是相对小块浮点树800中的每级208以最大值1递增,所以用于规格化块浮点尾数的移位操作也有可[0089]相应地,由移位器906A-906C所输出的块浮点尾数的每个块浮点尾数可相对于最终块浮点树800D可接收块浮点尾数作为操作数,并且可基于块浮点树800A-800C的每个树[0092]1.一种具有加法器树至少部分基于所述一个或多个位的所述子集和所述附加的一个或多个位的求和来生成所且配置成通过模拟所述附加的值的常数压缩来生成所[0106]10.如技术方案1所述的集成电所述加法器电路配置成至少部分基于所述第一子集操作数和所述第二子集操作数的第一部分乘积以及所述第一子集操作数和所述第二子集操作数的第二部分乘积来生成所述输的第一最低有效位和所述被乘数和所述乘数的第四部分乘积的第二最低有效位来生成所[0108]12.如技术方案1所述的集成电路,其少部分所述输入电路配置成将所述子集操作数路由到所述加法器电路还是所述附加的加[0123]至少部分基于所述第二位宽来确定要从每个所述操作数中分离的可去除位的数或多个处理器运行时促使所述处理器至少部分基于所述可去除位的可能的附加的值的分成至少部分基于所述一个或多个位的所述子集和所述附加的一个或多个位的求和来生成部分基于所述一个或多个位的可能值的分布来生置成至少部分基于所述附加的值和所述输出的所述第二子集操作数的第一部分乘积以及所述第一子集操作数和所述第二子集操作数的和所述乘数的第三部分乘积的第一最低有效位和所述被乘数和所述乘数的第四部分乘积至少部分所述输入电路配置成将所述子集操作数路由到所述加法器电路还是所述附加的[0165]至少部分基于所述第二位宽来确定要从每个所述操作数中分离的可去除位的数或多个处理器运行时促使所述处理器至少部分基于所述可去除位的可能的附加的值的分成至少部分基于所述一个或多个位的所述子集和所述附加的一个或多个位的求和来生成部分基于所述一个或多个位的可能值的分布来生置成至少部分基于所述附加的值和所述输出的所述第二子集操作数的第一部分乘积以及所述第一子集操作数和所述第二子集操作数的和所述乘数的第三部分乘积的第一最低有效位和所述被乘数和所述乘数的第四部分乘积至少部分所述输入电路配置成将所述子集操作数路由到所述加法器电路还是所述附加的[0204]至少部分基于所述第二位宽来确定要从每个所述操作数中分离的可去除位的数部分基于所述一个或多个位的可能值的分布来生置成至少部分基于所述附加的值和所述输出的第二子

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论