高性能除法及根计算单元的制作方法

文档序号:13426414阅读:187来源:国知局
高性能除法及根计算单元的制作方法

所揭示方面涉及高性能除法及根计算单元。更具体来说,示范性方面涉及在存取处理器中的除法及/或根计算中所使用的查找表的速度及功率消耗方面的改进。



背景技术:

计算机系统或处理器可包含对数据执行算术及逻辑运算的算术及逻辑单元(alu)。一些alu可包含可经配置以执行算术及/或根计算(例如,平方根)的浮点单元。可使用可以迭代方式运算的类似算法在处理器中实施除法及平方根运算。

例如,用于执行除法及/或平方根计算的常规算法被称作斯维尼、罗伯森及托赫尔(srt)算法。srt算法在本质上为迭代的。srt算法的迭代可通过每周期执行一个迭代来在流水线式处理器中实施,但其还可能将每一迭代分散在多个时钟周期或流水线阶段内。还可能以非流水线方式在例如阵列除法器中实施srt算法。srt算法可每迭代产生所要结果的一或多个位(例如,平方根运算的结果的乘法的商)。特定除法或平方根算法的“基数”为每一迭代中所产生或计算的位数的指示。基数4算法在每一迭代中计算2位的商,而将基数增加到基数16算法在每一迭代中计算4位,此与基数4算法相比加倍速度或将等待时间减半。然而,增加算法的基数导致增加算法的实施方案的复杂性及相关联的硬件及/或软件成本。

srt算法的常规实施方案涉及每一迭代中的表查找。使用用除数(或分母)除被除数(或分子)的常规除法过程来在一或多个迭代中产生结果或商来解释表查找。在第一迭代中,确定除数除被除数的次数。此数目(也被称作倍数)形成商的一或多个位(基于基数)。将所述倍数乘以除数从被除数减去以形成部分余数。运算接着移动到下一迭代,其中被除数被替换为部分余数。重复与确定除数除部分余数的次数有关的步骤以获得商的其余位以及下一部分余数。如果商为有理数,那么重复此过程直到部分余数为零,或如果商为无理数,那么此过程无限连续。实际上,除法过程在达到商的预定精度时终止。

srt算法通过提供部分余数值与各种可能除数值的商值的映射来简化上述过程。为此映射提供查找表或二维阵列,其中例如将除数安置在x轴(或行方向)且将部分余数安置在y轴(或列方向)上。针对x-y平面上的每一交叉点或针对除数值与部分余数值的每一组合提供商值。在一些实施方案中,在映射中可利用除数及/或部分余数的少于全部的位(例如,预定数目个最高有效位(msb))。将认识到,通过使用较少位来截断除数及/或部分余数的精度可能影响在表中提供的对应商值的准确度。然而,如果使用较高精度/位数的除数及/或部分余数值,那么表的大小及对应查找时间增加。

在每一迭代中,使用查找表,使用所述迭代的部分余数(或部分余数的经截断版本)来查找针对除法的特定除数(或经截断版本)的商位。取决于各种参数,例如,srt算法的基数、查找表中的除数及/或部分余数值的精度的位数等等,存取查找表的速度以及实施查找表的区域/成本方面的费用可能非常高。存取查找表为处理每一迭代的关键路径。

使用对应srt算法来确定数(或被开方数)的根(例如,平方根)的状况是类似的,其中在表查找中使用根的初始估计而非除数。虽然此处未更详细地描述根运算,但将认识到,对应srt算法也涉及每一迭代中的表查找,此影响在处理器中实施根计算的srt算法的速度及功率计算。

因此,此项技术中需要克服用于除法及/或根计算的srt算法的常规实施方案中的上文提及的限制。



技术实现要素:

本发明的示范性方面关于用于除法/根计算的系统及方法。根据关于除法/根计算的斯维尼、罗伯森及托赫尔(srt)算法的查找表存储在存储器中。与对应于除数/根估计的所选择列有关的信息存储在高速存储器中。使用所高速缓存的信息来迭代地执行除法/根计算以改进存取时间且减少在每次迭代时存取整个查找表的等待时间。在每一迭代中,基于当前部分余数从所述高速缓存信息确定商/根,且基于所述商/根、所述除数/根估计以及所述当前部分余数而产生下一部分余数。本文中所描述的技术的实施方案针对用于在处理器中快速计算浮点除法及平方根的机制。

举例来说,示范性方面涉及执行除法的方法,所述方法包括:选择根据关于除法的斯维尼、罗伯森及托赫尔(srt)算法的查找表的列,所选择列对应于除法的除数且高速缓存与高速存储器中的所选择列有关的信息。方法包含:通过在每一迭代中使用当前部分余数来从所高速缓存的信息确定商来使用所高速缓存的信息执行除法,以及基于商、除数以及当前部分余数来产生下一部分余数。

另一示范性方面涉及执行根计算的方法,所述方法包括:选择根据关于根计算的斯维尼、罗伯森及托赫尔(srt)算法的查找表的列,所选择列对应于根计算的根估计且高速缓存与高速存储器中的所选择列有关的信息。方法包含:通过在每一迭代中使用当前部分余数来从所高速缓存的信息确定根来使用所高速缓存的信息执行根计算,以及基于根、根估计以及当前部分余数来产生下一部分余数。

