JPH04247554A - Method for reallocating data for multiprocessor and control mechanism therefor - Google Patents

Method for reallocating data for multiprocessor and control mechanism therefor

Info

Publication number
JPH04247554A
JPH04247554A JP3013578A JP1357891A JPH04247554A JP H04247554 A JPH04247554 A JP H04247554A JP 3013578 A JP3013578 A JP 3013578A JP 1357891 A JP1357891 A JP 1357891A JP H04247554 A JPH04247554 A JP H04247554A
Authority
JP
Japan
Prior art keywords
data
address
processing
processing elements
counter
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.)
Pending
Application number
JP3013578A
Other languages
Japanese (ja)
Inventor
Junichi Takahashi
淳一 高橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP3013578A priority Critical patent/JPH04247554A/en
Publication of JPH04247554A publication Critical patent/JPH04247554A/en
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

PURPOSE:To provide the method for reallocating data and the control mechanism so as to efficiently allocate the data on a multi-processor at high speed. CONSTITUTION:At all the processing elements, the data are read out from the first address of a storing means by a reading means (10) and the read data are transferred prescribed times between the processing elements (11). Then, the data of the first address of the storage means transferred to each processing element is exchanged with the data of the second address and stored in the storage means (13) and the converted data in the second address of the storage means is transferred prescribed times simultaneously between the processing elements (14). Afterwards, the procedure that the data in the second address of the storage means transferred to the respective processing elements are stored in the first address of the storage means is executed (15) according to the total number of the processing elements.

Description

【発明の詳細な説明】 【0001】 【産業上の利用分野】本発明は複数の処理ユニットから
なるマルチプロセッサにおけるデータの再割り付け方法
とその制御機構に係り、特に処理ユニット間のデータの
授受により各処理ユニットに格納されているデータを再
配置するマルチプロセッサにおけるデータの再割り付け
方法とその制御機構に関する。 【0002】 【従来の技術】多種類の並列処理を行うマルチプロセッ
サでは、ある処理の処理結果をデータとして用いて他の
処理を実行する場合、各処理ユニットで得られた処理結
果を他の並列処理の実行に適するように各処理ユニット
に割り付け直す必要がある。このようにデータを処理ユ
ニットに割り付け直すことをデータの再配置という。 【0003】従来、このようなマルチプロセッサにおけ
るデータの再配置処理には主として次に述べる2種類の
方法があった。1つの方法はマルチプロセッサを管理す
るホストプロセッサに各処理ユニットにある全てのデー
タを集める。集められたデータはホストプロセッサ上で
データの並び換えられ、各処理ユニットに再格納される
。 【0004】もう一つの方法はホストプロセッサを介さ
ずに、処理ユニット間のデータ転送パスを使用し、各処
理ユニットのデータを1つずつ再配置するものである。 【0005】 【発明が解決しようとする課題】しかるに、上記のホス
トプロセッサ上でデータを並び換えて再格納する方法は
、各処理ユニットとホストプロセッサとの間で大量のデ
ータ授受を必要とし、さらに、ホストプロセッサに対す
るデータの並び換え処理の付加が大きくなるという問題
がある。一方、データ転送パスを使用する方法は再配置
の対象になるデータ量に比例してデータ転送時間がかか
り、マルチプロセッサの処理に対するオーバヘッドが大
きくなるばかりでなく、各処理ユニットに対する再配置
のためのデータ転送処理を個々に管理しなければならな
いために制御が複雑になるという問題がある。 【0006】本発明は上記の点に鑑みなされたもので、
マルチプロセッサ上でデータの再割り付けの処理を効率
的に高速に実行することができるデータの再割り付け方
法とその制御機構を提供することを目的とする。 【0007】 【課題を解決するための手段】図1は本発明の原理説明
図である。複数の処理要素を環状に接続したマルチプロ
セッサにおいて、複数の処理要素は各々データ授受を行
うためのデータ転送パスを介して処理要素と接続され、
複数の処理要素は所望の演算を行う演算手段、処理要素
間のデータを転送するデータ転送手段、アドレス及びデ
ータを記憶する記憶手段及び、記憶したデータを読み出
す読み出し手段に対して制御を行う制御手段を有し、複
数の処理要素に対して処理要素がマルチプロセッサに配
列されている順番に番号が付与され、全ての処理要素に
おいて、記憶手段の第1のアドレスから読み出し手段に
よりデータを読み出し(10)、読み出したデータを処
理要素間で所定の回数転送し(11)、各処理要素に転
送されてきた記憶手段の第1のアドレスのデータを第2
のアドレスのデータと交換して記憶手段に格納し(13
)、変換された記憶手段の第2のアドレスのデータは処
理要素間で同時に所定回数転送し(14)、個々の処理
要素に転送された記憶手段の第2のアドレスのデータを
記憶手段の第1のアドレスに格納する手続きを処理要素
の総数が奇数の場合は処理要素の総数(N)を2で割っ
た値(N/2)分実行し、処理要素の総数が偶数の場合
には処理要素の総数(N)を2で割った値(N/2)よ
り1を減した値(N/2−1)分実行し、処理要素の総
数が偶数且つ処理要素の総数を2で割った値(N/2)
とデータ転送を繰り返すカウント(r)が等しければ全
ての処理要素において同時に記憶手段の第1のアドレス
のデータを取り出し、取り出した第1のアドレスデータ
を処理要素間で同時に所定カウント分転送し、各処理要
素では個々の処理要素に転送された第1のアドレスのデ
ータを記憶手段の第2のアドレスに格納する(15)。 【0008】また、第1のアドレス(h+r)に対する
処理要素間の転送回数を第1のアドレス(h+r)のデ
ータの交換対象となるデータに対する第2のアドレス(
h+N−r)のアドレス値からhを減じた値(N−r)
とし、第2のアドレス(h+N−r)のデータに対する
処理要素間の転送回数を第2のアドレス(h+N−r)
のデータの交換対象となるデータに対する第1のアドレ
ス(h+r)のアドレス値からhを減じた値rとして、
r=1,2,・・・,[N/2]に対して処理要素の記
憶手段から取り出されるデータの処理要素間の同時転送
における転送回数をカウントして、取り出したデータに
対する再配置先の処理要素への転送処理を制御する。 【0009】また、第1のアドレスを保持する第1のカ
ウンタと、第2のアドレスを保持する第2のカウンタと
、処理要素の記憶手段から取り出されるデータの処理要
素間の同時転送における転送回数をカウントする第3の
カウンタと、第1のカウンタの出力と第2のカウンタの
出力とを切り換えるセレクタと、セレクタの出力は第3
のカウンタの入力に接続され、第3のカウンタの値がh
に等しいことを検出して第1のフラグを発生する第1の
フラグ発生手段と、セレクタにより第1のフラグの内容
によって第1のカウンタの出力と第2のカウンタの出力
とを切り換える切り換え手段と、繰り返しの回数の制御
パラメータを保持する第1のレジスタと、全ての処理要
素の個数の偶奇性判定用のパラメータを保持する第2の
レジスタと、第1のレジスタの内容と、第1のカウンタ
の内容との一致を検出して第2のフラグを発生させる第
2のフラグ発生手段と、第2のレジスタの最下位ビット
の内容によりすべての処理要素の個数の偶奇性を判断す
る偶奇性判断手段と、第2のフラグの内容と第2のレジ
スタの最下位ビットの内容によってデータの再配置処理
の終了を検出する終了検出手段とを有する。 【0010】 【作用】複数(N個)の処理要素を環状に接続し、その
処理要素にはマルチプロセッサ上での並び順に番号付さ
れている。隣接する処理要素間にデータ転送パスを有す
るマルチプロセッサにおいて処理要素の記憶手段の連続
しているアドレスに第1のデータが格納されている状態
から処理要素の記憶手段の同じ連続するアドレスに第2
のデータが格納されるように第1のデータと第2のデー
タのN個の処理要素を一括して再配置する。 【0011】 【実施例】本発明の理系を簡単にするために以下にハイ
デンマーコブモデル法の学習処理及びフォワード−バッ
クワード・プロセデュアにおける学習処理とバウム−ウ
ェルチ・リエスティメーション・フォーミュラスにおけ
る学習処理について説明する。 【0012】声や文字等のパターン認識処理に用いられ
るHMM(Hidden Markov Models
) 法の学習処理をマルチプロセッサの一つの形態であ
るアレイプロセッサを用いて実行する例について説明す
る。 【0013】このHMM法を用いたパターン認識では、
ある状態遷移確率モデルを仮定して音声や文字のパター
ンの生起をそのモデルにおける状態間の遷移によって観
測されるシンボル系列としてパターンをモデル化する。 学習処理とは複数のサンプルパターンのデータから、確
率モデルの確率パラメータを推定することである。HM
M法の学習処理では、フォワード−バックワード・プロ
セデュア(Forward−Backward Pro
cedure) とバウム−ウェルチ・リ−エティメー
ション(Baum−Welch Re−estimat
ion Formulas)の2種類のアルゴリズムが
用いられる。 HMM法の学習処理はこれらのアルゴリズムにより互い
のアルゴリズムの処理結果を用いて求める確率モデルの
推定が収束するまで各々のアルゴリズムの処理を繰り返
す。これらのアルゴリズムの内容が以下に示される。 【0014】フォワード−バックワード・プロセデュア
は前向きパス・アルゴリズムと後ろ向きパス・アルゴリ
ズムの2種類のアルゴリズムからなる。 【0015】   (1) 前向きパス・アルゴリズム  初期設定:
  1≦i≦Nに対して              
α(i,0)=π(i)              
        ・・・(1)     漸化式:  
1≦i≦N,t=1,2,・・・,Tに対して【001
6】 【数1】上記のアルゴリムにおいて、Nは処理要素の個
数である。π(i)は初期状態確率を示す。α(i,t
)は確率パラメータである。 【0017】(2) 後ろ向きパス・アルゴリズム  
初期設定:  1≦i≦Nに対して         
                         
1      for i∈ET          
     β(i,T)=             
                 ・・・(3)  
                         
        0      otherwise 
    漸化式:  1≦i≦N,t=T−1,T−2
,・・・,0に対して         【0018】 【数2】ここで、c(i,j;t)≡a(i,j)・b
(i,j;Ot ) 【0019】 【数3】である。 【0020】上記のアルゴリズムにおいて、β(i,t
)は確率パラメータであり、a(i,j)は状態遷移確
率、b(i,j;k)はシンボル出力確率である。 【0021】また、バウム−ウェルチ・リエティメーシ
ョン・フォーミュラスの処理は初期状態確率π(i)の
再推定計算、状態遷移確率a(i,j)の再推定計算、
シンボル出力確率b(i,j;k)の再推定計算の3種
類の計算からなる。各再推定計算の内容を以下に示す。 尚、以下の表記では、π+ (i),a+ (i,j)
,b+ (i,j;k)はそれぞれ、π(i),a(i
,j),b(i,j;k)の再推定計算結果を表す。 【0022】(1) 初期状態確率の再推定計算【00
23】 【数4】(2) 状態遷移確率a+ (i,j)の再推
定計算【0024】 【数5】(3) シンボル出力確率b+ (i,j;k
)の再推定計算 【0025】 【数6】ここで、c(i,j;t)≡a(i,j)・b
(i,j;Ot ), 【0026】 【数7】 【0027】 【数8】である。 【0028】上記のフォワード−バックワード・プロセ
デュアとバウム−ウェルチ・リエティメーション・フォ
ーミュラスの各アルゴリズムに対する処理は所望の機能
を持った処理要素(以下PEと呼ぶ)を環状に接続した
アレイプロセッサ構成(以下リングアレイプロセッサと
呼ぶ)を用いて並列処理が可能である。ここで対象とす
るリングアレイプロセッサについて説明する。図2はH
HM法のパターン認識処理における学習処理を並列処理
により実行する場合のリングアレイプロセッサの構成を
示す。リングアレイプロセッサはPE100a,100
b,・・・,100c,100dと各PE間のデータ転
送パス101と、各PEの管理下にあるメモリ102a
,102b,・・・,102c,102d及びPEとデ
ータの入出力を行うデータ入出力パス103a,103
b,・・・,103c,103dにより構成される。 以下に図2のリングアレイプロセッサ構成を用いた上記
の各アルゴリズムに対する並列処理方法について説明す
る。 【0029】 (a) フォワード−バックワード・プロセデュア[a
−1]  前向きパス・アルゴリズム図3は学習処理に
おけるフォワード−バックワード  プロセデュアの前
向きパス・アルゴリズムをリングアレイプロセッサ構成
で並列処理する場合のデータフローを示す。同図のリン
グアレイプロセッサの構成はPE200a,200b,
・・・,200c,200dと各PE間のデータ転送パ
ス201と、各PEの管理下にあるメモリ204とのデ
ータの入出力を行うデータ入出力パス202a,202
b,・・・,202c,202dとPE間で循環転送さ
れるデータ列203{α(1、t−1),α(2,t−
1),・・・,α(i,t−1),・・・,α(N,t
−1)}である。また、データ列204は各PEにおい
て、上記のデータ列203の循環転送と同期してその管
理下にあるメモリ204から入力される。 【0030】例えば、PEi (1≦i≦N)ではデー
タ列CF (i,t)はCF (i,t)={c(i,
i;t),c(mod(i+1|N),i;t),・・
・,c(mod(i−1|N),i;t)}である。 【0031】ここで、mod(m|N)(mは整数)は
mがNの整数倍の時はNをmがNの整数倍でないときに
はmをNで割ったときの剰余を表す。上記のデータ列C
F (i,t)(1≦i≦T)はPEi (1≦i≦N
)の管理下にあるメモリに格納されている。また、この
メモリにはデータα(i,t)の初期値α(i,0)=
π(i)が格納されているとする。 【0032】PEi (1≦i≦N)では先ず、(1)
 式に対応するα(i,t)の初期値α(i,0)=π
(i)をその管理下にあるメモリから読み出し、データ
入出力パス202を介して入力する。次にPEi (1
≦i≦N)はその管理下にあるメモリからデータ列CF
 (i,t)の第1番目のデータc(i,i;1)を入
力し、そのデータと先に入力した初期値α(i,0)と
乗算を行い、乗算結果であるα(i,0)・c(i,i
;1)をPE内の格納領域に一時的に保持する。次に次
段の処理としてPEi (1≦i≦N)は先に入力した
初期値α(i,0)を次段のPEに送信すると同時に、
前段のPEから初期値α(mod(i+1|N),0)
を受信する。これと同時にPEの管理下にあるメモリか
らデータ列CF (i,t)の2番目のデータc(mo
d(i+1|N),i;1)を入力する。そして、PE
間で転送されたデータα(mod(i+1|N),i;
1)とこれと同時にメモリから入力されたデータc(m
od(i+1|N),i;1)との乗算を行い、その乗
算結果であるα(mod(i+1|N),i;1)・c
(mod(i+1|N),i;1)とPE内の格納領域
に保持されている先の乗算結果α(i,0)・c(i,
i;1)との和を計算(即ち積和計算)する。 α(mod(i+1|N),i;1)・c(mod(i
+1|N),i;1)+α(i,0)・c(i,i;1
) さらに、上記の加算結果をPE内の格納領域に一時的に
保持する。 【0033】以後、全てのPE間で転送されるデータα
(i,0)がリングアレイプロセッサの全てのPEを一
巡するまで繰り返し行い、その都度、上述したような積
和計算を実行する。積和計算の計算結果はPE内の格納
領域に保持する。このようにPE間で循環転送されるデ
ータα(i,0)がリングアレイプロセッサ上を一巡す
ると、PEi (1≦i≦N)において時刻t=1に対
するデータα(i,1)が求められる。以後、t=2に
対するデータα(i,2)の計算処理はここで求められ
たデータα(i,1)でα(i,0)を置き換えてPE
間で循環転送し、これと同時に時刻t=2に対するデー
タ列CF (i,t)のデータをメモリから入力しなが
ら、t=1の場合と全く同一の処理過程で実行する。t
=3,・・・,Tに対しても同様である。各時刻t=1
,2,・・・、Tに対するα(i,t)の計算結果はP
Ei (1≦i≦N)の管理下にあるメモリに逐次格納
される。 【0034】[a−2]  後向きアルゴリズム図4は
学習処理におけるフォワード−バックワード  プロセ
デュアの後ろ向きパス・アルゴリズムをリングアレイプ
ロセッサ構成で並列処理する場合のデータフローを示す
。同図のリングアレイプロセッサはPE300a,30
0b,・・・,300c,300dと各PE間のデータ
転送パス301と、各PEの管理下にあるメモリとのデ
ータの入出力を行うデータ入出力パス302a,302
b,・・・,302c,302dとPE間で循環転送さ
れるデータ列303{β(1,t+1),β(2,t+
1),・・・,β(i,t+1),・・・β(N,t+
1)}により構成される。データ列304は各PE30
0a,300b,・・・,300c,300dにおいて
上記のデータ列303の循環転送と同期にして、その管
理下にあるメモリから入力される。PEi (1≦i≦
N)ではデータ列CB (i,t+1)(0≦t≦T−
1)はCB (i,t+1)={c(i,i;t+1)
,c(i,mod(i+1|N);t+1),・・・,
c(i,mod(i−1|N);t+1)}である。こ
のデータ列CB (i,t+1)(0≦t≦T−1)は
PEi (1≦i≦N)の管理下にあるメモリに格納さ
れている。また、このメモリにはデータβ(i,t)の
初期値β(i,T)が格納されているものとする。 【0035】この後ろ向きパス・アルゴリズムに対する
並列処理はPE間の循環転送データをβ(i,t+1)
、これと同時にメモリからPEi (1≦i≦N)に入
力されるデータ列をCB (i,t+1)として、前向
きパス・アルゴリズムの並列処理と全く同様の処理を実
行する。即ち、PEi (1≦i≦N)では先ず、(3
) 式に対応するβ(i,t)の初期値β(i,T)が
その管理下にあるメモリから読み出され、データ入出力
パス302を介して入力される。次にPEi (1≦i
≦N)はPEi の管理下にあるメモリからデータ列C
B (i,t+1)の第1番目のデータc(i,i;T
)を入力する。そのデータと先に入力した初期値β(i
,T)との乗算を行い、その乗算結果であるβ(i,T
)・c(i,i;T)をPE内の格納領域に一時的に保
持する。次にPEi (1≦i≦N)は先に入力した初
期値β(i,T)を次段のPEに送信すると同時に、前
段のPEから初期値β(mod(i+1|N),i;T
)受信し、同時にPEの管理下にあるメモリからデータ
列CB (i,t+1)の2番目のデータc(mod(
i+1|N),i;T)を入力する。さらに、PE間で
転送されたデータβ(mod(i+1|N),T)とこ
れと同時にメモリから入力されたデータc(mod(i
+1|N),i;T)との乗算を行い、その乗算結果で
あるβ(mod(i+1|N),T)・c(mod(i
+1|N),i;T)とPE内の格納領域に保持されて
いる先に求められている乗算結果β(i,T)・c(i
,i;T)との和を計算(即ち、積和計算)する。 【0036】β(mod(i+1|N),T)・c(m
od(i+1|N),i;T)+  β(i,T)・c
(i,i;T) 上記の加算結果をPE内の格納領域に一時的に保持する
。以後すべてのPEはこのようなPE間データ転送とメ
モリからのデータ入力との同時実行をPE間で転送され
るデータβ(i,T)がリングアレイプロセッサ上の全
てのPEを一巡するまで繰り返し行い、その都度、上記
の積和計算を実行する。積和計算の結果はPE内の格納
領域に保持される。PE間で循環転送されるデータβ(
i,T)がリングアレイプロセッサ上を一巡すると、P
Ei (1≦i≦N)において時刻t=T−1に対する
データβ(i,T−1)が求められる。以後t=T−2
に対するデータβ(i,T−2)の計算処理はここで求
められたデータβ(i,T−1)でデータβ(i,T)
を置き換えてPE間で循環転送する。これと同時に時刻
t=T−2に対するデータ列CB (i,t+1)のデ
ータをメモリから入力しながら、t=T−1の場合と全
く同一の処理過程で実行する。t=T−3,・・・,0
に対しても同様である。各時刻t=T−1,T−2,・
・・,0に対するβ(i,t)の計算結果はPEi (
1≦i≦N)の管理下にあるメモリに逐次格納される。 【0037】フォワード−バックワード・プロセデュア
の前向きパス・アルゴリズム、及び後向きパス・アルゴ
リズムに対して、それぞれ、上記のような並列処理を実
行すると、各PEのメモリには次のようなα(i,t)
及びβ(i,t)の計算結果が得られる。 【0038】PEi (1≦i≦N)の管理下にあるメ
モリに格納される計算結果: α(i,0),α(i,1),・・・,α(i,t),
・・・,α(i,T);β(i,T),β(i,T−1
),・・・,β(i,t),・・・β(i,0)尚、上
記の計算結果の並べ方は計算結果が求められる順番に同
じである。 【0039】(b)  バウム−ウェルチ・リエティメ
ーション・フォーミュラス [B−1]  初期状態確率の再推定計算の並列処理方
法先ず、バウム−ウェルチ・リエティメーション・フォ
ーミュラスにおける初期状態確率π(i)の再推定計算
に対する並列処理方法について説明する。 【0040】図5は学習処理におけるバウム−ウェルチ
・リ−エティメーション・フォーミュラスの初期状態確
率の再推定計算をリングアレイプロセッサ構成で並列処
理する場合のデータフローを示す。このリングアレイプ
ロセッサの構成はPE400a,400b,・・・,4
00c,400dと各PE間のデータ転送パス401と
PEとそのPEが管理するメモリ間のデータ入出力パス
402とPE間で循環転送されるデータ列403{α(
1,0)・β(1,0),α(2,0)・β(2、0)
,・・・,α(i,0)・β(i,0),・・・,α(
N,0)・β(N,0)}とデータ入出力パス402を
介してメモリから入力されるデータ列404等により構
成される。データ列404はPEi (1≦i≦N)で
はD(i,0)={α(i,0),β(i,0)}が入
力される。このデータ列D(i,0)はPEi (1≦
i≦N)の管理下にあるメモリに格納されているとする
。 【0041】この並列処理では先ずPEi (1≦i≦
N)において、(5) 式の分子の計算を実行するため
に必要なデータ列D(i,0)={α(i,0),β(
i,0)}がデータ入出力パス402を介してメモリか
ら入力される。PEi (1≦i≦N)は入力されたデ
ータ列D(i,0)={α(i,0),β(i,0)}
の2種類のデータα(i,0)及びβ(i,0)を用い
て分子の積計算α(i,0)・β(i,0)を並列に実
行する。分母の計算であるP(O|λ)はα(i,0)
,β(i,0)を用いた計算式を用いると、各PEで並
列に計算した分子の計算結果の総和に等しい。従って、
分母の計算はPEi (1≦i≦N)の積計算結果α(
i,0)・β(i,0)をリングアレイプロセッサの全
てのPEを一巡するまでPE間で循環転送し、全てのP
Eにおいて、その転送データの累積加算を並列に実行す
ることにより求められる。従って、それぞれのPEで求
められた分子の計算結果を分母の計算結果で除算するこ
とにより、初期状態確率π(i)の再推定計算結果π+
 (i)(1≦i≦N)がPEi (1≦i≦N)で同
