一种power指令集向量协处理器的译码电路的制作方法

文档序号:9667113阅读:498来源:国知局
一种power指令集向量协处理器的译码电路的制作方法
【技术领域】
[0001]本发明涉及一种译码电路。特别是涉及一种POWER指令集向量协处理器的译码电路。
【背景技术】
[0002]SIMD (Single Instruct1n Multiple Data)是一种实现数据级并行的技术,对多个数据执行相同的操作。S頂D技术的关键是在一条单独的指令中同时执行多个运算操作,以增加处理器的吞吐量,这一特点使得sn?技术特别适合于多媒体应用等数据密集型运算。现在主流的处理器都有其S頂D指令子集,如X86的MMX或SSE,ARM的NEON指令子集,PowerPC的Altivec指令子集等。在现代的多核处理器中,处理器上的每个核通常都会配有一个专属的SIMD协处理器,也称为Vector Coprocessor (VP)。作为协处理器整体性能的关键部分,传统协处理器的一级译码电路对每条指令的全部指令位进行校验后产生该指令所对应功能单元的使能信号和指令类型信号,相应的功能单元二级译码电路在经由一级译码电路产生的使能信号为高时对指令类型信号进行译码,产生相应的控制信号。整个译码过程相当于一个先编码、再译码的过程,从而造成资源的浪费以及功耗的增加。

【发明内容】

