CN102043755B - 可重组态处理装置及其系统 - Google Patents
可重组态处理装置及其系统 Download PDFInfo
- Publication number
- CN102043755B CN102043755B CN 200910207738 CN200910207738A CN102043755B CN 102043755 B CN102043755 B CN 102043755B CN 200910207738 CN200910207738 CN 200910207738 CN 200910207738 A CN200910207738 A CN 200910207738A CN 102043755 B CN102043755 B CN 102043755B
- Authority
- CN
- China
- Prior art keywords
- processing unit
- instruction
- time
- reconfiguration
- requires
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Abstract
一种可重组态处理装置及其系统。该可重组态处理装置,包括多个处理单元与至少一指令同步控制电路及至少一组组态存储器。每一个处理单元具有暂停要求输出信号产生电路,暂停要求输出信号产生电路用以输出暂停要求输出信号,其中,暂停要求输出信号用以表示处理单元发生了非预期的执行暂停。处理单元另具有暂停要求输入信号,该处理单元以外的电路可藉由该暂停要求输入信号,控制该处理单元是否暂停执行。指令同步控制电路根据组态存储器所储存的内容与上述多个处理单元的暂停要求输出信号产生多个处理单元的暂停要求输入信号,进而决定处理单元间的指令同步与工作模式。
Description
技术领域
本发明涉及一种用于电子产品的处理装置,特别是涉及一种具有多个处理单元(Processing Unit,简称为PU)的可重组态(Configurable)处理装置及其系统。
背景技术
目前,计算机或其它较为高阶的电子产品皆有中央处理器,此中央处理器是一种处理装置,用来处理数据与执行指令。随着工艺技术的进步,处理装置越来越能够微型化,而且在单一个处理装置中,还能够配置多个处理单元来同时处理数据与执行指令,例如:Intel公司所推出的双核心或四核心的中央处理器。
请参照图1A,图1A是传统的处理装置10的系统方块图,其中,此处理装置10是采用单一指令单一数据(Single Instruction Single Data,简称为SISD)的架构。如同图1A所示,处理装置10具有一个处理单元101、一个数据缓冲器102与一个指令缓冲器103。处理单元10每一次会自数据缓冲器102所储存的多笔数据中撷取一笔数据给处理单元101,并自指令缓冲器103所储存的多笔指令中撷取一笔指令给处理单元101。处理单元101会执行其所接收到的指令,并根据其接收到的指令处理其所接收到的数据。
请参照图1B,图1B是传统的处理装置11的系统方块图,其中,此处理装置11是采用多指令单一数据(Multiple Instructions Single Data,简称为MISD)的架构。如同图1B所示,处理装置11具有多个处理单元111与112、一个数据缓冲器113与一个指令缓冲器114。处理单元11每一次会自数据缓冲器113所储存的多笔数据中撷取一笔数据给处理单元111与112,并自指令缓冲器114所储存的多笔指令中撷取数笔指令给处理单元111与112。处理单元111与112会分别执行其所接收到的指令,并根据此接收到的指令处理其所接收到的数据。此种MISD架构的处理装置11一次能根据多笔指令对同一笔数据分别进行处理。
请参照图1C,图1C是传统的处理装置12的系统方块图,其中,此处理装置12是采用SIMD的架构。如同图1C所示,处理装置11具有多个处理单元121、122与123、一个数据缓冲器124与一个指令缓冲器125。处理单元12每一次会自数据缓冲器124所储存的多笔数据中撷取多笔数据给处理单元121~123,并自指令缓冲器125所储存的多笔指令中撷取一笔指令给处理单元121~123。处理单元121~123会分别执行其所接收到的指令,并根据其接收到的指令处理其所接收到的数据。
接着,请参照图1D,图1D是传统的处理装置13的系统方块图,其中,此处理装置13是采用MIMD的架构。如同图1D所示,处理装置13具有多个处理单元131~134、一个数据缓冲器137与一个指令缓冲器138。处理单元13每一次会自数据缓冲器137所储存的多笔数据中撷取多笔数据给处理单元131~136,并自指令缓冲器138所储存的多笔指令中撷取多笔指令给处理单元131~136。
请参照图2A,图2A是传统的处理装置14的系统方块图,其中,此处理装置14是采用极长指令(Very Long Instruction Word,简称为VLIW)的架构。处理装置14具有多个处理单元141、142与143、一个数据缓冲器144、一个指令缓冲器145与共享资源缓冲器146。VLIW架构的处理装置14所执行的指令字符长度较长,此指令字符(包含多笔指令)可以在一个周期(Cycle)内被处理。
请参照图2B,图2B是指令缓冲器145所储存的指令的示意图,其中,VLIW架构的处理装置14自指令缓冲器145中撷取(Fetch)指令。指令缓冲器145所储存的指令是经过软件编译(Compile)之后所产生的汇编语言或其它类型的机器码,在第一个周期中,指令缓冲器145中的地址41x00~41x04的指令会被当成一个指令字符(Instruction Word)读出,处理单元141~143分别接收指令字符中的指令,亦即分别接收地址41x00~41x04的指令。接着,处理单元141~143分别处理其所接收到的指令(分别为地址41x00~41x04的指令)。详细地说,处理单元141会将寄存器r5与l3的内容相加(r5为通用寄存器(Global Register)存在于共享资源缓冲器146内,l3为区域寄存器(Local Register)存在于处理单元141内),并将相加的结果储存寄存器r5;处理单元142会将寄存器r6与r5的内容相加,并将相加的结果储存到共享资源缓冲器146内的寄存器r6;而处理单元143会将寄存器r7与r8的内容作逻辑和(AND)运算,并将运算后的结果储存到共享资源缓冲器146的寄存器r7。
之后,在第二个周期中,指令缓冲器145中的地址41x06~41x0A的指令会被当成一个指令字符(Instruction Word)读出,处理单元141~143分别接收指令字符中的指令,亦即分别接收地址41x06~41x0A的指令。接着,处理单元141~143分别处理其所接收到的指令(分别为地址41x06~41x0A的指令)。详细地说,处理单元141会将寄存器r1与r2的内容作逻辑或(OR)运算,并将运算后的结果储存共享资源缓冲器146与寄存器r1;处理单元142会将寄存器r4与r5的内容相减,并将相减的结果储存到寄存器r4;而处理单元143会将寄存器r9与r7的内容作逻辑或(OR)运算,并将运算后的结果储存到寄存器r9。
值得注意的是,在第一个周期中,寄存器r5的内容被更新,而在第二个周期中,处理单元142需通过资源共享缓冲器146来获得寄存器r5更新后的内容。因此,资源共享缓冲器146可以让每一个处理单元141~143共享其已经处理更新后的内容。
在影像处理系统中,若采用VLIW或SIMD架构的处理器,则能够节省不少时间。但是,对于处理文件的程序中,VLIW或SIMD架构的处理器则不一定能够获得上述的优点。因此,处理装置若能针对不同需求改变其组态,将可以使其处理装置的效能上升。
以下就处理单元可能发生执行暂停的情况进行说明,请参照图3,图3是处理单元发生数据危障(Hazard)并暂停执行的示意图。在此例子中,处理单元为管线结构的处理单元,其管线级依序为:指令撷取、指令译码、指令执行、数据存取、结果写入等五级,且其共享资源寄存器r0~r15具有危障检测电路可以检测危障的发生并指示做适当的管线级暂停,另具有转送(Forward)电路让处理单元将结果数据转送至前面的管线级,以让执行后更新的数据可以在被写至寄存器前被其它指令所使用。
在时间t1时,指令Ld r5,x3会被撷取。在时间t2时,指令Sub r6,r5会被撷取,同时,指令Ld r5,x3会被译码。在时间t3时,Ld r5,x3处于指令执行管线级,同时,指令And r7,r5会被撷取,且指令Sub r6,r5会被译码。在时间t4时,地址x3的数据会被读入处理单元,数据在时间t5被写入寄存器r5中。在此例,编程者或编译器预期指令Sub r6,r5所使用寄存器r5的内容为指Ld r5,x3从地址x3读回的新数据,此时危障检测电路检测到危障的发生,因此,在图3中,在时间t4时,指令Sub r6,r5会先暂停指令执行管线级,直到时间t5,存储器地址x3的数据读入至处理单元为止。在时间t5,存储器地址x3的数据经由转送电路,在尚未被写入寄存器r5前直接转送给在指令执行管线级的指令Sub r6,r5,使其能够立即进行指令执行。另外,在时间t4暂停执行时,后面的指令And r8,r5与Or r9,r5,分别在解碼与撷取管线级,也必须一起暂停。
接着,请参照图4A与4B,图4A与4B分别是处理单元发生指令撷取暂停与数据存取暂停的示意图。在图4A的例子中,在时间t1时,因为处理单元在撷取指令时数据未妥,因此,在时间t1与t2时,此处理单元指令撷取管线级暂停,等待指令于进入处理单元。在时间t3时,指令数据可以顺利地进入处理单元,接着,处理单元便能在时间t4时顺利地进行指令译码,而下一个指令也才能进入处理单元的指令撷取管线。在图4B的例子中,在时间t4与t5时,处理单元读取存储器地址x3的数据时数据未妥,因此,在时间t4与t5时,此处理单元数据存取管线级暂停,连带前面的管线级也无法继续向下进行,如图中的Sub r6,r4指令,也必须暂停在指令执行管线级,直到时间t6,处理单元读取存储器地址x3的数据时数据备妥顺利地被读入处理单元,管线级才能继续往下进行。
发明内容
本发明的示范实施例是有关于一种可重组态处理装置,所述的可重组态处理装置根据所包括的组态存储器所储存的内容与各处理单元的暂停要求输出信号产生各处理单元的暂停要求输入信号,进而决定处理单元间的指令同步与工作模式。
本发明的示范实施例提供一种可重组态处理装置,此处理装置包括多个处理单元与至少一指令同步控制电路及至少一组组态存储器。每一个处理单元具有暂停要求输出信号,暂停要求输出信号用以输出处理器非预期的暂停执行信号,其中,暂停要求输出信号用以表示处理单元发生了非预期的执行暂停。处理单元还具有暂停要求输入信号,该处理单元以外的电路可藉由该暂停要求输入信号,控制该处理单元是否暂停执行。指令同步控制电路根据组态存储器储存的数据以及上述多个处理单元的暂停要求输出信号,产生多个处理单元的暂停要求输入信号,进而决定处理单元间的指令同步模式与工作模式。
综上所述,本发明的示范实施例,根据组态存储器储存的数据,决定指令同步控制电路如何处理各处理单元非预期的暂停执行的输出与输入信号,使得同一群组的处理单元可以正确地指令同步执行,得到正确的执行结果;而不属于任何群组的处理单元,可以独立地执行指令。另外,同一群组的处理单元,亦根据组态存储器储存的数据,决定群组内的处理单元是否共享群组内其它处理单元所撷取的指令,指令共享组态,则模拟于SIMD模式;而指令不共享的组态则模拟于VLIW模式。因此,上述的可重组态处理装置具有较弹性的执行模式,可动态地改变组态存储器,在不同的应用程序达到较佳的效率。
为使本发明的上述特征和优点能更明显易懂,下文特举示范实施例,并结合附图详细说明如下。
附图说明
图1A是传统的处理装置10的系统方块图,其中,此处理装置10是采用SISD的架构。
图1B是传统的处理装置11的系统方块图,其中,此处理装置11是采用MISD的架构。
图1C是传统的处理装置12的系统方块图,其中,此处理装置12是采用SIMD的架构。
图1D是传统的处理装置13的系统方块图,其中,此处理装置13是采用MIMD的架构。
图2A是传统的处理装置14的系统方块图,其中,此处理装置14是采用VLIW的架构。
图2B是指令缓冲器145所储存的指令的示意图。
图3是处理单元发生数据危障并暂停执行的示意图。
图4A与4B分别是处理单元发生指令暂停与数据存取暂停的示意图。
图5A是同一群组内的两个处理单元PU1与PU2,未发生非预期的暂停执行的示意图。
图5B是同一群组内的两个处理单元PU1与PU2,发生非预期的暂停执行的示意图。
图5C是同一群组内的两个处理单元PU1与PU2,未发生非预期的暂停执行的另一示意图。
图5D是同一群组内的两个处理单元PU1与PU2,发生非预期的暂停执行的另一示意图。
图6A是本发明的示范实施例所提供的一种可重组态处理装置15的系统方块图。
图6B是可重组态处理装置15同时具有SIMD模式与VLIW模式的示意图。
图7A是本发明的示范实施例所提供的指令同步电路154的系统方块图。
图7B是本发明的示范实施例所提供的逻辑函数电路305的电路图。
图7C是本发明的另一示范实施例所提供的逻辑函数电路305的电路图。
图7D是本发明的示范实施例所提供的具有指令共享电路的处理装置的方块图。
图7E是本发明的示范实施例所提供的指令共享电路的细部电路图。
图7F是本发明的另一示范实施例所提供的指令共享电路的细部电路图。
图8A是可重组态处理装置15同时具有独立的SISD或MIMD模式与VLIW模式的示意图。
图8B是图8A的处理单元150~153读取指令的示意图。
图8C是图8A的处理单元150~153读取指令的另一示意图。
图8D是图8C的指令区块253所包含的指令的示意图。
图9A是图6B的处理单元150~153读取指令的示意图。
图9B是图6B的处理单元150~153读取指令的另一示意图。
图10A是本发明的示范实施例所提供的管线处理装置处理非预期的暂停执行的示意图。
图10B是本发明的示范实施例所提供的管线处理装置处理非预期的暂停执行的另一示意图。
图10C是本发明的示范实施例所提供的管线处理装置处理非预期的暂停执行的另一示意图。
图10D是本发明的示范实施例所提供的管线处理装置处理非预期的暂停执行的另一示意图。
图10E是本发明的示范实施例所提供的管线处理装置处理非预期的暂停执行的另一示意图。
图10F是本发明的示范实施例所提供的非管线处理装置处理非预期的暂停执行的示意图。
附图符号说明
10:SISD架构的处理装置
101:处理单元
102:数据缓冲器
103:指令缓冲器
11:MISD架构的处理装置
111、112:处理单元
113:数据缓冲器
114:指令缓冲器
12:SIMD架构的处理装置
121~123:处理单元
124:数据缓冲器
125:指令缓冲器
13:独立的SISD或MIMD架构的处理装置
131~134:处理单元
137:数据缓冲器
138:指令缓冲器
14:VLIW架构的处理装置
141~143:处理单元
144:数据缓冲器
145:指令缓冲器
146:共享资源缓冲器
15:可重组态处理装置
150~153:处理单元
150LRIDC~153LRIDC:区域资源与快取单元
154:指令同步控制电路
156:共享资源电路模块
157:共享寄存器文件与转送(Forward)危障检测电路
158:全域外部存储器与输入输出电路
305:逻辑函数电路
306:组态存储器
700:指令共享电路
701:共享资源电路模块
702~705:处理单元
999:组态存储器
OR_1~OR_4:或门
PU1、PU2:独立的SISD或MIMD模式的群组
VLIW_1:VLIW模式的群组
241~244:指令区块
251~253:指令区块
SIMD_1:SIMD模式的群组
261~263:指令区块
271~272:指令区块
PU3、PU4:独立的SISD或MIMD模式的群组
281~284:指令区块
PU1、PU2、PU3:处理单元
MAX_1~MAX_4:最大数值电路
具体实施方式
本发明的示范实施例提供了多种不同的可重组态处理装置,这些可重组态处理装置内的多个处理单元会根据组态存储器储存的数据,使处理单元被设定为一些VLIW或SIMD模式的群组,未被群组的处理单元可以独立作业,成为一些独立的SISD或MIMD。因此,这些可重组态处理装置可以同时具有VLIW、SIMD与独立的SISD或MIMD架构,以藉此满足不同程序的需求,并且提升其执行指令的效能与处理数据的速度。
为了处理因非预期的暂停执行(stall)所发生的指令不同步问题,上述的可重组态处理装置具有指令同步控制电路。此指令同步控制电路可以接收多个来自各处理单元的暂停要求输出信号,并根据组态存储器的设定及这些暂停要求输出信号产生各处理单元对应的暂停要求输入信号给每一个处理单元。其中,上述的多个暂停要求输出信号可以是处理单元所产生的暂停要求输出信号或非处理单元的组件所产生的暂停要求输出信号,这些暂停要求输出信号用以表示其对应的组件或处理单元发生了非预期的暂停执行。另外,上述的多个暂停要求输入信号,则是用以告知该对应的处理单元必须暂停执行,以使同一群组内的各处理单元得以指令同步,群组指令的执行可以获得正确的结果。
以下将说明多处理单元的指令同步处理情况。请参照图5A,图5A是同一群组内的两个处理单元PU1与PU2,发生非预期的暂停执行的示意图。处理单元PU1与PU2皆是管线结构的处理单元,其管线级依序为:指令撷取、指令译码、指令执行、数据存取、结果写入等五级,在图5A中,处理单元PU1在时间t1撷取指令Ld r5,x3,指令Ld r5,x3在时间t4周期结束时,才能读取得存储器中x3地址的数据,并在时间t5将读取得的数据写入寄存器r5;处理单元PU2在时间t2所撷取的指令为Add r5,r7,指令Addr5,r7在时间t4需取得寄存器r7与寄存器r5的数据,将此两数值相加,接着再将其结果存至寄存器r5。
然而,如图5A,若处理单元PU1与PU2的共享资源寄存器r0~r15不具备危障检测及转送电路,且对于处理单元PU2执行的指令Add r5,r7,而编程者或编译器所预期的寄存器r5的数据为其寄存器r5的旧数据,即处理单元PU1在指令Ld r5,x3读取得存储器中x3地址内容前r5的旧数据,则在此情况,指令Add r5,r7可以立即执行,因此处理单元PU1与PU2不会发生非预期的暂停执行。
反之,如图5B,若处理单元PU1与PU2的共享资源寄存器r0~r15具有危障检测电路可以检测危障的发生并指示做适当的管线级暂停,还具有转送电路让处理单元将结果数据转送至前面的管线级,以使执行后更新的数据可以在被写至寄存器前被其它指令所使用,则当处理单元PU2执行指令Add r5,r7时,编程者或编译器预期所需的寄存器r5的数据为寄存器r5的新数据,也就是所需的数据为处理单元PU1读取得存储器中x3地址内容即将写入r5的新数据,此时发生了数据危障,处理单元PU2在还没有取得存在r5或经由转送电路取得的新r5数据前,必须暂停指令执行及前面的指令译码、指令撷取等管线级,共享资源寄存器的危障检测电路会告知处理单元PU2,处理单元PU2则发出指令执行管线级暂停讯号,通知需同步的所有处理单元,包含PU1与PU2,必须暂停指令执行及前面的指令译码、指令撷取管线级;否则,若处理单元PU2在r5的新数据未取得时,即执行Add r5,r7,则会使得执行的结果与编程者或编译器原所预期的不一致。
相同地,如图5C,若处理单元PU1所使用的寄存器r0~r15不具备危障检测及转送电路,且对于同样于处理单元PU1执行的指令Add r5,r7,编程者或编译器所预期的寄存器r5的数据为其寄存器r5的旧数据,即处理单元PU1在指令Ld r5,x3读取得存储器中x3地址内容前r5的旧数据,则在此情况,指令Add r5,r7可以立即执行,因此处理单元PU1与PU2都不会发生非预期的暂停执行。
接着,如图5D,若处理单元PU1所使用的寄存器r0~r15具有危障检测及转送电路,则当处理单元PU1执行指令Add r5,r7时,编程者或编译器预期所需的寄存器r5的数据为寄存器r5的新数据,也就是所需的数据为处理单元PU1读取得存储器中x3地址内容即将写入r5的新数据,此时,处理单元PU1在还没有取得存在r5或经由转送电路取得的新r5数据前,必须暂停指令执行及前面的指令译码、指令撷取等管线级,共享资源寄存器的危障检测电路会告知处理单元PU1,处理单元PU1则发出指令执行管线级暂停讯号,通知需同步的所有处理单元,包含PU1与PU2,必须暂停指令执行及前面的指令译码、指令撷取管线级。在此例,处理单元PU2虽未牵涉此一数据危障,但是同样暂停指令执行及前面的指令译码、指令撷取等管线级,以维持所有指令排序的一致性,以实现维持其所处理的数据的相依性及结果与编程者或编译器预期的一致,否则会影响后面的指令的同步,破坏编程者或编译器预期所整个程序的执行顺序、行为与结果。
请参照图6A,图6A是本发明的示范实施例所提供的一种可重组态处理装置15的系统方块图。可重组态处理装置15包括处理单元150~153、指令同步控制电路154、组态存储器999、共享资源电路模块156。其中,处理单元150~153可存取其独有的区域资源与快取单元150LRIDC~153LRIDC,处理单元150~153也可存取共享资源电路模块156,包括共享寄存器及对应的转送(Forward)与危障检测电路157、全域外部存储器与输入输出电路158。处理单元150~153皆耦接于指令同步控制电路154、共享资源电路模块156。处理单元150~153的指令与数据,可以来自共享资源电路模块,或其区域资源及快取单元。组态存储器999所储存的内容,注记多处理单元指令同步的设定模式,并可经由使用者设定其初始值,或可由装置内的电路(包含处理单元)动态改变设定值,以决定各处理单元相互间的指令同步的设定模式。指令同步控制电路154会依据组态存储器999的内容以及处理单元的暂停输出信号产生多个暂停要求输入信号Stall_In[0]~Stall_In[3]给处理单元150~153,处理单元150~153会依据这些暂停要求输入信号Stall_In[0]~Stall_In[3]来控制处理单元150~153,藉此,可重组态处理装置15能够具有多种的运作模式。另外,组态存储器999可以有另一部份数据设定,决定处理单元150~153是否共享其它处理单元所撷取的指令,或自行撷取指令。
接着,以组态存储器999所储存的内容以下面的定义,作为说明例子:组态存储器999包含:对应各处理单元的群组卷标gp,注记所对应的处理单元所属的群组编号,或为0或NULL不互属于任何群组;与对应各处理单元的共享指令标志sif,注记所对应的处理单元,是否共享其前一处理单元所取得的指令,或自行撷取指令。例如图6A,处理单元150~153,其群组标签gp皆为0,不属于任何群组,则指令同步控制电路依据此组态存储器999的设定,会使得这些处理单元的Stall_Out信号不造成其它处理器的Stall_In动作,因这些处理单元相互间指令不确保同步。另外,处理单元150~153的共享指令标志sif皆为0,处理单元150~153各别自行撷取指令,不共享其它处理单元所撷取的指令,此时,处理单元150~153各自独立地执行指令,处理单元150~153是独立的四个处理单元,亦即,可重组态处理装置15等同于独立的四个SISD或一MIMD架构的处理装置。
另外,例如图6B,若处理单元150、151的群组标签皆为1,互属于同一群组1,而其共享指令标志sif则分别皆为0,表示处理单元150、151各自撷取指令,指令同步控制电路依据此组态存储器999的设定,会使得处理单元150、151的Stall_Out信号造成处理单元150、151相互间Stall_In的动作,藉此让处理单元150、151指令同步,另由于撷取指令独立,因此,处理单元150、151等同于一VLIW架构的处理装置。另外,若根据组态存储器999的设定,处理单元152、153的群组标签皆为2,互属于另一群组2,则指令同步控制电路依据此组态存储器的设定,使得处理单元152、153的信号造成处理单元152、153相互间Stall_In的动作,藉此让处理单元152、153指令同步,此外,处理单元152共享指令标志sif为0,指示处理单元152自行撷取指令,处理单元153共享指令标志sif为1,指示处理单元153共享其前一处理单元152所取得的指令,因此,处理单元152、153等同于一SIMD架构的处理装置。另外,由于组态存储器电路可以动态被改变,处理单元152、153可以在进入SIMD模式前,即,在共享指令前,执行差异化指令,例如,设定不同的数据地址指针区域寄存器,或其它可以造成区别的区域寄存器或存储器,藉以在进入SIMD模式后,即便取得相同指令,仍可以处理不同的数据。如此,可重组态处理装置15等同于同时具有SIMD与VLIW架构的处理装置。
在图6B的例子当中,指令同步控制电路154会汇整处理装置15内的处理单元150~153与其它组件的操作状态,举例来说,指令同步控制电路154可藉由处理单元150~153输出的暂停要求输出信号来得知处理单元150~153的操作状态。接着,指令同步控制电路154根据组态存储器999的设定来对需要同步的处理单元产生所对应的暂停要求输入信号Stall_In[0]~Stall_In[3]。
另外,当共享寄存器的转送(Forward)与危障检测电路157检测到危障(Hazard)时会输出为障发生讯号通知发生危障的处理单元,进而使之该处理单元发出暂停执行讯号Stall_Out[0]~Stall_Out[3]。类似地,其它组件也可能造成处理单元发出暂停执行讯号Stall_Out[0]~Stall_Out[3],例如:某一处理单元存取外部存储器或输入输出电158时,因存取延迟(latency),外部存储器或输入输出电158将要求该处理单元等待,该处理单元便发出暂停执行讯号Stall_Out。但上述的例子不用以限定本发明。
接着,请参照图7A与7B,图7A是本发明的示范实施例所提供的指令同步电路154的系统方块图,而图7B是本发明的示范实施例所提供的逻辑函数电路305的电路图。指令同步电路154包括了逻辑函数电路305与存储器306,其中,逻辑函数电路305接收了多个暂停要求输出信号Stall_Out[0]~Stall_Out[3]与组态存储器306所储存的信号,并根据这些暂停要求输出信号Stall_Out[0]~Stall_Out[3]与组态存储器306所储存的内容产生暂停要求输入信号Stall_In[0]~Stall_In[3]。逻辑函数电路305可以例如图7B所示,使用数个或门OR_1~OR_4来组成,然而,并根据组态存储器306所储存的内容,决定Stall_In[0]~Stall_In[3]所对应的驱动门OR_1~OR_4的输入信号,分别包含Stall_Out[0]~Stall_Out[3]其中的那些信号,意即,根据组态存储器306所储存的内容,决定Stall_In[0]~Stall_In[3]分别受Stall_Out[0]~Stall_Out[3]其中的那些信号影响。在图10A至10E的例子中,Stall_In[0]~Stall_In[3]分别都是多位逻辑信号,注记两个以上的状态,其逻辑函数电路305可以例如图7C所示,使用数个产生输入数值中最大数值的电路MAX_1~MAX_4来组成,然而,并根据组态存储器306所储存的内容,决定Stall_In[0]~Stall_In[3]所对应的产生输入数值中最大数值电路MAX_1~MAX_4的输入信号,分别包含Stall_Out[0]~Stall_Out[3]其中的那些信号,意即,根据组态存储器306所储存的内容,决定Stall_In[0]~Stall_In[3]分别受Stall_Out[0]~Stall_Out[3]其中的那些信号影响。图7B与7C的逻辑函数电路305仅是一个示范实施例,且并非用以限定本发明。
上述的指令同步电路154是一种中央控制式的实施方式,所有的处理单元150~153皆被此指令同步电路154所控制。在另一种示范实施例中,可以设计多个指令同步电路,其中,每一个指令同步电路可以控制一个处理单元。换言的,可以中央控制式的指令同步电路154置换成多个分布式控制的指令同步电路。
另外,请参照图7D,图7D是本发明的示范实施例所提供的指令共享电路的方块图,其具体实施细节可为图7E或图7F。如图7E,当组态存储器内的共享指令标志sif为0时,对应的处理单元便自行撷取指令,相反地,若共享指令标志sif为1时,通过对应的多任务器,便将前一处理单元所取得的,不论是其自行撷取,或亦是来自再前一处理单元的指令,转送至对应的处理单元。如图7F,共享指令亦可以共享的总线的连接来广播指令。这些共享电路与机制可以减少重复读取存储器的次数与对应的功率消耗。图7E及7F电路仅是一个示范实施例,且并非用以限定本发明。
请参照图8A,图8A是可重组态处理装置15同时具有独立的SISD或MIMD模式与VLIW模式的示意图。在图8A的示范实施例中,处理单元150、151根据组态存储器999对应的群组标签gp皆为0与共享指令标志sif皆为0的设定,分别为独立的SISD或MIMD模式的PU1、PU2。另外,处理单元152与153则根据组态存储器999对应的群组标签gp皆为1与共享指令标志sif皆为0的设定,成为一个VLIW模式的群组VLIW_1。
接着,请参照图8B,图8B是图8A的处理单元150~153撷取指令的示意图。处理单元150与151分别操作于独立的SISD或MIMD模式,因此,处理单元150与151分别自全域外部存储器与输入输出电路158或其区域资源及高速缓存撷取指令,其中,指令区块241与242彼此地址独立。而处理单元152与153操作于VLIW模式的群组VLIW_1,与一般VLIW撷取指令的型态不同,在本发明的示范实施例,处理单元152与153可以不用自同一个指令区块依序撷取不同的指令,处理单元152与153可以自不同的指令区块243与244依序撷取指令。处理单元用作为指令撷取地址的指令指针(Instruction pointer)(或程序计数器,Program counter)可以有不同或可被设定的硬件初始值。
接着,请参照图8C,图8C是图8A的处理单元150~153撷取指令的另一示意图。处理单元150与151分别操作于独立的SISD或MIMD模式,因此,处理单元150与151会分别自全域外部存储器与输入输出电路158的指令区块251与252撷取指令,其中,指令区块251与252彼此地址独立。另外,在这个示范实施例中,处理单元152与153操作于VLIW模式的群组VLIW_1,处理单元152与153采用传统的作法,自同一个指令区块253依序撷取不同的指令。例如,应用此一模式在进入此一模式前,除了以分枝指令,设定各处理单元的指令起始点外,还必须依照该VLIW群组处理单元个数,设定处理单元的指令地址撷取间隔,并且在此模式所执行的指令长度亦须为固定长度,但在图8B的例子,则无这些限制。
接着,请参照图8D,图8D是图8C的指令区块253所包含的指令的示意图。在第一个周期中,处理单元152与153会分别撷取地址FAx0A与FAx0C的指令;在第二个周期中,处理单元152与153会分别撷取地址FAx0E与FAx10的指令;而在第三个周期中,处理单元152与153会分别撷取地址FAx12与FAx14的指令。在地址为FAx0A的指令被执行后,寄存器r5的数据会被更新,之后在执行地址为FAx0E的指令时,需要寄存器r5被更新后的数据,因此,处理单元152与153可以通过共享寄存器转送(Forward)与危障检测电路157来转送(Forward)处理后的数据,而能共享处理后的数据。同样地,执行地址FAx0E的指令会让寄存器r7的数据被更新,所以在执行地址FAx14的指令时,需要寄存器r7更新后的数据,因此,处理单元152与153可以藉由共享寄存器转送(Forward)与危障检测电路157来共享处理后的数据,以顺利地正确地执行指令与处理数据。
请参照图8A,图8A是可重组态处理装置15同时具有独立的SISD或MIMD模式与VLIW模式的示意图。在图8A的示范实施例中,处理单元150、151根据组态存储器999对应的群组标签gp皆为0与共享指令标志sif皆为0的设定,分别为独立的SISD或MIMD模式的PU1、PU2。另外,处理单元152与153则根据组态存储器999对应的群组标签gp皆为1与共享指令标志sif皆为0的设定,成为一个VLIW模式的群组VLIW_1。
请参照图6B,图6B是可重组态处理装置15同时具有SIMD模式与VLIW模式的示意图。在图6B的示范实施例中,处理单元150与151根据组态存储器999对应的群组标签gp皆为1,成为一个SIMD模式的群组SIMD_1。另外,处理单元152与153则根据组态存储器对应的群组卷标gp皆为2与共享指令标志sif皆为0的设定,成为一个VLIW模式的群组VLIW_1。
在此,SIMD模式的群组SIMD_1的处理单元150与151所接收的指令是相同的,所处理的数据是可以是不同的。为达到SIMD的功能,有两类的模式可以实现:请参照图9A,第一类是处理单元150、151组态存储器对应的共享指令标志sif皆为0,令其独立自共享资源电路模块或个别的区域资源或高速缓存撷取指令,处理单元150、151在进入此一SIMD模式时,将其指令指针指向在相同地址或不相同地址而具有相同程序代码的区块,以此实现SIMD的的执行模式;接着请参照图9B,第二类是处理单元150的共享指令标志sif为0,151的共享指令标志sif为1,指示处理单元151共享其前一处理单元150所取得的指令,因此,处理单元150、151取得相同的指令,实现SIMD的的执行模式。
原本独立撷取指令的处理单元(例如SISD、MIMD或VLIW模式)具备独立的指令指针,除了使用直接切换共享指令机制,亦可单独或同时藉由分枝指令,或其它改变指令指针的流程控制指令或机制,达成相同的指令指针,进入SIMD模式。处理单元若在改变成相同的指令指针而进入SIMD模式前,于存储器或寄存器,纪录回归(Return),或其它不同的目的地址或讯息,则处理单元在SIMD模式,可藉由执行回归(Return)指令,或其它藉由参考前述纪录,而改变指令指针的流程控制指令或机制,造成各处理单元的指令指针又彼此独立不同,进而离开SIMD模式。另外,在SISD、MIMD或VLIW模式,各处理单元独立撷取指令,指令指针彼此皆独立不同,因此,这些模式相互的切换,只需藉由指令同步机制的改变,即,在此例中,改变组态存储器的群组卷标即可。
上述的几个示范实施例说明图6A的处理装置可成为一个具有多种模式的可重组态处理装置,其中重要元素为组态存储器999与指令同步控制电路154,处理装置根据群组区分来控制处理单元150~153相互间指令同步的模式。但上述的例子不用以限定本发明,组态存储器999可以记载其它讯息进而通过指令同步电路控制处理单元的指令同步模式,例如组态存储器999可以记载一整体处理装置的模式,指令同步控制电路则根据此一整体处理装置的模式的设定,控制处理单元间的同步模式。因此,本发明是个一可重组态处理装置,以所包含的组态存储器,指示包含的指令同步控制电路154,控制每一个处理单元150~153的暂停与等待的行为模式,使得处理装置15可以成为一个具有多种处理单元指令同步模式的处理装置。
在处理装置15处理程序执行时,每一个处理单元150~153可能会因群组内的其它处理单元非预期的暂停输出,被指令同步控制电路154要求暂停,以使得其群组执行指令所产生的执行结果为正确的结果。产生这些非预期的暂停的来源包括了外部的暂停要求,例如存储器或输出输入装置因存取延迟的暂停要求,以及处理单元间发生的暂停要求。
以上述的实施例,对于具有相同非0群组标签,属同一群组的处理器,指令同步控制电路依据此组态存储器999的设定,会使得这些处理单元的Stall_Out信号造成其它处理器的Stall_In动作,以确保这些处理单元相互间指令同步。下面将举例说明指令同步群组内的处理单元,发生不预期的暂停情况,与本发明的示范实施例如何针对这些非预期的暂停情况进行处理以达到指令同步的方式。
在接着图10A至10E的例子,处理单元PU1、PU2与PU3根据组态存储器的设定,相互间指令同步,各处理单元为管线结构的处理单元,所说明的管线结构由前级至后级的顺序与编号分别为指令撷取(1)、指令译码(2)、指令执行(3)、数据存取(4)、结果写回(5),等五个管线级。各处理单元所对应的Stall_Out信号注记该处理单元执行时发生暂停要求的最后级的管线级的编号,例如处理单元发生指令执行管线级暂停要求,Stall_Out信号输出3;若处理单元同时发生指令撷取及数据存取管线级暂停要求,则Stall_Out信号输出4;若处理单元没有管线级暂停要求,Stall_Out信号则输出0。各处理单元所对应的Stall_In输入信号则指示该处理单元在所注记的管线级及其前级,即管线级编号小于及等于Stall_In输入信号的所有管线级必须暂停,例如处理单元所对应的Stall_In输入信号为3,则指令撷取、指令译码、指令执行等管线级必须暂停,在此,处理单元的管线级被要求暂停执行,是指对应的管线级不能将执行的结果往后级的管线级继续传递执行,但该管线级中正在执行并有效的工作仍然可以进行,例如,在某一周期,指令撷取管线级正在执行指令撷取,但同时又被Stall_In输入信号要求暂停,此时,此指令撷取管线级可以继续其指令撷取工作,但不能在该周期将执行的结果传递给后级的指令译码管线级。另外,管线级若其执行上没有暂停要求,不会因为其它处理单元或管线级引起经由Stall_In的暂停要求,而提出Stall_Out的暂停要求。另外,在接着说明的例子中,r0~r15属于共享资源寄存器,具有危障检测电路可以检查共享资源寄存器使用上的相依性,并检测危障的发生,通知读取发生危障寄存器的处理单元,另具有转送电路,根据共享资源寄存器使用上的相依性,并执行数据转送,使执行后更新的数据可以在被写至该共享存储器前,提早被顺序在后面指令所使用。
参照图10A,在时间t4时,因为处理单元PU1未能及时从存储器取得所需要的指令(指令未妥),因此PU1藉由输出PU1的暂停要求输出信号StallOut为1,向指令同步控制电路发出指令撷取(1)管线级暂停的讯息,因此,在此一周期PU1、PU2、PU3的Stall Out分别为1,0,0,指令同步控制电路则依据组态存储器的设定,得知处理单元PU1、PU2、PU3必须指令同步,再根据指令同步的此3个处理单元发生暂停的最后级管线级为1,而决定输出1给此3个指令同步处理单元的Stall in信号,要求处理单元PU1、PU2、PU3一同暂停其指令撷取级管线,此时,这些指令撷取管线级可以继续其指令撷取,但不能在该周期将执行的结果传递给后级的指令译码管线级,藉由这些暂停的控制,处理单元PU1、PU2、PU3管线级时序得以维持一致,达到PU1、PU2与PU3指令同步的要求。在时间t5时,PU1所需的指令备妥,PU1取得所需要的指令,因此PU1改变PU1的暂停要求输出信号为0,表示PU1已没有管线级暂停,因此,在此一周期,指令同步控制电路因PU1、PU2、PU3的Stall Out分别为0,0,0,即指令同步的此3个处理单元接没有发生任何级管线暂停,决定输出0给此3个处理单元的Stall in信号,解除处理单元PU1、PU2、PU3的暂停执行要求,PU1、PU2、PU3同时结束暂停状态继续执行指令。
参照图10B,在时间t5时,因为处理单元PU1指令Ld r5,x3读取数据时发生了存取暂停(数据未妥),因此PU1藉由输出PU1的暂停要求输出信号Stall Out为4,向指令同步控制电路发出数据存取(4)管线级暂停的讯息,因此,在此一周期PU1、PU2、PU3的Stall Out分别为4,0,0,指令同步控制电路则依据组态存储器的设定,得知处理单元PU1、PU2、PU3必须指令同步,再根据指令同步的此3个处理单元发生暂停的最后级管线级为4,而决定输出4给此3个指令同步处理单元的Stall in信号,要求处理单元PU1、PU2、PU3一同暂停其指令撷取(1)、指令译码(2)、指令执行(3)、数据存取(4)等管线级,此时,这些暂停的管线级可以继续其工作,但不能在该周期将执行的结果传递给后级的管线级继续传递执行,藉由这些暂停的控制,处理单元PU1、PU2、PU3管线级时序得以维持一致,达到PU1、PU2与PU3指令同步的要求。在时间t6时,PU1所需读取的数据备妥,PU1取得此一数据,因此PU1改变PU1的暂停要求输出信号为0,表示PU1已没有管线级暂停,因此,在此一周期,指令同步控制电路因PU1、PU2、PU3的Stall Out分别为0,0,0,即指令同步的此3个处理单元接没有发生任何级管线暂停,决定输出0给此3个处理单元的Stall in信号,解除处理单元PU1、PU2、PU3各管线级的暂停执行要求,PU1、PU2、PU3同时结束暂停状态继续执行指令。
请参照图10C,处理单元PU1在时间t1撷取指令Ld r5,x3,指令Ldr5,x3在时间t4周期结束时,才能读取得存储器中x3地址的数据,并在时间t5将读取得的数据写入寄存器r5,接着,处理单元PU1在时间t2所撷取指令Add r5,r3,指令Add r5,r3在时间t4需取得寄存器r3与寄存器r5的数据,将此两数值相加,接着再结果存至寄存器r5。处理单元PU1执行指令Add r5,r3时,编程者或编译器预期所需的寄存器r5的数据为寄存器r5的新数据,也就指令Ld r5,x3读取得存储器中x3地址内容即将写入r5的新数据,在指令Add r5,r3读取共享资源寄存器r5时,危障检测电路会告知处理单元PU1发生危障,因此,在时间t4时,处理单元PU1在还没有取得存在r5或经由转送电路取得的新r5数据前,处理单元PU1藉由输出PU1的暂停要求输出信号Stall Out为3,向指令同步控制电路发出指令执行(3)管线级暂停的讯息,因此,在此一周期PU1、PU2、PU3的Stall Out分别为3,0,0,指令同步控制电路则依据组态存储器的设定,得知处理单元PU1、PU2、PU3必须指令同步,再根据指令同步的此3个处理单元发生暂停的最后级管线级为3,而决定输出3给此3个指令同步处理单元的Stall in信号,要求处理单元PU1、PU2、PU3一同暂停其指令撷取(1)、指令译码(2)、指令执行(3)等管线级,此时,这些暂停的管线级可以继续其工作,但不能在该周期将执行的结果传递给后级的管线级继续传递执行,藉由这些暂停的控制,处理单元PU1、PU2、PU3管线级时序得以维持一致,达到PU1、PU2与PU3指令同步的要求。在时间t5时,PU1所需的r5数据已由PU1的数据存取管线级取得并转送至指令执行管线级,因此PU1改变PU1的暂停要求输出信号为0,表示PU1已没有管线级暂停,因此,在此一周期,指令同步控制电路因PU1、PU2、PU3的Stall Out分别为0,0,0,即指令同步的此3个处理单元接没有发生任何级管线暂停,决定输出0给此3个处理单元的Stall in信号,解除处理单元PU1、PU2、PU3各管线级的暂停执行要求,PU1、PU2、PU3同时结束暂停状态继续执行指令。
请参照图10D,处理单元PU1在时间t1撷取指令Ld r5,x3,指令Ldr5,x3在时间t4周期结束时,才能读取得存储器中x3地址的数据,并在时间t5将读取得的数据写入寄存器r5,接着,处理单元PU2在时间t2所撷取指令Add r5,r3,指令Add r5,r3在时间t4需取得寄存器r3与寄存器r5的数据,将此两数值相加,接着再结果存至寄存器r5。处理单元PU2执行指令Add r5,r3时,编程者或编译器预期所需的寄存器r5的数据为寄存器r5的新数据,也就PU1指令Ld r5,x3读取得存储器中x3地址内容即将写入r5的新数据,在PU2指令Add r5,r3读取共享资源寄存器r5时,危障检测电路会告知处理单元PU2发生危障,因此,在时间t4时,处理单元PU1在还没有取得存在r5或经由转送电路取得的新r5数据前,处理单元PU2藉由输出PU2的暂停要求输出信号Stall Out为3,向指令同步控制电路发出指令执行(3)管线级暂停的讯息,因此,在此一周期PU1、PU2、PU3的Stall Out分别为0,3,0,指令同步控制电路则依据组态存储器的设定,得知处理单元PU1、PU2、PU3必须指令同步,再根据指令同步的此3个处理单元发生暂停的最后级管线级为3,而决定输出3给此3个指令同步处理单元的Stall in信号,要求处理单元PU1、PU2、PU3一同暂停其指令撷取(1)、指令译码(2)、指令执行(3)等管线级的执行,此时,这些暂停的管线级可以继续其工作,但不能在该周期将执行的结果传递给后级的管线级继续传递执行,藉由这些暂停的控制,处理单元PU1、PU2、PU3管线级时序得以维持一致,达到PU1、PU2与PU3指令同步的要求。在时间t5时,PU1所需的r5数据已由PU1的数据存取管线级取得并转送至PU2的指令执行管线级,因此PU2改变PU2的暂停要求输出信号为0,表示PU2已没有管线级暂停,因此,在此一周期,指令同步控制电路因PU1、PU2、PU3的Stall Out分别为0,0,0,即指令同步的此3个处理单元接没有发生任何级管线暂停,决定输出0给此3个处理单元的Stall in信号,解除处理单元PU1、PU2、PU3各管线级的暂停执行要求,PU1、PU2、PU3同时结束暂停状态继续执行指令。
参照图10E,在时间t5时,因为处理单元PU1指令Ld r5,x3读取数据时发生了存取暂停(数据未妥),因此PU1藉由输出PU1的暂停要求输出信号Stall Out为4,向指令同步控制电路发出数据存取(4)管线级暂停的讯息;在同样时间t5,处理单元PU2未能及时从存储器取得所需要的指令Subr2,1,因此PU2藉由输出PU2的暂停要求输出信号Stall Out为1,向指令同步控制电路发出指令撷取(1)管线级暂停的讯息,因此,在此一周期PU1、PU2、PU3的Stall Out分别为4,1,0,指令同步控制电路则依据组态存储器的设定,得知处理单元PU1、PU2、PU3必须指令同步,再根据指令同步的此3个处理单元发生暂停的最后级管线级为4,而决定输出4给此3个指令同步处理单元的Stall in信号,要求处理单元PU1、PU2、PU3一同暂停其指令撷取(1)、指令译码(2)、指令执行(3)、数据存取(4)等管线级的执行,接着,在时间t6,PU1指令Ld r5,x3完成读取数据,因此PU1的暂停要求输出信号Stall Out为0,但处理单元PU2仍未能取得所需要的指令Sub r2,1,因此PU2的暂停要求输出信号Stall Out仍为1,PU1、PU2、PU3的Stall Out分别为0,1,0,指令同步控制电路则依据组态存储器的设定,得知处理单元PU1、PU2、PU3必须指令同步,再根据指令同步的此3个处理单元发生暂停的最后级管线级为1,而决定输出1给此3个指令同步处理单元的Stall in信号,要求处理单元PU1、PU2、PU3一同暂停其指令撷取(1)级管线。在时间t7时,PU2读取得所需要的指令Sub r2,1,因此PU2的暂停要求输出信号为0,指令同步控制电路因PU1、PU2、PU3的Stall Out分别为0,0,0,即指令同步的此3个处理单元接没有发生任何级管线暂停,决定输出0给此3个处理单元的Stall in信号,解除处理单元PU1、PU2、PU3各管线级的暂停执行要求,PU1、PU2、PU3同时结束暂停状态继续执行指令。同样地,这些暂停的管线级可以继续其工作,但不能在该周期将执行的结果传递给后级的管线级继续传递执行,藉由这些暂停的控制,处理单元PU1、PU2、PU3管线级时序得以维持一致,达到PU1、PU2与PU3指令同步的要求。
在接着图10F的例子中,处理单元PU1、PU2与PU3根据组态存储器的设定,相互间指令同步,各处理单元为非管线结构的处理单元,每一个指令,处理单元会完全执行完成,处理单元才会撷取下一个指令执行,从指令撷取到完全执行完成,可以是一个或多个时钟周期,并称做一个指令周期,在接着图10F的例子中,所指的一个时间周期为一个指令周期,并不一定为一个时钟周期,在未发生任何暂停的状况下,各处理单元指令周期皆同步。各处理单元所对应的Stall_Out信号注记该处理单元在此指令周期发生暂停,例如处理单元在此指令周期发生暂停,Stall_Out信号输出1;未发生暂停,则Stall_Out信号输出0。各处理单元所对应的Stall_In输入信号则指示该处理单元此指令周期必须暂停完成此一指令,在此,处理单元的管线级被要求暂停执行,是指处理单元不能将执行的结果写至寄存器,但该处理单元正在执行并有效的工作仍然可以进行。另外,在接着说明的例子中,r0~r15属于共享资源寄存器,由于没有管线结构,不会有上述的危障发生,也不需转送。这些例子可以视为上述多管线级处理单元在处理单元结构为单一一级的特例,因此上述的架构与机制一样适用。
参照图10F,在时间t2时,因为处理单元PU1指令Ld r5,x3发生了读取数据时发生了存取暂停(数据未妥)或是发生了指令撷取暂停(指令未妥),因此PU1藉由输出PU1的暂停要求输出信号Stall Out为1,向指令同步控制电路发出暂停的讯息,因此,在此一周期PU1、PU2、PU3的Stall Out分别为1,0,0,指令同步控制电路则依据组态存储器的设定,得知处理单元PU1、PU2、PU3必须指令同步,再根据指令同步的此3个处理单元是否有处理单元发生任何暂停,而决定输出1给此3个指令同步处理单元的Stall in信号,要求处理单元PU1、PU2、PU3一同暂停其指令完成,此时,这些暂停的管线级可以继续其工作,但不能将执行的结果写回目的寄存器,藉由这些暂停的控制,处理单元PU1、PU2、PU3执行顺序得以维持一致,达到PU1、PU2与PU3指令同步的要求。在时间t3时,PU1所需读取的数据或指令备妥,PU1取得此一数据或指令,因此PU1改变PU1的暂停要求输出信号为0,表示PU1已不需要求暂停,因此,指令同步控制电路因PU1、PU2、PU3的Stall Out分别为0,0,0,即指令同步的此3个处理单元接没有发生暂停要求,决定输出0给此3个处理单元的Stall in信号,解除处理单元PU1、PU2、PU3暂停执行要求,PU1、PU2、PU3同时结束暂停状态继续执行。
另外,要说明的是,上述所提供的可重组态处理装置可以应用于各种不同的处理系统中,例如个人计算机、笔记型计算机、终端服务器或智能型手机等,且可重组态处理装置的应用并不以此为限。除此之外,使用可重组态处理装置的可重组态处理系统可以具有上述的可重组态处理装置、主机板、硬盘与存储器等,其中主机板具有处理装置基座(socket),可重组态处理装置可安装于上述的处理装置基座,亦即可重组态处理装置为一个可插拔的处理装置。
综上所述,本发明的示范实施例所提供的可重组态处理装置可以同时具有多种不同的模式,以根据预先或动态的设定组态存储器,以指示所对应的处理单元指令同步或独立。如此,上述的可重组态处理装置可以具有较佳的可适应性,根据应不同应用程序或子程序的型态与分工模式动态地决定组态,而得到较佳的执行效能。
虽然本发明已以示范实施例揭示如上,然其并非用以限定本发明,本领域的技术人员,在不脱离本发明的精神和范围的前提下可作若干的更动与润饰,故本发明的保护范围以本发明的权利要求为准。
Claims (19)
1.一种可重组态处理装置,包括:
多个处理单元,每一个处理单元具有至少一暂停要求输出信号产生电路,所述暂停要求输出信号产生电路用以输出至少一暂停要求输出信号,其中,所述暂停要求输出信号用以表示该处理单元发生了暂停需求,所述处理单元还用以接收至少一暂停要求输入信号,所述暂停要求输入信号用以控制所述处理单元是否暂停;以及
至少一指令同步控制电路,以及至少一组态存储器电路,所述指令同步控制电路用以接收所述暂停要求输出信号,并根据所述组态存储器电路所储存的一第一内容与所述处理单元的暂停要求输出信号产生所述暂停要求输入信号。
2.如权利要求1所述的可重组态处理装置,其中所述组态存储器电路为至少一非易失性或至少一易失性可擦写存储器,或是至少一光罩只读存储器。
3.如权利要求2所述可重组态处理装置,其中所述非易失性或所述易失性可擦写存储器的内容被设定为多个初始值。
4.如权利要求1所述的可重组态处理装置,其中,所述指令同步控制电路及组态存储器电路可集中或分散在装置内。
5.如权利要求1所述的可重组态处理装置,其中所述处理单元可以存取所述组态存储器。
6.如权利要求1所述的可重组态处理装置,其中被所述组态存储器指定为指令同步的所述处理单元可根据所述组态存储器的一第二内容设定所述可重组态处理装置的至少一指令共享电路,以决定所述处理单元指令撷取的态样为自行撷取指令或共享所撷取的指令。
7.权利要求1所述的可重组态处理装置,其中每一所述处理单元为一非管线化结构处理单元,每一所述暂停要求输出信号用以注记其所对应的所述处理单元是否发生暂停执行;每一所述暂停要求输入信号则用以指示其所对应的所述处理单元是否必须暂停执行,所述指令同步控制电路根据所述组态存储器电路所储存的所述第一内容与所述处理单元的所述暂停要求输出信号产生所述暂停要求输入信号。
8.权利要求1所述的可重组态处理装置,其中每一所述处理单元为一管线化结构处理单元,每一所述暂停要求输出信号注记其所对应的所述处理单元发生暂停要求的一最后级管线级;每一所述暂停要求输入信号则用以指示其所对应的所述处理单元在其所注记的管线级及其前级的多个管线级必须暂停,所述指令同步控制电路根据所述组态存储器电路所储存的所述第一内容与所述处理单元的所述暂停要求输出信号产生所述暂停要求输入信号。
9.权利要求8所述的可重组态处理装置,其中所述指令同步控制电路根据所述组态存储器电路所储存的所述第一内容以及必须指令同步的所述处理单元所对应的所述暂停要求输出信号所注记的所述最后级管线级,指示需要同步的所述处理单元必须暂停其所述最后管线级及其前级的所述管线级。
10.一种可重组态处理系统,包括:
一可重组态处理装置,包括:
多个处理单元,每一个处理单元具有至少一暂停要求输出信号产生电路,所述暂停要求输出信号产生电路用以输出至少一暂停要求输出信号,其中,所述暂停要求输出信号用以表示所述处理单元发生了暂停需求,所述处理单元还用以接收至少一暂停要求输入信号,所述暂停要求输入信号用以控制所述处理单元是否暂停;以及
至少一指令同步控制电路,以及至少一组态存储器电路,所述指令同步控制电路用以接收所述暂停要求输出信号,并根据所述组态存储器电路所储存的一第一内容与所述处理单元的暂停要求输出信号产生所述暂停要求输入信号。
11.如权利要求10所述的可重组态处理系统,其中所述组态存储器电路为至少一非易失性或至少一易失性可擦写存储器,或是至少一光罩只读存储器。
12.如权利要求11所述的可重组态处理系统,其中所述非易失性或所述易失性可擦写存储器的内容被设定为多个初始值。
13.如权利要求10所述的可重组态处理系统,其中,所述指令同步控制电路及组态存储器电路可集中或分散在装置内。
14.如权利要求10所述的可重组态处理系统,其中所述处理单元可以存取所述组态存储器。
15.如权利要求10所述的可重组态处理系统,其中被所述组态存储器指定为指令同步的所述处理单元可根据所述组态存储器的一第二内容设定所述可重组态处理装置的至少一指令共享电路,以决定所述处理单元指令撷取的态样为自行撷取指令或共享所撷取的指令。
16.如权利要求10所述的可重组态处理系统,其中每一所述处理单元为一非管线化结构处理单元,每一所述暂停要求输出信号用以注记其所对应的所述处理单元是否发生暂停执行;每一所述暂停要求输入信号则用以指示其所对应的所述处理单元是否必须暂停执行,所述指令同步控制电路根据所述组态存储器电路所储存的所述第一内容与所述处理单元的所述暂停要求输出信号产生所述暂停要求输入信号。
17.如权利要求10所述的可重组态处理系统,其中每一所述处理单元为一管线化结构处理单元,每一所述暂停要求输出信号注记其所对应的所述处理单元发生暂停要求的一最后级管线级;每一所述暂停要求输入信号则用以指示其所对应的所述处理单元在其所注记的管线级及其前级的多个管线级必须暂停,所述指令同步控制电路根据所述组态存储器电路所储存的所述第一内容与所述处理单元的所述暂停要求输出信号产生所述暂停要求输入信号。
18.如权利要求17所述的可重组态处理系统,其中所述指令同步控制电路根据所述组态存储器电路所储存的所述第一内容以及必须指令同步的所述处理单元所对应的所述暂停要求输出信号所注记的所述最后级管线级,指示需要同步的所述处理单元必须暂停其所述最后管线级及其前级的所述管线级。
19.如权利要求10所述的可重组态处理系统,其中所述可重组态处理装置可包括一基座。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910207738 CN102043755B (zh) | 2009-10-22 | 2009-10-22 | 可重组态处理装置及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910207738 CN102043755B (zh) | 2009-10-22 | 2009-10-22 | 可重组态处理装置及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102043755A CN102043755A (zh) | 2011-05-04 |
CN102043755B true CN102043755B (zh) | 2012-12-05 |
Family
ID=43909900
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910207738 Active CN102043755B (zh) | 2009-10-22 | 2009-10-22 | 可重组态处理装置及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102043755B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9639371B2 (en) * | 2013-01-29 | 2017-05-02 | Advanced Micro Devices, Inc. | Solution to divergent branches in a SIMD core using hardware pointers |
US20180285119A1 (en) * | 2015-03-27 | 2018-10-04 | Intel Corporation | Apparatus and method for inter-strand communication |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1306643A (zh) * | 1999-03-31 | 2001-08-01 | 皇家菲利浦电子有限公司 | 用各种数据处理器进行数据处理 |
CN1475915A (zh) * | 2002-08-12 | 2004-02-18 | 凌泰科技股份有限公司 | 多组态多端口存储器的装置与设计方法 |
US6874013B2 (en) * | 1999-05-24 | 2005-03-29 | Koninklijke Philips Electronics N.V. | Data processing arrangement and memory system |
CN1702614A (zh) * | 2004-05-24 | 2005-11-30 | 联发科技股份有限公司 | 指令撷取方法及其系统 |
CN101218560A (zh) * | 2005-05-05 | 2008-07-09 | 艾色拉公司 | 用于可配置的处理的设备和方法 |
-
2009
- 2009-10-22 CN CN 200910207738 patent/CN102043755B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1306643A (zh) * | 1999-03-31 | 2001-08-01 | 皇家菲利浦电子有限公司 | 用各种数据处理器进行数据处理 |
US6874013B2 (en) * | 1999-05-24 | 2005-03-29 | Koninklijke Philips Electronics N.V. | Data processing arrangement and memory system |
CN1475915A (zh) * | 2002-08-12 | 2004-02-18 | 凌泰科技股份有限公司 | 多组态多端口存储器的装置与设计方法 |
CN1702614A (zh) * | 2004-05-24 | 2005-11-30 | 联发科技股份有限公司 | 指令撷取方法及其系统 |
CN101218560A (zh) * | 2005-05-05 | 2008-07-09 | 艾色拉公司 | 用于可配置的处理的设备和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102043755A (zh) | 2011-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107408036B (zh) | 用户级分叉与结合处理器、方法、系统和指令 | |
CN1983235B (zh) | 设置向量屏蔽的方法、设备、系统和处理器 | |
TWI414994B (zh) | 可重組態處理裝置及其系統 | |
KR101791811B1 (ko) | 가속기들의 낮은-레이턴시 인보크를 위한 장치 및 방법 | |
JP4921638B2 (ja) | メモリサブシステムに複数のメモリアルゴリズムプロセッサを組込むマルチプロセッサコンピュータアーキテクチャ | |
CN1991768B (zh) | 与不同种类的资源通信的基于指令系统结构的内定序器 | |
US20170031866A1 (en) | Computer with Hybrid Von-Neumann/Dataflow Execution Architecture | |
CN104205042A (zh) | 用于具有通用cpu核心和紧密耦合的加速器的处理核心的上下文切换机制 | |
JP2019506695A (ja) | 再構成可能アルゴリズムによるパイプラインコアおよびアルゴリズムマッチングパイプラインコンパイラを有するプロセッサ | |
CN101454753A (zh) | 处理异构资源的地址转换和异常 | |
US20060265569A1 (en) | Processor for improving instruction utilization using multiple parallel processors and computer system equipped with the processor | |
JP2003296191A (ja) | 汎用プロセッサおよび周辺装置のプロセッサとして動作可能な集積回路 | |
CN112580792B (zh) | 一种神经网络多核张量处理器 | |
CN106663072A (zh) | 用于配置中断的集合的装置和方法 | |
CN113495865A (zh) | 异步数据移动管线 | |
CN110766600B (zh) | 一种分布式架构的图像处理系统 | |
US6862676B1 (en) | Superscalar processor having content addressable memory structures for determining dependencies | |
RU2016121724A (ru) | Архитектура параллельной вычислительной системы | |
CN102043755B (zh) | 可重组态处理装置及其系统 | |
CN104951283B (zh) | 一种risc处理器的浮点处理单元集成电路及方法 | |
Vick et al. | Adptable Architectures for Supersystems | |
CN105528319A (zh) | 基于fpga的加速卡及其加速方法 | |
CN115048334A (zh) | 可编程阵列处理器控制装置 | |
US7404048B2 (en) | Inter-cluster communication module using the memory access network | |
CN110045989B (zh) | 一种动态切换式低功耗处理器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |