JP2556182B2 - デ−タ処理装置 - Google Patents

デ−タ処理装置

Info

Publication number
JP2556182B2
JP2556182B2 JP2231967A JP23196790A JP2556182B2 JP 2556182 B2 JP2556182 B2 JP 2556182B2 JP 2231967 A JP2231967 A JP 2231967A JP 23196790 A JP23196790 A JP 23196790A JP 2556182 B2 JP2556182 B2 JP 2556182B2
Authority
JP
Japan
Prior art keywords
register
data
instruction
address
output
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
JP2231967A
Other languages
English (en)
Other versions
JPH04109339A (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 JP2231967A priority Critical patent/JP2556182B2/ja
Priority to US07/752,129 priority patent/US5396610A/en
Publication of JPH04109339A publication Critical patent/JPH04109339A/ja
Application granted granted Critical
Publication of JP2556182B2 publication Critical patent/JP2556182B2/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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/30098Register arrangements
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30112Register structure comprising data of variable length
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明はデータ処理装置に関し、より詳しくは2つの
互いに異なる番地のレジスタをアクセスするための手段
を備えたことにより2つのレジスタ内容を同時にアクセ
スするデータ処理装置に関するものである。
[従来の技術] 従来、データ処理装置では高頻度に使用するデータを
高速にかつ単純な機構でアクセスする目的で、16本程度
の数の汎用レジスタにて構成されるレジスタファイルを
備え、頻繁にアクセスするデータ,演算の中間結果等を
レジスタファイルに保持するようにしている。
このようなレジスタファイルを使用するソフトウェア
では、レジスタファイルの各レジスタに配置したデータ
を一連の処理の区切り目で入れ換える手法を用いる。こ
のため、レジスタ上に配置されたデータが一度に複数個
ずつ連続してメモリにストアされたり、メモリからロー
ドされたりする処理が頻繁に反復される。
CあるいはPascalなどの高級言語では高頻度に使用す
る変数をプロシージャ毎にレジスタに再配置する手法が
用いられることが多く、これらの高級言語で設計された
ソフトウェアではレジスタから複数のデータをメモリに
ストアしたり、逆に複数のデータをメモリからレジスタ
にロードする頻度が高い。
このため、1命令で複数のデータをレジスタからメモ
リに退避したりあるいは1命令で複数のデータをメモリ
からレジスタにロードする複数データ転送命令を有する
データ処理装置が従来から提案されている。このような
複数データ転送命令では、データを転送すべき対象とな
るレジスタを“0"と“1"とのビット列に対応させたレジ
スタリストで示す手法が用いられている。従って、レジ
スタリストをサーチして転送すべきレジスタ番号を高速
にエンコードする必要があり、この目的のためにプライ
オリティエンコーダと称されるエンコード回路がハード
ウェアとして提案されている。
そして、複数データ転送命令を実行する際は、プライ
オリティエンコーダから出力されたレジスタ番号をデコ
ードしてレジスタを逐次的にアクセスすることによりデ
ータを転送していた。このため、複数の連続したレジス
タ番号のレジスタ内容を転送する場合にもレジスタ番号
のデコードは1対1で行われ、レジスタをアクセスする
レジスタ番地指定回路が入力されたレジスタ番号の次の
番号のレジスタをアクセスするようには構成されていな
い。
[発明が解決しようとする課題] 従来のレジスタ番地指定回路では、入力されたレジス
タ番号とこれによりアクセスされるレジスタとが1対1
の対応をするため、入力されたレジスタ番号に対してそ
の番地のレジスタ、およびそれに隣接するレジスタ番号
のレジスタをアクセスする場合は、レジスタ番地指定回
路に入力するレジスタ番地をインクリメントあるいはデ
クリメントする必要があった。また、このインクリメン
ト及びデクリメントはたとえばカウンタ等のハードウェ
アで行う必要があり、入力されたレジスタ番号とそれに
隣接するレジスタとを同時にアクセスする場合は遅延時
間が大きくなる。
また従来のデータ処理装置では、複数データ転送命令
の実行の際に、プライオリティエンコーダを用いてレジ
スタリストをサーチして“1"(または“0")のビット位
置を2進数にエンコードして得たレジスタ番号に従って
レジスタを1つずつ逐次的にアクセスしてデータを転送
していた。このため、最低でも転送すべきデータ数と等
しい数の転送動作を反復する必要がある。
この発明は上記の問題点を解決するためになされたも
ので、入力されるレジスタ番地からその番地のレジス
タ、およびそれとは異なる番地のレジスタとをともに高
速にアクセスするレジスタ番地指定手段を備えたことに
より、2つのレジスタに対して同時にデータ転送できる
データ処理装置を得ることを目的とする。
[課題を解決するために手段] 本発明の第1の発明のデータ処理装置は、第1および
第2のレジスタを有するレジスタファイルを備え、メモ
リと第1および第2のレジスタとの間でデータが転送さ
れる命令を実行するものにおいて、第1のレジスタに保
持されたデータを転送させる第1の命令、および第1の
レジスタに保持されたデータとともに第2レジスタに保
持されたデータを転送させる第2の命令をデコードする
命令デコード手段、および、2kビット(kは自然数)の
データを保持してメモリに転送するデータレジスタと、
第1のレジスタに保持されたkビットの第1のデータを
データレジスタへ転送する第1のバスと、第2のレジス
タに保持されたkビットの第2のデータをデータレジス
タへ転送する第2のバスと、2進数で表現されたレジス
タ番地n(nは0以上の整数)を入力し、整数のビット
からなり第1のレジスタをアクセスする第1のビット列
にデコードするとともに、この第1のビット列をm(m
は自然数)ビットシフトさせて第2のレジスタをアクセ
スする第2のビット列を生成する第1のデコード回路
と、この第1のデコード回路より出力される第1のビッ
ト列と第2のビット列とを入力してレジスタファイルへ
選択的に出力し、第1のビット列により番地nの第1の
レジスタをアクセスさせるか、または第2のビット列に
より番地(n+m)と番地(n−m)とのいずれか一方
の第2のレジスタをアクセスさせるセレクタ回路と、レ
ジスタ番地nを入力し、第1のビット列と同一の値を有
する第3のビット列にデコードしてレジスタファイルへ
出力し、第1のレジスタをアクセスする第2のデコード
回路とを有した命令実行手段を備え、命令実行手段は、
第1の命令をデコードした命令デコード手段の出力に従
い、セレクタ回路に第1のビット列をレジスタファイル
へ出力させ、第1のレジスタをアクセスして第1のデー
タをデータレジスタに転送し、第2の命令をデコードし
た命令デコード手段の出力に従い、セレクタ回路に第2
のビット列をレジスタファイルへ出力させるとともに、
第2のデコード回路で生成される第3のビット列をレジ
スタファイルへ出力させ、第1のレジスタおよび第2の
レジスタをアクセスしてそれぞれに保持された第1のデ
ータおよび第2のデータをデータレジスタに転送するよ
うに構成されたものである。
また、本発明の第2の発明のデータ処理装置は、第1
のレジスタにデータを転送させる第1の命令、および第
1のレジスタととともに第2のレジスタに各々データを
転送させる第2の命令をデコードする命令デコード手
段、および、メモリより転送された2kビット(kは自然
数)のデータを保持するデータレジスタと、kビットの
第1のデータをデータレジスタから第1のレジスタに転
送する第1のバスと、kビットの第2のデータをデータ
レジスタから第2のレジスタに転送する第2のバスと、
2進数で表現されたレジスタ番地n(nは0以上の整
数)を入力し、複数のビットからなり第1のレジスタを
アクセスする第1のビット列にデコードするとともに、
この第1のビット列をm(mは自然数)ビットシフトさ
せて第2のレジスタをアクセスする第2のビット列を生
成する第1のデコード回路と、この第1のデコード回路
より出力される第1のビット列と第2のビット列とを入
力してレジスタファイルへ選択的に出力し、第1のビッ
ト列により番地nの第1のレジスタをアクセスさせる
か、または第2のビット列により番地(n+m)と番地
(n−m)とのいずれか一方の第2のレジスタをアクセ
スさせるセレクタ回路と、レジスタ番地nを入力し、第
1のビット列と同一の値を有する第3のビット列にデコ
ードしてレジスタファイルへ出力し、第1のレジスタを
アクセスする第2のデコード回路とを有した命令実行手
段を備え、命令実行手段は、第1の命令をデコードした
命令デコード手段の出力に従い、セレクタ回路に第1の
ビット列をレジスタファイルへ出力させ、第1のレジス
タをアクセスしてデータレジスタに保持された第1のデ
ータを第1のレジスタに転送し、第2の命令をデコード
した命令デコード手段の出力に従い、セレクタ回路に第
2のビット列をレジスタファイルへ出力させるととも
に、第2のデコード回路で生成される第3のビット列を
レジスタファイルへ出力させ、第1のレジスタおよび第
2のレジスタをアクセスしてデータレジスタに保持され
た第1のデータおよび第2のデータをそれぞれ第1のレ
ジスタおよび第2のレジスタに転送するように構成され
たものである。
[作用] 本発明の第1の発明のデータ処理装置では、命令実行
手段は第1の命令をデコードした命令デコード手段の出
力に従い、セレクタ回路に第1のビット列をレジスタフ
ァイルへ出力させ、第1のレジスタをアクセスして第1
のデータをデータレジスタに転送し、第2の命令をデコ
ードした命令デコード手段の出力に従い、セレクタ回路
に第2のビット列をレジスタファイルへ出力させるとと
もに、第2のデコード回路で生成される第3のビット列
をレジスタファイルへ出力させ、第1のレジスタおよび
第2のレジスタをアクセスしてそれぞれに保持された第
1のデータおよび第2のデータをデータレジスタに転送
するように構成されたので、第2の命令が実行される場
合に第1のレジスタおよび第2のレジスタが同時にアク
セスされ、それぞれの保持する第1のデータおよび第2
のデータがメモリへ並列に転送される。
また、本発明の第2の発明のデータ処理装置では、命
令実行手段は第1の命令をデコードした命令デコード手
段の出力に従い、セレクタ回路に第1のビット列をレジ
スタファイルへ出力させ、第1のレジスタをアクセスし
てデータレジスタかに保持された第1のデータを第1の
レジスタに転送し、第2の命令をデコードした命令デコ
ード手段の出力に従い、セレクタ回路に第2のビット列
をレジスタファイルへ出力させるとともに、第2のデコ
ード回路で生成される第3のビット列をレジスタファイ
ルへ出力させ、第1のレジスタおよび第2のレジスタを
アクセスしてデータレジスタに保持された第1のデータ
および第2のデータをそれぞれ第1のレジスタおよび第
2のレジスに転送するように構成されたので、第2の命
令が実行される場合に第1のレジスタおよび第2のレジ
スタが同時にアクセスされ、メモリから転送される第1
のデータおよび第2のデータがそれぞれ第1のレジスタ
および第2のレジスタへ並列に転送される。
[発明の実施例] 以下、本発明をその実施例を示す図面を参照して詳述
する。
(1)「本発明のデータ処理装置を用いたシステムの構
成」 第6図は本発明のデータ処理装置を用いたシステムの
構成例を示すブロック図である。
この例では、本発明のデータ処理装置100,命令キャッ
シュ106,データキャッシュ107及び108,主メモリ109がア
ドレスバス101,データバス102命令バス103,メモリアド
レスバス104,メモリデータバス105で結合されている。
アドレスバス101は本発明のデータ処理装置100から出
力されるアドレスを命令キャッシュ106とデータキャッ
シュ107,108とに入力する。命令バス103は命令キャッシ
ュ106から出力される命令コードを本発明のデータ処理
装置100へ転送する。データバス102は本発明のデータ処
理装置100から出力されたデータをデータキャッシュ10
7,108へ転送したりあるいはデータキャッシュ107,108か
ら出力されたデータを本発明のデータ処理装置100へ転
送したりする。メモリアドレスバス104は命令キャッシ
ュ106またはデータキャッシュ107,108から出力されるア
ドレスを主メモリ109へ転送する。メモリデータバス105
は主メモリ109と命令キャッシュ106またはデータキャッ
シュ107,108との間で命令またはデータを転送する。
命令キャッシュ106,データキャッシュ107,108がミス
した場合はそれぞれのキャッシュがメモリアドレスバス
104とメモリデータバス105とのバス権を調停して主メモ
リ109をアクセスする。
データキャッシュ107,108は本発明のデータ処理装置1
00の側では64ビットのバスに結合するため、2つのチッ
プが協調して動作する。各64ビットデータのデータの上
位32ビットのデータをデータキャッシュ107が、下位32
ビットのデータをデータキャッシュ108がそれぞれ分担
して受持つ。
以下、本発明のデータ処理装置100の命令体系及び処
理機構について最初に説明し、次に複数個のレジスタ中
のデータを転送する命令であるLDM命令とSTM命令とを実
行した場合のプライオリティエンコーダとデータ演算部
との動作を詳細に説明する。
(2)「本発明のデータ処理装置の命令フォーマット」 本発明のデータ処理装置の命令は16ビット単位で可変
長となっており、奇数バイト長の命令はない。
本発明のデータ処理装置では高頻度に使用される命令
を短いフォーマットとするために特に工夫された命令フ
ォーマット体系を有する。例えば、2オペランド命令に
対して、基本的に「4バイト」+「拡張部」の構成を有
し、全てのアドレッシングモードが利用可能な一般形フ
ォーマットと、頻度の高い命令とアドレッシングモード
とのみを使用可能な短縮形フォーマットとの2つのフォ
ーマットがある。
第9図乃至第13図に示す本発明のデータ処理装置の命
令フォーマット中に現われる記号の意味は以下の如くで
ある。
−:オペレーションコードが入る部分 Ea:8ビットの一般形のアドレッシングモードでオペラン
ドを指定する部分 Sh:6ビットの短縮形のアドレッシングモードでオペラン
ドを指定する部分 Rn:レジスタファイル上のオペランドをレジスタ番号で
指定する部分 フォーマットは、第9図に示す如く、右側がLSB側で
且つ高いアドレスになっている。アドレスNとアドレス
N+1との2バイトを見ないと命令フォーマットが判別
できないようになっているが、これは、命令が必ず16ビ
ット(ハーフワード)単位でフェッチ,デコードされる
ことを前提としているためである。
本発明のデータ処理装置の命令では、いずれのフォー
マットの場合も、各オペランドのEaまたはShの拡張部は
必ずそのEaまたはShの基本部を含む16ビット(ハーフワ
ード)の直後に配置される。これは、命令により暗黙に
指定される即値データあるいは命令の拡張部に優先す
る。従って、4バイト以上の命令では、Eaの拡張部によ
り命令のオペレーションコードが分断される場合があ
る。
また、後述するように、多段間接モードにおいてEaの
拡張部に更に拡張部が付加される場合にも次の命令オペ
レーションコードよりもそちらの方が優先される。例え
ば、第1ハーフワードにEa1を含み、第2ハーフワード
にEa2を含み、第3ハーフワードまである6バイト命令
の場合について考える。なおここでは、Ea1に多段間接
モードを使用したため、普通の拡張部の他に多段間接モ
ードの拡張部も付加されるものとする。この場合、実際
の命令ビットパターンは、命令の第1ハーフワード(Ea
1の基本部を含む),Ea1の拡張部,Ea1の多段間接モード
拡張部,命令の第2ハーフワード(Ea2の基本部を含
む),Ea2の拡張部,命令の第3ハーフワードの順とな
る。
(2.1)「短縮形2オペランド命令」 第10図は2オペランド命令の短縮形フォーマットを示
す模式図である。
このフォーマットにはソースオペランド側がメモリと
なるL−formatとデスティネーションオペランド側がメ
モリとなるS−formatとがある。
L−formatでは、Shはソースオペランドの指定フィー
ルドを、Rnはディスネーションオペランドのレジスタの
指定フィールドを、RRはShのオペランドサイズの指定フ
ィールドをそれぞれ表す。レジスタ上に置かれたデステ
ィネーションオペランドのサイズは32ビットに固定され
ている。レジスタ側とメモリ側とのサイズが異なり、且
つソース側のサイズが小さい場合に符号拡張が行われ
る。
S−formatでは、Shはデスティネーションオペランド
の指定フィールドを、Rnはソースオペランドのレジスタ
指定フィールドを、RRはShのオペランドサイズの指定フ
ィールドをそれぞれ表す。レジスタ上に置かれたソース
オペランドのサイズは32ビットに固定されている。レジ
スタ側とメモリ側とのサイズ異なり且つソース側のサイ
ズが大きい場合に、オーバフローした部分の切捨てとオ
ーバーフローチェックとが行われる。
(2.2)「一般形1オペランド命令」 第11図は1オペランド命令の一般形フォーマット(G1
−format)を示す模式図である。
このフォーマットでは、MMはオペランドサイズの指定
フィールドを表している。一部のG1−format命令ではEa
の拡張部以外にも拡張部を有する。また、MMフィールド
を使用しない命令もある。
(2.3)「一般形2オペランド命令」 第12図に2オペランド命令の一般形フォーマットを示
す模式図である。
このフォーマットに含まれるのは、8ビットで指定さ
れる一般形アドレッシングモードのオペランドが最大2
つ存在する命令である。オペランドの総数自体は3つ以
上になる場合もある。
このフォーマットにおいて、EaMはデスティネーショ
ンオペランドの指定フィールドを、MMはデスティネーシ
ョンオペランドサイズの指定フィールドを、EaRはソー
スオペランド指定フィールドを、RRはソースオペランド
サイズの指定フィールドをそれぞれ表している。
一部の一般型フォーマット命令では、EaM及びEaRの拡
張部以外にも拡張部がある。
第13図はショートブランチ命令のフォーマットを示す
模式図である。
このフォーマットでは、ccccは分岐条件指定フィール
ドを、disp:8はジャンプ先との変位指定フィールドをそ
れぞれ表している。本発明のデータ処理装置では、8ビ
ットで変位を指定する場合にはビットパターンでの指定
値を2倍して変位値とする (2.4)「アドレッシングモード」 本発明のデータ処理装置の命令のアドレッシングモー
ド指定方法には、レジスタを含めて6ビットで指定する
短縮形と、8ビットで指定する一般形とがある。
未定義のアドレッシングモードを指定した場合、ある
いは意味的に考えて明らかに不合理なアドレッシングモ
ードの組合わせが指定された場合には、未定義命令を実
行した場合と同様に予約命令例外が発生して例外処理が
起動される。これに該当するのは、デスティネーション
が即値モードである場合、アドレス計算を伴うべきアド
レッシングモード指定フィールドで即値モードが使用さ
れた場合などである。
第14図乃至第24図に示すフォーマットの模式図におい
て使用されている記号の意味は以下の如くである。
Rn:レジスタ指定 (Sh):6ビットの短縮形アドレッシングモードでの指定
方法 (Ea):8ビットの一般形アドレッシングモードでの指定
方法 なお、各フォーマットの模式図において破線にて表さ
れている部分は拡張部を示す。
(2.4.1)「基本アドレッシングモード」 本発明のデータ処理装置の命令は種々のアドレッシン
グモードをサポートする。それらの内、本発明のデータ
処理装置でサポートする基本アドレッシングモードに
は、レジスタ直接モード,レジスタ間接モード,レジス
タ相対間接モード,即値モード,絶対モード,PC相対間
接モード,スタックポップモード,スタックプッシュモ
ードがある。
レジスタ直接モードは、レジスタの内容をそのままオ
ペランドとするアドレッシングモードである。フォーマ
ットの模式図を第14図に示す。図中、Rnは汎用レジスタ
またはFPUレジスタの番号を示す。
レジスタ間接モードは、汎用レジスタの内容をアドレ
スとするメモリの内容をオペラドとするアドレッシング
モードである。フォーマットの模式図を第15図に示す。
図中、Rnは汎用レジスタの番号を示す。
レジスタ相対間接は、ディスプレースメント値が16ビ
ットであるか32ビットであるかにより2種類に分かれ
る。いずれも、汎用レジスタの内容に16ビットまたは32
ビットのディスプレースメント値を加えた値をアドレス
とするメモリの内容をオペランドとするアドレッシング
モードである。フォーマットの模式図を第16図に示す。
図中、Rnは汎用レジスタの番号を示す。disp:16とdisp:
32とは、それぞれ16ビットのディスプレースメント値,3
2ビットのディスプレースメント値を示す。ここでのデ
ィスプレースメント値は符号付きとして扱われる。
即値モードは、命令コード中で指定されるビットパタ
ーンをそのまま2進数と見なしてオペランドとするアド
レッシングモードである。フォーマットの模式図を第17
図に示す。図中、imm_dataは即値を示す。imm_dataのサ
イズは、オペランドサイズとして命令中で指定される。
絶対モードは、アドレス値が16ビットで示されるか32
ビットで示されるかにより2種類に分かれる。いずれ
も、命令コード中で指定される16ビットまたは32ビット
のビットパターンをアドレスとしたメモリの内容をオペ
ランドとするアドレッシングモードである。フォーマッ
トの模式図を第18図に示す。図中、abs:16とabs:32と
は、それぞれ16ビット,32ビットのアドレス値を示す。a
bs:16にてアドレスが示される場合は指定されたアドレ
ス値が32ビットに符号拡張される。
PC相対間接モードは、ディスプレースメント値が16ビ
ットであるか32ビットであるかにより2種類に分かれ
る。いずれも、プログラムカウンタの内容に16ビットま
たは32ビットのディスプレースメント値を加えた値をア
ドレスとするメモリの内容をオペランドとするアドレッ
シングモードである。フォーマットの模式図を第19図に
示す。図中、disp:16とdisp:32とは、それぞれ、16ビッ
トのディスプレースメント値,32ビットのディスプレー
スメント値を示す。ここではディスプレースメント値は
符号付きとして扱われる。PC相対間接モードにおいて参
照されるプログラムカウンタの値は、そのオペランドを
含む命令の先頭アドレスである。多段間接アドレシング
モードにおいてプログラムカウンタの値が参照される場
合にも、同様に命令先頭のアドレスがPC相対の基準値と
して使用される。
スタックポップモードはスタックポインタ(SP)の内
容をアドレスとするメモリの内容をオペランドとするア
ドレッシングモードである。オペランドアクセス後にSP
がオペランドサイズだけインクリメントされる。例え
ば、32ビットデータが扱われる場合には、オペランドア
クセス後にSPが+4だけ更新される。8,16,64ビットの
サイズのオペランドに対するスタックポップモードの指
定も可能であり、それぞれSPが+1,+2,+8だけ更新さ
れる。フォーマットの模式図を第20図に示す。オペラン
ドに対してスタックポップモードが意味を持たない場合
には予約命令例外が発生する。具体的に予約命令例外と
なるのは、writeオペランド,read−modify−writeオペ
ランドに対するスタックポップモード指定である。
スタックプッシュモードは、SPの内容をオペランドサ
イズだけデクリメントした内容をアドレスとするメモリ
の内容をオペランドとするアドレッシングモードであ
る。スタックプッシュモードではオペランドアクセス前
にSPがデクリメントされる。例えば、32ビットデータが
扱われる場合には、オペランドアクセス前にSPが−4だ
け更新される。8,16,64ビットのサイズのオペランドに
対するスタックプッシュモードの指定も可能であり、そ
れぞれSPが−1,−2,−8だけ更新される。フォーマット
の模式図を第21図に示す。オペランドに対してスタック
プッシュモードが意味を持たない場合には予約命令例外
が発生される。具体的に予約命令例外となるのは、read
オペランド,read−modify−writeオペランドに対するス
タックプッシュモード指定である。
(2.4.2)「多段間接アドレッシングモード」 複雑なアドレッシングも基本的には加算と間接参照と
の組合わせに分解することが可能である。従って、加算
と間接参照とのオペレーションをアドレッシングのプリ
ミティブとして与えておき、それらを任意に組合わせる
ことができれば、どのような複雑なアドレッシングモー
ドをも実現可能になる。
本発明のデータ処理装置の命令の多段間接アドレッシ
ングモードは上述のような考え方に基づいたアドレッシ
ングモードである。複雑なアドレッシングモードは、モ
ジュール間のデータ参照あるいはAI(人工知能)言語の
処理系に特に有用である。
多段間接アドレッシングモードを指定する場合、基本
アドレッシングモード指定フィルドではレジスタベース
多段間接モード,PCベース多段間接モード,絶対ベース
多段間接モードの3種類の指定方法の内のいずれか1つ
を指定する。
レジスタベース多段間接モードは汎用レジスタの値を
拡張する多段間接アドレッシングのベース値とするアド
レッシングモードである。フォーマットの模式図を第22
図に示す。図中、Rnは汎用レジスタの番号を示す。
PCベース多段間接モードはプログラムカウンタの値を
拡張する多段間接アドレッシングのベース値とするアド
レッシングモードである。フォーマットの模式図を第23
図に示す。
絶対ベース多段間接モードはゼロを拡張される多段間
接アドレッシングのベース値とするアドレッシングモー
ドである。フォーマットの模式図を第24図に示す。
拡張される多段間接モード指定フィールドは16ビット
を単位としており、これを任意回反復して付加される。
1段の多段間接すアドレッシングモードにより、ディス
プレースメントの加算,インデクスレジスタのスケーリ
ング(×1,×2,×4,×8)と加算,メモリの間接参照を
行う。多段間接モードのフォーマットの模式図を第25図
に示す。各フィールドは以下に示す意味を有する。
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:多段間接モードの拡張部で指定されたdispx(16/
32ビット)をディスプレースメント値とし、これを加算
する。拡張部のサイズはd4フィールドで指定する。
d4=0001 dispxは16ビット d4=0010 dispxは32ビット XX:インデクスのスケール (scale=1/2/4/8) プログラムカウンタに対して×2,×4,×8のスケーリ
ングを行った場合には、その段の処理終了後の中間値
(tmp)として不定値が入る。この多段間接モードによ
って得られる実効アドレスは予測できない値となるが、
例外は発生しない。プログラムカウンタに対するスケー
リングの指定は禁じられている。
多段間接アドレッシングモードによる命令フォーマッ
トのバリエーションを第26図,第27図の模式図に示す。
第26図は多段間接モードが継続するか終了するかのバリ
エーショを、第27図はディスプレースメントのサイズの
バリエーションをそれぞれ示す。
任意段数の段階間接アドレッシングモードが利用でき
ればコンパイラの中で段数による場合分けが不要になる
ので、コンパイラの負担が軽減されるというメリットが
ある。多段の間接参照の頻度が非常に少ないとしても、
コンパイラとしては必ず正しいコードを発生できなけれ
ばならないからである。このため、フォーマット上、任
意の段数が可能になっている。
(2.5)「レジスタの退避命令と復帰命令」 本発明のデータ処理装置100は複数のレジスタの内容
をスタック領域等のメモリ領域に退避させる命令である
STM命令と、スタック領域等のメモリ領域に退避されて
いる複数のレジスタの内容を復帰させるLDM命令とを備
えている。
LDM命令のフォーマットは第28図の模式図に示されて
いる。LDM命令ではsrcsフィールドで示されているアド
レッシングモードに従って計算されたアドレスのメモリ
からreglistフィールドで示されたレジスタへデータが
転送される。転送されるべきデータを格納するレジスタ
はreglistフィールドによりビットパタンで示される。
各レジスタに転送されるデータはそれぞれ4バイトであ
る。
STM命令のフォーマットは第29図の模式図に示されて
いる。STM命令では、reglistフィールドで示されている
レジスタ中のデータがdestsフィールドで示されたアド
レッシングモードに従って計算されたアドレスのメモリ
へ転送される。転送すべきデータを格納しているレジス
タはreglistフィールドによりビットパターンで示され
る。第29図に示す如く、STM命令のreglistフィールドの
意味はdestsフィールドで示されるアドレッシングモー
ドにより異なる。これは複数個のレジスタ内容がメモリ
に格納される場合に、大きな番号のレジスタが常に大き
な番地に格納されるように統一するためである。各レジ
スタから転送されるデータはそれぞれ4バイトである。
(3)「本発明のデータ処理装置の機能ブロックの構
成」 第4図は本発明のデータ処理装置100の構成を示すブ
ロック図である。
本発明のデータ処理装置の内部を機能的に大きく分け
ると、命令入力部110,命令フェッチ部111,命令デコード
部112,第1マイクロROM部113,第2マイクロROM部114,オ
ペランドアドレス計算部115,PC計算部116,整数演算部11
7,浮動小数点演算部118,アドレス入出力部119,オペラン
ドアクセス部120,データ入出力部121に分かれる。
アドレス入出力部119をアドレスバス101に結合し、デ
ータ入出力部121をデータバス102に結合し、命令入力部
110を命令バス103に結合することにより第6図に示すシ
ステム構成をとることができる。
(3.1)「命令入力部」 命令入力部110は外部の命令バス103から32ビット単位
で命令コードを本発明のデータ処理装置100に入力す
る。命令キャッシュ106のアクセス方法には、1つのア
ドレスに対して32ビットの命令コードをアクセスする標
準アクセスモードと、1つのアドレスに対して4回連続
で32ビットの命令コードをアクセスするクワッドアクセ
スモードとがあり、いずれの場合も命令入力部110は入
力した命令コードを命令フェッチ部111へ出力する。
(3.2)「命令フェッチ部」 命令フェッチ部111には、命令アドレスのアドレス変
換機構,内蔵命令キャッシュ,命令用TLB,命令キュー及
びそれらの制御部等が備えられている。
命令フェッチ部111は、次にフェッチすべき命令のPC
値を物理アドレスに変換し、内蔵命令キャッシュから命
令コードをフェッチして命令デコード部112へ出力す
る。内蔵命令キャッシュがミスした場合にはアドレス入
出力部119へ物理アドレスを出力し、外部への命令アク
セスを要求し、命令入力部110を通じて入力された命令
コードを内蔵命令キャッシュに登録する。
次にフェッチすべき命令のPC値は命令キューに入力す
べき命令のPC値として専用のカウンタで計算される。ジ
ャップが発生した場合は、新たな命令のPC値がオペラン
ドアドレス計算部115,PC計算部116,整数演算部117等か
ら転送されて来る。
命令用TLBがミスした場合のページングによるアドレ
ス変換及び命令用TLBの更新も命令フェッチ部111の内部
にある制御回路により行われる。
また、本発明のデータ処理装置110がバスウォッチモ
ードである場合は、アドレス入出力部119を通じて入力
された物理アドレスがヒットした内蔵命令キャッシュの
エントリが無効化される。
(3.3)「命令デコード部」 命令デコード部112では基本的に16ビット(ハーフワ
ード)単位で命令コードをデコードする。このブロック
には第1ハーフワードに含まれるオペレーションコード
をデコードするFHW(First Half Woed)デコーダ,第2
及び第3ハーフワードに含まれるオペレーションコード
をデコードするNFHW(Not First Half Word)デコー
ダ,アドレッシングモードをデコードするアドレッシン
グモードデコーダが含まれる。
また、FHWデコーダ,NFHWデコーダの出力を更にデコー
ドしてマイクロROMのエントリアドレスを計算する第2
デコーダ,条件分岐命令の分岐予測を行う分岐予測機
構,オペランドアドレス計算の際のパイプラインコンフ
リクトをチェックするアドレス計算コンフリクトチェッ
ク機構も備えられている。
命令フェッチ部111から出力された命令コードは1ク
ロックにつき0〜6バイトがデコードされる。
デコード結果の内、整数演算部117での演算に関係す
る情報が第1マイクロROM部113へ、浮動小数点演算部11
8での演算に関係する情報が第2マイクロROM部114へ、
オペランドアドレス計算に関係する情報がオペランドア
ドレス計算部115へ、PC計算に関係する情報がPC計算部1
16へ、それぞれ出力される。
(3.4)「第1マイクロROM部」 第1マイクロROM部113には、整数演算部117の制御を
行う種々のマイクロプログラムルーチンが格納されてい
るマイクロROM,マイクロシーケンサ,マイクロ命令デコ
ーダ等が備えられている。マイクロ命令はマイクロROM
から1クロック当たり1度読出される。マイクロシーケ
ンサは命令実行に関するマイクロプログラム実行のため
のシーケンス処理の他に、例外,割込及びトラップ(こ
の3つを併せてEITと称す)の受付けと各EITに対応する
マイクロプログラムのシーケンス処理も行う。
第1マイクロROM部113には命令コードに依存しない外
部割込み及び整数演算実行結果によるマイクロプログラ
ムの分岐条件も入力される。
第1マイクロROM部113のマイクロデコーダの出力は主
に整数演算部117へ出力されるが、ジャンプ命令の実行
時,例外受付時には一部の情報を他の機能ブロックへも
出力する。
(3.5)「第2マイクロROM部」 第2マイクロROM部114には、浮動小数点演算部118の
制御を行う種々のマイクロプログラムルーチンが格納さ
れているマイクロROM,マイクロシーケンサ,マイクロ命
令デコーダ等が備えられている。マイクロ命令はマイク
ロROMから1クロックに1度読み出される。マイクロシ
ーケンサはマイクロプログラムで示されるシーケンス処
理の他に、浮動小数点演算に関係する例外の処理も行
い、マイクされていない浮動小数点例外が検出された場
合には第1マイクロROM部113へ例外処理を要求する。第
2マイクロROM部114のマイクロシーケンサは第1マイク
ロROM部113のマイクロシーケンサと並列に動作し、整数
演算部117と並列に浮動小数点演算部118を制御する。
第2マイクロROM部114には浮動小数点演算の実行結果
によるフラッグ情報も入力される。
第2マイクロROM部114のマイクロデコーダの出力は主
に浮動小数点演算部118に対して出力されるが、浮動小
数点演算に関係する例外の検出等の一部の情報は他の機
能ブロックへも出力される。
(3.6)「オペランドアドレス計算部」 オペランドアドレス計算部115は、命令デコード部112
のアドレッシングモードデコーダ等から出力されたオペ
ランドアドレス計算に関係する情報によりハードワイヤ
ードに制御される。このオペランドアドレス計算部115
ではメモリ間接アドレッシングのためのメモリアクセス
以外のオペランドのアドレス計算とジャンプ命令のジャ
ンプ先アドレスの計算とが行われる。
オペランドアドレスの計算結果は整数演算部117へ出
力される。オペランドアドレス計算終了段階での先行ジ
ャンプ処理ではジャンプ先アドレスの計算結果が命令フ
ェッチ部111とPC計算部116とへ出力される。
即値オペランドは整数演算部117及び浮動小数点演算
部118へ出力される。アドレス計算に必要な汎用レジス
タ,プログラムカウンタの値は整数演算部117,PC計算部
116から入力される。
(3.7)「PC計算部」 PC計算部116は命令デコード部112から出力されるPC計
算に関係する情報でハードワイヤードに制御され、命令
のPC値を計算する。本発明のデータ処理装置100の命令
は可変長命令であり、命令をデコードした後でなければ
命令の長さが判明しない。PC計算部116は、命令デコー
ド部112から出力された命令長をデコード中の命令のPC
値に加算することにより次に実行すべき命令のPC値を計
算する。
PC計算部116の計算結果は各命令のPC値として命令の
デコード結果と共に出力される。
命令デコードステージでの先行ブランチ処理では、命
令デコード部112から出力されるブランチ幅をPC値に加
算することによりブランチ先命令のアドレスが計算され
る。
また、PC計算部116にはサブルーチンへのジャンプ命
令の実行時にスタックにプッシュされているサブルーチ
ンからの戻り先PC値のコピーを保持したPCスタックが備
えられており、サブルーチンからのリターン命令に対し
てはPCスタックから戻り先PCを読出すことにより、プリ
リターン先命令のアドレスを生成する処理も行う。
(3.8)「整数演算部」 整数演算部117は第1マイクロROM部113のマイクロROM
に格納されたマイクロプログラムにより制御され、各整
数演算命令の機能を実現するために必要な演算を整数演
算部117の内部にあるレジスタファイルと演算器とで実
行する。レジスタファイルには汎用レジスタと作業用レ
ジスタとが含まれる。
また、整数演算部117は演算器としてはALU,プライオ
リティエンコーダ等を備えている。整数演算部117には
整数演算の結果により変化するフラグ,外部割込みのマ
スクレベルを定めるビット等を含むプロセッサ状態語
(PSW),バッファメモリ制御レジスタ等が含まれる。
命令の演算対象となるオペランドがアドレスまたは即
値である場合は、オペランドアドレス計算部115から即
値または計算されたアドレスが入力される。また、命令
の演算対象となるオペランドがメモリ上のデータである
場合は、アドレス計算部115で計算されたアドレスがオ
ペランドアクセス部120へ出力され、内蔵データキャッ
シュまたは外部からフェッチしたオペランドが整数演算
部117へ入力される。
演算に際して、内蔵データキャッシュ,外部のデータ
キャッシュ107,108あるいは主メモリ109をリードする必
要がある場合は、マイクロプログラムの指示によりオペ
ランドアクセス部120へアドレスを出力することによ
り、目的のデータをフェッチする。
演算結果を内蔵データキャッシュ,外部のデータキャ
ッシュ107,108あるいは主メモリ109へストアする必要が
ある場合には、マイクロプログラムの指示によりオペラ
ンドアクセス部120へアドレスとデータとを出力する。
この際、PC計算部116からはそのストア動作を行った命
令のPC値がオペランドアクセス部120へ出力される。
外部割込み,例外の処理等が行われて新たな命令アド
レスを整数演算部117が得た場合は、これが命令フェッ
チ部111とPC計算部116とへ出力される。
(3.9)「浮動小数点演算部」 浮動小数点演算部118は第2マイクロROM部114のマイ
クロROMに格納されたマイクロプログラムにより制御さ
れ、各浮動小数点演算命令の機能を実現するために必要
な演算を浮動小数点演算部118の内部にあるレジスタフ
ァイルと演算器とで実行する。浮動小数点演算部118に
は浮動小数点演算の丸め処理方法及び浮動小数点演算例
外の検出許可のモードを設定する浮動小数点演算モード
制御レジスタ(FMC)と、浮動小数点演算結果に対する
フラグ,浮動小数点例外の発生状態を示すステータスビ
ットからなる浮動小数点演算状態語(FSW)とがある。
命令の演算対象となるオペランドが即値である場合
は、オペランドアドレス計算部115から即値が入力され
る。また、命令の演算対象となるオペランドがメモリ上
のデータである場合は、アドレス計算部115で計算され
たアドレスがオペランドアクセス部120へ出力され、内
蔵データキャッシュまたは外部からフェッチしたオペラ
ンドが浮動小数点演算部118に入力される。
オペランドを内蔵データキャッシュ,外部のデータキ
ャッシュ107,108あるいは主メモリ109へストアする必要
がある場合には、マイクロプログラムの指示によりオペ
ランドアクセス部120へデータを出力する。ストア動作
では浮動小数点演算部118と整数演算部117とが協調して
動作し、オペランドアクセス部120に対して整数演算部1
17からオペランドのアドレスが出力され、浮動小数点演
算部118からオペランドが出力される。この際、PC計算
部116からはそのストア動作を行った命令のPC値がオペ
ランドアクセス部120へ出力される。
(3.10)「オペランドアクセス部」 オペランドアクセス部120には、オペランドアドレス
のアドレス変換機構,データバッファ、データ用TLB,ス
トアバッファ,オペランドブレイクポイントレジスタ及
びそれらの制御部がある。データバッファはモード切替
えにより内蔵データキャッシュまたはコンテキスト退避
用メモリとして動作する。
データバッファを内蔵データキャッシュとして動作さ
せる場合、データのロード動作ではオペランドアドレス
計算部115または整数演算部117から出力されたロードす
べきデータの論理アドレスが物理アドレスに変換され、
内蔵データキャッシュからデータがフェッチされて整数
演算部117あるいは浮動小数点演算部118に入力される。
内蔵データキャッシュがミスした場合には、アドレス
入出力部119へ物理アドレスが出力されて外部へのデー
タアクセスが要求され、データ入出力部122を通じて入
力されたデータが内蔵データキャッシュに登録される。
データのストア動作においては、整数演算部117から
出力されたストアすべきデータの論理アドレスが物理ア
ドレスに変換され、整数演算部117あるいは浮動小数点
演算部118から出力されたデータが内蔵データキャッシ
ュにストアされると共に、ストアバッファを通じてアド
レス入出力部119へ物理アドレスが出力され、データ入
出力部122を通じてデータが外部へ出力される。
ストア動作でミスが発生した場合には内蔵データキャ
ッシュの更新は行われない。ストアバッファではストア
すべきデータとそのアドレス、更にそのストア動作を行
った命令のPC値とが1組として管理される。ストアバッ
ファでのストア動作は先入れ先だし制御方式で管理され
る。
データ用TLBがミスした場合のページングによるアド
レス変換及びデータ用TLBの更新もオペランドアクセス
部120の内部の制御回路により行われる。また、メモリ
アクセスアドレスがメモリ空間にマッピングされている
I/O領域に入るか否かのチェックも行われる。
また、データバッファを内蔵データキャッシュとして
動作させる場合、本発明のデータ処理装置がバスウォッ
チモードであれば、アドレス入出力部119を通じて入力
された物理アドレスがヒットする内蔵データキャッシュ
のエントリは無効化される。
(3.11)「アドレス入出力部」 アドレス入出力部119は命令フェッチ部111とオペラン
ドアクセス部120とから出力されたアドレス本発明のデ
ータ処理装置100の外部へ出力する。アドレスの出力は
本発明のデータ処理装置100で定められたバスプロトコ
ルに従って行われる。バスプロトコルの制御はアドレス
入出力部119内にある外部バス制御回路が行う。外部バ
ス制御回路ではページ不在例外またはバスアクセス例
外,外部割込みの受付も行う。
また、本発明のデータ処理装置100以外の外部デバイ
スがバスマスタになっており、本発明のデータ処理装置
100がバスウォッチモードであれば外部デバイスがデー
タライトサイクルを実行した場合にアドレスバス101上
へ出力されたアドレスを取込んで命令フェッチ部111と
オペランドアクセス部120とへ転送する。
(3.12)「データ入出力部」 データ入出力部121はオペランドのロード動作の際に
データバス102からデータを取込んでオペランドアクセ
ス部120へ転送し、またオペランドのストア動作の際に
オペランドアクセス部120から出力されたオペランドを
データバス102へ出力する。データキャッシュ107,108の
アクセス方法には、1つのアドレスに対して64ビットの
データをアクセスする標準アクセスモードと、1つのア
ドレスに対して4回連続で64ビットのデータをアクセス
するクワッドアクセスモードとがあり、いずれの場合も
データ入出力部121はオペランドアクセス部120と外部の
メモリとで送受されるデータの入出力を制御する。
(4)「パイプライン処理」 本発明のデータ処理装置100は各種のバッファ記憶装
置と、命令バス103及びデータバス102を使用したメモリ
の効率的アクセスとにより、命令をパイプライン処理し
て高性能に動作する。ここでは、本発明のデータ処理装
置100のパイプライン処理方法について説明する。
(4.1)「パイプライン機構」 本発明のデータ処理装置100のパイプライン処理機構
を第5図の模式図に示す。
本発明のデータ処理装置100のパイプライン処理機構
は、命令のプリフェッチを行う命令フェッチステージ
(IFステージ)31,命令のデコードを行うデコードステ
ージ(Dステージ)32,オペランドのアドレス計算を行
うオペランドアドレス計算ステージ(Aステージ)33,
マイクロROMアクセス(特にRステージ37と称す)とオ
ペランドのプリフェッチ(特にOFステージ38と称す)と
を行うオペランドフェッチステージ(Fステージ)34,
命令の実行を行う実行ステージ(Eステージ)35,メモ
リオペランドのストアを行うストアステージ(Sステー
ジ)36の6段構成でパイプライン処理を行う。なお、S
ステージ36には3段のストアバッファがある。
各ステージは他のステージとは独立に動作し、論理上
は6つのステージが完全に独立動作する。Sステージ36
以外の各ステージは1回の処理を最小1クロックで行う
ことができる。Sステージ36は1回のオペランドストア
処理を最小2クロックで行うことができる。従って、メ
モリオペランドのストア処理が行われない場合、理想的
には1クロックごとに次々とパイプライン処理が進行す
る。
本発明のデータ処理装置100にはメモリ−メモリ間演
算あるいはメモリ間接アドレッシング等、基本パイプラ
イン処理1回だけでは処理が行えない命令があるが、こ
れらの処理に対してもなるべく均衡したパイプライン処
理が行えるように設計されている。複数のメモリオペラ
ンドを有する命令に対してはメモリオペランドの数に基
づいてデコード段階で複数のパイプライン処理単位(ス
テップコード)に分解してパイプライン処理を行う。
IFステージ31からDステージ32へ渡される情報は命令
コードそのものである。
Dステージ32からAステージ33へ渡される情報は命令
で指定された演算に関する情報(Dコード41と称す)
と、オペランドのアドレス計算に関係する情報(Aコー
ド42と称す)と、処理中の命令のプログラムカウンタ値
(PC)との3つである。
Aステージ33からFステージ34へ渡される情報はマイ
クロプログラムルーチンのエントリ番地,マイクロプロ
グラムへのパラメータなどを含むRコード43と、オペラ
ンドのアドレス,アクセス方法指示情報等を含むFコー
ド44と、処理中の命令のプログラムカウンタ値(PC)と
の3つである。
Fステージ34からEステージ35へ渡される情報は演算
制御情報,リテラル等を含むEコード45と、オペラン
ド,オペランドアドレス等を含むSコード46a,46bと、
処理中命令のプログラムカウンタ値(PC)との3つであ
る。Sコード46a,46bはアドレス46aとデータ46bとから
なる。
Eステージ35からSステージ36へ渡される情報はスト
アすべき演算結果であるWコード47a,47bとその演算結
果を出力した命令のプログラムカウンタ値(PC)との2
つである。Wコード47a,47bはアドレス47aとデータ47
b)とからなる。
Eステージ35以前のステージで検出されたEITはその
コードがEステージ35に到達するまでEIT処理を起動し
ない。Eステージ35で処理されている命令のみが実行段
階の命令であり、IFステージ31〜Fステージ34で処理さ
れている命令は未だ実行段階に至っていないからであ
る。従って、Eステージ35以前で検出されたEITはそれ
が検出されたことがステップコード中に記録されて次の
ステージに伝えられるのみである。Sステージ36で検出
されたEITはEステージ35で処理中の命令の処理が完了
した時点またはその命令の処理がキャンセルされた場合
に受付けられ、Eステージ35に戻って処理される。
(4.2)「各パイプラインステージの処理」 各パイプラインステージの入出力ステップコードには
第5図に示したように便宜上名前が付与されている。ま
たステップコードはオペレーションコードに関する処理
を行い、マイクロROMのエントリ番地,Eステージ35に対
するパラメータなどになる系列と、Eステージ35の処理
対象のオペランドになる系列との2系列がある。また、
Dステージ32からSステージ36までの間では処理中の命
令のプログラムカウンタ値が受渡される。
(4.2.1)「命令フェッチステージ」 命令フェッチステージ(IFステージ31)では命令フェ
ッチ部111が動作する。内蔵命令キャッシュからあるい
は外部メモリから命令をフェッチし、命令キューに入力
して、Dステージ32に対して2〜6バイト単位で命令コ
ードを出力する。命令キューの入力は整置された4バイ
ト単位で行われる。
標準アクセスモードで外部から命令をフェッチする場
合は整置された4バイトにつき最小2クロックを要す
る。クワッドアクセスモードでは16バイトにつき最小5
クロックを要する。内蔵命令キャッシュがヒットした場
合は整置された8バイトにつき1クロックでフェッチ可
能である。命令キューの出力単位は2バイトごとに可変
であり、1クロックの間に最大6バイトまで出力可能で
ある。またジャンプの直後には命令キューをバイパスし
て命令コード2バイトを直接命令デコーダに転送するこ
とも可能である。
命令の論理アドレスの物理アドレスへの変換,内蔵命
令キャッシュ及び命令用TLBの制御,プリフェッチ先命
令アドレスの管理,命令キューの制御もIFステージ31で
行われる。
(4.2.2)「命令デコードステージ」 命令デコードステージ(Dステージ32)はIFステージ
31から入力された命令コードをデコードする。命令コー
ドのデコードは命令デコード部112のFHWデコーダ,NFHW
デコーダ及びアドレッシングモードデコーダを使用して
1クロックに1度の割合で行われ、1回のデコード処理
で0〜6バイトの命令コードを消費する(リターンサブ
ルーチン命令の復帰先アドレスを含むステップコードの
出力処理等では命令コードを消費しない)。Dステージ
32は1回のデコードでAステージ33に対してアドレス計
算情報であるAコード42とオペレーションコードの中間
デコード結果であるDコード41とを出力する。
Dステージ32ではPC計算部116の制御及び命令キュー
からの命令コードの出力処理も行う。Dステージ32では
ブランチ命令及びサブルーチンからのリターン命令に対
して先行ジャンプ処理を行う。先行ジャンプを行った無
条件ブランチ命令に対してはDコード41もAコード42も
出力せず、Dステージ32で命令の処理を終了する。
(4.2.3)「オペランドアドレス計算ステージ」 オペランドアドレス計算ステージ(Aステージ)33で
の処理は大きく2つに分かれる。第1は、命令デコード
部112の第2デコーダを使用してオペレーションコード
の後段デコードを行う処理で、第2はオペランドアドレ
ス計算部115でオペランドアドレスの計算を行う処理で
ある。
オペレーションコードの後段デコード処理はDコード
41を入力とし、レジスタ及びメモリの書込み予約及びマ
イクロプログラムルーチンのエントリ番地及びマイクロ
プログラムに対するパラメータ等を含むRコード43の出
力を行う。なお、レジスタ及びメモリの書込み予約は、
アドレス計算で参照したレジスタ及びメモリの内容が、
パイプライン上を先行する命令で書換えられてしまって
誤ったアドレス計算が行われることを防止するためのも
のである。
オペランドアドレス計算処理はAコード42を入力と
し、Aコード42に従ってオペランドアドレス計算部115
でオペランドのアドレス計算を行い、その計算結果をF
コード44として出力する。またジャンプ命令に対しては
ジャンプ先アドレスの計算を行って先行ジャンプ処理を
行う。この際、アドレス計算に伴うレジスタの読出し時
に書込み予約のチェックが行われ、先行命令がレジスタ
またはメモリに対して書込み処理を終了していないため
に予約があることが指示されれば、先行命令のEステー
ジ35での書込み処理が終了するまで待機状態になる。
Aステージ33では、Dステージ32で先行ジャンプを行
わなかったジャンプ命令に対して先行ジャンプ処理を行
う。絶対値アドレスへのジャンプあるいはレジスタ間接
アドレッシングのジャンプ等に対してはAステージ33で
先行ジャンプが行われる。先行ジャンプを行った無条件
ジャンプ命令に対してはRコード43やFコード44は出力
されず、Aステージ33で命令の処理を終了する。
(4.2.4)「マイクロROMアクセスステージ」 オペランドフェッチステージ(Fステージ)34での処
理も大きく2つに分かれる。第1はマイクロROMのアク
セス処理であり、特にRステージ37と称す。第2はオペ
ランドプリフェッチ処理であり、特にOFステージ38と称
す。Rステージ37とOFステージ38とは必ずしも同時に動
作するわけではなく、データキャッシュのミス,ヒッ
ト、データTLBのミス,ヒット等に依存して、動作タイ
ミングが異なる。
Rステージ37の処理であるマイクロROMアクセス処理
はRコード43に対して次のEステージ35での実行に使用
される実行制御コードであるEコード45を作り出すため
のマイクロROMアクセスとマイクロ命令デコード処理と
である。
1つのRコードに対する処理が2つ以上のマイクロプ
ログラムステップに分解される場合、第1マイクロROM
部113及び第2マイクロROM部114がEステージ35で使用
され、次のRコード43がマイクロROMアクセス待ちにな
る場合がある。Rコード43に対するマイクロROMアクセ
スが行われるのは、Eステージ35でのマイクロROMアク
セスが行われない場合である。本発明のデータ処理装置
100では多くの整数演算命令が1マイクロプログラムス
テップで行われ、多くの浮動小数点演算命令が2マイク
ロプログラムステップで行われるため、実際にはRコー
ド43に対するマイクロROMアクセスが次々と行われる可
能性が高い。
(4.2.5)「オペランドフェッチステージ」 オペランドフェッチステージ(OFステージ)38はFス
テージ34が行う上述の2つの処理の内のオペランドプリ
フェッチ処理を行う。
OFステージ38では、Fコード44の論理アドレスをデー
タTLBで物理アドレスに変換してその物理アドレスで内
蔵データキャッシュあるいは外部のメモリをアクセスし
てオペランドをフェッチし、そのオペランドとFコード
44として転送されてきたその論理アドレスとを組合わせ
てSコード46a,46bとして出力する。
1つのFコード44では8バイト境界をクロスしてもよ
いが、8バイト以下のオペランドフェッチを指定する。
Fコード44にはオペランドをアクセスするか否かの指定
も含まれており、Aステージ33が計算したオペランドア
ドレス自体あるいは即値をEステージ35へ転送する場合
にはオペランドプリフェッチは行われず、Fコード44の
内容をSコード46a,46bとして転送する。プリフェッチ
しようとするオペランドとEステージ35が書込み処理を
行おうとするオペランドとが一致する場合は、オペラン
ドプリフェッチは内蔵データキャッシュからも外部から
も行われず、バイパスして行われる。
(4.2.6)「実行ステージ」 実行ステージ(Eステージ)35はEコード45とSコー
ド46a,46bとを入力として動作する。このEステージ35
が命令を実行するステージであり、Fステージ34以前の
ステージで行われた処理は全てEステージ35のための前
処理である。Eステージ35でジャンプが実行されたり、
EIT処理が起動されたりした場合は、IFステージ31〜F
ステージ34までの処理はすべて無効化される。Eステー
ジ35はマイクロプログラムにより制御され、Eコード45
にて示されたマイクロプログラムルーチンのエントリ番
地からの一連のマイクロ命令を実行することにより命令
を実行する。
Eコード45には整数演算部117を制御するコード(特
にEIコードと称す)と浮動小数点演算部118を制御する
コード(特にEFコードと称す)とがある。EIコードとEF
コードとは独立に出力されることも可能であり、両コー
ドが独立して出力された場合には、Eステージ35では整
数演算部117と浮動小数点演算部118とが並列に動作す
る。例えば浮動小数点演算部118でメモリオペランドを
持たない浮動小数点演算命令を実行する場合、この動作
は整数演算部117の動作と並列して実行される。
整数演算であっても浮動小数点演算であっても、マイ
クロROMの読出しとマイクロ命令の実行とはパイプライ
ン化されて行われる。従って、マイクロプログラムで分
岐が発生した場合は1マイクロステップの空きが生じ
る。Eステージ35ではAステージ33が行ったレジスタま
たはメモリに対する書込み予約をオペランドの書込みの
後に解除する。
各種の割込は命令の切目のタイミングにおいてEステ
ージ35が直接受付け、マイクロプログラムにより必要な
処理が実行される。その他の各種EITの処理もEステー
ジ35でマイクロプログラムにより行われる。
演算の結果をメモリにストアする必要がある場合は、
Eステージ35はSステージ36へWコード47a,47bとスト
ア処理を行う命令のプログラムカウンタ値との両方を出
力する。
(4.2.7)「オペランドストアステージ」 オペランドストアステージ(Sステージ)36はWコー
ドの論理アドレス47aをデータTLBで物理アドレスに変換
し、そのアドレスでWコードのデータ47bを内蔵データ
キャッシュにストアする。同時にWコード47a,47bとプ
ログラムカウンタ値とをストアバッファに入力し、デー
タTLBから出力された物理アドレスを用いて外部のメモ
リへWコードのデータ47bをストアする処理が行われ
る。
Sステージ36の動作はオペランドアクセス部120で行
われ、データTLBまたは内蔵データキャッシュがミスし
た場合のアドレス変換処理及び内蔵データキャッシュの
入替え処理も行う。
オペランドのストア処理でEITが検出された場合は、
ストアバッファにWコード47a,47bとプログラムカウン
タ値とが保持されたままの状態で、Eステージ35にEIT
の検出が通知される。
(4.3)「各パイプラインステージの状態制御」 パイプラインの各ステージは入力ラッチと出力ラッチ
とを有し、他のステージとは独立に動作することを基本
とする。各ステージは1つ前に行った処理が終了し、そ
の処理結果を出力ラッチから次のステージの入力ラッチ
へ転送し、自ステージの入力ラッチに次の処理に必要な
入力信号が全て揃えば次の処理を開始する。
つまり、各ステージは、1つ前段のステージから出力
されてくる次の処理に対する入力信号が全て有効とな
り、現在の処理結果を後段のステージの入力ラッチへ転
送して出力ラッチが空になった場合に次の処理を開始す
る。
各ステージが動作を開始する直前のタイミングで入力
信号が全て揃っている必要がある。入力信号が揃ってい
ない場合には、そのステージは待ち状態(入力待ち)に
なる。出力ラッチから次のステージの入力ラッチへの転
送が行われる場合には次のステージの入力ラッチが空き
状態になっている必要があり、次のステージの入力ラッ
チが空き状態でない場合もパイプラインステージは待ち
状態(出力待ち)になる。また、キャッシュ,TLBがミス
したり、パイプラインで処理中の命令相互間にデータ干
渉が生じたような場合には、1つのステージの処理に複
数クロックが必要となり、パイプライン処理が遅延す
る。
(5)「データ演算部の動作の詳細な説明」 第3図は本発明のデータ処理装置100の整数演算部117
の詳細なブロック図であり、オペランドアドレス計算部
115,受動小数点演算部118,オペランドアクセス部120も
共に示されている。
SAレジスタ210はオペランドアドレス計算部115から整
数演算部117へ出力されるオペランドアドレス及び即値
を保持するレジスタである。
AAレジスタ211は整数演算部117からオペランドアクセ
ス部120へアドレスを出力するためのレジスタであり、
保持内容に対する1,2,4,8のインクリメント/デクリメ
ント機能を有する。8をインクリメント/デクリメント
する機能は、8バイト浮動小数点数を浮動小数点レジス
タとメモリとの間で転送する際に4バイトの2つの整数
を汎用レジスタとメモリとの間で同時に転送する場合に
有意義な機能である。
レジスタファイル213は整数演算部117内の種々のデー
タを保持する。またレジスタファイル213は主ALU215と
補助ALU212とにそれぞれ3本の4バイトのバスで結合さ
れており、2つのレジスタ上のオペランドを対象として
加算,比較等の演算を主ALU215または補助ALU212に行わ
せることが可能である。
DDレジスタ216は整数演算部117とオペランドアクセス
部120との間でデータを入出力するためのインタフェイ
スレジスタであり、8バイトのDDバス123でオペランド
アクセス部120と結合している。
FFレジスタ217は整数演算部117と浮動小数点演算部11
8とのインタフェイスレジスタである。
プライオリティエンコーダ部214は、ビット列中の先
頭の“1"または“0"の位置をサーチしたり、連続した2
ビットが“1"または“0"であるフィールドの先頭の位置
をサーチする。
レジスタ番地指定回路218は、第1マイクロROM部113
の指示に従って第1マイクロROM部113が指定したレジス
タ番地またはプライオリティエンコーダ部214が指定し
たレジスタ番地に従ってレジスタファイル213に対する
データの読み書きを制御する。
以下プライオリティエンコーダ部214とレジスタ番地
指定回路218との詳細構成及びLDM命令とSTM名との動作
を述べる。
(5.1)「プライオリティエンコーダの詳細構成」 第1図はプライオリティエンコーダ部214の詳細なブ
ロック図である。
プライオリティエンコーダ部214はビット列生成回路
1,オフセット値指定回路2,2つのプライオリティエンコ
ーダ回路3及び4,エンコード結果判定回路7等にて構成
されている。
ビット列生成回路1はS1バス221から入力された16ビ
ットまたは32ビットのビット列を保持する機能、“0"と
“1"とを反転する機能、ビット順序を逆転する機能、隣
接ビット間の論理積をとる機能を有し、これらの変換が
加えられたビット列を第1エンコード回路3及び第2エ
ンコード回路4へ出力する。
第2図はビット列生成回路1の詳細な構成を示すブロ
ック図である。
S1バス221から入力された値はそのままセレクタ10に
入力される他、インバータにより反転されたビット列と
してもセレクタ10に入力される。セレクタ10は反転され
たビット列または反転されていないビット列のいずれか
を選択して出力し、入力ラッチ11に保持させる。
入力ラッチ11の出力は必要に応じてビット正順逆順指
定回路12でビット順序を逆転して第1エンコード回路3
に入力される。ビット正順逆順指定回路12の出力はま
た、論理積回路13により各ビットについてそれぞれの上
位側に隣接するビットとの論理積がとられて第2エンコ
ード回路4に入力される。
オフセット値指定回路2はS2バス222から入力された
5ビットのオフセット値を保持し、その値を第1エンコ
ード回路3及び第2エンコード回路4へ出力する。また
オフセット値指定回路2は、エンコード結果判定回路7
から出力されるオフセット値を入力し、その値に“1"ま
たは“2"を加算する加算機能がある。
第1エンコード回路3と第2エンコード回路4とは同
一に回路構成されたプライオリティエンコード回路であ
り、ビット列生成回路1から入力されたビット列を対象
としてオフセット指定回路2で指定されたビット位置以
降でサーチして最初の“1"のビット位置を出力する組合
せ論理回路である。
エンコード結果判定回路7は第1エンコード回路3と
第2エンコード回路4とから出力されるエンコード値を
入力する。また内蔵データキャッシュまたは外部メモリ
をアクセスするため2進数で表現されたアドレス信号を
転送するAAバス122のうち下位3ビットを入力する。例
えばアドレス番地5が転送される場合、そのアドレス信
号0・・・0101の下位3ビット101が入力される。これ
らの入力に対してオフセット値指定回路2へエンコード
結果と加算すべき値とを出力し、レジスタ番地指定回路
218へレジスタ番号と2つのレジスタを同時にアクセス
すべきか否かを示す並列アクセス信号8とを出力する
他、第1エンコード回路3から出力されたエンコード値
をD1バス225へ出力することもできる。また、エンコー
ド結果判定回路7は第1エンコード回路3の出力の“1"
と“0"とを反転した値をレジスタ番地指定回路218へ出
力することもできる。
第1エンコード回路3および第2エンコード回路4の
エンコード結果が同じ値である場合、かつAAバス122に
転送されるアドレス信号の下位3ビットがすべて“0"で
ある場合、エンコード結果判定回路7は2つのレジスタ
の並列アクセスを許可するとして並列アクセス信号8を
アサートする。それ以外の場合、すなわち第1エンコー
ド回路3および第2エンコード回路4のエンコード結果
が一致しない場合、またはAAバス122に転送されるアド
レス信号の下位3ビットのいずれかが“1"である場合、
2つのレジスタの並列アクセスを禁止するとして並列ア
クセス信号8をネゲートする。
(5.2)「レジスタ番地指定回路」 第8図はレジスタ番地指定回路218の詳細な構成を示
すブロック図である。
レジスタ番地指定回路218は、第1マイクロROM部113
で指定されたレジスタ番地またはプライオリティエンコ
ーダ部214で指定されたレジスタ番号をデコードし、S1
バス221,S2バス222,D1バス225,D3バス226に対するレジ
スタファイル213の入出力を制御する。
第1マイクロROM部113からは汎用レジスタと作業用レ
ジスタとのアクセスが可能で各バスについて5ビットで
入力または出力するレジスタ番地が指定される。プライ
オリティエンコーダ部214からはレジスタファイル213中
の入力または出力を行う汎用レジスタ番号が4ビットで
指定され、レジスタ番地指定回路218のセレクタ(17,1
8,19,20)への入力段階で上位に“0"を拡張してレジス
タ番地とされる。
第1マイクロROM部113で各バス毎に指定されたレジス
タ番地とプライオリティエンコーダ部214で指定された
レジスタ番号とはセレクタ17,18,19,20によりいずれか
が選択されてそれぞれのバス用のデコード回路17′,1
8′,19′,20′へ入力される。
本発明のデータ処理装置100では、転送命令あるいは
加算命令等の単純な命令では第1マイクロROM部113から
出力されたレジスタ番地に従って各バスに入出力するレ
ジスタを制御するため、レジスタ番地が各バス毎のデコ
ード回路17′,18′,19′,20′でデコードされ、その出
力信号に従ってレジスタファイル216をアクセスする
が、一部の高機能命令ではデコード回路17′,18′,1
9′,20′から出力された制御信号をシフトすることによ
り、本来のデコード結果とは異なるデコード結果にてレ
ジスタファイル213をアクセスする。
S2バス222とD3バス226とは高機能命令の実行に際して
2つのレジスタを並列アクセスする場合に、プライオリ
ティエンコーダ部214により指定されたレジスタ番号よ
り1つ大きなレジスタ番号のレジスタをアクセスするた
めにデコード結果を1ビット上位側へシフトしてレジス
タファイル213へ出力する。この機能はデコーダ18′と2
0′とがデコード結果のビット列を出力する制御信号線
群と、そのビット列を1ビット上位側にシフトしたビッ
ト列を出力する制御信号線群とをセレクタ15,16でそれ
ぞれ1ビットシフトしたビット列を出力する制御信号線
群を選択することにより実現される。
またS1バス221は高機能命令の実行に際して2つのレ
ジスタを並列アクセスする場合、プライオリティエンコ
ーダ部214により指定されたレジスタ番号より1つ小さ
なレジスタ番号のレジスタをアクセスするためにデコー
ダ17′のデコード結果を1ビット下位側へシフトしてレ
ジスタファイル213へ出力する。この機能はデコーダ1
7′がデコード結果のビット列を出力する制御信号線群
とそのビット列を1ビット下位側にシフトしたビット列
を出力する制御信号線群とをセレクタ14でそれぞれ1ビ
ットシフトしたビット列を出力する制御信号線群を選択
することにより実現される。
(5.3)「LDM命令の動作」 第30図はLDM命令のオペレーションコードの一例を示
す模式図、第32図はLMD命令を実行する場合の整数演算
部117の動作手順を示すフローチャートである。
このLMD命令は6個の汎用レジスタR1,R4,R5,R6,R7,R8
にスタック領域から6個の4バイトデータをロードする
命令である。本発明のデータ処理装置100でこの命令を
実行する場合、第1マイクロROM部113の制御により第32
図に示すフローチャートに従って整数演算部117が動作
する。
この実施例においては、LDM命令のレジスタリストに
よりR0〜R15のうちそのビット位置によりアクセスすべ
きレジスタを示すビット列“01001111 10000000"にすべ
てが“0"の16ビットが加えられた32ビットのビット列
“01001111 10000000 00000000 00000000"が生成され、
プライオリティエンコーダ214のビット列生成回路1に
入力される。このプライオリティエンコーダ214は入力
される32ビットのビット列より、“1"を有するビット位
置を検知しエンコードするためのもので、32個のレジス
タ(例えば汎用レジスタR0〜R31)をアクセスできるよ
うに構成されている。後半の16ビット“00000000 00000
000"が加えられたのは、LDM命令のレジスタリストでは
指定されないレジスタR16〜R31がアクセスされないよう
にするためである。第1図に示されるビット列生成回路
1のE1側からはそのまま“01001111 10000000 00000000
00000000"が出力され、第1エンコード回路3によりエ
ンコードされる。一方E2側からはこのビット列の各ビッ
トが上位側に隣接するビットとの論理積がとられた“00
001111 00000000 00000000 00000000"が出力され、第2
エンコード回路4によりエンコードされる。
第1エンコード回路3、第2エンコード回路4は各々
に入力された上記のビット列においてオフセット値指定
回路2で指定されたビットより上位側にある“1"のビッ
ト位置をサーチし、そのサーチされたビット位置を2進
数で表現されたエンコード値で出力する。第32図に示さ
れたようにエンコード結果判定回路7では第2のエンコ
ード回路4により出力されたエンコード値と一致する第
1のエンコード回路3のエンコード値は「4」、
「5」、「6」および「7」と判定される。ここでエン
コード値「4」については、すでにスタックポインタの
値としてAAバス122にアドレスH′00001004が転送され
ているので(第5番目のステップ)、エンコード結果判
定回路7はその下位3ビットがすべてゼロでないことを
判定して並列アクセス信号8をネゲートする。よってレ
ジスタR4にはレジスタR1と同様に1回の操作で4バイト
のデータがロードされることになる(第7番目のステッ
プ)。
一方エンコード値「5」および「7」の場合はそれぞ
れ並列アクセス信号8をアサートするので、従ってレジ
スタR5とR6、およびレジスタR7とR8にはそれぞれ4バイ
トずつのデータが並列にロードされることになる(第10
番目のステップ、13番目のステップ)。
このレジスタR5とR6、およびレジスタR7とR8を同時に
アクセスする場合、上記のようにアサートされた並列ア
クセス信号8がレジスタ番地指定回路218に入力され
る。この並列アクセス信号8に従って、デコード結果の
ビット列を1ビット上位側へシフトしたビット列が転送
される制御線をセレクタ16が選択することにより、エン
コード結果判定回路7から出力されたレジスタ番号より
1つ大きな番号のレジスタに値がロードされる。
(5.4)「STM命令の動作」 デスティネーションのアドレッシングモードがa−SP
モード以外のSTM命令を実行する場合、LDM命令と同じフ
ォーマットレジスタリストを処理するためにプライオリ
ティエンコーダ部214の動作はLDM命令の場合と同様であ
る。また、レジスタ番地指定回路218ではSバス222へ出
力するレジスタ番地として、入力されたレジスタ番地よ
りも1つ大きな番地のレジスタをアクセスするため、デ
コード結果のビット列を1ビット上位側へシフトしたビ
ット列が転送される制御線をセレクタ15が選択する。
デスティネーションのアドレッシングモードがa−SP
モードであるSTM命令を実行する場合、LDM命令と異なる
フォーマットレジスタリストを処理するので、プライオ
リティエンコーダ部214の動作が一部異なる。この場
合、エンコード結果判定回路7からオフセット値指定回
路2へは第1エンコード回路3から出力された値がその
まま転送されるが、レジスタ番地指定回路218へは第1
エンコード回路3から出力された値の“0"と“1"とを反
転した値が出力される。つまり、オフセット値指定回路
2にはサーチしてエンコードしたビット番号そのものが
転送されるが、レジスタ番地指定回路218へは捜査して
エンコードしたビット番号に対応するレジスタ番号が出
力されることになる。またこの場合、レジスタ番地指定
回路218では、並列アクセス信号8がアサートされた場
合、S2バス222へは入力されたレジスタ番地のレジスタ
から値が出力され、S1バス221へは入力されたレジスタ
番地より1つレジスタ番地が小さいレジスタから値が出
力される。この機能はデコード結果のビット列を1ビッ
ト下位側へシフトしたビット列を転送する制御線をセレ
クタ14が選択することにより行われる。
例えば、第31図に示したSTM命令においても上述したL
DM命令と同様に、そのレジスタリストによりR0〜R15の
うちそのビット位置によりアクセスすべきレジスタを示
すビット列“00000001 11110010"にすべてが“0"の16ビ
ットが加えられた32ビットのビット列“00000001 11110
010 00000000 00000000"が生成され、プライオリティエ
ンコーダ214内のビット列生成回路1に入力される。後
半の16ビット“00000000 00000000"が加えられたのはST
M命令のレジスタリストでは指定されないレジスタがア
クセスされないようにするためである。したがって第1
エンコード回路3のサーチ対象となるビット列は“0000
0001 11110010 00000000 00000000"であり、第2エンコ
ード回路4のサーチ対象となるビット列は“00000001 1
1100000 00000000 00000000"である。最初のエンコード
動作では、エンコード結果判定回路7へは第1エンコー
ド回路3と第2エンコード回路4とからは共に値「7」
が入力され、AAバス122からは出力されるアドレス
“H′00001FF8"の下位3ビットの“0"入力される。エ
ンコード結果判定回路7は第1エンコード回路3の出力
するエンコード値と第2エンコード回路4の出力するエ
ンコード値が「7」とが一致したこと、およびAAバス12
2から入力されるアドレスの下位3ビットがすべて“0"
であることを判定してオフセット指定回路には値「7」
と加算値「2」とを出力し、レジスタ番地指定回路218
へは「7」を2進数表現した値“0111"の反転である“1
000"に対応するレジスタ番号「8」を出力し、並列アク
セス信号8をアサートする。
レジスタ番地指定回路218では入力されたレジスタ番
号「8」をデコードし、S2バス222へはレジスタR8から
データを読出し、S1バス221へはデコード結果を1ビッ
ト下位側へシフトしたビット列を転送する制御線をセレ
クタ14で選択することによりレジスタR7からデータを読
出す。S1バス221とS2バス222とへ読出された2つのデー
タはDDレジスタ216で連結され、1つの8バイトデータ
としてDDバスを通じてオペランドアクセス部120へ転送
され、内蔵データキャッシュあるいは外部メモリにスト
アされる。
(6)「外部アクセス動作」 (6.1)「入出力信号線」 第7図は本発明のデータ処理装置100の入出力信号を
示す模式図である。
本発明のデータ処理装置100は電源Vccと接地GND,64本
のデータピンと32本のアドレスピンと32本の命令ピン,
入力クロックCLKの他に種々の制御信号を入出力する。
命令アクセスの場合もデータアクセスの場合も、アド
レスピンには物理アドレスが出力される。
CLKは外部入力クロックであり、本発明のデータ処理
装置100の動作クロックと同一周波数のクロックであ
る。
データアドレスストローブDAS#はアドレスピンへ出
力されたデータアドレスが有効であることを示す。
リードライトR/W#はデータピンでのバスサイクルが
入力であるか出力であるかを区別する。
データストロープDS#は本発明のデータ処理装置100
がデータ入力準備を完了したことまたは本発明のデータ
処理装置100からデータが出力されたことを示す。
DC#は本発明のデータ処理装置100にデータアクセス
サイクルを終了してもよいことを通知する信号である。
BAT(0:2)は第7図に示す如く、アドレスピンとデー
タピンとの値の意味を示す。
命令アドレスストロープIAS#はアドレスピンへ出力
された命令アドレスが有効であることを示す。
命令ストローブIS#は本発明のデータ処理装置100が
命令入力準備を完了したことを示す。
IC#は本発明のデータ処理装置100に命令アクセスサ
イクルを終了してもよいことを通知する信号である。
ホールドリクエストHREQ#は本発明のデータ処理装置
100にバス権を要求する信号である。
HACK#は本発明のデータ処理装置100がHREQ#を受付
けてバス権を他のデバイスに渡したことを示す信号であ
る。
IRL#(0:2)は外部割込み要求信号である。
IACK#は本発明のデータ処理装置100が外部割込みを
受付け、割込みベクトルアクセスサイクルを行っている
ことを示す信号である。
(6.2)「外部デバイスのアクセス」 本発明のデータ処理装置100を用いた第6図に示すシ
ステム構成例では、本発明のデータ処理装置100とデー
タキャッシュ107,108とはデータピンに接続されている
データバス102,アドレスピンに接続されているアドレス
バス101の他、BAT(0:2),DAS#,R/W#,DS#,DC#とで
も接続されている。本発明のデータ処理装置100と命令
キャッシュ106とは命令ピンに接続されている命令バス1
03,アドレスバス101の他、BAT(0:2),IAS#,IS#,IC#
とでも接続されている。
クロックCLKはシステム全体に供給されシステムの基
本タイミングを決定する。
本発明のデータ処理装置100は、標準アクセスモード
でのバスアクセスではデータバス102を用いたデータア
クセスと命令バス103を用いた命令アクセスとを、それ
ぞれ十分高速な外部メモリに対して外部入力クロックCL
Kの2サイクルに1度の割合で行える。
また本発明のデータ処理装置100は、クワッドアクセ
スモードでのバスアクセスではデータバス102を用いた
データアクセスと命令バス103を用いた命令アクセスと
を、それぞれ十分高速な外部のメモリに対して外部入力
クロックCLKの5サイクルに4度の割合で行える。
アドレスバス101はデータキャッシュ107,108のアクセ
スと命令キャッシュ106のアクセスとの両方に利用され
る。
(7)「本発明の他の実施例」 上記実施例では、入力されたレジスタ番地をデコード
した結果を1ビットシフトすることにより入力されたレ
ジスタ番地に隣接するレジスタ番地のレジスタをアクセ
スするレジスタ番地指定回路の例を示したが、デコード
した結果を複数ビットシフトすることにより入力された
レジスタ番地と複数番地離れたレジスタ番地のレジスタ
をアクセスするレジスタ番地指定回路も同様に構成する
ことが可能である。
また、入力されたレジスタ番地をデコードした結果の
ビット列とそれを数ビットだけシフトしたビット列とを
2組以上の制御線群により転送してセレクタでセレクト
することにより、入力されたレジスタ番地と異なる2種
類以上の番地のレジスタをアクセスするレジスタ番号指
定回路を構成することも、セレクタを多入力にすること
により同様に実現可能である。
また、上記実施例ではレジスタリストで“1"のビット
に対応するレジスタが操作対象となるレジスタである命
令の例について説明したが、レジスタリストで“0"のビ
ットに対応するレジスタが操作対象となるレジスタであ
る命令でもプライオリティエンコーダにサーチ対象とな
るビット列を反転して入力することにより、同様に処理
可能である。
また、上記実施例では複数データ転送命令としてLMD
命令とSTM命令とを例として説明したが、プロシージャ
の入口で複数のレジスタ中のデータの退避を行うと共に
スタックフレーム形成を行う命令あるいはプロシャージ
ャの出口で複数のレジスタへのデータの復帰とスタック
フレームの解消とを行う命令等、レジスタリストを用い
て転送すべきレジスタを指定する命令であれば上記実施
例と同様の処理が可能である。
[発明の効果] 以上に詳述した如く本発明の第1の発明のデータ処理
装置によると、第1のレジスタに保持されたデータを転
送させる第1の命令、および第1のレジスタに保持され
たデータとともに第2レジスタに保持されたデータを転
送させる第2の命令をデコードする命令デコード手段、
および、2kビット(kは自然数)のデータを保持してメ
モリに転送するデータレジスタと、第1のレジスタに保
持されたkビットの第1のデータをデータレジスタへ転
送する第1のバスと、第2のレジスタに保持されたkビ
ットの第2のデータをデータレジスタへ転送する第2の
バスと、2進数で表現されたレジスタ番地n(nは0以
上の整数)を入力し、整数のビットからなり第1のレジ
スタをアクセスする第1のビット列にデコードするとと
もに、この第1のビット列をm(mは自然数)ビットシ
フトさせて第2のレジスタをアクセスする第2のビット
列を生成する第1のデコード回路と、この第1のデコー
ド回路より出力される第1のビット列と第2のビット列
とを入力してレジスタファイルへ選択的に出力し、第1
のビット列により番地nの第1のレジスタをアクセスさ
せるか、または第2のビット列により番地(n+m)と
番地(n−m)とのいずれか一方の第2のレジスタをア
クセスさせるセレクタ回路と、レジスタ番地nを入力
し、第1のビット列と同一の値を有する第3のビット列
にデコードしてレジスタファイルへ出力し、第1のレジ
スタをアクセスする第2のデコード回路とを有した命令
実行手段を備え、命令実行手段は、第1の命令をデコー
ドした命令デコード手段の出力に従い、セレクタ回路に
第1のビット列をレジスタファイルへ出力させ、第1の
レジスタをアクセスして第1のデータをデータレジスタ
に転送し、第2の命令をデコードした命令デコード手段
の出力に従い、セレクタ回路に第2のビット列をレジス
タファイルへ出力させるとともに、第2のデコード回路
で生成される第3のビット列をレジスタファイルへ出力
させ、第1のレジスタおよび第2のレジスタをアクセス
してそれぞれに保持された第1のデータおよび第2のデ
ータをデータレジスタに転送するように構成された。こ
のため互いに番地の異なる第1のレジスタおよび第2の
レジスタの保持内容をメモリに退避する場合に、この第
1および第2のレジスタの内容が同時にアクセスされる
ので2つのデータを並列に転送することが可能になる。
従って、コンパイラではプロシージャの入口で退避を行
うべきデータは連続した番号のレジスタに割振る場合が
多いので、従来のデータ処理装置に比べ本発明のデータ
処理装置は最大で2倍の速度でデータをレジスタからメ
モリへ退避することが可能になる。
また、本発明の第2の発明のデータ処理装置による
と、第1のレジスタにデータを転送させる第1の命令、
および第1のレジスタととともに第2のレジスタに各々
データを転送させる第2の命令をデコードする命令デコ
ード手段、および、メモリより転送された2kビット(k
は自然数)のデータを保持するデータレジスタと、kビ
ットの第1のデータをデータレジスタから第1のレジス
タに転送する第1のバスと、kビットの第2のデータを
データレジスタから第2のレジスタに転送する第2のバ
スと、2進数で表現されたレジスタ番地n(nは0以上
の整数)を入力し、複数のビットからなり第1のレジス
タをアクセスする第1のビット列にデコードするととも
に、この第1のビット列をm(mは自然数)ビットシフ
トさせて第2のレジスタをアクセスする第2のビット列
を生成する第1のデコード回路と、この第1のデコード
回路より出力される第1のビット列と第2のビット列と
を入力してレジスタファイルへ選択的に出力し、第1の
ビット列により番地nの第1のレジスタをアクセスさせ
るか、または第2のビット列により番地(n+m)と番
地(n−m)とのいずれか一方の第2のレジスタをアク
セスさせるセレクタ回路と、レジスタ番地nを入力し、
第1のビット列と同一の値を有する第3のビット列にデ
コードしてレジスタファイルへ出力し、第1のレジスタ
をアクセスする第2のデコード回路とを有した命令実行
手段を備え、命令実行手段は、第1の命令をデコードし
た命令デコード手段の出力に従い、セレクタ回路に第1
のビット列をレジスタファイルへ出力させ、第1のレジ
スタをアクセスしてデータレジスタに保持された第1の
データを第1のレジスタに転送し、第2の命令をデコー
ドした命令デコード手段の出力に従い、セレクタ回路に
第2のビット列をレジスタファイルへ出力させるととも
に、第2のデコード回路で生成される第3のビット列を
レジスタファイルへ出力させ、第1のレジスタおよび第
2のレジスタをアクセスしてデータレジスタに保持され
た第1のデータおよび第2のデータをそれぞれ第1のレ
ジスタおよび第2のレジスタに転送するように構成され
た。このためメモリから互いに番地の異なる第1のレジ
スタおよび第2のレジスタの各々にデータを転送する場
合、この第1および第2のレジスタへ転送すべき2つの
データを一括してメモリからフェッチし、2つのデータ
を並列にレジスタへ転送することが可能になる。従っ
て、コンパイラではプロシージャの出口で連続したレジ
スタへ復帰を行う場合が多いので、従来のデータ処理装
置に比べ本発明のデータ処理装置は最大で2倍の速度で
データをメモリからレジスタへ復帰することが可能にな
る。
【図面の簡単な説明】
第1図は本発明のデータ処理装置のプライオリティエン
コーダ部の詳細な構成を示すブロック図、 第2図は本発明のデータ処理装置のプライオリティエン
コーダ部の構成要素であるビット列生成回路の詳細な構
成を示すブロック図、 第3図は本発明のデータ処理装置の整数演算部の構成を
示すブロック図、 第4図は本発明のデータ処理装置の全体構成を示すブロ
ック図、 第5図は本発明のデータ処理装置のパイプライン処理ス
テージの説明のための模式図、 第6図は本発明のデータ処理装置を用いたデータ処理シ
ステムの構成例を示すブロック図、 第7図は本発明のデータ処理装置の入出力信号ピンを示
す模式図、 第8図は本発明のデータ処理装置のレジスタ番地指定回
路の詳細な構成を示すブロック図、 第9図,第10図,第11図,第12図及び第13図は本発明の
データ処理装置の命令のフォーマットを示す模式図、 第14図,第15図,第16図,第17図,第18図,第19図,第
20図,第21図,第22図,第23図,第24図,第25図,第26
図及び第27図は本発明のデータ処理装置の命令中のアド
レッシングモード指定部のフォーマットを示す模式図、 第28図は本発明のデータ処理装置の複数データロード命
令である。LDM命令のフォーマットを示す模式図、 第29図は本発明のデータ処理装置の複数データストア命
令であるSTM命令のフォーマットを示す模式図、 第30図は本発明のデータ処理装置の複数データロード命
令であるLDM命令の具体的オペレーションコードの構成
例を示す模式図、 第31図は本発明のデータ処理装置の複数データストア命
令であるSTM命令の具体的オペレーションコードの構成
例を示す模式図、 第32図(a),(b)及び(c)は第30図に示されてい
るLDM命令の具体例を実行した場合に本発明のデータ処
理装置の命令実行部が行う処理のアルゴリズムを示すフ
ローチャートである。 1……ビット列生成回路、2……オフセット値指定回
路、3……第1エンコード回路、4……第2エンコード
回路、7……エンコード結果判定回路、17,18,19,20…
…セレクタ、14,15,16……セレクタ、17′,18′,19′,2
0′……デコード回路、109……主メモリ、107,108……
データキャッシュ、112……命令デコード部、117……整
数演算部、118……浮動小数点演算部、212……レジスタ
ファイル、214……プライオリティエンコーダ部、215…
…主ALU、218……レジスタ番地指定回路、216……DDレ
ジスタ なお、図中、同一符号は同一、又は相当部分を示す。

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】第1および第2のレジスタを有するレジス
    タファイルを備え、メモリと前記第1および第2のレジ
    スタとの間でデータが転送される命令を実行するデータ
    処理装置において、 前記第1のレジスタに保持されたデータを転送させる第
    1の命令、および前記第1のレジスタに保持されたデー
    タとともに前記第2レジスタに保持されたデータを転送
    させる第2の命令をデコードする命令デコード手段、 および、 2kビット(kは自然数)のデータを保持して前記メモリ
    に転送するデータレジスタと、 前記第1のレジスタに保持されたkビットの第1のデー
    タを前記データレジスタへ転送する第1のバスと、 前記第2のレジスタに保持されたkビットの第2のデー
    タを前記データレジスタへ転送する第2のバスと、 2進数で表現されたレジスタ番地n(nは0以上の整
    数)を入力し、整数のビットからなり前記第1のレジス
    タをアクセスする第1のビット列にデコードするととも
    に、この第1のビット列をm(mは自然数)ビットシフ
    トさせて前記第2のレジスタをアクセスする第2のビッ
    ト列を生成する第1のデコード回路と、 この第1のデコード回路より出力される前記第1のビッ
    ト列と第2のビット列とを入力して前記レジスタファイ
    ルへ選択的に出力し、前記第1のビット列により番地n
    の前記第1のレジスタをアクセスさせるか、または前記
    第2のビット列により番地(n+m)と番地(n−m)
    とのいずれか一方の前記第2のレジスタをアクセスさせ
    るセレクタ回路と、 前記レジスタ番地nを入力し、前記第1のビット列と同
    一の値を有する第3のビット列にデコードして前記レジ
    スタファイルへ出力し、前記第1のレジスタをアクセス
    する第2のデコード回路とを有した命令実行手段を備
    え、 前記命令実行手段は、前記第1の命令をデコードした前
    記命令デコード手段の出力に従い、前記セレクタ回路に
    前記第1のビット列を前記レジスタファイルへ出力さ
    せ、前記第1のレジスタをアクセスして前記第1のデー
    タを前記データレジスタに転送し、前記第2の命令をデ
    コードした前記命令デコード手段の出力に従い、前記セ
    レクタ回路に前記第2のビット列を前記レジスタファイ
    ルへ出力させるとともに、前記第2のデコード回路で生
    成される前記第3のビット列を前記レジスタファイルへ
    出力させ、前記第1のレジスタおよび第2のレジスタを
    アクセスしてそれぞれに保持された前記第1のデータお
    よび第2のデータを前記データレジスタに転送するよう
    に構成されたデータ処理装置。
  2. 【請求項2】第1および第2のレジスタを有するレジス
    タファイルを備え、メモリと前記第1および第2のレジ
    スタとの間でデータが転送される命令を実行するデータ
    処理装置において、 前記第1のレジスタに保持されたデータを転送させる第
    1の命令、および前記第1のレジスタととともに前記第
    2のレジスタに各々データを転送させる第2の命令をデ
    コードする命令デコード手段、 および、 前記メモリより転送された2kビット(kは自然数)のデ
    ータを保持するデータレジスタと、 kビットの第1のデータを前記データレジスタから前記
    第1のレジスタに転送する第1のバスと、 kビットの第2のデータを前記データレジスタから前記
    第2のレジスタに転送する第2のバスと、 2進数で表現されたレジスタ番地n(nは0以上の整
    数)を入力し、複数のビットからなり前記第1のレジス
    タをアクセスする第1のビット列にデコードするととも
    に、この第1のビット列をm(mは自然数)ビットシフ
    トさせて前記第2のレジスタをアクセスする第2のビッ
    ト列を生成する第1のデコード回路と、 この第1のデコード回路より出力される前記第1のビッ
    ト列と第2のビット列とを入力して前記レジスタファイ
    ルへ選択的に出力し、前記第1のビット列により番地n
    の前記第1のレジスタをアクセスさせるか、または前記
    第2のビット列により番地(n+m)と番地(n−m)
    とのいずれか一方の前記第2のレジスタをアクセスさせ
    るセレクタ回路と、 前記レジスタ番地nを入力し、前記第1のビット列と同
    一の値を有する第3のビット列にデコードして前記レジ
    スタファイルへ出力し、前記第1のレジスタをアクセス
    する第2のデコード回路とを有した命令実行手段を備
    え、 前記命令実行手段は、前記第1の命令をデコードした前
    記命令デコード手段の出力に従い、前記セレクタ回路に
    前記第1のビット列を前記レジスタファイルへ出力さ
    せ、前記第1のレジスタをアクセスして前記データレジ
    スタに保持された前記第1のデータを前記第1のレジス
    タに転送し、前記第2の命令をデコードした前記命令デ
    コード手段の出力に従い、前記セレクタ回路に前記第2
    のビット列を前記レジスタファイルへ出力させるととも
    に、前記第2のデコード回路で生成される前記第3のビ
    ット列を前記レジスタファイルへ出力させ、前記第1の
    レジスタおよび第2のレジスタをアクセスして前記デー
    タレジスタに保持された前記第1のデータおよび第2の
    データをそれぞれ前記第1のレジスタおよび第2のレジ
    スタに転送するように構成されたことを特徴とするデー
    タ処理装置。
