説明

ベクトル命令管理回路、ベクトル処理装置、ベクトル命令管理方法、ベクトル処理方法、ベクトル命令管理プログラム、および、ベクトル処理プログラム

【課題】 物理ベクトルレジスタのリソース不足を抑止する。
【解決手段】 リネーミング判定手段102は、ベクトル書き込み命令(後続ベクトル命令)を入力すると、実行中ベクトルレジスタ番号テーブル103を参照し、同一論理ベクトルレジスタに書き込みを行う実行中のベクトル書き込み命令(先行ベクトル命令)が存在するかどうか判定し、同一論理ベクトルレジスタに書き込みを行う1以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグを判定する。後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦最新先行ベクトル命令のベクトル長であると、ベクトルレジスタリネーミング手段104は、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付ける。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ベクトル命令管理回路、ベクトル処理装置、ベクトル命令管理方法、ベクトル処理方法、ベクトル命令管理プログラム、および、ベクトル処理プログラムに関し、特に、論理ベクトルレジスタ番号から物理ベクトルレジスタ番号へ変換するベクトル命令管理回路、ベクトル処理装置、ベクトル命令管理方法、ベクトル処理方法、ベクトル命令管理プログラム、および、ベクトル処理プログラムに関する。
【背景技術】
【0002】
特許文献1では、論理レジスタ番号を論理・物理変換ユニット(ベクトルレジスタリネーム手段)により、論理レジスタ番号を物理レジスタ番号に変換している。この技術では、後続のレジスタ書き込み命令に対し、実行中の先行のレジスタ書き込み命令が存在すると、論理レジスタ番号が同一でも、実行中の先行のレジスタ書き込み命令に割り付けられた物理レジスタ番号とは異なる物理レジスタを割り付けている。
【0003】
【特許文献1】特開昭61−241870号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
上記の従来技術の問題点は、物理レジスタのリソース不足を早期に招くことである。
【0005】
その理由は、後続のレジスタ書き込み命令に対し、実行中の先行のレジスタ書き込み命令が存在すると、論理レジスタ番号が同一でも、実行中の先行のレジスタ書き込み命令に割り付けられた物理レジスタ番号とは異なる物理レジスタを割り付けているからである。
【0006】
本発明の目的は、上記問題点を解決するベクトル命令管理回路、ベクトル処理装置、ベクトル命令管理方法、ベクトル処理方法、ベクトル命令管理プログラム、および、ベクトル処理プログラムを提供することである。
【課題を解決するための手段】
【0007】
本発明の第1のベクトル命令管理回路は、入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付け、同一論理ベクトルレジスタに書き込みを行う1以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦(あるいは、<)最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付け、後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦(あるいは、<)最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中のすべての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手段を有することを特徴とする。
【0008】
本発明の第2のベクトル命令管理回路は、論理ベクトルレジスタ番号対応に、割り付けられた物理ベクトルレジスタ番号、ベクトル長、命令が実行中であることを示す実行中フラグ、最後に実行中になったかどうかを示す最新フラグの組を1以上格納する実行中ベクトルレジスタ番号テーブルと、前記実行中ベクトルレジスタ番号テーブル内の実行中フラグを調べ、入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う実行中の先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付け、同一論理ベクトルレジスタに書き込みを行う1以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦(あるいは、<)前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付け、後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦(あるいは、<)前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手段とを有することを特徴とする。
【0009】
本発明のベクトル処理装置は、論理ベクトルレジスタ番号対応に、割り付けられた物理ベクトルレジスタ番号、ベクトル長、命令が実行中であることを示す実行中フラグ、最後に実行中になったかどうかを示す最新フラグの組を1以上格納する実行中ベクトルレジスタ番号テーブルと、前記実行中ベクトルレジスタ番号テーブル内の実行中を調べ、入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う実行中の先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付け、同一論理ベクトルレジスタに書き込みを行う1以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦(あるいは、<)前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付け、後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦(あるいは、<)前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付け、入力した後続ベクトル命令の論理レジスタ番号を割り付けた物理ベクトルレジスタ番号に置き換えて物理ベクトルレジスタ書き換え命令として出力する手段と、物理ベクトルレジスタ書き換え命令を順次実行し、物理ベクトルレジスタ書き換え命令で指令された内蔵する物理ベクトルレジスタを書き替えるベクトル回路とを有することを特徴とする。
【0010】
本発明の第1のベクトル命令管理方法は、入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付ける手順と、同一論理ベクトルレジスタに書き込みを行う1以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦(あるいは、<)最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付ける手順と、後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦(あるいは、<)最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手順と、を含むことを特徴とする。
【0011】
本発明の第2のベクトル命令管理方法は、論理ベクトルレジスタ番号対応に、割り付けられた物理ベクトルレジスタ番号、ベクトル長、命令が実行中であることを示す実行中フラグ、最後に実行中になったかどうかを示す最新フラグの組を1以上格納する実行中ベクトルレジスタ番号テーブル内の実行中フラグを調べ、(a)入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う実行中の先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付ける手順と、(b)同一論理ベクトルレジスタに書き込みを行う1以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦(あるいは、<)前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付ける手順と、(c)後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦(あるいは、<)前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手順と、を含むことを特徴とする。
【0012】
本発明のベクトル処理方法は、論理ベクトルレジスタ番号対応に、割り付けられた物理ベクトルレジスタ番号、ベクトル長、命令が実行中であることを示す実行中フラグ、最後に実行中になったかどうかを示す最新フラグの組を1以上格納する実行中ベクトルレジスタ番号テーブル内の実行中を調べ、(a)入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う実行中の先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付ける手順と、(b)同一論理ベクトルレジスタに書き込みを行う1以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦(あるいは、<)前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付ける手順と、(c)後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦(あるいは、<)前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手順と、(d)入力した後続ベクトル命令の論理レジスタ番号を割り付けた物理ベクトルレジスタ番号に置き換えて物理ベクトルレジスタ書き換え命令として出力する手順と、物理ベクトルレジスタ書き換え命令を順次実行し、物理ベクトルレジスタ書き換え命令で(e)指令された内蔵する物理ベクトルレジスタを書き替える手順と、を含むことを特徴とする。
【0013】
本発明の第1のベクトル命令管理プログラムは、入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付ける手順と、同一論理ベクトルレジスタに書き込みを行う1以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦(あるいは、<)最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付ける手順と、後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦(あるいは、<)最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手順と、をコンピュータに実行させることを特徴とする。
【0014】
本発明の第2のベクトル命令管理プログラムは、論理ベクトルレジスタ番号対応に、割り付けられた物理ベクトルレジスタ番号、ベクトル長、命令が実行中であることを示す実行中フラグ、最後に実行中になったかどうかを示す最新フラグの組を1以上格納する実行中ベクトルレジスタ番号テーブル内の実行中フラグを調べ、(a)入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う実行中の先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付ける手順と、(b)同一論理ベクトルレジスタに書き込みを行う1以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦(あるいは、<)前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付ける手順と、(c)後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦(あるいは、<)前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手順と、をコンピュータに実行させることを特徴とする。
【0015】
本発明のベクトル処理プログラムは、論理ベクトルレジスタ番号対応に、割り付けられた物理ベクトルレジスタ番号、ベクトル長、命令が実行中であることを示す実行中フラグ、最後に実行中になったかどうかを示す最新フラグの組を1以上格納する実行中ベクトルレジスタ番号テーブル内の実行中を調べ、(a)入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う実行中の先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付ける手順と、(b)同一論理ベクトルレジスタに書き込みを行う1以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦(あるいは、<)前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付ける手順と、(c)後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦(あるいは、<)前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手順と、(d)入力した後続ベクトル命令の論理レジスタ番号を割り付けた物理ベクトルレジスタ番号に置き換えて物理ベクトルレジスタ書き換え命令として出力する手順と、(e)物理ベクトルレジスタ書き換え命令を順次実行し、物理ベクトルレジスタ書き換え命令で指令された内蔵する物理ベクトルレジスタを書き替える手順と、をコンピュータに実行させることを特徴とする。
【発明の効果】
【0016】
本発明の効果は、物理レジスタのリソース不足を抑止できることである。
【0017】
その理由は、後続命令のマスクフラグ、および、先行ベクトル命令のベクトル長、後続命令のベクトル長を考慮して、論理ベクトルレジスタに物理レジスタ番号を割り付けるからである。
【発明を実施するための最良の形態】
【0018】
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
【0019】
本発明のベクトル処理装置は、ベクトル書き込み命令以外の処理も可能であるが、以降、主に、ベクトル書き込み命令の処理について説明する。
【0020】
図1は、本発明のベクトル処理装置の構成の1例を示すブロック図である。
【0021】
図1を参照すると、本発明のベクトル処理装置は、ベクトル命令発行手段101と、ベクトル命令管理部300と、ベクトル部200(たとえば、パイプライン構成)と、主記憶装置107(主記憶ではない記憶装置でも可能)とを含む。
【0022】
ベクトル命令管理部300は、リネーミング判定手段102と、実行中ベクトルレジスタ番号テーブル103と、ベクトルレジスタリネーミング手段104と、命令発行管理手段105と、命令格納手段106とを含む。ベクトル部200は、選択手段108と、ベクトルレジスタ群109と、選択手段110と、演算器群111と、ベクトルマスク発行手段112とを含む。ここで、ベクトル命令は、発行順に実行される。
【0023】
ベクトル命令発行手段101は、実行すべきベクトル命令を保持し、出力する。ベクトル命令は、ベクトル命令の種別(Code)と、付随情報としてベクトル長(VL)と、マスクフラグ(MF)と、ベクトルデータの書き込み対象である論理ベクトルレジスタを示す論理ベクトルレジスタ番号(VR)とを含む。ここで、ベクトルレジスタへの書き込みは、必ず、そのベクトルレジスタの先頭からデータを書き込む。すなわち、ベクトル長(VL)がベクトルレジスタの全長を示していない場合、ベクトルレジスタには、先頭から、ベクトル長で指定された長さのデータが書き込まれる。ベクトル命令発行手段101は、ベクトル読み出し命令等の他のベクトル命令も保持し、出力可能であるが、本発明の主旨には、かかわらないので、説明を省略する。
【0024】
リネーミング判定手段102は、ベクトル命令発行手段101から入力したベクトル命令を解読し、入力したベクトル命令(後続ベクトル命令と呼ぶ)と同一論理ベクトルレジスタへ書き込みを行う実行中のベクトル命令(先行ベクトル命令と呼ぶ)が存在するかどうかを判定する。
【0025】
実行中ベクトルレジスタ番号テーブル103は、ベクトル部200に発行された「物理ベクトルレジスタ書き込み命令」に対応する論理ベクトルレジスタ番号ごとの物理ベクトルレジスタ番号、ベクトル長、実行中フラグ(物理ベクトルレジスタへの変換が行われた際に点灯し、論理ベクトルレジスタ番号に割り当てられた物理ベクトルレジスタに対するベクトル書き込み命令が実行中であることを示す)、および、最新フラグ(ベクトル書き込み命令が最近(すなわち、最後に)にベクトル部200に入力されたかどうかを示す)を格納する。1つの論理ベクトルレジスタ番号に対し、複数の物理ベクトルレジスタ番号(それに対応するベクトル長、実行中フラグ、および、最新フラグ)を格納可能である。
【0026】
実行中フラグは、命令発行管理手段105からの対応する物理ベクトルレジスタ番号の消灯指示により消灯される。その契機は、ベクトルレジスタ群109の1つ、ないしは、複数の物理ベクトルレジスタに対する処理終了が命令発行管理手段105によって判定された時である。
【0027】
ベクトルレジスタリネーミング手段104は、論理ベクトルレジスタ番号を物理ベクトルレジスタ番号に割り付ける割り付け表(事前に設定されるアルゴリズム、論理でよい)を含む。ベクトルレジスタリネーミング手段104は、リネーミング判定手段102の判別結果、および、割り付け表に従い、命令内の論理ベクトルレジスタ番号を物理ベクトルレジスタ番号に置換し、出力する。割り付け表は、ある論理ベクトルレジスタ番号に割り付ける物理ベクトルレジスタ番号は、0〜3、別の論理ベクトルレジスタ番号に割り付ける物理ベクトルレジスタ番号は、4〜5、・・・のように、論理ベクトルレジスタ同士で、割り付けられる物理ベクトルレジスタ番号が重複しない内容とする。
【0028】
命令発行管理手段105は、ベクトル部200に対してベクトル命令の発行と終了とを管理し、ベクトルレジスタ群109の各物理ベクトルレジスタの命令実行の終了判定を行う。
【0029】
命令格納手段106は、ベクトル命令発行手段101からのベクトル書き込み命令、および、ベクトルレジスタリネーミング手段104からの物理ベクトルレジスタ番号を格納し、ベクトル書き込み命令の論理ベクトルレジスタ番号を、物理ベクトルレジスタ番号に置き換えて、「物理ベクトルレジスタ書き込み命令」として保持する(ベクトル書き込み命令以外のベクトル命令も保持する)。命令格納手段106は、命令発行管理手段105の指示により「物理ベクトルレジスタ書き込み命令」をベクトル部200に出力する。
【0030】
主記憶装置107は、ベクトルデータを保持し、命令格納手段106から出力されたベクトル命令が、ベクトルデータをベクトルレジスタへ転送する命令である場合、ベクトルデータを読み出し、ベクトルレジスタへ出力する。
【0031】
選択手段108は、主記憶装置107から出力されたベクトルデータ、または、演算器群111より出力された演算結果であるベクトルデータを入力し、命令格納手段106からのベクトル命令に付随するベクトルレジスタ番号に従いベクトルレジスタ群109の内の1つ、ないしは、複数のベクトルレジスタに対して出力する。当該ベクトル命令がマスク付命令である場合は、ベクトルマスク発行手段112よりベクトルマスクデータを入力し、当該ベクトル命令のデータに対してベクトルマスク処理を行い、ベクトルレジスタ群109に対して出力する。
【0032】
ベクトルレジスタ群109は、複数の物理ベクトルレジスタで構成される。ベクトルレジスタ群109は、命令格納手段106から出力されたベクトル命令に従い、ベクトル命令が「物理ベクトルレジスタ書き込み命令」である場合には、選択手段108より出力されたベクトルデータを格納し、命令が、「物理ベクトルレジスタ読み出し命令」である場合には、ベクトルデータの読み出しを行う。
【0033】
選択手段110は、ベクトルレジスタ群109から読み出されたベクトルデータを、命令格納手段106からのベクトル命令に従い、ベクトル命令が演算命令である場合は、演算器群111に対して出力し、ベクトル命令が他のベクトルレジスタへの移送命令である場合は、選択手段108に対して出力し、ベクトル命令が、主記憶装置107への格納命令である場合は主記憶装置107に対して出力する。
【0034】
演算器群111は、1つ、ないしは、複数の演算器で構成され、命令格納手段106からのベクトル命令が演算命令である場合には、選択手段110からのベクトルデータに対する演算を行い、演算結果ベクトルデータを選択手段108に出力する。
【0035】
ベクトルマスク発行手段112は、命令格納手段106より出力された物理ベクトルレジスタ番号置換後のベクトル命令が、マスク付命令(すなわち、マスクフラグがマスクすることを示す)であった場合に、ベクトルデータに対するマスクデータを選択手段108に出力する。
【0036】
次に、実行中ベクトルレジスタ番号テーブル103の詳細について説明する。
【0037】
図2は、実行中ベクトルレジスタ番号テーブル103の詳細を示すブロック図である。
【0038】
図2を参照すると、実行中ベクトルレジスタ番号テーブル103は、論理ベクトルレジスタ番号対応に、n+1個(n=0,1,・・・)の「物理ベクトルレジスタ番号、ベクトル長、実行中フラグ、最新フラグ」の組を格納する。
【0039】
次に、本発明を実施するための最良の形態の動作について図面を参照して説明する。
【0040】
まず、動作の概略について説明する。
【0041】
図3は、本発明を実施するための最良の形態の動作を示すフローチャートである。
【0042】
図3を参照すると、本発明のベクトル処理装置は、ベクトル書き込み命令(後続ベクトル命令)を発行すると(図3ステップS1)、同一論理ベクトルレジスタに書き込みを行う実行中のベクトル書き込み命令(先行ベクトル命令)が存在するかどうか判定する(ステップS2)。
【0043】
同一論理ベクトルレジスタに書き込みを行う先行ベクトル命令が存在しなければ(ステップS2/NO)、ベクトル処理装置は、事前に設定された割り付け表にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付ける(ステップS3)。ここで、他の論理ベクトルレジスタ番号に対する物理ベクトルレジスタ番号と重複しないように割り付ける。
次に、ベクトル処理装置は、割り付けられた物理ベクトルレジスタ番号に対応するベクトルレジスタ使用する後続ベクトル命令を実行する(ステップS4)。
【0044】
同一論理ベクトルレジスタに書き込みを行う1以上の先行ベクトル命令が存在すると(ステップS2/YES)、ベクトル処理装置は、後続ベクトル命令のマスクフラグを判定する(ステップS5)。また、ベクトル処理装置は、後続ベクトル命令のベクトル長と最新先行ベクトル命令(最近に実行中になった先行ベクトル命令)のベクトル長とを比較する(ステップS6)。ステップS5と、ステップS6との順序は、どちらでもよい。
【0045】
後続ベクトル命令のマスクフラグが有効を示しているか(ステップS5/YES)、または、後続ベクトル命令のベクトル長≦(あるいは、<でもよい)最新先行ベクトル命令のベクトル長であると(ステップS6/YES)、ベクトル処理装置は、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付ける(ステップS7)。
【0046】
後続ベクトル命令のマスクフラグが有効を示しておらず(ステップS5/NO)、かつ、後続ベクトル命令のベクトル長≦(あるいは、<)最新先行ベクトル命令のベクトル長でないと(ステップS6/NO)、ベクトル処理装置は、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中のすべての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける(ステップS8)。また、ベクトル処理装置は、他の論理ベクトルレジスタ番号に対する物理ベクトルレジスタ番号と重複しないように割り付ける。
【0047】
ベクトル処理装置は、ステップS7、ステップS8の次に、割り付けられた物理ベクトルレジスタ番号に対応するベクトルレジスタ使用する後続ベクトル命令を実行する(ステップS4)。
【0048】
ある論理ベクトルレジスタ番号に関し、実行中の先行ベクトル命令の数が、実行中ベクトルレジスタ番号テーブル103に保持可能な限度の数になった場合には、その論理ベクトルレジスタ番号で示されるベクトルレジスタに書き込みを行う後続ベクトル命令の発行を抑止する構成が可能である。
【0049】
次に、動作の詳細について説明する。
【0050】
ベクトル命令発行手段101は、順次に、ベクトル命令をリネーミング判定手段102に信号線121を介し出力する。また、ベクトル命令発行手段101は、順次に、ベクトル命令のベクトル命令の種別(Code)を命令格納手段106に信号線120を介し出力する。
【0051】
リネーミング判定手段102は、まず、ベクトル命令の種別、および、論理ベクトルレジスタ番号を判別する。当該ベクトル命令がベクトルレジスタに書き込みを行うベクトルレジスタ書き込み命令(後続ベクトル命令)の場合は、リネーミング判定手段102は、後続ベクトル命令の論理ベクトル番号を信号線122を介し実行中ベクトルレジスタ番号テーブル103に出力する。
【0052】
実行中ベクトルレジスタ番号テーブル103は、リネーミング判定手段102からの論理ベクトルレジスタ番号に対応する物理ベクトルレジスタ番号(および、それに対応するベクトル長、実行中フラグ、および、最新フラグ)を信号線123を介し出力する。
【0053】
リネーミング判定手段102は、実行中ベクトルレジスタ番号テーブル103からの出力中に、実行中フラグが実行中を示すもの(すなわち、実行中の先行ベクトル命令)があるかどうかを判別する。リネーミング判定手段102は、実行中フラグが実行中を示すものが存在しなければ、ベクトルレジスタリネーミング手段104に、後続ベクトル命令の論理ベクトルレジスタ番号、ベクトル長、マスクフラグ、および、「実行中無し情報」を信号線124を介し出力する。
【0054】
また、リネーミング判定手段102は、実行中フラグが実行中を示すものが存在すれば、その中で、最新フラグが最新を示している(すなわち、最新先行ベクトル命令の)物理ベクトルレジスタ番号(および、それに対応するベクトル長)を選択する。次に、リネーミング判定手段102は、後続ベクトル命令のマスクフラグを調べ、マスクフラグが有効であれば、後続ベクトル命令の論理ベクトルレジスタ番号、ベクトル長、マスクフラグ、選択した最新先行ベクトル命令の物理ベクトルレジスタ番号、および、最新先行ベクトル命令の物理ベクトルレジスタ番号を使用することを示す「同一番号使用指示」を信号線124を介し出力する。
【0055】
また、リネーミング判定手段102は、後続ベクトル命令のマスクフラグが有効でなければ、後続ベクトル命令のベクトル長と、選択した先行ベクトル命令のベクトル長との比較を行う。リネーミング判定手段102は、比較の結果、後続ベクトル命令のベクトル長≦(あるいは、<でもよい)最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号、ベクトル長、マスクフラグ、最新先行ベクトル命令の物理ベクトルレジスタ番号、および、最新先行ベクトル命令の物理ベクトルレジスタ番号を使用することを示す「同一番号使用指示」を信号線124を介し出力する。
【0056】
また、リネーミング判定手段102は、比較の結果、後続ベクトル命令のベクトル長≦(あるいは、<でもよい)最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号、ベクトル長、マスクフラグ、その論理ベクトルレジスタ番号に割り当てられた実行中の全ての先行ベクトル命令の物理ベクトルレジスタ番号、および、先行ベクトル命令の物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を使用することを示す「同一番号使用不可指示」を信号線124を介し出力する。
【0057】
ベクトルレジスタリネーミング手段104は、信号線124から後続ベクトル命令の論理ベクトルレジスタ番号、ベクトル長、マスクフラグ、および、「実行中無し情報」を入力すると、割り付け表に基づいて、後続ベクトル命令の論理ベクトルレジスタ番号を物理ベクトルレジスタ番号に変換する。次に、ベクトルレジスタリネーミング手段104は、後続ベクトル命令の論理ベクトルレジスタ番号、ベクトル長、マスクフラグ、および、変換した物理ベクトルレジスタ番号を信号線125を介して出力する。
【0058】
また、ベクトルレジスタリネーミング手段104は、信号線124から後続ベクトル命令の論理ベクトルレジスタ番号、最新先行ベクトル命令の物理ベクトルレジスタ番号、および、「同一番号使用指示」を入力すると、後続ベクトル命令の論理ベクトルレジスタ番号、ベクトル長、マスクフラグ、および、最新先行ベクトル命令の物理ベクトルレジスタ番号を信号線125を介して出力する。
【0059】
また、ベクトルレジスタリネーミング手段104は、信号線124から後続ベクトル命令の論理ベクトルレジスタ番号、その論理ベクトルレジスタ番号に割り当てられた実行中の全ての先行ベクトル命令の物理ベクトルレジスタ番号、および、「同一番号使用不可指示」を入力すると、割り付け表に基づいて、その論理ベクトルレジスタ番号に割り当てられた実行中の全てのベクトル命令の物理ベクトルレジスタ番号と同一とならないように後続ベクトル命令の論理ベクトルレジスタ番号を物理ベクトルレジスタ番号に変換する。次に、ベクトルレジスタリネーミング手段104は、後続ベクトル命令の論理ベクトルレジスタ番号、ベクトル長、および、変換した物理ベクトルレジスタ番号を信号線125を介して出力する。
【0060】
命令発行管理手段105は、信号線125を介して、「実行中無し情報」、「同一番号使用指示」、または、「同一番号使用不可指示」を入力すると、「登録指示」を実行中ベクトルレジスタ番号テーブル103、および、命令格納手段106に信号線126を介し出力する。
【0061】
実行中ベクトルレジスタ番号テーブル103は、信号線126から「登録指示」を入力すると、信号線125から後続ベクトル命令の論理ベクトルレジスタ番号、ベクトル長、および、物理ベクトルレジスタ番号を入力し、論理ベクトルレジスタ番号に対応する領域にベクトル長、および、物理ベクトルレジスタ番号を、実行中を示す実行中フラグ(実行中を示すように)、および、最新を示す最新フラグ(最新を示すように)とともに格納する。この時、同一論理ベクトルレジスタ番号に最新を示す最新フラグがすでに存在すれば、実行中ベクトルレジスタ番号テーブル103は、その最新フラグが最新を示さないように変更する。
【0062】
命令格納手段106は、信号線126から「登録指示」を入力すると、後続ベクトル命令の種別(Code)を信号線120を介して入力し、対応するベクトル長、マスクフラグ、および、変換された物理ベクトルレジスタ番号を信号線125を介して入力し、「物理ベクトルレジスタ書き込み命令」として内部に格納する。ここで、命令格納手段106は、後続ベクトル命令の種別(Code)を、リネーミング判定手段102、ベクトルレジスタリネーミング手段104を経由して入力する構成をとることも可能である。
【0063】
命令発行管理手段105は、ベクトル部200の状況を信号線128を介し監視し、ベクトル部200がベクトル命令の入力を可能であれば、命令格納手段106に、「命令出力指示」を信号線127を介して出力する。
【0064】
命令格納手段106は、「命令出力指示」を入力すると、「物理ベクトルレジスタ書き込み命令」等のベクトル命令をベクトル部200に信号線129を介して出力する。
【0065】
ベクトル部200により入力される「物理ベクトルレジスタ書き込み命令」は、主記憶装置107からのベクトルデータ転送の場合と、ベクトルレジスタ群109のベクトルレジスタに格納されているベクトルデータを演算、ないしは、転送する場合とがある。
【0066】
命令格納手段106からの「物理ベクトルレジスタ書き込み命令」が、主記憶装置107に格納されているベクトルデータをベクトルレジスタ群109へ転送する命令であると、ベクトル部200は、主記憶装置107に格納されているベクトルデータを信号線130を介し選択手段108に出力する。選択手段108は、「物理ベクトルレジスタ書き込み命令」に付随している物理のベクトルレジスタ番号の値にしたがってベクトルレジスタ群109の内の1つないしは複数のベクトルレジスタに対してベクトルデータを出力する。
【0067】
命令格納手段106からの「物理ベクトルレジスタ書き込み命令」が、ベクトルレジスタ群109に格納されているベクトルデータに対する演算命令であると、ベクトル部200は、ベクトルレジスタ群109の1つないしは複数のベクトルレジスタよりベクトルデータを読み出し信号線132を介し選択手段110に出力する。選択手段110は、「物理ベクトルレジスタ書き込み命令」にしたがい、ベクトルデータを演算器群111のいずれかに振り分けて信号線133を介し出力する。演算器群111は、演算処理を行った結果のベクトルデータを選択手段108に対して信号線134を介して出力する。選択回路108は、「物理ベクトルレジスタ書き込み命令」に付随している物理ベクトルレジスタ番号にしたがってベクトルレジスタ群109の内の1つないしは複数のベクトルレジスタに対してベクトルデータを信号線131を介して出力する。
【0068】
命令格納手段106からの「物理ベクトルレジスタ書き込み命令」が、ベクトルレジスタ群109に格納されているベクトルデータを異なるベクトルレジスタに転送する命令の場合は、ベクトル部200は、ベクトルレジスタ群109の内1つないしは複数のベクトルレジスタよりベクトルデータを読み出し選択手段110に信号線132を介し出力する。選択手段110は、ベクトルデータを選択手段108に信号線135を介して出力する。選択手段108では、「物理ベクトルレジスタ書き込み命令」に付随している物理のベクトルレジスタ番号の値にしたがってベクトルレジスタ群109の内の1つないしは複数のベクトルレジスタに対してベクトルデータを信号線131を介して出力する。
【0069】
命令格納手段106からの「物理ベクトルレジスタ書き込み命令」が、転送命令、または、演算命令であり、かつ、マスクフラグが有効であると、ベクトル部200は、ベクトルマスク発行手段112から信号線136を介しベクトルマスクデータを選択手段108に出力する。選択手段108は、信号線130、信号線135、または、信号線134から入力したベクトルデータを出力し、かつ、信号線136から入力したベクトルマスクデータからマスク有効の部分(たとえば、8バイト)ごとの書き込み有効信号を出力する。ベクトルレジスタ群109は、書き込み有効信号な対応する部分のみにベクトルデータを書き込む。
【0070】
命令発行管理手段105は、ベクトル部200の「物理ベクトルレジスタ書き込み命令」によるベクトルレジスタ群109の内1つ、ないしは、複数のベクトルレジスタに対する書き込みの完了を監視する。命令発行管理手段105は、完了を検出すると、完了した「物理ベクトルレジスタ書き込み命令」の論理ベクトルレジスタ番号、および、対応する物理ベクトルレジスタ番号、および、「消去指示」を実行中ベクトルレジスタ番号テーブル103に信号線126を介して出力する。
【0071】
実行中ベクトルレジスタ番号テーブル103は、「消去指示」を入力すると、命令発行管理手段105は、「終了情報」を入力すると、論理ベクトルレジスタ番号、および、対応する物理ベクトルレジスタ番号に対応する実行中フラグを実行中でないことを示すように消灯する。
【0072】
また、ベクトル命令管理部300における制御をファームウェアで実施する構成も可能である。
【0073】
以上説明したように、本発明を実施するための最良の形態は、物理ベクトルレジスタのリソース不足を抑止できるという効果を奏する。
【0074】
なぜなら、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦(あるいは、<)最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付けるからである。その結果、本発明を実施するための最良の形態は、物理ベクトルレジスタの個数を節約して使用できる。
【図面の簡単な説明】
【0075】
【図1】本発明を実施するための最良の形態の構成を示すブロック図。
【図2】実行中ベクトルレジスタ番号テーブルの詳細を示すブロック図。
【図3】本発明を実施するための最良の形態の動作を示すフローチャート。
【符号の説明】
【0076】
101 ベクトル命令発行手段
102 リネーミング判定手段
103 実行中ベクトルレジスタ番号テーブル
104 ベクトルレジスタリネーミング手段
105 命令発行管理手段
106 命令格納手段
107 主記憶装置
108 選択手段
109 ベクトルレジスタ群
110 選択手段
111 演算器群
112 ベクトルマスク発行手段
120、121、122、123、124、125 信号線
126、127、128、129、130、131 信号線
132、133、134、135、136 信号線

