买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:超威半导体公司
摘要:本公开涉及一种用于在多个算术逻辑单元ALU中执行多精度计算的方法和设备,其包括使第一单指令多数据SIMD块通道装置与第二SIMD块通道装置配对以产生在所述第一与第二通道装置之间具有单层级交错的第一块对。使第三SIMD块通道装置与第四SIMD块通道装置配对以产生在所述第三与第四通道装置之间具有单层级交错的第二块对。在所述第一块对和所述第二块对处接收多个源输入。所述第一块对计算第一结果,且所述第二块对计算第二结果。
主权项:1.一种用于在多个算术逻辑单元中执行多精度计算的方法,其包括:使第一单指令多数据块通道装置与第二单指令多数据块通道装置配对以产生在所述第一单指令多数据块通道装置与所述第二单指令多数据块通道装置之间具有单层级交错的第一块对;使第三单指令多数据块通道装置与第四单指令多数据块通道装置配对以产生在所述第三单指令多数据块通道装置与所述第四单指令多数据块通道装置之间具有单层级交错的第二块对;在所述第一块对和所述第二块对处接收多个源输入;由所述第一块对计算第一结果,其中所述第一单指令多数据块通道装置将其计算结果提供到所述第二单指令多数据块通道装置;以及由所述第二块对计算第二结果,其中所述第三单指令多数据块通道装置将其计算结果提供到所述第四单指令多数据块通道装置,其中在与由所述第一块对进行的计算相同数量的时钟时间循环中同时执行所述第二结果的计算,并且其中在所述第一块对中执行以计算所述第一结果的计算是在与在所述第二块对中进行的对应计算相同的时钟时间循环中执行的。
全文数据:用于执行低功率和低延时多精度计算的方法和系统背景技术[0001]单指令多数据(SIMD块内的常规向量着色器处理器包含具有算术逻辑单元ALU的四个管线通道例如,X、Y、Z和W通道),它们在每一循环中彼此交错从而总共得到三个额外层级。考虑相应管线级内以及相应管线级之间的5到8个循环的内部ALU延时,由于SHffi块中的支持操作计算的每一额外管线级,因此会存在明显的硅占据面积和功耗开销。[0002]也就是说,每一ALU包含相邻通道的ALU之间的单循环差异。使用三级通道交错架构(S卩,通道时移允许实现常见的向量点积运算,但是引入了额外的管线分级寄存器。此架构也可通过在相邻SMD通道中使用32位ALU而用于64位浮点运算实现。由于三层级通道交错架构的使用引入了三个额外管线级,所以这导致单向量着色器处理器内的寄存器硬件和延时开销。因此,由于大多数寄存器触发器含有数据且经常双态触发,因此所述三个管线级消耗了有用的功率。三层级交错通道架构的实施例可以参见美国专利No.8,468,191,所述美国专利如同完整陈述那样以引用方式并入本文。附图说明[0003]从以下通过结合附图给出的描述可得到更详细的理解,附图中:[0004]图1是其中可实现一个或多个所公开实施方案的实施例装置的框图;[0005]图2A是用于执行多精度计算的具有三层级通道交错的常规S頂D设备的实施例图;[0006]图2B是用于执行多精度计算的具有成对通道和单层级交错的实施例SIMD设备的图;[0007]图3A是使用在具有二分之一速率性能的三个层级中交错的四个32位ALU的常规64位浮点运算实现的实施例;[0008]图3B是用于在具有成对通道和所述成对通道中的单层级交错的SIMD块中执行具有二分之一速率性能的64位精度计算对比32位精度计算的实施例管线图;[0009]图4是包含时钟门控成对SMD通道的用于执行具有四分之一速率性能的64位精度计算对比32位精度的实施例管线图,其中所述成对通道中具有单层级交错;[0010]图5A是用于在SIMD通道中执行超越两遍次单精度和双精度计算的第一遍次的实施例管线图,其中成对通道中具有单层级交错;以及[0011]图5B是用于在SIMD通道中执行超越两遍次单精度和双精度计算的第二遍次的实施例管线图,其中成对通道中具有单层级交错。具体实施方式[0012]虽然下文提供了实施方案的更详细描述,但简要来说公开了用于以减少的延时和低功耗执行多精度计算的方法和设备。对于双精度和超越指令,利用多于一个单精度乘法器。因此,利用四个算术逻辑单元ALU—起来完成一个线程的双精度或超越指令计算。通过利用两个而不是四个ALU之间的相依性,并且利用额外的迭代遍次,一个线程的超越指令计算可以在比常规方案少的数目的循环中完成。对于双精度乘-加指令计算,在两个ALU之间利用两个额外乘法器。因此,可以实现相同处理量,同时消除四个ALU之间的相依性,因此通过消除管线中的两个触发器层级而减少延时且节省硅面积。另外,由于指令的执行时间延迟和所需的管线寄存器可以减少,因此可以在整个snro数据路径中在功率节省的情况下执行指令。[0013]公开了一种用于在多个算术逻辑单元ALU中执行多精度计算的方法。所述方法包含使第一单指令多数据S頂D块通道装置与第二SMD块通道装置配对以产生在第一与第二通道装置之间具有单层级交错的第一块对。使第三snro块通道装置与第四SMD块通道装置配对以产生在第三与第四通道装置之间具有单层级交错的第二块对。在第一块对和第二块对处接收多个源输入。第一块对计算第一结果,且第二块对计算第二结果。[0014]公开了一种用于执行多精度计算的设备。所述设备包含第一算术逻辑单元ALU、第二ALU、第三ALU和第四ALU。第二ALU以操作方式与第一ALU连接,其中第一ALU与具有单层级交错的第二ALU配对,作为被配置成用于接收多个输入且计算第一结果的第一计算单元。第四ALU以操作方式与第三ALU连接,其中第三ALU与具有单层级交错的第四ALU配对,作为被配置成用于接收所述多个输入且计算第二结果的第二计算单元。[0015]—种非暂时性计算机可读媒介,其上记录有指令,所述指令当由计算装置执行时致使所述计算装置执行所公开的操作。所述操作包含使第一单指令多数据SIMD块通道装置与第二SIMD块通道装置配对以产生在第一与第二通道装置之间具有单层级交错的第一块对。使第三Snro块通道装置与第四SMD块通道装置配对以产生在第三与第四通道装置之间具有单层级交错的第二块对。在第一块对和第二块对处接收多个源输入。第一块对计算第一结果,且第二块对计算第二结果。[0016]图1是其中可实现一个或多个所公开实施方案的实施例装置100的框图。装置100可以包含计算机,例如桌上型计算机、平板计算机、游戏装置、手持式装置、机顶盒、电视机或移动电话。装置100包含处理器102、存储器104、存储装置106、一个或多个输入装置108,和一个或多个输出装置110。装置100还可任选地包含输入驱动器112和输出驱动器114。应了解,装置100可包含图1中未图示的额外组件。[0017]处理器102可包含中央处理单元(CPU、图形处理单元GPU、位于同一裸片上的CPU和GPU,或者一个或多个处理器核心,其中每一处理器核心可为CPU或GPU。存储器104可与处理器102位于同一裸片上,或者可与处理器102分开定位。存储器104可包含易失性或非易失性存储器,例如随机存取存储器RAM、动态RAM或高速缓冲存储器。[0018]存储装置106可包含固定或可移除式存储装置,例如硬盘驱动器、固态驱动器、光盘或快闪驱动器。输入装置108可包含键盘、小键盘、触摸屏、触摸垫、检测器、麦克风、加速度计、陀螺仪、生物扫描仪,或网络连接例如,用于无线IEEE802信号的发射和或接收的无线局域网卡)。输出装置110可包含显示器、扬声器、打印机、触觉反馈装置、一个或多个灯、天线,或网络连接例如,用于无线IEEE802信号的发射和或接收的无线局域网卡)。[0019]输入驱动器112与处理器102和输入装置108通信,且准许处理器102接收来自输入装置108的输入。输出驱动器114与处理器102和输出装置110通信,且准许处理器102将输出发送到输出装置110。应注意,输入驱动器112和输出驱动器114是任选的组件,且装置100在输入驱动器112和输出驱动器114不存在的情况下将以相同方式操作。虽然所描述的实施方案包含主显示器,但主显示器并非需要的。因此,可以仅包含源视频装置。以此方式,控制地域可以是具有多个便携式装置且无主显示器的办公室环境。[0020]图2A是用于执行多精度计算的具有三层级通道交错的常规SMD设备200A的实施例图。设备200A包含多个ALU通道W、Z、Y和X标示为202、204、206和208。通道ALU202、204、206和208例如为乘-加单元MADD。布置产生器250与ALU202、204、206和208通信以为ALU202、204、206和208提供输入。如图2A中所示,ALU202可以将结果提供到ALU204,ALU204可以将结果提供到ALU206,且ALU206可以将结果提供到ALU208。[0021]图2B是用于执行多精度计算的具有成对通道和单层级交错的实施例SIMD设备2008的图。类似于设备20^,设备2008包含多个4〇]通道胃、2、¥和乂标示为202、204、206和208。通道ALU202、204、206和208例如为乘-加单元MADD。布置产生器250与ALU202、204、206和208通信以为ALU202、204、206和208提供输入。如图2中所示,由于单循环时移操作模式,因此ALU202将结果提供到ALU204,而ALU206将结果提供到ALU208。[0022]以下映射表(S卩,表1表示用于每一通道的值的实施例映射。也就是说,源例如,src_a、src_t^Psrc_c映射到表1中的值或函数,其中Mad_f_32是等于A*B+C的32位链式乘-加运算。变量V0、V1和V2是用作计算中的源操作数的选定向量寄存器内容。[0023][0024]表1[0025]图3A是使用在具有二分之一速率性能的三个层级中交错的四个32位ALU的常规64位浮点运算实现300A对比32位浮点运算的实施例。图3A描绘图2A的设备200A利用具有八个即,CO到C7主循环级的常规三层级交错管线用于执行二分之一速率的64位精度计算对比32位精度计算的详细图。分别地,两个通道Z和X提供64位结果,而通道W和Y在早两个循环中执行运算以支持Z和X通道(S卩,Cl到C2和C3到C4。在运算的剩余时间期间,W和Y通道双态触发为空闲且消耗功率而不产生相关结果。由于三层级交错,因此Y和X通道比W通道晚两个循环操作,这引入了额外的延时和管线寄存器。在时钟循环C6和C7中对结果执行浮点归一化,然后将结果输出到通道Z和X的输出寄存器。[0026]图3B是用于在具有成对通道和所述成对通道中的单层级交错的SIMD块中执行具有二分之一速率性能的64位精度计算对比32位精度计算的实施例管线图305。图305描述了图2B的设备200B的运算,其具有减少数目的所需循环以及在运算期间被部分地时钟门控的32位通道。因此,此结构引入了SMD通道配对以及仅单层级(S卩,1层级)交错。而且,通过对空闲的管线循环和空闲的通道进行时钟门控,可以减少功耗。图3B包含通道W、Z、Y和X,其可分别与ALU202、204、206和208相关联。与图2A中描绘的常规设备200A相反,这些通道在每一对中以一个时钟移位交错例如,1个额外级而非3个)。多个源输入例如,src_a、src_t^PSrc_c在数据布置循环CO中组合在一起以为随后的计算循环准备操作数。可以在时钟循环例如,Cl、C2、C3、C4和C5期间执行对输入的运算,以使用加法器310、乘法器320或多路复用器MUX330得到最终结果。[0027]如图3B中所示,W通道结果和Y通道结果是在时钟循环Cl中计算。W通道结果在时钟循环C2提供到Z通道中的ALU204J通道结果也在时钟循环C2提供到X通道中的ALU208。在此之后,在随后的C2、C3、C4和C5循环上,W和Y通道均被动态地时钟门控以阻挡任何数据改变和传送,从而提供功率节省。通道Z和X在循环C2到C5上在正常模式中继续操作,从而为它们的相应输出寄存器提供计算。类似于图3A,在最后两个时钟循环在此情况下为C4和C5中对结果执行浮点归一化,然后将结果输出到通道Z和X的输出寄存器。虽然未示出动态时钟门控电路,但指令操作码解码器和适当的状态机可以每通道和每级为基础产生任何时钟门控控制序列。[0028]图4是包含时钟门控成对SMD通道的用于执行具有四分之一速率性能的64位精度计算对比32位精度的实施例管线图400,其中所述成对通道中具有单层级交错。图4包含通道W、Z、Y和X,其例如分别与ALU202、204、206和208相关联。与图2A中描绘的常规设备相反,图4中描绘的通道在每一对中以一个时钟移位交错例如,1个额外级而非3个),类似于图2B的设备200B。多个源输入例如,src_a、src_t^Psrc_c在数据布置循环CO中组合在一起以计算结果。可以在时钟循环例如,:1、02工3、04和05期间执行对输入的运算,以使用加法器410或乘法器420得到最终结果。[0029]如图4中所示,在时钟循环Cl和C2期间计算Y通道结果。Y通道结果在时钟循环C2提供到X通道中的ALU208。来自X通道中的时钟循环Cl的结果在时钟循环C2中与src_c输入求和。通道W和Z未被使用和动态地时钟门控,(即,空闲和在需要时接通),除了通道Z中的时钟循环C5,其中结果从通道X复制到用于通道Z的输出寄存器。因此,在通道X和Z的输出寄存器处输出结果。[0030]图5A到5B是用于使用成对通道中的单层级交错在具有成对通道的SMD块上执行超越两遍次单精度计算的实施例管线图500。图5A是用于在SMD通道中执行超越两遍次单精度和双精度计算的第一遍次的实施例管线图,其中成对通道中具有单层级交错,而图5B是用于在SIMD通道中执行超越两遍次单精度和双精度计算的第二遍次的实施例管线图,其中成对通道中具有单层级交错。[0031]以下映射表S卩,表2指示用于超越函数的两遍次实现的每一通道的映射。也就是说,源例如,src_a、src_t^Psrc_c映射到表2中的值或函数。[0032][0033]表2[0034]图5A包含通道W、Z、Y和X,其例如分别与ALU202、204、206和208相关联。多个源输入例如,src_a、src_t^Psrc_c在数据布置循环CO中组合在一起以为随后的结果计算准备数据。可以在时钟循环(例如,:1、02、03、04和05期间执行对输入的运算,以使用加法器510、乘法器520和查找表标示为ΔX、斜率1、斜率2、斜率3和点查找表LUT得到最终结果。[0035]参见图5A,在通道Z和X上在时钟循环Cl和C2中在第一遍次例如,遍次0或表2中的超越遍次0期间执行运算。例如,在Cl期间利用查找表ΔX、斜率2和斜率3。在时钟循环C2期间,将ΔΧ和斜率3的结果相乘且随后相加到来自斜率2的结果。用于遍次0的通道Z和X的所得结果在C3中返回到src_a,用于在第二遍次(S卩,遍次1期间使用。未使用的通道W和Y被时钟门控而不消耗动态功率。作用中的通道Z和X中的循环C3到C5也可以连同空闲的通道W和Y一起被时钟门控或跳过。[0036]现在参见图5B,在时钟循环C1、C2和C3中在第二遍次例如,遍次1或表2中的超越遍次1期间执行运算。举例来说,在时钟循环Cl期间,利用查找表ΔX、斜率1和点。将ΔX查找表和斜率1的结果相乘,且将所得结果相加到W和Y通道中的点查找表的结果。在C2期间,将来自遍次〇的Z通道结果与src_b相乘,且将所得结果相加到Src_c。而且在C2期间,将来自遍次0的X通道结果与src_b相乘,且将所得结果相加到src_c。[0037]在时钟循环C3期间,在Z和X通道中将来自时钟循环Cl和C2的所得结果相加在一起以在Z和X通道中提供结果。举例来说,在Z通道中,将来自C2的结果乘以Δχ2,在时钟循环Cl中将其结果相加到来自W通道的结果。而且在时钟循环C3期间,在X通道中,将来自C2的结果乘以Δχ2,在时钟循环Cl中将其结果相加到来自Y通道的结果。如图5B中所示,在循环C4到C5中,W和Y通道不在作用中,且可应用时钟门控技术来减少动态功率。另外,Z和X通道中的结果在循环C4和C5中经历浮点归一化,然后作为结果输出到Z和X通道的输出寄存器。[0038]应了解,基于本文的公开,许多变化是可能的。虽然上文以具体组合描述了特征和元件,但每一特征或元件可在没有其它特征和元件的情况下单独使用,或者在具有或没有其它特征和元件的情况下以各种组合来使用。[0039]所提供的方法可在通用计算机、处理器或处理器核心中实现。合适的处理器包含例如通用处理器、专用处理器、常规处理器、数字信号处理器DSP、多个微处理器、联合DSP核心的一个或多个微处理器、控制器、微控制器、专用集成电路ASIC、现场可编程门阵列FPGA电路、任一其它类型的集成电路(IC,和或状态机。可以通过使用经处理的硬件描述语言HDL指令的结果以及包含网表的其它中间数据这些指令能够存储在计算机可读媒介上配置制造工艺来制造这些处理器。此处理的结果可为掩模制品,所述掩模制品随后在半导体制造工艺中用来制造实施本发明的方面的处理器。[0040]本文提供的方法或流程图可在合并于计算机可读存储媒介中以供通用计算机或处理器执行的计算机程序、软件或固件中实现。计算机可读存储媒介的实施例包含只读存储器ROM、随机存取存储器RAM、寄存器、高速缓冲存储器、半导体存储器装置、例如内部硬盘和可移除盘等磁性媒介、磁光媒介,以及例如CD-ROM盘和数字多功能盘DVD等光学媒介。
权利要求:1.一种用于在多个算术逻辑单元ALU中执行多精度计算的方法,其包括:使第一单指令多数据SMD块通道装置与第二SMD块通道装置配对以产生在所述第一与第二通道装置之间具有单层级交错的第一块对;使第三SIMD块通道装置与第四SMD块通道装置配对以产生在所述第三与第四通道装置之间具有单层级交错的第二块对;在所述第一块对和所述第二块对处接收多个源输入;由所述第一块对计算第一结果;以及由所述第二块对计算第二结果。2.如权利要求1所述的方法,其进一步包括在SIMD块通道装置未用于计算的周期期间对所述SIMD块通道装置中的一者或多者进行时钟门控。3.如权利要求1所述的方法,其进一步包括在所述第一SIMD块通道装置的输出寄存器处输出所述第一结果。4.如权利要求1所述的方法,其进一步包括在所述第二SIMD块通道装置的输出寄存器处输出所述第一结果。5.如权利要求1所述的方法,其进一步包括在所述第三SIMD块通道装置的输出寄存器处输出所述第二结果。6.如权利要求1所述的方法,其进一步包括在所述第四SIMD块通道装置的输出寄存器处输出所述第二结果。7.如权利要求1所述的方法,其中所述第一结果和所述第二结果是相同结果。8.如权利要求1所述的方法,其进一步包括对所述结果执行归一化。9.如权利要求1所述的方法,其中所述第一结果是在超越运算的第一遍次中产生并且由所述第一块对利用以计算用于输出的第三结果。10.如权利要求9所述的方法,其中所述第二结果是在超越运算的所述第一遍次中产生并且由所述第二块对利用以计算用于输出的第四结果。11.一种用于执行多精度计算的设备,其包括:第一算术逻辑单元ALU;第二ALU,其以操作方式与所述第一ALU连接,其中所述第一ALU与具有单层级交错的第二ALU配对,作为被配置成用于接收多个输入且计算第一结果的第一计算单元;第三ALU;以及第四ALU,其以操作方式与所述第三ALU连接,其中所述第三ALU与具有单层级交错的所述第四ALU配对,作为被配置成用于接收所述多个输入且计算第二结果的第二计算单元。12.如权利要求11所述的设备,其进一步包括布置产生器,所述布置产生器以操作方式连接到所述第一、第二、第三和第四ALU以将所述多个输入提供到相应ALU。13.如权利要求11所述的设备,其进一步包括时钟门控装置,所述时钟门控装置以操作方式与所述第一、第二、第三和第四ALU耦合,用于在ALU未用于计算的周期期间对所述ALU中的一者或多者进行时钟门控。14.如权利要求11所述的设备,其中所述第一、第二、第三和第四ALU包含相应输出寄存器。15.如权利要求14所述的设备,其中所述第一结果在所述第一ALU的所述输出寄存器处输出。16.如权利要求14所述的设备,其中所述第一结果在所述第二ALU的所述输出寄存器处输出。17.如权利要求14所述的设备,其中所述第二结果在所述第三ALU的所述输出寄存器处输出。18.如权利要求14所述的设备,其中所述第二结果在所述第四ALU的所述输出寄存器处输出。19.如权利要求11所述的设备,其中所述第一结果是在超越运算的第一遍次中产生并且由所述第一计算单元利用以计算用于输出的第三结果,且所述第二结果是在超越运算的所述第一遍次中产生并且由所述第二计算单元利用以计算用于输出的第四结果。20.—种非暂时性计算机可读媒介,其上记录有指令,所述指令当由计算装置执行时致使所述计算装置执行包含以下各项的操作:使第一单指令多数据SMD块通道装置与第二SMD块通道装置配对以产生在所述第一与第二通道装置之间具有单层级交错的第一块对;使第三SIMD块通道装置与第四SMD块通道装置配对以产生在所述第三与第四通道装置之间具有单层级交错的第二块对;在所述第一块对和所述第二块对处接收多个源输入;由所述第一块对计算第一结果;以及由所述第二块对计算第二结果。
百度查询: 超威半导体公司 用于执行低功率和低延时多精度计算的方法和系统
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。