算术电路和用于算术电路的控制方法

文档序号:9750772阅读:588来源:国知局
算术电路和用于算术电路的控制方法
【技术领域】
[0001]本发明涉及算术电路和用于算术电路的控制方法。
【背景技术】
[0002]已经积极地促进了使得能够高速算术处理的处理器的开发。安装在进行高性能计算的信息处理设备上的处理器采用用于提高算术处理的速度的各种技术。作为用于通过并行进行多种处理来提高算术处理的速度的技术,存在用于使用一个命令来对多个数据同时并行执行相同的算术处理的单指令多数据流(SMD)处理系统。
[0003]SIMD处理器包括多个S頂D算术元件并且对多个数据并行执行一个命令。特别地,在近几年的处理器中,趋向于增大Sn?算术元件的数目以进一步提高速度。
[0004]在下述简单处理的情况下,SMD处理器通过对单个命令进行解码以及对多个数据进行并行的算术处理来获得高速算术处理,所述简单处理包括:对一个命令进行解码;将命令的处理目标数据输入至多个Sn?算术元件;以及对数据并行进行算术处理。在日本公开特许公报N0.2002-229962中公开了该Sn?。
[0005]然而,当不进行简单处理时,例如,当由Sn?算术元件生成的算术结果经受由其他SIMD算术元件进行的算术处理时,需要进行对SIMD算术元件中的数据的交换和分发。这往往会降低算术处理的效率。因此,需要在多个S頂D算术元件中进行数据交换等的元件间算术电路。
[0006]然而,根据S頂D处理器的S頂D宽度的增大,大量的S頂D算术元件例如4个S頂D算术元件、8个SIMD算术元件或16个SIMD算术元件被安装在算术处理设备的集成电路基板上。因此,在元件间算术电路中,需要在集成电路基板上的较大范围内提供数据布线。因此,增大了元件间算术电路的电路尺寸。

【发明内容】

