(57)【要約】      （修正有）【課題】演算装置同士を最小の記憶素子数で接続することが可能で、キャッシュメモリに記憶するデータ数を最小にしても確実にアドレス指定によるデータ転送を行えるようにする。【解決手段】バッファに保存した書込みデータを書込みアドレスの順序に並び替えてストリームデータとして出力するストリーム変換装置１３０と、キャッシュメモリ１４０と、読出しに関するアドレス情報で指定されたデータがキャッシュメモリに既にロードされているかを判定し、ロードされていない場合には、ロード信号を出力し、ロードアドレスを出力する制御装置１５０と、ロードアドレスを用いて、読出しアドレスで指定されたデータがキャッシュメモリのどの記憶素子に保存されているかを求め、求めた値をキャッシュアドレスとしてキャッシュメモリに出力し、キャッシュメモリから入力されたキャッシュデータを読出しデータとして出力するアドレス変換装置１６０と、を有する。【選択図】図４
2010176505.tif 000002
【特許請求の範囲】
【請求項１】
書込みアドレスと書込みデータを受信し、受信データをバッファに保存し、当該バッファに保存した書込みデータを書込みアドレスの順序に並び替えてストリームデータとして出力するストリーム変換装置と、
ロード信号がストリームデータのロードが必要なことを示す状態になると、受信したストリームデータを記憶素子に保存し、キャッシュアドレスが入力されると、当該キャッシュアドレスに対応する記憶素子に保持しているデータをキャッシュデータとして出力するキャッシュメモリと、
読出しに関するアドレス情報で指定されたデータが上記キャッシュメモリに既にロードされているかを判定し、当該判定の結果、指定されたデータが上記キャッシュメモリにロードされていない場合には、上記キャッシュメモリにロードを指示する上記ロード信号を出力し、上記キャッシュメモリにロード済みのアドレスを示すロードアドレスを出力する制御装置と、
上記キャッシュメモリにロード済みのアドレスを示している上記ロードアドレスを用いて、読出しアドレスで指定されたデータが上記キャッシュメモリのどの記憶素子に保存されているかを求め、求めた値を上記キャッシュアドレスとして上記キャッシュメモリに出力し、上記キャッシュメモリから入力されたキャッシュデータを読出しデータとして出力する少なくとも一つのアドレス変換装置と
を有するインターフェース装置。
【請求項２】
上記ストリーム変換装置は、
上記キャッシュメモリによるストリーム受信可能信号が受信可能を示す状態になっている期間のみストリームデータを出力し、
上記キャッシュメモリは、
上記ストリーム受信可能信号を受信可能を示す状態に変化させると、上記ストリーム変換装置から受信したストリームデータを内部の記憶素子に保存する
請求項１記載のインターフェース装置。
【請求項３】
上記ストリーム変換装置は、
上記バッファがフルでなく、書込みデータを受信できるときは書込みデータ受信可能信号を受信可能の状態として書込みデータの供給側に出力し、
バッファがフルになり、書込みデータを受信できなくなると、上記書込みデータ受信可能信号を受信不可能の状態に変更する
請求項１または２記載のインターフェース装置。
【請求項４】
上記ストリームデータとテスト用データとを選択的に上記キャッシュメモリに入力可能なセレクタを有する
請求項１から３のいずれか一に記載のインターフェース装置。
【請求項５】
データアクセスが当該インターフェース装置に適合しているかを検証するための整合性検証装置を含む
請求項１から３のいずれか一に記載のインターフェース装置。
【請求項６】
上記書込みアドレスの整合性を確認するための書込みアドレス整合性検証装置と、
読出しに関するアドレス情報の整合性を確認するための読出しアドレス整合性検証装置と、を含む
請求項５記載のインターフェース装置。
【請求項７】
上記書込みアドレス整合性検証装置は、
上記書込みアドレスの出力順序から上記ストリーム変換装置内部で必要となる記憶素子の容量を求め、求めた得られた容量値が上記ストリーム変換装置の実際の記憶素子容量よりも大きいか小さいかをチェックする
請求項６記載のインターフェース装置。
【請求項８】
上記読出しアドレス整合性検証装置は、
読出しに関するアドレス情報の出力順序から、上記キャッシュメモリに必要な記憶素子容量を求め、求めて得られた容量値が上記キャッシュメモリ中の実際の記憶素子容量よりも大きいか小さいかをチェックする
請求項６または７記載のインターフェース装置。
【請求項９】
第１演算装置と、
第２演算装置と、
上記第１演算装置と上記第２演算装置間のアドレス指定によるデータ転送を行うインターフェース装置と、を有し、
上記インターフェース装置は、
上記第１演算装置による書込みアドレスと書込みデータを受信し、受信データをバッファに保存し、当該バッファに保存した書込みデータを書込みアドレスの順序に並び替えてストリームデータとして出力するストリーム変換装置と、
ロード信号がストリームデータのロードが必要なことを示す状態になると、受信したストリームデータを記憶素子に保存し、キャッシュアドレスが入力されると、当該キャッシュアドレスに対応する記憶素子に保持しているデータをキャッシュデータとして出力するキャッシュメモリと、
上記第２演算装置により読出しに関するアドレス情報で指定されたデータが上記キャッシュメモリに既にロードされているかを判定し、当該判定の結果、指定されたデータが上記キャッシュメモリにロードされていない場合には、上記キャッシュメモリにロードを指示する上記ロード信号を出力し、上記キャッシュメモリにロード済みのアドレスを示すロードアドレスを出力する制御装置と、
上記キャッシュメモリにロード済みのアドレスを示している上記ロードアドレスを用いて、読出しアドレスで指定されたデータが上記キャッシュメモリのどの記憶素子に保存されているかを求め、求めた値を上記キャッシュアドレスとして上記キャッシュメモリに出力し、上記キャッシュメモリから入力されたキャッシュデータを読出しデータとして上記第２演算装置に出力する少なくとも一つのアドレス変換装置と、を含む
演算処理装置。
【請求項１０】
書込みアドレスと書込みデータを受信し、受信データをバッファに保存し、当該バッファに保存した書込みデータを書込みアドレスの順序に並び替えてストリームデータとして出力するストリーム変換装置と、
ロード信号がストリームデータのロードが必要なことを示す状態になると、受信したストリームデータを記憶素子に保存し、キャッシュアドレスが入力されると、当該キャッシュアドレスに対応する記憶素子に保持しているデータをキャッシュデータとして出力するキャッシュメモリと、
読出しに関するアドレス情報で指定されたデータが上記キャッシュメモリに既にロードされているかを判定し、当該判定の結果、指定されたデータが上記キャッシュメモリにロードされていない場合には、上記キャッシュメモリにロードを指示する上記ロード信号を出力し、上記キャッシュメモリにロード済みのアドレスを示すロードアドレスを出力する制御装置と、
上記キャッシュメモリにロード済みのアドレスを示している上記ロードアドレスを用いて、読出しアドレスで指定されたデータが上記キャッシュメモリのどの記憶素子に保存されているかを求め、求めた値を上記キャッシュアドレスとして上記キャッシュメモリに出力し、上記キャッシュメモリから入力されたキャッシュデータを読出しデータとして出力する少なくとも一つのアドレス変換装置と、
を有するインターフェース装置を生成するために、
生成対象のインターフェースと接続する回路記述の情報を記憶する回路情報記憶装置と、
上記回路情報記憶装置から読み出した回路記述情報からインターフェースが満たすべき仕様を解析するインターフェース構成情報出力装置と、を含む
インターフェース生成装置。
【請求項１１】
上記インターフェース構成情報出力装置は、
上記回路情報記憶装置から回路記述を読出し、内部データベースへ変換して、上記読出しに関するアドレス情報として出力されている値、数式を全て抽出し、
抽出したアドレスの計算式に対して、全ての組み合わせで差を求め、
求めた差のうちで最大の値に所定の値を加えて必要なキャッシュメモリの容量とし、
上記容量の記憶素子を持つキャッシュメモリを含むインターフェース装置を生成する
請求項１０記載のインターフェース生成装置。
【請求項１２】
書込みアドレスと書込みデータを受信し、受信データをバッファに保存し、当該バッファに保存した書込みデータを書込みアドレスの順序に並び替えてストリームデータとして出力するストリーム変換装置と、
ロード信号がストリームデータのロードが必要なことを示す状態になると、受信したストリームデータを記憶素子に保存し、キャッシュアドレスが入力されると、当該キャッシュアドレスに対応する記憶素子に保持しているデータをキャッシュデータとして出力するキャッシュメモリと、
読出しに関するアドレス情報で指定されたデータが上記キャッシュメモリに既にロードされているかを判定し、当該判定の結果、指定されたデータが上記キャッシュメモリにロードされていない場合には、上記キャッシュメモリにロードを指示する上記ロード信号を出力し、上記キャッシュメモリにロード済みのアドレスを示すロードアドレスを出力する制御装置と、
上記キャッシュメモリにロード済みのアドレスを示している上記ロードアドレスを用いて、読出しアドレスで指定されたデータが上記キャッシュメモリのどの記憶素子に保存されているかを求め、求めた値を上記キャッシュアドレスとして上記キャッシュメモリに出力し、上記キャッシュメモリから入力されたキャッシュデータを読出しデータとして出力する少なくとも一つのアドレス変換装置と、
を有するインターフェース装置と接続する演算装置を生成するために、
上記インターフェース装置と接続する演算装置の機能を表現した記述を記憶する回路記述記憶装置と、
上記回路記述記憶装置から読込んだ回路記述からインターフェース装置を生成する対象となっている配列への読み書きを抽出し、インターフェース装置と接続する通信プロトコルを表現した記述との置き換えを行う配列アクセス置き換え装置と、
配列アクセスの置き換えを行った記述から詳細な回路記述を生成する詳細回路生成装置と、を含む
回路生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アドレス指定によるデータ転送を行う演算装置間のインターフェースとして適用されるインターフェース装置、演算処理装置、インターフェース生成装置、および回路生成装置に関するものである。
【背景技術】
【０００２】
一般的に、アドレス指定によるデータ転送を行うためには、演算装置間に大量の記憶素子が配置される（たとえば特許文献１参照）。
【０００３】
図１は、一般的なデータ転送方法を適用した演算処理装置の一例を示すブロック図である。
【０００４】
図１の演算処理装置１０は、第１演算装置１１、第２演算装置１２、主記憶装置１３、およびアドレスセレクタ１４を有する。
また、図１において、ＷＤＴは書込みデータを、ＷＡＤＲは書込みアドレスを、ＷＣＴＬは書込み制御信号を、ＲＤＴは読出しデータを、ＲＡＤＲは読出しアドレスを、ＡＤＲは選択されたアドレスをそれぞれ示している。
【０００５】
図１の演算処理装置１０では、第１演算装置１１が出力した書込みデータＷＤＴを書込みアドレスＷＡＤＲで指定した位置の主記憶装置１３に保存する。
そして、演算処理装置１０では、第２演算装置１２が読出しアドレスＲＡＤＲで指定した位置の記憶素子からデータを読み出すことで第１演算装置１１から第２演算装置１２へのデータ転送を行っている。
【０００６】
また、一般的に、大容量の主記憶装置の速度が遅くデータ転送に時間がかかる場合に、演算装置と主記憶装置の間にキャッシュメモリが配置される（たとえば特許文献２参照）。
【０００７】
図２は、キャッシュメモリを用いた演算処理装置の一例を示すブロック図である。
【０００８】
図２の演算処理装置１０Ａでは、図１の演算処理装置１０の構成に、キャッシュメモリ１５が設けられている。
【０００９】
図２の演算処理装置１０Ａでは、第１演算装置１１が出力した書込みデータＷＤＴを一時的に小容量で高速なキャッシュメモリ１５に書込む。
そして、第２演算装置１２が読出しアドレスＲＡＤＲで指定したデータをキャッシュメモリ１５から読み出すことで第１演算装置１１から第２演算装置１２へのデータ転送を行っている。
【００１０】
キャッシュメモリ１５は、定期的にキャッシュメモリ１５に蓄積された書込みデータＷＤＴを主記憶装置１３にまとめて書き込む。
また、キャッシュメモリ１５は、読出しアドレスＲＡＤＲで指定されたデータがキャッシュメモリ１５上に存在しない場合には、主記憶装置１３の読出しアドレスＲＡＤＲに対応する記憶素子からデータを読出して、読出しデータＲＤＴとして出力する。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特許第３６４４３８０号
【特許文献２】特開平８−１６４６７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
図１のようなデータ転送方法では、主記憶装置は書込みアドレスＷＡＤＲ・読出しアドレスＲＡＤＲが指し示すアドレスと一意に対応する記憶素子を有する必要があるため、大量の記憶素子が必要になり、回路面積が増大するという不利益がある。
たとえば特許文献１に開示された技術では、特許文献１の図１３に示されているように、２つのプロセッサが通信する際に、メモリ制御部に接続されたメインメモリを用いる必要があり、このために、大量の記憶素子が必要になるという不利益がある。
【００１３】
図２のようなデータ転送方法は、低速な主記憶装置１３へのアクセス回数を低減して、データ転送速度を高速化するには有効である。
しかし、主記憶装置１３に、書込みアドレスＷＡＤＲ・読出しアドレスＲＡＤＲが指し示すアドレスＡＤＲと一意に対応する記憶素子が必要になるという点は変わらないため、大量の記憶素子が必要になって回路面積が増大するという問題の解決にはならない。
たとえば、特許文献２に開示された技術では、特許文献２の図１に示されているように、従来技術では、キャッシュメモリのデータは主メモリから読出したデータの一時記憶、もしくは主メモリへ書き込むデータの一時記憶である。
このため、この技術では、主メモリ無しに、データ転送を行うことはできない構成になっている。主メモリには、アドレスに一意に対応する記憶素子が必要になるため、大量の記憶素子が必要になるという不利益がある。
【００１４】
上述したように、図１および図２に示すような構成では、演算装置が出力するアドレスと一意に対応する大容量の記憶素子が無ければ、データ転送を実現できないという問題がある。
【００１５】
そこで、図２の構成から主記憶装置を取り除き、図３に示すように、第１演算装置１１と第２演算装置１２をキャッシュメモリ１５だけを使って通信する構成にすることが考えられる。
この構成を採用すると、インターフェース装置が必要とする記憶素子の容量を削減することができる。
ただし、図３の構成では、第２演算装置１２がまだ読出していないデータが存在するにもかかわらず、第１演算装置１１がキャッシュメモリ１５の内容を更新して、第２演算装置１２が必要とするデータを上書きしてしまうおそれがある。この場合、データ転送が正しく行われない可能性がある。
また、図３の構成では、データ転送が正しく行われないおそれを低減するために、キャッシュメモリ１５に記憶するデータ数を、多くしておく必要があるという問題がある。
【００１６】
本発明は、演算装置同士を最小の記憶素子数で接続することが可能で、キャッシュメモリに記憶するデータ数を最小にしても確実にアドレス指定によるデータ転送を行うことが可能なインターフェース装置、演算処理装置、インターフェース生成装置、および回路生成装置を提供することにある。
【課題を解決するための手段】
【００１７】
本発明の第１の観点のインターフェース装置は、書込みアドレスと書込みデータを受信し、受信データをバッファに保存し、当該バッファに保存した書込みデータを書込みアドレスの順序に並び替えてストリームデータとして出力するストリーム変換装置と、ロード信号がストリームデータのロードが必要なことを示す状態になると、受信したストリームデータを記憶素子に保存し、キャッシュアドレスが入力されると、当該キャッシュアドレスに対応する記憶素子に保持しているデータをキャッシュデータとして出力するキャッシュメモリと、読出しに関するアドレス情報で指定されたデータが上記キャッシュメモリに既にロードされているかを判定し、当該判定の結果、指定されたデータが上記キャッシュメモリにロードされていない場合には、上記キャッシュメモリにロードを指示する上記ロード信号を出力し、上記キャッシュメモリにロード済みのアドレスを示すロードアドレスを出力する制御装置と、上記キャッシュメモリにロード済みのアドレスを示している上記ロードアドレスを用いて、読出しアドレスで指定されたデータが上記キャッシュメモリのどの記憶素子に保存されているかを求め、求めた値を上記キャッシュアドレスとして上記キャッシュメモリに出力し、上記キャッシュメモリから入力されたキャッシュデータを読出しデータとして出力する少なくとも一つのアドレス変換装置とを有する。
【００１８】
本発明の第２の観点の演算処理装置は、第１演算装置と、第２演算装置と、上記第１演算装置と上記第２演算装置間のアドレス指定によるデータ転送を行うインターフェース装置と、を有し、上記インターフェース装置は、上記第１演算装置による書込みアドレスと書込みデータを受信し、受信データをバッファに保存し、当該バッファに保存した書込みデータを書込みアドレスの順序に並び替えてストリームデータとして出力するストリーム変換装置と、ロード信号がストリームデータのロードが必要なことを示す状態になると、受信したストリームデータを記憶素子に保存し、キャッシュアドレスが入力されると、当該キャッシュアドレスに対応する記憶素子に保持しているデータをキャッシュデータとして出力するキャッシュメモリと、上記第２演算装置により読出しに関するアドレス情報で指定されたデータが上記キャッシュメモリに既にロードされているかを判定し、当該判定の結果、指定されたデータが上記キャッシュメモリにロードされていない場合には、上記キャッシュメモリにロードを指示する上記ロード信号を出力し、上記キャッシュメモリにロード済みのアドレスを示すロードアドレスを出力する制御装置と、上記キャッシュメモリにロード済みのアドレスを示している上記ロードアドレスを用いて、読出しアドレスで指定されたデータが上記キャッシュメモリのどの記憶素子に保存されているかを求め、求めた値を上記キャッシュアドレスとして上記キャッシュメモリに出力し、上記キャッシュメモリから入力されたキャッシュデータを読出しデータとして上記第２演算装置に出力する少なくとも一つのアドレス変換装置と、を含む。
【００１９】
本発明の第３の観点のインターフェース生成装置は、書込みアドレスと書込みデータを受信し、受信データをバッファに保存し、当該バッファに保存した書込みデータを書込みアドレスの順序に並び替えてストリームデータとして出力するストリーム変換装置と、ロード信号がストリームデータのロードが必要なことを示す状態になると、受信したストリームデータを記憶素子に保存し、キャッシュアドレスが入力されると、当該キャッシュアドレスに対応する記憶素子に保持しているデータをキャッシュデータとして出力するキャッシュメモリと、読出しに関するアドレス情報で指定されたデータが上記キャッシュメモリに既にロードされているかを判定し、当該判定の結果、指定されたデータが上記キャッシュメモリにロードされていない場合には、上記キャッシュメモリにロードを指示する上記ロード信号を出力し、上記キャッシュメモリにロード済みのアドレスを示すロードアドレスを出力する制御装置と、上記キャッシュメモリにロード済みのアドレスを示している上記ロードアドレスを用いて、読出しアドレスで指定されたデータが上記キャッシュメモリのどの記憶素子に保存されているかを求め、求めた値を上記キャッシュアドレスとして上記キャッシュメモリに出力し、上記キャッシュメモリから入力されたキャッシュデータを読出しデータとして出力する少なくとも一つのアドレス変換装置と、を有するインターフェース装置を生成するために、生成対象のインターフェースと接続する回路記述の情報を記憶する回路情報記憶装置と、上記回路情報記憶装置から読み出した回路記述情報からインターフェースが満たすべき仕様を解析するインターフェース構成情報出力装置と、を含む。
【００２０】
本発明の第４の観点の回路生成装置は、書込みアドレスと書込みデータを受信し、受信データをバッファに保存し、当該バッファに保存した書込みデータを書込みアドレスの順序に並び替えてストリームデータとして出力するストリーム変換装置と、ロード信号がストリームデータのロードが必要なことを示す状態になると、受信したストリームデータを記憶素子に保存し、キャッシュアドレスが入力されると、当該キャッシュアドレスに対応する記憶素子に保持しているデータをキャッシュデータとして出力するキャッシュメモリと、読出しに関するアドレス情報で指定されたデータが上記キャッシュメモリに既にロードされているかを判定し、当該判定の結果、指定されたデータが上記キャッシュメモリにロードされていない場合には、上記キャッシュメモリにロードを指示する上記ロード信号を出力し、上記キャッシュメモリにロード済みのアドレスを示すロードアドレスを出力する制御装置と、上記キャッシュメモリにロード済みのアドレスを示している上記ロードアドレスを用いて、読出しアドレスで指定されたデータが上記キャッシュメモリのどの記憶素子に保存されているかを求め、求めた値を上記キャッシュアドレスとして上記キャッシュメモリに出力し、上記キャッシュメモリから入力されたキャッシュデータを読出しデータとして出力する少なくとも一つのアドレス変換装置と、を有するインターフェース装置と接続する演算装置を生成するために、上記インターフェース装置と接続する演算装置の機能を表現した記述を記憶する回路記述記憶装置と、上記回路記述記憶装置から読込んだ回路記述からインターフェース装置を生成する対象となっている配列への読み書きを抽出し、インターフェース装置と接続する通信プロトコルを表現した記述との置き換えを行う配列アクセス置き換え装置と、配列アクセスの置き換えを行った記述から詳細な回路記述を生成する詳細回路生成装置と、を含む。
【発明の効果】
【００２１】
本発明によれば、演算装置同士を最小の記憶素子数で接続することが可能で、キャッシュメモリに記憶するデータ数を最小にしても確実にアドレス指定によるデータ転送を行うことができる。
【図面の簡単な説明】
【００２２】
【図１】一般的なデータ転送方法を適用した演算処理装置の一例を示すブロック図である。
【図２】キャッシュメモリを用いた演算処理装置の一例を示すブロック図である。
【図３】キャッシュメモリを用いた演算処理装置の他例を示すブロック図である。
【図４】本発明の第１の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
【図５】本発明の第２の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
【図６】本発明の第３の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
【図７】本発明の第４の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
【図８】本発明の第５の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
【図９】本発明の第６の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
【図１０】本発明の第１から第６の実施形態に係るインターフェース生成装置の構成例を示すブロック図である。
【図１１】図１０のインターフェース生成装置が解析するインターフェースが満たすべき仕様例を示す図である。
【図１２】本発明の第７の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
【図１３】本発明の第８の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
【図１４】一般的なデータ転送方法を採用した演算処理装置にアドレス整合性検証装置を配置した構成例を示すブロック図である。
【図１５】本発明の実施形態に係るインターフェース生成装置と接続する演算回路の生成装置の構成例を示すブロック図である。
【図１６】本発明の第９の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
【図１７】本実施形態に係るストリーム変換装置の構成例を示す図である。
【図１８】本実施形態に係るキャッシュメモリの構成例を示す図である。
【図１９】本実施形態に係る制御装置の構成例を示す図である。
【図２０】本実施形態に係るアドレス変換装置の構成例を示す図である。
【図２１】図１６の第２演算装置が生成する先読みアドレスと読出しアドレスとキャッシュメモリの容量との関係を示す図である。
【図２２】第１演算装置の仕様を表現した一例を示す図である。
【図２３】第２演算装置の仕様を表現した一例を示す図である。
【図２４】図２２で表現されるような第１演算装置と接続する場合のストリーム変換装置の構成例を示す図である。
【図２５】図２３で示す仕様の第２演算装置が出力する先読みアドレス、読出しアドレス、読出しアドレスの例を示す図である。
【図２６】図２３で示す仕様の第２演算装置と接続するためのキャッシュメモリの構成例を示す図である。
【図２７】図２３に示す第２演算装置との接続のみに対応する制御装置とアドレス変換装置の構成例を示す図である。
【図２８】図１０のインターフェース生成装置におけるインターフェース構成情報出力装置の動作のフローチャートを示す図である。
【図２９】演算装置の回路記述の一例を示す図である。
【図３０】図２９の回路記述から抽出したアドレスの計算式の場合の差の例を示す図である。
【図３１】本発明の実施形態に係る検証用インターフェース装置を採用した演算処理装置の構成例を示す図である。
【図３２】図３１に示す検証用インターフェース装置の書込みアドレス整合性検証装置の動作の一例のフローチャートを示す図である。
【図３３】図３２に示す検証用インターフェース装置内の書込みアドレス整合性検証装置の動作の具体例を表にして示す図である。
【図３４】図３１に示す検証用インターフェース装置の読出しアドレス整合性検証装置の動作の一例のフローチャートを示す図である。
【図３５】図３４に示す検証用インターフェース装置内の読出しアドレス整合性検証装置の動作の具体例を表にして示す図である。
【図３６】図１５の回路生成装置における配列アクセス置き換え装置２４２の動作のフローチャートを示す図である。
【図３７】回路記述記憶装置に記憶されている回路記述の一例を示す図である。
【図３８】配列アクセスをインターフェース装置との接続を行う記述に置き換えた例を示す図である。
【図３９】回路記述記憶装置に記憶されている回路記述の他の例を示す図である。
【図４０】配列アクセスをインターフェース装置との接続を行う記述に置き換えた他の例を示す図である。
【発明を実施するための形態】
【００２３】
以下、本発明の実施形態を添付図面に関連付けて説明する。
なお、説明は以下の順序で行う
１．第１の実施形態（インターフェース装置の第１の構成例）
２．第２の実施形態（インターフェース装置の第２の構成例）
３．第３の実施形態（インターフェース装置の第３の構成例）
４．第４の実施形態（インターフェース装置の第４の構成例）
５．第５の実施形態（インターフェース装置の第５の構成例）
６．第６の実施形態（インターフェース装置の第６の構成例）
７．第７の実施形態（インターフェース装置の第７の構成例）
８．第８の実施形態（インターフェース装置の第８の構成例）
９．第９の実施形態（インターフェース装置の第９の構成例）
１０．具体的な構成例
【００２４】
＜１．第１の実施形態＞
図４は、本発明の第１の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
【００２５】
第１の実施形態の演算処理装置１００は、図４に示すように、第１演算装置１１０、第２演算装置１２０、ストリーム変換装置１３０、キャッシュメモリ１４０、制御装置１５０Ａ、およびアドレス変換装置１６０を有する。
そして、ストリーム変換装置１３０、キャッシュメモリ１４０、制御装置１５０Ａ、およびアドレス変換装置１６０によりインターフェース装置２００が形成される。
ストリーム変換装置１３０、キャッシュメモリ１４０、制御装置１５０Ａ、およびアドレス変換装置１６０の具体的な構成例については、後で詳述する。
【００２６】
図４において、ＷＡＤＲは書込みアドレスを、ＷＤＴは書込みデータを、ＳＷＤＴＲＢは書込みデータ受信可能信号を、ＳＴＭＤはストリームデータを、ＳＴＭＲＢはストリーム受信可能信号を、それぞれ示している。
さらに、図４において、ＰＬＡＤＲは先読みアドレスを、ＲＡＤＲは読出しアドレスを、ＲＤＴは読出しデータを、ＳＬＤはロード信号を、ＬＡＤＲはロードアドレスを、ＣＡＤＲはキャッシュアドレスを、ＣＤＴはキャッシュデータを、それぞれ示している。
そして、読出しに関するアドレス情報には、先読みアドレスＰＬＡＤＲ、読出しアドレスＲＡＤＲが含まれる。
【００２７】
第１演算装置１１０は、順序が規則的である書込みアドレスＷＡＤＲ、および書込みデータＷＤＴをストリーム変換装置１３０に出力する。
第１演算装置１１０は、たとえばストリーム変換装置１３０から書込みデータ受信可能信号ＳＷＤＴＲＢが受信可能を示す場合に書込みデータＷＤＴをストリーム変換装置１３０に出力する。
第１演算装置１１０は、たとえばストリーム変換装置１３０から書込みデータ受信可能信号ＳＷＤＴＲＢが受信不可能を示す場合には、書込みデータＷＤＴのストリーム変換装置１３０への出力を停止する。
【００２８】
第２演算装置１２０は、先読みアドレスＰＬＡＤＲを制御装置１５０Ａに出力する。
第２演算装置１２０は、読出しアドレスＲＡＤＲをアドレス変換装置１６０に出力して、アドレス変換装置１６０から読出しデータＲＤＴを受信する。
【００２９】
ストリーム変換装置１３０は、第１演算装置１１０から書込みアドレスＷＡＤＲと書込みデータＷＤＴを受信し、受信データを内部のバッファに保存する。
ストリーム変換装置１３０は、内部のバッファに保存した書込みデータＷＤＴを書込みアドレスＷＡＤＲの順序に並び替えてストリームデータＳＴＭＤとしてキャッシュメモリ１４０に出力する。
ストリーム変換装置１３０は、キャッシュメモリ１４０によるストリーム受信可能信号ＳＴＭＲＢが受信可能を示す状態になっている期間のみストリームデータＳＴＭＤを出力する。
ストリーム変換装置１３０は、内部のバッファがフルでなく、書込みデータを受信できるときは書込みデータ受信可能信号ＳＷＤＴＲＢを受信可能の状態として第１演算装置１１０に出力する。
また、ストリーム変換装置１３０は、内部のバッファがフルになり、書込みデータを受信できなくなると、書込みデータ受信可能信号ＳＷＤＴＲＢを受信不可能の状態に変更する。
【００３０】
キャッシュメモリ１４０は、制御装置１５０Ａによるロード信号ＳＬＤがストリームデータＳＴＭＤのロードが必要なことを示す状態になると、ストリーム受信可能信号ＳＴＭＲＢを受信可能を示す状態に変化させる。
キャッシュメモリ１４０は、ストリーム受信可能信号ＳＴＭＲＢを受信可能を示す状態に変化させると、ストリーム変換装置１３０から受信したストリームデータＳＴＭＤを内部の記憶素子に保存する。
キャッシュメモリ１４０は、内部の記憶素子が全てストリームデータＳＴＭＤを保持済みの場合、内部の記憶素子に記憶された最も古いデータから順に削除する。
キャッシュメモリ１４０は、アドレス変換装置１６０によるキャッシュアドレスＣＡＤＲが入力されると、そのキャッシュアドレスＣＡＤＲに対応する記憶素子に保持しているデータをキャッシュデータＣＤＴとしてアドレス変換装置１６０に出力する。
【００３１】
制御装置１５０Ａは、第２演算装置１２０から入力された先読みアドレスＰＬＡＤＲで指定されたデータがキャッシュメモリ１４０に既にロードされているかを判定する。
制御装置１５０Ａは、判定の結果、指定されたデータがキャッシュメモリ１４０にロードされていない場合には、キャッシュメモリ１４０にロードを指示するロード信号ＳＬＤを出力する。
また、制御装置１５０Ａは、キャッシュメモリ１４０にロード済みのアドレスを示すロードアドレス信号ＬＡＤＲをアドレス変換装置１６０に出力する。
【００３２】
アドレス変換装置１６０は、キャッシュメモリ１４０にロード済みのアドレスを示しているロードアドレスＬＡＤＲを用いて、読出しアドレスＲＡＤＲで指定されたデータがキャッシュメモリ１４０のどの記憶素子に保存されているかを計算する。
アドレス変換装置１６０は、計算した値をキャッシュアドレスＣＡＤＲとしてキャッシュメモリ１４０に出力する。
また、アドレス変換装置１６０は、入力されたキャッシュデータＣＤＴを読出しデータＲＤＴとして第２演算装置１２０に出力する。
【００３３】
本第１の実施形態のインターフェース装置２００においては、画像処理など多くの演算では、書込みアドレスＷＡＤＲと読出しアドレスＲＡＤＲの順序が規則的であることに着目している。
インターフェース装置２００において、第１演算装置１１０による書込みデータＷＤＴをストリーム変換装置１３０で書込みアドレス順に並び変えたストリームデータＳＴＭＤに変換する。
インターフェース装置２００において、そのストリームデータＳＴＭＤをキャッシュメモリ１４０が受信すべきか否かを制御装置１５０Ａが第２演算装置１２０による読出しアドレスＲＡＤＲから判断する。
本第１の実施形態においては、以上の構成を有することにより、キャッシュメモリ１４０に記憶するデータ数を最小にしても、確実にデータ転送できるインターフェース装置２００を実現している。
また、図１および図２で示すような構成では、キャッシュメモリにアドレスとデータの対を記憶する必要がある。
これに対して、本第１の実施形態のインターフェース装置２００においては、ストリーム変換装置１３０によって書込みデータＷＤＴを書込みアドレスＷＡＤＲの順に並び替えるため、キャッシュメモリ１４０にアドレスの値を記憶する必要が無くなる。
これにより、本第１の実施形態では、キャッシュメモリ１４０の記憶素子数を削減およびキャッシュメモリの構成簡略化を実現することができる。
【００３４】
＜２．第２の実施形態＞
図５は、本発明の第２の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
【００３５】
本第２の実施形態に係るインターフェース装置２００Ａは、第１の実施形態に係るインターフェース装置２００と次の点で異なる。
インターフェース装置２００Ａの制御装置１５０Ａは、第２演算装置１２０から入力された読出しアドレスＲＡＤＲで指定されたデータがキャッシュメモリ１４０に既にロードされているかを判定する。
制御装置１５０Ａは、ロードされていない場合にはキャッシュメモリ１４０にロードを指示するロード信号ＳＬＤを出力する。
また、制御装置１５０Ａは、キャッシュメモリ１４０にロード済みのアドレスを示すロードアドレス信号ＬＡＤＲをアドレス変換装置１６０に出力する。
【００３６】
その他の構成は第１の実施形態と同様である。
本第２の実施形態によれば、上述した第１の実施形態の効果と同様の効果を得ることができる。
【００３７】
＜３．第３の実施形態＞
図６は、本発明の第３の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
【００３８】
本第３の実施形態に係るインターフェース装置２００Ｂが、第１の実施形態に係るインターフェース装置２００と異なる点は、アドレス変換装置が複数系統（本例では２）配置されて、第２演算装置１２０が複数データを読み出し可能に構成されていることにある。
【００３９】
制御装置１５０Ｂは、第２演算装置１２０から入力された先読みアドレスＰＬＡＤＲで指定されたデータがキャッシュメモリ１４０に既にロードされているかを判定する。
制御装置１５０Ｂは、判定の結果、指定されたデータがキャッシュメモリ１４０にロードされていない場合には、キャッシュメモリ１４０にロードを指示するロード信号ＳＬＤを出力する。
制御装置１５０Ｂは、キャッシュメモリ１４０にロード済みのアドレスを示すロードアドレス信号ＬＡＤＲ１をアドレス変換装置１６０Ｂ−１に出力する。
また、制御装置１５０Ｂは、キャッシュメモリ１４０にロード済みのアドレスを示すロードアドレス信号ＬＡＤＲ２をアドレス変換装置１６０Ｂ−２に出力する。
【００４０】
アドレス変換装置１６０Ｂ−１は、キャッシュメモリ１４０にロード済みのアドレスを示しているロードアドレスＬＡＤＲ１を用いて、読出しアドレスＲＡＤＲ１で指定されたデータがキャッシュメモリ１４０のどの記憶素子に保存されているかを計算する。
アドレス変換装置１６０Ｂ−１は、計算した値をキャッシュアドレスＣＡＤＲ１としてキャッシュメモリ１４０に出力する。
また、アドレス変換装置１６０Ｂ−１は、入力されたキャッシュデータＣＤＴ１を読出しデータＲＤＴ１として第２演算装置１２０に出力する。
【００４１】
アドレス変換装置１６０Ｂ−２は、キャッシュメモリ１４０にロード済みのアドレスを示しているロードアドレスＬＡＤＲ２を用いて、読出しアドレスＲＡＤＲ２で指定されたデータがキャッシュメモリ１４０のどの記憶素子に保存されているかを計算する。
アドレス変換装置１６０Ｂ−２は、計算した値をキャッシュアドレスＣＡＤＲ２としてキャッシュメモリ１４０に出力する。
また、アドレス変換装置１６０Ｂ−２は、入力されたキャッシュデータＣＤＴ２を読出しデータＲＤＴ２として第２演算装置１２０に出力する。
【００４２】
その他の構成は第１の実施形態と同様である。
本第３の実施形態によれば、上述した第１の実施形態の効果と同様の効果を得ることができることはもとより、複数のデータを読出すことが可能である。
【００４３】
なお、アドレス変換装置の数は、図６の例では２つとしているが、この数は２より大きい数であってもよい。
【００４４】
＜４．第４の実施形態＞
図７は、本発明の第４の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
【００４５】
本第４の実施形態に係るインターフェース装置２００Ｃは、第３の実施形態に係るインターフェース装置２００Ｂと次の点で異なる。
インターフェース装置２００Ｃの制御装置１５０Ｃは、第２演算装置１２０から入力された読出しアドレスＲＡＤＲ１で指定されたデータがキャッシュメモリ１４０に既にロードされているかを判定する。
制御装置１５０Ｃは、ロードされていない場合にはキャッシュメモリ１４０にロードを指示するロード信号ＳＬＤを出力する。
また、制御装置１５０Ｃは、キャッシュメモリ１４０にロード済みのアドレスを示すロードアドレス信号ＬＡＤＲ１をアドレス変換装置１６０Ｂ−１に出力する。
制御装置１５０Ｃは、第２演算装置１２０から入力された読出しアドレスＲＡＤＲ２で指定されたデータがキャッシュメモリ１４０に既にロードされているかを判定する。
制御装置１５０Ｃは、ロードされていない場合にはキャッシュメモリ１４０にロードを指示するロード信号ＳＬＤを出力する。
また、制御装置１５０Ｃは、キャッシュメモリ１４０にロード済みのアドレスを示すロードアドレス信号ＬＡＤＲ２をアドレス変換装置１６０Ｂ−２に出力する。
【００４６】
その他の構成は第３の実施形態と同様である。
本第４の実施形態によれば、上述した第３の実施形態の効果と同様の効果を得ることができる。
【００４７】
＜５．第５の実施形態＞
図８は、本発明の第５の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
【００４８】
本第５の実施形態に係るインターフェース装置２００Ｄは、第１の実施形態に係るインターフェース装置２００と次の点で異なる。
インターフェース装置２００Ｄは、セレクタ１７０を有し、テストモード切替信号ＴＭＳＷに応じてキャッシュメモリ１４０に入力するストリームデータＳＴＭＤを第１演算装置１１０からのデータとテスト用データＴＤＴとで切り替えられるように構成されている。
また、インターフェース装置２００Ｄは、キャッシュメモリ１４０によるストリーム受信可能信号ＳＴＭＲＢが、テスト用データ受信可能信号ＴＤＴＲＢとして図示しないテスト系回路に供給する。
【００４９】
その他の構成は第１の実施形態と同様である。
本第５の実施形態によれば、上述した第１の実施形態の効果と同様の効果を得ることができることはもとより、テスト用データを用いたテストを行うことができる。
【００５０】
＜６．第６の実施形態＞
図９は、本発明の第６の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
【００５１】
本第６の実施形態に係るインターフェース装置２００Ｅは、第２の実施形態に係るインターフェース装置２００Ａと次の点で異なる。
インターフェース装置２００Ｅは、セレクタ１７０Ｅを有し、テストモード切替信号ＴＭＳＷに応じてキャッシュメモリ１４０に入力するストリームデータＳＴＭＤを第１演算装１１０からのデータとテスト用データＴＤＴとで切り替えられるように構成されている。
また、インターフェース装置２００Ｅは、キャッシュメモリ１４０によるストリーム受信可能信号ＳＴＭＲＢが、テスト用データ受信可能信号ＴＤＴＲＢとして図示しないテスト系回路に供給する。
【００５２】
その他の構成は第２の実施形態と同様である。
本第６の実施形態によれば、上述した第２の実施形態の効果と同様の効果を得ることができることはもとより、テスト用データを用いたテストを行うことができる。
【００５３】
［インターフェース生成装置の構成例］
ここで、本実施形態に係るインターフェース装置の生成装置について説明する。
図１０は、本発明の第１から第６の実施形態に係るインターフェース生成装置の構成例を示すブロック図である。
【００５４】
図１０のインターフェース生成装置２１０は、回路情報記憶装置２１１、インターフェース構成情報出力装置２１２、インターフェース構成情報記憶装置２１３、生成装置２１４、およびインターフェース記憶装置２１５を有する。
【００５５】
回路情報記憶装置２１１は、生成対象のインターフェースと接続する回路の情報を記憶する。
【００５６】
インターフェース構成情報出力装置２１２は、回路情報から、たとえば図１１に示すような、インターフェースが満たすべき仕様を解析し、解析結果をインターフェース構成情報としてインターフェース構成情報記憶装置２１３に出力する。
【００５７】
図１１に示されるインターフェースが満たすべき仕様とは、次のとおりである。
＜１＞ストリーム変換装置１３０のバッファの容量、
＜２＞ストリーム変換装置１３０のバッファに使用する記憶素子の種類、
＜３＞キャッシュメモリ１４０の容量、
＜４＞キャッシュメモリ１４０に使用する記憶素子の種類、
＜５＞読出しアドレスＲＡＤＲの入力数、
＜６＞先読みアドレスＰＬＡＤＲの変化パターン、
＜７＞読出しアドレス間の関係、
である。
【００５８】
インターフェース構成情報記憶装置２１３は、インターフェース構成情報を記憶する。
生成装置２１４は、インターフェース構成情報記憶装置２１３に記憶されているインターフェース構成情報を元に、図４、図５、図６、図７、図８、図９で示したようなインターフェース装置を生成する。
インターフェース記憶装置２１５は、生成装置２１４で生成されたインターフェースを保存する。
【００５９】
なお、図１０のインターフェース生成装置２１０のより具体的な処理については後で説明する。
【００６０】
＜７．第７の実施形態＞
図１２は、本発明の第７の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
【００６１】
本第７の実施形態に係るインターフェース装置２００Ｆは、第１の実施形態に係るインターフェース装置２００と次の点で異なる。
インターフェース装置２００Ｆは、インターフェース装置２００の構成に加えて、アドレス整合性検証装置を含んで構成されている。
インターフェース装置２００Ｆは、書込みアドレスＷＡＤＲの整合性を確認するための書込みアドレス整合性検証装置１８０、並びに先読みアドレスＰＬＡＤＲおよび読出しアドレスＲＡＤＲの整合性を確認するための読出しアドレス整合性検証装置１９０を含む。
【００６２】
書込みアドレス整合性検証装置１８０では、書込みアドレスＷＡＤＲの出力順序からストリーム変換装置１３０内部で必要となる記憶素子の容量を計算する。
そして、書込みアドレス整合性検証装置１８０では、計算して得られた容量値がストリーム変換装置１３０の実際の記憶素子容量よりも大きいか小さいかをチェックする。
【００６３】
読出しアドレス整合性検証装置１９０では、先読みアドレスＰＬＡＤＲおよび読出しアドレスＲＡＤＲの出力順序から、キャッシュメモリ１４０に必要な記憶素子容量を計算する。
そして、読出しアドレス整合性検証装置１９０では、計算して得られた容量値がキャッシュメモリ１４０中の実際の記憶素子容量よりも大きいか小さいかをチェックする。
【００６４】
その他の構成は第１の実施形態と同様である。
本第７の実施形態によれば、上述した第１の実施形態の効果と同様の効果を得ることができることはもとより、書込みアドレスおよび読出しアドレスの整合性を的確に検証することができる。
【００６５】
＜８．第８の実施形態＞
図１３は、本発明の第８の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
【００６６】
本第８の実施形態に係るインターフェース装置２００Ｇは、第２の実施形態に係るインターフェース装置２００Ａと次の点で異なる。
インターフェース装置２００Ｇは、インターフェース装置２００Ａの構成に加えて、アドレス整合性検証装置を含んで構成されている。
インターフェース装置２００Ｇは、書込みアドレスＷＡＤＲの整合性を確認するための書込みアドレス整合性検証装置１８０Ｇ、並びに読出しアドレスＲＡＤＲの整合性を確認するための読出しアドレス整合性検証装置１９０Ｇを含む。
【００６７】
書込みアドレス整合性検証装置１８０Ｇでは、書込みアドレスＷＡＤＲの出力順序からストリーム変換装置１３０内部で必要となる記憶素子の容量を計算する。
そして、書込みアドレス整合性検証装置１８０Ｇでは、計算して得られた容量値がストリーム変換装置１３０の実際の記憶素子容量よりも大きいか小さいかをチェックする。
【００６８】
読出しアドレス整合性検証装置１９０Ｇでは、読出しアドレスＲＡＤＲの出力順序から、キャッシュメモリ１４０に必要な記憶素子容量を計算する。
そして、読出しアドレス整合性検証装置１９０Ｇでは、計算して得られた容量値がキャッシュメモリ１４０中の実際の記憶素子容量よりも大きいか小さいかをチェックする。
【００６９】
その他の構成は第２の実施形態と同様である。
本第８の実施形態によれば、上述した第２の実施形態の効果と同様の効果を得ることができることはもとより、書込みアドレスおよび読出しアドレスの整合性を的確に検証することができる。
【００７０】
図１４は、一般的なデータ転送方法を適用した演算処理装置にアドレス整合性検証装置を配置した一例を示すブロック図である。
【００７１】
図１４の演算処理装置１００Ｈは、第１演算装置１１０、第２演算装置１２０、主記憶装置２２０、およびアドレスセレクタ２３０を有する。
演算処理装置１００Ｈは、書込みアドレス整合性検証装置１８０Ｈ、および読出しアドレス整合性検証装置１９０Ｈを有する。
そして、主記憶装置２２０、アドレスセレクタ２３０、書込みアドレス整合性検証装置１８０Ｈ、および読出しアドレス整合性検証装置１９０Ｈによりインターフェース装置２００Ｈが構成される。
また、図１４において、ＷＤＴは書込みデータを、ＷＡＤＲは書込みアドレスを、ＷＣＴＬは書込み制御信号を、ＲＤＴは読出しデータを、ＲＡＤＲは読出しアドレスを、ＡＤＲは選択されたアドレスをそれぞれ示している。
【００７２】
図１４の演算処理装置１００Ｈでは、第１演算装置１１０が出力した書込みデータＷＤＴを書込みアドレスＷＡＤＲで指定した位置の主記憶装置２２０に保存する。
そして、演算処理装置１００Ｈでは、第２演算装置１２０が読出しアドレスＲＡＤＲで指定した位置の記憶素子からデータを読み出すことで第１演算装置１１０から第２演算装置１２０へのデータ転送を行う。
【００７３】
書込みアドレス整合性検証装置１８０Ｈでは、書込みアドレスＷＡＤＲの出力順序から主記憶装置２２０内部で必要となる記憶素子の容量を計算する。
そして、書込みアドレス整合性検証装置１８０Ｈでは、計算して得られた容量値が主記憶装置２２０の実際の記憶素子容量よりも大きいか小さいかをチェックする。
【００７４】
読出しアドレス整合性検証装置１９０Ｈでは、読出しアドレスＲＡＤＲの出力順序から、主記憶装置２２０に必要な記憶素子容量を計算する。
そして、読出しアドレス整合性検証装置１９０Ｈでは、計算して得られた容量値が主記憶装置２２０中の実際の記憶素子容量よりも大きいか小さいかをチェックする。
【００７５】
第１演算装置１１０からの書込みアドレスＷＡＤＲや第２演算装置１２０からの読出しアドレスＲＡＤＲがインターフェース装置と整合の取れるものになっているか否かを確認する場合、重要なのは書込みアドレスと読出しアドレスだけである。
したがって、アドレス整合性検証機能を有するインターフェース装置は、第１から第８の実施形態で示すインターフェース装置と異なる構成のものであっても適用可能である。
【００７６】
［インターフェース生成装置と接続する演算回路生成装置の構成例］
ここで、本実施形態に係るインターフェース装置と接続する演算回路の生成装置について説明する。
図１５は、本発明の実施形態に係るインターフェース生成装置と接続する演算回路の生成装置の構成例を示すブロック図である。
【００７７】
図１５の回路生成装置２４０は、回路記述記憶装置２４１、配列アクセス置き換え装置２４２、詳細回路生成装置２４３、および詳細回路記述記憶装置２４４を有する。
【００７８】
回路記述記憶装置２４１は、本発明の実施形態に係るインターフェース装置と接続する演算装置の機能を表現した記述を記憶する。
配列アクセス置き換え装置２４２では、回路記述記憶装置２４１から読込んだ回路記述からインターフェース装置を生成する対象となっている配列への読み書きを抽出し、インターフェース装置と接続する通信プロトコルを表現した記述との置き換えを行う。
詳細回路生成装置２４３では、配列アクセスの置き換えを行った記述から、一般的な高位合成技術や論理合成技術を用いて、たとえばＲＴＬやネットリストのような詳細な回路記述を生成する。
詳細回路記述記憶装置２４４では、生成された詳細回路記述の記憶を行う。
【００７９】
次に、本実施形態に係るインターフェース装置のより具体的な構成について説明する。
【００８０】
＜９．第９の実施形態＞
図１６は、本発明の第９の実施形態に係るインターフェース装置を採用した演算処理装置の構成例を示すブロック図である。
【００８１】
本第９の実施形態に係るインターフェース装置２００Ｉは、第３の実施形態に係るインターフェース装置２００Ｂと次の点で異なる。
すなわち、第１演算装置１１０が、ストリーム変換装置１３０Ｉに対して書込み有効信号ＶＷＲＴを出力する。
第２演算装置１２０が、制御装置１５０Ｉに対して先読みアドレス有効信号ＶＰＬＡＤＲを出力する。
ストリーム変換装置１３０Ｉが、キャッシュメモリ１４０Ｉに対してストリーム有効信号ＶＳＴＭを出力する。
キャッシュメモリ１４０Ｉが、制御装置１５０Ｉに対してロード数受信可能信号ＬＤＮＲＢを出力し、第２演算装置１２０に対して先読み完了信号ＣＭＰＬを出力する。
制御装置１５０Ｉが、第２演算装置１２０に対して先読みアドレス受信可能信号ＰＬＡＤＲＲＢを出力する。
さらに、制御装置１５０Ｉが、キャッシュメモリ１４０Ｉに対してロード数ＬＤＮおよびロード数有効信号ＶＬＤＮを出力する。
【００８２】
インターフェース装置２００Ｉを含む演算処理装置１００Ｉにおいて、図６の演算処理装置１００Ｂと同様、第１演算装置１１０から出力された書込みデータＷＤＴを第２演算装置１２０が２つずつ読出す。
第１演算装置１１０は、ストリーム変換装置１３０Ｉが出力する書込みデータ受信可能信号ＳＷＤＴＲＢがアクティブの「１（ハイレベル：Ｈ）」に設定されている場合、次のような出力を行う。
すなわち、第１演算装置１１０は、書込みアドレスＷＡＤＲと書込みデータＷＤＴを出力し、書込み有効信号ＶＷＲＴをアクティブの「１（Ｈ）」にする。
【００８３】
＜１０．具体的な構成例＞
［ストリーム変換装置の構成例］
図１７は、本実施形態に係るストリーム変換装置の構成例を示す図である。
【００８４】
図１７のストリーム変換装置１３０Ｉは、バッファ１３１、カウンタ１３２、判定部１３３、セレクタ１３４、２入力ＡＮＤゲート１３５〜１３７、および２入力ＯＲゲート１３８，１３９を有する。
【００８５】
ストリーム変換装置１３０Ｉは、内部に書込みデータＷＤＴと書込みアドレスＷＡＤＲの対を記憶するためのバッファ１３１を有している。
また、ストリーム変換装置１３０Ｉは、次にストリームデータとして出力すべき書込みデータのアドレスＡＤＲをカウンタ１３２に保持している。
カウンタ１３２は、たとえばＡＮＤゲート１３７から出力されるカウントアップ信号ＣＮＵＰが「１（Ｈ）」になったとき１カウントアップする。
ストリーム有効信号ＶＳＴＭとストリーム受信可能信号ＳＴＭＲＢの両方が「１」になると、ストリームデータＳＴＭＤの転送が行われる。このストリーム有効信号ＶＳＴＭとストリーム受信可能信号ＳＴＭＲＢがＡＮＤゲート１３７に入力される。したがて、ストリーム有効信号ＶＳＴＭとストリーム受信可能信号ＳＴＭＲＢの両方が「１」になったときにカウンタ１３２を１カウントアップする。
【００８６】
判定部１３３は、カウンタ１３２の値と書込みアドレスＷＡＤＲが一致しているか否かの判定を行い、判定結果が信号Ｓ１３３としてＡＮＤゲート１３５の負入力、ＡＮＤゲート１３６の一方の入力、およびセレクタ１３４の制御端子に出力する。
判定部１３３は、カウンタ１３２の値と書込みアドレスＷＡＤＲが一致している場合、信号Ｓ１３３を「１（Ｈ）」に設定し、一致していない場合には信号Ｓ１３３を「０（Ｌ）」に設定する。
セレクタ１３４は、判定信号Ｓ１３３が「１」のとき書込みデータＷＤＴをそのままストリームデータＳＴＭＤとして出力する。
セレクタ１３４は、判定信号Ｓ１３３が「０」のときバッファ１３１から読出されたバッファ読出しデータＢＦＲＤＴをストリームデータＳＴＭＤとして出力する。
【００８７】
カウンタ１３２の値と書込みアドレスＷＡＤＲの値が一致して判定信号Ｓ１３３が「１」に設定され、かつ、書込み有効信号ＶＷＲＴが「１」になっている場合、ＡＮＤゲート１３６の出力信号Ｓ１３６が「１」となる。
これにより、ストリーム変換装置１３０Ｉは、ＯＲゲート１３８を通してストリーム有効信号ＶＳＴＭを「１」にし、セレクタ１３４から書込みデータＷＤＴをストリームデータＳＴＭＤとして出力する。
【００８８】
カウンタ１３２の値と書込みアドレスＷＡＤＲの値が一致せず判定信号Ｓ１３３が「０」で、かつ、書込み有効信号ＶＷＲＴが「１」になっている場合、バッファ書込み有効信号ＶＢＦＷＲＴが「１」となり、書込みデータＷＤＴがバッファ１３１に保存される。
バッファ１３１は、バッファ１３１の記憶可能領域が全て埋まってしまった場合、バッファフル信号ＢＦＦＬを「１」にする。
また、カウンタ１３２の値はバッファ１３１の読出しアドレスＢＦＲＡＤＲとしても用いられる。
【００８９】
バッファ１３１は、記憶しているアドレスＡＤＲの一覧とバッファ１３１の読出しアドレスＢＦＲＡＤＲとを比較し、一致するものが見つかった場合には、そのアドレスと対になって記憶されているデータをバッファ読出しデータＢＦＲＤＴとして出力する。
そして、バッファ１３１は、バッファ読出しデータ有効信号ＶＢＦＲＤＴを「１」にし、出力したデータはバッファ内から削除する。
バッファフル信号ＢＦＦＬが「１」で、かつストリーム受信可能信号ＳＴＭＲＢが「０」の場合、ストリーム変換装置１３０Ｉはこれ以上書込みデータを受信できないため、書込みデータ受信可能信号ＳＷＤＴＲＢを非アクティブの「０」に設定する。
【００９０】
［キャッシュメモリの構成例］
図１８は、本実施形態に係るキャッシュメモリの構成例を示す図である。
【００９１】
図１８のキャッシュメモリ１４０Ｉは、ストリーム受信制御装置１４１、バッファ１４２、および２入力ＡＮＤゲート１４３を有する。
【００９２】
ストリーム受信制御装置１４１は、ロード数有効信号ＶＬＤＮが「１（Ｈ）」のときにロード数ＬＤＮを受信する。
ＡＮＤゲート１４３は、ストリーム受信可能信号ＳＴＭＲＢとストリーム有効信号ＶＳＴＭの論理積をとり、その結果を有効ストリーム受信信号ＶＳＴＭＲとしてストリーム受信制御装置１４１に出力する。
有効ストリーム受信信号ＶＳＴＭＲはストリーム受信可能信号ＳＴＭＲＢが１で、かつ、ストリーム有効信号ＶＳＴＭが「１」の場合に「１」になる。
ストリーム受信制御装置１４１は、有効ストリーム受信信号ＶＳＴＭＲが１回「１」になる毎にロードが１回行われるため、有効ストリーム受信信号ＶＳＴＭＲがロード数ＬＤＮと同じ回数「１」になるまでストリーム受信可能信号ＳＴＭＲＢを「１」にし続ける。
ストリーム受信制御装置１４１は、ロード数ＬＤＮを受信するとロード数受信可能信号ＬＤＮＲＢと先読み完了信号ＣＭＰＬを「０」に設定する。
そして、ストリーム受信制御装置１４１は、有効ストリーム受信信号ＶＳＴＭＲがロード数ＬＤＮと同一回数「１」になったらロード数受信可能信号ＬＤＮＲＢおよび先読み完了信号ＣＭＰＬを「１」にする。
【００９３】
バッファ１４２は、アドレスＡＤＲ０に最後に入力されたストリームデータＳＴＭＤ、アドレスＡＤＲが１つ大きくなる毎に１つ前に入力されたストリームデータＳＴＭＤを保持する。バッファ１４２へのストリームデータＳＴＭＤの書込みはバッファ書込み有効信号ＶＢＦＷＲＴＣが「１」のときに行う。
たとえば、図１８に示すように、アドレスＡＤＲ０に時刻ｎに入力されたストリームデータ、アドレスＡＤＲ１に時刻n-1に入力されたストリームデータが保存されている。さらに、アドレスＡＤＲ２に時刻n-2に入力されたストリームデータ、アドレスＡＤＲ３に時刻n-3に入力されたストリームデータが保存されている。
この状態でバッファ書込み有効信号ＶＢＦＷＲＴＣが「１」になってストリームデータとしてD(n+1)が入力された場合、アドレスＡＤＲ０にD(n+1), アドレスＡＤＲ１にD(n), アドレスＡＤＲ２にD(n-1), アドレスＡＤＲ３にD(n-2)が保持されるように値を更新する。
また、図１８のバッファ１４２は、キャッシュアドレスＣＡＤＲ１，２を受信し、そのアドレスに対応する記憶素子が保持しているデータをキャッシュデータＣＤＴ１，２として出力する。
【００９４】
［制御装置の構成例］
図１９は、本実施形態に係る制御装置の構成例を示す図である。
【００９５】
図１９の制御装置１５０Ｉは、セレクタ１５１、フリップフロップにより形成されるラッチ１５２、減算器１５３、および２入力ＡＮＤゲート１５４を有する。
【００９６】
制御装置１５０Ｉは、図１９に示すように、先読みアドレス有効信号ＶＰＬＡＤＲはそのままロード数有効信号ＶＬＤＮとして出力する。
また、制御装置１５０Ｉは、ロード数受信可能信号ＬＤＮＲＢはそのまま先読みアドレス受信可能信号ＰＬＡＤＲＲＢとして出力する。
セレクタ１５１は、ＡＮＤゲート１５４の出力信号Ｓ１５４に応じて新しく入力された先読みアドレスＰＬＡＤＲまたはラッチ１５２にラッチされている旧先読みアドレスＰＰＬＡＤＲのいずれかを選択し、選択したアドレスをラッチ１５２に出力する。
減算器１５３は、新しく入力された先読みアドレスＰＬＡＤＲからラッチ１５２にラッチされている旧先読みアドレスＰＰＬＡＤＲを減算する。
このように、入力された先読みアドレスＰＬＡＤＲから旧先読みアドレスＰＰＬＡＤＲを引くと、まだキャッシュメモリ１４０Ｉにロードしていないデータの数になる。
制御装置１５０Ｉは、この値をロード数ＬＤＮとしてキャッシュメモリ１４０Ｉに出力する。
制御装置１５０Ｉは、先読みアドレス有効信号ＶＰＬＡＤＲと先読みアドレス受信可能信号ＰＬＡＤＲＲＢが両方とも「１」の場合に、新しく入力された先読みアドレスＰＬＡＤＲの値で旧先読みアドレスＰＰＬＡＤＲおよびロードアドレスＬＡＤＲを更新する。
【００９７】
［アドレス変換装置の構成例］
図２０は、本実施形態に係るアドレス変換装置の構成例を示す図である。
【００９８】
図２０のアドレス変換装置１６０Ｉは、減算器１６１を有する。
【００９９】
アドレス変換装置１６０Ｉは、図２０に示すように、キャッシュメモリ１４０ＩによるキャッシュデータＣＤＴはそのまま読出しデータＲＤＴとして出力する。
キャッシュメモリ１４０Ｉは、ロードアドレスＬＡＤＲと対応するデータをアドレスＡＤＲ０、ロードアドレスＬＡＤＲよりも１つ小さいアドレスのデータをアドレスＡＤＲ１というように値を保持している。
したがって、減算器１６１において、ロードアドレスＬＡＤＲから読出しアドレスＲＡＤＲを引くとキャッシュメモリ１４０Ｉのアドレスになる。
アドレス変換装置１６０Ｉは、このように計算してキャッシュアドレスＣＡＤＲをキャッシュメモリ１４０Ｉに出力する。
【０１００】
図１６の演算処理装置１００Ｉにおいて、第２演算装置１２０は、読出しアドレスＲＡＤＲ１，読出しアドレスＲＡＤＲ２を出力する前に、図２１および下記に示す関係が成り立つ先読みアドレスＰＬＡＤＲを出力する。なお、下記において、ＣＭＣはキャッシュメモリ１４０Ｉの容量を示す。
【０１０１】
［数１］
ＰＬＡＤＲ≧ＲＡＤＲ１
ＰＬＡＤＲ≧ＲＡＤＲ２
ＰＬＡＤＲ−ＲＡＤＲ１＋１≦ＣＭＣ
ＰＬＡＤＲ−ＲＡＤＲ２＋１≦ＣＭＣ
【０１０２】
第２演算装置１２０は先読み完了信号ＣＭＰＬが「１（Ｈ）」になるまで待ってから読出しアドレスＲＡＤＲ１，読出しアドレスＲＡＤＲ２を出力し、読出しデータＲＤＴ１，読出しデータＲＤＴ２を受信する。
【０１０３】
図１７のストリーム変換装置１３０Ｉ、図１８のキャッシュメモリ１４０Ｉ、図１９の制御装置１５０Ｉ、図２０のアドレス変換装置１６０Ｉは、第１演算装置１１０，第２演算装置１２０の仕様によっては、さらに最適化された構成にすることも可能である。
【０１０４】
たとえば、第１演算装置１１０が図２２、第２演算装置１２０が図２３で表現される仕様の場合を考える。
【０１０５】
図２２に示すように、第１演算装置１１０が出力する書込みアドレスＷＡＤＲは0,1,2,3,...,WIDTH-1というように０から１つずつ増加する。
この書込みアドレスＷＡＤＲの順序は、ストリーム変換装置１３０Ｉで並び替えて出力するべきストリームデータの順序と一致している。
したがって、ストリーム変換装置１３０Ｉでは書込みデータを並び替える機能が不要になる。
図２２で表現されるような第１演算装置１１０と接続する場合、ストリーム変換装置１３０Ｉは、図２４で示すように、書込みデータＷＤＴをそのままストリームデータＳＴＭＤへ出力するような構成にすることができる。
【０１０６】
図２３で示す仕様の第２演算装置１２０が出力する先読みアドレスＰＬＡＤＲ、読出しアドレスＲＡＤＲ１、読出しアドレスＲＡＤＲ２は、図２５に示すようになる。
各時刻で先読みしたアドレスとその１つ前のアドレスの２つのデータのみを使用しているため、図２３で表現されるような第２演算装置１２０と接続する場合、キャッシュメモリ１４０Ｉの記憶素子は２つ用意すれば良いことになる。
キャッシュメモリ１４０Ｉの記憶素子が２つの場合、キャッシュアドレスは１ビットで良いことになる。
図２５に示すように、ロード数ＬＤＮは常に１、キャッシュアドレスＣＡＤＲ１は常に０のため、ロード数ＬＤＮおよびキャッシュアドレスＣＡＤＲ１の計算のための演算装置は不用になる。
図２５に示すように、キャッシュアドレスＣＡＤＲ１は０か１のため、キャッシュアドレスＣＡＤＲ２の計算のための演算装置は１ビット幅で良いことになる。
【０１０７】
以上をまとめると、図２３で示す仕様の第２演算装置１２０と接続するためのインターフェース装置は、キャッシュメモリ１４０Ｊが図２６、制御装置１５０Ｊとアドレス変換装置１６０Ｊが図２７で示すような構成にすることができる。
【０１０８】
図２３に示す第２演算装置１２０との接続のみに対応するキャッシュメモリ１４０Ｊの構成は図２６に示すように、内部のバッファ１４２Ｊにデータ２つ分の記憶素子１４２１，１４２２のみを持つ構成に最適化される。なお、図２６のバッファ１４２Ｊは、記憶素子１４２１，１４２２の他に、セレクタ１４２３〜１４２５を有する。記憶素子１４２１，１４２２は、たとえばフリップフロップにより形成される。
【０１０９】
また、図２３に示す第２演算装置１２０との接続のみに対応する制御装置１５０Ｊとアドレス変換装置１６０Ｊの構成は、図２７に示すようになる。
図２７の例では、制御装置１５０Ｊは、減算器は持たず、先読みアドレスＰＬＡＤＲの入力段に下位ビット選択部１５５が配置されている。
同様に、アドレス変換装置１６０Ｊ−２の読出しアドレスＲＡＤＲ２の入力段に下位ビット選択部１６２が配置されている。
この例では、先読みアドレスＰＬＡＤＲおよび読出しアドレスＲＡＤＲを用いた演算が１ビット幅に最適化され、ロード数ＬＤＮは１で固定、キャッシュアドレスＣＡＤＲ１は０で固定するように最適化される。
このように接続する演算装置の仕様にあわせてインターフェース装置の構成を最適化することで、オーバーヘッドの少ないインターフェース装置を実現することができる。
【０１１０】
次に、図１０のインターフェース生成装置２１０のより具体的な処理について説明する。
ここで、図１０におけるインターフェース構成情報出力装置２１２の動作を図２８、図２９および図３０に関連付けて説明する。
図２８は、図１０のインターフェース生成装置におけるインターフェース構成情報出力装置２１２の動作のフローチャートを示す図である。
図２９は、演算装置の回路記述の一例を示す図である。
図３０は、図２９の回路記述から抽出したアドレスの計算式の場合の差の例を示す図である。
【０１１１】
はじめに、回路情報記憶装置２１１から演算装置の回路記述を読出し、インターフェース構成情報出力装置２１２の内部データベースへ変換する（ＳＴ１）。
次に、読出しアドレスＲＡＤＲとして出力されている値や数式を全て抽出する（ＳＴ２）。
たとえば、図２９で示す演算装置の回路記述を読み込んだ場合、読出しアドレスＲＡＤＲとして出力されているのは、［pre_load_address］へ出力されているxと［read_address_a］へ出力されているx，［read_address_b］へ出力されているxとx-1の４つであるため、xを３つと、x-1を１つ抽出する。
次に抽出したアドレスの計算式に対して、全ての組み合わせで差を求める（ＳＴ３）。
たとえば、図２９の回路記述から抽出したアドレスの計算式の場合、図３０で示すようにx同士の差は０、x-1とxとの差が１になる。
ここで求めた差の最大値に１を加えた値がキャッシュメモリ１４０に必要な記憶素子の容量となる。
そこで、最後に、求めた差のうちで最大の値である１に１を加えて２を必要なキャッシュメモリの容量として出力する（ＳＴ４）。
【０１１２】
このように、図１０のインターフェース生成装置２１０はインターフェース構成情報出力装置２１２が出力したインターフェース構成情報を元にインターフェースを生成する。
図２９の例の場合、インターフェース構成情報として、キャッシュメモリ１４０の容量＝２が出力されている。この情報を基に、図２６で示すような容量ＣＭＣ２の記憶素子を持つキャッシュメモリ１４０を含むインターフェース装置を生成する。
【０１１３】
次に、本発明の実施形態に係る検証用インターフェース装置の実施例について説明する。
図３１は、本発明の実施形態に係る検証用インターフェース装置を採用した演算処理装置の構成例を示す図である。
【０１１４】
図３１の演算処理装置１００Ｋの検証用インターフェース装置２００Ｋは、図１３の演算処理装置１００Ｇのインターフェース装置２００Ｇとほぼ同様の構成を有する。
ただし、インターフェース装置２００Ｋは、書込み有効信号ＶＷＲＴ、ストリーム有効信号ＶＳＴＭ、読出しアドレス有効信号ＶＲＡＤＲが用いられる点がインターフェース装置２００Ｇと異なる。
【０１１５】
ここで、図３１に示す検証用インターフェース装置の書込みアドレス整合性検証装置１８０Ｋの動作の一例について説明する。
図３２は、図３１に示す検証用インターフェース装置の書込みアドレス整合性検証装置１８０Ｋの動作の一例のフローチャートを示す図である。
【０１１６】
はじめに書込みアドレスＷＡＤＲの情報を記憶するlistを空、次にストリームデータＳＴＭＤへ出力すべき書込みデータＷＤＴの書込みアドレスＷＡＤＲを記憶するnextを0に初期化する（ＳＴ１１）。
次に、書込みアドレスＷＡＤＲの更新を待ち（ＳＴ１２）、更新されたときに書込み有効信号ＶＷＲＴが「１」になっている場合には、listに書込みアドレスの値を追加する（ＳＴ１３，ＳＴ１４）。
Listに登録されている書込みアドレスＷＡＤＲにnextと一致するものがあるかを確認する（ＳＴ１５）。
ステップＳＴ１５において、一致したものがある場合にはlistからの一致した書込みアドレスの除去とnext=next+1を行い（ＳＴ１６）、もう一度、listに登録されている書込みアドレスにnextと一致するものがあるかの確認に戻る。
ステップＳＴ１５において、一致したものが無い場合には、listに登録されている書込みアドレスの数が、インターフェース装置が持つストリーム変換装置のバッファ容量以内になっているかを確認する（ＳＴ１７）。
バッファの容量を超えている場合、このインターフェース装置内のストリーム変換装置が対応不可能な書込みアドレスが入力されていることになるため、警告を表示して処理を終了する（ＳＴ１８）。
バッファの容量を超えていない場合には、シミュレーションが終了したかを確認し（ＳＴ１９）、終了していれば処理を完了する。終了していなければ、次の書込みアドレスの更新を待つ。
【０１１７】
図３３は、図３２に示す検証用インターフェース装置内の書込みアドレス整合性検証装置の動作の具体例を表にして示す図である。
【０１１８】
図３３はストリーム変換装置１３０のバッファ容量が２のときの、各時刻ｔに入力される書込みアドレスＷＡＤＲ、書込み有効信号ＶＷＲＴと、書込みアドレス整合性検証装置１８０Ｋの内部状態、警告表示の有無を示している。
時刻ｔ０では書込み有効信号ＶＷＲＴが「０」のため何も行わない。
時刻ｔ１では書込み有効信号ＶＷＲＴが「１」のため書込みアドレスＷＡＤＲ０をlistに取り込む。
次に、nextとlistに登録済みのアドレスを比較するとアドレスＡＤＲ０が一致するため、listからアドレス０を取り除きlistは空に戻る。また、nextに１を加えるため、nextの値は１になる。
時刻ｔ２では書込みアドレスＷＡＤＲ４をlistに追加する。listのアドレスＡＤＲとnextが一致しないため、listは{4}になり、nextは１のままになる。
時刻ｔ３では書込みアドレスＷＡＤＲ２をlistに追加する。listのアドレスＡＤＲとnextが一致しないため、listは{4,2}になり、nextは１のままになる。
時刻ｔ４では書込みアドレスＷＡＤＲ１をlistに追加する。listのアドレス{4,2,1}とnext=1が一致するため、1を取り除きlistを{4,2}に、nextを２にする。
次にもう一度listのアドレス{4,2}とnext=2を比較して一致していることを確認し、２を取り除いてlistを{4}に、nextを３にする。
時刻ｔ５では書込みアドレスＷＡＤＲ５をlistに追加して、listを{4,5}に、nextを３のままにする。
時刻ｔ６では書込みアドレスＷＡＤＲ６をlistに追加して、listを{4,5,6}に、nextを３のままにする。このとき、listに登録されているアドレス数が３となり、ストリーム変換装置１３０のバッファ容量２を超えるため、警告を表示して動作を完了する。
【０１１９】
次に、図３１に示す検証用インターフェース装置の読出しアドレス整合性検証装置１９０Ｋの動作の一例について説明する。
図３４は、図３１に示す検証用インターフェース装置の読出しアドレス整合性検証装置１９０Ｋの動作の一例のフローチャートを示す図である。
【０１２０】
はじめに、これまでに読出したアドレスの最大値を保存するmaxを-1に初期化する（ＳＴ２１）。
次に、読出しアドレスＲＡＤＲの更新を待つ（ＳＴ２２）。
そして、更新されたときに読出しアドレス有効信号ＶＲＡＤＲが「１」になっている場合には（ＳＴ２３）、読出しアドレスがmaxよりも大きくなっているかを確認し（ＳＴ２４）、大きくなっている場合はmaxの値を読出しアドレスの値で置き換える（ＳＴ２５）。
maxの更新後、必要なキャッシュメモリ容量をあらわす（max−読出しアドレス＋１）が実際のキャッシュメモリの容量よりも大きくなっているかを確認する（ＳＴ２６）。
ステップＳＴ２６において、キャッシュメモリの容量よりも大きくなっている場合には、警告を表示し動作を完了する（ＳＴ２７）。
ステップＳＴ２６において、キャッシュメモリの容量よりも大きくなっている場合には、最後にシミュレーションが終了しているかを確認し（ＳＴ２８）、終了している場合は動作を完了する。終了していない場合には次の読出しアドレスの更新を待つ。
【０１２１】
図３５は、図３４に示す検証用インターフェース装置内の読出しアドレス整合性検証装置の動作の具体例を表にして示す図である。
【０１２２】
図３５はキャッシュメモリ１４０の記憶素子容量が２のときの、各時刻ｔに入力される読出しアドレスＲＡＤＲ、読出しアドレス有効信号ＶＲＡＤＲと、読出しアドレス整合性検証装置１９０Ｋの内部状態、警告表示の有無を示している。
時刻ｔ０では読出しアドレス有効信号ＶＲＡＤＲが「０」のため何も行わない。
時刻ｔ１では読出しアドレス有効信号ＶＲＡＤＲが１のため、max=-1と読出しアドレス1を比較して、読出しアドレスのほうが大きいためmaxに読出しアドレスの１を入れる。
次に、（max−読出しアドレス＋１）がキャッシュメモリ１４０の容量２を超えていないかを確認する。（max−読出しアドレス＋１）は1-1+1で１のため超えていない。
このように計算を行っていくと時刻５で（max−読出しアドレス＋１）が３となってキャッシュメモリの容量２を超える。そのため、時刻ｔ５に警告を表示し動作を完了する。
【０１２３】
次に、図１５の回路生成装置２４０のより具体的な処理について説明する。
ここで、図１５における配列アクセス置き換え装置２４２の動作を図３６、図３７、および図３８に関連付けて説明する。
図３６は、図１５の回路生成装置における配列アクセス置き換え装置２４２の動作のフローチャートを示す図である。
図３７は、回路記述記憶装置に記憶されている回路記述の一例を示す図である。
図３８は、配列アクセスをインターフェース装置との接続を行う記述に置き換えた例を示す図である。
【０１２４】
はじめに、回路記述記憶装置２４１から演算装置の回路記述を読み込み、配列アクセス置き換え装置２４２内部のデータベースへ変換する（ＳＴ３１）。
次に、インターフェースを生成する対象の配列への書込みアクセスを抽出し（ＳＴ３２）、抽出した配列への書込みアクセスを行っている部分を本実施形態のインターフェース装置と接続するための記述へ置き換える（ＳＴ３３）。
置き換える際には、はじめに抽出した配列への書込みアクセスを削除し、次に、配列への書込みアクセスを削除した場所に、インターフェース装置への書込みアドレスＷＡＤＲ・書込みデータＷＤＴを出力する記述を追加する。書込みアドレスＷＡＤＲは配列のインデックスの値、書込みデータＷＤＴは配列へ書き込んでいたデータにする。
次に、インターフェースを生成する対象の配列からの読出しアクセスを抽出し（ＳＴ３４）、抽出した配列からの読出しアクセスを行っている部分を本実施形態のインターフェースと接続するための記述へ置き換える（ＳＴ３５）。
置き換える際には、はじめに抽出した配列からの読出しアクセスを削除し、次に、配列からの読出しアクセスを削除した場所に、インターフェース装置への読出しアドレスＲＡＤＲの出力と読出しデータＲＤＴの入力の記述を追加する。
読出しアドレスは配列のインデックスの値にし、受信した読出しデータの値は配列を読出した値が代入されている変数に代入する。
最後に先読みアドレスを指定している記述を抽出し（ＳＴ３６）、インターフェース装置と接続する記述へ置き換える（ＳＴ３７）。
置き換える際には、はじめに先読みアドレスを指定している記述を削除し、次に、先読みアドレスを指定している記述を削除した場所に、インターフェース装置への先読みアドレスＰＬＡＤＲの出力の記述を追加する。先読みアドレスＰＬＡＤＲは先読みアドレスを指定している記述の値にする。
【０１２５】
図３６に示す配列アクセス置き換え装置の動作の具体例を図３７および図３８に示す。
図３７に示す回路記述が回路記述記憶装置２４１に保存されており、配列arrayがインターフェースを生成する対象の配列、コメント"// pre_load_addres ="で先読みアドレスを指定しているものとする。
この場合、図３８に示すように、配列アクセスをインターフェース装置との接続を行う記述へ置き換える。
【０１２６】
図３６で示す配列アクセス置き換え装置の動作の別の例を図３９および図４０に示す。
図３７および図３８の例では、インターフェースを生成する対象の配列arrayが１次元配列だったが、図３９および図４０の例では、２次元配列になっている点が違いである。もちろん、インターフェースを生成する対象の配列は３次元以上であっても良い。
【０１２７】
図１５の回路生成装置２４０において、配列アクセス置き換え装置２４２が生成した回路記述を詳細回路生成装置２４３へ入力し、より詳細な回路記述へ変換する。
詳細回路生成装置２４３には一般的な動作合成などの手法を用いる。
配列アクセス置き換え装置２４２から出力した抽象度の高いＣ言語などで表現された回路記述の、詳細な演算タイミングなどの決定を行い、レジスタートランスファーレベルやネットリストで表現されたより詳細な回路記述を生成する。
【０１２８】
以上説明した実施形態によれば、以下の効果を得ることができる。
アドレス指定でデータをアクセスする演算装置同士を接続するインターフェース装置を最小の記憶素子容量で実現することができるようになり、回路面積の削減を行うことができる。
【０１２９】
アドレス指定でデータアクセスする仕様のほうが設計しやすい演算装置を設計する場合でも、既存技術では、回路面積の増大を避けるために、演算装置の仕様をアドレス指定によるデータアクセスにできなかった。そのため、演算装置の設計が複雑になるという問題があった。
これに対して、本実施形態のインターフェース装置を用いることで、実用的な回路面積でアドレス指定によってデータアクセスする演算装置同士を接続することができるようになるため、演算装置の設計効率の向上にも寄与する。
特に、一般的に、アルゴリズム開発を行う場合には、アドレス指定によるデータアクセスで演算装置を設計することが多い。
本実施形態のインターフェース装置を用いることで、アルゴリズム開発時に作成した記述をそのまま再利用して回路設計をすることができるようになるため、アルゴリズム開発と回路設計での設計工数の重複を防ぎ、設計工数の大幅な削減が可能となる。
【０１３０】
なお、本発明の実施形態は、上述した実施形態に拘泥せず、当業者であれば、本発明の要旨を変更しない範囲内で様々な改変が可能である。
【０１３１】
また、以上詳細に説明した方法は、上記手順に応じたプログラムとして形成し、ＣＰＵ等のコンピュータで実行するように構成することも可能である。
また、このようなプログラムは、半導体メモリ、磁気ディスク、光ディスク、フロッピー（登録商標）ディスク等の記録媒体、この記録媒体をセットしたコンピュータによりアクセスし上記プログラムを実行するように構成可能である。
【符号の説明】
【０１３２】
１００，１００Ａ〜１００Ｋ・・・演算処理装置、インターフェース装置、１１０・・・第１演算装置、１２０・・・第２演算装置、１３０・・・ストリーム変換装置、１４０・・・キャッシュメモリ１５０・・・制御装置、１６０・・・アドレス変換装置、１７０・・・セレクタ、１８０・・・書込みアドレス整合性検証装置、１９０・・・読出しアドレス整合性検証装置、２００，２００Ａ〜２００Ｋ・・・インターフェース装置、２１０・・・インターフェース生成装置、２１１・・・回路情報記憶装置、２１２・・・インターフェース構成情報出力装置、２１３・・・インターフェース構成情報記憶装置、２１４・・・生成装置、２１５・・・インターフェース記憶装置、２４０・・・回路生成装置、２４１・・・回路記述記憶装置、２４２・・・配列アクセス置き換え装置、２４３・・・詳細回路生成装置、２４４・・・詳細回路記述記憶装置。
【図１】
2010176505.tif 000003
【図２】
2010176505.tif 000004
【図３】
2010176505.tif 000005
【図４】
2010176505.tif 000006
【図５】
2010176505.tif 000007
【図６】
2010176505.tif 000008
【図７】
2010176505.tif 000009
【図８】
2010176505.tif 000010
【図９】
2010176505.tif 000011
【図１０】
2010176505.tif 000012
【図１１】
2010176505.tif 000013
【図１２】
2010176505.tif 000014
【図１３】
2010176505.tif 000015
【図１４】
2010176505.tif 000016
【図１５】
2010176505.tif 000017
【図１６】
2010176505.tif 000018
【図１７】
2010176505.tif 000019
【図１８】
2010176505.tif 000020
【図１９】
2010176505.tif 000021
【図２０】
2010176505.tif 000022
【図２１】
2010176505.tif 000023
【図２２】
2010176505.tif 000024
【図２３】
2010176505.tif 000025
【図２４】
2010176505.tif 000026
【図２５】
2010176505.tif 000027
【図２６】
2010176505.tif 000028
【図２７】
2010176505.tif 000029
【図２８】
2010176505.tif 000030
【図２９】
2010176505.tif 000031
【図３０】
2010176505.tif 000032
【図３１】
2010176505.tif 000033
【図３２】
2010176505.tif 000034
【図３３】
2010176505.tif 000035
【図３４】
2010176505.tif 000036
【図３５】
2010176505.tif 000037
【図３６】
2010176505.tif 000038
【図３７】
2010176505.tif 000039
【図３８】
2010176505.tif 000040
【図３９】
2010176505.tif 000041
【図４０】
2010176505.tif 000042