JPH06103068A - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JPH06103068A JPH06103068A JP24996992A JP24996992A JPH06103068A JP H06103068 A JPH06103068 A JP H06103068A JP 24996992 A JP24996992 A JP 24996992A JP 24996992 A JP24996992 A JP 24996992A JP H06103068 A JPH06103068 A JP H06103068A
- Authority
- JP
- Japan
- Prior art keywords
- alu
- register
- registers
- arithmetic
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 claims description 24
- 238000013461 design Methods 0.000 abstract description 5
- 238000004519 manufacturing process Methods 0.000 abstract description 4
- 239000011159 matrix material Substances 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 238000000034 method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 101150071111 FADD gene Proteins 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】
【目的】 並列演算と、逐次演算とを切り替え可能なデ
ータ処理装置であって、製造・設計と、その上のソフト
ウェアの設計が容易なデータ処理装置を得る。 【構成】 第一のALU40及び第二のALU42、及
び12個のレジスタ44−0〜44−11を備えてい
る。そして、第一及び第二のALU40、42と、12
個のレジスタ44−0〜44−11とを制御しているの
が、制御部46である。これらの構成を含むプロセッサ
に入力された逐次演算命令は、第一のALU40でのみ
実行され、この際第二のALU42は停止状態にある。
並列演算命令が入力さると、第一及び第二のALU4
0、42において並列に実行され、第一のALUは、共
通レジスタ44−0〜44−3と、専用レジスタ44−
4〜44−7とにアクセスでき、第二のALU42は、
共通レジスタ44−0〜44−3と、専用レジスタ44
−4〜44−7とにアクセスできる。
ータ処理装置であって、製造・設計と、その上のソフト
ウェアの設計が容易なデータ処理装置を得る。 【構成】 第一のALU40及び第二のALU42、及
び12個のレジスタ44−0〜44−11を備えてい
る。そして、第一及び第二のALU40、42と、12
個のレジスタ44−0〜44−11とを制御しているの
が、制御部46である。これらの構成を含むプロセッサ
に入力された逐次演算命令は、第一のALU40でのみ
実行され、この際第二のALU42は停止状態にある。
並列演算命令が入力さると、第一及び第二のALU4
0、42において並列に実行され、第一のALUは、共
通レジスタ44−0〜44−3と、専用レジスタ44−
4〜44−7とにアクセスでき、第二のALU42は、
共通レジスタ44−0〜44−3と、専用レジスタ44
−4〜44−7とにアクセスできる。
Description
【0001】
【産業上の利用分野】本発明は、データ処理装置に関す
る。特に、並列演算可能なデータ処理装置に関する。
る。特に、並列演算可能なデータ処理装置に関する。
【0002】
【従来の技術】近年、デジタル技術は大きく発展し、様
々なデータの処理がデジタル技術により高速に処理され
ている。しかしながら、処理内容の高度化・複雑化のた
めにより高速なデータ処理が要求されている。このよう
な要望により、高速化のための技術が各種開発・提案さ
れている。
々なデータの処理がデジタル技術により高速に処理され
ている。しかしながら、処理内容の高度化・複雑化のた
めにより高速なデータ処理が要求されている。このよう
な要望により、高速化のための技術が各種開発・提案さ
れている。
【0003】従来の代表的な高速化技術の一つに、パイ
プラインがある。図3にパイプラインの説明が示されて
いる。図3に示されているように、パイプラインによる
データ処理においては、一個のプロセッサ8の内部が、
複数の処理ステージに分割されている。図3に示されて
いるように、例えば、命令の取り出しステージ10と、
命令の解読ステージ12と、オペランドの取り出しステ
ージ14と、演算実行ステージ16と、結果の格納ステ
ージ18とに分割されている。そして、それぞれのステ
ージで一連の別々の命令・データを取り扱うことによ
り、プロセッサ8の動作クロックをそのままの値に維持
したままこの一個のプロセッサ8が同時に5個の命令・
データの組を処理することが可能である。
プラインがある。図3にパイプラインの説明が示されて
いる。図3に示されているように、パイプラインによる
データ処理においては、一個のプロセッサ8の内部が、
複数の処理ステージに分割されている。図3に示されて
いるように、例えば、命令の取り出しステージ10と、
命令の解読ステージ12と、オペランドの取り出しステ
ージ14と、演算実行ステージ16と、結果の格納ステ
ージ18とに分割されている。そして、それぞれのステ
ージで一連の別々の命令・データを取り扱うことによ
り、プロセッサ8の動作クロックをそのままの値に維持
したままこの一個のプロセッサ8が同時に5個の命令・
データの組を処理することが可能である。
【0004】このように、複数の処理ステージに分割す
ることによりそれに比例して速度が増加するが、分岐命
令等の場合には、パイプラインの流れが分断されるた
め、あまり長すぎるパイプラインはかえって速度の低下
を招く。そのため、一般には4〜6段程度のパイプライ
ンが多く用いられている。スーパーコンピュータ等で
は、このパイプラインを複数個備えスーパースケーラ等
が実現されている。
ることによりそれに比例して速度が増加するが、分岐命
令等の場合には、パイプラインの流れが分断されるた
め、あまり長すぎるパイプラインはかえって速度の低下
を招く。そのため、一般には4〜6段程度のパイプライ
ンが多く用いられている。スーパーコンピュータ等で
は、このパイプラインを複数個備えスーパースケーラ等
が実現されている。
【0005】従来の他の高速化技術の一つに、マルチプ
ロセッサがある。マルチプロセッサは、上述したパイプ
ラインとは異なり、複数のプロセッサを用いる技術であ
る。図4にマルチプロセッサの説明図が示されている。
図4に示されているように、共用メモリ群30に対し
て、複数のプロセッサ32が接続されている。そして、
各プロセッサには、一般に同一の命令が供給され、各プ
ロセッサは、共用メモリ群30内部の別個のデータに対
しそれぞれデータ処理を実行する。そのため、プロセッ
サの個数に比例した演算速度が得られ、データ処理速度
の向上が期待できる。
ロセッサがある。マルチプロセッサは、上述したパイプ
ラインとは異なり、複数のプロセッサを用いる技術であ
る。図4にマルチプロセッサの説明図が示されている。
図4に示されているように、共用メモリ群30に対し
て、複数のプロセッサ32が接続されている。そして、
各プロセッサには、一般に同一の命令が供給され、各プ
ロセッサは、共用メモリ群30内部の別個のデータに対
しそれぞれデータ処理を実行する。そのため、プロセッ
サの個数に比例した演算速度が得られ、データ処理速度
の向上が期待できる。
【0006】このような、パイプラインの情報処理装置
が例えば特開平2−29825号公報に記載されてい
る。また、マルチプロセッサにおいて、主プロセッサと
副プロセッサを用いたマルチプロセッサについての一例
が特開平2−32452号公報に記載されている。ま
た、並列処理と逐次処理とを切り替える構成を有する並
列処理装置が例えば特開平3−129433号公報に記
載されているその他の高速化技術としては、縮小命令セ
ットコンピュータ、いわゆるRISC型コンピュータが
ある。このような型のコンピュータの例が例えば特開昭
63−49843号公報に記載されている。
が例えば特開平2−29825号公報に記載されてい
る。また、マルチプロセッサにおいて、主プロセッサと
副プロセッサを用いたマルチプロセッサについての一例
が特開平2−32452号公報に記載されている。ま
た、並列処理と逐次処理とを切り替える構成を有する並
列処理装置が例えば特開平3−129433号公報に記
載されているその他の高速化技術としては、縮小命令セ
ットコンピュータ、いわゆるRISC型コンピュータが
ある。このような型のコンピュータの例が例えば特開昭
63−49843号公報に記載されている。
【0007】
【発明が解決しようとする課題】従来のデータ処理装置
は、以上のように構成されていた。そのため、スーパー
スケーラ等の並列処理をパイプラインで行う場合には、
パイプライン等のアーキテクチャが複雑になるため、設
計の労力が増加し、製造時の歩留まりも悪化する。そし
て、ソフトウェアの設計において、正確な制御を行うた
めのソフトウェアを制作するためには、パイプラインの
詳細な動きを把握する必要がある。
は、以上のように構成されていた。そのため、スーパー
スケーラ等の並列処理をパイプラインで行う場合には、
パイプライン等のアーキテクチャが複雑になるため、設
計の労力が増加し、製造時の歩留まりも悪化する。そし
て、ソフトウェアの設計において、正確な制御を行うた
めのソフトウェアを制作するためには、パイプラインの
詳細な動きを把握する必要がある。
【0008】さらに、上記マルチプロセッサで並列処理
を行う場合には、各プロセッサで共通にアクセス可能な
同一資源(上記の場合には共用メモリ群)が必要であ
る。また、同時にアクセスしてしまうこと(コンフリク
ト)を回避するために、各プロセッサ間での通信が必要
である。そのため、マルチプロセッサによる制御方式で
は、各プロセッサ間の通信状態を十分に把握し、制御の
ためのソフトウェアを製作する必要がある。
を行う場合には、各プロセッサで共通にアクセス可能な
同一資源(上記の場合には共用メモリ群)が必要であ
る。また、同時にアクセスしてしまうこと(コンフリク
ト)を回避するために、各プロセッサ間での通信が必要
である。そのため、マルチプロセッサによる制御方式で
は、各プロセッサ間の通信状態を十分に把握し、制御の
ためのソフトウェアを製作する必要がある。
【0009】本発明は、上記課題に鑑みなされたもの
で、その目的は、並列演算と、逐次演算とを切り替える
ことが可能なデータ処理装置であって、製造・設計が容
易なアーキテクチャを有し、かつ、ソフトウェアの設計
が容易となるようなデータ処理装置を得ることである。
で、その目的は、並列演算と、逐次演算とを切り替える
ことが可能なデータ処理装置であって、製造・設計が容
易なアーキテクチャを有し、かつ、ソフトウェアの設計
が容易となるようなデータ処理装置を得ることである。
【0010】
【課題を解決するための手段】本発明は、上述の課題を
解決するために、一個の主演算器を含む複数の演算器
と、前記各演算器ごとに設けられ、各対応する演算器に
よってデータの読み書きが行われるレジスタ群と、前記
複数の演算器に共通に設けられ、前記複数の演算器によ
ってデータの読み書きが行われる共通レジスタ群と、前
記複数の演算器を制御する制御部と、を備え、前記制御
部は、並列動作命令を入力した場合には、前記複数の演
算器に同一の演算を行わせ、逐次動作命令を入力した場
合には、前記主演算器のみに演算を行わせ、前記主演算
器に、その他の演算器に対応して設けられている前記専
用レジスタに対してもデータの読み書きを行わせること
を特徴とするデータ処理装置である。
解決するために、一個の主演算器を含む複数の演算器
と、前記各演算器ごとに設けられ、各対応する演算器に
よってデータの読み書きが行われるレジスタ群と、前記
複数の演算器に共通に設けられ、前記複数の演算器によ
ってデータの読み書きが行われる共通レジスタ群と、前
記複数の演算器を制御する制御部と、を備え、前記制御
部は、並列動作命令を入力した場合には、前記複数の演
算器に同一の演算を行わせ、逐次動作命令を入力した場
合には、前記主演算器のみに演算を行わせ、前記主演算
器に、その他の演算器に対応して設けられている前記専
用レジスタに対してもデータの読み書きを行わせること
を特徴とするデータ処理装置である。
【0011】したがって、主演算器は、逐次計算の場合
には全てのレジスタ群に対しデータの読み書きが可能で
あり、並列演算の場合には主演算器の専用レジスタ群と
共通レジスタ群とに対し、データの読み書きが可能であ
る。
には全てのレジスタ群に対しデータの読み書きが可能で
あり、並列演算の場合には主演算器の専用レジスタ群と
共通レジスタ群とに対し、データの読み書きが可能であ
る。
【0012】
【作用】本発明における制御部は、逐次演算命令が入力
された場合には、主演算器のみに命令の動作を行わせ、
並列演算命令が入力された場合には、主演算器だけでな
く、全ての演算器に共通に命令動作を行わせる。
された場合には、主演算器のみに命令の動作を行わせ、
並列演算命令が入力された場合には、主演算器だけでな
く、全ての演算器に共通に命令動作を行わせる。
【0013】また、並列演算命令の場合には、各専用レ
ジスタは各対応する演算器によってのみデータの読み書
きが行われ、逐次演算命令の場合には、各専用レジスタ
は全て主演算器からデータの読み書きが可能となる。
ジスタは各対応する演算器によってのみデータの読み書
きが行われ、逐次演算命令の場合には、各専用レジスタ
は全て主演算器からデータの読み書きが可能となる。
【0014】
【実施例】以下、本発明の好適な実施例を図面に基づい
て説明する。
て説明する。
【0015】図1は、本発明の一実施例によるデータ処
理装置の構成ブロック図である。図1に示されているよ
うに、本実施例におけるデータ処理装置は、第一のAL
U40及び第二のALU42を備えている。また、12
個のレジスタ44−0〜44−11を備えている。そし
て、これらの第一及び第二のALU40、42と、12
個のレジスタ44−0〜44−11とを制御しているの
が、制御部46である。このような構成を有する本実施
例のデータ処理装置に入力される命令は、逐次演算命令
と並列演算命令とに分けられる。
理装置の構成ブロック図である。図1に示されているよ
うに、本実施例におけるデータ処理装置は、第一のAL
U40及び第二のALU42を備えている。また、12
個のレジスタ44−0〜44−11を備えている。そし
て、これらの第一及び第二のALU40、42と、12
個のレジスタ44−0〜44−11とを制御しているの
が、制御部46である。このような構成を有する本実施
例のデータ処理装置に入力される命令は、逐次演算命令
と並列演算命令とに分けられる。
【0016】本実施例において特徴的なことは、この逐
次演算命令は、第一のALU40でのみ実行され、この
際第二のALU42は停止状態にあることである。一
方、並列演算命令は、第一及び第二のALU40、42
において並列に実行される。入力される命令が逐次演算
命令であるか並列演算命令であるかは制御部46によっ
て判断される。
次演算命令は、第一のALU40でのみ実行され、この
際第二のALU42は停止状態にあることである。一
方、並列演算命令は、第一及び第二のALU40、42
において並列に実行される。入力される命令が逐次演算
命令であるか並列演算命令であるかは制御部46によっ
て判断される。
【0017】図1(a)に示されているのは、並列演算
命令が実行される際(以下、並列モードという)の動作
模式図である。図1(a)に示されているように、並列
モードにおいては、レジスタ44−0〜レジスタ44−
3が、第一及び第二のALU40、42に接続されてい
る。また、レジスタ44−4〜レジスタ44−7が、第
一のALU40のみに接続されている。そして、レジス
タ44−8〜レジスタ44−11が、第一のALU40
のみに接続されている。
命令が実行される際(以下、並列モードという)の動作
模式図である。図1(a)に示されているように、並列
モードにおいては、レジスタ44−0〜レジスタ44−
3が、第一及び第二のALU40、42に接続されてい
る。また、レジスタ44−4〜レジスタ44−7が、第
一のALU40のみに接続されている。そして、レジス
タ44−8〜レジスタ44−11が、第一のALU40
のみに接続されている。
【0018】本実施例において特徴的なことは、並列モ
ード時に、レジスタが、第一及び第二のALUの両方に
接続されている共通レジスタ郡と、いずれか一方のAL
Uにのみ接続されている専用レジスタ群との2種類備え
られていることである。図1(a)に示されているよう
に、本実施例においてはレジスタ44−0〜レジスタ4
4−3が共通レジスタであり、レジスタ44−4〜レジ
スタ44−7が、第一のALU40の専用レジスタ群で
ある。また、レジスタ44−8〜レジスタ44−11
は、第二のALU42の専用レジスタである。なお、第
二のALU42の専用レジスタ44−8〜44−11
は、並列モードにおいては第一のALU40の専用レジ
スタ44−4〜44−7と同じ番号で参照される。後述
するように、その際、第一のALU40と第二のALU
42とには同一の命令が供給されるので、例えばレジス
タ44−8は常に、レジスタ44−4と同時に参照(ア
クセス)される。具体的な動作については後述する。
ード時に、レジスタが、第一及び第二のALUの両方に
接続されている共通レジスタ郡と、いずれか一方のAL
Uにのみ接続されている専用レジスタ群との2種類備え
られていることである。図1(a)に示されているよう
に、本実施例においてはレジスタ44−0〜レジスタ4
4−3が共通レジスタであり、レジスタ44−4〜レジ
スタ44−7が、第一のALU40の専用レジスタ群で
ある。また、レジスタ44−8〜レジスタ44−11
は、第二のALU42の専用レジスタである。なお、第
二のALU42の専用レジスタ44−8〜44−11
は、並列モードにおいては第一のALU40の専用レジ
スタ44−4〜44−7と同じ番号で参照される。後述
するように、その際、第一のALU40と第二のALU
42とには同一の命令が供給されるので、例えばレジス
タ44−8は常に、レジスタ44−4と同時に参照(ア
クセス)される。具体的な動作については後述する。
【0019】図1(b)に示されているのは、逐次演算
命令が実行される際(以下、逐次モードという)の動作
模式図である。図1(b)に示されているように、逐次
モードにおいては、全てのレジスタ44−0〜レジスタ
44−11が、第一のALU40のみに接続されてお
り、第二のALUはいわば切り離された状態である。な
お、二つのモードにおいて、レジスタがどのALUから
アクセスできるかが、図2に表されている。
命令が実行される際(以下、逐次モードという)の動作
模式図である。図1(b)に示されているように、逐次
モードにおいては、全てのレジスタ44−0〜レジスタ
44−11が、第一のALU40のみに接続されてお
り、第二のALUはいわば切り離された状態である。な
お、二つのモードにおいて、レジスタがどのALUから
アクセスできるかが、図2に表されている。
【0020】以下、マトリクスAとマトリクスBとの値
を乗算し、マトリクスCを得る計算について、その詳細
な動作を説明する。なお、マトリクスBは、I/Oポー
トから入力し、計算結果であるマトリクスCもI/Oポ
ートに出力されるものとする。各マトリクスA、B、C
には以下の関係がある。
を乗算し、マトリクスCを得る計算について、その詳細
な動作を説明する。なお、マトリクスBは、I/Oポー
トから入力し、計算結果であるマトリクスCもI/Oポ
ートに出力されるものとする。各マトリクスA、B、C
には以下の関係がある。
【0021】
【式1】 このような乗算を行うプログラムは、例えば以下のよう
になる。 ldi R4,a; (1) ldi R5,b; (2) ldi R8,c; (3) ldi R9,d; (4) LOOP: (5) get R0; (6) get R1; (7) fmpy.p R6,R4,R0 (8) fmpy.p R7,R5,R1 (9) fadd.p R4,R6,R7 (10) put R4; (11) put R8; (12) b LOOP; (13) まず、逐次モードから上記プログラムは実行が開始され
る。上記ステップ(1)から(4)までの命令によっ
て、レジスタ44−4(R4)にa、レジスタ44−5
(R5)にb、レジスタ44−8(R8)にc、レジス
タ44−9(R9)にdがそれぞれロードされる。以
下、レジスタ44をR0〜R11のように記す。なお、
上記ldiはレジスタに直接に値をロードする逐次演算
命令である。次にステップ(5)はラベルであり、後述
するように、本演算処理の繰り返しの先頭を表す。
になる。 ldi R4,a; (1) ldi R5,b; (2) ldi R8,c; (3) ldi R9,d; (4) LOOP: (5) get R0; (6) get R1; (7) fmpy.p R6,R4,R0 (8) fmpy.p R7,R5,R1 (9) fadd.p R4,R6,R7 (10) put R4; (11) put R8; (12) b LOOP; (13) まず、逐次モードから上記プログラムは実行が開始され
る。上記ステップ(1)から(4)までの命令によっ
て、レジスタ44−4(R4)にa、レジスタ44−5
(R5)にb、レジスタ44−8(R8)にc、レジス
タ44−9(R9)にdがそれぞれロードされる。以
下、レジスタ44をR0〜R11のように記す。なお、
上記ldiはレジスタに直接に値をロードする逐次演算
命令である。次にステップ(5)はラベルであり、後述
するように、本演算処理の繰り返しの先頭を表す。
【0022】ステップ(6)から(7)までの命令によ
って、マトリクスBの値をI/Oポートから入力し、レ
ジスタR0とR1とに格納する。上記getは、I/O
ポートから値を入力する入出力命令の一種である。
って、マトリクスBの値をI/Oポートから入力し、レ
ジスタR0とR1とに格納する。上記getは、I/O
ポートから値を入力する入出力命令の一種である。
【0023】以上のようにして、第一のALUの専用レ
ジスタ(R4、R5)にaとbを、第二のALUの専用
レジスタ(R8、R9)にc、dを、それぞれ格納し、
さらに、共通レジスタR0とR1とにマトリクスBのx
とyとを格納する。
ジスタ(R4、R5)にaとbを、第二のALUの専用
レジスタ(R8、R9)にc、dを、それぞれ格納し、
さらに、共通レジスタR0とR1とにマトリクスBのx
とyとを格納する。
【0024】次に、実際の乗算が行われる。乗算は、第
一のALU40にてax+byが、第二のALU42に
てcx+dyが、それぞれ並列に行われる。
一のALU40にてax+byが、第二のALU42に
てcx+dyが、それぞれ並列に行われる。
【0025】ステップ(8)から(10)までが乗算の
中心部分である。この3つのステップにおいて用いられ
ている命令のように、後ろにサフィックスの「.p」が
付加されている命令は並列演算命令を表す。つまり、ス
テップ(1)から(7)までは、第一のALU40につ
いて命令が実行されてきたが、このステップ(8)〜
(10)においては、命令は第一及び第二のALU40
と42との両方で実行される。
中心部分である。この3つのステップにおいて用いられ
ている命令のように、後ろにサフィックスの「.p」が
付加されている命令は並列演算命令を表す。つまり、ス
テップ(1)から(7)までは、第一のALU40につ
いて命令が実行されてきたが、このステップ(8)〜
(10)においては、命令は第一及び第二のALU40
と42との両方で実行される。
【0026】まず、ステップ(8)においては、第一の
ALU40はレジスタR0の値とR4の値とを乗算し、
その結果をレジスタR6に格納する。一方、第二のAL
U42においては、レジスタのR4とR6とは、前述し
たように、逐次モードにおけるレジスタR8とR10で
ある。したがって、第二のALU42は、レジスタのR
0の値とR8の値とを乗算し、その結果をレジスタR1
0に格納する。このように、第一のALU40において
はa*xが実行され、第二のALU42においてはc*
xが実行され、それぞれの結果が、レジスタR6とR1
0に格納される。なお、fmpyは、浮動小数点数の乗
算を表す。
ALU40はレジスタR0の値とR4の値とを乗算し、
その結果をレジスタR6に格納する。一方、第二のAL
U42においては、レジスタのR4とR6とは、前述し
たように、逐次モードにおけるレジスタR8とR10で
ある。したがって、第二のALU42は、レジスタのR
0の値とR8の値とを乗算し、その結果をレジスタR1
0に格納する。このように、第一のALU40において
はa*xが実行され、第二のALU42においてはc*
xが実行され、それぞれの結果が、レジスタR6とR1
0に格納される。なお、fmpyは、浮動小数点数の乗
算を表す。
【0027】ステップ(9)も、(8)と同一の並列演
算命令であり、第一のALU40はレジスタR1の値と
R5の値とを乗算し、その結果をレジスタR7に格納す
る。一方、第二のALU42においては、レジスタのR
5とR7とは、前述したように、逐次モードにおけるレ
ジスタR9とR11である。したがって、第二のALU
42は、レジスタのR1の値とR9の値とを乗算し、そ
の結果をレジスタR11に格納する。このように、第一
のALU40においてはb*yが実行され、第二のAL
U42においてはd*yが実行され、それぞれの結果
が、レジスタR7とR11に格納される。
算命令であり、第一のALU40はレジスタR1の値と
R5の値とを乗算し、その結果をレジスタR7に格納す
る。一方、第二のALU42においては、レジスタのR
5とR7とは、前述したように、逐次モードにおけるレ
ジスタR9とR11である。したがって、第二のALU
42は、レジスタのR1の値とR9の値とを乗算し、そ
の結果をレジスタR11に格納する。このように、第一
のALU40においてはb*yが実行され、第二のAL
U42においてはd*yが実行され、それぞれの結果
が、レジスタR7とR11に格納される。
【0028】ここまでの結果をまとめると、レジスタR
6にa*xが、レジスタR10にc*xが、レジスタR
7にb*yが、レジスタR11にd*yが、それぞれ格
納されている。
6にa*xが、レジスタR10にc*xが、レジスタR
7にb*yが、レジスタR11にd*yが、それぞれ格
納されている。
【0029】そして、ステップ(10)においては、加
算が行われる。この加算も並列演算命令によって第一の
ALU40と第二のALU42において並列に行われ
る。第一のALU40は、レジスタR7の値とR6の値
とを加算し、その結果をレジスタR4に格納する。第二
のALU42においては、レジスタのR6、R7及びR
4は、逐次モードにおけるレジスタR10、R11及び
R8である。したがって、第二のALU42は、レジス
タR11の値とR10の値とを加算し、その結果をレジ
スタR8に格納する。このように、第一のALU40に
おいては、(a*x)+(b*y)が実行され、第二の
ALU42においては(c*x)+(d*y)が実行さ
れ、それぞれの結果が、レジスタR4とR8に格納され
る。なお、並列演算命令fadd.pは、浮動小数点数
の加算命令である。
算が行われる。この加算も並列演算命令によって第一の
ALU40と第二のALU42において並列に行われ
る。第一のALU40は、レジスタR7の値とR6の値
とを加算し、その結果をレジスタR4に格納する。第二
のALU42においては、レジスタのR6、R7及びR
4は、逐次モードにおけるレジスタR10、R11及び
R8である。したがって、第二のALU42は、レジス
タR11の値とR10の値とを加算し、その結果をレジ
スタR8に格納する。このように、第一のALU40に
おいては、(a*x)+(b*y)が実行され、第二の
ALU42においては(c*x)+(d*y)が実行さ
れ、それぞれの結果が、レジスタR4とR8に格納され
る。なお、並列演算命令fadd.pは、浮動小数点数
の加算命令である。
【0030】このようにして、マトリクスAとBとの乗
算結果であるマトリクスCの要素CxとCyが、レジス
タR4とR8とに格納される。
算結果であるマトリクスCの要素CxとCyが、レジス
タR4とR8とに格納される。
【0031】そして、ステップ(11)と(12)にお
いて、上述の演算によって求められた結果がI/Oポー
トに出力される。ステップ(11)においては、レジス
タR4の値、すなわち、Cx((a*x)+(b*
y))が出力され、ステップ(12)においては、レジ
スタR8の値、すなわち、Cy((c*x)+(d*
y))が出力される。なおputは、逐次モードで実行
される命令であり、レジスタの値をI/Oポートに出力
する命令である。
いて、上述の演算によって求められた結果がI/Oポー
トに出力される。ステップ(11)においては、レジス
タR4の値、すなわち、Cx((a*x)+(b*
y))が出力され、ステップ(12)においては、レジ
スタR8の値、すなわち、Cy((c*x)+(d*
y))が出力される。なおputは、逐次モードで実行
される命令であり、レジスタの値をI/Oポートに出力
する命令である。
【0032】最後にステップ(13)は、分岐命令であ
り、上述したラベルLOOPに分岐し、上述したような
演算が繰り返される。
り、上述したラベルLOOPに分岐し、上述したような
演算が繰り返される。
【0033】従来、並列演算を行うには、各プロセッサ
ごとに異なるプログラムを準備し、それぞれ専用の命令
を供給する必要があった。しかし、本実施例によれば、
プロセッサ内に複数のALUを備え、それぞれのALU
に専用のレジスタを持たせ、各ALUに共通の命令を与
えながら異なるデータに対する演算を行わせることがで
きる。したがって、上記ステップ(8)から(10)ま
での演算は、第一及び第二のALU40及び42にそれ
ぞれ以下のようなプログラムを与えたのと等価である。
ごとに異なるプログラムを準備し、それぞれ専用の命令
を供給する必要があった。しかし、本実施例によれば、
プロセッサ内に複数のALUを備え、それぞれのALU
に専用のレジスタを持たせ、各ALUに共通の命令を与
えながら異なるデータに対する演算を行わせることがで
きる。したがって、上記ステップ(8)から(10)ま
での演算は、第一及び第二のALU40及び42にそれ
ぞれ以下のようなプログラムを与えたのと等価である。
【0034】 第一のALUに対するプログラム 第二のALUに対するプログラム fmpy R6,R4,R0 fmpy R10,R8,R0 fmpy R7,R5,R1 fmpy R11,R9,R1 fadd R4,R6,R7 fadd R8,R10,R11 このように、従来のマルチプロセッサであるならば別々
のプログラムを用意する必要があったが、本実施例によ
れは、一種類のプログラムを与えるだけで、並列演算が
可能である。
のプログラムを用意する必要があったが、本実施例によ
れは、一種類のプログラムを与えるだけで、並列演算が
可能である。
【0035】以上述べたように、本実施例によれば並列
演算命令と、逐次演算命令とを供給するだけで、自動的
にモードの切り替えができるプロセッサが得られる。さ
らに、並列モードにおいては、各ALUに専用のレジス
タが備えられているため、各ALUは別個のデータに対
し独立の演算を行うことが可能である。したがって、従
来のマルチプロセッサのように、共通レジスタへの同時
アクセス(コンフリクト)を回避するための通信制御を
極めて簡易なもので済ませることができ、プロセッサ自
体の構造が単純になる。このようなことから、本実施例
によれば、効率の良い並列演算が可能なプロセッサであ
って、かつプログラム開発の容易なプロセッサが得られ
るという効果を有する。
演算命令と、逐次演算命令とを供給するだけで、自動的
にモードの切り替えができるプロセッサが得られる。さ
らに、並列モードにおいては、各ALUに専用のレジス
タが備えられているため、各ALUは別個のデータに対
し独立の演算を行うことが可能である。したがって、従
来のマルチプロセッサのように、共通レジスタへの同時
アクセス(コンフリクト)を回避するための通信制御を
極めて簡易なもので済ませることができ、プロセッサ自
体の構造が単純になる。このようなことから、本実施例
によれば、効率の良い並列演算が可能なプロセッサであ
って、かつプログラム開発の容易なプロセッサが得られ
るという効果を有する。
【0036】
【発明の効果】以上述べたように、本発明のデータ処理
装置によれば、効率の良い並列演算と、従来の逐次演算
とを、命令を切り替えることによって極めて容易に切り
替えることができる。また、並列演算命令は、各演算器
に対し、同一の演算を行わせるため、一つのプログラム
で並列演算を行わせることができるので、極めて容易に
並列演算が実現可能である。
装置によれば、効率の良い並列演算と、従来の逐次演算
とを、命令を切り替えることによって極めて容易に切り
替えることができる。また、並列演算命令は、各演算器
に対し、同一の演算を行わせるため、一つのプログラム
で並列演算を行わせることができるので、極めて容易に
並列演算が実現可能である。
【0037】したがって、従来のように複雑な設計を行
わなくとも容易に並列演算を実現可能なプロセッサが得
られるという効果を有する。
わなくとも容易に並列演算を実現可能なプロセッサが得
られるという効果を有する。
【図1】本発明の好適な一実施例であるプロセッサの構
成ブロック図である。
成ブロック図である。
【図2】図1の実施例のプロセッサの並列・逐次各モー
ドにおいて、各レジスタがどのALUからアクセスされ
るかを示す説明図である。
ドにおいて、各レジスタがどのALUからアクセスされ
るかを示す説明図である。
【図3】従来のパイプラインによるプロセッサを表す構
成ブロック図である。
成ブロック図である。
【図4】従来のマルチプロセッサを説明する構成ブロッ
ク図である。
ク図である。
40 第一のALU 42 第二のALU 44 レジスタ 46 制御部
Claims (1)
- 【請求項1】 一個の主演算器を含む複数の演算器と、 前記各演算器ごとに設けられ、各対応する演算器によっ
てデータの読み書きが行われる専用レジスタ群と、 前記複数の演算器に共通に設けられ、前記複数の演算器
によってデータの読み書きが行われる共通レジスタ群
と、 前記複数の演算器を制御する制御部と、を備え、 前記制御部は、 並列動作命令を入力した場合には、前記複数の演算器に
同一の演算を行わせ、 逐次動作命令を入力した場合には、前記主演算器のみに
演算を行わせ、前記主演算器に、その他の演算器に対応
して設けられている前記専用レジスタに対してもデータ
の読み書きを行わせることを特徴とするデータ処理装
置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP24996992A JPH06103068A (ja) | 1992-09-18 | 1992-09-18 | データ処理装置 |
EP19930114923 EP0588341B1 (en) | 1992-09-18 | 1993-09-16 | Data processor |
DE1993622566 DE69322566T2 (de) | 1992-09-18 | 1993-09-16 | Datenprozessor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP24996992A JPH06103068A (ja) | 1992-09-18 | 1992-09-18 | データ処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH06103068A true JPH06103068A (ja) | 1994-04-15 |
Family
ID=17200889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP24996992A Pending JPH06103068A (ja) | 1992-09-18 | 1992-09-18 | データ処理装置 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP0588341B1 (ja) |
JP (1) | JPH06103068A (ja) |
DE (1) | DE69322566T2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007052811A (ja) * | 2006-10-23 | 2007-03-01 | Tops Systems:Kk | マルチバンクレジスタを有するプロセッサおよびプロセッサの制御方法 |
JP2010282637A (ja) * | 1998-03-18 | 2010-12-16 | Qualcomm Inc | デジタル信号プロセッサ |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0594240B1 (en) * | 1992-10-19 | 2000-01-05 | Koninklijke Philips Electronics N.V. | Data processor with operation units sharing groups of register files |
US6301653B1 (en) | 1998-10-14 | 2001-10-09 | Conexant Systems, Inc. | Processor containing data path units with forwarding paths between two data path units and a unique configuration or register blocks |
US7117342B2 (en) | 1998-12-03 | 2006-10-03 | Sun Microsystems, Inc. | Implicitly derived register specifiers in a processor |
US7114056B2 (en) | 1998-12-03 | 2006-09-26 | Sun Microsystems, Inc. | Local and global register partitioning in a VLIW processor |
US6212604B1 (en) * | 1998-12-03 | 2001-04-03 | Sun Microsystems, Inc. | Shared instruction cache for multiple processors |
US7506136B2 (en) | 1999-04-09 | 2009-03-17 | Clearspeed Technology Plc | Parallel data processing apparatus |
US7627736B2 (en) | 1999-04-09 | 2009-12-01 | Clearspeed Technology Plc | Thread manager to control an array of processing elements |
US7526630B2 (en) | 1999-04-09 | 2009-04-28 | Clearspeed Technology, Plc | Parallel data processing apparatus |
GB2391093B (en) * | 1999-04-09 | 2004-04-07 | Clearspeed Technology Ltd | Parallel data processing systems |
JP2002149402A (ja) * | 2000-11-14 | 2002-05-24 | Pacific Design Kk | データ処理装置およびその制御方法 |
KR100861810B1 (ko) | 2000-12-11 | 2008-10-07 | 코닌클리즈케 필립스 일렉트로닉스 엔.브이. | 신호 처리 장치 및 신호 처리 결과 공급 방법 |
JP4783527B2 (ja) | 2001-01-31 | 2011-09-28 | 株式会社ガイア・システム・ソリューション | データ処理システム、データ処理装置およびその制御方法 |
JP4865960B2 (ja) | 2001-06-25 | 2012-02-01 | 株式会社ガイア・システム・ソリューション | データ処理装置およびその制御方法 |
US6993674B2 (en) | 2001-12-27 | 2006-01-31 | Pacific Design, Inc. | System LSI architecture and method for controlling the clock of a data processing system through the use of instructions |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58134357A (ja) * | 1982-02-03 | 1983-08-10 | Hitachi Ltd | ベクトルプロセッサ |
JPS60134974A (ja) * | 1983-12-23 | 1985-07-18 | Hitachi Ltd | ベクトル処理装置 |
JP2602240B2 (ja) * | 1987-08-28 | 1997-04-23 | 株式会社日立製作所 | マルチプロセツサシステム |
US5019968A (en) * | 1988-03-29 | 1991-05-28 | Yulan Wang | Three-dimensional vector processor |
JPH077388B2 (ja) * | 1988-09-13 | 1995-01-30 | 富士通株式会社 | ベクトル演算処理装置 |
EP0594240B1 (en) * | 1992-10-19 | 2000-01-05 | Koninklijke Philips Electronics N.V. | Data processor with operation units sharing groups of register files |
-
1992
- 1992-09-18 JP JP24996992A patent/JPH06103068A/ja active Pending
-
1993
- 1993-09-16 DE DE1993622566 patent/DE69322566T2/de not_active Expired - Fee Related
- 1993-09-16 EP EP19930114923 patent/EP0588341B1/en not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010282637A (ja) * | 1998-03-18 | 2010-12-16 | Qualcomm Inc | デジタル信号プロセッサ |
JP2007052811A (ja) * | 2006-10-23 | 2007-03-01 | Tops Systems:Kk | マルチバンクレジスタを有するプロセッサおよびプロセッサの制御方法 |
Also Published As
Publication number | Publication date |
---|---|
DE69322566D1 (de) | 1999-01-28 |
EP0588341A2 (en) | 1994-03-23 |
EP0588341A3 (en) | 1995-10-18 |
EP0588341B1 (en) | 1998-12-16 |
DE69322566T2 (de) | 1999-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH06103068A (ja) | データ処理装置 | |
JP2539974B2 (ja) | 情報処理装置におけるレジスタの読出制御方式 | |
JPH0437927A (ja) | プロセッサの処理方法 | |
JPS6217252B2 (ja) | ||
JPH0766329B2 (ja) | 情報処理装置 | |
JPH11282679A (ja) | 演算処理装置 | |
JPH02226420A (ja) | 浮動小数点演算実行装置 | |
JPH07104784B2 (ja) | デジタルデータ処理装置 | |
JPH05150979A (ja) | 即値オペランド拡張方式 | |
US4631672A (en) | Arithmetic control apparatus for a pipeline processing system | |
JPH0743648B2 (ja) | 情報処理装置 | |
JP2916605B2 (ja) | コンピュータ用プロセツサ | |
JP2000353091A (ja) | コンピュータシステムにおける命令実行方法およびコンピュータシステム | |
JPS59114677A (ja) | ベクトル処理装置 | |
JPS60178580A (ja) | 命令制御方式 | |
JPH08272611A (ja) | マイクロプロセッサ | |
JPH1091432A (ja) | プログラム実行方法およびプログラム実行装置 | |
JPH0222413B2 (ja) | ||
JP2819733B2 (ja) | 情報処理装置 | |
JPH02255916A (ja) | データ処理システム | |
JP2982129B2 (ja) | マイクロプログラム制御装置 | |
JPS6389930A (ja) | マイクロプログラム制御装置 | |
JPS62143176A (ja) | ベクトルレジスタアクセス制御方式 | |
JPH06149864A (ja) | ベクトル処理装置 | |
JPS622363A (ja) | 演算装置 |