JP2010231818A - デバッグシステム - Google Patents
デバッグシステム Download PDFInfo
- Publication number
- JP2010231818A JP2010231818A JP2010161667A JP2010161667A JP2010231818A JP 2010231818 A JP2010231818 A JP 2010231818A JP 2010161667 A JP2010161667 A JP 2010161667A JP 2010161667 A JP2010161667 A JP 2010161667A JP 2010231818 A JP2010231818 A JP 2010231818A
- Authority
- JP
- Japan
- Prior art keywords
- signal
- cpu
- information
- internal bus
- bus
- 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
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】ボード実装レベルにおいても、容易に内部信号を外部で観測してデバッグを行なうことのできるデバッグシステムを提供する。
【解決手段】 半導体情報処理装置においてデバッグサポートユニット(2a)からのCPU動作トレース情報とバスマスタ(7)のメモリアクセス時に出力される内部バス(3)上の内部アクセス情報をデバッグ指示信号に従って選択して外部へ伝達するマルチプレクサ(8,8A)を設けるとともに装置外部にこれらのアクセス情報を格納するメモリ領域を設ける。
【選択図】図1
【解決手段】 半導体情報処理装置においてデバッグサポートユニット(2a)からのCPU動作トレース情報とバスマスタ(7)のメモリアクセス時に出力される内部バス(3)上の内部アクセス情報をデバッグ指示信号に従って選択して外部へ伝達するマルチプレクサ(8,8A)を設けるとともに装置外部にこれらのアクセス情報を格納するメモリ領域を設ける。
【選択図】図1
Description
この発明は、デバッグシステムに関し、特に、半導体情報処理装置のデバッグを容易に行なうことのできるデバッグシステムに関する。
MPU(マイクロ・プロセッサ・ユニット)およびCPU(セントラル・プロセッサ・ユニット)などのプロセッサにおいては、プログラムの検証およびハードウェアの動作確認などのデバッグ作業が行なわれる。このようなデバッグ作業を容易とするために、従来から、デバッグ作業を支援するためのデバッグサポートユニットが、プロセッサ内に搭載されている。特に、システム・オン・チップと呼ばれるような1チップ上に、プロセッサおよび周辺LSI(大規模集積回路装置)が集積化させる構成においては、複雑な内部構成を正確に動作させる必要があり、デバッグ作業が重要となる。
図15は、従来のプロセッサ内蔵半導体集積回路装置の内部構成およびそのデバッグ環境を概略的に示す図である。図15において、プロセッサ内蔵半導体集積回路装置(以下、CPU内蔵LSIと称す)1は、与えられた命令に従って指令された処理を行なうためのCPUコア2と、プログラムを格納するための読出専用メモリ(ROM)4と、中間データを保持するためのランダム・アクセス・メモリ(RAM)5と、装置外部との信号(データを含む)の授受を行なうための入出力回路を含むIOモジュール6と、RAM5に直接アクセスして、外部とのデータの授受を行なうためのダイレクト・メモリ・アクセス・コントローラ(DMAC)7を含む。これらのCPUコア2、ROM4、RAM5、IOモジュール6、およびDMAC7は、内部バス3を介して相互接続される。
CPUコア2には、このCPUコア2が実行するソフトウェア(プログラム)のデバッグを容易にするためにデバッグサポートユニット(DSU)2aが搭載される。このデバッグサポートユニット(DSU)2aは、ピン端子10に接続されるDSU制御用信号線、ピン端子11に接続されてCPUが特定の内部状態になったことを外部に通知するためのCPUイベント通知信号線、およびピン端子12に接続されるCPUの動作状態トレース用信号線に接続される。
このCPU内蔵LSI1は、さらに、ピン端子19を介して与えられるテストモード指示信号TPに従ってIOモジュール6および内部バス3の一方をIO端子13に接続するデバッグ用マルチプレクサ(MUX)18を含む。内部バス3には、データ、アドレス信号および制御信号を含む信号が伝達される。
このCPU内蔵LSIは、内部バス3のバスマスタが、CPUコア2およびDMAC7である。この内部バス3には、さらに、バスアービタなどの周辺回路が接続されるが、これらは図面を簡略化するために示していない。
デバッグ動作時においては、CPU内蔵LSI1は、ピン端子10〜12を介して、外部に設けられたDSU対応デバッグ装置20に結合される。このDSU対応デバッグ装置20は、CPUコア2に含まれるデバッグサポートユニット(DSU)2aの動作を制御するための制御部20aと、この制御部20aの制御の下に、デバッグサポートユニット2aからピン端子12を介して出力されるCPU動作状態トレース信号を格納するトレースデータ格納用メモリ20bを含む。このDSU対応デバッグ装置20は、またピン端子22を介してコンピュータ30に結合される。したがって、このDSU対応デバッグ装置20は、コンピュータ30の制御の下に、CPUコア2に含まれるCPUの動作を制御するとともに、このトレースデータ格納用メモリ20bに格納されたトレースデータを、コンピュータ30の表示画面上に表示することができる。
デバッグ環境下においては、さらに、IO端子13が、ロジックアナライザ40にプローブケーブル42を介して結合される。このロジックアナライザ40は、IO端子13上の信号の論理レベルのモニタの動作を行なう。
通常動作時においては、デバッグ用マルチプレクサ(MUX)18は、IOモジュール6を選択してIO端子13に結合し、デバッグ環境下においては、ピン端子19に与えられるテストモード指示信号TPの活性化に応答して、内部バス3をIO端子13に結合する。内部バス3をデバッグ用マルチプレクサ(MUX)8を介してIO端子13に結合することにより、デバッグ環境下において、ロジックアナライザ40により、内部バス3の状態をモニタする。CPU内蔵LSI1のデバッグ時においては、CPUコア2の実行するソフトウェアに従って内部バス3にはどのような信号が出力されているかを外部で観測することにより、このソフトウェアが正確に実行されているか否かを識別することが必要となる。この内部バス3の信号値を外部でモニタするために、デバッグ用マルチプレクサ(MUX)18が設けられる。
一方、DSU対応デバッグ装置20は、デバッグ動作時には、DSU制御ピン端子10を介して制御信号をデバッグサポートユニット2aへ与えて、CPUコア2に、命令を実行させるとともに、その実行を制御する。このデバッグサポートユニット2aは、CPUコア2に含まれるCPUの動作状態をモニタし、CPUが特定の内部状態になったとき(デバッグ時に指定される)、CPUイベント通知信号をピン端子11を介してDSU対応デバッグ装置20へ与える。DSU対応デバッグ装置20では、デバッグサポートユニット2aからピン端子11を介して与えられるCPUイベント通知信号が活性状態となると、制御部20aが、トレースデータ格納用メモリ20bに書込命令を与え、デバッグサポートユニット2aからピン端子12を介して与えられるCPU動作トレース情報をそこに格納する。このトレースデータ格納用メモリ20bに格納されたCPU動作トレース情報は、ピン端子22を介してコンピュータ30へ与えられ、コンピュータ画面上での表示などが実行される。
またデバッグ環境下においては、デバッグ用マルチプレクサ(MUX)18が、内部バス3をIOピン13に結合しており、ロジックアナライザ40がこのIOピン13およびデバッグ用マルチプレクサ(MUX)18を介して内部バス3の信号値を観測しており、そのモニタ結果をロジックアナライザ40の表示画面上に表示する。
このコンピュータ30の表示画面およびロジックアナライザ40の表示画面上に表示された情報をオペレータが検査することにより、CPUコア2が正常に動作し、指定された命令を実行しているか否かが判定される。
異常が判定された場合、CPU動作トレース情報に基づいて、異常発生原因となった命令が識別され、デバッグが実行される。
外部デバッグ装置としてインサーキットエミュレータを用い、外部バスデバッグインターフェイス部により、このインサーキットエミュレータにより内部バスへアクセス可能として、オンチップ資源に対するバスアクセスに対してデバッグ可能とする構成が、特許文献1(特開平08−006920号公報)に示されている。
このCPU内蔵LSI1においては、内部バス3のバスマスタが、CPUコア2およびダイレクト・メモリ・アクセス・コントローラ(DMAC)7である。ダイレクト・メモリ・アクセス・コントローラ(DMAC)7は、CPUコア2のCPUが演算処理を行なっているとき、その演算処理動作に悪影響を及ぼすことなく、ランダム・アクセス・メモリ(RAM)5へアクセスし、外部の共有メモリまたはロジック/プロセッサとの間でデータの転送を実行する。すなわち、このCPU内蔵LSI1においては、CPUコア2に含まれるCPUおよびダイレクト・メモリ・アクセス・コントローラ(DMAC)7が並列に動作する。このCPUコア2およびダイレクト・メモリ・アクセス・コントローラ(DMAC)7の並列動作に関するデバッグは、データのインテグリティを保証する上で非常に重要である。
しかしながら、この図15に示す従来のCPU内蔵LSIに対するデバッグ環境下においては、内部バス3の信号値は、ロジックアナライザ40の画面上に表示され、一方、CPUコア2に含まれるCPUの動作状態についての情報は、コンピュータ30の画面上に表示される。ロジックアナライザ40およびコンピュータ30は個々独立に動作しており、したがって、このCPUコア2に含まれるCPUの動作状態情報と内部バス上の信号値の時間軸を一致させて表示させることは不可能である。したがって、このCPUコア2に含まれるCPUの動作と、ダイレクト・メモリ・アクセス・コントローラ(DMAC)の動作状態とを関連づけて解析するのは困難であり、それゆえ、このCPUおよびダイレクト・メモリ・アクセス・コントローラ(DMAC)の並列動作に関連したデバッグは極めて困難であるという問題があった。
また、ロジックアナライザ40を使用するため、プローブケーブル42をIOピン端子13に接続する必要があり、したがって、このIOピン端子13は、基板上に設ける必要があり、たとえばボール・グリッド・アレイ(BGA)のような基板下にピン端子が配置されるような構成に対しては、このロジックアナライザ40を使用することができなくなる。これは、CPU内蔵LSIのIOピン端子の配置がこのデバッグのために制約されるという問題が生じる。
また、CPUコア2に対し、大記憶容量のメモリを同一基板上に集積化する構成の場合、内部バス3のビット幅はピン端子数に制約されないため、そのビット幅は十分広くされる。一方、IOピン端子13および他のピン端子の数は、このCPU内蔵LSIのパッケージによる外部ピン端子数の制約を受けており、上限が存在する。したがって、内部バス3に含まれる信号線上の信号値をすべてロジックアナライザ40へ与えることはできず、正確に、内部バスの状態を外部で観測することができなくなるという問題が生じる。
また、IOモジュール6は、実動作時においては、データの入出力を行なうための本来の入出力回路として使用される。したがって、このCPU内蔵LSI1を、ボード上に実装した場合、このIOピン端子13は、他の装置のピン端子に配線により接続されており、IOモジュール6が、デバッグ用マルチプレクサ(MUX)18を介してIOピン端子13に接続される。したがって、ボード上実装レベルにおいては、このIOピン端子13にプローブケーブル42を接続して、ロジックアナライザ40でこのIOピン端子13の信号値を観測することはできず、CPU内蔵LSI単体でしか、デバッグを行なうことができなくなるという問題が生じる。
さらに、デバッグ用マルチプレクサ(MUX)18においては、IOピン端子13を駆
動するためのドライバが設けられる。CPU内蔵LSI1を有するシステムにおいては、その動作周波数は、たとえば100MHzから300MHzと高速であり、このような高速のクロックに従ってIOピン端子13を充放電した場合、電磁輻射によるノイズが生じる。したがって、このような輻射ノイズを低減するため、IOピン端子13を駆動する出力ドライバの駆動能力は、一般に、比較的小さくされ、急速のIOピン端子13の充放電が抑制される。しかしながら、このような場合、IOピン端子13の充放電速度が比較的遅くなるため、プローブケーブル42での信号の伝搬遅延が大きくなり、高速のクロック信号に従って伝達される内部バス3上の信号の高速な変化をIOピン端子13およびプローブケーブル42を介してロジックアナライザ40で取込むことができず、正確な内部バス3の状態の外部での観測を行なうことができなくなるという問題が生じる。
動するためのドライバが設けられる。CPU内蔵LSI1を有するシステムにおいては、その動作周波数は、たとえば100MHzから300MHzと高速であり、このような高速のクロックに従ってIOピン端子13を充放電した場合、電磁輻射によるノイズが生じる。したがって、このような輻射ノイズを低減するため、IOピン端子13を駆動する出力ドライバの駆動能力は、一般に、比較的小さくされ、急速のIOピン端子13の充放電が抑制される。しかしながら、このような場合、IOピン端子13の充放電速度が比較的遅くなるため、プローブケーブル42での信号の伝搬遅延が大きくなり、高速のクロック信号に従って伝達される内部バス3上の信号の高速な変化をIOピン端子13およびプローブケーブル42を介してロジックアナライザ40で取込むことができず、正確な内部バス3の状態の外部での観測を行なうことができなくなるという問題が生じる。
それゆえ、この発明の目的は、ピン配置の制約を受けることなくデバッグに必要な情報を外部で容易にかつ正確に観測することのできるデバッグシステムを提供することである。
この発明の他の目的は、内部バスのビット幅が広い場合でも、内部バス信号を、ピン数を増加させることなく外部で観測することのできるデバッグシステムを提供することである。
この発明は、要約すれば、CPU動作トレース情報出力ピンに、選択的に、CPU動作トレース情報および内部バス情報を与える。
すなわち、この発明の一実施の形態に掛かるデバッグシステムは、内部バスと、内部バスに接続される中央処理装置およびバスマスタ装置とを有し、中央処理装置の命令実行に応じて出力されるCPU動作トレース情報と、バスマスタ装置のメモリアクセスに応じて出力されるバスアクセス情報とを、外部から供給されるデバッグ指示信号に応じて選択的に外部へ出力する制御を行うデバッグ支援機能を有する半導体情報処理装置と、半導体情報処理装置外部に設けられCPU動作トレース情報およびバスアクセス情報を格納するメモリ領域とを備える。
この発明に従えば、デバッグ指示信号に従って、CPU動作トレース情報およびバスマスタ装置のメモリアクセス時に出力されるバスアクセス情報とを、選択的に外部へ出力しており、IOピン端子にプローブを接触させて、ロジックアナライザで、内部信号をモニタする必要がなく、ボード上実装レベルにおいても、デバッグ動作を行なうことができる。
内部のバスアクセス情報を、CPU動作トレース情報とを選択的に外部へ出力することにより、従来のようなIOピン端子を介して内部バス情報を出力する必要がなく、ピン端子配置の制約を受けることなく内部情報を外部で観測することができる。また、外部にCPU動作トレース情報および内部バスアクセス情報が外部に選択的に伝達されるため、1つのデバッグ装置においてCPU動作情報および内部バスアクセス情報の時間軸を合わせて解析することが可能となり、複雑なデバッグをも容易に行なうことができる。
[実施の形態1]
図1は、この発明の実施の形態1に従うCPU内蔵LSIの構成およびそのデバッグ環境を概略的に示す図である。図1において、CPU内蔵LSI1は、従来と同様、内部バス3に結合されるCPUコア2、プログラムを格納する読出専用メモリ(ROM)4、中間データを格納するためのランダム・アクセス・メモリ(RAM)5、および信号(データを含む)の入出力を行なうためのIOモジュール6と、ダイレクト・メモリ・アクセス・コントローラ(DMAC)7を含む。これらの構成要素2〜7は、内部バス3を介して相互接続される。IOモジュール6は、また内部IOバス14を介してIOピン端子13に結合される。この内部IOバス14は、IOピン端子13に含まれる端子と同一ビット幅を有する。
図1は、この発明の実施の形態1に従うCPU内蔵LSIの構成およびそのデバッグ環境を概略的に示す図である。図1において、CPU内蔵LSI1は、従来と同様、内部バス3に結合されるCPUコア2、プログラムを格納する読出専用メモリ(ROM)4、中間データを格納するためのランダム・アクセス・メモリ(RAM)5、および信号(データを含む)の入出力を行なうためのIOモジュール6と、ダイレクト・メモリ・アクセス・コントローラ(DMAC)7を含む。これらの構成要素2〜7は、内部バス3を介して相互接続される。IOモジュール6は、また内部IOバス14を介してIOピン端子13に結合される。この内部IOバス14は、IOピン端子13に含まれる端子と同一ビット幅を有する。
CPUコア2は、また、デバッグサポートユニット(DSU)2aを含む。内部バス3は、内部データを伝達するための内部データバス3aならびにアドレス信号および制御信号を伝達するための内部信号バス3bを含む。
このCPU内蔵LSI1は、内部データバス3aおよび内部信号バス3b上のそれぞれの16ビットの信号とデバッグサポートユニット2aからのCPU動作トレース情報を受け、ピン端子9から与えられるテストモード指示信号に従って、CPU動作トレース情報、内部データおよび内部信号のいずれかを選択してCPU動作トレース情報用のピン端子12へ伝達するマルチプレクサ8を含む。この図1に示す構成においては、マルチプレクサ8へは、16ビットの内部データ、および16ビットの内部信号が伝達され、また8ビットのCPU動作トレース情報が与えられ、マルチプレクサ8は、このピン端子9から与えられるテストモード指示信号に従って8ビットの信号を選択して8ビットのCPU動作トレース用ピン端子12へ伝達する。
デバッグ環境としては、このCPU内蔵LSI1の外部に、DSU対応デバッグ装置20が設けられる。このDSU対応デバッグ装置20は、DSU制御ピン端子10およびCPUイベント通知ピン端子11を介してデバッグサポートユニット(DSU)2aに結合される制御部20aと、CPU動作トレース用ピン端子12を介してマルチプレクサ8からの信号(データを含む)を受けて格納するデータ格納用メモリ20bを含む。
制御部20aは、DSU制御ピン端子10を介して、デバッグサポートユニット(DSU)2aとデバッグ動作に必要な制御信号の授受を行ない、またCPUイベント通知ピン端子11を介してデバッグサポートユニット(DSU)2aから与えられるCPUイベント通知信号を受ける。データ格納用メモリ20bは、また、制御部20aの制御のもとにその格納データをピン端子22を介してコンピュータ30へ伝達する。
コンピュータ30は、このピン端子22を介して制御部20aを制御し、従来と同様、DSU対応デバッグ装置20の制御部20aを介してデバッグサポートユニット(DSU)2aの動作を制御し、これにより、CPUコア2の命令の実行を制御することができる。また、従来と同様、コンピュータ30は、データ格納用メモリ20bに格納されたCPU動作トレース情報をその表示画面上に表示することができる。
データ格納用メモリ20bには、マルチプレクサ8を介して内部バス3上の信号も格納される。したがって、コンピュータ30においては、この内部バス3上の信号をコンピュータ画面上に表示するために、内部バス信号表示用ソフトウェア(SW)がインストールされる。
したがって、図1に示すCPU内蔵LSI1のデバッグ環境においては、従来とは異なり、ロジックアナライザは使用されない。DSU対応デバッグ装置20が、ピン端子10、11および12を介して、このCPU内蔵LSI1に結合される。
次に、この図1に示すCPU内蔵LSI1のデバッグ動作について説明する。まず、デバッグサポートユニット(DSU)2aには、トレースを開始すべき位置(或る命令のプログラム番地)を特定する情報が、DSU対応デバッグ装置20から与えられる。このトレース開始位置情報に従って、デバッグサポートユニット(DSU)2aは、ステータスレジスタにその指定されたトレース開始情報を格納する。次いで、オペレータからのデバッグ開始指示に従って、DSU対応デバッグ装置20が、DSU制御ピン端子10を介して動作開始のための制御信号をデバッグサポートユニット2aへ与える。この動作開始指示信号に従って、デバッグサポートユニット(DSU)2aが起動され、CPUコア2のCPUが図示しないプログラムカウンタに従って順次命令を実行する。このCPUの実行命令番地が、デバッグサポートユニット(DSU)2aのステータスレジスタに格納されたトレース開始位置情報と一致すると、デバッグサポートユニット(DSU)2aが、CPUイベント通知信号をCPUイベント通知ピン端子11を介してDSU対応デバッグ装置20へ与える。このとき、マルチプレクサ8は、既に、ピン端子9から与えられるテストモード指示信号に従って、内部バス3上の信号およびデバッグサポートユニット(DSU)2aからのCPU動作トレース情報のいずれかを選択する状態に設定されている。
DSU対応デバッグ装置20は、デバッグサポートユニット(DSU)2aからCPUイベント通知信号が与えられると(活性化されると)、制御部20aの制御の下に、データ格納用メモリ20bに、ピン端子12を介してマルチプレクサ8から与えられる信号(データ)を格納する。マルチプレクサ8の接続態様に従って、データ格納用メモリ20bには、CPU動作トレース情報、内部データバス3a上の内部データ、および内部信号バス3b上のアドレス信号または制御信号のいずれかが格納されている。
コンピュータ30は、このトレース動作が完了すると、DSU対応デバッグ装置20に対し、ピン端子22を介して制御部20aへアクセス要求を与え、データ格納用メモリ20bに格納された情報を読出す。このコンピュータ30には、内部バス信号表示用ソフトウェア(SW)30aが新たにインストールされている。したがって、図示しないCPU動作トレース情報表示用のソフトウェアおよびこの内部バス信号表示用ソフトウェア30aを起動することにより、データ格納用メモリ20bから読出されたデータを、このコンピュータ画面上に表示することができ、CPU動作トレース情報と時間軸を合わせて、内部バス3上の信号値を表示する。これにより、従来困難であった、CPUコア2およびダイレクト・メモリ・アクセス・コントローラ(DMAC)の並列動作時におけるCPUコア2の動作状態および内部バス3上の信号値を並列表示して、デバッグを行なうことが可能となる。
また、IO端子13には、ロジックアナライザを接続する必要がなく、したがって、このIO端子13は、外部から接続可能な位置に設ける必要がなく、ピン配置の自由度が高くなり、たとえばボール・グリッド・アレイ(BGA)などのピン配置を利用することができる。また、IOモジュール6が、このIO端子13に接続されているボード上実装レベルにおいても、デバッグ専用の、ピン端子10、11および12を介して内部バス3上の信号値を外部で観測することができるため、ボード上レベルでのデバッグをも行なうことができる。
さらに、内部バス3上の信号値は、CPU動作トレース用ピン端子12を介して外部に設けられたDSU対応デバッグ装置20へ与えられており、したがって、内部バス3上の信号値を外部ピン端子数の影響を受けることなく外部へ出力することができる。
また、このマルチプレクサ8からCPU動作トレース情報をピン端子12へ伝達するドライバは、図示しない内部クロック信号に同期して動作しているCPUの動作状態を外部に伝搬することができるのに十分なドライブ能力を有している。したがって、この内部クロック信号に同期して変化する内部バス3上の信号値もこのCPU動作トレース情報をピン端子12へ伝達するドライバを介して外部に伝達することができ、高速で変化する内部バス3上の信号の状態を外部に設けられたDSU対応デバッグ装置20へ正確に伝達することができ、正確なデバッグ動作が保障される。
[各部の構成]
図2は、図1に示すCPUコア2の構成を概略的に示す図である。図2においては、CPUコア2は、実行すべき命令の番地を指定する命令アドレスを発生するプログラムカウンタ2bと、このプログラムカウンタ2bからの命令アドレスに従って図示しない命令メモリへアクセスし、指定された命令を実行する命令実行処理部2cを含む。この命令実行処理部2cは、CPU内部バス2dを介して制御信号およびアドレス信号およびデータを授受し、CPU内部バス2dは、図示しないIOポートを介して内部バス3に結合される。このCPUコア2においては、必要なデータおよびフラグなどを格納するレジスタ回路が設けられており、また必要なデータをキャッシュするキャッシュメモリも設けられているが、これらは図面を簡略化するために示していない。
図2は、図1に示すCPUコア2の構成を概略的に示す図である。図2においては、CPUコア2は、実行すべき命令の番地を指定する命令アドレスを発生するプログラムカウンタ2bと、このプログラムカウンタ2bからの命令アドレスに従って図示しない命令メモリへアクセスし、指定された命令を実行する命令実行処理部2cを含む。この命令実行処理部2cは、CPU内部バス2dを介して制御信号およびアドレス信号およびデータを授受し、CPU内部バス2dは、図示しないIOポートを介して内部バス3に結合される。このCPUコア2においては、必要なデータおよびフラグなどを格納するレジスタ回路が設けられており、また必要なデータをキャッシュするキャッシュメモリも設けられているが、これらは図面を簡略化するために示していない。
デバッグサポートユニット2aは、ピン端子10および11に結合され、DSU制御信号およびCPUイベント通知信号を入出力する制御部2aaと、制御部2aaの制御の下に、CPU動作トレース開始位置情報を格納するステータスレジスタ2abと、CPU内部バス2dに結合され、制御部2aaの制御の下に、このCPUの動作状態を示す信号を抽出してピン端子マルチプレクサ8へ与える情報抽出回路2acを含む。
ステータスレジスタ2abには、トレース開始位置を示すプログラムカウンタ2bのカウント値が格納され、制御部2aaはこのプログラムカウンタ2bのカウント値がステータスレジスタ2abに格納されたトレース開始位置情報(アドレス)と一致すると、CPUイベント通知信号を活性状態へ駆動する。制御部2aaは、また、CPU内部バス2dを介して命令実行処理部2cに対し、デバッグ動作時、命令の実行を起動する制御信号を与える。
なお、情報抽出回路2acは、CPU内部データバス2dに結合されているが、CPUの動作状態を表わす信号を受けるように結合されればよく、破線で示すプログラムカウンタ2bのカウント値または他のたとえばレジスタ回路の情報を抽出するように構成されてもよい。
図3は、図1に示すマルチプレクサ8の構成を概略的に示す図である。図3に示すように、内部バス3は16ビットの内部データバス3aおよび16ビットの内部信号バス3bを含んでおり、合計32ビット幅を有している。この内部バス3は、それぞれが8ビット幅を有する4つのサブバスSD1〜SD4に分割される。マルチプレクサ8は、テストモード指示信号TP1に従ってこれらのサブバスSD1〜SD4のうちの1つを選択する第1のマルチプレクサ8aと、第2のテストモード指示信号TP2に従って、デバッグサポートユニット(DSU)2aから出力されるCPU動作トレース情報と第1のマルチプレクサ8aの出力信号の一方を選択してピン端子12へ伝達する第2のマルチプレクサ8bを含む。
CPU動作トレース情報は8ビットであり、したがって、CPU動作トレース用ピン端子12も8ビット幅を有している。内部バス3は32ビット幅を有しており、CPU動作トレース用ピン端子12のビット幅よりも大きい。しかしながら、内部バス3を複数のサブバスSD1〜SD4に分割することにより、必要な内部信号値を選択して外部で観測することができる。したがって、このテストモード指示信号TP1を適当に選択状態へ駆動することにより、32ビット幅の内部バス3上の内部信号の状態を、すべて外部で観測することができる。
第1のテストモード指示信号TP1は、4つのサブバスSD1〜SD4から1つを選択する。したがって、単純な形態においては、この第1のテストモード指示信号TP1は4ビット幅を有する。しかしながら、この第1のマルチプレクサに対し、2ビットデコーダが設けられ、2ビット幅のテストモード指示信号をこのデコーダでデコードして、4つのサブバスSD1〜SD4の1つが選択される構成が用いられてもよい。
なお、このサブバスSD1〜SD4については、内部データバス3aが2つのサブバスに分割され、内部信号バス3bが2つのサブバスに分割される。
なお、上述の説明においては、内部バス3は32ビット幅を有しているとして説明している。しかしながら、この内部バス3のバス幅は、これより大きく、たとえば64ビット、128ビット等、より大きなビット数であってもよい。CPU動作トレース情報のビット幅と同じビット幅を有するサブバスに分割して、第1のマルチプレクサで選択することにより、大きなビット幅を有する内部バスの所望の内部信号の状態を外部で観測することができる。
図4は、図1に示す内部バス信号表示用ソフトウェア(SW)の処理フローを示す図である。以下、この内部バス信号表示用ソフトウェア30aの処理フローについて説明する。
まず、この内部バス信号表示処理を実行する前に、ユーザ(オペレータ)は、CPUコア2のCPUの内部状態のトレースを開始する場所を指定する(ステップS1)。これは、オペレータが、CPUコア2に含まれる命令実行処理部2cが実行する命令のアドレスまたは実行の順番(命令番号;プログラム行番号)を指定する。
コンピュータ30は、このユーザ(オペレータ)により指定された開始位置を示す情報を、CPUコア2に含まれたデバッグサポートユニット(DSU)に対して与え、またこの指定されたソフトウェア(プログラム)の場所で、CPUイベント通知信号を活性状態へ駆動するように設定する(ステップS2)。デバッグサポートユニット(DSU)2aにおいては、ステータスレジスタ2abに、トレース開始位置を示す情報が格納される。
ステップS1およびS2の処理により、内部バス上の信号を表示するための初期設定が完了する。また、このとき、マルチプレクサ8は、ボード実装時ボード外部から与えられるテストモード指示信号TP1およびTP2に従って、内部バス3のサブバスSD1〜SD4のいずれかを選択する状態に設定される。この状態で、ユーザによるトレース開始指示を待つ(ステップS3)。
ユーザが、トレース開始を指示すると、コンピュータ30は、DSU対応デバッグ装置20を介して、デバッグサポートユニット2aに対し、命令実行開始を指令する(ステップS4)。このとき、DSU対応デバッグ装置20に対しては、デバッグサポートユニット(DSU)2aからのイベント通知信号が活性状態となると、トレースを開始し、このデータ格納用メモリ20bの記憶容量が一杯となるまでトレースを行なうような指令を与える。デバッグサポートユニット2aは、このDSU対応デバッグ装置20から、命令実行開始が指定されると、命令実行処理部2c(図2参照)に対し、命令実行を起動する。この起動時においては、デバッグサポートユニット(DSU)2aとDSU対応デバッグ装置20の間で、トレース情報の転送が行なわれており、コンピュータ30は、DSU対応デバッグ装置20を監視し、トレースが終了するのを待つ(ステップS5)。
トレースが終了すると、DSU対応デバッグ装置20は、コンピュータ30に対し、トレース終了指示を、ピン端子22を介して報知する。コンピュータ30は、次いで、画面上に、トレース完了を表示し、ユーザ(オペレータ)によるメモリバンクの指定を待つ(ステップS6)。ユーザ(オペレータ)は、このトレース完了の表示が与えられると、トレース情報を格納するためのコンピュータ内のメモリバンク(またはファイル)を指定する。メモリバンク(またはファイル)が指定されると、コンピュータ30は、DSU対応デバッグ装置20に対しデータ格納用メモリ20bに格納されたデータを制御部20aの制御の下に読出す。このデータ格納用メモリ20bから読出された(転送された)トレース情報は、指定されたメモリバンク内へ転送されて格納される(ステップS7)。
一度にトレース可能なトレース情報は、CPU動作トレース用ピン端子12のピン数により制約される。本実施の形態1においては、1サイクルにおいて、8ビットのトレース情報をマルチプレクサ8を介して、DSU対応デバッグ装置20のトレースデータ格納用メモリ20bへ格納することができる。より多くの情報が必要な場合、テストモード指定用信号TP1の状態を切換えることにより、選択されるサブバスを変更して、トレースされる信号を変更して、再び、ステップS3からの処理を実行して、トレースを実行する。必要なトレース情報がすべて得られると、トレースの実行を終了する。
必要なトレース実行の終了後、コンピュータのメモリバンクには、トレース情報が格納されている。複数のトレースが行なわれた場合、各トレース結果情報は、すべて、同じトレース開始位置からトレースされた信号である。また、このCPU内蔵LSI1は、入力信号の条件が等しければ、プログラムを何度実行しても、同じ動作を再現する。したがって、それぞれのトレース結果信号は、同じトレース開始位置を始点として、同一時刻における内部バス3上の異なった信号の状態を表現していることになる。内部バス信号表示用ソフトウェア30aは、各メモリバンクに格納されたトレース結果情報を、波形図として、トレース位置を始点として同時に画面に表示する(ステップS8)。
ユーザ(オペレータ)は、このコンピュータ画面に表示された波形図を解析し、正常に動作が行なわれているか否かを判定して、デバッグを実行する。
図5は、デバッグ対象ソフトウェアの一例を示す図である。図5においては、このデバッグ対象プログラムを、C言語で記述する。行番号01は、ダイレクトメモリアクセス動作を開始させ、ダイレクト・メモリ・アクセス・コントローラ(DMAC)を起動する命令を示す。行番号2は、或る第1の関数を、CPUに実行させる命令を示す。行番号3は、データData5をアドレス8に退避させる命令を示す。
行番号4は、CPUに、データData5に第2の関数処理を施させる命令を示す。行番号5は、またCPUに、別の第3の関数を実行させることを指令する命令を示す。
行番号6は、データData5として、アドレス8に格納されたデータを利用することを指令する命令を示す。すなわち、行番号3の命令により退避されたデータData5が、この行番号6の命令により、再び取出される。
行番号7の命令に従って、この取出したデータData5に対し第4の関数処理を施す。これら一連の処理において、トレース開始位置を、行番号3のデータData5をアドレス8に退避させる命令に指定する。
図6は、この図5に示すデバッグ対象プログラムに対するトレース結果の表示を示す図である。図6においては、CPUの状態を示す信号すなわちCPU動作トレース情報として、プログラムカウンタ(PC)のトレース情報が利用される。内部バス上の信号値として、アドレスおよびデータおよび制御信号がトレースされる。すなわち、内部制御信号として、データの読出/書込を示すリード/ライト指示信号RWおよび内部バスを使用するのがCPUであるのかダイレクト・メモリ・アクセス・コントローラ(DMAC)であるのかを示すマスタ信号Masterがトレースされる。アドレスは8ビット表示であり、図6においては、16進表示のアドレスを示す。また、トレースされるデータも8ビットであり、図6において、16進表示でデータを示す。プログラムカウンタのトレース、アドレスのトレース、内部データのトレース、および内部制御信号のトレースが行番号3の命令をトレース開始位置として行なわれている。これらのトレースは、それぞれテストモード指示信号を切換えて、同じ図5に示すプログラムを実行することにより実施される。同一プログラム実行時においては、内部動作状態は同じとなるためである。
この図6に示すトレース結果は、コンピュータ30上の画面に表示される。リード/ライト指示信号RWは、ハイレベルがデータ読出動作を示し、ローレベルがデータ書込動作を示す。また、マスタ信号Masterは、ハイレベルがCPUの内部バスアクセス動作を示し、ローレベルが、ダイレクト・メモリ・アクセス・コントローラの内部バスアクセス動作が行なわれていることを示す。
この図6において、ポイントP1において、CPUがメモリの8番地にデータを“05H”を書込み、ポイントP2において、同じメモリの8番地に、ダイレクト・メモリ・アクセス・コントローラが、データ“01H”を書込んでいるのが理解される。したがって、ポイントP3において、メモリの8番地からデータが読出された場合、このダイレクト・メモリ・アクセスにより上書きされたデータ“01H”がCPUに読込まれていることが理解される。これにより、CPUおよびダイレクト・メモリ・アクセス・コントローラの並列動作時においてデータの競合が生じるのが検出され、プログラムの書換を行なうなどのデバッグ処理が行なわれる。したがって、同一ポートを用いてCPU動作トレース情報および内部バス上の信号値を取込んで表示することにより、CPUのソフトウェアに従う動作と内部バスの動作を同期させたデバッグが可能となる。
[実施の形態2]
図7は、この発明の実施の形態2に従うCPU内蔵LSIの構成を概略的に示す図である。この図7に示すCPU内蔵LSI1においては、内部バス3上の信号とデバッグサポートユニット(DSU)2aからのCPU動作トレース情報を選択するためのマルチプレクサ8Aは、その接続切換様態の制御が、ソフトウェアにより実現される。すなわち、マルチプレクサ8Aの選択様態の設定は、CPUコア2の制御の下に行なわれる。これにより、テストモードを指定するための信号を外部から入力する必要がなく、テストモード指定用ピン端子を削除することができる。
図7は、この発明の実施の形態2に従うCPU内蔵LSIの構成を概略的に示す図である。この図7に示すCPU内蔵LSI1においては、内部バス3上の信号とデバッグサポートユニット(DSU)2aからのCPU動作トレース情報を選択するためのマルチプレクサ8Aは、その接続切換様態の制御が、ソフトウェアにより実現される。すなわち、マルチプレクサ8Aの選択様態の設定は、CPUコア2の制御の下に行なわれる。これにより、テストモードを指定するための信号を外部から入力する必要がなく、テストモード指定用ピン端子を削除することができる。
図8は、図7に示すマルチプレクサ8Aの構成を概略的に示す図である。図8において、マルチプレクサ8Aは、サブバスSD1およびSD4から1つのサブバスを選択するための第1のマルチプレクサ8aと、デバッグサポートユニット(DSU)2aからのCPU動作トレース情報と第1のマルチプレクサ8aの出力信号の一方を選択する第2のマルチプレクサ8bと、内部バス3上の信号に従ってテスト情報を取込み、テストモード指示信号TP1およびTP2をそれぞれマルチプレクサ8aおよび8bに出力するレジスタ回路8cを含む。
レジスタ回路8cは、内部バス3上の特定の信号線上の信号が所定のパターンとなったときにイネーブルされ、特定の内部バス3上の信号線の信号をテストモード指示信号として取込むように構成されればよい。これは、たとえば、現在一般的に用いられている同期型メモリにおいて、動作パラメータを格納するモードレジスタ回路に、所定の動作パラメータを設定する動作様態と同様である。すなわち、内部バス3上の特定の信号線上の信号の組合せに従ってレジスタ回路8cに、テストモード指示信号書込指示が与えられ、この指示が与えられるとレジスタ回路8cが、予め定められた信号線上の信号を取込みラッチする。このレジスタ回路8cは、テストモード指示信号TP1として、4ビットの信号を出力して、1つのサブバスを選択するように構成されてもよく、また2ビットの信号を格納し、この2ビットの信号をデコードして、テストモード指示信号TP1として出力して、1つのサブバスを選択するように構成されてもよい。内部バス3へは、CPUコア2がアクセス可能であり、CPUコア2がデバッグサポートユニット(DSU)2aの制御の下に、レジスタ回路8cの格納されるテストモード指示信号を書換えてもよく、また、コンピュータ30の制御のもとにデバッグサポートユニット(DSU)2aが、このレジスタ回路8cのテストモード指示信号を書換えるように構成されてもよい。
このレジスタ回路8cに、デバッグサポートユニット(DSU)2aの制御の下に、テストモード指示信号を設定することができるため、図9に示すように、CPUのトレース情報としてのプログラムカウンタ値PC、および内部バス上のアドレス信号AD、制御信号CTLおよびデータDTを、このCPU内蔵LSIの動作を停止させることがなくトレース情報として取込める。すなわち、テストモード設定のために、CPUサイクルにその間空きが生じるものの、このCPU内蔵LSI1の動作を停止させることなく、トレース情報を切換えることができる。このトレース情報の切換は、コンピュータ30を利用して、ユーザ(オペレータ)が表示画面を見て、マニュアルで入力してもよく、またデバッグ制御プログラムにおいて、適当な間隔で、このトレース情報を変更する命令が挿入されていてもよい。これにより、ボード上実装レベルにおいて、ボード外部から、ピン端子9を介してテストモード指示信号を与えるために、このCPU内蔵LSIの動作を停止させる必要がなく、CPU内蔵LSIの動作実行中においても、このトレース情報をCPU動作トレース用情報および内部バス信号値を切換えて、コンピュータの表示画面上に表示して、リアルタイムでのデバッグが可能となる。
[実施の形態3]
図10は、この発明の実施の形態3に従うマルチプレクサ8Aの構成を概略的に示す図である。図10に示すマルチプレクサ8Aにおいては、内部バス3からの内部バス信号が、クロック信号CLKに同期して転送動作を行なうフリップフロップ(FF)8dに与えられる。このフリップフロップ8dの出力する内部バス信号が、4つのサブバスSD1〜SD4に分割される。また、第1のマルチプレクサ8aと第2のマルチプレクサ8bの間に、同様、クロック信号CLKに同期して信号の転送を行なうフリップフロップ(FF)8eが設けられる。クロック信号CLKはCPUコア2の動作周波数を決定する。他の構成は、図8に示す構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
図10は、この発明の実施の形態3に従うマルチプレクサ8Aの構成を概略的に示す図である。図10に示すマルチプレクサ8Aにおいては、内部バス3からの内部バス信号が、クロック信号CLKに同期して転送動作を行なうフリップフロップ(FF)8dに与えられる。このフリップフロップ8dの出力する内部バス信号が、4つのサブバスSD1〜SD4に分割される。また、第1のマルチプレクサ8aと第2のマルチプレクサ8bの間に、同様、クロック信号CLKに同期して信号の転送を行なうフリップフロップ(FF)8eが設けられる。クロック信号CLKはCPUコア2の動作周波数を決定する。他の構成は、図8に示す構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
クロック信号CLKが高速の場合、バスサイクルはクロック信号CLKにより規定されるため、内部バス3に現われる内部バス信号は、高速で変化する。内部バス3上の信号遅延が大きい場合または第2のマルチプレクサ8bの出力信号を外部に出力する出力ドライバの遅延が大きい場合、さらに、第1および第2のマルチプレクサ8aおよび8bにおける遅延が付け加えられるため、このクロック信号CLKの各サイクルごとに、内部バス信号を出力することができなくなる。
しかしながら、このフリップフロップ8dを設けることにより、クロック信号CLKに同期してフリップフロップ(FF)8d内に、内部バス信号が取込まれる。このときには、第1のマルチプレクサ8aの有する遅延は、フリップフロップ(FF)8dの信号取込動作に対し何ら影響を及ぼしていない。また、この第1のマルチプレクサ8aの出力信号に対しフリップフロップ8eを設けているため、CPUトレース情報出力ピン端子12における信号遅延は、この第2のマルチプレクサ8bおよび出力ドライブ回路ODが有する遅延だけとなる。フリップフロップ(FF)8dおよび8eは、それぞれ、与えられた信号を1クロックサイクル遅延して伝達する場合、合計2クロックサイクルの遅延が内部バス信号とこのCPUトレース情報出力ピン端子12の信号との間に生じるが、この2クロックサイクルの遅延は、DSU対応デバッグ装置において認識されているため、何らデバッグを行なう上では問題にならない。内部バス信号のデバッグ時、2クロックサイクルの遅延を考慮してデバッグを行なえばよいためである。
図11は、図10に示すマルチプレクサ8Aの動作を示すタイミングチャート図である。図11に示すタイミングチャート図においては、クロック信号CLKの立上がりに同期して、内部バス上に信号が出力される。この内部バス信号SG0 …が、遅延が大きく、クロック信号CLKの立上がりに対して、比較的大きな遅延時間経過後、確定状態となった場合においても、フリップフロップ(FF)8dが、このクロック信号CLKの立下がりに同期してラッチ状態となれば、確定状態の内部バス信号を取込むことができる。このフリップフロップ(FF)8dは、クロック信号CLKの立上がりに同期して、取込んだ信号を出力する。したがって、このフリップフロップ(FF)8dからは、クロック信号CLKの1サイクル遅れて、内部バス信号が順次出力される。このとき、フリップフロップ(FF)8dの出力容量は、単に第1のマルチプレクサ8aの入力ゲート容量だけであり、小さく、高速で、この第1のマルチプレクサ8aに与えられる信号を確定状態へ駆動することができる。また、フリップフロップ(FF)8eも、同様、クロック信号CLKの立下がりに同期してラッチ状態となり、かつクロック信号CLKの立上がりに応答して、取込んだ信号を出力している。したがって、第1のマルチプレクサ8aにおける遅延が大きい場合においても、クロック信号CLKの立下がり時においては、第1のマルチプレクサ8aの出力信号は確定状態にあるため、フリップフロップ(FF)8eは、確実に、確定状態の信号を取込んで、次のサイクルで、取込んだ信号を出力することができる。このフリップフロップ(FF)8eからの信号は、第2のマルチプレクサ8bおよび出力ドライブ回路ODを介してCPU動作トレース情報用ピン端子12へ伝達される。第2のマルチプレクサ8bおよび出力ドライブ回路ODの遅延が存在しても、その遅延は比較的小さく、十分高速のクロック信号CLKに同期して、信号を出力することができる(出力ドライブ回路ODは高速のCPU動作トレース情報を出力できる)。
図12は、この図10に示すフリップフロップ(FF)8dおよび8eの構成の一例を示す図である。図12において、フリップフロップ(FF)は、クロック信号CLKがHレベルのとき導通し、与えられた信号を通過させるトランスファゲートTX1と、このトランスファゲートTX1から与えられた信号をラッチするラッチ回路LA1と、ラッチ回路LA1によりラッチされた信号を、補のクロック信号ZCLKがHレベルのときに通過させるトランスファゲートTX2と、トランスファゲートTX2の伝達する信号をラッチするラッチ回路LA2と、クロック信号CLKがHレベルのとき導通し、ラッチ回路LA2の出力信号を通過させるトランスファゲートTX3を含む。ラッチ回路LA1およびLA2の構成は、与えられた信号をラッチする構成であればよい。また、トランスファゲートTX1〜TX3は、CMOSトランスミッションゲートで構成されてもよく、またトライステートバッファで構成されてもよい。また、このフリップフロップFFは、相補信号を伝達する構成であってもよい。
この図12に示すフリップフロップFFにおいては、クロック信号CLKがHレベルのときに、トランスファゲートTX1およびTX3が導通し、ラッチ回路LA1が新たに与えられた信号をラッチし、一方ラッチ回路LA2が、ラッチした信号を出力する。クロック信号CLKが立下がると、補のクロック信号ZCLKがHレベルとなり、ラッチ回路LA1からラッチ回路LA2への信号の転送が行なわれる。したがって、この図12に示すフリップフロップFFにより、1クロックサイクル遅延して、信号をクロック信号CLKに同期して転送することができる。
以上のように、内部バスと第1のマルチプレクサの間、および第1および第2のマルチプレクサの間に、クロック信号CLKに同期して信号の転送を行なうフリップフロップ回路を設けているため、内部信号およびマルチプレクサの遅延に起因する、内部バスの信号値の出力不能を防止することができ、高速クロックに同期して動作するCPU内蔵LSIにおいても、正確に、内部信号値を外部で観測することができる。
[実施の形態4]
図13は、この発明の実施の形態4に従うマルチプレクサ8Aの構成を概略的に示す図である。図13に示すマルチプレクサ8Aにおいては、フリップフロップ(FF)8dからの信号を8ビットの信号に圧縮して第1のマルチプレクサ8aへ与える圧縮回路8fがさらに設けられる。第1のマルチプレクサ8aは、レジスタ回路8cからのテストモード指示信号に従って、この圧縮回路8fの出力信号、サブバスSD1〜SD4の信号のいずれかを選択してフリップフロップ(FF)8eへ与える。
図13は、この発明の実施の形態4に従うマルチプレクサ8Aの構成を概略的に示す図である。図13に示すマルチプレクサ8Aにおいては、フリップフロップ(FF)8dからの信号を8ビットの信号に圧縮して第1のマルチプレクサ8aへ与える圧縮回路8fがさらに設けられる。第1のマルチプレクサ8aは、レジスタ回路8cからのテストモード指示信号に従って、この圧縮回路8fの出力信号、サブバスSD1〜SD4の信号のいずれかを選択してフリップフロップ(FF)8eへ与える。
CPU動作トレース用ピン端子の数はたとえば8個と限られている。したがって、できるだけ多くの内部信号状態値をできるだけ少ない信号線の数で外部で出力するのが望ましい。この圧縮回路8fは、フリップフロップ8aからの所定の信号をその状態を保存して8ビットの信号に圧縮する。これにより、最大32ビットの信号を、8ビットの信号として、CPU動作トレース用ピン端子12へ伝達することができ、一度のトレース動作(1クロックサイクルにおいてトレースされる内部信号の数)を内部バスのビット幅にまで拡張することができる。この圧縮回路8fは、効率的に、内部バス上の信号を符号化する構成であればよい。
図14は、圧縮回路8fの構成の一例を示す図である。図14において、圧縮回路8fは、フリップフロップ(FF)8dからの3ビットの制御信号をデコードして2ビットの信号を出力する制御信号デコーダ8faと、フリップフロップ(FF)8dからの13ビットのアドレス信号のうち、上位9ビットをデコードするアドレスデコーダ8fbと、このアドレスデコーダ8fbからの3ビットのデコード信号を2ビットの信号に符号化するエンコーダ8fcを含む。制御信号デコーダ8faは、メモリへのリード/ライトが行なわれているか否かを示すリード・ライト識別信号RWと、バスの占有権がCPUにあるのかダイレクト・メモリ・アクセス・コントローラ(DMAC)にあるのかを示すマスタ信号Masterを出力する。
アドレスデコーダ8fbは、16ビットのアドレス信号のうち上位9ビットのアドレス信号をデコードし、アクセス先が読出専用メモリ(ROM)4であるのか、ランダム・アクセス・メモリ(RAM)5であるのか、またはIOモジュール(IO)6であるのかを示す信号を出力する。通常、これらの読出専用メモリ(ROM)4、ランダム・アクセス・メモリ(RAM)5およびIOモジュール6には、それぞれ特定のアドレス(9ビット幅)が設定されている。この特定アドレス信号をデコードすることにより、内部バスを使用するデータ転送のアクセス先が、いずれであるのかを、アドレスデコーダ8fbで判定する。アドレスデコーダ8fbの判定結果を、エンコーダ8fcによりさらに2ビットの信号に圧縮して出力する。残りの7ビットのアドレス信号のうち下位4ビットのアドレス信号が用いられるのは、データアクセスの場合には、バーストアクセスが行なわれ、連続したアドレスへのアクセスが行なわれ、この下位4ビットが各バスサイクルごとに変化することが多いためである。
これにより、合計8ビットの信号が、16ビットの内部信号から生成される。これらの8ビットの信号を、外部で観測することにより、内部バスの動作状態を推測することができる。すなわち、内部バス3を利用するアクセス先がいずれであるのか、またそのアクセス先へは、データの書込/読出のいずれが行なわれるのか、およびそのアクセスを行なう主体はいずれであるのかを判定することができ、デバッグを行なうことが可能となる。すなわち、CPU内蔵LSIの動作時において、これらの内部状態が、実行命令どおりに変化しているか否かを判定することができ、これにより、デバッグを行なうことができる。
なお、この図14に示す構成においては、圧縮回路8fは、16ビットの内部信号(アドレス信号および制御信号)を利用している。しかしながら、この圧縮回路8fの出力信号のビット幅が8ビットである限り、フリップフロップ(FF)8dからの任意のビット数の信号を利用することができる。
この圧縮回路8fにおいては、アドレスデコーダ8fbによるデコード動作およびエンコーダ8fcによるエンコード動作が行なわれている。しかしながら、2段のフリップフロップ(FF)8dおよび8eが設けられているため、このデコード動作およびエンコード動作による遅延が生じても、フリップフロップ(FF)8eからは、正確に、圧縮された信号がクロック信号CLKに同期して出力され、高速内部信号であっても正確に、圧縮情報を外部で観測することができる。
[他の適用例]
上述の説明においては、CPU内蔵LSIが示されている。しかしながら、このCPU内蔵LSIは、与えられた命令に従って処理を実行するプロセッサとメモリが同一半導体チップ上に集積化されている半導体集積回路装置であれば、本発明は適用可能である。たとえば、ロジック(プロセッサ)と大記憶容量のメモリとが集積化されるロジック混載メモリであっても本発明は適用可能である。
上述の説明においては、CPU内蔵LSIが示されている。しかしながら、このCPU内蔵LSIは、与えられた命令に従って処理を実行するプロセッサとメモリが同一半導体チップ上に集積化されている半導体集積回路装置であれば、本発明は適用可能である。たとえば、ロジック(プロセッサ)と大記憶容量のメモリとが集積化されるロジック混載メモリであっても本発明は適用可能である。
1 CPU内蔵LSI、2 CPUコア、2a デバッグサポートユニット、3 内部バス、8,8A マルチプレクサ、10 DSU制御ピン端子、11 イベント通知信号ピン端子、12 CPU動作トレース情報用ピン端子、13 IOピン端子群、20 DSU対応デバッグ装置、30 コンピュータ、30a 内部バス信号表示用ソフトウェア、8a,8b マルチプレクサ、8d,8e フリップフロップ回路、OD 出力ドライブ回路、8f 圧縮回路。
Claims (3)
- 内部バスと、
前記内部バスに接続される中央処理装置とバスマスタ装置とを有し、
前記中央処理装置の命令実行に応じて出力されるCPU動作トレース情報と、前記バスマスタ装置のメモリアクセスに応じて出力されるバスアクセス情報とを、外部から供給されるデバッグ指示信号に応じて選択的に外部へ出力する制御を行うでバッグ支援機能を有する、半導体情報処理装置と、
前記半導体情報処理装置の外部に設けられ、前記CPU動作トレース情報および前記バスアクセス情報を格納するメモリ領域とを備えた、デバッグシステム。 - 前記バスアクセス情報は、前記内部バスを介して転送されるデータ情報、アドレス情報または制御情報を含む、請求項1記載のデバッグシステム。
- 前記デバッグ支援機能は、前記外部から供給されるデバッグ指示信号に応じて、前記CPU動作トレース情報と前記バスアクセス情報とを選択的に外部へ出力する制御を行うデバッグ制御回路を備える、請求項1または2記載のデバッグシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010161667A JP2010231818A (ja) | 2010-07-16 | 2010-07-16 | デバッグシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010161667A JP2010231818A (ja) | 2010-07-16 | 2010-07-16 | デバッグシステム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009133289A Division JP2009193604A (ja) | 2009-06-02 | 2009-06-02 | 半導体情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010231818A true JP2010231818A (ja) | 2010-10-14 |
Family
ID=43047489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010161667A Pending JP2010231818A (ja) | 2010-07-16 | 2010-07-16 | デバッグシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010231818A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016136292A (ja) * | 2015-01-23 | 2016-07-28 | 株式会社リコー | 半導体デバイス、ログ取得方法及び電子機器 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06214819A (ja) * | 1993-01-19 | 1994-08-05 | Toshiba Corp | 情報処理装置及びこの装置の評価システムならびに評価方法 |
-
2010
- 2010-07-16 JP JP2010161667A patent/JP2010231818A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06214819A (ja) * | 1993-01-19 | 1994-08-05 | Toshiba Corp | 情報処理装置及びこの装置の評価システムならびに評価方法 |
Non-Patent Citations (2)
Title |
---|
CSND199801159014, 西田義広、小泉義行, "TX System RISC/TX3904の使い方−後編 プロセッサ応用編", Interface, 19980401, 第24巻,第4号(通巻250号), p.219, JP, CQ出版株式会社 * |
CSNH199900067002, 安藤智子、石川淳士、東田基樹, "システムLSI開発環境", 三菱電機技報, 19990325, 第73巻第3号, pp.21〜24, JP, 三菱電機エンジニアリング株式会社 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016136292A (ja) * | 2015-01-23 | 2016-07-28 | 株式会社リコー | 半導体デバイス、ログ取得方法及び電子機器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4335999B2 (ja) | プロセッサ内蔵半導体集積回路装置 | |
Hopkins et al. | Debug support for complex systems on-chip: A review | |
JP6557220B2 (ja) | プログラム可能なインタフェースベースの検証及びデバッグ | |
US6189140B1 (en) | Debug interface including logic generating handshake signals between a processor, an input/output port, and a trace logic | |
US7010722B2 (en) | Embedded symmetric multiprocessor system debug | |
US6154856A (en) | Debug interface including state machines for timing synchronization and communication | |
US7533302B2 (en) | Trace and debug method and system for a processor | |
US9678150B2 (en) | Methods and circuits for debugging circuit designs | |
JP2003006003A (ja) | Dmaコントローラおよび半導体集積回路 | |
US8762779B2 (en) | Multi-core processor with external instruction execution rate heartbeat | |
US10078113B1 (en) | Methods and circuits for debugging data bus communications | |
JP4450787B2 (ja) | 半導体集積回路装置 | |
GB2275119A (en) | A cached processor. | |
US20050223300A1 (en) | Customizable event creation logic for hardware monitoring | |
US7231568B2 (en) | System debugging device and system debugging method | |
JPH11282709A (ja) | インサーキットエミュレータ | |
JP2010231818A (ja) | デバッグシステム | |
JP2009193604A (ja) | 半導体情報処理装置 | |
US9581643B1 (en) | Methods and circuits for testing partial circuit designs | |
JP2003263339A (ja) | デバック機能内蔵型マイクロコンピュータ | |
US10754743B2 (en) | Apparatus and method using debug status storage element | |
JP2004094451A (ja) | オンチップjtagインタフェース回路およびシステムlsi | |
US20210173989A1 (en) | Simulation signal viewing method and system for digital product | |
JPH08161191A (ja) | インサーキットエミュレータ | |
JP4084912B2 (ja) | マイクロプロセッサシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100716 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110125 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110308 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110510 |