JPH04264954A - 複合命令計算機 - Google Patents

複合命令計算機

Info

Publication number
JPH04264954A
JPH04264954A JP2583291A JP2583291A JPH04264954A JP H04264954 A JPH04264954 A JP H04264954A JP 2583291 A JP2583291 A JP 2583291A JP 2583291 A JP2583291 A JP 2583291A JP H04264954 A JPH04264954 A JP H04264954A
Authority
JP
Japan
Prior art keywords
instruction
register
instructions
operand
memory
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
JP2583291A
Other languages
English (en)
Inventor
Tomohiro Miyahira
知博 宮平
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 JP2583291A priority Critical patent/JPH04264954A/ja
Publication of JPH04264954A publication Critical patent/JPH04264954A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は複数の演算部による複数
命令の複合的な処理を行う複合命令計算機に関する。
【0002】
【従来の技術】従来、計算機における並列処理式方式と
しては、マルチプロセッサシステム等に代表されるMI
MD型計算機のように複数の命令シーケンスを別々の処
理要素によって実行する方式、プロセッサアレイ等に代
表されるSIMD型計算機のように単一の命令シーケン
スによって複数の処理要素で同じ処理をする方式、ベク
トルプロセッサに代表されるパイプライン計算機のよう
に複数回実行される特定の処理の実行を複数のステージ
に分けて並列実行する方式がある。
【0003】また、VLIW計算機(長命令計算機)の
ように命令語長を長くして、複数の演算器・レジスタを
同時に使用する方式も知られている。
【0004】
【発明が解決しようとする課題】上述した従来の計算機
における並列処理方式においては、命令シーケンス全体
の極く一部でしか並列処理が有効とならない(SIMD
型計算機、パイプライン計算機)、並列処理の粒度が大
きい(MIMD型計算機)、処理要素間の通信によるオ
ーバーヘッドが大きい(SIMD型計算機、MIMD型
計算機)、メモリ等資源のアクセス競合のため効率の低
下生じる(SIMD型計算機、MIMD型計算機)等と
いった問題点がある。
【0005】さらに、並列処理を実行するためには、ベ
クトル命令を使用するようにプログラムを書き直す(パ
イプライン計算機、SIMD型計算機、VLIW計算機
)、あるいは、アルゴリズムそのものを見直してプログ
ラムを作り直す(SIMD型計算機、MIMD型計算機
)必要がある。
【0006】また、命令長を長くして複数の資源を同時
に使用することは、機械語をマイクロプログラムに近づ
けることであると言え、コンパイラ等ソフトウェアによ
る命令の最適化の負担が大きい、長い命令長を常に有効
に利用できるわけではない(VLIW計算機)等の問題
もある。
【0007】
【課題を解決するための手段】本発明の複合命令計算機
は、並列に動作する複数の演算部と、それらから共通に
アクセスされるレジスタ部と、オペランドの読み書きを
演算部と非同期に行うと共にメモリアクセス競合の解消
を行うオペランドバッファと、バンクに分割されインタ
リーブされたメモリ部と、メモリ部から複数命令を同時
にフェッチしオペランドの競合をチェックする命令制御
部を有し、複数の命令を1つの複合命令として実行する
ことを特徴とする。
【0008】
【実施例】次に、本発明について図面を参照して説明す
る。
【0009】図1は本発明の一実施例の構成を示すブロ
ック図である。
【0010】1は並列に動作する複数の演算部であり、
2は演算部から共通にアクセスされるレジスタ部であり
、3はオペランドの読み書きを演算部1と非同期に行う
と共にメモリアクセスの解消を行うオペランドバッファ
である。また、4はバンクに分割されインタリーブ方式
によって複数ワードを同時にアクセスすることができる
メモリ部であり、5はメモリ4から複数命令を同時にフ
ェッチし、命令相互間のメモリ・レジスタのアクセス競
合をチェックする命令制御部である。
【0011】命令制御部5はプログラムカウンタを内蔵
しており、インタリーブ方式によって複数ワードを同時
にアクセスすることが可能なメモリ部4から複数ワード
の命令を同時にフェッチする。すべての命令が演算部1
を使用するわけではないので、フェッチする命令の数は
演算部1の数より多くする。命令セットは、デコードの
容易性とオペランド競合のチェックの簡便性からRIS
C的な1ワード固定長で直交な命令セットとする。
【0012】命令制御部5は、まずフェッチした命令相
互間のメモリ・レジスタオペランドのアクセス競合をチ
ェックする。レジスタ部2およびオペランドバッファ3
はスコアボーディング機構を持っており、命令制御部5
はオペランドの競合が発生するオペランドバッファ3と
レジスタ部2のスコアボードにマークを付与すると共に
、演算部1を使用する命令と単なるレジスタ・レジスタ
間、メモリ・レジスタ間転送命令を分け、各演算部1に
1ワードずつ演算部を使用する命令を転送する。一方、
レジスタ・レジスタ間転送命令及びメモリ・レジスタ間
転送命令をそれぞれレジスタ部2、及びオペランドバッ
ファ3に転送する。
【0013】命令制御部5は、各部への命令の転送が終
了するとプログラムカウンタを命令実行数(演算部1を
使用する命令及びレジスタ部2とオペランドバッファ3
で処理される転送命令の合計)だけインクリメントし、
次の命令フェッチサイクルに移る。
【0014】レジスタ部2は複数のレジスタから成り、
命令制御部5から転送されて来たレジスタ・レジスタ間
転送命令を保持・実行する。各々のレジスタがスコアボ
ーディング機構を持っており、いずれかの演算/転送命
令によって使用される予定であることを示す。また、オ
ペランドバッファ3はメモリへの読み書きのいずれの場
合にも関与し、メモリ・レジスタ間転送命令を実行し、
演算部とメモリの非同期な実行を可能にする。オペラン
ドバッファ3は、メモリアドレスとオペランド値の組を
エントリとするテーブルを持っており、各エントリはレ
ジスタ部同様にスコアボードを持っている。オペランド
バッファ3は実質的にキャッシュメモリと同様な働きを
するので、メモリからの読出しがエントリにヒットして
実際のメモリアクセスを行わずに済む場合もある。
【0015】各演算部1はALUと命令ラッチ回路及び
オペランドアクセス部から成り、1ワードの命令を実行
する。オペランドアクセス部は対象オペランドのスコア
ボードを監視しており、アクセス競合が解消された時点
で命令の実行を開始する。各演算部の動作は他の演算部
の動作とは全く非同期であり、その演算部が使用するオ
ペランドのアクセス競合のみに依存して、並列に実行さ
れる。
【0016】このように、複数の演算部を使用すること
によって複数の命令をあたかも1つの複合した命令であ
るかのように処理することができ、機械語レベルのミク
ロな並列処理が実現されるとともにメモリとCPU間の
命令転送路を広くとることが可能となり、フォン・ノイ
マン・ボトルネックを解消することができる。
【0017】さらに各部の動きを例を用いて詳述する。
【0018】以下のような命令列の実行を例として考え
る。 (1)  loop:  load  a(I)→A 
 配列要素a(i)をレジスタAにロード (2)              load  b(
I)→B  配列要素b(i)をレジスタBにロード (3)              add1  I 
           レジスタIを1だけインクリメ
ント (4)              add    A
,B→C    レジスタAとBを加算、結果をレジス
タCに格納(5)              sub
    A,B→D    レジスタAからBを減算、
結果をレジスタDに格納(6)           
   mul    C,D→E    レジスタCと
Dを乗算、結果をレジスタEに格納(7)      
        save  E→c(J)  レジス
タEをc(i)にセーブ (8)              add1  J 
           レジスタJを1だけインクリメ
ント (9)              if  I<10
00  goto  loop  条件ジャンプ 命令制御部5はこの命令列をフェッチしてくるとまずレ
ジスタアクセスの競合のチェックを行う。ここでは、(
1)によりレジスタAのスコアボードにマークが、(2
)によりレジスタBのスコアボードに、(3),(4)
,(5),(6),(7)によりそれぞれレジスタI,
C,D,E,Jにマークが付与される。その結果、演算
命令(4),(5),(6),(7),(8)は各演算
部1に転送されてもすぐには実行できない。
【0019】ロード命令(1),(2)とインクリメン
ト命令(3)がそれぞれオペランドバッファ3・演算部
1で実行されるとレジスタA、レジスタB、レジスタI
のスコアボードがクリアされるため、演算命令(3),
(4),(5)が同時に開始され、並列実行される。 (4),(5)の実行が終了するとレジスタC,Dのス
コアボードがそれぞれクリアされるため、演算命令(6
)が開始され、次に命令(7),(8)がそれぞれオペ
ランドバッファ3、演算部1で実行される。一方この処
理と平行して、(3)が終了すると命令制御部5の中で
は(9)によってプログラムカウンタの値が再びloo
pで示されるアドレスに書き換えられ、命令(1)から
フェッチが開始される。
【0020】以上の命令実行の流れを図2に示す。この
例では(1)と(2)と(3)、(4)と(5)と(9
)、(7)と(8)がそれぞれ並列に実行されている。
【0021】さらにこの場合には、コンパイラの改良等
によりループの初期段階の命令を工夫して生成すること
で、ソフトウェア・パイプライニングが可能となる。即
ち、nop(no  operation:何も実行し
ない)の挿入によりレジスタアクセスの競合が起こらな
いようにすることで、ソフトウェア的にパイプライン処
理が行われる。この時の命令実行の流れを図3に示す。 ループの初期段階にnopを挿入することで全ての命令
の並列実行が可能になっている。
【0022】ソフトウェア・パイプライニングでは、確
かに全ての命令が並列実行されているが、相変わらず命
令制御部5による命令フェッチを毎回行っている。これ
を行わないようにするためには、命令制御部の命令フェ
ッチ部をアドレスと組にしたテーブルとすればよい。こ
れによって、特別なベクトル命令のようなものを用意し
なくても、命令制御部5がキャッシュメモリとしての役
割を実行することができ、上例の場合にはメモリにアク
セスする必要がなくなる。
【0023】以上のように、複数の命令をあたかも1つ
の複合した命令のように扱うことにより、パイプライン
処理による高度な並列処理の実現をも可能としている。 ベクトル計算機が持つ演算器のチェイニング機構に留ま
らず、機能が可変な高レベルの演算器を備えているとも
言える。
【0024】
【発明の効果】以上説明したように、本発明は、複数の
演算部を使用することによって複数の命令をあたかも1
つの複合した命令であるかのように処理することができ
、機械語レベルのミクロな並列処理が実現される。
【0025】さらに、ベクトル計算機が持つ演算器のチ
ェイニング機構に留まらず、機能が可変な高レベルの演
算器を使用したパイプライン処理による高度な並列処理
の実現をも可能としている。
【0026】さらに、本発明の複合命令計算機は、ベク
トルプロセッサやアレイプロセッサのように特殊な並列
(ベクトル)命令を使用するわけではないため、従来の
単純なプロセッサとオブジェクトレベルでの互換性を維
持することができ、従来機からの上位互換性を維持しな
がら並列処理による処理の効率化をはかることも出来る
【図面の簡単な説明】
【図1】本発明の構成を示すブロック図である。
【図2】実施例の中で説明した命令列の実行の流れを示
す図である。
【図3】命令列のパイプライン実行を示す図である。
【符号の説明】
1    複数の演算部 2    レジスタ部 3    オペランドバッファ 4    メモリ部 5    命令制御部

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】  並列に動作する複数の演算部と、それ
    らから共通にアクセスされるレジスタ部と、オプランド
    の読み書きを演算部と非同期に行うと共にメモリアクセ
    ス競合の解消を行うオペランドバッファと、バンクに分
    割されインタリーブされたメモリ部と、メモリ部から複
    数命令を同時にフェッチしオペランドの競合をチェック
    する命令制御部を有し、複数の命令を1つの複合命令と
    して実行することを特徴とする複合命令計算機。
JP2583291A 1991-02-20 1991-02-20 複合命令計算機 Pending JPH04264954A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2583291A JPH04264954A (ja) 1991-02-20 1991-02-20 複合命令計算機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2583291A JPH04264954A (ja) 1991-02-20 1991-02-20 複合命令計算機

Publications (1)

Publication Number Publication Date
JPH04264954A true JPH04264954A (ja) 1992-09-21

Family

ID=12176836

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2583291A Pending JPH04264954A (ja) 1991-02-20 1991-02-20 複合命令計算機

Country Status (1)

Country Link
JP (1) JPH04264954A (ja)

Similar Documents

Publication Publication Date Title
EP0368332B1 (en) Pipeline data processor
Goodman et al. PIPE: a VLSI decoupled architecture
US6928645B2 (en) Software-based speculative pre-computation and multithreading
US5764943A (en) Data path circuitry for processor having multiple instruction pipelines
JP2002512399A (ja) 外部コプロセッサによりアクセス可能なコンテキストスイッチレジスタセットを備えたriscプロセッサ
US5996059A (en) System for monitoring an execution pipeline utilizing an address pipeline in parallel with the execution pipeline
JPH10222368A (ja) データ処理装置
JPH07120284B2 (ja) データ処理装置
US5768553A (en) Microprocessor using an instruction field to define DSP instructions
JP2874351B2 (ja) 並列パイプライン命令処理装置
JP3182591B2 (ja) マイクロプロセッサ
EP1208424B1 (en) Apparatus and method for reducing register write traffic in processors with exception routines
Ramseyer et al. A multi-microprocessor implementation of a general purpose pipelined CPU
JPH04264954A (ja) 複合命令計算機
JP3102399B2 (ja) データ処理装置及び方法
JP3147884B2 (ja) 記憶装置及び情報処理装置
JP3566469B2 (ja) プログラムによって命令をフェッチするコンピュータ方式
JPH02211534A (ja) 並列処理装置
JP2856784B2 (ja) 電子計算機
EXE et al. DEC I EXEI~ mM I WB
JP2927281B2 (ja) 並列処理装置
Murray et al. Micro-architecture of the VAX 9000
JP2861234B2 (ja) 命令処理装置
JP2785820B2 (ja) 並列処理装置
JP3743155B2 (ja) パイプライン制御型計算機