另一示范性方面涉及处理器,所述处理器包括经配置以存储根据关于除法/根计算的斯维尼、罗伯森及托赫尔(srt)算法的查找表的存储器,以及经配置以高速缓存与查找表的所选择列有关的信息的高速存储器,所选择列对应于除数/根估计。除法/根计算单元经配置以使用所高速缓存的信息来迭代地执行除法/根计算,包括除法/根查找逻辑,所述除法/根查找逻辑经配置以基于每一迭代中的当前部分余数来从所高速缓存的信息确定商/根,且基于商/根、除数/根估计以及当前部分余数而产生下一部分余数。

另一示范性方面涉及处理系统,所述处理系统包括用于存储根据关于除法/根计算的斯维尼、罗伯森及托赫尔(srt)算法的查找表的装置,以及用于高速缓存与查找表的所选择列有关的信息的高速缓存装置,所选择列对应于除数/根估计。处理系统包含用于基于用于使用每一迭代中的当前部分余数来从所高速缓存的信息确定商/根的装置以及用于使用商/根、除数/根估计以及当前部分余数来产生下一部分余数的装置而使用所高速缓存的信息迭代地执行除法/根计算的装置。

附图说明

附图经呈现以辅助对本文中所描述的技术的描述且经提供仅用于说明实施方案且并不用于限制实施方案。

图1为根据本文中所描述的技术的一或多个实施方案的计算机系统的高级框图。

图2为根据本文中所描述的技术的一或多个实施方案的计算机系统的框图。

图3为根据用于本文中所描述的技术的一或多种实施方案中的srt算法的查找表的示意图。

图4为根据本文中所描述的技术的一或多个实施方案的除法及平方根单元的框图。

图5为根据本文中所描述的技术的一或多个实施方案说明在处理器中执行除法及平方根的方法的流程图。

图6为根据本文中所描述的技术的一或多个实施方案说明在处理器中执行除法及平方根的另一方法的流程图。

图7a到c说明适合于实施图6中所描绘的方法的高性能除法及平方根单元的方面。

图8a到c说明适合于实施图6中所描绘的方法的另一高性能除法及平方根单元的方面。

图9为根据本文中所描述的一或多个实施方案的查找逻辑的框图。

图10为展示其中可采用根据本文中所描述方面的除法/根计算单元的示范性无线通信系统的框图。

具体实施方式

在针对本发明的特定方面的以下描述及相关图式中揭示本发明的方面。可设计替代方面而不背离本发明的范围。另外,本发明的习知元件将不详细描述或将被省略以便不混淆本发明的相关细节。

措词“示范性”在本文中用于意指“用作实例、例子或说明”。本文中描述为“示范性”的任一方面未必解释为比其它方面较佳或有利。同样地,术语“本发明的方面”不需要本发明的所有方面包含所论述的特征、优点或操作模式。

本文中所使用的术语为仅出于描述特定方面的目的且并不意欲为限制本发明的方面。如本文中所使用,除非上下文另有明确指示,否则单数形式“一”及“所述”意欲包含复数形式。将进一步理解,术语“包括”及/或“包含”在本文中使用时规定所述特征、整数、步骤、操作、元件及/或组件的存在,但不排除存在或添加一或多个其它特征、整数、步骤、操作、元件、组件及/或其群组。

此外,许多方面是就由(例如)计算装置的元件执行系列动作方面加以描述。应认识到,本文中所描述的各种动作可通过特定电路(例如,专用集成电路(asic))、通过由一或多个处理器执行的程序指令或由两者的组合来执行。另外,本文中所描述的这些动作序列可被认为完全体现在任何形式的计算机可读存储媒体内,所述计算机可读存储媒体其中存储有对应的计算机指令集,所述计算机指令集在执行时将致使相关联处理器执行本文中所描述的功能性。因此,本发明的各种方面可以若干个不同形式体现,已预期其全部在所主张标的物的范围内。另外,对于本文中所描述的方面中的每一者,对应形式的任何此些方面可在本文中描述为(例如)“经配置以”执行所描述动作的“逻辑”。

本发明的示范性方面针对除法及根计算(例如,平方根,立方根,等等)的高性能实施方案。在一些方面中,示范性除法及平方根单元经配置以加速且简化srt算法的常规实施方案的复杂性。根据关于除法/根计算的斯维尼、罗伯森及托赫尔(srt)算法的查找表存储在存储器中。srt算法的每一迭代中的表查找过程可基于例如确定查找表子集而经简化,查找表子集包括针对在示范性处理器中实施的特定除法或根计算存取的查找表的一或多个表项目。在除法的状况下,子集可包含对应于特定除法的除数的所选择列的表项目。应认识到,除数将为srt算法的每一迭代所共用,且因此可从综合查找表提取包括对应于关于所述特定除数的各种可能部分余数值的各种可能商值的所选择列,所述综合查找表具有关于其它除数值的这些值。在示范性方面中,可将所提取的所选择列放置在简化的一维存储结构中,所述一维存储结构可用每一迭代中的部分余数更简单地加索引(与如在常规实施方案中用两个指数为二维查找表加索引相反)。可以数种方式实施一维存储结构。无论特定实施方案如何,一维存储结构可经高速缓存在高速存储器中且针对特定除法中所涉及的众所迭代以改进速度存取。由于一维存储结构的存储、加索引及存取比二维查找表简单,因此每一迭代中的功率消耗也减少。

