带有共享内容的异构型并行多线程处理器(hpmt)的制作方法

文档序号:6547179阅读:116来源:国知局
专利名称:带有共享内容的异构型并行多线程处理器(hpmt)的制作方法
技术领域
本发明涉及一种带有共享内容的异构型并行多线程处理器(HPMT),其具有多个(M个)并联的标准处理器根单元类型,其中每个标准处理器根单元类型具有至少一个或多个(K个)用于对来自不同线程的程序指令用于指令执行的并联标准处理器根单元,每个标准处理器根单元类型具有N个局部内容存储器,其每个缓冲器存储一个局部线程的当前处理器状态。该多线程处理器(HPMT)还具有多个全局内容存储器和一个线程控制单元,其中该存储器的每个缓冲器存储一个全局线程的当前处理器状态,该线程控制单元可将任意的标准处理器根单元和任意的全局内容存储器相连。
嵌入式处理器及其结构由其计算能力、能量消耗、处理量、成本和实时能力来测量。为增加处理量和处理器速度使用流水线的原理。流水线的基本概念是将任意的指令或程序指令及时划分为同一时段内的多个处理阶段。当指令自身的处理可被划分为带有分离和连续的可执行处理步骤的多个阶段时,具有不同处理部件的流水线是有可能的。冯·诺伊曼模型的原始双指令执行阶段(即取指令和指令处理)在该内容中被进一步划分,正是由于这种一分为二的划分证明对流水线过于粗糙。本质上用于RISC处理器的流水线变体包括指令处理的四个阶段,即取指令、指令解码/取操作数、指令执行和写回。
关于程序代码中的指令处理,线程T表示在代码或源代码或程序中的控制线程,其中在一个线程T中存在着数据相关性,在不同线程T之间存在着微弱的数据相关性(如T.Bayerlein,O.Hagenbruch的第三部分所描述的那样“Taschenbuch Mikroprozessortechnik”[Pocket book of microprocessor engineering],Fachbuchverlag Leipzig im Karl-Hanser-Verlag Munich-Vienna》第二版,ISBN3-446-21686-3)。
处理的一个特性是处理始终访问一个专用存储区。处理包括多个线程T。相应的线程T是处理的程序部分。线程的内容是处理该线程T或来自该线程的程序指令的处理器的处理器状态。相应的,当该处理器处理该线程时,线程的内容被定义为临时处理器状态。该内容被处理器的硬件所保留,即程序计数寄存器或程序计数器、寄存器堆或内容存储器以及相关的状态寄存器。
当处理器执行一个线程时,线程T可被临时封锁。线程T的临时封锁具有多种原因,譬如由于访问外部存储器或内部寄存器期间的等待时间。
当处理器流水线可处理来自线程T的非进一步的程序指令时,处理器可被临时封锁。
众所周知,为解决临时封锁的问题而提供了“多线程处理器”。多线程处理器是提供这样的一种硬件的处理器,该硬件通过分别提供用于多项内容的程序计数寄存器、寄存器组和状态寄存器来执行多项内容。
根据多线程处理器的开发,基于通过在申请日的申请而未被公开的文件,图1展示了带有共享内容的并行多线程处理器的框图。带共享内容的并行多线程处理器的基本概念不是将N个线程或它们相应的N个内容存储器划分为组,如在已知的多线程处理器的情况下,这些组的每一个被直接连接或被有线连接到相关联的标准处理器根单元,而是提供内容存储器从而任何标准处理器根单元可被连接到任何内容存储器。
在这种情况下,来自N个线程或N个内容存储器的程序指令被动态分布到M个标准处理器根单元。N个内容存储器和M个标准处理器根单元通过多路复用器来彼此耦合。在每个相应的处理器或每个相应的标准处理器根单元的每个流水线阶段中的相应的程序指令执行期间,通过多路复用器来选择合适的内容。标准处理器根单元中的每个程序指令都要求合适的内容。通过使用控制信号<t,p>来选择合适的内容,其中t表示线程数目或线程索引,p表示标准处理器根数目或标准处理器根单元的数目。
图1所示的并行多线程处理器PMT被耦合到指令存储器BS和数据总线DB。此外,多线程处理器PMT包括M个标准处理器根单元SPRE,N个内容存储器KS,一个线程控制单元TK,M个处理器控制单元PKE,N个指令缓冲器存储器BZS,NxM个多路复用器NxM MUX和MxN个多路复用器MxNMUX。
每个标准处理器根单元SPRE都具有一个指令解码/取操作数单元BD/OHE,一个指令执行单元BAE和一个写回单元ZSE,根据流水线处理来安排这些单元以处理程序指令。
取指令单元BHE具有MxN个多路复用器MxNMUX,N条数据线DL,N个指令缓冲器存储器BZS,另外的N条数据线DL和NxM个多路复用器NxMMUX。
每个标准处理器根单元SPRE具有一个为其提供的关联的处理器控制单元PKE。处理器控制单元PKE利用内部控制信号来控制合适的标准处理器根单元SPRE。在此情况下,指令解码/取操作数单元的第一内部控制信号intSS`控制指令解码/取操作数单元BD/OHE。指令执行单元的第二内部控制信号intSS``控制指令执行单元BAE,以及写回单元的第三内部控制信号intSS```控制写回单元ZSE。
每个内容存储器KS具有程序计数寄存器PZR,寄存器组RB和状态寄存器SR。程序计数寄存器PZR缓冲存储线程T的程序计数器。NxM多路复用器NxMMUX将来自N个线程T的N个程序计数寄存器PZR的内容置于M-通道地址总线AB。
取指令单元BHE利用M-通道数据总线DB来从指令存储器BS中读取程序计数寄存器PZR的数据内容所引用的M个程序指令。通过MxN多路复用器MxN MUX,已被读取的数据内容被传送到N个指令缓冲存储器BZS。N个线程T的每一个都具有为其提供的关联的指令缓冲存储器BZS。NxM多路复用器NxM MUX被用于将来自N个指令缓冲存储器BZS的M个程序指令置于M条数据总线DL上。数据总线DL上的M个程序指令分布于M个标准处理器根单元SPRE。
例如,标准处理器根单元SPRE-i中的指令解码/取操作数单元BD/OHE-i将来自线程T-j的程序指令解码。来自线程T-j的解码程序指令尤其包括后续指令的执行所要求的操作数的地址。操作数的寻址数据内容被存储于和线程T-j相关的内容存储器KS-j之中,确切地说是和内容存储器KS-j相关的寄存器组RB-j之中。NxM多路复用器NxM MUX被用于将操作数的数据内容从内容存储器KS-j的寄存器组RB-j传送到标准处理器根单元SPRE-i中的指令解码/取操作数单元BD/OHE-I,其中线程控制单元TK利用多路复用器控制信号<t,P>[e]来控制NxM多路复用器NxM MUX。借助多路复用器控制信号<t,p>来控制多路复用器,以使相应的内容存储器KS-j连接到合适的标准处理器根单元SPRE-i的合适的流水线站。
标准处理器根单元SPRE-i中的指令执行单元BAE-i利用从寄存器组RB-j中提取的操作数来执行被包含在来自线程T-j的程序指令中的算法和逻辑操作。
当带有已提取的操作数的算法和逻辑操作已被执行时,操作、附加符号或标记的结果会通过写回单元ZSE-i而被置于数据线DL上,在存储指令的情况下,同样的数据内容被潜在地另外置于其它的数据线DL上。M根其它数据线DL被用于将多线程处理器PMT耦合到数据总线DB上。M个标准处理器根单元SPRE的M个结果的数据内容经由数据总线DB而被传送给外部存储器。
MxN多路复用器MxN MUX被用于从第一数据线DL中取操作、附加符号或标记的结果,并将算法和逻辑操作的结果传送给内容存储器KS-j的寄存器组RB-j,并将附加符号传送给内容存储器KS-j的状态寄存器SR-j。N个状态寄存器SR的数据内容借助于NxM多路复用器NxM MUX而被传送给M个处理器控制单元PKE。处理器控制单元PKE-i取状态寄存器SR的数据内容并计算内部控制信号,即用于指令解码/取操作数单元intSS′的内部控制信号、用于指令执行单元intSS″的内部控制信号以及用于写回单元intSS的内部控制信号。
线程控制单元TK使用多路复用器控制信号<t,p>[a]-<t,p>[f]来控制NxM多路复用器NxM MUX和MxN多路复用器MxN MUX。多路复用器控制信号<t,p>指示哪一个线程T-j被哪一个标准处理器根单元SPRE-i所处理。
NxM多路复用器NxM MUX具有将数据从N通道数据总线置于M通道数据总线的功能。
MxN多路复用器MxN MUX具有将数据从M通道数据总线置于N通道数据总线的功能。
M个内部事件控制信号ESS′尤其包括和封锁线程T、内部中断、等待时间以及异常事件信号相关的数据,并使这些数据对线程控制单元TK有效。
外部事件控制信号ESS″通过外部设备而被传送给线程控制单元TK。这都是由外部设备所产生的外部中断的例子。
当要求使用不同处理器或不同处理器类型的任务被处理时,并行多线程处理器结构具有缺陷。诸如被称为异类任务的任务,正是由于其包括不同的线程,最好由不同类型的处理器(例如,通用处理器、协议处理器等等)来处理。
因此并行多线程处理器不适于用作多层网络处理器。
由于单个的并行多线程处理器之间的中间处理器通信对单个的并行多线程处理器和整个系统的利用水平具有不利影响,因而即使并联连接多个并行多线程处理器也不能解决上述问题。在并联连接的并行多线程处理器的情况下,整个内容或内容存储器的全部都不能被任何标准处理器根单元所再次访问,这就增加了并联的并行多线程序处理器的封锁概率。
因而本发明的目标就是提供一种异构型并行多线程处理器,即使在异类任务的情况下,其也具有最小的封锁概率和较高的处理量。
本发明的思想实质上涉及提供一种多线程处理器的装置,然而,其具有不同类型的并联的单个处理器或不同的标准处理器根单元类型,它们都能访问相同的内容或相同的内容存储器。具有至少两个不同的标准处理器根单元类型的多线程处理器被称为异构型多线程处理器。对于所设置的任务或执行的线程,多线程处理器控制哪种处理器类型或哪种标准处理器根单元类型最好和公用内容或内容存储器相连。公用内容存储器也被称为全局内容存储器,且在可被连接于其上的异构型多线程处理器的所有不同处理器类型中都可被识别。可被任何多线程处理器的标准处理器根单元类型所执行的线程被称为全局线程。相对于此,可仅仅被连接于多线程处理器的一个特定的标准处理器根单元类型的内容存储器被称为局部内容存储器。由于特定任务或局部线程能以合适的方式而仅仅被一个特定的标准处理器根单元类型所执行,因此提供局部内容存储器是有意义的。
在本发明中,尤其是通过生成带有共享内容的异构型并行多线程处理器,已解决了以上所讨论的问题,该处理器具有(a)多个(M个)并联的标准处理器根单元类型,其中每个标准处理器根单元类型具有至少一个或多个用于执行来自不同线程的程序指令的并联的标准处理器根单元,每个标准处理器根单元类型具有N个局部内容存储器,其每个缓冲器存储一个线程的当前处理器状态部分;(b)多个(N个)全局内容存储器,其每个缓冲器存储一个线程的当前处理器状态部分;(c)还具有线程控制单元,其可将任意的标准处理器根单元连接于任意的全局内容存储器。
本发明的一个优势在于,提供各种标准处理器根单元类型(例如,通用处理器、协议处理器等等),其可访问公用内容存储器或全局内容存储器,这意味着其也有可能执行方便地要求不同类型的标准处理器根单元的任务或线程。另一个优势在于,这增加了全局内容存储器和多线程处理器资源的利用水平。此外,各种标准处理器根单元类型对公用内容的访问或与全局内容存储器的连接会最小化单个的处理器类型之间的相互通信。处理器类型之间的最小化相互通信同样导致多线程处理器资源的更好的利用水平以及多线程处理器的较高的性能指标。另外,各种标准处理器根单元类型的利用会最小化整个系统的封锁概率。
从属权利要求的优势包括带有共享内容的异构型并行多线程处理器(HPMT)的开发和改善。
根据一个优选开发,每个标准处理器根单元都具有用于解码程序指令和提取在程序指令中寻址的操作数的指令解码/取操作数单元。
根据另一个优选开发,每个标准处理器根单元都具有用于执行解码的程序指令的指令执行单元。
根据另一个优选开发,每个标准处理器根单元都具有用于写回已执行的程序指令的操作结果的写回单元。
根据另一个优选开发,每个标准处理器根单元都被耦合于一个关联的处理器控制单元。
根据另一个优选开发,每个全局内容存储器都具有一个用于缓冲存储程序计数器的程序计数寄存器、用于缓冲存储操作数的寄存器组以及用于缓冲存储状态标志的状态寄存器。
根据另一个优选开发,标准处理器根单元的数目(K*M)少于或等于全局内容存储器的数目(N)。
这个优选开发的一个优势在于,其意味着具有在任意时刻对(K*M个)标准处理器根单元有效的、来自不同线程的充分的程序指令。这意味着没有或最小化等待时间的发生。
根据另一个优选开发,至少提供一个指令缓冲存储器,其可被划分为N个(可被线程控制单元所寻址)指令缓冲存储器,N个指令缓冲存储器中的每一个都可连接于任意的标准处理器根单元。
这个优选开发的一个优势在于,由于等待时间的减少而封锁概率也随之被最小化,因而N个指令缓冲存储器意味着来自N个线程的程序指令可在任意时刻用于(K*M个)标准处理器根单元。
根据另一个优选开发,为使线程控制单元读程序指令,指令缓冲存储器可被连接于一个或多个指令存储器,其中从指令存储器读取的程序指令被全局内容存储器的程序计数寄存器中的程序计数器所寻址。
根据另一个优选开发,相当于可从指令缓冲存储器中同步读取(K*M条)程序指令。
根据另一个优选开发,标准处理器根单元将已处理的数据经由数据总线发送给数据存储器。
根据另一个优选开发,在流水线处理中,每个标准处理器根单元通过线程控制单元顺序地处理向其提供的程序指令。
根据另一个优选开发,如果所提供的指令不是数据访问指令,则每个标准处理器根单元在预定数目的时钟周期内处理该程序指令。
这个优选开发的一个优势在于,用于处理程序指令的预定数目的时钟周期确保整个系统的实时能力。
根据另一个优选开发,所提供的指令缓冲存储器的数目相应于全局内容存储器的数目(N),每个指令缓冲存储器由相应的线程索引所选择,这意味着每个线程或内容存储器具有为其提供的专用的指令缓冲存储器,指令缓冲存储器优先根据FIFO(先进—先出)机构来缓冲存储并前移程序指令。
这具有的优势在于,来自每个线程的程序指令在标准处理器根单元的序列上游中是现行的。当在标准处理器根单元中存在线程改变时,这最小化了切换时间。
根据另一个优选开发,线程控制单元在其输入中接收事件控制信号,在其输出中缓冲存储内部状态并生成多路复用器控制信号。
这个优选开发的一个优势在于,全局内容存储器中的程序计数寄存器所读取的程序指令的寻址以及线程控制单元利用多路复用器控制信号对其进行的控制意味着由线程控制单元在时钟周期的敏感基础上控制指令缓冲存储器的填充,即,控制是有效的,以便于在任何时钟周期内,每个标准处理器根单元的每个流水线站都被连接于相应的全局内容存储器。通过线程控制单元进行的中央控制允许指令缓冲存储器的最佳填充和随之的封锁概率的最小化。
根据另一个优选开发,事件控制信号包括内部事件控制信号和外部事件控制信号。
根据另一个优选开发,内部事件控制信号由标准处理器根单元所生成。
该优选开发的一个优势在于,其意味着线程控制单元接收的数据和何种操作模式位于单个的标准处理器根单元中相关,以使线程控制单元能相应地反作用于单个的标准处理器根单元的各种模式。从这些数据开始,线程控制单元生成多路复用器控制信号,其在时钟周期敏感基础上被传送给合适的多路复用器,用于多路复用器的控制。
根据另一个优选开发,外部事件控制信号由外部设备所生成,例如中断或外部存储器。
根据另一个优选开发,每个标准处理器根单元类型都是DSP处理器的一部分、协议处理器的一部分或通用处理器的一部分。
根据另一个优选开发,标准处理器根单元中的指令执行单元是算法和逻辑单元,或者是地址生成器单元。
根据另一个优选开发,取指令单元由(K*M)xN多路复用器、N条数据线、N个指令缓冲存储器、另外的N条数据线以及Nx(K*M)多路复用器所形成。
根据另一个优选开发,指令解码/取操作数单元解码程序指令并取操作数,其中在程序指令中,从通过多路复用器控制信号所选择的全局内容存储器或用于进一步处理的局部内容存储器潜在地寻址所述操作数。
根据另一个优选开发,线程控制单元具有开关网络,其基于事件控制信号来启动线程控制单元。在该情况下,线程控制单元支持以下功能线程控制单元决定执行哪个线程,以使取指令单元从指令存储器中提取来自这些线程的程序指令。为使取指令单元从来自指令存储器的多个线程中同步提取多个程序指令,线程控制单元提供合适的线程数目t、合适的类型索引p和合适的标准处理器根单元索引q,并从中生成多路复用器控制信号。
根据另一个优选开发,线程控制单元中的开关网络具有至少一个线程索引缓冲存储器,其存储一组用于执行的线程,其中线程具有至少一个线程索引和为其提供的相应的线程状态(就绪、等待)。
根据另一个优选开发,线程控制单元中的开关网络具有至少一个标准处理器根单元数目缓冲存储器,其缓冲存储类型索引和标准处理器根单元索引,为执行程序指令的目的,线程控制单元利用类型索引和标准处理器根单元索引来寻址相应的标准处理器根单元。
根据另一个优选开发,类型索引和标准处理器根单元索引形成标准处理器根单元数目。
这个优选开发的一个优势在于,所形成的标准处理器根单元数目允许任意的标准处理器根单元类型的任意的标准处理器根单元被明确寻址。
根据另一个优选开发,线程索引缓冲存储器和标准处理器根数目缓冲存储器分别是FIFO(先进—先出)形式的存储器。
根据另一个优选开发,如果特定线程未被标准处理器根单元所处理,则基于事件控制信号,引用特定线程的线程索引被缓冲存储于线程控制单元中的线程索引缓冲存储器。
根据另一个优选开发,为提供N个提取的线程索引以及执行来自N个线程的程序指令,基于事件控制信号、利用开关网络、从线程索引缓冲存储器中提取不多于N个的线程索引。
根据另一个优选开发,如果来自线程的程序指令没有被相应的标准处理器根单元所处理,则基于事件控制信号,标准处理器根单元数目寻址特定的标准处理器根单元并被缓冲存储于标准处理器根单元数目缓冲存储器中。
根据另一个优选开发,基于事件控制信号、利用开关网络、从标准处理器根单元数目缓冲存储器中提取不多于(K*M)个的标准处理器根单元数目,其意味着寻址的标准处理器根单元利用标准处理器根单元数目来执行程序指令。
根据另一个优选开发,线程控制单元使用从线程索引缓冲存储器提取的线程索引以及从标准处理器根数目缓冲存储器提取的标准处理器根单元数目,以生成多路复用器控制信号,其意味着通过提取的标准处理器根单元数目而被引用的标准处理器根单元来执行自通过提取的线程索引而被引用的线程的程序指令。
根据另一个优选开发,当程序指令的地址或来自通过线程索引而被引用的线程(其被通过标准处理器根单元数目而引用的标准处理器根单元所执行)的程序指令位于多线程处理器中的一个合适的位置时,多路复用器控制信号在各自相应的时钟周期内分别控制Nx(K*M)多路复用器和(K*M)xN多路复用器。
根据另一个优选开发,全局内容存储器的内容可被任意的标准处理器根单元类型的任意的标准处理器根单元所执行,而局部内容存储器的内容可仅被耦合于局部内容存储器的标准处理器根单元类型的标准处理器根单元所执行。
根据另一个优选开发,局部内容存储器具有用于缓冲存储操作数的局部寄存器组以及用于缓冲存储状态标志的局部状态寄存器。
本发明的典型实施例将在附图中描述并在下文中详细解释。附图中的同一参考符号表示同一部件或具有相同功能的部件。


图1展示了带有共享内容的并行多线程处理器的框图;图2展示了基于本发明的带有共享内容的异构型并行多线程处理器的框图;以及图3展示了具有创造性的带有共享内容的异构型并行多线程处理器中的线程控制单元的示意框图。
尽管下面将根据处理器或微处理器或它们的体系结构来描述本发明,然而并不局限于此,而是能以多种方式来使用。
图2展示了基于本发明的带有共享内容的异构型并行多线程处理器的框图。在该情况下,参考符号1表示异构型并行多线程处理器,其被耦合于指令存储器7和数据总线8。此外,多线程处理器1包括M种不同的标准处理器根单元类型2p,其中p∈[1,...,M]。每个标准处理器根单元类型2p具有一个或多于K个的并联标准处理器根单元2pq,其中q∈[1,...,M]。每个标准处理器根单元类型2p都被耦合于N个局部内容存储器32pt。多线程处理器1还具有M个全局内容存储器3t,其中t∈[1,...,N]。每个标准处理器根单元2pq都被耦合于处理器控制单元5pq。多线程处理器1还具有N个指令缓冲存储器6t、Nx(K*M)路复用器10和(K*M)xN多路复用器11。
特定的标准处理器根单元类型2p的标准处理器根单元2pq的数目K依赖于每个其它的标准处理器根单元2p的标准处理器根单元2pq的数目K。不同的标准处理器根单元类型2p的数目M可被自由设置,且特定的标准处理器根单元类型2p的标准处理器根单元2pq的数目K也可被自由设置。因此,例如,标准处理器根单元类型21(p=1)的多线程序处理器1能以DSP处理器的形式而具有两个单元211、212,且标准处理器根单元类型22(P=2)的多线程处理器1能以协议处理器的形式而具有三个单元221、222和223。因此,N、M、K是可被安装于多线程处理器1的硬件中的最大数目,而t、p、q是用于对多线程处理器1中的各个单元寻址的变量。
每个标准处理器根单元2pq具有指令解码/取操作数单元2pq`、指令执行单元2pq``和写回单元2pq```,指令解码/取操作数单元2pq`、指令执行单元2pq``和写回单元2pq```被设置成用于基于流水线处理的处理指令。
取指令单元17具有(K*M)xN多路复用器11、N条数据线144,N个指令缓冲存储器6t,另外的N条数据线145以及Nx(K*M)多路复用器10。
处理器控制单元5pq利用内部控制信号12pq`、12pq``、12pq```来控制耦合的标准处理器根单元2pq。在该情况下,用于指令解码/取操作数单元的第一内部控制信号12pq`控制指令解码/取操作数单元12pq`。用于指令执行单元的第二内部控制信号12pq``控制指令执行单元2pq``,以及用于写回单元的第三内部控制信号12pq```控制写回单元2pq```。
每个全局内容存储器3t具有程序计数寄存器3t`,寄存器组3t``以及状态寄存器3t```。程序计数寄存器3t`存储线程T的程序计数器。Nx(K*M)多路复用器10被用于将N个线程T的N个程序计数寄存器3t`置于(K*M)-通道地址总线16。
取指令单元17经由(K*M)-通道数据总线13从指令存储器7中读取来自线程T的(K*M)个程序指令(该程序指令被程序计数寄存器3t`的数据内容所引用)。已被读取的数据内容经由(K*M)xN多路复用器11而被传送给N个指令缓冲存储器6t。N个线程T中的每一个都具有为其提供的关联指令缓冲存储器6t。Nx(K*M)多路复用器10用于将来自N个指令缓冲存储器6t的(K*M)个程序指令置于(K*M)数据线141。被置于数据线141上的(K*M)个程序指令分布在(K*M)个标准处理器根单元2pq。
全局内容存储器3t以不限定类型的方式存储部分线程或线程。相对于此,局部内容存储器32pt以不限定类型的方式存储部分线程。局部内容存储器32pt具有用于缓冲存储操作数的局部寄存器组32pt``和用于缓冲存储状态标志的局部状态寄存器32pt```。具有它们的输入和输出的局部内容存储器32pt通过各自的KxK多路复用器10p`而耦合于合适的标准处理器根单元类型2p。
例如,标准处理器根单元2pq中的指令解码/取操作数单元2pq`对来自线程Tt的指令解码。来自线程Tt的解码程序指令尤其包括执行后续指令所要求的操作数的地址。寻址数据内容或操作数被存储于为线程Tt所提供的内容存储器3t,更确切地说是在内容存储器3t中的寄存器组3t`中。Nx(K*M)多路复用器10用于将操作数的数据内容从寄存器组3t`传送到标准处理器根单元2pq`中的指令解码/取操作数单元2pq`,其中线程控制单元4利用多路复用器控制信号<t,q>[e]来控制Nx(K*M)多路复用器10。借助多路复用器控制信号<t,p,q>来控制多路复用器(10,11),以使正确的内容存储器3t被连接于正确的标准处理器根单元2pq的合适的流水线。标准处理器根单元2pq中的指令执行单元2pq``利用从寄存器3t提取的操作数来执行来自线程Tt的指令中所包含的算法和逻辑运算。
当已利用提取的操作数执行了算法和逻辑运算时,操作数或附加符号或标志的结果通过写回单元2pq```而置于数据线142上。
在存储指令的情况下,相同的数据内容被潜在地另外置于数据线143上。(K*M)数据线143被用于将多线程处理器1耦合到数据总线8。来自(K*M)标准处理器根单元2pq的(K*M)结果的数据内容经由数据总线8而被传送给外部存储器。
(K*M)xN多路复用器11用于从数据线142取线程Tt或附加符号或标志的操作结果并将算法和逻辑运算的结果传送给内容存储器3t的寄存器组3t`,将附加符号或标志传送给内容存储器3t的状态寄存器3t``。
借助于Nx(K*M)多路复用器10,N个状态寄存器3t```的数据内容被传送给(K*M)处理器控制单元5pq。处理器控制单元5pq取状态寄存器3t```的数据内容并生成内部控制信号,即用于指令解码/取操作数单元12pq`的内部控制信号,用于指令执行单元12pq``的内部控制信号和用于写回单元2pq```的内部控制信号。
线程控制单元4使用多路复用器控制信号<t,p,q>[a]-<t,p,q>[j]来控制多路复用器10和11。多路复用器控制信号<t,p,q>表示哪个线程Tt被哪个标准处理器根单元2pq所处理,其中t是各自的线程T的线程索引,p是各自的标准处理器根单元类型2p的类型索引,q是各自的标准处理器根单元2pq的标准处理器根单元索引。
Nx(K*M)多路复用器10具有将数据从N通道数据总线置于(K*M)-通道数据总线的功能。
(K*M)xN多路复用器11具有将数据从(K*M)通道数据总线置于N-通道数据总线的功能。
(K*M)内部事件控制信号9pq`尤其包括,封锁线程T的相关数据、内部中断、等待时间和异常事件信号,并使这些数据对线程控制单元有效。
外部设备使外部事件控制信号9``对线程控制单元有效。例如这些是由外部设备所生成的外部中断。
这些例子是外部中断,是由外部设备产生的。
图3展示了带有共享内容的创造性的异构型并行多线程处理器中的线程控制单元的示意框图。
线程控制单元4具有开关网络18、线程索引缓冲存储器19和标准处理器根单元数目缓冲存储器20。
线程索引缓冲存储器19缓冲存储线程索引t。标准处理器根数目缓冲存储器20缓冲存储标准处理器根单元数目pq,这些分别从类型索引p和标准处理器根单元索引q中生成。
线程控制单元4的输入接收内部事件控制信号9pq`(911`,...,9MK`)和外部事件控制信号9``。现在处理输入所接收的控制信号,然后借助于开关网络18,线程索引缓冲存储器19和标准处理器根数目缓冲存储器20。处理生成多路复用器控制信号<t,p,q>[a]-<t,p,q>[j]并在合适的时钟周期内将其传送给合适的Nx(K*M)多路复用器10(未示出)或合适的(K*M)xN多路复用器11(未示出)。
尽管上文已根据优选的典型实施例来描述了本发明,但本发明并不仅限于此,而是能以多种方式被修改。
参考符号列表1. 多线程处理器M 不同的标准处理器根单元类型(SPRET)的数目P 类型索引;p∈[1,..,M]N 不同的全局内容存储器的数目t 线程索引;t∈[1,..,N]K 各个SPRET的标准处理器根单元(SPRE)的数目q 标准处理器根单元索引;q∈[1,...,K]Pq标准处理器根单元数目T 线程2p标准处理器根单元类型(SPRET);p∈[1,...,M]2pqSPRETp的第q个SPRE;p∈[1,..,M]2pq` 指令解码/取指令单元2pq`` 指令执行单元2pq``` 写回单元3t第t个全局内容存储器;t∈[1,..,N]3t`第t个程序计数寄存器;t∈[1,..,N]3t`` 第t个寄存器组;t∈[1,..,N]3t``` 第t个状态寄存器;t∈[1,..,N]32ptSPRE的局部内容存储器32pt`` SPRE的局部寄存器组32pt```SPRE的局部状态寄存器4. 线程控制单元5pq处理器控制单元6t指令缓冲存储器7. 指令存储器8. 数据总线9. 事件控制信号9pq` 内部事件控制信号9``外部事件控制信号10 Nx(K*M)多路复用器10p` KxK多路复用器
11(K*M)xN多路复用器12内部控制信号12pq`指令解码/取操作数单元的内部控制信号12pq`` 指令执行单元的内部控制信号12pq``` 写回单元的内部控制信号<t,p,q> 多路复用器控制信号13(K*M)-通道数据总线14数据线15N-通道数据线16(K*M)-通道地址总线17取指令单元18. 开关网络19. 线程索引缓冲存储器20. 标准处理器根数目缓冲存储器PMT 并行多线程处理器SPRE 标准处理器根单元SPRE` 指令解码/取操作数单元SPRE``指令执行单元SPRE``` 写回单元KS内容存储器PZR 程序计数寄存器RB寄存器组SR状态寄存器TK线程控制单元PKE 处理器控制单元BZS 指令缓冲存储器BS指令存储器DB数据总线ESS 事件控制信号ESS` 内部事件控制信号ESS`` 外部事件控制信号NxM MUX NxM多路复用器
MxN MuxMxN多路复用器IntSS 内部控制信号intSS` 指令解码/取操作数单元的内部控制信号intSS``指令执行单元的内部控制信号intSS``` 写回单元的内部控制信号t 线程数目p 标准处理器根数目<t,p> 多路复用器控制信号DB 数据总线AB 地址总线DL 数据线BHE取指令单元
权利要求
1.一种带有共享内容的异构型并行多线程处理器,包括(a)多个(M个)并联标准处理器根单元类型(2p;p∈[1,……,M]),其中每个各自的标准处理器根单元类型(2p)具有至少一个或多个(K个)并联的标准处理器根单元(2pq;q∈[1,……,K]),所述标准处理器根单元用于执行来自各种线程(T)的程序指令的指令,其中每个标准处理器根单元(2pq)具有至少一个指令解码/取操作数单元(2pq`)和指令单元(2pq``),每个标准处理器根单元类型(2p)具有N个局部内容存储器(32pt),其每个都缓冲存储线程的当前处理器状态部分,而每个内容存储器(3t;32pt)包括至少一个寄存器(3t`,3t``,3t```,3pt``,32pt```);(b)多个(N个)全局内容存储器(3t;t∈[1,……,N]),其每一个都缓冲存储线程的当前处理器状态部分;(c)还具有线程控制单元(4),其生成用于控制多路复用器(10,11)的多路复用器控制信号(<t,p>),由此任意的标准处理器根单元(2pq)都可被连接到任意的全局内容存储器(3t)。
2.根据权利要求1所述的多线程处理器,其中每个标准处理器根单元(2pq)都具有用于解码程序指令和用于提取被编址于所述程序指令中的操作数的指令解码/取操作数单元(2pq`)。
3.根据上述权利要求之一所述的多线程处理器,其中每个标准处理器根单元(2pq)都具有用于执行所解码的程序指令的指令执行单元(2pq``)。
4.根据上述权利要求之一所述的多线程处理器,其中每个标准处理器根单元(2pq)都具有写回单元(2pq```),用于写回所执行的程序指令的操作结果。
5.根据上述权利要求之一所述的多线程处理器,其中每个标准处理器根单元(2pq)都被耦合于关联的处理器控制单元(5pq)。
6.根据上述权利要求之一所述的多线程处理器,其中每个全局内容存储器(3t)都具有用于缓冲存储程序计数器的程序计数寄存器(3t`)、用于缓冲存储操作数的寄存器组(3t``)以及用于缓冲存储状态标志的状态寄存器(3t```)。
7.根据上述权利要求之一所述的多线程处理器,其中标准处理器根单元(2pq)的数目(K*M)小于或等于全局内容存储器(3t)的数目(N)。
8.根据上述权利要求之一所述的多线程处理器,其中提供至少一个指令缓冲存储器,所述指令缓冲存储器可分为N个指令缓冲存储器(6t)(可被所述线程控制单元(4)所寻址),N个指令缓冲存储器(6t)中的每一个都可被连接于任意的标准处理器根单元(2pq)。
9.根据上述权利要求之一所述的多线程处理器,其中所述的指令缓冲存储器(6t)可被连接于一个或多个指令存储器(7),以使所述线程控制单元(4)读取程序指令,从所述指令存储器(7)中读取的程序指令可被全局内容存储器(3t)的程序计数寄存器(3t`)中的程序计数器所寻址。
10.根据上述权利要求之一所述的多线程处理器,其中一直到(K*M)条程序指令都可从指令缓冲存储器(6t)中同步读取。
11.根据上述权利要求之一所述的多线程处理器,其中所述标准处理器根单元(2pq)将处理的数据经由数据总线(8)发送给数据存储器。
12.根据上述权利要求之一所述的多线程处理器,其中每个标准处理器根单元(2pq)在流水线过程中通过所述线程控制单元(4)来顺序地处理向其提供的程序指令。
13.根据上述权利要求之一所述的多线程处理器,其中如果所提供的指令不是数据访问指令,则每个标准处理器根单元(2pq)在预定数目的时钟周期内处理所述程序指令。
14.根据上述权利要求之一所述的多线程处理器,其中所提供的指令缓冲存储器(6t)的数目相应于全局内容存储器(3t)的数目(N),其中每个指令缓冲存储器(6t)都由相应的线程索引(t)所启动。
15.根据上述权利要求之一所述的多线程处理器,其中线程控制单元(4)在其输入上接收事件控制信号(9)、缓冲存储内部状态并在其输出上提供多路复用器控制信号(<t,p,q>)。
16.根据上述权利要求之一所述的多线程处理器,其中事件控制信号(9)包括内部事件控制信号(9pq`)和外部事件控制信号(9pq``)。
17.根据上述权利要求之一所述的多线程处理器,其中内部事件控制信号(9pq`)由标准处理器根单元(2pq)所生成。
18.根据上述权利要求之一所述的多线程处理器,其中外部事件控制信号(9``)由外部模块所生成。
19.根据上述权利要求之一所述的多线程处理器,其中所述每个标准处理器根单元类型(2p)是DSP处理器、协议处理器或通用处理器的一部分。
20.根据上述权利要求之一所述的多线程处理器,其中所述标准处理器根单元(2pq)中的所述指令执行单元(2pq``)是算法和逻辑单元(ALU)或地址生成器单元(AGU)。
21.根据上述权利要求之一所述的多线程处理器,其中取指令单元(17)由(K*M)xN多路复用器(11)、N条数据线(144)、N个指令缓冲存储器(6t)、另外的N条数据线(145)和Nx(K*M)多路复用器(10)所形成。
22.根据上述权利要求之一所述的多线程处理器,其中所述指令解码/取操作数单元(2pq`)解码所述程序指令并提取操作数,其中在所述程序指令内、从借助于多路复用器控制信号(<t,p,q>)而选择的全局内容存储器(3t)或从用于进一步处理的局部内容存储器(32pt)中潜在地寻址所述操作数。
23.根据上述权利要求之一所述的多线程处理器,其中所述线程控制单元(4)具有开关网络(18),该开关网络基于所述事件控制信号(9)来启动所述线程控制单元(4)。
24.根据上述权利要求之一所述的多线程处理器,其中所述线程控制单元(4)中的所述开关网络(18)具有至少一个线程索引缓冲存储器(19),其存储一组用于执行的线程(T),该线程(T)具有至少一个线程索引(t)和向其提供的相应的线程状态(就绪,等待)。
25.根据上述权利要求之一所述的多线程处理器,其中所述线程控制单元(4)中的所述开关网络(18)具有至少一个缓冲存储所述类型索引(p)和标准处理器根单元索引(q)的标准处理器根数目缓冲存储器(20),为执行程序指令,所述线程控制单元(4)利用类型索引(p)和标准处理器根单元索引(q)来寻址相应的标准处理器根单元(2pq)。
26.根据上述权利要求之一所述的多线程处理器,其中所述类型索引(p)和所述标准处理器根单元索引(q)形成标准处理器根单元数目(pq)。
27.根据上述权利要求之一所述的多线程处理器,其中所述线程索引缓冲存储器(19)和所述标准处理器根数目缓冲存储器(20)分别是FIFO(先进先出)形式的存储器。
28.根据上述权利要求之一所述的多线程处理器,其中如果所述线程(T)未被标准处理器根单元(2pq)所处理,则基于所述事件控制信号(9),用于寻址线程(T)的线程索引(t)被缓冲存储于所述线程控制单元(4)中的所述线程索引缓冲存储器(19)中。
29.根据上述权利要求之一所述的多线程处理器,其中为了提供N个所提取的线程索引(t)以及为了执行来自所述N个线程(T)的程序指令,利用所述开关网络(18)、基于所述事件控制信号(9)、从所述线程索引缓冲存储器(19)提取不多于N个的线程索引(t)。
30.根据上述权利要求之一所述的多线程处理器,其中如果来自线程(T)的程序指令没有被特定的标准处理器根单元(2pq)所处理,则基于所述事件控制信号(9)、所述标准处理器根单元数目(pq)寻址特定的标准处理器根单元(2pq)且被缓冲存储于所述标准处理器根数目缓冲存储器(20)中。
31.根据上述权利要求之一所述的多线程处理器,其中利用所述开关网络(18)、基于所述事件控制信号(9)、从所述标准处理器根数目缓冲存储器(20)中提取不多于(K*M)个的标准处理器根单元数目(pq),这意味着所寻址的所述标准处理器根单元(2pq)利用所述标准处理器根单元数目(pq)来执行程序指令。
32.根据上述权利要求之一所述的多线程处理器,其中所述线程控制单元(4)使用从所述线程索引缓冲存储器(19)所提取的线程索引(t)以及从所述标准处理器根数目缓冲存储器(20)所提取的标准处理器根单元数目(pq)来生成多路复用器控制信号(<t,p,q>)并由此控制多路复用器(10,11),这意味着通过所提取的标准处理器根单元数目(pq)而引用的标准处理器根单元(2pq)执行来自于通过所提取的线程索引(t)而引用的线程(T)的程序指令。
33.根据上述权利要求之一所述的多线程处理器,其中当来自通过所述线程索引(t)而被引用的线程(T)(通过所述标准处理器根单元数目(pq)而被引用的标准处理器根单元(2pq)执行所述线程)的所述程序指令的地址或所述程序指令位于所述多线程处理器(1)中的合适位置时,所述多路复用器控制信号(<t,p,q>)在各自相应的时钟周期内分别控制Nx(K*M)多路复用器(10)和(K*M)xN多路复用器(11)。
34.根据上述权利要求之一所述的多线程处理器,其中全局内容存储器(3t)的内容可被任意的标准处理器根单元类型(2p)的任意的标准处理器根单元(2pq)所执行,且其中局部内容存储器(32pt)的内容可被耦合于所述局部内容存储器(32pt)的所述标准处理器根单元类型(2p)的标准处理器根单元(2pq)所专门执行。
35.根据上述权利要求之一所述的多线程处理器,其中局部内容存储器(32pt)具有用于缓冲存储操作数的局部寄存器组(32pt``)和用于缓冲存储状态标志的局部状态寄存器(32pt```)。
全文摘要
本发明涉及一种带有共享内容的异构型并行多线程处理器(1),其具有多个(M个)并联的标准处理器根单元类型(文档编号G06F9/38GK1758213SQ20051006565
公开日2006年4月12日 申请日期2005年2月28日 优先权日2004年2月27日
发明者拉约什·高日, 林纪南, 森克·梅尔加特, 聂晓宁 申请人:印芬龙科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1