JPH04349570A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPH04349570A
JPH04349570A JP12336691A JP12336691A JPH04349570A JP H04349570 A JPH04349570 A JP H04349570A JP 12336691 A JP12336691 A JP 12336691A JP 12336691 A JP12336691 A JP 12336691A JP H04349570 A JPH04349570 A JP H04349570A
Authority
JP
Japan
Prior art keywords
vector
mask
instruction
register
information
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.)
Pending
Application number
JP12336691A
Other languages
English (en)
Inventor
Noriaki Sakai
則彰 境
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP12336691A priority Critical patent/JPH04349570A/ja
Publication of JPH04349570A publication Critical patent/JPH04349570A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マスクベクトルによっ
てベクトルオペランドの演算が制御される情報処理装置
に関するものである。
【0002】
【従来の技術】従来、配列演算を高速に行える情報処理
装置として、種々のベクトル命令を用いることができる
ものがあり、さらに、IF文を含んだDOループを高速
化するためにマスクベクトル生成命令およびマスクベク
トルで制御されるベクトル命令を使用できるものがある
。これらのベクトル命令に関しては日経エレクトロニク
ス誌の1983.4.11号(ページ108〜126)
に解説されている。
【0003】ところでIF文を含んだDOループはマス
クベクトル生成命令と、マスクベクトル制御ベクトル命
令の組み合わせにより処理されるが、IF文がIF〜T
HEN〜ELSEのように条件節の値が真偽どちらの場
合でもなんらかの処理を行うような場合には、THEN
節とELSE節の処理のために2回のマスクベクトル命
令の実行が必要となる。また、THEN節とELSE節
とでベクトルオペランドが同一であっても2つのベクト
ル命令を実行しなければならない。
【0004】図5(a)にそのようなIF文の例を示す
。この例では配列B(I)の要素のうち、正のものに対
しては配列C(I)が加算されて配列A(I)に代入さ
れ、一方、配列B(I)の要素のうち、負かまたは零の
ものに対しては配列C(I)が減算されて配列A(I)
に代入される。
【0005】このようなIF文を実現する命令列を図5
(b)に示す。VLDはベクトルレジスタへのロード命
令、VMGT,VMLEはマスクベクトル生成命令であ
り、第1オペランドと第2オペランドの各要素の大小比
較を行ってマスクベクトルを生成する。VMGT命令は
、第1オペランド>第2オペランドのとき、マスク値“
1”を生成し、そうでないときはマスク値“0”を生成
する。VMLE命令は、第1オペランド≦第2オペラン
ドのとき、マスク値“1”を生成し、そうでないときは
マスク値“0”を生成する。ただし、これらのマスク値
は一例であり、アーキテクチャによって任意に決められ
る。VADDM命令はマスクベクトル制御ベクトル加算
命令であり、VSUBM命令はマスクベクトル制御ベク
トル減算命令である。これらの命令ではマスクベクトル
の値が“1”のときは、演算が実行されるが、“0”の
ときは対応するベクトルレジスタの要素は変更されない
【0006】最初の2つのVLD命令によってベクトル
レジスタにベクトルオペランドがロードされる。そして
、続くVMGT命令,VADDM命令によってIF〜T
HEN部の演算が実行される。その後、VMLE命令,
VSUBM命令によってELSE部の演算が実行され、
最後にVST命令により結果がストアされる。
【0007】他のIF文の例を図6(a)に示す。この
例では配列B(I)の要素のうち、正のものに対しては
配列C(I)が乗算されて配列A(I)に代入され、一
方、配列B(I)の要素のうち、負かまたは零のものに
対しては配列C(I)が減算されて配列A(I)に代入
される。
【0008】このようなIF文を実現する命令列を図6
(b)に示す。VLDはベクトルレジスタへのロード命
令、VMGT,VMLEはマスクベクトル生成命令であ
り、第1オペランドと第2オペランドの各要素の大小比
較を行ってマスクベクトルを生成する。VMGT命令は
、第1オペランド>第2オペランドのとき、マスク値“
1”を生成し、そうでないときはマスク値“0”を生成
する。VMLE命令は、第1オペランド≦第2オペラン
ドのとき、マスク値“1”を生成し、そうでないときは
マスク値“0”を生成する。ただし、これらのマスク値
は一例であり、アーキテクチャによって任意に決められ
る。VMLTM命令はマスクベクトル制御ベクトル乗算
命令であり、VADDM命令はマスクベクトル制御ベク
トル減算命令である。これらの命令ではマスクベクトル
の値が“1”のときは、演算が実行されるが“0”のと
きは対応するベクトルレジスタの要素は変更されない。
【0009】最初の2つのVLD命令によってベクトル
レジスタにベクトルオペランドがロードされる。そして
、続くVMGT命令,VMLTM命令によってIF〜T
HEN部の演算が実行される。その後、VMLE命令,
VADDM命令によってELSE部の演算が実行され、
最後にVST命令により結果がストアされる。
【0010】
【発明が解決しようとする課題】このように従来の情報
処理装置では、IF〜THEN部とELSE部とが別々
に実行されるので、THEN節とELSE節の処理のた
めに2回のマスクベクトル命令の実行が必要となる。ま
た、THEN節とELSE節とでベクトルオペランドが
同一であっても2つのベクトル命令を実行しなければな
らない。
【0011】本発明の目的は、このような問題を解決し
、IF文の処理を行うとき、THEN節とELSE節の
処理を一つのベクトル命令で行えるようにした情報処理
装置を提供することにある。
【0012】
【課題を解決するための手段】第1の発明は、マスクベ
クトルによってベクトルオペランドの演算が制御される
情報処理装置において、制御情報により指定される演算
をベクトルオペランドに対して行うALUと、前記マス
クベクトルと、ベクトル命令の情報とにもとづいて前記
制御情報を生成し、前記ALUに出力するALU制御手
段とを備えたことを特徴とする。
【0013】第2の発明は、マスクベクトルによってベ
クトルオペランドの演算が制御される情報処理装置にお
いて、複数の演算器と、制御情報にもとづいてベクトル
オペランドを前記演算器に分配する分配手段と、前記制
御情報にもとづいて前記演算器による演算結果を選択す
る収集手段と、前記マスクベクトルと、ベクトル命令の
情報とにもとづいて前記制御情報を生成し、前記分配手
段と前記収集手段とに出力する制御手段とを備えたこと
を特徴とする。
【0014】
【実施例】次に本発明の実施例について図面を参照して
説明する。図1に第1の発明による情報処理装置の一例
を示す。ベクトルレジスタ12,13にはそれぞれベク
トルオペランドが格納される。演算レジスタ15,16
はそれぞれベクトルオペランドの演算、マスクベクトル
生成などのためにベクトルレジスタ12,13からベク
トルオペランドの各要素を受け取り、一時的に保持する
。ALU18は、レジスタ15,16からベクトルオペ
ランドの各要素を受け取り、それらに対して加算、減算
などの算術演算や、ビットごとのアンド、オアといった
論理演算を行う。ALU18が実行する演算の種類、従
ってALUモードはエンコーダ17から与えられる制御
情報により決まる。レジスタ19はALU18の演算結
果を受け取り保持する。
【0015】マスクベクトルレジスタ11にはマスクベ
クトルが格納される。マスクベクトルレジスタ11はレ
ジスタ12,13に対応しており、ベクトルオペランド
がレジスタ15,16に読み出されるごとに、対応する
マスクベクトルがレジスタ11から読み出され、レジス
タ14に保持される。
【0016】エンコーダ17は、レジスタ14に保持さ
れたマスクベクトルと、処理中の命令のOPコード部の
情報とにもとづいて、ALU18のモードを指定するた
めの上記制御情報を生成し、ALU18に供給する。
【0017】このように構成された情報処理装置では、
図5(a)に示したDOループのIF文の部分は図2に
示す命令列によって実現される。図2の命令列が図5(
b)の命令列と異なるのは、VMGT〜VSUBMの部
分がVMGT〜VAOSMに置き換えられている点であ
る。VAOSM命令はマスクベクトルの値に応じて加算
もしくは減算を実行する命令である。すなわちマスク値
が“1”の場合、ベクトルオペランドの加算を実行し、
マスク値が“0”の場合にはベクトルオペランドの減算
を実行する。
【0018】図1において、OPコードがVAOSM命
令の場合、エンコーダ17はレジスタ14の出力に応じ
て制御情報を出力し、ALU18のモードを切り換える
。すなわちレジスタ14の出力が“1”の場合には、A
LU18に加算を行わせ、“0”の場合には減算を行わ
せる。その結果、マスクベクトルの値に応じて加算、減
算が切り換えられ、図5(a)のIF文のTHEN節お
よびELSE節の処理は一つの命令VAOSMによって
実行されることになる。
【0019】なお、ここでは加算と減算を切り換える場
合を例にしたが、これに限らず情報処理装置のアーキテ
クチャに応じて様々な演算の組み合わせが可能である。
【0020】次に第2の発明の情報処理装置の実施例に
ついて説明する。図3にそのブロック図を示す。ベクト
ルレジスタ22,23にはそれぞれベクトルオペランド
が格納される。演算レジスタ25,26はそれぞれベク
トルオペランドの演算、マスクベクトル生成などのため
にベクトルレジスタ22,23からベクトルオペランド
の各要素を受け取り、一時的に保持する。分配器28は
、レジスタ25,26からベクトルオペランドの各要素
を受け取り、それらを加算器29、減算器30、あるい
は乗算器31に供給する。分配器28がベクトルオペラ
ンドをどの演算器に供給するかは、エンコーダ27から
与えられる制御情報により決まる。
【0021】加算器29は分配器28から供給される2
つのベクトルオペランドを加算する。レジスタ32はそ
の加算結果を受け取り、保持する。減算器30は分配器
28から供給される2つのベクトルオペランドの減算を
行う。レジスタ33はその減算結果を受け取り、保持す
る。乗算器31は分配器28から供給される2つのベク
トルオペランドの乗算を行う。レジスタ34はその乗算
結果を受け取り、保持する。収集器35は、エンコーダ
27からの上記制御情報にもとづき、レジスタ32〜3
4が保持する演算結果の一つを選択してベクトルレジス
タに出力する。
【0022】マスクベクトルレジスタ21にはマスクベ
クトルが格納される。マスクベクトルレジスタ11はレ
ジスタ22,23に対応しており、ベクトルオペランド
がレジスタ25,26に読み出されるごとに、対応する
マスクベクトルがレジスタ21から読み出され、レジス
タ24に保持される。
【0023】エンコーダ27は、レジスタ24に保持さ
れたマスクベクトルと、処理中の命令のOPコード部の
情報とにもとづいて、制御情報を生成し、分配器28と
収集器35とに供給する。
【0024】このように構成された情報処理装置では、
図6(a)に示したDOループのIF文の部分は図4に
示す命令列によって実現される。図4の命令列が図6(
b)の命令列と異なるのは、VMGT〜VADDMの部
分はVMGT〜VMOAMに置き換えられている点であ
る。VMOAM命令はマスクベクトルの値に応じて乗算
もしくは加算を実行する命令である。すなわちマスク値
が“1”の場合、ベクトルオペランドの乗算を実行し、
マスク値が“0”の場合にはベクトルオペランドの加算
を実行する。
【0025】図3において、OPコードがVMOAM命
令の場合、エンコーダ27はレジスタ24の出力に応じ
て、分配器28および収集器35に制御情報を出力する
。すなわちレジスタ24の出力が“1”の場合には、分
配器28にベクトルオペランドを乗算器31に出力させ
、また収集器35にレジスタ34の出力を選択させる。 一方、レジスタ24の出力が“0”の場合にはベクトル
オペランドを加算器29に出力させ、また収集器35に
レジスタ32の出力を選択させる。その結果、マスクベ
クトルの値に応じて乗算、加算が切り換えられ、図6(
a)のIF文のTHEN節およびELSE節の処理は一
つの命令VMOAMによって実行されることになる。
【0026】なお、第1の発明による情報処理装置は、
エンコーダ17にレジスタ14の出力に応じた処理を行
うという機能を追加することで容易に実現できるが、そ
の反面、乗算と加算のように単一のALUでは行えない
演算の組み合わせは実現できない。一方、第2の発明に
よる情報処理装置は、分配器28および収集器35にベ
クトル要素ごとの選択制御機構が必要となり、ハードウ
ェアの量は増加するが、乗算と加算など、様々な演算の
組み合わせに対応できる。
【0027】
【発明の効果】以上説明したように第1の発明による情
報処理装置では、ベクトル命令のOPコード部だけでな
く、マスクベクトルをも用いてALUが実行する演算の
種類を切り換えるようにしたので、IF文の処理を行う
とき、THEN節とELSE節の処理を一つのベクトル
命令で行うことが可能となり、IF文を含むDOループ
処理のベクトル化を効率良く行える。
【0028】また、第2の発明による情報処理装置では
、ベクトル命令のOPコード部だけでなく、マスクベク
トルをも用いてどの演算器に演算を行わせるかを切り換
えるようにしたので、IF文の処理を行うとき、THE
N節とELSE節の処理を一つのベクトル命令で行うこ
とが可能となり、IF文を含むDOループ処理のベクト
ル化を効率良く行える。
【図面の簡単な説明】
【図1】第1の発明による情報処理装置の一例を示すブ
ロック図である。
【図2】図1の情報処理装置で実行する命令列を示す図
である。
【図3】第2の発明による情報処理装置の一例を示すブ
ロック図である。
【図4】図3の情報処理装置で実行する命令列を示す図
である。
【図5】IF文を含むDOループと、従来の情報処理装
置でそのIF文の部分の処理を行う命令列を示す図であ
る。
【図6】もう一つのIF文を含むDOループと、従来の
情報処理装置でそのIF文の部分の処理を行う命令列を
示す図である。
【符号の説明】
11,21  マスクベクトルレジスタ12,13,2
2,23  ベクトルレジスタ14,19,24,32
〜34  レジスタ15,16,25,26  演算レ
ジスタ17,27  エンコーダ 18  ALU 28  分配器 29  加算器 30  減算器 31  乗算器 35  収集器

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】マスクベクトルによってベクトルオペラン
    ドの演算が制御される情報処理装置において、制御情報
    により指定される演算をベクトルオペランドに対して行
    うALUと、前記マスクベクトルと、ベクトル命令の情
    報とにもとづいて前記制御情報を生成し、前記ALUに
    出力するALU制御手段とを備えたことを特徴とする情
    報処理装置。
  2. 【請求項2】前記ALU制御手段は、前記マスクベクト
    ルと前記ベクトル命令の情報とを入力とするエンコーダ
    により構成されたことを特徴とする請求項1記載の情報
    処理装置。
  3. 【請求項3】マスクベクトルによってベクトルオペラン
    ドの演算が制御される情報処理装置において、複数の演
    算器と、制御情報にもとづいてベクトルオペランドを前
    記演算器に分配する分配手段と、前記制御情報にもとづ
    いて前記演算器による演算結果を選択する収集手段と、
    前記マスクベクトルと、ベクトル命令の情報とにもとづ
    いて前記制御情報を生成し、前記分配手段と前記収集手
    段とに出力する制御手段とを備えたことを特徴とする情
    報処理装置。
  4. 【請求項4】前記制御手段は前記マスクベクトルと前記
    ベクトル命令の情報とを入力とするエンコーダにより構
    成されたことを特徴とする請求項3記載の情報処理装置
JP12336691A 1991-05-28 1991-05-28 情報処理装置 Pending JPH04349570A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP12336691A JPH04349570A (ja) 1991-05-28 1991-05-28 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12336691A JPH04349570A (ja) 1991-05-28 1991-05-28 情報処理装置

Publications (1)

Publication Number Publication Date
JPH04349570A true JPH04349570A (ja) 1992-12-04

Family

ID=14858811

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12336691A Pending JPH04349570A (ja) 1991-05-28 1991-05-28 情報処理装置

Country Status (1)

Country Link
JP (1) JPH04349570A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013175201A (ja) * 2012-02-24 2013-09-05 Apple Inc ゼロ述語分岐予測ミスにおける分岐予測ミス振舞い抑制
JP2018049461A (ja) * 2016-09-21 2018-03-29 日本電気株式会社 コンパイル装置、コンパイル方法、および、コンパイルプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013175201A (ja) * 2012-02-24 2013-09-05 Apple Inc ゼロ述語分岐予測ミスにおける分岐予測ミス振舞い抑制
JP2018049461A (ja) * 2016-09-21 2018-03-29 日本電気株式会社 コンパイル装置、コンパイル方法、および、コンパイルプログラム

Similar Documents

Publication Publication Date Title
US5859789A (en) Arithmetic unit
JP3541669B2 (ja) 演算処理装置
US6922716B2 (en) Method and apparatus for vector processing
US5261113A (en) Apparatus and method for single operand register array for vector and scalar data processing operations
US6078941A (en) Computational structure having multiple stages wherein each stage includes a pair of adders and a multiplexing circuit capable of operating in parallel
US5261063A (en) Pipeline apparatus having pipeline mode eecuting instructions from plural programs and parallel mode executing instructions from one of the plural programs
EP0147858B1 (en) Vector processing apparatus
Buchholz The IBM System/370 vector architecture
CN111381939B (zh) 多线程处理器中的寄存器文件
CN111381880B (zh) 一种处理器、介质和处理器的操作方法
JP2011096254A (ja) 乗累算演算を実行するための装置および方法
JP3829166B2 (ja) 極長命令語(vliw)プロセッサ
JP2006529043A (ja) 飽和あり、または飽和なしで、オペランドの積和を実行するプロセッサ簡約ユニット
US4208722A (en) Floating point data processing system
US6009450A (en) Finite field inverse circuit
Padegs et al. The IBM System/370 vector architecture: Design considerations
US6934938B2 (en) Method of programming linear graphs for streaming vector computation
US6202141B1 (en) Method and apparatus for performing vector operation using separate multiplication on odd and even data elements of source vectors
JPH0850545A (ja) 最小/最大検索命令を有するデジタル処理装置
JPH03286332A (ja) デジタルデータ処理装置
JP2018005369A (ja) 演算処理装置及び演算処理装置の制御方法
US5764939A (en) RISC processor having coprocessor for executing circular mask instruction
JPH04349570A (ja) 情報処理装置
US6215504B1 (en) Line drawing using operand routing and operation selective multimedia extension unit
GB2382886A (en) Vector Processing System