关于特定除数的所选择列的提取及存储可以数种方式实施。在一些方面中,可将列掩模应用于二维表以便提取对应于特定除法运算的特定除数值的所选择列。替代地,可直接存取所选择列。将参考本发明的各种示范性方面进一步阐释所选择列的提取。一旦被提取,可将所选择列存储在高速存储器中,所述高速存储器可经配置以支持一维存储结构。例如,高速存储器可为芯片上高速缓存器,所述芯片上高速缓存器集成在与处理器相同的芯片上,所述处理器包括算术及逻辑单元(alu),或更具体来说,可用于除法及根计算的浮点单元(fpu)。在示范性除法开始时,可读取被除数及除数操作数(例如,从寄存器文件、高速缓存器、主存储器等等),且可对主或综合二维查找表执行表查找。所选择列可使用除数操作数提取且将其放置在高速存储器中。可接着在除法的每一迭代中存取高速存储器的项目。

虽然上述方面涉及用于确定对应于部分余数与除数的组合的特定映射的商位的表查找,但替代实施方案为可能的,其中可从逻辑表达式获得相同映射。例如,针对每一除数值,针对特定部分余数值的商值可使用部分余数值及预定系数的位表达为布尔(boolean)或逻辑表达式。由于多于一个的部分余数可针对特定除数映射到相同商值,因此逻辑表达式经公式化来利用映射中的重复。在示范性方面中,可用于针对特定除数值及各种可能部分余数值导出商值的逻辑表达式(或更具体来说,系数值)可经确定且用于涉及相同特定除数值的各种迭代。

应理解,在示范性实施方案中,除数及/或部分除数的少于全部位(例如,预定数目个msb)可用于各种表查找操作及/或使用逻辑表达式表达到商值的映射。

与根计算(例如,平方根)有关的方面在本发明中并未以与除法相同详细程度予以描述。这是因为针对除法所论述的各种示范性方面可容易地扩展到根计算。例如,在关于用于使用srt算法实施的特定除法运算的表查找参考特定除数的情况下,针对使用srt算法的根计算的状况,可替代地使用对根的估计。因此,可使用根的初始估计来选择用于根计算的类似查找表的列,其中可从不同查找表或此项技术中已知的其它机制导出初始估计。出于本发明的目的,在其涉及根计算时,其余过程类似。

因此,描述包含除法/根计算单元的示范性处理器。存储器经配置以存储根据关于除法/根计算的斯维尼、罗伯森及托赫尔(srt)算法的查找表,且高速存储器经配置以高速缓存与查找表的所选择列有关的信息,所选择列对应于除数/根估计。除法/根计算单元经配置以使用所高速缓存的信息迭代地执行除法/根计算。所高速缓存的信息可包含查找表的所选择列中的针对除数/根估计的所有商/根值。在一些方面中,所高速缓存的信息包括商/根选择掩模,所述商/根选择掩模基于查找表的所选择列的除数/根估计的逻辑组合。

迭代地执行除法/根计算涉及除法/根查找逻辑,所述除法/根查找逻辑经配置以基于每一迭代中的当前部分余数来从所高速缓存的信息确定商/根,且基于商/根、除数/根估计以及当前部分余数而产生下一部分余数。针对第一迭代的当前部分余数为针对除法/平方根的被除数/被开方数。

在一些实施方案中,除法/根查找包含例如倍数选择多路复用器的硬件以基于商/根而选择除数估计的倍数,且包含部分余数减法器以产生下一部分余数作为从当前部分余数减去的除数/根的倍数。除法/根查找逻辑可经配置以仅基于每一迭代中的当前部分余数的预选择数目个最高有效位(msb)而从所高速缓存信息确定商/根。进位传递加法器(cpa)可经配置以仅加总来自上一迭代的一对冗余部分余数的最高有效位。一对冗余部分余数寄存器可以冗余形式存储下一部分余数。此外,可使用一或多个商寄存器(例如包括所求商/根寄存器(q)及所求商/根减一寄存器(q-1)的一对寄存器)来存储每一迭代中的商/根。

现在参考图1,说明经配置以实施示范性除法及/或根计算运算的处理器100的高级概述。在除法的状况下,被除数及除数操作数可分别经接收且存储在被除数寄存器104及除数寄存器102中。商/根查找表106包含存储结构,所述存储结构包括具有经映射(或经截断以指示)对应商值的部分余数值与除数值的组合的二维阵列。如先前所提及,部分余数值及/或除数值的少于全部位(例如,预定数目个msb)可用于商或根查找表106。因此,来自除数寄存器102的除数的位可用于选择商或根查找表106的对应列。所选择列或所选择商可从商/根查找表106提取。列/商选择掩模108可包含用以从商/根查找表106提取所选择列或所选择商的掩模函数或逻辑。

在列/商选择掩模108的输出处可用的所选择列或所选择商可经锁存或直接馈送到迭代器110。被除数寄存器104将被除数提供到迭代器110。迭代器110可包含用以在对应srt算法的每一迭代中执行关于除法/根计算的计算的逻辑。例如,迭代器110可基于被除数及除数的基数及特定值而产生一或多个(例如,r个)位/迭代。每一迭代可为流水线式且取决于特定实施方案在处理器100的一或多个时钟周期内执行。一旦产生列/商选择掩模108,其跨越所有迭代维持恒定。在每一迭代中,产生r个位元的结果(商/根),可将所述结果存储在一或多个寄存器(例如,商寄存器112)中。在每一迭代中,存储在商寄存器中的位可左移位以为随后迭代中的位提供空间且沿循结果的位的正确顺序。一旦计算完成(例如,如由部分余数值零所确定或在达到预定最大数目个迭代/预定精度时),例如,在n个迭代之后,可从商寄存器112获得结果。此外,在第一迭代之后,用部分余数替换被除数寄存器104,且在每一随后替代之后,将在所述迭代结束时获得的部分余数存储在被除数寄存器104中。

如上文所描述,斯维尼、罗伯森及托赫尔(srt)算法可包含部分余数及除数值到商的二维映射,此可呈查找表的形式。例如,在查找表中,可使用特定迭代中的部分余数的m个msb及除数102(在除数的状况下)或根估计(在执行平方根运算的状况下)的n个msb来编索引到查找表中以提供b关于所述迭代的数位的商。所使用的特定查找表取决于各种设计考虑事项(例如,整数m、n,及b)及其它参数(例如部分余数/根估计的准确度)。在一些状况下,部分余数可能在每一迭代中未经完全求解或计算。如将在以下章节中解释,可能使部分余数的计数处于冗余形式(例如,包括和与进位分量,而非如此项技术中所已知将和与进位分量加入进位传递加法器(cpa)中之后将获得的经求解或非冗余形式)。如果部分余数为冗余形式且仅使用部分余数的m个msb,那么可求解仅m个msb的进位与和分量以便获得每一迭代中的部分余数的估计,而非首先求解部分余数且获得m个msb的经求解结果。因此,部分余数估计可从最低有效位的进位与和分量的解决假设“0”或“1”的进位输入。对应地基于这些假定的正确性而调整每一迭代中所获得的商的精度。

现在将进一步详细地论述srt算法的特定迭代。例如,第i迭代中的运算可由方程式表示:pi+1=r*pi-qi+1*d。在此方程式中,pi为可用作到第i迭代的输入的部分余数且pi+1为在第i迭代结束时所获得的待用于下一或第(i+1)迭代的部分余数。d表示除数,r为基数,且qi+1表示b由查找表提供的商的位。下一部分余数基于索引i变成下一迭代中的上一部分余数,其中再次但利用对pi+1的估算来存取查找表以提供商的下b个位。针对第一迭代,被除数用作输入部分余数。

srt算法还可以迭代方式用于执行根计算。在执行平方根运算的状况下,例如,使用平方根的初始估计,此可由另一查找表提供。假定除数102或平方根的初始估计,一个实施方案高速缓存查找表的列。所高速缓存的列基于除数102或平方根的初始估计。srt算法的每一迭代存取所高速缓存的列。

图2为根据本文中所描述的一或多个实施方案配置的计算机系统200的高级框图。所说明计算机系统200包含处理器202及存储器204。处理器202包含算术逻辑单元(alu)206、除法及根计算单元208、指令高速缓存器210、流水线212、高速存储器214以及控制单元216。存储器204包含部分余数/根表218,所述部分余数/根表为需要使用至少两个指数加索引(例如,数个位的除数/根估计(x轴)及数个位的部分余数(y轴))的二维表或阵列。在图2中,仅展示部分余数/根表218的部分视图,而图3说明部分余数/根表218的经扩展/完整视图。针对除法,在部分余数/根表218中提供对应于x及y指数的每一组合的商值。针对根计算,提供关于未来迭代的根替代商值。如先前所提及,示范性方面的详细描述将侧重于除法。如此,在除法的状况下,以十进制记数法展示商值(为便于说明),而以二进制记数法展示x及y指数。

在一些方面中,计算机系统200可经配置成以下各项或形成其部分:蜂窝式电话、平板、平板手机、个人数字助理或其它用户装置。处理器202可为通用处理器、微控制器、多核心处理器、数字信号处理器(dsp)、专用集成电路(asic)、场可变程门阵列(fpga)、可编程逻辑装置(pld)、控制器、状态机、门逻辑、离散硬件组件,或可执行信息的计算或其它操纵的任何其它合适实体。

在一些方面中,存储器204可为存储结构(例如,高速缓存器、寄存器组,等等)或用于存储查找表的任何其它装置,所述存储器可与处理器202通信。alu206可对数据执行算术及逻辑运算。除法及根计算单元208可执行除法及根计算运算。指令高速缓存器210可填充有可例如从较高阶高速缓存器或存储器检索的各种指令类型的指令。控制单元216可将控制提供到管线212及处理器202内的其它功能单元(未展示)。高速存储器214可为视为且被称作高速缓存器、高速缓存装置或寄存器组。高速存储器214可位于或集成在与处理器202相同的芯片上供较快速存取,且在此上下文中也可被称作芯片上高速缓存器。尽管高速存储器214已被说明为个别块,但不存在对高速存储器214为独立结构的要求;在另一方面,高速存储器214可为集成式或为任何其它存储结构(其在示范性方面集成在与处理器202相同的芯片上)的部分。

如先前所论述,在一个示范性方面中,部分余数/根表218的一维阵列或列可经提取或高速缓存供快速存取且比整个二维部分余数/根表218更容易加索引。一维阵列或列的提取可以各种方式实施,包含直接读取列,使用掩模读出列,等等,如将在以下章节进一步详细论述。