JP2231967A 1990-08-29 1990-08-29 デ−タ処理装置 Expired - Lifetime JP2556182B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2231967A JP2556182B2 (ja) 1990-08-29 1990-08-29 デ−タ処理装置
US07/752,129 US5396610A (en) 1990-08-29 1991-08-29 Register address specifying circuit for simultaneously accessing two registers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2231967A JP2556182B2 (ja) 1990-08-29 1990-08-29 デ−タ処理装置

Publications (2)

Publication Number Publication Date
JPH04109339A JPH04109339A (ja) 1992-04-10
JP2556182B2 true JP2556182B2 (ja) 1996-11-20

Family

ID=16931859

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2231967A Expired - Lifetime JP2556182B2 (ja) 1990-08-29 1990-08-29 デ−タ処理装置

Country Status (2)

Country Link
US (1) US5396610A (ja)
JP (1) JP2556182B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3203401B2 (ja) * 1993-05-21 2001-08-27 三菱電機株式会社 データ処理装置
US5694565A (en) * 1995-09-11 1997-12-02 International Business Machines Corporation Method and device for early deallocation of resources during load/store multiple operations to allow simultaneous dispatch/execution of subsequent instructions
US5850563A (en) * 1995-09-11 1998-12-15 International Business Machines Corporation Processor and method for out-of-order completion of floating-point operations during load/store multiple operations
US5913054A (en) * 1996-12-16 1999-06-15 International Business Machines Corporation Method and system for processing a multiple-register instruction that permit multiple data words to be written in a single processor cycle
US5893928A (en) * 1997-01-21 1999-04-13 Ford Motor Company Data movement apparatus and method
WO2007069000A1 (en) * 2005-12-16 2007-06-21 Freescale Semiconductor, Inc. Device and method for processing instructions
US8195923B2 (en) * 2009-04-07 2012-06-05 Oracle America, Inc. Methods and mechanisms to support multiple features for a number of opcodes
FR3090932B1 (fr) * 2018-12-20 2022-05-27 Kalray Système de multiplication de matrices par blocs

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4348741A (en) * 1980-07-17 1982-09-07 Motorola, Inc. Priority encoder
US4747081A (en) * 1983-12-30 1988-05-24 Texas Instruments Incorporated Video display system using memory with parallel and serial access employing serial shift registers selected by column address
JPS6158058A (ja) * 1984-08-29 1986-03-25 Fujitsu Ltd 半導体記憶装置
JPS6282402A (ja) * 1985-10-07 1987-04-15 Toshiba Corp シ−ケンス制御装置
US4709324A (en) * 1985-11-27 1987-11-24 Motorola, Inc. Data processor control unit having an interrupt service using instruction prefetch redirection
JPH0740225B2 (ja) * 1985-12-25 1995-05-01 日本電気株式会社 プログラムスキツプ動作制御方式
JPH01204147A (ja) * 1988-02-09 1989-08-16 Toshiba Corp アドレス修飾回路
US5167026A (en) * 1989-02-03 1992-11-24 Digital Equipment Corporation Simultaneously or sequentially decoding multiple specifiers of a variable length pipeline instruction based on detection of modified value of specifier registers

