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

データ処理装置

Info

Publication number
JPH0833821B2
JPH0833821B2 JP1154886A JP15488689A JPH0833821B2 JP H0833821 B2 JPH0833821 B2 JP H0833821B2 JP 1154886 A JP1154886 A JP 1154886A JP 15488689 A JP15488689 A JP 15488689A JP H0833821 B2 JPH0833821 B2 JP H0833821B2
Authority
JP
Japan
Prior art keywords
bit
bus
register
offset
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.)
Expired - Fee Related
Application number
JP1154886A
Other languages
English (en)
Other versions
JPH0319029A (ja
Inventor
俊一 岩田
徹 清水
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP1154886A priority Critical patent/JPH0833821B2/ja
Publication of JPH0319029A publication Critical patent/JPH0319029A/ja
Publication of JPH0833821B2 publication Critical patent/JPH0833821B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、ビット操作もしくはビットフィールド操作
を行う命令の実行が可能なデータ処理装置に関するもの
である。
〔従来の技術〕
第7図は、従来のデータ処理装置においてビット操作
命令を実行する部分のブロック図である。図において、
(1)〜(3)はそれぞれS1バス(第1のバス)、S2バ
ス(第2のバス)、Dバス(第3のバス)で、それぞれ
32ビット幅のバスである。(4)は32ビットのレジスタ
Ro〜Rnから成るレジスタファイルであり、Dバス(3)
からデータを取り込み、S1バス(1)かS2バス(2)も
しくは両方に出力することができる。(5)は0,1,3,7
などの定数が格納されている定数ROM部で、サイズ情報
に応じた値をS1バス(1)もしくはS2バス(2)に出力
できる。(6),(9)はメモリアドレスレジスタとメ
モリデータレジスタであり、メモリ内のデータをアクセ
スする際に用いられる。メモリからデータを読み出す場
合には、そのデータのアドレスをメモリアドレスレジス
タ(6)にセットして読み出しを行うことにより、読み
出されたデータがメモリデータレジスタ(9)に格納さ
れる。また、メモリへ書き込む場合には、書き込み先の
アドレスをメモリアドレスレジスタ(6)に、書き込み
データをメモリデータレジスタ(9)にセットして書き
込みを行う。メモリアドレスレジスタ(6)にはカウン
タ(7)が付いており、S1バス(1)から入力したアド
レスをサイズ情報に応じて1か2か4をインクリメント
もしくはデクリメントすることができる。メモリデータ
レジスタ(9)は書き込みデータをDバス(3)から取
り込み、読み出しデータをS1バス(1)もしくはS2バス
(2)に出力する。(13)は算術演算や論理演算をおこ
なう算術論理演算部(ALU部)であり、Aレジスタ(1
0)とBレジスタ(12)から出力されるデータ間の演算
を行い、その結果をOレジスタ(14)に出力する。Aレ
ジスタ(10)、Bレジスタ(12)は33ビット幅のレジス
タで、それぞれS1バス(1)、S2バス(2)からの入力
とALU部(13)への出力を行う。データを入力する際に
はそのデータのサイズから33ビットに符号拡張またはゼ
ロ拡張してから取り込む。また、ALU部(13)に出力す
る際にはAレジスタ(10)、Bレジスタ(12)の内容を
そのまま出力する他に、反転した値を出力したり、ゼロ
を出力することができる。Oレジスタ(14)はALU部(1
3)からの演算結果をDバス(3)に出力する。(15)
はデータを一度に右や左にシフト及びローテートを行う
バレルシフタ部であり、シフトすべきデータをS2バス
(2)から取り込み、シフト幅レジスタ(16)が示すシ
フト幅だけシフトもしくはローテートしてDバス(3)
に出力する。シフト幅レジスタ(16)はS1バス(1)か
らシフト幅データを入力する。(17)はプライオリティ
エンコーダ部であり、S1バス(1)から取り込んだデー
タにおいて、オフセットレジスタ(19)の値が示すビッ
ト位置から0もしくは1を探し、見つかったビット位置
のビット番号をオフセットレジスタ(19)に返す。オフ
セットレジスタ(19)はS2バス(2)から入力し、Dバ
ス(3)に出力する。
第8図は、ビット操作命令を行う場合に、操作対象と
なるビットの位置がベースアドレスとビットオフセット
によってどのように指定されるかを説明した図である。
第9図は、ビット操作命令を行う場合に、アクセスサ
イズによってアクセスされるメモリ領域の範囲がどうな
るかを説明した図である。
第10図は、ベースアドレスとビットオフセットから正
規化アドレスと正規化ビットオフセットがどのようにし
て求められるかを説明した図である。
第11図は、前記データ処理装置のビット操作命令の実行
シーケンスを示したフローチャートである。
次に、前記データ処理装置の動作について説明する。
まず、ビット操作命令におけるベースアドレスとビッ
トオフセットについて説明す。例えば、TRON仕様の命令
セットには4種類のビット操作命令がある。これらの命
令は、操作対象となるビットに対して、1のセットや反
転値のセット等の処理を行う。そして、操作対象となる
ビットの指定にはベースアドレスとビットオフセットの
二つのパラメータを用いる。ベースアドレスでは汎用レ
ジスタ番号やメモリ内のアドレスを、ビットオフセット
では任意の数を指定する。第8図で示すように、メモリ
上のビットを操作する場合にはベースアドレスで示され
るデータの最上位ビット(MSB)からビットオフセット
で示されるビット数分だけ離れた位置にあるビットが操
作対象ビットとなる。ビットオフセットは符号付きの数
で表されるため、操作対象となるビットの位置は、ビッ
トオフセットが正の数の場合(同図(a))にはビット
番号の増加方向に、負の数の場合(同図(b))にはビ
ット番号の減少方向になる。
また、TRON仕様のビット操作命令ではアクセスサイズ
によってメモリアクセスの範囲を指定することができ
る。アクセスサイズがバイト(=1バイト)の場合には
対象ビットを含む1バイトが、ハーフワード(=2バイ
ト)の場合には2バイトが、ワード(=4バイト)の場
合には4バイトがそれぞれアクセスされる。このとき、
アクセスされるデータはアクセスサイズでアライメント
のとれたデータになる。
このようにメモリ上のビットを操作する場合にはベー
スアドレス、ビットオフセット及びアクセスサイズの組
合せでアクセスすべきデータと操作対象となるビットが
決まる。アクセスすべきデータのアドレスを正規化アド
レスと呼び、操作対象となるビットのアクセスするデー
タのなかでのビットオフセットを正規化ビットオフセッ
トと呼ぶ。
それでは、その一例を第9図の用いて説明する。第9
図はベースアドレスを103、ビットオフセットを34とし
た場合にアクセスサイズによってどの範囲がアクセスさ
れるかを示したものである。ベースアドレス=103,ビッ
トオフセット=34から、操作対象となるビットは103番
地の最上位ビットから34ビットめの位置となる。つま
り、バイトアドレス=107のビット番号=2の位置のビ
ットである。アクセスサイズがバイトの場合(同図
(a))には107番地の1バイトがアクセスされるの
で、正規化アドレスは107、正規化ビットオフセットは
2となる。アクセスサイズがハーフワードの場合(同図
(b))には107〜108番地のデータでなく、ハーフワー
ドでアライメントをとるので106〜107番地の2バイトが
アクセスされる。したがって、正規化アドレスは106と
なり、正規化ビットオフセットは106番地の最上位ビッ
トからのビット位置である10となる。アクセスサイズが
ワードの場合(同図(c))には107〜110番地ではなく
ワードでアライメントをとって104〜107番地の4バイト
がアクセスされる。正規化アドレスは104,正規化ビット
オフセットは26となる。
次に、正規化アドレスと正規化ビットオフセットを得
るためにどのような処理を行わなければならないかを第
10図を用いて説明する。まず、正規化アドレスを得るた
めには対象ビットを含むバイトアドレスを求める。これ
は、“ベースアドレス+ビットオフセット/8"によって
求められる(同図(a))。つぎにアクセスサイズでア
ライメントをとるために上で求めたバイトアドレスの下
位ビットをサイズに応じて0にする。すなわち、アクセ
スサイズがバイトのとき(同図(b))には上で求めた
バイトアドレスそのものが正規化アドレスとなるが、ハ
ーフワード(同図(c))では下位1ビットを0に、ワ
ード(同図(d))では下位2ビットを0にしなければ
ならない。一方、正規化ビットオフセットを求めるため
にはまず“ベースアドレス×8+ビットオフセット”に
よって0番地からのビットオフセットである絶対ビット
オフセットを求める(同図(a))。そして、アクセス
サイズがバイトの場合(同図(b))は0〜7の値をと
るので絶対ビットオフセットの下位3ビットが正規化ビ
ットオフセットとなる。アクセスサイズがハーフワード
の場合(同図(c))には0〜15の値をとるので絶対ビ
ットオフセットの下位4ビットが、ワードの場合(同図
(d))には0〜31の値をとるので絶対ビットオフセッ
トの下位5ビットが正規化ビットオフセットになる。
このように、メモリ内に操作対象となるビットがある
場合にはビットの操作を行う前に、メモリ内にあるデー
タをアクセスするために正規化アドレスを、アクセスし
てきたデータに対してビット操作を行うために正規化ビ
ットオフセットを求める必要がある。
そこで、第7図の回路で正規化アドレスと正規化ビッ
トオフセットを求めるにはどのような実行シーケンスに
なるかを第11図を用いて説明する。なお、ベースアドレ
スはレジスタファイル(4)中のRoレジスタに、ビット
オフセットはR1レジスタに格納されている。
まず、第1サイクル〜第3サイクルで正規化アドレス
を求める。
第1サイクルではビットオフセットを右に3ビット分
シフトすることによって“ビットオフセット/8"を求め
る。すなわち、定数ROM(5)中から3を呼び出してシ
フト幅レジスタ(16)に入れ、R1レジスタの値をバレル
シフタ部(15)にいれる。バレルシフタ部(15)に右へ
の算術シフトを指示し、その結果をR2レジスタに格納す
る。これでR1レジスタに格納されていたビットオフセッ
トが右に3ビット分だけ算術シフトされてR2レジスタに
格納される。
第2サイクルでは第1サイクルで求めた値にベースア
ドレスを加えることにより操作対象となるビットを含む
バイトアドレスを得る。すなわち、ROレジスタの値とR2
レジスタの値をそれぞれS1バス(1)とS2バス(2)に
出力してALU部(13)で加算を行い、その結果をR2レジ
スタに格納する。R2レジスタには“ビットオフセット/8
+ベースアドレス”が格納されている。
第3サイクルでは第2サイクルで求めた結果をアクセ
スサイズでアライメントをとることにより正規化アドレ
スを得る。すなわち、R2レジスタの値をS2バス(2)
に、定数ROM(5)からアクセスサイズに応じた値を呼
び出してS1バス(1)に出力させる。アクセスサイズが
バイトの場合には0が、ハーフワードの場合には1がワ
ードの場合には3が出力される。ALU部(13)ではS1バ
ス(1)からAレジスタ(10)に取り込んだ値を反転し
てR2レジスタの値との論理積をとる。これによって、R2
レジスタの値の下位ビットをアクセスサイズに応じて0
にすることができる。演算結果はR2レジスタに格納す
る。
次のサイクルから正規化ビットオフセットを得るため
の処理に移る。
第4サイクルではベースアドレスを左に3ビットシフ
トすることにより“ベースアドレス×8"を求める。すな
わち、ROレジスタをS2バス(2)を介してバレルシフタ
部(15)入れて左にシフトさせる。このとき、シフト幅
レジスタ(16)には第1サイクルで入力した3が格納さ
れているのでシフト幅は3になる。シフト結果はR3レジ
スタに格納する。また、このサイクルで空いているS1バ
ス(1)を利用してR2レジスタの正規化アドレスをメモ
リアドレスレジスタ(6)にセットしておく。
第5サイクルでは第4サイクルで求めた“ベースアド
レス×8"にビットオフセットを加えることにより絶対ビ
ットオフセットを求める。すなわち、R1レジスタの値と
R3レジスタの値をALU部(13)で加算して“ベースアド
レス×8+ビットオフセット”を求め、R3レジスタに格
納する。
第6サイクルでは第5サイクルで求めた絶対ビットオ
フセットに対して有効なビット以外を0にすることによ
って正規化ビットオフセットを得る。すなわち、R3レジ
スタの値と定数ROM(5)から呼び出してきた値とをALU
部(13)を用いて論理積をとる。定数ROM(5)から
は、アクセスサイズがバイトのときには7、ハーフワー
ドのときには15、ワードのときには31が出力される。こ
れによって、アクセスのバイト、ハーフワード、ワード
に応じて、それぞれ絶対ビットオフセットの下位3,4,5
ビットのみが残り、上位ビットは全て0になる。演算結
果はR3レジスタに格納する。
以上の処理でメモリアドレスレジスタ(6)には正規
化アドレスがレジスタファイル(4)のR3レジスタには
正規化ビットオフセットが格納される。第7サイクル以
降では、得られた正規化アドレスと正規化ビットオフセ
ットを用いてそれぞれの命令固有のビット操作の処理が
行われる。
このように、ビット操作命令の正規化アドレスと正規
化ビットオフセットの算出には6サイクルの処理が必要
である。また、ベースアドレス及びビットオフセットの
3ビットシフト、バイトアドレスのアライメントをとる
処理、絶対ビットオフセットから正規化ビットオフセッ
トを得る処理のために0、1、3、7、15、31の定数が
必要である。
〔発明が解決しようとする課題〕
従来のデータ処理装置は以上のように構成されている
ので、ビット操作命令などのようにアクセスすべきデー
タがベースアドレスとビットオフセットによって与えら
れる命令を実行する場合、正規化アドレスと正規化ビッ
トオフセットを得るための処理に多くの実行時間が費や
されるという問題点があった。また、ベースアドレス及
びビットオフセットの3ビットシフト、バイトアドレス
のアライメントをとる処理、絶対ビットオフセットから
正規化ビットオフセットを得る処理のために定数を使用
しなければならないという問題点もあった。
この発明は上記のような問題点を解決するためになさ
れたもので、正規化アドレスと正規化ビットオフセット
を得るための処理に要する時間をハードウェアにそれほ
ど負担をかけることなく短縮し、また、定数を不用にす
ることを目的とする。
〔課題を解決するための手段〕
この発明に係るデータ処理装置は、第1サイクルにお
いて第2のバスを介して送られてくるビットオフセット
を3ビット右方向にシフトし,第1のバスを介してベー
スアドレスが入力されるALU部に入力する第1の手段
と、前記ALU部の加算結果が第3のバスを介してレジス
タファイルに取り込まれ,第2サイクルにおいて前記第
1のバスを介して送られてくる第1サイクルで得られる
加算結果をサイズ情報に基づき下位ビットを0にしてア
ドレスレジスタに入力して正規化アドレスを得る第2の
手段と、第1サイクルにおいて前記第2のバスを介して
送られてくるビットオフセット及び第2サイクルにおい
て該第2のバスを介して送られてくる第1サイクルで得
られる加算結果のうちサイズ情報に基づく下位ビットを
それぞれオフセットレジスタの下位ビット及びその上位
ビットに入力して正規化ビットオフセットを得る第3の
手段とを備えたものである。
〔作用〕
この発明におけるデータ処理装置は、第1サイクルで
第1の手段とALU部を用いて第1サイクルで得られる加
算結果,すなわち“ベースアドレス+ビットオフセット
/8"を算出し、同時に第3の手段を用いてオフセットレ
ジスタにサイズ情報に応じてビットオフセットの下位ビ
ットを入力し、オフセットレジスタの他の上位ビットは
0にする。次の第2サイクルで、第2の手段を用いて
“ベースアドレス+ビットオフセット/8"をアドレスレ
ジスタにサイズ情報に応じて下位ビットを0にして入力
することにより正規化アドレスを獲得し、同時に第3の
手段を用いてオフセットレジスタにサイズ情報に応じて
“ベースアドレス+ビットオフセット/8"の下位ビット
の値をレジスタの上位ビットに入力することによって正
規化ビットオフセットを獲得することができる。これに
より、正規化アドレス及び正規化ビットオフセットを短
時間で、かつ定数を使用することなく獲得できる。
〔発明の実施例〕
以下、この発明の一実施例を図について説明する。
第1図はこの発明の一実施例によるデータ処理装置の
うちビット操作命令に用いられる部分のブロック図であ
る。図において、(1)〜(3)はそれぞれS1バス(第
1のバス)、S2バス(第2のバス)、Dバス(第3のバ
ス)で、それぞれ32ビット幅のバスである。(4)は32
ビットのレジスタRo〜Rnから成るレジスタファイルであ
り、Dバス(3)からデータを取り込み、S1バス(1)
かS2バス(2)もしくは、両方に出力することができ
る。(6),(9)はメモリアドレスレジスタとメモリ
データレジスタで、メモリ内のデータをアクセスする際
に用いられる。メモリからデータを読み出す場合には、
そのデータのアドレスをメモリアドレスレジスタ(6)
にセットして読み出しを行えば、読み出されたデータが
メモリデータレジスタ(9)に格納される。また、メモ
リへ書き込む場合には、書き込み先のアドレスをメモリ
アドレスレジスタ(6)に、書き込みデータをメモリデ
ータレジスタ(9)にセットして書き込みを行う。メモ
リアドレスレジスタ(6)はS1バス(1)からの入力を
本願の第2の手段をなすアドレスアライメント回路
(8)を介して行う。アドレスアライメント回路(8)
の動作は入力モードとサイズ情報によって制御され、S1
バス(1)から入力するアドレスをアライメントのとれ
たアドレスにするのに用いられる。また、メモリアドレ
スレジスタ(6)にはカウンタ(7)が付いており、S1
バス(1)から入力したアドレスをサイズ情報に応じて
1か2か4をインクリメントもしくはデクリメントする
ことができる。メモリデータレジスタ(9)は、書き込
みデータをDバス(3)から取り込み、読み出しデータ
をS1バス(1)もしくはS2バス(2)に出力する。(1
3)は算術演算や論理演算をおこなうALU部であり、Aレ
ジスタ(10)とBレジスタ(12)から取り込んだデータ
間で演算を行い、その演算結果をOレジスタ(14)を介
してDバス(3)に出力する。Aレジスタ(10)及びB
レジスタ(12)は33ビット幅をもつレジスタで、Aレジ
スタ(10)はS1バス(1)から、Bレジスタ(12)はS2
バス(2)から本願の第1の手段をなす3ビット右シフ
ト回路(11)を通してデータを取り込む。データを取り
込む際にはそのデータのサイズから33ビットに符号拡張
又はゼロ拡張してから取り込み、ALU部(13)に出力す
る。またALU部(13)に出力する際にはAレジスタ(1
0)、Bレジスタ(12)の内容をそのまま出力する他
に、反転した値を出力したり、ゼロを出力することがで
きる。3ビット右シフト回路(11)が動作するとS2バス
(2)から取り込まれたデータを右に3ビットだけ算術
シフト(上位ビットにはそのデータの最上位ビットと同
じ値を入れていく)を行い、Bレジスタ(12)に出力す
る。(15)はデータを一度に右や左にシフトおよびロー
テートを行うバレルシフタ部であり、シフトすべきデー
タをS2バス(2)から取り込み、シフト幅レジスタ(1
6)が示すシフト幅だけシフトもしくはローテートして
Dバス(3)に出力する。シフト幅レジスタ(16)はS1
バス(1)からシフト幅を入力する。(17)はプライオ
リティエンコーダ部であり、S1バス(1)から取り込ん
だデータにおいてオフセットレジスタ(19)の値が示す
ビット位置から0もしくは1を探し、見つかったビット
位置のビット番号をオフセットレジスタ(19)に返す。
オフセットレジスタ(19)は5ビットのレジスタで、S2
バス(2)やプライオリティエンコーダ部(17)からの
データは本願の第3の手段をなすオフセット正規化回路
(18)を通して取り込み、Dバス(3)及びプライオリ
ティエンコーダ部(17)に出力する。オフセット正規化
回路(18)の動作は入力モードとサイズ情報によって制
御されビットオフセットを正規化するのに用いられる。
第2図は第1図のオフセット正規化回路(18)の詳細
なブロック図である。オフセット正規化回路(18)は5
つのセレクタ1(21)〜5(25)から構成されており、
セレクタ1(21)及びセレクタ2(22)はサイズ情報と
入力モードに応じて次の5つのオペレーションのうちの
ひとつを選択する。
:プライオリティエンコーダ部(17)からの値をオフ
セットレジスタ(19)に出力。
:S2バス(2)のビット位置[セレクタ1(21)は2
7、セレクタ2(22)は28]の値をオフセットレジスタ
(19)に出力。
:S2バス(2)のビット位置[セレクタ1(21)は3
0、セレクタ2(22)は31]の値をオフセットレジスタ
(19)に出力。
:ゼロをオフセットレジスタ(19)に出力。
:オフセットレジスタ(19)へは何も出力しない。
セレクタ3(23)〜セレクタ5(25)は入力モードに応
じて次に3つのオペレーションからひとつを選択する。
:プライオリティエンコーダ部(17)からの値をオフ
セットレジスタ(19)に出力。
:S2バス(2)のビット位置[セレクタ3(23)は2
9、セレクタ4(24)は30、セレクタ5(25)は31]の
値をオフセットレジスタ(19)に出力。
:オフセットレジスタ(19)へは何も出力しない。
オフセット正規化回路(18)がS2バス(2)から入力
する場合に、入力モードとサイズ情報に応じてそれぞれ
のセレクタがどのオペレーションを選択し、どのような
操作が行われるかを第3図を用いて説明する。オフセッ
トレジスタ(19)の入力モードを“通常入力”にすると
サイズ情報がバイトの場合にはセレクタ1(21)及びセ
レクタ2(22)がゼロを選択し、セレクタ3(23)〜セ
レクタ5(25)がS2バス(2)を選択するため、オフセ
ットレジスタ(19)には上位2ビットが0になって入力
される。サイズ情報がハーフワードの場合にはセレクタ
1(21)が0を選択し、残りのセレクタ2(22)〜5
(25)はS2バス(2)を選択するので、オフセットレジ
スタ(19)には上位1ビットだけが0になって入力され
る。サイズ情報がワードの場合にはセレクタ1(21)〜
セレクタ5(25)全てがS2バス(2)を選択するため、
オフセットレジスタ(19)にはS2バス(2)の下位5ビ
ットがそのまま入力される。
次に、入力モードを“正規化入力”にするとサイズ情
報がバイトの場合にはセレクタ1(21)〜セレクタ5
(25)は全てOFFとなるため、オフセットレジスタ(1
9)には何も入力されない。サイズ情報がハーフワード
の場合にはセレクタ2(22)がS2バス(2)のビット位
置31を選択し、残りのセレクタがOFFとなるので、オフ
セットレジスタ(19)の上位2ビット目にS2バス(2)
の最下位ビットが入力される。サイズ情報がワードの場
合にはセレクタ1(21)がS2(30)、セレクタ2(22)
がS2(31)、残りのセレクタがOFFとなるので、オフセ
ットレジスタ(19)の上位2ビットにS2バス(2)の下
位2ビットが入力される。
第4図は第1図のアドレスアライメント回路(8)の
詳細なブロック図である。アドレスアライメント回路
(8)は2つのディスチャージ回路1(31),2(32)か
ら構成されており、ディスチャージ回路1(31)、ディ
スチャージ回路2(32)はそれぞれS1バス(1)からメ
モリアドレスレジスタ(6)への入力線のうちビト位置
30、31に接続されている。ディスチャージ回路が“OFF"
の場合にはS1バス(1)の値をそのままメモリアドレス
レジスタ(6)に伝達するが、“ON"の場合にはS1バス
(1)からの入力線をディスチャージするため、メモリ
アドレスレジスタ(6)にはゼロが入力される。
ディスチャージ回路のON/OFF動作は入力モードとサイズ
情報に依存する。
アドレスアライメント回路(8)の動作と入力モード
及びサイズ情報の関係を第5図を用いて説明する。アド
レスアライメント回路(8)の入力モードを“通常入
力”にするとサイズ情報に関係なくディスチャージ回路
1(31)及びディスチャージ回路2(32)はOFFとな
り、メモリアドレスレジスタ(6)にはS1バス(1)の
値がそのまま入力される。入力モードが“アライメント
入力”の場合にはサイズ情報によって動作が異なる。サ
イズ情報がバイトのときには“通常入力”の時と同じで
S1バス(1)の値をそのままメモリアドレスレジスタ
(6)に入力する。ハーフワードの時にはディスチャー
ジ回路1(31)は“OFF"となるがディスチャージ回路2
(32)は“ON"となるので、メモリアドレスレジスタ
(6)への入力の際には下位1ビットが強制的に0とな
る。ワードのときにはディスチャージ回路1(31)、2
(32)とも“ON"となるので下位2ビットが強制的に0
となってメモリアドレスレジスタ(6)に入力される。
このように、通常のメモリのアクセスでは“通常入力”
モードを使用してメモリアドレスをセットして所望のデ
ータをアクセスするが、ビット操作命令などのようにア
クセスサイズでアライメントの取れたデータをアクセス
する必要がある場合には“アライメント入力”モードに
すると、サイド情報に応じてアドレスの下位ビットを0
にするのでアライメントのとれたアドレスを得ることが
できる。
第6図は前記データ処理装置のビット操作命令の実行
シーケンスを示したフローチャートである。フローチャ
ートの横には各サイクルで値の変化したレジスタの内容
を示している。
次に、本実施例のデータ処理装置がアドレスとビット
オフセットの正規化を行う場合の実行シーケンスを第6
図を用いて説明する。なお、この実行シーケンスは当該
データ処理装置の制御ROMに予め格納された複数のマイ
クロ命令の中から所定のマイクロ命令を呼び出すことに
より実行され、また、レジスタファイル(4)のROレジ
スタにはベースアドレスが、R1レジスタにはビットオフ
セットが格納されている。
まず、第1サイクルでは“ベースアドレス+ビットオ
フセット/8"を得ると同時にビットオフセットの中で有
効な下位ビットだけをオフセットレジスタ(19)に取り
込む。すなわち、ROレジスタの値をS1バス(1)に、R1
レジスタの値をS2バス(2)に出力する。ALU部(13)
ではAレジスタ(10)にROレジスタの値を取り込み、B
レジスタ(12)には3ビット右シフト回路(11)を動作
させてR1レジスタの値を右に3ビット算術シフトさせて
から取り込む。
ALU部(13)で加算を行い、それをR2レジスタに格納す
る。こうしてR2レジスタには“ベースアドレス+ビット
オフセット/8"の値が格納される。一方、オフセットレ
ジスタ(19)が、S2バス(2)上のR1レジスタの値をオ
フセット正規化回路(18)を介し“通常入力”モードで
取り込む。オフセットレジスタ(19)はサイズ情報に応
じてオフセットレジスタ(19)の上位ビットが0にな
る。サイズがバイトの場合はオフセットレジスタ(19)
の上位2ビットを0に、ハーフワードの場合には上位1
ビットを0に、ワードの場合にはそのまま取り込む。つ
まり、オフセットレジスタ(19)はビットオフセットの
うちサイズに応じて有効な下位ビットの値だけを保持し
ている。
第2サイクルで、正規化アドレスと正規化ビットオフ
セットを得ることができる。すなわち、R2レジスタの値
をアドレスアライメント回路(8)を介し“アライメン
ト入力”モードでメモリアドレスレジスタ(6)に入力
する。メモリアドレスレジスタ(6)にはサイズ情報に
応じて下位ビットが0になるため、アクセスサイズでア
ライメントをとることができ、正規化アドレスを得るこ
とができる。また、R2レジスタの値をS2バス(2)にも
出力させ、オフセット正規化回路18を介してオフセット
レジスタ(19)に“正規化入力”モードで取り込む。オ
フセットレジスタ(19)の上位ビットにはサイズ情報に
応じてR2レジスタの値の下位ビットが入る。この値をD
バス(3)に出力し、R2レジスタに格納する。こうして
R2レジスタに正規化ビットオフセットを得ることができ
る。
以上の処理でメモリアドレスレジスタ(6)には正規
化アドレスが、R2レジスタには正規化ビットオフセット
が格納される。第3サイクル以降で、得られた正規化ア
ドレスと正規化ビットオフセットを用いてそれぞれの命
令固有のビット操作の処理が行われる。
このように、上記データ処理装置では正規化アドレス
及び正規化ビットオフセットを獲得するための処理を2
サイクルで実行できる。また、定数を使用しなくてもよ
い。
以上のような方法でTRON仕様のビット操作命令を実行
できる。ここではビット操作命令を例にして説明した
が、その他にもビットフィールドを処理する命令などの
ようにベースアドレスとビットオフセット値によってア
クセスすべきメモリ領域が決まるような命令には本発明
のデータ処理装置が有効である。なお、本実施例では、
S2バス(2)とBレジスタ(12)との間に3ビット右シ
フト回路(11)があるが、これが、Bレジスタ(12)と
ALU部(13)との間にあっても同じ効果を得ることがで
きる。
〔発明の効果〕
以上のように、この発明によれば、第1サイクルにお
いて第2のバスを介して送られてくるビットオフセット
を3ビット右方向にシフトし,第1のバスを介してベー
スアドレスが入力されるALU部に入力する第1の手段
と、前記ALU部の加算結果が第3のバスを介してレジス
タファイルに取り込まれ,第2サイクルにおいて第1の
バスを介して送られてくる第1サイクルで得られる加算
結果をサイズ情報に基づき下位ビットを0にしてアドレ
スレジスタに入力して正規化アドレスを得る第2の手段
と、第1サイクルにおいて前記第2のバスを介して送ら
れてくるビットオフセット及び第2サイクルにおいて該
第2のバスを介して送られてくる第1サイクルで得られ
る加算結果のうちサイズ情報に基づく下位ビットをそれ
ぞれオフセットレジスタの下位ビット及びその上位ビッ
トに入力して正規化ビットオフセットを得る第3の手段
とを備えたので、正規化アドレスと正規化ビットオフセ
ットを定数を使用することなく2サイクルで獲得でき、
したがって、ビット操作命令やビットフィールド操作命
令などのようなアクセスすべきデータがベースアドレス
とビットオフセットで与えられるような命令の実行を高
速に行うことができる。
【図面の簡単な説明】
第1図はこの発明の一実施例によるデータ処理装置のう
ちビット操作命令に用いられる部分のブロック図、第2
図はオフセット正規化回路の詳細なブロック図、第3図
はS2バスからの入力時におけるオフセット正規化回路の
動作を説明する図、第4図はアドレスアライメント回路
の詳細なブロック図、第5図はアドレスアライメン回路
の動作を説明する図、第6図は前記データ処理装置のビ
ット操作命令の実行シーケンスを示したフローチャー
ト、第7図は従来のデータ処理装置においてビット操作
命令を実行する部分のブロック図、第8図(a),
(b)はビット操作命令を行う場合に、操作対象となる
ビットの位置がベースアドレスとビットオフセットによ
ってどのように指定されるかを説明した図、第9図
(a)〜(c)はビット操作命令を行う場合に、アクセ
スサイズによってアクセスされるメモリ領域の範囲がど
うなるかを説明した図、第10図(a)〜(b)はベース
アドレスとビットオフセットから正規化アドレスと正規
化ビットオフセットがどのようにして求められるかを説
明した図、第11図は前記従来のデータ処理装置のビット
操作命令の実行シーケンスを示したフローチャートであ
る。 図において、(1)はS1バス(第1のバス)、(2)は
S2バス(第2のバス)、(3)はDバス(第3のバ
ス)、(4)はレジスタファイル、(5)は定数ROM
部、(6)はメモリアドレスレジスタ、(7)はカウン
タ、(8)はアドレスアライメント回路(第2の手
段)、(9)はメモリデータレジスタ、(10)はAレジ
スタ、(11)は3ビット右シフト回路(第1の手段)、
(12)はBレジスタ、(13)はALU部(算術論理演算
部)、(14)はOレジスタ、(15)はバレルシフタ部、
(16)はシフト幅レジスタ、(17)はプライオリティエ
ンコーダ部、(18)はオフセット正規化回路(第3の手
段〕、(19)はオフセットレジスタ、(21)はセレクタ
1、(22)はセレクタ2、(23)はセレクタ3、(24)
はセレクタ4、(25)はセレクタ5、(31)はディスチ
ャージ回路1、(32)はディスチャージ回路2である。 なお、各図中、同一符号は同一または相当する部分を示
す。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】第1のバスと、第2のバスと、第3のバス
    と、前記第3のバスからデータを取り込み第1,第2のバ
    スへ出力するレジスタファイルと、前記第1,第2のバス
    から送られてくるデータ間で算術論理演算を行い、その
    結果を第3のバスに出力する算術論理演算部と、アクセ
    スするアドレスを前記第1のバスを介して取り込むアド
    レスレジスタと、前記第2のバスを介してビットオフセ
    ットがセットされ、第3のバスに出力するオフセットレ
    ジスタとを備え、アクセスすべきデータがベースアドレ
    スとビットオフセットによって与えられる命令を実行す
    る際に、前記ベースアドレスとビットオフセットからア
    クセスサイズに応じて正規化アドレス,正規化ビットオ
    フセットを求めることにより、ビット操作命令やビット
    フィールド操作命令の実行を可能としたデータ処理装置
    において、 第1サイクルにおいて前記第2のバスを介して送られて
    くるビットオフセットを3ビット右方向にシフトし、第
    1のバスを介してベースアドレスが入力される算術論理
    演算部に入力する第1の手段と、前記算術論理演算部の
    加算結果が第3のバスを介してレジスタファイルに取り
    込まれ、第2サイクルにおいて前記第1のバスを介して
    送られてくる第1サイクルで得られる加算結果をサイズ
    情報に基づき下位ビットを0にしてアドレスレジスタに
    入力して正規化アドレスを得る第2の手段と、第1サイ
    クルにおいて前記第2のバスを介して送られてくるビッ
    トオフセット及び第2サイクルにおいて該第2のバスを
    介して送られてくる第1サイクルで得られる加算結果の
    うちサイズ情報に基づく下位ビットをそれぞれ前記オフ
    セットレジスタの下位ビット及びその上位ビットに入力
    して正規化ビットオフセットを得る第3の手段とを備え
    たことを特徴とするデータ処理装置。
JP1154886A 1989-06-16 1989-06-16 データ処理装置 Expired - Fee Related JPH0833821B2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JPH0319029A JPH0319029A (ja) 1991-01-28
JPH0833821B2 true JPH0833821B2 (ja) 1996-03-29

Family

ID=15594108

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1154886A Expired - Fee Related JPH0833821B2 (ja) 1989-06-16 1989-06-16 データ処理装置

Country Status (1)

Country Link
JP (1) JPH0833821B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6484957B2 (ja) * 2014-08-25 2019-03-20 サンケン電気株式会社 演算処理装置

Also Published As

Publication number Publication date
JPH0319029A (ja) 1991-01-28

Similar Documents

Publication Publication Date Title
US5132898A (en) System for processing data having different formats
US5053953A (en) Apparatus for aligning arithmetic operands during fetch
KR940009094B1 (ko) 데이타처리 시스템
US5440702A (en) Data processing system with condition code architecture for executing single instruction range checking and limiting operations
JPH06332792A (ja) データ処理装置及びそのデータ読み出し制御回路,データ書き込み制御回路
JPH087083A (ja) 算術及び論理混合組合せを形成する3入力算術論理装置
JPH087084A (ja) 第1、第2及び第3の入力の第1のブール組合せプラス第1、第2及び第3の入力の第2のブール組合せの和を形成する3入力算術論理装置
JPH06332695A (ja) データ処理装置及びその制御回路
WO1998020422A1 (en) Eight-bit microcontroller having a risc architecture
JPS6014338A (ja) 計算機システムにおける分岐機構
US5682339A (en) Method for performing rotate through carry using a 32 bit barrel shifter and counter
US4631672A (en) Arithmetic control apparatus for a pipeline processing system
JPS6227412B2 (ja)
KR19980052740A (ko) 디지탈 신호 처리기에서의 2배 정밀도 곱셈연산 수행방법
US5546551A (en) Method and circuitry for saving and restoring status information in a pipelined computer
JP2690406B2 (ja) プロセッサおよびデータ処理システム
JPH0477346B2 (ja)
JPH034936B2 (ja)
US5754460A (en) Method for performing signed division
KR950012089B1 (ko) 마이크로프로세서
JP2520882B2 (ja) デ−タ処理装置およびデ−タ処理方法
JPH0833821B2 (ja) データ処理装置
US4604722A (en) Decimal arithmetic logic unit for doubling or complementing decimal operand
JP2615746B2 (ja) ビット操作回路
JPS5831471A (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