高性能通用处理器中浮点乘加部件的设计
发布时间:2020-11-19 08:25
随着集成电路集成密度的持续提高和成本的不断降低,单一芯片内能够集成更多的器件,采用更复杂的结构,完成更强大的功能。 浮点运算能力是考察一款通用处理器性能的重要指标之一。浮点乘加部件作为一种功能强大且用途广泛的运算部件,可以显著提高处理器的浮点运算能力。这一点已被多款商用的通用处理器所证明。因此,高性能通用处理器有必要增加浮点乘加部件。 浮点乘加部件的优点包括:速度快,精度高,能够降低对总线带宽的需求,减少读写寄存器堆的压力,提高指令吞吐率等。此外,浮点乘加部件能够执行单独的乘法和加法指令,还能够在软件控制下进行除法、开根运算,实现基本函数功能。 传统的浮点乘加部件采用“乘法-加法-规格化-舍入”的结构。与此不同,本文采用更为先进的浮点乘加部件结构,即“乘法-规格化-加法并舍入”,有效降低了延时,性能更为突出。缺点是付出了较大的面积代价。 前导1预测(LOP)是浮点乘加部件设计的关键算法之一。浮点乘加部件需要实现3个操作数的前导1预测电路,传统的LOP算法不能直接处理3个操作数,通过间接方法实现又会增加关键路径延时并增大电路面积。针对这一局限,本文提出了三个操作数的前导1预测算法,进行了理论推导和实验比较,可以有效缩短前导1预测电路的延时并减少面积,从而缩短整个乘加部件的延时。通过浮点乘加部件执行乘加、乘法、加法的延时都是一样的,这可能会造成某些应用下乘加部件的性能反而不如乘法器和加法器的情况。乘法/加法旁路技术可以改变这种情况,将浮点乘加部件执行乘法/加法的时间有效降低,从而提高浮点乘加部件的总体浮点性能。
【学位单位】:中国科学院研究生院(计算技术研究所)
【学位级别】:硕士
【学位年份】:2005
【中图分类】:TP332
【部分图文】:
集成电路的集成密度和成本在过去的 20 多年间发生了革命性的变化。芯集成度始终按照莫尔定律(Moore Law)预测的速度发展,即单个芯片上集晶体管数目随时间按指数规律增长,大约每三年翻两番。同时,随着 CM艺尺寸的不断降低,单位数量晶体管的制造成本也在不断降低。这些发展趋得通用处理器可以采用更复杂的体系结构结构、集成更多的功能部件典型的通用处理器的功能部件包括整数加法、乘法、除法和开根部件,浮法、乘法、除法和开根部件,以及完成比较(compare)、移动(move)、转convert,整数转浮点数,浮点数转整数)功能的其他部件等。然而,已有的部件并不能很好地满足大规模科学计算和工程计算问题对处理器浮点运算的要求,迫切需要一类更加强大的功能部件。应用程序是衡量通用处理器性能的最好标准。人们通常采用 SPEC 作为测序,它是一组被广泛采用的测试处理器性能的基准程序,由若干应用程序组成盖了操作系统、科学计算、工程应用等许多领域,分为整数测试程序和浮点程序两部分,分别得到整数性能指标 SPECint 和浮点性能指标 SPECfp。在[1]中 1997 年 Oberman 研究了 SPEC92 中的各个浮点应用程序(14 个),得种浮点指令(包括加法、减法、乘法、除法以及开根等)占所有浮点指令的比,如图 1.1 所示(SPEC92 中的各个应用程序编译时都采用 O3 的优化选项
浮点加法指令包括 add,sub,move, conv所有浮点指令的 55%,浮点乘法大约占 37%。通们发现大量的浮点加法和乘法指令出现在矩阵运算相乘或向量相乘(点积),归结起来就是计算内积nnb+a b+ +a b122内积的过程中,大量的浮点乘法和浮点加法是交叠法和加法指令具有数据依赖关系。如果将具有依赖一条运算指令,使用一个功能部件计算,经过一个始效降低浮点运算的执行时间,显著提升通用处理器发,IBM RISC System/6000 提供一条指令计算 a *Fused Multiply-Add)或乘加联合操作(Multiply-A3]中的规定,乘加联合(缩写为 MAF)操作定义为执存器 a 与寄存器 b 的值相乘,乘积与寄存器 c 的值整个操作只进行一次舍入,中间结果既不舍入,也加联合操作的运算部件称为乘加联合部件,分为整ting-point)两类,本文重点放在浮点乘加联合部件合部件的典型结构。
作 x := a * b + c 的乘数 a 为 1,或者加数 c 为 0,可或者乘法(a * b + 0),称为退化的乘加操作(degene,IBM POWER 系列和 Intel IA-64 架构的处理器就是和浮点乘法的。部件能够实现乘法或加法,必须在硬件上增加特路和逻辑,并且当结果为零时确定零的符号也比较复符号的)。加部件的其他优点对于寄存器堆,总线带宽,指令吞吐率和编译器等都需要读 3 个寄存器,写 1 个寄存器,中间结果(乘积执行的乘法和加法指令一共需要读 4 个寄存器,写 都要通过总线来传送,因而增加乘加部件可以减小功,并降低功能部件对总线带宽的需求(见论文[5])。m/6000 中的 FMAF 部件,说明了这一点,如图 1.4
【引证文献】
本文编号:2889956
【学位单位】:中国科学院研究生院(计算技术研究所)
【学位级别】:硕士
【学位年份】:2005
【中图分类】:TP332
【部分图文】:
集成电路的集成密度和成本在过去的 20 多年间发生了革命性的变化。芯集成度始终按照莫尔定律(Moore Law)预测的速度发展,即单个芯片上集晶体管数目随时间按指数规律增长,大约每三年翻两番。同时,随着 CM艺尺寸的不断降低,单位数量晶体管的制造成本也在不断降低。这些发展趋得通用处理器可以采用更复杂的体系结构结构、集成更多的功能部件典型的通用处理器的功能部件包括整数加法、乘法、除法和开根部件,浮法、乘法、除法和开根部件,以及完成比较(compare)、移动(move)、转convert,整数转浮点数,浮点数转整数)功能的其他部件等。然而,已有的部件并不能很好地满足大规模科学计算和工程计算问题对处理器浮点运算的要求,迫切需要一类更加强大的功能部件。应用程序是衡量通用处理器性能的最好标准。人们通常采用 SPEC 作为测序,它是一组被广泛采用的测试处理器性能的基准程序,由若干应用程序组成盖了操作系统、科学计算、工程应用等许多领域,分为整数测试程序和浮点程序两部分,分别得到整数性能指标 SPECint 和浮点性能指标 SPECfp。在[1]中 1997 年 Oberman 研究了 SPEC92 中的各个浮点应用程序(14 个),得种浮点指令(包括加法、减法、乘法、除法以及开根等)占所有浮点指令的比,如图 1.1 所示(SPEC92 中的各个应用程序编译时都采用 O3 的优化选项
浮点加法指令包括 add,sub,move, conv所有浮点指令的 55%,浮点乘法大约占 37%。通们发现大量的浮点加法和乘法指令出现在矩阵运算相乘或向量相乘(点积),归结起来就是计算内积nnb+a b+ +a b122内积的过程中,大量的浮点乘法和浮点加法是交叠法和加法指令具有数据依赖关系。如果将具有依赖一条运算指令,使用一个功能部件计算,经过一个始效降低浮点运算的执行时间,显著提升通用处理器发,IBM RISC System/6000 提供一条指令计算 a *Fused Multiply-Add)或乘加联合操作(Multiply-A3]中的规定,乘加联合(缩写为 MAF)操作定义为执存器 a 与寄存器 b 的值相乘,乘积与寄存器 c 的值整个操作只进行一次舍入,中间结果既不舍入,也加联合操作的运算部件称为乘加联合部件,分为整ting-point)两类,本文重点放在浮点乘加联合部件合部件的典型结构。
作 x := a * b + c 的乘数 a 为 1,或者加数 c 为 0,可或者乘法(a * b + 0),称为退化的乘加操作(degene,IBM POWER 系列和 Intel IA-64 架构的处理器就是和浮点乘法的。部件能够实现乘法或加法,必须在硬件上增加特路和逻辑,并且当结果为零时确定零的符号也比较复符号的)。加部件的其他优点对于寄存器堆,总线带宽,指令吞吐率和编译器等都需要读 3 个寄存器,写 1 个寄存器,中间结果(乘积执行的乘法和加法指令一共需要读 4 个寄存器,写 都要通过总线来传送,因而增加乘加部件可以减小功,并降低功能部件对总线带宽的需求(见论文[5])。m/6000 中的 FMAF 部件,说明了这一点,如图 1.4
【引证文献】
相关博士学位论文 前1条
1 朱海涛;面向高密度计算的多核处理器结构研究[D];中国科学技术大学;2011年
本文编号:2889956
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2889956.html