部分余数/根表218的行是通过近似部分余数加索引,其中明确地展示值00000、00001、11001以及11010。列在除法的状况下由除数(或经截断版本,例如,包含除数的msb)或在根计算的状况下由根估计(或根估计的经截断版本)加索引。经截断除数可包含除数的n个msb(除用标称浮点记数法始终为“1”的msb以外),其中n是根据关于由查找表产生的位的数目的所确立规则选择。

在图2中特别展示部分余数/根表218的所选择列220,对应于除法值0111(呈浮点标称格式,除数值实际上为1.0111)。在图2是特定实例中,处理器202经配置以用对应于值0111的经截断除数(或根估计)来执行除法(或根计算)。因此,一个实施方案将部分余数/根表218的所选择列220加载到例如高速存储器214的芯片上高速缓存器中。一旦加载,流水线212的执行单元可快速存取所选择列220,例如,所选择列可在使用srt算法执行除法或根计算的每一迭代中单独由部分余数加索引。

图3说明根据实例的部分余数/根表218的经扩展视图。如在图3中所展示,部分余数/根表218包含包括部分余数(例如,仅预选择数目个msb)的第一索引或y索引302以及包括除数或根估计值(例如,仅预选择数目个msb)的第二索引或x索引304。对除法的所说明实例具体而言,以十进制记数法展示针对x及y指数的每一组合的对应商值,如先前所述。例如,对应于除数值0111的所选择列220包含针对范围从00000到11010的各种部分余数值的范围从十进制数0到7的商值。所选择列220可在示范性方面中经高速缓存用于特定除法或根计算且以加速方式存取。

图4为说明除法/根计算单元或用于迭代地执行除法/根计算的其它装置的方面的示意图,例如说明根据srt算法的一或多个实施方案的除法及根计算单元208。在图4中,除法及根计算单元208主要针对除法的状况进行描述,而根计算为类似的。对应于除数/根估计的所选择列220可经高速缓存且用于srt算法的各种迭代中以基于每一迭代中的当前部分余数而从所高速缓存的信息确定商/根,且用于在每一迭代中基于商/根、除数/根估计及当前部分余数而产生下一部分余数。所选择列220可为从部分余数/根表218直接读取或使用商选择掩模从部分余数/根表218提取。列或商选择掩模406可为对高速存储器214的另一叙述或可从高速存储器214导出,根据具体状况而定。

应注意,列或商选择掩模406、除数寄存器404、被除数/部分余数寄存器402以及商/根寄存器416可为在一些实施方案中可位于除法及根计算单元208外部的存储结构,且还可与处理器200的其它组件或块共享。然而,在图4中,这些存储结构在除法及根计算单元208的说明中经描绘以展示其与除法及根计算单元208的剩余块的交互。出于此考虑,除法及根计算单元208经展示成包含被除数寄存器402、除数寄存器404、除数位405、列或商选择掩模406、列或商选择掩模位428、除法/根查找逻辑408、冗余被除数/部分余数位410、所求解部分余数位412、商/根位414、商/根寄存器416、选择器或倍数选择多路复用器418、部分余数减法器420以及进位传递加法器(cpa)426。被除数/部分余数寄存器402经展示成包含第一冗余部分余数寄存器422及第二冗余部分余数寄存器424,例如,所述第一冗余部分余数寄存器及第二冗余部分余数寄存器在其使用cpa426经一起求解或加总成非冗余形式时构成哪一部分余数402。

针对使用除法及根计算单元208执行的示范性除法运算(例如,基于srt算法),可从指令接收被除数及除数操作数且将其分别加载到被除数寄存器402及除数寄存器404中。如先前所描述,可基于来自除数寄存器404的数个位的除数而从部分余数/根表218选择列(例如,220)。可直接或通过形成掩模来完成选择此列,或“预选择”。与所选择列有关的信息可经高速缓存用于srt算法的各种迭代中。所高速缓存的信息可包含成列的值或可用于获得成列的值的例如商选择掩模的组合逻辑。将关于图5论述其中所高速缓存的信息包含查找表的所选择列中的除数/根估计的全部商/根值的方面。将进一步关于图6论述其中所高速缓存的信息包含例如基于查找表的所选择列中的除数/根估计的逻辑组合的商/根表选择掩模的组合逻辑的方面。

因此,列或商选择掩模406可包含从部分余数/根表218提取的所选择列220(如在图5中)或将用于获得所选择列220的商的商选择掩模(如在图6中)。在第一迭代开始之前,因此列或商选择掩模406经加载有包括所选择列220或商选择掩模的所高速缓存的信息。用于在每一迭代中使用当前部分余数从所高速缓存的信息确定商/根的装置结合用于使用商/根、除数/根估计及当前部分余数产生下一部分余数的装置一起使用。例如,除法/根查找逻辑经配置以基于每一迭代中的当前部分余数来从所高速缓存的信息确定商/根,且基于商/根、除数/根估计以及当前部分余数而产生下一部分余数。在所说明的实施方案中,除法/根查找逻辑408包含用以在所高速缓存的信息包括所选择列220的情况下查找所选择列220或在所高速缓存的信息包括用以获得所选择列220的商值的商选择掩模的情况下使用商选择掩模来查找商位的逻辑。除法/根查找逻辑408可使用每一迭代中的下一部分余数位412(例如,y指数)且更具体来说,经截断且可能近似的经求解部分余数位412来查找所选择列或商选择掩模。

