[go: up one dir, main page]

JPH0724013B2 - ベクトルプロセツサ - Google Patents

ベクトルプロセツサ

Info

Publication number
JPH0724013B2
JPH0724013B2 JP61211603A JP21160386A JPH0724013B2 JP H0724013 B2 JPH0724013 B2 JP H0724013B2 JP 61211603 A JP61211603 A JP 61211603A JP 21160386 A JP21160386 A JP 21160386A JP H0724013 B2 JPH0724013 B2 JP H0724013B2
Authority
JP
Japan
Prior art keywords
vector
register
mask
line
instruction
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.)
Expired - Lifetime
Application number
JP61211603A
Other languages
English (en)
Other versions
JPS6368971A (ja
Inventor
佳明 木下
芳春 風間
美夫 高嶺
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP61211603A priority Critical patent/JPH0724013B2/ja
Priority to US07/079,047 priority patent/US4933839A/en
Publication of JPS6368971A publication Critical patent/JPS6368971A/ja
Publication of JPH0724013B2 publication Critical patent/JPH0724013B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/02Comparing digital values

Landscapes

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、プログラム制御のディジタル計算機に係り、
特にベクトル演算を高速で実行するのに好適なベクトル
プロセッサに関する。
〔従来の技術〕
従来、科学技術計算に頻繁に現われる大形行列計算など
の高速計算用として使われるベクトルプロセッサがあ
る。このベクトルプロセッサでは、例えば次のFORTRAN
文で示すような処理を高速にベクトル処理する。
DO 10 i=1,N IF(A(i)・EQ・3) B(i)=1 10 CONTINUE すなわち、(A(i)・i=1,N)をベクトルA,(B
(i)・i=1,N)をベクトルBとし、ベクトルAの各
ベクトル要素(A(i))が、3に等しいとき、対応す
るベクトルBのベクトル要素(B(i))に1を代入す
る処理を行なう。このようなベクトル演算をベクトルプ
ロセッサはベクトル処理の手法を用いて高速に処理す
る。しかしながら、次に示すPL/I文に示すような構造体
の1部を比較する場合は、処理が非常に複雑である。
すなわち、このPL/I文を前述のベクトル処理の手法を用
いて行うと、次のようなベクトル命令オブジェクトが生
成される。
VL VR0,FLAG VEO VR4,VR0,SR0 VCEQ VMR0,VR4,SR4 VL VR8,B VSTN VR8,A なお、上記略語の説明は次のとおりである。
VL:VECTOR LOAD, VEO:VECTOR ELEMENTWISEOR, VCEQ:VECTOR COMPARE EQUAL, VSTN:VECTOR STORE NEGATIVE MASK, VRi:i番目のベクトルレジスタ, SRi:i番目のスカラレジスタ, VMRi:i番目のベクトルマスクレジスタ, ここでSROには16進数4バイトで‘7FFFFFFE'の値、SR4
には16進数4バイトで‘FFFFFFFF'の値をあらかじめセ
ットしておく。
なお、PL/I文との対応は、DO i=1 TO50;を1つの
ベクトル列とみなし、次のIF文の判定を、VL命令,VEO命
令,VCEQ命令で行い、その結果を受けて、THEN文で記述
された、A(i)=B(i);の代入文を、VL命令で配
列Bのすべての要素をロードし、マスク付のVSTN命令で
選択をしながら配列Aに格納していく。
しかし、この例で明らかなように、1回の判定に対し
て、3ベクトルレジスタ、2スカラレジスタ、1マスク
レジスタを占有しており、レジスタの有効利用を妨げて
いる。また命令列も判定処理のみに、2ステップもかか
っており、PL/Iなどの構造化プログラミング言語のベク
トル化には十分対応しきれないという問題がある。
この種の技術は、例えば特開昭60−15772号公報に記載
される。
なお、このようなベクトルプロセッサについては、例え
ば、「日立評論」VOl,65,NO8,pp13〜18,1983に“スーパ
ーコンピュータHITAC S−810 アレイプロセッサシス
テム”と題して紹介されている。
〔発明が解決しようとする問題点〕
上記従来技術は、PL/Iに代表される構造化プログラミン
グ言語において多用されている構造体内のビット判定の
点について配慮がなされておらず、命令列が複雑とな
る、レジスタ資源を多数使用する等の問題がある。
この背景には、ベクトルプロセッサがFORTRANに代表さ
れる数値演算を行う言語の高速化に利用されているのが
一般的であり、複雑な論理演算を必要とするPL/Iなどの
高速化には使用されていないことがあげられる。これ
は、ベクトル化の基本となる大規模行列演算のための大
容量配列がFORTRANでは扱いやすいためである。しかし
近年、PL/Iにおいても大容量配列がデータベースの分野
で必要とされてきており、ベクトル化が可能となってい
る。
本発明の目的は、かかる問題に対処して、ベクトルプロ
セッサでPL/Iなどの構造化プログラミング言語を高速化
する際に必要な構造体内のビット判定を、高速に、しか
も少いレジスタ資源で実現するベクトルプロセッサを提
供することにある。
〔問題点を解決するための手段〕
上記目的は、データベクトル中のあるベクトル要素につ
いて、任意のビット位置を抽出し、そのビット群が、す
べて0,すべて1,0と1の混在のいずれかの状態を判定す
る演算器をベクトルプロセッサに付加することにより、
達成される。
〔作用〕
ベクトルV1のビット位置iとjが共にゼロであるかどう
かを判定する場合、ビット位置iとjに“1"、その他を
“0"としたマスクR1を準備しておく。演算回路C1では、
ベクトルV1の各ベクトル要素ごとに、マスクR1との論理
積ををもとめ、その結果がすべてゼロなら判定結果R2の
対応する要素に“1"を、そうでなかったら“0"を出力す
る。その結果、判定結果R2の値が“1"に対応するベクト
ルV1のベクトル要素のビット位置iとjは共にゼロであ
ることが判明する。このように、マスクR1にて任意のビ
ット位置を任意の数だけ指定することによって簡単に判
定が可能となる。
〔実施例〕
以下、本発明の一実施例を図面により詳細に説明する。
まず、本発明の概略を第1図により説明する。第1図に
おいて、ベクトルV1のビット位置iとjが共にゼロであ
るかどうかを判定する場合、ビット位置iとjに“1"、
その他のビット位置を“0"としたマスクレジスタR1を予
じめ準備しておく。演算回路C1では、ベクトルV1の各ベ
クトル要素ごとに、マスクレジスタR1との論理積をもと
め、その結果がすべてゼロなら判定結果R2の対応する要
素に“1"をそうでなかったら“0"を出力する。その結
果、判定結果R2の値が“1"に対応するベクトルV1のベク
トル要素のビット位置iとjは共にゼロであることが判
明する。このように、マスクレジスタR1にて任意のビッ
ト位置を任意の数だけ指定することによって簡単に判定
することができる。また、同様にiとjが共に1である
かどうかを判定する場合は、ビット位置iとjに“0"、
その他のビット位置を“1"としたマスクレジスタR1を予
じめ準備し、演算回路C1にて、各ベクトル要素ごとに、
マスクレジスタR1との論理和をもとめることによって、
判定することができる。
第2図は本発明の一実施例を説明するための図である。
第2図において、R1は命令レジスタで4つのフィールド
に分割される。OPフィールドは命令コードを示し、線l1
によって演算制御ユニットC1に送られ、命令実行を制御
する。iフィールドは、結果を格納するレジスタをベク
トルレジスタVR、マスクレジスタVMR、スカラレジスタS
R中から指定し、線l2によって分配器D1に入力され、分
配器D1内にて、演算回路C2の出力として線l9により入力
される結果を指定したレジスタに格納する制御用であ
る。jフィールドは演算に使用するレジスタをベクトル
レジスタVR、マスクレジスタVMR、スカラレジスタSRか
ら指定し、線l3によってセレクタS1に入力され、S1内に
ていずれのレジスタを選択するかに使用する。ここで選
択された内容は、線l5にのせられる。kフィールドは、
jフィールドと同じであり、セレクタS2に入力され線l6
にのせられる。
R2はデータを保持するデータレジスタ、R3は同じく演算
マスクを保持する演算マスクレジスタ、演算回路C2は線
l8を介して演算を行う演算回路である。線l7はデータレ
ジスタR2の内容をのせるデータ線、線l8は演算マスクレ
ジスタR3の内容をのせるデータ線、線l9は演算回路C2の
演算の結果をのせるデータ線、線l10は、各レジスタの
読出し、書き込みを指示する制御線、線l11は、演算回
路C2を制御する制御線である。
ここで、ベクトルレジスタVR、スカラレジスタSR、マス
クレジスタVMRは、各々第1図のV1,R1,R2に相当する。
また、VMRは1ビットのレジスタであり、0,1のみで構成
される。
次に、動作例について説明する。命令レジスタR1に、本
動作の実行を指定する命令が入力されると、OP,i,j,kの
各フィールドの内容は、それぞれ、演算制御ユニットC
1、分配器D1、セレクタS1、セレクタS2に送られる。分
配器D1,セレクタS1,セレクタS2はそれぞれ命令レジスタ
R1の各フィールドi,j,kで指示されたレジスタを選択
し、分配ルート、および選択ルートを設定する。本動作
例においては、iはマスクレジスタVMRを、jはベクト
ルレジスタVRを、kはスカラレジスタSRを指示する。
次に、演算制御ユニットC1は、線l10により必要なレジ
スタに、読み出し、書き込み指示を送出し、適切なタイ
ミングで、jで指定したベクトルレジスタVRから1ベク
トル要素ずつ順次読み出す。また、kで指定したスカラ
レジスタSRの内容は最初に1回だけ読み出しを行う。例
えば、前述のようにSR0は‘7FFFFFFF',SR4は‘FFFFFFF
F'の内容となる。また、jで指定したマスクレジスタVM
Rへの書き込みを順次行う。これらの動作は通常のベク
トルプロセッサと同様である。
さて、データレジスタR2に順次読み出されてくるデータ
は線l7により演算回路C2に入力される。また、演算マス
クレジスタR3には、本動作に用いる演算マスクがスカラ
レジスタSRより入力されており、線l8により演算回路C2
に入力される。演算回路C2は、命令レジスタR1のOPフィ
ールドに設定された命令コードに従って、データに対し
て演算マスクによる論理演算を行い、その結果により判
定を行う。その判定結果を線l9にのせる。線l9上の判定
結果は、分配器D1に入力され、マスクレジスタVMRの1
つに格納される。このマスクレジスタVMRは、その後の
各種マスク付演算に利用されて、各ベクトル要素ごとの
命令実行が可能となる。
本実施例によれば構造化プログラムに頻繁に出現すると
ころの任意のビット位置の判定を、1つのベクトルレジ
スタ、1つのマスクレジスタ、1つのスカラレジスタを
用いた1つの命令によるベクトル処理により行なうこと
ができる。
〔発明の効果〕
以上の説明から明らかなように、本発明によれば任意の
ビット列の論理判定を少数のレジスタで高速に実現でき
るという効果が得られる。
【図面の簡単な説明】
第1図は、本発明で行なう処理の一例を示した図、第2
図は、本発明の一実施例を示した図である。 V1……ベクトル、C1……演算回路、R1……任意のビット
位置を選択するマスク、R2……判定結果、R1……命令レ
ジスタ、C1……演算制御ユニット、C2……演算回路、D1
……分配器、S1,S2……セレクタ、VR……データの入っ
たベクトルレジスタ、VMR……判定結果が格納されるマ
スクレジスタ、SR……任意のビット位置を選択する演算
マスクの入ったスカラレジスタ、MS……主記憶。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】データベクトル中のあるベクトル要素につ
    いて、その任意のビット群を抽出し、それらが、すべて
    0,すべて1,0と1の混在のいずれの状態かを判定する演
    算器をもつことを特徴とするベクトルプロセッサ。
  2. 【請求項2】特許請求の範囲第1項のベクトルプロセッ
    サにおいて、データベクトル中のあるベクトル要素に対
    して、抽出したいビット位置を1,その他を0とした抽出
    条件の論理積を行い、その演算結果がすべて0であるこ
    とを判定する第1の演算器をもつことを特徴とするベク
    トルプロセッサ。
  3. 【請求項3】特許請求の範囲第1項のベクトルプロセッ
    サにおいて、データベクトル中のあるベクトル要素に対
    して、抽出したいビット位置を0,その他を1とした抽出
    条件と論理和を行い、その演算結果がすべて1であるこ
    とを判定する第2の演算器をもつことを特徴とするベク
    トルプロセッサ。
  4. 【請求項4】上記第1の演算器により抽出したいビット
    位置がすべて0であることを否定され、かつ上記第2の
    演算器により、該ビット位置がすべて1であることを否
    定された場合に、該ビット位置は0と1の混在したもの
    であると判定する手段をもつことを特徴とする特許請求
    の範囲第2項又は第3項のベクトルプロセッサ。
JP61211603A 1986-09-10 1986-09-10 ベクトルプロセツサ Expired - Lifetime JPH0724013B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP61211603A JPH0724013B2 (ja) 1986-09-10 1986-09-10 ベクトルプロセツサ
US07/079,047 US4933839A (en) 1986-09-10 1987-07-29 Vector processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61211603A JPH0724013B2 (ja) 1986-09-10 1986-09-10 ベクトルプロセツサ

Publications (2)

Publication Number Publication Date
JPS6368971A JPS6368971A (ja) 1988-03-28
JPH0724013B2 true JPH0724013B2 (ja) 1995-03-15

Family

ID=16608498

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61211603A Expired - Lifetime JPH0724013B2 (ja) 1986-09-10 1986-09-10 ベクトルプロセツサ

Country Status (2)

Country Link
US (1) US4933839A (ja)
JP (1) JPH0724013B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5274835A (en) * 1988-12-20 1993-12-28 Matsushita Electric Industrial Co., Ltd. Merge device using FIFO buffers
US5179530A (en) * 1989-11-03 1993-01-12 Zoran Corporation Architecture for integrated concurrent vector signal processor
JPH0614003A (ja) * 1991-07-31 1994-01-21 Nec Corp データ処理回路
US5499376A (en) * 1993-12-06 1996-03-12 Cpu Technology, Inc. High speed mask and logical combination operations for parallel processor units
US5832288A (en) * 1996-10-18 1998-11-03 Samsung Electronics Co., Ltd. Element-select mechanism for a vector processor
US6006315A (en) * 1996-10-18 1999-12-21 Samsung Electronics Co., Ltd. Computer methods for writing a scalar value to a vector
US6016395A (en) * 1996-10-18 2000-01-18 Samsung Electronics Co., Ltd. Programming a vector processor and parallel programming of an asymmetric dual multiprocessor comprised of a vector processor and a risc processor
US6857061B1 (en) * 2000-04-07 2005-02-15 Nintendo Co., Ltd. Method and apparatus for obtaining a scalar value directly from a vector register
US6973404B1 (en) * 2000-09-11 2005-12-06 Agilent Technologies, Inc. Method and apparatus for administering inversion property in a memory tester
JP5739055B2 (ja) 2011-04-01 2015-06-24 インテル コーポレイション ベクトルフレンドリ命令フォーマット及びその実行
WO2013095553A1 (en) * 2011-12-22 2013-06-27 Intel Corporation Instructions for storing in general purpose registers one of two scalar constants based on the contents of vector write masks

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3976864A (en) * 1974-09-03 1976-08-24 Hewlett-Packard Company Apparatus and method for testing digital circuits
JPS5286011A (en) * 1976-01-12 1977-07-16 Nec Corp Error correction device for parallel processing
US4342084A (en) * 1980-08-11 1982-07-27 International Business Machines Corporation Main storage validation means
US4604709A (en) * 1983-02-14 1986-08-05 International Business Machines Corp. Channel communicator
DE3474394D1 (en) * 1984-06-29 1988-11-03 Ibm Method and arrangement for detecting a particular bit configuration in a serial bit stream
US4742520A (en) * 1984-09-26 1988-05-03 Texas Instruments Incorporated ALU operation: modulo two sum

Also Published As

Publication number Publication date
JPS6368971A (ja) 1988-03-28
US4933839A (en) 1990-06-12

Similar Documents

Publication Publication Date Title
US4675806A (en) Data processing unit utilizing data flow ordered execution
US6219775B1 (en) Massively parallel computer including auxiliary vector processor
EP0205809A2 (en) Vector processing
JPH0724013B2 (ja) ベクトルプロセツサ
EP0341905A2 (en) Computer with intelligent memory system
JPH0414385B2 (ja)
JPS61160176A (ja) ベクトル処理装置
US4901274A (en) Method and system for data driven information processing
US4631672A (en) Arithmetic control apparatus for a pipeline processing system
US4754424A (en) Information processing unit having data generating means for generating immediate data
JPH02103630A (ja) データ処理装置
US5265204A (en) Method and apparatus for bit operational process
CA1119307A (en) Microcomputer having separate bit and word accumulators and separate bit and word instruction sets
JPS6134629A (ja) グラフマネジャー
JP2520882B2 (ja) デ−タ処理装置およびデ−タ処理方法
EP0257650A2 (en) Microprocessor
JPH03204030A (ja) コンピュータ用プロセツサ
RU2066067C1 (ru) Центральный процессор для многопроцессорной вычислительной системы
US3942156A (en) Indirect arithmetic control
EP0297895A2 (en) Apparatus and method using lockout for synchronization of access to main memory signal groups in a multiprocessor data processing system
JP2793357B2 (ja) 並列演算装置
JPH0222413B2 (ja)
JP2883488B2 (ja) 命令処理装置
JP2582546B2 (ja) 並列処理計算機および並列処理方法
JP2883489B2 (ja) 命令処理装置