Also Published As

Publication number Publication date
JPH04109339A (ja) 1992-04-10
US5396610A (en) 1995-03-07

Similar Documents

Publication Publication Date Title
JP2616182B2 (ja) データ処理装置
US5717946A (en) Data processor
JPH03186928A (ja) データ処理装置
JPH0719215B2 (ja) マイクロプロセッサ
JP2847974B2 (ja) データ処理装置
JP2581236B2 (ja) データ処理装置
JPH1091443A (ja) 情報処理回路、マイクロコンピュータ及び電子機器
JP2507638B2 (ja) デ―タ処理装置
JPH0766324B2 (ja) データ処理装置
US4945511A (en) Improved pipelined processor with two stage decoder for exchanging register values for similar operand instructions
JP2669158B2 (ja) データ処理装置
JP3789583B2 (ja) データ処理装置
JP2556182B2 (ja) デ−タ処理装置
US6757809B1 (en) Data processor having 2n bits width data bus for context switching functions
JP3345787B2 (ja) データ処理装置
US5870596A (en) Data processor allowing multifunctional instruction execution
JP2504312B2 (ja) プライオリティエンコ―ダ及びそれを備えたデ―タ処理装置
JP2668456B2 (ja) ビット検索回路及びそれを備えたデータ処理装置
JP2646855B2 (ja) データ処理装置
JP2504235B2 (ja) デ―タ処理装置
JPH0769806B2 (ja) データ処理装置
JP2696578B2 (ja) データ処理装置
JP3019818B2 (ja) データ処理方法
JP2522048B2 (ja) マイクロプロセッサ及びそれを使用したデ―タ処理装置
JPH0769805B2 (ja) データ処理装置