引导变化预测器逻辑的制作方法

文档序号:8501102阅读:176来源:国知局
引导变化预测器逻辑的制作方法
【专利说明】引导变化预测器逻辑
【背景技术】
[0001] 各实施例一般涉及浮点运算。
[0002] 现代的处理器包括用于对数据执行运算的各种电路。此电路可包括浮点单元 (FPU),该浮点单元可包括对浮点数字执行运算的功能。例如,浮点运算可包括加法、减法、 乘法、除法以及平方根。这样的浮点运算可以大量地用于某些应用中,诸如图形、游戏、科 学,以及工程应用中。
[0003] 附图简述
[0004] 图1A-1B是根据一个或多个实施例的系统的框图。
[0005] 图2是根据一个或多个实施例的框图。
[0006] 图3是根据一个或多个实施例的序列。
[0007] 图4是根据一个或多个实施例的处理器的框图。
[0008] 图5是根据一个或多个实施例的多域处理器的框图。
[0009] 图6是包括多个核的处理器的实施例的框图。
[0010]图7是根据本发明的一个或多个实施例的系统的框图。
[0011] 图8是根据本发明的一个或多个实施例的系统的框图。
【具体实施方式】
[0012] -般而言,浮点单元(FPU)可以表示使用三个元素(即二进制符号位、二进制编码 的指数以及二进制编码的尾数)的浮点数。在类加法运算中,尾数可以被移位,以校准指 数。如此处所使用的,除加法运算之外,术语"类加法"运算还包括减法运算、最小函数、最 大函数,及其他,诸如整数到浮点,以及浮点到整数转换,以及双精度到单精度以及单精度 到双精度转换,以及浮点比较指令。
[0013] 在某些情况下,由类加法运算所产生的尾数可包括引导零(在正结果的情况下) 或引导1(在负结果的情况下)。通常,引导零预测器(LZA)可以与加法器并行地使用,以 预测加法器的输出尾数中的引导零的数量。可以将引导零的此数量提供到移位器,然后,该 移位器可以移位输出尾数,以删除任何引导零。类似地,引导1预测器(LOA)可以预测引导 1的数量,如此,可以和移位器一起使用,以从输出尾数中删除任何引导1。引导1或零的这 样的删除可以被称为"归一化"输出尾数。
[0014] 由于这样的LZA和LOA通常被实现为单独的电路,因此,检测引导1和引导零可能 需要大量的可用的处理器资源(例如,处理器管芯上的面积)。进一步,可能需要选择器以 对于每一个运算,确定要使用LZA或LOA中的哪一个。此外,LZA、LOA,和/或选择器可能会 对完成浮点运算产生时间延迟,由此,降低处理器性能。
[0015] 根据一些实施例,可以提供引导预测器变化(LCA)。在一个或多个实施例中,LCA 可以是预测类加法浮点运算的输出中的引导1和〇两者的单一电路,并可以被用来归一化 这样的输出。在某些实施例中,LCA可以比其他技术(例如,LZA、LOA以及选择器)消耗较 少的处理器资源。进一步,LCA可以提供引导零/I预测,而不会对浮点运算产生时间延迟, 由此提高处理器性能。
[0016] 参考图1A,所示是根据一个或多个实施例的系统100的框图。在某些实施例中,系 统100可以是电子设备或组件的全部或一部分。例如,系统100可以被包括在蜂窝电话、计 算机、服务器、网络设备、处理器、片上系统(SoC)、控制器、无线收发器、电源单元等等中。
[0017] 如图1A所示,系统100可以包括耦合到存储器140的处理器110。处理器110可 包括浮点单元(FPU) 120。在某些实施例中,FPU 120可包括执行浮点运算(例如,加法、减 法、乘法、除法等等)的功能。
[0018]尽管本发明的范围在这方面不受限制,但是,在许多实现中,FPU 120可以适应给 定格式或标准(例如,给定的电气与电子工程师学会(IEEE)标准)的操作数。进一步,给 定实现可以被用来处理各种类型的传入的数据,包括可以是单精度以及双精度浮点格式的 操作数。
[0019] 如图所示,FPU 120可包括加法单元125。在某些实施例中,加法单元125可以表 示包括执行类加法的浮点运算的功能的任何单元。例如,加法单元125可以是加法器。在 另一个示例中,加法单元125可以是熔合乘法-加法(FMA)单元,包括乘法器、加法器,以及 舍入器。下面参考图1B讨论了加法单元125的示例实施例。
[0020] 在其中加法单元125是FMA单元的各实施例中,此FMA单元可以执行浮点乘法累 积运算,并适应给定格式(例如,给定的电气与电子工程师学会(IEEE)标准,诸如用于浮点 (FP)算术的IEEE标准754-2008 (2008年发布)的)的操作数。此外,给定实现可以被用来 处理各种类型的传入的数据,包括可以是单精度以及双精度浮点格式的操作数。
[0021 ] 在某些实施例中,可以使用三个源操作数来定义FMA指令语法,其中,基于数据元 素的算术运算的结果,来更新第一源操作数。如此,第一源操作数也可以是目的地操作数。 例如,可以存在下列指令格式:操作码,xl,x2, x3,其中,操作码对应于执行给定算术运算的 多个用户级别的FMA或其他指令中的一个,而xl-x3对应于要在运算中被处理的操作数。 [0022] 在FMA指令中执行的算术FMA运算可以呈现多种形式之一,例如:
【主权项】
1. 一种处理器,包括: 至少一个浮点单元,包括: 加法器,所述加法器将第一操作数X与第二操作数Y相加,以获得具有位长度n的输出 操作数; 引导变化预测器(LCA)逻辑,耦合到所述加法器,用于: 对于所述输出操作数的从n-1到1的每一个位位置i,获得所述第一操作数X的一组位 值,并基于所述第一操作数X和所述第二操作数Y,获得一组传播值;以及 基于所述传播值组以及所述位值组,生成LCA掩码;以及 移位器,其耦合到所述加法器以及所述LCA逻辑,基于所述LCA掩码,归一化所述输出 操作数。
2. 如权利要求1所述的处理器,其特征在于,所述LCA逻辑包括异或非(XNOR)门、 异-或(XOR)门、与门以及或门,其中所述XOR门耦合到所述加法器和所述XNOR门的输出, 其中所述AND门耦合到所述加法器和所述XOR门的输出,其中所述OR门耦合到所述加法器 和所述AND门的输出。
3. 如权利要求2所述的处理器,其特征在于,所述位值组包括所述第一操作数X的第一 位值Xi和第二位值XH,其中所述XNOR门将所述第一位值\和所述第二位值XH,作为输 入。
4. 如权利要求1所述的处理器,其特征在于,所述传播值组包括对应于XiXORYi的第 一传播值?1,对应于值Xi+1X0RYi+1的第二传播值pi+1,以及对应于值Xp1XORYp1的第三传播 值Ph。
5. 如权利要求4所述的处理器,其特征在于,所述XOR门从所述加法器接收所述第二传 播值Pi+1作为输入,其中所述AND门从所述加法器接收所述第三传播值PH的逆作为输入, 其中所述OR门从所述加法器接收所述第一传播值Pi作为输入。
6. 如权利要求1所述的处理器,其特征在于,所述LCA逻辑与所述加法器并行地操作, 其中所述移位器在第一时间点接收所述LCA掩码,其中所述移位器在第二时间点接收所述 输出操作数,其中所述第一时间点等于或早于所述第二时间点。
7. 如权利要求1所述的处理器,其特征在于,所述LCA掩码包括,对于所述输出操作数 中的每一个引导1或0,第一值位。
8. 如权利要求7所述的处理器,其特征在于,所述LCA掩码进一步包括对应于所述输出 操作数的最高有效位(MSB)的位位置处的第二值位。
9. 如权利要求8所述的处理器,其特征在于,所述移位器基于所述输出操作数的所述 MSB的所述位位置,确定移位长度,其中所述移位器通过将所述输出操作数移位所述移位长 度,获得归一化的输出操作数。
10. 如权利要求9所述的处理器,其特征在于,所述至少一个浮点单元进一步包括将由 所述移位器获得的所述归一化的输出操作数舍入的舍入器。
11. 一种系统,包括: 一个或多个硬件处理器,每一个都包括: 至少一个加法单元,包括: 加法器,所述加法器将第一尾数X与第二尾数Y相加,以获得具有位长度n的输出尾 数; 引导变化预测器(LCA)逻辑,对于从n-1到1的每一个位位置i,用于: 基于所述第一尾数X以及所述第二尾数Y,获得第一传播值Pi,第二传播值Pi+1,以及第 三传播值Ph; 获得所述第一尾数X的第一位值Xi和第二位值Xi_1;以及 基于所述第一传播值Pi,所述第二传播值Pi+1,所述第三传播值Pi+所述第一位值Xi, 以及所述第二位值Xg,生成掩码位;以及 耦合到所述一个或多个硬件处理器的存储器。
12. 如权利要求11所述的系统,其特征在于,所述至少一个加法单元是熔合乘法-加法 (FM)执行单元。
13. 如权利要求11所述的系统,其特征在于,所述至少一个加法单元还包括用于执行 下列各项的移位器: 基于具有零值的最高掩码位,确定移位长度;以及 将所述输出尾数向左移位所述移位长度,以获得归一化的输出尾数。
14. 如权利要求13所述的系统,其特征在于,所述至少一个加法单元还包括舍入所述 归一化的输出尾数的舍入器。
15. 如权利要求11所述的系统,其特征在于,所述LCA逻辑包括接收所述第一位值Xi 以及所述第二位值Xg作为输入的异或非(XNOR)门。
16. -种方法,包括: 由加法器电路,将第一位向量X和第二位向量Y相加,以获得具有位长度n的输出位向 量; 对于所述输出位向量的从n-1到1的每一个位位置i: 由引导变化预测器(LCA)逻辑,从所述加法器获得多个传播值P; 由所述LCA逻辑,获得所述第一位向量X的第一位值Xi和第二位值Xi_1;以及 基于所述多个传播值P、所述第一位值Xi以及所述第二位值XH,生成掩码位;以及 使用为从n-1到1的每一个位位置i生成的所述掩码位中的至少某些,确定移位长度。
17. 如权利要求16所述的方法,进一步包括将所述输出位向量向左移位所述移位长 度,以获得归一化的输出位向量。
18. 如权利要求17所述的方法,进一步包括舍入所述归一化的输出位向量。
19. 如权利要求16所述的方法,其特征在于,为从n-1到1的每一个位位置i生成所述 掩码位包括: 为每一个引导1或〇,生成第一值位;以及 为最高有效位(MSB)生成第二值位。
20. 如权利要求16所述的方法,进一步包括向被包括在所述LCA逻辑中的异或非 (XNOR)门,提供所述第一位值Xi以及所述第二位值XH,作为输入。
21. 如权利要求16所述的方法,进一步包括,由所述LCA逻辑,基于从n-1到1的每一 个位位置i的所述掩码位,生成LCA掩码。
22. 如权利要求21所述的方法,其特征在于,将所述第一位向量X与所述第二位向量Y 相加是与生成所述LCA掩码并行地执行的。
【专利摘要】在一个实施例中,处理器包括至少一个浮点单元。该至少一个浮点单元可包括加法器、引导变化预测器(LCA)逻辑以及移位器。加法器可以将第一操作数X与第二操作数Y相加,以获得具有位长度n的输出操作数。LCA逻辑可以:对于从n-1到1的每一个位置i,基于第一操作数X和第二操作数Y,获得一组传播值以及一组位值;以及,基于该组传播值以及该组位值,生成LCA掩码。移位器可以基于LCA掩码,归一化输出操作数。描述并要求保护其他实施例。
【IPC分类】G06F9-06, G06F9-305
【公开号】CN104823153
【申请号】CN201380061966
【发明人】S·卢巴诺维奇, T·庞斯, A·格雷德斯廷, Z·斯波伯
【申请人】英特尔公司
【公开日】2015年8月5日
【申请日】2013年6月27日
【公告号】US20140188967, WO2014105187A1
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1