Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP2878250B2 - Data processing device - Google Patents
[go: Go Back, main page]

JP2878250B2 - Data processing device - Google Patents

Data processing device

Info

Publication number
JP2878250B2
JP2878250B2 JP9261556A JP26155697A JP2878250B2 JP 2878250 B2 JP2878250 B2 JP 2878250B2 JP 9261556 A JP9261556 A JP 9261556A JP 26155697 A JP26155697 A JP 26155697A JP 2878250 B2 JP2878250 B2 JP 2878250B2
Authority
JP
Japan
Prior art keywords
bit
data
register
instruction
bits
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 - Lifetime
Application number
JP9261556A
Other languages
Japanese (ja)
Other versions
JPH10240523A (en
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 JP9261556A priority Critical patent/JP2878250B2/en
Publication of JPH10240523A publication Critical patent/JPH10240523A/en
Application granted granted Critical
Publication of JP2878250B2 publication Critical patent/JP2878250B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】 【0001】 【発明の属する技術分野】本発明は異種サイズ、すなわ
ちデータのビット長が異なるオペランド相互の演算が可
能なデータ処理装置に関するものであり、さらに詳述す
れば、データの最上位ビットをメモリ上の小さなアドレ
スに、最下位ビットをメモリ上の大きなアドレスに格納
したアドレッシング体系のもとで異種サイズのオペラン
ドを操作する演算が可能なデータ処理装置に関するもの
である。 【0002】 【従来の技術】バイトごとにアドレスが付けられ、しか
もバイト中のビットにも順番を示す番号が付けられたメ
モリ上にデータを配置するとき、データの上位側をメモ
リの大きなアドレス側に配置するか小さなアドレス側に
配置するかに関しては従来より多くの議論がなされてき
た。 【0003】データの上位側をメモリの大きなアドレス
に配置し、データの下位側をメモリの小さなアドレスに
配置する方法はリトルエンディアンと称され、データの
上位側をメモリの小さなアドレスに配置し、データの下
位側をメモリの大きなアドレスに配置する方法はビッグ
エンディアン称される。 【0004】近年のデータ処理装置ではメモリのアドレ
スは8ビットを1バイトとしてバイト毎に付けられてい
るのが一般的である。しかし、ビットマップディスプレ
イやバイトの整数倍でないビット長のビットフィールド
を扱う場合にはバイトアドレス以外にビットの位置も示
すビットアドレスも必要となり、ビットアドレスに付い
てもリトルエンディアンとビッグエンディアンの概念が
存在する。バイトとビットがリトルエンディアンかビッ
グエンディアンかを示すバイト極性とビット極性とは必
ずしも一致している必要はない。リトルエンディアンが
よいかビッグエンディアンがよいか、あるいは従来のデ
ータ処理装置がどちらを採用しているかについては D.
Cohen,■On Holy Wars and a Plea forPeace,■ Comput
er, VOl.14, NO.10,Oct. 1981, pp. 48-54.で詳しく述
べられている。 【0005】 【発明が解決しようとする課題】リトルエンディアン、
ビッグエンディアンの問題はメモリ上のバイトやビット
のアドレスについてだけではなく、レジスタ上のバイト
やビットの位置についても存在する。 【0006】バイト極性とビット極性がともにビッグエ
ンディアンであるデータ処理装置でレジスタのバイト長
より短いバイト長のデータをレジスタに格納する場合、
メモリ上に格納する場合と同様に、アドレスの小さい側
に寄せて格納する例を図2に示す。この場合、レジスタ
上のデータサイズには拘らずビット位置を示すビットア
ドレスが同じになるが、2つのレジスタに格納されたデ
ータサイズが異なる2進数データ間で加算などの算術演
算を行う場合には、データの最下位ビットが揃っていな
いため問題となる。算術演算ではデータの最下位ビット
を揃えて演算する必要があり、この場合サイズの短い方
のデータを右方向に算術シフトしてサイズの大きいほう
のデータと最下位ビット位置を揃えてから演算する必要
がある。この算術シフトを行うハードウエアをレジスタ
入出力部やALU 入出力部にもてばデータ処理装置のハー
ドウエアが増大するという問題点がある。また機械語命
令やマイクロプログラムで行えば演算速度が低下すると
いう問題点がある。 【0007】米国モトローラ社製のマイクロプロセッサ
MC68000 シリーズでは図3に示すようにバイト極性を
ビッグエンディアンにしてビット極性をリトルエンディ
アンにすることによりこの問題を避けている。しかしこ
の場合、ビット極性とバイト極性が異なるため、バイト
列とビット列とを扱う場合にデータのアドレス計算順序
を逆にする必要があるなどして、ソフトウエア設計の負
担が大きいという問題がある。バイト極性とビット極性
をともにリトルエンディアンにすると異種サイズオペラ
ンド間演算に対する問題はなくなるが、BCD 数やストリ
ングデータを扱うときのリトルエンディアン特有の問題
が残る。リトルエンディアン特有の問題については上記
のD.Cohenの論文に詳しく述べられている。 【0008】また、バイト極性やビット極性が異なるデ
ータ処理装置を同一システムに組み込む場合にはそれら
の装置間の結合バスが複雑になる問題がある。なお、バ
イト極性やビット極性が異なるデータ処理装置を結合す
る例は H.Kirrmann,■Data Formatand Bus Compatibil
ity in Multiprocessors■, IEEE Micro, August 1983,
pp. 32-47. で述べられている。 【0009】本発明は上記のような問題点を解決するた
めになされたもので、バイト極性とビット極性をともに
ビッグエンディアンにしたままでレジスタに格納される
それぞれ異なるデータ長のデータについて、算術シフト
させる演算命令を用いることなくビットを操作すること
のできるようにしたデータ処理装置を得ることを目的と
する。 【0010】 【課題を解決するための手段】本発明のデータ処理装置
では、デコード機構にデコードされる命令には、レジス
タに格納されたデータを構成する複数のビットのうちの
1つに所定の値を書き込むことを指定する命令指定情報
と、データの長さを示すサイズ情報と、所定の値を書き
込まれるべきデータのビットを示すビット番号とを有す
るビット操作命令が用意されている。なおレジスタは、
8ビット、16ビット、32ビットの少なくとも3種類
の長さのデータを格納することができ、且つそのデータ
の下位ビットになるに連れてレジスタの大きい番号側の
ビット位置に格納するという規則に準拠してデータを格
納するものである。デコード機構がこのビット操作命令
をデコードすると、ビット位置決定機構はサイズ情報お
よびビット番号に基づいてビットアクセス信号を出力
し、実行機構はこのビットアクセス信号を基に、サイズ
情報が8ビット、16ビット、32ビットのときはレジ
スタのそれぞれ(n+24)番、(n+16)番、n番
のビット位置に所定の値を書き込む。このようにして、
長さの異なるデータを扱ってもその特定のビット番号に
所定の値を書き込む演算は、ビット操作命令を用いるだ
けで正しく行うことができ、データを算術シフトさせる
シフト命令を含んだ複数の命令を用いる必要はない。 【0011】 【発明の実施の形態】以下、本発明の実施の形態を図面
を参照して説明する。なお、本発明装置については本願
出願人の出願に係る発明の名称「データ処理装置」(特
願昭62−247418号)に詳細に説明されている。 【0012】まず本発明のデータ処理装置では、データ
のバイト極性、ビット極性ともにビッグエンディアンを
採用している。第1図に示すようにレジスタ上にレジス
タのバイト長より小さいサイズのバイト長のデータを配
置する場合には、そのデータのレジスタ上でのビット番
号をずらせて、サイズによらず最下位ビットを揃えてデ
ータを格納する。そしてレジスタ上のデータのビット位
置を示す場合には命令により示されたデータサイズとビ
ット番号とをもとにしてレジスタ上のデータに対するビ
ット位置をサイズが8ビットでビット番号8より小さい
番号nのときと、サイズが16ビットでビット番号がn
+8のときと、サイズが32ビットでビット番号がn+
24のときに同じレジスタビット位置が決定される。 【0013】図4に本発明のデータ処理装置の全体構成
のブロック図を示す。図4において、(1) はアドレスバ
ス(8) を通じてアドレスをメモリ(10)に送出して命令を
メモリ(10)からデータバス(9) を通してフェッチする命
令フェッチ部である。(2) は命令フェッチ部(1) より命
令を受取り、それをデコードしてその命令の実行に必要
な情報を出力する命令デコード部である。(3) は命令デ
コード部(2) から出力されたマイクロプログラムエント
リアドレスあるいは汎用レジスタ番号、オペランド、デ
ータサイズなどの情報をもとに、マイクロROM (7) に格
納され、その命令を実行するマイクロプログラムの先頭
番地を示すマイクロプログラムエントリアドレスをマイ
クロプログラムカウンタ(6) に出力し、マイクロプログ
ラムカウンタ(6) によって次々に指示されるアドレスに
よりマイクロROM (7) から出力されたマイクロ命令と命
令デコード部(2) から出力された他の情報とにより命令
実行部(5) を制御して命令を実行する命令実行制御部で
ある。(4) は命令実行に際して必要になるオペランドが
メモリ(10)にある時に、そのアドレスをアドレスバス
(8) に出力してデータバス(9) を通してオペランドをフ
ェッチし、あるいはオペランドをメモリ(10)に格納する
必要があるときに、そのアドレスをアドレスバス(8) に
出力し、またオペランドをデータバス(9) に出力するオ
ペランドアクセス部である。 【0014】図5は図4に示した命令実行部(5) の詳細
を示すブロック図である。(11)はオペランドとなるデー
タを格納するレジスタファイルである。(12)、(13)、(1
4)、(15)はそれぞれ演算装置である。なお、(12)は2つ
の2進数の加算などの算術演算及び2つのビット列の論
理積などの論理演算を行うALUである。(16)、(17)はデ
ータサイズがALU (12)のそれより小さいデータをALU に
入力するときに、そのサイズをALU (12)が扱うデータサ
イズにゼロ拡張または符号拡張する拡張回路である。(1
3)はデータを1度に複数ビット右あるいは左にシフトす
るバレルシフタである。(14)はバイト列のバイト順を逆
転させるバイト順逆転回路、(15)はビット列のビット順
を逆転させるビット順逆転回路である。(18)、(19)、(2
0)はレジスタファイル(11)と演算装置(12)、(13)、(1
4)、(15)とをそれぞれ結合するそれぞれS1バス、
S2バス、Dバスである。レジスタファイル(11)はバス(1
8)、(19)、(20)を介してALU (12)などの演算器(12)、(1
3)、(14)、(15)に32ビット並列に結合している。レジス
タファイル(11)のビット格納位置とALU (12)の入出力ビ
ット位置とは1対1に対応している。 【0015】図6は図5に示したレジスタファイル(11)
の詳細構造を示すブロック図である。(21)、(22)、(23)
はそれぞれレジスタのビット位置0から15まで、16から
23まで、24から31までのデータを格納する回路である。
(24)はレジスタファイル(11)に入力すべきデータのサイ
ズと入力すべきレジスタのレジスタ番号により必要なデ
ータ格納位置の入力回路を制御してデータ格納するレジ
スタ入力制御回路である。(25)はレジスタファイル(11)
からバスごとに出力すべきデータを格納しているレジス
タのレジスタ番号を入力してレジスタ中のデータをS1バ
ス(18)、S2バス(19)に出力制御するレジスタ出力制御回
路である。なお図6の破線にて囲まれた部分(26)はレジ
スタファイル(11)中に32個あり本発明のデータ処理装置
のマイクロプログラムではそれぞれをR0 からR31として
区別できる。 【0016】図7は図5に示したバイト順逆転回路(14)
の詳細構成を示すブロック図である。この回路ではS2バ
ス(19)から入力された4バイトのデータを BYIレジスタ
RBYIに入れ、8本づつまとめて交差する配線によりその
バイト順を逆転したデータをBYOレジスタRBY0に移し、B
YOレジスタRBYOの値をDバス(20)に出力する。 【0017】図8は図5に示したビット順逆転回路(15)
の詳細構成を示すブロック図である。この回路ではS2バ
ス(19)から入力された4バイトのデータをBIIレジスタ
RBIIに入れ、交差する配線によりそのビット順を逆転し
たデータをBIOレジスタ RBI0に移し、BIOレジ
スタ RBIOの値をDバス(20)に出力する。 【0018】図9は図4の命令実行制御部(3) に含まれ
る一部の回路の構成を示すブロック図である。(27)は命
令で指定されたオペランドのサイズ情報とビット番号と
をもとに、レジスタ上のビット位置を示す番号をS1バス
(18)に出力するビット位置番号出力回路である。また(2
8)は定数1をS2バス(19)に出力する回路であり、S2バス
(19)の最下位ビットに■1■を、他のすべてのビットに
は■0■を出力する。 【0019】以下、本発明のデータ処理装置の動作につ
いて説明する。レジスタR0に格納された32ビットの符号
付き2進数とレジスタR1の中に格納された8ビットの符
号付き2進数を加算して8ビットの符号付き2進数とし
てレジスタR1に格納する符号付き加算命令(本発明のデ
ータ処理装置では「ADD R0.W R1.B 」と表現され、命令
コードのビットパタンは図10に示す通りである)を実
行する場合を例にして本発明のデータ処理装置で異種サ
イズオペランド間の演算を行う動作を説明する。 【0020】命令は図4に示す命令フェッチ部(1) でメ
モリ(10)よりフェッチされ、デコード部(2) でデコード
され、命令実行制御部(3) にデコード結果が渡される。
命令実行制御部(3) はレジスタR0とレジスタR1を示す2
つのレジスタ番地とレジスタR0に格納されているオペラ
ンドのサイズとレジスタR1に格納されているオペランド
のサイズをパラメータとしてマイクロROM (7) 中に格納
されている符号付き加算プログラムルーチンのエントリ
番地をマイクロプログラムカウンタ(6) にセットして、
マイクロ命令を読み出し符号付き加算命令を実行する。 【0021】命令実行制御部(3) での符号付き加算命令
の実行シーケンスを示すフローチャートを図11に示
す。2つのレジスタ番号はマイクロプログラムとは独立
してレジスタ出力制御回路(25)に入力され、レジスタR0
中のデータはS1バス(18)を通してALU (12)に転送され、
R1中のデータはS2バス(19)を通してALU(12) に転送され
る。この際、レジスタR1の内容は32ビット総てがS2バス
(19)に出力されるが、拡張回路(17)によりS2バス(19)の
下位8ビットが符号拡張されてALU(12)に入力される。
また、ALU(12)では32ビットの2つの符号付き2進数の
符号付き加算が行われ32ビットの符号付き2進数を出力
する。このとき、ALU (12)には符号付き加算結果を格納
すべきレジスタサイズが8ビットであることが同時に指
示されており、加算結果が8ビット以内の2進数で表現
できるかどうか、あるいは加算結果が正か負かゼロかな
どに従い各種の制御フラッグがセットされる。 【0022】ALU(12)の出力32ビットはDバス(20)を通し
てレジスタR1に転送される。Dバス(20)で転送されてき
た32ビットのデータは、レジスタ入力制御回路(24)によ
り選ばれたレジスタR1にその下位側8ビットであるビッ
ト位置24から31に下位の8ビットのみが格納される。 【0023】次にレジスタR0中のオペランドのビット位
置3に相当するビットに■1■ をセットするビットセッ
ト命令を一例として、実施の形態の実際の動作を説明す
る。本発明のデータ処理装置では、ビットセット命令は
命令コードのビットパタンは図12に示す通りである。
また、本発明のデータ処理装置ではレジスタ上のビット
位置は図1に示すようになっているのでオペランドのサ
イズが1バイトか2バイトか4バイトかによりこのビッ
トセット命令はそれぞれ「BSET #3 R0.B、 BSET #11 R0.
H、 BSET #27R0.W 」と表現される。 【0024】命令実行制御部(3) でのビットセット命令
の実行シーケンスを図13のフローチャートに示す。ビ
ットセット命令ではレジスタのビット位置を示す番号を
求めるのに図14のビット位置番号出力回路(27)を使用
する。命令実行制御部(3) ではオペランドのサイズとビ
ット番号をビット位置番号出力回路(27)に入力してビッ
ト位置番号をS2バス(19)に出力する。ビット位置番号出
力回路(27)はサイズ情報が1バイトの時は(ビット番号
3+24=27)をS1バス(18)に出力し、サイズ情報が2バ
イトの時は(ビット番号11+16=27)をS1バス(18)に出力
する。サイズ情報が4バイトの時はビット番号27をその
ままS1バス(18)に出力する。 【0025】ビット位置番号出力回路(27)から出力され
たビット位置番号はS1バス(18)を通してバレルシフタ(1
3)のシフト数指定データとして入力される。このとき同
時にS2バス(19)を通して定数■1■ が被シフト数として
バレルシフタ(13)に入力される。その結果バレルシフタ
(13)からはビット番号27のみが■1■ でその他のビット
がすべて■0■ の32ビットのビットパタンが出力され
る。このビットパタンは一度作業用レジスタであるレジ
スタR16に格納される。次にALU(12)でレジスタR0とレジ
スタR16 の内容の論理和演算が行われる。このときレジ
スタR0中のオペランドのバイト長により符号付き加算命
令実行の場合と同様に拡張回路(17)やレジスタ入力制御
回路(24)が動作する。 【0026】次にレジスタR0中の32ビットのデータのバ
イト順を逆転してレジスタR1に転送するバイトリバース
命令の動作を説明する。バイトリバース命令の命令コー
ドビットパタンを図15に示す。命令実行制御部(3) で
のバイトリバース命令の実行シーケンスを示すフローチ
ャートを図16に示す。レジスタR0中の32ビットのデー
タがS2バス(19)を通してバイト順逆転回路(14)のBYIレ
ジスタRBYIに送られ、バイト順が逆転された32ビットの
データがBYOレジスタRBYOからDバス(20)を通してレジ
スタR0に入力される。 【0027】次にレジスタR0中の32ビットのデータのビ
ット順を逆転してレジスタR1に転送するビットリバース
命令の動作を説明する。ビットリバース命令の命令コー
ドビットパタンを図17に示す。命令実行制御部(3) で
のビットリバース命令の実行シーケンスのフローチャー
トを図18に示す。レジスタR0中の32ビットのデータが
S2バス(19)を通してビット順逆転回路(15)のBIIレジス
タRBIIに送られ、ビット順が逆転された32ビットのデー
タがBIOレジスタRBIOからDバス(20)を通してレジスタR
0に入力される。 【0028】上記実施の形態ではレジスタ中のビット位
置番号を求める際にハードウエアを用いて求める例を示
したが、オペランドのバイト長ごとにマイクロプログラ
ムを別々に用意し、マイクロプログラムによりビット番
号を補正してビット位置を求めてもよい。また、上記実
施の形態ではレジスタ上のオペランドどうしの符号付き
加算命令を例にとり、異種サイズのオペランド間の演算
機能を述べたが、その他加減乗除の四則演算のすべてで
同様の方法により異種サイズオペランド間の演算ができ
る。 【0029】また、上記実施の形態ではバイトリバース
命令とビットリバース命令とを32ビットのデータについ
てのみ説明したが、上記実施の形態のバイト順逆転回路
(14)あるいはビット順逆転回路路(15)での演算とバレル
シフタ(13)の演算とを組み合わせればマイクロプログラ
ムにより他のサイズのデータに対してもバイトリバース
命令やビットリバース命令を実行することができる。ま
た、ALU (12)あるいはバレルシフタ(13)と作業用レジス
タのみを用いてマイクロプログラムでこの2つの命令を
実行しても同様の効果が得られる。 【0030】 【発明の効果】以上のように本発明のデータ処理装置で
は、レジスタに格納されたデータを構成する複数のビッ
トのうちの1つに所定の値を書き込むことを指定する命
令指定情報と、データの長さを示すサイズ情報と、所定
の値を書き込まれるべきデータのビットを示すビット番
号とを有するビット操作命令をデコード機構がデコード
し、ビット位置決定機構がサイズ情報およびビット番号
に基づいてビットアクセス信号を出力し、実行機構がビ
ットアクセス信号を基にサイズ情報が8ビット、16ビ
ット、32ビットのときはレジスタのそれぞれ(n+2
4)番、(n+16)番、n番のビット位置に所定の値
を書き込むので、異なる長さのデータに対しても、ビッ
ト操作命令を用いることにより、その特定のビット番号
に所定の値を書き込むビット操作が正しく行える。特
に、プログラム設計者はデータを算術シフトさせる演算
命令まで用いる必要がなくなるため、ソフトウエアに負
担をかけることなく容易にビット操作ができ、ソフトウ
エア開発のコストを低減できるデータ処理装置を実現す
ることが可能になる。
Description: BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a data processing apparatus capable of mutually operating operands having different sizes, that is, different data bit lengths. The present invention relates to a data processing apparatus capable of performing an operation for operating operands of different sizes under an addressing system in which the most significant bit of data is stored in a small address on a memory and the least significant bit is stored in a large address on a memory. . 2. Description of the Related Art When arranging data on a memory in which an address is assigned to each byte and the bits in the byte are also numbered to indicate the order, the upper side of the data is assigned to the larger address side of the memory. There has been much debate over whether to place it on the smaller address side. A method of arranging the upper side of data at a large address in the memory and arranging the lower side of the data at a small address in the memory is called little endian. The method of arranging the lower side of the memory at a large address of the memory is called big endian. In a recent data processing apparatus, an address of a memory is generally assigned to each byte with 8 bits as 1 byte. However, when dealing with bitmap displays and bit fields with bit lengths that are not integral multiples of bytes, bit addresses that indicate bit positions are also required in addition to byte addresses, and the concept of little endian and big endian is also used for bit addresses. Exists. The byte polarity indicating whether the byte and the bit are little-endian or big-endian need not always match the bit polarity. D. Regarding whether little endian or big endian is better, or which conventional data processing device uses it.
Cohen, ■ On Holy Wars and a Plea forPeace, ■ Comput
er, VOl. 14, NO. 10, Oct. 1981, pp. 48-54. SUMMARY OF THE INVENTION [0005] Little endian,
The big-endian problem exists not only for the address of a byte or bit in memory, but also for the position of a byte or bit in a register. In a data processing device in which both the byte polarity and the bit polarity are big endian, when data having a byte length shorter than the byte length of the register is stored in the register,
FIG. 2 shows an example in which data is stored by shifting to a lower address side, as in the case of storing data on a memory. In this case, the bit address indicating the bit position is the same irrespective of the data size on the register. However, when performing an arithmetic operation such as addition between binary data having different data sizes stored in the two registers, This is problematic because the least significant bits of data are not aligned. In the arithmetic operation, it is necessary to perform the operation by aligning the least significant bit of the data. In this case, the arithmetic operation is performed by shifting the shorter size data rightward to align the larger size data with the least significant bit position. There is a need. If hardware for performing this arithmetic shift is provided in the register input / output unit or the ALU input / output unit, there is a problem that the hardware of the data processing device increases. In addition, there is a problem that the operation speed is reduced by using a machine language instruction or a microprogram. In the MC68000 series microprocessor manufactured by Motorola, USA, this problem is avoided by setting the byte polarity to big endian and the bit polarity to little endian as shown in FIG. However, in this case, since the bit polarity and the byte polarity are different, there is a problem that the load of software design is large because it is necessary to reverse the address calculation order of data when handling a byte string and a bit string. If both byte polarity and bit polarity are set to little endian, the problem of operation between operands of different sizes disappears, but the problem peculiar to little endian when handling BCD numbers and string data remains. Little-endian-specific issues are described in detail in the D. Cohen paper above. Further, when data processing devices having different byte polarities and bit polarities are incorporated in the same system, there is a problem that a coupling bus between the devices becomes complicated. An example of combining data processing devices with different byte and bit polarities is described in H. Kirrmann, ■ Data Format and Bus Compatibil
ity in Multiprocessors ■, IEEE Micro, August 1983,
pp. 32-47. SUMMARY OF THE INVENTION The present invention has been made to solve the above-described problems, and arithmetically shifts data having different data lengths stored in a register with both byte polarity and bit polarity kept big endian. It is an object of the present invention to provide a data processing device capable of operating a bit without using an operation instruction to be operated. In the data processing apparatus according to the present invention, an instruction decoded by a decoding mechanism includes a predetermined one of a plurality of bits constituting data stored in a register. There is provided a bit operation instruction having instruction designation information for designating writing of a value, size information indicating the length of data, and a bit number indicating a bit of data to be written with a predetermined value. The register is
Complies with the rule that data of at least three types of lengths of 8 bits, 16 bits, and 32 bits can be stored, and the lower-order bits of the data are stored in higher-order bit positions of registers. And store the data. When the decoding mechanism decodes the bit operation instruction, the bit position determining mechanism outputs a bit access signal based on the size information and the bit number. Based on the bit access signal, the execution mechanism determines that the size information is 8 bits or 16 bits. , 32 bits, a predetermined value is written in the (n + 24) th, (n + 16) th, and nth bit positions of the register. In this way,
Even when handling data of different lengths, the operation of writing a predetermined value to that specific bit number can be performed correctly only by using a bit operation instruction, and multiple instructions including a shift instruction for arithmetically shifting data are executed. No need to use. Embodiments of the present invention will be described below with reference to the drawings. The apparatus of the present invention is described in detail in the title "Data Processing Apparatus" (Japanese Patent Application No. 62-247418) of the invention of the present applicant. First, the data processing apparatus of the present invention employs big endian for both byte polarity and bit polarity of data. As shown in FIG. 1, when data of a byte length smaller than the byte length of the register is arranged on the register, the bit number of the data is shifted on the register so that the least significant bit is changed regardless of the size. Align and store data. When the bit position of the data on the register is indicated, the bit position for the data on the register is set to 8 bits smaller than the bit number 8 based on the data size and the bit number indicated by the instruction. When the size is 16 bits and the bit number is n
+8 when the size is 32 bits and the bit number is n +
At 24, the same register bit position is determined. FIG. 4 is a block diagram showing the overall configuration of the data processing apparatus according to the present invention. In FIG. 4, (1) is an instruction fetch unit for sending an address to the memory (10) through the address bus (8) and fetching an instruction from the memory (10) through the data bus (9). An instruction decoding unit (2) receives an instruction from the instruction fetch unit (1), decodes the instruction, and outputs information necessary for executing the instruction. (3) is stored in the micro-ROM (7) based on information such as the microprogram entry address or general-purpose register number, operand, and data size output from the instruction decode unit (2), and is used to execute the instruction. The micro-program entry address indicating the start address of the program is output to the micro-program counter (6), and the micro-instructions output from the micro-ROM (7) and the instruction decoding unit are sequentially instructed by the micro-program counter (6). An instruction execution control unit that controls the instruction execution unit (5) based on other information output from (2) and executes the instruction. In (4), when the operand required for executing the instruction is in the memory (10), the address is transferred to the address bus.
(8) to fetch the operand through the data bus (9), or when the operand needs to be stored in the memory (10), output its address to the address bus (8) and transfer the operand to the data bus (8). This is an operand access unit that outputs to the bus (9). FIG. 5 is a block diagram showing details of the instruction execution unit (5) shown in FIG. (11) is a register file for storing data as operands. (12), (13), (1
4) and (15) are arithmetic units. An ALU (12) performs an arithmetic operation such as addition of two binary numbers and a logical operation such as a logical product of two bit strings. (16) and (17) are extension circuits for zero-extending or sign-extending the data size to the data size handled by the ALU (12) when data smaller than that of the ALU (12) is input to the ALU. . (1
3) is a barrel shifter that shifts data right or left by a plurality of bits at a time. (14) is a byte order reversing circuit for reversing the byte order of the byte sequence, and (15) is a bit order reversing circuit for reversing the bit order of the bit sequence. (18), (19), (2
(0) is the register file (11) and the arithmetic units (12), (13), (1)
4) and (15) respectively, each S1 bus,
S2 bus and D bus. Register file (11) is stored on bus (1
8), (19), (20), ALU (12) and other arithmetic units (12), (1
3), (14), and (15) are connected in 32-bit parallel. There is a one-to-one correspondence between the bit storage position of the register file (11) and the input / output bit position of the ALU (12). FIG. 6 shows the register file (11) shown in FIG.
FIG. 3 is a block diagram showing a detailed structure of FIG. (21), (22), (23)
Are the register bit positions 0 to 15 and 16
This is a circuit that stores data from 23 to 24 to 31.
Reference numeral (24) denotes a register input control circuit for controlling an input circuit at a necessary data storage position according to the size of data to be input to the register file (11) and the register number of the register to be input and storing data. (25) is the register file (11)
This is a register output control circuit for inputting a register number of a register storing data to be output for each bus from the controller and outputting data in the register to the S1 bus (18) and the S2 bus (19). Note that there are 32 portions (26) surrounded by broken lines in the register file (11) in the register file (11), and they can be distinguished from R0 to R31 in the microprogram of the data processing device of the present invention. FIG. 7 shows the byte order inversion circuit (14) shown in FIG.
FIG. 3 is a block diagram showing a detailed configuration of the embodiment. In this circuit, 4-byte data input from S2 bus (19) is
RBYI, and the data whose byte order is reversed by the wiring that intersects eight at a time is transferred to the BYO register RBY0,
The value of the YO register RBYO is output to the D bus (20). FIG. 8 shows the bit order reversal circuit (15) shown in FIG.
FIG. 3 is a block diagram showing a detailed configuration of the embodiment. In this circuit, 4-byte data input from the S2 bus (19) is
The data is input to the RBII, the data whose bit order is inverted by the crossing wiring is transferred to the BIO register RBI0, and the value of the BIO register RBIO is output to the D bus (20). FIG. 9 is a block diagram showing the configuration of some circuits included in the instruction execution control section (3) of FIG. (27) indicates the number indicating the bit position on the register on the S1 bus based on the size information and the bit number of the operand specified by the instruction.
This is a bit position number output circuit for outputting to (18). Also (2
8) is a circuit for outputting a constant 1 to the S2 bus (19).
Output {1} to the least significant bit of (19) and {0} to all other bits. Hereinafter, the operation of the data processing apparatus of the present invention will be described. Signed addition instruction that adds the 32-bit signed binary number stored in register R0 and the 8-bit signed binary number stored in register R1 and stores it in register R1 as an 8-bit signed binary number (In the data processing device of the present invention, it is expressed as "ADD R0.W R1.B", and the bit pattern of the instruction code is as shown in FIG. 10.) An operation for performing an operation between operands of different sizes will be described. The instruction is fetched from the memory (10) by the instruction fetch unit (1) shown in FIG. 4, decoded by the decode unit (2), and the decoded result is passed to the instruction execution control unit (3).
The instruction execution control unit (3) has two registers R0 and R1.
Using the two register addresses, the size of the operand stored in register R0, and the size of the operand stored in register R1 as parameters, the micro program (7) stores the entry address of the signed addition program routine stored in the micro ROM. Set the counter (6)
Read the microinstruction and execute the signed addition instruction. FIG. 11 is a flowchart showing the execution sequence of a signed addition instruction in the instruction execution control section (3). The two register numbers are input to the register output control circuit (25) independently of the microprogram, and the register R0
The data inside is transferred to ALU (12) through S1 bus (18),
The data in R1 is transferred to ALU (12) through S2 bus (19). At this time, the contents of register R1 are all 32 bits and the S2 bus
(19), the lower 8 bits of the S2 bus (19) are sign-extended by the extension circuit (17) and input to the ALU (12).
In the ALU (12), signed addition of two 32-bit signed binary numbers is performed, and a 32-bit signed binary number is output. At this time, the ALU (12) is also instructed that the register size to store the signed addition result is 8 bits, and whether the addition result can be represented by a binary number within 8 bits, or Various control flags are set according to whether the value is positive, negative or zero. The 32-bit output of the ALU (12) is transferred to the register R1 through the D bus (20). In the 32-bit data transferred by the D bus (20), only the lower 8 bits are stored in bit positions 24 to 31, which are the lower 8 bits, in the register R1 selected by the register input control circuit (24). Is done. Next, the actual operation of the embodiment will be described by taking as an example a bit set instruction for setting {1} to a bit corresponding to bit position 3 of the operand in the register R0. In the data processing apparatus according to the present invention, the bit pattern of the bit set instruction is as shown in FIG.
Also, in the data processing device of the present invention, the bit positions on the register are as shown in FIG. 1, so that this bit set instruction is "BSET # 3 R0" depending on whether the operand size is 1 byte, 2 bytes or 4 bytes. .B, BSET # 11 R0.
H, BSET # 27R0.W ". The execution sequence of the bit set instruction in the instruction execution control section (3) is shown in the flowchart of FIG. In the bit set instruction, the bit position number output circuit (27) in FIG. 14 is used to obtain the number indicating the bit position of the register. The instruction execution control unit (3) inputs the size of the operand and the bit number to the bit position number output circuit (27), and outputs the bit position number to the S2 bus (19). The bit position number output circuit (27) outputs (bit number 3 + 24 = 27) to the S1 bus (18) when the size information is 1 byte, and outputs (bit number 11 + 16 = 27) when the size information is 2 bytes. Output to the S1 bus (18). When the size information is 4 bytes, the bit number 27 is output to the S1 bus (18) as it is. The bit position number output from the bit position number output circuit (27) is transmitted through the S1 bus (18) to the barrel shifter (1).
It is input as shift number designation data in 3). At this time, the constant {1} is input to the barrel shifter (13) as the number to be shifted at the same time through the S2 bus (19). The resulting barrel shifter
From (13), a 32-bit pattern in which only bit number 27 is {1} and all other bits are {0} is output. This bit pattern is stored once in a register R16 which is a working register. Next, the ALU (12) performs a logical OR operation on the contents of the registers R0 and R16. At this time, the extension circuit (17) and the register input control circuit (24) operate in the same manner as in the case of executing the signed addition instruction according to the byte length of the operand in the register R0. Next, the operation of the byte reverse instruction for inverting the byte order of the 32-bit data in the register R0 and transferring it to the register R1 will be described. FIG. 15 shows the instruction code bit pattern of the byte reverse instruction. FIG. 16 is a flowchart showing the execution sequence of the byte reverse instruction in the instruction execution control unit (3). The 32-bit data in the register R0 is sent to the BYI register RBYI of the byte order inversion circuit (14) through the S2 bus (19), and the 32-bit data whose byte order is inverted is transferred from the BYO register RBYO to the D bus (20). Through the register R0. Next, the operation of the bit reverse instruction for inverting the bit order of the 32-bit data in the register R0 and transferring it to the register R1 will be described. FIG. 17 shows the instruction code bit pattern of the bit reverse instruction. FIG. 18 shows a flowchart of the execution sequence of the bit reverse instruction in the instruction execution control unit (3). The 32-bit data in register R0 is
The 32-bit data whose bit order has been inverted is sent from the BIO register RBIO to the register R via the D bus (20).
Entered as 0. In the above embodiment, an example has been described in which the bit position number in the register is obtained by using hardware. However, a microprogram is separately prepared for each byte length of the operand, and the bit number is determined by the microprogram. The bit position may be obtained by correction. Further, in the above embodiment, the operation function between operands of different sizes has been described by taking a signed addition instruction of operands on registers as an example. However, in all other four arithmetic operations of addition, subtraction, multiplication, and division, operands of different sizes are operated in the same manner. You can perform calculations between In the above embodiment, the byte reverse instruction and the bit reverse instruction have been described only for 32-bit data.
(14) Alternatively, if the operation in the bit order reversing circuit (15) is combined with the operation in the barrel shifter (13), the byte reverse instruction and the bit reverse instruction can be executed for data of other sizes by the microprogram. Can be. A similar effect can be obtained by executing these two instructions in a microprogram using only the ALU (12) or barrel shifter (13) and the working register. As described above, in the data processing device of the present invention, the instruction designation information for designating writing of a predetermined value to one of a plurality of bits constituting data stored in a register. And a bit operation instruction having size information indicating the length of the data and a bit number indicating the bit of the data to be written with the predetermined value, the decoding mechanism decodes the bit operation instruction, and the bit position determination mechanism converts the size information and the bit number into the size information and the bit number. When the size information is 8 bits, 16 bits, or 32 bits based on the bit access signal, the execution mechanism outputs a bit access signal based on the bit access signal.
Since a predetermined value is written in the bit positions of Nos. 4), (n + 16), and n, a predetermined value is assigned to the specific bit number by using a bit operation instruction even for data of different lengths. Bit operations to write can be performed correctly. In particular, since a program designer does not need to use an operation instruction for arithmetically shifting data, a data processing device that can easily perform bit operations without burdening software and reduce software development costs can be realized. Becomes possible.

