乘法器/移位器(150)利用高速乘法器实现乘法和可编程的左、右移位。移位方式时移位解码器(160)根据移位计数和移位方向提供第一再编码信号。乘法方式时再编码器(161)对乘数输入再编码,提供第二再编码信号。乘法器阵列(163)的被乘数输入端接收被乘数或移位运算数,根据工作方式有选择地使用第一或第二再编码信号,其输出是乘积或第一移位结果。输出移位器(157)根据移位方向有选择地调整第一移位结果,提供一个第二、最后的移位结果。(*该技术在2015年保护过期,可自由使用*)
【技术实现步骤摘要】
本专利技术涉及数据处理系统,具体涉及具有移位能力的运算电路。数据处理器需要各种各样的移位运算实现其指令集。这种移位运算可包括左移位、右移位和循环移位。这些移位可以是算术的或逻辑的,它确定如何处理运算数任一端的位。每个移位或循环操作具有可变的长度。由移位运算的类型确定哪一位被移位到给定位的位置。一般地,在设计电路中包含一种折衷办法,以实现运算数的移位和循环运算。用于执行运算的电路的集成电路的面积影响以完成运算时钟周期数测量的运算的性能。一种极端情况,桶形移位器执行运算数的全矩阵运算。例如,如果桶形移位器是32位宽,32位的每一位有选择地直接地耦合到其它31位的每一位。对于一个运算哪些位组合在一起由执行运算的长度和方向确定。这种桶形移位器使移位器的性能最大,但是也使用最大的空间。另一种极端情况,简单的移位器每次仅移一位。为了实现较大长度的移位,控制部分必须使用连续地1位移位运算,直到达到规定的长度。这种类型的移位器使用比桶形移位器少得多的面积,但其性能被大大地缩小。由Chas F.Studor和Robert Skruhak专利技术的美国专利No.5099445教导了一种中间移位器。这种移位器执行左和右移位,不仅移一位,而且移任意数目的位,例如4位,在容量和速度之间提供了很好的折衷。但是,在数据处理器设计中面积—速度的折衷仍是一个重要问题。G. Wolrich等人在美国专利4887232号专利技术名称为“在乘法器阵列电路中用于实现移位运算的设备和方法”中公开了一种用于在浮点系统中相加或相减之前调整运算数的移位设备。Wolrich等人使用现存的阵列乘法器,无需使用如桶形移位器之类的附加移位器迅速地实现非规范化移位。由Wolrich等人公开的设备仅用于非规范化移位而且因此只可编程地实现右移位。但是,需要的是这样的一种移位设备,即既消耗很少的电路面积而又能够实现所有需要的移位运算。据此,本专利技术以一种形式提供一种组合的乘法器/移位器,它包括第一和第二输入端;第一和第二再编码电路;以及一个乘法器阵列。第一输入端接收第一运算数,该运算数是乘法方式的被乘数和移位方式的移位运算数。第二输入端接收第二运算数,该第二运算数是乘法方式乘数和移位方式的移位计数。第一再编码电路耦合到第二输入端,而且相应于第二运算数的多个位组并提供相应的再编码信号的多个第一组。再编码信号的每个第一组表示再编码状态中的一个第一预定数,由相应于第二运算数的位值来确定。第二再编码电路被耦合到第二输入端而且相应于第二运算数的多个位组并提供一个第二相应的再编码信号的多个组。每个再编码信号的第二组表示再编状态中的一个第二预定数,由相应于第二运算数的位值来确定。第二预定数小于第一预定数。乘法器阵列有一个用于接收第一运算数的被乘数输入端,一个用于接收或是乘法方式的再编码信号的多个第一组或是移位方式的再编码信号的多个第二组的乘法器输入端,和一个输出端,用于提供第一和第二输入端的乘积。组合的乘法器/移位器提供乘法器阵列的输出,作为乘法器的乘积及乘法方式的被乘数和作为移位方式的第一移位结果。本专利技术以另一种形式提供利用一个乘法器阵列实现乘法和移位运算的方法。第一运算数提供乘法器阵列的被乘数输入并且代表乘法方式中的被乘数和移位方式中的移位运算数。接收代表/乘法方式中乘数的第二运算数和移位方式中的移位计数。在乘法方式中再编码该乘数,以便提供再编码信号的第一多个组,其每一个代表其中一个再编码状态的第一预定数。在移位方式中再编码移位计数,以便提供再编码信号的第二多个组,其每一个代表其中一个再编码状态的第二预定数。第二预定数小于第一预定数。再编码信号的第三多个组的每一个组代表其中一个再编码状态的第三预定数,响应于或是移位方式的再编码信号的第一多个组或是乘法方式的再编码信号的第二多个组,第三多个组的再编码信号提供给乘法器阵列的再编码信号的输入端。乘法器阵列的输出作为乘法方式的乘积和作为移位方式的第一移位结果提供。从结合附图的如下详细描述将对上述的这些特点和其它特点以及优点清楚地了解。附图说明图1示出现有技术的一种算术逻辑单元(ALU)的方框图。图2示出本专利技术的内含数据处理器的数据处理系统。图3示出本专利技术的一个实施例的ALU的方框图。图4示出图3的再变换电路的方框图。图5示出本专利技术的第二实施例的ALU的方框图。图6示出图5的修改布斯(Booth)再编码器和MUX的部分逻辑图和部分原理图。图1示出现有技术的算术逻辑单元(ALU)20的方框图。ALU20包括用于存储运算数的寄存器21和22。ALU20包括一个阵列乘法器23,在相乘指令期间它接收这两个运算数。当提供给乘法器23时,这两个运算数被分别标号“MULTIPLIER”和“MULTIPLICAND”(“乘数”和“被乘数”)。阵列乘法器23是一种常规的阵列乘法器,例如修改的Booth乘法器,华莱士(Wallace)树等。在修改的Booth乘法器的情况下,一系列修改的Booth再编码器(未示出)接收三个乘法器位的相应的组并且再编码它们以提供信号至阵列乘法器23的一个阵列。然后被乘数信号被传送到该阵列的复用器,以便根据常规的修改的Booth再编码选择部分乘积,即0、±1和±2倍被乘数。然后相加复用器的输出,提供最后的和,该和是乘数和被乘数的乘积。阵列乘法器23提供该乘积作为输出信号至累加加法器24。累加加法器24有一个输入端,用于接收先前的和,该和加到该乘积并又提供这个和作为至寄存器25的输出。寄存器25是一个读/写寄存器,该寄存器有一个输出被返回连接到累加加法器24的输入端。这样ALU20能够执行乘和累加(MAC)指令。ALU还包括一个桶形移位器26实现移位指令。桶形移位器26有一个连接到寄存器输出端的第一输入端,用于接收标示有“SHIFT OPERAND”(移位运算数)的数量;和一个第二输入端,连接到寄存器22的输出,用于接收标示“SHIFT COUNT”(移位计数)的数量;和一个输出端,用于提供标示“SHIFTED OUTPUT”(移位输出)的数量作为其输出。桶形移位器26还接收其它控制信号(未示出)以确定移位运算的类型。桶形移位器26能移位SHIFT OPERAND的任何位到由移位运算和SHIFT COUNT的类型确定的任何其它位的位置。桶形移位器26仅需要小的传播延迟,该延迟通常是在数据处理器单个时钟周期之内。但是,为了获得这种灵活性,桶形移位器26包括一个大的晶体管阵列,在每个位的位置和每隔一个位的位置之间形成可选择的连接。因为它需要大量的晶体管,桶形移位器26耗用大量集成电路面积,而且耗用大量的功率。希望获得桶形移位器26的高速度,而无需附加电路面积和功率的代价。图2示出本专利技术的内含数据处理器40的数据处理系统30。数据处理系统30包括一个存储器31,用于存储程序和数据单元,还可以包括随机存取存储器(RAM)和非易失存储器。存储器31通过通用的总线32存取。该总线传送地址,控制和数据信号到存储器31和从该存储器31输出的这些信号。数据处理器40经总线32连接到存储器31,通常包括一个指令锁存器和解码器41、一个控制寄存器部件42、一个总线控制器43、以及ALU和寄存器部件50,简称为“ALU50”。其它常规的数据处理本文档来自技高网...
【技术保护点】
一种组合的乘法器/移位器(150),其特征在于:一个第一寄存器(151),用于接收一个第一运算数,所述第一运算数是乘法方式的一个被乘数,和一个移位方式的一个移位运算数;一个第二寄存器(152),用于接收一个第二运算数,所述第二运算数 是所述乘法方式的一个乘数,和所述移位方式的一个移位计数;一个移位解码器(160),具有一个第一输入端,耦合到所述第二寄存器(152);一个第二输入端,用于接收一个移位方向信号;和一个输出端,响应所述第二运算数的预定位和所述移位方向信号提 供多个解码输出信号;一个再编码器(161),具有一个输入端,耦合到所述第二寄存器(152);和一个输出端,用于响应所述第二运算数,提供第一多个再编码输出信号;一个复用器(162),具有一个第一输入端,耦合到所述移位解码器(160)的 所述输出端;一个第二输入端,耦合到所述再编码器(161)的所述输出端;一个控制输入端,用于接收控制信号;和一个输出端,所述控制信号使所述复用器(162)选择所述移位方式的所述第一输入和所述相乘方式的所述第二输入;和一个乘法器阵列(163 ),具有一个被乘数输入端,耦合到所述第一寄存器(151);一个乘数输入端,耦合到所述复用器(162)的所述输出;和一个输出端,用于提供组合的乘法器/移位器(150)的第一输出,因此组合的乘法器/移位器(150)的所述第一输出代表在所述乘法方式中的所述乘数和所述被乘数的乘积,和在所述移位方式中由所述移位计数确定的量移位的所述移位运算数。...
【技术特征摘要】
...
【专利技术属性】
技术研发人员:拉维尚克尔,阿纳S利昂,金基昌李,
申请(专利权)人:摩托罗拉公司,
类型:发明
国别省市:US[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。