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

データ処理装置

Info

Publication number
JPH0766324B2
JPH0766324B2 JP63066267A JP6626788A JPH0766324B2 JP H0766324 B2 JPH0766324 B2 JP H0766324B2 JP 63066267 A JP63066267 A JP 63066267A JP 6626788 A JP6626788 A JP 6626788A JP H0766324 B2 JPH0766324 B2 JP H0766324B2
Authority
JP
Japan
Prior art keywords
operand
address
unit
instruction
stage
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 - Fee Related
Application number
JP63066267A
Other languages
English (en)
Other versions
JPH01237837A (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 JP63066267A priority Critical patent/JPH0766324B2/ja
Priority to US07/313,650 priority patent/US5129068A/en
Priority to US07/314,727 priority patent/US5091853A/en
Publication of JPH01237837A publication Critical patent/JPH01237837A/ja
Publication of JPH0766324B2 publication Critical patent/JPH0766324B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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/35Indirect addressing

Landscapes

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明は高度なパイプライン処理機構により高い処理
能力を実現したデータ処理装置に関するものである。
〔従来の技術〕
データ処理装置の処理を行うビット幅が4ビットから8
ビット、16ビットを経て32ビットへと発展すると共にア
ドレッシングモード指定法、つまり命令のアドレス指定
部から実行アドレスを計算する方法も多様化してきた。
例えば、特公昭59−31734に汎用アドレッシングモード
を持った命令を処理するデータ処理システムについて開
示されている。このデータ処理システムの中央処理装置
で処理される命令は、第6図で示すような体系となって
いる。各命令は、オペレーションコード(80)及びアド
レスを指定する情報であるオペランド指定子((81)、
(82)、および(83))を備えており、オペランド指定
子のそれぞれは少なくとも一つのデータバイトを備えて
いる。第6図の場合、三つのオペランド指定子を持った
命令の例である。各オペランド指定子は二つのフィール
ドより成る。その高位ビットはレジスタモードフィール
ド(84)を構成し第6図で示す0から15までのアドレス
モードが指定でき、その下位ビットはレジスタアドレス
フィールド(85)を構成し、汎用レジスタの指定ができ
る。オペランド指定子(83)のレジスタモードフィール
ドを(84A)の様にインデクスアドレスモードを指定す
ると、それに対応するレジスタフィールド(85A)にオ
ペランド指定子を処理する際にインデクスレジスタとし
て使用すべき汎用レジスタの一つが指定される。2次オ
ペランド指定子はインデクスアドレス動作の命令に含ま
れる。この2次オペランド指定子は指定されたインデク
スレジスタの内容を加算すべきベースアドレスを与え
る。このようにこの中央処理装置のアドレス計算はオペ
ランド指定子の最初のバイトで指定されたインテクスレ
ジスタの内容を取り込み、オペランド指定子の第2バイ
ト及びその後のバイトに含まれた情報に基づいてアドレ
スを作り出し、最初のバイトで指定されたインデクスレ
ジスタの内容と合成しそれによってオペランドのアドレ
スを作り出している。また、第7図は、従来のデータ処
理装置のパイプライン構成図を示す。まず、命令プリフ
ェッチ回路(86)で、命令のプリフェッチを行う。次
に、命令バッファデコード回路(87)でプリフェッチし
た命令を順次デコードする。そして、アドレス計算及び
オペランドフェッチ回路(88)でオペランドのアドレス
を計算しオペランドのフェッチを行って、演算実行回路
(89)で命令の演算を実行する。
〔発明が解決しようとする課題〕
上記のようなインデクスアドレスモードを指定すると、
まず、オペランド指定子のインデクスに関する情報が命
令バッファデコード回路(87)でデコードされ、次に、
オペランド指定子の第2バイト及びその後のバイトに含
まれた情報のデコードが終わってからアドレス計算及び
オペランドフェッチ回路(88)で実際のアドレス計算が
行われ、演算実行回路(89)で演算の実行が行われるこ
とになる。つまり、インデクス値からデコード処理され
るのでベース値に関する情報は後となり、デコード処理
を行いながらアドレス計算ができないことになる。
〔課題を解決するための手段〕
上記の問題を解決するため、本発明のデータ処理装置で
は、高機能なアドレッシングモードである多段間接アド
レッシングモードをもつ。多段間接アドレッシングモー
ドのアドレス計算は、ベース値を取り込みベース値の計
算を行い、インデクスに関する情報を取り込み、インデ
クス値を加算して、オペランドのアドレスを作り出して
いる。この多段間接アドレッシングモードは、メモリ間
接参照アドレッシングモードも指定可能であり、加算と
間接参照のオペレーションをアドレッシングのプリミテ
ィブとして、これを任意に組合せが可能なため、任意回
の間接参照が可能なアドレッシングモードである。
また、任意回のメモリ間接参照を含むアドレス計算が行
えるアドレッシングにも処理可能なデータ処理装置であ
る。しかも、本発明のデータ処理装置は、パイプライン
処理によるデータ演算を実行する方式をとっており各パ
イプライン処理構成要素の各処理の負荷が均衡に成るよ
うな構成をとっている。
本発明のデータ処理装置は命令フェッチ部、命令デコー
ド部、アドレス計算部、オペランドフェッチ部、命令の
演算実行部からなり、パイプライン処理方式で、一つの
命令をデコード段階で複数のパイプライン処理単位に分
け処理を行い、その命令のアドレス計算に関する情報の
パイプライン処理単位は、上記多段間接アドレッシング
モード指定ごとに行い、アドレス計算終了後、その命令
のオペランドに対する演算情報のパイプライン処理単位
に吸収するような手段を備えたものである。
〔作用〕
本発明におけるデータ処理装置において、オペランドの
アドレス指定が多段間接アドレッシングモードで指定さ
れた命令の場合の処理は、まず、デコード段階では、2
バイトの命令基本部がデコードされ、一つのパイプライ
ン処理単位としてアドレス計算を行う段階へ送られる。
そして、(多段間接モード+0〜4バイトのアドレッシ
ング拡張部)がデコードされ、一つのパイプライン処理
単位としてアドレス計算を行う段階へ送られる。このと
き、(多段間接モード+0〜4バイトのアドレッシング
拡張部)が複数個存在するときは、複数個のパイプライ
ン処理単位がアドレス計算を行う段階へ送られることと
なる。次に、アドレス計算を行う段階では、2バイトの
命令基本部のパイプライン処理単位が処理され、これに
続く(多段間接モード+0〜4バイトのアドレッシング
拡張部)のパイプライン処理単位が処理され、(多段間
接モード+0〜4バイトのアドレッシング拡張部)のパ
イプライン処理単位が複数個存在する場合には次々と処
理をし、その処理が終了したとき、つまり、一つのオペ
ランドのアドレス計算が終了したときに、これらの処理
結果が一つのパイプライン処理単位として、オペランド
のフェッチを行う段階に送られる。
〔実施例〕
(1)本発明のデータ処理装置の命令フォーマット 本発明のデータ処理装置の命令は16ビット単位で可変長
となっており、奇数バイト長の命令はない。
本発明のデータ処理装置では高頻度命令を短いフォーマ
ットとするため、特に工夫された命令フォーマット体系
をもつ。例えば、2オペランド命令に対して、基本的に
4バイト+拡張部の構成をもち、すべてのアドレッシン
グモードが利用できる一般形フォーマットと頻度の高い
命令とアドレッシングモードのみを使用できる短縮形フ
ォーマットの2つのフォーマットがある。
第8図から第17図に示す本発明のデータ処理装置の命令
フォーマット中に現われる記号の意味は次の通りであ
る。
−:オペコードの入る部分 #:リテラル、または即値の入る部分 Ea:8ビットの一般形のアドレッシングモードでオペラン
ドを指定する部分 Sh:6ビットの短縮形のアドレッシングモードでオペラン
ドを指定する部分 Rn:レジスタ上のオペランドをレジスタ番号で指定する
部分 フォーマットは、第8図に示すように右側がLSB側で、
かつ高いアドレスになっている。アドレスNとアドレス
N+1の2バイトを見ないと命令フォーマットが判別で
きないようになっているが、これは、命令が必ず16ビッ
ト(2バイト)単位でフェッチ、デコードされることを
前提としたためである。
本発明のデータ処理装置では、いずれのフォーマットの
場合も、各オペランドのEaまたはShの拡張部は、必ずそ
のEaまたはShの基本部を含むハーフワードの直後に置か
れる。これは、命令により暗黙に指定される即値データ
や、命令の拡張部に優先する。したがって、4バイト以
上の命令では、Eaの拡張部によって命令のオペコードが
分断される場合がある。
また、後でも述べるように、多段間接モードによって、
Eaの拡張部にさらに拡張部が付く場合にも、次の命令オ
ペコードよりもそちらの方が優先される。例えば、第一
ハーフワードにEa1を含み、第二ハーフワードにEa2を含
み、第三ハーフワードまである6バイト命令の場合を考
える。Ea1に多段間接モードを使用したため、普通の拡
張部のほかに多段間接モードの拡張部もつくものとす
る。この時、実際の命令ビットパターンは、命令の第一
ハーフワード(Ea1の基本部を含む)、Ea1の拡張部、Ea
1の多段間接モード拡張部、命令の第二ハーフワード(E
a2の基本部を含む)、Ea2の拡張部、命令の第三ハーフ
ワード、の順となる。
なお、ここで述べている命令フォーマットの内容は、坂
村、「TRON仕様チップの命令ビット割付方法」、電子情
報通信学会第3回リアルタイムアーキテクチャTRON研究
会資料に詳しく記されている。
(1.1)短縮形2オペランド命令 第9図から第12図は、2オペランド命令の短縮形フォー
マットである。
第9図はメモリーレジスタ間演算命令のフォーマットで
ある。このフォーマットにはソースオペランド側がメモ
リとなるL−formatとデスティネーションオペランド側
がメモリとなるS−formatがある。
L−formatでは、Shはソースオペランドの指定フィール
ド、Rnはデスティネーショシオペランドのレジスタの指
定フィールド、RRはShのオペランドサイズの指定をあら
わす。レジスタ上に置かれたデスティネーションオペラ
ンドのサイズは、32ビットに固定されている。レジスタ
側とメモリ側のサイズが異なり、ソース側のサイズが小
さい場合に符号拡張が行なわれる。
S−formatではShはデスティネーションオペランドの指
定フィールド、Rnはソースオペランドのレジスタ指定フ
ィールド、RRはShのオペランドサイズの指定をあらわ
す。レジスタ上に置かれたソースオペランドのサイズ
は、32ビットに固定されている。レジスタ側とメモリ側
のサイズが異なり、ソース側のサイズが大きい場合にあ
ふれた部分の切捨てとオーバーフローチェックが行なわ
れる。
第10図はレジスターレジスタ間演算命令のフォーマット
(R−format)である。Rnはデスティネーションレジス
タの指定フィールドRmはソースレジスタの指定フィール
ドである。オペランドサイズは32ビットのみである。
第11図はリテラル−メモリ間演算命令のフォーマット
(Q−format)である。MMはディスティネーションオペ
ランドサイズの指定フィールド、#はリテラルによるソ
ースオペランドの指定フィールド、Shはデスティネーシ
ョンオペランドの指定フィールドである。
第12図は即値−メモリ間演算命令のフォーマット(I−
format)である。MMはオペランドサイズの指定フィール
ド(ソース,ディスティネーションで共通)、Shはデス
ティネーションオペランドの指定フィールドである。I
−formatの即値のサイズは、デスティネーション側のオ
ペランドのサイズと共通に8,16,32ビットとなり、ゼロ
拡張、符号拡張は行なわれない。
(1.2)一般形1オペンランド命令 第13図は1オペランド命令の一般形フォーマット(G1−
format)である。MMはオペランドサイズの指定フィール
ドである。一部のG1−format命令では、Eaの拡張部以外
にも拡張部がある。また、MMを使用しない命令もある。
(1.3)一般形2オペランド命令 第14図から第16図は2オペランド命令の一般形フォーマ
ットである。このフォーマットに含まれるのは、8ビッ
トで指定する一般形アドレッシングモードのオペランド
が最大2つ存在する命令である。オペランドの総数自体
は3つ以上になる場合がある。
第14図は第一オペランドがメモリ読みだしを必要とする
命令のフォーマット(G−format)である。EaMはデス
ティネーションオペランドの指定フィールド、MMはデス
ティネーションオペランドサイズの指定フィールド、Ea
Rはソースオペランド指定フィールド、RRはソースオペ
ランドサイズの指定フィールドである。一部のG−form
at命令では、EaMやEaRの拡張部以外にも拡張部がある。
第15図は第一オペランドが8ビット即値の命令のフォー
マット(E−format)である。EaMはデスティネーショ
ンオペランドの指定フィールド、MMはデスティネーショ
ンオペランドサイズの指定フィールド、#はソースオペ
ランド値である。
E−formatとI−formatとは機能的には似たものである
が、考え方の点では大きく違っている。E−formatはあ
くまでも2オペランド一般形(G−format)の派生形で
あり、ソースオペランドのサイズが8ビット固定、ディ
スティネーションオペランドのサイズが8/16/32ビット
から選択となっている。つまり、異種サイズ間の演算を
前提とし、デスティネーションオペランドのサイズに合
わせて8ビットのソースオペランドがゼロ拡張または符
号拡張される。一方、I−formatは、特に転送命令、比
較命令で頻度の多い即値のパターンを短縮形にしたもの
であり、ソースオペランドとディスティネーションオペ
ランドのサイズは等しい。
第16図は第一オペランドがアドレス計算のみの命令のフ
ォーマット(GA−format)である。EaWはデスティネー
ションオペランドの指定フィールド、WWはデスティネー
ションオペランドサイズの指定フィールド、EaAはソー
スオペランドの指定フィールドである。ソースオペラン
ドとしては実行アドレスの計算結果自体が使用される。
第17図はショートブランチ命令のフォーマットである。
ccccは分岐条件指定フィールド、disp:8はジャンプ先と
の変位指定フィールド、本発明のデータ処理装置では8
ビットで変位を指定する場合には、ビットパターンでの
指定値を2倍して変位値とする (1.4)アドレッシングモード 本発明のデータ処理装置のアドレッシングモード指定方
法には、レジスタを含めて6ビットで指定する短縮形
と、8ビットで指定する一般形がある。
未定義のアドレッシングモードを指定した場合や、意味
的に考えて明らかにおかしなアドレッシングモードの組
み合わせを指定した場合には、未定義命令を実行した場
合と同じく予約命令例外を発生し、例外処理を起動す
る。
これに該当するのは、デスティネーションが即値モード
の場合、アドレス計算を伴うべきアドレッシングモード
指定フィールドで即値モードを使用した場合などであ
る。
第18図から第28図に示すフォーマットの図中で使われる
記号つぎの通りである。
Rnレジスタ指定 (Sh)6ビットの短縮形アドレッシングモードでの指定
方法 (Ea)8ビットの一般形アドレッシングモードでの指定
方法 フォーマットの図で点線で囲まれた部分は、拡張部を示
す。
(1.4.1)基本アドレッシングモード 本発明のデータ処理装置は様々なアドレッシングモード
をサポートする。そのうち、本発明のデータ処理装置で
サポートする基本アドレッシングモードには、レジスタ
直接モード、レジスタ間接モード、レジスタ相対間接モ
ード、即値モード、絶対モード、PC相対間接モード、ス
タックポップモード、スタックプッシユモードがある。
レジスタ直接モードは、レジスタの内容をそのままオペ
ランドとする。フォーマットは第18図に示す。Rnは汎用
レジスタの番号を示す。
レジスタ間接モードは、レジスタの内容をアドレスとす
るメモリの内容をオペランドとする。フォーマットは第
19図に示す。Rnは汎用レジスタの番号を示す。
レジスタ相対間接は、ディスプレースメント値が16ビッ
トか32ビットかにより、2種類ある。それぞれ、レジス
タの内容に16ビットまたは32ビットのディスプレースメ
ント値を加えた値をアドレスとするメモリの内容をオペ
ランドとする。フォーマットは第20図に示す。Rnは汎用
レジスタの番号を示す。disp:16とdisp:32は、それぞ
れ、16ビットのディスプレースメント値、32ビットのデ
ィスプレースメント値を示す。ディスプレースメント値
は符号付きとして扱う。
即値モードは、命令コード中で指定されるビットパター
ンをそのまま2進数と見なしてオペランドする。フォー
マットは第21図に示す。imm_dataは即値を示す。imm_da
taのサイズは、オペランドサイズとして命令中で指定さ
れる。
絶対モードは、アドレス値16ビットで示されるか32ビッ
トで示されるかにより2種類ある。それぞれ、命令コー
ド中で指定される16ビットまたは32ビットのビットパタ
ーンをアドレスとしたメモリの内容をオペランドとす
る。フォーマットは第22図に示す。abs:16とabs:32は、
それぞれ、16ビットのアドレス値を示す。abs:16でアド
レスが示されるときは指定されたアドレス値を32ビット
に符号拡張する。
PC相対間接モードは、ディスプレースメント値16ビット
か32ビットかにより、2種類ある。それぞれ、プログラ
ムカウンタの内容に16ビットまたは32ビットのディスプ
レースメント値を加えた値をアドレスとするメモリの内
容をオペランドとする。フォーマットは第23図に示す。
disp:16とdisp:32は、それぞれ、16ビットのディスプレ
ースメント値、32ビットのディスプレースメント値を示
す。ディスプレースメント値は符号付きとして扱う。PC
相対間接モードにおいて参照されるプログラムカウンタ
の値は、そのオペランドを含む命令の先頭アドレスであ
る。多段間接アドレシングモードにおいてプログラムカ
ウンタの値が参照される場合にも、同じように命令先頭
のアドレスをPC相対の基準値として使用する。
スタックポップモードはスタックポインタ(SP)の内容
をアドレスとするメモリの内容をオペランドとする。オ
ペランドアクセス後、SPをオペランドサイズだけインク
リメントする。例えば、32ビットデータを扱う時には、
オペランドアクセス後にSPが+4だけ更新される。B,H
のサイズのオペランドに対するスタックポップモードの
指定も可能であり、それぞれSPが+1,+2だけ更新され
る、フォーマットは第24図に示す。オペランドに対しス
タックポップモードが意味を持たないものに対しては、
予約命令例外を発生する。具体的に予約命令例外となる
のは、writeオペランド、read−modify−writeオペラン
ドに対するスタックポップモード指定である。
スタックプッシユモードはSPの内容をオペランドサイズ
だけデクリメントした内容をアドレスとするメモリの内
容をオペランドとする。スタックプッシユモードではオ
ペランドアクセス前にSPがデクリメントされる。例え
ば、32ビットデータを扱う時には、オペランドアクセス
前にSPが−4だけ更新される。B,Hのサイズのオペラン
ドに対するスタックプッシユモードの指定も可能であ
り、それぞれSPが−1,−2だけ更新される。フォーマッ
トは第25図に示す。オペランドに対してスタックプッシ
ユモードが意味を持たないものに対しては、予約命令例
外を発生する。具体的に予約命令例外となるのは、read
オペランド、read−modify−writeオペランドに対する
スタックプッシユモード指定である。
(1.4.2)多段間接アドレッシングモード 複雑なアドレッシングも、基本的には加算と間接参照の
組み合わせに分解することができる。したがって、加算
と間接参照のオペレーションをアドレッシングのプリミ
ティブとして与えておき、それを任意に組み合わせるこ
とができれば、どんな複雑なアドレッシングモードをも
実現することができる。本発明のデータ処理装置の多段
間接アドレッシングモードはこのような考え方にたった
アドレッシングモードである。複雑なアドレッシングモ
ードは、モジユール間のデータ参照やAI言語の処理系に
特に有用である。
多段間接アドレッシングモードを指定するとき、基本ア
ドレッシングモード指定フィールドでは、レジスタベー
ス多段間接モード、PCベース多段間接モード、絶対ベー
ス多段間接モードの3種類の指定方法のうちいずれか1
つを指定する。
レジスタベース多段間接モードはレジスタの値を、拡張
する多段間接アドレッシングのベース値とするアドレッ
シングモードである。フォーマットは第26図に示す。Rn
は汎用レジスタの番号を示す。
PCベース多段間接モードはプログラムカウンタの値を、
拡張する多段間接アドレッシングのベース値とするアド
レッシングモードである。フォーマットは第27図に示
す。
絶対ベース多段間接モードはゼロを、拡張する多段間接
アドレッシングのベース値とするアドレッシングモード
である。フォーマットは第28図に示す。
拡張する多段間接モード指定フィールドは、16ビットを
単位としており、これを任意回繰り返す。1段の多段間
接モードにより、ディスプレースメントの加算、インデ
クスレジスタのスケーリング(×1、×2、×4、×
8)と加算、メモリの間接参照、を行なう。多段間接モ
ードのフォーマットは第29図で示す。各フィールドは以
下に示す意味をもつ。
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=0001dispxは16ビット d4=0010dispxは32ビット XX:インデクスのスケール(scale=1/2/4/8) プログラムカウンタに対して×2、×4、×8のスケー
リングを行なった場合には、その段の処理終了後の中間
値(tmp)として、不定値が入る。この多段間接モード
によって得られる実効アドレスは予測できない値となる
が、例外は発生しない。プログラムカウンタに対するス
ケーリングの指定は行なってはいけない。
多段間接モードによる命令フォーマットのバリエーショ
ンを第30図、第31図に示す。第30図は多段間接モードが
継続するか終了するかのバリエーションを示す。第31図
はディスプレースメントのサイズのバリエーションを示
す。
任意段数の多段間接モードが利用できれば、コンパイラ
の中で段数による場合分けが不要になるので、コンパイ
ラの負担が軽減されるというメリットがある。多段の間
接参照の頻度が非常に少ないとしても、コンパイラとし
ては必ず正しいコードを発生できなければならないから
である。このため、フォーマット上、任意の段数が可能
になっている。
(1.5)例外処理 本発明のデータ処理装置ではソフトウエア負荷の軽減の
ため、豊富な例外処理機能をもつ、本発明のデータ処理
装置では例外処理は、命令処理を再実行するもの(例
外)、命令処理を完了するもの(トラップ)、割込の3
種類に分けて名称をつけている。また本発明のデータ処
理装置では、この3種の例外処理と、システム障害を総
称してEITと呼ぶ。
(2)機能ブロックの構成 第2図に本発明のデータ処理装置のブロック図を示す。
本発明のデータ処理装置の内部を機能的に大きく分ける
と、命令フェッチ部(51)、命令デコード部(52)、PC
計算部(53)、オペランドアドレス計算部(54)、マイ
クロROM部(55)、データ演算部(56)、外部バスイン
ターフェイス部(57)に分かれる。第2図では、その他
にCPU外部にアドレスを出力するアドレス出力回路(5
8)とCPU外部とデータの入出力を行うデータ入出力回路
(59)を他の機能ブロック部と分けて示した。
(2.1)命令フェッチ部 命令フェッチ部(51)にはブランチバッファ、命令キユ
ーとその制御部などがあり、次にフェッチすべき命令の
アドレスを決定して、ブランチバッファやCPU外部のメ
モリから命令をフェッチする。ブランチバッファへの命
令登録も行う。
ブランチバッファは小規模であるためセレクティブキャ
ッシュとして動作する。ブランチバッファの動作の詳細
は特願昭61−202041で詳しく述べられている。
次にフェッチすべき命令のアドレスは命令キューに入力
すべき命令のアドレスとして専用のカウンタで計算され
る。分岐やジャンプが起きたときには、新たな命令のア
ドレスが、PC計算部(53)やデータ演算部(56)より転
送されてくる。
CPU外部のメモリから命令をフェッチするときは、外部
バスインターフェイス部(57)を通して、フェッチすべ
き命令のアドレスをアドレス出力回路(58)からCPU外
部に出力し、データ入出力回路(59)をから命令コード
をフェッチする。
バッファリングした命令コードのうち、命令デコード部
(52)で次にデコードすべき命令コードを命令デコード
部(52)に出力する。
(2.2)命令デコード部 命令デコード部(52)では基本的に16ビット(ハーフワ
ード)単位に命令コードをデコードする。このブロック
には第1ハーフワードに含まれるオペコードをデコード
するFHWデコーダ、第2、第3ハーフワードに含まれる
オペコードをデコードするNFHWデコーダ、アドレッシン
グモードをデコードするアドレッシングモードデコーダ
が含まれる。
さらにFHWデコーダやNFHWデコーダの出力をさらにデコ
ードして、マイクロROMのエントリアドレスを計算する
デコーダ2、条件分岐命令の分岐予測を行う分岐予測機
構、オペランドアドレス計算のときのパイプラインコン
フリクトをチェックするアドレス計算コンフリクトチェ
ック機構も含まれる。
命令フェッチ部より入力された命令コードを2クロック
につき0〜6バイトのデコードする。デコード結果のう
ち、データ演算部(56)での演算に関する情報がマイク
ロROM部(55)に、オペランドアドレス計算に関係する
情報がオペランドアドレス計算部(54)に、PC計算に関
係する情報がPC計算部(53)に、それぞれ出力される。
(2.3)マイクロROM部 マイクロROM部(55)には主にデータ演算部(56)を制
御するマイクロプログラムが格納されているマイクロRO
M、マイクロシーケンサ、マイクロ命令デコーダなどが
含まれる。マイクロ命令はマイクロROMから2クロック
に1度読み出される。マイクロシーケンサはマイクロプ
ログラムで示されるシーケンス処理の他に、例外、割
込、トラップ(この3つをあわせてEITと呼ぶ)の処理
をハードウエア的に受付ける。またマイクロROM部はス
トアバッファの管理も行う。マイクロROM部には命令コ
ードに依存しない割込みや演算実行結果によるフラッグ
情報と、デコーダ2の出力など命令デコード部の出力が
入力される。マイクロデコーダの出力は主にデータ演算
部(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値を計算する。分岐命令に対して
命令デコード段階で分岐を行うことを本発明のデータ処
理装置ではプリブランチと呼ぶ。プリブランチの方法に
ついては特願昭61−204500と特願昭61−200557で詳しく
述べられている。
PC計算部(53)の計算結果は各命令のPC値として命令の
デコード結果とともに出力されるほか、プリブランチ時
には、次にデコードすべき命令のアドレスとして命令フ
ェッチ部に出力される。
また、次に命令デコード部(52)でデコードされる命令
の分岐予測のためのアドレスにも使用される。分岐予測
の方法については特願昭62−8394で詳しく述べられてい
る。
(2.6)データ演算部 データ演算部(56)はマイクロプログラムにより制御さ
れ、マイクロROM部(55)の出力情報に従い、各命令の
機能を実現するのに必要な演算をレジスタと演算器で実
行する。演算対象となるオペランドがアドレスや即値の
場合は、オペランドアドレス計算部(54)で計算された
アドレスや即値を外部バスインターフェイス部(57)を
通過させて得る。また、演算対象となるオペランドがCP
U外部のメモリにあるデータの場合は、アドレス計算部
(54)で計算されたアドレスをバスインターフェイス部
(57)がアドレス出力回路(58)から出力して、CPU外
部のメモリからフェッチしたオペランドをデータ入出力
回路(59)から得る。
演算器としてはALU、バレルシフタ、プライオリティエ
ンコーダやカウンタ、シフトレジスタなどがある。レジ
スタと主な演算器の間は3バスで結合されており、1つ
のレジスタ間演算を指示する1マイクロ命令を2クロッ
クサイクルで処理する。
データ演算のときCPU外部のメモリをアクセスする必要
がある時はマイクロプログラムの指示により外部バスイ
ンターフェイス部(57)を通してアドレス出力回路(5
8)からアドレスをCPU外部に出力し、データ入出力回路
(59)を通して目的のデータをフェッチする。
CPU外部のメモリにデータをストアするときは外部バス
インターフェイス部(57)を通してアドレス出力回路
(58)よりアドレスを出力すると同時に、データ入出力
回路(59)からデータをCPU外部に出力する。オペラン
ドストアを効率的に行うためデータ演算部(56)には4
バイトのストアバッファがある。
ジャンプ命令の処理や例外処理などを行って新たな命令
アドレスをデータ演算部(56)が得たときはこれを命令
フェッチ部(51)とPC計算部(53)に出力する。
(2.7)外部バスインターフェイス部 外部バスインターフェイス部(57)は本特許のデータ処
理装置の外部バスでの通信を制御する。メモリのアクセ
スはすべてクロック同期で行われ、最小2クロックサイ
クルで行うことができる。
メモリに対するアクセス要求は命令フェッチ部(51)、
アドレス計算部(54)、データ演算部(56)から独立に
生じる。外部バスインターフェイス部(57)はこれらの
メモリアクセス要求を調停する。さらにメモリとCPUを
結ぶデータバスサイズである32ビット(ワード)の整置
境界をまたぐメモリ番地にあるデータのアクセスは、こ
のブロック内で自動的にワード境界をまたぐことを検知
して、2回のメモリアクセスに分解して行う。
プリフェッチするオペランドとストアするオペランドが
重なる場合の、コンフリクト防止処理やストアオペラン
ドからフェッチオペランドへのバイパス処理も行う。
(3)パイプライン機構 本発明のデータ処理装置のパイプライン処理は第3図に
示す構成となる。命令のプリフェッチを行う命令フェッ
チステージ(IFステージ(31))、命令のデコードを行
うデコードステージ(Dステージ(32))、オペランド
のアドレス計算を行うオペランドアドレス計算ステージ
(Aステージ(33))、マイクロROMアクセス(特にR
ステージ(36)と呼ぶ)とオペランドのプリフェッチ
(特にOFステージ(37)と呼ぶ)を行うオペランドフェ
ッチステージ(Fステージ(34))、命令の実行を行う
実行ステージ(Eステージ(35))の5段構成をパイプ
ライン処理の基本とする。Eステージ(35)では1段の
ストアバッファがあるほか、高機能命令の一部は命令実
行自体をパイプライン化するため、実際には5段以上の
パイプライン処理効果がある。
各ステージは他のステージとは独立に動作し、理論上は
5つのステージが完全に独立動作する。各ステージは1
回の処理を最小2クロックで行うことができる。従って
理想的には2クロックごとに次々とパイプライン処理が
進行する。
本発明のデータ処理装置にはメモリ−メモリ間演算や、
メモリ間接アドレッシングなど、基本パイプライン処理
1回だけでは処理が行えない命令があるが、本発明のデ
ータ処理装置はこれらの処理に対してもなるべく均衡し
たパイプライン処理が行えるように設計されている。複
数のメモリオペランドをもつ命令に対してはメモリオペ
ランドの数をもとに、デコード段階で複数のパイプライ
ン処理単位(ステップコード)に分解してパイプライン
処理を行うのである。パイプライン処理単位の分解方法
に関しては特願昭61−236456で詳しく述べられている。
IFステージ(31)からDステージ(32)に渡される情報
は命令コードそのものである。Dステージ(32)からA
ステージに渡される情報は命令で指定された演算に関す
るもの(Dコード(41)と呼ぶ)と、オペランドのアド
レス計算に関係するもの(Aコード(42)と呼ぶ)との
2つある。Aステージ(33)からFステージに渡される
情報はマイクロプログラムルーチンのエントリ番地やマ
イクロプログラムへのパラメータなどを含むRコード
(43)と、オペランドのアドレスとアクセス方法指示情
報などを含むFコードとの2つである。Fステージ(3
4)から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命令の即値指定などがある。
第32図で本発明のデータ処理装置の基本的命令フォーマ
ットの特徴を示す。
(3.1.2)ステップコードへの命令の分解 本発明のデータ処理装置では上記の命令フォーマットの
特徴を生かしたパイプライン処理を行う。Dステージ
(32)では(2バイトの命令基本部+0〜4バイトのア
ドレッシング拡張部)、(多段間接モード指定部+アド
レッシング拡張部)または命令固有の拡張部を1つのデ
コード単位として処理する。各回のデコード結果をステ
ップコードと呼び、Aステージ(33)以降ではこのステ
ップコードをパイプライン処理の単位としている。ステ
ップコードの数は命令ごとに固有であり、多段間接モー
ド指定を行わないとき、1つの命令は最小1個、最大3
個のステップコードに分かれる。多段間接モード指定が
あればそれだけステップコードが増える。ただし、これ
は後で述べるようにデコード段階のみである。
(3.1.3)プログラムカウンタの管理 本発明のデータ処理装置のパイプライン上に存在するス
テップコードはすべて別命令に対するものである可能性
があり、プログラムカウンタの値はステップコードごと
に管理する。すべてのステップコードはそのステップコ
ードのもとになった命令のプログラムカウンタ値をも
つ。ステップコードに付属してパイプラインの各ステー
ジを流れるプログラムカウンタ値はステッププログラム
カウンタ(SPC)と呼ぶ、SPCはパイプラインステージを
次々と受け渡されていく。
(3.2)各パイプラインステージの処理 各パイプラインステージの入出力ステップコードには第
3図に示したように便宜上名前が付けられている。また
ステップコードはオペコードに関する処理を行い、マイ
クロROMのエントリ番地やEステージ(35)に対するパ
ラメータなどになる系列とEステージ(35)のマイクロ
命令に対するオペランドになる系列の2系列がある。
(3.2.1)命令フェッチステージ 命令フェッチステージ(IFステージ(31))は命令をメ
モリやブランチバッファからフェッチし、命令キューに
入力して、Dステージ(32)に対して命令コードを出力
する。命令キューの入力は整置された4バイト単位で行
う。メモリから命令をフェッチするときは整置された4
バイトにつき最小2クロックを要する。ブランチバッフ
ァがヒットした時は整置された4バイトにつき1クロッ
クでフェッチ可能である。命令キューの出力単位は2バ
イトごとに可変であり、2クロックの間に最大6バイト
まで出力できる。また分岐の直後には命令キューをバイ
パスして命令基本部2バイトを直接命令デコーダに転送
することもできる。
ブランチバッファへの命令の登録やクリアなどの制御、
プリフェッチ先命令アドレスの管理や命令キューの制御
もIFステージ(31)で行う。
IFステージ(31)で検出するEITには命令をメモリから
フェッチするときのバスアクセス例外や、メモリ保護違
反などによるアドレス変換例外がある。
(3.2.2)命令デコードステージ 命令デコードステージ(Dステージ(32))はIFステー
ジ(31)から入力された命令コードをデコードする。デ
コードは命令デコード部(52)のFHWデコーダ、NFHWデ
コーダ、アドレッシングモードデコーダを使用して、2
クロック単位に1度行ない、1回のデコード処理で、0
〜6バイトの命令コードを消費する(RET命令の復帰先
アドレスを含むステップコードの出力処理などでは命令
コードを消費しない)。1回デコードでAステージ(3
3)に対してアドレス計算情報であるAコード(42)で
ある約35ビットの制御コードと最大32ビットアドレス修
飾情報と、オペコードの中間デコード結果であるDコー
ド(41)である約50ビットの制御コードと8ビットのリ
テラル情報と、を出力する。
Dステージ(32)では各命令のPC計算部(53)の制御、
分岐予測処理、プリブランチ命令に対するプリブランチ
処理、命令キューからの命令コード出力処理も行う。
Dステージ(32)で検出するEITには予約命令例外、プ
リブランチ時の奇数アドレスジャンプトラップがある。
また、IFステージ(31)より転送されてきた各種EITは
ステップコード内にエンコードする処理をしてAステー
ジ(33)に転送する。
Dステージ(32)において、多段間接アドレッシングモ
ードを処理する場合は、2バイトの命令基本部を一つの
デコード単位として処理し、Dコード(41)、Aコード
(42)を生成すると共に、(多段間接モード指定部+ア
ドレッシング拡張部)を1つのデコード単位として処理
し、Dコード(41)、Aコード(42)を生成する。
(3.2.3)オペランドアドレス計算ステージ オペランドアドレス計算ステージ(Aステージ(33))
は処理が大きく2つに分かれる。1つは命令デコード部
(52)のデコーダ2を使用して、オペコードの後段デコ
ードを行う処理で、他方はオペランドアドレス計算部
(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)に伝える。
Aステージ(33)において、多段間接モードの処理を行
う場合、まず、Dステージ(32)で命令基本部によって
生成されたDコード(41)を基にしてデコード処理を行
い、Rコード(43)を生成してFコード(44)が生成す
るまでデコーダ2がRコードを保持しておく。また、D
ステージ(32)で命令基本部によって生成されたAコー
ド(42)を基にしてオペランドアドレス計算部(54)が
アドレス計算の中間結果を保持する。次にDステージ
(32)で(多段間接モード指定部+アドレッシング拡張
部)によって生成されたDコード(41)にはDステージ
(32)でのEIT情報しか意味を持っていないので、デコ
ード2によるデコード処理は行わず、DステージでEIT
が発生したか否かを検知する。また、Dステージ(32)
で(多段間接モード指定部+アドレッシング拡張部)に
よって生成されたAコード(42)及び先ほどのアドレス
計算中間結果を基にして、アドレス計算及びメモリ間接
参照がある場合にはそれを行ってアドレス計算が終了す
るまで次の(多段間接モード指定部+アドレッシング拡
張部)によって生成されたDコード(41)、Aコード
(42)を入力して処理を繰り返す。そして、アドレス計
算が終了し、Fコード(44)が生成されるとデコーダ2
が保持しておいたRコード(43)と共にFステージ(3
4)に出力される。
(3.2.4)マイクロROMアクセスステージ オペランドフェッチステージ(Fステージ(34)も処理
が大きく2つに分かれる。1つはマイクロROMのアクセ
ス処理であり、特にRステージ(36)と呼ぶ。他方はオ
ペランドプリフェッチ処理であり、特にOFステージ(3
7)と呼ぶ。Rステージ(36)とOFステージ(37)は必
ずしも同時に動作するわけではなく、メモリアクセス権
が獲得できるかどうかなどに依存して、独立に動作す
る。
Rステージ(36)の処理であるマイクロROMアクセス処
理はRコードに対して次のEステージでの実行に使用す
る実行制御コードであるEコードを作り出すためのマイ
クロROMアクセスとマイクロ命令デコード処理である。
1つのRコードに対する処理が2つ以上のマイクロプロ
グラムステップに分解される場合、マイクロROMはEス
テージ(35)で使用され、次のRコード(43)はマイク
ロROMアクセス待ちになる。Rコード(43)に対するマ
イクロROMアクセスが行われるのはその前のEステージ
(35)での最後のマイクロ命令実行の時である。本発明
のデータ処理装置ではほとんどの基本命令は1マイクロ
プログラムステップ行われるため実際にはRコード(4
3)に対するマイクロROMアクセスが次々と行われること
が多い。
Rステージ(36)で新たに検出するEITはない。Rコー
ド(36)が命令処理再実行型のEITを示しているときは
そのEIT処理に対するマイクロプログラムが実行される
のでRステージ(36)はそのRコード(43)に従ったマ
イクロ命令をフェッチする。Rコード(43)が奇数アド
レスジャンプトラップを示しているときRステージ(3
6)はそれをEコード(45)に伝える。これはプリブラ
ンチに対するもので、Eステージ(35)ではそのEコー
ド(45)で分岐が生じなければそのプリブランチを有効
として奇数アドレスジャンプトラップを発生する。
(3.2.5)オペランドフェッチステージ オペランドフェッチステージ(OFステージ(37))はF
ステージ(34)で行う上記の2つの処理のうちオペラン
ドプリフェッチ処理を行う。
オペランドプリフェッチはFコード(44)を入力とし、
フェッチしたオペランドとそのアドレスをSコード(4
6)として出力する。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ステージ(31)〜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ステージ以前のIFステージ(31)〜Fステージ
(34)の間で検出されるRコード(43)やSコード(4
6)に反映されているEITは必ずEIT処理されるとは限ら
ない。IFステージ(31)〜Fステージ(34)の間で検出
したが、先行の命令がEステージ(35)でジャンプ命令
が実行されたなどの原因でEステージ(35)まで到達し
なかったEITはすべてキャンセルされる。そのEITを起こ
した命令はそもそも実行されなかったことになる。
外部割込や遅延割込は命令の切れ目でEステージ(35)
で直接受け付けられ、マイクロプログラムにより必要な
処理が実行される。その他の各種EITも処理はマイクロ
プログラムにより行われる。
(3.3)各パイプラインステージの状態制御 パイプラインの各ステージは入力ラッチと出力ラッチを
持ち、他のステージとは独立に動作することを基本とす
る。各ステージは1つ前に行った処理が終わり、その処
理結果を出力ラッチから次のステージの入力ラッチに転
送し、自分のステージの入力ラッチに次の処理に必要な
入力信号がすべてそろえば次の処理を開始する。
つまり、各ステージは、1つ前段のステージから出力さ
れてくる次の処理に対する入力信号がすべて有効とな
り、今の処理結果を後段のステージの入力ラッチに転送
して出力ラッチが空になると次の処理を開始する。
各ステージが動作を開始する1つ前のクロックタイミン
グで入力信号がすべてそろっている必要がある。入力信
号がそろっていないと、そのステージは待ち状態(入力
待ち)になる。出力ラッチから次のステージの入力ラッ
チへの転送を行うときは次のステージの入力ラッチが空
き状態になっている必要があり、次のステージの入力ラ
ッチが空きでない場合もパイプラインステージは待ち状
態(出力待ち)になる。必要なメモリアクセス権が獲得
できなかったり、処理しているメモリアクセスにウエイ
トが挿入されたり、その他のパイプラインコンフリクト
が生じると、各ステージの処理自体が遅延する。
(4)多段間接アドレッシングの詳細説明 メモリ相対間接アドレッシングモードの一つである多段
間接アドレッシングモードには、(1.4.2)に述べたよ
うにレジスタベース多段間接モード、PCベース多段間接
モード、絶対ベース多段間接モードがある。ここでは第
33図に示すようにアドレッシングモードをレジスタベー
ス多段間接モードとする二段の多段間接アドレッシング
モードの一般形1オペランド命令の場合を説明する。第
1の命令ヒットパターン(101)は、第13図に示すG1−f
ormat命令であり、その基本アドレッシングモード指定
フィールドを第26図で示すレジスタベース多段間接モー
ドに指定する。Rnはベースレジスタを示す。次に第2の
命令ビットパターン(102)は第29図で示す多段間接モ
ードのフォーマットである拡張部の2バイトである。こ
の拡張部の内容は、多段間接モード継続、メモリ間接参
照有り、スケーリングを4としてRx1をインデクスとし
て使用することを示す。そして、32ビットのdispxの値
をディスプレースメント値とする。第2の命令ビットパ
ターン(102)のあとに第3の命令ビットパターン(10
3)の16ビット、及び第4の命令ビットパターン(104)
の16ビットを一つの値とした32ビットのディスプレース
メントが付く。その次の第5の命令ビットパターン(10
5)は、先ほどと同様な多段間接モードのフォーマット
である拡張部である。この拡張部はアドレス計算終了、
メモリ間接参照なし、スケーリングを2としてRx2をイ
ンデクスとして使用、d4の値を4倍し符号拡張した値を
ディスプレースメント値とすることを示す。
結局、オペランドのアドレス計算としては、 mem〔Rn+dispx+Rx1*4〕+d4*4+Rx2*2==> address of operand が行われる。なお、mem〔A〕はA番地のメモリ内容を
示す。
(5)アドレッシングモード処理部の機能ブロック構成 第1図は、本発明のデータ処理装置のアドレッシングモ
ード処理部の詳細な構成図を示す。
命令フェッチ部(51)にある命令キュー(1)は、命令
をプリフェッチし、命令デコード部(52)に命令コード
を出力する。
命令デコード部(52)にあるデコーダ1(2)は、FHW
デコーダ、NFHWデコーダ、アドレッシングモードデコー
ダ、Dコード、Aコード生成回路とその制御回路からな
り、一段目のデコード処理が行われる。一段目のデコー
ド結果のうち、オペランドアドレス計算に関係する情報
がオペランドアドレス計算部(54)に、二段目のデコー
ド処理に関係する情報がデコード2(3)に、PC計算に
関係する情報がPC計算部(53)に、それぞれ出力され
る。
命令デコード部(52)にあるデコーダ2(3)は、デコ
ーダ1(2)の出力を入力として二段目のデコードす
る。二段目のデコード結果のうち、データ演算部(56)
での演算に関する情報がマイクロROM部(56)に、オペ
ランドフェッチに関係する情報がオペランドアドレス計
算部(54)に、それぞれ出力される。
Dステージプログラムカウンタ(4)は、Dステージ
(32)で用いられるプログラムカウンタであり、PC計算
部(53)で計算された値がPOバス(19)を通って入力さ
れる。
Aステージプログラムカウンタ(5)は、Aステージ
(33)で用いられるプログラムカウンタであり、Dステ
ージプログラムカウンタ(4)、POバス(19)、及びA
バス(20)に接続されている。
間接参照データレジスタ(6)は、メモリ間接参照時に
メモリから間接参照データを、データ入出力回路(59)
からDDバス(17)を通って格納する。また、この間接参
照データレジスタ(6)には整置回路が含まれている。
オペランドアドレス計算部(54)のインデクスレジスタ
(7)は、アドレス計算時にAバス(20)からインデク
ス値を入力し、デコーダ1(2)から出力されるスケー
ル値を用いてスケーリングを行う。
オペランドアドレス計算部(54)のディスプレースメン
トレジスタ(8)はDISPバス(18)に接続されており、
即値、絶対、およびレジスタ相対アドレッシング等のデ
ィスプレースメントを必要とするアドレス計算時にディ
スプレースメント値が入力される。
オペランドアドレス計算部(54)のベースレジスタ
(9)は、Aバス(20)に接続されており、レジスタ間
接、レジスタ相対アドレッシングモード時のレジスタの
内容が入力される。また、ベースレジスタ(9)は、DI
SPバス(18)、AOバス(22)と接続されている。多段間
接アドレッシングモードでメモリ間接参照ありの時のメ
モリからのデータの格納を行ったり、メモリ間接参照な
しでアドレス計算継続の場合の計算結果の格納も行う。
オペランドアドレス計算部(54)のアドレス加算器(1
0)は、インデクスレジスタ(7)、ディスプレースメ
ントレジスタ(8)、およびベースレジスタ(9)の値
を加算する。
オペランドアドレス計算部(54)のアドレス加算出力ラ
ッチ(11)はアドレス加算器(10)の加算結果を出力す
る出力ラッチであり、AOバス(22)に接続されている。
Aステージ間接参照アドレスレジスタ(12)は、AOバス
(22)に接続されており、間接参照時にアドレスをセッ
トし、そのアドレスがAAバス(23)を通ってアドレス出
力回路(58)に入り間接参照が行われる。
オペランドフェッチアドレスレジスタ(13)は、AOバス
(22)に接続されており、オペランドのプリフェッチを
行うアドレス、および即値が入る。オペランドのプリフ
ェッチを行う場合には、AAバス(23)を介してフェッチ
アドレスをアドレス出力回路(58)に出力する。
SP演算部(14)は、各ステージ毎のスタックポインタの
値を計算する。
SP演算部(14)のAステージスタックポインタ(15)
は、Aステージ(33)でプッシュ、ポップに関するアド
レス計算を必要とするときにこの値が使用される。Aス
テージスタックポインタ(15)はAバス(20)に接続さ
れている。
汎用レジスタファイル(16)は、S1バス(21)、および
Aバス(20)に接続されている。
DDバス(17)は、データ入出力回路(59)を通して外部
データバスに接続され、命令キュー(1)や間接参照デ
ータレジスタ(6)と接続されている。
DISPバス(18)は、Dステージ(32)で使用され命令キ
ュー(1)から出力された変位や即値をオペランドアド
レス計算部(54)に転送するバスである。DISPバス(1
8)はメモリ間接アドレッシングモード時、メモリから
フェッチしてきた値をオペランドアドレス計算部(54)
に転送するために使用される。
POバス(19)は、各ステージ間のプログラムカウンタと
接続されている。
Aバス(20)は、Aステージ(33)で使用され汎用レジ
スタファイル(16)のレジスタの値をオペランドアドレ
ス計算部(54)に転送するバスである。
S1バス(21)は、SP演算部(14)、汎用レジスタファイ
ル(16)、データ演算部(56)に接続されている。
AOバス(22)は、Aステージ(33)で使用されアドレス
加算出力ラッチ(11)の値をベースレジスタ(9)、A
ステージ間接参照アドレスレジスタ(12)、およびオペ
ランドフェッチアドレスレジスタ(13)に転送するバス
である。
AAバス(23)は、Aステージ間接参照アドレスレジスタ
(12)やオペランドフェッチアドレスレジスタ(13)の
示すアドレス値を出力してアドレス出力回路(58)に転
送するために使用される。Aステージ(33)でのメモリ
間接参照アドレスのフェッチやFステージ(34)でのオ
ペランドのフェッチを行うときに使用する。
(6)多段間接アドレッシングを行う命令に対するパイ
プライン動作の詳細説明 第4図にDステージ(32)の動作のフローチャートを示
す。
第5図にAステージ(33)の動作のフローチャートを示
す。
今、命令キュー(1)に第1から第5までの命令ビット
パターン((101)〜(105))が存在し、それ以前の命
令のDステージ(32)でのデコード処理が終わり、その
処理結果であるDコード(41)、Aコード(42)をAス
テージ(33)に転送すると、Dステージ(32)は、IFス
テージ(31)から命令コードを取り込み、処理を開始す
る。Dステージ(32)での動作は、デコーダ1(2)が
命令キュー(1)から第一の命令ビットパターン(10
1)である16ビットを取り込み、デコード処理を開始す
る。その結果、1組のDコード(41)とAコード(42)
のステップコード(以下、第1DAステップコードとす
る。)が生成される。このとき、Aステージ(33)が以
前の命令のステップコードの処理が終わり、その処理結
果をFステージ(34)に転送し、次のステップコード待
ちの状態であるとする。Aステージ(33)は、Dステー
ジ(32)から第1DAステップコードを取り込み、処理を
開始する。このときのAステージ(33)の動作は、以下
のようになる。
デコーダ2(3)は第1DAステップコードのDコード(4
1)を用いて処理を開始する。それと共にオペランドア
ドレス計算部(54)は第1DAステップコードのAコード
(42)を用いてRnで指定されるレジスタの内容が汎用レ
ジスタファイル(16)からAバス(20)を通って、ベー
スレジスタ(9)に取り込まれる。このときディスプレ
ースメントレジスタ(8)及びインデクスレジスタ
(7)はクリアされる。ベースレジスタ(9)、ディス
プレースメントレジスタ(8)、及びインデクスレジス
タ(7)のレジスタ値がアドレス加算器(10)により加
算され、その加算結果はアドレス加算出力ラッチ(11)
にラッチされAOバス(22)を通って、ベースレジスタ
(9)に取り込まれる。第1DAステップコードの内容に
おいてアドレッシングモードが多段間接モードである
が、もし多段間接モードでなければ、Aステージ(33)
でのデコー2(3)によるデコード処理、及びオペラン
ドアドレス計算部(54)によるアドレス計算を終えると
一組のFコード(43)、Rコード(44)のステップコー
ドが生成される。しかし、アドレッシングモードが多段
間接モードの場合、Fコード(43)、Rコード(44)は
生成されず、Aステージ(33)で必要な値を保持する。
実際にはデコーダ2の出力ラッチ(3)に値を保持す
る。そして、次のステップコードが取り込まれるのを待
つ。
さて、Dステージ(32)では第1DAステップコードを転
送すると、第33図の第2の命令ビットパターン(102)
である16ビットをIFステージ(31)から取り込み、処理
を開始する。このときのDステージ(32)での動作は、
デコーダ1(2)が命令キュー(1)から第二の命令ビ
ットパターン(102)である16ビットを取り込みデコー
ド処理を開始する。デコードの結果、第33図の第3及び
第4の命令ビットパターン((103)、(104))である
32ビットのディスプレースメント値をも取り込み、第2
の1組のDコード(41)、Aコード(42)(以下、第2D
Aステップコードとする。)を生成する。
そして、Aステージ(33)ではDステージ(32)から第
2DAステップコードを取り込み、処理を開始する。この
ときのAステージ(33)の動作は、以下のようになる。
デコーダ2(3)は第2DAステップコードのDコード(4
1)を用いて処理を開始する。このときデコード処理は
行わずDコード(41)中のEIT情報だけを検知する。そ
れと共にオペランドアドレス計算部(54)は第1DAステ
ップコードのAコード(42)を用いて、Rx1で指定され
るレジスタの内容が汎用レジスタファイル(16)からA
バス(20)を通ってインデクスレジスタ(7)に取り込
まれ、第2DAステップコードに含まれるスケール値=10
により4倍される。また、32ビットのディスプレースメ
ント値は、ディスプレースメントレジスタ(8)に取り
込まれる。これら三つのレジスタ、つまり、インデクス
レジスタ(7)、ディスプレースメントレジスタ
(8)、及びベースレジスタ(9)のレジスタ値がアド
レス加算器(10)により加算される。このとき、ベース
レジスタ(9)には一つ前の演算結果(この場合ベース
レジスタ(9)の値)が保持されている。これらの加算
結果はアドレス加算出力ラッチ(11)にラッチされ、AO
バス(22)を通って、Aステージ間接参照アドレスレジ
スタ(12)に格納されると共に、そこからAAバス(23)
を通りアドレス出力回路(58)を経てメモリ間接参照に
いく。
第2DAステップコードを転送した後のDステージ(32)
は、第5の命令ビットパターンである16ビットをIFステ
ージ(31)から取り込み、処理を開始する。このときの
Dステージ(32)の動作は、デコーダ1(2)でデコー
ド処理を開始し、ディスプレースメントはd4の値を4倍
にし32ビット符号拡張され、第3の1組のDコード(4
1)、Aコード(42)(以下、第3DAステップコードとす
る。)が生成される。
Aステージ(33)では、メモリ間接参照を行った結果の
間接参照データがデータ入出力回路(59)を経てDDバス
(17)を介して間接参照データレジスタ(6)に入る。
そして、第3DAステップコードを取り込み、第3DAステッ
プコードのDコード(41)を用いて処理を開始する。こ
のときデコード処理は行わずDコード(41)中のEIT情
報だけを検知する。それと同時に、第3DAステップコー
ドのAコード(42)を用いてRx2で指定されるレジスタ
の内容が汎用レジスタファイル(16)からAバス(20)
を通ってインデクスレジスタ(7)に取り込まれ、第3D
Aステップコードに含まれるスケール値=01により2倍
にされる。また、32ビットの符号拡張されたデイスプレ
ースメント値は、ディスプレースメントレジスタ(8)
に取り込まれる。間接参照データレジスタ(6)の値
は、DISPバス(18)を経由し、ベースレジスタ(9)に
取り込まる。これら三つのレジスタ、つまりインデクス
レジスタ(7)、ディスプレースメントレジスタ
(8)、及びベースレジスタ(9)の値がアドレス加算
器(8)により加算され、この加算結果はアドレス加算
出力ラッチ(11)にラッチされる。このステップコード
によりアドレス計算終了でAステージでの処理が終わ
り、デコーダ2(3)の出力ラッチの値とアドレス加算
出力ラッチ(11)の値が一組のRコード(43)、Fコー
ド(44)のステップコードとして、Fステージ(34)に
転送される。このときFコード(44)中に含まれるオペ
ランドフェッチアドレスは、AOバス(22)を通ってオペ
ランドフェッチアドレスレジスタ(13)に取り込まれ、
アドレス出力回路(58)を介してオペランドフェッチを
開始することになる。
また、一般形1オペランド命令の基本アドレッシングモ
ードがPCベース多段間接モードである場合では、ベース
アドレスの指定は、レジスタベース多段間接モードの場
合の汎用レジスタがプログラムカウンタの値となり、A
ステージプログラムカウンタ(5)の値がAバス(20)
を通って、ベースレジスタ(9)に取り込まる。以下の
処理はレジスタベース多段間接モードの場合と同様であ
る。一般形1オペランド命令の基本アドレッシングモー
ドが絶対ベース多段間接モードの場合では、ベースアド
レスは0番地であり、ベースレジスタ(9)はクリアさ
れ、以下の処理は同様である。
本実施例では一般形1オペランド命令の場合を示したが
一般形2オペランド命令の場合でも同様の処理となる。
このように、多段間接アドレッシングモードを使用した
命令の場合、Dステージ(32)では(命令基本部+アド
レッシングモード指定部)、(多段間接モード指定部+
アドレッシング拡張部)をそれぞれ1つのデコード単位
として処理し、1組のDコード(41)、Aコード(42)
のステップコードを生成する。ここでの説明の例の場合
は、三組のステップコードとなり、(多段間接モード指
定部+アドレッシング拡張部)のステップコードには、
命令実行に関する情報は含まれないためFステージ(3
4)以降にこのステップコードを流す必要はない。よっ
て、Dステージ(32)で生成された(多段間接モード指
定部+アドレッシング拡張部)のステップコードは、A
ステージ(33)で(命令基本部+アドレッシングモード
指定部)のステップコードに吸収される。そして、それ
以後一つのステップコードとして、Fステージ(34)以
降処理される。
第35図にここでの説明の例のパイプライン上のステップ
コードの流れの図を示す。時間3におけるAステージ
(33)の動作は、第2、3、4の命令ビットパターン
((102)、(103)、(104))によって生成されたス
テップコードでアドレス計算を行っていることを示す。
時間4におけるAステージ(33)の動作は、第2、3、
4の命令ビットパターン((102)、(103)、(10
4))によって生成されたステップコードでメモリ間接
参照を行っていることを示す。時間6におけるFステー
ジ(34)の処理は、第1の命令のビットパターン(10
1)のステップコードに第2、3、4の命令ビットパタ
ーン((102)、(103)、(104))及び第5の命令ビ
ットパターン(105)によって生成されたステップコー
ドをAステージ(33)で吸収し、その結果、生成したス
テップコードをFステージ(34)で処理していることを
示す。
(7)4バイト以上ある命令で命令ビットパターンの最
初の2バイトにオペランドのアドレスに対する情報のな
い命令の詳細説明 第34図で示す命令ビットパターンの処理について説明す
る。本発明のデータ処理装置で処理される第34図で示さ
れる命令は、以下のものがある。
アドレッシングモードで示される32ビット固定のデステ
ィネーションを1ビット左にシフトし、X−flagの内容
をデスティネーションのLSBに詰め、MSBからあふれたビ
ットをX−flagに入れる命令(SHXL命令)、アドレッシ
ングモードで示される32ビット固定のデスティネーショ
ンを1ビット右にシフトし、X−flagの内容をデスティ
ネーションのMSBに詰め、LSBからあふれたビットをX−
flagに入れる命令(SHXR命令)がある。
また、第34図の例で第9の命令ビットパターンの後に命
令固有の拡張部のある場合がある。この命令は、スタッ
クフレームの形成、高級言語用サブルーチンジャンプ命
令(ENTER命令)や高級言語用サブルーチンリターンと
パラメータ解放命令(EXITD命令)である。
第34図で示す第6の命令ビットパターン(106)には命
令基本部のみから成り立っている。第7の命令ビットパ
ターン(107)は(命令基本部+アドレッシングモード
指定部)から成り立っている。アドレッシングモードの
拡張部のビットパターンを第8の命令ビットパターン
(108)とする。基本アドレッシングモード指定部を第2
0図に示すレジスタ相対間接モードに指定する。
今、命令キュー(1)に第6から第9までの命令ビット
パターン((106)〜(109))が存在し、それ以前の命
令のDステージ(32)でのデコード処理が終わり、その
処理結果であるDコード(41)、Aコード(42)をAス
テージ(32)に転送すると、Dステージ(32)は、IFス
テージ(31)から命令コードを取り込み、処理を開始す
る。Dステージ(32)での動作は、デコーダ1(2)が
命令キュー(1)から第6の命令ビットパターン(10
1)である16ビットを取り込み、デコード処理を開始す
る。その結果、1組のDコード(41)とAコード(42)
のステップコード(以下、第6DAステップコードとす
る。)が生成される。このとき、Aステージ(33)が以
前の命令のステップコードの処理が終わり、その処理結
果をFステージ(34)に転送し、次のステップコード待
ちの状態であるとする。Aステージ(33)は、Dステー
ジ(32)から第6DAステップコードを取り込み、処理を
開始する。このときのAステージ(33)の動作は、以下
のようになる。デコーダ2(3)は第6DAステップコー
ドのDコード(41)を用いて処理を開始する。第6DAス
テップコードのAコード(42)は意味を持たないので、
オペランドアドレス計算部(54)は何もしない。デコー
ドの結果、このステップコードではRコード(43)、F
コード(44)は生成されず、次のステップコードが取り
込まれるのを待つ。
さて、Dステージ(32)では第6DAステップコードを転
送すると、第34図の第7の命令ビットパターン(107)
である16ビットをIFステージ(31)から取り込み、処理
を開始する。このときのDステージ(32)での動作は、
デコーダ1(2)が命令キュー(1)から第7の命令ビ
ットパターン(107)である16ビットを取り込みデコー
ド処理を開始する。デコードの結果、第34図の第8の命
令ビットパターン(108)及び第9の命令ビットパター
ン(109)である32ビットのディスプレースメント値を
も取り込み、第7の1組のDコード(41)、Aコード
(42)(以下、第7DAステップコードとする。)を生成
する。
そして、Aステージ(33)ではDステージ(32)から第
7DAステップコードを取り込み、処理を開始する。この
ときのAステージ(33)の動作は、以下のようになる。
デコーダ2(3)は第7DAステップコードのDコード(4
1)を用いて処理を開始する。それと共にオペランドア
ドレス計算部(54)は第7DAステップコードのAコード
(42)を用いて、デコード処理を開始する。そのときの
オペランドアドレス計算部(54)の動作は、Rmで指定さ
れるレジスタの内容が汎用レジスタファイル(16)から
Aバス(20)を通ってベースレジスタ(9)に取り込ま
れ、32ビットのディスプレースメント値は、ディスプレ
ースメントレジスタ(8)に取り込まれる。このときイ
ンデクスレジスタ(7)はクリアされる。これら三つの
レジスタ、つまり、インデクスレジスタ(7)、ディス
プレースメントレジスタ(8)、及びベースレジスタ
(9)のレジスタ値がアドレス加算器(10)により加算
され、その加算結果はアドレス加算出力ラッチ(11)に
ラッチされる。これでAステージでの処理が終わり、一
組のRコード(43)、Fコード(44)を生成してFステ
ージ(34)に転送される。
このように、4バイト以上ある命令で命令ビットパター
ンの最初の2バイトにオペランドのアドレスに対する情
報のない命令は、Dステージ(32)において二つ以上の
ステップコードに分離される。しかし、Aステージ(3
3)では、オペランドのアドレスに対する情報のない命
令ビットパターンのステップコードは後続のその命令の
ステップコードに吸収される。そして、一つのステップ
コードとしてFステージ(34)以降処理が可能となる。
第36図にここでの説明の例のパイプライン上のステップ
コードの流れの図を示す。時間4におけるFステージ
(34)の処理は、第6の命令のビットパターン(106)
のステップコードが第7、8、9の命令ビットパターン
((107)、(108)、(109))によって生成されたス
テップコードにAステージ(33)で吸収され、その結
果、生成したステップコードをFステージ(34)で処理
していることを示す。
〔発明の効果〕
以上のように、本発明の16ビット単位で命令のデコード
を行うデータ処理装置において、上記命令で、多段間接
アドレッシングモードによって一つの命令から生成され
る複数のステップコードを単一のステップコードにまと
める、つまり命令の実行に関する情報を含まないコード
をデコードした結果生成したステップコードは、その次
段で処理している命令の実行に関する情報を含むコード
をデコードした結果生成したステップコードに吸収され
る。また、4バイト以上ある命令で命令ビットパターン
の最初の2バイトにオペランドのアドレスに対する情報
のない命令のステップコードは、その命令の次のステッ
プコードに吸収される。したがって、それ以降のステー
ジで無駄なステップコードが流れることがないので、各
ステージの処理の負荷が均衡し、処理速度が向上する効
果がある。
多段間接アドレッシングモードのようにベース値の計算
が終了してからインデクス値と加算してアドレス値を求
めており、このようなアドレス計算が続くような場合で
も本発明のデータ処理装置の構成をとれば限られたハー
ドウェアで任意回のメモリ間接参照及びアドレス計算が
可能となる。
【図面の簡単な説明】
第1図は、本発明の一実施例によるデータ処理装置の構
成図、第2図は本発明のデータ処理装置の全体ブロック
図、第3図は本発明のデータ処理装置のパイプラインス
テージ概要図、第4図はDステージ(32)における通常
命令動作のフローチャート、第5図はAステージ(33)
における通常命令動作のフローチャート、第6図は、従
来のアドレッシングモードを含んだ命令を示す概略図、
第7図は従来のデータ処理装置のパイプラインステージ
概要図、第8図は本発明のデータ処理装置のメモリ上で
の命令の並び方を示す図、第9図から第17図は本発明の
データ処理装置の命令フォーマットの図、第18図から第
31図は本発明のデータ処理装置のアドレッシングモード
の説明図、第32図は本発明のデータ処理装置の命令フォ
ーマットの特徴を示す図、第33図、第34図は、本発明の
データ処理装置の一実施例の命令ビットパターンの図、
第35図、第36図は各実施例のパイプライン上のステップ
コードの流れ図である。 (1)は命令キュー、(2)はデコーダ1、(3)はデ
コーダ2、(4)はDステージプログラムカウンタ、
(5)はAステージプログラムカウンタ、(6)は間接
参照データレジスタ、(7)はインデクスレジスタ、
(8)はディスプレースメントレジスタ、(9)はベー
スレジスタ、(10)はアドレス加算器、(11)はアドレ
ス加算出力ラッチ、(12)は間接参照アドレスレジス
タ、(13)はオペランドフェッチアドレスレジスタ、
(14)はスタックポインタ演算部、(15)はAステージ
スタックポインタ、(16)は汎用レジスタファイル、
(17)はDDバス、(18)はDISPバス、(19)はPOバス、
(20)はAバス、(21)はS1バス、(22)はAOバス、
(23)はAAバスである。(51)は命令フェッチ部、(5
2)は命令デコード部、(53)はPC計算部、(54)はオ
ペランドアドレス計算部、(55)はマイクロROM部、(5
6)はデータ演算部、(57)は外部バスインターフェイ
ス部、(58)はアドレス出力回路、(59)はデータ入出
力回路である。(31)はIFステージ、(32)はDステー
ジ、(33)はAステージ、(34)はFステージ、(36)
はRステージ、(37)はOFステージ、(35)はEステー
ジ、(41)はDコード、(42)はAコード、(43)はR
コード、(44)はFコード、(45)はEコード、(46)
はSコードである。(80)はオペレーションコード、
(81)、(82)、及び(83)はそれぞれオペランド指定
子、(84)はレジスタモードフィールド、(85)はレジ
スタアドレスフィールド、(84A)、(85A)はアドレス
モードをインデクスモードにしたときのレジスタモード
フィールド、レジスタアドレスフィールドの内容であ
る。(86)は命令プリフェッチ回路、(87)は命令バッ
ファデコード回路、(88)はアドレス計算及びオペラン
ドフェッチ回路、(89)は演算実行回路である。(10
1)は第1の命令ビットパターン、(102)は第2の命令
ビットパターン、(103)は第3の命令ビットパター
ン、(104)は第4の命令ビットパターン、(105)は第
5の命令ビットパターン、(106)は第6の命令ビット
パターン、(107)は第7の命令ビットパターン、(10
8)は第8の命令ビットパターン、(109)は第9の命令
ビットパターンである。 なお、図中、同一符号は、同一または相当部分を示す。

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】複数の単位デコード処理に分けて、1つの
    命令のデコードを行い、各単位デコード処理ごとに単位
    デコード結果を出力する機能を持つ命令デコーダ回路
    と、 上記単位デコード結果に従いオペランドアドレスを計算
    して、オペランドのアドレスを出力する機能を持つアド
    レス計算回路と、 上記オペランドアドレスに従いオペランドをフェッチし
    て演算を実行する演算回路とを備え、 上記命令デコーダ回路は第1のパイプラインステージで
    動作し、上記アドレス計算回路は第2のパイプラインス
    テージで動作するパイプライン制御のデータ処理装置で
    あって、 オペランドに対する演算内容を指定する演算情報指定部
    と、オペランドのアドレスに関する情報を示す第1のア
    ドレッシングモード指定部と、上記第1のアドレッシン
    グモード指定部で示されるオペランドのアドレスに関す
    る情報を拡張する情報を示す第2のアドレッシングモー
    ド指定部とを持つ命令を処理するに際し、 上記第1のパイプラインステージにおいて、上記命令デ
    コーダ回路は、上記演算情報指定部と上記第1のアドレ
    ッシングモード指定部とを第1の単位デコード処理とし
    てデコードして第1の単位デコード結果を出力するとと
    もに、上記第2のアドレッシングモード指定部を第2の
    単位デコード処理としてデコードして第2の単位デコー
    ド結果を出力し、 上記第2のパイプラインステージにおいて、上記アドレ
    ス計算回路は、上記第1の単位デコード結果と上記第2
    の単位デコード結果に従いオペランドアドレスに関する
    処理を行ってオペランドアドレスを生成することを特徴
    とするデータ処理装置。
  2. 【請求項2】複数の単位デコード処理に分けて、1つの
    命令のデコードを行い、各単位デコード処理ごとに単位
    デコード結果を出力する機能を持つ命令デコーダ回路
    と、 上記単位デコード結果に従いオペランドアドレスを計算
    して、オペランドのアドレスを出力する機能を持つアド
    レス計算回路と、 上記オペランドアドレスに従いオペランドをフェッチし
    当該フェッチしたオペランドを出力する機能を持つオペ
    ランドフェッチ回路と、 上記オペランドフェッチ回路から出力されるオペランド
    をもとに演算を実行する演算回路とを備え、 上記命令デコーダ回路は第1のパイプラインステージで
    動作し、上記アドレス計算回路は第2のパイプラインス
    テージで動作し、上記オペランドフェッチ回路は第3の
    パイプラインステージで動作するパイプライン制御のデ
    ータ処理装置であって、 オペランドに対する演算内容を指定する演算情報指定部
    と、オペランドのアドレスに関する情報を示す第1のア
    ドレッシングモード指定部と、上記第1のアドレッシン
    グモード指定部で示されるオペランドのアドレスに関す
    る情報を拡張する情報を示す第2のアドレッシングモー
    ド指定部とを持つ命令を処理するに際し、 上記第1のパイプラインステージにおいて、上記命令デ
    コーダ回路は、上記演算情報指定部と、上記第1のアド
    レッシングモード指定部とを第1の単位デコード処理と
    してデコードして第1の単位デコード結果を出力すると
    ともに、上記第2のアドレッシングモード指定部を第2
    の単位デコード処理としてデコードして第2の単位デコ
    ード結果を出力し、 上記第2のパイプラインステージにおいて、上記アドレ
    ス計算回路は、上記第1の単位デコード結果に従いオペ
    ランドアドレスに関する処理を行い、上記第1の単位デ
    コード結果に従うオペランドアドレスに関する処理であ
    るオペランドアドレス計算中間結果を保持するととも
    に、上記第2の単位デコード結果に従い、かつ上記オペ
    ランドアドレス計算中間結果を使用して、オペランドア
    ドレスに関する処理を行い、オペランドアドレスを生成
    し、 上記第2のパイプラインステージで生成された上記オペ
    ランドアドレスが上記第3のパイプラインステージで動
    作する上記オペランドフェッチ回路に与えられることを
    特徴とするデータ処理装置。
  3. 【請求項3】複数の単位デコード処理に分けて、1つの
    命令のデコードを行い、各単位デコード処理ごとに単位
    デコード結果を出力する機能を持つ命令デコーダ回路
    と、 1つの命令の複数のオペランドに対して、上記単位デコ
    ード結果に従いオペランドアドレスを計算して、上記複
    数のオペランドの複数のアドレスを複数回に分けて出力
    する機能を持つアドレス計算回路と、 上記オペランドアドレスに従いオペランドをフェッチし
    当該フェッチしたオペランドを出力する機能を持つオペ
    ランドフェッチ回路と、 上記オペランドフェッチ回路から出力されるオペランド
    をもとに演算を実行する演算回路とを備え、 上記命令デコーダ回路は第1のパイプラインステージで
    動作し、上記アドレス計算回路は第2のパイプラインス
    テージで動作し、上記オペランドフェッチ回路は第3の
    パイプラインステージで動作するパイプライン制御のデ
    ータ処理装置であって、 オペランドに対する演算内容の一部を指定する第1の演
    算情報指定部と、第1のオペランドのアドレスに関する
    情報を示す第1のアドレッシングモード指定部と、上記
    第1のアドレッシングモード指定部で示されるオペラン
    ドのアドレスに関する情報を拡張する情報を示す第2の
    アドレッシングモード指定部と、オペランドに対する上
    記演算内容の残りを指定する第2の演算情報指定部と、
    第2のオペランドのアドレスに関する情報を示す第3の
    アドレッシングモード指定部と、上記第3のアドレッシ
    ングモード指定部で示されるオペランドのアドレスに関
    する情報を拡張する情報を示す第4のアドレッシングモ
    ード指定部とを持つ命令を処理するに際し、 上記第1のパイプラインステージにおいて、上記命令デ
    コーダ回路は、上記第1の演算情報指定部と上記第1の
    アドレッシングモード指定部とを第1の単位デコード処
    理としてデコードして第1の単位デコード結果を出力
    し、また上記第2のアドレッシングモード指定部を第2
    の単位デコード処理としてデコードして第2の単位デコ
    ード結果を出力し、また上記第2の演算情報指定部と上
    記第3のアドレッシングモード指定部とを第3の単位デ
    コード処理としてデコードして第3の単位デコード結果
    を出力し、また上記第4のアドレッシングモード指定部
    を第4の単位デコード処理としてデコードして第4の単
    位デコード結果を出力し、 上記第2のパイプラインステージにおいて、上記アドレ
    ス計算回路は、上記第1の単位デコード結果に従いオペ
    ランドアドレスに関する処理を行い、上記第1の単位デ
    コード結果に従うオペランドアドレスに関する処理であ
    る第1のオペランドアドレス計算中間結果を保持すると
    ともに、上記第2の単位デコード結果に従い、かつ上記
    第1のオペランドアドレス計算中間結果を使用して、オ
    ペランドアドレスに関する処理を行い、第1のオペラン
    ドアドレスを生成し、さらに、上記第3の単位デコード
    結果に従いオペランドアドレスに関する処理を行い、上
    記第3の単位デコード結果に従うオペランドアドレスに
    関する処理である第2のオペランドアドレス計算中間結
    果を保持するとともに、上記第4の単位デコード結果に
    従い、かつ上記第2のオペランドアドレス計算中間結果
    を使用して、オペランドアドレスに関する処理を行い、
    第2のオペランドアドレスを生成し、 上記第2のパイプラインステージで生成された上記第1
    および第2のオペランドアドレスが上記第3のパイプラ
    インステージで動作する上記オペランドフェッチ回路に
    与えられることを特徴とするデータ処理装置。
  4. 【請求項4】複数の単位デコード処理に分けて、1つの
    命令のデコードを行い、各単位デコード処理ごとに単位
    デコード結果を出力する機能を持つ命令デコーダ回路
    と、 1つの命令の複数のオペランドに対して、上記単位デコ
    ード結果に従いオペランドアドレスを計算して、各オペ
    ランドのアドレスを出力する機能を持つアドレス計算回
    路と、 複数の上記単位デコード結果の一部または全部を1つに
    統合してオペランド演算情報を出力する機能を持つ制御
    回路と、 上記オペランドアドレスに従いオペランドをフェッチし
    て上記オペランド演算情報に従い演算を実行する演算回
    路とを備え、 上記命令デコーダ回路は第1のパイプラインステージで
    動作し、上記アドレス計算回路と上記制御回路とは第2
    のパイプラインステージで動作するパイプライン制御の
    データ処理装置であって、 オペランドに対する演算内容の一部を指定する第1の演
    算情報指定部と、当該オペランドに対する上記演算内容
    の残りを指定する第2の演算情報指定部と、当該オペラ
    ンドのアドレスに関する情報を示すアドレッシングモー
    ド指定部とを持つ命令を処理するに際し、 上記第1のパイプラインステージにおいて、上記命令デ
    コーダ回路は、上記第1の演算情報指定部を第1の単位
    デコード処理としてデコードして第1の単位デコード結
    果を出力するとともに、上記第2の演算情報指定部と上
    記アドレッシングモード指定部とを第2の単位デコード
    処理としてデコードして第2の単位デコード結果を出力
    し、 上記第2のパイプラインステージにおいて、上記制御回
    路は、上記第1の単位デコード結果と上記第2の単位デ
    コード結果に含まれるオペランドの演算に関する情報を
    統合したオペランド演算情報を生成し、 上記第2のパイプラインステージにおいて、上記アドレ
    ス計算回路は、上記第2の単位デコード結果に従いオペ
    ランドアドレスに関する処理を行ってオペランドアドレ
    スを生成し、 上記第2のパイプラインステージで生成された上記オペ
    ランド演算情報と上記オペランドアドレスとが上記演算
    回路に与えられることを特徴とするデータ処理装置。
  5. 【請求項5】複数の単位デコード処理に分けて、1つの
    命令のデコードを行い、各単位デコード処理ごとに単位
    デコード結果を出力する機能を持つ命令デコーダ回路
    と、 1つの命令の複数のオペランドに対して、上記単位デコ
    ード結果に従いオペランドアドレスを計算して、各オペ
    ランドのアドレスを出力する機能を持つアドレス計算回
    路と、 上記オペランドアドレスに従いオペランドをフェッチし
    て演算を実行する演算回路とを備え、 上記命令デコーダ回路は第1のパイプラインステージで
    動作し、上記アドレス計算回路は第2のパイプラインス
    テージで動作するパイプライン制御のデータ処理装置で
    あって、 オペランドに対する演算内容を指定する演算情報指定部
    と、基本アドレッシングモード指定部と、上記基本アド
    レッシングモード指定部の拡張部である1つまたは複数
    の拡張アドレッシングモード指定部とを持ち、かつ上記
    基本アドレッシングモード指定部と上記拡張アドレッシ
    ングモード指定部には、1つのオペランドのアドレス計
    算内容とアドレス計算が終了するか否かを表す情報とが
    含まれる命令を処理するに際し、 上記第1のパイプラインステージにおいて、上記命令デ
    コーダ回路は、上記演算情報指定部と上記基本アドレッ
    シングモード指定部とを1つの単位デコード処理として
    デコードして第1の種類の単位デコード結果を出力し、
    またアドレス計算が終了しない情報を含んでいる場合の
    1つまたは複数の上記拡張アドレッシングモード指定部
    をそれぞれ1つの単位デコード処理としてデコードし
    て、アドレス計算が終了しない情報を含んでいる上記拡
    張アドレッシングモード指定部と同数の第2の種類の単
    位デコード結果を出力し、またアドレス計算が終了する
    情報を含んでいる上記拡張アドレッシングモード指定部
    を1つの単位デコード処理としてデコードして第3の種
    類の単位デコード結果を出力し、 上記第2のパイプラインステージにおいて、上記アドレ
    ス計算回路は、上記第1の種類の単位デコード結果と、
    上記第2の種類の単位デコード結果がある場合は上記第
    2の種類の単位デコード結果と、上記第3の種類の単位
    デコード結果とを順次入力して、オペランドアドレスに
    関する処理を行い、オペランドアドレスを生成すること
    を特徴とするデータ処理装置。
  6. 【請求項6】複数の単位デコード処理に分けて、1つの
    命令のデコードを行い、各単位デコード処理ごとに単位
    デコード結果を出力する機能を持つ命令デコーダ回路
    と、 1つの命令の複数のオペランドに対して、上記単位デコ
    ード結果に従いオペランドアドレスを計算して、各オペ
    ランドのアドレスを出力する機能を持つアドレス計算回
    路と、 上記オペランドアドレスに従いオペランドをフェッチし
    当該フェッチしたオペランドを出力する機能を持つオペ
    ランドフェッチ回路と、 上記オペランドフェッチ回路から出力されるオペランド
    をもとに演算を実行する演算回路とを備え、 上記命令デコーダ回路は第1のパイプラインステージで
    動作し、上記アドレス計算回路は第2のパイプラインス
    テージで動作し、上記オペランドフェッチ回路は第3の
    パイプラインステージで動作するパイプライン制御のデ
    ータ処理装置であって、 オペランドに対する演算内容を指定する演算情報指定部
    と、基本アドレッシングモード指定部と、上記基本アド
    レッシングモード指定部の拡張部である1つまたは複数
    の拡張アドレッシングモード指定部とを持ち、かつ上記
    基本アドレッシングモード指定部と上記拡張アドレッシ
    ングモード指定部には、1つのオペランドのアドレス計
    算内容とアドレス計算が終了するか否かを表す情報とが
    含まれる命令を処理するに際し、 上記第1のパイプラインステージにおいて、上記命令デ
    コーダ回路は、上記演算情報指定部と上記基本アドレッ
    シングモード指定部とを1つの単位デコード処理として
    デコードして第1の種類の単位デコード結果を出力し、
    またアドレス計算が終了しない情報を含んでいる場合の
    1つまたは複数の上記拡張アドレッシングモード指定部
    をそれぞれ1つの単位デコード処理としてデコードし
    て、アドレス計算が終了しない情報を含んでいる上記拡
    張アドレッシングモード指定部と同数の第2の種類の単
    位デコード結果を出力し、またアドレス計算が終了する
    情報を含んでいる上記拡張アドレッシングモード指定部
    を1つの単位デコード処理としてデコードして第3の種
    類の単位デコード結果を出力し、 上記第1の種類の単位デコード結果にはアドレス計算が
    終了するか否かを表す情報が含まれ、上記第2の種類の
    単位デコード結果にはアドレス計算が終了しない情報が
    含まれ、上記第3の種類の単位デコード結果にはアドレ
    ス計算が終了する情報が含まれ、 上記第2のパイプラインステージにおいて、上記アドレ
    ス計算回路は、上記第1の種類の単位デコード結果に従
    い、オペランドアドレスに関する処理を行ってオペラン
    ドアドレス計算処理結果を生成し、このとき上記第1の
    種類の単位デコード結果がアドレス計算が終了しない情
    報を含む場合には、1つの処理単位は生成することな
    く、上記オペランドアドレス計算処理結果をラッチに保
    持して、上記第2の種類の単位デコード結果、もしくは
    上記第3の種類の単位デコード結果に従い、上記ラッチ
    の内容を使用して、オペランドアドレスに関する処理を
    行ってオペランドアドレス計算処理結果を生成し、また
    アドレス計算が終了する情報を含む場合には、上記オペ
    ランドアドレス計算処理結果をオペランドアドレスと
    し、当該オペランドアドレスを一つの処理単位として、
    これを上記第3のパイプラインステージで動作する上記
    オペランドフェッチ回路へ出力することを特徴とするデ
    ータ処理装置。
JP63066267A 1988-03-18 1988-03-18 データ処理装置 Expired - Fee Related JPH0766324B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP63066267A JPH0766324B2 (ja) 1988-03-18 1988-03-18 データ処理装置
US07/313,650 US5129068A (en) 1988-03-18 1989-02-21 Operand address calculation in a pipeline processor by decomposing the operand specifier into sequential step codes
US07/314,727 US5091853A (en) 1988-03-18 1989-02-22 Chained addressing mode pipelined processor which merges separately decoded parts of a multiple operation instruction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63066267A JPH0766324B2 (ja) 1988-03-18 1988-03-18 データ処理装置

Publications (2)

Publication Number Publication Date
JPH01237837A JPH01237837A (ja) 1989-09-22
JPH0766324B2 true JPH0766324B2 (ja) 1995-07-19

Family

ID=13310899

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63066267A Expired - Fee Related JPH0766324B2 (ja) 1988-03-18 1988-03-18 データ処理装置

Country Status (2)

Country Link
US (2) US5129068A (ja)
JP (1) JPH0766324B2 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0769806B2 (ja) * 1988-10-14 1995-07-31 三菱電機株式会社 データ処理装置
KR930005768B1 (ko) * 1989-01-17 1993-06-24 후지쓰 가부시끼가이샤 마이크로 프로세서
KR0163179B1 (ko) * 1989-03-31 1999-01-15 미다 가쓰시게 데이타 프로세서
JP2680899B2 (ja) * 1989-08-28 1997-11-19 日本電気株式会社 情報処理装置及びその制御方法
JPH03185530A (ja) * 1989-12-14 1991-08-13 Mitsubishi Electric Corp データ処理装置
EP0463973A3 (en) * 1990-06-29 1993-12-01 Digital Equipment Corp Branch prediction in high performance processor
US5249280A (en) * 1990-07-05 1993-09-28 Motorola, Inc. Microcomputer having a memory bank switching apparatus for accessing a selected memory bank in an external memory
JP2682232B2 (ja) * 1990-11-21 1997-11-26 松下電器産業株式会社 浮動小数点演算処理装置
JP2646855B2 (ja) * 1991-01-21 1997-08-27 三菱電機株式会社 データ処理装置
JPH04263322A (ja) * 1991-02-18 1992-09-18 Mitsubishi Electric Corp マイクロコンピュータ
US5283874A (en) * 1991-10-21 1994-02-01 Intel Corporation Cross coupling mechanisms for simultaneously completing consecutive pipeline instructions even if they begin to process at the same microprocessor of the issue fee
JP2861560B2 (ja) * 1991-12-25 1999-02-24 松下電器産業株式会社 データ処理装置
JPH0713757A (ja) * 1993-06-28 1995-01-17 Mitsubishi Electric Corp データ処理装置
US5913050A (en) * 1993-12-29 1999-06-15 Intel Corporation Method and apparatus for providing address-size backward compatibility in a processor using segmented memory
US6021498A (en) * 1994-04-06 2000-02-01 Advanced Micro Devices, Inc. Power management unit including a programmable index register for accessing configuration registers
US5781187A (en) * 1994-05-31 1998-07-14 Advanced Micro Devices, Inc. Interrupt transmission via specialized bus cycle within a symmetrical multiprocessing system
US5832533A (en) * 1995-01-04 1998-11-03 International Business Machines Corporation Method and system for addressing registers in a data processing unit in an indexed addressing mode
JPH08190481A (ja) 1995-01-06 1996-07-23 Ricoh Co Ltd 情報処理装置
US5893930A (en) * 1996-07-12 1999-04-13 International Business Machines Corporation Predictive translation of a data address utilizing sets of associative entries stored consecutively in a translation lookaside buffer
US6079002A (en) * 1997-09-23 2000-06-20 International Business Machines Corporation Dynamic expansion of execution pipeline stages
JP2000207205A (ja) * 1999-01-14 2000-07-28 Sony Corp 演算装置
US6889312B1 (en) * 2001-04-02 2005-05-03 Advanced Micro Devices, Inc. Selective zero extension based on operand size
US7383420B2 (en) * 2005-03-24 2008-06-03 Qualcomm Incorporated Processor and method of indirect register read and write operations
US9465613B2 (en) * 2011-12-19 2016-10-11 International Business Machines Corporation Instruction predication using unused datapath facilities
US10671391B2 (en) * 2014-02-25 2020-06-02 MIPS Tech, LLC Modeless instruction execution with 64/32-bit addressing
US10929132B1 (en) * 2019-09-23 2021-02-23 Intel Corporation Systems and methods for ISA support for indirect loads and stores for efficiently accessing compressed lists in graph applications

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3614741A (en) * 1970-03-23 1971-10-19 Digital Equipment Corp Data processing system with instruction addresses identifying one of a plurality of registers including the program counter
US3946366A (en) * 1973-01-26 1976-03-23 Sanders Associates, Inc. Addressing technique employing both direct and indirect register addressing
US3943495A (en) * 1973-12-26 1976-03-09 Xerox Corporation Microprocessor with immediate and indirect addressing
US3953833A (en) * 1974-08-21 1976-04-27 Technology Marketing Incorporated Microprogrammable computer having a dual function secondary storage element
DE2846495C2 (de) * 1977-10-25 1993-10-21 Digital Equipment Corp Zentraleinheit
US4206503A (en) * 1978-01-10 1980-06-03 Honeywell Information Systems Inc. Multiple length address formation in a microprogrammed data processing system
JPS5621240A (en) * 1979-07-27 1981-02-27 Hitachi Ltd Information processor
JPS5621242A (en) * 1979-07-28 1981-02-27 Fujitsu Ltd Pipeline control method for computer operation
JPS5717059A (en) * 1980-07-04 1982-01-28 Hitachi Ltd Processor for pipeline control data
JPS5725069A (en) * 1980-07-21 1982-02-09 Hitachi Ltd Vector data processing equipment
US4453212A (en) * 1981-07-13 1984-06-05 Burroughs Corporation Extended address generating apparatus and method
US4530050A (en) * 1981-08-26 1985-07-16 Hitachi, Ltd. Central processing unit for executing instructions of variable length having end information for operand specifiers
US4503492A (en) * 1981-09-11 1985-03-05 Data General Corp. Apparatus and methods for deriving addresses of data using painters whose values remain unchanged during an execution of a procedure
JPS58146969A (ja) * 1982-02-26 1983-09-01 Toshiba Corp インデツクス限定連続演算ベクトルプロセツサ
US4613935A (en) * 1983-02-02 1986-09-23 Couleur John F Method and apparatus for pipe line processing with a single arithmetic logic unit
JPS59174948A (ja) * 1983-03-25 1984-10-03 Toshiba Corp 情報処理装置
US4612613A (en) * 1983-05-16 1986-09-16 Data General Corporation Digital data bus system for connecting a controller and disk drives
WO1985000453A1 (en) * 1983-07-11 1985-01-31 Prime Computer, Inc. Data processing system
DE3478157D1 (en) * 1983-11-11 1989-06-15 Fujitsu Ltd Pipeline control system
US4837676A (en) * 1984-11-05 1989-06-06 Hughes Aircraft Company MIMD instruction flow computer architecture
US4890220A (en) * 1984-12-12 1989-12-26 Hitachi, Ltd. Vector processing apparatus for incrementing indices of vector operands of different length according to arithmetic operation results
JPS61160142A (ja) * 1984-12-29 1986-07-19 Hitachi Ltd デ−タ処理装置
JPH0789319B2 (ja) * 1985-04-22 1995-09-27 株式会社日立製作所 デ−タ処理装置における先行制御装置
JPS61245256A (ja) * 1985-04-23 1986-10-31 Mitsubishi Electric Corp 情報格納方式
DE3751503T2 (de) * 1986-03-26 1996-05-09 Hitachi Ltd Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen.
US4901316A (en) * 1986-05-27 1990-02-13 Nohmi Bosai Kogyo Co., Ltd. Disaster prevention monitoring and control facility
US4890218A (en) * 1986-07-02 1989-12-26 Raytheon Company Variable length instruction decoding apparatus having cross coupled first and second microengines
JPH07101385B2 (ja) * 1986-12-05 1995-11-01 株式会社東芝 情報処理装置
JPS63189942A (ja) * 1987-02-02 1988-08-05 Hitachi Ltd 情報処理装置
JPS63253433A (ja) * 1987-04-10 1988-10-20 Hitachi Ltd 演算処理装置
JPH0192851A (ja) * 1987-10-02 1989-04-12 Hitachi Ltd アドレス空間切替装置
JPH07120278B2 (ja) * 1988-07-04 1995-12-20 三菱電機株式会社 データ処理装置

Also Published As

Publication number Publication date
JPH01237837A (ja) 1989-09-22
US5091853A (en) 1992-02-25
US5129068A (en) 1992-07-07

Similar Documents

Publication Publication Date Title
JPH0766324B2 (ja) データ処理装置
US5901301A (en) Data processor and method of processing data
US6560697B2 (en) Data processor having repeat instruction processing using executed instruction number counter
JP2507638B2 (ja) デ―タ処理装置
JP3543181B2 (ja) データ処理装置
JPH0810428B2 (ja) データ処理装置
JPH07114469A (ja) データ処理装置
JP2004054585A (ja) データ処理装置
JP2581236B2 (ja) データ処理装置
US4945511A (en) Improved pipelined processor with two stage decoder for exchanging register values for similar operand instructions
JPH01214932A (ja) データ処理装置
JP3789583B2 (ja) データ処理装置
JPH07120284B2 (ja) データ処理装置
JP2556182B2 (ja) デ−タ処理装置
JPH0769806B2 (ja) データ処理装置
JP2504235B2 (ja) デ―タ処理装置
US5269008A (en) Method and apparatus for pre-processing the source of a pop instruction in a pipeline computer
JP2522048B2 (ja) マイクロプロセッサ及びそれを使用したデ―タ処理装置
JP2646855B2 (ja) データ処理装置
JPH0769801B2 (ja) データ処理装置
JPH0769805B2 (ja) データ処理装置
JPH0769804B2 (ja) データ処理装置
JPH0769802B2 (ja) データ処理装置
JPH0769808B2 (ja) データ処理装置
JP2696578B2 (ja) データ処理装置

Legal Events

Date Code Title Description
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees