(57)【要約】      （修正有）【課題】１以上のプロセッサスレッドからのトランザクションリクエストをサービスするためのメモリマネージメントユニット（ＭＭＵ）を提供する。【解決手段】ＭＭＵ１００は、トランスレーションルックアサイドバッファ（ＴＬＢ）１１２を含む。ＴＬＢは、ストレージモジュール１１４及びロジック回路１１６を含む。ストレージモジュールは、複数のインターフェース１１０の１つを指し示すビットを記憶する。ビットは、物理アドレスレンジに関連付けられる。ロジック回路は、物理アドレスレンジ内の物理アドレスを複数のインターフェースの１つに届ける。【選択図】図１
2015072696.tif 000002
【特許請求の範囲】
【請求項１】
複数のインターフェースの１つを指し示すビットを記憶するように構成されたストレージモジュールであって、前記ビットが物理アドレスレンジに関連付けられているストレージモジュールと、
前記物理アドレスレンジ内の物理アドレスを前記ビットに基づいて前記複数のインターフェースの前記１つに届けるように構成されたロジック回路と、
を備えたトランスレーションルックアサイドバッファ（ＴＬＢ）。
【請求項２】
前記ストレージモジュールは、アドレスデコーダから前記ビットを受け取るように構成されている
請求項１のＴＬＢ。
【請求項３】
前記ストレージモジュールは、システムオンチップ（ＳＯＣ）メモリマップストラッピングを用いて生成される前記ビットを受け取るように構成されている
請求項２のＴＬＢ。
【請求項４】
前記ストレージモジュールは、前記ＴＬＢよりも大きなサイズを有する第２のＴＬＢから前記ビットを受け取るように構成されている
請求項１のＴＬＢ。
【請求項５】
前記ＴＬＢは、マイクロトランスレーションルックアサイドバッファ（μＴＬＢ）である
請求項４のＴＬＢ。
【請求項６】
前記ストレージモジュールは、
前記物理アドレスに関連付けられたバーチャルアドレスを記憶するように構成されたコンテントアクセシブルメモリ（ＣＡＭ）と、
前記ビット及び前記物理アドレスを記憶するように構成されたランダムアクセスメモリ（ＲＡＭ）と、
を備える、請求項１のＴＬＢ。
【請求項７】
前記ロジック回路は、
前記物理アドレスを指し示すように構成された前記ＣＡＭからのセレクタと、
前記ＲＡＭに関連付けられたマルチプレクサであって、前記セレクタ及び前記ビットに基づいて前記物理アドレスを届けるように構成されたマルチプレクサと、
を備える、請求項６のＴＬＢ。
【請求項８】
前記ＴＬＢはポータブルコミュニケーションデバイス内に配置されている
請求項１のＴＬＢ。
【請求項９】
プロセッサスレッドからのトランザクションリクエストのための複数のインターフェースの１つを識別するビットを供給するように構成されたアドレスデコーダであって、前記ビットが物理アドレスレンジに関連付けられているアドレスデコーダと、
前記物理アドレスレンジ内の物理アドレスを前記ビットに関連付けるように構成されたストレージモジュールと、前記物理アドレスを前記ビットに基づいて前記複数のインターフェースの前記１つに届けるように構成されたロジック回路と、を備えた第１のトランスレーションルックアサイドバッファ（ＴＬＢ）と、
を備えたメモリマネージメントユニット（ＭＭＵ）。
【請求項１０】
前記アドレスデコーダは、システムオンチップ（ＳＯＣ）メモリマップストラッピング及び前記物理アドレスを用いて前記ビットを決定するように構成されている
請求項９のＭＭＵ。
【請求項１１】
前記ＳＯＣメモリマップストラッピングは、プログラムされたロジックを備える
請求項１０のＭＭＵ。
【請求項１２】
前記物理アドレス及び前記物理アドレスに関連付けられたバーチャルアドレスをエクセプションエンジンから受け取って前記物理アドレスを前記第１のＴＬＢに供給するように構成された第２のＴＬＢを
さらに備えた請求項９のＭＭＵ。
【請求項１３】
前記第２のＴＬＢは、前記アドレスデコーダから前記ビットを受け取って前記物理アドレス及び前記ビットをエントリーに記憶するように構成されている
請求項１２のＭＭＵ。
【請求項１４】
前記ストレージモジュールは、
前記物理アドレスに関連付けられたバーチャルアドレスを記憶するように構成されたコンテントアクセシブルメモリ（ＣＡＭ）と、
前記ビット及び前記物理アドレスを記憶するように構成されたランダムアクセスメモリ（ＲＡＭ）と、
を備える、請求項９のＭＭＵ。
【請求項１５】
前記ロジック回路は、
前記物理アドレスを指し示すように構成された前記ＣＡＭからのセレクタと、
前記ＲＡＭに関連付けられたマルチプレクサであって、前記セレクタ及び前記ビットに基づいて前記物理アドレスを届けるように構成されたマルチプレクサと、
を備える、請求項１４のＭＭＵ。
【請求項１６】
前記ＭＭＵはポータブルコミュニケーションデバイス内に配置されている
請求項９のＭＭＵ。
【請求項１７】
プロセッサスレッドからトランザクションリクエストを受け取ることであって、前記トランザクションリクエストがバーチャルアドレスを備えることと、
前記バーチャルアドレスに対応する物理アドレスを識別することと、
複数のインターフェースの１つを識別するビットを供給するためにシステムオンチップ（ＳＯＣ）メモリマップストラッピングを用いて前記物理アドレスをデコードすることであって、前記ビットが物理アドレスレンジに関連付けられていることと、
前記物理アドレス及び前記ビットをマイクロトランスレーションルックアサイドバッファ（μＴＬＢ）に記憶することと、
前記μＴＬＢ内の前記バーチャルアドレスを識別することと、
前記物理アドレスを前記ビットに基づいて前記複数のインターフェースの前記１つに届けることであって、前記物理アドレスが前記物理アドレスレンジ内であることと、
を備えた方法。
【請求項１８】
前記物理アドレスをトランスレーションルックアサイドバッファ（ＴＬＢ）に記憶することと、
前記物理アドレスを前記ＴＬＢから前記μＴＬＢに供給することと、
をさらに備えた請求項１７の方法。
【請求項１９】
前記物理アドレスを前記ＴＬＢから前記アドレスデコーダに供給することを、
をさらに備えた請求項１８の方法。
【請求項２０】
前記ＴＬＢで前記ビットを受け取ることと、
前記物理アドレスを伴った前記ビットを前記ＴＬＢに記憶することと、
前記物理アドレスを伴った前記ビットを前記ＴＬＢから前記μＴＬＢに供給することと、
をさらに備えた請求項１８の方法。
【請求項２１】
前記μＴＬＢが最初は前記バーチャルアドレスを含んでいないことを決定することと、
前記ＴＬＢが最初は前記バーチャルアドレスを含んでいないことを決定することと、
前記バーチャルアドレス及び前記物理アドレスを前記ＴＬＢ内の少なくとも１つのエントリーに記憶することと、
をさらに備え、
前記物理アドレス及び前記ビットを前記μＴＬＢに記憶することは、前記バーチャルアドレス、物理アドレス及び前記ビットを前記μＴＬＢ内の少なくとも１つのエントリーに記憶することを備える
請求項１７の方法。
【請求項２２】
前記物理アドレスを前記ビットに基づいて前記複数のインターフェースの前記１つに届けることは、前記ビットを用いて前記物理アドレスが届けられる前記複数のインターフェースの前記１つを識別することを備える
請求項１７の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
ここに開示された発明のコンセプトの態様は、一般的にデータプロセッシングシステムの分野に関する。特に、ここに開示された発明のコンセプトの態様は、１以上のインターフェースへダイレクトアクセスすることのできるメモリマネージメントユニットに関する。
【背景技術】
【０００２】
データプロセッシングシステムは、インストラクションを処理するために互いに影響し合う種々のコンポーネントを含むことができる。１つのコンポーネントは、プロセッシングユニットの１以上のプロセッサスレッド（processor thread）によるトランザクションリクエスト（transaction request）に基づいて、物理メモリからのデータ及び／又はインストラクションの検索を管理することのできるメモリマネージメントユニット（ＭＭＵ）であるかもしれない。いくつかのデータプロセッシングシステムは、検索効率を向上させるためにバーチャルアドレスを用いる。例えば、スレッドは、データ或いはインストラクションのためのバーチャルアドレスを含んだトランザクションリクエストを生成し、バーチャルアドレスをＭＭＵに供給するかもしれない。ＭＭＵは、物理メモリ内のデータをアクセスするために、バーチャルアドレスを対応する物理アドレスに変換することができる。いくつかのＭＭＵでは、トランスレーションルックアサイドバッファ（translation lookaside buffer）（ＴＬＢ）内のように、ルックアップテーブルがバーチャルアドレスを物理アドレスにマップする。
【０００３】
トランザクションリクエストは、バスのようにチャネルとして知られたインターフェースを介して物理アドレスに対応するページを含んだリソース（resource）に届けられる（routed）ことができる。データプロセッシングシステムは、異なったシステムリソースにアクセスするための異なったインターフェースを含むことができる。ファーストインファーストアウト（first in first out）（ＦＩＦＯ）のようなバッファは、物理アドレスを管理することができ、リソースをアクセスするための各物理アドレスを供給するためのインターフェースを決定することができる。例えば、バッファは、物理アドレスを受け取って、リソースにアクセスするために各物理アドレスを供給するためのインターフェースを識別するアドレスデコーダに物理アドレスを供給するＴＬＢに結合されることができる。
【０００４】
インターフェースは、リソースに結合される。各インターフェースは、トランザクションリクエストの物理アドレスを届けるための、スピード或いはバンド幅のような異なった特性を有するかもしれない。異なったリソースのための新しいトランザクションリクエストがＴＬＢによって供給されたとしても、特性が異なることは物理アドレスがバッファ内でバックアップし処理を遅らせることになるかもしれない。例えば、第１のインターフェースがリソースをアクセスするために使われているために、第１のインターフェースをアクセスするための物理アドレスがバッファを満杯にするかもしれない。バッファが満杯であるために、他のインターフェース或いは第１のインターフェースに対して届けるための物理アドレスがバックアップされるかもしれない。さらに、物理アドレスを用いたインターフェースの１つへの全てのアクセスに対してアドレスデコーダが活性化され、各アクセスについて電力を消費することとなる。
【０００５】
したがって、物理アドレスをインターフェースに届けることができ、処理遅延を低減することができ、電力消費を低減することができ、及び／又はプロセッサに対してより品質のよいサービスを提供することができるメモリマネージメントユニットシステム及びプロセスが望まれている。
【発明の概要】
【０００６】
一態様では、トランスレーションルックアサイドバッファ（translation lookaside buffer：変換索引バッファ）（ＴＬＢ）を含んだメモリマネージメントユニットが述べられる。ＴＬＢは、ストレージモジュール（storage module）及びロジック回路を含んでいる。ストレージモジュールは、複数のインターフェースの１つを指し示す（indicate）ビットを記憶することができる。ビットは、物理アドレスレンジに関連付けられることができる。論理回路は、物理アドレスレンジ内の物理アドレスをビットに基づいて複数のインターフェースの１つに届ける（route）ことができる。
【０００７】
ここに例証する実施形態は、ここで開示した発明のコンセプトを限定或いは規定するためではなく述べられているが、その理解を助けるための例として提供される。本開示の他の態様、効果及び特徴は、以下のセクション（図面の簡単な説明、発明を実施するための形態及び特許請求の範囲）を含んだ出願全体を見た後に明らかになるであろう。
【０００８】
ここに開示される本発明のコンセプトのこれらの及び他の特徴、態様及び効果は、添付の図面を参照しながら以下の発明を実施するための形態を読んだときに、より理解される。
【図面の簡単な説明】
【０００９】
【図１】図１は、インターフェースへダイレクトアクセスするメモリマネージメントユニットの実施形態を伴ったデータプロセッシングシステムの例を示した一般的な図である。
【図２】図２は、典型的な図１のメモリマネージメントユニット及びインターフェースを示した一般的な図である。
【図３】図３は、トランザクションリクエストに対してインターフェースへダイレクトアクセスするための典型的な処理を示したフローチャートである。
【図４】図４は、インターフェースへダイレクトアクセスする第２の典型的なメモリマネージメントユニットの一般的な図である。
【図５】図５は、メモリマネージメントユニットを含むかもしれない例示的なポータブルコミュニケーションデバイスを示した一般的な図である。
【図６】図６は、メモリマネージメントユニットを含むかもしれない例示的なセルラー電話を示した一般的な図である。
【図７】図７は、メモリマネージメントユニットを含むかもしれない例示的な無線インターネットプロトコル電話を示した一般的な図である。
【図８】図８は、メモリマネージメントユニットを含むかもしれない例示的なポータブルデジタルアシスタントを示した一般的な図である。
【図９】図９は、メモリマネージメントユニットを含むかもしれない例示的なオーディオファイルプレーヤを示した一般的な図である。
【発明を実施するための形態】
【００１０】
記述を通して、説明の目的のために、ここに述べられた発明のコンセプトの一貫した理解を提供するために、多くの特別な詳細が明らかにされる。しかしながら、ここに開示される発明のコンセプトは、これらの特別な詳細のいくつかがなくても実施されるかもしれないことは、当業者にとって明らかであろう。他の例では、公知の構成及びデバイスは、ここに述べられる発明のコンセプトの基本的な原理を不明確にすることを避けるために、ブロック図の形で示される。
【００１１】
ここに開示される発明のコンセプトの態様は、少なくとも１つのＴＬＢの情報に基づいてトランザクションリクエスト（transaction request）を管理するための１以上のトランスレーションルックアサイドバッファ（translation lookaside buffer）（ＴＬＢ）を含んだメモリマネージメントユニット（ＭＭＵ）に関する。情報は、トランザクションリクエストのバーチャルアドレス（virtual address）に対応する物理アドレス（physical address）を供給するためにインターフェースを識別する（identify）アドレスデコーダから受け取られるビット（bit）を含むことができる。ビットは、処理を遅延させる或いは電力を消費するかもしれないＴＬＢの後のバッファ及びアドレスデコーダを必要とすることなしに、リソース（resource）をアクセスするための物理アドレスを届けるインターフェースを決定するために使用されることができる。インターフェースの例は、タイトリーカップルドメモリ（tightly-coupled memory）（ＴＣＭ）、ＡＲＭ，ＬｔｄによるＡＸＩ／Ｌ２のようなキャッシュバス（cache bus）、及びアドバンストハイパフォーマンスバス（advanced high-performance bus）（ＡＨＢ）を含む。物理アドレスは、予め決められたサイズを有するメモリのブロックを識別する物理ページナンバーを含む。
【００１２】
一態様では、ＭＭＵは、マイクロトランスレーションルックアサイドバッファ（μＴＬＢ）であるＴＬＢを含む。μＴＬＢは、アドレスデコーダからビットを受け取って、μＴＬＢ内の物理アドレスレンジ（physical address range）に関連付けることができる。例えば、アドレスデコーダは、ＳＯＣメモリマップストラッピング（memory map strapping）に基づいて物理アドレスを解析しインターフェースを識別するビットを生成するために、システムオンチップ（system-on-a-chip）（ＳＯＣ）メモリマップストラッピングを使用するかもしれない。ＳＯＣメモリマップストラッピングは、集積回路のような半導体デバイス上にビルトインされたメモリに関連付けられた予め規定された特性（characteristics）であるかもしれない。メモリマップストラッピングの例は、メモリページロケーションのためのチップピンアウト（chip pinouts）、製造中のチップにバーンインされた（burned in）ヒューズ、及びチップ製造者によって付加されたプログラムドロジックを含む。バーチャルアドレスを含んだトランザクションリクエストがμＴＬＢによって受け取られると、ビットはリソースをアクセスするための物理アドレスを届ける（route）インターフェースを識別するために用いられる。
【００１３】
バッファが無いことは、物理アドレスがリソースをアクセスするために用いることのできるスピードを増加させるかもしれない。図１は、物理アドレスを伴ったダイレクトアクセスのためのＭＭＵの一態様のインプリメンテーションのブロック図である。ＭＭＵ１００は、ＭＭＵ１００にトランザクションリクエスト１０６を供給する１以上のプロセッサスレッド（processor thread）１０４を含むことのできるプロセッサユニット１０２をサービスすることができる。トランザクションリクエスト１０６は、システムリソース１０８からのデータ、インストラクション或いは他の情報のためのリクエストであり得る。ＭＭＵ１００は、リソース１０８のための物理アドレスを識別し、インターフェース１１０を介してリソース１０８をアクセスするために物理アドレスを用いることができる。
【００１４】
例えば、トランザクションリクエスト１０６はそれぞれ、プロセッサスレッド１０４がアクセスしているリソース或いはリソースの一部に対するバーチャルアドレスを含んでいる。ＭＭＵ１００は、バーチャルアドレスに関連付けられた物理アドレスを識別するテーブル或いは他のマッピング（mapping）を含むことができる。物理アドレスは、インターフェース１００の１つを介してリソースにアクセスするために用いられることができる。図１は、インターフェースＡ、インターフェースＢ、インターフェースＣを示しており、それらは任意のタイプのインターフェースであり、インターフェース１１０は追加の或いは図示されているよりも少ないインターフェースを含んでいてもよい。インターフェースＡはリソース１に関連付けられ、インターフェースＢはリソース２に関連付けられ、インターフェースＣはリソース３に関連付けられる。しかしながら、インターフェース１１０のそれぞれは、リソース１０８の１つよりも多くと関連付けられてよく、任意の数のリソース１０８が含まれていてもよい。
【００１５】
ＭＭＵ１００は、特定の物理アドレスを用いてリソースをアクセスするためのインターフェースを識別するコンポーネントを含むことができる。図１に示した態様では、ＭＭＵ１００は、ストレージモジュール１１４及びロジック回路１１６を含んだＴＬＢ１１２を含んでいる。ＴＬＢ１１２は、インストラクションＴＬＢ、データＴＬＢ或いはジョイントＴＬＢであるかもしれず、μＴＬＢ、複数のＴＬＢ或いは１以上のμＴＬＢ及びＴＬＢを含んでいてもよい。インストラクションＴＬＢは、フェッチ（fetch）トランザクションリクエストをサービスするように構成されることができ、データＴＬＢは、ロード（load）或いはストア（store）トランザクションリクエストをサービスするように構成されることができ、ジョイントＴＬＢは、フェッチ及びロード或いはストアトランザクションリクエストをサービスするように構成されることができる。
【００１６】
ストレージモジュール１１４は、バーチャルアドレス及びバーチャルアドレスに対応する物理アドレスを記憶することができる。いくつかの態様では、ストレージモジュール１１４は、バーチャルアドレス及び各バーチャルアドレスに対応する物理アドレスを記憶することのできるレジスタ或いは他のストレージデバイスを含む。ストレージモジュール１１４は、物理アドレスレンジのためのビット或いは他のインジケータをも記憶するかもしれない。ストレージモジュール１１４は、それぞれがビットに関連付けられた複数の物理アドレスレンジを含むことができる。ビットは、リソースをアクセスするための物理アドレスレンジ内の物理アドレスを供給するためのインターフェース１１０の１つを指し示すことができる。以下により詳細に説明されるように、ビットは、物理アドレスを届ける（route）ためのインターフェースを識別するために、物理アドレス及びシステムオンチップ（ＳＯＣ）メモリマップストラッピングを用いることのできるアドレスデコーダ１１８によってＴＬＢ１１２に供給されるかもしれない。ロジック回路１１６は、リソースをアクセスするための識別されたインターフェースを介して物理アドレスを届けるためにビットを用いることができる。いくつかの態様では、ロジック回路１１６は、ＴＬＢ１１２内に記憶された物理アドレスを識別するセレクタ、及び物理アドレスを供給しそれをビットによって識別されたインターフェースに届けるマルチプレクサを含んでいる。
【００１７】
種々の態様にしたがったＭＭＵは、トランザクションリクエストのバーチャルアドレスを用いて物理アドレスが決定されるスピードを増加させるためのＴＬＢ及びμＴＬＢを含むことができる。例えば、μＴＬＢは、ＴＬＢよりも小さいかもしれず、トランザクションリクエストのバーチャルアドレスを用いて、最近或いはたびたび使用されるようないくつかの物理アドレスを素早く位置させるために用いられる。トランザクションリクエストのバーチャルアドレスを用いたμＴＬＢ内のルックアップがバーチャルアドレスを位置させない場合には、μＴＬＢよりも大きく、追加のバーチャル及び物理アドレスマッピングを含んだＴＬＢに作成される。バーチャルアドレスがＴＬＢ内に位置している場合には、バーチャルアドレス及び物理アドレスはμＴＬＢ内のエントリー内に書き込まれる。
【００１８】
以下により詳細に説明されるように、インジケータ（indicator）は、アドレスデコーダによって生成され、物理アドレスを伴った記憶（storage）のために、μＴＬＢ、或いは付加的に最初にＴＬＢに供給されるかもしれない。インジケータは、リソースをアクセスするために物理アドレスが届けられるインターフェースを識別することができる。図２は、リソースをアクセスするための物理アドレスを届けるためにインターフェースを識別するためにインジケータを用いるためのＭＭＵ１００の態様の一般的な図である。図２において、ＭＭＵ１００は、ＴＬＢ２００及びアドレスデコーダ２１８を含み、それぞれはμＴＬＢ２０２に結合している。ＴＬＢ２００は、ＴＬＢコンテントアクセシブルメモリ（TLB content accessible memory）（ＴＣＡＭ）２０４及びＴＬＢランダムアクセスメモリ（TLB random access memory）（ＴＲＡＭ）２０６を含んでいる。ＴＣＡＭ２０４は、バーチャルアドレスＶＡ１−ＶＡｎを記憶することができる複数のエントリー（entry）を含んでいる。いくつかの態様では、１以上のエントリーは、空（empty）であり、バーチャルアドレスを含んでいない。各バーチャルアドレスは、ＴＲＡＭ２０６内のエントリーに記憶された物理アドレスＰＡ１−ＰＡｎの１つに対応することができる。例えば、バーチャルアドレスＶＡ１は、物理アドレスＰＡ１に対応するかもしれない。ＴＲＡＭ２０６内の各エントリーは、例えば、物理アドレスに位置するメモリページのサイズを識別することのできるマスクを含んでいるかもしれない。
【００１９】
ルックアップ及びμＣＡＭ２１０内の“ｍｉｓｓ”のように、トランザクションリクエストのバーチャルアドレスがμＴＬＢ２０２から受け取られると、ルックアップがＴＬＢ２００内で実行される。“ｍｉｓｓ”は、トランザクションリクエストのバーチャルアドレスにマッチ（match）するμＣＡＭ２１０内のバーチャルアドレスが無いこと（absence）かもしれない。ＴＬＢルックアップでは、トランザクションリクエストのバーチャルアドレスは、バーチャルアドレスＶＡ１−ＶＡｎのそれぞれに結合している。マッチ或いは“ｈｉｔ”が見つかると、バーチャルアドレスにマッチすることに関連付けられた物理アドレスのためのエントリーを識別する出力が、セレクタとしてマルチプレクサ２０８に供給される。マルチプレクサ２０８は、セレクタに基づいてバーチャルアドレスにマッチすることに関連付けられた物理アドレスを出力するように構成されている。
【００２０】
“ｍｉｓｓ”がＴＣＡＭ２０４内で生じると（トランザクションリクエストのバーチャルアドレスにマッチするバーチャルアドレスがＴＣＡＭ２０４内で見つからないと）、トランザクションリクエストのバーチャルアドレスがエクセプションエンジン（exception engine）２１６に供給される。エクセプションエンジン２１６は、物理アドレス及びトランザクションリクエストのバーチャルアドレスのためのマスクを識別するように構成されている。いくつかの態様では、エクセプションエンジン２１６は、エントリー内のバーチャルアドレス及び対応する物理アドレスをＴＣＡＭ２０４及びＴＲＡＭ２０６の両方に書き込む。例えば、エクセプションエンジン２１６は、バーチャルアドレスをＴＣＡＭ２０４内のエントリーに書き込み、物理アドレス及びマスクをＴＲＡＭ２０６内の対応するエントリーに書き込む。他の態様では、エクセプションエンジン２１６は、バーチャルアドレス、対応する物理アドレス及びマスクを、エントリー内での記憶のためにＴＬＢ２００に出力する。ＴＬＢ２００内のバーチャルアドレスのための次のルックアップ上において、物理アドレスを伴ったエントリーを識別する出力がセレクタとしてマルチプレクサ２０８に供給され、物理アドレスがμＴＬＢ２０２に供給されることができることが、ＴＣＡＭ２０４内で識別される。
【００２１】
μＴＬＢ２０２は、μＴＬＢコンテントアクセシブルメモリ（μＣＡＭ）２１０及びμＴＬＢランダムアクセスメモリ（μＲＡＭ）２１２を含むことができる。μＣＡＭ２１０は、バーチャルアドレスＶＡ１−ＶＡn-k が記憶されるエントリーを含むことができる。μＣＡＭ２１０は、ＴＣＡＭ２０４に類似しているかもしれないが、ＴＣＡＭ２０４よりもｋだけ少ないバーチャルアドレスを記憶するように構成されている。μＲＡＭ２１２は、物理アドレスＰＡ１−ＰＡn-k が記憶されるエントリーを含むことができる。μＲＡＭ２１２に記憶された各物理アドレスは、μＣＡＭ２１０内のバーチャルアドレスＶＡ１−ＶＡn-k の１つに対応することができる。μＲＡＭ２１２は、ＴＲＡＭ２０６に類似しているかもしれないが、ＴＲＡＭ２０６よりもｋだけ少ない物理アドレスを記憶するように構成されている。
【００２２】
μＲＡＭ２１２は、各記憶された物理アドレスのためのマスク（mask）を記憶するように構成されている。マスクは、物理アドレスに関連付けられたメモリロケーションのためのページサイズを指し示しているかもしれない。μＲＡＭ２１２は、物理アドレスレンジのためのインジケータを記憶するように構成されている。各インジケータは、インジケータに関連付けられた物理アドレスレンジ内の物理アドレスを届けるためのインターフェース１１０の１つを識別するかもしれない。いくつかの態様では、物理アドレスを含んだ各エントリーは、インターフェース１１０の１つを識別するインジケータを含んでいる。
【００２３】
インジケータは、アドレスデコーダ２１８から受け取られたインターフェースを識別するビットであるかもしれない。例えば、アドレスデコーダ２１８は、ＴＬＢ２００から物理アドレスを受け取ることができ、システムオンチップ（ＳＯＣ）メモリマップストラッピングを用いて物理アドレスに関連付けられたインターフェースを決定することができる。ＳＯＣメモリマップストラッピングは、集積回路のような半導体デバイス上にビルトインされたメモリに関連付けられた予め規定された特性（characteristics）であるかもしれない。いくつかの態様では、ＳＯＣメモリマップストラッピングは、データプロセッシングシステム内のプログラムドロジックであるかもしれない。ＳＯＣメモリマップストラッピングの例は、メモリページロケーションのためのチップピンアウト（chip pinout）及び／又はプログラムドロジックを含んだソフトウェアを含んでいる。例えば、物理アドレスのレンジ（range）は、チップピンアウトを介するように、ＳＯＣメモリマップストラッピングを介するインターフェースに関連付けられているかもしれない。アドレスデコーダ２１８がＴＬＢ２００から物理アドレスを受け取ると、アドレスデコーダ２１８は、受け取られた物理アドレスを含む物理アドレスレンジを識別することができ、識別された物理アドレスレンジに関連付けられたインターフェースを決定することができる。アドレスデコーダ２１８は、ビットのようなインジケータを供給するように構成されることができ、それはμＴＬＢ２０２への関連付けられたインターフェースを識別し、そこでエントリー内に記憶されるかそうでなければ物理アドレスに対応するかもしれない。
【００２４】
上述したように、μＴＬＢ２０２は、ＴＬＢ２００よりも小さいかもしれない。例えば、μＴＬＢ２０２はより少ないエントリーを含んでいるかもしれず、それ故、ＴＬＢ２００よりもより少ないバーチャル及び物理アドレスを含んでいるかもしれない。いくつかの態様では、ルックアップがＴＣＡＭ２０４で実行される前に、ルックアップがトランザクションリクエストのバーチャルアドレスに対してμＣＡＭ２１０で実行される。トランザクションリクエストのバーチャルアドレスがμＣＡＭ２１０内のバーチャルアドレスにマッチ（match）しない場合のように、“ｍｉｓｓ”が起こった場合には、バーチャルアドレスがＴＣＡＭ２０４内のルックアップのためにＴＬＢ２００に供給される。トランザクションリクエストのバーチャルアドレスがμＣＡＭ２１０内のバーチャルアドレスにマッチする場合のように、μＣＡＭ２１０内で“ｈｉｔ”が起こった場合には、μＣＡＭ２１０は、バーチャルアドレスにマッチすることに関連付けられた物理アドレスのためのエントリーを識別する出力を、セレクタとしてのマルチプレクサ２１４に供給する。マルチプレクサ２１４は、バーチャルアドレスにマッチすることに関連付けられた物理アドレスをセレクタに基づいてμＲＡＭ２１２から出力するように構成されることができる。
【００２５】
いくつかの態様では、マルチプレクサ２１４は、ビットに基づいてインターフェース１１０の１つに物理アドレス届ける。インターフェース１１０は、任意のタイプ及び数のインターフェースを含むことができる。典型的な目的について、図２は３つのインターフェース：タイトリーカップルドメモリ（ＴＣＭ）２２０、ＡＸＩ／Ｌ２  ２２２、及びアドバンストハイパフォーマンスバス（ＡＨＢ）２２４を示している。いくつかの態様では、インターフェース１１０のそれぞれは、ビットに基づいて物理アドレスを届けるマルチプレクサ２１４に代わって或いは追加して、ビット基づいて物理アドレスを届けるか否かを決定する。例えば、ＴＣＭ２２０は、それを識別するビットに関連付けられた物理アドレスを届け、他のインターフェースを識別するビットに関連付けられた物理アドレスを無視するかもしれない。電力を消費し、トランザクションリクエスト処理においてバックアップを引き起こす、μＴＬＢ２０２とインターフェース１１０との間のアドレスデコーダ或いはバッファを用いる代わりに、ある態様は、特別の物理アドレスを届けるためのインターフェースを識別するためにμＴＬＢ２０２内のビットのようなインジケータを用いることができる。
【００２６】
図３は、開示された発明のコンセプトのいくつかの態様にしたがった、ビットに基づいてインターフェースに物理アドレスを向けるＭＭＵを用いる方法を示している。図３のフロー図は、図２に示されたコンポーネントを参照して説明される。しかしながら、他のインプリメンテーションも可能である。
【００２７】
本方法は、ＭＭＵ１００がプロセッサスレッド（processor thread）からトランザクションリクエストのバーチャルアドレスを受け取るときに、ブロック３０２において開始する。例えば、プロセッサスレッドは、リソースからのデータ、インストラクション或いは他の情報のためのリクエストを含んだトランザクションリクエストを供給することができる。トランザクションリクエストは、プロセッサスレッドによってリクエストされるデータ、インストラクション或いは他の情報がアクセスされることができるリソースのバーチャルアドレスを含むことができる。
【００２８】
ブロック３０４において、ＭＭＵ１００は、バーチャルアドレスがμＴＬＢ２０２内であるか否かを決定する。いくつかの態様では、μＣＡＭ２１０内のエントリーに記憶されたバーチャルアドレスがトランザクションリクエストのバーチャルアドレスにマッチするか否かを決定するために、μＣＡＭ２１０上でルックアップが実行される。例えば、マッチ（match）が見つかるまで、μＣＡＭ２１０内の各バーチャルアドレスは、トランザクションリクエストのバーチャルアドレスと比較されるか、或いは、μＣＡＭ２１０内の各バーチャルアドレスは、マッチ無しに、トランザクションリクエストのバーチャルアドレスと比較されてきている。
【００２９】
マッチが見つからないように、“ｍｉｓｓ”が起こると、ブロック３０６において、ＭＭＵ１００は、バーチャルアドレスがＴＬＢ２００内であるか否かを決定する。例えば、ＴＣＡＭ２０４内のエントリーに記憶されたバーチャルアドレスがトランザクションリクエストのバーチャルアドレスにマッチするか否かを決定するために、ＴＣＡＭ２０４内でルックアップが実行されるかもしれない。
【００３０】
ＴＣＡＭ２０４内で“ｍｉｓｓ”が起こった場合、エクセプションエンジン（exception engine）２１６は、ブロック３０８において、バーチャルアドレスに対する物理アドレスを決定し、ＴＬＢ２００内のエントリーにバーチャルアドレス及び物理アドレスを書き込む。例えば、エクセプションエンジン２１６は、ＴＣＡＭ２０４内のエントリーにバーチャルアドレスを書き込み、ＴＲＡＭ２０６内の対応するエントリーに物理アドレスを書き込むかもしれない。いくつかの態様では、物理アドレスに関連付けられたメモリのページサイズを指し示すマスクは、エクセプションエンジン２１６によって生成され、ＴＲＡＭ２０６内の物理アドレスに関連付けられる。
【００３１】
エントリーの書き込み後、本方法はブロック３０４に戻り、バーチャルアドレスを伴ったμＴＬＢ２０２上でルックアップが実行される。“ｍｉｓｓ”が再び起こるかもしれず、ブロック３０６において、バーチャルアドレスのためにＴＬＢ２００上でルックアップが実行される。ＴＣＡＭ２０４内に記憶されたバーチャルアドレスがトランザクションリクエストのバーチャルアドレスにマッチするように、“ｈｉｔ”が起こった場合、対応する物理アドレスがＴＬＢ２００によって供給される。例えば、ＴＣＡＭ２０４は、ＴＲＡＭ２０６に関連付けられたマルチプレクサ２０８にセレクタとして対応する物理アドレス及び／又はそのエントリー位置を指し示す出力を供給するかもしれない。マルチプレクサ２０８は、セレクタに基づいてＴＲＡＭ２０６からの物理アドレスを出力するように構成されているかもしれない。
【００３２】
ブロック３１０において、アドレスデコーダ２１８は、ＳＯＣメモリマップストラッピングを用いてＴＲＡＭ２０６からの物理アドレスをデコードして、物理アドレスに関連付けられたインターフェースを指し示すビットを生成する。例えば、アドレスデコーダ２１８は、チップピンアウト或いは予め規定された物理特性を用いて、物理アドレスを含んだ物理アドレスレンジに関連付けられたインターフェースを識別する。上述したように、ＭＭＵ１００のいくつかの態様は、μＴＬＢ２０２へ書き込む時の代わりにＴＬＢにエントリーを書き込む時に物理アドレスに関連付けられたインターフェースを識別するかもしれない。
【００３３】
ブロック３１２において、ＭＭＵ１００は、バーチャルアドレス、対応する物理アドレス、及び物理アドレスに関連付けられたインターフェースを指し示すビットについてμＴＬＢ２０２内のエントリーに書き込む。例えば、ＭＭＵ１００は、μＣＡＭ２１０内のエントリーにバーチャルアドレスを記憶し、μＲＡＭ２１２内のエントリーに物理アドレスを記憶するかもしれない。ＭＭＵ１００は、μＲＡＭ２１２内の物理アドレスに関連付けられたインターフェースを指し示すビット及びマスクを記憶することができる。
【００３４】
本方法は、ＭＭＵ１００がμＴＬＢ２０２内のルックアップを実行するブロック３０４に戻るかもしれない。“ｈｉｔ”が起こると、μＴＬＢ２０２は、ブロック３１４において、ビットに基づいてインターフェースにリソースをアクセスするための物理アドレスを届ける。例えば、ルックアップは、μＣＡＭ２１０内のバーチャルアドレスのマッチに帰結することができる。μＣＡＭ２１０は、μＲＡＭ２１２に関連付けられたマルチプレクサ２１４に、セレクタとして対応する物理アドレス及び／又はそのエントリー位置を指し示す出力を供給する。マルチプレクサ２１４は、セレクタに基づいてμＲＡＭ２１２からの物理アドレスを出力するように構成されているかもしれない。いくつかの態様では、μＴＬＢ２０２は、ビットによって識別されるインターフェースに物理アドレスを届ける。他の態様では、ビットは物理アドレスを伴って供給され、ビットによって識別されたインターフェースは物理アドレスを届け、他のインターフェースは物理アドレスを無視する。
【００３５】
いくつかの態様にしたがったアドレスデコーダは、物理アドレスを届けるためのインターフェースを識別するインジケータを伴って、μＴＬＢに加えて、ＴＬＢを供給するＭＭＵ内に位置しているかもしれない。図４は、ＴＬＢ内のエントリーが書き込まれたときに、ＴＬＢ４００に物理アドレスに対するインターフェースを識別するビットを供給することができる構成を有するＭＭＵ１００の第２の態様を示している。図４のＭＭＵ１００は、トランザクションリクエストからのバーチャルアドレスによってルックアップを実行することのできるμＣＡＭ４１０を含んだμＴＬＢ４０２を含んでいる。“ｍｉｓｓ”が起こると、バーチャルアドレスがＴＣＡＭ４０４に供給され、ルックアップがＴＬＢに対して行われる。
【００３６】
ＴＣＡＭ４０４内で“ｍｉｓｓ”が起こると、バーチャルアドレスに対する物理アドレスを識別するエクセプションエンジン４１６にバーチャルアドレスが供給される。いくつかの態様では、エクセプションエンジン４１６は、物理アドレスに関連付けられたメモリのページサイズを識別する物理アドレスに対するマスクを決定することができる。物理アドレスは、物理アドレスに対するインターフェースを識別するビットを生成するために、ＳＯＣメモリマップストラッピングを用いるアドレスデコーダ４１８に供給されることができる。バーチャルアドレスは、ＴＣＡＭ４０４内のエントリーに書き込まれることができ、物理アドレスは、ビット及びマスクとともに、ＴＲＡＭ４０６内の対応するエントリーに書き込まれることができる。ＴＣＡＭ４０４内で“ｈｉｔ”が起こると、物理アドレス、ビット及びマスクは、マルチプレクサ４０８を用いてμＴＬＢ４０２に供給されることができる。バーチャルアドレスは、μＣＡＭ４１０内のエントリーに書き込まれることができ、物理アドレス、ビット及びマスクは、μＲＡＭ４１２内の対応するエントリーに書き込まれることができる。
【００３７】
μＣＡＭ４１０内で“ｈｉｔ”が起こると、物理アドレスは、マルチプレクサ４１４を用いてインターフェース１１０の１つに届けられることができる。ビットは、リソースをアクセスするためにどのインターフェースに物理アドレスを届けるかを決定するために用いることができる。
【００３８】
上述した特徴を含んだ例示デバイス
メモリマネージメントユニット（ＭＭＵ）は、デジタルシグナルプロセッサのような任意のプロセッサに含まれる。図５〜９の一般的な図は、デバイスリソースにプロセッサのスレッド或いはマルチスレッドプロセッサのスレッドによって供給されるトランザクションリクエストによるインターフェースへのアクセスを管理するためのＭＭＵに組み入れられる例示デバイスを示している。
【００３９】
図５は、ポータブルコミュニケーションデバイス５００の典型的な態様を示した図である。図５の一般的な図に示されるように、ポータブルコミュニケーションデバイスは、デジタルシグナルプロセッサ（ＤＳＰ）５０４に含まれるオンチップシステム５０２を含んでいる。図５の一般的な図はまた、デジタルシグナルプロセッサ５０４及びディスプレイ５０８に結合されたディスプレイコントローラ５０６を示している。また、入力デバイス５１０は、ＤＳＰ５０４に結合されている。図示されるように、メモリ５１２がＤＳＰ５０４に結合されている。さらに、コーダ／デコーダ（ＣＯＤＥＣ）５１４がＤＳＰ５０４に結合されていてもよい。スピーカ５１６及びマイクロフォン５１８がＣＯＤＥＣ５１４に結合されていてもよい。
【００４０】
図５の一般的な図はさらに、デジタルシグナルプロセッサ５０４及び無線アンテナ（wireless antenna）５２２に結合された無線コントローラを示している。特別の態様では、電源（power supply）５２４がオンチップシステム５０２に結合されている。また、特別の態様では、図５に示されるように、ディスプレイ５２６、入力デバイス５３０、スピーカ５１６、マイクロフォン５１８、無線アンテナ５２２、及び電源５２４は、オンチップシステム５０２の外部にある。しかしながら、それぞれは、オンチップシステム５０２のコンポーネントに結合している。
【００４１】
特別の態様では、ＤＳＰ５０４は、スレッドからのトランザクションリクエストによってインターフェースにダイレクトアクセスすることのできるメモリマネージメントユニットＭＭＵ５２６を含んでいる。例えば、ＭＭＵ５２６は、図２或いは４を参照して述べられたように、処理遅延を低減するためにトランザクションリクエストに向かうインターフェースを指し示すビットを受け取ることのできるマイクロトランスレーションルックアサイドバッファ（μＴＬＢ）を含んでいてもよい。
【００４２】
図６は、セルラー電話（cellular telephone）６００の典型的な態様を示した図である。図示されるように、セルラー電話６００は、互いに結合したデジタルベースバンドプロセッサ６０４及びアナログベースバンドプロセッサ６０６を含んだオンチップシステム６０２を含んでいる。特別の態様では、デジタルベースバンドプロセッサ６０４は、デジタルシグナルプロセッサである。図６の一般的な図に示されるように、ディスプレイコントローラ６０８及びタッチスクリーンコントローラ６１０は、デジタルベースバンドプロセッサ６０４に結合されている。また、オンチップシステム外のタッチスクリーンディスプレイ６１２は、ディスプレイコントローラ６０８及びタッチスクリーンコントローラ６１０に結合されている。
【００４３】
図６の一般的な図はさらに、ビデオエンコーダ６１４を示しており、例えば、フェイズオルタネーティングライン（ＰＡＬ）エンコーダ、シーケンシャルコウラーアメモリー（sequential couleur a memoire）（ＳＥＣＡＭ）エンコーダ、或いはナショナルテレビジョンシステムコミュニティ（ＮＴＳＣ）エンコーダが、デジタルベースバンドプロセッサ６０４に結合されている。さらに、ビデオ増幅器６１６が、ビデオエンコーダ６１４及びタッチスクリーンディスプレイ６１２に結合されている。また、ビデオポート６１８が、ビデオ増幅器６１６に結合されている。ユニバーサルシリアルバス（ＵＳＢ）コントローラ６２０が、デジタルベースバンドプロセッサ６０４に結合されている。また、ＵＳＢポート６２２が、ＵＳＢコントローラ６２０に結合されている。メモリ６２４及び加入者識別モジュール（ＳＩＭ）カード６２６が、デジタルベースバンドプロセッサ６０４に結合されていてもよい。さらに、図６の一般的な図に示されるように、デジタルカメラ６２８がデジタルベースバンドプロセッサ６０４に結合されていてもよい。典型的な態様では、デジタルカメラ６２８は、電荷結合デバイス（ＣＣＤ）カメラ或いは相補型金属酸化物半導体（ＣＭＯＳ）カメラである。
【００４４】
図６の一般的な図にさらに示されるように、ステレオオーディオＣＯＤＥＣ６３０が、アナログベースバンドプロセッサ６０６に結合されていてもよい。さらに、オーディオ増幅器６３２が、ステレオオーディオＣＯＤＥＣ６３０に結合されていてもよい。典型的な態様では、第１のステレオスピーカ６３４及び第２のステレオスピーカ６３６が、オーディオ増幅器６３２に結合されている。マイクロフォン増幅器６３８が、ステレオオーディオＣＯＤＥＣ６３０に結合されていてもよい。さらに、マイクロフォン６４０がマイクロフォン増幅器６３８に結合されていてもよい。特別の態様では、周波数変調（ＦＭ）ラジオチューナー６４２が、ステレオオーディオＣＯＤＥＣ６３０に結合されていてもよい。ＦＭアンテナ６４４は、ＦＭラジオチューナー６４２に結合されることができる。さらに、ステレオヘッドフォン６４６が、ステレオオーディオＣＯＤＥＣ６３０に結合されていてもよい。
【００４５】
図６の一般的な図はさらに、アナログベースバンドプロセッサ６０６に結合され得るラジオ周波数（ＲＦ）トランシーバー６４８を示している。ＲＦスイッチ６５４が、ＲＦトランシーバー６４８及びＲＦアンテナ６５２に結合されていてもよい。キーパッド６５４が、アナログベースバンドプロセッサ６０６に結合されていてもよい。また、マイクロフォン６５６を伴ったモノヘッドセット（mono headset with a microphone）が、アナログベースバンドプロセッサ６０６に結合されていてもよい。さらに、バイブレーターデバイス６５８が、アナログベースバンドプロセッサ６０６に結合されていてもよい。図６の一般的な図はまた、オンチップシステム６０２に結合され得る電源６６０を示している。特別の態様では、電源６６０は、セルラー電話６００の種々のコンポーネントに電力を供給する直流（ＤＣ）電源である。さらに、特別の態様では、ＡＣ電源に結合されたＤＣ変圧器への交流（ＡＣ）に由来するＤＣ電源、或いは再チャージ可能なＤＣバッテリーである。
【００４６】
図６の一般的な図に示されるように、タッチスクリーンディスプレイ６１２、ビデオポート６１８、ＵＳＢポート６２２、カメラ６２８、第１のステレオスピーカ６３４、第２のステレオスピーカ６３６、マイクロフォン６４０、ＦＭアンテナ６４４、ステレオヘッドフォン６４６、ＲＦスイッチ６４８、ＲＦアンテナ６５０、キーパッド６５２、モノヘッドセット６５６、バイブレーター６５８、及び電源６６０は、オンチップシステム６０２の外部であってもよい。
【００４７】
特別の態様では、デジタルベースバンドプロセッサ６０４は、スレッドからのトランザクションリクエストによってインターフェースへダイレクトアクセスできるメモリマネージメントユニット（ＭＭＵ）６２６を含んでいる。例えば、ＭＭＵ６６２は、図２或いは４を参照して述べられるように、処理遅延を低減するためにトランザクションリクエストに向かうインターフェースを指し示すビットを受け取ることのできるマイクロトランスレーションルックアサイドバッファ（μＴＬＢ）を含んでいてもよい。
【００４８】
図７は、無線インターネットプロトコル（ＩＰ）電話７００の典型的な態様を示した図である。図示されるように、無線ＩＰ電話７００は、デジタルシグナルプロセッサ（ＤＳＰ）７０４を含んだオンチップシステム７０２を含んでいる。ディスプレイコントローラ７０６はＤＳＰ７０４に結合されていてもよく、ディスプレイ７０８はディスプレイコントローラ７０６に結合されている。典型的な態様では、ディスプレイ７０８は液晶ディスプレイ（ＬＣＤ）である。図７はさらに、キーパッド７１０がＤＳＰ７０４に結合されてもよいことを示している。
【００４９】
フラッシュメモリ７１２が、ＤＳＰ７０４に結合されていてもよい。同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）７１４、スタティックランダムアクセスメモリ（ＳＲＡＭ）７１６、及び電気的消去可能なプログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）７１８が、ＤＳＰ７０４に結合されていてもよい。図７の一般的な図はまた、発光ダイオード（ＬＥＤ）７２０がＤＳＰ７０４に結合されていてもよいことを示している。さらに、特別の態様では、音声ＣＯＤＥＣ７２２がＤＳＰ７０４に結合されていてもよい。増幅器７２４が音声ＣＯＤＥＣ７２２に結合されていてもよく、モノスピーカ７２６が増幅器７２４に結合されていてもよい。図７の一般的な図はさらに、音声ＣＯＤＥＣ７２２に結合されたモノヘッドセット７２８を示している。特別の態様では、モノヘッドセット７２８はマイクロフォンを含んでいる。
【００５０】
無線ローカルエリアネットワーク（ＷＬＡＮ）ベースバンドプロセッサ７３０が、ＤＳＰ７０４に結合されていてもよい。ＲＦトランシーバー７３２がＷＬＡＮベースバンドプロセッサ７３０に結合されていてもよく、ＲＦアンテナ７３４がＲＦトランシーバー７３２に結合されていてもよい。特別の態様では、ブルートゥースコントローラ７３６がＤＳＰ７０４に結合されていてもよく、ブルートゥースアンテナ７３８がコントローラ７３６に結合されていてもよい。図７の一般的な図はまた、ＵＳＢポート７４０がＤＳＰ７０４に結合されていてもよいことを示している。さらに、電源７４２が、オンチップシステム７０２に結合され、無線ＩＰ電話７００の種々のコンポーネントに電力を供給する。
【００５１】
図７の一般的な図に示されるように、ディスプレイ７０８、キーパッド７１０、ＬＥＤ７２０、モノスピーカ７２６、モノヘッドセット７２８、ＲＦアンテナ７３４、ブルートゥースアンテナ７３８、ＵＳＢポート７４０、及び電源７４２は、オンチップシステム７０２の外部にあり、オンチップシステム７０２の１以上のコンポーネントに結合されていてもよい。特別の態様では、ＤＳＰ７０４は、スレッドからのトランザクションリクエストによってインターフェースへダイレクトアクセスできるメモリマネージメントユニット（ＭＭＵ）７２６を含んでいる。例えば、ＭＭＵ７６２は、図２或いは４を参照して述べられるように、処理遅延を低減するためにトランザクションリクエストに向かうインターフェースを指し示すビットを受け取ることのできるマイクロトランスレーションルックアサイドバッファ（μＴＬＢ）を含んでいてもよい。
【００５２】
図８は、ポータブルデジタルアシスタント（ＰＤＡ）８００の典型的な態様を示した図である。図示されるように、ＰＤＡ８００は、デジタルシグナルプロセッサ（ＤＳＰ）８０４を含んだオンチップシステム８０２を含んでいる。タッチスクリーンコントローラ８０６及びディスプレイコントローラ８０８が、ＤＳＰ８０４に結合されている。さらに、タッチスクリーンディスプレイ８１０が、タッチスクリーンコントローラ８０６及びディスプレイコントローラ８０８に結合されている。図８の一般的な図はまた、キーパッド８１２がＤＳＰ８０４に結合されていてもよいことを示している。
【００５３】
特別の態様では、ステレオオーディオＣＯＤＥＣ８２６がＤＳＰ８０４に結合されていてもよい。第１のステレオ増幅器８２８がステレオオーディオＣＯＤＥＣ８２６に結合されていてもよく、第１のステレオスピーカ８３０が第１のステレオ増幅器８２８に結合されていてもよい。さらに、マイクロフォン増幅器８３２がステレオオーディオＣＯＤＥＣ８２６に結合されていてもよく、マイクロフォン８３４がマイクロフォン増幅器８３２に結合されていてもよい。図８の一般的な図はさらに、ステレオオーディオＣＯＤＥＣ８２６に結合され得る第２のステレオ増幅器８３６と、第２のステレオ増幅器８３６に結合され得る第２のステレオスピーカ８３８を示している。特別の態様では、ステレオヘッドフォン８４０がステレオオーディオＣＯＤＥＣ８２６に結合されていてもよい。
【００５４】
図８の一般的な図はまた、ＤＳＰ８０４に結合され得る８０２．１１コントローラ８４２と、８０２．１１コントローラ８４２に結合され得る８０２．１１アンテナ８４４を示している。さらに、ブルートゥースコントローラ８４６がＤＳＰ８０４に結合されていてもよく、ブルートゥースアンテナ８４８がブルートゥースコントローラ８４６に結合されていてもよい。ＵＳＢコントローラ８５０がＤＳＰ８０４に結合されていてもよく、ＵＳＢポート８５２がＵＳＢコントローラ８５０に結合されていてもよい。さらに、例えばマルチメディアカード（ＭＭＣ）或いはセキュアデジタルカード（ＳＤ）といったスマートカード８５４が、ＤＳＰ８０４に結合されていてもよい。さらに、電源８５６が、オンチップシステム８０２に結合されていてもよく、ＰＤＡ８００の種々のコンポーネントに電力を供給してもよい。
【００５５】
図８の一般的な図に示されるように、ディスプレイ８１０、キーパッド８１２、ＩｒＤＡポート８２２、デジタルカメラ８２４、第１のステレオスピーカ８３０、マイクロフォン８３４、第２のステレオスピーカ８３８、ステレオヘッドフォン８４０、８０２．１１アンテナ８４４、ブルートゥースアンテナ８４８、ＵＳＢポート８５２、及び電源８５０が、オンチップシステム８０２の外部であり、オンチップシステム８０２上の１以上のコンポーネントに結合されていてもよい。特別の態様では、ＤＳＰ８０４は、スレッドからのトランザクションリクエストによってインターフェースへダイレクトアクセスできるメモリマネージメントユニット（ＭＭＵ）８６２を含んでいる。例えば、ＭＭＵ８６２は、図２或いは４を参照して述べられるように、処理遅延を低減するためにトランザクションリクエストに向かうインターフェースを指し示すビットを受け取ることのできるマイクロトランスレーションルックアサイドバッファ（μＴＬＢ）を含んでいてもよい。
【００５６】
図９は、オーディオファイルプレーヤ（例えば、ＭＰ３プレーヤ）９００の典型的な態様を示した図である。図示されるように、オーディオファイルプレーヤ９００は、デジタルシグナルプロセッサ（ＤＳＰ）９０４を含んだオンチップシステム９０２を含んでいる。ディスプレイコントローラ９０６がＤＳＰ９０４に結合されていてもよく、ディスプレイ９０８がディスプレイコントローラ９０６に結合されていてもよい。典型的な態様では、ディスプレイ９０８は液晶ディスプレイ（ＬＣＤ）である。キーパッド９１０が、ＤＳＰ９０４に結合されていてもよい。
【００５７】
図９の一般的な図にさらに示されるように、フラッシュメモリ９１２及びリードオンリメモリ（ＲＯＭ）９１４が、ＤＳＰ９０４に結合されていてもよい。さらに、特別の態様では、オーディオＣＯＤＥＣ９１６が、ＤＳＰ９０４に結合されていてもよい。増幅器９１８がオーディオＣＯＤＥＣ９１６に結合されていてもよく、モノスピーカ９２０が増幅器９１８に結合されていてもよい。図９の一般的な図はさらに、マイクロフォン入力９２２及びステレオ入力９２４が、オーディオＣＯＤＥＣ９１６に結合されていてもよいことを示している。特別の態様では、ステレオヘッドフォン９２６が、オーディオＣＯＤＥＣ９１６に結合されていてもよい。
【００５８】
ＵＳＢポート９２８及びスマートカード９３０が、ＤＳＰ９０４に結合されていてもよい。さらに、電源９３２が、オンチップシステム９０２に結合されていてもよく、オーディオファイルプレーヤ９００の種々のコンポーネントに電力を供給してもよい。
【００５９】
図９の一般的な図に示されるように、ディスプレイ９０８、キーパッド９１０、モノスピーカ９２０、マイクロフォン入力９２２、ステレオ入力９２４、ステレオヘッドフォン９２６、ＵＳＢポート９２８、及び電源９３２は、オンチップシステム９０２の外部にあり、オンチップシステム９０２上の１以上のコンポーネントに結合されている。特別の態様では、ＤＳＰ９０４は、スレッドからのトランザクションリクエストによってインターフェースへダイレクトアクセスできるメモリマネージメントユニット（ＭＭＵ）９２６を含んでいる。例えば、ＭＭＵ９６２は、図２或いは４を参照して述べられるように、処理遅延を低減するためにトランザクションリクエストに向かうインターフェースを指し示すビットを受け取ることのできるマイクロトランスレーションルックアサイドバッファ（μＴＬＢ）を含んでいてもよい。
【００６０】
概括
ここに開示された発明のコンセプトの態様の上述した説明は、例証及び説明の目的のためにだけ示されたものであり、開示された正確な形でここに開示された発明のコンセプトを制限し或いは徹底的であることを意図していない。多くの変更及び適応は、ここに開示された発明のコンセプトの精神及び範囲から逸脱することなく、当業者にとって明らかである。
【図１】
2015072696.tif 000003
【図２】
2015072696.tif 000004
【図３】
2015072696.tif 000005
【図４】
2015072696.tif 000006
【図５】
2015072696.tif 000007
【図６】
2015072696.tif 000008
【図７】
2015072696.tif 000009
【図８】
2015072696.tif 000010
【図９】
2015072696.tif 000011
【手続補正書】
【提出日】平成26年12月11日(2014.12.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のインターフェースの１つを指し示すビットを記憶するように構成されたストレージモジュールであって、前記ビットが物理アドレスレンジに関連付けられているストレージモジュールと、
前記物理アドレスレンジ内の物理アドレスを前記ビットに基づいて前記複数のインターフェースの前記１つに届けるように構成されたロジック回路と、
を備えたトランスレーションルックアサイドバッファ（ＴＬＢ）。
【請求項２】
前記ストレージモジュールは、アドレスデコーダから前記ビットを受け取るように構成されている
請求項１のＴＬＢ。
【請求項３】
前記ストレージモジュールは、システムオンチップ（ＳＯＣ）メモリマップストラッピングを用いて生成される前記ビットを受け取るように構成されている
請求項２のＴＬＢ。
【請求項４】
前記ストレージモジュールは、前記ＴＬＢよりも大きなサイズを有する第２のＴＬＢから前記ビットを受け取るように構成されている
請求項１のＴＬＢ。
【請求項５】
前記ＴＬＢは、マイクロトランスレーションルックアサイドバッファ（μＴＬＢ）である
請求項４のＴＬＢ。
【請求項６】
前記ストレージモジュールは、
前記物理アドレスに関連付けられたバーチャルアドレスを記憶するように構成されたコンテントアクセシブルメモリ（ＣＡＭ）と、
前記ビット及び前記物理アドレスを記憶するように構成されたランダムアクセスメモリ（ＲＡＭ）と、
を備える、請求項１のＴＬＢ。
【請求項７】
前記ロジック回路は、
前記物理アドレスを指し示すように構成された前記ＣＡＭからのセレクタと、
前記ＲＡＭに関連付けられたマルチプレクサであって、前記セレクタ及び前記ビットに基づいて前記物理アドレスを届けるように構成されたマルチプレクサと、
を備える、請求項６のＴＬＢ。
【請求項８】
前記ＴＬＢはポータブルコミュニケーションデバイス内に配置されている
請求項１のＴＬＢ。
【請求項９】
プロセッサスレッドからのトランザクションリクエストのための複数のインターフェースの１つを識別するビットを供給するように構成されたアドレスデコーダであって、前記ビットが物理アドレスレンジに関連付けられているアドレスデコーダと、
前記物理アドレスレンジ内の物理アドレスを前記ビットに関連付けるように構成されたストレージモジュールと、前記物理アドレスを前記ビットに基づいて前記複数のインターフェースの前記１つに届けるように構成されたロジック回路と、を備えた第１のトランスレーションルックアサイドバッファ（ＴＬＢ）と、
を備えたメモリマネージメントユニット（ＭＭＵ）。
【請求項１０】
前記アドレスデコーダは、システムオンチップ（ＳＯＣ）メモリマップストラッピング及び前記物理アドレスを用いて前記ビットを決定するように構成されている
請求項９のＭＭＵ。
【請求項１１】
前記ＳＯＣメモリマップストラッピングは、プログラムされたロジックを備える
請求項１０のＭＭＵ。
【請求項１２】
前記物理アドレス及び前記物理アドレスに関連付けられたバーチャルアドレスをエクセプションエンジンから受け取って前記物理アドレスを前記第１のＴＬＢに供給するように構成された第２のＴＬＢを
さらに備えた請求項９のＭＭＵ。
【請求項１３】
前記第２のＴＬＢは、前記アドレスデコーダから前記ビットを受け取って前記物理アドレス及び前記ビットをエントリーに記憶するように構成されている
請求項１２のＭＭＵ。
【請求項１４】
前記ストレージモジュールは、
前記物理アドレスに関連付けられたバーチャルアドレスを記憶するように構成されたコンテントアクセシブルメモリ（ＣＡＭ）と、
前記ビット及び前記物理アドレスを記憶するように構成されたランダムアクセスメモリ（ＲＡＭ）と、
を備える、請求項９のＭＭＵ。
【請求項１５】
前記ロジック回路は、
前記物理アドレスを指し示すように構成された前記ＣＡＭからのセレクタと、
前記ＲＡＭに関連付けられたマルチプレクサであって、前記セレクタ及び前記ビットに基づいて前記物理アドレスを届けるように構成されたマルチプレクサと、
を備える、請求項１４のＭＭＵ。
【請求項１６】
前記ＭＭＵはポータブルコミュニケーションデバイス内に配置されている
請求項９のＭＭＵ。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００６０
【補正方法】変更
【補正の内容】
【００６０】
概括
ここに開示された発明のコンセプトの態様の上述した説明は、例証及び説明の目的のためにだけ示されたものであり、開示された正確な形でここに開示された発明のコンセプトを制限し或いは徹底的であることを意図していない。多くの変更及び適応は、ここに開示された発明のコンセプトの精神及び範囲から逸脱することなく、当業者にとって明らかである。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［１］
複数のインターフェースの１つを指し示すビットを記憶するように構成されたストレージモジュールであって、前記ビットが物理アドレスレンジに関連付けられているストレージモジュールと、
前記物理アドレスレンジ内の物理アドレスを前記ビットに基づいて前記複数のインターフェースの前記１つに届けるように構成されたロジック回路と、
を備えたトランスレーションルックアサイドバッファ（ＴＬＢ）。
［２］
前記ストレージモジュールは、アドレスデコーダから前記ビットを受け取るように構成されている
［１］のＴＬＢ。
［３］
前記ストレージモジュールは、システムオンチップ（ＳＯＣ）メモリマップストラッピングを用いて生成される前記ビットを受け取るように構成されている
［２］のＴＬＢ。
［４］
前記ストレージモジュールは、前記ＴＬＢよりも大きなサイズを有する第２］のＴＬＢから前記ビットを受け取るように構成されている
［１］のＴＬＢ。
［５］
前記ＴＬＢは、マイクロトランスレーションルックアサイドバッファ（μＴＬＢ）である
［４］のＴＬＢ。
［６］
前記ストレージモジュールは、
前記物理アドレスに関連付けられたバーチャルアドレスを記憶するように構成されたコンテントアクセシブルメモリ（ＣＡＭ）と、
前記ビット及び前記物理アドレスを記憶するように構成されたランダムアクセスメモリ（ＲＡＭ）と、
を備える、［１］のＴＬＢ。
［７］
前記ロジック回路は、
前記物理アドレスを指し示すように構成された前記ＣＡＭからのセレクタと、
前記ＲＡＭに関連付けられたマルチプレクサであって、前記セレクタ及び前記ビットに基づいて前記物理アドレスを届けるように構成されたマルチプレクサと、
を備える、［６］のＴＬＢ。
［８］
前記ＴＬＢはポータブルコミュニケーションデバイス内に配置されている
［１］のＴＬＢ。
［９］
プロセッサスレッドからのトランザクションリクエストのための複数のインターフェースの１つを識別するビットを供給するように構成されたアドレスデコーダであって、前記ビットが物理アドレスレンジに関連付けられているアドレスデコーダと、
前記物理アドレスレンジ内の物理アドレスを前記ビットに関連付けるように構成されたストレージモジュールと、前記物理アドレスを前記ビットに基づいて前記複数のインターフェースの前記１つに届けるように構成されたロジック回路と、を備えた第１のトランスレーションルックアサイドバッファ（ＴＬＢ）と、
を備えたメモリマネージメントユニット（ＭＭＵ）。
［１０］
前記アドレスデコーダは、システムオンチップ（ＳＯＣ）メモリマップストラッピング及び前記物理アドレスを用いて前記ビットを決定するように構成されている
［９］のＭＭＵ。
［１１］
前記ＳＯＣメモリマップストラッピングは、プログラムされたロジックを備える
［１０］のＭＭＵ。
［１２］
前記物理アドレス及び前記物理アドレスに関連付けられたバーチャルアドレスをエクセプションエンジンから受け取って前記物理アドレスを前記第１のＴＬＢに供給するように構成された第２のＴＬＢを
さらに備えた［９］のＭＭＵ。
［１３］
前記第２のＴＬＢは、前記アドレスデコーダから前記ビットを受け取って前記物理アドレス及び前記ビットをエントリーに記憶するように構成されている
［１２］のＭＭＵ。
［１４］
前記ストレージモジュールは、
前記物理アドレスに関連付けられたバーチャルアドレスを記憶するように構成されたコンテントアクセシブルメモリ（ＣＡＭ）と、
前記ビット及び前記物理アドレスを記憶するように構成されたランダムアクセスメモリ（ＲＡＭ）と、
を備える、［９］のＭＭＵ。
［１５］
前記ロジック回路は、
前記物理アドレスを指し示すように構成された前記ＣＡＭからのセレクタと、
前記ＲＡＭに関連付けられたマルチプレクサであって、前記セレクタ及び前記ビットに基づいて前記物理アドレスを届けるように構成されたマルチプレクサと、
を備える、［１４］のＭＭＵ。
［１６］
前記ＭＭＵはポータブルコミュニケーションデバイス内に配置されている
［９］のＭＭＵ。
［１７］
プロセッサスレッドからトランザクションリクエストを受け取ることであって、前記トランザクションリクエストがバーチャルアドレスを備えることと、
前記バーチャルアドレスに対応する物理アドレスを識別することと、
複数のインターフェースの１つを識別するビットを供給するためにシステムオンチップ（ＳＯＣ）メモリマップストラッピングを用いて前記物理アドレスをデコードすることであって、前記ビットが物理アドレスレンジに関連付けられていることと、
前記物理アドレス及び前記ビットをマイクロトランスレーションルックアサイドバッファ（μＴＬＢ）に記憶することと、
前記μＴＬＢ内の前記バーチャルアドレスを識別することと、
前記物理アドレスを前記ビットに基づいて前記複数のインターフェースの前記１つに届けることであって、前記物理アドレスが前記物理アドレスレンジ内であることと、
を備えた方法。
［１８］
前記物理アドレスをトランスレーションルックアサイドバッファ（ＴＬＢ）に記憶することと、
前記物理アドレスを前記ＴＬＢから前記μＴＬＢに供給することと、
をさらに備えた［１７］の方法。
［１９］
前記物理アドレスを前記ＴＬＢから前記アドレスデコーダに供給することを、
をさらに備えた［１８］の方法。
［２０］
前記ＴＬＢで前記ビットを受け取ることと、
前記物理アドレスを伴った前記ビットを前記ＴＬＢに記憶することと、
前記物理アドレスを伴った前記ビットを前記ＴＬＢから前記μＴＬＢに供給することと、
をさらに備えた［１８］の方法。
［２１］
前記μＴＬＢが最初は前記バーチャルアドレスを含んでいないことを決定することと、
前記ＴＬＢが最初は前記バーチャルアドレスを含んでいないことを決定することと、
前記バーチャルアドレス及び前記物理アドレスを前記ＴＬＢ内の少なくとも１つのエントリーに記憶することと、
をさらに備え、
前記物理アドレス及び前記ビットを前記μＴＬＢに記憶することは、前記バーチャルアドレス、物理アドレス及び前記ビットを前記μＴＬＢ内の少なくとも１つのエントリーに記憶することを備える
［１７］の方法。
［２２］
前記物理アドレスを前記ビットに基づいて前記複数のインターフェースの前記１つに届けることは、前記ビットを用いて前記物理アドレスが届けられる前記複数のインターフェースの前記１つを識別することを備える
［１７］の方法。
【外国語明細書】
2015072696000001.pdf