[0003]本发明所要解决的技术问题是,提供一种能够在使用组合逻辑来识别指令时,所需要的组合逻辑的数量达到最小,从而降低系统功耗的POWER指令集向量协处理器的译码电路。
[0004]本发明所采用的技术方案是:一种POWER指令集向量协处理器的译码电路,包括有依次连接的第一判断器、第一设置器、第二判断器和第二设置器,其中,
[0005]所述第一判断器的输入端连接主处理器的输出端,用于接收来自主处理器的指令,并且判断所述指令是否为有效的向量协处理器指令,并将判断结果发送给第一设置器;
[0006]所述第一设置器的输出还连接主处理器的输入端,用于向主处理器反馈主处理器所发的指令是一条有效的向量协处理器指令,还是一条无效的向量协处理器指令的信息;当第一设置器得到第一判断器的判断结果为当前指令是一条有效的向量协处理器指令时,将向量协处理器指令有效标志位置为高,否则将向量协处理器指令有效标志位置为低,并将协处理器指令有效标志位置为高和为低的信息发送给第二判断器;
[0007]所述第二判断器的输入端还连接主处理器的输出端接收主处理器的指令,当第二判断器收到第一设置器发过来的协处理器指令有效标志位置为高的信息时,判断主处理器的指令所属的功能执行单元及功能单元所需操作数的数据来源,并将判断结果送入第二设置器;
[0008]所述第二设置器根据第二判断器的判断结果将相应的控制信号及指令所要读取的操作数交给不同的功能执行单元。
[0009]当所述第一设置器将协处理器指令有效标志位不为高,则表示当前译码指令是一条非向量协处理器有效指令,该指令无法由向量协处理器执行。
[0010]当主处理器的指令是一条无效的向量协处理器指令,则向量协处理器流水线停滞,等待主处理器发送一条新的向量协处理器有效指令,直到第一判断器判断接收到主处理器发送的向量协处理器指令为有效的向量协处理器指令后,将向量协处理器指令有效标志位置为高。
[0011]所述第二设置器为了使在使用组合逻辑来识别指令时,所需要的组合逻辑的数量能达到最小,只将必要的指令位发送给功能单元,而无需发送冗余的指令位。
[0012]所述第二判断器所判断的全部向量协处理器指令包括:仿存类指令、置换类指令、简单定点类指令、复杂定点类指令和浮点类指令,其中仿存类指令指读写内存和特殊寄存器类指令;置换类指令指完成置换操作的单周期定点类指令;简单定点类指令指单周期完成的算术定点类指令;复杂定点类指令指多周期完成的算术定点类指令;浮点类指令指多周期完成的算术浮点类指令。
[0013]第二设置器将仿存类指令送入功能单元中用于执行仿存类指令的仿存单元,将置换类指令送入功能单元中用于执行置换类指令的置换单元,将简单定点类指令送入功能单元中用于执行简单定点类指令的简单定点单元,将复杂定点类指令送入功能单元中用于执行复杂定点类指令的复杂定点单元,将浮点类指令送入功能单元中用于执行浮点类指令的浮点单元。
[0014]所述第二判断器接收主处理器的一条指令是32位向量协处理器有效指令的第26位为1,则所述的指令为一条VA格式指令,对于VA格式指令,根据指令的第28-30位判断所述指令类型,当所述指令的第28-30位为111时,所述指令为浮点类指令;当所述指令的第28-30位为101或110时,所述指令为置换类指令;否则,所述指令为复杂定点类指令。
[0015]所述第二判断器接收主处理器的一条指令是32位向量协处理器有效指令的第26位为0,则所述指令为一条VC格式指令、或VX格式指令,或X格式指令,则根据所述指令的第21、24、25、28-30位共同判断所述指令的指令类型,当所述指令的第28-30位为000、001或011时,所述指令为简单定点类指令;当所述指令的第28-30位为100时,所述指令为复杂定点类指令;当所述指令的第28-30位为110或111时,所述指令为置换类指令;当所述指令的第28-30位为101时,根据所述指令的第21位判断指令类型,若第21位为1,则所述指令为简单定点类指令,若第21位为0,则所述指令为浮点类指令;当所述指令的第28-30位为010时,根据所述指令的21、24、25位判断指令类型,若第21、24、25位为011,则所述指令为置换类指令,否则,所述指令为简单定点类指令。
[0016]当经由第二判断器判断所接收的一条指令为简单定点功能单元指令时,第二设置器将指令的第21-25,28-30位共8位送往简单定点功能单元;当经由第二判断器判断所接收的一条指令为复杂定点功能单元指令时,第二设置器将指令的第21-26,28-31位共10位送往复杂定点功能单元;当经由第二判断器判断所接收的一条指令为浮点类指令时,第二设置器将指令的第22-25,26,31位共6位或指令的第22-25,29,31位共6位送往浮点功能单元;当经由第二判断器判断所接收的一条指令为置换类指令时,第二设置器将指令的第
21-26,29,30位共8位或指令的第21-26,30,31位共8位送往置换单元;当经由第二判断器判断所接收的一条指令为仿存类指令时,第二设置器将指令的第22-25,30位共5位送往仿存单元。
[0017]本发明的一种POWER指令集向量协处理器的译码电路,使在使用组合逻辑来识别一条指令所属的功能单元和操作数的数据来源时,所需要的组合逻辑的数量能达到最小,不仅降低了译码电路的硬件开销,提高了译码电路和功能单元间信号传输的稳定性,也使功能单元在识别所接收指令的具体指令类型时所需的判断逻辑更为简单。
【附图说明】
[0018]图1是本发明的整体构成框图。
[0019]图中
[0020]100:向量协处理器译码电路110:第一判断器
[0021]120:第一设置器130:第二判断器
[0022]140:第二设置器150:仿存单元
[0023]160:置换单元170:简单定点单元
[0024]180:复杂定点单元190:浮点单元
【具体实施方式】
[0025]下面结合实施例和附图对本发明的一种POWER指令集向量协处理器的译码电路做出详细说明。
[0026]如图1所示,本发明的一种POWER指令集向量协处理器的译码电路,包括有依次连接的第一判断器110、第一设置器120、第二判断器130和第二设置器140,其中,
[0027]所述第一判断器110的输入端连接主处理器200的输出端,用于接收来自主处理器200的指令,并且判断所述指令是否为有效的向量协处理器指令,并将判断结果发送给第一设置器120 ;
[0028]所述第一设置器120的输出还连接主处理器200的输入端,用于向主处理器200反馈主处理器200所发的指令是一条有效的向量协处理器指令,还是一条无效的向量协处理器指令的信息;当第一设置器120得到第一判断器110的判断结果为当前指令是一条有效的向量协处理器指令时,将向量协处理器指令有效标志位置为高,否则将向量协处理器指令有效标志位置为低,并将协处理器指令有效标志位置为高和为低的信息发送给第二判断器(130);
[0029]所述第二判断器130的输入端还连接主处理器200的输出端接收主处理器200的指令,当第二判断器130收到第一设置器120发过来的协处理器指令有效标志位置为高的信息时,判断主处理器200的指令所属的功能执行单元及功能单元所需操作数的数据来源,并将判断结果送入第二设置器140 ;
[0030]所述第二设置器140根据第二判断器130的判断结果将相应的控制信号及指令所要读取的操作数交给不同的功能执行单元。所述第二设置器140为了使在使用组合逻辑来识别指令时,所需要的组合逻辑的数量能达到最小,降低系统功耗,只将必要的指令位发送给功能单元,而无需发送冗余的指令位。所述必要的指令位,是指一条指令中用于识别一条指令所属功能单元所必须的位。
[0031]当所述第一设置器120将协处理器指令有效标志位不为高,则表示当前译码指令是一条非向量协处理器有效指令(包括POWER指令集之外的指令和非向量协处理器专属指令),该指令无法由向量协处理器执行。
[0032]当主处理器200的指令是一条无效的向量协处理器指令,则向量协处理器流水线停滞,等待主处理器200发送一条新的向量协处理器有效指令,直到第一判断器110判断接收到主处理器发送的向量协处理器指令为有效的向量协处理器指令后,将向量协处理器指令有效标志位置为高。
[0033]所述第二判断器130所判断的全部向量协处理器指令包括:仿存类指令、置换类指令、简单定点类指令、复杂定点类指令和浮点类指令,其中仿存类指令指读写内存和特殊寄存器类指令;置换类指令指完成置换操作的单周期定点类指令;简单定点类指令指单周期完成的算术定点类指令如定点加减法指令及浮点比大小、浮点求最值指令;复杂定点类指令指多周期完成的算术定点类指令如定点乘法指令;浮点类指令指多周期完成的算术浮点类指令如浮点加减法。
[0034]第二设置器140将仿存类指令送入功能单元中用于执行仿存类指令的仿存单元150,将置换类指令送入功能单元中用于执行置换类指
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1