(57)【要約】【課題】  物理ベクトルレジスタのリソース不足を抑止する。【解決手段】  リネーミング判定手段１０２は、ベクトル書き込み命令（後続ベクトル命令）を入力すると、実行中ベクトルレジスタ番号テーブル１０３を参照し、同一論理ベクトルレジスタに書き込みを行う実行中のベクトル書き込み命令（先行ベクトル命令）が存在するかどうか判定し、同一論理ベクトルレジスタに書き込みを行う１以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグを判定する。後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦最新先行ベクトル命令のベクトル長であると、ベクトルレジスタリネーミング手段１０４は、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付ける。【選択図】      図１
2006268168.tif 000002
【特許請求の範囲】
【請求項１】
入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付け、同一論理ベクトルレジスタに書き込みを行う１以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦（あるいは、＜）最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付け、後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦（あるいは、＜）最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中のすべての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手段を有することを特徴とするベクトル命令管理回路。
【請求項２】
論理ベクトルレジスタ番号対応に、割り付けられた物理ベクトルレジスタ番号、ベクトル長、命令が実行中であることを示す実行中フラグ、最後に実行中になったかどうかを示す最新フラグの組を１以上格納する実行中ベクトルレジスタ番号テーブルと、
前記実行中ベクトルレジスタ番号テーブル内の実行中フラグを調べ、
入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う実行中の先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付け、
同一論理ベクトルレジスタに書き込みを行う１以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦（あるいは、＜）前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付け、
後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦（あるいは、＜）前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手段とを有することを特徴とするベクトル命令管理回路。
【請求項３】
論理ベクトルレジスタ番号対応に、割り付けられた物理ベクトルレジスタ番号、ベクトル長、命令が実行中であることを示す実行中フラグ、最後に実行中になったかどうかを示す最新フラグの組を１以上格納する実行中ベクトルレジスタ番号テーブルと、
前記実行中ベクトルレジスタ番号テーブル内の実行中を調べ、
入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う実行中の先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付け、
同一論理ベクトルレジスタに書き込みを行う１以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦（あるいは、＜）前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付け、
後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦（あるいは、＜）前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付け、
入力した後続ベクトル命令の論理レジスタ番号を割り付けた物理ベクトルレジスタ番号に置き換えて物理ベクトルレジスタ書き換え命令として出力する手段と、
物理ベクトルレジスタ書き換え命令を順次実行し、物理ベクトルレジスタ書き換え命令で指令された内蔵する物理ベクトルレジスタを書き替えるベクトル回路とを有することを特徴とするベクトル処理装置。
【請求項４】
入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付ける手順と、
同一論理ベクトルレジスタに書き込みを行う１以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦（あるいは、＜）最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付ける手順と、
後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦（あるいは、＜）最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手順と、
を含むことを特徴とするベクトル命令管理方法。
【請求項５】
論理ベクトルレジスタ番号対応に、割り付けられた物理ベクトルレジスタ番号、ベクトル長、命令が実行中であることを示す実行中フラグ、最後に実行中になったかどうかを示す最新フラグの組を１以上格納する実行中ベクトルレジスタ番号テーブル内の実行中フラグを調べ、
（ａ）入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う実行中の先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付ける手順と、
（ｂ）同一論理ベクトルレジスタに書き込みを行う１以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦（あるいは、＜）前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付ける手順と、
（ｃ）後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦（あるいは、＜）前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手順と、
を含むことを特徴とするベクトル命令管理方法。
【請求項６】
論理ベクトルレジスタ番号対応に、割り付けられた物理ベクトルレジスタ番号、ベクトル長、命令が実行中であることを示す実行中フラグ、最後に実行中になったかどうかを示す最新フラグの組を１以上格納する実行中ベクトルレジスタ番号テーブル内の実行中を調べ、
（ａ）入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う実行中の先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付ける手順と、
（ｂ）同一論理ベクトルレジスタに書き込みを行う１以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦（あるいは、＜）前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付ける手順と、
（ｃ）後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦（あるいは、＜）前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手順と、
（ｄ）入力した後続ベクトル命令の論理レジスタ番号を割り付けた物理ベクトルレジスタ番号に置き換えて物理ベクトルレジスタ書き換え命令として出力する手順と、
物理ベクトルレジスタ書き換え命令を順次実行し、物理ベクトルレジスタ書き換え命令で（ｅ）指令された内蔵する物理ベクトルレジスタを書き替える手順と、
を含むことを特徴とするベクトル処理方法。
【請求項７】
入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付ける手順と、
同一論理ベクトルレジスタに書き込みを行う１以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦（あるいは、＜）最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付ける手順と、
後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦（あるいは、＜）最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手順と、
をコンピュータに実行させることを特徴とするベクトル命令管理プログラム。
【請求項８】
論理ベクトルレジスタ番号対応に、割り付けられた物理ベクトルレジスタ番号、ベクトル長、命令が実行中であることを示す実行中フラグ、最後に実行中になったかどうかを示す最新フラグの組を１以上格納する実行中ベクトルレジスタ番号テーブル内の実行中フラグを調べ、
（ａ）入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う実行中の先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付ける手順と、
（ｂ）同一論理ベクトルレジスタに書き込みを行う１以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦（あるいは、＜）前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付ける手順と、
（ｃ）後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦（あるいは、＜）前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手順と、
をコンピュータに実行させることを特徴とするベクトル命令管理プログラム。
【請求項９】
論理ベクトルレジスタ番号対応に、割り付けられた物理ベクトルレジスタ番号、ベクトル長、命令が実行中であることを示す実行中フラグ、最後に実行中になったかどうかを示す最新フラグの組を１以上格納する実行中ベクトルレジスタ番号テーブル内の実行中を調べ、
（ａ）入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う実行中の先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付ける手順と、
（ｂ）同一論理ベクトルレジスタに書き込みを行う１以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦（あるいは、＜）前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付ける手順と、
（ｃ）後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦（あるいは、＜）前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手順と、
（ｄ）入力した後続ベクトル命令の論理レジスタ番号を割り付けた物理ベクトルレジスタ番号に置き換えて物理ベクトルレジスタ書き換え命令として出力する手順と、
（ｅ）物理ベクトルレジスタ書き換え命令を順次実行し、物理ベクトルレジスタ書き換え命令で指令された内蔵する物理ベクトルレジスタを書き替える手順と、
をコンピュータに実行させることを特徴とするベクトル処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ベクトル命令管理回路、ベクトル処理装置、ベクトル命令管理方法、ベクトル処理方法、ベクトル命令管理プログラム、および、ベクトル処理プログラムに関し、特に、論理ベクトルレジスタ番号から物理ベクトルレジスタ番号へ変換するベクトル命令管理回路、ベクトル処理装置、ベクトル命令管理方法、ベクトル処理方法、ベクトル命令管理プログラム、および、ベクトル処理プログラムに関する。
【背景技術】
【０００２】
特許文献１では、論理レジスタ番号を論理・物理変換ユニット（ベクトルレジスタリネーム手段）により、論理レジスタ番号を物理レジスタ番号に変換している。この技術では、後続のレジスタ書き込み命令に対し、実行中の先行のレジスタ書き込み命令が存在すると、論理レジスタ番号が同一でも、実行中の先行のレジスタ書き込み命令に割り付けられた物理レジスタ番号とは異なる物理レジスタを割り付けている。
【０００３】
【特許文献１】特開昭６１−２４１８７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記の従来技術の問題点は、物理レジスタのリソース不足を早期に招くことである。
【０００５】
その理由は、後続のレジスタ書き込み命令に対し、実行中の先行のレジスタ書き込み命令が存在すると、論理レジスタ番号が同一でも、実行中の先行のレジスタ書き込み命令に割り付けられた物理レジスタ番号とは異なる物理レジスタを割り付けているからである。
【０００６】
本発明の目的は、上記問題点を解決するベクトル命令管理回路、ベクトル処理装置、ベクトル命令管理方法、ベクトル処理方法、ベクトル命令管理プログラム、および、ベクトル処理プログラムを提供することである。
【課題を解決するための手段】
【０００７】
本発明の第１のベクトル命令管理回路は、入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付け、同一論理ベクトルレジスタに書き込みを行う１以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦（あるいは、＜）最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付け、後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦（あるいは、＜）最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中のすべての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手段を有することを特徴とする。
【０００８】
本発明の第２のベクトル命令管理回路は、論理ベクトルレジスタ番号対応に、割り付けられた物理ベクトルレジスタ番号、ベクトル長、命令が実行中であることを示す実行中フラグ、最後に実行中になったかどうかを示す最新フラグの組を１以上格納する実行中ベクトルレジスタ番号テーブルと、前記実行中ベクトルレジスタ番号テーブル内の実行中フラグを調べ、入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う実行中の先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付け、同一論理ベクトルレジスタに書き込みを行う１以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦（あるいは、＜）前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付け、後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦（あるいは、＜）前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手段とを有することを特徴とする。
【０００９】
本発明のベクトル処理装置は、論理ベクトルレジスタ番号対応に、割り付けられた物理ベクトルレジスタ番号、ベクトル長、命令が実行中であることを示す実行中フラグ、最後に実行中になったかどうかを示す最新フラグの組を１以上格納する実行中ベクトルレジスタ番号テーブルと、前記実行中ベクトルレジスタ番号テーブル内の実行中を調べ、入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う実行中の先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付け、同一論理ベクトルレジスタに書き込みを行う１以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦（あるいは、＜）前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付け、後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦（あるいは、＜）前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付け、入力した後続ベクトル命令の論理レジスタ番号を割り付けた物理ベクトルレジスタ番号に置き換えて物理ベクトルレジスタ書き換え命令として出力する手段と、物理ベクトルレジスタ書き換え命令を順次実行し、物理ベクトルレジスタ書き換え命令で指令された内蔵する物理ベクトルレジスタを書き替えるベクトル回路とを有することを特徴とする。
【００１０】
本発明の第１のベクトル命令管理方法は、入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付ける手順と、同一論理ベクトルレジスタに書き込みを行う１以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦（あるいは、＜）最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付ける手順と、後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦（あるいは、＜）最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手順と、を含むことを特徴とする。
【００１１】
本発明の第２のベクトル命令管理方法は、論理ベクトルレジスタ番号対応に、割り付けられた物理ベクトルレジスタ番号、ベクトル長、命令が実行中であることを示す実行中フラグ、最後に実行中になったかどうかを示す最新フラグの組を１以上格納する実行中ベクトルレジスタ番号テーブル内の実行中フラグを調べ、（ａ）入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う実行中の先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付ける手順と、（ｂ）同一論理ベクトルレジスタに書き込みを行う１以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦（あるいは、＜）前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付ける手順と、（ｃ）後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦（あるいは、＜）前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手順と、を含むことを特徴とする。
【００１２】
本発明のベクトル処理方法は、論理ベクトルレジスタ番号対応に、割り付けられた物理ベクトルレジスタ番号、ベクトル長、命令が実行中であることを示す実行中フラグ、最後に実行中になったかどうかを示す最新フラグの組を１以上格納する実行中ベクトルレジスタ番号テーブル内の実行中を調べ、（ａ）入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う実行中の先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付ける手順と、（ｂ）同一論理ベクトルレジスタに書き込みを行う１以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦（あるいは、＜）前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付ける手順と、（ｃ）後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦（あるいは、＜）前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手順と、（ｄ）入力した後続ベクトル命令の論理レジスタ番号を割り付けた物理ベクトルレジスタ番号に置き換えて物理ベクトルレジスタ書き換え命令として出力する手順と、物理ベクトルレジスタ書き換え命令を順次実行し、物理ベクトルレジスタ書き換え命令で（ｅ）指令された内蔵する物理ベクトルレジスタを書き替える手順と、を含むことを特徴とする。
【００１３】
本発明の第１のベクトル命令管理プログラムは、入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付ける手順と、同一論理ベクトルレジスタに書き込みを行う１以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦（あるいは、＜）最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付ける手順と、後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦（あるいは、＜）最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手順と、をコンピュータに実行させることを特徴とする。
【００１４】
本発明の第２のベクトル命令管理プログラムは、論理ベクトルレジスタ番号対応に、割り付けられた物理ベクトルレジスタ番号、ベクトル長、命令が実行中であることを示す実行中フラグ、最後に実行中になったかどうかを示す最新フラグの組を１以上格納する実行中ベクトルレジスタ番号テーブル内の実行中フラグを調べ、（ａ）入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う実行中の先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付ける手順と、（ｂ）同一論理ベクトルレジスタに書き込みを行う１以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦（あるいは、＜）前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付ける手順と、（ｃ）後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦（あるいは、＜）前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手順と、をコンピュータに実行させることを特徴とする。
【００１５】
本発明のベクトル処理プログラムは、論理ベクトルレジスタ番号対応に、割り付けられた物理ベクトルレジスタ番号、ベクトル長、命令が実行中であることを示す実行中フラグ、最後に実行中になったかどうかを示す最新フラグの組を１以上格納する実行中ベクトルレジスタ番号テーブル内の実行中を調べ、（ａ）入力した後続ベクトル命令により書き込みが指定された論理ベクトルレジスタと同一論理ベクトルレジスタに書き込みを行う実行中の先行ベクトル命令が存在しなければ、事前に設定された論理にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付ける手順と、（ｂ）同一論理ベクトルレジスタに書き込みを行う１以上の先行ベクトル命令が存在すると、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦（あるいは、＜）前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付ける手順と、（ｃ）後続ベクトル命令のマスクフラグが有効を示しておらず、かつ、後続ベクトル命令のベクトル長≦（あるいは、＜）前記実行中ベクトルレジスタ番号テーブル内の最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中の全ての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける手順と、（ｄ）入力した後続ベクトル命令の論理レジスタ番号を割り付けた物理ベクトルレジスタ番号に置き換えて物理ベクトルレジスタ書き換え命令として出力する手順と、（ｅ）物理ベクトルレジスタ書き換え命令を順次実行し、物理ベクトルレジスタ書き換え命令で指令された内蔵する物理ベクトルレジスタを書き替える手順と、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１６】
本発明の効果は、物理レジスタのリソース不足を抑止できることである。
【００１７】
その理由は、後続命令のマスクフラグ、および、先行ベクトル命令のベクトル長、後続命令のベクトル長を考慮して、論理ベクトルレジスタに物理レジスタ番号を割り付けるからである。
【発明を実施するための最良の形態】
【００１８】
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００１９】
本発明のベクトル処理装置は、ベクトル書き込み命令以外の処理も可能であるが、以降、主に、ベクトル書き込み命令の処理について説明する。
【００２０】
図１は、本発明のベクトル処理装置の構成の１例を示すブロック図である。
【００２１】
図１を参照すると、本発明のベクトル処理装置は、ベクトル命令発行手段１０１と、ベクトル命令管理部３００と、ベクトル部２００（たとえば、パイプライン構成）と、主記憶装置１０７（主記憶ではない記憶装置でも可能）とを含む。
【００２２】
ベクトル命令管理部３００は、リネーミング判定手段１０２と、実行中ベクトルレジスタ番号テーブル１０３と、ベクトルレジスタリネーミング手段１０４と、命令発行管理手段１０５と、命令格納手段１０６とを含む。ベクトル部２００は、選択手段１０８と、ベクトルレジスタ群１０９と、選択手段１１０と、演算器群１１１と、ベクトルマスク発行手段１１２とを含む。ここで、ベクトル命令は、発行順に実行される。
【００２３】
ベクトル命令発行手段１０１は、実行すべきベクトル命令を保持し、出力する。ベクトル命令は、ベクトル命令の種別（Ｃｏｄｅ）と、付随情報としてベクトル長（ＶＬ）と、マスクフラグ（ＭＦ）と、ベクトルデータの書き込み対象である論理ベクトルレジスタを示す論理ベクトルレジスタ番号（ＶＲ）とを含む。ここで、ベクトルレジスタへの書き込みは、必ず、そのベクトルレジスタの先頭からデータを書き込む。すなわち、ベクトル長（ＶＬ）がベクトルレジスタの全長を示していない場合、ベクトルレジスタには、先頭から、ベクトル長で指定された長さのデータが書き込まれる。ベクトル命令発行手段１０１は、ベクトル読み出し命令等の他のベクトル命令も保持し、出力可能であるが、本発明の主旨には、かかわらないので、説明を省略する。
【００２４】
リネーミング判定手段１０２は、ベクトル命令発行手段１０１から入力したベクトル命令を解読し、入力したベクトル命令（後続ベクトル命令と呼ぶ）と同一論理ベクトルレジスタへ書き込みを行う実行中のベクトル命令（先行ベクトル命令と呼ぶ）が存在するかどうかを判定する。
【００２５】
実行中ベクトルレジスタ番号テーブル１０３は、ベクトル部２００に発行された「物理ベクトルレジスタ書き込み命令」に対応する論理ベクトルレジスタ番号ごとの物理ベクトルレジスタ番号、ベクトル長、実行中フラグ（物理ベクトルレジスタへの変換が行われた際に点灯し、論理ベクトルレジスタ番号に割り当てられた物理ベクトルレジスタに対するベクトル書き込み命令が実行中であることを示す）、および、最新フラグ（ベクトル書き込み命令が最近（すなわち、最後に）にベクトル部２００に入力されたかどうかを示す）を格納する。１つの論理ベクトルレジスタ番号に対し、複数の物理ベクトルレジスタ番号（それに対応するベクトル長、実行中フラグ、および、最新フラグ）を格納可能である。
【００２６】
実行中フラグは、命令発行管理手段１０５からの対応する物理ベクトルレジスタ番号の消灯指示により消灯される。その契機は、ベクトルレジスタ群１０９の１つ、ないしは、複数の物理ベクトルレジスタに対する処理終了が命令発行管理手段１０５によって判定された時である。
【００２７】
ベクトルレジスタリネーミング手段１０４は、論理ベクトルレジスタ番号を物理ベクトルレジスタ番号に割り付ける割り付け表（事前に設定されるアルゴリズム、論理でよい）を含む。ベクトルレジスタリネーミング手段１０４は、リネーミング判定手段１０２の判別結果、および、割り付け表に従い、命令内の論理ベクトルレジスタ番号を物理ベクトルレジスタ番号に置換し、出力する。割り付け表は、ある論理ベクトルレジスタ番号に割り付ける物理ベクトルレジスタ番号は、０〜３、別の論理ベクトルレジスタ番号に割り付ける物理ベクトルレジスタ番号は、４〜５、・・・のように、論理ベクトルレジスタ同士で、割り付けられる物理ベクトルレジスタ番号が重複しない内容とする。
【００２８】
命令発行管理手段１０５は、ベクトル部２００に対してベクトル命令の発行と終了とを管理し、ベクトルレジスタ群１０９の各物理ベクトルレジスタの命令実行の終了判定を行う。
【００２９】
命令格納手段１０６は、ベクトル命令発行手段１０１からのベクトル書き込み命令、および、ベクトルレジスタリネーミング手段１０４からの物理ベクトルレジスタ番号を格納し、ベクトル書き込み命令の論理ベクトルレジスタ番号を、物理ベクトルレジスタ番号に置き換えて、「物理ベクトルレジスタ書き込み命令」として保持する（ベクトル書き込み命令以外のベクトル命令も保持する）。命令格納手段１０６は、命令発行管理手段１０５の指示により「物理ベクトルレジスタ書き込み命令」をベクトル部２００に出力する。
【００３０】
主記憶装置１０７は、ベクトルデータを保持し、命令格納手段１０６から出力されたベクトル命令が、ベクトルデータをベクトルレジスタへ転送する命令である場合、ベクトルデータを読み出し、ベクトルレジスタへ出力する。
【００３１】
選択手段１０８は、主記憶装置１０７から出力されたベクトルデータ、または、演算器群１１１より出力された演算結果であるベクトルデータを入力し、命令格納手段１０６からのベクトル命令に付随するベクトルレジスタ番号に従いベクトルレジスタ群１０９の内の１つ、ないしは、複数のベクトルレジスタに対して出力する。当該ベクトル命令がマスク付命令である場合は、ベクトルマスク発行手段１１２よりベクトルマスクデータを入力し、当該ベクトル命令のデータに対してベクトルマスク処理を行い、ベクトルレジスタ群１０９に対して出力する。
【００３２】
ベクトルレジスタ群１０９は、複数の物理ベクトルレジスタで構成される。ベクトルレジスタ群１０９は、命令格納手段１０６から出力されたベクトル命令に従い、ベクトル命令が「物理ベクトルレジスタ書き込み命令」である場合には、選択手段１０８より出力されたベクトルデータを格納し、命令が、「物理ベクトルレジスタ読み出し命令」である場合には、ベクトルデータの読み出しを行う。
【００３３】
選択手段１１０は、ベクトルレジスタ群１０９から読み出されたベクトルデータを、命令格納手段１０６からのベクトル命令に従い、ベクトル命令が演算命令である場合は、演算器群１１１に対して出力し、ベクトル命令が他のベクトルレジスタへの移送命令である場合は、選択手段１０８に対して出力し、ベクトル命令が、主記憶装置１０７への格納命令である場合は主記憶装置１０７に対して出力する。
【００３４】
演算器群１１１は、１つ、ないしは、複数の演算器で構成され、命令格納手段１０６からのベクトル命令が演算命令である場合には、選択手段１１０からのベクトルデータに対する演算を行い、演算結果ベクトルデータを選択手段１０８に出力する。
【００３５】
ベクトルマスク発行手段１１２は、命令格納手段１０６より出力された物理ベクトルレジスタ番号置換後のベクトル命令が、マスク付命令（すなわち、マスクフラグがマスクすることを示す）であった場合に、ベクトルデータに対するマスクデータを選択手段１０８に出力する。
【００３６】
次に、実行中ベクトルレジスタ番号テーブル１０３の詳細について説明する。
【００３７】
図２は、実行中ベクトルレジスタ番号テーブル１０３の詳細を示すブロック図である。
【００３８】
図２を参照すると、実行中ベクトルレジスタ番号テーブル１０３は、論理ベクトルレジスタ番号対応に、ｎ＋１個（ｎ＝０，１，・・・）の「物理ベクトルレジスタ番号、ベクトル長、実行中フラグ、最新フラグ」の組を格納する。
【００３９】
次に、本発明を実施するための最良の形態の動作について図面を参照して説明する。
【００４０】
まず、動作の概略について説明する。
【００４１】
図３は、本発明を実施するための最良の形態の動作を示すフローチャートである。
【００４２】
図３を参照すると、本発明のベクトル処理装置は、ベクトル書き込み命令（後続ベクトル命令）を発行すると（図３ステップＳ１）、同一論理ベクトルレジスタに書き込みを行う実行中のベクトル書き込み命令（先行ベクトル命令）が存在するかどうか判定する（ステップＳ２）。
【００４３】
同一論理ベクトルレジスタに書き込みを行う先行ベクトル命令が存在しなければ（ステップＳ２／ＮＯ）、ベクトル処理装置は、事前に設定された割り付け表にしたがって、後続ベクトル命令の論理ベクトルレジスタ番号に対し物理ベクトルレジスタ番号を割り付ける（ステップＳ３）。ここで、他の論理ベクトルレジスタ番号に対する物理ベクトルレジスタ番号と重複しないように割り付ける。
次に、ベクトル処理装置は、割り付けられた物理ベクトルレジスタ番号に対応するベクトルレジスタ使用する後続ベクトル命令を実行する（ステップＳ４）。
【００４４】
同一論理ベクトルレジスタに書き込みを行う１以上の先行ベクトル命令が存在すると（ステップＳ２／ＹＥＳ）、ベクトル処理装置は、後続ベクトル命令のマスクフラグを判定する（ステップＳ５）。また、ベクトル処理装置は、後続ベクトル命令のベクトル長と最新先行ベクトル命令（最近に実行中になった先行ベクトル命令）のベクトル長とを比較する（ステップＳ６）。ステップＳ５と、ステップＳ６との順序は、どちらでもよい。
【００４５】
後続ベクトル命令のマスクフラグが有効を示しているか（ステップＳ５／ＹＥＳ）、または、後続ベクトル命令のベクトル長≦（あるいは、＜でもよい）最新先行ベクトル命令のベクトル長であると（ステップＳ６／ＹＥＳ）、ベクトル処理装置は、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付ける（ステップＳ７）。
【００４６】
後続ベクトル命令のマスクフラグが有効を示しておらず（ステップＳ５／ＮＯ）、かつ、後続ベクトル命令のベクトル長≦（あるいは、＜）最新先行ベクトル命令のベクトル長でないと（ステップＳ６／ＮＯ）、ベクトル処理装置は、後続ベクトル命令の論理ベクトルレジスタ番号に対し実行中のすべての先行ベクトル命令に割り付けられた物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を割り付ける（ステップＳ８）。また、ベクトル処理装置は、他の論理ベクトルレジスタ番号に対する物理ベクトルレジスタ番号と重複しないように割り付ける。
【００４７】
ベクトル処理装置は、ステップＳ７、ステップＳ８の次に、割り付けられた物理ベクトルレジスタ番号に対応するベクトルレジスタ使用する後続ベクトル命令を実行する（ステップＳ４）。
【００４８】
ある論理ベクトルレジスタ番号に関し、実行中の先行ベクトル命令の数が、実行中ベクトルレジスタ番号テーブル１０３に保持可能な限度の数になった場合には、その論理ベクトルレジスタ番号で示されるベクトルレジスタに書き込みを行う後続ベクトル命令の発行を抑止する構成が可能である。
【００４９】
次に、動作の詳細について説明する。
【００５０】
ベクトル命令発行手段１０１は、順次に、ベクトル命令をリネーミング判定手段１０２に信号線１２１を介し出力する。また、ベクトル命令発行手段１０１は、順次に、ベクトル命令のベクトル命令の種別（Ｃｏｄｅ）を命令格納手段１０６に信号線１２０を介し出力する。
【００５１】
リネーミング判定手段１０２は、まず、ベクトル命令の種別、および、論理ベクトルレジスタ番号を判別する。当該ベクトル命令がベクトルレジスタに書き込みを行うベクトルレジスタ書き込み命令（後続ベクトル命令）の場合は、リネーミング判定手段１０２は、後続ベクトル命令の論理ベクトル番号を信号線１２２を介し実行中ベクトルレジスタ番号テーブル１０３に出力する。
【００５２】
実行中ベクトルレジスタ番号テーブル１０３は、リネーミング判定手段１０２からの論理ベクトルレジスタ番号に対応する物理ベクトルレジスタ番号（および、それに対応するベクトル長、実行中フラグ、および、最新フラグ）を信号線１２３を介し出力する。
【００５３】
リネーミング判定手段１０２は、実行中ベクトルレジスタ番号テーブル１０３からの出力中に、実行中フラグが実行中を示すもの（すなわち、実行中の先行ベクトル命令）があるかどうかを判別する。リネーミング判定手段１０２は、実行中フラグが実行中を示すものが存在しなければ、ベクトルレジスタリネーミング手段１０４に、後続ベクトル命令の論理ベクトルレジスタ番号、ベクトル長、マスクフラグ、および、「実行中無し情報」を信号線１２４を介し出力する。
【００５４】
また、リネーミング判定手段１０２は、実行中フラグが実行中を示すものが存在すれば、その中で、最新フラグが最新を示している（すなわち、最新先行ベクトル命令の）物理ベクトルレジスタ番号（および、それに対応するベクトル長）を選択する。次に、リネーミング判定手段１０２は、後続ベクトル命令のマスクフラグを調べ、マスクフラグが有効であれば、後続ベクトル命令の論理ベクトルレジスタ番号、ベクトル長、マスクフラグ、選択した最新先行ベクトル命令の物理ベクトルレジスタ番号、および、最新先行ベクトル命令の物理ベクトルレジスタ番号を使用することを示す「同一番号使用指示」を信号線１２４を介し出力する。
【００５５】
また、リネーミング判定手段１０２は、後続ベクトル命令のマスクフラグが有効でなければ、後続ベクトル命令のベクトル長と、選択した先行ベクトル命令のベクトル長との比較を行う。リネーミング判定手段１０２は、比較の結果、後続ベクトル命令のベクトル長≦（あるいは、＜でもよい）最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号、ベクトル長、マスクフラグ、最新先行ベクトル命令の物理ベクトルレジスタ番号、および、最新先行ベクトル命令の物理ベクトルレジスタ番号を使用することを示す「同一番号使用指示」を信号線１２４を介し出力する。
【００５６】
また、リネーミング判定手段１０２は、比較の結果、後続ベクトル命令のベクトル長≦（あるいは、＜でもよい）最新先行ベクトル命令のベクトル長でないと、後続ベクトル命令の論理ベクトルレジスタ番号、ベクトル長、マスクフラグ、その論理ベクトルレジスタ番号に割り当てられた実行中の全ての先行ベクトル命令の物理ベクトルレジスタ番号、および、先行ベクトル命令の物理ベクトルレジスタ番号とは異なる物理ベクトルレジスタ番号を使用することを示す「同一番号使用不可指示」を信号線１２４を介し出力する。
【００５７】
ベクトルレジスタリネーミング手段１０４は、信号線１２４から後続ベクトル命令の論理ベクトルレジスタ番号、ベクトル長、マスクフラグ、および、「実行中無し情報」を入力すると、割り付け表に基づいて、後続ベクトル命令の論理ベクトルレジスタ番号を物理ベクトルレジスタ番号に変換する。次に、ベクトルレジスタリネーミング手段１０４は、後続ベクトル命令の論理ベクトルレジスタ番号、ベクトル長、マスクフラグ、および、変換した物理ベクトルレジスタ番号を信号線１２５を介して出力する。
【００５８】
また、ベクトルレジスタリネーミング手段１０４は、信号線１２４から後続ベクトル命令の論理ベクトルレジスタ番号、最新先行ベクトル命令の物理ベクトルレジスタ番号、および、「同一番号使用指示」を入力すると、後続ベクトル命令の論理ベクトルレジスタ番号、ベクトル長、マスクフラグ、および、最新先行ベクトル命令の物理ベクトルレジスタ番号を信号線１２５を介して出力する。
【００５９】
また、ベクトルレジスタリネーミング手段１０４は、信号線１２４から後続ベクトル命令の論理ベクトルレジスタ番号、その論理ベクトルレジスタ番号に割り当てられた実行中の全ての先行ベクトル命令の物理ベクトルレジスタ番号、および、「同一番号使用不可指示」を入力すると、割り付け表に基づいて、その論理ベクトルレジスタ番号に割り当てられた実行中の全てのベクトル命令の物理ベクトルレジスタ番号と同一とならないように後続ベクトル命令の論理ベクトルレジスタ番号を物理ベクトルレジスタ番号に変換する。次に、ベクトルレジスタリネーミング手段１０４は、後続ベクトル命令の論理ベクトルレジスタ番号、ベクトル長、および、変換した物理ベクトルレジスタ番号を信号線１２５を介して出力する。
【００６０】
命令発行管理手段１０５は、信号線１２５を介して、「実行中無し情報」、「同一番号使用指示」、または、「同一番号使用不可指示」を入力すると、「登録指示」を実行中ベクトルレジスタ番号テーブル１０３、および、命令格納手段１０６に信号線１２６を介し出力する。
【００６１】
実行中ベクトルレジスタ番号テーブル１０３は、信号線１２６から「登録指示」を入力すると、信号線１２５から後続ベクトル命令の論理ベクトルレジスタ番号、ベクトル長、および、物理ベクトルレジスタ番号を入力し、論理ベクトルレジスタ番号に対応する領域にベクトル長、および、物理ベクトルレジスタ番号を、実行中を示す実行中フラグ（実行中を示すように）、および、最新を示す最新フラグ（最新を示すように）とともに格納する。この時、同一論理ベクトルレジスタ番号に最新を示す最新フラグがすでに存在すれば、実行中ベクトルレジスタ番号テーブル１０３は、その最新フラグが最新を示さないように変更する。
【００６２】
命令格納手段１０６は、信号線１２６から「登録指示」を入力すると、後続ベクトル命令の種別（Ｃｏｄｅ）を信号線１２０を介して入力し、対応するベクトル長、マスクフラグ、および、変換された物理ベクトルレジスタ番号を信号線１２５を介して入力し、「物理ベクトルレジスタ書き込み命令」として内部に格納する。ここで、命令格納手段１０６は、後続ベクトル命令の種別（Ｃｏｄｅ）を、リネーミング判定手段１０２、ベクトルレジスタリネーミング手段１０４を経由して入力する構成をとることも可能である。
【００６３】
命令発行管理手段１０５は、ベクトル部２００の状況を信号線１２８を介し監視し、ベクトル部２００がベクトル命令の入力を可能であれば、命令格納手段１０６に、「命令出力指示」を信号線１２７を介して出力する。
【００６４】
命令格納手段１０６は、「命令出力指示」を入力すると、「物理ベクトルレジスタ書き込み命令」等のベクトル命令をベクトル部２００に信号線１２９を介して出力する。
【００６５】
ベクトル部２００により入力される「物理ベクトルレジスタ書き込み命令」は、主記憶装置１０７からのベクトルデータ転送の場合と、ベクトルレジスタ群１０９のベクトルレジスタに格納されているベクトルデータを演算、ないしは、転送する場合とがある。
【００６６】
命令格納手段１０６からの「物理ベクトルレジスタ書き込み命令」が、主記憶装置１０７に格納されているベクトルデータをベクトルレジスタ群１０９へ転送する命令であると、ベクトル部２００は、主記憶装置１０７に格納されているベクトルデータを信号線１３０を介し選択手段１０８に出力する。選択手段１０８は、「物理ベクトルレジスタ書き込み命令」に付随している物理のベクトルレジスタ番号の値にしたがってベクトルレジスタ群１０９の内の１つないしは複数のベクトルレジスタに対してベクトルデータを出力する。
【００６７】
命令格納手段１０６からの「物理ベクトルレジスタ書き込み命令」が、ベクトルレジスタ群１０９に格納されているベクトルデータに対する演算命令であると、ベクトル部２００は、ベクトルレジスタ群１０９の１つないしは複数のベクトルレジスタよりベクトルデータを読み出し信号線１３２を介し選択手段１１０に出力する。選択手段１１０は、「物理ベクトルレジスタ書き込み命令」にしたがい、ベクトルデータを演算器群１１１のいずれかに振り分けて信号線１３３を介し出力する。演算器群１１１は、演算処理を行った結果のベクトルデータを選択手段１０８に対して信号線１３４を介して出力する。選択回路１０８は、「物理ベクトルレジスタ書き込み命令」に付随している物理ベクトルレジスタ番号にしたがってベクトルレジスタ群１０９の内の１つないしは複数のベクトルレジスタに対してベクトルデータを信号線１３１を介して出力する。
【００６８】
命令格納手段１０６からの「物理ベクトルレジスタ書き込み命令」が、ベクトルレジスタ群１０９に格納されているベクトルデータを異なるベクトルレジスタに転送する命令の場合は、ベクトル部２００は、ベクトルレジスタ群１０９の内１つないしは複数のベクトルレジスタよりベクトルデータを読み出し選択手段１１０に信号線１３２を介し出力する。選択手段１１０は、ベクトルデータを選択手段１０８に信号線１３５を介して出力する。選択手段１０８では、「物理ベクトルレジスタ書き込み命令」に付随している物理のベクトルレジスタ番号の値にしたがってベクトルレジスタ群１０９の内の１つないしは複数のベクトルレジスタに対してベクトルデータを信号線１３１を介して出力する。
【００６９】
命令格納手段１０６からの「物理ベクトルレジスタ書き込み命令」が、転送命令、または、演算命令であり、かつ、マスクフラグが有効であると、ベクトル部２００は、ベクトルマスク発行手段１１２から信号線１３６を介しベクトルマスクデータを選択手段１０８に出力する。選択手段１０８は、信号線１３０、信号線１３５、または、信号線１３４から入力したベクトルデータを出力し、かつ、信号線１３６から入力したベクトルマスクデータからマスク有効の部分（たとえば、８バイト）ごとの書き込み有効信号を出力する。ベクトルレジスタ群１０９は、書き込み有効信号な対応する部分のみにベクトルデータを書き込む。
【００７０】
命令発行管理手段１０５は、ベクトル部２００の「物理ベクトルレジスタ書き込み命令」によるベクトルレジスタ群１０９の内１つ、ないしは、複数のベクトルレジスタに対する書き込みの完了を監視する。命令発行管理手段１０５は、完了を検出すると、完了した「物理ベクトルレジスタ書き込み命令」の論理ベクトルレジスタ番号、および、対応する物理ベクトルレジスタ番号、および、「消去指示」を実行中ベクトルレジスタ番号テーブル１０３に信号線１２６を介して出力する。
【００７１】
実行中ベクトルレジスタ番号テーブル１０３は、「消去指示」を入力すると、命令発行管理手段１０５は、「終了情報」を入力すると、論理ベクトルレジスタ番号、および、対応する物理ベクトルレジスタ番号に対応する実行中フラグを実行中でないことを示すように消灯する。
【００７２】
また、ベクトル命令管理部３００における制御をファームウェアで実施する構成も可能である。
【００７３】
以上説明したように、本発明を実施するための最良の形態は、物理ベクトルレジスタのリソース不足を抑止できるという効果を奏する。
【００７４】
なぜなら、後続ベクトル命令のマスクフラグが有効を示しているか、または、後続ベクトル命令のベクトル長≦（あるいは、＜）最新先行ベクトル命令のベクトル長であると、後続ベクトル命令の論理ベクトルレジスタ番号に対し最新先行ベクトル命令に割り付けられたものと同一の物理ベクトルレジスタ番号を割り付けるからである。その結果、本発明を実施するための最良の形態は、物理ベクトルレジスタの個数を節約して使用できる。
【図面の簡単な説明】
【００７５】
【図１】本発明を実施するための最良の形態の構成を示すブロック図。
【図２】実行中ベクトルレジスタ番号テーブルの詳細を示すブロック図。
【図３】本発明を実施するための最良の形態の動作を示すフローチャート。
【符号の説明】
【００７６】
１０１    ベクトル命令発行手段
１０２    リネーミング判定手段
１０３    実行中ベクトルレジスタ番号テーブル
１０４    ベクトルレジスタリネーミング手段
１０５    命令発行管理手段
１０６    命令格納手段
１０７    主記憶装置
１０８    選択手段
１０９    ベクトルレジスタ群
１１０    選択手段
１１１    演算器群
１１２    ベクトルマスク発行手段
１２０、１２１、１２２、１２３、１２４、１２５    信号線
１２６、１２７、１２８、１２９、１３０、１３１    信号線
１３２、１３３、１３４、１３５、１３６    信号線
【図１】
2006268168.tif 000003
【図２】
2006268168.tif 000004
【図３】
2006268168.tif 000005