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

データ処理装置

Info

Publication number
JPH01280832A
JPH01280832A JP63111224A JP11122488A JPH01280832A JP H01280832 A JPH01280832 A JP H01280832A JP 63111224 A JP63111224 A JP 63111224A JP 11122488 A JP11122488 A JP 11122488A JP H01280832 A JPH01280832 A JP H01280832A
Authority
JP
Japan
Prior art keywords
data
operand
instruction
size
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.)
Pending
Application number
JP63111224A
Other languages
English (en)
Inventor
Okiha Kawaguchi
川口 起葉
Toru Shimizu
徹 清水
Yukari Watanabe
渡辺 由香里
Yuichi Saito
斎藤 祐一
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 JP63111224A priority Critical patent/JPH01280832A/ja
Publication of JPH01280832A publication Critical patent/JPH01280832A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明は、演算処理装置により1つもしくは複数のオ
ペランドをソースオペランド及びソースオペランドとし
て処理することができ、且つソースオペランドサイズと
デスティネーションオペラ7・7        ンド
サイズを各々別々に指定することのできる命令を備えた
データ処理装置に関するものである。
〔従来の技術〕
第30図は従来のデータ処理装置における演算処理部と
しての算術論理演算ユニット(ALU)を示すブロック
図である。
第30図において1はソースデータDsがロードされる
レジスタ、2はデスティネーションデータDdlがロー
ドされるレジスタ、3はALU 、 4は演算結果Dd
2が格納されるレジスタ、5はフラグ検出回路、6.7
.8はデータバス、Sはソースデータのサイズ指定信号
、Dはデスティネーションデータのサイズ指定信号であ
る。
次にこのデータ処理装置の動作について説明する。従来
のデータ処理装置においては、特殊な命令を除いて、一
般に演算命令、転送命令においては単一のデータサイズ
情報を用いていた。そのため、データサイズ情報として
複雑な処理をする必要はなかった。
第30図に示す従来のデータ処理装置の例においては、
サイズ指定信号SによってソースデータDsのサイズが
指定され、サイズ指定信号りによってデスティネーシッ
ンデータDblOサイズとフラグのサイズが指定される
。そして、ソースデータDsはデータバス6を通してレ
ジスタ1にロードされ、デスティネーションデータDd
lはデータバス7を通してレジスタ2にロードされる。
これら2つのデータはALU3に送られ、演算が行われ
、演算結果Dd2が得られてレジスタ4とフラグ検出回
路5に送られる。フラグ検出回路5においては、サイズ
指定信号りによって指定された、デスティネーシッンデ
ータDblOサイズと同じサイズで、フラグの検出が行
われる。
〔発明が解決しようとする課題〕
従来のデータ処理装置におけるALU等の演算処理部は
、以上のように構成されているので、フラグサイズをデ
スティネーションデータのサイズ以外のサイズに指定出
来ないため、ソースデータとデスティネーションデータ
のサイズが異なり、フラグサイズをデスティネーション
データのサイズ以外に指定しなければならない場合には
正しいフラグが得ることが困難であり、演算処理速度が
低下するという問題点があった。
この発明は上記のような問題点を解消するためになされ
たもので、ソースオペランドサイズ、デスティネーショ
ンオペランドサイズの両方に対して各々独立にサイズを
指定できる命令セットを備えたデータ処理装置において
、あらゆる命令の実行を高速に処理できるようにその演
算処理部を構成したデータ処理装置の提供を目的とする
〔課題を解決するための手段〕
この発明に係るデータ処理装置は、ソースオペランドサ
イズ、デスティネーションオペランドサイズの指定信号
以外に、演算結果のデータ及びステータスフラグ検出回
路用に独立してサイズ指定信号を得られるようにしたも
のである。
〔発明の実施例〕
以下、本発明をその実施例を示す図面に基づいて詳述す
る。
(11本発明のデータ処理装置の命令フォーマット本発
明のデータ処理装置の命令は16ビツト単位で可変長と
なっており、奇数バイト長の命令は使用しない。
本発明のデータ処理装置では高頻度命令を短いフォーマ
ットとするため、特に工夫された命令フォーマット体系
を有する0例えば、2オペランド命令に対して、基本的
に「4バイト+拡張部」の構成を有し、すべてのアドレ
ッシングモードが利用できる一般形フオーマントと頻度
の高い命令とアドレッシングモードのみを使用できる短
縮形フォーマットの2つのフォーマットがある。
本発明のデータ処理装置の命令フォーマット中に現われ
る記号の意味は次の通りである。
−:オペコードの入る部分 #:リテラル、または即値の入る部分 Ea:8ミニ8ビツト形のアドレッシングモードでオペ
ランドを指定する部分 Sh:6ビツトの短縮形のアドレッシングモードでオペ
ランドを指定する部分 Rn:レジスタ上のオペランドをレジスタ番号で指定す
る部分 フォーマットは、第5図に示すように、右側がLSB(
最下位ビット)側で、かつ高いアドレスになっている。
アドレスNとアドレスN N+1  の2バイトを見な
いと命令フォーマントが判別できないようになっている
が、これは、命令が必ず16ビツト (2バイト)単位
でフェフチ、デコードされることを前提としたためであ
る。
本発明のデータ処理装置では、いずれのフォーマットの
場合も、各オペランドのEaまたはshの拡張部は、必
ずそのEaまたはshの基本部を含むハーフワードの直
後に置かれる。これは、命令により暗黙に指定される即
値データあるいは命令の拡張部に優先する。したがって
、4バイト以上の命令では、Eaの拡張部によって命令
のオペコードが分断される場合がある。
また、後述するように、多重間接モードによって、Ea
の拡張部にさらに拡張部が付く場合にも、次の命令オペ
コードよりもそちらの方が優先される0例えば、第1ハ
ーフワードにEalを含み、第2ハーフワードにEa2
を含み、第3ハーフワードまである6バイト命令の場合
を考える。Ealに多重間接モードを使用したため、普
通の拡張部のはかに多重間接モードの拡張部も付(もの
とする。
この時、実際の命令ビットパターンは、命令の第1ハー
フワード(Ealの基本部を含む) 、Ealの拡張部
、Ealの多重間接モード拡張部、命令の第2ハーフワ
ード(Ea2の基本部を含む) 、Ealの拡張部、命
令の第3ハーフワード、の順となる。
(1,1)短縮形2オペランド命令 第6図から第9図に示す、2オペランド命令の短縮形フ
ォーマットである。
第7図はメモリーレジスタ間演算命令のフォーマットで
ある。このフォーマントにはソースオペランド側がメモ
リとなるL−formatとデスティネーションオペラ
ンド側がメモリとなるS−formatがある。
L−formatでは、shはソースオペランドの指定
フィールド、Rhはデスティネーションオペランドのレ
ジスタの指定フィールド、RRはshのオペランドサイ
ズの指定をあられす、レジスタ上に置かれたデスティネ
ーションオペランドのサイズは、32ビツトに固定され
ている。レジスタ側とメモリ側のサイズが異なり、ソー
ス側のサイズが小さい場合に符号拡張が行なわれる。
5−fortsatではshはデスティネーションオペ
ランドの指定フィールド、Rhはソースオペランドのレ
ジスタ指定フィールド、RRはshのオペランドサイズ
の指定を表す。レジスタ上に置かれたソースオペランド
のサイズは、32ビツトに固定されている。
レジスタ側とメモリ側のサイズが異なり、ソース側のサ
イズが大きい場合にあふれた部分の切捨てとオーバーフ
ローチエツクが行なわれる。
第8図はレジスターレジスタ間演算命令のフォーマット
(R−format)である、 Rhはデスティネーシ
ョンレジスタの指定フィールド1、はソースレジスタの
指定フィールドである。オペランドサイズは32ビツト
のみである。
第9図はリテラル−メモリ間演算命令のフォーマット(
Q−format)である、 MMCよディスティネー
ションオペランドサイズの指定フィールド、1!81は
リテラルによるソースオペランドの指定フィールド、s
hはデスティネーションオペランドの指定フィールドで
ある。
第9図は即値−メモリ間演算命令のフォーマント(I−
fors+at)である、 MMはオペランドサイズの
指定フィールド(ソース、ディスティネーションで共通
)、Shはデスティネーションオペランドの指定フィー
ルドである。I−formatの即値のサイズは、デス
ティネーション側のオペランドのサイズと共通に8.1
6.32  ビットとなり、ゼロ拡張、符号拡張は行な
われない。
(1,2)−膜形1オペランド命令 第10図は1オペランド命令の一般形フオーマット(G
l−fortsat)である、 MMはオペランドサイ
ズの指定フィールドである。一部のGl−format
命令では、Il!aの拡張部以外にも拡張部がある。ま
た、聞を使用しない命令もある。
(1,3)−膜形2オペランド命令 第11図から第13図は2オペランド命令の一般形フオ
ーマットである。このフォーマントに含まれるのは、8
ビツトで指定する一般形アドレッシングモードのオペラ
ンドが最大2つ存在する命令である。オペランドの総数
自体は3つ以上になる場合がある。
第11図第1オペランドがメモリ読出しを必要とする命
令のフォーマット(G−4orsat)である、 Ea
Mはデスティネーションオペランドの指定フィールド、
開はデスティネーションオペランドサイズの指定フィー
ルド、EaRはソースオペランド指定フィールド、RR
はソースオペランドサイズの指定フィールドである。
このように本発明のデータ処理装置の2オペランド命令
の一般形フオーマットでは2つのオペランドに対してそ
れぞれ独立にオペランドサイズを指定することができる
第12図は第1オペランドが8ビフト即値の命令のフォ
ーマット(E−format)である、 EaMはデス
ティネーションオベラジドの指定フィールド、財はデス
ティネーションオペランドサイズの指定フィールド、1
11111g11はソースオペランド値である。
E−fors+atとI−formatとは機能的には
似たものであるが、考え方の点では大きく違っている。
即ち、E−formatはあくまでも2オペランド−船
形(G−foraha t)の派生形であり、ソースオ
ペランドのサイズが8ビツト固定、ディスティネーショ
ンオペランドのサイズが8.16.32ビツトから選択
となっている。つまり、異種サイズ間の演算を前提とし
、デスティネーションオペランドのサイズに合わせて8
ビツトのソースオペランドがゼロ拡張または符号拡張さ
れる。一方、I−for+*atは、特に転送命令、比
較命令で頻度の多い即値のパターンを短縮形にしたもの
であり、ソースオペランドとディスティネーションオペ
ランドのサイズは等しい。
第14図は第1オペランドがアドレス計算のみの命令の
フォーマット(GA−format)である、 Ea−
はデスティネーションオペランドの指定フィールド、四
はデスティネーションオペランドサイズの指定フィール
ド、EaAはソースオペランドの指定フィールドである
。ソースオペランドとしては実行アドレスの計算結果自
体が使用される。
第14図はショートブランチ命令のフォーマットである
。 ccccはブランチ条件指定フィールドであり、d
isp:8はジャンプ先との変位指定フィールドであり
、本発明のデータ処理装置では8ビツトで変位を指定す
る場合には、ビットパターンでの指定値を2倍して変位
値とする (1.4)アドレッシングモード 本発明のデータ処理装置のアドレッシングモード指定方
法には、レジスタを含めて6ビツトで指定する短縮形と
、8ビツトで指定する一般形がある。
未定義のアドレッシングモードを指定した場合、あるい
は意味的に考えて明らかにおかしなアドレッシングモー
ドの組み合わせを指定した場合には、未定義命令を実行
した場合と同じく予約命令例外を発生し、例外処理を起
動する。
これに該当するのは、デスティネーションが即値モード
の場合、アドレス計算を伴うべきアドレッシングモード
指定フィールドで即値モードを使用した場合などである
フォーマットの図中で使われる記号は、つぎの通りであ
る。
Rn:レジスタ指定 memEA : Aで示されるアドレスのメモリ内容(
Sh) : 6ビツトの短縮形アドレッシングモードで
の指定方法 (Ea) : 8 ヒツトの一般形アドレッシングモー
ドでの指定方法 フォーマットの図で点線で囲まれた部分は、拡張部を示
す。
(1,4,1) 基本アドレッシングモード本発明のデ
ータ処理装置は様々なアドレッシングモードをサポート
する。そのうち、本発明のデータ処理装置でサポートす
る基本アドレッシングモードには、レジスタ直接モード
、レジスタ間接モード、レジスタ相対間接モード、即値
モード、絶対モード、PC相対間接モード、スタックポ
フブモード、スタックブツシュモードがある。
レジスタ直接モードは、レジスタの内容をそのままオペ
ランドとする。フォーマットは第15図に示す。図中、
Rnは汎用レジスタの番号を示す。
レジスタ間接モードは、レジスタの内容をアドレスとす
るメモリの内容をオペランドとする。フォーマットは第
17図に示す0図中、Rnは汎用レジスタの番号を示す
レジスタ相対間接モードは、ディスプレースメント値が
16ビツトか32ビツトかにより、2種類ある。それぞ
れ、レジスタの内容に16ビツトまたは32ビツトのデ
ィスプレースメント値を加えた値をアドレスとするメモ
リの内容をオペランドとする。
フォーマットは第18図に示す0図中、Rnは汎用レジ
スタの番号を示す、“disp:16”と”、disp
:32”はそれぞれ、16ビツトのディスプレースメン
ト値、32ビツトのディスプレースメント値を示す。デ
ィスプレースメント値は符号付きとして扱う。
即値モードは、命令コード中で指定されるビットパター
ンをそのまま2進数と見なしてオペランドとする。フォ
ーマントは第19図に示す0図中、’fan data
”は即値を示す* ’im+m data”のサイズは
オペランドサイズとして命令中で指定される。
絶対モードは、アドレス値が16ビツトで示されるか3
2ビツトで示されるかにより2種類ある。それぞれ、命
令コード中で指定される16ビツトまたは32ビツトの
ビットパターンをアドレスとしたメモリの内容をオペラ
ンドとする。フォーマットは第19図に示す、“abs
 : 16”と”abs:32”はそれぞれ、16ビツ
ト、32ビツトのアドレス値を示す、“abs : 1
6’″でアドレスが示されるときは指定されたアドレス
値を32ビツトに符号拡張する。
PC相対間接モードは、ディスプレースメント値が16
ビツトか32ビツトかにより、2種類ある。それぞれ、
プログラムカウンタの内容に16ビツトまたは32ビツ
トのディスプレースメント値を加えた値をアドレスとす
るメモリの内容をオペランドとする。フォーマットは第
20図に示す、 ’disp:16”と’disp:3
2’は、それぞれ、16ビツトのディスプレースメント
値、32ピントのディスプレースメント値を示す。ディ
スプレースメント値は符号付きとして扱う。PC相対間
接モードにおいて参照されるプログラムカウンタの値は
、そのオペランドを含む命令の先頭アドレスである。多
段間接アドレシングモードにおいてプログラムカウンタ
の値が参照される場合にも、同じように命令先頭のアド
レスをpc相対の基準値として使用する。
スタックポツプモードはスタックポインタ(SP)の内
容をアドレスとするメモリの内容をオペランドとする。
オペランドアクセス後、SPをオペランドサイズだけイ
ンクリメントする。例えば、32ピントデータを扱う時
には、オペランドアクセス後にSPが+4だけ更新され
る。B、 Hのサイズのオペランドに対するスタックポ
ツプモードの指定も可能であり、それぞれSPが+1.
+2だけ更新される。フォーマットは第21図に示す。
オペランドに対しスタックポツプモードが意味を持たな
いものに対しては、予約命令例外を発生する。具体的に
予約命令例外となるのは、Wr i teオペランド、
read−modHy−writeオペランドに対する
スタックホップモード指定である。
スタックブツシュモードはSPの内容をオペランドサイ
ズだけデクリメントした内容をアドレスとするメモリの
内容をオペランドとする。スタックブツシュモードでは
オペランドアクセス前にSPがデクリメントされる。例
えば、32ビツトデータを扱う時には、オペランドアク
セス前にSPが−4だけ更新される。B、 Hのサイズ
のオペランドに対するスタックブツシュモードの指定も
可能であり、それぞれSPが−1,−2だけ更新される
。フォーマントは第22図に示す。オペランドに対して
スタックブツシュモードが意味を持たないものに対して
は、予約命令例外を発生する。具体的に予約命令例外と
なるのは、readオペランド、read−modif
y−writeオペランドに対すスタックブツシュモー
ド指定である。
(1,4,2)多段間接アドレッシングモード複雑なア
ドレッシングも、基本的には加算と間接参照の組み合わ
せに分解することができる。したがって、加算と間接参
照のオペレーションをアドレッシングのプリミティブと
して与えておき、それを任意に組み合わせることができ
れば、どんな複雑なアドレッシングモードをも実現する
ことができる。本発明のデータ処理装置の多段間接アド
レッシングモードはこのような考え方にたったアドレッ
シングモードである。複雑なアドレッシングモードは、
モジュール間のデータ参照あるいはAI(Artifi
cial Inteligence:人工知能)言語の
処理系に特に有用である。
多段間接アドレッシングモードを指定するとき、基本ア
ドレッシングモード指定フィールドでは、レジスタベー
ス多段間接モード、PCベース多段間接モード、絶対ベ
ース多段間接モードの3種類の指定方法のうちいずれか
1つを指定する。
レジスタベース多段間接モードはレジスタの値を、拡張
する多段間接アドレッシングのベース値とするアドレッ
シングモードである。フォーマットは第23図に示す。
図中、Rnは汎用レジスタの番号を示す。
PCベース多段間接モードはプログラムカウンタの値を
、拡張する多段間接アドレッシングのベース値とするア
ドレッシングモードである。フォーマットは第24図に
示す。
絶対ベース多段間接モードはゼロを、拡張する多段間接
アドレッシングのベース値とするアドレフシングモード
である。フォーマットは第25図に示す。
拡張する多段間接モード指定フィールドは、16ビツト
を単位としており、これを任意回繰り返す。
1段の多段間接モードにより、ディスプレースメントの
加算、インデクスレジスタのスケーリング(×1、×2
、×4、×8)と加算及びメモリの間接参照を行なう。
多段間接モードのフォーマントは第26図に示す。各フ
ィールドは以下に示す意味をもつ。
E・0 :多段間接モード継続 E−1ニアドレス計算終了 tII+p ==> address  of ope
rand■−0:メモリ間接参照なし tap + disp + Rx * 5cale =
=l> tap■=1:メモリ間接参照あり 5ets tap + disp + Rx * 5c
ale  =−> ttapM−0: <Rx>をイン
デクスとして使用h=1:特殊なインデクス <RX>・0 インデクス値を加算しない(Rx=O) <R)(>=1  プログラムカウンタをインデクス値
として使用 (Rx=PC) <Rx>−2〜  reserved D−0:多段間接モード中の4ビツトのフィールドd4
の値を4倍してディスプレースメント値とし、これを加
算する。d4は符号付きとして扱い、オペランドのサ イズとは関係なく必ず4倍して使用す る D−1:多段間接モードの拡張部で指定されたdisp
x(16/32ビツト)をディスプレースメント値とし
、これを加算する 拡張部のサイズはd4フィールドで指定する d4=o001   dispxは16ビツトd4JO
10dispx は32ビットXx:インデクスのスケ
ール(scale = 1/2/4プログラムカウンタ
に対して×2、×4、×8のスケーリングを行なった場
合には、その段の処理終了後の中間値(tap)として
、不定値が入る。
この多段間接モードによって得られる実効アドレスは予
測できない値となるが、例外は発生しない。
プログラムカウンタに対するスケーリングの指定は行な
ってはいけない。
多段間接モードによる命令フォーマットのバリエーショ
ンを第27図、第28図に示す。第27図は多段間接モ
ードが継続するか終了するかのバリエーションを示す。
第28図はディスプレースメントのサイズのバリエーシ
ョンを示す。
任意段数の多段間接モードが利用できれば、コンパイラ
の中で段数による場合分けが不要になるので、コンパイ
ラの負担が軽減されるというメリットがある。多段の間
接参照の頻度が非常に少ないとしても、コンパイラとし
ては必ず正しいコードを発生できなければならないから
である。このため、フォーマット上、任意の段数が可能
になっている。
(2)機能ブロックの構成 第1図に本発明のデータ処理装置のブロック図を示す。
本発明のデータ処理装置の内部構成を機能的に大別する
と、命令フェンチ部151.命令デコード部152、P
C計算部153.オペランドアドレス計算部154゜マ
イクロROM部155.データ演算部156.外部バス
インターフェイス部157等に分かれる。
第1図では、その他にCPU外部にアドレスを出力する
アドレス出力回路158とCPII外部とデータの入出
力を行うデータ入出力回路159を他の機能ブロック部
と分けて示した。
(2,1)命令フェッチ部 命令フェッチ部151にはブランチバッファ、命令キュ
ーとその制御部等が含まれ、次にフェッチすべき命令の
アドレスを決定して、ブランチバッファあるいはCPU
外部のメモリから命令をフェッチする。ブランチバッフ
ァへの命令登録も行う。
ブランチバッファは小規模であるためセレクティブキャ
ッシュとして動作する。ブランチバソファの動作の詳細
は特願昭61−202041号で詳しく述べられている
次にフェッチすべき命令のアドレスは命令キューに入力
すべき命令のアドレスとして専用のカウンタで計算され
る。分岐やジャンプが起きたときには、新たな命令のア
ドレスが、PC計算部153あるいはデータ演算部15
6より転送されてくる。
CPU外部のメモリから命令をフェッチするときは、外
部バスインターフェイス部157を通して、フェッチす
べき命令のアドレスをアドレス出力回路158からCP
U外部に出力し、データ入出力回路159から命令コー
ドをフェッチする。
バッファリングした命令コードのうち、命令デコード部
152で次にデコードすべき命令コードを命令デコード
部152に出力する。
<2.2)命令デコード部 命令デコード部152では基本的に16ビツト(ハーフ
ワード)単位で命令コードをデコードす・D。
このブロックには第1ハーフワードに含まれるオペコー
ドをデコードするFl(−デコーダ、第2.第3ハーフ
ワードに含まれるオペコードをデコードすルNFHWテ
コーダ、アドレッシングモードをデコードするアドレッ
シングモードデコーダが含まれる。
またFHWデコーダやNFH−デコーダの出力を更にデ
コードして、マイクロROMのエントリアドレスを計算
するデコーダ2、条件分岐命令の分岐予測を行う分岐予
測機構、オペランドアドレス計算のときのパイプライン
コンフリクトをチエツクするアドレス計算コンフリクト
チエツク機構も含まれる。
命令フェッチ部より入力された命令コードは2クロツク
につき0〜6バイトにデコードされる。
デコード結果のうち、データ演算部56での演算に関す
る情報がマイクロROM部155に、オペランドアドレ
ス計算に関係する情報がオペランドアドレス計算部15
4に、pc計算に関係する情報がpc計算部153に、
それぞれ出力される。
(2,3)マイクロROM部 マイクロROM部155には主にデータ演算部156を
制御するマイクロプログラムが格納されているマイクロ
ROM 、マイクロシーケンサ、マイクロ命令デコーダ
などが含まれる。マイクロ命令はマイクロROMから2
クロツクに1度読み出される。
マイクロシーケンサはマイクロプログラムで示されるシ
ーケンス処理の他に、例外、割込、トラップ(この3つ
をあわせてEITと呼ぶ)の処理をハードウェア的に受
付ける。またマイクロROM部はストアバッファの管理
も行う。マイクロROM部には命令コードに依存しない
割込みや演算実行結果によるフラッグ情報と、デコーダ
2の出力など命令デコード部の出力が入力される。マイ
クロデコーダの出力は主にデータ演算部156に対して
出力されるが、ジャンプ命令の実行による他の先行処理
中止情報など一部の情報は他のブロックへも出力される
(2,4)オペランドアドレス計算部 オペランドアドレス計算部154は、命令デコード部1
52のアドレスデコーダなどから出力されたオペランド
アドレス計算に関係する情報によりハードワイヤードに
制御される。このブロックではオペランドのアドレス計
算に関するほとんどの処理が行われる。メモリ間接アド
レシングのためのメモリアクセスのアドレスやオペラン
ドアドレスがメモリにマツプされたI10領域に入るか
どうかのチエツクも行われる。
アドレス計算結果は外部バスインターフェイス部157
に送られる。アドレス計算に必要な汎用レジスタあるい
はプログラムカウンタの値はデータ演算部より入力され
る。
メモリ間接アドレッシングを行うときは外部バスインタ
ーフェイス部157を通してアドレス出力回路158か
らCPt1外部に参照すべきメモリアドレスを出力し、
データ入出力部159から入力された間接アドレス値を
命令デコード部152を通してフェッチする。
(2,5) PC計算部 PC計算部153は命令デコード部152から出力され
るPC計算に関係する情報でハードワイヤードに制御さ
れ、命令のPC値を計算する0本発明のデータ処理装置
は可変長命令セントを持っており、命令をデコードして
みないとその命令の長さが判らない、PC計算部153
は、命令デコード部152から出力される命令長をデコ
ード中の命令のpc値に加算することによりつぎの命令
のpc値を作り出す。
また、命令デコード部152が、分岐命令をデコードし
てデコード段階での分岐を指示したときは命令長の代わ
りに分岐変位を分岐命令のpc値に加算することにより
分岐先命令のpc値を計算する0分岐命令に対して命令
デコード段階で分岐を行うことを本発明のデータ処理装
置ではプリブランチと呼ぶ。
プリブランチの方法については特願昭61−20450
0号及び特願昭61−200557号で詳しく述べられ
ている。
pc計算部153の計算結果は各命令のpc値として命
令のデコード結果とともに出力されるほか、プリブラン
チ時には、次にデコードすべき命令のアドレスとして命
令フェッチ部へ出力される。また、次に命令デコード部
152でデコードされる命令の分岐予測のためのアドレ
スにも使用される。
分岐予測の方法については特願昭62−8394号で詳
しく述べられている。
(2,6)データ演算部 データ演算部156、即ち本発明のデータ処理装置の演
算処理部はマイクロプログラムにより制御され、マイク
ロROM部155の出力情報に従い、各命令の機能を実
現するに必要な演算をレジスタと演算器で実行する。オ
ペランドアドレス計算部154で計算されたアドレスを
外部バスインターフェイス部57を通して得る場合や、
そのアドレスでフェッチを行ったオペランドをデータ入
出力回路159から得る場合もある。
演算器としてはALU 、バレルシフタ、プライオリテ
ィエンコーダあるいはカウンタ、シフトレジスタなどが
ある。レジスタと主な演算器の間は3本のバスで結合さ
れており、1つのレジスタ間演算を指示する1マイクロ
命令を2クロツクサイクルで処理する。これらの演算器
は(1−3)で示したように、それぞれ独立に3種類の
オペランドサイズの内のいずれかを指定された2つのオ
ペランドを処理することができるように、各演算器の入
力部分のレジスタにそれぞれ命令デコード部152 t
+しくはマイクロROM部155から供給されたオペラ
ンドサイズ信号を受ける。そして各演算器の出力部分で
は上記2つのオペランドサイズ信号とは独立に出力デー
タサイズを示す信号をうける。このような手段を設ける
ことによって、オペランドサイズの異なる2つのオペラ
ンドデータを効果的に処理することができる。
データ演算の際、CPU外部のメモリをアクセスする必
要がある時はマイクロプログラムの指示により外部バス
インターフェイス部157を通してアドレス出力回路1
58からアドレスをCPU外部に出力し、データ入出力
回路159を通して目的のデータをフェッチする。
CPU外部のメモリにデータをストアする場合は外部バ
スインターフェイス部157を通してアドレス出力回路
158よりアドレスを出力すると同時に、データ入出力
回路159からデータをCPLI外部に出力する。オペ
ランドストアを効率的に行うためデータ演算部156に
は4バイトのストアバッファがある。
ジャンプ命令の処理や例外処理などを行って新たな命令
アドレスをデータ演算部156が得たときはこれを命令
フェッチ部151とPC計算部153に出力する。
(2,7)外部バスインターフェイス部外部バスインタ
ーフェイス部157は本発明のデータ処理装置の外部バ
スでの通信を制御する。メモリのアクセスはすべてクロ
ック同期で行われ、最小2クロックサイクルで行うこと
ができる。
メモリに対するアクセス要求は命令フェッチ部151、
アドレス計算部154.データ演算部156から独立に
生じる。外部バスインターフェイス部157はこれらの
メモリアクセス要求を調停する。更に、メモリとCPU
とを結ぶデータバスサイズである32ビツト(1ワード
)の整置境界を跨ぐメモリ番地にあるデータのアクセス
は、このフ゛ロック内で自動的にワード境界をまたぐこ
とを検知して、2回のメモリアクセスに分解して行われ
る。
プリフェッチすべきオペランドとストアすべきオペラン
ドとが重なる場合の、コンフリクト防止処理あるいはス
トアオペランドからフェッチオペランドへのバイパス処
理も行われる。
(3)本発明における具体的な命令処理シーケンス以下
、本発明のデータ処理装置による効果的な命令処理シー
ケンスを説明する。
第2図は、本発明の演算処理部の一構成例を示すブロッ
ク図である。
第2図において131.132はオペランドデータを転
送するための内部バス、133はいずれかの演算処理装
置において処理された演算結果データを出力する内部バ
ス、10.11は算術論理演算ユニット(ALU)の入
力レジスタ(DA、 DB)、12はALUの演算器、
13はALUの出力レジスタ(DO)、20.21はバ
レルシフタの入出力レジスタ(BA、 BB)、22は
シフトパストランジスタアレイ、30はプライオリティ
エンコーダのオフセットレジスタ(EO)、31はプラ
イオリティエンコーダのデータレジスタ(ED)、40
はプログラムステータスワード(PSW) 、41はス
テータスフラグ制御回路、50.51はオペランドサイ
ズ信号(ZA、 ZB)、52は演算出力サイズおよび
ステータスフラグ指定サイズ信号(ZC)である。
第2図に示す演算器群にて構成される演算処理部を有す
るデータ処理装置において、各々異なるサイズのオペラ
ンドの比較命令を実行した場合の処理シーケンスを第3
図のフローチャートに示す。
第3図の例では、 CMP:G asrcl、B 1ilsrc2.Hの命
令、すなわちバイトサイズのソースオペランド1とハー
フワードサイズのソースオペランド2とを比較する命令
を処理する例である。上記命令を処理した結果、本発明
のデータ処理装置ではゼロフラグ、ローフラグ(データ
の正負を示す)が変化する。
まずステップS61において内部バスから取り込んだ2
つのオペランドデータをALUの縄レジスタ10及びD
Bレジスタ11においてワードサイズに符号拡張する。
この際、DA、 DBレジスタ10.11においてはオ
ペランドサイズ情報であるステータスフラグ指定サイズ
信号ZA50. ZB51によって各々のオペランドデ
ータの符号ビットの位置を知る。
ステップS62では演算器12においてそれぞれワード
サイズに拡張されたオペランドの減算が行われる。
ステップS63において、減算結果をDOレジスタ13
に格納し、ステップS64でステータスフラグ信号を出
力するが、この時ゼロフラグとして検出する範囲はワー
ドとすることによって正しく検出することができる。
上記命令を処理し、ゼロフラグを正しく動作させるため
には、従来は、演算結果のデータサイズとして2つのオ
ペランドサイズの内の大きいほうを採用するという必要
があった。しかし、本発明のデータ処理装置では上述の
如く、演算器の出力データサイズ及びステータスフラグ
制御用に前記2つのオペランドサイズ情報とは独立にサ
イズ情報を得ることが可能なので、2つのオペランドサ
イズを比較して出力データサイズを決定するという処理
を行うことなく高速で、前記比較命令を処理することが
可能になる。
第4図は第2図におけるフラグ検出回路41内のゼロフ
ラグとオーバーフローフラグ検出回路の一例を示す図で
あり、70.77、78.85.86.101は前記い
ずれかの演算器から出力されたデータ、110,111
゜112はそれぞれワード、ハーフワード、バイトのデ
ータサイズ信号、120はゼロフラグ信号、121はオ
ーバーフローフラグ信号を示す。
本発明のデータ処理装置においては MOV:G 1ilsrc、W adest、Bという
転送命令も(1−3)において示したG−format
を用いて指定可能である。この命令において変化するス
テータスフラグはオーバーフローフラグ、1’ls[l
フラグ、ゼロフラグである。上記転送命令はソースオペ
ランドサイズがワードであるデータを、オペランドサイ
ズバイトに変換してデスティネーションオペランドアド
レスに格納するというものである。
第4図に示す構成の回路は、そのような処理を高速に行
う場合有効である。従来マイクロプロセッサ等、データ
処理装置においては、処理すべきソースオペランドとデ
スティネーションは同一サイズで行ったため、処理すべ
きデータサイズにおける演算器のキャリーピントおよび
符号ビットを用いることによってステータスフラグに格
納すべき情報を生成していた。しかしながら上記異種サ
イズ間で演算処理を行う場合、出力されたデータが正の
範囲及び負の範囲にオーバフローすることなく納まって
いるかどうかを検出するため、指定されたデスティネー
ションサイズの上位ビットがすべてlであるか、もしく
はすべて0であるが調べる必要がある。第4図に示す構
成の回路はそのような場合、処理の高速化を可能とする
〔発明の効果〕 以上に詳述したように、ソースオペランドサイズとデス
ティネーションオペランドサイズを各々独立に指定でき
るようなデータ処理装置において更に、2つのオペラン
ドを演算器の入力時に各々のサイズ情報を用いて最大サ
イズまで拡張し、各演算器で処理し、出力時には入力デ
ータとは異なる適当なサイズ↑n報信号を用いて、出力
データ及びステータスフラグ情報を生成するように構成
された本発明のデータ処理装置では、演算処理部の演算
結果により出力されるデータのサイズを入力データのサ
イズ情報に基づいてその都度決定する処理が不要になる
ので、高速のデータ処理が可能になる。
【図面の簡単な説明】
第1図は本発明のデータ処理装置の構成を示す機能プロ
・7り図、第2図は本発明の一実施例による演算処理部
の構成を示すブロック図、第3図は本発明のデータ処理
装置により各々異なるサイズのオペランドの比較命令を
実行した場合の処理シーケンスを示すフローチャート、
第4図は第2図におけるフラグ検出回路の一構成例を示
す回路図、第5図乃至第28図は本発明のデータ処理装
置の各々の命令フォーマットを示す模式図、第29図は
本発明のデータ処理装置の基本的命令フォーマットを示
す模式図、第30図は従来のデータ処理装置の算術論理
演算ユニソl−(ALU)の構成を示すブロック図であ
る。 図において、1,2.4はレジスタ、3は算術論理演算
ユニット(ALU) 、5はフラグ検出回路、10,1
1゜13、20.21,30.31はレジスタ、12は
ALU 、 41はステータスフラグ制御回路、151
は命令フェッチ部、152は命令デコード部、153は
pc計算部、154はオペランドアドレス計算部、15
5はマイクロROM部、156はデータ演算部、157
は外部バスインターフェイス部、158はアドレス出力
回路、159はデータ入出力回路である。 なお、図中、同一符号は同一、又は相当部分を示す。

Claims (1)

  1. 【特許請求の範囲】 1、それぞれ独立して指定可能なサイズ情報を有するデ
    ータをオペランドとして処理し、その処理結果のデータ
    を出力する演算処理部を備えたデータ処理装置において
    、 前記演算処理部から出力される演算結果の データのサイズ情報がそのオペランドのサイズ情報と独
    立して指定可能に構成してあることを特徴とするデータ
    処理装置。
JP63111224A 1988-05-06 1988-05-06 データ処理装置 Pending JPH01280832A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63111224A JPH01280832A (ja) 1988-05-06 1988-05-06 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63111224A JPH01280832A (ja) 1988-05-06 1988-05-06 データ処理装置

Publications (1)

Publication Number Publication Date
JPH01280832A true JPH01280832A (ja) 1989-11-13

Family

ID=14555687

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63111224A Pending JPH01280832A (ja) 1988-05-06 1988-05-06 データ処理装置

Country Status (1)

Country Link
JP (1) JPH01280832A (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS52119130A (en) * 1976-03-30 1977-10-06 Ibm Oversize data detector
JPS6298429A (ja) * 1985-10-25 1987-05-07 Hitachi Ltd デ−タ処理システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS52119130A (en) * 1976-03-30 1977-10-06 Ibm Oversize data detector
JPS6298429A (ja) * 1985-10-25 1987-05-07 Hitachi Ltd デ−タ処理システム

Similar Documents

Publication Publication Date Title
JP2616182B2 (ja) データ処理装置
US5717946A (en) Data processor
US5091853A (en) Chained addressing mode pipelined processor which merges separately decoded parts of a multiple operation instruction
JP3543181B2 (ja) データ処理装置
JP2507638B2 (ja) デ―タ処理装置
JPH02173823A (ja) データ処理装置
JPH1049370A (ja) 遅延命令を有するマイクロプロセッサ
JP2581236B2 (ja) データ処理装置
US4945511A (en) Improved pipelined processor with two stage decoder for exchanging register values for similar operand instructions
JPH01214932A (ja) データ処理装置
JPH0338725A (ja) データ処理装置及びマイクロプロセッサ
JP2620511B2 (ja) データ・プロセッサ
JP3789583B2 (ja) データ処理装置
JPH0391029A (ja) データ処理装置
KR100974401B1 (ko) 주소 레지스터의 내용을 스와핑하기 위한 방법 및 장치
JP2668456B2 (ja) ビット検索回路及びそれを備えたデータ処理装置
JP2504312B2 (ja) プライオリティエンコ―ダ及びそれを備えたデ―タ処理装置
JPH0769806B2 (ja) データ処理装置
JPH01280832A (ja) データ処理装置
KR100278136B1 (ko) 데이타처리장치 및 데이타처리방법
JP2522048B2 (ja) マイクロプロセッサ及びそれを使用したデ―タ処理装置
JPH04260928A (ja) データ処理装置
JPH0769801B2 (ja) データ処理装置
JP2696578B2 (ja) データ処理装置
JPH0769802B2 (ja) データ処理装置