无论在块406中提取所选择列还是使用商选择掩模位,现在将解释除法及根计算单元208的剩余块。针对第一迭代,被除数寄存器402保存被除数。在第一迭代之后,针对每一随后迭代,被除数寄存器402将冗余部分余数保存于在每一迭代期间产生冗余部分余数位410的第一冗余部分余数寄存器422及第二冗余部分余数寄存器424中。冗余部分余数位410可为和/进位、冗余二进制符号数位(rbsd)或任何其它冗余数目格式。

除数寄存器404保存除数位405。冗余部分余数位410从第一及第二冗余被除数寄存器402输出,且将其接着输入到cpa426中。如先前所述,可仅加总冗余部分余数位的经截断版本(例如,一些msb)以便节省时间。因此,cpa426可加总冗余部分余数位410的msb且输出非冗余或经求解部分余数位412。待加总于cpa426中的冗余部分余数位410的msb的数目可取决于所处理的位的数目/周期。如先前所提及,经求解部分余数位412由除法/根查找逻辑408用作指数以从列或商选择掩模406查找商或根。

除法/根查找逻辑408可接着获得商位414,所述商位可存储在商/根寄存器416中用于每一迭代中。通常,可使用倍数选择多路复用器来基于商/根而选择除数/根估计的倍数。在所说明实施方案中,针对每一迭代的商位414也可由倍数选择多路复用器418使用,所述倍数选择多路复用器选择待从冗余部分余数位410减去的除数位405的倍数。例如,如果商位414标示十进制值“3”,那么倍数选择多路复用器418选择“3”倍除数位405且将此值输出到部分余数减法器420。

可接着使用部分余数减法器来产生下一部分余数作为从当前部分余数减去的除数/根估计的倍数。如所展示,减法器420计算部分余数位410(来自上一迭代)与除数位405的倍数之间的差以获得针对下一迭代的部分余数,以在左移位之后存储在第一冗余部分余数寄存器422与第二冗余部分余数寄存器424中,如下文所述。针对下一迭代的部分余数基于产生商位414的数目(例如,基于基数)而左移位。因此,如果产生三个商位414,那么下一迭代的冗余部分余数位左移位三个位且被加载到第一冗余部分余数寄存器422及第二冗余部分余数寄存器424中。

除法/根查找逻辑408在下一迭代中从第一冗余部分余数寄存器422及第二冗余部分余数寄存器424获得移位差且过程重复。即,除法及根计算单元208重复以下过程:读取除数位405,选择除数位405的倍数以及执行除数位405的倍数从冗余部分余数位410的减法。

虽然商寄存器416可能为单个寄存器(例如,商寄存器q430),但在一些实施方案中,商寄存器416可包括一或多个商寄存器,例如包括用于存储商/根的所求商/根寄存器(q)及所求商/根减一寄存器(q-1)的一对寄存器。例如,如所展示,商寄存器q430保存所求商值q,且商寄存器qm434保存所求商减一值q-1。可使用即时算法来执行对这些商寄存器416的更新,如此项技术中所已知。

应了解,方面包含用于执行本文中所揭示的过程、功能及/或算法的各种方法。例如,图5为用于操作其中选择来自部分余数/根表218的列且将其用于查找商的除法及根计算单元208的方法500的流程图。在方法500开始之前,产生针对给定基数及准确度的关于srt算法的部分余数/根表218且将其存储在存储器204中。

在框502中,方法500将查找表的列加载到芯片上高速存储器中。如,假定除数或根估计,选择来自部分余数/根表218的恰当列(例如,220)且将其存储在图2的芯片上高速存储器214中。鉴于图4中所展示的除法及根计算单元208,列或商选择掩模406为高速存储器214的另一描绘或从高速存储器214导出。在图5中,列或商选择掩模406保存所选择列。

方法500针对srt算法的每一迭代从框504循环到508。在针对当前迭代的框508之后,方法500经由路径510继续进行到框504且重复直到达到部分余数零或所要准确度为止。

在框504中,方法500基于srt算法而产生部分余数。应注意,针对第一迭代,第一或初始部分余数可为被除数或被开方数。

在框506中,方法500基于部分余数加索引到所选择列。例如,在特定迭代中由srt算法产生的部分余数位可用于加索引到存储在高速存储器214或列或商选择掩模406中的部分余数/根表218的所选择列以提供估计商位或平方根位。进一步详细地,返回参考图4,除法/根查找逻辑408使用所求解的部分余数位412来加索引列或商选择掩模406且获得商位414。

在框508中,方法500基于来自所选择列的商而更新部分余数。在一或多个实施方案中,使用商位414来选择迄今所形成的除数或根的倍数,可在特定迭代中将所述倍数从当前部分余数位减去以产生下一迭代的部分余数位。进一步详细地,可使用从除法/根查找逻辑408获得的商位414来使用倍数选择多路复用器418来获得除数位405的倍数,可将所述倍数在减法器420中从冗余部分余数位410减去以产生部分余数位以将其存储在第一部分余数寄存器422及第二部分余数寄存器424中供用于下一迭代。

在方法500基于来自所选择列的结果而更新部分余数之后,方法500经由路径510返回到框504且从所述点重复供用于下一迭代。

