説明

ベクトル制御回路、ベクトル処理装置、ベクトル制御方法、および、ベクトル制御プログラム。

【課題】マスク反転命令の実行時間を短縮することにより、マスク反転命令の次のマスクを使用する命令の待ち時間を短縮する。
【解決手段】マスク発行部200に、正論理マスクデータおよび、負論理マスクデータを格納するベクトルマスクレジスタ270と、マスク生成命令により生成されたマスクデータ正論理マスクデータ、および、その反転値を格納するベクトルマスクコントロールレジスタ250とを設け、マスク反転命令の直前に実行されたマスク生成命令の対象マスクレジスタのレジスタ番号とマスク反転命令の対象マスクレジスタのレジスタ番号とが同一であったら、マスク反転命令を実行しない。ベクトルレジスタ部300はベクトル演算部400で実行された次の命令の演算結果を、ベクトルマスクコントロールレジスタ250内のマスクデータあるいはその反転値を使用して格納するか否かを決定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ベクトル制御回路、ベクトル処理装置、ベクトル制御方法、および、ベクトル制御プログラムに関し、特に、性能を向上したベクトル制御回路、ベクトル処理装置、ベクトル制御方法、および、ベクトル制御プログラムに関する。
【背景技術】
【0002】
従来、ベクトル処理装置では、FORTORAN言語等で記述された科学技術計算プログラムの条件文を高速に処理するためにマスクレジスタが用いられている。マスクレジスタは、条件文の成立・不成立を要素対応に“1”または“0”で記憶しておくことで、演算の抑止制御を行っている。
【0003】
たとえば、条件分の条件が成立したときに“1”にセットされ、演算結果をベクトルレジスタに格納する際にマスクレジスタの示す値が“1”の要素の演算結果のみがベクトルレジスタに格納するよう制御される。
【0004】
この場合、条件が不成立の時に別の演算を行うようプログラミングされていた場合には、マスクレジスタの内容を反転させる命令(マスク反転命令)を実行した後に“1”が立っている要素のみ別の演算結果をデータレジスタに格納するという手順がとられる(たとえば、特許文献1)。
【0005】
【特許文献1】特開昭60−136873号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
上述した従来の技術には、マスク反転命令の次のマスクを使用する命令の待ち時間が長く、性能が低下するという問題があった。その理由は、マスク反転命令の実行時間が長いからである。
【0007】
本発明の目的は、マスク反転命令の実行時間を短縮することにより、マスク反転命令の次のマスクを使用する命令の待ち時間を短縮し、性能を向上させたベクトル制御回路、ベクトル処理装置、ベクトル制御方法、および、ベクトル制御プログラムを提供することである。
【課題を解決するための手段】
【0008】
本発明の第1のベクトル制御回路は、複数のマスクレジスタと、ベクトルマスクコントロールレジスタとを備え、「前記ベクトルマスクコントロールレジスタに格納されたマスクデータを使用してベクトル演算を行うベクトル演算命令」、「右辺で指定された前記マスクレジスタ内のマスクデータの反転値を右辺で指定された前記マスクレジスタ、および、前記ベクトルマスクコントロールレジスタにマスクデータとして格納するマスク反転命令」、および、「ベクトルレジスタ内のデータをマスクデータとして前記ベクトルマスクコントロールレジスタ、および、指定された前記マスクレジスタに格納するマスク生成命令」を実行するベクトル制御回路であって、マスク反転命令の実行に際し、マスク反転命令の右辺で指定された前記マスクレジスタと、左辺で指定された前記マスクレジスタと、最も最近に実行された「マスク生成命令またはマスク反転命令を含む前記ベクトルマスクコントロールレジスタを更新する命令」によりマスクデータが更新されたマスクレジスタとが、すべて同一であった場合に、前記マスクレジスタ、および、前記ベクトルマスクコントロールレジスタへの反転値の格納を抑止し、前記ベクトルマスクコントロールレジスタ内のマスクデータの負論理値をマスク反転命令以降に使用する。
【0009】
本発明の第2のベクトル制御回路は、前記第1のベクトル制御回路であって、マスク反転命令によりセットされ前記ベクトルマスクコントロールレジスタ内のマスクデータの正論理値・負論理値のどちらを使用するのかを示すVC選択情報保持回路を備え、前記ベクトルマスクコントロールレジスタ内のマスクデータの正論理値・負論理値の使用の選択を前記VC選択情報保持回路より行う。
【0010】
本発明の第3のベクトル制御回路は、前記第1、または、第2のベクトル制御回路であって、マスク反転命令によりセットされ前記マスクレジスタ内のマスクデータの正論理値・負論理値のどちらを使用するのかを示す複数の前記マスクレジスタ対応のVMx選択情報保持回路を備え、マスク反転命令の実行に際し、右辺で指定された前記マスクレジスタ内のマスクデータの正論理値・負論理値のどちらの選択し反転値をマスクデータとして格納する。
【0011】
本発明の第4のベクトル制御回路は、前記第1ないし第3のいずれかのベクトル制御回路であって、前記ベクトルマスクコントロールレジスタが、マスクデータの正論理値を格納する正論理マスクコントロールレジスタと、マスクデータの負論理値を格納する負論理マスクコントロールレジスタとを備える。
【0012】
本発明の第5のベクトル制御回路は、前記第1ないし第4のいずれかのベクトル制御回路であって、複数の前記マスクレジスタが、マスクデータの正論理値を格納する正論理マスクレジスタと、マスクデータの負論理値を格納する負論理マスクレジスタとを備える。
【0013】
本発明のベクトル処理装置は、前記第1ないし第5のいずれかに記載のベクトル制御回路と、前記ベクトル制御回路の制御にしたがって動作する1以上の前記ベクトルレジスタと、前記ベクトル制御回路の制御にしたがって演算を行う演算部とを有する。
【0014】
本発明の第1のベクトル制御方法は、1以上のベクトルレジスタと、複数のマスクレジスタと、ベクトルマスクコントロールレジスタとを備え、「前記ベクトルマスクコントロールレジスタに格納されたマスクデータを使用してベクトル演算を行うベクトル演算命令」、「右辺で指定された前記マスクレジスタ内のマスクデータの反転値を右辺で指定された前記マスクレジスタ、および、前記ベクトルマスクコントロールレジスタにマスクデータとして格納するマスク反転命令」、および、「前記ベクトルレジスタ内のデータをマスクデータとして前記ベクトルマスクコントロールレジスタ、および、指定された前記マスクレジスタに格納するマスク生成命令」を実行するベクトル処理装置におけるベクトル制御方法であって、マスク反転命令の実行に際し、マスク反転命令の右辺で指定された前記マスクレジスタと、左辺で指定された前記マスクレジスタと、最も最近に実行された「マスク生成命令またはマスク反転命令を含む前記ベクトルマスクコントロールレジスタを更新する命令」によりマスクデータが更新されたマスクレジスタとが、すべて同一であった場合に、前記マスクレジスタ、および、前記ベクトルマスクコントロールレジスタへの反転値の格納を抑止し、前記ベクトルマスクコントロールレジスタ内のマスクデータの負論理値をマスク反転命令以降に使用する手順を含む。
【0015】
本発明の第2のベクトル制御方法は、前記第1のベクトル制御方法であって、マスク反転命令によりセットされ前記ベクトルマスクコントロールレジスタ内のマスクデータの正論理値・負論理値のどちらを使用するのかを示すVC選択情報保持回路を備える前記ベクトル処理装置における前記ベクトル制御方法であって、前記ベクトルマスクコントロールレジスタ内のマスクデータの正論理値・負論理値の使用の選択を前記VC選択情報保持回路より行う手順を含む。
【0016】
本発明の第3のベクトル制御方法は、前記第1、または、第2のベクトル制御方法であって、マスク反転命令によりセットされ前記マスクレジスタ内のマスクデータの正論理値・負論理値のどちらを使用するのかを示す複数の前記マスクレジスタ対応のVMx選択情報保持回路を備える前記ベクトル処理装置におけるベクトル制御方法であって、マスク反転命令の実行に際し、右辺で指定された前記マスクレジスタ内のマスクデータの正論理値・負論理値のどちらの選択し反転値をマスクデータとして格納する手順を含む。
【0017】
本発明の第1のベクトル制御プログラムは、1以上のベクトルレジスタと、複数のマスクレジスタと、ベクトルマスクコントロールレジスタとを備え、「前記ベクトルマスクコントロールレジスタに格納されたマスクデータを使用してベクトル演算を行うベクトル演算命令」、「右辺で指定された前記マスクレジスタ内のマスクデータの反転値を右辺で指定された前記マスクレジスタ、および、前記ベクトルマスクコントロールレジスタにマスクデータとして格納するマスク反転命令」、および、「前記ベクトルレジスタ内のデータをマスクデータとして前記ベクトルマスクコントロールレジスタ、および、指定された前記マスクレジスタに格納するマスク生成命令」を実行するベクトル処理装置におけるベクトル制御プログラムであって、マスク反転命令の実行に際し、マスク反転命令の右辺で指定された前記マスクレジスタと、左辺で指定された前記マスクレジスタと、最も最近に実行された「マスク生成命令またはマスク反転命令を含む前記ベクトルマスクコントロールレジスタを更新する命令」によりマスクデータが更新されたマスクレジスタとが、すべて同一であった場合に、前記マスクレジスタ、および、前記ベクトルマスクコントロールレジスタへの反転値の格納を抑止し、前記ベクトルマスクコントロールレジスタ内のマスクデータの負論理値をマスク反転命令以降に使用する手順を前記ベクトル処理装置に実行させる。
【0018】
本発明の第2のベクトル制御プログラムは、前記第1のベクトル制御プログラムであって、マスク反転命令によりセットされ前記ベクトルマスクコントロールレジスタ内のマスクデータの正論理値・負論理値のどちらを使用するのかを示すVC選択情報保持回路を備える前記ベクトル処理装置における前記ベクトル制御プログラムであって、前記ベクトルマスクコントロールレジスタ内のマスクデータの正論理値・負論理値の使用の選択を前記VC選択情報保持回路より行う手順を前記ベクトル処理装置に実行させる。
【0019】
本発明の第3のベクトル制御プログラムは、前記第1、または、第2のベクトル制御プログラムであって、マスク反転命令によりセットされ前記マスクレジスタ内のマスクデータの正論理値・負論理値のどちらを使用するのかを示す複数の前記マスクレジスタ対応のVMx選択情報保持回路を備える前記ベクトル処理装置におけるベクトル制御プログラムであって、マスク反転命令の実行に際し、右辺で指定された前記マスクレジスタ内のマスクデータの正論理値・負論理値のどちらの選択し反転値をマスクデータとして格納する手順を前記ベクトル処理装置に実行させる。
【発明の効果】
【0020】
本発明は、性能を向上させるという効果を持つ。その理由は、マスク反転命令の実行時間を短縮することにより、マスク反転命令の次のマスクを使用する命令の待ち時間を短縮するからである。
【発明を実施するための最良の形態】
【0021】
まず、本発明の概要について説明する。本発明は、「ベクトルマスクコントロールレジスタに格納されたマスクデータを使用してベクトル演算を行うベクトル演算命令」、「右辺で指定されたマスクレジスタ内のマスクデータの反転値を右辺で指定されたマスクレジスタ、および、ベクトルマスクコントロールレジスタにマスクデータとして格納するマスク反転命令」、および、「ベクトルレジスタ内のデータをマスクデータとして前記ベクトルマスクコントロールレジスタ、および、指定された前記マスクレジスタに格納するマスク生成命令」を実行するベクトル処理装置に関するものである。
【0022】
次に、本発明の第1の実施の形態について図面を参照して詳細に説明する。図1は、本発明の第1の実施の形態のベクトル処理装置500の構成を示すブロック図である。図1を参照すると、ベクトル処理装置500は、命令発行部100と、マスク発行部200と、ベクトルレジスタ部300と、演算部400とを含む。なお、命令発行部100と、マスク発行部200とをまとめてベクトル制御回路600と呼ぶ。
【0023】
命令発行部100は、図示しないメモリからロードした命令列を解読し、ベクトル演算命令その他を識別して実行指示を出す。特に、命令発行部100は、ベクトルマスク操作指示、または、ベクトルマスク読み出し指示を信号線31を通じてマスク発行部200に出力する。また、命令発行部100は、ベクトル演算指示を信号線32を通じてベクトルレジスタ部300、および、演算部400に送出する。ベクトルマスク操作命令はベクトル演算命令と同時に起動されることは無い。
【0024】
マスク発行部200は、ベクトルマスク操作指示を入力すると、所望のマスク操作を実行する。マスク発行部200は、ベクトルマスク読み出し指示を入力すると、ベクトルマスクコントロールレジスタ250(後述する正論理マスクコントロールレジスタ251(VCT)、負論理マスクコントロールレジスタ252(VCN)を含む)から読み出したマスクデータを信号線35を通じてベクトルレジスタ部300に出力する。また、マスク発行部200は、VFMK命令(マスク作成命令)実行時には、演算部400から信号線33を通じてマスクデータを受け取り、指定のベクトルマスクレジスタ270(VM;ベクトルマスク)、および、ベクトルマスクコントロールレジスタ250に格納する。
【0025】
ベクトルレジスタ部300は、複数の要素から構成されるベクトルデータを格納するベクトルレジスタVR0、ベクトルレジスタVR1、ベクトルレジスタVR2、および、ベクトルレジスタVR3を含む。ベクトルレジスタ部300は、命令発行部100からのベクトル演算指示に従って、指定のベクトルレジスタVR0〜VR3からベクトルデータを読み出して演算部400に出力する。ベクトルレジスタ部300は、ベクトル演算結果を信号線34を通じて入力し、指定のベクトルレジスタVR0〜VR3に格納する。この時、ベクトルレジスタ部300は、信号線35を通じて入力したマスクデータの値が“1”である要素についてのみベクトル演算結果を書き込む処理を行うことによってマスク演算を実現している。
【0026】
演算部400は、命令発行部100から信号線32を通じてベクトル演算指示を入力し、指定のベクトルレジスタVR0〜VR3間で各種演算処理を行う。演算部400は、VFMK命令(マスク作成命令)実行時には、指定のベクトルレジスタVR0〜VR3間で比較処理を行い、比較結果のマスクデータを信号線33を通じてマスク発行部200に出力する。
【0027】
次に、命令発行部100の詳細について説明する。図2は、図1の命令発行部100の詳細を示すブロック図である。
【0028】
図2を参照すると、命令発行部100は、命令スタック回路101、VC更新命令識別回路102、VM番号値保持回路103、NEGM命令識別回路104、オペランドVM番号認識回路105、VM番号比較回路106、選択情報更新回路107、VM選択情報出力回路108、オペランドVM番号認識回路109、命令発行回路110、発行待ち命令格納レジスタ151、直前VM番号レジスタ152、VC選択情報レジスタ153、VM0選択情報レジスタ154、VM1選択情報レジスタ155、および、VM2選択情報レジスタ156を含む。
【0029】
命令スタック回路101は、後続命令をスタックする。発行待ち命令格納レジスタ151は、発行可能となるまで命令を保持する。VC更新命令識別回路102は、VFMK命令に代表されるマスク生成命令を識別して、ベクトルマスクコントロールレジスタ250(VC)と同じ値を持つベクトルマスクレジスタ270の1つ(VMxT)に対応するベクトルマスクレジスタ番号を認識する。
【0030】
VM番号値保持回路103は、VC更新命令識別回路102から有効なVM番号を入力すると、次に有効なVM番号が来るまで保持するよう直前VM番号レジスタ152を制御する。また、VM番号値保持回路103は、保持しているVM番号値と次に来た有効なVM番号値とが異なっていた場合は、信号線133を通じて選択情報更新回路107にVC選択情報レジスタ153を“0”にセットする指示を出力する。
【0031】
直前VM番号レジスタ152は、ベクトルマスクコントロールレジスタ250(VC)と同じ値を持つベクトルマスクレジスタ270の1つ(VMxT)に対応するベクトルマスクレジスタ番号を保持する。NEGM命令識別回路104(マスク反転命令識別)は、NEGM命令が発行待ち状態であることを識別する。オペランドVM番号認識回路105は、NEGM命令のオペランドで指定されている2つのVM番号を認識する。NEGM命令は次のようなオペランドを持つ。<NEGM VM0,VC←VM0>。
【0032】
VM番号比較回路106は、直前VM番号レジスタ152内のVM番号とオペランドVM番号認識回路105で認識された2つのVM番号とを比較する。VM番号比較回路106は、3つのVM番号が全て同じであった場合には、オペランド左辺のVM番号に対応する選択情報反転指示を信号線131を通じて選択情報更新回路107に出力し、かつ、信号線132を通じてNEGM命令処理済みであることを命令発行回路110に出力する。VM番号比較回路106は、3つのVM番号が1つでも違っていた場合は特別な動作は行わない。
【0033】
選択情報更新回路107は、信号線131を通じて選択情報反転指示を入力すると、指定のVMの選択情報の反転処理を行うと共に、VC選択情報の反転処理を行う。
また信号線133を通じて指示を受けたらVC選択情報レジスタ153を“0”にセットする制御を行う。
【0034】
VC選択情報レジスタ153(レジスタでなくても情報を保持する回路であればよい)は、VC選択情報を格納する。VC選択情報は、マスク発行部200において、正論理マスクコントロールレジスタ251(VCT)を使用するか、負論理マスクコントロールレジスタ(VCN)を使用するかを選択する際に使用される。VM0選択情報レジスタ154、VM1選択情報レジスタ155、VM2選択情報レジスタ156(総称して、VMx選択情報レジスタと呼ぶ;レジスタでなくても情報を保持する回路であればよい)は、VM1、2、3選択情報(総称してVMx選択情報と呼ぶ)を格納する。VMx選択情報は、マスク発行部200において、正論理マスクレジスタ(VMxT)を使用するか、負論理マスクレジスタ(VMxN)を使用するかを選択する際に使用される。
【0035】
オペランドVM番号認識回路109は、VC更新命令などでオペランドに指定されているVM番号を認識し、VM番号をVM選択情報出力回路108に出力する。VM選択情報出力回路108は、オペランドVM番号認識回路109から入力したVM番号に対応する選択情報を命令発行回路110に出力する。
【0036】
命令発行回路110は、発行待ち命令格納レジスタ151内の命令のリソースビジー、および、コヒーレンシを管理し、命令を発行可能と判断した場合には、必要に応じてVC選択情報レジスタ153からのVC選択情報、および、VM選択情報出力回路108からのVMx選択情報を付与してマスク発行部200に動作指示を出力する。命令発行回路110は、特に、コヒーレンシを保つため後続命令の発行を保留する機能を持つ。
【0037】
また、命令発行回路110は、ベクトル演算命令に関し、信号線32を通じてベクトルレジスタ部300、および、演算部400に対して動作指示を出力する。また、命令発行回路110は、マスク付きベクトル命令に関し、マスク発行部200に対するマスク読み出し指示と、ベクトルレジスタ部300に対するベクトルデータ読み出し指示と、演算部400に対する演算開始指を連携して出力する。
【0038】
また、命令発行回路110は、NEGM命令のようなマスク操作命令に関し、NEGM命令をマスク発行部200のみに出力する。また、命令発行回路110は、信号線132を通じてNEGM命令処理済みである通知を受けた場合は、NEGM命令が発行可能であった場合であっても命令の発行は行わず、NEGM命令発行済みとして処理する。
【0039】
次に、マスク発行部200の詳細について説明する。図3は、図1のマスク発行部200の詳細を示すブロック図である。
【0040】
図3を参照すると、マスク発行部200は、マスク制御命令識別回路201、マスク演算回路202、マスクデータセレクタ203、マスクデータ反転回路204、マスク読み出し回路205、マスクレジスタセレクタ206、マスクレジスタセレクタ207、マスクレジスタセレクタ208、3wayセレクタ209、3wayセレクタ210、ベクトルマスクコントロールレジスタ250、マスク演算回路入力レジスタ259、マスク演算回路入力レジスタ260、マスク演算結果保持レジスタ261、および、ベクトルマスクレジスタ270を含む。
【0041】
また、ベクトルマスクコントロールレジスタ250は、正論理マスクコントロールレジスタ251(VCT)、負論理マスクコントロールレジスタ252(VCN)を含む。ベクトルマスクレジスタ270は、正論理マスクレジスタ253(VM0T)、正論理マスクレジスタ255(VM1T)、正論理マスクレジスタ257(VM2T)、負論理マスクレジスタ254(VM0N)、負論理マスクレジスタ256(VM1N)、負論理マスクレジスタ258(VM2N)を含む。
【0042】
命令は、ベクトルマスクコントロールレジスタ250のマスクデータを用いて実行される。ベクトルマスクレジスタ270は、ベクトルマスクコントロールレジスタ250に種々の値を設定するために設けられている。
【0043】
マスク制御命令識別回路201は、命令発行部100から入力した命令(指示)を解読して、マスク操作指示であった場合には、マスク演算回路202に制御信号を、マスク読み出し指示であった場合には、マスク読み出し回路205に制御信号を送出する。マスク制御命令識別回路201は、それと同時に、命令発行部100からの指示に含まれているVC選択情報をマスク読み出し回路205に、VMx選択情報をマスクレジスタセレクタ206〜208に送ることにより、正論理マスクレジスタ253〜257、負論理マスクレジスタ254〜258のどちらから読み出したマスクを使うかを制御する。
【0044】
また、マスク制御命令識別回路201は、マスク演算命令を入力すると、3wayセレクタ209、3wayセレクタ210に適切なセレクト信号を送るとともに、マスク演算回路202に演算種別を指示することにより所望のマスク演算を実行させる。
【0045】
マスク演算回路202は、マスク制御命令識別回路201からの制御信号に従ってNEGM命令(マスク反転命令)演算等のマスク演算処理を実行する。
【0046】
マスクデータセレクタ203は、マスク演算回路202からのマスク演算結果、または、信号線33を通じて入力したVFMK命令(マスク生成命令)実行結果のどちらかを選択する。マスクデータセレクタ203の選択信号は、マスク制御命令識別回路201から信号線231を介して出力される。
【0047】
マスクデータ反転回路204は、マスクデータセレクタ203から出力されたマスクデータを反転し、マスクデータの反転値(負論理値)を負論理マスクコントロールレジスタ252(VCN)に出力する。正論理マスクコントロールレジスタ251(VCT)は、マスク制御命令識別回路201からの制御指示に従ってマスクデータセレクタ203から出力されたマスクデータ(正論理値)を保持する。負論理マスクコントロールレジスタ252(VCN)は、マスク制御命令識別回路201からの制御指示に従ってマスクデータ反転回路204から出力されたマスクデータの反転値(負論理値)を保持する。
【0048】
マスク読み出し回路205は、マスク制御命令識別回路201からの制御信号、および、VC選択情報を信号線231を介して入力し、指示に従って正論理マスクコントロールレジスタ251、または、負論理マスクコントロールレジスタ252のどちらかの出力を選択してマスクデータとして信号線35を介してベクトルレジスタ部300に出力する。
【0049】
正論理マスクレジスタ253、255、257(VMx[x:0,1,2])は、マスク制御命令識別回路201からの制御指示に従ってマスクデータセレクタ203から出力されたマスクデータを保持する。負論理マスクレジスタ254、256、258(VMxN[x:0,1,2])は、マスク制御命令識別回路201からの制御指示に従ってマスクデータ反転回路204から出力されたマスクデータの反転値を保持する。
【0050】
マスクレジスタセレクタ206、207、208は、マスク制御命令識別回路201から出力されるVMx選択情報を信号線231を介して入力し、指示に従ってそれぞれ正論理マスクレジスタ253、255、257(VMxT)、または、負論理マスクレジスタ254、256、258(VMxN)のどちらかを選択してマスク演算回路202に出力する。
【0051】
3wayセレクタ209、210は、マスク制御命令識別回路201の指示に従ってマスク演算回路202へ入力するマスクデータをマスクレジスタセレクタ206、207、208の出力の中から選択する。マスク演算回路入力レジスタ259、260は、3wayセレクタ209、210の出力を一旦保持する。マスク演算結果保持レジスタ261は、マスク演算回路202の出力を一旦保持する。
【0052】
ベクトルレジスタ部300は、プログラム可視のベクトルレジスタVR0、ベクトルレジスタVR1、ベクトルレジスタVR2、ベクトルレジスタVR3を含む。以上詳細に構成例を述べたが、演算部400は、当業者にとってよく知られており、詳細な構成は省略する。
【0053】
次に本発明の第1の実施の形態の動作について図面を参照して説明する。図5は、動作を説明するためのFORTRANのプログラムの1例を示す説明図である。図6は、図5のプログラムがコンパイルされた結果の機械語プログラム(命令列)を示す説明図である。以下、図6の命令列が実行された時の動作を説明する。
【0054】
図6(a)のベクトルロード命令(VLD命令)が実行されると、ベクトルレジスタVR0に行列x[I]がロードされる。図6(b)のベクトルロード命令が実行されると、ベクトルレジスタVR1に行列y[I]がロードされる。図6(c)のベクトルロード命令が実行されると、ベクトルレジスタVR2に行列A[I]がロードされる。図6(d)のベクトルロード命令が実行されると、ベクトルレジスタVR3に行列B[I]がロードされる。
【0055】
図6(e)のベクトルコンペア命令(VCMP命令)が実行されると、命令発行部100からベクトルレジスタ部300、および、演算部400に指示が出され、ベクトルレジスタVR0、VR1からベクトルデータが読み出されて演算部400に出力される。演算部400は、両者を要素毎に比較してその結果を信号線34に送出する。ベクトルレジスタ部300では信号線34を介して受け取った比較結果を命令発行部100の指示に従ってベクトルレジスタVR0に格納する。
【0056】
図6(f)のマスク生成命令(VFMK命令)が実行されると、命令発行部100からマスク発行部200、ベクトルレジスタ部300、および、演算部400に指示が出され、ベクトルレジスタVR0からベクトルデータが読み出されて演算部400に出力される。演算部400は、入力したベクトルデータからベクトルマスクを生成して信号線33を通じてマスク発行部200に出力する。
【0057】
マスク発行部200のマスク制御命令識別回路201が命令発行部100からの指示を解析し、マスクデータセレクタ203に制御信号を出力する。マスクデータセレクタ203はこの制御信号に従って信号線33からのVFMK命令(マスク生成命令)実行結果を選択する。正論理マスクコントロールレジスタ251は、マスクデータセレクタ203の出力を受けて保持する。負論理マスクコントロールレジスタ252は、マスクデータセレクタ203の出力の反転値をマスクデータ反転回路204を介して保持する。
【0058】
図4は、正論理マスクコントロールレジスタ251、および、負論理マスクコントロールレジスタ252の値の一例を示す説明図である。この時、命令発行部100内のVC更新命令識別回路102は、VFMK命令をVC更新命令であると識別し、VFMK命令の格納先レジスタがVCおよびVM0となっていることから、正論理マスクコントロールレジスタ251(VCT)のマスクデータと同じマスクデータを格納している正論理マスクレジスタ253(VM0T)を示すVM番号をVM番号値保持回路103に出力する。VM番号値保持回路103は、VM番号を直前VM番号として直前VM番号レジスタ152に出力する。この結果、直前VM番号レジスタ152にはVM番号(VM#0)が記憶される。
【0059】
また、この時、VC選択情報レジスタ153、VM0選択情報レジスタ154〜156には、初期値として正論理のマスクレジスタを選択する意味の“0”が格納されているとする。
【0060】
図6(g)のVADD命令が実行される際、命令発行部100の発行待ち命令格納レジスタ151に(g)のVADD命令が格納されている状態にある。命令発行回路110で発行可能と判断されると、マスク読み出し指示が、VC選択情報レジスタ153のVC選択情報“0”を付与されて信号線31を介しマスク発行部200に出力される。
【0061】
また、ベクトルレジスタ部300、および、演算部400には加算演算指示が出され、ベクトルレジスタVR2、および、ベクトルレジスタVR3からベクトルデータが読み出されて演算部400に出力される。演算部400は、両者のベクトルデータを要素毎に加算演算してその結果を信号線34に出力する。
【0062】
一方、マスク発行部200のマスク読み出し回路205は、命令発行部100からのマスク読み出し指示に付随するVC選択情報“0”の値に従い、正論理マスクコントロールレジスタ251(VCT)から読み出したマスクデータを信号線35を通じてベクトルレジスタ部300に出力する。
【0063】
ベクトルレジスタ部300のベクトルレジスタVR2は、信号線34を介して入力した演算結果を命令発行部100の指示に従って格納するが、その際、信号線35を通じて入力したマスクデータに従って“1”が立っている要素についてのみ演算結果を格納する。
【0064】
図6(h)のNEGM命令(マスク反転命令)が実行される際、命令発行部100の発行待ち命令格納レジスタ151に(h)のNEGM命令が格納されている状態にある。このとき、NEGM命令識別回路104が、NEGM命令であることを識別すると、オペランドVM番号認識回路105は、NEGM命令のオペランドで指定されているVM番号を認識する。本例の命令列では、「NEGM VC,VM0<−VM0」となっており、オペランドVM番号認識回路105は、左辺、右辺ともにVM番号はVM#0を使っていることを認識する。
【0065】
VM番号比較回路106は、オペランドVM番号認識回路105で認識された2つのVM番号と直前VM番号レジスタ152に記憶されている直前VM番号との3つを比較する。本例では全て同じVM番号(VM#0)であるので、オペランド左辺のVM番号に対応する選択情報反転指示を信号線131を通じて選択情報更新回路107に出力する。同時に、VM番号比較回路106は、信号線132を通じてNEGM命令処理済みであること示す処理済み通知を命令発行回路110に出力する。
【0066】
選択情報更新回路107は、信号線131を通じて受けたVM0の選択情報反転指示に従い反転処理を行う。この処理によって、VC選択情報レジスタ153、および、VM0選択情報レジスタ154には、値“1”が格納される。命令発行部100は信号線132を通じてNEGM命令処理済みである処理済み通知を入力すると、NEGM命令が発行可能であっても、命令の発行は行わず、NEGM命令発行済みとして処理する。
【0067】
もし、命令列が「NEGM VC,VM1<−VM0」である場合は、オペランドVM番号認識回路105で認識された2つのVM番号が異なるため、マスク発行部200に対してNEGM指示が出力される。そして、正論理マスクレジスタ253(VM0T)から読み出されたマスクデータがマスク演算回路202で反転された反転値が、正論理マスクコントロールレジスタ251(VCT)、および、正論理マスクレジスタ255(VM1T)に格納される。さらに、反転値の反転値が負論理マスクコントロールレジスタ252(VCN)、および、負論理マスクレジスタ256(VM1N)に格納される。
【0068】
この動作が行われた場合、正論理マスクコントロールレジスタ251(VCT)、負論理マスクコントロールレジスタ252(VCN)に値がセットされる前に、後続のVSUB命令などが実行されると一貫性の無いマスクデータが読み出されることになってしまうので、これを防ぐためにたとえば、後続のVSUB命令の発行を遅らせる必要が生じる。この時、VC選択情報レジスタ153内のVC選択情報は、反転処理が施されないため“0”を保っている。
【0069】
図6(i)のVSUB命令が実行される際、命令発行部100の発行待ち命令格納レジスタ151に(g)のVSUB命令が格納されている。命令発行回路110で命令が発行可能と判断されると、マスク読み出し指示が、VC選択情報レジスタ153内のVC選択情報“1”を付与されてマスク発行部200に出力される。
【0070】
また、ベクトルレジスタ部300、および、演算部400には減算演算指示が出され、ベクトルレジスタVR2、および、ベクトルレジスタVR3からベクトルデータが読み出されて演算部400に送られる。演算部400は、両者のベクトルデータを要素毎に減算演算して、その結果を信号線34に出力する。
【0071】
一方、マスク発行部200のマスク読み出し回路205は、命令発行部100から入力したマスク読み出し指示に付随するVC選択情報“1”の値に従い、負論理マスクコントロールレジスタ252(VCN)から読み出したマスクデータを信号線35を通じてベクトルレジスタ部300に出力する。
【0072】
ベクトルレジスタ部300のベクトルレジスタVR2は、信号線34を介して入力した演算結果を命令発行部100の指示に従って格納するが、その際、信号線35を通じて入力したマスクデータに従って“1”が立っている要素についてのみ演算結果を格納する。
【0073】
図7は、図6(i)のVSUB命令が終了した時点でのベクトルレジスタVR2の内容を示す説明図である。図8は、3つのVM番号に異なる値がある場合と、3つのVM番号が同一である場合との比較を示すタイムチャートである。
【0074】
(h)のNEGM命令に際し、3つのVM番号に異なる値がある場合においては、コヒーレンシを保つために、正論理マスクコントロールレジスタ251(VCT)への書き込みが行われた後に後続の(i)VSUB命令でVCの読み出しを行う必要があることから、2クロック分の期間を空けて(i)VSUB命令を発行するよう制御される。
【0075】
しかし、3つのVM番号が同一である場合には、(h)NEGM命令を実際に発行せず、予め用意してある負論理マスクコントロールレジスタ252(VCN)のマスクデータを読み出すよう制御することによって、コヒーレンシを損なうことなく、連続して(i)VSUB命令を発行することが可能となる。
【0076】
NEGM命令を本発明の技術無しに実行した場合に必要なクロック数が本例よりも多くなるケースや、図5のプログラムが多重LOOPで頻繁に使われるケースでは効果が大きくなる。
【0077】
次に、本発明の第1の実施の形態の動作について、図面を用いてさらに詳細に説明する。図9は、実行される命令列を示す説明図である。図10は、本発明の第1の実施の形態の詳細動作を示すタイムチャートである。
【0078】
図9を参照すると、図6の命令列に対し、(x)NEGMが追加されている。図10を参照すると、(a)VLD〜(e)VCMPまでは省略して(f)VFMKが発行待ち命令格納レジスタ151にセットされた時点から以降が記載されている。
【0079】
(f)VFMK命令が、発行待ち命令格納レジスタ151にセットされると、VC更新命令識別回路102は、VC更新命令であることを識別する。次のクロックで、正論理マスクコントロールレジスタ251(VCT)と同じ値を持つ正論理マスクレジスタ253(VM0T)のVM番号である“VM#0”が、直前VM番号レジスタ152にセットされる。
【0080】
この次のタイミングで、(g)VADD命令が発行待ち命令格納レジスタ151にセットされるが、(f)VFMK命令が終了して、正論理マスクコントロールレジスタ251(VCT)、負論理マスクコントロールレジスタ252(VCN)の値が更新されてからそのVCT、VCNの値がマスク情報として使われる。したがって、コヒーレンシを保持するために、正論理マスクコントロールレジスタ251(VCT)、負論理マスクコントロールレジスタ252(VCN)の更新が完了してコヒーレンシ上問題が無くなるまで、(g)VADDの発行は、保留される。
【0081】
命令発行部100において、コヒーレンシ上の問題が無くなったと判断されると、(g)VADDが発行され、発行待ち命令格納レジスタ151には、次の命令である(h)NEGMがセットされる。
【0082】
VM番号比較回路106は、直前VM番号レジスタ152に保持されているVM番号(VM#0)とオペランドVM番号認識回路105で認識された2つのVM番号(VM#0、VM#0)とを比較する。VM番号比較回路106は、3つのVM番号が全て同じであることを確認し、オペランド左辺のVM番号に対応する選択情報反転指示を信号線131を通じて、選択情報更新回路107に送ると同時に、信号線132を通じてNEGM命令処理済みであることを示す処理済み通知を命令発行回路110に出力する。
【0083】
選択情報更新回路107は、信号線131を通じて指定のVM0選択情報レジスタ154、VC選択情報レジスタ153の反転処理を行い、これらの値を“0”→“1”とする。これにより、(h)NEGM命令は、発行されずに実行完了したものとして処理され、発行待ち命令格納レジスタ151には、次の命令である(i)VSUBがセットされる。
【0084】
命令発行部100において、コヒーレンシ上の問題が無いかどうかが確認されるが、(h)NEGM命令は実際には発行されず、VCT、VCNの値は変化しないことから、コヒーレンシ上の問題は無いと判断される。この時VC選択情報としてVC選択情報レジスタ153の値“1”が付与されて(i)VSUB命令が、発行される。
【0085】
この動作によって、(i)VSUB命令で使用されるマスクデータは負論理マスクコントロールレジスタ252の値が選択される。その後、マスク更新命令以外の命令が続いた後、(x)NEGM命令が発行待ち命令格納レジスタ151にセットされる。
【0086】
VM番号比較回路106は、直前VM番号レジスタ152に保持されているVM番号(VM#0)とオペランドVM番号認識回路105で認識された2つのVM番号(VM#1、VM#0)とを比較する。
【0087】
VM番号比較回路106は、3つのVM番号に異なるものがあることを確認し、選択情報更新回路107への選択情報反転指示、および、命令発行回路110へのNEGM命令処理済み通知は出力しない。このため、命令発行部100はコヒーレンシ上の問題は無いことが確認されたタイミングで(x)NEGM命令を発行する。
【0088】
この時(x)NEGM命令のソースはVM0なので、VM選択情報出力回路108によってVM0選択情報レジスタ154の値“1”がVM選択情報として付与される。この動作によって、(x)NEGM命令で使用されるマスクデータは負論理マスクレジスタ254(VM0N)の値が選択される。
【0089】
次に、本発明の第1の実施の形態の動作について、図面を用いて別の命令列の場合を詳細に説明する。図11は、実行される命令列を示す説明図である。図12は、本発明の第1の実施の形態の詳細動作を示すタイムチャートである。
【0090】
図11を参照すると、図9の命令列に対し、(h)NEGMのオペランドのVM番号が変わっており、(x)NEGMのオペランドのVM番号が変わっている。
【0091】
図12の動作で図10と異なる点は、(h)NEGM命令が発行待ち命令格納レジスタ151にセットされたとき、直前VM番号レジスタ152には、正論理マスクレジスタ255(VM1T)のVM番号である“VM#1”が次のクロックでセットされる点である。
【0092】
VM番号比較回路106は、直前VM番号レジスタ152に保持されているVM番号(VM#0)とオペランドVM番号認識回路105で認識された2つのVM番号(VM#1、VM#0)とを比較する。VM番号比較回路106は、3つのVM番号に異なるものがあることが確認し、選択情報更新回路107への選択情報反転指示、および、命令発行回路110へのNEGM命令処理済み通知は出力しない。
【0093】
このため、命令発行部100は、コヒーレンシ上の問題は無いことが確認されたタイミングで(x)NEGM命令を発行する。この時、(x)NEGM命令のソースは、VM0なので、VM選択情報出力回路108は、VM0選択情報レジスタ154の値“0”をVM選択情報として付与する。
【0094】
発行待ち命令格納レジスタ151には次の命令である(i)VSUBがセットされる。命令発行部100は、コヒーレンシ上の問題が無いか確認する。命令発行部100は、(h)NEGM命令が発行されているので、コヒーレンシ上の問題は無いと判断されるまでの2クロック間、(i)VSUBの発行を保留し、その次のクロックで命令を発行する。
【0095】
この時、VC選択情報としてVC選択情報レジスタ153の値“1”が付与されて(i)VSUB命令は発行される。その後、マスク更新命令以外の命令が続いた後、(x)NEGM命令が発行待ち命令格納レジスタ151にセットされる。
【0096】
VM番号比較回路106は、直前VM番号レジスタ152に保持されているVM番号(VM#1)とオペランドVM番号認識回路105で認識された2つのVM番号(VM#1、VM#1)とを比較する。VM番号比較回路106は、3つのVM番号が全て同じであることを確認し、選択情報更新回路107への選択情報反転指示、および、命令発行回路110へのNEGM命令処理済み通知を出力する。
【0097】
選択情報更新回路107は、信号線131を通じて指定のVM1選択情報レジスタ155、VC選択情報レジスタ153の反転処理を行い、これらの値を“0”→“1”とする。これにより、(h)NEGM命令は、発行されずに実行完了したものとして処理される。
【0098】
以上説明したように、本発明の第1の実施の形態は、マスク反転命令の実行時間を短縮することにより、マスク反転命令の次のマスクを使用する命令の待ち時間を短縮し、性能を向上させるという効果を持つ。
【0099】
その理由は、直前VM番号レジスタ152に保持されているVM番号とオペランドVM番号認識回路105で認識された2つのVM番号とを比較し、3つのVM番号が全て同じであると、選択情報更新回路107への選択情報反転指示、および、命令発行回路110へのNEGM命令処理済み通知を出力する構成を持つからである。
【0100】
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。本発明の第2の実施の形態は、本発明の第1の実施の形態と異なり、VC更新命令識別回路102が、VFMK命令に限ることなく、MVMC命令(VM→VC転送命令)のような命令に関しても、ベクトルマスクコントロールレジスタ250(VC)と同じ値を持つベクトルマスクレジスタ270の1つ(VMxT)に対応するベクトルマスクレジスタ番号を認識する。
【0101】
VC更新命令識別回路102は、そのVM番号をVM番号値保持回路103に出力する。したがって、直前のVC更新命令がVFMK以外の命令であってもNEGM命令を短縮できる可能性を増やすことが可能となる。
【0102】
図13は、本発明の第2の実施の形態の動作を説明するための命令列を示す説明図である。図13を参照すると、(h)NEGM命令の直前のマスク操作命令は(f’’)MVMC命令であるが、このような命令列においてもNEGM命令を短縮実行することが可能となる。
【0103】
このように、本発明の第2の実施の形態は、多くの命令に関し、ベクトルマスクコントロールレジスタ250(VC)と同じ値を持つベクトルマスクレジスタ270の1つ(VMxT)に対応するベクトルマスクレジスタ番号を認識することにより、性能が向上する。
【0104】
次に、本発明の第3の実施の形態について説明する。本発明の第3の実施の形態は、ベクトルマスクコントロールレジスタ250に、負論理マスクコントロールレジスタ252を設けず、正論理マスクコントロールレジスタ251を、正論理、および、負論理の両方を出力するレジスタとする。また、ベクトルマスクレジスタ270も、負論理マスクレジスタ254〜258を設けず、正論理、および、負論理の両方を出力するレジスタとする。
【0105】
本発明の第3の実施の形態は、第1、第2の実施の形態と比較して、ハードウェア量が削減できるという効果を持つ。
【0106】
以上の説明において、ハードウェア制御での構成を説明したが、コントロールストアを設け、ファームウェア制御(マイクロプログラム制御)とすることが可能である。
【図面の簡単な説明】
【0107】
【図1】本発明の第1の実施の形態のベクトル処理装置の構成を示すブロック図。
【図2】図1の命令発行部の詳細を示すブロック。
【図3】図1のマスク発行部の詳細を示すブロック図。
【図4】正論理(および、負論理)マスクコントロールレジスタの値の一例を示す説明図。
【図5】本発明の第1の実施の形態の動作を説明するためのプログラムの1例を示す説明図。
【図6】図5のプログラムがコンパイルされた結果の命令列を示す説明図。
【図7】図6のVSUB命令が終了した時点でのベクトルレジスタVR2の内容を示す説明図。
【図8】図6のNEGM命令が短縮実行した場合の動作を示すタイムチャート。
【図9】実行される命令列を示す説明図。
【図10】本発明の第1の実施の形態の詳細動作を示すタイムチャート。
【図11】実行される命令列を示す説明図。
【図12】本発明の第1の実施の形態の詳細動作を示すタイムチャート。
【図13】本発明の第2の実施の形態の動作を説明するための命令列を示す説明図。
【符号の説明】
【0108】
100 命令発行部
101 命令スタック回路
102 VC更新命令識別回路
103 VM番号値保持回路
104 NEGM命令識別回路
105 オペランドVM番号認識回路
106 VM番号比較回路
107 選択情報更新回路
108 VM選択情報出力回路
109 オペランドVM番号認識回路
110 命令発行回路
151 発行待ち命令格納レジスタ
152 直前VM番号レジスタ
153 VC選択情報レジスタ
154 VM0選択情報レジスタ
155 VM1選択情報レジスタ
156 VM2選択情報レジスタ
200 マスク発行部
201 マスク制御命令識別回路
202 マスク演算回路
203 マスクデータセレクタ
204 マスクデータ反転回路
205 マスク読み出し回路
206 マスクレジスタセレクタ
207 マスクレジスタセレクタ
208 マスクレジスタセレクタ
209 3wayセレクタ
210 3wayセレクタ
250 ベクトルマスクコントロールレジスタ
251 正論理マスクコントロールレジスタ
252 負論理マスクコントロールレジスタ
253 正論理マスクレジスタ
255 正論理マスクレジスタ
257 正論理マスクレジスタ
254 負論理マスクレジスタ
256 負論理マスクレジスタ
258 負論理マスクレジスタ
259 マスク演算回路入力レジスタ
260 マスク演算回路入力レジスタ
261 マスク演算結果保持レジスタ
270 ベクトルマスクレジスタ
300 ベクトルレジスタ部
400 演算部
500 ベクトル処理装置
600 ベクトル制御回路
VR0 ベクトルレジスタ
VR1 ベクトルレジスタ
VR2 ベクトルレジスタ
VR3 ベクトルレジスタ

【特許請求の範囲】
【請求項1】
複数のマスクレジスタと、ベクトルマスクコントロールレジスタとを備え、「前記ベクトルマスクコントロールレジスタに格納されたマスクデータを使用してベクトル演算を行うベクトル演算命令」、「右辺で指定された前記マスクレジスタ内のマスクデータの反転値を右辺で指定された前記マスクレジスタ、および、前記ベクトルマスクコントロールレジスタにマスクデータとして格納するマスク反転命令」、および、「ベクトルレジスタ内のデータをマスクデータとして前記ベクトルマスクコントロールレジスタ、および、指定された前記マスクレジスタに格納するマスク生成命令」を実行するベクトル制御回路であって、マスク反転命令の実行に際し、マスク反転命令の右辺で指定された前記マスクレジスタと、左辺で指定された前記マスクレジスタと、最も最近に実行された「マスク生成命令またはマスク反転命令を含む前記ベクトルマスクコントロールレジスタを更新する命令」によりマスクデータが更新されたマスクレジスタとが、すべて同一であった場合に、前記マスクレジスタ、および、前記ベクトルマスクコントロールレジスタへの反転値の格納を抑止し、前記ベクトルマスクコントロールレジスタ内のマスクデータの負論理値をマスク反転命令以降に使用することを特徴とするベクトル制御回路。
【請求項2】
マスク反転命令によりセットされ前記ベクトルマスクコントロールレジスタ内のマスクデータの正論理値・負論理値のどちらを使用するのかを示すVC選択情報保持回路を備え、前記ベクトルマスクコントロールレジスタ内のマスクデータの正論理値・負論理値の使用の選択を前記VC選択情報保持回路より行うことを特徴とする請求項1記載のベクトル制御回路。
【請求項3】
マスク反転命令によりセットされ前記マスクレジスタ内のマスクデータの正論理値・負論理値のどちらを使用するのかを示す複数の前記マスクレジスタ対応のVMx選択情報保持回路を備え、マスク反転命令の実行に際し、右辺で指定された前記マスクレジスタ内のマスクデータの正論理値・負論理値のどちらの選択し反転値をマスクデータとして格納することを特徴とする請求項1、または、2記載のベクトル制御回路。
【請求項4】
前記ベクトルマスクコントロールレジスタが、マスクデータの正論理値を格納する正論理マスクコントロールレジスタと、マスクデータの負論理値を格納する負論理マスクコントロールレジスタとを備えることを特徴とする請求項1ないし3のいずれかに記載のベクトル制御回路。
【請求項5】
複数の前記マスクレジスタが、マスクデータの正論理値を格納する正論理マスクレジスタと、マスクデータの負論理値を格納する負論理マスクレジスタとを備えることを特徴とする請求項1ないし4のいずれかに記載のベクトル制御回路。
【請求項6】
請求項1ないし5のいずれかに記載のベクトル制御回路と、前記ベクトル制御回路の制御にしたがって動作する1以上の前記ベクトルレジスタと、前記ベクトル制御回路の制御にしたがって演算を行う演算部とを有することを特徴とするベクトル処理装置。
【請求項7】
1以上のベクトルレジスタと、複数のマスクレジスタと、ベクトルマスクコントロールレジスタとを備え、「前記ベクトルマスクコントロールレジスタに格納されたマスクデータを使用してベクトル演算を行うベクトル演算命令」、「右辺で指定された前記マスクレジスタ内のマスクデータの反転値を右辺で指定された前記マスクレジスタ、および、前記ベクトルマスクコントロールレジスタにマスクデータとして格納するマスク反転命令」、および、「前記ベクトルレジスタ内のデータをマスクデータとして前記ベクトルマスクコントロールレジスタ、および、指定された前記マスクレジスタに格納するマスク生成命令」を実行するベクトル処理装置におけるベクトル制御方法であって、
マスク反転命令の実行に際し、マスク反転命令の右辺で指定された前記マスクレジスタと、左辺で指定された前記マスクレジスタと、最も最近に実行された「マスク生成命令またはマスク反転命令を含む前記ベクトルマスクコントロールレジスタを更新する命令」によりマスクデータが更新されたマスクレジスタとが、すべて同一であった場合に、前記マスクレジスタ、および、前記ベクトルマスクコントロールレジスタへの反転値の格納を抑止し、前記ベクトルマスクコントロールレジスタ内のマスクデータの負論理値をマスク反転命令以降に使用する手順を含むことを特徴とするベクトル制御方法。
【請求項8】
マスク反転命令によりセットされ前記ベクトルマスクコントロールレジスタ内のマスクデータの正論理値・負論理値のどちらを使用するのかを示すVC選択情報保持回路を備える前記ベクトル処理装置における前記ベクトル制御方法であって、前記ベクトルマスクコントロールレジスタ内のマスクデータの正論理値・負論理値の使用の選択を前記VC選択情報保持回路より行う手順を含むことを特徴とする請求項7記載のベクトル制御方法。
【請求項9】
マスク反転命令によりセットされ前記マスクレジスタ内のマスクデータの正論理値・負論理値のどちらを使用するのかを示す複数の前記マスクレジスタ対応のVMx選択情報保持回路を備える前記ベクトル処理装置におけるベクトル制御方法であって、マスク反転命令の実行に際し、右辺で指定された前記マスクレジスタ内のマスクデータの正論理値・負論理値のどちらの選択し反転値をマスクデータとして格納する手順を含むことを特徴とする請求項7、または、8記載のベクトル制御方法。
【請求項10】
1以上のベクトルレジスタと、複数のマスクレジスタと、ベクトルマスクコントロールレジスタとを備え、「前記ベクトルマスクコントロールレジスタに格納されたマスクデータを使用してベクトル演算を行うベクトル演算命令」、「右辺で指定された前記マスクレジスタ内のマスクデータの反転値を右辺で指定された前記マスクレジスタ、および、前記ベクトルマスクコントロールレジスタにマスクデータとして格納するマスク反転命令」、および、「前記ベクトルレジスタ内のデータをマスクデータとして前記ベクトルマスクコントロールレジスタ、および、指定された前記マスクレジスタに格納するマスク生成命令」を実行するベクトル処理装置におけるベクトル制御プログラムであって、
マスク反転命令の実行に際し、マスク反転命令の右辺で指定された前記マスクレジスタと、左辺で指定された前記マスクレジスタと、最も最近に実行された「マスク生成命令またはマスク反転命令を含む前記ベクトルマスクコントロールレジスタを更新する命令」によりマスクデータが更新されたマスクレジスタとが、すべて同一であった場合に、前記マスクレジスタ、および、前記ベクトルマスクコントロールレジスタへの反転値の格納を抑止し、前記ベクトルマスクコントロールレジスタ内のマスクデータの負論理値をマスク反転命令以降に使用する手順を前記ベクトル処理装置に実行させることを特徴とするベクトル制御プログラム。
【請求項11】
マスク反転命令によりセットされ前記ベクトルマスクコントロールレジスタ内のマスクデータの正論理値・負論理値のどちらを使用するのかを示すVC選択情報保持回路を備える前記ベクトル処理装置における前記ベクトル制御プログラムであって、前記ベクトルマスクコントロールレジスタ内のマスクデータの正論理値・負論理値の使用の選択を前記VC選択情報保持回路より行う手順を前記ベクトル処理装置に実行させることを特徴とする請求項10記載のベクトル制御プログラム。
【請求項12】
マスク反転命令によりセットされ前記マスクレジスタ内のマスクデータの正論理値・負論理値のどちらを使用するのかを示す複数の前記マスクレジスタ対応のVMx選択情報保持回路を備える前記ベクトル処理装置におけるベクトル制御プログラムであって、マスク反転命令の実行に際し、右辺で指定された前記マスクレジスタ内のマスクデータの正論理値・負論理値のどちらの選択し反転値をマスクデータとして格納する手順を前記ベクトル処理装置に実行させることを特徴とする請求項10、または、11記載のベクトル制御プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2008−33446(P2008−33446A)
【公開日】平成20年2月14日(2008.2.14)
【国際特許分類】
【出願番号】特願2006−203797(P2006−203797)
【出願日】平成18年7月26日(2006.7.26)
【出願人】(000168285)エヌイーシーコンピュータテクノ株式会社 (572)
【Fターム(参考)】