JPH01214933A - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JPH01214933A JPH01214933A JP4002588A JP4002588A JPH01214933A JP H01214933 A JPH01214933 A JP H01214933A JP 4002588 A JP4002588 A JP 4002588A JP 4002588 A JP4002588 A JP 4002588A JP H01214933 A JPH01214933 A JP H01214933A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- stage
- branch
- address
- instructions
- 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
Landscapes
- Advance Control (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
この発明はパイプラインの乱れを少なくする分岐命令処
理機構とオペランドアドレス計算機構により、多段パイ
プライン処理機構を効率的に動作させ、高い処理能力を
実現したデータ処理装置に関するものである。
理機構とオペランドアドレス計算機構により、多段パイ
プライン処理機構を効率的に動作させ、高い処理能力を
実現したデータ処理装置に関するものである。
第5図に従来のデータ処理装置で行われていたパイプラ
イン処理機構の例を示す。αpは命令フェッチステージ
(IFステデー)、@は命令デコードステージ(Dステ
ージ)、(至)はオペランドアドレス計算ステージ(A
ステージ)、α→はオペランドフェッチステージ(Fス
テージ)、(至)は命令実行ス千−ジ(Eステージ)で
ある。
イン処理機構の例を示す。αpは命令フェッチステージ
(IFステデー)、@は命令デコードステージ(Dステ
ージ)、(至)はオペランドアドレス計算ステージ(A
ステージ)、α→はオペランドフェッチステージ(Fス
テージ)、(至)は命令実行ス千−ジ(Eステージ)で
ある。
IFステデーaのはメモリから命令コードをフェッチし
てDステージ(2)に出力する。Dステージ(至)はI
Fステデーaυから入力される命令コードをデコードし
て、デコード結果をAステージ(至)に出力する。Aス
テージ(2)は命令コード中で指定されたオペランドの
実効アドレスの計算を行い、計算したオペランドアドレ
スをFステージα尋に出力する。
てDステージ(2)に出力する。Dステージ(至)はI
Fステデーaυから入力される命令コードをデコードし
て、デコード結果をAステージ(至)に出力する。Aス
テージ(2)は命令コード中で指定されたオペランドの
実効アドレスの計算を行い、計算したオペランドアドレ
スをFステージα尋に出力する。
Fステージα4はAステージ(至)から入力されたオペ
ランドアドレスに従い、メモリよりオペランドをフェッ
チする。フェッチしたオペランドはEステージ(ト)に
出力する。Eステージ(ト)はFステージα尋から入力
されたオペランドに対して命令コード中で指定された演
算を実行する。さらに必要ならその演算結果をメモリに
ストアする。
ランドアドレスに従い、メモリよりオペランドをフェッ
チする。フェッチしたオペランドはEステージ(ト)に
出力する。Eステージ(ト)はFステージα尋から入力
されたオペランドに対して命令コード中で指定された演
算を実行する。さらに必要ならその演算結果をメモリに
ストアする。
上記のパイプライン処理機構により、各命令で指定され
る処理は5つに分解され、5つの処理を順番に実行する
ことにより、指定された処理を完了する。各々5つの処
理は異なる命令に対しては並列動作させることが可能で
あり、理想的には上記の5段のパイプライン処理機構に
より5つの命令を同時に処理し、パイプライン処理を行
わない場合にくらべ、最大で5倍の処理能力もつデータ
処理装置を得ることができる。
る処理は5つに分解され、5つの処理を順番に実行する
ことにより、指定された処理を完了する。各々5つの処
理は異なる命令に対しては並列動作させることが可能で
あり、理想的には上記の5段のパイプライン処理機構に
より5つの命令を同時に処理し、パイプライン処理を行
わない場合にくらべ、最大で5倍の処理能力もつデータ
処理装置を得ることができる。
パイプライン処理技術は上記のようにデータ処理装置の
処理能力を大幅に向上させる可能性をもつものであり、
高速なデータ処理装置で広゛く用いられている。
処理能力を大幅に向上させる可能性をもつものであり、
高速なデータ処理装置で広゛く用いられている。
しかし、パイプライン処理にもいくつかの欠点があり、
いつも理想的な状態で命令が処理されるわけではない。
いつも理想的な状態で命令が処理されるわけではない。
パイプライン処理で問題となるものの1つは命令のシー
ケンスを乱す分岐命令の実行である。
ケンスを乱す分岐命令の実行である。
第5図に示すパイプライン処理機構をもち、分岐命令を
EステージαQで処理してから分岐先命令をIFステデ
ーQl)が処理する従来のデータ処理装置では、分岐命
令の実行により、パイプラインが大幅に乱れる。従来の
データ処理装置で分岐命令が実行された場合に、パイプ
ライン中を流れる命令の様子を第6図に示す。第6図で
は命令3及び命令12が分岐命令である。命令3が実行
されるとすでにパイプライン処理中の命令4、命令5、
命令6、命令7はキャン゛セルされ、新たに命令11が
IFステデーαυから処理される。命令3がEステージ
(ト)で実行されてから命令11がEステージ(ト)で
実行されるまでには4命令処理分の時間が無駄になる。
EステージαQで処理してから分岐先命令をIFステデ
ーQl)が処理する従来のデータ処理装置では、分岐命
令の実行により、パイプラインが大幅に乱れる。従来の
データ処理装置で分岐命令が実行された場合に、パイプ
ライン中を流れる命令の様子を第6図に示す。第6図で
は命令3及び命令12が分岐命令である。命令3が実行
されるとすでにパイプライン処理中の命令4、命令5、
命令6、命令7はキャン゛セルされ、新たに命令11が
IFステデーαυから処理される。命令3がEステージ
(ト)で実行されてから命令11がEステージ(ト)で
実行されるまでには4命令処理分の時間が無駄になる。
命令12についても同様に4命令処理分の時間が無駄に
なる。この無駄時間は分岐命令の実行後に処理すべき命
令のフェッチが分岐命令のフェッチが分岐命令に対する
全パイプライン処理が終了した後に行°われるためであ
り、パイプライン処理の段数が多いほどこの無駄時間も
長くなる。
なる。この無駄時間は分岐命令の実行後に処理すべき命
令のフェッチが分岐命令のフェッチが分岐命令に対する
全パイプライン処理が終了した後に行°われるためであ
り、パイプライン処理の段数が多いほどこの無駄時間も
長くなる。
パイプライン処理を行うデータ処理装置では分岐命令の
処理が処理能力向との1つの大きなキーポイントである
ことは従来より指摘されており、様々な工夫がすでに行
われている。分岐命令の処理に対する工夫は例えばJ、
K、 F、 Lee、九J、 Sm1th。
処理が処理能力向との1つの大きなキーポイントである
ことは従来より指摘されており、様々な工夫がすでに行
われている。分岐命令の処理に対する工夫は例えばJ、
K、 F、 Lee、九J、 Sm1th。
「Branch Prediction Strate
gies and Branch TargetBuf
fer Design J 、 IEEE Compu
ter、 Vol、 17.Nch 1 。
gies and Branch TargetBuf
fer Design J 、 IEEE Compu
ter、 Vol、 17.Nch 1 。
January 、 1984.で紹介されている。し
かし、いずれの工夫も実現に多大のハードウェアを必要
としたり、一部の分岐命令のみにしか効果がないなど、
まだまだ欠点を多く残すものであった。
かし、いずれの工夫も実現に多大のハードウェアを必要
としたり、一部の分岐命令のみにしか効果がないなど、
まだまだ欠点を多く残すものであった。
本発明のデータ処理装置では上記の欠点を解決するため
、条件分岐命令は履歴に依存して、その他の命令は命令
コードに依存して分岐を予測することが可能な命令デコ
ード機構と、分岐先アドレスを計算することが可能なプ
ログラムカウンタ値計算機構と、分岐命令の命令長と分
岐命令のプログラムカウンタ値を加算することが可能な
オペランドアドレス計算機構とをもつ。
、条件分岐命令は履歴に依存して、その他の命令は命令
コードに依存して分岐を予測することが可能な命令デコ
ード機構と、分岐先アドレスを計算することが可能なプ
ログラムカウンタ値計算機構と、分岐命令の命令長と分
岐命令のプログラムカウンタ値を加算することが可能な
オペランドアドレス計算機構とをもつ。
本発明のデータ処理装置では上記の、条件分岐命令は履
歴に依存して、その他の命令は命令コードに依存して分
岐を予測することが可能な命令デコード機構と、分岐先
アドレスを計算することが可能なプログラムカウンタ値
計算機構と、分岐命令の命令長と分岐命令のプログラム
カウンタ値を加算することが可能なオペランドアドレス
計算機(コとにより、サブルーチン分岐命令に対して命
令デコード段階で分岐処理を行い、パイプライン処理の
乱れを少なくする。
歴に依存して、その他の命令は命令コードに依存して分
岐を予測することが可能な命令デコード機構と、分岐先
アドレスを計算することが可能なプログラムカウンタ値
計算機構と、分岐命令の命令長と分岐命令のプログラム
カウンタ値を加算することが可能なオペランドアドレス
計算機(コとにより、サブルーチン分岐命令に対して命
令デコード段階で分岐処理を行い、パイプライン処理の
乱れを少なくする。
また、分岐命令の命令長と分岐命令のプログラムカウン
タ値を加算することが可能なオペランドアドレス計算機
構により、サブルーチン分岐命令、トラップ命令の実行
の際スタックにブツシュすべきこれらの命令の次のアド
レスにある命令のプログラムカウンタ値を計算すること
により、これらの命令をパイプライン上で効率的に処理
する。
タ値を加算することが可能なオペランドアドレス計算機
構により、サブルーチン分岐命令、トラップ命令の実行
の際スタックにブツシュすべきこれらの命令の次のアド
レスにある命令のプログラムカウンタ値を計算すること
により、これらの命令をパイプライン上で効率的に処理
する。
(1)本発明のデータ処理装置の命令フォーマット本発
明のデータ処理装置の命令は16ビツト単位で可変長と
なっており、奇数バイト長の命令はない。
明のデータ処理装置の命令は16ビツト単位で可変長と
なっており、奇数バイト長の命令はない。
本発明のデータ処理装置では高頻度命令を短いフォーマ
ットとするため、特に工夫された命令フォーマット体系
をもつ。例えば、2オペランド命令に対して、基本的に
4バイト+拡張部の構成をモち、すべてのアドレッシン
グモードが利用できる一般形フオーマットと頻度の高い
命令とアドレッシングモードのみを使用できる短縮形フ
ォーマットの2つのフォーマットがある。
ットとするため、特に工夫された命令フォーマット体系
をもつ。例えば、2オペランド命令に対して、基本的に
4バイト+拡張部の構成をモち、すべてのアドレッシン
グモードが利用できる一般形フオーマットと頻度の高い
命令とアドレッシングモードのみを使用できる短縮形フ
ォーマットの2つのフォーマットがある。
第8図から第17図に示す本発明のデータ処理装置の命
令フォーマット中に現われる記号の意味は次の通りであ
る。
令フォーマット中に現われる記号の意味は次の通りであ
る。
m:オペコードの入る部分
#:リテラル、または即値の入る部分
Ea:8ミニ8ビツト形のアドレッシングモードでオペ
ランドを指定する部分 Sh:6ビツトの短縮形のアドレッシングモードでオペ
ランドを指定する部分 Rn:レジスタ上のオペランドをレジスタ番号で指定す
る部分 フォーマットは、第8図に示すように右側がLSB側で
、かつ高いアドレスになっている。アドレスNとアドレ
スN+1の2バイトを見ないと命令フォーマットが判別
できないようになっているが、これは、命令が必ず16
ビツト(2バイト)単位でフェッチ、デコードされるこ
とを前提としたためである。
ランドを指定する部分 Sh:6ビツトの短縮形のアドレッシングモードでオペ
ランドを指定する部分 Rn:レジスタ上のオペランドをレジスタ番号で指定す
る部分 フォーマットは、第8図に示すように右側がLSB側で
、かつ高いアドレスになっている。アドレスNとアドレ
スN+1の2バイトを見ないと命令フォーマットが判別
できないようになっているが、これは、命令が必ず16
ビツト(2バイト)単位でフェッチ、デコードされるこ
とを前提としたためである。
本発明のデータ処理装置では、いずれのフォーマットの
場合も、各オペランドのEaまたはshの拡張部は、必
ずそのEaまたはshの基本部を含むハーフワードの直
後に置かれる。これは、命令により暗黙に指定される即
値データや、命令の拡張部に優先する。したがって、4
バイト以上の命令では、Eaの拡張部によって命令のオ
ペコードが分断される場合がある。
場合も、各オペランドのEaまたはshの拡張部は、必
ずそのEaまたはshの基本部を含むハーフワードの直
後に置かれる。これは、命令により暗黙に指定される即
値データや、命令の拡張部に優先する。したがって、4
バイト以上の命令では、Eaの拡張部によって命令のオ
ペコードが分断される場合がある。
また、後でも述べるように、多段間接モードによって、
Eaの拡張部にさらに拡張部が付く場合にも、次の命令
オペコードよりもそちらの方が優先される。例えば、第
一ハーフワードにEalを含み、第二ハーフワードlこ
Ea2を含み、第三ハーフワードまである6バイト命令
の場合を窃える。Eatに多段間接モードを使用したた
め、普通の拡張部のほかに多段間接モードの拡張部もつ
くものとする。
Eaの拡張部にさらに拡張部が付く場合にも、次の命令
オペコードよりもそちらの方が優先される。例えば、第
一ハーフワードにEalを含み、第二ハーフワードlこ
Ea2を含み、第三ハーフワードまである6バイト命令
の場合を窃える。Eatに多段間接モードを使用したた
め、普通の拡張部のほかに多段間接モードの拡張部もつ
くものとする。
この時、実際の命令ビットパターンは、命令の第一ハー
フワード(Ealの基本部を含む)、Ealの拡張部、
Eatの多段間接モード拡張部、命令の第二ハーフワー
ド(Ea2の基本部を含む) 、Ea2の拡張部、命令
の第三ハーフワード、の順となる。
フワード(Ealの基本部を含む)、Ealの拡張部、
Eatの多段間接モード拡張部、命令の第二ハーフワー
ド(Ea2の基本部を含む) 、Ea2の拡張部、命令
の第三ハーフワード、の順となる。
(1,1)短縮形2オペランド命令
第9図から第12図に示す。2オペランド命令の短縮形
フォーマットである。
フォーマットである。
第9図はメモリーレジスタ間演算命令のフォーマットで
ある。このフォーマットにはソースオペランド側がメモ
リとなるL−formatとデスティネーションオペラ
ンド側がメモリとなるS−formatがある。
ある。このフォーマットにはソースオペランド側がメモ
リとなるL−formatとデスティネーションオペラ
ンド側がメモリとなるS−formatがある。
L−formatでは、Shはソースオペランドの指定
フィールド、Rhはデスティネーションオペランドのレ
ジスタの指定フィールド、RRはshのオペランドサイ
ズの指定をあられす。レジスタとに置かれたデスティネ
ーションオペランドのサイズは、32ビツトに固定され
ている。レジスタ側とメモリ側のサイズが異なり、ソー
ス側のサイズが小さい場合に符号拡張が行なわれる。
フィールド、Rhはデスティネーションオペランドのレ
ジスタの指定フィールド、RRはshのオペランドサイ
ズの指定をあられす。レジスタとに置かれたデスティネ
ーションオペランドのサイズは、32ビツトに固定され
ている。レジスタ側とメモリ側のサイズが異なり、ソー
ス側のサイズが小さい場合に符号拡張が行なわれる。
S−formatではshはデスティネーションオペラ
ンドの指定フィールド、Rhはソースオペランドのレジ
スタ指定フィールド、RRはshのオペランドサイズの
指定をあられす。レジスタ上に置かれたソースオペラン
ドのサイズは、32ビツトに固定されている。レジスタ
側とメモリ側のサイズが異なり、ソース側のサイズが大
きい場合にあふれた部分の切捨てとオーバーフローチエ
ツクが行なわれる。
ンドの指定フィールド、Rhはソースオペランドのレジ
スタ指定フィールド、RRはshのオペランドサイズの
指定をあられす。レジスタ上に置かれたソースオペラン
ドのサイズは、32ビツトに固定されている。レジスタ
側とメモリ側のサイズが異なり、ソース側のサイズが大
きい場合にあふれた部分の切捨てとオーバーフローチエ
ツクが行なわれる。
第10図はレジスターレジスタ間演算命令のフォーマッ
ト(R−format )である。Rnはデスティネー
ションレジスタの指定フィールドRmはソースレジスタ
の指定フィールドである。オペランドサイズは32ビツ
トのみである。
ト(R−format )である。Rnはデスティネー
ションレジスタの指定フィールドRmはソースレジスタ
の指定フィールドである。オペランドサイズは32ビツ
トのみである。
第11図はリテラル−メモリ間演算命令のフォーマット
(Q−format )である。票はディスティネーシ
ョンオペランドサイズの指定フィールド、#はリテラル
によるソースオペランドの指定フィールド、Shはデス
ティネーションオペランドの指定フィールドである。
(Q−format )である。票はディスティネーシ
ョンオペランドサイズの指定フィールド、#はリテラル
によるソースオペランドの指定フィールド、Shはデス
ティネーションオペランドの指定フィールドである。
第12図は即値−メモリ間演算命令のフォーマット(1
−format)である。扇はオペランドサイズの指定
フィールド(ソース、ディスティネーションで共通)、
shはデスティネーションオペランドの指定フィールド
である。I−formatの即位のサイズは、デスティ
ネーション側のオペランドのサイズと共通に8.16.
32ビツトとなり、ゼロ拡張、符号拡張は行なわれない
。
−format)である。扇はオペランドサイズの指定
フィールド(ソース、ディスティネーションで共通)、
shはデスティネーションオペランドの指定フィールド
である。I−formatの即位のサイズは、デスティ
ネーション側のオペランドのサイズと共通に8.16.
32ビツトとなり、ゼロ拡張、符号拡張は行なわれない
。
(1,2)−膜形1オペランド命令
第13図は1オペランド命令の一役形フオーマツ) (
Gl−format )である。践はオペランドサイズ
の指定フィールドである。一部の61−format命
令では、Eaの拡張部以外にも拡張部がある。また、爪
を使用しない命令もある。
Gl−format )である。践はオペランドサイズ
の指定フィールドである。一部の61−format命
令では、Eaの拡張部以外にも拡張部がある。また、爪
を使用しない命令もある。
(1,3)−膜形2オペランド命令
第14図から第16図は2オペランド命令の一役形フオ
ーマットである。このフォーマットに含まれるのは、8
ビツトで指定する一役形アドレッシングモードのオペラ
ンドが最大2つ存在する命令である。オペランドの総数
自体は3つ以上になる場合がある。
ーマットである。このフォーマットに含まれるのは、8
ビツトで指定する一役形アドレッシングモードのオペラ
ンドが最大2つ存在する命令である。オペランドの総数
自体は3つ以上になる場合がある。
第14図は第一オペランドがメモリ睨みだしを必要とす
る命令のフォーマット(G−format )である。
る命令のフォーマット(G−format )である。
EaMはデスティネーションオペランドの指定フィール
ド、朋はデスティネーションオペランドサイズの指定フ
ィールド、EaRはソースオペランド指定フィールド、
RRはソースオペランドサイズの指定フィールドである
。一部のG format命令では、EaMやEaR
の拡張部以外にも拡張部がある。
ド、朋はデスティネーションオペランドサイズの指定フ
ィールド、EaRはソースオペランド指定フィールド、
RRはソースオペランドサイズの指定フィールドである
。一部のG format命令では、EaMやEaR
の拡張部以外にも拡張部がある。
第15図は第一オペランドが8ビツト即値の命令のフォ
ーマット(E−format )である。EaMはデス
ティネーションオペランドの指定フィールド、酉はデス
ティネーションオペランドサイズの指定フィールド、#
はソースオペランド値である。
ーマット(E−format )である。EaMはデス
ティネーションオペランドの指定フィールド、酉はデス
ティネーションオペランドサイズの指定フィールド、#
はソースオペランド値である。
E−formatと1−formatとは機能的には似
たものであるが、考え方の点では大きく違っている。
たものであるが、考え方の点では大きく違っている。
E−formatはあくまでも2オペランド−膜形(G
−format)の派生形であり、ソースオペランドの
サイズが8ビツト固定、ディスティネーションオペラン
ドのサイズがs/16/32ビツトから選択となってい
る。つまり、異種サイズ間の演算を前提とし、デスティ
ネーションオペランドのサイズに合わせて8ビツトのソ
ースオペランドがゼロ拡張または符号拡張される。一方
1a I−farmatは、特に転送命令、比較命令で
頻度の多い即値のパターンを短縮形にしたものであり、
ソースオペランドとディスティネーションオペランドの
サイズは等しい。
−format)の派生形であり、ソースオペランドの
サイズが8ビツト固定、ディスティネーションオペラン
ドのサイズがs/16/32ビツトから選択となってい
る。つまり、異種サイズ間の演算を前提とし、デスティ
ネーションオペランドのサイズに合わせて8ビツトのソ
ースオペランドがゼロ拡張または符号拡張される。一方
1a I−farmatは、特に転送命令、比較命令で
頻度の多い即値のパターンを短縮形にしたものであり、
ソースオペランドとディスティネーションオペランドの
サイズは等しい。
第16図は第一オペランドがアドレス計算のみの命令の
フォーマット(GA −format )である。Ea
Wはデスティネーションオペランドの指定フィールド、
鼎はデスティネーションオペランドサイズの指定フィー
ルド、EaAはソースオペランドの指定フィールドであ
る。ソースオペランドとしては実行アドレスの計算結果
自体が使用される。
フォーマット(GA −format )である。Ea
Wはデスティネーションオペランドの指定フィールド、
鼎はデスティネーションオペランドサイズの指定フィー
ルド、EaAはソースオペランドの指定フィールドであ
る。ソースオペランドとしては実行アドレスの計算結果
自体が使用される。
第17図はショートブランチ命令のフォーマットである
。ccccは分岐条件指定フィールド、disp:8は
ジャンプ先との変位指定フィールド、本発明のデータ処
理装置では8ビツトで変位を指定する場合には、ビット
パターンでの指定値を2倍して変位値とする。
。ccccは分岐条件指定フィールド、disp:8は
ジャンプ先との変位指定フィールド、本発明のデータ処
理装置では8ビツトで変位を指定する場合には、ビット
パターンでの指定値を2倍して変位値とする。
(1,a)アドレッシングモード
本発明のデータ処理装置のアドレッシングモード指定方
法には、レジスタを含めて6ビツトで指定する短縮形と
、8ビツトで指定する一役形がある。
法には、レジスタを含めて6ビツトで指定する短縮形と
、8ビツトで指定する一役形がある。
未定義のアドレッシングモードを指定した場合や、意味
的に考えて明らかにおかしなアドレッシングモードの組
み合わせを指定した場合には、未定義命令を実行した場
合と同じく予約命令例外を発生し、例外処理を起動する
。
的に考えて明らかにおかしなアドレッシングモードの組
み合わせを指定した場合には、未定義命令を実行した場
合と同じく予約命令例外を発生し、例外処理を起動する
。
これに該当するのは、デスティネーションが即値モード
の場合、アドレス計算を伴うべきアドレシングモード指
定フィールドで即値モードを使用した場合などである。
の場合、アドレス計算を伴うべきアドレシングモード指
定フィールドで即値モードを使用した場合などである。
第18図から第28図に示すフォーマットの図中で使わ
れる記号つぎの通りである。
れる記号つぎの通りである。
Rn レジスタ指定
(Sh) 6ビツトの短縮形アドレッシングモードでの
指定方法 (Ea) 8ビツトの一船形アドレッシングモードで
の指定方法 フォーマット図で点線で囲まれた部分は、拡張部を示す
。
指定方法 (Ea) 8ビツトの一船形アドレッシングモードで
の指定方法 フォーマット図で点線で囲まれた部分は、拡張部を示す
。
(1,4,1)基本アドレッシングモード本発明のデー
タ処理装置は様々なアドレッシングモードをサポートす
る。そのうち、本発明のデータ処理装置でサポートする
基本アドレッシングモードには、レジスタ直接モード、
レジスタ間接モード、レジスタ相対間接モード、即値モ
ード、絶対モード、PC相対間接モード、スタックポツ
プモード、スタックブツシュモードがある。
タ処理装置は様々なアドレッシングモードをサポートす
る。そのうち、本発明のデータ処理装置でサポートする
基本アドレッシングモードには、レジスタ直接モード、
レジスタ間接モード、レジスタ相対間接モード、即値モ
ード、絶対モード、PC相対間接モード、スタックポツ
プモード、スタックブツシュモードがある。
レジスタ直接モードは0、レジスタの内容をそのままオ
ペランドとする。フォーマットは第18図に示す。Rn
は汎用レジスタの番号を示す。
ペランドとする。フォーマットは第18図に示す。Rn
は汎用レジスタの番号を示す。
レジスタ間接モードは、レジスタの内容をアドレスとす
るメモリの内容をオペランドとする。フォーマットは第
19図に示す。Rnは汎用レジスタの番号を示す。
るメモリの内容をオペランドとする。フォーマットは第
19図に示す。Rnは汎用レジスタの番号を示す。
レジスタ相対間接は、ディスプレースメント値が16ビ
ツトか32ビツトかにより、2種類ある。それぞれ、レ
ジスタの内容に16ビツトまたは32ビツトのディスプ
レースメント値を加えた値をアドレスとするメモリの内
容をオペランドとする。フォーマットは第20図に示す
。Rnは汎用レジスタの番号を示す。disp:16と
disp:32は、それぞれ、16ビツトのディスプレ
ースメント値、32ビツトのディスプレースメント値を
示す。ディスプレースメント値は符号付きとして扱う。
ツトか32ビツトかにより、2種類ある。それぞれ、レ
ジスタの内容に16ビツトまたは32ビツトのディスプ
レースメント値を加えた値をアドレスとするメモリの内
容をオペランドとする。フォーマットは第20図に示す
。Rnは汎用レジスタの番号を示す。disp:16と
disp:32は、それぞれ、16ビツトのディスプレ
ースメント値、32ビツトのディスプレースメント値を
示す。ディスプレースメント値は符号付きとして扱う。
即値モードは、命令コード中で指定されるビットパタン
をそのまま2進数と見なしてオペランドする。フォーマ
ットは第21図に示す。imm dataは即値を示す
。imm dataのサイズは、オペランドサイズとし
て命令中で指定される。
をそのまま2進数と見なしてオペランドする。フォーマ
ットは第21図に示す。imm dataは即値を示す
。imm dataのサイズは、オペランドサイズとし
て命令中で指定される。
絶対モードは、アドレス値が16ビツトで示されるか3
2ビツトで示されるかにより2種類ある。それぞれ、命
令コード中で指定される16ビツトまたは32ビツトの
ビットパタンをアドレスとしたメモリの内容をオペラン
ドとする。フォーマットは第22図に示す。abs :
16とabs:32は、それぞれ、16ビツト、32ビ
ツトのアドレス値を示す。abs:16でアドレスが示
されるときは指定されたアドレス値を32ビツトに符号
拡張するっ PCC対間上モード、ディスプレースメント値が16ビ
ツトか32ビツトかにより、2種類ある。それぞれ、プ
ログラムカウンタの内容に16ビツトまたは32ビツト
のディスプレースメント値を加えた値をアドレスとする
メモリの内容をオペランドとする。フォーマットは第2
3図に示す。disp:16とdisp:32は、それ
ぞれ、16ビツトのディスプレースメント値、32ビツ
トのディスプレースメント値を示す。ディスプレースメ
ント値は符号付きとして扱う。PC相対間接モードにお
いて参照されるプログラムカウンタの値は、そのオペラ
ンドを含む命令の先頭アドレスである。多段間接アドレ
シングモードにおいてプログラムカウンタの値が参照さ
れる場合にも、同じように命令先頭のアドレスをPC相
対の基準値として使用する。
2ビツトで示されるかにより2種類ある。それぞれ、命
令コード中で指定される16ビツトまたは32ビツトの
ビットパタンをアドレスとしたメモリの内容をオペラン
ドとする。フォーマットは第22図に示す。abs :
16とabs:32は、それぞれ、16ビツト、32ビ
ツトのアドレス値を示す。abs:16でアドレスが示
されるときは指定されたアドレス値を32ビツトに符号
拡張するっ PCC対間上モード、ディスプレースメント値が16ビ
ツトか32ビツトかにより、2種類ある。それぞれ、プ
ログラムカウンタの内容に16ビツトまたは32ビツト
のディスプレースメント値を加えた値をアドレスとする
メモリの内容をオペランドとする。フォーマットは第2
3図に示す。disp:16とdisp:32は、それ
ぞれ、16ビツトのディスプレースメント値、32ビツ
トのディスプレースメント値を示す。ディスプレースメ
ント値は符号付きとして扱う。PC相対間接モードにお
いて参照されるプログラムカウンタの値は、そのオペラ
ンドを含む命令の先頭アドレスである。多段間接アドレ
シングモードにおいてプログラムカウンタの値が参照さ
れる場合にも、同じように命令先頭のアドレスをPC相
対の基準値として使用する。
スタックポツプモールドはスタックポインタ(SP)の
内容をアドレスとするメモリの内容をオペランドとする
。オペランドアクセス後、?をオペランドサイズだけイ
ンクリメントする。例えば、32ビツトデータを扱う時
には、オペランドアクセス後にSPが+4だけ更新され
る。B、HのサイズΦオペランドに対するスタフ・クポ
ップモードの指定も可能であり、それぞれSPが+1.
+2だけ更新される。フォーマットは第24図に示す。
内容をアドレスとするメモリの内容をオペランドとする
。オペランドアクセス後、?をオペランドサイズだけイ
ンクリメントする。例えば、32ビツトデータを扱う時
には、オペランドアクセス後にSPが+4だけ更新され
る。B、HのサイズΦオペランドに対するスタフ・クポ
ップモードの指定も可能であり、それぞれSPが+1.
+2だけ更新される。フォーマットは第24図に示す。
オペランドに対しスタックポツプモードが意味を持たな
いものに対しては、予約命令例外を発生する。具体的に
予約命令例外となるのは、writ6オペランド、re
ad−modify−writeオペランドに対するス
タックポツプモード指定である。
いものに対しては、予約命令例外を発生する。具体的に
予約命令例外となるのは、writ6オペランド、re
ad−modify−writeオペランドに対するス
タックポツプモード指定である。
スタックブツシュモードはSPの内容をオペランドサイ
ズだけデクリメントした内容をアドレスとするメモリの
内容をオペランドとする。スタックブツシュモードでは
オペランドアクセス前にSPがデクリメントされる。例
えば、32ビツトデータを扱う時には、オペランドアク
セス前にSPが−4だけ更新される。B、Hのサイズの
オペランドに対するスタックブツシュモードの指定も可
能であり、それぞれSPが−1,−2だけ更新される。
ズだけデクリメントした内容をアドレスとするメモリの
内容をオペランドとする。スタックブツシュモードでは
オペランドアクセス前にSPがデクリメントされる。例
えば、32ビツトデータを扱う時には、オペランドアク
セス前にSPが−4だけ更新される。B、Hのサイズの
オペランドに対するスタックブツシュモードの指定も可
能であり、それぞれSPが−1,−2だけ更新される。
フォーマットは第25図に示す。オペランドに対してス
タックブツシュモードが意味を持たないものに対しては
、予約命令例外を発生する。具体的に予約命令例外とな
るのは、readオペランド、read−modify
−write オペランドに対するスタックブツシュ
モード指定である。
タックブツシュモードが意味を持たないものに対しては
、予約命令例外を発生する。具体的に予約命令例外とな
るのは、readオペランド、read−modify
−write オペランドに対するスタックブツシュ
モード指定である。
(1,4,2)多段間接アドレッシングモード複雑なア
ドレッシングも、基本的には加算と間接参照の組み合わ
せに分解することができる。したがって、加算参照のオ
ペレーションをアドレッシングのプリミティブとして与
えておき、それを任意に組み合わせることができれば、
どんな複雑なアドレッシングモードをも実現することが
できる。本発明のデータ処理装置の多段間接アドレッシ
ングモードはこのような考え方にたったアドレッシング
モードである。複雑なアドレッシングモードは、モジュ
ール間のデータ参照やAI言語の処処系に特に有用であ
る。
ドレッシングも、基本的には加算と間接参照の組み合わ
せに分解することができる。したがって、加算参照のオ
ペレーションをアドレッシングのプリミティブとして与
えておき、それを任意に組み合わせることができれば、
どんな複雑なアドレッシングモードをも実現することが
できる。本発明のデータ処理装置の多段間接アドレッシ
ングモードはこのような考え方にたったアドレッシング
モードである。複雑なアドレッシングモードは、モジュ
ール間のデータ参照やAI言語の処処系に特に有用であ
る。
多段間接アドレッシングモードを指定するとき、基本ア
ドレッシングモード指定フィールドでは、レジスタベー
ス多段間接モード、PCベース多段間接モード、絶対ベ
ース多段間接モードの3種類の指定方法のうちいずれか
1つを指定する。
ドレッシングモード指定フィールドでは、レジスタベー
ス多段間接モード、PCベース多段間接モード、絶対ベ
ース多段間接モードの3種類の指定方法のうちいずれか
1つを指定する。
レジスタベース多段間接モードはレジスタの値を、拡張
する多段間接アドレッシングのベース値とするアドレッ
シングモードである。フォーマットは第26図に示す。
する多段間接アドレッシングのベース値とするアドレッ
シングモードである。フォーマットは第26図に示す。
Rnは汎用レジスタの番号を示す。
PCベース多段間接モードはプログラムカウンタの値を
拡張する多段間接アドレッシングのベース値とするアド
レッシングモードである。フォーマットは第27図に示
す。
拡張する多段間接アドレッシングのベース値とするアド
レッシングモードである。フォーマットは第27図に示
す。
絶対ベース多段間接モードはゼロを、拡張する多段間接
アドレッシングのベース値とするアドレッシングモード
である。フォーマットは第28図に示す。
アドレッシングのベース値とするアドレッシングモード
である。フォーマットは第28図に示す。
拡張する多段間接モード指定フィールドは、16ビツト
を単位としており、これを任意回繰り返す。
を単位としており、これを任意回繰り返す。
1段の多段間接モードにより、ディスプレースメントの
加算、インデクスレジスタのスケーリング(×1、×2
、×4、×8)と加算、メモリの間接参照、を行なう。
加算、インデクスレジスタのスケーリング(×1、×2
、×4、×8)と加算、メモリの間接参照、を行なう。
多段間接モードのフォーマットは第29図で示す。各フ
ィールドは以下に示す意味をもつ。
ィールドは以下に示す意味をもつ。
E=0:多段間接モード継続
E=1ニアドレス計算終了
tmp −−> address of oper
and■−0:メモリ間接参照なし tmp+disp+Rx * 5cale −−> t
mp■−1=メモリ間接参照あり mem(tmp+disp+Rx * 5cale)=
=> tmpM=O: <Rx> Weインデクスとし
て使用M−1:特殊なインデクス <Rx> −0インデクス値を加算しない(RX−0) <RX>−1プログラムカウンタをインデクス値として
使用 (Rx−PC) <Rx>=2〜reserved D−a:多段間接モード中の4ビツトのフィールドd4
の値を4倍してディスプレースメント値とし、これを加
算する。d4は符号付きとして扱い、オペランドのサイ
ズとは関係なく必ず4倍して使用する。
and■−0:メモリ間接参照なし tmp+disp+Rx * 5cale −−> t
mp■−1=メモリ間接参照あり mem(tmp+disp+Rx * 5cale)=
=> tmpM=O: <Rx> Weインデクスとし
て使用M−1:特殊なインデクス <Rx> −0インデクス値を加算しない(RX−0) <RX>−1プログラムカウンタをインデクス値として
使用 (Rx−PC) <Rx>=2〜reserved D−a:多段間接モード中の4ビツトのフィールドd4
の値を4倍してディスプレースメント値とし、これを加
算する。d4は符号付きとして扱い、オペランドのサイ
ズとは関係なく必ず4倍して使用する。
D−1:多段間接モードの拡張部で指定されたdisp
x (16/32ビツト)をディスプレースメント値と
し、これを加算する。
x (16/32ビツト)をディスプレースメント値と
し、これを加算する。
拡張部のサイズはd4フィールドで指定する。
d4−00o1 dispx 1.t16ビツトa4
−ooto dispxは32ビットXX:インデク
スのスケール(scale−1/2/4/8)プログラ
ムカウンタに対して×2、×4、×8のスケーリングを
行なった場合には、その段の処理終了後の中間値(tm
p )として、不定値が入る。この多段間接モードによ
って得られる実効アドレスは予測できない値となるか、
例外は発生しない。プログラムカウンタに対するスケー
リングの指定は行なってはいけない。
−ooto dispxは32ビットXX:インデク
スのスケール(scale−1/2/4/8)プログラ
ムカウンタに対して×2、×4、×8のスケーリングを
行なった場合には、その段の処理終了後の中間値(tm
p )として、不定値が入る。この多段間接モードによ
って得られる実効アドレスは予測できない値となるか、
例外は発生しない。プログラムカウンタに対するスケー
リングの指定は行なってはいけない。
多段間接モードによる命令フォーマットのバリエーショ
ンを第30図、第31図に示す。第30図は多段間接モ
ードが継続するか終了するかのバリエーションを示す。
ンを第30図、第31図に示す。第30図は多段間接モ
ードが継続するか終了するかのバリエーションを示す。
第31図はディスプレースメントのサイズのバリエーシ
ョンを示す。
ョンを示す。
任意段数の多段間接モードが利用できれば、コンパイラ
の中で段数による場合分けが不要になるので、コンパイ
ラの負担が軽減されるというメリットがある。多段の間
接参照の頻度が非常に少ないとしても、コンパイラとし
ては必ず正しいコードを発生できなければならないから
である。このため、フォーマット上、任意の段数が可能
になっている。
の中で段数による場合分けが不要になるので、コンパイ
ラの負担が軽減されるというメリットがある。多段の間
接参照の頻度が非常に少ないとしても、コンパイラとし
ては必ず正しいコードを発生できなければならないから
である。このため、フォーマット上、任意の段数が可能
になっている。
(1,S)例外処理
本発明のデータ処理装置はソフトウェア負荷の軽減のた
め、豊富な例外処理機能をもつ、本発明しデータ処理装
置では例外処理は、命令処理を再実行するもの(例外)
、命令処理を完了するもの(トラップ)、割込の3種類
に分けて名称をつけている。また本発明のデータ処理装
置では、この3種の例外処理と、システム障害を総称し
てEITと呼ぶ。
め、豊富な例外処理機能をもつ、本発明しデータ処理装
置では例外処理は、命令処理を再実行するもの(例外)
、命令処理を完了するもの(トラップ)、割込の3種類
に分けて名称をつけている。また本発明のデータ処理装
置では、この3種の例外処理と、システム障害を総称し
てEITと呼ぶ。
(2)機能ブロックの溝成
第2図に本発明のデータ処理装置のブロック図を示す。
本発明のデータ処理装置の内部を機能的に大きく分ける
と、命令フェッチ部@0、命令デコード部閏、PC計算
部bJ1オペランドアドレス計算部−、マイクロROM
部碩、データ演算郷関、外部パスインターフェイス部優
ηに分かれる。第2図では、その他にCPU外部にアド
レスを出力するアドレス出力回路FilとCPU外部と
データの入出力を行うデータ入出力回路6特を他の機能
ブロック部と分けて示した。
と、命令フェッチ部@0、命令デコード部閏、PC計算
部bJ1オペランドアドレス計算部−、マイクロROM
部碩、データ演算郷関、外部パスインターフェイス部優
ηに分かれる。第2図では、その他にCPU外部にアド
レスを出力するアドレス出力回路FilとCPU外部と
データの入出力を行うデータ入出力回路6特を他の機能
ブロック部と分けて示した。
(2,1)命令フェッチ部
命令フェッチ部@すにはブランチバッファ、命令キュー
とその制御部などがあり、次にフェッチすべき命令のア
ドレスを決定して、ブランチバッファやCPU外部めメ
モリから命令をフェッチする。
とその制御部などがあり、次にフェッチすべき命令のア
ドレスを決定して、ブランチバッファやCPU外部めメ
モリから命令をフェッチする。
ブランチバッファへの命令登録も行う。
ブランチバッファは小規模であるためセレクテイブキャ
ッシュとして動作する。ブランチバッファの動作の詳細
は特願昭61−202041で詳しく述べられている。
ッシュとして動作する。ブランチバッファの動作の詳細
は特願昭61−202041で詳しく述べられている。
−
次にフェッチすべき命令のアドレスは命令キューに入力
すべき命令のアドレスとして専用のカウンタで計算され
る。分岐やジャンプが起きたときには、新たな命令のア
ドレスが、PC計算部關やデータ演算部−より転送され
てくる。
すべき命令のアドレスとして専用のカウンタで計算され
る。分岐やジャンプが起きたときには、新たな命令のア
ドレスが、PC計算部關やデータ演算部−より転送され
てくる。
CPU外部のメモリから命令をフェッチするときは、外
部バスインターフェイス部旬を通して、フェッチすべき
命令のアドレスをアドレス出力回路−からCPU外部に
出力し、データ入出力回路−をから命令コードをフェッ
チする。
部バスインターフェイス部旬を通して、フェッチすべき
命令のアドレスをアドレス出力回路−からCPU外部に
出力し、データ入出力回路−をから命令コードをフェッ
チする。
バッファリングした命令コードのうち、命令デコード部
闘で次にデコードすべき命令コードを命令デコード部ら
2に出力する。
闘で次にデコードすべき命令コードを命令デコード部ら
2に出力する。
(2,2)命令デコード部
、命令デコード部匈では基本的に16ビツト(ハーフワ
ード)単位に命令コードをデコードする。このブロック
には第1ハーフワードに含まれるオペコードをデコード
するFHWデコーダ、第2、第3ハーフワードに含まれ
るオペコードをデコードするNFHWデコーダ、アドレ
ッシングモードをデコードするアドレッシングモードデ
コーダが含まれる。
ード)単位に命令コードをデコードする。このブロック
には第1ハーフワードに含まれるオペコードをデコード
するFHWデコーダ、第2、第3ハーフワードに含まれ
るオペコードをデコードするNFHWデコーダ、アドレ
ッシングモードをデコードするアドレッシングモードデ
コーダが含まれる。
さらにFl(WデコーダやNFHWデコーダの出力をさ
らにデコードして、マイクロROMのエンドリアドレス
を計算するデコーダ2、条件分岐命令の分岐予測を行う
分岐予測機構、オペランドアドレス計算のときのパイプ
ラインコンフリクトをチエツクするアドレス計算コンフ
リクトチエツク機構も含まれる。
らにデコードして、マイクロROMのエンドリアドレス
を計算するデコーダ2、条件分岐命令の分岐予測を行う
分岐予測機構、オペランドアドレス計算のときのパイプ
ラインコンフリクトをチエツクするアドレス計算コンフ
リクトチエツク機構も含まれる。
命令フェッチ部より入力された命令コードを2クロツク
につきθ〜6バイトのデコードする。デコード結果のう
ち、データ演算部−での演算に関・する情報がマイクロ
ROM f561に、オペランドアドレス計算に関係す
る情報がオペランドアドレス計算部(財)に、PC計算
に関係する情報がpc計算部關に、それぞれ出力される
。
につきθ〜6バイトのデコードする。デコード結果のう
ち、データ演算部−での演算に関・する情報がマイクロ
ROM f561に、オペランドアドレス計算に関係す
る情報がオペランドアドレス計算部(財)に、PC計算
に関係する情報がpc計算部關に、それぞれ出力される
。
(2,3)マイクロROM部
マイクロROM部65には主にデータ演算部−を制御す
るマイクロプログラムが格納されているマイクロROM
、マイクロシーケンサ、マイクロ命令テコーダなどが
含まれる。マイクロ命令はマイクロROMから2クロツ
クに1度読み出される。マイクロシーケンサはマイクロ
プログラムで示されるシーケンス処理の他に、例外、割
込、トラップ(この3つをあわせてEITと呼ぶ)の処
理をハードウェア的に受付ける。またマイクロROM部
はストアバッファの管理も行う。マイクロROM部には
命令コードに依存しない割込みや演算実行結果によるフ
ラッグ情報と、デコーダ2の出力など命令デコード部の
出力が入力される。マイクロデコーダの出力は主にデー
タ演算部間に対して出力されるが、ジャンプ命令の実行
による他の先行処理中止情報など一部の情報は他のブロ
ックへも出力される。
るマイクロプログラムが格納されているマイクロROM
、マイクロシーケンサ、マイクロ命令テコーダなどが
含まれる。マイクロ命令はマイクロROMから2クロツ
クに1度読み出される。マイクロシーケンサはマイクロ
プログラムで示されるシーケンス処理の他に、例外、割
込、トラップ(この3つをあわせてEITと呼ぶ)の処
理をハードウェア的に受付ける。またマイクロROM部
はストアバッファの管理も行う。マイクロROM部には
命令コードに依存しない割込みや演算実行結果によるフ
ラッグ情報と、デコーダ2の出力など命令デコード部の
出力が入力される。マイクロデコーダの出力は主にデー
タ演算部間に対して出力されるが、ジャンプ命令の実行
による他の先行処理中止情報など一部の情報は他のブロ
ックへも出力される。
(2,4)オペランドアドレス計算部
オペランドアドレス計算部(財)は、命令デコード部霞
のアドレスデコーダなどから出力されたオペランドアド
レス計算に関係する情報によりハードワイヤード制御さ
れる。このブロックではオペランドのアドレス計算に関
するほとんどの処理が行われる。メモリ間接アドレシン
グのためのメモリアクセスのアドレスやオペランドアド
レスがメモリにマツプされたI10領域に入るかどうか
のチエツクも行われる。
のアドレスデコーダなどから出力されたオペランドアド
レス計算に関係する情報によりハードワイヤード制御さ
れる。このブロックではオペランドのアドレス計算に関
するほとんどの処理が行われる。メモリ間接アドレシン
グのためのメモリアクセスのアドレスやオペランドアド
レスがメモリにマツプされたI10領域に入るかどうか
のチエツクも行われる。
アドレス計算結果は外部バスインターフェイス部闘に送
られる。アドレス計算に必要な汎用レジスタやプログラ
ムカウンタの値はデータ演算部より入力される。
られる。アドレス計算に必要な汎用レジスタやプログラ
ムカウンタの値はデータ演算部より入力される。
メモリ間接アドレッシングを行うときは外部バスインタ
ーフェイス部鋪を通してアドレス出力回路間からCPC
外部に参照すべきメモリアドレスを出力し、データ入出
力部Inから入力された間接アドレス値を命令デコード
部霞をそのまま通過させてフェッチする。
ーフェイス部鋪を通してアドレス出力回路間からCPC
外部に参照すべきメモリアドレスを出力し、データ入出
力部Inから入力された間接アドレス値を命令デコード
部霞をそのまま通過させてフェッチする。
(2,5)PC計算部
PC計算部關は命令デコード部M ;)ら出力されるP
C計算に関係する情報でハードワイヤードに制御され、
命令のPC値を計算する。本特許のデータ処理装置は可
変長命令セットを持っており、命令をデコードしてみな
いとその命令の長さが判らない。
C計算に関係する情報でハードワイヤードに制御され、
命令のPC値を計算する。本特許のデータ処理装置は可
変長命令セットを持っており、命令をデコードしてみな
いとその命令の長さが判らない。
PC計算部關は、命令デコード部Mから出力される命令
長をデコード中の命令のPC値に加算することによりつ
ぎの命令のPC値を作り出す。また、命令デコード郡部
が、分岐命令をデコードしてデコード段階での分岐を指
示したときは命令長の代、わりに分岐変位を分岐命令の
pc値に加算することにより分岐先命令のPC値を計算
する。分岐命令に対して命令デコード段階で分岐を行う
ことを本発明のデータ処理装置ではブリブランチと呼ぶ
。ブリブランチの方法については特願昭61−2045
00と特願昭61−200557で詳しく述べられてい
る。
長をデコード中の命令のPC値に加算することによりつ
ぎの命令のPC値を作り出す。また、命令デコード郡部
が、分岐命令をデコードしてデコード段階での分岐を指
示したときは命令長の代、わりに分岐変位を分岐命令の
pc値に加算することにより分岐先命令のPC値を計算
する。分岐命令に対して命令デコード段階で分岐を行う
ことを本発明のデータ処理装置ではブリブランチと呼ぶ
。ブリブランチの方法については特願昭61−2045
00と特願昭61−200557で詳しく述べられてい
る。
PCC計算8喝j計算結果は各命令のPC値として命令
のデコード結果とともに出力されるほか、ブリブランチ
時には、次にデコードすべき命令のアドレスとして命令
フェッチ部に出力される。
のデコード結果とともに出力されるほか、ブリブランチ
時には、次にデコードすべき命令のアドレスとして命令
フェッチ部に出力される。
また、次に命令デコード部闘でデコードされる命令の分
岐予測のためのアドレスにも使用される。
岐予測のためのアドレスにも使用される。
分岐予測の方法については特願昭62−8394で詳し
く述べられている。
く述べられている。
(2,6)データ演算部
データ演算部−はマイクロプログラムにより制御され、
マイクロROM部飽すの出力情報に従い、各命令の機能
を実現するに必要な演算をレジスタと演算器で実行する
。演算対象となるオペランドが一アドレスや即値の場合
は、オペランドアドレス計算部(財)で計算されたアド
レスや即値を外部バスインターフェイス部f571を通
過させて得る。また、演算対象となるオペランドがCP
U外部のメモリにあるデータの場合は、アドレス計算部
−で計算されたアドレスをバスヂンターフエイス部φη
がアドレス出力回路−から出力して、CPU外部のメモ
リからフェッチしたオペランドをデータ入出力回路−か
ら得る。
マイクロROM部飽すの出力情報に従い、各命令の機能
を実現するに必要な演算をレジスタと演算器で実行する
。演算対象となるオペランドが一アドレスや即値の場合
は、オペランドアドレス計算部(財)で計算されたアド
レスや即値を外部バスインターフェイス部f571を通
過させて得る。また、演算対象となるオペランドがCP
U外部のメモリにあるデータの場合は、アドレス計算部
−で計算されたアドレスをバスヂンターフエイス部φη
がアドレス出力回路−から出力して、CPU外部のメモ
リからフェッチしたオペランドをデータ入出力回路−か
ら得る。
演算器としてはALU 、バレルシフタ、プライオリテ
ィエンコーダやカウンタ、シフトレジスタなどがある。
ィエンコーダやカウンタ、シフトレジスタなどがある。
レジスタと主な演算器の間は3バスで結合すれており、
1つのレジスタ間演算を指示する1マイクロ命令を2ク
ロツクサイクルで処理する。
1つのレジスタ間演算を指示する1マイクロ命令を2ク
ロツクサイクルで処理する。
データ演算のときCPU外部のメモリをアクセスする必
要かある時はマイクロプログラムの指示により外部バス
インターフェイス部i5′?)を通してアドレス出力回
路−からアドレスをCPU外部に出力し、データ入出力
回路−を通して目的のデータをフェッチする。
要かある時はマイクロプログラムの指示により外部バス
インターフェイス部i5′?)を通してアドレス出力回
路−からアドレスをCPU外部に出力し、データ入出力
回路−を通して目的のデータをフェッチする。
CPU 外部のメモリにデータをストアするときは外部
バスインターフェイス部bηを通してアドレス出力回路
[有]樽よりアドレスを出力すると同時に、データ入出
力回路191からデータをCPU外部に出力する。オペ
ランドストアを効率的に行うためデータ演算部−には4
バイトのストアバッファがある。
バスインターフェイス部bηを通してアドレス出力回路
[有]樽よりアドレスを出力すると同時に、データ入出
力回路191からデータをCPU外部に出力する。オペ
ランドストアを効率的に行うためデータ演算部−には4
バイトのストアバッファがある。
ジャンプ命令の処理や例外処理などを行って新たな命令
アドレスをデータ演算部−が得たときはこれを命令フェ
ッチ部(5IlとPC計算部−に出力する。
アドレスをデータ演算部−が得たときはこれを命令フェ
ッチ部(5IlとPC計算部−に出力する。
(2,7)外部ハスインターフェイス部外部バスインタ
ーフェイス部るηは本特許のデータ処理装置の外部バス
での通信を制御する。メモリのアクセスはすべてクロッ
ク同期で行われ、最小2クロックサイクルで行うことが
できる。
ーフェイス部るηは本特許のデータ処理装置の外部バス
での通信を制御する。メモリのアクセスはすべてクロッ
ク同期で行われ、最小2クロックサイクルで行うことが
できる。
メモリに対するアクセス要求は命令フェッチ部@υ、ア
ドレス計算部−、データ演算部6Qから独立ニ生シる。
ドレス計算部−、データ演算部6Qから独立ニ生シる。
。外部バスインターフェイス部わηはこれらのメモリア
クセス要求を調停する。さらにメモリとCPUを侍ぶデ
ータバスサイズである32ビツト(ワード)の整置境界
をまたぐメモリ番地にあるデータのアクセスは、このブ
ロック内で自動的にワード境界をまたぐことを検知して
、2回のメモリアクセスに分解して行う。
クセス要求を調停する。さらにメモリとCPUを侍ぶデ
ータバスサイズである32ビツト(ワード)の整置境界
をまたぐメモリ番地にあるデータのアクセスは、このブ
ロック内で自動的にワード境界をまたぐことを検知して
、2回のメモリアクセスに分解して行う。
ブリフェッチするオペランドとストアするオペランドが
重なる場合の、コンフリクト防止処理やストアオペラン
ドからフェッチオペランドへのバイパス処理も行う。
重なる場合の、コンフリクト防止処理やストアオペラン
ドからフェッチオペランドへのバイパス処理も行う。
(3)パイプライン機構
本発明のデータ処理装置のパイプライン処理は第3図に
示す構成となる。命令のブリフェッチを行う命令フェッ
チステージ(IFステデー<1′D)、命令のデコード
を行うデコードステージ(Dステージ(イ)〕、オペラ
ンドのアドレス計算を行うオペランドアドレス計算ステ
ージ(Aステージ瞥)、マイクロROMアクセス(特に
Rステージ国と呼ぶ)とオペランドのブリフェッチ(特
にOFステデーCηと呼ぶ)を行うオペランドフェッチ
ステージ(Fステージl34)、命令の実行を行う実行
ステージ(Eステージ−)の5段構成をパイプライン処
理の基本とする。Eステージ側では1段のストアバッフ
ァがあるほか、高機能命令の一部は命令実行自体をパイ
プライン化するため、実際には5段以上のパイプライン
処理効果がある。
示す構成となる。命令のブリフェッチを行う命令フェッ
チステージ(IFステデー<1′D)、命令のデコード
を行うデコードステージ(Dステージ(イ)〕、オペラ
ンドのアドレス計算を行うオペランドアドレス計算ステ
ージ(Aステージ瞥)、マイクロROMアクセス(特に
Rステージ国と呼ぶ)とオペランドのブリフェッチ(特
にOFステデーCηと呼ぶ)を行うオペランドフェッチ
ステージ(Fステージl34)、命令の実行を行う実行
ステージ(Eステージ−)の5段構成をパイプライン処
理の基本とする。Eステージ側では1段のストアバッフ
ァがあるほか、高機能命令の一部は命令実行自体をパイ
プライン化するため、実際には5段以上のパイプライン
処理効果がある。
各ステージは他のステージとは独立に動作し、理論上は
5つのステージが完全に独立動作する。
5つのステージが完全に独立動作する。
各ステージは1回の処理を最小2クロックで行うことが
できる。従って理想的には2クロツクごとに次々とパイ
プライン処理が進行する。
できる。従って理想的には2クロツクごとに次々とパイ
プライン処理が進行する。
本発明のデータ処理装置にはメモリーメモリ間演算や、
メモリ間接アドレッシングなど、基本パイプライン処理
1回だけでは処理が行えない命令があるが、本発明のデ
ータ処理装置はこれらの処理に対してもなるべく均衡し
たパイプライン処理が行えるように設計されている。複
数のメモリオペランドをもつ命令に対してはメモリオペ
ランドの数をもとに、デコード段階で複数のパイプライ
ン処理単位(ステップコード)に分解してパイプライン
処理を行うのである。パイプライン処理単位の分解方法
に関しては特願昭61−236456で詳しく述べられ
ている。
メモリ間接アドレッシングなど、基本パイプライン処理
1回だけでは処理が行えない命令があるが、本発明のデ
ータ処理装置はこれらの処理に対してもなるべく均衡し
たパイプライン処理が行えるように設計されている。複
数のメモリオペランドをもつ命令に対してはメモリオペ
ランドの数をもとに、デコード段階で複数のパイプライ
ン処理単位(ステップコード)に分解してパイプライン
処理を行うのである。パイプライン処理単位の分解方法
に関しては特願昭61−236456で詳しく述べられ
ている。
1Fステージ01)からDステージ(至)に渡される情
報は命令コードそのものである。Dステージ(2)から
Aステージに渡される情報は命令で指定された演算に関
するもの(Dコード(ロ)と呼ぶ)と、オペランドのア
ドレス計算に関係するもの(Aコード働と呼ぶ)との2
つある。Aステージ(ハ)からFステージに渡される情
報はマイクロプログラムルーチンのエントリ番地やマイ
クロプログラムへのパラメータなどを含むRコード(至
)と、オペランドのアドレスとアクセス方法指示情報な
どを含むFコードとの2つである。Fステージ(財)か
らEステージ0均に渡される情報は演算制御情報と、リ
テラルなどを含むEコード(ハ)と、オペランドやオペ
ランドアドレスなどを含むSコード顛との2つである。
報は命令コードそのものである。Dステージ(2)から
Aステージに渡される情報は命令で指定された演算に関
するもの(Dコード(ロ)と呼ぶ)と、オペランドのア
ドレス計算に関係するもの(Aコード働と呼ぶ)との2
つある。Aステージ(ハ)からFステージに渡される情
報はマイクロプログラムルーチンのエントリ番地やマイ
クロプログラムへのパラメータなどを含むRコード(至
)と、オペランドのアドレスとアクセス方法指示情報な
どを含むFコードとの2つである。Fステージ(財)か
らEステージ0均に渡される情報は演算制御情報と、リ
テラルなどを含むEコード(ハ)と、オペランドやオペ
ランドアドレスなどを含むSコード顛との2つである。
Eステージ(至)以外のステージで検出されたFITは
そのコードがEステージ0四の到達するまではEIT処
理を起動しない。Eステージ瞥で処理されている命令の
みが実行段階の命令であり、IFステデー01)〜Fス
テデー(財)で処理されている命令はまだ実行段階に至
っていないのである。従ってEステージ(至)以外で検
出されたEITは検出したことをステップコード中に記
録して次のステージに伝えられるのみである。
そのコードがEステージ0四の到達するまではEIT処
理を起動しない。Eステージ瞥で処理されている命令の
みが実行段階の命令であり、IFステデー01)〜Fス
テデー(財)で処理されている命令はまだ実行段階に至
っていないのである。従ってEステージ(至)以外で検
出されたEITは検出したことをステップコード中に記
録して次のステージに伝えられるのみである。
(3,1)パイプライン処理単位
(3,1,1)命令コードフィールドの分類本発明のデ
ータ処理装置のパイプライン処理単位は命令セットのフ
ォーマットの特徴を利用して決定されている。(1)の
節で述べたように、本発明のデータ処理装置の命令は2
バイト単位の可変長命令であり、基本的には(2バイト
の命令基本部+O〜4バイトのアドレシング修飾部)を
1〜3回繰り返すことにより命令が構成されている。
ータ処理装置のパイプライン処理単位は命令セットのフ
ォーマットの特徴を利用して決定されている。(1)の
節で述べたように、本発明のデータ処理装置の命令は2
バイト単位の可変長命令であり、基本的には(2バイト
の命令基本部+O〜4バイトのアドレシング修飾部)を
1〜3回繰り返すことにより命令が構成されている。
命令基本部には多くの場合オペコード部とアドレッシン
グモード指定部があり、インデックスアドレシングやメ
モリ間接アドレッシングが必要なときにはアドレッシン
グ修飾部の代わりに(2バイトの多段間接モード指定部
+0〜4バイトのアドレシング修飾部)が任意値付く。
グモード指定部があり、インデックスアドレシングやメ
モリ間接アドレッシングが必要なときにはアドレッシン
グ修飾部の代わりに(2バイトの多段間接モード指定部
+0〜4バイトのアドレシング修飾部)が任意値付く。
また、命令により2または4バイトの命令固有の拡張部
が最後に付く。
が最後に付く。
命令基本部には命令のオペコード、基本アドレッシング
モード、リテラルなどが含まれる。アドレッシング修飾
部はディスプレースメント、絶対アドレス、即値、分岐
命令の変位のいずれかである。命令固有の拡張部にはレ
ジスタマツプ、1−format命令の即値指定などが
ある。第32図で本発明のデータ処理装置の基本的命令
フォーマットの特徴を示す。
モード、リテラルなどが含まれる。アドレッシング修飾
部はディスプレースメント、絶対アドレス、即値、分岐
命令の変位のいずれかである。命令固有の拡張部にはレ
ジスタマツプ、1−format命令の即値指定などが
ある。第32図で本発明のデータ処理装置の基本的命令
フォーマットの特徴を示す。
(3,1,2)ステップコードへの命令の分解本発明の
データ処理装置では上記の命令フォーマットの特徴を生
かしたパイプライン処理を行う。
データ処理装置では上記の命令フォーマットの特徴を生
かしたパイプライン処理を行う。
Dステージ(至)では(2バイトの命令基本部+0〜4
バイトのアドレッシング修飾部)、(多段間接モード指
定部子アドレッシング修飾部)または命令固有の拡張部
を1つのデコード単位として処理する。各回のデコード
結果をステップコードと呼び、Aステージ姫以降ではこ
のステップコードをパイプライン処理の単位としている
。ステップコードの数は命令ごとに固有であり、多段間
接モード指定を行わないとき、1つの命令は最小1個、
最大3個のステップコードに分かれる。多段間接モード
指定があればそれだけステップコードが増える。ただし
、これは後で述べるようにデコード段階のみである。
バイトのアドレッシング修飾部)、(多段間接モード指
定部子アドレッシング修飾部)または命令固有の拡張部
を1つのデコード単位として処理する。各回のデコード
結果をステップコードと呼び、Aステージ姫以降ではこ
のステップコードをパイプライン処理の単位としている
。ステップコードの数は命令ごとに固有であり、多段間
接モード指定を行わないとき、1つの命令は最小1個、
最大3個のステップコードに分かれる。多段間接モード
指定があればそれだけステップコードが増える。ただし
、これは後で述べるようにデコード段階のみである。
(3,1゜3)プログラムカウンタの管理本発明のデー
タ処理装置のパイプライン上に存在するステップコード
はすべて別命令に対するものである可能性があり、プロ
グラムカウンタの値はステップコードごとに管理する。
タ処理装置のパイプライン上に存在するステップコード
はすべて別命令に対するものである可能性があり、プロ
グラムカウンタの値はステップコードごとに管理する。
すべてのステップコードはそのステップコードのもとに
なった命令のプログラムカウンタ値をもつ。ステップコ
ードに付属してパイプラインの各ステージを流れるプロ
グラムカウンタ値はステッププログラムカウンタ(SP
C)と呼ぶ。SPCはパイプラインステージを次々と受
は渡されていく。
なった命令のプログラムカウンタ値をもつ。ステップコ
ードに付属してパイプラインの各ステージを流れるプロ
グラムカウンタ値はステッププログラムカウンタ(SP
C)と呼ぶ。SPCはパイプラインステージを次々と受
は渡されていく。
(3,2)各パイプラインステージの処理各パイプライ
ンステージの入出カステップコードには第3図に示した
ように便宜上名前が付けられている。またステップコー
ドはオペコードに関する処理を行い、マイクロROMの
エントリ番地やEステージ(至)に対するパラメータな
どになる系列とEステージ(至)のマイクロ命令に対す
るオペランドになる系列の2系列がある、7 (3,2,1)命令フェッチステージ 命令フェッチステージ(IFステデー0η)は命令をメ
モリやブランチバッファからフェッチし、命令キューに
入力して、Dステージ(至)に対して命令コードを出力
する。命令キューの入力は整置された4バイト単位で行
う。メモリから命令をフェッチするときは整置された4
バイトにつき最小2クロックを要する。ブランチバッフ
ァがヒツトした時は整置された4バイトにつき1クロツ
クでフェッチ可能である。命令キューの出力単位は2ツ
マイトごとに可変であり、2クロツクの間に最大6ノマ
イトまで出力できる。また分岐の直後には命令キューを
バイパスして命令基本部2バイトを直接命令デコーダに
転送することもできる。
ンステージの入出カステップコードには第3図に示した
ように便宜上名前が付けられている。またステップコー
ドはオペコードに関する処理を行い、マイクロROMの
エントリ番地やEステージ(至)に対するパラメータな
どになる系列とEステージ(至)のマイクロ命令に対す
るオペランドになる系列の2系列がある、7 (3,2,1)命令フェッチステージ 命令フェッチステージ(IFステデー0η)は命令をメ
モリやブランチバッファからフェッチし、命令キューに
入力して、Dステージ(至)に対して命令コードを出力
する。命令キューの入力は整置された4バイト単位で行
う。メモリから命令をフェッチするときは整置された4
バイトにつき最小2クロックを要する。ブランチバッフ
ァがヒツトした時は整置された4バイトにつき1クロツ
クでフェッチ可能である。命令キューの出力単位は2ツ
マイトごとに可変であり、2クロツクの間に最大6ノマ
イトまで出力できる。また分岐の直後には命令キューを
バイパスして命令基本部2バイトを直接命令デコーダに
転送することもできる。
ブランチバッファへの命令の登録やクリアなどの制御、
ブリフェッチ先命令アドレスの管理や命令キューの制御
もIFステデー(3υで行う。
ブリフェッチ先命令アドレスの管理や命令キューの制御
もIFステデー(3υで行う。
1FステージODで検出するEITには命令をメモリか
らフェッチするときのバスアクセス例外や、メモリ保護
違反などによるアドレス変換例外がある。
らフェッチするときのバスアクセス例外や、メモリ保護
違反などによるアドレス変換例外がある。
(3,2,2)命令デコードステージ
命令デコードステージ(Dステージ@)はIFステデー
0りから入力された命令コードをデコードする。デコー
ドは命令デコード部姉のFHWデコーダ、NFHWデコ
ーダ、アドレッシングモードデコーダを使用して、2ク
ロック単位に1度行ない、1回のデコード処理で、O〜
6バイトの命令コードを消費する( RET命令の復帰
先アドレスを含むステップコードの出力処理などでは命
令コードを消費しない)。1回のデコードでAステージ
瞥に対してアドレス計算情報であるAコード働である約
35ビツトの制御コードと最大32ビツトアドレス修飾
情報と、オペコードの中間デコード結果であるDコード
(ロ)である約50ビツトの制御コードと8ビツトのリ
テラル情報と、を出力する。
0りから入力された命令コードをデコードする。デコー
ドは命令デコード部姉のFHWデコーダ、NFHWデコ
ーダ、アドレッシングモードデコーダを使用して、2ク
ロック単位に1度行ない、1回のデコード処理で、O〜
6バイトの命令コードを消費する( RET命令の復帰
先アドレスを含むステップコードの出力処理などでは命
令コードを消費しない)。1回のデコードでAステージ
瞥に対してアドレス計算情報であるAコード働である約
35ビツトの制御コードと最大32ビツトアドレス修飾
情報と、オペコードの中間デコード結果であるDコード
(ロ)である約50ビツトの制御コードと8ビツトのリ
テラル情報と、を出力する。
Dステージ(至)では各命令のPC計算部關の制御、分
岐予測処理、ブリブランチ命令に対するブリブランチ処
理、命令キューからの命令コード出力処理も行う。
岐予測処理、ブリブランチ命令に対するブリブランチ処
理、命令キューからの命令コード出力処理も行う。
Dステージ(2)で検出するFITには予約命令例外、
ブリブランチ時の奇数アドレスジャンプトラップがある
。また、IFステデー(ロ)より転送されてきた各種E
ITはステップコード内にエンコードする処理をしてA
ステージ瞥に転送する。
ブリブランチ時の奇数アドレスジャンプトラップがある
。また、IFステデー(ロ)より転送されてきた各種E
ITはステップコード内にエンコードする処理をしてA
ステージ瞥に転送する。
(3,2,3)オペランドアドレス計算ステージオペラ
ンドアドレス計算ステージ(ハ)〕は処理が大きく2つ
に分かれる。1つは命令デコード部12のデコーダ2を
使用して、オペコードの後段デコードを行う処理で、他
方はオペランドアドレス計算部(財)でオペランドアド
レスの計算を行う処理である。
ンドアドレス計算ステージ(ハ)〕は処理が大きく2つ
に分かれる。1つは命令デコード部12のデコーダ2を
使用して、オペコードの後段デコードを行う処理で、他
方はオペランドアドレス計算部(財)でオペランドアド
レスの計算を行う処理である。
オペコードの後段デコード処理はDコード(ロ)を入力
とし、レジスタやメモリの書き込み予約及びマイクロプ
ログラムのエントリ番地とマイクロプログラムに対する
パラメータなどを含むRコード(財)の出力を行う。な
お、レジスタやメモリ書き込み予約は、アドレス計算で
参照したレジスタやメモリの内容がパイプライン上を先
行する命令で書き換えられ、誤ったアドレス計算が行わ
れるのを防ぐためのものである。レジスタやメモリの書
き込み予約はデッドロックを避けるため、ステップコー
ドごとに行うのではなく命令ごとに行う。レジスタやメ
モリの書き込み予約については特願昭62−14439
4で詳しく述べられている。
とし、レジスタやメモリの書き込み予約及びマイクロプ
ログラムのエントリ番地とマイクロプログラムに対する
パラメータなどを含むRコード(財)の出力を行う。な
お、レジスタやメモリ書き込み予約は、アドレス計算で
参照したレジスタやメモリの内容がパイプライン上を先
行する命令で書き換えられ、誤ったアドレス計算が行わ
れるのを防ぐためのものである。レジスタやメモリの書
き込み予約はデッドロックを避けるため、ステップコー
ドごとに行うのではなく命令ごとに行う。レジスタやメ
モリの書き込み予約については特願昭62−14439
4で詳しく述べられている。
オペランドアドレス計算処理はAコード(6)を入力と
し、Aコード(6)に従いオペランドアドレス計算部−
で加算やメモリ間接参照を組み合わせてアドレス計算を
行い、その計算結果をFコード■として出力する。この
際、アドレス計算に伴うレジスタやメモリの読み出し時
にコンフリクトチエツクを行い、先行命令がレジスタや
メモリに書き込み処理を終了していないためコンフリク
トが指示されれば、先行命令がEステージ鏝で書き込み
処理を終了するまで待つ。また、オペランドアドレスや
メモリ間接参照のアドレスがメモリにマツプされたI1
0領域に入るかどうかのチエツクも行う。
し、Aコード(6)に従いオペランドアドレス計算部−
で加算やメモリ間接参照を組み合わせてアドレス計算を
行い、その計算結果をFコード■として出力する。この
際、アドレス計算に伴うレジスタやメモリの読み出し時
にコンフリクトチエツクを行い、先行命令がレジスタや
メモリに書き込み処理を終了していないためコンフリク
トが指示されれば、先行命令がEステージ鏝で書き込み
処理を終了するまで待つ。また、オペランドアドレスや
メモリ間接参照のアドレスがメモリにマツプされたI1
0領域に入るかどうかのチエツクも行う。
Aステージ@鴫で検出するEITには予約命令例外、特
権命令例外、バスアクセス例外、アドレス変換例外、メ
モリ間接アドレシングのときのオペランドブレイクポイ
ントヒツトによるデバッグトラップがある。Dコード(
ロ)、Aコード働自体がEITを起こしたことを示して
おれば、Aステージ−はそのコードに対してアドレス計
算処理をせず、そのEIT 8 Rコード(至)やFコ
ード(ロ)に伝える。
権命令例外、バスアクセス例外、アドレス変換例外、メ
モリ間接アドレシングのときのオペランドブレイクポイ
ントヒツトによるデバッグトラップがある。Dコード(
ロ)、Aコード働自体がEITを起こしたことを示して
おれば、Aステージ−はそのコードに対してアドレス計
算処理をせず、そのEIT 8 Rコード(至)やFコ
ード(ロ)に伝える。
(3,2,4)マイクロROMアクセススデージオペラ
ンドフエツテステージCFステージ(財)〕も処理が大
きく2つに分かれる。1つはマイクロROMのアクセス
処理であり、特にRステージ−と呼ぶ。他方はオペラン
ドプリフェッチ処理であり、特にOFステデーC(ηと
呼ぶ。Rステージ(至)とOFステデー3ηは必ずしも
同時に動作するわけではなく、メモリアクセス権が獲得
できるかどうかなどに依存して、独立に動作する。
ンドフエツテステージCFステージ(財)〕も処理が大
きく2つに分かれる。1つはマイクロROMのアクセス
処理であり、特にRステージ−と呼ぶ。他方はオペラン
ドプリフェッチ処理であり、特にOFステデーC(ηと
呼ぶ。Rステージ(至)とOFステデー3ηは必ずしも
同時に動作するわけではなく、メモリアクセス権が獲得
できるかどうかなどに依存して、独立に動作する。
Rステージ(至)の処理であるマイクロROMアクセス
処理はRコードに対して次のEステージでの実行制御コ
ードであるEコードを作り出すためのマイクロROMア
クセスとマイクロ命令デコード処理である。1つのRコ
ードに対する処理が2つ以とのマイクロプログラムステ
ップに分解される場合、マイクロROMはEステージ(
至)で使用され、次のRコード(至)はマイクロROM
アクセス待ちになる。Rコード(至)に対するマイクロ
ROMアクセスが行われるのはその前のEステージ(至
)での最後のマイクロ命令実行の時である。本発明のデ
ータ処理装置ではほとんどの基本命令は1マイクロプロ
グラムステツプ行われるため実際にはRコード(至)に
対するマイクロROMアクセスが次々と行われることが
多い。
処理はRコードに対して次のEステージでの実行制御コ
ードであるEコードを作り出すためのマイクロROMア
クセスとマイクロ命令デコード処理である。1つのRコ
ードに対する処理が2つ以とのマイクロプログラムステ
ップに分解される場合、マイクロROMはEステージ(
至)で使用され、次のRコード(至)はマイクロROM
アクセス待ちになる。Rコード(至)に対するマイクロ
ROMアクセスが行われるのはその前のEステージ(至
)での最後のマイクロ命令実行の時である。本発明のデ
ータ処理装置ではほとんどの基本命令は1マイクロプロ
グラムステツプ行われるため実際にはRコード(至)に
対するマイクロROMアクセスが次々と行われることが
多い。
Rステージ−で新たに検出するEITはない。Rコード
(至)が命令処理再実行型のEITを示しているときは
そのBIT処理に対するマイクロプログラムが実行され
るのでRステージ国はそのRコード■に従ったマイクロ
命令をフェッチする。Rコード(財)が奇数アドレスジ
ャンプトラップを示しているときRステージ端はそれを
Eコードに)に伝える。
(至)が命令処理再実行型のEITを示しているときは
そのBIT処理に対するマイクロプログラムが実行され
るのでRステージ国はそのRコード■に従ったマイクロ
命令をフェッチする。Rコード(財)が奇数アドレスジ
ャンプトラップを示しているときRステージ端はそれを
Eコードに)に伝える。
これはブリブランチに対するもので、Eステーシロ四で
はそのEコードに)で分岐が生じなければそのプリブラ
ンチを有効として奇数アドレスジャンプトラップを発生
する。
はそのEコードに)で分岐が生じなければそのプリブラ
ンチを有効として奇数アドレスジャンプトラップを発生
する。
(3,2,5)オペランドフエツテスデージオペランド
フエツテステージ(OFステデー@)はFステージ−で
行う上記の2つの処理のうちオペランドプリフェッチ処
理を行う。
フエツテステージ(OFステデー@)はFステージ−で
行う上記の2つの処理のうちオペランドプリフェッチ処
理を行う。
オペランドブリフェッチはFコード■を入力とし、フェ
ッチしたオペランドとそのアドレスをSコード明として
出力する。1つのFコード(ロ)ではワード境界をまた
いでもよいが4バイト以下のオペランドフェッチを指定
する。Fコード(財)にはオペランドのアクセスを行う
かどうかの指定も含まれており、Aステージ−で計算し
たオペランドアドレス自体や即値をEステージ−に転送
する場合にはオペランドブリフェッチは行わず、Fコー
ド(財)の内容をSコード四として転送する。ブリフェ
ッチしようとするオペランドとEステージC(lが書き
込み処理を行おうとするオペランドが一致するときは、
オペランドブリフェッチはメモリから行ワス、バイパス
して行なう。またI10領域に対してはオペランドブリ
フェッチを遅延させ、先行命令がすべて完了するまで待
ってオペランドフェッチを行う。
ッチしたオペランドとそのアドレスをSコード明として
出力する。1つのFコード(ロ)ではワード境界をまた
いでもよいが4バイト以下のオペランドフェッチを指定
する。Fコード(財)にはオペランドのアクセスを行う
かどうかの指定も含まれており、Aステージ−で計算し
たオペランドアドレス自体や即値をEステージ−に転送
する場合にはオペランドブリフェッチは行わず、Fコー
ド(財)の内容をSコード四として転送する。ブリフェ
ッチしようとするオペランドとEステージC(lが書き
込み処理を行おうとするオペランドが一致するときは、
オペランドブリフェッチはメモリから行ワス、バイパス
して行なう。またI10領域に対してはオペランドブリ
フェッチを遅延させ、先行命令がすべて完了するまで待
ってオペランドフェッチを行う。
OFステデー−で検出するEITにはバスアクセス例外
、アドレス変換例外、オペランドブリフェッチに対する
ブレイクポイントヒツトによるデバッグトラップがある
。Fコード(財)がデバッグトラップ以外のEITを示
しているときはそれtSコード四に転送し、オペランド
ブリフェッチは行わない。
、アドレス変換例外、オペランドブリフェッチに対する
ブレイクポイントヒツトによるデバッグトラップがある
。Fコード(財)がデバッグトラップ以外のEITを示
しているときはそれtSコード四に転送し、オペランド
ブリフェッチは行わない。
Fコード■がデバッグトラップを示しているときはその
Fコード(ロ)に対してEITを示していないときと同
じ処理をすると共にデバッグトラップをSコード囮に伝
える。
Fコード(ロ)に対してEITを示していないときと同
じ処理をすると共にデバッグトラップをSコード囮に伝
える。
(3,2,6)実行ステージ
実行ステージ(EステージCl1f9)はEコードに)
、Sコード囮を入力として動作する。このEステージ側
が命令を実行するステージであり、Fステージ(財)以
前のステージで行われた処理はすべてEステージ0四の
ための前処理である。Eステージ3均でジャンプ命令が
実行されたり、EIT処理が起動されたりしたときは、
IFステデー00〜Fステージ(財)までの処理はすべ
て無効化される。Eステージ(3FAはマイクロプログ
ラムにより制御され、Rコードに)に示されたマイクロ
プログラムのエントリ番地からの一連のマイクロプログ
ラムを実行することにより命令を実行する。
、Sコード囮を入力として動作する。このEステージ側
が命令を実行するステージであり、Fステージ(財)以
前のステージで行われた処理はすべてEステージ0四の
ための前処理である。Eステージ3均でジャンプ命令が
実行されたり、EIT処理が起動されたりしたときは、
IFステデー00〜Fステージ(財)までの処理はすべ
て無効化される。Eステージ(3FAはマイクロプログ
ラムにより制御され、Rコードに)に示されたマイクロ
プログラムのエントリ番地からの一連のマイクロプログ
ラムを実行することにより命令を実行する。
マイクロROMの読み出しとマイクロ命令の実行はパイ
プライン化されて行われる。従ってマイクロプログラム
で分岐が起きたときは1マイクロステツプの空きができ
る。また、Eステージa〔はデータ演算部間にあるスト
アバッファ、を利用して、4バイト以内のオペランドス
トアと次のマイクロ命令実行をパイプライン処理するこ
ともできる。
プライン化されて行われる。従ってマイクロプログラム
で分岐が起きたときは1マイクロステツプの空きができ
る。また、Eステージa〔はデータ演算部間にあるスト
アバッファ、を利用して、4バイト以内のオペランドス
トアと次のマイクロ命令実行をパイプライン処理するこ
ともできる。
Eステージ(至)ではAステージ(至)で行ったレジス
タやメモリに対する書き込み予約をオペランドの書き込
みの後、解除する。
タやメモリに対する書き込み予約をオペランドの書き込
みの後、解除する。
また条件分岐命令がEステージ(至)で分岐を起こした
ときはその条件分岐命令に対する分岐予測が誤っていた
のであるから分岐履歴の書換えを行う。
ときはその条件分岐命令に対する分岐予測が誤っていた
のであるから分岐履歴の書換えを行う。
Eステージ−で検出されるEITにはバスアクセス例外
、アドレス変換例外、デバッグトラップ、奇数アドレス
ジャンプトラップ、予約機能例外、不正オペランド例外
、予約スタックフォーマット例外、ゼロ除算トラップ、
無条件トラップ、条件トラップ、遅延コンテキストトラ
ップ、外部割込、遅延割込、リセット割込、システム障
害がある。
、アドレス変換例外、デバッグトラップ、奇数アドレス
ジャンプトラップ、予約機能例外、不正オペランド例外
、予約スタックフォーマット例外、ゼロ除算トラップ、
無条件トラップ、条件トラップ、遅延コンテキストトラ
ップ、外部割込、遅延割込、リセット割込、システム障
害がある。
Eステージ(至)で検出されたEITはすべてEIT処
理されるがEステージ以前のIFステデーOXl〜Fス
テージ(財)の間で検出されRコード(財)やSコード
四に反映されているEITは必ずEITは必ずEIT処
理されるとは限らない。IFステデーclυ〜Fステー
ジ(財)の間で検出したが、先行の命令がEステージ(
至)でジャンプ命令が実行されたなどの原因でEステー
ジ(至)まで到達しなかったEITはすべてキャンセル
される。そのEITを起こした命令はそもそも実行され
なかったことになる。
理されるがEステージ以前のIFステデーOXl〜Fス
テージ(財)の間で検出されRコード(財)やSコード
四に反映されているEITは必ずEITは必ずEIT処
理されるとは限らない。IFステデーclυ〜Fステー
ジ(財)の間で検出したが、先行の命令がEステージ(
至)でジャンプ命令が実行されたなどの原因でEステー
ジ(至)まで到達しなかったEITはすべてキャンセル
される。そのEITを起こした命令はそもそも実行され
なかったことになる。
外部割込や遅延割込は命令の切れ目でEステージGll
で直接受は付けられ、マイクロプログラムにより必要な
処理が実行される。その他の各[EITも処理はマイク
ロプログラムにより行われる。
で直接受は付けられ、マイクロプログラムにより必要な
処理が実行される。その他の各[EITも処理はマイク
ロプログラムにより行われる。
(3,3)各パイプラインステージの状態制御パイプラ
インの各ステージは入力ラッテを持ち、他のステージと
は独立に動作することを基本とする。各ステージは1つ
前に行った処理が終わり、その処理結果を出力ラッチか
ら次のステージの入力ラッチに転送し、自分のステージ
の入力ラッチに次の処理に必要な入力信号がすべてそろ
えば次の処理を開始する。
インの各ステージは入力ラッテを持ち、他のステージと
は独立に動作することを基本とする。各ステージは1つ
前に行った処理が終わり、その処理結果を出力ラッチか
ら次のステージの入力ラッチに転送し、自分のステージ
の入力ラッチに次の処理に必要な入力信号がすべてそろ
えば次の処理を開始する。
つまり、各ステージは、1つ前段のステージから出力さ
れてくる次の処理に対する入力信号がすべて有効となり
、今の処理結果を後段のステージの入力ラッチに転送し
て出力ラッチが空になると次の処理を開始する。
れてくる次の処理に対する入力信号がすべて有効となり
、今の処理結果を後段のステージの入力ラッチに転送し
て出力ラッチが空になると次の処理を開始する。
各ステージが動作を開始する1つ前のクロックタイミン
グで入力信号がすべてそろっている必要がある。入力信
号がそろっていないと、そのステージは待ち状態(入力
待ち)になる。出力ラッチから次のステージの入力ラッ
チへの転送を行うときは次のステージの入力ラッチが空
き状態になっている必要があり、次のステージの入力ラ
ッチが空きでない場合もパイプラインステージは待チ状
態(出力待ち)になる。必要なメモリアクセス権が獲得
できなかったり、処理しているメモリアクセスにウェイ
トが挿入されたり、その他のパイプラインコンフリクト
が生じると、各ステージの処理自体が遅延する。
グで入力信号がすべてそろっている必要がある。入力信
号がそろっていないと、そのステージは待ち状態(入力
待ち)になる。出力ラッチから次のステージの入力ラッ
チへの転送を行うときは次のステージの入力ラッチが空
き状態になっている必要があり、次のステージの入力ラ
ッチが空きでない場合もパイプラインステージは待チ状
態(出力待ち)になる。必要なメモリアクセス権が獲得
できなかったり、処理しているメモリアクセスにウェイ
トが挿入されたり、その他のパイプラインコンフリクト
が生じると、各ステージの処理自体が遅延する。
(4)分岐命令の処理
本発明のデータ処理装置では上記に説明したように多段
のパイプライン処理を採用しているため分岐命令を実行
した際のオーバーヘッドが大きい。
のパイプライン処理を採用しているため分岐命令を実行
した際のオーバーヘッドが大きい。
このオーバーヘッドを小さくするため動的分岐予測処理
を行う。動的分岐予測処理は実行ステージで分岐を行う
代わりにデコードステージで分岐を行うことによりなる
べく早く分岐先命令を取り込むことを狙いとしている。
を行う。動的分岐予測処理は実行ステージで分岐を行う
代わりにデコードステージで分岐を行うことによりなる
べく早く分岐先命令を取り込むことを狙いとしている。
本発明のデータ処理装置に限らず、データ処理装置では
、一般に分岐命令が実行される頻度は大きく、動的分岐
予測処理による性能改善効墨は大きい。
、一般に分岐命令が実行される頻度は大きく、動的分岐
予測処理による性能改善効墨は大きい。
(4,,1)分岐命令の皿類
本発明のデータ処理装置では動的分岐予測処理を行う命
令をブリブランチ命令と呼ぶ。ブリブランチ命令には無
条件分岐命令のように、動的な予測にかかわらず、必ず
分岐する命令も含む。
令をブリブランチ命令と呼ぶ。ブリブランチ命令には無
条件分岐命令のように、動的な予測にかかわらず、必ず
分岐する命令も含む。
本発明のデータ処理装置がもつ分岐命令は分岐条件がス
タティックかダイナミックか及び分岐先がスタティック
かダイナミックかにより計4種類に分類できるが、本発
明のデータ処理装置ではこのうちつぎの2種類に分類さ
れる命令をブリブランチ命令とする。
タティックかダイナミックか及び分岐先がスタティック
かダイナミックかにより計4種類に分類できるが、本発
明のデータ処理装置ではこのうちつぎの2種類に分類さ
れる命令をブリブランチ命令とする。
第1の種類の分岐命令は分岐条件、分岐先ともスタティ
ックな命令である。この種の命令には無条件分岐命令(
BRA)とサブルーチン呼び出し命令(BSR)がある
。第2の種類の分岐命令は分岐条件がダイナミックで分
岐先がスタティックな命令である。この種の命令には条
件分岐命令(Bcc)、ループ制御命令(ACB)があ
る。
ックな命令である。この種の命令には無条件分岐命令(
BRA)とサブルーチン呼び出し命令(BSR)がある
。第2の種類の分岐命令は分岐条件がダイナミックで分
岐先がスタティックな命令である。この種の命令には条
件分岐命令(Bcc)、ループ制御命令(ACB)があ
る。
(4,2)分岐命令処理回路の機能構成第1図に本発明
のデータ処理装置の分岐命令処理回路の構成を示す。第
1図には命令フェッチ部@υ、命令デコード部!52、
PC計算部關、オペランドアドレス計算部(財)、デー
タ演算部間、外部バスインターフェイス部(1571の
それぞれに含まれる回路の部分詳細図と、アドレス出力
回路−、データ入出力回路(2)よりなる。
のデータ処理装置の分岐命令処理回路の構成を示す。第
1図には命令フェッチ部@υ、命令デコード部!52、
PC計算部關、オペランドアドレス計算部(財)、デー
タ演算部間、外部バスインターフェイス部(1571の
それぞれに含まれる回路の部分詳細図と、アドレス出力
回路−、データ入出力回路(2)よりなる。
命令デコーダ(111)とpc加算器(132)の入力
側、アドレス加算器(124)の入力側は、ディスプレ
ースメント値、分岐命令の変位値を転送するDISPバ
ス(100)で結ばれている。命令デコーダ(111)
とアドレス加算器(124)の入力側はステップコード
生成に使用した命令コード長、スタックブツシュモード
のときのプリデクリメント値などを転送fるd正値ハス
(101)でも結ばれている。命令デコーダ(111)
とPC加算器(132)の入力側はステップコード生成
に使用した命令コード長を転送する命令長バス(101
)でも結ばれている。レジスタファイル(144)とア
ドレス加算器(124)入力側はレジスタファイル(1
44)に蓄えられているアドレス値を転送するAバス(
103)に結ばれている。
側、アドレス加算器(124)の入力側は、ディスプレ
ースメント値、分岐命令の変位値を転送するDISPバ
ス(100)で結ばれている。命令デコーダ(111)
とアドレス加算器(124)の入力側はステップコード
生成に使用した命令コード長、スタックブツシュモード
のときのプリデクリメント値などを転送fるd正値ハス
(101)でも結ばれている。命令デコーダ(111)
とPC加算器(132)の入力側はステップコード生成
に使用した命令コード長を転送する命令長バス(101
)でも結ばれている。レジスタファイル(144)とア
ドレス加算器(124)入力側はレジスタファイル(1
44)に蓄えられているアドレス値を転送するAバス(
103)に結ばれている。
命令デコーダ(111)には命令キュー(112)から
命令コードが入力され、分岐予測テーブル(113)か
ら分岐予測ビットが入力される。命令デコーダ(111
)の出力部には、分岐予測結果により、条件分岐命令の
分岐条件指定フィールドを、Eステージ(31にそのま
ま出力するか条件指定を反転して出力するかの選択を行
う、分岐条件生成回路(114)がある。
命令コードが入力され、分岐予測テーブル(113)か
ら分岐予測ビットが入力される。命令デコーダ(111
)の出力部には、分岐予測結果により、条件分岐命令の
分岐条件指定フィールドを、Eステージ(31にそのま
ま出力するか条件指定を反転して出力するかの選択を行
う、分岐条件生成回路(114)がある。
命令長バス(101)の値とDI SPババス100)
の値のどちらか選択してを入力する被加算値選択回路(
131)の出力と、Dステージ(至)でデコードした命
令のPC値を保持するDPC(135)またはステップ
コードの切れ日毎の作業用PC値を保持するTPC(1
34)のどちらかと、はPC加算器(132)に入力さ
れる。
の値のどちらか選択してを入力する被加算値選択回路(
131)の出力と、Dステージ(至)でデコードした命
令のPC値を保持するDPC(135)またはステップ
コードの切れ日毎の作業用PC値を保持するTPC(1
34)のどちらかと、はPC加算器(132)に入力さ
れる。
PC加算器(132)の出力はPC加算器出力ラツチ(
133)を通して〔Aババス104)やPOババス10
5)に出力される。POババス105)はラッチTPC
(134)、ラッテDPC(135)、Aステージで処
理中の命令のPC値を保持するラッテArc (136
)、さらに分岐予測テーブル(113)にも結合してい
る。TPC(134)にはEステージ(至)で分岐やジ
ャンプが生じたとき、新たな命令番地を入力するため、
〔Aババス103)からの入力経路もある。
133)を通して〔Aババス104)やPOババス10
5)に出力される。POババス105)はラッチTPC
(134)、ラッテDPC(135)、Aステージで処
理中の命令のPC値を保持するラッテArc (136
)、さらに分岐予測テーブル(113)にも結合してい
る。TPC(134)にはEステージ(至)で分岐やジ
ャンプが生じたとき、新たな命令番地を入力するため、
〔Aババス103)からの入力経路もある。
補正値バス(102)の出力とDISPバス(Zoo)
の出力はディスプレースメント選択回路(122)に入
力され、どちらか一方がアドレス加算器(124)に入
力される。DISPバス(100)出力とAバス(10
3)出力はベースアドレス選択回路(123)に入力さ
れ、どちらか一方がアドレス加算器(124)に入力さ
れる。アドレス加算器(124)は、ディスプレースメ
ント選択回路(122)の出力、ベースアドレス選択回
路(123)の出力、それにAバス(103)より入力
された値をシフトすることにより、1倍、2倍、4倍、
8倍の値とするインデックス値生成回路(121)の出
力、の計3つの値を入力として、3値加算を行う。アド
レス加算器(124)の出力値はアドレス加算器出力ラ
ッチ(125)を通して、AOババス106)に出力さ
れる。AOババス 106 )は、メモリ間接アドレッ
シングを行うとiAAバス(107)を通してアドレス
出力回路−からCPU外部にアドレス値を出力するとき
そのアドレス値を保持するラッチIA(126)と、F
ステージでのオペランドブリフェッチ時に、AAババス
107) を通してアドレス出力回路−からCPU外部
にオペランドアドレス値を出力するとき、そのオペラン
ドアドレス保持するラッチFA(127)と、につなが
る。
の出力はディスプレースメント選択回路(122)に入
力され、どちらか一方がアドレス加算器(124)に入
力される。DISPバス(100)出力とAバス(10
3)出力はベースアドレス選択回路(123)に入力さ
れ、どちらか一方がアドレス加算器(124)に入力さ
れる。アドレス加算器(124)は、ディスプレースメ
ント選択回路(122)の出力、ベースアドレス選択回
路(123)の出力、それにAバス(103)より入力
された値をシフトすることにより、1倍、2倍、4倍、
8倍の値とするインデックス値生成回路(121)の出
力、の計3つの値を入力として、3値加算を行う。アド
レス加算器(124)の出力値はアドレス加算器出力ラ
ッチ(125)を通して、AOババス106)に出力さ
れる。AOババス 106 )は、メモリ間接アドレッ
シングを行うとiAAバス(107)を通してアドレス
出力回路−からCPU外部にアドレス値を出力するとき
そのアドレス値を保持するラッチIA(126)と、F
ステージでのオペランドブリフェッチ時に、AAババス
107) を通してアドレス出力回路−からCPU外部
にオペランドアドレス値を出力するとき、そのオペラン
ドアドレス保持するラッチFA(127)と、につなが
る。
FA(127)は、アドレス加算器(124)で計算さ
れたオペランドアドレスをEステージ−で使用するため
にオペランドアドレス値を保持するラッチ5A(141
)への出力経験ももつ。5A(141)はデータ演算部
■の汎用データバスであるSバス(109)への出力経
路をもつ。命令のアドレスを転送する〔Aババス104
)はPC加算器出力ラッチ(133)と、TPC(13
4)と、命令フェッチ部@υがブリフェッチする命令コ
ードの番地を管理するカウンタQINPC(115)と
、命令フェッチのためのアドレスを晶バス(107)を
通してアドレス出力回路(財)からCPU外部に出力す
るときその値を保持するラッチ〔AA(142)と、E
ステージ(至)で分岐やジャンプが起きたときに新たな
命令番地をSバス(109)から入力するラッチEB(
143)と、に結合している。Arc (136)はA
バス(103)と、Fステージ(財)で処理中の命令の
PC値を保持するラッチFPC(137)とに出力経路
がある。
れたオペランドアドレスをEステージ−で使用するため
にオペランドアドレス値を保持するラッチ5A(141
)への出力経験ももつ。5A(141)はデータ演算部
■の汎用データバスであるSバス(109)への出力経
路をもつ。命令のアドレスを転送する〔Aババス104
)はPC加算器出力ラッチ(133)と、TPC(13
4)と、命令フェッチ部@υがブリフェッチする命令コ
ードの番地を管理するカウンタQINPC(115)と
、命令フェッチのためのアドレスを晶バス(107)を
通してアドレス出力回路(財)からCPU外部に出力す
るときその値を保持するラッチ〔AA(142)と、E
ステージ(至)で分岐やジャンプが起きたときに新たな
命令番地をSバス(109)から入力するラッチEB(
143)と、に結合している。Arc (136)はA
バス(103)と、Fステージ(財)で処理中の命令の
PC値を保持するラッチFPC(137)とに出力経路
がある。
FPC(137)はEステージ−で処理中の命令のPC
値を保持する。ラッチCPC(138)への出力経路を
もつ。CPC(138)はSバス(lO9)と、分岐履
歴書換えのためにPC値゛の最下位バイトの値を保持す
るラッチOPC(139)とに出力経路をもつ。レジス
タファイル(144)は汎用レジスタや作業用レジスタ
などからなり、Sバス(109)とAバス(103・)
への出力経路をもち、Dバス(110)から入力経路を
持つ。
値を保持する。ラッチCPC(138)への出力経路を
もつ。CPC(138)はSバス(lO9)と、分岐履
歴書換えのためにPC値゛の最下位バイトの値を保持す
るラッチOPC(139)とに出力経路をもつ。レジス
タファイル(144)は汎用レジスタや作業用レジスタ
などからなり、Sバス(109)とAバス(103・)
への出力経路をもち、Dバス(110)から入力経路を
持つ。
データ演算部−の演算機構であるデータ演算器(145
)はSバス(109)から入力経路をもち、Dバス(1
10)への出力経路を持つ。
)はSバス(109)から入力経路をもち、Dバス(1
10)への出力経路を持つ。
(4,3)分岐予測方法
本発明のデータ処理装置では無条件分岐命令BRA 、
サブルーチン分岐命令BSR、ループ制御命令ACB、
3つの命令については、分岐予測テーブルの出力である
分岐予測ビットにかかわらず、必ず分岐すると予測する
。BRA 、 BSRに対してはこの予測は必ず正しい
。
サブルーチン分岐命令BSR、ループ制御命令ACB、
3つの命令については、分岐予測テーブルの出力である
分岐予測ビットにかかわらず、必ず分岐すると予測する
。BRA 、 BSRに対してはこの予測は必ず正しい
。
ACBはループ制御変数に指定された値を加えて、その
結果がループ終了条件を満たすかどうかを判定し、ルー
プ終了条件を満たさなければ分岐し、満たせば分岐しな
い命令である。従って、大多数のソフトウェアではAC
Bについてもこの予測方法はかなりの確率で正しい。ま
た、ACBに対する本発明のデータ処理装置の特徴的な
処理を意識してソフトウェアを作成すれば意識しない″
場合より効率的なプログラムを作成することが可能であ
る。
結果がループ終了条件を満たすかどうかを判定し、ルー
プ終了条件を満たさなければ分岐し、満たせば分岐しな
い命令である。従って、大多数のソフトウェアではAC
Bについてもこの予測方法はかなりの確率で正しい。ま
た、ACBに対する本発明のデータ処理装置の特徴的な
処理を意識してソフトウェアを作成すれば意識しない″
場合より効率的なプログラムを作成することが可能であ
る。
条件分岐命令Bccについては分岐するかしないかを過
去の履歴に従って判断する。7履歴はBcc命令の1つ
前に実行した命令のアドレスの下位8ビツトのアドレス
をもとに行う。分岐予測は過去1回の分岐履歴のみに従
い、1ビツトで示される。
去の履歴に従って判断する。7履歴はBcc命令の1つ
前に実行した命令のアドレスの下位8ビツトのアドレス
をもとに行う。分岐予測は過去1回の分岐履歴のみに従
い、1ビツトで示される。
(4,4)分岐予測テーブルの構成
第4図に分岐予測テーブル(113)の詳細を示す。
POババス105)からの入カフビットとOPC(13
9)からの入カフビットはセレクタ(151)を通して
、デコーダ(152)に入力される。デコーダ(152
)では7ビツトを128ビツトにデコードして128ビ
ツトの分岐履歴ラッチl’153)のうち1つを分岐予
測値として分岐予測出力ラッチ(154)に出力する。
9)からの入カフビットはセレクタ(151)を通して
、デコーダ(152)に入力される。デコーダ(152
)では7ビツトを128ビツトにデコードして128ビ
ツトの分岐履歴ラッチl’153)のうち1つを分岐予
測値として分岐予測出力ラッチ(154)に出力する。
128ビツトの分岐履歴ラッチ(153)はクリア信号
(157)カ入力されると一斉に値をゼロにして「分岐
しない」を示す。分岐予測出力ラッチ(154)は予測
反転回路(155)によりその内容を反転して分岐予測
更新ラッテ(156)に結合されている。
(157)カ入力されると一斉に値をゼロにして「分岐
しない」を示す。分岐予測出力ラッチ(154)は予測
反転回路(155)によりその内容を反転して分岐予測
更新ラッテ(156)に結合されている。
本発明のデータ処理装置では、Dステージ(至)でデコ
ードしようとする命令の1つ前にDステージ(2)でデ
コードされた命令のアドレスの下位8ビツトをもとに分
岐予測テーブル(113)を引いて分岐予測を行う。分
岐予測は過去1回の履歴のみに従ったダイレクトマツピ
ング方式で登録されている。
ードしようとする命令の1つ前にDステージ(2)でデ
コードされた命令のアドレスの下位8ビツトをもとに分
岐予測テーブル(113)を引いて分岐予測を行う。分
岐予測は過去1回の履歴のみに従ったダイレクトマツピ
ング方式で登録されている。
本発明のデータ処理装置では命令アドレスの最下位ビッ
ト(右端のビット)は必ずゼロであるため分岐予測テー
ブルは128ビツトで構成されている。
ト(右端のビット)は必ずゼロであるため分岐予測テー
ブルは128ビツトで構成されている。
分岐予測ビットを有効に使用するのはBcc命令をデコ
ードするときのみであるが、分岐予測ビットは、使用す
るかどうかにかかわらず、すべての命令の命令コードと
共に命令デコーダに入力する。
ードするときのみであるが、分岐予測ビットは、使用す
るかどうかにかかわらず、すべての命令の命令コードと
共に命令デコーダに入力する。
このため分岐予測テーブル(113)の参照は、デコー
ドしようとする命令の1つ前の命令がデコードされてい
、るときPC加算器(132)から出力されてくる1つ
前の命令のPC値の下位1バイト(最下位ビットは不要
)で行う。これにより、分岐予測ビットは、次のDステ
ージ処理の最初までに命令デコーダ(111)に入力さ
れる。
ドしようとする命令の1つ前の命令がデコードされてい
、るときPC加算器(132)から出力されてくる1つ
前の命令のPC値の下位1バイト(最下位ビットは不要
)で行う。これにより、分岐予測ビットは、次のDステ
ージ処理の最初までに命令デコーダ(111)に入力さ
れる。
分岐予測テーブル(113)の分岐履歴はクリア信号(
157)により初期値をすべて「分岐しない」とできる
。分岐予測の更新はBcc命令がEステージ(至)で分
岐したときに行われる。Bcc命令がEステージ(至)
で分岐を起こしたとき、それはDステージ働での分岐予
測が間違っていたことを意味する。
157)により初期値をすべて「分岐しない」とできる
。分岐予測の更新はBcc命令がEステージ(至)で分
岐したときに行われる。Bcc命令がEステージ(至)
で分岐を起こしたとき、それはDステージ働での分岐予
測が間違っていたことを意味する。
このときEステージ国で分岐予測の更新(間違っていた
分岐履歴の反転)が行われる。Eステージc(lではO
PC(139)の内容をデコーダ(x5s)ニ転送し、
そのデコード結果で対応する分岐履歴ラッチ(153)
の内容を分岐予測出力ラッチ(154)に読み出す。次
に、分岐予測出力ラッチ(154)の内容が反転された
分岐予測更新ラッチ(156)の内容を、同り、 <
OPC(139)の値で示された分岐履歴ラッチ(15
3)に書き戻す。
分岐履歴の反転)が行われる。Eステージc(lではO
PC(139)の内容をデコーダ(x5s)ニ転送し、
そのデコード結果で対応する分岐履歴ラッチ(153)
の内容を分岐予測出力ラッチ(154)に読み出す。次
に、分岐予測出力ラッチ(154)の内容が反転された
分岐予測更新ラッチ(156)の内容を、同り、 <
OPC(139)の値で示された分岐履歴ラッチ(15
3)に書き戻す。
分岐予測は対象となるBcc命令がデコードされる1つ
前にデコードされた命令のPC値をもとに行われるため
分岐予測テーブル(l13)の更新もEステージ(至)
でBcc k令の1つ前に実行された命令のPC値をも
と番こ行う。このためEステージ(至)では現在実行中
の命令の1つ前に実行した命令のPC値の下位1バイト
(最下位ビットは不要)を記憶してお(OPC(139
)があり、分岐予測テーブル(113)の更新はこの値
を用いて行う。分岐履歴の更新はEステージの四でBc
c命令が分岐を起こしたときだけしか行われないため、
Dステージ(至)の分岐予測テーブル(113)の参照
動作がEステージ(至)の更新に妨げられることはない
。Eステージ(至)で分岐が起きた直後はDステージ(
イ)はIFステデー0ηからの命令コード待ち状態とな
る。分岐履歴の書換えは、この命令コード待ち状態の間
に行われる。
前にデコードされた命令のPC値をもとに行われるため
分岐予測テーブル(l13)の更新もEステージ(至)
でBcc k令の1つ前に実行された命令のPC値をも
と番こ行う。このためEステージ(至)では現在実行中
の命令の1つ前に実行した命令のPC値の下位1バイト
(最下位ビットは不要)を記憶してお(OPC(139
)があり、分岐予測テーブル(113)の更新はこの値
を用いて行う。分岐履歴の更新はEステージの四でBc
c命令が分岐を起こしたときだけしか行われないため、
Dステージ(至)の分岐予測テーブル(113)の参照
動作がEステージ(至)の更新に妨げられることはない
。Eステージ(至)で分岐が起きた直後はDステージ(
イ)はIFステデー0ηからの命令コード待ち状態とな
る。分岐履歴の書換えは、この命令コード待ち状態の間
に行われる。
(4,5)PC計算部の動作・
PC計算部はDステージに)で命令コードがデコードさ
れるとき、1つ前にデコードされた命令コードの先頭番
地とからデコード中の命令コードの先頭番地を計算する
。pc計算部ではDPC(135)に命令の切れ目のア
ドレスである命令のPC値を保持し、TPC(134)
にステップコードの切れ目のアドレスを管理する。DP
C(135)は命令の切れ目のアドレスが計算されたと
きだけ書き換えられる。TPC(134)はステップコ
ードの切れ目のアドレス、つまり命令デコード処理ごと
に書き換えられる。パイプライン上で処理されるステッ
プコードしPC値はそのステップコードのもとになった
命令のPC値が必要であるため、DPC(135)の値
がArc r136)、FPC(137)、CPD (
138)と転送されていく。
れるとき、1つ前にデコードされた命令コードの先頭番
地とからデコード中の命令コードの先頭番地を計算する
。pc計算部ではDPC(135)に命令の切れ目のア
ドレスである命令のPC値を保持し、TPC(134)
にステップコードの切れ目のアドレスを管理する。DP
C(135)は命令の切れ目のアドレスが計算されたと
きだけ書き換えられる。TPC(134)はステップコ
ードの切れ目のアドレス、つまり命令デコード処理ごと
に書き換えられる。パイプライン上で処理されるステッ
プコードしPC値はそのステップコードのもとになった
命令のPC値が必要であるため、DPC(135)の値
がArc r136)、FPC(137)、CPD (
138)と転送されていく。
命令しデコードは(3,1,2)の節で述べたようにス
テップコード単位に行われ、1回のデコード処理で0〜
6バイトの命令コードが消費される。命令デコード処理
ごとに判明したそのとき使用した命令コードの長さが命
令デコーダ(111)から命令長バス(101)に出力
される。
テップコード単位に行われ、1回のデコード処理で0〜
6バイトの命令コードが消費される。命令デコード処理
ごとに判明したそのとき使用した命令コードの長さが命
令デコーダ(111)から命令長バス(101)に出力
される。
ブリブランチしない場合、Dステージ(2)は引き続く
次の命令のデコード処理を行うと同時に、PC計算部□
□□講で引き続く次の命令のPC値を計算するため、T
PC(134)の値と命令長バス(101)から転送さ
れたデコードで消費した命令コードの長さとの加算を行
いTPC(134)に加算結果を書き戻す。つまり、あ
るステップコードの先頭アドレスはそのステップコード
がデコード処理により生成されたときに計算されるので
ある。ブリブランチ以外ではデコードすべき命令コード
は命令キュー(112)から次々と出力されるため、デ
コード開始段階でそのコードの先頭アドレスを知る必要
はない。Dステージ(至)で生成したステップコードが
命令Aの最後のステップコードであるとき、次の命令B
のデコード処理中に計算されるPC加算器(132)の
出力は、命令Bの先頭番地であり、命令BのPC値であ
るから、PC加算器(132)の出力である命令BのP
C値はpoババス105)からTPC(134)とDP
C(135)の両方に書き込まれる。さらにこのと)A
ステージ瞥が入力コード待ちで、APC(136)が至
急必要とされているなら、POババス105)からAP
C(136)にも命令BのPC値が書き込まれる。
次の命令のデコード処理を行うと同時に、PC計算部□
□□講で引き続く次の命令のPC値を計算するため、T
PC(134)の値と命令長バス(101)から転送さ
れたデコードで消費した命令コードの長さとの加算を行
いTPC(134)に加算結果を書き戻す。つまり、あ
るステップコードの先頭アドレスはそのステップコード
がデコード処理により生成されたときに計算されるので
ある。ブリブランチ以外ではデコードすべき命令コード
は命令キュー(112)から次々と出力されるため、デ
コード開始段階でそのコードの先頭アドレスを知る必要
はない。Dステージ(至)で生成したステップコードが
命令Aの最後のステップコードであるとき、次の命令B
のデコード処理中に計算されるPC加算器(132)の
出力は、命令Bの先頭番地であり、命令BのPC値であ
るから、PC加算器(132)の出力である命令BのP
C値はpoババス105)からTPC(134)とDP
C(135)の両方に書き込まれる。さらにこのと)A
ステージ瞥が入力コード待ちで、APC(136)が至
急必要とされているなら、POババス105)からAP
C(136)にも命令BのPC値が書き込まれる。
ブリブランチする場合、Dステージ(至)はブリブラン
チ命令の最後のステップコードを出力した後、命令デコ
ーダ(111)の処理を止め、分岐先命令のpc値を計
算するため、DPC(135)の値とDISPバス(1
00)より転送された分岐変位の加算を行う。
チ命令の最後のステップコードを出力した後、命令デコ
ーダ(111)の処理を止め、分岐先命令のpc値を計
算するため、DPC(135)の値とDISPバス(1
00)より転送された分岐変位の加算を行う。
さらに、IFステデー01)に初期化指示を出し、加算
結果セある分岐命令のPC値をTP(: (134)と
DPC(135)に書き込むと共に、〔Aパス(104
)にも出力してQINPC(115)、〔AA (14
2)にも書き込む。
結果セある分岐命令のPC値をTP(: (134)と
DPC(135)に書き込むと共に、〔Aパス(104
)にも出力してQINPC(115)、〔AA (14
2)にも書き込む。
ブリブランチによる分岐先命令アドレス計算の際、奇数
アドレスジャンプトラップの検出も行ない、Dコードゆ
中にその結果をパラメータとして示す。Eステージの瞬
ではブリブランチが正しいと判明した時に、奇数アドレ
スジャンプトラップを起動する。ブリブランチが間違っ
ていて、再びEステージ側で分岐が生じたときはブリブ
ランチで検出した奇数アドレスジャンプトラップは無視
される。このため、Dステージに)で検出された奇数ア
ドレスジャンプトラップはその他のEITとは別扱いと
なっている。また、Eステージ(至)では奇数アドレス
ジャンプトラップの起動処理に奇数となった命令アドレ
スの値を必要とする。このため、Dステージに)は奇数
アドレスジャンプトラップの検出を行ったとき、その奇
数アドレス値をPC値とした特殊なステップコード(0
AJTステツプコード)を発生する。0AJTステツプ
コードに対してAステージ(2)、Fステージ(財)は
そのコードを次のステージに伝える。Eステージ(至)
はブリブランチが正しいと判断し、しかもそのブリブラ
ンチが奇数アドレスジャンプトラップを検出していると
き、CPC(138)を通して次に転送されてくる0A
JTステツプコードのPC値を使用して奇数アドレスジ
ャンプトラップの起動処理を行う。
アドレスジャンプトラップの検出も行ない、Dコードゆ
中にその結果をパラメータとして示す。Eステージの瞬
ではブリブランチが正しいと判明した時に、奇数アドレ
スジャンプトラップを起動する。ブリブランチが間違っ
ていて、再びEステージ側で分岐が生じたときはブリブ
ランチで検出した奇数アドレスジャンプトラップは無視
される。このため、Dステージに)で検出された奇数ア
ドレスジャンプトラップはその他のEITとは別扱いと
なっている。また、Eステージ(至)では奇数アドレス
ジャンプトラップの起動処理に奇数となった命令アドレ
スの値を必要とする。このため、Dステージに)は奇数
アドレスジャンプトラップの検出を行ったとき、その奇
数アドレス値をPC値とした特殊なステップコード(0
AJTステツプコード)を発生する。0AJTステツプ
コードに対してAステージ(2)、Fステージ(財)は
そのコードを次のステージに伝える。Eステージ(至)
はブリブランチが正しいと判断し、しかもそのブリブラ
ンチが奇数アドレスジャンプトラップを検出していると
き、CPC(138)を通して次に転送されてくる0A
JTステツプコードのPC値を使用して奇数アドレスジ
ャンプトラップの起動処理を行う。
Eステージ(2)で分岐が生じたときは分岐先アドレス
がEB(143)から〔Aババス104)を通じてTP
C(134)に転送されてくる。PC計算部Elはこの
値とゼロを加算して結果をPOババス105)からTP
C(134)、DPC(135)に書き込む。これでP
C計算部關の初期化が完了する。この初期化の処理はE
ステージ(至)で分岐が生じた最初の単位デコード処理
とオーバーラツプしてなサレる。f、K オ、QINP
C(115)、〔AA(142)には〔Aババス104
)よりTPC(x34)に値を取り込む際に同じ値がセ
ットされる。
がEB(143)から〔Aババス104)を通じてTP
C(134)に転送されてくる。PC計算部Elはこの
値とゼロを加算して結果をPOババス105)からTP
C(134)、DPC(135)に書き込む。これでP
C計算部關の初期化が完了する。この初期化の処理はE
ステージ(至)で分岐が生じた最初の単位デコード処理
とオーバーラツプしてなサレる。f、K オ、QINP
C(115)、〔AA(142)には〔Aババス104
)よりTPC(x34)に値を取り込む際に同じ値がセ
ットされる。
(4,7)ブリブランチ命令に対するオペランドアドレ
ス計算部の動作 ブリブランチ命令に対して、Dステージ(至)がブリブ
ランチ処理を行わなかった場合、オペランドアドレス計
算部(財)がブリブランチ命令の分岐先アドレスを計算
する。分岐先アドレスの計算は、Aバス(103)より
転送されてくるAPC(136)の値とDISPバス(
100)より転送されてぐる分岐変位値をアドレス加算
器(124)で加算することにより行われる。計算され
た分岐先アドレスはEステージ(至)に伝えられる。A
ステージ崗で、オペランドアドレス計算部(財)を使用
した分岐先アドレスの計算の際は、奇数アドレスジャン
プトラップの検出は行わない。Eステージ(至)に転送
される分岐先アドレスが奇数であることにより、奇数ア
ドレスジャンプトラップの情報が伝えられるのである。
ス計算部の動作 ブリブランチ命令に対して、Dステージ(至)がブリブ
ランチ処理を行わなかった場合、オペランドアドレス計
算部(財)がブリブランチ命令の分岐先アドレスを計算
する。分岐先アドレスの計算は、Aバス(103)より
転送されてくるAPC(136)の値とDISPバス(
100)より転送されてぐる分岐変位値をアドレス加算
器(124)で加算することにより行われる。計算され
た分岐先アドレスはEステージ(至)に伝えられる。A
ステージ崗で、オペランドアドレス計算部(財)を使用
した分岐先アドレスの計算の際は、奇数アドレスジャン
プトラップの検出は行わない。Eステージ(至)に転送
される分岐先アドレスが奇数であることにより、奇数ア
ドレスジャンプトラップの情報が伝えられるのである。
Dステージ(至)がブリブランチ処理をした場合、Bc
c 命令、ACB命令に対しては、Aステージ崗がその
ブリブランチ命令に引き続くアドレスにある次の命令の
PC値を計算する。計算結果はEステージ(至)に伝え
られ、ブリブランチが間違っていたときの再度の分岐先
アドレスとして使用される。
c 命令、ACB命令に対しては、Aステージ崗がその
ブリブランチ命令に引き続くアドレスにある次の命令の
PC値を計算する。計算結果はEステージ(至)に伝え
られ、ブリブランチが間違っていたときの再度の分岐先
アドレスとして使用される。
B(c命令など、Dステージ(132)で1ステツプコ
ードにデコードされる命令に対しては、Aバス(104
)より転送されてくるAPC(136)の値に補正値バ
ス(102)から転送されてくるBcc命令の命令長を
加算して、加算結果をAOババス106)よりFA(1
27)に書き込む。ステップコードが2つ以上に分かれ
るフォーマットをもっACB命令に対してはDISPバ
ス(100)より転送されてくる最後のステップコード
の先頭アドレスであるTPC(13<)の値と補正値バ
ス(102)から転送されてくる最後のステップコード
のデコードで使用した命令コードの長さを加算して、加
算結果をAOババス106)よりFA(127)に書き
込む。
ードにデコードされる命令に対しては、Aバス(104
)より転送されてくるAPC(136)の値に補正値バ
ス(102)から転送されてくるBcc命令の命令長を
加算して、加算結果をAOババス106)よりFA(1
27)に書き込む。ステップコードが2つ以上に分かれ
るフォーマットをもっACB命令に対してはDISPバ
ス(100)より転送されてくる最後のステップコード
の先頭アドレスであるTPC(13<)の値と補正値バ
ス(102)から転送されてくる最後のステップコード
のデコードで使用した命令コードの長さを加算して、加
算結果をAOババス106)よりFA(127)に書き
込む。
BSR命令についてはブリブランチは必ず正しいわけで
あるが、リターンアドレスとしてBSR命令の次の命令
のアドレスが必要なためオペランドアドレス計算部圓で
アドレス計算を行う。BSR命令のフォーマットは第3
3図に示す。第33図で#dsはBSRの分岐変位を3
2ビツトの2進数で指定するフィールドである。BSR
はDステージ(至)で1ステツプコードにデコードされ
る命令であり、Bccと同。
あるが、リターンアドレスとしてBSR命令の次の命令
のアドレスが必要なためオペランドアドレス計算部圓で
アドレス計算を行う。BSR命令のフォーマットは第3
3図に示す。第33図で#dsはBSRの分岐変位を3
2ビツトの2進数で指定するフィールドである。BSR
はDステージ(至)で1ステツプコードにデコードされ
る命令であり、Bccと同。
様にAバス(103)より転送されてくるAPC(13
6)の値と補正値バス(102)より転送されてくるB
SHの命令長との加算を行う。また、BSR命令に対す
るリターンアドレス計算の手法はT:RAP (無条件
トラップ)命令とTRAP/cccc (条件トラップ
)命令でも使用される。
6)の値と補正値バス(102)より転送されてくるB
SHの命令長との加算を行う。また、BSR命令に対す
るリターンアドレス計算の手法はT:RAP (無条件
トラップ)命令とTRAP/cccc (条件トラップ
)命令でも使用される。
TRAPA命令、TRAP/cccc命令もDステージ
(2)で1ステツプコードにデコードされる命令あり、
BSRと同様にアドレッシングモード指定フィールドを
持たず、オペランドアドレス計算部(財)はこれらの命
令のオペランドアドレスの計算は行わない。
(2)で1ステツプコードにデコードされる命令あり、
BSRと同様にアドレッシングモード指定フィールドを
持たず、オペランドアドレス計算部(財)はこれらの命
令のオペランドアドレスの計算は行わない。
TRAPA命令とTRAP/CCCC命令のフォーマッ
トは第34図に示す。第34図で(301)はTRAP
A命令のフォーマット、(302)はTRAP/ccc
c命令のフォーマットである。第34図で#d4はTR
APA命令のベクトル値指定フィールドであり、cCC
C(303)はトラップ条件指定フィールドである。T
RAPA 1TRAP/c c c cではオペランド
アドレスの計算を行わないかわりに、これらの命令のP
C値であるArc (136)と補正値バス(102)
より転送されてくるこれらの命令の命令長との加算を行
う。
トは第34図に示す。第34図で(301)はTRAP
A命令のフォーマット、(302)はTRAP/ccc
c命令のフォーマットである。第34図で#d4はTR
APA命令のベクトル値指定フィールドであり、cCC
C(303)はトラップ条件指定フィールドである。T
RAPA 1TRAP/c c c cではオペランド
アドレスの計算を行わないかわりに、これらの命令のP
C値であるArc (136)と補正値バス(102)
より転送されてくるこれらの命令の命令長との加算を行
う。
(4,8)各分岐命令の処理方法の詳細本発明のデータ
処理装置がプリブランチを行う命令についてここでまと
める。
処理装置がプリブランチを行う命令についてここでまと
める。
(4,s、 1) BRA命令
BRA命令は無条件分岐命令であり、実行されると必ず
分岐を起こす。
分岐を起こす。
BRA命令は必ず分岐を起こすためDステージ(財)で
は分岐予測ビットによらず必ず分岐すると判断してブリ
ブランチ処理をする。Aステージ(ハ)、Fステージ(
財)ではBRA命令はそのまた転送され、EIT検出が
あったどうかを示すフラッグとPC値だけがEステージ
(至)に転送されていく。Eステージ(至)ではBRA
に対して分岐処理はしない。
は分岐予測ビットによらず必ず分岐すると判断してブリ
ブランチ処理をする。Aステージ(ハ)、Fステージ(
財)ではBRA命令はそのまた転送され、EIT検出が
あったどうかを示すフラッグとPC値だけがEステージ
(至)に転送されていく。Eステージ(至)ではBRA
に対して分岐処理はしない。
(4,8,2) BSR命令
BSR命令はサブルーチン分岐命令であり、実行される
とBSHの次のアドレスにある命令のPC値をスタック
にブツシュして、必ず分岐を起こす。命令フォーマット
は第33図に示されている。
とBSHの次のアドレスにある命令のPC値をスタック
にブツシュして、必ず分岐を起こす。命令フォーマット
は第33図に示されている。
BSR命令は必ず分岐を起こすためDステージ(至)で
は分岐予測ビットによらず必ず分岐すると判断してブリ
ブランチ処理をする。Aステージ關ではAPC(136
)とBSHの命令長を加算してサブルーチンからのリタ
ーンアドレスを計算する。計算されたリターンアドレス
はBSRのオペランドとしてEステージL3Qに渡され
る。Eステージ図ではBSR命令に対してリターンアド
レスをスタックにブツシュ′し、分岐処理はしない。
は分岐予測ビットによらず必ず分岐すると判断してブリ
ブランチ処理をする。Aステージ關ではAPC(136
)とBSHの命令長を加算してサブルーチンからのリタ
ーンアドレスを計算する。計算されたリターンアドレス
はBSRのオペランドとしてEステージL3Qに渡され
る。Eステージ図ではBSR命令に対してリターンアド
レスをスタックにブツシュ′し、分岐処理はしない。
(4,8,3) Bcc命令
Bcc命令は条件分布命令で、命令フォーマットは第3
5図に示す。分岐条件cccc (304)は4ビツト
のフィールドである。分岐条件は第35図の分岐条件c
ccc(304)の最下位ビットが「0」か「1」かに
より、分岐条件ン正反対にするようになっている。
5図に示す。分岐条件cccc (304)は4ビツト
のフィールドである。分岐条件は第35図の分岐条件c
ccc(304)の最下位ビットが「0」か「1」かに
より、分岐条件ン正反対にするようになっている。
#dSは分岐変位を32ビツトの2進数で指定するフィ
ールドである。
ールドである。
Bcc命令は分岐確立は過去の実行履歴にかなり依存す
るため、Dステージ(至)では分岐予測テーブル(11
3)から出力される分岐予測ビットの値に従い、分岐す
るかどうかを判断する。Bcc命令の分岐確立の実行履
歴依存性についても上記のJ、K。
るため、Dステージ(至)では分岐予測テーブル(11
3)から出力される分岐予測ビットの値に従い、分岐す
るかどうかを判断する。Bcc命令の分岐確立の実行履
歴依存性についても上記のJ、K。
F、 Lee、 A、 J 、 Sm1th、 「Br
anch Prediction Strategie
sand Branch Target Buffer
De9igld 、 IEEE Computer。
anch Prediction Strategie
sand Branch Target Buffer
De9igld 、 IEEE Computer。
Vol、 17. No、 1 、 January、
1984.で詳しく述べられている。
1984.で詳しく述べられている。
分岐予測ビットが「分岐する」を示している場合にはD
ステージ働でブリブランチ処理を行う。
ステージ働でブリブランチ処理を行う。
ブリブランチが行われた場合には、分岐条件生成回路(
114)で第35図の分岐条件CCCC(304)の最
下位ビットが反転されてEステージ(至)に渡されるた
め、Eス千−ジ(至)ではDステージ(至)でブリブラ
ンチ処理が行われたかどうカリこかかわらず、渡された
分岐条件に従いBcc命令を実行すればよい。もしEス
テージ6四でBcc命令が分岐を起こした場合には、D
ステージ(至)での分岐予測が誤っていたわけであるか
ら、分岐予測テーブル(113)をアクセスし、OPC
(139)で示される場所の分岐予測履歴の更新はEス
テージ01でBcc命令が分岐を起こしたときだけしか
行われないため、Dステージ(2)の分岐予測テーブル
(113)の参照動作がEステージ(至)の更新に妨げ
られることはない。Eステージ(至)で分岐が起きた直
後はDステージ(至)はIFステデー0υからの命令コ
ード待ち状態となる。分岐履歴の書換えは、この命令コ
ード待ち状態の間に行われる。
114)で第35図の分岐条件CCCC(304)の最
下位ビットが反転されてEステージ(至)に渡されるた
め、Eス千−ジ(至)ではDステージ(至)でブリブラ
ンチ処理が行われたかどうカリこかかわらず、渡された
分岐条件に従いBcc命令を実行すればよい。もしEス
テージ6四でBcc命令が分岐を起こした場合には、D
ステージ(至)での分岐予測が誤っていたわけであるか
ら、分岐予測テーブル(113)をアクセスし、OPC
(139)で示される場所の分岐予測履歴の更新はEス
テージ01でBcc命令が分岐を起こしたときだけしか
行われないため、Dステージ(2)の分岐予測テーブル
(113)の参照動作がEステージ(至)の更新に妨げ
られることはない。Eステージ(至)で分岐が起きた直
後はDステージ(至)はIFステデー0υからの命令コ
ード待ち状態となる。分岐履歴の書換えは、この命令コ
ード待ち状態の間に行われる。
Bcc命令がブリブランチ時に奇数アドレスジャンプト
ラップを検出しており、Eステージ(至)で分岐を起こ
さなかったときは奇数アドレスジャンプトラップを起動
する。Bcc命令がブリブランチ時に奇数アドレスジャ
ンプトラップを検出していてもEステージ(至)で再び
分岐;IL−起こしたときはブリブランチ時の奇数アド
レスジャンプトラップ検出は無視される。この機能によ
り分岐処理を行わない13cc命令の実行により、奇数
アドレスジャンプトラップが検出されることはなくなる
。。
ラップを検出しており、Eステージ(至)で分岐を起こ
さなかったときは奇数アドレスジャンプトラップを起動
する。Bcc命令がブリブランチ時に奇数アドレスジャ
ンプトラップを検出していてもEステージ(至)で再び
分岐;IL−起こしたときはブリブランチ時の奇数アド
レスジャンプトラップ検出は無視される。この機能によ
り分岐処理を行わない13cc命令の実行により、奇数
アドレスジャンプトラップが検出されることはなくなる
。。
(4,8,4) ACB命令
ACB命令はループのプリミティブとして使用される命
令である。ACBはループ制御変数を増加して、比較し
、条件ジャンプを行う命令である。
令である。ACBはループ制御変数を増加して、比較し
、条件ジャンプを行う命令である。
ACBのフォーマットは第36図に示す。第36図でE
aRは一般形のアドレッシングモードでループ制御変数
に加算する値を指定するフィールド、EaRXは一船形
アトレシングモードでループ制御変数の比較対象値を指
定するフィールド、RgMXはループ制御変数の存在す
る汎用レジスタ番号を指定するフィールド、#ds8は
分岐変位を8ビツトの2進数で指定するフィールドであ
る。ACBはDステージ(至)で3ステツプコ一ド以上
に分解されてパイプライン上を流れる命令である。
aRは一般形のアドレッシングモードでループ制御変数
に加算する値を指定するフィールド、EaRXは一船形
アトレシングモードでループ制御変数の比較対象値を指
定するフィールド、RgMXはループ制御変数の存在す
る汎用レジスタ番号を指定するフィールド、#ds8は
分岐変位を8ビツトの2進数で指定するフィールドであ
る。ACBはDステージ(至)で3ステツプコ一ド以上
に分解されてパイプライン上を流れる命令である。
ACB 命令は分岐する確率が高いため本発明のデータ
処理装置ではこの命令に対して分岐予測ビットにかかわ
らず、分岐すると判断してブリブランチ処理を行う。
処理装置ではこの命令に対して分岐予測ビットにかかわ
らず、分岐すると判断してブリブランチ処理を行う。
この命令はステップコードが3つ以上(多段間接アドレ
ッシングモードが含まない場合に3つ)になるため、ブ
リブランチ処理を最後のステップコードをDステージ(
至)が出力するときに行う。Dステージ(2)ではAC
BのPC値であるDPC(135)の内容と命令デコー
ダ(111)からDISPバス(100)を通して出力
される分岐変位を加算することにより、ブリブランチ処
理を行う。Aステージ瞥ではブリブランチが間違ってい
たときにそなえ、ACB命令の次のアドレス命令のPC
値を計算するとき、TPC(134)からDISPバス
(100)を通して転送された最後のステップコードの
デコードに使用した命令コードの先頭番地と、補正値バ
ス(102)を通して転送された最後のステップコード
のデコードに使用した命令コードの長さを加算する。
ッシングモードが含まない場合に3つ)になるため、ブ
リブランチ処理を最後のステップコードをDステージ(
至)が出力するときに行う。Dステージ(2)ではAC
BのPC値であるDPC(135)の内容と命令デコー
ダ(111)からDISPバス(100)を通して出力
される分岐変位を加算することにより、ブリブランチ処
理を行う。Aステージ瞥ではブリブランチが間違ってい
たときにそなえ、ACB命令の次のアドレス命令のPC
値を計算するとき、TPC(134)からDISPバス
(100)を通して転送された最後のステップコードの
デコードに使用した命令コードの先頭番地と、補正値バ
ス(102)を通して転送された最後のステップコード
のデコードに使用した命令コードの長さを加算する。
この命令に対してはDステージ(至)で必ずブリブラン
チが行われているので、Eステージ(至)では、分岐条
件の判断を常に逆に行う。ブリブランチ処理が誤ってい
た場合、Eステージ(至)で分岐が起こる。しかし、こ
の命令は分岐予測テーブル(113)に従ってブリブラ
ンチをするものではないので、ブリブランチが間違って
いた場合でも分岐履歴の書換えは行わない。
チが行われているので、Eステージ(至)では、分岐条
件の判断を常に逆に行う。ブリブランチ処理が誤ってい
た場合、Eステージ(至)で分岐が起こる。しかし、こ
の命令は分岐予測テーブル(113)に従ってブリブラ
ンチをするものではないので、ブリブランチが間違って
いた場合でも分岐履歴の書換えは行わない。
またこの命令に対してDステージ(至)でのブリブラン
チ時に奇数アドレスジャンプ例外が検出されたときその
検出はBcc命令と同様にパラメータでEステージ(至
)に伝えられる。Eステージ(9)に伝えられた奇数ア
ドレスジャンプトラップはやはりl3cc命令と同様に
、Eステージ(至)で分岐が行われたときには起動され
ず、分岐が行われなかったときに起動される。この機能
により分岐処理を行わないACB命令の実行により、奇
数アドレスジャンプトラップが検出されることはなくな
る。
チ時に奇数アドレスジャンプ例外が検出されたときその
検出はBcc命令と同様にパラメータでEステージ(至
)に伝えられる。Eステージ(9)に伝えられた奇数ア
ドレスジャンプトラップはやはりl3cc命令と同様に
、Eステージ(至)で分岐が行われたときには起動され
ず、分岐が行われなかったときに起動される。この機能
により分岐処理を行わないACB命令の実行により、奇
数アドレスジャンプトラップが検出されることはなくな
る。
(5)本発明の他の実施例
上記の実施例では、命令デコーダ(111)からPC計
算部の3やオペランドアドレス計算部−に、命令デコー
ドに使用した命令コードの長さを転送するために、補正
値バス(102)と命令長バス(101)の2つのバス
を用いているが、例えば補正値バス(102)からPC
計算部畷への入力経路を設けて、命会長バス(101)
をj1止してもよい。
算部の3やオペランドアドレス計算部−に、命令デコー
ドに使用した命令コードの長さを転送するために、補正
値バス(102)と命令長バス(101)の2つのバス
を用いているが、例えば補正値バス(102)からPC
計算部畷への入力経路を設けて、命会長バス(101)
をj1止してもよい。
また、上記の実施例ではACB命令のブリブランチ処理
でTPC(134)の値をDISPバス(102)を通
して、オペランドアドレス計算部間に転送する例を述べ
たが、このTPC(134)の値の転送はAバス(10
3)で行ってもよい。
でTPC(134)の値をDISPバス(102)を通
して、オペランドアドレス計算部間に転送する例を述べ
たが、このTPC(134)の値の転送はAバス(10
3)で行ってもよい。
(6)本発明の実施態様
本発明は次の1,2項の実施態様により実施できる。
l命令をデコードするデコード機構〔命令デコード部1
2 )と、 プログラムカウンタ値を計算する第1の計算機構(PC
計算部關〕と、 オペランドアドレスを計算する第2の計算機構〔オペラ
ンドアドレス計算部例〕ト、 オペランドに対して演算を行う演算機構〔データ演算部
(56)〕と、 上記第1の計算機構から命令のプログラムカウンタ値を
上記第2の計算機構に転送する第1のバス〔Aバス(t
o3) )と 上記デコード機構から上記第2の計算機構にデコードし
た命令の命令長を転送する第2のバス〔補正値バス(1
02) )とを備え、 上記第2の計算機構で上記第1のバスで送送した命令の
プログラムカウンタ値と上記第2のバスで転送した命令
の命令長を加算することを特徴とするデータ処理装置。
2 )と、 プログラムカウンタ値を計算する第1の計算機構(PC
計算部關〕と、 オペランドアドレスを計算する第2の計算機構〔オペラ
ンドアドレス計算部例〕ト、 オペランドに対して演算を行う演算機構〔データ演算部
(56)〕と、 上記第1の計算機構から命令のプログラムカウンタ値を
上記第2の計算機構に転送する第1のバス〔Aバス(t
o3) )と 上記デコード機構から上記第2の計算機構にデコードし
た命令の命令長を転送する第2のバス〔補正値バス(1
02) )とを備え、 上記第2の計算機構で上記第1のバスで送送した命令の
プログラムカウンタ値と上記第2のバスで転送した命令
の命令長を加算することを特徴とするデータ処理装置。
2上記デコ一ド機構から上記第1の計算機構にサブルー
チン分岐命令(BSR命令〕の分岐変位を転送する第3
のバス(DISPバス(100)〕を備え、上記第1の
計算機構で上記サブルーチン分岐命令のプログラムカウ
ンタ値と上記第3のバスで転送した上記サブルーチン分
岐命令の分岐変位を加算し、 上記第2の計算機構で上記第1のバスで転送した上記サ
ブルーチン分岐命令のプログラムカウンタ値と上記第2
のバスで転送した上記サブルーチン分岐命令の命令長を
加算することを特徴とする第1項記載のデータ処理装置
。
チン分岐命令(BSR命令〕の分岐変位を転送する第3
のバス(DISPバス(100)〕を備え、上記第1の
計算機構で上記サブルーチン分岐命令のプログラムカウ
ンタ値と上記第3のバスで転送した上記サブルーチン分
岐命令の分岐変位を加算し、 上記第2の計算機構で上記第1のバスで転送した上記サ
ブルーチン分岐命令のプログラムカウンタ値と上記第2
のバスで転送した上記サブルーチン分岐命令の命令長を
加算することを特徴とする第1項記載のデータ処理装置
。
一本発明のデータ処理装置では上記のように1ステツプ
コードで処理されるBRA命令、BSR命令、Bcc命
令に対しても複数ステップコードになるACB命令に対
してもDステージ(至)で分岐処理を行うので、多くの
分岐命令に対してパイプライン処理の乱れを少なくでき
る。
コードで処理されるBRA命令、BSR命令、Bcc命
令に対しても複数ステップコードになるACB命令に対
してもDステージ(至)で分岐処理を行うので、多くの
分岐命令に対してパイプライン処理の乱れを少なくでき
る。
第7図にブリブランチを行う本発明のデータ処理装置で
ブリブランチ命令が実行された場合に、パイプライン中
を流れる命令の様子を示す。第7図では命令3及び命令
12は分岐命令であり、本発明のデータ処理装置のブリ
ブランチ処理の対象になる命令である。
ブリブランチ命令が実行された場合に、パイプライン中
を流れる命令の様子を示す。第7図では命令3及び命令
12は分岐命令であり、本発明のデータ処理装置のブリ
ブランチ処理の対象になる命令である。
命令3がDステージ(2)でデコードされ、ブリブラン
チすると判断されると、Dステージ(至)では次にPC
計算部−で分岐先命令のPC値を計算する。次に分岐先
命令がIFステデーOpによりフェッチされ、パイプラ
イン処理対象が早期に命令11に切り替わる。命令4は
処理をキャンセルされる。Dステージ(2)、IFステ
デー0])がブリブランチ処理を行っている間もパイプ
ライン上を先行する命令1や命令2は処理を続行する。
チすると判断されると、Dステージ(至)では次にPC
計算部−で分岐先命令のPC値を計算する。次に分岐先
命令がIFステデーOpによりフェッチされ、パイプラ
イン処理対象が早期に命令11に切り替わる。命令4は
処理をキャンセルされる。Dステージ(2)、IFステ
デー0])がブリブランチ処理を行っている間もパイプ
ライン上を先行する命令1や命令2は処理を続行する。
結果、命令3がEステージ(至)で処理されてから2命
令処理分の時間後に命令11がEステージc3υで処理
される。これは、第6図に示すように、ブリブランチ処
理を行わない従来のデータ処理装置で無駄時間が4命令
処理分であったのに比べ、本発明のデータ処理装置が無
駄時間を半減していることを意味する。
令処理分の時間後に命令11がEステージc3υで処理
される。これは、第6図に示すように、ブリブランチ処
理を行わない従来のデータ処理装置で無駄時間が4命令
処理分であったのに比べ、本発明のデータ処理装置が無
駄時間を半減していることを意味する。
このようにブリブランチはデータ処理装置の高速化に非
常に有効な技術であり、なるべく多くの分岐命令に対し
てブリブランチを行うことが重要である。
常に有効な技術であり、なるべく多くの分岐命令に対し
てブリブランチを行うことが重要である。
本発明では、BSR命令に対してブリブランチを行い、
ブリブランチを行わない場合は分岐先アドレスを計算す
べきオペランドアドレス計算部(財)で、BSR命令の
分岐先ルーチンからの戻り先命令のアドレスを計算する
ことによりBSR命令のパイプライン処理効率を高めて
いる。また、オペランドアドレス計算部図のもつ、サブ
ルーチンからの戻り先命令のアドレスを計算する機能を
汎用的に利用し、TRAPA命令などに対しても、自分
の命令の次の次のアドレスにある命令のPC値を計算し
、命令がEステージ(至)で実行される時間を短くし、
パイプライン処理効率の向上したデータ処理装置を得て
いる。
ブリブランチを行わない場合は分岐先アドレスを計算す
べきオペランドアドレス計算部(財)で、BSR命令の
分岐先ルーチンからの戻り先命令のアドレスを計算する
ことによりBSR命令のパイプライン処理効率を高めて
いる。また、オペランドアドレス計算部図のもつ、サブ
ルーチンからの戻り先命令のアドレスを計算する機能を
汎用的に利用し、TRAPA命令などに対しても、自分
の命令の次の次のアドレスにある命令のPC値を計算し
、命令がEステージ(至)で実行される時間を短くし、
パイプライン処理効率の向上したデータ処理装置を得て
いる。
第1図は本発明のデータ処理装置の分岐命令処理回路の
図、第2図は本発明のデータ処理装置の全体ブロック図
、第3図は本発明のデータ処理装置のパイプラインステ
ージ概要図、第4図は本発明のデータ処理装置の分岐予
測テーブル詳細図、第5図は従来のデータ処理装置のパ
イプラインステージ概要図、第6図は従来のデータ処理
装置での分岐命令処理の様子を示す図、第7図は本発明
のデータ処理装置での分岐命令処理の様子を示す図、第
8図は本発明のデータ処理装置のメモリ上での命令の並
び方を示す図、第9図から第17図は本発明のデータ処
理装置の命令フォーマットの図、第18図から第31図
は本発明のデータ処理装置のアドレッシングモードの説
明図、第32図は本発明のデータ処理装置の命令フォー
マットの特徴を示す図、第33図はBSR命令のフオー
ヤット図、第34図はTRAPA 、 TRAP/c
c c c命令のフォーマ乙ト図、第35図はBcc命
令のフォーマット図、第36図はACB命令のフォーマ
ット図である。 @喝は命令デコード部、關はPC計算部、州はデータ演
算部、(lO2)は補正値バス、(103)はAバスを
示す。
図、第2図は本発明のデータ処理装置の全体ブロック図
、第3図は本発明のデータ処理装置のパイプラインステ
ージ概要図、第4図は本発明のデータ処理装置の分岐予
測テーブル詳細図、第5図は従来のデータ処理装置のパ
イプラインステージ概要図、第6図は従来のデータ処理
装置での分岐命令処理の様子を示す図、第7図は本発明
のデータ処理装置での分岐命令処理の様子を示す図、第
8図は本発明のデータ処理装置のメモリ上での命令の並
び方を示す図、第9図から第17図は本発明のデータ処
理装置の命令フォーマットの図、第18図から第31図
は本発明のデータ処理装置のアドレッシングモードの説
明図、第32図は本発明のデータ処理装置の命令フォー
マットの特徴を示す図、第33図はBSR命令のフオー
ヤット図、第34図はTRAPA 、 TRAP/c
c c c命令のフォーマ乙ト図、第35図はBcc命
令のフォーマット図、第36図はACB命令のフォーマ
ット図である。 @喝は命令デコード部、關はPC計算部、州はデータ演
算部、(lO2)は補正値バス、(103)はAバスを
示す。
Claims (1)
- (1)命令をデコードするデコード機構〔命令デコード
部(52)〕と、 プログラムカウンタ値を計算する第1の計算機構〔PC
計算部(53)〕と、 オペランドアドレスを計算する第2の計算機構〔オペラ
ンドアドレス計算部(54)〕と、オペランドに対して
演算を行う演算機構〔データ演算部(56)〕と、 上記第1の計算機構から命令のプログラムカウンタ値を
上記第2の計算機構に転送する第1のバス〔Aバス(1
03)〕と、 上記デコード機構から上記第2の計算機構にデコードし
た命令の命令長を転送する第2のバス〔補正値バス(1
02)〕とを備え、 上記第2の計算機構で上記第1のバスで転送した命令の
プログラムカウンタ値と上記第2のバスで転送した命令
の命令長を加算することを特徴とするデータ処理装置。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63040025A JPH081600B2 (ja) | 1988-02-23 | 1988-02-23 | データ処理装置 |
| US08/291,963 US5522053A (en) | 1988-02-23 | 1994-08-17 | Branch target and next instruction address calculation in a pipeline processor |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63040025A JPH081600B2 (ja) | 1988-02-23 | 1988-02-23 | データ処理装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH01214933A true JPH01214933A (ja) | 1989-08-29 |
| JPH081600B2 JPH081600B2 (ja) | 1996-01-10 |
Family
ID=12569363
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP63040025A Expired - Fee Related JPH081600B2 (ja) | 1988-02-23 | 1988-02-23 | データ処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH081600B2 (ja) |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS55143653A (en) * | 1979-04-25 | 1980-11-10 | Nec Corp | Branch prefetch computer |
-
1988
- 1988-02-23 JP JP63040025A patent/JPH081600B2/ja not_active Expired - Fee Related
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS55143653A (en) * | 1979-04-25 | 1980-11-10 | Nec Corp | Branch prefetch computer |
Also Published As
| Publication number | Publication date |
|---|---|
| JPH081600B2 (ja) | 1996-01-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5091853A (en) | Chained addressing mode pipelined processor which merges separately decoded parts of a multiple operation instruction | |
| JP2507638B2 (ja) | デ―タ処理装置 | |
| US5404560A (en) | Microprocessor having external control store | |
| JPH05224928A (ja) | データ処理装置 | |
| JP3543181B2 (ja) | データ処理装置 | |
| JP2581236B2 (ja) | データ処理装置 | |
| JPH0810428B2 (ja) | データ処理装置 | |
| JPH01214932A (ja) | データ処理装置 | |
| JPH081599B2 (ja) | データ処理装置 | |
| JPH07120278B2 (ja) | データ処理装置 | |
| JPH07120284B2 (ja) | データ処理装置 | |
| JP3345787B2 (ja) | データ処理装置 | |
| JP2710994B2 (ja) | データ処理装置 | |
| JPH02105937A (ja) | データ処理装置 | |
| JP2646855B2 (ja) | データ処理装置 | |
| JPH01214933A (ja) | データ処理装置 | |
| JP2532560B2 (ja) | 高機能な例外処理を行うデ―タ処理装置 | |
| JP2522048B2 (ja) | マイクロプロセッサ及びそれを使用したデ―タ処理装置 | |
| JPH0769808B2 (ja) | データ処理装置 | |
| JPH0225932A (ja) | データ処理装置 | |
| JP2928879B2 (ja) | データ処理装置 | |
| JPH0298734A (ja) | データ処理装置 | |
| JPH0769804B2 (ja) | データ処理装置 | |
| JPH0218621A (ja) | データ処理装置 | |
| JPH0769807B2 (ja) | データ処理装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| LAPS | Cancellation because of no payment of annual fees |