(57)【要約】【課題】新たに命令追加やプログラム追加を行うことなくマイクロコンピュータ内部の動作状態制御を新規拡張する。【解決手段】データバス上のデータと絶対番地への分岐命令の命令コードとの一致比較により分岐命令コードを判別する分岐命令コード判別部１２１、データバス上のデータを絶対番地への分岐命令のアドレス長分だけ取り込む分岐先アドレス格納部１２２、データバス上のデータを取り込む情報データ格納部１２３、アドレスバス上のデータと分岐先アドレス格納部に格納されたデータとの一致比較を行う分岐先アドレス比較部１２４、情報データ格納部に格納されたデータを状態制御情報データと判定する情報データ判定部１２５、状態制御情報データを用いてマイクロコンピュータ内部の状態制御を行う内部状態制御回路１３０とを備える。【選択図】  図１
2004199186.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと絶対番地への分岐命令およびこれに続く状態制御情報データを記述したプログラムを格納するメモリとをデータバスおよびアドレスバスで接続したマイクロコンピュータであって、
前記データバス上のデータと前記絶対番地への分岐命令の命令コードとの一致比較により分岐命令コードを判別する分岐命令コード判別部と、
前記一致比較に基づいて前記データバス上のデータを前記絶対番地への分岐命令のアドレス長分だけ取り込む分岐先アドレス格納部と、
前記絶対番地命令のアドレス長分のデータ取り込みに続けて、前記データバス上のデータを取り込む情報データ格納部と、
前記分岐命令コードの判別後、一定タイミング以内に前記アドレスバス上のデータと前記分岐先アドレス格納部に格納されたデータとの一致比較を行う分岐先アドレス比較部と、
前記分岐先アドレス比較部の一致比較に基づいて前記情報データ格納部に格納されたデータを前記状態制御情報データと判定する情報データ判定部と、
前記状態制御情報データを用いてマイクロコンピュータ内部の状態制御を行う内部状態制御部と、
を備えるマイクロコンピュータ。
【請求項２】
ＣＰＵと絶対番地への分岐命令およびこれに続く状態制御情報データを記述したプログラムを格納するメモリとをデータバスおよびアドレスバスで接続したマイクロコンピュータの内部状態を前記状態制御情報データを用いて制御するために前記分岐命令を判定する分岐命令判定装置であって、
前記データバス上のデータと前記絶対番地への分岐命令の命令コードとの一致比較により分岐命令コードを判別する分岐命令コード判別部と、
前記一致比較に基づいて前記データバス上のデータを前記絶対番地への分岐命令のアドレス長分だけ取り込む分岐先アドレス格納部と、
前記絶対番地命令のアドレス長分のデータ取り込みに続けて、前記データバス上のデータを取り込む情報データ格納部と、
前記分岐命令コードの判別後、一定タイミング以内に前記アドレスバス上のデータと前記分岐先アドレス格納部に格納されたデータとの一致比較を行う分岐先アドレス比較部と、
前記分岐先アドレス比較部の一致比較に基づいて前記情報データ格納部に格納されたデータを前記状態制御情報データと判定する情報データ判定部と、
を備える分岐命令判定装置。
【請求項３】
請求項１記載のマイクロコンピュータの内部状態を制御する方法において、サブプログラムの終了命令の直前に前記絶対番地への分岐命令およびこれに続く前記状態制御情報データが記述され、前記絶対番地への分岐命令の分岐先アドレスを前記サブプログラムの終了命令のアドレスとするプログラムを実行し、前記分岐命令を判定し、前記分岐命令に続く前記状態制御情報データを用いてマイクロコンピュータ内部の制御を行うマイクロコンピュータの内部状態制御方法。
【請求項４】
請求項１記載のマイクロコンピュータの内部状態を制御する方法において、サブプログラムの開始命令の直前に前記絶対番地への分岐命令およびこれに続く前記状態制御情報データが記述され、前記絶対番地への分岐命令の分岐先アドレスを前記サブプログラムの開始命令のアドレスとするプログラムを実行し、前記分岐命令を判定し、前記分岐命令に続く前記状態制御情報データを用いてマイクロコンピュータ内部の制御を行うマイクロコンピュータの内部状態制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロコンピュータ内部の動作状態の制御技術に関し、特に、マイクロコンピュータ内部の動作状態制御を新規拡張することができるマイクロコンピュータおよびその動作状態制御方法に関する。
【０００２】
【従来の技術】
近年、携帯電話などに代表される移動体通信機器の急激な需要の伸びに呼応して、移動体通信用ＬＳＩ、特にマイクロコンピュータの需要が大きく伸びている。移動体通信用途のマイクロコンピュータのプログラム製作においては、プログラムの実行時間の管理は、無線性能、音声通話等に直接影響を与えることから厳密に行われる。
【０００３】
これらのプログラム開発段階では、従来、内部の動作状態を解析するためのプログラム追加が行われているが、それによりプログラムの実行時間に変化が生じ、その影響がシステム全体のプログラム動作に影響があるかどうかの検討も併せて必要となるため、プログラム開発の効率を落とすという問題があった。
【０００４】
この問題を技術的に解決することができるマイクロコンピュータとして、マイクロコンピュータの内部状態を観測するために、分岐命令実行時にＣＰＵの命令キューに取り込まれながら使用されずに捨てられるデータを利用することで、プログラムの追加を行うことなく内部状態を観測することを可能にしたものがある（特許文献１参照）。
【０００５】
【特許文献１】
特開２００１−２６５７５１号公報
【０００６】
【発明が解決しようとする課題】
以上説明したように、従来のマイクロコンピュータを使用する場合は、内部動作の状態解析の制御を行うためには新規にプログラム追加が必要であり、それが全体のプログラム実行時間に大きな影響を与える。特に携帯無線機器用途のマイクロコンピュータでは、全体のプログラム実行時間が変化するとシステムの最適化の見直しが必要になるため、安易にはプログラム追加を行うことができないという問題がある。
【０００７】
また、内部動作を制御するためのＣＰＵ命令の追加を行うことも考えられるが、それにはＣＰＵ内部の修正を行うか、あるいはＣＰＵを設計する段階で将来の命令拡張を考慮して必要なインターフェースを設けておく必要がある。しかし、それぞれの方法はＣＰＵ内部の修正やＣＰＵ内部の動作を考慮した新規回路設計が必要となるものであり、実現は一般に非常に困難である。
【０００８】
また、特許文献１に記載された技術によれば、プログラムを変えずに内部状態を変化させることができるが、これを実現する回路構成が複雑であるため、容易に実施することができないという問題がある。
【０００９】
本発明は、上記従来の問題点を解決するもので、マイクロコンピュータ内部の動作状態制御を行うために新たに命令追加やプログラム追加を行うことなくマイクロコンピュータ内部の動作状態制御を新規拡張することができるマイクロコンピュータおよびその内部状態制御方法を提供することを目的とする。
【００１０】
【発明が解決するための手段】
本発明の請求項１に係る発明は、ＣＰＵと絶対番地への分岐命令およびこれに続く状態制御情報データを記述したプログラムを格納するメモリとをデータバスおよびアドレスバスで接続したマイクロコンピュータであって、前記データバス上のデータと前記絶対番地への分岐命令の命令コードとの一致比較により分岐命令コードを判別する分岐命令コード判別部と、前記一致比較に基づいて前記データバス上のデータを前記絶対番地への分岐命令のアドレス長分だけ取り込む分岐先アドレス格納部と、前記絶対番地命令のアドレス長分のデータ取り込みに続けて、前記データバス上のデータを取り込む情報データ格納部と、前記分岐命令コードの判別後、一定タイミング以内に前記アドレスバス上のデータと前記分岐先アドレス格納部に格納されたデータとの一致比較を行う分岐先アドレス比較部と、前記分岐先アドレス比較部の一致比較に基づいて前記情報データ格納部に格納されたデータを前記状態制御情報データと判定する情報データ判定部と、前記状態制御情報データを用いてマイクロコンピュータ内部の状態制御を行う内部状態制御部とを備える。
【００１１】
上記構成によれば、ＣＰＵに内蔵されるような複雑な命令識別回路を用いずに、簡単な回路構成によりプログラム中に記述された絶対番地への分岐命令を識別し、これに続けて記述された状態制御情報データを取り出し、この状態制御情報データを用いてマイクロコンピュータ内部の制御を行うことができるため、あたかもマイクロコンピュータ内の動作制御を行う新たな命令を追加したかのように新規機能拡張を実現することができる。
【００１２】
請求項３に係る発明は、請求項１記載のマイクロコンピュータの内部状態を制御する方法において、サブプログラムの終了命令の直前に前記絶対番地への分岐命令およびこれに続く前記状態制御情報データが記述され、前記絶対番地への分岐命令の分岐先アドレスを前記サブプログラムの終了命令のアドレスとするプログラムを実行し、前記分岐命令を判定し、前記分岐命令に続く前記状態制御情報データを用いてマイクロコンピュータ内部の制御を行う。
【００１３】
上記構成によれば、サブプログラム実行の終了直前に絶対番地への分岐命令と状態制御情報データの命令構成を配置することで、サブプログラム終了時にマイクロコンピュータ内部の制御を行うことができ、例えば、あるプログラム処理が完了したときのマイクロコンピュータの内部状態の観測に使うことができる。
【００１４】
請求項４に係る発明は、請求項１記載のマイクロコンピュータの内部状態を制御する方法において、サブプログラムの開始命令の直前に前記絶対番地への分岐命令およびこれに続く前記状態制御情報データが記述され、前記絶対番地への分岐命令の分岐先アドレスを前記サブプログラムの開始命令のアドレスとするプログラムを実行し、前記分岐命令を判定し、前記分岐命令に続く前記状態制御情報データを用いてマイクロコンピュータ内部の制御を行う。
【００１５】
上記構成によれば、サブプログラム実行の開始直前に絶対番地への分岐命令と状態制御情報データの命令構成を配置することで、サブプログラム開始時にマイクロコンピュータ内部の制御を行うことができ、例えば、あるプログラム処理の動作確認のために初期値変更を行うようなマイクロコンピュータの内部状態の変更に使うことができる。
【００１６】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照しながら説明する。
図１は本発明の一実施の形態に係るマイクロコンピュータの構成を示すブロック図である。図１において、１００はマイクロコンピュータの主制御を行うＣＰＵ、１１０はマイクロコンピュータが実行するプログラムを格納するプログラム格納メモリ、１２０は分岐命令判別部、１３０は命令分岐判定部１２０の出力をもとにマイクロコンピュータ内部の動作状態を変更する内部状態制御回路である。
【００１７】
また、１０１はＣＰＵ１００を動作させているシステムクロック、１０２はＣＰＵ１００とプログラム格納メモリ１１０がデータのやりとりをするデータバス、１０３はＣＰＵ１００がプログラム格納メモリ１１０にアドレスを伝達するアドレスバス、１０４はＣＰＵ１００がプログラム格納メモリ１１０とのデータの読み書きを制御するリード・ライト制御信号である。
【００１８】
分岐命令判別部１２０は、データバス１０２から取り込んだデータが絶対番地への分岐命令であるかを判別する分岐命令コード判別部１２１、分岐命令中の分岐先アドレスと考えられるデータ列を一時記憶する分岐先アドレス格納部１２２、分岐命令に伴う情報データ列と考えられるデータを一時記憶する情報データ格納部１２３、分岐先アドレス格納部１２２に格納されたデータをアドレスバス１０３のアドレスデータと比較する分岐先アドレス比較部１２４、分岐先アドレス比較部１２４の比較結果により情報データ格納部１２３に保持されたデータが絶対番地への分岐命令後に配置されたデータであるかを判定する情報データ判定部１２５を備える。
【００１９】
以上のように構成された本実施の形態のマイクロコンピュータの動作を説明する。ＣＰＵ１００は、データバス１０２、アドレスバス１０３、リード・ライト制御信号１０４を介してプログラム格納メモリ１１０からデータを読み出し、このデータを命令コード、アドレス、通常データにそれぞれ識別し、これをプログラムとして実行する。
【００２０】
このとき、ＣＰＵ１００内部では、命令バッファキューのバッファ空き状態やプログラム実行状態等、内部状態に密接に関連して読み出しデータが処理され、それぞれのデータの識別が行われる。ＣＰＵ１００の外部でこれらのデータを識別するために、ＣＰＵ１００の内部と同じ複雑な回路を追加することは非常に困難で実現性が低い。
【００２１】
そのため、本発明においては、マイクロコンピュータ内部の動作状態の制御を行うために用いる命令を絶対アドレス番地への分岐命令（ジャンプ命令）に特定し、これを分岐命令判別部１２０で識別する。マイクロコンピュータで実行されるプログラムにおいては、絶対番地への分岐命令の後に任意の情報データを配置することにより、マイクロコンピュータ内部の動作状態の制御を行うことを可能にする。
【００２２】
図２は本実施の形態に係るマイクロコンピュータのプログラム構成方法を示すメモリマップ図である。図２（ａ）は絶対番地への分岐命令のメモリ空間における一般的な配置であり、図２（ｂ）は本実施の形態による絶対番地への分岐命令のメモリ空間における配置である。
【００２３】
図２（ａ）においては、絶対番地への分岐命令の命令コードが配置され、次の番地以降に分岐先アドレスである絶対番地を示すデータが格納される。格納されるデータ長およびデータ配置の順番は絶対番地への分岐命令の種類によって決まる。ここでは、分岐先アドレスが上位と下位の２ワードに分けられ、下位データが番地の若い方に、上位データが番地の大きい方に配置されるものとする。分岐先アドレスの後には一般に次の命令コードが配置される。
【００２４】
本実施の形態に係る図２（ｂ）の配置においては、分岐先アドレスのデータ配置までは図２（ａ）と同じであるが、その後に任意のデータ列からなる情報データを配置する。図２の例ではデータ情報の幅は１ワードとしている。情報データのデータ列の後には次の命令コードのアドレス番地等が格納される。
【００２５】
この情報データが格納されているアドレスについては、プログラムの中で決してアクセスされることがないようにプログラム設計を行う。このような設計自体は、高級言語でプログラム開発を行う場合は、一般的に飛び先番地がラベルにより指定されるため、前記制約を最初に設計仕様に加味してプログラム設計を進めれば、特に困難なことではない。
【００２６】
分岐命令判別部１２０において、プログラム格納メモリ１１０からデータバス１０２上に読み出された個々のデータが命令コード、アドレス、通常データのいずれであるかを判別することは、個々のデータを観測するだけではできない。実際に、通常データはあらゆる値を取り得る。
【００２７】
そこで、分岐命令コード判定部１２１は絶対番地への分岐命令の命令コードと同じデータがデータバス１０２上に現れたときに、それが実際に捕捉したい命令コードであるかを問わず、まず起動する。すなわち、分岐命令コード判定部１２１はデータバス１０２上のデータと絶対番地への分岐命令の命令コードとの比較回路で構成され、この比較回路で一致が得られた場合に比較一致信号を出力する。
【００２８】
これが絶対番地への分岐命令であれば、命令コードの次にデータバス１０２上に載るデータは分岐先アドレスとなる。そのため、分岐命令コード判定部１２１から比較一致信号が出力されると、次のサイクルでデータバス１０２上に載るデータ列を分岐先アドレスと推測し、これを分岐先アドレス格納部１２２に一時記憶する。
【００２９】
このとき格納されるデータ列の長さは、絶対番地への分岐命令の種類によって可変させる。このデータ列の長さ情報は分岐命令コード判定部１２１からアドレスビット長情報として出力させる。これは、分岐命令コード判定部１２１内の比較元データを分岐命令の種類だけ準備することで容易に実現できる。
【００３０】
分岐先アドレス格納部１２２の回路構成例としては、分岐先アドレスが取り得る最大ビット長のレジスタを準備し、分岐命令コード判定部１２１から出力されるアドレスビット長情報を元に、使用しないビット値を０に固定することで実現できる。また、データバス１０２からデータを取り込むタイミングは、分岐命令コード判定部１２１からの比較一致信号を基準にして、その後に続く分岐先アドレスのアドレスビット長情報に従い、システムクロック１０１を用いて生成する。
【００３１】
分岐先アドレス格納部１２２へのデータ格納の完了後は、次のサイクルでデータバス１０２に載るデータ列を情報データと推測し、これを情報データ格納部１２３へ一時記憶する。このとき格納するデータ長については仕様設計時に決めておく。また、データバス１０２からデータを取り込むタイミングは、分岐アドレス格納部１２２へのデータ取り込みタイミングに続くタイミングで、システムクロック１０１を用いて生成する。
【００３２】
このような一連のデータ格納処理を分岐命令判別部１２０の回路で行うが、一時記憶されたデータが絶対番地への分岐命令の分岐先アドレスやそれに続く情報データであるかどうかは、この段階ではまだ分からない。
【００３３】
しかし、一時記憶されたデータが絶対番地への分岐先アドレスとそれに続く情報データであるならば、ＣＰＵ１００によるプログラム実行が進むと、プログラムの実行状態やＣＰＵ１００内部の命令キューバッファの空き状態により数サイクルの幅はあるが、必ず絶対番地への分岐処理が実行される。
【００３４】
分岐先アドレス比較部１２４内では、アドレスバス１０３上に載るアドレスを分岐先アドレス格納部１２２に一時記憶されたデータと比較する。絶対番地への分岐命令が実行された場合、ＣＰＵ１００はアドレスバス１０３に分岐先アドレスを出力するため、必ず分岐先アドレス比較部１２４において比較結果の一致が得られる。
【００３５】
分岐先アドレス比較部１２４における比較のタイミングと回数は、分岐命令コード判定部１２１の比較一致信号を基準にして、その後に続く分岐先アドレスのアドレスビット長情報に従い、命令キューバッファの状態が一番悪い状態を想定して決定する。
【００３６】
このとき、割込み処理が入ると想定していた比較回数では処理ができなくなるため、割込みが発生した場合は比較処理を途中で中止する。割込みが発生すると特定の番地へのプログラム分岐を行うことから、分岐先アドレス比較部１２４の中に割込み発生時の分岐先アドレスとの比較回路も配置し、絶対番地への分岐命令についてのアドレス比較回数内に割込み処理が発生した場合は、これを検出して比較処理を中止する。
【００３７】
分岐先アドレス比較部１２４内の比較処理が完了しアドレス比較結果が一致した場合は、絶対番地への分岐命令が実行されたことになる。その比較結果の一致信号により情報データ判定部１２５では情報データ格納部１２３に一時記憶されたデータを情報データと判定し、この情報データを内部状態制御回路１３０に出力する。一致しない場合は、例えば全ビットが１であるような所定の初期値を出力する。
【００３８】
内部状態制御回路１３０では、情報データ判定部１２５から出力される情報データを用いてマイクロコンピュータ内部の動作状態を変更する。これにより、絶対番地への分岐命令実行後に、例えば特定回路ブロックのクロックを停止させたり、あるいはクロックの分周比を変えたりすることができる。
【００３９】
以上のように、本実施の形態によれば、プログラム中で絶対番地への分岐命令に続く任意の情報データ列を簡単な回路構成で取り出し、取り出した情報データを使ってマイクロコンピュータ内の動作制御を絶対番地への分岐命令の実行とほぼ同時に実行することを、プログラムに命令追加を行うことなく実現することができる。
【００４０】
図３および図４は、図２（ｂ）に示した絶対番地への分岐命令と情報データをメモリ空間に配置する方法として、具体的なプログラム構成例を示すプログラムリストである。
【００４１】
一般的なプログラム設計手法では、割込み処理を含めて、まず小さなサブプログラムを設計し、サブプログラムをまとめ上げて大きなプログラムに編成する。そのため、前記絶対番地への分岐命令と情報データを効果的に配置する方法として、図３に示すようにサブプログラム内の終了直前に置くことが挙げられる。そして、絶対番地への分岐命令の分岐先アドレスはサブプログラムを終了する命令に設定する。
【００４２】
このように、サブプログラム実行の終了直前に絶対番地への分岐命令と情報データの命令構成を配置することで、あるプログラム処理が完了したときのマイクロコンピュータの内部状態の観測に使うことができる。
【００４３】
前記絶対番地への分岐命令と情報データを効果的に配置する他の方法として、図４に示すようにサブプログラム内の開始直前に置くことによっても、同様の効果を挙げることができる。そして、絶対番地への分岐命令の分岐先アドレスはサブプログラムを開始する命令に設定する。
【００４４】
このように、サブプログラム実行の開始直前に絶対番地への分岐命令と情報データの命令構成を配置することで、あるプログラム処理の動作確認のために初期値変更を行うようなマイクロコンピュータの内部状態の変更に使うことができる。
【００４５】
【発明の効果】
以上説明したように、本発明によれば、ＣＰＵに内蔵されるような複雑な命令識別回路を用いずに、簡単な回路構成によりプログラム中に記述された絶対番地への分岐命令を識別し、これに続けて記述された状態制御情報データを取り出し、この状態制御情報データを用いてマイクロコンピュータ内部の制御を行うことができるため、絶対番地への分岐命令と状態制御情報データからなる命令構成をプログラム中に配置するだけで、あたかもマイクロコンピュータ内の動作制御を行う新たな命令を追加したかのように新規機能拡張を実現することができる。
【図面の簡単な説明】
【図１】本発明の一実施の形態に係るマイクロコンピュータの構成を示すブロック図。
【図２】本発明に係るマイクロコンピュータのプログラム構成を示すメモリマップ図。
【図３】本発明に係るマイクロコンピュータの具体的なプログラム構成を示す図。
【図４】本発明に係るマイクロコンピュータの具体的なプログラム構成を示す図。
【符号の説明】
１００  ＣＰＵ
１０１  システムクロック
１０２  データバス
１０３  アドレスバス
１０４  リード・ライト制御信号
１１０  プログラム格納メモリ
１２０  分岐命令判別部
１２１  分岐命令コード判別部
１２２  分岐先アドレス格納部
１２３  情報データ格納部
１２４  分岐先アドレス比較部
１２５  情報データ判定部
１３０  内部状態制御回路
【図１】
2004199186.tif 000003
【図２】
2004199186.tif 000004
【図３】
2004199186.tif 000005
【図４】
2004199186.tif 000006