JP3043861B2 - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JP3043861B2 JP3043861B2 JP3252370A JP25237091A JP3043861B2 JP 3043861 B2 JP3043861 B2 JP 3043861B2 JP 3252370 A JP3252370 A JP 3252370A JP 25237091 A JP25237091 A JP 25237091A JP 3043861 B2 JP3043861 B2 JP 3043861B2
- Authority
- JP
- Japan
- Prior art keywords
- bits
- data
- instruction
- register
- general
- 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
Links
Landscapes
- Executing Machine-Instructions (AREA)
Description
【0001】
【産業上の利用分野】本発明は、データ処理装置に関
し、特に、マイクロプロセッサ等において、所定のデー
タサイズ、方向、及びデータサイズ以下の指定されたビ
ット数により、データの桁移動を行なう命令を備えるデ
ータ処理装置に関する。
し、特に、マイクロプロセッサ等において、所定のデー
タサイズ、方向、及びデータサイズ以下の指定されたビ
ット数により、データの桁移動を行なう命令を備えるデ
ータ処理装置に関する。
【0002】
【従来の技術】近年、半導体集積回路の高集積化技術の
進歩に伴い、マイクロプロセッサ等の小型の命令処理装
置においても、その機能は豊富になって来ている。例え
ば、ザイログ社のZ80は、8ビットマイクロプロセッ
サでありながら豊富な命令セットを有している。ここで
は、Z80を例に採り、Z80の命令セットの1つであ
る4ビット単位のBCD形桁移動命令、RLD命令及び
RRD命令について言及し、問題点を指摘する。
進歩に伴い、マイクロプロセッサ等の小型の命令処理装
置においても、その機能は豊富になって来ている。例え
ば、ザイログ社のZ80は、8ビットマイクロプロセッ
サでありながら豊富な命令セットを有している。ここで
は、Z80を例に採り、Z80の命令セットの1つであ
る4ビット単位のBCD形桁移動命令、RLD命令及び
RRD命令について言及し、問題点を指摘する。
【0003】このRLD命令及びRRD命令は、それぞ
れ一度に4ビットずつ左右に移動する命令で、Aレジス
タ及びHLペアレジスタで示されるメモリ内のアドレス
の内容に作用し、BCD形データの操作に有効である。
これらの命令の作用を図8(1)及び(2)に要約して
いる。即ち、8ビットのAレジスタの下位4ビットを上
位群、HLペアレジスタの示すアドレスの8ビットデー
タの上位4ビット及び下位4ビットを下位群とし、この
上位群及び下位群を連結したものを、4ビット単位で左
右にローテートするものである。この時、Aレジスタの
データ及びHLペアレジスタが示すアドレスのデータの
データサイズは8ビット固定であり、ローテートするビ
ット数も4ビット単位と固定である。
れ一度に4ビットずつ左右に移動する命令で、Aレジス
タ及びHLペアレジスタで示されるメモリ内のアドレス
の内容に作用し、BCD形データの操作に有効である。
これらの命令の作用を図8(1)及び(2)に要約して
いる。即ち、8ビットのAレジスタの下位4ビットを上
位群、HLペアレジスタの示すアドレスの8ビットデー
タの上位4ビット及び下位4ビットを下位群とし、この
上位群及び下位群を連結したものを、4ビット単位で左
右にローテートするものである。この時、Aレジスタの
データ及びHLペアレジスタが示すアドレスのデータの
データサイズは8ビット固定であり、ローテートするビ
ット数も4ビット単位と固定である。
【0004】例えば、メモリに8進数のデータがn番地
からn+m番地まで格納されているとし、n番地からn
+m番地までのデータを全体的に3ビットシフトするこ
とをZ80の命令で行なうとする。
からn+m番地まで格納されているとし、n番地からn
+m番地までのデータを全体的に3ビットシフトするこ
とをZ80の命令で行なうとする。
【0005】上述のように、ローテート命令は4ビット
単位のため、先ずSLA(算術シフト)命令を実行して
n番地の8ビットデータの最下位から”0”をシフト
し、それによってAレジスタの7ビット目からシフトア
ウトされたデータをキャリーフラグに格納する。次に、
RL(左ローテート)命令を実行して、キャリーフラグ
をn+1番地の8ビットデータの最上位に連結したもの
を左ローテートする。この結果、キャリーフラグにはn
+1番地の8ビットデータの最上位ビットがシフトされ
格納される。次に、もう一度RL命令によりn+2番地
の最上位にキャリーフラグを連結したものを左ローテー
トする。以上の手順をn+m番地まで繰り返し行なう
と、n番地からn+m番地までのデータを全体的に1ビ
ットシフトしたことになる。従って、3ビットシフトさ
せるためには、以上の動作を3回繰り返さなければなら
ず、沢山の命令数及びサイクル数を必要とする。
単位のため、先ずSLA(算術シフト)命令を実行して
n番地の8ビットデータの最下位から”0”をシフト
し、それによってAレジスタの7ビット目からシフトア
ウトされたデータをキャリーフラグに格納する。次に、
RL(左ローテート)命令を実行して、キャリーフラグ
をn+1番地の8ビットデータの最上位に連結したもの
を左ローテートする。この結果、キャリーフラグにはn
+1番地の8ビットデータの最上位ビットがシフトされ
格納される。次に、もう一度RL命令によりn+2番地
の最上位にキャリーフラグを連結したものを左ローテー
トする。以上の手順をn+m番地まで繰り返し行なう
と、n番地からn+m番地までのデータを全体的に1ビ
ットシフトしたことになる。従って、3ビットシフトさ
せるためには、以上の動作を3回繰り返さなければなら
ず、沢山の命令数及びサイクル数を必要とする。
【0006】
【発明が解決しようとする課題】以上のように、従来の
データ処理装置では、連続するデータを任意のビット数
だけ桁移動操作する場合、沢山の命令数及びサイクル数
を必要とし、処理に時間がかかるという欠点があった。
データ処理装置では、連続するデータを任意のビット数
だけ桁移動操作する場合、沢山の命令数及びサイクル数
を必要とし、処理に時間がかかるという欠点があった。
【0007】本発明は、上記問題点を解決するもので、
その目的は、所定のデータサイズ、方向、及びデータサ
イズ以下の指定されたビット数により、データの桁移動
を行なう命令を用意して、連続するデータを任意のビッ
ト数だけ桁移動する操作を高速に処理するデータ処理装
置を提供することである。
その目的は、所定のデータサイズ、方向、及びデータサ
イズ以下の指定されたビット数により、データの桁移動
を行なう命令を用意して、連続するデータを任意のビッ
ト数だけ桁移動する操作を高速に処理するデータ処理装
置を提供することである。
【0008】
【課題を解決するための手段】前記課題を解決するため
に、本発明の特徴は、図1に示す如く、nビット(nは
任意の正整数)幅の第1のデータ格納手段1と、mビッ
ト(mは任意の正整数)幅の第2のデータ格納手段3
と、命令語を保持する命令レジスタ5と、前記命令レジ
スタ5の命令を解読して実行制御する制御手段7と、命
令を実行する演算手段9とを具備し、前記制御手段7
は、所定の命令解読時に、命令語情報で指定されたビッ
ト数k(kは任意の正整数)及び方向に従って、前記第
1のデータ格納手段1の下位kビットを上位群とし、前
記第2のデータ格納手段3の全ビットを下位群として、
これら上位群及び下位群を連結したデータを前記方向に
kビット桁移動し、結果の上位kビットを前記第1のデ
ータ格納手段1の下位kビットに、結果の残りの下位ビ
ットを前記第2のデータ格納手段3に格納することであ
る。
に、本発明の特徴は、図1に示す如く、nビット(nは
任意の正整数)幅の第1のデータ格納手段1と、mビッ
ト(mは任意の正整数)幅の第2のデータ格納手段3
と、命令語を保持する命令レジスタ5と、前記命令レジ
スタ5の命令を解読して実行制御する制御手段7と、命
令を実行する演算手段9とを具備し、前記制御手段7
は、所定の命令解読時に、命令語情報で指定されたビッ
ト数k(kは任意の正整数)及び方向に従って、前記第
1のデータ格納手段1の下位kビットを上位群とし、前
記第2のデータ格納手段3の全ビットを下位群として、
これら上位群及び下位群を連結したデータを前記方向に
kビット桁移動し、結果の上位kビットを前記第1のデ
ータ格納手段1の下位kビットに、結果の残りの下位ビ
ットを前記第2のデータ格納手段3に格納することであ
る。
【0009】本発明の第2の特徴は、請求項1に記載の
データ処理装置において、前記データ処理装置は、ワン
チップ上に実現されることである。
データ処理装置において、前記データ処理装置は、ワン
チップ上に実現されることである。
【0010】
【作用】本発明のデータ処理装置では、命令レジスタ5
に所定の命令がセットされた時に、制御手段7は、命令
語情報で指定されたビット数k(kは任意の正整数)及
び方向に従って、前記第1のデータ格納手段1の下位k
ビットを上位群とし、前記第2のデータ格納手段3の全
ビットを下位群として、これら上位群及び下位群を連結
したデータを前記方向にkビット桁移動し、結果の上位
kビットを前記第1のデータ格納手段1の下位kビット
に、結果の残りの下位ビットを前記第2のデータ格納手
段3に格納するようにしている。
に所定の命令がセットされた時に、制御手段7は、命令
語情報で指定されたビット数k(kは任意の正整数)及
び方向に従って、前記第1のデータ格納手段1の下位k
ビットを上位群とし、前記第2のデータ格納手段3の全
ビットを下位群として、これら上位群及び下位群を連結
したデータを前記方向にkビット桁移動し、結果の上位
kビットを前記第1のデータ格納手段1の下位kビット
に、結果の残りの下位ビットを前記第2のデータ格納手
段3に格納するようにしている。
【0011】これにより、命令語情報で指定されたビッ
ト数k及び方向に従って、データの桁移動を行なう命令
を用意して、連続するデータ等を任意のビット数だけ桁
移動する操作を高速に処理することができる。
ト数k及び方向に従って、データの桁移動を行なう命令
を用意して、連続するデータ等を任意のビット数だけ桁
移動する操作を高速に処理することができる。
【0012】
【実施例】以下、本発明に係る実施例を図面に基づいて
説明する。
説明する。
【0013】図2に本発明の一実施例に係るデータ処理
装置の構成図を示す。
装置の構成図を示す。
【0014】本実施例のデータ処理装置は、16ビット
のマイクロプロセッサ10(以下MPUと略記する)と
1ワードが16ビットのメモリ30から構成され、デー
タバス27及びアドレスバス29を介して接続されてい
る。
のマイクロプロセッサ10(以下MPUと略記する)と
1ワードが16ビットのメモリ30から構成され、デー
タバス27及びアドレスバス29を介して接続されてい
る。
【0015】MPU10は、メモリ30とのインタフェ
ースを司り、データラッチDR、アドレスラッチAR、
及びテンポラリレジスタTR0,TR1を備えるバスイ
ンタフェースユニット13(以下BIUと略記する)
と、4個の命令レジスタIR1〜IR4からなる命令レ
ジスタ群5と、命令レジスタ群5からの命令を解読する
命令デコーダ6と、バンクポインタBP、各種スタック
ポインタSP、及びレジスタ群R0〜R15からなる汎
用レジスタ群11と、演算等で使用する定数を保持する
定数ROM15と、各種演算を実行する演算器9と、演
算器9の入力側に接続されて桁移動命令等で使用するシ
フトレジスタSR1及びSR2とから構成され、各構成
要素はXバス21、Yバス23、及びZバス25を介し
てデータのやり取りを行なう。また、図2において、太
線はバスまたはデータのやり取りを行なう信号線、細線
は制御信号等の信号線を示している。
ースを司り、データラッチDR、アドレスラッチAR、
及びテンポラリレジスタTR0,TR1を備えるバスイ
ンタフェースユニット13(以下BIUと略記する)
と、4個の命令レジスタIR1〜IR4からなる命令レ
ジスタ群5と、命令レジスタ群5からの命令を解読する
命令デコーダ6と、バンクポインタBP、各種スタック
ポインタSP、及びレジスタ群R0〜R15からなる汎
用レジスタ群11と、演算等で使用する定数を保持する
定数ROM15と、各種演算を実行する演算器9と、演
算器9の入力側に接続されて桁移動命令等で使用するシ
フトレジスタSR1及びSR2とから構成され、各構成
要素はXバス21、Yバス23、及びZバス25を介し
てデータのやり取りを行なう。また、図2において、太
線はバスまたはデータのやり取りを行なう信号線、細線
は制御信号等の信号線を示している。
【0016】本実施例のデータ処理装置では、各命令は
次のようにして実行される。
次のようにして実行される。
【0017】先ず、メモリ30からデータバス27を介
してBIU13内のデータラッチDRに命令をフェッチ
する。次にフェッチした命令を命令レジスタ5のキュー
(queue )に取り込む。ここで、命令レジスタ群5は4
個の命令レジスタIR1〜IR4によるキューを構成し
ているが、これはバスアクセスが無い時に命令を先取り
してキューに取り込んでおくことにより、データ処理の
高速化を図るものである。次に、命令デコーダ6は命令
レジスタ群5のキューから順に命令を取り込み、該命令
を解読してその情報を制御部7へ送る。制御部7はその
情報に基づき制御信号を各構成要素に送り、命令を実行
させる。尚、制御部7は、演算器9、BIU13、及び
その他構成要素から信号を受け取り、更に各構成要素に
制御信号を返している。また、Xバス21、Yバス2
3、及びZバス25を介して、コンディション・コード
(CC)等を含むプログラム・ステイタス・ワード(P
SW)の制御等を行っている。
してBIU13内のデータラッチDRに命令をフェッチ
する。次にフェッチした命令を命令レジスタ5のキュー
(queue )に取り込む。ここで、命令レジスタ群5は4
個の命令レジスタIR1〜IR4によるキューを構成し
ているが、これはバスアクセスが無い時に命令を先取り
してキューに取り込んでおくことにより、データ処理の
高速化を図るものである。次に、命令デコーダ6は命令
レジスタ群5のキューから順に命令を取り込み、該命令
を解読してその情報を制御部7へ送る。制御部7はその
情報に基づき制御信号を各構成要素に送り、命令を実行
させる。尚、制御部7は、演算器9、BIU13、及び
その他構成要素から信号を受け取り、更に各構成要素に
制御信号を返している。また、Xバス21、Yバス2
3、及びZバス25を介して、コンディション・コード
(CC)等を含むプログラム・ステイタス・ワード(P
SW)の制御等を行っている。
【0018】次に、本実施例で実行する桁移動命令の仕
様を図3を参照して説明する。
様を図3を参照して説明する。
【0019】先ずRML(Rotate Multibit Left)命令
は、命令語で指定される桁移動ビット幅をkビットとす
ると、第1のデータ格納手段1として汎用レジスタRn
(n=0〜15)を、第2のデータ格納手段3として汎
用レジスタRm(m=0〜15)またはメモリ30の特
定番地を、それぞれ使用して、汎用レジスタRnの下位
kビットと汎用レジスタRmまたはメモリ30の全ビッ
トとを連結して、kビット左にローテートする。尚、メ
モリ30の特定番地は、例えば汎用レジスタRj(j=
0〜15;j≠n)で指定されるものとする。
は、命令語で指定される桁移動ビット幅をkビットとす
ると、第1のデータ格納手段1として汎用レジスタRn
(n=0〜15)を、第2のデータ格納手段3として汎
用レジスタRm(m=0〜15)またはメモリ30の特
定番地を、それぞれ使用して、汎用レジスタRnの下位
kビットと汎用レジスタRmまたはメモリ30の全ビッ
トとを連結して、kビット左にローテートする。尚、メ
モリ30の特定番地は、例えば汎用レジスタRj(j=
0〜15;j≠n)で指定されるものとする。
【0020】また、RMR(Rotate Multibit Right )
命令は、RML命令と同様で、指定されたkビット右に
ローテートする。
命令は、RML命令と同様で、指定されたkビット右に
ローテートする。
【0021】このRML命令またはRMR命令が実行さ
れる時の様子を、図4を使って説明する。同図は、第1
のデータ格納手段1を汎用レジスタR0、第2のデータ
格納手段3をメモリの特定番地(m番地)とした場合
に、RML命令(10ビットの桁移動)を実行する時の
シフトレジスタSR1及びSR2の遷移、並びに演算器
9の演算処理の様子を説明する図である。
れる時の様子を、図4を使って説明する。同図は、第1
のデータ格納手段1を汎用レジスタR0、第2のデータ
格納手段3をメモリの特定番地(m番地)とした場合
に、RML命令(10ビットの桁移動)を実行する時の
シフトレジスタSR1及びSR2の遷移、並びに演算器
9の演算処理の様子を説明する図である。
【0022】先ず、汎用レジスタR0のデータがXバス
21を経てシフトレジスタSR1に転送される(図4
(1)参照)。同時にアドレスラッチARから出力され
たアドレスm番地に対応するデータがデータバス27及
びYバス23を経てシフトレジスタSR2に転送される
(図4(2)参照)。次に、シフトレジスタSR1のデ
ータを図4(3)に示すように10ビット右にシフト
し、更にシフトレジスタSR1及びSR2を連結して1
0ビット左にシフトすると、シフトレジスタSR1及び
SR2の内容は図4(4)及び(5)のようになる。こ
のシフトレジスタSR1及びSR2のデータを、それぞ
れBIU13内のテンポラリレジスタTR0及びTR1
に一時的に格納する。
21を経てシフトレジスタSR1に転送される(図4
(1)参照)。同時にアドレスラッチARから出力され
たアドレスm番地に対応するデータがデータバス27及
びYバス23を経てシフトレジスタSR2に転送される
(図4(2)参照)。次に、シフトレジスタSR1のデ
ータを図4(3)に示すように10ビット右にシフト
し、更にシフトレジスタSR1及びSR2を連結して1
0ビット左にシフトすると、シフトレジスタSR1及び
SR2の内容は図4(4)及び(5)のようになる。こ
のシフトレジスタSR1及びSR2のデータを、それぞ
れBIU13内のテンポラリレジスタTR0及びTR1
に一時的に格納する。
【0023】次に、定数ROM15より、下位10ビッ
トが”1”で残りの上位ビットが”0”の指定されたビ
ット幅のデータと、汎用レジスタR0のデータを演算器
9に転送し、図4(6)に示すように、これらの論理積
(AND)を求める。更に図4(7)に示すように、こ
の論理積の結果とテンポラリレジスタTR1に一時的に
格納したシフトレジスタSR2のデータの論理和(O
R)を取る。
トが”1”で残りの上位ビットが”0”の指定されたビ
ット幅のデータと、汎用レジスタR0のデータを演算器
9に転送し、図4(6)に示すように、これらの論理積
(AND)を求める。更に図4(7)に示すように、こ
の論理積の結果とテンポラリレジスタTR1に一時的に
格納したシフトレジスタSR2のデータの論理和(O
R)を取る。
【0024】この論理和の結果をメモリ30のm番地へ
格納し、またテンポラリレジスタTR0に一時的に格納
されているシフトレジスタSR1のデータを汎用レジス
タR0に転送する。
格納し、またテンポラリレジスタTR0に一時的に格納
されているシフトレジスタSR1のデータを汎用レジス
タR0に転送する。
【0025】以上の動作によりRML命令が実行される
が、RMR命令の場合も同様に行なわれる。
が、RMR命令の場合も同様に行なわれる。
【0026】次に本実施例のデータ処理装置を具体的に
使用する場合の適用例を説明する。
使用する場合の適用例を説明する。
【0027】図5は第1の適用例を示すもので、第1の
データ格納手段1を汎用レジスタRn、第2のデータ格
納手段3をメモリ30とし、メモリ30のm番地のデー
タの下位10ビットに汎用レジスタRnの下位10ビッ
トのデータを挿入し、m番地の上位10ビットのデータ
をm+2番地の下位10ビットに移動させ、以降の番地
に順次ずらせていく処理を行なうものである。
データ格納手段1を汎用レジスタRn、第2のデータ格
納手段3をメモリ30とし、メモリ30のm番地のデー
タの下位10ビットに汎用レジスタRnの下位10ビッ
トのデータを挿入し、m番地の上位10ビットのデータ
をm+2番地の下位10ビットに移動させ、以降の番地
に順次ずらせていく処理を行なうものである。
【0028】先ず図5(1)において、汎用レジスタR
n(下位10ビットにデータAが格納されている)とm
番地のデータをRML命令を使用して10ビット左にロ
ーテートする。汎用レジスタRnにはm番地の上位10
ビットのデータBが格納され、図5(2)のようにな
る。次に、汎用レジスタRnとm+2番地のデータとを
RML命令を使用して10ビット左にローテートする。
この時、汎用レジスタRnにはm+2番地の上位10ビ
ットのデータCが格納され、図5(3)のようになる。
同様に、汎用レジスタRnとm+4番地のデータをRM
L命令を使用して10ビット左にローテートし、図5
(4)に示すように、汎用レジスタRnにm+4番地の
上位10ビットのデータDが格納される。最後に、汎用
レジスタRnとm+6番地のデータをRML命令を使用
して10ビット左にローテートし、図5(5)に示す最
終状態となる。以上のように、連続する桁移動動作を同
じ命令を繰り返すだけで行なうことができる。
n(下位10ビットにデータAが格納されている)とm
番地のデータをRML命令を使用して10ビット左にロ
ーテートする。汎用レジスタRnにはm番地の上位10
ビットのデータBが格納され、図5(2)のようにな
る。次に、汎用レジスタRnとm+2番地のデータとを
RML命令を使用して10ビット左にローテートする。
この時、汎用レジスタRnにはm+2番地の上位10ビ
ットのデータCが格納され、図5(3)のようになる。
同様に、汎用レジスタRnとm+4番地のデータをRM
L命令を使用して10ビット左にローテートし、図5
(4)に示すように、汎用レジスタRnにm+4番地の
上位10ビットのデータDが格納される。最後に、汎用
レジスタRnとm+6番地のデータをRML命令を使用
して10ビット左にローテートし、図5(5)に示す最
終状態となる。以上のように、連続する桁移動動作を同
じ命令を繰り返すだけで行なうことができる。
【0029】次に、図6に第2の適用例の動作説明図を
示す。本例は、第1のデータ格納手段1を汎用レジスタ
Rn、第2のデータ格納手段3をメモリ30とし、第1
の適用例とは逆に、メモリ30のm+6番地のデータの
下位10ビットのデータを汎用レジスタRnの下位10
ビットに挿入し、m+6番地の下位10ビットのデータ
をm+4番地の上位10ビットに移動させ、1つ前の番
地に順次ずらせていく処理を行なうものである。
示す。本例は、第1のデータ格納手段1を汎用レジスタ
Rn、第2のデータ格納手段3をメモリ30とし、第1
の適用例とは逆に、メモリ30のm+6番地のデータの
下位10ビットのデータを汎用レジスタRnの下位10
ビットに挿入し、m+6番地の下位10ビットのデータ
をm+4番地の上位10ビットに移動させ、1つ前の番
地に順次ずらせていく処理を行なうものである。
【0030】RMR命令を使用して10ビット右にロー
テートすること以外、第1の適用例と同様である。この
ようにRMR命令は、下位番地から上位番地に向かって
データを移動させていく場合に有効である。
テートすること以外、第1の適用例と同様である。この
ようにRMR命令は、下位番地から上位番地に向かって
データを移動させていく場合に有効である。
【0031】次に、図7に第3の適用例の動作説明図を
示す。本例は、第1のデータ格納手段1を汎用レジスタ
Rn、第2のデータ格納手段3を連続する汎用レジスタ
RmからRm+3とし、汎用レジスタRmのデータの下
位10ビットに汎用レジスタRnの下位10ビットのデ
ータを挿入し、汎用レジスタRmの上位10ビットのデ
ータを汎用レジスタRm+1の下位10ビットに移動さ
せ、以降の汎用レジスタに順次ずらせていく処理を行な
うものである。
示す。本例は、第1のデータ格納手段1を汎用レジスタ
Rn、第2のデータ格納手段3を連続する汎用レジスタ
RmからRm+3とし、汎用レジスタRmのデータの下
位10ビットに汎用レジスタRnの下位10ビットのデ
ータを挿入し、汎用レジスタRmの上位10ビットのデ
ータを汎用レジスタRm+1の下位10ビットに移動さ
せ、以降の汎用レジスタに順次ずらせていく処理を行な
うものである。
【0032】図7(1)において、汎用レジスタRnの
下位10ビットのデータAと汎用レジスタRmのデータ
をRML命令を使用して10ビット左にローテートする
と、図7(2)に示すように、汎用レジスタRnには、
汎用レジスタRmの上位10ビットのデータBが格納さ
れる。次に、汎用レジスタRnのデータBと汎用レジス
タRm+1のデータとをRML命令を使用して10ビッ
ト左にローテートする。この時、汎用レジスタRnには
汎用レジスタRm+1の上位10ビットのデータCが格
納され、図7(3)のようになる。同様に、汎用レジス
タRnのデータCと汎用レジスタRm+2のデータをR
ML命令を使用して10ビット左にローテートし、図7
(4)に示すように、汎用レジスタRnに汎用レジスタ
Rm+2の上位10ビットのデータDが格納される。最
後に、汎用レジスタRnと汎用レジスタRm+3のデー
タをRML命令を使用して10ビット左にローテート
し、図7(5)に示す最終状態となる。
下位10ビットのデータAと汎用レジスタRmのデータ
をRML命令を使用して10ビット左にローテートする
と、図7(2)に示すように、汎用レジスタRnには、
汎用レジスタRmの上位10ビットのデータBが格納さ
れる。次に、汎用レジスタRnのデータBと汎用レジス
タRm+1のデータとをRML命令を使用して10ビッ
ト左にローテートする。この時、汎用レジスタRnには
汎用レジスタRm+1の上位10ビットのデータCが格
納され、図7(3)のようになる。同様に、汎用レジス
タRnのデータCと汎用レジスタRm+2のデータをR
ML命令を使用して10ビット左にローテートし、図7
(4)に示すように、汎用レジスタRnに汎用レジスタ
Rm+2の上位10ビットのデータDが格納される。最
後に、汎用レジスタRnと汎用レジスタRm+3のデー
タをRML命令を使用して10ビット左にローテート
し、図7(5)に示す最終状態となる。
【0033】また、第2の適用例と同様にRMR命令を
使用して、連続する汎用レジスタの桁移動動作を行なう
こともできる。
使用して、連続する汎用レジスタの桁移動動作を行なう
こともできる。
【0034】以上説明したように、本実施例のデータ処
理装置では、第1及び第2のデータ格納手段1及び3の
の間の桁移動操作において、右ローテートの場合には第
2のデータ格納手段3の指定された桁移動数分の下位ビ
ットのデータが、左ローテートの場合には第2のデータ
格納手段3の指定された桁移動数分の上位ビットのデー
タが、それぞれ第1のデータ格納手段1の下位に格納さ
れ、これを次のローテート命令におけるシフトデータと
して使用できるため、連続するメモリ或いは汎用レジス
タのデータの桁移動動作を、同じ命令を繰り返すだけで
行なうことができる。例えば、ワードプロセッサ等の文
書処理において、字句の挿入操作等を行なう場合、アセ
ンブラ命令レベルでは上述した適用例のような操作を行
なうこととなるが、従来沢山の命令数及びサイクル数を
必要としていたものを、少ない命令数で高速に処理する
ことが可能となる。
理装置では、第1及び第2のデータ格納手段1及び3の
の間の桁移動操作において、右ローテートの場合には第
2のデータ格納手段3の指定された桁移動数分の下位ビ
ットのデータが、左ローテートの場合には第2のデータ
格納手段3の指定された桁移動数分の上位ビットのデー
タが、それぞれ第1のデータ格納手段1の下位に格納さ
れ、これを次のローテート命令におけるシフトデータと
して使用できるため、連続するメモリ或いは汎用レジス
タのデータの桁移動動作を、同じ命令を繰り返すだけで
行なうことができる。例えば、ワードプロセッサ等の文
書処理において、字句の挿入操作等を行なう場合、アセ
ンブラ命令レベルでは上述した適用例のような操作を行
なうこととなるが、従来沢山の命令数及びサイクル数を
必要としていたものを、少ない命令数で高速に処理する
ことが可能となる。
【0035】尚、データサイズは任意に設定することが
可能であり、また桁移動のビット数はデータサイズ以下
のビット数であれば任意に指定できる。
可能であり、また桁移動のビット数はデータサイズ以下
のビット数であれば任意に指定できる。
【0036】
【発明の効果】以上のように本発明によれば、命令語情
報で指定されたビット数k及び方向に従って、第1のデ
ータ格納手段の下位kビットを上位群とし、第2のデー
タ格納手段のデータを下位群として、これらを連結した
データを指定方向にkビット桁移動し、結果の上位kビ
ットを第1のデータ格納手段の下位kビットに、残りの
下位ビットを第2のデータ格納手段に格納する命令を命
令セットに用意したので、任意のビット単位で任意の方
向に桁移動することができ、連続するデータを任意のビ
ット数だけ桁移動する操作等を高速に処理しうるデータ
処理装置を提供することができる。
報で指定されたビット数k及び方向に従って、第1のデ
ータ格納手段の下位kビットを上位群とし、第2のデー
タ格納手段のデータを下位群として、これらを連結した
データを指定方向にkビット桁移動し、結果の上位kビ
ットを第1のデータ格納手段の下位kビットに、残りの
下位ビットを第2のデータ格納手段に格納する命令を命
令セットに用意したので、任意のビット単位で任意の方
向に桁移動することができ、連続するデータを任意のビ
ット数だけ桁移動する操作等を高速に処理しうるデータ
処理装置を提供することができる。
【図1】本発明の発明原理図である。
【図2】本発明の一実施例に係るデータ処理装置の構成
図である。
図である。
【図3】本発明の実施例における桁移動命令の仕様説明
図である。
図である。
【図4】本発明の実施例におけるRML命令またはRM
R命令の実行過程を説明する図である。
R命令の実行過程を説明する図である。
【図5】本発明の実施例の第1の適用例を説明する動作
説明図である。
説明図である。
【図6】本発明の実施例の第2の適用例を説明する動作
説明図である。
説明図である。
【図7】本発明の実施例の第3の適用例を説明する動作
説明図である。
説明図である。
【図8】従来のマイクロプロセッサ(Z80)における
桁移動命令の仕様説明図である。
桁移動命令の仕様説明図である。
1 第1のデータ格納手段 3 第2のデータ格納手段 5 命令レジスタ(命令レジスタ群) 6 命令デコーダ 7 制御手段(制御部) 9 演算手段(演算器) 10 マイクロプロセッサ(MPU) 11 汎用レジスタ群 13 バスインタフェースユニット(BIU) 15 定数ROM 21 Xバス 23 Yバス 25 Zバス 27 データバス 29 アドレスバス 30 メモリ DR データラッチ AR アドレスラッチ TR0,TR1 テンポラリレジスタ IR1〜IR4 命令レジスタ BP バンクポインタ SP 各種スタックポインタ R0〜R15 汎用レジスタ SR1,SR2 シフトレジスタ
フロントページの続き (56)参考文献 特開 昭64−81033(JP,A) 特開 昭62−93729(JP,A) 特開 昭53−76721(JP,A) 特開 昭62−58338(JP,A) ”Z8000ユーザーズ・マニュアル[1 ]CPU/MMU編”,第1版,シャー プ株式会社,1983年7月,p.1−173, 1−177 (58)調査した分野(Int.Cl.7,DB名) G06F 9/30 - 9/355 G06F 7/00
Claims (2)
- 【請求項1】 nビット(nは任意の正整数)幅の第1
のデータ格納手段と、mビット(mは任意の正整数)幅
の第2のデータ格納手段と、命令語を保持する命令レジ
スタと、前記命令レジスタの命令を解読して実行制御す
る制御手段と、命令を実行する演算手段とを有し、 前記制御手段は、所定の命令解読時に、命令語情報で指
定されたビット数k(kは任意の正整数)及び方向に従
って、前記第1のデータ格納手段の下位kビットを上位
群とし、前記第2のデータ格納手段の全ビットを下位群
として、これら上位群及び下位群を連結したデータを前
記方向にkビット桁移動し、結果の上位kビットを前記
第1のデータ格納手段の下位kビットに、結果の残りの
下位ビットを前記第2のデータ格納手段に格納すること
を特徴とするデータ処理装置。 - 【請求項2】 前記データ処理装置は、ワンチップ上に
実現されることを特徴とする請求項1に記載のデータ処
理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3252370A JP3043861B2 (ja) | 1991-09-30 | 1991-09-30 | データ処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3252370A JP3043861B2 (ja) | 1991-09-30 | 1991-09-30 | データ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0588887A JPH0588887A (ja) | 1993-04-09 |
JP3043861B2 true JP3043861B2 (ja) | 2000-05-22 |
Family
ID=17236363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3252370A Expired - Fee Related JP3043861B2 (ja) | 1991-09-30 | 1991-09-30 | データ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3043861B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0024312D0 (en) | 2000-10-04 | 2000-11-15 | Advanced Risc Mach Ltd | Single instruction multiple data processing |
US6986023B2 (en) * | 2002-08-09 | 2006-01-10 | Intel Corporation | Conditional execution of coprocessor instruction based on main processor arithmetic flags |
US8504807B2 (en) | 2009-12-26 | 2013-08-06 | Intel Corporation | Rotate instructions that complete execution without reading carry flag |
-
1991
- 1991-09-30 JP JP3252370A patent/JP3043861B2/ja not_active Expired - Fee Related
Non-Patent Citations (1)
Title |
---|
"Z8000ユーザーズ・マニュアル[1]CPU/MMU編",第1版,シャープ株式会社,1983年7月,p.1−173,1−177 |
Also Published As
Publication number | Publication date |
---|---|
JPH0588887A (ja) | 1993-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5204953A (en) | One clock address pipelining in segmentation unit | |
US6061783A (en) | Method and apparatus for manipulation of bit fields directly in a memory source | |
KR940009094B1 (ko) | 데이타처리 시스템 | |
JPS58501560A (ja) | マイクロプロセツサ | |
JPH0414385B2 (ja) | ||
JPH0546383A (ja) | データ処理装置 | |
JP3043861B2 (ja) | データ処理装置 | |
JPH08212075A (ja) | 情報処理装置 | |
JP2559868B2 (ja) | 情報処理装置 | |
JP2690406B2 (ja) | プロセッサおよびデータ処理システム | |
JPH034936B2 (ja) | ||
US5499363A (en) | Microprocessor coupled to coprocessor by coprocessor bus separate from system bus to external memory for increased efficiency | |
JP2748957B2 (ja) | データ処理装置 | |
JP2703884B2 (ja) | データ書込み制御方式 | |
US4723258A (en) | Counter circuit | |
JP2553200B2 (ja) | 情報処理装置 | |
JPS6211736B2 (ja) | ||
JPS58178464A (ja) | 並列演算処理装置 | |
JPH0831033B2 (ja) | データ処理装置 | |
JP2001216136A (ja) | 加算回路およびプロセッサ | |
JPH0524537B2 (ja) | ||
JPS6230455B2 (ja) | ||
JP2746775B2 (ja) | 中央処理装置 | |
JP2905989B2 (ja) | 入出力制御装置 | |
JP2667810B2 (ja) | ベクトル処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080310 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090310 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100310 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100310 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110310 Year of fee payment: 11 |
|
LAPS | Cancellation because of no payment of annual fees |