Vliw处理器的制造方法_2

文档序号:9235258阅读:来源:国知局
扩展运算单元通过对N比特数据进行运算处理,从而取得2XN比特数据的输出数据。
[0052]第I插槽用第I运算单元对N比特数据进行处理的运算。
[0053]第I插槽用选择部选择从寄存器堆部输出的数据和从状态寄存器输出的数据的任一方数据,使所选择的数据输入到第I插槽用第2扩展运算单元。
[0054]由此,在该VLIW处理器中,例如,能够在当前的周期中使在前一个周期中从第I插槽输出的N比特数据从状态寄存器输入到第I插槽的第I插槽用第2扩展运算单元以用于该运算单元中的运算。
[0055]第8发明如第7发明,第I插槽用第2扩展运算单元是对2个N比特数据进行位移运算而取得2XN比特数据的输出数据的第I插槽用位移运算单元。
[0056]由此,在该VLIW处理器中,能够利用第I插槽用位移运算单元例如使用从状态寄存器输出的N比特数据和从寄存器堆部输出的N比特数据来执行位移运算处理。
[0057]第9发明如第8发明,第I插槽用位移运算单元将位移运算的处理对象的数据的上位N比特数据作为从第I插槽用选择部输出的数据来进行位移运算。
[0058]由此,在该VLIW处理器中,能够利用第I插槽用位移运算单元例如将从状态寄存器输出的N比特数据作为上位N比特数据并将从寄存器堆部输出的N比特数据作为下位N比特数据来执行位移运算处理。
[0059]第10发明如第6发明,寄存器堆部具有储存通过第I插槽用加减法运算单元的加减法运算处理取得的进位标记的区域。
[0060]第2插槽用加减法运算单元使用在寄存器堆部中储存的进位标记来对2个N比特数据进行加减法运算处理。
[0061 ] 由此,在该VLIW处理器中,例如,第2插槽用加减法运算单元能够使用通过第I插槽的运算单元中的加减法运算处理而生成的进位标记、即储存在寄存器堆部中的进位标记来执行对2个N比特数据的加减法运算处理。
[0062]第11发明如第6发明,第2插槽用加减法运算单元将加减法运算处理的处理对象的一方的N比特数据作为从第2插槽用选择部输出的数据来进行加减法运算处理。
[0063]由此,在第2插槽中也能够利用在状态寄存器中保持的数据,能够高效率地执行N比特数据的运算处理(例如,N比特数据的加减法运算处理)和2XN比特的运算处理(扩展运算处理(例如,2 X N比特数据的加减法运算处理))。
[0064]第12发明如第I至第11的任一项发明,命令执行部还具备第3插槽。
[0065]第3插槽包括:用于输入来自寄存器堆部的输出数据的NX 2比特(N:自然数)的输入端口 ;用于向寄存器堆部输出数据的N比特的输出端口 ;以及进行从规定的存储器取得数据的加载处理和将数据储存在所述规定的存储器中的存储处理的至少一方处理的加载/存储单元。
[0066]由此,能够实现具备包括加载/存储单元的第3插槽的VLIW处理器。
[0067]第13发明如第I至第12的任一项发明,第I数据是由扩展运算单元取得的2XN比特数据的输出数据中的下位N比特的量的数据。
[0068]第2数据是由扩展运算单元取得的2XN比特数据的输出数据中的上位N比特的量的数据。
[0069]由此,在该VLIW处理器中,能够使第I数据(输出到寄存器堆部的数据)为下位N比特数据并且使第2数据(输出到状态寄存器的数据)为上位N比特数据来高效率地执行运算处理。
[0070]发明效果根据本发明,能实现一种能够抑制电路规模的增大并且即使在包括像多用于图像处理、图像识别处理等中的命令流那样进行比特扩展的运算的情况下也能够高效率地执行处理的VLIW处理器。
【附图说明】
[0071]图1是第I实施方式的VLIW处理器1000的概略结构图。
[0072]图2是命令执行部3的结构例(一个例子)的概略图。
[0073]图3是示出了 MulShift处理中的分配给各插槽的运算处理的图、以及明示了在周期2中被激活的VLIW处理器1000的部分的图。
[0074]图4是示出了 MulShift处理中的分配给各插槽的运算处理的图、以及明示了在周期3中被激活的VLIW处理器1000的部分的图。
[0075]图5是示出了 MulShift处理中的分配给各插槽的运算处理的图、以及明示了在周期4中被激活的VLIW处理器1000的部分的图。
[0076]图6是示出了 MulAdd处理中的分配给各插槽的运算处理的图、以及明示了在周期3中被激活的VLIW处理器1000的部分的图。
[0077]图7是示出了 MulAdd处理中的分配给各插槽的运算处理的图、以及明示了在周期4中被激活的VLIW处理器1000的部分的图。
[0078]图8是示出了 MulShiftAdd处理中的分配给各插槽的运算处理的图、以及明示了在周期4中被激活的VLIW处理器1000的部分的图。
[0079]图9是示出了 MulShiftAdd处理中的分配给各插槽的运算处理的图、以及明示了在周期5中被激活的VLIW处理器1000的部分的图。
[0080]图10是示出了 ShiftAdd处理中的分配给各插槽的运算处理的图、以及明示了在周期2中被激活的VLIW处理器1000的部分的图。
[0081]图11是示出了 ShiftAdd处理中的分配给各插槽的运算处理的图、以及明示了在周期3中被激活的VLIW处理器1000的部分的图。
[0082]图12是示出了 ShiftAdd处理中的分配给各插槽的运算处理的图、以及明示了在周期4中被激活的VLIW处理器1000的部分的图。
[0083]图13是使用现有技术来构成的也能应对以32比特为单位的运算的处理器900的概略结构图。
【具体实施方式】
[0084][第I实施方式]
以下,针对第I实施方式,一边参照附图一边进行说明。
[0085]〈1.1:VLIff处理器的结构>
图1是第I实施方式的VLIW处理器1000的概略结构图。
[0086]VLIW处理器1000是进行以N比特(N:自然数)为单位的运算和以2XN比特为单位的运算的VLIW处理器。
[0087]再有,以下,为了便于说明,对N= 16、也就是说VLIW处理器1000是进行以16比特为单位的运算和以32比特为单位的运算的VLIW处理器的情况进行说明。
[0088]如图1所示,VLIW处理器1000具备命令控制部1、寄存器堆部2、命令执行部3、命令存储器Ml、以及数据存储器M2。
[0089]命令控制部I从命令存储器Ml读出命令(进行命令取出处理),对读出的命令进行解码(进行命令解码处理)。而且,命令控制部I基于命令解码处理的结果生成用于控制寄存器堆部2的控制信号CtlI,将生成的控制信号Ctll输出到寄存器堆部2。
[0090]此外,命令控制部I基于命令解码处理的结果生成用于控制命令执行部3的控制信号Ctl2,将生成的控制信号Ctl2输出到命令执行部3。
[0091]寄存器堆部2具有多个寄存器,基于来自命令控制部I的控制信号Ctll将规定的寄存器的数据输出到命令执行部3的规定的插槽。此外,寄存器堆部2基于控制信号Ctll以将从命令执行部3输出的数据输入到规定的寄存器的方式进行控制。
[0092]命令执行部3为了在I个周期(I个时钟周期)中执行多个命令而具备能够在I个周期中同时进行运算的多个命令插槽。以下,为了便于说明,对命令插槽数为“3”的情况进行说明。
[0093]如图1所示,命令执行部3具有3个插槽,即,第I插槽31、第2插槽32、以及第3插槽33。此外,命令执行部3具备状态寄存器34。
[0094]第I插槽31具备对数据存储器M2进行16比特的数据的加载/存储的加载/存储单元311。
[0095]第2插槽32具备:进行16比特数据的加法运算处理的加法运算单元321 ;对16比特数据进行逻辑运算的逻辑运算单元322 ;以及从状态寄存器34读出16比特数据的状态读出单元323。再有,“加法运算处理”也可以包括减法运算处理。也就是说,“加法运算处理”也可以是加减法运算处理(以下相同)。
[0096]第3插槽33具备:进行16比特数据的加法运算处理的加法运算单元331 ;对16比特数据进行逻辑运算的逻辑运算单元332 ;进行16比特数据的乘法运算的乘法运算单元333 ;以及对32比特数据进行比特位移处理的位移运算单元334。
[0097]状态寄存器34输入从第3插槽33输出的16比特数据并存储保持所输入的16比特数据。状态寄存器34将保持的16比特数据输出到第2插槽32和第3插槽33。
[0098]在此,使用图2对命令执行部3的结构例(一个例子)进行说明。
[0099]图2是命令执行部3的结构例(一个例子)的概略图。
[0100]如图2所示,命令执行部3的第2插槽32具备加法运算单元321、逻辑运算单元322、状态读出单元323、第I切换部324、以及第2切换部325。
[0101]第I切换部324将从寄存器堆部2输出的16比特数据Di21和从状态寄存器34输出的16比特数据Dso作为输入。第I切换部324按照命令控制部I的指令(控制信号Ctl2)将16比特数据Di21和16比特数据Dso的任一方数据输出到加法运算单元321。
[0102]加法运算单元321将从寄存器堆部2输出的16比特数据Di22和从第I切换部324输出的16比特数据作为输入,对输入的2个16比特数据进行加法运算处理。然后,加法运算单元321将加法运算处理后的数据输出到第2切换部325。
[0103]此外,加法运算单元321在执行32比特加法运算处理的上位16比特的加法运算处理的情况下将16比特数据Di22、从第I切换部324输出的16比特数据、以及例如第3插槽的加法运算单元331生成并在寄存器堆部2的进位寄存器(未图示)中储存的进位标记(进位比特(I比特数据))作为输入,对输入的3个数据进行加法运算处理。然后,加法运算单元321将加法运算处理后的数据输出到第2切换部325。
[0104]逻辑运算单元322将从寄存器堆部2输出的2个16比特数据Di21、Di22作为输入,对输入的2个16比特数据进行规定的逻辑运算处理。然后,逻辑运算单元322将逻辑运算处理后的数据输出到第2切换部325。
[0105]状态读出单元323读出在状态寄存器34中保持的16比特数据。然后,状态读出单元323将从状态寄存器34读出的数据输出到第2切换部325。
[0106]第2切换部325将来自加法运算单元321的输出、来自逻辑运算单元322的输出、以及来自状态读出单元323的输出作为输入。然后,第2切换部325按照命令控制部I的指令(控制信号Ctl2)将来自加法运算单元321的输出、来自逻辑运算单元322的输出、以及来自状态读出单元323的输出的任一个作为数据Do2输出到寄存器堆部2。再有,第2切换部325在选择来自加法运算单元321的输出来向寄存器堆部2输出的情况下,可以将加法运算的进位标记包含在数据Do2中来向寄存器堆部2输出,此外,也可以使用另外的通路来将加法运算的进位标记输出到寄存器堆部2。
[0107]如图2所示,命令执行部3的第3插槽33具备加法运算单元331、逻辑运算单元332、乘法运算单元333、位移运算单元334、第3切换部335、第4切换部336、以及第5切换部 337。
[0108]第3切换部335将从寄存器堆部2输出的16比特数据Di32和从状态寄存器34输出的16比特数据Dso作为输入。第3切换部335按照命令控制部I的指令(控制信号Ct
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1