(57)【特許請求の範囲】
【請求項１】
シリアルキャッシュアクセスモードにおける第1のキャッシュアクセスを実行するステップであって、
第1のタグアクセスを実行するステップと、
前記第1のタグアクセスに対応するタグデータを記憶するステップと、
前記記憶されたタグデータに基づいて第1のデータアレイアクセスを実行するステップと
を備える、ステップと、
前記第1のキャッシュアクセスの後に開始されるパラレルキャッシュアクセスモードにおける第2のキャッシュアクセスを実行するステップであって、前記第2のキャッシュアクセスが、第2のデータアレイアクセスと並行して第2のタグアクセスを実行するステップを備える、ステップと
を備え、
前記第1のデータアレイアクセスが、前記第2のキャッシュアクセスの後に実行される、方法。
【請求項２】
前記第1のタグアクセスが第1のクロックサイクル中に実行され、前記第2のタグアクセスおよび前記第2のデータアレイアクセスが前記第1のクロックサイクルに後続する第2のクロックサイクル中に実行され、前記第1のデータアレイアクセスが前記第2のクロックサイクルに後続する第3のクロックサイクル中に実行される、請求項1に記載の方法。
【請求項３】
前記第1のデータアレイアクセスを実行するステップが、
前記第1のタグアクセスに基づいて決定されたタグ信号に基づいて、データアレイの複数のウェイのうちの特定のウェイに対応する特定のデータを選択するステップと、
前記特定のデータをデータ信号選択回路へ送信するステップと
を備える、請求項1に記載の方法。
【請求項４】
前記第1のデータアレイアクセスを実行するステップが、
前記特定のデータが前記データ信号選択回路へ送信された後、前記データ信号選択回路において、前記タグ信号に基づいて前記特定のデータを選択するステップ
をさらに備える、請求項3に記載の方法。
【請求項５】
前記第1のデータアレイアクセスを実行するステップが、
前記データ信号選択回路において前記特定のデータを選択した後、前記特定のデータを発行キューへ送信するステップ
をさらに備える、請求項4に記載の方法。
【請求項６】
前記第2のデータアレイアクセスを実行するステップが、
前記第1のデータアレイアクセスによってアクセスされるデータアレイの複数のウェイに対応するデータを、データ信号選択回路へ送信するステップ
を備える、請求項1に記載の方法。
【請求項７】
前記第2のデータアレイアクセスを実行するステップが、
前記データが前記データ信号選択回路へ送信された後、前記データ信号選択回路において、前記複数のウェイのうちの特定のウェイに対応する特定のデータを、前記第2のタグアクセスに基づいて選択するステップ
をさらに備える、請求項6に記載の方法。
【請求項８】
前記第2のデータアレイアクセスを実行するステップが、
前記特定のデータを選択した後、前記特定のデータを発行キューへ送信するステップ
をさらに備える、請求項7に記載の方法。
【請求項９】
発行キューにおいて記憶されている命令の数、実行ユニットのアクティブスレッドの数、電力節約モードインジケータ、静的モード入力、またはそれらの組合せに基づいて、前記シリアルキャッシュアクセスモードにおける前記第1のキャッシュアクセスを実行するように決定するステップをさらに備える、請求項1に記載の方法。
【請求項１０】
前記発行キューの中の前期命令の数、前記実行ユニットにおける前記アクティブスレッドの数、前記電力節約モードインジケータ、前記静的モード入力、またはそれらの組合せに基づいて、前記パラレルキャッシュアクセスモードにおける前記第2のキャッシュアクセスを実行するように決定するステップをさらに備える、請求項9に記載の方法。
【請求項１１】
タグアレイと、
データアレイと、
アドレス生成ユニットであって、
シリアルキャッシュアクセスモードが選択されていることを示すアクセスモードに応答して、
第1のタグアドレスを前記タグアレイへ送信することと、
前記タグアレイからの前記第1のタグアドレスに対応する第1のタグデータを記憶することと、
データ要求を前記データアレイへ送信することであって、前記データ要求が、前記第1のタグデータおよび第1のデータアドレスを含む、送信することと
を行い、
前記シリアルキャッシュアクセスモードの後に開始されるパラレルキャッシュアクセスモードが選択されていることを示す前記アクセスモードに応答して、第2のデータアドレスを前記データアレイへ送信することと並行して、第2のタグアドレスを前記タグアレイへ送信すること
を行うように構成される、アドレス生成ユニットと
を備え、
前記アドレス生成ユニットが、前記第2のデータアドレスを送信した後に前記データ要求を送信するようにさらに構成される、装置。
【請求項１２】
発行キューにおいて記憶されている命令の数、キャッシュに結合される実行ユニットのアクティブスレッドの数、または両方に基づいて、前記シリアルキャッシュアクセスモードと前記パラレルキャッシュアクセスモードとの間での選択を実行することと、
前記選択に基づいて前記アクセスモードを示す信号を生成することと
を行うように構成されるアクセスモード選択回路をさらに備える、請求項11に記載の装置。
【請求項１３】
前記キャッシュが命令キャッシュを備える、請求項12に記載の装置。
【請求項１４】
前記キャッシュが前記発行キューを備える、請求項12に記載の装置。
【請求項１５】
前記キャッシュがデータキャッシュを備える、請求項12に記載の装置。
【請求項１６】
前記アクセスモード選択回路が、電力節約モードインジケータ、静的モード入力、またはそれらの組合せに基づいて、前記シリアルキャッシュアクセスモードと前記パラレルキャッシュアクセスモードとの間で選択するようにさらに構成される、請求項12に記載の装置。
【請求項１７】
前記第1のタグデータに基づいてタグ信号を出力することと、
前記タグ信号をデータ信号選択回路へ送信することと
を行うように構成されるタグ論理手段をさらに備える、請求項11に記載の装置。
【請求項１８】
発行キューが、前記第1のタグアドレスに対応するデータを受信するように構成される、請求項11に記載の装置。
【請求項１９】
前記第1のタグアドレスに対応する前記データが、前記発行キューにおいて記憶されるべき少なくとも1つの命令を含む、請求項18に記載の装置。
【請求項２０】
命令を記憶する非一時的コンピュータ可読記録媒体であって、前記命令が、プロセッサによって実行されたとき、前記プロセッサに、
シリアルキャッシュアクセスモードにおける第1のキャッシュアクセスを実行することであって、
第1のタグアクセスを実行することと、
前記第1のタグアクセスに対応するタグデータを記憶することと、
前記記憶されたタグデータに基づいて第1のデータアレイアクセスを実行することと
を備える、実行することと、
前記第1のキャッシュアクセスの後に開始されるパラレルキャッシュアクセスモードにおける第2のキャッシュアクセスを実行することであって、第2のデータアレイアクセスと並行して第2のタグアクセスを実行することを備える、実行することと
を行わせ、
前記第1のデータアレイアクセスが、前記第2のキャッシュアクセスの後に実行される、非一時的コンピュータ可読記録媒体。
【請求項２１】
前記第1のタグアクセスが第1のクロックサイクル中に実行され、前記第2のタグアクセスおよび前記第2のデータアレイアクセスが前記第1のクロックサイクルに後続する第2のクロックサイクル中に実行され、前記第1のデータアレイアクセスが前記第2のクロックサイクルに後続する第3のクロックサイクル中に実行される、請求項20に記載の非一時的コンピュータ可読記録媒体。
【請求項２２】
タグデータを記憶するための手段と、
データを記憶するための手段と、
アドレスを生成するための手段であって、前記アドレスを生成するための手段が、
シリアルキャッシュアクセスモードでは、
前記タグデータを記憶するための手段へ第1のタグアドレスを送信することと、
前記第1のタグアドレスに応答して、前記タグデータを記憶するための手段から受信された第1のタグデータを記憶することと、
前記データを記憶するための手段へデータ要求を送信することであって、前記データ要求が、前記第1のタグデータおよび第1のデータアドレスを含む、送信することと
を行い、
前記シリアルキャッシュアクセスモードの後に開始されるパラレルキャッシュアクセスモードでは、前記データを記憶するための手段へ第2のデータアドレスを送信することと並行して、前記タグデータを記憶するための手段へ第2のタグアドレスを送信することを行う
ように構成され、
前記アドレスを生成するための手段が、前記第2のデータアドレスの後に前記データ要求を送信するようにさらに構成される、装置。
【請求項２３】
発行キューにおいて記憶されている命令の数、実行ユニットのアクティブスレッドの数、電力節約モードインジケータ、静的モード入力、またはそれらの組合せに基づいて、前記シリアルキャッシュアクセスモードと前記パラレルキャッシュアクセスモードとの間で選択するための手段をさらに備える、請求項22に記載の装置。
【請求項２４】
データアレイ衝突回避の方法であって、
タグアレイの第1のアクセスに基づいてタグデータを決定するステップであって、前記タグアレイの前記第1のアクセスが、シリアルモードキャッシュアクセス動作中に実行される、ステップと、
前記タグデータを記憶するステップと、
前記シリアルモードキャッシュアクセス動作の後に開始されるパラレルモードキャッシュアクセス動作中に、前記タグアレイの第2のアクセスおよびデータアレイの第1のアクセスを並行して実行するステップと、
前記パラレルモードキャッシュアクセス動作の後に、前記シリアルモードキャッシュアクセス動作を完了するために、前記記憶されたタグデータに基づいて、前記データアレイの第2のアクセスを実行するステップと
を備える、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、参照によりその内容全体が本明細書に明確に組み込まれる、同一出願人が所有する2014年5月27日に出願の米国非仮特許出願第14/287,331号の優先権を主張する。
【０００２】
本開示は、一般に、再構成可能フェッチパイプラインに関する。
【背景技術】
【０００３】
技術が進歩した結果、コンピューティングデバイスがより小型に、そしてより高性能になった。たとえば、小型で軽量であり、ユーザによって容易に携帯されるポータブルワイヤレス電話およびタブレットコンピュータなどのワイヤレスコンピューティングデバイスを含む、様々なポータブルパーソナルコンピューティングデバイスが現存している。多くのそのようなコンピューティングデバイスは、その中に組み込まれる他のデバイスを含む。たとえば、ワイヤレス電話は、デジタルスチルカメラ、デジタルビデオカメラ、デジタルレコーダー、およびオーディオファイルプレーヤも含むことができる。また、そのようなコンピューティングデバイスは、インターネットにアクセスするために使用することができるウェブブラウザアプリケーション、および、スチルカメラまたはビデオカメラを利用しマルチメディア再生機能を提供するマルチメディアアプリケーションなどのソフトウェアアプリケーションを含む、実行可能命令を処理することができる。
【０００４】
コンピューティングデバイスは、プロセッサおよびキャッシュを含んでもよい。キャッシュは、実行中にプロセッサによって使用される情報(たとえば、命令またはデータ)を記憶するために使用されてもよい。キャッシュにおいて情報にアクセスすることは、プロセッサの複数のクロックサイクルを要する場合がある。キャッシュにおける情報がより迅速にアクセスされてもよい1つの方法は、キャッシュのデータアレイにアクセスすることと並行してキャッシュのタグアレイにアクセスすることによる。しかしながら、並行してタグアレイおよびデータアレイにアクセスすることは、タグアレイおよびデータアレイに連続的にアクセスすることよりも多くの電力を消費する場合がある。
【発明の概要】
【課題を解決するための手段】
【０００５】
本開示は、再構成可能フェッチパイプラインの態様を提示する。再構成可能フェッチパイプラインは、たとえば、発行キューに記憶されている命令の数、実行ユニットのアクティブスレッドの数、電力節約モードインジケータ、静的モード入力、またはそれらの組合せに基づいて、パラレルロード動作とシリアルロード動作との間で動的に切り替わってもよい。特定の態様では、要求されたデータを実行ユニットが発行キューに要求することになる前に、要求されたデータを再構成可能フェッチパイプラインが発行キューに提供できるような特定の数の命令を、発行キューが記憶しているとき、再構成可能フェッチパイプラインは、(たとえば、電力を節約するために)シリアルロード動作を実行する。したがって、再構成可能フェッチパイプラインがシリアル動作モードで動作するとき、再構成可能フェッチパイプラインを含む電子デバイスは、パラレルロード動作と比較して、より少ない電力を使用してデータをロードしてもよい。要求されたデータを実行ユニットが発行キューに要求する前に、要求されたデータを再構成可能フェッチパイプラインが発行キューに提供できないような数の命令を、発行キューが記憶しているとき(たとえば、発行キューが空であり実行ユニットが命令を待っている場合、または要求されたデータをシリアルロード動作が発行キューに提供することになる前に、要求されたデータを発行キューが要求することになる場合)、再構成可能フェッチパイプラインは、(たとえば、データを迅速にフェッチするために)パラレルロード動作を実行する。したがって、再構成可能フェッチパイプラインがパラレル動作モードで動作するとき、再構成可能フェッチパイプラインを含む電子デバイスは、シリアルロード動作と比較して、より迅速にデータをロードしてもよい。さらに、再構成可能フェッチパイプラインは、発行キューの中の命令の数、実行ユニットにおけるアクティブスレッドの数、または現在の必要性(たとえば、速度または電力節約)に基づく他の要因に基づいて、シリアル動作モードとパラレル動作モードとの間で動的に切り替わってもよい。
【０００６】
特定の態様では、本方法は、発行キューにおいて記憶されている命令の数、実行ユニットのアクティブスレッドの数、または両方に基づいて、第1のキャッシュアクセスモードと第2のキャッシュアクセスモードとの間で選択するステップを含む。本方法は、第1のキャッシュアクセスを実行するステップをさらに含む。第1のキャッシュアクセスモード(たとえば、シリアル動作モード)が選択されているとき、第1のキャッシュアクセスを実行するステップは、タグアクセスを実行するステップと、タグアクセスを実行した後にデータアレイアクセスを実行するステップを含む。第2のキャッシュアクセスモード(たとえば、パラレル動作モード)が選択されているとき、第1のキャッシュアクセスを実行するステップは、データアレイアクセスと並行してタグアクセスを実行するステップを含む。
【０００７】
別の特定の態様では、本装置は、アクセスモード選択回路、タグアレイ、データアレイ、およびアドレス生成ユニットを含む。アクセスモード選択回路は、発行キューにおいて記憶されている命令の数、キャッシュに結合される実行ユニットのアクティブスレッドの数、または両方に基づいて、第1のキャッシュアクセスモードと第2のキャッシュアクセスモードとの間で選択し、選択に基づいてアクセスモード信号を生成するように構成される。アドレス生成ユニットは、第1のキャッシュアクセスモード(たとえば、シリアル動作モード)が選択されているとアクセスモード信号が示すことに応答して、タグアドレスをタグアレイへ送信し、タグアドレスに対応するタグデータをタグアレイから受信し、データ要求をデータアレイへ送信するように構成される。データ要求は、タグデータおよびデータアドレスを含む。アドレス生成ユニットは、第2のキャッシュアクセスモード(たとえば、パラレル動作モード)が選択されているとアクセスモード信号が示すことに応答して、データアドレスをデータアレイへ送信することと並行して、タグアドレスをタグアレイへ送信するようにさらに構成される。
【０００８】
別の特定の態様では、非一時的コンピュータ可読媒体は、プロセッサによって実行されたとき、プロセッサに、発行キューにおいて記憶されている命令の数、実行ユニットのアクティブスレッドの数、または両方に基づいて、第1のキャッシュアクセスモードと第2のキャッシュアクセスモードとの間での選択を実行させる命令を記憶する。非一時的コンピュータ可読媒体は、プロセッサによって実行されたとき、プロセッサに、第1のキャッシュアクセスを実行させる命令をさらに記憶する。第1のキャッシュアクセスモード(たとえば、シリアル動作モード)が選択されているとき、第1のキャッシュアクセスは、タグアクセスを実行すること、およびタグアクセスを実行した後にデータアレイアクセスを実行することを含む。第2のキャッシュアクセスモード(たとえば、パラレル動作モード)が選択されているとき、第1のキャッシュアクセスは、データアレイアクセスと並行してタグアクセスを実行することを含む。
【０００９】
別の特定の態様では、本装置は、発行キューにおいて記憶されている命令の数、実行ユニットのアクティブスレッドの数、または両方に基づいて、第1のキャッシュアクセスモードと第2のキャッシュアクセスモードとの間で選択するための手段を含む。本装置は、第1のキャッシュアクセス中に、第1のキャッシュアクセスモードが選択されているときは、タグアクセスを実行すること、およびタグアクセスを実行した後にデータアレイアクセスを実行することによって、第2のキャッシュアクセスモードが選択されているときは、データアレイアクセスと並行してタグアクセスを実行することによって、キャッシュアクセスを実行するための手段をさらに含む。
【００１０】
開示される態様のうちの少なくとも1つによって提供される1つの特定の利点は、再構成可能フェッチパイプラインを含む電子デバイスが、動作条件(たとえば、発行キューに記憶されている命令の数、実行ユニットのアクティブスレッドの数、電力節約モードインジケータ、静的モード入力、またはそれらの組合せ)に基づいて、シリアル動作モードとパラレル動作モードとの間で切り替わってもよいことである。再構成可能フェッチパイプラインがシリアル動作モードで動作するとき、再構成可能フェッチパイプラインは、パラレルロード動作と比較して、より少ない電力を使用してデータをロードしてもよい。再構成可能フェッチパイプラインがパラレル動作モードで動作するとき、再構成可能フェッチパイプラインは、シリアルロード動作と比較して、より迅速にデータをロードしてもよい。したがって、電子デバイスは、シリアルロード動作を実行するように構成されるパイプラインに関連するとともに、パラレルロード動作を実行するように構成されるパイプラインに関連する利益を得てもよい。
【００１１】
以下の節、すなわち、図面の簡単な説明、発明を実施するための形態、および特許請求の範囲を含む、本出願全体を検討した後、本開示の他の態様、利点、および特徴が明らかとなるであろう。
【図面の簡単な説明】
【００１２】
【図１】再構成可能フェッチパイプラインの特定の態様を示す図である。
【図２】再構成可能フェッチパイプラインの別の特定の態様を示す図である。
【図３】再構成可能フェッチパイプラインを動作させる方法を示すフローチャートである。
【図４】再構成可能フェッチパイプラインを含む通信デバイスを示すブロック図である。
【発明を実施するための形態】
【００１３】
図1を参照すると、再構成可能フェッチパイプラインの特定の例示的な態様が開示され、全体が100と称される。再構成可能フェッチパイプラインは、キャッシュ150および実行ユニット144を含む。キャッシュ150(たとえば、データキャッシュまたは命令キャッシュ)は、コントローラ102、アドレス生成ユニット(AGU)104、タグアレイ106、データアレイ108、タグ論理126、および選択論理128を含んでもよい。AGU104は、AGUメモリ132を含んでもよい。データアレイ108は、複数のセット110〜116を含んでもよい。各セット(たとえば、セット114)は、複数のウェイ(たとえば、ウェイ118〜124)を含んでもよい。
【００１４】
コントローラ102は、制御データ142に基づいて、第1のキャッシュアクセスモード(たとえば、パラレル動作モード)と第2のキャッシュアクセスモード(たとえば、シリアル動作モード)との間で選択するように構成されてもよい。特定の態様では、制御データ142は、発行キューに記憶されている命令の数、実行ユニット(たとえば、実行ユニット144または別の実行ユニット)のアクティブスレッドの数、電力節約モードインジケータ、静的モード入力、またはそれらの組合せを示す。たとえば、発行キューが、いくつかのシーケンシャルな命令を記憶してもよい。この例では、実行ユニット144が、発行キューに命令を周期的に要求してもよい(たとえば、クロックサイクルごとに1つの命令)。発行キューに記憶されている命令の数が、シリアル動作モードを使用してロードされるデータが発行キューにおいて受信されることになる前に(たとえば、実行ユニット144によって、または別の実行ユニットによって)要求されることになる命令の数以上である場合、実行時間は、パラレル動作モードではなくシリアル動作モードを使用することによって増大されない場合がある。したがって、コントローラ102は、より多くの命令が発行キューにおいて記憶される(たとえば、発行キューにおいて記憶されている命令の数がしきい値を超える)ときはキャッシュ150のためにシリアル動作モードを、より少ない命令が発行キューにおいて記憶される(たとえば、発行キューにおいて記憶されている命令の数がしきい値を上回らない)ときはパラレル動作モードを選択してもよい。
【００１５】
別の例として、実行ユニット144は、マルチスレッド動作向けに構成されてもよい。この例では、各スレッドは、キャッシュ150に結合されるメモリデバイス(たとえば、発行キューまたはレジスタファイル)からデータを読み取ってもよい。複数のスレッドがアクティブであるとき、各スレッドは、より低いレートでメモリデバイスからデータを読み取る場合がある(たとえば、他のスレッドがアクティブである間、現在のスレッドがアイドルである場合があるため)。したがって、コントローラ102は、より多くのスレッドがアクティブである(たとえば、アクティブスレッドの数がしきい値を超える)ときはキャッシュ150のためにシリアル動作モードを、より少ないスレッドがアクティブである(たとえば、アクティブスレッドの数がしきい値を超えない)ときはパラレル動作モードを選択してもよい。別の例として、電子デバイスは、キャッシュ150および実行ユニット144を含んでもよい。(たとえば、低バッテリー状態に起因して、ユーザアクティビティがないことに起因して、またはユーザ指定の電力設定に起因して、)電子デバイスは、電力節約モードに入るように構成されてもよい。以下で説明するように、シリアルロード動作は、パラレルロード動作よりも少ない電力しか消費しない場合がある。したがって、コントローラ102は、電子デバイスが電力節約モードにあるとき、キャッシュ150のためにシリアル動作モードを選択してもよい。別の例として、ユーザは、シリアル動作モードとパラレル動作モードとの間で選択してもよい。(たとえば、静的モード入力(たとえば、ユーザ指定のキャッシュ構成設定)を使用することによって、)ユーザは、選択結果をコントローラ102に提供してもよい。この例では、制御データ142は、選択結果を示す1つまたは複数のビットを含んでもよい。したがって、コントローラ102は、選択結果によって示されるユーザ選好に基づいて、キャッシュ150のためにシリアル動作モードまたはパラレル動作モードのいずれかを選択してもよい。
【００１６】
例示的な態様では、コントローラ102は、キャッシュ150における複数のキャッシュアクセスのうちの各キャッシュアクセスを実行する前に、パラレル動作モードとシリアル動作モードとの間で動的に選択するように構成されてもよい。たとえば、以下で説明するように、第1のキャッシュアクセスがパラレル動作モードで実行されてもよく、第2のキャッシュアクセスがシリアル動作モードで実行されてもよい。別の例として、以下で説明するように、第1のキャッシュアクセスがシリアル動作モードで実行されてもよく、第2のキャッシュアクセスがパラレル動作モードで実行されてもよい。コントローラ102がパラレル動作モードとシリアル動作モードとの間で選択した後、コントローラ102は、選択された動作モード(たとえば、パラレル動作モードまたはシリアル動作モード)を示す制御信号を、AGU104およびタグ論理126へ送信してもよい。特定の態様では、コントローラ102は、第1のキャッシュアクセスの動作モードを決定するために、第1の動作条件(たとえば、発行キューに記憶されている命令の数、実行ユニットにおけるアクティブスレッドの数、電力節約モードインジケータ、静的モード入力、またはそれらの組合せ)に基づいて、パラレル動作モードとシリアル動作モードとの間で選択してもよい。コントローラ102は、第2のキャッシュアクセスの動作モードを決定するために、第2の動作条件(たとえば、発行キューに記憶されている命令の数、実行ユニットにおけるアクティブスレッドの数、電力節約モードインジケータ、静的モード入力、またはそれらの組合せ)に基づいて、パラレル動作モードとシリアル動作モードとの間で選択してもよい。第1の動作条件は、第2の動作条件と同じであってもよく、または第2の動作条件と異なってもよい。
【００１７】
パラレル動作モードを示す制御信号をコントローラ102から受信することに応答して、またキャッシュ要求138(たとえば、実行ユニット144によって生成されるキャッシュ要求)を受信することに応答して、AGU104は、(たとえば、第1のクロックサイクル中に、)データアドレスを生成してもよい。AGU104は、(たとえば、データアドレスのいくつかの最下位ビットに対応する)タグ要求134をタグアレイ106へ、(たとえば、データアドレスのいくつかの最上位ビットに対応する)データ要求136をデータアレイ108へ、(たとえば、第2のクロックサイクル中に)並行して送信してもよい。データ要求136は、データアレイ108の特定のセット(たとえば、セット114)を識別してもよい。タグ要求134を受信することに応答して、タグアレイ106は、(たとえば、第2のクロックサイクル中に)要求されるデータを含むデータアレイ108の特定のセットの特定のウェイ(たとえば、ウェイ120)を識別してもよい。タグアレイ106は、(たとえば、第2のクロックサイクル中に)特定のウェイに対応する信号をタグ論理126へ送信してもよい。タグアレイ106からの信号、およびコントローラ102からのパラレル動作モードを示す制御信号を受信することに応答して、タグ論理126は、(たとえば、第2のクロックサイクル中に、)タグ信号を選択論理128へ送信してもよい。タグ信号は、特定のウェイを示してもよい。データ要求136を受信することに応答して、データアレイ108は、(たとえば、第2のクロックサイクル中に、)識別されたセットの各ウェイ(たとえば、セット114のウェイ118〜124)において記憶されているデータを、選択論理128へ送信してもよい。選択論理128は、(たとえば、第2のクロックサイクル中に、)タグ信号および特定のセットに基づいて、特定のウェイ(たとえば、ウェイ120)に対応する選択されたデータ130を出力してもよい。選択論理128は、実行ユニット144へ、発行キューへ、または別のデバイスへ、選択されたデータ130を出力してもよい。特定の態様では、選択されたデータ130は、少なくとも1つのプロセッサ命令を含む。別の特定の態様では、選択されたデータ130は、少なくとも1つのプロセッサ命令の実行中に実行ユニット(たとえば、実行ユニット144)によって使用されるべきデータを含む。
【００１８】
シリアル動作モードを示す制御信号をコントローラ102から受信することに応答して、またキャッシュ要求138を受信することに応答して、AGU104は、(たとえば、第1のクロックサイクル中に、)データアドレスを生成してもよい。AGU104は、(たとえば、第2のクロックサイクル中に、)タグ要求134をタグアレイ106へ送信してもよい。タグ要求134を受信することに応答して、タグアレイ106は、(たとえば、第2のクロックサイクル中に、)タグデータ140をAGU104へ送信してもよく、信号をタグ論理126へ送信してもよい。タグデータ140および信号は、特定のウェイ(たとえば、ウェイ120)を識別してもよい。タグアレイ106からの信号およびコントローラ102からのシリアル動作モードを示す制御信号を受信することに応答して、タグ論理126は、(たとえば、第3のクロックサイクル中に、)特定のウェイを示すタグ信号を選択論理128へ送信してもよい。AGU104は、(たとえば、第3のクロックサイクル中に、)データ要求136をデータアレイ108へ送信してもよい。データ要求136は、特定のセット(たとえば、特定のセット114)および特定のウェイ(たとえば、ウェイ120)を識別してもよい。データアレイ108は、特定のセットの特定のウェイに対応するデータを選択論理128へ送信してもよい。データアレイ108は、(たとえば、特定のセット以外のセットに関連するプリチャージを妨げることによって、)特定のセット以外のデータアレイ108のセット(たとえば、セット110、112、および116)が、データ信号を選択論理128へ送信することを妨げる場合がある。選択論理128は、(たとえば、第3のクロックサイクル中に、)特定のウェイに対応するデータをデータアレイ108から、かつ特定のウェイに対応する入力ラインを識別するタグ信号をタグ論理126から受信してもよい。選択論理128は、(たとえば、第3のクロックサイクル中に、)識別されたウェイに対応する選択されたデータ130を出力してもよい。特定の態様では、選択されたデータ130は、少なくとも1つのプロセッサ命令を含む。別の特定の態様では、選択されたデータ130は、少なくとも1つのプロセッサ命令の実行中に実行ユニット(たとえば、実行ユニット144)によって使用されるべきデータを含む。シリアル動作モードは、(たとえば、特定のセット以外のセットに関連するプリチャージを妨げることによって、)パラレル動作モードよりも少ない電力を使用してデータをロードしてもよい。
【００１９】
完了するために2つのクロックサイクルを要するものとしてパラレルロード動作が説明されるが、パラレルロード動作は、完了するために2つよりも短いクロックサイクル、または完了するために2つよりも長いクロックサイクルを要する場合がある。完了するために3つのクロックサイクルを要するものとしてシリアルロード動作が説明されるが、シリアルロード動作は、完了するために3つよりも短いクロックサイクル、または完了するために3つよりも長いクロックサイクルを要する場合がある。シリアルロード動作は、完了するためにパラレルロード動作よりも多くのクロックサイクルを要する場合がある。
【００２０】
上述のように、コントローラ102は、キャッシュ150における複数のキャッシュアクセスのうちの各キャッシュアクセスを実行する前に、パラレル動作モードとシリアル動作モードとの間で動的に選択するように構成されてもよい。キャッシュ150がシリアル動作モードからパラレル動作モードへ切り替わるとき、データアレイ108においてデータ衝突が起こる場合がある。説明のために、上述のように、シリアル動作モードでは、AGU104は、第1のクロックサイクル中に(たとえば、シリアル動作モード要求に対応する)第1のデータアドレスを生成するように構成されてもよい。タグアレイ106は、第2のクロックサイクル中にアクセスされてもよい。データアレイ108は、第3のクロックサイクル中にアクセスされてもよい。パラレル動作モード要求がシリアル動作モード要求の直後にくるとき、AGU104は、(たとえば、パラレル動作モード要求に対応する)第2のデータアドレスを第2のクロックサイクル中に生成するように構成されてもよい。パラレル動作モードでは、タグアレイ106およびデータアレイ108は、(たとえば、第3のクロックサイクル中に)同時にアクセスされてもよい。したがって、第3のクロックサイクル中に、シリアル動作モード要求およびパラレル動作モード要求は、データアレイ108を使用するための複数の試行をもたらしてデータ衝突を引き起こす場合がある。
【００２１】
データ衝突を回避する2つの方法が、以下で説明される。データ衝突を回避する第1の方法では、パラレル動作モード要求が、(たとえば、AGU104において)少なくとも1つのクロックサイクルの間、遅延されてもよい。データ衝突を回避する第2の方法では、シリアル動作モード要求(たとえば、データアレイ108アクセス)が、(たとえば、AGU104において)少なくとも1つのクロックサイクルの間遅延されてもよい。
【００２２】
たとえば、データ衝突を回避する第1の方法を実行するとき、AGU104は、(たとえば、第2のクロックサイクル中に、)第1のキャッシュアクセスに関連するタグデータ140を、タグアレイ106からシリアル動作モードに従って受信してもよく、(たとえば、やはり第2のクロックサイクル中に、)第2のキャッシュアクセスに関連するパラレル動作モードに従ってデータアドレスを生成してもよい。AGU104は、パラレル動作モード要求のタグ要求134およびデータ要求136を送信することを(たとえば、パラレル動作モード要求に対応する生成されたアドレスをAGUメモリ132に記憶することによって)(たとえば、第4のクロックサイクルまで)遅延させてもよい。したがって、シリアル動作モードのデータ要求136が特定のクロックサイクル(たとえば、第3のクロックサイクル)中に送信され、パラレル動作モードのデータ要求136が別のクロックサイクル(たとえば、第4のクロックサイクル)中に送信されるため、(たとえば、第3のクロックサイクル中の)データアレイ108における潜在的なデータ衝突は回避されてもよい。
【００２３】
別の例として、データ衝突を回避する第2の方法を実行するとき、AGU104は、(たとえば、第2のクロックサイクル中に、)第1のキャッシュアクセスに関連するタグデータ140を、タグアレイ106からシリアル動作モードに従って受信してもよく、AGU104は、(たとえば、やはり第2のクロックサイクル中に、)第2のキャッシュアクセスに関連するパラレル動作モードに従って、アドレスを生成してもよい。AGU104は、シリアル動作モード要求のデータ要求136を送信することを(たとえば、シリアル動作モード要求に対応するタグデータ140をAGUメモリ132に記憶することによって) (たとえば、第4のクロックサイクルまで)遅延させてもよい。したがって、パラレル動作モードのデータ要求136が特定のクロックサイクル(たとえば、第3のクロックサイクル)中に送信され、シリアル動作モードのデータ要求136が別のクロックサイクル(たとえば、第4のクロックサイクル)中に送信されるため、(たとえば、第3のクロックサイクル中の)潜在的なデータ衝突はデータアレイ108において回避されてもよい。
【００２４】
キャッシュ150がパラレル動作モードからシリアル動作モードへ切り替わるとき、キャッシュ150は、パラレル動作要求およびシリアル動作要求を普通に処理してもよい。たとえば、第1のクロックサイクル中に、タグアクセス(たとえば、タグ要求134を送信し、選択論理128においてタグ信号を受信すること)を、第2のキャッシュアクセスモード(たとえば、パラレル動作モード)に従って実行した後、タグアレイ106は、第1のクロックサイクルの直後にくる第2のクロックサイクルの中で、第2のキャッシュアクセスに対応する第2のタグアクセスを、第1のキャッシュアクセスモード(たとえば、シリアル動作モード)に従って実行してもよい。この例では、タグアレイ106は、第1のクロックサイクル中に、パラレル動作モードに対応する第1のタグアクセスを実行するように構成されてもよく、タグアレイ106は、第1のクロックサイクルの直後にくる第2のクロックサイクル中に、シリアル動作モードに対応する第2のタグアクセスを実行するように構成されてもよい。
【００２５】
図1は、選択論理128に結合されている共通入力ラインに結合されるセット114および116のウェイを示すが、セット110〜116のウェイの各々が共通入力ラインに結合されてもよく、または選択論理128に別々に結合されてもよい。図1は、選択論理128が、選択されたデータ130を実行ユニット144へ直接送信することを示すが、他の態様では、1つまたは複数の論理要素(たとえば、バッファ、レジスタファイル、または発行キュー)が選択論理128と実行ユニット144との間に配置されてもよい。
【００２６】
再構成可能フェッチパイプライン100を含む電子デバイスは、動作条件(たとえば、発行キューに記憶されている命令の数、実行ユニット144におけるアクティブスレッドの数、電力節約モードインジケータ、静的モード入力、またはそれらの組合せ)に基づいて、パラレル動作モードとシリアル動作モードとの間で切り替わってもよい。再構成可能フェッチパイプライン100がパラレル動作モードで動作するとき、再構成可能フェッチパイプライン100は、シリアルロード動作と比較して、より迅速にデータをロードしてもよい。再構成可能フェッチパイプライン100がシリアル動作モードで動作するとき、再構成可能フェッチパイプライン100は、パラレルロード動作と比較して、より少ない電力を使用してデータをロードしてもよい。発行キューにおいて記憶されている命令の数がしきい値を超えるとき、または実行ユニット(たとえば、実行ユニット144または別の実行ユニット)におけるアクティブスレッドの数がしきい値を超えるとき、(たとえば、データは、データが要求されることになる前にロードされてもよいため)シリアルロード動作を使用してロードされるデータは、実行時間を増大させることなく送信されてもよい。したがって、電子デバイスは、シリアルロード動作を実行するように構成されるパイプラインに関連するとともに、パラレルロード動作を実行するように構成されるパイプラインに関連する利益を得てもよい。
【００２７】
図2は、図1のキャッシュ150および実行ユニット144を含む再構成可能フェッチパイプライン200の特定の態様を示す。再構成可能フェッチパイプライン200はまた、発行キュー202を含む。発行キュー202は、キャッシュ150の一部であってもよく、またはキャッシュ150と別個であってもよい。再構成可能フェッチパイプライン200は、図1の再構成可能フェッチパイプライン100と同様に動作してもよい。ただし、選択されたデータ130は発行キュー202に提供される。制御データ142は、発行キュー202の中の命令の数の表示を含んでもよい。たとえば、少なくとも特定の数(たとえば、4個)の命令が発行キュー202において記憶されているとき、キャッシュ150は、パラレル動作モードで動作するように構成されてもよい。特定の数よりも少ない命令が発行キュー202において記憶されているとき、キャッシュ150は、シリアル動作モードで動作してもよい。特定の態様では、パラレル動作モードとシリアル動作モードとの間での選択は、追加または代替として、実行ユニット(たとえば、実行ユニット144または別の実行ユニット)のアクティブスレッドの数、電力節約モードインジケータ(たとえば、デバイスが電力節約モードに入るべきかどうかを規定する、キャッシュの外部のデバイスによって設定されるインジケータ)、静的モード入力(たとえば、パラレル動作モードまたはシリアル動作モードを識別する、ユーザ指定の選択)、または(たとえば、図1を参照しながら上記で説明したような)それらの組合せに基づく。
【００２８】
再構成可能フェッチパイプライン200を含む電子デバイスは、動作条件(たとえば、発行キュー202において記憶されている命令の数、実行ユニット144におけるアクティブスレッドの数、電力節約モードインジケータ、静的モード入力、またはそれらの組合せ)に基づいて、パラレル動作モードとシリアル動作モードとの間で切り替わってもよい。再構成可能フェッチパイプライン200がパラレル動作モードで動作するとき、再構成可能フェッチパイプライン200は、シリアルロード動作と比較して、より迅速にデータをロードしてもよい。再構成可能フェッチパイプライン200がシリアル動作モードで動作するとき、再構成可能フェッチパイプライン200は、パラレルロード動作と比較して、より少ない電力を使用してデータをロードしてもよい。発行キュー202において記憶されている命令の数がしきい値を超えるとき、または実行ユニット(たとえば、実行ユニット144または別の実行ユニット)におけるアクティブスレッドの数がしきい値を超えるとき、(たとえば、データは、データが要求されることになる前にロードされてもよいため)シリアルロード動作を使用してロードされるデータは、実行時間を増大させることなく送信されてもよい。したがって、電子デバイスは、シリアルロード動作を実行するように構成されるパイプラインに関連するとともに、パラレルロード動作を実行するように構成されるパイプラインに関連する利益を得てもよい。
【００２９】
図3は、再構成可能フェッチパイプラインを動作させる方法300の特定の態様を示すフローチャートである。方法300は、302において、第1のキャッシュアクセスモードと第2のキャッシュアクセスモードとの間で選択するステップを含む。様々な態様では、第1のキャッシュアクセスモードと第2のキャッシュアクセスモードとの間で選択するステップは、発行キューにおいて記憶されている命令の数に基づき、実行ユニットにおけるアクティブスレッドの数に基づき、電力節約モードインジケータに基づき、静的モード入力に基づき、またはそれらの組合せである。
【００３０】
第1の態様では、データがシリアル動作モードを使用して提供され得る前に、データを要求している実行ユニット144のスレッドが実行時間を受け取ることになるかどうかに基づいて(たとえば、実行ユニットにおける他のアクティブスレッドの数に起因して)、図1のコントローラ102はシリアル動作モードとパラレル動作モードとの間で選択する。他のアクティブスレッドの数がしきい値以上であるとき(たとえば、シリアル動作モードを使用してデータをロードすることに関連するクロックサイクルの数を超えるとき)、実行時間は、パラレルロード動作ではなくシリアルロード動作を使用することによって増大されない。上記で説明したように、シリアルロード動作は、パラレルロード動作よりも少ない電力しか消費しない場合がある。
【００３１】
たとえば、シリアルロード動作の場合、3つのスレッドが図1の実行ユニット144においてアクティブであってもよい。この例では、アクティブスレッドは交代してもよい(たとえば、各スレッドは、3つのクロックサイクルごとに1回、実行ユニット144を制御してもよい)。この例では、シリアルロード動作は、データを提供するために3つのクロックサイクルを要する。データを要求しているスレッドは、第1のクロックサイクル中にデータを要求することになり、第4のクロックサイクルまで実行ユニット144を再び制御しないことになる。この例では、(たとえば、データを要求しているスレッドが実行ユニット144の制御を取り戻す前に)、シリアルロード動作は、要求されるデータを第3のクロックサイクル中に提供する。したがって、シリアルロード動作を使用することは、データを要求しているスレッドを遅延させず、図1を参照しながら上記で説明したように、パラレルロード動作よりも少ない電力しか使用しない。アクティブスレッドの数がしきい値以上でないとき(たとえば、シリアル動作モードを使用してデータをロードすることに関連するクロックサイクルの数以上でないとき)、実行時間は、パラレルロード動作ではなくシリアルロード動作を使用することによって増大されることになる。したがって、この場合、データを要求しているスレッドにデータをより迅速に提供するために、(シリアルロード動作の代わりに)パラレルロード動作が使用されてもよい。
【００３２】
第2の態様では、発行キュー202において記憶されている命令の数が、シリアル動作モードを使用してロードされるデータが発行キュー202において受信されることになる前に(たとえば、実行ユニット144によって)要求されることになる命令の数以上であるかどうかに基づいて、図2のコントローラ102はシリアル動作モードとパラレル動作モードとの間で選択してもよい。発行キュー202において記憶されている命令の数が、シリアル動作モードを使用してロードされるデータが発行キュー202において受信されることになる前に要求されることになる命令の数以上であるとき、実行時間は、パラレルロード動作ではなくシリアルロード動作を使用することによって増大されない。図1を参照しながら上記で説明したように、シリアルロード動作は、パラレルロード動作よりも少ない電力しか消費しない場合がある。したがって、シリアルロード動作を使用することは、性能の低減を伴わず、より少ない電力しか消費しない場合がある。あるいは、発行キュー202において記憶されている命令の数が、シリアル動作モードを使用してロードされるデータが発行キュー202において受信されることになる前に要求されることになる命令の数以上でないとき、実行時間は、パラレルロード動作ではなくシリアルロード動作を使用することによって増大されることになる。したがって、この場合、発行キュー202にデータをより迅速に提供するために、(シリアルロード動作の代わりに)パラレルロード動作が使用されてもよい。
【００３３】
方法300はまた、304において、第1のキャッシュアクセスを実行するステップを含む。第1のキャッシュアクセスモードが選択されているとき、第1のキャッシュアクセスを実行するステップは、タグアクセスを実行するステップ、およびタグアクセスを実行した後にデータアレイアクセスを実行するステップを含む。第2のキャッシュアクセスモードが選択されているとき、第1のキャッシュアクセスを実行するステップは、データアレイアクセスと並行してタグアクセスを実行するステップを含む。たとえば、シリアル動作モードが選択されているとき、図1のAGU104または図2のAGU104は、第2のクロックサイクル中に、タグ要求134をタグアレイ106へ送信してもよく、タグデータ140を受信してもよい。この例では、AGU104は、第3のクロックサイクル中に、データ要求136をデータアレイ108へ送信してもよい。別の例として、パラレル動作モードが選択されているとき、図1のAGU104または図2のAGU104は、第2のクロックサイクル中に、タグ要求134をタグアレイ106へ送信してもよく、データ要求136をデータアレイ108へ送信してもよい。方法300は、1つまたは複数の追加のキャッシュアクセスを実行するステップと、各キャッシュアクセスの前に、第1のキャッシュアクセスモードと第2のキャッシュアクセスモードとの間で選択するステップとを含んでもよい。
【００３４】
図3の方法300は、中央処理ユニット(CPU)、フィールドプログラマブルゲートアレイ(FPGA)デバイス、特定用途向け集積回路(ASIC)、コントローラ、別のハードウェアデバイス、ファームウェアデバイス、またはそれらの任意の組合せなどの、処理ユニットによって開始および/または実行されてもよい。一例として、図3の方法300は、図1、図2、および図4を参照しながらさらに説明するように、命令を実行する1つまたは複数のプロセッサまたは実行ユニットによって実行することができる。
【００３５】
方法300に従って動作する電子デバイスは、動作条件(たとえば、発行キューの中の命令の数、実行ユニットにおけるアクティブスレッドの数、電力節約モードインジケータ、静的モード入力、またはそれらの組合せ)に基づいて、パラレル動作モードとシリアル動作モードとの間で切り替わってもよい。電子デバイスがパラレル動作モードで動作するとき、電子デバイスは、シリアルロード動作と比較して、より迅速にデータをロードしてもよい。電子デバイスがシリアル動作モードで動作するとき、電子デバイスは、パラレルロード動作と比較して、より少ない電力を使用してデータをロードしてもよい。発行キューに記憶されている命令の数がしきい値を超えるとき、または実行ユニットにおけるアクティブスレッドの数がしきい値を超えるとき、シリアルロード動作を使用してロードされるデータは、実行時間を増大させることなく送信されてもよい(たとえば、データは、データが要求されることになる前にロードされてもよいので)。したがって、電子デバイスは、シリアルロード動作を実行するように構成されるパイプラインに関連するとともに、パラレルロード動作を実行するように構成されるパイプラインに関連する利益を得てもよい。
【００３６】
図4を参照すると、ブロック図が、再構成可能フェッチパイプライン464を含むモバイルデバイス400の特定の例示的な態様を示す。モバイルデバイス400、またはそれの構成要素は、通信デバイス、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、タブレット、アクセスポイント、セットトップボックス、エンターテイメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、固定位置データユニット、移動体位置データユニット、デスクトップコンピュータ、モニタ、コンピュータモニタ、テレビジョン、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、ビデオプレーヤ、デジタルビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、またはポータブルデジタルビデオプレーヤなどのデバイスを含んでもよく、そうしたデバイスを実装してもよく、またはそうしたデバイス内に含まれてもよい。
【００３７】
モバイルデバイス400は、デジタル信号プロセッサ(DSP)などのプロセッサ410を含んでもよい。プロセッサ410は、再構成可能フェッチパイプライン464を含んでもよく、または再構成可能フェッチパイプライン464と別個であってもよい。再構成可能フェッチパイプライン464は、図1〜図3を参照しながら上記で説明したように、第1のキャッシュアクセスモード(たとえば、シリアル動作モード)で動作することと、第2のキャッシュアクセスモード(たとえば、パラレル動作モード)で動作することとの間で動的に選択するように構成されてもよい。再構成可能フェッチパイプライン464は、図1の再構成可能フェッチパイプライン100または図2の再構成可能フェッチパイプライン200に相当してもよい。プロセッサ410は、メモリ432(たとえば、非一時的コンピュータ可読媒体)に結合されてもよい。
【００３８】
図4はまた、プロセッサ410に、またディスプレイ428に結合されているディスプレイコントローラ426を示す。コーダ/デコーダ(コーデック)434も、プロセッサ410に結合されてもよい。スピーカー436およびマイクロフォン438が、コーデック434に結合されてもよい。ワイヤレスコントローラ440がプロセッサ410に結合されてもよく、さらにアンテナ442に結合されてもよい。
【００３９】
特定の態様では、プロセッサ410、ディスプレイコントローラ426、メモリ432、コーデック434、ワイヤレスコントローラ440、および再構成可能フェッチパイプライン464は、システムインパッケージデバイスまたはシステムオンチップデバイス422の中に含まれる。入力デバイス430および電源444が、システムオンチップデバイス422に結合されてもよい。その上、特定の態様では、図4に示すように、ディスプレイ428、入力デバイス430、スピーカー436、マイクロフォン438、アンテナ442、および電源444が、システムオンチップデバイス422の外部にある。しかしながら、ディスプレイ428、入力デバイス430、スピーカー436、マイクロフォン438、アンテナ442、および電源444の各々は、インターフェースまたはコントローラなどの、システムオンチップデバイス422の構成要素に結合されてもよい。再構成可能フェッチパイプライン464は、図4に示すようにシステムオンチップデバイス422の中に含まれてもよく、または1つまたは複数の別個の構成要素の中に含まれてもよい。
【００４０】
説明される態様に関連して、本装置(モバイルデバイス400などの)は、データを取り出すための手段(たとえば、図1または図2のキャッシュ150)に結合される、命令を実行するための手段(たとえば、図1または図2の実行ユニット144)を含んでもよい。データを取り出すための手段は、アクセスモードを選択するための手段(たとえば、図1または図2のコントローラ102)、タグデータを記憶するための手段(たとえば、図1または図2のタグアレイ106)、データを記憶するための手段(たとえば、図1または図2のデータアレイ108)、およびアドレスを生成するための手段(たとえば、図1または図2のアドレス生成ユニット(AGU)104)を含んでもよい。アクセスモードを選択するための手段は、命令を記憶するための手段(たとえば、図2の発行キュー202)に記憶されている命令の数、命令を実行するための手段のアクティブスレッドの数、または両方に基づいて、第1のアクセスモードと第2のアクセスモードとの間で選択し、選択に基づいてアクセスモード信号を生成するように構成されてもよい。アドレスを生成するための手段は、第1のアクセスモードが選択されているとアクセスモード信号が示すことに応答して、タグデータを記憶するための手段へタグアドレス(たとえば、図1または図2のタグ要求134)を送信し、タグデータを記憶するための手段からタグデータ(たとえば、図1または図2のタグデータ140)を受信し、データを記憶するための手段へデータ要求(たとえば、図1または図2のデータ要求136)を送信するように構成されてもよい。データ要求は、タグデータおよびデータアドレスを含んでもよい。アドレスを生成するための手段は、第2のアクセスモードが選択されているとアクセスモード信号が示すことに応答して、データを記憶するための手段へデータアドレスを送信することと並行して、タグデータを記憶するための手段へタグアドレスを送信するようにさらに構成されてもよい。
【００４１】
説明される態様に関連して、非一時的コンピュータ可読媒体は、プロセッサによって実行されたとき、プロセッサに、動作条件(たとえば、発行キューにおいて記憶されている命令の数、実行ユニットにおけるアクティブスレッドの数、電力節約モードインジケータ、静的モード入力、またはそれらの組合せ)に基づいて、第1のキャッシュアクセスモードと第2のキャッシュアクセスモードとの間での選択を開始または実行させる命令を記憶する。非一時的コンピュータ可読媒体は、プロセッサによって実行されたとき、プロセッサに、第1のキャッシュアクセスを開始または実行させる命令をさらに記憶してもよい。第1のキャッシュアクセスモードが選択されているとき、第1のキャッシュアクセスを実行することは、タグアクセスを実行すること、およびタグアクセスを実行した後にデータアレイアクセスを実行することを含んでもよい。第2のキャッシュアクセスモードが選択されているとき、第1のキャッシュアクセスを実行することは、データアレイアクセスと並行してタグアクセスを実行することを含んでもよい。
【００４２】
非一時的コンピュータ可読媒体は、図4のメモリ432に相当してもよい。プロセッサは、図1のコントローラ102もしくは実行ユニット144、図2のコントローラ102もしくは実行ユニット144、または図4のプロセッサ410に相当してもよい。発行キューは、図2の発行キュー202に相当してもよい。非一時的コンピュータ可読媒体は、プロセッサによって実行されたとき、プロセッサに、図3を参照しながら上記で説明した動作を実行させる命令を記憶してもよい。
【００４３】
当業者には、本明細書で開示する態様に関して説明する様々な例示的な論理ブロック、構成、モジュール、回路、およびアルゴリズムステップが電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装されてもよいことがさらに了解されよう。上記において、様々な例示的な構成要素、ブロック、構成、モジュール、回路、およびステップが、それらの機能の観点から概略的に説明された。そのような機能が、ハードウェアとして実装されるのか、それともソフトウェアとして実装されるのかは、特定の適用例および全体的なシステムに課された設計制約によって決まる。当業者は、説明した機能を特定の適用例ごとに様々な方式で実装してもよいが、そのような実装の決定は、本開示の範囲からの逸脱を引き起こすと解釈されるべきではない。
【００４４】
本明細書で開示する態様に関して説明される方法またはアルゴリズムのステップは、ハードウェアで直接具現されるか、プロセッサによって実行されるソフトウェアモジュールで具現されるか、またはその2つの組合せで具現されてもよい。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスク読取り専用メモリ(CD-ROM)、または当技術分野で知られている任意の他の形態の記憶媒体の中に存在してもよい。例示的な非一時的(たとえば、有形)記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体は、プロセッサに一体化されてもよい。プロセッサおよび記憶媒体は、特定用途向け集積回路(ASIC)の中に存在してもよい。ASICは、コンピューティングデバイスまたはユーザ端末の中に存在してもよい。代替として、プロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザ端末の中で個別の構成要素として存在してもよい。
【００４５】
開示された態様の前の説明は、開示された態様を当業者が作成または使用することを可能にするために提供される。これらの態様への様々な変更は当業者にはすぐに明らかになり、本明細書で定義される原理は本開示の範囲から逸脱することなく他の態様に適用されてもよい。したがって、本開示は、本明細書において示される態様に限定されるものではなく、以下の特許請求の範囲によって定義されるような原理および新規の特徴と一致する可能な最も広い範囲を与えられるべきである。
【符号の説明】
【００４６】
100  再構成可能フェッチパイプライン
102  コントローラ
104  アドレス生成ユニット(AGU)
106  タグアレイ
108  データアレイ
118  ウェイ
124  ウェイ
126  タグ論理
128  選択論理
130  選択されたデータ
132  AGUメモリ
134  タグ要求
136  データ要求
138  キャッシュ要求
140  タグデータ
142  制御データ
144  実行ユニット
150  キャッシュ
200  再構成可能フェッチパイプライン
202  発行キュー
400  モバイルデバイス
410  プロセッサ
422  システムオンチップデバイス
426  ディスプレイコントローラ
428  ディスプレイ
430  入力デバイス
432  メモリ
434  コーデック
436  スピーカー
438  マイクロフォン
440  ワイヤレスコントローラ
442  アンテナ
444  電源
464  再構成可能フェッチパイプライン
【図１】
0006258525.tif 000002
【図２】
0006258525.tif 000003
【図３】
0006258525.tif 000004
【図４】
0006258525.tif 000005