(57)【要約】【課題】マイクロプロセッサ装置において、プロセッサの内部におくサブ命令メモリの容量を削減しつつ、外部とのデータ転送負荷も抑える。【解決手段】命令コードを格納するメイン命令メモリ部と、命令コードの一部を格納するサブ命令メモリ部と、サブ命令メモリ部から命令コードを読み出して実行する命令コード処理部と、メイン命令メモリ部からサブ命令メモリ部に命令セットを読出す命令セット読出し部を設け、命令コード処理部が、サブ命令セットロード命令を検出したときに、命令セット読出し部は、サブ命令セットロード命令に含まれるメイン命令メモリ部の命令セットの読出し領域情報に従い、メイン命令メモリ部の命令セットを読出し、サブ命令セットロード命令に含まれるサブ命令メモリ部の命令セットの書込み領域情報に従い、読み出した命令セットをサブ命令メモリ部に書き込む。【選択図】図１
2012084073.tif 000002
【特許請求の範囲】
【請求項１】
命令コードを格納するメイン命令メモリ部と、
前記命令コードの一部を格納するサブ命令メモリ部と、
前記サブ命令メモリ部から、命令コードを読出し、読み出した命令コードに対応する処理を実行し、次に処理する命令コードのアドレスを算出し、算出したアドレスを前記サブ命令メモリ部に出力する命令コード処理部と、
前記メイン命令メモリ部の読出し領域に格納された一つ以上の命令コードで構成される命令セットを読出し、前記サブ命令メモリの書込み領域に、命令セットを格納する命令セット読出し部とを備え、
前記命令コード処理部が、前記サブ命令メモリ部に格納されたサブ命令セットロード命令を検出したときに、前記命令セット読出し部は、前記サブ命令セットロード命令に含まれる前記メイン命令メモリ部の命令セットの読出し領域情報に従い、前記メイン命令メモリ部の命令セットを読出し、前記サブ命令セットロード命令に含まれる前記サブ命令メモリ部の命令セットの書込み領域情報に従い、前記読み出した命令セットを前記サブ命令メモリ部に書き込むことを特徴とするマイクロプロセッサ装置。
【請求項２】
前記サブ命令メモリ部の書込み領域が、Ｎ（Ｎは、１以上の整数）個の格納領域に分割されており、
前記サブ命令メモリ部の命令セットの書込み領域情報が、前記書込み領域の位置を示す書込み領域番号であることを特徴とする請求項１記載のマイクロプロセッサ装置。
【請求項３】
前記メイン命令メモリ部の読出し領域が、Ｍ（Ｍは、１以上の整数）個の格納領域に分割されており、
前記メイン命令メモリ部の命令セットの読出し領域情報が、前記読出し領域の位置を示す読出し領域番号であることを特徴とする請求項１記載のマイクロプロセッサ装置。
【請求項４】
さらに、命令コード選択部を有し、
前記メイン命令メモリ部に格納された命令コードには、各々付加情報が付加されており、
前記サブ命令セットロード命令には、プログラム要否情報が付加されており、
前記命令コード処理部が、前記サブ命令セットロード命令を検出したときに、前記命令コード選択部は、そのサブ命令セットロード命令に付加されたプログラム要否情報と前記命令コードに各々付加された付加情報との比較結果に基づき、前記サブ命令メモリに格納する命令コードを決定することを特徴とする請求項１記載のマイクロプロセッサ装置。
【請求項５】
前記命令コード選択部は、前記命令コードを前記サブ命令メモリに格納するときに、前記命令コードに各々付加された付加情報を削除することを特徴とする請求項４記載のマイクロプロセッサ装置。
【請求項６】
前記メイン命令メモリ部が、圧縮された命令コードを格納し、
前記メイン命令メモリ部の読出し領域から読み出した圧縮された命令コードを伸張する伸張部を、さらに有することを特徴とする請求項１記載のマイクロプロセッサ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロプロセッサ装置に係り、画像処理などに用いられるプロセッサで、プロセッサ内のメモリ容量を小さくするのに好適なマイクロプロセッサ装置に関する。
【背景技術】
【０００２】
近年、様々な機器に、マイクロプロセッサが搭載されてきているが、処理の高度化、複雑化、多機能化に伴ない、命令コードを格納するメモリ容量の増大と、それに伴なうコスト増大が問題となってきている。
【０００３】
メモリの階層とメモリのアクセススピードの関係は、トレードオフの関係にあり、命令を実行するプロセッサ内に実装されるメモリは、メモリ容量は小さいがメモリのアクセススピードは速く、逆に、プロセッサの外部に実装されるメモリは、メモリのアクセススピードは遅いものの、メモリ容量は大きく取れる。
【０００４】
そのため、プロセッサのアーキテクチャの設計者は、命令を実行するメモリ（プログラムメモリ）を格納するためのメモリ設計におこなうときに、この両者のバランスをとり、メモリ容量を抑えつつ、実効的に命令をできるだけ速い速度で実行することに関心を持つ。
【０００５】
特許文献１には、プログラムメモリには、圧縮ソフトウェアによって圧縮された命令コードを格納しておき、命令の実行時には、それを命令コード変換装置によって伸張し、ＣＰＵは、伸張された命令コードを実行する技術が開示されている。
【０００６】
また、特許文献２には、命令コードの伸張処理に係る時間を短縮するために、伸張回路と演算部との間に小容量の記憶手段としての命令サブメモリを配して、命令メモリから順次出力された命令コードをあらかじめ伸張回路により伸張して命令サブメモリに格納しておき、演算部は、命令コードを命令サブメモリから読み出して実行する技術が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００１-２２２４２６号公報
【特許文献２】特開２００２-３２３９７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述の特許文献１に記載の技術では、プログラムを圧縮することにより、プログラムメモリの容量削減を図っているが、ＣＰＵが実行する全てのプログラムがプログラムメモリに格納されることとなり、プログラムメモリ容量の大幅な削減は難しい。
【０００９】
また、上述の特許文献２に記載の技術では、プログラムカウンタをインクリメントすることにより、命令メモリ１１や命令サブメモリ１３の読出しアドレスを更新している。これが通常のシーケンシャルの実行ならよいが、命令コードに分岐命令が発生した場合、その時点、分岐先アドレスの命令コードを命令メモリから読み出す必要があり、処理遅延が発生する。命令メモリとしてアクセス速度の遅い外部ＳＤＲＡＭ等を用いる場合、大幅な処理遅延が発生するおそれがある。
【００１０】
そのために、特許文献２では、「一括圧縮命令コード」という概念を導入して、伸張回路は、一括圧縮命令コードを一括して伸張し、伸張された複数の命令コードに含まれる分岐先命令コードは、命令サブメモリの分岐先命令格納領域に格納するとしている（段落番号００５０）。
【００１１】
このとき、「一括圧縮命令コード」中に、複数の分岐命令が含まれる場合、全ての分岐命令に対する分岐先アドレスを含む「一括圧縮命令コード」を「命令サブメモリ」に格納する必要があり、命令サブメモリの容量が増加するという問題点がある。
【００１２】
さらに、上記技術では、命令メモリに格納されたプログラムをそのまま、命令サブメモリに伸張して格納するため、処理を実現する複数の命令コードのセットを、別の命令コードのセットの中で、複数、別の箇所で読み出す場合、その都度持ってこなくてはならないあるため、命令メモリから命令サブメモリへのデータ転送が逐次発生するという問題点がある。したがって、命令メモリをプロセッサ外付けのＳＤＲＡＭで実現する場合、ＳＤＲＡＭのバス負荷は大きなものになるという恐れがある。
【００１３】
本発明は、上記問題点を解決するためになされたもので、その目的は、プロセッサの外部に全ての命令コードを格納するメイン命令メモリを設けて、プロセッサの内部に一部命令コードを格納するサブ命令メモリを設けるようにし、プログラムの内容に応じて、メイン命令メモリからサブ命令メモリへのデータのロードを制御するようにして、プロセッサの内部におくサブ命令メモリの容量を削減しつつ、外部とのデータ転送負荷も抑えることのできるマイクロプロセッサ装置を提供することにある。
【課題を解決するための手段】
【００１４】
本発明のマイクロプロセッサ装置では、命令コードを格納するメイン命令メモリ部と、命令コードの一部を格納するサブ命令メモリ部と、サブ命令メモリ部から、命令コードを読出し、読み出した命令コードに対応する処理を実行し、次に処理する命令コードのアドレスを算出し、算出したアドレスを前記サブ命令メモリ部に出力する命令コード処理部と、メイン命令メモリ部の読出し領域に格納された一つ以上の命令コードで構成される命令セットを読出し、サブ命令メモリの書込み領域に、命令セットを格納する命令セット読出し部とを備えるようにする。
【００１５】
そして、命令コード処理部が、サブ命令メモリ部に格納されたサブ命令セットロード命令を検出したときに、命令セット読出し部は、サブ命令セットロード命令に含まれるメイン命令メモリ部の命令セットの読出し領域情報に従い、メイン命令メモリ部の命令セットを読出し、サブ命令セットロード命令に含まれるサブ命令メモリ部の命令セットの書込み領域情報に従い、読み出した命令セットをサブ命令メモリ部に書き込むようにする。
【００１６】
この構成により、サブ命令メモリをプロセッサ内に実装したマイクロプロセッサ装置において、サブ命令セットロード命令に、読出し領域情報と、書込み領域情報を格納することにより、サブ命令メモリの容量を削減することができ、メイン命令メモリとサブ命令メモリ間のデータ転送負荷も削減することができる。
【発明の効果】
【００１７】
本発明によれば、プロセッサの外部に全ての命令コードを格納するメイン命令メモリを設けて、プロセッサの内部に一部命令コードを格納するサブ命令メモリを設けるようにし、プログラムの内容に応じて、メイン命令メモリからサブ命令メモリへのデータのロードを制御するようにして、プロセッサの内部におくサブ命令メモリの容量を削減しつつ、外部とのデータ転送負荷も抑えることのできるマイクロプロセッサ装置を提供することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の第一の実施形態に係るマイクロプロセッサ装置の構成図である。
【図２】命令セットと命令コードの関係を示す図である。
【図３】本発明の第一の実施形態に係るサブ命令セットロード命令の形式の一例を示す図である。
【図４】本発明の第一の実施形態に係るサブ命令セットロード命令を含んだプログラム実行時の様子を示す図である。
【図５】本発明の第二の実施形態に係るメイン命令メモリ部とサブ命令メモリ部の命令セットの一例を示す図である。
【図６】本発明の第二の実施形態に係るサブ命令セットロード命令の形式の一例を示す図である。
【図７】本発明の第三の実施形態に係るメイン命令メモリ部とサブ命令メモリ部の命令セットの一例を示す図である。
【図８】本発明の第三の実施形態に係るサブ命令セットロード命令の形式の一例を示す図である。
【図９】本発明の第四の実施形態に係るマイクロプロセッサ装置の構成図である。
【図１０】本発明の第四の実施形態に係る命令コードの形式の一例を示す図である。
【図１１】本発明の第四の実施形態に係るサブ命令セットロード命令の形式の一例を示す図である。
【図１２】付加情報つきの命令コードからなる命令セットが、メイン命令メモリ部からサブ命令メモリ部にロードされるときの動作を説明する図である。
【図１３】本発明の第五の実施形態に係るマイクロプロセッサ装置の構成図である。
【図１４】圧縮された命令コードからなる命令セットが、メイン命令メモリ部からサブ命令メモリ部にロードされるときの動作を説明する図である。
【発明を実施するための形態】
【００１９】
以下、本発明に係る各実施形態を、図１ないし図１４を用いて説明する。
【００２０】
〔実施形態１〕
以下、本発明に係る第一の実施形態を、図１ないし図４を用いて説明する。
先ず、図１を用いて本発明の第一の実施形態に係るマイクロプロセッサ装置の構成を説明する。
図１は、本発明の第一の実施形態に係るマイクロプロセッサ装置の構成図である。
【００２１】
本実施形態のマイクロプロセッサ装置は、図１に示されるように、メイン命令メモリ部１０と、命令セット読出し部１１と、命令コード処理部１２と、サブ命令メモリ部１３とを備える。
【００２２】
メイン命令メモリ部１０は、マイクロプロセッサ装置が処理するプログラムを構成する命令コードを格納しており、命令セット読出し部１１からのメモリ読出し制御信号１０１に応じて、一つ以上の命令コードを含む指定された命令セットを出力する。メイン命令メモリ部１０は、ハードウェアとしては、例えば、プロセッサに外付けされるＳＤＲＡＭにより実装される。
【００２３】
命令セットとは、マイクロプロセッサ装置が実行される単位である命令コードを複数集めた集合体である。命令セットの指定の一例としては、命令セットが格納されているメイン命令メモリ部のメモリアドレスと命令セット長により、メイン命令メモリ部内の命令セット格納領域を指定する方法がある。
【００２４】
命令セット読出し部１１は、命令コード処理部１２からのサブ命令セットロード命令に応じて、メイン命令メモリ部１０にメモリ読出し制御信号１０１を出力し、メイン命令メモリ部１０から、指定された命令セット１０３を読み出す。また、サブ命令メモリ部１３に対してメモリ書込み制御信号１０２を出力し、メイン命令メモリ部１０から読み出した取り込んだ命令セット１０３を、命令セット１０４として、サブ命令メモリ部１３の指定された格納領域に格納する。
【００２５】
サブ命令メモリ部１３は、メイン命令メモリ部１０から命令コード処理部１２で実行するためにロードするためのメモリであり、ハードウェアとしては、例えば、プロセッサの内部に搭載される高速のメモリである。
【００２６】
なお、サブ命令メモリ１３の格納領域指定の一例として、命令セットを格納するメイン命令メモリ部１３のメモリアドレスで、サブ命令メモリ部１３内の命令セット格納領域を指定する方法がある。
【００２７】
命令コード処理部１２は、サブ命令メモリ部１３から、命令コード１０６を読出し、その命令コード１０６に対応する処理を実行し、次に処理する命令コードのアドレス１０５を算出し、サブ命令メモリ部１３に出力する。また、読出した命令コード１０６がサブ命令セットロード命令を示す命令であった場合、命令セット読出し部１１に対してサブ命令セットロード命令１００を出力する。サブ命令セットロード命令の詳細については、後に説明する。このサブ命令セットロード命令１００は、命令コード１０６の一つとして作成されていてもよいし、命令コード１０６を解読して、それを利用して命令コード処理部１２で特別の指示を与えるようにしてもよい。また、サブ命令メモリ部１３から、命令コード処理部１２を介さず、直接命令コード１０６を命令セット読出し部１１に出力し、命令セット読出し部１１で命令コードをデコードすることでサブ命令セットロード命令１００を検出する構成としてもよい。
【００２８】
次に、図２および図３を用いて本発明の第一の実施形態に係るサブ命令セットロード命令と命令セットについて説明する。
図２は、命令セットと命令コードの関係を示す図である。
図３は、本発明の第一の実施形態に係るサブ命令セットロード命令の形式の一例を示す図である。
【００２９】
図２は、メイン命令メモリ部１０に格納された命令セットと命令コードの関係を示したものである。命令セットは、命令コードを複数集めた集合体として定義される。メイン命令メモリ部１０には、Ｍ個の命令セット（命令セット１、命令セット２、…、命令セットＭ）が格納されている。この内の命令セット１は、Ｎ個の命令コード（命令コード１、命令コード２、…、命令コードＮ）で構成されている。ここで、Ｍ、Ｎは、１以上の整数である。各命令セットを構成する命令コード数は異なっていてもよい。
【００３０】
サブ命令セットロード命令１００は、メイン命令メモリ部１０に格納されている命令セットをサブ命令メモリ部１３にロードするための命令である。
【００３１】
サブ命令セットロード命令１００は、図２に示されるように、命令タイプと、メイン命令メモリ部読出しアドレスと、メイン命令メモリ部読出しデータ長と、サブ命令メモリ部格納アドレスで構成される。
【００３２】
命令タイプは、命令の種類を示すものであり、サブ命令セットロード命令１００に割り当てられている固有のコードが指定される。メイン命令メモリ部読出しアドレスは、メイン命令メモリ部１０から読み出す命令セット１０３の格納領域の先頭アドレスを示すものである。メイン命令メモリ部読出しデータ長は、メイン命令メモリ部内の命令セットの格納領域を示すもう一つの情報であり、メイン命令メモリ部１０に格納されている命令セットのデータの領域の大きさを示している。サブ命令メモリ格納アドレスは、サブ命令メモリ部１３における命令セットの格納領域の先頭アドレスを示すものである。
【００３３】
次に、図４を用いて本発明の第一の実施形態に係るサブ命令セットロード命令を含んだプログラム実行時の様子について説明する。
図４は、本発明の第一の実施形態に係るサブ命令セットロード命令を含んだプログラム実行時の様子を示す図である。
【００３４】
この図４に示されるプログラム例は、四つの命令セット（命令セット１、命令セット６、命令セット７、命令セット８）で構成され、命令セット１から順次、メイン命令メモリ部１０から読み出され、サブ命令メモリ部１３の所定領域に格納される。サブ命令メモリ部１３に格納された命令コードは、命令コード００００から順次読み出され、命令コード処理部１２でプログラム処理される。ここで、命令コードは、説明のため通し番号を各々に付与している。
【００３５】
ここで、命令コード０５００は、命令セット６に対するサブ命令セットロード命令である。命令コード０５０１は、命令セット７に対するサブ命令セットロード命令である。命令コード７１００は、命令セット８に対するサブ命令セットロード命令である。命令コード２５００は、実行するサブ命令メモリ読出しアドレスを、命令セット６の先頭にある命令コード６０００が格納されているアドレスに飛ばすジャンプ命令である。命令コード７９９９は、実行するサブ命令メモリ読出しアドレスを、命令セット８の先頭にある命令コード８０００が格納されているアドレスに飛ばすジャンプ命令である。図４では、命令セット１の中から、命令コード０５００により命令セット６をロードし、命令コード０５０１により命令セット７をロードし、命令セット７の中から命令コード７１００により命令セット８をロードしているプログラムを例に挙げて説明する。
【００３６】
本動作例では、既にサブ命令メモリ部１３に命令セット１が格納４１０されており、命令コード処理部１２は、命令コード００００から順次、プログラム処理を実行するものとする。
【００３７】
サブ命令メモリ部１３から命令コード０５００が読み出されると、サブ命令セットロード命令１００が発行され、メイン命令メモリ部１０から命令セット６が読み出され、サブ命令メモリ部１３に格納４１１される。
【００３８】
サブ命令メモリ部１３から命令コード０５０１が読み出されると、サブ命令セットロード命令１００が発行され、メイン命令メモリ部１０から命令セット７が読み出され、サブ命令メモリ部１３に格納４１２される。なお、サブ命令メモリ部から命令コード０５０１が読み出された時点で、まだ、命令セット６がサブ命令メモリ部１３に格納されていない場合には、命令セット６がサブ命令メモリ部１３に格納された後に、命令セット７をサブ命令メモリ部１３に格納する。これを実現する方法の一例として、命令セット読出し部１１で１つ以上のサブ命令セットロード命令を保持し、入力された順にメイン命令メモリ部１０に対してメモリ読出し制御信号１０１を発行する方法がある。
【００３９】
サブ命令メモリ部１３から命令コード６９９９が読み出された後、すなわち、命令セット７の命令コードの処理中は、サブ命令メモリ１３に格納されている命令セット６は、不要となる。
【００４０】
サブ命令メモリ部１３から命令コード７１００が読み出されると、サブ命令セットロード命令１００が発行され、メイン命令メモリ部１０から命令セット８が読み出され、サブ命令メモリ部１３に格納４１３される。既に命令セット６の処理は完了しているので、サブ命令メモリ部の命令セット６格納領域に、命令セット８を格納する。命令セット８で上書きする命令セット６の領域は、一部であってもよいし、全領域であってもよい。
【００４１】
命令セット６が利用した領域が不要になっていることは、プログラム作成者（コンパイラのコード生成部か、アセンブラのコーダ）が意識している必要がある。このように本実施形態のサブ命令セットロード命令を含んだプログラム作成者は、サブ命令メモリ部がどの命令セットに使用されているかを意識してコーディングする必要がある。
【００４２】
以上のように、本実施形態におけるマイクロプロセッサ装置によれば、全ての命令コードを格納するメイン命令メモリと、一部命令コードを格納するサブ命令メモリと、命令コードに従い処理を実行する命令コード処理部とで構成し、サブ命令セットロード命令により、一部命令コードを差替えることにより、サブ命令メモリの容量を削減できる効果がある。
〔実施形態２〕
以下、本発明に係る第二の実施形態を、図５および図６を用いて説明する。
図５は、本発明の第二の実施形態に係るメイン命令メモリ部とサブ命令メモリ部の命令セットの一例を示す図である。
図６は、本発明の第二の実施形態に係るサブ命令セットロード命令の形式の一例を示す図である。
【００４３】
本実施形態では、第一の実施形態と同じようにサブ命令セットロード命令を含んだプログラムを実行させるマイクロプロセッサ装置に係るもので、サブ命令メモリ部１３における命令セット格納の仕方を変えたものである。
【００４４】
サブ命令メモリ部１３における命令セット格納領域は、図５に示されるように、それぞれ固定領域であってもよい。図５には、サブ命令メモリ部１３を、３つの命令セット格納領域、すなわちサブ命令メモリ格納領域１（サブ命令メモリ部格納領域番号＝１、サブ命令メモリ部格納アドレス＝Ａ１）、サブ命令メモリ格納領域２（サブ命令メモリ部格納領域番号＝２、サブ命令メモリ部格納アドレス＝Ａ２）、サブ命令メモリ格納領域３（サブ命令メモリ部格納領域番号＝３、サブ命令メモリ部格納アドレス＝Ａ３）で定義した場合の命令セットの格納様子が示されている。メイン命令メモリ部１０には、Ｍ（Ｍは、１以上の整数）個の命令セット（命令セット１、命令セット２、…、命令セットＭ）が格納されている。格納アドレスＡ１、Ａ２、Ａ３は、サブ命令メモリ格納領域１、サブ命令メモリ格納領域２、サブ命令メモリ格納領域３のそれぞれ先頭アドレスである。サブ命令メモリ部１３における命令セット格納領域を各々固定領域（長さＬｓ）としたときのサブ命令メモリ格納領域ｉの格納アドレスは、（ｉ−１）×Ｌｓで求めることができる。
【００４５】
本実施形態では、サブ命令セットロード命令の構成は、図６に示されるように、命令タイプと、メイン命令メモリ部読出しアドレスと、メイン命令メモリ部読出しデータ長と、サブ命令メモリ部格納領域番号となる。第一の実施形態の図３で示したサブ命令セットロード命令と比較すると、サブ命令メモリ部格納アドレスが、サブ命令メモリ部格納領域番号となることが異なっている。
【００４６】
以上のように、本実施形態におけるマイクロプロセッサ装置によれば、第一の実施形態と比較して、サブ命令メモリ部１３における命令コードの格納領域が、格納領域番号で指定されているためサブ命令セットロード命令の命令長を短くでき、命令コードの効率を高めることができる効果がある。
【００４７】
〔実施形態３〕
以下、本発明に係る第三の実施形態を、図７および図８を用いて説明する。
図７は、本発明の第三の実施形態に係るメイン命令メモリ部とサブ命令メモリ部の命令セットの一例を示す図である。
図８は、本発明の第三の実施形態に係るサブ命令セットロード命令の形式の一例を示す図である。
【００４８】
本実施形態では、第二の実施形態は、第一の実施形態と同じようなマイクロプロセッサ装置に係るもので、サブ命令メモリ部１３における命令セット格納の仕方を変えたものであったが、本実施形態では、メイン命令メモリ部１０における格納の仕方を変えたものである。
【００４９】
メイン命令メモリ部１３における命令セット格納領域は、図８に示されるように、全て同一サイズの固定領域であってもよい。図６には、メイン命令メモリ部１０を、Ｍ（Ｍは、１以上の整数）個の命令セット格納領域、すなわちメイン命令メモリ格納領域１（メイン命令メモリ部格納領域番号＝１、メイン命令メモリ部格納アドレス＝Ｂ１）、メイン命令メモリ格納領域２（メイン命令メモリ部格納領域番号＝２、メイン命令メモリ部格納アドレス＝Ｂ２）、…、メイン命令メモリ格納領域Ｍ（メイン命令メモリ部格納領域番号＝Ｍ、メイン命令メモリ部格納アドレス＝ＢＭ）で定義した場合の命令セット格納の一例が示されている。サブメイン命令メモリ部１２には、６個の命令セット（命令セット１、命令セット２、…、命令セット６）が格納されており、格納アドレスＡ１、Ａ２、…、Ａ６は、サブ命令メモリ格納領域１、サブ命令メモリ格納領域２、…、サブ命令メモリ格納領域６のそれぞれ先頭アドレスとする。
【００５０】
本実施形態では、サブ命令セットロード命令の構成は、図８に示されるように、命令タイプと、メイン命令メモリ部読出し領域番号と、サブ命令メモリ格納アドレスとなる。第一の実施形態の図３で示したサブ命令セットロード命令と比較すると、メイン命令メモリ部読出しアドレスと、メイン命令メモリ部読出しデータ長が、メイン命令メモリ読出し領域番号となることが異なっている。
【００５１】
メイン命令メモリ部１０における命令セット格納領域を各々固定領域（長さＬｍ）としたときのメイン命令メモリ格納領域ｉの格納アドレスは、（ｉ−１）×Ｌｍで求めることができる。
【００５２】
以上のように、本実施形態におけるマイクロプロセッサ装置によれば、第一の実施形態と比較して、メイン命令メモリ部１０における命令コードの格納領域が、格納領域番号で指定されているためサブ命令セットロード命令の命令長を短くでき、命令コードの効率を高めることができる効果がある。
【００５３】
〔実施形態４〕
以下、本発明に係る第四の実施形態を、図９ないし図１２を用いて説明する。
【００５４】
本実施形態は、第一の実施形態に係るマイクロプロセッサ装置で実行されるサブ命令セットロード命令に、ロードできる命令コードの種別を選択できる機能を付け加えたものである。
【００５５】
先ず、図９を用いて本発明の第四の実施形態に係るマイクロプロセッサ装置の構成を説明する。
図９は、本発明の第四の実施形態に係るマイクロプロセッサ装置の構成図である。
【００５６】
本実施形態のマイクロプロセッサ装置は、図９に示されるように、メイン命令メモリ部１０と、命令セット読出し部２１と、命令コード処理部１２と、サブ命令メモリ部１３と、命令コード選択部１４を備える。
【００５７】
メイン命令メモリ部１０と、命令コード処理部１２と、サブ命令メモリ部１３の機能と動作は、図１により説明した第一の実施形態と同様である。
【００５８】
本実施形態では、メイン命令メモリ部１０には、マイクロプロセッサ装置が処理するプログラムを構成する付加情報を付与した命令コードが格納される。
【００５９】
命令セット読出し部２１が、メイン命令メモリ部１０が読出す命令コードの各々には、後に詳述するように付加情報が付加されており、サブ命令セットロード命令には、プログラムロード要否情報（ＰＭＤ）が付加されている。命令セット読出し部２１は、サブ命令セットロード命令のプログラムロード要否情報（ＰＭＤ）を、命令コード選択部１４に出力する。
【００６０】
命令コード選択部１４は、メイン命令メモリ部１０から読み出された命令セットを構成する命令コードに含まれる付加情報と、サブ命令セットロード命令に付加されるプログラムロード要否情報（ＰＭＤ）とを比較して、各々の命令コードをサブ命令メモリ部１３に格納するか、破棄するかを決定し、その命令コードをサブ命令メモリ部１３に格納するときには、付加情報を除去した上でサブ命令メモリ部１３に格納する。
【００６１】
ここで、図１０および図１１を用いて本発明の第四の実施形態に係るマイクロプロセッサ装置が実行するプログラムの命令コードと、サブ命令セットロード命令について説明する。
【００６２】
図１０は、本発明の第四の実施形態に係る命令コードの形式の一例を示す図である。
【００６３】
図１１は、本発明の第四の実施形態に係るサブ命令セットロード命令の形式の一例を示す図である。
【００６４】
本実施形態に係る命令コードは、図１０に示されるように、命令コード本体の先頭に付加情報が付け加わった形式である。命令コード本体は、通常どおり命令タイプ、オペランドで構成される。
【００６５】
一方、本実施形態に係るサブ命令セットロード命令は、図１１に示されるように、プログラムロード要否情報（ＰＭＤ：Program MoDe）と、命令タイプと、メイン命令メモリ部読出しアドレスと、メイン命令メモリ部読出しデータ長と、サブ命令メモリ部格納アドレスで構成される。命令タイプと、メイン命令メモリ部読出しアドレスと、メイン命令メモリ部読出しデータ長と、サブ命令メモリ部格納アドレスについては、図３により説明した第一の実施形態のサブ命令セットロード命令と同様である。
【００６６】
プログラムロード要否情報（ＰＭＤ）は、メイン命令メモリに格納されている命令セットを読み出す際に、命令セットを構成する命令コードのうち、各々の命令コードに付加された付加情報に従い、どの命令コードをサブ命令メモリ部１３に格納するかを決定するための情報である。
【００６７】
命令コードの付加情報と、プログラムロード要否情報（ＰＭＤ）の関係は、以下の表１に示されるようにする。
【００６８】
【表１】
2012084073.tif 000003
【００６９】
すなわち、付加情報＝０の命令コードは、ＰＭＤ＝０のときのみサブ命令メモリ部１３に格納されるようにし、付加情報＝１の命令コードは、ＰＭＤ＝１のときのみサブ命令メモリ部１３に格納されるようにし、付加情報２の命令コードは、ＰＭＤの値の如何によらず、常に、サブ命令メモリ部１３に格納されるようにする。
【００７０】
なお、ＰＭＤと付加情報のとり得る値と、サブ命令セットロード命令の動作は、このような組み合わせによらず、例えば、ＰＭＤと付加情報のとり得る値を（０、１）、（０〜３）、あるいは、（０〜４以上の整数）と任意に定めることができる。
【００７１】
以下、図１２を用いて付加情報つきの命令コードからなる命令セットが、メイン命令メモリ部からサブ命令メモリ部にロードされるときの動作を説明する。
【００７２】
図１２は、付加情報つきの命令コードからなる命令セットが、メイン命令メモリ部からサブ命令メモリ部にロードされるときの動作を説明する図である。
【００７３】
本実施形態では、プログラムロード要否情報（ＰＭＤ）は、０または１または２の値をとる。命令セット５は、命令コード１から命令コード１０までの１０個の命令コードで構成される。これら命令コードには、付加情報が付加されている。命令コード１、２、９、１０におけるＰＭＤの値は０、命令コード３、４、７におけるＰＭＤの値は１、命令コード５、６、８におけるＰＭＤの値は２となっている。
【００７４】
ここで、サブ命令セットロード命令のＰＭＤが０の場合、メイン命令メモリ部１０から読み出された命令セット５は、命令コード選択部１４で、付加情報＝１が付加された命令コード（命令コード３，４，７）を除去し、さらに、付加情報＝０または２が付加された命令コード（命令コード１，２，５，６，８，９，１０）に付加されている付加情報部分を除去した命令コードを、サブ命令メモリ部１３に格納する。
【００７５】
以上のように、本実施形態におけるマイクロプロセッサ装置によれば、共通命令コードが多い複数の命令セットにおいて、非共通部分のみを選択的に、サブ命令メモリ部１３にロードすることができるので、メイン命令メモリ部の容量を削減でき、サブ命令セットロード命令の発行回数を減らすことができるという効果がある。
【００７６】
〔実施形態５〕
以下、本発明に係る第五の実施形態を、図１３および図１４を用いて説明する。
【００７７】
本実施形態は、第一の実施形態に係るマイクロプロセッサ装置で実行される命令セットが、メイン命令メモリ部に圧縮した状態で格納されており、サブ命令メモリ部に、ロードされるときに、圧縮した命令セットを伸張して格納するものである。
【００７８】
先ず、図１３を用いて本発明の第五の実施形態に係るマイクロプロセッサ装置の構成を説明する。
図１３は、本発明の第五の実施形態に係るマイクロプロセッサ装置の構成図である。
【００７９】
本実施形態のマイクロプロセッサ装置は、図１０に示されるように、メイン命令メモリ部１０と、命令セット読出し部２１と、命令コード処理部１２と、サブ命令メモリ部１３と、圧縮命令セット伸張部１５を備える。
【００８０】
メイン命令メモリ部１０と、命令コード処理部１２と、サブ命令メモリ部１３の機能と動作は、図１により説明した第一の実施形態と同様である。
【００８１】
本実施形態のマイクロプロセッサ装置は、第一の実施形態のマイクロプロセッサ装置に、メイン命令メモリ部１０の圧縮した状態で格納されている命令セットを伸張する圧縮命令セット伸張部１５が加わっている。
【００８２】
本実施形態のマイクロプロセッサ装置においては、メイン命令メモリ部１０には、マイクロプロセッサ装置が処理するプログラムを構成する命令コードが圧縮して格納されている。命令コード単位で圧縮してもよいし、命令セット単位で圧縮してもよい。また、命令セットを構成する一部の複数命令コードで圧縮してもよい。また、命令セットの一部を圧縮しない状態で格納してもよい。また、これらの圧縮単位を組み合わせてもよい。
【００８３】
サブ命令セットロード命令が実行されると、圧縮命令セット伸張部１５は、メイン命令メモリ部１０から読み出した命令セットを伸張し、伸張後の命令セット３００を出力して、命令セット読出し部１１に渡す。命令セット読出し部１１は、その伸張した命令セットを、サブ命令メモリ部に格納する。
【００８４】
以下、図１４を用いて圧縮された命令コードからなる命令セットが、メイン命令メモリ部からサブ命令メモリ部にロードされるときの動作を説明する。
図１４は、圧縮された命令コードからなる命令セットが、メイン命令メモリ部からサブ命令メモリ部にロードされるときの動作を説明する図である。
【００８５】
メイン命令メモリ部１０には、図１３に示されたように、圧縮された命令コードからなるＭ（Ｍは、１以上の整数）個の命令セット（圧縮命令セット）（圧縮命令セット１、圧縮命令セット２、…、圧縮命令セットＭ）が格納されている。
【００８６】
この内で、圧縮命令セット伸張部１５により、例えば、圧縮命令セット１、圧縮命令セット２、圧縮命令セット３が、伸張され、サブ命令メモリ１３に格納される。
【００８７】
以上のように、本実施形態におけるマイクロプロセッサ装置によれば、命令コードまたは命令セットを圧縮することにより、メイン命令メモリ部の格納領域を削減できると共に、メイン命令メモリ部からの出力データ量を削減できる効果がある。また、メイン命令メモリ部の格納領域として、外部メモリを使用する場合、外部メモリのメモリバンド幅を削減できるという効果がある。
【符号の説明】
【００８８】
１０…メイン命令メモリ部
１１…命令セット読出し部
１２…命令コード処理部
１３…サブ命令メモリ部
１００…サブ命令セットロード命令
１０１…メモリ読出し制御信号
１０２…メモリ書込み制御信号
１０３…命令セット
１０４…命令セット
１０５…アドレス情報
１０６…命令コード。
【図１】
2012084073.tif 000004
【図２】
2012084073.tif 000005
【図３】
2012084073.tif 000006
【図４】
2012084073.tif 000007
【図５】
2012084073.tif 000008
【図６】
2012084073.tif 000009
【図７】
2012084073.tif 000010
【図８】
2012084073.tif 000011
【図９】
2012084073.tif 000012
【図１０】
2012084073.tif 000013
【図１１】
2012084073.tif 000014
【図１２】
2012084073.tif 000015
【図１３】
2012084073.tif 000016
【図１４】
2012084073.tif 000017