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

データ処理装置

Info

Publication number
JP2696578B2
JP2696578B2 JP1326253A JP32625389A JP2696578B2 JP 2696578 B2 JP2696578 B2 JP 2696578B2 JP 1326253 A JP1326253 A JP 1326253A JP 32625389 A JP32625389 A JP 32625389A JP 2696578 B2 JP2696578 B2 JP 2696578B2
Authority
JP
Japan
Prior art keywords
instruction
address
data
memory
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP1326253A
Other languages
English (en)
Other versions
JPH03186935A (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 JP1326253A priority Critical patent/JP2696578B2/ja
Publication of JPH03186935A publication Critical patent/JPH03186935A/ja
Application granted granted Critical
Publication of JP2696578B2 publication Critical patent/JP2696578B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明はデータ処理装置に関し、更に詳述すれば、タ
スクスイッチング用のメモリに内蔵することにより、タ
スクスイッチングに要する時間を短縮し得るデータ処理
装置に関する。
[従来の技術] 近年のデータ処理装置の動作速度の高速化に伴って主
メモリの高速化が要求され、このためメモリシステムの
実現コストが増大するという問題が生じている。この問
題を解決するための一手法として、データ処理装置と主
メモリとの間に高速メモリであるキャッシュメモリを介
在させることによりデータ処理装置と主メモリとの速度
差を埋め合わせる技術が用いられている。
また、キャッシュメモリをデータ処理装置と同一の集
積回路内に実現することにより高速なキャッシュメモリ
を実現する提案も、たとえば特開昭63-193230号公報に
詳細に開示されている。
しかし、キャッシュメモリを用いて平均的にメモリア
クセス時間を短くするのみにては、複数のデータ処理プ
ロセスを時分割で実行している場合のタスクスイッチン
グ等のような特に高速動作が必要とされる際にキャッシ
ュミスが発生する可能性もあり、結果的にタスクスイッ
チングに要する時間の最大値を小さくすることはできな
い。
この問題を解決するために、タスクスイッチング時の
コンテキスト退避用のメモリを通常のメモリ空間とは別
に定義しておき、このコンテキスト退避用メモリ空間と
して使用されるメモリを高速メモリで構成したり、ある
いはデータ処理装置と同じ集積回路内に実現したりする
ことにより、タスクスイッチングに要する時間を短縮す
る提案もなされている。このような技術は例えば、特開
昭64-91253号公報に詳細に開示されている。
[発明が解決しようとする課題] しかし、キャッシュメモリとして高速メモリを用いて
も、キャッシュミスが発生した場合には高速なメモリア
クセスが実現できない。また、コンテキスト退避用に通
常のメモリ空間とは別のメモリ空間を定義しても、その
メモリ空間を構成するメモリが他のメモリよりも高速動
作可能でなければタスクスイッチングに要する時間を短
縮することは出来ない。
このような問題は、キャッシュメモリは全メモリアク
セスに対して平均してアクセス時間を短縮するためのも
のであって、コンテキスト退避時などの特に高速のメモ
リアクセスが必要な場合に高速なメモリアクセスを確実
に保証することは出来ないという理由に起因している。
ところで、キャッシュメモリは高速なメモリ装置では
あるが、高価であるため単一の機能のみではそのコスト
に見合う有効な利用ができない。特に、キャッシュメモ
リをデータ処理装置と同一の集積回路に内蔵する場合に
は、高価なキャッシュメモリの有効利用が望まれる。
[課題を解決するための手段] 本発明のデータ処理装置は以上のような事情に鑑みて
なされたものであり、命令をデコードする該命令デコー
ド部の出力に従って命令を実行する命令実行部と、アド
レスデコーダ、タグアドレスを格納するタグアドレスメ
モリ及びデータ又は命令コードを格納するデータメモリ
を備え、第1のモード又は第2のモードで動作するメモ
リと、該メモリの動作モードを規定する第1の値又は第
2の値を保持するメモリ制御情報保持手段と、前記命令
実行部及びメモリ間に接続され、データ又は命令コード
を転送するバスと、前記命令実行部からの支持を受けて
アドレスを生成して前記メモリへ出力するアドレス生成
部と、前記メモリ制御情報保持手段が第1の値を保持し
ている場合に、前記アドレス生成部が出力したアドレス
を前記タグアドレスメモリに格納されているタグアドレ
スと比較し、そのいずれかと一致したときに前記データ
メモリから対応するデータ又は命令コードを前記バスへ
出力させる手段と、前記メモリ制御情報保持手段が第2
の値を保持している場合に、前記アドレス生成部が出力
したアドレスを、命令によってアクセス可能なメモリ空
間の一部として前記メモリに割り付けたアドレスと比較
し、該アドレスの範囲内であるときに、前記データメモ
リから対応するデータ又は命令コードを前記バスへ出力
させる手段とを備える。
そして前記メモリ空間はシステムプログラムが使用す
るメモリ空間である。またコンテキストを退避させる命
令で使用するメモリ空間でもある。
〔作用〕
本発明のデータ処理装置では、メモリ制御情報保持手
段が第1の値を保持している場合、前記メモリは命令デ
コード部がデコードすべき命令コード又は命令実行部が
実行すべき命令のオペランドの少なくとも一方となるデ
ータを保持するキャッシュメモリとして動作し、アドレ
ス生成部が出力したアドレスを前記タグアドレスメモリ
に格納されているタグアドレスと比較し、そのいずれか
と一致したとき(キャッシュヒット時)に前記データメ
モリから対応するデータ又は命令コードを前記バスへ出
力させる。データの場合は命令実行部へ、命令コードの
場合は命令フェッチ部へ与えられる。
これに対して、メモリ制御情報保持手段が第2の値を
保持している場合、前記メモリは命令デコード部がデコ
ードすべき命令コード又は命令実行部が実行すべき命令
のオペランドの少なくとも一方となるデータを保持す
る、命令によってアクセス可能なメモリ空間の一部とし
てアドレスが割付けられたランダムアクセスメモリとし
て動作し、アドレス生成部が出力したアドレスをメモリ
に割付けたアドレスと比較し、該アドレスの範囲内であ
るときに、データメモリから対応するデータ又は命令コ
ードを前記バスへ出力させる。
[発明の実施例] 以下、本発明をその実施例を示す図面を参照して詳述
する。
(1) 「本発明のデータ処理装置を用いたシステムの
構成」 第6図に本発明のデータ処理装置を用いたシステムの
構成例を示す。
この構成例では、本発明のデータ処理装置100,命令キ
ャッシュ106,データキャッシュ107及び108,主メモリ109
がアドレスバス101,データバス102,命令バス103,メモリ
アドレスバス104,メモリデータバス105で結合されてい
る。
アドレスバス101は本発明のデータ処理装置100から出
力されるアドレスを命令キャッシュ106とデータキャッ
シュ107,108とに入力する。命令バス103は命令キャッシ
ュ106から出力される命令コードを本発明のデータ処理
装置100に転送する。データバス102は本発明のデータ処
理装置100から出力されるデータをデータキャッシュ10
7,108に転送したり、データキャッシュ107,108から出力
されるデータを本発明のデータ処理装置100に転送した
りする。メモリアドレスバス104は命令キャッシュ106ま
たはデータキャッシュ107,108から出力されるアドレス
を主メモリ109に転送する。メモリデータバス105は主メ
モリ109と命令キャッシュ106またはデータキャッシュ10
7,108間での命令またはデータを転送する。
命令キャッシュ106及びデータキャッシュ107,108がミ
スした場合はそれぞれのキャッシュ106または107がメモ
リアドレスバス104とメモリデータバス105とのバス権を
調停して主メモリ109をアクセスする。
データキャッシュ107,108は本発明のデータ処理装置1
00の側では64ビットのバスに結合するために2つのチッ
プが協調して動作する。各データの64ビットそれぞれの
内の上位32ビットのデータをデータキャッシュ107が、
下位32ビットのデータをデータキャッシュ108が分担し
て受持つ。
以下、本発明のデータ処理装置100の命令体系及び処
理機構について最初に記述し、次に内蔵制御空間メモリ
を使用したタスクスイッチ処理の手法について説明す
る。
(2) 「本発明のデータ処理装置の命令フォーマッ
ト」 本発明のデータ処理装置の命令は16ビット単位で可変
長となっており、奇数バイト長の命令はない。
本発明のデータ処理装置では高頻度に使用される命令
を短いフォーマットとするため、特に工夫された命令フ
ォーマット体系を有する。例えば、2オペランド命令に
対して、基本的に“4バイト+拡張部”の構成を有して
総てのアドレッシングモードが利用可能な一般形フォー
マットと、高頻度の命令及びアドレッシングモードのみ
を使用可能な短縮形フォーマットとの2つのフォーマッ
トを有する。
第9図から第13図に示す本発明のデータ処理装置の命
令フォーマット中に現われる記号の意味は以下の通りで
ある。
−:オペレーションコードが入る部分 Ea:8ビットの一般形のアドレッシングモードでオペラン
ドが指定される部分 Sh:6ビットの短縮形のアドレッシングモードでオペラン
ドが指定される部分 Rn:レジスタファイル上のオペランドがレジスタ番号で
指定される部分 フォーマットは、第9図に示す如く、右側がLSB側で
且つ高いアドレスになっている。
アドレスNとアドレスN+1との2バイトを見ないと
命令フォーマットが判別できないようになっているが、
これは、命令が必ず16ビット(ハーフワード)単位でフ
ェッチ及びデコードされることを前提としているからで
ある。
本発明のデータ処理装置の命令ではいずれのフォーマ
ットの場合も、各オペランドのEaまたはShの拡張部は必
ずそのEaまたはShの基本部を含む16ビット(ハーフワー
ド)の直後に置かれる。これは、命令により暗黙に指定
される即値データ及び命令の拡張部に優先する。従っ
て、4バイト以上の命令では、Eaの拡張部により命令の
オペレーションコードが分断される場合がある。
また、後述する如く、多段間接モードによりEaの拡張
部に更に拡張部が付加される場合にも、次の命令オペコ
ードよりもそちらの方が優先される。
例えば、第1ハーフワードにEa1を含み、第2ハーフ
ワードにEa2を含み、第3ハーフワードまである6バイ
ト命令の場合を考える。Ea1に多段間接モードを使用し
たために通常の拡張部の他に多段間接モードの拡張部も
付加されるものとする。この際、実際の命令ビットパタ
ーンは、命令の第1ハーフワード(Ea1の基本部を含
む)、Ea1の拡張部、Ea1の多段間接モード拡張部、命令
の第2ハーフワード(Ea2の基本部を含む)、Ea2の拡張
部、命令の第3ハーフワードの順となる。
(2.1) 「短縮形2オペランド命令」 第10図は2オペランド命令の短縮形フォーマットを示
す模式図である。
このフォーマットには、ソースオペランド側がメモリ
となるL−formatとデスティネーションオペランド側が
メモリとなるS−formatとがある。
L−formatでは、Shはソースオペランドの指定フィー
ルド、Rnはデスティネーションオペランドのレジスタの
指定フィールド、RRはShのオペランドサイズの指定をそ
れぞれ表す。
レジスタ上に置かれたデスティネーションオペランド
のサイズは32ビットに固定されている。レジスタ側とメ
モリ側とのサイズが異なり、ソース側のサイズが小さい
場合に符号拡張が行なわれる。
S−formatではShはデスティネーションオペランドの
指定フィールド、Rnはソースオペランドのレジスタ指定
フィールド、RRはShのオペランドサイズの指定をそれぞ
れ表す。
レジスタ上に置かれたソースオペランドのサイズは32
ビットに固定されている。レジスタ側とメモリ側とのサ
イズが異なり、ソース側のサイズが大きい場合に、溢れ
た部分の切捨てとオーバーフローチェックとが行われ
る。
(2.2) 「一般形1オペランド命令」 第11図は1オペランド命令の一般形フォーマット(G1
-format)を示す模式図である。
MMはオペランドサイズの指定フィールドである。一部
のG1-format命令では、Eaの拡張部以外にも拡張部を有
する。また、MMを使用しない場合もある。
(2.3) 「一般形2オペランドの場合」 第12図は2オペランド命令の一般形フォーマットを示
す模式図である。
このフォーマットに含まれるのは、8ビットで指定さ
れる一般形アドレッシングモードのオペランドが最大2
つ存在する命令である。オペランドの総数自体は3つ以
上になる場合がある。
EaMはデスティネーションオペランドの指定フィール
ド、MMはデスティネーションオペランドサイズの指定フ
ィールド、EaRはソースオペランド指定フィールド、RR
はソースオペランドサイズの指定フィールドをそれぞれ
示している。
一部のG−format命令では、EaM及びEaRの拡張部以外
にも拡張部を有する。
第13図はショートブランチ命令のフォーマットを示す
模式図である。
ccccは分岐条件指定フィールド、disp:8はジャンプ先
との変位指定フィールドをそれぞれ示している。
本発明のデータ処理装置では8ビットで変位を指定す
る場合には、ビットパターンでの指定値を2倍して変位
値とする。
(2.4) 「アドレッシングモード」 本発明のデータ処理装置の命令のアドレッシングモー
ド指定方法には、レジスタを含めて6ビットで指定する
短縮形と、8ビットで指定する一般形とがある。
未定義のアドレッシングモードを指定した場合、ある
いは意味的に考えて明らかに不合理なアドレッシングモ
ードの組合わせが指定された場合には、未定義命令を実
行した場合と同じく予約命令例外が発生され、例外処理
が起動される。
これに該当するのは、デスティネーションが即値モー
ドである場合、アドレス計算を伴うべきアドレシングモ
ード指定フィールドで即値モードが使用された場合等で
ある。
第14図から第24図に示すフォーマットの模式図中で使
用されている記号の意味は以下の通りである。
Rn:レジスタ指定 (Sh):6ビットの短縮形アドレッシングモードでの指定
方法 (Ea):8ビットの一般形アドレッシングモードでの指定
方法 フォーマットを示す模式図中で点線で囲まれた部分は
拡張部を示す。
(2.4.1) 「基本アドレッシングモード」 本発明のデータ処理装置の命令では種々のアドレッシ
ングモードをサポートする。その内の本発明のデータ処
理装置でサポートする基本アドレッシングモードには、
レジスタ直接モード、レジスタ間接モード、レジスタ相
対間接モード、即値モード、絶対モード、PC相対間接モ
ード、スタックポップモード及びスタックプッシュモー
ドである。
レジスタ直接モードは、レジスタの内容をそのままオ
ペランドとする。フォーマットの模式図を第14図に示
す。図中、Rnは汎用レジスタまたはFPUレジスタの番号
を示す。
レジスタ間接モードは、汎用レジスタの内容をアドレ
スとするメモリの内容をオペランドとする。フォーマッ
トの模式図を第15図に示す。図中、Rnは汎用レジスタの
番号を示す。
レジスタ相対間接モードは、ディスプレースメント値
が16ビットであるか32ビットであるかにより2種類に分
かれる。それぞれ、汎用レジスタの内容に16ビットまた
は32ビットのディスプレースメント値を加えた値をアド
レスとするメモリの内容をオペランドとする。フォーマ
ットの模式図を第16図に示す。図中、Rnは汎用レジスタ
の番号を示す。disp:16とdisp:32とは、それぞれ、16ビ
ットのディスプレースメント値、32ビットのディスプレ
ースメント値を示す。ディスプレースメント値は符号付
きとして扱われる。
即値モードは、命令コード中で指定されるビットパタ
ンをそのまま2進数と見なしてオペランドとする。フォ
ーマットの模式図を第17図に示す。図中、imm_dataは即
値を示し、そのサイズはオペランドサイズとして命令中
で指定される。
絶対モードは、アドレス値が16ビットで示されるか32
ビットで示されるかにより2種類に分かれる。それぞれ
命令コード中で指定される16ビットまたは32ビットのビ
ットパタンをアドレスとしたメモリの内容をオペランド
とする。フォーマットの模式図を第18図に示す。図中、
abs:16とabs:32とはそれぞれ16ビット,32ビットのアド
レス値を示す。abs:16でアドレスが示される場合は指定
されたアドレス値を32ビットに符号拡張する。
PC相対間接モードは、ディスプレースメント値が16ビ
ットか32ビットかにより2種類に分かれる。それぞれプ
ログラムカウンタの内容に16ビットまたは32ビットのデ
ィスプレースメント値を加えた値をアドレスとするメモ
リの内容をオペランドとする。フォーマットの模式図を
第19図に示す。図中、disp:16とdisp:32とはそれぞれ16
ビットのディスプレースメント値,32ビットのディスプ
レースメント値を示す。ディスプレースメント値は符号
付きとして扱われる。PC相対間接モードにおいて参照さ
れるプログラムカウンタの値は、そのオペランドを含む
命令の先頭アドレスである。多段間接アドレッシングモ
ードにおいてプログラムカウンタの値が参照される場合
にも、同様に命令先頭のアドレスがPC相対の基準値とし
て使用される。
スタックポップモードは、SP(スタックポインタ)の
内容をアドレスとするメモリの内容をオペランドとす
る。オペランドアクセス後、SPをオペランドサイズだけ
インクリメントする。例えば、32ビットデータを扱う場
合、オペランドアクセス後にSPが+4だけ更新される。
8,16,64ビットのサイズのオペランドに対するスタック
ポップモードの指定も可能であり、それぞれSPが+1,+
2,+8だけ更新される。フォーマットの模式図を第20図
に示す。オペランドに対しスタックポップモードが意味
を持たないものについては、予約命令例外が発生され
る。予約命令例外となるのは具体的には、writeオペラ
ンド及びread-modify-writeオペランドに対するスタッ
クポップモード指定である。
スタックプッシュモードは、SPの内容をオペランドサ
イズだけデクリメントした内容をアドレスとするメモリ
の内容をオペランドとする。スタックプッシュモードで
はオペランドアクセス前にSPがデクリメントされる。例
えば、32ビットデータを扱う場合は、オペランドアクセ
ス前にSPが−4だけ更新される。8,16,64ビットのサイ
ズのオペランドに対するスタックプッシュモードの指定
も可能であり、それぞれSPが−1,−2,−8だけ更新され
る。フォーマットの模式図を第21図に示す。オペランド
に対してスタックプッシュモードが意味を持たないもの
に対しては、予約命令例外が発生される予約命令例外と
なるのは具体的には、readオペランド及びread-modify-
writeオペランドに対するスタックプッシュモード指定
である。
(2.4.2) 「多段間接アドレッシングモード」 複雑なアドレッシングも、基本的には加算と間接参照
の組み合わせに分解することができる。従って、加算と
間接参照のオペレーションとをアドレッシングのプリミ
ティブとして与えておき、それを任意に組合わせること
が出来れば、いかに複雑なアドレッシングモードをも実
現することが出来る。本発明のデータ処理装置の命令の
多段間接アドレッシングモードはこのような考え方に立
脚したアドレッシングモードである。複雑なアドレッシ
ングモードは、モジュール間のデータ参照及びAI言語の
処理系に特に有用である。
多段間接アドレッシングモードを指定する際、基本ア
ドレッシングモード指定フィールドでは、レジスタベー
ス多段間接モード,PCベース多段間接モード及び絶対ベ
ース多段間接モードの3種類の指定方法の内のいずれか
1つを指定する。
レジスタベース多段間接モードは、汎用レジスタの値
を拡張する多段間接アドレッシングのベース値とするア
ドレッシングモードである。フォーマットの模式図を第
22図に示す。図中、Rnは汎用レジスタの番号を示す。
PCベース多段間接モードは、プログラムカウンタの値
を拡張する多段間接アドレッシングのベース値とするア
ドレッシングモードである。フォーマットの模式図を第
23図に示す。
絶対ベース多段間接モードは、ゼロを拡張する多段間
接アドレッシングのベース値とするアドレッシングモー
ドである。フォーマットの模式図を第24図に示す。
拡張された多段間接モード指定フィールドは、16ビッ
トを単位としており、これが任意回反復される。1段の
多段間接モードにより、ディスプレースメントの加算,
インデクスレジスタのスケーリング(×1,×2,×4,×
8)と加算,メモリの間接参照が行われる。多段間接モ
ードのフォーマットの模式図を第25図に示す。図中の各
フィールドは以下に示す意味を有する。
E=0:多段間接モード継続 E=1:アドレス計算終了 tmp==>address of operand I=0:メモリ間接参照なし tmp+disp+Rx*Scale==>tmp I=1:メモリ間接参照あり mem[tmp+disp+Rx*Scale]==>tmp M=0:<Rx>をインデスクとして使用 M=1:特殊なインデスク <Rx>=0 インデスク値を加算しない (Rx=0) <Rx>=1 プログラムカウンタをインデクス値とし
て使用 (Rx=PC) <Rx>=2〜 reserved D=0:多段間接モード中の4ビットのフィールドd4の値
を4倍してディスプレースメント値とし、これを加算す
る。d4は符号付きとして扱い、オペランドのサイズとは
関係なく必ず4倍して使用する D=1:多段間接モードの拡張部で指定さたdispx(16/32
ビット)をディスプレースメント値とし、これを加算す
る。拡張部のサイズはd4フィールドで指定する d4=0001 dispxは16ビット d4=0010 dispx32ビット XX :インデスクのスケール(scal=1/2/4/8) プログラムカウンタに対して×2,×4,×8のスケーリ
ングを行なった場合には、その段の処理終了後の中間値
(tmp)として不定値が入る。
この多段間接モードによって得られる実効アドレスは
予測できない値となるが、例外は発生しない。プログラ
ムカウンタに対するスケーリングの指定は行なってはい
けない。
多段間接モードによる命令フォーマットのバリエーシ
ョンは第26図及び第27図の模式図に示す。
第26図は多段間接モードが継続するか終了するかのバ
リエーションを示す。第27図はディスプレースメントの
サイズのバリエーションを示す。
任意段数の多段間接モードが利用できれば、コンパイ
ラの中で段数による場合分けが不要になるので、コンパ
イラの負担が軽減されるというメリットがある。多段の
間接参照の頻度が非常に少ないとしても、コンパイラと
しては必ず正しいコードを発生できなければならないか
らである。このため、フォーマット上では任意の段数を
可能としている。
(3) 「メモリ空間とコンテキストスイッチ」 本発明のデータ処理装置100は、プログラム及びデー
タを格納するメモリ空間である論理空間と各種のレジス
タ及び一部の命令により操作されるデータを格納するメ
モリ空間である制御空間との2つのメモリ空間をサポー
トする。
本発明のデータ処理装置100の論理空間は、従来のデ
ータ処理装置においてプログラム,データを格納するメ
モリ空間と同じである。
本発明のデータ処理装置100の制御空間は、制御空間
操作命令によりデータを書込むこと及び読出すことが可
能であり、各種のレジスタがバイトアドレスでマップさ
れているレジスタ領域とデータを格納するためのデータ
領域とがある。なお、制御空間のデータ領域はコンテキ
スト操作命令でもアクセス可能である。
本発明のデータ処理装置と類似した手法で論理区間と
制御空間とをサポートして制御空間にコンテキストを保
持する技術としては、たとえば特開昭64-91253号公報に
詳細に開示されている。
(3.1) 「コンテキストブロックフォーマット」 第30図は本発明のデータ処理装置のコンテキストスイ
ッチング命令であるLDCTX命令とSTCTX命令とで操作され
るコンテキストブロックのフォーマットを示す模式図で
ある。
コンテキストブロックは、浮動小数点レジスタ12,汎
用レジスタ10,11等にて構成されており、先頭アドレス
は第34図の模式図にその構成を示すCTXBBレジスタに保
持される。
LDCTX命令とSTCTX命令とで操作されるコンテキストブ
ロックのフォーマットは第31図の模式図にその構成を示
すCSWレジスタで指定される。
CSWレジスタのFRビット13とRGビット15とが共に“1"
である場合は、コンテキストブロックは第30図に示すフ
ォーマットになる。
FRビット13が“0"でRGビット14が“1"である場合は、
第30図に示されている浮動小数点レジスタ12はLDCTX命
令とSTCTX命令とによる操作対象とはならない。
FRビット13とRGビット14とが共に“0"である場合は、
第30図に示されている浮動小数点レジスタ12,汎用レジ
スタ10,11がLDCTX命令とSTCTX命令とによる操作対象と
ならない。この場合は、CSWレジスタと4つのスタック
ポインタSPI(SP0,SP1,SP2,SP3)及びアドレス変換テー
ブルベースを示すUATBレジスタが操作対象となる。
UATBレジスタの構成は第35図の模式図に示されてい
る。
(3.2) 「コンテキスト操作命令」 LDCTX命令のビットパタンを第32図の模式図に示す。
LDCTX命令のCTXBADRフィールド16はロードすべきコン
テキストブロックの先頭アドレスを8ビットの一般形ア
ドレッシングモードで指定するフィールドである。
Xビット15はロードすべきコンテキストブロックが論
理空間又は制御空間のいずれにあるのかを示すビットで
ある。Xビット15が“0"である場合はコンテキストブロ
ックは論理空間にあり、Xビット15が“1"である場合は
コンテキストブロックは制御空間にあることをそれぞれ
示す。
LDCTX命令が実行された場合、CTXBADRフィールド16に
て指定されるアドレスがCTXBBレジスタにロードされ、
Xビット15で指定される空間内のCTXBADR16フィールド
で指定されるアドレスにあり且つ先頭のCSW値で指定さ
れるフォーマットの操作対象コンテキストブロックが対
応するレジスタにロードされる。
STCTX命令のビットパタンを第33図の模式図に示す。
STCTX命令のXビット17はコンテキストブロックをス
トアすべき空間を指定する。このSTCTX命令のXビット1
7が“0"であればコンテキストブロックを論理空間にス
トアすることが指定され、Xビット17が“1"であればコ
ンテキストブロックを制御空間にストアすることが指定
される。ストアすべきメモリアドレスはCTXBBレジスタ
で指定される。
STCTX命令が実行されると、Xビット17で指定される
空間内のCTXBBレジスタで指定されるアドレスにCSWレジ
スタで指定されるフォーマットのコンテキストブロック
に含まれるレジスタの内容が退避される。
(4) 「本発明のデータ処理装置の機能ブロックの構
成」 第4図は本発明のデータ処理装置の一構成例を示すブ
ロック図である。
本発明のデータ処理装置の内部を機能的に大きく分け
ると、命令入力部110,命令フェッチ部111,命令デコード
部112,第1マイクロROM部113,第2マイクロROM部114,オ
ペランドアドレス計算部115,PC計算部116,整数演算部11
7,浮動小数点演算部118,アドレス入出力部119,オペラン
ドアクセス部120,データ入出力部121に分かれる。
アドレス入出力部119をアドレスバス101に結合し、デ
ータ入出力部121をデータバス102に結合し、命令入力部
110を命令バス103に結合することにより前述の第6図に
示すシステム構成をとることができる。
(4.1) 「命令入力部」 命令入力部110は外部の命令バス103から32ビットごと
に命令コードを本発明にデータ処理装置へ入力する。
命令キャッシュ106のアクセス方法には、1つのアド
レスに対して32ビットの命令コードをアクセスする標準
アクセスモードと1つのアドレスに対して4回連続で32
ビットの命令コードをアクセスするクワッドアクセスモ
ードとがあり、いずれの場合も命令入力部110に入力し
た命令コードを命令フェッチ部111へ出力する。
(4.2) 「命令フェッチ部」 命令フェッチ部111には命令アドレスのアドレス変換
機構,内蔵命令キャッシュ,命令用TLB,命令キューとそ
れらの制御部がある。
命令フェッチ部111は、次にフェッチすべき命令のPC
値を物理アドレスに変換し、内蔵命令キャッシュから命
令コードをフェッチし、命令デコード部112へ出力す
る。内蔵命令キャッシュがミスした場合には、アドレス
入出力部119へ物理アドレスを出力して外部への命令ア
クセスを要求し、命令入力部110を通じて入力された命
令コードを内蔵命令キャッシュに登録する。
次にフェッチすべき命令のPC値は命令キューに入力す
べき命令のPC値として専用のカウンタで計算される。ジ
ャンプが生じた場合には、新たな命令のPC値がオペラン
ドアドレス計算部115,PC計算部116あるいは整数演算部1
17から転送されてくる。
命令用TLBがミスした場合のペーシングによるアドレ
ス変換及び命令用TLB更新も命令フェッチ部111の内部の
制御回路により行われる。
また、本発明のデータ処理装置がバスウォッチモード
である場合は、アドレス入出力部119を通じて入力され
た物理アドレスがヒットする内蔵命令キャッシュのエン
トリを無効化する。
(4.3) 「命令デコード部」 命令デコード部112では基本的に16ビット(ハーフワ
ード)単位に命令コードをデコードする。
このブロックには第1ハーフワードに含まれるオペレ
ーションコードをデコードするFHWデコーダ,第2及び
第3ハーフワードに含まれるオペレーションコードをデ
コードするNFHWデコーダ,アドレッシングモードをデコ
ードするアドレッシングモードデコーダが含まれる。
更に、FHWデコーダ及びNFHWデコーダの出力を更にデ
コードしてマイクロROMのエントリアドレスを計算する
第2デコーダ,条件分岐命令の分岐予測を行う分岐予測
機構,オペランドアドレス計算の際のパイプラインコン
フリクトをチェックするアドレス計算コンフリクトチェ
ック機構も含まれる。
命令デコード部112は命令フェッチ部111から出力され
た命令コードを1クロックにつき0〜6バイトデコード
する。デコード結果の内の、整数演算部117での演算に
関する情報が第1マイクロROM部113へ、浮動小数点演算
部118での演算に関する情報が第2マイクロROM部114
へ、オペランドアドレス計算に関係する情報がオペラン
ドアドレス計算部115へ、PC計算に関係する情報がPC計
算部116へそれぞれ出力される。
(4.4) 「第1マイクロROM部」 第1マイクロROM部113には整数演算部117の制御を行
う種々のマイクロプログラムルーチンが格納されている
マイクロROM,マイクロシーケンサ,マイクロ命令デコー
ダ等どが含まれる。
マイクロ命令はマイクロROMから1クロックに1度読
出される。マイクロシーケンサは命令実行に関するマイ
クロプログラム実行のためのシーケンス処理の他に、例
外,割込,トラップ(この3つ併せてEITと総称する)
の受付けと各EITに対応するマイクロプログラムのシー
ケンス処理も行う。
第1マイクロROM部113へは命令コードに依存しない外
部割込みや整数演算実行結果によるマイクロプログラム
の分岐条件も入力される。
マイクロデコーダの出力は主に整数演算部117に対し
て出力されるが、ジャンプ命令の実行時及び例外受付時
には一部の情報を他の機能ブロックへも出力する。
(4.5) 「第2マイクロROM部」 第2マイクロROM部114には浮動小数点演算部118の制
御を行う種々のマイクロプログラムルーチンが格納され
ているマイクロROM,マイクロシーケンサ,マイクロ命令
デコーダ等が含まれる。
マイクロ命令はマイクロROMから1クロックに1度読
出される。マイクロシーケンサはマイクロプログラムで
示されるシーケンス処理の他に、浮動小数点演算に関係
する例外の処理も行い、マスクされていない浮動小数点
例外が検出された場合には第1マイクロROM部113へ例外
処理を要求する。第2マイクロROM部114のマイクロシー
ケンサは第1マイクロROM部113のマイクロシーケンサと
並列に動作し、整数演算部117と並列に浮動小数点演算
部118を制御する。
第2マイクロROM部113には浮動小数点演算実行結果に
よるフラッグ情報も入力される。
マイクロデコーダの出力は主に浮動小数点演算部118
に対して出力されるが、浮動小数点演算に関係する例外
の検出等の一部の情報は他の機能ブロックへも出力され
る。
(4.6) 「オペランドアドレス計算部」 オペランドアドレス計算部115は、命令デコード部112
のアドレッシングモードデコーダ等から出力されたオペ
ランドアドレス計算に関係する情報によりハードワイヤ
ード制御される。このブロックではメモリ間接アドレッ
シングのためのメモリアクセス以外のオペランドのアド
レス計算とジャンプ命令のジャンプ先アドレスの計算と
が行われる。
オペランドアドレスの計算結果は整数演算部117へ出
力される。オペランドアドレス計算終了段階での先行ジ
ャンプ処理では、ジャンプ先アドレスの計算結果が命令
フェッチ部111とPC計算部とへ出力される。
即値オペランドは整数演算部117及び浮動小数点演算
部118へ出力される。アドレス計算に必要な汎用レジス
タ及びプログラムカウンタの値は整数演算部117又はPC
計算部116から入力される。
(4.7) 「PC計算部」 PC計算部116は命令デコード部112から出力されるPC計
算に関係する情報でハードワイヤードに制御され、命令
のPC値を計算する。
本発明のデータ処理装置の命令は前述の如く、可変長
命令であり、命令をデコードしてみないとその命令の長
さが判らない。PC計算部116は、命令デコード部112から
出力される命令長をデコード中の命令のPC値に加算する
ことにより次の命令のPC値を計算する。
また、PC計算部116では命令アドレスのブレイクポイ
ントレジスタあるいはトリガポインタレジスタの値と実
行された命令のPC値との比較も行われる。
PC計算部116の計算結果は各命令のPC値として命令の
デコード結果とともに出力される。
命令デコードステージでの先行ブランチ処理では、命
令デコード部11から出力されるブランチ幅をPC値に加算
することによりブランチ先命令のアドレスが計算され
る。
また、PC計算部116にはサブルーチンへのジャンプ命
令の実行時にスタックにプッシュしておいたサブルーチ
ンからの戻り先PC値のコピーを保持するPCスタックが用
意されている。PC計算部116は、サブルーチンからのリ
ターン命令に対してはPCスタックから戻先PCを読出すこ
とにより、プリリターン先命令のアドレスを生成する処
理も行う。
(4.8) 「整数演算部」 整数演算部117は第1マイクロROM部113のマイクロROM
に格納されたマイクロプログラムにより制御され、各整
数演算命令の機能を実現するために必要な演算を整数演
算部117の内部にあるレジスタファイルと演算部とを使
用して実行する。
レジスタファイルには汎用レジスタ及び作業用レジス
タが含まれる。また、整数演算部117には整数演算の結
果により変化するフラッグ及び外部割込みのマスクレベ
ルを定めるビット等を含むプロセッサ状態語(PSW),CS
Wレジスタ,UATBレジスタ,CTXBBレジスタ,バッファメモ
リ制御レジスタ等も含まれる。
命令の演算対象となるオペランドがアドレスあるいは
即値である場合は、オペランドアドレス計算部115から
即値あるいは計算されたアドレスが入力される。また、
命令の演算対象となるオペランドがメモリ上のデータで
ある場合は、アドレス計算部115で計算されたアドレス
がオペランドアクセス部120へ出力され、データバッフ
ァあるいは外部からフェッチされたオペランドが整数演
算部117へ入力される。
演算に際して、データバッファ,外部のデータキャッ
シュ107,108あるいは主メモリ109をリードする必要があ
る場合は、整数演算部117はマイクロプログラムの指示
によりオペランドアクセス部120へアドレスを出力して
目的のデータをフェッチする。
演算結果をデータバッファ,外部のデータキャッシュ
107,108あるいは主メモリ109へストアする必要がある場
合は、整数演算部117はマイクロプログラムの指示によ
りオペランドアクセス部120へアドレスとデータとを出
力する。この際、P計算部116からはそのストア動作を
行った命令のPC値がオペランドアクセス部120出力され
る。
外部割込み,例外の処理等が行われて新たな命令アド
レスを整数演算部117が得た場合は、整数演算部117はこ
れを命令フェッチ部111とPC計算部116とへ出力する。
(4.9) 「浮動小数点演算部」 浮動小数点演算部118は第2マイクロROM部114のマイ
クロROMに格納されたマイクロプログラムにより制御さ
れ、各浮動小数点演算命令の機能を実現するために必要
な演算を浮動小数点演算部118の内部にあるレジスタフ
ァイルと演算部とを使用して実行する。
また浮動小数点演算部118には浮動小数点演算の丸め
処理方法及び浮動小数点演算例外の検出許可をモード設
定する浮動小数点演算モード制御レジスタFMCと、浮動
小数点演算結果に対するフラグ及び浮動小数点演算例外
の発生状態に示すステータスビットからなる浮動小数点
演算状態語FSWとが備えられている。
命令の演算対象となるオペランドが即値である場合
は、オペランドアドレス計算部115から浮動小数点演算
部118へ即値が入力される。また、命令の演算対象とな
るオペランドがメモリ上のデータである場合は、アドレ
ス計算部115で計算されたアドレスがオペランドアクセ
ス部120へ出力され、データバッファまたは外部からフ
ェッチされたオペランドが浮動小数点演算部118へ入力
される。
オペランドを内蔵データキャッシュ,外部のデータキ
ャッシュ107,108あるいは主メモリ109へストアする必要
がある場合は、浮動小数点演算部118はマイクロプログ
ラムの指示によりオペランドアクセス部120へデータを
出力する。ストア動作では浮動小数点演算部118と整数
演算部117とが協調して動作し、オペランドアクセス部1
20に対して整数演算部117からオペランドのアドレスが
出力され、浮動小数点演算部118からオペランドが出力
される。この際、PC計算部116からはそのストア動作を
行った命令のPC値がオペランドアクセス部120へ出力さ
れる。
(4.10) 「オペランドアクセス部」 オペランドアクセス部120にはオペランドアドレスの
アドレス変換機構,データバッファ,データ用TLB,スト
アバッファ,オペランドブレイクポイントレジスタとそ
れらの制御部とがある。
なお、データバッファはモード切換えにより内蔵デー
タキャッシュまたはPC値のトレースメモリとして動作す
る。
データバッファを内蔵データキャッシュとして動作さ
せる場合、データのロード動作に際しては、オペランド
アクセス部120はオペランドアドレス計算部115または整
数演算部117から出力されたロードすべきデータの論理
アドレスを物理アドレスに変換し、データバッファから
データをフェッチし、整数演算部117または浮動小数点
演算部118へ出力する。
データバッファがミスした場合には、オペランドアク
セス部120はアドレス入出力部119へ物理アドレスを出力
し、外部へのデータアクセスを要求し、データ入出力部
122を通じて入力されたデータをデータバッファに登録
する。
データのストア動作に際しては、オペランドアクセス
部120は整数演算部117から出力さたストアすべきデータ
の論理アドレスを物理アドレスに変換し、整数演算部11
7あるいは浮動小数点演算部118から出力されたデータを
データバッファにストアすると共に、ストアバッファを
通じてアドレス入出力部119へ物理アドレスを出力し、
データ入出力部122を通じて出たを外部へ出力する。ス
トア動作でミスが発生した場合には、データの更新は行
われない。
ストアバッファではストアすべきデータとそのアドレ
ス,更にそのストア動作を行た命令のPC値とが1組にし
て管理される。ストアバッファでのストア動作は先入れ
先出し制御方式で管理される。
データバッファをコンテキスト退避用メモリとして動
作させる場合、データバッファはアドレスがH'FFFFE000
〜H'FFFFFFFF(H'は16進数を表す)の制御空間となる
(ランダムアクセスメモリ)RAMとして動作し、コンテ
キストスイッチング命令又は制御空間操作命令でアクセ
スすることが可能である。
データ用TLBがミスした場合のページングによるアド
レス変換及びデータ用TLBの更新もオペランドアクセス
部120の内部の制御回路により行われる。また、メモリ
アクセスアドレスがメモリにマップされたI/O領域に入
るか否かのチェックも行われる。
また、データバッファを内蔵データキャッシュとして
動作させる際に、本発明のデータ処理装置のバスウォッ
チモードである場合には、オペランドアクセス部120は
アドレス入出力部119を通じて入力された物理アドレス
がヒットするデータバッファのエントリを無効化する。
(4.11) 「アドレス入出力部」 アドレス入出力部119は命令フェッチ部111とオペラン
ドアクセス部120とか出力されたアドレスを本発明のデ
ータ処理装置100の外部へ出力する。
アドレスの出力は本発明のデータ処理装置100で定め
られたバスプロトコルに従って実行される。
バスプロトコルの制御はアドレス入出力部119内にあ
る外部バス制御回路で行われる。外部バス制御回路では
ページ不在例外及びバスアクセス例外,外部割込みの受
付けも行う。
また、本発明のデータ処理装置100以外の外部デバイ
スがバスマスタになっており、本発明のデータ処理装置
100がバスウォッチモードである場合には、アドレス入
出力部119は外部デバイスがデータライトサイクルを実
行した際にアドレスバス101上へ出力されたアドレスを
取込んで命令フェッチ部111とオペランドアクセス部120
とへ転送する。
(4.12) 「データ入出力部」 データ入出力部121はオペランドのロード動作に際し
ては、データバス102からデータを取込みオペランドア
クセス部120へ転送する。オペランドのストア動作に際
しては、オペランドアクセス部120から出力されたオペ
ランドをデータバス102へ出力する。
データキャッシュ107,108のアクセス方法には、1つ
のアドレスに対して64ビットのデータをアクセスする標
準アクセスモードと1つのアドレスに対して4回連続で
64ビットのデータをアクセスするクワッドアクセスモー
ドとがあり、いずれの場合もデータ入出力部121はオペ
ランドアクセス部120と外部のメモリとの間でやり取り
するデータを入出力する。
(5) 「パイプライン処理」 本発明のデータ処理装置100は各種のバッファ記憶
と、命令バス103,データバス102を使用したメモリの効
率的アクセスにより命令をパイプライン処理して高性能
に動作する。
ここでは、本発明のデータ処理装置100のパイプライ
ン処理方法について説明する。
(5.1) 「パイプライン機構」 本発明のデータ処理装置100のパイプライン処理機構
は第5図に模式図に示すように構成されている。
命令のプリフェッチを行う命令フェッチステージ(IF
ステージ)31,命令のデコードを行うデコードステージ
(Dステージ)32,オペランドのアドレス計算を行うオ
ペランドアドレス計算ステージ(Aステージ)33,マイ
クロROMアクセス(特にRステージ37と称す)とオペラ
ンドのプリフェッチ(特にOFステージ38と称す)を行う
オペランドフェッチステージ(Fステージ)34,命令の
実行を行う実行ステージ(Eステージ)35,メモリオペ
ランドのストアを行うストアステージ(Sステージ)36
の6段構成でパイプライン処理を実行する。
Sステージ36には3段のストアバッファがある。
各ステージは他のステージとは独立に動作し、理論上
は6つのステージが完全に独立動作する。
Sステージ36以外の各ステージは1回の処理を最小1
クロックで行うことができる。Sステージ36は1回のオ
ペランドストア処理を最小2クロックで行うことができ
る。従ってメモリオペランドのストア処理がない場合、
理想的には1クロックごとに次々にパイプライン処理が
進行する。
本発明のデータ処理装置にはメモリ−メモリ間演算あ
るいはメモリ間接アドレッシング等のような1回の基本
パイプライン処理のみでは処理出来ない命令があるが、
これらの処理に対してもなるべく均衡したパイプライン
処理が行えるように構成されている。
複数のメモリオペランドを有する命令に対しては、メ
モリオペランドの数に基づいてデコード段階で複数のパ
イプライン処理単位(ステップコード)に分解してパイ
プライン処理が行われる。
IFステージ31からDステージ32へ渡される情報は命令
コードそのものである。
Dステージ32からAステージ33へ渡される情報は、命
令で指定された演算に関するコード(Dコード41と称
す)と、オペランドのアドレス計算に関係するコード
(Aコード42と称す)と処理中命令のプログラムカウン
タ値(PC)との3つである。
Aステージ33からFステージ34に渡される情報は、マ
イクロプログラムルーチンのエントリ番地及びマイクロ
プログラムへのパラメータ等を含むRコード43と、オペ
ランドのアドレスとアクセス方法指示情報等を含むFコ
ード44と、処理中命令のプログラムカウンタ値(PC)と
の3つである。
Fステージ34からEステージ35へ渡される情報は、演
算制御情報とリテラル等を含むEコード45と、オペラン
ド及びオペランドアドレス等を含むSコード(46a,46
b)と、処理中命令のプログラムカウンタ値(PC)との
3つである。
Sコード46a,46bはアドレス46aとデーダ46bとからな
る。
Eステージ35からSステージ36へ渡される情報は、ス
トアすべき演算結果であるWワード47a,47bと、その演
算結果を出力した命令のプログラムカウンタ値(PC)と
の2つである。
Wコード47a,47bはアドレス47aとデータ47bとからな
る。
Eステージ35以前のステージで検出されたEITはその
コードがEステージ35に到達するまでEIT処理を起動し
ない。Eステージ35で処理されている命令のみが実行段
階の命令であり、IFステージ31〜Fステージ34で処理さ
れている命令は未だ実行段階に至っていないからであ
る。従ってEステージ35以前で検出されたEITは検出さ
れたことがステップコード中に記録されて次のステージ
に伝えられるのみである。
Sステージ36で検出されたEITはEステージ35で処理
中命令の実行が完了した時点またはその命令の処理がキ
ャンセルされた時点で受付けられ、Eステージ35に戻っ
て処理される。
(5.2) 「各パイプラインステージの処理」 各パイプラインステージへの入出力ステップコードに
は第5図に示したように便宜上名称が付与されている。
またステップコードには、オペレーションコードに関す
る処理を行っているマイクロROMのエントリ番地やEス
テージ35に対するパラメータ等になる系列と、Eステー
ジ35の処理対象のオペランドになる系列との2系列があ
る。
また、Dステージ32からSステージ36までの間では処
理中命令のプログラムカウンタ値が受渡される。
(5.2.1) 「命令フェッチステージ」 命令フェッチステージ(IFステージ)31で命令フェッ
チ部111が動作する。
命令フェッチ部111は内蔵命令キャッシュあるいは外
部から命令をフェッチして命令キューに入力し、Dステ
ージ32に対して2〜6バイト単位に命令コードを出力す
る。命令キューの入力は整置された4バイト単位で行わ
れる。
命令フェッチ部111が標準アクセスモードで外部から
命令をフェッチする場合は整置された4バイトにつき最
小2クロックを要する。
クワッドアクセスモードでは16バイトにつき最小5ク
ロックを要する。
内蔵命令キャッシュがヒットした場合は整置された8
バイトにつき1クロックでフェッチ可能である。
命令キューの出力単位は2バイトごとに可変であり、
1クロックの間に最大6バイトまで出力できる。またジ
ャンプの直後には命令キューをバイパスして命令基本部
2バイトを直接命令デコーダに転送することもできる。
命令の論理アドレスの物理アドレスへの変換,内蔵命
令キャッシュや命令用TLBの制御,プリフェッチ先命令
アドレスの管理あるいは命令キューの制御もIFステージ
31で行われる。
(5.2.2) 「命令デコードステージ」 命令デコードステージ(Dステージ)32はIFステージ
31から入力された命令コードをデコードする。
命令コードのデコードは、命令デコード部112のFHWデ
コーダ,NFHWデコーダ,アドレッシングモードデコーダ
を使用して1クロックに1度行なわれ、1回のデコード
処理で0〜6バイトの命令コードが消費される(リター
ンサブルーチン命令の復帰先アドレスを含むステップコ
ードの出力処理等では命令コードは消費されない)。
1回のデコードでAステージ33に対してアドレス計算
情報であるAコード42とオペコードの中間デコード結果
であるDコード41とが出力される。
Dステージ32ではPC計算部116の制御,命令キューか
らの命令コード出力処理も行われる。
Dステージ32ではブランチ命令あるいはサブルーチン
からのリターン命令に対して先行ジャンプ処理が行われ
る。先行ジャンプを行った無条件ブランチ命令に対して
はDコード41及びAコード42は出力されず、Dステージ
32において命令の処理を終了する。
(5.2.3) 「オペランどアドレス計算ステージ」 オペランドアドレス計算ステージ(Aステージ)33の
処理は大きく2つに分かれる。
1つは命令デコード部112の第2デコーダを使用して
オペレーションコードの後段デコードを行う処理で、他
方はオペランドアドレス計算部54でオペランドアドレス
の計算を行う処理である。
オペレーションコードの後段デコード処理はDコード
41を入力とし、レジスタ,メモリの書込み予約及びマイ
クロプログラムルーチンのエントリ番地とマイクロプロ
グラムに対するパラメータ等を含む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) 「マイクロ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マイクロROM部114がEステージ35で使用
され、次のRコード43がマイクロROMアクセス待ちにな
る場合がある。
Rコード43に対するマイクロROMアクセスが行われる
のはEステージ35でのマイクロROMアクセスが行われな
い場合である。
本発明のデータ処理装置100では多くの整数演算命令
が1マイクロプログラムステップで行われ、多くの浮動
小数点演算命令が2マイクロプログラムステップで行わ
れるため、実際にはRコード43に対するマイクロROMア
クセスが次々と行われる頻度が高い。
(5.2.5) 「オペランドフェッチステージ」 オペランドフェッチステージ(OFステージ)38はFス
テージ34で行う上記の2つの処理の内のオペランドプリ
フェッチ処理を行う。
オペランドフェッチステージ38ではFコード44の論理
アドレスをデータTLBで物理アドレスに変換し、その物
理アドレスで内蔵データキャッシュをアクセスしてオペ
ランドをフェッチし、そのオペランドとFコード44とし
て転送されてきたその論理アドレスとを組合わせてSコ
ード46a,46bとして出力する。
1つのFコード44では8バイト境界をクロスしてもよ
いが、8バイト以下のオペランドフェッチを指定する。
Fコード44にはオペランドのアクセスを行うか否かの
指定も含まれており、Aステージ33で計算されたオペラ
ンドアドレス自体あるいは即値をEステージ35へ転送す
る場合にはオペランドプリフェッチは行わず、Fコード
44の内容をSコード46a,46bとして転送する。
プリフェッチしようとするオペランドとEステージ35
が書込み処理を行おうとするオペランドとが一致する場
合は、オペランドプリフェッチは内蔵データキャッシュ
からは行われず、バイパスして行なわれる。
(5.2.6) 「実行ステージ」 実行ステージ(Eステージ)35はEコード45及びSコ
ード46a,46bを入力として動作する。
このEステージ35が命令を実行するステージであり、
Eステージ34以前のステージで行われた処理は総てEス
テージ35のための前処理である。
Eステージ35でジャンプが実行されたりあるいはEIT
処理が起動されたりした場合は、IFステージ31〜Fステ
ージ34まででの処理はすべて無効化される。
Eステージ35はマイクロプログラムにより制御され、
Eコード45に示されたマイクロプログラムルーチンのエ
ントリ番地からの一連のマイクロ命令を実行することに
より命令を実行する。
Eコード45には整数演算部117を制御するコード(特
にEIコードと称す)と浮動小数点演算部118を制御する
コード(特にEFコードと称す)とがある。EIコードとEF
コードとは独立に出力可能であり、この際Eステージ35
では整数演算部117と浮動小数点演算部118とが並列に動
作する。
例えば浮動小数点演算部118でメモリオペランドを有
さない浮動小数点命令を実行する場合はこの動作は整数
演算部117の動作と並行して実行される。
整数演算でも浮動小数点演算でもマイクロROMの読出
しとマイクロ命令の実行とはパイプライン化されて行わ
れる。従って、マイクロプログラムで分岐が発生した場
合は1マイクロステップの空きができる。
Eステージ35ではAステージ33で行ったレジスタある
いはメモリに対する書込み予約をオペランドの書込みの
後に解除する。
各種の割込は命令の切目でEステージ35に直接受付け
られ、マイクロプログラムにより必要な処理が実行され
る。その他の各種EITの処理もEステージ35でマイクロ
プログラムにより行われる。
演算の結果をメモリにストアする必要がある場合は、
Eステージ35はSステージ36へWコード47a,47bとスト
ア処理を行う命令のプログラムカウンタ値とを出力す
る。
(5.2.7) 「オペランドストアステージ」 オペランドストアステージ(Sステージ)36はWコー
ドの論理アドレス47aをデータTLBで物理アドレスに変換
し、そのアドレスでWコードのデータ47bをデータバッ
ファにストアする。同時にオペランドストアステージ36
はWコード47a,47bとプログラムカウンタ値とをストア
バッファに入力し、データTLBから出力された物理アド
レスを用いて外部のメモリへWコードのデータ47bをス
トアする処理を行う。
オペランドストアステージ36の動作はオペランドアク
セス部120で行われ、データTLBあるいはデータバッファ
がミスした際のアドレス変換処理及びデータバッファの
入換え処理も行う。
オペランドストアステージ36がオペランドのストア処
理でEITで検出した場合はストアバッファにWコード47
a,47bとプログラムカウンタ値とを保持したままでEス
テージ35にEITを通知する。
(5.3) 「各パイプラインステージの状態制御」 パイプラインの各ステージは入力ラッチと出力ラッチ
を有し、他のステージとは独立に動作することを基本と
する。
各ステージは1つ前に行った処理が終了し、その処理
結果を出力ラッチから次のステージの入力ラッチへ転送
し、自分のステージの入力ラッチに次の処理に必要な入
力信号の総てがそろえば次の処理を開始する。
つまり、各ステージは1つ前段のステージから出力さ
れてくる次の処理に対する入力信号の総てが有効にな
り、その時点の処理結果を後段のステージの入力ラッチ
へ転送し、出力ラッチが空になると次の処理を開始す
る。
各ステージが動作を開始する直前のタイミングで入力
信号が総てそろっている必要がある。入力信号がそろっ
ていなければ、そのステージは待機状態(入力待ち)に
なる。
出力ラッチから次のステージの入力ラッチへの転送を
行われる際は次のステージの入力ラッチが空き状態にな
っている必要があり、次のステージの入力ラッチが空き
でない場合もパイプラインステージは待機状態(出力待
ち)になる。
また、キャッシュあるいはTLBがミスしたり、パイプ
ラインで処理中の命令間にデータ干渉が生じると、1つ
のステージの処理に複数クロック必要となってパイプラ
イン処理が遅延する。
(6) 「オペランドアクセス部の詳細動作」 (6.1) 「オペランドアクセス部の構成」 第1図はオペランドアクセス部120の一構成例を示す
詳細なブロック図である。
オペランドアクセス部120は、データの論理アドレス
と物理アドレスとをペアにしてバッファリングするTLB2
01,物理アドレスとデータとをペアにしてバッファリン
グする内蔵のデータキャッシュとして動作するかまたは
コンテキスト退避用の制御空間のメモリとして動作する
データバッファ202,アクセスされたデータの論理アドレ
スの上位とTLB201の論理アドレスタグとを比較する論理
アドレス比較器303,TLB201から出力された物理アドレス
とデータバッファ202から出力された物理アドレスタグ
とを比較する物理アドレス比較器204,データ入出力回路
207,アドレス出力回路206,ストアバッファ部208,更に論
理アドレス比較器203及び物理アドレス比較器204の比較
結果に従って全体を制御するオペランドアクセス部制御
回路205等にて構成されている。
(6.2) 「論理空間のデータリード時の動作」 整数演算部117から出力された論理アドレスのアドレ
ス変換対象となる上位20ビットの内の下位側(8ビッ
ト)でTLB201のエントリが指定される。
TLB201の指定されたエントリからは論理アドレスタグ
(12ビット)と物理アドレス(20ビット)とが出力され
る。この際、論理アドレスの上位側(12ビット)と論理
アドレスタグとが一致すればTLB201はヒットしたことに
なり、TLB201から出力された物理アドレスは有効であ
る。
データバッファ202が内蔵データキャッシュとして動
作する場合は、論理アドレスの内のページオフセットを
示し物理アドレスに変換されない下位ビット(12ビッ
ト)でデータバッファ202のエントリが指定される。デ
ータバッファ202の指定されたエントリからは物理アド
レスタグ(20ビット)とデータとが出力される。この
際、TLB201から出力された物理アドレスが有効で且つそ
れが物理アドレスタグと一致すればデータバッファ202
はヒットしたことになり、データバッファから出力され
たデータは有効である。
TLB201がミスした場合は、オペランドアクセス制御部
205の制御により、本発明のデータ処理装置100の外部の
メモリにあるアドレス変換テーブルがアクセスされ、論
理アドレスが物理アドレスに変換され、TLB201のエント
リが更新される。TLB201のエントリの更新後、再びTLB2
01がアクセスされ、TLB201はヒットする。
TLB201がヒットしたが内蔵データキャッシュとして動
作したデータバッファ202がミスした場合は、オペラン
ドアクセス部制御回路205の制御により、物理アドレス
で外部のメモリがアクセスされ、データバッファ202の
エントリが更新される。
TLB201がミスした場合は、TLB201から読出された物理
アドレスとデータバッファの物理アドレスタグとが一致
してもデータバッファ202はヒットとはならない。この
場合、データバッファ202のヒット/ミスの判定はTLB20
1のエントリが更新されてTLB201がヒットした後に行わ
れる。
データバッファ202が制御空間のメモリとして動作す
る場合は、論理空間のアクセスに対してTLB201で変換さ
れた物理アドレスが本発明のデータ処理装置100の外部
に出力されることにより外部からデータがフェッチされ
る。
(6.2) 「論理空間データライト時の動作」 オペランドアクセス部120に対するデータのライト動
作はTLB201のアクセスに関してはデータリード動作時と
同様である。
データバッファ202が内蔵データキャッシュとして動
作する場合、データバッファ202のアクセス動作もデー
タリード動作と類似しているが、データバッファ202か
らデータが読出されることはない。
データライト動作ではデータバッファ202がヒットし
た場合はヒットしたエントリにデータが書込まれる。ミ
スした場合はデータバッファ202にはデータは書込まれ
ず、エントリの更新動作も行われない。
本発明のデータ処理装置100のデータバッファ202はラ
イトスルー制御のデータキャッシュとして動作し、デー
タライト動作時にデータバッファ202がヒットした場合
もミスした場合もストアデータが外部へ出力される。
データバッファ202が制御空間のメモリとして動作す
る場合は論理空間へのオペランドライト時にデータバッ
ファがアクセスされることはない。この場合、TLB201で
変換された物理アドレスが本発明のデータ処理装置100
の外部へ出力されると共にストアデータが外部へ出力さ
れる。
外部へのデータのストア処理は最小でも2クロックを
必要とし、本発明のデータ処理装置100のEステージ35
のストア動作速度に比べて低速である。このため、スト
アデータはそのストア動作を行った命令のPC値,ストア
先の物理アドレス,ストア先の論理アドレスと共にスト
アバッファに一旦登録され、その後にストアバッファが
ストア動作を行う。ストアバッファに登録されるストア
動作を行った命令のPC値はPC計算部116から入力された
命令のPC値である。
(6.4) 「制御空間アクセス時の動作」 データバッファ202が、アドレスがH'FFFFE000〜H'FFF
FFFFFの制御空間のメモリとして動作する場合は、アド
レスがH'FFFFE000〜H'FFFFFFFFである制御空間に対する
アクセスはデータバッファ202に対して行われる。
制御空間のアクセスではアドレス変換は行われず、TL
B201動作しない。またデータバッファ202はアドレス範
囲がH'FFFFE000〜H'FFFFFFFFであるランダムアクセスメ
モリ(RAM)として動作する。
リード動作時には、AAバス124から入力されたアドレ
スに従ってデータバッファ202の内容が読出され、DDバ
ス125を通じて整数演算部117または浮動小数点演算部11
8へ出力される。また、ライン動作時には、AAバス124か
ら入力されたアドレスに従ってDDバス125を通じてデー
タ入出力回路207に入力されたデータがデータバッファ2
02に書込まれる。
アドレス範囲がH'FFFFE000〜H'FFFFFFFF以外である領
域の制御空間に対するアクセスは、本発明のデータ処理
装置100の外部に対して行われる。
制御空間のアクセスをデータバッファ202に対して行
うか又は外部に対して行うかは、制御空間アドレスの上
位20ビットに従ってオペランドアクセス部120内で判断
される。この判断は、論理アドレス比較器203でTLB201
側の20ビットで総て“1"にし、その値とAAバス124から
入力されたアドレスの上位の20ビットの内の最下位ビッ
トをdon't careにした19ビット分とを比較することによ
り行われる。
(7) 「外部アクセス動作」 (7.1) 「入出力信号線」 第7図は本発明のデータ処理装置100の入出力信号を
示す模式図である。
本発明のデータ処理装置100は、電源Vccと接地GND,64
本のデータピンと32本のアドレスピンと32本の命令ピン
及び入力クロックCLKの他に種々の制御信号を入出力す
る。
命令アクセスの場合もデータアクセスの場合も、アド
レスピンへは物理アドレスが出力される。
CLKは外部入力クロックであり、本発明のデータ処理
装置100の動作クロックと同一周波数のクロックであ
る。
データアドレスストローブDAS#(#は負論理を表
す)はアドレスピンに出力されたデータアドレスが有効
であることを示す。
リードライトR/W#はデータピンのバスサイクルが入
力であるか出力であるかを区別する。
データストローブDS#は本発明のデータ処理装置100
がデータ入力準備を完了したことまたは本発明のデータ
処理装置100からデータが出力されたことを示す。
DC#は本発明のデータ処理装置100にデータアクセス
サイクルを終了してもよいことを通知する信号である。
BAT(0:2)は第28図に示す様に、アドレスピンとデー
タピンと命令ピンとの値の意味を示す。
命令アドレスストローブIAS#はアドレスピンに出力
された命令アドレスが有効であることを示す。
命令ストローブIS#は本発明のデータ処理装置100が
命令入力準備を完了したことを示す。
IC#は本発明のデータ処理装置100に命令アクセスサ
イクルを終了してもよいことを通知する信号である。
ホールドリクエストHREQ#は本発明のデータ処理装置
100にバス権を要求する信号であり、HACK#は本発明の
データ処理装置100がオールドリクエストHREQ#を受付
けてバス権を他のデバイスに渡したことを示す信号であ
る。
IRL#(0:2)は外部割込み要求信号である。
IACK#は本発明のデータ処理装置100が外部割込みを
受付け、割込みベクトルアクセスサイクルを行っている
ことを示す信号である。
また、WDピンは本発明のデータ処理装置のデータバス
を64ビット総て有効にするか、または32ビットのみを有
効にするかをシステムリセット時に設定するために使用
されるピンである。
なお、第6図にはデータバスを64ビット総て有効にし
た場合の例が示されているが、本発明のデータ処理装置
ではデータバスを32ビットのみ有効にして動作させるこ
とにより、低コストのシステムを構成することが可能な
ようになっている。
(7.2) 「外部デバイスのアクセス」 本発明のデータ処理装置100を用いた第6図に示した
システムの例では、本発明のデータ処理装置100とデー
タキャッシュ107,108とがデータピンに接続するデータ
バス102,アドレスピンに接続するアドレスバス101の
他、BAT(0:2),DAS#,R/W#,DS#,DC#でも接続されて
いる。
本発明のデータ処理装置100と命令キャッシュ11とは
命令ピンに接続する命令バス103,アドレスバス101の
他、BAT(0:2),IAS#,IS#,IC#でも接続されている。
CLKはシステム全体に供給されシステムの基本タイミ
ングを決定するクロックである。
標準アクセスモードでのバスアクセスに際しては、デ
ータバス102を用いたデータアクセスと命令バス103を用
いた命令アクセスとをそれぞれ十分高速な外部のメモリ
に対して外部入力クロックCLKの2サイクルに1度の速
度で行う。
クワッドアクセスモードでのバスアクセスに際して
は、データバス102を用いたデータアクセスと命令バス1
03を用いた命令アクセスとをそれぞれ十分高速な外部の
メモリに対して外部入力クロックCLKの5サイクルに4
度の速度で行う。
アドレスバス101はデータキャッシュ107,108のアクセ
スと命令キャッシュ106のアクセスとの両方に利用され
る。
(8) 「各種制御レジスタ」 (8.1) 「プロセッサ状態語PSWの構成」 第36図は本発明のデータ処理装置100の整数演算部117
にあるプロセッサ状態語(PSW)の構成を示す模式図で
ある。
第36図において、SMビット20はリング0で割込み処理
用スタックポインタを使用中であるかリング0用スタッ
クポインタを使用中であるかを示す。
RNGフィールド21はプログラムが実行されているリン
グ番号を示す。
ATフィールド22はアドレス変換とメモリ保護とのモー
ドを示す。
FEビット23は浮動小数点演算トラップの起動モードを
示す。
DBビット24はデバッグ環境を示す。DB=1であればデ
バッグサポート機構がオンで、デバッグ条件が成立すれ
ばセルフデバッグトラップが起動される。DB=0であれ
ばデバッグサポート機構がオフで、デバッグ条件が成立
してもセルフデバッグトラップは起動されない。
IMASKフィールド25は外部割込みのマスクレベルを示
す。IMASKフィールド25で示されたマスクレベルより優
先度の高い外部割込みが本発明のデータ処理装置100に
入力されると割込み処理が起動される。
PRNGフィールド26は現在のリングを呼出したリングの
リング番号を示す。
FLAGフィールド27は整数演算に関するフラグを示す。
RSWはリセット時にはオールゼロにクリアされる。ま
た、PSWはLDC命令とSTC命令とでその内容を読出すこと
及び指定した内容をを書込むことがそれぞれ可能であ
る。
(8.2) 「バッファメモリ制御レジスタ」 第3図は本発明のデータ処理装置100の内蔵データバ
ッファ202及び内蔵命令バッファの制御を行うバッファ
メモリ制御レジスタの構成を示す模式図である。
第3図におて、DMフィールド3は内蔵データバッファ
202の制御を行うフィールドであり、以下に示す意味を
示す。
DM=00:データバッファを動作させない。
DM=01:データバッファをアドレスがH'FFFFE000〜H'FFF
FFFFFである制御空間のメモリとして動作させる。
DM=10:データバッファをライトスルー制御のデータキ
ャッシュとして動作させる。
DM=11:未定義 RPフィールド1はデータバッファ202がデータキャッ
シュとして動作する際の制御を行うフィールドであり、
以下に示す意味を有する。
RP=00:データキャッシュをフリーズ状態にする。
RP=01:未定義 RP=10:データキャッシュをラインサイズ16バイトで動
作させる。
RP=11:データキャッシュをラインサイズ32バイトで動
作させる。
IMフィールド4は内蔵命令バッファの制御を行うフィ
ールドであり、以下に示す意味を有する。
IM=00:命令バッファを動作させない。
IM=01:命令バッファを命令キューが空のときフェッチ
した命令を選択的に登録するセレクティブキャッシュと
して動作させる。
IM=10:未定義。
IM=11:命令バッファをラインサイズ16バイトの命令キ
ャッシュとして動作させる。
LENフィールド2は命令バッファをセレクティブキャ
ッシュとして動作させた際の命令の登録条件を制御する
フィールドであり、以下に示す意味を有する。
LEN=000:命令の登録は行わず命令キャッシュをフリー
ズする。
LEN=001:命令キューが空になってから連続して1ライ
ン入換える。
LEN=010:命令キューが空になってから連続して2ライ
ン入換える。
LEN=011〜111:未定義。
(8.3) 「パージ指定レジスタ」 第29図は本発明のデータ処理装置100の内蔵データバ
ッファ202及び内蔵命令バッファのパージ動作を制御す
るパージ指定レジスタの構成を示す模式図である。
図中、DS5,DU6,IS7,IU8の各ビットは内蔵データバッ
ファ202のパージ動作を制御するためのビットであり、
これらの各ビットに“1"を書込むとそれぞれのビットに
対応するバッファメモリの内容がパージされる。また、
これらの各ビットに“0"を書込むとそれぞれのビットに
対応するバッファメモリの内容はパージされない。更
に、このレジスタの値が読出された場合には全ビットが
ゼロになる。
DS=0:負の物理アドレスのデータバッファエントリをパ
ージしない。
DS=1:負の物理アドレスのデータバッファエントリをパ
ージする。
DU=0:正の物理アドレスのデータバッファエントリをパ
ージしない。
DU=1:正の物理アドレスのデータバッファエントリをパ
ージする。
IS=0:負の物理アドレスの命令キャッシュエントリをパ
ージしない。
IS=1:負の物理アドレスの命令キャッシュエントリをパ
ージする。
IU=0:正の物理アドレスの命令キャッシュエントリをパ
ージしない。
IU=1:正の物理アドレスの命令キャッシュエントリをパ
ージする。
(9) 「本発明のデータ処理装置の例外処理機能」 (9.1) 「本発明のデータ処理装置で検出されるEITの
種類」 本発明のデータ処理装置100で発生するEITには、命令
に依存しないEITとして、アクセスした論理アドレスに
対応するデータ及び命令が主メモリ109上になくページ
フォールトが発しした場合に検出されるページ不在例
外,論理アドレスを物理アドレスに変換中に発生するエ
ラー,メモリ保護違反及びI/O領域に関する不当なアク
セスが生じた場合に発生するアドレス変換例外,命令ま
たはオペランドアクセスにおいて一定時間以内にバスか
らの応答がなくメモリアクセスが実行されなかった場合
に発生するバスアクセス例外がある。
また、命令に依存して発生するEITとして、ジャンプ
命令のジャンプ先アドレスが奇数であった場合に発生す
る奇数アドレスジャンプトラップ,割当てられていない
命令及びアドレッシングモードのビットパターンを実行
しようとした場合に発生する予約命令例外,整数演算で
0除算を行なった場合に発生するゼロ除算トラップ,浮
動小数点命令を実行した際にマスクされていない例外を
検出した場合に発生する浮動小数点演算トラップ,TRAPA
命令により発生する無条件トラップ,TRAP/cc命令により
発生する条件トラップがある。
(9.2) 「EIT処理ハイドラを起動する際の動作」 本発明のデータ処理装置100ではEITを検出すると、以
下の手順に従うマイクロプログラムが実行され、EIT処
理ハイドラが起動される。
まず、検出したEITに応じたベクトル番号が本発明の
データ処理装置100内部で生成される。
次に、メモリ空間上にあり、それぞれのEITに対する
処理ハイドラの先頭アドレスとEITのベクトルとがペア
にして記憶されているEITベクトルテーブルがアクセス
される。
EITベクトルテーブルの各エントリは8バイトで構成
されており、EIT処理ハイドラに処理が移る前に本発明
のデータ処理装置100のプロセッサステータスワード(P
SW)を更新するためのデータが含まれている。
次に、EIT処理ハイドラから復帰した後に元の命令列
に戻るための戻り先命令のPC値であるNEXTPC,EITを起動
する前のPSW,及び検出したEITの番号等の検出したEITに
関する各種の情報であるEITINFがスタックに退避され
る。
更に必要であれば、EITを検出した命令のPC値等の情
報もスタックに退避される。
これらの処理により生成されるスタックフレームはEI
Tの種類に依存しており、5種類のフォーマットに分か
れる。
次に、読込まれたEITベクトルテーブルエントリに基
づいてPSWが更新される。この際、PSWにreservedの値が
セットされようとするとシステムエラーとなる。このPS
Wの更新により、メモリ保護情報となるリング番号の更
新,アドレス変換の有無の切換え、デバッグ環境の切換
え,割込みマスクレベルの切換え,浮動小数点演算トラ
ップ受付モードの切換えを行うことが可能になる。
次に、EITテーブルのエントリからフェッチされたPC
値へのジャンプが行われ、EIT処理ハンドラが起動す
る。多重にEITが検出されており、未処理のEITが抑止さ
れていない場合はEIT処理ハンドラの先頭命令を実行す
る以前にその未処理のEITに対するEIT処理ハンドラを起
動するための処理が行われる。
(9.3) 「EIT処理ハンドラから元の命令列への復帰動
作」 EIT処理ハンドラによる各EITに対応する処理が終了し
た後、EIT処理ハンドラで最後に実行されるREIT命令で
は以下のような処理を行うマイクロプログラムが実行さ
れて元の命令列に復帰する処理を行う。
まず、スタックからEITが検出された時点のPSW値とEI
TINFとが読込まれる。続いてスタックから戻先命令の論
理アドレスが読込まれる。
更に、EITINF中のフォーマット情報により追加情報の
有無が判定され、追加情報があればスタックからそれが
読込まれる。追加情報は前述の如く5つのフォーマット
に依存してそれぞれ異なる。
次に、スタックから読込まれたEITが検出された時点
のPSW値に従ってPSWの全フィールドがEIT発生前の値に
復帰される。
EITを発生したストアバッファによるライトサイクル
の再実行をREIT命令の実行中に行なう場合がある。
次に、スタックから読込まれた戻り先命令の論理アド
レスへのジャンプが実行され、元の命令列に復帰する。
(10) 「データバッファの詳細動作」 (10.1) データバッファの構成 第8図はデータバッファ202と物理アドレス比較器204
との一構成例を示すブロック図である。
データバッファ202のタグアドレス部とデータ部とか
らなるメモリアレイ部はWブロック230,Xブロック231,Y
ブロック232,Zブロック233の4ブロックにて構成されて
いる。なお、各ブロック230,231,232,233には20ビット
のタグアドレスと16ビットのデータとで一組に構成され
るエントリが128個ずつある。
データはWD234,XD235,YD236,ZD237の4つのデータ入
出力レジスタを介して入出力される。
タグアドレスはWC238,XC239,YC240,ZC241の4つのア
ドレス比較器へ出力される。
IAレジスタ242はTLB201又はアドレス入出力回路246か
らデータバッファ202へ入力されるアドレスを保持し、
上位20ビットが4つのアドレス比較器238,239,240,241
へ出力され、下位の5ビット目から13ビット目の9ビッ
トがメモリアレイ部へ出力される。また、IAレジスタ24
2の下位から12ビット目及び下位5ビットがマルチプレ
クサ制御回路244へ出力される。
マルチプレクサ243は、4つのデータ入出力レジスタ2
34,235,236,237とデータ入出力回路207とのインターフ
ェイスとなる8バイトのIODバッファ245に接続されてい
る。マルチプレクサ制御回路244は4つのアドレス比較
器238,239,240,241とIAレジスタ242との内容に従ってマ
ルチプレクサ243を制御する。
(10.2) 「データキャッシュとしての動作」 バッファメモリ制御レジスタのDMフィールド3を“1
0"とし、RPフィールド1を“10"とするとデータバッフ
ァ202は容量が8kB,ラインサイズが16バイトで4ウエイ
セットアソシアティブのデータキャッシュとして動作す
る。また、メモリアレイの4つのブロック230,231,232,
233はそれぞれ1つのコンパートメントとして動作す
る。
この場合、リードアクセスではIAレジスタ242に入力
されたアドレスの5ビット目から11ビット目の7ビット
で各コンパートメントのエントリが選択され、4つのタ
グアドレスが4つのアドレス比較器238,239,240,241に
それぞれ出力され、4つのバイトデータが4つのデータ
入出力レジスタ234,235,236,237にそれぞれ読出され
る。
4つのアドレス比較器238,239,240,241では4つのタ
グアドレスがIAレジスタ242の上位20ビットのアドレス
とそれぞれ比較される。IAレジスタ242の下位4ビット
のアドレスと比較結果とに従って、一致したコンパート
メントの出力データから必要なデータがマルチプレクサ
243により選択されてIODバッファ245に読出される。
ライトアクセスでは、ヒットしたコンパートメントに
同様な動作でIODバッファ245からマルチプレクサ243と
データ入出力レジスタ234,235,236,267とを通じてデー
タが書込まれる。
データキャッシュがミスした場合は、4バイト×4回
のクワッドアクセスモードで外部のメモリがアクセスさ
れ、4つのコンパートメントの内の対応する1つのエン
トリが書換えられる。このため、RPフィールド1=“1
0"の16バイトラインサイズモードでは、データバス102
を32ビットで使用するシステムで有効に動作する。
バッファメモリ制御レジスタのDMフィールド3を“1
0"とし、RPフィールド1を“11"とすると、データバッ
ファ202は容量が8kB,ラインサイズが32バイトで2ウエ
イセットアソシアティブのデータキャッシュとして動作
する。この場合、メモリアレイはWブロック230とXブ
ロック231とが組み合わさって1つのコンパートメント
として動作し、またYブロック232とZブロック233とが
組合わさって1つのコンパートメントとして動作する。
Wブロック230とXブロック231との同一エントリのタ
グアドレス部には同一の値が記憶され、同一エントリの
データ部には32バイトのデータが16バイトずつ記憶され
る。同様に、Yブロック232とZブロック233との同一エ
ントリのタグアドレス部には同一の値が記憶され、同一
エントリのデータ部には32バイトのデータが16バイトず
つ記憶される。
この場合、リードアクセスではIAレジスタ242に入力
されたアドレスの6ビット目から12ビット目の7ビット
で各コンパートメントのエントリが選択され、4つのタ
グデータが4つのアドレス比較器238,239,240,241にそ
れぞれ出力され、4つの16バイトデータが4つのデータ
入出力レジスタ234,235,236,237にそれぞれ読出され
る。
4つのアドレス比較器238,239,240,241では4つのタ
グアドレスがIAレジスタ242の上位20ビットのアドレス
とそれぞれ比較される。IAレジスタ242の下位5ビット
のアドレスと比較結果とに従って、一致したコンパート
メントとなる2つのブロックの出力データである32バイ
トから必要なデータがマルチプレクサ243により選択さ
れ、IODバッファ245に読出される。
ライトアクセスでは、ヒットしたコンパートメントに
同様な動作で、IODバッファ245からマルチプレクサ243
とデータ入出力レジスタ234,235,236,237とを通じてデ
ータが書込まれる。
データキャッシュがミスしたときは8バイト×4回の
クワッドアクセスモードで外部のメモリがアクセスさ
れ、2つのコンパートメントの内の対応する1つのエン
トリが書換えられる。このため、RP1=“11"の際の32バ
イトラインサイズモードでは、データバス102の64ビッ
トで使用するシステムで有効に動作する。
(103.4) 「制御空間メモリとしての動作」 バッファメモリ制御レジスタのDMフィールド3を“0
1"とするとRPフィールド1の値には拘わらず、データバ
ッファ202はアドレスがH'FFFFE000〜H'FFFFFFFFである
容量8kBの制御空間メモリとして動作する。
この場合、メモリアレイのタグアドレス部は使用され
ず、データ部のみが使用される。
データバッファは4つのブロック230,231,232,233が
全体で256エントリ×32バイトのメモリアレイとして動
作し、IAレジスタ242で指定された制御空間アドレスの
6ビット目から13ビット目でエントリが指定され、メモ
リアレイがアクセスされる。
リード動作では、読出された32バイトのデータの内の
必要なバイトがIAレジスタ242の下位5ビットのアドレ
スに従ってマルチプレクサで選ばれ、IODバッファ245に
入力される。
ライト動作では、IODバッファ245に保持された8バイ
トのデータの内の必要なバイトがマルチプレクサで対応
するデータ入出力レジスタ234,235,236,237に転送さ
れ、メモリアレイの対応する場合に書込まれる。
(11) 「コンテキストスイッチ動作の詳細」 本発明のデータ処理装置100では第30図に示すコンテ
キストブロック情報をコンテキストスイッチング命令で
あるLDCTX命令とSTCTX命令とで操作する場合、8バイト
単位でデータを処理し、高速でコンテキストスイッチン
グを行う。
(11.1) 整数演算部の詳細構成 第2図はコンテキストスイッチング動作に関係する整
数演算部117の構成例の詳細を、オペランドアドレス計
算部115,浮動小数点演算部118,オペランドアクセス部12
0と共に示すブロック図である。
SAレジスタ210はオペランドアドレス計算部115から整
数演算部117に出力されるオペランドアドレス及び即値
を保持するレジスタである。
AAレジスタ211は整数演算部117からオペランドアクセ
ス部120にアドレスを出力するためのレジスタであり、
保持内容に対する1,2,4,8のインクリメント・デクリメ
ント機能を有する。
汎用レジスタファイル213と専用レジスタ・作業用レ
ジスタファイルとは整数演算部117内の各種のデータを
保持し、演算回路215及び補助ALU212とそれぞれ3本の
4バイトのバスで結合されており、2つのレジスタ上の
オペランドに関する加算,比較等の演算が演算回路215
または補助ALU212で行える。
DDレジスタ216は整数演算部117とオペランドアクセス
部120とがデータを入出力するためのインタフェイスレ
ジスタであり、8バイトのDDバス123でオペランドアク
セス部120と結合されている。
FFレジスタ217は整数演算部117と浮動小数点演算部11
8とのインタフェイスレジスタである。
(11.2) 「コンテキストのロード動作」 コンテキストロード動作の一例として、CSMレジスタ
に格納されるべきデータのFRビット13とRGビット14とが
共に“1"であるコンテキストブロックに対してLDCTX/CS
命令を実行した場合の動作を説明する。この場合、コン
テキストブロックはアドレスがH'FFFFF000である制御空
間におかれているとする。また、LDCTX/CS命令はXビッ
ト15が“1"であるLDCTX命令である。
まず、CTXBADRフィールドで指定されたアドレッシン
グモードに従ってオペランドアドレス計算部115で計算
されてSAレジスタ210に転送されたコンテキストブロッ
クの先頭アドレスH'FFFFF000がS1バス221とAAレジスタ2
11とを通じてAAバスに出力されると共に、S1バス221,演
算回路215及びD1バス225を通じて専用レジスタ・作業用
レジスタファイル214中にあるCTXBBレジスタに格納され
る。
AAレジスタ211は内容を出力後、その値を8インクリ
メントする。
オペランドアクセス部120ではデータバッファ202がア
クセスされ、コンテキストブロックの先頭の8バイトが
DDバス123を通じてDDレジスタに転送される。
次に、DDレジスタ216に格納された8バイトのデータ
の内の上位4バイトがS2バス222,演算回路215,D1バス22
5を通じて専用レジスタ・作業用レジスタファイル214中
にあるCSWレジスタに格納される。この際、演算回路215
はFRビット13とRGビット14との内容をチェックし、第1
マイクロROM部113へその結果を伝えてマイクロプログラ
ムでのコンテキストブロックフォーマットの判断に使用
する。
また同時に、DDレジスタ216に格納された8バイトの
データの内の下位4バイトがS1バス221,補助ALU212,D3
バス226を通じて汎用レジスタファイル213中にあるSP0
レジスタに格納される。更に、同じく同時にAAレジスタ
211はH'FFFFF008をAAバス122を通じてオペランドアクセ
ス部120に転送し、データバッファ202からコンテキスト
ブロックの2番目の8バイトをDDレジスタ216へ読出
す。
AAレジスタ211は値を出力した後、内容を8インクリ
メントする。
次に、DDレジスタ216に格納された8バイトのデータ
の内の上位4バイトがS2バス222,演算回路215,D1バス22
5を通じて汎用レジスタファイル213中にあるSP1レジス
タに格納される。この際、同時にDDレジスタ216に格納
された8バイトのデータの内の下位4バイトがS1バス22
1,補助ALU212,D3バス226を通じて汎用レジスタファイル
213中にあるSP2レジスタに格納される。また同時に、AA
レジスタ211はアドレスH'FFFFF010をAAバス122を通じて
オペランドアクセス部120に転送し、データバッファ202
からコンテキストブロックの3番目の8バイトをDDレジ
スタ216へ読出す。
AAレジスタ211は値を出力した後、内容を8インクリ
メントする。
同様の動作が反復され、CSW,SP0〜3,UATB,R0〜14の各
レジスタに値がロードされる。この際、SP3とUATB,R1と
R2,R3とR4,R5とR6,R7とR8,R9とR10,R11とR12,R13とR14
とのそれぞれにDDレジスタ216の上位4バイトと下位4
バイトとが一度にロードされる。レジスタR0にD3バス22
6から値がロードされる際は対応する上位4バイトのロ
ードは行われない。
FR0〜FR15の各レジスタについてはオペランドアクセ
ス部120から浮動小数点演算部118に転送された8バイト
のデータが浮動小数点演算部118で各浮動小数点レジス
タに格納される。但し、アドレスは整数演算部117のAA
レジスタ211から出力される。
オペランドアクセス部120から転送された8バイトの
データがFR15レジスタに格納される際には、AAレジスタ
211からはアドレスは出力されず、データバッファ202の
アクセスは行われない。
データバッファ202ではなく、外部のメモリからコン
テキストがロードされる際は、オペランドアクセス部12
0が外部のメモリをアクセスするため、データバッファ2
02からコンテキストをロードする場合に比してより多く
のクロックサイクルを必要とする。
(11.3) 「コンテキストのストア動作」 コンテキスト動作の一例としてCSWレジスタのFRビッ
ト13とRGビット14とが共に“1"である場合にSTCTX/CS命
令を実行した際の動作を説明する。なおこの場合、CTXB
Bレジスタの内容はH'FFFFF000とする。また、STCTX/CS
命令はXビット15が“1"であるSTCTX命令である。
まず、CTXBBレジスタに保持されているコンテキスト
ブロックの先頭アドレスH'FFFFF000がS3バス213を通じ
てAAレジスタ211に転送されると共に、CSWレジスタの内
容がS1バス221を通じてDDレジスタ216の上位4バイトに
転送され、SP0レジスタの内容がS2バス222を通じてDDレ
ジスタ216の下位4バイトに転送される。また同時にCSW
レジスタの内容がS1バス221から演算回路215にも入力さ
れ、演算回路215はFRビット13とRGビット14との内容を
チェックして第1マイクロROM部113へその結果を伝え、
マイクロプログラムでのコンテキストブロックフォーマ
ットの判断に使用する。
次に、AAレジスタ211からアドレスH'FFFFF000がAAバ
ス122を通じてオペランドアクセス部120に転送され、DD
レジスタ216からはコンテキストブロックの先頭の8バ
イトデータとなるCSWレジスタ値とSP0レジスタ値とがDD
バス123を通じてオペランドアクセス部120へ転送され、
データバッファ202に格納される。
AAレジスタ211は値を出力した後、内容を8インクリ
メントする。この際、コンテキストブロックの2番目の
8バイト情報の上位4バイトとなるSP1レジスタの内容
がS1バス221を通じて汎用レジスタファイル213からDDレ
ジスタ216の上位に転送され、下位4バイトとなるSP2レ
ジスタの内容がS2バス222を通じて汎用レジスタファイ
ル213からDDレジスタ216の下位に転送される。
次に、AAレジスタ211からアドレスH'FFFFF008がAAバ
ス122を通じてオペランドアクセス部120に転送され、DD
レジスタ216からはコンテキストブロックの2番目の8
バイトデータとなるSP1レジスタ値とSP2レジスタ値とが
DDバス123を通じてオペランドアクセス部120へ転送さ
れ、データバッファ202に格納される。
AAレジスタ211は値を出力した後、内容を8インクリ
メントする。この際、コンテキストブロックの3番目の
8バイト情報の上位4バイトとなるSP3レジスタの内容
がS1バス221を通じて汎用レジスタファイル213からDDレ
ジスタ216の上位に転送され、下位4バイトとなるUATB
レジスタの内容がS2バス222を通じて専用レジスタ・作
業用レジスタファイル214からDDレジスタ216の下位に転
送される。
同様の動作が反復され、CSW,SP0日3,UATB,R0〜14の各
レジスタの値がデータバッファ202にストアされる。こ
の際、SP3とUATB,R1とR2,R3とR4,R5とR6,R7とR8,R9とR1
0,R11とR12,R13とR13の値がそれぞれからDDレジスタ216
の上位4バイトと下位4バイトとに一度に値が転送され
る。
R0レジスタの値がDDレジスタ216に転送される際は対
応する上位バイトの転送は行われない。
また、R0レジスタの値がDDレジスタ216からオペラン
ドアクセス部120に転送される際、対応する上位4バイ
トはゼロが転送される。
FR0〜FR15の各レジスタについては、浮動小数点演算
部118の各浮動小数点レジスタから読出された値がオペ
ランドアクセス部120へ転送される。但し、アドレスは
整数演算部117のAAレジスタ211から出力される。
データバッファ202ではなく、外部のメモリへコンテ
キストをストアする場合は、オペランドアクセス部120
が外部のメモリをアクセスするため、データバッファ20
2へコンテキストをストアする場合に比してより多くの
クロックサイクルを必要とする。
(12) 「本発明の他の実施例」 上記実施例ではモード切換えによりデータバッファを
コンテキストブロックを保持する制御空間となるランダ
ムアクセスメモリまたはデータキャッシュのいずれかと
して動作させる例を述べたが、同様の方法でモード切換
えにより1つのバッファメモリをコンテキストブロック
を保持する制御空間となるランダムアクセスメモリまた
は命令キャッシュのいずれかとして動作させる構成を採
ってもよい。
また、バッファメモリがランダムアクセスメモリとし
て動作する際はコンテキストブロックを保持する制御空
間として動作するのではなく、論理メモリ空間の一部と
して動作させる構成を採ってもよい。
なお上記実施例では、オペランドアクセス部へアドレ
スを出力するアドレスレジスタと、オペランドアクセス
部との間でデータを入出力する汎用レジスタの2倍のバ
イト幅のデータレジスタとを備え、レジスタファイルと
データレジスタ間は複数のバスからなり2つのデータを
同時に転送する転送経路を有し、2つ以上のレジスタに
メモリからデータをロードする命令であるLDCTX命令を
実行する場合、命令実行制御部の制御により、オペラン
ドアクセス部から2つのレジスタにロードすべき2つの
データが連結されたデータがデータレジスタへ転送さ
れ、データレジスタの上位4バイトと下位4バイトとが
2つ転送経路をそれぞれ通じて2つのレジスタに同時に
転送されるように構成されている。このため、データが
1つずつ転送される場合に比して2倍の転送速度でレジ
スタの内容をメモリへ転送することが可能になるので、
コンテキストのロード行うLDCTX命令の実行が高速化さ
れてタスクスイッチングに要する時間が短縮される。
また、2つ以上のレジスタからメモリへデータをスト
アする命令であるSTCX命令を実行する場合、命令実行制
御部の制御により、2つのレジスタの内容が2つの転送
経路からデータレジスタの上位4バイトと下位4バイト
とに同時に転送され、データレジスタで2つのデータが
連結され、この連結されたデータがオペランドアクセス
部へ1つのメモリアクセスとして転送されるように構成
されている。これにより、データが1つずつ転送される
場合に比して2倍の転送速度でレジスタの内容を転送す
ることが可能になるので、コンテキストのストア行うST
CTX命令の実行が高速化されてタスクスイッチングに要
する時間が短縮される。
更に、上述の実施例の如く、データバッファがデータ
処理装置本体と同一の集積回路上に内蔵されている構成
を採る場合は、データバッファに対するアクセス時間は
集積回路外のメモリに対するそれに比して特に短いた
め、上述の効果が特に大きい。
[発明の効果] 以上詳述した如き本発明のデータ処理装置において
は、メモリ制御情報保持手段、つまりバッファメモリ制
御レジスタの内蔵データバッファ制御フィールドで第1
の値を保持させた場合は、メモリ(データバッファ)
は、命令実行部で実行すべき命令のオペランドとなるデ
ータを保持してキャッシングし、オペランドアクセス部
に出力されたアドレスとデータキャッシュ内のタグアド
レスが一致することによりデータキャッシュがヒットす
ればアクセスされたアドレスに対応するデータを出力す
る。
一方、メモリ制御情報保持手段に第2の値を保持させ
た場合は、メモリは、命令によってアクセス可能なメモ
リ、それもユーザ空間のみならず、制御空間(ユーザ空
間以外の空間、つまりシステムプログラムが使用するメ
モリ空間)のメモリとして動作する。この場合、メモリ
(データバッファ)は、オペランドアクセス部に出力さ
れた制御空間のアドレスがアドレス領域の範囲内であれ
ばそのアドレスに保持されているデータを出力する。
このため、本発明のデータ処理装置では、物理的には
1つのデータバッファがデータキャッシュとして動作す
ることも、特定アドレス領域のランダムアクセスメモリ
として動作することも可能なため、データバッファが効
率的に利用出来る。従って、コンテキストスイッチング
命令等ではコンテキスト退避用のデータバッファの領域
を特に高速なメモリ領域として利用することが可能にな
り、タスクスイッチング時間の最大値を小さくすること
ができる。
【図面の簡単な説明】
第1図は本発明のデータ処理装置のオペランドアクセス
部の一構成例を示すブロック図、 第2図は本発明のデータ処理装置の整数演算部の部分的
詳細構成を示すブロック図、 第3図は本発明のデータ処理装置のバッファメモリ制御
レジスタの構成を示す模式図、 第4図は本発明のデータ処理装置の全体の構成例を示す
ブロック図、 第5図は本発明のデータ処理装置のパイプライン処理ス
テージの説明のためのブロック図、 第6図は本発明のデータ処理装置を用いたデータ処理シ
ステムの構成例を示すブロック図、 第7図は本発明のデータ処理装置の入出力信号ピンを示
す模式図、 第8図は本発明のデータ処理装置のデータバッファの詳
細な構成例を示すブロック図、 第9図乃至第13図は本発明のデータ処理装置の命令のフ
ォーマットを示す模式図、 第14図乃至第27図は本発明のデータ処理装置の命令中の
アドレッシングモード指定部のフォーマットを示す模式
図、 第28図は本発明のデータ処理装置のBAT(0:2)信号の意
味を表す表を示す図、 第29図は本発明のデータ処理装置のバッファメモリのパ
ージ指定のためのパージ指定レジスタの構成を示す模式
図、 第30図は本発明のデータ処理装置のコンテキストブロッ
クのフォーマットの一例を示す模式図、 第31図は本発明のデータ処理装置のコンテキストブロッ
クフォーマットを指定するCSWレジスタの構成を示す模
式図、 第32図は本発明のデータ処理装置のコンテキストロード
命令のビットパタンを示す模式図、 第33図は本発明のデータ処理装置のコンテキスト命令の
ビットパタンを示す模式図、 第34図は本発明のデータ処理装置により実行中のコンテ
キストブロックの先頭アドレスを保持するCTXBBレジス
タの構成を示す模式図、 第35図は本発明のデータ処理装置のユーザ用アドレス変
換テーブルの先頭アドレスを保持するためのUATBレジス
タの構成を示す模式図、 第36図は本発明のデータ処理装置のPSW(プロセッサ状
態後)の構成を示す模式図である。 3……DMフィールド、112……命令デコード部、117……
整数演算部、118……浮動小数点演算部、120……オペラ
ンドアクセス部、202……データバッファ なお、各図中同一符号は同一又は相当部分を示す。

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】命令をフェッチする命令フェッチ部と、 該命令フェッチ部がフェッチした命令をデコードする命
    令デコード部と、 該命令デコード部の出力に従って命令を実行する命令実
    行部と、 アドレスデコーダ、タグアドレスを格納するタグアドレ
    スメモリ及びデータを格納するデータメモリを備え、第
    1のモード又は第2のモードで動作するメモリと、 該メモリの動作モードを規定する第1の値又は第2の値
    を保持するメモリ制御情報保持手段と、 前記命令実行部及びメモリ間に接続された内部アドレス
    バス及び内部データバスと、 前記命令実行部からの指示を受けてアドレスを生成して
    前記メモリへ出力するアドレス生成部と、 前記メモリ制御情報保持手段が第1の値を保持している
    場合に、前記アドレス生成部が出力したアドレスを前記
    タグアドレスメモリに格納されているタグアドレスと比
    較し、そのいずれかと一致したときに前記データメモリ
    から対応するデータを前記内部データバスへ出力させる
    手段と、 前記メモリ制御情報保持手段が第2の値を保持している
    場合に、前記アドレス生成部が出力したアドレスを、命
    令によってアクセス可能なメモリ空間の一部として前記
    データメモリに割り付けたアドレスと比較し、該アドレ
    スの範囲内であるときに、前記アドレス生成部は出力し
    たアドレスを前記内部アドレスバスを介して前記データ
    メモリへ転送し、前記データメモリから対応するデータ
    を前記内部データバスへ出力させ、また転送したアドレ
    スに対応する記憶位置に、内部データバスを介して命令
    実行部から前記メモリに命令実行部で実行中の命令のオ
    ペランドを転送して書き込む手段と を備えることを特徴とするデータ処理装置。
  2. 【請求項2】命令をフェッチする命令フェッチ部と、 該命令フェッチ部がフェッチした命令をデコードする命
    令デコード部と、 該命令デコード部の出力に従って命令を実行する命令実
    行部と、 アドレスデコーダ、タグアドレスを格納するタグアドレ
    スメモリ及びデータ又は命令コードを格納するデータメ
    モリを備え、第1のモード又は第2のモードで動作する
    メモリと、 該メモリの動作モードを規定する第1の値又は第2の値
    を保持するメモリ制御情報保持手段と、 前記命令実行部及びメモリ間に接続された内部アドレス
    バス及び内部データバスと、 前記命令実行部からの指示を受けてアドレスを生成して
    前記メモリへ出力するアドレス生成部と、 前記メモリ制御情報保持手段が第1の値を保持している
    場合に、前記アドレス生成部が出力したアドレスを前記
    タグアドレスメモリに格納されているタグアドレスと比
    較し、そのいずれかと一致したときに前記データメモリ
    から対応する命令コードを前記命令フェッチ部へ出力さ
    せる手段と、 前記メモリ制御情報保持手段が第2の値を保持している
    場合に、前記アドレス生成部が出力したアドレスを、命
    令によってアクセス可能なメモリ空間の一部として前記
    データメモリに割り付けたアドレスと比較し、該アドレ
    スの範囲内であるときに、前記アドレス生成部は出力し
    たアドレスを前記内部アドレスバスを介して前記データ
    メモリへ転送し、前記データメモリから対応するデータ
    を前記内部データバスへ出力させ、また転送したアドレ
    スに対応する記憶位置に、内部データバスを介して命令
    実行部から前記メモリに命令実行部で実行中の命令のオ
    ペランドを転送して書き込む手段と を備えることを特徴とするデータ処理装置。
  3. 【請求項3】前記メモリ空間は、システムプログラムが
    使用するメモリ空間である請求項1又は2記載のデータ
    処理装置。
  4. 【請求項4】複数のデータ処理プロセスを時分割で実行
    する手段を備え、前記メモリ空間は、前記データ処理プ
    ロセスの実行に係るコンテキストを退避させる命令で使
    用するメモリ空間である請求項1又は2記載のデータ処
    理装置。
JP1326253A 1989-12-16 1989-12-16 データ処理装置 Expired - Lifetime JP2696578B2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JPH03186935A JPH03186935A (ja) 1991-08-14
JP2696578B2 true JP2696578B2 (ja) 1998-01-14

Family

ID=18185706

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1326253A Expired - Lifetime JP2696578B2 (ja) 1989-12-16 1989-12-16 データ処理装置

Country Status (1)

Country Link
JP (1) JP2696578B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0690732B2 (ja) * 1987-11-09 1994-11-14 三菱電機株式会社 マイクロプロセッサ
JPH0656611B2 (ja) * 1988-03-31 1994-07-27 三菱電機株式会社 ベクトル処理装置

Also Published As

Publication number Publication date
JPH03186935A (ja) 1991-08-14

Similar Documents

Publication Publication Date Title
JP2616182B2 (ja) データ処理装置
US5652900A (en) Data processor having 2n bits width data bus for context switching function
US5568624A (en) Byte-compare operation for high-performance processor
US5367705A (en) In-register data manipulation using data shift in reduced instruction set processor
US5249286A (en) Selectively locking memory locations within a microprocessor's on-chip cache
US5717946A (en) Data processor
JPS6339931B2 (ja)
JP2581236B2 (ja) データ処理装置
US5469551A (en) Method and apparatus for eliminating branches using conditional move instructions
JPH1091443A (ja) 情報処理回路、マイクロコンピュータ及び電子機器
JPH0766324B2 (ja) データ処理装置
JP2847974B2 (ja) データ処理装置
KR20000076310A (ko) 리스크 구조를 갖는 8 비트 마이크로콘트롤러
JPH07120278B2 (ja) データ処理装置
JP2669158B2 (ja) データ処理装置
JP2004086837A (ja) データ処理装置
US6757809B1 (en) Data processor having 2n bits width data bus for context switching functions
JP2556182B2 (ja) デ−タ処理装置
JP3345787B2 (ja) データ処理装置
JPH04260929A (ja) データ処理装置
JP2668456B2 (ja) ビット検索回路及びそれを備えたデータ処理装置
JP2504312B2 (ja) プライオリティエンコ―ダ及びそれを備えたデ―タ処理装置
JP2504235B2 (ja) デ―タ処理装置
JP2696578B2 (ja) データ処理装置
JP2646855B2 (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

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070919

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080919

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080919

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090919

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090919

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100919

Year of fee payment: 13

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100919

Year of fee payment: 13