[0007]因此,根据实施例的第一方面的目的是提供一种抑制电路尺寸并且进行各种元件间算术运算的算术电路和用于该算术电路的控制方法。
[0008]一种算术电路,包括:
[0009]第一元件电路至第N元件电路,其中,N为等于或大于3的整数,所述第一元件电路至所述第N元件电路分别包括:
[0010]输入电路,该输入电路被配置成输入第一操作数数据和第二操作数数据;以及[0011 ] 元件数据选择器,该元件数据选择器被配置成基于请求元件信号来选择元件电路中的任何元件电路的操作数数据;以及
[0012]数据总线,该数据总线被配置成将通过元件电路输入的操作数数据从元件电路的输入电路供应给元件电路的元件数据选择器,其中,
[0013]当控制信号处于第一状态时,第一元件电路至第N元件电路中的元件数据选择器分别基于包括在第二操作数数据中的请求元件信号来选择元件电路中的任何元件电路的第一操作数数据并且输出该第一操作数数据,以及
[0014]第一元件电路至第N元件电路分别包括:
[0015]操作数选择器,该操作数选择器被配置成在控制信号处于第二状态时基于元件电路的元件编号和移位量来选择第一操作数数据或第二操作数数据并且将所选择的操作数数据输出至数据总线;以及
[0016]用于元件连接左移的加法器,该用于元件连接左移的加法器被配置成基于元件电路的元件编号和移位量来生成请求元件信号。根据第一方面,可以抑制电路尺寸并且进行各种元件间算术运算。
【附图说明】
[0017]图1是示出实施例中的算术电路和Sn?运算器的图。
[0018]图2是示出本实施例中的全元件排列的算术电路的示例的图。
[0019]图3是示出本实施例中的元件连接左移的算术电路的示例的图。
[0020]图4是示出本实施例中的元件求和掩蔽的算术电路的示例的图。
[0021]图5是示出本实施例中的元件压缩的算术电路的示例的图。
[0022]图6是示出进行全元件排列的算术电路AL10-1的左半侧的图。
[0023]图7是示出进行全元件排列的算术电路AL10-1的右半侧的图。
[0024]图8是示出进行元件连接左移的算术电路AL10-2的左半侧的图。
[0025]图9是示出进行元件连接左移的算术电路AL10-2的右半侧的图。
[0026]图1OA至图1OC是用于阐述加法器CSL_Adder的运算的逻辑值表。
[0027]图11是示出进行元件求和掩蔽的算术电路AL10-3的左半侧的图。
[0028]图12是示出进行元件求和掩蔽的算术电路AL10-3的右半侧的图。
[0029]图13是示出进行元件压缩的算术电路AL10-4的左半侧的图。
[0030]图14是示出进行元件压缩的算术电路AL10-4的右半侧的图。
[0031]图15A至图15D是示出压缩解码器Compress的逻辑值表的图。
[0032]图16是示出本实施例中的具有所有功能的算术电路的左侧的图。
[0033]图17是示出本实施例中的具有所有功能的算术电路的右侧的图。
【具体实施方式】
[0034][实施例的概述]
[0035]图1是示出实施例中的算术电路和Sn?运算器的图。在图1中,示出了设置在处理器中的4-snffi运算器。4-snffi运算器包括分别包括运算器ALi的4个Sn?算术元件E_#0、E_#U E_#2和E_#3o作为示例,SIMD宽度被设置成4(4个SMD)。S頂D运算器包括至少2个S頂D算术元件。S頂D运算器可以是例如包括8个S頂D算术元件的8-S頂D运算器或者可以是16-sn?运算器。
[0036]SIMD算术元件E_#0至E_#3包括:保存第一操作数数据和第二操作数数据的第一操作数寄存器OPl和第二操作数寄存器0P2、接收第一操作数数据的输入和第二操作数数据的输入并且进行算术运算的运算器AL1、保存运算器ALl的算术运算结果的结果寄存器R3、保存由结果寄存器R3保存的数据的重命名寄存器R2以及保存由重命名寄存器R2保存的数据的SM)寄存器Rl。
[0037]SIMD算术元件还包括:在第一操作数寄存器OPl和第二操作数寄存器0P2的前级处的对结果寄存器R3、重命名寄存器R2以及SHffi寄存器Rl中任一寄存器进行选择的两种选择器SA和SB;以及对多个运算器ALl的输出进行选择的选择器SC。还可以设想从结果寄存器R3至其他部件的数据转发。然而,在本实施例中未提及数据转发。
[0038]第一操作数寄存器OPl的操作数数据和第二操作数寄存器0P2的操作数数据是例如64位。类似地,SIMD寄存器R1、重命名寄存器R2和结果寄存器R3也具有64位宽度。然而,该实施例不限于64位宽度。
[0039]进入保留站(未示出)的S頂D命令被输入至多个S頂D算术元件。多个S頂D元件中的运算器ALl分别进行对多个第一操作数数据和第二操作数数据对的算术运算并且将算术运算结果存储在相应的结果寄存器R3中。重命名寄存器R2是临时保存数据以使运算器ALl分别不按顺序对多个命令进行算术运算并且按顺序输出命令的寄存器。
[0040]处理器包括被设置成横越4个Sn?算术元件E_#0至E_#3的元件间算术电路ALlO0算术电路ALlO接收在S頂D算术元件E_#0至E_#3中的第一操作数寄存器OPl和第二操作数寄存器0P2中的第一操作数数据的输入和第二操作数数据的输入,并且执行例如以下所阐述的算术运算。算术电路ALlO进行例如(I)元件间数据替换(元件排列),(2)用于对元件的数据进行连接(concatenate)并且将数据向左移的元件连接左移(元件连接左移),⑶用于将元件的数据进行相加的元件相加掩蔽(元件求和掩蔽),以及⑷用于压缩和布置元件的数据的元件数据压缩(元件压缩)。算术电路ALlO的算术运算结果被输出至SHffi算术元件中的结果寄存器R3。
[0041]如上所述,元件间算术电路ALlO进行基本算术处理例如重新布置4个S頂D算术元件中的数据、掩蔽任何元件的数据、以及广播(broadcast)以将任何元件的数据分发至所有元件。此外,元件间算术电路ALlO还对元件的数据进行相加运算、特定的重新布置处理等。因此,元件间算术电路AL1通过包括两个或更多个Sn?算术元件的Sn?运算器来充分利用高速并行处理的优点。
[0042]图2是示出本实施例中的全元件排列的算术电路的示例的图。算术电路AL10-1包括选择器SI,该选择器SI选择存储在4个S頂D算术元件E_#0至E_#3的第一操作数寄存器OPl中的数据中的任一数据并且将该数据输出至4个SHffi算术元件的结果寄存器R3中的任一结果寄存器。例如,选择器Si被设置成与相应的4个Sn?算术元件对应并且将所选择的数据输出至相应的结果寄存器R3。选择器SI的选择信号可以包括在例如第二操作数寄存器0P2中的第二操作数数据中。在第一操作数寄存器OPl与4个S頂D算术元件的选择器SI的输入之间需要用于数据传输的数据总线。
[0043]由于设置了选择器SI,因此,算术电路AL10-1对SHffi算术元件中的数据进行重新布置并且进行广播以将任何S頂D算术元件的数据分发至所有S頂D算术元件。
[0044]此外,如下所述,通过设置对选择器SI的输出或全零数据进行选择的掩蔽选择器,可以将任何SMD算术元件的数据掩蔽为全零数据。
[0045]图3是示出本实施例中的元件连接左移的算术电路的示例的图。算术电路AL10-2将数目与元件的数目X2相等的数据向左移任何数目的元件并且按照元件编号从高至低的顺序将该数据存储在SHffi算术元件的结果寄存器R3中,所述元件的数目X 2是通过将SIMD算术元件中的每个S頂D算术元件的两个操作数数据进行组合而获得的。
[0046]算术电路AL10-2包括左移电路SL,该左移电路SL将S頂D算术元件的第一操作数寄存器OPl的数据和第二操作数寄存器0P2的数据在其中所述数据被组合的状态下向左移任何移位量。左移电路SL的输出按顺序被存储在4个S頂D算术元件的结果寄存器R3中。移位量的数据(未示出)被提供给左移电路SL。
[0047]例如,当移位量为2时,算术电路AL10-2分别将element#〗的第一操作数数据、element#3的第一操作数数据、element#0的第二操作数数据以及element#l的第二操作数数据传
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1