(57)【要約】【課題】マイクロプロセッサの命令実行を停止させると同時に周辺回路を停止させ、この停止状態においてもマイクロプロセッサからレジスタの読み出しが可能であるマイクロプロセッサシステムを提供する。【解決手段】ブレイク回路部を有するマイクロプロセッサと、機能回路部及びレジスタ部を有する周辺回路と、機能回路部に供給されるクロック信号を制御するクロック制御回路と、クロック信号をマイクロプロセッサ、レジスタ部及びクロック制御回路に供給するクロック生成回路と、を有し、ブレイク回路部は、ブレイクアドレスへのアクセスが発生したときにプログラムの実行を停止させると同時にクロック制御回路にブレイク信号を出力し、クロック制御回路が機能回路部に対するクロック信号の供給を停止することによって、マイクロプロセッサのプログラムの実行停止と機能回路部の停止とを同期させる。【選択図】図１
2007264822.tif 000002
【特許請求の範囲】
【請求項１】
ブレイク回路部を有するマイクロプロセッサと、機能回路部及びレジスタ部を有する周辺回路と、前記機能回路部に供給されるクロック信号を制御するクロック制御回路と、前記クロック信号を前記マイクロプロセッサ、前記レジスタ部及び前記クロック制御回路に供給するクロック生成回路と、を有し、前記ブレイク回路部は、予め設定された任意のアドレスへのアクセスが発生したときに前記マイクロプロセッサの命令実行部を停止させることによってプログラムの実行を停止させると同時に前記クロック制御回路にブレイク信号を出力し、前記クロック制御回路は前記ブレイク信号に応じて前記機能回路部に対する前記クロック信号の供給を停止することによって、前記マイクロプロセッサのプログラムの実行停止と前記機能回路部の停止とを同期させることを特徴とするマイクロプロセッサシステム。
【請求項２】
前記レジスタ部は、前記機能回路部が停止したときの前記機能回路部の実行状態の情報を保持し、前記マイクロプロセッサのプログラムの実行及び前記機能回路部の停止状態において、外部から接続したインサーキットエミュレータにより、前記マイクロプロセッサの機能をエミュレートすることによって、前記レジスタ部のデータを読み出すことを特徴とする請求項１に記載のマイクロプロセッサシステム。
【請求項３】
前記任意のアドレスへのアクセスは、外部から前記インサーキットエミュレータによって行われることを特徴とする請求項１又は２に記載のマイクロプロセッサシステム。
【請求項４】
前記マイクロプロセッサのプログラムの実行の停止は、外部信号によって行われることを特徴とする請求項１又は２に記載のマイクロプロセッサシステム。
【請求項５】
前記マイクロプロセッサの外部からメモリが接続され、前記マイクロプロセッサ、前記周辺回路及び前記メモリがバス接続されていることを特徴とする請求項１乃至４のいずれか１項に記載のマイクロプロセッサシステム。
【請求項６】
前記マイクロプロセッサの前記プログラムの実行再開は、外部から前記インサーキットエミュレータによって前記マイクロプロセッサを制御することによって行われることを特徴とする請求項１乃至５のいずれか１項に記載のマイクロプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロプロセッサシステムに関し、特にインサーキットエミュレータ（In-Circuit Emulator）によって問題解析・調査を行うのに好適なマイクロプロセッサシステムに関する。
【背景技術】
【０００２】
近時、携帯電話及び通信機能を有する携帯機器は、機能及び性能の向上により、ソフトウェア及びハードウェア共に規模が増大し、複雑化する傾向にある。このため、開発段階で生じた問題は複雑であり、またその解析及び原因究明に多大な時間を要し、開発スケジュールが遅延することも少なくない。しかしながら、携帯機器の普及により各機器メーカーによる競争が激化している中、利益を上げるには、商品をタイムリーに市場へ投入する必要があり、このような開発スケジュールの遅延は、市場への商品投入を遅らせ、せっかくのビジネスチャンスを逃してしまう。開発スケジュールの遅延を起こさず商品をタイムリーに市場へ投入することが利益増加に繋がるため、開発段階で生じた問題を早期に解決することが重要になっている。
【０００３】
従来、プロセッサとその周辺回路で構成されるシステムの開発では、ロジックアナライザ及びオシロスコープ等の測定器による外部信号の状態のモニターしたデータ、並びに、プロセッサを外部から制御するインサーキットエミュレータ（In-Circuit Emulator、以下ＩＣＥと記す）を使用してＬＳＩ（Large Scale Integration：半導体集積回路）内部のレジスタ及びメモリをダンプしたデータを元に問題の解析を行っている。
【０００４】
しかしながら、集積技術の向上により、機能毎にあった複数のＬＳＩが、１つのＬＳＩに集約されるようになり、これによってＬＳＩ間を繋ぐ信号がＬＳＩ外部に出力されることが無くなり、外部信号をモニターすることによる問題解析が難しくなっている。
【０００５】
また、ソフトウェアの機能分担比率が増加し、ソフトウェア関連の問題発生率が高まったことで、ＬＳＩ内部レジスタ及びメモリの読み出しを行うことが問題解析・調査の中心になってきている。
【０００６】
上述のようなＩＣＥによってＬＳＩ内部のレジスタ及びメモリの読み出しを行う問題調査手法では、プロセッサの命令実行を停止させるブレイク機能を使用して、任意の処理でプロセッサを停止させた後、ＬＳＩ内部のレジスタ及びメモリを読み出すが、プロセッサを停止させるだけではプロセッサの周辺回路を停止させることができないため、周辺回路の状態が遷移し、レジスタ内のデータが更新され、プロセッサの位相と周辺回路の位相がずれるため、問題発生時のレジスタデータを読み出すことができず、問題の調査が困難になる。特に、通信機器等は機器外部の状態によって周辺回路の状態が変わるため、プロセッサを停止させた時点における周辺回路の状態を保持することが難しいという問題点がある。
【０００７】
この問題を解決すべく、特許文献１に開示されている技術は、特権割り込みと特権割り込みからの復帰命令を有し、特権割り込みを受け付けてから復帰命令の実行が終了するまでの間有効である特権モード信号を出力するマイクロプロセッサにおいて、マイクロプロセッサが出力する周辺回路へのクロック信号を特権モード信号によりマスクするかしないかを選択できるマスク回路を設けている。これにより、ＩＣＥによってプログラムのデバッグを行うためのマイクロプロセッサのプログラム実行停止状態（ブレイク状態）時において、周辺回路を停止させるか動作させるか選択でき、どちらにおいても動作可能であるというものである。
【０００８】
また、特許文献２に開示されている技術は、ＣＰＵ（Central Processing Unit：中央処理装置）及び周辺機能を１チップ上に構成したワンチップマイコンにおいて、周辺機能用クロックジェネレータとＣＰＵ用クロックジェネレータとを夫々独立に備え、ＩＣＥモニタプログラムを配置する特定アドレス領域を検出する手段（アドレスコンパレータ）を設け、このアドレスコンパレータにより周辺機能用クロックジェネレータのＰＣ（Program Counter）値を絶えず監視し、このＰＣ値と特定アドレス領域とがマッチすると、周辺機能用クロックジェネレータが周辺機能へのクロック信号の供給を停止し、ＰＣ値がアンマッチになると、周辺機能へのクロック信号の供給を再開する機能を有するものである。
【０００９】
【特許文献１】特開平０２−２８７８４０号公報
【特許文献２】特開平０４−１９０４３１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述の従来技術においては、周辺回路へのクロック信号の供給が停止されると、これに伴いレジスタへのクロック信号の供給も停止される。近時のＳＯＣ（System on Chip）及びワンチップマイコン等は、バス・スピードの高速化に伴い、バス・インターフェイスがクロック同期式回路になっており、レジスタの読み出しにもクロック信号の供給が必要である。このため、周辺回路へのクロック信号の供給が停止されるとレジスタの読み出しができないという問題点がある。
【００１１】
本発明はかかる問題点に鑑みてなされたものであって、マイクロプロセッサの命令実行を停止させると同時に周辺回路を停止させ、この停止状態においてもマイクロプロセッサからレジスタの読み出しが可能であるマイクロプロセッサシステムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明に係るマイクロプロセッサシステムは、ブレイク回路部を有するマイクロプロセッサと、機能回路部及びレジスタ部を有する周辺回路と、前記機能回路部に供給されるクロック信号を制御するクロック制御回路と、前記クロック信号を前記マイクロプロセッサ、前記レジスタ部及び前記クロック制御回路に供給するクロック生成回路と、を有し、前記ブレイク回路部は、予め設定された任意のアドレスへのアクセスが発生したときに前記マイクロプロセッサの命令実行部を停止させることによってプログラムの実行を停止させると同時に前記クロック制御回路にブレイク信号を出力し、前記クロック制御回路は前記ブレイク信号に応じて前記機能回路部に対する前記クロック信号の供給を停止することによって、前記マイクロプロセッサのプログラムの実行停止と前記機能回路部の停止とを同期させることを特徴とする。
【００１３】
これにより、周辺回路の機能回路部のクロック信号の供給とレジスタ部のクロック信号の供給とを分離し、マイクロプロセッサのプログラムの実行停止と同時に周辺回路の機能回路部のクロック信号の供給を停止させることで周辺回路とマイクロプロセッサのプログラムの実行停止タイミングを同期させることができる。
【００１４】
前記レジスタ部は、前記機能回路部が停止したときの前記機能回路部の実行状態の情報を保持し、前記マイクロプロセッサのプログラムの実行及び前記機能回路部の停止状態において、外部から接続したインサーキットエミュレータにより、前記マイクロプロセッサの機能をエミュレートすることによって、前記レジスタ部のデータを読み出すことができる。
【００１５】
マイクロプロセッサのプログラムの実行停止中においても、マイクロプロセッサ及び周辺回路内のレジスタ部に対するクロック信号の供給は停止されていないため、外部からインサーキットエミュレータによってマイクロプロセッサを制御することによって、レジスタ部に保持されたマイクロプロセッサのプログラムの実行が停止する直前の周辺回路の情報を読み出すことができる。
【００１６】
前記任意のアドレスへのアクセスは、外部から前記インサーキットエミュレータによって行うことができる。
【００１７】
また、前記マイクロプロセッサのプログラムの実行の停止は、外部信号によって行うこともできる。
【００１８】
前記マイクロプロセッサの外部からメモリが接続され、前記マイクロプロセッサ、前記周辺回路及び前記メモリがバス接続されていてもよい。
【００１９】
前記マイクロプロセッサの前記プログラムの実行再開は、前記インサーキットエミュレータから前記マイクロプロセッサを制御することによって行われることが好ましい。
【発明の効果】
【００２０】
本発明によれば、マイクロプロセッサのブレイク機能又はこれと同等の機能を使用してマイクロプロセッサのプログラム実行停止を行い、このプログラム実行停止のタイミングと周辺回路の動作停止のタイミングとを同期させることで、マイクロプロセッサのプログラム実行停止する直前の周辺回路の実行状態がレジスタ部に保持され、周辺回路の機能回路部とレジスタ部とのクロック信号の供給を分離していることで、マイクロプロセッサの実行停止状態においてもマイクロプロセッサからレジスタの読み出しが可能であるため、システムでの問題解析・調査を容易にすることができる。
【発明を実施するための最良の形態】
【００２１】
次に、本発明の実施形態について添付の図面を参照して具体的に説明する。図１は本発明の第１実施形態に係るマイクロプロセッサシステムの構成を示すブロック図である。本実施形態に係るマイクロプロセッサシステムは、マイクロプロセッサ（以下プロセッサと記す）０１０、周辺回路０２０、クロック生成回路０４０及びクロック制御回路０５０によって構成され、外部からインサーキットエミュレータ（ＩＣＥ：In-Circuit Emulator）０３０がプロセッサ０１０に接続されている。
【００２２】
プロセッサ０１０は、ブレイク回路部０１１を備えることによって、予め設定された任意のアドレスへのアクセスが発生したときに命令実行部が停止させ、処理（プログラムの実行）を停止させるブレイク機能（以下ブレイク機能と記す）を有している。
【００２３】
ブレイク回路部０１１は、予めＩＣＥ０３０によってプロセッサ０１０を停止する任意のアドレス（以下ブレイクアドレスと記す）が設定されることにより、プロセッサ０１０がプログラムを実行中にブレイクアドレスへのアクセスが発生すると、プロセッサ０１０の命令実行部を停止させることによってプログラムの実行を停止させる（ブレイク状態）と同時にクロック制御回路０５０にブレイク信号０１２を出力する。
【００２４】
周辺回路０２０は、機能回路部０２１及びレジスタ部０２２を有している。機能回路部０２１は任意の機能を有する回路部である。また、レジスタ部０２２は機能回路部０２１の実行状態の保持を行うものであり、外部からの読み込み及び書き込みが可能である。
【００２５】
クロック生成回路０４０は、プロセッサ０１０、周辺回路０２０内のレジスタ部０２２、及びクロック制御回路０５０にクロック信号０４１を供給する。
【００２６】
クロック制御回路０５０は、周辺回路０２０内の機能回路部０２１に供給されるクロック信号を制御するものであり、ブレイク回路部０１１からブレイク信号０１２が入力されると、このブレイク信号０１２に応じて機能回路部０２１に対するクロック信号の供給を停止する。
【００２７】
これらによって本実施形態に係るマイクロプロセッサシステムが構成され、このマイクロプロセッサシステムのプロセッサ０１０には、外部からＩＣＥ（In-Circuit Emulator）０３０が接続されている。
【００２８】
ＩＣＥ０３０はプロセッサ０１０の機能をホストコンピュータからエミュレートすることでデバッグを行うものであり、プロセッサ０１０がブレイク状態であっても、クロック信号０４１が供給されていれば、外部からＩＣＥ０３０によってプロセッサ０１０を制御することができる。
【００２９】
次に、上述の如く構成された本実施形態に係るマイクロプロセッサシステムの動作について説明する。プロセッサ０１０がプログラムを実行中に、予めＩＣＥ０３０によって設定されたブレイクアドレスへのアクセスが発生すると、ブレイク回路部０１１はプロセッサ０１０の命令実行部を停止させ、プログラムの実行を停止させると同時にクロック制御回路０５０にブレイク信号０１２を出力する。
【００３０】
ブレイク信号０１２が入力されたクロック制御回路０５０は、周辺回路０２０内の機能回路部０２１に対するクロック信号０４１の供給を停止する。機能回路部０２１は、クロック信号０４１の供給が停止された時点で動作を停止する。このとき、プロセッサ０１０及び周辺回路０２０内のレジスタ部０２２に対しては、クロック生成回路０４０からのクロック信号０４１の供給が継続している。
【００３１】
即ち、プロセッサ０１０及び周辺回路０２０内の機能回路部０２１の動作は停止しており、機能回路部０２１に対するクロック信号の供給は停止され、プロセッサ０１０及び周辺回路０２０内のレジスタ部０２２に対してはクロック生成回路０４０からのクロック信号が供給されている状態となっている。よって、外部から接続したＩＣＥ０３０によりプロセッサ０１０を制御し、周辺回路０２０内のレジスタ部０２２のデータを読み出すことができる。
【００３２】
これにより、プロセッサ０１０自体が有するブレイク機能を使用してプロセッサ０１０のプログラム実行停止のタイミングと周辺回路０２０内の機能回路部０２１の動作停止のタイミングとを同期させることで、プロセッサ０１０がプログラムの実行を停止した時点の機能回路部０２１の実行状態の情報をレジスタ部０２２が保持し、この状態においてもプロセッサ０１０及びレジスタ部０２２に対してはクロック信号０４１が供給されているため、外部からＩＣＥ０３０によってプロセッサ０１０を制御し、レジスタ部０２２のデータを読み出すことができる。これにより、プロセッサ０１０がプログラムの実行を停止した時点における機能回路部０２１の情報をレジスタ部０２２から読み出すことができるため、マイクロプロセッサシステムでの問題解析・調査を容易にすることができる。
【００３３】
また、プロセッサ０１０のプログラム実行停止は、ブレイク機能によるものではなく、外部信号等によってなされてもよい。
【００３４】
次に、本発明の第２実施形態について添付の図面を参照して具体的に説明する。図２は本実施形態に係るマイクロプロセッサシステムの構成を示すブロック図である。マイクロプロセッサシステムとしての通信装置１００は、無線で基地局２００と通信を行うものであり、ＬＳＩ３００、メモリ４００、無線部５００及びクロック生成回路６００によって構成される。
【００３５】
ＬＳＩ３００は、プロセッサ３１０、周辺回路３２０及びクロック制御回路３３０によって構成される。プロセッサ３１０、メモリ４００及び周辺回路３２０はバス接続されており、これらの間で夫々のデータの読み出しが行え、また、夫々に対しデータの書き込みが行える。プロセッサ３１０は、ブレイク回路３１１が内蔵されていることにより、バス接続されたメモリ４００又はＬＳＩ３００の内部回路のブレイクアドレスへのアクセスが発生すると、プロセッサ３１０の命令実行部を停止させ、処理を停止させる（ブレイク機能）。
【００３６】
ブレイク回路部３１１は、予めＩＣＥ７００によってプロセッサ３１０を停止する任意のアドレス（ブレイクアドレス）が設定されることにより、プロセッサ３１０がプログラムを実行中にブレイクアドレスへのアクセスが発生すると、プロセッサ３１０の命令実行部を停止させると同時にクロック制御回路３３０にブレイク信号３１２をローレベルに変化させる。
【００３７】
周辺回路３２０は、通信装置１００を動作させるための機能を有する機能回路部３２１と、プロセッサ３１０からの設定値及び機能回路部３２１の実行状態のデータを格納するレジスタ部３２２とによって構成される。
【００３８】
クロック生成回路６００は、プロセッサ３１０、周辺回路３２０内のレジスタ部３２２、及びクロック制御回路３３０にクロック信号を供給する。
【００３９】
クロック制御回路３３０は、周辺回路３２０内の機能回路部３２１に供給されるクロック信号を制御するものであり、機能回路部３２１に供給されるクロック生成回路６００からのクロック信号を制御する論理回路で構成されている。ブレイク回路部３１１からクロック制御回路３３０にブレイク信号３１２がローレベルになると、このブレイク信号３１２に応じて機能回路部３２１に対するクロック信号の供給を停止する。
【００４０】
これらによって本実施形態に係るマイクロプロセッサシステム（通信装置１００）が構成され、この通信装置１００のプロセッサ３１０には、外部からＩＣＥ７００が接続されている。
【００４１】
ＩＣＥ７００はプロセッサ３１０の機能をホストコンピュータからエミュレートすることでデバッグを行うものであり、プロセッサ３１０がブレイク状態であっても、クロック信号が供給されていれば、外部からＩＣＥ７００によってプロセッサ３１０を制御することができる。
【００４２】
次に、上述の如く構成された本実施形態に係るマイクロプロセッサシステム（通信装置１００）の動作について説明する。通信装置１００を起動すると、プロセッサ３１０はメモリ４００からプログラムを読み出し、これを実行する。プロセッサ３１０が、予めＩＣＥ７００によってブレイク回路３１１に設定されたブレイクアドレスへアクセスすると、ブレイク回路３１１はプロセッサ３１０の命令実行部を停止させ、プログラムの実行を停止させると同時にブレイク信号３１２をローレベルに変化させる。
【００４３】
ローレベルになったブレイク信号３１２は、クロック制御回路３３０内のＦＦ（Flip-Flop：フリップフロップ）回路３３１に入力する。このときクロック生成回路６００からのクロック信号はＮＯＴ回路３３３によって反転されクロック制御回路３３０内のＦＦ回路３３１に入力するため、ＦＦ回路３３１からの出力信号はクロック生成回路６００からのクロック信号の立ち下がりエッジと同期する。ＡＮＤ回路３３２は、このＦＦ回路３３１から出力信号とクロック生成回路６００からのクロック信号とにより機能回路部３２１へのクロック信号をローレベルにする。即ち、機能回路部３２１に対してクロック信号の供給が停止され、機能回路３２１の動作が停止する。これにより、プロセッサ３１０のプログラム実行停止と周辺回路３２０内の機能回路部３２１の動作停止のタイミングが同期する。
【００４４】
機能回路部３２１は、クロック信号の供給が停止されると、無線部５００から信号が入力されてもクロック信号の供給が停止された時点における状態を保持し続ける。このとき、プロセッサ３１０及び周辺回路３２０内のレジスタ部３２２に対しては、クロック生成回路６００からのクロック信号の供給が継続されているため、通信装置１００の外部から接続したＩＣＥ７００によりプロセッサ３１０を制御し、メモリ４００及びレジスタ部３２２のデータを読み出すことによって、プロセッサ３１０がプログラムの実行を停止した時点におけるメモリ４００の情報及び機能回路部３２１の実行状態の情報を確認することができる。
【００４５】
マイクロプロセッサシステムが停止した状態から動作を再開する場合は、ＩＣＥ７００によって外部からプロセッサ３１０を制御し、プロセッサ３１０の動作を再開する。このとき同時にブレイク回路３１１がブレイク信号３１２をハイレベルに変化させる。
【００４６】
ハイレベルになったブレイク信号３１２は、クロック制御回路３３０内のＦＦ回路３３１に入力する。このときクロック生成回路６００からのクロック信号はＮＯＴ回路３３３によって反転されクロック制御回路３３０内のＦＦ回路３３１に入力するため、ＦＦ回路３３１からの出力信号はクロック生成回路６００からのクロック信号の立ち下がりエッジと同期する。ＡＮＤ回路３３２は、このＦＦ回路３３１から出力信号とクロック生成回路６００からのクロック信号とにより機能回路部３２１へのクロック信号をクロック生成回路６００からのクロック信号と同じにする。即ち、機能回路部３２１に対してクロック信号の供給が再開される。これにより、プロセッサ３１０のプログラム実行再開と周辺回路３２０内の機能回路部３２１の動作再開のタイミングが同期した状態でマイクロプロセッサシステム全体の動作が再開する。
【００４７】
プロセッサ３１０自体が有するブレイク機能と論理回路とを使用して、プロセッサ３１０のプログラム実行停止のタイミングと周辺回路３２０内の機能回路部３２１の動作停止のタイミングとを同期させることでプロセッサ３１０がプログラムの実行を停止した時点の機能回路部３２１の実行状態を保持し、この状態においてもプロセッサ３１０及び周辺回路３２０内のレジスタ部３２２に対してはクロック信号が供給されているため、外部からＩＣＥ７００によってプロセッサ３１０を制御し、周辺回路３２０内のレジスタ部３２２のデータを読み出せる。これにより、プロセッサ３１０がプログラムの実行を停止した時点の周辺回路３２０の情報をメモリ４００及びレジスタ部３２２から読み出すことができるため、マイクロプロセッサシステムでの問題解析・調査を容易にすることができる。
【００４８】
なお、プロセッサ３１０のプログラム実行停止は、ブレイク機能によるものではなく、外部信号等によってなされてもよい。
【図面の簡単な説明】
【００４９】
【図１】本発明の第１実施形態に係るマイクロプロセッサシステムの構成を示すブロック図である。
【図２】本発明の第２実施形態に係るマイクロプロセッサシステムの構成を示すブロック図である。
【符号の説明】
【００５０】
０１０  ；  プロセッサ
０１１  ；  ブレイク回路部
０１２  ；  ブレイク信号
０２０  ；  周辺回路
０２１  ；  機能回路部
０２２  ；  レジスタ部
０３０  ；  インサーキットエミュレータ（ＩＣＥ：In-Circuit Emulator）
０４０  ；  クロック生成回路
０４１  ；  クロック信号
０５０  ；  クロック制御回路
１００  ；  通信装置
２００  ；  基地局
３００  ；  ＬＳＩ
３１０  ；  プロセッサ
３１１  ；  ブレイク回路
３１２  ；  ブレイク信号
３２０  ；  周辺回路
３２１  ；  機能回路部
３２２  ；  レジスタ部
３３０  ；  クロック制御回路
３３１  ；  ＦＦ（Flip-Flop：フリップフロップ）回路
３３２  ；  ＡＮＤ回路
３３３  ；  ＮＯＴ回路
４００  ；  メモリ
５００  ；  無線部
６００  ；  クロック生成回路
７００  ；  インサーキットエミュレータ（ＩＣＥ：In-Circuit Emulator）
【図１】
2007264822.tif 000003
【図２】
2007264822.tif 000004