JPH0432426B2 - - Google Patents
Info
- Publication number
- JPH0432426B2 JPH0432426B2 JP58135816A JP13581683A JPH0432426B2 JP H0432426 B2 JPH0432426 B2 JP H0432426B2 JP 58135816 A JP58135816 A JP 58135816A JP 13581683 A JP13581683 A JP 13581683A JP H0432426 B2 JPH0432426 B2 JP H0432426B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- group
- processing device
- vector
- item
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8076—Details on data register access
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
Description
【発明の詳細な説明】
〔発明の利用分野〕
本発明は複数の演算器と複数のレジスタを有
し、レジスタ−レジスタ演算を、異なる演算器を
同時動作させることにより、並列に実行するため
の処理装置に関し、とくにベクトルデータに対す
る上記演算を実行するのに好適なデータ処理装置
に関する。
し、レジスタ−レジスタ演算を、異なる演算器を
同時動作させることにより、並列に実行するため
の処理装置に関し、とくにベクトルデータに対す
る上記演算を実行するのに好適なデータ処理装置
に関する。
大規模な技術計算の分野では多量のデータに対
する多量の演算が必要である。高速な計算機では
演算器を複数個用意し、並列に動作させる方式が
採用されている。
する多量の演算が必要である。高速な計算機では
演算器を複数個用意し、並列に動作させる方式が
採用されている。
第1図は、従来のベクトル処理装置の概略構成
図である。10は主記憶ユニツトMS、20〜2
3は並列動作可能なパイプライン型演算器群、5
0は16本の互いに独立に読出しと書込みが可能な
ベクトルレジスタ群である。
図である。10は主記憶ユニツトMS、20〜2
3は並列動作可能なパイプライン型演算器群、5
0は16本の互いに独立に読出しと書込みが可能な
ベクトルレジスタ群である。
第1図の丸印中のR0,R1等はレジスタ番号
を示しており、第2図のレジスタ群50の各箱が
1個のベクトルレジスタを示している。
を示しており、第2図のレジスタ群50の各箱が
1個のベクトルレジスタを示している。
なお、レジスタ数、演算器数はここでは説明の
便宜上それぞれ16,4と仮定してある。60は各
レジスタからの一要素ずつ順次読出されたベクト
ルデータを、MS10又は演算器20〜23のい
ずれかに並列に送出する第1の選択回路であり、
各レジスタR0〜R15と演算器20〜23また
はMS10との対応づけはプログラム命令により
自由に指定される。70は、MS10からの読出
しデータ又は複数の演算器20,21,22,2
3からの演算結果ベクトルを、レジスタ群50の
いずれかに一要素ずつパイプラインで並列に送出
することの出来る第2の選択回路である。
便宜上それぞれ16,4と仮定してある。60は各
レジスタからの一要素ずつ順次読出されたベクト
ルデータを、MS10又は演算器20〜23のい
ずれかに並列に送出する第1の選択回路であり、
各レジスタR0〜R15と演算器20〜23また
はMS10との対応づけはプログラム命令により
自由に指定される。70は、MS10からの読出
しデータ又は複数の演算器20,21,22,2
3からの演算結果ベクトルを、レジスタ群50の
いずれかに一要素ずつパイプラインで並列に送出
することの出来る第2の選択回路である。
選択回路60は、MS10に対する2つの入力
線80,81および演算器20〜23に対する8
つの入力線82〜83の各々に、レジスタR0〜
R15の内の任意のレジスタの出力を接続する10
個の部分選択回路からなる。同様に選択回路70
はMS10からの出力線91,92および演算器
20〜23からの4つの出力線93〜96の各々
をレジスタR0〜R15の任意の一つに接続する
ための6個の部分分配回路からなる。このため、
制御回路80は、命令を順次解読し、解読した命
令が必要とするリソース(演算器又はMS)とレ
ジスタとに依存して、選択回路60を構成する8
つの部分選択回路にオペランドレジスタ番号Rj
1〜Rj8を出力し、選択回路70を選択する6
つの部分分配回路に結果レジスタ番号Ri1〜Ri
6を出力するようになつている。
線80,81および演算器20〜23に対する8
つの入力線82〜83の各々に、レジスタR0〜
R15の内の任意のレジスタの出力を接続する10
個の部分選択回路からなる。同様に選択回路70
はMS10からの出力線91,92および演算器
20〜23からの4つの出力線93〜96の各々
をレジスタR0〜R15の任意の一つに接続する
ための6個の部分分配回路からなる。このため、
制御回路80は、命令を順次解読し、解読した命
令が必要とするリソース(演算器又はMS)とレ
ジスタとに依存して、選択回路60を構成する8
つの部分選択回路にオペランドレジスタ番号Rj
1〜Rj8を出力し、選択回路70を選択する6
つの部分分配回路に結果レジスタ番号Ri1〜Ri
6を出力するようになつている。
各ベクトルレジスタR0〜R15からのベクト
ルデータを順次読出すことあるいは、各ベクトル
レジスタR0〜R15に演算器20〜23から順
次出力される演算結果ベクトルを格納することも
この制御回路80により制御される。
ルデータを順次読出すことあるいは、各ベクトル
レジスタR0〜R15に演算器20〜23から順
次出力される演算結果ベクトルを格納することも
この制御回路80により制御される。
このようなベクトルデータ処理装置は、本件出
願人の出願にかかる特願昭56−210392号に記載さ
れている。
願人の出願にかかる特願昭56−210392号に記載さ
れている。
この種のベクトルデータ処理装置は、命令でオ
ペランドレジスタとして指定された一つ又は二つ
のベクトルレジスタからベクトルデータが順次読
み出されて、演算器20〜23のいずれかに送ら
れ、その演算結果が命令で結果レジスタとして指
定された一つのレジスタに順次格納される。ま
た、命令で指定されたベクトルレジスタの内容が
MS10に格納されたり、あるいは命令で指定さ
れたベクトルレジスタにMS10内のベクトルデ
ータが転送される。したがつて、全く別々の、オ
ペランドレジスタ又は結果レジスタ又はリソース
(演算器又はMS)を用いる複数の命令の演算が
互いに並列に実行される。
ペランドレジスタとして指定された一つ又は二つ
のベクトルレジスタからベクトルデータが順次読
み出されて、演算器20〜23のいずれかに送ら
れ、その演算結果が命令で結果レジスタとして指
定された一つのレジスタに順次格納される。ま
た、命令で指定されたベクトルレジスタの内容が
MS10に格納されたり、あるいは命令で指定さ
れたベクトルレジスタにMS10内のベクトルデ
ータが転送される。したがつて、全く別々の、オ
ペランドレジスタ又は結果レジスタ又はリソース
(演算器又はMS)を用いる複数の命令の演算が
互いに並列に実行される。
また、先行する第1の命令で結果レジスタとし
て指定されたレジスタを後続の第2の命令がオペ
ランドレジスタとして利用する場合でも、第1の
命令の演算が終了する前に第2の命令の演算が開
示されるようになつている。結果として、第1,
第2の命令が部分的に並列に実行される。この技
術はチエイニングと呼ばれている。
て指定されたレジスタを後続の第2の命令がオペ
ランドレジスタとして利用する場合でも、第1の
命令の演算が終了する前に第2の命令の演算が開
示されるようになつている。結果として、第1,
第2の命令が部分的に並列に実行される。この技
術はチエイニングと呼ばれている。
以下、次のベクトル演算を例にして、上記特許
出願の技術に基づく第1図の装置の動作を説明す
る。
出願の技術に基づく第1図の装置の動作を説明す
る。
z〔{(x+a)〓b}+c〕〓y
ここで、xとyはMS10に存在する変数ベク
トルであり、aとbとcはすでにMS10より読
出された、レジスタR1,R5,R9に格納され
た定数ベクトルであり、zは計算結果としてMS
10に書込みたい変数ベクトルである。
トルであり、aとbとcはすでにMS10より読
出された、レジスタR1,R5,R9に格納され
た定数ベクトルであり、zは計算結果としてMS
10に書込みたい変数ベクトルである。
第2図は、4個の演算器20〜23とMS10
が9個のレジスタR0,R1,R4,R5,R
8,R9,R12〜R14を介して結合して並列
に行われるベクトル演算動作の模式図である。
が9個のレジスタR0,R1,R4,R5,R
8,R9,R12〜R14を介して結合して並列
に行われるベクトル演算動作の模式図である。
MS10からベクトルxをレジスタR0に転送
することを指定する第1の命令が実行される。こ
の命令の実行により、MS10よりベクトルxが
順次、たとえば線91に読出される。選択回路7
0は、この第1の命令の解読の結果として、制御
回路80から与えられる信号に応答して、線91
をレジスタR0の入力に接続する。こうして、制
御回路80の動作により、レジスタR0にベクト
ルxの要素が順次格納される。一方、この間レジ
スタR0とR1内のベクトルの加算を指示する第
2の命令が、実行開始される。しかし、この命令
が必要とするレジスタR0は先行する第1の命令
によりベクトルがそこに格納されるので、上述の
制御回路80は、レジスタR0,R1からのベク
トルの転送開始をすぐにはしない。この制御回路
80はベクトルxの先項要素がレジスタR0に格
納されると、レジスタR0,R1に格納されてい
るベクトルの先頭要素対の転送を開始する。一
方、選択回路60はこの第2の命令の解読の結果
として制御回路80から与えられる信号に応答し
てレジスタR0,R1の出力をそれぞれ、線8
2,83に接続する。こうして、ベクトルx,a
の先頭要素の対が演算器20に転送される。以
下、同様にして、これらのベクトルの残りの要素
が順次演算器20に送られる。演算器20は、順
次入力される要素対に対して加算をパイプライン
的に実行し、順次結果を出力する。選択回路70
は、第2の命令の解続の結果として制御回路80
から与えられる信号に応答して、あらかじめ、演
算器20の出力線93を、第2の命令が結果レジ
スタとして指定するレジスタR4に接続する。上
述の制御回路80は、演算器20から順次送られ
てくる、結果ベクトルx+aの各要素を順次レジ
スタR4に書き込む。
することを指定する第1の命令が実行される。こ
の命令の実行により、MS10よりベクトルxが
順次、たとえば線91に読出される。選択回路7
0は、この第1の命令の解読の結果として、制御
回路80から与えられる信号に応答して、線91
をレジスタR0の入力に接続する。こうして、制
御回路80の動作により、レジスタR0にベクト
ルxの要素が順次格納される。一方、この間レジ
スタR0とR1内のベクトルの加算を指示する第
2の命令が、実行開始される。しかし、この命令
が必要とするレジスタR0は先行する第1の命令
によりベクトルがそこに格納されるので、上述の
制御回路80は、レジスタR0,R1からのベク
トルの転送開始をすぐにはしない。この制御回路
80はベクトルxの先項要素がレジスタR0に格
納されると、レジスタR0,R1に格納されてい
るベクトルの先頭要素対の転送を開始する。一
方、選択回路60はこの第2の命令の解読の結果
として制御回路80から与えられる信号に応答し
てレジスタR0,R1の出力をそれぞれ、線8
2,83に接続する。こうして、ベクトルx,a
の先頭要素の対が演算器20に転送される。以
下、同様にして、これらのベクトルの残りの要素
が順次演算器20に送られる。演算器20は、順
次入力される要素対に対して加算をパイプライン
的に実行し、順次結果を出力する。選択回路70
は、第2の命令の解続の結果として制御回路80
から与えられる信号に応答して、あらかじめ、演
算器20の出力線93を、第2の命令が結果レジ
スタとして指定するレジスタR4に接続する。上
述の制御回路80は、演算器20から順次送られ
てくる、結果ベクトルx+aの各要素を順次レジ
スタR4に書き込む。
このようにして、ベクトルxがレジスタR0に
格納開始され次第、この格納に並行して、演算器
20によるベクトル演算が実行され、結果がレジ
スタR4に格納される。
格納開始され次第、この格納に並行して、演算器
20によるベクトル演算が実行され、結果がレジ
スタR4に格納される。
以下同様に、レジスタR4とR5内のベクトル
の乗算を指定する第3の命令が、ベクトルx+a
がレジスタR4に格納されるのに並行して、実行
され、演算器21から出力される乗算結果ベクト
ル(x×a)〓bがこの第3の命令が指定するレ
ジスタR8に順次格納される。
の乗算を指定する第3の命令が、ベクトルx+a
がレジスタR4に格納されるのに並行して、実行
され、演算器21から出力される乗算結果ベクト
ル(x×a)〓bがこの第3の命令が指定するレ
ジスタR8に順次格納される。
同様に、レジスタR8とR9内のベクトルの加
算を指定する第4の命令が、ベクトル(x+a)
〓bがレジスタR8に格納されるのに並行して実
行され、演算器22から出力される加算結果ベク
トル(x+c)〓b+cがこの第4の命令が指定
するレジスタR12に格納される。
算を指定する第4の命令が、ベクトル(x+a)
〓bがレジスタR8に格納されるのに並行して実
行され、演算器22から出力される加算結果ベク
トル(x+c)〓b+cがこの第4の命令が指定
するレジスタR12に格納される。
さらに、ベクトルyをレジスタR13に格納す
べきことを指定する第5の命令が適当なタイミン
グで実行され、ベクトルyがMS10から順次レ
ジスタR13にストアされる。この第4,第5の
命令の後に、レジスタR12,R13の内容を加
算して結果をレジスタR14に格納すべきことを
指示する第6の命令が実行される。上述の制御回
路80は、レジスタR12,R13にベクトル
(x+a)〓b+cとベクトルyの先頭要素対が
格納された後、この要素対を読出す。選択回路6
0を介してこれらの要素対が演算器23から送ら
れ、乗算結果が選択回路70を介してレジスタR
14にストアされる。以下同様にして、他の要素
対に対する演算が実行される。
べきことを指定する第5の命令が適当なタイミン
グで実行され、ベクトルyがMS10から順次レ
ジスタR13にストアされる。この第4,第5の
命令の後に、レジスタR12,R13の内容を加
算して結果をレジスタR14に格納すべきことを
指示する第6の命令が実行される。上述の制御回
路80は、レジスタR12,R13にベクトル
(x+a)〓b+cとベクトルyの先頭要素対が
格納された後、この要素対を読出す。選択回路6
0を介してこれらの要素対が演算器23から送ら
れ、乗算結果が選択回路70を介してレジスタR
14にストアされる。以下同様にして、他の要素
対に対する演算が実行される。
次に、このレジスタR14の内容をMS10へ
転送すべき命令が、演算器23からの結果ベクト
ルの先頭要素がレジスタR14に格納され次第、
実行され、MS10に最終結果ベクトルが順次格
納される。
転送すべき命令が、演算器23からの結果ベクト
ルの先頭要素がレジスタR14に格納され次第、
実行され、MS10に最終結果ベクトルが順次格
納される。
上述した各命令の実行において選択回路60,
70は制御回路80からレジスタ番号を受けと
り、これらに応答してそれぞれ線80〜89とレ
ジスタR0〜R14の接続あるいは線91〜96
とレジスタR0〜R19の接続を制御することは
言うまでもない。
70は制御回路80からレジスタ番号を受けと
り、これらに応答してそれぞれ線80〜89とレ
ジスタR0〜R14の接続あるいは線91〜96
とレジスタR0〜R19の接続を制御することは
言うまでもない。
このように従来のベクトル処理装置では、互い
に異なるリソース又はレジスタを必要とする命令
だけでなく、先行の命令の結果レジスタと後方の
命令のオペランドレジスタが一致する場合でも、
後方の命令を先行の命令の最初の結果ベクトル要
素が求まり次第実行開始し、もつてこれら二つの
命令を実行的に並列に実行している。
に異なるリソース又はレジスタを必要とする命令
だけでなく、先行の命令の結果レジスタと後方の
命令のオペランドレジスタが一致する場合でも、
後方の命令を先行の命令の最初の結果ベクトル要
素が求まり次第実行開始し、もつてこれら二つの
命令を実行的に並列に実行している。
このような動作が可能であるのは、制御回路8
0によりベクトルレジスタへの書込み、読み出
し,書込んだベクトル要素をただちによみ出すよ
うに制御する制御回路80とともに、ベクトルレ
ジスタとリソースとの接続を制御する選択回路6
0,70の動作による。
0によりベクトルレジスタへの書込み、読み出
し,書込んだベクトル要素をただちによみ出すよ
うに制御する制御回路80とともに、ベクトルレ
ジスタとリソースとの接続を制御する選択回路6
0,70の動作による。
上述の説明から明らかなごとく、これらの選択
回路は、任意のレジスタと任意のリソースとを接
続可能になつている。
回路は、任意のレジスタと任意のリソースとを接
続可能になつている。
しかし、このような従来技術では、回路要素の
配置上の制約および選択回路での遅延時間による
動作速度上の制約という問題がある。
配置上の制約および選択回路での遅延時間による
動作速度上の制約という問題がある。
たとえば選択回路60では、レジスタ群50の
読出し出力データ線群51(すなわち選択回路の
入力信号群)と、MS10へのデータ線80,8
1と演算器20〜23へのデータ82〜89が短
かくかつ一ケ所に集中していることが信号線上の
信号伝播時間を小さくするために望まれる。しか
しこの要求を満すためには、MS10も演算器2
0〜23もレジスタ群50の近傍に集中する必要
が生じるが、演算器30〜23やレジスタR0〜
R15の個数を増加する場合には、このような物
理的配置は非常に困難となる。したがつて、上述
の信号線上の信号伝播時間を十分小さくできなく
なる。同じことは演算器20〜23の出力線93
〜96についても言える。
読出し出力データ線群51(すなわち選択回路の
入力信号群)と、MS10へのデータ線80,8
1と演算器20〜23へのデータ82〜89が短
かくかつ一ケ所に集中していることが信号線上の
信号伝播時間を小さくするために望まれる。しか
しこの要求を満すためには、MS10も演算器2
0〜23もレジスタ群50の近傍に集中する必要
が生じるが、演算器30〜23やレジスタR0〜
R15の個数を増加する場合には、このような物
理的配置は非常に困難となる。したがつて、上述
の信号線上の信号伝播時間を十分小さくできなく
なる。同じことは演算器20〜23の出力線93
〜96についても言える。
また選択回路60,70の回路規模は、入力数
と出力数の積に比例すると考えられる。たとえば
部分選択回路で構成する場合n入力から1つを選
択する選択回路は入力数nに比例した大きさとな
り、またn入力m出力の選択回路はn入力の選択
回路をm個を用いて実現できるからである。部分
分配回路で構成する場合にも、m個の部分分配回
路は出力数mに比例するのでn入力m出力の選択
回路はn個の部分分配回路を組合せて実現できる
からである。詳細は第5図を用いて説明する。し
たがつて、選択回路60,70はレジスタ数と演
算器数の増加にそれぞれ比例して規模が増大する
問題点を持つている。
と出力数の積に比例すると考えられる。たとえば
部分選択回路で構成する場合n入力から1つを選
択する選択回路は入力数nに比例した大きさとな
り、またn入力m出力の選択回路はn入力の選択
回路をm個を用いて実現できるからである。部分
分配回路で構成する場合にも、m個の部分分配回
路は出力数mに比例するのでn入力m出力の選択
回路はn個の部分分配回路を組合せて実現できる
からである。詳細は第5図を用いて説明する。し
たがつて、選択回路60,70はレジスタ数と演
算器数の増加にそれぞれ比例して規模が増大する
問題点を持つている。
このため、選択回路60,70自身における信
号伝播時間がレジスタ数,演算器数の増大に伴い
増大せざるをえないという問題が生じる。
号伝播時間がレジスタ数,演算器数の増大に伴い
増大せざるをえないという問題が生じる。
本発明の目的は、演算器とレジスタの個数の増
加にもかかわらず選択回路の回路規模が飛躍的に
増加することを防止するとともに、選択回路を物
理的に分散できるデータ処理装置を提供すること
を目的としている。
加にもかかわらず選択回路の回路規模が飛躍的に
増加することを防止するとともに、選択回路を物
理的に分散できるデータ処理装置を提供すること
を目的としている。
本発明では、レジスタを複数のグループに分
け、各グループごとにあらかじめ定めた第1の一
部のリソースの入力に各グループの任意のレジス
タの出力を選択的に接続する第1の選択回路と、
各グループごとに定めた第2の一部のリソースの
出力を各グループの任意のレジスタの入力に選択
的に接続する第2の選択回路を設けた。
け、各グループごとにあらかじめ定めた第1の一
部のリソースの入力に各グループの任意のレジス
タの出力を選択的に接続する第1の選択回路と、
各グループごとに定めた第2の一部のリソースの
出力を各グループの任意のレジスタの入力に選択
的に接続する第2の選択回路を設けた。
第3図は本発明の第1の実施例を示す。この実
施例ではベクトルレジスタR0〜R15は4つの
グループ35a〜35dに分けられ、それぞれに
はレジスタR0〜R3,R4〜R7,R8〜R1
1,R12〜R15が割りあてられている。各グ
ループごとに選択回路33a,34a;33b,
34b;33c,34c;33d,34dが設け
られている。レジスタグループ35aの出力は選
択回路33aによりMS10又は演算器38aの
二つの入力にそれぞれ線41a,31a,32a
を介して接続される。このため、選択回路33a
は信号線41a,31a,32aをそれぞれレジ
スタR0〜R3の任意の一つに接続するための3
つの部分選択回路(図示せず)からなり、各部分
選択回路は制御回路80から与えられるレジスタ
識別信号に応答するようになつている。同様に選
択回路34aはレジスタグループ35aの各レジ
スタの入力に、MS10の出力線42aと、この
グループに割りあてられた演算器38aの出力線
44aと、レジスタグループ35bに割りあてら
れた演算器38bの出力線44bを選択的に接続
する。このため選択回路34aはこれらの信号線
42a,44a,44bに対応して設けられた三
つの部分分配回路(図示せず)からなる。
施例ではベクトルレジスタR0〜R15は4つの
グループ35a〜35dに分けられ、それぞれに
はレジスタR0〜R3,R4〜R7,R8〜R1
1,R12〜R15が割りあてられている。各グ
ループごとに選択回路33a,34a;33b,
34b;33c,34c;33d,34dが設け
られている。レジスタグループ35aの出力は選
択回路33aによりMS10又は演算器38aの
二つの入力にそれぞれ線41a,31a,32a
を介して接続される。このため、選択回路33a
は信号線41a,31a,32aをそれぞれレジ
スタR0〜R3の任意の一つに接続するための3
つの部分選択回路(図示せず)からなり、各部分
選択回路は制御回路80から与えられるレジスタ
識別信号に応答するようになつている。同様に選
択回路34aはレジスタグループ35aの各レジ
スタの入力に、MS10の出力線42aと、この
グループに割りあてられた演算器38aの出力線
44aと、レジスタグループ35bに割りあてら
れた演算器38bの出力線44bを選択的に接続
する。このため選択回路34aはこれらの信号線
42a,44a,44bに対応して設けられた三
つの部分分配回路(図示せず)からなる。
このように、レジスタグループ35a、選択回
路33a,34a、演算器38aにより一つのサ
ブシステム30aが構成される。同様にして、レ
ジスタグループ35b〜35dに対して同様のサ
ブシステム30b〜30dが構成される。サブシ
ステム30dは、演算器38cの出力線44cが
選択回路34dに入力されている点でのみサブシ
ステム30aと異なり、サブシステム30b,3
0cの選択回路33b,33cは、MS10に接
続されていない点で他の選択回路33a,33d
と異なる。また、選択回路34bには演算器38
a,38cの出力線44a,44cが入力され、
MS10の出力が入力されない点で、又選択回路
34cには演算器38b,38dの出力線44
b,44dが入力され、MS10の出力が入力さ
れていない点で他の選択回路34a,34dと異
なる。
路33a,34a、演算器38aにより一つのサ
ブシステム30aが構成される。同様にして、レ
ジスタグループ35b〜35dに対して同様のサ
ブシステム30b〜30dが構成される。サブシ
ステム30dは、演算器38cの出力線44cが
選択回路34dに入力されている点でのみサブシ
ステム30aと異なり、サブシステム30b,3
0cの選択回路33b,33cは、MS10に接
続されていない点で他の選択回路33a,33d
と異なる。また、選択回路34bには演算器38
a,38cの出力線44a,44cが入力され、
MS10の出力が入力されない点で、又選択回路
34cには演算器38b,38dの出力線44
b,44dが入力され、MS10の出力が入力さ
れていない点で他の選択回路34a,34dと異
なる。
本実施例で特徴的なのは、各サブシステムで
は、レジスタグループ内の任意のレジスタ内のベ
クトルデータ間の演算が、各グループごとに割り
あてられた演算器で実行でき、その結果ベクトル
が同じグループ内の任意のレジスタに格納される
とともに、その結果ベクトルが他の一部のサブシ
ステム内のレジスタグループに格納可能なことで
ある。
は、レジスタグループ内の任意のレジスタ内のベ
クトルデータ間の演算が、各グループごとに割り
あてられた演算器で実行でき、その結果ベクトル
が同じグループ内の任意のレジスタに格納される
とともに、その結果ベクトルが他の一部のサブシ
ステム内のレジスタグループに格納可能なことで
ある。
すなわち、選択回路33a〜33dには、それ
ぞれ一部のリソースと一部のレジスタが割りあて
られ、選択回路34a〜34dにもそれぞれ一部
のリソースと一部のレジスタが割りあてられてい
て、かつ、各選択回路33a〜33dに割りあて
られている演算器の数は、選択回路34a〜34
dに割りあてられている演算器の数より少ないこ
とである。一般に演算器は複数の入力を必要とす
るのに対し、出力は一つである。したがつて、第
2の選択回路34a〜34dに接続される演算器
の数が第1の選択回路33a〜33dに接続され
る演算器の数より多くしても、第2の選択回路の
構成はそれほど複雑にならない。たとえば第3図
では第2選択回路34bの入力線数は3つの演算
器38a〜38dのそれぞれの出力の合計3に等
しい。一方、第1の選択回路33bの出力線数は
演算器38bに対する二つの入力線の数に等し
い。
ぞれ一部のリソースと一部のレジスタが割りあて
られ、選択回路34a〜34dにもそれぞれ一部
のリソースと一部のレジスタが割りあてられてい
て、かつ、各選択回路33a〜33dに割りあて
られている演算器の数は、選択回路34a〜34
dに割りあてられている演算器の数より少ないこ
とである。一般に演算器は複数の入力を必要とす
るのに対し、出力は一つである。したがつて、第
2の選択回路34a〜34dに接続される演算器
の数が第1の選択回路33a〜33dに接続され
る演算器の数より多くしても、第2の選択回路の
構成はそれほど複雑にならない。たとえば第3図
では第2選択回路34bの入力線数は3つの演算
器38a〜38dのそれぞれの出力の合計3に等
しい。一方、第1の選択回路33bの出力線数は
演算器38bに対する二つの入力線の数に等し
い。
第3図でさらに特徴的な点は、各演算器の出力
は、同時に複数の第2の選択回路に入力されてい
ることである。たとえば、演算器38bの出力線
44bは三つの選択回路34a〜cに接続されて
いる。この結果、演算器38bの出力ベクトルは
選択回路34bを介してベクトルレジスタR4〜
R7のいずれかに格納することができるだけでな
く、他のレジスタ、たとえばR8〜R11あるい
はR0〜R3のいずれにも格納できる。たとえば
レジスタR0に演算器38bの結果ベクトルが格
納されると、この結果ベクトルをレジスタR0か
ら演算器38aに送出すれば、この結果ベクトル
に対して引続き演算器38aによる演算を実行す
ることができる。
は、同時に複数の第2の選択回路に入力されてい
ることである。たとえば、演算器38bの出力線
44bは三つの選択回路34a〜cに接続されて
いる。この結果、演算器38bの出力ベクトルは
選択回路34bを介してベクトルレジスタR4〜
R7のいずれかに格納することができるだけでな
く、他のレジスタ、たとえばR8〜R11あるい
はR0〜R3のいずれにも格納できる。たとえば
レジスタR0に演算器38bの結果ベクトルが格
納されると、この結果ベクトルをレジスタR0か
ら演算器38aに送出すれば、この結果ベクトル
に対して引続き演算器38aによる演算を実行す
ることができる。
また、第3図において、あるレジスタ、たとえ
ばR1内のベクトルに対して演算器38bにおけ
る演算を施す必要が生じた場合、レジスタR1の
内容を第1選択回路33aを介して演算器38a
に送り、このベクトルに対して演算器38aでは
何の演算をも施さないで、選択回路34bを介し
てレジスタ、たとえばR4に送出する。このレジ
スタR4内のベクトルをよみ出し、演算器38b
で演算をさせる。このように、本実施例では、別
の演算器での演算のために、ある演算器に対して
ベクトルを素通りさせるという無駄な処理が必要
となる。これは、任意の選択器に任意のベクトル
レジスタを接続するように選択回路を構成しなか
つた結果である。このような無駄な処理を少なく
するためには、演算器38a〜38dの各々が、
装置全体として必要とする複数の種類の演算をす
べて実行可能に構成しておくのがよい。また、そ
うでない場合でも、プログラムをコンパイルする
ときに、出来るだけ上記無駄な転送が少なくなる
ように、各命令に対するレジスタの割りあてを行
えばよい。
ばR1内のベクトルに対して演算器38bにおけ
る演算を施す必要が生じた場合、レジスタR1の
内容を第1選択回路33aを介して演算器38a
に送り、このベクトルに対して演算器38aでは
何の演算をも施さないで、選択回路34bを介し
てレジスタ、たとえばR4に送出する。このレジ
スタR4内のベクトルをよみ出し、演算器38b
で演算をさせる。このように、本実施例では、別
の演算器での演算のために、ある演算器に対して
ベクトルを素通りさせるという無駄な処理が必要
となる。これは、任意の選択器に任意のベクトル
レジスタを接続するように選択回路を構成しなか
つた結果である。このような無駄な処理を少なく
するためには、演算器38a〜38dの各々が、
装置全体として必要とする複数の種類の演算をす
べて実行可能に構成しておくのがよい。また、そ
うでない場合でも、プログラムをコンパイルする
ときに、出来るだけ上記無駄な転送が少なくなる
ように、各命令に対するレジスタの割りあてを行
えばよい。
なお、第3図でさらに特徴的なのは、各グルー
プのレジスタ数が等しいために、第2選択回路3
4a〜34dの出力線数が等しく、また、第2選
択回路34a〜34dの各々は3つのソリースの
出力が割りあてられているために、第2選択回路
34a〜34dのそれぞれの入力線数がともに等
しいということである。第2選択回路34a,3
4dにはMS10の出力が入力されているが、こ
れらの選択回路34a,34とに入力されている
演算器の出力数は2つである。したがつて、第2
選択回路34a〜dの入力線数は互いに等しい。
このことは、これらの回路を同一構成にするのを
容易にする。
プのレジスタ数が等しいために、第2選択回路3
4a〜34dの出力線数が等しく、また、第2選
択回路34a〜34dの各々は3つのソリースの
出力が割りあてられているために、第2選択回路
34a〜34dのそれぞれの入力線数がともに等
しいということである。第2選択回路34a,3
4dにはMS10の出力が入力されているが、こ
れらの選択回路34a,34とに入力されている
演算器の出力数は2つである。したがつて、第2
選択回路34a〜dの入力線数は互いに等しい。
このことは、これらの回路を同一構成にするのを
容易にする。
第1選択回路33a,33dの出力線数が3で
あるのに対して第1選択回路33b,33cの出
力線数は2である。これは、MS10が第1選択
回路33a,33dにのみ接続されているからで
ある。もし、MS10がさらに二つのデータ入力
端子を有するならば、第1選択回路33b,33
cの出力がMS10に接続されるように、第1選
択回路33b,33cを構成することが可能とな
る。この場合、第1選択回路33a〜dのそれぞ
れの入力線数,出力線数は互いに等しくなる。
あるのに対して第1選択回路33b,33cの出
力線数は2である。これは、MS10が第1選択
回路33a,33dにのみ接続されているからで
ある。もし、MS10がさらに二つのデータ入力
端子を有するならば、第1選択回路33b,33
cの出力がMS10に接続されるように、第1選
択回路33b,33cを構成することが可能とな
る。この場合、第1選択回路33a〜dのそれぞ
れの入力線数,出力線数は互いに等しくなる。
なお、制御回路80は、従来と同様に、第1の
選択回路33a〜33dに対して、選択すべきレ
ジスタ番号を入力する。但し、このレジスタ番号
は、各選択回路の出力線の各々に対応して与えら
れる。同様に制御回路80は、第2の選択回路3
4a〜34dの各々に対して選択のためのレジス
タ番号を入力する。なお、レジスタ番号を選択回
路33a〜33dごとに設けた信号線を介してこ
れらの選択回路に入力するときには、制御回路8
0が送出するレジスタ番号は、各グループの4つ
のレジスタを識別しうる番号信号(すなわちレジ
スタ番号の下位2ビツト)のみでよい。たとえ
ば、第1選択回路33bに対応するレジスタR4
〜R7の番号4〜7の代りにそれぞれ0〜3の番
号をこの第2選択回路33bに与えればよい。第
2選択回路34a〜34dに与えるレジスタ番号
についても同様のことがいえる。
選択回路33a〜33dに対して、選択すべきレ
ジスタ番号を入力する。但し、このレジスタ番号
は、各選択回路の出力線の各々に対応して与えら
れる。同様に制御回路80は、第2の選択回路3
4a〜34dの各々に対して選択のためのレジス
タ番号を入力する。なお、レジスタ番号を選択回
路33a〜33dごとに設けた信号線を介してこ
れらの選択回路に入力するときには、制御回路8
0が送出するレジスタ番号は、各グループの4つ
のレジスタを識別しうる番号信号(すなわちレジ
スタ番号の下位2ビツト)のみでよい。たとえ
ば、第1選択回路33bに対応するレジスタR4
〜R7の番号4〜7の代りにそれぞれ0〜3の番
号をこの第2選択回路33bに与えればよい。第
2選択回路34a〜34dに与えるレジスタ番号
についても同様のことがいえる。
詳細は後に第5図,第6図を参照して説明す
る。
る。
なお、制御回路80はレジスタR0〜R15の
書込み、読出しを制御する信号CONTROLSをこ
れらのベクトルレジスタに送出するのは従来と同
じである。
書込み、読出しを制御する信号CONTROLSをこ
れらのベクトルレジスタに送出するのは従来と同
じである。
以上から分かるように、本実施例では、4つの
サブユニツト30a〜30dより構成され、それ
らの回路構成をきわめて類似の構成にできる。と
くに、演算器38a〜38dがいろいろの演算が
実行できる汎用の演算器のときには、演算器を含
めて、類似もしくは同一の回路構成からなるサブ
ユニツトにより構成されるので装置製造も容易で
かつ、増設も容易となる。
サブユニツト30a〜30dより構成され、それ
らの回路構成をきわめて類似の構成にできる。と
くに、演算器38a〜38dがいろいろの演算が
実行できる汎用の演算器のときには、演算器を含
めて、類似もしくは同一の回路構成からなるサブ
ユニツトにより構成されるので装置製造も容易で
かつ、増設も容易となる。
第4図は本発明の第2の実施例で、二つのサブ
ユニツト30a,30bからなる場合を示す。選
択回路33a,33b,34a,34bはそれぞ
れ8つのベクトルレジスタR0〜R7又はR8〜
R15に接続されている。また、第1選択回路3
3a,33bの出力は演算器38aとMS10お
よび演算器38bとMS10にそれぞれ接続され
ているが、第2選択回路34a,34bの入力は
ともに演算器38a,38b,MS10のいずれ
にも接続されている。その他は第3図と本質的に
同じである。
ユニツト30a,30bからなる場合を示す。選
択回路33a,33b,34a,34bはそれぞ
れ8つのベクトルレジスタR0〜R7又はR8〜
R15に接続されている。また、第1選択回路3
3a,33bの出力は演算器38aとMS10お
よび演算器38bとMS10にそれぞれ接続され
ているが、第2選択回路34a,34bの入力は
ともに演算器38a,38b,MS10のいずれ
にも接続されている。その他は第3図と本質的に
同じである。
この例の場合、第1選択回路33a,33bの
入力線と出力線は互いに等しい。同じことが第2
選択回路34a,34bについても言える。
入力線と出力線は互いに等しい。同じことが第2
選択回路34a,34bについても言える。
以下、第3図の実施例に基づいて、第2図で示
した演算を第1図の装置と全く同じように実行で
きることを示す。MS10上に格納されたベクト
ル変数xは、一要素ずつパイプラインでデータ線
42aを経由してサブユニツト30aの選択回路
34aに入力される。以下ベクトル形式のデータ
はすべて一要素ずつパイプラインで転送される。
第5図は選択回路34aの詳細な実施例を示した
ものである。MS10からのベクトル変数xは、
一要素ずつパイプラインでデータ線42aを経由
して4出力デコーダ(部分分配器)381に入力
される。デコーダ381,382,383は、
EN入力ピンが“1”の時2ビツトのA入力ピン
が指示する出力ピン(0,1,2,3出力ピン)
のいずれかを1本を“1”とする。EN入力ピン
が“0”の時は4本の出力ピンはいずれも“0”
である。このデコーダは、EN入力ピンの内容を
A入力ピンの指示に従い4つに分配する部分分配
回路と見なすことができる。レジスタ341は、
入力42aの分配すべき行先すなわち書込みレジ
スタ番号の下位2ビツトを格納している。したが
つて、xの各要素はレジスタ341の指示に従い
デコーダ381、ORゲート345を経由してレ
ジスタR0への入力線371に出力される。以
下、デコーダ382とレジスタ342はデータ入
力線44aと対応し、デコーダ383とレジスタ
343はデータ入力線44bと対応している。ま
た、ORゲート346,347,348とその出
力372,373,374はそれぞれレジスタR
1,R2,R3と対応している。この様に、m入
力n出力の選択回路は、m個の(log2n)ビツト
のレジスタと、m個のn出力デコーダとn個のm
入力ORゲートで実現できる。さらにORゲート
は結線論理により省略しても良い。
した演算を第1図の装置と全く同じように実行で
きることを示す。MS10上に格納されたベクト
ル変数xは、一要素ずつパイプラインでデータ線
42aを経由してサブユニツト30aの選択回路
34aに入力される。以下ベクトル形式のデータ
はすべて一要素ずつパイプラインで転送される。
第5図は選択回路34aの詳細な実施例を示した
ものである。MS10からのベクトル変数xは、
一要素ずつパイプラインでデータ線42aを経由
して4出力デコーダ(部分分配器)381に入力
される。デコーダ381,382,383は、
EN入力ピンが“1”の時2ビツトのA入力ピン
が指示する出力ピン(0,1,2,3出力ピン)
のいずれかを1本を“1”とする。EN入力ピン
が“0”の時は4本の出力ピンはいずれも“0”
である。このデコーダは、EN入力ピンの内容を
A入力ピンの指示に従い4つに分配する部分分配
回路と見なすことができる。レジスタ341は、
入力42aの分配すべき行先すなわち書込みレジ
スタ番号の下位2ビツトを格納している。したが
つて、xの各要素はレジスタ341の指示に従い
デコーダ381、ORゲート345を経由してレ
ジスタR0への入力線371に出力される。以
下、デコーダ382とレジスタ342はデータ入
力線44aと対応し、デコーダ383とレジスタ
343はデータ入力線44bと対応している。ま
た、ORゲート346,347,348とその出
力372,373,374はそれぞれレジスタR
1,R2,R3と対応している。この様に、m入
力n出力の選択回路は、m個の(log2n)ビツト
のレジスタと、m個のn出力デコーダとn個のm
入力ORゲートで実現できる。さらにORゲート
は結線論理により省略しても良い。
この様に、第3図のレジスタR0にはベクトル
変数xの要素が順次書込まれていく。同時にレジ
スタR0に書込まれた内容は書込みと並列に、選
択回路33aとデータ線31aを経由して演算器
38aに順次送出される。これと同期してレジス
タR1中にあらかじめ格納されていたベクトル定
数aの要素も選択回路33aとデータ線32aを
経由して演算器38aに送出される。
変数xの要素が順次書込まれていく。同時にレジ
スタR0に書込まれた内容は書込みと並列に、選
択回路33aとデータ線31aを経由して演算器
38aに順次送出される。これと同期してレジス
タR1中にあらかじめ格納されていたベクトル定
数aの要素も選択回路33aとデータ線32aを
経由して演算器38aに送出される。
第6図は4入力3出力型の選択回路33aの詳
細な実施例を示したものであり、3個の4入力セ
レクタを用いて実現されている。データ線群36
a中のデータ線361,362,363,364
はそれぞれレジスタR0,R1,R2,R3から
の読出しデータを転送するために使用される。レ
ジスタ331とセレクタ335はデータ線41a
を経由するMS10への転送データと対応してお
り、レジスタ332とセレクタ336のデータ線
31aを経由する演算器38aの左側入力データ
と対応しており、レジスタ333とセレクタ33
7はデータ線32aを経由する演算器38aの右
側入力と対応している。
細な実施例を示したものであり、3個の4入力セ
レクタを用いて実現されている。データ線群36
a中のデータ線361,362,363,364
はそれぞれレジスタR0,R1,R2,R3から
の読出しデータを転送するために使用される。レ
ジスタ331とセレクタ335はデータ線41a
を経由するMS10への転送データと対応してお
り、レジスタ332とセレクタ336のデータ線
31aを経由する演算器38aの左側入力データ
と対応しており、レジスタ333とセレクタ33
7はデータ線32aを経由する演算器38aの右
側入力と対応している。
第6図に示した様にm入力n入力の選択回路
は、n個の(log2m)ビツトのレジスタとn個の
m入力セレクタによつても実現できる。第5図と
はレジスタが出力対応に存在している点に特徴が
ある。
は、n個の(log2m)ビツトのレジスタとn個の
m入力セレクタによつても実現できる。第5図と
はレジスタが出力対応に存在している点に特徴が
ある。
第3図の演算器38aは、ベクトル変数xとベ
クトル定数aの加算を一要素ずつパイプラインで
実行し、ベクトル中間結果(x+a)はデータ線
45aと選択回路34bを経由して、レジスタ群
35b中のレジスタR4に書込まれる。
クトル定数aの加算を一要素ずつパイプラインで
実行し、ベクトル中間結果(x+a)はデータ線
45aと選択回路34bを経由して、レジスタ群
35b中のレジスタR4に書込まれる。
以下同様に、演算器38bはレジスタR4中の
ベクトル中間結果(x+a)とR5中のベクトル
定数bの乗算をレジスタR4への格納と同時的に
実行し、ベクトル中間結果((x+a)+b)は、
レジスタR8に格納される。
ベクトル中間結果(x+a)とR5中のベクトル
定数bの乗算をレジスタR4への格納と同時的に
実行し、ベクトル中間結果((x+a)+b)は、
レジスタR8に格納される。
演算器38cは、レジスタR8中のベクトル中
間結果((x+a)〓b)とレジスタR9中のベ
クトル定数cとの加算をレジスタR8への格納と
並行して実行し、ベクトル中間結果(((x+a)
〓b)+c)をレジスタR12に格納する。
間結果((x+a)〓b)とレジスタR9中のベ
クトル定数cとの加算をレジスタR8への格納と
並行して実行し、ベクトル中間結果(((x+a)
〓b)+c)をレジスタR12に格納する。
同時にMS10中のベクトル変数yは、データ
線43dと選択回路34dを経由してレジスタR
13に書込まれる。演算器38dは、レジスタR
12中のベクトル中間結果(((x+a)〓b)+
c)とレジスタR13中のベクトル変数yの乗算
を実行し、ベクトル最終結果はレジスタR14に
書込まれ、さらにレジスタR14より選択回路3
3dとデータ線41dを経由してMS中のベクト
ル変数zに、レジスタ14への書込みと並行して
格納される。
線43dと選択回路34dを経由してレジスタR
13に書込まれる。演算器38dは、レジスタR
12中のベクトル中間結果(((x+a)〓b)+
c)とレジスタR13中のベクトル変数yの乗算
を実行し、ベクトル最終結果はレジスタR14に
書込まれ、さらにレジスタR14より選択回路3
3dとデータ線41dを経由してMS中のベクト
ル変数zに、レジスタ14への書込みと並行して
格納される。
この様にサブユニツト4個とMSを組合せた第
3図に示す装置においても、第2図に示す装置と
全く同様にチエイニング方式による演算器の並列
動作が実現できる。
3図に示す装置においても、第2図に示す装置と
全く同様にチエイニング方式による演算器の並列
動作が実現できる。
第3図又は第4図に示した実施例では、サブユ
ニツトを1個の演算器と4個ないし8個のベクト
ルレジスタにより構成した例を示しているが、任
意の個数の演算器とベクトルレジスタの組合せが
可能なことは勿論である。
ニツトを1個の演算器と4個ないし8個のベクト
ルレジスタにより構成した例を示しているが、任
意の個数の演算器とベクトルレジスタの組合せが
可能なことは勿論である。
また、第3図において選択回路33a,33d
の出力41a,41dを省略することも可能であ
る。
の出力41a,41dを省略することも可能であ
る。
すなわち、線41a,41dの代りに、それぞ
れ、演算器38aの出力線44aと演算器38d
の出力線44dをMS10への入力とするもので
ある。このためには制御回路80は演算器38
a,38dの出力を直接MSへ書込むように制御
するものでなければならない。
れ、演算器38aの出力線44aと演算器38d
の出力線44dをMS10への入力とするもので
ある。このためには制御回路80は演算器38
a,38dの出力を直接MSへ書込むように制御
するものでなければならない。
以上の説明は、ベクトルレジスタとパイプライ
ン演算器による本発明をベクトル演算装置に適用
した実施例を示したが、本発明はベクトル演算装
置に限定されない。たとえば、x=(a〓b)+
(c〓d)+(e〓f)+(g〓h)の様なスカラ演
算においても適用可能である。このためには、レ
ジスタR0〜R17をスカラレジスタとすればよ
い。また演算器38a〜38dはパイプラインで
ない演算器に置換えてもよい。この結果、上記演
算における4つの乗算が並列に実行可能となる。
ン演算器による本発明をベクトル演算装置に適用
した実施例を示したが、本発明はベクトル演算装
置に限定されない。たとえば、x=(a〓b)+
(c〓d)+(e〓f)+(g〓h)の様なスカラ演
算においても適用可能である。このためには、レ
ジスタR0〜R17をスカラレジスタとすればよ
い。また演算器38a〜38dはパイプラインで
ない演算器に置換えてもよい。この結果、上記演
算における4つの乗算が並列に実行可能となる。
なお、以上の実施例においては、制御回路80
からは第1,第2の選択回路には、各リソースご
とに、それに接続されるべきレジスタ番号を入力
した。しかし、第1選択回路の構成を変更し、リ
ソースの番号と、そこに接続されるべき読出しレ
ジスタ番号との組に応答するように構成してもよ
い。同様に第2選択回路を、リソース番号とそれ
に接続されるべきレジスタ番号との組に応答する
ように構成することも可能である。
からは第1,第2の選択回路には、各リソースご
とに、それに接続されるべきレジスタ番号を入力
した。しかし、第1選択回路の構成を変更し、リ
ソースの番号と、そこに接続されるべき読出しレ
ジスタ番号との組に応答するように構成してもよ
い。同様に第2選択回路を、リソース番号とそれ
に接続されるべきレジスタ番号との組に応答する
ように構成することも可能である。
次に、本発明による効果の例を第2図と第3図
を用いて説明する。すでに第6図で述べたよう
に、m入力n出力の選択回路はn個のm入力セレ
クタを用いて実現できる。ここでデータ線1ビツ
ト当りの論理規模をテキサスインスツルメント社
の74シリーズのTTLのICを用いた場合を例に比
較を行う。16入力セレクタは、2ICエリア(1IC
エリアはICの基準のエリア)を占める74150型
IC1個を使用し、8入力セレクタおよび6入力セ
レクタは1ICエリアを占める74151型IC1個を使用
し、4入力セレクタおよび3入力セレクタは1IC
エリアを占める74153型ICの半分を使用すること
を仮定する。
を用いて説明する。すでに第6図で述べたよう
に、m入力n出力の選択回路はn個のm入力セレ
クタを用いて実現できる。ここでデータ線1ビツ
ト当りの論理規模をテキサスインスツルメント社
の74シリーズのTTLのICを用いた場合を例に比
較を行う。16入力セレクタは、2ICエリア(1IC
エリアはICの基準のエリア)を占める74150型
IC1個を使用し、8入力セレクタおよび6入力セ
レクタは1ICエリアを占める74151型IC1個を使用
し、4入力セレクタおよび3入力セレクタは1IC
エリアを占める74153型ICの半分を使用すること
を仮定する。
従来の第2図の16入力10出力の選択回路60で
は16入力セレクタを10個必要とするので1ビツト
当り2×10=20ICエリアを占有する。
は16入力セレクタを10個必要とするので1ビツト
当り2×10=20ICエリアを占有する。
本発明の実施例を示す第3図では、4入力3出
力の選択回路33a−dは、4入力セレクタを3
×4個必要とするので1ビツト当に1/2×3×4
=6ICエリアを占有する。
力の選択回路33a−dは、4入力セレクタを3
×4個必要とするので1ビツト当に1/2×3×4
=6ICエリアを占有する。
従つて第3図の実施例では選択回路の中心とな
るセレクタに必要なICエリアは1ビツト当り、
従来の20ICエリアより70%小さい6エリアに減
少させることが可能になつている。
るセレクタに必要なICエリアは1ビツト当り、
従来の20ICエリアより70%小さい6エリアに減
少させることが可能になつている。
選択回路70に関しても同様にICエリアの減
少が期待できる。デコードICのエリアだけを考
えると選択回路70は1ビツト当り16出力のデコ
ーダ(2ICエリアを占有する74154型ICを6個使
用し12ICエリアを占有する。一方選択回路34
aは出力デコーダ(74155型の半分すなわち1/2
ICエリア)を3個、全体として12個、ICエリア
は合計6ICエリアで良い。
少が期待できる。デコードICのエリアだけを考
えると選択回路70は1ビツト当り16出力のデコ
ーダ(2ICエリアを占有する74154型ICを6個使
用し12ICエリアを占有する。一方選択回路34
aは出力デコーダ(74155型の半分すなわち1/2
ICエリア)を3個、全体として12個、ICエリア
は合計6ICエリアで良い。
従来例を示す第2図では、物理的な分散が困難
であつた選択回路60および70が、本発明の実
施例を示す第4図ではそれぞれ選択回路33a〜
dおよび34a〜dに分散しており、第2図より
物理的な配置の制約が大巾に緩和されている。
であつた選択回路60および70が、本発明の実
施例を示す第4図ではそれぞれ選択回路33a〜
dおよび34a〜dに分散しており、第2図より
物理的な配置の制約が大巾に緩和されている。
また、サブユニツト33a〜dはまつたく同一
構成とすることも可能であり、第3図においてサ
ブユニツトの個数の変更は選択回路33a〜dお
よび選択回路34a〜dを変更することなく実現
できる。
構成とすることも可能であり、第3図においてサ
ブユニツトの個数の変更は選択回路33a〜dお
よび選択回路34a〜dを変更することなく実現
できる。
なお、本発明によれば、任意の演算器を任意の
レジスタに接続できないためプログラムをコンパ
イルするときにコンパイラに対して制約が生じ
る。しかし、この制約はコンパイラの工夫により
解決可能である。
レジスタに接続できないためプログラムをコンパ
イルするときにコンパイラに対して制約が生じ
る。しかし、この制約はコンパイラの工夫により
解決可能である。
以上述べたごとく、本発明によれば、並列処理
を実質的に妨げないで、小さな回路規模の選択回
路を使用することができる。
を実質的に妨げないで、小さな回路規模の選択回
路を使用することができる。
第1図は並列に実行したいベクトル演算例(チ
エイニング)の模式図、第2図は従来のベクトル
演算装置の概略構成図、第3図は本発明の1実施
例の構成図、第4図は本発明の第2の実施例の構
成図、第5図は第3図の実施例に用いる第1選択
回路構成図、第6図は第3図の実施例に用いる第
2選択回路の構成図。 10…主記憶ユニツト(MS)、30a−d…
サブユニツト、33a−d…ベクトルレジスタ読
出し出力用選択回路、35a−d…ベクトルレジ
スタ群、38a−d…演算器、34a−d…ベク
トルレジスタ書込み入力用選択回路。
エイニング)の模式図、第2図は従来のベクトル
演算装置の概略構成図、第3図は本発明の1実施
例の構成図、第4図は本発明の第2の実施例の構
成図、第5図は第3図の実施例に用いる第1選択
回路構成図、第6図は第3図の実施例に用いる第
2選択回路の構成図。 10…主記憶ユニツト(MS)、30a−d…
サブユニツト、33a−d…ベクトルレジスタ読
出し出力用選択回路、35a−d…ベクトルレジ
スタ群、38a−d…演算器、34a−d…ベク
トルレジスタ書込み入力用選択回路。
Claims (1)
- 【特許請求の範囲】 1 複数の演算手段と、複数のレジスタと、該複
数のレジスタの出力を該複数の演算手段に選択的
に入力し、該複数の演算手段の出力を該複数のレ
ジスタに選択的に入力するための選択手段と、プ
ログラム命令に応答して該選択手段を制御する手
段とを有し、 該複数のレジスタは複数のグループに分けら
れ、 該選択手段は、あるグループ内の任意のレジス
タの出力を選択的に、そのグループに対応してあ
らかじめ定められた一部の演算手段に入力するた
めの、それぞれ一つのグループに対応して設けら
れた複数の第1の選択手段と、あるグループに対
応してあらかじめ定められた一部の演算手段の出
力および他の一部のグループに対応して設けられ
た一部の演算手段の出力のいずれかをそのグルー
プ内の任意のレジスタに入力するための、それぞ
れ一つのグループに対応して設けられた複数の第
2の選択手段とよりなり、該制御手段は、プログ
ラム命令がデータの読み出しに指定する第1のレ
ジスタの出力が、そのレジスタが属するグループ
に対応する演算手段に供給されるように、そのグ
ループに対応して設けられた第1の選択手段を制
御し、その命令がその演算手段の出力の書き込み
に指定する第2のレジスタにその出力が供給され
るように、その第2のレジスタが属するグループ
に対応して設けられた第2の選択手段を制御する
手段よりなるデータ処理装置。 2 データ記憶手段を更に有し、該複数の第1の
選択手段の少なくとも一部が、対応するレジスタ
グループ内の任意のレジスタの出力を、対応する
該一部の演算手段および該データ記憶手段のいず
れかに選択的に入力する手段であり、 該複数の第2の手段の少なくとも一部が、対応
するグループ内の任意のレジスタに、対応する該
少なくとも一つの演算手段および該データ記憶手
段のいずれかからの出力を選択的に入力する手段
である第1項のデータ処理装置。 3 該複数の第1の選択手段の内、該一部の第1
の選択手段のみが該データ記憶手段に対する該選
択的入力動作を行う手段である第2項のデータ処
理装置。 4 該複数の第1の選択手段の内、該一部の第2
の選択手段のみが該データ記憶手段からの出力に
対する選択入力動作を行う手段である第2項のデ
ータ処理装置。 5 該複数の第1の選択手段のすべてが該データ
記憶手段に対する選択的入力を行う手段である第
2項のデータ処理装置。 6 該複数の第2の選択手段のすべてが該データ
記憶手段の出力に対する選択的入力動作を行う手
段である第2項のデータ処理装置。 7 該グループ内のレジスタ数がグループによら
ず同一であり、該複数の第1の手段の出力信号線
数は同一である第1項又は第2項のデータ処理装
置。 8 該グループ内のレジスタ数がグループによら
ず同一であり、該複数の第2の手段の入力信号線
数は同一である第1項又は第2項又は第7項のデ
ータ処理装置。 9 該レジスタの各々は、ベクトルの複数要素を
記憶するベクトルレジスタであり、該演算手段の
各々は、パイプライン的に演算を次々と実行する
パイプライン演算手段である第1項から第8項の
いずれか一つのデータ処理装置。 10 該グループの数は2である第1項のデータ
処理装置。 11 該グループの数は2より大きい第1項のデ
ータ処理装置。 12 該グループの数は2である第2項のデータ
処理装置。 13 該グループの数は2より大きい第2項のデ
ータ処理装置。 14 該グループの数は2より大きい第3項又は
第4項のデータ処理装置。 15 該グループの数は2である第5項のデータ
処理装置。 16 該グループの数は2である第6項のデータ
処理装置。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP58135816A JPS6027984A (ja) | 1983-07-27 | 1983-07-27 | デ−タ処理装置 |
| US06/633,981 US4712175A (en) | 1983-07-27 | 1984-07-24 | Data processing apparatus |
| EP84108740A EP0141908B1 (en) | 1983-07-27 | 1984-07-24 | Data processing apparatus |
| DE8484108740T DE3479931D1 (en) | 1983-07-27 | 1984-07-24 | Data processing apparatus |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP58135816A JPS6027984A (ja) | 1983-07-27 | 1983-07-27 | デ−タ処理装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS6027984A JPS6027984A (ja) | 1985-02-13 |
| JPH0432426B2 true JPH0432426B2 (ja) | 1992-05-29 |
Family
ID=15160474
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP58135816A Granted JPS6027984A (ja) | 1983-07-27 | 1983-07-27 | デ−タ処理装置 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US4712175A (ja) |
| EP (1) | EP0141908B1 (ja) |
| JP (1) | JPS6027984A (ja) |
| DE (1) | DE3479931D1 (ja) |
Families Citing this family (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS58113043A (ja) * | 1981-12-25 | 1983-07-05 | Toshiba Corp | 給紙装置 |
| EP0167959B1 (en) * | 1984-07-02 | 1992-05-06 | Nec Corporation | Computer vector register processing |
| US5081573A (en) * | 1984-12-03 | 1992-01-14 | Floating Point Systems, Inc. | Parallel processing system |
| US5226171A (en) * | 1984-12-03 | 1993-07-06 | Cray Research, Inc. | Parallel vector processing system for individual and broadcast distribution of operands and control information |
| US5187800A (en) * | 1985-01-04 | 1993-02-16 | Sun Microsystems, Inc. | Asynchronous pipelined data processing system |
| JPS62152071A (ja) * | 1985-12-25 | 1987-07-07 | Nec Corp | デ−タ処理装置 |
| JPS6314275A (ja) * | 1986-07-04 | 1988-01-21 | Nec Corp | ベクトル演算プロセツサのスカラデ−タ演算方式 |
| JPH0648486B2 (ja) * | 1986-10-08 | 1994-06-22 | 日本電気株式会社 | ベクトルデ−タ処理装置 |
| US5034882A (en) * | 1987-11-10 | 1991-07-23 | Echelon Corporation | Multiprocessor intelligent cell for a network which provides sensing, bidirectional communications and control |
| WO1989004521A1 (en) * | 1987-11-10 | 1989-05-18 | Echelon Systems | Multiprocessor intelligent cell for a network which provides sensing, bidirectional communications and control |
| US5068819A (en) * | 1988-06-23 | 1991-11-26 | International Business Machines Corporation | Floating point apparatus with concurrent input/output operations |
| JPH0792779B2 (ja) * | 1988-10-08 | 1995-10-09 | 日本電気株式会社 | データ転送制御装置 |
| JPH0328900A (ja) * | 1989-06-26 | 1991-02-07 | Pioneer Electron Corp | オーディオ信号データ処理装置 |
| US5203002A (en) * | 1989-12-27 | 1993-04-13 | Wetzel Glen F | System with a multiport memory and N processing units for concurrently/individually executing 2N-multi-instruction-words at first/second transitions of a single clock cycle |
| US5301340A (en) * | 1990-10-31 | 1994-04-05 | International Business Machines Corporation | IC chips including ALUs and identical register files whereby a number of ALUs directly and concurrently write results to every register file per cycle |
| KR0142803B1 (ko) * | 1993-09-02 | 1998-07-15 | 모리시다 요이치 | 신호처리장치 |
| JPH07271764A (ja) * | 1994-03-24 | 1995-10-20 | Internatl Business Mach Corp <Ibm> | 計算機プロセッサ及びシステム |
| JP3458518B2 (ja) * | 1994-08-30 | 2003-10-20 | ソニー株式会社 | 並列プロセッサ |
| US6704493B1 (en) * | 2000-03-06 | 2004-03-09 | Sony Corporation | Multiple source recording |
| JP3613240B2 (ja) * | 2001-12-05 | 2005-01-26 | セイコーエプソン株式会社 | 表示駆動回路、電気光学装置及び表示駆動方法 |
| US20100274988A1 (en) * | 2002-02-04 | 2010-10-28 | Mimar Tibet | Flexible vector modes of operation for SIMD processor |
| US7793084B1 (en) | 2002-07-22 | 2010-09-07 | Mimar Tibet | Efficient handling of vector high-level language conditional constructs in a SIMD processor |
| US7873812B1 (en) * | 2004-04-05 | 2011-01-18 | Tibet MIMAR | Method and system for efficient matrix multiplication in a SIMD processor architecture |
| WO2008111500A1 (ja) * | 2007-03-08 | 2008-09-18 | Nec Corporation | ベクトル処理装置 |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4128880A (en) * | 1976-06-30 | 1978-12-05 | Cray Research, Inc. | Computer vector register processing |
| US4179734A (en) * | 1976-07-02 | 1979-12-18 | Floating Point Systems, Inc. | Floating point data processor having fast access memory means |
| JPS6024985B2 (ja) * | 1978-08-31 | 1985-06-15 | 富士通株式会社 | デ−タ処理方式 |
| US4302818A (en) * | 1979-07-10 | 1981-11-24 | Texas Instruments Incorporated | Micro-vector processor |
| JPS57134774A (en) * | 1981-02-13 | 1982-08-20 | Hitachi Ltd | Vector operating device |
| US4594682A (en) * | 1982-12-22 | 1986-06-10 | Ibm Corporation | Vector processing |
| JPS59160267A (ja) * | 1983-03-02 | 1984-09-10 | Hitachi Ltd | ベクトル処理装置 |
-
1983
- 1983-07-27 JP JP58135816A patent/JPS6027984A/ja active Granted
-
1984
- 1984-07-24 EP EP84108740A patent/EP0141908B1/en not_active Expired
- 1984-07-24 DE DE8484108740T patent/DE3479931D1/de not_active Expired
- 1984-07-24 US US06/633,981 patent/US4712175A/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| EP0141908B1 (en) | 1989-09-27 |
| US4712175A (en) | 1987-12-08 |
| JPS6027984A (ja) | 1985-02-13 |
| EP0141908A3 (en) | 1987-12-23 |
| EP0141908A2 (en) | 1985-05-22 |
| DE3479931D1 (en) | 1989-11-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0432426B2 (ja) | ||
| US5287532A (en) | Processor elements having multi-byte structure shift register for shifting data either byte wise or bit wise with single-bit output formed at bit positions thereof spaced by one byte | |
| US4418383A (en) | Data flow component for processor and microprocessor systems | |
| JP2519226B2 (ja) | プロセツサ | |
| US5175862A (en) | Method and apparatus for a special purpose arithmetic boolean unit | |
| JP4657455B2 (ja) | データプロセッサ | |
| WO1994003860A1 (en) | Massively parallel computer including auxiliary vector processor | |
| US4314333A (en) | Data processor | |
| JPH04299436A (ja) | メモリ回路および機能ユニットのグループを備えた処理装置 | |
| JPH03144783A (ja) | 入出力システム | |
| JPH04245540A (ja) | 条件付き分岐を有するプログラムの効率的実行をするためのコンピュータシステム | |
| US5043879A (en) | PLA microcode controller | |
| JPS61248135A (ja) | パイプライン式プロセツサ及びその制御方法 | |
| GB2390702A (en) | Providing local addressing of memory cells for use with global and local addressing in multi-processor systems by driving the row select line with a binary 1 | |
| US4159520A (en) | Memory address control device with extender bus | |
| US4136383A (en) | Microprogrammed, multipurpose processor having controllable execution speed | |
| JPH0752386B2 (ja) | マルチデ−タ路のcpuア−キテクチヤ | |
| JP2021507352A (ja) | メモリ装置及びそれを制御するための方法 | |
| US4085450A (en) | Performance invarient execution unit for non-communicative instructions | |
| US5890009A (en) | VLIW architecture and method for expanding a parcel | |
| KR20010072491A (ko) | 산술 논리 유닛 및 스택을 가지는 데이터 프로세서,멀티미디어 장치 및 컴퓨터 프로그램 제품 | |
| EP0223849B1 (en) | Super-computer system architectures | |
| US3631401A (en) | Direct function data processor | |
| US4975837A (en) | Programmable unit having plural levels of subinstruction sets where a portion of the lower level is embedded in the code stream of the upper level of the subinstruction sets | |
| JPH0345420B2 (ja) |