(57)【要約】【課題】ベクトルレジスタ間のデータ移送命令の後続命令がデータ移送命令の移送元ベクトルレジスタへの書き込みを伴うベクトル命令である場合に、その後続命令を高速に発行すること。【解決手段】移送元ベクトルレジスタの番号と移送先ベクトルレジスタの番号とベクトル長と移送開始要素番号とを指定したデータ移送命令を実行可能なベクトル処理装置において、データ移送命令の後続命令が移送元ベクトルレジスタへの書き込みを行うベクトル命令である場合に、命令制御部１００は、データ移送命令の実行によって移送元ベクトルレジスタの先頭アドレスに格納されたデータの読み出しが開始されるまでに要する時間をリードビジー時間として計算し、この計算したリードビジー時間を考慮して後続命令の発行タイミングを決定する。【選択図】図１
2010182226.tif 000002
【特許請求の範囲】
【請求項１】
移送元ベクトルレジスタの番号と移送先ベクトルレジスタの番号とベクトル長と移送開始要素番号とを指定したデータ移送命令を実行可能なベクトル処理装置であって、
前記データ移送命令の後続命令が前記移送元ベクトルレジスタへの書き込みを行うベクトル命令である場合に、前記データ移送命令の実行によって前記移送元ベクトルレジスタの先頭アドレスに格納されたデータの読み出しが開始されるまでに要する時間をリードビジー時間として計算し、該計算したリードビジー時間を考慮して、前記後続命令の発行タイミングを決定する命令制御部を備えることを特徴とするベクトル処理装置。
【請求項２】
前記命令制御部は、前記データ移送命令で指定された前記ベクトル長と、前記データ移送命令で指定された前記移送開始要素番号と、前記移送元ベクトルレジスタから前記移送先ベクトルレジスタへのベクトルレジスタ間移送動作の並列数とから、前記リードビジー時間を計算する移送命令リードビジー管理部を有することを特徴とする請求項１に記載のベクトル処理装置。
【請求項３】
１以上の演算器と、複数のベクトルレジスタと、前記演算器と前記ベクトルレジスタ間を接続する１つ以上のクロスバとを有し、互いに同時並列に動作する複数のベクトルパイプライン演算部を備え、
前記並列数として、前記ベクトルパイプライン演算部の数を用いることを特徴とする請求項２に記載のベクトル処理装置。
【請求項４】
前記命令制御部は、前記データ移送命令の発行タイミングから前記後続命令の発行タイミングまでに空けておくべき最小の発行空き時間を、前記リードビジー時間と前記後続命令に関する情報とから計算する発行空き時間計算部を有することを特徴とする請求項１乃至３の何れか１項に記載のベクトル処理装置。
【請求項５】
前記発行空き時間計算部は、前記後続命令によるベクトル要素データの読み出しから書き込みまでに要する時間と発行指示に要する時間との和を、前記リードビジー時間から減算した時間を前記発行空き時間とすることを特徴とする請求項４に記載のベクトル処理装置。
【請求項６】
前記命令制御部は、前記決定された発行タイミングに従って、前記後続命令の発行制御を行う命令実行制御部を有することを特徴とする請求項１乃至５の何れか１項に記載のベクトル処理装置。
【請求項７】
移送元ベクトルレジスタの番号と移送先ベクトルレジスタの番号とベクトル長と移送開始要素番号とを指定したデータ移送命令を実行可能なベクトル処理装置における命令制御方法であって、
前記データ移送命令の後続命令が前記移送元ベクトルレジスタへの書き込みを行うベクトル命令である場合に、前記データ移送命令の実行によって前記移送元ベクトルレジスタの先頭アドレスに格納されたデータの読み出しが開始されるまでに要する時間をリードビジー時間として計算し、該計算したリードビジー時間を考慮して、前記後続命令の発行タイミングを決定することを特徴とする命令制御方法。
【請求項８】
移送元ベクトルレジスタの番号と移送先ベクトルレジスタの番号とベクトル長と移送開始要素番号とを指定したデータ移送命令を実行可能なベクトル処理装置における命令制御方法であって、
前記データ移送命令の後続命令が前記移送元ベクトルレジスタへの書き込みを行うベクトル命令である場合に、前記データ移送命令の実行によって前記移送元ベクトルレジスタの先頭アドレスに格納されたデータの読み出しが開始されるまでに要する時間をリードビジー時間として計算し、
前記後続命令によるベクトル要素データの読み出しから書き込みまでに要する時間と発行指示に要する時間との和を、前記リードビジー時間から減算した時間を発行空き時間として計算し、
前記移送元ベクトルレジスタの発行タイミングから、前記発行空き時間だけ時間を空けて前記後続命令を発行することを特徴とする命令制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はベクトル処理装置に関し、特にベクトルレジスタ間のデータ移送命令に引き続き実行する後続命令の発行タイミングの高速化に関する。
【背景技術】
【０００２】
科学技術計算の分野における大規模な数値演算需要に応える計算機として、ベクトル処理装置が知られている。ベクトル処理装置は、複雑な処理を一連の処理要素系列（パイプ）に展開し、異なったデータに対して予め決められた処理を各ベクトルパイプライン演算部ごとに並行して流れ作業的に行う装置である。
【０００３】
このような処理方法はパイプライン処理とも呼ばれ、一般に各ベクトルパイプライン演算部は、乗算、除算、加減算および論理演算等を行う演算器と、処理中のベクトルデータを格納しておく複数のベクトルレジスタと、演算器とベクトルレジスタ間を接続する１つ以上のクロスバとを有している。また、ベクトルデータは、ベクトルレジスタ間の移送が可能なよう構成されている。このため、ベクトルパイプライン演算部間でベクトルデータを移送するためのベクトルパイプ間クロスバやベクトルパイプライン演算部に対してベクトルレジスタ間のデータ移送命令等を発行制御する命令制御部とを備えている。
【０００４】
ベクトル演算命令などにおいてはベクトルレジスタに格納されているベクトル要素データの列をその並びの順番通り先頭から読み出して演算を行い、先頭の要素データからベクトルレジスタに格納する。データ移送命令は、移送開始要素番号を指定することができる。このため、移送元ベクトルレジスタの指定したアドレスから最終アドレスまでのベクトル要素データを移送先ベクトルレジスタの先頭アドレスから始まる箇所に移送し、移送元ベクトルレジスタの残りのベクトル要素データを、移送先ベクトルレジスタの残りの箇所に移送するというように、移送と同時にベクトル要素データの並び替えが行える。移送開始要素番号を指定できるデータ移送命令を命令セットに含むベクトル処理装置の一例が特許文献１に記載されている。
【０００５】
特許文献１に記載されたベクトル処理装置では、ベクトルレジスタ間のデータ移送命令によって、移送元ベクトルレジスタ、移送先ベクトルレジスタ、ベクトル長、および移送開始要素番号を指定することができる。実際の移送に際しては、移送元ベクトルレジスタの読み出しアドレスレジスタに移送開始要素番号から求まる開始アドレスをセットし、移送先ベクトルレジスタの書き込みアドレスレジスタに０の開始アドレスをセットする。それぞれのアドレスレジスタは、カウント＋１機能を有し、セットされた開始アドレスからカウントアップし、カウントアップによりアドレスが最大アドレスを示すと、次にアドレス０に戻りカウントアップを続ける。これに伴って移送元ベクトルレジスタからベクトル長で指定される要素分のベクトルデータが順次読み出され、移送先ベクトルレジスタへと送られて書き込まれる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−１４８７２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ベクトル処理装置では、数値演算プログラムの内容に応じて種々のベクトル命令が連続して実行される。その中で、ベクトルレジスタ間のデータ移送命令に引き続いて、そのデータ移送命令の移送元ベクトルレジスタへの書き込みを伴うベクトル命令を実行する場面も発生する。このような命令の組み合わせでは、移送元ベクトルレジスタに後続命令が書き込んだデータを先行するデータ移送命令で読み出さないようにしなければ、処理が不正になる。
【０００８】
データ移送命令による移送元ベクトルレジスタからの読み出しが常に先頭アドレス０から開始されるならば、後続命令の最適な発行タイミングは、その後続命令の種類によって固定的に決まる。しかし、移送元ベクトルレジスタの任意のアドレスから移送を行えるデータ移送命令では、移送元ベクトルレジスタの先頭アドレスに格納されたベクトル要素データの読み出しが開始されるタイミングが、移送開始要素番号によって変化するため、後続命令の最適な発行タイミングが変化する。そこで、データ移送命令の移送開始要素番号がどこから始まっても不正処理が発生しないように、データ移送命令によって移送元ベクトルレジスタの全要素の読み出しが完了するまでの時間に基づいて、後続命令の発行タイミングを決定する必要があった。そのため、実際に指定される移送開始要素番号によっては、発行空き時間が無駄に長くなって処理時間が増大するという課題があった。
【０００９】
本発明の目的は、ベクトルレジスタ間のデータ移送命令の後続命令がデータ移送命令の移送元ベクトルレジスタへの書き込みを伴うベクトル命令である場合に、その後続命令を高速に発行することのできるベクトル処理装置を提供することにある。
【課題を解決するための手段】
【００１０】
本発明のベクトル処理装置は、移送元ベクトルレジスタの番号と移送先ベクトルレジスタの番号とベクトル長と移送開始要素番号とを指定したデータ移送命令を実行可能なベクトル処理装置であって、前記データ移送命令の後続命令が前記移送元ベクトルレジスタへの書き込みを行うベクトル命令である場合に、前記データ移送命令の実行によって前記移送元ベクトルレジスタの先頭アドレスに格納されたデータの読み出しが開始されるまでに要する時間をリードビジー時間として計算し、該計算したリードビジー時間を考慮して、前記後続命令の発行タイミングを決定する命令制御部を備えている。
【発明の効果】
【００１１】
本発明によれば、ベクトルレジスタ間のデータ移送命令の後続命令がデータ移送命令の移送元ベクトルレジスタへの書き込みを伴うベクトル命令である場合に、その後続命令を高速に発行することが可能である。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態のブロック図である。
【図２】本発明の実施の形態における移送元と移送先のベクトルレジスタの状態例を示す図である。
【図３】本発明の実施の形態の動作タイムチャートの一例を示す図である。
【図４】本発明に関連する技術の動作タイムチャートの一例を示す図である。
【発明を実施するための形態】
【００１３】
［構成の説明］
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００１４】
図１を参照すると、本発明の一実施の形態としてのベクトル処理装置は、命令制御部１００、複数（Ｎ個）のベクトルパイプライン演算部１１０−１〜１１０−Ｎ、ベクトルパイプ間クロスバ１３０及び主記憶１２０で構成される。
【００１５】
命令制御部１００は、命令実行制御部１０１と、移送命令リードビジー管理部１０２と、発行空き時間計算部１０３とを含んで構成される。
【００１６】
移送命令リードビジー管理部１０２は、命令実行制御部１０１からデータ移送命令に関する情報を受け、当該データ移送命令の実行によって移送元ベクトルレジスタの先頭アドレスに格納されたベクトル要素データの読み出しが開始されるまでに要する時間（この時間をリードビジー時間と呼ぶ）を計算し、結果を発行空き時間計算部１０３に出力する。命令実行制御部１０１から受け取るデータ移送命令に関する情報は、データ移送命令で指定されるベクトル長、同じくデータ移送命令で指定される移送開始要素番号、および移送元ベクトルレジスタから移送先ベクトルレジスタへのベクトルレジスタ間移送動作の並列数である。この並列数としては、具体的には、ベクトルパイプライン演算部１１０−１〜１１０−Ｎの数（つまりＮ）が用いられる。この場合、リードビジー時間は、次式により計算される。
［式１］
リードビジー時間＝（ベクトル長−移送開始要素番号）÷ベクトルパイプライン演算部数
【００１７】
発行空き時間計算部１０３は、ベクトルレジスタ間のデータ移送命令の後続命令がそのデータ移送命令の移送元ベクトルレジスタへの書き込みを伴うベクトル命令である場合に、命令実行制御部１０１からの指示に従って、データ移送命令の発行タイミングから後続命令の発行タイミングまでに空けておくべき最小の発行空き時間を計算する。なお、ベクトルレジスタへの書き込みを行うベクトル命令は、その命令の種類にかかわらず、常に先頭アドレス０から書き込みを行うようになっている。発行空き時間の計算は、移送命令リードビジー管理部１０２から与えられるリードビジー時間と、命令実行制御部１０１から与えられる後続命令に関する情報（例えば命令コード）とから計算する。具体的には、次式により計算する。
［式２］
発行空き時間＝リードビジー時間−（ＦＵＴ＋１）
【００１８】
ここで、ＦＵＴ（Function Unit Time）は、後続命令によるベクトル要素データの読み出しから書き込みまでに要する時間を示す。ＦＵＴは、ベクトル命令の種類によって相違するので、命令実行制御部１０１から受け取った後続命令に関する情報と、あらかじめ命令の種類別に保持しているＦＵＴリストとから、後続命令のＦＵＴを選択して使用する。また、式２の右辺の括弧内の「１」は、命令の発行指示にかかる時間であり、全ての命令で固定値である。
【００１９】
命令実行制御部１０１は、命令の実行制御を行う。命令実行制御部１０１は、データ移送命令の後続命令としてそのデータ移送命令の移送元ベクトルレジスタへの書き込みを伴うベクトル命令を発行する場合、データ移送命令に関する情報を移送命令リードビジー管理部１０２に与えてリードビジー時間を計算させ、発行空き時間計算部１０３に後続命令の情報を与えて発行空き時間を計算させる。そして、データ移送命令の発行タイミングから前記発行空き時間を空けたタイミングで、後続命令を発行する制御を行う。
【００２０】
ベクトルパイプライン演算部１１０−１は、ベクトル要素データを保持するベクトルレジスタ１１１−１、１１２−１、…、１１３−１と、ベクトルパイプライン演算部内のベクトル要素データの移送を行うクロスバ１１４−１、１１７−１と、演算器１１５−１、…、１１６−１とから構成される。他のベクトルパイプライン演算部１１０−２〜１１０−Ｎも、ベクトルパイプライン演算部１１０−１と同様の構成を有する。例えば、ベクトルパイプライン演算部１１０−Ｎは、ベクトル要素データを保持するベクトルレジスタ１１１−Ｎ、１１２−Ｎ、…、１１３−Ｎと、ベクトルパイプライン演算部内のベクトル要素データの移送を行うクロスバ１１４−Ｎ、１１７−Ｎと、演算器１１５−Ｎ、…、１１６−Ｎとから構成される。
【００２１】
ここで、全てのベクトルレジスタ１１１−１〜１１１−Ｎ、１１２−１〜１１２−Ｎ、…、１１３−１〜１１３−Ｎは、同じCLOCK内でリード後にデータをライト可能な（リード・アフタァ・ライト）レジスタファイル形式である。
【００２２】
ベクトルパイプ間クロスバ１３０は、ベクトルパイプライン演算部１１０−１〜１１０−Ｎ間のベクトル要素データの移送を行う。
【００２３】
主記憶部１２０は、当業者にとってよく知られており、また本発明とは直接関係しないので、その詳細な構成は省略する。
【００２４】
ベクトル要素データは、各ベクトルパイプライン演算部１１０−１〜１１０−Ｎ内のベクトルレジスタ１１１−１〜１１１−Ｎ、１１２−１〜１１２−Ｎ、…、１１３−１〜１１３−Ｎにインタリーブして割り当てられ、各ベクトルパイプライン演算部１１０−１〜１１０−Ｎは同時並列に動作する。
【００２５】
データ移送命令による移送元と移送先のベクトルレジスタの状態例の詳細を図２に示す。この例では、ベクトル処理装置として最大２５６のベクトル要素データを扱え、ベクトルパイプライン演算部１１０−１〜１１０−Ｎを８個（つまり、Ｎ＝８）、すなわちベクトルレジスタ（番号０）１１１−１〜１１１−Ｎ及びベクトルレジスタ（番号１）１１２−１〜１１２−Ｎを８並列とした場合に、ベクトルレジスタ（番号０）に２５６個のベクトル要素データをインタリーブして割り当てた状態を示している。また、ベクトルレジスタ（番号１）は、ベクトルレジスタ（番号０）の値をデータ移送命令で指定された移送開始要素番号１２８に従って、ベクトルレジスタ（番号０）からベクトルレジスタ（番号１）への移送を実行した後のベクトル要素データの並びを示している。
【００２６】
［動作の説明］
次に、図２に示したようなベクトルデータの移送を行う場合を例に挙げて、本実施の形態におけるベクトルデータ移送動作について説明する。
【００２７】
図１において、演算器１１５−１〜１１５−Ｎ、１１６−１〜１１６−Ｎから出力された演算結果、あるいは主記憶１２０から出力されたロードデータが、ベクトルレジスタ（番号０）１１１−１〜１１１−Ｎに保持されているものとする。この状態で、移送元ベクトルレジスタとしてベクトルレジスタ（番号０）１１１−１〜１１１−Ｎ、移送先ベクトルレジスタとしてベクトルレジスタ（番号１）１２１−１〜１２１−Ｎ、ベクトル長＝２５６、移送開始要素番号＝１２８を指定したデータ移送命令が命令制御部１００により発行される場合、以下のような動作が行われる。
【００２８】
命令制御部１００の命令実行制御部１０１は、データ移送命令をその発行タイミングで発行する。これにより、各ベクトルパイプライン演算部１１０−１〜１１０−Ｎの移送元ベクトルレジスタ（番号０）に読み出し開始アドレス、移送先ベクトルレジスタ（番号１）に書き込み開始アドレスが通知され、またクロスバ１１４−１〜１１４−Ｎ、１１７−１〜１１７−Ｎ、ベクトルパイプ間クロスバ１３０に制御情報が通知され、ベクトルレジスタ（番号０）からベクトルレジスタ（番号１）へのベクトルデータの移送が開始される。
【００２９】
具体的には、ベクトルパイプライン演算部１１０−１においては、ベクトルレジスタ１１１−１のベクトル要素データのうち、読み出し開始アドレスで指定されたベクトル要素データ（図２の例では、アドレス１６に保持されている１２８番目のベクトル要素データ）から読み出しが開始され、クロスバ１１７−１、ベクトルパイプ間クロスバ１３０、クロスバ１１４−１を経由して、ベクトルレジスタ１１２−１の書き込み開始アドレスで指定されるアドレス０に格納される。残りのベクトルパイプライン演算部１１０−２〜１１０−Ｎにおいてもベクトルパイプライン演算部１１０−１と同様の動作が、ベクトルパイプライン演算部１１０−１と同時並列に行われる。
【００３０】
命令実行制御部１０１は、データ移送命令の発行前あるいは発行後に、データ移送命令の次に実行する後続命令が、移送元ベクトルレジスタへの書き込みを行うベクトル命令であるかどうかを判定する。そして、データ移送命令の後続命令が、移送元ベクトルレジスタへの書き込みを行うベクトル命令であれば、データ移送命令に関する情報を移送命令リードビジー管理部１０２に伝達し、また、後続命令に関する情報を発行空き時間計算部１０３に伝達する。
【００３１】
移送命令リードビジー管理部１０２は、命令実行制御部１０１から受け取った情報に従って、前述した式１を用いて、データ移送命令の実行によって移送元ベクトルレジスタ（番号０）の先頭アドレス（アドレス０）に格納されたベクトル要素データの読み出しが開始されるまでに要する時間（リードビジー時間）を計算し、結果を発行空き時間計算部１０３へ伝達する。
【００３２】
発行空き時間計算部１０３は、移送命令リードビジー管理部１０２から受け取ったリードビジー時間と、命令実行制御部１０１から受け取った後続命令に関する情報とに従って、前述した式２を用いて、データ移送命令の発行タイミングから後続命令の発行タイミングまでに空けておくべき最小の発行空き時間を計算し、結果を命令実行制御部１０１へ伝達する。
【００３３】
命令実行制御部１０１は、発行空き時間計算部１０３から受け取った発行空き時間に基づき、後続命令の発行制御を行う。つまり、データ移送命令の発行タイミングから発行空き時間だけの時間を空けたタイミングで、後続命令を発行する。
【００３４】
図３に本実施の形態に係るベクトル処理装置のデータ移送命令の動作タイムチャートの一例を示す。ここでは、図２の例と同様に、ベクトル長は２５６要素、ベクトルパイプライン演算部数は８個、各ベクトルパイプライン演算部は同時並列動作を行うため、１つのベクトルパイプライン演算部の処理要素数は３２要素としている。ただし、図３には、移送元ベクトルレジスタ（番号０）のうちのベクトルレジスタ１１１−１だけと、移送先ベクトルレジスタ（番号１）のうちのベクトルレジスタ１２１−１だけの動作が示されている。
【００３５】
図３において、命令１で示す菱形（平行四辺形）はデータ移送命令のタイムチャートを示しており、上辺はベクトルレジスタ（番号０）１１１−１をリードしている状況を示している。底辺はベクトルレジスタ（番号１）１１２−１へのライトの状況を示している。また、命令２で示す菱形（平行四辺形）は、他のベクトルレジスタ（番号図示せず）からリードしたデータをベクトルレジスタ（番号０）１１１−１へライトする後続命令のタイムチャートを示しており、上辺はベクトルレジスタ（番号図示せず）のリード、底辺はベクトルレジスタ（番号０）１１１−１へのライトを示している。
【００３６】
１クロック（CLOCK）の処置時間を１Ｔと表すと、図３に示されるように、データ移送命令の発行後、１Ｔ経過した時点から移送元ベクトルレジスタ（番号０）の読み出しが開始される。開始アドレスは、移送開始要素番号１２８のベクトル要素データが格納されているアドレス１６である。以後、１Ｔごとに１つのベクトル要素データが読み出され、ベクトルレジスタ１１１−１の先頭アドレス０のベクトル要素データの読み出しが開始される直前までに、１６Ｔかかっている。この１６Ｔがリードビジー時間であり、移送命令リードビジー管理部１０２により計算される。前述した式１に、ベクトル長＝２５６、移送開始要素番号＝１２８、ベクトルパイプライン演算部数＝８を代入すると、１６Ｔが得られる。
【００３７】
各ベクトルレジスタ１１１−１は、同じCLOCK内でリード後にデータをライト可能な（リード・アフタァ・ライト）レジスタファイル形式を使用しているため、リードビジー時間が経過した後の直後のクロックでは、ベクトルレジスタ１１１−１のアドレス０をリードするタイミングと後続命令２でベクトルレジスタ１１１−１のアドレス０へライトするタイミングとを同じにすることができる。また以後の各クロックにおいても、ベクトルレジスタ１１１−１のアドレスをリードするタイミングと後続命令２で同じアドレスへライトするタイミングとを同じにすることができる。
【００３８】
ベクトルレジスタ１１１−１のアドレス０をリードするタイミングで、後続命令２がベクトルレジスタ１１１−１のアドレス０へライトするようにするには、ベクトルレジスタ１１１−１のアドレス０をリードするタイミングから、後続命令２のＦＵＴ（図３の例では８Ｔ）と命令発行指示に必要な１Ｔとを加算した時間だけ、過去に遡ったタイミングで、後続命令２を発行すればよい。この後続命令２の発行タイミングを、先行命令１の発行タイミングとの関係で求めるのが、発行空き時間計算部１０３である。前述した式２に、リードビジー時間＝１６Ｔ、後続命令２のＦＵＴ＝８Ｔ、命令発行指示に必要な１Ｔを代入すると、発行空き時間は７Ｔとなる。従って、命令１のデータ移送命令の発行後、７Ｔの空き時間を置いて後続命令２を発行すると、図３のタイムチャートに示される動作が実現される。
【００３９】
これに対して、移送命令リードビジー管理部１０２の機能がない場合、データ移送命令の実行によって移送元ベクトルレジスタ（番号０）の先頭アドレス（アドレス０）に格納されたベクトル要素データの読み出しが開始されるまでに要する時間（リードビジー時間）を正確に計算することができない。また、このリードビジー時間を実際より短く見積もってしまうと、後続命令２の発行タイミングが早すぎて、後続命令２で移送元ベクトルレジスタ（番号０）に書き込んだベクトル要素データを、先行命令１のデータ移送命令で読み出してしまうといった不正な処理が発生する。このため、データ移送命令の移送開始要素番号がどこから始まっても不正処理が発生しないように、データ移送命令によって移送元ベクトルレジスタの全要素の読み出しが完了するまでの時間をリードビジー時間とする必要がある。この結果、データ移送命令の移送開始要素番号がアドレス２４８以外であった場合に、発行空き時間が無駄に長くなって処理時間が増大する。このような状況の一例を図４の動作タイムチャートに示す。
【００４０】
図４では、図３の例と同様に、ベクトル長は２５６要素、ベクトルパイプライン演算部数は８個、各ベクトルパイプライン演算部は同時並列動作を行うため、１つのベクトルパイプライン演算部の処理要素数は３２要素としている。ただし、図４には、移送元ベクトルレジスタ（番号０）のうちのベクトルレジスタ１１１−１だけと、移送先ベクトルレジスタ（番号１）のうちのベクトルレジスタ１２１−１だけの動作が示されている。
【００４１】
図４において、命令１で示す菱形（平行四辺形）はデータ移送命令のタイムチャートを示しており、上辺はベクトルレジスタ（番号０）１１１−１をリードしている状況を示している。底辺はベクトルレジスタ（番号１）１１２−１へのライトの状況を示している。また、命令２で示す菱形（平行四辺形）は、他のベクトルレジスタ（番号図示せず）からリードしたデータをベクトルレジスタ（番号０）１１１−１へライトする後続命令のタイムチャートを示しており、上辺はベクトルレジスタ（番号図示せず）のリード、底辺はベクトルレジスタ（番号０）１１１−１へのライトを示している。
【００４２】
１クロック（CLOCK）の処置時間を１Ｔと表すと、図４に示されるように、データ移送命令の発行後、１Ｔ経過した時点から移送元ベクトルレジスタ（番号０）の読み出しが開始される。開始アドレスは、移送開始要素番号１２８のベクトル要素データが格納されているアドレス１６である。以後、１Ｔごとに１つのベクトル要素データが読み出され、ベクトルレジスタ１１１−１のすべてのベクトル要素データの読み出しが完了するまでに、３２Ｔかかっている。移送命令リードビジー管理部１０２の機能がない場合、この３２Ｔがリードビジー時間になる。その結果、前述した式２に、リードビジー時間＝３２Ｔ、後続命令２のＦＵＴ＝８Ｔ、命令発行指示に必要な１Ｔを代入すると、発行空き時間は２３Ｔとなる。従って、命令１のデータ移送命令の発行後、２３Ｔの空き時間を置いて後続命令２が発行され、図４のタイムチャートに示されるような動作となってしまう。図３の本実施の形態の動作と比較して、実に１７Ｔ（２３Ｔ−７Ｔ）もの時間が無駄な時間として費やされることになる。
【符号の説明】
【００４３】
１００…命令制御部
１０１…命令実行制御部
１０２…移送命令リードビジー管理部
１０３…発行空き時間計算部
１１０−１〜１１０−Ｎ…ベクトルパイプライン演算部
１１１−１〜１１１−Ｎ…ベクトルレジスタ（番号０）
１１２−１〜１１２−Ｎ…ベクトルレジスタ（番号１）
１１３−１〜１１３−Ｎ…ベクトルレジスタ（番号ｍ）
１１４−１〜１１４−Ｎ…クロスバ
１１５−１〜１１５−Ｎ…演算器
１１６−１〜１１６−Ｎ…演算器
１１７−１〜１１７−Ｎ…クロスバ
１２０…主記憶
１３０…ベクトルパイプ間クロスバ
【図１】
2010182226.tif 000003
【図２】
2010182226.tif 000004
【図３】
2010182226.tif 000005
【図４】
2010182226.tif 000006