本发明涉及一种并行处理计算机,特别涉及一种多指令流、多数据流(MIMD流)式的并行处理计算机,这种计算机特别适用于以高速并行的方式求得偏微分方程的数字解。
为进行科学技术的计算,特别是为获得偏微方程的数字解,在过去已研制了用多个处理器执行并行处理的并行处理计算机。这种计算机的一个典型例子发表在一篇题为“PACS”一种用于科学计算的并行微处理器阵列”的文章中,刊载在ACM计算机系统学报,第1卷,第3期,1983年8月,第195页到221页(ACMTRANSACTIONONCOMPUTERSYSTEM,VOL1,NO.3,Aug-ust1983,P195-221)。
这种计算机是一种“邻近连接式”,其中邻近处理器互相连接形成一维或二维布局的阵列处理器。尽管这种计算机具有处理器之间很容易连接的优点,但其缺点是在相隔较远的处理器之间数据传输的时间很长。
这是由于相隔较远的处理器之间的数据传输是通过中继处理器来完成,而中继处理器接收和发送数据都需要时间。因此,传输时间与数据处理时间的比率很大,处理效能不够高。
由于处理器的硬件布置是固定的,计算的效率取决于要解决的问题,这将在下面说明。
(1)当一个二维布局的处理机求解一个一维的问题(如)时,只有一行或一列处理器得到使用,如图2(a)所示,而计算网格点的分布一般都是如图2(b)所示。在前一种情况,分配到一个处理器的网格点的数目很大,因此,计算时间很长。在后一种情况,数据传输的方向与处理器的位置不同,因此,就需要额外的处理时间来调整。
(2)当进行一个两维的计算时(如,用的明显差分求解法),则在一维布局的处理器中,数据传输的数目比在二维布局的处理器中的数据传输大,而且处理时间也长。例如,当用一维布局的16个处理器和用二维布局的4×4处理器来计算16×16网格点时,在二维布局中,相邻处理器之间的传输数据的数目是16,而在一维结构中传输数据的数目是32,尽管在两者中每一个处理器都分配到16个网格点。
如上所述,即使求解同样的问题时,根据处理器的布局,传输数据的数目会增加,每个处理器的负载也会加重。因此,如果处理器的布局是固定的,对解决这样的问题,会降低计算效率。
本发明的目的是提供一个并行处理计算机,它能在处理器之间同时开始数据传输,并能加快相隔较远的处理器之间的数据传输。
本发明的另一目的是提供一种并行处理计算机,它能根据要解决的问题形成一理想的处理器布局,以便高效地执行并行计算处理。
在上述的先有技术例子中,在相隔较远的处理器之间的数据传输是由中继处理器的输入一输出指令完成的,因此,输入一输出指令的执行时间长。此外,由于输入一输出端口采用同一个存储器作为缓冲存储器,因此就有必要采取有效控制,以便使相邻的存储器不会同时存取缓冲存储器。
本发明是基于这样的概念;如果每个处理器采用输入和输出端口分开的先进、先出式的存储器作为缓冲器存储器,并将这些缓冲存储器连接成一条数据传输总线,每一个处理器可同时在数据传输总线的缓冲存储中存放数据。如果将送往目的地的大量数据在缓冲存储器之间传输,那么相隔较远的处理器之间的数据传输可以不用中继处理器的输入一输出的指令来进行。本发明是基于上述概念完成的。
在两维布局的处理器中,本发明提供了将不同行、列的处理器进行一维连接的功能,并能改变处理器的布局,以便根据要解决问题的网格分布来减少处理器之间的数据传输。
根据本发明,处理器之间的数据传输可通过控制进出缓冲存储器的数据量来进行,不必使用处理器的输入一输出指令。因此,在相隔较远的处理器之间的数据传输可以加快。
图1是根据本发明一维布局的并行处理计算机的结构图。
图2是根据本发明二维布局的并行处理计算机的结构图。
图3是图1中的操作单元的结构图。
图4是图1中操作单元之间的传输操作的流程图。
图5是图3中数据传输控制电路3的结构图。
图6是图5中同步电路43的结构图。
图7是图5中输出信号产生电路51的结构图。
图8是图7中输出信号产生电路51的时间关系图。
图9和图10是表示在数据传输时,缓冲存储器内容变化的表格。
图11是一个并行计算例子的流程图。
图12是表示本发明的一个并行处理计算机结构的框图。
图13是图12中计算机的详图。
图14是图12中总线连接机构的框图。
图15是处理器布局的例子。
图16是总线连接机构的逻辑电路的例子。
图17是处理器布局计算顺序的流程图。
下面将参照附图描述本发明的一种实施方案。
图1是根据本发明表示并行处理计算机的结构草图,并示出了多个操作单元以一维布局的例子。图1中参考号1表示处理器,2是先进、先出式的缓冲存储器,3是数据传输控制电路。处理器1和数据传输控制电路3是由双向地址线101连接的,而数据传输控制电路3和缓冲存储器2的输入和输出端是由单向数据传输信号线201、202和203,204分别连结的,由此构成了一个操作单元。
操作单元Pi是与邻接操作单元Pi-1和Pi+1相连接的,也就是说,操作单元Pi的缓冲存储器2的数据输入端和操作单元Pi-1的缓冲存储器的数据输出端,以及操作单元Pi的缓冲存储器的数据输出端和操作单元Pi+1的缓冲存储器的数据输入端是分别由单向数据线201和202相连接的,而操作单元Pi的数据传输控制电路和操作单元Pi-1的数据传输控制电路2,以及操作单元Pi的数据传输控制电路3和操作单元Pi+1的数据传输控制电路3分别由双向控制线310和320连接的,由此构成了数据传输总线。
图2示出了两维布局的MXN操作单元构成的并行处理计算机的实施方案。对每个处理器1在行向和列向都设置有缓冲器2和数据传输控制电路3,其连接的方式与一维布局的方案相同,由此构成每个操作单元。缓冲存储器2和数据传输控制电路3,在每一行和列的方向进行连接,构成了在行方向上相互独立的M条数据传输总线和在列方向上相互独立的N条数据传输总线。
在行或列方向上的数据传输不用通过处理器1就能进行,而在不同行和列的处理器之间的数据传输是通过接收边和发送边的两个处理器,或是通过具有行或列一致的处理器来进行的。
在操作单元是两维布局的实施方案中,其每一行和每一列的结构是与一维布局中的结构相同。因此,下面就按照一维布局的方案进行描述。
图3是操作单元的内部结构图。处理器1由运算装置11和存储器12构成,而数据传输控制电路3是由计数电路31和输入一输出信号产生电路32构成。运算装置11的指令码和数据存储在处理器1的存储器12中,同时在每一处理器中操作是异步的。数据传输控制电路3是这样一个电路,它控制在处理器1和缓冲存储器2之间的数据输入和输出,它还控制数据从缓冲存储器2输出到单向数据线202以及数据从单向数据线201输入到缓冲存储器2。当处理器1通过输入一输出信号产生电路32向输出控制信号线304设置了信号数目并给输出控制信号线304一个信号时,缓冲存储器2就能将数据输出到单向数据线202上去。
从单向数据线201到缓冲存储器2的数据输入是通过两个同步信号来控制的,其中一个是从输入一输出信号产生电路32到输入控制信号线303产生的信号,另一个信号表示相邻操作单元从控制信号线310上接收到信号并产生送往单向数据线201的数据。
以下将描述处理器之间的数据传输流。图4是处理器之间数据传输的流程图。
(1)每一个处理器1把要传输到其它处理器去的数据通过输入数据信号线301存入缓冲存储器2,不考虑其它处理器的操作。
(2)每一个处理器1都设置了在操作单元之间传输的数据量,并且把该量作为数据传输控制电路3中计数器的计数值。
(3)每一数据传输控制电路3产生一输入控制信号和输出控制信号,通过输入控制信号线303和输出控制信号线304送到缓冲存储器2,控制缓冲存储器2的数据输入和输出,于是缓冲存储器之间就可以进行数据传输。因为缓冲器采用了先进,先出式的存储器,所以根据数据输入的顺序形成数据。为保证数据传输总线上的数据顺序,有一个数据传输标志用以指出什么时候所有处理器将其数据存入其缓冲存储器,什么时候开始数据传输。
(4)对在缓冲存储器之间传输的数据量进行计数,同时数据传输控制电路3中计数器的值也随着递减。
(5)当计数器的值为零时,输出控制信号的产生到达顶点,数据传输标志复位。
(6)在肯定每一个处理器1和数据传输标志已复位,数据便从缓冲存储器2中读出。
下面将参照图5到图8描述作为本发明并行处理计算机主要部分的数据传输控制电路进行描述。
图5是数据传输控制电路的结构图。在图5中参考号41是译码电路,42是计数器,43是同步电路,51是输出信号产生电路,G1到G3是门电路;OR1和OR2是OR元件。
来自处理器的双向数据地址信号线101是由数据信号线111,地址信号线112和读出控制信号线113构成的。对应一个字的地址被分配到每一个缓冲存储器,计数器和同步电路,处理器将数据输入和输出到缓冲存储器,是通过对缓冲存储器的地址执行一条数据的写入或读出指令来实现的。换句话说,当译码电路41判断地址信号112是缓冲存储器的地址和读控制信号113是写信号(即逻辑“O”)就产生了输入控制信号411。当读控制信号113是一个读信号(即逻辑“1”)就产生输出控制信号412。然后这些信号通过OR元件OR1或OR2加到缓冲存储器的写(W)或读(R)控制端。在此时,输入和输出控制信号411和412打开门电路G1和G2缓冲存储器的输入数据线301或输出数据线302连接到处理器一边的数据线111。
下一步将描述在相邻操作单元的缓冲存储器之间的数据传输控制。在缓冲存储器之间的数据传输是由对数据传输控制电路3提供传输字数而开始的。也就是说,处理器对计数器42的地址执行一条传输字数的写指令。译码器电路41产生一计数器设置信号413,并将数据线111的信号(即传输字数)设置为计数器42的计数值。
计数器设置信号413同时也加到同步电路43。同步电路43设置数据传输标志432,并当所有操作单元的传输标志312和322都置位时,对输出信号产生电路51发出一传输指令信号。
在传输指令信号431是逻辑“1”时,输出信号产生电路51周期地对缓冲存储器提供输出控制信号511,同时也对相邻的(相对于数据流来说是往下流的一边),缓冲存储器发出输入控制信号321。缓冲存储器输出控制信号511也被加到计数器42上,并递减计数器42中的值。当计数值达到零(0)时,一传输结束信号421被送到同步电路43。当同步电路43接到传输结束信号421时,便将数据传输标志432复位,同时也将传输指令信号431复位,于是输出信号产生电路51便停止发送缓冲存储器输出控制信号511。
缓冲存储器输出控制信号511是通过OR元件OR2加到缓冲存储器2的读控制端R。因为输入控制信号321是连接到下一个(相对于数据流方向)数据传输控制电路的输入信号311的,所以它被加到通过OR元件的OR1的下一个(相对于数据流方向)缓冲器的写控制端W。因此,由上述的操作从缓冲存储器2读出的数据是顺序地写入到下一个缓冲存储器,数据可被传输到相邻的操作单元。
图6是同步电路43的电路结构图。图中符号FF1和FF2是代表SR触发器。当逻辑“1”被加到S端,其Q输出就为逻辑“1”,当逻辑“1”被加到一个R端,其Q输出就为逻辑“O”,Q输出是Q输出的反逻辑。因此,FF1的Q输出(即,数据传输标志432)由计数器设置信号413置“1”,同时由传输结束信号421置到“O”。
符号IV1表示收集极开路输出的一个NOT元件,这个输出信号通过信号线312和322与两边(相邻)的NOT元件的IV1输出相连接。因此,所有操作单元的NOT元件的IV1的输出是相互串联的。因为这个原因,当所有操作单元的IV1的输入是“O”时,也就是,当FF1(数据传输标志432)的输出Q是“1”时,这个输出信号为逻辑“1”,指示出在所有操作单元的数据传输标志置“1”。FF2由这个信号设置“1”并由FF1的Q输出置“O”,所以FF2的Q输出(即传输指令信号431)是这样一个信号:在当所有操作单元的数据传输标志都置“1”时,它为逻辑“1”,并一直保持到本操作单元的计数器42的值变成零(O)时为止。
图7是输出信号产生电路51的一个例子。只要传输指令信号431是“1”这个电路就周期地产生缓冲存储输出控制信号511和输入控制信号321。图8示出了其时间关系图。图7中,符号DL1和DL2代表延迟元件,在信号输入之后,经过予先确定的时间延迟产生输出信号。符号MMV1表示一个单稳多谐振荡器。这个振荡器当加入一个CLK输入后产生一个予先确定的时间宽度的脉冲,输出脉冲宽度是由电阻器R和电容器C确定。
因为FF3的Q输出初始值是“O”,在当传输指令信号431变成“1”的时候,AND元件AND1的输出为“1”。由于这个信号被加到FF3的S输入,所以FF3的Q输出变成“1”,这样AND1的输出回到“O”(图8中FF3S输入)。因为AND1的输出也是送到MMV1的CLK,因此,一个具有予定时间宽度TW的脉冲,在(图8中的)MMV1的输出Q产生。延迟单元DL2产生了FF3复位信号并在MMV1的Q输出脉冲的下降边时通过DL2,IV2,AND2产生一个时间宽度为Td2脉冲并将其加到FF3R的输入端。延迟单元DL1设置了FF3Q输出的“O”时间。在FF3Q输出回到“O”之后,经过DL1的延迟时间Td1后电路又一次回到初始状态,AND1的输出又一次变成“1”,这样就重复上述的操作。
MMV1的脉冲宽度TW和延迟元件DL1的延迟时间Td1是根据缓冲存储元件的特性,如存取时间和周期时间来决定的。
下面参照图9和图10描述数据传输的例子。在每一操作单元中的缓冲存储器是能存储n个数据字的先进、先出式存储器的。缓冲存储器中的数据行是由存储的顺序而确定的,而输出是从缓冲存储器内数据行中的第一个数据。
图9示出了在当有四个操作单元并且所有处理器将一个数据字传输到下下个(即相隔2个)处理器时,缓冲存储器内容的变化和数据传输控制电路中计数器的计数值的变化。
(1)每一个处理器在其缓冲存储器中存储一个数据字A,B,C,和D,数据传输控制电路的计数器的值设置到2。
(2)在缓冲存储器之间传输一个数据字,数据传输控制电路的计数器的值变为1。
(3)在缓冲存储器之间又传输一个数据字,数据传输控制电路的计数器的值变为零,缓冲存储器之间的数据传输完成。数据已被提前传输到第二个缓冲存储器,处理器就可以读数据了。
图10表示在当操作单元是4个时并且所有的处理器将一个数据字传输到操作单元P4中去时,缓冲存储器的内容变化,和数据传输控制电路中计数值的变化。
(1)除了P4以外所有的处理器在其缓冲存储器中存储一个数据字A,B,C,并且数据传输控制电路的值被设置为1,2,3和0。
(2)一个数据字在操作单元P1和P2,P2和P3和P4的缓冲存储器之间传输,数据传输控制电路的计数器的值变为0,1;2,0。
(3)在操作单元P2和P3,P3和P4的缓冲存储器之间又传输了一个数据字,数据传输控制电路的计数器的值分别为0,0,1,0。
(4)进而,在操作单元P3和P4的缓冲存储器之间又传输了一个数据字,数据传输控制电路的所有计数值变为0。然后,操作单元P4的处理器可以从缓冲存储器中读出数据,完成了数据传输。
如上所描述的,每一处理器可根据要存到缓冲存储器的数据数目和要设置到数据传输控制电路的计数器的计数值来选择各种各样的传输方式。
缓冲存储器是循环连接的,构成如上所描述的实施方案中的数据传输总线。因此当图1中的处理器的数目是N时,从操作单元Pi到Pi-1的数据传输要通过(N-2)个操作单元的缓冲存储器。也就是说,当每一个处理器在其缓冲存储器中存储一个数据字和设置数据传输控制电路的计数值到(N-1)时,就能实现从操作单元Pi到操作单元Pi-1数据传输。
下面将描述一个并行计算的例子。一个两维的泊松(PoissoN)方程相对于时间和位置求微分:
其中t:时间
x:行方向的位置,
y:列方向的位置,
φ:要求的变量
得到
φ(n+1)ij=λφ(n)i-1,j+(1-2λ)φ(n)ij+λφi+1(n)j
+λφ(n)ij-1+(1-2λ)φ(n)ij+λφ(n)ij+1
下面为了计算在每一网格点上的φ,给出下列边界条件:
φ(n)oj=C(n)oj;φ(n)n+1j=C(n)N+Ij;
φ(n)io=C(n)io;φ(n)iM+1=C(n)iM+1
其中
λ=Δt/Δx2=Δt/Δy2,Δt是用于微分的时间间隔;Δxi·Δy是用于微分的网格间距;φ(n)ij的i和j是下标,表示两维网格的布局,(n)是一表示时间(n)的下标,因为要计算网格点,选择了4行8列的网格点,N=4,M=8。计算是由图2中示出的两维布局构成的并行处理机进行的。并行处理计算机具有操作单元是4行8列布局的结构,每一操作单元在具有同样下标的网格点上计算。
参照图11来说明并行处理的流程,这是一个并行计算的流程图。
(1)设置每一处理器的初始值φ(o)ij。
(2)处理器在缓冲存储器中存储了用于在行方向传输的φ(n)ij,将计数器的值设置到1,数据便被传输。
(3)每一处理器在缓冲存储器中存储了用于在列方向传输的φ(n)ij将计数器的值设置到1,数据便被传输。
(4)每一处理器在缓冲存储器中存储了用于在行方向传输的φ(n)ij将计数器的值设置到7,数据便被传输。
(5)每一处理器在缓冲存储器中存储了用于列方向传输的φ(n)ij,将计数器的值设置到3,数据便被传输。
(6)每一处理器根据上边描述的微分方程从φ(n)计算φ(n+1)ij。在相邻边界的网格点上计算φij的处理器使用边界条件值。
(7)计算每一处理器循环数目。
(8)计算完成。
下面将描述本发明的第二个实施方案。
图12是根据本发明给出的并行处理计算机的结构框图。图13示出了图12的并行处理计算机的详细结构。在图12中符号Di,j(i=1~M,j-1~N)是操作单元,Si(i=1~m~1)是总线连接机构,CV是一个控制处理器。操作单元Pi,j是两维布局的,行和列相邻操作单元是分别由行和列方向的数据传输总线一个个相互连接的。总线连接机构Si是插置在第i行的操作单元和(i+1)行的操作单元之间的,第i行的最后一个操作单元Pi,N是被连接到(i+1)行的第一个操作单元Pi+1,1。相邻的总线连接机构(Si和Si-1和Si+1)是由数据传输总线一个一个地相互连接。
总线连接机构Si连接和切断4个总线输入-输出端口(端口1-端口4)之间的连接。图14是它的框图。在图中参考数字54表示一个门控制电路,数字61-64是门电路。这些门电路61-64在当门控制信号gc1,gc2是ON状态时,将输入和输出线电连接,而在当门控制信号gc1,gc2是OFF状态时,将它们电隔离。利用控制处理器CV来的总线连接控制信号,门控制电路11可以将门控制信号gc1或gc2变为ON。
当门控制信号gc1是ON状态,门电路61和62是导通的,这样端口1就接到端口3,端口2接到端口4。同样的,当门控制信号gc2是ON态,门电路63和64是导通的,这样端口1连接到端口2,而端口3连接到端口4。
这里,第i行最后一个操作单元是连接到图12中的总线连接机构Si的端口1,而第(i+1)行的第一个操作单元的数据传输总线是连接到端口2。端口3和端口4分别连接到相邻总线连接机构Si-1和Si+1的端口4和端口3。因此当门控制信号gc1是ON态时,第i行和第(i+1)行的操作单元相互切断,当gc2是ON态,第i+1行的操作单元连接到第i行中最后一个操作单元后面,这样第i行与(i+1)行变为同一行。
因此,如果在所有的总线连接机构S1~SN1-1中门控制信号gc1处于ON态,在列之间没有建立连接,这样操作单元成为M-行,N-列的两维布局。在另一方面如果门控制信号gc2是ON态,所有的行互相连接,这样就形成了M×N组的一维布局处理器。进而,如果对于个别总线连接机构进行连接和断开,就可以获得各种各样操作单元的布局。
图15示出了操作单元布局的例子。在此种情况中,由16个操作单元组成的4行,4列的二维布局作为基本结构,三个总线连接机构S1-S3插在行之间。当加到总线连接机构Si上的总线连接控制信号bc1,是逻辑“O”时,各行就互相切断,而当它是一个逻辑“1”时,各行就相互连接。在此种情况下,根据加到每一总线连接机构Si的总线控制信号bc1的组合就可以得到正方形的操作单元布局,矩形操作单元布局,以及一些具有复杂的凸出和凹进的奇怪的形状的布局。
然而,在列方向中的数据传输总线的连接总是与基本结构相同,即是P1,j→P2,j→…PMj。因此如果操作单元的布局改变的话,在列方向中的数据传输距离将拉长。比如,在图15(f)所示的一个2-行8-列结构的情况操作单元P1,1的下一行同一列的操作单元是P3,1,但实际的数据传输是通过程序P1,1→P2,1→P3,1,如果系统能在相隔较远的操作单元之间容易地进行高速数据传输,然而,从程序处理和时间方面,这不会产生什么问题,可用,基本上处理相邻操作单元之间的数据传输相同的办法解决。
图16是用逻辑电路来表示图14中的总线连接机构,在图16中将设总线连接控制信号bc由连接信号cnc和触发信号trg构成,其中cnc是通过逻辑“1”(连接)和“0”来表明行之间的连接和断开。触发信号trg是用于执行连接和断开的操作。FF表示一个D-型触发,而G1到G4是逻辑元件通常指“三态缓冲器”。图14中的门控制电路54和门电路61-64可以非常容易地分别由一个D-型触发器和一组G1-G4的三态缓冲器来实现。
如上所描述的,根据第二个实施方案在并行处理计算机中,操作单元的布局是可变的,因此可根据要处理的问题中网格分布形状来形成具有最高效率的操作单元的布局。
在上述的第二种实施方案中,总线连接机构,是插在每行中而显然将总线连接机构插入每列中也可获得同样的功能。进而,总线连接机构,可以同时插入在行和列中,这样可根据要处理的问题,可适当地选择地使用。
控制处理器CV具有对每一总线连接机构Si提供总线连接控制信号bc1的功能。最简单的形式是具有一个插入的开关,使其能对应每一总线连接控制信号bc1,以便能人工控制每一总线连接机构Si。也可以对每一总线连接机构Si提供总线连接控制信号bc1,这样可用一台处理器和数字信号输出电路,通过一个数字信号输出电路来达到的,由处理器,根据计算网格点的布局来确定一个最佳操作单元的布局,并根据这个结果产生总线控制信号。
图17示出了一个从计算网格点的布局来确定最佳操作单元布局的计算方法的例子。假设m和n为行和列的数目,M和N是操作单元M和N的行和列的数目,而网格点的数目比操作单元的数目大。其顺序如下。
(1)计算网格点的行与列的比率a和操作单元的行与列的比率α,作为初始值,布局修改的次数I=0。
(2)计算网格点的行与列的比率a与操作单元的行与列的比率α相比较。如果a>α,便修改布局,改变的次数I来改变操作单元的布局,同时也改变了操作单元的行与列的比率α。
(3)第(2)步一直重复直到关系a=α或a<α,满意为止,如果在这个过程中α超过操作单元的数目,那么这个过程结束。
(4)以上述方式获得的布局修改的次数I可以用来产生总线连接控制信号。设一个M-1位二进制数据BC,从低位开始,按顺序假设是总线连接机构的S1,S2……SM-1的总线控制信号,如果某位是逻辑“1”,则就与相邻的列连接。
二进制数据BC是先求得K=2I,然后从最低位开始将iK位(i=1,2,……),置“0”而其它位置“1”。
下一步,将描述用本发明第二种实施方案的并行处理计算机的一些计算例子。
(1)两维问题
将考虑一个两维的泊松(Poisson′s)方程的差分解法(t:时间,x和y:在行和列方向上的位置,φ:要求的变量)换句话说,每一格点i,j的φi,j按下式计算:
φ(k+1)i,j=λφ(k)i-1,j+(1-2λ)φ(k)i,j+λφ(k)i+1,j
+λφ(k)i,j-1+(1-2λ)φ(k)i,j+λφ(k)i,j+1
(λ=Δt/Δx2=Δt/Δy2,Δt:时间间隔,Δx和Δy:网格点间距,i,j:下标,表示两维格布局的布置,k:时间步长)用给出的下列边界务件:
φ(k)01j=C(k)o1j=φ(k)m+1,j=C(k)m+1,j
φ(k)i,0=C(k)i,o,φ(k)i,n+1=C(k)i,n+1
这里,将设操作单元的数目为256,和基本结构,M-行、N-列为16-行和16-列。设计算网格点为10-行、256-列。下边将解释计算的顺序。
(ⅰ)在计算φi,j之前操作单元布局是由控制处理器CV按上述的顺序改变。行-到-列计算网格点的比率是256∶16=16,而操作单元的比率是1。因此,根据上述的计算方法,布局改变的次数成为2,操作单元的布局变化到4-行、64-列。
(ⅱ)在每一操作单元中,在所有的4-行,4-列的计算格点布局的边缘,将16数据传输到相邻操作单元。也就是设i和j是格点的下标,φ(k)i′,1(j′=1~4)被传输到右边的操作单元,φ(k)i,′4(i′=1~4)被传输到右边的操作单元,φ(k)1,j′(j′=1~4)被传输到上边的操作单元,而φ4,j′(j′=1~4)被传输到下边的操作单元。
(ⅲ)每一个操作单元用自己的数据即φ(k+1)i′,j′(i′,j′=1~4)和从上边、下边、左边和右边在该处相邻的操作单元来的数据进行计算。
(ⅳ)通过改变k来重复步骤(ⅱ)和(ⅲ)。
如果不改变操作单元的布局来解决该问题,则每一操作单元计算1-行、16-列网格点。因此,在这种情况下操作单元之间的数据传输是1×2+16×2=34这个数目大于本发明的二倍。
(2)一维问题:
下面较考虑上述的同样方程的一维问题,假设操作单元的数目是256,按16行16列布局,计算网格点的数目是256,与操作单元相同。
计算顺序与两维问题完全相同,如下:
(ⅰ)操作单元的布局改变到1-行,256-列。每一操作单元负责一个格点。
(ⅱ)每一操作单元的传输数据φ(k)到右边和左边的操作单元。
(ⅲ)每一操作单元用其自己的数据,和其左右操作单元的数据进行计算φ(k+1)
(ⅳ)通过改变k来重复过程(ⅱ)和(ⅲ)。
尽管上述实施方案中安置了多个总线连接机构,但可以通过增加总线连接机构中开关电路的数目,用一个总线连接机构,单方向地连接任意行和列的处理器。