JPH01177127A - 情報処理装置 - Google Patents
情報処理装置Info
- Publication number
- JPH01177127A JPH01177127A JP63000351A JP35188A JPH01177127A JP H01177127 A JPH01177127 A JP H01177127A JP 63000351 A JP63000351 A JP 63000351A JP 35188 A JP35188 A JP 35188A JP H01177127 A JPH01177127 A JP H01177127A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- register
- operand
- address
- general
- 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.)
- Granted
Links
- 230000010365 information processing Effects 0.000 title claims description 28
- 238000012545 processing Methods 0.000 claims description 22
- 238000006073 displacement reaction Methods 0.000 claims description 21
- 238000000034 method Methods 0.000 claims description 18
- 238000001514 detection method Methods 0.000 claims description 12
- 230000006870 function Effects 0.000 claims description 10
- 230000000295 complement effect Effects 0.000 claims description 8
- 238000012986 modification Methods 0.000 claims description 3
- 230000004048 modification Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 9
- 102100033047 G-protein coupled receptor 3 Human genes 0.000 description 3
- 101000871088 Homo sapiens G-protein coupled receptor 3 Proteins 0.000 description 3
- 239000000956 alloy Substances 0.000 description 3
- 229910045601 alloy Inorganic materials 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 102100039497 Choline transporter-like protein 3 Human genes 0.000 description 1
- 101000889279 Homo sapiens Choline transporter-like protein 3 Proteins 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012546 transfer Methods 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[産業上の利用分野]
本発明は命令をパイプライン制御方式によって次々と処
理することを特徴とする情報処理装置において、パイプ
、ラインの乱れを少なくすることにより、さらに高速な
処理を実現する情報処理装置に関する。
理することを特徴とする情報処理装置において、パイプ
、ラインの乱れを少なくすることにより、さらに高速な
処理を実現する情報処理装置に関する。
[従来技術]
パイプライン制御方式においては、命令の処理を複数の
ステージに分け、各ステージをオーバラップさせながら
実行していく。第2図(1)は従来のパイプライン制御
方式の処理を示したものである。ここで、Dは命令語の
解読を行うステージ、Aはオペランドの実効アドレスを
計算するステージ、Bはオペランドを記憶装置から読出
すステージ、Lは記憶装置から読出したオペランドをオ
ペランドバッファレジスタに転送するステージ、Eは命
令個有の演算を実行するステージである。Aステージで
行う実行アドレスの計算は、命令のインデクスパートお
よびベースパートで指定した汎用レジスタの内容と命令
の一部であるディスプレイメントの値とを加算すること
によって行う。
ステージに分け、各ステージをオーバラップさせながら
実行していく。第2図(1)は従来のパイプライン制御
方式の処理を示したものである。ここで、Dは命令語の
解読を行うステージ、Aはオペランドの実効アドレスを
計算するステージ、Bはオペランドを記憶装置から読出
すステージ、Lは記憶装置から読出したオペランドをオ
ペランドバッファレジスタに転送するステージ、Eは命
令個有の演算を実行するステージである。Aステージで
行う実行アドレスの計算は、命令のインデクスパートお
よびベースパートで指定した汎用レジスタの内容と命令
の一部であるディスプレイメントの値とを加算すること
によって行う。
パイプライン制御方式においては、1つの命令のDステ
ージが終了すると該命令のAステージが開始され、それ
と同時に後続命令のDステージが開始され、次々と複数
の命令がオーバラップしながら処理されていく。
ージが終了すると該命令のAステージが開始され、それ
と同時に後続命令のDステージが開始され、次々と複数
の命令がオーバラップしながら処理されていく。
第2図(1)に示したのは、命令11が演算結果を格納
することによって変更する汎用レジスタの内容を直後の
命令■2がインデクスあるいはベースレジスタとして実
効アドレス生成に使用する場合において、高速化手段を
用いない場合の命令処理の流れである。この時、命令■
1の演算ステージ(Eステージ)が終了し、演算結果が
汎用レジスタに格納された後、命令工2の実効アドレス
生成ステージ(Aステージ)が開始されるため、図のよ
うに3サイクルのオーバヘッドを生じてしまう。このよ
うに、オペランドの実効アドレスを生成する時に使用す
る汎用レジスタの内容を先行する命令が変更した場合を
アドレスコンフリクトと呼び、従来よりいくつかの高速
化方式が考案されている。
することによって変更する汎用レジスタの内容を直後の
命令■2がインデクスあるいはベースレジスタとして実
効アドレス生成に使用する場合において、高速化手段を
用いない場合の命令処理の流れである。この時、命令■
1の演算ステージ(Eステージ)が終了し、演算結果が
汎用レジスタに格納された後、命令工2の実効アドレス
生成ステージ(Aステージ)が開始されるため、図のよ
うに3サイクルのオーバヘッドを生じてしまう。このよ
うに、オペランドの実効アドレスを生成する時に使用す
る汎用レジスタの内容を先行する命令が変更した場合を
アドレスコンフリクトと呼び、従来よりいくつかの高速
化方式が考案されている。
特公昭56−46170号に記載されている方法では、
汎用レジスタを変更する命令のうち、オペランドとして
・指定された記憶装置上のデータをその時汎用レジスタ
に格納する命令(以下、L系合金を略す)においてのみ
高速化を図っている。
汎用レジスタを変更する命令のうち、オペランドとして
・指定された記憶装置上のデータをその時汎用レジスタ
に格納する命令(以下、L系合金を略す)においてのみ
高速化を図っている。
すなわち記憶装置から読出したオペランドバッファに転
送する際、同一オペランドをアドレス生成分レジスタに
も転送することにより汎用レジスタを経由しないので、
第2図(2)に示した通すオーバヘッドを2サイクルに
低減している。
送する際、同一オペランドをアドレス生成分レジスタに
も転送することにより汎用レジスタを経由しないので、
第2図(2)に示した通すオーバヘッドを2サイクルに
低減している。
一方特願昭61−191841 r先行制御方式」に示
されている方法は、アドレスコンフリクトを生じている
後続命令に条件を付すことによって高速化を図っている
。すなわち、先行する命令で変更されている汎用レジス
タが後続命令のインデクスレジスタとして指定されてい
る場合には、残りのベースレジスタおよびディスプレー
スメント値が共にゼロである場合に限り、また、先行命
令で変更されている汎用レジスタが後続命令の・ベース
レジスタとして指定されている場合には、インデクスレ
ジスタおよびディスプレースメント値が共にゼロの場合
に限り、記憶装置から読出したオペランドを直接記憶装
置参照用アドレスレジスタに転送することにより、第2
図(3)に示した通りオーバヘッドを1サイクルに低減
している。
されている方法は、アドレスコンフリクトを生じている
後続命令に条件を付すことによって高速化を図っている
。すなわち、先行する命令で変更されている汎用レジス
タが後続命令のインデクスレジスタとして指定されてい
る場合には、残りのベースレジスタおよびディスプレー
スメント値が共にゼロである場合に限り、また、先行命
令で変更されている汎用レジスタが後続命令の・ベース
レジスタとして指定されている場合には、インデクスレ
ジスタおよびディスプレースメント値が共にゼロの場合
に限り、記憶装置から読出したオペランドを直接記憶装
置参照用アドレスレジスタに転送することにより、第2
図(3)に示した通りオーバヘッドを1サイクルに低減
している。
[発明が解決しようとする課題]
上記2つの従来技術においては、高速化を図るために条
件を付している。
件を付している。
すなわち、第一に示した例ではL系合金に対してのみ高
速化を図っており、加算命令や減算命令がアドレスコン
フリットを生じている場合には高速化されない。
速化を図っており、加算命令や減算命令がアドレスコン
フリットを生じている場合には高速化されない。
また、第二に示した例では、インデクスレジスタとディ
スプレースメントあるいは、ベースレジスタとディスプ
レースメントが共にゼロである場合にのみ高速化される
。つまり、インデクスレジスタとベースレジスタを両方
共アドレス生成に使用する場合にはその効果を発揮する
ことができない。また、汎用レジスタの内容を変更する
命令が加減算命令の場合、演算器を経由することが必要
なのでオーバヘッドが1サイクル増えてしまう。
スプレースメントあるいは、ベースレジスタとディスプ
レースメントが共にゼロである場合にのみ高速化される
。つまり、インデクスレジスタとベースレジスタを両方
共アドレス生成に使用する場合にはその効果を発揮する
ことができない。また、汎用レジスタの内容を変更する
命令が加減算命令の場合、演算器を経由することが必要
なのでオーバヘッドが1サイクル増えてしまう。
本発明は、L系合金のみならず加減算命令も高速化の対
象とし、かつインデクスレジスタやベースレジスタに何
ら条件を付すことなく高速化を実現する方法を提供する
ものである。
象とし、かつインデクスレジスタやベースレジスタに何
ら条件を付すことなく高速化を実現する方法を提供する
ものである。
[課題を解決するための手段]
上記目的を達成するために、本発明による情報処理装置
では、命令で指定されたインデクスレジスタの内容とベ
ースレジスタの内容とディスプレースメントの値とから
実効アドレスを生成する従来の3人カアドレス加算器の
加算結果を保持するレジスタと、該レジスタの値と記憶
装置から読出したデータとを入力とする演算手段を新た
に備え。
では、命令で指定されたインデクスレジスタの内容とベ
ースレジスタの内容とディスプレースメントの値とから
実効アドレスを生成する従来の3人カアドレス加算器の
加算結果を保持するレジスタと、該レジスタの値と記憶
装置から読出したデータとを入力とする演算手段を新た
に備え。
そして先行する命令が変更するレジスタの内容を後続命
令がアドレス生成に使用するというコンフリフトが存在
することを検出する手段と、上記コンフリクトを検出し
た時、上記3人カアドレス加算器においては変更の終了
していないレジスタの内容をゼロとみなしてアドレス加
算を行わせしむる手段と、先行命令が記憶装置から読出
したデータが上記新設した演算手段に入力されたことを
認識して、記憶装置に対する参照アドレスとして、送出
する手段を有するところに特徴がある。
令がアドレス生成に使用するというコンフリフトが存在
することを検出する手段と、上記コンフリクトを検出し
た時、上記3人カアドレス加算器においては変更の終了
していないレジスタの内容をゼロとみなしてアドレス加
算を行わせしむる手段と、先行命令が記憶装置から読出
したデータが上記新設した演算手段に入力されたことを
認識して、記憶装置に対する参照アドレスとして、送出
する手段を有するところに特徴がある。
[作用コ
先行命令が変更するレジスタの内容を後続命令がアドレ
ス生成に使用することを検出する回路は、検出結果によ
って該変更されているレジスタの読出しデータをゼロと
することにより、3人カアドレス加算器においてアドレ
ス加算の中間結果を出力せしめる。3人カアドレス加算
器の出力を保持するレジスタは、上記中間結果を先行命
令による記憶装置からのオペランド読出しまで保持し、
新設した演算手段において両者の演算を行わせる。
ス生成に使用することを検出する回路は、検出結果によ
って該変更されているレジスタの読出しデータをゼロと
することにより、3人カアドレス加算器においてアドレ
ス加算の中間結果を出力せしめる。3人カアドレス加算
器の出力を保持するレジスタは、上記中間結果を先行命
令による記憶装置からのオペランド読出しまで保持し、
新設した演算手段において両者の演算を行わせる。
[実施例]
以下、本発明の一実施例を第1図〜第5図を用いて説明
する。
する。
第1図は本発明による情報処理装置の全体構成を示した
ものであり、第3図は本発明で高速化することが可能な
命令列の一例を示したものである。
ものであり、第3図は本発明で高速化することが可能な
命令列の一例を示したものである。
まず、第3図(1)で示した命令列の処理について、第
1図を用いて全体の流れを説明する。第3図(1)で示
した命令列においては、先行する命令11がL命令であ
り、汎用レジスタの3番を変更する。一方後続命令I2
は加算命令(Add)であり、その記憶装置上のオペラ
ンドの実効アドレスを計算する際に汎用レジスタ1番を
ベースレジスタとして必要としている。このため、命令
I。
1図を用いて全体の流れを説明する。第3図(1)で示
した命令列においては、先行する命令11がL命令であ
り、汎用レジスタの3番を変更する。一方後続命令I2
は加算命令(Add)であり、その記憶装置上のオペラ
ンドの実効アドレスを計算する際に汎用レジスタ1番を
ベースレジスタとして必要としている。このため、命令
I。
と工2は汎用レジスタ3番に関してアドレスコンフリク
トを生じており、命令■2のアドレスの計算は命令工、
のオペランド読出しの終了を待つことが必要である。
トを生じており、命令■2のアドレスの計算は命令工、
のオペランド読出しの終了を待つことが必要である。
第1図において、第3図(1)の命令列が入力されると
、まず命令レジスタ1にL命令がセットされる。制御回
路CTL3は命令レジスタ1にセットされた命令がL命
令であることを認識し、該命令が命令のR1パートで指
定した汎用レジスタすなわち3番の内容を変更すること
を記憶すると共に、該命令の記憶装置上のオペランドの
アドレス生成にインデクスレジスタおよびベースレジス
タとして汎用レジスタ4番、8番をそれぞれ指定したこ
とを解釈し、かつ汎用レジスタ4番、8番が、先行する
いかなる命令ともアドレスコンフリクトを生じていない
(すなわち、汎用レジスタ4番、8番の内容を使用した
アドレス加算が実行可能である)ことを判断すると、ア
ドレス加算器7におけるアドレス加算を実行する。この
場合信号線22にはインデクスレジスタ番号4が送出さ
れ、信号線23にはベースレジスタ番号8が送出される
。この結果汎用レジスタ群2からそれぞれの読出しアド
レスに対応した汎用レジスタの内容すなわち、4番と8
番の内容が信号線24.25にそれぞれ送出され、3人
カアドレス加算器7のインデクス入力レジスタ4とペー
ス入力レジスタ5にそれぞれセットされる。この時信号
線26.27は、インデクス入力レジスタ4.ベース入
力レジスタ5への入力データとして汎用レジスタから読
出しデータである、信号線24.25上のデータを選択
するよう制御されているものとする。(信号線35を選
択する場合の制御については前述の特願昭61−191
841号に記載されており、本発明の特徴ではないので
説明を省略する。)−方、ディスプレースメント入力レ
ジスタ6には、命令の一部であ5るディスプレースメン
ト部が、命令レジスタ1から直接入力される。この結果
3人カアドレス加算器7において加算を行い、L命令の
アドレスを算出することができる。算出されたアドレス
は、記憶装置内のアドレスレジスタ11にセットされる
。この時、該り命令は先行命令とのコンフリクトを生じ
ていないため、セレク1−信号32は3人カアドレス加
算器7の出力データを選択するものとする。アドレスレ
ジスタ11にセットされたアドレスを利用して記憶装置
12を参照し、L命令のオペランドを読出し、読出した
データをデータレジスタ13にセットする。位置合わせ
回路14は、読出したデータから必要な部分を切出し、
演算に好適なように位置合わせを行う回路であり信号線
42によって制御される。データレジスタ13にセット
したデータは、位置合わせ回路14を経てオペランドバ
ッファレジスタ15にセットされ、演算器16に入力さ
れる。演算器16は命令の種類に応じて信号線43の制
御を受けるがL命令は演算を必要としないため、読出し
データをそのまま演算器16を素通りし、信号線36を
経て汎用レジスタ群2に送られ、命令のR1パートで指
定した番号の汎用レジスタ3番に格納される。
、まず命令レジスタ1にL命令がセットされる。制御回
路CTL3は命令レジスタ1にセットされた命令がL命
令であることを認識し、該命令が命令のR1パートで指
定した汎用レジスタすなわち3番の内容を変更すること
を記憶すると共に、該命令の記憶装置上のオペランドの
アドレス生成にインデクスレジスタおよびベースレジス
タとして汎用レジスタ4番、8番をそれぞれ指定したこ
とを解釈し、かつ汎用レジスタ4番、8番が、先行する
いかなる命令ともアドレスコンフリクトを生じていない
(すなわち、汎用レジスタ4番、8番の内容を使用した
アドレス加算が実行可能である)ことを判断すると、ア
ドレス加算器7におけるアドレス加算を実行する。この
場合信号線22にはインデクスレジスタ番号4が送出さ
れ、信号線23にはベースレジスタ番号8が送出される
。この結果汎用レジスタ群2からそれぞれの読出しアド
レスに対応した汎用レジスタの内容すなわち、4番と8
番の内容が信号線24.25にそれぞれ送出され、3人
カアドレス加算器7のインデクス入力レジスタ4とペー
ス入力レジスタ5にそれぞれセットされる。この時信号
線26.27は、インデクス入力レジスタ4.ベース入
力レジスタ5への入力データとして汎用レジスタから読
出しデータである、信号線24.25上のデータを選択
するよう制御されているものとする。(信号線35を選
択する場合の制御については前述の特願昭61−191
841号に記載されており、本発明の特徴ではないので
説明を省略する。)−方、ディスプレースメント入力レ
ジスタ6には、命令の一部であ5るディスプレースメン
ト部が、命令レジスタ1から直接入力される。この結果
3人カアドレス加算器7において加算を行い、L命令の
アドレスを算出することができる。算出されたアドレス
は、記憶装置内のアドレスレジスタ11にセットされる
。この時、該り命令は先行命令とのコンフリクトを生じ
ていないため、セレク1−信号32は3人カアドレス加
算器7の出力データを選択するものとする。アドレスレ
ジスタ11にセットされたアドレスを利用して記憶装置
12を参照し、L命令のオペランドを読出し、読出した
データをデータレジスタ13にセットする。位置合わせ
回路14は、読出したデータから必要な部分を切出し、
演算に好適なように位置合わせを行う回路であり信号線
42によって制御される。データレジスタ13にセット
したデータは、位置合わせ回路14を経てオペランドバ
ッファレジスタ15にセットされ、演算器16に入力さ
れる。演算器16は命令の種類に応じて信号線43の制
御を受けるがL命令は演算を必要としないため、読出し
データをそのまま演算器16を素通りし、信号線36を
経て汎用レジスタ群2に送られ、命令のR1パートで指
定した番号の汎用レジスタ3番に格納される。
一方、後続命令である加算命令は、先行命令であるL命
令に対するアドレス生成の準備が整った時点、すなわち
、インデクス入力レジスタ4、ベース入力レジスタ5、
ディスプレースメント入力レジスタ6にそれぞれのデー
タがセットされた時点で命令レジスタ1に切出される。
令に対するアドレス生成の準備が整った時点、すなわち
、インデクス入力レジスタ4、ベース入力レジスタ5、
ディスプレースメント入力レジスタ6にそれぞれのデー
タがセットされた時点で命令レジスタ1に切出される。
この時、制御回路3において、該命令が記憶装置上のオ
ペランドのアドレス生成において汎用レジスタ3番と1
番の読出しを必要としていることを解読し、かつ。
ペランドのアドレス生成において汎用レジスタ3番と1
番の読出しを必要としていることを解読し、かつ。
汎用レジスタ3番を先行命令であるL命令が変更してい
ることを認識する。前述の特願昭61−191841号
にて示された方法では、このようなケースを高速処理す
ることができない。なぜならば、後続命令である加算命
令の、先行命令とコンフリクトを生じていないベースレ
ジスタの番号が0でないからである。しかるに本発明に
よれば、次のような手法、によって高速化を実現するこ
とができる。
ることを認識する。前述の特願昭61−191841号
にて示された方法では、このようなケースを高速処理す
ることができない。なぜならば、後続命令である加算命
令の、先行命令とコンフリクトを生じていないベースレ
ジスタの番号が0でないからである。しかるに本発明に
よれば、次のような手法、によって高速化を実現するこ
とができる。
制御回路3によって命令レジスタ1に切出した命令(加
算命令)が、先行するL命令とアドレスコンフリクトを
生じていることを認識すると、コンフリクトを生じてい
る汎用レジスタ番号、すなわちこの場合インデクスレジ
スタとして指定されている汎用レジスタ3番の内容をO
とみなしてアドレス加算を終了する。この結果信号線3
3にはベースレジスタとして指定された汎用レジスタ番
号1の内容とディスプレースメントの値だけを加えた結
果が出力される。すなわち、従来技術で示した特公昭5
6−46170号で示されたように3人カアドレス加算
器7で先行命令をオペランドの到着を待つのではなく、
その前に不完全なアドレス値を算出し、出力してしまう
訳である。信号線33に出力された不完全アドレスは、
先行命令のオペランド読出し終了を待ち合わせるために
本発明により設けたレジスタ8にセットされる。−方、
先行するL命令によって記憶装置から読出されたオペラ
ンドは、演算処理を必要としないためオペランドバッフ
ァレジスタ15に転送それると同時に信号線35によっ
て本発明による演算手段10に入力することができる。
算命令)が、先行するL命令とアドレスコンフリクトを
生じていることを認識すると、コンフリクトを生じてい
る汎用レジスタ番号、すなわちこの場合インデクスレジ
スタとして指定されている汎用レジスタ3番の内容をO
とみなしてアドレス加算を終了する。この結果信号線3
3にはベースレジスタとして指定された汎用レジスタ番
号1の内容とディスプレースメントの値だけを加えた結
果が出力される。すなわち、従来技術で示した特公昭5
6−46170号で示されたように3人カアドレス加算
器7で先行命令をオペランドの到着を待つのではなく、
その前に不完全なアドレス値を算出し、出力してしまう
訳である。信号線33に出力された不完全アドレスは、
先行命令のオペランド読出し終了を待ち合わせるために
本発明により設けたレジスタ8にセットされる。−方、
先行するL命令によって記憶装置から読出されたオペラ
ンドは、演算処理を必要としないためオペランドバッフ
ァレジスタ15に転送それると同時に信号線35によっ
て本発明による演算手段10に入力することができる。
この時、制御信号29は信号線35を選択することを指
示する。この結果、演算手段10において、レジスタ8
に格納されていたデータと記憶装置から読出した先行命
令のオペランドデータを加算することができ、加算命令
のオペランドアドレスを不完全なものから完全なものと
して信号線34に出力することができる。また、制御回
路3では、記憶装置からオペランド読出し終了を信号線
37によって認識すると、制御信号線32により、アド
レスレジスタ11の入力として演算手段10の出力であ
る信号線14とセレクトするよう指示する。このように
して後続命令である加算命令のアドレスを算出してアド
レスレジスタ11にセットすることができ、以下り命令
の場合と同様にしてオペランドを読出す。但し、加算命
令の場合にはL命令と異なり、演算器16にて命令のR
1パートで指定した汎用レジスタの内容を、記憶装置か
ら読出したオペランドとの加算を行い、その結果を汎用
レジスタ群2内のR1で指定された番号5のレジスタに
格納する。
示する。この結果、演算手段10において、レジスタ8
に格納されていたデータと記憶装置から読出した先行命
令のオペランドデータを加算することができ、加算命令
のオペランドアドレスを不完全なものから完全なものと
して信号線34に出力することができる。また、制御回
路3では、記憶装置からオペランド読出し終了を信号線
37によって認識すると、制御信号線32により、アド
レスレジスタ11の入力として演算手段10の出力であ
る信号線14とセレクトするよう指示する。このように
して後続命令である加算命令のアドレスを算出してアド
レスレジスタ11にセットすることができ、以下り命令
の場合と同様にしてオペランドを読出す。但し、加算命
令の場合にはL命令と異なり、演算器16にて命令のR
1パートで指定した汎用レジスタの内容を、記憶装置か
ら読出したオペランドとの加算を行い、その結果を汎用
レジスタ群2内のR1で指定された番号5のレジスタに
格納する。
第3図(1)で示した命令列を処理するためには、従来
技術による高速化によっても第2図(2)あるいは第3
図(4)に示す如く2サイクルのオーバヘッドを生じて
いたが、これを本発明では第2図(3)に示す如く1サ
イクルのオーバヘッドに抑えることができる。
技術による高速化によっても第2図(2)あるいは第3
図(4)に示す如く2サイクルのオーバヘッドを生じて
いたが、これを本発明では第2図(3)に示す如く1サ
イクルのオーバヘッドに抑えることができる。
次に第4図に参照して制御回路3の詳細を述べる。第4
図において、レジスタ101は命令の命令コードを、レ
ジスタ102は命令のR1パートをそれぞれ保持するも
のである。また、デコーダ103は現在命令レジスタ1
にセットされている命令の命令コードを解読するもので
あり、一方デコーダ104は1つ前の命令の命令コード
を解読するものである。比較回路105,106はそれ
ぞれ4ビツトの比較を行う回路で、1つ前の命令のR1
パートすなわち、1つ前の命令が変更する汎用レジスタ
番号と、現在命令レジスタ1に切出されている命令のイ
ンデクスパートで指定されている汎用レジスタ番号およ
び、ベースパートで指定されている汎用レジスタ番号と
を比較し、一致しているか否かを判定するものである。
図において、レジスタ101は命令の命令コードを、レ
ジスタ102は命令のR1パートをそれぞれ保持するも
のである。また、デコーダ103は現在命令レジスタ1
にセットされている命令の命令コードを解読するもので
あり、一方デコーダ104は1つ前の命令の命令コード
を解読するものである。比較回路105,106はそれ
ぞれ4ビツトの比較を行う回路で、1つ前の命令のR1
パートすなわち、1つ前の命令が変更する汎用レジスタ
番号と、現在命令レジスタ1に切出されている命令のイ
ンデクスパートで指定されている汎用レジスタ番号およ
び、ベースパートで指定されている汎用レジスタ番号と
を比較し、一致しているか否かを判定するものである。
L命令が命令レジスタに切出されると、その命令コード
がレジスタ101に、そしてR1パートで指定した汎用
レジスタ番号がレジスタ102にそれぞれセットされる
。続いてA命令が命令レジスタ1に切出されると、まず
デコーダ103によって解読し、該命令が記憶装置上の
オペランドのアドレスを計算する際に、インデクスパー
トで指定した汎用レジスタの値と、ベースパートで指定
した汎用レジスタの値とを必要とすることを認識する。
がレジスタ101に、そしてR1パートで指定した汎用
レジスタ番号がレジスタ102にそれぞれセットされる
。続いてA命令が命令レジスタ1に切出されると、まず
デコーダ103によって解読し、該命令が記憶装置上の
オペランドのアドレスを計算する際に、インデクスパー
トで指定した汎用レジスタの値と、ベースパートで指定
した汎用レジスタの値とを必要とすることを認識する。
その結果信吾線135,136をそれぞれセットする。
一方、先行命令はL命令であるため、命令コードを保持
したレジスタ101の内容をデコーダ104によって解
読することにより、L命令であることを示す信号線13
7がセットされる。
したレジスタ101の内容をデコーダ104によって解
読することにより、L命令であることを示す信号線13
7がセットされる。
そして、比較回路105,106によって、A命令がア
ドレス計算のために読出そうとする汎用レジスタ番号と
、先行命令であるし命令が変更する汎用レジスタ番号と
を比較し、両者の間にコンフリクトが存在するか否かを
チエツクする。この時。
ドレス計算のために読出そうとする汎用レジスタ番号と
、先行命令であるし命令が変更する汎用レジスタ番号と
を比較し、両者の間にコンフリクトが存在するか否かを
チエツクする。この時。
A命令のインデクスレジスタ番号は信号lllA132
によって比較回路105に入力され、ベースレジスタ番
号は信号線133によって比較回路106に入力される
。一方り命令が変更する汎用レジスタ番号は命令のR1
パートで指定されるのでレジスタ102に保持されてお
り、ここから2つの比較回路105,106に入力され
る。比較の結果、汎用レジスタ番号が一致すれば、L命
令とA命令の間にアドレスコンフリクトが生じていると
いうことを信号線142および143をセットすること
によって示す。以上のデコード結果および比較結果を利
用して、次のような制御によってコンフリクト時の高速
化を実現する。
によって比較回路105に入力され、ベースレジスタ番
号は信号線133によって比較回路106に入力される
。一方り命令が変更する汎用レジスタ番号は命令のR1
パートで指定されるのでレジスタ102に保持されてお
り、ここから2つの比較回路105,106に入力され
る。比較の結果、汎用レジスタ番号が一致すれば、L命
令とA命令の間にアドレスコンフリクトが生じていると
いうことを信号線142および143をセットすること
によって示す。以上のデコード結果および比較結果を利
用して、次のような制御によってコンフリクト時の高速
化を実現する。
ANDゲート108は、先行命令がL命令であり、かつ
後続命令がオペランドのアドレス計算にインデクスパー
トで指定した汎用レジスタの内容を必要とし、さらにL
命令が変更する汎用レジスタの番号とインデクスレジス
タの番号が一致した時に出力信号26をセットするもの
である。この時コンフリクトを生じているインデクスレ
ジスタの内容すなわちL命令が変更しようとしている値
を除いてA命令のアドレス計算を行うために、信号線2
6により第1図のインデクス入力レジスタ4への入力デ
ータがゼロとなるようセレクタを制御する。この結果、
3人カアドレス加算器7では、ベースレジスタの内容と
ディスプレースメントとが加算される。同様にANDゲ
ート109は、先行命令がL命令であり、かつ後続命令
がベースパートで指定した汎用レジスタの内容をアドレ
ス計算に必要とし、さらにL命令が変更する汎用レジス
タの番号とベースレジスタの番号が一致した時に出力信
号27をセットする。この時、3人カアドレス加算器7
においてインデクスレジスタの内容をディスプレースメ
ントの値のみを加算するように、ベース入力レジスタ5
にゼロをセットするべく信号、1127で制御する。第
3図(1)の命令列においてはANDゲート108の出
力信号26がセットされる。
後続命令がオペランドのアドレス計算にインデクスパー
トで指定した汎用レジスタの内容を必要とし、さらにL
命令が変更する汎用レジスタの番号とインデクスレジス
タの番号が一致した時に出力信号26をセットするもの
である。この時コンフリクトを生じているインデクスレ
ジスタの内容すなわちL命令が変更しようとしている値
を除いてA命令のアドレス計算を行うために、信号線2
6により第1図のインデクス入力レジスタ4への入力デ
ータがゼロとなるようセレクタを制御する。この結果、
3人カアドレス加算器7では、ベースレジスタの内容と
ディスプレースメントとが加算される。同様にANDゲ
ート109は、先行命令がL命令であり、かつ後続命令
がベースパートで指定した汎用レジスタの内容をアドレ
ス計算に必要とし、さらにL命令が変更する汎用レジス
タの番号とベースレジスタの番号が一致した時に出力信
号27をセットする。この時、3人カアドレス加算器7
においてインデクスレジスタの内容をディスプレースメ
ントの値のみを加算するように、ベース入力レジスタ5
にゼロをセットするべく信号、1127で制御する。第
3図(1)の命令列においてはANDゲート108の出
力信号26がセットされる。
ANDゲート108,109少なくともどちらかが出力
信号とセットすると、ORゲート116を駆動し、その
出力がラッチ117にセットされる。ラッチ117はタ
イミングを合わせるためのものであり、その出力信号3
1により、第1図において、3人カアドレス加算器7の
出力データがレジスタ8にセットされる。レジスタ8は
、上述の通り、3人カアドレス加算器から出力された、
インデクスレジスタの内容あるいはベースレジスタの内
容を除いた不完全なアドレス値を保持し、先行命令であ
るL命令のオペランド読出し終了を持って、読出したオ
ペランドデータとの加算を可能せしむるものである。
信号とセットすると、ORゲート116を駆動し、その
出力がラッチ117にセットされる。ラッチ117はタ
イミングを合わせるためのものであり、その出力信号3
1により、第1図において、3人カアドレス加算器7の
出力データがレジスタ8にセットされる。レジスタ8は
、上述の通り、3人カアドレス加算器から出力された、
インデクスレジスタの内容あるいはベースレジスタの内
容を除いた不完全なアドレス値を保持し、先行命令であ
るL命令のオペランド読出し終了を持って、読出したオ
ペランドデータとの加算を可能せしむるものである。
このように、先行命令とのアドレスコンフリクトを検出
した時に、コンフリクトを生じているレジスタの3人力
加算器への入力データをゼロにするべく論理ゲート10
8,109を設けたことが本発明の大きな特徴の1つで
ある。
した時に、コンフリクトを生じているレジスタの3人力
加算器への入力データをゼロにするべく論理ゲート10
8,109を設けたことが本発明の大きな特徴の1つで
ある。
さて、先行命令であるL命令のオペランド読出しの終了
が記憶装置12から信号線37により通知されると、第
3図のゲート118が駆動され、信号線29が動作して
演算手段10の入力データとして信号線35を選択する
。その結果、演算手段10によって完全アドレスが算出
され、その加算結果をやはり信号線32の制御により選
択してアドレスレジスタ11にセットする。
が記憶装置12から信号線37により通知されると、第
3図のゲート118が駆動され、信号線29が動作して
演算手段10の入力データとして信号線35を選択する
。その結果、演算手段10によって完全アドレスが算出
され、その加算結果をやはり信号線32の制御により選
択してアドレスレジスタ11にセットする。
次に第2の例として、第3図(2)で示した命令列を実
行した場合の、本発明の高速化手法について述べる。今
回の命令列は先行命令がA命令であり、該A命令が変更
する汎用レジスタを後続のL命令がインデクスレジスタ
として使用するものである。
行した場合の、本発明の高速化手法について述べる。今
回の命令列は先行命令がA命令であり、該A命令が変更
する汎用レジスタを後続のL命令がインデクスレジスタ
として使用するものである。
先行命令であるA命令のデコード終了後、後続命令であ
るし命令が命令レジスタ1にセットされた時、第4図の
制御回路は次の動作を行う。
るし命令が命令レジスタ1にセットされた時、第4図の
制御回路は次の動作を行う。
まず命令レジスタ1にセットされた命令の命令コードを
デコーダ103で解読し、該命令がアドレス計算を行う
ためにインデクスレジスタとベースレジスタを必、要と
することを認識して信号線135と136をセットする
。一方、レジスタ101に保持されている先行命令の命
令コードをデコーダ104にて解読し、該命令がA命令
であることを認識すると信号線138をセットする。
デコーダ103で解読し、該命令がアドレス計算を行う
ためにインデクスレジスタとベースレジスタを必、要と
することを認識して信号線135と136をセットする
。一方、レジスタ101に保持されている先行命令の命
令コードをデコーダ104にて解読し、該命令がA命令
であることを認識すると信号線138をセットする。
さらに、比較回路105,106によってL命令の指定
するインデクスレジスタ番号およびベースレジスタ番号
と、レジスタ102に保持されている先行命令であるA
命令のR1パート、すなわち、A命令が変更する汎用レ
ジスタ番号とを比較する。
するインデクスレジスタ番号およびベースレジスタ番号
と、レジスタ102に保持されている先行命令であるA
命令のR1パート、すなわち、A命令が変更する汎用レ
ジスタ番号とを比較する。
その結果番号が一致すれば、それぞれ信号1142.1
43をセットする。第3図(2)の命令列の場合、A命
令のR1パートとL命令のインデクスレジスタが共に汎
用レジスタ3番を指定しているため、比較回路105の
出力信号142がセットされる。先行する汎用レジスタ
変更命令がA命令の場合には、後続のL命令のオペラン
ドアドレス計算を行うために、まず汎用レジスタ番号3
の内容をA命令が指定する記憶装置上の第2オペランド
の値を加算し、さらにL命令がベースレジスタとして指
定している汎用レジスタ番号1の内容およびディスプレ
ースメント値を加えることが必要である。これを式で表
わすとC(GPR3)+C(OF2)+C(GPRI)
+Dとなる。ここでC()はカッコ内で示された汎用レ
ジスタの内容あるいは記憶装置上のオペランドデータの
値をここで、A命令の第2オペランドデータはまだ記憶
装置から読出されていない訳であるから、残りのデータ
を用いてアドレスの中間加算結果を求めることを考える
。すなわち、まずA命令によって変更される前の汎用レ
ジスタ番号3の内容を利用してC(GPR3)+C(G
PRI)+Dという3つのデータの加算を行い、A命令
の第2オペランドが記憶装置から読出された時に再度加
算を行う訳である。これを実現するためには、まず3人
カアドレス加算器7においてはL命令のオペランドアド
レスの計算を通常通り行えば良い。すなわち、インデク
スパートで指定された3番の汎用レジスタおよびペース
パートで指定された1番の汎用レジスタの内容をそれぞ
れ読出し、ディスプレースメントの、値と加算すれば良
い訳である。先行命令がL命令の場合(第3図(1))
には、コンフリクトを生じたインデクスレジスタあるい
はベースレジスタの値をゼロにする必要があったが、A
命令ではその動作は不要である。それゆえ、先行するA
命令とコンフリクトを生じていることを認識する制御論
理としてANDゲート110゜111を設けている。A
NDゲート110は、命令レジスタ1に切出された命令
が先行するA命令とインデクスレジスタに関してコンフ
リクトを生じている時に駆動され、ANDゲート111
はベースレジスタに関してコンフリクトを生じている時
に駆動される。両ANDゲートの出力は、3人カアドレ
ス加算器の入力データ制御には利用される訳ではなく、
ORゲート116を経てラッチ117にセットされ、信
号線31によって3人力アドレス加算器7の出力結果を
レジスタ8にセットするために利用される。すなわちア
ドレス加算器7における加算は、コンフリクトが生じて
いない場合と全く同様に行う。これ以後の動作は第3図
(1)の命令列の場合と同じで、先行するA命令のオペ
ランド読出しが終了した時点で、読出しデータを信号線
35を経由して演算手段10に入力し、レジスタ8に保
持している不完全アドレスとの加算を行う。一方A命令
のオペランド読出しの終了が信号線37によって制御回
路3に伝えられるとANDゲート118を経て信号線2
9をセットし、アドレスレジスタ11にL命令のオペラ
ンドアドレスをセットする。こうしてL命令の記憶装置
上のオペランドの読出しが可能となる。
43をセットする。第3図(2)の命令列の場合、A命
令のR1パートとL命令のインデクスレジスタが共に汎
用レジスタ3番を指定しているため、比較回路105の
出力信号142がセットされる。先行する汎用レジスタ
変更命令がA命令の場合には、後続のL命令のオペラン
ドアドレス計算を行うために、まず汎用レジスタ番号3
の内容をA命令が指定する記憶装置上の第2オペランド
の値を加算し、さらにL命令がベースレジスタとして指
定している汎用レジスタ番号1の内容およびディスプレ
ースメント値を加えることが必要である。これを式で表
わすとC(GPR3)+C(OF2)+C(GPRI)
+Dとなる。ここでC()はカッコ内で示された汎用レ
ジスタの内容あるいは記憶装置上のオペランドデータの
値をここで、A命令の第2オペランドデータはまだ記憶
装置から読出されていない訳であるから、残りのデータ
を用いてアドレスの中間加算結果を求めることを考える
。すなわち、まずA命令によって変更される前の汎用レ
ジスタ番号3の内容を利用してC(GPR3)+C(G
PRI)+Dという3つのデータの加算を行い、A命令
の第2オペランドが記憶装置から読出された時に再度加
算を行う訳である。これを実現するためには、まず3人
カアドレス加算器7においてはL命令のオペランドアド
レスの計算を通常通り行えば良い。すなわち、インデク
スパートで指定された3番の汎用レジスタおよびペース
パートで指定された1番の汎用レジスタの内容をそれぞ
れ読出し、ディスプレースメントの、値と加算すれば良
い訳である。先行命令がL命令の場合(第3図(1))
には、コンフリクトを生じたインデクスレジスタあるい
はベースレジスタの値をゼロにする必要があったが、A
命令ではその動作は不要である。それゆえ、先行するA
命令とコンフリクトを生じていることを認識する制御論
理としてANDゲート110゜111を設けている。A
NDゲート110は、命令レジスタ1に切出された命令
が先行するA命令とインデクスレジスタに関してコンフ
リクトを生じている時に駆動され、ANDゲート111
はベースレジスタに関してコンフリクトを生じている時
に駆動される。両ANDゲートの出力は、3人カアドレ
ス加算器の入力データ制御には利用される訳ではなく、
ORゲート116を経てラッチ117にセットされ、信
号線31によって3人力アドレス加算器7の出力結果を
レジスタ8にセットするために利用される。すなわちア
ドレス加算器7における加算は、コンフリクトが生じて
いない場合と全く同様に行う。これ以後の動作は第3図
(1)の命令列の場合と同じで、先行するA命令のオペ
ランド読出しが終了した時点で、読出しデータを信号線
35を経由して演算手段10に入力し、レジスタ8に保
持している不完全アドレスとの加算を行う。一方A命令
のオペランド読出しの終了が信号線37によって制御回
路3に伝えられるとANDゲート118を経て信号線2
9をセットし、アドレスレジスタ11にL命令のオペラ
ンドアドレスをセットする。こうしてL命令の記憶装置
上のオペランドの読出しが可能となる。
この結果、先行するA命令との間にアドレスコンフリク
トがある場合でも第2図(3)に示した如く後続命令の
処理の高速化を図ることができる。
トがある場合でも第2図(3)に示した如く後続命令の
処理の高速化を図ることができる。
この時制御構造上大きな役割を果しているのが第4図1
10,111のANDゲートである。この2つのゲート
をL命令用のANDゲート108゜109とは別に設け
ることによって、先行命令がA命令の場合もし命令の場
合と同様に高速処理することが可能となった。
10,111のANDゲートである。この2つのゲート
をL命令用のANDゲート108゜109とは別に設け
ることによって、先行命令がA命令の場合もし命令の場
合と同様に高速処理することが可能となった。
次に、第3の例として第3図(3)に示したように、半
語オペランドを扱う汎用レジスタ変更命令が先行命令と
なった場合を第5図を用いて説明する。
語オペランドを扱う汎用レジスタ変更命令が先行命令と
なった場合を第5図を用いて説明する。
第5図の特徴は記憶装置からの読出しデータを演算手段
10に入力する際、論理回路309を経由するところに
ある。それ以外の部分は第1図と同じである。これまで
説明に利用してきたL命令およびA命令は、共にオペラ
ンドとして4バイト長のデータを扱う命令であり、記憶
装置から読出すデータや加算も全て4バイトであった。
10に入力する際、論理回路309を経由するところに
ある。それ以外の部分は第1図と同じである。これまで
説明に利用してきたL命令およびA命令は、共にオペラ
ンドとして4バイト長のデータを扱う命令であり、記憶
装置から読出すデータや加算も全て4バイトであった。
しかるに第3図(3)に示したLH命令は、記憶装置上
の2バイト長のデータを読出し、R1バードで指定され
た4バイト幅の汎用レジスタに格納する命令で、この時
記憶装置から読出した2バイトデータの先頭ビットを符
号ビットとみなし、符号ビットの値を上位の2バイトに
拡張することにより、4バイトのデータとする。すなわ
ち、第6図(2)に示した如く2バイトデータの先頭ビ
ットが0ならば上位2バイトにはOを埋め込み、 11
′ならば′1″を埋め込む訳である。
の2バイト長のデータを読出し、R1バードで指定され
た4バイト幅の汎用レジスタに格納する命令で、この時
記憶装置から読出した2バイトデータの先頭ビットを符
号ビットとみなし、符号ビットの値を上位の2バイトに
拡張することにより、4バイトのデータとする。すなわ
ち、第6図(2)に示した如く2バイトデータの先頭ビ
ットが0ならば上位2バイトにはOを埋め込み、 11
′ならば′1″を埋め込む訳である。
さて第3図(3)の命令列において、LH命令のデコー
ドおよびオペランドアドレスの計算をオペランドの読出
しは第3図(1)で示したし命令と全く同様に処理され
る。そして後続命令であるA命令が命令レジスタ1に設
定されると、L命令の場合と同様、第4図のANDゲー
1−108によってインデクスレジスタに対するコンフ
リクトを認識し、LH命令のオペランドアドレス計算に
おけるインデクスレジスタの入力データをゼロとする。
ドおよびオペランドアドレスの計算をオペランドの読出
しは第3図(1)で示したし命令と全く同様に処理され
る。そして後続命令であるA命令が命令レジスタ1に設
定されると、L命令の場合と同様、第4図のANDゲー
1−108によってインデクスレジスタに対するコンフ
リクトを認識し、LH命令のオペランドアドレス計算に
おけるインデクスレジスタの入力データをゼロとする。
そして不完全なアドレス加算結果を第5図レジスタ8に
保守して、LH命令のオペランドの読出し終了を持つ訳
である。LH命令のオペランドが読出された時、演算手
段10でA命令のオペランドアドレスを求めるが、この
時2バイトのオペランドデータを4バイトに符号拡張す
ることが必要である。この機能を果たすのが第5図の論
理回路309で、その構造を第7図に示す。LH命令で
は読出した2バイト長のオペランドは、アライナ14に
よって4バイトのデータバスの右端に整列させるものと
すると、L命令のような4バイトオペランドの命令では
、データ線38上のデータがそのままデータ線200に
出方されるが、LH命令の場合には、制御線149が働
くことによって上位2バイトのデータとしてビット16
すなわち2バイトオペランドの符号ビットを選択し、荷
量拡張を行う。符号を拡張されたデータはそのままデー
タ線200,201を経てデータ線39に出力され、演
算手段10への入力となる。このようにして、先行命令
がLH命令の場合にも後続命令であるA命令のアドレス
を正しく求めることができる。この時制御線149は、
第4図において、先行する命令がLH命令であることを
デコードした信号線140と、先行する命令のR1のレ
ジス夕番号と後続命令(いまの場合A命令)のインデク
スレジスタ番あるいはベースレジスタ番号が一致したこ
とを示すORゲー1−112の出力信号146とをAN
Dすることによって生成される。
保守して、LH命令のオペランドの読出し終了を持つ訳
である。LH命令のオペランドが読出された時、演算手
段10でA命令のオペランドアドレスを求めるが、この
時2バイトのオペランドデータを4バイトに符号拡張す
ることが必要である。この機能を果たすのが第5図の論
理回路309で、その構造を第7図に示す。LH命令で
は読出した2バイト長のオペランドは、アライナ14に
よって4バイトのデータバスの右端に整列させるものと
すると、L命令のような4バイトオペランドの命令では
、データ線38上のデータがそのままデータ線200に
出方されるが、LH命令の場合には、制御線149が働
くことによって上位2バイトのデータとしてビット16
すなわち2バイトオペランドの符号ビットを選択し、荷
量拡張を行う。符号を拡張されたデータはそのままデー
タ線200,201を経てデータ線39に出力され、演
算手段10への入力となる。このようにして、先行命令
がLH命令の場合にも後続命令であるA命令のアドレス
を正しく求めることができる。この時制御線149は、
第4図において、先行する命令がLH命令であることを
デコードした信号線140と、先行する命令のR1のレ
ジス夕番号と後続命令(いまの場合A命令)のインデク
スレジスタ番あるいはベースレジスタ番号が一致したこ
とを示すORゲー1−112の出力信号146とをAN
Dすることによって生成される。
このように第7図に示した符号拡張回路210および第
4図に示した半語命令認識ゲート112゜114を設け
ることにより、先行する汎用レジスタ変更命令が半語オ
ペランドを扱う場合にもL命令の場合と同様に処理の高
速化を図ることができる。また、半語オペランドを扱う
命令のうち、加算命令(AU)および減算命令(SH)
も同様に高速処理が可能となる。(減算命令については
次の例で説明する。) 次に第3図(4)の命令列の処理について説明する。こ
こでは先行する汎用レジスタ変更命令が減算(S)であ
る。S命令が変更する汎用レジスタ番号3と後続命令で
あるL命令のインデクスレジスタ番号が一致しておりコ
ンフリクトが生じている。この時り命令が行うべきアド
レス計算を式%式%) (GPRI)+Dとなる。そこでA命令の場合と同様に
、まず最初にS命令の第2オペランドとの演算を除いた
3つのデータの加算すなわちC(GPR3)+C(GP
RI)+Dを行い、S命令の第2オペランドを読出した
時点で両者の演算(減算)を行うことにより、L命令の
ペランドアドレスが計算できることに着目する。すなわ
ち、先行命令がA命令であった場合と同様に、S命令に
よって変更される前のインデクスレジスタ(汎用レジス
タ3番)の内容とベースレジスタ(汎用レジスタ1番)
の内容をディスプレースメント値を加算することによっ
てL命令に対する不完全なアドレスを求め、これをアド
レスレジスタ8に保持して、S命令のオペランドの読出
しを持つ。先行命令がA命令の場合と異なる点は、A命
令の場合には、記憶装置から読出したオペランドデータ
を演算手段10において単純に加算すれば良かったが、
S命令の場合には減算を行わねばならないところである
。一般に、減算は、2つの補数を利用することにより加
算によって行うことができる。第5図においては、レジ
スタ8に保持されている値から、信号線35上に読出さ
れてくるS命令の第2オペランドを減じる代おりに、信
号#!35上のデータに関して2の補数をとり、レジス
タ8に保持されている値と加算することにより同じ結果
が得られるのである。そこで、論理回路309には第7
図で示した通り、半語オペランド用符号拡張回路210
の他に、ビット値の反転回路211を備えており、これ
を信号線30の中の信号線150によって制御する。単
純なビットの反転では該データの1の補数が得られるだ
けであるので、信号線150を演算手段10に入力し、
イニシャルキャリー(最下位ビットに対する桁上げ)を
セットすることによりS命令の第2オペランドの2の補
数生成を実現している。信号線150は、第4図で示し
た通り、先行命令が減算命令(S、SH。
4図に示した半語命令認識ゲート112゜114を設け
ることにより、先行する汎用レジスタ変更命令が半語オ
ペランドを扱う場合にもL命令の場合と同様に処理の高
速化を図ることができる。また、半語オペランドを扱う
命令のうち、加算命令(AU)および減算命令(SH)
も同様に高速処理が可能となる。(減算命令については
次の例で説明する。) 次に第3図(4)の命令列の処理について説明する。こ
こでは先行する汎用レジスタ変更命令が減算(S)であ
る。S命令が変更する汎用レジスタ番号3と後続命令で
あるL命令のインデクスレジスタ番号が一致しておりコ
ンフリクトが生じている。この時り命令が行うべきアド
レス計算を式%式%) (GPRI)+Dとなる。そこでA命令の場合と同様に
、まず最初にS命令の第2オペランドとの演算を除いた
3つのデータの加算すなわちC(GPR3)+C(GP
RI)+Dを行い、S命令の第2オペランドを読出した
時点で両者の演算(減算)を行うことにより、L命令の
ペランドアドレスが計算できることに着目する。すなわ
ち、先行命令がA命令であった場合と同様に、S命令に
よって変更される前のインデクスレジスタ(汎用レジス
タ3番)の内容とベースレジスタ(汎用レジスタ1番)
の内容をディスプレースメント値を加算することによっ
てL命令に対する不完全なアドレスを求め、これをアド
レスレジスタ8に保持して、S命令のオペランドの読出
しを持つ。先行命令がA命令の場合と異なる点は、A命
令の場合には、記憶装置から読出したオペランドデータ
を演算手段10において単純に加算すれば良かったが、
S命令の場合には減算を行わねばならないところである
。一般に、減算は、2つの補数を利用することにより加
算によって行うことができる。第5図においては、レジ
スタ8に保持されている値から、信号線35上に読出さ
れてくるS命令の第2オペランドを減じる代おりに、信
号#!35上のデータに関して2の補数をとり、レジス
タ8に保持されている値と加算することにより同じ結果
が得られるのである。そこで、論理回路309には第7
図で示した通り、半語オペランド用符号拡張回路210
の他に、ビット値の反転回路211を備えており、これ
を信号線30の中の信号線150によって制御する。単
純なビットの反転では該データの1の補数が得られるだ
けであるので、信号線150を演算手段10に入力し、
イニシャルキャリー(最下位ビットに対する桁上げ)を
セットすることによりS命令の第2オペランドの2の補
数生成を実現している。信号線150は、第4図で示し
た通り、先行命令が減算命令(S、SH。
S L stc、)であることを示すデコード信号14
1と、先行命令のR1パートとインデクスレジスタ番号
あるいは、ドースレジスタ番号が一致したことを示す信
号線146とをゲート115によってANDすることに
よって生成される。ラッチ121はタイミング調整用で
ある。このような制御方法により、先行命令がS命令で
ある場合にも、第2図(3)に示すように、先行命令が
L命令あるいはA命令である場合と同じくオーバヘッド
1サイクルまで高速化することができる。尚、半語オペ
ランドを扱う減算命令(SH)では、第7図において、
符号拡張回路210とビット反転回路211とが同時に
動作するよう、信号線149゜150を共にセットする
ことにより、制御することができる。
1と、先行命令のR1パートとインデクスレジスタ番号
あるいは、ドースレジスタ番号が一致したことを示す信
号線146とをゲート115によってANDすることに
よって生成される。ラッチ121はタイミング調整用で
ある。このような制御方法により、先行命令がS命令で
ある場合にも、第2図(3)に示すように、先行命令が
L命令あるいはA命令である場合と同じくオーバヘッド
1サイクルまで高速化することができる。尚、半語オペ
ランドを扱う減算命令(SH)では、第7図において、
符号拡張回路210とビット反転回路211とが同時に
動作するよう、信号線149゜150を共にセットする
ことにより、制御することができる。
続いて、第3図(5)で示した命令列の高速処理につい
て説明する。命令の組合せ自体は第3図(1)で示した
が、ここではL命令で変更した汎用レジスタを、後続の
A命令がインデクスレジスタ、ベースレジスタの両方と
して指定した場合である。従来装置ではこうしたケース
の処理高速化について何の記述もないが、本発明によれ
ば簡単な論理回路を付加することによって第3図(1)
〜(4)の命令列と同様の高速化を図ることができる。
て説明する。命令の組合せ自体は第3図(1)で示した
が、ここではL命令で変更した汎用レジスタを、後続の
A命令がインデクスレジスタ、ベースレジスタの両方と
して指定した場合である。従来装置ではこうしたケース
の処理高速化について何の記述もないが、本発明によれ
ば簡単な論理回路を付加することによって第3図(1)
〜(4)の命令列と同様の高速化を図ることができる。
後続命令であるA命令のオペランドアドレスは先行命令
であるし命令の第2オペランドデータを利用してc (
OF2)+C(OF2)+Dという式によって求めるこ
とができる。すなわち、記憶装置から読出したし命令の
第2オペランドを2倍して、ディスプレースメントと加
算すれば良い。
であるし命令の第2オペランドデータを利用してc (
OF2)+C(OF2)+Dという式によって求めるこ
とができる。すなわち、記憶装置から読出したし命令の
第2オペランドを2倍して、ディスプレースメントと加
算すれば良い。
そこで、まず3人力アドレス加算器7において、コンフ
リクトを生じているレジスタを除いた残りの加算(この
場合はディスプレースメントだけが残る)を行い、レジ
スタ8に保持する。この時第4図のANDゲート108
,109によって、3人力アドレス加算器7のインデク
スレジスタ入力、およびベースレジスタ入力がゼロとな
るのは第3図(1)の命令列で説明した通りの論理動作
による。その後、L命令の第2オペランドを読出してく
ると、論理回路309によって該データを2倍し、演算
手段10にてレジスタ8の内容と加算することによって
、A命令のオペランドアドレスを正しく求めることがで
きる。第7図に示した2倍化回路212は単純な1ビツ
ト左シフト回路として構成することができる。また信号
線151は先行命令のR1パートと後続命令のインデク
スおよびベースレジスタ番号が共に一致した場合にセッ
トされ乞。このように先行するL命令が変更するレジス
タを、接続命令のインデクスおよびベースレジスタとし
て同時に使用する場合にも、第2図(3)で示した通り
、オーバヘッドを1サイクルとすることができる。この
考えは先行命令がL命令である場合に限らず、A命令、
S命令である場合にも同様に高速化を図ることができる
。
リクトを生じているレジスタを除いた残りの加算(この
場合はディスプレースメントだけが残る)を行い、レジ
スタ8に保持する。この時第4図のANDゲート108
,109によって、3人力アドレス加算器7のインデク
スレジスタ入力、およびベースレジスタ入力がゼロとな
るのは第3図(1)の命令列で説明した通りの論理動作
による。その後、L命令の第2オペランドを読出してく
ると、論理回路309によって該データを2倍し、演算
手段10にてレジスタ8の内容と加算することによって
、A命令のオペランドアドレスを正しく求めることがで
きる。第7図に示した2倍化回路212は単純な1ビツ
ト左シフト回路として構成することができる。また信号
線151は先行命令のR1パートと後続命令のインデク
スおよびベースレジスタ番号が共に一致した場合にセッ
トされ乞。このように先行するL命令が変更するレジス
タを、接続命令のインデクスおよびベースレジスタとし
て同時に使用する場合にも、第2図(3)で示した通り
、オーバヘッドを1サイクルとすることができる。この
考えは先行命令がL命令である場合に限らず、A命令、
S命令である場合にも同様に高速化を図ることができる
。
第4図におけるラッチ107は、アドレスモードを指定
するものである。アドレスモードとは、アドレス加算器
7から出力される記憶装置参照用オペランドアドレスの
ビット幅を決めるもので。
するものである。アドレスモードとは、アドレス加算器
7から出力される記憶装置参照用オペランドアドレスの
ビット幅を決めるもので。
ラッチ107の出力信号28が0の時にはアドレスを2
4ビツトとし、出力信号28が1の時にはアドレスが3
1ビツトとなるよう制御する。この結果、24ビツトあ
るいは31ビツトのアドレスのいずれかを利用して記憶
装置12を参照することができる。ラッチ107のセッ
ト、リセットは、デコーダ103によってアドレスモー
ドを変更する命令をデコードした時に行う。第8図にア
ドレスモードを変更する命令の例を示す。ここで′OB
”QC″は命令コードである。ここで示した命令はいず
れも2バイト長の命令でR2で示したレジスタ番号がゼ
ロの場合にはNo−0PERATIONとして処理する
が、R2がゼロでない場合にはR2で指定した汎用レジ
スタのビット0をアドレスモードとする。すなわち、デ
コーダ103によって第8図の命令をデコードすると信
号線24上にセットされるR2で指定された汎用レジス
タのビット0の値をラッチ107にセットする。
4ビツトとし、出力信号28が1の時にはアドレスが3
1ビツトとなるよう制御する。この結果、24ビツトあ
るいは31ビツトのアドレスのいずれかを利用して記憶
装置12を参照することができる。ラッチ107のセッ
ト、リセットは、デコーダ103によってアドレスモー
ドを変更する命令をデコードした時に行う。第8図にア
ドレスモードを変更する命令の例を示す。ここで′OB
”QC″は命令コードである。ここで示した命令はいず
れも2バイト長の命令でR2で示したレジスタ番号がゼ
ロの場合にはNo−0PERATIONとして処理する
が、R2がゼロでない場合にはR2で指定した汎用レジ
スタのビット0をアドレスモードとする。すなわち、デ
コーダ103によって第8図の命令をデコードすると信
号線24上にセットされるR2で指定された汎用レジス
タのビット0の値をラッチ107にセットする。
その出力信号28は3人力アドレス加算器7の出力デー
タを抑制する。アドレスモードに関する本発明の特徴は
、アドレスモード制御ラッチ107の出力信号28を用
いて3人力アドレス加算器7を制御するだけでなく、演
算手段10の出力をも制御することである。ラッチ10
7の出力信号28によって演算手段10の出力データに
アドレスモードを反映させることにより、アドレスモー
ドが変わった直後でもアドレスコンフリクトの高速化を
図ることができる。
タを抑制する。アドレスモードに関する本発明の特徴は
、アドレスモード制御ラッチ107の出力信号28を用
いて3人力アドレス加算器7を制御するだけでなく、演
算手段10の出力をも制御することである。ラッチ10
7の出力信号28によって演算手段10の出力データに
アドレスモードを反映させることにより、アドレスモー
ドが変わった直後でもアドレスコンフリクトの高速化を
図ることができる。
もし信号線28によるアドレスモードの制御を演算手段
10の出力に対して施されない場合には、先行命令の記
憶装置から読出したオペランドデータを演算手段10に
入力することができないため、3人力加算器7あるいは
汎用レジスタ2を経由せざるを得す、1サイクルあるい
は2サイクルオーバヘツドが増えてしまう。
10の出力に対して施されない場合には、先行命令の記
憶装置から読出したオペランドデータを演算手段10に
入力することができないため、3人力加算器7あるいは
汎用レジスタ2を経由せざるを得す、1サイクルあるい
は2サイクルオーバヘツドが増えてしまう。
第9図は、本発明の拡張の例を示したものである。情報
処理装置において、3人力アドレス加算器7から出力さ
れるオペランドアドレスデータは非常に重要な信号であ
り、記憶装置に送られて参照アドレスとなるばかりでな
く、記憶装置に格納する命令においては格納アドレスに
もなるし、記憶装置がヒジー状態で3人力アドレス加算
器の出力データを受取れない場合には一時的に退避バッ
ファに係結することが必要であり、また、3人力アドレ
ス加算器の出力を汎用レジスタに格納する命令では、該
命令のパイプライン処理ステージ対応に該アドレスデー
タを保持しておくことが必要であるなど、アドレスデー
タの負荷は非常に大きい。これまでの第1図〜第8図を
用いた説明では、記憶装置の参照アドレスのみに着目し
、レジスタ8、論理回路309そして加算器10を新た
に追加することにより、コンフリクトの高速化を図る手
段について述べてきた。勿論、アドレスデータの負荷数
がどんなに多くとも、アドレスレジスタ11の入力であ
る信号線550を必要なところ全てに直接接続すること
によって解決することができる訳であるが、実際問題と
しては、論理的、物理的な分割や、信号伝搬遅延時間な
どの制限から、アドレスデータを必要とする全ての論理
に、演算手段10と同様の論理が必要になると予想され
る。
処理装置において、3人力アドレス加算器7から出力さ
れるオペランドアドレスデータは非常に重要な信号であ
り、記憶装置に送られて参照アドレスとなるばかりでな
く、記憶装置に格納する命令においては格納アドレスに
もなるし、記憶装置がヒジー状態で3人力アドレス加算
器の出力データを受取れない場合には一時的に退避バッ
ファに係結することが必要であり、また、3人力アドレ
ス加算器の出力を汎用レジスタに格納する命令では、該
命令のパイプライン処理ステージ対応に該アドレスデー
タを保持しておくことが必要であるなど、アドレスデー
タの負荷は非常に大きい。これまでの第1図〜第8図を
用いた説明では、記憶装置の参照アドレスのみに着目し
、レジスタ8、論理回路309そして加算器10を新た
に追加することにより、コンフリクトの高速化を図る手
段について述べてきた。勿論、アドレスデータの負荷数
がどんなに多くとも、アドレスレジスタ11の入力であ
る信号線550を必要なところ全てに直接接続すること
によって解決することができる訳であるが、実際問題と
しては、論理的、物理的な分割や、信号伝搬遅延時間な
どの制限から、アドレスデータを必要とする全ての論理
に、演算手段10と同様の論理が必要になると予想され
る。
そこで、第8図では、アドレスコンフリクトの高速処理
用演算手段を2つ備えた情報処理装置の全体像を示した
。レジスタ508は3人カアドレス加算器7の出力を保
持し、記憶装置からの先行命令のオペランド読出しを持
つためのレジスタでレジスタ8に相当するものである。
用演算手段を2つ備えた情報処理装置の全体像を示した
。レジスタ508は3人カアドレス加算器7の出力を保
持し、記憶装置からの先行命令のオペランド読出しを持
つためのレジスタでレジスタ8に相当するものである。
論理回路509はやはり論理回路9に相当するもので、
記憶装置から読出したオペランドデータに対し、符号拡
張。
記憶装置から読出したオペランドデータに対し、符号拡
張。
反転、2倍の各種処理を施すことが可能な回路である。
そして演算手段510は演算手段10に相当するもので
、3人カアドレス加算器7の出力データである不完全ア
ドレスを完全なアドレスとする加算器である。そしてア
ドレスレジスタ511は、3人カアドレス加算器7と演
算手段510の出力のうちいずれかを選択してセットす
るレジスタである。
、3人カアドレス加算器7の出力データである不完全ア
ドレスを完全なアドレスとする加算器である。そしてア
ドレスレジスタ511は、3人カアドレス加算器7と演
算手段510の出力のうちいずれかを選択してセットす
るレジスタである。
これらの各回路に対して、記憶装置からの読出しデータ
線35や演算器16の出力データ36あるいは制御回路
3からの各種制御信号を全て入力することにより、アド
レスレジスタ511にはアドレスレジスタ11と全く同
じアドレス値がセットされる。そしてその値を記憶装置
内のデータ参照以外の目的に利用できる訳である。
線35や演算器16の出力データ36あるいは制御回路
3からの各種制御信号を全て入力することにより、アド
レスレジスタ511にはアドレスレジスタ11と全く同
じアドレス値がセットされる。そしてその値を記憶装置
内のデータ参照以外の目的に利用できる訳である。
このように、アドレスコンフリクト解消用加算器および
その周辺論理を、アドレスデータを必要とする全ての論
理に追加することによって、アドレスコンフリクト時の
高速化を、アドレスデータを必要とする全ての論理に対
して実現することができる。この時、物量は少々増加す
るものの、信号伝搬遅延時間を大きくすることがないた
め、コンフリクト時の高速処理がそのまま性能向上につ
ながるといえる。
その周辺論理を、アドレスデータを必要とする全ての論
理に追加することによって、アドレスコンフリクト時の
高速化を、アドレスデータを必要とする全ての論理に対
して実現することができる。この時、物量は少々増加す
るものの、信号伝搬遅延時間を大きくすることがないた
め、コンフリクト時の高速処理がそのまま性能向上につ
ながるといえる。
[発明の効果]
本発明によれば、先行するし命令、加減算命令とアドレ
スコンフリクトを生じている場合でも後続命令のデコー
ド処理の高速化を図ることが可能であり、かつこの時後
続命令に対して何ら条件を付す必要がない。また、先行
する命令が半語オペランドを扱う命令の場合、あるいは
先行命令によって後続命令のインデクスレジスタ、ベー
スレジスタを同時に変更した場合にも高速処理可能であ
る。
スコンフリクトを生じている場合でも後続命令のデコー
ド処理の高速化を図ることが可能であり、かつこの時後
続命令に対して何ら条件を付す必要がない。また、先行
する命令が半語オペランドを扱う命令の場合、あるいは
先行命令によって後続命令のインデクスレジスタ、ベー
スレジスタを同時に変更した場合にも高速処理可能であ
る。
第1図は本発明の一実施例の全体構造図、第2図は命令
処理の流れを示した図、第3図は本発明の高速処理の対
象となる命令列の一例を示した図、第4図は第1図にお
ける制御回路の詳細図、第5図は本発明の他の実施例を
示す図、第6図は半語オペランドと符号拡張方法を示し
た図、第7図は第6図における論理回路の内部構造を示
した図、第8図はアドレスモードを変更する命令の命令
形式を示した図、第9図は本発明の拡張の一例を示した
図である。。 1・・・命令レジスタ、2・・・汎用レジスタ、3・・
・制御回路、7・・・3人カアドレス加算器、8.50
8・・・3人カアドレス加算器の出力データを保持する
レジスタ、9,509・・・記憶装置から読出したデー
タに対して、符号拡張2反映、2倍の各種処理を行う論
理回路、11・・・アドレスレジスタ、12・・・記憶
装置、13・・・データレジスタ、14・・・アライナ
、15・・・オペランドバッファレジスタ、16・・・
演算器、103,104・・・デコーダ、105.10
6・・・4ビツト比較器。 策2目 (1) It ロ]I工I工=コロ第3目 第2図
処理の流れを示した図、第3図は本発明の高速処理の対
象となる命令列の一例を示した図、第4図は第1図にお
ける制御回路の詳細図、第5図は本発明の他の実施例を
示す図、第6図は半語オペランドと符号拡張方法を示し
た図、第7図は第6図における論理回路の内部構造を示
した図、第8図はアドレスモードを変更する命令の命令
形式を示した図、第9図は本発明の拡張の一例を示した
図である。。 1・・・命令レジスタ、2・・・汎用レジスタ、3・・
・制御回路、7・・・3人カアドレス加算器、8.50
8・・・3人カアドレス加算器の出力データを保持する
レジスタ、9,509・・・記憶装置から読出したデー
タに対して、符号拡張2反映、2倍の各種処理を行う論
理回路、11・・・アドレスレジスタ、12・・・記憶
装置、13・・・データレジスタ、14・・・アライナ
、15・・・オペランドバッファレジスタ、16・・・
演算器、103,104・・・デコーダ、105.10
6・・・4ビツト比較器。 策2目 (1) It ロ]I工I工=コロ第3目 第2図
Claims (1)
- 【特許請求の範囲】 1、命令によってインデクスレジスタおよびベースレジ
スタとして指定された汎用レジスタの内容と、命令で指
定されたディスプレースメント値とを加算してオペラン
ドのアドレスを計算する機能を有する情報処理装置にお
いて、先行する命令が記憶装置から読出したオペランド
データを汎用レジスタに格納する命令であることを認識
して該先行命令が変更する汎用レジスタ番号と後続命令
がオペランドアドレスの生成に使用するインデクスレジ
スタ番号あるいはベースレジスタ番号とが一致している
ことを検出する手段と、該検出結果により番号が一致し
ている汎用レジスタの上記アドレス加算器への読出しデ
ータをゼロに設定しアドレス加算器にて先行命令によっ
て変更される汎用レジスタ以外のデータの加算を行わし
める制御手段と、該アドレス加算器の出力データを保持
する待合せレジスタと、該待合せレジスタの出力と記憶
装置から読出したオペランドデータを入力とする前記ア
ドレス加算器とは異なる演算手段を有することを特徴と
する情報処理装置。 2、上記検出手段は、先行する命令が記憶装置より読出
したオペランドデータを汎用レジスタに格納する命令で
あること、該先行命令が変更する汎用レジスタの番号が
、後続命令がオペランドアドレスの計算のために読出す
インデクスレジスタの番号あるいはベースレジスタの番
号と一致することを検出し、該検出結果によって、番号
の一致したレジスタの読出しデータをゼロに設定するこ
とを特徴とする特許請求第1項記載の情報処理装置。 3、上記待合わせレジスタは、上記検出手段の出力信号
がセットされた時に、入力アドレス加算器の出力するア
ドレスデータを取込み、先行命令のオペランド読出しが
終了するまで保持し続けることを特徴とする特許請求の
範囲第1項又は第2項記載の情報処理装置。 4、上記記憶装置から読出したオペランドデータを入力
とする論理回路を有し、汎用レジスタを変更する先行命
令が、記憶装置上の半語オペランドを汎用レジスタに格
納する命令の場合には、符号を拡張して半語オペランド
を語オペランドに変換する機能を果し、先行命令が記憶
装置上の語オペランドを汎用レジスタに格納する命令の
場合には、そのまま入力データを出力して演算手段への
入力とすることを特徴とする特許請求の範囲第1項記載
の情報処理装置。 5、上記演算手段と、上記待合わせレジスタの出力と上
記論理回路の出力を入力とし、両者の演算を行うことを
特徴とする特許請求の範囲第1項から第4項のいずれか
に記載の情報処理装置。 6、先行する命令のオペランド読出しが終了した時、上
記演算手段の出力を記憶参照用アドレスとして選択する
べく制御する回路を有することを特徴とした特許請求の
範囲第1項記載の情報処理装置。 7、アドレスモードを変更する命令をデコードした場合
、該命令が新たに設定したアドレスモードを保持し、そ
れによって上記アドレス加算器の出力を制御するのみな
らず、上記演算手段の出力をも制御するような制御回路
を有することを特徴とする特許請求の範囲第1項記載の
情報処理装置。 8、上記検出手段は、先行する命令が半語オペランドを
汎用レジスタに格納する場合には上記論理回路にてオペ
ランドデータの符号拡張を行うことを指示し、先行命令
が語オペランドを汎用レジスタに格納する命令の場合に
は上記論理回路にてオペランドデータをそのまま出力す
ることを指示することを特徴とする特許請求の範囲第1
項、第2項又は第4項記載の情報処理装置。 9、命令によってインデクスレジスタおよびベースレジ
スタとして指定された汎用レジスタの内容と、命令で指
定されたディスプレースメント値とを加算してオペラン
ドのアドレスを計算する機能を有する情報処理装置にお
いて、先行する命令が記憶装置から読出したオペランド
データに演算を施し結果を汎用レジスタに格納する命令
であることを認識して、該先行命令が変更する汎用レジ
スタ番号と後続命令がオペランドアドレスの生成に使用
するインデクス番号あるいはベースレジスタ番号とが一
致していることを検出する手段と、該検出結果により番
号が一致している汎用レジスタの上記アドレス加算器へ
の読出しデータをゼロに設定しアドレス加算器にて先行
命令によって変更される汎用レジスタ以外のデータの加
算を行わしめる制御手段と、該アドレス加算器の出力デ
ータを保持する複数の待合せレジスタと該複数の待合せ
レジスタの出力と記憶装置から読出したオペランドデー
タを入力とする前記アドレス加算器とは異なる複数の演
算手段を有することを特徴とする特許請求第1項記載の
情報処理装置。 10、命令によってインデクスレジスタおよびベースレ
ジスタとして指定された汎用レジスタの内容と、命令で
指定されたディスプレースメント値とを加算してオペラ
ンドのアドレスを計算する機能を有する情報処理装置に
おいて、先行する命令が記憶装置から読出したオペラン
ドデータに演算を施して結果を汎用レジスタに格納する
命令であることを認識して該先行命令が変更する汎用レ
ジスタ番号と後続命令がオペランドアドレスの生成に使
用するインデクスレジスタ番号あるい、はベースレジス
タ番号とが一致していることを検出する手段と、該検出
結果により後続命令のアドレス計算を先行命令による汎
用レジスタの変更が終了する前に変更前のデータを利用
してアドレス加算器にてそのまま実行させる制御手段と
、該アドレス加算器の出力を保持する待合わせレジスタ
と、該待合わせレジスタの出力と記憶装置から読出した
オペランドデータを入力とする前記アドレス加算器とは
異なる演算手段を有することを特徴とする情報処理装置
。 11、上記検出手段は先行する命令が記憶装置より読出
したオペランドデータに演算を施した後汎用レジスタに
格納する命令であること、該先行命令が変更する汎用レ
ジスタの番号が後続命令がオペランドアドレスの計算の
ために読出すインデクスレジスタの番号あるいはベース
レジスタの番号と一致することを検出し、該検出結果に
よって後続命令のアドレス計算を先行命令による汎用レ
ジスタの変更が終了する前に変更前のデータを読出すこ
とによって行わせることを特徴とする特許請求の範囲第
7項記載の情報処理装置。 12、上記記憶装置から読出したオペランドデータを入
力とする論理回路を有し、汎用レジスタを変更する先行
命令が、記憶装置上のオペランドと汎用レジスタの内容
との減算を行う命令の場合には、上記記憶装置から読出
したオペランドの2つの補数をとって出力する機能を果
し、先行命令が記憶装置上の半語オペランドと汎用レジ
スタの内容との減算を行う命令の場合には、上記記憶装
置から読出したオペランドに対して符号の拡張を行った
後2の補数をとって出力する機能を果し、先行命令が記
憶装置のオペランドと汎用レジスタの加算を行う命令の
場合には、上記記憶装置から読出したオペランドをその
まま出力する機能を果し、先行命令が変更する汎用レジ
スタを後続命令がインデクスレジスタ、ベースレジスタ
の両方で使用している場合には、上記記憶装置から読出
したオペランドを2倍して演算手段に、入力する機能を
果すことを特徴とする特許請求の範囲第7項記載の情報
処理装置。 13、上記検出手段は、先行する命令が半語オペランド
を扱う命令である場合には、上記論理回路にてオペラン
ドデータの符号拡張を行うことを指示し、先行命令が減
算を行う命令の場合には、上記論理回路にてオペランド
データの2の補数をとることを指示し、先行する命令が
変更する汎用レジスタを後続命令がインデクスレジスタ
およびベースレジスタとして同時に指定している時には
上記論理回路にてオペランドデータを2倍することを指
示することを特徴とする特許請求の範囲第7項、第8項
又は第9項記載の情報処理装置。 14、命令によってインデクスレジスタおよびベースレ
ジスタとして指定された汎用レジスタの内容と、命令で
指定されたディスプレースメント値とを加算してオペラ
ンドのアドレスを計算する機能を有する情報処理装置に
おいて、先行する命令が記憶装置から読出したオペラン
ドデータに演算を施して結果を汎用レジスタに格納する
命令であることを認識して該先行命令が変更する汎用レ
ジスタ番号と後続命令がオペランドアドレスの生成に使
用するインデクスレジスタ番号あるいはベースレジスタ
番号とが一致していることを検出する手段と、該検出結
果により後続命令のアドレス計算を先行命令による汎用
レジスタの変更が終了する前に変更前のデータを利用し
てアドレス加算器にてそのまま実行させる制御手段と、
該アドレス加算器の出力を保持する複数の待合わせレジ
スタと、該複数の待合わせレジスタの出力と記憶装置か
ら読出したオペランドデータを入力とする前記アドレス
加算器とは異なる複数の加算器を有することを特徴とす
る特許請求の範囲第10項記載の情報処理装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63000351A JP2667849B2 (ja) | 1988-01-06 | 1988-01-06 | 情報処理装置 |
US07/292,346 US5075849A (en) | 1988-01-06 | 1988-12-30 | Information processor providing enhanced handling of address-conflicting instructions during pipeline processing |
DE3900246A DE3900246A1 (de) | 1988-01-06 | 1989-01-05 | Informationsverarbeitungsvorrichtung |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63000351A JP2667849B2 (ja) | 1988-01-06 | 1988-01-06 | 情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH01177127A true JPH01177127A (ja) | 1989-07-13 |
JP2667849B2 JP2667849B2 (ja) | 1997-10-27 |
Family
ID=11471415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63000351A Expired - Fee Related JP2667849B2 (ja) | 1988-01-06 | 1988-01-06 | 情報処理装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5075849A (ja) |
JP (1) | JP2667849B2 (ja) |
DE (1) | DE3900246A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03218526A (ja) * | 1989-11-15 | 1991-09-26 | Matsushita Electric Ind Co Ltd | 情報処理装置 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2668438B2 (ja) * | 1989-04-21 | 1997-10-27 | 三菱電機株式会社 | データ検索装置 |
US5276822A (en) * | 1989-11-15 | 1994-01-04 | Matsushita Electric Industrial Co., Ltd. | System with enhanced execution of address-conflicting instructions using immediate data latch for holding immediate data of a preceding instruction |
JPH04275628A (ja) * | 1991-03-01 | 1992-10-01 | Mitsubishi Electric Corp | 演算処理装置 |
US5522052A (en) * | 1991-07-04 | 1996-05-28 | Matsushita Electric Industrial Co. Ltd. | Pipeline processor for processing instructions having a data dependence relationship |
JP2761688B2 (ja) * | 1992-02-07 | 1998-06-04 | 三菱電機株式会社 | データ処理装置 |
DE69329778T2 (de) * | 1992-09-29 | 2001-04-26 | Seiko Epson Corp., Tokio/Tokyo | System und verfahren zur handhabung von laden und/oder speichern in einem superskalar mikroprozessor |
US6735685B1 (en) | 1992-09-29 | 2004-05-11 | Seiko Epson Corporation | System and method for handling load and/or store operations in a superscalar microprocessor |
JP3499135B2 (ja) * | 1998-06-29 | 2004-02-23 | 富士通株式会社 | 情報処理装置 |
US6453424B1 (en) * | 1999-03-31 | 2002-09-17 | International Business Machines Corporation | System and method for temporally controlling instruction execution |
US7185182B2 (en) * | 2003-02-04 | 2007-02-27 | Via Technologies, Inc. | Pipelined microprocessor, apparatus, and method for generating early instruction results |
US7107438B2 (en) | 2003-02-04 | 2006-09-12 | Via Technologies, Inc. | Pipelined microprocessor, apparatus, and method for performing early correction of conditional branch instruction mispredictions |
US7100024B2 (en) | 2003-02-04 | 2006-08-29 | Via Technologies, Inc. | Pipelined microprocessor, apparatus, and method for generating early status flags |
US20050216713A1 (en) * | 2004-03-25 | 2005-09-29 | International Business Machines Corporation | Instruction text controlled selectively stated branches for prediction via a branch target buffer |
US7694286B2 (en) * | 2005-02-10 | 2010-04-06 | International Business Machines Corporation | Apparatus and method for detecting base-register usage conflicts in computer code |
US8966230B2 (en) * | 2009-09-30 | 2015-02-24 | Intel Corporation | Dynamic selection of execution stage |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61109145A (ja) * | 1984-11-01 | 1986-05-27 | Fujitsu Ltd | メモリアドレス算出方式 |
JPS61133440A (ja) * | 1984-11-30 | 1986-06-20 | Nec Corp | デ−タ処理装置 |
JPS61267135A (ja) * | 1985-05-21 | 1986-11-26 | Nec Corp | デ−タ処理装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CS164932B2 (ja) * | 1971-09-07 | 1975-11-28 | ||
JPS5928793B2 (ja) * | 1979-09-06 | 1984-07-16 | ロス・オペレ−テイング・バルブ・カンパニ− | 複式安全弁 |
US4445177A (en) * | 1981-05-22 | 1984-04-24 | Data General Corporation | Digital data processing system utilizing a unique arithmetic logic unit for handling uniquely identifiable addresses for operands and instructions |
JPS59231652A (ja) * | 1983-06-13 | 1984-12-26 | Hitachi Ltd | メモリアクセス・オ−バラツプ検出方式 |
US4789925A (en) * | 1985-07-31 | 1988-12-06 | Unisys Corporation | Vector data logical usage conflict detection |
JPS6347834A (ja) * | 1986-08-15 | 1988-02-29 | Hitachi Ltd | 先行制御方式 |
-
1988
- 1988-01-06 JP JP63000351A patent/JP2667849B2/ja not_active Expired - Fee Related
- 1988-12-30 US US07/292,346 patent/US5075849A/en not_active Expired - Fee Related
-
1989
- 1989-01-05 DE DE3900246A patent/DE3900246A1/de active Granted
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61109145A (ja) * | 1984-11-01 | 1986-05-27 | Fujitsu Ltd | メモリアドレス算出方式 |
JPS61133440A (ja) * | 1984-11-30 | 1986-06-20 | Nec Corp | デ−タ処理装置 |
JPS61267135A (ja) * | 1985-05-21 | 1986-11-26 | Nec Corp | デ−タ処理装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03218526A (ja) * | 1989-11-15 | 1991-09-26 | Matsushita Electric Ind Co Ltd | 情報処理装置 |
Also Published As
Publication number | Publication date |
---|---|
US5075849A (en) | 1991-12-24 |
JP2667849B2 (ja) | 1997-10-27 |
DE3900246A1 (de) | 1989-07-20 |
DE3900246C2 (ja) | 1992-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5404552A (en) | Pipeline risc processing unit with improved efficiency when handling data dependency | |
JPH01177127A (ja) | 情報処理装置 | |
JPS6312029A (ja) | 情報処理装置 | |
JPH01502700A (ja) | 境界合せされていないリファレンスを処理するrisc型コンピュータ及び同処理の方法 | |
JPH03218523A (ja) | データプロセッサ | |
JP2620511B2 (ja) | データ・プロセッサ | |
US7945765B2 (en) | Method and structure for asynchronous skip-ahead in synchronous pipelines | |
US5253349A (en) | Decreasing processing time for type 1 dyadic instructions | |
JPH10222368A (ja) | データ処理装置 | |
US5276822A (en) | System with enhanced execution of address-conflicting instructions using immediate data latch for holding immediate data of a preceding instruction | |
EP0385136B1 (en) | Microprocessor cooperating with a coprocessor | |
JP2798121B2 (ja) | データ処理装置 | |
CN113779755A (zh) | 一种硅基多光谱集成电路芯片的设计方法和集成电路芯片 | |
JPS6161416B2 (ja) | ||
JPS5890247A (ja) | 情報処理装置のパイプライン制御方式 | |
EP0015276B1 (en) | A digital pipelined computer | |
JPS61288230A (ja) | パイプライン制御方式 | |
US7594103B1 (en) | Microprocessor and method of processing instructions for responding to interrupt condition | |
JP2919184B2 (ja) | パイプライン処理を行う情報処理装置 | |
JPH02206836A (ja) | データ処理装置 | |
JPH06314196A (ja) | 情報処理方法および装置 | |
JPH0325656A (ja) | コプロセッサ | |
JPH05127894A (ja) | 命令実行方式 | |
JPH08161170A (ja) | マイクロプロセッサとその制御方法 | |
JPH0227429A (ja) | パイプライン制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |