JPH0756892A - マスク付きベクトル演算器を持つ計算機 - Google Patents

マスク付きベクトル演算器を持つ計算機

Info

Publication number
JPH0756892A
JPH0756892A JP5198416A JP19841693A JPH0756892A JP H0756892 A JPH0756892 A JP H0756892A JP 5198416 A JP5198416 A JP 5198416A JP 19841693 A JP19841693 A JP 19841693A JP H0756892 A JPH0756892 A JP H0756892A
Authority
JP
Japan
Prior art keywords
mask
mask data
statement
memory area
execution means
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP5198416A
Other languages
English (en)
Inventor
Yoichi Koyanagi
洋一 小柳
Kenji Horie
健志 堀江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP5198416A priority Critical patent/JPH0756892A/ja
Priority to US08/237,305 priority patent/US5604913A/en
Publication of JPH0756892A publication Critical patent/JPH0756892A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8076Details on data register access
    • G06F15/8084Special arrangements thereof, e.g. mask or switch
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • G06F9/30038Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30094Condition code generation, e.g. Carry, Zero flag

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【目的】本発明は、IF文の適用の可否を表示するマス
クデータをセットするマスクレジスタを備えて、このマ
スクレジスタのマスクデータに従ってベクトル演算処理
を制御する構成を採る計算機に関し、多重にネストする
IF文を持つプログラムに対してもベクトル演算処理を
実行可能にすることを目的とする。 【構成】スタック形式に従ってマスクデータを退避する
第1及び第2のメモリ領域を獲得する手段15と、プロ
グラムにIF文が出現するときに、それが持つ条件式の
真偽を表すマスクデータを生成して第1のメモリ領域に
退避する手段16と、第2のメモリ領域に退避される最
新のマスクデータを読み出す手段17と、第1のメモリ
領域に退避されるマスクデータと、読み出されるマスク
データとからIF文に適用されるべきマスクデータを生
成してマスクレジスタに格納するとともに、第2のメモ
リ領域に退避する手段18とを備えるように構成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プログラムに記述され
るIF文/ELSE文の適用の可否を配列要素単位で表
示するマスクデータをセットするマスクレジスタを備え
て、このマスクレジスタのマスクデータに従ってベクト
ル演算処理を制御する構成を採るマスク付きベクトル演
算器を持つ計算機に関し、特に、マスクレジスタの数よ
りも多重にネストするIF文/ELSE文の構造を持つ
プログラムに対しても、マスクデータに従ってベクトル
演算処理を実行可能にするマスク付きベクトル演算器を
持つ計算機に関する。
【0002】マスク付きベクトル演算器を持つ計算機で
は、プログラムのIF文/ELSE文部分の演算をパイ
プライン的に効率良く実行するために、IF文/ELS
E文の適用の可否を配列要素単位で表示するマスクデー
タをマスクレジスタに格納する構成を採って、このマス
クデータが適用可を表示する配列要素のみの演算を有効
とするマスク機能を用いてベクトル演算を実行する構成
を採っている。
【0003】このような構成を採るマスク付きベクトル
演算器を持つ計算機では、IF文/ELSE文が多重に
ネストする場合にも、マスク機能が有効となる構成を構
築していく必要がある。
【0004】
【従来の技術】マスク付きベクトル演算器を持つ計算機
では、IF文/ELSE文の適用の可否を配列要素単位
で表示するマスクデータをマスクレジスタに格納する構
成を採って、このマスクデータが適用可を表示する配列
要素のみの演算を有効とするマスク機能を用いてベクト
ル演算を実行する構成を採っている。
【0005】例えば、図16に示すようなIF文を持つ
プログラムのときには、図17に示すように、正の値を
示すベクトルデータAの配列要素に対応付けられるマス
クレジスタのエントリー位置にIF文の適用可を表示す
る真値“0”をセットするとともに、それ以外のマスク
レジスタのエントリー位置に偽値“0”をセットする構
成を採って、真値を示すベクトルデータAの配列要素に
ついて、ベクトルデータAとベクトルデータBとのベク
トル加算を行ってベクトルデータCに設定するというベ
クトル演算を実行していくのである。ここで、図17
中、MRはマスクレジスタ、VRはベクトルレジスタを
表している。
【0006】なお、図18に示すようなELSE文を持
つプログラムのときには、ELSE文の適用の可否を表
示するマスクデータは、そのELSE文に対応付けられ
るIF文用のマスクデータの真偽値が反転したものが用
いられるものである。
【0007】このような構成を採るときにあって、従来
のマスク付きベクトル演算器を持つ計算機では、IF文
/ELSE文が多重にネストする場合に対処するため
に、このネストのレベルよりも大きな数となるマスクレ
ジスタを用意する構成を採っていた。
【0008】
【発明が解決しようとする課題】しかしながら、用意で
きるマスクレジスタの数はハードウェア規模により自ず
と限界がある。
【0009】これから、従来技術に従っていると、マス
クレジスタの数よりも大きなレベルを持つIF文/EL
SE文の多重ネストが出現するときには、マスクレジス
タを用いることができず、このようなときには、ベクト
ル演算器を用いることを放棄してスカラ演算でプログラ
ムを実行していかなくてはならなくなる。
【0010】このように、従来技術に従っていると、マ
スクレジスタの数よりも大きなレベルを持つIF文/E
LSE文の多重ネストが出現するときには、ベクトル演
算器の高速なパイプラインの能力が発揮できないことで
高速に演算を実行できなくなるという問題点があった。
【0011】本発明はかかる事情に鑑みてなされたもの
であって、プログラムに記述されるIF文/ELSE文
の適用の可否を配列要素単位で表示するマスクデータを
セットするマスクレジスタを備えて、このマスクレジス
タのマスクデータに従ってベクトル演算処理を制御する
構成を採るときにあって、マスクレジスタの数よりも多
重にネストするIF文/ELSE文の構造を持つプログ
ラムに対しても、マスクデータに従ってベクトル演算処
理を実行可能にする新たなマスク付きベクトル演算器を
持つ計算機の提供を目的とする。
【0012】
【課題を解決するための手段】図1に本発明の原理構成
を図示する。図中、1は本発明のプログラム実行方式を
具備する計算機であって、マスクレジスタ10を備える
ベクトル演算器11と、プログラム解読手段12と、第
1のメモリ領域13と、第2のメモリ領域14と、第1
の実行手段15と、第2の実行手段16と、第3の実行
手段17と、第4の実行手段18と、第5の実行手段1
9とを備える。
【0013】このマスクレジスタ10は、プログラムに
記述されるIF文/ELSE文の適用の可否を配列要素
単位で表示するマスクデータを格納する。ベクトル演算
器11は、マスクレジスタ10に格納されるマスクデー
タの指示に従ってベクトル演算処理を実行する。プログ
ラム解読手段12は、実行プログラムを解読する。第1
のメモリ領域13は、スタック形式に従って、プログラ
ムに記述されるIF文の持つ条件式の真偽を表すマスク
データを退避する。第2のメモリ領域14は、スタック
形式に従って、マスクレジスタ10への格納対象となる
マスクデータを退避する。
【0014】第1の実行手段15は、第1及び第2のメ
モリ領域13,14を獲得する。第2の実行手段16
は、第1のメモリ領域13への退避対象となるマスクデ
ータを生成して退避したり、第1のメモリ領域13に退
避される最新のマスクデータを読み出してビット対応の
反転演算を実行したりする。第3の実行手段17は、第
2の実行手段16の処理に同期させて、第2のメモリ領
域14に退避される最新のマスクデータを読み出す。第
4の実行手段18は、マスクレジスタ10への格納対象
となるマスクデータを生成して格納するとともに、第2
のメモリ領域14に退避する。第5の実行手段19は、
第2のメモリ領域14に退避されるマスクデータの最新
マスクデータを更新して、その最新マスタデータをマス
クレジスタ10に格納する。
【0015】
【作用】本発明では、実行プログラムにIF文が出現す
ると、第2の実行手段16は、そのIF文の持つ条件式
の真偽を表すマスクデータを生成して第1のメモリ領域
に退避し、第3の実行手段17は、第2のメモリ領域1
4に退避される最新のマスクデータを読み出す。
【0016】そして、第4の実行手段18は、この第2
の実行手段16の退避するマスクデータと、この第3の
実行手段17の読み出すマスクデータとにビット対応の
論理演算を施して、前者と後者の双方が共に真値を示す
ときにのみ真値を示すものとなる配列要素を持つマスク
データを生成してマスクレジスタ10に格納するととも
に、第2のメモリ領域14に退避する。すなわち、第2
の実行手段16の退避するマスクデータと、第3の実行
手段17の読み出すマスクデータとにビット対応の論理
積演算を施すことで、多重にネストするIF文の適用の
可否を表示するマスクデータを生成してマスクレジスタ
10に格納するとともに、第2のメモリ領域14に退避
するのである。
【0017】一方、実行プログラムにELSE文が出現
すると、第2の実行手段16は、第1のメモリ領域13
に退避される最新のマスクデータを読み出して、この読
み出したマスクデータにビット対応の反転演算を施すこ
とで真偽が逆となるマスクデータを生成し、第3の実行
手段17は、第2のメモリ領域14に退避される最新の
マスクデータを読み出す。
【0018】そして、第4の実行手段18は、この第2
の実行手段16の生成する反転マスクデータと、この第
3の実行手段17の読み出すマスクデータとにビット対
応の論理演算を施して、前者と後者の双方が共に真値を
示すときにのみ真値を示すものとなる配列要素を持つマ
スクデータを生成してマスクレジスタ10に格納すると
ともに、第2のメモリ領域14に退避する。すなわち、
第2の実行手段16の生成する反転マスクデータと、第
3の実行手段17の読み出すマスクデータとにビット対
応の論理積演算を施すことで、多重にネストするELS
E文の適用の可否を表示するマスクデータを生成してマ
スクレジスタ10に格納するとともに、第2のメモリ領
域14に退避するのである。
【0019】このように、第1のメモリ領域13には、
出現したIF文の持つ条件式の真偽を表すマスクデータ
が出現順に格納されていくとともに、第2のメモリ領域
14には、出現したIF文/ELSE文の適用の可否を
表示するマスクデータが出現順に格納されていくことに
なる。
【0020】一方、実行プログラムにIF終了文が出現
すると、第5の実行手段19は、第2のメモリ領域14
に退避される最新のマスクデータの1つ前のマスクデー
タを新たに最新のマスクデータとして設定するととも
に、この設定するマスクデータをマスクレジスタに格納
する。すなわち、終了したIF文に入る直前の状態に戻
すのである。
【0021】このようにして、本発明では、マスクレジ
スタ10が1つであっても、そのマスクレジスタ10に
対して多重にネストするIF文やELSE文の適用の可
否を表すマスクデータが正確に設定されていくことにな
るので、ネストの多重度に影響されることなく、多重に
ネストするIF文/ELSE文の構造を持つプログラム
についてもマスクデータに従ってベクトル演算処理を実
行できるようになるのである。
【0022】
【実施例】以下、実施例に従って本発明を詳細に説明す
る。図2に、本発明のプログラム実行方式を実装する計
算機1のシステム構成を図示する。図中、図1で説明し
たものと同じものについては同一の記号で示してある。
【0023】20はデータ処理プログラムであって、I
F文/ELSE文/IF終了文を含むプログラム記述に
従って規定のデータ処理を実行するもの、21は第1の
スタックであって、スタック形式に従って、データ処理
プログラム20に記述されるIF文の持つ条件式の真偽
を表すマスクデータを退避するもの、22は第2のスタ
ックであって、スタック形式に従って、マスクレジスタ
10への格納対象となるマスクデータを退避するもので
ある。
【0024】23はデータ処理プログラム20から呼び
出されるスタック獲得プログラムであって、例えばデー
タ処理プログラム20の起動時に呼び出されて、第1及
び第2のスタック21,22を獲得するもの、24はデ
ータ処理プログラム20から呼び出されるIF文処理ル
ーチンであって、データ処理プログラム20のIF文の
出現時に呼び出されて、規定の処理ルーチンを実行する
もの、25はデータ処理プログラム20から呼び出され
るELSE文処理ルーチンであって、データ処理プログ
ラム20のELSE文の出現時に呼び出されて、規定の
処理ルーチンを実行するもの、26はデータ処理プログ
ラム20から呼び出されるIF終了文処理ルーチンであ
って、データ処理プログラム20のIF終了文の出現時
に呼び出されて、規定の処理ルーチンを実行するもので
ある。
【0025】図3に、第1及び第2のスタック21,2
2のメモリ構成を図示する。この図に示すように、「V
MRCOND」で表される第1のスタック21は、書込
対象のメモリ領域を指し示す「VSR26」というポイ
ンタを持つように構成される。ここで、このポインタV
SR26は、初期状態として先頭のメモリ領域を指し示
すようにセットされる。一方、「VMRBASE」で表
される第2のスタック22は、初期状態として先頭のメ
モリ領域にオール“0”がセットされるように構成され
るとともに、読出対象のメモリ領域を指し示す「VSR
27」というポインタと、それに続く書込対象のメモリ
領域を指し示す「VSR28」というポインタとを持つ
ように構成される。ここで、このポインタVSR27
は、初期状態として先頭のメモリ領域を指し示すように
セットされる。
【0026】図4に、IF文処理ルーチン24の実行す
る処理フローの一実施例、図5に、ELSE文処理ルー
チンの実行する処理フローの一実施例、図6に、IF終
了文処理ルーチンの実行する処理フローの一実施例を図
示する。次に、これらの処理フローに従って、本発明に
よるプログラム実行方式の動作処理について詳細に説明
する。
【0027】IF文処理ルーチン24は、データ処理プ
ログラム20のプログラム実行中にIF文が出現する
と、図4の処理フローに示すように、先ず最初に、ステ
ップ1で、その出現したIF文の持つ条件式の真偽を表
すマスクデータを作成する。ここでは、説明の便宜上、
条件式が真であるときには“0”、偽であるときには
“1”を表示するマスクデータを作成するものとする。
【0028】次に、ステップ2で、ステップ1で作成し
たマスクデータをポインタVSR26が指し示す第1の
スタック21のメモリ領域に格納する。続いて、ステッ
プ3で、ポインタVSR27が指し示す第2のスタック
22のメモリ領域からマスクデータを読み出し、この読
み出したマスクデータと、ステップ1で作成したマスク
データとにビット対応の論理和演算(負の論理積演算で
ある)を施すことで新たなマスクデータを作成して、マ
スクレジスタ10に設定するとともに、その設定したマ
スクデータをポインタVSR28が指し示す第2のスタ
ック22のメモリ領域に格納する。すなわち、ビット対
応の論理和演算に従って、共に真値を表示するビット部
分については真値を表示し、それ以外のビット部分につ
いては偽値を表示するマスタデータを作成して、それを
マスクレジスタ10に設定するとともに、第2のスタッ
ク22に格納するのである。
【0029】続いて、ステップ4で、ポインタVSR2
6,27,28が指し示すメモリ領域を1つ進めて処理
を終了する。このようにして、IF文処理ルーチン24
は、IF文が出現すると、図7(a)に示すように、そ
のIF文の持つ条件式の真偽を表すマスクデータを作成
して第1のスタック21に格納するとともに、作成した
マスクデータと、第2のスタック22に格納される最新
のマスクデータとにビット対応の論理和演算を施すこと
で、多重にネストするそのIF文の適用の可否を表示す
るマスクデータを作成して、マスクレジスタ10と第2
のスタック22とに格納していくよう処理するのであ
る。ここで、図7(a)のマスクデータ中に記述される
“×”は、“0”か“1”のいずれかの値を表してい
る。
【0030】このIF文処理ルーチン24の処理に従っ
て、第1のスタック21には、出現したIF文の持つ条
件式の真偽を表すマスクデータが出現順に格納されてい
くとともに、第2のスタック22には、出現したIF文
の適用の可否を表示するマスクデータが出現順に格納さ
れていくことになる。
【0031】そして、このIF文処理ルーチン24の処
理に従って、IF文が出現すると、マスクレジスタ10
には、多重にネストするIF文の適用の可否を表示する
マスクデータが正確に設定されていくことになるので、
これを受けて、ベクトル演算器11は、IF文に続いて
規定される処理をベクトル演算処理に従って高速に実行
できることになる。
【0032】一方、ELSE文処理ルーチン25は、デ
ータ処理プログラム20のプログラム実行中にELSE
文が出現すると、図5の処理フローに示すように、先ず
最初に、ステップ1で、ポインタVSR26,27,2
8が指し示すメモリ領域を1つ戻す。すなわち、IF文
の出現により進めたポインタを1つ戻すのである。
【0033】次に、ステップ2で、ポインタVSR26
が指し示す第1のスタック21のメモリ領域からマスク
データを読み出し、このマスクデータをビット毎に論理
反転することで新たなマスクデータを作成する。
【0034】続いて、ステップ3で、ポインタVSR2
7が指し示す第2のスタック22のメモリ領域からマス
クデータを読み出し、この読み出したマスクデータと、
ステップ1で作成した反転マスクデータとにビット対応
の論理和演算を施すことで新たなマスクデータを作成し
て、マスクレジスタ10に設定するとともに、その設定
したマスクデータをポインタVSR28が指し示す第2
のスタック22のメモリ領域に格納する。すなわち、ビ
ット対応の論理和演算に従って、共に真値を表示するビ
ット部分については真値を表示し、それ以外のビット部
分については偽値を表示するマスタデータを作成して、
それをマスクレジスタ10に設定するとともに、第2の
スタック22に格納するのである。
【0035】続いて、ステップ4で、ポインタVSR2
6,27,28が指し示すメモリ領域を1つ進めて処理
を終了する。このようにして、ELSE文処理ルーチン
25は、ELSE文が出現すると、図7(b)に示すよ
うに、そのELSE文に対応付けられるIF文の持つ条
件式の真偽を表すマスクデータを第1のスタック21か
ら読み出してビット毎に論理反転し、このビット反転し
たマスクデータと、第2のスタック22に格納される最
新のマスクデータとにビット対応の論理和演算を施すこ
とで、多重にネストするそのELSE文の適用の可否を
表示するマスクデータを作成して、マスクレジスタ10
と第2のスタック22とに格納していくよう処理するの
である。
【0036】このELSE文処理ルーチン25の処理に
従って、第2のスタック22には、出現したELSE文
の適用の可否を表示するマスクデータについても出現順
に格納されていくことになる。
【0037】そして、このELSE文処理ルーチン25
の処理に従って、ELSE文が出現すると、マスクレジ
スタ10には、多重にネストするELSE文の適用の可
否を表示するマスクデータが正確に設定されていくこと
になるので、これを受けて、ベクトル演算器11は、E
LSE文に続いて規定される処理をベクトル演算処理に
従って高速に実行できることになる。
【0038】一方、IF終了文処理ルーチン26は、デ
ータ処理プログラム20のプログラム実行中にIF終了
文が出現すると、図6の処理フローに示すように、先ず
最初に、ステップ1で、ポインタVSR26,27,2
8が指し示すメモリ領域を1つ戻す。すなわち、IF文
の出現により進めたポインタを1つ戻すのである。
【0039】次に、ステップ2で、ポインタVSR27
が指し示す第2のスタック22のメモリ領域からマスク
データを読み出して、この読み出したマスクデータをマ
スクレジスタ10に設定して処理を終了する。
【0040】このようにして、IF終了文処理ルーチン
26は、図7(c)に示すように、第2のスタック22
に最後に格納されたマスクデータ1つ前のマスクデータ
を第2のスタック22に格納された最新のマスクデータ
として設定するとともに、この設定マスクデータをマス
クレジスタ10に格納していくよう処理するのである。
【0041】このIF終了文処理ルーチン26の処理に
従って、IF終了文が出現すると、終了したIF文に入
る直前の状態に戻されることになる。次に、これらの処
理ルーチンによる本発明の具体的なプログラム実行処理
について説明する。
【0042】データ処理プログラム20のプログラム記
述が図8に示すようなものである場合には、処理L1に
入る前に、スタック獲得プログラム23に従って、図9
(a)に示すように、第1及び第2のスタック21,2
2が獲得されて初期化される。
【0043】マスク付きベクトル処理に従って処理L1
が終了すると、続いて、IF文処理ルーチン24に従っ
て、図9(b)に示すように、条件式xの真偽を表すマ
スクデータが作成されて第1のスタック21に格納され
るとともに、ポインタVSR27の指し示すオール
“0”のマスクデータとのビット対応の論理和演算によ
りマスクデータが作成されて、マスクレジスタ10/第
2のスタック22に格納され、続いて、図10(a)に
示すように、ポインタVSR26,27,28が1つ進
ませられる。
【0044】マスク付きベクトル処理に従って処理L2
が終了すると、続いて、IF文処理ルーチン24に従っ
て、図10(b)に示すように、条件式yの真偽を表す
マスクデータが作成されて第1のスタック21に格納さ
れるとともに、ポインタVSR27の指し示すマスクデ
ータ(前回マスクレジスタ10に設定されたもの)との
ビット対応の論理和演算によりマスクデータが作成され
て、マスクレジスタ10/第2のスタック22に格納さ
れ、続いて、図11(a)に示すように、ポインタVS
R26,27,28が1つ進ませられる。
【0045】マスク付きベクトル処理に従って処理L3
が終了すると、続いて、IF終了文処理ルーチン26に
従って、図11(b)に示すように、1つ前に戻された
ポインタVSR27の指し示すマスクデータが読み出さ
れてマスクレジスタ10に設定されることで、2番目に
出現したIF文に入る直前の状態に戻される。
【0046】マスク付きベクトル処理に従って処理L4
が終了すると、続いて、IF終了文処理ルーチン26に
従って、図11(c)に示すように、1つ前に戻された
ポインタVSR27の指し示すマスクデータが読み出さ
れてマスクレジスタ10に設定されることで、最初に出
現したIF文に入る直前の状態に戻されて処理を終了す
る。
【0047】次に、別のプログラム実行処理について説
明する。データ処理プログラム20のプログラム記述が
図12に示すようなものである場合には、処理L1に入
る前に、スタック獲得プログラム23に従って、図13
(a)に示すように、第1及び第2のスタック21,2
2が獲得されて初期化される。
【0048】マスク付きベクトル処理に従って処理L1
が終了すると、続いて、IF文処理ルーチン24に従っ
て、図13(b)に示すように、条件式xの真偽を表す
マスクデータが作成されて第1のスタック21に格納さ
れるとともに、ポインタVSR27の指し示すオール
“0”のマスクデータとのビット対応の論理和演算によ
りマスクデータが作成されて、マスクレジスタ10/第
2のスタック22に格納され、続いて、図14(a)に
示すように、ポインタVSR26,27,28が1つ進
ませられる。
【0049】マスク付きベクトル処理に従って処理L2
が終了すると、続いて、ELSE文処理ルーチン25に
従って、図14(b)に示すように、ポインタVSR2
6の指し示すマスクデータ(条件式xの真偽を表すも
の)が読み出されてビット毎に論理反転することで新た
なマスクデータが作成され、この反転マスクデータと、
ポインタVSR27の指し示すマスクデータ(前回マス
クレジスタ10に設定されたもの)とのビット対応の論
理和演算によりマスクデータが作成されて、マスクレジ
スタ10/第2のスタック22に格納され、続いて、図
15(a)に示すように、ポインタVSR26,27,
28が1つ進ませられる。
【0050】マスク付きベクトル処理に従って処理L3
が終了すると、続いて、IF終了文処理ルーチン26に
従って、図15(b)に示すように、1つ前に戻された
ポインタVSR27の指し示すマスクデータが読み出さ
れてマスクレジスタ10に設定されることで、最初に出
現したIF文に入る直前の状態に戻され、続いて、マス
ク付きベクトル処理に従って処理L4が実行されて処理
を終了する。
【0051】このようにして、IF文処理ルーチン24
/ELSE文処理ルーチン25/IF終了文処理ルーチ
ン26の処理に従って、マスクレジスタ10に対して、
多重にネストするIF文/ELSE文の適用の可否を表
示するマスタデータが正確に設定されていくことにな
る。
【0052】図示実施例について説明したが、本発明は
これに限定されるものではない。例えば、実施例では、
マスクレジスタ10を1つとする構成を開示したが、本
発明はこれに限られるものではなく、マスクレジスタ1
0が複数用意されていて、これらを従来技術通りに使用
していくことで残りが1つとなったときに本発明に入る
ように構成してもよいのである。
【0053】
【発明の効果】以上説明したように、本発明によれば、
プログラムに記述されるIF文/ELSE文の適用の可
否を配列要素単位で表示するマスクデータをセットする
マスクレジスタを備えて、このマスクレジスタのマスク
データに従ってベクトル演算処理を制御する構成を採る
ときにあって、マスクレジスタの数よりも多重にネスト
するIF文/ELSE文の構造を持つプログラムに対し
ても、マスクデータに従ってベクトル演算処理が実行可
能となるのである。
【図面の簡単な説明】
【図1】本発明の原理構成図である。
【図2】本発明を実装する計算機のシステム構成図であ
る。
【図3】第1及び第2のスタックのメモリ構成図であ
る。
【図4】IF文処理ルーチンの実行する処理フローの一
実施例である。
【図5】ELSE文処理ルーチンの実行する処理フロー
の一実施例である。
【図6】IF終了文処理ルーチンの実行する処理フロー
の一実施例である。
【図7】各処理ルーチンの処理内容の説明図である。
【図8】データ処理プログラムのプログラム記述例であ
る。
【図9】プログラム実行処理の説明図である。
【図10】プログラム実行処理の説明図である。
【図11】プログラム実行処理の説明図である。
【図12】データ処理プログラムのプログラム記述例で
ある。
【図13】プログラム実行処理の説明図である。
【図14】プログラム実行処理の説明図である。
【図15】プログラム実行処理の説明図である。
【図16】IF文を持つプログラムの一例である。
【図17】マスク機能付きベクトル演算処理の説明図で
ある。
【図18】ELSE文を持つプログラムの一例である。
【符号の説明】 1 計算機 10 マスクレジスタ 11 ベクトル演算器 12 プログラム解読手段 13 第1のメモリ領域 14 第2のメモリ領域 15 第1の実行手段 16 第2の実行手段 17 第3の実行手段 18 第4の実行手段 19 第5の実行手段

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 プログラムに記述されるIF文/ELS
    E文の適用の可否を配列要素単位で表示するマスクデー
    タをセットするマスクレジスタを備えて、該マスクレジ
    スタのマスクデータに従ってベクトル演算処理を制御す
    る構成を採るマスク付きベクトル演算器を持つ計算機に
    おいて、 スタック形式に従ってマスクデータを退避する第1及び
    第2のメモリ領域(13,14) を獲得する第1の実行手段(1
    5)と、 実行プログラムにIF文が出現するときに、該IF文の
    持つ条件式の真偽を表すマスクデータを生成して上記第
    1のメモリ領域(13)に退避する第2の実行手段(16)と、 上記第2の実行手段(16)の処理に同期させて、上記第2
    のメモリ領域(14)に退避される最新のマスクデータを読
    み出す第3の実行手段(17)と、 上記第2の実行手段(16)の退避するマスクデータと、上
    記第3の実行手段(17)の読み出すマスクデータとにビッ
    ト対応の論理演算を施すことで、出現したIF文に適用
    されるべきマスクデータを生成して上記マスクレジスタ
    に格納するとともに、上記第2のメモリ領域(14)に退避
    する第4の実行手段(18)とを備えることを、 特徴とするマスク付きベクトル演算器を持つ計算機。
  2. 【請求項2】 請求項1記載のマスク付きベクトル演算
    器を持つ計算機において、 第2の実行手段(16)は、実行プログラムにELSE文が
    出現するときには、第1のメモリ領域(13)に退避される
    最新のマスクデータを読み出して、該マスクデータにビ
    ット対応の反転演算を施すよう処理し、 第4の実行手段(18)は、上記第2の実行手段(16)の処理
    を受けて、上記第2の実行手段(16)の生成する反転マス
    クデータと、第3の実行手段(17)の読み出すマスクデー
    タとにビット対応の論理演算を施すことで、出現したE
    LSE文に適用されるべきマスクデータを生成してマス
    クレジスタに格納するとともに、第2のメモリ領域(14)
    に退避するよう処理することを、 特徴とするマスク付きベクトル演算器を持つ計算機。
  3. 【請求項3】 請求項1又は2記載のマスク付きベクト
    ル演算器を持つ計算機において、 実行プログラムにIF終了文が出現するときに、第2の
    メモリ領域(14)に退避される最新のマスクデータの1つ
    前のマスクデータを新たに最新のマスクデータとして設
    定するとともに、この設定するマスクデータをマスクレ
    ジスタに格納する第5の実行手段(19)を備えることを、 特徴とするマスク付きベクトル演算器を持つ計算機。
JP5198416A 1993-08-10 1993-08-10 マスク付きベクトル演算器を持つ計算機 Withdrawn JPH0756892A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP5198416A JPH0756892A (ja) 1993-08-10 1993-08-10 マスク付きベクトル演算器を持つ計算機
US08/237,305 US5604913A (en) 1993-08-10 1994-05-03 Vector processor having a mask register used for performing nested conditional instructions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5198416A JPH0756892A (ja) 1993-08-10 1993-08-10 マスク付きベクトル演算器を持つ計算機

Publications (1)

Publication Number Publication Date
JPH0756892A true JPH0756892A (ja) 1995-03-03

Family

ID=16390755

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5198416A Withdrawn JPH0756892A (ja) 1993-08-10 1993-08-10 マスク付きベクトル演算器を持つ計算機

Country Status (2)

Country Link
US (1) US5604913A (ja)
JP (1) JPH0756892A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007526571A (ja) * 2004-03-02 2007-09-13 イマジネイション テクノロジーズ リミテッド Simdデバイスにおける制御フロー管理のための方法及び装置
KR100863582B1 (ko) * 2007-01-05 2008-10-15 한상재 원지반의 전단강도 예측방법
JP2010186467A (ja) * 2009-02-10 2010-08-26 Internatl Business Mach Corp <Ibm> コンピュータにより実施される方法、コンピュータ可読ストレージ媒体およびシステム(simdアーキテクチャの条件付きデータ選択のための高速ベクトル・マスキング・アルゴリズム)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5717947A (en) * 1993-03-31 1998-02-10 Motorola, Inc. Data processing system and method thereof
US6222846B1 (en) * 1998-04-22 2001-04-24 Compaq Computer Corporation Method and system for employing a non-masking interrupt as an input-output processor interrupt
US7100026B2 (en) 2001-05-30 2006-08-29 The Massachusetts Institute Of Technology System and method for performing efficient conditional vector operations for data parallel architectures involving both input and conditional vector values
US6269435B1 (en) * 1998-09-14 2001-07-31 The Board Of Trustees Of The Leland Stanford Junior University System and method for implementing conditional vector operations in which an input vector containing multiple operands to be used in conditional operations is divided into two or more output vectors based on a condition vector
US6678806B1 (en) * 2000-08-23 2004-01-13 Chipwrights Design, Inc. Apparatus and method for using tagged pointers for extract, insert and format operations
US6973404B1 (en) * 2000-09-11 2005-12-06 Agilent Technologies, Inc. Method and apparatus for administering inversion property in a memory tester
US6732253B1 (en) 2000-11-13 2004-05-04 Chipwrights Design, Inc. Loop handling for single instruction multiple datapath processor architectures
US6931518B1 (en) 2000-11-28 2005-08-16 Chipwrights Design, Inc. Branching around conditional processing if states of all single instruction multiple datapaths are disabled and the computer program is non-deterministic
US7493607B2 (en) 2002-07-09 2009-02-17 Bluerisc Inc. Statically speculative compilation and execution
US20050114850A1 (en) 2003-10-29 2005-05-26 Saurabh Chheda Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control
US7996671B2 (en) 2003-11-17 2011-08-09 Bluerisc Inc. Security of program executables and microprocessors based on compiler-architecture interaction
US8607209B2 (en) 2004-02-04 2013-12-10 Bluerisc Inc. Energy-focused compiler-assisted branch prediction
US20070294181A1 (en) * 2006-05-22 2007-12-20 Saurabh Chheda Flexible digital rights management with secure snippets
US20080126766A1 (en) 2006-11-03 2008-05-29 Saurabh Chheda Securing microprocessors against information leakage and physical tampering
US20080154379A1 (en) * 2006-12-22 2008-06-26 Musculoskeletal Transplant Foundation Interbody fusion hybrid graft
US8984499B2 (en) * 2011-12-15 2015-03-17 Intel Corporation Methods to optimize a program loop via vector instructions using a shuffle table and a blend table
WO2013089749A1 (en) * 2011-12-15 2013-06-20 Intel Corporation Methods to optimize a program loop via vector instructions using a shuffle table and a mask store table
US10789071B2 (en) * 2015-07-08 2020-09-29 Intel Corporation Dynamic thread splitting having multiple instruction pointers for the same thread

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4435758A (en) * 1980-03-10 1984-03-06 International Business Machines Corporation Method for conditional branch execution in SIMD vector processors
JPS56149646A (en) * 1980-04-21 1981-11-19 Toshiba Corp Operation controller
US4901225A (en) * 1984-04-09 1990-02-13 Kabushiki Kaisha Toshiba Processing apparatus with hierarchical structure for implementing a machine instruction
US5187796A (en) * 1988-03-29 1993-02-16 Computer Motion, Inc. Three-dimensional vector co-processor having I, J, and K register files and I, J, and K execution units
US5274821A (en) * 1989-08-14 1993-12-28 International Business Machines Corporation Communication between prolog and an external process
US5371862A (en) * 1991-02-27 1994-12-06 Kabushiki Kaisha Toshiba Program execution control system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007526571A (ja) * 2004-03-02 2007-09-13 イマジネイション テクノロジーズ リミテッド Simdデバイスにおける制御フロー管理のための方法及び装置
KR100863582B1 (ko) * 2007-01-05 2008-10-15 한상재 원지반의 전단강도 예측방법
JP2010186467A (ja) * 2009-02-10 2010-08-26 Internatl Business Mach Corp <Ibm> コンピュータにより実施される方法、コンピュータ可読ストレージ媒体およびシステム(simdアーキテクチャの条件付きデータ選択のための高速ベクトル・マスキング・アルゴリズム)

Also Published As

Publication number Publication date
US5604913A (en) 1997-02-18

Similar Documents

Publication Publication Date Title
JPH0756892A (ja) マスク付きベクトル演算器を持つ計算機
US4628436A (en) Digital controller
EP0548052A2 (en) Video picking and clipping method and apparatus
JPS6326898B2 (ja)
JPS62115542A (ja) 情報処理装置
JP2553200B2 (ja) 情報処理装置
US5812836A (en) System for processing iterative tasks in data processing systems
JPH07219766A (ja) 演算処理装置
JPH0616287B2 (ja) マスク付きベクトル演算処理装置
JPH0222413B2 (ja)
US5838297A (en) Method for color image scaling and other geometrical transformations
JPH04106652A (ja) 例外処理システム
JP3067161B2 (ja) ファジィ演算処理装置
JPS6230455B2 (ja)
JPS6227867A (ja) 画像デ−タ修正方式
JPH01223565A (ja) 情報処理装置
JPH0398163A (ja) ベクトルデータ処理装置
JP2652973B2 (ja) 画像処理装置
JPH0588887A (ja) データ処理装置
JPH01241627A (ja) マイクロプログラム制御装置
JPS62219073A (ja) 図形処理システムにおける図面デ−タ回復方式
JPS58205256A (ja) データ処理方法
JPH01223564A (ja) 情報処理装置
JPS6045455B2 (ja) プログラム進行状態表示装置
JPH0397081A (ja) 図形表示装置

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20001031