(57)【要約】  複数の新規のスヌープトランザクションタイプ（６０）が記載される。その一部がリクエスト内にアドレス情報を含み、その他がリクエスト内にキャッシュエントリ情報を含む。一部の応答（６１）がタグアドレス情報を含み、一部の応答は含まない。一部が、トランザクションのデータ部中にデータバスライン（４１）上でタグアドレス内容を提供する。これらの新規のスヌープトランザクションタイプは、データ処理システムのデバッグ中に極めて有用である。【選択図】図１
2010527488.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュ方法であって、
前記キャッシュのキャッシュエントリの少なくとも一部分を提供するリクエストの受け取りに応答して、前記キャッシュエントリがダーティか否かに関わらず、前記キャッシュエントリの状態を変更することなく前記キャッシュエントリの少なくとも一部分を提供する段階を含む、
ことを特徴とする方法。
【請求項２】
前記キャッシュエントリの少なくとも一部分が、バイト、ワード、又は倍長語を含む、
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記キャッシュエントリの状態が、無効状態、共有状態、排他的未変更状態、及び排他的変更状態のうちの少なくとも１つを含む、
ことを特徴とする請求項１に記載の方法。
【請求項４】
前記少なくとも一部分を提供するリクエストが、対応するアドレスを有する、
ことを特徴とする請求項１に記載の方法。
【請求項５】
前記少なくとも一部分を提供するリクエストが、対応するターゲット指定子及び対応するキャッシュ指定子を有する、
ことを特徴とする請求項１に記載の方法。
【請求項６】
前記ターゲット指定子が、前記リクエストを送出するデバイスに結合された複数のターゲットデバイスからターゲットデバイスを選択するのに用いられ、前記キャッシュ指定子が、前記選択されたターゲットデバイス内部からキャッシュを選択するのに用いられる、
ことを特徴とする請求項５に記載の方法。
【請求項７】
前記キャッシュエントリの少なくとも一部分を提供するリクエストをデバッグ回路構成から受け取る段階を更に含む、
ことを特徴とする請求項１に記載の方法。
【請求項８】
前記キャッシュエントリの少なくとも一部分を提供するリクエストを、バスブリッジ、ダイレクトメモリアクセスコントローラ、及びプロセッサのうちの少なくとも１つから受け取る段階を更に含む、
ことを特徴とする請求項１に記載の方法。
【請求項９】
前記キャッシュに関連するメモリを変更することなく、前記キャッシュエントリの少なくとも一部分を提供する段階を更に含む、
ことを特徴とする請求項１に記載の方法。
【請求項１０】
前記キャッシュエントリの少なくとも一部分を提供するリクエストが、複数のキャッシュによって受け取られ、前記キャッシュエントリの少なくとも一部分を提供する前記段階が、前記複数のキャッシュのうちの１つだけによって実行される、
ことを特徴とする請求項１に記載の方法。
【請求項１１】
前記キャッシュエントリの少なくとも一部分を提供するリクエストが、複数のキャッシュによって受け取られ、前記キャッシュエントリの状態は共有され、前記少なくとも１つのキャッシュエントリを提供する前記段階が、前記複数のキャッシュのうちの１つだけによって実行される、
ことを特徴とする請求項１に記載の方法。
【請求項１２】
キャッシュ方法であって、
前記キャッシュのキャッシュエントリの少なくとも一部分を提供するリクエストの受け取りに応答して、前記キャッシュエントリの状態に関わらず、前記キャッシュエントリの状態を変更することなく前記キャッシュエントリの少なくとも一部分を提供する段階を含む、
ことを特徴とする方法。
【請求項１３】
前記キャッシュエントリの少なくとも一部分が、バイト、ワード、又は倍長語を含む、
ことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記キャッシュエントリの状態が、無効状態、共有状態、排他的未変更状態、及び排他的変更状態のうちの少なくとも１つを含む、
ことを特徴とする請求項１２に記載の方法。
【請求項１５】
前記少なくとも一部分を提供するリクエストが、対応するアドレスを有する、
ことを特徴とする請求項１２に記載の方法。
【請求項１６】
前記少なくとも一部分を提供するリクエストが、対応するターゲット指定子及び対応するキャッシュ指定子を有する、
ことを特徴とする請求項１２に記載の方法。
【請求項１７】
前記ターゲット指定子が、前記リクエストを送出するデバイスに結合された複数のターゲットデバイスからターゲットデバイスを選択するのに用いられ、前記キャッシュ指定子が、前記選択されたターゲットデバイス内部からキャッシュを選択するのに用いられる、
ことを特徴とする請求項１６に記載の方法。
【請求項１８】
前記キャッシュエントリの少なくとも一部分を提供するリクエストをデバッグ回路構成から受け取る段階を更に含む、
ことを特徴とする請求項１２に記載の方法。
【請求項１９】
前記キャッシュエントリの少なくとも一部分を提供するリクエストを、バスブリッジ、ダイレクトメモリアクセスコントローラ、及びプロセッサのうちの少なくとも１つから受け取る段階を更に含む、
ことを特徴とする請求項１２に記載の方法。
【請求項２０】
前記キャッシュに関連するメモリを変更することなく、前記キャッシュエントリの少なくとも一部分を提供する段階を更に含む、
ことを特徴とする請求項１２に記載の方法。
【請求項２１】
前記キャッシュエントリの少なくとも一部分を提供するリクエストが、複数のキャッシュによって受け取られ、前記キャッシュエントリの少なくとも一部分を提供する前記段階が、前記複数のキャッシュのうちの１つだけによって実行される、
ことを特徴とする請求項１２に記載の方法。
【請求項２２】
前記キャッシュエントリの少なくとも一部分を提供するリクエストが、複数のキャッシュによって受け取られ、前記キャッシュエントリの状態は共有され、前記少なくとも１つのキャッシュエントリを提供する前記段階が、前記複数のキャッシュのうちの１つだけによって実行される、
ことを特徴とする請求項１２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般にキャッシュに関し、より具体的には、データ処理システムにおけるキャッシュトランザクションに関する。
【背景技術】
【０００２】
集積回路上に形成される現行のデータ処理システムにおいて、メモリ内の１つ又はそれ以上の変数の現在の値は、キャッシュ又はキャッシュ階層によりアクセスから隠されることがあり、リアルタイムデバッガにこれらの変数の現在の値を見えるようにするのは困難な場合が多い。現在のところ、リアルタイムデバッグ処理において、変数がキャッシュに格納されている場合、デバッガは、プロセッサを一時停止させてキャッシュから値を抽出する極めて侵入型の動作セットがなければ、変数の最新の値にアクセスすることはできない。プロセッサとデバッガとの間にキャッシュ階層が存在する場合、問題は更に深刻である。また、現行の方法は、キャッシュの状態に影響を与える場合があり、これは通常、デバッグコンテキストに弊害をもたらす。例えば、キャッシュの状態が影響を受ける場合、キャッシュ状態の相違の結果として、特定のデバッグ問題が同じようには明らかにされない場合がある。
【０００３】
本発明は、例証として説明され、同じ参照符号が同じ要素を示す添付図面によって限定されるものではない。図中の要素は、簡潔且つ明確にするために示しており、必ずしも縮尺どおりに描かれていない。
【図面の簡単な説明】
【０００４】
【図１】本発明の一実施形態によるデータ処理システムをブロック図形式で示した図である。
【図２】本発明の一実施形態による図１のプロセッサ１１及び／又はプロセッサ１２の一部分をブロック図形式で示した図である。
【図３】本発明の一実施形態によるキャッシュ状態定義の一覧を表形式で示した図である。
【図４】本発明の一実施形態によるキャッシュコヒーレンシ状態図の一部分を状態図形式で示した図である。
【図５】本発明の一実施形態による複数のスヌープバスコマンドを表形式で示した図である。
【図６】本発明の一実施形態によりスヌープバスコマンド中にバス上で提供される情報を表形式で示した図である。
【発明を実施するための形態】
【０００５】
複数の新規のスヌープバスコマンド又は新規のスヌープトランザクションタイプ、及びこれらを使用するためのサポート用ロジック及びフレームワークについて本明細書で説明する。一実施形態において、「ｓｈｏｗ  ｌｉｎｅ（ライン表示）」及び「ｓｈｏｗ  ｄｏｕｂｌｅｗｏｒｄ（倍長語表示）」スヌープトランザクションを提供し、変数の最新の値がキャッシュに格納されていても、デバッグ回路構成（例えば、図１の１４）が、これらの変数の最新の値にアクセスし、又はキャッシュ内容を抽出できるようにする。一実施形態において、これらのスヌープトランザクションは、幾つかの観点で（例えば、関与するバスマスタによってスヌープルックアップが実行される点で）既存のスヌープトランザクションタイプのように動作する。しかしながら、新規のスヌープバスコマンドでは、ルックアップの結果は、変更されたラインへのヒットの場合だけでなく、あらゆるヒットに対してスヌープ応答トランザクションがリクエストされることになる。この応答により、キャッシュに格納された倍長語又はキャッシュライン全体の内容がバス（例えば、図１の２０）上に配置されるようになり、従って、デバッグ回路構成（例えば、図１の１４）によるキャプチャに利用可能となる。図示の実施形態において、新規のスヌープトランザクションタイプは、「ｓｈｏｗ＿ｌｉｎｅ（ライン表示）」、「ｓｈｏｗ  ｄｏｕｂｌｅｗｏｒｄ（倍長語表示）」「ｓｈｏｗ＿ｔａｒｇｅｔ＿ｌｉｎｅ（ターゲットライン表示）」、及び「ｓｈｏｗ＿ｔａｒｇｅｔ＿ｄｏｕｂｌｅｗｏｒｄ（ターゲット倍長語表示）」を含む。代替の実施形態では、より少ない、又はより多い、或いは異なるスヌープトランザクションを含むことができ、又はスヌープトランザクションに異なる名前を用いることができ、或いは、スヌープトランザクションの修正形態を用いることができる。
【０００６】
本明細書で使用する用語「バス」とは、データ、アドレス、制御、又はステータスのような、１つ又はそれ以上の様々なタイプの情報を転送するのに用いることができる複数の信号又は導体を指して用いられる。本明細書で議論するような導体は、単一導体、複数導体、一方向導体、又は双方向導体に関して図示又は説明することができる。しかしながら、様々な実施形態では、導体の実装を変えることができる。例えば、双方向導体ではなく個別の一方向導体を使用してもよく、その逆も同様である。また、複数の導体は、複数の信号を順次的に又は時分割方法で転送する単一の導体に置き換えることができる。同様に、複数の信号を伝搬する単一導体は、これらの信号のサブセットを伝搬する様々な異なる導体に分離することができる。従って、信号の転送には多くの選択肢が存在する。
【０００７】
図１は、本発明の一実施形態によるデータ処理システム１０をブロック図形式で示している。一実施形態において、データ処理システム１０は、プロセッサ１２と、デバッグ回路又はデバッグ回路構成１４と、入出力（Ｉ／Ｏ）回路１６と、メモリ１８とを含み、全てがバス２０に双方向で結合されている。
【０００８】
メモリ１８は、例えば、読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、不揮発性メモリ（例えば、フラッシュ）、その他などのあらゆるタイプのメモリとすることができる。また、メモリ１８は、他の周辺機器又はスレーブ内部に、或いは異なる集積回路上に配置されたメモリ又は他のデータストレージとすることができる。
【０００９】
一実施形態において、プロセッサ１１、プロセッサ１２、及びデバッグ回路構成１４は、バスマスタである。一部の実施形態においては、Ｉ／Ｏ回路１６もまたバスマスタとすることができる。一実施形態において、プロセッサ１２は、マイクロプロセッサ、デジタルシグナルプロセッサ、その他などの命令を実行可能なプロセッサであり、或いは、例えば、ダイレクトメモリアクセス（ＤＭＡ）コントローラ、バスブリッジ、又は同様のもののような他のあらゆるタイプのバスマスタとすることができる。データ処理システム１０には、例えば、バス２０に結合された他のメモリ又はキャッシュメモリ、並びにシステムバス上に常駐するか又はＩ／Ｏ回路１６に結合されたあらゆるタイプの周辺回路など、図１に示されていない他のスレーブデバイスを含めることができる点に留意されたい。図示の実施形態において、デバッグ回路構成１４はまた、導体２１を介してプロセッサ１１及び１２に双方向で結合されている。代替の実施形態において、デバッグ回路１４はまた、バス２０に非依存の１つ又はそれ以上の導体（図示せず）を用いてＩ／Ｏ回路１６及びメモリ１８のうちの１つ又はそれ以上に双方向で結合することができる。
【００１０】
図示の実施形態において、プロセッサ１１は、バスインタフェースユニット（ＢＩＵ）１７を介してバス２０に双方向で結合されたキャッシュ１５を含む。プロセッサ１２は、バスインタフェースユニット（ＢＩＵ）１９を介してバス２０に双方向で各々結合されたキャッシュ１３及びキャッシュ２３を含む。一実施形態において、キャッシュ１３は、プロセッサ１２が使用するためのデータ及び／又は命令を格納するためのレベル１（Ｌ１）キャッシュとして機能し、キャッシュ２３は、プロセッサ１２が使用するためのデータ及び／又は命令を格納するためのレベル２（Ｌ２）キャッシュとして機能する。通常、データ及び／又は命令は、プロセッサによって実行される前にメモリ１８からキャッシュ１３、２３にロードされる。キャッシュ１３、２３は、個別のデータキャッシュ及び個別の命令キャッシュを含むことができ、或いは、統合型命令・データキャッシュを含むことができ、或いは、データキャッシュのみを含むことができる。キャッシュ１３、２３は、１つ又はそれ以上のデータアレイ、１つ又はそれ以上のタグアレイ、及び１つ又はそれ以上のステータスビットアレイを含む。一部の実施形態において、タグ及びステータス情報は、共通のアレイに格納することができる。各キャッシュエントリは、データのブロック又はライン、データをメモリアドレスに関連付けるタグ値、及びステータス情報からなる。一部の実施形態では、ステータス情報は、キャッシュエントリが有効であるか否か、キャッシュエントリが「ダーティ」である（すなわち、メモリ１８内又は他の外部メモリブロックが存在する場合はその中の同じアドレスに関連付けられたデータに対して変更されている）か否か、及び、キャッシュエントリが排他的か又は他のバスマスタと共有されているかどうかを含むことができる。代替の実施形態は、より少ない、より多い、又は異なるキャッシュステータス情報を含むことができる。代替の実施形態において、メモリ１８又はメモリ１８の一部分は、レベル２（Ｌ２）キャッシュとして特徴付けることができる。
【００１１】
入出力（Ｉ／Ｏ）モジュール１６は、バス２０及び外部回路（図示せず）に双方向で結合されている。Ｉ／Ｏモジュール１６は、Ｉ／Ｏモジュール１６に結合された外部回路構成のタイプに応じた様々なインタフェース回路を含む。Ｉ／Ｏモジュール１６は、バス２０に結合された１つ又はそれ以上の代替的なバスマスタを含むことができ、１つ又はそれ以上のキャッシュを含むことができる。一実施形態において、Ｉ／Ｏモジュール１６は、バスブリッジとしての役目を果たすことができ、１つ又はそれ以上のキャッシュを組み込んだ１つ又はそれ以上のデバイスに導体２７を介して接続することができる。
【００１２】
デバッグ回路１４は、バスプロセッサ１１、プロセッサ１２、Ｉ／Ｏ回路１６、及び／又はメモリ１８にバス２０を介して双方向で結合されている。デバッグ回路１４はまた、ハードウェアテスタ又は他のデバッグ用インタフェースハードウェアなどの外部回路構成（図示せず）に双方向で結合することができる。一実施形態において、デバッグ回路構成１４は、ＮＥＸＵＳデバッグプロトコルに準拠している。一部の実施形態では、デバッグ回路構成１４はまた、ＪＴＡＧプロトコルに準拠している。代替の実施形態は、あらゆる所望のデバッグプロトコルに準拠するデバッグ回路構成１４を使用することができる。
【００１３】
一般に、デバッグ回路構成１４は、キャッシュ１５、１３、２３、メモリ１８、及びＩ／Ｏモジュール１６、及び他の実施形態では、データ処理システム１０の内部か又は外部かに関わらずデータ処理システム１０によって利用される他のタイプのデータ保持回路へのアクセスに関連するデータ処理動作の診断チェックとして機能する。プロセッサ１２及び代替的なバスマスタは、必要に応じてシステムバス２０のマスタを取得して、システムメモリ１８に選択的にアクセスしてデータ及び命令の取り出し及び格納を行う。デバッグ回路構成１４は、データ処理システム１０のユーザが、バス２０上で提供されたアドレスをモニタしてバス２０上で提供された関連するデータ値をキャプチャ又はサンプリングすることによって、１つ又はそれ以上のメモリ位置の値をキャプチャするように構成することができる。バスの読み取り動作中、データ値は、メモリ１８のような選択されたスレーブデバイスによって提供される。バスの書き込み動作中、データ値は、プロセッサ１２のようなバス２０のバスマスタによって提供される。バス転送が発生すると、デバッグ回路構成１４が各転送をモニタして、デバッグ回路構成１４のユーザがモニタしたいデータ位置に対応するデータ値を選択的にキャプチャする。これらの値及び条件は、デバッグ回路構成１４内にプログラムし、図１に示す１つ又はそれ以上の端子２５を介してデバッグ回路構成１４から転送することができる。Ｉ／Ｏ回路１６もまた、１つ又はそれ以上の端子２７を介してデータ処理システム１０に外部結合することができる。一実施形態において、端子２５及び２７は、集積回路ピンとすることができる。代替の実施形態では、端子２５及び２７は、例えば、導電性バンプ、導電性パッド、ワイヤ、その他のような、データ処理システム１０の外部に信号を転送するために使用可能なあらゆるものとすることができる。
【００１４】
データ変数又は値がキャッシュ１３内に配置されている場合、データ値は、メモリ１８内の対応する値に対して変更することができ、すなわち、最近の（最新の）値は、メモリ１８内には存在せずに、キャッシュ１３内にのみ存在する点に留意されたい。デバッグ回路構成１４がメモリ１８にアクセスして所望の変数の値を取得する場合、キャッシュ１３内でコピーを内部的に変更される可能性があるので、デバッグ回路構成１４は、正しいコピーを得ることはない。
【００１５】
キャッシュ（例えばキャッシュ１３）内に格納することができる値をデバッグ回路構成１４が「見える」ようにするために、データ処理システム１０に新規のバストランザクションタイプを設ける。このバストランザクションタイプとは、「ｓｈｏｗ」トランザクションである。このバストランザクションは、バス２０のバスマスタとして動作するデバッグ回路構成１４によって開始することができる。バストランザクションは、アクセスすることになる所望のアドレス位置を含む。アドレス又はキャッシュエントリがキャッシュ内で「ヒット」又は「ミス」を生じるかどうかが（例えば、図２のキャッシュ制御回路構成５４によって）判断される。アドレスがヒットの結果となると、キャッシュ１３からそのアドレスに関連する値がバス２０に提供される。次いで、デバッグ回路構成１４は、その値がプロセッサ（例えば、１２）によって提供されるようにバス２０からの値にアクセスできる。一実施形態において、デバッグ回路構成１４は、バス２０上のトランザクションをモニタし、バス転送が発生すると、アドレス及び関連するデータ値をサンプリングすることができる。次に、所望の値は、サンプリング後、図１のデバッグ回路構成１４からの信号を用いて（例えば、端子２５を介して）、デバッグ動作を実行するシステム１０のユーザに転送することができる。一実施形態において、値がバス２０上に配置されるときには、キャッシュ１３の状態は変更されない点に留意されたい。ほとんどの従来技術のシステムでは、標準キャッシュヒットが発生するときに、キャッシュ１３からバス２０上にデータ変数の値を配置することは不可能であり、これは、キャッシュ１３が標準ロード又は格納命令によって生成された従来技術のロード又は格納リクエストを満たすからである。値がキャプチャのためにバス２０上で見えるようにはされないので、これは、デバッグ回路構成１４において問題を引き起こす。アクセスアドレスがミスの結果となると、キャッシュ（例えば、１３）からデバッグ回路構成１４に提供される情報はない。ミスのときには、データは、バス２０を介して取得することができ、従って、キャプチャのためにデバッグ回路１４に対し可視にすることができる。これらの従来技術のシステムにおいて、キャッシュミスの場合にのみ可視にすることにより、実行可能なデバッグ動作に制限を設ける結果となる。
【００１６】
通常、一部のデータ値は変更の対象とされ、命令の実行に応答して更新される。一部のデバッグ状況においては、キャッシュ内に常駐する場合でも値の最新版を取り出すのが望ましい場合がある。キャッシュエントリに関連付けられた「ダーティビット」「Ｄ」は、実効アドレスに関連付けられたキャッシュ内のデータが、データアドレスに対応するメモリ１８などの他のメモリ位置に格納されたデータとは異なる（すなわち変更された）か否かを示している。開示する実施形態によれば、「ｓｈｏｗ」バストランザクションの実行に応答して、キャッシュから値が取り出されてシステムバス２０に提供されるときには、値のアドレスに関連付けられた「ダーティビット」は変更されない。同様に、キャッシュ１３内の実効アドレスに関連付けられた値が別のメモリ位置にある値と同じである場合、すなわち、データがクリーンな場合には、キャッシュ１３は変更されない。言い換えれば、ヒットキャッシュエントリのダーティビットが、このエントリ内に格納されたデータがクリーンであると示している場合でも、このエントリ内に格納されたデータがバス２０に提供され、エントリは変更されない。ヒットキャッシュエントリのダーティビットが、このエントリ内に格納されたデータがダーティであると示している場合、このエントリ内に格納されたデータは依然としてバス２０に提供され、エントリは変更されず、ダーティビットはクリアされない。これは、キャッシュ内の「ダーティビット」の標準動作とは異なる。
【００１７】
図２は、図１のプロセッサ１１及び／又はプロセッサ１２の一部分をブロック図形式で示している。図２は、図１のキャッシュ１３及びＢＩＵ１９、及び／又はキャッシュ２３及びＢＩＵ１９、及び／又はキャッシュ１５及びＢＩＵ１７の１つの可能な実施形態を全てより詳細に示している。議論を簡略化するために、以下では、キャッシュ１３が図２に示す実施形態を使用すると仮定する。しかしながら、代替の実施形態において、キャッシュ１５及び／又はキャッシュ２３もまた、図２に示すキャッシュの実施形態を使用することができ、及び／又は、キャッシュ１３は、図２に示したものとは異なるキャッシュの実施形態を使用することができる。従って、システム１０の代替の実施形態は、異なるアーキテクチャ、構造、及び／又は回路構成を使用して様々なキャッシュ（例えば、１３、２３、及び１５）を実施することができる。図示の実施形態において、キャッシュ１３は、キャッシュ制御回路構成５４及びキャッシュアレイ５０を含み、これらは互いに双方向で結合されている。一実施形態において、キャッシュアレイ５０は、複数のエントリとして編成されたランダムアクセスメモリセルのアレイである。一実施形態において、キャッシュアレイ５０は、ＳＲＡＭ（スタティックランダムアクセスメモリ）メモリセルを含む。他の実施形態では、他のメモリタイプが好適である。キャッシュ１３の一実施形態において、エントリ５２は、複数のエントリの代表であり、「ＴＡＧ  ＡＤＤＲＥＳＳ  ＦＩＥＬＤ」とラベル付けされたタグアドレスビットフィールド、「ＴＡＧ  ＳＴＡＴＵＳ  ＢＩＴＳ」とラベル付けされたタグステータスビットフィールド、及び「ＤＡＴＡ」とラベル付けされたデータビットフィールドを含む。タグステータスビットフィールドは、「Ｖ」とラベル付けされた有効ビット、「Ｅ」とラベル付けされた排他／共有ビット、及び「Ｄ」とラベル付けされたダーティビットを含む。
【００１８】
キャッシュ１３の一実施形態において、各エントリは、プロセッサ１２のための「キャッシュライン」と呼ぶことができる。キャッシュアレイ５０は、ＢＩＵ１９を介してバス２０に双方向で結合されている。一実施形態において、キャッシュ制御回路構成５４は、例えばキャッシュ１３、メモリ１８、又はデバッグ回路構成１４から受け取る命令によって示された実効アドレスが、キャッシュ１３内でヒットか又はミスであるかを選択的に判断する。代替の実施形態は、実効アドレスから物理アドレスへのアドレス変換を実行するために、キャッシュ１３に結合された変換ルックアップバッファ（ＴＬＢ）（図示せず）を使用することができる。この変換は、当該技術で公知の標準的な方法で行うことができる。キャッシュ制御回路構成５４は、ＴＬＢによって提供されたアクセス用の物理アドレスを、キャッシュエントリ５０内の１つ又はそれ以上のタグエントリ内に含まれた格納値と比較することによって、命令によって示された実効アドレスがヒットか又はミスとなるかを判断することができる。一部の実施形態では、実効アドレスは、ＴＬＢが使用されずに、変換なしでキャッシュ１３に直接提供される。このような実施形態では、格納されたタグ値が、実効アドレスに直接対応し、物理アドレスへのアドレス変換は必要とされない。
【００１９】
更に図２を参照すると、キャッシュ１３は、ＢＩＵ１９に双方向で結合されている。ＢＩＵ１９は、バス２０に双方向で結合されている。図示の実施形態において、バス２０は、信号３０及び信号３２を含む。一実施形態において、信号３０は、複数のアドレス信号４０、複数のデータ信号４１、１つ又はそれ以上のｔｒａｎｓｆｅｒ＿ｔｙｐｅ（転送タイプ）信号４２、１つ又はそれ以上のｔａｒｇｅｔ＿ｓｐｅｃｉｆｉｅｒ（ターゲット指定子）信号４３、及び１つ又はそれ以上のｃａｓｈ＿ｓｐｅｃｉｆｉｅｒ（キャッシュ指定子）信号４４を含む。
【００２０】
図３は、本発明の一実施形態によるキャッシュ状態定義の一覧を表形式で示している。本発明の代替の実施形態は、図３に示したものよりも少ない、又はより多い、或いは異なるキャッシュ状態を使用することができる。図３は、４つの状態、すなわち、無効状態（ＩＮＶ）、共有状態（Ｓ）、排他的未変更状態（ＥＵ）、及び排他的変更状態（ＥＭ）を有するＭＥＳＩ（Ｍｏｄｉｆｉｅｄ  Ｅｘｃｌｕｓｉｖｅ  Ｓｈａｒｅｄ  ａｎｄ  Ｉｎｖａｌｉｄ）キャッシュプロトコルを示している。他の実施形態は、異なるキャッシュプロトコル及びこれらの関連するキャッシュ状態定義を使用することができる。従って、本発明は、図３に示す特定の状態に決して限定されない。
【００２１】
図４は、本発明の一実施形態によるキャッシュコヒーレンシ状態図の一部分を状態図形式で示している。図４に示す状態図は、図３のキャッシュ状態を実施するキャッシュが４つのキャッシュ状態、ＩＮＶ、Ｓ、ＥＵ、及びＥＭ間でどのように遷移することができるかを示している。本発明の一実施形態における新規のスヌープトランザクションタイプ（ｓｈｏｗ＿ｌｉｎｅ、ｓｈｏｗ＿ｄｗ、ｓｈｏｗ＿ｔａｒｇｅｔ＿ｌｉｎｅ、ｓｈｏｗ＿ｔａｒｇｅｔ＿ｄｗ）をサポートするために、新規の状態遷移がＭＥＳＩキャッシュコヒーレンシプロトコルの従来技術の状態図に組み込まれている。明確にする目的で、本発明に関連しない従来技術のバストランザクションの一部は、図４から省略されている（例えば、キャッシュブロック全体をフラッシュするバスコマンドなど、キャッシュのブロック全体に影響を与えるバスコマンド）点に留意されたい。
【００２２】
更に図４を参照すると、「ｓｈｏｗ  ｌｉｎｅ（ライン表示）」（ｓｈｏｗ＿ｌｉｎｅ＿ｈｉｔ）及び「ｓｈｏｗ  ｄｏｕｂｌｅｗｏｒｄ（倍長語表示）」（ｓｈｏｗ＿ｄｏｕｂｌｅｗｏｒｄ＿ｈｉｔ）バスコマンドは、キャシュ１３の状態を変更させることはない点に留意されたい。同様に、「ｓｈｏｗ  ｔａｒｇｅｔ  ｌｉｎｅ（ターゲットライン表示）」（ｓｈｏｗ＿ｔａｒｇｅｔ＿ｌｉｎｅ）及び「ｓｈｏｗ  ｔａｒｇｅｔ  ｄｏｕｂｌｅｗｏｒｄ（ターゲット倍長語表示）」（ｓｈｏｗ＿ｔａｒｇｅｔ  ＿ｄｗ）バスコマンドは、キャシュ１３の状態を変更させることはない点に留意されたい。スヌープトランザクションタイプ又は転送タイプバスコマンドのこれら２つの新規のペア、及びこれらを使用するためのサポート用ロジック及びフレームワークは、システム１０で使用されるキャッシュ（例えば、１５、１３、及び２３）への図１のデバッグ回路構成１４のより高い可視性を可能にする。「ｓｈｏｗ  ｌｉｎｅ（ライン表示）」及び「ｓｈｏｗ  ｄｏｕｂｌｅｗｏｒｄ（倍長語表示）」スヌープトランザクション又はバスコマンドが設けられ、変数の最新の値がキャッシュに格納されている場合でも、デバッグ回路構成１４がこれらの値にアクセスできるようにするか、或いはデバッグ回路構成１４がキャッシュの内容を抽出できるようにする。一実施形態において、これらのスヌープトランザクションは、関与するバスマスタ（例えば、１１、１２）によってスヌープルックアップが実行される点において、ほとんどの点で既存のスヌープトランザクションタイプのように動作することができるが、ルックアップの結果は、変更されたか又はダーティなキャッシュラインへのヒットの場合だけでなく、あらゆるヒットにおいて任意選択的にスヌープ応答トランザクションをリクエストすることになる。「ｓｈｏｗ＿ｔａｒｇｅｔ＿ｌｉｎｅ」及び「ｓｈｏｗ＿ｔａｒｇｅｔ＿ｄｗ」スヌープコマンドの場合、特定のキャッシュターゲットがトランザクション情報の一部として識別され、これらの特定のコマンドタイプにおいて、ルックアップの結果は、ヒットか又はミスかに関わらず、スヌープ応答トランザクションを任意選択的に発生させることになる。これらのスヌープコマンドタイプを使用することは、データ、タグ、又はステータス情報の状態変更を生じることなく、ターゲットとされるキャッシュの現在の状態への可視性を可能にする。
【００２３】
「ｓｈｏｗ  ｌｉｎｅ（ライン表示）」、「ｓｈｏｗ  ｄｏｕｂｌｅｗｏｒｄ（倍長語表示）」「ｓｈｏｗ  ｔａｒｇｅｔ  ｌｉｎｅ（ターゲットライン表示）」及び「ｓｈｏｗ  ｔａｒｇｅｔ  ｄｏｕｂｌｅｗｏｒｄ（ターゲット倍長語表示）」バストランザクションのリクエスト部分に応答して、キャッシュ制御回路構成５４（図２）は、キャッシュに格納されている倍長語又はライン全体の内容がバス２０上に配置されるようにし、従って、デバッグ回路構成１４によるキャプチャに利用可能となる。この公開は、変数のための外部記憶装置の有無に関わらず発生する、すなわち、キャッシュ自体以外に変数のアドレスに関連付けられた物理メモリが存在しないものとすることができる。メモリ内の変数の値をシステムバス２０に公開することにより、この値をデバッグ回路構成１４内のデータ追跡ロジックによりキャプチャし、端子２５を介してユーザにメッセージ送出することができる。変数の状態（Ｍｏｄｉｆｉｅｄ、Ｅｘｃｌｕｓｉｖｅ、Ｓｈａｒｅｄ、又はＩｎｖａｌｉｄ）に関わらず、命令はデータキャッシュに対して邪魔にならず、データキャッシュ状態の変更は発生しない点に留意されたい。図示の実施形態において、キャッシュライン全体をバス２０上に配置するか又は所望の変数を含むデータバス幅要素（例えば、倍長語）への公開を制限するかためのオプションが提供される。代替の実施形態では、代わりに、固定幅又はサイズ（例えば、ライン）を有する１つのスヌープトランザクションタイプを使用するか、或いは、幅又はサイズの変数グループ（例えば、ライン、倍長語、ワード、その他）間で選択するための符号化をその内部に有する１つのバスコマンドを使用することができる。
【００２４】
一実施形態において、メモリ変数の値をデバッグ回路構成１４（図１を参照）に提供できるようにするスヌープトランザクションタイプが設けられる点に留意されたい。一部の実施形態において、キャッシュ制御回路構成５４により、キャッシュライン又はキャッシュラインの一部分がクリーン（未変更）か又はダーティ（変更されている）かに関わらず、キャッシュ（例えば、１３）内に存在するときには、これをバス２０上で同報送信することができる。一実施形態において、変数を取得するためにキャッシュ状態（図３を参照）を変更するか又はキャッシュラインを置き換えることはないキャッシュ状態ロジック（図４を参照）がキャッシュ制御回路構成５４（図２を参照）内で設けられる。加えて、一部の実施形態では、デバッグ回路構成１４へのキャッシュデータの提供によりメモリ（例えば、１８）が更新されず、デバッグ回路構成１４によるクエリがシステム１０の状態に最小限の影響を与えることを保証するようにする。
【００２５】
一実施形態において、システム１０は、付加的なバストランザクションタイプ「ｓｈｏｗ（表示）」を付加しており、これは、メモリ（例えば、１８）に対して変更される可能性がある内部データキャッシュ状態（例えば、キャッシュ１３の）へのデバッグ回路１４の可視性を可能にする。一実施形態において、「ｓｈｏｗ」がスヌープ読み出しバーストトランザクションとして提供されると、標準スヌープルックアップが実行される。トランザクションアドレスがデータキャッシュ（例えば、キャッシュ１３）内でヒットすると、キャッシュラインの変更又はクリーン状態に関わらず、スヌープコピーバックが実行される。コピーバックは、「ｓｈｏｗ  ｌｉｎｅ」書き込みとして特徴付けされ、一実施形態では、バスへの４倍長語のバーストである。全てのプロセッサ（例えば、１１、１２）内のキャッシュラインの状態は変更されないままである。バス２０へのキャッシュラインの提供により、デバッグ回路構成１４は、キャッシュラインの内容を見ることができ、従って、これらの値を外部デバッガ（図示せず）に端子２５を介して転送することができる。一実施形態において、これらの「ｓｈｏｗ」転送中のメモリ（例えば、１８）への更新は一般に、可能な限りブロックされ、デバッグ中のシステム１０の状態の変動を最小限にすべきである点に留意されたい。
【００２６】
加えて、一部の実施形態において、「ｄｏｕｂｌｅｗｏｒｄ（倍長語）」スヌープバスコマンドがサポートされる。スヌープシングルビート読み出しトランザクションとして提供されると、標準スヌープルックアップもまた実行される。これらの「ｄｏｕｂｌｅｗｏｒｄ（倍長語）」バスコマンドは、「ｌｉｎｅ（ライン）」バスコマンドと同様に動作するが、但し、ヒットするキャッシュライン内のデータの単一倍長語のみが、シングルビート書き込みバストランザクションを介して提供され、これは「ｄｏｕｂｌｅｗｏｒｄ（倍長語）」とマークされる。
【００２７】
「ｓｈｏｗ＿Ｔｔａｒｇｅｔ＿ｌｉｎｅ」及び「ｓｈｏｗ＿Ｔｔａｒｇｅｔ＿ｄｏｕｂｌｅｗｏｒｄ」スヌープバスコマンドは、通常、システム１０内の単一のマスタ（例えば、プロセッサ１２）のみをターゲットとし、従って、これらのトランザクションの各々においてシングル応答のみが発生する。「ｓｈｏｗ＿ｌｉｎｅ」及び「ｓｈｏｗ＿ｄｏｕｂｌｅｗｏｒｄ」スヌープトランザクションリクエストでは、これらのコマンドは、複数のマスタ（例えば、プロセッサ１１及び１２）に同時に送信されるが、デバッグ回路構成１４に対しデータが可視になるには、単一のマスタのみが応答すればよい。排他状態のキャッシュラインでは、これは必然的に発生する。複数のキャッシュ内で有効な共有キャッシュラインでは、キャッシュに格納された複数のコピーが存在する場合でも、データの可視性を提供するには単一の「ｓｈｏｗ」バストランザクションのみが必要とされる。複数のバスマスタがキャッシュラインを同時に「表示」するように試みるときには、単一のマスタのみがバス２０のアービトレーションを獲得し、次いで、リクエストされた情報で応答する。他の何れかのバスマスタ内で保留中の応答は、アービトレーション勝者がバス２０上で「ｓｈｏｗ」応答を実行するときにキル又は終了することができ、保留中の応答及び実行された応答のアドレスは一致する。関与するマスタは、バスをモニタして、他のキャッシュが「ｓｈｏｗ」情報を提供したかを判断し、提供していた場合は、示されたデータについて「ｓｈｏｗ」応答を実行するために自己リクエストを終了させる。これは、バス２０上のトランザクションのアドレス及びトランザクションタイプ情報をモニタして、「ｓｈｏｗ」タイプの応答トランザクションが他のマスタによって実行されるかを判断することによって行うことができる。代替的に、複数のキャッシュが「ｓｈｏｗ」コマンドに応答する場合、全ての応答は、どのキャッシュが応答したかに関する情報と共に外部デバッガに個別に送信し、外部デバッガが、ラインの全てのコピーを見ることができるようにする。
【００２８】
図４を参照すると、一実施形態において、遷移５０−５３は、あらゆるキャッシュ（例えば、キャッシュ１３）からデバッグ回路構成１４（図１を参照）に情報を提供するのに使用することができる。ここで図２、５、及び６を参照すると、一実施形態において、バス２０上の転送タイプ信号４２（図２を参照）を用いて、図５にリストされたバススヌープトランザクションの１つがバス上で現在行われていることを示す。図５及び６を参照すると、各スヌープバストランザクションは、リクエスト部６０、応答部６１、及びデータ部６２を含み、これら全てがバス２０上に設けられる点に留意されたい。リクエスト部６０において、バスマスタ（例えば、デバッグ回路構成１４）は、キャッシュ（例えば、キャッシュ１３）への読み出しを開始する。応答部６１において、キャッシュは、書き込み動作で応答する。更にデータ部６２において、リクエスト６０部において指定されたアドレス又はキャッシュエントリに対応するキャッシュ内に格納されたデータが、バス２０上で提供される。
【００２９】
図５にリストされたバススヌープトランザクションの一実施形態をここで説明する。代替の実施形態は、図５にリストされていない他の付加的なスヌープトランザクションを有することができる点に留意されたい。
【００３０】
図５の「ｓｈｏｗ  ｃａｃｈｅ  ｌｉｎｅ」及び「ｓｈｏｗ  ｄｏｕｂｌｅｗｏｒｄ」バストランザクションの一実施形態をここで説明する。「ｓｈｏｗ  ｃａｃｈｅ  ｌｉｎｅ」バストランザクションでは、バスマスタ（例えば、デバッグ回路構成１４）は、所望のアドレスを含むスヌープトランザクションリクエスト６０をバス２０の信号４０（図２を参照）を介して提供し、１つ又はそれ以上の信号４２を介してトランザクションタイプインジケーションを提供する。トランザクションは、コヒーレンシの目的で、バストランザクションの標準スヌーピングに関与するシステム内の１つ又はそれ以上のキャッシュによりモニタされる。スヌープトランザクションに関連するルックアップで発生するヒットに応答して、システムにおいて選択されたキャッシュが、ダーティビットＤの状態に関わらず、リクエストトランザクションのアドレスに対応するキャッシュラインデータ情報の「ｓｈｏｗ  ｃｏｐｙｂａｃｋ」（「ｓｈｏｗ  ｃａｃｈｅ  ｌｉｎｅ」リクエストに応答するため）又は「ｓｈｏｗ  ｄｏｕｂｌｅｗｏｒｄ」（「ｓｈｏｗ  ｄｏｕｂｌｅｗｏｒｄ」リクエストに応答するため）書き込みトランザクションを実行し、キャッシュは、現在の状態に留まり、すなわちダーティビットは変更されない。加えて、他の全てのキャッシュは、自己のそれぞれの現在の状態に留まる。一実施形態において、バス２０上で書き込みトランザクションが示されても、メモリ１８は、応答上で提供されたデータでは更新されない。一実施形態において、応答６１は、キャッシュからのステータス情報、及びリクエスト６０内のアドレスに対応するキャッシュエントリを含む。キャッシュヒットがあった場合、データは、データ部６２中にデータ導電体４１を介して提供される。キャッシュミスがあった場合は、データは、データ部６２中にデータ導電体４１を介して提供されることはない。代替の実施形態において、応答中にステータス情報は提供されないか、又は部分的なステータス情報のみを提供することができる。一実施形態において、リクエストされたアドレスが、トランザクションに関与するキャッシュの全てにおいてミスとなる場合、トランザクションのデータ部６２中にはデータが提供されない代わりに、データは、メモリ１８によって提供することができる。一実施形態において、複数のキャッシュが「ヒットする」と、応答を提供するために単一のキャッシュが選択され、残りのキャッシュは保留中のあらゆる応答を取り消す。
【００３１】
ここで、  図６に示したタイプ−１トランザクションに対応する図５の「ｓｈｏｗ  ｔａｒｇｅｔ  ｌｉｎｅ」及び「ｓｈｏｗ  ｔａｒｇｅｔ  ｄｏｕｂｌｅｗｏｒｄ」バストランザクションの一実施形態を説明する。これらの「ｓｈｏｗ  ｔａｒｇｅｔ」バストランザクションでは、バスマスタ（例えば、デバッグ回路構成１４）は、バス２０の信号４３（図２を参照）を介してターゲット指定子を含み、信号４４を介してキャッシュ指定子を提供し、信号４０を介してアドレスを提供し、１つ又はそれ以上の信号３２を介して幅インジケータＤＷ（例えば、倍長語、ライン、その他）を与えるリクエスト６０を提供する。ターゲット指定子は、システム１０内の回路構成のいずれのブロック又は部分がキャッシュを有しており、このバストランザクションの「ターゲット」であるかを指定する。キャッシュ指定子は、「ターゲット」内のいずれのキャッシュがこのバストランザクションに関してアクセスされるかを指定する。これに応答して（図６の列６１を参照）、ターゲット内の指定されたキャッシュは、ダーティビットＤの状態に関わらず、キャッシュラインの「ｓｈｏｗ  ｔａｒｇｅｔ  ｃｏｐｙｂａｃｋ」（図５を参照）又はリクエストされた倍長語の「ｓｈｏｗ  ｔａｒｇｅｔ  ｄｏｕｂｌｅｗｏｒｄ」を実行し、キャッシュは現在の状態に留まる。図６を参照すると、図示の実施形態において、応答６１は、キャッシュからのステータス情報、及びリクエスト６０におけるアドレスに対応するキャッシュエントリを含む。キャッシュヒットがあった場合、データは、データ部６２中にデータ導電体４１を介して提供される。キャッシュミスがあった場合は、データは、データ部６２中にデータ導電体４１を介して提供されることはない。一実施形態において、応答は、ステータス情報のみを含むことができ、キャッシュエントリ情報は提供されない場合がある。ステータス情報は、バス２０の１つ又はそれ以上の信号３２を介して信号伝達される特定の応答タイプの符号化で示すことができ、或いは、非符号化フォーマットで直接提供することができる。
【００３２】
ここで、図６に示したタイプ−２トランザクションに対応する図５の「ｓｈｏｗ  ｔａｒｇｅｔ  ｌｉｎｅ」及び「ｓｈｏｗ  ｔａｒｇｅｔ  ｄｏｕｂｌｅｗｏｒｄ」バストランザクションの一実施形態を説明する。タイプ−２の「ｓｈｏｗ  ｃａｃｈｅ  ｌｉｎｅ」トランザクションでは、タイプ−１との相違点は、リクエスト部６０においてアドレスを提供する代わりに、バスマスタ（例えば、デバッグ回路構成１４）がキャッシュエントリ指定子を提供する点である。指定子は、ターゲットとされるキャッシュ内の特定の格納場所を指定するのに用いられる。キャッシュからの応答は、応答６１がキャッシュエントリ情報を含まず、キャッシュエントリ（例えば、図２の５２）のタグアドレスフィールドからの情報又は内容を含む場合もあり、含まない場合もある点で異なる。タイプ−２トランザクションの一実施形態では、キャッシュエントリ（例えば、図２の５２）のタグアドレスフィールドからの情報又は内容が、応答部６１中に提供されなかった場合は、データ部６２中にバス２０のデータ導電体４１（図２を参照）上で提供することができる。代替の実施形態は、タイプ−１トランザクションの１つ又はそれ以上を使用することができ、タイプ−２トランザクションの１つ又はそれ以上を使用することができ、或いは、様々なトランザクションを使用することができる。リクエスト６０（図５を参照）の「ｓｈｏｗ  ｄｏｕｂｌｅｗｏｒｄ」バストランザクションは、リクエスト６０の「ｓｈｏｗ  ｃａｃｈｅ  ｌｉｎｅ」バストランザクションと同じように機能することができるが、但し、その幅は、キャッシュラインの代わりに倍長語である点に留意されたい。同様に、応答６１の「ｓｈｏｗ  ｄｏｕｂｌｅｗｏｒｄ」バストランザクションは、応答６１の「ｓｈｏｗ  ｃｏｐｙｂａｃｋ」バストランザクションと同じように機能することができるが、但し、その幅は、キャッシュラインの代わりに倍長語である点に留意されたい。「ｓｈｏｗ  ｔａｒｇｅｔ  ｌｉｎｅ」及び「ｓｈｏｗ  ｔａｒｇｅｔ  ｄｏｕｂｌｅｗｏｒｄ」のトランザクションタイプも同様に区別することができる。
【００３３】
システム１０内の１つ又はそれ以上のキャッシュは、セット・アソシエイティブ又はフル・アソシエイティブとすることができる点に留意されたい。キャッシュ（例えば、１３）がフル・アソシエイティブの場合、図６の「キャッシュエントリ」を用いて、キャッシュ内の所望のエントリを直接指定することができる。しかしながら、キャッシュ（例えば、１３）がセット・アソシエイティブの場合、一部の実施形態では、「キャッシュエントリ」指定子は、「ｃａｃｈｅ  ｓｅｔ」及び「ｃａｃｈｅ  ｗａｙ」で置き換えることができる。
【００３４】
転送タイプ、トランザクションタイプ、バストランザクションタイプ、スヌープトランザクション、スヌープトランザクションタイプ、スヌープバスコマンド、及びバスコマンドという用語は、本明細書では同義的に使用することができる点に留意されたい。
【００３５】
本発明の説明から分かるように、キャッシュコヒーレンシプロトコルを拡張して、デバッグ可視性トランザクションを有利な方法で組み込んで、デバッガによる改善されたキャッシュ可視性を可能にすることができる。
【００３６】
本発明を実施する装置は、大部分が当業者には公知の電子構成要素及び回路から構成されるので、回路の詳細事項については、本発明の教示を曖昧にし、又はこれから逸脱しないようにするために、上記で示したように本発明の基礎を成す概念の理解及び評価のために必要とみなされる範囲を越えてあまり説明していない。
【００３７】
上記の実施形態の一部は、適用可能な場合、様々な異なる情報処理システムを用いて実施することができる。例えば、図１及びその検討では、例示的な情報処理アーキテクチャについて述べているが、この例示的なアーキテクチャは、本発明の様々な態様を議論する際の有益な参照を提供するために提示したにすぎない。当然、アーキテクチャの説明は、議論の目的のために簡略化しており、本発明に従って使用することができる数多くの異なるタイプの適切なアーキテクチャのうちの１つにすぎない。ロジックブロック間の境界は単に例証にすぎず、代替の実施形態は、ロジックブロック又は回路要素をマージするか、又は様々なロジックブロック又は回路要素への代替的な機能分解を加えることができる点は、当業者であれば認識されるであろう。
【００３８】
従って、本明細書で示したアーキテクチャは、単に例示的なものにすぎず、実際には、同じ機能を達成する他の多くのアーキテクチャを実施することができる点は理解されたい。抽象的であるが尚も明確な意味で、同じ機能を達成するための構成要素のあらゆる配列は、所望の機能が達成されるように効果的に「関連付け」られている。従って、特定の機能を達成するために本明細書で組み合わされたあらゆる２つの構成要素は、アーキテクチャ又は中間構成要素に関係なく、所望の機能が達成されるように相互に「関連付けられている」とみなすことができる。同様に、そのように関連付けられたあらゆる２つの構成要素はまた、所望の機能を達成するために相互に「動作可能に接続された」又は「動作可能に結合された」とみなすことができる。
【００３９】
更に、例えば、一実施形態において、例証したシステム１０の要素は、単一の集積回路上又は同じデバイス内に配置された回路構成である。代替的に、システム１０は、互いに相互接続されたあらゆる数の別個の集積回路又は別個のデバイスを含むことができる。例えば、メモリ１８は、マスタ１１及び１２と同じ集積回路上又は別個の集積回路上に配置することができ、或いは、システム１０の他の要素と個別に分離され他の周辺機器又はスレーブ内に配置することができる。デバッグ回路構成１４及びＩ／Ｏ回路構成１６もまた、別個の集積回路又はデバイス上に配置することができる。また例えば、システム１０又はその一部分は、物理回路構成のソフト又はコード表現か、或いは、物理回路構成に変換可能な論理表現とすることができる。従って、システム１０は、あらゆる適切なタイプのハードウェア記述言語で具体化することができる。
【００４０】
更に、当業者であれば、上述の動作の機能間の境界は、例証にすぎないことは理解されるであろう。複数の動作の機能は、単一の動作に組み合わせることができ、及び／又は単一の動作の機能は、付加的な動作に分散させることができる。更に、代替の実施形態は、特定の動作の複数のインスタンスを含むことができ、動作の順序は、様々な他の実施形態において変更することができる。
【００４１】
本明細書では、特定の実施形態を参照しながら本発明を説明したが、以下の請求項に記載されるような本発明の範囲から逸脱することなく、様々な修正及び変更を加えることができる。従って、明細書及び図は、限定的な意味ではなく、むしろ例証の意味でとらえるべきであり、このような全ての修正は、本発明の範囲内に含まれるものとする。特定の実施形態に関して本明細書で説明したあらゆる長所、利点、又は問題に対する解決策は、あらゆる又は全ての請求項の主要な、必須の、又は不可欠な特徴又は要素と解釈すべきものではない。
【００４２】
本明細書で使用する用語「結合された」とは、直接的な結合又は機械的な結合に限定されない。
更に、本明細書で使用する用語「ａ」又は「ａｎ」は、１つ又は１つよりも多いものとして定義される。また、請求項における「少なくとも１つ」及び「１つ又はそれ以上」などの前置きの語句の使用は、不定冠詞「ａ」又は「ａｎ」による他の請求項要素の前置きが、このような１つだけの要素を含む発明にこのように導入された請求項要素を含むあらゆる特定の請求項を限定することを意味するものと解釈すべきではなく、同じ請求項が「１つ又はそれ以上」又は「少なくとも１つ」及び「ａ」又は「ａｎ」などの不定冠詞を含む場合でも当てはまる。
他に言及されていない限り、「第１」及び「第２」のような用語は、このような用語が説明する要素間を任意的に区別するために用いられる。従って、これらの用語は、このような要素の一時的な又は他の優先順位付けを必ずしも示すものではない。
【図１】
2010527488.tif 000003
【図２】
2010527488.tif 000004
【図３】
2010527488.tif 000005
【図４】
2010527488.tif 000006
【図５】
2010527488.tif 000007
【図６】
2010527488.tif 000008
【国際調査報告】
2010527488.tif 000009
2010527488.tif 000010