JPH0254335A - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JPH0254335A
JPH0254335A JP20556488A JP20556488A JPH0254335A JP H0254335 A JPH0254335 A JP H0254335A JP 20556488 A JP20556488 A JP 20556488A JP 20556488 A JP20556488 A JP 20556488A JP H0254335 A JPH0254335 A JP H0254335A
Authority
JP
Japan
Prior art keywords
instruction
address
stage
code
operand
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
Application number
JP20556488A
Other languages
English (en)
Other versions
JPH0769803B2 (ja
Inventor
Naoyoshi Nakano
中野 直佳
Toyohiko Yoshida
豊彦 吉田
Masahito Matsuo
雅仁 松尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP63205564A priority Critical patent/JPH0769803B2/ja
Publication of JPH0254335A publication Critical patent/JPH0254335A/ja
Publication of JPH0769803B2 publication Critical patent/JPH0769803B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 (産業上の利用分野) この発明は、可変長命令セットを処理するデータ処理装
置に係り、特にパイプライン処理機構により並列的にデ
ータ処理を行う装置に関するものである。
〔従来の技術〕
第25図は従来のデータ処理装置におけるバイブライン
処理を説明する機能ブロック図であり、51は命令フェ
ッチステージ(IFステージ)で、メモリより命令コー
ドを取り込み命令デコードステージ(Dステージ)52
に出力する。53はオペランドアドレス計算ステージ(
Aステージ)で、オペランドの実行アドレスを計算する
54はオペランドフェッチステージ(Fステージ)で、
計算されたオペランドアドレスに従うオペランドをメモ
リカラ取り込む。55は命令実行ステージ(Eステージ
)で、オペランドに対して所定の演算を実行する。
次に動作について説明する。
1Fステージ51はメモリから命令コードを取り込みD
ステージ52へ出力する。Dステージ52は、IFステ
ージ51から人力される命令コードを解析して、解析結
果をAステージ53へ出力する。Aステージ53は命令
コード中で指定されたオペランドの実行アドレス計算を
行い、計算したオペランドアドレスをFステージ54へ
出力する。Fステージ54はAステージ53から入力さ
れたオペランドアドレスに従いメモリよりオペランドを
取り込む。取り込んだオペランドはEステージ55へ出
力する。Eステージ55はFステージ54から入力され
たオペランドに対して命令コード中で指定された演算を
実行する。さらに、必要ならその演算結果をメモリへ書
き込む。
前記のようにパイプライン化されたデータ処理装置では
、各命令で指定される処理は、例えば5つに分解され、
5つの処理を順番に実行することにより、指定された処
理を完了する。
各々5つの処理は異なる命令に対しては並列動作させる
ことが可能であり、理想的には上記の5段のパイプライ
ン処理機構により5つの命令を同時に並列処理し、パイ
プライン処理を行わない場合に比べて、最大で5倍の処
理能力を発揮させることができるように構成されている
そして、上記のようなパイプライン処理を行うデータ処
理装置において、例えばサブルーチンヘジャンブする命
令を実行する場合、サブルーチンからリターンする命令
で参照することを目的としてサブルーチンヘジャンブす
る命令の次の命令の番地であるアブルーチンからの戻り
先番地をスタックに積む操作が必要となる。
この場合、一般にサブルーチンヘジャンプする命令をパ
イプライン処理する場合、Eステージ55で戻り先番地
をスタックに積む操作が可能なように、プログラムカウ
ンタ(pc)計算部において、サブルーチンヘジャンブ
する命令の先頭番地とこの命令の命令長を加算してサブ
ルーチンからの戻り先命令の番地を算出し、Eステージ
55で操作可能なレジスタに格納しておくか、またはサ
ブルーチンヘジャンブする命令の番地とこの命令の命令
長をEステージ55で操作可能なレジスタに格納してお
き、Eステージ55において両者を加算し戻り先番地を
得る処理を行う。
また、制御レジスタに値をロードする命令を実行する場
合、制御レジスタに新たな値が書き込まれた時点でそれ
以後に実行される命令を処理する条件が変化する。従っ
て、この制御レジスタに値をロードする命令をEステー
ジ55で実行した際、後続のパイプライン内に取り込ま
れている命令は、この制御レジスタに値をロードする命
令が実行される以前の制御値によって行われたものであ
り、正しい処理であるかどうかが保証されない。
従って、Eステージ55で制御レジスタに値をロードし
た後、パイプライン内で処理されている後続の命令をキ
ャンセルする処理を行う。
(発明が解決しようとする課題) このように従来のパイプライン処理を行うデータ処理装
置においては、以上のようにサブルーチンヘジャンブす
る命令を処理する際、下記(1)。
(2)の何れかを設けなければならない特有の問題点が
あった。
(1)  サブルーチンからの戻り先番地の計算をプロ
グラムカウンタ計算部(PC計算部)に行わゼた場合、
命令実行ステージ55でこの戻り先番地が処理されるま
でこの戻り先番地を保持するラッチを設ける。
(2)  サブルーチンヘジャンブする命令の先頭番地
とこの命令の命令長をこの命令が実行される時点まで保
持し、命令実行ステージ55で戻り先番地を計算する場
合、この命令が命令実行ステージ55へ到達するまでこ
の戻り先番地と命令長を保持し、命令実行ステージ55
で操作可能なラッチを設ける。
この発明は、上記の問題点を解決するためになされたも
ので、特定の命令を処理する際、その命令を複数のパイ
プライン処理単位にデコードして順次後段の処理ステー
ジに転送することにより、命令フェッチに並行して特定
命令に処理に必要なアドレスをパイプライン内に効率的
に転送できるデータ処理装置を得ることを目的とする。
(課題を解決するための手段〕 この発明に係るデータ処理装置は、1つの命令を第2の
パイプラインステージに対する1つまたは複数の単位処
理コードに分解してデコードする分解デコード手段と、
この分解デコード手段によりデコードされた各単位処理
コードに基づいて前記命令に対する複数のアドレス演算
を実行するアドレス演算手段と、このアドレス演算手段
により演算された命令アドレスを前記単位処理コードと
して後段の第2のパイプラインステージに転送する転送
手段とを設けたものである。
〔作用〕
この発明においては、命令フェッチが実行されて、1つ
の命令が第1のパイプラインステージに出力されると、
分解デコード手段が1つの命令を第2のパイプラインス
テージに対する1つまたは複数の単位処理コードに分解
してデコードし、アドレス演算手段が1つまたは複数の
単位処理コードに分解された各単位処理コードに基づい
て命令に対する複数のアドレス演算を実行する。そして
、転送手段が演算された命令アドレスを単位処理コード
として後段の第2のパイプラインステージに順次転送す
る。
〔実施例〕
第1図はこの発明の一実施例を示すデータ処理装置の構
成を説明するブロック図であり、1は命令フェッチ部で
、ブランチバッファ、命令キュ、制御部等から構成され
、次にフェッチすべき命令のアドレスを決定してブラン
チバッファやCPU外部のメモリから命令をフェッチす
る。また、ブランチバッファへの命令登録も行う。
ブランチバッファは小規模であるため、セレクティブキ
ャッシュとして動作する。フランチバッファの動作の詳
細は特願昭61−202041号に詳しく述べられてい
る。
次に、フェッチすべき命令のアドレスは命令キューに入
力すべき命令のアドレスとして専用のカウンタで計算さ
れる。分岐やジャンプが起ぎたときには、新な命令のア
ドレスが後述するPC計算部3やデータ演算部6より転
送されてくる。
また、CPU外部のメモリから命令をフェッチするとき
は、外部バスインタフェース部7を通して、フェッチす
べき命令のアドレスをアドレス出力回路8からCPU外
部に出力し、データ入出力回路9から命令コードをフェ
ッチする。バッファリングした命令コードのうち、命令
デコード部2で次にデコードすべき命令コードを命令デ
コード部2に出力する。
命令デコード部2では、基本的に16ビツト(ハーフワ
ード)単位に命令コードをデコードする。このブロック
には第1ハーフワードに含まれるオペコードをデコード
するFHWデコーダ、第2、第3ハーフワードに含まれ
るオペコードをデコードするNFHWデコーダ、アドレ
ッシングモードをデコードするアドレッシングモードデ
コーダが含まれる。
さらに、FHWデコーダ、NFHWデコーダの出力をさ
らにデコードして、マイクロROMのエントリアドレス
を計算するデコーダ、条件分岐命令の分岐予測を行う分
岐予測機構、オペランドアドレス計算のときのパイプラ
インコンフリクトをチエツクするアドレス計算コンフリ
クトチエツク機構も具備されている。
なお、命令デコード部2は、命令フェッチ部1より入力
された命令コードを2クロツクにつき0〜6バイトデコ
ードする。デコード結果のうち、データ演算部6での演
算に関する情報がマイクロROM部5に、オペランドア
ドレス計算に関係する情報がアベランドアドレス計算部
4に、プログラムカウンタ計算に関係する情報がPC計
算部3にそれぞれ出力される。
pc計算部3は、命令デコード部2から出力されるPC
計算に関係する情報でハードワイヤードに制御され、目
側のPC値を計算する。なお、この実施例におけるデー
タ処理装置においては、後述する可変長命令セットをも
っており、命令をデコードしてみないとその命令の長さ
が分からない。そこで、PC計算部3は、命令デコード
部2から出力される命令長をデコード中の命令のPC値
に加算することにより、次の命令のPC値を作り出す。
また、命令デコード部2が、分岐命令をデコードしてデ
コード段階での分岐を指示したときは、命令長の代わり
に分岐変位を分岐命令のPC値に加算することにより、
分岐先命令のPC値を計算する。分岐命令に対して命令
デコード段階で分岐を行うことをブリブランチという。
なお、このプリブランチ時 1204500号、特願昭61−200557号等に詳
しく記載されているので説明は省略する。
PC計算部3の計算結果は、各命令のpc値として命令
のデコード結果とともに出力されるほか、プリブランチ
時には、次にデコードすべき命令のアドレスとして命令
フェッチ部1に出力される。
また、次に命令デコード部2でデコードされる命令の分
岐予測のためのアドレスにも使用される。なお、上記分
岐予測処理については特願昭62−8394号等の詳細
に説明されている。
オペランドアドレス計算部4は、命令コード部2のアド
レスデコーダなどから出力されたオペランドアドレス計
算に関係する情報によりハードワイヤード制御される。
このブロックではオペランドのアドレス計算に関する殆
どの処理が行われる。アドレス計算結果は、外部バスイ
ンタフェース7に送られる。アドレス計算に必要な汎用
レジスタやプログラムの値はデータ演算部6より入力さ
れる。なお、メモリ間接アドレッシングを行うときは、
外部バスインタフェース部7を通してアドレス出力回路
8からCPU外部に参照すべきメモリアドレスを出力し
、データ入出力部回路9から入力された間接アドレス値
を命令デコード部2を通してフェッチする・ マイクロROM部5には、主にデータ演算部6を制御す
るマイクロプログラムが格納されているマイクロROM
、マイクロシーケンサ、マイクロ命令デコーダ等が設け
られており、マイクロ命令はマイクロROMから2クロ
ツクに1度読み出される。また、マイクロROM部5は
ストアバッファの管理も行う。マイクロROM部5には
命令コードに依存しない割込みや演算実行結果によるフ
ラッグ情報と、デコーダの出力など命令デコード部2の
出力が入力される。マイクロデコーダの出力は主にデー
タ演算部6に対して出力されるが、ジャンプ命令の実行
による他の先行処理中止情報環一部の情報は他のブロッ
クへも出力される。
データ演算部6はマイクロプログラムにより制御され、
マイクロROM部5の出力情報に従い、各命令の機能を
実現するのに必要な演算をレジスタと演算器で実行する
。オペランドアドレス計算部4で計算されたアドレスを
外部バスインタフェース部7を通して得る場合や、その
アドレスでフェッチを行ったオペランドをデータ入出力
回路9から得る場合もある。
演算器としては、ALU、バレルシフタ、プライオリテ
ィエンコーダやカウンタ、シフトレジスタ等がある。レ
ジスタと主な演算器の間は3バスで結合されており、1
つのレジスタ間演算を指示する1マイクロ命令を2クロ
ツクサイクルで処理する。
データ演算のとき、CPU外部のメモリをアクセスする
必要がある時は、マイクロプログラムの指示により外部
バスインタフェース部7を通してアドレス出力回路8か
らアドレスをCPU外部に出力し、データ入出力回路1
9を通して目的のデータをフェッチする0 CPU外部のメモリにデータをストアするときは、外部
バスインタフェース部7を通してアドレス出力回路8よ
りアドレスを出力すると同時に、データ入出力回路9か
らデータをCPU外部に出力する。オペランドストアを
効率的に行うためデータ演算部6には4バイトのストア
バッファがある。なお、ジャンプ命令の処理や例外処理
等を行って新たな命令アドレスをデータ演算部6が得た
ときは、これを命令フェッチ部1とPC計算部3に出力
する。
外部バスインタフェース部7は、外部バスでの通信を制
御し、特にメモリアクセスはすべてクロック同期で行わ
れ、最小2クロックサイクルで行うことができる。
メモリに対するアクセス要求は命令フェッチ部1、オペ
ランドアドレス計算部4.データ演算部6から独立に発
生し、外部バスインタフェース部7は、これらのメモリ
アクセス要求を調停する。
さらに、メモリとCPUを結ぶデータバスサイズである
32ビツト(ワード)の整置境界をまたぐメモリ番地に
あるデータのアクセスは、このブロック内で自動的にワ
ード境界をまたぐことを検知して、2回のメモリアクセ
スに分解して行う。
ブリフェッチするオペランドとストアするオペランドが
重なる場合の、コンフリクト防止処理やストアオペラン
ドからフェッチオペランドへのバイパス処理も行う。
なお、命令フェッチ部1に命令がフェッチされて、1つ
の命令が後述する第2図(a)に示すDステージ12(
第1のパイプラインステージ)に出力されると、分解デ
コード手段となる命令デコード部2が1つの命令を第2
のパイプラインステージとなるAステージ13に対する
1つまたは複数の単位処理コードに分解してデコードし
、アドレス演算手段となるPC計算部3が1つまたは複
数の単位処理コードに分解された各単位処理コードに基
づいて命令に対する複数のアドレス演算を実行する。そ
して、転送手段を兼ねるオペランドアドレス計算部4が
演算された、例えばサブルーチンジャンプ命令の飛び先
アドレス、戻り先アドレスまたは複数のロード命令によ
る次命令の先頭アドレス等のアドレス情報を単位処理コ
ードとして後段の第2のパイプラインステージに順次内
部バスを介して転送する(詳細は後述する)。
第2図(a)は、第1図に示したデータ処理装置のパイ
プライン処理を説明する構成ブロック図であり、11は
命令フェッチステージ(IFステージ)で、命令のブリ
フェッチを行い、命令コード21を後段のステージに出
力する。12はデコードステージ(Dステージ)で、命
令コード21をデコードし、オペランドアドレス計算を
実行し、オペコードの中間デコード結果となるDコード
22.アドレス計算情報となるAコード23を後段のス
テージに出力する。13はオペランドアドレス計算ステ
ージ(Aステージ)で、レジスタやメモリの書込み予約
およびマイクロプログラムのエントリ番地とマイクロプ
ログラムに対するパラメニタ等からなるRコード24お
よびアドレス計算結果となるFコード25を出力する。
14はオペランドフェッチステージ(Fステージ)で、
マイクロROMアクセスを行うRステージ16゜オペラ
ンドのブリフェッチを行うOFステージ17から構成さ
れ、Rステージ16は、実行制御コードとなるEコード
26を生成し、OFステージ17はフェッチしたオペラ
ンドとなるSコード27をそれぞれ実行ステージ(Eス
テージ)15へ出力するといった、例えば5段構成のパ
イプライン処理を実行する。なお、Eステージ15では
、1段のストアバッファがあるほか、高機能命令の一部
は命令実行自体をパイプライン化するため、実際には5
段以上のパイプライン処理と同等の処理を行える。
また、各ステージは、他のステージとは独立に動作し、
理論上は5つのステージが完全に独立動作する。各ステ
ージは1回の処理を最小2クロックで実行可能となって
いる。さらに、この実施例におけるデータ処理装置にお
いては、メモリーメモリ間演算や、メモリ間接アドレッ
シング等、基本パイプライン処理1回だけでは処理が行
えない命令があるが、これらの処理に対してもなるべく
均衡したパイプライン処理が行えるように設計されてい
る。複数のメモリオペランドをもつ命令に対してはメモ
リオペランドの数をもとに、デコード段階で複数のパイ
プライン処理単位(ステップコード)に分解してパイプ
ライン処理を行うのである。特にパイプライン処理単位
の分解方法については、特願昭61−236456号に
詳しく記載されており、ここでの説明は省略する。
次に第2図(b)を参照しながらこの発明におけるパイ
プライン処理単位について説明する。
第2図(b)は基本的命令フォーマットを説明する模式
図であり、この実施例における各命令は、例えば2バイ
トの命令基本部、O〜4バイトのアドレッシング拡張部
を1〜3回繰り返すことにより構成される。
パイプライン処理単位は、命令セットのフォーマットの
特徴を利用して決定され、この実施例における命令は、
2バイト車位の可変長命令であり、第2図(b)に示す
ように基本的には2バイトの命令基本部+0〜4バイト
のアドレッシング拡張部を1〜3回繰り返すことにより
、1命令が構成されていて、命令基本部には多くの場合
オペコード部とアドレッシングモード指定部があり、命
令により2または4バイトの命令固有の拡張部が最後に
付く。
命令基本部には命令のオペコード、基本アドレッシング
モード、リテラル等が含まれ、アドレッシング拡張部は
、ディスプレイスメント、絶対アドレス、即値1分岐命
令の変位の何れかである。
また、命令固有の拡張部には、レジスタマツプ。
I−f o rryxa を命令の即値指定等がある。
次に第2図(a)における各ステージの動作について説
明する。
Dステージ12では、2バイトの命令基本部子〇〜4バ
イトのアドレッシング拡張部または命令固有の拡張部を
1つのデコード単位として処理する。そして、各回のデ
コード結果をステップコードと呼び、Aステージ13以
降ではこのステップコードをパイプライン処理の単位と
している。なお、ステップコードの数は命令毎に固有で
あり、1つの命令は最小1個、最大3個のステップコー
ドに分かれる。そして、パイプライン上に存在するステ
ップコードはすべて別命令に対するものである可能性が
あり、プログラムカウンタの値はステップコード毎に管
理する。すべてのステップコードはそのステップコード
のもとになった命令のプログラムカウンタ値を持つ。ス
テップコードに付属してパイプラインの各ステージを流
れるプログラムカウンタ値はステッププログラムカウン
タ(spc)と呼ばれ、このステッププログラムカウン
タは、パイプラインステージを次々と受は渡されて行く
各パイプラインステージの入出カステップコードには第
2図(a)に示したようなコード名が付記されるが、ス
テップコードは、オペコードに関する処理を行って、マ
イクロROMのエントリ番地やEステージ15に対する
パラメータ等になる系列と、Eステージ15のマイクロ
命令に対するオペランドになる系列の2系列に分かれる
IFステージ11は、命令を外部メモリやブランチバッ
ファからフェッチし、命令キューに入力して、Dステー
ジ12に対して命令コード21を出力する。命令キュー
の入力は整置された4バイト単位で行う。メモリから命
令をフェッチするときは整置された4バイトにつき最小
2クロックを要する。ブランチバッファがヒツトした時
は、整置された4バイトにつき1クロツクでフェッチ可
能となる。命令キューの出力単位は2バイト毎に可変で
あり、2クロツクの間に最大6バイトまで出力できる。
また、分岐の直後には命令キューをバイパスして命令基
本部に2バイトを直接命令デコーダに転送することもで
きる。
ブランチバッファへの命令の登録やクリア等の制御、ブ
リフェッチ先命令アドレスの管理や命令キューの制御も
IFステージ11で行う9次にフェッチすべき命令のア
ドレスは、命令キューに入力すべき命令のアドレスとし
て専用のカウンタで計算される。分岐やジャンプが発生
した時には、新たな命令のアドレスが、第1図に示した
PC計算部3.データ演算部6から内部バスを介して転
送されてくる。
命令コード21がDステージ12に入力されると、Dス
テージ12は命令シード21を、第1図に示した命令デ
コード部2のFHデコーダ、NFHWデコーダ、アドレ
ッシングモードデコーダ等を使用し、2クロック単位に
1度デコードする。
1回のデコード処理で、0〜6バイトの命令コードを消
費し、1回のデコードでAステージ13に対してアドレ
ス計算情報となるAコード23(約35ビツトの制御コ
ードと最大32ビツトアドレス修飾情報)と、オペコー
ドの中間デコード結果となるDコード22を約50ビツ
トの制御コードと8ビツトのリテラル情報とをAステー
ジ13に出力する。
なお、Dステージ12では、各命令のPC計算部3の制
御1分岐予測処理、ブリブランチ命令に対するブリブラ
ンチ処理、命令キューからの命令コード出力制御も行う
Aステージ13に対してAコード23(約35ビツトの
制御コード、最大32ビツトアドレス修飾情報)と、オ
ペコードの中間デコード結果となるDコード22が入力
されると、Aステージ13は大別して2つの処理を行う
一方は、命令デコード部2のデコーダを使用してオペコ
ードの後段デコードを行う処理で、他方はオペランドア
ドレス計算部4でオペランドアドレスの計算を行う処理
である。
オペコードの後段デコード処理は、Dコード22を入力
とし、レジスタやメモリの書込み予約およびマイクロプ
ログラムのエントリ番地とマイクロプログラムに対する
パラメータ等を含むRコード24の出力を行う。なお、
レジスタやメモリの書込み予約は、アドレス計算で参照
したレジスタやメモリの内容が、パイプライン上を先行
する命令で書き換えられ、誤りたアドレス計算が行われ
るのを防ぐためのものである。レジスタやメモリの書込
み予約は、デッドロックを避けるため、ステップコード
毎に行うのではなく命令毎に行う。
なお、レジスタやメモリの書込み予約については、特願
昭62−144394号等に詳しく記載されている。
一方、オペランドアドレス計算処理については、Aコー
ド23を入力とし、Aコード23に従いオペランドアド
レス計算部4で加算やメモリ間接参照を組み合わせてア
ドレス計算を行い、その計算結果をFコード25として
出力する。この際、アドレス計算に伴うレジスタやメモ
リの読出し時にコンフリクトチエツクを行い、先行命令
がレジスタやメモリに書き込み処理を終了していないた
めコンフリクトが指示されれば、先行命令がEステージ
15で書き込み処理を終了するまで待つ。また、オペラ
ンドアドレスやメモリ間接参照のアドレスがメモリにマ
ツプされたI10領域に入るかどうかのチエツクも行う
また、Aステージ13では、スタックからのポツプ操作
、スタックへのブツシュ操作等によるスタックポインタ
(sp)のコンフリクトを防ぐためEステージ15のス
タックポインタ(sp)に先行するAステージスタック
ポインタ(ASP)を備えており、ポツプ、ブツシュ操
作に伴うAステージスタックポインタ(ASP)の更新
はこのステージで行われる。従って、通常のホップ、ブ
ツシュ操作に伴うAステージスタックポインタ(ASP
)の更新は、このステージで行われる。
従って、通常のホップ、ブツシュ操作直後でもAステー
ジスタックポインタ(ASP)を参照することにより、
スタックポインタ(sp)のコンフリクトでステップコ
ードの処理を遅らせることなく処理を進めることができ
る。なお、スタックポインタ(sp)の管理方法につい
ては、特願昭62−145852号に詳細に記載されて
いる。
Aステージ13の後段ステージとなるFステージ14も
、上記のようにコード処理が大きく2つに分かれ、マイ
クロROMのアクセス処理を行うRステージ16と、オ
ペランドプリフェッチ処理を行うOFステージ17とか
ら構成されている。
なお、Rステージ16とOFステージ17とが必ずしも
同時に動作するわけではなく、メモリ・アクセス権が獲
得できるかどうかなどに依存して、独立に動作する。
Rステージ16の処理となるマイクロROMアクセス処
理は、Rコード24に対して次のEステージ15での実
行に使用する実行制御コードであるEコード26を作り
出すためのマイクロROMアクセスとマイクロ命令デコ
ード処理である。
1つのRコードに対する処理が2つ以上のマイクロプロ
グラムに分解される場合、マイクロROMはEステージ
15で使用され、次のRコード24はマイクロROMア
クセス待ちになる。Rコード24に対するマイクロRO
Mアクセスが行われるのは、その前のEステージ15で
の最後のマイクロ命令実行の時である。なお、この実施
例におけるデータ処理装置においては、殆どの基本命令
は1マイクロプログラムステツプで行われるため、実際
にはRコード24に対するマイクロROM7クセスが次
々と行われることが多い。
一方、OFステージ17では、Fステージ14で行う2
つの処理のうち、オペランドプリフェッチ処理を行う。
オペランドブリフェッチはFコード25を入力とし、フ
ェッチしたオペランドとそのアドレスをSコード27と
して出力する。1つのFコード25では、ワード境界を
またいでもよいが4バイト以下のオペランドフェッチを
指定する。Fコード25にはオペランドのアクセスを行
うかどうかの指定も含まれており、Aステージ13で計
算したオペランドアドレス自体や即値をEステージ15
に転送する場合にはオペランドフェッチを行わず、Fコ
ード25の内容をSコード27として転送する。また、
プリフェッチしようとするオペランドとEステージ15
が書き込み処理を行おうとするオペランドが包含関係を
満たすときには、オペランドプリフェッチに関してメモ
リアクセスは行わず、Eステージ15が書き込もうとす
る値をバイパスする。
また、I10領域に対してはオペランドブリフェッチを
遅延させ、先行命令がすべて完了するまで待ってオペラ
ンドフェッチを行う。
Fステージ14よりEコード26.Sコード27がEス
テージ15に入力されると、各種演算器を用いたデータ
の処理、データのリード、ライト等の処理を実行する。
演算器としてはALU。
バレルシフタ、プライオリティエンコーダ、カウンタ、
シフトレジスタ等がある。このEステージ15が命令を
実行するステージであり、Fステージ14以前のステー
ジで行われた処理は、すべてEステージ15のための前
処理である。Eステージ15でジャンプ命令が実行され
たときは、IFステージ11〜Fステージ14までの処
理はすべて無効化され、飛び先番地が命令フェッチ部1
とPC計算部3に出力される。Eステージ15は、マイ
クロプログラムにより制御され、Rコード24に示され
たマイクロプログラムのエントリ番地からの一連のマイ
クロプログラムを実行することにより命令を実行する。
マイクロROMの読み出しとマイクロ命令の実行は、パ
イプライン化されて行われる。従って、マイクロプログ
ラムで分岐が起きたときは、1マイクロステツプの空き
ができる。
また、Eステージ15はデータ演算部6にあるストアバ
ッファを利用して、4バイト以内のオペランドストアと
次のマイクロ命令実行をパイプライン処理することもで
きる。
Eステージ15ではAステージ13で行ったレジスタや
メモリに対する書き込み予約をオペランドの書き込みの
後解除する。
パイプラインの各ステージは、人力ラッチと出力ラッチ
を持ち、他のステージとは独立に動作することを基本と
する。各ステージは1つ前に行った処理が終り、その処
理結果を出力ラッチから次のステージの入力ラッチに転
送し、自分のステージの入力ラッチに次の処理に必要な
入力信号がすべて揃えば次の処理を開始する機構になっ
ており、各ステージは、1つ前段のステージから出方さ
れてくる次の処理に対する入力信号がすべて有効となり
、今の処理結果を後段のステージの入力ラッチに転送し
て出力ラッチが空になると、次の処理を開始する。
各ステージが動作する1つ前のクロックタイミングで人
力信号がすべて揃っている必要がある。
人力信舟が揃っていないと、そのステージは待ち状態(
人力待ち)になる。出力ラッチから次のステージの人力
ラッチへの転送を行うときは、次のステージの人力ラッ
チが空き状態になっている必要があり、次のステージの
入力ラッチが空きでない場合も、パイプラインステージ
は待ち状態(出力待ち)になる。必要なメモリアクセス
権が獲得できなかったり、処理しているメモリアクセス
にウェイトが挿入されたり、その他のパイプラインコン
フリクトが生じると、各ステージの処理自体が遅延する
次に第3図を参照しながら第1図の処理機能について詳
細に説明する。
第3図は、第1図に示したデータ処理装置の詳細ブロッ
ク図であり、以下、特にサブルーチンジャンブ命令(J
SR命令)および制御レジスタへの値のロード命令(L
DC命令)に基づくデータ処理を構成とともに説明する
命令デコード部2とpc加算器3bの入力端。
アドレス加算器4dの入力端は、ディスプレースメント
値9分岐命令の変位値を転送するDISPバス30で結
ばれている。命令デコード部2とアドレス加算器4dの
入力側はステップコード生成に使用した命令コード長、
スタックブツシュモードの時のブリデクトメント値等を
転送する補正値バス32で結ばれている。また、命令デ
コード部2とPC加算器3bの入力端はステップコード
の生成に使用した命令コード長を転送する命令長バス3
1で結ばれている。レジスタファイル6dとアドレス加
算器4dの入力側はレジスタファイル6dに蓄えられて
いるアドレス値を転送するAバス33で結ばれている。
命令長バス31の値とDISPバス30の値のどちらか
を選択して人力する被加算値選択回路3aの出力と、D
ステージ12でデコードした命令のPC値を保持するD
PCラッチ3dまたはステップコードの切れ回毎の作業
用PC値を保持するTPOラッチ3dの何れかとは、P
C加算器3bに人力される。pc加算器3bの出力は、
PC加算器出力ラッチ3cを通してCAババス6やPo
バス37に出力される。Poバス37は、Tpcラッチ
3d、DPCラッチ3eおよびAステージ13で処理中
の命令のPC値を保持するAPCラッチ3fに結合して
いる。TPCラッチ3dにはEステージ15で分岐やジ
ャンプが生じたときに新たな命令番地を入力するため、
CAババス6からの人力経路もある、 補正値バス32の値とDISPバス30の値は、ディス
プレースメント選択回路4bに人力され、どちらか一方
がアドレス加算器4dに入力される。DISPバス30
の値とAバス33の値はベースアドレス選択回路4cに
人力され、どちらか一方がアドレス加算器4dに入力さ
れる。アドレス加算器4dは、ディスプレースメント選
択回路4bの出力、ベースアドレス選択回路4Cの出力
およびAバス33より入力された値をシフトすることに
より、1倍、2倍、4倍、8倍の値とするインデックス
値生成回路4aの出力の計3つの値を入力として、3値
加算を行う。アドレス加算器4dの出力値は、アドレス
加算器出力ラッチ4eを通してAOババス4に出力され
る。AOババス4は、Fステージ14でのオペランドフ
ェッチ時にAAババス5を通してアドレス出力回路8か
らCPU外部に出力するオペランドアドレス値を保持す
るFAラッチ7aに接続されている。
FAラッチ7aは、アドレス加算器4dで計算されたオ
ペランドアドレスをEステージ15で使用するためにオ
ペランドアドレスを保持するSAラッチ7bへの出力経
路を持つ。SAラッチ7bはデータ演算部6の汎用デー
タバスであるS1バス38への出力経路を持つ。命令の
アドレスを転送するCAババス6は、アドレス加算器出
力ラッチ4eと、TPCラッチ3d、命令フェッチ部1
がブリフェッチする命令コードの番地を管理するQIN
PCカウンタ1bからCPU外部に出力するときその値
を保持するCAAラッチ7cと、Eステージ15で分岐
やジャンプが起きたときに、新たな命令番地を32バス
39から人力するEBクラッチCとに結合している。A
PCラッチ3eは、Aバス33と、Fステージ14で処
理中のPC値を保持するラッチFPC3fとに出力経路
がある。FPCラッチ3gはEステージ15で処理中の
命令のPC値を保持するCPCラッチ3hへの出力経路
を持つ。また、CPCラッチ3hは、S1バス38との
間で入出力経路を持つ。レジスタファイル6dは、汎用
レジスタや作業用レジスタ等からなり、S1バス38.
S2バス39およびAパス33への出力経路を持ち、D
○ババス0からの入力経路を持つ。データ演算器6の演
算機構であるデータ演算部6eは、S1バス38.S2
バス39からの人力経路を持ち、DOババス0への出力
経路を持つ。
データ処理装置のステータス情報が格納されているPS
Wレジスタ、コンテキストブロックのベースアドレスが
格納されているレジスタ、デバッフサポート機構の動作
モード情報を格納するレジスタやブランチバッファのモ
ード情報を格納するレジスタ等からなる制御レジスタ群
6bは、DOババス0からの入力経路を持ち、S2バス
39への出力経路を持つ。Eステージ15が用いるデー
タのフェッチおよびストアアドレスを格納するAAレジ
スタ7dはS1バス38からの入力経路を持ち、AAバ
バス5への出力経路を持つ。Eステージ15が処理する
フェッチデータおよびストアデータを格納するDDレジ
スタ6fはDOババス0からの人力経路を持ち、S1バ
ス38.S2バス39への出力経路を持つとともに、D
Dババス1への入出力経路を持つ。Fステージ14でF
Aラッチ7aに格納されたオペランドアドレスによって
外部メモリよりフェッチされたオペランドデータを保持
するSDクラッチgは、DDババス1からの入力経路と
S1バス38.S2バス39への出力経路を持つ。4f
はスタックポインタ(Asp)で、Aステージ13によ
り管理され、D。
バス40からの入力経路を持ち、Aバス33およびFス
テージ14が管理するスタックポインタ(FSP)4g
への出力経路を持つ。
スタックポインタ(FSP)4gは、スタックポインタ
(ASP)4fからの入力経路を持ち、Eステージ15
が管理するスタックポインタ(CSP)6aへの出力経
路を持つ。スタックポインタ(CSP)6aは、Doバ
バス0とスタックポインタ(FSP)4gからの入力経
路を持ち、S1バス38.S2バス39への出力経路を
持つ。
次にサブルーチンジャンプ命令(JSR命令)および制
御レジスタへの値のロード命令(LDC命令)に基づく
パイプライン処理を説明するために、特にpc計算部3
の詳細動作について説明する。
PC計算部3はDステージ12で命令コードがデコード
されるとき、1つ前にデコードされた命令コードの長さ
情報とその1つ前にデコードされた命令コードの先頭番
地とからデコード中の命令コードの先頭番地を計算する
。PC計算部3ではDPCラッチ3eに命令の切れ目の
アドレスである命令のPC値を保持し、TPOラッチ3
dにステップコードの切れ目のアドレスを保持させる。
このとき、DPCラッチ3eは命令の切れ目のアドレス
が計算された場合に限って更新され、TPOラッチ3d
はステップコードの切れ目のアドレスが計算される毎に
更新される。パイプライン上で処理されるステップコー
ドのPC値は、そのステップコードの元になった命令の
PC値が必要であるため、DPCラッチ3eの値がAP
Cラッチ3f、FPCラッチ3g、CPCラッチhと転
送されて行く。
なお、命令コード処理は、上述したようにステップコー
ド単位に行われ、1回のデコード処理で0〜6バイトの
命令が消費される。そして、命令デコード処理毎に判明
したそのときに使用した命令コードの長さが命令デコー
ド部2から命令長バス31に出力される。
次に第4図(a)に示すサブルーチンジャンプ命令(J
SR命令)によるパイプライン処理を第5図に示すフロ
ーチャートを参照しながら説明する。
なお、サブルーチンジャンプ命令(以下車にJSR命令
という)は、Dステージ12で2つのステップコードに
分解されて処理される。
第4図(a)はサブルーチンジャンプ命令(JSR命令
)のフォーマットを示す模式図であり、この図において
、45aは命令基本部を示し、45bは才へランド指定
部(newpc)で、このオペランド指定部45bの実
行アドレスにサブルーチンジャンプする命令の場合に相
当する。
45cは拡張部で、飛び先番地のアドレス計算に絶対ア
ドレスや変位等が定義される。
第5図はこの発明によるサブルーチンジャンプ命令処理
手順を説明するフローチャートである。
なお、(1)〜(16)は各ステップを示し、図中の縦
ラインは各ステージ処理区域を示し、横ラインは各ステ
ップコード処理順位を示す。
先ず、第1のステップコード処理について説明する。
先ずIFステージ11でJSR命令を取り込む(1)。
次いで、Dステージ12にてJSR命令をデコードし、
JSR命令の第1ステツプコードを示すDコード22と
飛び先アドレスの実行アドレスを計算するためのAコー
ド23を生成する(2)。もし、飛び先番地のアドレス
計算に絶対アドレス変位等の拡張部45cを必要とする
場合には、そのデータも命令キュー1aから同時に取り
込む。被加算値選択回路3aにはそのデータも命令キュ
ー1aから命令デコード部2に取り込まれた命令長が出
力される。そこで、PC演算部3は、Dステージ12が
JSR命令の処理を開始したステップに同期して、JS
R命令の1つ前の命令に関するアドレス値を保持してい
るTPCラッチ3dの値とJSR命令の1つ前の命令の
最終ステップでDステージ12から出力された命令長を
保持する被加算値選択回路3aの値がPC加算器3bで
加算され、加算結果であるJSR命令の先頭アドレスが
TPCラッチ3dとDPCラッチ3eに書き込む(3)
次いで、Aステージ13では、Aコード23の指示に従
ってオペランドアドレス計算部4において、飛び先のア
ドレスの計算を行い、計算された飛び先のアドレスをD
Oババス4を介してFAレジスタ7aに転送する(4)
次いで、Fステージ14では、FAレジスタ7aの値を
SAレジスタ7bに転送する(5)。次いで、Eステー
ジ15では、飛び先アドレスが格納されているSAレジ
スタ7aの値が51バス38を介してEBレジスタ6C
に転送する(6)次に、第2のステップコードに関する
処理について説明する。
Dステージ12ではJSR命令の第2ステツプコードを
示すり、コード22と戻り先の実行アドレスに関する処
理を指示するためのAコード23を生成する(7)。な
お、このステップコードの処理に関しては命令キュー1
aから命令データは取り込まれない。
次いで、PCC計算部子は、Dステージ12のJSR命
令処理のステップ(2)の処理に同期してJSR命令の
先頭アドレスが格納されているTPCラッチ3dの値と
被加算値選択回路3aの出力値である命令長がpc加算
器3bで加算されてTPOラッチ3dに書き込まれる(
8)。
Aステージ13では、JSR命令の第1ステツプコード
の処理のために消費された命令長がPCC計算部子加算
されてJSR命令の次の命令番地が格納されているTP
Cラッチ3dの値がDISPバス30を介してベースア
ドレス選択回路4cに入力され、アドレス加算器4dに
出力される。
また、インデックス値生成回路4aとディスプレースメ
ント選択回路4bの出力がクリアされる。インデックス
値生成回路4aとディスプレースメント選択回路4bと
ベースアドレス選択回路4Cの出力がアドレス加算器4
dで3値加算され、アドレス加算器4dの出力、すなわ
ち、戻り先アドレスがAOババス4を介してFAレジス
タ7aに転送される(9)。
また、Aステージ13では、APCラッチ3fの値がデ
ィクリメントされ、FSPラッチ4gに転送される(1
0)。
Fステージ14では、FAレジスタ7aの値がSAレジ
スタ7bに転送されるとともに(11)、FSPラッチ
4gの値がCSPラッチ6aに転送される(12)。
Eステージ15では、スタックのアドレスが格納されて
いるC3Pラツチ6aの値を51バス38を介してAA
レジスタ7dに転送しく13)、戻り先アドレスが格納
されているSAレジスタ7bの値を81バス38.デー
タ演算器6e、Doババス0を介してDDレジスタ6f
に転送する(14)。
次いで、AAレジスタ7dの示すアドレスにDDレジス
タ6fの内容をストアした後(15)、EBレジスタ6
Cの示すアドレスへのジャンプを指示する信号を全ステ
ージに対して出力する(16)。
次に第4図(b)、(c)および第6図を参照しながら
制御レジスタに値をロードする(LDC命令)に基づく
パイプライン処理について説明する。
第4図(b)、(C)はこの発明におけるLDC命令の
ビット割付けを説明する模式図であり、。
同図(b)は一般形フオーマット(Gフォーマット)を
示し、46a、46eは命令基本部を示し、46bは指
定フィールド(RR)で、ソースオペランドサイズを指
定する。46cはオペランド指定フィールドで、値sr
cがセットされる。
46dは拡張部を示す。46fは指定フィールドで、デ
ィスティネーションアドレス(WW)がセットされる。
46gはオペランド指定フィールドで、制御レジスタを
指定する値destがセットされる。
同図(C)はEフォーマットを示し、第1オペランドが
8ビツトの即値である場合に相当し、47a、47cは
命令基本部を示し、47bは即値指定フィルードを示し
、47dは指定フィールドで、ディスティネーションア
ドレス(WW)がセットされる。47eは拡張部を示す
第6図はこの発明による制御レジスタに値をロードする
ロード命令処理手順を説明するフローチャートである。
なお、(1)〜(17)は各ステップを示し、図中の縦
ラインは各ステージ処理区域を示し、横ラインは各ステ
ップコード処理順位を示す。また、LDC命令フォーマ
ットは、上記第4図(b)に示したGフォーマットによ
るLDC命令を例として説明する。
先ず、第1のステップコード処理について説明する。
先ずIFステージ11でLDC命令を取り込む(1)。
次いで、Dステージ12にてLDC命令が第1ステツプ
コードを示すDコード22と値srCのアドレスを計算
するためのAコード23が生成される(2)。もし、値
srcのアドレスの計算に第4図(b)に示した拡張部
46dを必要とする場合にはそのデータも命令キュー1
a(第3図参照)から同時に命令デコード部2に取り込
む。
ここでは、Gフォーマットを採用するため、値srcが
イミーディエット値として処理されるので、アドレス計
算は必要はない。
被加算値選択回路3aにはそのステップで命令キュー1
aから命令デコード部2に取り込まれた命令長が出力さ
れる。PC演算部3では、Dステージ12がLDC命令
の処理を開始したステップに同期して、LDC命令の1
つ前の命令に関するアドレス値を保持しているTPCラ
ッチ3dの値とLDC命令の1つ前の命令の最終ステッ
プでDステージ12から出力された命令長を保持する被
加算値選択回路3aの値がpc加算器3bで加算されて
、加算結果であるLDC命令の先頭アドレスがTPCラ
ッチ3dとDPCラッチ3eに書き込まれる(3) Aステージ13では、Aコード23の指示に従ってイミ
ーディエット値となる値srcがオペランドアドレス計
算部4内を転送され、ざらにAOババス4を介してFA
レジスタ7aに転送される(4)。
Fステージ14では、FAレジスタ7aの値がSAレジ
スタ7bに転送される(5) Eステージ15ではSrCを示すSAレジスタ7bの値
が31バス38.データ演算器6e、DOババス0を介
してレジスタファイル6d内に存在するワーキングレジ
スタに転送される(6)。
第2のステップコードに関する処理は、先ず、Dステー
ジ12で、LDC命令の第2の命令基本部が命令キュー
1aから命令デコード部2に取り込まれ、命令デコード
部2でデコードされると、LDC命令の第2ステツプコ
ードを示すDコード22と制御レジスタのアドレスを計
算するためのAコード23が生成される(7)  もし
、制御レジスタのアドレス計算に拡張部47fが必要な
らそのデータも命令キュー1aから同時に取り込む。
被加算選択回路3aにはそのステップで命令キュー1a
から命令デコード部2に取り込まれた命令長が出力され
る。pc演算部3では、LDC命令の先頭アドレスを保
持するTPOラッチ3dの値と、ステップ(1)で命令
デコード部2から転送された命令長を保持する被加算値
選択回路3aの出力値がPC加算器3bで加算されてT
PCラッチ3dに書込まれる(8) Aステージ13では、Aコード23の指示に従ってオペ
ランドアドレス計算部4において、指定された制御レジ
スタのアドレス計算を行い、計算された制御レジスタの
アドレスは、AOババス4を介してFAレジスタ7aに
転送される(9)。
Fステージ14では、FAレジスタ7aの値がSAレジ
スタ7bに転送される(10)。
Eステージ15では、第1のステップコードでロードす
べき値を格納したワーキングレジスタの内容がSAレジ
スタ7b内のアドレスで示される制御レジスタに転送さ
れて格納される(11)。
さらに第3のステップコードに関する処理は、先ず、D
ステージ12ではLDC命令の第3ステツプコードの処
理に関しては命令キュー1aから命令データは取り込ま
れない。このとき、第3ステツプコードであるDコード
22.Aコード23が生成され(12)、PCC計算部
子は、Dステージ12のステップ(3)の処理に同期し
てTPOラッチ3dの値と被加算値選択回路3aの値が
pc加算器3bで加算され、次の命令の先頭アドレスを
TPOラッチ3dに書込まれる(13)。
Aステージ13では、Aコード23の指示に従ってLD
C命令の次の命令番地が格納されているTPCラッチ3
dの値がDISPバス30を介してベースアドレス選択
回路4Cに入力され、アドレス加算器4dに出力される
。また、インデックス値生成回路4aとディスプレース
メント選択回路4bの出力がクリアされる。インデック
ス値生成回路4aとディスプレースメント選択回路4b
とベースアドレス選択回路4cの出力がアドレス加算器
4dで3値加算(「0」加算)され、アドレス加算器4
dの出力、すなわちLDC命令の次の命令アドレスがA
Oババス4を介してFAレジスタ7aに転送される(1
4)。
Fステージ14ではFAレジスタ7aの値がSAレジス
タ7bに転送される(15)。
Eステージ15では、LDC命令の次の命令のアドレス
が格納されているSAレジスタ7bの値をS1バス3B
を介してEBレジスタ6cに転送した後(16)、EB
レジスタ6cの示すアドレスへのジャンプを指示しく1
7)、制御レジスタに値をロードするためのパイプライ
ン処理を終了する。
次に第7図〜第17図を参照しながらこの発明における
命令フォーマットについて説明する。
なお、この実施例におけるデータ処理装置は、2オへラ
ンド命令に対して基本的に4バイト+拡張部の構成を持
ち、すべてのアドレッシングモードが利用できる一般形
のフォーマットと頻度の高い命令とアドレッシングモー
ドのみを使用できる短縮形フォーマットの2つのフォー
マットが定義されている。
第7図〜第16図は使用命令フォマットの割付はビット
を説明する模式図であり、各図中の−はオペコードエリ
アを示し、#はリテラルまたは即値の割付はエリアを示
し、Eaは8ビツトの一般形のアドレッシングモードで
オペランドを指定するエリアを示し、shは6ビツトの
短縮形のアドレッシングモードでオペランドを指定する
エリアを示し、Rnはレジスタ上のオペランドをレジス
タ番号で指定するエリアを示す。
なお、フォーマットは第7図に示すように右側がLSB
側で、かつ高いアドレスになっている。
アドレスNとアドレスN+1の2バイトを見ないと、命
令フォーマットが判別できないようになっているが、こ
れは命令が必ず16ビツト(2バイト)単位でフェッチ
、デコードされることを前提としているからである。
また、いずれのフォーマットの場合も、各オペランドの
エリアEaまたはエリアshの拡張部は、必ずエリアE
aまたはエリアshの基本部を含むハーフワードの直後
におかれる。これは、命令により暗黙に指定される即値
データや命令の拡張部に優先する。従って、4バイト以
上の命令では、エリアEaの拡張部によって命令のオペ
コードが分断される場合がある。
次に第8図〜第11図を参照しながら短縮形2オペラン
ド命令のフォーマットについて説明する。
第8図はメモリレジスタ間演算命令のフォーマットを示
し、ソースオペランド側がメモリとなるL−forma
tとディスティネーションオペランド側がメモリとなる
S−formatがある。
特に、L−formatでは、shはソースオペランド
の指定フィールドを示し、Rnは前記指定フィールドs
hのオペランドサイズの指定を示し、レジスタ上に置か
れたディスティネーションオペランドのサイズは、32
ビツトに固定されている。レジスタ側とメモリ側のサイ
ズが異なり、ソース側のサイズが小さい場合に符号拡張
が行われる。
S−formatでは、shはディスティネーションオ
ペランドの指定フィールドを示し、Rnは前記指定フィ
ールドshのオペランドサイズの指定を示す。レジスタ
側とメモリ側のサイズが異なり、ソース側のサイズが大
きい場合に溢れた部分の切り捨てとオーバーフローチエ
ツクが行われる。
第9図はレジスターレジスタ間演算命令のフォーマット
(R−f o rma t)を示し、Rnはディスティ
ネーションレジスタの指定フィールドを示し、Ftmは
ソースレジスタの指定フィールドを示し、オペランドサ
イズは32ビツトのみである。
第10図はリテラル−メモリ間演算命令のフォーマット
(Q−f o rma t)を示し、MMはディスティ
ネーションオペランドサイズの指定フィールドを示し、
shはディスティネーションオペランドの指定フィール
ドを示す。
第11図は即値−メモリ間演算命令のフォーマット(I
−format)を示し、MMはオペランドサイズの指
定フィールド(ソース、ディスティネーションで共通)
を示し、shはディスティネーションオペランドの指定
フィールドを示し、I−f o rma tの即値のサ
イズは、ディスティネーション側のオペランドのサイズ
と共通に8.16.32ビツトとなり、ゼロ拡張、符号
拡張は行われない。
第12図は1オペランド命令の一般形フオーマット(G
l−f o rma t)を示し、MMはオペランドサ
イズの指定フィールドを示す。なお、部のGl−for
mat命令では、エリアEaの外にも拡張部がある。ま
た、指定フィールドMMを使用しない命令もある。
第13図〜第16図は2オペランド命令の一般形フオー
マットを示し、8ビツトで指定する一般形アドレッシン
グモードのオペランドが最大2つ存在する命令であり、
オペランドの総数自体は3つ以上になる場合がある。
第13図は第1オペランドがメモリ読出しを必要とする
命令フォーマット(G−format)を示し、EaM
はディスティネーションオペランドの指定フィールドを
示し、MMはディスティネーションオペランドサイズの
指定フィールドを示し、EaRはソースオペランド指定
フィールドを示し、RRはソースオペランドサイズの指
定フィールドを示す。
第14図は第1オペランドが8ビツト即値の命令のフォ
ーマット(E−format)を示し、EaMはディス
ティネーションオペランドの指定フィールドを示し、M
Mはディスティネーションオペランドサイズの指定フィ
ールドを示し、#はソースオペランド値を示す。
第15図は第1オペランドがアドレス計算のみの命令フ
ォーマット(GA−format)を示し、EaWはデ
ィスティネーションオペランドの指定フィールドを示し
、WWはディスティネーションオペランドの指定フィー
ルドを示し、EaAはソースオペランドの指定フィール
ドを示し、ソースオペランドとしては実行アドレスの計
算結果自体が使用される。
第16図はショートブランチ命令のフォーマットを示し
、CCCCはブランチ条件指定フィールドを示し、di
sp:8はジャンプ先との変位指定フィールドを示し、
この実施例において、8ビツトで変位を指定する場合に
は、ビットパターンでの指定値を2倍して変位値とする
次に第17図〜第24図を参照しながらこの実施例にお
けるアドレッシングモードについて説明する。
なお、この実施例におけるデータ処理装置のアドレッシ
ングモード指定方法には、レジスタを含めて6ビツトで
指定する短縮形と、8ビツトで指定する一般形とがあり
、未定義のアドレツシングモードを指定した場合や、意
味的に考えて明らかにおかしなアドレッシングモードの
組み合わせを指定した場合には、未定義命令を実行した
場合と同じく予約命令例外を発生し、例外処理を起動す
る。
これに該当するのは、ディスティネーションが即値モー
ドの場合、アドレス計算を伴うべきアドレッシングモー
ド指定フィールドで即値モードを指定した場合等がある
なお、第17図〜第24図に示すフォーマット中におい
て、Rnはレジスタ指定フィールドを示し、mem [
EA]はF、Aで示されるアドレスのメモリ内容を示し
、(sh)は6ビツトの短縮形アドレッシングモードで
の指定方法を示し、(Ea)は8ビツトの一般形アドレ
ッシングモードでの指定方法を示し、図中の点線部は拡
張部を示す。
また、この実施例においては、下記に示す基本アドレッ
シングモード、レジスタ直接モード、レジスタ間接モー
ド、レジスタ相対間接モード、即値モード、絶対モード
、PC相対間接モード、スタックポツプモード、スタッ
クブツシュモード等の各モードをサポートする。
第17図はレジスタ直接モードのフォーマットを示し、
レジスタの内容をそのままオペランドとするモードであ
り、Rnは汎用レジスタの番号を示す。
第18図はレジスタ間接モードのフォーマットを示し、
レジスタの内容をアドレスとするメモリの内容をオペラ
ンドとするモードであり、Rnは汎用レジスタの番号を
示す。
第19図はレジスタ相対間接モードのフォーマットを示
し、ディスプレースメント値が16ビツトか32ビツト
かにより2種類に分かれ、それぞれレジスタの内容に1
6ビツトまたは32ビツトのディスプレースメント値を
加えたアドレスとするメモリの内容をオペランドとする
モードであり、Rnは汎用レジスタ番号を示し、dis
p:1B 。
disp:32はそれぞれ16ビツト、32ビツトのデ
ィスプレースメント値を示し、ディスプレースメント値
は符号付きとして扱う。
第20図は即値モードのフォーマットを示し、命令コー
ド中で指定されるビットパターンをそのまま2進数と1
做してオペランドとするモードであり、imm dat
aは即値を示す。i+nm dataのサイズはオペラ
ンドサイズとして命令中で指定される。
第21図は絶対モードのフォーマットを示し、アドレス
値が16ビツトで示されるか32ビツトで示されるかに
より21in頚に分かれ、それぞれ命令コード中で指定
される16ビツトまたは32ビツトのビットパターンを
アドレスとしたメモリの内容をオペランドとするモード
であり、abs:16゜abs:32はそれぞれ16ビ
ツト、32ビツトのアドレス値を示し、abs:16で
アドレスが示されるときは指定されたアドレス値を32
ビツトに符号拡張する。
第22図はPC相対間接モードのフォーマットを示し、
ディスプレースメント値が16ビツトか32ビツトによ
り2種類に分かれ、それぞれプログラムカウンタの内容
に16ビツトまたは32ビツトのディスプレースメント
値を加えた値をアドレスとするメモリの内容をオペラン
ドとするモードであり、dlsp:16 、 disp
:32はそれぞれ16ビツト、32ビツトのディスプレ
ースメント値を示し、ディスプレースメント値は符号付
きとして扱う。
なお、PC相対間接モードにおいて参照されるプログラ
ムカウンタの値は、そのオペランドを含む命令の先頭ア
ドレスであり、多段間接アドレッシングモードにおいて
、プログラムカウンタの値が参照される場合にも、同じ
ように命令先頭のドレスをPC相対の基準値として使用
する。
第23図はスタックポツプモードのフォーマットを示し
、スタックポインタ(sp)の内容をアドレスとするメ
モリの内容をオペランドとするモードであり、オペラン
ドアクセス後、スタックポインタSPをオペランドサイ
ズだけインクリメントする0例えば32ビツトデータを
扱う場合には、オペランドアクセス後、スタックポイン
タSPを+4だけ更新される。B、Hのサイズのオベラ
ンドに対するスタックポツプモードの指定も可能であり
、それぞれスタックポインタSPが+1、+2だけ更新
される。なお、オペランドに対しスタックポツプモード
が意味を持たないものに対しては、予約命令例外を発生
する。具体的に予約命令例外となるのは、writeオ
ペランド。
read−mod i fy−wr i teオペラン
ドに対するスタックポツプモード指定である。
第24図はスタックブツシュモードのフォーマットを示
し、スタックポインタ(sp)の内容をオペランドサイ
ズだけディクリメントした内容をアドレスとするメモリ
の内容をオペランドとするモードであり、スタックブツ
シュモードではオペランドアクセス前にスタックポイン
タ(sp)がディクリメントされる。例えば32とット
データを扱う場合には、オペランドアクセス前にスタッ
クポインタ(sp)が「−4」だけ更新される。
B、Hのサイズのオペランドに対するスタックブツシュ
モードの指定も可能であり、それぞれスタックポインタ
(sp)がそれぞれ−1,−2だけ更新される。なお、
オペランドに対しスタックブツシュモードが意味を持た
ないものに対しては、予約命令例外を発生する。具体的
に予約命令例外となるのは、writeオペランド、r
ead−mod i fy−wr i teオペランド
に対するスタックブツシュモード指定である。
(発明の効果) 以上説明したように、この発明は1つの命令を第2のパ
イプラインステージに対する1つまたは複数の単位処理
コードに分解してデコードする分解デコード手段と、こ
の分解デコード手段によりデコードされた各単位処理コ
ードに基づいて命令に対する複数のアドレス演算を実行
するアドレス演算手段と、このアドレス演算手段により
演算された命令アドレスを単位処理コードとして後段の
第2のパイプラインステージに転送する転送手段とを設
けたので、例えばサブルーチンジャンプ命令を処理する
場合、2つのステップコードに分割してパイプライン中
を流し、第1のステップコードでサブルーチンへの飛び
先アドレスに関する処理を実行させるとともに、第2の
ステップコードでサブルーチンからの戻り先アドレスに
関する処理を実行させることが可能となり、従来のよう
アドレス情報を保持するラッチ手段を設けることなくパ
イプライン処理を効率よく行える。
また、制御レジスタへのロード命令を処理する場合、3
つのステップコードに分割してパイプライン中を流すこ
とにより、第1のステップコードでソースオペランドに
関する処理を、第2のステップコードで制御レジスタへ
のロードに関する処理を、第3のステップコードで次の
命令へのジャンプに関する処理を行わせることができる
。従って、2種類の命令の次の命令の先頭番地をステッ
プコードに伴うオペランドアドレスとしてパイプライン
中を流すことかでき、次の命令のプログラムカウンタ値
処理のため特別の転送経路を排除でき、効率よくパイプ
ライン処理が可能となる。
さらに、制御レジスタへのロード命令をパイプライン処
理する場合、命令実行ステージで値を制御レジスタにロ
ードした後、レジスタにロードされている次の命令の先
頭番地へジャンプ処理でき、この命令で値がロードされ
る以前の値を持った制御レジスタで取り込まれたパイプ
ライン内の命令をすべてキャンセルでき、正しい制御レ
ジスタの制御の下でこの制御レジスタに値をロードする
命令の次の命令を新たにフェッチすることができる等の
優れた効果を奏する。
【図面の簡単な説明】
第1図はこの発明の一実施例を示すデータ処理装置の構
成を説明するブロック図、第2図(a)は、第1図に示
したデータ処理装置のバイブライン処理を説明する構成
ブロック図、第2図(b)は基本的命令フォーマットを
説明する模式図、第3図は、第1図に示したデータ処理
装置の詳細ブロック図、第4図(a)はサブルーチンジ
ャンプ命令のフォーマットを示す模式図、第4図(b)
、(C)はこの発明におけるロード命令のビット割付け
を説明する模式図、第5図はこの発明によるサブルーチ
ンジャンプ命令処理手順を説明するフローチャート、第
6図はこの発明による制御レジスタに値をロードするロ
ード命令処理手順を説明するフローチャート、第7図〜
第工6図は使用命令フオマットの割付゛けビットを説明
する模式図、17図〜第24図はこの発明におけるアド
レッシンモードを説明する模式図、第25図従来のデー
タ処理装置におけるパイプライン処理を説明する機能ブ
ロック図である。 図において、1は命令フェッチ部、2は命令デコード部
、3はPC計算部、4はオペランドアドレス計算部、5
はマイクロROM部、6はデータ演算部、7は外部イン
タフェース部、8はアドレス出力回路、9はデータ入出
力回路である。 なお、各図中の同一符号は同一または相当部分を示す。 代理人 大 岩 増 雄    (外2名)(2バイト
) (θ〜4Aイト) (a)JSR 第 図 くアドレス〉 N◆l N+2 N+3 第 図 byte: N+2−1 第 図 byte: N lo図 byte: N+2−1 第 図 byte: N+2−1 byte二 N+2 N中2◆M−1 第12図 byte: N+2−1 第 図 byte: N+2−1 byte : N+2 ト2◆1 N+2中2 ・−・・・・ N争2十滅◆2−1 第 図 byte: byte : N中4−1 第 図 byte: N◆2−1 byte: N◆2 ト2◆l N◆2◆2 ・・・・・・ N中2十ト2−1 第 図 byte: 第 図 ツう 図 弔 図 ムラ 図 第 図 弔 図 力 図 果 図 第 図 E:命令実行ステージ 1、事件の表示 21発明の名称 正 書(自発) 平成 着  年  月 特願昭 θ3−205584号 データ処理装置 5、補正の対象 明細書全文および図面 6、補正の内容 (1)明細書全文を別紙のように補正する。 (2)図面中、第3図、第4図(b)、(C)第5図お
よび第6図を別紙のように補正する。 以上 3、補正をする者 事件との関係

