CN108021180A - 产生起始估计的方法、计算机设备及制造和测试的方法 - Google Patents
产生起始估计的方法、计算机设备及制造和测试的方法 Download PDFInfo
- Publication number
- CN108021180A CN108021180A CN201710959563.7A CN201710959563A CN108021180A CN 108021180 A CN108021180 A CN 108021180A CN 201710959563 A CN201710959563 A CN 201710959563A CN 108021180 A CN108021180 A CN 108021180A
- Authority
- CN
- China
- Prior art keywords
- radicand
- root
- tables
- rows
- radix
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/46—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using electromechanical counter-type accumulators
- G06F7/462—Multiplying; dividing
- G06F7/463—Multiplying; dividing by successive additions or subtractions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/552—Powers or roots, e.g. Pythagorean sums
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/02—Digital function generators
- G06F1/03—Digital function generators working, at least partly, by table look-up
- G06F1/0307—Logarithmic or exponential functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2236—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/17—Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/4824—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices using signed-digit representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/49—Computations with a radix, other than binary, 8, 16 or decimal, e.g. ternary, negative or imaginary radices, mixed radix non-linear PCM
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/535—Dividing only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/48—Indexing scheme relating to groups G06F7/48 - G06F7/575
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/552—Indexing scheme relating to groups G06F7/552 - G06F7/5525
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Nonlinear Science (AREA)
- Stored Programmes (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
- Error Detection And Correction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供一种产生起始估计的方法、计算机设备及制造和测试的方法。描述了用于使用包括基数4的部分余数‑除数(PD)表的硬件产生基数16的平方根迭代计算的起始估计的设备及其制造方法、系统和方法,其中,PD表用于除法运算和平方根运算二者。在一个方面,使用基数16的平方根迭代运算的被开方数的一部分来确定列/根值和行/部分被开方数值,列/根值和行/部分被开方数值随后被用于从基数4的PD表确定基数16的平方根迭代运算的起始估计。
Description
本申请要求于2016年11月3日提交的第62/416,842号美国临时专利申请、于2016年11月3日提交的第62/416,846号美国临时专利申请以及于2017年1月30日提交的第15/419,757号美国专利申请的优先权,所述申请的全部内容通过引用合并于此。
技术领域
本公开总体涉及使用用于除法和平方根迭代运算二者的硬件产生基数16的平方根计算的起始估计,更具体地,涉及使用修改的基数4的查找表(LUT)选择基数16的平方根计算的起始估计。
背景技术
随着计算机应用日益复杂,硬件架构日益承担更高速度的需求并占用更少空间,同时也试图避免变得不切实际地复杂。减少资源使用的一种方法是使用用于多用途的组件和功能。本申请考虑用于执行除法和平方根计算二者的组件/功能的共享。为了理解涉及的组件/功能,下面首先讨论除法。
与由处理器执行的大多数计算一样,除法被实现为迭代处理。一种除法迭代处理或算法是使用减法来获得商/余数的数位循环算法。“恢复”数位循环算法与通过纸和笔的除法的迭代处理相似,有时需要通过添加除数来恢复原始的被除数。直观地,可以看出这需要一定量的存储器,并且如果除以两个n位数,可导致执行2n个加法/减法。
“非恢复”数位循环算法消除恢复循环,并且只需要最多n个加法。这是通过将商表示为正整数和负整数的数字集合(诸如,转换成二进制形式的{-n,…,-1,0,+1,…,+n})来实现的。以这种方式,在一次迭代中的小错误可在后续的迭代中得到纠正。
在计算中广泛使用的Sweeney、Robinson和Tocher(SRT)除法是使用查找表(LUT)而不是计算一定的迭代计算的非恢复数位循环算法的特殊集合。在SRT除法中,商q可被表示并重写为等式(1)(a)-(1)(d)所示:
被除数=(q×除数)+余数 (1)(b)
使得
|余数|<|除数|×ulp (1)(c)
sign(余数)=sign(被除数) (1)(d)
其中,输入操作数由被除数和除数给出,结果为q和余数。商的精度由最后位置上的单位(ulp)限定,其中,对于整数商ulp=1,对于小数商使用二进制表示ulp=2-n(假设n个数位商)。算法的基数r(通常被选为2的幂)确定在每次迭代中退位多少个商位,使得r=2b。因此,基数r算法需要次迭代以计算n位的商。
在每次迭代中使用如等式(2)(a)-(2)(b)所示的以下循环:
rPo=被除数 (2)(a)
Pj+1=rPj-qj+1除数 (2)(b)
其中,Pj为迭代j的部分余数或残差。在每次迭代中,确定商的一个数位。参见,例如,Oberman and Flynn,Minimizing the Complexity of SRT Tables,IEEETransactions of VLSI Systems,vol.6,no.1,pp.141-149(March 1998)(“Oberman andFlynn 1998”),其全部内容通过引用合并于此。
使用等式(2)(a)和(2)(b),SRT除法循环的每次迭代包括以下步骤:
1)通过商-数位选择函数确定下一个商-数位qj+1;
2)产生乘积qj+1×除数;
3)从r×Pj减去qj+1×除数以形成下一个部分余数。
步骤1中的商-数位函数通过LUT实现,由于LUT是基于每次迭代中计算的部分余数和除数,所以被称为部分余数-除数(PD)表。
可通过迭代处理类似地实现平方根函数,其中,被开方数与被除数相似,部分被开方数与部分余数相似,根在形式上与商相似。参见,例如,J.Fandrianto,Algorithm forHigh Speed Shared Radix 4Division and Radix 4Square Root,IEEE Symposium onComputer Arithmetic 1987,pp.73-79(“Fandrianto et al.1987”)和J.Fandrianto,Algorithm for High Speed Shared Radix 8Division and Radix 8Square Root,IEEESymposium on Computer Arithmetic 1989,pp.68-75(“Fandrianto et al.1989”),二者的全部内容通过引用合并于此。
然而,与SRT除法不同,在迭代处理的起始点方面,平方根运算不存在与除数相似的任何数。换言之,为了开始平方根迭代处理,必须产生起始平方根估计。此外,该起始估计必须保证迭代处理收敛于使用与SRT除法运算相同的PD表的平方根。
发明内容
因此,做出本公开以解决至少在此描述的问题和/或缺点,并提供至少以下描述的优点。
根据本公开的一方面,提供一种用于产生基数16的平方根迭代运算的起始估计的方法,包括:使用平方根运算的被开方数的至少一部分并使用一个或多个列/根查找表(LUT)来确定部分余数-除数(PD)表的4位列/根值,其中,PD表用于基数16的平方根运算和基数16的除法运算二者,PD表包括折叠的正侧基数4的PD表内的条目/单元,其中,PD表用于平方根运算和除法运算二者;使用被开方数的所述至少一部分并使用一个或多个行/部分被开方数LUT来确定PD表的8位行/部分被开方数值;使用由4位列/根值和8位行/部分被开方数值指示的PD表中的条目计算基数16的平方根迭代运算的起始估计。
根据本公开的一方面,提供一种包括一个或多个非暂时性计算机可读介质和至少一个处理器的设备。所述一个或多个非暂时性计算机可读介质存储:部分余数-除数(PD)表,PD表包括:折叠的正向基数4的PD表内的条目/单元的值,其中,基数4的PD表用于平方根运算和除法运算二者;一个或多个列/根查找表(LUT),针对所述一个或多个列/根LUT,基数16的平方根运算的被开方数的至少一部分被输入而PD表的4位列/根值被输出;一个或多个行/部分被开方数LUT,针对所述一个或多个行/部分被开方数LUT,被开方数的所述至少一部分被输入而PD表的8位行/部分被开方数值被输出。当执行存储在所述一个或多个非暂时性计算机可读介质上的指令时,所述至少一个处理器基于被开方数使用4位列/根值和8位行/部分被开方数值所指出的PD表中的条目计算基数16的平方根迭代运算的起始估计,当平方根运算的被开方数的所述至少一部分被输入时从所述一个或多个列/根LUT输出所述4位列/根值,并且当被开方数的所述至少一部分被输入时从所述一个或多个行/部分被开方数LUT输出所述8位行/部分被开方数值。
根据本公开的一方面,提供一种用于制造芯片组的方法,所述芯片组包括一个或多个非暂时性计算机可读介质和至少一个处理器。所述一个或多个非暂时性计算机可读介质存储:部分余数-除数(PD)表,PD表包括:折叠的正向基数4的PD表内的条目/单元的值,其中,基数4的PD表用于平方根运算和除法运算二者;一个或多个列/根查找表(LUT),针对所述一个或多个列/根LUT,基数16的平方根运算的被开方数的至少一部分被输入而PD表的4位列/根值被输出;一个或多个行/部分被开方数LUT,针对所述一个或多个行/部分被开方数LUT,被开方数的所述至少一部分被输入而PD表的8位行/部分被开方数值被输出。当执行存储在所述一个或多个非暂时性计算机可读介质上的指令时,所述至少一个处理器基于被开方数使用4位列/根值和8位行/部分被开方数计算基数16的平方根迭代运算的起始估计,当平方根运算的被开方数的所述至少一部分被输入时从所述一个或多个列/根LUT输出所述4位列/根值,并且当被开方数的所述至少一部分被输入时从所述一个或多个行/部分被开方数LUT输出所述8位行/部分被开方数值。
根据本公开的一方面,一种用于测试设备的方法包括:测试所述设备是否具有一个或多个非暂时性计算机可读介质,所述一个或多个非暂时性计算机可读介质存储:部分余数-除数(PD)表,包括折叠的正侧基数4的PD表内的条目/单元的值,其中,基数4的PD表用于平方根运算和除法运算二者;一个或多个列/根查找表(LUT),针对所述一个或多个列/根查找表(LUT),基数16的平方根运算的被开方数的至少一部分被输入而PD表的4位列/根值被输出;一个或多个行/部分被开方数LUT,针对所述一个或多个行/部分被开方数LUT,被开方数的所述至少一部分被输入而PD表的8位行/部分被开方数值被输出;测试所述设备是否具有至少一个处理器,当执行存储在所述一个或多个非暂时性计算机可读介质上的指令时,所述至少一个处理器基于被开方数使用4位列/根值和8位行/部分被开方数计算基数16的平方根迭代运算的起始估计,当平方根运算的被开方数的所述至少一部分被输入时从所述一个或多个列/根LUT输出所述4位列/根值,并且当被开方数的所述至少一部分被输入时从所述一个或多个行/部分被开方数LUT输出所述8位行/部分被开方数值。
附图说明
从下面结合附图的详细描述,本公开的一些实施例的以上和其他方面、特征和优点将更加清楚,其中:
图1示出根据IEEE-754标准的作为32位单精度浮点十进制值的被开方数、32位被开方数的位、以及根据本公开的基数4的实施例的用于产生平方根运算的起始估计的偶数表和奇数表;
图2示出根据IEEE-754标准的32位被开方数、根据本公开的基数4的实施例的用于产生平方根运算的起始估计的32位的被开方数的位、以及偶数被开方数和奇数被开方数的示例;
图3A和图3B均示出根据本公开的实施例的同一基数4的PD表,其中,图3A示出如何确定根据奇数被开方数的平方根值的起始估计,而图3B示出如何确定根据偶数被开方数的平方根值的起始估计;
图4是根据本公开的实施例的基数16的平方根运算的PD表;
图5是根据本公开的实施例的用于产生基数16的平方根运算的起始估计的方法的流程图;
图6A示出根据IEEE-754标准的32位被开方数、32位被开方数的位、以及根据本公开的基数16的实施例的用于选择列值以产生平方根运算的起始估计的偶数表和奇数表;
图6B示出根据本公开的实施例的用于选择行值以产生基数16的平方根运算的起始估计的偶数表和奇数表;
图6C示出根据本公开的基数16的实施例的用于针对0000的特殊情况改变用于平方根运算的起始估计的列值的偶数表和奇数表;
图7A示出根据本公开的实施例的示例性设备;
图7B示出根据本公开的实施例的用于制造和测试设备的示例性方法的流程图。
具体实施方式
在下文中,参照附图详细描述本公开的实施例。应注意,即使在不同的附图中示出,相同的元件也由相同的参考标号表示。在下面的描述中,仅提供诸如详细的配置和组件的具体细节以帮助全面理解本公开的实施例。因此,本领域的技术人员应清楚,在不脱离本公开的范围的情况下,可对在此描述的实施例进行各种改变和修改。此外,为了清楚和简明,省略公知的功能和结构的描述。下面描述的术语是考虑到本公开中的功能而定义的术语,并且可根据用户、用户的意愿或者惯例而不同。因此,应根据贯穿说明书的内容来确定术语的定义。
本公开可具有各种修改和各种实施例,其中,在本公开中参照附图在下面详细描述了实施例。然而,应理解,本公开不限于所述实施例,而是包括在本公开的范围内的所有修改、等同物和替代物。
虽然包括诸如第一和第二的序数的术语可用于描述各种元件,但是结构元件不被所述术语限制。所述术语仅用于区分一个元件和另一个元件。例如,在不脱离本公开的范围的情况下,第一结构元件可被称为第二结构元件。类似地,第二结构元件也可被称为第一结构元件。如在此使用的,术语“和/或”包括一个或多个相关联的项的任意和所有组合。
在此使用的术语仅用于描述本公开的各种实施例,但是不意图限制本公开。除非上下文明确地另有指示,否则单数形式意在也包括复数形式。在本公开中,应理解,术语“包括”或“具有”表示存在特征、数字、步骤、操作、结构元件、部件或者它们的组合,并且不排除一个或多个其他特征、数字、步骤、操作、结构元件、部件或它们的组合的存在或者可能的添加。
除非不同地定义,否则在此使用的所有术语具有与本公开所属领域的技术人员理解的含义相同的含义。如在通用字典中定义的这样的术语可被解释为具有与相关领域中的上下文的含义相同的含义,并且除非在本公开中明确定义,否则不被解释为具有理想化或过于形式化的含义。
各种实施例可包括一个或多个元件。元件可包括布置成执行特定操作的任意结构。虽然可通过示例的方式以特定的布置中的有限数量的元件来描述实施例,但是实施例可包括给定实现所期望的替代布置中的更多或更少的元件。值得注意的,对“一个实施例”或“实施例”的任意引用表示结合实施例描述的具体特征、结构或者特性可被包括在至少一个实施例中。在本说明书中的各个地方出现短语“一个实施例”(或“实施例”)不一定表示相同的实施例。
根据本公开的一个实施例,基于用于基数4的除法/平方根运算的一个或多个表格来确定使用除法/平方根函数的共享硬件的基数16的平方根迭代计算的起始估计,但是所述一个或多个表格被修改为反映基数16的起始估计中的更多数量的位(基数4仅需要两位的起始估计,而基数16需要四位的起始估计)。
图1至图3B示出根据本公开的实施例的如何确定基数4的平方根运算的起始估计。
在图1中,平方根函数的被开方数被示出为根据IEEE-754标准(通过引用全部合并于此)的32位单精度计算机格式,其中,位32为符号(S)101,位31-24为指数(E)102,位23-1为尾数,也被称为小数或有效数(N)103。IEEE-754格式的小数/尾数具有值1.0的“不可见”前导位(即,未存储的),如图2的标号225和235中的“(1)”所示,表示小数/尾数的值在1.0与2之间,因此,位23具有值1/2,位22具有值1/4等。在本公开的实施例中,当指数中的最低有效位(LSB)为1时,该表示被视为“偶数”,当指数LSB为0时,其被视为“奇数”。
如图1所示,尾数/小数103的三个最高有效位(MSB)和指数102的LSB基于指数LSB(E)的值为1(偶数)还是0(奇数)而被分别用作偶数表120或奇数表130的输入(E NNN)110。偶数表120和奇数表130示出针对每个可能的输入(E NNN)110值的输出。
图2也示出根据IEEE-754标准的32位的被开方数和用作偶数表120或奇数表130的输入的位(E NNN)210。图2还示出被开方数的两个示例,其中,一个为奇数,另一个为偶数。更具体地,220指示十进制值2.0009766的十六进制表示,225指示十进制值2.0009766的32位二进制表示。由于32位二进制表示225的指数LSB为0,所以十进制值2.0009766的被开方数被视为奇数。类似地,230指示具有十进制值4.001953的数的十六进制表示,235指示具有十进制值4.001953的数的32位二进制表示。由于32位二进制表示235的指数LSB为1,所以十进制值4.001953的被开方数被视为偶数。
根据本公开的实施例,在图3A和图3B中均示出同一基数4的PD表300,其中,根据本公开的实施例,图3A还示出具有奇数被开方数的平方根估计的确定,图3B还示出具有偶数被开方数的平方根估计的确定。在于2015年12月16日提交的题目为“PARTIAL REMAINDER/DIVISOR TABLE SPLIT IMPLEMENTATION”的第14/972,077号美国专利申请(通过引用完整包含于此)中描述了根据本公开的一个基数4的PD表。在于2016年1月14日提交的题目为“INTEGER/FLOATING POINT DIVIDER AND SQUARE ROOT LOGIC UNIT AND ASSOCIATEDMETHODS”的第14/996,216号美国专利申请(通过引用完整包含于此)中描述了可应用本公开的总体的除法/平方根架构的示例。
通常被存储为查找表(LUT)的PD表被用于通过选择分别由先前的除数/根的列和部分余数/被开方数的行指示的单元在递归处理的每次迭代中产生商估计。基数4的PD表300中的负二进制值为“二的补码”格式。基数4的PD表300不能以当前形式“折叠”,意味着基数4的PD表300在“正”零值行与第一负值行之间的行305周围不完全对称。换言之,例如,由于在正侧上的单元301为非值(“X”),而负侧上的对应的单元303为“01”,所以基数4的PD表300不能折叠。
实际上,以可折叠的形式保存PD表,或者更准确地说,“可折叠的”PD表的上半部分被保存在LUT中。如下面更充分讨论的,在不完全对称(情况总是如此)的地方(诸如,在单元301和单元303),使用额外的步骤/技术来确保给出正确的值。
如上所述,图3A示出如何使用奇数被开方数确定初始平方根估计的示例。更具体地,根据图2中的奇数被开方数示例220/225,图3A中的箭头指向具有根/除数值“0111”的列。如图2所示,奇数被开方数示例220/225具有“0000”的E NNN二进制输入值,根据图1的奇数表120,如图3A所示,这导致列值使用输出“0111”。根据收敛的似然性的增加,中间值被选择作为基数4的PD表的行值,在这种情况下,为行/部分余数/被开方数值“0001.00”。使用这些行值和列值,单元条目355中的两个位“10”为根据本公开的实施例的迭代平方根运算的起始估计。
图3B示出根据本公开的实施例的如何使用偶数被开方数确定初始平方根估计的示例。根据图2中的偶数被开方数示例230/235,图3B中的箭头指向具有根/除数值“0000”的列。如图2所示,偶数被开方数示例230/235具有“0000”的E NNN二进制输入值,根据图1的偶数表130,如图3B所示,这导致列值使用输出“0000”。根据收敛的似然性的增加,中间值被选择作为基数4的PD表的行值,在这种情况下,为行/部分余数/被开方数值“0010.00”。使用这些行值和列值,单元条目350中的两个位“01”为根据本公开的实施例的迭代平方根运算的起始估计。
根据本公开的实施例,基数4的PD表的行和列仅维持一个循环,然后迭代平方根处理开始。根据另一实施例,基数4的PD表的行和列维持第一个循环,列在第二个循环中改变,然后迭代平方根处理开始。
图4示出根据本公开的实施例的基数16的PD表400。基数16的PD表400具有五个区域A、B、C、D和E。区域A与图3A和图3B中的基数4的PD表300相同。当在基数16的环境下使用时,如在下面进一步详细讨论的,在基数4的PD表300(区域A)中示出的二位条目被转化为四位。
当区域A对应于图3A和图3B中的基数4的PD表300的修改的形式时,区域B、C、D和E可被看作更大的PD表的扩展。对于这一观点,区域B和C对应于基数8的PD表所需的扩展,区域D和E对应于基数16的PD表所需的扩展。在本公开的实施例中,区域B、C、D和E的单元/条目不被存储,基数4的PD表区域A用于确定基数16的实现方式中的所有单元/条目值。
根据本公开的实施例,当一个值是区域B、C、D或E中的条目/单元时,该值经过一个或多个循环被减小为区域A中的条目/单元。以这种方式,仅区域A的单元值需要被保存在LUT中,而其他区域中的值的范围仅由它们的边界限定。因此,诸如基数4的PD表300的基数4的PD表(以修改的形式)可被用来表示如图4中的基数16的PD表400所示的完整的基数16的PD表的单元值。
例如,如果一个值的条目/单元落入区域E,则该值被调整+8D(D表示“除数”),因此将该值带入区域A。同样,如果一个值的条目/单元落入区域D,则该值被调整-8D;如果一个值的条目/单元落入区域C,则该值被调整+4D;如果一个值的条目/单元落入区域B,则该值被调整-4D。这是简化的概述,如以下讨论的,在一些实例中,可能需要做出一些较小的调整。
在下文中,即使PD表用于两种运算(除法和平方根),但在本公开中,列可被称为列/根(而不是列/根/除数),行可被称为行/部分余数(而不是行/部分被除数/部分余数)。
因为为了适合信纸大小的页面而必要地减小总体大小(完整大小的基数16的PD表具有4064个条目),图4未准确地表示区域之间的精确边界。实际上,如图4的右手边上的外标记的指示,边界均为不规则/阶梯的。因此,为了获得区域A(基数4)的正上边界,在每列中将列/根值乘以8/3。同样,对于区域B(基数8)的正上边界,在每列中将列/根乘以24/7。为获得负向上的每个阶梯/列,使用同样的步骤。由于区域D(基数16)的上边界接近于值相同或被舍弃的“不关心”区域,所以区域D的上边界未示出。然而,在基数32或基数512的实现方式中,也需要定义这些边界。
图5示出根据本公开的实施例的用于产生基数16的平方根运算的起始估计的方法的流程图。图6A至图6C是能用于执行图5中示出的一些操作的表格。
在根据本公开的实施例的基数16的平方根运算的第一次循环或第一轮(图5的510),执行若干操作。一个操作是使用被开方数的一部分从LUT确定4位列/除数/根值。如图6A示出的示例所示,使用与基数4的平方根运算相同的偶数表120和奇数表130。在图6A中,32位被开方数610的IEEE-754的指数的LSB和尾数/小数的三个最高有效位(MSB)基于指数LSB(E)的值为1(偶数)还是0(奇数)被分别用作偶数表120或奇数表130的输入(E NNN)615。
此外,在根据本公开的实施例的基数16的平方根运算的第一次循环或第一轮(图5的510),使用与图6A中使用的被开方数的相同部分从LUT确定8位行/部分被开方数值。图6B示出用于使用与图6A中使用的被开方数的相同部分(E NNN)选择8位行/部分被开方数值的偶数表620和奇数表630。基于被开方数的E NNN值中的指数LSB(E)的值为1(偶数)还是0(奇数)分别使用偶数表620或奇数表630。
因此,根据本公开的实施例的基数16的平方根运算的第一次循环或第一轮(图5的510)的前两个操作产生4位列/除数/根值和8位行/部分被开方数值(即,基数16的PD表400中的条目/单元的坐标)。
如果该条目/单元在基数16的PD表400的区域A中,则直到第二次循环/第二轮520之前不需要做任何进一步的调整。然而,如果该条目/单元在基数16的PD表400的其他任何区域中,则需要做出调整。更具体地,如上所述,如果一个值的条目/单元落入区域E,则该值被调整+8D,因此将该值带入区域A。同样,如果一个值的条目/单元落入区域D,则该值被调整-8D;如果一个值的条目/单元落入区域C,则该值被调整+4D;如果一个值的条目/单元落入区域B,则该值被调整-4D。也如上面所述,这是简化的概述,可能需要其他调整来纠正原始PD表的不对称性质。
在根据本公开的实施例的基数16的平方根运算的第二次循环或第二轮(图5的520),在第一次循环/第一轮末尾的8位行/部分被开方数值被保持,如有需要,对4位列/根值做出调整。只有在4位列/根值导致隶属于上面讨论的区域A(基数4)的“折叠”的非对称性质的单元/条目值并需要被替换时才进行这个操作。在一个实施例中,这是通过将在第一次循环(图5的510)中找到的值与存储在一个或多个LUT中的非对称单元/条目值的范围进行快速比较而确定的。如果该值是非对称的,则它被存储用于第二次循环/第二轮(图5的520)的纠正/修改。
例如,4位列/除数/根值可为0000,这可以是奇数情况,因为不适合用于减小存储基数16的PD表所需的存储器的折叠属性的各个非对称值的单元/条目。在这样的情况下,图6C中的偶数表660和奇数表670可用于将4位列/根值调整为另一值(“输出”)。更具体地,原始的部分被开方数值E NNN被再次使用,但末尾添加尾数/小数的下两位(“E NNN NN”)。再次,根据E为偶数(1)还是奇数(0),使用偶数表660或奇数表670来寻找新的4位列/根值(“输出”)。根据新的列,8位行/部分被开方数值可能还需要被调整,尤其是调整为返回到区域A。
如果不需要调整,在第二次循环/第二轮520中不做任何操作。
在第三次循环/第三轮(图5的530),来自第二次循环/第二轮520的最终PD表条目成为平方根迭代运算的起始估计。
图7A示出根据本公开的实施例的设备。设备1000包括至少一个处理器1010和一个或多个非暂时性计算机可读介质1020。该一个或多个非暂时性计算机可读介质存储用于基数16的平方根运算和基数16的除法迭代运算二者的部分余数-除数(PD)表、一个或多个列/根查找表(LUT)以及一个或多个行/部分被开方数LUT,其中,针对所述一个或多个列/根查找表(LUT)而输入基数16的平方根运算的被开方数的至少一部分并输出PD表的列/根值,针对所述一个或多个行/部分被开方数LUT而输入被开方数的所述至少一部分被并输出PD表的行/部分被开方数值。
当执行存储在一个或多个非暂时性计算机可读介质1020上的指令时,所述至少一个处理器1010执行基于被开方数使用由4位列/根值以及8位行/部分被开方数值指示的PD表中的条目计算基数16的平方根迭代运算的起始估计的步骤,其中,当输入平方根运算的被开方数的至少一部分时从一个或多个列/根LUT输出所述4位列/根值,以及当输入被开方数的所述至少一部分时从一个或多个行/部分被开方数LUT输出所述8位行/部分被开方数值。
图7B示出根据本公开的实施例的制造和测试设备的方法的流程图。
在1050,设备(在这个实例中,为芯片组)被制造,设备包括至少一个处理器和一个或多个非暂时性计算机可读介质。当执行存储在所述一个或多个非暂时性计算机可读介质上的指令时,所述至少一个处理器执行基于被开方数使用由4位列/根值以及8位行/部分被开方数值指示的PD表中的条目计算基数16的平方根迭代运算的起始估计的步骤,其中,当输入平方根运算的被开方数的至少一部分时从一个或多个列/根LUT输出所述4位列/根值,当输入被开方数的所述至少一部分时从一个或多个行/部分被开方数LUT输出所述8位行/部分被开方数值。所述一个或多个非暂时性计算机可读介质存储用于基数16的平方根运算和基数16的除法迭代运算二者的部分余数-除数(PD)表、一个或多个列/根查找表(LUT)以及一个或多个行/部分被开方数LUT,其中,针对所述一个或多个列/根查找表(LUT)而输入基数16的平方根运算的被开方数的至少一部分并输出PD表的列/根值,针对所述一个或多个行/部分被开方数LUT而输入被开方数的所述至少一部分并输出PD表的行/部分被开方数值。
在1060,设备(在这个实例中,为芯片组)被测试。测试1060包括:设备是否具有至少一个处理器,当执行存储在一个或多个非暂时性计算机可读介质上的指令时,所述至少一个处理器执行基于被开方数使用由4位列/根值和8位行/部分被开方数值指示的PD表中的条目计算基数16的平方根迭代运算的起始估计的步骤,其中,当平方根运算的被开方数的至少一部分被输入时从一个或多个列/根LUT输出所述4位列/根值,当被开方数的所述至少一部分被输入时从一个或多个行/部分被开方数LUT输出所述8位行/部分被开方数值;测试设备是否具有所述一个或多个非暂时性计算机可读介质,所述一个或多个非暂时性计算机可读介质存储用于基数16的平方根运算和基数16的除法迭代运算二者的部分余数-除数(PD)表、一个或多个列/根查找表(LUT)以及一个或多个行/部分被开方数LUT,其中,针对所述一个或多个列/根查找表(LUT)而输入基数16的平方根运算的被开方数的至少一部分并输出PD表的列/根值,针对所述一个或多个行/部分被开方数LUT而输入被开方数的所述至少一部分并输出PD表的行/部分被开方数值。
如本领域普通技术人员将理解的,根据具体的实施例和/或实现方式,可以以不同的顺序或并行地或针对不同的时期同时地等发生上面关于本公开的实施例描述的步骤和/或操作。不同的实施例可以以不同的顺序或以不同的方式或手段执行动作。如本领域普通技术人员将理解的,一些附图是执行的动作的简化表示,在此对它们的描述为简化的概述,而真实世界的实现方式将复杂得多,需要更多的阶段和/或组件,并且也将根据具体实现方式的要求而变化。作为简化的表示,这些附图不显示其他需要的步骤,因为这些步骤是本领域普通技术人员已知并理解的,并且可能不是与本描述有关的和/或对本描述有帮助的。
类似地,如本领域的普通技术人员将理解的,一些附图为仅示出相关组件的简化框图,并且这些组件中的一些组件仅表示本领域中公知的功能和/或操作,而不是实际的硬件。在这样的情况下,可以以各种方式和/或方式的组合(诸如,至少部分地以固件和/或硬件的形式,所述固件和/或硬件包括但不限于一个或多个专用集成电路(“ASIC”)、标准集成电路、执行适当指令的控制器,并包括微控制器和/或嵌入式控制器、现场可编程门阵列(“FPGA”)、复杂可编程逻辑装置(“CPLD”)等)来实现或提供组件/模块中的一些或全部。系统组件和/或数据结构中的一些或全部还可作为内容(例如,作为可执行的或其他机器可读的软件指令或结构化数据)被存储在非暂时性计算机可读介质(例如,硬盘、存储器、计算机网络或蜂窝无线网络或其他数据传输介质,或者通过适当的驱动或经由适当的连接读取的便携式介质物品,诸如DVD或闪存装置),以便使得或配置计算机可读介质和/或一个或多个关联的计算系统或装置执行或另外使用或提供所述内容来执行描述的技术中的至少一些技术。
可采用一个或多个处理器、简单的微控制器、控制器等(无论是单独的还是以多处理布置的)来执行存储在非暂时性计算机可读介质上的指令序列以实现本公开的实施例。在一些实施例中,可以使用硬连线电路代替软件指令或与软件指令组合使用。因此,本公开的实施例不限于硬件电路、固件和/或软件中的任何具体组合。
如在此使用的术语“计算机可读介质”是指存储可提供给处理器用于执行的指令的任何介质。这样的介质可采取许多形式,包括但不限于非易失性介质和易失性介质。例如,非暂时性计算机可读介质的常见形式包括软盘、软磁盘、硬盘、磁带或任何其他磁性介质、CD-ROM、任何其他光学介质、打孔卡、纸带、具有孔图案的任何其他物理介质、RAM、PROM和EPROM、FLASH-EPROM、任何其他存储器芯片或盒式磁盘或者其上存储可由处理器执行的指令的任何其他介质。
可至少部分地在便携式装置上实现本公开的一些实施例。如在此使用的“便携式装置”和/或“移动装置”是指具有接收无线信号的能力的任何便携式或可移动电子装置,包括但不限于多媒体播放器、通信装置、计算装置、导航装置等。因此,移动装置包括(但不限于)用户设备(UE)、膝上型计算机、平板计算机、便携式数字助理(PDA)、mp3播放器、手持PC、即时消息装置(IMD)、蜂窝电话、全球导航卫星系统(GNSS)接收器、手表或能被穿戴和/或携带在人身上的任何这种装置。
从本公开来看,如本领域普通技术人员将理解的,可在集成电路(IC)中实现本公开的各种实施例,其中,IC也被称为微芯片、硅芯片、计算机芯片或仅被称为“芯片”。例如,这样的IC可以是宽带和/或基带调制解调器芯片。
虽然已经描述了若干实施例,但是将理解,在不脱离本公开的范围的情况下,可进行各种修改。因此,本领域普通技术人员将清楚,本公开不限于在此描述的任何实施例,而是具有仅由权利要求及其等同物所限定的覆盖范围。
Claims (21)
1.一种产生基数16的平方根迭代运算的起始估计的方法,包括:
使用平方根运算的被开方数的至少一部分作为一个或多个列/根查找表LUT的输入来确定部分余数-除数PD表的4位列/根值,其中,PD表包括折叠的正侧基数4的PD表内的条目/单元的值,其中,PD表用于平方根运算和除法运算二者;
使用被开方数的所述至少一部分作为一个或多个行/部分被开方数LUT的输入来确定PD表的8位行/部分被开方数值;
使用由4位列/根值和8位行/部分被开方数值指示的PD表中的条目,计算基数16的平方根迭代运算的起始估计。
2.如权利要求1所述的方法,其中,PD表包括多个区域,所述多个区域包括作为基数4的PD表区域的基于所述折叠的正侧基数4的PD表的区域。
3.如权利要求2所述的方法,其中,计算基数16的平方根迭代运算的起始估计的步骤包括:
如果由4位列/根值和8位行/部分被开方数值指示的PD表中的条目在所述基数4的PD表区域的外部,则调整4位列/根值和8位行/部分被开方数值以指示所述基数4的PD表区域内的条目。
4.如权利要求3所述的方法,其中,调整4位列/根值和8位行/部分被开方数值以指示所述基数4的PD表区域中的条目的步骤包括:
保持4位列/根值,同时基于由4位列/根值和8位行/部分被开方数值指示的PD表中的条目在所述多个区域中的哪个区域中来调整8位行/部分被开方数值。
5.如权利要求4所述的方法,其中,确定4位列/根值的步骤、确定8位行/部分被开方数值的步骤以及保持4位列/根值而调整8位行/部分被开方数值的步骤在第一次循环中执行。
6.如权利要求2所述的方法,其中,计算基数16的平方根迭代运算的起始估计的步骤包括:
确定由4位列/根值和8位行/部分被开方数值指示的PD表中的条目是否在非对称PD表条目的一个或多个范围内。
7.如权利要求6所述的方法,还包括:
如果由4位列/根值和8位行/部分被开方数值指示的PD表中的条目在非对称PD表条目的所述一个或多个范围内,则保持来自第一次循环的8位行/部分被开方数值,而调整4位列/根值;
保持调整的PD表条目的调整的4位列/根值而重新调整8位行/部分被开方数值。
8.如权利要求7所述的方法,其中,如果来自第一次循环的4位列/根值与次正常情况、例外情况或特殊情况关联,则保持来自第一次循环的8位行/部分被开方数值而调整4位列/根值的步骤、保持调整的PD表条目的调整的4位列/根值而重新调整8位行/部分被开方数值的步骤在第二次循环中执行。
9.如权利要求8所述的方法,其中,来自第二次循环的8位行/部分被开方数值和来自第二次循环的4位列/根值指示PD表中的将用作基数16的平方根迭代运算的起始估计的条目。
10.如权利要求1所述的方法,其中,被开方数的所述至少一部分包括:IEEE-754单精度浮点格式的被开方数的指数部分的最低有效位LSB和IEEE-754单精度浮点格式的被开方数的小数/尾数部分的3个最高有效位MSB。
11.如权利要求1所述的方法,其中,所述一个或多个列/根LUT包括如下的偶数表和奇数表:
偶数表
奇数表
12.如权利要求1所述的方法,其中,所述一个或多个行/部分被开方数LUT包括如下的偶数表和奇数表:
偶数表
奇数表
13.一种计算机设备,包括:
一个或多个非暂时性计算机可读介质,存储:
部分余数-除数PD表,PD表包括:折叠的正侧的基数4的PD表内的条目/单元的值,其中,基数4的PD表用于平方根运算和除法运算二者;
一个或多个列/根查找表LUT;
一个或多个行/部分被开方数LUT;
至少一个处理器,当执行存储在所述一个或多个非暂时性计算机可读介质上的指令时,所述至少一个处理器执行以下步骤:
使用由4位列/根值和8位行/部分被开方数值指示的PD表中的条目,来基于被开方数计算基数16的平方根迭代运算的起始估计,其中,当输入平方根运算的被开方数的至少一部分时从所述一个或多个列/根LUT输出所述4位列/根值,当输入平方根运算的被开方数的所述至少一部分时从所述一个或多个行/部分被开方数LUT输出所述8位行/部分被开方数值。
14.如权利要求13所述的计算机设备,其中,在基数n的PD表中定义PD表的多个区域,其中,n大于4,基数n的PD表包括基数4的PD表。
15.如权利要求14所述的计算机设备,其中,计算基数16的平方根迭代运算的起始估计的步骤包括:
如果初始的起始估计在基数4的PD表的外部,则调整4位列/根值和8位行/部分被开方数值以指示基数4的PD表内的条目/单元。
16.如权利要求15所述的计算机设备,其中,调整4位列/根值和8位行/部分被开方数值以指示基于基数4的PD表的区域中的条目的步骤包括:
保持4位列/根值的同时,基于初始的起始估计在所述多个区域中的哪个区域中来调整8位行/部分被开方数值。
17.如权利要求15所述的计算机设备,其中,输出4位列/根值、输出8位行/部分被开方数值、以及如果初始的起始估计在基数4的PD表的外部则调整4位列/根值和8位行/部分被开方数值以指示基数4的PD表内的条目/单元的步骤在第一次循环中执行。
18.如权利要求13所述的计算机设备,其中,所述至少一个处理器通过确定初始的起始估计是否在非对称PD表条目的一个或多个范围内来计算基数16的平方根迭代运算的起始估计。
19.如权利要求18所述的计算机设备,其中,所述至少一个处理器还执行以下步骤:
如果初始的起始估计在非对称PD表条目的所述一个或多个范围内,则保持来自第一次循环的8位行/部分被开方数值,而调整4位列/根值;
保持调整的起始估计的调整的4位列/根值,而重新调整8位行/部分被开方数值,
其中,如果初始的起始估计在非对称PD表条目的所述一个或多个范围内,保持来自第一次循环的8位行/部分被开方数值而调整4位列/根值的步骤、保持调整的起始估计的调整的4位列/根值而重新调整8位行/部分被开方数值的步骤在第二次循环中执行。
20.一种芯片组制造方法,包括:
制造芯片组,所述芯片组包括:
一个或多个非暂时性计算机可读介质,存储:
部分余数-除数PD表,包括:折叠的正侧基数4的PD表内的条目/单元的值,其中,基数4的PD表用于平方根运算和除法运算二者;
一个或多个列/根查找表LUT;
一个或多个行/部分被开方数LUT;
至少一个处理器,当执行存储在所述一个或多个非暂时性计算机可读介质上的指令时,所述至少一个处理器执行以下步骤:
使用由4位列/根值和8位行/部分被开方数值指示的PD表中的条目,来基于被开方数计算基数16的平方根迭代运算的起始估计,其中,当输入平方根运算的被开方数的至少一部分时从所述一个或多个列/根LUT输出所述4位列/根值,当输入平方根运算的被开方数的所述至少一部分时从所述一个或多个行/部分被开方数LUT输出所述8位行/部分被开方数值。
21.一种测试设备的方法,包括:
测试所述设备是否具有一个或多个非暂时性计算机可读介质,所述一个或多个非暂时性计算机可读介质存储:
部分余数-除数PD表,包括:折叠的正侧基数4的PD表内的条目/单元的值,其中,基数4的PD表用于平方根运算和除法运算二者;
一个或多个列/根查找表LUT;
一个或多个行/部分被开方数LUT;
测试所述设备是否具有至少一个处理器,当执行存储在所述一个或多个非暂时性计算机可读介质上的指令时,所述至少一个处理器执行以下步骤:
使用由4位列/根值和8位行/部分被开方数值指示的PD表中的条目,来基于被开方数计算基数16的平方根迭代运算的起始估计,其中,当输入平方根运算的被开方数的至少一部分时从所述一个或多个列/根LUT输出所述4位列/根值,当输入平方根运算的被开方数的所述至少一部分时从所述一个或多个行/部分被开方数LUT输出所述8位行/部分被开方数值。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662416846P | 2016-11-03 | 2016-11-03 | |
US201662416842P | 2016-11-03 | 2016-11-03 | |
US62/416,846 | 2016-11-03 | ||
US62/416,842 | 2016-11-03 | ||
US15/419,757 | 2017-01-30 | ||
US15/419,757 US10209959B2 (en) | 2016-11-03 | 2017-01-30 | High radix 16 square root estimate |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108021180A true CN108021180A (zh) | 2018-05-11 |
CN108021180B CN108021180B (zh) | 2023-06-02 |
Family
ID=62020467
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710942762.7A Active CN108021477B (zh) | 2016-11-03 | 2017-10-11 | 执行递归操作的方法、计算机设备、制造和测试方法 |
CN201710959563.7A Active CN108021180B (zh) | 2016-11-03 | 2017-10-16 | 产生起始估计的方法、计算机设备及制造和测试的方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710942762.7A Active CN108021477B (zh) | 2016-11-03 | 2017-10-11 | 执行递归操作的方法、计算机设备、制造和测试方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10209959B2 (zh) |
KR (2) | KR102332323B1 (zh) |
CN (2) | CN108021477B (zh) |
TW (2) | TWI754680B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113761451A (zh) * | 2020-06-05 | 2021-12-07 | 扬智科技股份有限公司 | 求平方根的方法和装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10209959B2 (en) * | 2016-11-03 | 2019-02-19 | Samsung Electronics Co., Ltd. | High radix 16 square root estimate |
US10809980B2 (en) * | 2017-06-14 | 2020-10-20 | Arm Limited | Square root digit recurrence |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4939686A (en) * | 1987-05-18 | 1990-07-03 | Weitek Corporation | Method and apparatus for shared radix 4 division and radix 4 square root |
CN1761938A (zh) * | 2003-03-21 | 2006-04-19 | 英特尔公司 | 超高基数除法 |
CN105302519A (zh) * | 2014-07-24 | 2016-02-03 | Arm有限公司 | 用于执行浮点平方根运算的装置和方法 |
CN105955706A (zh) * | 2016-06-16 | 2016-09-21 | 武汉芯泰科技有限公司 | 一种除法器及除法运算方法 |
Family Cites Families (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4949295A (en) * | 1988-07-18 | 1990-08-14 | Lsi Logic Corporation | Transformation of divisor and dividend in digital division |
US5132925A (en) | 1988-08-18 | 1992-07-21 | Digital Equipment Corporation | Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction |
US5128891A (en) | 1990-04-02 | 1992-07-07 | Advanced Micro Devices, Inc. | High speed divider with square root capability |
US5258944A (en) | 1992-09-01 | 1993-11-02 | Cray Research, Inc. | High performance mantissa divider |
JP2518532B2 (ja) * | 1993-09-22 | 1996-07-24 | 日本電気株式会社 | 減算シフト型除算器 |
JP3609512B2 (ja) | 1994-12-15 | 2005-01-12 | 株式会社東芝 | 演算器 |
US6112019A (en) | 1995-06-12 | 2000-08-29 | Georgia Tech Research Corp. | Distributed instruction queue |
US5696712A (en) | 1995-07-05 | 1997-12-09 | Sun Microsystems, Inc. | Three overlapped stages of radix-2 square root/division with speculative execution |
US5787030A (en) * | 1995-07-05 | 1998-07-28 | Sun Microsystems, Inc. | Correct and efficient sticky bit calculation for exact floating point divide/square root results |
US5862059A (en) | 1995-07-19 | 1999-01-19 | National Semiconductor Corporation | Table compression using bipartite tables |
US5910910A (en) | 1997-06-23 | 1999-06-08 | Sun Microsystems, Inc. | Circuit and method for rapid calculation of quotients and square roots |
US6108682A (en) | 1998-05-14 | 2000-08-22 | Arm Limited | Division and/or square root calculating circuit |
JP2000347836A (ja) * | 1999-06-04 | 2000-12-15 | Sony Corp | 高次基数除算器およびその方法 |
FI20000378A (fi) * | 2000-02-18 | 2001-08-18 | Nokia Networks Oy | Laskutoimitusten suorittaminen digitaalisessa signaalinkäsittelylaitteessa |
US6782405B1 (en) | 2001-06-07 | 2004-08-24 | Southern Methodist University | Method and apparatus for performing division and square root functions using a multiplier and a multipartite table |
US6847985B1 (en) | 2001-08-10 | 2005-01-25 | Lsi Logic Corporation | Floating point divide and square root processor |
KR100407562B1 (ko) | 2001-11-21 | 2003-11-28 | 삼성전자주식회사 | 제산 및 제곱근 계산 장치 및 방법 |
EP1315081B1 (en) | 2001-11-22 | 2008-05-07 | STMicroelectronics Limited | Circuitry for carrying out at least one of a square root operation and a division operation |
EP1315080A1 (en) | 2001-11-22 | 2003-05-28 | STMicroelectronics Limited | Circuitry for carrying out square root and division operations |
US7127483B2 (en) | 2001-12-26 | 2006-10-24 | Hewlett-Packard Development Company, L.P. | Method and system of a microprocessor subtraction-division floating point divider |
US6938062B1 (en) | 2002-03-26 | 2005-08-30 | Advanced Micro Devices, Inc. | Apparatus and method for providing higher radix redundant digit lookup tables for recoding and compressing function values |
US7016930B2 (en) | 2002-10-25 | 2006-03-21 | Arm Limited | Apparatus and method for performing operations implemented by iterative execution of a recurrence equation |
JP4273071B2 (ja) | 2004-12-15 | 2009-06-03 | エヌイーシーコンピュータテクノ株式会社 | 除算・開平演算器 |
US7519649B2 (en) * | 2005-02-10 | 2009-04-14 | International Business Machines Corporation | System and method for performing decimal division |
US8898215B2 (en) | 2007-06-28 | 2014-11-25 | King Fahd University Of Petroleum And Minerals | High-radix multiplier-divider |
CN102117302B (zh) * | 2009-12-31 | 2013-01-23 | 南京理工大学 | 传感器数据流复杂查询结果的数据起源跟踪方法 |
TWI420333B (zh) * | 2011-08-10 | 2013-12-21 | Inventec Corp | 分散式的重複數據刪除系統及其處理方法 |
CN103988173B (zh) * | 2011-11-25 | 2017-04-05 | 英特尔公司 | 用于提供掩码寄存器与通用寄存器或存储器之间的转换的指令和逻辑 |
US8914431B2 (en) * | 2012-01-03 | 2014-12-16 | International Business Machines Corporation | Range check based lookup tables |
US8868633B2 (en) | 2012-03-30 | 2014-10-21 | Advanced Micro Devices, Inc. | Method and circuitry for square root determination |
US9081608B2 (en) * | 2012-05-19 | 2015-07-14 | Digital System Research Inc. | Residue number arithmetic logic unit |
US9753695B2 (en) | 2012-09-04 | 2017-09-05 | Analog Devices Global | Datapath circuit for digital signal processors |
US10038550B2 (en) * | 2013-08-08 | 2018-07-31 | Intel Corporation | Instruction and logic to provide a secure cipher hash round functionality |
US9348796B2 (en) | 2013-09-19 | 2016-05-24 | International Business Machines Corporation | Arithmetic operation in a data processing system |
CN103809930B (zh) * | 2014-01-24 | 2017-05-03 | 天津大学 | 一种双精度浮点数除法器的设计方法及除法器 |
US10983756B2 (en) * | 2014-10-17 | 2021-04-20 | Imagination Technologies Limited | Small multiplier after initial approximation for operations with increasing precision |
US9785407B2 (en) | 2014-11-21 | 2017-10-10 | Arm Limited | Data processing apparatus having combined divide-square root circuitry |
CN104699450A (zh) * | 2015-03-18 | 2015-06-10 | 浪潮集团有限公司 | 一种基于进位保留加法器的基数-16定点除法器 |
US20160313976A1 (en) * | 2015-04-21 | 2016-10-27 | Qualcomm Incorporated | High performance division and root computation unit |
US10209957B2 (en) | 2015-05-04 | 2019-02-19 | Samsung Electronics Co., Ltd. | Partial remainder/divisor table split implementation |
US9983850B2 (en) | 2015-07-13 | 2018-05-29 | Samsung Electronics Co., Ltd. | Shared hardware integer/floating point divider and square root logic unit and associated methods |
US10209959B2 (en) * | 2016-11-03 | 2019-02-19 | Samsung Electronics Co., Ltd. | High radix 16 square root estimate |
-
2017
- 2017-01-30 US US15/419,757 patent/US10209959B2/en active Active
- 2017-02-13 US US15/431,323 patent/US10223073B2/en active Active
- 2017-08-24 KR KR1020170107479A patent/KR102332323B1/ko active IP Right Grant
- 2017-08-28 KR KR1020170108882A patent/KR102437767B1/ko active IP Right Grant
- 2017-10-11 CN CN201710942762.7A patent/CN108021477B/zh active Active
- 2017-10-16 CN CN201710959563.7A patent/CN108021180B/zh active Active
- 2017-10-17 TW TW106135519A patent/TWI754680B/zh active
- 2017-10-23 TW TW106136372A patent/TWI743237B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4939686A (en) * | 1987-05-18 | 1990-07-03 | Weitek Corporation | Method and apparatus for shared radix 4 division and radix 4 square root |
CN1761938A (zh) * | 2003-03-21 | 2006-04-19 | 英特尔公司 | 超高基数除法 |
CN105302519A (zh) * | 2014-07-24 | 2016-02-03 | Arm有限公司 | 用于执行浮点平方根运算的装置和方法 |
CN105955706A (zh) * | 2016-06-16 | 2016-09-21 | 武汉芯泰科技有限公司 | 一种除法器及除法运算方法 |
Non-Patent Citations (1)
Title |
---|
徐群等: "三值光学计算机的MSD迭代除法算法和实现技术", 《中国科学:信息科学》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113761451A (zh) * | 2020-06-05 | 2021-12-07 | 扬智科技股份有限公司 | 求平方根的方法和装置 |
CN113761451B (zh) * | 2020-06-05 | 2024-04-16 | 扬智科技股份有限公司 | 求平方根的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20180049788A (ko) | 2018-05-11 |
CN108021477A (zh) | 2018-05-11 |
US10209959B2 (en) | 2019-02-19 |
US20180121167A1 (en) | 2018-05-03 |
CN108021477B (zh) | 2023-04-07 |
KR102437767B1 (ko) | 2022-08-29 |
CN108021180B (zh) | 2023-06-02 |
US10223073B2 (en) | 2019-03-05 |
TW201818266A (zh) | 2018-05-16 |
US20180121164A1 (en) | 2018-05-03 |
TWI754680B (zh) | 2022-02-11 |
TW201818265A (zh) | 2018-05-16 |
KR20180049789A (ko) | 2018-05-11 |
KR102332323B1 (ko) | 2021-11-29 |
TWI743237B (zh) | 2021-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8914431B2 (en) | Range check based lookup tables | |
CN108021180A (zh) | 产生起始估计的方法、计算机设备及制造和测试的方法 | |
US10877733B2 (en) | Segment divider, segment division operation method, and electronic device | |
US20200225912A1 (en) | Approximating Functions | |
KR102581403B1 (ko) | 공유 하드웨어 로직 유닛 및 그것의 다이 면적을 줄이는 방법 | |
US11294634B2 (en) | Float division by constant integer | |
CN108334304B (zh) | 数字递归除法 | |
US8868633B2 (en) | Method and circuitry for square root determination | |
WO2021136259A1 (zh) | 浮点数乘法计算的方法、装置和算术逻辑单元 | |
CN117032625A (zh) | 一种低延时的浮点平方根函数硬件实现方法 | |
US20160110161A1 (en) | Apparatus and method for performing reciprocal estimation operation | |
CN115469829B (zh) | 运算装置和基于运算电路的指数运算方法 | |
TWI753668B (zh) | 資訊處理裝置、電腦程式、記錄媒體及資訊處理方法 | |
US10037191B2 (en) | Performing a comparison computation in a computer system | |
Vuthaj et al. | From Floats To Posits: A Conversion Framework | |
Lloris Ruiz et al. | Number Systems | |
Rahman et al. | Design of High Performance Floating Point SRT Divider Using Divisor and Partial Remainders Estimates | |
Stine | Division Using Multiplicative-Based Methods | |
McNamee et al. | Numerical Methods for Roots of Polynomials-Part II: Chapter 8. Graeffe’s Root-Squaring Method | |
CA2846960A1 (en) | Method, hardware unit and processor for calculating a square root |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |