JPH04260926A - ビット検索回路及びそれを備えたデータ処理装置 - Google Patents
ビット検索回路及びそれを備えたデータ処理装置Info
- Publication number
- JPH04260926A JPH04260926A JP3005651A JP565191A JPH04260926A JP H04260926 A JPH04260926 A JP H04260926A JP 3005651 A JP3005651 A JP 3005651A JP 565191 A JP565191 A JP 565191A JP H04260926 A JPH04260926 A JP H04260926A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- bit
- circuit
- data
- register
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 claims abstract description 255
- 238000000034 method Methods 0.000 claims description 46
- 230000008569 process Effects 0.000 claims description 33
- 238000001514 detection method Methods 0.000 claims description 21
- 238000004364 calculation method Methods 0.000 description 92
- 238000010586 diagram Methods 0.000 description 67
- 238000006073 displacement reaction Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 13
- 238000002593 electrical impedance tomography Methods 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000012805 post-processing Methods 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- GSDSWSVVBLHKDQ-UHFFFAOYSA-N 9-fluoro-3-methyl-10-(4-methylpiperazin-1-yl)-7-oxo-2,3-dihydro-7H-[1,4]oxazino[2,3,4-ij]quinoline-6-carboxylic acid Chemical compound FC1=CC(C(C(C(O)=O)=C2)=O)=C3N2C(C)COC3=C1N1CCN(C)CC1 GSDSWSVVBLHKDQ-UHFFFAOYSA-N 0.000 description 1
- 102100021257 Beta-secretase 1 Human genes 0.000 description 1
- 101710150192 Beta-secretase 1 Proteins 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/74—Selecting or encoding within a word the position of one or more bits having a specified value, e.g. most or least significant one or zero detection, priority encoders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Memory System (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は ”1”と”0” とか
らなるビット列の検索を行うビット検索回路に関し、更
に詳述すれば、複数回の処理でビット列の全ビットを順
次検索するビット検索回路に関する。また、本発明は、
”1”と”0” とからなるビット列で表現されたレ
ジスタリストで示されるレジスタ番号のレジスタに格納
されるデータを操作する複数データ操作命令を有するデ
ータ処理装置に関し、更に詳述すれば、レジスタリスト
の全ビットをビット検索回路により順次検索して複数の
データを1命令で操作する命令を複数の単位処理に分解
して処理するデータ処理装置に関する。
らなるビット列の検索を行うビット検索回路に関し、更
に詳述すれば、複数回の処理でビット列の全ビットを順
次検索するビット検索回路に関する。また、本発明は、
”1”と”0” とからなるビット列で表現されたレ
ジスタリストで示されるレジスタ番号のレジスタに格納
されるデータを操作する複数データ操作命令を有するデ
ータ処理装置に関し、更に詳述すれば、レジスタリスト
の全ビットをビット検索回路により順次検索して複数の
データを1命令で操作する命令を複数の単位処理に分解
して処理するデータ処理装置に関する。
【0002】
【従来の技術】従来のデータ処理装置では、高頻度で使
用されるデータを高速且つ単純な機構でアクセスする目
的で16本程度の汎用レジスタを備え、それらのレジス
タに高頻度でアクセスされるデータあるいは演算の中間
結果を保持しておくような構成が採られている。
用されるデータを高速且つ単純な機構でアクセスする目
的で16本程度の汎用レジスタを備え、それらのレジス
タに高頻度でアクセスされるデータあるいは演算の中間
結果を保持しておくような構成が採られている。
【0003】ソフトウェア処理ではレジスタ上に配置さ
れているデータをまとまった一連の処理ごとに入れ換え
る手法が用いられる。このため、レジスタ上に配置され
た複数個のデータが一度の処理で連続してメモリにスト
アされたり、逆にメモリから複数個のデータが一度の処
理で連続してレジスタへロードされたりする処理が頻繁
に行われる。
れているデータをまとまった一連の処理ごとに入れ換え
る手法が用いられる。このため、レジスタ上に配置され
た複数個のデータが一度の処理で連続してメモリにスト
アされたり、逆にメモリから複数個のデータが一度の処
理で連続してレジスタへロードされたりする処理が頻繁
に行われる。
【0004】CあるいはPascal等の高級言語では
プロシージャ毎に高頻度に使用される変数をレジスタに
再配置する手法が用いられることが多く、これらの言語
で設計されたソフトウェアではレジスタから複数のデー
タをメモリにストアしたり、複数のデータをメモリから
レジスタにロードする頻度が高い。
プロシージャ毎に高頻度に使用される変数をレジスタに
再配置する手法が用いられることが多く、これらの言語
で設計されたソフトウェアではレジスタから複数のデー
タをメモリにストアしたり、複数のデータをメモリから
レジスタにロードする頻度が高い。
【0005】このような事情から、1つの命令で複数の
データをレジスタからメモリにストアしたり、1つの命
令で複数のデータをメモリからレジスタにロードする複
数データ転送命令を備えたデータ処理装置が提案されて
いる。
データをレジスタからメモリにストアしたり、1つの命
令で複数のデータをメモリからレジスタにロードする複
数データ転送命令を備えたデータ処理装置が提案されて
いる。
【0006】このような複数データ転送命令では、デー
タを転送すべき対象となるレジスタを ”0”と”1”
とからなるビット列に対応させたレジスタリストで示
す手法が用いられている。従って、そのようなレジスタ
リストをサーチして転送すべきデータを保持しているレ
ジスタ番号を高速にエンコードする必要がある。プライ
オリティエンコーダと称されるエンコード回路はこのよ
うな目的のために提案されたハードウェアである。
タを転送すべき対象となるレジスタを ”0”と”1”
とからなるビット列に対応させたレジスタリストで示
す手法が用いられている。従って、そのようなレジスタ
リストをサーチして転送すべきデータを保持しているレ
ジスタ番号を高速にエンコードする必要がある。プライ
オリティエンコーダと称されるエンコード回路はこのよ
うな目的のために提案されたハードウェアである。
【0007】レジスタリストから転送すべきレジスタ番
号をプライオリティエンコーダを用いたビット検索回路
を使用して高速にサーチしてエンコードする手法は例え
ばU.S.P.No.4,348,741及び特願平2
−231966号の発明に詳細に開示されている。
号をプライオリティエンコーダを用いたビット検索回路
を使用して高速にサーチしてエンコードする手法は例え
ばU.S.P.No.4,348,741及び特願平2
−231966号の発明に詳細に開示されている。
【0008】
【発明が解決しようとする課題】ところで従来のビット
検索回路では、検索されるべき ”1”または”0”
のビットの総数を管理するという発想は採用されてして
おらず、オフセット指定回路で指示されたビット位置か
らプライオリティエンコーダで ”1”または”0”
のビットを検索するのみであるため、全ビットの検索が
終了したか否かは ”1”または”0” の最後のビッ
トが検索された後にも残りの各ビットについて更に検索
するという後処理が必要である。このため、検索処理を
終了するまでに必要な処理時間が長くなるという問題が
ある。
検索回路では、検索されるべき ”1”または”0”
のビットの総数を管理するという発想は採用されてして
おらず、オフセット指定回路で指示されたビット位置か
らプライオリティエンコーダで ”1”または”0”
のビットを検索するのみであるため、全ビットの検索が
終了したか否かは ”1”または”0” の最後のビッ
トが検索された後にも残りの各ビットについて更に検索
するという後処理が必要である。このため、検索処理を
終了するまでに必要な処理時間が長くなるという問題が
ある。
【0009】また、上述のような従来のビット検索回路
を用いたデータ処理装置では、操作対象のデータが格納
されるレジスタをレジスタリストで指示して1命令で複
数のデータを操作する命令を処理する際に、全データの
操作が完了したことを確認した上で複数データ操作命令
の処理が終了するため、実際の処理が終了した後にもレ
ジスタリストの最後のビットまで検索するという後処理
がやはり必要である。このため、上述のような命令の処
理時間が長くなるという問題がある。
を用いたデータ処理装置では、操作対象のデータが格納
されるレジスタをレジスタリストで指示して1命令で複
数のデータを操作する命令を処理する際に、全データの
操作が完了したことを確認した上で複数データ操作命令
の処理が終了するため、実際の処理が終了した後にもレ
ジスタリストの最後のビットまで検索するという後処理
がやはり必要である。このため、上述のような命令の処
理時間が長くなるという問題がある。
【0010】本発明は上述のような問題点に鑑みてなさ
れたものであり、検索対象の ”1”または”0” の
最後のビットが検索された場合に直ちに検索処理を終了
することが可能なビット検索回路及びそれを使用して複
数のデータを操作する命令を処理するデータ処理装置の
提供を目的とする。
れたものであり、検索対象の ”1”または”0” の
最後のビットが検索された場合に直ちに検索処理を終了
することが可能なビット検索回路及びそれを使用して複
数のデータを操作する命令を処理するデータ処理装置の
提供を目的とする。
【0011】
【課題を解決するための手段】本発明のビット検索回路
は、検索開始ビット位置を示すオフセット値を出力する
オフセット値指定回路と、 ”1”と”0” とからな
るビット列のオフセット値にて指定されたビット位置か
ら最終ビット位置までの間で最初の ”1”または”0
” のビット位置を検索するビット位置検出回路と、ビ
ット列の一部または全ビットフィールドである検索フィ
ールド内の ”1”または”0” のビット数を計数す
るビット数計数回路と、ビット数計数回路の計数値から
ビット位置検出回路による検出ビット数を減算して検索
処理の終了を検出する検索終了検出回路とを備えている
。また、本発明のデータ処理装置は、命令のオペレーシ
ョンコードフィールドをデコードするデコード回路と、
”1”と”0” とからなるビット列フィールドで表
現されたレジスタリストを検索対象とする上述のビット
検索回路とを備えて命令の実行を制御する制御部と、操
作すべきデータの格納位置であるレジスタ番号を指示す
るレジスタリスト及び操作内容を示すオペレーションコ
ードフィールドを有していて複数のデータを1命令で操
作する命令の処理を実行する命令実行部とを備えている
。
は、検索開始ビット位置を示すオフセット値を出力する
オフセット値指定回路と、 ”1”と”0” とからな
るビット列のオフセット値にて指定されたビット位置か
ら最終ビット位置までの間で最初の ”1”または”0
” のビット位置を検索するビット位置検出回路と、ビ
ット列の一部または全ビットフィールドである検索フィ
ールド内の ”1”または”0” のビット数を計数す
るビット数計数回路と、ビット数計数回路の計数値から
ビット位置検出回路による検出ビット数を減算して検索
処理の終了を検出する検索終了検出回路とを備えている
。また、本発明のデータ処理装置は、命令のオペレーシ
ョンコードフィールドをデコードするデコード回路と、
”1”と”0” とからなるビット列フィールドで表
現されたレジスタリストを検索対象とする上述のビット
検索回路とを備えて命令の実行を制御する制御部と、操
作すべきデータの格納位置であるレジスタ番号を指示す
るレジスタリスト及び操作内容を示すオペレーションコ
ードフィールドを有していて複数のデータを1命令で操
作する命令の処理を実行する命令実行部とを備えている
。
【0012】
【作用】本発明のビット検索回路では、検索対象のビッ
ト列中の ”1”または”0” の全ビットを複数回の
検索処理で検索する際に、ビット数計数回路に保持され
ている計数値とビット位置検出回路の検出結果とより、
検索終了検出回路が検索フィールド中の最後の ”1”
または”0” のビットが検索されたことを検出して検
索処理が終了する。また本発明のデータ処理装置は、
”1”と”0” とからなるビット列で操作対象のデー
タの格納位置であるレジスタ番号を指示するレジスタリ
ストと、操作内容を指示するオペレーションコードフィ
ールドとを有し、複数のデータを1命令で操作する命令
を処理する際に、デコード回路でオペレーションコード
フィールドがデコードされて操作内容に従う制御コード
が出力され、ビット位置検出回路でレジスタリストから
操作対象となるレジスタ番号が検出され、検索終了検出
回路で操作対象のデータの残数を管理して命令の処理終
了を検出する。
ト列中の ”1”または”0” の全ビットを複数回の
検索処理で検索する際に、ビット数計数回路に保持され
ている計数値とビット位置検出回路の検出結果とより、
検索終了検出回路が検索フィールド中の最後の ”1”
または”0” のビットが検索されたことを検出して検
索処理が終了する。また本発明のデータ処理装置は、
”1”と”0” とからなるビット列で操作対象のデー
タの格納位置であるレジスタ番号を指示するレジスタリ
ストと、操作内容を指示するオペレーションコードフィ
ールドとを有し、複数のデータを1命令で操作する命令
を処理する際に、デコード回路でオペレーションコード
フィールドがデコードされて操作内容に従う制御コード
が出力され、ビット位置検出回路でレジスタリストから
操作対象となるレジスタ番号が検出され、検索終了検出
回路で操作対象のデータの残数を管理して命令の処理終
了を検出する。
【0013】
【実施例】以下、本発明をその実施例を示す図面を参照
して詳述する。
して詳述する。
【0014】(1)「本発明のデータ処理装置を用いた
システムの構成」図6は本発明のデータ処理装置を用い
たシステムの構成例を示すブロック図である。
システムの構成」図6は本発明のデータ処理装置を用い
たシステムの構成例を示すブロック図である。
【0015】本実施例では、本発明のデータ処理装置1
00, 命令キャッシュ106, データキャッシ
ュ107 及び108, 主メモリ109 がアドレ
スバス101, データバス102, 命令バス1
03, メモリアドレスバス104, メモリデー
タバス105 で結合されている。
00, 命令キャッシュ106, データキャッシ
ュ107 及び108, 主メモリ109 がアドレ
スバス101, データバス102, 命令バス1
03, メモリアドレスバス104, メモリデー
タバス105 で結合されている。
【0016】アドレスバス101 は本発明のデータ処
理装置100から出力されるアドレスを命令キャッシュ
106 とデータキャッシュ107, 108とに入力
する。命令バス103 は命令キャッシュ106 から
出力される命令コードを本発明のデータ処理装置100
へ転送する。データバス102 は本発明のデータ処
理装置100 から出力されたデータをデータキャッシ
ュ107, 108へ転送したりあるいはデータキャッ
シュ107, 108から出力されたデータを本発明の
データ処理装置100 へ転送したりする。メモリアド
レスバス104 は命令キャッシュ106 またはデー
タキャッシュ107, 108から出力されるアドレス
を主メモリ109 へ転送する。メモリデータバス10
5 は主メモリ109と命令キャッシュ106 または
データキャッシュ107, 108との間で命令または
データを転送する。
理装置100から出力されるアドレスを命令キャッシュ
106 とデータキャッシュ107, 108とに入力
する。命令バス103 は命令キャッシュ106 から
出力される命令コードを本発明のデータ処理装置100
へ転送する。データバス102 は本発明のデータ処
理装置100 から出力されたデータをデータキャッシ
ュ107, 108へ転送したりあるいはデータキャッ
シュ107, 108から出力されたデータを本発明の
データ処理装置100 へ転送したりする。メモリアド
レスバス104 は命令キャッシュ106 またはデー
タキャッシュ107, 108から出力されるアドレス
を主メモリ109 へ転送する。メモリデータバス10
5 は主メモリ109と命令キャッシュ106 または
データキャッシュ107, 108との間で命令または
データを転送する。
【0017】命令キャッシュ106,データキャッシュ
107, 108がミスした場合はそれぞれのキャッシ
ュがメモリアドレスバス104 とメモリデータバス1
05 とのバス権を調停して主メモリ109 をアクセ
スする。
107, 108がミスした場合はそれぞれのキャッシ
ュがメモリアドレスバス104 とメモリデータバス1
05 とのバス権を調停して主メモリ109 をアクセ
スする。
【0018】データキャッシュ107, 108は本発
明のデータ処理装置100 の側では64ビットのバス
に結合しているため、2つのチップが協調して動作する
。各64ビットデータの上位32ビットのデータをデー
タキャッシュ107 が、下位32ビットのデータをデ
ータキャッシュ108 がそれぞれ分担して受持つ。
明のデータ処理装置100 の側では64ビットのバス
に結合しているため、2つのチップが協調して動作する
。各64ビットデータの上位32ビットのデータをデー
タキャッシュ107 が、下位32ビットのデータをデ
ータキャッシュ108 がそれぞれ分担して受持つ。
【0019】以下、本発明のデータ処理装置100 の
命令体系及び処理機構について最初に説明し、次に複数
個のレジスタ中のデータを転送する命令である LDM
命令, STM命令,ENTER命令,EXITD命
令を実行した場合の動作を例として、本発明のデータ処
理装置を特徴付ける1命令を複数の処理単位に分解して
行われるパイプライン処理動作の詳細を説明する。
命令体系及び処理機構について最初に説明し、次に複数
個のレジスタ中のデータを転送する命令である LDM
命令, STM命令,ENTER命令,EXITD命
令を実行した場合の動作を例として、本発明のデータ処
理装置を特徴付ける1命令を複数の処理単位に分解して
行われるパイプライン処理動作の詳細を説明する。
【0020】(2)「本発明のデータ処理装置の命令フ
ォーマット」本発明のデータ処理装置の命令は16ビッ
ト単位で可変長となっており、奇数バイト長の命令はな
い。
ォーマット」本発明のデータ処理装置の命令は16ビッ
ト単位で可変長となっており、奇数バイト長の命令はな
い。
【0021】本発明のデータ処理装置では高頻度に使用
される命令を短いフォーマットとするために特に工夫さ
れた命令フォーマット体系を有する。例えば、2オペラ
ンド命令に対して、基本的に「4バイト」+「拡張部」
の構成を有し、全てのアドレッシングモードが利用可能
な一般形フォーマットと、頻度の高い命令とアドレッシ
ングモードとのみを使用可能な短縮形フォーマットとの
2つのフォーマットがある。
される命令を短いフォーマットとするために特に工夫さ
れた命令フォーマット体系を有する。例えば、2オペラ
ンド命令に対して、基本的に「4バイト」+「拡張部」
の構成を有し、全てのアドレッシングモードが利用可能
な一般形フォーマットと、頻度の高い命令とアドレッシ
ングモードとのみを使用可能な短縮形フォーマットとの
2つのフォーマットがある。
【0022】図9乃至図13に示す本発明のデータ処理
装置の命令フォーマット中に現われる記号の意味は以下
の如くである。 −:オペレーションコードが入る部分 Ea:8ビットの一般形のアドレッシングモードでオペ
ランドを指定する部分 Sh :6ビットの短縮形のアドレッシングモードでオ
ペランドを指定する部分 Rn:レジスタファイル上のオペランドをレジスタ番号
で指定する部分
装置の命令フォーマット中に現われる記号の意味は以下
の如くである。 −:オペレーションコードが入る部分 Ea:8ビットの一般形のアドレッシングモードでオペ
ランドを指定する部分 Sh :6ビットの短縮形のアドレッシングモードでオ
ペランドを指定する部分 Rn:レジスタファイル上のオペランドをレジスタ番号
で指定する部分
【0023】フォーマットは、図9に示す如く、右側が
LSB側で且つ高いアドレスになっている。アドレス
NとアドレスN+1との2バイトを見ないと命令フォー
マットが判別できないようになっているが、これは、命
令が必ず16ビット(ハーフワード)単位でフェッチ,
デコードされることを前提としているためである。
LSB側で且つ高いアドレスになっている。アドレス
NとアドレスN+1との2バイトを見ないと命令フォー
マットが判別できないようになっているが、これは、命
令が必ず16ビット(ハーフワード)単位でフェッチ,
デコードされることを前提としているためである。
【0024】本発明のデータ処理装置の命令では、いず
れのフォーマットの場合も、各オペランドのEaまたは
Shの拡張部は必ずそのEaまたはShの基本部を含む
16ビット (ハーフワード) の直後に配置される。 これは、命令により暗黙に指定される即値データあるい
は命令の拡張部に優先する。従って、4バイト以上の命
令では、Eaの拡張部により命令のオペレーションコー
ドが分断される場合がある。
れのフォーマットの場合も、各オペランドのEaまたは
Shの拡張部は必ずそのEaまたはShの基本部を含む
16ビット (ハーフワード) の直後に配置される。 これは、命令により暗黙に指定される即値データあるい
は命令の拡張部に優先する。従って、4バイト以上の命
令では、Eaの拡張部により命令のオペレーションコー
ドが分断される場合がある。
【0025】また、後述するように、多段間接モードに
おいてEaの拡張部に更に拡張部が付加される場合にも
次の命令オペレーションコードよりもそちらの方が優先
される。例えば、第1ハーフワードにEa1を含み、第
2ハーフワードにEa2を含み、第3ハーフワードまで
ある6バイト命令の場合について考える。なおここでは
、Ea1に多段間接モードを使用したため、普通の拡張
部の他に多段間接モードの拡張部も付加されるものとす
る。この場合、実際の命令ビットパターンは、命令の第
1ハーフワード(Ea1の基本部を含む), Ea1
の拡張部, Ea1の多段間接モード拡張部, 命令の
第2ハーフワード(Ea2の基本部を含む), Ea
2の拡張部, 命令の第3ハーフワードの順となる。
おいてEaの拡張部に更に拡張部が付加される場合にも
次の命令オペレーションコードよりもそちらの方が優先
される。例えば、第1ハーフワードにEa1を含み、第
2ハーフワードにEa2を含み、第3ハーフワードまで
ある6バイト命令の場合について考える。なおここでは
、Ea1に多段間接モードを使用したため、普通の拡張
部の他に多段間接モードの拡張部も付加されるものとす
る。この場合、実際の命令ビットパターンは、命令の第
1ハーフワード(Ea1の基本部を含む), Ea1
の拡張部, Ea1の多段間接モード拡張部, 命令の
第2ハーフワード(Ea2の基本部を含む), Ea
2の拡張部, 命令の第3ハーフワードの順となる。
【0026】(2.1) 「短縮形2オペランド命令」
図10は2オペランド命令の短縮形フォーマットを示す
模式図である。このフォーマットにはソースオペランド
側がメモリとなるL−formatとデスティネーショ
ンオペランド側がメモリとなるS−formatとがあ
る。
図10は2オペランド命令の短縮形フォーマットを示す
模式図である。このフォーマットにはソースオペランド
側がメモリとなるL−formatとデスティネーショ
ンオペランド側がメモリとなるS−formatとがあ
る。
【0027】L−formatでは、Shはソースオペ
ランドの指定フィールドを、Rnはデスティネーション
オペランドのレジスタの指定フィールドを、RRはSh
のオペランドサイズの指定フィールドをそれぞれ表す。 レジスタ上に置かれたデスティネーションオペランドの
サイズは32ビットに固定されている。レジスタ側とメ
モリ側とのサイズが異なり、且つソース側のサイズが小
さい場合に符号拡張が行われる。
ランドの指定フィールドを、Rnはデスティネーション
オペランドのレジスタの指定フィールドを、RRはSh
のオペランドサイズの指定フィールドをそれぞれ表す。 レジスタ上に置かれたデスティネーションオペランドの
サイズは32ビットに固定されている。レジスタ側とメ
モリ側とのサイズが異なり、且つソース側のサイズが小
さい場合に符号拡張が行われる。
【0028】S−formatでは、Shはデスティネ
ーションオペランドの指定フィールドを、Rnはソース
オペランドのレジスタ指定フィールドを、RRはShの
オペランドサイズの指定フィールドをそれぞれ表す。レ
ジスタ上に置かれたソースオペランドのサイズは32ビ
ットに固定されている。レジスタ側とメモリ側とのサイ
ズが異なり且つソース側のサイズが大きい場合は、オー
バフローした部分の切捨てとオーバーフローチェックと
が行われる。
ーションオペランドの指定フィールドを、Rnはソース
オペランドのレジスタ指定フィールドを、RRはShの
オペランドサイズの指定フィールドをそれぞれ表す。レ
ジスタ上に置かれたソースオペランドのサイズは32ビ
ットに固定されている。レジスタ側とメモリ側とのサイ
ズが異なり且つソース側のサイズが大きい場合は、オー
バフローした部分の切捨てとオーバーフローチェックと
が行われる。
【0029】(2.2) 「一般形1オペランド命令」
図11は1オペランド命令の一般形フォーマット(G1
−format) を示す模式図である。このフォーマ
ットでは、MMはオペランドサイズの指定フィールドを
表している。一部のG1−format 命令ではEa
の拡張部以外にも拡張部を有する。また、MMフィール
ドを使用しない命令もある。
図11は1オペランド命令の一般形フォーマット(G1
−format) を示す模式図である。このフォーマ
ットでは、MMはオペランドサイズの指定フィールドを
表している。一部のG1−format 命令ではEa
の拡張部以外にも拡張部を有する。また、MMフィール
ドを使用しない命令もある。
【0030】(2.3) 「一般形2オペランド命令」
図12は2オペランド命令の一般形フォーマットを示す
模式図である。このフォーマットに含まれるのは、8ビ
ットで指定される一般形アドレッシングモードのオペラ
ンドが最大2つ存在する命令である。オペランドの総数
自体は3つ以上になる場合もある。
図12は2オペランド命令の一般形フォーマットを示す
模式図である。このフォーマットに含まれるのは、8ビ
ットで指定される一般形アドレッシングモードのオペラ
ンドが最大2つ存在する命令である。オペランドの総数
自体は3つ以上になる場合もある。
【0031】このフォーマットにおいて、 EaMはデ
スティネーションオペランドの指定フィールドを、MM
はデスティネーションオペランドサイズの指定フィール
ドを、 EaRはソースオペランド指定フィールドを、
RRはソースオペランドサイズの指定フィールドをそれ
ぞれ表している。一部の一般型フォーマット命令では
EaM及びEaRの拡張部以外にも拡張部がある。
スティネーションオペランドの指定フィールドを、MM
はデスティネーションオペランドサイズの指定フィール
ドを、 EaRはソースオペランド指定フィールドを、
RRはソースオペランドサイズの指定フィールドをそれ
ぞれ表している。一部の一般型フォーマット命令では
EaM及びEaRの拡張部以外にも拡張部がある。
【0032】図13はショートブランチ命令のフォーマ
ットを示す模式図である。このフォーマットでは、cc
ccは分岐条件指定フィールドを、disp:8はジャ
ンプ先との変位指定フィールドをそれぞれ表している。 本発明のデータ処理装置では、8ビットで変位を指定す
る場合にはビットパターンでの指定値を2倍して変位値
とする
ットを示す模式図である。このフォーマットでは、cc
ccは分岐条件指定フィールドを、disp:8はジャ
ンプ先との変位指定フィールドをそれぞれ表している。 本発明のデータ処理装置では、8ビットで変位を指定す
る場合にはビットパターンでの指定値を2倍して変位値
とする
【0033】(2.4) 「アドレッシングモー
ド」本発明のデータ処理装置の命令のアドレッシングモ
ード指定方法には、レジスタを含めて6ビットで指定す
る短縮形と8ビットで指定する一般形とがある。
ド」本発明のデータ処理装置の命令のアドレッシングモ
ード指定方法には、レジスタを含めて6ビットで指定す
る短縮形と8ビットで指定する一般形とがある。
【0034】未定義のアドレッシングモードを指定した
場合、あるいは意味的に考えて明らかに不合理なアドレ
ッシングモードの組合わせが指定された場合には、未定
義命令を実行した場合と同様に予約命令例外が発生して
例外処理が起動される。これに該当するのは、デスティ
ネーションが即値モードである場合、アドレス計算を伴
うべきアドレッシングモード指定フィールドで即値モー
ドが使用された場合などである。
場合、あるいは意味的に考えて明らかに不合理なアドレ
ッシングモードの組合わせが指定された場合には、未定
義命令を実行した場合と同様に予約命令例外が発生して
例外処理が起動される。これに該当するのは、デスティ
ネーションが即値モードである場合、アドレス計算を伴
うべきアドレッシングモード指定フィールドで即値モー
ドが使用された場合などである。
【0035】図14乃至図24に示すフォーマットの模
式図において使用されている記号の意味は以下の如くで
ある。 Rn:レジスタ指定 (Sh):6ビットの短縮形アドレッシングモードでの
指定方法 (Ea):8ビットの一般形アドレッシングモードでの
指定方法 なお、各フォーマットの模式図において破線にて表され
ている部分は拡張部を示す。
式図において使用されている記号の意味は以下の如くで
ある。 Rn:レジスタ指定 (Sh):6ビットの短縮形アドレッシングモードでの
指定方法 (Ea):8ビットの一般形アドレッシングモードでの
指定方法 なお、各フォーマットの模式図において破線にて表され
ている部分は拡張部を示す。
【0036】(2.4.1) 「基本アドレッシングモ
ード」本発明のデータ処理装置の命令は種々のアドレッ
シングモードをサポートする。それらの内、本発明のデ
ータ処理装置でサポートする基本アドレッシングモード
には、レジスタ直接モード, レジスタ間接モード,
レジスタ相対間接モード,即値モード, 絶対モード,
PC相対間接モード, スタックポップモード, ス
タックプッシュモードがある。
ード」本発明のデータ処理装置の命令は種々のアドレッ
シングモードをサポートする。それらの内、本発明のデ
ータ処理装置でサポートする基本アドレッシングモード
には、レジスタ直接モード, レジスタ間接モード,
レジスタ相対間接モード,即値モード, 絶対モード,
PC相対間接モード, スタックポップモード, ス
タックプッシュモードがある。
【0037】レジスタ直接モードは、レジスタの内容を
そのままオペランドとするアドレッシングモードである
。フォーマットの模式図を図14に示す。図中、Rnは
汎用レジスタまたは FPUレジスタの番号を示す。
そのままオペランドとするアドレッシングモードである
。フォーマットの模式図を図14に示す。図中、Rnは
汎用レジスタまたは FPUレジスタの番号を示す。
【0038】レジスタ間接モードは、汎用レジスタの内
容をアドレスとするメモリの内容をオペランドとするア
ドレッシングモードである。フォーマットの模式図を図
15に示す。図中、Rnは汎用レジスタの番号を示す。
容をアドレスとするメモリの内容をオペランドとするア
ドレッシングモードである。フォーマットの模式図を図
15に示す。図中、Rnは汎用レジスタの番号を示す。
【0039】レジスタ相対間接は、ディスプレースメン
ト値が16ビットであるか32ビットであるかにより2
種類に分かれる。いずれも、汎用レジスタの内容に16
ビットまたは32ビットのディスプレースメント値を加
えた値をアドレスとするメモリの内容をオペランドとす
るアドレッシングモードである。フォーマットの模式図
を図16に示す。図中、Rnは汎用レジスタの番号を示
す。disp:16とdisp:32とは、それぞれ1
6ビットのディスプレースメント値, 32ビットのデ
ィスプレースメント値を示す。ここでのディスプレース
メント値は符号付きとして扱われる。
ト値が16ビットであるか32ビットであるかにより2
種類に分かれる。いずれも、汎用レジスタの内容に16
ビットまたは32ビットのディスプレースメント値を加
えた値をアドレスとするメモリの内容をオペランドとす
るアドレッシングモードである。フォーマットの模式図
を図16に示す。図中、Rnは汎用レジスタの番号を示
す。disp:16とdisp:32とは、それぞれ1
6ビットのディスプレースメント値, 32ビットのデ
ィスプレースメント値を示す。ここでのディスプレース
メント値は符号付きとして扱われる。
【0040】即値モードは、命令コード中で指定される
ビットパターンをそのまま2進数と見なしてオペランド
とするアドレッシングモードである。フォーマットの模
式図を図17に示す。図中、 imm_dataは即値
を示す。 imm_dataのサイズは、オペランドサ
イズとして命令中で指定される。
ビットパターンをそのまま2進数と見なしてオペランド
とするアドレッシングモードである。フォーマットの模
式図を図17に示す。図中、 imm_dataは即値
を示す。 imm_dataのサイズは、オペランドサ
イズとして命令中で指定される。
【0041】絶対モードは、アドレス値が16ビットで
示されるか32ビットで示されるかにより2種類に分か
れる。いずれも、命令コード中で指定される16ビット
または32ビットのビットパターンをアドレスとしたメ
モリの内容をオペランドとするアドレッシングモードで
ある。 フォーマットの模式図を図18に示す。図中、abs:
16とabs:32とは、それぞれ16ビット, 32
ビットのアドレス値を示す。abs:16にてアドレス
が示される場合は指定されたアドレス値が32ビットに
符号拡張される。
示されるか32ビットで示されるかにより2種類に分か
れる。いずれも、命令コード中で指定される16ビット
または32ビットのビットパターンをアドレスとしたメ
モリの内容をオペランドとするアドレッシングモードで
ある。 フォーマットの模式図を図18に示す。図中、abs:
16とabs:32とは、それぞれ16ビット, 32
ビットのアドレス値を示す。abs:16にてアドレス
が示される場合は指定されたアドレス値が32ビットに
符号拡張される。
【0042】PC相対間接モードは、ディスプレースメ
ント値が16ビットであるか32ビットであるかにより
2種類に分かれる。いずれも、プログラムカウンタの内
容に16ビットまたは32ビットのディスプレースメン
ト値を加えた値をアドレスとするメモリの内容をオペラ
ンドとするアドレッシングモードである。フォーマット
の模式図を図19に示す。図中、disp:16とdi
sp:32とは、それぞれ、16ビットのディスプレー
スメント値, 32ビットのディスプレースメント値を
示す。ここではディスプレースメント値は符号付きとし
て扱われる。PC相対間接モードにおいて参照されるプ
ログラムカウンタの値は、そのオペランドを含む命令の
先頭アドレスである。多段間接アドレッシングモードに
おいてプログラムカウンタの値が参照される場合にも、
同様に命令の先頭のアドレスがPC相対の基準値として
使用される。
ント値が16ビットであるか32ビットであるかにより
2種類に分かれる。いずれも、プログラムカウンタの内
容に16ビットまたは32ビットのディスプレースメン
ト値を加えた値をアドレスとするメモリの内容をオペラ
ンドとするアドレッシングモードである。フォーマット
の模式図を図19に示す。図中、disp:16とdi
sp:32とは、それぞれ、16ビットのディスプレー
スメント値, 32ビットのディスプレースメント値を
示す。ここではディスプレースメント値は符号付きとし
て扱われる。PC相対間接モードにおいて参照されるプ
ログラムカウンタの値は、そのオペランドを含む命令の
先頭アドレスである。多段間接アドレッシングモードに
おいてプログラムカウンタの値が参照される場合にも、
同様に命令の先頭のアドレスがPC相対の基準値として
使用される。
【0043】スタックポップモードはスタックポインタ
(SP)の内容をアドレスとするメモリの内容をオペラ
ンドとするアドレッシングモードである。オペランドア
クセス後にSPがオペランドサイズだけインクリメント
される。例えば、32ビットデータが扱われる場合には
、オペランドアクセス後にSPが+4だけ更新される。 8, 16, 64ビットのサイズのオペランドに対す
るスタックポップモードの指定も可能であり、それぞれ
SPが+1,+2,+8だけ更新される。フォーマット
の模式図を図20に示す。オペランドに対してスタック
ポップモードが意味を持たない場合には予約命令例外が
発生する。具体的に予約命令例外となるのは、 wri
teオペランド, read− modify−wri
teオペランドに対するスタックポップモード指定であ
る。
(SP)の内容をアドレスとするメモリの内容をオペラ
ンドとするアドレッシングモードである。オペランドア
クセス後にSPがオペランドサイズだけインクリメント
される。例えば、32ビットデータが扱われる場合には
、オペランドアクセス後にSPが+4だけ更新される。 8, 16, 64ビットのサイズのオペランドに対す
るスタックポップモードの指定も可能であり、それぞれ
SPが+1,+2,+8だけ更新される。フォーマット
の模式図を図20に示す。オペランドに対してスタック
ポップモードが意味を持たない場合には予約命令例外が
発生する。具体的に予約命令例外となるのは、 wri
teオペランド, read− modify−wri
teオペランドに対するスタックポップモード指定であ
る。
【0044】スタックプッシュモードは、SPの内容を
オペランドサイズだけデクリメントした内容をアドレス
とするメモリの内容をオペランドとするアドレッシング
モードである。スタックプッシュモードではオペランド
アクセス前にSPがデクリメントされる。例えば、32
ビットデータが扱われる場合には、オペランドアクセス
前にSPが−4だけ更新される。8, 16, 64ビ
ットのサイズのオペランドに対するスタックプッシュモ
ードの指定も可能であり、それぞれSPが−1,−2,
−8だけ更新される。フォーマットの模式図を図21に
示す。オペランドに対してスタックプッシュモードが意
味を持たない場合には予約命令例外が発生される。具体
的に予約命令例外となるのは、readオペランド,
read−modify−write オペランドに対
すスタックプッシュモード指定である。
オペランドサイズだけデクリメントした内容をアドレス
とするメモリの内容をオペランドとするアドレッシング
モードである。スタックプッシュモードではオペランド
アクセス前にSPがデクリメントされる。例えば、32
ビットデータが扱われる場合には、オペランドアクセス
前にSPが−4だけ更新される。8, 16, 64ビ
ットのサイズのオペランドに対するスタックプッシュモ
ードの指定も可能であり、それぞれSPが−1,−2,
−8だけ更新される。フォーマットの模式図を図21に
示す。オペランドに対してスタックプッシュモードが意
味を持たない場合には予約命令例外が発生される。具体
的に予約命令例外となるのは、readオペランド,
read−modify−write オペランドに対
すスタックプッシュモード指定である。
【0045】(2.4.2) 「多段間接アドレッシン
グモード」複雑なアドレッシングも基本的には加算と間
接参照との組合わせに分解することが可能である。従っ
て、加算と間接参照とのオペレーションをアドレッシン
グのプリミティブとして与えておき、それらを任意に組
合わせることができれば、どのような複雑なアドレッシ
ングモードも実現可能になる。
グモード」複雑なアドレッシングも基本的には加算と間
接参照との組合わせに分解することが可能である。従っ
て、加算と間接参照とのオペレーションをアドレッシン
グのプリミティブとして与えておき、それらを任意に組
合わせることができれば、どのような複雑なアドレッシ
ングモードも実現可能になる。
【0046】本発明のデータ処理装置の命令の多段間接
アドレッシングモードは上述のような考え方に基づいた
アドレッシングモードである。複雑なアドレッシングモ
ードは、モジュール間のデータ参照あるいは AI(人
工知能) 言語の処理系に特に有用である。
アドレッシングモードは上述のような考え方に基づいた
アドレッシングモードである。複雑なアドレッシングモ
ードは、モジュール間のデータ参照あるいは AI(人
工知能) 言語の処理系に特に有用である。
【0047】多段間接アドレッシングモードを指定する
場合、基本アドレッシングモード指定フィールドではレ
ジスタベース多段間接モード, PCベース多段間接モ
ード, 絶対ベース多段間接モードの3種類の指定方法
の内のいずれか1つを指定する。
場合、基本アドレッシングモード指定フィールドではレ
ジスタベース多段間接モード, PCベース多段間接モ
ード, 絶対ベース多段間接モードの3種類の指定方法
の内のいずれか1つを指定する。
【0048】レジスタベース多段間接モードは汎用レジ
スタの値を拡張する多段間接アドレッシングのベース値
とするアドレッシングモードである。フォーマットの模
式図を図22に示す。図中、Rnは汎用レジスタの番号
を示す。
スタの値を拡張する多段間接アドレッシングのベース値
とするアドレッシングモードである。フォーマットの模
式図を図22に示す。図中、Rnは汎用レジスタの番号
を示す。
【0049】PCベース多段間接モードはプログラムカ
ウンタの値を拡張する多段間接アドレッシングのベース
値とするアドレッシングモードである。フォーマットの
模式図を図23に示す。
ウンタの値を拡張する多段間接アドレッシングのベース
値とするアドレッシングモードである。フォーマットの
模式図を図23に示す。
【0050】絶対ベース多段間接モードはゼロを拡張さ
れる多段間接アドレッシングのベース値とするアドレッ
シングモードである。フォーマットの模式図を図24に
示す。
れる多段間接アドレッシングのベース値とするアドレッ
シングモードである。フォーマットの模式図を図24に
示す。
【0051】拡張される多段間接モード指定フィールド
は16ビットを単位としており、これが任意回反復して
付加される。1段の多段間接アドレッシングモードによ
り、ディスプレースメントの加算,インデクスレジスタ
のスケーリング (×1,×2,×4,×8) と加算
, メモリの間接参照を行う。多段間接モードのフォー
マットの模式図を図25に示す。各フィールドは以下に
示す意味を有する。
は16ビットを単位としており、これが任意回反復して
付加される。1段の多段間接アドレッシングモードによ
り、ディスプレースメントの加算,インデクスレジスタ
のスケーリング (×1,×2,×4,×8) と加算
, メモリの間接参照を行う。多段間接モードのフォー
マットの模式図を図25に示す。各フィールドは以下に
示す意味を有する。
【0052】E=0 :多段間接モード継続E=1 :
アドレス計算終了 tmp ==> address of operan
dI=0 :メモリ間接参照なし tmp + disp + Rx * Scale =
=> tmpI=1 :メモリ間接参照あり mem[tmp + disp + Rx * Sca
le ] ==> tmpM=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=0
010 dispxは32ビットXX :インデ
クスのスケール (scale = 1/2/4/8)
アドレス計算終了 tmp ==> address of operan
dI=0 :メモリ間接参照なし tmp + disp + Rx * Scale =
=> tmpI=1 :メモリ間接参照あり mem[tmp + disp + Rx * Sca
le ] ==> tmpM=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=0
010 dispxは32ビットXX :インデ
クスのスケール (scale = 1/2/4/8)
【0053】プログラムカウンタに対して×2, ×4
, ×8のスケーリングを行った場合には、その段の処
理終了後の中間値(tmp) として不定値が入る。こ
の多段間接アドレッシングモードによって得られる実効
アドレスは予測できない値となるが、例外は発生しない
。プログラムカウンタに対するスケーリングの指定は禁
じられている。
, ×8のスケーリングを行った場合には、その段の処
理終了後の中間値(tmp) として不定値が入る。こ
の多段間接アドレッシングモードによって得られる実効
アドレスは予測できない値となるが、例外は発生しない
。プログラムカウンタに対するスケーリングの指定は禁
じられている。
【0054】多段間接アドレッシングモードによる命令
フォーマットのバリエーションを図26, 図27の模
式図に示す。図26は多段間接アドレッシングモードが
継続するか終了するかのバリエーションを、図27はデ
ィスプレースメントのサイズのバリエーションをそれぞ
れ示す。
フォーマットのバリエーションを図26, 図27の模
式図に示す。図26は多段間接アドレッシングモードが
継続するか終了するかのバリエーションを、図27はデ
ィスプレースメントのサイズのバリエーションをそれぞ
れ示す。
【0055】任意段数の多段間接アドレッシングモード
が利用できればコンパイラの中で段数による場合分けが
不要になるので、コンパイラの負担が軽減されるという
メリットがある。多段の間接参照の頻度が非常に少ない
としても、コンパイラとしては必ず正しいコードを発生
できなければならないからである。このため、フォーマ
ット上、任意の段数が可能になっている。
が利用できればコンパイラの中で段数による場合分けが
不要になるので、コンパイラの負担が軽減されるという
メリットがある。多段の間接参照の頻度が非常に少ない
としても、コンパイラとしては必ず正しいコードを発生
できなければならないからである。このため、フォーマ
ット上、任意の段数が可能になっている。
【0056】(2.5.1) 「レジスタの退避命令と
復帰命令」本発明のデータ処理装置100 は複数のレ
ジスタの内容をスタック領域等のメモリ領域に退避させ
る命令である STM命令と、スタック領域等のメモリ
領域に退避されている複数のレジスタの内容を復帰させ
る LDM命令とを備えている。
復帰命令」本発明のデータ処理装置100 は複数のレ
ジスタの内容をスタック領域等のメモリ領域に退避させ
る命令である STM命令と、スタック領域等のメモリ
領域に退避されている複数のレジスタの内容を復帰させ
る LDM命令とを備えている。
【0057】LDM命令のフォーマットは図28の模式
図に示されている。 LDM命令ではsrcsフィール
ドで示されているアドレッシングモードに従って計算さ
れたアドレスのメモリから reglistフィールド
で示されたレジスタへデータが転送さるる。転送される
べきデータを格納するレジスタは reglistフィ
ールドによりビットパタンで示される。各レジスタに転
送されるデータはそれぞれ4バイトである。
図に示されている。 LDM命令ではsrcsフィール
ドで示されているアドレッシングモードに従って計算さ
れたアドレスのメモリから reglistフィールド
で示されたレジスタへデータが転送さるる。転送される
べきデータを格納するレジスタは reglistフィ
ールドによりビットパタンで示される。各レジスタに転
送されるデータはそれぞれ4バイトである。
【0058】STM命令のフォーマットは図29の模式
図に示されている。 STM命令では、reglist
フィールドで示されているレジスタ中のデータが d
estsフィールドで示されたアドレッシングモードに
従って計算されたアドレスのメモリへ転送される。転送
すべきデータを格納しているレジスタは reglis
tフィールドによりビットパタンで示される。
図に示されている。 STM命令では、reglist
フィールドで示されているレジスタ中のデータが d
estsフィールドで示されたアドレッシングモードに
従って計算されたアドレスのメモリへ転送される。転送
すべきデータを格納しているレジスタは reglis
tフィールドによりビットパタンで示される。
【0059】図29に示す如く、 STM命令の re
glistフィールドの意味はdests フィールド
で示されるアドレッシングモードにより異なる。これは
複数個のレジスタ内容がメモリに格納される場合に、大
きな番号のレジスタが常に大きな番地に格納されるよう
に統一するためである。各レジスタから転送されるデー
タはそれぞれ4バイトである。
glistフィールドの意味はdests フィールド
で示されるアドレッシングモードにより異なる。これは
複数個のレジスタ内容がメモリに格納される場合に、大
きな番号のレジスタが常に大きな番地に格納されるよう
に統一するためである。各レジスタから転送されるデー
タはそれぞれ4バイトである。
【0060】(2.5.2) 「スタックフレーム形成
命令と解放命令」本発明のデータ処理装置100 は上
述の STM命令及び LDM命令の他、高級言語によ
るサブルーチンの入口でのスタックフレームの形成とレ
ジスタの退避処理を行う ENTER命令及び高級言語
によるサブルーチンの出口でのスタックフレームの解放
とレジスタの復帰処理を行う EXITD命令を備えて
いる。
命令と解放命令」本発明のデータ処理装置100 は上
述の STM命令及び LDM命令の他、高級言語によ
るサブルーチンの入口でのスタックフレームの形成とレ
ジスタの退避処理を行う ENTER命令及び高級言語
によるサブルーチンの出口でのスタックフレームの解放
とレジスタの復帰処理を行う EXITD命令を備えて
いる。
【0061】ENTER命令のフォーマットを図30の
模式図に示す。 ENTER命令の処理は図30のオペ
レーションに示す通りである。
模式図に示す。 ENTER命令の処理は図30のオペ
レーションに示す通りである。
【0062】まず、フレームポインタFPをスタックに
プッシュし、スタックポインタSPをFPへ転送する。 更に、SP値から lsize値を減算してローカル変
数領域をスタックに確保し、レジスタリストに示された
レジスタをスタックに退避する。 ENTER命令のレ
ジスタリストでは図30中に示す如く、レジスタR14
とレジスタR15 とは指定することが出来ない。
プッシュし、スタックポインタSPをFPへ転送する。 更に、SP値から lsize値を減算してローカル変
数領域をスタックに確保し、レジスタリストに示された
レジスタをスタックに退避する。 ENTER命令のレ
ジスタリストでは図30中に示す如く、レジスタR14
とレジスタR15 とは指定することが出来ない。
【0063】なお、 ENTER命令のフォーマットに
は lsize値を8ビットの即値で指定するEフォー
マットと、一般形アドレッシングモードで指定するGフ
ォーマットとの2種類がある。
は lsize値を8ビットの即値で指定するEフォー
マットと、一般形アドレッシングモードで指定するGフ
ォーマットとの2種類がある。
【0064】EXITD命令のフォーマットを図31に
示す。 EXITD命令の処理は図31のオペレーショ
ンに示す通りである。
示す。 EXITD命令の処理は図31のオペレーショ
ンに示す通りである。
【0065】EXITD命令では、レジスタリストに従
ってスタックからレジスタを復帰し、SPをFPから復
帰してローカル変数領域を解放し、スタックから旧FP
を復帰してサブルーチンリターンを行った後にSP値に
adisp値を加算してサブルーチンのパラメータを
解放する。 EXITD命令のレジスタリストでは図3
1中に示す如く、レジスタR14 とレジスタR15
とは指定することは出来ない。
ってスタックからレジスタを復帰し、SPをFPから復
帰してローカル変数領域を解放し、スタックから旧FP
を復帰してサブルーチンリターンを行った後にSP値に
adisp値を加算してサブルーチンのパラメータを
解放する。 EXITD命令のレジスタリストでは図3
1中に示す如く、レジスタR14 とレジスタR15
とは指定することは出来ない。
【0066】なお、 EXITD命令のフォーマットに
は adjsp値を8ビットの即値で指定するEフォー
マットと、一般形アドレッシングモードで指定するGフ
ォーマットとの2種類がある。
は adjsp値を8ビットの即値で指定するEフォー
マットと、一般形アドレッシングモードで指定するGフ
ォーマットとの2種類がある。
【0067】(3) 「本発明のデータ処理装置の機能
ブロックの構成」図4は本発明のデータ処理装置100
の構成を示すブロック図である。
ブロックの構成」図4は本発明のデータ処理装置100
の構成を示すブロック図である。
【0068】本発明のデータ処理装置の内部を機能的に
大きく分けると、命令入力部110,命令フェッチ部1
11, 命令デコード部112, 第1マイクロR
OM 部113, 第2マイクロROM 部114,
オペランドアドレス計算部115, PC計算部
116, 整数演算部117, 浮動小数点演算部
118, アドレス入出力部119, オペランド
アクセス部120,データ入出力部121 に分かれる
。
大きく分けると、命令入力部110,命令フェッチ部1
11, 命令デコード部112, 第1マイクロR
OM 部113, 第2マイクロROM 部114,
オペランドアドレス計算部115, PC計算部
116, 整数演算部117, 浮動小数点演算部
118, アドレス入出力部119, オペランド
アクセス部120,データ入出力部121 に分かれる
。
【0069】アドレス入出力部119 をアドレスバス
101 に結合し、データ入出力部121 をデータバ
ス102 に結合し、命令入力部110 を命令バス1
03 に結合することにより図6に示すシステム構成を
とることができる。
101 に結合し、データ入出力部121 をデータバ
ス102 に結合し、命令入力部110 を命令バス1
03 に結合することにより図6に示すシステム構成を
とることができる。
【0070】(3.1) 「命令入力部」命令入力部1
10 は外部の命令バス103 から32ビット単位で
命令コードを本発明のデータ処理装置100 に入力す
る。命令キャッシュ106 のアクセス方法には、1つ
のアドレスに対して32ビットの命令コードをアクセス
する標準アクセスモードと、1つのアドレスに対して4
回連続で32ビットの命令コードをアクセスするクワッ
ドアクセスモードとがあり、いずれの場合も命令入力部
110 は入力した命令コードを命令フェッチ部111
へ出力する。
10 は外部の命令バス103 から32ビット単位で
命令コードを本発明のデータ処理装置100 に入力す
る。命令キャッシュ106 のアクセス方法には、1つ
のアドレスに対して32ビットの命令コードをアクセス
する標準アクセスモードと、1つのアドレスに対して4
回連続で32ビットの命令コードをアクセスするクワッ
ドアクセスモードとがあり、いずれの場合も命令入力部
110 は入力した命令コードを命令フェッチ部111
へ出力する。
【0071】(3.2) 「命令フェッチ部」命令フェ
ッチ部111 には、命令アドレスのアドレス変換機構
, 内蔵命令キャッシュ, 命令用TLB, 命令キ
ュー及びそれらの制御部等が備えられている。
ッチ部111 には、命令アドレスのアドレス変換機構
, 内蔵命令キャッシュ, 命令用TLB, 命令キ
ュー及びそれらの制御部等が備えられている。
【0072】命令フェッチ部111 は、次にフェッチ
すべき命令のPC値を物理アドレスに変換し、内蔵命令
キャッシュから命令コードをフェッチして命令デコード
部112 へ出力する。内蔵命令キャッシュがミスした
場合にはアドレス入出力部119 へ物理アドレスを出
力し、外部へ命令アクセスを要求し、命令入力部110
を通じて入力された命令コードを内蔵命令キャッシュ
に登録する。
すべき命令のPC値を物理アドレスに変換し、内蔵命令
キャッシュから命令コードをフェッチして命令デコード
部112 へ出力する。内蔵命令キャッシュがミスした
場合にはアドレス入出力部119 へ物理アドレスを出
力し、外部へ命令アクセスを要求し、命令入力部110
を通じて入力された命令コードを内蔵命令キャッシュ
に登録する。
【0073】次にフェッチすべき命令のPC値は命令キ
ューに入力すべき命令のPC値として専用のカウンタで
計算される。ジャンプが発生した場合は、新たな命令の
PC値がオペランドアドレス計算部115, PC計
算部116, 整数演算部117 等から転送されて
来る。
ューに入力すべき命令のPC値として専用のカウンタで
計算される。ジャンプが発生した場合は、新たな命令の
PC値がオペランドアドレス計算部115, PC計
算部116, 整数演算部117 等から転送されて
来る。
【0074】命令用TLB がミスした場合のページン
グによるアドレス変換及び命令用TLB の更新も命令
フェッチ部111 の内部にある制御回路により行われ
る。
グによるアドレス変換及び命令用TLB の更新も命令
フェッチ部111 の内部にある制御回路により行われ
る。
【0075】また、本発明のデータ処理装置110 が
バスウォッチモードである場合は、アドレス入出力部1
19 を通じて入力された物理アドレスがヒットした内
蔵命令キャッシュのエントリが無効化される。
バスウォッチモードである場合は、アドレス入出力部1
19 を通じて入力された物理アドレスがヒットした内
蔵命令キャッシュのエントリが無効化される。
【0076】(3.3) 「命令デコード部」命令デコ
ード部112 では基本的に16ビット (ハーフワー
ド) 単位で命令コードをデコードする。このブロック
には図1に示す如くオペレーションコードをデコードす
るデコーダ, アドレッシングモードをデコードするD
ステージデコード部22, アドレッシングモードに従
ってディスプレイスメント及び即値の処理を行うディス
プレイスメント出力部21, レジスタリストに含まれ
るセットされたビット(”1”のビット)数を計算する
ビット数計数回路23ビット数計数回路23が含まれて
いる。
ード部112 では基本的に16ビット (ハーフワー
ド) 単位で命令コードをデコードする。このブロック
には図1に示す如くオペレーションコードをデコードす
るデコーダ, アドレッシングモードをデコードするD
ステージデコード部22, アドレッシングモードに従
ってディスプレイスメント及び即値の処理を行うディス
プレイスメント出力部21, レジスタリストに含まれ
るセットされたビット(”1”のビット)数を計算する
ビット数計数回路23ビット数計数回路23が含まれて
いる。
【0077】また、Dステージデコード部22の出力を
更にデコードしてマイクロROM のエントリアドレス
を出力するAステージデコード部24,レジスタリスト
からセットされたビットに対応するレジスタ番号をエン
コードするプライオリティエンコード部25, 転送オ
ペランド数カウンタ26も備えられている。これらのブ
ロックは命令の後段デコードを処理する。
更にデコードしてマイクロROM のエントリアドレス
を出力するAステージデコード部24,レジスタリスト
からセットされたビットに対応するレジスタ番号をエン
コードするプライオリティエンコード部25, 転送オ
ペランド数カウンタ26も備えられている。これらのブ
ロックは命令の後段デコードを処理する。
【0078】命令フェッチ部111 から出力された命
令コードはパイプライン処理により1クロックにつき0
〜6バイトがデコードされる。デコード結果の内、整数
演算部117 での演算に関係する情報が第1マイクロ
ROM 部113 ヘ、浮動小数点演算部118での演
算に関係する情報が第2マイクロROM 部114 へ
、オペランドアドレス計算に関係する情報がオペランド
アドレス計算部115 へ、PC計算に関係する情報が
PC計算部116 へ、それぞれ出力される。
令コードはパイプライン処理により1クロックにつき0
〜6バイトがデコードされる。デコード結果の内、整数
演算部117 での演算に関係する情報が第1マイクロ
ROM 部113 ヘ、浮動小数点演算部118での演
算に関係する情報が第2マイクロROM 部114 へ
、オペランドアドレス計算に関係する情報がオペランド
アドレス計算部115 へ、PC計算に関係する情報が
PC計算部116 へ、それぞれ出力される。
【0079】(3.4) 「第1マイクロROM 部」
第1マイクロROM 部113 には、整数演算部11
7 の制御を行う種々のマイクロプログラムルーチンが
格納されているマイクロROM, マイクロシーケン
サ, マイクロ命令デコーダ等が備えられている。マイ
クロ命令はマイクロROM から1クロック当たり1度
読出される。マイクロシーケンサは命令実行に関するマ
イクロプログラム実行のためのシーケンス処理の他に、
例外, 割込及びトラップ (この3つを併せてEIT
と称す) の受付けと各EIT に対応するマイクロ
プログラムのシーケンス処理も行う。
第1マイクロROM 部113 には、整数演算部11
7 の制御を行う種々のマイクロプログラムルーチンが
格納されているマイクロROM, マイクロシーケン
サ, マイクロ命令デコーダ等が備えられている。マイ
クロ命令はマイクロROM から1クロック当たり1度
読出される。マイクロシーケンサは命令実行に関するマ
イクロプログラム実行のためのシーケンス処理の他に、
例外, 割込及びトラップ (この3つを併せてEIT
と称す) の受付けと各EIT に対応するマイクロ
プログラムのシーケンス処理も行う。
【0080】第1マイクロROM 部113 には命令
コードに依存しない外部割込み及び整数演算実行結果に
よるマイクロプログラムの分岐条件も入力される。マイ
クロデコーダの出力は主に整数演算部117 へ出力さ
れるが、ジャンプ命令の実行時, 例外受付時には一部
の情報を他の機能ブロックへも出力する。
コードに依存しない外部割込み及び整数演算実行結果に
よるマイクロプログラムの分岐条件も入力される。マイ
クロデコーダの出力は主に整数演算部117 へ出力さ
れるが、ジャンプ命令の実行時, 例外受付時には一部
の情報を他の機能ブロックへも出力する。
【0081】(3.5) 「第2マイクロROM 部」
第2マイクロROM 部114 には、浮動小数点演算
部118 の制御を行う種々のマイクロプログラムルー
チンが格納されているマイクロROM, マイクロシ
ーケンサ,マイクロ命令デコーダ等が備えられている。 マイクロ命令はマイクロROM から1クロックに1度
読み出される。マイクロシーケンサはマイクロプログラ
ムで示されるシーケンス処理の他に、浮動小数点演算に
関係する例外の処理も行い、マスクされていない浮動小
数点例外が検出された場合には第1マイクロROM 部
113 へ例外処理を要求する。第2マイクロROM
部114 のマイクロシーケンサは第1マイクロROM
部113 のマイクロシーケンサと並列に動作し、整
数演算部117 と並列に浮動小数点演算部118 を
制御する。
第2マイクロROM 部114 には、浮動小数点演算
部118 の制御を行う種々のマイクロプログラムルー
チンが格納されているマイクロROM, マイクロシ
ーケンサ,マイクロ命令デコーダ等が備えられている。 マイクロ命令はマイクロROM から1クロックに1度
読み出される。マイクロシーケンサはマイクロプログラ
ムで示されるシーケンス処理の他に、浮動小数点演算に
関係する例外の処理も行い、マスクされていない浮動小
数点例外が検出された場合には第1マイクロROM 部
113 へ例外処理を要求する。第2マイクロROM
部114 のマイクロシーケンサは第1マイクロROM
部113 のマイクロシーケンサと並列に動作し、整
数演算部117 と並列に浮動小数点演算部118 を
制御する。
【0082】第2マイクロROM 部113 には浮動
小数点演算の実行結果によるフラッグ情報も入力される
。
小数点演算の実行結果によるフラッグ情報も入力される
。
【0083】マイクロデコーダの出力は主に浮動小数点
演算部118 に対して出力されるが、浮動小数点演算
に関係する例外の検出等の一部の情報は他の機能ブロッ
クへも出力される。
演算部118 に対して出力されるが、浮動小数点演算
に関係する例外の検出等の一部の情報は他の機能ブロッ
クへも出力される。
【0084】(3.6) 「オペランドアドレス計算部
」オペランドアドレス計算部115 は、命令デコード
部112 のアドレッシングモードデコーダ等から出力
されたオペランドアドレス計算に関係する情報によりハ
ードワイヤードに制御される。このオペランドアドレス
計算部115 ではメモリ間接アドレッシングのための
メモリアクセス以外のオペランドのアドレス計算とジャ
ンプ命令のジャンプ先アドレスの計算とが行われる。
」オペランドアドレス計算部115 は、命令デコード
部112 のアドレッシングモードデコーダ等から出力
されたオペランドアドレス計算に関係する情報によりハ
ードワイヤードに制御される。このオペランドアドレス
計算部115 ではメモリ間接アドレッシングのための
メモリアクセス以外のオペランドのアドレス計算とジャ
ンプ命令のジャンプ先アドレスの計算とが行われる。
【0085】オペランドアドレスの計算結果は整数演算
部117 へ出力される。オペランドアドレス計算終了
段階での先行ジャンプ処理ではジャンプ先アドレスの計
算結果が命令フェッチ部111 とPC計算部116と
へ出力される。
部117 へ出力される。オペランドアドレス計算終了
段階での先行ジャンプ処理ではジャンプ先アドレスの計
算結果が命令フェッチ部111 とPC計算部116と
へ出力される。
【0086】即値オペランドは整数演算部117 及び
浮動小数点演算部118 へ出力される。アドレス計算
に必要な汎用レジスタ, プログラムカウンタの値は整
数演算部117,PC計算部116 から入力される。
浮動小数点演算部118 へ出力される。アドレス計算
に必要な汎用レジスタ, プログラムカウンタの値は整
数演算部117,PC計算部116 から入力される。
【0087】(3.7) 「PC計算部」PC計算部1
16 は命令デコード部112 から出力されるPC計
算に関係する情報でハードワイヤードに制御され、命令
のPC値を計算する。本発明のデータ処理装置100
の命令は可変長命令であり、命令をデコードした後でな
ければ命令の長さが判明しない。PC計算部116 は
命令デコード部112 から出力された命令長をデコー
ド中の命令のPC値に加算することにより次に実行すべ
き命令のPC値を計算する。
16 は命令デコード部112 から出力されるPC計
算に関係する情報でハードワイヤードに制御され、命令
のPC値を計算する。本発明のデータ処理装置100
の命令は可変長命令であり、命令をデコードした後でな
ければ命令の長さが判明しない。PC計算部116 は
命令デコード部112 から出力された命令長をデコー
ド中の命令のPC値に加算することにより次に実行すべ
き命令のPC値を計算する。
【0088】PC計算部116 の計算結果は各命令の
PC値として命令のデコード結果と共に出力される。命
令デコードステージでの先行ブランチ処理では、命令デ
コード部112 から出力されるブランチ幅をPC値に
加算することによりブランチ先命令のアドレスが計算さ
れる。
PC値として命令のデコード結果と共に出力される。命
令デコードステージでの先行ブランチ処理では、命令デ
コード部112 から出力されるブランチ幅をPC値に
加算することによりブランチ先命令のアドレスが計算さ
れる。
【0089】また、PC計算部116 にはサブルーチ
ンへのジャンプ命令の実行時にスタックにプッシュされ
ているサブルーチンからの戻り先PC値のコピーを保持
したPCスタックが備えられており、サブルーチンから
のリターン命令に対してはPCスタックから戻り先PC
を読出すことにより、プリリターン先命令のアドレスを
生成する処理も行う。
ンへのジャンプ命令の実行時にスタックにプッシュされ
ているサブルーチンからの戻り先PC値のコピーを保持
したPCスタックが備えられており、サブルーチンから
のリターン命令に対してはPCスタックから戻り先PC
を読出すことにより、プリリターン先命令のアドレスを
生成する処理も行う。
【0090】(3.8) 「整数演算部」整数演算部1
17 は第1マイクロROM 部113 のマイクロR
OM に格納されたマイクロプログラムにより制御され
、各整数演算命令の機能を実現するために必要な演算を
整数演算部117 の内部にあるレジスタファイルと演
算器とで実行する。レジスタファイルには汎用レジスタ
と作業用レジスタとが含まれる。
17 は第1マイクロROM 部113 のマイクロR
OM に格納されたマイクロプログラムにより制御され
、各整数演算命令の機能を実現するために必要な演算を
整数演算部117 の内部にあるレジスタファイルと演
算器とで実行する。レジスタファイルには汎用レジスタ
と作業用レジスタとが含まれる。
【0091】また、整数演算部117 は演算器として
はALU, プライオリティエンコーダ等を備えている
。整数演算部117 には整数演算の結果により変化
するフラグ, 外部割込みのマスクレベルを定めるビッ
ト等を含むプロセッサ状態語(PSW), バッファ
メモリ制御レジスタ等が含まれる。
はALU, プライオリティエンコーダ等を備えている
。整数演算部117 には整数演算の結果により変化
するフラグ, 外部割込みのマスクレベルを定めるビッ
ト等を含むプロセッサ状態語(PSW), バッファ
メモリ制御レジスタ等が含まれる。
【0092】命令の演算対象となるオペランドがアドレ
スまたは即値である場合は、オペランドアドレス計算部
115 から即値または計算されたアドレスが入力され
る。 また、命令の演算対象となるオペランドがメモリ上のデ
ータである場合は、アドレス計算部115 で計算され
たアドレスがオペランドアクセス部120 へ出力され
、内蔵データキャッシュまたは外部からフェッチしたオ
ペランドが整数演算部117 に入力される。
スまたは即値である場合は、オペランドアドレス計算部
115 から即値または計算されたアドレスが入力され
る。 また、命令の演算対象となるオペランドがメモリ上のデ
ータである場合は、アドレス計算部115 で計算され
たアドレスがオペランドアクセス部120 へ出力され
、内蔵データキャッシュまたは外部からフェッチしたオ
ペランドが整数演算部117 に入力される。
【0093】演算に際して、内蔵データキャッシュ,
外部のデータキャッシュ107, 108あるいは主メ
モリ109 をリードする必要がある場合は、マイクロ
プログラムの指示によりオペランドアクセス部120へ
アドレスを出力することにより、目的のデータをフェッ
チする。
外部のデータキャッシュ107, 108あるいは主メ
モリ109 をリードする必要がある場合は、マイクロ
プログラムの指示によりオペランドアクセス部120へ
アドレスを出力することにより、目的のデータをフェッ
チする。
【0094】演算結果を内蔵データキャッシュ, 外部
のデータキャッシュ107, 108あるいは主メモリ
109 へストアする必要がある場合には、マイクロプ
ログラムの指示によりオペランドアクセス部120 へ
アドレスとデータとを出力する。この際、PC計算部1
16 からはそのストア動作を行った命令のPC値がオ
ペランドアクセス部120 へ出力される。
のデータキャッシュ107, 108あるいは主メモリ
109 へストアする必要がある場合には、マイクロプ
ログラムの指示によりオペランドアクセス部120 へ
アドレスとデータとを出力する。この際、PC計算部1
16 からはそのストア動作を行った命令のPC値がオ
ペランドアクセス部120 へ出力される。
【0095】外部割込み, 例外の処理等が行われて新
たな命令アドレスを整数演算部117 が得た場合は、
これが命令フェッチ部111 とPC計算部116 と
へ出力される。
たな命令アドレスを整数演算部117 が得た場合は、
これが命令フェッチ部111 とPC計算部116 と
へ出力される。
【0096】(3.9) 「浮動小数点演算部」浮動小
数点演算部118 は第2マイクロROM 部114
のマイクロROM に格納されたマイクロプログラムに
より制御され、各浮動小数点演算命令の機能を実現する
ために必要な演算を浮動小数点演算部118 の内部に
あるレジスタファイルと演算器とで実行する。浮動小数
点演算部118 には浮動小数点演算の丸め処理方法及
び浮動小数点演算例外の検出許可のモードを設定する浮
動小数点演算モード制御レジスタ(FMC) と、浮動
小数点演算結果に対するフラグ, 浮動小数点例外の発
生状態を示すステータスビットからなる浮動小数点演算
状態語(FSW) とがある。
数点演算部118 は第2マイクロROM 部114
のマイクロROM に格納されたマイクロプログラムに
より制御され、各浮動小数点演算命令の機能を実現する
ために必要な演算を浮動小数点演算部118 の内部に
あるレジスタファイルと演算器とで実行する。浮動小数
点演算部118 には浮動小数点演算の丸め処理方法及
び浮動小数点演算例外の検出許可のモードを設定する浮
動小数点演算モード制御レジスタ(FMC) と、浮動
小数点演算結果に対するフラグ, 浮動小数点例外の発
生状態を示すステータスビットからなる浮動小数点演算
状態語(FSW) とがある。
【0097】命令の演算対象となるオペランドが即値で
ある場合は、オペランドアドレス計算部115 から即
値が入力される。また、命令の演算対象となるオペラン
ドがメモリ上のデータである場合は、アドレス計算部1
15 で計算されたアドレスがオペランドアクセス部1
20 へ出力され、内蔵データキャッシュまたは外部か
らフェッチしたオペランドが浮動小数点演算部118
に入力される。
ある場合は、オペランドアドレス計算部115 から即
値が入力される。また、命令の演算対象となるオペラン
ドがメモリ上のデータである場合は、アドレス計算部1
15 で計算されたアドレスがオペランドアクセス部1
20 へ出力され、内蔵データキャッシュまたは外部か
らフェッチしたオペランドが浮動小数点演算部118
に入力される。
【0098】オペランドを内蔵データキャッシュ, 外
部のデータキャッシュ107, 108あるいは主メモ
リ109 へストアする必要がある場合には、マイクロ
プログラムの指示によりオペランドアクセス部120へ
データを出力する。ストア動作では浮動小数点演算部1
18 と整数演算部117 とが協調して動作し、オペ
ランドアクセス部120 に対して整数演算部117
からオペランドのアドレスが出力され、浮動小数点演算
部118 からオペランドが出力される。この際、PC
計算部116 からはそのストア動作を行った命令のP
C値がオペランドアクセス部120 へ出力される。
部のデータキャッシュ107, 108あるいは主メモ
リ109 へストアする必要がある場合には、マイクロ
プログラムの指示によりオペランドアクセス部120へ
データを出力する。ストア動作では浮動小数点演算部1
18 と整数演算部117 とが協調して動作し、オペ
ランドアクセス部120 に対して整数演算部117
からオペランドのアドレスが出力され、浮動小数点演算
部118 からオペランドが出力される。この際、PC
計算部116 からはそのストア動作を行った命令のP
C値がオペランドアクセス部120 へ出力される。
【0099】(3.10)「オペランドアクセス部」オ
ペランドアクセス部120 には、オペランドアドレス
のアドレス変換機構, データバッファ、データ用TL
B, ストアバッファ, オペランドブレイクポイン
トレジスタ及びそれらの制御部がある。データバッファ
はモード切替えにより内蔵データキャッシュまたはコン
テキスト退避用メモリとして動作する。
ペランドアクセス部120 には、オペランドアドレス
のアドレス変換機構, データバッファ、データ用TL
B, ストアバッファ, オペランドブレイクポイン
トレジスタ及びそれらの制御部がある。データバッファ
はモード切替えにより内蔵データキャッシュまたはコン
テキスト退避用メモリとして動作する。
【0100】データバッファを内蔵データキャッシュと
して動作させる場合、データのロード動作ではオペラン
ドアドレス計算部115 または整数演算部117 か
ら出力されたロードすべきデータの論理アドレスが物理
アドレスに変換され、内蔵データキャッシュからデータ
がフェッチされて整数演算部117 あるいは浮動小数
点演算部118 に入力される。
して動作させる場合、データのロード動作ではオペラン
ドアドレス計算部115 または整数演算部117 か
ら出力されたロードすべきデータの論理アドレスが物理
アドレスに変換され、内蔵データキャッシュからデータ
がフェッチされて整数演算部117 あるいは浮動小数
点演算部118 に入力される。
【0101】内蔵データキャッシュがミスした場合には
、アドレス入出力部119 へ物理アドレスが出力され
て外部へのデータアクセスが要求され、データ入出力部
122 を通じて入力されたデータが内蔵データキャッ
シュに登録される。
、アドレス入出力部119 へ物理アドレスが出力され
て外部へのデータアクセスが要求され、データ入出力部
122 を通じて入力されたデータが内蔵データキャッ
シュに登録される。
【0102】データのストア動作においては、整数演算
部117 から出力されたストアすべきデータの論理ア
ドレスが物理アドレスに変換され、整数演算部117
あるいは浮動小数点演算部118 から出力されたデー
タが内蔵データキャッシュにストアされると共に、スト
アバッファを通じてアドレス入出力部119 へ物理ア
ドレスが出力され、データ入出力部122を通じてデー
タが外部へ出力される。
部117 から出力されたストアすべきデータの論理ア
ドレスが物理アドレスに変換され、整数演算部117
あるいは浮動小数点演算部118 から出力されたデー
タが内蔵データキャッシュにストアされると共に、スト
アバッファを通じてアドレス入出力部119 へ物理ア
ドレスが出力され、データ入出力部122を通じてデー
タが外部へ出力される。
【0103】ストア動作でミスが発生した場合にはデー
タの更新は行われない。ストアバッファではストアすべ
きデータとそのアドレス、更にそのストア動作を行った
命令のPC値とが1組として管理される。ストアバッフ
ァでのストア動作は先入れ先出し制御方式で管理される
。
タの更新は行われない。ストアバッファではストアすべ
きデータとそのアドレス、更にそのストア動作を行った
命令のPC値とが1組として管理される。ストアバッフ
ァでのストア動作は先入れ先出し制御方式で管理される
。
【0104】データ用TLB がミスした場合のページ
ングによるアドレス変換及びデータ用TLB の更新も
オペランドアクセス部120 の内部の制御回路により
行われる。また、メモリアクセスアドレスがメモリ空間
にマッピングされている I/O領域に入るか否かのチ
ェックも行われる。
ングによるアドレス変換及びデータ用TLB の更新も
オペランドアクセス部120 の内部の制御回路により
行われる。また、メモリアクセスアドレスがメモリ空間
にマッピングされている I/O領域に入るか否かのチ
ェックも行われる。
【0105】また、データバッファを内蔵データキャッ
シュとして動作させる場合、本発明のデータ処理装置が
バスウォッチモードであれば、アドレス入出力部119
を通じて入力された物理アドレスがヒットした内蔵デ
ータキャッシュのエントリは無効化される。
シュとして動作させる場合、本発明のデータ処理装置が
バスウォッチモードであれば、アドレス入出力部119
を通じて入力された物理アドレスがヒットした内蔵デ
ータキャッシュのエントリは無効化される。
【0106】(3.11)「アドレス入出力部」アドレ
ス入出力部119は命令フェッチ部111 とオペラン
ドアクセス部120 とから出力されたアドレスを本発
明のデータ処理装置100 の外部へ出力する。アドレ
スの出力は本発明のデータ処理装置100 で定められ
たバスプロトコルに従って行われる。バスプロトコルの
制御はアドレス入出力部119 内にある外部バス制御
回路が行う。外部バス制御回路ではページ不在例外また
はバスアクセス例外, 外部割込みの受付も行う。
ス入出力部119は命令フェッチ部111 とオペラン
ドアクセス部120 とから出力されたアドレスを本発
明のデータ処理装置100 の外部へ出力する。アドレ
スの出力は本発明のデータ処理装置100 で定められ
たバスプロトコルに従って行われる。バスプロトコルの
制御はアドレス入出力部119 内にある外部バス制御
回路が行う。外部バス制御回路ではページ不在例外また
はバスアクセス例外, 外部割込みの受付も行う。
【0107】また、本発明のデータ処理装置100 以
外の外部デバイスがバスマスタになっており、且つ本発
明のデータ処理装置100 がバスウォッチモードであ
れば外部デバイスがデータライトサイクルを実行した場
合にアドレスバス101 上へ出力されたアドレスを取
込んで命令フェッチ部111 とオペランドアクセス部
120 とへ転送する。
外の外部デバイスがバスマスタになっており、且つ本発
明のデータ処理装置100 がバスウォッチモードであ
れば外部デバイスがデータライトサイクルを実行した場
合にアドレスバス101 上へ出力されたアドレスを取
込んで命令フェッチ部111 とオペランドアクセス部
120 とへ転送する。
【0108】(3.12)「データ入出力部」データ入
出力部121 はオペランドのロード動作の際にデータ
バス102 からデータを取込んでオペランドアクセス
部120 へ転送し、またオペランドのストア動作の際
にオペランドアクセス部120 から出力されたオペラ
ンドをデータバス102 へ出力する。データキャッシ
ュ107, 108のアクセス方法には、1つのアドレ
スに対して64ビットのデータをアクセスする標準アク
セスモードと、1つのアドレスに対して4回連続で64
ビットのデータをアクセスするクワッドアクセスモード
とがあり、いずれの場合もデータ入出力部121 はオ
ペランドアクセス部120 と外部のメモリとで送受さ
れるデータの入出力を制御する。
出力部121 はオペランドのロード動作の際にデータ
バス102 からデータを取込んでオペランドアクセス
部120 へ転送し、またオペランドのストア動作の際
にオペランドアクセス部120 から出力されたオペラ
ンドをデータバス102 へ出力する。データキャッシ
ュ107, 108のアクセス方法には、1つのアドレ
スに対して64ビットのデータをアクセスする標準アク
セスモードと、1つのアドレスに対して4回連続で64
ビットのデータをアクセスするクワッドアクセスモード
とがあり、いずれの場合もデータ入出力部121 はオ
ペランドアクセス部120 と外部のメモリとで送受さ
れるデータの入出力を制御する。
【0109】(4)「パイプライン処理」本発明のデー
タ処理装置100は各種のバッファ記憶装置と、命令バ
ス103 及びデータバス102を使用したメモリの効
率的アクセスとにより、命令をパイプライン処理して高
性能に動作する。ここでは、本発明のデータ処理装置1
00 のパイプライン処理方法について説明する。
タ処理装置100は各種のバッファ記憶装置と、命令バ
ス103 及びデータバス102を使用したメモリの効
率的アクセスとにより、命令をパイプライン処理して高
性能に動作する。ここでは、本発明のデータ処理装置1
00 のパイプライン処理方法について説明する。
【0110】(4.1) 「パイプライン処理機構」本
発明のデータ処理装置100 のパイプライン処理機構
を図5の模式図に示す。本発明のデータ処理装置100
のパイプライン処理機構は、命令のプリフェッチを行
う命令フェッチステージ (IFステージ)31,
命令のデコードを行うデコードステージ (Dステージ
)32, オペランドのアドレス計算を行うオペラン
ドアドレス計算ステージ (Aステージ)33, マ
イクロROM アクセス (特にRステージ37と称す
) とオペランドのプリフェッチ (特にOFステージ
38と称す) とを行うオペランドフェッチステージ
(Fステージ)34, 命令の実行を行う実行ステー
ジ (Eステージ)35, メモリオペランドのスト
アを行うストアステージ (Sステージ)36 の6段
構成でパイプライン処理を行う。なお、Sステージ36
には3段のストアバッファがある。
発明のデータ処理装置100 のパイプライン処理機構
を図5の模式図に示す。本発明のデータ処理装置100
のパイプライン処理機構は、命令のプリフェッチを行
う命令フェッチステージ (IFステージ)31,
命令のデコードを行うデコードステージ (Dステージ
)32, オペランドのアドレス計算を行うオペラン
ドアドレス計算ステージ (Aステージ)33, マ
イクロROM アクセス (特にRステージ37と称す
) とオペランドのプリフェッチ (特にOFステージ
38と称す) とを行うオペランドフェッチステージ
(Fステージ)34, 命令の実行を行う実行ステー
ジ (Eステージ)35, メモリオペランドのスト
アを行うストアステージ (Sステージ)36 の6段
構成でパイプライン処理を行う。なお、Sステージ36
には3段のストアバッファがある。
【0111】各ステージは他のステージとは独立に動作
し、理論上は6つのステージが完全に独立動作する。S
ステージ36以外の各ステージは1回の処理を最小1ク
ロックで行うことができる。Sステージ36は1回のオ
ペランドストア処理を最小2クロックで行うことができ
る。 従って、メモリオペランドのストア処理が行われない場
合、理想的には1クロックごとに次々とパイプライン処
理が進行する。
し、理論上は6つのステージが完全に独立動作する。S
ステージ36以外の各ステージは1回の処理を最小1ク
ロックで行うことができる。Sステージ36は1回のオ
ペランドストア処理を最小2クロックで行うことができ
る。 従って、メモリオペランドのストア処理が行われない場
合、理想的には1クロックごとに次々とパイプライン処
理が進行する。
【0112】本発明のデータ処理装置100 にはメモ
リ−メモリ間演算あるいはメモリ間接アドレッシング等
、1回の基本パイプライン処理だけでは処理が行えない
命令があるが、これらの処理に対してもなるべく均衡し
たパイプライン処理が行えるように設計されている。複
数のメモリオペランドを有する命令に対してはメモリオ
ペランドの数に基づいてデコード段階で複数のパイプラ
イン処理単位 (ステップコード) に分解してパイプ
ライン処理を行う。
リ−メモリ間演算あるいはメモリ間接アドレッシング等
、1回の基本パイプライン処理だけでは処理が行えない
命令があるが、これらの処理に対してもなるべく均衡し
たパイプライン処理が行えるように設計されている。複
数のメモリオペランドを有する命令に対してはメモリオ
ペランドの数に基づいてデコード段階で複数のパイプラ
イン処理単位 (ステップコード) に分解してパイプ
ライン処理を行う。
【0113】IFステージ31からDステージ32へ渡
される情報は命令コードそのものである。Dステージ3
2からAステージ33へ渡される情報は命令で指定され
た演算に関する情報 (Dコード41と称す) と、オ
ペランドのアドレス計算に関係する情報 (Aコード4
2と称す) と、処理中の命令のプログラムカウンタ値
(PC)との3つである。
される情報は命令コードそのものである。Dステージ3
2からAステージ33へ渡される情報は命令で指定され
た演算に関する情報 (Dコード41と称す) と、オ
ペランドのアドレス計算に関係する情報 (Aコード4
2と称す) と、処理中の命令のプログラムカウンタ値
(PC)との3つである。
【0114】Aステージ33からFステージ34へ渡さ
れる情報はマイクロプログラムルーチンのエントリ番地
, マイクロプログラムへのパラメータなどを含むRコ
ード43と、オペランドのアドレス, アクセス方法指
示情報等を含むFコード44と、処理中の命令のプログ
ラムカウンタ値(PC)との3つである。
れる情報はマイクロプログラムルーチンのエントリ番地
, マイクロプログラムへのパラメータなどを含むRコ
ード43と、オペランドのアドレス, アクセス方法指
示情報等を含むFコード44と、処理中の命令のプログ
ラムカウンタ値(PC)との3つである。
【0115】Fステージ34からEステージ35へ渡さ
れる情報は演算制御情報, リテラル等を含むEコード
45と、オペランド, オペランドアドレス等を含むS
コード46a, 46bと、処理中命令のプログラムカ
ウンタ値(PC)との3つである。Sコード46a,
46bはアドレス46a とデータ46b とからなる
。
れる情報は演算制御情報, リテラル等を含むEコード
45と、オペランド, オペランドアドレス等を含むS
コード46a, 46bと、処理中命令のプログラムカ
ウンタ値(PC)との3つである。Sコード46a,
46bはアドレス46a とデータ46b とからなる
。
【0116】Eステージ35からSステージ36へ渡さ
れる情報は、ストアすべき演算結果であるWコード47
a, 47bとその演算結果を出力した命令のプログラ
ムカウンタ値(PC)との2つである。Wコード47a
, 47bはアドレス47a とデータ47b とから
なる。
れる情報は、ストアすべき演算結果であるWコード47
a, 47bとその演算結果を出力した命令のプログラ
ムカウンタ値(PC)との2つである。Wコード47a
, 47bはアドレス47a とデータ47b とから
なる。
【0117】Eステージ35以前のステージで検出され
たEIT はそのコードがEステージ35に到達するま
でEIT 処理を起動しない。Eステージ35で処理さ
れている命令のみが実行段階の命令であり、IFステー
ジ31〜Fステージ34で処理されている命令は未だ実
行段階に至っていないからである。従って、Eステージ
35以前で検出されたEIT はそれが検出されたこと
がステップコード中に記録されて次のステージに伝えら
れるのみである。Sステージ36で検出されたEIT
はEステージ35で処理中の命令の処理が完了した時点
で受付けられるか、またはその命令の処理がキャンセル
されて受付けられ、Eステージ35に戻って処理される
。
たEIT はそのコードがEステージ35に到達するま
でEIT 処理を起動しない。Eステージ35で処理さ
れている命令のみが実行段階の命令であり、IFステー
ジ31〜Fステージ34で処理されている命令は未だ実
行段階に至っていないからである。従って、Eステージ
35以前で検出されたEIT はそれが検出されたこと
がステップコード中に記録されて次のステージに伝えら
れるのみである。Sステージ36で検出されたEIT
はEステージ35で処理中の命令の処理が完了した時点
で受付けられるか、またはその命令の処理がキャンセル
されて受付けられ、Eステージ35に戻って処理される
。
【0118】(4.2) 「各パイプラインステージの
処理」各パイプラインステージの入出力ステップコード
には図4に示したように便宜上名前が付与されている。 またステップコードはオペレーションコードに関する処
理を行い、マイクロROM のエントリ番地, Eステ
ージ35に対するパラメータなどになる系列と、Eステ
ージ35の処理対象のオペランドになる系列との2系列
がある。また、Dステージ32からSステージ36まで
の間では処理中の命令のプログラムカウンタ値が受渡さ
れる。
処理」各パイプラインステージの入出力ステップコード
には図4に示したように便宜上名前が付与されている。 またステップコードはオペレーションコードに関する処
理を行い、マイクロROM のエントリ番地, Eステ
ージ35に対するパラメータなどになる系列と、Eステ
ージ35の処理対象のオペランドになる系列との2系列
がある。また、Dステージ32からSステージ36まで
の間では処理中の命令のプログラムカウンタ値が受渡さ
れる。
【0119】(4.2.1) 「命令フェッチステージ
」命令フェッチステージ (IFステージ31) では
命令フェッチ部111 が動作する。内蔵命令キャッシ
ュからあるいは外部メモリから命令をフェッチし、命令
キューに入力して、Dステージ32に対して2〜6バイ
ト単位で命令コードを出力する。命令キューの入力は整
置された4バイト単位で行われる。
」命令フェッチステージ (IFステージ31) では
命令フェッチ部111 が動作する。内蔵命令キャッシ
ュからあるいは外部メモリから命令をフェッチし、命令
キューに入力して、Dステージ32に対して2〜6バイ
ト単位で命令コードを出力する。命令キューの入力は整
置された4バイト単位で行われる。
【0120】標準アクセスモードで外部から命令をフェ
ッチする場合は整置された4バイトにつき最小2クロッ
クを要する。クワッドアクセスモードでは16バイトに
つき最小5クロックを要する。内蔵命令キャッシュがヒ
ットした場合は整置された8バイトにつき1クロックで
フェッチ可能である。命令キューの出力単位は2バイト
ごとに可変であり、1クロックの間に最大6バイトまで
出力可能である。またジャンプの直後には命令キューを
バイパスして命令コード2バイトを直接命令デコーダに
転送することも可能である。
ッチする場合は整置された4バイトにつき最小2クロッ
クを要する。クワッドアクセスモードでは16バイトに
つき最小5クロックを要する。内蔵命令キャッシュがヒ
ットした場合は整置された8バイトにつき1クロックで
フェッチ可能である。命令キューの出力単位は2バイト
ごとに可変であり、1クロックの間に最大6バイトまで
出力可能である。またジャンプの直後には命令キューを
バイパスして命令コード2バイトを直接命令デコーダに
転送することも可能である。
【0121】命令の論理アドレスの物理アドレスへの変
換,内蔵命令キャッシュ及び命令用TLB の制御,プ
リフェッチ先命令アドレスの管理, 命令キューの制御
もIFステージ31で行われる。
換,内蔵命令キャッシュ及び命令用TLB の制御,プ
リフェッチ先命令アドレスの管理, 命令キューの制御
もIFステージ31で行われる。
【0122】(4.2.2) 「命令デコードステージ
」命令デコードステージ (Dステージ32) はIF
ステージ31から入力された命令コードをデコードする
。命令コードのデコードは命令デコード部112のDス
テージデコード部22を使用して1クロックに1度の割
合で行われ、1回のデコード処理で0〜6バイトの命令
コードを消費する (リターンサブルーチン命令の復帰
先アドレスを含むステップコードの出力処理等では命令
コードを消費しない) 。Dステージ32は1回のデコ
ードでAステージ33に対してアドレス計算情報である
Aコード42とオペレーションコードの中間デコード結
果であるDコード41とを出力する。
」命令デコードステージ (Dステージ32) はIF
ステージ31から入力された命令コードをデコードする
。命令コードのデコードは命令デコード部112のDス
テージデコード部22を使用して1クロックに1度の割
合で行われ、1回のデコード処理で0〜6バイトの命令
コードを消費する (リターンサブルーチン命令の復帰
先アドレスを含むステップコードの出力処理等では命令
コードを消費しない) 。Dステージ32は1回のデコ
ードでAステージ33に対してアドレス計算情報である
Aコード42とオペレーションコードの中間デコード結
果であるDコード41とを出力する。
【0123】Dステージ32ではPC計算部116 の
制御及び命令キューからの命令コードの出力処理も行う
。また、Dステージ32ではブランチ命令及びサブルー
チンからのリターン命令に対して先行ジャンプ処理を行
う。先行ジャンプを行った無条件ブランチ命令に対して
はDコード41もAコード42も出力せず、Dステージ
32で命令の処理を終了する。
制御及び命令キューからの命令コードの出力処理も行う
。また、Dステージ32ではブランチ命令及びサブルー
チンからのリターン命令に対して先行ジャンプ処理を行
う。先行ジャンプを行った無条件ブランチ命令に対して
はDコード41もAコード42も出力せず、Dステージ
32で命令の処理を終了する。
【0124】(4.2.3) 「オペランドアドレス計
算ステージ」オペランドアドレス計算ステージ (Aス
テージ) 33での処理は大きく2つに分かれる。第1
は、命令デコード部112 のAステージデコード部2
4を使用してオペレーションコードの後段デコードを行
う処理で、第2はオペランドアドレス計算部54でオペ
ランドアドレスの計算を行う処理である。
算ステージ」オペランドアドレス計算ステージ (Aス
テージ) 33での処理は大きく2つに分かれる。第1
は、命令デコード部112 のAステージデコード部2
4を使用してオペレーションコードの後段デコードを行
う処理で、第2はオペランドアドレス計算部54でオペ
ランドアドレスの計算を行う処理である。
【0125】オペレーションコードの後段デコード処理
はDコード41を入力とし、レジスタ及びメモリの書込
み予約及びマイクロプログラムルーチンのエントリ番地
及びマイクロプログラムに対するパラメータ等を含むR
コード43の出力を行う。なお、レジスタ及びメモリの
書込み予約は、アドレス計算で参照したレジスタ及びメ
モリの内容がパイプライン上を先行する命令で書換えら
れてしまって誤ったアドレス計算が行われることを防止
するためのものである。
はDコード41を入力とし、レジスタ及びメモリの書込
み予約及びマイクロプログラムルーチンのエントリ番地
及びマイクロプログラムに対するパラメータ等を含むR
コード43の出力を行う。なお、レジスタ及びメモリの
書込み予約は、アドレス計算で参照したレジスタ及びメ
モリの内容がパイプライン上を先行する命令で書換えら
れてしまって誤ったアドレス計算が行われることを防止
するためのものである。
【0126】オペランドアドレス計算処理はAコード4
2を入力とし、Aコード42に従ってオペランドアドレ
ス計算部54でオペランドのアドレス計算を行い、その
計算結果をFコード44として出力する。またジャンプ
命令に対してはジャンプ先アドレスの計算を行って先行
ジャンプ処理を行う。この際、アドレス計算に伴うレジ
スタの読出し時に書込み予約のチェックが行われ、先行
命令がレジスタまたはメモリに対して書込み処理を終了
していないために予約があることが指示されれば、先行
命令はEステージ35での書込み処理が終了するまで待
機状態になる。
2を入力とし、Aコード42に従ってオペランドアドレ
ス計算部54でオペランドのアドレス計算を行い、その
計算結果をFコード44として出力する。またジャンプ
命令に対してはジャンプ先アドレスの計算を行って先行
ジャンプ処理を行う。この際、アドレス計算に伴うレジ
スタの読出し時に書込み予約のチェックが行われ、先行
命令がレジスタまたはメモリに対して書込み処理を終了
していないために予約があることが指示されれば、先行
命令はEステージ35での書込み処理が終了するまで待
機状態になる。
【0127】Aステージ33では、Dステージ32で先
行ジャンプを行わなかった絶対値アドレスへのジャンプ
あるいはレジスタ間接アドレッシングのジャンプ等に対
して先行ジャンプ処理を行う。先行ジャンプを行った無
条件ジャンプ命令に対してはRコード43あるいはFコ
ード44は出力されず、Aステージ33で命令の処理を
終了する。
行ジャンプを行わなかった絶対値アドレスへのジャンプ
あるいはレジスタ間接アドレッシングのジャンプ等に対
して先行ジャンプ処理を行う。先行ジャンプを行った無
条件ジャンプ命令に対してはRコード43あるいはFコ
ード44は出力されず、Aステージ33で命令の処理を
終了する。
【0128】(4.2.4) 「マイクロROM アク
セスステージ」オペランドフェッチステージ (Fステ
ージ)34 での処理も大きく2つに分かれる。第1は
マイクロROM のアクセス処理であり、特にRステー
ジ37と称す。第2はオペランドプリフェッチ処理であ
り、特にOFステージ38と称す。Rステージ37とO
Fステージ38とは必ずしも同時に動作するわけではな
く、データキャッシュのミス, ヒット、データTLB
のミス, ヒット等に依存して、動作タイミングが異
なる。
セスステージ」オペランドフェッチステージ (Fステ
ージ)34 での処理も大きく2つに分かれる。第1は
マイクロROM のアクセス処理であり、特にRステー
ジ37と称す。第2はオペランドプリフェッチ処理であ
り、特にOFステージ38と称す。Rステージ37とO
Fステージ38とは必ずしも同時に動作するわけではな
く、データキャッシュのミス, ヒット、データTLB
のミス, ヒット等に依存して、動作タイミングが異
なる。
【0129】Rステージ37の処理であるマイクロRO
M アクセス処理はRコード43に対して次のEステー
ジ35での実行に使用される実行制御コードであるEコ
ード45を作り出すためのマイクロROM アクセスと
マイクロ命令デコード処理とである。
M アクセス処理はRコード43に対して次のEステー
ジ35での実行に使用される実行制御コードであるEコ
ード45を作り出すためのマイクロROM アクセスと
マイクロ命令デコード処理とである。
【0130】1つのRコードに対する処理が2つ以上の
マイクロプログラムステップに分解される場合、第1マ
イクロROM 部113 及び第2マイクロROM 部
114 がEステージ35で使用され、次のRコード4
3がマイクロROM アクセス待ちになる場合がある。 Rコード43に対するマイクロROM アクセスが行わ
れるのは、Eステージ35でのマイクロROM アクセ
スが行われない場合である。本発明のデータ処理装置1
00 では多くの整数演算命令が1マイクロプログラム
ステップで行われ、多くの浮動小数点演算命令が2マイ
クロプログラムステップで行われるため、実際にはRコ
ード43に対するマイクロROM アクセスが次々と行
われる可能性が高い。
マイクロプログラムステップに分解される場合、第1マ
イクロROM 部113 及び第2マイクロROM 部
114 がEステージ35で使用され、次のRコード4
3がマイクロROM アクセス待ちになる場合がある。 Rコード43に対するマイクロROM アクセスが行わ
れるのは、Eステージ35でのマイクロROM アクセ
スが行われない場合である。本発明のデータ処理装置1
00 では多くの整数演算命令が1マイクロプログラム
ステップで行われ、多くの浮動小数点演算命令が2マイ
クロプログラムステップで行われるため、実際にはRコ
ード43に対するマイクロROM アクセスが次々と行
われる可能性が高い。
【0131】(4.2.5) 「オペランドフェッチス
テージ」オペランドフェッチステージ (OFステージ
)38 はFステージ34が行う上述の2つの処理の内
のオペランドプリフェッチ処理を行う。
テージ」オペランドフェッチステージ (OFステージ
)38 はFステージ34が行う上述の2つの処理の内
のオペランドプリフェッチ処理を行う。
【0132】OFステージ38では、Fコード44の論
理アドレスをデータTLB で物理アドレスに変換して
その物理アドレスで内蔵データキャッシュあるいは外部
のメモリをアクセスしてオペランドをフェッチし、その
オペランドとFコード44として転送されてきたその論
理アドレスとを組合わせてSコード46a,46b と
して出力する。
理アドレスをデータTLB で物理アドレスに変換して
その物理アドレスで内蔵データキャッシュあるいは外部
のメモリをアクセスしてオペランドをフェッチし、その
オペランドとFコード44として転送されてきたその論
理アドレスとを組合わせてSコード46a,46b と
して出力する。
【0133】1つのFコード44では8バイト境界をク
ロスしてもよいが、8バイト以下のオペランドフェッチ
を指定する。Fコード44にはオペランドをアクセスす
るか否かの指定も含まれており、Aステージ33が計算
したオペランドアドレス自体あるいは即値をEステージ
35へ転送する場合にはオペランドプリフェッチは行わ
れず、Fコード44の内容をSコード46a, 46b
として転送する。
ロスしてもよいが、8バイト以下のオペランドフェッチ
を指定する。Fコード44にはオペランドをアクセスす
るか否かの指定も含まれており、Aステージ33が計算
したオペランドアドレス自体あるいは即値をEステージ
35へ転送する場合にはオペランドプリフェッチは行わ
れず、Fコード44の内容をSコード46a, 46b
として転送する。
【0134】(4.2.6) 「実行ステージ」実行ス
テージ (Eステージ) 35はEコード45とSコー
ド46a, 46bとを入力として動作する。このEス
テージ35が命令を実行するステージであり、Fステー
ジ34以前のステージで行われた処理は全てEステージ
35のための前処理である。Eステージ35でジャンプ
が実行されたり、 EIT処理が起動されたりした場合
は、IFステージ31〜Fステージ34までの処理はす
べて無効化される。Eステージ35はマイクロプログラ
ムにより制御され、Eコード45にて示されたマイクロ
プログラムルーチンのエントリ番地からの一連のマイク
ロ命令を実行することにより命令を実行する。
テージ (Eステージ) 35はEコード45とSコー
ド46a, 46bとを入力として動作する。このEス
テージ35が命令を実行するステージであり、Fステー
ジ34以前のステージで行われた処理は全てEステージ
35のための前処理である。Eステージ35でジャンプ
が実行されたり、 EIT処理が起動されたりした場合
は、IFステージ31〜Fステージ34までの処理はす
べて無効化される。Eステージ35はマイクロプログラ
ムにより制御され、Eコード45にて示されたマイクロ
プログラムルーチンのエントリ番地からの一連のマイク
ロ命令を実行することにより命令を実行する。
【0135】Eコード45には整数演算部117 を制
御するコード (特にEIコードと称す) と浮動小数
点演算部118 を制御するコード (特にEFコード
と称す) とがある。EIコードとEFコードとは独立
に出力されることも可能である。両コードが独立して出
力された場合には、Eステージ35では整数演算部11
7 と浮動小数点演算部118 とが並列に動作する。 例えば浮動小数点演算部118 でメモリオペランドを
持たない浮動小数点演算命令を実行する場合、この動作
は整数演算部117 の動作と並行して実行される。
御するコード (特にEIコードと称す) と浮動小数
点演算部118 を制御するコード (特にEFコード
と称す) とがある。EIコードとEFコードとは独立
に出力されることも可能である。両コードが独立して出
力された場合には、Eステージ35では整数演算部11
7 と浮動小数点演算部118 とが並列に動作する。 例えば浮動小数点演算部118 でメモリオペランドを
持たない浮動小数点演算命令を実行する場合、この動作
は整数演算部117 の動作と並行して実行される。
【0136】整数演算であっても浮動小数点演算であっ
ても、マイクロROM の読出しとマイクロ命令の実行
とはパイプライン化されて行われる。従って、マイクロ
プログラムで分岐が発生した場合は1マイクロステップ
の空きが生じる。Eステージ35ではAステージ33が
行ったレジスタまたはメモリに対する書込み予約をオペ
ランドの書込みの後に解除する。
ても、マイクロROM の読出しとマイクロ命令の実行
とはパイプライン化されて行われる。従って、マイクロ
プログラムで分岐が発生した場合は1マイクロステップ
の空きが生じる。Eステージ35ではAステージ33が
行ったレジスタまたはメモリに対する書込み予約をオペ
ランドの書込みの後に解除する。
【0137】各種の割込は命令の切目のタイミングにお
いてEステージ35が直接受付け、マイクロプログラム
により必要な処理が実行される。その他の各種EIT
の処理もEステージ35でマイクロプログラムにより行
われる。
いてEステージ35が直接受付け、マイクロプログラム
により必要な処理が実行される。その他の各種EIT
の処理もEステージ35でマイクロプログラムにより行
われる。
【0138】演算の結果をメモリにストアする必要があ
る場合は、Eステージ35はSステージ36へWコード
47a, 47bとストア処理を行う命令のプログラム
カウンタ値との両方を出力する。
る場合は、Eステージ35はSステージ36へWコード
47a, 47bとストア処理を行う命令のプログラム
カウンタ値との両方を出力する。
【0139】(4.2.7) 「オペランドストアステ
ージ」オペランドストアステージ (Sステージ)36
はWコードの論理アドレス47a をデータTLB
で物理アドレスに変換し、そのアドレスでWコードのデ
ータ47b を内蔵データキャッシュにストアする。同
時にWコード47a, 47bとプログラムカウンタ値
とをストアバッファに入力し、データTLB から出力
された物理アドレスを用いて外部のメモリへWコードの
データ47b をストアする処理が行われる。
ージ」オペランドストアステージ (Sステージ)36
はWコードの論理アドレス47a をデータTLB
で物理アドレスに変換し、そのアドレスでWコードのデ
ータ47b を内蔵データキャッシュにストアする。同
時にWコード47a, 47bとプログラムカウンタ値
とをストアバッファに入力し、データTLB から出力
された物理アドレスを用いて外部のメモリへWコードの
データ47b をストアする処理が行われる。
【0140】Sステージ36の動作はオペランドアクセ
ス部120 で行われ、データTLB または内蔵デー
タキャッシュがミスした場合のアドレス変換処理及び内
蔵データキャッシュの入替え処理も行う。
ス部120 で行われ、データTLB または内蔵デー
タキャッシュがミスした場合のアドレス変換処理及び内
蔵データキャッシュの入替え処理も行う。
【0141】オペランドのストア処理でEIT が検出
された場合は、ストアバッファにWコード47a, 4
7bとプログラムカウンタ値とが保持されたままの状態
で、Eステージ35にEIT の検出が通知される。
された場合は、ストアバッファにWコード47a, 4
7bとプログラムカウンタ値とが保持されたままの状態
で、Eステージ35にEIT の検出が通知される。
【0142】(4.3) 「各パイプラインステージの
状態制御」パイプラインの各ステージは入力ラッチと出
力ラッチとを有し、基本的には他のステージとは独立に
動作する。各ステージは1つ前に行った処理が終了し、
その処理結果を出力ラッチから次のステージの入力ラッ
チへ転送し、自ステージの入力ラッチに次の処理に必要
な入力信号が全て揃えば次の処理を開始する。
状態制御」パイプラインの各ステージは入力ラッチと出
力ラッチとを有し、基本的には他のステージとは独立に
動作する。各ステージは1つ前に行った処理が終了し、
その処理結果を出力ラッチから次のステージの入力ラッ
チへ転送し、自ステージの入力ラッチに次の処理に必要
な入力信号が全て揃えば次の処理を開始する。
【0143】つまり、各ステージは、1つ前段のステー
ジから出力されてくる次の処理に対する入力信号が全て
有効となり、現在の処理結果を後段のステージの入力ラ
ッチへ転送して出力ラッチが空になった場合に次の処理
を開始する。各ステージが動作を開始する直前のタイミ
ングで入力信号が全て揃っている必要がある。入力信号
が揃っていない場合には、そのステージは待ち状態 (
入力待ち) になる。出力ラッチから次のステージの入
力ラッチへの転送が行われる場合には次のステージの入
力ラッチが空き状態になっている必要があり、次のステ
ージの入力ラッチが空き状態でない場合もパイプライン
ステージは待ち状態 (出力待ち) になる。また、キ
ャッシュ,TLBがミスしたり、パイプラインで処理中
の命令相互間にデータ干渉が生じたような場合には、1
つのステージの処理に複数クロックが必要となり、パイ
プライン処理が遅延する。
ジから出力されてくる次の処理に対する入力信号が全て
有効となり、現在の処理結果を後段のステージの入力ラ
ッチへ転送して出力ラッチが空になった場合に次の処理
を開始する。各ステージが動作を開始する直前のタイミ
ングで入力信号が全て揃っている必要がある。入力信号
が揃っていない場合には、そのステージは待ち状態 (
入力待ち) になる。出力ラッチから次のステージの入
力ラッチへの転送が行われる場合には次のステージの入
力ラッチが空き状態になっている必要があり、次のステ
ージの入力ラッチが空き状態でない場合もパイプライン
ステージは待ち状態 (出力待ち) になる。また、キ
ャッシュ,TLBがミスしたり、パイプラインで処理中
の命令相互間にデータ干渉が生じたような場合には、1
つのステージの処理に複数クロックが必要となり、パイ
プライン処理が遅延する。
【0144】(5) 高機能命令の詳細動作本発明のデ
ータ処理装置100 では、多数のオペランドをレジス
タとメモリとの間で転送する LDM(Load Mu
lti)命令, STM(Store Multi)命
令、高級言語でのサブルーチンの出入り口で使用する
ENTER命令, EXITD命令のなどの高機能命
令を高速実行する機能を有する。
ータ処理装置100 では、多数のオペランドをレジス
タとメモリとの間で転送する LDM(Load Mu
lti)命令, STM(Store Multi)命
令、高級言語でのサブルーチンの出入り口で使用する
ENTER命令, EXITD命令のなどの高機能命
令を高速実行する機能を有する。
【0145】これらの高機能命令は命令デコード部11
2 で複数の処理単位に分解してパイプライン上に展開
される。ここではこれら4つの命令を例に本発明のデー
タ処理装置100 が高機能命令を高速実行する機構を
説明する。
2 で複数の処理単位に分解してパイプライン上に展開
される。ここではこれら4つの命令を例に本発明のデー
タ処理装置100 が高機能命令を高速実行する機構を
説明する。
【0146】(5.1) 「命令デコード部の詳細構成
」図1は本発明のデータ処理装置の命令デコード部11
2 の詳細な構成を示すブロック図である。
」図1は本発明のデータ処理装置の命令デコード部11
2 の詳細な構成を示すブロック図である。
【0147】LDM命令, STM命令, ENT
ER命令及び EXITD命令では図1に示すDステー
ジデコード部22の出力に従ってビット数計数回路23
がレジスタリスト中のセットされたビットの数を計数す
る。この際、 ENTER命令と EXITD命令とで
はレジスタR14とレジスタR15 とに対応するビッ
トはマスクされ、ビット数計数回路23への入力時にリ
セットされる。
ER命令及び EXITD命令では図1に示すDステー
ジデコード部22の出力に従ってビット数計数回路23
がレジスタリスト中のセットされたビットの数を計数す
る。この際、 ENTER命令と EXITD命令とで
はレジスタR14とレジスタR15 とに対応するビッ
トはマスクされ、ビット数計数回路23への入力時にリ
セットされる。
【0148】図33はビット数計数回路23の詳細な構
成図を示すブロック図である。入力された16ビットの
レジスタリストは必要があればマスク回路27で下位2
ビットまたは上位2ビットがマスクされ、計数回路28
に入力される。マスク回路27の出力はプライオリティ
エンコード部25へも送られる。計数回路28はWAL
LACE TREEとリップルキャリー加算器とで16
ビットのビット列からセットされているビットの数を計
算して出力ラッチ29に5ビットの計算結果を出力する
。出力ラッチ29の内容は転送オペランド数カウンタ2
6へ送られる。
成図を示すブロック図である。入力された16ビットの
レジスタリストは必要があればマスク回路27で下位2
ビットまたは上位2ビットがマスクされ、計数回路28
に入力される。マスク回路27の出力はプライオリティ
エンコード部25へも送られる。計数回路28はWAL
LACE TREEとリップルキャリー加算器とで16
ビットのビット列からセットされているビットの数を計
算して出力ラッチ29に5ビットの計算結果を出力する
。出力ラッチ29の内容は転送オペランド数カウンタ2
6へ送られる。
【0149】(5.2) 「プライオリティエンコード
部の詳細構成」プライオリティエンコード部25はビッ
ト列から先頭の”1” または”0” の位置をサーチ
したり、連続した2ビットが”1” または”0” で
あるフィールドの先頭の位置をサーチする。図2はこの
プライオリティエンコード部25の詳細な構成を示すブ
ロック図である。
部の詳細構成」プライオリティエンコード部25はビッ
ト列から先頭の”1” または”0” の位置をサーチ
したり、連続した2ビットが”1” または”0” で
あるフィールドの先頭の位置をサーチする。図2はこの
プライオリティエンコード部25の詳細な構成を示すブ
ロック図である。
【0150】プライオリティエンコード部25はビット
列生成回路1,オフセット値指定回路2,2つのプライ
オリティエンコード回路3及び4,エンコード結果判定
回路7等にて構成されている。
列生成回路1,オフセット値指定回路2,2つのプライ
オリティエンコード回路3及び4,エンコード結果判定
回路7等にて構成されている。
【0151】ビット列生成回路1はビット数計数回路2
3から入力された16ビットのビット列を保持する機能
, ビット順序を逆転する機能, 隣接ビット間の論理
積をとる機能を有し、これらの各機能による加工された
ビット列をE1, E2として第1エンコード回路3及
び第2エンコード回路4へ出力する。
3から入力された16ビットのビット列を保持する機能
, ビット順序を逆転する機能, 隣接ビット間の論理
積をとる機能を有し、これらの各機能による加工された
ビット列をE1, E2として第1エンコード回路3及
び第2エンコード回路4へ出力する。
【0152】図32はビット列生成回路1の詳細な構成
を示すブロック図である。
を示すブロック図である。
【0153】入力ラッチ11にはビット数計数回路23
からマスクされたレジスタリストが入力されており、そ
の出力は必要に応じてビット正順逆順指定回路12でビ
ット順序が逆転されて第1エンコード回路3に入力され
る。ビット正順逆順指定回路12の出力はまた、論理積
回路13により各ビットについてそれぞれの上位側に隣
接するビットとの論理積がとられて第2エンコード回路
4に入力される。
からマスクされたレジスタリストが入力されており、そ
の出力は必要に応じてビット正順逆順指定回路12でビ
ット順序が逆転されて第1エンコード回路3に入力され
る。ビット正順逆順指定回路12の出力はまた、論理積
回路13により各ビットについてそれぞれの上位側に隣
接するビットとの論理積がとられて第2エンコード回路
4に入力される。
【0154】オフセット値指定回路2はエンコード判定
回路7から出力されるオフセット値を入力し、その値に
”1” または”2” を加算して第1エンコード回路
3及び第2エンコード回路4へ出力する。
回路7から出力されるオフセット値を入力し、その値に
”1” または”2” を加算して第1エンコード回路
3及び第2エンコード回路4へ出力する。
【0155】第1エンコード回路3と第2エンコード回
路4とは同一に回路構成されたプライオリティエンコー
ド回路であり、ビット列生成回路1から入力されたビッ
ト列を対象としてオフセット指定回路2で指定されたビ
ット位置以降でサーチして最初の”1” のビット位置
を出力する組合せ論理回路である。
路4とは同一に回路構成されたプライオリティエンコー
ド回路であり、ビット列生成回路1から入力されたビッ
ト列を対象としてオフセット指定回路2で指定されたビ
ット位置以降でサーチして最初の”1” のビット位置
を出力する組合せ論理回路である。
【0156】エンコード結果判定回路7は第1エンコー
ド回路3と第2エンコード回路4とから出力されるエン
コード値とオペランドアドレス計算部115 から転送
されたオペランドアドレスの下位3ビットとを入力とし
、オフセット値指定回路2へエンコード結果と加算すべ
き値とを出力し、整数演算部117 へレジスタ番号と
2つのレジスタを同時アクセスすべきか否かを示す並列
アクセス信号8とを出力する他、第1エンコード回路3
の出力を”1” と”0” とを反転した値をレジスタ
番地指定回路218 へ出力することもできる。
ド回路3と第2エンコード回路4とから出力されるエン
コード値とオペランドアドレス計算部115 から転送
されたオペランドアドレスの下位3ビットとを入力とし
、オフセット値指定回路2へエンコード結果と加算すべ
き値とを出力し、整数演算部117 へレジスタ番号と
2つのレジスタを同時アクセスすべきか否かを示す並列
アクセス信号8とを出力する他、第1エンコード回路3
の出力を”1” と”0” とを反転した値をレジスタ
番地指定回路218 へ出力することもできる。
【0157】なお、エンコード判定回路7と転送オペラ
ンド数カウンタ26との間には制御信号の送受が行われ
る。
ンド数カウンタ26との間には制御信号の送受が行われ
る。
【0158】並列アクセス信号8はオペランドアドレス
計算部115 から転送されるオペランドアドレスの下
位3ビットがすべて”0” で且つ第1エンコード回路
3と第2エンコード回路4とのエンコード結果が同じ値
である場合にアサートされる。
計算部115 から転送されるオペランドアドレスの下
位3ビットがすべて”0” で且つ第1エンコード回路
3と第2エンコード回路4とのエンコード結果が同じ値
である場合にアサートされる。
【0159】(5.3) 「オペランドアドレス計算部
と整数演算部の詳細構成」図3に本発明のデータ処理装
置100 の整数演算部117 とオペランドアドレス
計算部115 の詳細ブロック図を他の部分とともに示
す。
と整数演算部の詳細構成」図3に本発明のデータ処理装
置100 の整数演算部117 とオペランドアドレス
計算部115 の詳細ブロック図を他の部分とともに示
す。
【0160】オペランドアドレス計算部115 には3
入力のアドレス加算器217 、その出力ラッチ219
、SAレジスタ210、dispバスの入力ラッチ2
35 がある。アドレス加算器217 ではIXバスで
転送される値と命令デコード部112 から転送された
dispバスの入力ラッチ235 の値を加算して出力
ラッチ219 で加算結果を保持する。SAレジスタ2
10 はオペランドアドレス計算部115 から整数演
算部117 へ出力されるオペランドアドレス, 即値
を保持するレジスタである。
入力のアドレス加算器217 、その出力ラッチ219
、SAレジスタ210、dispバスの入力ラッチ2
35 がある。アドレス加算器217 ではIXバスで
転送される値と命令デコード部112 から転送された
dispバスの入力ラッチ235 の値を加算して出力
ラッチ219 で加算結果を保持する。SAレジスタ2
10 はオペランドアドレス計算部115 から整数演
算部117 へ出力されるオペランドアドレス, 即値
を保持するレジスタである。
【0161】整数演算部117 には各種の演算器及び
レジスタファイル、各種の作業用レジスタが備えられて
いる。AAレジスタ211 は整数演算部117 から
オペランドアクセス部120 にアドレスを出力するた
めのレジスタであり、保持内容に対する”1”,”2”
,”4”,”8” のインクリメント・デクリメント機
能を有する。JAレジスタ214 は整数演算部117
で得られたジャンプ命令のジャンプ先アドレスをJA
バスに出力するためのレジスタである。
レジスタファイル、各種の作業用レジスタが備えられて
いる。AAレジスタ211 は整数演算部117 から
オペランドアクセス部120 にアドレスを出力するた
めのレジスタであり、保持内容に対する”1”,”2”
,”4”,”8” のインクリメント・デクリメント機
能を有する。JAレジスタ214 は整数演算部117
で得られたジャンプ命令のジャンプ先アドレスをJA
バスに出力するためのレジスタである。
【0162】レジスタファイル213 は整数演算部1
17 内の各種のデータを保持し、主ALU215と副
ALU212とにそれぞれ3本の4バイトのバスで結合
されており、2つのレジスタ上のオペランドに関する加
算, 比較などの演算が主ALU215または副ALU
212で行える。
17 内の各種のデータを保持し、主ALU215と副
ALU212とにそれぞれ3本の4バイトのバスで結合
されており、2つのレジスタ上のオペランドに関する加
算, 比較などの演算が主ALU215または副ALU
212で行える。
【0163】DDレジスタ213 は整数演算部117
とオペランドアクセス部120 とがデータを入出力
するためのインタフェイスレジスタであり、8バイトの
DDバス123 でオペランドアクセス部120 と結
合されている。
とオペランドアクセス部120 とがデータを入出力
するためのインタフェイスレジスタであり、8バイトの
DDバス123 でオペランドアクセス部120 と結
合されている。
【0164】レジスタ番地指定回路218 は第1マイ
クロROM 部113 の指示に従い、第1マイクロR
OM 部113 で指定されたレジスタ番地及び命令デ
コード部112 のプライオリティエンコード部25で
指定されたレジスタ番地に従ってレジスタファイル21
3 の読書きを制御する。
クロROM 部113 の指示に従い、第1マイクロR
OM 部113 で指定されたレジスタ番地及び命令デ
コード部112 のプライオリティエンコード部25で
指定されたレジスタ番地に従ってレジスタファイル21
3 の読書きを制御する。
【0165】ASP231, FSP232, ESP
233はパイプラインステージに対応した作業用スタッ
クポインタである。ASP231にはIXバスで転送さ
れた値との加算機能、及び”1”,”2”,”4”,”
8” のインクリメント・デクリメント機能を有する加
算器234 が付属している。また、ESP233は”
1”,”2”,”4”,”8” のインクリメント・デ
ィクリメント機能を有する。
233はパイプラインステージに対応した作業用スタッ
クポインタである。ASP231にはIXバスで転送さ
れた値との加算機能、及び”1”,”2”,”4”,”
8” のインクリメント・デクリメント機能を有する加
算器234 が付属している。また、ESP233は”
1”,”2”,”4”,”8” のインクリメント・デ
ィクリメント機能を有する。
【0166】(5.4) 「レジスタ番地指定回路の詳
細構成」図8はレジスタ番地指定回路218 の詳細な
構成を示すブロック図である。
細構成」図8はレジスタ番地指定回路218 の詳細な
構成を示すブロック図である。
【0167】レジスタ番地指定回路218 は、第1マ
イクロROM部113 で指定されたレジスタ番地また
はプライオリティエンコード部25で指定されたレジス
タ番号をデコード回路10a, 10b, 10c,
10dでデコードし、S1バス221, S2バス2
22, D1バス225,D3バス226 に対する
レジスタファイル213 の入出力を制御する。
イクロROM部113 で指定されたレジスタ番地また
はプライオリティエンコード部25で指定されたレジス
タ番号をデコード回路10a, 10b, 10c,
10dでデコードし、S1バス221, S2バス2
22, D1バス225,D3バス226 に対する
レジスタファイル213 の入出力を制御する。
【0168】第1マイクロROM 部113 で各バス
毎に指定されたレジスタ番地とプライオリティエンコー
ド部25で指定されたレジスタ番号とはセレクタ17,
18, 19, 20によりいずれかが選択されてそ
れぞれのバス用のデコード回路10a, 10b, 1
0c, 10dに入力される。
毎に指定されたレジスタ番地とプライオリティエンコー
ド部25で指定されたレジスタ番号とはセレクタ17,
18, 19, 20によりいずれかが選択されてそ
れぞれのバス用のデコード回路10a, 10b, 1
0c, 10dに入力される。
【0169】本発明のデータ処理装置100 では、転
送命令あるいは加算命令等の単純な命令では第1マイク
ロROM 部113 から出力されたレジスタ番地に従
って各バスにデータを入出力するレジスタを制御するた
め、レジスタ番地が各バス毎のデコード回路10a,
10b, 10c, 10dでデコードされ、その出力
信号に従ってレジスタファイル216 をアクセスする
が、一部の高機能命令ではデコード回路10a, 10
b, 10c, 10dから出力された制御信号をシフ
トすることにより、レジスタファイル213 をアクセ
スする。
送命令あるいは加算命令等の単純な命令では第1マイク
ロROM 部113 から出力されたレジスタ番地に従
って各バスにデータを入出力するレジスタを制御するた
め、レジスタ番地が各バス毎のデコード回路10a,
10b, 10c, 10dでデコードされ、その出力
信号に従ってレジスタファイル216 をアクセスする
が、一部の高機能命令ではデコード回路10a, 10
b, 10c, 10dから出力された制御信号をシフ
トすることにより、レジスタファイル213 をアクセ
スする。
【0170】S2バス222 とD3バス226 とは
高機能命令の実行に際して2つのレジスタを並列アクセ
スする場合に、プライオリティエンコード部25により
指定されたレジスタ番号より1つ大きなレジスタ番号の
レジスタをアクセスするためにデコード結果を1ビット
上位側へシフトしてレジスタファイル213 へ出力す
る。この機能はデコーダ10b と10d とがデコー
ド結果のビット列を出力する制御信号線群とそのビット
列を1ビット上位側にシフトしたビット列を出力する制
御信号線群とのいずれかをセレクタ15, 16でそれ
ぞれ選択することにより実現される。
高機能命令の実行に際して2つのレジスタを並列アクセ
スする場合に、プライオリティエンコード部25により
指定されたレジスタ番号より1つ大きなレジスタ番号の
レジスタをアクセスするためにデコード結果を1ビット
上位側へシフトしてレジスタファイル213 へ出力す
る。この機能はデコーダ10b と10d とがデコー
ド結果のビット列を出力する制御信号線群とそのビット
列を1ビット上位側にシフトしたビット列を出力する制
御信号線群とのいずれかをセレクタ15, 16でそれ
ぞれ選択することにより実現される。
【0171】またS1バス221 は高機能命令の実行
に際して2つのレジスタを並列アクセスする場合、プラ
イオリティエンコード部25により指定されたレジスタ
番号より1つ小さなレジスタ番号のレジスタをアクセス
するためにデコーダ10a のデコード結果を1ビット
下位側へシフトしてレジスタファイル213 へ出力す
る。この機能はデコーダ10a がデコード結果のビッ
ト列を出力する制御信号線群とそのビット列を1ビット
下位側にシフトしたビット列を出力する制御信号線群と
のいずれかをセレクタ14で選択することにより実現さ
れる。
に際して2つのレジスタを並列アクセスする場合、プラ
イオリティエンコード部25により指定されたレジスタ
番号より1つ小さなレジスタ番号のレジスタをアクセス
するためにデコーダ10a のデコード結果を1ビット
下位側へシフトしてレジスタファイル213 へ出力す
る。この機能はデコーダ10a がデコード結果のビッ
ト列を出力する制御信号線群とそのビット列を1ビット
下位側にシフトしたビット列を出力する制御信号線群と
のいずれかをセレクタ14で選択することにより実現さ
れる。
【0172】(5.5) 「 LDM命令の動作」図3
4は本発明のデータ処理装置の LDM命令のオペレー
ションコードの一例を示す模式図である。この命令は6
個の汎用レジスタR1, R4, R5, R6, R
7, R8にスタック領域から6個の4バイトデータを
ロードする命令である。本発明のデータ処理装置100
でこの命令を実行する場合、Dステージ32とAステ
ージ33とでは図36, 図37, 図38及び図39
にて示されているフローチャートに示すアルゴリズムに
従ってこの LDM命令を4個の処理単位に分解する。 分解された各処理単位はFステージ34とEステージ3
5とでパイプライン処理される。それぞれの処理単位に
対してEステージは図40及び図41にて示されている
フローチャートに示すアルゴリズムに従ってそれぞれ1
つのマイクロ命令を実行する。また、図42はこの L
DM命令がパイプライン処理される場合の処理タイミン
グを示す概念図である。図42において、LDM1,
LDM2, LDM3, LDM4はパイプライン処理
のためにそれぞれ LDM命令を分解した処理単位であ
る。
4は本発明のデータ処理装置の LDM命令のオペレー
ションコードの一例を示す模式図である。この命令は6
個の汎用レジスタR1, R4, R5, R6, R
7, R8にスタック領域から6個の4バイトデータを
ロードする命令である。本発明のデータ処理装置100
でこの命令を実行する場合、Dステージ32とAステ
ージ33とでは図36, 図37, 図38及び図39
にて示されているフローチャートに示すアルゴリズムに
従ってこの LDM命令を4個の処理単位に分解する。 分解された各処理単位はFステージ34とEステージ3
5とでパイプライン処理される。それぞれの処理単位に
対してEステージは図40及び図41にて示されている
フローチャートに示すアルゴリズムに従ってそれぞれ1
つのマイクロ命令を実行する。また、図42はこの L
DM命令がパイプライン処理される場合の処理タイミン
グを示す概念図である。図42において、LDM1,
LDM2, LDM3, LDM4はパイプライン処理
のためにそれぞれ LDM命令を分解した処理単位であ
る。
【0173】なお、図34に示されている LDM命令
のオペレーションコードは具体的には、第1の処理単位
LDM1はスタックから4バイトのデータをポップして
レジスタR1にロードし、第2の処理単位LDM2はス
タックから4バイトのデータをポップしてレジスタR4
にロードし、第3の処理単位LDM3はスタックから8
バイトのデータをポップしてレジスタR5とR6にロー
ドし、第4の処理単位LDM4はスタックから8バイト
のデータをポップしてレジスタR7とR8にロードして
命令を終了する。
のオペレーションコードは具体的には、第1の処理単位
LDM1はスタックから4バイトのデータをポップして
レジスタR1にロードし、第2の処理単位LDM2はス
タックから4バイトのデータをポップしてレジスタR4
にロードし、第3の処理単位LDM3はスタックから8
バイトのデータをポップしてレジスタR5とR6にロー
ドし、第4の処理単位LDM4はスタックから8バイト
のデータをポップしてレジスタR7とR8にロードして
命令を終了する。
【0174】以下、図36, 図37, 図38及び図
39にて示されているフローチャート、図40及び図4
1にて示されているフローチャートに従って具体的に説
明する。LDM命令はまずDステージ32でDステージ
デコード部22により前段デコードされ、デコード結果
はAステージデコード部24へ出力される。同時に、ビ
ット数計数回路23でレジスタリスト”0100111
1 10000000” 中のセットされたビット(”
1”のビット) の数が計数され、その結果”6” が
転送オペランド数カウンタ26へ与えられる。また、レ
ジスタリスト”01001111 10000000”
はプライオリティエンコード部25へも転送される。 (ステップS1)。
39にて示されているフローチャート、図40及び図4
1にて示されているフローチャートに従って具体的に説
明する。LDM命令はまずDステージ32でDステージ
デコード部22により前段デコードされ、デコード結果
はAステージデコード部24へ出力される。同時に、ビ
ット数計数回路23でレジスタリスト”0100111
1 10000000” 中のセットされたビット(”
1”のビット) の数が計数され、その結果”6” が
転送オペランド数カウンタ26へ与えられる。また、レ
ジスタリスト”01001111 10000000”
はプライオリティエンコード部25へも転送される。 (ステップS1)。
【0175】Aステージ33では、Dステージデコード
部22の出力をAステージデコード部24で後段デコー
ドすると同時に、レジスタリスト”01001111
10000000” をプライオリティエンコード
部25のビット列生成回路1へ転送してエンコードする
。この際、オフセット値指定回路2はゼロクリアされる
。また、フェッチすべきオペランドのアドレスはアドレ
ス加算器217 で計算される。具体的には、Dステー
ジデコード部22のデコード結果に従ってASP231
からIXバスを通じてスタックポインタ値”H’000
01000”がアドレス加算器217 へ転送され、ア
ドレス加算器217 の他の2入力にはゼロが入力され
ることによりフェッチすべきデータのアドレス”H’0
0001000”が得られる。 (ステップS2)。
部22の出力をAステージデコード部24で後段デコー
ドすると同時に、レジスタリスト”01001111
10000000” をプライオリティエンコード
部25のビット列生成回路1へ転送してエンコードする
。この際、オフセット値指定回路2はゼロクリアされる
。また、フェッチすべきオペランドのアドレスはアドレ
ス加算器217 で計算される。具体的には、Dステー
ジデコード部22のデコード結果に従ってASP231
からIXバスを通じてスタックポインタ値”H’000
01000”がアドレス加算器217 へ転送され、ア
ドレス加算器217 の他の2入力にはゼロが入力され
ることによりフェッチすべきデータのアドレス”H’0
0001000”が得られる。 (ステップS2)。
【0176】なお、転送オペランド数カウンタ26は、
転送すべきオペランドの残り数を計算することにより、
最後の処理単位であることを検出する。この転送オペラ
ンド数カウンタ26による検出結果はプライオリティエ
ンコード部25のエンコード判定回路7に与えられてい
る。
転送すべきオペランドの残り数を計算することにより、
最後の処理単位であることを検出する。この転送オペラ
ンド数カウンタ26による検出結果はプライオリティエ
ンコード部25のエンコード判定回路7に与えられてい
る。
【0177】またこの例では、フェッチすべきオペラン
ドのアドレッシングモードがスタックポップモードであ
るので、ASP231に保持されていたアドレスがその
まま出力ラッチ219 へ転送される。
ドのアドレッシングモードがスタックポップモードであ
るので、ASP231に保持されていたアドレスがその
まま出力ラッチ219 へ転送される。
【0178】次に、入力されたレジスタリストのビット
列”0100111110000000” が第1エン
コード回路3へ転送され、第1エンコード回路3はオフ
セット”0” から先頭の”1” のビットをサーチし
、その結果”1” をエンコード判定回路7へ出力する
。また第2エンコード回路4がエンコードするビット列
は、入力されたレジスタリストのビット列の隣接ビット
間の論理積演算をビット列生成回路1で行ってその結果
であるビット列”00001111 00000000
” が第2エンコード回路4へ転送され、第2エンコー
ド回路4はビット列”00001111 000000
00” をオフセット”0” から先頭の”1” のビ
ットをサーチし、その結果”4” をエンコード判定回
路7へ出力する。エンコード判定回路7では、第1エン
コード回路3から入力された値”1” と第2エンコー
ド回路4から入力された値”4” とが一致しないと判
断し、レジスタ番号”1” を出力し、並列アクセス信
号8をネゲートし、オフセット値指定回路2へエンコー
ド結果”1” と加算値”1” とを出力する (ステ
ップS3)。
列”0100111110000000” が第1エン
コード回路3へ転送され、第1エンコード回路3はオフ
セット”0” から先頭の”1” のビットをサーチし
、その結果”1” をエンコード判定回路7へ出力する
。また第2エンコード回路4がエンコードするビット列
は、入力されたレジスタリストのビット列の隣接ビット
間の論理積演算をビット列生成回路1で行ってその結果
であるビット列”00001111 00000000
” が第2エンコード回路4へ転送され、第2エンコー
ド回路4はビット列”00001111 000000
00” をオフセット”0” から先頭の”1” のビ
ットをサーチし、その結果”4” をエンコード判定回
路7へ出力する。エンコード判定回路7では、第1エン
コード回路3から入力された値”1” と第2エンコー
ド回路4から入力された値”4” とが一致しないと判
断し、レジスタ番号”1” を出力し、並列アクセス信
号8をネゲートし、オフセット値指定回路2へエンコー
ド結果”1” と加算値”1” とを出力する (ステ
ップS3)。
【0179】エンコード判定回路7から出力されたレジ
スタ番号”1”,ネゲートされた並列アクセス信号8,
転送オペランド数カウンタ26のカウント値”6”
及びフェッチ先アドレス”H’00001000”によ
り、レジスタR1に4バイトのデータがフェッチされ、
処理を継続する第1の処理単位LDM1がFステージ3
4へ出力される (ステップS4)。
スタ番号”1”,ネゲートされた並列アクセス信号8,
転送オペランド数カウンタ26のカウント値”6”
及びフェッチ先アドレス”H’00001000”によ
り、レジスタR1に4バイトのデータがフェッチされ、
処理を継続する第1の処理単位LDM1がFステージ3
4へ出力される (ステップS4)。
【0180】Fステージ34では、 LMD命令の第1
の処理単位LMD1に従って、4バイトのデータが内蔵
データキャッシュまたは外部のメモリからフェッチされ
、DDレジスタ216 へ転送される。Eステージ35
では、 LMD命令の第1の処理単位LMD1に従って
レジスタ番地指定回路218 でレジスタ番号”1”
がデコードされ、DDレジスタ216 の下位4バイト
がS1バス221, 主ALU215, D1バス2
25 を通じてレジスタR1へ転送される (ステップ
S21)。
の処理単位LMD1に従って、4バイトのデータが内蔵
データキャッシュまたは外部のメモリからフェッチされ
、DDレジスタ216 へ転送される。Eステージ35
では、 LMD命令の第1の処理単位LMD1に従って
レジスタ番地指定回路218 でレジスタ番号”1”
がデコードされ、DDレジスタ216 の下位4バイト
がS1バス221, 主ALU215, D1バス2
25 を通じてレジスタR1へ転送される (ステップ
S21)。
【0181】並列アクセス信号8がネゲートされたこと
に従って、ASP231の値が”4” インクリメント
され、その値”H’00001004”がIXバスを通
じてアドレス加算器217 へ転送される。アドレス加
算器217 の他の2入力にはゼロが入力されることに
よりフェッチすべきデータのアドレス”H’00001
004”が得られる。同時に、転送オペランド数カウン
タ26の値が”1” デクリメントされて”5” にな
る (ステップS5)。
に従って、ASP231の値が”4” インクリメント
され、その値”H’00001004”がIXバスを通
じてアドレス加算器217 へ転送される。アドレス加
算器217 の他の2入力にはゼロが入力されることに
よりフェッチすべきデータのアドレス”H’00001
004”が得られる。同時に、転送オペランド数カウン
タ26の値が”1” デクリメントされて”5” にな
る (ステップS5)。
【0182】第1エンコード回路3はレジスタリストの
ビット列”01001111 10000000” の
オフセット”2” から先頭の”1” のビットをサー
チし、その結果”4” をエンコード判定回路7へ出力
する。同時に、第2エンコード回路4はビット列”00
001111 00000000” をオフセット”2
” から先頭の”1” のビットをサーチし、その結果
”4” をエンコード判定回路7へ出力する。エンコー
ド判定回路7では、第1エンコード回路3から入力され
た値”4” と第2エンコード回路4から入力された値
”4” とが一致すること及び、オペランドアドレス計
算部115 から出力されたアドレスの下位3ビットが
ゼロでないことを判断し、レジスタ番号”4” を出力
し、並列アクセス信号8をネゲートし、オフセット値指
定回路2へエンコード結果”4” と加算値”1” と
を出力する (ステップS6)。
ビット列”01001111 10000000” の
オフセット”2” から先頭の”1” のビットをサー
チし、その結果”4” をエンコード判定回路7へ出力
する。同時に、第2エンコード回路4はビット列”00
001111 00000000” をオフセット”2
” から先頭の”1” のビットをサーチし、その結果
”4” をエンコード判定回路7へ出力する。エンコー
ド判定回路7では、第1エンコード回路3から入力され
た値”4” と第2エンコード回路4から入力された値
”4” とが一致すること及び、オペランドアドレス計
算部115 から出力されたアドレスの下位3ビットが
ゼロでないことを判断し、レジスタ番号”4” を出力
し、並列アクセス信号8をネゲートし、オフセット値指
定回路2へエンコード結果”4” と加算値”1” と
を出力する (ステップS6)。
【0183】エンコード判定回路7から出力されたレジ
スタ番号”4”,ネゲートされた並列アクセス信号8,
転送オペランド数カウンタ26のカウント値”5”
及びフェッチ先アドレス”H’00001004”によ
り、レジスタR4に4バイトのデータがフェッチされ、
処理を継続する第2の処理単位LDM2がFステージ3
4へ出力される (ステップS7)。
スタ番号”4”,ネゲートされた並列アクセス信号8,
転送オペランド数カウンタ26のカウント値”5”
及びフェッチ先アドレス”H’00001004”によ
り、レジスタR4に4バイトのデータがフェッチされ、
処理を継続する第2の処理単位LDM2がFステージ3
4へ出力される (ステップS7)。
【0184】Fステージ34では、 LMD命令の第2
の処理単位LMD2に従って、4バイトのデータが内蔵
データキャッシュまたは外部のメモリからフェッチされ
、DDレジスタ216 へ転送される。Eステージ35
では、 LMD命令の第2の処理単位LMD2に従って
レジスタ番地指定回路218 でレジスタ番号”4”
がデコードされ、DDレジスタ216 の下位4バイト
がS1バス221, 主ALU215, D1バス2
25 を通じてレジスタR4へ転送される (ステップ
S22)。
の処理単位LMD2に従って、4バイトのデータが内蔵
データキャッシュまたは外部のメモリからフェッチされ
、DDレジスタ216 へ転送される。Eステージ35
では、 LMD命令の第2の処理単位LMD2に従って
レジスタ番地指定回路218 でレジスタ番号”4”
がデコードされ、DDレジスタ216 の下位4バイト
がS1バス221, 主ALU215, D1バス2
25 を通じてレジスタR4へ転送される (ステップ
S22)。
【0185】並列アクセス信号8がネゲートされたこと
に従って、ASP231の値が”4” インクリメント
され、その値”H’00001008”がIXバスを通
じてアドレス加算器217 へ転送される。アドレス加
算器217 の他の2入力にはゼロが入力されることに
よりフェッチすべきデータのアドレス”H’00001
008”が得られる。同時に、転送オペランド数カウン
タ26の値が”1” デクリメントされて”4” にな
る (ステップS8)。
に従って、ASP231の値が”4” インクリメント
され、その値”H’00001008”がIXバスを通
じてアドレス加算器217 へ転送される。アドレス加
算器217 の他の2入力にはゼロが入力されることに
よりフェッチすべきデータのアドレス”H’00001
008”が得られる。同時に、転送オペランド数カウン
タ26の値が”1” デクリメントされて”4” にな
る (ステップS8)。
【0186】第1エンコード回路3はレジスタリストの
ビット列”01001111 10000000” の
オフセット”5” から先頭の”1” のビットをサー
チし、その結果”5” をエンコード判定回路7へ出力
する。同時に、第2エンコード回路4はビット列”00
001111 00000000” をオフセット”5
” から先頭の”1” のビットをサーチし、その結果
”5” をエンコード判定回路7へ出力する。エンコー
ド判定回路7では、第1エンコード回路3から入力され
た値”5” と第2エンコード回路4から入力された値
”5” とが一致すること及び、オペランドアドレス計
算部115 から出力されたアドレスの下位3ビットが
ゼロであることを判断し、レジスタ番号”5” を出力
し、並列アクセス信号8をアサートし、オフセット値指
定回路2へエンコード結果”5” と加算値”2” と
を出力する (ステップS9)。
ビット列”01001111 10000000” の
オフセット”5” から先頭の”1” のビットをサー
チし、その結果”5” をエンコード判定回路7へ出力
する。同時に、第2エンコード回路4はビット列”00
001111 00000000” をオフセット”5
” から先頭の”1” のビットをサーチし、その結果
”5” をエンコード判定回路7へ出力する。エンコー
ド判定回路7では、第1エンコード回路3から入力され
た値”5” と第2エンコード回路4から入力された値
”5” とが一致すること及び、オペランドアドレス計
算部115 から出力されたアドレスの下位3ビットが
ゼロであることを判断し、レジスタ番号”5” を出力
し、並列アクセス信号8をアサートし、オフセット値指
定回路2へエンコード結果”5” と加算値”2” と
を出力する (ステップS9)。
【0187】エンコード判定回路7から出力されたレジ
スタ番号”5”,アサートされた並列アクセス信号8,
転送オペランド数カウンタ26のカウント値”4”,
フェッチ先アドレス”H’00001008”によ
り、レジスタR5, R6に2つの4バイトのデータが
フェッチされ、処理を継続する第3の処理単位LDM3
がFステージ34へ出力される (ステップS10)。
スタ番号”5”,アサートされた並列アクセス信号8,
転送オペランド数カウンタ26のカウント値”4”,
フェッチ先アドレス”H’00001008”によ
り、レジスタR5, R6に2つの4バイトのデータが
フェッチされ、処理を継続する第3の処理単位LDM3
がFステージ34へ出力される (ステップS10)。
【0188】Fステージ34では、 LMD命令の第3
の処理単位LMD3に従って、8バイトのデータが内蔵
データキャッシュまたは外部のメモリからフェッチされ
、DDレジスタ216 へ転送される。
の処理単位LMD3に従って、8バイトのデータが内蔵
データキャッシュまたは外部のメモリからフェッチされ
、DDレジスタ216 へ転送される。
【0189】Eステージ35では、 LMD命令の第3
の処理単位LMD3に従ってレジスタ番地指定回路21
8 でレジスタ番号”5” がデコードされ、DDレジ
スタ216 の下位4バイトがS1バス221, 主
ALU215, D1バス225 を通じてレジスタR
5へ転送される。またEステージ35では、レジスタ番
号”5” をデコードした結果を1ビットシフトした制
御信号でレジスタR6がアクセスされ、DDレジスタ2
16 の上位4バイトがS2バス222, 副ALU
212, D3バス226 を通じてレジスタR6へ転
送される (ステップS23)。
の処理単位LMD3に従ってレジスタ番地指定回路21
8 でレジスタ番号”5” がデコードされ、DDレジ
スタ216 の下位4バイトがS1バス221, 主
ALU215, D1バス225 を通じてレジスタR
5へ転送される。またEステージ35では、レジスタ番
号”5” をデコードした結果を1ビットシフトした制
御信号でレジスタR6がアクセスされ、DDレジスタ2
16 の上位4バイトがS2バス222, 副ALU
212, D3バス226 を通じてレジスタR6へ転
送される (ステップS23)。
【0190】並列アクセス信号8がアサートされたこと
に従って、ASP231の値が”8” インクリメント
され、その値”H’00001010”がIXバスを通
じてアドレス加算器217 へ転送される。アドレス加
算器217 の他の2入力にはゼロが入力されることに
よりフェッチすべきデータのアドレス”H’00001
010”が得られる。同時に、転送オペランド数カウン
タ26の値が”2” デクリメントされて”2” にな
る (ステップS11)。
に従って、ASP231の値が”8” インクリメント
され、その値”H’00001010”がIXバスを通
じてアドレス加算器217 へ転送される。アドレス加
算器217 の他の2入力にはゼロが入力されることに
よりフェッチすべきデータのアドレス”H’00001
010”が得られる。同時に、転送オペランド数カウン
タ26の値が”2” デクリメントされて”2” にな
る (ステップS11)。
【0191】第1エンコード回路3はレジスタリストの
ビット列”01001111 10000000” の
オフセット”7” から先頭の”1” のビットをサー
チし、その結果”7” をエンコード判定回路7へ出力
する。同時に、第2エンコード回路4はビット列”00
001111 00000000” をオフセット”7
” から先頭の”1” のビットをサーチし、その結果
”7” をエンコード判定回路7へ出力する。エンコー
ド判定回路7では、第1エンコード回路3から入力され
た値”7” と第2エンコード回路4から入力された値
”7” とが一致すること及び、オペランドアドレス計
算部115 から出力されたアドレスの下位3ビットが
ゼロであることを判断し、レジスタ番号”7” を出力
し、並列アクセス信号8をアサートし、オフセット値指
定回路2へエンコード結果”7” と加算値”2” と
を出力する (ステップS12)。
ビット列”01001111 10000000” の
オフセット”7” から先頭の”1” のビットをサー
チし、その結果”7” をエンコード判定回路7へ出力
する。同時に、第2エンコード回路4はビット列”00
001111 00000000” をオフセット”7
” から先頭の”1” のビットをサーチし、その結果
”7” をエンコード判定回路7へ出力する。エンコー
ド判定回路7では、第1エンコード回路3から入力され
た値”7” と第2エンコード回路4から入力された値
”7” とが一致すること及び、オペランドアドレス計
算部115 から出力されたアドレスの下位3ビットが
ゼロであることを判断し、レジスタ番号”7” を出力
し、並列アクセス信号8をアサートし、オフセット値指
定回路2へエンコード結果”7” と加算値”2” と
を出力する (ステップS12)。
【0192】エンコード判定回路7から出力されたレジ
スタ番号”7”,アサートされた並列アクセス信号8,
転送オペランド数カウンタ26のカウント値”2”,
フェッチ先アドレス”H’00001010”によ
り、レジスタR7, R8に2つの4バイトのデータが
フェッチされ、処理を継続する第4の処理単位LDM4
がFステージ34へ出力される (ステップS13)。
スタ番号”7”,アサートされた並列アクセス信号8,
転送オペランド数カウンタ26のカウント値”2”,
フェッチ先アドレス”H’00001010”によ
り、レジスタR7, R8に2つの4バイトのデータが
フェッチされ、処理を継続する第4の処理単位LDM4
がFステージ34へ出力される (ステップS13)。
【0193】Fステージ34では、 LMD命令の第4
の処理単位LMD4に従って、8バイトのデータが内蔵
データキャッシュまたは外部のメモリからフェッチされ
、DDレジスタ216 へ転送される。Eステージ35
では、 LMD命令の第4の処理単位LMD4に従って
レジスタ番地指定回路218 でレジスタ番号”7”
がデコードされ、DDレジスタ216 の下位4バイト
がS1バス221, 主ALU215, D1バス2
25 を通じてレジスタR7へ転送される。またEステ
ージ35では、レジスタ番号”7” をデコードした結
果を1ビットシフトした制御信号でレジスタR8がアク
セスされ、DDレジスタ216 の上位4バイトがS2
バス222, 副ALU212, D3バス226
を通じてレジスタR8へ転送され、 LMD命令の処理
を終了する (ステップS24)。
の処理単位LMD4に従って、8バイトのデータが内蔵
データキャッシュまたは外部のメモリからフェッチされ
、DDレジスタ216 へ転送される。Eステージ35
では、 LMD命令の第4の処理単位LMD4に従って
レジスタ番地指定回路218 でレジスタ番号”7”
がデコードされ、DDレジスタ216 の下位4バイト
がS1バス221, 主ALU215, D1バス2
25 を通じてレジスタR7へ転送される。またEステ
ージ35では、レジスタ番号”7” をデコードした結
果を1ビットシフトした制御信号でレジスタR8がアク
セスされ、DDレジスタ216 の上位4バイトがS2
バス222, 副ALU212, D3バス226
を通じてレジスタR8へ転送され、 LMD命令の処理
を終了する (ステップS24)。
【0194】上述のように第1エンコード回路3及び第
2エンコード回路4によりビット列をサーチすると、レ
ジスタ番号”4, 5, 7” で双方のサーチ結果が
一致するが、レジスタ番号”4” の場合はオペランド
アドレスの計算結果の下位3ビットが”0” ではない
ため、レジスタR1とR4とには1回の操作で4バイト
ずつデータがロードされ、レジスタR5とR6, R7
とR8にはそれぞれ並列にデータがロードされることと
なる。
2エンコード回路4によりビット列をサーチすると、レ
ジスタ番号”4, 5, 7” で双方のサーチ結果が
一致するが、レジスタ番号”4” の場合はオペランド
アドレスの計算結果の下位3ビットが”0” ではない
ため、レジスタR1とR4とには1回の操作で4バイト
ずつデータがロードされ、レジスタR5とR6, R7
とR8にはそれぞれ並列にデータがロードされることと
なる。
【0195】レジスタR5とR6, R7とR8を同時
にアクセスする場合、エンコード結果判定回路7から出
力される並列アクセス信号8がアサートされる。この並
列アクセス信号8に従って、デコード結果のビット列を
1ビット上位側へシフトしたビット列が転送される制御
線をセレクタ16が選択することにより、エンコード結
果判定回路7から出力されたレジスタ番号より1つ大き
な番号のレジスタに値がロードされる。
にアクセスする場合、エンコード結果判定回路7から出
力される並列アクセス信号8がアサートされる。この並
列アクセス信号8に従って、デコード結果のビット列を
1ビット上位側へシフトしたビット列が転送される制御
線をセレクタ16が選択することにより、エンコード結
果判定回路7から出力されたレジスタ番号より1つ大き
な番号のレジスタに値がロードされる。
【0196】(5.6) 「 STM命令の動作」デス
ティネーションのアドレッシングモードが@−SPモー
ド以外の STM命令を実行する場合、 LDM命令と
同じフォーマットレジスタリストを処理するため、ビッ
ト数計数回路23, プライオリティエンコード部25
及び転送オペランド数カウンタ26の動作は LDM命
令の場合と同様である。また、レジスタ番地指定回路2
18 ではS2バス222 へ出力するレジスタ番地と
して、入力されたレジスタ番地よりも1つ大きな番地の
レジスタをアクセスするため、デコード結果のビット列
を1ビット上位側へシフトしたビット列が転送される制
御線をセレクタ15が選択する。
ティネーションのアドレッシングモードが@−SPモー
ド以外の STM命令を実行する場合、 LDM命令と
同じフォーマットレジスタリストを処理するため、ビッ
ト数計数回路23, プライオリティエンコード部25
及び転送オペランド数カウンタ26の動作は LDM命
令の場合と同様である。また、レジスタ番地指定回路2
18 ではS2バス222 へ出力するレジスタ番地と
して、入力されたレジスタ番地よりも1つ大きな番地の
レジスタをアクセスするため、デコード結果のビット列
を1ビット上位側へシフトしたビット列が転送される制
御線をセレクタ15が選択する。
【0197】デスティネーションのアドレッシングモー
ドが@−SPモードである STM命令を実行する場合
、 LDM命令と異なるフォーマットレジスタリストを
処理するので、プライオリティエンコード部25の動作
が一部異なる。この場合、エンコード結果判定回路7か
らオフセット値指定回路2へは第1エンコード回路3か
ら出力された値がそのまま転送されるが、レジスタ番地
指定回路218 へは第1エンコード回路3から出力さ
れた値の”0” と”1” とを反転した値が出力され
る。つまり、オフセット値指定回路2にはサーチしてエ
ンコードしたビット番号そのものが転送されるが、レジ
スタ番地指定回路218 へはサーチしてエンコードし
たビット番号に対応するレジスタ番号が出力されること
になる。
ドが@−SPモードである STM命令を実行する場合
、 LDM命令と異なるフォーマットレジスタリストを
処理するので、プライオリティエンコード部25の動作
が一部異なる。この場合、エンコード結果判定回路7か
らオフセット値指定回路2へは第1エンコード回路3か
ら出力された値がそのまま転送されるが、レジスタ番地
指定回路218 へは第1エンコード回路3から出力さ
れた値の”0” と”1” とを反転した値が出力され
る。つまり、オフセット値指定回路2にはサーチしてエ
ンコードしたビット番号そのものが転送されるが、レジ
スタ番地指定回路218 へはサーチしてエンコードし
たビット番号に対応するレジスタ番号が出力されること
になる。
【0198】またこの場合、レジスタ番地指定回路21
8 では、並列アクセス信号8がアサートされると、S
2バス222 へは入力されたレジスタ番地のレジスタ
から値が出力され、S1バス221 へは入力されたレ
ジスタ番地より1つレジスタ番地が小さいレジスタから
値が出力される。 この機能はデコード結果のビット列を1ビット下位側へ
シフトしたビット列を転送する制御線をセレクタ14が
選択することにより行われる。
8 では、並列アクセス信号8がアサートされると、S
2バス222 へは入力されたレジスタ番地のレジスタ
から値が出力され、S1バス221 へは入力されたレ
ジスタ番地より1つレジスタ番地が小さいレジスタから
値が出力される。 この機能はデコード結果のビット列を1ビット下位側へ
シフトしたビット列を転送する制御線をセレクタ14が
選択することにより行われる。
【0199】たとえば、図35にオペレーションコード
を示した STM命令の例では、第1エンコード回路3
のサーチ対象となるビット列は”00000001 1
1110010” であり、第2エンコード回路4のサ
ーチ対象となるビット列は”00000001 111
00000” である。最初のエンコード動作では、エ
ンコード結果判定回路7へは第1エンコード回路3と第
2エンコード回路4とからは共に値”7” が入力され
、オペランドアドレス計算部115 からはASP23
1でプリデクリメントされたアドレス”H’00001
FF8”の下位3ビットの”0” が転送される。エン
コード結果判定回路7はこれらの入力に基づいてオフセ
ット指定回路へは値”7” と加算値”2” とを出力
し、レジスタ番地指定回路218 へは”7” を2進
数表現した値”0111”の反転値である”1000”
に対応するレジスタ番号”8” を出力し、並列アクセ
ス信号8をアサートする。
を示した STM命令の例では、第1エンコード回路3
のサーチ対象となるビット列は”00000001 1
1110010” であり、第2エンコード回路4のサ
ーチ対象となるビット列は”00000001 111
00000” である。最初のエンコード動作では、エ
ンコード結果判定回路7へは第1エンコード回路3と第
2エンコード回路4とからは共に値”7” が入力され
、オペランドアドレス計算部115 からはASP23
1でプリデクリメントされたアドレス”H’00001
FF8”の下位3ビットの”0” が転送される。エン
コード結果判定回路7はこれらの入力に基づいてオフセ
ット指定回路へは値”7” と加算値”2” とを出力
し、レジスタ番地指定回路218 へは”7” を2進
数表現した値”0111”の反転値である”1000”
に対応するレジスタ番号”8” を出力し、並列アクセ
ス信号8をアサートする。
【0200】レジスタ番地指定回路218 では、入力
されたレジスタ番号”8” をデコードし、S2バス2
22 へはレジスタR8からデータを読出し、S1バス
221 へはデコード結果を1ビット下位側へシフトし
たビット列を転送する制御線をセレクタ14で選択する
ことによりレジスタR7からデータを読出す。S1バス
221 とS2バス222 とへ読出された2つのデー
タはDDレジスタ216 で連結され、1つの8バイト
データとしてDDバス123 を通じてオペランドアク
セス部120 へ転送され、内蔵データキャッシュある
いは外部メモリにストアされる。
されたレジスタ番号”8” をデコードし、S2バス2
22 へはレジスタR8からデータを読出し、S1バス
221 へはデコード結果を1ビット下位側へシフトし
たビット列を転送する制御線をセレクタ14で選択する
ことによりレジスタR7からデータを読出す。S1バス
221 とS2バス222 とへ読出された2つのデー
タはDDレジスタ216 で連結され、1つの8バイト
データとしてDDバス123 を通じてオペランドアク
セス部120 へ転送され、内蔵データキャッシュある
いは外部メモリにストアされる。
【0201】(5.7) 「 ENTER命令の動作」
ENTER命令の処理は図30に示す如く、 STM命
令の処理にフレームポインタレジスタR14 のスタッ
クへのプッシュとスタックポインタレジスタR15 の
フレームポインタへの転送, ローカル変数領域確保の
ためのスタックポインタの減算を組み合わせた処理であ
る。
ENTER命令の処理は図30に示す如く、 STM命
令の処理にフレームポインタレジスタR14 のスタッ
クへのプッシュとスタックポインタレジスタR15 の
フレームポインタへの転送, ローカル変数領域確保の
ためのスタックポインタの減算を組み合わせた処理であ
る。
【0202】ENTER命令では、命令デコード部11
2 で命令を複数の処理単位に分解する際に、 STM
命令と同様にレジスタリストに対応するレジスタの内容
をスタックへ転送する処理単位を出力する前にEステー
ジ35とAステージ33とで以下の2つの処理単位を出
力する。
2 で命令を複数の処理単位に分解する際に、 STM
命令と同様にレジスタリストに対応するレジスタの内容
をスタックへ転送する処理単位を出力する前にEステー
ジ35とAステージ33とで以下の2つの処理単位を出
力する。
【0203】最初の処理単位のEステージ35では、フ
レームポインタを作業用レジスタに転送すると同時にス
タックにプッシュする。スタックポインタをフレームポ
インタに転送する。最初の処理単位のAステージ33で
は、dispバスで転送された lsize値を入力ラ
ッチ235 に入力する。ASP234をIXバスで転
送する。アドレス加算器217 で転送されたASP2
34の値から”4” をデクリメントして出力ラッチ2
19 に保持する。ASP234自体を”4” デクリ
メントする。第2の処理単位のAステージ33では、入
力ラッチ235 の値である lsize値をIXバス
を通じて加算器234 へ転送してASP231から減
算する。出力ラッチ219 の値から入力ラッチ235
の lsize値を減算してその値をレジスタ内容を
転送するメモリにアドレスする。命令で指定されたレジ
スタリストの最初の2ビットレジスタR14 とR15
とに対応するビットをマスク回路27でリセットする
。
レームポインタを作業用レジスタに転送すると同時にス
タックにプッシュする。スタックポインタをフレームポ
インタに転送する。最初の処理単位のAステージ33で
は、dispバスで転送された lsize値を入力ラ
ッチ235 に入力する。ASP234をIXバスで転
送する。アドレス加算器217 で転送されたASP2
34の値から”4” をデクリメントして出力ラッチ2
19 に保持する。ASP234自体を”4” デクリ
メントする。第2の処理単位のAステージ33では、入
力ラッチ235 の値である lsize値をIXバス
を通じて加算器234 へ転送してASP231から減
算する。出力ラッチ219 の値から入力ラッチ235
の lsize値を減算してその値をレジスタ内容を
転送するメモリにアドレスする。命令で指定されたレジ
スタリストの最初の2ビットレジスタR14 とR15
とに対応するビットをマスク回路27でリセットする
。
【0204】第2の処理単位のEステージ35での処理
は STM命令の最初の処理単位と同様に、レジスタリ
ストで指定された最初のレジスタのストア処理である。 なお、最初の処理単位でフレームポインタ値を作業用レ
ジスタに退避するするのは ENTER命令の実行途中
でエラーが発生した際に、全レジスタのレジスタ内容を
ENTER命令実行前の状態に復帰するためのもので
ある。
は STM命令の最初の処理単位と同様に、レジスタリ
ストで指定された最初のレジスタのストア処理である。 なお、最初の処理単位でフレームポインタ値を作業用レ
ジスタに退避するするのは ENTER命令の実行途中
でエラーが発生した際に、全レジスタのレジスタ内容を
ENTER命令実行前の状態に復帰するためのもので
ある。
【0205】(5.8) 「 EXITD命令の動作」
EXITD命令の処理は図31に示す如く、 LDM命
令の処理にフレームポインタレジスタR14 のスタッ
クからのポップとスタックポインタレジスタR15 へ
のフレームポインタの転送とサブルーチンリターンとス
タックポインタのadjsp での補正とを組み合わせ
た処理である。
EXITD命令の処理は図31に示す如く、 LDM命
令の処理にフレームポインタレジスタR14 のスタッ
クからのポップとスタックポインタレジスタR15 へ
のフレームポインタの転送とサブルーチンリターンとス
タックポインタのadjsp での補正とを組み合わせ
た処理である。
【0206】EXITD命令では、命令デコード部11
2 で命令を複数の処理単位に分解する際に、 LDM
命令と同様にレジスタリストに対応するレジスタの内容
を転送する処理単位の後に以下の処理を行う2つの処理
単位を追加する。
2 で命令を複数の処理単位に分解する際に、 LDM
命令と同様にレジスタリストに対応するレジスタの内容
を転送する処理単位の後に以下の処理を行う2つの処理
単位を追加する。
【0207】1つ目の処理単位のAステージ33では、
adjsp値をdispバスを通じて入力ラッチ23
5 に転送する。 1つ目の処理単位のEステージ35では、フレームポイ
ンタをスタックポインタに転送する。スタックからフレ
ームポインタ値をポップする。2つ目の処理単位のAス
テージ33では、入力ラッチ235 の内容であるad
jsp 値をIXバスで加算器234 に転送してAS
P231に加算する。2つ目の処理単位のEステージ3
5ではサブルーチンリタン動作を行う。また、 EXI
TD命令では命令で指定されたレジスタリストの最後の
2ビットレジスタR14 とR15 とに対応するビッ
トをマスク回路27でリセットする点も LDM命令と
異なる。
adjsp値をdispバスを通じて入力ラッチ23
5 に転送する。 1つ目の処理単位のEステージ35では、フレームポイ
ンタをスタックポインタに転送する。スタックからフレ
ームポインタ値をポップする。2つ目の処理単位のAス
テージ33では、入力ラッチ235 の内容であるad
jsp 値をIXバスで加算器234 に転送してAS
P231に加算する。2つ目の処理単位のEステージ3
5ではサブルーチンリタン動作を行う。また、 EXI
TD命令では命令で指定されたレジスタリストの最後の
2ビットレジスタR14 とR15 とに対応するビッ
トをマスク回路27でリセットする点も LDM命令と
異なる。
【0208】(6)「外部アクセス動作」(6.1)
「入出力信号線」図7は本発明のデータ処理装置100
の入出力信号を示す模式図である。
「入出力信号線」図7は本発明のデータ処理装置100
の入出力信号を示す模式図である。
【0209】本発明のデータ処理装置100 は電源V
ccと接地GND, 64本のデータピンと32本の
アドレスピンと32本の命令ピン, 入力クロックCL
K の他に種々の制御信号を入出力する。命令アクセス
の場合もデータアクセスの場合も、アドレスピンには物
理アドレスが出力される。
ccと接地GND, 64本のデータピンと32本の
アドレスピンと32本の命令ピン, 入力クロックCL
K の他に種々の制御信号を入出力する。命令アクセス
の場合もデータアクセスの場合も、アドレスピンには物
理アドレスが出力される。
【0210】CLKは外部入力クロックであり、本発明
のデータ処理装置100 の動作クロックと同一周波数
のクロックである。データアドレスストローブDAS#
はアドレスピンへ出力されたデータアドレスが有効であ
ることを示す。
のデータ処理装置100 の動作クロックと同一周波数
のクロックである。データアドレスストローブDAS#
はアドレスピンへ出力されたデータアドレスが有効であ
ることを示す。
【0211】リードライトR/W#はデータピンでのバ
スサイクルが入力であるか出力であるかを区別する。デ
ータストローブDS# は、本発明のデータ処理装置1
00 がデータ入力準備を完了したことまたは本発明の
データ処理装置100 からデータが出力されたことを
示す。
スサイクルが入力であるか出力であるかを区別する。デ
ータストローブDS# は、本発明のデータ処理装置1
00 がデータ入力準備を完了したことまたは本発明の
データ処理装置100 からデータが出力されたことを
示す。
【0212】DC#は本発明のデータ処理装置100
にデータアクセスサイクルを終了してもよいことを通知
する信号である。BAT(0:2)は、図7に示す如く
、アドレスピンとデータピンとの値の意味を示す。
にデータアクセスサイクルを終了してもよいことを通知
する信号である。BAT(0:2)は、図7に示す如く
、アドレスピンとデータピンとの値の意味を示す。
【0213】命令アドレスストローブIAS#はアドレ
スピンへ出力された命令アドレスが有効であることを示
す。 命令ストローブIS# は本発明のデータ処理装置10
0 が命令入力準備を完了したことを示す。
スピンへ出力された命令アドレスが有効であることを示
す。 命令ストローブIS# は本発明のデータ処理装置10
0 が命令入力準備を完了したことを示す。
【0214】IC#は本発明のデータ処理装置100
に命令アクセスサイクルを終了してもよいことを通知す
る信号である。ホールドリクエストHREQ# は本発
明のデータ処理装置100 にバス権を要求する信号で
ある。
に命令アクセスサイクルを終了してもよいことを通知す
る信号である。ホールドリクエストHREQ# は本発
明のデータ処理装置100 にバス権を要求する信号で
ある。
【0215】HACK#は本発明のデータ処理装置10
0 がHREQ# を受付けてバス権を他のデバイスに
渡したことを示す信号である。IREQ(0:2)は外
部割込み要求信号である。IACK#は本発明のデータ
処理装置100 が外部割込みを受付け、割込みベクト
ルアクセスサイクルを行っていることを示す信号である
。
0 がHREQ# を受付けてバス権を他のデバイスに
渡したことを示す信号である。IREQ(0:2)は外
部割込み要求信号である。IACK#は本発明のデータ
処理装置100 が外部割込みを受付け、割込みベクト
ルアクセスサイクルを行っていることを示す信号である
。
【0216】(6.2) 「外部デバイスのアクセス」
本発明のデータ処理装置100 を用いた図6に示すシ
ステム構成例では、本発明のデータ処理装置100 と
データキャッシュ107, 108とはデータピンに接
続されているデータバス102, アドレスピンに接
続されているアドレスバス101 の他、 BAT(0
:2), DAS#, R/W#, DS#, DC#
とでも接続されている。本発明のデータ処理装置10
0 と命令キャッシュ106 とは命令ピンに接続され
ている命令バス103, アドレスバス101 の他
、BAT(0:2), IAS#, IS#, IC#
とでも接続されている。
本発明のデータ処理装置100 を用いた図6に示すシ
ステム構成例では、本発明のデータ処理装置100 と
データキャッシュ107, 108とはデータピンに接
続されているデータバス102, アドレスピンに接
続されているアドレスバス101 の他、 BAT(0
:2), DAS#, R/W#, DS#, DC#
とでも接続されている。本発明のデータ処理装置10
0 と命令キャッシュ106 とは命令ピンに接続され
ている命令バス103, アドレスバス101 の他
、BAT(0:2), IAS#, IS#, IC#
とでも接続されている。
【0217】なお、クロックCLK はシステム全体に
供給されていてシステムの基本タイミングを決定する。
供給されていてシステムの基本タイミングを決定する。
【0218】本発明のデータ処理装置100 は、標準
アクセスモードでのバスアクセスではデータバス102
を用いたデータアクセスと命令バス103 を用いた
命令アクセスとを、それぞれ十分高速な外部メモリに対
して外部入力クロックCLK の2サイクルに1度の割
合で行える。
アクセスモードでのバスアクセスではデータバス102
を用いたデータアクセスと命令バス103 を用いた
命令アクセスとを、それぞれ十分高速な外部メモリに対
して外部入力クロックCLK の2サイクルに1度の割
合で行える。
【0219】また本発明のデータ処理装置100 は、
クワッドアクセスモードでのバスアクセスではデータバ
ス102 を用いたデータアクセスと命令バス103
を用いた命令アクセスとを、それぞれ十分高速な外部の
メモリに対して外部入力クロックCLK の5サイクル
に4度の割合で行える。
クワッドアクセスモードでのバスアクセスではデータバ
ス102 を用いたデータアクセスと命令バス103
を用いた命令アクセスとを、それぞれ十分高速な外部の
メモリに対して外部入力クロックCLK の5サイクル
に4度の割合で行える。
【0220】アドレスバス101 はデータキャッシュ
107, 108のアクセスと命令キャッシュ106
のアクセスとの両方に利用される。
107, 108のアクセスと命令キャッシュ106
のアクセスとの両方に利用される。
【0221】(7) 「本発明の他の実施例」上記実施
例では、レジスタリストの検索対象とならないビットを
マスク回路でリセットし、検索をビットゼロから行うよ
うにしているが、ビット位置検出回路で検索対象とする
ビットフィールドとビット数計数回路で計数対象とする
ビットフィールドとが一致している場合は検索開始位置
はレジスタリストの任意の位置からでよい。また、上記
実施例のデータ処理装置では、命令デコード部でレジス
タリストを検索するようにしているが、命令実行ステー
ジでマイクロプログラム制御で行ってもよい。
例では、レジスタリストの検索対象とならないビットを
マスク回路でリセットし、検索をビットゼロから行うよ
うにしているが、ビット位置検出回路で検索対象とする
ビットフィールドとビット数計数回路で計数対象とする
ビットフィールドとが一致している場合は検索開始位置
はレジスタリストの任意の位置からでよい。また、上記
実施例のデータ処理装置では、命令デコード部でレジス
タリストを検索するようにしているが、命令実行ステー
ジでマイクロプログラム制御で行ってもよい。
【0222】
【発明の効果】本発明のビット検索回路は、 ”1”ま
たは”0” の最後のビットの検索が終了した時点で、
検索対象のビットフィールドにそれ以上 ”1”または
”0” のビットが無いことが検出されるので、”1”
または”0” の最後のビットの検索終了後に後処理を
行う必要がない。このためビットフィールドの全ビット
の検索をオーバーヘッドなく、短い時間で完了できる。 また、本発明のデータ処理装置は、操作すべき最後のデ
ータを保持するレジスタ番号が検出された時点でそれ以
上操作すべきデータが存在しないことが検出されるので
、最後のデータの処理完了と同時に1命令で複数のデー
タを操作する命令の処理が終了される。このため、レジ
スタリストで操作すべきデータを格納するレジスタ番号
を示す上述のような命令を短時間で効率的に処理するこ
とが可能になる。
たは”0” の最後のビットの検索が終了した時点で、
検索対象のビットフィールドにそれ以上 ”1”または
”0” のビットが無いことが検出されるので、”1”
または”0” の最後のビットの検索終了後に後処理を
行う必要がない。このためビットフィールドの全ビット
の検索をオーバーヘッドなく、短い時間で完了できる。 また、本発明のデータ処理装置は、操作すべき最後のデ
ータを保持するレジスタ番号が検出された時点でそれ以
上操作すべきデータが存在しないことが検出されるので
、最後のデータの処理完了と同時に1命令で複数のデー
タを操作する命令の処理が終了される。このため、レジ
スタリストで操作すべきデータを格納するレジスタ番号
を示す上述のような命令を短時間で効率的に処理するこ
とが可能になる。
【図1】本発明のデータ処理装置の命令デコード部の詳
細な構成を示すブロック図である。
細な構成を示すブロック図である。
【図2】本発明のデータ処理装置のプライオリティエン
コード部の詳細な構成を示すブロック図である。
コード部の詳細な構成を示すブロック図である。
【図3】本発明のデータ処理装置のオペランドアドレス
計算部及び整数演算部の詳細な構成を示すブロック図で
ある。
計算部及び整数演算部の詳細な構成を示すブロック図で
ある。
【図4】本発明のデータ処理装置100 の全体構成を
示すブロック図である。
示すブロック図である。
【図5】本発明のデータ処理装置のパイプライン処理機
構の各ステージを説明するための模式図である。
構の各ステージを説明するための模式図である。
【図6】本発明のデータ処理装置を用いたデータ処理シ
ステムの構成例を示すブロック図である。
ステムの構成例を示すブロック図である。
【図7】本発明のデータ処理装置の入出力信号及びその
ための各ピンを示す模式図である。
ための各ピンを示す模式図である。
【図8】本発明のデータ処理装置のレジスタ番地指定回
路の詳細な構成を示すブロック図である。
路の詳細な構成を示すブロック図である。
【図9】本発明のデータ処理装置の命令のフォーマット
をシステム模式図である。
をシステム模式図である。
【図10】本発明のデータ処理装置の2オペランド命令
の短縮形フォーマットを示す模式図である。
の短縮形フォーマットを示す模式図である。
【図11】本発明のデータ処理装置の1オペランド命令
の一般形フォーマット(G1−format) を示す
模式図である。
の一般形フォーマット(G1−format) を示す
模式図である。
【図12】本発明のデータ処理装置の2オペランド命令
の一般形フォーマットを示す模式図である。
の一般形フォーマットを示す模式図である。
【図13】本発明のデータ処理装置のショートブランチ
命令のフォーマットを示す模式図である。
命令のフォーマットを示す模式図である。
【図14】本発明のデータ処理装置の命令中のアドレッ
シングモード指定部のフォーマットを示す模式図である
。
シングモード指定部のフォーマットを示す模式図である
。
【図15】本発明のデータ処理装置のレジスタ間接モー
ドのフォーマットの模式図である。
ドのフォーマットの模式図である。
【図16】本発明のデータ処理装置のレジスタ相対間接
モードのフォーマットの模式図である。
モードのフォーマットの模式図である。
【図17】本発明のデータ処理装置の即値モードのフォ
ーマットの模式図である。
ーマットの模式図である。
【図18】本発明のデータ処理装置の絶対モードのフォ
ーマットの模式図である。
ーマットの模式図である。
【図19】本発明のデータ処理装置のPC相対間接モー
ドのフォーマットの模式図である。
ドのフォーマットの模式図である。
【図20】本発明のデータ処理装置のスタックポップモ
ードのフォーマットの模式図である。
ードのフォーマットの模式図である。
【図21】本発明のデータ処理装置のスタックプッシュ
モードのフォーマットの模式図である。
モードのフォーマットの模式図である。
【図22】本発明のデータ処理装置のレジスタベース多
段間接モードのフォーマットの模式図である。
段間接モードのフォーマットの模式図である。
【図23】本発明のデータ処理装置のPCベース多段間
接モードのフォーマットの模式図である。
接モードのフォーマットの模式図である。
【図24】本発明のデータ処理装置の絶対ベース多段間
接モードのフォーマットの模式図である。
接モードのフォーマットの模式図である。
【図25】本発明のデータ処理装置の多段間接モードの
フォーマットの模式図である。
フォーマットの模式図である。
【図26】本発明のデータ処理装置の多段間接アドレッ
シングモードによる命令フォーマットの多段間接モード
が継続するか終了するかのバリエーションを示す模式図
である。
シングモードによる命令フォーマットの多段間接モード
が継続するか終了するかのバリエーションを示す模式図
である。
【図27】本発明のデータ処理装置の多段間接アドレッ
シングモードによる命令フォーマットのディスプレース
メントのサイズのバリエーションを示す模式図である。
シングモードによる命令フォーマットのディスプレース
メントのサイズのバリエーションを示す模式図である。
【図28】本発明のデータ処理装置の複数データロード
命令である LDM命令のフォーマットを示す模式図で
ある。
命令である LDM命令のフォーマットを示す模式図で
ある。
【図29】本発明のデータ処理装置の複数データストア
命令である STM命令のフォーマットを示す模式図で
ある。
命令である STM命令のフォーマットを示す模式図で
ある。
【図30】本発明のデータ処理装置の ENTER命令
のフォーマットを示す模式図である。
のフォーマットを示す模式図である。
【図31】本発明のデータ処理装置の EXITD命令
のフォーマットを示す模式図である。
のフォーマットを示す模式図である。
【図32】本発明のデータ処理装置のプライオリティエ
ンコード部のビット列生成回路の詳細な構成を示すブロ
ック図である。
ンコード部のビット列生成回路の詳細な構成を示すブロ
ック図である。
【図33】本発明のデータ処理装置のビット数計数回路
の詳細な構成を示すブロック図である。
の詳細な構成を示すブロック図である。
【図34】本発明のデータ処理装置の複数データロード
命令である LDM命令の具体的オペレーションコード
の例を示す模式図である。
命令である LDM命令の具体的オペレーションコード
の例を示す模式図である。
【図35】本発明のデータ処理装置の複数データストア
命令である STM命令の具体的オペレーションコード
の例を示す模式図である。
命令である STM命令の具体的オペレーションコード
の例を示す模式図である。
【図36】本発明のデータ処理装置の LDM命令の具
体例を命令デコード部でデコードする際に、パイプライ
ン処理単位を出力する処理のアルゴリズムを示すフロー
チャートの第1の部分である。
体例を命令デコード部でデコードする際に、パイプライ
ン処理単位を出力する処理のアルゴリズムを示すフロー
チャートの第1の部分である。
【図37】本発明のデータ処理装置の LDM命令の具
体例を命令デコード部でデコードする際に、パイプライ
ン処理単位を出力する処理のアルゴリズムを示すフロー
チャートの第2の部分である。
体例を命令デコード部でデコードする際に、パイプライ
ン処理単位を出力する処理のアルゴリズムを示すフロー
チャートの第2の部分である。
【図38】本発明のデータ処理装置の LDM命令の具
体例を命令デコード部でデコードする際に、パイプライ
ン処理単位を出力する処理のアルゴリズムを示すフロー
チャートの第3の部分である。
体例を命令デコード部でデコードする際に、パイプライ
ン処理単位を出力する処理のアルゴリズムを示すフロー
チャートの第3の部分である。
【図39】本発明のデータ処理装置の LDM命令の具
体例を命令デコード部でデコードする際に、パイプライ
ン処理単位を出力する処理のアルゴリズムを示すフロー
チャートの第4の部分である。
体例を命令デコード部でデコードする際に、パイプライ
ン処理単位を出力する処理のアルゴリズムを示すフロー
チャートの第4の部分である。
【図40】本発明のデータ処理装置の LDM命令の具
体例を実行する際に、命令実行部での処理のアルゴリズ
ムを示すフローチャートの前半部である。
体例を実行する際に、命令実行部での処理のアルゴリズ
ムを示すフローチャートの前半部である。
【図41】本発明のデータ処理装置の LDM命令の具
体例を実行する際に、命令実行部での処理のアルゴリズ
ムを示すフローチャートの後半部である。
体例を実行する際に、命令実行部での処理のアルゴリズ
ムを示すフローチャートの後半部である。
【図42】本発明のデータ処理装置の LDM命令の具
体例を実行する際のパイプライン処理のタイミングを示
すタイムチャートである。
体例を実行する際のパイプライン処理のタイミングを示
すタイムチャートである。
1 ビット列生成回路
2 オフセット値指定回路
3 第1エンコード回路
4 第2エンコード回路
7 エンコード判定回路
23 ビット数計数回路
25 プライオリティエンコード部32
命令デコードステージ 35 命令実行ステージ 112 命令デコード部 113 第1マイクロROM 部 114 第2マイクロROM 部
命令デコードステージ 35 命令実行ステージ 112 命令デコード部 113 第1マイクロROM 部 114 第2マイクロROM 部
Claims (2)
- 【請求項1】 ”1”と”0” とからなる検索対
象ビット列の検索開始ビット位置を指定するオフセット
値を出力するオフセット値指定回路と、前記検索対象ビ
ット列の前記オフセット値で指定されたビット位置から
最終ビット位置までの間の検索ビットフィールド内で最
初の ”1”または”0” のビット位置を検出するビ
ット位置検出回路と、前記検索フィールド内の ”1”
または”0” のビット数を計数するビット数計数回路
と、前記検索フィールド内の ”1”または”0” の
全ビットのビット位置を複数回の検索処理で検索する場
合に、前記ビット数計数回路による計数結果から前記ビ
ット位置検出回路による検出ビット数を減算することに
より前記検索フィールド内のビット検索処理の終了を検
出する検索終了検出回路とを備えたことを特徴とするビ
ット検索回路。 - 【請求項2】 操作対象のデータの格納位置であるレ
ジスタ番号を ”1”と”0” とからなるビット列フ
ィールドで表現したレジスタリストと、操作内容を示す
オペレーションコードフィールドとを有し、複数のデー
タを操作する命令を処理するためのデータ処理装置であ
って、前記オペレーションコードフィールドをデコード
してその操作内容に従った制御コードを出力するデコー
ド回路と、前記レジスタリストを検索対象ビット列とし
てその検索開始ビット位置を指定するオフセット値を出
力するオフセット値指定回路と、前記検索対象ビット列
の前記オフセット値で指定されたビット位置から最終ビ
ット位置までの間の検索ビットフィールド内で最初の
”1”または”0” のビット位置を検出するビット位
置検出回路と、前記検索フィールド内の ”1”または
”0” のビット数を計数するビット数計数回路と、前
記検索フィールド内の ”1”または”0” の全ビッ
トのビット位置を複数回の検索処理で検索する場合に、
前記ビット数計数回路による計数結果から前記ビット位
置検出回路による検出ビット数を減算することにより前
記検索フィールド内のビット検索処理の終了を検出する
検索終了検出回路とを含むビット検索回路とを有し、命
令の実行を制御する制御部と、前記制御部の出力に従っ
て命令を実行する命令実行部とを備え、前記ビット検索
回路は、前記ビット位置検出回路により前記命令の前記
レジスタリストからレジスタ番号を検索し、前記検索終
了検出回路で処理の終了を検出すべくなしてあることを
特徴とするデータ処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3005651A JP2668456B2 (ja) | 1991-01-22 | 1991-01-22 | ビット検索回路及びそれを備えたデータ処理装置 |
US07/821,802 US5349681A (en) | 1991-01-22 | 1992-01-16 | Bit searching circuit and data processor including the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3005651A JP2668456B2 (ja) | 1991-01-22 | 1991-01-22 | ビット検索回路及びそれを備えたデータ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04260926A true JPH04260926A (ja) | 1992-09-16 |
JP2668456B2 JP2668456B2 (ja) | 1997-10-27 |
Family
ID=11617034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3005651A Expired - Fee Related JP2668456B2 (ja) | 1991-01-22 | 1991-01-22 | ビット検索回路及びそれを備えたデータ処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5349681A (ja) |
JP (1) | JP2668456B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6560622B2 (en) | 1998-10-30 | 2003-05-06 | Fujitsu Limited | Bit search device and bit search method |
JP2008514095A (ja) * | 2004-09-20 | 2008-05-01 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 可変長エンコーダ/デコーダのためのプログラム可能データプロセッサ |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3203401B2 (ja) * | 1993-05-21 | 2001-08-27 | 三菱電機株式会社 | データ処理装置 |
US5831877A (en) * | 1995-05-26 | 1998-11-03 | National Semiconductor Corporation | Bit searching through 8, 16, or 32 bit operands using a 32 bit data path |
US7406174B2 (en) * | 2003-10-21 | 2008-07-29 | Widevine Technologies, Inc. | System and method for n-dimensional encryption |
US20050114415A1 (en) * | 2003-11-24 | 2005-05-26 | Texas Instruments Incorporated | Low-latency circular priority selector |
US8195923B2 (en) * | 2009-04-07 | 2012-06-05 | Oracle America, Inc. | Methods and mechanisms to support multiple features for a number of opcodes |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5362439A (en) * | 1976-11-16 | 1978-06-03 | Nec Corp | Data producing unit |
JPS60101643A (ja) * | 1983-11-09 | 1985-06-05 | Hitachi Ltd | デ−タ処理装置 |
JPS62242243A (ja) * | 1986-04-14 | 1987-10-22 | Hitachi Ltd | 情報処理装置 |
JPS63268033A (ja) * | 1987-04-27 | 1988-11-04 | Hitachi Ltd | データ処理装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4094001A (en) * | 1977-03-23 | 1978-06-06 | General Electric Company | Digital logic circuits for comparing ordered character strings of variable length |
CA1174370A (en) * | 1980-05-19 | 1984-09-11 | Hidekazu Matsumoto | Data processing unit with pipelined operands |
US4348741A (en) | 1980-07-17 | 1982-09-07 | Motorola, Inc. | Priority encoder |
KR940003700B1 (ko) * | 1986-02-14 | 1994-04-27 | 가부시기가이샤 히다찌세이사꾸쇼 | 검색방법 및 그 장치 |
US4829576A (en) * | 1986-10-21 | 1989-05-09 | Dragon Systems, Inc. | Voice recognition system |
US5060143A (en) * | 1988-08-10 | 1991-10-22 | Bell Communications Research, Inc. | System for string searching including parallel comparison of candidate data block-by-block |
US5126739A (en) * | 1989-01-13 | 1992-06-30 | Stac Electronics | Data compression apparatus and method |
US5202986A (en) * | 1989-09-28 | 1993-04-13 | Bull Hn Information Systems Inc. | Prefix search tree partial key branching |
-
1991
- 1991-01-22 JP JP3005651A patent/JP2668456B2/ja not_active Expired - Fee Related
-
1992
- 1992-01-16 US US07/821,802 patent/US5349681A/en not_active Expired - Lifetime
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5362439A (en) * | 1976-11-16 | 1978-06-03 | Nec Corp | Data producing unit |
JPS60101643A (ja) * | 1983-11-09 | 1985-06-05 | Hitachi Ltd | デ−タ処理装置 |
JPS62242243A (ja) * | 1986-04-14 | 1987-10-22 | Hitachi Ltd | 情報処理装置 |
JPS63268033A (ja) * | 1987-04-27 | 1988-11-04 | Hitachi Ltd | データ処理装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6560622B2 (en) | 1998-10-30 | 2003-05-06 | Fujitsu Limited | Bit search device and bit search method |
US6748406B2 (en) | 1998-10-30 | 2004-06-08 | Fujitsu Limited | Bit search device and bit search method |
JP2008514095A (ja) * | 2004-09-20 | 2008-05-01 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 可変長エンコーダ/デコーダのためのプログラム可能データプロセッサ |
Also Published As
Publication number | Publication date |
---|---|
US5349681A (en) | 1994-09-20 |
JP2668456B2 (ja) | 1997-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2616182B2 (ja) | データ処理装置 | |
RU2292581C2 (ru) | Команды загрузки/перемещения и копирования для процессора | |
US5142633A (en) | Preprocessing implied specifiers in a pipelined processor | |
US5091853A (en) | Chained addressing mode pipelined processor which merges separately decoded parts of a multiple operation instruction | |
JP2847974B2 (ja) | データ処理装置 | |
JP3543181B2 (ja) | データ処理装置 | |
JPH07114469A (ja) | データ処理装置 | |
JPH1091443A (ja) | 情報処理回路、マイクロコンピュータ及び電子機器 | |
JPH05224928A (ja) | データ処理装置 | |
JPH03186928A (ja) | データ処理装置 | |
JP2581236B2 (ja) | データ処理装置 | |
US4945511A (en) | Improved pipelined processor with two stage decoder for exchanging register values for similar operand instructions | |
JP2669158B2 (ja) | データ処理装置 | |
JPH0810428B2 (ja) | データ処理装置 | |
JPH04260929A (ja) | データ処理装置 | |
JP3345787B2 (ja) | データ処理装置 | |
JP2668456B2 (ja) | ビット検索回路及びそれを備えたデータ処理装置 | |
JP2556182B2 (ja) | デ−タ処理装置 | |
JP2504312B2 (ja) | プライオリティエンコ―ダ及びそれを備えたデ―タ処理装置 | |
JP2646855B2 (ja) | データ処理装置 | |
US5269008A (en) | Method and apparatus for pre-processing the source of a pop instruction in a pipeline computer | |
JPH0769806B2 (ja) | データ処理装置 | |
JP2696578B2 (ja) | データ処理装置 | |
JPH0218621A (ja) | データ処理装置 | |
JPH0769808B2 (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: 20080704 Year of fee payment: 11 |
|
LAPS | Cancellation because of no payment of annual fees |