产生用于多项式运算的部分乘积的设备和方法本申请要求于2012年2月29日提交到韩国知识产权局的第10-2012-0021304号韩国专利申请的权益,其全部公开为了全部目的通过引用包含于此。技术领域下面的描述涉及一种用于多项式运算的数字处理技术。
背景技术:当前的图像处理装置或各种多媒体装置需要超越函数的运算,诸如三角函数、对数和指数函数、以及包括加、减、乘、除的基础运算。在编译软件阶段,可以将这样的复杂的函数设计为被分解为诸如加和成的基础运算,以进行容易地处理。然而,这与在用于处理运算的处理器中安置专用的处理单元的方案相比花费太长的时间。因为图像信息的处理时间作为图像处理装置的性能的重要标志,所以具有专用的处理单元的处理器被用于在处理图像信息时执行超越函数运算。为了在数字装置中处理超越函数,通常执行乘法和加法运算。通常从多项式展开式得到超越函数运算的结果。多项式由数个单项式组成,由常量和几个变量的乘法构造来每个单项式。就基础运算来说,由一系列乘法的运算和对乘法结果进行求和来形成多项式。作为基础算术运算的乘法运算需要很长的处理时间。因此,减少乘法运算的时间可以减少多项式运算的整个处理时间,因而允许实现更快的数字装置。
技术实现要素:在一个总体方面中,提供了一种产生用于多项式运算的部分乘积的设备,所述设备包括:多个第一编码器,每个第一编码器被构造为根据两个与乘数相关的输入来选择性地输出三个互相排斥的值中的一个值;多个第二编码器,每个第二编码器被构造为根据来自设置在与参考比特位置对应的位置处的第一编码器的输出、来自设置在与较高的比特位置对应的位置处的第一编码器的输出、来自设置在与较低的比特位置对应的位置处的第一编码器的输出以及被乘数,来产生两个候选的部分乘积和进位估计值;多个复用器,每个复用器被构造为根据来自设置在与较低的比特位置对应的位置处的第二编码器的进位估计值来选择所述两个候选的部分乘积中的一个候选的部分乘积。每个第一编码器可以被构造为接收在一系列乘法运算中产生的先前的部分乘积的比特值以作为所述两个与乘数相关的输入。每个第一编码器可以设置在与输入的每个比特值对应的比特位置处。每个第一编码器可以是输出P(Propagation)、G(Generation)和T(Termination)中的一个值的PGT编码器。P可以指示响应于在较低的位中出现进位而在参考比特中出现进位的状态,G可以指示在参考比特中出现进位的状态,T可以指示即使在较低的比特中出现进位时在参考比特中也不出现进位的状态。每个第二编码器可以被构造为根据来自设置在与参考比特位置对应的位置处的第一编码器的输出、来自设置在与较高的比特位置对应的位置处的第一编码器的输出以及来自设置在与较低的比特位置对应的位置处的第一编码器的输出,来产生两个候选的编码值和进位估计值,并被构造为通过将两个候选的编码值乘以被乘数来输出所述两个候选的部分乘积。每个第二编码器可以被构造为产生用于在较低的比特中出现进位的事件的第一候选的编码值和用于在较低的比特中没有出现进位的事件的第二候选的编码值。每个第二编码器可以被构造为基于基-4布斯编码算法来执行编码。每个第二编码器可以设置在与输入的比特值的偶数比特位置对应的位置处。在另一总体方面中,提供了一种产生用于多项式运算的部分乘积的方法,所述方法包括下述步骤:根据两个与乘数相关的输入来输出作为PGT值的三个互相排斥的值P(Propagation)、G(Generation)和T(Termination)中的一个值;根据在参考比特位置处、在较高的比特位置处、以及在较低的比特位置处的PGT值来产生两个候选的编码值和进位估计值,并通过将所述两个候选的编码值中的每个候选的编码值乘以被乘数来产生两个候选的部分乘积;根据在较低比特位置处的进位估计值来选择所述两个候选的部分乘积中的一个候选的部分乘积。P可以指示响应于在较低的位中出现进位而在参考比特中出现进位的状态,G可以指示在参考比特中出现进位的状态,T可以指示即使在较低的比特中出现进位时在参考比特中也不出现进位的状态。所述两个输入可以是在一系列乘法运算中产生的先前的部分乘积的比特值。所述两个候选的编码值可以包括用于在较低的比特中出现进位的事件的第一候选的编码值和用于在较低的比特中没有出现进位的事件的第二候选的编码值。其他的特征和方面可以通过下面的具体实施方式、说明书附图以及权利要求书而变得明显。附图说明图1是示出产生用于多项式运算的部分乘积的设备的示例的示图。图2是示出第一编码器的示例的示图。图3是示出第二编码器的示例的示图。图4是示出第二编码器的另一示例的示图。图5是示出复用器的示例的示图。图6是示出产生用于多项式运算的部分乘积的方法的示例的流程图。贯穿说明书附图部分和具体实施方式部分,除非进行了另外地描述,否则相同的附图标记将被理解为指示相同的元件、特征和结构。可以为了清楚、示出和简明而夸大了这些元件的相对尺寸和绘示。具体实施方式为了帮助读者对在此描述的方法、设备和/或系统的综合理解而提供下面的实施例。因此,本领域普通技术人员将获知在此描述的方法、设备和/或系统的各种改变、修改和等同物。此外,可能省略了公知功能和构造的描述,以增加清楚性和简明性。图1是示出产生用于多项式运算的部分乘积的设备的示例的示图。图2是示出第一编码器的示例的示图,图3和图4是示出第二编码器的示例的示图。图5是示出复用器的示例的示图。参照图1,产生用于部分乘积的设备包括第一编码器101、第二编码器102和复用器103。第一编码器101可以接收与乘数相关的两个输入。如果乘数为X,则第一编码器101可以接收与X相关的输入A和B。A和B中的每个输入可以为在一系列乘法运算中产生的先前的部分乘积。例如,可以由A和B的和来表示X。第一编码器101可以被设置在输入的多个比特的对应的比特的每个比特位置处。如果输入是均具有6bit长度的先前的部分乘积A和B,则可以将六个第一编码器101设置在与各比特对应的位置处。例如,第n第一解码器101a可以具有A[2]和B[2]以作为输入。A[2]可以为与乘数X相关的先前的部分乘积中的一个部分乘积的第三比特值,B[2]可以为与乘数X相关的先前的部分乘积中的另一个部分乘积的第三比特值。为了便于说明,与第n比特值对应的位置将被称为参考比特位置。第一编码器101可以根据接收的两个输入输出三个互斥(互相排斥,mutuallyexclusive)的值之一。例如,第一编码器101可以输出作为PGT值的传递P(propagation)、产生G(generation)和终止T(termination)中的一个值。PGT值可以为与进位的出现相关的值。P指响应于在较低的位中出现进位而在参考比特中出现进位的状态,G指在参考比特中出现进位的状态,T指即使在较低的比特中出现进位时在参考比特中也不出现进位的状态。例如,第n第一解码器101a可以根据比特输入A[2]和B[2]来选择性地输出P(例如,100)、G(例如,010)和T(例如,001)之一。虽然上面的示例假设PGT是3比特数据,但是这仅仅是处于举例说明的目的,应该理解的是,PGT的长度可以改变。第二编码器102可以接收来自相邻的第一编码器101的输出。例如,第n第二编码器102a可以接收来自设置在与参考比特位置对应的位置处的第n第一编码器101a的输出、来自设置在与较高的比特位置对应的位置处的第n+1第一编码器101b的输出、以及来自设置在与较低的比特位置对应的位置处的第n-1第一编码器101c的输出。第二编码器102可以接收被乘数。如果被乘数是Y,则第二编码器102可以接收Yn和Yn-1。在这样的示例中,Yn指原始的被乘数,Yn-1指已经被移位了一个比特的被乘数。第二编码器102可以根据来自第一编码器101的输出和被乘数来产生两个候选的部分乘积和一个进位估计值。例如,第n第二编码器102a可以接收来自第n第一编码器101a的输出、来自第n+1第一编码器101b的输出、以及来自第n-1第一编码器的输出,可以通过使用基-4布斯编码算法(Radix-4Boothencodingalgorithm)来产生两个候选的编码值和一个进位估计值el,然后可以通过将两个候选的编码值中的每个候选的编码值乘以被乘数来产生两个候选的部分乘积pp1_0和pp1_1。当在较低的比特中出现进位时,两个候选的编码值中的一个候选的编码值可以变为部分乘积,当在较低的比特中没有出现进位时,两个候选的编码值中的另一个候选的编码值可以变为部分乘积。第二编码器102可以设置在与用于基-4布斯冗余编码的偶数比特对应的位置处。例如,第二编码器102可以设置在与第n-2比特、第n比特、第n+2比特对应的位置中的每个位置处。复用器103可以接收来自设置在与参考比特位置对应的位置处的第二编码器102的输出和设置在与较低的比特位置对应的位置处的第二编码器102的进位估计值。例如,第n复用器103a可以接收第n第二编码器102a的候选的部分乘积pp1_0和pp1_1以及第n-2第二编码器102b的进位估计值e0。复用器103可以根据较低比特位置处的第二编码器102的进位估计值,来从来自参考比特位置处的第二编码器102的输出中选择一个输出。例如,第n复用器103a可以根据第n-2第二编码器102b的进位估计值e0,来选择第n第二编码器102a的候选的部分乘积pp1_0和pp1_1中的一个候选的部分乘积。在假设来自第一编码器101的输出是PGT值的一个示例中,第一编码器200可以根据两个输入A和B来输出P、G和T中的一个。在这样的示例中,可以将两个输入与PGT值之间的关系定位为下面的表达式1。Pn=AnXORBnGn=AnANDBnTn=~(AnORBn)...(1)可以通过下面的表1来表示表达式1。表1如表达式1和表1所示,对应于两个输入,PGT值仅为三个互相排斥的值之一。可以通过各种方法来实现根据表达式1和表1进行运算的第一编码器101,图2示出了第一编码器101的示例。例如,参照图2,第一编码器101可以包括XOR、AND、NOR逻辑门等。在图2中示出的构造仅处于举例说明的目的,且第一编码器101不限于此。在另一个示例中,第二编码器102可以包括用于产生候选的编码值的部分、用于产生进位估计值的部分、以及用于产生候选的部分乘积的部分。例如,参照图3,第二编码器102包括候选编码值产生部分301、进位估计值产生部分302和候选部分乘积产生部分303。根据相邻的第一编码器101a、101b、101c(参照图1)的PGT值,候选编码值产生部分301和进位估计值产生部分302执行如表2中所示的编码。表2在表2中,PGT条目下的PPP指示从各比特位置输出的所有的PGT值为P。BE0和BE1代表两个候选的编码值,e代表进位估计值。如表2中所示,候选编码值产生部分301可以输出两个候选的编码值,两个候选的编码值中的每个候选的编码值根据PGT值而具有-2、-1、0、1和2中的一个值,进位估计值产生部分302可以输出0或1的进位估计值。另外,候选部分乘积产生部分303可以使用两个候选的编码值BE0和BE1以及被乘数Y来产生两个候选的部分乘积PP0和PP1。可以使用各种方法来实现根据表2进行运算的第二编码器102。下面提供第二编码器102的实施方式的示例。得到如表1中所示的编码结果是为了获得最终的部分乘积。因此,可以使用根据编码值限定下面的三个指令并使用限定的指令来产生部分乘积的设计方案。*移位(Shift):与编码值+2和-2对应,并使输入值移位一个比特位置*归零(Zero):与编码值0对应并输出0*取负(Negation):与编码值-1和1对应,并得到输入值的补码。在下面的表3中简要地示出了这样的三个指令和编码值的出现条件。表3表3示出了被用于逻辑结构中以产生部分乘积的对取负、归零和移位进行限定的值。每个值具有0或1的逻辑状态,X可以是处于“随意”条件下的任意值。因此,通过如表3中所示地适当地调节作为逻辑值的X,可以容易地从PGT值获得取负、移位和归零的逻辑表达。在下面的表4中示出了这样的逻辑表达的示例。表4同时,当PGT值的P、G和T是互斥的且仅三者之一处于启用状态时,提供通过下面的简单的逻辑表达式2来代表所述指令。Shiftno-carry=PnXORTn-1Shiftcarry=PnXORGn-1Zerono-carry=~Pn+1XORTnZerocarry=~Pn+1XORGnNegationno-carry=Pn+1XOR(GnOR(PnAND~Tn-1))Negationcarry=Pn+1XOR(GnOR(PnAND~Tn-1))(2)可以使用各种方法来实现根据表达式2和表2至表4进行运算的第二编码器102,图4示出了第二编码器102的示例。例如,参照图4,基于XOR、AND、NOR逻辑门,第二编码器102可以包括用于产生两个部分乘积的部分401和用于产生进位估计值的部分402。图4中示出的第二编码器102的构造仅是出于举例说明的目的,应该理解的是,这样的构造可以进行改变。在图5中示出了复用器103的示例。参照图5,复用器103可以接收在参考比特位置处的两个候选的部分乘积PP0和PP1和在较低的比特位置处的进位估计值en-2。另外,复用器103可以根据进位估计值en-2来选择两个候选的部分乘积PP0和PP1中的一个候选的部分乘积,并将选择的候选的部分乘积输出作为最终的部分乘积PPn。在图5中示出的复用器103的构造仅出于举例说明的目的,应该理解的是,可以采用其他的各种逻辑结构以作为复用器103的构造。图6是示出产生用于多项式运算的部分乘积的方法的示例的流程图。参照图6并结合图1,在操作601,产生PGT值。例如,根据与乘数相关的两个输入,第一编码器101可以输出被定义为互斥指的P、G和T中的一个值,如表1和表达式1所示。在操作602,产生候选的部分乘积和进位估计值。例如,根据在与输入的比特值相关的较高的比特位置、较低的比特位置、以及参考比特位置处的PTG值,第二编码器102可以产生两个候选的编码值和进位估计值,如表2至表4和表达式2所示。然后,第二编码器102可以通过将两个候选的编码值中的每个候选的编码值乘以被乘数来产生两个候选的部分乘积。在操作603,选择候选的部分乘积之一。例如,根据在较低的比特位置处的进位估计值,复用器103可以选择两个候选的部分乘积中的一个候选的部分乘积。如上所述,以如仅根据与参考比特位置相邻的PGT值以及互斥这样的方式,可以并行地得到候选的部分乘积和进位估计值。因此,即使当输入值的比特长度增加,也可以缩短因进位传递而导致的延迟。具体地讲,与需要很长的处理时间的难以解构的进位传递加法器(CPA)相比,在上面的示例中示出的被构造为具有一致的、小型的、逻辑可分解的解构的设备可以更有效地增加管线级的数量,以进行高速处理。此外,因为上面描述的结构即使当输入比特的长度增加时也仅需要恒定的处理时间,所以应用这样的结构的乘数越大,时间延迟缩短的越多。上面描述的方法和/或操作可以被记录、存储或固定在一个或多个计算机可读存储介质中,其中,计算机可读存储介质包括由计算机实现的程序指令,以使处理器执行或运行这样的程序指令。介质还可以独立地或与程序指令结合地包括数据文件、数据结构等。计算机可读存储介质的示例包括:磁介质,诸如硬盘、软盘和磁带;光学介质,诸如CDROM盘和DVD;磁-光介质,诸如光学片;专门地被构造为存储并执行程序指令的硬件装置,诸如只读存储器(ROM)、随机存取存储器(RAM)、闪速存储器等。程序指令的示例包括诸如由编译器产生的机器代码、以及包含可以由计算机使用解释器来执行的高级代码的文件。所述的硬件装置可以被构造为用作一个或多个软甲模块,以执行上述的操作和方法,反之亦然。另外,计算机可读存储介质可以分布在通过网络连接的计算机系统中,计算机可读代码或程序指令可以以分散化的方式进行存储和执行。已经在上面描述了数个示例。然而,应该理解的是,可以进行各种修改。例如,如果以不同的顺序来执行描述的技术,和/或如果以不同的方式接组合描述的系统、架构、装置或电路中的组件和/或通过其他的组件或它们的等同物来代替或补充描述的系统、架构、装置或电路中的组件,则可以实现适当的结构。因此,其他的实施方式落入权利要求的范围内。