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

データ処理装置

Info

Publication number
JPH04109336A
JPH04109336A JP2231966A JP23196690A JPH04109336A JP H04109336 A JPH04109336 A JP H04109336A JP 2231966 A JP2231966 A JP 2231966A JP 23196690 A JP23196690 A JP 23196690A JP H04109336 A JPH04109336 A JP H04109336A
Authority
JP
Japan
Prior art keywords
register
data
instruction
bit
address
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
Application number
JP2231966A
Other languages
English (en)
Other versions
JP2616182B2 (ja
Inventor
Toyohiko Yoshida
豊彦 吉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2231966A priority Critical patent/JP2616182B2/ja
Publication of JPH04109336A publication Critical patent/JPH04109336A/ja
Priority to US08/245,846 priority patent/US5390307A/en
Application granted granted Critical
Publication of JP2616182B2 publication Critical patent/JP2616182B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明はレジスタに保持されているデータの退避/復帰
を高速実行し得るデータ処理装置に関し、更に詳述づれ
ば、複数のレジスタそれぞれに保持されているデータを
転送する命令の実行に際して、1度の処理で2個のレジ
スタ内容を同時に退避/復帰することにより、レジスタ
内容の退避/復帰に要する時間を短縮することを可能と
したデータ処理装置に関する。
[従来の技術] 従来、データ処理装置では高9p度に使用するデータを
高速にかつ単純な機構でアクセスする目的で、16本程
度の数の汎用レジスタにて構成されるレジスタファイル
を備え、頻繁にアクセスするデータ、演算の中間結果等
をレジスタファイルに保持するようにしている。
このようなレジスタファイルを使用するソフトウェアで
は、レジスタファイルの各レジスタに配置したデータを
一連の処理の区切り目で入れ換える手法を用いる。この
ため、レジスタ上に配置されたデータが一度に複数個ず
つ連υcしてメモリにストアされたり、メモリからロー
ドされたりする処理が頻繁に反復される。
CあるいはPa5ca ]などの高級−3語では高頻度
に使用する変数をブロシージ中毎にレジスタに再配置す
る手法が用いられることが多く、こ1+らのjl’ii
級言語で設51されたソフI・ウェアではレジスタから
♀複数のテ゛−夕をメモリにストアしたり、逆に複数の
データをメモリからレジスタにo−1−するり、f(度
が高い。
このため、1命令で複数のデータをレジスタからメモリ
に退避したりあるいは1命令で複数のデータをメモリか
らレジスタにロー)゛する複数データ転送命令を有する
データ処理装置が従来から提案されている。このような
複数データ転送命令では、データを転送すべき対象とな
るレジスタを0“と“1”とのビット列に対応させたレ
ジスタリストで示す手法が用いられている。従って、レ
ジスタリストをサーチして転送すべきレジスタ番号を高
速にエンコードする必要があり、この目的のためにプラ
イオリティエンコーダと称されるエンヨー1回館がハー
ドウェアとして提案されている。
プライオリティエンコーダを用いてレジスタリストから
転送すべきレジスタ番号を高速にエンコードする手法は
例えば1IsP4,348,741等に詳細に開示され
ている。
[発明が解決しようとする課B] 従来のデータ処理装置では上述如きプライオリティエン
コーダを用いてレジスタリストをサーチし、“1”のビ
ット位置を2進数にエンコードして得たレジスタ番号の
レジスタに保持されているデータを1つずつンリアルに
転送しているため、最低でも転送すべきデータ数と等し
い数の転送動作を反復する必要がある。
[課題を解決するための手段] 本発明のデータ処理装置はこのような課題を解決するた
めなされたものでありその第1の発明では、複数データ
ストア命令をデコードする命令デコーダと、命令デコー
ダから出力された複数データストア合資中のレジスタリ
ストを保持するピント列レジスタと、レジスタリストを
サーチして”1′(または“0”)の先頭の位置を2進
数にエンコードする第1のブライオリティエンニ+−1
□回路と、レジスタリス(・をサーチして“1”(また
は”0”)が2個連続する先頭の“1″を2進数にエン
コー1−する第2のプライオリティエンコード回路と、
nビットのレジスタ複数にて構成されたレジスタファイ
ルと、内蔵メモリまたは外部メモリへ転送されるべきデ
ータを保持するnハイドのデータし・ジスタ等にて構成
されていて、命令デコーダでデコーまた複数データスト
ア命令を実行する命令実行手段とを備えている。
また第2の発明では、複数データロード命令をデコード
する命令デコーダと、命餐デコーダから出力された複数
データロード命令中のレジスタリスI・を保持するビッ
ト列レジスタと、レジスタリストをサーチして“1”(
または“0”)の先頭の位置を2進数にエンコードする
第1のプライオリティエンコード回路と、レジスタリス
トをサーチして“1′(または“0”)が2個連続する
位置を2進数にエンコードする第2のプライオリティエ
ンコード回路と、nピノl□の?!数のレジスタにて構
成されたレジスタファイルと、内蔵メモリまたは外部メ
モリから転送されて来たデータを保持するデータレジス
タとにて構成されていて、命令デコーダがデコドした複
数データ[1−ド命令を実行する命令実行手段とを備え
ている。
[作用] 本発明のデータ処理装置の第】の発明では、命令デコー
ダが複数データストア命令をデコードした場合に、命令
デコーダから出力されたレジスタリストを第1のプライ
オリティエンコーダでサーチして“1区または“0”)
の先頭の位置を2進数にエンコードすると共に、第2の
プライオリティエンコーダでもサーチして“1”(また
は°0”)が2ビット連続した先頭の位置を2進数にエ
ンコードする。
先頭の“1” Jが単独のビットで2つのプライオリテ
ィエンコーダのエンコード結果が異なる場合は、“−(
または”0“)の先頭のビット位置に対応するレジスタ
から4ハイドのデータをデータレジスタに転送し、内蔵
メモリまたは外部メモリヘスドアする。“1”(またば
”0′)が2ビットが連続した先頭の”I”で2つのブ
ライオリティエンニ1−ダのエンコ−1−結果が一致す
る場合は、先頭の“1“(または“0”)のビット位置
とその隣のビット位置に対応するレジスタとからそれぞ
れnビットのア゛−夕をデータレジスタへ転送し、転送
した2つのnビットのデータを連結して2nビットのデ
ータとして内蔵メモリまたは外部メモリヘスドアする。
また第2の発明では、命令デコーダが複数データロード
命令をデコードした場合に、命令デコダから出力された
レジスタリストを第1のプライオリティエンコーダでサ
ーチして“1”(またはO″)の先頭の位置を2進数に
エンコードすると共に、第2のプライオリティエンコー
ダでもサーチして“1”(または“0”)が2ビット連
続した位置を2進数にエンコードする。”−(または0
”)の先頭の位置が単独のビットで2つのプライオリテ
ィエンコダのエンコード結果が異なる場合は、内蔵メモ
リまたは外部メモリからnビ/トのデータをテークレジ
スタにフェッチし、そのデータを“]′(または“0”
)の先頭のビット位置に対応するレジスタへ転送する。
“1”(または“0”)が2ビット連続した先頭の位置
で2つのプライオリティエンコーダのエンコード結果が
一致する場合は、内蔵メモリまたは外部メモリから20
ヒントのデータをデータI/ジスタにフェッチし、上位
のnビットと下位のnビ。
トとに分割して“1°(または“O”)の先頭のしノド
位置及びその隅のピノ)−に対応するレジスタへそれぞ
れ転送する。
(以 下・余;白) 「発明の実施例J 以1;、本発明をその実施例を示す図面を谷間して訂述
する。
(1)1本発明のデータ処理装置を用いたシステムの構
成」 第6図は本発明のデータ処理装置を用いたシステムの構
成例を示すブロック図である。
この例では、本発明のデータ処理装置100.  命令
キヤノンユ106.  データキャッシュ107及び+
08主メモリ+09がアドレスバス101.  データ
バス102命令バス103.  メモリアドレスバス1
04.  メモリデータバス105で結合されている。
アドレスバス101は本発明のデータ処理装置100か
ら出力されるアドレスを命令キャッジ、1106とデー
タキャッシュ1.07.108とに入力する。命令ハス
103は命令キャッシュ106から出力される命令コー
ドを本発明のデータ処理装置100へ転送する。
データバス102は本発明のデータ処理装置100から
出力されたデータをデータキャッシュ107.108へ
転送したりあるいはデータキャッシュ107.108か
ら出力されたデータを本発明のデータ処理装置100へ
転送したりする。メモリアドレスバス104は命令キャ
ッシュ106またはデータキャッシュ10710Bから
出力されるア)゛レスを主メモ1月09へ転送する。メ
モリデータバス105は主メモリ109と命令キャッシ
ュ106またはデータキャッシュ107との間で命令ま
たはデータを転送する。
命令キャッシュ10G、データキャッシュ1.07.1
08がミスした場合はそれぞれのキャッシュがメモリア
ドレスバス104とメモリデータバス+05とのバス権
を調停して主メモリ109をアクセスする。
データキャッシュ107.108は本発明のデータ処理
装置100の側では64ビットのハスに結合するため、
2つのチップが協調して動作する。各64ビットデータ
のデータの上位32ビットのデータをデータキャッシュ
107が、下位32ピノl−のデータをデータキャッシ
ュ1.08がそれぞれ分担して受持つ。
以下、本発明のデータ処理装置ll 100の命令体系
及び処理機構について最初に説明し、次に複数個のレジ
スタ中のデータを転送する命令である10M命令とST
−命令とを実行した場合のプライオリティエンコーダと
データ演算部との動作を詳細に説明する。
(2)「本発明のデータ処理装置の命令フォーマット」
本発明のデータ処理装置の命令は16ビノ1−単位で可
変長となっており、奇数ハイド長の命令はない。
本発明のデータ処理装置では高頻度に使用される命令を
短いフォーマットとするために特に工夫された命令フォ
ーマット体系を有する。例えば、2オペランド命令に対
して、基本的に「4ハイド」」−1−拡張部」の構成を
有し、全てのアドレノソングモードが利用可能な一般形
フオーマノドと、頻度の高い命令とアドレッシングモー
ドとのみを使用可能な短縮形フォーマットとの2つのフ
ォーマットがある。
第9図乃至第13図に示す本発明のデータ処理装置の命
令フォーマット中に現われる記号の意味は以下の如くで
ある。
:オペレーションコードが入る部分 Ea:Bビットの一般形のアトレソソングモードでオペ
ランドを指定する部分 Sh:6ビノトの短縮形のアトL・ノシングモートでオ
ペランドを指定する部分 Rnニレジスタフアイル上のオペランドをレジスタ番号
で指定する部分 フォーマットは、第9図に示す如く、右側がLSB側で
且つ高いアドレスになっている。アl−レスNとアドレ
スN+、1との2ハイドを見ないと命令フォーマツ]・
が判別できないようになっているが、これは、命令が必
ず16ビノト (ハーフソー11ji’位でフエ、チ、
デコードされることを前提としているためである。
本発明のデータ処理装置の命令では、いずれのフォーマ
ットの場合も、各オペランドのEaまたはshの拡張部
は必ずそのEaまたはshの基本部を含む16ビノト 
(ハーフワード)の直後に配置される。
これは、命令により暗黙に指定される即値データあるい
は命令の拡張部に優先する。従って、4ハイド以上の命
令では、Haの拡張部により命令のオペレーションコー
ドが分断される場合がある。
1;た、後述するように、多段間接モードにおいてEa
の拡張部に更に拡張部が付加される場合にも次の命令A
ベレーションコードよりもそちらの方がイ■先される。
例えば、第1ハーフヮ−1・にEalを含み、第2ハー
フワーlにF、a2を含め、第3ハフワードまである6
ハイト命令の場合乙こついて考える。なおここでは、E
alに多段間接(−1を使用したため、普通の拡張部の
他に多段間接七ドの拡張部も付加されるものとずろ。こ
の場合、実際の命令ビットパターンは、命令の第1ハー
フワード (Ealの基本部を含む)、  l!alの
拡張部Ealの多段間接モーl′拡張部、命令の第2ハ
ーフワード(Ea2の基本部を含む)、  Ea2の拡
ツI(部命令の第3ハーフワードの順となる。
(2,1)  r短縮形2オペランド命令」第10図は
2オペランド命令の短縮形フォーマットを示ず模式図で
ある。
このフォーマットにはソースオペランド側がメモリとな
るL−formatとデスティネーションオペランl゛
側がメモリとなるS−formatとがある。
L4ormatでは、shはソースオペランドの指定フ
ィールドを、Rnはデスティ不一ソヨンオベランドのレ
ジスフの指定フィールドを、RRはshのオペランドサ
イズの指定フィールド4それぞれ表す。レジスターl二
に置かれたデスティ不一ソヨンオベラントのサイズは3
2ピツ)・に固定されている。レジスタ側とメモリ側と
のサイズが異なり、且つソース側のサイズが小さい場合
に符号拡張が行われる。
S−formatでは、shはデスティネーションオペ
ラン)・の指定フィールドを、Rnはソースオペラン1
のレジスタ指定フィールドを、RRはshのオペランド
サイズの指定フィールドをそれぞれ表す。レジスタ上に
置かれたソースオペランドのサイズは32ピントに固定
されている。レジスタ側とメモリ側とのサイズが異なり
且つソース側のサイズが大きい場合に、オーバフローし
た部分の切捨てとオハーフローチェソクとが行われる。
(2,2)  r−船形1オペランド命令」第11図は
lオペランド命令の一船形フオーマツl□ (Gl−f
ormat)を示す模式図である。
このフォーマットでは、F′I門はオペラン1勺イズの
指定フィールドを表している。一部のG14ormat
命令ではEaの拡張部以外にも拡張部かをイJする。
また、聞フィールドを使用しない命令もある。
(2,3)  r−船形2オペランド命令」第12図は
2オペランド命令の一船形フメーマノ]・を示ず模式図
である。
このフォーマットに含まれるのは、8ビットで指定され
る一般形アドレッシングモー1−のオペランドが最大2
つ存在する命令である。オペランlの総数自体は3つ以
上になる場合もある。
このフォーマットにおいて、EaMLよデスティ矛−ン
ヨンオペラン1゛の指定フィールドを、Mlはデスティ
ネーションオベランドナイズの指定フィルドを、EaR
はソースオペランド指定フィールドを、RRはソースオ
ペランドサイズの指定フィールドをそれぞれ表している
一部の一般型フオーマノド命令では、EaM及びEaR
の拡張部以外にも拡張部がある。
第13図はノヨートブランチ命令のフォーマットを示す
模式図である。
このフォーマットでは、ccccは分岐条件指定フィー
ルドを、disp:8はジャンプ先との変位指定フィー
ルドをそれぞれ表している。本発明のデータ処理装置で
は、8ビットで変位を指定する場合にはピノ[パターン
での指定値を2倍して変位(Itl、とする (2.4)  rアドレツシングモード」本発明のデー
タ処理装置の命令のアドレッシングモー1指定方法には
、レジスタを含めて6ビ。
トで指定する短縮形と、8ビットで指定するー・形彫と
がある。
未定義のアドレノソングモードを指定した場合、あるい
は意味的に考えて明らかに不合理なアドレッシングモー
)・の組合わせが指定された場合には、未定義命令を実
行した場合と同様に予約命令例外が発生して例外処理が
起動される。これにニジ当するのは、テ゛スティネーソ
ヨンカく即(直モードである場合、アトルス計算をI′
Fうべきア1゛し/シンデモ1指定フィールドで即ft
ff1モードが使用された場合などである。
第14し1乃至第24Icこ示すフォーマットの模式図
ムこおいて使用されている記−℃の、0“味は以下の如
くである。
Rn;レジスタ指定 (Sh) : G ヒ/l・の短縮形ア[レノンングモ
−1′での指定方法 (Ea) : 8ビットの一船形アトレソンングモドで
の指定方法 なお、各フォーマットの模式図において破線にて表され
ている部分は拡張部を示す。
(2,4,1)  r基本アドレッシングモー1−j本
発明のデータ処理装置の命令は種々のアドレッシングモ
ードをサポートする。それらの内、本発明のデータ処理
装置でサポートする基本アドレッシングモードには、レ
ジスタ直接モード、レジスタ間接モート、レジスタ相対
間接モード、即値モード、絶対モート、 PC相対間接
モード、スタノクボ・ノブモード、スクノクプ/シ工モ
ーt゛がある。
レジスタ直接モードは、レジスタの内容をそのままオペ
ランドとするアドレッング千−ドである。フォーマット
の模式図を第14図に示す。図中、Rnは汎用レジスタ
またはF T11ルジスクの番号を示す。
レジスタ間接モードは、汎用レジスタの内容をアドレス
とするメモリの内容をオペランドとするアドレッシング
モードである。フォーマ、[・の模式図を第15図に示
す。図中、Rnは汎用レジスタの番号を示t。
レジスタ相対間接は、ディスプレースメント値が16ビ
ノトであるか32ビットであるかにより2種類に分かれ
る。いずれも、汎用レジスタの内容に16ビノトまたは
32ピノ)・のディスブレースメン[・値を加えた値を
ア旧/スとするメモリの内容をオペランドとするアドレ
ッシングモードである。フォーマットの模式図を第16
図に示す。図中、Rnは汎用レジスタの番号を示ず。d
isp : 16とdisp : 32とは、それぞれ
16ビノトのディスブレースメント(直132ヒ゛ノド
のテ゛イスフ゛レースメント(直を示す。
ここでのディスプレースメント値は符号付きとして扱わ
れる。
即値モーl゛は、命令コード中で指定されるビ。
)・パターンをそのまま2進数と見なしてオペラン1′
とするアドレッシングモードである。フォーマ71・の
模式図を第】7図に示す。図中、 imm  11at
aは即伊を示ず。 imm  dataのサイズは、オ
ペラン)サイズとして命令中で指定される。
キ色&、!モードは、アドレス(直が16ヒ゛ソトで示
されるか32ビットで示されるかにより2種Inに分か
れる。いずれも、命令コード中で指定される16ビソト
または32ビットのビットパターンをア[レスとしたメ
モリの内容をオペランドとする71・しy’)ノブモー
ドである。フォーマノ!・の模式図を第18図に示す。
図中、abs:16とabs:32とは、それぞれ16
ビノト、32ビ・ノドのアドレス値を示す。abs:I
(iにてアドレスが示される場合は指定されたアドレス
値が32ビットに符号拡張される。
PC相対間接モードは、ディスプレースメント値が16
ビノトであるか32ビットであるかにより2種類に分か
れる。いずれも、プログラムカウンタの内容に16ビッ
トまたは32ビット−のディスブレースメント値を加え
た値をアドレスとするメモリの内容をオペランドとする
アドレシングモー1である。フォーマノI・の模式図を
第19図に示す。図中、disp : 16とdisp
 : 32とは、それぞれ、I6ビy l・のディスブ
レースメン1−値、32ビットのディスプレースメント
値を示す。ここではディスプレースメント値は符号付き
として扱われる。PC相対間接モートにおいて参照され
るプログラムカウンタの値は、そのオペラン1′を含む
命令の先頭アドレスである。多段間接アドレシングモー
トにおいてプログラムカウンタの値が参照される場合に
も、同様に命令先頭のアドレスがPC相対の基準値とし
て使用される。
スタックポツプモートはスタックポインタ(SP)の内
容をアドレスとするメモリの内容をオペランドとするア
ドレッシングモードである。オペランドアクセス後にS
Pがオペランドサイズだけインクリメントされる。例え
ば、32ビットデータが扱われる場合には、オペランド
アクセス後にSPが+4だけ更新される。8.1.6.
 G4ビットのライズのオペランドに列するスタックポ
ツプモートの指定もiil能であり、それぞれSPが+
1.+2.+8だしり更新される。
フォーマットの模式図を第20図に示す。オペラン[に
対してスタックポツプモートが恋味を()だない場合に
は予約命令例外が発生ずる。只体的Di子約命令例外と
なるのは、writeオペランド、 read+nod
ify−wri teオペランドに対するスタ、クボ、
ブモード指定である。
スタックブツシュモードは、SI)の内容をオペランド
サイズだけデクリメントした内容をアドレスとするメモ
リの内容をオペラン)−とするアドレッングモードであ
る。スタノクブノソ二千−ドζはオペランドアクセスn
iiにSPがデクリメントされる。例えば、32ピノi
・データが扱われる場合には、オペラン1アクセス前に
SPが−4だけ更新される。
8、1G、 64ビットのライズのオペランドに対する
スタックブツシュモードの指定も可能であり、それぞれ
SPが−1,−2,−flたけ更新される。フォーマッ
トの模式図を第21図に示す。オペラン1に対してスタ
ックブツシュモードが意味を持たない場合には予約命令
例外が発生される。具体的に予約命令例外となるのは、
readオペランド、 read−modiryi=+
riLeオペランドに対すスタックブツシュモーF指定
である。
(2゜、1.2)  r多段間接アドレッシングモード
」複雑なアドレッシングも基本的には加算と間接参照と
の組合わせに分解することが可能である。
従って、加算と間接参照とのオペレーションをアドレッ
シングのプリミティブとして与えておき、それらを任意
に組合わせることができれば、どのような複雑なアドレ
ッシングモードをも実現可能になる。
本発明のデータ処理装置の命令の多段間接アドレッシン
グモードは上述のような考え方に基づいたアドレッシン
グモードである。複雑なアドレッシングモードは、モジ
ュール間のデータ参照あるいはAI(人工知能)言語の
処理系に特に有用である。
多段間接アドレッシングモードを指定する場合、基本ア
]・レノソングモード指定フィール1ではレジスタヘー
ス多段間接モード、PCヘース多段間接モード、絶対ベ
ース多段間接モートの3種類の指定方法の内のいずれか
1つを指定する。
レジスタヘース多段間接モードは汎用レジスタの値を拡
張する多段間接アドレシングのヘースイ直とするアドレ
ッシングモードである。フォーマットの模式図を第22
図に示す。図中、Rnは汎用レジスタの番号を示す。
PCヘース多段間接モートはプログラムカウンタの値を
拡張する多段間接アドレッシングのベース値とするアド
レッシングモードである。フォーマットの模式図を第2
3図に示す。
絶対ベース多段間接モードはゼ[]を拡張される多段間
接アドレッシングのベース値とするアドレッシングモー
ドである。フォーマントの模式図を第24図に示す。
拡張される多段間接モード指定フィールドは16ビツ]
・を単位としており、これを任意回反復して付加される
。1段の多段間接アドレッシングモートにより、ディス
プレースメントの加算、インデクスレジスタのスケーリ
ング(Xl、、X2.1×8)と加1γ、メモリの間接
参照を1テう。多段間接モートのフォーマ、トの模式図
を第25図に示す。
各フィールドは以下に示づ意味を有する。
E・0 :多段間接モート継続 E・1 、アl゛レス計算終了 tmp ==> address  of opera
ndI・0 :メモリ間接参り、r(なし tmp + disp + Rx 本5cale ==
> tmpl・1−メモリ間接参照あり mem  (imp  +  disp  +  Rx
  *  5caleコ==>  Lmp h・O:  <RX>をインデクスとして使用i・1 
:特殊なインデクス <RX〉・Oインデクス値を加算しな い(RX・0) 〈P×〉・1  プログラムカウンタをインデクス値と
して使用 (Rx・PC) <RX>=2〜  reserved ロー0  : 多段間1fiモード中の4ビットのフィ
ーJl用jd4の値を4倍してディスプレースメントイ
直とし、これをノ用算する。d4は符号付きとして扱わ
れ、オペラン1の サイズとは関係なく必ず4 (r’4 して使用する。
D=]  :多段間接モートの拡張部で指定されたdi
spx(16/32ビット)をディスブレースメンl−
値とし、これを加算する。
拡張部のサイズはd4フィール)・で指定する。
d4=0001   dispxl!16ビノトd4=
oolo   dispxは32ビット×x:インデク
スのスケール (scale  =  1/2/イ/8)プログラムカ
ウンタに対してX2.x4  x3のスケーリングを行
った場合には、その段の処理終了後の中間値(tmp)
として不定値が入る。この多段間接モードによって得ら
れる実効アドレスは予測できない値となるが、例外は発
生しない。プログラムカウンタに月するスケーリングの
指定は禁しられている。
多段間接アドレッシングモーt°による命令フォツ、1
・のバリエーションを第26図、第27図の模式図に示
す6第26図は多段間接モートが継続するか終了するか
のバリエーションを、第27図はディスプレースメント
のサイズのバリエーションをそれぞれ示す。
任意段数の多段間接アドレッシングモードが利用できれ
ばコンパイラの中で段数による場合分けが不要になるの
で、コンパイラの1″を担が軽減されるというメリノ[
がある。多段の間接参照の頻度が井常に少ないとしても
、コンパイラとしては必ず正しいコードを発生できなけ
ればならないからである。このため、フォーマット上、
任意の段数が可能になっている。
(2,5)  rレジスタの退避命令と復帰命令」本発
明のデータ処理装置+00は複数のレジスタの内容をス
タック領域等のメモリ領域に退避させる命令である57
M命令と、スタ・ツク領域等のメモリ領域に退避されて
いる複数のレジスタの内容を復帰させるLDM命令とを
備えている。
1、回命令のフォーマットは第28図の模式図に示され
ている。1.11M命令では5rcsフイールドで示さ
れているアドレッシングモードに従って計算されたアド
レスのメモリからregIisflフィールL゛で示さ
れたレジスタヘデータが転送さるる。転送されるべきデ
ータを格納するレジスタはreglistフィール1−
によりビットバタンで示される。各レジスタに転送され
るデータはそれぞれ4ハイドである。
ST?l命令のフォーマットは第29図の模式図に示さ
れている。57M命令では、reglistフィールド
で示されているレジスタ中のデータがdes Lsフィ
ールドで示されたアドレッシングモートに槌って計算さ
れたアドレスのメモリへ転送される。転送すべきデータ
を格納しているレジスタはreglistフィールドに
よりビットバタンで示される。第29図に示す如く、5
7M命令のreglistフィールドの意味はdes 
tsフィールドで示されるアドレノソングモードにより
異なる。これは複数個のレジスタ内容がメモリに格納さ
れる場合に、大きな番号のレジスタが常に大きな番地に
格納されるように統一するためである。各レジスタから
転送されるデータはそれぞれ4ハイドである。
(以下余白) (3)[−本発明のデータ処理装置の機能ブロックの構
成−: 第4図は本発明のデータ処理装置100の構成を示ずブ
[1ツク図である。
本発明のデータ処理装置の内部を機能的に大きく分ける
と、命令入力部110.  命令フェノ(部111命令
デコート部II2.  第1マイクロROM部113第
2マイクロROM部114.  オペランドアドレス算
部+15.  PC計算部116,  望数演1γ部1
17,  浮動小数点演算部118,  アドレス入出
力部119,  オペランドアクセス部120,  デ
ータ入出力部+21に分かれる。
アドレス入出力部119をアドレスバス101 に結合
し、データ入出力部ビットをデータバス102に結合し
、命令入力部110を命令ハス103に結合することに
より第6図に示すシステム+14成をとることができる
(3.1.)  r命令入力部」 命令入力部110は外部の命令ハス103から32ビッ
ト単位で命令コードを本発明のデータ処理装置1、00
に入力する。命令キャッシュ10Gのアクセス方法には
、1つのアドレスに対して32ビットの命令コードをア
クセスする標準アクセスモートと、1つのアドレスに対
して4回連続で32ビ,トの命令コードをアクセスする
クワッドアクセスモードとがあり、いずれの場合も命令
入力部110は入力した命令コードを命令フェッチ部I
11へ出力する。
(3.2)  r命令フェッチ部」 命令フェッチ部1.11には、命令アドレスのアドレス
変換機構,内蔵命令キャッシュ、命令用TLR命令キュ
ー及びそれらの制御部等が備えられている。
命令フェッチ部111 は、次にフェッチすべき命令の
pc値を物理アドレスに変換し、内蔵命令キャッシュか
ら命令コードをフェッチして命令デコード部112へ出
力する。内蔵命令キヤツシユがミスした場合にはアドレ
ス入出力部119へ物理アドレスを出力し、外部への命
令アクセスを要求し、命令入力部110を通して入力さ
れた命令コードを内蔵命令キャッシュに登録する。
次にフェッチすべき命令のPC値は命令キ1−に人力ず
べき命令のPC値として専用のカウンタで計算される。
ジャンプが発生した場合は、新たな命令のI’ C (
Jがオペランドアドレス計算部115.  PC討11
部116,  整数演算部117等から転送されて来る
命令用孔Bがミスした場合のベージングによるアドレス
変換及び命令用TLRの更新も命令フェッチ部111の
内部にある制御回路により行われる。
また、本発明のデータ処理装置110がハスウAノチモ
ードである場合は、アドレス入出力部119を通して入
力された物理アドレスがヒノトシた内蔵命令キャッシュ
のエントリが無効化される。
(3.3)「命令デコード部−1 命令デコード部1】2では基本的に16ビノ[・(ハー
フワード)単位で命令コードをデコードする。
このブロックには第1ハーフワードに含まれるオペレー
ションコードをデコードするFIIW(First l
lalfWoed)デコーダ、第2及び第3ハーフワー
ドに含まれるオペレーションコードをデコーl゛するl
IF+IW(Not Fjrst Half Word
)デコーダ、アドレノシングモードをデコードするアド
レッシングモートデコーダが含まれる。
また、FIIWデコーダ、 NFIIWデコーダの出力
を更にデコードしてマイクロROMのエントリアドレス
を計算する第2デコーダ、条件分岐命令の分岐予測を行
う分岐予測機構、オペランドア)・レス計算の際のパイ
プラインコンフリクトをヂエノクするアドレス訓算:1
ンフリクトチェ、り機構も備えられている。
命令フェッチ部+11から出力された命令コードは1り
IコックにつきO〜6ハイトがダニ1−トされる。
デコート結果の内、整数演算部+17での演算に関係す
る情報が第1マイクロROM部113へ、)7v」小数
点演算部118での演算に関係する情報が第2マイクロ
ROM部114へ、オペランドアドレス計算に関係する
情報がオペランドアドレス旧算部115へ、pcBJ算
に関係する情taがPC計算部116へ、それぞれ出力
される。
(3,4)  r第1マイクロROM部」第1マイクロ
ROM部113には、整数演算部117の制御を行う種
々のマイクロプログラムルーチンが格納されているマイ
ク0ROFI、  マイクロノーリーンサ、マイクロ命
令デコーダ等が備えられている。
マイクロ命令はマイクロROMから1クロ、り)j′3
たり1度読出される。マイクロシーケンサは命令実行に
関するマイクロプログラム実行のためのシーケンス処理
の他に、例外3割込及びトう、ブ(この3つを併せてE
ITと称す)の受(=f +3と各1i+Tに対応、す
るマイクロプロゲラl、のシーケンス処理も行う。
第1マイクロROM部113には命令コードに依存しな
い外部割込め及び整数演算実行結果によるマイクロプロ
グラムの分岐条件も入力される。
マイクロデコーダの出力は主に整数演算部117へ出力
されるが、ジャンプ命令の実行時1例外受付時には一部
の情報を他の機能ブロックへも出力する。
(3,5)  r第2マイクロRO?1部」第2マイク
ロROM部11.4には、浮動小数点演算部nsの制御
を行う種々のマイクロプログラムルーチンが格納されて
いるマイクL珪OM、  マイクロソーケンサ、マイク
ロ命令デコーダ等が備えられている。マイクロ命令はマ
イクロR0−から1クロツクに1度読み出される。マイ
クロシーケンサはマイクロプログラムで示されるシーケ
ンス処理の他に、浮動小数点演算に関係する例外の処理
も行い、マスクされていない浮動小数点例外が検出され
た場合には第1マイクロROM部113へ例外処理を要
求する。第2マイクロRO?1部114のマイクロシー
ケンサは第1マイクロll0M部113のマイクロシー
ケンサと並列に動作し、整数演算部117 と並列に浮
動小数点演算部118を制御する。
第2マイクロRO1部113には浮動小数点演算の実行
結果によるフラッグ情報も人力される。
マイクロデコーダの出力は主に浮動小数点演算部118
に対して出力されるが、浮動小数点演算に関係する例外
の検出等の一部の情報は他の機能ブロックへも出力され
る。
(3,6)  rオペランドアドレス計算部」オペラン
ドアドレス計算部115は、命令デコード部112のア
ドレッシングモードデコーダ等から出力されたオペラン
ドアドレス計算に関係する情fuによりハードワイヤー
ドに′#lll ?卸される。このオペランドアドレス
計算部115ではメモリ間接アドレ、シングのためのメ
モリアクセス以外のオペランドのアドレス計算とジャン
プ命令のジャンプ先アドレスの計算とが行われる。
オペランドアドレスの計算結果は整数演算部117へ出
力される。オペランドアドレス計〕γ終γ段階での先行
ジャンプ処理ではジャンプ先アドレスの計算結果が命令
フェッチ部111 とI’C,!1′算部116とへ出
力される。
即値オペランドは整数演算部117及び浮動小数点演算
部118へ出力される。アドレス計1γに必要な汎用レ
ジスタ、プログラムカウンタの値は整数65算部117
.  l’c計算部116から入力される。
(3,7)  rPC計算部」 pc計算部116は命令デコード部112から出力され
るPC計算に関係する情報でハードワイヤードに制御さ
れ、命令のpc値を計〕γする。本発明のブタ処理装置
100の命令は可変長命令であり、命令をデコートした
後でなければ命令の長さが判明し。
ない。PCC計算部属16、命令デコート部112がら
出力された命令■をテコ−1中の命令のpc値に加算す
ることにより次に実行すべき命令のpc値を1算する。
pc計算部116の8f算結果は各命令のpc値として
命令のデコード結果と共に出力される。
命令デコートステージでの先行ブランチ処理では、命令
デコート部11から出力されるブランヂ幅をpc値に加
3γすることによりブランチ先命令のアドレスが計算さ
れる。
また、PCC計算部属16はサブルーチンへのジャンプ
命令の実行時にスタックにブノンユされているサブルー
チンからの戻り先PC値のコピーを保持したPCスタッ
クが備えられており、サブルーチンからのリターン命令
に対してはPCスタックから戻り先pcを読出ずことに
より、プリリターン先命令のアドレスを生成する処理も
行う。
(3,8)  rV数演ゴγ部」 tニ数演算部117は第1マイクロll0M部1.13
のマイクロROIIに格納されたマイク17ブロクラム
C二より制御され、各整数演3)J命令の機能を実現ず
ろために必要な演算を望t2i?N算部117の内部に
あるレジスタファイルと演算器とで実行する。レジスタ
ファイルには汎用レジスタと作業用レジスタとか含まれ
る。
また、整数演算部117は演算器きしてはA1.lJプ
ライオリティエンコーダ鍮をfiifIえている。整数
演算部117には整数演算の結果により変化するフラグ
、外部割込みのマスクレー、ルを定めるビット等を含む
プロセッサ状、IQ語(PSW) l  バッフアノS
しり制御レジスタ等が含まれる。
命令の演算対象となるオペラン[がアドレスまたは即値
である場合は、オペランI・アドレス112部115か
ら即値または計算されたアドレスが入力される。また、
命令の演算対象となるオペランドがメモリ上のデータで
ある場合は、アドレス計算部115で計算されたアドレ
スがオペランドアクセス部120へ出力され、内蔵デー
タキャッシュまたは外部からフェッチしたオペランドが
整数演算部117へ入力される。
演算に際して、内蔵デークキャノシュ、外部のデータキ
ャッシュ107.108あるいは主メモリ109をリー
ドする必要がある場合は、マイクロプログラムの指示に
よりオペランドアクセス部120ヘアドレスを出力する
ことにより、口約のデータをフェッチする。
演算結果を内蔵データキャッシュ、外部のデータキャッ
シュ107.108あるいは主メモリ109ヘスドアす
る必要がある場合には、マイクロプログラムの指示によ
りオペランドアクセス部120ヘアドレスとデータとを
出力する。この際、PCC計算部属16らはそのストア
動作を行った命令のpc値がオペランドアクセス部12
0へ出力される。
外部割込み1例外の処理等が行われて新たな命令アドレ
スを整数演算部117が得た場合は、これが命令フェッ
チ部111 とPCC計算部属16へ出力される。
(3,9)  r浮動小数点演算部−1浮動小数点演算
部118は第2マイクロROM部114のマイクロRO
Mに格納された゛フィクロプログラムにより制?111
され、各浮動小数点演算命令の機能を実現するために必
要な演算を)?動小数点演算部118の内部にあるレジ
スタファイルと演算器とで実行する。浮動小数点演算部
11Bには77動小数点演q。
の丸め処理方法及び浮動小数点6ii算例外の検出許可
のモートを設定する浮動小数点演算モー1′制flll
レジスタ(PMC)と、浮動小数点演算結果に幻するフ
ラグ、浮動小数点例外の発生状態を示すステータスビッ
トからなる浮動小数点演算状態語(PSW)とがある。
命令の演算対象となるオペラン1′が即(直である場合
は、オペランドアドレス計算部+15がら即値が入力さ
れる。また、命令の演算対象となるオペランドがメモリ
上のデータである場合は、アドレス計算部+15で計算
されたアドレスがオペランドアクセス部120へ出力さ
れ、内蔵データキャッシュまたは外部からフェッチした
オペランドが)7動小数点演算部118に入力される。
オペランドを内蔵データキヤノンユ、外部のデータキヤ
ノンユ107.108あるいは主メモ’J1.09ヘス
ドアする必要がある場合には、マイクロプログラムの指
示によりオペランドアクセス部120ヘデータを出力す
る。ストア動作では浮動小数点演算部118と整数演算
部117とが協調し゛C動作し、オペランドアクセス部
120に対して整数演lγ部117から側ベラントのア
ドレスが出力され、浮動小数点演算部】】8からオペラ
ンlが出力される。この際、PC,J算部11Gからは
そのストア動作を行った命令のPC値がオペランドアク
セス部120へ出力される。
(3,10) rオペランドアクセス部」オペランドア
クセス部120には、オペランドアドレスのアドレス変
換機構、データバッファ、データ用TLR,ストアバソ
ファ、オペランドブレイクポイントレジスタ及びそれら
の制御部がある。
データバッファはモード切替えにより内蔵データキャソ
ンユまたはコンテキスト退避用メモリとして動作する。
データバッファを内蔵データキャノソユとして動作させ
る場合、データのロード動作ではオペランドアドレス9
1算部115または整数演算部117から出力されたロ
ートすべきデータの論理アドレスが物理アドレスに変換
され、内蔵データキヤノンユからデータがフェッチされ
て整数演算部+17あるいは浮動小数点波lγ部118
に人力される。
内蔵データキャッシュがミスした場合には、アドレス入
出力部119へ物理アドレスが出力されて外部へのデー
タアクセスが要求され、データ入出力部】22を通して
入力されたデータが内蔵データキャッシュに登録される
データのストア動作においては、整数演算部117から
出力されたストアずべきデータの論理アドレスが物理ア
ドレスに変換され、整数演算部117あるいは浮動小数
点演算部118から出力されたデータが内蔵データキャ
ッシュにストアされると共に、ストアバッファを通して
アドレス入出力部119へ物理アドレスが出力され、デ
ータ入出力部122を通してデータが外部へ出力される
ストア動作でミスが発生した場合にはデータの更新は行
われない。ストアバッファではストアすべきデータとそ
のアドレス、更にそのストア動作を行った命令のPC値
とが1組として管理される。
ストアバッファでのストア動作は先入れ先だし制御方式
で管理される。
データ用TLBがミスした場合のページングによるアl
゛レス変摸及びデータ用TLBの更新もオペランドアク
セス部120の内部の制御回路により行われる。また、
メモリアクセスアドレスがメモリ空間にマツピングされ
ているI/ o GW域に入るか否かのチエツクも行わ
れる。
また、データバッファを内蔵データキャンンユとして動
作させる場合、本発明のデータ処理装置がハスウォッチ
モードであれば、アドレス入出力部119を通して人力
された物理アドレスがヒツトする内蔵データキャッシュ
のエントリは無効化される。
(3,1i) rアドレス入出力部コ アドレス入出力部1】9は命令フェッチ部111 とオ
ペラン1′アクセス部120とから出力されたアドレス
を本発明のデータ処理装置100の外部へ出力する。ア
ドレスの出力は本発明のデータ処理装置100で定めら
れたバスプロトコルに従って行われる。ハスプロトコル
の制御はアドレス入出力部119内にある外部バスff
111f11回路が行う。外部バス制御回路ではページ
不在例外またはハスアクセス例外外部割込みの受付も行
う。
また、本発明のデータ処理装置100以外の外部デバイ
スがバスマスクになっており、本発明のデータ処理装置
lOOがハスウォッチモードであれば外部デバイスがデ
ータライトサイクルを実行した+Q 合!=7ドレスハ
ス102上へ出力されたアドレスを取込んで命令フェッ
チ部111 とオペランドアクセス部120とへ転送す
る。
(3,12) rデータ入出力部」 データ入出力部ビットはオペランドのロード動作の際に
データバス102からデータを取込んでオペランドアク
セス部120へ転送し、またオペランドのストア動作の
際にオペランドアクセス部120から出力されたオペラ
ンドをデータバス102へ出力する。データキャッシュ
107.108のアクセス方法には、1つのアドレスに
対して64ビットのデータをアクセスする標準アクセス
モートと、1つのアドレスに対して4回連続で64ビッ
トのデータをアクセスするクワットアクセスモートとが
あり、いずれの場合もデータ入出力部ビット はオペラ
ンドアクセス部120と外部のメモリとで送受されるデ
ータの入出力を制御する。
(以 下 余 白) (4)「パイプライン処理」 本発明のデータ処理装置100は各種のハ、ファ記憶装
置と、命令バス1.03及びデータバス102を使用し
たメモリの効率的アクセスとにより、命令をパイプライ
ン処理して高性能に動作する。ここでは、本発明のデー
タ処理装置100のパイプライン処理方法について説明
する。
(,1,1,)  rパイプライン機構」本発明のデー
タ処理装置100のパイプライン処理8!横を第5図の
模式図に示す。
本発明のデータ処理g 71 ] 00のパイプライン
処理機構は、命令のブリフェッチをjiう命令フェッチ
ステージ(IFステージ)311  命令のデコートを
行うデコードステージ(Dステージ)32.  オペラ
ンドのアドレス旧算を行うオペランドアドレス計算ステ
ージ(Aステージ)33.  マイクロRO門アクセス
(特にRステージ37と称す)とオペランドのブリフェ
ッチ(特にOFステージ38と称す)とを行うオペラン
ドフェッチステージ(Fステージ)34命令の実行を行
う実行ステージ(Eステージ)35゜メモリオペランド
のストアを行うストアステージ(Sステージ)36の6
段構成でパイプライン処理を行う。なお、Sステージ3
Gには3段のストアバッファがある。
各ステージは他のステージとは独立に動作し、理論上は
6つのステージが完全に独立動作する。
Sステージ3G以外の各ステージは1回の処理を最小1
クロツクで行うことができる。Sステージ36は1回の
オペランドストア処理を最小2クロックで行うことがで
きる。従って、メモリオペランドのス]・子処理が行わ
れない場合、理想的にはlクロックごとに次々とパイプ
ライン処理が進行する。
本発明のデータ処理装置100にはメモリーメモリ間′
64算あるいはメモリ間接アドレッシング等、基本パイ
プライン処理1回だけでは処理が行えない命令があるが
、これらの処理に対してもなるべく均衡したパイプライ
ン処理が行えるように設計されている。複数のメモリオ
ペランドを有する命令に対してはメモリオペランドの数
に基づいてデコード段階で複数のパイプライン処理単位
(ステ7プコード)に分解してパイプライン処理を行う
IFステージ31からI〕ステージ32へ渡される情報
は命令コードそのものである。
Dステージ32からAステージ33へ渡される情弗は命
令で指定された演算に関する情報(D=+−F旧と称す
)と、オペランドのアドレス計算に関係する情v[:(
Aコート42と称す)と、処理中の命令のプログラムカ
ウンタ値(I’C)との3つである。
へステージ33力\らFステージ34へ渡される情(侵
はマイクロプログラムルーチンのエントり番地マイクロ
プログラムへのバラメークなどを含むRコード43と、
オペランドのアドレス、アクセス方法指示情報等を含む
Fコード44と、処理中の命令のブログラムカウンク(
直(PC)との3つである。
Fステージ34からEステージ35へ渡される情報は演
算制御情報、リテラル等を含むEコード45と、オペラ
ンド、オペランドアドレス等を含むSコード46a、 
46bと、処理中命令のプログラムカウンタ値(PC)
との3つである。Sコード46a、 46bはア]・レ
ス46a とデータ46b とからなる。
Eステージ35からSステージ36へ渡される情報はス
トアずべき演算結果であるWコード47a、 47bと
その演算結果を出力した命令のプログラムカウンタ(直
(PC)との2つである。Wコート47a、 47bl
まアドレス47a とデータ47b)とからなる。
トレース動竹中はオペランドストアが行われなくても、
実行した命令のP C(IfiがEステージ35からS
ステージ36へ渡される。
Eステージ35以前のステージで検出されたEITはそ
のコードがEステージ35に到達するまでEIT処理を
起動しない。Eステージ35で処理されている命令のみ
が実行段階の命令であり、IFステージ31〜Fステー
ジ34で処理されている命令は未だ実行段階に至ってい
ないからである。従って、Eステージ35以前で検出さ
れたEITはそれが検出されたことがステップコード中
に記録されて次のステージに伝えられるのみである。S
ステージ36で検出されたEITはEステージ35で処
理中の命令の処理が完了した時点またはその命令の処理
がキャンセルされた場合に受付けられ、Eステージ35
に戻って処理される。
(4,2)  r各パイプラインステージの処理」各パ
イプラインステージの人出力ステノプコ1には第4図に
示したように便宜−1名前が付与されている。またステ
ップコードはオペレーションコードに関する処理を行い
、マイクロROMのエンI・り番地、Eステージ35に
対するバラメークなど乙こなる系列と、Eステージ35
の処理対象のオペランドになる系列との2系列がある。
また、1)ステージ32からSステージ36までの間で
は処理中の命令のプログラムカウンタ値が受渡されろ。
(4,2,]、)  r命令フエ、デステージ」命令フ
ェッチステージ(IFステージ31)では命令フェッチ
部111が動作する。内蔵命令ギヤ、シュからあるいは
外部メモリから命令をフェッチし、命令−にニーに入力
して、Dステージ32に幻し゛ζ2〜6バイト単位で命
令コードを出力する。命令キューの入力は整置された4
ハイ1−単位で行われる。
標学アクセスモードで外部から命令をフェッチする場合
は整置された4バイトにつき最小2クロックを要する。
クワッドアクセスモートでは16バイトにつき最小5ク
ロツクを要する。内蔵命令キヤノンユがヒ、トシた場合
は整置された8バイI・につき1クロツクでフェッチ可
能である。命令−トニーの出力単位は2バイトごとに可
変であり、1クロツクの間に最大6ハイトまで出力可能
である。
またジャンプの直後には命令キューをバイパスして命令
コード2ハイドを直接命令デコーダに転送することも可
能である。
命令の論理アドレスの物理アドレスへの変換内蔵命令キ
ャッシュ及び命令用TLBの制御、プリフエ’)チ先命
令アドレスの管理1命令キユーの制jnもIFステージ
31で行われる。
(4,2,2)  r命令デコードステージ」命令デコ
ードステージ(Dステージ32)はIFステージ31か
ら入力された命令コードをデコードする。命令コードの
デコードは命令デコード部112のPHWデコーダ、 
NFH−デコーダ及びアドレッシングモードデコーダを
使用して1クロツクに1度の割合で行われ、1回のデコ
ード処理で0〜6バイトの命令コートを消費する (リ
ターンサブルーチン命令の復帰先アドレスを含むステッ
プコードの出力処理等では命令コードを消費しない)。
Dステージ32は1回のデコードでΔステージ33に対
してアドレス計算情報であるAコード42とオペレショ
ンコードの中間デコード結果であるDニー1−41とを
出力する。
Dステージ32ではpc計算部116の制御及び命令キ
ューからの命令コートの出力処理も行う。Dステージ3
2ではブランチ命令及びサブルーチンからのリターン命
令に対して先行ジャンプ処理を行う。
先行ジャンプを行った無条件ブランチ命令に対してはD
コード41もAコード42も出力せず、r)ステージ3
2で命令の処理を終了する。
(4,2,3)  rオペランドアドレス計算ステージ
」オペランドアドレス計算ステージ(Aステージ)33
での処理は太き(2つに分かねる。第1は、命令デコー
ド部112の第2デコーダを使用してオペレーションコ
ードの後段デコードを行う処理で、第2はオペランドア
ドレス計算部54でオペランドアドレスの計算を行う処
理である。
オペレーションコードの後段テじ−ド処理はDコード4
Iを入力とし、レジスタ及びメモリの書込み予約及びマ
イクロプログラムルーチンのエントノ番地及びマイクロ
プログラムに対するパラメータ等を含むRヨー143の
出力を行う。なお、レジスタ及びメモリの書込み予約は
、アドレス51算て参照したレジスタ及びメモリの内容
が、バイブライン上を先行する命令で書換えられてしま
って誤ったア(゛レス計算が行われることを防止するだ
めのものである。
オペランドアドレス計算処理はAコート42を入力とし
、Δコード42に従ってオペランドアドレス計算部54
でオペランドのアドレス計算を行い、その計算結果をF
コード44として出力する。またジャンプ命令に対して
はジャンプ先アドレスの計算を行って先行ジャンプ処理
を行う。この際、アドレス51算に伴うレジスタの読出
し時に書込み予約のチエツクが行われ、先行命令がレジ
スタまたはメモリに対して書込み処理を終了していない
ために予約があることが指示されれば、先行命令のLi
ステージ35での書込み処理が終了するまで待機状態に
なる。
Aステージ33では、Dステージ32で先行ジャンプを
行わなかったジャンプ命令に対して先行ジャンプ処理を
行う。絶対値゛r[・レスへのジャンプあるいはI/ジ
スタ間接アドレノソングのジャンプ等に幻してはΔステ
ージ33で先行ジャンプが行われる。先行ジャンプを行
った無条件ジャンプ命令に幻してはRコード43やFコ
ート44は出力されず、Aステージ33で命令の処理を
終了する。
(11,2,4)  rマイクロROMアクセスステー
ジ」オペラントフェッチステージ(Fステージ)34で
の処理も大きく2つに分かれる。第1はマイクロROM
のアクセス処理であり、特にRステージ37と称す。第
2はオペランドプリフェッチ処理であり、特に叶ステー
ジ38と称す。Rステージ37とOFステージ38とは
必ずしも同時に動作するわけではなく、データキャッシ
ュのミス、ヒツト、データTLBのミス、ヒント等に依
存して、動作タイミングが異なる。
Rステージ37の処理であるマイクロROMアクセス処
理はRコード43に対して次のEステージ35での実行
に使用される実行制御コートであるEニー)・45を作
り出すためのマイクロROMアクセスとマイクロ命令デ
コート処理とである。
1つのRコードに対する処理が2つ以上のマイクロプロ
グラムステノブに分解される場合、第1マイクロROM
部113及び第2マイクロI?OM部114がEステー
ジ35で使用され、次のRコード43がマイクロROM
アクセス待ちになる場合がある。Rコード43に対する
マイクロROMアクセスが行われるのは、Eステージ3
5でのマイクロROMアクセスが行われない場合である
。本発明のデータ処理装置100では多くの整数演算命
令が1マイクロプログラムステツプで行われ、多くの浮
動小数点演算命令が2マイクロプログラムステツブで行
われるため、実際にはRコード43に対するマイクロR
OMアクセスが次々と行われる可能性が高い。
(4,2,5)  rオペラントフェッチステージ」オ
ペラントフェッチステージ(OFステージ)38はFス
テージ34が行う上述の2つの処理の内のオペラントブ
リフェッチ処理を行う。
OFステージ38では、Fコード44の論理アドレスを
データTLBで物理アドレスに変換してその物理アドレ
スで内蔵データキャッシュあるいは外部のメモリをアク
セスしてオペランドをフェッチし、そのオペランドとF
コード44として転送されζきたその論理アドレスとを
糺合わセでSニー)’46a46bとして出力する。
1つのFコード44では8ハイド境界をクロスしてもよ
いが、8バイト以下のオペランドフェ・ノチを指定する
。Fコード44にはオペランドをアクセスするか否かの
指定も含まれており、Aステージ33が計算したオペラ
ンドアドレス自体あるいは即値をEステージ35へ転送
する場合にはオペランドプリフェッチは行われず、Fコ
ード44の内容をSコード46a、 46bとして転送
する。ブリフェッチしようとするオペランドとEステー
ジ35が書込み処理を行おうとするオペランドとが一致
する場合は、オペラントプリフェッチは内蔵デークキャ
ノシュからも外部からも行われず、バイパスして行われ
る。
(4,2,6)  r実行ステージj 実行ステージ(Eステージ)35はEコード45とSコ
ード46a、 46bとを入力として動作する。このE
ステージ35が命令を実行するステージであり、Fステ
ージ34以前のステージで行われた処理は全てト〕ステ
ージ35のための面処理である。Eステージ35でジャ
ンプが実行されたり、FIT処理が起動されたりした場
合は、IFステージ31〜Fステージ34までの処理は
すべて無効化される。Eステージ35はマイクロプログ
ラムにより制御され、Rコート45にて示されたマイク
ロプログラムルーチンのエンドす番地からの一連のマイ
クロ命令を実行′3ることにより命令を実行する。
Eコート45には整数演算部117を制御するコード 
(特にElコードと称す)と浮動小数点+8算部118
を制御するコード(特にEFコニーと称す)とがある。
ElコードとEFコニーとは独立に出力されることも可
能であり、両コートが独立して出力された場合には、E
ステージ35では整数演算部117 と浮動小数点演算
部118とが並列に動作づる。例えば浮すJ小数点演算
部118でメモリオペランドを持たない浮動小数点/J
ii’Jγ命令を実行する場合、この動作は整数演算部
117の動作と並行して実行される。
整数演算であっても浮動小数点演算であっても、マイク
ロROMの読出しとマイク1コ命令の実行とはパイプラ
イン化されて行われる。従って、マイクロプログラムで
分岐が発生した場合は1マイクロステ、プの空きが生し
る。Eステージ35ではAステージ33が行ったレジス
タまたはメモIノに対する書込み予約をオペランドの書
込みの後に解除する。
各種の割込は命令の切口のタイミングにおいてEステー
ジ35が直接受付け、マイクロプログラムにより必要な
処理が実行される。その他の各種EATの処理もEステ
ージ35でマイクロプログラムにより行われる。
演算の結果をメモリにストアする必要がある場合は、E
ステージ35はSステージ36へWコード47a471
]とストア処理を行う命令のプログラムカウンタ値との
両方を出力する。また、トレース動作中はオペランドの
ストア動作とは関係なしに、実行した命令のプログラム
カウンタ値がEステージ35からSステージ36へ出力
される。
(4,2,7)  rオペランドストアステージ」オペ
ランドストアステージ(Sステージ)3GはWコードの
論理アドレス47aをデータTLBで物理アドレスに変
換し、そのアドレスでWコードのブタ47bを内蔵デー
タギャソシュにストアする。
同時にWコード47a、 47bとプログラムカウンタ
値とをストアバッファに入力し、デ〜りTLBから出力
された物理アドレスを用いて外部のメモリへWコードの
データ47bをストアする処理が行われる。
Sステージ36の動作はオペランドアクセス部120で
行われ、データTLBまたは内蔵データキャッシュがミ
スした場合のアドレス変換処理及び内蔵データキャソシ
ェの入替え処理も行う。
オペランドのストア処理でBITが検出された場合は、
ストアバソファにWコード4”la、 47bとプログ
ラムカウンタ値とが保持されたままの状態で、Eステー
ジ35にBITの検出が通知される。
(4,3)  r各バイブラインステージの状態制御」
バイブラインの各ステージは入力ランチと出力う、チと
を有し、他のステージとは独立に動作することを34本
とする。各ステージは1つ前に行った処理が終了し、そ
の処理結果を出力う、チから次のステージの入力ランチ
へ転送し、自ステージの入力ランチに次の処理に必要な
入力信号が全て揃えば次の処理を開始する。
つまり、各ステージは、1つ前段のステージから出力さ
れてくる次の処理に対する入力信号が全て有効となり、
現在の処理結果を後段のステージの入力ラノチヘ転送し
て出力ラソチが空になった場合に次の処理を開始する。
各ステージが動作を開始する直前のタイミングで入力信
号が全て揃っている必要がある。入力信号が揃っていな
い場合には、そのステージは待ち状態(入力待ち)にな
る。出力ラノチから次のステージの入力ランチへの転送
が行われる場合には次のステージの人カラノチが空き状
態になっている必要があり、次のステージの入カラノヂ
が空き状態でない場合もパイプラインステージは待ち状
態(出力待ち)になる。また、キャノソユ、TLBがミ
スしたり、パイプラインで処理中の命令相互間にデータ
干渉が生したような場合には、1つのステージの処理に
複数クロックが必要となり、パイプライン処理が」R延
する。
(以 下1余 白) 又 (5)「データ演算部の動作の詳細な説明」第3図は本
発明のデータ処理装置100の整数演算部117の詳細
なブロック図であり、オペランドアクセス31算部II
5.  浮動小数点演算部118.  オペランドアク
セス部120も共に示されている。
SAレジスタ210はオペランドアドレス計算部115
から整数演算部117へ出力されるオペランドアトルレ
ス及び即値を保持するレジスタである。
AAレジスタ211 は整数演算部+17からオペラン
ドアクセス部1.20ヘアドレスを出力するためのレジ
スタであり、保持内容に対するL 2.4.8のインク
リメント/デクリメント機能を有する。8をインクリメ
ント/デクリメントする機能は、8バイト浮動小数点数
を浮動小数点レジスタとメモリとの間で転送する際に4
バイトの2つの整数を汎用レジスタとメモリとの間で同
時に転送する場合に有意義な機能である。
レジスタファイル213は整数演算部117内の種々の
データを保持する。またレジスタファイル213は主A
LU215と補助ALU212とにそれぞれ3木の4バ
イトのバスで結合されており、2つのレジスタ上のオペ
ランドを対象として加算、比較等の演算を主ALU21
5または補助ALU212に行わせることが可能である
DDレジスタ213は整数演算部117とオペランドア
クセス部120との間でデータを入出力するためのイン
タフェイスレジスタであり、8ハイドのDI)ハス12
3でオペランドアクセス部と結合している。
FFレジスタ217は整数演算部117と浮動小数点/
i1mW部118とのインタフェイスレジスタである。
プライオリティエンコーダ部21.4は、ビット列中の
先頭の“1″または“O″の位置をサーチしたり、連続
した2ビットが“ビまたは°0”であるフィールドの先
頭の位置をサーチする。
レジスタ番地指定回路218は、第1マイクロROM部
113の指示に従って第1マイクロROM部113が指
定したレジスタ番地またはプライオリティエンコーダ部
214が指定したレジスタ番地に従ってレジスタファイ
ル213に対するデータの読み書きを制御する。
以下プライオリティエンコーダ部214 とレジスタ番
地指定回路218との詳細構成及びLDM命令と57M
命令との動作を述べる。
(5,1)  rプライオリティエンコーダの詳細構成
」第1図はプライオリティエンコーダ部2+4の詳細な
ブロック図である。
プライオリティエンコーダ部214 はビット列生成回
路1.オフセンl−値指定回路2,2つのプライオリテ
ィエンコード回路3及び4.エンコード結果判定回路7
等にて構成されている。
ビット列生成回路lはSlバス221から人力された1
6ビットまたは32ビットのピッ]−列を保持する機能
、“0″と”1”とを反転する機能、ビット順序を逆転
する機能、隣接ビ・7ト間の論理積をとる機能を有し、
これらの変換が加えられたビット列を第1エンコード回
路3及び第2エンコード回路4へ出力する。
第2図はビット列生成回路1の詳細な構成を示すブロッ
ク図である。
S1バス221から入力された値はそのままセレクタ】
0に入力される他、インバータにより反転されたビット
列としてもセレクタ10に入力される。セレクタ10は
反転されたビット列または反転されていないビット列の
いずれかを選択して出力し、人力ラソチ11に保持させ
る。
入力ラノチ11の出力は必要に応じてビット正順逆順指
定回路12でビット順序を逆転して第1エンコード回路
3に人力される。ビット正順逆順指定回路12の出力は
また、論理積回路13により各ビット〜についてそれぞ
れの上位側に隣接するビット−との論理積がとられて第
2エンコード回路4に入力される。
オフセント値指定回路2はS2バス222から入力され
た5ビットのオフセント値を保持し、その値を第1エン
コード回路3及び第2エンコード回路4へ出力する。ま
た命令デコード部2は、エンコード結果判定回路7から
出力されるオフセット値を入力し、その値に“1″また
は°2”を加算する加算機能がある。
第1エンコード回路3と第2エンコード回路4とは同一
に回路構成されたプライオリティエンコード回路であり
、ビット列生成回路1から人力されたピノ)・列を対象
としてオフセット指定回I?、2で指定されたビット位
置以腎でサーチしてE初の“1”のビット位置を出力す
る組合l!論理回路である。
エンコード結果判定回路7は第1エンコー1−回路3と
第2エンコード回路4とから出力されるエンコード値と
AAハス122の下位3ビットとを人力とし、オフセッ
ト値指定回路2ヘエンコート結果と加算すべき値とを出
力し、レジスタ番地指定回路218へレジスタ番号と2
つのレジスタとを同時アクセスすべきか否かを示す並列
アクセス(3号8を出力する他、第1エンコード回路3
から出力されたエンコード値をDIハス225へ出力す
ることもできる。また、エンコード結果判定回路7は第
1エンコード回路3の出力の”1”と“O”とを反転し
た値をレジスタ番地指定回路218へ出力することもで
きる。
並列アクセス信号8はAAババス22の下位3ビットが
すべて“0”で且つ第1エンコード回路3と第2エンコ
ード回路4とのエンコード結果が同し値である場合にア
サートされる。
(5,2)  rレジスタ番地指定回路」第8図はレジ
スタ番地指定回路218の詳細な構成を示すブロック図
である。
レジスタ番地指定回路218は、第1マイクロROM部
113で指定されたレジスタ番地またはプライオリティ
エンコーダ部214で指定されたレジスタ番号をデコー
ドし、S1バス221.  S2ハス222.  旧ハ
ス225.  D3バス226に対するレジスタファイ
ル213の入出力を制御する。
第1マイクロRO?1部113からは汎用レジスタと作
業用レジスタとのアクセスが可能で各バスについて5ピ
ントで入力または出力するレジスタ番地が指定される。
プライオリティエンコーダ部214からはレジスタファ
イル213中の入力または出力を行う汎用レジスタ番号
が4ビットで指定され、レジスタ番地指定回路218の
セレクタ(17,18,1920)への入力段階で上位
に“θ″を拡張してレジスタ番地とされる。
第1マイクロROM部113で各ハス毎に指定されたレ
ジスタ番地とプライオリティエンコーダ部214て指定
されたレジスタ番号とはセレクタ17.1819、20
によりいずれかが1i(1尺されてそれぞれのハス用の
デコード回路+7’、 18’、 19’、 20’へ
入力される。
本発明のデータ処理装置]00では、転送命令あるいは
加算命令等の重線な命令では第1マイクロROM部+1
3から出力されたレジスタ番地に従って各バスに入出力
するレジスタを制御するため、レジスタ番地が各ハス毎
のテコ−l−回路17’、 1819’、 20’でデ
コート′され、その出力信号に従ってレジスタファイル
216をアクセスするが、一部の高機能命令ではデコー
ド回路17’、 18’、 19’、 20から出力さ
れた制御信号をシフトすることにより、本来のデコード
結果とは異なるデコード結果にてレジスタファイル21
3をアクセスする。
S2バス222とD3バス226とは高機能命令の実行
に際して2つのレジスタを並列アクセスする場合に、プ
ライオリティエンコーダ部214により指定されたレジ
スタ番号より1つ大きなレジスタ番号のレジスタをアク
セスするためにデコート結果を1ビット上位側ヘシフト
してレジスタファイル2】3へ出力する。この機能はデ
コーダ18゛  と20゛  とがデコート結果のピノ
I・列を出力する制御信号線群と、そのピノ)・列を1
ビット」二位側にシフトシたビット列を出力する制御信
号線群とをセレクタ151Gでそれぞれlビット−シフ
トしたビット−列を出力する制御信号線群をIRするこ
とにより実現される。
またS1ハス221 は高機能命令の実行に際して2つ
のレジスタを並列アクセスする場合、プライオリティエ
ンコーダ部214により指定されたレジスタ番号より1
つ小さなレジスタ番号のレジスタをアクセスするために
デコーダ17”のデコート′結果を1ビット下位側へシ
フ]・シてレジスタファイル213へ出力する。この機
能はデコーダ17”がデコード結果のビット列を出力す
る制御信号線群とそのビット列を1ビット下位側にシフ
トしたビット列を出力する制御信号線群とをセレクタ1
4でそれぞれIビットシフトしたビット列を出力する制
御信号線群を選択することにより実現される。
(5,3)  rLDjl命令の動作」第30図は1.
0M命令のオペレーションコートの一例を示す模式図、
第32図はLMD命令を実行する場合の整数演算部11
7の動作手順を示すフローチャー 1−である。
このIJID命令は6個の汎用レジスタR1,I?4.
 R5R6,R7,R8にスタック領域から6個の4バ
イトデータをロードする命令である。本発明のデータ処
理装置100でこの命令を実行する場合、第1マイクロ
ROM部113の制御により第32図に示すフロチャー
トに従って整数′ej算部117が動作する。
この例ではビット列生成回路1でレジスタ番号ビ010
0111110000000”が変換され、第1エンコ
ード回I?i3がエンコードするビット列は“0100
1111100000000000000000000
000”となり、第2エンコード回路4がエンコードす
るビット列は“000011110000000000
00000000000000”となる。これらのビッ
ト列をサーチすると、レジスタ番号「45.7」で2つ
のサーチ結果が一致するが、レジスタ番号「4」の場合
はAAハス122の下位3ビットが“0”ではないため
、レジスタl?1とR4とには1回の操作で4バイトず
つデータがロートされ、レジスタR5とR6,R7とR
8にはそれぞれ並列にデータがロードされることとなる
レジスタR5とR6,R7とR8を同時にアクセスする
場合、エンコード結果判定回路7から出力される並列ア
クセス信号8がアサートされる。この並列アクセス信号
8に従って、デコード結果のピノ]・列を1ビット上位
側ヘシフl−したビット列が転送される制′4n綿をセ
レクタ16が選択することにより、エンコード結果判定
回路7から出力されたレジスタ番号より1つ大きな番号
のレジスタに値がロードされる。
(5,4)  rsT門命全命令作」 デスティネーションのアドレッシングモードがa−sp
モード以外のSTM命令を実行する場合、10M命令と
同しフォーマントレジスタリストを処理するだめにプラ
イオリティエンコーダ部214の動作はLD?I命令の
場合と同様である。また、レジスタ番地指定回路218
ではS2バス222へ出力するレジスタ番地として、入
力されたレジスタ番地よりも1つ大きな番地のレジスタ
をアクセスするため、デコート結果のビット列を1ビッ
ト上位側へシフ]・シたビット列が転送される制御線を
セレクタ15が選択する。
デスティネーションのアドレッシングモードが1j−5
t’モー F テあるStM命令を実行する場合、1.
0M命令と異なるフォーマントレジスタリストを処理す
るので、プライオリティエンコーダ部214の動作が一
部異なる。この場合、エンコード結果判定回路7からオ
フセット値指定回路2へは第1エンコード回路3から出
力された値がそのまま転送されるが、レジスタ番地指定
回路2+8へは第1エンコード回路3から出力された値
の“0”と“1”とを反転した値が出力される。つまり
、オフセット値指定回路2にはサーチしてエンコードし
たピント番号そのものが転送されるが、レジスタ番地指
定回路218へは捜査してエンコードしたビット番号に
対応するレジスタ番号が出力されることになる。
またこの場合、レジスタ番地指定回路218では、並列
アクセス信号8がアサートされた場合、S2ハス222
へは人力されたレジスタ番地のレジスタから値が出力さ
れ、S1バス221へは人力されたレジスタ番地より1
つレジスタ番地が小さいレジスタから値が出力される。
この機能はデコード結果のビ・7ト列を1ビット下位側
へシフトしたビット列を転送する制御線をセレクタ14
が選択することにより行われる。
例えば、第31図に示した37M命令の例では第1エン
コード回路3のサーチ対象となるビット列は’0000
0001111.10010000000000000
0000″であり、第2エンコード回路4のサーチ対象
となるビット列は“0000000111100000
0000000000000000″である。最初のエ
ンコード動作では、エンコード結果判定回路7へは第1
エンコード回路3と第2エンコード回路4とからは共に
値「7」が入力され、AAババス22からは出力される
アドレス“)l’00001FFB″の下位3ビ・7ト
の“0”が人力される。エンヨー1結果1’ll定回路
7はこれらの入力に基づいてオフセット指定回路には値
「7」と加Iγ埴「2」とを出力し、レジスタ番地指定
回路218へは[71を2進数表現した値”0111”
の反転である“1000”に対しt5するレジスタ番号
「8」を出力し、並列アクセス信号8をアサートする。
レジスタ番地指定回路218では人力されたレジスタ番
号「8」をデコードし、S2ハス222−\はレジスタ
R8からデータを読出し、S1ハス221へはデコード
結果を1ビット下位(jjllへシフトしたビy l・
列を転送する制御綿をセレクタ14で選択することによ
りレジスタR7からデータを読出す。S1バス221と
S2ハス222 とへ読出された2つのデータはDDレ
ジスタ216で連結され、1つの8バイトデータとして
DOババス通じてオペランドアクセス部120へ転送さ
れ、内蔵データキャ・7シユあるいは外部メモリにスト
アされる。
(6)「外部アクセス動作」 (6,1)  r入出力信号線」 第7図は本発明のデータ処理装置100の入出力信号を
示す模式図である。
本発明のデータ処理装置100は1fiVccと接地G
ND、  64本のデータピンと32本のアドレスピン
と32本の命令ピン、入力クロックCLKの他に種々の
制御信号を入出力する。
命令アクセスの場合もデータアクセスの場合も、アドレ
スピンには物理アドレスが出力される。
CLKは外部入カクロノクであり、本発明のデータ処理
装置100の動作クロックと同一周波数のクロックであ
る。
データアドレスストローブDASlよアドレスピンへ出
力されたデータアドレスが有効であることを示す。
リードライトR/Wlはデータビンでのハスサイクルが
入力であるか出力であるかを区別する。
データストローブDS雲は本発明のデータ処理袋910
0がデータ入力準備を完了したことまたは本発明のデー
タ処理装置100からデータが出力されたことを示す。
DCIは本発明のデータ処理装置100にデータアクセ
スサイクルを終了してもよいことを通知する信号である
BAT(0:2)は第28図に示す如く、アドレスピン
とデータビンとの値の意味を示す。
命令アドレスストローブIASIIはアドレスピンへ出
力された命令アドレスが有効であることを示す。
命令ストローブI31は本発明のデータ処理装置+00
が命令人力準備を完了したことを示す。
ICIは本発明のデータ処理装置+00に命令アクセス
サイクルを終了してもよいことを通知する信号である。
ホールドリクエストHRE(11は本発明のデータ処理
袋H100にバス権を要求する信−号である。
HACMIは本発明のデータ処理装置100がIIII
E[lllを受付けてバス権を他のデバイスに渡したこ
とを示す信号である。
112EΩ(0:2)は外部割込み要求信号である。
IACJIは本発明のデータ処理装置100が外部割込
みを受付け、割込みベクトルアクセスサイクルを行って
いることを示す信号である。
(6,2)  r外部デバイスのアクセスj本発明のデ
ータ処理装置100を用いた第6図に示すシステム構成
例では、本発明のデータ処理装置100とデータギャノ
ソユ107.108とはデータピンに接続されているデ
ータバス102.  アドレスピンに接続されているア
ドレスバス101の他、RAT(0:2)、 DASI
I、 R/W#、 DS#、 DIJ とでも接続され
ている。本発明のデータ処理装置100と命令キヤ、。
ツユ106とは命令ピンに接続されている命令ハス10
3  アI・レスハス101 の他、BAT(0:2)
、 IAS#l5II、 lciとでも接続されている
クロックCLKはシステム全体に供給されシステムの基
本タイミングを決定する。
本発明のデータ処理装置100は、標titアクセスモ
ードでのハスアクセスではデータバス102を用いたデ
ータアクセスと命令ハス103を用いた命令アクセスと
を、それぞれ十分高速な外部メモリに対して外部人力ク
ロックCL、にの2サイクルに1度の割合で行える。
また本発明のデータ処理装置100は、クワノ)・アク
セスモートでのハスアクセスではデータバス102を用
いたデータアクナスと命令ハス103を用いた命令アク
セスとを、それぞれ十分高速な外部のメモリに対して外
部人力クロックCLKの5サイクルに4度の割合で行え
る。
アドレスバス101 はデータキャッシュ107.10
8のアクセスと命令キャッシュ106のアクセスとの両
方に利用される。
(以 下 余 白) (7)「本発明の他の実施例」 」上記実施例では2つのレジスタを同時にアクセスする
ために同一レジスタ番号を2つのデコーダでそれぞれデ
コードし、その内の一方のデコート結果を転送する制御
綿をlビットずらせたデコード結果を転送するように構
成したことにより、デコードしたレジスタ番号の隣のレ
ジスタが選択されてレジスタ番号が連続する2つのレジ
スタがアクセスされるが、一方のデコーダでプライオリ
ティエンコーダ部から出力されたレジスタ番号に1を加
算または減算した値をデコードして、レジスタ番号が連
続する2つのレジスタをアクセスする構成を採ることも
可能である。
また、上記実施例では”1”(または“0”)が2ビッ
ト連続する位置をサーチしてそのピント位置をエンコー
ドすることにより2つのレジスタを同時に操作するよう
に構成しているが、連続する3つまたはそれ以上の1′
(または“0”)をサーチしてそのビット位置をエンコ
ードすることにより3つまたはそれ以上のレジスタを同
時に提作するような構成を採ることも可能である。
また、上記実施例ではレジスタリス;・で“1”のし、
)・に対応するレジスタが操作対象となるレジスタであ
る命令の例を述べたが、レジスタリストで“0”のビッ
トに対応するレジスタが操作対象となるレジスタである
命令でもプライオリティエンコーダに人力するサーチ対
象となるピノI・列を反転して入力すれば全く同様に処
理可能である。
また、上記実施例では複数データ転送命令としてし叶命
令とSTM命令とを例として説明したが、プロシージャ
の人口で複数のレジスタ中のデータの退避を行うと共に
スタックフレームの形成を行う命令、あるいはプロソー
ジャの出口で複数のレジスタへのデータの復帰とスタッ
クフレームの解消とを行う命令等、レジスタリストを用
いて転送すべきレジスタを指定する命令に関していずれ
も」1記実施例と同様の処理が可能である。
[発明の効果] 以上に詳述した如く、本発明のデータ処理装置の第1の
発明は、複数データストア命令をデコードする命令デコ
ーダと、命令デコーダから出力された?MDデーデート
ア命令中のレジスタリストを保持するレジスタと、レジ
スタリストをサーチして“1”(または“0”)の先頭
の位置を2進数にエンコードする第1のエンコード”手
段と、レジスタリストをサーチして“1”(または“0
”)が2ビット連続する位置を2進数にエンコードする
第2のエンコード手段と、nビット幅の複数のレジスタ
にて構成されたレジスタファイルと、内Y銭データート
ヤノシュまたは夕(部メモリへ転送されるデータを保持
する2nビットのデータレジスタとを有していて命令デ
コーダがデニーtrbだ複数データストア命令を実行す
る命令実行手段とを備え、命令デコーダが複数データス
トア命令をデコードした場合に、命令デコーダから出力
されたレジスタリストを、第1のエンコード手段でサー
チして“1″(または“0”)の“1”の先頭の位置を
2進数にエンコードすると共に、第2のエンコード手段
でもサーチして“1”(または“0”)が2ビット連続
した位置を2進数にエンコードする。そして、“1″(
または“0″)の先頭のピノ(・が単独のビットであっ
て2つのプライオリティエンコーダのエンコード結果が
胃なる場合は、“1″(または“0“)の先頭のビアl
−位置に対応するレジスタからnビットのデータをデー
タレジスタへ転送し、内蔵データキャソンユまたは外部
メモリヘスドアする。“1“(または”0”)が2ビッ
トが連続していて両エンコード手段のエンコード結果が
一敗する場合は、“1”(または”0“)の先頭のビッ
ト位置とその隣のビットとに対応する2レジスタからそ
れぞれnビットのデータがデータレジスタへ転送され、
2つのnビy I・のデータが連結されて2nビットの
データとして内蔵データキヤノンユまたは外部メモリに
ストアされる。このため、連続したレジスタ番号の複数
のレジスタを含む?!数のレジスタの内容をメモリに退
避する場合、連続したレジスタ番号の2つのレジスタの
内容が同時に処理されるので、複数のレジスタ内容の退
避が高速実行される。通常、コンパイラでは退避すべき
データは連続した番号のレジスタに割振る場合が多く、
従来のデータ処理装置に比べ本発明のデータ処理装置は
最大で2倍の速度でレジスタ中のデータを退避すること
が可能になる。
また第2の発明は、複数データロード命令をデコードす
る命令デコーダと、命令デコーダから出力された複数デ
ータロード命令中のレジスタリストを保持するレジスタ
と、レジスタリストをサチして“I”(または“0′)
の前頭の“1″を2進数にエンコードする第1のエンコ
ード手段と、レジスタリストをサーチして“1”(また
は“0”)が2ビット連続する先頭の1″を2進数にエ
ンコードする第2のエンコード手段と、nビット幅のレ
ジスタ複数にて構成されるレジスタファイルと、内蔵デ
ータキャッシュまたは外部メモリからフェッチしたデー
タを保持する2nビットのデータレジスタとを有してい
て、命令デコーダがデコードした複数データロード命令
を実行する命令実行手段とを備え、命令デコーダが複数
データロード命令をデコードした場合に、命令デコーダ
から出力されたレジスタリストを、第1のエンコード手
段でサーチして“1″りまたは“01)の先頭の位置を
2進数にエンコードすると共に、第2のエンコード手段
でもサーチして“1”(または“O”)が2ビット連続
した先頭の位置を2進数にエンコードする。そして、“
1″(または“0”)の先頭のビットが単独のビットで
あって2つのエンコード手段のエンツー1′結果が異な
る場合は、内蔵データキャッシュまたは外部メモリがら
nビットのデータがデータレジスタにフェッチされてレ
ジスタリストの“1″(または”0”)の先頭のビット
−位置にJ4応するレジスタに転送される。“ド(また
は“0”)の先頭が2ビットが連続して”l’(または
”0″)であって2つのエンツー1手段のエンコード結
果が一敗する場合は、内蔵データキヤノンユまたは外部
メモリから2nビットのデータがブタレジスタにフェッ
チされて」1位の4バイトと下位の4バイトとに分割さ
れた後に、“1”(または“0”)の先頭のビット位置
とその隣のビy l・とに対応する2レジスタへそれぞ
れ転送される。このため、連続したレジスタ番号の複数
のレジスタを含む複数のレジスタにメモリからデータを
ロードする場合、連続したレジスタ番号のレジスタにロ
ードすベき2つデータが同時に処理されるので、高速に
複数のレジスタにデータをロードすることが可能である
。コンパイラでは一連の手続きで使用するデータを連続
した番号のレジスタに割振ることが多いため、従来のデ
ータ処理装置に比べて本発明のデータ処理装置は最大で
2倍の速度でレジスタへデータをロートすることが可能
になる。
【図面の簡単な説明】
第1図は本発明のデータ処理装置のプライオリティエン
コーダ部の詳細な構成を示すブロック図、第2図は本発
明のデータ処理装置のプライオリティエンコーダ部の構
成要素であるビット列生成回路の詳細な構成を示すブロ
ック図、 第3図は本発明のデータ処理装置の整数演算部の構成を
示すブロック図、 第4図は本発明のデータ処理装置の全体構成を示すブロ
ック図、 第5図は本発明のデータ処理装置のバイブライン処理ス
テージの説明のための模式図、第6図は本発明のデータ
処理装置を用いたデータ処理システムの構成例を示すブ
ロックl、第7図は本発明のデータ処理装置の入出力(
1I号ピンを示す模式図、 第8図は本発明のデータ処理装置のレジスタ番地指定回
路の詳細な構成を示ずプロ、り図、第9図、 第10図
、第1I図1第12図及び第131:2+は本発明のデ
ータ処理装置の命令のフォーマットを示す模式図、 第141’J、第15し1.第16図、第17図、第1
8図、第19図、第20図、第21図1第22図、第2
3図、第24図第25図、第26図及び第27図は本発
明のデータ処理装置の命令中のアドレッシングモード指
定部のフォーマントを示す模式図、 第28図は本発明のデータ処理装置の複数データロード
命令であるLl))’l命令のフォーマツ)・を示す模
式図、 第29図は本発明のデータ処理装置の複数データストア
命令である57M命令のフォーマットを示す模式図、 第30図は本発明のデータ処理装置の複数データロード
命令である1、l命令の具体的オペレーションコートの
構成例を示す模式図、 第31図は本発明のデータ処理装置の複数データストア
命令である57M命令の具体的オペレーションコートの
構成例を示す模式図、 第32図[a)、 (b)及びtc)は第30図に示さ
れているLDM命令の具体例を実行した場合に本発明の
データ処理装置の命令実行部が行う処理のアルゴリズム
を示すフローチャー1・である。 1・・・ビット列生成回路  2・・・オフセノ)・埴
指定回路  3・・・第1エンコード回路  4・・・
第2エンコード回路  7・・・エンニーl結果判定回
路17、1B、 IQ 、20・・・セレクタ 14.
15.16・・・セレクタ  17’、 18’、 1
9°、20゛・・・デコード回路  1.09・・・主
メモリ  107.108・・・データキヤノンユ 】
12・・・命令デコード部 1.17・・・整数演算部
 118・・・浮動小数点演算部 212・・・レジス
タファイル 214・・・プライオリティエンコーダ部
 215・・・主^1 218・・・レジスタ番地指定
回路 216・・・l1l)レジスタなお、図中、同一
符号は同一、又は相当部分を示す。

Claims (2)

    【特許請求の範囲】
  1. (1)命令をデコードする命令デコード手段と、ビット
    列を保持するビット列レジスタと、 該ビット列レジスタに保持されているビ ット列中での“1”または“0”のいずれかの先頭の位
    置をサーチしてそのビット位置を 2進数にエンコードした第1のエンコード 値を出力する第1のエンコード手段と、 前記ビット列レジスタに保持されている ビット列中での“1”または“0”のいずれかが2ビッ
    ト連続する先頭の位置をサーチし てそのビット位置を2進数にエンコードし た第2のエンコード値を出力する第2のエ ンコード手段と、 それぞれがnビットのデータを保持する 複数のレジスタにて構成されたレジスタフ ァイルと、 nビットまたは2nビットのデータを保 持するデータレジスタと を有する命令実行手段と を備え、 前記命令デコード手段が、ビット列で表現 されたレジスタリストに従って前記レジスタファイルの
    内容をメモリに退避させる命令をデコードした場合に、 前記命令実行手段は、前記ビット列レジス タに前記命令中のビット列を保持し、前記ビット列レジ
    スタに保持されたビット列に関する第1、第2のエンコ
    ード値が不一致であれば前記第1のレジスタ番地のレジ
    スタからデータを前記データレジスタを経由させて前記
    メモリへ転送し、前記ビット列レジスタに保持されたビ
    ット列に関する第1、第2のエンコード値が一致であれ
    ば前記第1のレジスタ番地のレジスタ及び前記第2のジ
    スタ番地のレジスタからデータを出力させて両データを
    前記データレジスタにて連結して前記メモリへ転送すべ
    くなしてある ことを特徴とするデータ処理装置。
  2. (2)命令をデコードする命令デコード手段と、ビット
    列を保持するビット列レジスタと、 該ビット列レジスタに保持されているビ ット列中での“1”または“0”のいずれかの先頭の位
    置をサーチしてそのビット位置を 2進数にエンコードした第1のエンコード 値を出力する第1のエンコード手段と、 前記ビット列レジスタに保持されている ビット列中での“1”または“0”のいずれかが2ビッ
    ト連続する先頭の位置をサーチし てそのビット位置を2進数にエンコードし た第2のエンコード値を出力する第2のエ ンコード手段と、 それぞれがnビットのデータを保持する 複数のレジスタにて構成されたレジスタフ ァイルと、 nビットまたは2nビットのデータを保 持するデータレジスタと を有する命令実行手段と を備え、 前記命令デコード手段が、ビット列で表現 されたレジスタリストに従ってメモリから前記レジスタ
    ファイルへデータをロードさせる命令をデコードした場
    合に、 前記命令実行手段は、前記ビット列レジス タに前記命令中のビット列を保持し、前記ビット列レジ
    スタに保持されたビット列に関する第1、第2のエンコ
    ード値が不一致であれぼ前記メモリからnビットのデー
    タをフェッチして前記第1のレジスタ番地のレジスタへ
    転送し、前記ビット列レジスタに保持されたビット列に
    関する第1、第2のエンコード値が一致であれば前記メ
    モリから2個のnビットのデータを連結したデータをフ
    ェッチして一方のnビットのデータを前記第1のレジス
    タ番地のレジスタへ、他方のnビットのデータを前記第
    2のジスタ番地のレジスタへそれぞれ転送すべくなして
    ある ことを特徴とするデータ処理装置。
JP2231966A 1990-08-29 1990-08-29 データ処理装置 Expired - Fee Related JP2616182B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2231966A JP2616182B2 (ja) 1990-08-29 1990-08-29 データ処理装置
US08/245,846 US5390307A (en) 1990-08-29 1994-05-19 Apparatus for a multi-data store or load instruction for transferring multiple contiguous storage locations in one transfer operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2231966A JP2616182B2 (ja) 1990-08-29 1990-08-29 データ処理装置

Publications (2)

Publication Number Publication Date
JPH04109336A true JPH04109336A (ja) 1992-04-10
JP2616182B2 JP2616182B2 (ja) 1997-06-04

Family

ID=16931844

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2231966A Expired - Fee Related JP2616182B2 (ja) 1990-08-29 1990-08-29 データ処理装置

Country Status (2)

Country Link
US (1) US5390307A (ja)
JP (1) JP2616182B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
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
US6757813B1 (en) 1999-06-24 2004-06-29 Nec Corporation Processor

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860000A (en) * 1996-01-31 1999-01-12 Hitachi Micro Systems, Inc. Floating point unit pipeline synchronized with processor pipeline
US5802564A (en) * 1996-07-08 1998-09-01 International Business Machines Corp. Method and apparatus for increasing processor performance
US5652774A (en) * 1996-07-08 1997-07-29 International Business Machines Corporation Method and apparatus for decreasing the cycle times of a data processing system
US5893930A (en) * 1996-07-12 1999-04-13 International Business Machines Corporation Predictive translation of a data address utilizing sets of associative entries stored consecutively in a translation lookaside buffer
JP2000105683A (ja) * 1998-09-29 2000-04-11 Mitsubishi Electric Corp 適応型差分演算器および動き検出装置
US6311239B1 (en) * 1998-10-29 2001-10-30 Cypress Semiconductor Corp. Architecture, circuitry and method for transmitting n-bit wide data over m-bit wide media
US7257814B1 (en) * 1998-12-16 2007-08-14 Mips Technologies, Inc. Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors
US6389449B1 (en) * 1998-12-16 2002-05-14 Clearwater Networks, Inc. Interstream control and communications for multi-streaming digital processors
US7529907B2 (en) 1998-12-16 2009-05-05 Mips Technologies, Inc. Method and apparatus for improved computer load and store operations
US7020879B1 (en) * 1998-12-16 2006-03-28 Mips Technologies, Inc. Interrupt and exception handling for multi-streaming digital processors
US6408380B1 (en) * 1999-05-21 2002-06-18 Institute For The Development Of Emerging Architectures, L.L.C. Execution of an instruction to load two independently selected registers in a single cycle
US6513053B1 (en) * 2000-01-12 2003-01-28 Arm Limited Data processing circuit and method for determining the first and subsequent occurences of a predetermined value in a sequence of data bits
JP3721129B2 (ja) * 2000-01-18 2005-11-30 ミップス テクノロジーズ インコーポレイテッド コンピュータのロードとストア演算を改善する方法および装置
US6791564B1 (en) 2000-05-05 2004-09-14 Ipfirst, Llc Mechanism for clipping RGB value during integer transfer
GB2363869B (en) * 2000-06-20 2004-06-23 Element 14 Inc Register addressing
DE60143896D1 (de) * 2000-07-14 2011-03-03 Mips Tech Inc Anweisungsabruf und -absendung in einem multi-thread-system
JP3779540B2 (ja) * 2000-11-08 2006-05-31 株式会社ルネサステクノロジ 複数レジスタ指定が可能なsimd演算方式
DE10210085B8 (de) * 2002-03-08 2008-11-27 Technische Universität Hamburg-Harburg Verfahren und Prozessor zur Kombination von Daten- und Kontrollflußoperationen
US7146371B2 (en) * 2002-12-05 2006-12-05 International Business Machines Corporation Performance and memory bandwidth utilization for tree searches using tree fragmentation
US7340588B2 (en) * 2003-11-24 2008-03-04 International Business Machines Corporation Extending the number of instruction bits in processors with fixed length instructions, in a manner compatible with existing code
US20070160120A1 (en) * 2006-01-12 2007-07-12 Honeywell International, Inc. Method for code-alignment for DSSS signal processing
JP2008299501A (ja) * 2007-05-30 2008-12-11 Sanyo Electric Co Ltd プロセッサ
US20090182992A1 (en) * 2008-01-11 2009-07-16 International Business Machines Corporation Load Relative and Store Relative Facility and Instructions Therefore
US7849294B2 (en) * 2008-01-31 2010-12-07 International Business Machines Corporation Sharing data in internal and memory representations with dynamic data-driven conversion
US7877582B2 (en) * 2008-01-31 2011-01-25 International Business Machines Corporation Multi-addressable register file
US8195923B2 (en) * 2009-04-07 2012-06-05 Oracle America, Inc. Methods and mechanisms to support multiple features for a number of opcodes
US9411585B2 (en) 2011-09-16 2016-08-09 International Business Machines Corporation Multi-addressable register files and format conversions associated therewith
US9727336B2 (en) 2011-09-16 2017-08-08 International Business Machines Corporation Fine-grained instruction enablement at sub-function granularity based on an indicated subrange of registers
JP6493088B2 (ja) * 2015-08-24 2019-04-03 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US11269645B2 (en) * 2020-03-11 2022-03-08 Western Digital Technologies, Inc. Storage system and method for implementing an encoder, decoder, and/or buffer using a field programmable gate array
US10903849B1 (en) * 2020-07-20 2021-01-26 Micron Technology, Inc. Bit string compression

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3990054A (en) * 1974-11-05 1976-11-02 Honeywell Inc. Microprogram organization techniques
US4339797A (en) * 1978-06-30 1982-07-13 International Business Machines Corporation Microcontroller with auxiliary register for duplicating storage of data in one memory location
US4348741A (en) * 1980-07-17 1982-09-07 Motorola, Inc. Priority encoder
US4500958A (en) * 1982-04-21 1985-02-19 Digital Equipment Corporation Memory controller with data rotation arrangement
JP2684362B2 (ja) * 1986-06-18 1997-12-03 株式会社日立製作所 可変長データの記憶方式
US4980817A (en) * 1987-08-31 1990-12-25 Digital Equipment Vector register system for executing plural read/write commands concurrently and independently routing data to plural read/write ports

