(57)【特許請求の範囲】
【請求項１】
プログラムデータを出力するプログラムメモリと、前記プログラムデータに基づいて演算命令、データ転送命令などの命令信号をデコードする命令デコーダと、前記命令デコーダから出力され、かつ、演算に使用するソースデータを書き込み保持するための第１レジスタと、前記第１レジスタとは別に演算に使用するソースデータを書き込み保持するための第２レジスタとを備え、命令コードを読み出して解読し、実行する命令実行装置において、
前記第１レジスタおよび前記第２レジスタとのそれぞれの間でデータを転送するレジスタ間転送命令に応じて、前記第１レジスタへの書き込みを許可するライト許可信号および前記第２レジスタへの書き込みを許可するライト許可信号を出力するライト許可信号選択部と、
前記第１レジスタと前記第２レジスタからそれぞれ出力される第１および第２ソースデータを、前記レジスタ間転送命令に応じて選択するソースデータ選択部と、
前記ソースデータ選択部から出力されたソースデータを前記レジスタ間転送命令に応じて演算する演算部と、
前記ライト許可信号選択部、前記ソースデータ選択部および前記演算部に設けられ、前記命令デコーダから出力された命令信号がレジスタ間転送命令であるかを判断するレジスタ間転送命令判断部と、を具備したことを特徴とする命令実行装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、命令コードを読み出して解読し、実行する命令実行装置に関する。
【０００２】
【従来の技術】
従来、命令コードを読み出して解読し、実行する命令実行装置は図３のようになっている。
図３において、３０１はプログラムメモリ、３０２は命令デコーダ、３０３はレジスタ、３０４は演算部、３０５はライト許可信号、３０６はデスティネーションアドレス、３０７はソースアドレス、３０８は命令、３０９はソースデータ、３１０はデスティネーションデータ、３１１はプログラムデータである。
また、図４は、図３におけるプログラムデータの命令フォーマットとアドレスマップの模式図である。
このような命令実行装置において、プログラムメモリ３０１から出力されたプログラムデータ３１１は、命令デコーダ３０２によって、命令フォーマットを所定のフィールドに分割し、ソースアドレス３０７、デスティネーションアドレス３０６、命令信号３０８を抽出する。また、命令３０８が書込みを必要とする命令であれば、ライト許可信号３０５も発生する。レジスタ３０３は、演算命令を実行する際、演算に使用するデータを書き込み保持するためのものであって、ソースアドレス３０７に対応するソースデータ３０９を出力する。演算部３０４はソースデータ３０９を命令３０８に応じて演算し、デスティネーションデータ３１０として出力する。レジスタ３０３はライト許可信号３０５が有効であればデスティネーションデータ３１０を記憶する。
【０００３】
【発明が解決しようとする課題】
ところが、従来の命令実行装置では以下の問題があった。
図５は、拡張後の命令フォーマットと拡張後のアドレスマップの模式図であって、デスティネーションアドレス、ソースアドレス及び命令のビット幅がそれぞれ８ビットで２５６番地のアドレス空間を持つ場合の例を示したものである。
図４に示した命令フォーマット４０１におけるアドレスマップ４０２を拡張しようとする際に、図５に示すように拡張後の命令フォーマット５０１は、ソースアドレス３０７とデスティネーションアドレス３０６のビット幅をそれぞれ拡張する必要がある。図５は、図４と比較してアドレス空間を２倍にした場合を示しているが、この場合プログラムメモリ３０１のビット幅が２ビット増えるため、プログラムメモリ３０１の容量を増やす必要が有ると共に、プログラムデータ３１１のビット幅を増やす必要がある。例えば、プログラムメモリ３０１以降の装置がＬＳＩ内部に入っているような場合には、プログラムデータ３１１のビット幅の増加はＬＳＩの端子の増加となりコストの大きな上昇を招いていた。
本発明は、このような問題を解決するためになされたものであり、プログラムメモリのビット幅を増加することなくアドレスマップを拡張することができ、その結果、端子数を増加することのない安価な命令実行装置を提供することを目的とする。
【０００４】
【課題を解決するための手段】
上記問題を解決するため,本発明は、プログラムデータを出力するプログラムメモリと、前記プログラムデータに基づいて演算命令、データ転送命令などの命令信号をデコードする命令デコーダと、前記命令デコーダから出力され、かつ、演算に使用するソースデータを書き込み保持するための第１レジスタと、前記第１レジスタとは別に演算に使用するソースデータを書き込み保持するための第２レジスタとを備え、命令コードを読み出して解読し、実行する命令実行装置において、前記第１レジスタおよび前記第２レジスタとのそれぞれの間でデータを転送するレジスタ間転送命令に応じて、前記第１レジスタへの書き込みを許可するライト許可信号および前記第２レジスタへの書き込みを許可するライト許可信号を出力するライト許可信号選択部と、前記第１レジスタと前記第２レジスタからそれぞれ出力される第１および第２ソースデータを、前記レジスタ間転送命令に応じて選択するソースデータ選択部と、前記ソースデータ選択部から出力されたソースデータを前記レジスタ間転送命令に応じて演算する演算部と、前記ライト許可信号選択部、前記ソースデータ選択部および前記演算部に設けられ、前記命令デコーダから出力された命令信号がレジスタ間転送命令であるかを判断するレジスタ間転送命令判断部と、を具備したことを特徴とするものである。
【０００５】
【発明の実施の形態】
以下、本発明の実施例を図に基づいて説明する。
図１は本発明の実施例を示す命令実行装置のブロック図、図２は図１における命令フォーマットとアドレス空間の拡張の関係を示したものである。
図１において、１０１は命令実行装置、１０２はプログラムメモリ、１０３は命令デコーダ、１０４は第１レジスタ、１０５は第２レジスタ、１０６はソースデータ選択装置、１０７は演算部、１０８はライト許可信号選択部、１０９はライト許可信号、１１０はデスティネーションアドレス、１１１はソースアドレス，１１２は命令，１１３はソースデータ、１１４はデスティネーションデータ、１１５はプログラムデータ、１１６は第１ソースデータ、１１７は第２ソースデータ、１１８は第１ライト許可信号、１１９は第２ライト許可信号、１２０、１２１、１２２はレジスタ間転送判断部である。
本発明が従来技術と異なる点は、以下のとおりである。
命令実行装置１において、演算に使用するソースデータを書き込み保持するためのレジスタとして、第１レジスタ１０４と、前記第１レジスタ１０４とは別の第２レジスタ１０４を設けた点である。
また、命令デコーダ１０３と第１レジスタ１０４との間、および命令デコーダ１０３と第２レジスタ１０５との間には、ライト許可信号選択部１０８が設けられており、データを転送するレジスタ間転送命令に応じて、第１レジスタ１０４への書き込みを許可するライト許可信号１１８を出力すると共に、第２レジスタ１０５への書き込みを許可するライト許可信号１１９を出力するようになっている。
また、第１レジスタ１０４と第２レジスタ１０５の後段には、ソースデータ選択部１０６が設けられ、第１レジスタ１０４と第２レジスタ１０５からそれぞれ出力される第１ソースデータ１１６および第２ソースデータ１１７を、レジスタ間転送命令に応じて選択するようになっている。
また、ライト許可信号選択部１０８、ソースデータ選択部１０６および演算部１０７にはそれぞれレジスタ間転送命令判断部１２０、１２１、１２２が設けられ、命令デコーダ１０３から出力された命令信号１１２がレジスタ間転送命令であるか否かを判断するようになっている。
次に動作を説明する。
まず、プログラムメモリ１０２から出力されたプログラムデータ１１５は、命令デコーダ１０３でデスティネーションアドレス１１０，ソースアドレス１１１，命令１１２に分解される。このうち、ソースアドレス１１１は第１レジスタ１０４と第２レジスタ１０５に共通に入力され、そのアドレスに応じた値が第１ソースデータ１１６ならびに第２ソースデータ１１７として出力される。また、プログラムメモリ１０２に格納されたプログラムの一つであるレジスタ転送命令は命令デコーダ１０３から命令信号の中に含まれて出力されるが、ここではレジスタ間転送命令判断部１２０、１２１，１２２により、命令１１２がレジスタ間転送命令である場合とそうでない場合で出力信号の切替えを行なう。
また、命令１１２が第２レジスタ１０５から第１レジスタへ１０４のレジスタ間転送命令の場合には、ソースデータ選択部１０６が第２ソースデータ１１７をソースデータ１１３として出力し、それ以外の場合には、第１ソースデータ１１６をソースデータ１１３に出力する。さらに、演算部１０７を通過する命令１１２が通常の転送命令やレジスタ間転送命令の場合はソースデータ１１３をデスティネーションデータ１１４にそのまま出力しそれ以外の場合は命令１１２に応じた演算結果をデスティネーションデータ１１４に出力する。
また、ライト許可信号選択部１０８では、命令１１２が第１レジスタ１０４から第２レジスタ１０５へのレジスタ間転送命令の場合に限って第２ライト許可信号１１９を有効にして第１ライト許可信号１１８を無効にする。このときのデスティネーションデータ１１４の書込みは第２レジスタ１０５に対して行われる。命令１１２が第１レジスタ１０４から第２レジスタ１０５へのレジスタ間転送命令以外の場合は第１ライト許可信号１１８のみを有効にして第２ライト許可信号１１９は無効とする。このときのデスティネーションデータ１１４の書込みは第１レジスタ１０４に対して行われる。
このように第１レジスタ１０４から第２レジスタ１０５へのレジスタ間転送命令の際は、ソースデータ選択部１０６は第１ソースデータ１１６を選択し、ライト許可信号選択部１０８は第２ライト許可信号１１９を有効にする。逆に第２レジスタ１０５から第１レジスタ１０４へのレジスタ間転送命令の際は、ソースデータ選択部１０６は第２ソースデータ１１７を選択しライト許可信号選択部１０８は第１ライト許可信号１１８を有効にする。そのため、図２の命令フォーマット２０１に示す命令フィールドに使われていないビットパターンが２つ有れば、命令ビット幅を増やすこと無くアドレスマップを２倍に拡張することができる（第１アドレスマップ２０２と第２アドレスマップ２０３）。
もし、命令フィールドに空きのビットパターンが無い場合でも命令ビット幅を１ビット増やすだけでアドレスマップを拡張することができる。
したがって、本発明は、デスティネーションアドレス、ソースアドレスを別々のレジスタに書き込む構成にしたので、命令フォーマットのフィールドを拡大せず、また、プログラムメモリのビット幅を増加することなく、アドレスマップを拡張することができる。その結果、端子数を増加することのない安価な命令実行装置を提供することができる。
【０００６】
【発明の効果】
以上述べたように、本発明によれば、デスティネーションアドレス、ソースアドレスを別々のレジスタに書き込む構成にしたので、プログラムメモリのビット幅を増加することなく、アドレスマップを拡張することができ、その結果、端子数を増加することのない安価な命令実行装置を提供できる効果がある。
【図面の簡単な説明】
【図１】本発明の実施例を示す命令実行装置のブロック図である。
【図２】図１における命令フォーマットと第１および第２アドレスマップの模式図である。
【図３】従来の命令実行装置のブロック図である。
【図４】図３におけるプログラムデータの命令フォーマットとアドレスマップの模式図であ
【図５】拡張後の命令フォーマットと拡張後のアドレスマップの模式図であって、デスティネーションアドレス、ソースアドレス及び命令のビット幅がそれぞれ８ビットで２５６番地のアドレス空間を持つ場合の例を示したものである。
【符号の説明】
１０１  命令実行装置
１０２  プログラムメモリ
１０３  命令デコーダ
１０４  第１レジスタ
１０５  第２レジスタ
１０６  ソースデータ選択部
１０７  演算部
１０８  ライト許可信号選択部
１２０〜１２２  レジスタ間転送命令判断部
２０１  命令フォーマット
２０２  第１アドレスマップ
２０３  第２アドレスマップ
【図１】
0003541936.tif 000002
【図２】
0003541936.tif 000003
【図３】
0003541936.tif 000004
【図４】
0003541936.tif 000005
【図５】
0003541936.tif 000006