现在参考图6,说明根据一或多个替代实施方案的操作除法及根计算单元208的另一方法600的流程图。在方法600中,基于除数或根估计(或其截断版本)的部分余数/根表218的所选择列可有效地解码为逻辑表达式以控制组合逻辑。组合逻辑提供下一商位(即,特定迭代的结果)作为当前部分余数的功能。组合逻辑在上述描述中被称作商选择掩模。可高速缓存组合逻辑,而非如图5的方法500中的包括商值的所选择列。所高速缓存组合逻辑由图4的除法/根查找逻辑408用于例如基于所求解部分余数412而输出商位416。在其中部分余数经截断的状况下,组合逻辑将基于部分余数的近似值,如先前所解释。下文参考图9描述适合用于执行方法600的实例性组合逻辑。

如同方法500,在方法600开始之前,产生针对给定基数及准确度的关于srt算法的部分余数/根表218且将其存储在存储器204中。

在框602中,方法600基于所选择列220而将“0”及“1”加载到商选择掩模寄存器,所选择列是基于除数或根估计而选择。例如,将部分余数作为输入提供到组合逻辑,所述组合逻辑包含高达(n-1)个商/根选择寄存器,其中n等于2^(基数),且其中基数为商/根的位的数目的指示。例如,(n–1)个商选择寄存器可包含存储在其中的“0”及“1”的模式。逻辑组合或组合逻辑包括比较器,所述比较器用于将当前部分余数的一或多个位与预选择部分余数常数进行比较,且对与商选择寄存器的比较结果执行逻辑“与”运算。进一步参考部分余数/根表218的替代实施方案(在图7a到c及8a到c中所展示)来解释这些方面。简洁地参考图7a到c,例如,每一商选择寄存器中的位的数目等于表702中的行的总数目。每当表的所选择列中的部分余数匹配商选择寄存器数目可将“1”插入到商选择掩模寄存器的位。如果不存在匹配,那么将“0”插入到对应位位置中。

方法600针对srt算法的每一迭代从框604循环到608。在针对当前迭代的框608之后,方法600经由路径610继续进行到框604且重复直到达到部分余数零或所要准确度为止。

在框604中,方法600基于srt算法而产生部分余数。应注意,针对第一迭代,第一或初始部分余数可为被除数或被开方数。

在框606中,方法600基于将和商选择掩模进行“与”运算的部分余数进行解码而产生商位。在一个实施方案中,组合逻辑将当前部分余数与预选择部分余数常数或系数进行比较,且将比较的结果与商选择寄存器数目进行“与”运算。这些结果经一起进行“或”运算以形成“独热(1-hot)”经解码商。还在框608中,对经解码商位进行编码以产生商位的常规二进制表示。

在框608中,方法600基于所产生商位而更新部分余数。在组合逻辑提供下一商或根位之后,方法600返回到框606且针对随后迭代从那里重复。

参考方法600所论述的组合逻辑可作为电路驻存在处理器102上,其中控制单元116可提供恰当控制。

现在参考图7a到c及8a到c,分别说明部分余数/根表702及802。这些部分余数/根表702及802类似于部分余数/根表218但其信息以适合于高速缓存在组合逻辑方面的所选择列或适于实施先前所描述的商选择掩模的不同格式转换。

图7a到c根据本发明的示范性方面说明适合于实施方法600的高性能除法及平方根单元700的方面。除法及平方根单元700包含表702(图7a)、商选择掩模704(图7b)及商位方程式706(图7c)。表702包含在x轴上展示的除数或根估计708及在y轴上展示的部分余数。

在所说明实施方案中,表702表示基数-8表查找实例,这是因为每一经编码商/根可具有从0到7的值。存在经编号1到7的七个商选择掩模704。七个商选择掩模704中的一者中的每一位表示“0”值或“1”值,其用作稍后选择经解码部分余数的掩模。

表702中的阴影项目展示可将对应于除数值0111或等效十进制值“6”的所有表702商项目编码成商选择掩模#6的实例。商选择掩模#6中的每一项目基于包括除数0111的列(经识别为列722)为“0”或“1”。

除法与平方根单元700执行商位方程式706。商位方程式706表示基于部分余数及商选择掩模704中的商选择掩模寄存器位集而产生“独热”经解码商的方程式。如上文所描述,这些“独热”商位可通过常规编码器编码成二进制格式。

返回参考图4,例如商选择掩模704的信息可经高速缓存或存储在块、列或商选择掩模406中,而非存储整个列422。除法/根查找逻辑408可接着使用商选择掩模704#6的独热商位及所求解部分余数位412来获得商位414。

图8a到c根据替代示范性方面说明适合于实施方法600的另一高性能除法及平方根单元800的方面。除法及平方根单元800包含表802(图8a)、商选择掩模表804(图8b)、商选择掩模806及所得商位方程式808(图8c)。表802包含沿着编号列0到15在x轴上展示的除数或根估计。

在图8a到c中,使用除数1010来选择表802的对应列10(二进制除数值1010的十进制等值)。将“1”插入于对应于列10的商选择掩模表804的所有项目且剩余项目经加载有“0”。商选择掩模806表示在此实例中经加载到商选择掩模表804中的所得商选择掩模项目。在此实例中,仅由商选择掩模项目“1”启用的部分余数比较可能相关。所得商位方程式在此实例中经展示在所得商位方程式808中。

