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

データ処理装置

Info

Publication number
JPH0810428B2
JPH0810428B2 JP63331765A JP33176588A JPH0810428B2 JP H0810428 B2 JPH0810428 B2 JP H0810428B2 JP 63331765 A JP63331765 A JP 63331765A JP 33176588 A JP33176588 A JP 33176588A JP H0810428 B2 JPH0810428 B2 JP H0810428B2
Authority
JP
Japan
Prior art keywords
instruction
stage
code
operand
address
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.)
Expired - Lifetime
Application number
JP63331765A
Other languages
English (en)
Other versions
JPH02173823A (ja
Inventor
富士雄 糸満
雅仁 松尾
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 JP63331765A priority Critical patent/JPH0810428B2/ja
Priority to US07/457,413 priority patent/US5220656A/en
Publication of JPH02173823A publication Critical patent/JPH02173823A/ja
Priority to US07/954,096 priority patent/US5321821A/en
Publication of JPH0810428B2 publication Critical patent/JPH0810428B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30192Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/342Extension of operand address space

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はマイクロプログラムにより命令の実行が制御
されるデータ処理装置に関する。
〔従来の技術〕 従来のデータ処理装置において、オペランドサイズ指
定,ALUオペレーション指定等のために命令コードからあ
る特定のビットフィールド(以下、パラメータと称す)
を切出し、これを命令実行部に与えることによりその命
令を実行するものが知られている。そのようなデータ処
理装置の一例として、USP No. 4,312,034の発明につい
て以下に説明する。
まず、上述の従来のデータ処理装置の構成を第34図の
ブロック図に示す。
図中、71は命令レジスタであり、次に実行するべき命
令コードをラッチしている。72は命令デコーダであり、
具体的にはPLA(Programmable Logic Arry)にて構成さ
れている。この命令デコーダ72は、命令レジスタ71から
与えられる命令をデコードし、マイクロエントリアドレ
スを出力する。73はマイクロエントリアドレスラッチで
あり、命令デコーダ72から与えられるマイクロエントリ
アドレスをラッチする。74はマイクロROMであり、マイ
クロエントリアドレスラッチ73から与えられるマイクロ
エントリアドレスにて指定されるマイクロ命令を出力す
る。75はマイクロ命令レジスタであり、マイクロROM74
から出力されるマイクロ命令をラッチする。76はパラメ
ータラッチであり、命令レジスタにラッチされている命
令コードから切出されたビットフィールドをパラメータ
としてラッチする。77はマルチプレクサであり、マイク
ロ命令レジスタ75またはパラメータラッチ76の出力のい
ずれかを選択する。78はALUであり、マルチプレクサ77
の出力に従ってALU演算を実行する。79はマルチプレク
サ77及びALU78にて構成されるデータ演算部である。
このような従来のデータ処理装置の動作は以下の如く
である。
加算,減算,論理積,論理和,排他的論理和等のALU
を使用する命令が命令レジスタ71から出力されると、こ
れが命令デコーダ72でデコードされ、演算を実行するた
めに使用するマイクロプログラムのエントリアドレスが
マイクロエントリアドレスラッチ73にラッチされる。こ
のマイクロエントリアドレスラッチ73にラッチされてい
るマイクロエントリアドレスで指定されたマイクロ命令
がマイクロROM74から読み出され、マイクロ命令レジス
タ75にラッチされる。
一方、命令レジスタ71にラッチされている命令コード
からは実際のALU演算に必要なパラメータが切出され、
パラメータラッチ76にラッチされる。マイクロ命令レジ
スタ75にラッチされている情報の内のALUオペレーショ
ンを指定するフィールドと、パラメータラッチ76にラッ
チされている情報とをマルチプレクサ77によるマルチプ
レクスして得られた情報がALU78に与えられ、これに基
づいて具体的なALU演算がデータ演算部79で行われる。
このようにして、異なるALU演算を行うべき命令を同
一のマイクロ命令で処理し得るように構成することによ
り、マイクロROMのサイズを削減している。
〔発明が解決しようとする課題〕
従来のデータ処理装置は以上のように構成されている
ので、一つの命令が種々のフォーマットを持つような命
令セットを処理する場合、同一の命令でも各命令フォー
マットによってビット割付けが異なるため、切出される
パラメータが異なる。従って、各フォーマット別にマイ
クロプログラムのエントリアドレスを設定しておく必要
があり、マイクロROMのサイズが大きくなるという問題
点があった。
このような事情から、本発明は、一つの命令が複数の
フォーマットを有するような命令セットの命令を処理す
る場合にも、一つの同一のマイクロ命令で処理可能なデ
ータ処理装置の提供を目的とする。
〔課題を解決するための手段〕
本発明のデータ処理装置では、実行されるべき命令の
命令コードから切出されたパラメータ(ビットフィール
ド)と前記命令を命令デコーダでデコードした結果得ら
れたパラメータ(ビットフィールド)とを選択,合成し
て命令実行手段に対する実行制御情報、即ちオペレーシ
ョン指定用パラメータを生成する手段を備えている。
〔作用〕
本発明のデータ処理装置では、命令コードから切出さ
れたパラメータ(ビットフィールド)と命令デコーダか
ら出力されたパラメータ(ビットフィールド)とを選
択,合成して、オペレーション指定用パラメータが生成
され、このオペレーション指定用パラメータの指示によ
り、演算が実行される。
〔発明の実施例〕
以下、本発明をその実施例を示す図面に基づいて詳述
する。
(1) 「本発明のデータ処理装置の命令フォーマッ
ト」 本発明のデータ処理装置の命令は16ビット単位で可変
長となっており、奇数バイト長の命令は使用しない。
本発明のデータ処理装置では高頻度命令を短いフォー
マットとする目的で特に工夫された命令フォーマット体
系を有する。例えば、2オペランド命令に関しては基本
的に“4バイト+拡張部”の構成を有して総てのアドレ
ッシングモードが利用可能な一般形フォーマットと、使
用頻度の高い命令及びアドレッシングモードのみが使用
可能な短縮形フォーマットの2つのフォーマットとがあ
る。
本発明のデータ処理装置の命令フォーマット中に現わ
れる記号の意味は次の通りである。
−:オペレーションコードが入る部分 #:リテラルまたは即値が入る部分 Ea:8ビットの一般形のアドレッシングモードでオペラン
ドを指定する部分 Sh:6ビットの短縮形のアドレッシングモードでオペラン
ドを指定する部分 Rn:レジスタ上のオペランドをレジスタ番号で指定する
部分 フォーマットは、第9図に示す如く右側がLSB側で且
つ高いアドレスになっている。アドレスNとアドレスN
+1の2バイトを見ないと命令フォーマットが判別でき
ないようになっているが、これは前述の如く、命令が必
ず16ビット(2バイト)単位でフェッチ及びデコードさ
れることを前提としているためである。
本発明のデータ処理装置では、いずれのフォーマット
の場合も、各オペランドのEaまたはShの拡張部は必ずそ
のEaまたはShの基本部を含むハーフワードの直後に位置
される。これは、命令により暗黙に指定される即値デー
タあるいは命令の拡張部に優先する。従って、4バイト
以上の命令では、Eaの拡張部によって命令のオペレーシ
ョンコードが分断される場合がある。
また後述する如く、多段間接モードによってEaの拡張
部に更に拡張部が付く場合にも、次の命令オペレーショ
ンコードよりもそちらの方が優先される。例えば、第1
ハーフワードにEa1を含み、第2ハーフワードにEa2を含
み、第3ハーフワードまである6バイト命令の場合を考
える。Ea1に多段間接モードを使用したため、普通の拡
張部の他に多段間接モードの拡張部も付くものとする
と、実際の命令ビットパターンは、命令の第1ハーフワ
ード(Ea1の基本部を含む),Ea1の拡張部,Ea1の多段間
接モード拡張部,命令の第2ハーフワード(Ea2の基本
部を含む),Ea1の拡張部,命令の第3ハーフワードの順
となる。
(1.1)「短縮形2オペランド命令」 第10図から第13図は2オペランド命令の短縮形フォー
マットを示す模式図である。
第10図はメモリ−レジスタ間演算命令のフォーマット
を示す模式図である。このフォーマットには、ソースオ
ペランド側がメモリとなるL−formatと、デスティネー
ションオペランド側がメモリとなるS−formatとがあ
る。
L−formatでは、Shはソースオペランドの指定フィー
ルドを、Rnはデスティネーションオペランドのレジスタ
の指定フィールドを、RRはShのオペランドサイズの指定
をそれぞれ表す。レジスタ上に位置されたデスティネー
ションオペランドのサイズは32ビットに固定されてい
る。レジスタ側とメモリ側とのサイズが異なり、ソース
側のサイズが小さい場合には符号拡張が行なわれる。
S−formatでは、Shはデスティネーションオペランド
の指定フィールドを、Rnはソースオペランドのレジスタ
指定フィールドを、RRはShのオペランドサイズの指定を
それぞれ表す。レジスタ上に位置されたソースオペラン
ドのサイズは32ビットに固定されている。レジスタ側と
メモリ側とのサイズが異なり、ソース側のサイズが大き
い場合にオーバフローした部分の切捨てとオーバフロー
チェックが行なわれる。
第11図はレジスタ−レジスタ間演算命令のフォーマッ
ト(R−format)を示す模式図である。Rnはデスティネ
ーションレジスタの指定フィールド、Rmはソースレジス
タの指定フィールドである。オペランドサイズは32ビッ
トのみである。
第12図はリテラル−メモリ間演算命令のフォーマット
(Q−format)を示す模式図である。MMはディスティネ
ーションオペランドサイズの指定フィールド、###は
リテラルによるソースオペランドの指定フィールド、Sh
はデスティネーションオペランドの指定フィールドであ
る。
第13図は即値−メモリ間演算命令のフォーマット(I
−format)を示す模式図である。MMはオペランドサイズ
の指定フィールド(ソース,ディスティネーションで共
通)、Shはデスティネーションオペランドの指定フィー
ルドである。I−formatの即値のサイズはデスティネー
ション側のオペランドのサイズと共通に8,16,32ビット
となり、ゼロ拡張及び符号拡張は行われない。
(1.2)「一般形1オペランド命令」 第14図は1オペランド命令の一般形フォーマット(G1
-format)を示す模式図である。MMはオペランドサイズ
の指定フィールドである。一部のG1-format命令では、E
aの拡張部以外にも拡張部がある。また、MMを使用しな
い命令もある。
(1.3)「一般形2オペランド命令」 第15図から第17図は2オペランド命令の一般形フォー
マットを示す模式図である。このフォーマットに含まれ
るのは、8ビットで指定する一般形アドレッシングモー
ドのオペランドが最大2つ存在する命令である。オペラ
ンドの総数自体は3つ以上になる場合がある。
第15図は第1オペランドがメモリ読み出しを必要とす
る命令のフォーマット(G−format)を示す模式図であ
る。EaMはデスティネーションオペランドの指定フィー
ルド、MMはデスティネーションオペランドサイズの指定
フィールド、EaRはソースオペランド指定フィールド、R
Rはソースオペランドサイズの指定フィールドである。
一部のG−format命令では、EaMあるいはEaRの拡張部以
外にも拡張部がある。
第16図は第1オペランドが8ビット即値の命令のフォ
ーマット(E−format)を示す模式図である。EaMはデ
スティネーションオペランドの指定フィールド、MMはデ
スティネーションオペランドサイズの指定フィールド、
##…はソースオペランド値である。
E−formatとI−formatとは機能的には類似している
が、考え方の点では大きく違っている。具体的には、E
−formatはあくまでも2オペランド一般形(G−forma
t)の派生形であり、ソースオペランドのサイズが8ビ
ット固定、ディスティネーションオペランドのサイズが
8/16/32ビットからの選択となっている。つまり、E−f
ormatは異種サイズ間の演算を前提とし、デスティネー
ションオペランドのサイズに合わせて8ビットのソース
オペランドがゼロ拡張または符号拡張される。一方、I
−formatは、特に転送命令及び比較命令で頻度の多い即
値のパターンを短縮形にしたものであり、ソースオペラ
ンドとディスティネーションオペランドのサイズが等し
い。
第17図は、第1オペランドがアドレス計算のみの命令
のフォーマット(GA-format)を示す模式図である。EaW
はデスティネーションオペランドの指定フィールド、WW
はデスティネーションオペランドサイズの指定フィール
ド、EaAはソースオペランドの指定フィールドである。
ソースオペランドとしては実行アドレスの計算結果自体
が使用される。
第18図は、ショートブランチ命令のフォーマットを示
す模式図である。ccccはブランチ条件指定フィールド、
disp:8はジャンプ先と変位指定フィールドであり、本発
明のデータ処理装置では8ビットで変位を指定する場合
には、ビットパターンでの指定値を2倍して変位値とす
る。
(1.4) 「アドレッシングモード」 本発明のデータ処理装置のアドレッシングモード指定
方法には、レジスタを含めて6ビットで指定する短縮形
と、8ビットで指定する一般形とがある。
未定義のアドレッシングモードが指定された場合、あ
るいは意味的に考えて明らかに不適当なアドレッシング
モードの組み合わせが指定された場合には、未定義命令
が実行された場合同様に予約命令例外が発生され、例外
処理が起動される。
これに該当するのは、デスティネーションが即値モー
ドの場合、アドレス計算を伴うべきアドレッシングモー
ド指定フィールドで即値モードを使用した場合等であ
る。
フォーマットの図中で使われる記号の意味は次の通り
である。
Rn :レジスタ指定 mem EA :EAで示されるアドレスのメモリ内容 (Sh) :6ビットの短縮形アドレッシングモードでの
指定方法 (Ea) :8ビットの一般形アドレッシングモードでの
指定方法 フォーマットの図において破線にて囲繞された部分は
拡張部を示す。
(1.4.1) 「基本アドレッシングモード」 本発明のデータ処理装置は様々なアドレッシングモー
ドをサポートする。それらの内、本発明のデータ処理装
置でサポートする基本アドレッシングモードには、レジ
スタ直接モード、レジスタ間接モード、レジスタ相対間
接モード、即値モード、絶対モード、PC(プログラムカ
ウンタ)相対間接モード、スタックポップモード及びス
タックプッシュモードがある。
レジスタ直接モードはレジスタの内容をそのままオペ
ランドとする。フォーマットの模式図を第19図に示す。
Rnは汎用レジスタの番号を示す。
レジスタ間接モードはレジスタの内容をアドレスとす
るメモリの内容をオペランドとする。フォーマットの模
式図を第20図に示す。Rnは汎用レジスタの番号を示す。
レジスタ相対間接モードはディスプレースメント値が
16ビットであるか32ビットであるかにより2種類があ
る。それぞれ、レジスタの内容に16ビットまたは32ビッ
トのディスプレースメント値を加えた値をアドレスとす
るメモリの内容をオペランドとする。フォーマットの模
式図を第21図に示す。Rnは汎用レジスタの番号を示す。
disp:16とdisp:32とはそれぞれ各々16ビットのディスプ
レースメント値を示す。ディスプレースメント値は符号
付きとして扱う。
即値モードは命令コード中で指定されるビットパター
ンをそのまま2進数と見なしてオペランドとする。フォ
ーマットの模式図を第22図に示す。imm-dataは即値を示
す。imm-dataのサイズは、オペランドサイズとして命令
中で指定される。
絶対モードはアドレス値が16ビットで示される32ビッ
トで示されるかにより2種類ある。それぞれ、命令コー
ド中で指定される16ビットまたは32ビットのビットパタ
ーンをアドレスとするメモリの内容をオペランドとす
る。フォーマットの模式図を第23図に示す。abs:16とab
s:32とはそれぞれ16ビットまたは32ビットのアドレス値
を示す。abs:16でアドレスが示される時は指定されたア
ドレス値を32ビットに符号拡張する。
PC相対間接モードはディスプレースメント値が16ビッ
トか32ビットかにより2種類ある。それぞれ、プログラ
ムカウンタの内容に16ビットまたは32ビットのディスプ
レースメント値を加えた値をアドレスとするメモリの内
容をオペランドとする。フォーマットの模式図を第24図
に示す。disp:16とdisp:32とはそれぞれ16ビットのディ
スプレースメント値または32ビットのディスプレースメ
ント値を示す。ディスプレースメント値は符号付きとし
て扱う。PC相対間接モードにおいて、参照されるプログ
ラムカウンタの値はそのオペランドを含む命令の先頭ア
ドレスである。多段間接アドレッシングモードにおいて
プログラムカウンタの値が参照される場合にも、同じよ
うに命令の先頭のアドレスをPC相対の基準値として使用
する。
スタックポップモードはスタックポインタ(SP)の内
容をアドレスとするメモリの内容をオペランドとする。
オペランドアクセス後、スタックポインタをオペランド
サイズだけインクリメントする。例えば、32ビットデー
タを扱う場合には、オペランドアクセス後にSPが+4だ
け更新(インクリメント)される。B,Hのサイズのオペ
ランドに対するスタックポップモードの指定も可能であ
り、それぞれSPが+1,+2だけ更新(インクリメント)
される。フォーマットの模式図を第25図に示す。オペラ
ンドに対しスタックポップモードが意味を持たないもの
に関しては予約命令例外が発生される。具体的に予約命
令例外となるのは、writeオペランド、read-modify-wri
teオペランドに対するスタックポップモード指定であ
る。
スタックプッシュモードはスタックポインタの内容を
オペランドサイズだけデクリメントした内容をアドレス
とするメモリの内容をオペランドとする。スタックプッ
シュモードでは、オペランドアクセス前にスタックポイ
ンタがデクリメントされる。例えば、32ビットデータを
扱う場合には、オペランドアクセス前にSPが−4だけ更
新(デクリメント)される。B,Hのサイズのオペランド
に対するスタックプッシュモードの指定も可能であり、
それぞれSP−1,−2だけ更新(デクリメント)される。
フォーマットの模式図を第26図に示す。オペランドに対
してスタックプッシュモードが意味を持たないものに関
しては、予約命令例外が発生される。具体的に予約命令
例外となるのは、readオペランド、read-modify-write
オペランドに対すスタックプッシュモード指定である。
(1.4.2) 「多段間接アドレッシングモード」 如何に複雑なアドレッシングも、基本的には加算と間
接参照の組み合わせに分解される。従って、加算と間接
参照のオペレーションをアドレッシングのプリミティブ
として与えておき、それを任意に組み合わせることがで
きれば、如何なる複雑なアドレッシングモードをも実現
可能となる。本発明のデータ処理装置の多段間接アドレ
ッシングモードはこの様な考え方に基づいたアドレッシ
ングモードである。複雑なアドレッシングモードはモジ
ュール間のデータ参照あるいはAI(人口知能)言語の処
理系に特に有用である。
多段間接アドレッシングモードを指定する場合、基本
アドレッシングモード指定フィールドでは、レジスタベ
ース多段間接モード、PCベース多段間接モード、絶対ベ
ース多段間接モードの3種類の指定方法の内のいずれか
1つを指定する。
レジスタベース多段間接モードはレジスタの値を拡張
する多段間接アドレッシングのベース値とするアドレッ
シングモードである。フォーマットの模式図を第27図に
示す。Rnは汎用レジスタの番号を示す。
PCベース多段間接モードはプログラムカウンタの値を
拡張する多段間接アドレッシングのベース値とするアド
レッシングモードである。フォーマットの模式図を第28
図に示す。
絶対ベース多段間接モードはゼロを拡張する多段間接
アドレッシングのベース値とするアドレッシングモード
である。フォーマットの模式図を第29図に示す。
拡張する多段間接モード指定フィールドは16ビットを
単位としており、これを任意回反復する。1段の多段間
接モードにより、ディスプレースメントの加算、インデ
クスレジスタのスケーリング(×1,×2,×4,×8)と加
算、メモリの間接参照を行なう。多段間接モードのフォ
ーマットの模式図を第30図に示す。各フィールドは以下
に示す意味を持つ。
E=0 :多段間接モード継続 E=1 :アドレス計算終了 tmp==>address of operand I=0 :メモリ間接参照なし tmp+disp+Rx*Scale==>tmp I=1 :メモリ間接参照あり mem tmp+disp+Rx*Scale==>tmp M=0 :〈Rx〉をインデクスとして使用 M=1 :特殊なインデクス 〈Rx〉=0 インデクス値を加算しない(Rx
=0) 〈Rx〉=1 プログラムカウンタをインデク
ス値として使用(Rx=PC) 〈Rx〉=2〜 reserved D=0 :多段間接モード中の4ビットのフィールド
d4の値を4倍してディスプレースメント値とし、これを
加算する d4は符号付きとして扱い、オペランドのサ
イズとは関係なく必ず4倍して使用する D=1 :多段間接モードの拡張部で指定されたdisp
x(16/32ビット)をディスプレースメント値とし、これ
を加算する 拡張部のサイズはd4フィールドで指定する d4=0001 dispxは16ビット d4=0010 dispxは32ビット XX :インデクスのスケール(scale=1/2/4/8) プログラムカウンタに対して×2,×4;×8のスケーリ
ングを行なった場合には、その段の処理終了後の中間値
(tmp)として不定値が入る。この多段間接モードによ
って得られる実効アドレスは予測できない値となるが、
例外は発生しない。プログラムカウンタに対するスケー
リングの指定は行なってはいけない。
多段間接モードによる命令フォーマットのバリエーシ
ョンを第31図、第32図に示す。
第31図は、多段間接モードが継続するか終了するかの
バリエーションを示す。
第32図は、ディスプレースメントのサイズのバリエー
ションを示す。
任意段数の多段間接モードが利用できれば、コンパイ
ラの中で段数による場合分けが不要になるので、コンパ
イラの負担が軽減されるというメリットがある。多段の
間接参照の頻度が非常に少ないとしても、コンパイラと
しては必ず正しいコードを発生できなければならないか
らである。このため、フォーマット上では任意の段数が
可能になっている。
(1.5) 「例外処理」 本発明のデータ処理装置はソフトウェア負荷の軽減の
ため豊富な例外処理機能を有する。本発明のデータ処理
装置では、例外処理は命令処理を再実行するもの(例
外)、命令処理を完了するもの(トラップ)及び割込の
3種類に分けて名称をつけている。また本発明のデータ
処理装置では、この3種の例外処理とシステム障害とを
総称してEITと称する。
(2) 「機能ブロックの構成」 第1図は本発明のデータ処理装置の構成を示すブロッ
ク図である。
本発明のデータ処理装置の内部を機能的に大きく分け
ると、命令フェッチ部51,命令デコード部52,PC計算部5
3,オペランドアドレス計算部54,マイクロROM部55,デー
タ演算部56,外部バスインターフェイス部57に分かれ
る。
第1図では、その他にCPU外部にアドレスを出力する
ためのアドレス出力回路58と、CPU外部とデータを入出
力するためのデータ入出力回路59とを他の機能ブロック
部と分けて示した。
(2.1) 「命令フェッチ部」 命令フェッチ部51にはブランチバッファ、命令キュー
とその制御部等があり、次にフェッチすべき命令のアド
レスを決定してブランチバッファあるいはCPU外部のメ
モリから命令をフェッチする。またブランチバッファへ
の命令登録をも行う。
ブランチバッファは小規模であるためセレクティブキ
ャッシュとして動作する。ブランチバッファの動作の詳
細は特開昭63-56731号に開示されている。
次にフェッチすべき命令のアドレスは、命令キューに
入力すべき命令のアドレスとして専用のカウンタにて計
算される。分岐あるいはジャンプが発生した場合には、
新たな命令のアドレスがPC計算部53あるいはデータ演算
部56から転送されてくる。
CPU外部のメモリから命令をフェッチする場合は、外
部バスインターフェイス部57を通して、フェッチすべき
命令のアドレスをアドレス出力回路58からCPU外部へ出
力し、データ入出力回路59から命令コードをフェッチす
る。そして、バッファリングした命令コードの内、次に
デコードすべき命令コードを命令デコード部52に出力す
る。
(2.2) 「命令デコード部」 命令デコード部52では基本的には16ビット(ハーフワ
ード)単位で命令コードをデコードする。このブロック
には第1ハーフワードに含まれるオペレーションコード
をデコードするFHWデコーダ、第2,第3ハーフワードに
含まれるオペレーションコードをデコードするNFHWデコ
ーダ、アドレッシングモードをデコードするアドレッシ
ングモードデコーダが含まれる。これらFHWデコーダ、N
FHWデコーダ、アドレッシングモードデコーダを纏めて
第1デコーダ303という。
FHWデコーダあるいはNFHWデコーダの出力を更にデコ
ードして、マイクロROMのエントリアドレスを計算する
第3デコーダ305、条件分岐命令の分岐予測を行う分岐
予測機構、オペランドアドレス計算の際のパイプライン
コンフリクトをチェックするアドレス計算コンフリクト
チェック機構も含まれる。
命令デコード部52は命令フェッチ部51から入力された
命令コードを2クロック(1ステップ)につき0〜6バ
イトずつデコードする。デコード結果の内、データ演算
部56での演算に関する情報がマイクロROM部55に、オペ
ランドアドレス計算に関係する情報がオペランドアドレ
ス計算部54に、PC計算に関係する情報がPC計算部53にそ
れぞれ出力される。
(2.3) 「マイクロROM部」 マイクロROM部55には、主にデータ演算部56を制御す
るマイクロプログラムが格納されているマイクロROM、
マイクロシーケンサ、マイクロ命令デコーダ等が含まれ
る。マイクロ命令はマイクロROMから2クロック(1ス
テップ)に1度読出される。マイクロシーケンサはマイ
クロプログラムで示されるシーケンス処理の他に、例
外、割込及びトラップ(この3つを合わせてEITと称す
る)の処理をハードウエア的に受付ける。またマイクロ
ROM部55はストアバッファの管理も行う。マイクロROM部
55には命令コードに依存しない割込みあるいは演算実行
結果によるフラッグ情報と、第2デコーダ305の出力等
の命令デコード部の出力が入力される。マイクロデコー
ダの出力は主にデータ演算部56に対して出力されるが、
ジャンプ命令の実行による他の先行処理中止情報等の一
部の情報は他のブロックへも出力される。
(2.4) 「オペランドアドレス計算部」 オペランドアドレス計算部54は命令デコード部52のア
ドレスデコーダ等から出力されたオペランドアドレス計
算に関係する情報によりハードワイヤード制御される。
このブロックではオペランドのアドレス計算に関するほ
とんどの処理が行われる。メモリ間接アドレシングのた
めのメモリアクセスのアドレス及びオペランドアドレス
がメモリにマップされたI/O領域に入るか否かのチェッ
クも行われる。
アドレス計算結果は外部バスインターフェイス部57に
送られる。アドレス計算に必要な汎用レジスタ及びプロ
グラムカウンタの値はデータ演算部より入力される。
メモリ間接アドレッシングを行う際は外部バスインタ
ーフェイス部57を通してアドレス出力回路58からCPU外
部へ参照すべきメモリアドレスを出力し、データ入出力
部59から入力された間接アドレス値を命令デコード部52
を通してフェッチする。
(2.5) 「PC計算部」 PC計算部53は命令デコード部52から出力されるPC計算
に関係する情報によりハードワイヤードに制御され、命
令のPC値を計算する。本発明のデータ処理装置は可変長
命令セットを有しており、命令をデコードしなければそ
の命令の長さが判らない。このため、PC計算部53は命令
デコード部52から出力される命令長をデコード中の命令
のPC値に加算することにより次の命令のPC値を作り出
す。また、命令デコード部52が分岐命令をデコードして
デコード段階での分岐を指示した場合は、命令長の代わ
りに分岐変位を分岐命令のPC値に加算することにより分
岐先命令のPC値を計算する。分岐命令に対して命令デコ
ード段階で分岐を行うことを本発明のデータ処理装置で
はプリブランチと称する。
このプリブランチの手法については特開昭63-59630号
及び特開昭63-55639号に詳しく開示されている。
PC計算部53の計算結果は各命令のPC値として命令のデ
コード結果と共に出力される他、プリブランチ時には、
次にデコードすべき命令のアドレスとして命令フェッチ
部51へ出力される。また、次に命令デコード部52でデコ
ードされる命令の分岐予測のためのアドレスにも使用さ
れる。
分岐予測の手法については特開昭63-175934号に詳し
く開示されている。
(2.6) 「データ演算部」 データ演算部56はマイクロプログラムにより制御さ
れ、マイクロROM部55の出力情報に従って各命令の機能
を実現するに必要な演算をレジスタと演算器で実行す
る。演算対象となるオペランドがアドレスあるいは即値
である場合は、オペランドアドレス計算部オペランドア
ドレス計算部54で計算されたアドレスあるいは即値を外
部バスインタフェイス部57を通過させて得る。また、演
算対象となるオペランドがCPU外部のメモリにある場合
は、アドレス計算部54で計算されたアドレスをバスイン
ターフェイス部がアドレス出力回路58から出力して、CP
U外部のメモリからフェッチしたオペランドをデータ入
出力回路59から得る。
演算器としてはALU、バレルシフタ、プライオリティ
エンコーダあるいはカウンタ、シフトレジスタなどがあ
る。レジスタと主な演算器の間には3バスで結合されて
おり、1つのレジスタ間演算を指示する1マイクロ命令
を2クロック(1ステップ)で処理する。
データ演算時にはCPU外部のメモリをアクセスする必
要がある場合は、マイクロプログラムの指示により外部
バスインターフェイス部57を通してアドレス出力回路58
からアドレスをCPU外部に出力し、データ入出力回路59
を通して目的のデータをフェッチする。
CPU外部のメモリにデータをストアする場合は、外部
バスインターフェイス部57を通してアドレス出力回路58
よりアドレスを出力すると同時に、データ入出力回路59
からデータをCPU外部に出力する。オペランドストアを
効率的に行うため、データ演算部56には4バイトのスト
アバッファが備えられている。
ジャンプ命令の処理あるいは例外処理等を行って新た
な命令アドレスをデータ演算部56が得た場合は、これを
命令フェッチ部51とPC計算部53へ出力する。
(2.7) 「外部バスインターフェイス部」 外部バスインターフェイス部57は本発明のデータ処理
装置の外部バスでの通信を制御する。メモリのアクセス
はすべてクロック同期で行われ、最小2クロックサイク
ル(1スッテプ)で行うことができる。
メモリに対するアクセス要求は命令フェッチ部51、オ
ペランドアドレス計算部54及びデータ演算部56から独立
に生じる。外部バスインターフェイス部57はこれらのメ
モリアクセス要求を調停する。更にメモリとCPUとを結
ぶデータバスサイズである32ビット(1ワード)の整置
境界を跨ぐメモリ番地にあるデータのアクセスは、この
ブロック内で自動的にワード境界を跨ぐことを検知して
2回のメモリアクセスに分解して行う。
プリフェッチするオペランドとストアするオペランド
とが重なる場合のコンフリクト防止処理及びストアオペ
ランドからフェッチオペランドへのバイパス処理も行
う。
(3)「パイプライン機構」 本発明のデータ処理装置のパイプライン処理機能は第
2図に模式的に示される如くである。
命令のプリフェッチを行う命令フェッチステージ(IF
ステージ)31,命令のデコードを行うデコードステージ
(Dステージ)32,オペランドのアドレス計算を行うオ
ペランドアドレス計算ステージ(Aステージ)33,マイ
クロROMアクセス(特にRステージ36と称す)を行う部
分とオペランドのプリフェッチ(特にOFステージ37と称
す)を行う部分とからなるオペランドフェッチステージ
(Fステージ)34,命令を実行する実行ステージ(Eス
テージ)35,の5段階構成をパイプライン処理の基本と
する。
Eステージ35では1段のストアバッファがある他、高
機能命令の一部は命令の実行自体をパイプライン化する
ため、実際には5段以上のパイプライン処理効果があ
る。
各ステージは他のステージとは独立に動作し、理論上
は5つのステージが完全に独立動作する。各ステージは
1回の処理を最小2クロック(1ステップ)で行うこと
ができる。従って理想的には2クロック(1ステップ)
毎に次々とパイプライン処理が進行する。
本発明のデータ処理装置には、メモリ−メモリ間演算
あるいはメモリ間接アドレッシング等の如く1回の基本
パイプライン処理のみでは処理し得ない命令もあるが、
本発明のデータ処理装置はこれらの処理に対してもなる
べく均衡のとれたパイプライン処理が行える様に設計さ
れている。複数のメモリオペランドを持つ命令に対して
はメモリオペランドの数に基づいてデコード段階で複数
のパイプライン処理単位(ステップコード)に分解して
パイプライン処理を行う。
パイプライン処理単位の分解方法に関しては特開昭63
-89932号に詳しく開示されている。
IFステージ31からDステージ32に渡される情報は、命
令コード40そのものである。Dステージ32からAステー
ジ33に渡される情報は、命令で指定された演算に関する
もの(Dコード41と称す)と、オペランドのアドレス計
算に関係するもの(Aコード42と称す)との2つがあ
る。
Aステージ33からFステージ34に渡される情報はマイ
クロプログラムのエントリアドレスあるいはマイクロプ
ログラムのパラメータ等を含むRコード43と、オペラン
ドのアドレスとアクセス方法指示情報等を含むFコード
44との2つである。
Fステージ34からEステージ35に渡される情報は、演
算制御情報とリテラル等を含むEコード45と、オペラン
ドあるいはオペランドアドレス等を含むSコード46との
2つである。
Eステージ35以外のステージで検出されたEITは、そ
のコードがEステージ35に到達する迄はEIT処理を起動
しない。Eステージ35で処理されている命令のみが実行
段階の命令であり、IFステージ31からFステージ34まで
の間に処理されている命令はまだ実行段階に至っていな
いからである。従って、Eステージ35以外で検出された
EITは、それが検出されたことがステップコード中に記
録されて次のステージに伝えられるのみである。
(3.1) 「パイプライン処理単位」 (3.1.1) 「命令コードフィールドの分類」 本発明のデータ処理装置のパイプライン処理単位は命
令セットのフォーマットの特徴を利用して決定されてい
る。
(1)節で述べた如く、本発明のデータ処理装置の命令
は2バイト単位の可変長命令であり、基本的には“2バ
イト命令基本部+0〜4バイトのアドレシング拡張部”
を1〜3回反復することにより命令が構成されている。
命令基本部には多くの場合、オペレーションコード部
とアドレッシングモード指定部とがあり、インデックス
アドレッシングあるいはメモリ間接アドレッシングが必
要な場合にはアドレッシング拡張部の代わりに“2バイ
トの多段間接モード指定部+0〜4バイトのアドレッシ
ング拡張部”が任意個付く。また、命令により2または
4バイトの命令固有の拡張部が最後に付く。
命令基本部には命令のオペレーションコード、基本ア
ドレッシングモード、リテラルなどが含まれる。アドレ
ッシング拡張部はディスプレースメント、絶対アドレ
ス、即値、分岐命令の変位のいずれかである。命令固有
の拡張部にはレジスタマップ、I−format命令の即値指
定等がある。第33図は、本発明のデータ処理装置の基本
的命令フォーマットの特徴を示す模式図である。
(3.1.2) 「ステップコードへの命令の分解」 本発明のデータ処理装置では、上記の命令フォーマッ
トの特徴を生かしたパイプライン処理を行う。
Dステージ32では“2バイトの命令基本部+0〜4バ
イトのアドレッシング拡張部",“多段間接モード指定部
+アドレッシング拡張部”又は命令固有の拡張部を1つ
のデコード単位として処理する。各回のデコード結果を
ステップコードと称し、Aステージ33以降ではこのステ
ップコードをパイプライン処理の単位としている。ステ
ップコードの数は命令毎に固有であり、多段間接モード
指定を行わない場合は、1つの命令は最小1個、最大3
個のステップコードに分かれる。多段間接モード指定が
行われた場合はそれだけステップコードが増加する。但
し、これは後で述べる様にデコード段階のみである。
(3.1.3) 「プログラムカウンタの管理」 本発明のデータ処理装置のパイプライン上に存在する
ステップコードは全て別命令に対するものである可能性
があり、このためプログラムカウンタの値はステップコ
ード毎に管理される。全てのステップコードは、そのス
テップコードのもとになった命令のプログラムカウンタ
値を有する。ステップコードに付属してパイプラインの
各ステージを流れるプログラムカウンタ値はステッププ
ログラムカウンタ(SPC)と称する。SPCはパイプライン
ステージ間を次々と受け渡されていく。
(3.2) 「各パイプラインステージの処理」 各パイプラインステージの入出力ステップコードには
第2図に示したように便宜上名前が付けられている。ま
た、ステップコードはオペレーションコードに関する処
理を行い、マイクロプログラムのエントリアドレス及び
Eステージ35に対するパラメータなどになる系列とEス
テージ35のマイクロ命令に対するオペランドになる系列
との2系列がある。
(3.2.1) 「命令フェッチステージ」 命令フェッチステージ(IFステージ)31は命令をメモ
リあるいはブランチバッファからフェッチして命令キュ
ーに入力し、Dステージ32に対して命令コードを出力す
る。命令キューの入力は整置された4バイト単位で行
う。メモリから命令をフェッチする場合は、整置された
4バイトにつき最小2クロック(1ステップ)を要す
る。ブランチバッファがヒットした場合は、整置された
4バイトにつき1クロックでフェッチ可能である。命令
キューの出力単位は2バイト毎に可変であり、2クロッ
クの間に最大6バイトまで出力できる。また、分岐の直
後には命令キューをバイパスして命令基本部2バイトを
直接命令デコーダに転送することも可能である。
ブランチバッファへの命令の登録及びクリア等の制
御、プリフェッチ先の命令のアドレスの管理や命令キュ
ーの制御もIFステージ31で行う。
IFステージ31で検出するEITには、命令をメモリから
フェッチする際のバスアクセス例外あるいはメモリ保護
違反などによるアドレス変換例外がある。
(3.2.2) 「命令デコードステージ」 命令デコードステージ(Dステージ)32はIFステージ
31から入力された命令コードをデコードする。デコード
は、命令デコード部52のFHWデコーダ、NFHWデコーダ及
びアドレッシングモードデコーダを合わせた第1デコー
ダ92を使用して、2クロック(1ステップ)単位に1度
行ない、1回のデコード処理で、0〜6バイトの命令コ
ードを消費する(RET命令の復帰先アドレスを含むステ
ップコードの出力処理などでは命令コードを消費しな
い)。1回のデコードでAステージ33に対してアドレス
計算情報としてのAコード42である制御コードとアドレ
ス修飾情報と、オペレーションコードの中間デコード結
果としてのDコード41である制御コードと8ビットのリ
テラル情報とを出力する。
Dステージ32では、各命令のPC計算部53の制御、分岐
予測処理、プリブランチ命令に対するプリブランチ処
理、命令キューからの命令コード出力処理をも行う。
Dステージ32で検出するEITには、予約命令例外及び
プリブランチ時の奇数アドレスジャンプトラップがあ
る。また、IFステージ31より転送されてきた各種EITは
ステップコード内にエンコードする処理をしてAステー
ジ33に転送する。
(3.2.3) 「オペランドアドレス計算ステージ」 オペランドアドレス計算ステージ(Aステージ)33は
処理機能が大きく2つに分かれる。1つは命令デコード
部52の第2デコーダ96を使用してオペレーションコード
の後段デコードを行う処理で、他方はオペランドアドレ
ス計算部54でオペランドアドレスの計算を行う処理であ
る。
オペレーションコードの後段デコード処理はDコード
41を入力とし、レジスタ,メモリの書き込み予約及びマ
イクロプログラムのエントリアドレスとマイクロプログ
ラムに対するパラメータなどを含むRコード43の出力を
行う。なお、レジスタあるいはメモリの書込み予約は、
アドレス計算で参照したレジスタやメモリの内容がパイ
プライン上を先行する命令で書換えられることにより誤
ったアドレス計算が行われるのを防ぐためのものであ
る。レジスタあるいはメモリの書込み予約はデッドロッ
クを避けるため、ステップコード毎ではなく命令毎に行
う。
レジスタ及びメモリへの書込み予約については特願昭
62-144394号で詳しく述べられている。
オペランドアドレス計算処理はAコード42を入力と
し、Aコード42に従いオペランドアドレス計算部54で加
算あるいはメモリ間接参照を組合わせてアドレス計算を
行い、その計算結果をFコード44として出力する。この
際、アドレス計算に伴うレジスタ及びメモリの読出し時
にコンフリクトチェックを行い、先行命令がレジスタあ
るいはメモリに書込み処理を終了していないためコンフ
リクトが指示されれば、先行命令がEステージ35で書込
み処理を終了するまで待つ。また、オペランドアドレス
及びメモリ間接参照のアドレスがメモリにマップされた
I/O領域に入るか否かのチェックも行う。
Aステージ33で検出するEITには予約命令例外、特権
命令例外、バスアクセス例外、アドレス変換例外、メモ
リ間接アドレッシングの時のオペランドブレイクポイン
トヒットによるデバッグトラップがある。Dコード41又
はAコード42自体がEITを起こしたことを示していれ
ば、Aステージ33はそのコードに対してアドレス計算処
理をせず、そのEITをRコード43及びFコード44に伝え
る。
(3.2.4) 「マイクロROMアクセスステージ」 オペランドフェッチステージ(Fステージ)34も処理
が大きく2つに分かれる。一方はマイクロROMのアクセ
ス処理であり、特にRステージ36と称する。他方はオペ
ランドプリフェッチ処理であり、特にOFステージ37と称
する。Rステージ36とOFステージ37とは必ずしも同時に
動作するわけではなく、メモリアクセス権が獲得できる
か否か等に依存して独立に動作する。
Rステージ36の処理であるマイクロROMアクセス処理
は、Rコード43に対して次のEステージ35での実行に使
用する実行制御コードであるEコード45を生成するため
のマイクロROMアクセスとマイクロ命令デコード処理で
ある。1つのRコード43に対する処理が2つ以上のマイ
クロプログラムステップに分解される場合、マイクロRO
MはEステージ35で使用され、次のRコード43はマイク
ロROMアクセス待ちになる。Rコード34に対するマイク
ロROMアクセスが行われるのは、その前のEステージ35
での最後のマイクロ命令実行の時である。本発明のデー
タ処理装置では、ほとんどの基本命令は1マイクロプロ
グラムステップで行われるため、実際にはRコード43に
対するマイクロROMアクセスが次々と行われることが多
い。
Rステージ36で新たに検出するEITはない。Rコード4
3が命令処理再実行型のEITを示している時は、そのEIT
処理に対するマイクロプログラムが実行されるので、R
ステージ36はそのRコード43に従ったマイクロ命令をフ
ェッチする。Rコード43が奇数アドレスジャンプトラッ
プを示している場合、Rステージ36はそれをEコード45
によって伝える。これはプリブランチに対するもので、
Eステージ35ではそのEコード45で分岐が生じなければ
そのプリブランチを有効として奇数アドレスジャンプト
ラップを発生する。
(3.2.5) 「オペランドフェッチステージ」 オペランドフェッチステージ(OFステージ)37はFス
テージ34で行う上記の2つの処理の内のオペランドプリ
フェッチ処理を行う。
オペランドプリフェッチはFコード44を入力とし、フ
ェッチしたオペランドとそのアドレスをSコード46とし
て出力する。1つのFコード44ではワード境界を跨いで
も良いが4バイト以下のオペランドフェッチを指定す
る。Fコード44にはオペランドのアクセスを行うか否か
の指定も含まれており、Aステージ33で計算したオペラ
ンドアドレス自体あるいは即値をEステージ35に転送す
る場合にはオペランドプリフェッチは行わず、Fコード
44の内容をSコード46として転送する。プリフェッチし
ようとするオペランドと、Eステージ35が書込み処理を
行おうとするオペランドとが一致する場合は、オペラン
ドプリフェッチはメモリから行わずバイパスして行う。
また、I/O領域に対してはオペランドプリフェッチを遅
延させ、先行命令がすべて完了するまで待ってオペラン
ドフェッチを行う。
OFステージ37で検出されるEITには、バスアクセス例
外、アドレス変換例外、オペランドプリフェッチに対す
るブレイクポイントヒットによるデバッグトラップがあ
る。Fコード44がデバッグトラップ以外のEITを示して
いる時は、それをSコード46に転送し、オペランドプリ
フェッチは行われない。Fコード44がデバッグトラップ
を示している時は、そのFコード44に対してEITを示し
ていない場合と同じ処理をすると共にデバッグトラップ
をSコード46に伝える。
(3.2.6)「実行ステージ」 実行ステージ(Eステージ)35はEコード45及びSコ
ード46を入力として動作する。このEステージ35が命令
を実行するステージであり、Fステージ34以前のステー
ジで行われた処理は全てEステージ35のための前処理で
ある。Eステージ35でジャンプ命令で実行されたり、あ
るいはEIT処理が起動されたりした場合は、IFステージ3
1からFステージ34までの処理は全て無効化される。E
ステージ35はマイクロプログラムにより制御され、Rコ
ード45に示されたマイクロプログラムのエントリアドレ
スからの一連のマイクロプログラムを実行することによ
り命令を実行する。
マイクロROMの読み出しとマイクロ命令の実行とはパ
イプライン化されて行われる。従ってマイクロプログラ
ムで分岐が起きた場合は1マイクロステップの空きがで
きる。また、Eステージ35はデータ演算部56にあるスト
アバッファを利用して、4バイト以内のオペランドスト
アと次のマイクロ命令実行をパイプライン処理すること
もできる。
Eステージ35では、Aステージ33で行ったレジスタ及
びメモリに対する書込み予約をオペランドの書き込み後
に解除する。
また、条件分岐命令がEステージ35で分岐を発した場
合は、その条件分岐命令に対する分岐予測が誤っていた
のであるから、分岐履歴の書換えを行う。
Eステージ35で検出されるEITには、バスアクセス例
外、アドレス変換例外、デッバグトラップ、奇数アドレ
スジャンプトラップ、予約機能例外、不正オペランド例
外、予約スタックフォーマット例外、ゼロ除算トラッ
プ、無条件トラップ、条件トラップ、遅延コンテキスト
トラップ、外部割込、遅延割込、リセット割込、システ
ム障害がある。
Eステージ35で検出されたEITは全てEIT処理される
が、Eステージ35以前のIFステージ31からFステージ34
の間で検出され、Rコード43あるいはSコード46に反映
されているEITは必ずしもEIT処理されるとは限らない。
IFステージ31からFステージ34の間で検出されたが、先
行の命令がEステージ35でジャンプ命令が実行されたな
どの原因でEステージ35まで到達しなかったEITは全て
キャンセルされる。そのEITを起こした命令はそもそも
実行されなかったことなる。
外部割込及び遅延割込は命令の切れ目でEステージ35
に直接受け付けられ、マイクロプログラムにより必要な
処理が実行される。その他の各種EITの処理はマイクロ
プログラムにより行われる。
(3.3)「各パイプラインステージの状態制御」 パイプラインの各ステージは入力ラッチと出力ラッチ
とを有し、他のステージとは独立に動作することを基本
とする。各ステージは1つ前に行った処理が終わり、そ
の処理結果を出力ラッチから次のステージの入力ラッチ
に転送し、自分のステージの入力ラッチに次の処理に必
要な入力信号がすべて揃えば次の処理を開始する。
つまり各ステージは、1つ前段のステージから出力さ
れてくる次の処理に対する入力信号が全て有効となり、
今の処理結果を後段のステージの入力ラッチに転送して
出力ラッチが空になると次の処理を開始する。
各ステージが動作を開始する1つ前のクロックタイミ
ングで入力信号が全て揃っている必要がある。入力信号
が揃っていない場合、そのステージは待ち状態(入力待
ち)になる。出力ラッチから次のステージの入力ラッチ
への転送を行う場合には次のステージの入力ラッチが空
き状態になっている必要があり、次のステージの入力ラ
ッチが空きでない場合もパイプラインステージは待ち状
態(出力待ち)になる。必要なメモリアクセス権が獲得
できなかったり、処理しているメモリアクセスにウエイ
トが挿入されたり、その他のパイプラインコンフリクト
が生じると各ステージの処理自体が遅延する。
(4) 「パラメータ生成処理」 本発明に係るデータ処理装置において、ALU,バレルシ
フタ等のオペレーションを指定したり、あるいはフラグ
のマスクを指定したりするパラメータ(以下、オペレー
ション指定パラメータと称する)がどのように生成さ
れ、命令実行手段であるデータ演算部56に渡されるかに
ついて以下に説明する。
第5図は本発明のデータ処理装置の命令セットの内の
一例として、MOV,ADD,SUB,AND,OR,XORの各ALU演算命令
にについて、パラメータ及びマスクされるフラグに関す
る情報及びオペレーションの内容を示す表である。
これらの命令は総て同一マイクロ命令により処理さ
れ、詳細なオペレーションの指示はオペレーション指定
パラメータにより行われる。なお、第5図の表中、
“*”はDon't Careを、“m"はマスク(但し、フラグは
変化しない)を、またフラグはFがジェネラルを、Xが
キャリーを、Vがオーバフローを、Lがローを、MがMS
Bを、Zがゼロをそれぞれ表す。
本発明のデータ処理装置のより詳細な構成を第3図の
ブロック図に示す。
第3図において、51は命令フェッチ部であり、具体的
には命令キューにて構成され、第2図のIFステージ31に
相当する。
92は、命令デコード用PLA(Programmable Logic Arra
y)にて構成されている第1デコーダである。この第1
デコーダあ92は、命令フェッチ部51から与えられる命令
コードをデコードしてDコード41を構成する中間コード
93を生成すると共に、パラメータ切出し回路94に与えら
れるパラメータ切出し制御信号FXTCNTを出力する。
パラメータ切出し回路94は、命令フェッチ部51から命
令コードの一部が与えられ、これから第1デコーダ92か
ら与えられるパラメータ切出し制御信号EXTCNTに従って
パラメータ(第2のビットフィールド)を切出す。
なお、第1デコーダ92とパラメータ切出し回路94とで
命令デコード部52を構成し、第2図のDステージ32に相
当する。
41はDコードであり、第1デコーダ92から出力された
中間コード93及びパラメータ切出し回路94から出力され
たパラメータをラッチするパラメータラッチ95にて構成
される。
96は、第1デコーダ92と同様に命令デコード用PLA(P
rogrammable Logic Array)にて構成されている第2デ
コーダである。この第2デコーダ96は、Dコード41が与
えられ、これをデコードした結果をマイクロエントリア
ドレスラッチ98及びオペレーション指定パラメータ生成
回路99に与える。
オペレーション指定パラメータ生成回路99は、第2デ
コーダ96から与えられるPARMCNT信号及びPARM信号(第
1のビットフィールド)、更にパラメータラッチ95から
与えられる信号PARM−Dとからオペレーション指定パラ
メータPARM−Rを生成してオペレーション指定パラメー
タラッチ100へ出力する。
この第2デコーダ96とオペレーションパラメータ生成
回路99とによりオペランドアドレス計算部54が構成さ
れ、第2図のAステージ33に相当する。
マイクロエントリアドレスラッチ98及びオペレーショ
ン指定パラメータラッチ100にそれぞれラッチされてい
る内容はRコード43を構成する。
104は次マイクロアドレス選択回路であり、マイクロ
エントリアドレスラッチ98にラッチされているマイクロ
エントリアドレスが与えられることにより、次に必要な
マイクロアドレスをマイクロROM55から読出してマイク
ロ命令レジスタ106に記憶させる。
マイクロ命令レジスタ106は、その記憶内容であるマ
イクロ命令をマイクロ命令デコーダ107に与えると共
に、その一部を次マイクロアドレス選択回路104へ戻
す。
マイクロ命令デコーダ107は、マイクロ命令レジスタ1
06から与えられるマイクロ命令のデコード結果とオペレ
ーション指定パラメータラッチ100から与えられるオペ
レーション指定パラメータとからEコード45を生成して
出力する。
以上の次マイクロアドレス選択回路104,マイクロROM5
5,マイクロ命令レジスタ106及びマイクロ命令デコーダ1
07が第2図のRステージ36に相当する。
Eコードはデータ演算部56に与えられる。
そして、データ演算部56では命令フェッチ部51にフェ
ッチされた命令がEコード45に従って実行される。
このような本発明のデータ処理装置の動作について以
下に説明する。
命令フェッチ部51から命令コードが出力されて、命令
デコード部52内の第1デコーダ92によりデコードされる
と、そのデコード結果から中間コード93及びパラメータ
切出し制御信号EXTCNTが生成される。
一方、命令フェッチ部51から出力された命令コードの
一部がパラメータ切出し回路94により切出され、その結
果がパラメータラッチ95にラッチされる。パラメータ切
出し回路94によりいずれのビットが切出されるかは、第
1デコーダ92から出力されるパラメータ切出し制御信号
EXTCNTにより制御される。
第6図は、パラメータ切出し制御信号EXTCNTとこれに
応じて切出されるパラメータとの関係を示す一覧表であ
る。
この第6図の表において、D00〜D15は、命令フェッチ
部51から出力された16ビットの命令コードであり、この
16ビットの内から6ビットのパラメータがパラメータ切
出し制御信号EXTCNTの制御により第6図の表に示す如く
切出される。但し、EXTCNT信号が“100"である場合に
は、前回ラッチしている情報をそのまま保持し、書換え
は行わない。
中間コード93とパラメータラッチ95との内容はDコー
ド41としてAステージ33に送られる。また、中間コード
93とパラメータラッチ95との内容は第2デコーダ96によ
りデコードされ、マイクロエントリアドレスが生成され
る。このマイクロエントリアドレスは、マイクロエント
リアドレスラッチ98にラッチされる。
一方、第2デコーダ96の出力結果の一部とパラメータ
ラッチ95の内容とからオペレーション指定パラメータ生
成回路99によりオペレーション指定パラメータが生成さ
れ、その結果がオペレーション指定パラメータラッチ10
0にラッチされる。
マイクロエントリアドレスラッチ98の内容とオペレー
ション指定パラメータラッチ100の内容とはRコード43
としてRステージ36に送られる。
オペレーション指定パラメータ生成回路99について以
下に詳述する。第8図はオペレーション指定パラメータ
生成回路99の構成を示すブロック図である。
オペレーション指定パラメータ生成回路99では、パラ
メータラッチ95のラッチ内容PARM−Dと、第2デコーダ
96から出力される5ビットのPARM信号82及び1ビットの
PARMCNT信号86とが入力され、オペレーション指定パラ
メータPARM-R85が生成される。PARM信号82の内、第0ビ
ットから第2ビットまでの3ビットはそのままPARM−R
信号85となる。
一方、PARMCNT信号86が“1"である場合は、Dコード4
1のパラメータラッチ95の出力であるPARM−D信号84の
第2ビットと第3ビットとがPARM−R信号85の下位2ビ
ットとなり、PARMCNT信号86が“0"である場合は、PARM
信号82の第3ビットと第4ビットとがPARM−R信号85の
下位2ビットとなる。両者の選択はPARMCNT信号86によ
り制御されるマルチプレクサ(MUX)83で行われる。
このようにしてPARM−R信号85が生成される。これが
第3図に示すRコード43中のオペレーション指定パラメ
ータラッチ100の内容となる。
次マイクロアドレス選択回路104はマイクロエントリ
アドレスラッチ98の内容に従って、マイクロROM55から
マイクロ命令を読出す。読出されたマイクロ命令はマイ
クロ命令レジスタ106にラッチされる。このラッチされ
たマイクロ命令レジスタ106の内容はマイクロデコーダ1
07へ渡される。
また、マイクロ命令レジスタ106にラッチされている
マイクロ命令の一部が次マイクロアドレス選択回路104
に戻され、次に読出されるマイクロ命令アドレスを決定
するのに用いられる。
マイクロ命令デコーダ107へは、オペレーション指定
パラメータラッチ100の内容も渡される。マイクロ命令
デコーダ107は、マイクロ命令レジスタ106の内容とオペ
レーション指定パラメータラッチ100の内容とをデコー
ドする。このデコード結果はデータ演算部56の制御信号
群であるEコード45になる。Eコード45はデータ演算部
56に渡され、これに従ってデータ演算部56において演算
が行われる。
第5図に、一例としてMOV命令(転送),ADD命令(加
算),SUB命令(減算),AND命令(論理積),OR命令(論
理和),XOR命令(排他的論理和)のオペレーション指定
パラメータと6つのフラグ(Fフラグ,Xフラグ,Vフラ
グ,Lフラグ,Mフラグ,Zフラグ)に対するマスク情報及び
ALUでのオペレーション情報の一覧表を示す。
これらの命令はすべて同一のマイクロ命令によって実
行される。ALUでのオペレーション指定及び演算結果に
対してフラグを変化させるか否かの指定は、オペレーシ
ョン指定パラメータにより行われる。
オペレーション指定パラメータ生成の手順について、
MOV命令を一例として以下に説明する。
第4図にフォーマットが異なる3種のMOV命令のビッ
ト割付けを示す。
MOV:G,MOV:Q,MOV:LはそれぞれG−format,Q−format,
L−formatのMOV命令である。各フォーマットによってビ
ット割付けが大きく異なっている。
第7図に、各命令処理時のEXTCNT信号,パラメータラ
ッチ95にラッチされるDコード41のパラメータ値,第2
デコーダ96から出力されるPARM信号82及びPARMCNT信号8
6の一覧表を示す。
MOV:G命令では、命令コードの一部と第2デコーダ96
から出力されるPARM信号82とが合成されてオペレーショ
ン指定パラメータが生成され、MOV:Q命令及びMOV:L命令
ではPARM信号82のみでオペレーション指定パラメータが
生成される。このように、ビット割付けが異なる3種の
フォーマットの命令で同一のオペレーション指定パラメ
ータ(“10010")が指定され、同一のマイクロ命令で処
理される。
ここでは、MOV命令を一例として挙げたが、その他の
多くの命令についても同様の処理が行える。従ってマイ
クロROM55の容量、換言すれば面積を大幅に削減するこ
とができる。
また、オペレーション指定パラメータ生成回路99では
上述の如く、命令コードの一部をパラメータにすること
が出来るようになっている。AND命令,OR命令,XOR命令を
例に挙げて説明する。
これらの命令は上述のように、同一のマイクロ命令に
より実行することが出来る。また、AND命令,OR命令及び
XOR命令は、命令コードの内のほとんどのビットパター
ンが同一で、2ビットだけが異なっている。その2ビッ
トのフィールドがAND命令では“00"に、OR命令では“0
1"に、XOR命令では“10"になっている。
従って、第5図に示したように、この2ビットの値を
オペレーションパラメータ生成回路99によりオペレーシ
ョン指定パラメータの下位2ビットとして書換えれば、
3種の命令を第2デコーダ96の同一の積項線でデコード
することができる。換言すれば、ADD命令とSUB命令、あ
るいはその他の命令で同様の処理を行うことが可能であ
る。これにより、命令コードの一部をパラメータとする
ことにより第2デコーダ96の面積を削減することができ
る。
なお上記実施例では、命令のデコードを第1デコーダ
92と第2デコーダ96との2段階で行っているため、命令
を実行する命令実行手段(データ演算部56)と、命令実
行手段により実行されるべき機械語命令の命令コードを
デコードし、その結果に応じて第1のビットフィールド
を生成する命令デコード手段(第1デコーダ92)と、命
令コードの一部あるいは全部を第2のビットフィールド
として切出す切出し手段(パラメータ切出し回路94)
と、命令デコード手段により生成された第1のビットフ
ィールドと、切出し手段により切出された第2のビット
フィールドとの内のいずれか一方を選択し、命令実行手
段に対する実行制御情報となるパラメータの一部または
全部として出力するパラメータ生成手段(オペレーショ
ン指定パラメータ生成回路99)とを備える構成としてい
る。
しかし、これは本発明のデータ処理装置が上述の如
く、命令のデコードを第1デコーダ92と第2デコーダ96
との2段階で行っているためであり、命令のデコードを
1段階で行う一般的な構成のデータ処理装置にも本発明
は適用可能である。その場合には、命令を実行する命令
実行手段(データ演算部56)と、命令実行手段により実
行されるべき機械語命令の命令コードをデコードし、そ
の結果に応じてビットフィールドを生成する命令デコー
ド手段(第1デコーダ92)と、前記命令デコード手段に
より生成されたビットフィールドと前記命令コードの一
部とのいずれか一方を選択し、前記命令実行手段に対す
る実行制御情報となるパラメータの一部または全部とし
て出力するパラメータ生成手段(オペレーション指定パ
ラメータ生成回路99)とを備える構成とすればよい。
また、上記実施例では一旦DコードパラメータPARM−
Dを生成してからオペレーション指定パラメータの生成
を行っているが、命令コードからオペレーション指定パ
ラメータの一部を直接生成するようにしてもよい。
また、上記実施例では、パラメータの一部がデコーダ
出力に固定されているが、パラメータの総てを命令コー
ドから切出したパラメータと命令デコード結果の選択結
果とにより設定するようにしてもよい。
また、オペレーション指定パラメータについて、デコ
ード結果と命令コードとの複数の組合せパターンを予め
設定しておいて、それを選択できるようにしてもよい。
また、上記実施例ではALUのオペレーション指定及び
フラグマスクの指定をオペレーション指定パラメータで
行っているが、バレルシフタ等の他の演算器のオペレー
ション指定あるいはサイズの指定をオペレーション指定
パラメータを用いて行ってもよい。
〔発明の効果〕
以上の詳述した如く、本発明のデータ処理装置では、
命令コードから切出したパラメータと命令をデコードし
た結果とを選択,合成してオペレーション指定パラメー
タを生成することにより、命令フォーマットが異なる同
一の命令に対して同一のマイクロプログラムで演算実行
が可能となるので、マイクロROM及びデコーダのサイズ
を削減することが可能になる。
【図面の簡単な説明】
第1図は本発明に係るデータ処理装置の全体構成を示す
ブロック図、第2図は本発明のデータ処理装置のパイプ
ラインステージの概要を示す模式図、第3図は本発明の
データ処理装置のより詳細な構成を示すブロック図、第
4図は本発明のデータ処理装置のMOV命令の命令コード
を示す模式図、第5図は本発明のデータ処理装置の命令
のパラメータ等の情報を示す模式図、第6図は本発明の
データ処理装置のDコードパラメータを示す模式図、第
7図は本発明のデータ処理装置の3種のフォーマットの
MOV命令のDコードを示す模式図、第8図は本発明のデ
ータ処理装置のオペレーション指定パラメータ生成部の
構成を示すブロック図、第9図は本発明のデータ処理装
置のメモリ上での命令コードのビット配列を示す模式
図、第10図から第18図は本発明のデータ処理装置の命令
フォーマットを示す模式図、第19図から第32図は本発明
のデータ処理装置のアドレッシングモードを説明するた
めの模式図、第33図は本発明のデータ処理装置の命令フ
ォーマットの特徴を示す模式図、第34図は従来のデータ
処理装置の構成を示す模式図である。 56……データ演算部、92……第1デコーダ 94……パラメータ切出し回路、99……オペレーション指
定パラメータ生成回路 なお、各図中同一符号は同一又は相当部分を示す。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】命令を実行する命令実行手段と、 該命令実行手段により実行されるべき機械語の命令コー
    ドをデコードし、その結果に応じてビットフィールドを
    生成する命令デコード手段と、 前記命令デコード手段により生成されたデコード結果に
    基づいて前記命令実行手段に対する命令実行情報となる
    マイクロ命令を生成するマイクロ命令生成手段と、 前記命令デコード手段により生成されたビットフィール
    ドと前記命令コードの一部とのいずれか一方を選択し、
    前記命令実行手段に対する実行制御情報となるパラメー
    タの一部又は全部として出力するパラメータ生成手段と を備えたことを特徴とするデータ処理装置。
  2. 【請求項2】命令を実行する命令実行手段と、 該命令実行手段により実行されるべき機械語の命令コー
    ドをデコードし、その結果に応じて第1のビットフィー
    ルドを生成する命令デコード手段と、 前記命令コードの一部又は全部を第2のビットフィール
    ドとして切出す切出し手段と、 前記命令デコード手段により生成された第1のビットフ
    ィールドと、前記切出し手段により切出された第2のビ
    ットフィールドとの内のいずれか一方を選択し、前記命
    令実行手段に対する実行制御情報となるパラメータの一
    部又は全部として出力するパラメータ生成手段と を備えたことを特徴とするデータ処理装置。
JP63331765A 1988-12-26 1988-12-26 データ処理装置 Expired - Lifetime JPH0810428B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP63331765A JPH0810428B2 (ja) 1988-12-26 1988-12-26 データ処理装置
US07/457,413 US5220656A (en) 1988-12-26 1989-12-26 System for selecting control parameter for microinstruction execution unit using parameters and parameter selection signal decoded from instruction
US07/954,096 US5321821A (en) 1988-12-26 1992-09-29 System for processing parameters in instructions of different format to execute the instructions using same microinstructions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63331765A JPH0810428B2 (ja) 1988-12-26 1988-12-26 データ処理装置

Publications (2)

Publication Number Publication Date
JPH02173823A JPH02173823A (ja) 1990-07-05
JPH0810428B2 true JPH0810428B2 (ja) 1996-01-31

Family

ID=18247371

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63331765A Expired - Lifetime JPH0810428B2 (ja) 1988-12-26 1988-12-26 データ処理装置

Country Status (2)

Country Link
US (2) US5220656A (ja)
JP (1) JPH0810428B2 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04255028A (ja) * 1991-02-06 1992-09-10 Sharp Corp マイクロプロセッサ
KR950009687B1 (ko) * 1992-06-30 1995-08-26 삼성항공산업주식회사 프로그램어블 로직 콘트롤러용 고속 래더명령 처리장치
US5542058A (en) * 1992-07-06 1996-07-30 Digital Equipment Corporation Pipelined computer with operand context queue to simplify context-dependent execution flow
JPH0683618A (ja) * 1992-08-31 1994-03-25 Nec Corp フラグ制御回路
US5408674A (en) * 1992-12-23 1995-04-18 Amdahl Corporation System for checking the validity of two byte operation code by mapping two byte operation codes into control memory in order to reduce memory size
US5479626A (en) * 1993-07-26 1995-12-26 Rockwell International Corporation Signal processor contexts with elemental and reserved group addressing
US5559974A (en) * 1994-03-01 1996-09-24 Intel Corporation Decoder having independently loaded micro-alias and macro-alias registers accessible simultaneously by one micro-operation
US6128720A (en) * 1994-12-29 2000-10-03 International Business Machines Corporation Distributed processing array with component processors performing customized interpretation of instructions
JP2931890B2 (ja) 1995-07-12 1999-08-09 三菱電機株式会社 データ処理装置
US5740420A (en) * 1995-10-26 1998-04-14 Advanced Micro Devices, Inc. System and method for compiling and executing sequences of macro and micro instructions
US5958046A (en) * 1996-11-26 1999-09-28 Texas Instruments Incorporated Microprocessor with reduced microcode space requirements due to improved branch target microaddress circuits, systems, and methods
US5918031A (en) * 1996-12-18 1999-06-29 Intel Corporation Computer utilizing special micro-operations for encoding of multiple variant code flows
US5896522A (en) * 1996-12-31 1999-04-20 Unisys Corporation Selective emulation interpretation using transformed instructions
USRE41012E1 (en) 1998-03-12 2009-11-24 Altera Corporation Register file indexing methods and apparatus for providing indirect control of register addressing in a VLIW processor
US6446190B1 (en) * 1998-03-12 2002-09-03 Bops, Inc. Register file indexing methods and apparatus for providing indirect control of register addressing in a VLIW processor
US6581154B1 (en) * 1999-02-17 2003-06-17 Intel Corporation Expanding microcode associated with full and partial width macroinstructions
US7376814B1 (en) 1999-09-07 2008-05-20 Nxp B.V. Method for forming variable length instructions in a processing system
US7162621B2 (en) 2001-02-21 2007-01-09 Mips Technologies, Inc. Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration
US7599981B2 (en) 2001-02-21 2009-10-06 Mips Technologies, Inc. Binary polynomial multiplier
US7711763B2 (en) * 2001-02-21 2010-05-04 Mips Technologies, Inc. Microprocessor instructions for performing polynomial arithmetic operations
US7181484B2 (en) * 2001-02-21 2007-02-20 Mips Technologies, Inc. Extended-precision accumulation of multiplier output
GB2399899B (en) 2003-03-27 2005-06-22 Micron Technology Inc Active memory command engine and method
US7698539B1 (en) * 2003-07-16 2010-04-13 Banning John P System and method of instruction modification

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4558411A (en) * 1969-05-19 1985-12-10 Burroughs Corp. Polymorphic programmable units employing plural levels of sub-instruction sets
US3631405A (en) * 1969-11-12 1971-12-28 Honeywell Inc Sharing of microprograms between processors
US3889242A (en) * 1971-10-04 1975-06-10 Burroughs Corp Modifiable computer function decoder
US3794979A (en) * 1973-03-02 1974-02-26 Ibm Microprogrammed control unit with means for reversing and complementing microinstructions
US4312034A (en) * 1979-05-21 1982-01-19 Motorola, Inc. ALU and Condition code control unit for data processor
US4384324A (en) * 1980-05-06 1983-05-17 Burroughs Corporation Microprogrammed digital data processing system employing tasking at a microinstruction level
JPS58203554A (ja) * 1982-05-21 1983-11-28 Toshiba Corp 演算処理装置
JPS5927351A (ja) * 1982-08-06 1984-02-13 Hitachi Ltd デ−タ処理装置
US4589067A (en) * 1983-05-27 1986-05-13 Analogic Corporation Full floating point vector processor with dynamically configurable multifunction pipelined ALU
JPS60105044A (ja) * 1983-11-11 1985-06-10 Fujitsu Ltd マイクロプログラム制御方式
EP0159699A3 (en) * 1984-04-23 1988-09-28 Nec Corporation A data processor executing microprograms according to a plurality of system architectures
GB8421066D0 (en) * 1984-08-18 1984-09-19 Int Computers Ltd Microprogram control
JPS6224326A (ja) * 1985-07-24 1987-02-02 Hitachi Ltd デ−タ処理装置
JPS62165242A (ja) * 1986-01-17 1987-07-21 Toshiba Corp プロセツサ
JPH07120278B2 (ja) * 1988-07-04 1995-12-20 三菱電機株式会社 データ処理装置

Also Published As

Publication number Publication date
JPH02173823A (ja) 1990-07-05
US5321821A (en) 1994-06-14
US5220656A (en) 1993-06-15

Similar Documents

Publication Publication Date Title
JPH0810428B2 (ja) データ処理装置
US5091853A (en) Chained addressing mode pipelined processor which merges separately decoded parts of a multiple operation instruction
US5404560A (en) Microprocessor having external control store
JP2507638B2 (ja) デ―タ処理装置
US5522053A (en) Branch target and next instruction address calculation in a pipeline processor
JPH0719215B2 (ja) マイクロプロセッサ
JP3543181B2 (ja) データ処理装置
US4945511A (en) Improved pipelined processor with two stage decoder for exchanging register values for similar operand instructions
JPH081599B2 (ja) データ処理装置
JPH081602B2 (ja) データ処理装置
JPH03158928A (ja) データ処理装置
JPH07120284B2 (ja) データ処理装置
US5212779A (en) System for guarantee reexecution after interruption by conditionally used store buffer if microinstruction being executed is a memory write and last microinstruction
JPH0769806B2 (ja) データ処理装置
US5269008A (en) Method and apparatus for pre-processing the source of a pop instruction in a pipeline computer
JP2522048B2 (ja) マイクロプロセッサ及びそれを使用したデ―タ処理装置
JPH0769805B2 (ja) データ処理装置
JPH0769801B2 (ja) データ処理装置
JPH0769802B2 (ja) データ処理装置
JPH0769808B2 (ja) データ処理装置
JPH0573294A (ja) マイクロプロセツサ
JPH0769804B2 (ja) データ処理装置
JPH0218621A (ja) データ処理装置
JPH01258032A (ja) パイプライン処理機構を持つデータ処理装置
JPH01214933A (ja) データ処理装置