【特許請求の範囲】
【請求項1】
入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付け、同一論理ベクトルレジスタに書き込みを行う1以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦(あるいは、<)最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付け、後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦(あるいは、<)最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中のすべての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手段を有することを特徴とするベクトル命令管理回路。
【請求項2】
論理ベクトルレジスタ番号対応に、割り付けられた物理ベクトルレジスタ番号、ベクトル長、命令が実行中であることを示す実行中フラグ、最後に実行中になったかどうかを示す最新フラグの組を1以上格納する実行中ベクトルレジスタ番号テーブルと、
前記実行中ベクトルレジスタ番号テーブル内の実行中フラグを調べ、
入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う実行中の先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付け、
同一論理ベクトルレジスタに書き込みを行う1以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦(あるいは、<)前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付け、
後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦(あるいは、<)前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手段とを有することを特徴とするベクトル命令管理回路。
【請求項3】
論理ベクトルレジスタ番号対応に、割り付けられた物理ベクトルレジスタ番号、ベクトル長、命令が実行中であることを示す実行中フラグ、最後に実行中になったかどうかを示す最新フラグの組を1以上格納する実行中ベクトルレジスタ番号テーブルと、
前記実行中ベクトルレジスタ番号テーブル内の実行中を調べ、
入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う実行中の先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付け、
同一論理ベクトルレジスタに書き込みを行う1以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦(あるいは、<)前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付け、
後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦(あるいは、<)前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付け、
入力した後続ベクトル命令の論理レジスタ番号を割り付けた物理ベクトルレジスタ番号に置き換えて物理ベクトルレジスタ書き換え命令として出力する手段と、
物理ベクトルレジスタ書き換え命令を順次実行し、物理ベクトルレジスタ書き換え命令で指令された内蔵する物理ベクトルレジスタを書き替えるベクトル回路とを有することを特徴とするベクトル処理装置。
【請求項4】
入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付ける手順と、
同一論理ベクトルレジスタに書き込みを行う1以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦(あるいは、<)最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付ける手順と、
後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦(あるいは、<)最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手順と、
を含むことを特徴とするベクトル命令管理方法。
【請求項5】
論理ベクトルレジスタ番号対応に、割り付けられた物理ベクトルレジスタ番号、ベクトル長、命令が実行中であることを示す実行中フラグ、最後に実行中になったかどうかを示す最新フラグの組を1以上格納する実行中ベクトルレジスタ番号テーブル内の実行中フラグを調べ、
(a)入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う実行中の先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付ける手順と、
(b)同一論理ベクトルレジスタに書き込みを行う1以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦(あるいは、<)前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付ける手順と、
(c)後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦(あるいは、<)前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手順と、
を含むことを特徴とするベクトル命令管理方法。
【請求項6】
論理ベクトルレジスタ番号対応に、割り付けられた物理ベクトルレジスタ番号、ベクトル長、命令が実行中であることを示す実行中フラグ、最後に実行中になったかどうかを示す最新フラグの組を1以上格納する実行中ベクトルレジスタ番号テーブル内の実行中を調べ、
(a)入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う実行中の先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付ける手順と、
(b)同一論理ベクトルレジスタに書き込みを行う1以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦(あるいは、<)前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付ける手順と、
(c)後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦(あるいは、<)前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手順と、
(d)入力した後続ベクトル命令の論理レジスタ番号を割り付けた物理ベクトルレジスタ番号に置き換えて物理ベクトルレジスタ書き換え命令として出力する手順と、
物理ベクトルレジスタ書き換え命令を順次実行し、物理ベクトルレジスタ書き換え命令で(e)指令された内蔵する物理ベクトルレジスタを書き替える手順と、
を含むことを特徴とするベクトル処理方法。
【請求項7】
入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付ける手順と、
同一論理ベクトルレジスタに書き込みを行う1以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦(あるいは、<)最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付ける手順と、
後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦(あるいは、<)最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手順と、
をコンピュータに実行させることを特徴とするベクトル命令管理プログラム。
【請求項8】
論理ベクトルレジスタ番号対応に、割り付けられた物理ベクトルレジスタ番号、ベクトル長、命令が実行中であることを示す実行中フラグ、最後に実行中になったかどうかを示す最新フラグの組を1以上格納する実行中ベクトルレジスタ番号テーブル内の実行中フラグを調べ、
(a)入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う実行中の先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付ける手順と、
(b)同一論理ベクトルレジスタに書き込みを行う1以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦(あるいは、<)前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付ける手順と、
(c)後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦(あるいは、<)前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手順と、
をコンピュータに実行させることを特徴とするベクトル命令管理プログラム。
【請求項9】
論理ベクトルレジスタ番号対応に、割り付けられた物理ベクトルレジスタ番号、ベクトル長、命令が実行中であることを示す実行中フラグ、最後に実行中になったかどうかを示す最新フラグの組を1以上格納する実行中ベクトルレジスタ番号テーブル内の実行中を調べ、
(a)入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う実行中の先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付ける手順と、
(b)同一論理ベクトルレジスタに書き込みを行う1以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦(あるいは、<)前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付ける手順と、
(c)後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦(あるいは、<)前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手順と、
(d)入力した後続ベクトル命令の論理レジスタ番号を割り付けた物理ベクトルレジスタ番号に置き換えて物理ベクトルレジスタ書き換え命令として出力する手順と、
(e)物理ベクトルレジスタ書き換え命令を順次実行し、物理ベクトルレジスタ書き換え命令で指令された内蔵する物理ベクトルレジスタを書き替える手順と、
をコンピュータに実行させることを特徴とするベクトル処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2006−268168(P2006−268168A)
【公開日】平成18年10月5日(2006.10.5)
【国際特許分類】
【出願番号】特願2005−82330(P2005−82330)
【出願日】平成17年3月22日(2005.3.22)
【出願人】(000168285)エヌイーシーコンピュータテクノ株式会社 (572)
【Fターム(参考)】