(57)【要約】仮想アドレス（Ｎ−２１からのビット）のタグビットと複数のソフトキャッシュレジスタエントリ（ＴＡＧ０〜ＴＡＧ１５）のタグフィールドを比較し、各エントリは、仮想メモリ内の対応するキャッシュラインに対するインデックス（０〜１５）に関連付けられる。キャッシュラインのためのキャッシュラインの大きさは、プログラム可能である。仮想アドレスのタグビット（Ｎ−２１からのビット）がソフトキャッシュエントリの内の１つのタグフィールドに整合する場合、そこからのインデックス（０〜１５）が物理アドレスを生成するために選択される。物理アドレスが、対応するメモリの内のソフトキャッシュ空間へのオフセット（７〜１０のビス）として選択されたインデックスを用いて生成される。【選択図】図１３
2004523051.tif 000002
【特許請求の範囲】
【請求項１】
仮想アドレスのタグビットと複数のレジスタエントリにおいてプログラムされたタグビットとを比較する動作であって、各エントリは、仮想キャッシュ空間におけるプログラム可能なキャッシュラインサイズのキャッシュラインに対するインデックスに関連付けられ、該仮想キャッシュ空間場所は、該仮想アドレスのブロックアドレス部によってプログラムされる、動作と、
該仮想アドレスの該タグビットが該プログラム可能なレジスタエントリの内の１つの該タグビットに整合する場合、物理アドレスを生成するための該エントリに対応する該インデックスを選択する動作と、
該キャッシュラインへのオフセットとして該選択されたインデックスを用いる該物理アドレスおよび該仮想キャッシュ空間へのアドレスとして該仮想メモリからのブロックアドレスを生成する動作と
を実行するソフトキャッシュシステム。
【請求項２】
前記仮想アドレスの前記タグビットが、
前記仮想アドレスに関連付けられたデータを向上させるための前記仮想キャッシュ空間におけるキャッシュラインを選択し、
該仮想アドレスを用いてメモリの第２の領域から該データを取り出し、
該仮想キャッシュ空間における該選択されたキャッシュラインにおいて該データを向上させ、
該選択されたキャッシュラインに関連付けられた該レジスタにおける該タグビットを更新する、該仮想アドレスのタグビットが該レジスタエントリの内の１つの該タグフィールドに整合しない場合、前記動作をさらに実行する、請求項１に記載のソフトキャッシュシステム。
【請求項３】
前記キャッシュラインのサイズがＭの場所数になるようにプログラム可能であり、前記仮想アドレスは、Ｍのキャッシュライン場所数をインデックス付けするｌｏｇ２Ｍのビット数を含む、請求項１に記載のソフトキャッシュシステム。
【請求項４】
前記Ｍの場所数がバイト場所を含む、請求項３に記載のソフトキャッシュシステム。
【請求項５】
前記キャッシュラインサイズが、１２８、２５６、５１２、および１０２４バイトからなる群から選択される、請求項４に記載のソフトキャッシュシステム。
【請求項６】
前記キャッシュシステムは、ｌｏｇ２Ｘのタグビット数を格納するレジスタエントリ数Ｘを有するＸ方向セット相関システムを含む、請求項１に記載のソフトキャッシュ。
【請求項７】
前記キャッシュシステムは、１６方向セット相関システムおよびそれぞれが４ビットを格納する複数のレジスタエントリを含む、請求項６に記載のソフトキャッシュシステム。
【請求項８】
それぞれがタグ値を格納し、メモリ内の選択されたキャッシュ領域におけるキャッシュラインにインデックス付けられる、対応するエントリの数Ｍを有するレジスタを含む、Ｍ方向セット相関キャッシュを設定するステップと、
該キャッシュラインのためのキャッシュラインサイズを設定するステップであって、該キャッシュタグ値は、該選択されたキャッシュラインの大きさの関数として選択される、ステップと、
タグフィールドを含む仮想アドレス、該キャッシュラインサイズ内の場所にアドレシングするキャッシュラインアドレシングフィールド、およびメモリ内の該キャッシュ領域をアドレシングするブロックアドレスフィールドを生成するステップと、
該仮想アドレスの該タグフィールドと該キャッシュにおける該タグ値を比較するステップと、
該仮想アドレスの該タグフィールドが該キャッシュにおけるタグ値に整合する場合、該整合タグ値および該キャッシュラインおよび該仮想アドレスからのブロックアドレスフィールドを含む該レジスタエントリに関連付けられた該インデックスと共に、該対応するキャッシュラインへの物理アドレスを生成するステップと
を含む、データキャッシングのための方法。
【請求項９】
前記整合タグ値に関連付けられた前記インデックスを用いて履歴レジスタを更新するステップをさらに含む、請求項８に記載の方法。
【請求項１０】
前記仮想アドレスの前記タグフィールドが前記レジスタにおけるタグ値に整合しない場合、該仮想アドレスを用いてメモリにおける対応する領域にアクセスするステップと、
該履歴レジスタに格納された情報からのメモリにおける前記キャッシュ領域から置換キャッシュラインを選択するステップと、
該仮想アドレスを用いてアクセスされたメモリにおける該対応する領域からメモリの該キャッシュ領域における置換キャッシュラインにデータを転送するステップと、
該仮想アドレスからのタグを用いて該置換キャッシュに対するインデックスを用いて関連付けられた該レジスタエントリを更新するステップと
をさらに含む、請求項９に記載の方法。
【請求項１１】
前記履歴レジスタを更新するステップは、インデックスをシフトレジスタにシフトさせるステップを含む、請求項９に記載の方法。
【請求項１２】
前記履歴レジスタを更新するステップは、複数の同一でないインデックスを格納するステップを含む、請求項９に記載の方法。
【請求項１３】
前記キャッシュを設定するステップは、タグ値を格納するためおよびキャッシュラインに対してインデックス付けされた複数のエントリを有するハードウエアレジスタを設定するステップを含む、請求項９に記載の方法。
【請求項１４】
前記仮想アドレスのブロックアドレスフィールドがメモリにおけるキャッシュ領域に対応するかどうかを決定するステップと、
前記仮想アドレスの該ブロックアドレスがメモリにおける該キャッシュ領域に対応しない場合、該仮想アドレスを用いて該メモリにアドレスするステップと
をさらに含む、請求項９に記載の方法。
【請求項１５】
メモリにおける前記キャッシュ領域がランダムアクセスメモリにおける領域を含む、請求項９に記載の方法。
【請求項１６】
メモリにおける前記キャッシュ領域がフラッシュメモリにおける領域を含む、請求項９に記載の方法。
【請求項１７】
中央処理ユニットと、
ソフトキャッシュ空間を含むメモリと、
該中央処理ユニットからのアドレスに応答して該ソフトキャッシュ空間におけるデータにアクセスするためのソフトキャッシュシステムであって、
複数のエントリであって、該エントリのそれぞれがキャッシュタグを格納し、該ソフトキャッシュ空間におけるキャッシュラインに対してインデックス付けされた複数のエントリを有するレジスタと、
該中央処理ユニットからのアドレスのタグフィールドと該レジスタのエントリのそれぞれに格納されたキャッシュタグと該中央処理ユニットからのアドレスのタグフィールドとを比較するための複数のコンパレータと、
該タグフィールドが、整合キャッシュタグ、および該ソフトキャッシュ空間にアドレスする該中央処理ユニットからの該アドレスから選択されたビットを格納する該エントリに関連付けられたインデックスを用いて該レジスタにおけるタグ値に整合する場合、該ソフトキャッシュ空間へのアドレスを生成するための回路と
を含むソフトキャッシュシステムと
を含む、システム。
【請求項１８】
前記中央処理ユニットはチップ上のシステムの一部を含む、請求項１７に記載のシステム。
【請求項１９】
前記メモリは、チップ上の前記システム部分を形成する、請求項１８に記載のシステム。
【請求項２０】
前記メモリは、チップ上のシステムの外部にある、請求項１８に記載のシステム。
【請求項２１】
前記中央処理ユニットおよび前記メモリは、ポータブルオーディオシステムの一部を形成する、請求項１７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（発明の分野）
本発明は概して集積回路に関し、特に、ソフトキャッシュを有するシステムオンチップおよびこれを用いるシステムおよび方法に関する。
【背景技術】
【０００２】
（発明の背景）
ハンドヘルドパーソナル電子機器がますます普及するにつれて、新しい技術が高度な機能性を有する安価なデバイスを生成してきた。このような１つのデバイスは、デジタルオーディオデータをダウンロードし、これらのデータを読み出し書き込み可能なメモリに格納し、ユーザの要求に従って、これらのデータをオーディオに変換するポータブルデジタルオーディオプレイヤーである。このデジタルデータは、ＭＰＥＧレイヤー３、ＡＣＣ、およびＭＳオーディオプロトコルを含むいくつかの形態の内の１つでネットワークからダウンロードされるか、または固定された媒体（例えばコンパクトディスク）から取り出される。適切なファームウエアによって支援されたオーディオデコーダは、メモリから符号化されたデータを取り出し、対応する符号化アルゴリズムを適用し、符号化されたデータをヘッドセットまたは他のポータブルスピーカシステムを駆動するためのアナログフォームに変換する。
【０００３】
本設計におけるシステムオンチップの使用およびハンドヘルドデジタルミュージックプレイヤーの構成は、コンパクトで、比較的安価なユニットに含ませることを可能にする。にもかかわらず、デジタルミュージックプレイヤーの主要な機能の単一チップデバイスへの統合は、些細なタスクではない。デバイスがデジタルオーディオ変換を効率的に実行することを可能にする処理パワーを含まなければならないばかりではなく、デジタルに符号化されたデータの種々のソースとインターフェースをとることを可能にし、異なるユーザＩ／Ｏオプション（例えばＬＣＤディスプレイおよびヘッドフォン）、そして高品質のオーディオを作成するために必要とされた十分大きいオンチップおよびオフチップメモリ空間格納（コードおよびデータのプログラミング）と共に動作する。
【発明の開示】
【課題を解決するための手段】
【０００４】
（発明の要旨）
本発明の概念によると、仮想アドレスのタグビットと複数のソフトキャッシュレジスタエントリのタグフィールドとを比較するキャッシュシステムが開示される。各エントリは、プログラム可能なキャッシュメモリ空間における対応するキャッシュラインに対するインデックスに関連付けられる。このキャッシュラインのキャッシュラインサイズもまたプログラム可能である。仮想アドレスのタグビットがソフトキャッシュエントリの内の１つのタグフィールドに整合する場合、そのエントリからのインデックスが物理アドレスを生成するために選択される。この物理アドレスが、仮想アドレスからのブロックアドレスビットによって、メモリアドレス内のプログラム可能なソフトキャッシュ空間に対応するオフセットとして選択されたインデックスを用いて生成される。
【０００５】
有利にも、本発明の原理を用いるシステムおよびソフトウエアは、制限されたまたはハードウエアのないキャッシングサポートを有するシステムにおけるソフトウエアキャッシングを可能にする。１つの例は、ＡＲＭ７ｔｄｍｉＣＰＵコアを利用する開示されたシステムオンチップであり、このシステムオンチップは、ハードウエアキャッシュもメモリ管理ユニットも有さない。さらに、キャッシュミスによってキャッシュライン置換がソフトウエアで行われた後、異なるプロトコル下で動作するメモリ間のインターフェースは、増加された効率性を有する。
【０００６】
本発明および本発明の利点のより完全な理解のために、ここで参照が添付の図面と共になされる以下の説明に対してなされる。
【０００７】
（発明の詳細な説明）
本発明の原理およびその利点は、図１〜図１４に示された例示された実施形態を参照することによってより良好に理解される。この図では同様の参照符号は同様の部分を表す。
【０００８】
図１は、本発明の原理を実現するシステムオンチップシステム１００のハイレベルの機能的ブロック図である。システム１００は、マイクロプロセッサコア、デジタル信号プロセッサ、周辺機器のセット、および関連つけられたバスに基づき、これらの各々は以下にさらに詳細に説明される。ａｓａＭＰ３、ＡＡＣ、およびＭＳ−Ａｕｄｉｏ等のフォーマットでデジタルオーディオデータを処理するマルチスタンダードポータブルオーディオデバイスは、システム１００の可能なアプリケーションの中にある。
【０００９】
好適な実施形態では、システム１００は、Ｃａｍｂｒｉｄｇｅ，Ｕｎｉｔｅｄ  ＫｉｎｇｄｏｍのＡＲＭ  Ｌｔｄ．から入手可能なＡＲＭ７ＴＤＭＩマイクロプロセッサコア１０１を含む。マイクロプロセッサコア１０１は、周辺機器とインターフェースをとること、データをパッキングおよびアンパッキングすることを含む種々の機能を提供し、全体の機能およびチップの状態を決定するシステムマスターとして働く。
【００１０】
デジタル信号プロセッサ（ＤＳＰ）１０２は、マイクロプロセッサ１０１からのディスパッチされたデータを取り出し、次いで周辺機器のポートを介してこれらのデータの再生を復号化し制御する集中計算エンジンである。
【００１１】
システムバスアーキテクチャは、ＡＲＭアドバンストマイクロプロセッサバスアーキテクチャ（ＡＭＢＡ）バスシステムに基づく。ＡＭＢＡバスアーキテクチャのための特定の要求は、ＡＲＭ  Ｌｔｄに従う。メインまたは高速バス（ＡＨＢ）バス１０３は、メモリへのより頻繁なアクセスを要求する高帯域幅ブロックに接続される。マイクロプロセッサ１０１およびそのローカルメモリ（ＲＡＭ／ＲＯＭ）１３７は、ローカルＡＨＢバス１０４、ならびにローカルＡＨＢバス１０４およびメインＡＨＢバス１０３を橋渡しするインターフェース１０５を介してメインバス１０３から動作する。この構成は、マイクロプロセッサ１０１がプログラムを実行している場合にバスの競合を最小化し、別のバスマスター（例えばＤＭＡエンジン）は、メインＡＨＢバス１０３を介してデータを転送させている。
【００１２】
メインＡＨＢバス１０３から直接的に動作させる他のデバイスは、４チャンネルＤＭＡエンジン１０６と、オンチップメモリの拡張として最大５１２Ｍバイト外部メモリをマイクロプロセッサのメモリにマッピングする外部メモリコントローラを含むフラッシュ／ＳＲＡＭインターフェース１０７と、テストインターフェースコントローラ（ＴＩＣ）１０８と、アービター１０９およびＬＣＤインターフェース１１０として、５１２Ｍバイトまでの外部メモリをマイクロプロセッサメモリ空間にマッピングする。テストインターフェースコントローラ（ＴＩＣ）１０８は、マイクロプロセッサ１０１からバス制御を支配し得、ＡＨＢ／ＡＰＢバスに接続されたブロックをシミュレートするためにバスサイクルを模倣する。アービター１０９は、メインバス１０３上でバスリクエストを調停する。ＬＣＤインターフェース１１０は、種々のＬＣＤパネルへの接続を支援する（ディスプレイは、大きいフレームバッファを必要とし得るため、ディスプレイコントローラ１１０は、高速バスから動作する）。
【００１３】
メインバス１０３に対してスレーブであるＡＨＢ−ＤＳＰインターフェース１１１は、マイクロプロセッサ１０１がデータブロックをＤＳＰメモリにおよびＤＳＰメモリから移動させることを可能にする。
【００１４】
システム１００はまた、システム低帯域幅周辺機器にリンクするＡＭＢＡアドバンスト周辺バス（ＡＰＢ）１１２を使用する。ＡＰＢ１１２は、メインバス１０３からＡＨＢ／ＡＰＢブリッジ１１３を介して動作する。このブリッジはまた、メインバス１０３に対してスレーブである。示された実施形態では、システム外部デバイスとインターフェースをとる全ての周辺機器は、ＡＰＢバス１１２から動作する。
【００１５】
ＡＰＢバス１１２から動作する周辺機器は、システム１００とパーソナルコンピュータ（ＰＣ）または同様のデバイスとの間の通信を支援するＵＳＢスレーブインターフェース１１４を含む。システム１００は、ポータブルデジタルミュージック機器において使用される場合、このインターフェースは、ＰＣからポータブルオーディオシステムにファイルを速やかにダウンロードすることを可能にする。ＵＡＲＴａ１１５は、完全に１６５５０互換可能で、種々のボーレートを支援するシリアルポートである。これはまた、関連付けられたＰＣへのレガシー通信チャンネルを提供する。
【００１６】
バッテリ／ボリュームチェッカー１１６は、オンチップアナログデジタル変換器（ＡＤＣ）であり、この変換器は２つのアナログ入力を取り、バッテリレベルモニタリングおよびボリュームスイッチチェッキングにおいて使用するために、１００Ｈｚまでのサンプルレートにおいて８ビット精度を有するデジタル信号を供給する。
【００１７】
ＳＰＩポート１１７はまた、マルチメディアカード（ＭＭＣ）等の種々のシリアル格納メディアと共に使用するためにＡＰＢバス１１２から動作する。マスターモードの互換可能な（ｃｏｍｐａｔｉｂｌｅａ）１２Ｃポート１１８は、ＥＥＰＲＯＭ、ＤＡＣ／コーデックおよびいくつかのディスプレイ等のデバイスの範囲との別の共通のシリアルインターフェースを提供する。
【００１８】
セキュリティ／リセットポート１１９は、適切なチップ初期化手順およびブートアップ（ｂｏｏｔ−ｕｐ）シーケンスを決定するためにＲＯＭ内のセキュリティコードと共に動作する。一般的には、このブロックは、セキュリティコードによって可能にされるように、外部ユーザに見えない所定のシステムブロックを作成する。
【００１９】
３２ｋＨｚオンチップ発振器１２０は、オフチップ３２．７６８ｋＨｚ水晶発振子（ｃｒｙｓｔａｌ／）への直接接続によって動作し、オンチップＰＬＬ１２１ａおよび１２１ｂに基準クロックを供給する。ＰＬＬ１２１ａ、ｂは、１セットのユーザプログラム可能なデバイダを用いて、種々のブロックによって必要とされる異なるブロックを提供する。さらに、内蔵自己較正回路は、動作環境の変化を克服するためにバイアス電流の最適化を可能にする。クロック制御は、全てのオンチップクロックソースのためのメイン「バルブ」であるブロック１２２を介してインプリメントされる。これは、最高速または最高速未満（ａ  ｆｒａｃｔｉｏｎ  ｏｆ  ｆｕｌｌ  ｓｐｅｅｄ）を各クロックドメインに提供し、所定のブロックが特定のアプリケーションにおいて使用されない場合、電力節約のためのクロックをオフにゲート制御するように構成され得る。
【００２０】
３つの自走タイマー１２３ａ、ｃは、マイクロプロセッサ１０１の支援によってＡＰＢバス１１２をオフにするように動作する。ＲＴＣブロック１２４は、システムにリアルタイムクロック情報を供給する。
【００２１】
メモリリマッピング１２５ａブロックは、異なるオンチップおよびオフチップメモリ構成のための３つの異なるメモリマッピングスキームを含む。
【００２２】
割り込みコントローラ１２６は、全ての割り込みリソースを収集し、リクエストをマイクロプロセッサ１０１および／またはＤＳＰ１０２に生成する。
【００２３】
ＤＳＰ１０２は、ＤＳＰ周辺バス１２７によって動作する。内部プロセッサ通信（ＩＰＣ）ブロック１２８は、同期化のためのハードウエアおよびメッセージ交換を、ＤＳＰ周辺バス１２７およびＡＰＢバス１１２を介してマイクロプロセッサ１０１およびＤＳＰ１０２の間で提供する。
【００２４】
ＡＰＢバス１１２およびＤＳＰ周辺バス１２７の両方をオフにするようにさらに動作する１２Ｓイン／アウト（Ｉｎ／Ｏｕｔ）ブロック１２９は、１２Ｓモードまたはバーストモードのいずれか、およびａａ４−チャンネル出力モードにおいて２−チャンネル入力を支援する。これは、例えば外部ＡＤＣ／ＤＡＣまたは伝達−ｄｅｍｕｘｅｒに接続するように使用され得る。
【００２５】
パルス幅モジュレータ（ＰＷＭ）１３０は、最小外部受動素子を必要とするアナログオーディオ出力を供給し、１２Ｓ出力ブロックからの４つのチャンネル出力の２つを共有する。
【００２６】
ＤＳＰタイマー／ＳＴＣブロック１３１は、ＤＳＰルーチンを同期化する目的のＤＳＰサブシステムにタイマーおよびシステムタイミングクロックを供給する。
【００２７】
Ｇフェース１３２は、スレーブＡＨＢ／ＤＳＰインターフェース１１１を介したメインバス１０３とＤＳＰメモリとのインターフェースをとる。示された実施形態では、ＤＳＰ１０２は、専用オンチッププログラムメモリ１３３および２つのブロックのデータ（データ０およびデータ１）メモリ１３４および１３５に関連付けられる。グローバルＲＡＭ１３６は、マイクロプロセッサ１０１とＤＳＰ１０２との間の通信バッファを提供する。全てのＤＳＰメモリ１３３〜１３５およびグローバルＲＡＭａ１３６は、マイクロプロセッサアドレス空間にマッピングされることにより、マイクロプロセッサ１０１は、これらのメモリを初期化し、データをＤＳＰ１０２に伝達する。グローバルＲＡＭ１３６はまた、ＤＳＰアドレスのためのＤＳＰプログラム／データ０／データ１アドレス空間にマッピングされる。
【００２８】
システム１００の好適なバス構造は、図２にさらに詳細に示される。ここでは、ローカルＡＨＢアービター（ブロック２０１）は、マイクロプロセッサ１０１マスターとローカルＡＨＢＳｙｎｃｈおよびハンドシェイク（ＡＨＢＩＦ）マスター２０２との間の調停を制御し、ローカルＡＨＢバス１０４の制御を許可する場合、ＡＨＢＩＦマスター２０２に最も高い優先度が与えられ、マイクロプロセッサ１０１に最も低い優先度が与えられる。他のバスマスターがローカルＡＨＢバス１０４へのアクセスをリクエストしない場合、マイクロプロセッサ１０１は、バスへのデフォルトアクセスが許可される。
【００２９】
ＡＨＢＩＦマスター２０２は、ローカルバス１０４およびグローバルバス１０３からおよびこれらへの処理（ｔｒａｎｓａｃｔｉｏｎ）の同期化およびハンドシェイクを実行する。
【００３０】
ローカルＡＨＢバス１０４の所与のマスター（一般的にブロック２０３によって示される）が、グローバルＡＨＢバス１０３のスレーブ（一般的にブロック２０４によって示される）への処理を開始する場合、以下の動作が発生する。
【００３１】
（１）開始マスターはローカルバス１０４と調停し、一旦制御を受信すると、有効な処理データおよび制御信号を送信し、
（２）ローカルバス１０４から有効なトランザクションデータおよび制御信号をキャプチャし、そしてグローバルＡＨＢアービター（ブロック１０９）にバスリクエスト信号を生成するように、ＡＨＢＩＦ２０２がローカルＡＨＢアービター２０１へのスレーブとして働く。フラグまた、ローカルＡＨＢマスターによるトランザクションの終了のための待ち状態にエントリの指示を設定し、
（３）グローバルバス１０３を調停するために、このシナリオでは、ＡＨＢＩＦマスター２０１は、グローバルＡＨＢアービターへのマスターとして働く。グローバルバス１０３の制御を安全にした後で、ＡＨＢＩＦマスターは、捕獲されたトランザクションデータおよび制御信号をグローバルバス１０３上に送信し、
（４）グローバルバス１０３上のターゲットグローバルスレーブ２０４は、トランザクションデータおよび制御信号をデコードし、フラグを設定することによるトランザクションの終了を示す。ＡＨＢＩＦマスター２０２は、このフラグを検出し、次いで、ローカルＡＨＢマスターへのトランザクションの終了を示すフラグを設定する。
【００３２】
グローバルＡＨＢバス１０３から動作するマスター（一般的にブロック２０５として示される）が、ローカルＡＨＢバス１０４上のスレーブ（一般的にブロック２０６として示される）へのトランザクションを開始する場合、以下の動作が実行される。
【００３３】
（１）所与のマスターはグローバルバス１０３と調停し、一旦バスの制御を安全にすると、有効なトランザクションデータおよび制御信号を送信し、
（２）グローバルバス１０３から有効なトランザクションデータおよび制御信号をキャプチャし、そしてローカルＡＨＢアービター２０１にバスリクエスト信号を生成するように、ＡＨＢＩＦ２０２がグローバルＡＨＢアービター１０９へのスレーブとして働く。ＡＨＢＩＦマスター２０２また、グローバルＡＨＢマスター２０５によるトランザクションの終了のための待ち状態にエントリを指示するためのフラグ設定し、
（３）ＡＨＢＩＦ２０２は、ローカルＡＨＢアービターへのマスターとして作用し、ローカルバス１０４を調停する。バスの制御を安全にした後、捕獲されたトランザクションデータおよび制御信号をローカルバス１０４上に送信し、
（４）ローカルバス１０４上のターゲットスレーブ２０６は、トランザクションデータおよび制御信号を復号化し、フラグを設定することによるトランザクションの終了を示す。これに応答して、ＡＨＢＩＦマスター２０２は、所与のグローバルＡＨＢマスター２０５へのトランザクションの終了を示すフラグを設定する。
【００３４】
２つのマスター（それらのマスターの内いずれもＡＨＢＩＦマスター２０２ではない）ローカルバス１０４およびグローバルバス１０３のそれぞれの制御を有し、ＡＨＢＩＦマスター２０２の反対側上のスレーブへのアクセスを試みる場合、デッドロック状況が生じ得る。デッドロックは、ローカルＡＨＢマスターによって開始されたトランザクションの終了を再試行命令を用いて強制することによって破壊される。これは、ＡＨＢＩＦがローカルＡＨＢマスターになること、およびグローバルＡＨＢマスターによって開始されたトランジスタを完成することを可能にする。
【００３５】
ＤＳＰに対するＡＨＢスレーブインターフェース１１１は、マイクロプロセッサ１０１が、ＤＳＰ１０２およびグローバルメモリ１３６の異なるローカルメモリ１３３〜１３５に対する読み出しおよび書き込みリクエストを送信することを可能にする。さらに、インターフェース１１１は、マイクロプロセッサおよびＤＳＰクロックドメインを同期化し、必要なハンドシェイキングを実行する。特に、インターフェース１１１は、現在許可されたローカルまたはグローバルＡＨＢマスター２０３／２０５からのトランザクションリクエストに応答する。次いで、トランザクションリクエストは、ＧＦＡＣＥ１３２に送られ、個別のメモリ選択信号（ｘ＿ｓｅｌ、ｙ＿ｓｅｌ、ｐ＿ｓｅｌ、およびｇ＿ｓｅｌ）は、対応するアドレスから復号化される。
【００３６】
ＤＳＰに対するＡＨＢスレーブインターフェース１１１は、２つの異なるクロックドメイン間で動作する。好ましくは、ＤＳＰクロックドメインの周波数は、マイクロプロセッサクロックドメインの周波数の整数倍であり、両方のドメインのエッジは、各マイクロプロセッサクロックドメインの立ち上がりエッジに対して位置合わせされる。従って、ＤＳＰドメインがより速いクロックに基づく場合、そのサイクルの間に、マイクロプロセッサが複数のメモリアクセスを実行することを妨げることが必要となる。好ましくは、次のマイクロプロセッサクロックドメイン立ち上がりエッジの前に、最後のＤＳＰサイクルをインターフェース１１１に示す信号がクロック発生器から取り出される。このことから、マイクロプロセッサメモリアクセスは、ＤＳＰ競合がない場合には、第１サイクルにのみ制限されるか、またはＤＳＰ競合が発生する場合、第２サイクルに制限され得る。全ての他のサイクルはＤＳＰにロックされる。
【００３７】
ＧＦＡＣＥ１３２は、マイクロプロセッサ１０１およびＤＳＰ１０２とグローバルおよびＤＳＰ専用メモリ空間の両方とのインターフェースをとる。特にＧＦＡＣＥ１３２は、これらのメモリ空間への全てのアクセスを管理し、ＤＳＰおよびマイクロプロセッサからの競合するアクセスを解決し（これらの競合が発生する場合）、そしてＤＳＰからのグローバルメモリへのパラレルアクセスをシリアル化する。一般的には、競合は、マイクロプロセッサおよびＤＳＰの両方が同じメモリモジュールにアクセスする場合、ＤＳＰの低いクロック位相を拡張することによって解決される。議論の目的のために、メモリ空間は、ｘメモリ、ｙメモリ、プログラム（ｐ）メモリ、およびグローバル（ｇ）メモリである。
【００３８】
ＤＳＰ１０２およびマイクロプロセッサ１０１は、同時に同じメモリブロックへのアクセスを試みる。ＧＦＡＣＥ１３２は、以下の動作を実行する。
【００３９】
（１）第１のシステムクロックサイクルでは、ＤＳＰリクエストが提供される。書き込みに対して、書き込み情報がメモリに書き込まれる。読み出し（ｌｅａｄ）の場合、ＧＦＡＣＥ１３２は、メモリからデータを取り出し、このデータを内部レジスタに格納し、
（２）ＤＳＰクロックの高位相は、その通常の幅の３倍に拡張される。この間に、第２のシステムクロックサイクルでは、ＧＦＡＣＥ１３２は、マイクロプロセッサ１０１のリクエストを提供し、
（３）マイクロプロセッサ１０１のリクエストの提供の後、ＧＦＡＣＥ１３２は、読み出しレジスタにおける情報にアクセスすることによってＤＳＰ読み出しを終了し、ＤＳＰクロックをその通常のデューティーサイクルに戻す。
【００４０】
ＤＳＰ１０２とＧＦＡＣＥ１３２との間に供給された信号が提供され、ＤＳＰがメモリタイミングにおける１つのサイクルストレッチをリクエストすることを可能にする。ＤＳＰがこの信号をアサートする場合、このサイクルで競合がない場合、ＧＦＡＣＥ１３２は、ＤＳＰおよびＲＡＭクロックの両方を拡張する（ＤＳＰとマイクロプロセッサとの間の競合がある場合、拡張のための必要性がない。なぜなら、ＤＳＰは、自動的に１サイクルで止まってしまうためである）。
【００４１】
示された実施形態では、ＤＳＰ１０２は、図１において１５０で一般的に示されたＸ、Ｙ、およびＰで示された３つのメモリバスによって動作する。にもかかわらず、グローバルメモリ１３６は、１つのポートのみを有する。従って、これらのバスの１つ以上が同時にグローバルメモリへのアクセスを試みる場合、ＧＦＡＣＥ１３２は、競合を避けるリクエストをシリアル化する。ＧＦＡＣＥ１３２はまた、ＤＳＰクロックの高位相を拡張しながら、グローバルメモリへのアクセスの必要数を実行する。全てのアクセスを終了させる場合、ＧＦＡＣＥ１３２は、ＤＳＰメモリサイクルを終了させ、ＤＳＰクロックをその通常のデューティーサイクルに戻す。マイクロプロセッサ１０１がこのプロセスの間のグローバルメモリ空間へのアクセスをリクエストする場合、ＤＳＰは、マイクロプロセッサアクセスのためのさらなるクロックサイクルのために戻される。
【００４２】
好適な実施形態では、ＧＦＡＣＥ１３２は、コヒーレンシーハードウエアを含まず、従って、コヒーレンシーは、ソフトウエアプログラミングにおいて維持される。
【００４３】
ＡＨＢ／ＡＰＢブリッジ１１３は、メイン（グローバル）バス１０３およびＡＰＢバス１１２にわたっている。任意のＡＨＢバスマスターがＡＰＢバス上に配置されたアドレス空間へのアクセスを望む場合、ブリッジは、ＡＨＢからＡＰＢフォーマットに信号を変換し、メインバスが周辺バスクロック（ＰＣＬＫ）よりも高いＨＣＬＫ（高速クロック）において動作する場合、その信号を再タイミング調整する。
【００４４】
マイクロプロセッサ１０１は、ローカルＡＨＢバス１０４に接続された８Ｋ×３２ＲＡＭおよび６Ｋ×１６ＲＯＭを含む専用オンチップメモリサブシステム１３７によって動作する。マイクロプロセッサ１０１は、ＲＡＭおよびＲＯＭ部へのバイト、ハーフワード、およびワードアクセスを実行し得る。ラッパー１３８は、ＲＡＭおよびＲＯＭ  ＡＨＢコンプライアントスレーブデバイスを作成する。マイクロプロセッサ１０１がワード読み出しを実行する場合、好適なＲＯＭ空間が１６ビット幅であるに過ぎないために、ラッパー１３８は、ＲＯＭへの２つの連続的な読み出しを発行し、２つの読み出し結果を３２ビットワードに集中し、これによりマイクロプロセッサ１０１に戻される。
【００４５】
テスト可能性を高め、作成テスト時間を減少させるために、弱い書き込みテスト回路１３９は、ＲＡＭ保持テスト速度を加速するために第２のＲＡＭに構築される。このＲＡＭは、弱い書き込みモードに独立して詰め込まれ得る２つの等しいサイズのバンクに分割され得ることにより、１つのバンクがテストモードにあり、他のバンクがプログラムをテストするためにスクラッチパッドとして使用され得る。
【００４６】
ＴＩＣ１０８がマイクロプロセッサ１０１によるデバッグを支援し、最も高い優先度を有するＡＨＢバスマスターとして働く。このＴＩＣバス接続は、図３のブロック図に示される。システムデバッグがテストモードまたは非セキュリティーモードにおいて可能にされる場合、ＴＩＣドライバは、デバッグ目的のための全体のシステムにおいて全てのアドレスマッピングされたレジスタおよび／またはメモリへのアクセスを可能にする。ＴＩＣモードが有効にされる場合、ＴＩＣは３２ビット２方向データバス３０１として３２ピンの外部メモリインターフェースを使用する。外部クロック（ＥＸＴＣＬＫ１）は、メインＡＨＢバス１０３と同期をとるために、およびメインＡＨＢバス１０３とＴＩＣバスとを同期化するために使用されることにより、外部ＴＩＣコントローラは、ＴＩＣブロックを介してＡＭＢＡバスマスターとしてメインＡＨＢバスへのアクセスを可能にする。ＴＩＣ１００が外部ＴＩＣドライバーソフトウエアによって関係付けられている場合、ユーザは、マイクロプロセッサ１０１プロセッサによる介入を要求することなく直接ＴＩＣを介してマイクロプロセッサ１０１デバイスの全てをシミュレートし得る。
【００４７】
ディスプレイインターフェース１１０は、複数のＬＣＤディスプレイの内の任意の１つへのインターフェースを支援するＬＣＤディスプレイコントローラを含む。特に、システム１００は、同様のアクティブＴＦＴパネルよりも少ないパワーを必要とする利点を有するＳＴＮ（超ねじれネマチック）ディスプレイパネルを駆動し得る。ＬＣＤコントローラは、ピンと汎用入力／出力ポート１４０とを共有する。アプリケーションにおけるシステム１００の統合されたＬＣＤコントローラは、ロウエンド（文字ディスプレイ）とハイエンド（グラフィックディスプレイ）との間のディスプレイ解像度ギャップと３２０×２４０型解像度とを有利に結合する。
【００４８】
図４は、好適なＬＣＤインターフェース／ディスプレイコントローラ１１０の機能的ブロック図である。本実施形態では、ディスプレイインターフェースは、ＡＨＢバスマスター４０１およびＡＨＢスレーブ４０２の両方を含み、メインＡＨＢバス１０３をオフに動作する。
【００４９】
クロック生成ブロック４０３は、フレームリフレッシュ速度の関数として選択されたプリスケールファクタによってバス１０３からＡＨＢＣｌｋに分割することによって内部ピクセルクロック（ｉＰｉｘＣｌｋ）を生成させる。このクロックは、ディスプレイコントローラ論理の主要部を駆動させ、単一のピクセルまたはサブピクセルを表す。クロックｉＣＬ２は、外部デバイスに対するインターフェースの幅の関数としてピクセルクロックに分割することによって生成され、データｍｕｘｉｎｇ  ｉＣＬ２は、複数のドットがサイクル当たりデータバスにわたって同期がとられることを可能にする場合、このような動作のために内部で使用される。クロックＣＬ２＿ＯＵＴは、外部パネルを介してサイクル当たり１〜８ドットの間で同期をとるＬＣＤドットクロックであり、ｉＣＬ２と同様であり、クロックＣＬ１の遷移のために挿入されたデッドタイム有する。
【００５０】
クロックＣＬ１は、直線ラッチパルスであり、ディスプレイライン（最後のドットによって示されたように）の末端において１つのＣＬＫクロック周期の間水平−垂直（ＨおよびＶ）タイミング発生器４０５によって生成される。ＣＬ１は、ドットのラインをディスプレイを駆動するためのバッファにラッチするために使用され、次のディスプレイラインを生成するための準備においてＬＣＤパネルのロウドライバをインクリメントする。さらに、ＨおよびＶタイミング発生器４０５は、ＬＣＤフレーム同期化（ＦＲＭ）およびＬＣＤ  ＡＣバイアス駆動信号を生成する。ＦＲＭ信号は、ロウライン１をリセットするためにディスプレイパネルによって使用され、バスマスター４０１からのフレーム信号の終了を受信した後に生成される。ディスプレイドライバー電圧周波数がＤＣまで下がらないことを確実にするためにＭＣＬＫが使用される。
【００５１】
データパス４０４は、プログラム可能な閾値信号ＦＩＦＯＴｈｒｓｈの関数としてバスマスター４０１によってメインバス１０３からデータで満たされ続けるＦＩＦＯ４０６を含む（ＡＨＢクロックドメインにおいて）。外部ディスプレイパネルに対して必要とされたピクセル当たりのビット数の関数としてピクセルクロックドメインにおけるＦＩＦＯからデータが読み出される。ＦＩＦＯから取り出されたデータは、グレイスケールを支援するパレットにアドレスするために使用される。データパス４０４はまた、フレームレート変調、複製（ｓｗｉｚｚｌｅ）、および赤／青スワップ等の動作を実行する。フレームレート変調は、グレーシェードを生成するために液晶の遅い応答時間を利用するＬＣＤコントローラによって使用された技術である。本方法は、多重フレームにわたって遅れずにＬＣＤパネルのデューティーサイクルを変更させる。
【００５２】
図５にさらに詳細に説明されたように、ＤＭＡブロック１０６は、２つの別個のＤＭＡチャンネル５０１および５０２、２方向アービター５０３、共有されたＡＨＢバスマスター５０４、および共有されたＡＨＢレジスタスレーブ５０５を含む。このリクエストは、ＵＳＢポート１１４等のシステムリソースから発行される。各ＤＭＡチャンネルは、独立して使用されてもよいし、任意のリクエスト信号専用であってもよい。
【００５３】
ＡＨＢハブ１０３は、パイプラインアドレスおよびデータアーキテクチャに基づく。従って、ＤＭＡ転送動作は、一般的に以下のように進行する。イネーブルされた場合、所与のＤＭＡチャンネル５０１／５０２は、ＡＨＢバスリクエストを生成する内部リクエストを実行する。このリクエストに許可が与えられると、適切なＤＭＡチャンネル信号は、内部２方向アービター５０３に基づいてルーティングされ、選択されたチャンネルは、以前のデータサイクルの間にバス上で駆動されたソース場所アドレスによる転送を開始する。全ての転送の間、個々のチャンネルは、内部チャンネルクロック信号をアサートし、ＤＭＡアービター５０３を現在のチャンネルにロックすることにより、アクティブＤＭＡチャンネルは、割り込まれることなく転送を終了し得る。タイムアウトが任意のスターベーションを回避するために使用され、より高い優先度のマスターがＡＨＢバス１０３の制御を想定することを可能にする。
【００５４】
各ＤＭＡチャンネルのためのソースおよび宛先アドレシングが、増加、減少、または同じ値でとどまるように独立してプログラミングされ得る。一般的に、レジスタ内の３２−ビットソースおよび宛先アドレスポインタは、ＤＭＡ転送構成を定義し、各チャンネルのためのレジスタ内の制御ビット構成セットに基づいて増加および減少される。増加および減少ビットが同じ値である場合、関連付けられたアドレスは同じままである。この構成は、Ｉ／Ｏポートに／Ｉ／Ｏポートからの転送のために使用される。特定の長さのＤＭＡ転送を実行する場合、６４Ｋ転送よりも少ない１までの転送カウント値もまたレジスタ内で設定される。
【００５５】
同期化されない転送は、レジスタビットのソフトウエア構成によって開始され、ＤＭＡチャンネルがバスへの許可されたアクセスがある度に発生する。同期化された転送は、種々のリソースからのＤＭＡリクエストによって制御されたＤＭＡチャンネル（シリアルチャンネル転送または受信バッファ）である。
【００５６】
アービター５０３は、同時バスアクセスリクエストがメインＡＨＢバス１０３上の異なるバスマスターによって発行される場合に、バスアクセス許可を許可するためのＡＭＢＡバスプロトコルに従う。再度、システム１００内の全部で４つのＡＭＢＡバスマスター、および以下のように、最高から最低までのそのバスアクセス優先度ｆが存在する。すなわち、（１）ＴＩＣ１０８、（２）ディスプレイインターフェース１１０、（３）ＤＭＡコントローラ１０６、および（４）ローカル／メインＡＨＢインターフェース１０５である。
【００５７】
外部ＳＲＡＭ／フラッシュメモリコントローラ（ＳＭＣ）１０７は、８つの外部メモリブロックを支援する。そのブロックのそれぞれは、６Ｍバイトまでのアドレス空間を有する。システム１００の好適な実施形態では、図６に示されるように、４つのＳＲＡＭブロックが使用され、そのブロックのそれぞれは、１Ｍバイトのアドレス空間を有する（その内の１つのブロックはフラッシュＲＡＭである）。各バンクは、それ自体の構成レジスタを有し、プログラマーは、特定のタイプの外部メモリを支援するようにバンクを構成し得る。図６では、バンク０〜３のように指定されたバンクは、１６ビットの外部ＳＲＡＭを含み、バンク４のように指定されたバンクは、８ビット幅の外部フラッシュＲＡＭを含む。
【００５８】
割り込みコントローラ１２６は、ＡＰＢ１１２周辺機器であり、マイクロプロセッサ１０１によって構成される。ＤＳＰ割り込みを含む、レベルに敏感な、チップ内の全ての割り込みは、このブロックを通過する。図７は、ＡＲＭ専用割り込みコントローラ７０１に基づいて、割り込みコントローラ１２６のブロックのより詳細な機能ブロック図である。
【００５９】
割り込みリクエスト空間のサイズ（ＩＲＱサイズ）は、例示されたインプリメンテーションでは３２である。より低い１７の割り込みソース（ソフトウエアにプログラムされた割り込みであるＩＲＱ１を含む）は、マイクロプロセッサ１０１専用である。マイクロプロセッサ１０１  ＩＲＱに対してハードウエア優先度がなく、従って、ソフトウエア割り込みハンドラがマイクロプロセッサ１０１内のソースレジスタを読み出し、アサートされた割り込みを優先順位付けする。ＦＩＱ（第１の割り込みリクエスト）がｆｌＲＱから別個に生成され、マイクロプロセッサ１０１空間のみにさらにマッピングされる。
【００６０】
より高いほうにマッピングされるＤＩＲＱ（ＤＳＰのための割り込みリクエストソース）は、ＩＲＱである。ＤＳＰ割り込みの全ては、レジスタ内でビットを設定することによってソフトウエアマイクロプロセッサ１０１によって生成され得る。ＤＩＲＱは、マイクロプロセッサ−ＤＳマスクレジスタ７０２を設定することによってマイクロプロセッサ１０１に個別にゲートオフされ、マスクレジスタ７０２においてＤＳＰを設定することによってＤＳＰからマスクオフされ得る。
【００６１】
バッテリーチェッカー／ボリュームモニタは、好ましくは、８ビットの解像度および１００Ｈｚの名目上のサンプリングレートを有するデュアルスロープ統合アナログデジタルコンバータ（ＡＤＣ）である。ブロック図が図８のように提供される。ＡＤＣへの入力は、マイクロプロセッサ制御下で、２−１アナログｍｕｘ８０１から入り、バッテリ電圧またはボリューム入力電圧のいずれかを選択する。出力データレジスタ８０２は、カウンタ８０７の現在のサンプルの値を示す３２ビットレジスタであり、より高い２４ビットは、ゼロに設定される。出力レジスタ８０２は、各サンプル期間で更新され、マイクロプロセッサへの割り込みは、データが準備態勢にある場合に生成される。デュアルスロープ統合およびＡ／Ｄ変換は、従来の積分器８０５およびコンパレータ８０４に基づく。可能性（ｅｎａｂｌｅｍｅｎｔ）、構成、および状態データは、論理８０８の制御下でマイクロプロセッサ１０１空間内の構成／状態レジスタ８０３によってインプリメントされる。
【００６２】
システム１００は、プロセッサを動作させ、オーディオサンプリングレートを設定し、周辺機器をクロックするために２つの同一のＰＬＬ１２１ａ、ｂをチップ上に有する。システムクロック生成スキームのブロック図は、図９に示される。
【００６３】
ＰＬＬ１２１ａ、ｂの両方は、基準クロックとしてオンチップ３２．７６８ｋＨｚの発振器１２０を使用する。各ＰＬＬ１２１ａ、ｂは、温度および供給電圧などの作動環境の変化を説明するために、対応するＶＣＯ９０２ａ、ｂにバイアス電流を設定し得る較正回路９０１を含む。
【００６４】
好ましくは、第１のＰＬＬ（ＰＬＬ１）が使用され、過剰にサンプリングされたオーディオ周波数（５１２ＦＳ）、システムクロックＳＹＳＣＬＫ、および除数Ｄ１、Ｈ１、およびＧ１を有する分周器９０３ａ、ｃを用いるＵＡＲＴクロックを生成するために使用される。ＳＹＳＣＬＫは、ベースクロックＨＣＬＫ（高速バスクロック）、ＭＣＬＫディスプレイクロック、ＰＣＬＫ（周辺クロック）、およびＤＳＰＣＬＫディスプレイクロックを生成するためにシステムクロック分周器９０４によってさらに分周される。第２のＰＬＬ（ＰＬＬ２）が使用され、ＵＳＢクロックおよびバックアップＵＡＲＴクロックを生成するために使用される。ＰＬＬ２は、ファクタＧ２およびＤ２によるＰＬＬ出力によって分周することによってこれらのクロックを生成する分周器９０５ａ、ｂに関連付けられる。プリスケーラ９０６ａ、ｂは、それぞれＰＬＬ１２１ａ、ｂの入力の前に値Ｍ１およびＭ２によって基準クロックの分周を支援する（ｄｓｕｐｐｏｒｔ）。
【００６５】
以下の表は、これら２つのＰＬＬの支援する周波数および対応する構成を示す。
【００６６】
【表１】
2004523051.tif 000003
【００６７】
【表２】
2004523051.tif 000004
クロック制御ブロック１１２は、ＰＬＬに対して除数および他の動作パラメータを設定するのに必要とされたレジスタを含む。
【００６８】
１２Ｃインターフェース１１８は、２つの主な機能（すなわち、オンチップスタートアップを駆動する１２Ｃ構成インターフェースの機能、および１２Ｃデバイスまたは同様の２および３ワイヤシリアルデバイスのいずれかを動作するための汎用シリアルインターフェースの機能）を実行する。
【００６９】
好適なインプリメンテーションは、所与のシステム構成に対して要求され得るように、パワーアップ構成情報を含む外部シリアルＥＥＰＲＯＭへの接続を可能にする。ハードウエアリセットの後、状態マシンは構成データのロードを試み、このデータが存在する場合、構成データの第１の４０バイトは、オンチップ構成レジスタのセットに転送される。ＥＥＰＲＯＭデバイスが存在しない場合、またはヘッダーが無効である場合、構成レジスタは、以前の状態に残される。ＥＥＰＲＯＭデバイスは、制御レジスタからの読み出し／書き込みによってホストプロセッサにアクセス可能である。
【００７０】
汎用制御インターフェースモードでは、１２Ｓインターフェースは、汎用Ｉ／Ｏのために使用され得る。各ピンは、入力または出力として制御可能であり、ソフトウエア制御下で種々のシリアルインターフェースをインプリメントし得る。例えば、インターフェース１１８は、外部パワー制御デバイス（フラッシュＥＥＲＯＭプログラミング電圧、およびＰＣＭＣＩＡインターフェース動作電圧を制御するために使用されたデバイス等）を用いて通信するように構成され得る。
【００７１】
示された実施形態におけるＵＳＢポート１１４は、ＵＳＢ仕様改訂（ＵＳＢ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｒｅｖｉｓｉｏｎ）１．１をコンパイルする。その主な目的は、インターネットアクセスを用いてホストＰＣから音楽ファイルをダウンロードおよび／またはアップロードすることである。ＵＳＢデバイスポートは、一般的には、電源内蔵式であり、６４バイト／パケットバルクインおよびバルクアウトモード、ならびにベンダー／クラスカスタムコマンドを支援する。デバイスがバルク転送を使用するため、最高速デバイス（１２ＭＢｐｓ）である。一般的なブロック図が図１０に提供される。
【００７２】
ＵＳＢデバイスコントローラ（ＵＤＣ）１００１は、トランシーバ１００２を介して外部ＵＳＢ準拠デバイスとインターフェースをとり、ＵＤＣバス１００３およびＵＳＢ−ＡＨＢブリッジ１００４を介してメインバス１０３とインターフェースをとる。ブリッジ１００４は、専用制御および構成レジスタを用いて構成され、バス１０３および１００３の橋渡しをする。ＦＩＦＯ１００７ａ、ｂの対および関連付けられた状態マシン１００８は、バルク転送を支援する。ここで、一方のＦＩＦＯはデータのパケットを保持し得るが、他方は、マイクロプロセッサを用いてデータを交換する。
【００７３】
ＵＳＢポート１１４は、構成０（制御エンドポイントは標準的なコマンドのためにある）または構成１（制御エンドポイントはベンダー／クラスコマンドのためにある）のいずれかで動作し得る。ストリング記述子制御論理１１１０は、標準的な構成でストリングコマンドを復号化する。ベンダー／クラスコマンドは、復号化されないが、その代わり、このコマンドが格納され、ベンダー／クラス制御論理によりマイクロプロセッサ１０１に割り込む。その後、マイクロプロセッサ１０１は、ベンダー／クラスコマンドをソフトウエア制御下で復号化する。
【００７４】
マイクロプロセッサ１０１は、埋め込まれたＩＥＥＥ標準境界スキャン回路（ｂｏｕｎｄａｒｙ  ｓｃａｎ  ｃｉｒｃｕｉｔ）（ＪＴＡＧ）を含む。ドライバーソフトウエアをサポートすることによって、ＪＴＡＧは、ユーザが、マイクロプロセッサの内部状態を見、メインアプリケーションからの破壊点を設定し、とりわけ特定のベクトルを適用することを可能にする。
【００７５】
例示的実施形態でのＤＳＰデバッグブロック１４１は、サブブロックを含み、このブロックの各々は、Ｘ／Ｙ／Ｐ  ＤＳＰメモリアドレスバスをモニタしてもよいし、マイクロプロセッサ１０１またはＤＳＰ１０２への割り込みをアサートしてもよいし、フリーズが有効である場合、ＤＳＰクロックをフリーズする。これらのサブブロックの内の１つは、図１１に示される。
【００７６】
デバッグサブブロックの各々は、１ビットのリードオンリー「オーナー（ｏｗｎｅｒ）」フィールドを有する。このビットが「０」である場合、このブロックのオーナーは、マイクロプロセッサ１０１であり、このビットが「１」である場合、オーナーは、ＤＳＰ１０２である。このオーナーは、「他のＷｒ」フィールドに書き込み得る。オーナーが設定する場合、他のプロセッサがデバッグブロックの残りのフィールドに書き込むことを可能にする。この「デバッグＥｎ」フィールドは、デバッグブロックのアクションが効率的になる前に設定され、このブロックが使用状態にない場合、パワーをセーブするようにさらに使用される。この「ＣｌｋフリーズＥｎ」は、デバッグイベントのトリガにおいて設定される場合、ＤＳＰクロックをフリーズさせる１ビットフィールドである。「Ｍｅｍ」は、デバッグイベントの間に観測されるべきメモリを選択する２ビットフィールドである。開始アドレス範囲および終了アドレス範囲が設定されることにより、アドレスがこれらの範囲間にある場合、イベントがトリガする。「ヒットカウント」は、デバッグイベントが発生した時間数をトラッキングする。Ｎｕｍ＿ｈｉｔｓ＿ｆｏｒ＿ｔｒｉｇｇｅｒは、割り込みが有効にされるか、またはクロックがフリーズする前に、アドレス範囲へのヒットの数を設定するフィールドである。
【００７７】
全てのこれらの周辺機器がＤＳＰ周辺空間にマッピングされた後、ＤＳＰ周辺機器をデバッグすることは、ＤＳＰデバッグブロック１４１を介して支援される。
【００７８】
内部プロセッサ通信ブロック１２８は、マイクロプロセッサ１０１およびＤＳＰ１０２がメッセージを交換し、タスクを同期化かつスケジューリングすることを可能にする。通信は、システム（ソフトウエア）インプリメンテーションレベルで２方向割り込み駆動スキームとして主に定義される。このブロックのハードウエアは、複数の割り込みソースの数をＤＳＰからマイクロプロセッサ１０１に提供する（マイクロプロセッサ１０１は、上述したように、割り込みコントローラを介してＤＳＰ１０２に割り込む）。割り込みのコンテンツは、システムアプリケーションによって決定される。
【００７９】
デジタルオーディオ入力／出力１２９は、図１２にさらに詳細に説明される。このブロックは、２つの一次サブブロック１２ＳＯＵＴ  １２０１および１２ＳＩＮ  １２０２を介してオーディオデータ入力／出力を供給する。
【００８０】
１２ＳＯＵＴ１２０２は、オーディオ出力データピン（Ａｕｄ＿ｏｕｔ）を駆動し、オーディオデータを供給し、ＰＷＭ１３０およびＳ／ＤＦＩＦトランスミッタ１２０３の制御を提供する。好適な実施形態では、４つの出力チャンネルが４つのＦＩＦＯを介して支援され、各ＦＩＦＯは、１６エントリ深さおよび２４ビット幅を有する。チャンネル構成は、マイクロプロセッサ１０１および／またはＤＳＰ１０２によって読み出しおよび書き込み可能であるレジスタにインプリメントされる。ＩＳＯＵＴブロック１２０２は、そのＦＩＦＯがエンプティであるか、または半分エンプティである場合に、制御マイクロプロセッサＤＳＰに対する割り込みを生成し得ることにより、ＦＩＦＯが再度満たされ得る。
【００８１】
ＳＰＤＩＦトランスミッタ１２０３は、ａｕｄ＿ｏｕｔピンを介してＳＰＤＩＦフォーマットでＣｈ＿０およびＣｈ＿１からシリアルオーディオデータを転送し、ＰＷＭエンジン１２０４および１２ＳＩＮブロック１２０３と共に使用され得る。ＳＰＤＩＦトランスミッタ１２０３または１２ＳＯＵＴ１２０１が一度に使用され得る。
【００８２】
１２ＳＩＮブロック１２０２は、２つのフォーマットのいずれかにおいてオーディオ入力データを受け取る。すなわち、ＬＲ／ＳＣＬＫクロックによって同期化されたシリアルデータまたはＬＲＣＬＫへの同期化なしでバーストモードでのビットストリームである。この同期化されたデータは、非圧縮ＰＣＭまたは圧縮されたバーストデータのいずれかであり得、非同期化データはバースト圧縮データであり得る。ブロックは、１２ＳＯＵＴブロック１２０１からＳＣＬＫおよびＬＲＣＬＫをとる。例示的実施形態では、１２ＳＩＮポート１２０２は、２つのチャンネルＦＩＦＯからなり、各１６エントリは深くなり、チャンネル構成がレジスタで特定される。このブロックは、ＦＩＦＯが半分満たされるかまたは全部満たされるかのいずれかである場合、制御マイクロプロセッサＤＳＰまたはシーケンスデータ交換に対する割り込みを生成する。
【００８３】
ＰＷＭブロック１３０は、Ａｕｄ−ｏｕｔポートを介して外部ヘッドフォンまたはスピーカを駆動するための左および右チャンネルパルス幅変調（ＰＷＭ）を生成する。
【００８４】
システム１００は、他の機能的ピンで多重化され、マイクロプロセッサ１０１に対してアクセス可能な、全体で３２の汎用Ｉ／Ｏ（ＧＰＩＯ）ピンを有する。ＧＰＩＯ機能は、図１のブロック１４０で一般的に示され、図１３にさらに詳細に示される。
【００８５】
例示的実施形態における３２のＧＰＩＯ１３０１ピンは、ＡＰＢインターフェース１３０２を介して個々にマイクロプロセッサ１０１によって制御され得る。各ＧＰＩＯピンは、そうするように選択された場合、マイクロプロセッサ１０１への割り込みリクエストを生成し得る。特に、割り込みブロック１３０３は、レジスタにおいて定義される、任意のＧＰＩＯピンにおいて発生する４つのイベントの内の１つに応答して１つの割り込みリクエストを生成する。さらなるレジスタは、ＧＰＩＯに対してグローバル割り込み可能なビットとして作用し、個々のピン選択がマスクレジスタを介してなされる。
【００８６】
セキュリティヒューズブロック１１９は、各チップに対して固有のＩＤを与える２５６のヒューズを含む。このヒューズが切断される場合、フラグは、内部セキュリティＲＯＭを可能にする。一方で、ハミングコードがエラー秘匿および訂正のために２５６ビットのヒューズ値に基づいてハードウエアによって生成される。このヒューズ値は、ヒューズがプログラムされる（溶断される）場合のみセキュリティコードによって読み出し可能になる。ヒューズプログラミングに依存して、異なるマイクロプロセッサ１０１のＲＯＭセグメントは、ブートアップのためのマイクロプロセッサ１０１のアドレス場所０にマッピングされる。内部１２Ｋ−バイトマイクロプロセッサ１０１のＲＯＭは、３つの異なるセグメント（１Ｋバイトセキュリティコード、１Ｋ−バイト代替コード、１０Ｋ−バイト通常コード）を含む。
【００８７】
ＲＡＭテストブロック１３９は、弱い書き込みテストモードでＲＡＭを置き得る弱い書き込みコントローラを含む。システム１００では、弱い書き込みテストの目的のために、ＲＡＭは高および低バンクに分割される。同様に、ＤＳＰ  ＲＡＭテストブロック１４４は、ＤＳＰ  ＲＡＭの統合性をテストするための弱い書き込みコントローラを含む。
【００８８】
安全性ゲート／アクセス保護ブロック１４２は、セキュリティヒューズがプログラムされる場合、アクセス保護を提供する。好適な実施形態では、アクセス許可が以下の条件で許可される。
【００８９】
（１）ヒューズがプログラムされない場合（セキュリティチップでない）、アクセス保護は任意の時間で関連しない。
【００９０】
（２）ヒューズがプログラムされる場合（セキュリティチップ）、アクセス保護がデフォルトとして関連される。
【００９１】
（３）マイクロプロセッサ１０１は、保護がイネーブルされる場合、スーパーバイザーモードのみで保護された領域へのアクセスが可能にされる。
【００９２】
（４）マイクロプロセッサ１０１は、保護がディセーブルされる場合、スーパーバイザーまたはユーザモードで保護された領域へのアクセスを可能にする。
【００９３】
（５）保護は、スーパーバイザーモードのみでマイクロプロセッサ１０１によってディセーブルされ得る。
【００９４】
（６）セキュリティーモードでは、ＴＩＣ動作が許可されず、マイクロプロセッサ１０１のみがＤＭＡおよびＬＣＤを有効にし得る。
【００９５】
（７）保護モードレジスタは、特権モードのみにおいてマイクロプロセッサ１０１によって改変され得る。
【００９６】
システム１００は、ハードウエアキャッシュおよび／またはメモリ管理ユニット（ＭＭＵ）を含まないマイクロプロセッサ１０１の設計を支援する「ソフトキャッシュシステム」によって動作する。例えば、システム１００の好適な実施形態では、ＡＲＭ７ｔｄｍｉマイクロプロセッサがマイクロプロセッサコア１０１において使用される。この特定のマイクロプロセッサは、ハードウエアキャッシュまたはＭＭＵのいずれかを含まない。
【００９７】
本発明のソフトキャッシュシステムは、十分にハードウエアキャッシュされたプロセッサベースのシステムに対して以前に利用可能であるのみの「使いやすい」ソフトウエア開発モデルを支援する。さらに、このソフトキャッシュシステムは、実行可能なコードの利用可能な場所を、ＮＡＮＤフラッシュ、ＭＭＣ等のブロックベースおよびシリアルベースのメモリ構造に拡張する。
【００９８】
歴史的に、埋め込まれたＤＳＰおよびキャッシュされていないＣＰＵは、外部パラレルメモリ（ＤＲＡＭ、ＳＲＡＭ、ＮＯＲ  ＦＬＡＳＨ）または内部ＳＲＡＭ／ＦＬＡＳＨのいずれかから外部に直接的な実行コードを有する。外部パラレルメモリからのコードを実行することに関して、ＣＰＵ速度およびパワーは逆に影響される。他方で、内部ＳＲＡＭ／ＦＬＡＳＨメモリは、典型的には著しく小さいことにより、コード開発の間の直接メモリ管理が適切なページングを確実にすることを強制する。特に、全てのルーチンは、ページングおよび同時動作を可能にする所定のフットプリントガイドライン内部に適合しなければならない。所定のアプリケーション（コードの全てがアセンブリ言語で開発される）では、この制限がアドレスされ得る。しかし、高速コード開発のための「Ｃ」のようなより高いレベルの言語を用いても不可能な場合、この問題は解決することが困難である。
【００９９】
ブロックベースおよびシリアルベースのメモリはまた、キャッシングおよび／またはページングスキームの非常に異なる最適化を必要とする。例えば、しばしばこれらのプロトコルは、情報の５１２バイトブロックの読み出しおよび必要なデータを抽出するためにエラー訂正の実行を必要とする。任意のイベントでは、多くの既存のプロトコルおよび新しいプロトコルが連続的に開発され、ハードワイヤードサポートの実現をフレキシブルにしない。
【０１００】
以下にさらに詳細に説明されたように、本発明のソフトキャッシュシステムは、低性能コードのためのこれらの問題を解決する。とりわけ、ハードウエアアシストは、既存の一般的なオンチップＳＲＡＭをキャッシュとして管理するために提供される。さらに、１０００未満のゲートおよびソフトウエアアボートハンドラーの組み合わせは、直接実行可能なＮＡＮＤフラッシュにおいて存在する管理コードの手段を提供する。さらに、このキャッシュメカニズムは、１２８、２５６、５１２において、および１ラインごとに１ｋバイトのプログラム可能なラインサイズを有する遅い速度メモリに対して最適化され、ローカルＳＲＡＭ内の１６ラインのキャッシュ空間を提供するように、関連する論理の１６方向のセットを使用する。
【０１０１】
好ましくは、ソフトキャッシュシステムは、コードを格納するための外部ＳＲＡＭを使用し、データ定数または他の安全な情報のためのコードおよびオンチップメモリを格納するための外部ＳＲＡＭを使用する。例示的実施形態では、外部および内部ＳＲＡＭの２Ｍバイトの仮想（ソフトキャッシュ）メモリ空間がソフトキャッシュ専用であるが、メモリのサイズおよび場所は重要ではなく、実際のインプリメンテーションが変化し得る。
【０１０２】
ソフトウエアキャッシュは、１６方向のセットが関連付けられたシステムとしてセットアップされ、各セットは、ソフトキャッシュメモリ空間における単一のキャッシュラインに関連付けられる。１６セットの内のそれぞれのセットは、タグフィールドおよび有効性ビットを含むエントリによってレジスタにおいて表現される。このキャッシュラインサイズは、１２８、２５６、５１２、または１０２４バイトにプログラムされる。各キャッシュライン空間は、キャッシュラインサイズが、それぞれ１２８、２５６、５１２、または１０２４バイトであるかどうかに依存して、キャッシュラインサイズがＮのより低いオーダーの仮想（ＣＰＵ）アドレスビットＮ−１：０（Ｎは、７、８、９、または１０である）によってアドレス可能である。次いで仮想アドレスの２１：Ｎビットは、キャッシュタグを表す。残りのビット３１：２２は、割り当てられたメモリブロックへのブロックアドレスであり、ハードウエア論理によって制御され得る。ハードウエアコンパレータは、ソフトキャッシュレジスタに格納されたタグフィールドを用いて生成された各ＣＰＵアドレスのタグフィールドを比較する。
【０１０３】
ソフトキャッシュ動作は、図１４のフローチャートで示される。
【０１０４】
ステップ１４０１では、仮想（ＣＰＵ）アドレスがマイクロプロセッサ１０１によって生成され、次いで、そのブロックアドレスがソフトキャッシュアドレス内部にあることを決定するためにステップ１４０２においてチェックされる。仮想アドレスがソフトキャッシュアドレス空間内にある場合が最初に考えられる。
【０１０５】
仮想アドレスからのキャッシュタグは、ステップ１４０３においてハードウエアコンパレータによる対応する１６レジスタエントリにおけるタグフィールドと比較される。整合が発生する場合、ソフトキャッシュ内で整合するエントリに対応するインデックスは、ソフトキャッシュメモリブロックにおける適切な場所への物理アドレスを生成する場合に使用するために獲得される。１６方向キャッシュシステムのために、エントリが０〜１５の４ビットを用いてインデックス付けされる。ソフトキャッシュアドレス空間は、００００において開始し、上方に作用する実施形態では、ＣＰＵアドレスのビットＮ−１：０は、物理アドレスのビットＮ−１：０となり、キャッシュラインにおける場所にアドレスする。
ソフトキャッシュエントリを整合させる４ビットインデックスは、物理アドレスのビットＮ＋３：Ｎを置換し、適切なキャッシュラインを選択するオフセットとして動作する。残りのビット（３１：Ｎ＋４）は、仮想アドレスから生じ、ＲＡＭバンク、ブロック、およびチップ選択のために使用される。ソフトキャッシュメモリ空間にアドレスされた、必要とされた領域の読み出しまたは書き込みが以後発生する。
【０１０６】
例えば、キャッシュラインサイズは２５６バイトにプログラムされる。この場合Ｎ＝８である。従ってＣＰＵアドレスのビット２１：８は、テーブルエントリにおけるキャッシュタグと比較される。あるいは、ヒットがエントリ＃５に発生し、対応する４ビットインデックスが５である。簡単には、メモリのソフトキャッシュ可能なブロックは、任意の選択された開始アドレス０を有する。従って物理アドレス（１６進法）は、０００００５ＣＣである（ＣＣは、キャッシュライン５内部の場所へのＣＰＵアドレスのビット７：０である）。
【０１０７】
メモリ内のソフトキャッシュ領域が所与のアドレス（例えば７ｆｆｆ）で開始し、ダウンロードを作動し得ることに留意のこと。この場合、ビット１４：Ｎは、キャッシュサイズに基づいて改変される。このスキームは、割り込みベクトルを維持する場所００００は、キャッシュの部分とならない。
【０１０８】
次に、比較ステップ１４０３の間にキャッシュミスが発生する。最近の４つのヒット（整合）をトラッキングするハードウエアソフトキャッシュ履歴レジスタが維持される。好ましくは、このインデックスが以前の整合インデックスのインデックスとは異なる場合、このレジスタは、各整合エントリから４ビットインデックスにおいてシフトするシフトレジスタである。言い替えると、２つの連続的インデックスが同一である場合、シフトレジスタにおける２つの連続的インデックスが等しいようにシフティングが発生しない。このレジスタは、キャッシュミスに関して呼び出されたソフトウエア置換ハンドラの実行を改善する。
【０１０９】
ミスに関して、ソフトキャッシュアボートは、アボート状態ビットをレジスタ内で設定することによってマイクロプロセッサ１０１に信号を送る。（このビットは、読み出されたアプリケーションと自動的にクリアされる）。キャッシュミス（アボート）を引き起こさせるアドレスは、アボートアドレスレジスタに書き込まれる。アボート状態ビットを設定することは、置換ハンドラールーチンを開始させる。
【０１１０】
置換ハンドラールーチンは、履歴レジスタのコンテンツに基づいて置換されるべきキャッシュラインを選択する。例えば、置換されたキャッシュラインは、履歴レジスタに格納された４つのインデックスに対応しないこれらのラインの内の１つであり得る。必要とされたデータは、アボートアドレスレジスタにおけるアドレスを用いて、そして選択されたキャッシュラインにロードされることによってメモリの内のその現在の位置からフェッチされ、対応するキャッシュエントリにおけるキャッシュタグが更新される。このソースロケーションは、ＮＡＮＤまたはシリアルフラッシュ中にあり得、ソフトウエアハンドラーは、これらのタイプのメモリに対して通常必要とされた特定のアクセス手順を実行することができる。このメモリをインプリメントするためには、ＤＭＡエンジンおよび他のシステムリソースは、必要に応じて呼び出される。一旦データがキャッシュに入れられ（ｅｎｃａｓｈ）、キャッシュタグが更新されると、キャッシュミスを引き起こす命令は、連続的に再発行される。
【０１１１】
ＣＰＵアドレスがソフトキャッシュアドレス空間内部に存在せず、アボートが発生しない場合、次いで、ＣＰＵアドレスがＲＡＭへの物理アドレスとして使用される（ステップ１４０７）。
【０１１２】
ステップ１４０８において、物理アドレスは、アドレシングされたＲＡＭ空間にアクセスするために使用される。このデータは、ステップ１４０９においてＣＰＵと交換される。
【０１１３】
本発明のソフトキャッシュの１つの例示的な使用は、システム１００のデジタルオーディオプレイヤーアプリケーションにおいて存在する。例えば、全ての低パフォーマンスコードが、プログラマーによって直接管理される高性能コード（ＵＳＢ、オーディオデコーダ、および入力ハンドラ）のみを用いてソフトウエアキャッシュを介して直接的に実行され得る。
【０１１４】
要するに、発明の概念は、ハードウエアキャッシングが制限されるかまたはハードウエアキャッシング能力のないデバイスおよびシステムにおけるデータをキャッシュに入れるためのメカニズムを提供する。さらに、キャッシュミスの置換がソフトウエアにおいて実行されるために、効率的なインターフェースがＭＰＥＧ３ミュージックシステムにおいて典型的に使用されたＮＡＮＤフラッシュメモリ等の特定のアクセスプロトコルを有するメモリを用いて確立され得る。
【０１１５】
本発明が特定の実施形態に関して説明されてきたが、これらの説明は、限定的な意味で構成されることを意味しない。開示された実施形態の種々の改変および本発明の代替的な実施形態が本発明の説明の参照に応じて当業者に明らかになる。概念および開示された特定の実施形態が本発明の同じ目的を実行するための他の構造を改変または設計するための基礎として容易に利用され得ることが当業者によって容易に理解され得る。このような等価な構成が、添付の特許請求の範囲に記載されたように、本発明の意図および範囲から逸脱しないことが当業者によってさらに理解されるべきである。
【０１１６】
従って、この特許請求の範囲は、本発明の実際の範囲内に含まれる任意のこのような改変または実施形態を網羅することが企図される。
【図面の簡単な説明】
【０１１７】
【図１】図１は、本発明の原理を利用するシステムオンチップシステムのハイレベルな機能的ブロック図である。
【図２】図２は、図１に示されたシステムのバス構造を示す機能的ブロック図である。
【図３】図３は、図１のシステムのＴＩＣインターフェースの機能的ブロック図である。
【図４】図４は、図１のシステムのＬＣＤインターフェース／ディスプレイコントローラの機能的ブロック図である。
【図５】図５は、図１のシステムのＤＭＡエンジンの機能的ブロック図である。
【図６】図６は、図１のシステムの外部ＳＲＡＭ／フラッシュメモリコントローラ（ＳＭＣ）の機能的ブロック図である。
【図７】図７は、図１のシステムの割り込みコントローラの機能的ブロック図である。
【図８】図８は、図１のシステムのバッテリーチェッカー／ボリュームモニタ回路の機能的ブロック図である。
【図９】図９は、図１のシステムのクロック発生回路の機能的ブロック図である。
【図１０】図１０は、図１のシステムのＵＳＢポートの機能的ブロック図である。
【図１１】図１１は、例示的なＤＳＰデバッグブロックの図である。
【図１２】図１２は、図１のシステムのデジタルオーディオ入力／出力ポートの機能的ブロック図である。
【図１３】図１３は、図１のシステムにおいて使用するために適するソフトキャッシュシステムを一般的に説明する図である。
【図１４】図１４は、図１３のソフトキャッシュシステムの動作を示すフローチャートである。
【図１】
2004523051.tif 000005
【図２】
2004523051.tif 000006
【図３】
2004523051.tif 000007
【図４】
2004523051.tif 000008
【図５】
2004523051.tif 000009
【図６】
2004523051.tif 000010
【図７】
2004523051.tif 000011
【図８】
2004523051.tif 000012
【図９】
2004523051.tif 000013
【図１０】
2004523051.tif 000014
【図１１】
2004523051.tif 000015
【図１２】
2004523051.tif 000016
【図１３】
2004523051.tif 000017
【図１４】
2004523051.tif 000018
【国際公開パンフレット】
2004523051.tif 000019
2004523051.tif 000020
2004523051.tif 000021
2004523051.tif 000022
2004523051.tif 000023
2004523051.tif 000024
2004523051.tif 000025
2004523051.tif 000026
2004523051.tif 000027
2004523051.tif 000028
2004523051.tif 000029
2004523051.tif 000030
2004523051.tif 000031
2004523051.tif 000032
2004523051.tif 000033
2004523051.tif 000034
2004523051.tif 000035
2004523051.tif 000036
2004523051.tif 000037
2004523051.tif 000038
2004523051.tif 000039
2004523051.tif 000040
2004523051.tif 000041
2004523051.tif 000042
2004523051.tif 000043
2004523051.tif 000044
2004523051.tif 000045
2004523051.tif 000046
2004523051.tif 000047
2004523051.tif 000048
2004523051.tif 000049
2004523051.tif 000050
2004523051.tif 000051
【国際公開パンフレット（コレクトバージョン）】
2004523051.tif 000052
2004523051.tif 000053
【国際調査報告】
2004523051.tif 000054
2004523051.tif 000055
2004523051.tif 000056