(57)【要約】【課題】１群のデータについて、転送元処理ユニットからバッファ装置への書き込みが全て完了する以前にバッファ装置から転送先処理ユニットへの読み出しを可能にする。【解決手段】転送元処理ユニット１０から転送される複数の構成要素からなる１群のデータを、該１群のデータの並び順番と同一又は異なる書き込み順番でバッファ装置２０に前記並び順番通りに書き込み、前記バッファ装置２０から前記１群のデータを前記並び順番と同一又は異なる読み出し順番で読み出して、転送先処理ユニット３０に転送するとき、前記１群のデータのそれぞれの並び順番における前記書き込み順番から前記読み出し順番を差し引いた差分の内の最大値に応じてサイクル数ｆを求め、前記バッファ装置２０への前記１群のデータの書き込み開始から、前記サイクル数ｆだけ経過した後に、前記バッファ装置からの前記１群のデータの読み出しを開始する。【選択図】図１
2010211654.tif 000002
【特許請求の範囲】
【請求項１】
転送元処理ユニットから転送される複数の構成要素からなる１群のデータを、該１群のデータの並び順番と同一又は異なる書き込み順番でバッファ装置に前記並び順番通りに書き込み、前記バッファ装置から前記１群のデータを前記並び順番と同一又は異なる読み出し順番で読み出して、転送先処理ユニットに転送するデータ転送方法において、
前記１群のデータのそれぞれの並び順番における前記書き込み順番から前記読み出し順番を差し引いた差分の内の最大値に応じてサイクル数ｆを求め、
前記バッファ装置への前記１群のデータの書き込み開始から、前記サイクル数ｆだけ経過した後に、前記バッファ装置からの前記１群のデータの読み出しを開始する、
ことを特徴とするデータ転送方法。
【請求項２】
請求項１に記載のデータ転送方法において、
前記サイクル数ｆは、
ｆ＝１＋ｍａｘ（Ｔｗ（ｉ）−Ｔｒ（ｉ））
但し、ｉ＝１，２，・・・，ｎ（ｎは１群のデータの構成要素の数）
Ｔｗ（ｉ）はｉ番目の並び順番の構成要素の書き込み順番
Ｔｒ（ｉ）はｉ番目の並び順番の構成要素の読み出し順番
で求めることを特徴とするデータ転送方法。
【請求項３】
請求項１又は２に記載のデータ転送方法において、
前記読み出しの開始の次のサイクルで、所定の条件が満足されるとき、読み出しの異常を表示することを特徴とするデータ転送方法。
【請求項４】
請求項３に記載のデータ転送方法において、
前記読み出しの異常を表示する前記所定の条件は、
（ｆ−ｇ）≧ｎ
但し、ｎは１群のデータの構成要素の数
ｆ＝１＋ｍａｘ（Ｔｗ（ｉ）−Ｔｒ（ｉ））
ｇ＝１＋ｍｉｎ（Ｔｗ（ｉ）−Ｔｒ（ｉ））
ｉ＝１，２，・・・，ｎ
Ｔｗ（ｉ）はｉ番目の並び順番の構成要素の書き込み順番
Ｔｒ（ｉ）はｉ番目の並び順番の構成要素の読み出し順番
のときであることを特徴とするデータ転送方法。
【請求項５】
転送元処理ユニットから転送される複数の構成要素からなる１群のデータを、該１群のデータの並び順番と同一又は異なる書き込み順番でバッファ装置に前記並び順番通りに書き込み、前記バッファ装置から前記１群のデータを前記並び順番と同一又は異なる読み出し順番で読み出して、転送先処理ユニットに転送するデータ転送装置において、
前記１群のデータの前記書き込み順番を格納する書込順番格納装置と、前記１群のデータの前記読み出し順番を格納する読出順番格納装置とを備え、
それぞれの並び順番における前記書込順番格納装置の前記書き込み順番から前記読出順番格納装置の前記読み出し順番を差し引いた差分の内の最大値に応じてサイクル数ｆを求め、
前記バッファ装置への前記１群のデータの書き込み開始から、前記サイクル数ｆだけ経過した後に、前記バッファ装置からの前記１群のデータの読み出しを開始する、
ことを特徴とするデータ転送装置。
【請求項６】
請求項５に記載のデータ転送装置において、
前記サイクル数ｆは、
ｆ＝１＋ｍａｘ（Ｔｗ（ｉ）−Ｔｒ（ｉ））
但し、ｉ＝１，２，・・・，ｎ（ｎは１群のデータの構成要素の数）
Ｔｗ（ｉ）は前記書込順番格納装置のｉ番目の並び順番の構成要素の書き込み順番
Ｔｒ（ｉ）は前記読出順番格納装置のｉ番目の並び順番の構成要素の読み出し順番
で求めることを特徴とするデータ転送装置。
【請求項７】
請求項５又は６に記載のデータ転送装置において、
前記読み出しの開始の次のサイクルで、所定の条件が満足されるとき、読み出し異常を表示することを特徴とするデータ転送装置。
【請求項８】
請求項７に記載のデータ転送装置において、
前記読み出し異常を表示する前記所定の条件は、
（ｆ−ｇ）≧ｎ
但し、ｎは１群のデータの構成要素の数
ｆ＝１＋ｍａｘ（Ｔｗ（ｉ）−Ｔｒ（ｉ））
ｇ＝１＋ｍｉｎ（Ｔｗ（ｉ）−Ｔｒ（ｉ））
ｉ＝１，２，・・・，ｎ
Ｔｗ（ｉ）は前記書込順番格納装置のｉ番目の並び順番の構成要素の書き込み順番
Ｔｒ（ｉ）は前記読出順番格納装置のｉ番目の並び順番の構成要素の読み出し順番
のときであることを特徴とするデータ転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の構成要素からなる１群のデータ（１トランザクション）を転送元処理ユニットから転送先処理ユニットに転送する際のデータ転送方法および装置に関するものである。
【背景技術】
【０００２】
パイプライン構造による並列処理において、処理ユニット間でのトランザクションの転送について、各処理ユニットのインターバルや書き込み／読み出しの順番については、事前に設計分析して固定の処理回路を合成するか、あるいはダブルバッファやマルチバッファによる方法を採用していた（例えば、非特許文献１、２参照）。
【０００３】
１群のデータ（１トランザクション）、例えば、８サイクルで８個のデータを転送するときは、通常では、図８に示すように、書き込み開始の指令が発生されると、転送元処理ユニット１０から書き込みデータＷｉが、例えば、W１→W５→W２→W６→W３→W７→W４→W８の順番でバッファ装置２０に書き込まれる。添え字ｉはデータ並びの順番を示す。バッファ装置２０では、データ並びの順番ｉでアドレスｉに格納される。つまり、バッファ装置２０のｉ番目のアドレスには書き込みデータＷｉが格納される。ここで、設計時には、データの書き込みの順番が上記（１→５→２→６→３→７→４→８）のようには確定していない場合には、読み出しの開始は、データの書き込みが全て終わった後（８サイクルの後）に行わなければならない。
【０００４】
そして、読み出し開始指令が発生されてから、転送先処理ユニット３０によって、読み出しデータＲｉが、例えば、Ｒ１→Ｒ２→Ｒ３→Ｒ４→Ｒ５→Ｒ６→Ｒ７→Ｒ８の順番で読み出される（Ｒｉ＝Ｗｉである）。また、この読み出している間は、読み出し順番が上記（１→２→３→４→５→６→７→８）のようには確定していない場合は、未読のデータの上書きを防止するために、次の書き込みを開始することはできない。
【０００５】
仮に、読み出している間に次の書き込みを開始しなければならない場合には、他にさらに一式のバッファ装置を用意して、交互に切り替える制御を採用することになる。これが、ダブルバッファである。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところが、事前に設計分析して固定の処理回路を合成する手法では、処理ユニットの書き込みや読み出しの順番が変動するたびに、再設計が必要となる。それを避けるために、ダブルバッファやマルチバッファによる方法を採用した場合には、バッファとして使用するメモリの量が増大する、処理全体のレイテンシが増大する、などの問題があった。
【０００７】
本発明の目的は、複数の構成要素からなる１群のデータについて、転送元処理ユニットからバッファ装置への書き込みが全て完了する以前にバッファ装置から転送先処理ユニットへの読み出しを可能とし、メモリ量増大を伴わず、処理全体のレイテンシを削減できるようにしたデータ転送方法および装置を提供することである。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、請求項１にかかる発明は、転送元処理ユニットから転送される複数の構成要素からなる１群のデータを、該１群のデータの並び順番と同一又は異なる書き込み順番でバッファ装置に前記並び順番通りに書き込み、前記バッファ装置から前記１群のデータを前記並び順番と同一又は異なる読み出し順番で読み出して、転送先処理ユニットに転送するデータ転送方法において、前記１群のデータのそれぞれの並び順番における前記書き込み順番から前記読み出し順番を差し引いた差分の内の最大値に応じてサイクル数ｆを求め、記バッファ装置への前記１群のデータの書き込み開始から、前記サイクル数ｆだけ経過した後に、前記バッファ装置からの前記１群のデータの読み出しを開始する、ことを特徴とする。
【０００９】
請求項２にかかる発明は、請求項１に記載のデータ転送方法において、前記サイクル数ｆは、
ｆ＝１＋ｍａｘ（Ｔｗ（ｉ）−Ｔｒ（ｉ））
但し、ｉ＝１，２，・・・，ｎ（ｎは１群のデータの構成要素の数）
Ｔｗ（ｉ）はｉ番目の並び順番の構成要素の書き込み順番
Ｔｒ（ｉ）はｉ番目の並び順番の構成要素の読み出し順番
で求めることを特徴とする。
【００１０】
請求項３にかかる発明は、請求項１又は２に記載のデータ転送方法において、前記読み出しの開始の次のサイクルで、所定の条件が満足されるとき、読み出しの異常を表示することを特徴とする。
【００１１】
請求項４にかかる発明は、請求項３に記載のデータ転送方法において、前記読み出しの異常を表示する前記所定の条件は、
（ｆ−ｇ）≧ｎ
但し、ｎは１群のデータの構成要素の数
ｆ＝１＋ｍａｘ（Ｔｗ（ｉ）−Ｔｒ（ｉ））
ｇ＝１＋ｍｉｎ（Ｔｗ（ｉ）−Ｔｒ（ｉ））
ｉ＝１，２，・・・，ｎ
Ｔｗ（ｉ）はｉ番目の並び順番の構成要素の書き込み順番
Ｔｒ（ｉ）はｉ番目の並び順番の構成要素の読み出し順番
のときであることを特徴とする。
【００１２】
請求項５にかかる発明は、転送元処理ユニットから転送される複数の構成要素からなる１群のデータを、該１群のデータの並び順番と同一又は異なる書き込み順番でバッファ装置に前記並び順番通りに書き込み、前記バッファ装置から前記１群のデータを前記並び順番と同一又は異なる読み出し順番で読み出して、転送先処理ユニットに転送するデータ転送装置において、前記１群のデータの前記書き込み順番を格納する書込順番格納装置と、前記１群のデータの前記読み出し順番を格納する読出順番格納装置とを備え、それぞれの並び順番における前記書込順番格納装置の前記書き込み順番から前記読出順番格納装置の前記読み出し順番を差し引いた差分の内の最大値に応じてサイクル数ｆを求め、前記バッファ装置への前記１群のデータの書き込み開始から、前記サイクル数ｆだけ経過した後に、前記バッファ装置からの前記１群のデータの読み出しを開始する、ことを特徴とする。
【００１３】
請求項６にかかる発明は、請求項５に記載のデータ転送装置において、前記サイクル数ｆは、
ｆ＝１＋ｍａｘ（Ｔｗ（ｉ）−Ｔｒ（ｉ））
但し、ｉ＝１，２，・・・，ｎ（ｎは１群のデータの構成要素の数）
Ｔｗ（ｉ）は前記書込順番格納装置のｉ番目の並び順番の構成要素の書き込み順番
Ｔｒ（ｉ）は前記読出順番格納装置のｉ番目の並び順番の構成要素の読み出し順番
で求めることを特徴とする。
【００１４】
請求項７にかかる発明は、請求項５又は６に記載のデータ転送装置において、前記読み出しの開始の次のサイクルで、所定の条件が満足されるとき、読み出し異常を表示することを特徴とする。
【００１５】
請求項８にかかる発明は、請求項７に記載のデータ転送装置において、前記読み出し異常を表示する前記所定の条件は、
（ｆ−ｇ）≧ｎ
但し、ｎは１群のデータの構成要素の数
ｆ＝１＋ｍａｘ（Ｔｗ（ｉ）−Ｔｒ（ｉ））
ｇ＝１＋ｍｉｎ（Ｔｗ（ｉ）−Ｔｒ（ｉ））
ｉ＝１，２，・・・，ｎ
Ｔｗ（ｉ）は前記書込順番格納装置のｉ番目の並び順番の構成要素の書き込み順番
Ｔｒ（ｉ）は前記読出順番格納装置のｉ番目の並び順番の構成要素の読み出し順番
のときであることを特徴とする。
【発明の効果】
【００１６】
本発明によれば、処理ユニットの特性や負荷の変動等により、処理特性が変動する処理ユニットを接続して同期処理系を構築する場合であっても、複数の構成要素からなる１群のデータについて、転送元処理ユニットからバッファ装置への書き込みが全て完了する以前にバッファ装置から転送先処理ユニットへの読み出しが可能となる。つまり、動作の実行中に、処理ユニットによる書き込みの順番や読み出しの順番に変動が起こった場合にも、転送先処理ユニットの読み出し開始を自律的に調整できる。調整しきれない場合には、異常の発生を表示することができる。よって、機能部品のトランザクション接続によってシステムを構築していく設計方式において、転送における性能損失と部品や電力等の資源消費を抑制することができる。これらによって、ダブルバッファを採用せずにバッファ装置のメモリの量を減らして、バッファ装置が書き込み完了になるのを待たずに、転送先処理ユニット側の処理を開始できるために、総合的なレイテンシを削減できる。
【図面の簡単な説明】
【００１７】
【図１】本発明の１つの実施例のデータ転送装置の説明図である。
【図２】書込順番格納装置への書き込みの説明図である。
【図３】書込順番格納装置および読出順番格納装置への書き込みの説明図である。
【図４】式の説明図である。
【図５】本実施例のデータ転送装置の書き込み／読み出しの説明図である。
【図６】本実施例のデータ転送装置の動作のフローチャートである。
【図７】本実施例のデータ転送装置の動作のフローチャートである。
【図８】従来のデータ転送装置の説明図である。
【発明を実施するための形態】
【００１８】
図１に本発明の１つの実施例のデータ転送装置の概略構成を示す。１０は処理済みのデータを転送する転送元処理ユニット、２０はバッファ装置、３０はデータを受信して処理する転送先処理ユニット、４１はバッファからなる書込順番格納装置、４２は同様の読出順番格納装置、５０は演算装置である。
【００１９】
転送元処理ユニット１０は、その処理の中で、処理結果を出力する際に、バッファ装置２０に書き込みを実行する。このとき、書き込み順番Ｓｗｓによってバッファ装置２０に書き込まれた値ＶｓのデータＤ（ｉ）は、転送元処理ユニット１０が与えたものである。ｉはデータ並び順番（バッファ装置２０のアドレスｉ）を示し、本実施例ではｉ＝１，３，・・・，８である。転送元処理ユニット１０は、書き込み順番Ｓｗｓの値を、必要に応じて遷移させる。この遷移は、転送元処理ユニット１０が任意に決定できる。例えば、初めに１→５→２→６→３→７→４→８の書き込み順番であっても、次の周期ではこれと同じにすることも、一部の順番が入れ替わることもある。なお、データの並び順番ｉと書き込み順番Ｓｗｓは同一の場合も、また異なる場合もある。書き込み順番Ｓｗｓが１→２→３→４→５→６→７→８の場合は、データの並び順番ｉと同じである。
【００２０】
転送先処理ユニット３０は、その処理の中で、処理結果を参照する際に、バッファ装置２０に対して読み出しを実行する。このとき、読み出しによって、値ＶｄとしてデータＤ（ｉ）が現れる。また、読み出しでは、転送先処理ユニット３０が読み出し順番Ｓｗｄを、必要に応じて遷移させる。この遷移は、転送先処理ユニット３０の処理内容に合わせて、転送先処理ユニット３０が任意に決定できる。また、読み出し順番Ｓｗｄの遷移を開始させる信号として、後記するＳｙｎｃｄを使用する。
【００２１】
書込順番格納装置４１は、値Ｉｘｓを、マシンサイクルを追って、１→２→３→４→５→６→７→８と遷移させ、次のマシンサイクルではまた１から開始し、これを繰り返す。そして、転送元処理ユニット１０が与える書き込み順番Ｓｗｓの箇所に、そのときの値Ｉｘｓが書き込まれる。図２に、書き込み順番Ｓｗｓが前記した１→５→２→６→３→７→４→８と変化する場合の調停第１バッファ装置４１の内容Ｔｗ（ｉ）を示した。例えば、並び順番ｉが５番目のデータは、書き込み順番が２番目であることを示している。このように、書込順番格納装置４１のＴｗ（ｉ）には、バッファ装置２０のアドレスｉに書き込まれるデータＤ（ｉ）の書き込みの順番が格納される。
【００２２】
読出順番格納装置４２は、値Ｉｘｄを、マシンサイクルを追って、１→２→３→４→５→６→７→８と遷移させ、次のマシンサイクルではまた１から開始し、これを繰り返す。そして、後記するＳｙｄが１のとき、転送先処理ユニット３０が与える読み出し順番Ｓｗｄの箇所に、そのときの値Ｉｘｄが書き込まれる。図３に、書き込み順番Ｓｗｓが前記した１→５→２→６→３→７→４→８と変化して書込順番格納装置４１の内容Ｔｗ（ｉ）が作成された後の読出順番格納装置４２の内容Ｔｒ（ｉ）を示した。読出順番格納装置４２の内容Ｔｒ（ｉ）は、例えば、並び順番ｉが５番目のデータは、書き込み順番が５番目であることを示している。このように、読出順番格納装置４２のＴｒ（ｉ）には、バッファ装置２０のアドレスｉから読み出されるデータＤ（ｉ）の読み出しの順番が格納される。
【００２３】
演算装置５０では、書込順番格納装置４１の内容Ｔｗ（ｉ）と、読出順番格納装置４２の内容Ｔｒ（ｉ）から、図４に示す式(1)、(2)によって、ｆ、ｇの値を計算する演算部５１、およびそれらｆ、ｇに基づき作成される変数ＤＥＴ、Ｌｆ、Ｐｏｓｔｄ、Ｓｙｄ、Ｓｙｄ１、Ｓｙｎｃｄ等を格納するレジスタ５２〜２７を備える。
【００２４】
レジスタ５４のＰｏｓｔｄの値は、初期値のｎ＝８（Ｄ（ｉ）への書き込み周期）から、読み出しの度に１づつ減少させていき、１になったときに、次の読み出しの後には８とし、これを繰り返す。ただし、Ｐｏｓｔｄ＝８のとき、Ｓｙｄ＝０、Ｓｙｄ１＝１であれば、次の読み出しの後には、そのＰｏｓｔｄの値を「（ｆ−Ｌｆ）−１」だけ増加させる。ｆ＝Ｌｆのときは、１減少となる。その後、読み出しの度に１づつ減少させる。
【００２５】
レジスタ５３のＬｆの値は、Ｐｏｓｔｄ＝８、Ｓｙｄ＝０、Ｓｙｄ１＝１であるとき、次の読み出しの後に、ｆの値で更新する。それ以外のときは直前の値を保持する（図４の式(3)参照）。
【００２６】
レジスタ５５のＳｙｄの値は、初期値は１であり、Ｐｏｓｔｄ＝１となる度に、１と０で交互に遷移する（図４の式(4)参照）。
【００２７】
レジスタ５６のＳｙｎｄ１の値は、次の読み出しの後に、Ｓｙｄの値で更新する（図４の式(5)参照）。
【００２８】
レジスタ５７のＳｙｎｃｄの値は、Ｐｏｓｔｄ＝１のときのみ、１となる（図４の式(6)参照）。
【００２９】
レジスタ５２のＤＥＴの値は、Ｓｙｄ＝０，Ｓｙｄ１＝１，Ｐｏｓｔｄ＝８であって、（ｆ−ｇ）＜８のとき、次の読み出しの後に０（＝正常表示）となる。また、Ｓｙｄ＝０，Ｓｙｄ１＝１，Ｐｏｓｔｄ＝８であって、（ｆ−ｇ）≧８のとき、次の読み出しの後に１（＝異常表示）となる。それ以外は直前の値となる（図４の式(7)参照）。
【００３０】
以上によって、Ｓｙｎｃｄ＝１になったとき、次のサイクルで転送先処理ユニット３０が読み出しを開始するようにすると、図５に示すように、書き込みデータＷ６の書き込みが完了した次のサイクルから、読み出しデータＲ１の読み出しが開始される。なお、Ｓｙｎｃｄ＝１になって読み出しが開始されるときは、必ずＰｏｓｔｄ＝８、Ｓｙｄ＝０、Ｓｙｄ１＝１となる。
【００３１】
以上に従う例として、本実施例のデータ転送装置のタイムチャートを、図６に示す。ここでは、転送元処理ユニット１０による１群のデータの書き込み順番Ｓｗｓは、１→５→２→６→３→７→４→８であり、転送先処理ユニット３０による１群のデータの読み出し順番Ｓｗｄは、１→２→３→４→５→６→７→８である場合について説明する。なお、Ｖｓ、Ｖｄの値は、最初の１周期（８サイクル）は１桁で、２回目の１周期では２桁目に２を、３回目の１周期では２桁目に３を、というように、２桁目に何回目の周期かを表す数値を付けている。Ｖｄが１→２→３→４→５→６→７→８、１１→１２→１３→１４→１５→１６→１７→１８等の順番でそのまま現れれば、１群のデータの転送が正しく行われたことを示す。
【００３２】
最初の８サイクルが完了した後の時刻ｔ＝８において、書込順番格納装置４１の内容Ｔｗ（ｉ）と読出順番格納装置４２の内容Ｔｒ（ｉ）は、図３に示すようになっている。このため、(1)の式から、
ｆ＝１＋ｍａｘ（Ｔｗ（ｉ）−Ｔｒ（ｉ））
＝１＋（７−４）
＝４
となる。また、Ｌｆ＝０である。
【００３３】
よって、この後、Ｐｏｓｔｄの値の調整（８→１１→１０→９→・・・・→２→１）が行われる。その結果、時刻ｔ＝１９において発生するＳｙｎｃｄ＝１に従うことで、次の時刻ｔ＝２０以降は、１群のデータの読み出しが成功し、転送元処理ユニット１０が書き込んだ１群のデータ（上記のように、分かりやすいようにＶｓの値の１桁目を、書き込み順番の番号に揃えてある）をその並びを損なうことなく、転送先処理ユニット３０が取り出すことができている。図５にこれを簡易的に示した。書き込みデータＷ１の書き込みから４サイクル目で読み出しデータＲ１が読み出されている。
【００３４】
また、時刻ｔ＝４０から書き込み順番Ｓｗｓを変更している（３→１→２→４→６→５→８→７）。そのため、一旦、読み出される１群のデータの読み出し順番が損なわれるが、時刻ｔ＝５１以降は、ふたたび、１群のデータＶｄが正常な読み出し順番（１→２→３→４→５→６→７→８）で読み出されている。
【００３５】
ところで、転送元処理ユニット１０による一群のデータの書き込みの順番Ｓｗｓと転送先処理ユニット３０による一群のデータの読み出しの順番Ｓｗｄによっては、Ｐｏｓｔｄの調整では読み書きの間の欠損を免れない場合がある。これを検出するために、ｆ，ｇの値を用いて、ＤＥＴを計算する。
【００３６】
すなわち、Ｓｙｎｃｄ＝１の次のサイクルで、Ｐｏｓｔｄ＝８、Ｓｙｄ＝０、Ｓｙｄ１＝１であるときには、(7)の式により、「ｆ−ｇ」を計算し、その値が、８以上であるかどうかを計算する。その結果がＤＥＴ＝１のときは、転送先処理ユニット３０が、Ｓｙｎｃｄ＝１に従って次のサイクルから読み出しを開始しても、転送元処理ユニット１０が書き込んだ１群のデータの読み出しの順番が損なわれる。このように、ＤＥＴの値を参照することによって、１群のデータの組合せ（順番）の欠損を検出できる。
【００３７】
図７に転送元処理ユニット１０による１群のデータの書き込み順番Ｓｗｓが変化して、読み出しの組合せ（順番）が正しくなくなる条件を与え、ＤＥＴの値によって正常か異常かを検出する動作例のタイムチャートを示す。時刻ｔ＝１〜３１までは、図６のタイムチャートに示したのと同じ動作が行われる。
【００３８】
時刻ｔ＝３２から、転送元処理ユニット１０による１群のデータの書き込み順番Ｓｗｓを変更し、３→７→４→２→６→８→５→１としている。その結果、時刻ｔ＝３４では、読み出される値が、期待される値がＶｄ＝３７ではなく、Ｖｄ＝４７となり、それ以降、読み出される１群のデータが、書き込まれた期待される順番と異なってしまう。これは、時刻ｔ＝３５から時刻ｔ＝４０までの間に、ｇおよびｆの変化をもたらす。
【００３９】
時刻ｔ＝４４において、ｆ＝８、Ｌｆ＝４を反映させて、Ｐｏｓｔｄの調整を行う（８→１１→１０→・・・→２→１）が、時刻ｔ＝５５にＳｙｎｃｄ＝１となるようにするだけでは、読み出した１群のデータは期待される順番との不一致は回復しない。このとき、時刻ｔ＝４４のｆおよびｇによって、時刻ｔ＝４５でＤＥＴ＝１となり、期待される順番の不一致が起きていることが表示される。
【００４０】
さらに、時刻ｔ＝５６において、転送元処理ユニット１０による１群のデータの書き込み順番Ｓｗｓを再度変更し、３→１→４→２→６→５→６→７としている。これによって、時刻ｔ＝６７以降、転送元処理ユニット１０から書き込んだ一群のデータが期待された順番で、転送先処理ユニット３０で正しく読み出されるように回復する。
【００４１】
時刻ｔ＝６７に先だって、時刻ｔ＝６４でのｆ＝３およびＬｆ＝８で、Ｐｏｓｔｄの調整（８→２→１）が行われるが、同時に、ｆおよびｇによって、時刻ｔ＝６５でＤＥＴ＝０に戻る。このように、時刻ｔ＝６５に発生するＳｙｎｃｄ＝０によってＤＥＴの値を評価してＤＥＴ＝０となれば、この読み出しから、一群のデータが正しい順番で伝達できていることを検出できる。
【符号の説明】
【００４２】
１０：転送元処理ユニット
２０：バッファ装置
３０：転送先処理ユニット
４１：書込順番格納装置、４２：読出順番格納装置
５０：演算装置、５１：演算回路、５２〜２７：レジスタ
【先行技術文献】
【非特許文献】
【００４３】
【非特許文献１】ジョナサン  バーレット著、Cell BE プロセッサーでのハイパフォーマンス・アプリケーションのプログラミング、第６回：ＤＭＡ転送での賢いバッファ管理」、[２００９年２月４日検索]、インターネット＜ＵＲＬ：https://www.ibm.com/developerworks/jp/linux/library/pa-linuxps3-6/＞
【非特許文献２】里城  他著、「PDS 最適化サイクル: Cell BEプログラムの最適化戦略の提案」、「Cell Speed Challenge 2008自由課題部門」2008年6月、[２００９年２月４日検索]、インターネット＜http://www.hpcc.jp/sacsis/2008/cell/outputs/doc/jiyu_2.pdf＞
【図１】
2010211654.tif 000003
【図２】
2010211654.tif 000004
【図３】
2010211654.tif 000005
【図４】
2010211654.tif 000006
【図５】
2010211654.tif 000007
【図６】
2010211654.tif 000008
【図７】
2010211654.tif 000009
【図８】
2010211654.tif 000010