(57)【特許請求の範囲】
【請求項１】
データを格納する複数の記憶部を有する記憶媒体を備えた記憶装置の前記記憶媒体における前記複数の記憶部の中から択一的に定められた転送先の格納位置を示すアドレス情報付きのデータが入力される複数のデータ入力部にそれぞれ対応し、かつ、当該データ入力部を通った前記データをそれぞれ保存する複数の一時保存部と、
一グループを構成する複数の前記データがそれぞれ前記各データ入力部を通って前記各一時保存部に分散保存された場合に、前記各一時保存部から、並列に、同じグループの前記データを読み出すデータ読み出し部と、
前記各データの転送先に関連付けられている複数のデータ出力部に接続し、前記データ読み出し部により読み出された前記データを、当該データのアドレス情報に基づいた転送先に対応する前記データ出力部に向けて出力する転送制御部と、
前記データ読み出し部によって前記各一時保存部から並列に読み出される前記各データの転送先に対応する前記データ出力部が互いに異なるように、前記一時保存部毎に同じグループの前記データの読み出し順を設定する順序制御部と、
を有しているデータ転送装置。
【請求項２】
前記各データには、同じグループ内において互いに異なる番号の情報がさらに添付されており、
その番号情報に基づいて、前記転送制御部から前記データ出力部に向けて出力された同じグループの前記データが前記転送先に出力されるタイミングを制御する出力順保証部をさらに有する請求項１記載のデータ転送装置。
【請求項３】
前記出力順保証部は、転送先が同じ複数の前記データが同じグループ内にある場合には、それら転送先が同じ前記データの中から予め与えられた条件に適合する前記データを選択することにより前記データが前記転送先に出力されるタイミングを制御する請求項２記載のデータ転送装置。
【請求項４】
前記一時保存部からの読み出し順に関する情報を前記各データに添付する範囲情報添付部をさらに有し、
前記出力順保証部は、前記読み出し順に関する情報に基づいた範囲内の複数の前記データについて前記転送先に出力されるタイミングを制御する請求項２又は請求項３記載のデータ転送装置。
【請求項５】
前記出力順保証部は、前記データを保持する複数のデータ保持部を有する請求項２又は請求項３又は請求項４記載のデータ転送装置。
【請求項６】
演算処理を行う演算部と、
複数の記憶部を有する記憶装置と、
前記演算部から出力されたデータを前記記憶装置における前記データに付与されているアドレス情報に基づいた記憶部に転送する請求項１乃至請求項５の何れか一つに記載のデータ転送装置と
を有する演算装置。
【請求項７】
前記演算部は、ベクトル演算を行う機能を備えている請求項６記載の演算装置。
【請求項８】
請求項６又は請求項７記載の演算装置を備えた装置。
【請求項９】
データを格納する複数の記憶部を有する記憶媒体を備えた記憶装置の前記記憶媒体における前記複数の記憶部の中から択一的に定められた転送先の格納位置を示すアドレス情報付きのデータが入力される複数のデータ入力部をそれぞれ通って、一グループを構成する複数の前記データが入力された場合に、それらデータを、前記各データ入力部にそれぞれ対応する一時保存部に分散保存し、
前記各一時保存部から並列に読み出される前記各データの転送先に対応するデータ出力部が互いに異なるように、前記一時保存部毎に同じグループの前記データの読み出し順を設定し、
その設定された読み出し順に従って、前記各一時保存部から、並列に、同じグループの前記データを読み出して転送先に向けて出力するデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを格納する記憶部に向けてデータを転送するデータ転送装置、演算装置、それを備えた装置およびデータ転送方法に関する。
【背景技術】
【０００２】
図１７は、データ転送装置を備えた演算装置の一例を、概略的に示すブロック構成図である（例えば特許文献１参照）。この演算装置６０は、演算部６１と、データ転送装置６２と、記憶装置６３とを備えている。演算部６１は、複数の演算処理を並列的に行うことが可能な機能（例えばベクトル演算機能）を備えている。記憶装置６３は、データを保存する複数の記憶部６４1〜６４r（ｒは、２以上の整数）を有している。
【０００３】
データ転送装置６２は、複数の入力パス６５1〜６５p（ｐは、２以上の整数）によって、演算部６１と接続している。また、データ転送装置６２は、複数の出力パス６６1〜６６q（ｑは、２以上の整数）によって、記憶装置６３と接続している。データ転送装置６２は、演算部６１から受信したデータを、当該データに添付されている転送先のアドレス情報に基づいて、記憶装置６３に転送する機能を備えている。
【０００４】
ところで、演算部６１は、並列処理が可能であることから、複数のデータを同時にデータ転送装置６２に出力する場合がある。この場合に、それらデータの転送先の記憶部が互いに異なっている場合には、データ転送装置６２は、それらデータを、それぞれ、互いに異なる出力パス６６1〜６６qを通して記憶装置６３に出力する。一方、演算部６１からデータ転送装置６２に同時に出力された複数のデータの転送先の記憶部が同じ場合には、データ転送装置６２は、例えば、データの競合調停により、それらデータを一つずつ順次、同じ出力パスを通して記憶装置６３に出力する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−３４２３０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記のように、データ転送装置６２が演算部６１から複数のデータを同時に受け取っても、それらデータの転送先の記憶部が同じ場合には、データの競合調停に起因して、データは、データ転送装置６２から記憶部６３へ、一つずつ順次出力される。このために、データ転送装置６２から記憶装置６３へのデータ転送において、同時入力した複数のデータの転送先の記憶部が同じ場合には、転送速度が遅くなる、換言すれば、スループットが低下するという問題が生じる。
【０００７】
本発明は上記課題を解決するためになされた。すなわち、本発明の主な目的は、データ転送装置から記憶装置へのデータ転送のスループットを向上できるデータ転送装置、演算装置、それを備えた装置およびデータ転送方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明のデータ転送装置は、
転送先の格納位置を示すアドレス情報付きのデータが入力される複数のデータ入力部にそれぞれ対応し、かつ、当該データ入力部を通った前記データをそれぞれ保存する複数の一時保存部と、
一グループを構成する複数の前記データがそれぞれ前記各データ入力部を通って前記各一時保存部に分散保存された場合に、前記各一時保存部から、並列に、同じグループの前記データを読み出すデータ読み出し部と、
前記転送先に関連付けられている複数のデータ出力部に接続し、前記データ読み出し部により読み出された前記データを、当該データのアドレス情報に基づいた転送先に対応する前記データ出力部に向けて出力する転送制御部と、
前記データ読み出し部によって前記各一時保存部から並列に読み出される前記各データの転送先に対応する前記データ出力部が互いに異なるように、前記一時保存部毎に同じグループの前記データの読み出し順を設定する順序制御部と、
を有している。
【０００９】
本発明の演算装置は、
演算処理を行う演算部と、
複数の記憶部を有する記憶装置と、
前記演算部から出力されたデータを前記記憶装置に転送する上記本発明のデータ転送装置と
を有する。
【００１０】
本発明における演算装置を装備した装置は、本発明の上記演算装置を有している。
【００１１】
本発明のデータ転送方法は、
転送先の格納位置を示すアドレス情報付きのデータが入力される複数のデータ入力部をそれぞれ通って、一グループを構成する複数の前記データが入力された場合に、それらデータを、前記各データ入力部にそれぞれ対応する一時保存部に分散保存し、
前記各一時保存部から並列に読み出される前記各データの転送先に対応するデータ出力部が互いに異なるように、前記一時保存部毎に同じグループの前記データの読み出し順を設定し、
その設定された読み出し順に従って、前記各一時保存部から、並列に、同じグループの前記データを読み出して転送先に向けて出力する。
【発明の効果】
【００１２】
本発明によれば、データ転送装置から記憶装置へのデータ転送のスループットを向上できる。
【図面の簡単な説明】
【００１３】
【図１】本発明に係る第１実施形態の構成を概略的に示すブロック図である。
【図２】本発明に係る第２実施形態のデータ転送装置および演算装置の構成を示すブロック図である。
【図３】本発明に係る第２実施形態において演算部から記憶装置に転送される要素の構成を模式的に示すイメージ図である。
【図４】本発明に係る第２実施形態のデータ転送装置を構成するアクセス制御部の構成を示すブロック図である。
【図５】一時保存部から読み出される要素の読み出し順の一例を示す図である。
【図６】要素に付与される読み出し順に関する情報の一例を示す図である。
【図７】本発明に係る第２実施形態における出力順保証部の構成を示すブロック図である。
【図８】出力順保証部を構成するレジスタの要素の保持（格納）・出力に関する説明に利用する図である。
【図９】出力順保証部を構成する判定部の動作状態の遷移を示す模式図である。
【図１０】判定部の動作の一例の説明に利用する図である。
【図１１】本発明に係る第２実施形態のデータ転送装置と比較する比較例としてのデータ転送装置の構成を示すブロック図である。
【図１２】データ転送装置における要素の流れの一例を示すタイムチャートである。
【図１３】さらに、データ転送装置における要素の別の流れの一例を示すタイムチャートである。
【図１４】本発明に係る第３実施形態のデータ転送装置を構成する出力順保証部の構成を示すブロック図である。
【図１５】本発明に係る第３実施形態のデータ転送装置における要素の流れの一例を示すタイムチャートである。
【図１６】本発明に係る第３実施形態における出力順保証部の判定部の動作の一例の説明に利用する図である。
【図１７】演算装置の一例を示すブロック図である。
【発明を実施するための形態】
【００１４】
以下に、本発明に係る実施形態を図面を参照して説明する。
【００１５】
（第１実施形態）
図１（ａ）は、本発明に係る第１実施形態のデータ転送装置の構成を概略的に示すブロック構成図である。図１（ｂ）は、そのデータ転送装置を備えた第１実施形態の演算装置の構成を概略的に示すブロック構成図である。
【００１６】
第１実施形態の演算装置１０は、図１（ｂ）に示されるように、演算処理を行う演算部１１と、データを記憶する機能を備えた記憶装置１２とを有すると共に、下記に示すデータ転送装置１を有している。
【００１７】
第１実施形態のデータ転送装置１は、演算部１１から受け取ったデータを記憶装置１２に転送する装置である。当該データ転送装置１は、図１（ａ）に示されるように、複数の一時保存部２（２1，・・・２n（ｎは２以上の整数））と、順序制御部３と、データ読み出し部４と、転送制御部（クロスバ部）５とを有している。
【００１８】
すなわち、各一時保存部２（２1，・・・２n）は、個別に対応するデータ入力部６と接続している。データ入力部６は、転送先の格納位置を示すアドレス情報付きのデータをデータ転送装置１に導入する経路である。各一時保存部２は、接続しているデータ入力部６を通ってデータ転送装置１に入力されたデータを保存する機能を有している。
【００１９】
データ読み出し部４は、各一時保存部２から、並列（換言すれば、同時又はほぼ同時）に、データを読み出す機能を備えている。
【００２０】
転送制御部５は、複数のデータ出力部７に接続している。それらデータ出力部７は、それぞれ、データの転送先に関連付けられている。転送制御部５は、データ読み出し部４により読み出された各データを、当該データに添付されているアドレス情報に基づいた転送先に対応しているデータ出力部７に出力する。
【００２１】
順序制御部３は、各一時保存部２から並列に読み出される各データの転送先に対応するデータ出力部７が互いに異なるように、一時保存部２毎にデータの読み出し順を設定する機能を有している。
【００２２】
この第１実施形態のデータ転送装置１は、上記のように、各一時保存部２から並列に読み出される各データの転送先に対応するデータ出力部７が互いに異なるように、一時保存部２からのデータの読み出し順を制御する構成を有している。このため、第１実施形態のデータ転送装置１および演算装置１０は、次にような効果を得ることができる。すなわち、その効果とは、転送制御部５がデータ出力部７を通してデータを記憶装置１２に転送する際に、転送制御部５におけるデータの競合調停を回避できるという効果である。この効果によって、第１実施形態のデータ転送装置１および演算装置１０は、データの競合調停に起因した記憶装置へのデータの転送速度が遅くなる、換言すれば、スループットが悪化するという問題を防止できる。
【００２３】
上記したような第１実施形態のデータ転送装置１およびそれを有する演算装置１０は、図１（ｃ）に示されるような演算装置を装備した装置１３を構成することができる。この装置１３は、第１実施形態のデータ転送装置１を有しているので、データ転送のスループットが向上し、これにより、演算処理速度のより高速化を図ることができる。
【００２４】
（第２実施形態）
以下に、本発明に係る第２実施形態を説明する。
【００２５】
図２は、第２実施形態のデータ転送装置を備えた演算装置の構成を簡略化して示したブロック図である。この第２実施形態の演算装置２０は、演算部２１と、データ転送装置２２と、記憶装置２３とを有している。なお、具体的には、ＣＰＵ（Central Processing Unit）が、記憶装置（記憶装置２３と同じ、あるいは別の記憶装置）に予め格納されたコンピュータプログラムに基づき動作することによって、演算部２１およびデータ転送装置２２が実現される。つまり、ＣＰＵが、演算部２１およびデータ転送装置２２として機能する。
【００２６】
記憶装置２３は、例えばハードディスク装置等の記憶媒体により構成される複数の記憶部２５（この第２実施形態では、少なくとも４つの記憶部２５1〜２５4）を有している。なお、ここでは、それら記憶部２５1〜２５4は同型とする。
【００２７】
演算部２１は、ベクトル演算処理が可能な機能を有する。この演算部２１は、ベクトル演算によるデータを含む次に示すような要素を複数個、同時又はほぼ同時（並列的）にデータ転送装置２２に向けて出力する機能を有する。図３（ａ）は、その要素の構成をイメージで表した図である。つまり、演算部２１から出力される要素とは、データに、当該データの格納（書き込み）を指令するコマンドと、要素番号と、当該データの格納位置（記憶位置）を示すアドレス情報とが添付されている情報のまとまりである。
【００２８】
この第２実施形態では、説明を分かり易くするために、演算部２１は、一グループを構成する１６個の要素を４個ずつ並列出力することとし、かつ、それら１６個の要素のアドレスは連続していることとする。より具体的に説明すると、それら１６個の各要素には、ｅ０〜ｅ１５の要素番号が付与されている。かつ、各要素のデータのデータ幅は、８バイトとする。かつ、記憶装置２３における各要素の格納位置であるアドレスは、要素番号の小さいものから０番地、８番地、・・・というように、８バイトずつ変位する連続アドレスであるとする。さらに、それらアドレスの０〜３１番地は、記憶部２５1に対応し、アドレスの３２〜６３番地は、記憶部２５2に対応し、アドレスの６４〜９５番地は、記憶部２５3に対応し、アドレスの９６〜１２７番地は、記憶部２５4に対応しているものとする。
【００２９】
この第２実施形態では、演算部２１は、要素番号ｅ０〜ｅ３を並列（同時又はほぼ同時）に別々の演算パス２６ａ〜２６ｄに出力する。そして、次の出力タイミング（次のクロック）では、演算部２１は、要素番号ｅ４〜ｅ７を別々の演算パス２６ａ〜２６ｄに並列出力する。このように、演算部２１は、一グループの要素番号の小さいものから順に４個ずつ別々の演算パス２６ａ〜２６ｄに並列出力する。換言すれば、この第２実施形態では、演算部２１は、記憶部２５1行きの４つの要素（要素番号ｅ０〜ｅ３）をそれぞれ並列に出力するというように、行き先の記憶部２５が同じ４つの要素を並列に各演算パス２６に出力する。なお、この第２実施形態では、要素ｅ０は演算パス２６ａに、要素ｅ１は演算パス２６ｂに、要素ｅ３は演算パス２６ｃに、要素ｅ４は演算パス２６ｄに、それぞれ、出力されるというように、並列出力される４つの要素は、その要素番号の小さいものから順に演算パス２６ａ〜２６ｄに対応して出力される。
【００３０】
また、演算部２１は、上記のような要素を出力すると共に、その要素の処理に関わる制御情報（例えば、転送タイミングを知らせる情報や、グループに関する情報など）を、データ転送装置２２に向けて出力する機能を有している。
【００３１】
データ転送装置２２は、複数の演算パス２６（ここでは、４本の演算パス２６ａ〜２６ｄ）、および、制御パス２７によって、演算部２１に接続している。演算パス２６は、上記したような要素（データ）をデータ転送装置２２に導入する経路（データ入力部）である。制御パス２７は、上記したような要素の制御情報が通る情報の経路である。
【００３２】
データ転送装置２２は、演算部２１から受け取ったデータ（要素）を記憶装置２３に転送する機能を備えている。つまり、当該データ転送装置２２は、転送管理部２８と、順序制御部２９と、複数のアクセス制御部３０と、転送制御部である競合調停部（クロスバ部）３１と、複数の出力順保証部３２とを有している。
【００３３】
転送管理部２８は、演算部２１から出力される制御情報に基づいて、データ転送装置２２の要素（データ）の転送の開始と終了を管理する機能を備えている。
【００３４】
アクセス制御部３０は、演算パス２６ａ〜２６ｄに対応して設けられている。つまり、この第２実施形態のデータ転送装置２２は、演算パス２６ａ〜２６ｄにそれぞれ一対一に対応して接続するアクセス制御部３０ａ〜３０ｄを有している。また、各アクセス制御部３０ａ〜３０ｄは、順序制御部２９に接続している。
【００３５】
各アクセス制御部３０ａ〜３０ｄは、図４に示されるように、範囲情報添付部３４と、一時保存部３５と、出力制御部３６とを有している。
【００３６】
一時保存部３５は、演算パス２６を通ってデータ転送装置２２に入力してきた要素（データ）を保存する機能を有する。この第２実施形態では、図５に示されるように、アクセス制御部３０ａの一時保存部３５は、演算パス２６ａを通った要素ｅ０，ｅ４，ｅ８，ｅ１２を保存する。アクセス制御部３０ｂの一時保存部３５は、演算パス２６ｂを通った要素ｅ１，ｅ５，ｅ９，ｅ１３を保存する。アクセス制御部３０ｃの一時保存部３５は、演算パス２６ｃを通った要素ｅ２，ｅ６，ｅ１０，ｅ１４を保存する。アクセス制御部３０ｄの一時保存部３５は、演算パス２６ｄを通った要素ｅ３，ｅ７，ｅ１１，ｅ１５を保存する。
【００３７】
出力制御部３６は、制御パス３３によって後述する順序制御部２９から加えられる読み出し順の情報に従って、一時保存部３５に保存されている要素を順次読み出す機能を備えている。この第２実施形態では、アクセス制御部３０ａ〜３０ｄの各出力制御部３６は、順序制御部２９からの指示によって、読み出しタイミングを合わせて要素を読み出す。すなわち、この第２実施形態では、アクセス制御部３０ａ〜３０ｄの出力制御部３６は、各一時保存部３５から、データ（要素）を並列に読み出すデータ読み出し部としての機能を有する。
【００３８】
さらに、出力制御部３６は、上記のように読み出した要素（データ）を競合調停部３１に向けて出力する機能を有している。
【００３９】
範囲情報添付部３４は、上記のように出力制御部３６によって一時保存部３５から読み出された要素の同じグループ内における読み出し順に関する情報を、各データに添付する機能を備えている。第２実施形態では、範囲情報添付部３４は、図３（ｂ）に示されるように、各データに、読み出し順が最初か否かを示すデータＳと、読み出し順が最後か否かを示すデータＥとを添付する。具体的には、範囲情報添付部３４は、一時保存部３５に保存される同じグループの４個の要素のうち、最初に読み出された要素には、図６に示されるように、データＳとして「１」を、また、データＥには「０」を添付する。また、範囲情報添付部３４は、最後に読み出された要素には、データＳとして「０」を、また、データＥには「１」を添付する。さらに、範囲情報添付部３４は、それ以外の読み出し順（中間）の要素には、データＳ，Ｅとして、それぞれ「０」を添付する。なお、一グループを構成する要素の数が少なくて一時保存部３５に保存される同じグループの要素が１個のみである場合がある。この場合には、範囲情報添付部３４は、その要素には、データＳ，Ｅとして、それぞれ「１」を添付する。さらにまた、要素が無効である場合がある。この場合には、範囲情報添付部３４は、要素に、データＳ，Ｅとして、それぞれ「０」を添付する。
【００４０】
順序制御部２９は、転送管理部２８から動作開始指令を受信した場合に、出力制御部３６および範囲情報添付部３４に向けて動作開始指令を出力すると共に、出力制御部３６には次に示すような読み出し順の情報をも送信する機能を備えている。つまり、順序制御部２９は、出力制御部３６による要素の読み出し順を設定する機能を有している。
【００４１】
その読み出し順は、次のように設定されている。つまり、後述する競合調停部３１は、データ出力部として機能する複数の転送パス３８（３８ａ〜３８ｄ）に接続している。その転送パス３８ａは記憶装置２３の記憶部２５1に、また、転送パス３８ｂは記憶部２５2に、さらに、転送パス３８ｃは記憶部２５3に、さらにまた、転送パス３８ｄは記憶部２５4に、それぞれ、対応している。この第２実施形態では、各アクセス制御部３０ａ〜３０ｄの出力制御部３６による各一時保存部３５からの読み出し順は、並列に読み出される各要素の転送先に関連付けられている転送パス３８が互いに異なるように設定されている。具体的には、第２実施形態では、図６に示されるように、アクセス制御部３０ａでは、一時保存部３５における同じグループの要素ｅ０，ｅ４，ｅ８，ｅ１２は、格納順に、つまり、要素番号ｅ０→ｅ４→ｅ８→ｅ１２の順に、読み出されるように、その読み出し順が設定される。また、アクセス制御部３０ｂでは、一時保存部３５における同じグループの要素ｅ１，ｅ５，ｅ９，ｅ１３は、４番目に格納した要素から、つまり、要素番号ｅ１３→ｅ１→ｅ５→ｅ９の順に、読み出されるように、その読み出し順が設定される。アクセス制御部３０ｃでは、一時保存部３５における同じグループの要素ｅ２，ｅ６，ｅ１０，ｅ１４は、３番目に格納した要素から、つまり、要素番号ｅ１０→ｅ１４→ｅ２→ｅ６の順に、読み出されるように、その読み出し順が設定される。アクセス制御部３０ｄでは、一時保存部３５における同じグループの要素ｅ３，ｅ７，ｅ１１，ｅ１５は、２番目に格納した要素から、つまり、要素番号ｅ７→ｅ１１→ｅ１５→ｅ３の順に、読み出されるように、その読み出し順が設定される。このように、読み出し順が設定されることによって、読み出し順が同じ４個の要素の各転送先が対応している転送パス３８は、互いに異なることになる。
【００４２】
競合調停部３１は、上記のように、記憶装置２３の各記憶部２５1〜２５4と一対一の関係を持つ４本の転送パス３８（３８ａ〜３８ｄ）に接続している。なお、この第２実施形態では、転送パス３８の数は、演算パス２６の数と同じであったが、当該転送パス３８の数は、演算パス２６の数と同じでなくともよい。
【００４３】
競合調停部３１は、アクセス制御部３０ａ〜３０ｄから並列出力された複数（４個）の要素を受け取ると、それら各要素を、それぞれ、アドレス情報に基づいた転送先に対応している転送パス３８に向けて出力（転送）する機能を有している。この第２実施形態では、上記のように、競合調停部３１がアクセス制御部３０ａ〜３０ｄから並列に受け取る４個の要素は、対応する転送パス３８が互いに異なる転送先を持つ要素である。この場合、競合調停部３１は、それら受け取った４個の要素を、並列（同時又はほぼ同時）に、対応する転送パス３８に向けて出力する。
【００４４】
なお、競合調停部３１は、受け取った複数の要素のうち、少なくとも２個の要素の出力先となる転送パス３８が同じ場合には、競合調停により、それら要素を順次１個ずつ転送パス３８に出力する機能をも備えている。このように、第２実施形態では、競合調停部３１は、競合調停の機能を有しているが、前述したように、対応する転送パス３８が互いに異なる転送先を持つ要素が並列に入力するので、その競合調停を行わなくて済む。
【００４５】
出力順保証部３２（３２ａ〜３２ｄ）は、転送パス３８ａ〜３８ｄにそれぞれ介設されている。これら出力順保証部３２は、競合調停部３１から各転送パス３８ａ〜３８ｄに順次出力された要素を、予め定めた条件に従って選択することにより、各要素が記憶装置２３に送出されるタイミングを制御する機能を備えている。
【００４６】
図７は、第２実施形態における出力順保証部３２（３２ａ〜３２ｄ）の構成を示すブロック図である。つまり、この第２実施形態では、出力順保証部３２は、第１レジスタ４０と、第２レジスタ４１と、判定部４２と、比較部４３，４４とを有している。第１レジスタ４０および第２レジスタ４１は、競合調停部３１から出力された要素を保持する機能を備えている。ここでは、転送パス３８から出力保証部３２に入力した要素は、まず、第１レジスタ４０に保持され、ここで保持された要素が、後述する判定部４２の動作によって、第２レジスタ４１に転送されて保持される。換言すれば、第２レジスタ４１は、先行する要素を保持する先行レジスタであり、第１レジスタ４０は、その先行する要素に続く後続の要素を保持する後続レジスタである。
【００４７】
比較部４３は、第１レジスタ４０に保持されている要素の要素番号と、第２レジスタ４１に保持されている要素の要素番号とを比較し、この比較の結果による第１レジスタ４０の要素番号と、第２レジスタ４１の要素番号との大小関係に応じた信号を出力する。
【００４８】
比較部４４は、第１レジスタ４０に保持されている要素のアドレスと、第２レジスタ４１に保持されている要素のアドレスとを比較する。そして、比較部４４は、第１レジスタ４０のアドレスと、第２レジスタ４１のアドレスとが一致しているか不一致であるかに応じた信号を出力する。
【００４９】
判定部４２は、第１レジスタ４０と第２レジスタ４１の要素のデータＳ，Ｅの組み合わせと、比較部４３，４４からの出力信号（比較結果）とに基づいて、次のような要素の順序保証（出力順保証）に関わる動作を実行する機能を有している。
【００５０】
図８は、第１レジスタ４０と、第２レジスタ４１とにそれぞれ保持されている要素のデータＳ，Ｅの組み合わせと、第２レジスタ４１の次の状態との関係を表にまとめて示している。なお、図８において、データＳとデータＥの両方が「０」である場合は、一グループの要素の読み出し順が中間であることを示すだけでなく、第１レジスタ４０や第２レジスタ４１に要素が保持されていない場合もある。例えば、項番１’は、第１レジスタ４０にも第２レジスタ４１にも要素が格納されていない状態である。
【００５１】
図９は、要素番号とアドレスの比較（監視）に関わる判定部４２の動作状態の遷移を模式的に表した図である。この図９中における矢印に付されている各符号は、それぞれ、図８中の項番に対応している。
【００５２】
図１０は、比較部４３，４４の比較結果と、判定部４２の順序保証動作との関係を表により示している。
【００５３】
判定部４２は、図８〜図１０に示すような動作規定に従って要素の順序保証の動作を行う。この第２実施形態では、一グループの１６個の要素ｅ０〜ｅ１５は、全て、互いに格納位置を示すアドレスが異なっている。このため、判定部４２は、図１０の動作規定に従って、順序保証動作を行わない。つまり、判定部４２は、競合調停部３１から受け取った要素を、まず、第１レジスタ４０に格納する。そして、判定部４２は、例えば次のクロックで、その第１レジスタ４０の要素を第２レジスタ４１に転送すると共に、競合調停部３１から次に受け取った要素を、第１レジスタ４０に格納する。さらに、判定部４２は、その次のクロックで、第２レジスタ４１の要素を転送パス３８を通して記憶装置２３に出力し、かつ、上記同様に、第１レジスタ４０の要素を第２レジスタ４１に転送し、さらに、競合調停部３１から次に受け取った要素を、第１レジスタ４０に格納する。つまり、この第２実施形態では、一グループの要素は転送先のアドレスが連続しており、当該要素の転送は、連続アドレスのメモリアクセス命令に基づく転送である。このような場合には、競合調停部３１から各転送パス３８に上記の如く出力される要素の順序保証は不要である。このため、各出力順保証部３２（３２ａ〜３２ｄ）の判定部４２は、順序保証を行うことなく、第２レジスタ４１の要素を転送パス３８を通して記憶装置２３に向けて出力する。
【００５４】
記憶装置２３は、上記のように、データ転送装置２２（出力順保証部３２）から出力された要素のデータを、アドレス情報に示される格納位置に格納する。
【００５５】
この第２実施形態では、上記のような構成を有しているから、競合調停部３１において、要素（データ）の競合調停を行わなくて済む。このため、この第２実施形態におけるデータ転送装置２２および演算装置２０は、要素（データ）の競合調停に起因した要素（データ）の転送速度の低下（スループットの悪化）を防止できる。この効果を以下に具体的に説明する。
【００５６】
ここで、比較例としての図１１に示すデータ転送装置の構成を簡単に説明する。なお、図１１のデータ転送装置の説明において、第２実施形態のデータ転送装置２２と同様な構成部分には同一符号を付し、その共通部分の重複説明は省略する。
【００５７】
図１１のデータ転送装置４６は、第２実施形態のデータ転送装置２２における順序制御部２９および出力順保証部３２が省略され、かつ、順序制御部２９の省略に伴い、読み出し順の制御に関わるアクセス制御部３０の範囲情報添付部３４も省略されている。
【００５８】
このデータ転送装置４６において、出力制御部３６’は、転送管理部２８から要素の出力指令を受け取ると、一時保存部３５に保持されている要素を、保持された順で読み出して競合調停部３１に向けて出力する。つまり、このデータ転送装置４６では、各アクセス制御部３０’（３０ａ’〜３０ｄ’）は、演算部２１から受け取った要素を、受け取った順に競合調停部３１に向けて出力する。このため、例えば、同じ転送パス３８ａを通って記憶装置２３に転送される４個の要素ｅ０〜ｅ３を、演算部２１からデータ転送装置４６が受け取った場合には、当該データ転送装置４６の競合調停部３１は、それら４個の要素を同時又はほぼ同時に受け取る。この場合には、それら要素の転送先に対応する転送パス３８が同じであるから、競合調停部３１は、競合調停により、４個の要素を、１つずつ順次、記憶装置２３に向けて出力する。競合調停部３１は、上記４個の要素を全て出力し終えなければ、次の４個の要素を受け取らない。
【００５９】
図１２（ｂ）は、データ転送装置４６の動作による要素の流れを模式的に示したタイムチャートである。このタイムチャートを参照しながら、データ転送装置４６における動作例を説明する。例えば、演算部２１は、データ転送装置４６に、一グループを構成する連続アドレスの１６個の要素ｅ０〜ｅ１５を、前記同様に、出力する。データ転送装置４６は、それら受け取った各要素ｅ０〜ｅ１５を、それぞれ、各アクセス制御部３０’（３０ａ’〜３０ｄ’）の一時保存部３５で保持する。
【００６０】
そして、転送管理部２８の転送指令に基づき、各アクセス制御部３０ａ’〜３０ｄ’の出力制御部３６は、それぞれ、一時保存部３５に格納されている要素を格納順に読み出して、競合調停部３１に向けて出力する。つまり、まず、各アクセス制御部３０ａ’〜３０ｄ’の出力制御部３６は、要素ｅ０〜ｅ３を競合調停部３１に出力する（図１２（ｂ）に示す時刻ｔ０）。それら要素ｅ０〜ｅ３は、転送先に対応する転送パス３８（３８ａ）が同じである。このため、競合調停部３１は、受け取った要素ｅ０〜ｅ３を、競合調停により、１個ずつ１クロック毎に順次、転送パス３８ａを通して記憶装置２３に出力する（時刻ｔ２〜ｔ５）。
【００６１】
ところで、競合調停部３１は、要素ｅ０〜ｅ３の全てを出力し終えないと、次の要素ｅ４〜ｅ７を受け取ることができない。このため、アクセス制御部３０ａ’〜３０ｄ’は、次の要素ｅ４〜ｅ７を競合調停部３１に出力しようとしても出力できず時刻ｔ１〜時刻ｔ５に亘り待機状態になる。
【００６２】
時刻ｔ５において、競合調停部３１が要素ｅ０〜ｅ３の全てを出力し終えると、アクセス制御部３０ａ’〜３０ｄ’は、要素ｅ４〜ｅ７を競合調停部３１に並列出力する。これ以降、データ転送装置４６は、上記同様の動作を繰り返して、一グループの１６個の要素ｅ０〜ｅ１５を全て記憶装置２３に転送する。データ転送装置４６が要素ｅ０〜ｅ１５の転送を開始してから終了するまでに要する時間は、図１２（ｂ）に示されるように、１６クロック（１６サイクル（１６Ｔ））である。
【００６３】
図１２（ａ）は、第２実施形態のデータ転送装置２２の動作による要素の流れを模式的に示したタイムチャートである。このタイムチャートを参照して、データ転送装置２２による要素の流れの一例を説明する。
【００６４】
第２実施形態では、データ転送装置２２は、演算部２１から同じグループの１６個の要素ｅ０〜ｅ１５を前記の如く受け取ると、それらを各アクセス制御部３０ａ〜３０ｄの一時保存部３５に保持する。そして、図１２（ａ）に示す時刻ｔ０において、出力制御部３６が、各一時保存部３５から、順序制御部２９により規定された読み出し順で、４個の要素ｅ０，ｅ１３，ｅ１０，ｅ１７を読み出して、競合調停部３１に向けて出力する。それら４個の要素ｅ０，ｅ１３，ｅ１０，ｅ１７は、対応する転送パス３８が互いに異なる。これにより、競合調停部３１は、受け取った４個の要素の競合調停が不要であるので、時刻ｔ２において、それら４個の要素を並列（同時又はほぼ同時）に、転送先に対応している転送パス３８にそれぞれ出力する。このように、競合調停部３１は、並列に受け取った４個の要素の全てを、受け取った次のクロックで出力できるので、当該競合調停部３１は、１クロック毎に、アクセス制御部３０から４個の要素を受け取ることが可能である。
【００６５】
前記の如く競合調停部３１から出力された各要素は、対応する出力順保証部３２（３２ａ〜３２ｄ）に入力し、まず、第１レジスタ４０に保持される（時刻ｔ２）。そして、次のクロック（時刻ｔ３）で、それら各第１レジスタ４０に保持された要素ｅ０，ｅ１３，ｅ１０，ｅ１７は、第２レジスタ４１に転送される。ここでは、同じグループの各要素の格納位置が互いに異なっているから、出力順保証部３２は、図１０に示される動作規定に従い順序保証動作は行わない。このため、次のクロック（時刻ｔ４）で、各出力順保証部３２ａ〜３２ｄは、第２レジスタ４１にそれぞれ保持されていた要素ｅ０，ｅ１３，ｅ１０，ｅ１７を、転送先に対応している転送パス３８に出力する。記憶装置２３は、受け取った要素ｅ０，ｅ１３，ｅ１０，ｅ１７を、アドレス情報に基づいた格納位置に格納する。
【００６６】
第２実施形態のデータ転送装置２２は、前述したように、各アクセス制御部３０ａ〜３０ｄから競合調停部３１に並列出力する４個の要素の組み合わせが、競合調停部３１において競合調停不要な組み合わせとなる構成を有している。これにより、競合調停に起因した転送速度の遅延（スループットの低下）を防止できる。すなわち、競合調停が必要な前記データ転送装置４６では、データ転送装置４６から記憶装置２３へ１６個の要素ｅ０〜ｅ１５を転送するのに要する時間は１６クロック（１６Ｔ）である。これに対して、競合調停を行わなくて済むデータ転送装置２２では、データ転送装置２２から記憶装置２３へ１６個の要素ｅ０〜ｅ１５を転送するのに要する時間は４クロック（４Ｔ）であり、データ転送装置４６に比べて、転送速度（スループット）が改善している。
【００６７】
なお、上記では、連続アドレスのメモリアクセス命令に基づいた要素を利用して、第２実施形態のデータ転送装置２３等を説明したが、この第２実施形態のデータ転送装置２３等は、間接参照のアドレスのメモリアクセス命令（リストストア命令）にも適用できる。
【００６８】
図１３は、データ転送装置２２における、リストストア命令に関わる１６個の要素ｅ０〜ｅ１５の流れの一例を示すタイムチャートである。以下に、図１３を参照して、データ転送装置２２の、リストストア命令に関わる要素の転送動作の一例を説明する。
【００６９】
ここで、要素ｅ０〜ｅ３の格納位置は０番地（記憶部２５1）、要素ｅ４〜ｅ７の格納位置は３２番地（記憶部２５2）、要素ｅ８〜ｅ１１の格納位置は６４番地（記憶部２５3）、要素ｅ１２〜ｅ１５の格納位置は９６番地（記憶部２５4）であるとする。また、演算部２１は、要素ｅ０〜ｅ３を、並列に、かつ、互いに異なる演算パス２６（２６ａ〜２６ｄ）を通して、データ転送装置２２に出力する。さらに、演算部２１は、前記同様に、要素ｅ４〜ｅ７の組と、要素ｅ８〜ｅ１１の組と、要素ｅ１２〜ｅ１５の組とを、順次、１クロック毎に、データ転送装置２２に出力することとする。
【００７０】
データ転送装置２２は、演算部２１から出力された１６個の要素ｅ０〜ｅ１５を、それぞれ、対応するアクセス制御部３０ａ〜３０ｄの一時保存部３５に保持する。そして、アクセス制御部３０ａ〜３０ｄの出力制御部３６は、前記同様に、順序制御部２９により規定された読み出し順でもって各一時保存部３５から要素を読み出して、競合調停部３１に出力する（図１３の時刻ｔ０）。競合調停部３１は、前記同様に、競合調停が不要であるから、受け取った要素を順次、出力する（時刻ｔ２〜時刻ｔ５）。
【００７１】
一方、出力順保証部３２（３２ａ〜３２ｄ）は、競合調停部３１から受け取った要素を順次、第１レジスタ４０に保持すると共に、図８〜図１０に基づく動作規定に従って動作する。以下では、出力順保証部３２の動作を、出力順保証部３２ｃを例にして説明する。
【００７２】
出力順保証部３２ｃには、４個の要素ｅ８〜ｅ１１が、ｅ１０→ｅ１１→ｅ８→ｅ９の順で入力する。要素ｅ１０は読み出し順が最初であるから、要素ｅ１０のデータＳは「１」、データＥは「０」である。要素ｅ９は読み出し順が最後であるから、要素ｅ９のデータＳは「０」、データＥは「１」である。
【００７３】
出力順保証部３２ｃが図９に示す状態１（初期状態）であるときに、時刻ｔ２において、出力順保証部３２ｃは、要素ｅ１０を受け取ると、当該要素ｅ１０を第１レジスタ４０に保持する。これにより、第１レジスタ４０に保持されている要素のデータＳが「１」であるから、出力順保証部３２ｃは、図８（項番３）と図９に基づいて、状態１（初期状態）から状態２に遷移する。つまり、出力順保証部３２ｃ（判定部４２）は、第１レジスタ４０と第２レジスタ４１に保持されている要素の要素番号とアドレス情報の監視を開始する。
【００７４】
次のクロック（時刻ｔ３）で、出力順保証部３２ｃは、第１レジスタ４０の要素ｅ１０を第２レジスタ４１に転送し、一方で、次の要素ｅ１１を競合調停部３１から受け取って、当該要素ｅ１１を第１レジスタ４０に保持する。そして、判定部４２は、比較部４３の比較結果に基づいて、第１レジスタ４０の要素番号ｅ１１が第２レジスタ４１の要素番号ｅ１０よりも大きく、かつ、比較部４４の比較結果により、第１レジスタ４０と第２レジスタ４１の各要素のアドレスが一致していることを検知する。これにより、判定部４２は、図１０に示される動作規定に従って、第２レジスタ４１の要素ｅ１０を削除する。また、第１レジスタ４０と第２レジスタ４１の要素のデータＳ，Ｅの組み合わせは、図８の項番８である。これにより、出力順保証部３２ｃは、図９の状態２から状態３に遷移する。
【００７５】
次のクロック（時刻ｔ４）で、出力順保証部３２ｃは、第１レジスタ４０の要素ｅ１１を第２レジスタ４１に転送し、一方で、次の要素ｅ８を競合調停部３１から受け取って、当該要素ｅ８を第１レジスタ４０に保持する。そして、判定部４２は、比較部４３の比較結果に基づいて、第２レジスタ４１の要素番号ｅ１１が第１レジスタ４０の要素番号ｅ８よりも大きく、かつ、比較部４４の比較結果により、第１レジスタ４０と第２レジスタ４１の各要素のアドレスが一致していることを検知する。これにより、判定部４２は、図１０に示される動作規定に従って、第１レジスタ４１の要素ｅ８を削除する。一方、第１レジスタ４０と第２レジスタ４１の要素のデータＳ，Ｅの組み合わせは、図８の項番１である。これにより、出力順保証部３２ｃは、図９の状態３を継続する。
【００７６】
さらに、次のクロック（時刻ｔ５）で、出力順保証部３２ｃは、次の要素ｅ９を競合調停部３１から受け取って、当該要素ｅ９を第１レジスタ４０に保持する。このとき、第２レジスタ４１は要素ｅ１１を継続的に保持している。そして、判定部４２は、比較部４３の比較結果に基づいて、第２レジスタ４１の要素番号ｅ１１が第１レジスタ４０の要素番号ｅ９よりも大きく、かつ、比較部４４の比較結果により、第１レジスタ４０と第２レジスタ４１の各要素のアドレスが一致していることを検知する。これにより、判定部４２は、図１０に示される動作規定に従って、第１レジスタ４１の要素ｅ９を削除する。一方、第１レジスタ４０と第２レジスタ４１の要素のデータＳ，Ｅの組み合わせは、図８の項番２である。これにより、出力順保証部３２ｃは、図９の状態３から状態４に遷移する。これにより、判定部４２は、アドレス・要素番号の監視動作を終了する。
【００７７】
さらに、次のクロック（時刻ｔ６）において、出力順保証部３２ｃ（判定部４２）は、第１レジスタ４０の要素ｅ１１を、第２レジスタ４１に転送する。これにより、第１レジスタ４０には要素が保持されていない状態になる。このため、第１レジスタ４０と第２レジスタ４１の要素のデータＳ，Ｅの組み合わせは、図８の項番５になるから、出力順保証部３２ｃは、図９の状態４から状態１に遷移する。なお、要素ｅ１１が第２レジスタ４１に遷移したときに、別のグループの要素が第１レジスタ４０に保持される場合が想定される。この場合には、第１レジスタ４０と第２レジスタ４１の要素のデータＳ，Ｅの組み合わせは、図８の項番６あるいは項番７である。この場合には、出力順保証部３２ｃは、図９の状態４から状態２あるいは状態５に遷移する。
【００７８】
さらに、次のクロック（時刻ｔ７）において、出力順保証部３２ｃは、第２レジスタ４１の要素ｅ１１を記憶装置２３に向けて出力する。
【００７９】
上記同様に、他の出力順保証部３２ａ，３２ｂ，３２ｄも動作して、時刻ｔ７において、各出力順保証部３２ａ，３２ｂ，３２ｄは、要素ｅ３，ｅ７，ｅ１５をそれぞれ記憶装置２３に向けて出力する。
【００８０】
上記のように、データ転送装置２２は、時刻ｔ７で要素を出力するが、間接参照に関わる要素（データ）の記憶装置２３への転送処理においては、時刻ｔ４から時刻ｔ７に掛けて出力していると等価な状態となる。つまり、この場合においても、データ転送装置２２は、４クロック（４Ｔ）で、一グループの１６個の要素を記憶装置２３に転送する。
【００８１】
上記のように、第２実施形態のデータ転送装置２２は、連続アドレスのメモリアクセス命令だけでなく、間接参照のアドレスのメモリアクセス命令に基づいた要素の転送に関しても、前記同様に、転送速度を改善できる。これにより、この第２実施形態のデータ転送装置２２を備えた演算装置２０は、演算時間を短縮できる。このような演算装置２０は、例えば、画像処理を行う装置に組み込んで、その効果をよりｓ発揮することができる。
【００８２】
（第３実施形態）
以下に、本発明に係る第３実施形態を説明する。なお、この第３実施形態の説明において、第２実施形態と同様な構成部分には同一符号を付し、その共通部分の重複説明は省略する。
【００８３】
図１４は、第３実施形態において特徴的な出力順保証部３２’（３２ａ’〜３２ｄ’）の構成を示したブロック図である。この第３実施形態では、出力順保証部３２’は、第２レジスタとして、複数のレジスタ４１1，・・・４１n（ｎは、２以上の整数）を有している。さらに、出力順保証部３２’は、複数の比較部４３1，・・・４３n（ｎは、２以上の整数）を有している。これら比較部４３1，・・・４３nは、それぞれ、第１レジスタ４０に保持されている要素の番号と、レジスタ４１1〜４１nのうちの対応する一つのレジスタに保持されている要素の番号とを比較し、それら要素番号の大小関係を示す信号を出力する機能を備えている。さらにまた、出力順保証部３２’は、複数の比較部４４1，・・・４４n（ｎは、２以上の整数）をも有している。これら比較部４４1，・・・４４nは、それぞれ、第２レジスタであるレジスタ４１1〜４１nのうちの対応する一つのレジスタに保持されている要素のアドレスと、第１レジスタ４０に保持されている要素のアドレスとを比較する。そして、各比較部４４1，・・・４４nは、アドレスの一致・不一致を示す信号を出力する機能を備えている。
【００８４】
この第３実施形態における上記以外の構成は、第２実施形態と同様である。
【００８５】
この第３実施形態のデータ転送装置２２は、上記の如く、出力順保証部以外の構成は、第２実施形態と同様である。これにより、この第３実施形態のデータ転送装置２２における、出力順保証が不要な連続アドレスのメモリアクセス命令に基づいた要素の転送動作は、第２実施形態と同様である。このため、ここでは、その説明は省略する。
【００８６】
図１５は、この第３実施形態における、間接参照のアドレスのメモリアクセス命令に基づく要素の流れの一例を示したタイムチャートである。この図１５を参照しながら、第３実施形態における出力順保証部３２’の動作の一例を説明する。前提条件として、要素ｅ０〜ｅ３の格納位置は、それぞれ、０番地、８番地、１６番地、０番地（何れも記憶部２５1）、要素ｅ４〜ｅ７の格納位置は、それぞれ、３２番地、４０番地、４８番地、３２番地（何れも記憶部２５2）、要素ｅ８〜ｅ１１の格納位置はそれぞれ、６４番地、７２番地、８０番地、６４番地（何れも記憶部２５3）、要素ｅ１２〜ｅ１５の格納位置は、それぞれ、９６番地、１０４番地、１１２番地、９６番地（何れも記憶部２５4）であるとする。また、演算部２１は、要素ｅ０〜ｅ３を、並列的に、かつ、互いに異なる演算パス２６（２６ａ〜２６ｄ）を通して、データ転送装置２２に出力する。さらに、演算部２１は、上記同様に、要素ｅ４〜ｅ７の組と、要素ｅ８〜ｅ１１の組と、要素ｅ１２〜ｅ１５の組とを、順次、１クロック毎に、データ転送装置２２に出力することとする。
【００８７】
この第３実施形態においても、第２実施形態と同様に、図１５に示す時刻ｔ２において、競合調停部３１は、４個の要素ｅ０，ｅ１３，ｅ１０，ｅ７を、並列的に、出力する。それら要素ｅ０，ｅ１３，ｅ１０，ｅ７は、それぞれ、対応する出力順保証部３２ａ’〜３２ｄ’に入力する。出力順保証部３２’の動作の説明を、分かり易くするために、ここでは、出力順保証部３２ｃ’に着目して説明する。
【００８８】
出力順保証部３２ｃ’は、要素ｅ１０が入力すると（時刻ｔ２）、当該要素ｅ１０を第１レジスタ４０に保持する。
【００８９】
次のクロック（時刻ｔ３）において、出力順保証部３２ｃ’は、要素ｅ１０を第１レジスタ４０から第２レジスタ４１1に転送し、また、入力してきた要素ｅ１１を第１レジスタ４０に保持する。そして、判定部４２は、比較部４４1の比較結果により、第１レジスタ４０の要素ｅ１１のアドレスと、第２レジスタ４１1の要素ｅ１０のアドレスとが不一致であることを検知する。なお、図１５では、出力順保証部３２ｃ’の第２レジスタの保持状態のみ図示している。
【００９０】
次のクロック（時刻ｔ４）において、判定部４２は、上記アドレスの比較結果および図１６に示す動作規定に従って、第２レジスタ４１1の要素ｅ１０はそのまま保持した状態で、第１レジスタ４０の要素ｅ１１を、空いている第２レジスタ４１2に転送する。また、出力順保証部３２ｃ’は、次に入力してきた要素ｅ８を第１レジスタ４０に保持する。そして、判定部４２は、第１レジスタ４０の要素ｅ８と、第２レジスタ４１1の要素ｅ１０とのアドレスが一致していることを検知する。また、判定部４２は、第２レジスタ４１1の要素番号ｅ１０が、第１レジスタ４０の要素番号ｅ８よりも大きいことを検知する。これにより、判定部４２は、図１６の動作規定に従って、要素番号ｅ８を削除する。
【００９１】
次のクロック（時刻ｔ５）において、出力順保証部３２ｃ’は、入力してきた要素ｅ９を第１レジスタ４０に保持する。そして、判定部４２は、比較部４４1の比較結果により、第１レジスタ４０の要素ｅ１１のアドレスと、第２レジスタ４１1の要素ｅ１０のアドレスとが不一致であることを検知する。これにより、判定部４２は、図１６の動作規定に従って、第１レジスタ４０の要素ｅ９を空き第２レジスタ４１3に転送する。
【００９２】
同じグループの要素の入力は要素ｅ９が最後であることから、次のクロック（時刻ｔ６）以降、出力順保証部３２ｃは、第２レジスタ４１1，４１2，４１3に保持されている要素ｅ９，ｅ１０，ｅ８を順次、記憶装置２３に向けて出力する。
【００９３】
この第３実施形態においても、第２実施形態と同様に、一グループの１６個の要素をデータ転送装置２２から記憶装置２３に転送するのに要する時間は、４クロック（４Ｔ）である。つまり、この第３実施形態のデータ転送装置２２においても、第２実施形態と同様に、競合調停部３１で、競合調停を行わずに済む構成を備えているので、転送時間の低下（スループットの悪化）を防止できる。
【００９４】
さらに、この第３実施形態では、出力順保証部３２’は、第２レジスタとして、複数のレジスタを有している。このため、演算部２１から並列的に出力される複数の要素の中の一部に、格納位置が同じ複数の要素が含まれている場合においても、順序保証を行うことが可能になる。
【００９５】
なお、この発明は、第１〜第３の各実施の形態に限定されるものではなく、様々な実施の形態を採り得る。例えば、第２や第３の実施形態では、記憶装置２３の記憶部２５は４個であったが、記憶装置２３が有する記憶部２５の数は、４個に限定されず、４個以外の複数の記憶部２５を設けてもよい。
【符号の説明】
【００９６】
１，２２  データ転送装置
２，３５  一時保存部
３，２９  順序制御部
４  データ読み出し部
５  転送制御部
１０，２０  演算装置
１１，２１  演算部
１２，２３  記憶装置
３１  競合調停部
３２  出力順保証部
３４  範囲情報添付部
３６  出力制御部
【図１】
0005623871.tif 000002
【図２】
0005623871.tif 000003
【図３】
0005623871.tif 000004
【図４】
0005623871.tif 000005
【図５】
0005623871.tif 000006
【図６】
0005623871.tif 000007
【図７】
0005623871.tif 000008
【図８】
0005623871.tif 000009
【図９】
0005623871.tif 000010
【図１０】
0005623871.tif 000011
【図１１】
0005623871.tif 000012
【図１２】
0005623871.tif 000013
【図１３】
0005623871.tif 000014
【図１４】
0005623871.tif 000015
【図１５】
0005623871.tif 000016
【図１６】
0005623871.tif 000017
【図１７】
0005623871.tif 000018