時に求められる。さらに、得られた初期状態確率π(i
)の再推定計算結果π+ (i)はPEi (1≦i≦
N)が管理するメモリに格納される。 【0042】[B−2]  状態遷移確率の再推定計算
の並列処理方法 次にリングアレイプロセッサ構成を用いた状態遷移確率
a(i,j)の再推定計算の並列処理を説明する。図6
は学習処理におけるバウム−ウェルチ・リエスティメー
ション・フォーミュラスの状態遷移確率の再推定計算を
リングアレイプロセッサ構成で並列処理する場合のデー
タフローを示す。データ転送パス501は各PE500
a,500b,・・・,500c,500d間に設けら
れる。データ入出力パス502a,502b,・・・,
502c,502dは各PE500a,500b,・・
・,500c,500dとその管理下にあるメモリとの
間のデータの入出力を行うためのパスである。データ列
503はPE500a,500b,・・・,500c,
500d間で循環転送されるデータ列である。図6に示
した例では、データ列503はβ(1,t),β(2,
t),・・・,β(i,t),・・・,β(i,t),
・・・,β(N,t)}を示している。第1のデータ列
504はデータ入出力パス502を介してメモリから入
力され、PEi (1≦i≦N)において、データ列D
(i,t)={α(i,t),β(i,t)}(0≦t
≦T)が入力される。第2のデータ列505はデータ入
出力パス502を介してメモリから入力され、PEi 
(1≦i≦N)において、データ列CB (i,t)=
{c(i,i;t),c(mod(i+1|N);t)
,・・・,c(i,mod(i−1|N);t)}が入
力される。この第1のデータ列504、第2のデータ列
505はともにPEの管理するメモリに格納されている
ものとする。 【0043】この並列処理では先ず(6) 式の分母の
計算処理を実行するために、データ列D(i,t)={
α(i,t),β(i,t)}(0≦t≦T)がPEi
 (1≦i≦N)にメモリから入力される。PEi (
1≦i≦N)は入力されたデータ列D(i,t)={α
(i,t),β(i,t)}(0≦t≦T)の2種類の
データα(i,t)及びβ(i,t)を用いて、時刻t
に関する積和計算 Σα(i,t)・β(i,t) を実行し、分母の計算結果を求める。この積和計算は全
てのPEにおいて並列に実行される。一方、分子の計算
処理ではPEi (1≦i≦N)は先に入力されたデー
タ列D(i,t)={α(i,t),β(i,t)}(
0≦t≦T)のデータβ(i,t)を全てのPEを一巡
するまで循環転送しながら、これと同期してPEi (
1≦i≦N)にメモリからデータ列CB (i,t)を
入力し、その時々でPEi (1≦i≦N)に入力され
るPE間の循環転送データ、データ列CB (i,t)
のデータ、先に入力されたデータ列D(i,t)のデー
タα(i,t−1)との3項間の乗算を並列に実行する
。この処理により、PEi (1≦i≦N)にはj=1
,2,・・・,Nの(i,j)の組み合わせに対する分
子の時刻tの被累積加算項が求められる。従って、時刻
tを更新して上記のような3項間の乗算に係わる処理を
実行し、各(i,j)の組み合わせに対して得られた計
算結果を各時刻t毎に累積加算すれば分子の計算結果が
求められる。上記のこれらの処理は全てPEで並列に実
行される。上記の処理過程により求められた分母、分子
の計算結果を用いて、並列に分子を分母で除算すること
により、PEi (1≦i≦N)にはj=1,2,・・
・,Nの(i,j)の組み合わせに対する状態遷移確率
a(i,j)の再推定値a+ (i,j)が求められる
。 【0044】また、以上のような並列処理方法からわか
るように、分子の計算の並列処理ではPE間の転送デー
タをα(i,t−1),PEi (1≦i≦N)にメモ
リから入力される第2のデータ列505をCF (i,
t)={c(i,i;t),c(mod(i+1|N)
,i;t),c(mod(i+2|N),i;t),・
・・,c(mod(i−1|N),i;t)}とし、分
子の3項間の乗算においてはデータ列D(i,t)={
α(i,t),β(i,t)}(0≦t≦T)からのデ
ータとしてβ(i,t)を用いればPEi (1≦i≦
N)にはj=1,2,・・・,Nの(j,i)の組み合
わせに対する分子の計算結果が得られる。 【0045】従ってPEi (1≦i≦N)にはj=1
,2,・・・,Nの(j,i)の組み合わせに対する状
態遷移確率a(j,i)の再推定値a+ (j,i)は
分母の計算結果をすべてのPEに対して一巡するまでP
E間で循環転送し、得られた分子の計算結果をその時々
に転送される分母の計算結果で除算することにより求め
られる。 【0046】[b−3]  シンボル出力確率の再推定
計算の並列処理 次にリングアレイプロセッサ構成用いたシンボル出力確
率b(i,j;k)の再推定計算の並列処理について説
明する。図7は学習処理におけるバウム−ウェルチ・リ
エスティメーション・フォーミュラスのシンボル出力確
率の再推定計算をリングアレイプロセッサ構成で並列処
理する場合のデータフローを示す。データ転送パス60
1は各PE600a,600b,・・・,600c,6
00d間に設けられる。データ入出力パス602a,6
02b,・・・,602c,602dは各PE600a
,600b,600c,600dとその管理下にあるメ
モリとの間のデータの入出力を行うためのパスである。 データ列603はPE600a,600b,・・・,6
00c,600d間で循環転送されるデータ列である。 図7に示した例ではデータ列603は{β(1,t),
β(2,t),・・・,β(i,t),・・・,β(i
,t),・・・,β(N,t)}である。第1のデータ
列604は各データ入出力パス602a,602b,6
02c,602dを介してメモリから入力される。PE
i(1≦i≦N)においてはデータ列D(i,t)は D(i,t)={α(i,t),β(i,t)}   
 (0≦t≦T) が入力される。また、第2のデータ列605は各データ
入出力パス602a,602b,602c,602dを
介してメモリから入力される。PEi(1≦i≦N)に
おいてはデータ列CB (i,t) CB (i,t)={c(i,i;t),c(i,mo
d(i+1|N);t),・・・,(i,mod(i−
1|N);t)}とデータ列GB  GB (i,t)={(g(i,i;t),g(i,m
od(i+1|N);t),・・・,g(i,mod(
i−1|N);t)}のデータが1つずつ組になって入
力される。即ち、PEi(1≦i≦N)には、{c(i
,i;t),g(i,i;t)},{i,mod(i+
1|N);t),g(i,mod(i+1|N);t)
},・・・,{c(i,mod(i−1|N);t),
g(i,mod(i−1|N);t)}の順で入力され
る。これらのデータは第1のデータ列604及び第2の
データ列605を構成するデータ列CB (i,t)、
GB (i,t)と共に、PEの管理するメモリに格納
されているものとする。 【0047】ここで、第2のデータ列GB (i,t)
のデータはシンボルOt と基準シンボルkとの類似度
を表すパラメータu(t;k)を使用して g(i,j;t)=c(i,j;t)・u(t;k)と
定義する。 【0048】シンボル出力確率b(i,j;k)の再推
定計算は(7) 式からわかるように、分母、分子の計
算内容は殆ど同一で、分子の計算にシンボルOt に関
する条件としてシンボルOt =kが付加されている点
だけが異なる。また、この分母、分子の計算は状態遷移
確率a(i,j)の再推定計算の分子の計算と全く同等
である。従って、このシンボル出力確率b(i,j;k
)の再推定計算の分母、分子の計算処理は先に述べた状
態遷移確率a(i,j)の再推定計算の分子の並列計算
処理法をそのまま応用して実行できる。 【0049】次に図7に沿って分母、分子の並列計算処
理法について説明する。先ず、PEi(1≦i≦N)は
データ入出力パス602a,602b,・・・,602
c,602dを介してメモリから第1のデータ列D(i
,t)={α(i,t),β(i,t)}    (0
≦t≦T) を入力する。そして、分母、分子の並列計算処理では、
転送データが一巡するまでPE間でデータβ(i,t)
を循環転送しながら、これと同期してPEi(1≦i≦
N)にメモリから第2のデータ列 {c(i,i;t),g(i,i;t)},{c(i,
mod(i+1|N);t),g(i,mod(i+1
|N);t)},{c(i,mod(i+2|N);t
),g(i,mod(i+2|N);t)},・・・,
{c(i,mod(i−1|N);t),g(i,mo
d(i−1|N);t)}を入力する。PEi(1≦i
≦N)ではその時々で入力されるPE間の循環転送デー
タ、第2のデータ列の2種類のデータ、第1のデータ列
のデータα(i,t−1)を用いて、(7) 式での分
母の計算についてはデータα,c,βの3項間の乗算を
実行し、分子の計算についてはデータα,g,βの3項
間の乗算を実行する。この分母、分子の乗算の処理はす
べてのPEにおいて並列に実行される。この処理により
、PEi(1≦i≦N)にはj=1,2,・・・,Nの
(i,j)の組み合わせに対する分母・分子の時刻tに
対する被累積加算項が求められる。従って、時刻tを更
新して上記のよウな3項間の乗算に係わる処理を実行し
、その計算結果を各時刻t毎に累積加算すれば、分母、
分子の計算結果が求められる。これらの処理はPE間で
並列に実行される。上記の処理過程により求められた分
母、分子の計算結果を用いて、並列に分子を分母で除算
することにより、PEi(1≦i≦N)にはj=1,2
,・・・,Nの(i,j)の組み合わせに対するシンボ
ル出力確率の再推定値としてb+ (i,j;k)が求
められる。 【0050】また、以上の並列処理方法からわかるよう
にこの計算の並列処理では複数のPE間の転送データを
α(i,t−1),PEi(1≦i≦N)にメモリから
入力される第2のデータ列を、 データ列CF ( i,t)={c(i,i;t),c
(mod(i+1|N),i;t),c(mod(i+
2|N),i;t),・・・,c(mod(i−1|N
),i;t)}と データ列GF (i,t)={g(i,i;t),g(
mod(i+1|N),it),g(mod(i+2|
N),i;t)},・・・,g(mod(i−1|N)
,i;t)}のデータを1つずつ組にしたデータ列{c
(i,i;t),g(i,i;t)},{c(mod(
i+1|N),i;t),g(mod(i+1|N),
i;t) },{c(mod(i+2|N),i;t)
,g(mod(i+2|N),i;t)},・・・,{
c(mod(i−1|N),i;t),g(mod(i
−1|N),i;t)}とし、3項間の乗算においては
データ列D(i,t)からのデータとしてデータβ(i
,t)を用いれば、PEi(1≦i≦N)にはj=1,
2,・・・、Nの(j,i)の組み合わせに対するシン
ボル出力確率の再推定値b+ ( j,i;k)が求め
られる。 【0051】以上、PEi(1≦i≦N)においてj=
1,2,・・・,Nの(i,j)(または(j,i))
の組み合わせに対する状態遷移確率の再推定値(a+ 
(i,j)(またはa+ (j,i))及びシボル出力
確率の再推定値b+ (i,j;k)(またはb+ (
j,i;k))が求められると、PEi(1≦i≦N)
はシンボルOt と基準シンボルkとの類似度を表すパ
ラメータu(t;k)を用いてkに関する以下の積和計
算Σu(t;k)・b+ (i,j;k)または Σu(t;k)・b+ (j,i;k)を実行してシン
ボルOt に対するシンボル出力確率の再推定値b+ 
(i,j;Ot )又は、b+ (j,i;Ot )を
求め、その結果と状態遷移確率の再推定値a+ (i,
j)(またはa+ (j,i))との乗算を実行し、デ
ータc(i,j;t)(又は、c(j,i;t))の再
推定値c+ (i,j;t)(又はc+ (j,i;t
))を求める。 【0052】ここに再推定値を得るための流れを示す。 b+ (i,j;Ot )=Σu(t;k)・b+ (
i,j;k) 又は、 b+ (i,i;Ot )=Σu(t;k)・b+ (
j,i;k) 次に c+ (i,j;t)=b+ (i,j;Ot )・a
+ (i,j) 又は c+ (j,i;t)=b+ (j,i;Ot )・a
+ (j,i) この結果はPEの管理下にあるメモリに格納される。 【0053】また、データg(i,j;t)(又はg(
j,i;t))の再推定値g+ (i,j;t)(又は
g+ (j,i;t))はu(t;k)・b+ (i,
j;Ot )(又はu(t;k)・b+ (j,i;O
t )の乗算結果と状態遷移確率の再推定値a+ (i
,j)(又はa+ (j,i))との乗算を実行するこ
とによって求め、   g+ (i,j;t)={u(t;k)・b+ (
i,j;Ot )}                
        ・a+ (i,j)  g+ (j,
i;t)={u(t;k)・b+ (j,i;Ot )
}                        
・a+ (j,i)その結果はPEの管理下にあるメモ
リに格納される。 【0054】以上のようなバウムウェルチ・リエスティ
メーション・フォーミュラスの3種類の再推定計算に対
する並列計算処理を実行することにより、リングアレイ
プロセッサの各PEで求められる計算結果の分布は以下
のようになる。 【0055】PEi(1≦i≦N)の管理するメモリに
格納される計算結果: (a)PE間の転送データをα(i,t)とした並列処
理法の場合 π+ (i); 1≦t≦Tに対する c+ (i,i;t),c+ (mod(i+1|N)
,i;t),・・,c+ (N,i;t),c+ (1
,i;t),c+ (2,i;t),・・,c+ (m
od(i−1|N),i;t); 1≦t≦Tに対する g+ (i,i;t),g+ (mod(i+1|N)
,i;t),・・,g+ (N,i;t),g+ (1
,i;t),g+ (2,i;t),・・,g+ (m
od(i−1|N),i;t); (b)PE間の転送データをβ(i,t)とした並列処
理方法の場合 π+ (i); 1≦t≦Tに対する c+ (i,i;t),c+ (i,mod(i+1|
N),i;t),・・,c+ (i,N,;t),c+
 (i,1;t),c+ (i,2;t),・・,c+
(i,mod(i−1|N);t);1≦t≦Tに対す
る g+ (i,i;t),g+ (i,mod(i+1|
N);t),・・,g+ (i,N;t),g+ (i
,1;t),g+ (i,2;t),・・,g+ (i
,mod(i−1|N);t); 尚、上記の(a),(b)の計算結果の並べ方は、計算
結果が得られる順番に同じである。 【0056】(C)  学習処理に必要となるデータの
再配置処理の内容 これまで、説明してきたフォワード−バックワード・プ
ロセデュアとバウムウェルチ・リエスティメーション・
フォーミュラスに対するリングアレイプロセッサ構成を
用いた並列処理法とそれによって各PEのメモリに得ら
れる処理結果の分布から学習処理に必要となるデータの
再配置処理の内容を説明する。 【0057】互いの処理結果を使ってフォワード−バッ
クワード・プロセデュアとバウムウェルチ・リエスティ
メーション・フォーミュラスの処理を繰り返し実行する
学習処理は、具体的には次のような処理を実行するに他
ならない。。先ず、初期状態確率π(i)、状態遷移確
率a(i,j),シンボル出力確率b(i,j;k)の
初期値を適当に設定し、フォワード−バックワード・プ
ロセデュアの処理により確率パラメータα(i,t),
β(i,t)を計算する。そして、上記の3種類の確率
の初期値とフォワード−バックワード・プロセデュアよ
り求められた2種類の確率パラメータα(i,t),β
(i,t)を用いてバウムウェルチ・リエスティメーシ
ョン・フォーミュラスより初期状態確率π(i),状態
遷移確率a(i,j),シンボル出力確率b(i,j;
k)の再推定を行い、その結果をそれぞれπ+ (i)
,a+ (i,j),b+ (i,j;k)とする。再
推定結果が初期と異なれば、初期値を再推定値に置き換
えて、再度、フォワード−バックワード・プロセデュア
とバウム−ウェルチ・リエスティメーション・フォーミ
ュラスの処理を行う。このような処理をバウム−ウェル
チ・リエスティメーション・フォーミュラスにより求め
られた再推定値がフォワード−バックワード・プロセデ
ュアの計算で用いられた各種の確率の値に一致するまで
実行する。 【0058】上記の繰り返しの処理の内容から、繰り返
し処理の実行中はフォワード−バックワード・プロセデ
ュアの処理で用いられるデータπ(i),a(i,j)
,b(i,j;k)としては、バウムウェルチ・リエス
ティメーション・フォーミュラスの処理で得られるπ+
 (i),a+ (i,j),b+ (i,j;k)を
用い、バウムウェルチ・リエスティメーション・フォー
ミュラスで用いるデータはフォワード−バックワード・
プロセデュアの処理で用いられるデータπ(i),a(
i,j),b(i,j;k)とフォワード−バックワー
ド・プロセデュアの処理で得られるデータα(i,t)
,β(i,t)である。 【0059】従って、データの再配置処理の目的はフォ
ワード−バックワード・プロセデュアの並列処理後にP
Eのメモリに保持されるデータの分布がバウム−ウェル
チ・リエスティメーション・フォーミュラスの並列処理
に対する初期データ分布にバウムウェルチ・リエスティ
メーション・フォーミュラスの並列処理後のPEのメモ
リに保持されるデータの分布がフォワード−バックワー
ド・プロセデュアに対する並列処理の初期データ分布に
適するようにすることである。 【0060】上記の各並列処理法の説明から、それぞれ
の並列処理において必要となるPEi(1≦i≦N)の
管理下にあるメモリのデータ分布を整理し、以下に示す
。 【0061】[C−1]  フォワード−バックワード
プロセデュアの前向きパス・アルゴリズムのデータ分布
使用するデータ:α(i,0)=π(i),CF (i
,t)={c(i,i;t),c(mod(i+1|N
),i;t),・・・,c(mod(i−1|N),i
;t)}(1≦t≦T) 得られるデータ:{α(i,1),・・・,α(i,t
),・・・,α(i,T)} [C−2]  フォワード−バックワードプロセデュア
の後向きパス・アルゴリズムのデータ分布使用するデー
タ:β(i,T),CB (i,t)={c(i,i;
t),c(i,mod(i+1|N);t),・・・,
c(i,mod(i−1|N);t)}(1≦t≦T) 得られるデータ:{β(i,T−1),・・・,β(i
,t),・・・,β(i,0)} [C−3]  バウム−ウェルチ・リエスティメーショ
ン・フォーミュラスの再推定計算のデータ分布(1) 
PE間の循環転送データがα(i,t)の場合使用する
データ:{α(i,0),α(i,1),・・・,α(
i,t),・・・,α(i,T)}{β(i,0),β
(i,1),・・・,β(i,t),・・・,β(i,
T)}, CF (i,t)={c(i,i;t),c(mod(
i+1|N),i;t),c(mod(i−1|N),
i;t)}(1≦t≦T) CF (i,t)={g(i,i;t),g(mod(
i+1|N),i;t),g(mod(i−1|N),
i;t)}(1≦t≦T) 得られるデータ:  π+ (i),CF + (i,
t)=  {c+ (i,i;t),c+ (mod(
i+1|N),i;t),c+ (mod(i−1|N
),i;t)}(1≦t≦T) CF + (i,t)={g+ (i,i;t),g+
 (mod(i+1|N),i;t),g+ (mod
(i−1|N),i;t)}(1≦t≦T) (2) PE間の循環転送データがβ(i,t)の場合
使用するデータ:{α(i,0),α(i,1),・・
・,α(i,t),・・・,α(i,T)}{β(i,
0),β(i,1),・・・,β(i,t),・・・,
β(i,T)}, CB (i,t)={c(i,i;t),c(i,mo
d(i+1|N);t),・・・,c(i,mod(i
−1|N);t)}(1≦t≦T) CB (i,t)={g(i,i;t),g(i,mo
d(i+1|N);t),・・・,g(i,mod(i
−1|N);t)}(1≦t≦T) 得られるデータ:  π+ (i),CB + (i,
t)=  {c+ (i,i;t),c+ (mod(
i+1|N);t),・・・,c+ (i,mod(i
−1|N);t)}(1≦t≦T) CB + (i,t)={g+ (i,i;t),g+
 (i,mod(i+1|N);t),・・・,g+ 
(i,mod(i−1|N);t)}(1≦t≦T)上
記の各並列処理法に対するデータ分布の整理結果から次
のことがわかる。 【0062】(1) フォワード−バックワード・プロ
セデュアの前向きパス・アルゴリズム、後ろ向きパス・
アルゴリスムに対するそれぞれの並列処理により得られ
るデータ分布を合成したものはバウム−ウェルチ・リエ
スティメーション・フォーミュラスの並列処理で使用す
るデータ分布に適している。 【0063】(2) フォワード−バックワード・プロ
セデュアの前向きパス・アルゴリズムに対する並列処理
で使用されるデータ列CF (i,t)は、PE間の循
環転送データがα(i,t)の場合のバウムウェルチ・
リエスティメーション・フォーミュラスに対する並列処
理で使用するデータ列CF (i,t)に同じである。 【0064】(3) フォワード−バックワード・プロ
セデュアの後向きパス・アルゴリズムに対する並列処理
で使用されるデータ列CB (i,t)は、PE間の循
環転送データがβ(i,t)の場合のバウム−ウェルチ
・リエスティメーション・フォーミュラスに対する並列
処理で使用するデータ列CB (i,t)に同じである
。 【0065】(4) PE間転送データをα(i,t)
とした場合のバウムウェルチ・リエスティメーション・
フォーミュラスに対する並列処理から得られるデータ列
CF + (i,t)は、フォワード−バックワード 
 プロセデュアの前向きパス・アルゴリズムの並列処理
に使用されるデータ列CF (i,t)と同等であるが
、後ろ向きパス・アルゴリズムの並列処理に使用される
データ列CB (i,t)に対しては、これらのデータ
列を構成するデータの(x,y)−インデックスが転置
の関係にある。 【0066】(5) PE間転送データをβ(i,t)
とした場合のバウム−ウェルチ・リエスティメーション
・フォーミュラスに対する並列処理から得られるデータ
列CB + (i,t)はフォワード−バックワード・
プロセデュアの後ろ向きパス・アルゴリズムの並列処理
に使用されるデータ列CB (i,t)と同様であるが
、前向きパス・アルゴリズムの並列処理に使用されるデ
ータ列CF (i,t)に対してはこれらのデータ列を
構成するデータの(x,y)−インデックスが転置の関
係にある。 【0067】上記からバウム−ウェルチ・リエスティメ
ーション・フォーミュラスの並列処理により得られる処
理結果のデータ列はPE間転送データをα(i,t)又
はβ(i,t)のどちらを選択してもフォワード−バッ
クワード・プロセデュアの前向きパス・アルゴリズム又
は、後ろ向きパス・アルゴリズムの処理のどちらか一方
のデータ列と同等になるだけであり、他方の処理を実行
するためには各PEにおいて得られたデータ列のデータ
を再配置する必要がある。その内容は(4)、(5)に
示したように、構成するデータの(x,y)−インデッ
クスが転置関係にあるデータ列CF (i,t)(ある
いはCF + (i,t))(1≦i≦N)とデータC
B (i,t)(あるいはCB + (i,t))(1
≦i≦N)との相互変換である。 【0068】図8は学習処理に必要となるデータの再配
置処理の内容を示す。同図はこの相互変換の内容を示し
ている。同図はすべてのPEのメモリに格納されるデー
タ列CF (i,t)(あるいはCF + (i,t)
),CB (i,t)(あるいはCB + (i,t)
)を構成するデータの(x,y)−インデックスを列挙
する形式で示している。データの時刻tに関するインデ
ックスtはすべてのデータで同一であるので省略してあ
る。データ分布Pがデータ列CB (i,t)(あるい
はCB + (i,t))を構成するデータから構成さ
れたもので、データ分布Qがデータ列CF (i,t)
(あるいはCF + (i,t))を構成するデータか
ら構成されたものである。また、ある時刻tに対するこ
れらのデータ列のデータは各メモリの連続するアドレス
(図8の例ではアドレスh〜アドレス(h+N−1)の
範囲)に格納されるものとする。 【0069】以下図8に沿ってデータの再配置処理法に
ついて説明する。同図に示したデータ分布P,Qをそれ
ぞれ1つの行列と考え、各行列P,Qの同一の要素が保
持されるPE番号と各PEに保持されるデータの順番を
アドレスと考え、この同一の要素のそれぞれのPEにお
けるアドレスとの関係について説明する。 【0070】行列Pの要素において、PEi(1≦i≦
N)に保持される要素とそのアドレスとの関係は   
   アドレス                  
        行列Pの要素        h  
                         
     (i,i)    h+1        
                        (
i,mod(i+1|N))    h+2     
                         
  (i,mod(i+2|N))      ・  
                         
                 ・      ・
                         
                   ・  h+N
−1                       
       (i,mod(i−1|N))である。 【0071】上記の行列Pの要素のインデックスを(i
,j),アドレスをadr(PEi;P)としてアドレ
スadr(PEi;P)を要素のx−インデックス、y
−インデックスを使って表現することを考える。 PEiに保持される要素のy−インデックスはその値が
Nに等しくなるまでは、iから順番に1つずつ増加し、
それ以降は1からi−1に等しくなるまで1つずつ増加
する。従って、i≦j(≦N)の場合はこのy−インデ
ックス列の何れかに等しい。y−インデックスiのアド
レスがhであるので、y−インデックスjをもつ要素の
アドレスはj−i+hと表現できる。一方、i≦j<i
の場合は、このy−インデックスjは1からi−1まで
1つずつ増加するy−インデックス列の何れかに等しい
。y−インデックスの値がNの要素のアドレスは(N−
i+h)であるから、y−インデックスの値がNの要素
のアドレスは(N−i+h)であるから、y−インデッ
クスの値が1の要素のアドレスは(N−i+h+1)で
ある。従って、1≦j<iの範囲のy−インデックスj
を持つ要素のアドレスは(N−i+h+j)で与えられ
る。 【0072】以上により行列Pの要素(i,j)のアド
レスは、                     j−i+h
      for       i≦j≦N  ad
r(PEi;P)                 
                         
      ・・・(8)             
        N−i+h+j    for   
    1≦j<iと表すことができる。 【0073】次に行列Qの要素に対して、上記の行列P
の要素と同一の要素が保持されるPE番号とそのアドレ
スを求めることにより、行列P,Qの同一要素を保持す
るPE番号の関係及びアドレスの関係を明らかにする。 【0074】行列Qの要素において、PEi(1≦i≦
N)に保持される要素とそのアドレスの関係は    
  アドレス                   
       行列Pの要素        h   
                         
(i,i)    h+1             
               (mod(i+1|N
),i)    h+2              
              (mod(i+2|N)
,i)      ・               
                         
    ・      ・             
                         
      ・  h+N−1           
               (mod(i−1|N
),i)である。 【0075】上記の関係から、PE番号はそのPEが保
持する要素のy−インデックスに等しいので、行列Qに
おいて、行列Pのy−インデックスjの要素はPEjに
保持されることになる。上記のアドレスと要素との関係
においてiをjに置き換えて考えると、このPEjに保
持される要素のx−インデックスはjから始まり、その
値がNに等しくなるまで、1つずつ増加する。それ以降
は1からj−1まで1つずつ増加する。j≦i(≦N)
の場合は、要素のx−インデックスiはjからNまで1
つずつ増加するx−インデックス列の何れかに等しいこ
とになるから、x−インデックスiを持つ要素のアドレ
スはi−j+hで与えられる。一方、1≦i<jの場合
は、このインデックスiは1からj−1まで1つずつ増
加するx−インデックス列のいずれかに等しい。故に1
≦i<iの範囲のx−インデックスiをもつ要素のアド
レスはN−j+h+iで表される。 【0076】従って、行列Qの要素(i,j)のアドレ
スadr(PEj;Q)は                     i−j+h
      for       j≦i≦N  ad
r(PEi;P)                 
                         
      ・・・(8)             
        N−j+h+i    for   
    1≦i<jと表すことができる。 【0077】以上の結果を整理すると、(8) 式及び
(9) 式から行列P,Qの同一要素(i,j)に対し
て、この要素を保持するPE番号とそのPEにおけるア
ドレスの関係は以下の表1のように整理することができ
る。 【0078】 【表1】次に、この表1の結果を用いて、行列P→行列
Q,または、行列Q→行列Pの要素の再配置方法を明ら
かにする。 【0079】表一からわかるように、要素(i,j)が
保持されるPE番号及びアドレスは、その要素のx−イ
ンデックス、y−インデックスの大小関係によって分け
て考えなければならない。行列Pの要素のインデックス
の大小関係とアドレスとの関係について説明する。図9
は要素のインデックス差と再配置前アドレス、再配置先
アドレスPE間距離との関係を示すグラフである。同図
は要素のx,y−インデックス差(j−i)と再配置前
アドレスK,再配置先アドレスK’,PE間距離Lとの
関係を示している。横軸は要素のインデックスの差(j
−i)であり、縦軸は要素のアドレスである。81は再
配置前アドレスK,82は再配置先アドレスK,83は
PE間距離Lである。要素のインデックスi,jの大小
関係から決められる(j−i)の定義域は{−(N−1
),−1},{0}、{1、(N−1)}の3種類に分
けられる。但し、(j−i)は上記の範囲の整数とする
。この3種類の定義域に存在する要素の再配置処理の条
件を以下に示す。 【0080】(1)i=jの場合; 行列Pの要素(i,j)が保持されるPE番号はi,そ
のアドレスはhである。一方、行列Qの要素(i,j)
が保持されるPE番号はi(j=iより)であり、その
アドレスはhである。即ち、行列でP,Qのアドレスh
の要素は同一番号のPEに保持されるので、再配置処理
の必要はない。 【0081】(2) i<jの場合; 行列Pの要素(i,j)は、PEiのアドレス(j−i
+h)に保持される。一方、行列Qの要素(i,j)は
PEjのアドレス{N−(J−1)+h}に保持される
。従って、この定義域の要素に対する行列P→行列Qの
再配置処理では、PEiのアドレス(j−i+h)の要
素をPEjのアドレス{N−(j−i)+h}に再配置
しなければならない。 【0082】(3) i>jの場合; 行列Pの要素(i,j)はPEiのアドレス{N−(i
−j)+h}に保持される。一方、行列Qの要素(i,
j)はPEjのアドレス(i−j+h)に保持される。 従って、この定義域の要素に対する行列P→行列Qの再
配置処理では、PEiのアドレス{N−(i−j)+h
}の要素をPEjのアドレス(i−k+h)に再配置し
なければならない。 【0083】これらの再配置条件から、データの再配置
処理には、PE番号の変換と各要素が保持されるアドレ
スの変換とが必要である。従って、リングアレイプロセ
ッサ構成では、(再配置前のアドレスから要素を取り出
す)→(この要素を再配置先のPEへ転送する)→(転
送された要素を再配置先のアドレスに格納する)の手順
でデータの再配置処理を実行しなければならない。この
手順の中の要素の再配置先のPEへの転送は各再配置条
件毎に異なるので、その内容を以下に述べる。ここで、
i=jの場合は上記の結果から再配置処理は必要としな
いため、i≠jの場合のみ考える。また、再配置処理の
PE間データ転送において経由するPEの個数をPE間
距離Lと定義する。 【0084】(1) i<jの場合; リングアレイプロセッサ構成上でのデータ転送方向はP
E番号の大→小であるから、PEi→PEjのデータ転
送は、 PEi→  PE1→  PEN→  PEjの経路で
実行しなければならない。従って、PE間距離Lは、P
Ei→  PE1が(i−1),PE1→PENが1,
PEN→PEjが(N−j)であるから、L=(i−1
)+1+(N−j)=N−(j−i)である。 【0085】(2) i>jの場合;データ転送はPE
i→  PEjで実行できるので、PE間距離LはL=
i−j である。 【0086】以上の結果をまとめ、PE間距離L,再配
置再アドレスK’と要素のインデックス差(j−i)と
の関係を先の図9のグラフにより次のことが分かる。 【0087】(1) 要素群{(i,j)|j−i=k
}と要素群{(i,j)|j−i=k−N}のアドレス
は同一で、その値はk+h(1≦k≦N−1)である。 【0088】このアドレス(k+h)に保持される要素
群のx,y−インデックスの関係について説明する。図
10はアドレスに保持される要素群のx−インデックス
とy−インデックスの関係を示す。要素群{(i,j)
|j−i=k}は同図中、j−切片がkの直線90上の
格子点に対応し、要素群{(i,j)|j−i=k−N
}はi−切片がN−kの直線91上の格子点に対応する
。それぞれの直線上の格子点の個数はi,jの定義域1
≦i,j≦Nから、前者は(N−k)個、後者はk個で
ある。従って、同一アドレス(k+h)に存在する要素
の個数はN個である。これはkのすべての場合に対して
成立し、それぞれのkに対する要素は互いに排反である
。 【0089】即ち、要素群{(i,j)|j−i=k,
j−i=k−N}の要素はN個存在し、これらは1個ず
つN個のPEに保持され、そのアドレスは(k+h)で
ある。 【0090】(2) 同一アドレス値(k+h)をもつ
要素群のPE間距離LはN−kである。即ち、同一アド
レスの要素のPE間の転送回数は等しい。従って、各P
Eの同一アドレスの要素はリングアレイプロセッサ構成
上で並列データ転送が可能である。 【0091】(3) 同一アドレス値(k+h)をもつ
要素群の再配置先アドレスK’はその要素群のPE間距
離Lにhを加算した値、即ち、(N−k+h)に等しい
。従って、(2) に示した並列データ転送の対象とな
る要素群はそのPE間データ転送回数の値にhを加算し
たアドレス(N−k+h)に配置すればよい。 【0092】上記の内容の(1) 〜(2) より、デ
ータ再配置処理は次のような並列データ転送処理で実行
できる。 アドレス(k+h)の要素群に対しては(N−k)回の
PE間転送を行い、アドレス(N−k+h)に配置する
。また、アドレス(N−k+h)の要素群に対してはk
回のPE間転送を行い、アドレス(k+h)に配置する
。即ち、PE間での並列データ転送を行いながら、アド
レス(k+h)の要素群とアドレス(N−k+h)の要
素群とを交換する処理である。再配置処理の対象となる
要素群のアドレス(k+h)とPE数Nの値によりPE
間転送回数及び再配置先アドレスが決定されるので、各
PEはPE間の転送回数、再配置先アドレスを全く同一
の制御により実現できる。 【0093】これまでの説明は行列P→行列Qの再配置
処理を例に述べてきたが、行列Q→行列Pの再配置処理
の場合についても全く同一である。 【0094】これまでの説明をまとめ、要素群の再配置
処理の並列処理方法を以下に示す。 (D)  再配置処理の並列処理方法 N個のPEからなるリングアレイプロセッサ構成におい
て、(但し、データ転送方向はすべてのPEi(1≦i
≦N)に対して PEi→PE(mod(i−1|N))である。ここで
、mod(m|N)はmがNの整数倍であればN,mが
Nの整数倍でなければmをNで割ったときの剰余を表す
) ステップ1; r=1,2,・・・,[N/2]に対してステップ2〜
ステップ7を実行する。(rは繰り返し数)ここで[x
]はxを越えない最大整数を表す。 ステップ2;全てのPEi(1≦i≦N)において、ア
ドレス(r+h)の要素を取り出す。 ステップ3;全てのPEi(1≦i≦N)において、取
り出された要素を次段のPEに送信すると同時に、前段
PEから取り出された要素を受信する。このようなデー
タ電送を(N−r)回繰り返す。 ステップ4;Nが偶数、かつr=[N/2]のとき、す
べてのPEi(1≦i≦N)において、転送されてきた
要素をアドレス(N−r+h)に格納し、処理を終了す
る。 ステップ5;全てのPEi(1≦i≦N)において、ア
ドレス(N−r+h)の要素を取り出すと共に、転送さ
れてきた要素をアドレス(N−r+h)に格納する。 ステップ6;全てのPEi(1≦i≦N)において、ア
ドレス(N−r+h)から取り出された要素を次段PE
へ送信すると同時に、前段PEから取り出された要素を
受信する。このようなデータ転送をr回繰り返す。 ステップ7;全てのPEi(1≦i≦N)において、転
送されてきた要素をアドレス(r+h)に格納する。 【0095】この並列処理方法ではステップ1の繰り返
し処理回数は[N/2]で規定されることから、Nが偶
数の場合に対してステップ4の特殊な処理を設けている
。これは、次の理由からである。 【0096】Nが奇数の場合は[N/2]は(N−1)
/2に等しいので、ステップ2で取り出される要素のア
ドレスは{h+1,h+2,・・・,h+(N−1)/
2}である。また、これらのアドレスの要素が格納され
るアドレスは{h+(N−1),h+(N−2),・・
・・・,h+(N+1)/2}である。一方、ステップ
5で取り出される要素のアドレスは{h+(N−1),
h+(N−2),・・・・・,h+(N+1)/2}で
あり、格納されるアドレスは{h+1,h+2,・・・
,h+(N−1)/2}である。従って、ステップ1〜
ステップ7の処理は互いに重複することなく実行できる
。 【0097】Nが偶数の場合は[N/2]はN/2に等
しいので、ステップ2で取り出される要素のアドレスは
{h+1,h+2,・・・,h+N/2}である。また
、これらのアドレスの要素が格納されるアドレスは{h
+(N−1),h+(N−2),・・・・・,h+N/
2}である。ステップ4のステップがないとすると、ス
テップ5で取り出される要素のアドレスは{h+(N−
1),h+(N−2),・・・・・,h+N/2}であ
り、格納されるアドレスは{h+1,h+2,・・・,
h+N/2}である。このためアドレスN/2の要素の
再配置処理に伴うデータ転送処理は重複して実行される
。従って、ステップ4のステップを設けておけば、ステ
ップ2〜ステップ4の処理によってアドレスN/2の要
素の再配置が完了し、このアドレスの要素に対する再配
置処理が重複することなく、無駄な処理ステップを削減
することができる。 【0098】[D−1]  Nが偶数の場合における再
配置処理の並列処理方法 次にNが偶数の場合について説明する。N=6(偶数)
の場合の再配置処理例に対して、再配置処理前のデータ
分布、データ再配置の並列処理過程及び再配置処理後の
データ分布について説明する。図11は再配置処理前の
各PEのデータ分布を示す。また、図12は本発明の一
実施例の再配置処理過程を示す。図13は本発明の一実
施例の再配置処理後の各PEデータ分布を示す。図11
の例では、PEに割り付けられた要素のx−インデック
スはPE番号に等しい。先に述べた再配置処理の並列処
理方法に従って、図12に示した並列処理過程を図13
と共に説明する。 【0099】図12におけるステップ1では先ず、アド
レス(h+1)の要素をすべてのPEで取り出す。取り
出された全ての要素に対するPE間転送回数はN−1=
6−1=5であるから、ステップ2〜ステップ6はこれ
らの要素をPE間で循環転送している過程を示している
。 【0100】そして、ステップ6はこれらの要素に対す
る再配置先のPEへの転送が完了する。 【0101】ステップ7では、これらの転送された要素
は、再配置先のアドレスの要素と交換する形式で格納さ
れる。即ち、再配置先のアドレス(h+5)の要素を取
り出し、このアドレス(h+5)に転送された要素を格
納する。 【0102】ステップ8では、交換する形式で取り出さ
れたアドレス(h+5)の要素を、転送回数N−5=6
−5=1だけPE間で転送し、再配置先のPEへの転送
を完了する。 【0103】ステップ9ではこれらの要素は再配置先ア
ドレス(h+1)に格納される。このとき、アドレス(
h+1)の要素はすでに再配置されているので、転送さ
れてきた要素をそのままこのアドレス(h+1)に格納
する。 【0104】以上のように、ステップ1〜ステップ9に
おいて、PE間の循環データ転送を介して、アドレス(
h+1)の要素とアドレス(h+5)の要素との交換が
完了する。ステップ9では、さらに、次の交換の処理の
対象となるアドレス(h+2)の要素が取り出される。 そして、これらの要素はステップ10〜ステップ13に
示すように、N−2=6−2=4回のPE間での循環デ
ータ転送を経て、再配置先のPEに配置され、アドレス
(h+4)に格納される。また、このとき、アドレス(
h+4)に格納されていた要素が取り出される。この様
子を示しているのがステップ14である。 【0105】ステップ15からステップ16ではこのア
ドレス(h+4)の要素はN−4=6−4=2回のPE
間循環転送を経て、再配置先PEへ配置され、そのPE
のアドレス(h+2)に格納される。 【0106】アドレス(h+3)の要素に対しては、再
配置先のアドレスが(h+3)であるので、このアドレ
スから取り出した要素はN−3=6−3=3回のPE間
循環データ転送を経て、再配置先のPEに配置され、取
り出しアドレスと同じアドレス(h+3)に格納される
。これらの処理過程を示しているのがステップ18〜ス
テップ21であり、このステップ21で全ての再配置処
理が完了する。 【0107】図13のデータ分布は図12による再配置
処理過程を経て得られた再配置処理後のものである。こ
の分布では各アドレスの要素に対するインデックスに対
して転置の関係になっている。再配置処理が正常に実行
されたことを示している。 【0108】[D−2]  Nが奇数の場合における再
配置処理の並列処理方法 次にNが奇数の場合について説明する。N=5(奇数)
の場合の再配置処理例に対して、再配置処理前のデータ
分布、データ再配置の並列処理過程及び再配置処理後の
データ分布について説明する。図14は再配置処理前の
各PEのデータ分布を示す。また、図15は本発明の他
の実施例の再配置処理過程を示す。図16は本発明の一
実施例の再配置処理後の各PEデータ分布を示す。Nが
偶数の場合と全く同様の処理過程で再配置処理が実行で
きる。図15のステップ1〜ステップ6はN−1=5−
1=4回のPE間循環データ転送を経て、アドレス(h
+1)の要素がアドレス(h+4)に再配置される。 【0109】また、ステップ6〜ステップ8ではN−1
=5−4=1回のPE間循環データ転送を経て、アドレ
ス(h+4)の要素がアドレス(h+1)に再配置され
る。これにより、アドレス(h+1)の要素とアドレス
(h+4)の要素に関する再配置処理が完了する。以後
、ステップ8以降についても、PE間循環データ転送を
介したアドレス(h+2)の要素とアドレス(h+3)
の要素との交換が行われ、ステップ15において、全て
の要素に対する再配置処理が完了する。 【0110】図14、図16から、再配置処理後のデー
タ分布を比較すると、PEの各アドレスの要素に対する
インデックスは互いに転置の関係になっており、再配置
処理が終了したことがわかる。 【0111】 (E)再配置処理の並列処理方法における処理時間[E
−1]    総処理時間 次に上記の並列処理方法を用いて再配置処理を実行した
場合の処理時間を見積もる。先ず、データ転送に要する
処理時間を、PE間のデータ転送回数の総和から見積も
る。各PEの同一アドレスの要素は、全て、PE間のデ
ータ転送回数が同一で、且つ、リングアレイプロセッサ
の構成上のPE間で並列転送が可能である。 【0112】上記の並列処理方法では、Nの偶数、奇数
のそれぞれの場合に対する問題に対処してあるので、総
転送回数は1つのPEの各アドレスの要素の転送回数の
総和をとることにより求められる。 【0113】アドレス(h+r)のPE間データ転送回
数は(N−r)であるから、転送回数の総和をTtrと
すると、 【0114】 【数9】である。 【0115】従って、1回当たりのデータ転送時間をS
(tr) とすると、PE間データ転送に要する総処理
時間S(tr−all) は(10)式を用いて、  
S(tr−all) =(1/2)・N・(N−1)・
S(tr)      ・・・(11)で表される。 【0116】 [E−2]  要素の取り出し及び、再格納処理時間次
に各PEに格納されている要素の取り出し、及び再格納
に要する処理時間を見積もる。1つの要素を取り出すの
に要する時間をS(R),格納するのに要する時間をS
(W) とする。上記の並列処理方法では、各PEの同
一のアドレスの要素は同時に取り出され、リングアレイ
プロセッサ構成上で並列にPE間データ転送された後、
同時に再配置先のアドレスに格納される。すなわち、要
素の取り出し、または、再格納の回数は1つのPEにお
ける回数を考えればよく、その回数は再配置の対象にな
るアドレスの個数に等しいから(N−1)回(アドレス
0の要素は再配置処理の必要がないので、再配置処理が
必要となる要素は(N−1)個)である。従って、各P
Eでの要素取り出し、再格納に要する総処理時間S(R
/W) は、     S(R/W) =(N−1)・{S(R) +S(
W) }                ・・・(1
2)で表される。 【0117】(11)、(12)式より、再配置処理に
要する総処理時間S(arng)は、   S(arng)  =S(tr−all) +S(
R/W)             =(1/2)・N
・(N−1)・S(tr) +(N−1)      
          ・{S(R) +S (W)} 
           =(N−1)・{(1/2)・
N・S(tr)+S(R) +S(W) }     
                         
                         
   ・・・(13)となる。 【0118】(13)式の{  }の第2、第3の項は
第1項に比べて無視できるとする(第1項はNに比例、
第2、第3はNに関係なく一定)と、総処理時間S(a
rng)は、    S(arng)  ≒(1/2)
・N・(N−1)・S(tr)        ・・・
(14)と近似できる。すなわち、総処理時間S(ar
ng)はPE間データ転送に要する処理時間に支配され
る。従って、N(PE数)の偶数、奇数に関係なく、再
配置処理はO(N2 /2)の処理時間で実行できる。 【0119】 (F)  並列処理方法による再配置処理の制御方法上
記の並列処理方法を用いて再配置処理を実行する場合の
制御方法について説明する。上記の並列処理方法におい
て、並列にPE間データ転送される要素は全て同一アド
レスの要素であり、その転送回数も同一であることから
、あるアドレスから要素を取り出す場合のアドレス設定
、転送回数のカウント、再格納時のアドレスの設定は、
どのPEでも全く同じである。従って、この再配置処理
は個々のPEで全く同一の制御を行うことによって実現
できる。 【0120】図17は本発明のデータの再配置処理の制
御フローチャートを示す。このフローチャートは上記の
再配置処理の並列処理方法に対応するものである。本発
明の再配置処理の制御方法の特徴は互いに交換の対象と
なる要素のアドレス値をPE間データ転送の転送回数の
カウントに用いる点である。以下図17に従って先に説
明した再配置処理の並列処理過程との関係を明確にしな
がら説明する。 【0121】ステップ110;要素取り出しアドレス/
再格納アドレス用のカウンタCA,CBに初期値を設定
する。初期値としては、カウンタCAには“h+1”、
カウンタCBには“h+N−1”を設定する。この2つ
のカウンタCA,CBに設定されたアドレス値は再配置
処理の並列処理において、互いにその要素を交換する対
象のアドレスである。また、ループ回数を指定するパラ
メータBR1には[N/2]+hを設定し、Nの偶数・
奇数の判定用のパラメータBR2にはNを設定する。 【0122】ステップ111;全てのPEにおいて、同
時にカウンタCAで示されるアドレスの要素を取り出す
と共に、再格納アドレスを示すカウンタCBの内容を転
送回数をカウントするカウンタCTにロードする。 【0123】ステップ112;全てのPEにおいて、取
り出された要素を次段のPEへ送信すると同時に前段P
Eからの要素を受信する。このとき、すべてのPEにお
いて、カウンタCTをデクリメントする。 【0124】ステップ113;カウンタCTの値が“h
”になるまで、PE間での要素の転送とカウンタCTの
デクリメント(ステップ112)を繰り返す。カウンタ
CTの値が“h”になったら、転送された要素は再配置
先のPEに存在するから、PE間データ転送を終了し、
その転送されてきた要素をカウンタCBで示されるアド
レスに格納する。 【0125】ステップ114;カウンタCTの値が“h
”のとき、転送された要素は再配置先のPEに存在する
から、PE間のデータ転送を終了し、その転送されてき
は要素をカウンタCBで示されるアドレスに格納する。 このとき、カウンタCBで示されるアドレスには再配置
処理前の別の要素が格納されているため、転送されてき
た要素をこのカウンタCBで示されるアドレスに格納す
る。また、パラメータBR2が偶数であり、且つカウン
タCAがパラメータBR1であれば、処理を終了する。 【0126】ステップ115;カウンタCAの内容をカ
ウンタCTにロードする。そして、すべてのPEにおい
て、カウンタCBで示されるアドレスから取り出された
要素を次段のPEへ送信すると同時に、前段のPEから
の要素を受信する。 【0127】ステップ116;すべてのPEにおいて、
カウンタCTをデクリメントする。 【0128】ステップ117;このような処理をカウン
タCTの値が“h”になるまで繰り返す。 【0129】ステップ118;カウンタCTの値が“h
”になったら、転送されてきた要素をカウンタCAの示
すアドレスに格納する。カウンタCAの示すアドレスの
要素はすでに再配置処理されているから、転送された要
素はそのままカウンタCAの示すアドレスに格納する。 このとき、カウンタCAがパラメータBR1と等しくな
ったら終了する。 【0130】ステップ119;このようなある2つのア
ドレスの要素の再配置処理が互いの要素の交換の形式で
終了すると、カウンタCAはインクリメント、カウンタ
CBはデクリメントする。そして、上記と同様の過程に
よって、カウンタCA,カウンタCBで示されるアドレ
スの要素をPE間データ転送を介して再配置する。 【0131】上記のように、2つのアドレスの要素を互
いに交換して再配置する処理を、カウンタCAの値が“
[N/2]+h”に一致するまで繰り返す(ステップ1
14、ステップ118)。この制御フローチャートでは
カウンタCAの値がこの“[N/2]+h”に一致した
か否かの判定(ステップ114、ステップ118)はカ
ウンタCAの値とパラメータBR1の内容“[N/2]
+h”との一致検出により行う。尚、パラメータBR1
の内容は、再配置処理開始時に設定する(ステップ11
0)。Nが偶数の場合には、アドレス([N/2]+h
)の要素の再配置は2つのアドレスの要素を交換する形
式にはならないので、PE間データ転送によって再配置
先のPEに転送された後、同じアドレスに直接再格納す
る。このPEの総個数Nが偶数であるか奇数であるかの
判定(ステップ114)は、パラメータBR2の内容“
N”によって判定する。このBR2の内容も再配置処理
開始時に設定する(ステップ110)。 【0132】これまで説明してきたように、PE間での
並列データ転送を介した2つのアドレスの要素の交換を
基本とした規則的な処理によって、再配置処理が完了す
る。この制御方法はカウンタCA、カウンタCBは要素
の取り出し/再格納アドレスを与える働きをするばかり
でなく、それぞれ、カウンタCBの示すアドレスの要素
、カウンタCAの示すアドレスの要素に対するPE間デ
ータ転送回数を与える働きもしている。 【0133】(G)  並列処理方法による再配置処理
の制御ハードウェア構成 (F)で示したような制御方法を実現する制御ハードウ
ェア構成について説明する。図18は本発明のデータの
再配置処理の制御ハードウェアの構成図を示す。同図に
おいて、インクリメンタCA120 ,デクリメンタC
B121 ,デクリメンタCT124 ,レジスタBR
1122 ,レジスタBR2123 はそれぞれ、図1
6に示したカウンタCA,カウンタCB,カウンタCT
に対応し、レジスタBR1122 は図17で転送を繰
り返すカウントであるループ回数の制御パラメータを指
定するBR1に対応し、レジスタBR2123 はNの
偶数、奇数の判定用のパラメータを指定するBR2に対
応する。 【0134】セレクタ127 はインクリメンタCA1
20,デクリメンタCB121 の出力を切り換えてデ
クリメンタCT124 にロードするためのものである
。 【0135】フラグ生成回路125 はPE間の並列デ
ータ転送の終了はデクリメンタCT124 の値が“h
”であることを検出してそのフラグ(以後このフラグを
“h”−フラグと呼ぶ)を生成する回路である。また、
この“h”−フラグはデクリメンタCT124 へのデ
ータロード元を切り換える制御信号として用いる。即ち
この“h”−フラグがオンになる毎に、セレクタ127
 はデータロード元のインクリメンタCA120 また
はデクリメンタCB121 を切り換える。 【0136】レジスタBR2123 にはNを設定する
。Nの偶数、奇数についてはこのレジスタBR2123
 のLSB(最下位ビット)の値が“0”又は、“1”
によって判定する。即ち、“0”ならば偶数、“1”な
らば奇数と判定する。また、[N/2]+hとインクリ
メンタCA120 の値との一致によって制御する。こ
れは、上記の制御方法にも示したように、インクリメン
タCA120 は、“h+1”から“[N/2]+h”
までインクリメントするので、このインクリメンタCA
120 の値とレジスタBR1122 の内容との一致
を検出することは実行的に[N/2]の回数をカウント
するのに等価である。 【0137】このため、本制御ハードウェア構成には、
インクリメンタCA120 の値とレジスタBR112
2 の内容との一致を検出する一致検出回路126 を
設けている。 【0138】再配置処理の終了はこの一致検出回路12
6 から出力される一致フラグの内容によって判定する
。なお、再配置処理の終了条件にはNの偶奇性が関係す
るので、、レジスタBR2123 のLSBはこの一致
検出回路126 に入力されている。 【0139】これにより、インクリメンタCA120 
、デクリメンタCB121 、デクリメンタCT124
 とレジスタBR1122 の特定の値を検出すること
により(F)で示したような制御方法が実現できる。 【0140】 【発明の効果】上記のように本発明のデータの再配置処
理方法によれば、複数(N)個の処理要素を一括して同
時に再配置できるので、要素を1個ずつ再配置する場合
に比べて再配置処理をN倍高速化できる。また、本発明
は2つのアドレスの要素を交換する形式で再配置処理を
行う方法であるので、規則的また、効率的な処理が実現
できる。 【0141】また、本発明の再配置処理の制御方法によ
れば、要素のアドレス値を単に取り出しアドレス及び再
格納アドレスとして用いるだけでなく、PE間データ転
送により要素を再配置先のPEへ転送する場合の転送回
数のカウントにも用いた二重のDOループ処理の構造を
もった制御方法であるので、再配置処理の制御を規則的
、効率的に実現できる。さらに、各PEは全く同一の制
御を実行し、各々のPEの制御状態を互いに管理するこ
となく、また、リングアレイプロセッサ構成の各PEを
個別に制御するような複雑な制御構成をとることがない
ので制御が簡単になる。 【0142】また、本発明の制御ハードウェアの構成に
よれば、上記の二重のDOループ構造の制御を3種類の
カウンタとカウンタの特定の値を検出して、そのフラグ
を生成する2種類の検出回路を用いて実現できるため、
ハードウェア構成が簡素化でき、ハードウェアの規模も
小さくできる。
Detailed Description of the Invention [0001] [Industrial Application Field] The present invention provides a
How to reallocate data in multiprocessors
and its control mechanism, especially the data exchange between processing units.
The data stored in each processing unit is regenerated by sending and receiving.
Reallocation of data in multiprocessors to be deployed
Concerning the method and its control mechanism. [Background Art] A multiprocessor that performs many types of parallel processing
In some systems, the processing results of a certain process are used as data for other processes.
When executing processing, the processing results obtained in each processing unit are
each processing unit to make the results suitable for executing other parallel processes.
need to be reassigned. The data processing unit
Reassigning data to a unit is called data relocation. Conventionally, in such a multiprocessor,
There are two main types of data relocation processing described below.
There was a way. One method is to manage multiprocessors.
All data in each processing unit is sent to the host processor
Collect data. The collected data is stored on the host processor
Data is sorted and re-stored in each processing unit
. [0004] Another method is to use
data transfer paths between processing units without
This is to rearrange the data in the management unit one by one. [0005] However, the above-mentioned host
How to sort and restorage data on a processor
, a large amount of data is transferred between each processing unit and the host processor.
requires data exchange, and also requires
The problem is that the additional processing of data sorting increases.
There is. On the other hand, the method using data transfer path is relocation
Data transfer time is proportional to the amount of data to be transferred.
The overhead for multiprocessor processing is large.
In addition to increasing the
must individually manage the data transfer process for
There is a problem in that control becomes complicated because of the complexity. [0006] The present invention has been made in view of the above points.
Efficiently process data reallocation on multiprocessors
How to reallocate data that can be executed at high speed
The purpose is to provide a law and control mechanism. [Means for Solving the Problems] FIG. 1 illustrates the principle of the present invention.
It is a diagram. Multi-processor with multiple processing elements connected in a ring
In the processor, multiple processing elements each exchange data.
connected to the processing element via a data transfer path for
Multiple processing elements are calculation means and processing elements that perform desired calculations.
data transfer means, address and data transfer means for transferring data between
A storage means for storing data and reading the stored data.
It has a control means for controlling the readout means, and
Processing elements are allocated to multiple processors for several processing elements.
Numbers are assigned in the order in which they are listed, and all processing elements are
from the first address of the storage means to the reading means.
(10) and process the read data.
The data is transferred between processing elements a predetermined number of times (11), and transferred to each processing element.
The sent data at the first address of the storage means is transferred to the second address.
(13)
), the converted data at the second address of the storage means is processed.
Data is simultaneously transferred a predetermined number of times between processing elements (14), and individual processing
The data at the second address of the storage means transferred to the element
The processing element stores the procedure at the first address of the storage means.
If the total number of processing elements is odd, divide the total number of processing elements (N) by 2.
If the total number of processing elements is even
is the total number of processing elements (N) divided by 2 (N/2).
The total number of processing elements is
The value is an even number and the total number of processing elements divided by 2 (N/2)
If the count (r) of repeating data transfer is equal to
the first address of the storage means in all processing elements simultaneously;
The extracted first address data
A predetermined count of data is simultaneously transferred between processing elements, and each processing
The data of the first address transferred to each processing element is
The data is stored in the second address of the storage means (15). [0008] Also, for the first address (h+r)
The number of transfers between processing elements is determined by the data at the first address (h+r).
The second address for the data to be exchanged (
The value obtained by subtracting h from the address value of h+N-r) (N-r)
and for the data at the second address (h+N-r)
The number of transfers between processing elements is set to the second address (h+N-r)
The first address for the data to be exchanged.
As the value r obtained by subtracting h from the address value of (h+r),
Description of processing elements for r=1, 2, ..., [N/2]
Simultaneous transfer of data retrieved from storage between processing elements
Count the number of transfers and add the data to the retrieved data.
Controls the transfer process to the relocation destination processing element. [0009] Furthermore, a first address holding the first address is
a counter; and a second counter holding a second address.
, the processing requirements for the data retrieved from the storage means of the processing element.
A third method that counts the number of transfers during simultaneous transfer between elements.
a counter, the output of the first counter and the output of the second counter.
There is a selector that switches between the output and the output of the selector.
is connected to the input of the third counter, and the value of the third counter is h
a first flag that detects that it is equal to and generates a first flag;
The content of the first flag is determined by the flag generation means and the selector.
The output of the first counter and the output of the second counter are
and control of the number of repetitions.
The first register holds parameters and all processing requirements.
A second one that holds parameters for determining whether the prime number is even or odd.
a register, the contents of the first register, and the first counter
A second flag that detects a match with the contents of the flag and generates a second flag.
2 flag generation means and the least significant bit of the second register
The parity of the number of all processing elements is determined by the contents of
parity determining means, and the content of the second flag and the second register.
Data relocation processing based on the contents of the least significant bit of the star.
and end detection means for detecting the end of. [Operation] A plurality of (N) processing elements are connected in a ring, and the
Processing elements are numbered in the order in which they are arranged on a multiprocessor.
It is. Have data transfer paths between adjacent processing elements
Continuity of storage means for processing elements in a multiprocessor
The state where the first data is stored at the address
to the same consecutive address in the storage means of the processing element.
The first data and the second data are stored so that the data of
Relocate N processing elements of the data at once. [Example] In order to simplify the science of the present invention, the following is a high-level example.
Learning process and forward-back of the Demmer-Cobb model method
Learning processing and Baum-W in the quadratic procedure
In the HELCH REESTIMATION FORMULAS
The learning process will be explained below. [0012] Used for pattern recognition processing of voices, characters, etc.
Hidden Markov Models
) The learning process of the law is performed using a form of multiprocessor.
This section describes an example of execution using an array processor.
Ru. In pattern recognition using this HMM method,
Patterns of speech and letters are calculated based on a certain state transition probability model.
The occurrence of events can be viewed through transitions between states in the model.
The pattern is modeled as a sequence of symbols to be measured. Learning process is the process of accurately learning from data of multiple sample patterns.
The goal is to estimate the probability parameters of the rate model. H.M.
In the learning process of the M method, the forward-backward process
Sedua (Forward-Backward Pro
cedure) and Baum-Welch Lietime
Baum-Welch Re-estimate
There are two types of algorithms (ion formulas).
used. The learning process of the HMM method uses these algorithms to
The probabilistic model obtained using the processing results of the algorithm
Repeat each algorithm until the estimation converges.
vinegar. The contents of these algorithms are shown below. Forward-Backward Procedure
is a forward pass algorithm and a backward pass algorithm.
It consists of two types of algorithms. (1) Forward pass algorithm Initial settings:
For 1≦i≦N
α(i,0)=π(i)
...(1) Recurrence formula:
1≦i≦N, t=1, 2, ..., 001 for T
6] [Equation 1] In the above algorithm, N is the number of processing elements.
It is a number. π(i) indicates the initial state probability. α(i, t
) is a probability parameter. (2) Backward pass algorithm
Initial setting: For 1≦i≦N
                         