Claims (1)

    【特許請求の範囲】
  1. 命令のデコードを行う第1のパイプラインステージと、
    この第1のパイプラインステージより後段のパイプライ
    ンステージとなる複数の第2のパイプラインステージか
    らなるパイプライン処理機構を有するデータ処理装置に
    おいて、1つの命令を前記第2のパイプラインステージ
    に対する1つまたは複数の単位処理コードに分解してデ
    コードする分解デコード手段と、この分解デコード手段
    によりデコードされた各単位処理コードに基づいて前記
    命令に対する複数のアドレス演算を実行するアドレス演
    算手段と、このアドレス演算手段により演算された命令
    アドレスを前記単位処理コードとして後段の第2のパイ
    プラインステージに転送する転送手段とを具備したこと
    を特徴とするデータ処理装置。
JP63205564A 1988-08-18 1988-08-18 データ処理装置 Expired - Fee Related JPH0769803B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63205564A JPH0769803B2 (ja) 1988-08-18 1988-08-18 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63205564A JPH0769803B2 (ja) 1988-08-18 1988-08-18 データ処理装置

Publications (2)

Publication Number Publication Date
JPH0254335A true JPH0254335A (ja) 1990-02-23
JPH0769803B2 JPH0769803B2 (ja) 1995-07-31

Family

ID=16508984

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63205564A Expired - Fee Related JPH0769803B2 (ja) 1988-08-18 1988-08-18 データ処理装置

Country Status (1)

Country Link
JP (1) JPH0769803B2 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6389932A (ja) * 1986-10-03 1988-04-20 Mitsubishi Electric Corp デ−タ処理装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6389932A (ja) * 1986-10-03 1988-04-20 Mitsubishi Electric Corp デ−タ処理装置

Also Published As

Publication number Publication date
JPH0769803B2 (ja) 1995-07-31

Similar Documents

Publication Publication Date Title
JP3658072B2 (ja) データ処理装置およびデータ処理方法
US6560697B2 (en) Data processor having repeat instruction processing using executed instruction number counter
US5091853A (en) Chained addressing mode pipelined processor which merges separately decoded parts of a multiple operation instruction
JPH04109336A (ja) データ処理装置
JP2507638B2 (ja) デ―タ処理装置
JPH03218523A (ja) データプロセッサ
JPH02173823A (ja) データ処理装置
US4945511A (en) Improved pipelined processor with two stage decoder for exchanging register values for similar operand instructions
JPH0496825A (ja) データ・プロセッサ
JPH01214932A (ja) データ処理装置
JPH0338725A (ja) データ処理装置及びマイクロプロセッサ
JP3789583B2 (ja) データ処理装置
JPH0391029A (ja) データ処理装置
US5077659A (en) Data processor employing the same microprograms for data having different bit lengths
JPH04109339A (ja) レジスタ番地指定回路及びそれを備えたデータ処理装置
JPH0769806B2 (ja) データ処理装置
JP2504235B2 (ja) デ―タ処理装置
JPH0254335A (ja) データ処理装置
JP2522048B2 (ja) マイクロプロセッサ及びそれを使用したデ―タ処理装置
JP3147884B2 (ja) 記憶装置及び情報処理装置
JP3102399B2 (ja) データ処理装置及び方法
JPH0225932A (ja) データ処理装置
JP2696578B2 (ja) データ処理装置
JPH0218621A (ja) データ処理装置
JPH0769805B2 (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