JPH11259293A - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JPH11259293A JPH11259293A JP10061507A JP6150798A JPH11259293A JP H11259293 A JPH11259293 A JP H11259293A JP 10061507 A JP10061507 A JP 10061507A JP 6150798 A JP6150798 A JP 6150798A JP H11259293 A JPH11259293 A JP H11259293A
- Authority
- JP
- Japan
- Prior art keywords
- register
- instruction
- contents
- extension
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】
【課題】 同一の命令コード幅で定義できる命令数を増
加させることによって、プログラムのオブジェクトサイ
ズを圧縮すること。 【解決手段】 拡張命令を用いる場合に命令の拡張有及
び拡張の種類を指示するコードを拡張タイプレジスタ1
2に保持し、含まれる拡張のコードを使用する回数を拡
張回数レジスタ17に保持しておく。こうすれば以後に
続く命令内で拡張の有無や拡張の種類を示すコードを含
ませる必要がなくなる。従って同一の種類の命令が継続
する場合に、プログラムサイズを縮小することができ
る。
加させることによって、プログラムのオブジェクトサイ
ズを圧縮すること。 【解決手段】 拡張命令を用いる場合に命令の拡張有及
び拡張の種類を指示するコードを拡張タイプレジスタ1
2に保持し、含まれる拡張のコードを使用する回数を拡
張回数レジスタ17に保持しておく。こうすれば以後に
続く命令内で拡張の有無や拡張の種類を示すコードを含
ませる必要がなくなる。従って同一の種類の命令が継続
する場合に、プログラムサイズを縮小することができ
る。
Description
【0001】
【発明の属する技術分野】本発明は、命令コードを圧縮
してプログラムのオブジェクトサイズを小さくするデー
タ処理装置に関するものである。
してプログラムのオブジェクトサイズを小さくするデー
タ処理装置に関するものである。
【0002】
【従来の技術】近年、マイクロコンピュータはあらゆる
機器に利用されており、処理能力の向上に伴い、より広
い分野でより複雑な制御に応用されている。組込み用途
でも処理プログラムの大規模化によりオブジェクトサイ
ズが増大してきており、プログラム格納用のメモリサイ
ズが増大している。その結果、メモリサイズが組込み用
マイクロコンピュータのチップサイズの大きな部分を占
めるようになってきている。
機器に利用されており、処理能力の向上に伴い、より広
い分野でより複雑な制御に応用されている。組込み用途
でも処理プログラムの大規模化によりオブジェクトサイ
ズが増大してきており、プログラム格納用のメモリサイ
ズが増大している。その結果、メモリサイズが組込み用
マイクロコンピュータのチップサイズの大きな部分を占
めるようになってきている。
【0003】プログラムのオブジェクトサイズを小さく
するため、従来からいくつかのアプローチがなされてい
る。特開平5―46383号(従来例1)では、機械命
令生成装置が良く使用する命令を1バイトの短い命令コ
ードに割り当てることにより全体のオブジェクトサイズ
を小さくしている。又特開平8―328850号(従来
例2)では、1バイトの半分を単位として命令コードを
拡張し、メモリをより小さな刻みで使用することにより
オブジェクトサイズを小さくしている。特開平9―16
0774号(従来例3)では、分割したメモリ空間毎に
異なる命令体系の命令が使えるようにすることにより、
固定長命令体系における命令の数を拡張している。
するため、従来からいくつかのアプローチがなされてい
る。特開平5―46383号(従来例1)では、機械命
令生成装置が良く使用する命令を1バイトの短い命令コ
ードに割り当てることにより全体のオブジェクトサイズ
を小さくしている。又特開平8―328850号(従来
例2)では、1バイトの半分を単位として命令コードを
拡張し、メモリをより小さな刻みで使用することにより
オブジェクトサイズを小さくしている。特開平9―16
0774号(従来例3)では、分割したメモリ空間毎に
異なる命令体系の命令が使えるようにすることにより、
固定長命令体系における命令の数を拡張している。
【0004】
【発明が解決しようとする課題】しかしながら、上記従
来例1によれば、プログラムの処理内容によっては1バ
イトに割り当てた命令が必ずしも良く使われるとは限ら
ないため、1バイト長以上のコードサイズの命令が多く
使われるとオブジェクトサイズが大きくなるという問題
があった。
来例1によれば、プログラムの処理内容によっては1バ
イトに割り当てた命令が必ずしも良く使われるとは限ら
ないため、1バイト長以上のコードサイズの命令が多く
使われるとオブジェクトサイズが大きくなるという問題
があった。
【0005】上記従来例2によれば、従来より小さな単
位で命令が拡張できるため、1バイト長以上のコードサ
イズの命令が多く使われたとしても上記従来例1に比べ
ればオブジェクトサイズを小さくできるが、プログラム
の処理内容によっては依然オブジェクトサイズが大きく
なるという問題があった。
位で命令が拡張できるため、1バイト長以上のコードサ
イズの命令が多く使われたとしても上記従来例1に比べ
ればオブジェクトサイズを小さくできるが、プログラム
の処理内容によっては依然オブジェクトサイズが大きく
なるという問題があった。
【0006】上記従来例3によれば、プログラムの処理
に応じてメモリ空間毎に決められた命令体系を選択する
ことができるが、命令体系を切換えるためには異なるメ
モリ空間に分岐する命令が必要となり、頻繁に切換える
と分岐命令によるコードサイズの増大が生じるという問
題があった。
に応じてメモリ空間毎に決められた命令体系を選択する
ことができるが、命令体系を切換えるためには異なるメ
モリ空間に分岐する命令が必要となり、頻繁に切換える
と分岐命令によるコードサイズの増大が生じるという問
題があった。
【0007】本発明は上記の問題点に鑑み、拡張命令を
含む命令コードや演算サイズの異なる命令コードを含む
プログラムについて、使用する命令コードに偏りがある
ことを利用して従来例以上にプログラムのオブジェクト
サイズを小さくすることを目的としている。
含む命令コードや演算サイズの異なる命令コードを含む
プログラムについて、使用する命令コードに偏りがある
ことを利用して従来例以上にプログラムのオブジェクト
サイズを小さくすることを目的としている。
【0008】
【課題を解決するための手段】本願の請求項1の発明
は、命令の拡張の有無及び拡張の種類を示すコードを格
納する第1のレジスタと、解読する命令のコードを格納
する第2のレジスタと、前記第1のレジスタの内容と前
記第2のレジスタに格納された命令コードとを入力し、
前記第2のレジスタに格納された命令コードを解読して
処理制御信号を生成する命令解読手段とを備え、前記第
1のレジスタの内容が拡張有りを示すとき、前記第2の
レジスタに格納された命令コードを前記第1のレジスタ
の内容が示す拡張の種類に応じて拡張された命令コード
として解読し、各命令コードに拡張コードの指定を省略
することで命令コードを圧縮することを特徴とするもの
である。
は、命令の拡張の有無及び拡張の種類を示すコードを格
納する第1のレジスタと、解読する命令のコードを格納
する第2のレジスタと、前記第1のレジスタの内容と前
記第2のレジスタに格納された命令コードとを入力し、
前記第2のレジスタに格納された命令コードを解読して
処理制御信号を生成する命令解読手段とを備え、前記第
1のレジスタの内容が拡張有りを示すとき、前記第2の
レジスタに格納された命令コードを前記第1のレジスタ
の内容が示す拡張の種類に応じて拡張された命令コード
として解読し、各命令コードに拡張コードの指定を省略
することで命令コードを圧縮することを特徴とするもの
である。
【0009】本願の請求項2の発明は、請求項1のデー
タ処理装置において、命令拡張コードを使用する回数を
指定する第3のレジスタを備え、前記命令解読手段は、
前記第1のレジスタの内容が拡張有りを示すとき、前記
第3のレジスタの内容が特定の値になるまで、命令実行
の終了毎に前記第3のレジスタを更新し、前記第2のレ
ジスタに格納された命令コードを拡張された命令コード
として解読することを特徴とするものである。
タ処理装置において、命令拡張コードを使用する回数を
指定する第3のレジスタを備え、前記命令解読手段は、
前記第1のレジスタの内容が拡張有りを示すとき、前記
第3のレジスタの内容が特定の値になるまで、命令実行
の終了毎に前記第3のレジスタを更新し、前記第2のレ
ジスタに格納された命令コードを拡張された命令コード
として解読することを特徴とするものである。
【0010】本願の請求項3の発明は、請求項1又は2
のデータ処理装置において、前記命令解読手段は、内部
バスに接続されたレジスタの内容をスタックに退避する
退避手段と、内部バスに接続されたレジスタにスタック
の内容を復帰する復帰手段とを備え、前記第1のレジス
タの内容を繰り返し使用して命令コードを拡張された命
令コードとして解読中に割込みが発生すると、前記退避
手段は前記第1のレジスタの内容と前記第2のレジスタ
の内容とをスタックに退避し、割込み処理が終了すると
前記復帰手段はスタックの内容を前記第1のレジスタと
前記第2のレジスタとに復帰することを特徴とするもの
である。
のデータ処理装置において、前記命令解読手段は、内部
バスに接続されたレジスタの内容をスタックに退避する
退避手段と、内部バスに接続されたレジスタにスタック
の内容を復帰する復帰手段とを備え、前記第1のレジス
タの内容を繰り返し使用して命令コードを拡張された命
令コードとして解読中に割込みが発生すると、前記退避
手段は前記第1のレジスタの内容と前記第2のレジスタ
の内容とをスタックに退避し、割込み処理が終了すると
前記復帰手段はスタックの内容を前記第1のレジスタと
前記第2のレジスタとに復帰することを特徴とするもの
である。
【0011】本願の請求項4の発明は、演算のサイズを
指定する第1のレジスタと、解読する命令のコードを保
持する第2のレジスタと、前記第2のレジスタに格納さ
れた命令コード中の演算サイズ指定情報の有無を検出す
るサイズ情報検出手段と、前記第1のレジスタの内容、
前記第2のレジスタの内容、及び前記サイズ情報検出手
段の検出結果を入力し、前記第2のレジスタに格納され
た命令コードに演算サイズの情報が含まれている場合に
は当該情報を演算のサイズとし、演算サイズの情報が含
まれていない場合には前記第1のレジスタの内容を使用
して演算サイズを決定し、演算の制御信号を生成する命
令解読手段と、を具備することを特徴とするものであ
る。
指定する第1のレジスタと、解読する命令のコードを保
持する第2のレジスタと、前記第2のレジスタに格納さ
れた命令コード中の演算サイズ指定情報の有無を検出す
るサイズ情報検出手段と、前記第1のレジスタの内容、
前記第2のレジスタの内容、及び前記サイズ情報検出手
段の検出結果を入力し、前記第2のレジスタに格納され
た命令コードに演算サイズの情報が含まれている場合に
は当該情報を演算のサイズとし、演算サイズの情報が含
まれていない場合には前記第1のレジスタの内容を使用
して演算サイズを決定し、演算の制御信号を生成する命
令解読手段と、を具備することを特徴とするものであ
る。
【0012】本願の請求項5の発明は、請求項4のデー
タ処理装置において、前記演算サイズを指定する第1の
レジスタは1ビットで構成され、前記第2のレジスタに
格納される命令は前記第1のレジスタの内容を反転する
命令を備え、演算サイズが前記第2のレジスタで指定さ
れるサイズと異なる時には、あらかじめ前記第1のレジ
スタの内容を反転する命令を実行することを特徴とする
ものである。
タ処理装置において、前記演算サイズを指定する第1の
レジスタは1ビットで構成され、前記第2のレジスタに
格納される命令は前記第1のレジスタの内容を反転する
命令を備え、演算サイズが前記第2のレジスタで指定さ
れるサイズと異なる時には、あらかじめ前記第1のレジ
スタの内容を反転する命令を実行することを特徴とする
ものである。
【0013】本願の請求項6の発明は、請求項4又は5
のデータ処理装置において、内部バスに接続されたレジ
スタの内容をスタックに退避する退避手段と、内部バス
に接続されたレジスタにスタックの内容を復帰する復帰
手段とを備え、割込みが発生すると前記退避手段は前記
第1のレジスタの内容をスタックに退避し、割込み処理
が終了すると前記復帰手段はスタックの内容を前記第1
のレジスタに復帰することを特徴とするものである。
のデータ処理装置において、内部バスに接続されたレジ
スタの内容をスタックに退避する退避手段と、内部バス
に接続されたレジスタにスタックの内容を復帰する復帰
手段とを備え、割込みが発生すると前記退避手段は前記
第1のレジスタの内容をスタックに退避し、割込み処理
が終了すると前記復帰手段はスタックの内容を前記第1
のレジスタに復帰することを特徴とするものである。
【0014】
【発明の実施の形態】図1は本発明の第1の実施の形態
によるデータ処理装置の構成を示すブロック図である。
図1において、メモリ1にはプログラムが格納される領
域とスタック領域等のワークエリアを有している。命令
先読みバッファ(IB)2はメモリ1から読出したプロ
グラムの命令コードを格納するものである。命令レジス
タ(IR)3は解読する命令のコードを格納する第2の
レジスタであり、レジスタ(SR)4は解読する命令が
複数サイクル必要な場合に解読サイクルのステートを格
納するものである。命令解読器5は命令レジスタ3に格
納された命令を解読して全体の制御信号を生成する命令
解読手段であり、プリフェッチカウンタ(PFC)6は
メモリ1から解読に必要な命令をあらかじめ読出すため
のアドレスを格納するものであり、加算器7は制御信号
に基づいてプリフェッチカウンタ6の内容を更新するも
のであり、セレクタ8は加算器7の加算結果と分岐アド
レスとを選択するものであり、分岐命令を実行したとき
には分岐アドレスを選択し、それ以外は加算器7の加算
結果を選択する。
によるデータ処理装置の構成を示すブロック図である。
図1において、メモリ1にはプログラムが格納される領
域とスタック領域等のワークエリアを有している。命令
先読みバッファ(IB)2はメモリ1から読出したプロ
グラムの命令コードを格納するものである。命令レジス
タ(IR)3は解読する命令のコードを格納する第2の
レジスタであり、レジスタ(SR)4は解読する命令が
複数サイクル必要な場合に解読サイクルのステートを格
納するものである。命令解読器5は命令レジスタ3に格
納された命令を解読して全体の制御信号を生成する命令
解読手段であり、プリフェッチカウンタ(PFC)6は
メモリ1から解読に必要な命令をあらかじめ読出すため
のアドレスを格納するものであり、加算器7は制御信号
に基づいてプリフェッチカウンタ6の内容を更新するも
のであり、セレクタ8は加算器7の加算結果と分岐アド
レスとを選択するものであり、分岐命令を実行したとき
には分岐アドレスを選択し、それ以外は加算器7の加算
結果を選択する。
【0015】プログラムカウンタ(PC)9は命令解読
器5が解読する命令がメモリ1の中に配置されているア
ドレスを格納するものである。加算器10は解読中の命
令の語長情報に基づいてプログラムカウンタ9の内容を
更新するものであり、セレクタ11は加算器10の加算
結果と分岐アドレスとを選択するものであり、分岐命令
を実行したときには分岐アドレスを選択し、それ以外は
加算器10の加算結果を選択する。又拡張タイプレジス
タ(EXTYP)12は命令の拡張タイプ情報を格納す
る第1のレジスタであり、セレクタ13は制御信号に基
づいて拡張タイプレジスタ12に格納する情報を選択す
るものである。又演算実行部14は内部バス15に接続
された複数の汎用レジスタ16を有し、加えられた演算
命令に応じて演算を実行すると共に、割込み時に退避処
理、割込終了時に復帰処理を行うものである。演算実行
部14の内部バス15には更に拡張回数レジスタ(EX
NUM)17が接続されている。拡張回数レジスタ17
はカウンタとして用いられ、拡張タイプレジスタ12の
情報を命令解読器5が使用する回数情報を格納する第3
のレジスタである。又分岐制御部18は分岐命令を実行
するものであり、分岐結果に応じて命令先読みバッファ
2,セレクタ8,セレクタ11を制御して、分岐先アド
レスをプリフェッチカウンタ6とプログラムカウンタ9
に格納すると同時に、命令先読みバッファ2の内容をク
リアする。
器5が解読する命令がメモリ1の中に配置されているア
ドレスを格納するものである。加算器10は解読中の命
令の語長情報に基づいてプログラムカウンタ9の内容を
更新するものであり、セレクタ11は加算器10の加算
結果と分岐アドレスとを選択するものであり、分岐命令
を実行したときには分岐アドレスを選択し、それ以外は
加算器10の加算結果を選択する。又拡張タイプレジス
タ(EXTYP)12は命令の拡張タイプ情報を格納す
る第1のレジスタであり、セレクタ13は制御信号に基
づいて拡張タイプレジスタ12に格納する情報を選択す
るものである。又演算実行部14は内部バス15に接続
された複数の汎用レジスタ16を有し、加えられた演算
命令に応じて演算を実行すると共に、割込み時に退避処
理、割込終了時に復帰処理を行うものである。演算実行
部14の内部バス15には更に拡張回数レジスタ(EX
NUM)17が接続されている。拡張回数レジスタ17
はカウンタとして用いられ、拡張タイプレジスタ12の
情報を命令解読器5が使用する回数情報を格納する第3
のレジスタである。又分岐制御部18は分岐命令を実行
するものであり、分岐結果に応じて命令先読みバッファ
2,セレクタ8,セレクタ11を制御して、分岐先アド
レスをプリフェッチカウンタ6とプログラムカウンタ9
に格納すると同時に、命令先読みバッファ2の内容をク
リアする。
【0016】図2及び図3は本発明の第1の実施の形態
における拡張命令の命令コードサイズを圧縮する拡張制
御命令を説明するための図である。図2は従来のデータ
処理装置における拡張命令の命令列を示しており、8ビ
ットの命令コードを拡張するために8ビットの拡張指定
部が各命令に付け加わっており、これらの命令が6命令
並んでいる場合には、全部で12バイトが必要となる。
における拡張命令の命令コードサイズを圧縮する拡張制
御命令を説明するための図である。図2は従来のデータ
処理装置における拡張命令の命令列を示しており、8ビ
ットの命令コードを拡張するために8ビットの拡張指定
部が各命令に付け加わっており、これらの命令が6命令
並んでいる場合には、全部で12バイトが必要となる。
【0017】図3は拡張が必要な6つの命令列の前に、
拡張制御命令を追加した本実施の形態における命令列を
示している。拡張制御命令はそれ自体が拡張命令であ
り、拡張制御命令の後ろに続く拡張命令の命令数をオペ
ランドとする3バイト長の命令である。6つの拡張が必
要な命令列の場合には、このオペランドが6を示す。こ
の拡張制御命令により、その後ろに続く6つの命令に
は、破線で示す拡張指定部が不要となる。従って、従来
例と同じ命令列を全部で9バイトで実現でき、プログラ
ムサイズを縮小することができる。
拡張制御命令を追加した本実施の形態における命令列を
示している。拡張制御命令はそれ自体が拡張命令であ
り、拡張制御命令の後ろに続く拡張命令の命令数をオペ
ランドとする3バイト長の命令である。6つの拡張が必
要な命令列の場合には、このオペランドが6を示す。こ
の拡張制御命令により、その後ろに続く6つの命令に
は、破線で示す拡張指定部が不要となる。従って、従来
例と同じ命令列を全部で9バイトで実現でき、プログラ
ムサイズを縮小することができる。
【0018】図4は本発明の第1の実施の形態における
命令の動作フローを示す図である。以下図1と合わせて
動作フローを説明する。まず、命令解読器5は命令が拡
張制御命令か否かを判断する(ステップ100)。拡張
制御命令の場合には、拡張制御命令がオペランドとして
もつ拡張命令の数を拡張回数レジスタ17にセットし
(ステップ105)、拡張制御命令の拡張コードを拡張
タイプレジスタ12に格納する(ステップ106)。ス
テップ100の判断が拡張制御命令でない場合には、ス
テップ101において拡張回数レジスタ17の値がゼロ
か否かを判断する。拡張回数レジスタ17の値がゼロの
場合には、拡張制御命令の回数分の拡張命令の実行が終
了していることを意味するので、拡張タイプレジスタ1
2には、拡張命令ではないことを示すコード(通常命
令)を格納する(ステップ104)。拡張回数レジスタ
17がゼロでない場合には、拡張制御命令の回数分の拡
張命令の実行がまだ終了していないことを意味するの
で、ステップ102において拡張タイプレジスタ12の
内容はそのままにし、拡張回数レジスタ17の内容をマ
イナス1する。拡張制御命令でない場合には、以上のよ
うに拡張タイプレジスタ12又は拡張回数レジスタ17
が更新され、命令レジスタ3と拡張タイプレジスタ12
の内容に基づいて命令解読器5が命令を解読する(ステ
ップ103)。
命令の動作フローを示す図である。以下図1と合わせて
動作フローを説明する。まず、命令解読器5は命令が拡
張制御命令か否かを判断する(ステップ100)。拡張
制御命令の場合には、拡張制御命令がオペランドとして
もつ拡張命令の数を拡張回数レジスタ17にセットし
(ステップ105)、拡張制御命令の拡張コードを拡張
タイプレジスタ12に格納する(ステップ106)。ス
テップ100の判断が拡張制御命令でない場合には、ス
テップ101において拡張回数レジスタ17の値がゼロ
か否かを判断する。拡張回数レジスタ17の値がゼロの
場合には、拡張制御命令の回数分の拡張命令の実行が終
了していることを意味するので、拡張タイプレジスタ1
2には、拡張命令ではないことを示すコード(通常命
令)を格納する(ステップ104)。拡張回数レジスタ
17がゼロでない場合には、拡張制御命令の回数分の拡
張命令の実行がまだ終了していないことを意味するの
で、ステップ102において拡張タイプレジスタ12の
内容はそのままにし、拡張回数レジスタ17の内容をマ
イナス1する。拡張制御命令でない場合には、以上のよ
うに拡張タイプレジスタ12又は拡張回数レジスタ17
が更新され、命令レジスタ3と拡張タイプレジスタ12
の内容に基づいて命令解読器5が命令を解読する(ステ
ップ103)。
【0019】このようなフローにより命令が実行される
が、割込みの要求が発生した場合には、図4のステップ
103の処理が終了後、拡張タイプレジスタ12と拡張
回数レジスタ17の夫々の内容を、内部バス15を通し
て、割込み時にメモリ1のワークエリアのスタックに作
られる退避領域に退避させる。退避後、拡張タイプレジ
スタ12は拡張命令でないことを示す通常状態にセット
され、拡張回数レジスタ17はクリアされる。割込み処
理が終了すると、退避した夫々のレジスタの内容が再度
設定され、割り込み処理開始前の状態に復帰する。
が、割込みの要求が発生した場合には、図4のステップ
103の処理が終了後、拡張タイプレジスタ12と拡張
回数レジスタ17の夫々の内容を、内部バス15を通し
て、割込み時にメモリ1のワークエリアのスタックに作
られる退避領域に退避させる。退避後、拡張タイプレジ
スタ12は拡張命令でないことを示す通常状態にセット
され、拡張回数レジスタ17はクリアされる。割込み処
理が終了すると、退避した夫々のレジスタの内容が再度
設定され、割り込み処理開始前の状態に復帰する。
【0020】又第1の実施の形態では、拡張制御命令の
拡張タイプと一致する拡張命令が続くことを前提に説明
しているが、拡張制御命令のオペランドに拡張タイプ情
報を追加してもよい。拡張タイプ情報は拡張タイプが複
数ある場合に、そのうちの1つを指定するものである。
複数の拡張タイプを設けることによって命令コードの数
を大幅に増加することができる。
拡張タイプと一致する拡張命令が続くことを前提に説明
しているが、拡張制御命令のオペランドに拡張タイプ情
報を追加してもよい。拡張タイプ情報は拡張タイプが複
数ある場合に、そのうちの1つを指定するものである。
複数の拡張タイプを設けることによって命令コードの数
を大幅に増加することができる。
【0021】次に本発明の第2の実施の形態について説
明する。図5は第2の実施の形態によるデータ処理装置
の構成を示すブロック図であり、前述した第1の実施の
形態と同一部分は同一符号を付して詳細な説明を省略す
る。この実施の形態では命令解読器5に命令レジスタ3
に格納されたコードに含まれているサイズ情報を検出す
るサイズ情報検出手段21が接続されている。又演算実
行部14内にはサイズレジスタ(OPSZ)22が含ま
れる。サイズレジスタ22は汎用レジスタ16に格納さ
れたデータの演算サイズ情報を格納する第1のレジスタ
であり、内部バス15を介して演算実行部14の汎用レ
ジスタ16に接続されている。その他の構成は前述した
実施の形態と同様である。ここで演算サイズは2種類と
すると、サイズレジスタは1ビットのレジスタで足りる
こととなる。
明する。図5は第2の実施の形態によるデータ処理装置
の構成を示すブロック図であり、前述した第1の実施の
形態と同一部分は同一符号を付して詳細な説明を省略す
る。この実施の形態では命令解読器5に命令レジスタ3
に格納されたコードに含まれているサイズ情報を検出す
るサイズ情報検出手段21が接続されている。又演算実
行部14内にはサイズレジスタ(OPSZ)22が含ま
れる。サイズレジスタ22は汎用レジスタ16に格納さ
れたデータの演算サイズ情報を格納する第1のレジスタ
であり、内部バス15を介して演算実行部14の汎用レ
ジスタ16に接続されている。その他の構成は前述した
実施の形態と同様である。ここで演算サイズは2種類と
すると、サイズレジスタは1ビットのレジスタで足りる
こととなる。
【0022】図6は本発明の第2の実施の形態における
命令の動作フローを示す図である。以下図5と合わせて
動作フローを説明する。まずサイズ情報検出手段21
は、命令レジスタ3の命令コード中に演算サイズを示す
情報が含まれているか否かを検出し(ステップ20
0)、命令解読器5に通知する。サイズ情報が含まれて
いない場合には、命令解読器5はサイズレジスタ22に
あらかじめ格納されたサイズによって演算する制御信号
を出力する(ステップ204)。サイズ情報が含まれて
いる場合には、次にその命令がサイズレジスタ22の内
容を変更する命令か否かを判断する(ステップ20
1)。サイズレジスタの内容を変更する命令の場合に
は、解読器5はサイズレジスタ22の内容を反転するた
めの制御信号を出力する(ステップ202)。サイズレ
ジスタの内容を変更しない命令の場合には、命令解読器
5は命令コードに含まれる演算サイズの情報により演算
する制御信号を出力する(ステップ203)。尚演算サ
イズを2種類とし1ビットのサイズレジスタを用いる場
合には、命令コードとしてサイズレジスタの内容を反転
させる命令のみとしてもよい。
命令の動作フローを示す図である。以下図5と合わせて
動作フローを説明する。まずサイズ情報検出手段21
は、命令レジスタ3の命令コード中に演算サイズを示す
情報が含まれているか否かを検出し(ステップ20
0)、命令解読器5に通知する。サイズ情報が含まれて
いない場合には、命令解読器5はサイズレジスタ22に
あらかじめ格納されたサイズによって演算する制御信号
を出力する(ステップ204)。サイズ情報が含まれて
いる場合には、次にその命令がサイズレジスタ22の内
容を変更する命令か否かを判断する(ステップ20
1)。サイズレジスタの内容を変更する命令の場合に
は、解読器5はサイズレジスタ22の内容を反転するた
めの制御信号を出力する(ステップ202)。サイズレ
ジスタの内容を変更しない命令の場合には、命令解読器
5は命令コードに含まれる演算サイズの情報により演算
する制御信号を出力する(ステップ203)。尚演算サ
イズを2種類とし1ビットのサイズレジスタを用いる場
合には、命令コードとしてサイズレジスタの内容を反転
させる命令のみとしてもよい。
【0023】このようなフローにより命令が実行される
が、割込みの要求が発生した場合には、拡張タイプレジ
スタ12と拡張回数レジスタ17を退避及び復帰する動
作と同様に、サイズレジスタ22の内容をワークエリア
のスタック領域に退避させる。そして割込み処理が終了
すると、サイズレジスタ22に元の内容を復帰する。
が、割込みの要求が発生した場合には、拡張タイプレジ
スタ12と拡張回数レジスタ17を退避及び復帰する動
作と同様に、サイズレジスタ22の内容をワークエリア
のスタック領域に退避させる。そして割込み処理が終了
すると、サイズレジスタ22に元の内容を復帰する。
【0024】尚、各実施の形態の基本の命令語長は1バ
イトとしたが、本発明はこれに限定されるものではな
い。
イトとしたが、本発明はこれに限定されるものではな
い。
【0025】
【発明の効果】以上説明したように、本願の請求項1〜
3の発明によれば、拡張命令が連続する場合に各命令毎
に拡張指定コードを付する必要がなくなる。拡張命令は
連続して使用される場合が多く、この場合命令コードを
圧縮することができ、プログラムサイズを縮小すること
ができるという効果がある。
3の発明によれば、拡張命令が連続する場合に各命令毎
に拡張指定コードを付する必要がなくなる。拡張命令は
連続して使用される場合が多く、この場合命令コードを
圧縮することができ、プログラムサイズを縮小すること
ができるという効果がある。
【0026】又請求項4〜6の発明によれば、同一演算
サイズの命令は連続する場合が多く、この場合各命令毎
に演算サイズの指定コードを付する必要がなくなる。従
って命令コードを圧縮することができ、プログラムサイ
ズを縮小することができるという効果がある。
サイズの命令は連続する場合が多く、この場合各命令毎
に演算サイズの指定コードを付する必要がなくなる。従
って命令コードを圧縮することができ、プログラムサイ
ズを縮小することができるという効果がある。
【0027】上述したように、本発明に係るデータ処理
装置は、機械命令のオブジェクトサイズの増大を抑え、
その記憶手段のハードウェア規模を小さくする技術であ
るので、特に組込み用途のマイクロコンピュータ等にお
いて多大な貢献をするものである。
装置は、機械命令のオブジェクトサイズの増大を抑え、
その記憶手段のハードウェア規模を小さくする技術であ
るので、特に組込み用途のマイクロコンピュータ等にお
いて多大な貢献をするものである。
【図1】本発明の第1の実施の形態によるデータ処理装
置の構成を示すブロック図である。
置の構成を示すブロック図である。
【図2】従来のデータ処理装置における拡張命令の命令
列を示した図である。
列を示した図である。
【図3】本発明による拡張命令の命令コードサイズを圧
縮する拡張制御命令を説明するための図である。
縮する拡張制御命令を説明するための図である。
【図4】本発明による第1の実施の形態の命令の動作フ
ローを示す図である。
ローを示す図である。
【図5】本発明の第2の実施の形態によるデータ処理装
置の構成を示すブロック図である。
置の構成を示すブロック図である。
【図6】本発明の第2の実施の形態による命令の動作フ
ローを示す図である。
ローを示す図である。
1 メモリ 2 命令先読みバッファ 3 命令レジスタ 4 ステータスレジスタ 5 命令解読器 9 プログラムカウンタ 12 拡張タイプレジスタ 14 演算実行部 16 汎用レジスタ 17 拡張回数レジスタ 18 分岐制御部 21 サイズ情報検出手段 22 サイズレジスタ
Claims (6)
- 【請求項1】 命令の拡張の有無及び拡張の種類を示す
コードを格納する第1のレジスタと、 解読する命令のコードを格納する第2のレジスタと、 前記第1のレジスタの内容と前記第2のレジスタに格納
された命令コードとを入力し、前記第2のレジスタに格
納された命令コードを解読して処理制御信号を生成する
命令解読手段とを備え、 前記第1のレジスタの内容が拡張有りを示すとき、前記
第2のレジスタに格納された命令コードを前記第1のレ
ジスタの内容が示す拡張の種類に応じて拡張された命令
コードとして解読し、各命令コードに拡張コードの指定
を省略することで命令コードを圧縮することを特徴とす
るデータ処理装置。 - 【請求項2】 命令拡張コードを使用する回数を指定す
る第3のレジスタを備え、 前記命令解読手段は、前記第1のレジスタの内容が拡張
有りを示すとき、前記第3のレジスタの内容が特定の値
になるまで、命令実行の終了毎に前記第3のレジスタを
更新し、前記第2のレジスタに格納された命令コードを
拡張された命令コードとして解読するものであることを
特徴とする請求項1記載のデータ処理装置。 - 【請求項3】 前記命令解読手段は、内部バスに接続さ
れたレジスタの内容をスタックに退避する退避手段と、 内部バスに接続されたレジスタにスタックの内容を復帰
する復帰手段とを備え、 前記第1のレジスタの内容を繰り返し使用して命令コー
ドを拡張された命令コードとして解読中に割込みが発生
すると、前記退避手段は前記第1のレジスタの内容と前
記第2のレジスタの内容とをスタックに退避し、割込み
処理が終了すると前記復帰手段はスタックの内容を前記
第1のレジスタと前記第2のレジスタとに復帰すること
を特徴とする請求項1又は2記載のデータ処理装置。 - 【請求項4】 演算のサイズを指定する第1のレジスタ
と、 解読する命令のコードを保持する第2のレジスタと、 前記第2のレジスタに格納された命令コード中の演算サ
イズ指定情報の有無を検出するサイズ情報検出手段と、 前記第1のレジスタの内容、前記第2のレジスタの内
容、及び前記サイズ情報検出手段の検出結果を入力し、
前記第2のレジスタに格納された命令コードに演算サイ
ズの情報が含まれている場合には当該情報を演算のサイ
ズとし、演算サイズの情報が含まれていない場合には前
記第1のレジスタの内容を使用して演算サイズを決定
し、演算の制御信号を生成する命令解読手段と、を具備
することを特徴とするデータ処理装置。 - 【請求項5】 前記演算サイズを指定する第1のレジス
タは1ビットで構成され、 前記第2のレジスタに格納される命令は前記第1のレジ
スタの内容を反転する命令を備え、演算サイズが前記第
2のレジスタで指定されるサイズと異なる時には、あら
かじめ前記第1のレジスタの内容を反転する命令を実行
することを特徴とする請求項4記載のデータ処理装置。 - 【請求項6】 内部バスに接続されたレジスタの内容を
スタックに退避する退避手段と、 内部バスに接続されたレジスタにスタックの内容を復帰
する復帰手段とを備え、 割込みが発生すると前記退避手段は前記第1のレジスタ
の内容をスタックに退避し、割込み処理が終了すると前
記復帰手段はスタックの内容を前記第1のレジスタに復
帰することを特徴とする請求項4又は5記載のデータ処
理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP10061507A JPH11259293A (ja) | 1998-03-12 | 1998-03-12 | データ処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP10061507A JPH11259293A (ja) | 1998-03-12 | 1998-03-12 | データ処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH11259293A true JPH11259293A (ja) | 1999-09-24 |
Family
ID=13173088
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP10061507A Pending JPH11259293A (ja) | 1998-03-12 | 1998-03-12 | データ処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH11259293A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10095515B2 (en) * | 2007-12-27 | 2018-10-09 | Intel Corporation | Compressed instruction format |
-
1998
- 1998-03-12 JP JP10061507A patent/JPH11259293A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10095515B2 (en) * | 2007-12-27 | 2018-10-09 | Intel Corporation | Compressed instruction format |
| US11048507B2 (en) | 2007-12-27 | 2021-06-29 | Intel Corporation | Compressed instruction format |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3649470B2 (ja) | データ処理装置 | |
| JP2992223B2 (ja) | コンピュータシステム、命令ビット長圧縮方法、命令発生方法、及びコンピュータシステム動作方法 | |
| US6986029B2 (en) | Micro-controller for reading out compressed instruction code and program memory for compressing instruction code and storing therein | |
| US5682531A (en) | Central processing unit | |
| EP1387259B1 (en) | Inter-processor control | |
| JP2003525476A (ja) | プログラムの命令を実行するための装置及び方法 | |
| US7861071B2 (en) | Conditional branch instruction capable of testing a plurality of indicators in a predicate register | |
| JPH0332818B2 (ja) | ||
| KR100436015B1 (ko) | 프로그램의코드크기의축소화를지원하는마이크로프로세서 | |
| US20080215859A1 (en) | Computer with high-speed context switching | |
| US20050091478A1 (en) | Processor using less hardware and instruction conversion apparatus reducing the number of types of instructions | |
| US5121474A (en) | Bit string data processor using dynamically addressable bit locations in memory so overlapping strings do not destroy data in memory | |
| JPH01183737A (ja) | 情報処理装置 | |
| CN101739234B (zh) | 指令模式识别装置 | |
| JP3199604B2 (ja) | プロセッサ | |
| JPH11134202A (ja) | タスク切替え装置 | |
| JPS62219128A (ja) | デ−タ処理装置 | |
| JPH04195629A (ja) | 演算フラグ生成装置 | |
| JPH06149563A (ja) | データ処理装置 | |
| JPH0535499A (ja) | データ処理装置及びデータ処理方法 | |
| JPH07129398A (ja) | マイクロプロセッサ | |
| JPH0752402B2 (ja) | データ処理装置 | |
| JPH11175337A (ja) | データ処理装置、機械命令生成装置及び記録媒体 | |
| JP2001134449A (ja) | データ処理装置とその制御方法 | |
| JPH07152557A (ja) | ディジタル信号処理装置 |