(57)【特許請求の範囲】
【請求項１】
１つのロード命令から複数のロードリクエストを生成するロードリクエスト分解部と、
個々の前記ロードリクエストに対するロードデータを格納し、演算レジスタに転送するロードバッファと、
前記ロードリクエスト分解部によって生成された前記ロードリクエストを入力し、前記ロードリクエストに対する前記ロードデータをメインメモリから読み出すと共に、前記メインメモリによって生成された、前記ロードデータを前記ロードバッファから読み出す順番を示す付随情報を、前記ロードデータに先立って送出するよう制御するメモリネットワークと、
先立って送出された前記付随情報に基づいて、前記付随情報に対応する前記ロードデータが前記付随情報の送出から所定時間遅れて前記ロードバッファに到着する到着の遅れを検出し、前記ロードデータの到着の遅れに基づいて、前記ロードバッファから前記演算レジスタへの前記ロードデータの読み出し開始時間を調整する整列判定部と、を備え、
前記整列判定部は、前記ロードデータを前記ロードバッファから読み出す順番と、前記読み出し開始時間を遅延させる遅延時間とが対応付けられた表を参照することで、前記付随情報に基づき前記読み出し開始時間を設定する、
情報処理装置。
【請求項２】
前記整列判定部は、到着する前記付随情報毎に前記表を参照することで前記読み出し開始時間の前記遅延時間を設定し、最も大きい前記遅延時間に応じて前記読み出し開始時間を更新する、請求項１に記載の情報処理装置。
【請求項３】
前記ロードリクエスト分解部は、前記ロードリクエストの数を前記整列判定部に送出し、
前記整列判定部は、前記ロードリクエストの数と、受け付けられた前記付随情報の数を比較することにより、前記読み出しの開始時間を調整する、請求項１又は２に記載の情報処理装置。
【請求項４】
前記付随情報を、当該付随情報に対応する前記ロードバッファのタイミングに調整して前記ロードバッファに送出する付随情報タイミング調整部を更に備えた請求項１から３いずれか１項に記載の情報処理装置。
【請求項５】
前記整列判定部は、複数の前記付随情報のうち、到着が最も遅れた前記付随情報に対応する前記ロードデータの到着の遅れに基づいて、前記ロードバッファから前記演算レジスタへの前記ロードデータの前記読み出し開始時間を調整する、請求項１から４いずれか１項に記載の情報処理装置。
【請求項６】
１つのロード命令から複数のロードリクエストを生成し、
生成された前記ロードリクエストを入力し、前記ロードリクエストに対するロードデータをメインメモリから読み出し、
前記メインメモリによって生成された、前記ロードデータをロードバッファから演算レジスタへ読み出す順番を示す付随情報を、前記ロードデータに先立って送出し、
先立って送出された前記付随情報に基づいて、前記付随情報に対応する前記ロードデータが前記付随情報の送出から所定時間遅れて前記ロードバッファに到着する到着の遅れを検出し、
前記ロードデータの到着の遅れに基づいて、前記ロードバッファから前記演算レジスタへの前記ロードデータの読み出し開始時間を調整し、
前記調整の際、前記ロードデータを前記ロードバッファから読み出す順番と、前記読み出し開始時間を遅延させる遅延時間とが対応付けられた表を参照することで、前記付随情報に基づき前記読み出し開始時間を設定する、
情報処理方法。
【請求項７】
前記調整の際、到着する前記付随情報毎に前記表を参照することで前記読み出し開始時間の前記遅延時間を設定し、最も大きい前記遅延時間に応じて前記読み出し開始時間を更新する、請求項６に記載の情報処理方法。
【請求項８】
前記ロードリクエストの数と、受け付けられた前記付随情報の数を比較することにより、前記読み出しの開始時間を調整する、請求項６又は７に記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関する。
【背景技術】
【０００２】
従来より、（１）１つのロード命令から、命令で指定された複数のロードリクエストを生成し、（２）個々のロードリクエストに対するロードデータを一旦ロードバッファに格納し、（３）全てのロードデータがロードバッファに格納されることを識別し、（４）ロードバッファから演算レジスタにロードデータを転送する情報処理装置が知られている。このような情報処理装置は、例えば、特許文献１に開示されている。
【０００３】
図１０は、従来の情報処理装置のうち、ロードデータがロードバッファに格納されたことを判定する整数判定部の構成を示す図である。図１０において、７０１はＴＡＧ認識タイミング調整回路で、４つのポートで受けたＴＡＧを８サイクル分持ち回り、ロードバッファからの読み出し順番に対応したタイミングでＴＡＧを識別してカウントする機能を持つ。この整列判定部の動作を図１１Ａ及び１１Ｂに示す。
【０００４】
図１１Ａは、整列判定部の動作を示すタイムチャートであり、図１１Ｂは、図１１Ａに続くタイムチャートである。図１１Ａ及び１１Ｂにおいて、縦軸はシーケンスの識別番号（以下Ｎｏ．と示す）であり、横軸はクロック数である。図１１Ａ及び１１Ｂは、従来の整列判定部において、理想的にＴＡＧが到着する場合のロードデータをロードバッファ＃０に格納する場合の動作を示している。なお、理想的にＴＡＧが到着する様子は、図１１ＡのＮｏ．４〜７に示されている。従来の整数判定部では、図１１ＢのＮｏ．２４に示すように、ロードバッファ＃０整列判定カウンタが、３２要素分のＴＡＧ数をカウントする。図１１Ｂでは、Ｎｏ．２４のクロック２５で、３２要素分のＴＡＧ数のカウントが完了することにより、ロードデータがロードバッファに格納されたことを判定している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２５２１３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の整数判定部を含む情報処理装置では、ロードデータをロードバッファに一旦格納した後で、レジスタで持ちまわった各々のタイミングで、付随情報（ＴＡＧ）を識別することにより、全てのリプライ（ロードデータ）が揃っているか否か判定（整列判定）を行なっている。そのため、従来の情報処理装置では、整列判定を行なってから、ロードバッファから演算レジスタにロードデータの転送を開始するまでに時間がかかるという問題を有する。
【０００７】
本発明は、このような問題点に対してなされたものであり、ロードデータを演算レジスタに呼び出すまでに要する時間を短縮することができる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の係る情報処理装置の一態様は、１つのロード命令から複数のロードリクエストを生成するロードリクエスト分解部と、個々の前記ロードリクエストに対するロードデータを格納し、演算レジスタに転送するロードバッファと、前記ロードリクエスト分解部によって生成された前記ロードリクエストを入力し、前記ロードリクエストに対する前記ロードデータをメインメモリから読み出すと共に、前記メインメモリによって生成された、前記ロードデータを前記ロードバッファから読み出す順番を示す付随情報を、前記ロードデータに先立って送出するよう制御するメモリネットワークと、前記メモリネットワークから受け付けられた当該付随情報に基づいて、前記付随情報に対応する前記ロードデータの到着の遅れを検出し、前記ロードデータの到着の遅れに基づいて、前記ロードバッファから前記演算レジスタへの前記ロードデータの読み出し開始時間を調整する整列判定部と、を備えたことを特徴とする。
【発明の効果】
【０００９】
本発明に係る情報処理装置は、ロードデータを演算レジスタに呼び出すまでに要する時間を短縮することができる情報処理装置を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態に係る情報処理装置の構成を示す図である。
【図２】本発明の実施の形態に係る情報処理装置における、整列判定部の構成を示す図である。
【図３】本発明の実施の形態に係る情報処理装置において、３２個に分解されたロードリクエストに対するメモリからのロードデータが、ロードバッファでどのように格納されるかを示す図である。
【図４】本実施の形態に係る情報処理装置における、ロードバッファと演算レジスタの接続関係を示す図である。
【図５】本発明の実施の形態に係る情報処理装置の動作を示すフローチャートである。
【図６】本発明の実施の形態に係る情報処理装置において、要素番号毎に設定されるカウンタセット値を示す表である。
【図７Ａ】本発明の実施の形態に係る情報処理装置の動作を示すタイムチャートである。
【図７Ｂ】本発明の実施の形態に係る情報処理装置の動作を示すタイムチャートであり、図７Ａに続くタイムチャートである。
【図８Ａ】本発明の実施の形態に係る情報処理装置において、ＴＡＧ（及びロードデータ）の到着順序が乱れた場合の動作を示すタイムチャートである。
【図８Ｂ】本発明の実施の形態に係る情報処理装置において、ＴＡＧ（及びロードデータ）の到着順序が乱れた場合の動作を示すタイムチャートであり、図８Ａに続くタイムチャートである。
【図９Ａ】比較例における、ＴＡＧ（及びロードデータ）の到着順序が乱れた場合の動作を示すタイムチャートである。
【図９Ｂ】比較例における、ＴＡＧ（及びロードデータ）の到着順序が乱れた場合の動作を示すタイムチャートであり、図９Ａに続くタイムチャートである。
【図１０】従来の整列判定部の構成を示す図である。
【図１１Ａ】従来の情報処理装置の動作を示すタイムチャートである。
【図１１Ｂ】従来の情報処理装置の動作を示すタイムチャートであり、図１１Ａに続くタイムチャートである。
【発明を実施するための形態】
【００１１】
以下、添付した図面を参照して本発明に係る情報処理装置について説明する。まず、発明の詳細な説明をする前に、後述の実施の形態に係る情報処理装置が示された図１を援用し、本発明に係る情報処理装置の概要について説明する。この情報処理装置は、ロードリクエスト分解部１０３、メモリネットワーク（行き）１０４、メモリネットワーク（帰り）１０６、整列判定部１０７、及びロードバッファ１０９を有している。
【００１２】
ロードリクエスト分解部１０３は、１つのロード命令から複数のロードリクエストを生成する。メモリネットワーク（行き）１０４は、ロードリクエスト分解部１０３によって生成されたロードリクエストを入力し、ロードリクエストに対するロードデータをメインメモリ１０５から読み出す。メモリネットワーク（帰り）１０６は、メインメモリ１０５によって生成された付随情報を、ロードデータに先立って整列判定部１０７に送出する。付随情報には、ロードデータをロードバッファ１０９から読み出す順番を示す情報が含まれている。
【００１３】
整列判定部１０７は、メモリネットワーク（帰り）１０６から受け付けられた付随情報に基づいて、付随情報に対応するロードデータの到着の遅れを検出する。そして、整列判定部１０７は、検出されたロードデータの到着の遅れに基づいて、ロードバッファ１０９から演算レジスタ１１０へのロードデータの読み出し開始時間を調整する。ロードバッファ１０９は、個々のロードリクエストに対するロードデータを格納し、演算レジスタ１１０に転送する。
【００１４】
また、ロードリクエスト分解部１０３は、ロードリクエストの数を整列判定部１０７に送出する。整列判定部１０７は、ロードリクエストの数と、受け付けられた付随情報の数を比較することにより、ロードバッファ１０９から演算レジスタ１１０への読み出しの開始時間を調整する。
【００１５】
このように、本発明に係る情報処理装置は、ロードデータに先立って付随情報を整列判定部１０７に送出し、整列判定部１０７において付随情報に基づいてロードデータの到着の遅れを検出する。これによって、従来のようにロードデータの到着を待って、すべてのロードデータが揃ったか否かを判定する処理よりも、先行して送られた付随情報に基づいて短時間内ですべてのロードデータがロードバッファに到着したのか否か判定することができる。この結果、ロードバッファ１０９から演算レジスタ１１０へのロードデータの転送開始までに要する時間を短縮することができる。
【００１６】
実施の形態．
次に、本発明の詳細な構成について説明を行う。図１は、本発明の実施の形態に係る情報処理装置の構成を示す図である。図１において、１０１は命令発行部で、ロード命令を発行する。１０２は、使用ロードバッファ決定部で、１０１で発行されたロード命令が使用するロードバッファ番号を決定し、ロード命令とともに１０３に送出する。１０３は、ロードリクエスト分解部で、ロード命令を指定された要素数分のロードリクエストに分解して１０４に送出するとともに、１０２において決定されたロードバッファ番号と、ロード命令情報を、ロードバッファ使用通知として整列判定部１０７に送出する。ロードリクエスト分解部１０３は、要素数分のロードリクエストに分解する際に、ロードバッファの格納位置情報を付随情報としてロードリクエストに付与して送出する。
【００１７】
１０４は、メモリネットワーク（行き）で、ロードリクエスト分解部１０３から送られたロードリクエストと付随情報をメモリアドレスに応じたバンク宛に振り分け、必要に応じてロードリクエスト間の調停を行いメインメモリ１０５に送出する。１０５は、メインメモリで、ロードリクエストで指定されたアドレスのデータを、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）から読み出してメモリネットワーク（帰り）１０６に送出する。その際、メインメモリ１０５は、読み出しシーケンスに入ってからデータが読み出されるまでの時間差を利用し、ロードリクエスト付随情報を、データ送出の１０サイクル前にメモリネットワーク（帰り）１０６に送出する。図１中の点線矢印が、帰り側ロードリクエストの付随情報（以下、ＴＡＧと呼ぶ）の経路を示している。
【００１８】
１０６は、メモリネットワーク（帰り）で、メインメモリ１０５から受けたＴＡＧの情報から、送出先ポートを識別し、ＴＡＧとロードデータを調停し、ＴＡＧは整列判定部１０７に、データはロードバッファ１０９に送出する。その際、メモリネットワーク（帰り）１０６は、データに対して１０サイクル先行して送られてくるＴＡＧとロードデータのタイミングを保ったまま、整列判定部１０７及びロードバッファ１０９に、ＴＡＧとロードデータを送出する。
【００１９】
１０７は、整列判定部で、メモリネットワーク（帰り）１０６より受け取ったＴＡＧからロードバッファ番号を識別して、ロード命令で指定された要素数分のＴＡＧが帰ってきたことを判別し、ロードバッファ１０９及び演算レジスタ１１０に、演算レジスタへのロードデータの転送開始指示を送出する。また、整列判定部１０７は、受け取ったＴＡＧをリプライＴＡＧタイミング調整部１０８に送出する。
【００２０】
１０８は、リプライＴＡＧタイミング調整部で、４ポート分のリプライＴＡＧを整列判定部１０７より受け取って、９サイクル分タイミング調整し、メモリネットワーク（帰り）１０６よりデータがロードバッファ１０９に送られるタイミングに合わせて、ＴＡＧをロードバッファ１０９に送出する。１０９は、ロードバッファで、４ポート分のロードデータとＴＡＧを受け取り、ＴＡＧからロードバッファ格納位置を識別してロードデータを格納する。また、ロードバッファ１０９は、整列判定部１０７からの演算レジスタ転送開始指示を受け取って、指定されたロードバッファ番号のロードデータを順番に読み出して演算レジスタ１１０に送出する。
【００２１】
１１０は、演算レジスタで、整列判定部１０７からの演算レジスタ転送指示を受け取って、ロードバッファ１０９から送られてきたロードデータを、指定されたレジスタに格納する。また、演算レジスタ１１０は、整列判定部１０７から演算開始指示を受けると、格納されているデータを順番に読み出して演算器１１１に送出する。１１１は、演算器で、整列判定部１０７からの指示を受け、演算レジスタ１１０より送られてきたロードデータに対し、指定された演算を行った後、演算レジスタ１１０に格納する。なお、演算器１１１の出力を演算レジスタ１１０に格納する動作は、一般的な動作であるので図では省略している。
【００２２】
図２は、本発明の実施の形態に係る情報処理装置における、整列判定部の構成を示す図である。ここで、ロードデータが保持されるロードバッファ１０９は、ロードバッファ＃０とロードバッファ＃１によって構成されている。整列判定部１０７は、ロードバッファ＃０の演算レジスタ１１０への転送タイミングを管理する部分と、ロードバッファ＃１の演算レジスタ１１０への転送タイミングを管理する部分により構成されている。
【００２３】
ロードバッファ＃０側の管理部分は、ＴＡＧ数カウンタ２０１、カウンタセット値最大値検出回路２０２、整列判定カウンタ制御回路２１０、整列判定カウンタ２７１、ロード命令情報格納レジスタ２７０、整列タイミング調整カウンタ制御回路２１１、整列タイミング調整カウンタ２７２、演算レジスタ転送開始条件確認回路２２０を備えている。
【００２４】
一方、ロードバッファ＃１側の管理部分は、ＴＡＧ数カウンタ２０３、カウンタセット値最大値検出回路２０４、整列判定カウンタ制御回路２１２、整列判定カウンタ２７５、ロード命令情報格納レジスタ２７４、整列タイミング調整カウンタ制御回路２１３、整列タイミング調整カウンタ２７６、演算レジスタ転送開始条件確認回路２２１を備えている。
【００２５】
図２において、２５０は、ＴＡＧ受付レジスタで、メモリネットワーク（帰り）１０６より送出された４ポート分のＴＡＧを受け取り、１サイクル保持する。ＴＡＧ受付レジスタ２５０は、ロードバッファ＃０と＃１で共有されている。
【００２６】
ロードバッファ＃０側の管理部分とロードバッファ＃１側の管理部分は、略同一構成を備えている。以下では、ロードバッファ＃０側を例にして各要素の説明を行う。２０１は、ロードバッファ＃０用のＴＡＧ数カウンタで、ロードバッファ＃０宛ての１クロック中のＴＡＧ数をカウントする。本実施の形態では、カウント結果の最大値は、ポート数と同じ「４」である。
【００２７】
２０２は、ロードバッファ＃０用のカウンタセット値最大値検出回路で、ロードバッファ＃０宛てのＴＡＧから要素番号を識別し、要素番号に対応したカウンタセット値の最大値を検出する。具体的には、カウンタセット値最大値検出回路２０２は、予め定められた図６の表に従って、複数のＴＡＧに含まれる要素番号に対応するカウンタセット値をそれぞれ参照し、参照したカウンタセット値のうち、最大のカウンタセット値を保持する。換言すれば、カウンタセット値最大値検出回路２０２は、ＴＡＧに含まれる要素番号に基づいて、ＴＡＧに対応するロードデータの遅延を検出する。また、カウンタセット値最大値検出回路２０２は、要素番号に対応するカウンタセット値の最大値を保持することで、複数のロードデータの有する遅延時間のうち、最大の遅延時間に基づいて転送開始時間を調整する機能を果たしている。
【００２８】
２１０は、ロードバッファ＃０用の整列判定カウンタ制御回路である。整列判定カウンタ制御回路２１０は、整列判定カウンタ２７１の値からＴＡＧ数カウンタ２０１の出力値を引いて、整列判定カウンタ２７１に戻す。また、ロードバッファ＃０用の整列判定カウンタ制御回路２１０は、ロードリクエスト分解部１０３よりロードバッファ使用通知を受けると、要素数情報を識別して、要素数を整列判定カウンタ２７１にセットする機能を持つ。
【００２９】
２１１は、ロードバッファ＃０用の整列タイミング調整カウンタ制御回路で、カウンタセット値最大値検出回路２０２の出力であるカウンタセット値の最大値と、整列タイミング調整カウンタ２７２の値を比較し、カウンタセット値最大値検出回路２０２の出力値が、整列タイミング調整カウンタ２７２の値以上であった場合には、カウンタセット値最大値検出回路２０２の出力値を、整列タイミング調整カウンタ２７２にセットする。整列タイミング調整カウンタ制御回路２１１は、それ以外の場合は、整列タイミング調整カウンタ２７２に保持されている値を−１とした後、その値を整列タイミング調整カウンタ２７２に保持する。すなわち、整列タイミング調整カウンタ制御回路２１１は、付随情報に基づいて、ロードデータの到着の遅れを検出し、到着の遅れを考慮して転送開始時間を調整する機能を果たしている。
【００３０】
なお、整列タイミング調整カウンタ制御回路２１１は、ロードリクエスト分解部１０３よりロードバッファ使用通知を受け取ったタイミングでは、特別な制御は行わず、ＴＡＧがメモリネットワーク（帰り）１０６より戻ったタイミングで上記の動作を行う。
【００３１】
２７０は、ロードバッファ＃０用のロード命令情報格納レジスタで、ロードリクエスト分解部１０３よりロードバッファ使用通知を受けると、演算レジスタ番号等のロード命令情報を保持する機能をもつ。ロード命令情報格納レジスタ２７０は、演算レジスタ転送開始指示を送出するタイミングでリセットされる。２７１は、ロードバッファ＃０用の整列判定カウンタで、メインメモリ１０５からの残りロードデータ要素数値が格納される。２７２は、ロードバッファ＃０用の整列タイミング調整カウンタで、整列判定カウンタ２７１の値が"０"となった場合に、演算レジスタ転送開始指示を送出するまでのサイクル数（待ちサイクル数）が格納される。
【００３２】
２２０は、ロードバッファ＃０用の演算レジスタ転送開始条件確認回路であり、以下の（１）乃至（５）用件をすべて満足した場合に、演算レジスタ転送開始信号を調停回路２３０に出力する。
（１）有効なロード命令がロード命令情報格納レジスタ２７０に格納されていること
（２）整列判定カウンタ２７１の出力が"０"であること
（３）整列タイミング調整カウンタ２７２の出力が"０"であること
（４）ロードデータ転送パスがビジーで無いこと
（５）転送先の演算レジスタがビジーで無いこと
【００３３】
また、ロードバッファ＃０とロードバッファ＃１で共有される２７３は、ビジーフラグ群である。ビジーフラグ群は、ロードバッファ１０９から演算レジスタ１１０へのロードデータ転送パスのビジーフラグやデータコヒーレンシを考慮した演算レジスタへの書き込みタイミング制御フラグなどから構成されている。データパス制御やコヒーレンシ制御は一般的な動作であるため、ここでは詳しい機能・動作については省略する。２３０は、調停回路で、演算レジスタ転送開始条件確認回路２２０と２２１の両方から演算レジスタ転送開始信号が送出された場合に、先行のロード命令を有効にするなどの調停を行って演算レジスタ転送開始信号保持レジスタ２８０に出力する。２８０は、演算レジスタ転送開始信号保持レジスタで、１サイクルの間、演算レジスタ転送開始信号を保持する。
【００３４】
以下、ロードバッファ＃１側についても、ロードバッファ＃０用の各要素と同じ機能を有する要素を有する。すなわち、２０３は、ＴＡＧ数カウンタ（ロードバッファ＃１用）で、ＴＡＧ数カウンタ（ロードバッファ＃０用）２０１と同等の機能を持つ。２０４は、カウンタセット値最大値検出回路（ロードバッファ＃１用）で、カウンタセット値最大値検出回路（ロードバッファ＃０用）２０２と同等の機能を持つ。２７４は、ロード命令情報格納レジスタ（ロードバッファ＃１用）で、ロード命令情報格納レジスタ（ロードバッファ＃０用）２７０と同等の機能を持つ。２７５は、整列判定カウンタ（ロードバッファ＃１用）で、整列判定カウンタ（ロードバッファ＃０用）２７１と同等の機能を持つ。
【００３５】
２７６は、整列タイミング調整カウンタ（ロードバッファ＃１用）で、整列タイミング調整カウンタ（ロードバッファ＃０用）２７２と同等の機能を持つ。２１２は、整列判定カウンタ制御回路（ロードバッファ＃１用）で、整列判定カウンタ制御回路（ロードバッファ＃０用）２１０と同等の機能を持つ。２１３は、整列タイミング調整カウンタ制御回路（ロードバッファ＃１用）で、整列タイミング調整カウンタ制御回路（ロードバッファ＃０用）２１１と同等の機能を持つ。２２１は、演算レジスタ転送開始条件確認回路（ロードバッファ＃１用）で、演算レジスタ転送開始条件確認回路（ロードバッファ＃０用）２２０と同等の機能を持つ。
【００３６】
次に、ロードバッファ１０９の詳細な構成について説明する。図３には、３２個に分解されたロードリクエストに対する、メモリからの３２個のロードデータe００〜e３１が、ロードバッファ１０９において格納される様子が示されている。ロードバッファ１０９は、ロードバッファ要素３００乃至３０３を有している。また、ロードバッファ要素３００乃至３０３は、それぞれロードバッファ＃０とロードバッファ＃１に割り当てられている。図３では、ロードバッファ要素３００乃至３０３は、同時に２つのロード命令分のロードデータを格納する容量があることを示している。
【００３７】
具体的には、ロードバッファ要素３００は、ポート＃０に入力されたロードデータを格納するロードバッファの一部であり、ロードデータｅ００、ｅ０４、ｅ０８、ｅ１２、ｅ１６、ｅ２０、ｅ２４、ｅ２８が格納される。ロードバッファ要素３００は、整列判定部１０７から演算レジスタ転送開始信号が入力されると、ｅ００、ｅ０４、ｅ０８、ｅ１２、ｅ１６、ｅ２０、ｅ２４、ｅ２８の順番でロードデータを読み出して演算レジスタ１１０に送出する。
【００３８】
ロードバッファ要素３０１は、ポート＃１に入力されたロードデータを格納するロードバッファの一部で、ロードバッファ要素３００と同等の機能を持つ。格納されるロードデータは、ロードバッファ要素３００と異なり、ロードデータｅ０１、ｅ０５、ｅ０９、ｅ１３、ｅ１７、ｅ２１、ｅ２５、ｅ２９が格納される。読み出される順番は、ｅ０１から順に演算レジスタ１１０に読み出される。
【００３９】
ロードバッファ要素３０２は、ポート＃２に入力されたロードデータを格納するロードバッファの一部で、ロードバッファ要素３００と同等の機能を持つ。格納されるロードデータは、ロードデータｅ０２、ｅ０６、ｅ１０、ｅ１４、ｅ１８、ｅ２２、ｅ２６、ｅ３０が格納される。読み出される順番は、ロードデータｅ０２から順番に読み出される。ロードバッファ要素３０３は、ポート＃３に入力されたロードデータを格納するロードバッファの一部で、ロードバッファ要素３００と同等の機能を持つ。格納されるロードデータは、ロードデータｅ０３、ｅ０７、ｅ１１、ｅ１５、ｅ１９、ｅ２３、ｅ２７、ｅ３１であり、ｅ０３から順に読み出される。
【００４０】
図４は、本実施の形態に係る情報処理装置における、ロードバッファと演算レジスタの接続関係を示す図である。ロードバッファ１０９は、４つのＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）からなるロードバッファ要素３００〜３０３により構成されている。ロードバッファ要素３００には、ＴＡＧとロードデータが同じタイミングで届くが、ロードバッファ要素３００において、ＴＡＧからＳＲＡＭのライトアドレスを生成し、ロードデータが到着した２サイクル後のタイミングでロードデータをＳＲＡＭに書き込む。
【００４１】
ロードバッファ要素３００は、整列判定部１０７から演算レジスタ転送開始信号が届くと、演算レジスタ転送開始信号からリードアドレスを生成し、演算レジスタ転送開始信号が届いた３サイクル後に読み出されたロードデータを演算レジスタ１１０に送出する。ロードバッファ１０９は、演算レジスタ転送開始信号が届いた後、指定された要素数の読み出しが完了するまでリードアドレスをインクリメントして連続してロードデータを演算レジスタ１１０に送出する。
【００４２】
次に、このように構成された情報処理装置の動作について説明する。図５は、本発明の実施の形態に係る情報処理装置の動作を示すフローチャートであり、図７Ａ及び７Ｂは、本発明の実施の形態に係る情報処理装置の動作を示すタイムチャートである。図７Ａ及び７Ｂにおいて、縦軸はシーケンスの識別番号を示し、横軸はクロック数を示している。本説明では、シーケンスの識別番号を「Ｎｏ．」と示し、クロック数を、「クロック」と示す。はじめに、命令発行部１０１から、要素数３２のロード命令が発行されると、使用ロードバッファ決定部１０２は、使用するロードバッファ番号（例えば、＃０）を決定する。また、使用ロードバッファ決定部１０２は、要素数と同じ３２個分に相当するロードリエストを生成する（Ｓ４００）。
【００４３】
ロードリクエスト分解部１０３は、使用ロードバッファ決定部１０２によって生成されたロードリクエストを、要素数３２個のロードリクエストに分解すると共に、ロードバッファ番号＃０とロード命令情報から成るロードバッファ使用通知を整列判定部１０７に送出する（Ｓ４０１）。なお、ロードリクエスト分解部１０３から送出されるロードバッファ使用通知は、図７ＢのタイムチャートのＮｏ．２２のクロック２に示されている。
【００４４】
また、整列判定部１０７は、ロードリクエスト分解部１０３からロードバッファ使用通知を受けると、ロード命令情報格納レジスタ２７０に、ロード命令情報をセットする（Ｓ４０１）。そして、整列判定部１０７は、整列判定カウンタ２７１に、要素数"３２"をセットする（Ｓ４０２）。なお、ロードバッファ＃０用の整列判定カウンタ２７１に要素数"３２"がセットされる動作は、図７ＢのタイムチャートのＮｏ．２４のクロック３に示されている。
【００４５】
ここで、ロードリクエスト分解部１０３で生成された要素数３２個分のロードリクエストは、メモリネットワーク（行き）１０４でアドレスが指定するメモリバンクにルーティングされてメインメモリ１０５の１つのメモリバンクに送られる。メインメモリ１０５は、ロードリクエストを受けつけると、ＲＡＭの読み出しシーケンスを開始する。メインメモリ１０５は、読み出したロードデータ出力の１０サイクル前に、ＴＡＧをメモリネットワーク（帰り）１０６に送出する。その後、メインメモリ１０５は、ＴＡＧの１０サイクル後に、ロードデータをメモリネットワーク（帰り）１０６に送出する。
【００４６】
メモリネットワーク（帰り）１０６は、受け取ったＴＡＧから、ポート情報を識別してルーティングを行い整列判定部１０７に送出する。整列判定部１０７は、到着したＴＡＧを識別し、ロードバッファ＃０の到着ＴＡＧ数と、ロードバッファ＃１の到着ＴＡＧ数を２０１及び２０３でカウントする（Ｓ４０３）。整列判定部１０７によりカウントされる到着ＴＡＧ数については、図７ＡのＮｏ．２０に示されている。具体的には、Ｎｏ．２０において、クロック７で識別された到着ＴＡＧ数は"４"である。
【００４７】
整列判定カウンタ制御回路２１０は、整列判定カウンタ２７１に格納されているＮｏ．２４のクロック７の値"３２"から、クロック７で到着した到着ＴＡＧ数２０１の出力値"４"を引いた値である"２８"を整列判定カウンタ２７１にセットする（Ｓ４０４）。この動作を、図７ＢのタイムチャートのＮｏ２４のクロック８に示す。
【００４８】
ロードバッファ＃０用のカウンタセット値最大値検出回路２０２は、ロードバッファ＃０の到着ＴＡＧから、要素番号を識別し、図６の表に従って要素番号に対応するカウンタセット値を得る。具体的には、クロック７では、Ｎｏ．４のポート＃０には要素００が、Ｎｏ．５のポート＃１には要素０１が、Ｎｏ．６のポート＃２には要素０２が、Ｎｏ．７のポート＃３には要素０３が到着している。図６を参照すれば、要素００、０１、０２、０３に対応するカウンタセット値は、順に"７"、"７"、"７"、"７"と全て"７"である。よって、カウンタセット値最大値検出回路２０２の出力値は、最大値である"７"に設定される。この最大値は、整列タイミング調整カウンタ制御回路２１１に出力される（Ｓ４０５）。この動作は、図７ＢのタイムチャートのＮｏ．２７のクロック７に示されている。
【００４９】
次に、整列タイミング調整カウンタ制御回路２１１は、カウンタセット値最大値検出回路２０２の出力値"７"と、ロードバッファ＃０用の整列タイミング調整カウンタ２７２の格納値"０"を比較する（Ｓ４０６）。ここで、カウンタセット値最大値検出回路２０２の出力値"７"は、整列タイミング調整カウンタ２７２の格納値"０"以上であるため（Ｓ４０６においてＮＯ）、整列タイミング調整カウンタ制御回路２１１は、カウンタセット値最大値検出回路２０２の出力値"７"を整列タイミング調整カウンタ２７２にセットする（Ｓ４０８）。この動作は、図７ＢのタイムチャートのＮｏ．３０のクロック８に示されている。
【００５０】
次に、演算レジスタ転送開始条件確認回路２２０は、整列タイミング調整カウンタ値と整列判定カウンタ値が、いずれもが"０"であるか否か判定する（Ｓ４０９）。ここで、図７Ｂのクロック８において、整列判定カウンタの値は"２８"であり、整列タイミング調整カウンタの値は"７"であるため（Ｓ４０９においてＮＯ）、ステップＳ４０３に戻る。図７ＢのタイムチャートのＮｏ．３２のクロック８において、演算レジスタ転送開始条件確認回路２２０は、演算レジスタ転送開始信号を有効としない。
【００５１】
ステップＳ４０３に戻り、整列判定部１０７は、到着したＴＡＧを識別し、ロードバッファ＃０の到着ＴＡＧ数と、ロードバッファ＃１の到着ＴＡＧ数を２０１及び２０２でカウントする。ここで、図７ＡのＮｏ．４〜７のクロック８では、ポート＃０には要素０４が、ポート＃１には要素０５が、ポート＃２には要素０６が、ポート＃３には要素０７が到着している。そのため、到着ＴＡＧ数であるＴＡＧ数カウンタ２０１の出力値は、"４"となる。この動作は、図７ＡのタイムチャートのＮｏ．２０のクロック８に示されている。
【００５２】
ステップＳ４０４に進み、整列判定カウンタ制御回路２１０は、整列判定カウンタ２７１に格納されている値"２８"からＴＡＧ数カウンタ２０１の出力値"４"を引いて、"２４"を整列判定カウンタ２７１にセットする。この動作は、図７ＢのＮｏ．２４のクロック９に示されている。
【００５３】
続いて、ステップＳ４０５に進み、カウンタセット値最大値検出回路２０２は、ロードバッファ＃０の到着ＴＡＧから、要素番号を識別し、図６の表に従って要素番号に対応するカウンタセット値を得る。ここで、クロック８では、各ポートの要素番号に相当するカウンタセット値は、順に"６"、"６"、"６"、"６"と全て"６"である。よって、カウンタセット値最大値検出回路２０２は、最大値である"６"を整列タイミング調整カウンタ制御回路２１１に出力する。この動作は、図７ＢのＮｏ．２７のクロック８に示されている。
【００５４】
ステップＳ４０６において、カウンタセット値最大値検出回路２０２の出力値"６"が整列タイミング調整カウンタ２７２の格納値"７"より小さいため（ステップＳ４０６においてＹＥＳ）、整列タイミング調整カウンタ制御回路２１１は、"７"を−１し、算出した値"６"を、整列タイミング調整カウンタ２７２にセットする。この動作は、図７ＢのＮｏ．３０のクロック９に示されている。
【００５５】
ステップＳ４０９において、演算レジスタ転送開始条件確認回路２２０は、整列判定カウンタ２７１および整列タイミング調整カウンタ２７２の出力が"０"であるか否か判定する。いずれも"０"でないため（ステップＳ４０９においてＮＯ）、ステップＳ４０３に戻る。すなわち、図７ＢのＮｏ．３２のクロック９に示すように、演算レジスタ転送開始条件確認回路２２０は、演算レジスタ転送開始信号は有効としない。
【００５６】
以降、３２個の要素中２８個の要素のＴＡＧが、整列判定部１０７に到着するまで、ステップ４０３〜Ｓ４０９の処理が繰り返される。この間、整列判定カウンタ２７１の値は"２８"、"２４"、"２０"、"１６"、"１２"、"８"、"４"と順に変化する。一方、整列タイミング調整カウンタ２７２の値は、"７"、"６"、"５"、"４"、"３"、"２"、"１"と変化する。
【００５７】
次に、図７ＡのタイムチャートのＮｏ．４〜７のクロック１４においては、３２要素中、最後の４要素が到着している。具体的には、ポート＃０には要素２８が、ポート＃１には要素２９が、ポート＃２には要素３０が、ポート＃３には要素３１がそれぞれ到着している。よって、ステップＳ４０３において、ＴＡＧ数カウンタ２０１の出力値は"４"となる。この動作は、図７ＡのＮｏ．２０のクロック１４に示されている。
【００５８】
ステップＳ４０４では、整列判定カウンタ２７１に保持されている値"４"から、ＴＡＧ数カウンタ２０１の出力値"４"を減ずることで、整列判定カウンタ２７１には"０"が格納される。この動作は、図７ＢのＮｏ．２４のクロック１５に示されている。
【００５９】
続いて、ステップＳ４０５に移り、図６の表を参照し、各要素番号に対応するカウンタセット値を算出する。ここで、図６では、各用度番号に対応するカウンタセット値は、順に"０"、"０"、"０"、"０"と全て"０"である。よって、カウンタセット値最大値検出回路２０２の出力値は最大値である"０"を、整列タイミング調整カウンタ制御回路２１１に出力する。この動作は、図７ＢのＮｏ．２７のクロック１４に示されている。
【００６０】
ステップＳ４０６において、整列タイミング調整カウンタ制御回路２１１は、カウンタセット値最大値検出回路２０２の出力値"０"が整列タイミング調整カウンタ２７２の格納値"１"より小さいため（ステップＳ４０６においてＹＥＳ）、整列タイミング調整カウンタ２７２の格納値"１"を−１して"０"を整列タイミング調整カウンタ２７２にセットする（ステップＳ４０７）。この動作は、図７ＢのタイムチャートのＮｏ．３０のクロック１５に示されている。
【００６１】
ステップＳ４０９において、演算レジスタ転送開始条件確認回路２２０は、整列判定カウンタ２７１及び整列タイミング調整カウンタ２７２の出力がどちらも"０"であることを確認する。また、演算レジスタ転送開始条件確認回路２２０は、ロード命令情報格納レジスタ２７０に、有効なロード命令情報が格納されており、かつ、ビジーフラグが立っていないことを確認し、演算レジスタ転送開始信号を有効とする。
【００６２】
ここで、ロードバッファ＃１側には有効なロード命令情報が存在しないため、ロードバッファ＃１用の演算レジスタ転送開始条件確認回路２２１の出力は有効とされない。調停回路２３０は、ロードバッファ＃０用の演算レジスタ転送開始条件確認回路２２０が出力する演算レジスタ転送開始信号を選択し、演算レジスタ転送開始信号保持レジスタ２８０に出力する。この動作は、図７ＢのタイムチャートのＮｏ．３２のクロック１６に示されている。
【００６３】
その後、演算レジスタ転送開始信号保持レジスタ２８０から、ロードバッファ１０９及び演算レジスタ１１０に対して演算レジスタ転送開始信号を送出する（ステップＳ４１０）。ロードバッファ１０９では、演算レジスタ転送開始指示をレジスタで受けてリードアドレスを生成する。この動作は、図７ＢのタイムチャートのＮｏ．３４のクロック１７に示されている。
【００６４】
そして、整列判定部１０７は、ロードバッファ１０９及び１１０に対して演算レジスタ転送開始指示を送出すると同時に、ステップＳ４１１において、ロードバッファ＃０の開放通知をロードリクエスト分解部１０３に送出し、ロード命令情報格納レジスタ２７０をクリアする。この動作を、図７ＢのタイムチャートのＮｏ．４９のクロック１７に示す。
【００６５】
ロードバッファ１０９は、リードアドレスをインクリメントして順次ロードデータを読み出して、演算レジスタ１１０に送出する。演算レジスタ１１０は、整列判定部１０７より演算レジスタ転送開始指示を受けた後、ロードバッファ１０９より送られてくるロードデータを、指示された演算レジスタに格納していく。
【００６６】
以降、ロードバッファ１０９は、３２要素全部を読み出し、演算レジスタ１１０は、受け取ったロードデータを３２要素分格納する。これにより、１つのロード命令に対する一連の動作が完了する。
【００６７】
次に、図８Ａ及び８Ｂを用いて、本実施の形態に係る情報処理装置の動作を説明する。図８Ａ及び８Ｂは、ＴＡＧ（及びロードデータ）の到着順序が乱れた場合のタイムチャートである。なお、基本的な動作については、変更が無いため、特徴のある箇所に着目して説明する。また、図８Ａ及び８Ｂのシーケンスの識別番号（Ｎｏ．）は、図７Ａ及び７Ｂのシーケンスの識別番号（Ｎｏ．）に対応しているため、各シーケンス名は図８Ａ及び８Ｂでは省略している。
【００６８】
図７Ａ及び７Ｂでは、ＴＡＧが順番通り理想的に到着する場合を示しており、例えば、図７Ａ及び７Ｂにおいて、要素００のＴＡＧはＮｏ．４のクロック７で整列判定部１０７に到着している。しかしながら、図８ＡではＮｏ．４のクロック１５で要素００が到着している。また、図８Ａでは、さらにその１サイクル後（クロック１６）に、要素２８が到着している。また、図８Ａでは、Ｎｏ．４のクロック１４で示すように、ＴＡＧが到着しないタイミングも存在する。なお、実際の情報処理装置では、メモリバンクビジーやネットワーク競合などの影響により、図８Ａ及び８Ｂに示すように、到着する要素の順番が入れ替わったり、間隙が空くことは頻繁に発生する現象である。
【００６９】
次に、図５のフローチャートに従って、図８Ａ及び８Ｂの場合の情報処理装置の動作を説明する。なお、ステップＳ４００〜４０２については、前述の通りであるので省略する。ステップＳ４０３において、１クロック内で到着したＴＡＧ数がカウントされる。例えば、図８Ａのクロック７では、ロードバッファ＃０宛てのＴＡＧの到着数は"３"なのでＮｏ．２０のクロック７におけるＴＡＧ数カウンタ２０１の出力値も"３"となる。
【００７０】
ステップＳ４０４では、クロック７において保持される整列判定カウンタ２７１の値"３２"から、到着ＴＡＧ数"３"を減じた値である"２９"が、整列判定カウンタ２７１に格納される。この動作が、Ｎｏ．２４のクロック８に示されている。
【００７１】
ステップＳ４０５では、最大カウントセット値が算出される。具体的には、図８ＡのＮｏ．４〜７には、クロック１４において要素２６と要素３１が到着している。図６を参照すれば、各要素２６、３１に対応するカウンタセット値は"１"と"０"である。よって、最大値である"１"が、カウンタセット値最大値検出回路２０２から出力される。
【００７２】
ステップＳ４０６では、整列タイミング調整カウンタ２７２の値がカウンタセット値最大値検出回路２０２の出力値よりも大きいか否か判定される。クロック１４において、整列タイミング調整カウンタ２７２の値"１"は、カウンタセット値最大値検出回路２０２の出力値"１"と同じなので（ステップＳ４０６においてＮＯ）、カウンタセット値最大値検出回路２０２の出力値"１"が、整列タイミング調整カウンタ２７２にセットされる（ステップＳ４０８）。
【００７３】
一方、特徴的なクロックについて着目すると、Ｎｏ．４〜７のクロック１５では、遅れて到着した要素００と要素３０が到着しており、各要素００、３０に対応するカウンタセット値は"７"と"０"である。よって、ステップＳ４０５では、最大値である"７"がカウンタセット値最大値検出回路２０２より出力される。ステップＳ４０６では、整列タイミング調整カウンタ２７２の値"１"は、カウンタセット値最大値検出回路２０２の出力値"７"より小さいので（ステップＳ４０６においてＮＯ）、カウンタセット値最大値検出回路２０２の出力値"７"を、整列タイミング調整カウンタ２７２にセットする。
【００７４】
次に、図８ＡのＮｏ．４〜７のクロック１６では、要素２８と要素２９と要素２３が到着している。ステップＳ４０５において、要素に対応するカウンタセット値はそれぞれ"０"と"０"と"２"なので、最大値"２"がカウンタセット値最大値検出回路２０２より出力される。ステップＳ４０６では、整列タイミング調整カウンタ２７２の値"７"はカウンタセット値最大値検出回路２０２の出力値である"２"より大きいので（Ｓ４０６においてＹＥＳ）、"７"を−１した"６"を整列タイミング調整カウンタ２７２にセットする。
【００７５】
また、クロック１６では、最後の３つのＴＡＧが到着したため、ステップＳ４０４において、整列判定カウンタ２７１の値に"０"がセットされる。
【００７６】
その後、ＴＡＧの到着は無いため、Ｎｏ．３０に示される整列タイミング調整カウンタ２７２の値は、１ずつ減算され、クロック２３で"０"となる。そして、クロック２３において、整列判定カウンタ２７１（Ｎｏ．２４）と整列タイミング調整カウンタ２７２（Ｎｏ．３０）の値が共に"０"となるため、演算レジスタ転送開始条件確認回路２２０は、このタイミングで、有効な演算レジスタ転送開始信号を出力する。この動作が図８ＢのＮｏ．３２のクロック２４に示されている。
【００７７】
そして図７Ａ及びＢと同様に、調停回路２３０と演算レジスタ転送開始信号保持レジスタ２８０を経て、演算レジスタ転送開始信号がロードバッファ１０９及び演算レジスタ１１０に送出される。これにより、ロードデータの転送が開始される。
【００７８】
このように、本実施の形態に係る情報処理装置では、整列判定カウンタ２７１と整列タイミング調整カウンタ２７２の２つのカウンタ制御を連携させることで、ロードバッファにてデータ一貫性を損なうことなく、最速のタイミングで演算レジスタ１１０にロードデータを格納可能となる。
【００７９】
また、本実施の形態に係る情報処理装置では、ＴＡＧをロードデータに先行して送出する構成を有することで、カウンタを利用して最適なタイミングでロードバッファから演算レジスタへのデータ転送を開始できる。そのため、少ない面積の投資でロードＴＡＴを短縮し装置の処理能力を向上させることが可能となる。
【００８０】
次に、図９Ａ及び９Ｂの比較例を用いて、さらに本実施の形態の効果について説明する。本実施の形態では、カウンタセット値最大値検出回路２０２の最大値と整列タイミング調整カウンタ２７２の値と比較して、転送開始時間を調整していた。これに対し、図９Ａ及び９Ｂの比較例では、カウンタセット値最大値検出回路２０２の出力値が"１"以上であった場合は、カウンタセット値最大値検出回路２０２の最大値と整列タイミング調整カウンタ２７２の値と比較することなく、整列タイミング調整カウンタ２７２に、カウンタセット値最大値検出回路２０２の出力値をセットする論理を有しているものとする。なお、図９Ａ及び９ＢのＴＡＧ到着タイミングは、図８Ａ及び９Ｂと同じであるとする。また、各シーケンス番号（Ｎｏ．）は、図７Ａ及び７Ｂの（Ｎｏ．）にそれぞれ対応しているため、図示については省略する。
【００８１】
この比較例では、クロック１７で、Ｎｏ．３０に示される整列タイミング調整カウンタ２７２の値に"２"がセットされている。そのため、カウンタ値がディクリメントされ、２サイクル後のＮｏ．３０のクロック１９で、整列タイミング調整カウンタ２７２の値が"０"となる。これをトリガとして、演算レジスタ転送開始指示がロードバッファ１０９及び演算レジスタ１１０に送出され、ロードデータの転送が開始される。この図９Ａ及び９Ｂの比較例では、カウンタセット値最大値検出回路２０２の最大値と整列タイミング調整カウンタ２７２の値と比較していないため、要素００のロードデータがロードバッファに格納される前に、読み出しが開始されてしまうことがわかる。そのため、比較例では、データの一貫性が損なわれることが分かる。
【００８２】
これに対し、本実施の形態に係る情報処理装置では、カウンタセット値最大値検出回路２０２の最大値と整列タイミング調整カウンタ２７２の値と比較し、ＴＡＧ到着の最大遅延時間を考慮して読み出しを開始することができる。そのため、図８Ａ及びＢに示すように、データの一貫性が損なわれることなく、ロードデータを読み出すことができる。
【００８３】
また、背景技術に記載した従来の情報処理装置では、図１１Ａに示すように、レジスタ７０１にてリプライＴＡＧのタイミング調整を行っていた。すなわち、読み出し順番に対応するタイミングで、有効なリプライＴＡＧであることを識別していた。そのため、必要論理を構成する場合は、同時読み出し数が８以上の特殊なＲＡＭを使用するか、レジスタを用いる必要が有り、必要面積が増大してしまうという問題点があった。
【００８４】
これに対し、本実施の形態に係る情報処理装置のリプライＴＡＧタイミング調整機能は、１０８の機能を説明しているとおり、９サイクル分ロードデータを転送するタイミングを調整する機能のみを追加すればよいので、Ｗｒｉｔｅ  Ｐｏｒｔ１個、Ｒｅａｄ  Ｐｏｒｔ１個（１Ｒ１Ｗ）の汎用的なＲＡＭで構成することが可能であり、必要面積が少なく済むという利点がある。
【００８５】
なお、本発明は、上記の説明に限られるものではなく、当業者によって種々の設計変更を実施することが可能である。例えば、メインメモリ１０５のメモリバンク数とロードバッファ１０９のポート数は一致している必要は無く、さまざまなバリエーションを取ることが可能である。また、ロードバッファ１０９のＳＲＡＭ構成やロードバッファ数および演算レジスタ１１０への出力線数もさまざまなバリエーションを取ることが可能である。また、１つのロード命令で３２個以下または３２個以上のロードリクエストに分解するような命令セットの構成とすることも可能である。
【００８６】
また、レジスタ挿入によるクロック高速化についても対応可能である。また、１つのロード命令から生成されるロードリクエスト数が増える場合には、ロードバッファから演算レジスタへのデータ転送サイクルが増加する分、ＴＡＧをロードデータに先行して送出するとＴＡＴ短縮効果が大きくなる。
【００８７】
具体的には、１つのロード命令から６４個のロードリクエストが生成される命令セットでは、実施例の延長で実装するとロードバッファから演算レジスタへの転送サイクルが１６サイクルとなり、実施例より８サイクル増加する。この場合、実施の形態ではロードデータに対して１０サイクル早くＴＡＧを送出していたところを、１８サイクル早くＴＡＧを送出する構成とすると、最大のロードＴＡＴ短縮効果が得られる。
【００８８】
なお、この場合、図６のカウンタセット値の対応表は次のような手順により作成することができる。すなわち、最大のＴＡＴ短縮効果を得るために、ＴＡＧを１８サイクル早く送出する構成では、ロードバッファ読み出し順で一番最後となるサイクルの要素番号"６０"、"６１"、"６２"、"６３"のカウンタセット値を０として、その１つ前に読み出される要素番号"５６"、"５７"、"５８"、"５９"のカウンタセット値を1とする。このように読み出し順番が早くなる毎にカウンタセット値を増やしていくようにして対応表を作成することができる。この場合、要素番号０、１、２、３のカウントセット値は１５となる。
【００８９】
また、図５のフローチャートに示される情報処理方法は、プログラムとして実施することもでき、このプログラムは、様々な記録媒体に格納することもできる。
【符号の説明】
【００９０】
１０１    命令発行部
１０２    使用ロードバッファ決定部
１０３    ロードリクエスト分解部
１０５    メインメモリ
１０４、１０６    メモリネットワーク
１０７    整列判定部
１０９    ロードバッファ
１１０    演算レジスタ
１１１    演算器
２０１、２０３    ＴＡＧ数カウンタ
２０２、２０４    カウンタセット値最大値検出回路
２１０、２１２    整列判定カウンタ制御回路
２１１、２１３    整列タイミング調整カウンタ制御回路
２２０、２２１    演算レジスタ転送開始条件確認回路
２３０    調停回路
２７０、２７４    ロード命令情報格納レジスタ
２７１、２７５    整列判定カウンタ
２７２、２７６    整列タイミング調整カウンタ
２７３    ビジーフラグ群
２８０    演算レジスタ転送開始信号保持レジスタ
３００〜３０３    ロードバッファ要素
【図１】
0005348698.tif 000002
【図２】
0005348698.tif 000003
【図３】
0005348698.tif 000004
【図４】
0005348698.tif 000005
【図５】
0005348698.tif 000006
【図６】
0005348698.tif 000007
【図７Ａ】
0005348698.tif 000008
【図７Ｂ】
0005348698.tif 000009
【図８Ａ】
0005348698.tif 000010
【図８Ｂ】
0005348698.tif 000011
【図９Ａ】
0005348698.tif 000012
【図９Ｂ】
0005348698.tif 000013
【図１０】
0005348698.tif 000014
【図１１Ａ】
0005348698.tif 000015
【図１１Ｂ】
0005348698.tif 000016