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

データ処理装置

Info

Publication number
JPH03186928A
JPH03186928A JP1326254A JP32625489A JPH03186928A JP H03186928 A JPH03186928 A JP H03186928A JP 1326254 A JP1326254 A JP 1326254A JP 32625489 A JP32625489 A JP 32625489A JP H03186928 A JPH03186928 A JP H03186928A
Authority
JP
Japan
Prior art keywords
data
register
instruction
address
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP1326254A
Other languages
English (en)
Inventor
Toyohiko Yoshida
豊彦 吉田
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 JP1326254A priority Critical patent/JPH03186928A/ja
Priority to US07/627,066 priority patent/US5481734A/en
Publication of JPH03186928A publication Critical patent/JPH03186928A/ja
Priority to US08/548,766 priority patent/US5652900A/en
Priority to US08/887,681 priority patent/US6757809B1/en
Pending 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • 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/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • 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/30101Special purpose registers
    • 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
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3816Instruction alignment, e.g. cache line crossing
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明はデータ処理装置に関し、更に詳述すれば、クス
クスイノチング用のメモリを内蔵し、このメモリとの間
でレジスタ内容の退避と復帰を高速で行うことによりク
スクスイソチングに要する時間を短縮し得るデータ処理
装置に関する。
[従来の技術] 近年のデータ処理装置の動作速度の高速化に伴って主メ
モリの高速化が要求され、このためメモリシステムの実
現コストが増大するという問題が生している。この問題
を解決するための一手法として、データ処理装置と主メ
モリとの間に高速メモリであるキャッシュメモリを介在
させることによりデータ処理装置と主メモリとの速度差
を埋め合わせる技術が用いられている。
また、キャッシュメモリをデータ処理装置と同一の集積
回路内に実現することにより高速なキャッシュメモリを
実現する提案も、たとえば特開昭63−193230号
公報に詳細に開示されている。
しかし、キャッシュメモリを用いて平均的にメモリアク
セス時間を短くするのみにては、タスクスイッチング等
のような特に高速動作が必要とされる際にキャッシュミ
スが発生する可能性もあり、結果的にタスクスイッチン
グに要する時間の最大値を小さくすることはできない。
この問題を解決するために、タスクスイッチング時のコ
ンテキスト退避用のメモリとの間のデータ空間とは別に
定義しておき、そのコンテキスト退避用メモリ空間とし
て使用されるメモリを高速メモリで構成したり、あるい
はデータ処理装置と同し集積回路内に実現したりするこ
とにより、タスクスイッチングに要する時間を短縮する
提案もなされている。このような技術はたとえば、特開
昭64−91253号公報に詳細に開示されている。
[発明が解決しようとする課R] しかし、キャッシュメモリとして高速メモリを用いても
、キャッシュミスが発生した場合には高速なメモリアク
セスが実現できない。また、コンテキスト退避用に通常
のメモリ空間とは別のメモリ空間を定義しても、そのメ
モリ空間を構成するメモリが他のメモリよりも高速動作
可能でなければタスクスイッチングに要する時間を短縮
することは出来ない。
このような問題は、コンテキストスイッチング命令によ
りレジスタの内容をメモリに退避したりあるいは逆に復
帰させたりする際に、1回の操作で1個のレジスタ内容
のみしか転送出来ないという理由に起因している。
特に、キャッシュメモリをデータ処理装置と同一の集積
回路上に内蔵する構成では、キャッシュメモリとレジス
タファイルとの間の転送経路は低コストで設置可能であ
るため、この経路のビット幅を広げてデータ転送能力の
向上を図る余地はある。
本発明はこのような事情に鑑みてなされたものであり、
レジスタとメモリとの間のデータ転送を1回の操作で2
個行うことにより、タスクスイッチングに要する時間の
短縮を図ったデータ処理装置の提供を目的とする。
[課題を解決するための手段] 本発明のデータ処理装置は、オペランドアクセス部ヘア
ドレスを出力するアドレスレジスタと、オペランドアク
セス部との間でデータを入出力する汎用レジスタの2倍
のバイト幅のデータレジスタとを備え、レジスタファイ
ルとデータレジスタ間には複数のバスからなり、命令実
行制御部の制御に従って2つのデータを同時に転送する
転送経路を有する。
[作用] 本発明のデータ処理装置では、2つ以上のレジスタにメ
モリからデータをロードする命令であるLDCTX命令
が実行された場合は命令実行制御部の制御に従って、オ
ペランドアクセス部から2つのレジスタにロードされる
べき2つのデータが連結されたデータがデータレジスタ
へ転送され、データレジスタの上位4バイトと下位4ハ
イドとが2つ転送経路をそれぞれ通して2つのレジスタ
へ同時に転送される。
また、2つ以上のレジスタからメモリにデータをストア
、する命令である5TCTX命令が実行された場合は命
令実行制御部の制御に従って、2つのレジスタの内容が
2つの転送経路をそれぞれ通してデータレジスタの上位
4バイトと下位4バイトとに同時に転送され、データレ
ジスタで2つのデータが連結されてこの連結されたデー
タがオペランドアクセス部へ1つのメモリアクセスとし
て転送[発明の実施例] 以下、本発明をその実施例を示す図面を参照して詳述す
る。
(1)「本発明のデータ処理装置を用いたシステムの構
成」 第6図に本発明のデータ処理装置を用いたシステムの構
成例を示す。
この構成例では、本発明のデータ処理装置100命令キ
ヤツシユ106.  データキャッシュ107及び10
8、  主メモリ1.09がアドレスバス101.  
データバス102.  命令バス103.  メモリア
ドレスバス104メモリデータバス105で結合されて
いる。
アドレスバス1.01は本発明のデータ処理装置100
から出力されるアドレスを命令キャッシュ106とデー
タキャッシュ107.108とに入力する。命令バス1
03は命令キャッシュ106から出力される命令コード
を本発明のデータ処理装置100に転送する。
データバス102は本発明のデータ処理装置100から
出力されるデータをデータキャッシュ107.108に
転送したり、データキャッシュ107.108から出力
されるデータを本発明のデータ処理装置100に転送し
たりする。メモリアドレスバス1.04は命令キャッシ
ュ1.06またはデータキャッシュ107.108から
出力されるアドレスを主メモリ109に転送する。メモ
リデータバス105は主メモリ109と命令キャッシュ
106またはデータキャッシュ1.07 108間での
命令またはデータを転送する。
命令キャッシュ106及びデータキャッシュ10710
Bがごスした場合はそれぞれのキャッシュ106または
107がメモリアドレスバス+04とメモリデータバス
105とのハス権を調停して主メモリ109をアクセス
する。
データキャッジ、107. JOBは本発明のデータ処
理装置]00の側では64ビツトのバスに結合するため
に2つのチップが協調して動作する。各データの64ビ
ツトそれぞれの内の上位32ビツトのデータをデータキ
ャッシュ107が、下位32ビツトのデータをデータキ
ャッシュ108が分担して受持つ。
以下、本発明のデータ処理装置100の命令体系及び処
理機構について最初に記述し、次に内蔵制御2 御空間メモリを使用したクスクスイノチ処理の手法につ
いて説明する。
(2)「本発明のデータ処理装置の命令フォーマント」
本発明のデータ処理装置の命令は16ビツト単位で可変
長となっており、奇数バイト長の命令はない。
本発明のデータ処理装置で番よ高頻度に使用される命令
を短いフォーマントとするため、特に工夫された命令フ
ォーマント体系を有する。例えば、2オペランド命令に
対して、基本的に“4バイト十拡張部”の構成を有して
総てのアドレッシングモードが利用可能な一般形フオー
マットと、高頻度の命令及びアドレッシングモードのみ
を使用可能な短縮形フォーマントとの2つのフォーマン
トを有する。
第9図から第13図に示す本発明のデータ処理装置の命
令フォーマット中に現われる記号の意味は以下の通りで
ある。
:オペレーションコードが入る部分 Ea:8ミニ8ビ、ト形のアドレッシングモトでオペラ
ンドが指定される部分 Sh:6ビノトの短縮形のアドレッシングモードでオペ
ランドが指定される部分 Rnニレジスタフアイル上のオペランドがレジスタ番号
で指定される部分 フォーマットは、第9図に示す如く、右側が1、SR側
で且つ高いアドレスになっている。
アドレスNとアドレスN+1との2バイトを見ないと命
令フォーマントが判別できないようになっているが、こ
れは、命令が必ず16ビソト(ハーフワード)単位でフ
ェッチ及びデコードされることを前提としているからで
ある。
本発明のデータ処理装置の命令ではいずれのフォーマッ
トの場合も、各オペランドのEaまたはshの拡張部は
必ずそのEaまたはshの基本部を含む16ビノト (
ハーフワード)の直後に置かれる。これは、命令により
暗黙に指定される即値データ及び命令の拡張部に優先す
る。従って、4バイト以上の命令では、Eaの拡張部に
より命令のオペレーションコードが分断される場合があ
る。
また、後述する如く、多段間接モードによりEaの拡張
部に更に拡張部が付加される場合にも、次の命令オペ二
J−ドよりもそちらの方が優先される。
例えば、第1ハーフワードに1Ealを含み、第2ハー
フワードにEa2を含み、第3ハーフワードまである6
バイト命令の場合を考える。Ealに多段間接モードを
使用したために通常の拡張部の他に多段間接モードの拡
張部も付加されるものとする。
この際、実際の命令ビットパターンは、命令の第1ハー
フワード(Ealの基本部を含む)、Ealの拡張部、
E、llの多段間接モード拡張部、命令の第2ハーフワ
ーF(Ea2の基本部を含む)、1Ea2の拡張部、命
令の第3ハーフワードの順となる。
(2,1)  r短縮形2オペランド命令」第1O図は
2オペランド命令の短縮形フォーマットを示す模式図で
ある。
このフォーマットには、ソースオペランド側がメモリと
なるL−formatとデスティネーションオペランド
側がメモリとなるS−formatとがある。
L−formatでは、shはソースオペランドの指定
フ5 イールド、Rnはデスティネーションオペランドのレジ
スタの指定フィールI”、RRはshのオペランドサイ
ズの指定をそれぞれ表す。
レジスタ」二に置かれたデスティネーンヨンオベランド
のサイズば32ビツトに固定されている。レジスタ側と
メモリ側とのサイズが異なり、ソース側のサイズが小さ
い場合に符号拡張が行なわれる。
S−formatではshはデスティ不−ンヨンオベラ
ンドの指定フィールド、Rnはソースオペラン]゛のI
/ジスタ指定フィールI”、RRはshのオペランドサ
イズの指定をそれぞれ表す。
レジスタ上に置かれたソースオペランドのサイズは32
ビツトに固定されている。レジスタ側とメモリ側とのサ
イズが異なり、ソース側のサイズが大きい場合に、溢れ
た部分の切捨てとオーバーフローチエツクとが行われる
(2,2)  r−船形1オペランド命令」第11図は
1オペランド命令の一般形フオーマット(Gl−for
mat)を示す模式図である。
■はオペランドサイズの指定フィールドである。
一部のGl14ormat命令では、Eaの拡張部以外
にも拡張部を有する。また、■を使用しない場合もある
(2,3)  r−船形2オペランド命令」第12図は
2オペランド命令の一般形フオーマノドを示す模式図で
ある。
このフォーマットに含まれるのは、8ビツトで指定され
る一般形アドレッシングモードのオペランドが最大2つ
存在する命令である。オペラン1の総数自体は3つ以上
になる場合がある。
EaMはデスティネーションオペランドの指定フィール
ド、聞はデスティネーションオペランドサイズの指定フ
ィールド、EaRはソースオペランド指定フィールド、
RRはソースオペランドサイズの指定フィールドをそれ
ぞれ示している。
一部のG−format命令では、EaM及びEaRの
拡張部以外にも拡張部を有する。
第13図はショートブランチ命令のフォーマットを示す
模式図である。
CCCCは分岐条件指定フィールド、disp:8はジ
ャンプ先との変位指定フィールドをそれぞれ示している
本発明のデータ処理装置では8ビットで変位を指定する
場合には、ビットパターンでの指定値を2倍して変位値
とする。
(2,4)  rアドレッシングモード」本発明のデー
タ処理装置の命令のアトレッシングモード指定方法には
、レジスタを含めて6ビノトで指定する短縮形と、8ビ
ットで指定する一般形とがある。
未定義のアドレッシングモードを指定した場合、あるい
は意味的に考えて明らかに不合理なアドレッシングモー
ドの組合わせが指定された場合には、未定義命令を実行
した場合と同しく予約命令例外が発生され、例外処理が
起動される。
これに該当するのは、デスティネーションが即値モード
である場合、アドレス計算を伴うべきアドレシングモー
ド指定フィールドで即値モードが使用された場合等であ
る。
第14図から第24図に示すフォーマットの模式図中で
使用されている記号の意味は以下の通りである。
Rn:  レジスタ指定 (Sh)・ 6ビツトの短縮形アドレッシングモードで
の指定方法 (Ea) :  8 ヒツトの一船形アドレッシングモ
ードでの指定方法 フォーマットを示す模式図中で点線で囲まれた部分は拡
張部を示す。
(2,4,1)  r基本アドレッシングモード」本発
明のデータ処理装置の命令では種々のアドレッシングモ
ードをサポートする。その内の本発明のデータ処理装置
でサポートする基本アドレ・7シングモードには、レジ
スタ直接モード、レジスタ間接モード、レジスタ相対間
接モード、即値モト、絶対モード、PC相対間接モード
、スタックポツプモード及びスタックブツシュモードが
ある。
レジスタ直接モードは、レジスタの内容をそのままオペ
ランドとする。フォーマントの模式図を第14図に示す
。図中、Rnは汎用レジスタまたはFIILIレジスク
の番号を示す。
レジスタ間接モー1゛は、汎用レジスタの内容をアドレ
スとするメモリの内容をオペランドとする。
フォーマットの模式図を第15図に示す。図中、Rnは
汎用レジスタの番号を示す。
レジスタ相対間接モードは、ディスプレースメント値が
16ビノトであるか32ビア t・であるかにより2種
類に分かれる。それぞれ、汎用レジスタの内容に16ビ
ソトまたは32ヒツトのディスプレースメント値を加え
た値をアドレスとするメモリの内容をオペランドとする
。フォーマットの模式図を第16図に示す。図中、Rn
は汎用レジスタの番号を示す。disp:16とdis
p:32とは、それぞれ、16ビノトのディスプレース
メント値、32ビツトのディスプレースメント値を示す
。ディスプレースメント値は符号付きとして扱われる。
即値モードは、命令コード中で指定されるピノドパクン
をそのまま2a数と見なしてオペランドとする。フォー
マットの模式図を第17図に示す。
図中、1nun  dataは即値を示し、そのサイズ
はオペランドサイズとして命令中で指定される。
絶対モードは、アドレス値が16ビツトで示されるか3
2ビツトで示されるかにより2種類に分かれる。それぞ
れ命令コード中で指定される16ビノトまたは32ビツ
トのピノドパクンをアドレスとしたメモリの内容をオペ
ランドとする。フォーマットの模式図を第18図に示す
。図中、abs:16とabS:32とはそれぞれ16
ビント、32ビツトのアドレス値を示す。abs:16
でアドレスが示される場合は指定されたアドレス値を3
2ビツトに符号拡張する。
PC相対間接モードは、ディスプレースメント値が16
ビ7)か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−IIlod
ify−vriteオペランドに対するスタックポツプ
モード指定である。
スタックブツシュモードは、SPの内容をオペランドサ
イズだけデータリメントした内容をアドレスとするメモ
リの内容をオペランドとする。スタノクブノンユモード
ではオペランドアクセス前0こSPがデータリメントさ
れる。例えば、32ビ、トデータを扱う場合は、オペラ
ンドアクセス前にSPが−4だけ更新される。8,16
.64ビン1〜のサイズのオペランドに対するスタック
ブツシュモードの指定も可能であり、それぞれSPが一
]、−2.−8だけ更新される。
フォーマットの模式図を第21図に示す。オペランドに
対してスタックブツシュモードが意味を持たないものに
対しては、予約命令例外が発生される予約命令例外とな
るのは具体的には、readオペランド及びread−
modify−writeオペランドに対すスタックブ
ツシュモード指定である。
(2,4,2)  r多段間接アドレッシングモード」
複雑なアドレッシングも、基本的には加算と間接参照の
組み合わせに分解することができる。従って、加算と間
接参照のオペレーションとをアドレッシングのブリ5テ
イブとして与えておき、そ3 れを任意に組合わセることか出来れば、いかに複雑なア
ドレッシングモートをも実現することが出来る。本発明
のデータ処理装置の命令の多段間接アドレッシングモー
1一番才このような考え方に立脚したアドレッシングモ
ードである。複雑なアドレッシングモードは、モジュー
ル間のデータ参照及びAT言語の処理系に特に有用であ
る。
多段間接アドレッシングモートを指定する際、基本アド
レッシングモード指定フィール1では、レシスタヘース
多段間接モード、pc<−ス多段間接モード及び絶対ヘ
ース多段間接モードの3種類の指定方法の内のいずれか
1つを指定する。
レジスタヘース多段間接モードは、汎用レジスタの値を
拡張する多段間接アドレッシングのヘス値とするアドレ
ッシングモートである。フォーマントの模式図を第22
図に示す。図中、Rnは汎用レジスタの番号を示す。
PCヘース多段間接モードは、プログラムカウンタの値
を拡張する多段間接アドレッシングのヘスイ直とするア
ドレッシングモードである。フォー4 マノ1−の模式図を第23図に示す。
絶対ヘース多段間接モードは、ゼロを拡張する多段間接
アドレッシングのヘース値とするアドレノソングモード
である。フォーマットの模式図を第24図に示す。
拡張される多段間接モード指定フィールドは、16ビノ
トを単位としており、これが任意回反復される。1段の
多段間接モードにより、デイスプレスメントの加算、イ
ンデータスレジスタのスケリング(XI、X2.X4.
X8)と加算、メモリの間接参照が行われる。多段間接
モードのツメ一マットの模式図を第25図に示す。図中
の各フィールドは以下に示す意味を有する。
E・0 :多段間接モード継続 E=1  ニアドレス計算終了 tip ==> address  of opera
ndl−0:メモリ間接参照なし imp + disp + Rx * 5cale 、
=> tmpI・1 :メモリ間接参照あり mem [tmp + disp + RX * 5c
ale ]==>  tmp M=O: <RX>をインデータスとして使用ト1 :
特殊なインデータス <Rx>= 0  インデータス値を加算しない(Rx
・0) <Rx>= 1  プログラムカウンタをインデータス
イ直として使用 (Rx=PC,) <Rx>= 2−   reservedD=O:多段
間接モード中の4ビットのフィールドd4のイ直を4倍
してデイスブレースメント値とし、これを加算する。d
4は符号付きとして扱い、オペランドのサ イズとは関係なく必ず4倍して使用す る D・1 :多段間接モードの拡張部で指定されたdis
px (16/32ビツト)をデイスプレスメント値と
し、これを加算する。
拡張部のサイズはd4フィールドで指定する d4=ooo1  dispxは16ビソトd4=oo
10  dispxは32ビットXX、インデータスの
スケール(scale = ]/2/4/8) プログラムカウンタに対してX2.X4.X8のスケー
リングを行なった場合には、その段の処理終了後の中間
値(tmp)として不定値が入る。
この多段間接モードによって得られる実効アドレスは予
測できない値となるが、例外は発生しない。プログラム
カウンタに対するスケーリングの指定は行なってはいけ
ない。
多段間接モードによる命令フォーマントのバリエーショ
ンを第26図及び第27図の模式図に示す。
第26図は多段間接モードが継続するか終了するかのバ
リエーションを示す。第27図はディスプレースメント
のサイズのバリエーションを示す。
任意段数の多段間接モードが利用できれば、コンパイラ
の中で段数による場合分けが不要になるので、コンパイ
ラの負担が軽減されるというメリットがある。多段の間
接参照の頻度が非常に少な7 いとしても、コンパイラとしては必ず正しいコドを発生
できなければならないからである。このため、フォーマ
、ト上では任意の段数を可能としている。
1′ 、  ′。
(以 下 傘□ 白) 8 (3)「メモリ空間とコンテキストスイッチ」本発明の
データ処理袋W100は、プログラム及びデータを格納
するメモリ空間である論理空間と各種のレジスタ及び一
部の命令により操作されるデータを格納するメモリ空間
である制御空間との2つのメモリ空間をサポートする。
本発明のデータ処理装置100の論理空間は、従来のデ
ータ処理装置においてプログラム、データを格納するメ
モリ空間と同しである。
本発明のデータ処理装置100の制御空間は、制御空間
操作命令によりデータを書込むこと及び読出すことが可
能であり、各種のレジスタがバイトアドレスでマツプさ
れているレジスタ領域とデータを格納するためのデータ
領域とがある。なお、制御空間のデータ領域はコンテキ
スト操作命令でもアクセス可能である。
本発明のデータ処理装置と類似した手法で論理区間と制
御空間とをサポートして制御空間にコンテキストを保持
する技術としては、たとえば特開昭64−91253号
公報に詳細に開示されている。
(3,1)  rコンテキストブロックフォーマット」
第30図は本発明のデータ処理装置のコンテキストスイ
ッチング命令である1、DCTX命令と5TCTX命令
とで操作されるコンテキストブロックのフォーマットを
示す模式図である。
コンテキストブロックは、浮動小数点レジスタ12、汎
用レジスタ10.11等にて構成されており、先頭アド
レスは第34図の模式図にその構成を示ずCTXBBレ
ジスタに保持される。
しDCTX命令と5TCTX命令とで操作されるコンテ
キストブロックのフォーマットは第31図の模式図にそ
の構成を示ずC3Wレジスタで指定される。
C3hレジスタのFRピッ目3とRGビット14とが共
に“1”である場合は、コンテキストブロックは第30
図に示すフォーマントになる。
FRピッ目3が“0”でRGビット14が“ドである場
合は、第30図に示されている浮動小数点レジスタ12
は1、DCTX命令と5TCTX命令とによる操作対象
とはならない。
PRビン目3とRGビット14とが共に0″である場台
は、第30図に示されている浮動小数点レジスタ12.
汎用レジスタ10.11がLDCTX命令と5TCTX
命令とによる操作対象とならない。この場合は、C3W
レジスクと4つのスタックポインタ5PI(SPO,5
PISP2.5P3)及びアドレス変換テーブルヘレス
を示ずII A T Bレジスタが操作対象となる。
UATBレジスクの構成は第35図の模式図に示されて
いる。
(3,2)  rコンテキスト操作命令」LDCTX命
令のビットパタンを第32図の模式図に示す。
1、DCTX命令(7) CTXBllDR7イー ル
ド16はロードすべきコンテキストブロックの先頭アド
レスを8ビツトの一船形アドレッシングモードで指定す
るフィールドである。
Xビット15はロードすべきコンテキストブロックが論
理空間又は制御空間のいずれにあるのかを示すビットで
ある。Xビット15が”0″である場合はコンテキスト
ブロックは論理空間にあり、Xビット15が01nであ
る場合はコンテキストブロックは制御空間にあることを
それぞれ示す。
LDCTX命令が実行された場合、CTXBADR74
ルドJ6にて指定されるアドレスがCTXBBレジスタ
にロードされ、Xピッl15で指定される空間内のCT
XBADR16フイールドで指定されるアドレスにあり
且つ先頭のC5W値で指定されるフォーマットの操作対
象コンテキストブロックが対応するレジスタにロードさ
れる。
5TCTX命令のビットパタンを第33図の模式図に示
す。
5TCTx命令のXビット17はコンテキス1−ブロッ
クをスI・アずべき空間を指定する。この5TCTX命
令のXビット17が“0′であればコンテキストブロッ
クを論理空間にストアすることが指定され、χビン目7
が“1″であればコンテキストブロックを制御空間にス
トアすることが指定される。ストアずべきメモリアドレ
スはCTXBBレジスタで指定される。
5TCTX命令が実行されると、Xビット17で指定さ
れる空間内のCTXBBレジスタで指定されるアト2 レスに03−レジスタで指定されるフォーマントのコン
テキストブロックに含まれるレジスタの内容が退避され
る。
(4)「本発明のデータ処理装置の機能ブロックの構成
」 第4図は本発明のデータ処理装置の一構成例を示すブロ
ック図である。
本発明のデータ処理装置の内部を機能的に大きく分ける
と、命令入力部110.  命令フェソヂ部IH命令デ
コード部112.  第1マイクロROM部113゜第
2マイクロROM部114.  オペランドアドレス計
算部115.  PC計算部116.  整数演算部1
17.浮動小数点演算部118.  アドレス入出力部
119.  オペランドアクセス部120.  データ
入出力部121に分かれる。
アドレス人出力部119をアドレスバス101に結合し
、データ入出力部121をデータバス102に結合し、
命令人力部110を命令バス103に結合することによ
り前述の第6図に示すシステム構成をとることができる
(4,1)  r命令人力部」 命令入力部110は外部の命令バス103から32ピン
トごとに命令コードを本発明にデータ処理装置へ入力す
る。
命令キャッシュ106のアクセス方法には、1つのアド
レスに対して32ビツトの命令コードをアクセスする標
準アクセスモードと1つのアドレスに対して4回連続で
32ビツトの命令コードをアクセスするクワッドアクセ
スモードとがあり、いずれの場合も命令入力部110は
入力した命令コードを命令フェッチ部111へ出力する
(4,2)  r命令フェッチ部」 命令フェッチ部111には命令アドレスのアドレス変換
機構、内蔵命令キャッシュ、命令用TLB、命令キュー
とそれらの制御部がある。
命令フェッチ部111は、次にフェッチすべき命令のp
c値を物理アドレスに変換し、内蔵命令キャッシュから
命令コードをフェッチし、命令デコード部112へ出力
する。内蔵命令キャッシュがミスした場合には、アドレ
ス人出力部119へ物理アドレスを出力して外部への命
令アクセスを要求し、命令入力部110を通じて入力さ
れた命令コードを内蔵命令キャッシュに登録する。
次にフエツチすべき命令のPC値は命令キューに入力す
べき命令のPC(Jとして専用のカウンタで計算される
。ジャンプが生した場合には、新たな命令のPC値がオ
ペランドアドレス計算部1.1.5.  IIG計算部
116あるいは整数演算部117から転送されてくる。
命令用TLBがξスした場合のページングによるアドレ
ス変換及び命令用TLB更新も命令)、z7チ部111
の内部の制御回路により行われる。
また、本発明のデータ処理装置がバスウォッチモードで
ある場合は、アドレス入出力部119を通じて入力され
た物理アドレスがヒントする内蔵命令キャンシュのエン
トリを無効化する。
(4,3)  r命令デコード部」 命令デコード部112では基本的に16ビツト(ハーフ
ワード)単位に命令コードをデコードする。
このブロックには第3ハーフワードに含まれる5 オベレーソヨンコートをテコ−1−スるFHWデコーダ
、第2及び第3ハーフワードに含まれるオペレションコ
ードをデコードするNFH−デコーダ、アドレッシング
モードをデコードするアドレッシングモードデコーダが
含まれる。
更に、FIIWデコーダ及びNFHWデコーダの出力を
更にデコードしてマイクロROMのエントリアドレスを
計算する第2デコーダ、条件分岐命令の分岐予測を行う
分岐予測機構1オペランドアドレス沼算の際のパイプラ
インコンフリクトをチエツクするアドレス計算コンフリ
クトヂエノク機構も含まれる。
命令デコード部112は命令フェッチ部111から出力
された命令コードをlクロックにつきO〜6ハイトデコ
ートする。デコート結果の内の、整数演算部117での
演算に関する情報が第1マイクロROM部113へ、浮
動小数点演算部118での演算に関する情報が第2マイ
クロROM部114へ、オペランドアドレス計算に関係
する情報がオペランドアドレス計算部115へ、pc計
算に関係する情報がpc計算部116へそれぞれ出力さ
れる。
(4,4)  r第1マイクロROM部」第1マイクロ
ROM部113には整数演算部117の制御を行う種々
のマイクロプログラムルーチンが格納されているマイク
ロROM、  マイクロシーケンサ、マイクロ命令デコ
ーダ等とが含まれる。
マイクロ命令はマイクロROMからlクロックに1度読
出される。マイクロシーケンサは命令実行に関するマイ
クロプログラム実行のためのシーケンス処flの他に、
例外5割込、トラップ(この3つ併せてBITと総称す
る)の受付けと各BITに対応するマイクロプログラム
のシーケンス処理も行う。
第1マイクロROM部113へは命令コードに依存しな
い外部割込みや整数演算実行結果によるマイクロプログ
ラムの分岐条件も入力される。
マイクロデコーダの出力は主に整数演算部117に対し
て出力されるが、ジャンプ命令の実行時及び例外受付時
には一部の情報を他の機能ブロックへも出力する。
(4,5)  r第2マイクロROM部」第2マイクロ
ROVI部114には浮動小数点演算部118の制御を
行う種々のマイクロプログラムルーチンが格納されてい
るマイクロROM、  マイクロシーケンサ、マイクロ
命令デコーダ等が含まれる。
マイクロ命令はマイクl−lROMから1クロツクに1
度読出される。マイクロシーケンサはマイクロプログラ
ムで示されるシーケンス処理の他に、浮動小数点演算に
関係する例外の処理も行い、マスクされていない浮動小
数点例外が検出された場合には第1マイクロROM部1
13へ例外処理を要求する。第2マイクロROM部11
4のマイクロシーケンサは第1マイクtel ROM部
113のマイクロシーケンサと並列に動作し、整数演算
部117と並列に浮動小数点演算部118を制御する。
第2マイクロROM部113には浮動小数点演算実行結
果によるフラッグ情報も入力される。
マイクロデコーダの出力は主に浮動小数点演算部118
に対して出力されるが、浮動小数点演算に関係する例外
の検出等の一部の情報は他の機能ブロックへも出力され
る。
(4,6)  rオペランドアドレス計算部」オペラン
ドアドレス計算部115は、命令デコド部11.2のア
ドレッシングモードデコーダ等から出力されたオペラン
ドアドレス計算に関係する情報によりハードワイヤード
制御される。このブロンクではメモリ間接アドレッシン
グのためのメモリアクセス以外のオペランドのアドレス
計算とジャンプ命令のジャンプ先アドレスの計算とが行
われる。
オペランドアドレスの計算結果は整数演算部117へ出
力される。オペランドアドレス計算終了段階での先行ジ
ャンプ処理では、ジャンプ先アドレスの計算結果が命令
フェッチ部111とpc計算部とへ出力される。
即値オペランドは整数演算部117及び浮動小数点演算
部118へ出力される。アドレス計算に必要な汎用レジ
スタ及びプログラムカウンクの値は整数演算部117又
はpc計算部116から入力される。
(4,7)  rpc計算部」 9 pc計算部116は命令デコート部112から出力され
るPC計算に関係する情報でハードワイヤードに制御さ
れ、命令のpc値を計算する。
本発明のデータ処理装置の命令は前述の如く、可変長命
令であり、命令をデコートしてみないとその命令の長さ
が判らない。PCC計算量116、命令デコード部11
2から出力される命令長をデコード中の命令のpc値に
加算することにより次の命令のpc値を計算する。
また、PCC計算量116は命令アドレスのブレイクポ
イントレジスタあるいはトリガポイントレジスタの値と
実行された命令のpc値との比較も行われる。
PCC計算量116計算結果は各命令のpc値として命
令のデコード結果とともに出力される。
命令デコードステージでの先行ブランチ処理では、命令
デコード部11から出力されるブランチ幅をpc値に加
算することによりブランチ先命令のアドレスが計算され
る。
また、PCC計算量116はサブルーチンへのジャ0 ンブ命令の実行時にスタックにブツシュしておいたサブ
ルーチンからの戻り先PC値のコピーを保持するPCス
タックが用意されている。PCC計算量116、サブル
ーチンからのリターン命令に対してはPCスタックから
戻光PCを読出ずことにより、プリリターン先命令のア
ドレスを生成する処理も行う。
(4,8)  r整数演算部」 整数演算部117は第1マイクロROM部113のマイ
クロROMに格納されたマイクロプログラムにより制御
され、各整数演算命令の機能を実現するために必要な演
算を整数演算部117の内部にある。レジスタファイル
と演算器とを使用して実行する。
レジスタファイルには汎用レジスタ及び作業用レジスタ
が含まれる。また、整数演算部117には整数演算の結
果により変化するフラッグ及び外部割込みのマスクレベ
ルを定めるビット等を含むプロセッサ状態語(PSW)
、  C5−レジスタ、 UATBレジスタ、  CT
XBBレジスタ、バッファメモリ制御レジスタ等も含ま
れる。
命令の演算対象となるオペランドがアドレスあるいは即
値である場合は、オペランドアドレス計算部115から
即値あるいは計算されたアドレスが入力される。また、
命令の演算対象となるオペランドがメモリ上のデータで
ある場合は、アドレス計算部115で計算されたアドレ
スがオペランドアクセス部120へ出力され、データバ
ッファあるいは外部からフェッチされたオペランドが整
数演算部117へ入力される。
演算に際して、データバッファ、外部のデータキャッシ
ュ107.108あるいは主メモリ109をリードする
必要がある場合は、整数演算部117はマイクロプログ
ラムの指示によりオペランドアクセス部120ヘアドレ
スを出力して目的のデータをフェッチする。
演算結果をデータバッファ、外部のデータキャッシュ1
07.108あるいは主メモリ109ヘスドアする必要
がある場合は、整数演算部117はマイクロプログラム
の指示によりオペランドアクセス部120ヘアドレスと
データとを出力する。この際、PCC計算量116らは
そのストア動作を行った命令のPC値がオペランドアク
セス部1.20へ出力される。
外部割込み1例外の処理等が行われて新たな命令アドレ
スを整数演算部117が得た場合は、整数演算部117
はこれを命令フェッチ部111 とpc計算部116と
へ出力する。
(4,9)  r浮動小数点演算部」 浮動小数点演算部118は第2マイクロROM部114
のマイクロROMに格納されたマイクロプログラムによ
り制御され、各浮動小数点演算命令の機能を実現するた
めに必要な演算を浮動小数点演算部118の内部にある
レジスタファイルと演算器とを使用して実行する。
また浮動小数点演算部118には浮動小数点演算の丸め
処理方法及び浮動小数点演算例外の検出許可をモード設
定する浮動小数点演算モード制御レジスタFMCと、浮
動小数点演算結果に対するフラグ及び浮動小数点演算例
外の発生状態を示すステータスビットからなる浮動小数
点演算状態語FSWとが備えられている。
命令の演算対象となるオペランドが即値である3 場合は、オペランドアドレス計算部115から浮動小数
点演算部118へ即値が入力される。また、命令の演算
対象となるオペランドがメモリ上のデータである場合は
、アl゛レス計算部115で計算されたアドレスがオペ
ランドアクセス部120へ出力され、データバッファま
たは外部からフェッチされたオペランドが浮動小数点演
算部118へ人力される。
オペランドを内蔵データキャッジ1.外部のデータキャ
ノソユ107.108あるいは主メモリ109ヘスドア
する必要がある場合は、浮動小数点演算部118ハマイ
クロプログラムの指示によりオペランドアクセス部12
0ヘデータを出力する。ストア動作では浮動小数点演算
部118と整数演算部117とが協調して動作し、オペ
ランドアクセス部120に対して整数演算部117から
オペランドのアドレスが出力され、浮動小数点演算部1
18からオペランドが出力される。この際、PC計算部
116からはそのストア動作を行った命令のPC値がオ
ペランドアクセス部120へ出力される。
4 (4,10) rオペランドアクセス部」オペランドア
クセス部120にはオペランドアドレスのアドレス変換
機構、データバッファ、データ用TLB、  ストアバ
フファ、オペランドブレイクポイントレジスタとそれら
の制御部とがある。
なお、データバッファはモード切換えにより内蔵デーク
キャソシュまたはPC(I!のトレースメモリとして動
作する。
データバッファを内蔵データキャッシュとして動作させ
る場合、データのロード動作に際しては、オペランドア
クセス部120はオペランドアドレス計算部115また
は整数演算部117から出力されたロードすべきデータ
の論理アドレスを物理アドレスに変換し、データバッフ
ァからデータをフェッチし、整数演算部117または浮
動点小数演算部118へ出力する。
データバッファがミスした場合には、オペランドアクセ
ス部120はアドレス入出力部119へ物理アドレスを
出力し、外部へのデータアクセスを要求し、データ入出
力部122を通して入力されたデ夕をデータバッファに
登録する。
データのストア動作に際しては、オペランドアクセス部
120は整数演算部117から出力されたストアずべき
データの論理アドレスを物理アドレスに変換し、整数演
算部117あるいは浮動小数点演算部1]8から出力さ
れたデータをデータバッファにストアすると共に、スト
アバッファを通してアドレス入出力部119へ物理アド
レスを出力し、データ入出力部122を通じてデータを
外部へ出力する。ストア動作でミスが発生した場合には
、データの更新は行われない。
ストアバッファではストアすべきデータとそのアドレス
1更にそのストア動作を行った命令のPC値とが1組に
して管理される。ストアバッファでのストア動作は先入
れ先出し制御方式で管理される。
データバッファをコンテキスト退避用メモリとして動作
させる場合、データバッファはアドレスがll’FFF
PEOOO〜H’FFFFFPFF (I+’は16進
数を表す〉の制御空間となる(ランダムアクセスメモリ
)RAMとして動作し、コンテキストスイッチング命令
又は制御空間操作命令でアクセスすることが可能である
データ用TL11がミスした場合のページングによるア
ドレス変換及びデータ用TLBの更新もオペランドアク
セス部120の内部の制御回路により行われる。また、
メモリアクセスアドレスがメモリにマツプされたI10
領域に入るか否かのチエツクも行われる。
また、データバッファを内蔵データキャッシュとして動
作させる際に、本発明のデータ処理装置がパスウォッチ
モードである場合には、オペランドアクセス部120は
アドレス人出力部1.19を通して入力された物理アド
レスがヒツトするデータバッファのエントリを無効化す
る。
(4,11,、) rアドレス入出力部」アドレス入出
力部119は命令フェッチ部111 とオペランドアク
セス部120とから出力されたアドレスを本発明のデー
タ処理装置100の外部−出力する。
7 アトレスの出力は本発明のデータ処理装置100で定め
られたハスプロI・コルに従って実行される。
ハスプロトコルの制御はアドレス入出力部+19内にあ
るり(部ハス制御回路で行われる。外部ハス制御回路で
はベーシ不在例外及びハスアクセス例外、外部割込めの
受イづけも行う。
また、本発明のデータ処理装置100以外の外部デバイ
スがハスマスクになっており、本発明のデータ処理装置
100がハスウォッチモートである場合には、アドレス
入出力部119は外部デバイスがデータライ1〜サイク
ルを実行した際にアドレスバス101上へ出力されたア
ドレスを取込んで命令フェンチ部111 とオペランド
アクセス部120とへ転送する。
(4,12) rデータ人出力部」 データ人出力部121はオペランドのロード動作に際し
ては、データバス102からデータを取込みオペランド
アクセス部+20へ転送する。オペランドのス1−ア動
作に際しては、オペランドアクセス部+20から出力さ
れたオペランドをデータバス102へ出力する。
データキャッシュ107i 108のアクセス方法には
、1つのアドレスに対して64ビットのデータをアクセ
スする標準アクセスモードと1つのアドレスに対して4
回連続で64ビツトのデータをアクセスするクワッドア
クセスモードとがあり、いずれの場合もデータ入出力部
121はオペランドアクセス部120と外部のメモリと
の間で遣取りするデータを(5)「パイプライン処理」 本発明のデータ処理装置100は各種のバッファ記憶と
、命令ハス103.  データバス102を使用したメ
モリの効率的アクセスにより命令をパイプライン処理し
て高性能に動作する。
ここでは、本発明のデータ処理装置100のパイプライ
ン処理方法について説明する。
(5,1)  rパイ194フ機構」 本発明のデータ処理装置100のパイプライン処理機構
は第5図に模式的に示すように構成されている。
命令のブリフェッチを行う命令フェソチステジ(IPス
テージ)31.  命令のデコートを行うデコードステ
ージ(Dステージ)32.  オペランドのアドレス計
算を行うオペランドアト1/ス計算ステージ(Aステー
ジ)33.  マイクロRotアクセス(特にRステー
ジ37と称す)とオペランドのプリフェッチ(特にOF
ステージ38と称す)を行うオペランドフェッチステー
ジ(Fステージ)34.  命令の実行を行う実行ステ
ージ(Eステージ)35.  メモリオペランドのスト
アを行うストアステージ(Sステージ)36の6段構成
でパイプライン処理を実行する。
Sステージ36には3段のストアバソファがある。
各ステージは他のステージと番よ独立に動作し、理論上
は6つのステージが完全に独立動作する。
Sステージ36以外の各ステージは1回の処理を最小1
クロツクで行うことができる。Sステージ36は1回の
オペランドストア処理を最小2クロックで行うことがで
きる。従ってメモリオペランドのストア処理がない場合
、理想的にはlクロックごとに次々とパイプライン処理
が進行する。
本発明のデータ処理装置にはメモリーメモリ間演算ある
いはメモリ間接アドレ、シング等のような1回の基本パ
イプライン処理のみでは処理出来ない命令があるが、こ
れらの処理に対してもなるべく均衡したパイプライン処
理が行えるように構成されている。
複数のメモリオペランドを有する命令に対しては、メモ
リオペランドの数に基づいてデコード段階で複数のパイ
プライン処理単位(ステノプコト)に分解してパイプラ
イン処理が行われる。
IFステージ31からDステージ32へ渡される情報は
命令コードそのものである。
Dステージ32からAステージ33へ渡される情報は、
命令で指定された演算に関するコート (Dコド41と
称す)と、オペランドのアドレス計算に関係するコー1
゛(Aコード42と称す)と処理中命令のフ゛ログラム
力つンタイ直(PC)との3つである。
Aステージ33からFステージ34に渡される情報は、
マイクロプログラムルーチンのエントリ番地及びマイク
ロプログラムへのパラメータ等を含むRコード43と、
オペランドのアドレスとアクセス方法指示情報等を含む
Fコート44と、処理中命令のプログラムカウンタ値(
PC)との3つである。
Fステージ34からEステージ35へ渡される情報は、
演算制御情報とリテラル等を含むEコード45と、オペ
ランド及びオペレータアドレス等を含むSコード(46
a、 46b)と、処理中命令のプログラムカウンタ値
(PC)との3つである。
2 Sコード46a、 46bはアドレス46a とデータ
46bとからなる。
Eステージ35からSステージ36へ渡される情報は、
ストアすべき演算結果であるWコード47a、47bと
、その演算結果を出力した命令のプログラムカウンタ(
iff(pc)との2つである。
Wコード47a、 47bはアドレス47a とデータ
47bとからなる。
なお、トレース動作中はオペランドストアが行われなく
ても、実行待された命令のPfJfiがEステージ35
からSステージ36へ渡される。
Eステージ35以前のステージで検出されたBITはそ
のコードがEステージ35に到達するまでBIT処理を
起動しない。Eステージ35で処理されている命令のみ
が実行段階の命令であり、IFステージ31〜Fステー
ジ34で処理されている命令は未だ実行段階に至ってい
ないからである。従ってEステジ35以前で検出された
HITは検出されたことがステップコード中に記録され
て次のステージに伝えられるのみである。
Sステージ36で検出されたBITはEステージ35で
処理中命令の実行が完了した時点またはその命令の処理
がキャンセルされた時点で受付けられ、Eステージ35
に戻って処理される。
(5,2)  r各パイプラインステージの処理」各パ
イプラインステージへの入出カステップコードには第4
図に示したように便宜上名称が付与されている。またス
テップコードには、オペレーションコードに関する処理
を行ってマイクロROMのエントリ番地やEステージ3
5に対するパラメタ等になる系列と、Eステージ35の
処理対象のオペランドになる系列との2系列がある。
また、Dステージ32からSステージ36までの間では
処理中命令のプログラムカウンタ値が受渡される。
(5,2,1)  r命令フェッチステージ」命令フェ
ッチステージ(IFステージ)31で命令フェッチ部1
11が動作する。
命令フェッチ部111は内蔵命令キヤ・ノシュあるいは
外部から命令をフ、7−7チして命令キューに入力し、
Dステージ32に対して2〜6バイト単位に命令コード
を出力する。命令キューの人力は整置された4ハイド単
位で行われる。
命令フェッチ部111が標準アクセスモードで外部から
命令をフェッチする場合は整置された4ハイドにつき最
小2クロックを要する。
クワッドアクセスモードでは16ハイトにつき最小5ク
ロツクを要する。
内蔵命令キャッシュがヒツトした場合は整置された8ハ
イ1−につきlクロックでフェッチ可能である。
命令キューの出力単位は2バイトごとに可変であり、■
クロックの間に最大6ハイトまで出力できる。またジャ
ンプの直後には命令キューをバイパスして命令基本部2
バイトを直接命令デコーダに転送することもできる。
命令の論理アドレスの物理アドレスへの変換内蔵命令キ
ャッシュや命令用TLBの制御3プリフエツチ先命令ア
ドレスの管理あるいは命令キューの制御もIPステージ
31で行われる。
5 (5,2,2)  r命令デコートステージ」命令デコ
ードステージ(Dステージ)32はIPステージ31か
ら人力された命令コードをデコートする。
命令コードのデコーlは、命令デコート部112のFI
IWデコーダ、 NFIIWデコーダ、アトレッシング
モー1デコーダを使用して1りlコックに1度行なわれ
、1回のデコード処理で0〜6ハイトの命令コードが消
費される(リターンサブルーヂン命令の復帰先アドレス
を含むステップコートの出力処理等では命令コートは消
費されない)。
1回のデコードでAステージ33に対してアドレス計算
情報であるAコード42とオペコードの中間デコード結
果であるDコード41とが出力される。
1)ステージ32ではPC計算部116の制御、命令キ
ューからの命令コード出力処理も行われる。
Dステージ32ではブランチ命令あるいはサブルチンか
らのリターン命令に対して先行ジャンプ処理が行われる
。先行ジャンプを行った無条件ブランチ命令に対しては
Dコード41及びAコード42は出力されず、Dステー
ジ32において命令の処理を終了する。
(5,2,3)  rオペランドアドレス計算ステージ
」オペランドアドレス計算ステージ(Aステージ)33
の処理は大きく2つに分かれる。
1つは命令デコード部112の第2デコーダを使用して
オペレーションコードの後段デコードを行う処理で、他
方はオペランドアドレス計算部54でオペランドアドレ
スの計算を行う処理である。
オペレーションコードの後段デコード処理はDコード4
1を入力とし、レジスク、メモリの書込み予約及びマイ
クロプログラムルーチンのエントリ番地とマイクロプロ
グラムに対するパラメータ等を含むRコード43を出力
する。
なお、レジスタあるいはメモリの書込み予約は、アドレ
ス計算で参照したレジスタあるいはメモリの内容がパイ
プライン上を先行する命令で書換えられていた場合に、
誤ったアドレス計算が行われることを防ぐためのもので
ある。
オペランドアドレス計算処理はAコード42を入力とし
、Aコード42に従ってオペランドアドレス計算部54
でオペランドのアドレス計算を行い、その計算結果がF
コード44として出力される。
またジャンプ命令に対してはジャンプ先アドレスの計算
が行われて先行ジャノブ処理が実行される。この際、ア
ドレス計算に伴うレジスタの読出し時に書込め予約のチ
エツクも行われ、先行命令がレジスタあるいはメモリに
対する書込み処理を終了していないために予約があるこ
とが指示されていれば、先行命令がEステージ35で書
込み処理を終了するまで待機状態になる。
Aステージ33ではDステージ32で先行ジャンプを行
わなかったジャンプ命令に対して先行ジャンプ処理が行
われる。
絶対値アドレスへのジャンプあるいはレジスタ間接アド
レノソングのジャンプ等に対してはAステージ33で先
行ジャンプが行われる。先行ジャンプを行った無条件ジ
ャンプ命令に対してはRコード43及びFコード44は
出力されず、Aステージ33において命令の処理を終了
する。
(5,2,4)  rマイクロROMアクセスステージ
」オペランドフェッチステージ(Fステージ)34の処
理も大きく2つに分かれる。
1つはマイクロROMのアクセス処理であり、特にRス
テージ37と称す。他方はオペラントプリフェッチ処理
であり、特にOFステージ38と称す。
Rステージ37とOFステージ38とは必ずしも同時に
動作するわけではなく、データキャッシュのξス及びヒ
ツト、データTLBの旦ス及びヒツト等に依存して動作
タイミングが異なる。
Rステージ37の処理であるマイクロROMアクセス処
理は、Rコード43に対して次のEステージ35での実
行に使用する実行制御コードであるEコド45を作り出
ずためのマイクロROMアクセスとマイクロ命令デコー
ド処理である。
1つのRコードに対する処理が2つ以上のマイクロプロ
グラムステップに分解される場合、第1マイクロROM
部113及び第2マイクロROH部114がEステージ
35で使用され、次のRコード43がマイクロROMア
クセス待ちになる場合がある。
9 Rコート43に対するマイクロll0Mアクセスが行わ
れるのばEステージ35でのマイクロROMアクセスが
行われない場合である。
本発明のデータ処理装置100では多くの整数演算命令
が1マイクロプログラムステノブで行われ、多くの浮動
小数点演算命令が2マイクロプログラムステ、プで行わ
れるため、実際にはRコード43に対するマイクロRO
Mアクセスが次々と行われる頻度が高い。
(5,2,5)  rオペランドフェッチステージ」オ
ペランドフェッチステージ(OFステージ)38はFス
テージ34で行う上記の2つの処理の内のオペランドプ
リフェッチ処理を行う。
オペランドフェッチステージ38ではFコーI′44の
論理アドレスをデータTLBで物理アドレスに変換し、
その物理アドレスで内蔵データキャッシュをアクセスし
てオペランドをフェッチし、そのオペランドとFコード
44として転送されてきたその論理アドレスとを組合わ
せてSコード46a、 46bとして出力する。
1つのFコード44では8バイト境界をクロスしてもよ
いが、8バイト以下のオペランドフェッチを指定する。
Fコード44にはオペランドのアクセスを行うが否かの
指定も含まれており、Aステージ33でg(算されたオ
ペランドアドレス自体あるいは即値をEステージ35へ
転送する場合にはオペランドプリフェッチは行わず、F
コー;!44の内容をSコード46a46bとして転送
する。
プリフェッチしようとするオペランドとEステージ35
が書込み処理を行おうとするオペランドとが一致する場
合は、オペランドプリフェッチは内蔵データキャッシュ
からは行われず、バイパスして行なわれる。
(5,2,6)  r実行ステージ」 実行ステージ(Eステージ)35はEコード45及びS
コード46a、 46bを入力として動作する。
このEステージ35が命令を実行するステージであり、
Fステージ34以前のステージで行われた処理は総てE
ステージ35のための前処理である。
Eステージ35でジャンプが実行されたりあるいはBI
T処理が起動されたりした場合は、IPステージ31〜
Fステージ34まででの処理はすべて無効化される。
Eステージ35はマイクロプログラムにより制御され、
Rコード45に示されたマイクロプログラムルーチンの
エントり番地からの一連のマイクロ命令を実行すること
により命令を実行する。
Eコード45には整数演算部117を制御するコード(
特にElコードと称す)と浮動小数点演算部118を制
御するコー1” (特にEFココ−′と称す)とがある
。ElコードとEFコードとは独立に出力可能であり、
この際Eステージ35では整数演算部117と浮動小数
点演算部118とが並列に動作する。
例えば浮動小数点演算部118でメモリオペランドを有
さない浮動小数点命令を実行する場合はこの動作は整数
演算部117の動作と並行して実行される。
整数演算でも浮動小数点演算でもマイクロROFIの読
出しとマイクロ命令の実行とはパイプライン化されて行
われる。従って、マイクロプログラムで分岐が発生した
場合は1マイクロステツプの空きができる。
Eステージ35ではAステージ33で行ったレジスタあ
るいはメモリに対する書込み予約をオペランドの書込み
の後に解除する。
各種の割込は命令の切目でEステージ35に直接受(J
けられ、マイクロプログラムにより必要な処理が実行さ
れる。その他の各種BITの処理もEステージ35でマ
イクロプログラムにより行われる。
演算の結果をメモリにストアする必要がある場合は、E
ステージ35ばSステージ36へWコード47a47b
とストア処理を行う命令のプログラムカウンタ値とを出
力する。
(5,2,7)  rオペランドストアステージ」オペ
ランドストアステージ(Sステージ)36はWコート′
の論理アドレス47aをデータT1.Bで物理アドレス
に変換し、そのアドレスでWコードのデータ47bをデ
ータバッファにストアする。同時にオペランドストアス
テージ36はWコード47a、 47bと3 プログラムカウンタ値とをストアバッファに入力し、デ
ータTLBから出力された物理アドレスを用いて外部の
メモリへWコードのデータ41bをストアする処理を行
う。
また、トレース動作中はオペランドストアステジ36は
Eステージ35から転送されたPC値をデータバッファ
に蓄える。
オペランドスト7ステージ36の動作はオペランドアク
セス部120で行われ、データT1、Bあるいはデータ
バッファがごスした際のアドレス変換処理及びデータバ
ッファの入換え処理も行う。
オペランドストアステージ36がオペランドのストア処
理でBITを検出した場合はストアバ、ファにWコード
47a、 47bとプログラムカウンタ値とを保持した
ままでEステージ35にBITを通知する。
(5,3)  r各バイブラインステージの状態制御」
パイプラインの各ステージは入力ラッチと出力ラッチを
有し、他のステージとは独立に動作することを基本とす
る。
各ステージは1つ前に行った処理が終了し、そ4 の処理結果を出カラフチから次のステージの入力ランチ
へ転送し、自分のステージの入力ラッチに次の処理に必
要な入力信号の総てがそろえば次の処理を開始する。
つまり、各ステージは1つ前段のステージから出力され
てくる次の処理に対する人力信号の総てが有効になり、
その時点の処理結果を後段のステージの入力ラッチへ転
送し、出力ランチが空になると次の処理を開始する。
各ステージが動作を開始する直前のタイミングで入力信
号が総てそろっている必要がある。入力信号がそろって
いなければ、そのステージは待機状態(入力待ち)にな
る。
出力ラソチから次のステージの入力ランチへの転送を行
われる際は次のステージの入力ラッチが空き状態になっ
ている必要があり、次のステージの入力ランチが空きで
ない場合もパイプラインステージは待機状態(出力待ち
)になる。
また、キャッシュあるいはTLBがごスしたり、パイプ
ラインで処理中の命令間にデータ干渉が生しると、1つ
のステージの処理に複数クロンク必要となってパイプラ
イン処理が遅延する。
(6)「オペランドアクセス部の詳細動作」(6゜1)
「オペランドアクセス部の構成」第1図はオペランドア
クセス部120の一構成例を示す詳細なブロフク図であ
る。
オペランドアクセス部120は、データの論理アドレス
と物理アドレスとをペアにしてバッファリングするTL
B201.物理アドレスとデータとをペアにしてバッフ
ァリングする内蔵のデータキャッシュとして動作するか
またはコンテキスト退避用の制御空間のメモリとして動
作するデータバッファ202、  アクセスされたデー
タの論理アドレスの上位とTLB201の論理アドレス
タグとを比較する論理アドレス比較器203.  TL
B201から出力された物理アドレスとデータバッファ
202から出力された物理アドレスタグとを比較する物
理アドレス比較器204、  データ人出力回路207
.  アドレス出力回路206、  ストアバッファ部
208.  更に論理アドレス比較器203及び物理ア
ドレス比較器204の比較結果に従って全体を制御する
オペランドアクセス制御回路205等にて構成されてい
る。
(6,2)  rオペランドアクセス部のデータリード
動作」 整数演算部117から出力された論理アドレスのアドレ
ス変換対象となる」二値20ビットの内の下位側(8ビ
ツト)でTLB201のエントリが指定される。
TLB201の指定されたエントりからは論理アドレス
タグ(12ビツト)と物理アドレス (20ビツト)と
が出力される。この際、論理アドレスの上位側(12ビ
ツト)と論理アドレスタグとが一致すればTLB201
はヒツトしたことになり、TLB201から出力された
物理アドレスは有効である。
データバッファ202が内蔵データキャッシュとして動
作する場合は、論理アドレスの内のページオフセットを
示し物理アドレスに変換されない下位ビット (12ビ
ツト)でデータバッファ202のエントリが指定される
。データバッファ202の指定されたエントリからは物
理アドレスタグ(20ビツト)とデータとが出力される
。この際、TLB201か7 ら出力された物理アドレスが有効で且つそれが物理アド
レスタグと一致すればデータバッファ202はヒツトし
たことになり、データバッファから出力されたデータは
有効である。
TLB201がごスした場合は、オペランドアクセス制
御部205の制御により、本発明のデータ処理装置I0
0の外部のメモリにあるアドレス変換チーフルがアクセ
スされ、論理アドレスが物理アドレスに変換され、TL
B201のエントリが更新される。TLB201のエン
トリの更新後、再びTLB201がアクセスされ、TL
B20+はヒノ1−する。
TLl1201がヒツトしたが内蔵データキャッシュと
して動作したデータバッファ202がごスした場合は、
オペランドアクセス制御部205の制御により、物理ア
ドレスで外部のメモリがアクセスされ、データバッファ
202のエントリが更新される。
TLB201がミスした場合は、TLB201から読出
された物理アドレスとデータバッファの物理アドレスタ
グとが一致してもデータバッファ202はヒントとはな
らない。この場合、データバッファ202の8 ヒツト/ミスの判定はTLB201のエントリが更新さ
れてTLB201がヒツトした後に行われる。
データバッファ202が制御空間のメモリとして動作す
る場合は、論理空間のアクセスに対してTLB201で
変換された物理アドレスが本発明のデータ処理装置+0
0の外部に出力されることにより外部からデータがフェ
ッチされる。
(6,3)  rオペランドアクセス部のデータライト
動作」 オペランドアクセス部120に対するデータのライト動
作はTLB201のアクセスに関してはデータリド動作
時と同様である。
データバッファ202が内蔵データキャッシュとして動
作する場合、データバッファ202のアクセス動作もデ
ータリード動作と類似しているが、データバッファ20
2からデータが続出されることはない。
データライト動作ではデータバッファ202がヒツトし
た場合はヒントしたエントリにデータが書込まれる。ミ
スした場合はデータバッファ202にはデータは書込ま
れず、エントリの更新動作も行われない。
本発明のデータ処理装置100のデータバッファ202
はライトスルー制御のデータキャッシュとして動作し、
データライト動作時にデータバッファ202がヒツトし
た場合もくスした場合もストアデータが外部へ出力され
る。
データバッファ202が制御空間のメモリとして動作す
る場合は論理空間へのオペランドライト時にデータバッ
ファがアクセスされることはない。
この場合、T1、B20]で変換された物理アドレスが
本発明のデータ処理装置100の外部へ出力されると共
にストアデータが外部へ出力される。
外部へのデータのストア処理は最小でも2クロツクを必
要とし、本発明のデータ処理装置100のEステージ3
5のストア動作速度に比べて低速である。このため、ス
トアデータはそのストア動作を行った命令のPC値、ス
トア先の物理アドレス、ストア先の論理アドレスと共に
ストアバッファに一旦登録され、その後にストアバッフ
ァがストア動作を行う。ストアバッファに登録されるス
トア動作を行った命令のpc値はpc計算部116から
人力された命令のpc値である。
(6,4)  r制御空間アクセス部の動作」データバ
ッファ202が、アドレスがII’ FPFFEOOO
〜lI’PFFFFFFFの制御空間のメモリとして動
作する場合は、アドレスが)l’FFFFEOOO−H
’FFFFFFFFである制御空間に対するアクセスは
データバッファ202に対して行われる。
制御空間のアクセスではアドレス変換は行われず、T1
.B201は動作しない。またデータバッファ202は
アドレス範囲がH’ FFFFEOOO〜II’ FF
FFFPPFであるランダムアクセスメモリ(RAM)
 として動作する。
リード動作時には、AAババス24から入力されたアド
レスに従ってデータバッファ202の内容が読出され、
[1(lバス125を通して整数演算部111または浮
動小数点演算部118へ出力される。また、ライト動作
時には、^Aババス24から入力されたアドレスに従っ
てDDババス25を通してデータ入出力回路207に入
力されたデータがデータバッファ202に書込まれる。
アドレス範囲がH″FFFFn000−H’ FFFP
FFFF以外である領域の制御空間に対するアクセスは
、本発明のデータ処理装置100の外部に対して行われ
る。
制御空間のアクセスをデータバッファ202に対して行
うか又は外部に対して行うかは、制御空間アドレスの上
位20ビツトに従ってオペランドアクセス部120内で
判断される。この判断は、論理アドレス比較器203で
T’LB201側の20ビツトを総て′1″にし、その
値とAAババス24から入力されたアドレスの上位の2
0ビツト内のの最下位ビットをdon’ tcareに
した19ビツト分とを比較することにより行2 (7)「外部アクセス動作」 (7,1)  r入出力信号線」 第7図は本発明のデータ処理装置100の入出力信号を
示す模式図である。
本発明のデータ処理装置100は、電源Vccと接地G
ND、  64本のデータピンと32本のアドレスビン
と32木の命令ビン及び入力クロックCLKの他に種々
の制御信号を入出力する。
命令アクセスの場合もデータアクセスの場合も、アドレ
スピンへは物理アドレスが出力される。
CLKは外部入力クロックであり、本発明のデータ処理
装置100の動作クロックと同一周波数のクロックであ
る。
データアドレスストローブDASI(Itは負論理を表
す)はアドレスピンに出力されたデータアドレスが有効
であることを示す。
リードライトR/Wllはデータビンでのバスサイクル
が入力であるか出力であるかを区別する。
データストローブDSlは本発明のデータ処理装置10
0がデータ人力準備を完了したことまたは本発明のデー
タ処理装置100からデータが出力されたことを示す。
DC#は本発明のデータ処理装置100にデータアクセ
スサイクルを終了してもよいことを通知する信号である
3/IT(0:2)は第28図に示す様に、アドレスピ
ンとデータピンとの値の意味を示す。
命令アドレスストローブIASIはアドレスピンに出力
された命令アドレスが有効であることを示す。
命令ストローブl511は本発明のデータ処理装置10
0が命令人力準備を完了したことを示す。
ICIIIま本発明のデータ処理装置100に命令アク
セスサイクルを終了してもよいことを通知する信号であ
る。
ホールドリクエストHREQIIは本発明のデータ処理
装置100にバス権を要求する信号であり、HACKI
Iは本発明のデータ処理装置100がホールドリクエス
トHREQIIを受付けてバス権を他のデバイスに渡し
たことを示す信号である。
IREQ(0:2)は外部割込み要求信号である。
IACKIは本発明のデータ処理装置100が外部割込
みを受付け、割込みベクトルアクセスサイクルを行って
いることを示す信号である。
また、WDビンは本発明のデータ処理装置のデータバス
を64ビツト総て有効にするか、または32ビツトのみ
を有効にするかをシステムリセット時に設定するために
使用されるビンである。
なお、第6図にはデータバスを64ビツト総て有効にし
た場合の例が示されているが、本発明のデータ処理装置
ではデータバスを32ビツトのみ有効にして動作させる
ことにより、低コストのシステムを構成することが可能
なようになっている。
(7,2)  r外部デバイスのアクセス」本発明のデ
ータ処理装置100を用いた第6図に示したシステムの
例では、本発明のデータ処理装置fE100とデータキ
ャッシュ107.108とがデータビンに接続スるデー
タバス102.  アドレスビンに接続するアドレスバ
ス101 の他、BAT(0:2)、 DAS#R/1
11.051. DCIIでも接続されている。
本発明のデータ処理装置100と命令キャソシプ。
5 11とは命令ビンに接続する命令ハス103.  アド
レスバス101 のイ也、BAT(0:2)、 IAS
#、 l5II、 IC11でも接続されている。
CI、Kはシステム全体に供給されシステムの基本タイ
ミングを決定するクロックである。
標準アクセスモードでのハスアクセスに際しては、デー
タバス102を用いたデータアクセスと命令ハス103
を用いた命令アクセスとをそれぞれ十分高速な外部のメ
モリに対して外部入力クロックCLKの2サイクルに1
度の速度で行う。
クワッドアクセスモードでのハスアクセスに際してるよ
、データバス102を用いたデータアクセスと命令ハス
1.03を用いた命令アクセスとをそれぞれ十分高速な
外部のメモリに対して外部入力クロックCLKの5サイ
クルに4度の速度で行う。
アドレスバス101はデータキャッジ−LiO2,10
8のアクセスと命令キャッシュ106のアクセスとの両
方に利用される。
(8)「各種制御レジスタ」 (8,1)  rプロセッサ状態語pswの構成」6 第36図は本発明のデータ処理装置I00の整数演算部
117にあるプロセッサ状態語(PSW)の構成を示す
模式図である。
第36図において、S−ビット20はリング0で割込み
処理用スタックポインタを使用中であるかりフグ0用ス
クンクポイりタを使用中であるかを示す。
RNGフィールド21はプログラムが実行されているリ
ング番号を示す。
へTフィールド22はアドレス変換とメモリ保護とのモ
ードを示す。
FEビット23は浮動小数点演算トラップの起動モード
を示す。
DBビット24はデバッグ環境を示す。DB=1であれ
ばデバッグサポートa構がオンで、デバッグ条件が成立
すればセルフデバッグトラップが起動される。DB=0
であればデバッグサポート機構がオフで、デバッグ条件
が成立してもセルフデバッグトランプは起動されない。
IMASKフィールド25は外部割込みのマスクレベル
を示す。IMASKフィールド25で示されたマスクレ
ベルより優先度の高い外部割込みが本発明のデータ処理
装置100に入力されると割込み処理が起動される。
P RN Gフィールド26は現在のリングを呼出した
リングのリング番号を示す。
FLAGフィールド27は整数演算に関するフラグを示
す。
PSWはりセント時にはオールゼロにクリアされる。ま
た、PSWは1、OC命令とSTC命令とでその内容を
読出すこと及び指定した内容を書込むことがそれぞれ可
能である。
(8,2)「へソファメモリ制御レジスタ」第3図は本
発明のデータ処理装置100の内蔵データバッファ20
2及び内蔵命令バッファの制御を行うバッファメモリ制
御レジスタの構成を示す模式図である。
第3図において、聞フィールド3は内蔵データバッファ
202の制御を行うフィールドであり、以下に示す意味
を有する。
DM・00;デークハノファを動作させない。
DM=O1,:データバッファをアドレスがlI’FF
FFEOOO〜ll’FFFFFFFFである制御空間
のメモリとして動作させる。
DM=IO:データバッファをライトスルー制御のデー
タキャッシュとして動作 させる。
DM=11 +未定義。
RPフィールドjはデータバッファ202がデータキャ
ッシュとして動作する際の制御を行うフィルドであり、
以下に示す意味を有する。
RP=00 :データキャッシュをフリーズ状態にする
RP・0■:未定義。
RP=10 :データキャッシュをラインサイズ16バ
イトで動作させる。
RI’・11:データキャッシュをラインサイズ32バ
イトで動作させる。
団フィールド4は内蔵命令バッファの制御を行うフィー
ルドであり、以下に示す意味を有する。
IM=00 :命令バッファを動作させない。
9 +M=O1:命令バッファを命令キューが空のときフェ
ッチした命令を選択的に 登録するセレクティブキャノシュ として動作させる。
■−10:未定義。
IM・11.命令ハ゛ノファをラインサイズ16バイト
の命令キャッシュとして動作 させる。
1、ENフィールド2は命令バッファをセレクテイブキ
ャ・7シユとして動作させた際の命令の登録条件を制御
するフィールI・であり、以下に示す意味を有する。
LHN=000・命令の登録は行わず命令キャッシュを
フリーズする。
LEN=OO1:命令キューが空になってから連続して
1ライン入換える。
LliN=010 :命令キ$−が空になってから連続
して2ライン入換える。
LEN=011〜111:未定義。
(8,3)  rパージ指定レジスタ」第29図は本発
明のデータ処理装置1.ooの内蔵デタバノファ202
及び内蔵命令バッファのパージ動作を制御するパージ指
定レジスタの構成を示す模式図である。
図中、DS5. +1116. IS7.1118の各
ピントは内蔵データバッファ202のパージ動作を制御
するためのビットであり、これらの各ビットに“1″を
書込むとそれぞれのビットに対応するバッファメモリの
内容がパージされる。また、これらの各ビットに“0”
を書込むとそれぞれのビットに対応するバッファメモリ
の内容はパージされない。更に、このレジスタの値が読
出された場合には全ビットがゼロになる。
os=o:負の物理アドレスのデータバッファエントリ
をパージしない。
os=]:jtの物理アドレスのデータバッファエント
リをパージする。
Do・0 :正の物理アドレスのデータバッファエント
リをパージしない。
Dun  :正の物理アドレスのデータバッファエント
リをパージする。
l5−0  :負の物理アドレスの命令キャッシュエン
トリをパージしない。
l5−1  :負の物理アドレスの命令キャッシュエン
トリをパージする。
+11.0  :正の物理アドレスの命令キャソシュエ
ントりをパージしない。
ILhl  :正の物理アドレスの命令キャッシュエン
トリをパージする。
(9)「本発明のデータ処理装置の例外処理機能」(9
,1)  r本発明のデータ処理装置で検出されるBI
Tの種類」 本発明のデータ処理装置100で発生ずるBITには、
命令に依存しないEITとして、アクセスした論理アド
レスに対応するデータ及び命令が主メモリ109」二に
なくページフォールトが発生した場合に検出されるペー
ジ不在例外、論理アドレスを物理アドレスに変換中に発
生するエラー、メモリ保護違反及びl10jJr域に関
する不当なアクセスが生した場合に発生するアドレス変
換例外1命令またはオペランドアクセスにおいて一定時
間以内にハスからの応答がなくメモリアクセスが実行さ
れなかった場合に発生するハスアクセス例外がある。
また、命令に依存して発生ずるETTとして、ジャンプ
命令のジャンプ先アドレスが奇数であった場合に発生ず
る奇数アドレスジャンプトラップ割当てられていない命
令及びアトレンジングモトのピントパターンを実行しよ
うとした場合に発生ずる予約命令例外、整数演算で0除
算を行なった場合に発生するゼロ除算トラップ、浮動小
数点命令を実行した際にマスクされていない例外を検出
した場合に発生ずる浮動小数点演算トラップTRAPA
命令により発生する無条件トラップ、 TRAP/cc
命令により発生ずる条件トラップがある。
(9,2)  rEIT処理ハンドラを起動する際の動
作」本発明のデータ処理装置100ではBITを検出す
ると、以下の手順に従うマイクロプログラムが実行され
、EIT処理ハンドラが起動される。
まず、検出したBITに応したヘクトル番号が本発明の
データ処理装置100内部で生成される。
3 次に、メモリ空間上にあり、それぞれのBITに対する
処理ハンドラの先頭アトlメスとEITのヘクトルとが
ベアにして記憶されているEITヘクトルテーブルがア
クセスされる。
BITへりI・ルテーブルの各エントリは8ハイドで構
成されており、EIT処理ハンドラに処理が移るi;I
に本発明のデータ処理装置+00のプロセッサステータ
スワード(PSW)を更新するためのデータが含まれて
いる。
次に、1ilT処理ハンドラから復帰した後に元の命令
列に戻るための戻り先命令のpc値であるNEXTPC
,EITを起動する前のPSW、  及び検出したBI
Tの番号等の検出したEITに関する各種の情報である
l’:ITINFがスタックに退避される。
更に必要であれば、EITを検出した命令のpc値等の
情報もスタックに退避される。
これらの処理により生成されるスタックフレームはBI
Tの種類に依存しており、5種類のフォーマットに分か
れる。
次に、読込まれたBITヘクトルテーブルエント4 すに基づいてPSWが更新される。この際、PS−にr
eservedの値がセットされようとするとシステム
エラーとなる。このPSWの更新により、メモリ保護情
報となるリング番号の更新、アドレス変換の有無の切換
え、デバッグ環境の切換え1割込みマスクレベルの切換
え、浮動小数点演算トラップ受付モードの切換えを行う
こと可能になる。
次に、EFTテーブルのエントリからフェッチされたp
c値へのジャンプが行われ、ETT処理ハンドラが起動
する。多重にEITが検出されており、未処理のEIT
が抑止されていない場合はEFT処理ハンドラの先頭命
令を実行する以前にその未処理のBITに対するBIT
処理ハンドラを起動するための処理が行われる。
(9,3)  r EIT処理ハンドラから元の命令列
への復帰動作」 ETT処理ハンドラによる各BITに対応する処理が終
了した後、EIT処理ハンドラで最後に実行されるRE
IT命令では以下のような処理を行うマイクロプログラ
ムが実行されて元の命令列に復帰する処理を行う。
まず、スタックからETTが検出された時点のPSW値
とBITINFとが読込まれる。続いてスタックがら戻
光命令の論理アi゛レスが読込まれる。
更に、BITINF中のフォーマ、ト情報により追加情
報の有無が判定され、追加情報があればスタックからそ
れが読込まれる。追加情報は前述の如く5つのフォーマ
ットに依存してそれぞれ異なる。
次に、スタックから読込まれたBITが検出された時点
のPSW値に従ってPSWの全フィールドがEIT発生
前の値に復帰される。
BITを発生したストアバッファによるライトサイクル
の再実行をR1!IT命令の実行中に行なう場合がある
次に、スタックから読込まれた戻り先命令の論理アドレ
スへのジャンプが実行され、元の命令列(10) rデ
ータバッファの詳細動作」(10,1)データバッファ
の構成 第8図はデータバッファ202と物理アドレス比較器2
04 との−構成例を示すブロック図である。
データバッファ202のタグアドレス部とデータ部とか
らなるメモリアレイ部ばWブロック230. Xブロッ
ク231. Yブロック232. Xブロック233の
4ブロツクにてII!威されている。なお、各ブロック
230、23L 232.233には20ビツトのタグ
アドレスと16バイトのデータとで一組に構成されるエ
ントりが128個ずつある。
データはW11234. XD235. YD236.
 Z1123777) 4 ツ(7)データ入出力レジ
スタを介して人出力される。
タグアドレスば−C238,XC239,YC240,
ZC241の4つのアドレス比較器へ出力される。
IAレジスタ242はTLB201又はアドレス入出力
回路246からデータバッファ202へ人力されるアド
レスを保持し、上位20ビツトが4つのアドレス比較器
238.239.240.24]へ出力され、下位の5
ビット目から13ビツト目の9ビットがメモリアレイ7 部へ出力される。また、IAレジスタ242の下位から
12ビット目及び下位5ピツI・がマルチプレクサ制御
回路244へ出力される。
マルチプレクサ243は、4つのデータ入出力レジスタ
234.235.236.237とデータ人出力回路2
07とのインターフェイスとなる8ハイI・の■ODバ
ッファ245に接続されている。マルチプレクサ制御回
路244は4つのア)゛レス比較器238.239.2
40241と1^レジスタ242との内容に従ってマル
チプレクサ243を制御する。
(10,2) rデータキャッシュとしての動作」バッ
フアノモリ制御レジスタの0Mフィールド3を“10”
とし、RPフィールド1を“lO”とするとデータバッ
ファ202は容量が8kB、  ラインサイズが16ハ
イトで4ウエイセツトアソシアテイブのデータキャッシ
ュとして動作する。また、メモリアレイの4つのブロッ
ク230.231.232.233はそれぞれ1つのコ
ンパートメント この場合、リードアクセスではI^レジスタ242に入
力されたアドレスの5ビット目から11ピント8 目の7ビツトで各コンパートメントのエントリがM択さ
れ、4つのタグアドレスが4つのアドレス比較器238
, 239, 240, 241にそれぞれ出力され、
4つのバイトデータが4つのデータ入出力レジスタ23
4, 235, 236. 237にそれぞれ読出され
る。
4つのアドレス比較器238, 239, 240. 
241では4つのタグアドレスがIAレジスク242の
上位20ビツトのアドレスとそれぞれ比較される。IA
レジスタ242の下位4ビツトのアドレスと比較結果と
に従って、一致したコンパートメントの出力データから
必要なデータがマルチプレクサ243により選択されて
+00バツフア245に読出される。
ライトアクセスでは、ヒツトしたコンパートメントに同
様な動作で100バツフア245からマルチプレクサ2
43とデータ入出力レジスタ234. 235236、
 267とを通してデータが書込まれる。
データキャッシュがξスした場合は、4バイト×4回の
クワッドアクセスモードで外部のメモリがアクセスされ
、4つのコンパートメントの内の対応する1つのエント
リが書換えられる。このため、RPI−“10’“の1
6ハイトラインサイズモードでは、データバス102を
32ビットで使用するシステムで有効に動作する。
バッフアノモリ制御レジスタの0Mフィールド3を10
”とし、RPフィールド1を11”とすると、デタバノ
ファ202は容量が8kB.  ラインサイズが32バ
イトで2ウエイセツトアソシアテイブのデータキャッシ
ュとして動作する。この場合、メモリアレイはWブロッ
ク230 とXブロック231 とが組合わさって1つ
のコンパートメントとして動作し、またYブロック23
2とXブロック233とが組合わさって1つのコンパー
トメントとして動作する。
Wブロック230とXブロック231 との同一エント
りのタグアドレス部には同一の値が記憶され、同一エン
トりのデータ部には32バイトのデータが16ハイトず
つ記憶される。同様に、Yブロック232とXブロック
233との同一エントりのタグアドレス部には同一の値
が記憶され、同一エントりのデータ部には32ハイドの
データが16バイI・ずつ記憶される。
この場合、リードアクセスではIAレジスタ242に人
力されたアドレスの6ビソ1−目から12ピント目の7
ビノトで各コンパートメントのエンlりが選択され、4
つのタグデータが4つのアドレス比較器238.239
.240.241にそれぞれ出力され、4つの16バイ
トデータが4つのデータ入出力レジスタ234.235
.236.237にそれぞれ読出される。
4つのアドレス比較器238.239.240.241
では4つのタグアドレスがIAレジスタ242の上位2
0ピントのアドレスとそれぞれ比較される。IAレジス
ク242の下位5ビツトのアドレスと比較結果とに従っ
て、一致したコンパートメントとなる2つのブロックの
出力データである32バイトから必要なデータがマルチ
プレクサ243により選択され、IOCバッファ245
に読出される。
ライトアクセスでは、ヒソ1−シたコンパートメントに
同様な動作で100バツフア245からマルチプレクサ
243とデータ入出力レジスタ234.235236、
267とを通してデータが書込まれる。
データキャッシュがごスしたときは8バイト×4回のク
ワッドアクセスモードで外部のメモリがアクセスされ、
2つのコンパートメントの内の対応する1つのエントリ
が書換えられる。このため、RP]=”11″の際の3
2バイトラインサイズモードでは、データバス102の
64ビツトで使用するシステムで有効に動作する。
(10,3) r制御空間メモリとしての動作」バッフ
ァメモリ市10卸レジスタのDMフィールド3を”01
”とするとRPフィールド1の値には拘わらずに、デー
タバッファ202はアドレスがII ’ FFFFEO
OO〜H’ FFFFFFPFである容量8kBの制御
空間メモリとして動作する。
この場合、メモリアレイのタグアドレス部は使用されず
、データ部のみが使用される。
データバッファは4つのブロック230.231.23
2233が全体で256エントリ×32ハイドのメモリ
アレイとして動作し、IAレジスタ242で指定された
ttdl?卸空間アドレスの6ビツト目から13ビツト
目でエントリが指定され、メモリアレイがアクセスされ
る。
2 リード動作では、読出された32ハイドのデータの内の
必要なバイトがIAレジスタ242の下位5ビツトのア
ドレスに従ってマルチプレクサで選ばれ、100バツフ
ア245に入力される。
ライト動作では、IODバッファ245に保持された8
バイトのデータの内の必要なバイトがマルチプレクサで
対応するデータ入出力レジスタ234 、235236
、237に転送され、メモリアレイの対応する場所に書
込まれる。
(11) rコンテキストスイッチ動作の詳細」本発明
のデータ処理装置100では第30図に示すコンテキス
トブロック情報をコンテキストスイッチング命令である
LDCTX命令と5TCTX命令とで操作する場合、8
バイト単位でデータを処理し、高速にコンテキストスイ
ソヂングを行う。
(11,1)整数演算部の詳細構成 第2図はコンテキストスイッチング動作に関係する整数
演算部117の構成例の詳細を、オペランドアドレス計
算部115.  浮動小数点演算部118゜オペランド
アクセス部120と共に示すブロック図である。
SAレジスタ210はオペランドアドレス計算部115
から整数演算部117に出力されるオペランドアドレス
及び即値を保持するレジスタである。
AAレジスタ211は整数演算部117からオペランド
アクセス部120にアドレスを出力するためのレジスタ
であり、保持内容に対するL 2.4.8のインクリメ
ント・データリメント機能を有する。
汎用レジスタファイル213と専用レジスタ・作業用レ
ジスタファイルとは整数演算部117内の各種のデータ
を保持し、演算回路214及び補助AI、U212とそ
れぞれ3木の4バイトのバスで結合されており、2つの
レジスタ上のオペランドに関する加算、比較等の演算が
演算回路214または補助ALυ212で行える。
DDレジスタ213は整数演算部117とオペランドア
クセス部120とがデータを人出力するためのインタフ
ェイスレジスタであり、8バイトのDDババス23でオ
ペランドアクセス部120と結合されている。
FFレジスタ217は整数演算部117と浮動小数点演
算部118とのインタフェイスレジスタである。
(11,2) rコンテキストのロード動作」コンテキ
ストロード動作の一例としで、C3Wレジスタに格納さ
れるべきデータのFRビット13とRGビット14とが
共に“1”であるコンテキストブロックに対してLDC
TX/CS命令を実行した場合の動作を説明する。この
場合、コンテキストブロックはアドレスがll’FFF
FFOOoである制御空間におかれているとする。また
、LDCTX/C5命令はXピノ目5が°”1”である
1、DCTX命令である。
まず、CTXBADRフィールドで指定されたアドレッ
シングモードに従ってオペランドアドレス計算部115
で計算されてSAレジスタ240に転送されたコンテキ
ストブロックの先頭アドレスII’ FFFFFOOO
がS1バス221 とAAレジスタ211 とを通して
AAババス出力されると共に、Slバス221.  演
算回路215及びDlバス225を通して専用レジスタ
・作業用レジスタファイル214中にあるCTXBBレ
ジスタに格納される。
5 AAレジスタ211は内容を出力後、その値を8インク
リメン1−する。
オペランドアクセス部120ではデータバッファ202
がアクセスされ、コンテキストブロックの先頭の8ハイ
ドがDDババス23を通してDDレジスタに転送される
次に、DDレジスタ216に格納された8バイトのデー
タの内の上位4バイトが32バス222.  演算回路
215.  DIハス225を通して専用レジスタ・作
業用レジスタファイル214中にあるC8−レジスタに
格納される。この際、演算回路215はFRビット13
とRGピノ目4との内容をチエツクし、第1マイクロR
OM部113へその結果を伝えてマイクロプログラムで
のコンテキストブロックフォーマットの判断に使用する
また同時に、DDレジスタ216に格納された8ハイド
のデータの内の下位4ハイドがS1バス2213補助A
LL1212. D3バス226を通して汎用レジスタ
ファイル213中にあるSPOレジスタに格納される。
更に、同しく同時にへへレジスク211はH’ FFF
FFOO8を6 AAババス22を通してオペランドアクセス部120に
転送し、データバッファ202からコンテキストブロッ
クの2番目の8バイトをDDレジスタ216へ読出ず。
AAレジスタ211は値を出力した後、内容を8インク
リメントする。
次に、DDレジスタ216に格納された8ハイドのデー
タの内の上位4バイトが82バス222.  演算回路
215.  DIパス225を通して汎用レジスタファ
イル213中にあるSPIレジスタに格納される。この
際、同時にDDレジスタ216に格納された8バイトの
データの内の下位4ハイドがS1バス221.補助^1
.11212. D3バス226を通じて汎用レジスタ
ファイル213中にあるSP2レジスタに格納される。
また同時に、^^レジスタ211 はアドレスII’ 
FFFPFOIOをAAババス22を通じてオペランド
アクセス部120に転送し、データバッファ202から
コンテキストブロックの3番目の8バイトをDDレジス
タ216へ読出す。
AAレジスタ211は値を出力した後、内容を8イツク
リメントする。
同様の動作が反復され、CSW、 SPO〜3.  [
IATBRO〜14の各レジスタに値がロードされる。
この際、SF3とLIATB  R1とR2,R3とR
4,1+5とR6,R7とR8゜R9と1110. R
11と1112. R13と1114 とのそれぞれに
DDレジスタ216の上位4バイトと下位4バイトとが
一度にロードされる。レジスタROにD3バス226か
ら値がロードされる際は対応する上位4ハイドのロード
は行われない。
FRO〜FR15の各レジスタについてはオペランドア
クセス部120から浮動小数点演算部118に転送され
た8バイトのデータが浮動小数点演算部118で各浮動
小数点レジスタに格納される。但し、アドレスは整数演
算部117のAAレジスタ211から出力される。
オペランドアクセス部120から転送された8バイトの
データがFR15レジスタに格納される際には、^Aレ
ジスタ211からはアドレスは出力されず、データバッ
ファ202のアクセスは行われない。
データバッファ202ではなく、外部のメモリからコン
テキストがロードされる際は、オペランドアクセス部1
20が外部のメモリをアクセスするため、データバッフ
ァ202からコンテキストをロドする場合に比してより
多くのクロックサイクルを必要とする。
(11,3) rコンテキストのストア動作」コンテキ
ストストア動作の一例としてC5−レジスタのFRビッ
ト13とRG14ビットとが共に”]”である場合に5
TCTX/CS命令を実行した際の動作を説明する。な
おこの場合、CTXBRレジスタの内容はHFFFFF
0OOとする。また、5TCTX/C3命令はXビット
15が01”であるLD(、TX命令である。
まず、CTXBBレジスタに保持されているコンテキス
トブロックの先頭アドレスII’ FFFPPOOOが
S3バス213を通して^Aレジスタ211に転送され
ると共に、C3Wレジスクの内容が31バス221を通
してDDレジスタ216の上位4バイトに転送され、S
POレジスタの内容が32バス222を通してIIDレ
ジスタ216の下位4バイトに転送される。また同時に
C3hレジスタの内容が31バス221から演算回路2
15にも9 人力され、演算回路215はFRピノ目3とRGピノt
□14との内容をチエツクして第1マイクロROM部1
13へその結果を伝え、マイクロプログラムでのコンテ
キストブロックフォーマットの判断に使用する。
次に、AAレジスタ211からアドレスIt’ FFF
FFOOOがAAババス22を通してオペランドアクセ
ス部120に転送され、DDレジスタ216からはコン
テキストブロックの先頭の8ハイ1−データとなるC5
Wレジスク値とSPOレジスタ値とがDDハス123を
通してオペランドアクセス部120へ転送され、データ
バッファ202に格納される。
AAレジスタ211 は値を出力した後、内容を8イン
クリメントする。この際、コンテキストブロックの2番
目の8ハイド情報の上位4バイトとなるSPIレジスタ
の内容が31バス221を通して汎用レジスタファイル
213からDDレジスタ216の−L位に転送され、下
位4バイトとなるSP2レジスタの内容が82バス22
2を通して汎用レジスタファイル213からDDレジス
タ216の下位に転送される。
次に、AAレジスタ211からアドレスH’ FFFP
FOO800 がAAバス]22を通してオペランドアクセス部120
に転送され、DDレジスタ216からはコンテキストブ
ロックの2番目の8ハイドデータとなるSPIレジスタ
値とSP2レジスタ値とがDDババス23を通してオペ
ランドアクセス部】20へ転送され、データバッファ2
02に格納される。
AAレジスタ211は値を出力した後、内容を8インク
リメントする。この際、コンテキストブロックの3番目
の8バイト情報の上位4バイトとなるSP3レジスタの
内容が31バス221を通して汎用レジスタファイル2
13からDDレジスタ216の上位に転送され、下位4
バイトとなるUATBレジスタの内容が52バス222
を通して専用レジスタ・作業用レジスタファイル214
からDDレジスタ216の下位に転送される。
同様の動作が反復され、C5W、 SPO〜3.  U
ATB。
RO〜14の各レジスタの値がデータバッファ202に
ストアされる。この際、SF3とtlATB、 R1と
112. R3とR4,R5とR6,R7とR8,R9
とRIO,R11とR12,R13とR14の値がそれ
ぞれからDDレジスク216の上位4ハイドと下位4ハ
イドとに一度に値が転送される。
ROレジスタの値がDDレジスタ216に転送される際
は対応する」三位4ハイドの転送は行われない。
また、ROレジスタの値がDDレジスタ216からオペ
ランドアクセス部+20に転送される際、対応する上位
4バイトはゼロが転送される。
FRO〜FR15の各レジスタについては、浮動小数点
演算部118の各浮動小数点レジスタから読出された値
がオペランドアクセス部120へ転送される。
但し、アドレスは整数演算部117の静レジスタ211
から出力される。
データバッファ202ではなく、外部のメモリへコンテ
キストをストアする場合は、オペランドアクセス部12
0が外部のメモリをアクセスするため、データバッファ
202ヘコンテキストをストアする場合に比してより多
くのクロックサイクルを必要とする。
(12) r本発明の他の実施例」 上記実施例ではモード切換えによりデータバノファをコ
ンテキストブロックを保持する制御空間となるランダム
アクセスメモリまたはデータキャッシュのいずれかとし
て動作させる例を述べたが、同様の方法でモード切換え
により1つのバッファメモリをコンテキストブロックを
保持する制御空間となるランダムアクセスメモリまたは
命令キャッシュのいずれかとして動作させる構成を採っ
てもよい。
また、バッファメモリがランダムアクセスメモリとして
動作する際はコンテキストブロックを保持する制御空間
として動作するのではなく、論理メモリ空間の一部とし
て動作させる構成を採って 03 なお上記実施例では、バッファメモリ制御レジスタの内
蔵データバッファ制御フィールドでデータバッファを制
御空間のメモリとして動作させることを指定すると、デ
ータバッファはアドレスがたとえばH’ FFFFEO
OO〜H’ FFFFFFFFである制御空間領域のラ
ンダムアクセスメモリとして動作するように構成されて
いる。この場合、データバッファは、オペランドアクセ
ス部に出力された制御空間のアドレスがアドレス領域の
範囲内であればそのアドレスに保持されているデータを
出力する。
このため、上記実施例では、物理的には1つのデータバ
ッファがデータキャッシュとして動作することも、特定
アドレス領域のランダムアクセスメモリとして動作する
ことも可能なため、データバッファが効率的に利用出来
る。従って、コンテキストスイッチング命令等ではコン
テキスト退避用のデータバッファの領域を特に高速なメ
モリ領域として利用することが可能になり、タスクスイ
ッチング時間の最大値を更に小さくすることができる。
 04 更に、上記実施例の如く、データバッファがデータ処理
装置本体と同一の集積回路上に内蔵されている構成を採
る場合は、データバッファに対するアクセス時間は集積
回路外のメモリに幻するそれに比して特に短いため、上
述の効果が特に大きい。
[発明の効果] 以上に詳述した如く本発明のデータ処理装置は、オペラ
ンドアクセス部ヘアドレスを出力するアドレスレジスタ
と、オペランドアクセス部との間でデータを入出力する
汎用レジスタの2倍のバイト幅のデータレジスタとを備
え、レジスタファイルとデータレジスタ間は複数のバス
からなり2つのデータを同時に転送する転送経路を有し
、2つ以上のレジスタにメモリからデータをロードする
命令であるLDCTX命令を実行する場合、命令実行制
御部の制御により、オペランドアクセス部から2つのレ
ジスタにロードすべき2つのデータが連結されたデータ
がデータレジスタへ転送され、データレジスタの上位4
バイトと下位4バイトとが2つの転送経路をそれぞれ通
じて2つのレジスタに同時に転送される。このため、デ
ータが1つずつ転送される場合に比して2倍の転送速度
でレジスタの内容をメモリへ転送することが可能になる
ので、コンテキストをロードするしDCTX命令の実行
が高速化されてクスクスイソチングに要する時間が短縮
される。
また、2つ以上のレジスタからメモリへデータをストア
する命令である5TCTX命令を実行する場合、命令実
行制御部の制御により、2つのレジスタの内容が2つの
転送経路からデータレジスタの上位4バイトと下位4バ
イトとに同時に転送され、データレジスタで2つのデー
タが連結され、この連結されたデータがオペランドアク
セス部へ1つのメモリアクセスとして転送される。これ
により、データが1つずつ転送される場合に比して2倍
の転送速度でレジスタの内容を転送することが可能にな
るので、コンテキストをストアする5TCTX命令の実
行が高速化されてクスクスイソチングに要する時間が短
縮される。
【図面の簡単な説明】
第1図は本発明のデータ処理装置のオペランドアクセス
部の一構成例を示すブロック図、第2図は本発明のデー
タ処理装置の整数演算部の部分的詳細構成を示すブロッ
ク図、 第3図は本発明のデータ処理装置のバッファメモリ制御
レジスタの構成を示す模式図、第4図は本発明のデータ
処理装置の全体のtJ!戒例を示すブロック図、 第5図は本発明のデータ処理装置のベイブライン処理ス
テージの説明のためのブロック図、第6図は本発明のデ
ータ処理装置を用いたデータ処理システムの構成例を示
すブロック図、第7図は本発明のデータ処理装置の人出
力信号ビンを示す模式図、 第8図は本発明のデータ処理装置のデータバッファの詳
細な構成例を示すブロック図、第9図乃至第13図は本
発明のデータ処理装置の命令のフォーマットを示す模式
図、 第14図乃至第27図は本発明のデータ処理装置の07 命令中のアドレッシングモード指定部ノフォーマソトを
示す模式図、 第28図は本発明のデータ処理装置のBAT(0:2)
信号の意味を表す表を示す図、 第29図は本発明のデータ処理装置のバッファメモリの
パージ指定のためのパージ指定レジスタの構成を示す模
式図、 第30図は本発明のデータ処理装置のコンテキストブロ
ックのフォーマットの一例を示す模式図、第31図は本
発明のデータ処理装置のコンテキストブロンクフォーマ
ノトを指定するC5Wレジスタの構成を示す模式図、 第32図は本発明のデータ処理装置のコンテキストロー
ド命令のビンドパクンを示す模式図、第33図は本発明
のデータ処理装置のコンテキストストア命令のピントパ
タンを示す模式図、第34図は本発明のデータ処理装置
により実行中のコンテキストブロックの先頭アドレスを
保持するCTXBBレジスクの構成を示す模式図、第3
5図は本発明のデータ処理装置のユーザ用ア 08 ドレス変換テーブルの先頭アドレスを保持するためのU
ATBレジスタの構成を示す模式図、第36図は本発明
のデータ処理装置のPSW (プロセッサ状態後)の構
成を示す模式図である。 112・・・命令デコード部 113・・・第1マイク
ロROM部 114第2マイクロROM部 117・・
・整数演算部118・・・浮動小数点演算部 120・
・・オペランドアクセス部202・・・データバッファ
 211・・・AAレジスタ213・・・汎用レジスタ
