独立处理多个指令流、软式控制各指令流的处理功能的多线程处理器的制作方法

文档序号:6650957阅读:190来源:国知局
专利名称:独立处理多个指令流、软式控制各指令流的处理功能的多线程处理器的制作方法
技术领域
本发明涉及根据并行发出的来自多个指令流的指令、高效地使用多个运算单元的信息处理器。
背景技术
现有技术有在一个处理器内同时处理多个指令流的多线程处理器。在“AMultithreaded Processor Architecture with Simultaneous Instruction Issuing”(In Proc.of ISS 91International Symposium on Supercomputing.Fukuoka.Japan,pp.87~96,November 1991)中详细地说明了多线程处理器。
图1是表示现有技术的多线程处理器的构成框图。图中,多线程处理器配有指令超高速缓冲存储器500、3个指令提取单元501、3个指令解码单元502、12个备用站503、4个指令调度单元504、4个功能单元505、和寄存器组506,构成为能同时独立地执行与图中指令提取单元和指令解码单元组相应的3个指令流。其中,指令流相应于指令提取单元和指令解码单元组所构成的处理流。
图中,指令提取单元501从指令超高速缓冲存储器500中读出各个不同的指令流指令。
指令解码单元502对各个指令流的指令解码,在可处理的功能单元中连接该指令,在与可处理该指令的功能单元505连接的备用站503中装入指令解码结果(以下简单称为指令)。
指令调度单元504选取来自备用站503的适当指令,传给空着的功能单元505。在与1个功能单元对应的不同指令流的指令解码结果装在备用站503的情况下,按固定的序号选取指令。因而实现了指令流之间的公平。
功能元件505为执行各个指令的运算器,使用寄存器组506执行来自备用站503的指令。各功能元件最好是相同的单元,在多数情况下配备比如寄存器/存储器单元、整数运算单元、浮动小数点运算单元、乘除运算单元等类别的运算器。
下面,简单地说明如上述构成的多线程处理器的工作。
图中的多线程处理器中,由于装有3组指令提取单元501和指令解码单元502,所以能够并行地对3个指令流进行提取·解码。3个指令流和指令超高速缓冲存储器500(或是图外的主存储器)所对应的程序中,有1个程序对应1个指令流的情况(从3个程序中产生3个指令流的情况),和1个程序对应多个指令流的情况(从1个程序中产生3个指令流的情况)。后者比如为对于不同的图象数据同时执行多个指令流的1个图象处理程序的情况。
解码单元502通过备用站503、指令调度单元504,向接收该指令的功能单元发出解码指令。各功能单元也按照来自相应指令流的指令执行已发出的指令。
这样,多线程处理器的特征在于具有可同时执行多个指令流的共有运算器。
还有,多线程处理器是在1个处理器内部处理多个指令流,因此可把执行1个指令流的单元称为逻辑处理器。
逻辑处理器有处理各个独立的指令流的解码单元、指令顺序控制机构和寄存器组等。由多个逻辑处理器使用的功能单元和超高速缓冲存储器等在逻辑处理期间是共有的。
另一方面,可把对应逻辑处理器的整个处理器称为物理处理器。
还有,如果把多线程处理器与现有的超计数方式的处理器比较,由于超计数处理器仅进行了功能单元的多重化(重复化),所以同时可处理的指令流为1个,因指令之间的依存关系流水线联锁频繁发生,其结果不能提高功能单元的使用效率,因而难以提高性能。而上述多线程处理器因能并行地执行多个命令流的命令,所以可提高各功能单元的使用效率,实现性能的提高。
但是,上述多线程处理器构成有下述问题。
第1,由于多个逻辑处理器具有共有的功能单元,所以有从多个指令流所发出的指令争用功能单元的问题,因此,一定期间内,在特定逻辑处理器发出的指令与其他的逻辑处理器发出的指令相比不是很少的情况下,有降低该特定逻辑处理器性能的问题。而且,在逻辑处理器之间负荷差别大的情况下,即使有在逻辑处理器中分配相同处理内容的指令流(由上述程序生成),但由于只是特定的指令流的处理迟缓,所以就会造成处理的结束时间有偏差、不能提高整体速度的情况。
第2,即使在逻辑处理器中可以分配各个不同的指令流而可使特定逻辑处理器较早执行,因而相对地提高了特定逻辑处理器的处理速度的情况下,但由于不能占有指令超高速缓冲存储器等共有资源,所以整体性能仍较低。例如,难以承担有发生需要紧急中断处理等情况。

发明内容
鉴于上述问题,本发明的目的在于提供可软式调整多个指令流之间各指令流的处理性能,并能提高整体处理效率的多线程处理器。
实现上述目的的执行多个指令流的多线程处理器,包括·多个功能单元执行指令;·多个指令解码器与各指令流对应地设置,解码各个指令,完成作为执行该指令的功能单元要求将解码指令发给该功能单元的指令发出要求;·优先权存储器存储各指令流的优先权,各优先权与其他指令流的优先权独立,并通过专用指令变更;·自停止数据存储器在各指令流中存储指令流处于执行状态还是处于停止状态的自停止数据;·调解器接收来自多个指令解码部分通知的指令发出要求,2个以上的指令发出要求同时指定一个功能单元的情况下,根据优先权存储器中存储的优先权,确定向该功能单元要发出的解码指令;·停止器根据所述自停止数据,停止与正处于停止状态的指令流相应的指令解码部分向调解器的指令发出要求的通知;
功能单元的1个接收指示优先权变更的专用指令,在优先权存储器中存储的优先权内,只变更该专用指令所属的指令流的优先权;功能单元的1个接收指示指令流停止的指令,变更在自停止数据存储器中存储的自停止数据,以使只有该指令所属的指令流停止。
根据这种构成,由于根据所述优先权决定各功能单元中要发出的指令(指令解码结果),所以可按优先权软式调整多个指令流之间负荷的分布,适当实现各指令流必要的处理性能,并能达到提高整体处理效率的效果。
其中,所述存储器还存储可依据指令设定、表示停止还是执行各指令流的指令流的标记群;所述控制器也可配备执行所述决定的调解器;和在设定表示停止的标志的情况下,排除与该标志对应的指令流的指令发出要求,根据进行的所述决定,停止该指令流的停止器。
依据这种构成,在指令流处于其执行过程中的怠速状态和等待状态的情况下,也能使指令流处于停止状态。其结果,由于可以优先执行其他指令流,所以还能提高整体处理性能。
其中,所述控制器还可配有禁止器,在其中一个指令流发生需要紧急处理的情况下,暂时禁止向功能单元发出所述控制器决定要发出的属于该指令流指令的指令。
依据这种构成,对某些指令流(逻辑处理器)发生需要紧急处理的情况下,利用禁止器暂时禁止该逻辑处理器发出指令。即在需要的紧急处理移动完了前暂时禁止仅几个周期的指令发出。因此,中断处理的移动可高速化。而且,由于在由调解器决定要发出的指令后,禁止器能禁止该指令的发出,所以在由调解器决定需要紧急处理的发生时限后,禁止器也可有效地禁止。例如,虽然有需要紧急处理的发生时限,但在机器周期期间的慢点内也能达到所谓的有效禁止效果。
其中的一个功能单元可构成为能接收指示优先权变更的专用指令,在存储器所存储的优先权中,可变更该专用指令所属的指令流的优先权。
这里,所述专用指令由指示提高或降低优先权的操作码组成。
所述功能单元中的1个也可构成为能在专用指令的解码结果发出的情况下,判别发出该专用指令的指令解码器,提高或降低与判别的指令解码器对应的指令流的优先权。
按照这种构成,在上述专用指令中,由于没有必要表示用于指定指令流的ID和指令流的比特位置的操作码,所以无论对于哪个指令流都可用上述指令简单地变更自身指令流的优先权。
此外,由于由所述1个功能单元变更该指令所属的指令流的优先权,所以不会误写为不同指令流的优先权,可防止误操作。例如,在RGB彩色图象的不同颜色图象数据中进行上述图象处理的场合,即在3个指令流独立并同时执行图象处理的1个程序的场合,可使信息隐蔽程序没有必要区别是RGB中的哪一个),并能保证指令流的独立性,其结果提高了OS和系统整体的可靠度。
其中所述存储器包括有读出专用的第1字段的控制寄存器;所述功能单元的一个还可以构成为,在发出读出寄存器的读出指令的解码结果的情况下,判别发出该读出指令的指令解码器,将与该指令解码器对应的指令流的ID作为第1字段读出数据在内部总线上输出。
按照此构成,在3个指令流独立并同时执行上述那样的1个程序的情况下,实际上可把1个程序假设为3个程序并行执行的情况。分别假设的程序(或指令流)因分别在第1字段读出,所以可容易地知道指令流自身的ID。
其中所述存储器有控制寄存器;所述控制寄存器还用于存储指令流固有数据的各指令流的个别字段和读出专用的第2字段;所述功能单元的1个还可构成为,在所述控制寄存器的读出指令执行期间,读出各指令流的个别字段,同时,将与发出该读出指令的指令解码器对应的指令流的固有数据作为第2字段读出数据在内部总线上输出。
按照这种构成,上述假设的程序(或指令流)因在第2字段读出,所以可容易地知道自身的优先权。
其中所述存储器有存储各指令流优先权的优先权字段;所述优先权字段由表示指令流执行模式的其他优先权的小字段组成;所述功能单元的1个还可构成为,在专用指令解码结果发出的情况下,判别发出该专用指令的指令解码器,提高或降低与判别的指令解码器对应的指令流优先权字段内当前执行模式的小字段的优先权。
依据此构成,执行模式,比如用户程序模式和特定观察程序模式中可设定独立的优先权,在向其他模式移动复归的情况下可按原样存储原来的优先权。
其中,多线程处理器还可包括功能单元中的1个开始执行特定指令时,检测是哪个指令解码器发出了该特定指令的解码结果的特定指令检测器;和在检测特定指令开始执行之时,在预先确定的优先权期间暂时地变更与发出该特定指令的指令解码器对应的指令流优先权,使其指令流的优先权变得比其他指令流的优先权高的暂时变更器。
按此构成,由于暂时变更器暂时变更优先权,可保证指令流中的特定指令作为先头的指令列,并保证在连续周期内执行。
其中,多线程处理器还包括存储表示各指令流中的其他指令流是否处于要排他的停止状态的排他停止数据的排他停止数据存储器;所述停止器还可构成为,利用所述排他停止数据,停止与正处于停止状态的指令流对应的指令解码部分向调解器的指令发出要求的通知。
依据此构成,可强制停止把某些指令流作为其他指令流的处理。因此,可在大范围内进行指令流之间的处理性能的调整。
此外,实现上述目的的多线程处理器为同时并独立并行地执行多线程处理器,它包括暂时存储所述多个指令流的指令超高速缓冲存储器;与所述多个指令流对应地设置,提取来自指令超高速缓冲存储器的指令流指令的多个指令提取器;指定所述多个指令流的各优先权的优先权指定器;在出现来自2个以上的指令超高速缓冲存储器有同时指令提取要求的情况下,根据所述优先权控制电路的优先权,调解指令提取要求的指令提取控制器。
依据此构成,由于对指令超高速缓冲存储器中来自多个指令提取器的指令提取要求有争用的情况下按优先权进行调解,所以多线程处理器的上游处理中,可达到动态调整各指令流处理性能的效果。
此外,实现上述目的的多线程处理器具有执行指令的多个功能单元;从指令超高速缓冲存储器提取并解码指令,指定要执行该指令的功能单元,输出指令发出要求的多个指令解码部分;有与指令解码部分数量相同的寄存器组;是同时且独立地执行与指令解码部分数量相同的多个指令流的多线程处理器,它包括存储依据指令流中的指令在各指令流中设定的指令流优先权的存储器;对于多个指令流的共有资源,在两个以上的指令流同时争用的情况下,根据所述优先权调解的控制器;对所述共有资源的争用为对一个功能单元有来自两个以上的指令解码部分的指令发出要求的争用、对指令超高速缓冲存储器有来自两个以上的指令解码部分的指令提取要求的争用、对一个寄存器组有来自两个以上的功能单元的处理要求的争用的其中之一。
依据此构成,对指令流的共有资源有来自多个指令流处理要求的争用情况下,由于按优先权进行调解,所以可以达到软式调整各指令流处理性能的效果。
从本发明的实施例及其附图中,可进一步说明本发明的这些和其他目的、优点和特征。其中


图1是表示现有的多线程处理器的构成框图。
图2是表示本发明实施例的多线程处理器的构成框图。
图3是表示本发明实施例中指令流控制器的优先顺序指定寄存器的说明图。
图4是表示上述实施例中指令流控制器的优先顺序指定寄存器的低位2比特的说明图。
图5是表示上述实施例中指令流控制器的优先顺序指定寄存器的高位1比特的说明图。
图6是表示上述实施例中指令流控制器的内部中断寄存器的构成图。
图7是表示上述实施例中指令流控制器的隔断停止寄存器的构成图。
图8是表示上述实施例中指令发出判断部分的详细构成例的框图。
图9是表示上述实施例中指令发出调解部分的详细构成例的框图。
图10A~图10C是表示上述实施例中优先判定部分的控制逻辑的说明框图。
图11是表示上述实施例中指令发出禁止部分的详细构成例的框图。
图12是表示功能单元专用指令及控制寄存器的读出指令的执行内容的说明图。
图13是表示优先顺序控制部分的详细构成框图。
图14是表示连续循环优先部分内的选择器中输入的选择信号与输出值关系的说明图。
图15是表示本发明其他实施例的多线程处理器的框图。
具体实施例方式
图2是表示本发明实施例的多线程处理器的主要部分的构成框图。
本多线程处理器具有指令解码部分1~3、功能单元A20、功能单元B21、功能单元C22、功能单元D23、指令发出判断部分30、指令发出调解部分40、指令发出禁止部分50、优先顺序控制部分60和指令选择部分70,被构成为能相应于逻辑处理器的执行状态和指令流的优先权及外部因素调解向各功能单元发出的指令。
并且,本多线程处理器虽然配有图1所示的指令超高速缓冲存储器、指令提取单元、寄存器文件等,但在图2中省略了与现有技术例相同的部分。此外,为方便说明在本实施例中,各指令解码部分对每1指令流解码1指令,并且1次只发出1个指令。
图2中,指令解码部分1~3解码各个的指令流的指令,根据解码结果,向指令发出解码部分30输出指令发出要求,向指令选择部分70输出指令内容(执行等)。其中,指令发出要求包括要求有指令发出的标记(以下称为标记),和包含显示执行该指令的功能单元的种类(以下称为功能序号)的信息。由于独立解码指令流,所以指令解码部分1~3与上述各个的逻辑处理器相对应。本实施例中,由于1个物理处理程序中内装3个逻辑处理器,所以设有3个指令解码部分。以后,为相区别,把与指令解码部分1~3对应的逻辑处理器称为逻辑处理器1~3。相应地与逻辑处理器1~3相应的指令流被称为指令流1~3。
功能单元A20、B21、C22、D23(以下称为功能单元A、B、C、D)通过指令选择部分70接收从指令解码部分1~3发出的指令(解码结果),并执行该指令,即进行数据存取处理和运算处理等。为容易理解,例示了各功能单元的功能完全相同的处理内容。
也就是说,功能单元A是处理存储器存取指令的寄存存储单元,功能单元B是处理整数运算的整数运算单元,功能单元C是进行浮动小数点的加减运算和整数与浮动小数点之间的变换的浮动小数点单元,功能单元D是进行浮动小数点的乘除运算的浮动小数点单元。并且,本实施例中,作为整数运算的一个处理内容,功能单元B有处理与优先权设定有关的指令的功能。这些功能单元与为逻辑处理器1~3的构成部分的逻辑处理器一一对应,并且也可共用逻辑处理器1~3。此外,按照是否在指令处理过程中,各功能单元把能接收指令的状态(以下简单称为ready)或不能接收的状态(以下简单称为not ready)通知给指令发出判断部分30。
指令发出判断部分30接收来自指令解码部分1~3的指令发出要求(上述要求标记和功能单元序号),判断先发出指令的功能单元,并且接收表示各功能单元是否ready的通知,和接收来自优先顺序控制部分60的表示各逻辑处理器是处于停止状态还是处于执行状态的通知,判断是否可对各功能单元A~D发出指令。
在判断可对1个功能单元发出时存在有多个指令发出要求的争用的情况下,指令发出调解部分40按照优先顺序控制部分60中指定的各逻辑处理器的优先权,调解多个指令发出要求,决定一个要发出的指令。
按照指令发出调解部分40的调解结果,指令发出禁止部分50最终判断是否发出该指令,判断的结果在指令选择部分70中指示要发出的指令。具体地说,在需要在各逻辑处理器中进行紧急处理的情况下,对于该逻辑处理器的指令流的指令暂时禁止发出,不在这样的情况下,就按指令选择部分70中指示发出指令。由于指令发出禁止部分50暂时禁止着指令的发出,在发生由指令发出判断部分30及指令发出调解部分40处理后需要上述紧急处理的情况下,这就是把它作为最优先的缘故。指令发出禁止部分50设置在指令调解部分40之后,把从外部中断的发生时间至禁止指令发出时的延迟时间抑制到最小。
优先顺序控制部分60进行各逻辑处理器的优先权管理,以及指示各逻辑处理器处于执行状态还是停止状态的信息管理,向指令发出调解部分40通知上述优先权,向指令发出判断部分30通知是否处于上述执行状态。而且,在特定的指令执行时,优先顺序控制部分60具有在预定数的连续循环期间优先进行该逻辑处理器的功能(以下称为连续循环优先功能)。作为上述优先权及是否示出执行状态的管理,优先顺序控制部分60配有3个控制寄存器即优先顺序指定寄存器、内部中断寄存器、排他寄存器。这些寄存器依据指令流中的指令设定其值。
指令选择部分70根据来自指令禁止部分50的发出源的指令解码部分及指示先发出的功能单元的指令发出指示,向功能单元A~D发出指令解码部分1~3的解码指令(操作等)。
<优先顺序控制部分60优先顺序指定寄存器>
图3是表示装在优先顺序控制部分60中的优先顺序指定寄存器(以下称为PRI寄存器)的比特构成的说明图。
图中,PRI寄存器有MYID、PR13、PR12、PR11、MYPRI的各字段,存储着指示各逻辑处理器的优先顺序及是否处于停止状态的信息。
MYID字段为在逻辑处理器中执行本PRI寄存器的读出指令时指示执行该读出指令的逻辑处理器的ID字段。例如,在逻辑处理器3中执行该读出指令的情况下,就读出指示逻辑处理器3的ID(比如100)。
PR13字段为逻辑处理器3的优先顺序及指示是否处于停止状态的字段。
PR12、PR11字段为各个逻辑处理器2、1中与PR13相同的字段。
MYPRI字段为逻辑处理器中执行本PRI寄存器的读出指令时指示执行该读出指令的逻辑处理器优先顺序的字段。例如,在逻辑处理器1中执行该读出指令的情况下,在MYPRI字段中复制并读出PR11字段的内容。
图4是表示PRI寄存器中PR13~PR11字段各个的低位2比特分配的说明图。图中把PR13~1简略为PRIx,在[ ]内附记着字段内的比特位置。但是,x表示逻辑处理器序号(或线序号)。
图中PRIx[1:0]表示低(lowest)、中(middle)、高(highest)3个级别的优先顺序。由于用2比特表示3个级别的优先顺序,所以就可能分别把PRIx[1]设定为监督程序方式,把PRIx
设定为用户程序方式。这种优先顺序的设定根据下面表示的专用指令(存储表示)由功能单元B进行。
〖inc pri〗此指令提高优先顺序,即在监督程序方式中把PRIx[1]设定为1、在用户程序方式中把PRIx
设定为1。
〖dec pri〗此指令降低优先顺序,即在监督程序方式中把PRIx[1]设定为0、在用户程序方式中把PRIx
设定为0。
这些指令与通常寄存器之间的数据传送指令不同,不需要操作数,由于仅为操作码的指令,所以无论对哪一个指令流都可作为可采用的相同指令。例如,存在从1个程序中生成多个指令流、对各指令流承担不同的数据进行并行处理的情况。
例如,按照这些指令及图中的比特分配,即使在由用户程序方式向监督程序方式移动后变更优先顺序的情况下,仍存储用户程序方式时恢复以前的优先权。例如,在用户程序方式中发生中断,即使暂时向监督程序方式移动,从中断处理返回用户程序方式前,通过向源返回PRIx[1],存储用户程序方式中的优先顺序。
图5是表示优先顺序的PRI寄存器中的PR13~1字段各个高位1比特分配的说明图。
图中PRIx[2]表示逻辑处理器是处于执行状态或处于停止状态。从执行状态变为停止状态的设定根据下面表示的专用指令(存储表示)由功能单元B进行。
〖halt〗此指令使发出源的逻辑处理器进入停止状态。也就是把该逻辑处理器的PRIx[2]设定为1。并且,把此指令的停止状态与由其他指令的停止状态进行区别时就称为自停止状态。
自停止状态的解除(恢复执行状态)不依据指令,而是依据对该逻辑处理器的中断输入。即在多线程处理器中由于中断处理是在个别逻辑处理器中发生的,所以对自停止状态中某些逻辑处理器的中断(外部中断、内部中断等)可在发生时解除。
<优先顺序控制部分60内部中断寄存器>
图6是表示内装在优先顺序控制部分60的内部中断寄存器(以下称为IR寄存器)的比特构成说明图。其中,所谓的内部中断是逻辑处理器之间的中断,也称为从一个逻辑处理器向其他逻辑处理器的中断。由于进行内部中断的逻辑处理器在自停止状态情况下可解除自停止状态,所以可使用在比如逻辑处理器之间的同步处理和同步通信的情况。
图中所示的IR寄存器有MYID字段和IR3~IR1比特、是用于对其他逻辑处理器要求内部中断的寄存器。
由于MYID字段与上述图5所述相同,所以不再说明。
IR3~IR1比特是对逻辑处理器3要求其他逻辑处理器内部中断的比特。此比特如果为ON,那么按照接收该中断要求的指令解码部分3的控制,在把PR3[2]设定为0的同时,IR3返回OFF。其中,利用把PR3[2]设定为0,可解除逻辑处理器3的自停止状态。
IR2、IR1比特是对各个逻辑处理器2、1要求中断的比特,与IR3比特相同。
IR3~IR1比特的设定根据通常的寄存器传送指令进行。在通常的寄存器传送指令中由于有在IR3~IR1比特位置上直接中断的需要,所以对各指令流有必要区别是自身的逻辑处理器ID还是中断前的逻辑处理器ID,通过读出上述的MYID字段,对各指令流就能够进行逻辑处理器ID的操作。
<优先顺序控制部分60排他停止寄存器>
图7是表示内装在优先顺序控制部分60中的排他停止寄存器(以下称为EXCL寄存器)的比特构成说明图。其中,把除某1个处理程序之外的逻辑处理器停止称为排他停止。但是,2个以上的逻辑处理器不能作为同时的排他停止状态。
图中所示的EXCL寄存器是有MYID字段和EXCL3~EXCL1的各比特、仅使1个逻辑处理器处于执行状态、对其他逻辑处理器要求停止状态的寄存器。
由于MYID字段与上述图3和图6相同,所以不再说明。
EXCL3比特表示该比特ON时逻辑处理器3执行排他停止。这种情况下,仅逻辑处理器3执行,使逻辑处理器2和逻辑处理器1变为停止状态。
EXCL2、EXCL1的各比特也是同样的。这些EXCL3~EXCL1的各比特根据下面表示的专用指令(存储表示)由功能单元B进行设定和解除。
〖excsv〗该指令是对发出源的逻辑处理器中的排他停止的设定即是停止发出源以外的所有逻辑处理器的指令。例如,逻辑处理器1执行该指令的情况下,把EXCL1设定为ON,把EXCL2和EXCL3设定为OFF。此外,即便假设多个逻辑处理器同时发出此指令,也不会停止所有逻辑处理器的操作。其原因是因仅在功能单元B中执行该指令,所以用执行时间限定1个。
〖retex〗此指令是对发出源的逻辑处理器的排他停止的解除、即按源状态恢复其他所有逻辑处理器的指令。例如,逻辑处理器1执行该指令的情况下,把EXCL1设定为OFF。
此指令也和上述incpr指令、decpr指令一样不需要操作数,无论对于哪一个指令流都可使用相同的指令。
上述PRI寄存器、IR寄存器、EXCL寄存器的3个控制寄存器分别是1个物理的实体,由于各寄存器的MYID字段和PRI寄存器的MYPRI字段是显示自逻辑处理器自身的值,所以可看到由各逻辑处理器中与逻辑处理器不同的寄存器的存在。此外,由于这样的控制寄存器的寻址都与逻辑处理器相同,即使执行相同的指令,也能看到各个的自逻辑处理器自身的ID和优先顺序。
<指令发出判断部分30>
图8是表示图2的指令发出部分30的详细构成例的框图。该指令发出判断部分30配有停止判断部分310、分配部分320、发出判断部分330。
停止判断部分310配有与指令解码部分1~3分别对应的3组NOR电路和AND电路。各组NOR电路和AND电路从指令解码部分接收上述指令发出要求(要求标记和功能单元序号),在各逻辑处理器中变为自停止状态(PRI寄存器的PRIx[2]为ON)或变为按排他停止的停止状态(EXCLx比特为ON)的情况下,把要求的标记信号(以下称为要求有无信号)强制OFF,并且在执行状态中利用排他停止未停止的情况下,照样输出要求的有无信号。
分配部分320配有与指令解码部分1~3分别对应的3个信号分离器。各信号分离器通过停止判断部分310把输入的要求有无信号、根据功能单元序号的该指令分配给执行该指令的功能单元。结果,输出各功能单元中来自各指令解码部分的要求有无信号。
发出判断部分330配有与功能单元A~D分别对应的4组AND电路群。各AND电路群将分配部分320分配的要求有无信号、在上述功能单元为ready状态的情况下,照样输出,在not ready状态的情况下,进行OFF输出。其中,在显示有ready状态的ready~n信号(n为A、B、C或D)表示对应功能单元接收指令状态为来自与逻辑处理器1~3对应的功能单元x的输出信号。例如,对于来自指令发出判断部分330的输出信号(1A~3A、1B~3B、1C~3C、1D~3D),无论哪一个逻辑“1”时就有效(能够发出指令),例如,输出信号1A表示在指令解码部分1先发出的发出源是功能单元A,输出信号3B表示在指令解码部分3中先发出的发出源是功能单元B。
<指令发出调解部分40>
图9是表示图2的指令发出调解部分40的详细构成例的框图。该指令发出调解部分40配有分别对应功能单元A~D的调解部分40A~40D。由于各调解部分进行同样的工作,所以仅以调解部分40A为代表进行说明。调解部分40A配有优先顺序判定部分41A和判定辅助部分42A。
优先顺序判定部分41A接收由发出判断部分330输出的信号1A、2A、3A,和各逻辑处理器的优先顺序PRI1[1:0]、PRI2[1:0]、PRI3[1:0],将有效的要求有无信号中优先顺序最高的输出。图10A~图10C示出优先顺序判定部分41A中为实现这种功能的控制原理图。
图10A中,表示在PRI寄存器中的PRI1、PRI2、PRI3字段指定逻辑处理器1~3的优先顺序为PRI1>PRI2>PRI3的情况,即表示优先等级中(PRI1、PRI2、PRI3)=(高、中、低)的情况的输入1A、2A、3A,输出1A’、2A’、3A’。此外,图中虽未示出,但即使在优先顺序为PR1>PR3>PR2的情况下、PR2>PR1>PR3的情况下、PR2>PR3>PR1的情况下、PR3>PR1>PR2的情况下,还是PR3>PR2>PR1的情况下,由于仅读出更换其中的信号名就变为完全相同的控制原理,所以省略说明。
图10B中,表示优先顺序为PRI1=PRI2>PRI3的情况,即表示优先等级中(PRI1、PRI2、PRI3)=(高、高、中)、(高、高、低)或(中、中、低)的情况。图中虽未示出,但即使在优先顺序为PR1=PR3>PR2的情况下、PR2=PR1>PR3的情况下、PR2=PR3>PR1的情况下、PR3=PR1>PR2的情况下,还是PR3=PR2>PR1的情况下,由于仅读出更换其中的信号名就变为完全相同的控制原理,所以省略说明。此外,象图中所加的波浪线的输出信号、输入信号中的优先顺序最高,并且在有效信号为2个以上的情况下,优先顺序判定部分41A以“1”作为其输出。
图10C中,表示优先顺序为PRI1>PRI2=PRI3的情况,即(PRI1、PRI2、PRI3)=(高、中、中)、(高、低、低)或(中、低、低)的情况。此外,图中虽未示出,但即使在优先顺序为PR1>PR3=PR2的情况下、PR2>PR1=PR3的情况下、PR2>PR3=PR1的情况下、PR3>PR1=PR2的情况下,还是PR3>PR2=PR1的情况下,由于仅读出更换其中的信号名就变为完全相同的控制原理,所以省略说明。
此外,优先顺序判定部分41A在优先顺序为PRI1=PRI2=PRI3的情况、有效信号为2个以上的情况下,以“1”作为其输出的有效信号。
判定辅助部分42A在把PRI寄存器中的优先顺序设定为相同逻辑处理程序的同时输出指令发出要求的情况下,即优先顺序判定部分41A的输出(1A’、2A’、3A’)中“1”为2个以上的情况下,为了无偏向地调整逻辑处理器之间的指令发出,所以其中有“1”就判定。例如,判定辅助部分42A进行(1)用各循环(1次循环或数次循环)改变为1的逻辑处理器;(2)以前能发出指令的逻辑处理器优先;(3)确定固定其中一个。此外,能把这些进行替换更好。
<指令发出禁止部分50>
图11是表示图2的指令发出禁止部分50的详细构成例的框图。该指令发出禁止部分50配有分别与功能单元A~D对应的禁止部分50A~50D、和发出通知部分55。由于各禁止部分进行相同的操作,所以这里以禁止部分50A为代表进行说明。
禁止部分50A,作为要求的紧急处理,包括在外部中断要求、内部中断要求、超高速缓冲存储器错误和存储器存取误差等的存取例外、收集指令等发生的情况下,检测其发生源的逻辑处理器ID和控制该逻辑处理器1循环期间禁止指令发出的禁止控制部分51A;依据禁止控制部分51A的指示选通调解部分40A的输出信号(1AA~3AA)按指令选择部分70的结果输出指令发出指示(1AAA~3AAA)的3个AND电路;和通知对应功能单元A的指令发出的OR电路。
发出通知部分55由对应指令解码部分1~3的3个OR电路组成,各自输出来自禁止部分51A~51D的各逻辑处理器的指令发出指示,输出发出通知,通知可发出对应指令解码部分中发出的一个指令。
<功能单元B>
功能单元B构成为除执行整数运算指令外,还执行上述各种专用指令和读出PRI寄存器、EXCL寄存器、IR寄存器的指令。
再有,对于上述专用指令,本实施例中虽由功能单元B执行,但也可由构成的其他功能单元执行。
图12是表示用功能单元B执行上述专用指令和读出指令的执行内容的说明图。图中,[x]表示该指令的发出源的逻辑处理器序号,[y]表示该指令的发出源以外的逻辑处理器ID。这个逻辑处理器序号由来自禁止部分50B的输出信号(图11的1BBB~3BBB)通知功能单元B。
如图所示的功能单元B,对于指令〖inc pri〗,在监督程序方式中把PRI寄存器的PRIx[1]比特设定为1,在用户程序方式中把PRIx
比特设定为1。
对于指令〖dec pri〗,在监督程序方式中把PRIx[1]比特设定为0,在用户程序方式中把PRIx
比特设定为0。
对于指令〖halt〗,把该逻辑处理器的PRI寄存器的PRIx[2]比特设定为1。
对于指令〖excsv〗,把EXCL寄存器的EXCLx比特设定为1,把EXCLy设定为0。例如,逻辑处理器2在本指令的发出源的情况下,功能单元B把EXCL2比特设定为1,把EXCL3比特和EXCL1比特设定为0。
对于指令〖retex〗,把EXCLx比特设定为0。
这样的上述专用指令还有相同的指令,根据该指令发出源的逻辑处理器进行寄存器中不同的比特的操作。
此外,对于图12所示的各mov指令,功能单元B按下述执行。〖mov PRI,RO〗指令为把PRI寄存器内容向RO寄存器传送的指令。对该指令功能单元B按下面的指令执行。
对PRI寄存器中的MYID字段(=PRI[31:29]),将该指令的发出源的逻辑处理器ID写入RO[31:29]的各比特。
对于PRI寄存器中的PRI[11:9](=PRI3,PRI2,PRI1字段)的各比特,读出该数据后传送给RO寄存器中的[11:3]。
对于PRI[2:0](=MYPRI字段),将与PRI3、PRI2、PRI1字段中该指令发出源的逻辑处理器ID对应的PRIx写入RO[31:29]的各比特。
〖mov IR,RO〗指令为向RO寄存器传送IR寄存器内容的指令。对于该指令,功能单元B依据IR寄存器中的MYPRI字段(=IR[31:29])在RO[31:29]的各比特中写入该指令发出源的逻辑处理器ID。对于IR[2:0](=IR3,IR2,IR1比特)的各比特,读出其值后写入RO[2:0]的各比特中。
〖mov EXCL,RO〗指令为向RO寄存器传送的EXCL寄存器内容的指令。按照此指令的功能单元B的执行内容,与上述〖mov IR,RO〗指令相比,除传送源为IR寄存器外均相同。
通过执行上述的读出指令,各逻辑处理器可获得由读出的MYID字段的自身逻辑处理器ID的值、其他逻辑处理器的状态(优先状态、自停止状态、排他停止状态等。
<优先顺序制部分60的详细构成>
图13是表示优先顺序控制部分60的详细构成的框图。
优先顺序控制部分60配有PRI寄存器61、IR寄存器62、EXCL寄存器63、选择器64、连续循环优先部分69。
由于在图3、图6、图7中概要说明了PRI寄存器61、IR寄存器62、EXCL寄存器63的比特构成,所以这里说明其硬件构成。
这些寄存器61~63与本多线程处理器的内部总线连接,通过内部总线在功能单元B中进行读出和写入。
这些寄存器的高位3比特(MYID字段)没有存储数据的功能,寄存器的读出指令执行时,向直通的内部总线输出逻辑处理器ID。这时的逻辑处理器ID值由来自禁止部分50B的输出信号(图11的1BBB~3BBB)通知。
此外,PRI寄存器62的低位3比特在PRI寄存器的读出指令执行时向直通的内部总线输出选择器64的输出。
选择器64在PRI寄存器的读出指令执行时,在PRI寄存器62中的PRI3,PRI2,PRI1的字段内,选择与其指令发出源的逻辑处理器ID对应的ID后,经IR寄存器62中的[MYPRI]字段输出给内部总线。
连续循环优先部分69在特定的指令列执行期间具有使其优先权暂时变高的功能。其中,比如说执行与其他逻辑处理器共享资源的读出和写入等情况下,特定的指令列是指有必要用连续循环执行的指令列。
下面,举一个特定指令列的实例。但是,指令是用助记忆符号显示的。并且,下面是表示指令内容的注释。
LOOP级别aldst MEM[100].RO也称为原子装载启动(Atomic LoaD STart)。向RO传送存储器(100号地址)的数据testRO若RO=0则把0特征位设定为1beqLOOP若零标记为1则向级别LOOP分支store R1.MEM[100]向存储器100号地址传送寄存器R1的数据上述特定指令标记读出存储器100号地址,如果读出的数据为0,那么向存储器100号地址写入寄存器R1的数据。如果读出的数据不为0,那么直到变为0后显示重复读出循环处理。该特定指令列有用连续循环执行的必要,比如存在着把存储器100号地址作为多个逻辑处理器的共享资源使用的情况。也就是说,其他逻辑处理器不必写入更换存储器100号地址。
为保证这样的特定指令列用连续循环执行,连续循环优先部分69在用1个功能单元检测上述特定指令列的先头指令的执行开始时,由该指令的执行循环连续预定数的循环期间,因其指令发出源的逻辑处理器(指令流)的优先顺序也比其他逻辑处理器高,所以要暂时变更优先顺序控制部分60的优先顺序。
<连续循环优先部分69>
连续循环优先部分69配有图13所示的特定指令检测部分65、计数器66、比较器67、选择器68。
图中特定指令检测部分65对特定指令列的先头指令(以下称为特定指令)执行的开始进行检测。上述特定指令列的实例中,可检测作为特定指令的aldst指令。更具体地说,特定指令检测部分65接收来自指令解码部分1~3的特定指令解码后的通知,接收特定指令的指令发出禁止部分50向其1个功能单元发出的通知,以共同接收两通知作为特定指令执行开始的检测。
检测特定指令执行开始时,计数器66计数特定指令列的执行中要求的循环数。上述实例中,由于对与aldst指令连接的3指令的执行中要求的3次循环进行计数,所以输入检测特定指令执行开始时的初始值为3,直至降到0计数。因此,上述store R1,MEM[100]的执行循环变为0。此外,在上述特定指令列进行循环处理的情况下,计数器66把每次检测aldst指令从初始值3进行计数。
选择器67判定计数器66的计数值是否与0一致。即判定是否处于特定指令列的连续循环中。
比较器68为6比特长的4输入1输出的比较器,用于连续循环期间暂时变更优先顺序。
图14是表示选择器68中输入的选择信号与输出值关系的说明图。比较器68的输入值在图中虽省略了,但却为图13所示的〖PRI[11:3](=PRI3[1:0]、PRI2[1:0]、PRI1[1:0]〗、〖110000〗、〖001100〗、〖000011〗的4个。
按图,通常即未在连续循环期间的情况下(与计数值=0一致时),选择器68是输出PRI寄存器中PRI[11:3](=PRI3,2,1字段)内指定的优先顺序。
在连续循环期间的情况下(与计数值=0不一致时),此时的特定指令的发出源在逻辑处理器3中若为[110000],在逻辑处理器2中若为
,在逻辑处理器1中若为
,那么选择器68就输出PRI[11:3](=PRI3’[1:0],PRI2’[1:0],PRIl’[1:0])。
因此连续循环期间中,特定指令的发出源在逻辑处理器的优先顺序变得暂时最高。
下面,说明对象上述那样构成的本实施例的多线程处理器的操作。
<优先顺序、自停止状态、排他状态的设定操作>
本实施例的多线程处理器中,储备有称为专用指令的用于各指令流(逻辑处理器)优先顺序的设定·变更incpr指令和decpr指令、自停止halt指令、排他停止excsv指令和retex指令。这些专用指令在指令流的源程序中有必要预先适当设定。
比如,提高程序中的优先顺序的各处理部分中,最好在该程序部分之前设定incpr指令、在该程序部分之后设定decpr指令为好。这样设定的incpr指令和decpr指令利用功能单元B按下面那样执行。也就是说,依据逻辑处理器1~3的其中之一有发出源,功能单元B把与PRI寄存器对应的PRx字段中在用户程序方式时以PRIx
比特为对象设定为1或0,在监督程序方式时以PRIx
为对象设定为1或0。因此,必须依据各逻辑处理器中的优先顺序,就可动态地变更。
此外,停止其他逻辑处理器仅进行自身的逻辑处理器的操作应处理的程序部分中,变为在该程序部分前设定excsv指令,在该程序部分后设定retex指令。这些指令也利用功能单元B象上述那样执行。
相反地,优先其他逻辑处理器停止自身的逻辑处理器的情况下,就变为设定halt指令。这个指令也用功能单元B执行。但是,由于依据对该逻辑处理器中断要求解除停止状态,所以停止状态的逻辑处理器就有必要适当输入中断要求。例如,逻辑处理器之间的内部中断依据IR寄存器。也就是说,发生中断的逻辑处理器按事先通常的寄存器传送指令读取IR寄存器、PIR寄存器或EXCL寄存器后,读取自身的MYID,并且因决定中断前与逻辑处理器对应的IRx比特,所以可由通常的传送指令在IR寄存器中设定内部中断要求。
<整体操作>
例如,在输出指令解码部分1的解码结果和对功能单元B的指令发出要求(要求标记和功能单元B的序号)的情况下,在逻辑处理器1处于自停止状态或利用其他逻辑处理器的排他停止的停止状态的情况下,使根据指令发出判断部分30内的停止判断部分310的要求标记本身未变为无效的输出。因此,其他逻辑处理器2和3可使用功能单元。
逻辑处理器1即使不处于自停止状态,其他逻辑处理器也不处于排他停止的停止状态的情况下,指令发出判断部分30内的分配部分320就对功能单元B进行分配,并且如果功能单元B对逻辑处理器1处于ready状态,那么利用指令判断部分330判断为可发出;如果处于not ready状态就判断为不可发出。
接着,指令发出调解部分40接收来自指令发出判断部分30的各功能单元的指令发出要求,采用来自优先顺序控制部分60的各逻辑处理器的优先顺序,确定功能单元中可发出的逻辑处理器。例如,对于功能单元B仅有来自指令解码部分1的指令发出要求的输出的情况下(图9中1B~3B内仅1B有效的情况),指令发出调解部分40使其指令发出要求有效(图9中1BB~3BB内仅1BB有效)。
例如,指令解码部分1解码对功能单元A的指令,指令解码部分2解码对功能单元B的指令,指令解码部分3解码对功能单元C的指令,并且,在所有功能单元处于ready状态的情况下,对于指令发出调解部分40的3个指令发出要求均有效。
另一方面,指令解码部分1对功能单元A的指令解码,指令解码部分2也对功能单元A的指令解码的情况下(图9中1A和2A同时有效的情况),由于不知哪一个指令不能发出,所以优先顺序判定部分41A由优先顺序控制部分60内的寄存器判断优先顺序,发出优先顺序较高的指令。假设出现逻辑处理器1和逻辑处理器2的优先顺序相同的情况,那么就依据判定辅助部分42A仅使其中一个指令发出要求有效。
还有,指令发出禁止部分50对于由指令发出调解部分40决定发出的指令,在出现逻辑处理器的其中之一需要紧急处理的情况下,禁止该逻辑处理器的指令发出。
指令发出判断部分30和指令发出禁止部分50具有对任一指令发出要求由指令发出候补避开的功能,按下述理由分担功能。
也就是说,对于明确快阶段中指令不能接收的明确因素,在指令发出判断部分30中,不发出和判断不能接收的逻辑处理器的指令,用指令发出的候补避开,假如对于慢阶段仍不明确的因素,在指令发出判断部分30中,用指令发出的候补避开的话,则使能否发出指令的最终判断缓慢,对逻辑处理器的频率提高有影响。
例如,在按1循环进行从指令发出判断至指令发出禁止的情况下,如果在循环的最后将不能发出指令的因素通知给指令发出判断部分30,从那时起就有避开指令发出候补的必要。这种情况中必须使循环长度选取得很长,从而成为阻碍时钟频率提高的主要因素。其中,对于缓慢阶段中仍不明确的指令发出禁止的因素,指令发出禁止部分50就禁止发出。当然,在指令发出禁止部分50中某些逻辑处理器的指令发出被禁止的情况下,即使其以外的逻辑处理器的指令能够发出,但不能代替该指令的发出。对已有的各功能单元A~D的所有发出指令进行1次挤入后的情况。
然后,指令选择部分70,把指令解码部分1~3中解码的指令内容和操作根据来自指令发出禁止部分50的指令发出指示(图11中1AAA~3AAA、1BBB~3BBB、1CCC~3CCC、1DDD~3DDD),向功能单元A~D发出。
再有,本实施例中说明了逻辑处理器为3个、功能单元为4个的情况,当然可以把这些数进行任意地变更。
此外,最好采用多个寄存器分担PRI寄存器的内容。例如,自停止用的各PRIx[2]比特和优先顺序用的各PRIx[1:0]字段最好用个别的寄存器。反过来,最好使PRI寄存器和RI寄存器及EXCL寄存器为这样全部组合或部分组合为一体的寄存器。
还有,特定指令检测部分65也可检测特定指令的执行开始,开始其指令的执行,接收来自功能单元的通知。
本实施例中,展示在多个逻辑处理器对功能单元中指令发出有争用的情况下采用本发明的实例,即使在功能单元以外,多个逻辑处理器若有共有资源也能采用。下面,说明其他实施例。
<其他实施例>
本实施例中,在其有共有多个逻辑处理器资源情况的调解中也能够采用逻辑处理器之间的优先顺序,下面举一实例。
图15是表示本发明其他实施例的多线程处理器的构成框图。
本多线程处理器配有超高速缓冲存储器100、指令解码部分111~113、寄存器群131~133、指令提取控制部分140、指令发出控制部分150、优先顺序控制部分60、功能单元A20~D23、和寄存器控制部分170。与图2相同序号的构成要素因相同而不再说明,以不同点为中心进行说明。
图15中,超高速缓冲存储器100是生成指令流的源程序的超高速缓冲存储器。
指令解码部分111~113分别与图2的指令解码部分1~3相同,但接收指令提取部分140的控制点不同。
寄存器群131~133有分别由多个寄存器组成的寄存器字段,与指令解码部分111~113一一对应。因此,逻辑处理器1~3也一一对应。
指令提取控制部分140与图2所示的指令发出调解部分40和指令发出禁止部分50对应,除调解和禁止没有指令发出要求的指令要求的争用点不同外有相同的功能。也就是说,输入来自优先顺序控制部分60的各逻辑处理器的优先顺序的指定等,在对应超高速缓冲存储器100的多个指令解码部分出现同时指令提取要求的情况下,确定依据优先顺序的提取顺序,此外,在停止特定的逻辑处理器执行的情况下,停止来自其逻辑处理器指令解码部分的指令提取。
指令发出控制部分150把图2所示的指令发出判断部分30、指令发出调解部分40、指令发出禁止部分50和指令选择部分70作为1个构成部件记述,因其有相同的功能而不再说明。
寄存器控制部分170相应于图2所示的指令发出判断部分30和指令发出调解部分40,在没有指令发出要求时除停止和调解寄存器处理要求的争用方面不同外具有相同的功能。也就是说,输入来自优先顺序控制部分60的各逻辑处理器的优先顺序的指定等,对上述寄存器组同时写入多个功能单元的数据要求输出的情况下,为依据优先顺序确定写入顺序的指令发出控制部分。
对于上述构成的功能单元,无论是在逻辑处理器的争用、对超高速缓冲存储器的指令提取要求的争用、还是对寄存器群的数据处理要求的争用情况下,都能按优先顺序实施调解和停止。
再有,上述实施例中,虽然多个指令流和逻辑处理器为3个,功能单元为4个,但并不在意该数的大小。
还有,优先顺序的级别虽是2比特3级别的,实际上几个都行。此外,控制寄存器宽为32位,但不限于该比特宽度。
并且,多个逻辑处理器中同时发生分支的情况下,也可共有地址计算用的资源和超高速缓冲存储器等,与其他实施例一样能够按优先顺序调解。
再有,上述实施例中,PRI寄存器中虽构成有由专门指定的专用指令变更优先顺序,但在专用指令以外由硬件设定·变更也行。这种情况下,也可以利用预定各指令流的优先顺序的时限,或利用监视指令流状态的状态,通过触发硬件的外部因素和内部因素变更优先顺序。
此外,上述实施例中对于图9所示的优先顺序判定部分41A内2个或3个优先顺序相同的情况下,虽可使其首先全部有效后输出,但也可以使其中的一个有效后就输出。那种情况下,就可去除判定辅助部分42A。
而且,图9的判定辅助部分42A设置在优先顺序判定部分41A的后边,而把它设置在优先顺序控制部分60和优先顺序判定部分41A之间,在相同的优先顺序为多个的情况下,还可构成动态变更优先顺序。
再有,上述实施例中PRI寄存器中的MYPRI字段输出PRI寄存器读出指令发出源的优先顺序,但与其同样,比如设置MYDATA字段,也可以输出表示各逻辑处理器状态的数据(状态数据、误差信息等)。
需要禁止部分50A检测的紧急处理除外部中断要求、内部中断要求、超高速缓冲存储器错误和存储器处理误差等处理例以及收集指令等外,还可以有超高速缓冲存储器误差等的各种事件处理。
尽管已利用本发明的实施例并参照附图充分说明了本发明,但需指出,对本领域的技术人员来说,本发明显然还有各种变化和变型。因此,只要这些变化和变型不脱离本发明的范围,那么就应包括在本发明中。
权利要求
1.同时且独立并行地执行多个指令流的多线程处理器,包括·指令超高速缓冲存储器暂时存储所述多个指令流的指令;·多个指令提取器与所述多个指令流对应设置、提取来自指令超高速缓冲存储器的指令流的指令;·优先权指定器指定所述多个指令流的各自的优先权,各优先权与其他指令流的优先权独立,并通过专用指令变更;·指令提取控制器在出现来自2个以上的指令超高速缓冲存储器的有同时指令提取要求的情况下,根据所述优先权指定器的优先权,调解指令提取要求;所述功能单元的1个接收指示优先权变更的专用指令,在优先权指定器存储的优先权中,只变更该专用指令所属的指令流的优先权。
2.同时且独立地执行多个指令流的多线程处理器,它具有执行指令的多个功能单元;从指令超高速缓冲存储器提取解码指令并解码,指定要执行该指令的功能单元,输出指令发出要求的多个指令解码部分;与指令解码部分相同数量的寄存器组;该多个指令流的数量与指令解码部分的数量相同,它还包括·存储器存储依据指令流中的指令在各指令流中可设定的指令流的优先权,各优先权与其他指令流的优先权独立,并通过专用指令变更;·控制器对由多个指令流共有的资源,在两个以上的指令流同时争用的情况下,根据所述优先权进行调解;对所述共有资源的争用为对一个功能单元有来自两个以上的指令解码部分的指令发出要求的争用、对指令超高速缓冲存储器有来自两个以上的指令解码部分的指令提取要求的争用、和对一个寄存器组有来自两个以上的功能单元的访问要求的争用的其中之一;功能单元的1个接收指示优先权变更的专用指令,在存储器中存储的优先权中,只变更该专用指令所属的指令流的优先权。
3.如权利要求2的多线程处理器,其特征在于,所述专用指令是指示提高或降低优先权的指令。
全文摘要
一种执行多个指令流的多线程处理器,包括多个功能单元,执行指令;多个指令解码器,与各指令流对应地设置,解码各个指令,完成作为执行该指令的功能单元要求将解码指令发给该功能单元的指令发出要求;优先权存储器,存储各指令流的优先权,各优先权与其他指令流的优先权独立,并通过专用指令变更;自停止数据存储器,在各指令流中存储指令流处于执行状态还是处于停止状态的自停止数据;调解器,接收来自多个指令解码部分通知的指令发出要求,2个以上的指令发出要求同时指定一个功能单元的情况下,根据优先权存储器中存储的优先权,确定向该功能单元要发出的解码指令;停止器,根据所述自停止数据,停止与正处于停止状态的指令流相应的指令解码部分向调解器的指令发出要求的通知。
文档编号G06F9/30GK1782989SQ20051012517
公开日2006年6月7日 申请日期1997年8月27日 优先权日1996年8月27日
发明者木村浩三, 清原督三, 吉冈康介 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1