返回参考图4,针对除数1010的商选择掩模806可经高速缓存或存储在块、列或商选择掩模406中,而非存储整个列10。除法/根查找逻辑408可接着使用对应商位方程式808及所求解部分余数412来获得商位414。

图9为根据本文中所描述的技术的示范性实施方案的适合于实施方法600的单元900的高级框图。单元900包含逻辑块904、商选择掩模寄存器906、部分余数(pr)解码器908、“与或”块910以及编码器912。单元900用于使用商选择掩模寄存器906来产生商912。商选择掩模寄存器包含除数的一或多个位与部分余数的一或多个位的逻辑表达式或逻辑组合。

在一个实施方案中,逻辑块904将由除数或根估计902选择的列编码成商选择掩模寄存器906(例如,其可经高速缓存或存储在图4的列或商选择掩模406中)。商选择掩模由除数或根估计902及块908的部分余数解码的逻辑组合形成。因此,商选择掩模寄存器906其中存储有“0”及“1”的模式,且逻辑组合包括将当前部分余数的一或多个位与预选择部分余数常数进行比较,及对与商选择寄存器的比较的结果执行逻辑“与”运算。在所说明实施方案中,使用“与或”块910将商选择掩模寄存器906与块908的相关联部分余数解码逐位进行“与”运算且一起“或”运算以形成“独热”经解码商(例如,在除法/根查找逻辑408中使用所求解部分余数位412)。例如,独热经解码商可通过编码器912编码成传统二进制表示以提供图4的商位414。

图10说明其中可有利地使用根据本发明的除法/根计算单元的示范性无线通信系统1000。出于说明的目的,图10展示三个远程单元1020、1030及1050及两个基站1040。在图10中,远程单元1020经展示为移动电话、远程单元1030经展示为便携式计算机,且远端单元1050经展示为无线本地环路系统中的固定位置远程单元。例如,远程单元可为移动电话、手持式个人通信系统(pcs)单元、便携式数据单元(例如,个人数据助理)、具有gps能力的装置、导航装置、机顶盒、音乐播放器、视频播放器、娱乐单元、固定位置数据单元(例如,仪表读取设备)或存储或检索数据或计算机指令的任何其它装置,或其任何组合。远程单元1020、1030及1050中的任一者可包含如本文中所揭示的除法/根计算单元。

尽管图10说明根据本发明的教示的远程单元,但本发明并不限于这些示范性所说明单元。本发明的方面可合适地用于任何装置中,所述装置包含有源集成电路,所述有源集成电路包含用于测试及表征的存储器及芯片上电路。

尽管本发明中已连续地描述各种方法的步骤及决策,但这些步骤及决策中的一些可由单独元件接合地或并行地、异步或同步地、以流水线方式或其它方式执行。除了在明确如此指示,以其它方式从上下文明确或内在地要求外,不存在以本发明列举步骤及决策的相同次序执行步骤及决策的特定要求。然而,应注意,在所选择变体中,以上文所描述的次序执行步骤及决策。此外,根据本发明的每一实施方案/变体中可能并不需要每一所说明步骤及决策,而在根据本发明的一些实施方案/变体中可能期望或需要尚未具体说明的一些步骤及决策。

所属技术领域的技术人员将理解,可使用各种不同技艺及技术中的任一者表示信息及信号。举例来说,可通过电压、电流、电磁波、磁场或磁性粒子、光场或光学粒子或其任何组合来表示可贯穿以上描述所参考的数据、指令、命令、信息、信号、位、符号及码片。

此外,所属领域的技术人员将进一步了解,结合本文中所揭示的实施方案所描述的各种说明性逻辑块、模块、电路及算法步骤可实施为电子硬件、计算机软件或两者的组合。为清楚地展示硬件及软件的此可互换性,上文通常已就其功能性方面描述了各种说明性组件、块、模块、电路及步骤。此功能性是实施为硬件、软件还是硬件与软件的组合取决于强加于整个系统的特定应用及设计约束。虽然所属领域的技术人员可针对每一特定应用以变化方式实施所描述功能性,但不应将此些实施方案决策解释为导致对本发明的范围的脱离。

结合本文中的揭示实施方案所描述的方法或算法的步骤可直接以硬件、由处理器执行的软件模块或两者的组合体现。软件模块可驻留在ram存储器、快闪存储器、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可拆卸磁盘、cd-rom或此项技术中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器使得所述处理器可从所述存储媒体读取信息且将信息写入到所述存储媒体。在替代方案中,所述存储媒体可与处理器成整体。处理器及存储媒体可驻存在asic中。asic可驻存于接入终端中。替代地,处理器及存储媒体可作为离散组件驻存于接入终端中。

因此,本发明的方面可包含计算机可读媒体,所述计算机可读媒体体现在srt算法实施方案中使用关于商/根查找的速缓存信息来执行除法/根计算操作的方法。因此,本发明并不限于所说明实例且用于执行本文中所描述的功能性的任何装置被包含的本发明的方面中。

虽然前述揭示内容展示本发明的说明性方面,但请注意,可在本文中作出各种改变及修改而不脱离如随附权利要求书所界定的本发明的范围。根据本文中所描述的本发明的方面的方法权利要求书的功能、步骤及/或动作不需要以任何特定次序执行。此外,尽管本发明的元件可以单数形式进行描述或主张,但涵盖复数形式,除非明确地陈述对单数形式的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1