JPH04247554A - マルチプロセッサにおけるデータの再割り付け方法とその制御機構 - Google Patents

マルチプロセッサにおけるデータの再割り付け方法とその制御機構

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
English (en)
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.)
NTT Inc
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/ja
Publication of JPH04247554A publication Critical patent/JPH04247554A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

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種類の検出回路を用いて実現できるため、
ハードウェア構成が簡素化でき、ハードウェアの規模も
小さくできる。
【図面の簡単な説明】
【図1】本発明の原理説明図である。
【図2】パターン認識における学習処理を並列処理によ
り実行する場合のリングアレイプロセッサの構成図であ
る。
【図3】リングアレイプロセッサ構成を用いた前向きパ
ス・アルゴリズムの並列処理を示す図である。(フォワ
ード−バックワード・プロセデュア)
【図4】リングアレイプロセッサ構成を用いた後ろ向き
パス・アルゴリズムの並列処理を示す図である。(フォ
ワード−バックワード・プロセデュア)
【図5】リング
アレイプロセッサ構成を用いた初期状態確率の再推定計
算の並列処理を説明するための図である。(バウム−ウ
ェルチ・リエスティメーション・フォーミュラス)
【図6】バウム−ウェルチ・リエスティメーション・フ
ォーミュラスの状態遷移確率の再推定計算をリングアレ
イプロセッサ構成で並列処理する場合のデータフローで
ある。
【図7】学習処理におけるバウム−ウェルチ・リエステ
ィメーション・フォーミュラスのシンボル出力確率の再
推定計算をリングアレイ構成で並列処理する場合のデー
タフローである。
【図8】学習処理に必要となるデータの再配置処理の内
容を示す図である。
【図9】要素のインデックス差と再配置前アドレス、再
配置先アドレス、PE間距離との関係を示す図である。
【図10】アドレスに保持される要素群のx−インデッ
クスとy−インデックスの関係を示す図である。
【図11】再配置処理前の各PEのデータ分布を示す図
である。
【図12】本発明の一実施例の再配置処理過程を示す図
である。
【図13】本発明の一実施例の再配置処理後の各PEの
データ分布を示す図である。
【図14】再配置処理前の各PEのデータ分布を示す図
である。
【図15】本発明の他の実施例の再配置処理過程を示す
図である。
【図16】本発明の他の実施例の再配置処理後の各PE
のデータ分布を示す図である。
【図17】本発明のデータの再配置処理の制御フローチ
ャートである。
【図18】本発明のデータの再配置処理の制御ハードウ
ェアの構成図である。
【符号の説明】
120  インクリメンタCA 121  デクリメンタCB 122  レジスタBR1 123  レジスタBR2 124  デクリメンタCT 125  フラグ生成回路 126  一致検出回路 127  セレクタ

Claims (3)

    【特許請求の範囲】
  1. 【請求項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のアドレ
    スに格納することを特徴とするマルチプロセッサにおけ
    るデータの再割り付け方法。
  2. 【請求項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]に対して前記処理要素の前記記憶手段から取
    り出されるデータの前記処理要素間の同時転送における
    転送回数をカウントして、前記取り出したデータに対す
    る再配置先の前記処理要素への転送処理を制御すること
    を特徴とするマルチプロセッサにおけるデータの再割り
    付け方法の制御方法。
  3. 【請求項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のレジスタの最下位ビット
    の内容によってデータの再配置処理の終了を検出する終
    了検出手段とを有することを特徴とするマルチプロセッ
    サにおけるデータの再割り付けの制御機構。
JP3013578A 1991-02-04 1991-02-04 マルチプロセッサにおけるデータの再割り付け方法とその制御機構 Pending JPH04247554A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3013578A JPH04247554A (ja) 1991-02-04 1991-02-04 マルチプロセッサにおけるデータの再割り付け方法とその制御機構

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3013578A JPH04247554A (ja) 1991-02-04 1991-02-04 マルチプロセッサにおけるデータの再割り付け方法とその制御機構

Publications (1)

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

Family

ID=11837051

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3013578A Pending JPH04247554A (ja) 1991-02-04 1991-02-04 マルチプロセッサにおけるデータの再割り付け方法とその制御機構

Country Status (1)

Country Link
JP (1) JPH04247554A (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55160624U (ja) * 1979-05-10 1980-11-18
JPS56172548U (ja) * 1980-05-23 1981-12-19
JPS6268620U (ja) * 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 (ja) * 1979-05-10 1980-11-18
JPS56172548U (ja) * 1980-05-23 1981-12-19
JPS6268620U (ja) * 1985-10-22 1987-04-30

Similar Documents

Publication Publication Date Title
JP5500652B2 (ja) 並列比較選択演算装置、プロセッサ及び並列比較選択演算方法
JP4339381B2 (ja) 共有メモリ型マルチプロセッサシステム及びその情報処理方法
CN111461168A (zh) 训练样本扩充方法、装置、电子设备及存储介质
CN106528049B (zh) 在多存储体条件分支预测器中用于更新事件的随机数产生
CN109213524A (zh) 用于难预测分支的预测器
CN118642761B (zh) 指令依赖构建方法、装置、设备及可读存储介质
US20200090051A1 (en) Optimization problem operation method and apparatus
CN109426482A (zh) 用于在关联存储器中进行最小值-最大值计算的方法
CN111985631A (zh) 信息处理设备、信息处理方法及计算机可读记录介质
US4916649A (en) Method and apparatus for transforming a bit-reversed order vector into a natural order vector
CN113222162A (zh) 量子逻辑门可移动性的判断方法和系统
CN115222052A (zh) 程序、数据处理方法及数据处理设备
CN111639888A (zh) 仓库出库量预测方法、装置、计算机设备及存储介质
CN106776474B (zh) 矢量处理器实现fft的系统及其数据交换、地址生成方法
CN111522730A (zh) 程序测试方法及装置、计算机装置、计算机可读介质
JPH04247554A (ja) マルチプロセッサにおけるデータの再割り付け方法とその制御機構
CN115048462B (zh) 一种基于区块链的数字资产合成方法及装置
US6240540B1 (en) Cyclic redundancy check in a computer system
CN112383819B (zh) 视频帧提取方法及相关设备
JPWO2009044486A1 (ja) 表形式データをソートする方法、マルチコア型装置、及び、プログラム
EP4148628A1 (en) Data processing apparatus, data processing method, and data processing program
US20080281843A1 (en) Distributed Memory Type Information Processing System
RU2841986C1 (ru) Устройство поиска степени отклонения размещения в полносвязных кластерных многопроцессорных системах от минимальной нижней оценки
EP1873658B1 (en) Information processing system and information processing method
JP7207423B2 (ja) 作業集合選択装置、作業集合選択方法および作業集合選択プログラム