(57)【要約】  この開示は、トランスレーション・ルックアサイド・バッファ（ＴＬＢ）をコンフィギュレーションする方法とシステムとを含む。一実施形態においては、前記ＴＬＢは、第１の部分と、第２の部分と、を含む。前記第１の部分又は前記第２の部分は、ＴＬＢコンフィギュレーション・インジケータの値に応答して選択的にディスエーブルにすることができる。【選択図】図１
2011503726.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのトランスレーション・ルックアサイド・バッファ（ＴＬＢ）コンフィギュレーション・インジケータを受信することと、
前記ＴＬＢコンフィギュレーション・インジケータの値に応答してＴＬＢの検索可能エントリ数を変更すること、とを備える、方法。
【請求項２】
前記少なくとも１つのＴＬＢコンフィギュレーション・インジケータは、オペレーティングシステムから受信される請求項１に記載の方法。
【請求項３】
前記少なくとも１つのＴＬＢコンフィギュレーション・インジケータは、ＴＬＢミス率が閾値を超えることに応答して決定される請求項２に記載の方法。
【請求項４】
前記少なくとも１つのＴＬＢコンフィギュレーション・インジケータは、コンフィギュレーション・レジスタ内のビットを含む請求項１に記載の方法。
【請求項５】
前記検索可能エントリ数を変更することは、前記検索可能エントリ数を増加させるためにＴＬＢの一部分をイネーブルにすることを含む請求項１に記載の方法。
【請求項６】
前記ＴＬＢのイネーブルにされた前記部分における前記検索可能エントリの各々に対して無効インジケータを設定することをさらに備える請求項５に記載の方法。
【請求項７】
前記ＴＬＢコンフィギュレーション・インジケータは、前記ＴＬＢが第１の利用可能エントリ数を有するか又は第２の利用可能エントリ数を有するかを決定する請求項１に記載の方法。
【請求項８】
前記検索可能エントリ数を減少させるためにＴＬＢの一部分をディスエーブルにすることをさらに備える請求項１に記載の方法。
【請求項９】
前記ＴＬＢのディスエーブルにされた前記部分の少なくとも１つのエントリから前記ＴＬＢの少なくとも１つのその他の部分にデータをコピーすることをさらに備える請求項８に記載の方法。
【請求項１０】
ディスエーブルにされた前記ＴＬＢの前記部分の電源を切ることをさらに備える請求項８記載の方法。
【請求項１１】
トランスレーション・ルックアサイド・バッファ（ＴＬＢ）ミス率を決定することと、
前記ＴＬＢミス率が閾値を超えるのを検出することと、
前記ＴＬＢミス率が前記閾値を超えたことを検出した後にＴＬＢのサイズを大きくするための命令を送信すること、とを備える方法。
【請求項１２】
前記ＴＬＢミス率は、総ＴＬＢ問い合わせ数と比較した場合における、結果的に例外になる試行されたＴＬＢ問い合わせ数に基づく請求項１１に記載の方法。
【請求項１３】
ＴＬＢのイネーブルにされた部分の数を示すためにコンフィギュレーション・レジスタにおいて少なくとも１つのコンフィギュレーション・インジケータを設定することをさらに備える請求項１１に記載の方法。
【請求項１４】
トランスレーション・ルックアサイド・バッファ（ＴＬＢ）コンフィギュレーション値を含むＴＬＢコンフィギュレーション・フィールドを含むコンフィギュレーション・レジスタを備え、
前記ＴＬＢコンフィギュレーション値は、第１の設定又は第２の設定を識別し、前記ＴＬＢコンフィギュレーション値が前記第１の設定を識別するときには、前記ＴＬＢは、第１の検索可能エントリ数を有し、前記値が前記第２の設定を識別するときには、前記ＴＬＢは、第２の検索可能エントリ数を有し、前記第２の数は前記第１の数と異なる、コンピュータ読み取り可能な媒体。
【請求項１５】
前記ＴＬＢコンフィギュレーション・フィールドは、ソフトウェア制御下にあるプロセッサによってプログラミング可能である請求項１４に記載の媒体。
【請求項１６】
前記ソフトウェア制御は、オペレーティングシステムによって行われる請求項１５に記載の媒体。
【請求項１７】
前記ＴＬＢコンフィギュレーション・フィールドは、少なくとも２つのビットを有し、前記値は、第３の設定又は第４の設定をさらに識別するように構成され、前記第３の設定は、前記ＴＬＢの第３の部分に関連し、前記第４の設定は、前記ＴＬＢの第４の部分に関連する請求項１４に記載の媒体。
【請求項１８】
メモリ内に格納されたトランスレーションルック・アサイド・バッファ（ＴＬＢ）コンフィギュレーションビットと、
第１の部分と第２の部分とを含むＴＬＢと、を備え、前記第１の部分は、前記ＴＬＢコンフィギュレーション・ビットの値に応答して選択的にディスエーブルにされる、システム。
【請求項１９】
前記メモリに応答する論理素子をさらに備え、前記論理素子は、前記ＴＬＢに結合された出力を有し、前記第１の部分は、前記論理素子の前記出力に応答して選択的にディスエーブルにされる請求項１８に記載のシステム。
【請求項２０】
前記論理素子は、メモリ管理ユニット制御信号にさらに応答する請求項１９に記載のシステム。
【請求項２１】
前記第１の部分は、前記ＴＬＢ内の前記エントリの１／２を含む請求項１８に記載のシステム。
【請求項２２】
前記第１の部分は、前記第２の部分と異なるエントリ数を含む請求項１８に記載のシステム。
【請求項２３】
前記ＴＬＢの出力に応答するマルチプレクサをさらに備え、前記マルチプレクサは、前記ＴＬＢコンフィギュレーション・ビット設定に応答してイネーブルにされる出力を選択する請求項１８記載のシステム。
【請求項２４】
前記ＴＬＢ内の複数のエントリは、ソフトウェアプログラムによって格納される請求項１８に記載のシステム。
【請求項２５】
前記ＴＬＢは、ソフトウェアアプリケーションを実行するように構成されたプロセッサ内に組み込まれ、前記ソフトウェアアプリケーションは、第１のＴＬＢエントリ数を用いる第１の動作モードを有し、前記第１のＴＬＢエントリ数は、前記ＴＬＢの前記第１の部分内の前記エントリ数よりも少ない請求項１８に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概略的には、トランスレーション・ルックアサイド・バッファ（translation lookaside buffers）に関するものである。
【背景技術】
【０００２】
技術の進歩は、より小型でより強力なパーソナル計算デバイスを生み出している。例えば、現在では、小型、軽量で、ユーザによる持ち運びが容易であるポータブル無線電話、携帯情報端末（ＰＤＡ）、及びページング・デバイス、等の無線計算デバイスを含む様々なポータブルパーソナル計算デバイスが存在する。より具体的には、ポータブル無線電話、例えばセルラー電話及びＩＰ電話、は、無線ネットワークを通じて音声及びデータパケットを通信することができる。さらに、多くの該無線電話は、そこに組み込まれているその他のタイプのデバイスを含む。例えば、無線電話は、デジタルスチルカメラと、デジタルビデオカメラと、デジタルレコーダと、オーディオファイルプレーヤと、を含むことも可能である。さらに、該無線電話は、インターネットにアクセスするために用いることができるソフトウェアアプリケーション、例えばウェブブラウザアプリケーション、を含む実行可能な命令を処理することができる。従って、これらの無線電話は、重要な計算能力を含むことができる。
【０００３】
ポータブル計算デバイスにおいて実行されるプロセスは、処理のために物理アドレスに変換しなければならない仮想アドレスを用いてデータ及び命令を参照することができる。トランスレーション・ルックアサイド・バッファ（ＴＬＢ）は、仮想アドレスを物理アドレスに素早く変換するためのデータを格納することができかつ仮想アドレスの変換に関連する遅延を低減させることによってアプリケーション性能を向上させることができる。しかしながら、ＴＬＢの動作によって電力消費量が増大する可能性もある。増大した電力消費量は、バッテリ交換又は充電が要求される前におけるポータブルパーソナル計算デバイスの稼働時間の対応する減少を生じさせる可能性がある。
【発明の概要】
【０００４】
特定の実施形態において、少なくとも１つのトランスレーション・ルックアサイド・バッファ（ＴＬＢ）コンフィギュレーション（ｃｏｎｆｉｇｕｒａｔｉｏｎ）インジケータを受信することを含む方法が開示される。この方法は、前記ＴＬＢコンフィギュレーション・インジケータの値に応答してＴＬＢの検索可能エントリ数を変更することも含む。
【０００５】
他の特定の実施形態においては、トランスレーション・ルックアサイド・バッファ（ＴＬＢ）ミス率を決定することを含む方法が開示される。この方法は、前記ＴＬＢミス率が閾値を超えるのを検出することを含む。前記方法は、前記ＴＬＢミス率が前記閾値を超えたことを検出した後にＴＬＢのサイズを大きくするための命令を送信することをさらに含む。
【０００６】
他の特定の実施形態においては、メモリ内に格納されたトランスレーション・ルックアサイド・バッファ（ＴＬＢ）コンフィギュレーション・ビットを含むシステムが開示される。このシステムは、第１の部分と第２の部分とを含むＴＬＢも含む。前記第１の部分は、前記ＴＬＢコンフィギュレーション・ビットの値に応答して選択的にディスエーブルにされる。
【０００７】
他の特定の実施形態においては、コンピュータによって読み取り可能な媒体が開示される。このコンピュータによって読み取り可能な媒体は、第１のフィールドと第２のフィールドとを含むコンフィギュレーションレジスタを含む。前記第２のフィールドは、トランスレーション・ルックアサイド・バッファ（ＴＬＢ）コンフィギュレーション値を含む。前記ＴＬＢコンフィギュレーション値は、第１の設定又は第２の設定を識別する。前記ＴＬＢコンフィギュレーション値が前記第１の設定を識別するときは、前記ＴＬＢは、第１の検索可能エントリ数を有し、前記値が前記第２の設定を識別するときは、前記ＴＬＢは、第２の検索可能エントリ数を有する。
【０００８】
前記開示される実施形態によって提供される１つの特定の利点は、検索可能ＴＬＢエントリ数を選択的にディスエーブルにすることによって可能にされる低減された電力消費量である。
【０００９】
この開示のその他の態様、利点、及び特徴は、次のセクション、すなわち、図面の簡単な説明、詳細な説明、及び請求項、を含む出願全体を検討した後に明確になるであろう。
【図面の簡単な説明】
【００１０】
【図１】図１は、コンフィギュラブル（ｃｏｎｆｉｇｕｒａｂｌｅ）トランスレーションルックアサイドバッファ（ＴＬＢ）を含むシステムの特定の例示的実施形態の機能図である。
【図２】図２は、コンフィギュラブルＴＬＢを含むシステムの第２の例示的実施形態の機能図である。
【図３】図３は、ＴＬＢをコンフィギュレーションする方法の特定の例示的実施形態のフローチャートである。
【図４】図４は、ＴＬＢをコンフィギュレーションする方法の第２の例示的実施形態のフローチャートである。
【図５】図５は、コンフィギュラブルＴＬＢを含むポータブル通信デバイスのブロック図である。
【詳細な説明】
【００１１】
図１を参照すると、コンフィギュラブル（ｃｏｎｆｉｇｕｒａｂｌｅ）ＴＬＢを含むシステムの特定の例示的実施形態が図示され、全体として１００で示されている。システム１００は、オペレーティングシステム１０２と、プロセッサ１０４と、割り込みコントローラ１０６と、ソフトウェアアプリケーション１０８と、を含む。オペレーティングシステム１０２は、ソフトウェアアプリケーション１０８からの入力及び割り込みコントローラ１０６からの入力に応答する。プロセッサ１０４は、オペレーティングシステム１０２に応答し、割り込みコントローラ１０６に提供される割り込み出力を提供する。
【００１２】
特定の実施形態において、プロセッサ１０４は、ＴＬＢサイズ・インジケータ１１２を含む複数のコンフィギュレーション・フィールドを含むコンフィギュレーション・レジスタ１１０を含む。プロセッサ１０４は、コンフィギュレーション・レジスタ１１０及びメモリ管理ユニット（ＭＭＵ）１１６に応答するトランスレーション・ルックアサイド・バッファ（ＴＬＢ）サイズ選択論理回路１１４も含む。プロセッサ１０４は、ＴＬＢサイズ選択論理回路１１４及びＭＭＵ１１６に応答するＴＬＢ１１８をさらに含む。
【００１３】
特定の実施形態において、プロセッサ１０４は、ＴＬＢ１１８において利用可能な検索可能エントリ数を制御するために動作可能である。プロセッサ１０４は、オペレーティングシステム１０２からの信号１２６を介して命令を受信するように及び命令１２６に応答してＴＬＢサイズ・インジケータ１１２の値を更新するように構成することができる。ＴＬＢサイズ選択論理１１４は、ＴＬＢサイズ・インジケータ１１２の値に基づいて及びＭＭＵ１１６から受信された入力に基づいてＴＬＢ１１８に出力を提供するために好適化することができる。
【００１４】
ＴＬＢ１１８は、例示されるように、少なくとも２つの部分、例えば、第１の部分１２０、第２の部分１２２、及び第３の部分１２４、を含む。特定の実施形態において、ＴＬＢ１１８は、第１の部分と、第２の部分と、を含む。他の実施形態においては、ＴＬＢ１１８は、第１の部分と、第２の部分と、第３の部分と、第４の部分と、を含む。ＴＬＢ１１８は、特定の用途及びシステム設計上の制約事項に依存して、複数の部分を含むことができること及び５つ以上の部分を含むことができることが理解されるべきである。
【００１５】
各ＴＬＢ部分１２０乃至１２４は、仮想アドレスを物理アドレスに変換するためのデータを格納するための１つまたは複数のＴＬＢエントリを含む。特定の実施形態において、ＴＬＢ１１８は、ＴＬＢ１１８のエントリの各々をソフトウェアプログラムによって格納できるようにソフトウェアプログラマブルである。さらに、ＴＬＢ部分１２０乃至１２４のうちの１つ以上は、ＴＬＢサイズ選択論理回路１１４の出力に基づいて選択的にディスエーブルにされるか又はイネーブルにされるように構成される。特定の実施形態において、プロセッサ１０４は、変換されるべき仮想アドレスがイネーブルにされたＴＬＢ部分１２０乃至１２４のいずれのエントリともマッチしないときに割り込みコントローラ１０６にＴＬＢミス信号１５０を送信するように構成される。
【００１６】
特定の実施形態において、割り込みコントローラ１０６は、１つまたは複数のＴＬＢミス信号１５０を受信し及びＴＬＢミス信号の各々に応答して割り込み又は例外処理を開始するのに好適である。割り込みコントローラ１０６は、受信されたＴＬＢミス信号１５０に応答してオペレーティングシステム１０２に制御出力１４２を提供するように構成することができる。
【００１７】
特定の実施形態において、オペレーティングシステム１０２は、１つまたは複数のソフトウェアアプリケーション１０８から、割り込みコントローラ１０６から、又はそのいずれかの組み合わせから受信されたデータに基づいてＴＬＢ１１８の選択されたサイズを決定するために実行可能なＴＬＢサイズ・モジュール１３０を含む。ＴＬＢサイズ・モジュール１３０は、ＴＬＢミス・データを提供する割り込みコントローラ１０６からの制御出力１４２に基づいてＴＬＢミス率を評価するために実行可能なＴＬＢミス率評価モジュール１３２を含むことができる。特定の実施形態において、オペレーティングシステム１０２は、決定されたＴＬＢミス率に基づいてＴＬＢ１１８のＴＬＢサイズ、イネーブルにされたＴＬＢ部分１２０乃至１４０の数、又はＴＬＢエントリ数を自動的にモニタリング及び更新するように構成される。
【００１８】
例示的実施形態においては、プロセッサ１０４は、インターリービングされたマルチスレッド・パイプライン化プロセッサである。コンフィギュレーション・レジスタ１１０及びＴＬＢ１１８は、プロセッサ１０４の異なる処理スレッド間において共有することができる。オペレーティングシステム１０２は、無線通信デバイスにおけるマルチスレッド化された処理をサポートするために好適化することができる。特定の実施形態において、オペレーティングシステム１０２は、ＬＩＮＵＸ（登録商標）型オペレーティングシステムである。
【００１９】
動作中においては、オペレーティングシステム１０２は、ＴＬＢコンフィギュレーション・パラメータを指定する１つまたは複数のソフトウェアアプリケーション１０８から１つまたは複数の入力１４０を受信することができる。例示的な、制限しない一例として、入力１４０は、各ソフトウェアアプリケーション１０８によって要求される又は好まれるＴＬＢエントリ数を示すことができる。オペレーティングシステム１０２は、割り込みコントローラ１０６又はその他のデバイスからＴＬＢミス情報を受信することもでき及びＴＬＢミス率評価モジュール１３２においてＴＬＢミス率を決定することができる。各ＴＬＢミスは、ＴＬＢ１１８がＴＬＢの検索可能エントリにおいて格納されていない仮想アドレスの変換に関する問い合わせを受信するときに発生し、ページ・テーブル（示されていない）を検索することによって特定の仮想アドレスに対応する物理アドレスの場所が探索されてＴＬＢ１１８のエントリ内にロードされる間に処理遅延を引き起こす。ＴＬＢミス率は、ＴＬＢミスに至るＴＬＢ問い合わせの割合、ＴＬＢミスと非ＴＬＢミス（すなわち、ＴＬＢ“ヒット”）の比、単位時間当たりのＴＬＢミス数、又はＴＬＢの性能を反映したその他の情報を示すことができる。
【００２０】
オペレーティングシステム１０２は、ソフトウェアアプリケーション１０８から受信されたデータ、ＴＬＢミス率データ、又はそのいずれかの組み合わせに基づいてＴＬＢサイズ・モジュール１３０におけるＴＬＢサイズ設定を決定することができる。特定の実施形態において、オペレーティングシステム１０２は、信号１２６を介して決定されたＴＬＢサイズ設定をプロセッサ１０４に通信する。
【００２１】
例えば、例示的実施形態において、ＴＬＢサイズ・モジュール１３０は、１つまたは複数のソフトウェアアプリケーション１０８からＴＬＢエントリ数の指示を受信し、ＴＬＢミスに起因する処理遅延数が許容可能な少なさである状態でソフトウェアアプリケーション１０８が実行されるための十分な数のＴＬＢエントリを提供するためにイネーブルにされるＴＬＢ部分の数を決定することができる。ＴＬＢサイズ・モジュール１３０は、ＴＬＢミス率評価モジュール１３２から受信されたＴＬＢミス率データを１つまたは複数の閾値と比較することもできる。例えば、ＴＬＢミス率が上限閾値を超える場合は、ＴＬＢサイズ・モジュール１３０は、ＴＬＢミス率を低下させるために及び処理性能を向上させるために１つまたは複数の追加のＴＬＢ部分１２０乃至１２４をイネーブルにすべきであることを決定することができる。しかしながら、ＴＬＢミス率が下限閾値を下回る場合は、ＴＬＢサイズモジュール１３０は、増加したＴＬＢミスに起因して性能を有意に低下させることなしに電力消費量を低減させるために１つまたは複数のＴＬＢ部分１２０乃至１２４をディスエーブルにすべきであることを決定することができる。
【００２２】
特定の実施形態において、オペレーティングシステム１０２によって生成された信号１２６は、ＴＬＢサイズ・インジケータ１１２の値を設定するための命令を含む。例示的実施形態において、オペレーティングシステム１０２は、イネーブルにされたＴＬＢ部分１２０乃至１２４の数を増加又は減少させるようにプロセッサ１０４に命令する。他の実施形態においては、オペレーティングシステム１０２は、特定の数のＴＬＢ部分１２０乃至１２４をイネーブルにするようにプロセッサ１０４に命令し又はイネーブルにされるべき特定のＴＬＢ部分１２０乃至１２４を指定する。特定の実施形態において、オペレーティングシステム１０２は、ＴＬＢサイズインジケータ１１２に特定値を書き込むようにプロセッサ１０４に命令する。
【００２３】
例示のための一例として、ＴＬＢ１１８が２つの部分のみを含む実施形態においては、第１のＴＬＢ部分は常にイネーブルにすることができ、及びＴＬＢサイズインジケータ１１２は、単一ビット値であることができる。オペレーティングシステム１０２は、第２のＴＬＢ部分をディスエーブルにするために論理“１”値をＴＬＢサイズ・インジケータ１１２に書き込むか又は第２のＴＬＢ部分をイネーブルにするために論理“０”値をＴＬＢサイズ・インジケータ１１２に書き込むようにプロセッサ１０４に命令することができる。他の例として、ＴＬＢ１１８が３つ以上のＴＬＢ部分を含む実施形態においては、オペレーティングシステム１０２は、イネーブルにされるべきＴＬＢ部分の数の２進表示であるＴＬＢサイズ・インジケータ１１２への値をプログラミングするようにプロセッサ１０４に命令することができる。例示することを目的として、ＴＬＢサイズ・インジケータ１１２は、４つの設定を示す２つのビットを含むことができ、各設定は、イネーブルにされたＴＬＢ部分の異なる数、その結果としての異なる検索可能ＴＬＢエントリ数、に関連する。他の例として、ＴＬＢサイズ・インジケータ１１２は、オペレーティングシステム１０２による特定のＴＬＢ部分の選択的なイネーブル化又はディスエーブル化のための各ＴＬＢ部分のための専用ビットを含むことができる。
【００２４】
ＴＬＢサイズ・インジケータ１１２の設定に応答して、ＴＬＢ選択論理回路１１４は、ＴＬＢ１１８にコマンド信号を提供する。ＴＬＢサイズ選択論理回路１１４からのコマンド信号に基づき及びＭＭＵ１１６からの入力にも基づき、ＴＬＢ１１８は、動作中にＴＬＢ部分のうちの１つ以上、例えば指示されたＴＬＢ部分１２０乃至１２４、を用いるように構成される。ＴＬＢサイズ選択論理１１４からのコマンド信号が、全ＴＬＢ部分１２０乃至１２４よりも少ないＴＬＢ部分が用いられることを示すときには、ＴＬＢ１１８は、プロセッサ１０４の電力及び資源を節約するためにディスエーブルにされているか又は未使用のＴＬＢ部分の動作を停止させるか又は任意選択で電力を低下させることができる。
【００２５】
一実施形態において、第１のＴＬＢ部分１２０は、メモリ内に格納されたＴＬＢコンフィギュレーション・ビット、例えば、コンフィギュレーション・レジスタ１１０に格納されたＴＬＢサイズ・インジケータ１１２内の１つまたは複数のビット、の値に応答して選択的にディスエーブルにすることができる。プロセッサ１０４は、メモリに結合された入力に応答する論理素子、例えばＴＬＢサイズ選択論理回路１１４、を含む。論理素子は、ＴＬＢ１１８に結合された出力を有し、ＴＬＢ部分１２０、１２２、及び１２４のうちのいずれかを、論理素子の出力に応答して選択的にディスエーブルにすることができる。特定の実施形態においては、第１のＴＬＢ部分１２０は、ＴＬＢ１１８内のエントリの１／２を含むことができる。他の実施形態においては、第１のＴＬＢ部分１２０は、ＴＬＢ１１８内のエントリの１／３、１／４、又はその他の何らかの部分を含むことができる。さらに、第１のＴＬＢ部分１２０は、第２のＴＬＢ部分１２２と同じサイズ又は異なるサイズであることができる。
【００２６】
システム１００は、ソフトウェアアプリケーション１０８を含み、様々な動作モードで用いることができる。第１の動作モードにおいては、ソフトウェアアプリケーション１０８は、実行を目的として単一のＴＬＢエントリのみを要求することができる。この第１の動作モードにおいては、ソフトウェアアプリケーション１０８は、ＴＬＢ１１８の単一のエントリ（又は単一部分）のみが用いられるようにコンフィギュレーション・レジスタ１１０内のＴＬＢサイズ・インジケータ１１２を設定するようにオペレーティングシステム１０２に指示することができる。この第１の動作モードにおいては、ソフトウェアアプリケーション１０８は正常に実行することができ、及びＴＬＢ１１８内の単一のエントリのみが利用されるためＴＬＢ１１８は低電力で及び効率的な形で用いることができる。ＴＬＢ１１８の単一のエントリを用いるように構成することができるソフトウェアアプリケーション１０８の一例は、ムービング・ピクチャ・エキスパーツ・グループ（ＭＰＥＧ）−１音声層３（ＭＰ３）タイプアプリケーションである。
【００２７】
第２の動作モードにおいては、ソフトウェアアプリケーション１０８は、複数のＴＬＢエントリを要求することができ及びＴＬＢ１１８の全エントリが利用されるように要求することさえも可能である。この第２の動作モードにおいては、複数のＴＬＢエントリがイネーブルにされ、及び、ソフトウェアアプリケーション１０８の性能要求に依存して、全ＴＬＢエントリをイネーブルにすることができる。ソフトウェアアプリケーション１０８は、プロセッサ１０４によって実行可能であるプログラムコードを含むこと及びソフトウェアアプリケーション１０８は、典型例を示すことのみを目的として別個に示されることが理解されるべきである。
【００２８】
図２を参照すると、コンフィギュラブルＴＬＢを含むシステムの第２の特定の実施形態が図示され、全体として２００で示されている。特定の実施形態において、システム２００は、図１のシステム１００の一部分を示す。システム２００は、トランスレーション・ルックアサイド・バッファ（ＴＬＢ）２０２と、ＴＬＢコンフィギュレーション・インジケータ２０８と、メモリ管理ユニット（ＭＭＵ）２１０と、ＴＬＢコンフィギュレーション・ロジック２１２と、出力論理回路２１４と、電力論理回路２１６と、を含む。ＴＬＢコンフィギュレーション・ロジック２１２は、ＴＬＢコンフィギュレーション・インジケータ２０８及びＭＭＵ２１０からの入力を受信するために結合される。特定の実施形態において、ＴＬＢコンフィギュレーション・インジケータ２０８は、図１のＴＬＢサイズ・インジケータ１１２である。ＴＬＢコンフィギュレーションロジック２１２は、電力論理回路２１６及びＴＬＢ２０２に出力制御信号を提供するために結合される。ＴＬＢ２０２は、出力論理回路２１４に複数の出力を提供するために結合され、出力論理回路２１４は、出力２４４を生成するように構成される。
【００２９】
ＴＬＢ２０２は、第１の代表的部分２０４と、第２の代表的部分２０６と、を含む。第１の代表的部分２０４は、第１の複数のエントリ２２０を含む。第１の複数のエントリ２２０の各々は、第１の有効フィールド２２２と、アドレス空間識別子（ＡＳＩＤ）フィールド２２４と、仮想ページ番号（ＶＰＮ）フィールド２２６と、物理ページ番号（ＰＰＮ）フィールド２２８と、を含む。同様に、ＴＬＢ２０２の第２の代表的部分２０６は、第２の複数のエントリ２３４を含む。
【００３０】
第１の代表的部分２０４は、第１の複数のエントリ２２０の検索を選択的にイネーブル又はディスエーブルにするためにＴＬＢコンフィギュレーション・ロジック２１２に応答する第１のイネーブル入力２１８も含む。第２の代表的部分２０６は、第２の複数のエントリ２３４の検索を選択的にイネーブル又はディスエーブルにするためにＴＬＢコンフィギュレーション・ロジック２１２に応答する第２のイネーブル入力２３０を含む。
【００３１】
さらに、ＴＬＢ２０２の第２の代表的部分２０６は、第２の代表的部分２０６への電力を選択的に起動又は停止させるために電力論理回路２１６に応答する電力入力２３２を含む。示されていないが、特定の実施形態において、第１の代表的部分２０４は、ＴＬＢ２０２の第１の代表的部分２０４への電力を選択的に起動又は停止させるために電力論理回路２１６に応答する入力を含むこともできる。
【００３２】
出力論理回路２１４は、選択回路２４０と、マルチプレクサ２４２と、を含む。マルチプレクサ２４２は、ＴＬＢ２０２からの複数の出力の各々に応答する。選択回路２４０は、ＴＬＢコンフィギュレーション・ロジック２１２に応答し、ＴＬＢ２０２の選択されたエントリを結果的に得られた出力２４４として選択的にイネーブルにするようにマルチプレクサ２４２を制御する。
【００３３】
動作中において、ＴＬＢコンフィギュレーション・ロジック２１２は、ＴＬＢコンフィギュレーション・インジケータ２０８から及びＭＭＵ２１０から入力を受信する。ＴＬＢコンフィギュレーション・ロジック２１２は、受信された入力に基づき、第１のイネーブル入力２１８、第２のイネーブル入力２３０、電力論理回路２１６、及び出力論理回路２１４に提供される出力信号を生成する。
【００３４】
ＴＬＢ２０２の１つまたは複数の部分、例えば例示される部分２０４及び２０６、は、ＴＬＢコンフィギュレーション・ロジック２１２の出力信号に基づいて動的にイネーブル又はディスエーブルにすることができる。ＴＬＢ部分２０４及び２０６のうちの１つ以上がディスエーブルにされたときには、電力資源をさらに節約するために電力論理回路２１６を介してディスエーブルにされた部分への電源を切ることもできる。さらに、ＴＬＢ２０２の１つまたは複数の部分がディスエーブルにされるか又は動作が停止されたときには、これらの部分の出力は無効である。従って、出力論理回路２１４内の選択回路２４０は、結果的に得られた出力２４４のみがアクティブ状態にあるＴＬＢ２０２の有効な選択されたエントリを伝播させることができるように、マルチプレクサ２４２を介して停止された部分の選択をディスエーブルにすることによってＴＬＢ２０２のディスエーブルにされた部分からの無効な出力信号を抑止するようにマルチプレクサ２４２を制御するように構成される。従って、特定の実施形態において、マルチプレクサ２４２は、ＴＬＢ２０２の出力に応答し、及び、ＴＬＢコンフィギュレーション・ロジック２１２によって示されるようにコンフィギュレーション・レジスタ内のコンフィギュレーション・ビット設定に応答してイネーブルにされるＴＬＢ２０２の出力も選択する。ＴＬＢ２０２のディスエーブルにされた部分の出力が特定値、例えば論理“０”値又は高インピーダンス状態、に制限される他の実施形態においては、出力論理回路２１４は、ＴＬＢコンフィギュレーション・ロジック２１２に応答する選択論理２４０を含むことができず代わりにその他の出力選択論理、例えば、ＴＬＢ２０２のアクティブな出力のみを動的に選択するように構成されたノード、を含むことができる。
【００３５】
特定の例示的実施形態においては、第１の代表的部分２０４は、３２のエントリ２２０を含み、第２の代表的部分２０６は、３２のエントリ２３４を含む。ＴＬＢコンフィギュレーション・インジケータ２０８は、デフォルト論理“０”値はすべての６４のＴＬＢエントリ２２０及び２３４が検索のためにイネーブルにされるべきであることを示し及び論理“１”値は最初の３２のエントリ２２０（第１の部分２０４内のエントリ）のみが検索のためにイネーブルにされるべきであることを示すように構成することができる。ＭＭＵ２１０は、ＴＬＢ検索が行われるときに出力２５０において論理“１”を提供し、その他の場合は論理“０”を提供するように構成することができる。ＴＬＢコンフィギュレーション・ロジック２１２は、例えば反転入力に結合されたＴＬＢコンフィギュレーション・インジケータ２０８を有するＡＮＤ素子の出力及び第２の入力に結合されたＭＭＵ出力２５０を介して、ＭＭＵ出力２５０が“１”であり及びＴＬＢコンフィギュレーション・インジケータ２０８が“０”であるときに論理“１”である出力２５２を生成することができる。
【００３６】
特定の例示的実施形態において、ＴＬＢコンフィギュレーション・インジケータ２０８がデフォルト“０”値（例えば、６４の検索可能エントリ）から“１”（例えば、３２の検索可能エントリ）にリセットされるときには、第２の代表的部分２０６をディスエーブルにする前に第２の代表的部分２０６内のあらゆる有効なエントリが第１の代表的部分２０４に移行されるようにステップを実行することができる。例えば、第２の代表的部分２０６内のすべての有効エントリ、例えば対応する有効フィールド２２２において“１”を有するエントリ、を、第１の代表的部分２０４の未使用エントリにコピーすることができる。同様に、ＴＬＢコンフィギュレーションインジケータ２０８が“１”から“０”にリセットされるときには、新たにイネーブルにされたエントリは無効であることを示すために第２の代表的部分２０６のエントリ２３４の各々のエントリの有効フィールド２２２を“０”に設定することができる。該動作は、ハードウェア、ソフトウェア、又はその組み合わせによって制御することができる。
【００３７】
図３を参照すると、ＴＬＢをコンフィギュレーションする方法の特定の例示的実施形態が図示され、全体として３００で示されている。この方法を用いることで、３０２において、少なくとも１つのトランスレーション・ルックアサイド・バッファ（ＴＬＢ）コンフィギュレーション・インジケータが受信される。特定の実施形態において、ＴＬＢコンフィギュレーション・インジケータは、コンフィギュラブルＴＬＢを含むプロセッサ、例えば図１のプロセッサ１０４、において受信される。ＴＬＢコンフィギュレーション・インジケータは、オペレーティングシステム、例えば図１のオペレーティングシステム１０２、からプロセッサにおいて受信することができる。ＴＬＢコンフィギュレーションインジケータは、ＴＬＢミス率が閾値を超えたことに応答して、ソフトウェアアプリケーションに応答して、アドレス変換に関連する１つまたは複数のその他のイベントに応答して、又はそのいずれかの組み合わせに応答して決定することができる。特定の実施形態において、ＴＬＢコンフィギュレーション・インジケータは、ＴＬＢが第１の利用可能エントリ数を有するか又は第２の利用可能エントリ数を有するかを決定する。
【００３８】
３０４において、ＴＬＢコンフィギュレーション・インジケータの値に基づいて検索可能ＴＬＢエントリ数を増加させるべきか又は減少させるべきかに関する決定を行うことができる。特定の実施形態において、その決定は、プロセッサコンフィギュレーション・レジスタのＴＬＢサイズ・フィールドの１つまたは複数のビット値を現在のＴＬＢコンフィギュレーションと比較することによって行うことができる。例示的実施形態においては、その決定は、図１のＴＬＢサイズ選択論理回路によって行うことができる。
【００３９】
特定の実施形態において、決定ステップ３０５において、検索可能ＴＬＢエントリ数を増加させるべきであるときには、３０６において、検索可能エントリ数を増加させるためにＴＬＢの一部分をイネーブルにすることができる。特定の実施形態において、ＴＬＢの新たにイネーブルにされた部分は、そのＴＬＢ部分がディスエーブルにされる前に前の動作期間からのデータを格納することができ、従って、新たにイネーブルにされたエントリのデータは、信頼できないことがある。従って、３０８において、ＴＬＢのイネーブルにされた部分内のエントリの各々に対して無効インジケータを設定することができる。例示的実施形態においては、ＴＬＢは、図２のＴＬＢ２０２であることができ、無効インジケータは、各ＴＬＢエントリの有効フィールド２２２に格納された“０”ビット値であることができる。
【００４０】
あるいは、決定ステップ３０５において、検索可能ＴＬＢエントリ数を減少させるべきである場合は、３１０において、検索可能エントリ数を減少させるためにＴＬＢの一部分をディスエーブルにすることができる。例示のための一例として、ディスエーブルにする動作は、ＴＬＢの電源を切ることなしにＴＬＢの選択された部分を検索のために利用できないようにすることを含むことができる。他の実施形態においては、ＴＬＢの選択された部分は、ディスエーブルにされた後に電源を切ることができる。例えば、低ＴＬＢミス率に応答してＴＬＢのサイズを小さくすべきであるときには、ＴＬＢのディスエーブルにされた部分の電源を切る前に新しいＴＬＢミス率が許容可能であるようにするためにＴＬＢの選択された部分をある期間だけディスエーブルの状態にすることができる。他の実施形態においては、ＴＬＢの一部分をディスエーブルにすることは、ＴＬＢの一部分の電源を切ることを含むことができる。
【００４１】
特定の実施形態において、ＴＬＢのディスエーブルにされるべき部分は、ＴＬＢにおいて保持されるべき１つまたは複数の連続的プロセスと関連づけられたアドレス変換データを含むことができる。データは、３１２に示されるように、ＴＬＢのディスエーブルにされた部分の少なくとも１つのエントリからＴＬＢの少なくとも１つのその他の部分にコピーすることができる。このようにして、ＴＬＢのディスエーブルにされた部分からのデータは、将来用いるために保存することができる。
【００４２】
図４を参照すると、コンフィギュラブルＴＬＢを用いる方法の例示的実施形態が図示され、全体として４００で示されている。特定の実施形態において、方法４００は、図１のオペレーティングシステム１０２によって実行することができる。方法は、４０２においてＴＬＢミス率を決定することを含む。特定の実施形態において、ＴＬＢミス率は、総ＴＬＢ問い合わせ数と比較された場合における、結果的に例外となる試行されたＴＬＢ問い合わせ数に基づく。例示的実施形態においては、ＴＬＢミス率は、ＴＬＢミスに応答して生成された割り込みを受信する割り込みコントローラからのデータを用いて決定することができる。
【００４３】
引き続き４０４において、ＴＬＢミス率が閾値を超えることが検出される。４０６に進み、ＴＬＢミス率が閾値を超えたことを検出した後にＴＬＢサイズを大きくするための命令が送信される。例示的実施形態例において、その命令は、コンフィギュラブルＴＬＢを含むプロセッサ、例えば図１のプロセッサ１０４、に送信することができる。
【００４４】
４０８に進み、特定の実施形態において、ＴＬＢのイネーブルにされた部分の数を示すために少なくとも１つのコンフィギュレーション・インジケータがコンフィギュレーション・レジスタにおいて設定される。例示的実施形態において、少なくとも１つのコンフィギュレーション・インジケータは、ＴＬＢサイズ・インジケータ・フィールド、例えば図１のＴＬＢサイズインジケータ・フィールド１１２、の１つまたは複数のビットを含む。少なくとも１つのコンフィギュレーション・インジケータは、命令に応答して、例えば図１のオペレーティングシステム１０２から送信された信号１２６に応答して、設定することができる。
【００４５】
図５は、コンフィギュラブルＴＬＢを含み、全体として５２０で示されているポータブル通信デバイスの典型的な、制限しない実施形態を示す。図５に示されるように、ポータブル通信デバイス５２０は、デジタル信号プロセッサ５２４とコンフィギュレーション・レジスタ５８０とを含むオンチップ・システム５２２を含む。特定の例示的実施形態において、コンフィギュレーション・レジスタ５８０は、トランスレーション・ルックアサイド・バッファ（ＴＬＢ）５９０における検索可能エントリ数を決定するための１つまたは複数のインジケータを含む。ＴＬＢ５９０は、システム要求及び電力使用上の考慮事項に従って選択的にイネーブル又はディスエーブルにすることができる複数のＴＬＢ部分を含む。特定の実施形態において、コンフィギュレーションレジスタ５８０及びＴＬＢ５９０は、デジタル信号プロセッサ５２４の構成要素であることができる。例示的実施形態においては、ＴＬＢ５９０及びコンフィギュレーション・レジスタ５８０は、実質的に図１のＴＬＢ１１８及びコンフィギュレーション・レジスタ１１０に関して開示されるとおりに動作することができる。
【００４６】
図５はまた、ディスプレイ・コントローラ５２６がデジタル信号プロセッサ５２４に及びディスプレイ５２８に結合されることを示す。メモリ５３２もデジタル信号プロセッサ５２４に結合される。さらに、符号器／復号器（ＣＯＤＥＣ）５３４をデジタル信号プロセッサ５２４に結合することが可能である。ＣＯＤＥＣ５３４にはスピーカ５３６及びマイク５３８を結合することが可能である。
【００４７】
図５はまた、無線コントローラ５４０がデジタル信号プロセッサ５２４に結合できかつ無線アンテナ５４２に結合できることも示す。特定の実施形態において、入力デバイス５３０及び電源５４４は、オンチップ・システム５２２に結合される。さらに、特定の実施形態において、図５に示されるように、ディスプレイ５２８、入力デバイス５３０、スピーカ５３６、マイク５３８、無線アンテナ５４２、及び電源５４４は、オンチップ・システム５２２の外部に配置される。しかしながら、各々は、オンチップ・システム５２２の構成要素に結合される。
【００４８】
特定の実施形態において、デジタル信号プロセッサ５２４は、ポータブル通信デバイス５２０の様々な構成要素によって必要な機能及び動作を実行するためにインターリービングされたマルチスレッディングを利用してプログラム・スレッドと関連づけられた命令を処理する。例えば、無線アンテナ５４２を介して無線通信セッションが確立されたときには、ユーザは、マイク５３８内に話すことができる。ユーザの声を表す電子信号は、符号化するためにＣＯＤＥＣ５３４に送信することができる。デジタル信号プロセッサ５２４は、ＣＯＤＥＣ５３４に関するデータ処理を行ってマイクからの電子信号を符号化することができる。さらに、無線アンテナ５４２を介して受信された着信信号は、復号してスピーカ５３６に送信するために無線コントローラ５４０によってＣＯＤＥＣ５３４に送信することができる。デジタル信号プロセッサ５２４は、無線アンテナ５４２を介して受信された信号を復号するときにＣＯＤＥＣ５３４に関するデータ処理を行うことも可能である。
【００４９】
さらに、無線通信セッションの前、間、または後において、デジタル信号プロセッサ５２４は、入力デバイス５３０から受信される入力を処理することができる。例えば、無線通信セッション中において、ユーザは、ポータブル通信デバイス５２０のメモリ５３２内に埋め込まれたウェブブラウザを介してインターネットをサーフィンするために入力デバイス５３０及びディスプレイ５２８を使用中であることができる。デジタル信号プロセッサ５２４は、ポータブル通信デバイス５２０及びその中の様々な構成要素の動作を効率的に制御するために入力デバイス５３０、ディスプレイ・コントローラ５２６、ディスプレイ５２８、ＣＯＤＥＣ５３４及び無線コントローラ５４０によって用いられる様々なプログラム・スレッドをインターリービングすることができる。様々なプログラム・スレッドと関連づけられた命令の多くは、１つまたは複数のクロックサイクル中に同時並行して実行される。従って、浪費されたクロック・サイクルに起因する電力及びエネルギー消費量が実質的に低減される。
【００５０】
ここにおいて開示される実施形態と関係させて説明される様々な例示的論理ブロック、コンフィギュレーション、モジュール、回路、及びアルゴリズム上のステップは、電子ハードウェア、コンピュータソフトウェア、又は両方の組み合わせとして実装できることを当業者はさらに理解するであろう。ハードウェアとソフトウェアのこの互換性を明確に例示するため、上記においては、様々な例示的構成要素、ブロック、コンフィギュレーション、モジュール、回路、及びステップが、各々の機能の観点で一般的に説明されている。該機能がハードウェアとして又はソフトウェアとして実装されるかは、全体的システムに対する特定の用途上の及び設計上の制約事項に依存する。当業者は、説明されている機能を各々の特定の用途に合わせて様々な形で実装することができるが、これらの実装決定は、本開示の適用範囲からの逸脱を生じさせるものであるとは解釈すべきではない。  
ここにおいて開示される実施形態と関係させて説明される方法又はアルゴリズムのステップは、直接ハードウェア内において、プロセッサによって実行されるソフトウェアモジュール内において、又はその２つの組み合わせ内において具現化することが可能である。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＰＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、取り外し可能ディスク、ＣＤ−ＲＯＭ、又は当業において知られるその他のあらゆる形態の記憶媒体内に常駐することができる。典型的記憶媒体は、プロセッサが記憶媒体から情報を読み出すこと及び記憶媒体に情報を書き込むことができるような形で、該プロセッサに結合される。代替においては、記憶媒体は、プロセッサと一体化することができる。プロセッサ及び記憶媒体は、ＡＳＩＣ内に常駐することができる。ＡＳＩＣは、計算デバイス又はユーザ端末内に常駐することができる。代替においては、プロセッサ及び記憶媒体は、個別構成要素として計算デバイス又はユーザ端末内に常駐することができる。
【００５１】
開示される実施形態に関する上記説明は、当業者が開示される実施形態を製造又は使用できるようにすることを目的とする。これらの実施形態に対する様々な修正は、当業者にとって容易に明確になるであろう。ここにおいて定められる一般原理は、この開示の精神及び適用範囲から逸脱しない形でその他の実施形態に対しても適用することができる。以上のように、この開示は、ここにおいて示される実施形態に限定されることが意図されるものではなく、以下の請求項によって定義される原理及び斬新な特徴に一致する限りにおいて最も広範な適用範囲が認められるべきである。
【図１】
2011503726.tif 000003
【図２】
2011503726.tif 000004
【図３】
2011503726.tif 000005
【図４】
2011503726.tif 000006
【図５】
2011503726.tif 000007
【国際調査報告】
2011503726.tif 000008
2011503726.tif 000009
2011503726.tif 000010