ファイル216・・・DDレジスタ 214・・・専用
レジスタ・作業レジスタファイル221・・・S1バス
 222・・・S2バスなお、各図中同一符号は同−又
は相当部分を示す。

Claims (2)

    【特許請求の範囲】
  1. (1)命令をデコードする命令デコード部と、前記命令
    デコード部の出力に従って命令の 実行を制御する制御部と、 第1のレジスタとの間に第1のデータ転送 経路を、第2のレジスタとの間に第2のデータ転送経路
    をそれぞれ有するデータレジスタと、 前記データレジスタに接続されたメモリと、前記メモリ
    のアドレスを保持するアドレス レジスタと、 前記アドレスレジスタに保持されているア ドレス値を出力して前記メモリをアクセスし、データを
    前記データレジスタにフェッチするメモリアクセス部と を備え、 前記制御部は、 前記命令デコード部が2つ以上のレジス タに前記メモリからデータをロードする命 令をデコードした場合、前記メモリアクセ ス部に前記メモリをアクセスさせて第1の データと第2のデータとを連結したデータ を前記データレジスタにフェッチさせ、 前記第1のレジスタには前記第1のデー タ転送経路を、前記第の2レジスタには前 記第2のデータ転送経路をそれぞれ経由し て前記データレジスタから前記第1のデー タと前記第2のデータとを同時に転送すべ くなしてあることを特徴とするデータ処理 装置。
  2. (2)命令をデコードする命令デコード部と、前記命令
    デコード部の出力に従って命令の 実行を制御する制御部と、 第1のレジスタとの間に第1のデータ転送 経路をもち、第2のレジスタとの間に第2のデータ転送
    経路をもつデータレジスタと、 前記データレジスタに接続されたメモリと、前記メモリ
    のアドレスを保持するアドレス レジスタと、 前記アドレスレジスタに保持したアドレス 値を出力して前記メモリをアクセスし、前記データレジ
    スタの内容を前記メモリに転送するメモリアクセス部と を備え、 前記制御部は、 前記命令デコード部が2つ以上のレジス タからデータを前記メモリにストアする命 令をデコードした場合、前記第1のデータ 転送経路と前記第2のデータ転送経路とを 経由して第1のデータと第2のデータとを 前記第1のレジスタと前記第2のレジスタ から前記データレジスタへそれぞれ同時に 転送し、 前記データレジスタに前記第1のデータ と前記第2のデータとを連結させ、前記メ モリアクセス部に前記メモリをアクセスさ せて前記連結されたデータを前記データレ ジスタから前記メモリにストアさせるべく なしてあることを特徴とするデータ処理装 置。 命令をデコードする命令デコード部と、 前記命令デコード部の出力に従って命令の 実行を制御する制御部と、 第1のレジスタとの間に第1のデータ転送 経路を、第2のレジスタとの間に第2のデータ転送経路
    をそれぞれ有するデータレジスタと、 前記データレジスタに接続されたメモリと、前記メモリ
    のアドレスを保持するアドレス レジスタと、 前記アドレスレジスタに保持されているア ドレス値を出力して前記メモリをアクセスし、データを
    前記データレジスタにフェッチするメモリアクセス部と を備え、 前記制御部は、 前記命令デコード部が2つ以上のレジス タに前記メモリからデータをロードする命 令をデコードした場合、前記メモリアクセ ス部に前記メモリをアクセスさせて第1の データと第2のデータとを連結したデータ を前記データレジスタにフェッチさせ、 前記第1のレジスタには前記第1のデー タ転送経路を、前記第の2レジスタには前 記第2のデータ転送経路をそれぞれ経由し て前記データレジスタから前記第1のデー タと前記第2のデータとを同時に転送し、 前記命令デコード部が2つ以上のレジス タからデータを前記メモリにストアする命 令をデコードした場合、前記第1のデータ 転送経路と前記第2のデータ転送経路とを 経由して第1のデータと第2のデータとを 前記第1のレジスタと前記第2のレジスタ から前記データレジスタへそれぞれ同時に 転送し、 前記データレジスタに前記第1のデータ と前記第2のデータとを連結させ、前記メ モリアクセス部に前記メモリをアクセスさ せて前記連結されたデータを前記データレ ジスタから前記メモリにストアさせるべく なしてあることを特徴とするデータ処理装 置。
JP1326254A 1989-12-16 1989-12-16 データ処理装置 Pending JPH03186928A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP1326254A JPH03186928A (ja) 1989-12-16 1989-12-16 データ処理装置
US07/627,066 US5481734A (en) 1989-12-16 1990-12-13 Data processor having 2n bits width data bus for context switching function
US08/548,766 US5652900A (en) 1989-12-16 1995-10-26 Data processor having 2n bits width data bus for context switching function
US08/887,681 US6757809B1 (en) 1989-12-16 1997-07-03 Data processor having 2n bits width data bus for context switching functions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1326254A JPH03186928A (ja) 1989-12-16 1989-12-16 データ処理装置

Publications (1)

Publication Number Publication Date
JPH03186928A true JPH03186928A (ja) 1991-08-14

Family

ID=18185718

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1326254A Pending JPH03186928A (ja) 1989-12-16 1989-12-16 データ処理装置

Country Status (2)

Country Link
US (2) US5481734A (ja)
JP (1) JPH03186928A (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5483518A (en) * 1992-06-17 1996-01-09 Texas Instruments Incorporated Addressable shadow port and protocol for serial bus networks
US5539911A (en) * 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US5493687A (en) 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
JP3730252B2 (ja) * 1992-03-31 2005-12-21 トランスメタ コーポレイション レジスタ名称変更方法及び名称変更システム
EP0638183B1 (en) * 1992-05-01 1997-03-05 Seiko Epson Corporation A system and method for retiring instructions in a superscalar microprocessor
WO1994016384A1 (en) * 1992-12-31 1994-07-21 Seiko Epson Corporation System and method for register renaming
US5628021A (en) * 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
TW321744B (ja) * 1994-04-01 1997-12-01 Ibm
US5969538A (en) 1996-10-31 1999-10-19 Texas Instruments Incorporated Semiconductor wafer with interconnect between dies for testing and a process of testing
US5860000A (en) * 1996-01-31 1999-01-12 Hitachi Micro Systems, Inc. Floating point unit pipeline synchronized with processor pipeline
JP3658072B2 (ja) * 1996-02-07 2005-06-08 株式会社ルネサステクノロジ データ処理装置およびデータ処理方法
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
US5906002A (en) * 1997-02-10 1999-05-18 International Business Machines Corporation Method and apparatus for saving and restoring the context of registers using different instruction sets for different sized registers
US6405335B1 (en) 1998-02-25 2002-06-11 Texas Instruments Incorporated Position independent testing of circuits
US6253312B1 (en) * 1998-08-07 2001-06-26 Ip First, L.L.C. Method and apparatus for double operand load
US6405273B1 (en) * 1998-11-13 2002-06-11 Infineon Technologies North America Corp. Data processing device with memory coupling unit
US6209082B1 (en) 1998-11-17 2001-03-27 Ip First, L.L.C. Apparatus and method for optimizing execution of push all/pop all instructions
US7058862B2 (en) * 2000-05-26 2006-06-06 Texas Instruments Incorporated Selecting different 1149.1 TAP domains from update-IR state
EP1050799A1 (en) * 1999-05-03 2000-11-08 STMicroelectronics S.A. Execution of a computer program
US6408380B1 (en) * 1999-05-21 2002-06-18 Institute For The Development Of Emerging Architectures, L.L.C. Execution of an instruction to load two independently selected registers in a single cycle
US6868490B1 (en) 2000-06-21 2005-03-15 Pts Corporation Methods and apparatus for providing context switching between software tasks with reconfigurable control
WO2000079394A1 (en) * 1999-06-21 2000-12-28 Bops Incorporated Methods and apparatus for providing manifold array (manarray) program context switch with array reconfiguration control
US6442676B1 (en) * 1999-06-30 2002-08-27 Bull Hn Information Systems Inc. Processor with different width functional units ignoring extra bits of bus wider than instruction width
US6728915B2 (en) 2000-01-10 2004-04-27 Texas Instruments Incorporated IC with shared scan cells selectively connected in scan path
US6769080B2 (en) 2000-03-09 2004-07-27 Texas Instruments Incorporated Scan circuit low power adapter with counter
FR2823364B1 (fr) * 2001-04-05 2003-06-27 St Microelectronics Sa Dispositif et procede de protection partielle en lecture d'une memoire non volatile
JP3825328B2 (ja) * 2002-01-23 2006-09-27 Necエレクトロニクス株式会社 プロセッサ合成装置、システムlsi合成装置、プロセッサ合成方法、システムlsi合成方法、及び記録媒体
US20070073932A1 (en) * 2005-09-13 2007-03-29 Alcatel Method and apparatus for a configurable data path interface
KR100770034B1 (ko) * 2006-03-02 2007-10-26 삼성전자주식회사 복수의 레지스터 파일을 이용한 문맥 교환 방법 및 시스템
US9459869B2 (en) * 2013-08-20 2016-10-04 Apple Inc. Intelligent caching for an operand cache
US9652233B2 (en) * 2013-08-20 2017-05-16 Apple Inc. Hint values for use with an operand cache
US10241706B2 (en) * 2016-05-20 2019-03-26 Renesas Electronics Corporation Semiconductor device and its memory access control method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60134938A (ja) * 1983-12-23 1985-07-18 Nec Corp レジスタフアイル読出し方式
JPS60138640A (ja) * 1983-12-27 1985-07-23 Nec Corp レジスタフアイル書込み方式

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2309029C2 (de) * 1973-02-23 1985-10-03 Nixdorf Computer Ag, 4790 Paderborn Elektronische Digital-Datenverarbeitungs-Anlage mit Mikroprogrammsteuerung
US4090237A (en) * 1976-09-03 1978-05-16 Bell Telephone Laboratories, Incorporated Processor circuit
US4296469A (en) * 1978-11-17 1981-10-20 Motorola, Inc. Execution unit for data processor using segmented bus structure
NL8304442A (nl) * 1983-12-27 1985-07-16 Koninkl Philips Electronics Nv Geintegreerde en programmeerbare processor voor woordsgewijze digitale signaalbewerking.
BG39765A1 (en) * 1985-02-14 1986-08-15 Turlakov Device for connecting 8- degree and 16- degree modules to 16- degree microprocessor system
JPS6226561A (ja) * 1985-07-26 1987-02-04 Toshiba Corp パ−ソナルコンピユ−タ
US4760517A (en) * 1986-10-17 1988-07-26 Integrated Device Technology, Inc. Thirty-two bit, bit slice processor
US5201039A (en) * 1987-09-30 1993-04-06 Mitsubishi Denki Kabushiki Kaisha Multiple address-space data processor with addressable register and context switching
US5165037A (en) * 1988-09-09 1992-11-17 Compaq Computer Corporation System for controlling the transferring of different widths of data using two different sets of address control signals
US5168562A (en) * 1989-02-21 1992-12-01 Compaq Computer Corporation Method and apparatus for determining the allowable data path width of a device in a computer system to avoid interference with other devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60134938A (ja) * 1983-12-23 1985-07-18 Nec Corp レジスタフアイル読出し方式
JPS60138640A (ja) * 1983-12-27 1985-07-23 Nec Corp レジスタフアイル書込み方式

Also Published As

Publication number Publication date
US5481734A (en) 1996-01-02
US5652900A (en) 1997-07-29

Similar Documents

Publication Publication Date Title
JPH03186928A (ja) データ処理装置
US5249286A (en) Selectively locking memory locations within a microprocessor's on-chip cache
JP2616182B2 (ja) データ処理装置
EP0465321B1 (en) Ensuring data integrity in multiprocessor or pipelined processor system
US5568624A (en) Byte-compare operation for high-performance processor
JP2761688B2 (ja) データ処理装置
US5717946A (en) Data processor
EP0463978A2 (en) Granularity hint for translation buffer in high performance processor
JP2678527B2 (ja) キャッシュメモリ装置
JPH02234248A (ja) 仮想メモリシステムをベースとするデジタルコンピュータの命令パイプライン内の予めフェッチした命令でメモリアクセス例外を処理する方法
JP3543181B2 (ja) データ処理装置
JP2581236B2 (ja) データ処理装置
JP2847974B2 (ja) データ処理装置
JPH0215331A (ja) データ処理装置
JP3789583B2 (ja) データ処理装置
JP2669158B2 (ja) データ処理装置
EP0459233A2 (en) Selectively locking memory locations within a microprocessor's on-chip cache
JP3345787B2 (ja) データ処理装置
US6757809B1 (en) Data processor having 2n bits width data bus for context switching functions
JP2556182B2 (ja) デ−タ処理装置
JP2668456B2 (ja) ビット検索回路及びそれを備えたデータ処理装置
JP2504312B2 (ja) プライオリティエンコ―ダ及びそれを備えたデ―タ処理装置
JP2504235B2 (ja) デ―タ処理装置
EP0726516A1 (en) Method and system for selective support of non-architected instructions within a superscalar processor system
JP2646855B2 (ja) データ処理装置