JPH0553804A - 並列処理装置 - Google Patents
並列処理装置Info
- Publication number
- JPH0553804A JPH0553804A JP40503790A JP40503790A JPH0553804A JP H0553804 A JPH0553804 A JP H0553804A JP 40503790 A JP40503790 A JP 40503790A JP 40503790 A JP40503790 A JP 40503790A JP H0553804 A JPH0553804 A JP H0553804A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- bus
- parallel
- instructions
- arithmetic
- 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
Landscapes
- Advance Control (AREA)
Abstract
(57)【要約】
〔目的〕 ビット数の小さいバスを使用し、ユニット全
体の小型、コンパクト化及び周辺回路の減少を図る。 〔構成〕 複数の演算を並列的に行なう演算パイプライ
ン110〜113と、各演算パイプライン110〜11
3に対応して又は少なくとも1個以上の演算パイプライ
ンに共通な複数のエントリを有し、計算機命令を各エン
トリに選択的に格納すると共に、各エントリを同時に指
定して複数の計算機命令を同時に実行させるマルチポー
ト拡張インストラクションレジスタ107とを備え、計
算機命令を順次各エントリに格納し、各エントリの指定
及び指定した各エントリの計算機命令の実行を同時に行
って並列演算処理を行う。同時に多量の情報が1つのバ
スに集中するのを解消し、ビット数の大きいバスの使用
の必要性を抑える。
体の小型、コンパクト化及び周辺回路の減少を図る。 〔構成〕 複数の演算を並列的に行なう演算パイプライ
ン110〜113と、各演算パイプライン110〜11
3に対応して又は少なくとも1個以上の演算パイプライ
ンに共通な複数のエントリを有し、計算機命令を各エン
トリに選択的に格納すると共に、各エントリを同時に指
定して複数の計算機命令を同時に実行させるマルチポー
ト拡張インストラクションレジスタ107とを備え、計
算機命令を順次各エントリに格納し、各エントリの指定
及び指定した各エントリの計算機命令の実行を同時に行
って並列演算処理を行う。同時に多量の情報が1つのバ
スに集中するのを解消し、ビット数の大きいバスの使用
の必要性を抑える。
Description
【0001】
【産業上の利用分野】本発明は、情報処理の高速化を図
るため、複数の情報を並列に処理する電子計算機等の並
列処理装置に関する。
るため、複数の情報を並列に処理する電子計算機等の並
列処理装置に関する。
【0002】
【従来の技術】従来から電子計算機等の情報処理装置を
高速化するために、数々の手法が考えられ、1つの命令
を実行するのに数クロックかかっていたものがほぼ1ク
ロックで実行できるようになってきた。すなわちCPI
(サイクル・パー・インストラクション)値が2〜5で
あったものが1に近づいてきた。
高速化するために、数々の手法が考えられ、1つの命令
を実行するのに数クロックかかっていたものがほぼ1ク
ロックで実行できるようになってきた。すなわちCPI
(サイクル・パー・インストラクション)値が2〜5で
あったものが1に近づいてきた。
【0003】そして、情報処理装置をさらに高速化する
ため、すなわちCPI値を1以下にするため、複数の命
令を同時に実行する並列処理装置が考えられた。
ため、すなわちCPI値を1以下にするため、複数の命
令を同時に実行する並列処理装置が考えられた。
【0004】この種の並列処理装置としてはVLIW
(ベリー・ラージ・インストラクション・ワード)方式
(「並列計算機構成論」、著者冨田眞治、(株)昭晃堂
1986年11月)が知られている。以下、「並列計
算機構成論」によるVLIW並列計算機を図2に基づい
て概説する。
(ベリー・ラージ・インストラクション・ワード)方式
(「並列計算機構成論」、著者冨田眞治、(株)昭晃堂
1986年11月)が知られている。以下、「並列計
算機構成論」によるVLIW並列計算機を図2に基づい
て概説する。
【0005】基本命令は32ビットの固定長であり、4
つの基本命令を1ワードすなわち128ビットに格納す
る。そして、実行時には1ワードを同時に読み出し、4
本の演算パイプラインにより、4つの基本命令を並列
に、かつ同時に実行する。これにより、前述のCPI値
は理想的には0.25となる。
つの基本命令を1ワードすなわち128ビットに格納す
る。そして、実行時には1ワードを同時に読み出し、4
本の演算パイプラインにより、4つの基本命令を並列
に、かつ同時に実行する。これにより、前述のCPI値
は理想的には0.25となる。
【0006】201は32ビット幅の4本の内部バス、
202は内部バス201と32ビット幅のバス4本で結
ばれたデータユニットで、このデータユニット202は
データキャッシュを含む。203はインストラクション
ユニットで、インストラクションキャッシュを含む。2
04はバスインターフェイスで、データユニット202
との間は128ビット幅の内部データバスで結ばれ、イ
ンストラクションユニット203との間は128ビット
幅のインストラクションバスで結ばれる。バスインター
フェイス204は外部と32ビットのアドレスバス、1
28ビットのデータバス及びコントロールバスで接続さ
れる。
202は内部バス201と32ビット幅のバス4本で結
ばれたデータユニットで、このデータユニット202は
データキャッシュを含む。203はインストラクション
ユニットで、インストラクションキャッシュを含む。2
04はバスインターフェイスで、データユニット202
との間は128ビット幅の内部データバスで結ばれ、イ
ンストラクションユニット203との間は128ビット
幅のインストラクションバスで結ばれる。バスインター
フェイス204は外部と32ビットのアドレスバス、1
28ビットのデータバス及びコントロールバスで接続さ
れる。
【0007】205はインストラクションデコーダ、2
06はインストラクションレジスタである。インストラ
クションデコーダ205はインストラクションユニット
203から128ビット幅のインストラクションを受取
ってデコードし、マイクロ命令としてインストラクショ
ンレジスタ206に格納する。インストラクションレジ
スタ206は4命令分のマイクロ命令を保持し、このマ
イクロ命令を出力することにより、第1〜第4の演算パ
イプライン208〜211を制御する。
06はインストラクションレジスタである。インストラ
クションデコーダ205はインストラクションユニット
203から128ビット幅のインストラクションを受取
ってデコードし、マイクロ命令としてインストラクショ
ンレジスタ206に格納する。インストラクションレジ
スタ206は4命令分のマイクロ命令を保持し、このマ
イクロ命令を出力することにより、第1〜第4の演算パ
イプライン208〜211を制御する。
【0008】207はマルチポートレジスタで、このマ
ルチポートレジスタ207は、内部バス201と32ビ
ット幅のバス4本で結ばれて内部バス201から処理す
るデータを入力し、32ビット幅の4本のバスを介して
各演算パイプライン208〜211に出力する。各演算
パイプライン208〜211は前記マイクロ命令によ
り、それぞれ固定少数点演算、論理演算、浮動少数点演
算等のデータ処理を数クロックかけて行う。そして、4
本の演算パイプライン208〜211全体により実効的
に4つの演算を1クロック毎に行う。各演算パイプライ
ン208〜211の出力側はそれぞれ32ビット幅のバ
スを介して内部バス201に接続される。
ルチポートレジスタ207は、内部バス201と32ビ
ット幅のバス4本で結ばれて内部バス201から処理す
るデータを入力し、32ビット幅の4本のバスを介して
各演算パイプライン208〜211に出力する。各演算
パイプライン208〜211は前記マイクロ命令によ
り、それぞれ固定少数点演算、論理演算、浮動少数点演
算等のデータ処理を数クロックかけて行う。そして、4
本の演算パイプライン208〜211全体により実効的
に4つの演算を1クロック毎に行う。各演算パイプライ
ン208〜211の出力側はそれぞれ32ビット幅のバ
スを介して内部バス201に接続される。
【0009】次に以上の構成のVLIW並列計算機の動
作について説明する。
作について説明する。
【0010】インストラクションユニット203は12
8ビット幅のインストラクションをバスインターフェイ
ス204を介して外部メモリ(図示せず)から読み込
む。次に読み込んだインストラクションをインストラク
ションデコーダ205でデコードし、マイクロ命令とし
てインストラクションレジスタ206に書き込む。イン
ストラクションレジスタ206に書き込まれたマイクロ
命令は各演算パイプライン208〜211に出力され、
これらを制御する。各演算パイプライン208〜211
は必要に応じてマルチポートレジスタ207内のデータ
を読み込み、演算処理後のデータを内部バス201を介
してマルチポートレジスタ207に書き込む。そして、
各演算パイプライン208〜211が再びこのデータを
読み込んで複数回の演算処理を施す。また、各演算パイ
プライン208〜211は演算処理後のデータを内部バ
ス201を介して一旦データユニット202に書き込
み、データユニット202がデータを内部バス201を
介してマルチポートレジスタ207に書き込み、複数回
の演算を施す。
8ビット幅のインストラクションをバスインターフェイ
ス204を介して外部メモリ(図示せず)から読み込
む。次に読み込んだインストラクションをインストラク
ションデコーダ205でデコードし、マイクロ命令とし
てインストラクションレジスタ206に書き込む。イン
ストラクションレジスタ206に書き込まれたマイクロ
命令は各演算パイプライン208〜211に出力され、
これらを制御する。各演算パイプライン208〜211
は必要に応じてマルチポートレジスタ207内のデータ
を読み込み、演算処理後のデータを内部バス201を介
してマルチポートレジスタ207に書き込む。そして、
各演算パイプライン208〜211が再びこのデータを
読み込んで複数回の演算処理を施す。また、各演算パイ
プライン208〜211は演算処理後のデータを内部バ
ス201を介して一旦データユニット202に書き込
み、データユニット202がデータを内部バス201を
介してマルチポートレジスタ207に書き込み、複数回
の演算を施す。
【0011】さらに、データユニット202はバスイン
ターフェイス204を介して外部との間でデータのやり
とりを行う。命令のデコード、インストラクションレジ
スタ206からのマイクロ命令の読み出し、各演算パイ
プライン208〜211での処理はすべてパイプライン
処理されるので、1クロックあたり4命令を実行できる
ことになる。
ターフェイス204を介して外部との間でデータのやり
とりを行う。命令のデコード、インストラクションレジ
スタ206からのマイクロ命令の読み出し、各演算パイ
プライン208〜211での処理はすべてパイプライン
処理されるので、1クロックあたり4命令を実行できる
ことになる。
【0012】
【発明が解決しようとする課題】しかしながら、上述の
VLIW並列計算機では、4つの基本命令を1ワードと
して処理するので、通常の計算機のデータバス幅が16
ビットまたは32ビット程度であるのに対し、128ビ
ットものデータバス幅が必要となる。このため、ユニッ
ト全体をパッケージする場合、外部に延出するピン数が
増大して複雑になると共に、周辺回路の量が増えるとい
う問題点がある。
VLIW並列計算機では、4つの基本命令を1ワードと
して処理するので、通常の計算機のデータバス幅が16
ビットまたは32ビット程度であるのに対し、128ビ
ットものデータバス幅が必要となる。このため、ユニッ
ト全体をパッケージする場合、外部に延出するピン数が
増大して複雑になると共に、周辺回路の量が増えるとい
う問題点がある。
【0013】本発明は、以上の点を考慮してなされたも
ので、高速処理能力を維持したまま、通常の32ビット
幅のバスを用いてピン数を減少させ、周辺回路の簡略化
が図れる並列処理装置を提供することを目的とする。
ので、高速処理能力を維持したまま、通常の32ビット
幅のバスを用いてピン数を減少させ、周辺回路の簡略化
が図れる並列処理装置を提供することを目的とする。
【0014】
【課題を解決するための手段】本発明はかかる問題点を
解決するためになされたもので、複数の演算を並列的に
行なうべく複数並列に設けられた演算パイプラインと、
各演算パイプラインに対応してまたは少なくとも1個以
上の演算パイプラインに共通な複数のエントリを有し、
計算機命令を各エントリに順次選択的に格納すると共
に、各エントリを同時に指定して複数の計算機命令を同
時に実行させるマルチポート拡張インストラクションレ
ジスタとを備えたことを特徴とする。
解決するためになされたもので、複数の演算を並列的に
行なうべく複数並列に設けられた演算パイプラインと、
各演算パイプラインに対応してまたは少なくとも1個以
上の演算パイプラインに共通な複数のエントリを有し、
計算機命令を各エントリに順次選択的に格納すると共
に、各エントリを同時に指定して複数の計算機命令を同
時に実行させるマルチポート拡張インストラクションレ
ジスタとを備えたことを特徴とする。
【0015】
【作用】前記構成により、計算機命令を順次各エントリ
に格納し、各エントリの指定及び指定した各エントリの
計算機命令の実行を同時に行って並列演算処理を行う。
これにより、同時に多量の情報が1つのバスに集中する
のを解消し、ビット数の大きいバスの使用の必要性を抑
える。
に格納し、各エントリの指定及び指定した各エントリの
計算機命令の実行を同時に行って並列演算処理を行う。
これにより、同時に多量の情報が1つのバスに集中する
のを解消し、ビット数の大きいバスの使用の必要性を抑
える。
【0016】
【実施例】以下、本発明の一実施例を図1、図3及び図
4に基づいて説明する。
4に基づいて説明する。
【0017】図1は本実施例の並列処理装置としての並
列計算機を示すブロック図、図3はデコード命令を示す
説明図、図4は並列エグゼキュート命令を示す説明図で
ある。
列計算機を示すブロック図、図3はデコード命令を示す
説明図、図4は並列エグゼキュート命令を示す説明図で
ある。
【0018】図1において、101は内部バス、102
はデータキャッシュを含むデータユニット、103はイ
ンストラクションキャッシュを含むインストラクション
ユニット、104はバスインターフェイス、105はイ
ンストラクションデコーダ、109はマルチポートレジ
スタ、110〜113は第1〜第4の演算パイプライン
で、これらは前述した従来の並列処理装置とほぼ同様の
構成を有している。
はデータキャッシュを含むデータユニット、103はイ
ンストラクションキャッシュを含むインストラクション
ユニット、104はバスインターフェイス、105はイ
ンストラクションデコーダ、109はマルチポートレジ
スタ、110〜113は第1〜第4の演算パイプライン
で、これらは前述した従来の並列処理装置とほぼ同様の
構成を有している。
【0019】内部バス101とデータユニット102と
の間は32ビット幅の内部データバスで結ばれている。
データユニット102とバスインターフェイス104間
は32ビット幅の内部データバスで結ばれている。イン
ストラクションユニット103とバスインターフェイス
104との間は32ビットのインストラクションバスで
結ばれている。バスインターフェイス104には全て3
2ビットのアドレスバス、データバス及びコントロール
バスが接続されている。インストラクションユニット1
03は内部バス101と接続されている。
の間は32ビット幅の内部データバスで結ばれている。
データユニット102とバスインターフェイス104間
は32ビット幅の内部データバスで結ばれている。イン
ストラクションユニット103とバスインターフェイス
104との間は32ビットのインストラクションバスで
結ばれている。バスインターフェイス104には全て3
2ビットのアドレスバス、データバス及びコントロール
バスが接続されている。インストラクションユニット1
03は内部バス101と接続されている。
【0020】106はインストラクションレジスタで、
インストラクションデコーダ105でデコードされた1
つのマイクロ命令を保持する。さらに、このインストラ
クションレジスタ106は、インストラクションユニッ
ト103にアドレス情報(ソースオペランド)を送出
し、拡張インストラクションレジスタ107にオペレー
ション情報(オペレーションコード)を送出し、さら
に、マルチプレクサ108に第1の演算パイプライン1
10の処理情報(マイクロ命令)を送出するようになっ
ている。ここで、マイクロ命令とは、通常の処理命令
(計算機命令)及び後述するデコード命令121、並列
エグゼキュート命令131等である。
インストラクションデコーダ105でデコードされた1
つのマイクロ命令を保持する。さらに、このインストラ
クションレジスタ106は、インストラクションユニッ
ト103にアドレス情報(ソースオペランド)を送出
し、拡張インストラクションレジスタ107にオペレー
ション情報(オペレーションコード)を送出し、さら
に、マルチプレクサ108に第1の演算パイプライン1
10の処理情報(マイクロ命令)を送出するようになっ
ている。ここで、マイクロ命令とは、通常の処理命令
(計算機命令)及び後述するデコード命令121、並列
エグゼキュート命令131等である。
【0021】107はマルチポート拡張インストラクシ
ョンレジスタで、複数のエントリ(図3においては7エ
ントリ)を有し、各演算パイプライン110〜113に
対応して4命令分のマイクロ命令を保持する。この拡張
インストラクションレジスタ107はマルチポート構成
になっていて、1つのエントリを指定しての書き込み動
作と4つのエントリを指定しての読み出し動作とが同時
に行えるようになっている。そして、読み出す4つのエ
ントリはインストラクションレジスタ106から指定す
る。なお、マイクロ命令を保持するエントリは、各演算
パイプライン110〜113に対応して4個特定しても
よく、また、特定せず、空いているエントリに適宜格納
するようにしてもよい。
ョンレジスタで、複数のエントリ(図3においては7エ
ントリ)を有し、各演算パイプライン110〜113に
対応して4命令分のマイクロ命令を保持する。この拡張
インストラクションレジスタ107はマルチポート構成
になっていて、1つのエントリを指定しての書き込み動
作と4つのエントリを指定しての読み出し動作とが同時
に行えるようになっている。そして、読み出す4つのエ
ントリはインストラクションレジスタ106から指定す
る。なお、マイクロ命令を保持するエントリは、各演算
パイプライン110〜113に対応して4個特定しても
よく、また、特定せず、空いているエントリに適宜格納
するようにしてもよい。
【0022】さらに、拡張インストラクションレジスタ
107は、インストラクションレジスタ106、マルチ
プレクサ108及び各演算パイプライン111〜113
にそれぞれ接続される。そして、インストラクションレ
ジスタ106に入力する並列エグゼキュート命令131
によって、拡張インストラクションレジスタ107の各
エントリに格納されたマイクロ命令がマルチプレクサ1
08(第1の演算パイプライン110)及び第2〜第4
の演算パイプライン111〜113にそれぞれ出力さ
れ、各演算パイプライン110〜113を制御するよう
になっている。
107は、インストラクションレジスタ106、マルチ
プレクサ108及び各演算パイプライン111〜113
にそれぞれ接続される。そして、インストラクションレ
ジスタ106に入力する並列エグゼキュート命令131
によって、拡張インストラクションレジスタ107の各
エントリに格納されたマイクロ命令がマルチプレクサ1
08(第1の演算パイプライン110)及び第2〜第4
の演算パイプライン111〜113にそれぞれ出力さ
れ、各演算パイプライン110〜113を制御するよう
になっている。
【0023】108はマルチプレクサで、インストラク
ションレジスタ106または拡張インストラクションレ
ジスタ107の読み出しポートから出力されるマイクロ
命令を選択的に第1の演算パイプライン110に送出す
る。
ションレジスタ106または拡張インストラクションレ
ジスタ107の読み出しポートから出力されるマイクロ
命令を選択的に第1の演算パイプライン110に送出す
る。
【0024】そして、インストラクションデコーダ10
5はインストラクションユニット103からインストラ
クションを受取り、デコードしてマイクロ命令とした後
インストラクションレジスタ106又は拡張インストラ
クションレジスタ107の1エントリに、各アドレス情
報(デスティネーションオペランド)に従って格納す
る。
5はインストラクションユニット103からインストラ
クションを受取り、デコードしてマイクロ命令とした後
インストラクションレジスタ106又は拡張インストラ
クションレジスタ107の1エントリに、各アドレス情
報(デスティネーションオペランド)に従って格納す
る。
【0025】デコード命令121は図3に示す構成にな
っている。即ち、“デコード”を意味するオペレーショ
ンコードとソースオペランド、デスティネーションオペ
ランドを含んで構成されている。そして、これらのビッ
ト幅の一例としては、例えばオペレーションコードが8
ビット、ソースオペランドが16ビット、デスティネー
ションオペランドが8ビットである。ソースオペランド
は、直接またはインデックス修飾等の一般的に知られて
いるアドレッシングモードにより、外部メモリ122上
の特定の命令(計算機命令等)の先頭アドレス、すなわ
ちイフェクティブアドレスを指す。一方、デスティネー
ションオペランドは拡張インストラクションレジスタ1
07の1エントリを指す。そして、このデコード命令1
21は、イフェクティブアドレスが指すメモリ内容であ
る計算機命令をインストラクションと解釈し、この計算
機命令をデコード後に、デスティネーションオペランド
が指す拡張インストラクションレジスタ107の1エン
トリに格納させる。
っている。即ち、“デコード”を意味するオペレーショ
ンコードとソースオペランド、デスティネーションオペ
ランドを含んで構成されている。そして、これらのビッ
ト幅の一例としては、例えばオペレーションコードが8
ビット、ソースオペランドが16ビット、デスティネー
ションオペランドが8ビットである。ソースオペランド
は、直接またはインデックス修飾等の一般的に知られて
いるアドレッシングモードにより、外部メモリ122上
の特定の命令(計算機命令等)の先頭アドレス、すなわ
ちイフェクティブアドレスを指す。一方、デスティネー
ションオペランドは拡張インストラクションレジスタ1
07の1エントリを指す。そして、このデコード命令1
21は、イフェクティブアドレスが指すメモリ内容であ
る計算機命令をインストラクションと解釈し、この計算
機命令をデコード後に、デスティネーションオペランド
が指す拡張インストラクションレジスタ107の1エン
トリに格納させる。
【0026】並列エグゼキュート命令131は図4に示
す構成になっている。即ち、“並列エクゼキュート”を
意味するオペレーションコードと、拡張インストラクシ
ョンレジスタ107の4つのエントリを指定する4つの
フィールドを含んで構成されている。これらのビット幅
の一例としては、例えばオペレーションコードが8ビッ
ト、各フィールドが6ビットである。そして、並列エグ
ゼキュート命令131は、拡張インストラクションレジ
スタ107の各エントリを全て同時に指定し、各演算パ
イプライン110〜113を同時に実行させる。
す構成になっている。即ち、“並列エクゼキュート”を
意味するオペレーションコードと、拡張インストラクシ
ョンレジスタ107の4つのエントリを指定する4つの
フィールドを含んで構成されている。これらのビット幅
の一例としては、例えばオペレーションコードが8ビッ
ト、各フィールドが6ビットである。そして、並列エグ
ゼキュート命令131は、拡張インストラクションレジ
スタ107の各エントリを全て同時に指定し、各演算パ
イプライン110〜113を同時に実行させる。
【0027】次に、前記構成の並列計算機の処理動作に
ついて説明する。まず、通常の単独演算処理は次のよう
になる。インストラクションユニット103はインスト
ラクションをバスインターフェイス104を介して外部
メモリ122から読み込む。次に読み込んだインストラ
クションをインストラクションデコーダ105でデコー
ドし、マイクロ命令としてインストラクションレジスタ
106に書き込む。インストラクションレジスタ106
に書き込まれたマイクロ命令はマルチプレクサ108を
介して第1の演算パイプライン110を制御する。この
演算パイプライン110は必要に応じ、マルチポートレ
ジスタ109内のデータを読み込み、また、内部バス1
01を介して処理後のデータをマルチポートレジスタ1
09に書き込む。さらに演算パイプライン110は内部
バス101を介して処理後のデータをデータユニット1
02に書き込み、データユニット102は内部バス10
1を介してそのデータをマルチポートレジスタ109に
書き込む。またデータユニット102はバスインターフ
ェイス104を通じ、外部とのデータのやりとりも行
う。
ついて説明する。まず、通常の単独演算処理は次のよう
になる。インストラクションユニット103はインスト
ラクションをバスインターフェイス104を介して外部
メモリ122から読み込む。次に読み込んだインストラ
クションをインストラクションデコーダ105でデコー
ドし、マイクロ命令としてインストラクションレジスタ
106に書き込む。インストラクションレジスタ106
に書き込まれたマイクロ命令はマルチプレクサ108を
介して第1の演算パイプライン110を制御する。この
演算パイプライン110は必要に応じ、マルチポートレ
ジスタ109内のデータを読み込み、また、内部バス1
01を介して処理後のデータをマルチポートレジスタ1
09に書き込む。さらに演算パイプライン110は内部
バス101を介して処理後のデータをデータユニット1
02に書き込み、データユニット102は内部バス10
1を介してそのデータをマルチポートレジスタ109に
書き込む。またデータユニット102はバスインターフ
ェイス104を通じ、外部とのデータのやりとりも行
う。
【0028】並列演算処理を行なう場合には次のように
なる。デコード命令121がインストラクションレジス
タ106に格納され、ソースオペランドのアドレス情報
により、インストラクションユニット103がその情報
に対応する外部メモリ122内容をインストラクション
として読み出す。さらにインストラクションデコーダ1
05は、そのメモリ内容をデコードし、インストラクシ
ョンレジスタ106内のデコード命令121のデスティ
ネーションオペランドの情報に従い、デコード結果(マ
イクロ命令)を拡張インストラクションレジスタ107
の1エントリに格納する。これを繰り返し、各演算パイ
プライン110〜113に対応した各エントリにそれぞ
れマイクロ命令を格納する。この処理はループに入る前
に行なう。また、並列演算するインストラクションは、
プログラムのコンパイルの段階で、データ部等に書込ん
でおく。なお、マイクロ命令(計算機命令)は殆どルー
プ中に含まれ、繰り返し実行される場合が多い。一般的
に全ソースコードの5%に実行時間の95%が費やされ
るので、拡張インストラクションレジスタ107の各エ
ントリにマイクロ命令を格納する処理の時間はループ処
理に対して殆ど問題にならない程度の時間である。
なる。デコード命令121がインストラクションレジス
タ106に格納され、ソースオペランドのアドレス情報
により、インストラクションユニット103がその情報
に対応する外部メモリ122内容をインストラクション
として読み出す。さらにインストラクションデコーダ1
05は、そのメモリ内容をデコードし、インストラクシ
ョンレジスタ106内のデコード命令121のデスティ
ネーションオペランドの情報に従い、デコード結果(マ
イクロ命令)を拡張インストラクションレジスタ107
の1エントリに格納する。これを繰り返し、各演算パイ
プライン110〜113に対応した各エントリにそれぞ
れマイクロ命令を格納する。この処理はループに入る前
に行なう。また、並列演算するインストラクションは、
プログラムのコンパイルの段階で、データ部等に書込ん
でおく。なお、マイクロ命令(計算機命令)は殆どルー
プ中に含まれ、繰り返し実行される場合が多い。一般的
に全ソースコードの5%に実行時間の95%が費やされ
るので、拡張インストラクションレジスタ107の各エ
ントリにマイクロ命令を格納する処理の時間はループ処
理に対して殆ど問題にならない程度の時間である。
【0029】そして、並列エグゼキュート命令131が
インストラクションレジスタ106に格納されたとき、
この命令131の各フィールドにより指定された拡張イ
ンストラクションレジスタ107の各マイクロ命令が各
演算パイプライン110〜113にそれぞれ出力され
る。このとき、マルチプレクサ108の入力側は拡張イ
ンストラクションレジスタ107側に切り替えられてお
り、各演算パイプライン110〜113は、各マイクロ
命令に従ってパイプライン演算を行う。そして、並列エ
グゼキュート命令131のデコード、拡張インストラク
ションレジスタ107からのマイクロ命令の読み出し及
び各演算パイプライン110〜113での処理はすべて
パイプライン処理されるので、ループ処理により並列エ
グゼキュート命令131が続く限り、1クロックあたり
等価的に4命令を実行し続けることになる。これによ
り、実行スピードの観点からは、1並列エグゼキュート
命令を実行することで通常の命令を4命令実行すること
になる。なお、ループの中には通常の命令は最少限にと
どめ、なるべく並列エグゼキュート命令131を置くよ
うにすることが望ましい。
インストラクションレジスタ106に格納されたとき、
この命令131の各フィールドにより指定された拡張イ
ンストラクションレジスタ107の各マイクロ命令が各
演算パイプライン110〜113にそれぞれ出力され
る。このとき、マルチプレクサ108の入力側は拡張イ
ンストラクションレジスタ107側に切り替えられてお
り、各演算パイプライン110〜113は、各マイクロ
命令に従ってパイプライン演算を行う。そして、並列エ
グゼキュート命令131のデコード、拡張インストラク
ションレジスタ107からのマイクロ命令の読み出し及
び各演算パイプライン110〜113での処理はすべて
パイプライン処理されるので、ループ処理により並列エ
グゼキュート命令131が続く限り、1クロックあたり
等価的に4命令を実行し続けることになる。これによ
り、実行スピードの観点からは、1並列エグゼキュート
命令を実行することで通常の命令を4命令実行すること
になる。なお、ループの中には通常の命令は最少限にと
どめ、なるべく並列エグゼキュート命令131を置くよ
うにすることが望ましい。
【0030】以上により、従来のVLIW並列計算機が
4基本命令を1ワードとして1クロック毎に実行するの
に128ビット幅のインストラクションバス及びデータ
バスを必要としたのに対し、本実施例の並列計算機は並
列演算処理による高速情報処理能力を維持した状態で、
32ビット幅のインストラクションバス、データバスに
することができ、ユニット全体の小型、コンパクト化及
び周辺回路の減少を図ることができる。
4基本命令を1ワードとして1クロック毎に実行するの
に128ビット幅のインストラクションバス及びデータ
バスを必要としたのに対し、本実施例の並列計算機は並
列演算処理による高速情報処理能力を維持した状態で、
32ビット幅のインストラクションバス、データバスに
することができ、ユニット全体の小型、コンパクト化及
び周辺回路の減少を図ることができる。
【0031】さらに、本実施例の並列計算機は従来の並
列計算機に拡張インストラクションレジスタ107及び
マルチプレクサ108を設けた構成であるので、その拡
張を容易に行なうことができる。
列計算機に拡張インストラクションレジスタ107及び
マルチプレクサ108を設けた構成であるので、その拡
張を容易に行なうことができる。
【0032】なお、本実施例では、1つの並列エグゼキ
ュート命令131で通常の命令を4命令並列に実行する
場合を例に説明したが、1つの並列エグゼキュート命令
で通常の命令を2命令、3命令または5命令以上を並列
に実行する場合でも、前記同様の作用、効果を奏するこ
とができる。
ュート命令131で通常の命令を4命令並列に実行する
場合を例に説明したが、1つの並列エグゼキュート命令
で通常の命令を2命令、3命令または5命令以上を並列
に実行する場合でも、前記同様の作用、効果を奏するこ
とができる。
【0033】また、2命令、3命令、4命令または5命
令以上の通常命令を並列実行する並列エグゼキュート命
令の各フィールドに、別々のオペレーションコードを割
り当て、各演算パイプラインにそれぞれ異なる処理を行
わせるようにしてもよい。
令以上の通常命令を並列実行する並列エグゼキュート命
令の各フィールドに、別々のオペレーションコードを割
り当て、各演算パイプラインにそれぞれ異なる処理を行
わせるようにしてもよい。
【0034】そして、前記5命令以上の並列エグゼキュ
ート命令とする場合には、これに対応して5以上の演算
パイプラインが設けられることはいうまでもない。
ート命令とする場合には、これに対応して5以上の演算
パイプラインが設けられることはいうまでもない。
【0035】さらに、デコードされるインストラクショ
ンは、一例として32ビットの固定長でも、可変長でも
よい。換言すれば、本発明による並列計算機は、RIS
C(リデュースト・インストラクション・セット・コン
ピュータ)、CISC(コンプレックス・インストラク
ション・セット・コンピュータ)のどちらでもよい。
ンは、一例として32ビットの固定長でも、可変長でも
よい。換言すれば、本発明による並列計算機は、RIS
C(リデュースト・インストラクション・セット・コン
ピュータ)、CISC(コンプレックス・インストラク
ション・セット・コンピュータ)のどちらでもよい。
【0036】
【発明の効果】以上、詳述したように本発明によれば、
複数の演算を並列的に行なうべく複数並列に設けられた
演算パイプラインと、各演算パイプラインに対応してま
たは少なくとも1個以上の演算パイプラインに共通な複
数のエントリを有し、計算機命令を各エントリに選択的
に格納すると共に、各エントリを同時に指定して複数の
計算機命令を同時に実行させるマルチポート拡張インス
トラクションレジスタとを備え、計算機命令を順次各エ
ントリに格納し、各エントリの指定及び指定した各エン
トリの計算機命令の実行を同時に行って並列演算処理を
行うようにしたので、同時に多量の情報が1つのバスに
集中するのを解消し、ビット数の大きいバスの使用の必
要性を抑えることができる。これにより、従来に比べて
ビット数の小さいバスにすることができ、ユニット全体
の小型、コンパクト化及び周辺回路の減少を図ることが
できる。
複数の演算を並列的に行なうべく複数並列に設けられた
演算パイプラインと、各演算パイプラインに対応してま
たは少なくとも1個以上の演算パイプラインに共通な複
数のエントリを有し、計算機命令を各エントリに選択的
に格納すると共に、各エントリを同時に指定して複数の
計算機命令を同時に実行させるマルチポート拡張インス
トラクションレジスタとを備え、計算機命令を順次各エ
ントリに格納し、各エントリの指定及び指定した各エン
トリの計算機命令の実行を同時に行って並列演算処理を
行うようにしたので、同時に多量の情報が1つのバスに
集中するのを解消し、ビット数の大きいバスの使用の必
要性を抑えることができる。これにより、従来に比べて
ビット数の小さいバスにすることができ、ユニット全体
の小型、コンパクト化及び周辺回路の減少を図ることが
できる。
【図1】本実施例の並列処理装置としての並列計算機を
示すブロック図。
示すブロック図。
【図2】従来の並列計算機を示すブロック図。
【図3】デコード命令を示す説明図。
【図4】並列エグゼキュート命令を示す説明図。
101 内部バス 102 データユニット 103 インストラクションユニット 104 バスインターフェイス 105 インストラクションデコーダ 106 インストラクションレジスタ 107 マルチポート拡張インストラクションレジス
タ 108 マルチプレクサ 109 マルチポートレジスタ 110 第1の演算パイプライン 111 第2の演算パイプライン 112 第3の演算パイプライン 113 第4の演算パイプライン
タ 108 マルチプレクサ 109 マルチポートレジスタ 110 第1の演算パイプライン 111 第2の演算パイプライン 112 第3の演算パイプライン 113 第4の演算パイプライン
Claims (1)
- 【請求項1】 複数の演算を並列的に行なうべく複数並
列に設けられた演算パイプラインと、 各演算パイプラインに対応してまたは少なくとも1個以
上の演算パイプラインに共通な複数のエントリを有し、
計算機命令を各エントリに順次選択的に格納すると共
に、各エントリを同時に指定して複数の計算機命令を同
時に実行させるマルチポート拡張インストラクションレ
ジスタとを備えたことを特徴とする並列処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP40503790A JPH0553804A (ja) | 1990-12-21 | 1990-12-21 | 並列処理装置 |
US08/097,325 US5299321A (en) | 1990-12-18 | 1993-07-26 | Parallel processing device to operate with parallel execute instructions |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP40503790A JPH0553804A (ja) | 1990-12-21 | 1990-12-21 | 並列処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0553804A true JPH0553804A (ja) | 1993-03-05 |
Family
ID=18514679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP40503790A Pending JPH0553804A (ja) | 1990-12-18 | 1990-12-21 | 並列処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0553804A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6623218B1 (en) | 1999-03-29 | 2003-09-23 | Ngk Spark Plug Co., Ltd. | Cutting tool and holder-carrying tool |
-
1990
- 1990-12-21 JP JP40503790A patent/JPH0553804A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6623218B1 (en) | 1999-03-29 | 2003-09-23 | Ngk Spark Plug Co., Ltd. | Cutting tool and holder-carrying tool |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4740893A (en) | Method for reducing the time for switching between programs | |
US4896259A (en) | Apparatus for storing modifying data prior to selectively storing data to be modified into a register | |
EP0996057B1 (en) | Data processor with an instruction unit having a cache and a ROM | |
US7546442B1 (en) | Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions | |
JPS6313215B2 (ja) | ||
JPH0673105B2 (ja) | 命令パイプライン方式のマイクロプロセッサ | |
JP3212213B2 (ja) | データ処理装置 | |
JPH0553804A (ja) | 並列処理装置 | |
JPH0546389A (ja) | 並列処理装置 | |
EP0177712B1 (en) | Masked data fetch and modifying device | |
JPH0222413B2 (ja) | ||
JPH0377137A (ja) | 情報処理装置 | |
JP2812610B2 (ja) | パイプライン制御方式 | |
JP3147884B2 (ja) | 記憶装置及び情報処理装置 | |
JPH04217026A (ja) | 並列処理装置 | |
JP3102399B2 (ja) | データ処理装置及び方法 | |
US6289439B1 (en) | Method, device and microprocessor for performing an XOR clear without executing an XOR instruction | |
JPH0354632A (ja) | 演算命令処理装置 | |
JPH033047A (ja) | 演算機能付きメモリ | |
JPH05250156A (ja) | Riscプロセッサ | |
JPS6149695B2 (ja) | ||
JPH11119995A (ja) | データ処理装置および方法 | |
JPS61118840A (ja) | 電子計算機の制御方式 | |
JPH05307483A (ja) | レジスタ書き込み制御方法および回路 | |
Love | Microprocessors |