1 for i∈ET
β(i,T)=
...(3)
                         
0 otherwise
Recurrence formula: 1≦i≦N, t=T-1, T-2
, ..., 0 [Formula 2] Here, c(i, j; t)≡a(i, j)・b
(i,j;Ot) [Equation 3]. In the above algorithm, β(i,t
) is the probability parameter, and a(i, j) is the state transition probability.
b(i,j;k) is the symbol output probability. [0021] Also, Baum-Welch-Riettimesi
The process of formulas is based on the initial state probability π(i).
re-estimation calculation, re-estimation calculation of state transition probability a(i,j),
Three types of re-estimation calculation of symbol output probability b(i, j; k)
It consists of calculations of types. The details of each re-estimation calculation are shown below. In addition, in the following notation, π+ (i), a+ (i, j)
, b+ (i, j; k) are π(i), a(i
, j), b(i, j; k). (1) Re-estimation calculation of initial state probability 00
23] [Formula 4] (2) Re-estimation of state transition probability a+ (i, j)
Constant calculation [Equation 5] (3) Symbol output probability b+ (i, j; k
) re-estimation calculation [Equation 6] Here, c(i, j; t)≡a(i, j)・b
(i, j; Ot ), [Formula 7] [Formula 8]. The above forward-backward process
Dua and Baum - Welch Retimation Fo
- Processing for each algorithm of Mulas is the desired function
Processing elements (hereinafter referred to as PEs) with
Array processor configuration (hereinafter referred to as ring array processor)
Parallel processing is possible using The target here is
This section describes the ring array processor. Figure 2 shows H
Parallel processing of learning processing in pattern recognition processing of HM method
The configuration of the ring array processor when executed by
show. Ring array processor is PE100a,100
Data transfer between b,..., 100c, 100d and each PE
A transmission path 101 and a memory 102a under the control of each PE.
, 102b, ..., 102c, 102d and PE and D
Data input/output paths 103a, 103 for inputting and outputting data
b, . . . , 103c, 103d. Below is the above using the ring array processor configuration of Figure 2.
We will explain the parallel processing method for each algorithm.
Ru. (a) Forward-backward procedure [a
-1] Forward pass algorithm Figure 3 shows the learning process.
Forward-backward in front of procedure
Oriented path algorithm in ring array processor configuration
The data flow for parallel processing is shown below. Lin in the same figure
The configuration of the Guarei processor is PE200a, 200b,
..., 200c, 200d and each PE
The data storage between the memory 201 and the memory 204 under the control of each PE.
Data input/output paths 202a, 202 for inputting and outputting data
Circular transfer between b,..., 202c, 202d and PE
data string 203 {α(1, t-1), α(2, t-
1),...,α(i,t-1),...,α(N,t
-1)}. In addition, the data string 204 is
The management is performed in synchronization with the circular transfer of the data string 203 described above.
It is input from the memory 204 under the control. For example, in PEi (1≦i≦N), the data
The data sequence CF (i, t) is CF (i, t)={c(i,
i;t),c(mod(i+1|N),i;t),...
, c(mod(i-1|N),i;t)}. Here, mod(m|N) (m is an integer) is
When m is an integer multiple of N, set N to when m is not an integer multiple of N.
represents the remainder when m is divided by N. Above data string C
F (i, t) (1≦i≦T) is PEi (1≦i≦N
) is stored in memory under the control of Also, this
In the memory, the initial value α(i, 0) of data α(i, t) is
Suppose that π(i) is stored. For PEi (1≦i≦N), first, (1)
The initial value of α(i, t) corresponding to the formula α(i, 0) = π
(i) is read from the memory under its control, and the data
It is input via the input/output path 202. Then PEi (1
≦i≦N) is the data string CF from the memory under its control.
Input the first data c(i,i;1) of (i,t).
Enter that data and the initial value α(i, 0) entered earlier.
Perform multiplication and obtain the multiplication result α(i,0)・c(i,i
;1) is temporarily held in a storage area within the PE. then next
As a step processing, PEi (1≦i≦N) is inputted earlier.
At the same time as sending the initial value α(i, 0) to the next PE,
Initial value α (mod (i+1 | N), 0) from the previous PE
receive. At the same time, is the memory under the control of the PE?
The second data c(mo
Input d(i+1|N), i;1). And P.E.
The data α(mod(i+1|N),i;
1) and the data c(m
od(i+1|N),i;1), and the multiplication is
The calculation result α(mod(i+1|N),i;1)・c
(mod(i+1|N),i;1) and storage area in PE
The previous multiplication result α(i,0)・c(i,
i; 1) (ie, product-sum calculation). α(mod(i+1|N),i;1)・c(mod(i
+1|N),i;1)+α(i,0)・c(i,i;1
) Furthermore, the above addition result is temporarily stored in the storage area in the PE.
Hold. [0033] From now on, data α transferred between all PEs
(i, 0) unites all PEs of the ring array processor.
Repeat until the cycle is completed, and each time repeat the product as described above.
Perform a sum calculation. The calculation results of the sum of products calculation are stored in the PE.
Hold in area. Data transferred circularly between PEs in this way
The data α(i,0) goes around the ring array processor.
Then, at PEi (1≦i≦N), for time t=1,
Data α(i, 1) is obtained. After that, t=2
The calculation process for the data α(i, 2) is obtained here.
Replace α(i, 0) with data α(i, 1) and PE
At the same time, the data for time t=2 is transferred between
While inputting the data of data column CF (i, t) from memory,
Then, the process is executed in exactly the same way as in the case of t=1. t
The same applies to =3,...,T. Each time t=1
,2,..., the calculation result of α(i,t) for T is P
Sequentially stored in memory under control of Ei (1≦i≦N)
be done. [a-2] Backward algorithm Figure 4 is
Forward-backward process in learning process
Ringarape Dua's backward pass algorithm
Showing the data flow when performing parallel processing with a processor configuration
. The ring array processor in the same figure is PE300a, 30
Data between 0b,..., 300c, 300d and each PE
The data between the transfer path 301 and the memory under the control of each PE
Data input/output paths 302a, 302 for inputting and outputting data
Circular transfer between b,..., 302c, 302d and PE
data string 303 {β(1, t+1), β(2, t+
1),...,β(i,t+1),...β(N,t+
1)}. The data string 304 is for each PE30.
At 0a, 300b, ..., 300c, 300d
In synchronization with the circular transfer of the data string 303 above, its management
The data is input from the underlying memory. PEi (1≦i≦
N), the data string CB (i, t+1) (0≦t≦T−
1) is CB (i, t+1) = {c(i, i; t+1)
,c(i,mod(i+1|N);t+1),...,
c(i, mod (i-1|N);t+1)}. child
The data string CB (i, t+1) (0≦t≦T-1) is
stored in memory under the control of PEi (1≦i≦N).
It is. This memory also contains data β(i, t).
It is assumed that an initial value β(i, T) is stored. For this backward pass algorithm,
Parallel processing transfers circularly transferred data between PEs to β(i, t+1)
, and at the same time enter PEi (1≦i≦N) from memory.
Assuming that the input data string is CB (i, t+1), forward
Exactly the same processing as the parallel processing of the
go That is, for PEi (1≦i≦N), first, (3
) The initial value β(i, T) of β(i, t) corresponding to the equation is
Data input/output is read from the memory under its control.
It is input via path 302. Next, PEi (1≦i
≦N) is the data string C from the memory under the control of PEi.
The first data c(i,i;T
). That data and the initial value β(i
, T), and the multiplication result β(i, T
)・c(i,i;T) is temporarily stored in the storage area within the PE.
hold Next, PEi (1≦i≦N) is the first value entered earlier.
At the same time as sending the initial value β(i, T) to the next PE,
From the PE of the stage to the initial value β(mod(i+1|N),i;T
) received and at the same time data from memory under the control of the PE.
The second data c(mod(
Input i+1|N), i;T). Additionally, between PEs
The transferred data β(mod(i+1|N),T)
At the same time, data c(mod(i
+1 | N), i; T), and the multiplication result is
A certain β(mod(i+1|N),T)・c(mod(i
+1 | N), i; T) and are held in the storage area within the PE.
The multiplication result β(i,T)・c(i
, i; T) (ie, product-sum calculation). β(mod(i+1|N),T)・c(m
od(i+1|N),i;T)+β(i,T)・c
(i, i; T) Temporarily retain the above addition result in the storage area in PE
. From now on, all PEs will use this inter-PE data transfer and
Simultaneous execution with data input from memory is transferred between PEs.
The data β(i,T)
Repeat all PE steps until one cycle is completed, and repeat the steps above each time.
Executes the sum of products calculation. The result of sum-of-products calculation is stored in PE.
held in the area. Data β (
i, T) goes around the ring array processor, then P
At Ei (1≦i≦N), for time t=T-1
Data β(i, T-1) is obtained. From now on t=T-2
The calculation process of data β(i, T-2) for is calculated here.
The data β (i, T) is calculated using the calculated data β (i, T-1)
is replaced and transferred circularly between PEs. At the same time, the time
Data string CB (i, t+1) data for t=T-2
While inputting the data from memory, consider the case of t=T-1 and the total
It is executed in the same process. t=T-3,...,0
The same applies to . Each time t=T-1, T-2,・
..., the calculation result of β (i, t) for 0 is PEi (
1≦i≦N). Forward-Backward Procedure
Forward pass algorithm and backward pass algorithm
Parallel processing as described above is performed for each rhythm.
Then, the following α(i, t) is stored in the memory of each PE.
and β(i, t) are obtained. [0038] PEi (1≦i≦N)
Calculation results stored in memory: α(i, 0), α(i, 1), ..., α(i, t),
..., α(i, T); β(i, T), β(i, T-1
), ..., β (i, t), ... β (i, 0), above
The order of the calculation results shown below is the same as the order in which the calculation results are obtained.
It is the same. (b) Baum-Welch-Rietime
tion formulas [B-1] Parallel processing method for re-estimating initial state probabilities
First, the Baum-Welch Retimation Foundation.
- Re-estimation calculation of initial state probability π(i) in Muras
We will explain the parallel processing method for FIG. 5 shows Baum-Welch in the learning process.
・Identification of the initial state of Re-Etimation Formulas
The rate re-estimation calculation is processed in parallel using a ring array processor configuration.
This shows the data flow when managing the data. This lingua rape
The processor configuration is PE400a, 400b,..., 4
Data transfer path 401 between 00c, 400d and each PE
Data input/output path between a PE and the memory managed by that PE
Data string 403 {α(
1,0)・β(1,0),α(2,0)・β(2,0)
,...,α(i,0)・β(i,0),...,α(
N,0)・β(N,0)} and the data input/output path 402
The data string 404 etc. input from the memory via the
will be accomplished. The data string 404 is PEi (1≦i≦N)
is D(i,0)={α(i,0),β(i,0)}
Powered. This data string D(i,0) is PEi (1≦
Suppose that it is stored in memory under the control of i≦N)
. In this parallel processing, first PEi (1≦i≦
N), to perform the calculation of the numerator of equation (5)
Data string D(i, 0) = {α(i, 0), β(
i, 0)} is sent to the memory via the data input/output path 402.
input from PEi (1≦i≦N) is the input data
Data sequence D (i, 0) = {α (i, 0), β (i, 0)}
Using two types of data α(i, 0) and β(i, 0),
The molecule product calculations α(i, 0) and β(i, 0) are executed in parallel.
go P(O|λ), which is the denominator calculation, is α(i, 0)
, β(i, 0), each PE is parallelized.
It is equal to the sum of the calculation results of the numerator calculated in the column. Therefore,
The calculation of the denominator is the product calculation result α(
i, 0) and β(i, 0) for all ring array processors.
Transfer is performed circularly between PEs until all PEs have been visited, and all P
At E, cumulative addition of the transferred data is executed in parallel.
It is determined by Therefore, each PE
Dividing the calculated result of the numerator by the calculated result of the denominator
As a result, the re-estimation calculation result of the initial state probability π(i) is π+
(i) (1≦i≦N) is the same at PEi (1≦i≦N)
sometimes required. Furthermore, the obtained initial state probability π(i
) re-estimation calculation result π+ (i) is PEi (1≦i≦
It is stored in the memory managed by N). [B-2] Re-estimation calculation of state transition probability
Parallel processing method Next, state transition probability using ring array processor configuration
Parallel processing of re-estimation calculation of a(i,j) will be explained. Figure 6
is a Baum-Welch restimator in the learning process.
Re-estimation calculation of state transition probability of tion formulas
Data when processing in parallel with a ring array processor configuration
Shows tough flow. The data transfer path 501 is connected to each PE 500.
a, 500b, ..., 500c, 500d.
It will be done. Data input/output paths 502a, 502b,...
502c, 502d are each PE500a, 500b,...
・, 500c, 500d and the memory under their management
This is a path for inputting and outputting data between. data column
503 is PE500a, 500b, ..., 500c,
This is a data string that is cyclically transferred between 500d. Shown in Figure 6
In this example, the data string 503 is β(1, t), β(2,
t), ..., β (i, t), ..., β (i, t),
..., β(N, t)}. first data column
504 is input from memory via data input/output path 502.
and in PEi (1≦i≦N), the data string D
(i, t) = {α (i, t), β (i, t)} (0≦t
≦T) is input. The second data column 505 is the data input.
input from memory via output path 502 and PEi
(1≦i≦N), data string CB (i, t)=
{c(i,i;t),c(mod(i+1|N);t)
,...,c(i, mod(i-1|N);t)} is input
Powered. This first data string 504, second data string
505 are both stored in the memory managed by the PE.
shall be taken as a thing. In this parallel processing, first, the denominator of equation (6) is
In order to perform calculation processing, data string D (i, t) = {
α(i, t), β(i, t)} (0≦t≦T) is PEi
(1≦i≦N) is input from the memory. PEi (
1≦i≦N) is the input data string D(i, t)={α
(i, t), β(i, t)} (0≦t≦T).
Using data α(i, t) and β(i, t), time t
The product-sum calculation Σα(i,t)·β(i,t) is executed to obtain the calculation result of the denominator. This sum of products calculation is
It is executed in parallel in all PEs. On the other hand, calculation of molecules
In processing, PEi (1≦i≦N) is the previously input data.
data sequence D(i, t) = {α(i, t), β(i, t)}(
0≦t≦T) data β(i, t) is passed through all PEs.
PEi (
1≦i≦N), input the data string CB (i, t) from the memory.
input, and is input to PEi (1≦i≦N) from time to time.
Circular transfer data between PEs, data string CB (i, t)
data, the data of the previously input data string D(i, t)
Multiply the three terms with α(i, t-1) in parallel.
. Through this process, PEi (1≦i≦N) has j=1
,2,...,N for the combination of (i, j)
The cumulative addition term of the child at time t is determined. Therefore, the time
Update t and perform the processing related to multiplication between three terms as described above.
and the calculation obtained for each (i, j) combination.
If the calculation results are cumulatively added at each time t, the calculation result of the numerator is
Desired. All of the above processes are executed in parallel on PE.
will be carried out. Denominator and numerator obtained through the above processing process
divide the numerator by the denominator in parallel using the calculation result of
Therefore, PEi (1≦i≦N) has j=1, 2,...
・, state transition probability for the (i, j) combination of N
A re-estimated value a+ (i, j) of a(i, j) is obtained
. [0044] Also, from the above parallel processing method,
In parallel processing of molecular calculations, data transferred between PEs is
Note the data on α(i, t-1), PEi (1≦i≦N)
CF (i,
t)={c(i,i;t),c(mod(i+1|N)
,i;t),c(mod(i+2|N),i;t),・
..., c (mod (i-1 | N), i; t)}, and min
In multiplication between three child terms, data string D(i, t) = {
α (i, t), β (i, t)} (0≦t≦T)
If β(i, t) is used as the data, PEi (1≦i≦
N) has the combination (j, i) of j = 1, 2, ..., N
The calculation result of the molecule for the displacement can be obtained. Therefore, for PEi (1≦i≦N), j=1
,2,...,N for the combination of (j, i)
The re-estimated value a+ (j, i) of the state transition probability a(j, i) is
P until the calculation result of the denominator is passed through all PEs.
The calculation results of the molecules obtained are transferred cyclically between E.
Determined by dividing by the calculation result of the denominator transferred to
It will be done. [b-3] Re-estimation of symbol output probability
Parallel processing of calculationsNext, symbol output confirmation using a ring array processor configuration
We will explain the parallel processing of the re-estimation calculation of the rate b(i, j; k).
I will clarify. Figure 7 shows the Baum-Welch Li in the learning process.
Estimation formulas symbol output confirmation
The rate re-estimation calculation is processed in parallel using a ring array processor configuration.
This shows the data flow when managing the data. data transfer path 60
1 is each PE600a, 600b,..., 600c, 6
It is provided between 00d. Data input/output path 602a, 6
02b,..., 602c, 602d are each PE600a
, 600b, 600c, 600d and the media under their management.
This is a path for inputting and outputting data to and from the memory. The data string 603 is PE600a, 600b,...,6
This is a data string that is cyclically transferred between 00c and 600d. In the example shown in FIG. 7, the data string 603 is {β (1, t),
β(2,t),...,β(i,t),...,β(i
, t), ..., β(N, t)}. first data
Column 604 indicates each data input/output path 602a, 602b, 6
It is input from the memory via 02c and 602d. P.E.
For i (1≦i≦N), the data string D(i, t) is D(i, t)={α(i, t), β(i, t)}
(0≦t≦T) is input. In addition, the second data column 605 includes each data
Input/output paths 602a, 602b, 602c, 602d
input from memory via PEi (1≦i≦N)
, the data string CB (i, t) CB (i, t) = {c (i, i; t), c (i, mo
d(i+1|N);t),...,(i, mod(i-
1 | N); t)} and the data string GB GB (i, t) = {(g(i, i; t), g(i, m
od(i+1|N);t),...,g(i, mod(
The data of i-1 | N); t)} is input one by one as a set.
Powered. That is, for PEi (1≦i≦N), {c(i
,i;t),g(i,i;t)},{i,mod(i+
1 | N); t), g(i, mod (i+1 | N); t)
},...,{c(i, mod(i-1|N);t),
g(i, mod(i-1 | N); t)}
Ru. These data are the first data column 604 and the second data column 604.
Data string CB (i, t) forming data string 605,
Stored in memory managed by PE along with GB (i, t)
It is assumed that Here, the second data string GB (i, t)
The data is the similarity between symbol Ot and reference symbol k
Using the parameter u(t;k) that represents g(i,j;t)=c(i,j;t)・u(t;k)
Define. Re-estimation of symbol output probability b(i,j;k)
As can be seen from equation (7), the constant calculation requires the calculation of the denominator and numerator.
The calculation contents are almost the same, and the symbol Ot is used to calculate the numerator.
The point where the symbol Ot = k is added as a condition for
Only that is different. Also, the calculation of this denominator and numerator is the state transition
Exactly equivalent to the calculation of the numerator of the re-estimation calculation of probability a(i, j)
It is. Therefore, this symbol output probability b(i,j;k
) The calculation process for the denominator and numerator of the re-estimation calculation is as described above.
Parallel calculation of the numerator for re-estimation calculation of state transition probability a(i, j)
The processing method can be applied and executed as is. Next, parallel calculation processing of the denominator and numerator is performed according to FIG.
Explain the theory. First, PEi (1≦i≦N) is
Data input/output paths 602a, 602b,..., 602
The first data string D(i
, t) = {α(i, t), β(i, t)} (0
≦t≦T). Then, in parallel calculation processing of denominator and numerator,
Data β (i, t) is transferred between PEs until the transferred data completes one cycle.
While circularly transferring PEi (1≦i≦
N) from the memory to the second data string {c(i, i; t), g(i, i; t)}, {c(i,
mod(i+1|N);t),g(i,mod(i+1
|N);t)}, {c(i, mod(i+2|N);t
), g(i, mod (i+2|N);t)},...,
{c(i, mod(i-1|N); t), g(i, mo
d(i-1|N);t)}. PEi(1≦i
≦N), the circular transfer data between PEs input from time to time is
data, two types of data, a second data column, and a first data column.
Using the data α(i, t-1), the minute in equation (7)
For calculating the mother, multiply the three terms of data α, c, β.
For the calculation of the molecule, use the three terms of data α, g, and β.
Perform multiplication between This denominator and numerator multiplication process is
executed in parallel on all PEs. This process
, PEi (1≦i≦N) has j=1, 2,...,N.
At time t of the denominator and numerator for the combination of (i, j)
The cumulative addition term for the sum is calculated. Therefore, change the time t.
Execute a new process related to multiplication between three terms as described above.
, if the calculation results are cumulatively added at each time t, the denominator,
Calculation results for the molecule are required. These processes are performed between PEs.
executed in parallel. The amount determined by the above processing process
Divide the numerator by the denominator in parallel using the calculation results of the mother and numerator.
By doing so, PEi (1≦i≦N) has j=1,2
,..., symbol for the combination (i, j) of N
b+ (i, j; k) is obtained as the re-estimated value of the output probability.
I can't stand it. [0050] Also, as can be seen from the above parallel processing method,
In parallel processing of this calculation, data transferred between multiple PEs is
α (i, t-1), PEi (1≦i≦N) from memory
The second input data string is data string CF (i, t) = {c (i, i; t), c
(mod(i+1|N),i;t),c(mod(i+
2|N),i;t),...,c(mod(i-1|N
), i; t)} and the data string GF (i, t) = {g(i, i; t), g(
mod(i+1|N),it),g(mod(i+2|
N),i;t)},...,g(mod(i-1|N)
, i; t)} data string {c
(i, i; t), g(i, i; t)}, {c(mod(
i+1|N), i;t), g(mod(i+1|N),
i;t) }, {c(mod(i+2|N),i;t)
, g(mod(i+2|N),i;t)},...,{
c(mod(i-1|N),i;t),g(mod(i
−1 | N), i; t)}, and in multiplication between three terms,
Data β(i
, t), PEi (1≦i≦N) has j=1,
2,..., N for the combination (j, i)
The re-estimated value b+ (j, i; k) of the vol output probability is obtained.
It will be done. Above, in PEi (1≦i≦N), j=
(i, j) (or (j, i)) of 1, 2, ..., N
The re-estimated value of the state transition probability for the combination of (a+
(i, j) (or a+ (j, i)) and symbol output
The re-estimated value of probability b+ (i, j; k) (or b+ (
j, i; k)) is obtained, PEi (1≦i≦N)
is a parameter representing the similarity between symbol Ot and reference symbol k.
The following sum of products for k using the parameter u(t;k)
Execute the calculation Σu(t;k)・b+ (i, j;k) or Σu(t;k)・b+ (j,i;k)
Re-estimated value b+ of symbol output probability for bor Ot
(i, j; Ot ) or b+ (j, i; Ot )
The result and the re-estimated state transition probability a+ (i,
j) (or a+ (j, i)) and
Rewriting the data c(i,j;t) (or c(j,i;t))
Estimated value c+ (i, j; t) (or c+ (j, i; t
)). The flow for obtaining the re-estimated value is shown here. b+ (i,j;Ot)=Σu(t;k)・b+ (
i, j;k) or b+ (i,i;Ot)=Σu(t;k)・b+ (
j, i; k) Then c+ (i, j; t) = b+ (i, j; Ot)・a
+ (i, j) or c+ (j, i; t) = b+ (j, i; Ot)・a
+ (j,i) This result is stored in memory under the control of the PE. [0053] Also, data g(i, j; t) (or g(
j, i; t)) re-estimated value g+ (i, j; t) (or
g+ (j, i; t)) is u(t; k)・b+ (i,
j;Ot ) (or u(t;k)・b+ (j,i;O
t ) and the re-estimated state transition probability a+ (i
, j) (or a+ (j, i))
and g+ (i, j; t)={u(t;k)・b+ (
i, j; Ot )}
・a+ (i, j) g+ (j,
i;t)={u(t;k)・b+ (j,i;Ot)
}
・a+ (j, i) The result is a memo under the control of PE.
stored in the file. [0054] Baumwelch-Riesty as described above
for three types of re-estimation calculations of Mation Formulas.
By performing parallel calculation processing to
The distribution of calculation results obtained for each PE of the processor is as follows.
become that way. [0055] In the memory managed by PEi (1≦i≦N)
Stored calculation results: (a) Parallel processing with transfer data between PEs as α(i, t)
In the case of logic, π+ (i); c+ (i, i; t), c+ (mod (i+1 | N) for 1≦t≦T
,i;t),...,c+ (N,i;t),c+ (1
,i;t),c+ (2,i;t),...,c+ (m
od(i-1|N), i;t); g+ (i, i;t), g+ (mod(i+1|N) for 1≦t≦T
,i;t),...,g+ (N,i;t),g+ (1
,i;t),g+ (2,i;t),...,g+ (m
od(i-1|N),i;t); (b) Parallel processing with transfer data between PEs as β(i,t)
In the case of the mathematical method, π+ (i); c+ (i, i; t), c+ (i, mod (i+1 |
N), i;t),...,c+ (i,N,;t),c+
(i, 1; t), c+ (i, 2; t),..., c+
(i, mod (i-1 | N); t); for 1≦t≦T
g+ (i, i; t), g+ (i, mod(i+1 |
N);t),...,g+ (i,N;t),g+ (i
,1;t),g+ (i,2;t),...,g+ (i
, mod (i-1 | N); t); In addition, the way of arranging the calculation results of (a) and (b) above is as follows:
The order in which the results are obtained is the same. (C) Data required for learning processing
Contents of the relocation process The forward-backward process explained so far
Rosedur and Baumwelch Restimation
Ring array processor configuration for formulas
The parallel processing method used and the resulting
The data required for the learning process is calculated from the distribution of the processing results obtained.
The contents of the relocation process will be explained. Forward-back using each other's processing results
Coward Procedur and Baumwelch Riesty
Executing the process of formulas repeatedly
Specifically, the learning process includes the following processes.
It won't happen. . First, the initial state probability π(i) and the state transition probability
rate a(i,j), symbol output probability b(i,j;k)
Set the initial value appropriately and perform the forward-backward program.
Probability parameter α (i, t),
Calculate β(i,t). And the above three types of probabilities
The initial value of and the forward-backward procedure
Two types of probability parameters α(i, t) and β
Baum-Welch Restimesi using (i, t)
From the formula, the initial state probability π(i), the state
Transition probability a(i,j), symbol output probability b(i,j;
k) and re-estimate the results as π+ (i)
, a+ (i, j), b+ (i, j; k). Re
If the estimation result is different from the initial value, replace the initial value with the re-estimated value.
Then again, forward-backward procedure
and Baum-Welch Restimation Form
process the curve. Baum-Well
Required by Chi Restimation Formulas
The re-estimated value is forward-backward proceded.
until they match the values of the various probabilities used in the calculation of the
Execute. [0058] From the contents of the above-mentioned iterative processing,
The forward-backward process is
Data π(i), a(i, j) used in the
, b(i, j; k) is Baum-Welch-Ries
π+ obtained by processing the timing formulas
(i), a+ (i, j), b+ (i, j; k)
Baum Welch Restimation Four
The data used in Muras is forward-backward
Data π(i), a(
i, j), b(i, j; k) and forward-backward
Data α(i, t) obtained by de procedure processing
, β(i,t). Therefore, the purpose of data relocation processing is to
P after parallel processing of word-backward procedure
The distribution of data held in the memory of E is Baum-Well
Parallel processing of Chi Restimation Formulas
Baum-Welch-Riesti on the initial data distribution for
PE notes after parallel processing of Mation Formulas
The distribution of data held in
Initial data distribution of parallel processing for de procedure
It is to make it suitable. From the explanation of each parallel processing method above, each
PEi (1≦i≦N) required in parallel processing of
The data distribution of the managed memory is organized as shown below.
. [C-1] Forward-backward
Data distribution for Procedur forward pass algorithm
Data used: α (i, 0) = π (i), CF (i
,t)={c(i,i;t),c(mod(i+1|N
), i; t), ..., c (mod (i-1 | N), i
;t)} (1≦t≦T) Obtained data: {α(i, 1), ..., α(i, t
), ..., α (i, T)} [C-2] Forward-backward procedure
Data distribution for backward pass algorithm
ta: β (i, T), CB (i, t) = {c (i, i;
t), c(i, mod (i+1 | N); t), ...,
c (i, mod (i-1 | N); t)} (1≦t≦T) Obtained data: {β (i, T-1), ..., β (i
,t),...,β(i,0)} [C-3] Baum-Welch Restimation
Data distribution for re-estimation calculation of formulas (1)
Used when the circular transfer data between PEs is α(i, t)
Data: {α(i, 0), α(i, 1), ..., α(
i, t), ..., α (i, T)} {β (i, 0), β
(i, 1), ..., β (i, t), ..., β (i,
T)}, CF (i, t)={c(i, i; t), c(mod(
i+1|N), i;t), c(mod(i-1|N),
i;t)}(1≦t≦T) CF (i,t)={g(i,i;t),g(mod(
i+1|N), i;t), g(mod(i-1|N),
i;t)}(1≦t≦T) Obtained data: π+ (i), CF + (i,
t) = {c+ (i, i; t), c+ (mod(
i+1 | N), i; t), c+ (mod(i-1 | N
), i; t)} (1≦t≦T) CF + (i, t)={g+ (i, i; t), g+
(mod(i+1|N),i;t),g+(mod
(i-1 | N), i; t)} (1≦t≦T) (2) When the circular transfer data between PEs is β(i, t)
Data used: {α(i, 0), α(i, 1),...
・, α(i, t), ..., α(i, T)} {β(i,
0), β (i, 1), ..., β (i, t), ...,
β (i, T)}, CB (i, t) = {c (i, i; t), c (i, mo
d(i+1|N);t),...,c(i, mod(i
−1 | N); t)} (1≦t≦T) CB (i, t)={g(i, i; t), g(i, mo
d(i+1|N);t),...,g(i, mod(i
−1 | N); t)} (1≦t≦T) Obtained data: π+ (i), CB + (i,
t) = {c+ (i, i; t), c+ (mod(
i+1 | N);t),...,c+ (i, mod(i
−1 | N); t)} (1≦t≦T) CB + (i, t) = {g+ (i, i; t), g+
(i, mod (i+1 | N); t), ..., g+
(i, mod (i-1 | N); t)} (1≦t≦T) on
From the data distribution results for each parallel processing method listed below, the following
I understand that. (1) Forward-Backward Pro
Sedua's forward pass algorithm, backward pass algorithm
obtained by parallel processing of each algorithm.
The synthetic data distribution is the Baum-Welch-Rie
Used in parallel processing of stimulation formulas.
suitable for data distribution. (2) Forward-Backward Pro
Parallel processing for Sedure's forward pass algorithm
The data string CF (i, t) used in
Baum-Welch when the ring transfer data is α(i, t)
Parallel processing for Restimation Formulas
This is the same as the data string CF (i, t) used in the process. (3) Forward-Backward Pro
Parallel processing for Sedua's backward pass algorithm
The data string CB (i, t) used in
Baum-Welch when the ring transfer data is β(i,t)
・Parallel to Restimation Formulas
Same as data string CB (i, t) used in processing
. (4) Transfer data between PEs to α(i,t)
Baum-Welch Restimation
Data strings obtained from parallel processing on formulas
CF + (i,t) is forward-backward
Parallel processing of the procedure forward pass algorithm
It is equivalent to the data string CF (i, t) used in
, used for parallel processing of backward pass algorithms
For the data string CB (i, t), these data
The (x, y)-index of the data composing the column is transposed
There is a relationship between (5) Transfer data between PEs to β(i,t)
Baum-Welch Restimation when
・Data obtained from parallel processing of formulas
Column CB + (i, t) is forward-backward
Parallel Processing of Procedure Backward Pass Algorithm
It is similar to the data string CB (i, t) used in
, the device used for parallel processing of the forward pass algorithm.
For the data string CF (i, t), these data strings are
The (x, y)-index of the constituent data is related to transposition.
It's in charge. From the above, Baum-Welch Restimme
The results obtained by parallel processing of application formulas are
The data string of the processing result is the data transferred between PEs by α(i, t) or
is forward-back regardless of which β(i, t) is selected.
The forward pass algorithm of the forward procedure or
is either one of the backward pass algorithm processing
is only equivalent to the data column of , and performs the processing on the other
In order to do this, the data of the data string obtained in each PE
need to be relocated. The contents are in (4) and (5)
As shown, the (x, y)-index of the constituent data
A data string CF (i, t) (with
or CF + (i, t)) (1≦i≦N) and data C
B (i, t) (or CB + (i, t)) (1
≦i≦N). FIG. 8 shows the redistribution of data necessary for learning processing.
Indicates the contents of the processing. The figure shows the content of this mutual conversion.
ing. The figure shows the data stored in the memory of all PEs.
data sequence CF (i, t) (or CF + (i, t)
), CB (i, t) (or CB + (i, t)
) enumerate the (x, y)-indices of the data that make up
It is shown in this format. An index regarding time t of data
The box t is the same for all data, so it is omitted.
Ru. If the data distribution P is the data string CB (i, t) (or
is composed of data that constitutes CB + (i, t)).
and the data distribution Q is the data sequence CF (i, t)
(or CF + (i, t))
It is composed of Also, for a certain time t,
The data in these data strings are consecutive addresses in each memory.
(In the example of Figure 8, address h to address (h+N-1)
range). [0069] Below, the data relocation processing method is shown in Figure 8.
explain about. The data distributions P and Q shown in the same figure are
Each matrix is considered to be one matrix, and the same elements of each matrix P and Q are preserved.
PE numbers held and the order of data held in each PE.
address and to each PE of this same element.
This section explains the relationship with the address that can be accessed. In the elements of matrix P, PEi (1≦i≦
The relationship between the elements held in N) and their addresses is
address
Element h of matrix P
                         
(i,i) h+1
(
i, mod (i+1 | N)) h+2
                         
(i, mod (i+2 | N)) ・
                         
・ ・
                         
・h+N
-1
(i, mod (i-1|N)). Let the index of the element of the above matrix P be (i
, j), address as adr(PEi;P)
Sadr(PEi;P) is the x-index of the element, y
−Think about expressing using indexes. The y-index of the element held in PEi is
Until it becomes equal to N, increase by 1 starting from i,
After that, increase by 1 from 1 until it equals i-1
do. Therefore, if i≦j (≦N), this y-index
is equal to any one of the box columns. y - add with index i
Since the response is h, the element with y-index j
The address can be expressed as j−i+h. On the other hand, i≦j<i
, this y-index j is from 1 to i-1
Equal to any of the y-index columns incremented by one
. The address of the element whose y-index value is N is (N-
i+h), so the element whose y-index value is N
Since the address of is (N-i+h), the y-index
The address of the element whose value is 1 is (N-i+h+1).
be. Therefore, y-index j in the range 1≦j<i
The address of the element with is given by (N-i+h+j)
Ru. From the above, the address of element (i, j) of matrix P is
The response is j−i+h
for i≦j≦N ad
r(PEi;P)
                         
...(8)
N-i+h+j for
It can be expressed as 1≦j<i. Next, for the elements of the matrix Q, the above matrix P
PE number and its address where the same element as the element is held
By finding the same elements of matrices P and Q,
The relationship between PE numbers and addresses will be clarified. In the elements of matrix Q, PEi (1≦i≦
The relationship between the elements held in N) and their addresses is
address
Element h of matrix P
                         
(i,i) h+1
(mod(i+1|N
), i) h+2
(mod(i+2|N)
,i)・
                         
・ ・
                         
・h+N-1
(mod(i-1|N
), i). [0075] From the above relationship, the PE number is
Since it is equal to the y-index of the element with
, the element with y-index j of matrix P is PEj
will be retained. Relationship between the above addresses and elements
If we replace i with j, we can save this PEj.
The x-index of the element held starts from j and its
Increment by 1 until the value equals N. after that
increases by one from 1 to j-1. j≦i(≦N)
, the x-index i of the element is 1 from j to N
equal to any of the x-index columns that increases by
Therefore, the address of the element with x-index i is
The space is given by i−j+h. On the other hand, if 1≦i<j
, this index i is incremented by 1 from 1 to j-1.
equal to any of the x-index columns that are added. Therefore 1
Add element with x-index i in the range ≦i<i
The response is represented by N-j+h+i. Therefore, the address of element (i, j) of matrix Q is
suadr(PEj;Q) is i-j+h
for j≦i≦N ad
r(PEi;P)
                         
...(8)
N-j+h+i for
It can be expressed as 1≦i<j. [0077] When the above results are summarized, equation (8) and
(9) From formula, for the same elements (i, j) of matrices P and Q,
and the PE number that holds this element and the address in that PE.
The relationship between dresses can be organized as shown in Table 1 below.
Ru. [Table 1] Next, using the results of Table 1, matrix P→matrix
Q, or clarify how to rearrange the elements of matrix Q → matrix P.
I'll do it. As can be seen from Table 1, the element (i, j) is
The PE number and address maintained are
Index, y-Divided by index size relationship
I have to think about it. Index of element of matrix P
The relationship between the size of the address and the address will be explained. Figure 9
is the element index difference, the address before relocation, and the relocation destination
It is a graph showing the relationship with the distance between addresses PE. Same figure
is the x, y-index difference (j-i) of the element and before rearrangement
Address K, relocation destination address K', distance L between PEs
It shows a relationship. The horizontal axis is the difference in index of elements (j
-i), and the vertical axis is the address of the element. 81 is again
The pre-location address K, 82 is the relocation destination address K, 83 is
The distance between PEs is L. Size of element index i, j
The domain of (j-i) determined from the relationship is {-(N-1
), -1}, {0}, {1, (N-1)}
I get kicked. However, (j-i) is an integer within the above range
. Conditions for relocation processing of elements existing in these three types of domains
The matters are shown below. (1) When i=j; The PE number where the element (i, j) of matrix P is held is i, then
The address of is h. On the other hand, element (i, j) of matrix Q
The PE number maintained is i (from j=i), and its
The address is h. That is, the address h of P and Q in the matrix
Since the elements of are held in the PE with the same number, the relocation process
There is no need for (2) When i<j; Element (i, j) of matrix P is the address of PEi (j−i
+h). On the other hand, the elements (i, j) of matrix Q are
It is held at the address of PEj {N-(J-1)+h}
. Therefore, matrix P→matrix Q for the elements of this domain
In the relocation process, the address (j-i+h) of PEi is
Relocate element to PEj address {N-(j-i)+h}
Must. (3) When i>j; Element (i, j) of matrix P is the address of PEi {N-(i
−j)+h}. On the other hand, the elements (i,
j) is held at address (i−j+h) of PEj. Therefore, the matrix P→matrix Q is rewritten for the elements of this domain.
In the placement process, the address of PEi {N-(i-j)+h
} is relocated to the address (i-k+h) of PEj.
There must be. Data relocation based on these relocation conditions
Processing involves converting the PE number and the address where each element is held.
conversion of the source is required. Therefore, the ring array process
In the sensor configuration, (element is retrieved from the address before relocation)
) → (Transfer this element to the relocation destination PE) → (Transfer
Steps to store the sent element at the relocation destination address)
You must perform data relocation processing. this
Transfer of elements in a procedure to the relocation destination PE is performed in each relocation condition.
Since each case is different, the details are described below. here,
If i=j, from the above results, relocation processing is not necessary.
Therefore, we consider only the case where i≠j. Also, the relocation process
The number of PEs passed through during data transfer between PEs
Define the distance L. (1) When i<j; The data transfer direction on the ring array processor configuration is P.
Since the E number is large → small, the data transfer from PEi → PEj is
The transmission is via the route PEi → PE1 → PEN → PEj.
must be carried out. Therefore, the distance L between PEs is P
Ei → PE1 is (i-1), PE1 → PEN is 1,
Since PEN→PEj is (N-j), L=(i-1
)+1+(N-j)=N-(j-i). (2) When i>j; data transfer is performed by PE
Since it can be executed with i → PEj, the distance L between PEs is L=
It is i-j. [0086] Summarizing the above results, the distance L between PEs, the redistribution
Relocation address K' and element index difference (ji-i)
The following relationship can be seen from the graph of FIG. (1) Element group {(i, j) | j−i=k
} and the address of the element group {(i, j) | j−i=k−N}
are the same, and their value is k+h (1≦k≦N-1). Element held at this address (k+h)
The relationship between the x, y-index of the group will be explained. figure
10 is the x-index of the element group held at the address
The relationship between and y-index is shown. element group {(i, j)
|j-i=k} is on the straight line 90 whose j-intercept is k in the same figure.
Corresponding to the grid points, the element group {(i, j) | j−i=k−N
} corresponds to a lattice point on the straight line 91 whose i-intercept is N-k
. The number of grid points on each straight line is the domain 1 of i, j
Since ≦i, j≦N, the former is (N-k) and the latter is k.
be. Therefore, elements existing at the same address (k+h)
The number of objects is N. This is for all cases of k
holds, and the elements for each k are mutually exclusive
. That is, the element group {(i, j) | j−i=k,
There are N elements of j-i=k-N}, and each of these is one
It is held in N PEs and its address is (k+h).
be. (2) Having the same address value (k+h)
The distance L between PEs of the element group is N-k. In other words, the same ad
The number of transfers between the PEs of the elements of the response is equal. Therefore, each P
Elements of E with the same address are in a ring array processor configuration.
Parallel data transfer is possible. (3) Having the same address value (k+h)
The relocation destination address K' of an element group is the distance between PEs of that element group.
Equal to the value of distance L plus h, that is, (N-k+h)
. Therefore, it is not subject to the parallel data transfer shown in (2).
element group, add h to the value of the number of data transfers between PEs.
It may be placed at the address (N-k+h). From (1) to (2) above, the data
The data relocation process is performed using the following parallel data transfer process.
can. For the element group of address (k+h), (N-k) times
Perform inter-PE transfer and place at address (N-k+h)
. Also, for the element group at address (N-k+h), k
Transfer between PEs twice and place at address (k+h)
. In other words, while performing parallel data transfer between PEs,
Elements of address (k+h) and essentials of address (N-k+h)
This is a process of exchanging with a prime group. Subject to relocation processing
PE is determined by the address of the element group (k+h) and the value of the number of PEs N.
The number of inter-transfers and the relocation destination address are determined, so each
PEs have exactly the same number of transfers between PEs and relocation destination addresses.
This can be achieved by controlling the The explanation so far is based on the rearrangement of matrix P→matrix Q.
I have described the process as an example, but the relocation process of matrix Q → matrix P
The same is true for the case. [0094] Summarizing the explanation so far and rearranging the element group
The parallel processing method is shown below. (D) Parallel processing method for relocation processing In a ring array processor configuration consisting of N PEs
(However, the data transfer direction is for all PEi (1≦i
≦N), PEi→PE(mod(i-1|N)). here
, mod(m|N), if m is an integer multiple of N, then N, m are
Represents the remainder when m is divided by N unless it is an integer multiple of N
) Step 1; Step 2~ for r=1, 2, ..., [N/2]
Execute step 7. (r is the number of repetitions) where [x
] represents the largest integer not exceeding x. Step 2; In all PEi (1≦i≦N),
Extract the elements of dress (r+h). Step 3; At all PEi (1≦i≦N),
At the same time, the extracted element is sent to the next PE.
Receive the retrieved element from the PE. Days like this
The data transmission is repeated (N-r) times. Step 4; When N is an even number and r=[N/2], all
For all PEi (1≦i≦N),
Store the element at address (N-r+h) and end the process.
Ru. Step 5; In all PEi (1≦i≦N),
Extract the elements of the address (N-r+h) and transfer them.
The received element is stored at address (N-r+h). Step 6; In all PEi (1≦i≦N),
The element extracted from the dress (N-r+h) is transferred to the next PE
At the same time, the element extracted from the previous PE is sent to
Receive. Such data transfer is repeated r times. Step 7; For all PEi (1≦i≦N),
Store the sent element at address (r+h). In this parallel processing method, repeating step 1
Since the number of processing times is defined as [N/2], if N is even
Special processing in step 4 is provided for the case of numbers.
. This is for the following reason. If N is an odd number, [N/2] is (N-1)
/2, so the arithmetic of the element retrieved in step 2 is
The dress is {h+1, h+2,..., h+(N-1)/
2}. Also, elements of these addresses are stored
The addresses are {h+(N-1), h+(N-2),...
..., h+(N+1)/2}. On the other hand, step
The address of the element retrieved in step 5 is {h+(N-1),
h+(N-2),...,h+(N+1)/2}
Yes, the stored address is {h+1, h+2,...
, h+(N-1)/2}. Therefore, step 1~
The processing in step 7 can be executed without duplicating each other.
. [0097] If N is an even number, [N/2] is equal to N/2.
Therefore, the address of the element retrieved in step 2 is
{h+1, h+2, . . . , h+N/2}. Also
, the address where the elements of these addresses are stored is {h
+(N-1), h+(N-2),..., h+N/
2}. Assuming there is no step 4, the step
The address of the element retrieved in step 5 is {h+(N-
1), h+(N-2),..., h+N/2}.
The stored address is {h+1, h+2,...,
h+N/2}. Therefore, the element at address N/2
Data transfer processing associated with relocation processing is executed redundantly.
. Therefore, if step 4 is provided, step
By processing Steps 2 to 4, the requirements for address N/2 are
The element relocation is completed and the relocation for the element at this address is
Eliminate redundant processing and reduce unnecessary processing steps
can do. [D-1] Recurrence when N is an even number
Parallel processing method for placement processing Next, the case where N is an even number will be explained. N=6 (even number)
For the example of relocation processing in the case of , the data before relocation processing is
Distribution, parallel processing process of data relocation, and after relocation processing
Describe data distribution. Figure 11 shows the state before relocation processing.
The data distribution of each PE is shown. Moreover, FIG. 12 shows one of the aspects of the present invention.
The relocation processing process of the embodiment is shown. Figure 13 is an example of the present invention.
Each PE data distribution after the relocation process of the example is shown. Figure 11
In the example, the x-index of the element assigned to the PE
is equal to the PE number. Parallel processing of the relocation process mentioned earlier
According to the method, the parallel processing process shown in Fig. 12 is transformed into Fig. 13.
I will explain it together. [0099] In step 1 in Fig. 12, first, add
The element of response (h+1) is extracted from all PEs. take
The number of inter-PE transfers for all issued elements is N-1=
Since 6-1=5, steps 2 to 6 are as follows.
This shows the process of circularly transferring elements between PEs.
. [0100] Then, step 6 is for these elements.
The transfer to the relocation destination PE is completed. [0101] In step 7, these transferred elements
is stored in a format that replaces the element at the address to which it is to be relocated.
It will be done. In other words, take the element at the relocation destination address (h+5).
and store the element transferred to this address (h+5).
pay. [0102] In step 8, extract the data in the format to be exchanged.
The element of address (h+5) is transferred the number of times N-5=6.
-5=1 is transferred between PEs and transferred to the relocation destination PE
complete. [0103] In step 9, these elements are relocated to the destination address.
It is stored in address (h+1). At this time, the address (
h+1) has already been rearranged, so it cannot be transferred.
Store the received element as is at this address (h+1)
do. [0104] As described above, steps 1 to 9
address () via circular data transfer between PEs.
The exchange of the element at address (h+1) and the element at address (h+5) is
Complete. In step 9, further processing of the next exchange is performed.
The element at the target address (h+2) is extracted. These elements are then added to steps 10 to 13.
As shown, N-2 = 6-2 = 4 times of circular data between PEs.
After data transfer, the address is allocated to the relocation destination PE.
(h+4). Also, at this time, the address (
The element stored in h+4) is retrieved. Like this
Step 14 shows the child. [0105] In steps 15 and 16, this application
Elements of dress (h+4) are N-4=6-4=2 PEs
After inter-circular transfer, it is allocated to the relocation destination PE, and that PE
is stored at address (h+2). [0106] For the element at address (h+3),
Since the destination address is (h+3), this address
The elements extracted from the base are N-3=6-3=3 times PE
After circular data transfer, the data is placed in the relocation destination PE and the
Stored at the same address (h+3) as the output address
. These processing steps are shown in steps 18 to 18.
This is step 21, and all relocation processing is performed in this step 21.
The process is completed. The data distribution in FIG. 13 is rearranged according to FIG.
This is after the rearrangement process obtained through the processing process. child
In the distribution of
The relationship is transposed. Relocation process executed successfully
It shows that it was done. [D-2] Recurrence when N is an odd number
Parallel processing method for placement processing Next, the case where N is an odd number will be explained. N=5 (odd number)
For the example of relocation processing in the case of , the data before relocation processing is
Distribution, parallel processing process of data relocation, and after relocation processing
Describe data distribution. Figure 14 shows the state before relocation processing.
The data distribution of each PE is shown. In addition, FIG. 15 shows
3 shows a relocation process according to an embodiment of the present invention. Figure 16 shows one example of the present invention.
5 shows each PE data distribution after relocation processing in the example. N is
Relocation processing can be performed in exactly the same process as in the case of even numbers.
Wear. Steps 1 to 6 in FIG. 15 are N-1=5-
1 = After 4 times of circular data transfer between PEs, the address (h
+1) is relocated to address (h+4). [0109] Also, in steps 6 to 8, N-1
=5-4=After one PE-to-PE circular data transfer, the address is
The element at address (h+4) is relocated to address (h+1).
Ru. As a result, the element of address (h+1) and the address
The rearrangement process regarding the element (h+4) is completed. From then on
, cyclic data transfer between PEs is also performed after step 8.
Elements of address (h+2) and address (h+3) via
, and in step 15, all
The relocation process for the element is completed. From FIG. 14 and FIG. 16, the data after the relocation process is
Comparing the data distributions, we can see that for the elements of each address of PE,
The indexes are in a transposed relationship with each other, so relocation
You can see that the process has finished. (E) Processing time [E
-1] Total processing time Next, the relocation process was executed using the above parallel processing method.
Estimate the processing time for the case. First, the data transfer requires
Estimate processing time from the total number of data transfers between PEs
Ru. All elements with the same address in each PE are
The number of data transfers is the same, and the ring array processor
Parallel transfer is possible between PEs in this configuration. [0112] In the above parallel processing method, even or odd numbers of N
Since the problems for each case have been addressed, the overall
The number of transfers is the number of transfers of each address element of one PE.
It is found by taking the sum. [0113] Data transfer time between PEs at address (h+r)
Since the number is (N-r), the total number of transfers is Ttr.
Then, [Equation 9] is obtained. [0115] Therefore, the data transfer time per time is S
(tr), the total processing required for inter-PE data transfer is
The time S(tr-all) is calculated using equation (10),
S(tr-all) = (1/2)・N・(N-1)・
S(tr) ... is represented by (11). [E-2] Element retrieval and restorage processing time
Retrieving and re-storing the elements stored in each PE
Estimate the processing time required. extract one element
The time required to store S(R), and the time required to store S
(W). In the above parallel processing method, each PE has the same
The elements at one address are taken out simultaneously and the ring array
After data is transferred between PEs in parallel on the processor configuration,
At the same time, it is stored at the relocation destination address. In other words, the key
The number of raw retrievals or restorations is limited to one PE.
All you have to do is think about the number of times you can move, and that number will be subject to relocation.
Since it is equal to the number of addresses, (N-1) times (address
0 elements do not need relocation processing, so relocation processing is
The number of required elements is (N-1). Therefore, each P
The total processing time S(R
/W) is S(R/W) = (N-1)・{S(R) +S(
W) } ...(1
2). From equations (11) and (12), the relocation process
The total processing time S(arng) required is: S(arng) = S(tr-all) + S(
R/W) = (1/2)・N
・(N-1)・S(tr) +(N-1)
・{S(R) +S(W)}
=(N-1)・{(1/2)・
N・S(tr)+S(R)+S(W)}
                         
                         
...(13). The second and third terms of { } in equation (13) are
Assume that it can be ignored compared to the first term (the first term is proportional to N,
the second and third are constant regardless of N), and the total processing time S (a
rng) is S(arng) ≒ (1/2)
・N・(N-1)・S(tr)...
It can be approximated as (14). That is, the total processing time S(ar
ng) is dominated by the processing time required for data transfer between PEs.
Ru. Therefore, regardless of whether N (the number of PEs) is even or odd,
The placement process can be executed in a processing time of O(N2/2). (F) Control method for relocation processing using parallel processing method
When performing relocation processing using the parallel processing method described above,
The control method will be explained. In the above parallel processing method
Therefore, all elements whose data is transferred between PEs in parallel have the same address.
Since it is an element of the response and the number of transfers is the same,
, Address settings when extracting an element from a certain address
, count the number of transfers, and set the address when restoring.
It is exactly the same for all PEs. Therefore, this relocation process
is achieved by performing exactly the same control on each PE.
can. FIG. 17 shows the control of data relocation processing according to the present invention.
The control flowchart is shown below. This flowchart is similar to the above
This corresponds to a parallel processing method for relocation processing. Main departure
The characteristics of the control method of light relocation processing are mutually interchangeable.
The address value of the element is the number of transfers between PEs.
This is the point used for counting. The explanation will be given below according to Figure 17.
The relationship between the relocation process and the parallel processing process described above should be clarified.
I will explain. Step 110; Element extraction address/
Set initial values to counters CA and CB for restorage addresses
do. As an initial value, counter CA has "h+1",
"h+N-1" is set in the counter CB. These two
The address values set in counters CA and CB of
In parallel processing, pairs that exchange their elements with each other
This is the address of the elephant. There is also a parameter that specifies the number of loops.
Set the meter BR1 to [N/2]+h, and set the even number of N.
N is set as the parameter BR2 for determining an odd number. [0122] Step 111; All PEs
Extract the element of the address indicated by counter CA
At the same time, the contents of counter CB indicating the restorage address are transferred.
Load the counter CT to count the number of transmissions. Step 112; In all PEs,
At the same time as sending the retrieved element to the next PE, the previous PE
Receive elements from E. At this time, all PE
and decrements the counter CT. Step 113; The value of counter CT is “h”
”, transfer of elements between PEs and counter CT until
Repeat the decrement (step 112). counter
When the value of CT becomes “h”, the transferred element is relocated.
Since it exists in the previous PE, end the inter-PE data transfer,
The transferred element is added to the address indicated by counter CB.
Store in reply. Step 114; The value of counter CT is “h”
”, the transferred element exists in the relocation destination PE.
, the data transfer between PEs is finished, and the transferred data is
stores the element at the address indicated by counter CB. At this time, the address indicated by counter CB is relocated.
It is not transferred because another element before processing is stored.
Store the element in the address indicated by this counter CB.
Ru. Also, parameter BR2 is an even number and the counter
If the parameter CA is the parameter BR1, the process ends. Step 115; Count the contents of counter CA.
Load to counter CT. And in all PE
is extracted from the address indicated by counter CB.
At the same time as sending an element to the next PE,
Receive elements of . Step 116; In all PEs,
Decrement counter CT. [0128] Step 117; Count such processing.
Repeat until the value of taCT becomes "h". Step 118; The value of counter CT is “h”
”, the transferred element is displayed in counter CA.
Store it at the specified address. of the address indicated by counter CA
Since the element has already been repositioned, the transferred elements are
The element is stored as is at the address indicated by the counter CA. At this time, counter CA is not equal to parameter BR1.
Then it will end. [0130] Step 119;
The rearrangement process of dress elements is in the form of exchanging elements with each other.
When finished, counter CA increments, counter
CB is decremented. And the same process as above
Therefore, the address indicated by counter CA and counter CB
Relocate elements of the system via inter-PE data transfer. [0131] As mentioned above, the elements of two addresses are mutually
When the value of counter CA is “
Repeat until it matches [N/2]+h” (Step 1
14, step 118). In this control flowchart
The value of counter CA matched this “[N/2]+h”
The determination of whether or not (steps 114 and 118)
Value of counter CA and contents of parameter BR1 “[N/2]
This is done by detecting a match with “+h”.In addition, the parameter BR1
The contents of are set at the start of the relocation process (step 11).
0). If N is an even number, the address ([N/2]+h
) is a form of exchanging elements at two addresses.
Since this is not the formula, relocation is performed by data transfer between PEs.
After being forwarded to the destination PE, it is re-stored directly to the same address.
Ru. Whether the total number N of PEs is an even number or an odd number
The determination (step 114) is based on the content of the parameter BR2 “
The contents of this BR2 are also relocated.
Set at the start (step 110). [0132] As explained so far, between PEs
Exchange of elements of two addresses via parallel data transfer
The relocation process is completed through basic regular processing.
Ru. This control method uses counter CA and counter CB as elements.
It only serves to give the fetch/restore address of
, but the elements of the address indicated by counter CB, respectively.
, inter-PE data for the element at the address indicated by counter CA.
It also functions to give the number of data transfers. (G) Relocation processing using parallel processing method
Control hardware that realizes the control method shown in control hardware configuration (F)
This section explains the software configuration. Figure 18 shows the data of the present invention.
A configuration diagram of control hardware for relocation processing is shown. In the same figure
, incrementer CA120, decrementer C
B121, decrementer CT124, register BR
1122 and register BR2123 are shown in FIG.
Counter CA, counter CB, counter CT shown in 6
Corresponding to this, register BR1122 repeats the transfer in Figure 17.
Specifies the control parameter for the loop count, which is the count to repeat.
register BR2123 corresponds to BR1 of N.
For BR2 that specifies parameters for determining even and odd numbers
respond. Selector 127 is incrementer CA1
20, switch the output of decrementer CB121 to decrement
This is for loading into Climenta CT124.
. [0135] The flag generation circuit 125 generates parallel data between PEs.
The end of data transfer is indicated by the value of decrementer CT124 being “h”.
” is detected and that flag (from now on, this flag will be used as
This is a circuit that generates a flag (referred to as an “h” flag). Also,
This “h”-flag is used as a decrementer to decrementer CT124.
Used as a control signal to switch the data load source. That is,
Every time this “h”-flag turns on, the selector 127
is the data load source incrementer CA120 or
switches the decrementer CB121. [0136] Set N to register BR2123.
. For even and odd numbers of N, use this register BR2123.
The value of LSB (least significant bit) is “0” or “1”
Judgment is made by In other words, “0” is an even number, “1” is an even number, and “1” is an even number.
If it is, it is determined to be an odd number. Also, [N/2] + h and increment
It is controlled by matching the value of Mentor CA120. child
This is an incremental change as shown in the control method above.
Data CA120 is “h+1” to “[N/2]+h”
This incrementer CA
120 value matches the contents of register BR1122
Detecting actually counts [N/2] times.
is equivalent to [0137] Therefore, this control hardware configuration includes:
Value of incrementer CA120 and register BR112
A match detection circuit 126 that detects a match with the contents of 2.
It is set up. The relocation process is completed by this match detection circuit 12.
6 Determine based on the contents of the match flag output from
. Note that the parity of N is related to the termination condition of the relocation process.
Therefore, the LSB of register BR2123 is this match.
It is input to the detection circuit 126. [0139] As a result, incrementer CA120
, decrementer CB121, decrementer CT124
and detecting the specific value of register BR1122
Accordingly, the control method shown in (F) can be realized. Effects of the Invention As described above, the data relocation process of the present invention
According to the method, multiple (N) processing elements are simultaneously
If you want to rearrange elements one by one, you can rearrange them at any time.
The relocation process can be made N times faster compared to . Moreover, the present invention
performs relocation processing in the form of exchanging elements of two addresses.
This method enables regular and efficient processing.
can. [0141] Furthermore, according to the relocation processing control method of the present invention,
If so, simply retrieve the element's address value from the fetch address and
Not only used as a storage address, but also used for data transfer between PEs.
Transfer times when transferring elements to the relocation destination PE by
The structure of double DO loop processing also used for counting numbers.
This control method allows for regular control of relocation processing.
, can be realized efficiently. Furthermore, each PE has exactly the same
control and mutually manage the control status of each PE.
In addition, each PE in the ring array processor configuration
There is no need to create a complicated control configuration that requires individual control.
This makes control easier. [0142] Furthermore, the configuration of the control hardware of the present invention
According to
Find counters and specific values of counters and flag them
This can be realized using two types of detection circuits that generate
The hardware configuration can be simplified and the scale of the hardware can be reduced.
Can be made smaller.

【図面の簡単な説明】[Brief explanation of the drawing]

【図1】本発明の原理説明図である。FIG. 1 is a diagram explaining the principle of the present invention.

【図2】パターン認識における学習処理を並列処理によ
り実行する場合のリングアレイプロセッサの構成図であ
る。
FIG. 2 is a configuration diagram of a ring array processor when learning processing in pattern recognition is executed by parallel processing.

【図3】リングアレイプロセッサ構成を用いた前向きパ
ス・アルゴリズムの並列処理を示す図である。(フォワ
ード−バックワード・プロセデュア)
FIG. 3 illustrates parallel processing of a forward pass algorithm using a ring array processor configuration. (Forward-Backward Procedure)

【図4】リングアレイプロセッサ構成を用いた後ろ向き
パス・アルゴリズムの並列処理を示す図である。(フォ
ワード−バックワード・プロセデュア)
FIG. 4 illustrates parallel processing of a backward pass algorithm using a ring array processor configuration. (Forward-Backward Procedure)

【図5】リング
アレイプロセッサ構成を用いた初期状態確率の再推定計
算の並列処理を説明するための図である。(バウム−ウ
ェルチ・リエスティメーション・フォーミュラス)
FIG. 5 is a diagram for explaining parallel processing of re-estimation calculation of initial state probabilities using a ring array processor configuration. (Baum-Welch Restimation Formulas)

【図6】バウム−ウェルチ・リエスティメーション・フ
ォーミュラスの状態遷移確率の再推定計算をリングアレ
イプロセッサ構成で並列処理する場合のデータフローで
ある。
FIG. 6 is a data flow when re-estimating state transition probabilities of the Baum-Welch Reestimation Formulas is processed in parallel using a ring array processor configuration.

【図7】学習処理におけるバウム−ウェルチ・リエステ
ィメーション・フォーミュラスのシンボル出力確率の再
推定計算をリングアレイ構成で並列処理する場合のデー
タフローである。
FIG. 7 is a data flow when the re-estimation calculation of the symbol output probability of the Baum-Welch Reestimation Formula in learning processing is processed in parallel in a ring array configuration.

【図8】学習処理に必要となるデータの再配置処理の内
容を示す図である。
FIG. 8 is a diagram showing the contents of data rearrangement processing required for learning processing.

【図9】要素のインデックス差と再配置前アドレス、再
配置先アドレス、PE間距離との関係を示す図である。
FIG. 9 is a diagram showing the relationship between an element index difference, a pre-relocation address, a relocation destination address, and a distance between PEs.

【図10】アドレスに保持される要素群のx−インデッ
クスとy−インデックスの関係を示す図である。
FIG. 10 is a diagram showing the relationship between x-index and y-index of an element group held at an address.

【図11】再配置処理前の各PEのデータ分布を示す図
である。
FIG. 11 is a diagram showing data distribution of each PE before relocation processing.

【図12】本発明の一実施例の再配置処理過程を示す図
である。
FIG. 12 is a diagram showing a relocation process according to an embodiment of the present invention.

【図13】本発明の一実施例の再配置処理後の各PEの
データ分布を示す図である。
FIG. 13 is a diagram showing data distribution of each PE after relocation processing according to an embodiment of the present invention.

【図14】再配置処理前の各PEのデータ分布を示す図
である。
FIG. 14 is a diagram showing data distribution of each PE before relocation processing.

【図15】本発明の他の実施例の再配置処理過程を示す
図である。
FIG. 15 is a diagram showing a relocation process according to another embodiment of the present invention.

【図16】本発明の他の実施例の再配置処理後の各PE
のデータ分布を示す図である。
FIG. 16: Each PE after relocation processing according to another embodiment of the present invention
It is a figure showing data distribution of.

【図17】本発明のデータの再配置処理の制御フローチ
ャートである。
FIG. 17 is a control flowchart of data relocation processing according to the present invention.

【図18】本発明のデータの再配置処理の制御ハードウ
ェアの構成図である。
FIG. 18 is a configuration diagram of control hardware for data relocation processing according to the present invention.

【符号の説明】[Explanation of symbols]

120  インクリメンタCA 121  デクリメンタCB 122  レジスタBR1 123  レジスタBR2 124  デクリメンタCT 125  フラグ生成回路 126  一致検出回路 127  セレクタ 120 Incrementer CA 121 Decrementer CB 122 Register BR1 123 Register BR2 124 Decrementer CT 125 Flag generation circuit 126 Coincidence detection circuit 127 Selector

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】  複数の処理要素を環状に接続したマル
チプロセッサシステムにおいて、複数の前記処理要素は
各々データ授受を行うためのデータ転送パスを介して前
記処理要素と接続され、前記複数の処理要素は所望の演
算を行う演算手段、前記処理要素間のデータを転送する
データ転送手段、アドレス及びデータを記憶する記憶手
段及び、記憶したデータを読み出す読み出し手段に対し
て制御を行う制御手段を有し、前記複数の処理要素に対
して前記処理要素が前記マルチプロセッサに配列されて
いる順番に番号が付与され、全ての前記処理要素におい
て、前記記憶手段の第1のアドレスから前記読み出し手
段によりデータを読み出し、読み出した前記データを前
記処理要素間で所定の回数転送し、前記各処理要素に転
送されてきた前記記憶手段の第1のアドレスのデータを
前記第2のアドレスのデータと交換して前記記憶手段に
格納し、交換された前記記憶手段の第2のアドレスのデ
ータは前記処理要素間で同時に所定回数転送し、個々の
前記処理要素に転送された前記記憶手段の第2のアドレ
スのデータを前記記憶手段の第1のアドレスに格納する
手続きを前記処理要素の総数が奇数の場合は前記処理要
素の総数(N)を2で割った値(N/2)分実行し、前
記処理要素の総数が偶数の場合には前記処理要素の総数
(N)を2で割った値(N/2)より1を減した値(N
/2−1)分実行し、前記処理要素の総数が偶数且つ前
記処理要素の総数を2で割った値(N/2)とデータ転
送を繰り返すカウント(r)が等しければ全ての前記処
理要素において同時に前記記憶手段の第1のアドレスの
データを取り出し、取り出した前記第1のアドレスデー
タを前記処理要素間で同時に所定カウント分転送し、前
記各処理要素では個々の前記処理要素に転送された前記
第1のアドレスのデータを前記記憶手段の第2のアドレ
スに格納することを特徴とするマルチプロセッサにおけ
るデータの再割り付け方法。
1. In a multiprocessor system in which a plurality of processing elements are connected in a ring, each of the plurality of processing elements is connected to the processing element via a data transfer path for exchanging data, and the plurality of processing elements has a control means for controlling arithmetic means for performing a desired operation, a data transfer means for transferring data between the processing elements, a storage means for storing addresses and data, and a reading means for reading out the stored data. , numbers are assigned to the plurality of processing elements in the order in which the processing elements are arranged in the multiprocessor, and in all the processing elements, the reading means reads data from the first address of the storage means. The read data is read and transferred between the processing elements a predetermined number of times, and the data at the first address of the storage means transferred to each processing element is exchanged with the data at the second address. The data at the second address of the storage means stored in the storage means and exchanged is simultaneously transferred between the processing elements a predetermined number of times, and the data at the second address of the storage means transferred to each of the processing elements. If the total number of processing elements is an odd number, the procedure for storing the processing element at the first address of the storage means is executed for a value (N/2) obtained by dividing the total number of processing elements (N) by 2, and If the total number of processing elements is an even number, the value (N
/2-1), and if the total number of the processing elements is an even number and the total number of the processing elements divided by 2 (N/2) is equal to the data transfer repeat count (r), all the processing elements are executed. At the same time, the data at the first address of the storage means is retrieved, and the retrieved first address data is simultaneously transferred between the processing elements by a predetermined count, and in each of the processing elements, the data is transferred to each of the processing elements. A data reallocation method in a multiprocessor, characterized in that data at the first address is stored at a second address of the storage means.
【請求項2】  前記第1のアドレス(h+r)に対す
る前記処理要素間の転送回数を前記第1のアドレス(h
+r)のデータの交換対象となるデータに対する前記第
2のアドレス(h+N−r)のアドレス値からhを減じ
た値(N−r)とし、前記第2のアドレス(h+N−r
)のデータに対する前記処理要素間の転送回数を前記第
2のアドレス(h+N−r)のデータの交換対象となる
データに対する前記第1のアドレス(h+r)のアドレ
ス値からhを減じた値rとして、r=1,2,・・・,
[N/2]に対して前記処理要素の前記記憶手段から取
り出されるデータの前記処理要素間の同時転送における
転送回数をカウントして、前記取り出したデータに対す
る再配置先の前記処理要素への転送処理を制御すること
を特徴とするマルチプロセッサにおけるデータの再割り
付け方法の制御方法。
2. The number of transfers between the processing elements for the first address (h+r) is expressed as the number of transfers between the processing elements for the first address (h+r).
The value (N-r) is obtained by subtracting h from the address value of the second address (h+N-r) for the data to be exchanged.
) is the number of transfers between the processing elements for the data at the second address (h+N-r) as a value r obtained by subtracting h from the address value at the first address (h+r) for the data to be exchanged with the data at the second address (h+N-r). , r=1,2,...,
Counting the number of transfers in simultaneous transfer between the processing elements of data retrieved from the storage means of the processing element relative to [N/2], and transmitting the retrieved data to the processing element to which it is to be relocated. A method for controlling data reallocation in a multiprocessor, characterized by controlling processing.
【請求項3】  前記第1のアドレスを保持する第1の
カウンタと、前記第2のアドレスを保持する第2のカウ
ンタと、前記処理要素の前記記憶手段から取り出される
データの前記処理要素間の同時転送における転送回数を
カウントする第3のカウンタと、前記第1のカウンタの
出力と前記第2のカウンタの出力とを切り換えるセレク
タと、前記セレクタの出力は前記第3のカウンタの入力
に接続され、前記第3のカウンタの値がhに等しいこと
を検出して第1のフラグを発生する第1のフラグ発生手
段と、前記セレクタにより前記第1のフラグの内容によ
って前記第1のカウンタの出力と前記第2のカウンタの
出力とを切り換える切り換え手段と、繰り返しの回数の
制御パラメータを保持する第1のレジスタと、全ての前
記処理要素の個数の偶奇性判定用のパラメータを保持す
る第2のレジスタと、前記第1のレジスタの内容と、前
記第1のカウンタの内容との一致を検出して第2のフラ
グを発生させる第2のフラグ発生手段と、前記第2のレ
ジスタの最下位ビットの内容によりすべての前記処理要
素の個数の偶奇性を判断する偶奇性判断手段と、前記第
2のフラグの内容と前記第2のレジスタの最下位ビット
の内容によってデータの再配置処理の終了を検出する終
了検出手段とを有することを特徴とするマルチプロセッ
サにおけるデータの再割り付けの制御機構。
3. A first counter that holds the first address, a second counter that holds the second address, and a link between the processing element and the data retrieved from the storage means of the processing element. a third counter that counts the number of transfers in simultaneous transfer; a selector that switches between the output of the first counter and the output of the second counter; the output of the selector is connected to the input of the third counter; , a first flag generating means that detects that the value of the third counter is equal to h and generates a first flag; and an output of the first counter according to the content of the first flag by the selector. and the output of the second counter; a first register that holds a control parameter for the number of repetitions; and a second register that holds a parameter for determining the parity of the number of all the processing elements. a register; a second flag generating means for detecting a match between the contents of the first register and the contents of the first counter and generating a second flag; and a least significant bit of the second register. parity determining means for determining whether the number of all the processing elements is even or odd based on the contents of the processing element; 1. A data reallocation control mechanism in a multiprocessor, comprising: end detection means for detecting the end of data reallocation in a multiprocessor.
JP3013578A 1991-02-04 1991-02-04 Method for reallocating data for multiprocessor and control mechanism therefor Pending JPH04247554A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3013578A JPH04247554A (en) 1991-02-04 1991-02-04 Method for reallocating data for multiprocessor and control mechanism therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3013578A JPH04247554A (en) 1991-02-04 1991-02-04 Method for reallocating data for multiprocessor and control mechanism therefor

Publications (1)

Publication Number Publication Date
JPH04247554A true JPH04247554A (en) 1992-09-03

Family

ID=11837051

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3013578A Pending JPH04247554A (en) 1991-02-04 1991-02-04 Method for reallocating data for multiprocessor and control mechanism therefor

Country Status (1)

Country Link
JP (1) JPH04247554A (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55160624U (en) * 1979-05-10 1980-11-18
JPS56172548U (en) * 1980-05-23 1981-12-19
JPS6268620U (en) * 1985-10-22 1987-04-30

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55160624U (en) * 1979-05-10 1980-11-18
JPS56172548U (en) * 1980-05-23 1981-12-19
JPS6268620U (en) * 1985-10-22 1987-04-30

Similar Documents

Publication Publication Date Title
JP4339381B2 (en) Shared memory multiprocessor system and information processing method thereof
JP5500652B2 (en) Parallel comparison / selection operation device, processor, and parallel comparison / selection operation method
CN108268422A (en) For handling the hardware accelerator framework of very sparse and supersparsity matrix data
CN106528049B (en) It is generated in multibank conditional branch predictor for the random number of update event
CN111461168A (en) Training sample expansion method and device, electronic equipment and storage medium
CN106155630A (en) Sequencing method, unserializing method, serializing device and unserializing device
CN103065067B (en) The filter method of sequence fragment and system in short sequence assembling
JP2020064536A (en) Optimization device and method for controlling optimization device
US4916649A (en) Method and apparatus for transforming a bit-reversed order vector into a natural order vector
US20050223353A1 (en) Symbolic model checking of software
WO2024000897A1 (en) Blockchain-based digital asset synthesis method and apparatus
JPH04247554A (en) Method for reallocating data for multiprocessor and control mechanism therefor
CN112383819B (en) Video frame extraction method and related equipment
US11886780B2 (en) Optimization device, optimization device control method, and computer-readable recording medium recording optimization device control program
CN111985631B (en) Information processing apparatus, information processing method, and computer-readable recording medium
JPWO2009044486A1 (en) Method for sorting tabular data, multi-core type apparatus, and program
CN106443163B (en) The treating method and apparatus of electric energy measurement data
EP4148628A1 (en) Data processing apparatus, data processing method, and data processing program
US20080281843A1 (en) Distributed Memory Type Information Processing System
EP1873658B1 (en) Information processing system and information processing method
CN112561695B (en) Method and apparatus for concurrently executing transactions in a blockchain
JPWO2004092948A1 (en) Information processing system and information processing method
JP7207423B2 (en) WORKING SET SELECTOR, WORKING SET SELECTION METHOD AND WORKING SET SELECTION PROGRAM
JPWO2005073880A1 (en) Distributed memory type information processing system
Xiang et al. O (1) time algorithm on BSR for constructing a random binary search tree