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

データ処理装置

Info

Publication number
JPH0319027A
JPH0319027A JP15488589A JP15488589A JPH0319027A JP H0319027 A JPH0319027 A JP H0319027A JP 15488589 A JP15488589 A JP 15488589A JP 15488589 A JP15488589 A JP 15488589A JP H0319027 A JPH0319027 A JP H0319027A
Authority
JP
Japan
Prior art keywords
register
address
instruction
microinstruction
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP15488589A
Other languages
English (en)
Inventor
Shunichi Iwata
俊一 岩田
Yuichi Saito
斎藤 祐一
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 JP15488589A priority Critical patent/JPH0319027A/ja
Publication of JPH0319027A publication Critical patent/JPH0319027A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は例外3割込み、トラップの各処理(以下、BI
Tと称す)のために命令実行の中断及び再実行を可能と
したデータ処理装置に関する。
〔従来の技術〕
第4図に従来のデータ処理装置のマイクロプログラム制
御を実行する部分の一構成例のブロック図を示す。
図中、lは命令デコード部である。この命令デコード部
1は、命令をデコードしてマイクロプログラムエントリ
アドレス、汎用レジスタ番号、オペランド、データサイ
ズ等の情報を出力する。これらの内、マイクロプログラ
ムエントリアドレスはその命令を実行するためのマイク
ロプログラムの先頭アドレスを示しており、マイクロプ
ログラムカウンタ4にセントされる。
マイクロプログラムカウンタ4にセントされた値はマイ
クロRO?15に格納されているマイクロ命令のアドレ
スを示している。そして、このマイクロプログラムカウ
ンタ4が示すアドレスのマイクロ命令がマイクロROM
5から読出されてマイクロl?OM出力うソチ6へ送ら
れてランチされる。
この際、マイクロプログラムカウンタ4の値はカウンタ
40により1だけインクリメントされる。
マイクロROM出力うソチ6にランチされているマイク
ロ命令の内、アドレスフィールドの値のみが次アドレス
ランチlOにセントされ、他の部分はマイクロデコーダ
7によりデコードされる。
マイクロデコーダ7は、命令デコード部lから出力され
る汎用レジスタ番号、オペランド、データサイズ等の情
報と併せてマイクロ命令をデコードし、命令実行部3と
マイクロプログラム:l、IJ御郡部8を制御するため
の信号を生成する。
このマイクロデコーダ7が生成する信号に従って、命令
実行部3では命令が実行され、マイクロプログラム制御
部8ではマイクロプログラム部2内部の動作を制fil
する。
また、BITが命令デコード部lあるいは命令実行部3
において発生した場合には、発生した[lTに対応して
El↑フラグ部1部内3内ITフラグの値が“l′にセ
ントされる。
BITエントリPL^(Prograsable Lo
gic^rray) 12では、BITフラグの値に従
って、発生したBITに対応する処理を行うためのマイ
クロプログラムエントリアドレスを生成する。
条件フラグ部9は、命令実行部3内の演算装置に備えら
れたフラグの値を入力とし、マイクロプログラム制御部
8の動作あるいはメモリアクセスの動作をマイクロ命令
の指示通りに実行するか否かをI誇示するフラグの値を
セットする。このフラグは、命令実行部3内の演算装置
による演算結果に応して処理方法を変更する必要がある
場合に使用される。
第5図は上述の従来のデータ処理装置に使用されるマイ
クロ命令のフィールドの内容fa)とそのオペレージリ
ン(blとを示す模式図である。
マイクロ命令には、アドレスフィールド、マイクロ制御
フィールド、条件フラグフィールド、 E1丁チエツク
フィールド及びメモリアクセスフィールドが含まれてい
るが、その他にも命令実行部3を制御するためのフィー
ルド等が含まれている。
アドレスフィールドは、マイクロ命令のアドレスをセン
トするためのフィールドである。マイクロ命令の分岐を
実行する場合には分岐先のアドレスが記述される。
条件フィールドは、命令実行部3中の演算装置に付属し
ている各フラグの内のいずれを条件フラグとしてセント
するかを指定する。
マイクロ制御フィールドは、マイクロプログラム制御部
8の動作を指定するフィールドである。
このマイクロ制御フィールドに何等の指定もない場合に
は、その時点の値に“l”だけインクリメントしたマイ
クロプログラムカウンタ4が示すマイクロ命令が次のマ
イクロ命令として呼出される。
マイクロ命令を分岐させる場合は、マイクロ制御フィー
ルドを“分岐”にし、アドレスフィールドに分岐先のマ
イクロ命令のアドレスを記述しておく、これにより、マ
イクロプログラム制御部8は次アドレスランチ10の値
を出力させてマイクロプログラムカウンタ4にセントさ
せる。このため、分岐を指示したマイクロ命令の次には
、アドレスフィールドに記述されているアドレスが示す
マイクロ命令が呼出される。マイクロプログラムエント
リの最後のマイクロ命令には、そのマイクロ制御フィー
ルドに“終了′が指定される。これにより、マイクロプ
ログラムカウンタ4には命令デコード部lから次の命令
のマイクロプログラムエンドリアドレスがセントされ、
引続いて次の命令を実行することが可能になる。また、
これらの指示が条件フラグを参照して実行されるように
も出来る0条件フラグが“1″である場合には、上述の
指示通りの動作を行い、“0”である場合には、“指定
無し”の場合と同様の動作となる。
BITチエツクフィールドは、EIT発生のチェフクを
行うか否かを指定する。具体的には、このフィールドを
“有効”にするとBITの有無がチェフクされ、この結
果[ITが発生していれば次アドレスラッチIOの値が
出力されてマイクロプログラムカウンタ4にセットされ
る。
メモリアクセスフィールドは、メモリのアクセスを指示
する。“読出し”が指示された場合にはメモリからのデ
ータの読出しが実行され、6:込み”が指示された場合
にはメモリへのデータの書込みが実行される。また、こ
れらの指示を条件フラグを参照して実行することも出来
る0条件フラグが“0”である場合は上述の指示通りに
動作し、条件フラグが“1”である場合は上述の動作が
キャンセルされる。
第6図は命令実行部3内の5STR命令を実行するため
に必要な部分の構成を示すプロンク図である。
図中、21.22.23はそれぞれS1バス、 S2バ
ス Dバスである。これらの各バス21 、22.23
はいずれも32ビツト幅である。
24は複数の32ビツトレジスタRO〜Rnにて構成さ
れるレジスタファイルである。このレジスタファイル2
4は、Dバス23からデータを取込み、Slバス21と
S2バス22のいずれかまたは双方へデータを出力する
ことが出来る。
25は定数12ol’lであり、保持しでいる定数デー
タをSlバス21またはS2バス22へ出力する。
26はメモリアドレスレジスタであり、また28はメモ
リデータレジスタである。これらのレジスタは、図示し
ないメモリ内のデータをアクセスする際に使用される。
即ち、メモリからデータを読出す際には、そのデータの
アドレスがメモリアドレスレジスタ26にセントされる
ことによりデータが続出され、読出されたデータはDバ
ス23を通してメモリデータレジスタ28に格納される
。またデータをメモリへ書込む際には、書込み先のアド
レスがメモリアドレスレジスタ26に、データがメモリ
データレジスタ28にそれぞれセントされることにより
、Slバス21またはS2バス22を通じてデータがメ
モリに♂込まれる。
メモリアドレスレジスタ26にはカウンタ27が付属し
ており、S1バス21から人力されたアドレスをサイズ
情報に応じて1.2.4のいずれかの埴だけインクリメ
ントまたはデクリメントすることが出来る。
メモリデータレジスタ28は、Dバス23からデータを
取込んで書込み、S1バス21またはS2バス22ヘデ
ータを出力する。
31は算術演算あるいは論理演算を実行するAl1部で
ある。このALU部31は、Aレジスタ29とBレジス
タ30とから出力されるデータ間の演算を実行し、その
結果をOレジスタ32へ出力する。
Aレジスタ29及びBレジスタ30は共に33ビツト幅
のレジスタであり、それぞれS1バス21及びS2バス
22からデータを入力し、ALU部31ヘデータを出力
する。データ入力に際しては、そのデータのサイズから
33ビツトへ符号拡張または“O”拡張した上で入力し
、A11部31ヘデータ出力する際にはAレジスタ29
及びBレジスタ30の内容をそのまま出力する他、反転
した値を出力したりあるいは“0”を出力することも可
能である。
0レジスタ32はALU部31での演工γ結果を取込み
、Dバス23へ出力する。
33はDCレジスタである。このDCレジスタ33は、
32ビツト輻のレジスタであり、−度に“1”だけデク
リメントするカウンタ34と、自身の(直が0′になっ
た場合に“1″がセットされるゼロフラグ部35とを備
えている。
第7図は従来のデータ処理装置により実行される一つの
命令、即ち5STI?命令の命令コードとオペランドと
を示す模式図である。
5STR命令のオペランドは、レジスタファイル24中
のR1レジスタ、 R2レジスタ、 R3レジスタにセ
ットされる。
R1レジスタにはストリングの先頭アドレスが、R2レ
ジスタにはストリング長が、R3レジスタには書込み対
象のデータ(以下、書込みデータと称す)がそれぞれセ
ントされる。
また、5STI?命令の命令コードのSSフィールドに
より占込みデータのサイズが指定される。即ち、“SS
・00”であればバイト(lハイド) 、”ss・Ol
“であればハーフワード(2バイト)、“SS・10”
であればワード(4バイト)がそれぞれ指定される。
第8図は5STR命令の実行シーケンスの概略を示すフ
ローチャート、第9図は前述の従来のデータ処理装置の
マイクロプログラム部2及び命令実行部3による5ST
R命令の実行シーケンスを示すフローチャートである。
ここで上述の従来のデータ処理装置に使用される命令中
の任意長ビットフィールド操作命令あるいはストリング
操作命令等においては、命令の実行途中でBITを受付
け、その時点で一旦BITの処理を実行し、これが終了
した後に中断されていた命令を再実行することが可能で
ある。
このような手法を採用している理由は、これらの命令が
任意長のビットフィールドあるいは任意長のストリング
を取扱うために命令の実行に要する時間がピントフィー
ルドあるいはストリングの長さに比例して長くなるため
、命令実行の途中であってもBITを受付けて処理しな
ければBIT処理が非常に遅れる可能性があるためであ
る。
以下、5STR命令を一例として、従来のデータ処理装
置において命令の中断とその後の再実行とがいかにして
処理されるかを、第7図及び第8回を参照して説明する
5STR命令は、先頭アドレスとストリング長とにより
指定されるメモリ領域に同一データを繰返し書込む命令
である。この5STR命令では、R1レジスタに先頭ア
ドレスを、R2レジスタにストリング長を、R3レジス
タに書込みデータをそれぞれセントし、命令コードによ
り書込みデータのサイズを指定する。 5STR命令の
オペレーションは以下のようなステンブに分かれる。
■ ストリング長の更新。
R2レジスタの値を“ビだけデクリメントする。
■ 書込みデータのメモリへの書込み。
l?3R3レジスタをR1レジスタの値が示すアドレス
に従ってメモリに書込む。
■ アドレスの更新。
R1レジスタの値を書込みサイズ分だけインクリメント
する。即ら、書込みサイズがバイトである場合は“1”
、ハーフワードである場合は“2”、ワードである場合
は“4”だけそれぞれインクリメントする。
■ BITが発生しているか否かをチエツクする。
BITが発生している場合は[!IT処理に移る。
■ R2レジスタの値が“O”になっているか否かをチ
エツクする。
10”でなければ再度■へ処理を戻してメモリの次の領
域への書込みを行い、”O”になっている場合には処理
命令の実行を終了する。
このように、5STR命令においてはR3レジスタの値
をR1レジスタで指定されているメモリアドレスからR
2レジスタの値が“01になるまで繰返して書込む、そ
して、1回の書込みの都度、EITの発生の有無がチエ
ツクされる。  BIT処理が終了した後は、再度■か
ら処理を開始するため、命令の進1歩状況をR1,R2
,R3レジスタの値を更新することにより示しており、
命令が再開された場合には残りの処理から再実行するこ
とが可能である。
つまり、■の処理に際してはR1レジスタの値は次の書
込み先を、R2レジスタの値は残りのストリング数をそ
れぞれ表しており、■から処理を開始すれば217発生
前の処理に引続(処理を再実行することが可能である。
ところが、実際には上述のように1回の書込みを実行す
る都度、Igでのレジスタを更新しているので命令実行
の速度が遅くなる。このため、命令実行速度を向上させ
るには、ループを形成している部分の処理時間を可能な
限り短くする必要がある。このような理由から、ループ
内では可能な限りマイクロ命令の数が少なくなるように
プログラミングし、ループを抜出した後に演算装置内の
値を利用してループ内で更新することが出来なかったレ
ジスタの値を更新するように構成する。この結果、命令
の実行途中でBITを受付けた場合においても命令の再
実行を保証するためには、BIT処理に移る前にレジス
タの値を更新しておく処理を行わねばならない、この処
理を実行するマイクロプログラムエントリアドレスをB
IT前処理エントリと称する。
5STR命令の実行シーケンスの概略を示す第8図のフ
ローヂャートに従って以下に説明する。
まず最初に、アドレス値及びストリング値等の値をルー
プ内で使用する演算装置にセットする初期設定と、メモ
リへのデータの1回目の書込み処理とを実行する(ステ
ップ31)。
次に、E■↑発生の有無をチエツクする(ステップS2
)、  EITが発生していればBIT前処理エントリ
を実行した後にI!IT処理を実行するが(ステップS
3.S4)、EITが発生していなければストリング長
の値をチエツクする(ステップS5)、これが101に
なっていなければ、メモリの引続く領域に書込みを行っ
てループを形成しくステップ56.52>、”0″にな
っていればループから抜出してレジスタの更新を行い(
ステップ37)、この後に命令の実行を終了する。
次に、5STR命令を第6図に示した構成の回路により
実行する場合のシーケンスについて、第9図(a)、 
(bl及び(C1を参照して説明する。
まず最初に、5STR命令の第1マイクロ命令(以下、
5STRI” と称す)がマイクロl?OM5がら呼出
される (ステップ5ll)、“5STRI”は、マイ
クロプログラム制御部8に対して何等の指示もしていな
い。
従って、命令実行部3において先頭アドレスとストリン
グ長とのセットが行われる。即ら、Ilルジスタの値を
stババス1を介してメモリアドレスレジスタ26に、
またR2レジスタの値を52バス22を介してDCレジ
スタ33に保持させる (ステップ512)。
次に呼出されるマイクロ命令は、マイクロプログラムカ
ウンタ4が1m だけインクリメントされて第2マイク
ロ命令(以下、” 5STR2”と称す)になる(ステ
ップ513)、この“5STR2’ もマイクロプログ
ラム制御部8に対しては何等の指示もしていない、従っ
て、命令実行部3において書込みデータのセントが行わ
れ、R3レジスタの値がALu部31を介してメモリデ
ータレジスタ28にセントされる(ステップ514)。
メモリアクセスフィールドに“書込み゛と指定されてい
るので、次のマイクロ命令実行時にメモリへのデータの
書込みが実行される。
次のマイクロ命令は、マイクロプログラムカウンタ4が
“1″だけインクリメントされて第3マイクロ命令(以
下、“5STR3“と称す)になる(ステップ515)
、アドレスフィールドにBIT前処理エントリアドレス
の“PreEIT”を記述し、BITチエツクフィール
ドを“有効3にしているので、I! I T 前処理エ
ントリ (以下、’PreEIT”と称す)のアドレス
が次アドレスラッチ10に取込まれ、旧Tの発生の有無
がチエツクされる(ステップ517)、命令実行部3に
おいては、アドレスとストリング長が更新される。メモ
リアドレスレジスタ26はサイズ情報に応じてインクリ
メントされる。また、DCレジスタ33の偵が“11だ
けデクリメントされてR2レジスタにセントされる (
ステップ516)。
次に呼出されるマイクロ命令は、“5STI?3″でE
IT発生の有無をチエツクした際にErTが発生してい
るか否かで異なる。
BITが発生していなければ、マイクロプログラムカウ
ンタ4が“l”だけインクリメントされて第4マイクロ
命令(以下、’5STR4”と称す)が呼出される(ス
テップ818)、“5STR4″では、アドレスフィー
ルドに“5STl+3”のアドレス、条件フラグフィー
ルドにOCレジスタ33のゼロフラグの反転値が指定さ
れているため、次アドレスラッチ10にR3レジスタの
アドレス、条件フラグ部9にDCレジスタ33ノセロフ
ラグ部35の反転値がそれぞれセットされる。命令実行
部3においては、R3レジスタの値がメモリデータレジ
スタ28にセットされる (ステップ519)。
1?3レジスタのメモリアクセスフィールドとマイクロ
制御フィールドをはそれぞれ”条件書込み”と“条件分
岐”とになっており、メモリへの書込みと次のマイクロ
命令が条件フラグ部9により決定される(ステップ52
0)、条件フラグ部9の値が°l”であれば、ストリン
グ長が未だ°0”にはなっていないことを示しており、
引続いてデータの書込みを実行する必要がある。メモリ
データレジスタ28への書込みでは次のマイクロ命令実
行時にメモリに書込まれ、またマイクロプログラムカウ
ンタ4には次アドレスランチ10の値がセントされて再
度“5STR3“が実行され(ステップ515)、ルー
プに入る。
一方、条件フラグ部9の値が“0“であれば、ストリン
グ長が“0”になっていることを示しているので、デー
タの書込みは終了する。従って、メモリへの書込みはキ
ャンセルされ、次に呼出されるマイクロ命令はマイクロ
プログラムカウンタ4が“l”だけインクリメントされ
、第5マイクロ命令(以下、“5STR5”と称す)に
なる(ステップ521)。
“5STR5″では、命令実行部3においてメモリアド
レスレジスタ26の値がR2レジスタに戻されて、5S
TII命令が終了される。“5STR5”のマイクロ制
御フィールドは、1終了”になっているため、マイクロ
プログラムカウンタ4には命令デコード部lから送られ
て来る次命令のマイクロプログラムエントリアドレスが
セットされ、次命令が実行される (ステップS22 
S23.524)。
一方、“5STR3”のBITチエツクにおいて[Tが
発生していた場合は、マイクロプログラムカウンタ4に
次アドレスランチ10の値“Prr+EIT”が入りセ
ットされ(ステップ525)、ETT前処理エントリが
実行される(ステップ526)。[■T前処理エントリ
では、再度5STR命令が実行された際にそれまで実行
してきた処理の続きから再実行可能なように、R1レジ
スタ及びR2レジスタの値が更新される。
EIT前処理エントリのR4%マイクロ命令がマイクロ
ROM5から呼出されると、マイクロプログラムカウン
タ4にはEITエントリPLA12が発生したFITに
対応するマイクロプログラムエントリアドレスがセント
される (ステップ527)。これにより、引続いてε
I?処理が実行される(ステップ528)。
BIT処理が実行された後に再度5STR命令を実行し
た場合には、EIT発生直前の状態から引続いて処理を
実行することが可能である。
〔発明が解決しようとする課題〕
従来のデータ処理装置は以上のような構成を採っている
ので、ある命令を実行している途中でBITを受付け、
このBIT処理後に命令の再実行が可能なような命令を
実行する場合には、BITが発生しているか否かをチエ
ツクするマイクロ命令と、ループを形成するためにマイ
クロ命令を分岐させるためのマイクロ命令との二つのマ
イクロ命令が最低限必要である。このため、それぞれの
命令のソフトウェアが増大し、マイクロ命令の記憶装置
、即ちマイクロROMの容量の有効利用が図り難いとい
う問題がある。
本発明はこのような事情に鑑みてなされたものであり、
BITが発生しているか否かのチエツクとマイクロ命令
の分岐とを一つのマイクロ命令により実行可能なデータ
処理装置の提供を目的とする。
〔課題を解決するための手段〕
本発明のデータ処理装置は、マイクロプログラムカウン
タ (第1のレジスタ)の他に、マイクロ命令のアドレ
スフィールドの値の入力とマイクロプログラムカウンタ
への出力とが可能なりIT前処理アドレスラッチ(第2
のレジスタ)を錨え、マイクロ命令によりBIT前処理
アドレスラッチにマイクロ命令中のアドレスフィールド
の値をセント可能に構成し、マイクロ命令の指示により
BITの発生の有無をチエツクし、FITが発生してい
る場合にはBIT前処理アドレスラッチの値をマイクロ
プログラムカウンタにセットするように制御している。
〔作用〕
本発明のデータ処理装置では、予めEIT前処理アドレ
スラッチにBIT前処理エントリアドレスが入力される
ので、分岐処理を実行するマイクロ命令によりEITの
有無もチエツクするように指示すれば、BITが発生し
ている場合にはBIT前処理アドレスランチの値がマイ
クロプログラムカウンタにセントされてEIT前処理エ
ントリが実行され、BITが発生していなければ条件の
成立・不成立に応じて分岐処理が実行されるので、 マイクロ命令 の分岐処理と BITの発生のチエツクとが一つのマ 〔発明の実施例〕 以下、本発明をその実施例を示す図面に基づいて詳述す
る。
第1図は本発明のデータ処理装置のマイクロプログラム
制御を実行する部分の一構成例のブロック図を示す。
なお、前述の従来例と同一または相当する部分には同一
の参照符号を付与しである。
図中、1は命令デコード部である。この命令デコード部
1は、命令をデコードしてマイクロプログラムエントリ
アドレス、汎用レジスフ番号、オペランド、データサイ
ズ等の情報を出力する。これらの内、マイクロプログラ
ムエントリアドレスはその命令を実行するためのマイク
ロプログラムの先頭アドレスを示しており、第1のレジ
スタとしてのマイクロプログラムカウンタ4にセットさ
れる。
マイクロプログラムカウンタ4にセントされた値はマイ
クロROM5に格納されているマイクロ命令のアドレス
を示している。そして、このマイクロプログラムカウン
タ4が示すアドレスのマイクロ命令がマイクロROM5
から続出されてマイクロROM出カラフチ6へ送られて
ランチされる。
この際、マイクロプログラムカウンタ4の値はカウンタ
40によりlだけインクリメントされる。
マイクロROM出力ランチロにラッチされているマイク
ロ命令の内、アドレスフィールドの値のみが次アドレス
ラッチ10にセントされ、他の部分はマイクロデコーダ
7によりデコードされる。
マイクロデコーダ7は、命令デコード部lから出力され
る汎用レジスタ番号、オペランド、データサイズ等の情
報と併せてマイクロ命令をデコードし、命令実行部3と
マイクロプログラム制jn部8とを制御するための信号
を生成する。
このマイクロデコーダ7が生成する(8号に従って、命
令実行部3では命令が実行され、マイクロプログラム制
御部8ではマイクロプログラム部2内部の動作を制御す
る。
また、[BITが命令デコード部1あるいは命令実行部
3において発生した場合には、発生したBITに対応し
てBITフラグ部1部内3内ITフラグの値が11”に
セントされる。
次アドレスラッチ10は自身にセントされたf直、即ち
マイクロROM出力うノチ6にラッチされているマイク
ロ命令の内のアドレスフィールドの値は必要に応じてマ
イクロプログラムカウンタ4にセットさせる。
BITエントリPLA(Programable Lo
gic Array)12では、BITフラグの値に従
って、発生したBITに対応する処理を行うためのマイ
クロプログラムエントリアドレスを生成する。
条件フラグ部9は、命令実行部3内の演算装置に備えら
れたフラグの値を人力とし、マイクロプログラム制御部
8の動作あるいはメモリアクセスの動作をマイクロ命令
の指示通りに実行するか否かを指示するフラグの値をセ
ントする。このフラグは、命令実行部3内の演算装置に
よる演算結果に応じて処理方法を変更する必要がある場
合に使用される。
BIT前処前処理アドレスナフチ112のレジスタとし
て動作し、マイクロROM出力うソチ6にラッチされて
いるマイクロ命令中のアドレスフィールドの値を取込み
、マイクロプログラムカウンタ4に出力する。
第2図は上述のデータ処理装置に使用されるマイクロ命
令のフィールドの内容(a)とそのオペレーション(b
lとを示す模式図である。
マイクロ命令には、アドレスフィールド、マイクロ制御
フィールド、条件フラグフィールド、 EITチエツク
フィールド及びメモリアクセスフィールドが含まれてい
るが、その他にも命令実行部3を制御nするためのフィ
ールド等が含まれている。
アドレスフィールドは、マイクロ命令のアドレスをセッ
トするためのフィールドである。マイクロ命令の分岐を
実行する場合には分岐先のアドレスが記述される。
条件フィールドは、命令実行部3中の演算装置に付属し
ている各フラグの内のいずれを条件フラグとしてセット
するかを指定する。
マイクロ制御フィールドは、マイクロプログラム制御n
部8の動作を指定するフィールドである。
このマイクロ制御フィールドに何等の指定もない場合に
は、その時点の値に“l”だけインクリメントしたマイ
クロプログラムカウンタ4が示すマイクロ命令が次のマ
イクロ命令として呼出される。
マイクロ命令を分岐させる場合は、マイクロ制御フィー
ルドを1分岐”にし、アドレスフィールドに分岐先のマ
イクロ命令のアドレスを記述しておく、これにより、マ
イクロプログラム制御部8は次アドレスラッチ10の値
を出力させてマイクロプログラムカウンタ4にセントさ
せる。このため、分岐を指示したマイクロ命令の次には
、アドレスフィールドに記述されているアドレスが示す
マイクロ命令が呼出される。マイクロプログラムエント
リの最後のマイクロ命令には、そのマイクロ制御フィー
ルドに“終了”が指定される。これにより、マイクロプ
ログラムカウンタ4には命令デコード部1から次の命令
のマイクロプログラムエントリアドレスがセットされ、
引続いて次の命令を実行することが可能になる。このマ
イクロ制御フィールドに“前処理セット”が指定されて
いる場合は、そのマイクロ命令のアドレスフィールドの
値がEIT前処理アドレスラッチ11に取込まれる。
また、これらの指示が条件フラグを参照して実行される
ようにも出来る1条件フラグが“l”である場合には上
述の指示通りの動作を行い、“0”である場合には“指
定無し”の場合と同様の動作となる。
εITチエツクフィールドは、EIT発生のチエツクを
行うか否かの指定を行う、このフィールドを“有効”に
するとEITの゛有無がチエツクされ、この結果EIT
が発生していれば次アドレスラッチ10の値が出力され
てマイクロプログラムカウンタ4にセットされる。
メモリアクセスフィールドは、メモリのアクセスを指示
する。“続出し”が指示された場合にはメモリからのデ
ータの続出しが実行され、“書込み”が指示された場合
にはメモリへのデータの書込みが実行される。また、こ
れらの指示を条件フラグを参照して実行することも出来
る0条件フラグが“0”である場合は上述の指示通りに
動作し、条件フラグが“1”である場合は上述の動作が
キャンセルされる。
ところで、第1図に示されている命令実行部3内の5S
TR命令を実行するために必要な部分の構成は前述の第
6図に示した従来のデータ処理装置と同様である。
即ち、第6図において、21.22.23はそれぞれS
1バス、 S2バス、Dバスである。これらの各バス2
122、23はいずれも32ビット幅である。
24は複数の32ビツトレジスタRO〜Rnにて構成さ
れるレジスタファイルである。このレジスタファイル2
4は、Dバス23からデータを取込み、S1バス21と
S2バス22のいずれかまたは双方へデータを出力する
ことが出来る。
25は定数RO−であり、保持している定数データをS
1バス21またはS2バス22へ出力する。
26はメモリアドレスレジスタであり、また28はメモ
リデータレジスタである。これらのレジスタは、図示し
ないメモリ内のデータをアクセスする際に使用される。
即ち、メモリからデータを読出す際には、そのデータの
アドレスがメモリアドレスレジスタ26にセットされる
ことによりデータが読出され、続出されたデータはDバ
ス23を通じてメモリデータレジスタ28に格納される
。またデータをメモリへ書込む際には、書込み先のアド
レスがメモリアドレスレジスタ26に、データがメモリ
データレジスタ28にそれぞれセントされることにより
、S1バス21またはS2バス22を通じてデータがメ
モリに書込まれる。
メモリアドレスレジスタ26にはカウンタ27が付属し
ており、Slバス21から人力されたアドレスをサイズ
情報に応じて1.2.4のいずれかの値だけインクリメ
ントまたはデクリメントすることが出来る。
メモリデータレジスタ28は、Dバス23からデータを
取込んで書込み、Slバス21またはS2バス22ヘデ
ータを出力する。
31は算術演算あるいは論理演算を実行するAl1部で
ある。この^LIJ部31は、Aレジスタ29とBレジ
スタ30とから出力されるデータ間の演算を実行し、そ
の結果を0レジスタ32へ出力する。
Aレジスタ29及びBレジスタ30は共に33ピント幅
のレジスタであり、それぞれSlバス21及びS2バス
22からデータを入力し、ALU部31ヘデータを出力
する。データ入力に際しては、そのデータのサイズから
33ピントへ符号拡張または“0”拡張した上で入力し
、ALU部31ヘデータ出力する際にはAレジスタ29
及びBレジスタ30の内容をそのまま出力する他、反転
した値を出力したりあるいは“0”を出力することも可
能である。
0レジスタ32はALU部31での演算結果を取込み、
Dバス23へ出力する。
33はDCレジスタである。このDCレジスタ33は、
32ピント幅のレジスタであり、−度に“l″だけデク
リメントするカウンタ34と、自身の値が°0”になっ
た場合に“l”がセントされるゼロフラグ部35とを備
えている。
次に本発明のデータ処理装置により実行される一つの命
令、即ち5STR命令の命令コードとオペランドとを第
7図の模式図に示す、なお、この5STRSTR命令前
述の従来のデータ処理装置においても備えられている命
令であり、その命令コードとオペランドとも前述同様で
ある。
5STR命令のオペランドは、レジスタファイル24中
のR1レジスタ、 R2レジスタ、 R3レジスタにセ
ントされる。
R1レジスタにはストリングの先頭アドレスが、R2レ
ジスタにはストリング長が、R3レジスタには書込み対
象のデータ(以下、書込みデータと称す)がそれぞれセ
ントされる。
また、5STR命令の命令コードのSSフィールドによ
り6込みデータのサイズが指定される。即ち、“5s=
oo”であればバイト(1バイト)、“5S=O1“で
あればハーフワード(2バイト)、“SS・10”であ
ればワード(4バイト)がそれぞれ指定される。
第8図は上述の5STR命令の実行シーケンスの概略を
示すフローチャート、第3図ta)、 (b)及びte
lは本発明のデータ処理装置のマイクロプログラム部2
及び命令実行部3による5STR命令の実行シーケンス
を示すフローチャートである。
なお、本発明のデータ処理装置に使用される命令中の任
意長ピントフィールド操作命令あるいはストリング操作
命令等においては、命令の実行途中でBITを受付け、
その時点で−HEITの処理を実行し、これが終了した
後に中断されていた命令を再実行することが可能である
このような手法を採用している理由は、これらの命令が
任意長のビットフィールドあるいは任意長のストリング
を取扱うために命令の実行に要する時間がビットフィー
ルドあるいはストリングの長さに比例して長くなるため
、命令実行の途中であってもBITを受付けて処理しな
ければEIT処理が非常に遅れる可能性があるためであ
る。
以下、5STR命令を一例として、命令の中断とその後
の再実行とがいかにして処理されるかを、第7図及び第
8図を参照して説明する。
5STR命令は、先頭アドレスとストリング長とにより
指定されるメモリ領域に同一データを繰返し書込む命令
である。この5STR命令では、R1レジス夕に先頭ア
ドレスを、R2レジスタにストリング長を、R3レジス
タに書込みデータをそれぞれセントし、命令コードによ
りθ込みデータのサイズを指定する。 5STR命令の
オペレージリンは以下のようなステップに分かれる。
■ ストリング長の更新。
R2レジスタの値を“1″だけデクリメントする。
■ 書込みデータのメモリへの書込み。
R3レジスタの値をR1レジスタの値が示すアドレスに
従ってメモリに書込む。
■ アドレスの更新。
R1レジスタの値を書込みサイズ分だけインクリメント
する。即ち、書込みサイズがバイトである場合は“ド、
ハーフワードである場合は“2”、ワードである場合は
”4″だけそれぞれインクリメントする。
■ BITが発生しているか否かをチエツクする。
EITが発生している場合はBIT処理に移る。
■ R2レジスタの値が“0”になっているか否かをチ
エツクする。
”0”でなければ再度■へ処理を戻してメモリの次の領
域への書込みを行い、“θ″になっている場合には処理
命令の実行を終了する。
このように、5STR命令においてはR3レジスタの値
をR1レジスタで指定されているメモリアドレスからR
2レジスタの値が”0′になるまで繰返して凹込む、そ
して、1回の書込みの都度、BITの発生の有無がチエ
ツクされる。  EIT処理が終了した後は、再度■か
ら処理を開始するため、命令の進捗状況をR1,R2,
R3レジスタの値を更新することにより示しており、命
令が再開された場合には残りの処理から再実行すること
が可能である。
つまり、■の処理に際してはR1レジスタの値は次の書
込み先を、R2レジスタの値は残りのストリング数をそ
れぞれ表しており、■から処理を開始すればEIT発生
前の処理に引続く処理を再実行することが可能である。
ところで、実際には上述のように1回の書込みを実行す
る都度、総てのレジスタを更新しているので命令実行の
速度が遅くなる。このため、命令の実行速度を向上させ
るには、ループを形成している部分の処理時間を可能な
限り短くする必要がある。このような理由から、ループ
内では可能な限りマイクロ命令の数が少なくなるように
プログラミングし、ループを抜出した後に演算装置内の
値を利用してループ内で更新することが出来なかったレ
ジスタの値を更新するように構成する。この結果、命令
の実行途中でEITを受付けた場合においても命令の再
実行を保証するためには、EIT処理に移る前にレジス
タの値を更新しておく処理を行わねばならない、この処
理を実行するマイクロプログラムエントリアドレスをp
+[iJ処理エントリと称する。
5STI?命令の実行シーケンスの概略を示す第8図の
フローチャートに従って以下に説明する。
まず最初に、アドレス値及びストリング値等の値をルー
プ内で使用する演算装置にセットする初期設定と、メモ
リへのデータの1回目の書込み処理とを実行する(ステ
ップS 1)。
次に、FIT発生の有無をチエツクする(ステップS2
)、  l!ITが発生していれば1ilT前処理エン
トリを実行した後にEIT処理を実行するが(ステ。
プS3. S4)、EITが発生していなければストリ
ング長の値をチエツクする(ステップS5)。これが“
0″になっていなければ、メモリの引続く領域に書込み
を行ってループを形成しくステップS6.S2)、“0
′になっていればループから抜出してレジスタの更新を
行い(ステップS7)、この後に命令の実行を終了する
次に、本発明のデータ処理装置において5STR命令を
第6図に示した構成の回路により実行する場合のシーケ
ンスについて、第3図+a1. tbl及びfclを参
照して説明する。
まず最初に、5STR命令の第1マイクロ命令(以下、
“5STRI”と称す)がマイクロROM5から呼出さ
れる(ステップ531)、“5STRI″は、マイクロ
プログラム制御部8に対して何等の指示もしていない。
従って、命令実行部3において先頭アドレスとストリン
グ長とのセットが行われる。即ち、R1レジスタの埴を
S1バス21を介してメモリアドレスレジスタ2Gに保
持される (ステップ532)。
次に呼出されるマイクロ命令は、マイクロプログラムカ
ウンタ4が“1”、だけインクリメントされて第2マイ
クロ命令(以下、“5STR2″と称す)になる(ステ
ップ533)、この“5STR2″により、マイクロ制
御フィールドに“前処理セット1が、またアドレスフィ
ールドにHIT前処理エントリアドレス(以下、“Pr
eEIT”と称す〉がそれぞれ指定され、更にBIT前
処理マイクロプログラムエントリアドレス(“PreE
ITl”)がBIT前処理アドレスラッチ11にセント
される。
命令実行部3においては、書込みデータ及びストリング
長がセントされる。即ら、R3レジスタの値がALU部
31を介してメモリデータレジスタ28にセントされる
 (ステップ534)、メモリアクセスフィールドに“
書込み゛と指定されているので、次のマイクロ命令実行
時にメモリへの書込みが実行される。また、R2レジス
タの値が82バス22を介してDCレジスタ33にセン
トされ、“11だけデクリメントされる (ステップ5
34)。
次のマイクロ命令は、マイクロプログラムカウンタ4が
“1°だけインクリメントされて第3マイクロ命令(以
下、“5STR3”と称す)になる(ステップ535)
 、この“5STR3“はアドレスフィールドに“5S
TR3”のアドレス、条件フラグフィールドにDCレジ
スタ33のゼロフラグ部35の反転値をそれぞれ指定し
ているので、”5STR3″のアドレスが次アドレスラ
ッチ10に取込まれ、条件フラグ部9にDCレジスタ3
3のゼロフラグ部35の反転値がセットされる。また、
BITチエツクフィールドを“有効”にしているので、
BITの発生の有無がチエツクされる (ステップ53
7)。
一方、命令実行部3においては、書込みデータのメモリ
データレジスタ28へのセントと、アドレス及びストリ
ング長の更新とが行われる。即ち、R3レジスタの値が
メモリデータレジスタ28にセットされ、またメモリア
ドレスレジスタ26の値がサイズ情報に応じた信置だけ
インクリメントされ、DCレジスタ33の値が1″だけ
デクリメントされる(ステップ536)。
次に呼出されるマイクロ命令は、@5STR3’で[!
I丁発生の有無をチエツクした際にEITが発生してい
るか否かで異なる (ステップ537)。
BITが発生していなければ、’5STR3”のメモリ
アクセスフィールドとマイクロ制御フィールドとがそれ
ぞれ“条件書込み”と“条件分岐°とになっているので
、メモリへの書込みの要否と次マイクロ命令とが条件フ
ラグ部9の値により決定される (ステップ538)。
条件フラグ部9の値が“1”である場合は、ストリング
長が未だ“O”にはなっていないことを示しているので
、引続いてメモリへのデータの書込みを実行する必要が
ある。メモリデータレジスタ28にセットされたデータ
は次のマイクロ命令実行時にメモリに書込まれ、またマ
イクロプログラムカウンタ4には次アドレスランチ10
の値がセントされて再度” 5STR3”が実行され(
チップ535)、ループに入る。
一方、条件フラグ部9の値が“O”である場合は、スト
リング長が°0”になっていることを示しているので、
データの書込みは終了されなければならない、従って、
メモリへの書込みはキャンセルされ、次に読出されるマ
イクロ命令はマイクロプログラムカウンタ4が“1”だ
けインクリメントされた第4マイクロ命令(以下、“5
STl?4”と称す)になる (ステップ539)。
”5STR4”では、命令実行部3において先頭アドレ
スの更新を行う、また、メモリアドレスレジスタ26の
値がALU部31を通じてR1レジスタに格納される 
(ステップ540)。
最後のマイクロ命令においては、マイクロプログラムカ
ウンタ4が°l′だけインクリメントされて第5マイク
ロ命令(以下、“5STR5”と称す)になる (ステ
ップ541)。
”5STR5”では、命令実行部3においてストリング
長が“0”にされ、定数ROM25から“02が選択さ
れてR2レジスタにセントされる (ステップ542)
以上で5STR命令は終了する。即ち、” 5STR5
”のマイクロ制御フィールドが“終了”であるので、次
のマイクロ命令のアドレスは命令デコード部lから送ら
れて来るアドレスになる (ステップ543)。
そして、次の命令が実行される(ステップ544)。
一方、“5STR3″のBITチエツクにおいてBIT
が発生していた場合は、マイクロプログラムカウンタ4
にBIT前処理アドレスラッチ11の値”PreEIT
″がセントされ(ステップ545)、BIT前処理エン
トリが実行される(ステップ546)、  BIT前処
理エントリでは、再度5STR命令が実行された際にそ
れまで実行していた処理の続きから再実行可能なように
、R1レジスタ及びR2レジスタの値が更新される。
EIT前処理エントリの最終マイクロ命令がマイクロR
OM5から呼出されると、マイクロプログラムカウンタ
4にはEITエントリPLA12が発生したBITに対
応するマイクロプログラムエントリアドレスがセントさ
れる (ステップ547)、これにより、引続いてBI
T処理が実行される(ステップ348)。
BIT処理が実行された後に再度5STR命令が実行さ
れた場合には、BIT発生直前の状態から引続いて処理
を実行することが可能である。
以上のように、EAT前処理アドレスラッチ11を設け
ることにより、5STF?命令のループを一つのマイク
ロ命令により実行することが可能になるので、5STR
命令の実行が高速化される。
〔発明の効果〕
以上に詳述した如く、本発明のデータ処理装置によれば
、第1のレジスタとしての通常のマイクロプログラムカ
ウンタの他に、マイクロ命令のアドレスフィールドの値
の入力とマイクロプログラムカウンタへの出力とが可能
な第2のレジスタ、即ちBIT前処理アドレスランチを
備え、マイクロ命令により[!IT前処理アドレスラッ
チにマイクロ命令中のアドレスフィールドの値をセット
可能に構成し、マイクロ命令の指示によりEIT発生の
有無を検出し、BITが発生している場合にはそのマイ
クロ命令を無効化すると共に、BIT前処理アドレスラ
ンチの値をマイクロプログラムカウンタにセントするよ
うに制御することによって、マイクロ命令の分岐とBI
Tのチエツクとを一つのマイクロ命令により実行するこ
とを可能としているので、EIT処理のための命令実行
の中断及び命令の実行再開が可能な命令を高速で実行す
ることが可能になる。
【図面の簡単な説明】
第1図は本発明のデータ処理装置のマイクロプログラム
を制御する部分の一構成例を示すブロック図、第2図は
本発明のデータ処理装置において使用されるマイクロ命
令のフィールドとそのオペレーションとを示す模式図、
第3図fat、 (b)及び(C1は本発明のデータ処
理装置による5STR命令の実行シーケンスを示すフロ
ーチャート、第4図は従来のデータ処理装置のマイクロ
プログラムを制御nする部分の一構成例を示すブロック
図、第5図は従来のデータ処理装置において使用される
マイクロ命令のフィールドとそのオペレーションとを示
す模式図、第6図は従来及び本発明のデータ処理装置の
内の5STR命令を実行するために必要な部分の一構成
例を示すブロック図、第7図は5STR命令の命令コー
ドとオペランドとを示す模式図、第8図は従来及び本発
明のデータ処理装置による5STR命令の概略の実行シ
ーケンスを示すフローチャート、第9図(al、 (b
l及びIc)は従来のデータ処理装置による5STR命
令の実行シーケンスを示すフローチャートである。 4・・・マイクロプログラムカウンタ  5・・・マイ
クロll0M  8・・・マイクロプログラム制御部l
O・・・次アドレスラッチ 11・・・BIT前処理ア
ドレスランチ なお、各図中同一符号は同−又は相当部分を示す。

Claims (2)

    【特許請求の範囲】
  1. (1)プログラムを処理するための複数の命令にて構成
    されるマイクロプログラムを記憶した記憶装置と、実行
    されるべきマイクロ命令の前記記憶装置におけるアドレ
    スを格納する第1のレジスタと、該第1のレジスタの格
    納内容に従って前記該記憶装置に格納されているマイク
    ロプログラムを処理するマイクロプログラム制御機構と
    を備えたデータ処理装置において、 前記第1のレジスタにより指定されたアドレスのマイク
    ロ命令によりジャンプまたはジャンプサブルーチンが実
    行された場合にジャンプ先のマイクロ命令の前記記憶装
    置におけるアドレスを前記第1のレジスタに格納させる
    手段と、 前記第1のレジスタにより指定されたアドレスのマイク
    ロ命令によりジャンプまたはジャンプサブルーチン以外
    の独立した処理の実行により前記記憶装置のアドレスを
    格納する第2のレジスタとを備え、 前記第1のレジスタは、前記第2のレジスタに格納され
    ているアドレスを取込むことを可能に構成されているこ
    とを特徴とするデータ処理装置。
  2. (2)第1のレジスタは、命令実行中に例外処理または
    割込み処理が優先される場合に第2のレジスタに格納さ
    れているアドレスを取込むべく構成されていることを特
    徴とする請求項1に記載のデータ処理装置。
JP15488589A 1989-06-16 1989-06-16 データ処理装置 Pending JPH0319027A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP15488589A JPH0319027A (ja) 1989-06-16 1989-06-16 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP15488589A JPH0319027A (ja) 1989-06-16 1989-06-16 データ処理装置

Publications (1)

Publication Number Publication Date
JPH0319027A true JPH0319027A (ja) 1991-01-28

Family

ID=15594085

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15488589A Pending JPH0319027A (ja) 1989-06-16 1989-06-16 データ処理装置

Country Status (1)

Country Link
JP (1) JPH0319027A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05233320A (ja) * 1992-02-19 1993-09-10 Mitsubishi Electric Corp マイクロコンピュータ

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS53105952A (en) * 1977-02-28 1978-09-14 Nec Corp Microprogram control unit
JPS6250934A (ja) * 1985-08-30 1987-03-05 Hitachi Ltd 処理装置の割込制御方式

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS53105952A (en) * 1977-02-28 1978-09-14 Nec Corp Microprogram control unit
JPS6250934A (ja) * 1985-08-30 1987-03-05 Hitachi Ltd 処理装置の割込制御方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05233320A (ja) * 1992-02-19 1993-09-10 Mitsubishi Electric Corp マイクロコンピュータ

Similar Documents

Publication Publication Date Title
CN100483336C (zh) 数据处理系统内处理数据的设备及方法
US6438679B1 (en) Multiple ISA support by a processor using primitive operations
CN109416632B (zh) 用于处理数据的装置和方法
JPH0810428B2 (ja) データ処理装置
JPH03158928A (ja) データ処理装置
JPH03174626A (ja) データ処理装置
JPS6125169B2 (ja)
JPH07120278B2 (ja) データ処理装置
US10338926B2 (en) Processor with conditional instructions
JPH0673105B2 (ja) 命令パイプライン方式のマイクロプロセッサ
JPS645330B2 (ja)
US7546442B1 (en) Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions
JPS6250934A (ja) 処理装置の割込制御方式
US6216218B1 (en) Processor having a datapath and control logic constituted with basis execution blocks
EP0140299A2 (en) Vector mask control system
US6016539A (en) Datapath control logic for processors having instruction set architectures implemented with hierarchically organized primitive operations
US5940626A (en) Processor having an instruction set architecture implemented with hierarchically organized primitive operations
JPH0319027A (ja) データ処理装置
JP2710994B2 (ja) データ処理装置
JPH01183736A (ja) 情報処理装置
JP2843844B2 (ja) 並列演算処理装置
JP3748191B2 (ja) 計算機とその制御方法
JPH0628034B2 (ja) タグ付計算機
JPH01258032A (ja) パイプライン処理機構を持つデータ処理装置
JP2000347858A (ja) マイクロプロセッサ