【図面の簡単な説明】 【図1】 本発明のデータ処理装置の4バイトのバイト
長のレジスタ上に1バイト、2バイト、4バイトのデー
タを格納したときの各データの格納位置とビット番号を
示した模式図である。 【図2】 バイト極性とビット極性がともにビッグエン
ディアンであるデータ処理装置でレジスタのバイト長よ
り短いバイト長のデータをレジスタに格納する場合に、
アドレスの小さい側に寄せて格納する例を示す模式図で
ある。 【図3】 バイト極性をビッグエンディアンにしてビッ
ト極性をリトルエンディアンにした場合の模式図であ
る。 【図4】 本発明装置の全体構成を示すブロック図であ
る。 【図5】 命令実行部の構成を示すブロック図である。 【図6】 レジスタファイルの構成を示すブロック図で
ある。 【図7】 バイト順逆転回路の構成を示すブロック図で
ある。 【図8】 ビット順逆転回路の構成を示すブロック図で
ある。 【図9】 命令実行制御部の一部の構成を示すブロック
図である。 【図10】 本発明装置の符号付き加算命令のビットパ
ターンを示す模式図である。 【図11】 符号付き加算命令の実行シーケンスを示す
フローチャート図である。 【図12】 命令コードのビットパターンの模式図であ
る。 【図13】 ビットセット命令の実行シーケンスを示す
フローチャート図である。 【図14】 ビット位置番号出力回路の構成を示す回路
図である。 【図15】 バイトリバース命令の命令コードビットパ
タンを示す模式図である。 【図16】 バイトリバース命令の実行シーケンスを示
すフローチャート図である。 【図17】 ビットリバース命令の命令コードビットパ
タンを示す模式図である。 【図18】 ビットリバース命令の実行シーケンスを示
すフローチャート図である。 【符号の説明】 RBYI・・BYIレジスタ、RBYO・・BYOレジスタ、RBII・・
BIIレジスタ、RBIO・・BIOレジスタ 、1・・命令フェ
ッチ部、2・・命令アクセス部、3・・命令実行制御
部、4・・オペランアクセス部、5・・命令実行部、6
・・マイクロプログラムカウンタ、7・・マイクロROM
、11・・レジスタファイル、12・・ALU 、13・・バレ
ルシフタ、14・・バイト順逆転回路、15・・ビット順逆
転回路。なお、図中同一符号は同一または相当部分を示
す。
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 shows storage positions and bit numbers of 1-byte, 2-byte and 4-byte data stored in a 4-byte byte register of a data processing device of the present invention. FIG. FIG. 2 shows a data processing device in which both byte polarity and bit polarity are big-endian, when storing data having a byte length shorter than the byte length of a register in a register,
It is a schematic diagram which shows the example stored near the address with a small address. FIG. 3 is a schematic diagram in the case where the byte polarity is big endian and the bit polarity is little endian. FIG. 4 is a block diagram showing the overall configuration of the device of the present invention. FIG. 5 is a block diagram illustrating a configuration of an instruction execution unit. FIG. 6 is a block diagram illustrating a configuration of a register file. FIG. 7 is a block diagram illustrating a configuration of a byte order inversion circuit. FIG. 8 is a block diagram showing a configuration of a bit order inversion circuit. FIG. 9 is a block diagram illustrating a partial configuration of an instruction execution control unit. FIG. 10 is a schematic diagram showing a bit pattern of a signed addition instruction of the device of the present invention. FIG. 11 is a flowchart showing an execution sequence of a signed addition instruction. FIG. 12 is a schematic diagram of a bit pattern of an instruction code. FIG. 13 is a flowchart illustrating an execution sequence of a bit set instruction. FIG. 14 is a circuit diagram showing a configuration of a bit position number output circuit. FIG. 15 is a schematic diagram showing an instruction code bit pattern of a byte reverse instruction. FIG. 16 is a flowchart showing an execution sequence of a byte reverse instruction. FIG. 17 is a schematic diagram showing an instruction code bit pattern of a bit reverse instruction. FIG. 18 is a flowchart illustrating an execution sequence of a bit reverse instruction. [Explanation of Signs] RBYI-BYI register, RBYO-BYO register, RBII-
BII register, RBIO · · BIO register, 1 · · · instruction fetch unit, 2 · · · instruction access unit, 3 · · · instruction execution control unit, 4 · · · operand access unit, 5 · · · instruction execution unit, 6
..Micro program counter, 7..Micro ROM
, 11-register file, 12-ALU, 13-barrel shifter, 14-byte forward / reverse circuit, 15-bit forward / reverse circuit. In the drawings, the same reference numerals indicate the same or corresponding parts.

───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭61−169934(JP,A) 特開 昭62−184530(JP,A) 特開 昭49−97536(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 9/30 - 9/355 G06F 9/40 - 9/42 390 G06F 7/00 - 7/36 ──────────────────────────────────────────────────続 き Continuation of the front page (56) References JP-A-61-169934 (JP, A) JP-A-62-184530 (JP, A) JP-A-49-97536 (JP, A) (58) Field (Int.Cl. 6 , DB name) G06F 9/30-9/355 G06F 9/40-9/42 390 G06F 7/00-7/36

Claims (1)

(57)【特許請求の範囲】 1.8ビット、16ビット、32ビットの少なくとも3
種類の長さのデータを格納することができ、且つ前記デ
ータのビットが下位側になるに連れて前記レジスタの大
きい番号側のビット位置に格納するという規則に準拠し
て前記データを格納するレジスタ、 各々コード化された複数の命令をそれぞれデコードし
て、各命令に対応する制御情報を出力する命令デコード
機構、 前記命令デコード機構からの制御情報に従って演算を行
い、前記複数の命令の各々により指定された処理を実行
する実行機構、および、 前記レジスタのビット位置を特定するビットアクセス信
号を出力するビット位置決定機構を備え、 前記複数の命令のうちの1つが、前記レジスタに格納さ
れたデータを構成する複数のビットのうちの1つに所定
の値を書き込むことを指定する命令指定情報と、前記デ
ータの長さを示すサイズ情報と、前記所定の値を書き込
まれるべき前記データのビットを示すビット番号とを有
するビット操作命令であり、かつ前記ビット番号が8よ
り小さいnを示している場合、 前記ビット位置決定機構は、前記ビット操作命令に含ま
れるサイズ情報およびビット番号に基づいて前記ビット
アクセス信号を出力し、 前記実行機構は、このビット操作命令がデコードされて
前記デコード機構から出力される制御情報と前記ビット
位置決定機構から出力されるビットアクセス信号とに従
い、前記サイズ情報が8ビットのときは、前記レジスタ
の(n+24)番のビット位置に前記所定の値を書き込
み、前記サイズ情報が16ビットのときは、前記レジス
タの(n+16)番のビット位置に前記所定の値を書き
込み、前記サイズ情報が32ビットのときは、前記レジ
スタのn番のビット位置に前記所定の値を書き込むよう
にした、データ処理装置。 2.前記レジスタのビット数と同数のビットからなる定
数データを生成する定数発生器を備え、 前記実行機構は、前記ビット位置決定機構から出力され
るビットアクセス信号により決定されるシフト数に従
い、前記定数発生器から出力された定数データをシフト
させるバレルシフタと、前記バレルシフタから出力され
たシフトデータと前記レジスタに格納されたデータとの
論理演算を行い、前記レジスタに格納されたデータの特
定のビット位置に前記所定の値を書き込まれたデータを
出力する演算器を含む、請求項1に記載のデータ処理装
置。
(57) [Claims] 1.8 bits, 16 bits, and at least 3 bits of 32 bits
A register that can store data of different lengths and stores the data in accordance with the rule that the data is stored in a bit position on the higher number side as the bit of the data becomes lower. An instruction decoding mechanism for respectively decoding a plurality of coded instructions and outputting control information corresponding to each instruction; performing an operation according to the control information from the instruction decoding mechanism; and specifying each of the plurality of instructions And a bit position determining mechanism for outputting a bit access signal for specifying a bit position of the register, wherein one of the plurality of instructions converts data stored in the register. Instruction specifying information for specifying that a predetermined value is to be written to one of a plurality of bits constituting the data; Bit operation instruction having size information and a bit number indicating a bit of the data to be written with the predetermined value, and the bit number indicates n smaller than 8. Outputting the bit access signal based on the size information and the bit number included in the bit operation instruction. The execution mechanism decodes the bit operation instruction and outputs the control information and the bit position from the decoding mechanism. According to the bit access signal output from the determination mechanism, when the size information is 8 bits, the predetermined value is written in the (n + 24) th bit position of the register, and when the size information is 16 bits, The predetermined value is written in the (n + 16) th bit position of the register, and the size information is 32 bits. Time was to write the predetermined value to the bit position of the n-th of the register, the data processing device. 2. A constant generator configured to generate constant data having the same number of bits as the number of bits of the register, wherein the execution mechanism generates the constant according to a shift number determined by a bit access signal output from the bit position determination mechanism. A barrel shifter that shifts constant data output from the device, and performs a logical operation on the shift data output from the barrel shifter and the data stored in the register, and performs a logical operation on a specific bit position of the data stored in the register. The data processing device according to claim 1, further comprising an arithmetic unit that outputs data in which a predetermined value is written.
JP9261556A 1997-09-26 1997-09-26 Data processing device Expired - Lifetime JP2878250B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9261556A JP2878250B2 (en) 1997-09-26 1997-09-26 Data processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9261556A JP2878250B2 (en) 1997-09-26 1997-09-26 Data processing device

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP62246621A Division JP3041308B2 (en) 1987-09-30 1987-09-30 Data processing device

Publications (2)

Publication Number Publication Date
JPH10240523A JPH10240523A (en) 1998-09-11
JP2878250B2 true JP2878250B2 (en) 1999-04-05

Family

ID=17363546

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9261556A Expired - Lifetime JP2878250B2 (en) 1997-09-26 1997-09-26 Data processing device

Country Status (1)

Country Link
JP (1) JP2878250B2 (en)

Also Published As

Publication number Publication date
JPH10240523A (en) 1998-09-11

Similar Documents

Publication Publication Date Title
US5132898A (en) System for processing data having different formats
KR100327777B1 (en) Data processing device using multiple instruction sets
US4454578A (en) Data processing unit with pipelined operands
KR940009094B1 (en) Data processing system
CN104335166B (en) For performing the apparatus and method shuffled and operated
JP3203401B2 (en) Data processing device
CN110321157A (en) Instructions for fused multiply-add operations with variable-precision input operands
JPH06332792A (en) Data processor, data reading control circuit thereof and data writing control circuit
JP2002517037A (en) Mixed vector / scalar register file
JPH035835A (en) Microprocessor
JPH03218523A (en) Data processor
JPH0766324B2 (en) Data processing device
US4945511A (en) Improved pipelined processor with two stage decoder for exchanging register values for similar operand instructions
JP2001504959A (en) 8-bit microcontroller with RISC architecture
US20190138305A1 (en) Hardware apparatuses and methods relating to elemental register accesses
JP3578883B2 (en) Data processing device
JPH0546383A (en) Data processing device
US5966514A (en) Microprocessor for supporting reduction of program codes in size
JP2609618B2 (en) Data processing device
JP2556182B2 (en) Data processing device
JP2748957B2 (en) Data processing device
JP2878250B2 (en) Data processing device
US6275925B1 (en) Program execution method and program execution device
JP3041308B2 (en) Data processing device
JP3643270B2 (en) Data processing device

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: R313115

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080122

Year of fee payment: 9