(57)【特許請求の範囲】
【請求項１】
データ・プロセッサであって、
複数のアドレス値及び複数のデータ値を発生する中央処理装置と、
前記中央処理装置に結合され、前記複数のアドレス値及び前記複数のデータ値を受け取り、当該複数のアドレス値及び複数のデータ値を前記データ・プロセッサに対して外部にある多重化バスに与えるシステム統合回路と、を備え、
前記システム統合回路が、複数のバス・サイクルとして第１の提示サイクル及びそれに続く第２の提示サイクル又は外部サイクルを発生し、
前記システム統合回路が、第１の提示サイクル中に前記複数のアドレス値のうちの第１のアドレス値を前記多重化バスに与え、次いで第２の提示サイクル又は外部サイクル中に前記複数のアドレス値のうちの第２のアドレス値と前記複数のデータ値の中の第１のアドレス値に関連した第１のデータ値と第２のアドレス値に関連した第２のデータ値をこの順序で前記多重化バスに与える、データ・プロセッサ。
【請求項２】
中央処理装置と当該中央処理装置に結合されたシステム統合回路とを含むデータ・プロセッサから当該データ・プロセッサに対して外部にある多重化バスへバス・サイクル中に情報を与える方法であって、
前記中央処理装置が、複数のアドレス値及び複数のデータ値を発生し、当該複数のアドレス値及び複数のデータ値を前記システム統合回路に与えるステップと、
前記システム統合回路が、複数のバス・サイクルとして第１の提示サイクル及びそれに続く第２の提示サイクル又は外部サイクルを発生するステップと、
前記システム統合回路が、第１の提示サイクル中に前記複数のアドレス値のうちの第１のアドレス値を前記多重化バスに与え、次いで第２の提示サイクル又は外部サイクル中に前記複数のアドレス値のうちの第２のアドレス値と前記複数のデータ値の中の第１のアドレス値に関連した第１のデータ値と第２のアドレス値に関連した第２のデータ値をこの順序で前記多重化バスに与えるステップと
を備える方法。
【請求項３】
中央処理装置とデータ値を格納する内部メモリと前記中央処理装置に結合されたシステム統合回路とを含むデータ・プロセッサから当該データ・プロセッサに対して外部にある多重化バスへバス・サイクル中に情報を与える方法であって、
前記システム統合回路が、複数のバス・サイクルとして第１の提示サイクル及びそれに続く第２の提示サイクル又は外部サイクルを発生するステップと、
前記中央処理装置が、複数のアドレスを発生し、前記複数のバス・サイクルの各バス・サイクル中に前記内部メモリから前記複数のアドレスのうちの１つのアドレスにあるデータ値を読み出すステップと、
前記システム統合回路が、前記複数のバス・サイクルの各バス・サイクル中に前記１つのアドレス及び当該１つのアドレスに関連した前記の読み出されたデータ値を前記中央処理装置から読み出すステップと、
前記システム統合回路が、第１の提示サイクル中に前記多重化バスを通じて前記複数のアドレスのうちの第１のアドレスを外部に供給するステップと、
前記システム統合回路が、次いで、前記第２の提示サイクル又は外部サイクル中に前記多重化バスを通じて前記複数のアドレスのうちの第２のアドレスと前記第１のアドレスに関連した第１のデータ値と前記第２のアドレスに関連した第２のデータ値をこの順序で外部に与えるステップと
を備える方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、一般的に提示サイクル(show cycle)を有するデータ・プロセッサに関し、更に特定すれば、多重化バス上に提示サイクルを与えるデータ・プロセッサに関するものである。
【０００２】
【従来の技術】
マイクロコントローラの用途では、多くの場合、マイクロコントローラ・ユニット（ＭＣＵ）内全体に発生するバス動作を伴う。かかるバス動作には、内部制御レジスタ、内部データ・レジスタ、およびオンチップ・メモリのリードおよびライト動作が含まれる。かかる動作は、一般的に、マイクロコントローラの外部素子からは見ることができない。しかしながら、開発環境では、これら内部動作の観察可能性(observability)を必要とすることが多い。
【０００３】
一般的に、マイクロコントローラ・ユニット内の外部バス回路は、マイクロコントローラ・ユニットの高速内部バスと、マイクロコントローラ・ユニットの外部素子との間のインターフェースとして機能するものである。また、外部バス回路は、外部バス管理、ならびにバス動作中の異なる時刻において同じ集積回路端子上のアドレスおよびデータ信号を多重化するための内部バスへのアクセスも担っている。同一集積回路端子上でアドレスおよびデータ信号を多重化することによって、外部バス回路は、マイクロコントローラ・ユニットの集積回路端子の総数を少なくし、コストの低いデータ・プロセッサを提供することができる。
【０００４】
外部バス回路の魅力的な特徴は、これによってマイクロコントローラ・ユニットの端子数を減少できることである。データ・バス端子を除去することによって、コストに劇的な影響を与えることができる。したがって、提示サイクルを含む外部バスサイクルは全て、多重化バス・インターフェースを用いることを要求される場合が有る。
【０００５】
開発環境においては、外部バス回路は、内部バス・サイクルの外部可視性を与える役割も担っている。これは、ロジック・アナライザやバス・アナライザのような受動ツール(passive tool)、およびリアルタイムで内部制御動作の追跡を必要とする能動的ツール(active tool)の双方を支援するために設けられている。内部バス・サイクルの外部可視性を与える機構を提示サイクル(show cycle)と呼び、標準外部バス・サイクルとは異なるデータ・バス・タイミングを必要とする。一般的に、提示サイクルのアドレス・フェーズ(address phase)は、データ・フェーズ(data phase)に遅れが生じる標準外部バス・サイクルに類似している。データ・フェーズが遅れる理由は、内部リード・サイクルからの有効データは、マイクロコントローラ・ユニット内で内部的に有効となるまで、外部に送出することができないからである。外部バス・サイクルの終了まで、データはマイクロコントローラ・ユニット内で内部的に有効にはならない。このため、外部バス回路がデータを外部に送出している間、遅れが生じるのである。したがって、標準提示リード・サイクルのデータ・フェーズは、現行のバス・サイクルが完全に終わるまでは許可されず、実際には次のバス・サイクルに突入してしまうことになる。
【０００６】
従来の提示サイクル機構は、多重化されていないバス上で提示サイクルを与えるものであった。従来の提示サイクル機構では、あるバス・サイクルのデータ・フェーズを次のバス・サイクルに繰り延べることができる。次のバス・サイクルでは、データ・フェーズが始まっておらず、データ・フェーズの先頭が開始するまで、集積回路のデータ端子を使用し続けることができる。しかしながら、多重化バスの場合、次のバス・サイクルは、アドレス・フェーズを実行するために、同じアドレス／データ・バス集積回路端子を使用しなければならない。提示サイクルをデータ・フェーズに繰り延べる時間的な余裕はない。内部リード動作中に取り出されたデータがマイクロコントローラの多重化バスの外部集積回路端子上で有効になる時刻までに、次のバス・サイクルからのアドレスが、同一集積回路端子上に現れてしまう。上述の多重化バスの例では、従来の提示サイクルのシーケンスはこの状況では不適切である。エミュレーション動作モードでは、外部バス回路は内部機能への同期を制御する外部開発ツールを支援するために、内部ライト動作のリアルタイムでの可視性も提供しなければならない。
【０００７】
【発明が解決しようとする課題】
提示サイクルは長年データ・プロセッサにおいて用いられてきた。しかしながら、かかるデータ・プロセッサにおける提示サイクルは、典型的に、多重化されていないバスに設けられていた。従来の提示サイクル機構では、次のバス・サイクルのデータ・フェーズが始まらない間、あるバス・サイクルのデータ・フェーズが次のバス・サイクルに繰り延べられる。したがって、データ・フェーズが始まるまでは、集積回路のデータ端子を再使用することができる。データ・プロセッサが更に高密度の機能を備えるに連れて、多重化されていない外部バスの必要性は低下しつつある。しかしながら、提示サイクルの物理的要件により、更に多重化アドレス／データ・バスの物理的制約により、現在の技術では、内部サイクルと同じ外部バス・サイクルの間に内部データを供給することができない。
【０００８】
加えて、外部シャドウ・レジスタ(shadow register)を用いることによって、データ・プロセッサの内部機能を追跡するエミュレーション・サイクルも用いられる。制御信号によっては、多重化バス・サイクルのラッチ・アドレス・フェーズ(latched address phase)と同時にデコードされ、シャドウ・レジスタのアドレスを発生するものもある。シャドウ・レジスタは、制御変化のリアルタイムでの可視性を必要とする外部合成回路と連携し、内部データ処理機能との同期を保つものである。典型的な開発ツールは、この構造を利用して、いくつかの個々の機能を支援している。かかる機能は各々、シャドウ・レジスタと同一の基礎的なアーキテクチャを有し、内部機能の挙動をリアルタイムで追跡しなければならない外部機能を制御する内部レジスタをリアルタイムで複製する。これらの機能は、エミュレーション・サイクルによってリアルタイムで内部ライト動作の可視性が得られるために実現できるものである。
【０００９】
【課題を解決するための手段】
前述の必要性は本発明によって実現される。即ち、一形態では、複数の制御信号、複数のアドレス値、および複数のデータ値を発生する中央処理部を含むデータ・プロセッサが提供される。システム統合回路がデータ・プロセッサに接続され、複数の制御信号、複数のアドレス値、および複数のデータ値を受信する。システム統合回路は、データ・プロセッサが提示サイクルを実行できるようにする第１制御信号を発生する。また、システム統合回路は、データ・プロセッサが提示サイクルを実行中であることを複数の制御信号の第１信号が示すとき、複数のアドレス値および所定の第１フォーマットの複数のデータ値を多重化バス上に供給する。所定の第１フォーマットは、複数のデータ値の第１データ値を含み、これは第１アドレス値と関連付けられ、第１バス・サイクルの間アクセスされる。システム統合回路は、複数のアドレス値の第２アドレス値が多重化バスに供給される第２サイクルの間に、複数のデータ値の第１データ値を多重化バスに供給する。
【００１０】
本発明の第２実施例では、データ・プロセッサの多重化バス上で提示サイクルを発生する方法が提供される。この方法は、データ・プロセッサの中央処理部が複数のアドレス値、複数のデータ値、および複数の制御信号を発生できるようにする段階と、システム統合回路に第１制御信号を発生させ、データ・プロセッサが提示サイクルを実行できるようにする段階とを含む。複数の制御信号の第１制御信号によってデータ・プロセッサが提示サイクルを実行できるようになったとき、システム統合回路は、複数のアドレス値と所定の第１フォーマットの複数のデータ値とを多重化バス上に供給する。所定の第１フォーマットは、複数のデータ値の第１データ値を含み、これは第１アドレスと関連付けられ、第１バス・サイクルの間にアクセスされる。システム統合回路は、複数のアドレス値の第２アドレス値が多重化バスに提供される第２サイクルの間に、複数のデータ値の第１データ値を多重化バス上に供給する。
【００１１】
これらおよびその他の特徴ならびに利点は、添付図面に関連付けて記載された以下の詳細な説明から、より明確に理解されよう。図面は本発明の唯一の形態を表わすことを意図するものではないことを指摘するのは重要なことである。
【００１２】
【実施例】
一般的に、回路内エミュレーション・システム(ICE:in-circuit-emulation system)のような全構造開発ツール(full feature development tool)は、マイクロコントローラの内部動作の最大可視性を与えるモードで、マイクロコントローラを動作させなければならない。これによって、アプリケーション開発の間、ツールは、マイクロコントローラのプログラムおよびシステム挙動の分析を提供することができる。多くの場合、この可視性を達成するために、開発ツールは、アプリケーションが通常必要とするものとは異なる、マイクロコントローラ・リソースの構成を行わなければならない。この状況では、アプリケーションによって必要とされる機能で、異なるマイクロコントローラ・リソース構成によって影響を受けるもの全てを、ツールは置き換えなければならない。エミュレーション・システムは、変更したリソース構成によって影響を受ける全ての機能の正確な再生を行わなければならない。マイクロコントローラが、エミュレーション・システムに必要な支援を提供し、かかる機能を正確に合成することも同様に重要である。
【００１３】
典型的に、マイクロコントローラが開発ツールを支援する際、オンチップ・リソースの外部装置に対する可視性および制御性を支援するようにマイクロコントローラを構成する場合に影響を受ける、マイクロコントローラ内部のチップ・リソースの内部制御レジスタを再割り当て(remapping)する。マイクロコントローラは、関連するオンチップ・リソースを遮断し、エミュレーション・システムによってチップ外に設けられたリソースを用いて動作する。これを、エミュレート・リソース(emulated resource)または機能と呼ぶ。殆どのエミュレート機能(emulated function)は時間に敏感な挙動を呈し、機能に対する変化は、機能の制御を変更するバス・サイクル内における特定の時刻に起こる。これは、マイクロコントローラが外部でエミュレートされたリソースをリアルタイムで支援すること、および外部で割り当てられたエミュレート機能リソースへのいかなる変化も同時に発生することを必要とする。かかる同時動作は、レジスタが通常動作で内部的に割り当てられたとすれば動作が起こったであろうという様子をシミュレートするものである。
【００１４】
また、オンチップ・リソースが入出力集積回路端子を有し、これを再割り付けしてエミュレーション・モードを支援するという状況もある。入出力集積回路端子を、他のオンチップ・リソースに連結することもできる。この場合、他のオンチップ・リソースも入出力通信機能を実行し、その外部システム挙動は、置き換えられた集積回路端子の随伴入出力通信機能(companion input/output communication function)を必要とする。この場合、エミュレーション・システムは、入出力集積回路端子が置き換えられた機能を、適切に同期をとって外部的に再生しなければならない。この同じ機能は、マイクロコントローラ内で内部的に動作し続け、他の外部から見ることができる内部機能との同期が取られる。このタイプの同期挙動のエミュレーションには、かかる機能の挙動に影響を与える制御動作の可視性がリアルタイムで得られなければならない。
【００１５】
本発明は、高速多重化バス上で提示サイクルを与えるデータ・プロセッサおよび方法を提供する。本発明は、２つの別個の動作モードを提供する。第１動作モードは、ロジック・アナライザのような受動的装置へのインターフェースのために、多重化バス上で標準提示サイクルを支援する。第２動作モードは、多重化バスを用いて制御機能をリアルタイムで追跡するエミュレーション・ツールを支援する。通常、第１動作モードは、低価格のマイクロコントローラ・インターフェース・ツールおよびタイミング・アナライズの助けによって、データ処理システムのソフトウエアおよびハードウエアの双方をデバッグするために用いられる。第２動作モードは、バス・アナライザおよび種々のその他のシステム・アナライザの構成を備えた回路内エミュレーション・システムを用いて、ファームウエアのデバッグを行う際に、主に用いられる。
【００１６】
動作の間、標準的な高速多重化バスの提示サイクルは、多重化サイクルの通常期間の間に、アドレス情報を外部に供給するが、データ情報の表示のために、次の提示サイクルまたは外部サイクルから、ある時間期間を借用する。この借用期間は、提示サイクルに続くバス・サイクルのアドレスおよびデータ・フェーズ間に位置付けられる。例えば、第１サイクルのアドレス信号をＡ１、第１サイクルのデータ信号をＤ１、第２サイクルのアドレス信号をＡ２、第２サイクルのデータ信号をＤ２と仮定する。前の提示サイクルのデータはＤｘである。従来の多重化バス・サイクルが２回連続すると、Ａ１−Ｄ１−Ａ２−Ｄ２というシーケンスとなる。しかしながら、多重化バス上で、提示サイクルの後に標準的な外部サイクルが続く場合、シーケンスはＡ１−Ｄｘ−Ａ２−Ｄ１−Ｄ２となる。
【００１７】
本発明の動作の間、提示サイクルは、データ・ストローブ（ＤＳ）信号がアサート(assert)されている間にアドレス・ストローブ（ＡＳ）信号がニゲート(negate)されることによって示される。ＡＳおよびＤＳ信号は、双方とも、外部分析ツールによって容易に識別することができる。本発明のこの実施例の鍵となる特徴は、リードおよびライト提示サイクル双方の間での一貫性であり、単一の提示サイクル・タイミングおよび順序のシーケンスをデコードするには、外部論理分析ツールのみがあれよいことである。外部バスまたは論理分析ツールは、関連するデータ・フェーズまで、アドレス・バスをラッチすることができ、その後再同期されたアドレスとデータとを１つのデータ・フレームの中で共に組み合わせることができる、簡単なパイプライン機構を提供しなければならない。図７のタイミング図は、提示サイクル・タイミングをより詳細に示すものである。
【００１８】
本発明では、データ・プロセッサのエミュレーション・モードは、２クロック多重化リードおよびライト・バス・サイクルも支援する。これら２クロック多重化リードおよびライト・バス・サイクルが支援されるのは、データ・プロセッサがエミュレーション動作モードにあるときである。したがって、次のバス・サイクルに挿入された、エミュレーション・モードにおける提示サイクルのデータ・フェーズのタイミングは、通常モードにおける提示サイクルのデータ・フェーズのタイミングとは異なる。加えて、エミュレーション提示サイクルは、内部制御動作のリアルタイムでの観測可能性を支援する。内部制御動作のリアルタイム観測可能性が必要とされるのは、動作の外部観察を内部動作と同時に行わなければならないときである。これは、エミュレーション提示サイクルの次に、多重化バス上で標準外部サイクルが続くライト・サイクルの場合に、特に重要である。かかる場合は、Ａ１−Ｄｘ−Ｄ１−Ａ２−Ｄ１−Ｄ２というシーケンスを示す。これには、現行のバス・サイクルがエミュレーション提示サイクルであることを示す、エミュレーション・チップ・セレクト信号をアサートすることが伴う。
【００１９】
本発明のこの実施例では、上述のように、論理またはバス分析ツールは、エミュレーション提示サイクルに同期することができるものもある。図８および図９のタイミング図は、エミュレーション提示サイクル・タイミングを、より詳細に示す。図７は、提示サイクル・タイミングを、より詳細に示す。
次に、本発明の接続構成について説明する。
【００２０】
図１は、開発システム５を示す。開発システム５は、データ処理システム１０と開発ツール１００とを含む。データ処理システム１０は、バス２８、複数の集積回路端子２４、複数の集積回路端子２６、複数の集積回路端子３０、複数の集積回路端子３２、および複数の集積回路端子３４を介して、開発ツール１００に結合されている。本明細書では、バス２８は複数の集積回路端子２８と相互交換可能に用いることができる。データ処理システム１０は、中央処理部（ＣＰＵ）１２、タイマ回路１４、システム統合回路１６、直列通信回路１８、アナログ／デジタル（Ａ／Ｄ）変換器２０、およびスタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）２２を含む。各ＣＰＵ１２、タイマ回路１４、システム統合回路１６、直列通信回路１８、Ａ／Ｄ変換器２０、およびＳＲＡＭ２２は、バス３６を介して内部的に交信する。更に、ＣＰＵ１２は、複数の集積回路端子２４を介して、外部の開発ツール１００と通信を行う。同様に、タイマ回路１４、システム統合回路１６、直列回路１８、Ａ／Ｄ変換器２０、およびＳＲＡＭ２２も、複数の集積回路端子２６、複数の修正回路端子２８、複数の集積回路端子３０、複数の集積回路端子３２、および複数の集積回路端子３４をそれぞれ介して、外部の開発ツール１００と通信する。
【００２１】
図２は、開発ツール１００に含まれるバス・アナライザ回路１０２の一部を示す。バス・アナライザ回路１０２は、外部バス制御回路１０３、デマルチプレクサ１０４、ステージＡ制御レジスタ１０６、ステージＢレジスタ１０８、マルチプレクサ１１０、ラッチ１１２、およびトレース・バッファ(trace buffer)１１４を含む。複数の集積回路端子２８は、制御バス１０１を通じて、複数の制御信号を外部バス制御回路１０３に供給する。外部バス制御回路１０３は、出力マルチプレクサ制御信号をマルチプレクサ１１０の第１入力に、そしてデマルチプレクサ制御信号をデマルチプレクサ１０４の第１入力に供給する。外部バス制御回路１０３も、パイプ前進信号(Pipe Advance signal)を、ステージＡレジスタ１０６の第１入力およびステージＢレジスタ１０８の第１入力に供給する。加えて、外部バス制御回路１０３は、ラッチ制御信号をラッチ１１２の第１入力へ供給し、トレース制御信号をトレース・バッファ１１４に通信する。
【００２２】
また、複数の集積回路端子２８は、複数の外部アドレス信号を、外部アドレスバス１０５を通じてデマルチプレクサ１０４に供給する。デマルチプレクサ１０４は、アドレス・アウト信号(address out signal)をステージＡレジスタ１０６の第２入力に供給する。ステージＡレジスタ１０６は、第１出力をステージＢレジスタ１０８に、第２出力をマルチプレクサ１１０に供給する。ステージＢレジスタ１０８は、第１出力をマルチプレクサ１１０に供給する。マルチプレクサ１１０はラッチ１１２に結合され、パイプライン・アドレス信号を供給する。デマルチプレクサ１０４もラッチ１１２に結合され、出力データ信号を供給する。ラッチ１１２は、ラッチされた出力データ信号とラッチされたパイプライン・アドレス信号とを、トレース・バッファ１１４に供給する。
【００２３】
図３は、本発明を用いたデータ処理システム１０のシステム統合回路１６の一部を示す。システム統合回路１６は、バス・インターフェース・ユニット４０、外部バス制御部４２、および複数のバス終端４４を含む。システム統合回路１６のバス・インターフェース・ユニット４０は、バス３６を介して、データ処理システム１０の残りの部分に結合されている。バス・インターフェース・ユニット４０は、内部アドレス・バス４８、内部データ・バス５２、および内部制御バス５０を介して、外部バス制御部４２に結合されている。外部バス制御部４２は、外部アドレス・バス５４および外部制御バス５６を介して、複数のバス終端４４に双方向結合されている。複数のバス終端４４は、バス２８を介して、開発ツール１００に結合されている。
【００２４】
図４は、外部バス回路４２の一部を示す。外部バス回路４２は、バス制御回路６０、状態機械６２、および提示イネーブル・レジスタ６４を含む。バス制御回路６０は、外部アドレス・バス５４および外部制御バス５６を介して、複数のバス終端４４に結合されている。バス制御回路６０は、内部アドレス・バス４８、内部制御バス５０、および内部データ・バス５２を介して、バス・インターフェース４０に結合されている。状態機械６２は内部制御バス５０に結合され複数の内部制御信号を受け、更に、データ処理システム１０がエミュレーション動作モードで動作しているときを示すエミュレーション・モード信号を受ける。提示イネーブル・レジスタ６４は、提示イネーブル信号によって、状態機械６２と結合される。状態機械６２は、状態信号バス６６によって、バス制御回路６０にも結合されている。
【００２５】
図５は、バス制御回路６０の一部をより詳細に示す。バス制御回路６０は、マルチプレクサ７０、アドレス・レジスタ７２、データ・レジスタ７４、タイミング制御回路７８、および遅延回路８０を含む。マルチプレクサ７０は外部アドレス・バス５４に結合され、タイミング制御回路７８は外部制御バス５６に結合されている。マルチプレクサ７０はアドレス・バス７１を介してアドレス・レジスタ７２に結合され、更にデータ・バス７３を介してデータ・レジスタ７４に結合されている。アドレス・レジスタ７２は、内部アドレス・バス７１およびレジスタ制御バス７６にも結合されている。複数のレジスタ制御信号が、タイミング制御回路７８によって、アドレス・レジスタ７２およびデータ・レジスタ７４に、レジスタ制御バスを通じて供給される。データ・レジスタ７４は内部データ・バス５２に結合されている。タイミング制御回路７８および遅延回路８０は、各々、内部制御バス５０と状態信号バス６６とに結合されている。遅延回路８０はマルチプレクサ７０に結合され、遅延信号を供給する。タイミング制御回路７８はマルチプレクサ７０に結合され、複数のタイミング信号を供給する。
【００２６】
以下に記載する本発明の実施形態の説明では、「アサート(assert)」と「ニゲート(negate)」という用語およびその様々な文法的形状を用いて、「アクティブ・ハイ」および「アクティブ・ロー」論理信号とを一緒に扱う際の混乱を回避することとする。「アサート」は、論理信号またはレジスタ・ビットをそのアクティブな即ち論理的に真の状態にすることを意味する際に用いる。「ニゲート」は、論理信号またはレジスタ・ビットをそのインアクティブ即ち論理的に虚の状態にすることを意味する際に用いる。また、値の前の「＄」は、その値が１６進数であることを示すことも注記しておく。
次に、上述のデータ処理システムの動作について説明する。
【００２７】
開発システムでは、図１のデータ処理システム１０をエミュレーション動作モードで動作させることができる。エミュレーション動作モードで動作するとき、システム統合回路１６は別個の挙動を与えることによって、開発ツール１００の使用を支援する。具体的には、システム統合回路１６の外部バス回路４２（図３）がこの別個の挙動を与える。この別個の挙動によって、開発ツール１００は、データ処理システム１０の複数の内部動作の可視性を達成しつつ、他のアプリケーション（ここでは図示せず）に用いるために、データ処理システム１０の見かけ上の通常動作モードを再生する。状況によっては、エミュレーション動作モードを用いなくてもよいが、エミュレーション支援機能即ちトレース能力(tracing capability)はその場合でも必要である。具体的には、ロジック・アナライザを用いてデータ処理システム１０の内部バス・サイクルをトレースする、非エミュレーション環境において、提示サイクル機構はしばしば必要とされる。
【００２８】
提示サイクルは、通常、内部バス・サイクルであり、システム統合回路１６の外部バス回路５２によって外部から駆動され、バス・サイクルの外部可視性を開発ツール１００に与える。図１に示した本発明の実施例では、提示サイクルは、複数の集積回路端子２８の１本を介して、開発ツール１００に与えられる。
なお、中央処理部（ＣＰＵ）１２は、データ処理システム１０が提示サイクルを実行しているとき、複数の制御信号、複数のアドレス値及び複数のデータ値を発生し、これらをシステム統合回路１６に与える。
【００２９】
バスが多重化アドレスおよびデータ情報を通信しない場合、多少変更されたタイミングを提示サイクルに供給することもできる。タイミングを変更して、開発ツール１００外部のデータ処理システム１０のリードまたはライト・サイクルからの内部データを送出する物理的要件を満足するのである。一般的に、データ処理システム１０内部のリード・サイクルからの内部データは、内部バス・サイクルの終了まで有効ではないので、外部データはこのバス・サイクルの終了後まで有効にはならない。実際、バック−ツー−バック・バス・サイクル(back-to-back bus cycle)がある場合、提示サイクルの間に取り出されたデータは、この提示サイクルに続くバス・サイクルの開始後に初めて有効となる。
【００３０】
この動作モードでは、提示サイクルは、データ・ストローブ（ＤＳ）信号がアサートされている間にアドレス・ストローブ（ＡＳ）信号がニゲートされることによって、またはエミュレーション・チップ・セレクト信号の状態によって示される。ＤＳ，ＡＳの各々、およびエミュレーション・チップ・セレクト信号は、複数の集積回路端子２８の各１本を介して、開発ツール１００に供給される。エミュレーション・チップ・セレクト信号は、典型的に、エミュレーション動作モードでのみ使用可能である。多くの場合、アプリケーション（ここでは図示せず）の外部回路は、ＡＳ信号を外部アドレス・デコード回路に組み込むことによって、提示サイクルから保護されている。ＡＳ信号は提示サイクル動作の間アサートされないので、提示サイクルは外部アプリケーションに対して破壊的ではない。
【００３１】
また、本発明のこの実施例は、アドレスおよびデータ情報値が単一バス上で多重化される場合でも、提示サイクルを与えることができる。データをデータ・プロセッサの専用端子に供給しないことにより当該データ・プロセッサのピン数を減少させる場合、提示サイクルおよび他の外部バス・サイクルは、外部多重バス上で実行される。提示および通常サイクルは双方とも多重化バス上で実行される。多重化バスは外部で用いられるが、内部バス・リードおよびライト・サイクルは、多重化されていないバス構成と同じ技術およびタイミングによって発生される。しかしながら、多重化バスと通信する外部装置によって強要される物理的制約のために、多重化バス上で提示サイクルを実施するのは、遥かに複雑である。この場合も、データ処理システム１０内の制約のために、内部リード動作の結果として発生されたデータは、内部バス・サイクルの終了まで有効にはならない。しかしながら、多重化バスの共用という性格のために、外部装置（本発明のこの実施例では開発ツール１００）がデータを得るのが遅れるのでは、適正な動作が望まれる場合十分ではない。非多重化バスが用いられる状況では、システム統合回路１６は、提示サイクルからのデータをデータ・バス上に有効のまま保持しつつ、提示サイクル直後の外部バス・サイクルのために有効アドレスを非多重化アドレス・バス上に自由に送出することができる。しかしながら、多重化バスが用いられる場合、後続のバス・サイクルにおける次のリードまたはライト動作のアドレスが送出される可能性があるので、データを多重化バス上に送出することができない。
【００３２】
したがって、動作の間、多重化提示サイクルは次のバス・サイクルの後半部分を借用する。次の外部バス・サイクルのアドレスは、有効アドレスとして送出され、次のバス・サイクルのアドレス・フェーズ直後で、かつデータ・フェーズの借用が必要となる前の短い期間、外部にラッチされる。かかる動作は、典型的に、多重化メモリ、ＡＣＩＳ（特定用途集積回路）素子、または他の多重化外部素子のいずれかで用いられる。次のバス・サイクルのアドレス・フェーズ直後の短い期間の間に、前の提示サイクルからのデータが、多重化バス上に送出される。本発明のこの実施例では、データ処理システム１０内部のライト動作では、データがバス・サイクルの初期に有効になるので、リード・サイクルと同じタイミングの問題が起こらない。しかしながら、ロジック・アナライザおよびバス・アナライザに一貫性のあるインターフェースを提供するために、ライト提示サイクルは、外部ユーザへのリード提示サイクルと一貫性がある。
【００３３】
非多重化バス上での従来の提示サイクルの場合のように、多重化提示サイクルは、データ・ストローブ（ＤＳ）信号がアサートの間にアドレス・ストローブ（ＡＳ）信号が二ゲートされることによって、またはエミュレーション・チップ・セレクト信号の状態によって示すことができる。エミュレーション・チップ・セレクト信号は、典型的に、エミュレーション動作モードでのみ使用可能である。多くの場合、アプリケーション（ここでは図示せず）の外部回路は、ＡＳ信号を外部アドレス・デコード回路に組み込むことによって、提示サイクルから保護されている。ＡＳ信号は提示サイクル動作の間アサートされないので、提示サイクルは外部アプリケーションに対して破壊的ではない。
【００３４】
データ処理システム１０がエミュレーション動作モードで動作しているとき、システム統合回路１６も、データ処理システム１０内で内部的に実行されるライト動作のリアルタイムでの可視性を与えなければならない。かかるライト動作を外部に与える機能(ability)は、内部動作の外部合成を支援する。開発ツール１００がデータ処理システム１０の内部動作(activity)と適正に同期するために、データ処理システム１０の内部ライト処理の外部可視性は、内部ライト動作の実行と同時に、外部に与えられなければならない。従来の提示サイクル機構を用いる場合、内部ライト動作の間に書き込まれたデータは、次のバス・サイクルおよびリアルタイム・エミュレーションが可能になるまでは、外部には得ることができない。データが外部には供給されず、そのために開発ツール１００が内部ライト動作と同時に動作を再生できない場合、データ処理システム１０と開発ツールとの間の同期が失われる場合がある。
【００３５】
本発明によって提供される解決策は、実際のライト動作が内部で起きている時間中に、内部で書き込まれるデータ値を外部に送出することである。本発明では、内部ライト・サイクルのデータは内部サイクルの初期には分かっているので、この作用は実現可能である。したがって、内部ライト・サイクルのデータは、内部動作の実行と同時に、外部に送出することができる。これにより、開発ツール１００はデータ処理システム１０の内部ライト・サイクル動作を全て、リアルタイムで観察することができる。
【００３６】
図２は、開発ツール１００のバス・アナライザ１０２を、より詳細に示す。バス・アナライザ１０２の動作について、次に詳細に説明する。また、図３ないし図５の回路についても、続いてより詳細に説明する。
【００３７】
システム統合モデュール１６の外部バス回路４２を用いて、開発ツール１００がデータ処理システム１０の内部ライト・サイクル動作を全てリアルタイムで観察できるようにする。図４により詳細に示した外部バス回路４２は、各バス・サイクルがオンチップ・リソース間の内部バス・サイクル、オンチップ・リソース間の外部バス・サイクル、エミュレーション・サイクル、または提示サイクルかを識別することができる。
【００３８】
サイクルが外部バスサイクル、提示サイクル、またはエミュレーション・サイクルである場合、外部バス回路４２は内部動作に関する情報を通信する。かかる情報は、内部アドレス・バス４８、内部制御バス５０、内部データ・バス５２、外部アドレス・バス５４、および外部制御バス５６を通じて転送される。外部バス回路４２は、外部アドレスバス５４と外部制御バス５６とを用い、複数のバス終端４４を介して、複数の集積回路端子２８に情報を通信する。
【００３９】
典型的に、データ処理システム１０の動作は、チップ外の記憶部に記憶されているプログラムの実行、オンチップ・メモリのスタックおよびデータ空間としての利用、および種々のシステム機能のためのオンチップおよびチップ外周辺素子の使用を含む。システム統合回路１６は、典型的に、外部バス機能に対する制御を維持し、外部バスを内部動作から分離しつつ、外部バス回路４２がチップ外のリソースに関連するバス・サイクルを発生できるようにする。しかしながら、エミュレーション動作モードについては、以下で詳細に説明する。
【００４０】
図５は、バス制御回路６０のブロック図を示す。アドレス・レジスタ７２は、タイミング制御回路７８およびレジスタ制御バス７６を通じて転送されたレジスタ制御信号の一部によって指示される適切な時刻に、アドレス情報をラッチする。同様に、データ・レジスタ７４も、タイミング制御回路７８およびレジスタ制御バス７６を通じて転送されたレジスタ制御信号の一部によって指示される適切な時刻に、データ情報をラッチする。更に、指摘すべきことは、タイミング制御回路７８によって供給される複数のタイミング信号、および遅延回路８０によって供給される遅延信号はマルチプレクサ７０に供給され、外部アドレス・バス５４と通信される情報が、アドレス・レジスタ７２またはデータ・レジスタ７４のどちらに結合されるのかを制御することである。
【００４１】
動作の間、外部バス回路４２は、状態機械６２を用いて、外部バス・サイクルを発生する。シャドウ・イネーブル・レジスタ６４内に記憶されているシャドウ・イネーブル・ビットがアサートされると、外部バス回路４２は提示サイクルを発生し、複数の集積回路端子２８を通じて、この提示サイクルを開発ツール１００と通信する。続いて、提示イネーブル・ビットを状態機械６２に供給する。
【００４２】
状態機械６２は、内部制御バス５０、エミュレーション・モード信号、および提示イネーブル信号を受信する。状態機械６２は、複数の状態信号６６を発生し、図６に示した状態図に表されるように、外部バス・サイクルのフェーズおよび機能を制御する。外部制御バス５６によって通信される複数の制御信号および外部アドレス・バス５４によって通信される複数のアドレス信号の挙動は、データ処理システム１０の動作モードによって異なる。動作モードは、提示イネーブル信号の論理値およびエミュレーション・モード信号によって反映される。モードおよび制御の効果について、図７、図８および図９に示した種々のバス・サイクルおよび対応するタイミング図に関連付けて更に論じる。
【００４３】
図６は、状態機械６２の動作を表わす状態図を示す。状態機械６２は、状態Ｓ０，Ｓ１，Ｓ１２，Ｓ１３，Ｓ４，Ｓ５，Ｓ４１，Ｓ４２，Ｓ４３を有する。状態機械６２の各状態は、バス・サイクルの時間間隔を表わす。各状態において数種類の動作が行われる場合もあることを注記しておく。
【００４４】
各バス・サイクルは状態Ｓ０で開始する。状態Ｓ０では、内部アドレスがアドレス・レジスタ７２にラッチされ、外部アドレス・バス５４に送出される。図５の外部制御バス５６を通じて転送されるＲ／反転Ｗ信号は、リードまたはライト動作を指示する論理状態で供給され、アドレス・ラッチ・イネーブル（ＡＬＥ）信号がアサートされる。ＡＬＥ信号は、図５の外部制御バス５６を通じて転送される。状態機械６２は、当該サイクルが、内部サイクル、外部サイクル、提示サイクル、またはエミュレーション・サイクルのどれであるかを判定する。エミュレーション・チップ・セレクト信号は、現行のバス・サイクル・タイプを示すように設定される。エミュレーション・チップ・セレクト信号は、タイミング制御部７８によって供給され、サイクル・タイプを外部に指示する。タイミング制御部７８は、情報制御バス５０を通じて受信された情報および複数の状態信号６６から、エミュレーション・チップ・セレクト信号を発生する。エミュレーション・チップ・セレクト信号は、外部制御バス５６およびバス２８を通じて転送される。
【００４５】
サイクルが内部サイクルで、提示イネーブル信号がアサートされている場合、状態機械６６は状態Ｓ０から状態Ｓ４１に転移し、提示サイクルとして継続する。状態Ｓ４１において、アドレス・ラッチ・イネーブル信号がニゲートされ、データ・ストローブ部（ＤＳ）信号がアサートされる。アドレス・ストローブ（ＡＳ）信号は、この状態では、ニゲートされたままである。アドレス・ストローブおよびデータ・ストローブ信号は、図５の外部制御バス５６を通じて転送される。エミュレーション・モード信号の検査も行われる。外部モード信号がアサートされ、データ処理システム１０がエミュレーションモードにあり、前のサイクルが提示サイクルであることを示す場合、前のバスサイクル中に内部的に転送されデータ・レジスタ７４にラッチされているデータ値が、外部アドレス・バス５４に送出される。
【００４６】
状態Ｓ４２が状態Ｓ４１の後に実行される。状態Ｓ４２では、エミュレーション・モード信号が検査される。エミュレーション・モード信号がニゲートされ、前のサイクルが提示サイクルであった場合、前のバス・サイクルによって転送されデータ・レジスタ７４にラッチされているデータ値が、外部アドレス・バス５４上で多重化される。エミュレーション・モード信号がアサートされ、現行のバス・サイクルがライト・サイクルである場合、内部データがデータレジスタ７４にラッチされる。
【００４７】
状態Ｓ４３が状態Ｓ４２の後に実行される。状態Ｓ４３では、データ・ストローブ（ＤＳ）信号がニゲートされる。エミュレーション・モード信号が再び検査される。エミュレーション・モード信号がアサートされ、現行のサイクルが提示−ライト・サイクルである場合、データ・レジスタ７４にラッチされているデータが、外部アドレス・バス５４上に多重化される。リード・サイクルの場合、またはエミュレーション・モード信号がニゲートされている場合、内部データがデータ・レジスタ７４にラッチされる。状態Ｓ４３が実行された後、状態制御は、次のサイクルの開始のために、状態Ｓ０に戻る。
【００４８】
先に述べたように、状態Ｓ０では、内部アドレスがアドレス・レジスタ７２にラッチされ、外部アドレス・バス５４上に送出される。Ｒ／反転Ｗ信号はリードまたはライトを示すように設定され、アドレス・ラッチ・イネーブル信号がアサートされる。状態機械は、サイクルが、内部サイクル、外部サイクル、提示サイクル、またはエミュレーション・サイクルのどれであるか判定する。エミュレーション・チップ・セレクト信号は、外部制御バス５６上のサイクル・タイプを示すように設定される。
【００４９】
サイクルが内部ではない場合、状態機械６６は制御を状態Ｓ０から状態Ｓ１に転移し、外部サイクルまたはエミュレーション・サイクルとして継続する。状態Ｓ１では、アドレス・ラッチ・イネーブル信号がニゲートされ、アドレス・ストローブ（ＡＳ）信号がアサートされる。データ・ストローブ（ＤＳ）信号は、この状態ではニゲートされたままである。エミュレーション・モード信号の検査も行われる。エミュレーション・モード信号がアサートされ、前のサイクルが提示サイクルであった場合、前のサイクルの間に転送されデータ・レジスタ７４にラッチされているデータ値が、外部アドレス・バス５４上に多重化される。サイクルが外部サイクルの場合、状態Ｓ１２を実行する。サイクルがエミュレーション・サイクルの場合、状態Ｓ４を実行する。
【００５０】
状態Ｓ１２では、エミュレーション・モード信号が検査される。エミュレーション・モード信号がニゲートされ、前のサイクルが提示サイクルであった場合、前のバス・サイクル中に転送されデータ・レジスタ７４にラッチされているデータ値が、外部アドレス・バス５４上に多重化される。次に、状態Ｓ１３を実行する。状態Ｓ１３では、データ・ストローブ（ＤＳ）信号がアサートされる。ライト・サイクルの場合、データ・レジスタ７４にラッチされているデータが外部アドレス・バス５４に転送される。
【００５１】
次に、状態Ｓ４を実行する。状態Ｓ４では、ライト・サイクルが指示されている場合、データ・レジスタ７４にラッチされているデータが外部アドレス５４に転送される。リード・サイクルが指示されている場合、外部データが外部メモリまたは装置によって外部アドレス・バス５４に供給される。外部データはマルチプレクサ７０に供給され、続いてデータ・レジスタ７４にラッチされる。
【００５２】
次に、状態Ｓ５が実行される。状態Ｓ５では、アドレス・ストローブ（ＡＳ）およびデータ・ストローブ（ＤＳ）信号の双方がニゲートされ、外部バス・サイクルの終了を示す。リード・サイクルの場合、データ・レジスタ７４にラッチされているデータが、内部データ・バス５２に送出される。状態Ｓ５の後、次のバス・サイクルの開始のため状態Ｓ０を再び実行する。
【００５３】
状態機械６６および図６の状態図を参照しながら上述したバス・サイクル動作の各々を、図７、図８、および図９に、タイミング図形式で示す。図７、図８、および図９は、提示、エミュレーション、および外部バス・サイクルの様々な組み合わせを例示するものである。図７、図８、および図９の各々において、図６の状態機械６６の状態が、システム・クロック波形の上に示されていることに注意されたい。また、全てのバス・サイクルは状態Ｓ０で開始し、各バス・サイクルの開始時点では、内部アドレス値が有効であることにも注意されたい。加えて、内部データの内部挙動には一貫性がある。内部データは、各ライト・サイクルの第１クロックの第２フェーズの間に有効となり、各リードサイクルの最後のクロックの第２位相の立ち上がりエッジまで有効である。多重化アドレス／データと表記された外部多重化バスは、各バス・サイクルの状態Ｓ０の間、アドレスを供給し、アドレス・ラッチ・イネーブル信号は、外部回路によって有効アドレスをラッチするために用いることができるパルスを供給する。
【００５４】
図７は、２回の連続提示サイクルおよびそれに続く通常外部サイクルの間の、多重化バス上の種々の信号間の時間関係を示す。第１バス・サイクルはリード提示サイクルであり、ニゲートされているアドレス・ストローブ（ＡＳ）信号と、アサートされているデータ・ストローブ（ＤＳ）信号と、アサートされているリード／反転ライト信号とによって、リード・サイクルを示す。最初のバス・サイクルの間、データは多重化バス上には送出されないことに注意されたい。
【００５５】
第２バス・サイクルはライト提示サイクルであり、バス・サイクルの間にニゲートされたＡＳ信号と、アサートされているＤＳ信号と、ニゲートされているリード／反転ライト信号とによって、ライト・サイクルを示す。前の提示サイクルからのデータは、アドレスの後に送出され、状態Ｓ４２において開始し、次のサイクルの開始時に終了する。
【００５６】
一連の提示サイクルの内、第１提示サイクルの間にはデータ・フェーズはない。この一連の提示サイクルの終了時まで、特定の提示サイクルからのデータが、次のバス・サイクルの間に送出される。一連の提示サイクルの終了時に、図７に示されるように、２回のデータ・フェーズによって外部サイクルが実行される。
【００５７】
また、図７は、提示サイクルの後に外部リード・サイクルが続くときの信号間の関係も示す。アドレスは外部リード・サイクルの初期にアサートされラッチされるが、読み取られたデータは、外部リード・サイクルの終了近くまで掲示されない。次に、外部リード・サイクルの中央部の残りの期間を用いて、前の提示サイクルからのデータを表示する。ＤＳ信号は現在のバス・サイクルのステータスを示し、提示サイクルを追跡するための外部機構は、システム・クロック信号と、種々のバス制御信号の現在の状態、および前の提示サイクルの指示を用いて、提示データを適切にラッチすることに注意されたい。
【００５８】
図８は、連続するエミュレーション提示サイクルの後にエミュレーション外部リード・サイクルが続く場合、その間の多重化バス上の様々な信号間の時間関係を示すものである。第１サイクルはリード提示サイクルであり、バス・サイクルの間にニゲートされたＡＳ信号と、アサートされているＤＳ信号と、アサートされているリード／反転ライト信号によって、リードサイクルを示す。エミュレーション・チップ・セレクト信号は、状態Ｓ０ないしＳ４１の間、提示サイクルを示す。エミュレーション・システムのリアルタイム支援のために必要であれば、ＤＳ信号の立ち上がりエッジを用いて、システム・クロックの第２立ち上がりエッジをゲートし、現サイクルのデータをラッチしてもよいことを注記しておく。
【００５９】
第２サイクルはエミュレーション・ライト提示サイクルであり、バス・サイクルの間にニゲートされたＡＳ信号と、アサートされているＤＳ信号と、ニゲートされているリード／反転ライト信号によって、ライト・サイクルを示す。エミュレーション・チップ・セレクト信号は、状態Ｓ０ないしＳ４１の間提示サイクルを示す。前の提示サイクルからのデータが、アドレス値の後に送出される。エミュレーション・システムのリアルタイム支援のために必要であれば、ＤＳ信号の立ち上がりエッジを用いて、システム・クロックの第２立ち上がりエッジをゲートし、現サイクルのデータをラッチしてもよいことを注記しておく。
【００６０】
各エミュレーション・ライト・サイクルは、終了サイクル期間に、現データを供給することに注意されたい。したがって、いずれのエミュレーション・ライト提示サイクルでも、データ・フェーズは２回設けられることになる。
【００６１】
また、図８は、エミュレーション・ライト提示サイクルの後に外部２クロック・エミュレーション・リード・サイクルが続く場合に、この間の信号間の関係も示す。外部２クロック・エミュレーション・リード・サイクルのアドレスがアサートされ、バス・サイクルの初期にラッチされるが、読み取られたデータは、サイクル（Ｓ４）の終了近くまで掲示されない。次に、バスサイクル（時として、Ｓ１からＳ４までの期間）の中央部の残りの期間を用いて、前のエミュレーション提示サイクルからのデータを表示する。提示サイクルに続く（３クロック）外部サイクルとは異なり、ＤＳ信号はアサートされないことに注意されたい。しかしながら、ＡＳ信号は現行のバス・サイクルにストローブ信号を供給し、メモリ・インターフェースがこのストローブ信号をＲ／反転Ｗおよびその他のタイミング信号と組み合わせて用い、効果的にリード・ストローブ信号を形成することができる。バス・サイクルを追跡する外部機構は、システムクロック、種々のバス制御信号の現在の状態、および前のエミュレーション提示サイクルの指示を用いて、外部サイクルの間に送出されるエミュレーション・データを適切にラッチしなければならない。
【００６２】
図９は、一連の提示サイクルの後に外部２クロック・ライト・サイクルが続く場合の、サイクル間の関係を示す。第１サイクルはエミュレーション・リード提示サイクルであり、バス・サイクルの間にニゲートされたＡＳ信号と、アサートされているＤＳ信号と、アサートされているリード／反転ライト信号とによって、リード・サイクルを示す。エミュレーション・チップ・セレクト信号は、状態Ｓ０ないしＳ４１の間提示サイクルを示す。エミュレーション・システムのリアルタイム支援のために必要であれば、ＤＳ信号の立ち上がりエッジを用いてシステム・クロックの第２立ち上がりエッジをゲートし、現サイクルのデータをラッチしてもよいことを注記しておく。
【００６３】
第２サイクルはエミュレーション・ライト提示サイクルであり、バス・サイクルの間にニゲートされたＡＳ信号と、アサートされているＤＳ信号と、ニゲートされているリード／反転ライト信号とによって、ライト・サイクルを示す。エミュレーション・チップ・セレクト信号は、状態Ｓ０ないしＳ４１の間、提示サイクルを示す。前のエミュレーション・サイクルからのデータは、アドレス値の後に送出される。エミュレーション・システムのリアルタイム支援のために必要であれば、ＤＳ信号の立ち上がりエッジを用いてシステム・クロックの第２立ち上がりエッジをゲートし、現サイクルのデータをラッチしてもよいことを注記しておく。各エミュレーション・ライト提示サイクルは、終了サイクル期間に、現データを提供することに注意されたい。
【００６４】
図８は、エミュレーション・ライト提示サイクルの次に外部ライト・サイクルが続く場合の信号間の関係も示す。エミュレーション外部サイクルのアドレスは外部でアサートされ、バス・サイクルの初期にラッチされるが、ライトデータは、サイクル（Ｓ４）の終了近くまで掲示されない。次に、バス・サイクル（時として、Ｓ１からＳ４までの期間）の中央の残りの期間を用いて、前のエミュレーション提示サイクルからのデータを表示する。提示サイクルに続く（３クロック）外部サイクルとは異なり、ＤＳ信号はアサートされないことに注意されたい。しかしながら、ＡＳ信号は現行のバス・サイクルにストローブ信号を供給し、メモリ・インターフェースがこのストローム信号をＲ／反転Ｗおよびその他のタイミング信号と組み合わせて用い、効果的にリード・ストローブ信号を形成することができる。バス・サイクルを追跡する外部機構は、システムクロック、種々のバス制御信号の現在の状態、および前のエミュレーション提示サイクルの指示を用いて、外部サイクルの間に送出されるエミュレーション・データを適切にラッチしなければならない。
【００６５】
これまでの動作を総括するために、図１ないし図９の各々を組み込んで、本発明の動作の詳細な説明を行う。ここに例示した本発明実施例の動作の間、開発ツール１００のバス・アナライザ１０２が図２の外部バス制御回路１０３、バス・デマルチプレクサ１０４、ステージＡレジスタ１０６、ステージＢレジスタ１０８、マルチプレクサ１１０、ラッチ１１２、およびトレース・バッファ１１４を用いることによって、標準的な多重化提示サイクルがデコードされる。
【００６６】
一連のバス・サイクルのタイプによって、２つの動作モードがある。これらの動作モードの主な相違は、提示サイクルに先立つバス・サイクルには２回のデータ・フェーズがあり、これによって高速多重化バス上での効果的な提示サイクルの使用を可能にするという点にある。
【００６７】
多重化提示サイクルの前に多重化提示サイクルがあり、その後ろに通常モードの多重化外部サイクルが続くとき、図７に示したタイミングに類似したものが用いられる。第１バス・サイクルの間、ＡＳ信号はニゲートされている。ＤＳ信号は状態Ｓ４１でアサートされ、状態Ｓ４３でニゲートされる。このＡＳおよびＤＳ信号の連続的なアサートおよびニゲートによって、第１サイクルが提示サイクルであることが示される。状態Ｓ０において、第１サイクルのアドレスＡ１が、多重化アドレス／データ上に現れる。多重化アドレス／データと外部アドレス・バス１０５は、本明細書では相互交換可能に用いられている。外部制御バス５６およびバス２８を通じて転送されたアドレス・ラッチ・イネーブルは、状態Ｓ０でアサートされ、状態Ｓ１でニゲートされ、多重化アドレス／データ上のアドレスが有効であることを示す。図２のバス・アナライザ１０２では、外部アドレス・バス１０５によって通信された値が、デマルチプレクサ１０４を通じてアドレス・アウト信号に導かれ、パイプラインの第１段である状態Ａレジスタ１０６にラッチされ、そこにアドレス値が一時的に記憶される。
【００６８】
第２バス・サイクルの間、ＡＳ信号はニゲートされている。ＤＳ信号は状態Ｓ４１でアサートされ、Ｓ４３でニゲートされる。ＡＳおよびＤＳ信号のニゲートおよびアサート間の関係によって、第２サイクルも提示サイクルであることが示される。第２状態Ｓ０において、第２バス・サイクルのアドレスＡ２が、多重化アドレス／データ端子上に現れる。アドレス・ラッチ・イネーブル信号は、状態Ｓ０でアサートされ、状態Ｓ１でニゲートされることにより、外部アドレス・バス１０５上の多重化アドレス／データ端子上のアドレスが有効であることを示す。外部アドレス・バス１０５はアドレス・アウト信号線に導かれる。状態Ａレジスタ１０６（Ａ１）にラッチされているアドレスは、状態Ｂレジスタ１０８に転送され、第２サイクルのアドレスＡ２は、外部アドレス・バス１０５上に現れ、パイプラインの第１段にラッチされ、その中に保持される。
【００６９】
提示ライト・サイクルの状態Ｓ４２，Ｓ４３の間、第１バス・サイクルＤ１のデータは外部アドレス・バス１０５上に現れる。外部アドレス・バス１０５は、出力データ信号線に導かれる。マルチプレクサ１１０は、アドレスＡ１をステージＢレジスタ１０８からパイプライン・アドレスに導く。状態Ｓ４２の終了までに、出力データ信号線上にあるデータＤ１、およびパイプライン・アドレス・バス上にあるアドレス（Ａ１）は、ラッチ１１２にラッチされ、続いてトレース・バッファ１１４に転送される。
【００７０】
第３バス・サイクルの間、ＡＳおよびＤＳ信号は双方ともアサートされている。ＡＳおよびＤＳ信号のニゲートおよびアサート間の関係によって、このサイクルが外部バス・サイクルであることが示される。状態Ｓ０において、第３サイクルのアドレスＡ３が、外部アドレス・バス１０５上に現れる。アドレス・ラッチ・イネーブル信号は、状態Ｓ０でアサートされ、状態Ｓ１でニゲートされることにより、外部アドレス・バス上のアドレスが有効であることが示される。外部アドレス・バス１０５によって通信される値は、アドレス・アウト信号線に導かれる。ステージＡレジスタ１０６（Ａ２）にラッチされているアドレスは、ステージＢレジスタ１０８に転送され、第３サイクルのアドレスＡ３が外部アドレス・バス１０５上に現れ、パイプラインの第１段にラッチされ、その中に保持される。第３バス・サイクル（外部リード・サイクル）の状態Ｓ１２，Ｓ１３の間、第２バス・サイクルのデータＤ２は、外部アドレス・バス１０５によって通信される。続いて、データＤ２は出力データ・バス信号線に導かれる。マルチプレクサ１１０は、アドレスＡ２をステージＢレジスタ１０８からパイプライン・アドレスに導く。状態Ｓ１２の実行終了時には、出力データ信号線上にあるデータＤ２およびパイプライン・アドレス信号線上にあるアドレスＡ２は、ラッチ１１２にラッチされ、続いてトレース・バッファ１１４に転送される。
【００７１】
リード・サイクルの状態Ｓ４において、外部メモリまたは装置によって外部アドレス・バス１０５上にデータが提供される。外部アドレス・バス１０５は、出力データ信号線に導かれる。マルチプレクサ１１０は、アドレスＡ３をステージＡレジスタからパイプライン・アドレス信号線に導く。状態Ｓ４の終了時までに、出力データ信号線上にあるデータＤ３、およびパイプライン・アドレス信号線上にあるアドレスＡ３がラッチ１１２にラッチされ、続いてトレース・バッファ１１４に転送される。
【００７２】
上述のバス・サイクルの間、リード／反転ライト信号は、バス・サイクルがリード・サイクルなのか、あるいはライト・サイクルなのかを示す。
【００７３】
エミュレーション提示ライト・サイクルの前にエミュレーション提示リード・サイクルがあり、その後ろにエミュレーション・モードの多重化外部リード・サイクルがあるとき、図８に示したタイミングに類似したものが用いられる。第１バス・サイクルの間、ＡＳ信号はニゲートされている。ＤＳ信号は、状態Ｓ４２でアサートされ、状態Ｓ４３でニゲートされる。ＡＳおよびＤＳ信号のニゲートおよびアサート間の関係によって、この第１バス・サイクルが提示サイクルであることが示される。状態Ｓ０において、第１バス・サイクルのアドレスＡ１が外部アドレス・バス１０５上で通信される。アドレス・ラッチ・イネーブル信号が状態Ｓ０でアサートされ、状態Ｓ１でニゲートされることにより、外部アドレス・バス１０５上のアドレスが有効であることが示される。外部アドレス・バス１０５は、アドレス・アウト信号線に導かれ、状態Ｓ０の終了時までにパイプラインの第１段である状態Ａレジスタ１０６にラッチされ、その中に一時的に保持される。
【００７４】
第２バス・サイクルの間、ＡＳ信号はニゲートされている。ＤＳ信号は、状態Ｓ４１でアサートされ、状態Ｓ４３でニゲートされる。ＡＳおよびＤＳ信号のニゲートおよびアサート間の関係によって、この第２バス・サイクルも提示サイクルであることが示される。第２状態Ｓ０において、第２バス・サイクルのアドレスＡ２が外部アドレス・バス１０５上に現れる。アドレス・ラッチ・イネーブル信号は、状態Ｓ０でアサートされ、状態Ｓ１でニゲートされることによって、外部アドレス・バス１０５上のアドレスが有効であることが示される。外部アドレス・バス１０５５によって転送されるアドレス値は、アドレス・アウト信号線に導かれる。パイプラインの第１段（ステージＡレジスタ１０６）にラッチされているアドレス（Ａ１）は、第２段（ステージＢレジスタ１０８）に転送され、第２バス・サイクルのアドレス（Ａ２）は外部アドレス・バス１０５上に現れ、状態Ｓ０でパイプラインの第１段にラッチされ、その中に一時的に記憶される。
【００７５】
第２バス・サイクル、即ち、提示ライト・サイクルの状態Ｓ４１，Ｓ４２の間、第１バス・サイクルのデータ値Ｄ１が外部アドレス・バス１０５によって転送される。データ値Ｄ１は、続いて、出力データ信号線に導かれる。マルチプレクサ１１０は、アドレスＡ１をステージＢレジスタ１０８からパイプライン・アドレス信号線に導く。状態Ｓ４１の終了時までに、出力データ信号線上にあるデータＤ１、およびパイプライン・アドレス信号線上にあるアドレスＡ１は、ラッチ１１２にラッチされ、更にトレース・バッファ１１４に記憶される。
【００７６】
第２バス・サイクル、即ち、ライト提示サイクルの状態Ｓ４３の間、第２バス・サイクルのデータＤ２が外部アドレス・バス１０５上に現れる。通常、データが内部レジスタ（ここでは図示しない）にラッチされるのはこのときである。データが内部的に書き込まれるのと同時にデータを外部に供給することによって、開発ツール１００は、データ処理システム１０の内部動作をリアルタイムに再生することができる。同一データＤ２が、リード・サイクルのタイミングに類似したタイミング構成を用いて、外部アドレス・バス１０５上にも供給されることを注記しておく。したがって、この時データをトレース・バッファ１１４にラッチする必要はない。
【００７７】
第３バス・サイクルの間、ＡＳ信号がアサートされ、このサイクルが外部バス・サイクルであることが示される。状態Ｓ０において、第３バス・サイクルのアドレスＡ３が、外部アドレス・バス１０５を通じて通信される。アドレス・ラッチ・イネーブル信号は、状態Ｓ０でアサートされ、状態Ｓ１でニゲートされることによって、外部アドレス・バス１０５上のアドレスが有効であることが示される。外部アドレス・バス１０５を通じて転送されたアドレスは、続いてアドレス・アウト信号線に導かれる。パイプラインの第１段にラッチされているアドレス（Ａ２）は第２段に転送され、第３バス・サイクルのアドレス（Ａ３）が外部アドレス・バス１０５を通じて転送される。第３バス・サイクルのアドレス（Ａ３）は、状態Ｓ０の終了時までに、パイプラインの第１段にラッチされ、この中に一時的に記憶される。第３バス・サイクル、即ち、外部リード・サイクルの状態Ｓ１の間、第２バス・サイクルのデータＤ２が外部アドレス・バス１０５上に現れる。データＤ２は続いて出力データ信号線に導かれる。マルチプレクサ１１０は、状態Ｂレジスタ１０８に記憶されているアドレスＡ２をパイプライン・アドレス信号線に導く。状態Ｓ１の終了時までに、出力データ信号線上にあるデータＤ２と、パイプライン・アドレス信号線上にあるアドレスＡ２は、ラッチ１１２にラッチされ、更にトレース・バッファ１１４に記憶される。第２バス・サイクル、即ち、ライト提示サイクルのアドレスおよびデータは、第１バス・サイクル、即ち、リード提示サイクルのタイミングに類似したものを用いて、ラッチ１１２にラッチされることを注記しておく。
【００７８】
外部リード・サイクルの状態Ｓ４において、外部メモリまたは装置（ここでは図示しない）によって、データが外部アドレス・バス１０５に転送される。外部アドレス・バス１０５は出力データ信号線に導かれる。マルチプレクサ１１０は、アドレスＡ３をステージＡレジスタ１０６からパイプライン・アドレス信号線に導く。状態Ｓ４の終了時までに、出力データ信号線上にあるデータＤ３、およびパイプライン・アドレス信号線上にあるアドレスＡ３が、ラッチ１１２にラッチされ、更にトレース・バッファ１１４に記憶される。
【００７９】
上述のバス・サイクルの間、リード／反転ライト信号は、当該バス・サイクルがリード・サイクルなのか、あるいはライト・サイクルなのかを示す。状態Ｓ０の立ち下がりエッジの間、エミュレーション・チップ・セレクト信号の状態は、サイクルが、通常外部サイクル、エミュレーション・サイクル、または提示サイクルの内のどれであるかを示す。
【００８０】
エミュレーション提示ライト・サイクルの前にエミュレーション提示リード・サイクルがあり、その後にエミュレーション・モードの多重化外部ライト・サイクルが続くとき、図９のタイミングに対応するものが用いられる。第１バス・サイクルの間、ＡＳ信号はニゲートされている。ＤＳ信号は状態Ｓ４１でアサートされ、状態Ｓ４３でニゲートされる。ＡＳおよびＤＳ信号のニゲートおよびアサート間の関係によって、この第１バス・サイクルが提示サイクルであることが示される。状態Ｓ０において、第１バス・サイクルのアドレスＡ１が外部アドレス・バス１０５上を転送される。アドレス・ラッチ・イネーブル信号は、状態Ｓ０でアサートされ、状態Ｓ１でニゲートされることにより、外部アドレス・バス１０５上のアドレスが有効であることが示される。外部アドレス・バス１０５を通じて転送されたアドレスは、アドレス・アウト信号線に導かれ、パイプラインの第１段にラッチされ、状態Ｓ０の終了時に一時的に記憶される。
【００８１】
第２バス・サイクルの間、ＡＳ信号はニゲートされている。ＤＳ信号は、状態Ｓ４１でアサートされ、状態Ｓ４３でニゲートされる。ＡＳおよびＤＳ信号のニゲートおよびアサート間の関係によって、この第２バス・サイクルも提示サイクルであることが示される。第２状態Ｓ０において、第２バス・サイクルのアドレスＡ２は外部アドレス・バス１０５上を転送される。アドレス・ラッチ・イネーブル信号は、状態Ｓ０でアサートされ、状態Ｓ１でニゲートされることにより、外部アドレス・バス１０５上のアドレスが有効であることが示される。外部アドレス・バス１０５上のアドレスは、アドレス・アウト信号線に導かれる。第１段にラッチされているアドレスＡ１は、第２段に転送され、第２バス・サイクルのアドレスＡ２は外部アドレス・バス１０５に転送され、状態Ｓ０の終了時までにパイプラインの第１段にラッチされ、その中に一時的に記憶される。
【００８２】
第２バス・サイクル、即ち、提示ライトの状態Ｓ４１，Ｓ４２の間に、第１バス・サイクルのデータＤ１は外部アドレス・バス１０５に転送される。Ｄ１値は、外部アドレス・バス１０５によって、出力データ信号線に転送される。マルチプレクサ１１０は、アドレスＡ１をステージＢレジスタ１０８から、パイプライン・アドレス信号線に導く。状態Ｓ４１の終了時までに、出力データ信号線上にあるデータＤ１、およびパイプライン・アドレス信号線上のアドレスＡ１は、ラッチ１１２にラッチされ、更にトレース・バッファ１１４に記憶される。
【００８３】
第２バス・サイクル、即ち、ライト提示サイクルの状態Ｓ４３の間、第２バス・サイクルのデータＤ２は外部アドレス・バス１０５上にある。通常、データはこの時点で、内部レジスタ（ここでは示さない）にラッチされる。内部的に書き込まれるのと同時に外部にデータを提供することによって、開発ツール１００は、データ処理システム１０の内部動作を同時に再生することができる。リード・サイクルに類似したタイミングを用いて、同一データＤ２が再び外部アドレス・バス１０５を通じて供給されることを注記しておく。したがって、このときは、データをトレース・バッファ１１４にラッチする必要はない。
【００８４】
第３バス・サイクルの間、ＡＳ信号がアサートされ、このサイクルが外部バス・サイクルであることを示す。状態Ｓ０において、第３バス・サイクルのアドレスＡ３は外部アドレス・バス１０５上に現れる。アドレス・ラッチ・イネーブル信号は、状態Ｓ０でアサートされ、状態Ｓ１でニゲートされることにより、外部アドレス・バス１０５上のアドレスが有効であることが示される。外部アドレス・バス１０５上を転送されるアドレスは、アドレス・アウト信号線に導かれる。第１段にラッチされているアドレスＡ２は、第３段に転送され、第３バス・サイクルのアドレスＡ３が外部アドレス・バス１０５に転送される。状態Ｓ０の終了時までに、アドレスＡ３はパイプラインの第１段にラッチされ、その中に保持される。第３バス・サイクル、即ち、外部ライト・サイクルの第１状態の間、第２バス・サイクルのデータＤ２が外部アドレス・バス１０５上に現れる。外部アドレス・バス１０５を通じて転送されるアドレスは、出力データ信号線に導かれる。マルチプレクサ１１０は、アドレスＡ２をステージＢレジスタ１０８からパイプライン・アドレス信号線に導く。状態Ｓ１の終了時までに、出力データ信号線上にあるデータＤ２、およびパイプライン・アドレス信号線上にあるアドレスＡ２は、ラッチ１１２にラッチされ、更にトレース・バッファ１１４に記憶される。第２バス・サイクル、即ち、ライト提示サイクルのアドレスおよびデータは、第１バス・サイクル、即ち、リード提示サイクルのタイミングに類似したものを用いて、ラッチ１１２にラッチされることを注記しておく。
【００８５】
外部ライト・サイクルの状態Ｓ４において、データが外部アドレス・バス１０５に供給される。外部アドレス・バス１０５に供給されたアドレスは、出力データ信号線に導かれる。マルチプレクサ１１０は、アドレスＡ３をステージＡレジスタ１０６からパイプライン・アドレス信号線に導く。状態Ｓ４の終了時には、出力データ信号線上にあるデータＤ３、およびパイプライン・アドレス信号線上にあるアドレスＡ３は、ラッチ１１２にラッチされ、更にトレース・バッファ１１４に記憶される。
【００８６】
上述のバス・サイクルの間、リード／反転ライト信号は、当該バス・サイクルがリード・サイクルなのか、あるいはライト・サイクルなのかを示す。状態Ｓ０の立ち下がりエッジの間エミュレーション・チップ・セレクト信号の状態は、サイクルが、通常外部サイクル、エミュレーション・サイクル、または提示サイクルのどれであるかを示す。
【００８７】
一般的に、エミュレーション・サイクルを用いて、外部シャドウ・レジスタを使用して、データ処理システム１０の内部機能の制御を追跡する。エミュレーション・チップ・セレクト信号は、多重化バス・サイクルのラッチされたアドレス・フェーズと同時にデコードされ、シャドウ・レジスタのアドレスを発生する。シャドウ・レジスタは、外部合成回路と関連付けられており、外部合成回路は、内部データ処理機能との同期を保持するためには、制御変化のリアルタイムでの可視性を必要とする。典型的な開発ツールはこの機構を利用して、個々の機能を支援する。これらの機能は各々、基本的なアーキテクチャが同一のシャドウ・レジスタを有し(exhibit)、内部機能の挙動をリアルタイムで追跡しなければならない外部機能を制御する、内部レジスタの複製をリアルタイムで提供する。これらの機能は、エミュレーション・サイクルが提供するリアルタイムでの内部ライトの可視性に基づいて実行される。
【００８８】
本発明は、２つの動作モードに分離することもできる。第１モードは、ロジック・アナライザへのインターフェースのために、多重化バス上の標準提示サイクルを支援するものである。第２モードは、多重化バス上の制御機能をリアルタイムで追跡する、エミュレーション・ツールを支援するものである。第１モードは、低価格ＭＣＵインターフェース・ツールをタイミング・アナライザと共に用い、システムのソフトウエアおよびハードウエアのデバッグを行う際に、盛んに用いられている。第２モードは、主に、回路内エミュレーション・システムを用いた、ファームウエアのデバッグに用いられるものであり、バス・アナライザおよびその他の様々なシステム分析機能を提供する。
【００８９】
多重化アドレスおよびデータバスは、データ処理装置のピン数を制限するために、データ処理装置内で用いられている。しかしながら、端子数が少ない高級データ・プロセッサを必要とするアプリケーションの出現により、内部動作の外部可視性が制限されるというような、新たな問題に出くわすことになった。本発明は、独特のタイミング機構を提供することによって、かかる技術的困難に対する独特の解決策を示すものである。
【００９０】
更に、ここに記載した発明の実施形態は、一例として提供したに過ぎない。ここに記載した機能を実行するための実施形態は、他にも多量に存在し得る。例えば、開発ツールは、図２に示したアーキテクチャとはことなるアーキテクチャを有してもよい。図２は、開発ツールの１形式の例に過ぎない。加えて、外部制御バス５６を通じて転送される制御信号は、ここに開示した信号以外の信号を追加して含めてもよい。同様に、外部制御バス５６を通じて転送される制御信号は、異なるタイミングを有し、異なる機能を実行するものでもよい。エミュレーション・チップ・セレクト信号は、ここでは詳細に説明しなかったが、バス・サイクルのタイプを示すことができる。更に、状態機械６２も、図６に示された状態より多くても少なくてもよく、また異なるタイミング・パスを有してもよい。また、異なる制御を実施して、ここに開示した状態機械の代わりに用いてもよい。
【００９１】
以上本発明の原理について説明してきたが、この説明は一例としてのみ記載されたものであり、本発明の限定を意味するものではないことは、当業者には明白に理解されよう。したがって、本発明の真の精神および範囲に該当する本発明の全ての変更は、特許請求の範囲に含まれることを意図するものである。
【図面の簡単な説明】
【図１】本発明による開発システムを示す図。
【図２】図１の開発システムのバス・アナライザを示す図。
【図３】図１のデータ処理システムのシステム統合回路を示す図。
【図４】図３のシステム統合回路の外部バス回路を示す図。
【図５】図４の外部バス回路のバス制御回路を示す図。
【図６】図４の外部バス回路の状態機械を示す図。
【図７】第１動作モードを示す第１タイミング図。
【図８】第２動作モードを示す第２タイミング図。
【図９】第３動作モードの間に発生される複数の信号を示すタイミング図。
【符号の説明】
５  開発システム
１０  データ処理システム
１２  中央処理部
１６  システム統合回路
１４  タイマ回路
１８  直列通信回路
２０  アナログ／デジタル変換器
２２  スタティック・ランダム・アクセス・メモリ
２４，２６，３０，３２，３４  集積回路端子
２８  バス
３６  バス
４０  バス・インターフェース・ユニット
４２  外部バス制御部
４４  バス終端
４８  内部アドレス・バス
５０  内部制御バス
５２  内部データ・バス
５４  外部アドレス・バス
５６  外部制御バス
６０  バス制御回路
６２  状態機械
６４  提示イネーブル・レジスタ
６６  状態信号バス
７０  マルチプレクサ
７１  アドレス・バス
７２  アドレス・レジスタ
７３  データ・バス
７４  データ・レジスタ
７６  レジスタ制御バス
７８  タイミング制御回路
８０  遅延回路
１００  開発ツール
１０２  バス・アナライザ回路
１０３  外部バス制御回路
１０４  デマルチプレクサ
１０５  外部アドレスバス
１０６  ステージＡ制御レジスタ
１０８  ステージＢレジスタ
１１０  マルチプレクサ
１１２  ラッチ
１１４  トレース・バッファ
【図１】
0003901759.tif 000002
【図２】
0003901759.tif 000003
【図３】
0003901759.tif 000004
【図４】
0003901759.tif 000005
【図５】
0003901759.tif 000006
【図６】
0003901759.tif 000007
【図７】
0003901759.tif 000008
【図８】
0003901759.tif 000009
【図９】
0003901759.tif 000010