JP2832900B2 - データ処理装置およびデータ処理方法 - Google Patents

データ処理装置およびデータ処理方法

Info

Publication number
JP2832900B2
JP2832900B2 JP5129529A JP12952993A JP2832900B2 JP 2832900 B2 JP2832900 B2 JP 2832900B2 JP 5129529 A JP5129529 A JP 5129529A JP 12952993 A JP12952993 A JP 12952993A JP 2832900 B2 JP2832900 B2 JP 2832900B2
Authority
JP
Japan
Prior art keywords
data
register
bit
instruction
immediate
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
JP5129529A
Other languages
English (en)
Other versions
JPH06337782A (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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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
Priority to JP5129529A priority Critical patent/JP2832900B2/ja
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to DE69434971T priority patent/DE69434971T2/de
Priority to EP94303862A priority patent/EP0626641B1/en
Priority to EP01202455A priority patent/EP1164479B1/en
Priority to DE69432445T priority patent/DE69432445T2/de
Priority to DE69434967T priority patent/DE69434967T2/de
Priority to EP02076028A priority patent/EP1229440B1/en
Priority to EP02076025A priority patent/EP1229439A3/en
Priority to EP04075265A priority patent/EP1416374A3/en
Publication of JPH06337782A publication Critical patent/JPH06337782A/ja
Priority to US08/587,338 priority patent/US5809306A/en
Application granted granted Critical
Publication of JP2832900B2 publication Critical patent/JP2832900B2/ja
Priority to US09/662,484 priority patent/USRE41959E1/en
Priority to US10/991,367 priority patent/USRE40498E1/en
Priority to US11/607,889 priority patent/US20080320454A1/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プログラムの命令に従
って処理を実行するデータ処理装置及びデータ処理方法
に関し、特に、メモリにアクセスするためのアドレス空
間におけるアドレスを指定する即値データ(即値アドレ
ス)の指定処理あるいは演算処理の適正化が可能なデー
タ処理装置およびデータ処理方法に関するものである。
【0002】
【従来の技術】一般的に、マイクロコンピュータ等のデ
ータ処理装置では、種々のデータ幅を有するデータの処
理が可能なように構成されている。例えば、プログラム
の命令によって直接的に数値を指定する即値データに対
しては、符号拡張処理によってデータ幅の調整がなされ
た後、所定の演算処理が行われるように構成されてい
る。
【0003】以下、この即値データに対する符号拡張処
理を伴うデータ処理装置の構成及び動作について説明す
る。即値データの符号拡張機能を有する従来のデータ処
理装置の例が、”「マイクロコンピュータシリーズ14
68000マイクロコンピュータ」喜田祐三他、丸善
1983年3月”に記載されている。図7は、この従来
のデータ処理装置の構成を示すブロック図である。図7
において、11は主にデータを格納するN(整数)ビッ
ト幅のデータレジスタ群、12は主にアドレスを格納す
るNビット幅のアドレスレジスタ群、13は16ビット
データの最上位ビットを符号拡張して32ビットデータ
として出力する符号拡張器、14は命令を解読する命令
解読部、15は命令解読部14での解読結果に基づいて
演算を実行する演算器である。
【0004】この従来のデータ処理装置の一般的な動作
を以下に説明する。まず命令解読部14は、外部から与
えられた命令を解読する。そして、命令の内容によって
次のような動作を行う。 (1)命令が「データレジスタ11またはアドレスレジ
スタ12間でデータを格納し、あるいは演算する」場
合。
【0005】演算器15に2つのNビット幅のデータが
入力され、所定の演算がなされた後、指定されたレジス
タにデータが格納される。 (2)命令が「Mビットの即値データをデータレジスタ
11またはアドレスレジスタ12に格納し、あるいは演
算する」場合。Mビットの即値データが符号拡張器13
でNビットに拡張されて演算器15の一方の入力とな
り、所定の演算が行われた後、指定されたレジスタへ出
力される。
【0006】ここで、符号拡張器13の動作を図5を用
いて説明する。まず、図5(a)において、Mビットで
表現される数値の最上位ビットが0の場合には、上位側
へNビットまで0を複写してデータ幅を拡張する。ま
た、図5(b)において、Mビットで表現される数値の
最上位ビットが1の場合には、上位側へNビットまで1
を複写してデータ幅を拡張する。
【0007】さらに、この従来のデータ処理装置におい
て、特に、即値データのビット幅が格納または演算する
対象となるレジスタのビット幅よりも短い場合の即値デ
ータの処理動作について具体的に説明する。一例とし
て、図8に示すプログラムの実行動作について説明す
る。図8に示すプログラムは、32ビットでアドレス指
定される全空間の中でH’8000(H’は16進数表
記を示す)番地からH’8100番地までH’10番地
刻みに格納されているメモリ上の16個のデータを順次
加算し、その和をH’10000000番地へ書き出す
処理を示している。図9は、図8においてニモニック表
記されたプログラムの処理フローを示している。さら
に、図10は、メモリのアドレス空間を模式的に示して
いる。以下、図7〜図10を参照して説明する。なお、
以下の説明では、即値データの符号拡張処理は、正規の
拡張処理が行われる場合を示しており、実際の符号拡張
処理における問題点については、後述される。 命令(1):データレジスタD0をクリアする。 命令(2):アドレスレジスタA0に32ビットの即値
データH’8000を設定する。
【0008】この命令の表記は16ビットの即値データ
H’8000を使用している。したがって、この即値デ
ータH’8000は、符号拡張器13によって32ビッ
トデータに符号拡張された後、アドレスレジスタA0に
格納される。 命令(3):アドレスレジスタA0で指定される番地の
内容をメモリから読み出してデータレジスタD1に格納
する。 命令(4):データレジスタD1の内容をデータレジス
タD0の内容に加算し、その結果をデータレジスタD0
に格納する。 命令(5):アドレスレジスタA0に即値H’0010
を加算し、アドレスレジスタA0に格納する。
【0009】16ビット即値データH’0010は、符
号拡張器13によって32ビットデータH’00000
010に拡張される。その後、演算器15においてアド
レスレジスタA0に格納されているアドレスデータH’
00008000と拡張されたデータH’000000
10とが加算され、H’00008010が算出され
る。この算出データはアドレスレジスタA0に格納され
る。 命令(6):上記の算出データと即値データH’810
0とを比較する。
【0010】即値データH’8100は符号拡張器13
によって32ビットデータに符号拡張された後、演算器
15に出力される。そして、演算器15において、アド
レスレジスタA0から読み出されたアドレスデータH’
00008010と比較される。 命令(7):比較結果に基づいて、小さければラベルA
で示す命令(3)へ戻り、等しいかまたは大きければ命
令(8)へ進むように判断する。
【0011】命令(3)から命令(7)で記述されるル
ープ処理は、アドレスレジスタA0の値がH’0000
8000から始めてH’00000010ずつ更新され
H’00008100になるまで繰返されるために、1
6回の加算結果がデータレジスタD0に格納された後、
命令(8)へ進む。 命令(8):データレジスタD0の内容をメモリのH’
10000000番地へ格納する。
【0012】
【発明が解決しようとする課題】しかしながら、上記の
従来のデータ処理装置においては、アドレスレジスタ1
2に対してアクセスされる即値データについて行われた
符号拡張によって、指定した即値データの内容と異なる
データとなる場合が生じる。このような状態を図8に示
す例で説明すると、符号拡張される即値データは、命令
(2)におけるH’8000と、命令(5)における
H’0010と、命令(6)におけるH’8100であ
る。
【0013】まず、命令(2)における即値データH’
8000は、符号拡張されると、最上位ビット”1”が
上位側に複写されるため、H’00008000ではな
く、H’FFFF8000に拡張される。したがって、
上記の命令(2)においてアドレスレジスタA0に格納
されたデータは、H’00008000ではなく、H’
FFFF8000となる。このため、図10に示すよう
に、次の命令(3)においては、メモリから読み出され
るデータは、H’0008000番地のデータではな
く、H’FFFF8000番地のデータが読み出され
る。このために、誤ったデータが読み出される。
【0014】また、命令(6)においても、即値データ
H’8100が符号拡張されると、H’0000810
0ではなく、H’FFFF8100に拡張される。従っ
て、誤った演算が行われる。このような即値データの誤
拡張は、図10に示すように、即値データがメモリの全
アドレス空間の内、MSB(最上位ビット)の値が”
1”のアドレスを指定する場合に発生する。
【0015】このような状態を解消するためには、即値
データの指定を32ビット表記することが考えられる。
例えば、命令(2)においては、即値データをH’00
008000と指定すればよい。しかしながら、このよ
うな指定方法は、16ビットデータを指定する場合でも
32ビット表記する必要が生じるため、命令の表記およ
びオブジェクトコードが長くなり好ましくない。
【0016】このような問題点を解消するために、16
ビット即値データを使用して図8に示すプログラムを書
き直す方法が図11に示されている。図11において、
図8に示す命令(2)に該当する命令は、命令(2ー
1)、(2ー2)の2ステップで行われる。まず、命令
(2ー1)で与えられた即値データH’8000は、符
号拡張されてH’FFFF8000となる。そして、命
令(2ー2)では、拡張データの上位16ビット分を0
にクリアするために、拡張データH’0000FFFF
とH’0000FFFFとの論理積を取り、32ビット
データH’00008000に変換している。
【0017】また、図8の命令(6)に該当する命令
は、図11において命令(6ー1)、(6ー2)、(6
ー3)の3ステップで行われる。命令(6ー1)で与え
られた即値データH’8100は、符号拡張されてH’
FFFF8100となり、アドレスレジスタA1に格納
される。次に命令(6ー2)では、拡張データの上位1
6ビット分を0にクリアするために、拡張データH’F
FFF8100とH’0000FFFFとの論理積を取
り32ビットデータH’00008100に変換する。
その後、命令(6ー3)において、アドレスレジスタA
0とA1とを比較している。
【0018】しかしながら、この方法では、16ビット
即値データの使用が可能なものの、図8に示す方法に比
べてプログラムのステップ数が増加してしまうという新
たな問題がある。このように、従来の2つの例は、いず
れもアドレスレジスタのデータ幅よりも短い即値データ
を使用してメモリのアドレス空間にあるデータに対して
正確にアクセスするようなプログラム命令を効率良く実
行することができないという問題点を有していた。
【0019】したがって、本発明は上記のような問題点
を解消するためになされたもので、全アドレス空間の先
頭から2のM乗の範囲内のアドレス空間にあるデータを
アクセスする場合に、アドレスレジスタのデータ幅より
も短いデータを即値データとして与えることが可能なデ
ータ処理装置およびデータ処理方法を提供することを目
的とする。
【0020】
【課題を解決するための手段】請求項1の発明に係るデ
ータ処理装置は、整数Nビット幅を有する第1レジスタ
と、Nビット幅を有する第2レジスタと、Nより小さい
M(整数)ビットデータの最上位ビットを上位側へ複写
することによって前記Mビットデータのデータ幅をNビ
ットに拡張する符号拡張器と、Mビットデータの上位側
にゼロ値を発生させることによって前記Mビットデータ
のデータ幅をNビットに拡張するゼロ拡張器と、与えら
れた命令に従って演算処理を行う演算器と、前記命令に
含まれるディスティネーションレジスタの種別を判別す
る判別手段と、前記命令がMビットの即値データを含
場合、前記判別手段において、前記第1レジスタと判別
されたときには、前記即値データを前記ゼロ拡張器に出
力し、記第2レジスタと判別されたときには、前記即
値データを前記符号拡張器に出力するように前記第1レ
ジスタ、前記第2レジスタ及び前記演算器を制御する命
令制御手段とを備える。
【0021】請求項2の発明に係るデータ処理装置は、
請求項1の発明に対し、第1レジスタが、メモリのアド
レスデータを格納するアドレスレジスタであり、第2レ
ジスタが、命令のデータオペランドを格納するデータレ
ジスタである。請求項3の発明に係るデータ処理装置
は、請求項1又は2の発明に対し、即値データのビット
幅Mが、2のベキ乗である。
【0022】請求項4の発明に係るデータ処理方法は、
整数Nビット幅の第1及び第2レジスタに対してアクセ
スするNより小さい整数Mビット幅の即値データを指定
した命令に従って所定の演算を行うデータ処理方法であ
って、前記命令に含まれるディスティネーションレジス
タの種別を判別する判別ステップと、前記判別ステップ
において、前記第1レジスタと判別されたときには、前
記即値データをMビットデータの上位側にゼロ値を発生
させることによって前記Mビットデータのデータ幅をN
ビットに拡張し、前記第2レジスタと判別されたときに
は、前記即値データをMビットデータの最上位ビットを
上位側へ複写することによって前記Mビットデータのデ
ータ幅をNビットに拡張するデータ拡張ステップと、前
記データ拡張ステップでNビット幅に拡張された即値デ
ータを用い、前記命令に従って所定の演算処理を行う演
算ステップとを備える。
【0023】請求項5の発明に係るデータ処理方法は、
請求項4の発明に対し、前記第1レジスタは、メモリの
アドレスデータを格納するアドレスレジスタであり、前
記第2レジスタは、前記命令のデータオペランドを格納
するデータレジスタである。請求項6の発明に係るデー
タ処理方法は、請求項4又は5の発明に対し、前記即値
データのビット幅Mは、2のベキ乗である
【0024】
【作用】請求項1乃至請求項の発明において、判別手
段はディスティネーションレジスタの種別を判別する。
命令制御手段は、前記命令がMビットの即値データを含
む場合に、前記判別手段において、種別が第1レジスタ
と判別されたとき、即値データをゼロ拡張器に出力す
る。また、同様に第2レジスタと判別されたとき、即値
データを符号拡張器に出力する。ゼロ拡張器及び符号拡
張器は、与えられた即値データに対して、各々ゼロ拡張
及び符号拡張処理を行い、Mビット幅の即値データをN
ビット幅のデータに拡張する。その後、演算器は、拡張
された即値データを使用し、所定の演算処理を行う。
【0025】
【実施例】以下、本発明の実施例について、図面を参照
しながら説明する。図1は、本発明の実施例によるデー
タ処理装置の全体構成を示すブロック図であり、図2は
その詳細ブロック図である。図1及び図2において、デ
ータ処理装置は、外部との命令及びデータ転送を制御す
るバス転送制御部101と、命令読み出し動作を制御す
る命令フェッチ部102と、命令を解読する命令解読部
103と、32ビット幅のデータ演算を行う演算器10
4と、演算器104が使用するデータを格納するレジス
タ105と、演算器104での演算結果に基づいて設定
されるフラグ群を格納するプログラム状態語106と、
分岐命令の場合に条件成立か不成立かを判断する分岐判
断部107と、実行中の命令アドレスを格納するプログ
ラムカウンタ108と、16ビット入力データの最上位
ビットを符号拡張して32ビットデータとして出力する
符号拡張器109と、16ビット入力データの上位側1
6ビット分に値ゼロを発生させて32ビットに拡張する
ゼロ拡張器110とを備えている。
【0026】レジスタ105は、主としてデータを格納
する32ビット幅の8個のレジスタD0〜D7からなる
データレジスタ群105aと、主としてアドレスデータ
を格納する32ビット幅の7個のレジスタA0〜A6か
らなるアドレスレジスタ群105bとを備えている。以
上のように構成されたデータ処理装置について、その動
作を説明する。なお、図3は、主に命令解読部103の
処理フローを示している。
【0027】まず、命令フェッチ部102は、バス転送
制御部101を起動し、外部のROM等に格納されたプ
ログラムの命令を逐次読み出す。読み出されたプログラ
ムの命令は、命令フェッチ部102を介して命令解読部
103に出力される。図3を参照して、命令解読部10
3は、読み出された命令を解読する(ステップS1
0)。命令の解読動作において、算術演算、論理演算、
レジスタ間転送、メモリ、分岐等の命令の種類を示すオ
ペレーションコード及びデータ、即値データ、レジスタ
番号、メモリアドレス等の演算数(オペランド)が解読
される。この解読結果に従って、この命令が32ビット
より短いビット幅の即値データを指定しているか否かを
判断する(ステップS20)。短いビット幅の即値デー
タを指定していれば、次のステップS30に進み、指定
していなければステップS40に進む。
【0028】短いデータ幅の即値データが検出される
と、この命令が指定するアクセス先レジスタ(ディステ
ィネーションレジスタ)がデータレジスタ群105aに
あるかアドレスレジスタ群105bにあるかを判別する
(ステップS30)。さらに、制御信号発生部103a
は、解読された命令の内容及びアクセス先のレジスタの
種別に応じて演算器104、符号拡張器109、ゼロ拡
張器110に制御信号を出力する(ステップS40)。
【0029】ここで、命令の内容毎にデータ処理装置の
処理動作を説明する。 (1)「データレジスタ群105aまたはアドレスレジ
スタ群105bに属するレジスタ間のデータ転送、ある
いはこれらのレジスタに格納されたデータの演算」命令
の場合。(例えば、”MOVE D0,D1”や”AD
D A0,A1”等) 前者では、ソースレジスタから読み出されたNビット幅
のデータが指定されたレジスタ(ディスティネーション
レジスタ)に格納される。
【0030】後者では、所定のレジスタから読み出され
た2つのNビット幅のデータが演算器104に入力さ
れ、所定の演算がなされた後、指定されたレジスタに格
納される。 (2)「Mビットの即値データをデータレジスタ群10
5aに格納し、あるいは演算する」命令の場合。(例え
ば、”MOVI #H’0010,D0”や”ADDI
#H’0010,D0”等) 前者では、命令解読部103において、命令がMビット
幅の即値データを指定し、かつディスティネーションレ
ジスタがデータレジスタ群105aであることが解読さ
れる。この結果、Mビット幅の即値データは、符号拡張
器109でNビット幅に拡張されて指定されたデータレ
ジスタへ格納される。
【0031】後者では、上記と同様に、Mビット幅の即
値データは、符号拡張器109でNビット幅に拡張され
て演算器104の一方に入力される。そして、所定の演
算が行われた後、指定されたデータレジスタへ出力され
る。 (3)「Mビットの即値データをアドレスレジスタ群1
05bに格納し、あるいは演算する」命令の場合。(例
えば、”MOVI #H’0010,A0”や”ADD
I #H’0010,A0”等) 前者では、命令解読部103において、命令がMビット
の即値データを指定し、かつディスティネーションレジ
スタがアドレスレジスタ群105bであることが解読さ
れる。この結果、Mビット幅の即値データは、ゼロ拡張
器110でNビット幅に拡張されて指定されたアドレス
レジスタへ出力される。
【0032】後者では、同様にMビット幅の即値データ
がゼロ拡張器110でNビット幅にゼロ拡張されて演算
器104の一方に入力される。そして、所定の演算が行
われた後、指定されたアドレスレジスタ群105bへ出
力される。ここで、ゼロ拡張器110の動作について図
4を用いて説明する。ゼロ拡張器110は、Mビットで
表現される数値の最上位ビットが0、1のいずれであっ
ても、上位側へNビットまで0を発生させて拡張する。
【0033】さらに、この実施例によるデータ処理装置
について、特に、Mビット幅の即値データの処理動作を
具体例を用いて説明する。一例として、従来の装置の説
明に使用したものと同じ内容のプログラムの実行動作に
ついて説明する。図6は、従来の例を示す図8及び図1
1に対応するプログラムを示している。このプログラム
の内容を再記すると、図10に示すように、32ビット
でアドレス指定されるメモリの全アドレス空間の中で
H’8000(H’は16進数表記を示す)番地から
H’8100番地までH’10番地刻みに格納されてい
るメモリ上の16個のデータを順次加算し、その和を
H’10000000番地へ書き出す処理を示してい
る。以下、図6に従って図1〜図5を参照して説明す
る。 命令(1):データレジスタD0をクリアする。 命令(2):アドレスレジスタA0に32ビットの即値
データH’00008000を設定する。
【0034】図3を参照して、命令解読部103は、こ
の命令を解読する(ステップS10)。そして、16ビ
ット表記の即値データH’8000を使用していること
を判別する(ステップS20)。さらに、アドレスレジ
スタ群105bへのデータ格納命令であることを判別す
る(ステップS30)。したがって、命令解読部103
は、制御信号発生部103aによって、ゼロ拡張器11
0に制御信号を発する(ステップS40)。ゼロ拡張器
110は、制御信号に従って16ビットの即値データ
H’8000を32ビットデータH’00008000
にゼロ拡張し、アドレスレジスタA0にロードする。 命令(3):アドレスレジスタA0で指定されるメモリ
の内容をデータレジスタD1に格納する。 命令(4):データレジスタD1に格納されたデータを
データレジスタD0に格納されたデータに加算し、デー
タレジスタD0に格納する。 命令(5):アドレスレジスタA0に格納されたデータ
に即値データH’0010を加算し、アドレスレジスタ
A0に格納する。
【0035】この命令は16ビットの即値データH’0
010を使用している。そして、アドレスレジスタA0
へのデータ格納を指示している。したがって、命令解読
部103は、制御信号発生部103aによって、先ずゼ
ロ拡張器110に制御信号を発する。ゼロ拡張器110
は、制御信号に従って16ビットの即値データH’00
10を32ビットデータH’00000010にゼロ拡
張し、演算器104の一方に出力する。
【0036】また、制御信号発生部103aからの制御
信号を受けて、アドレスレジスタA0は、格納されたデ
ータH’00008000を読み出し、演算器104の
他方に出力する。さらに、演算器104は、入力された
2つの32ビットデータ(H’00008000、H’
00000010)を加算し、加算結果をアドレスレジ
スタA0に格納する。 命令(6):上記の算出データと即値データH’810
0とを比較する。
【0037】この命令は、16ビットの即値データH’
8100を使用している。そして、アドレスレジスタA
0のデータとの比較を指示している。したがって、制御
信号発生部103aは、先ずゼロ拡張器110に制御信
号を発する。ゼロ拡張器110は、制御信号に従って1
6ビットの即値データH’8100を32ビットデータ
H’00008100にゼロ拡張し、演算器104の一
方に出力する。
【0038】また、アドレスレジスタ105bは、制御
信号発生部103aからの制御信号を受けて、アドレス
レジスタA0から格納データ(H’00008010)
を読み出し、演算器104の他方側に出力する。演算器
104は、入力された2つの32ビットデータを比較す
る。 命令(7):比較結果に基づいて、小さければラベルA
で示す命令(3)へ戻り、等しいかまたは大きければ命
令(8)へ進むように判断する。
【0039】命令(3)から命令(7)で記述されるル
ープ処理は、アドレスレジスタA0の値がH’0000
8000から始めてH’00000010ずつ更新さ
れ、H’00008100になるまで繰返される。この
ために、16回の加算結果がデータレジスタD0に格納
された後、命令(8)へ進む。 命令(8):データレジスタD0の内容をメモリのH’
10000000番地へ格納する。
【0040】このように、命令(2)及び命令(6)に
おいて使用した即値データは、図10に示すメモリの先
頭から2の16乗のアドレス空間のアドレスデータを1
6ビット表記で指定することができる。このために、3
2ビット表記する必要のある従来例に比べて、命令
(2)、(6)の2ステップにおいて即値データの記述
がそれぞれ2バイト(16ビット)分短くなる。その結
果、上記例のプログラムの場合には、従来例に比較して
プログラムサイズを4バイト小さくすることができる。
【0041】さらに、同一バスで命令とデータがアクセ
スされる構成のデータ処理装置においては、プログラム
サイズの削減は、命令獲得のためのバスアクセスと命令
実行に伴うデータアクセスのためのバスアクセスとの競
合を減少させることになり、実行速度の向上に寄与する
ことができる。なお、上記実施例においては、32ビッ
トのアドレスレジスタを有するデータ処理装置に対し
て、16ビットの即値データの処理について説明した
が、この例に限定されるものではなく、16、32等N
ビットデータの格納が可能なアドレスレジスタに対し
て、4、8、16等M(M<N)ビットの即値データの
処理に適用することができる。
【0042】
【発明の効果】このように、本発明は、即値データを含
む命令が与えられた場合に、即値データがアクセス対象
とするレジスタの種別に応じて、ゼロ拡張及び符号拡張
のいずれかを判別してデータ拡張した後、所定の演算処
理を行うように構成されているので、Nビットで表現さ
れる全アドレス空間のMSBが”1”のアドレス空間に
あるデータをアクセスするための即値データとして、N
より小さいMビットの即値データを指定することができ
る。これにより、即値データの表記が簡略化され、プロ
グラムサイズを小さくすることができる。
【図面の簡単な説明】
【図1】本発明の実施例によるデータ処理装置の全体構
成を示すブロック図である。
【図2】図1に示すデータ処理装置の主要部の構成を示
すブロック図である。
【図3】本実施例のデータ処理装置の命令解読部103
の処理を示す処理フロー図である。
【図4】ゼロ拡張器の動作を概念的に示す説明図であ
る。
【図5】符号拡張器の動作を概念的に示す説明図であ
る。
【図6】本実施例のデータ処理装置に使用されるプログ
ラム例を示す説明図である。
【図7】従来の第1例におけるデータ処理装置の構成を
示すブロック図である。
【図8】図7に示す従来のデータ処理装置に使用される
プログラム例を示す説明図である。
【図9】図8に示すプログラムの動作を説明するフロー
チャートである。
【図10】データ処理装置が使用するメモリ空間を模式
的に示す説明図である。
【図11】従来の第2例によるプログラム例を示す説明
図である。
【符号の説明】
103 命令解読部 103a 制御信号発生部 104 演算部 105 レジスタ 105a データレジスタ群 105b アドレスレジスタ群 109 符号拡張器 110 ゼロ拡張器
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平4−172533(JP,A) 特開 昭62−259140(JP,A) 特開 昭55−72255(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 9/30 G06F 7/00 G06F 9/34

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 即値データを指定した命令に従って所定
    のデータ演算を行うデータ処理装置であって、 整数Nビット幅を有する第1レジスタと、 Nビット幅を有する第2レジスタと、 Nより小さいM(整数)ビットデータの最上位ビットを
    上位側へ複写することによって前記Mビットデータのデ
    ータ幅をNビットに拡張する符号拡張器と、 Mビットデータの上位側にゼロ値を発生させることによ
    って前記Mビットデータのデータ幅をNビットに拡張す
    るゼロ拡張器と、 与えられた命令に従って演算処理を行う演算器と、 前記命令に含まれるディスティネーションレジスタの種
    別を判別する判別手段と、 前記命令がMビットの即値データを含む場合、前記判別
    手段において、前記第1レジスタと判別されたときに
    は、前記即値データを前記ゼロ拡張器に出力し、前記第
    2レジスタと判別されたときには、前記即値データを前
    記符号拡張器に出力するように前記第1レジスタ、前記
    第2レジスタ及び前記演算器を制御する命令制御手段と
    を備えた、データ処理装置。
  2. 【請求項2】 前記第1レジスタは、メモリのアドレス
    データを格納するアドレスレジスタであり、 前記第2レジスタは、前記命令のデータオペランドを格
    納するデータレジスタである、請求項1記載のデータ処
    理装置。
  3. 【請求項3】 前記即値データのビット幅Mは、2のベ
    キ乗である請求項1または2記載のデータ処理装置。
  4. 【請求項4】 整数Nビット幅の第1及び第2レジスタ
    に対してアクセスするNより小さい整数Mビット幅の即
    値データを指定した命令に従って所定の演算を行うデー
    タ処理方法であって、 前記命令に含まれるディスティネーションレジスタの種
    別を判別する判別ステップと、 前記判別ステップにおいて、前記第1レジスタと判別さ
    れたときには、前記即値データをMビットデータの上位
    側にゼロ値を発生させることによって前記Mビットデー
    タのデータ幅をNビットに拡張し、前記第2レジスタと
    判別されたときには、前記即値データをMビットデータ
    の最上位ビットを上位側へ複写することによって前記M
    ビットデータのデータ幅をNビットに拡張するデータ拡
    張ステップと、 前記データ拡張ステップでNビット幅に拡張された即値
    データを用い、前記命令に従って所定の演算処理を行う
    演算ステップとを備えた、データ処理方法。
  5. 【請求項5】 前記第1レジスタは、メモリのアドレス
    データを格納するアドレスレジスタであり、 前記第2レジスタは、前記命令のデータオペランドを格
    納するデータレジスタである、請求項4記載のデータ処
    理装置。
  6. 【請求項6】 前記即値データのビット幅Mは、2のベ
    キ乗である請求項4または5記載のデータ処理方法。
JP5129529A 1993-05-27 1993-05-31 データ処理装置およびデータ処理方法 Expired - Lifetime JP2832900B2 (ja)

Priority Applications (13)

Application Number Priority Date Filing Date Title
JP5129529A JP2832900B2 (ja) 1993-05-31 1993-05-31 データ処理装置およびデータ処理方法
EP02076025A EP1229439A3 (en) 1993-05-27 1994-05-27 Program converting unit and processor improved in address management
EP01202455A EP1164479B1 (en) 1993-05-27 1994-05-27 Program converting unit
DE69432445T DE69432445T2 (de) 1993-05-27 1994-05-27 Verbesserter Prozessor für Adressierung
DE69434967T DE69434967T2 (de) 1993-05-27 1994-05-27 Programmumsetzungseinheit und verbesserter Prozessor für Adressierung
EP02076028A EP1229440B1 (en) 1993-05-27 1994-05-27 Program converting unit and processor improved in address management
DE69434971T DE69434971T2 (de) 1993-05-27 1994-05-27 Programmumsetzungseinheit
EP04075265A EP1416374A3 (en) 1993-05-27 1994-05-27 Program converting unit and processor improved in address management
EP94303862A EP0626641B1 (en) 1993-05-27 1994-05-27 Processor improved in address management
US08/587,338 US5809306A (en) 1993-05-27 1996-01-16 Variable address length compiler and processor improved in address management
US09/662,484 USRE41959E1 (en) 1993-05-27 2000-09-14 Variable address length compiler and processor improved in address management
US10/991,367 USRE40498E1 (en) 1993-05-27 2004-11-19 Variable address length compiler and processor improved in address management
US11/607,889 US20080320454A1 (en) 1993-05-27 2006-12-04 Variable address length compiler and processor improved in address management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5129529A JP2832900B2 (ja) 1993-05-31 1993-05-31 データ処理装置およびデータ処理方法

Publications (2)

Publication Number Publication Date
JPH06337782A JPH06337782A (ja) 1994-12-06
JP2832900B2 true JP2832900B2 (ja) 1998-12-09

Family

ID=15011774

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5129529A Expired - Lifetime JP2832900B2 (ja) 1993-05-27 1993-05-31 データ処理装置およびデータ処理方法

Country Status (1)

Country Link
JP (1) JP2832900B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006154979A (ja) 2004-11-25 2006-06-15 Sony Corp 浮動小数点数演算回路

Also Published As

Publication number Publication date
JPH06337782A (ja) 1994-12-06

Similar Documents

Publication Publication Date Title
US5809306A (en) Variable address length compiler and processor improved in address management
JP3554342B2 (ja) 拡張ワード寸法及びアドレス空間を有する逆互換性コンピュータアーキテクチュア
US5249280A (en) Microcomputer having a memory bank switching apparatus for accessing a selected memory bank in an external memory
JPH0827716B2 (ja) データ処理装置及びデータ処理方法
JPS6122331B2 (ja)
JP2970821B2 (ja) データ処理装置
JP2889845B2 (ja) 情報処理装置
JPH1049369A (ja) データ処理装置
JPH10207717A (ja) マイクロコンピュータ
JP2551167B2 (ja) マイクロコンピュータ
US5301338A (en) System including central processing unit
JP2832900B2 (ja) データ処理装置およびデータ処理方法
JPH034936B2 (ja)
JPH0192851A (ja) アドレス空間切替装置
JP3507193B2 (ja) ロード・ストア命令処理装置
JP3123545B2 (ja) データ処理装置
JP2001216136A (ja) 加算回路およびプロセッサ
US7103751B1 (en) Method and apparatus for representation of an address in canonical form
JP3024410B2 (ja) プログラマブルコントローラ
JP3541863B2 (ja) 中央演算処理装置
JPH04195629A (ja) 演算フラグ生成装置
JP5263498B2 (ja) 信号処理プロセッサ及び半導体装置
JP2878250B2 (ja) データ処理装置
JPH05100818A (ja) バレルシフタ
JPH0833821B2 (ja) データ処理装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081002

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091002

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091002

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101002

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111002

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121002

Year of fee payment: 14

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131002

Year of fee payment: 15

EXPY Cancellation because of completion of term