Cited By (3)

* Cited by examiner, † Cited by third party
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
US6757813B1 (en) 1999-06-24 2004-06-29 Nec Corporation Processor

Also Published As

Publication number Publication date
JP2616182B2 (ja) 1997-06-04
US5390307A (en) 1995-02-14

Similar Documents

Publication Publication Date Title
JPH04109336A (ja) データ処理装置
US5717946A (en) Data processor
US5233694A (en) Pipelined data processor capable of performing instruction fetch stages of a plurality of instructions simultaneously
JPH03186928A (ja) データ処理装置
JPS6339931B2 (ja)
JPH02207351A (ja) データ路の巾が予め定められたコンピュータシステムのデータ記憶レートを増加する方法及び装置
JPH02240733A (ja) 可変長命令アーキテクチャにおける複数の規制詞の復合方法及び装置
JP2018500658A (ja) インデックスおよび即値を用いてベクトル置換を実行するための方法および装置
US5542060A (en) Data processor including a decoding unit for decomposing a multifunctional data transfer instruction into a plurality of control codes
JPH01214932A (ja) データ処理装置
JP3789583B2 (ja) データ処理装置
JPH07120278B2 (ja) データ処理装置
JP2669158B2 (ja) データ処理装置
KR20170097015A (ko) 마스크를 마스크 값들의 벡터로 확장하기 위한 방법 및 장치
JP2008146544A (ja) 演算処理装置
JP2556182B2 (ja) デ−タ処理装置
JP4502532B2 (ja) データ処理装置
JPH04260929A (ja) データ処理装置
JP2504312B2 (ja) プライオリティエンコ―ダ及びそれを備えたデ―タ処理装置
JPH04260926A (ja) ビット検索回路及びそれを備えたデータ処理装置
JP2504235B2 (ja) デ―タ処理装置
JPH0769806B2 (ja) データ処理装置
JP2646855B2 (ja) データ処理装置
JP2696578B2 (ja) データ処理装置
JP2513884B2 (ja) マイクロプロセッサ

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees