(57)【要約】命令を実行するための複数のステージをもつ命令実行パイプラインを含む装置が開示される。該装置は、また、該命令実行パイプラインに連結された制御ロジック回路を含む。該制御ロジック回路は、該命令の実行の間に該命令実行パイプラインの少なくとも1つのステージをスキップする。該制御ロジック回路は、また、該デコードされた命令の実行の間に少なくとも１つのスキップされないステージを実行する。【選択図】  図１
2010538398.tif 000002
【特許請求の範囲】
【請求項１】
マルチステージデータ処理パイプラインで利用可能なステージ数より少ない数のステージを使用して命令を実行できるときを決定するために、該命令をデコードすること、
前記デコードされた命令の実行の間に、前記マルチステージデータ処理パイプラインの少なくとも１つのステージをスキップすること、及び
前記デコードされた命令の実行の間に、少なくとも１つのスキップされないステージを実行すること、
を備える方法。
【請求項２】
前記少なくとも１つのスキップされたステージの間、前記マルチステージデータ処理パイプラインへの電力を低減すること、をさらに備える請求項１記載の方法。
【請求項３】
電力を低減することは、前記少なくとも１つのスキップされたステージへの動的電力を切ること、を含む請求項２記載の方法。
【請求項４】
電力を低減することは、前記少なくとも１つのスキップされたステージへの静的電力を切ること、を含む請求項２記載の方法。
【請求項５】
スキップされない前記マルチステージデータ処理パイプラインのステージの前に電力を増加すること、をさらに備える請求項２記載の方法。
【請求項６】
前記マルチステージデータ処理パイプラインの前記少なくとも1つのステージをスキップすることは、
スキップされる前記少なくとも1つのステージに基づく時間中、レジスタに前記デコードされた命令を保持すること、
前記時間の終わりに関連する前記少なくとも１つのスキップされないステージへ前記命令を転送すること、
をさらに含む請求項１記載の方法。
【請求項７】
前記デコードすることは、前記命令の実行より前に実行される、請求項１記載の方法。
【請求項８】
前記少なくとも1つのスキップされたステージは、第１ステージ、最終ステージ、及び前記第１ステージと前記最終ステージとの間のステージを含むグループから選択された１つのステージである、請求項１記載の方法。
【請求項９】
カレント命令レジスタから命令を受けることをさらに含む請求項１記載の方法。
【請求項１０】
前記マルチステージデータ処理パイプラインは、インターリーブマルチスレッドプロセッサにおける複数のマルチステージデータ処理パイプラインのうちの1つである、請求項１記載の方法。
【請求項１１】
前記マルチステージデータ処理パイプラインは、複数のスレッドのうちの少なくとも１つから前記命令を受け取るように構成された、請求項１記載の方法。
【請求項１２】
前記デコードすることは、前記命令を識別することをさらに含む、請求項１記載の方法。
【請求項１３】
前記命令は、ライトオンリー命令を含む、請求項１記載の方法。
【請求項１４】
前記命令は、レジスタファイルリードを含まない、請求項１記載の方法。
【請求項１５】
前記命令は、コンバイン命令を含む、請求項１記載の方法。
【請求項１６】
命令を実行するための複数のステージをもつ第１の命令実行パイプラインと、
前記第１の命令実行パイプラインに連結された制御ロジック回路と、
を備え、
前記制御ロジック回路は、
第１の命令の実行の間に、前記第１の命令実行パイプラインの少なくとも1つのステージをスキップし、
前記第１の命令の実行の間に、少なくとも１つのスキップされないステージを実行するように構成される、装置。
【請求項１７】
前記制御ロジック回路は、さらに、前記少なくとも1つのスキップされたステージの間、前記第１の命令実行パイプラインへの電力を低減するように構成される請求項１６記載の装置。
【請求項１８】
前記制御ロジック回路は、さらに、前記複数のステージの全てよりも少ないステージを使用して前記第１の命令を実行できるときを決定するために、前記第１の命令をデコードするように構成される請求項１６記載の装置。
【請求項１９】
前記第１の命令実行パイプラインは６つのステージを含む、請求項１６記載の装置。
【請求項２０】
前記制御ロジック回路は、少なくとも1つのマルチプレクサおよびコントローラを含む、請求項１６記載の装置。
【請求項２１】
前記第１の命令は、ライトオンリー命令を含む請求項１６記載の装置。
【請求項２２】
前記第１の命令は、リードオンリー命令を含む請求項１６記載の装置器。
【請求項２３】
前記第１の命令実行パイプラインに連結され、前記命令に基づきオペランドを記憶するように構成されたレジスタファイル、をさらに備える請求項１６記載の装置。
【請求項２４】
命令を実行するための複数のステージをもつ第１の命令実行パイプライン、をさらに備え、
前記制御論ロジック回路は、前記第２の命令実行パイプラインに連結され、前記第２の命令実行パイプライン中の前記第１の命令の実行の間に、前記第２の命令実行パイプラインの少なくとも1つのステージをスキップするように構成される、請求項１６記載の装置。
【請求項２５】
前記第１の命令実行パイプラインおよび前記第２の命令実行パイプラインに連結されたレジスタファイル、をさらに備える請求項２４記載の装置。
【請求項２６】
命令実行パイプラインと、
前記命令実行パイプラインからデータを受け取るように構成されたレジスタファイルと、
命令の実行の間に、前記命令実行パイプラインの利用可能な複数のステージのうちの少なくとも1つのステージをスキップする手段と、
を備える装置。
【請求項２７】
前記命令実行パイプラインに連結された命令レジスタをさらに備える請求項２６記載の装置。
【請求項２８】
前記レジスタファイルは、統一レジスタファイルである、請求項２６記載の装置。
【請求項２９】
前記少なくとも1つのステージをスキップする間に電力を低減する手段をさらに備える請求項２６記載の装置。
【請求項３０】
受信機と、
前記受信機に応答するプロセッサと、
を備え、前記プロセッサは、
第１のメモリと、
前記第１のメモリに応答するインターリーブマルチステージデータ処理パイプラインと、
を備え、前記プロセッサは、
前記インターリーブマルチステージデータ処理パイプラインで利用可能なステージの数より少ない数のステージを使用して命令を実行できるときを決定するために、前記命令をデコードし、
前記命令の実行の間に、前記インターリーブマルチステージデータ処理パイプラインの少なくとも1つのステージをスキップし、
前記デコードされた命令の実行の間に、少なくとも1つのスキップされないステージを実行する、無線装置。
【請求項３１】
前記受信機に連結されたアンテナと、
前記アンテナに連結された送信機と、
前記プロセッサによりアクセス可能な第２のメモリと、
前記プロセッサに連結されたディスプレイコントローラと、
前記プロセッサに連結されたオーディオ・コーダ/デコーダ(CODEC)と、
をさらに備える請求項２９記載の無線装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、マルチステージデータ処理パイプラインにおける命令実行システム及び方法に関する。
【背景技術】
【０００２】
技術の進歩により、より小さくより強力なパーソナルコンピュータ機器をもたらした。例えば、ポータブル無線電話、PDA（personal digital assistants）、および小型で軽量及びユーザにより容易に持ち運び可能なページング機器のような無線コンピュータ機器を含む様々なポータブルパーソナルコンピュータ機器が現在存在する。より具体的には、携帯電話およびIP電話のようなポータブル無線電話は、無線ネットワーク上で音声及びデータのパケットを通信することができる。さらに、多くのそのような無線電話は、そこに組込まれる他のタイプの機器を含んでいる。例えば、無線電話はさらにディジタルスチルカメラ、デジタルビデオカメラ、デジタルレコーダおよびオーディオファイルプレーヤを含むことができる。さらに、そのような無線電話は、インターネットにアクセスするために使用することができるウェブインターフェースを含むことができる。そのため、これらの無線電話はかなりのコンピュータ能力を含む。
【０００３】
典型的には、ポータブルパーソナルコンピュータ機器にはバッテリーによって動力が供給される。これらの機器がよりパワフルになると、当該機器はより多くの電力を消費し、バッテリーが機器に動力を供給することができる時間を減らすことがある。
【０００４】
従って、プロセッサで命令を実行する改善されたシステム及び方法を提供することは有利であろう。
【発明の概要】
【０００５】
特定の実施形態において、命令を実行するために複数のステージを持つ命令実行パイプラインを含む装置が開示される。該装置は、さらに該命令実行パイプラインに結合された制御ロジック回路を含む。該制御ロジック回路は、デコードされた命令の実行の間に命令実行パイプラインの少なくとも1つのステージをスキップするように構成されている。制御ロジック回路は、また、デコードされた命令の実行の間に少なくとも1つのスキップされないステージを実行するように構成されている。
【０００６】
別の特定の実施形態では、いつ、マルチステージデータ処理パイプラインで利用可能なステージの数より少ない数のステージを使用して命令を実行できるかを決定するために、該命令をデコードすることを含む方法が開示される。該方法は、さらに、デコードされた命令の実行の間に、マルチステージデータ処理パイプラインの少なくとも1つのステージをスキップすることと、デコードされた命令の実行の間に、少なくとも1つのスキップされないステージを実行することと、を含む。
【０００７】
さらに別の特定の実施形態では、命令実行パイプライン、および該命令実行パイプラインからデータを受け取るように構成されたレジスタファイルを含む装置が開示される。該装置は、また、命令の実行の間に、該命令実行パイプラインの複数の利用可能なステージのうちの少なくとも1つのステージをスキップする手段を含む。
【０００８】
さらに別の特定の実施形態では、受信機、および該受信機に応答するプロセッサを含む無線装置が開示される。該プロセッサは、第１のメモリ、および該第１のメモリに応答する、インターリーブマルチステージデータ処理パイプラインを含む。該プロセッサは、該インターリーブマルチステージデータ処理パイプラインで利用可能なステージの数よりも少ない数のステージを使用して命令を実行できるときを決定するために、該命令をデコードするように構成されている。該プロセッサは、また、命令の実行の間に、該インターリーブマルチステージデータ処理パイプラインの少なくとも1つのステージをスキップするように構成されている。該プロセッサは、さらに、デコードされた命令の実行の間に、少なくとも1つのスキップされないステージを実行するように構成されている。
【０００９】
説明される装置および方法の特定の1つの利点は、スキップされたサイクルの間、電力を節約できるということである。該説明された装置および方法の別の特定の利点は、携帯機器のバッテリー寿命を延ばすことができるということである。
【００１０】
本開示の他の側面、利点および特徴は、図面の簡単な説明、詳細な説明、及びクレーム、といった次のセクションを含む全ての適用を考慮すれば明白になるだろう。
【図面の簡単な説明】
【００１１】
【図１】マルチステージデータ処理パイプラインで命令を実行するシステムの実施形態のブロック図。
【図２】マルチステージデータ処理パイプラインで命令を実行するシステムの他の実施形態のブロック図。
【図３】マルチステージデータ処理パイプラインで命令を実行する方法の実施形態のフローチャート。
【図４】図１−３に関して説明されたように、マルチステージデータ処理パイプラインで命令を実行する装置およびマルチステージデータ処理パイプラインで命令を実行する方法を用いるポータブル通信装置の典型的な実施形態。
【発明を実施するための形態】
【００１２】
図１は、プロセッサ１００の典型的で限定されない実施形態のブロック図を示す。図１に示すように、プロセッサ１００は、命令キャッシュ１３４に連結されたメモリ１０２を含む。命令キャッシュ１３４は、バス１３０を介して、カレント命令レジスタ(ＣＩＲ)１３６、１３８、１４０、１４２、１４４および１４６に連結される。ＣＩＲ１３６−１４６のそれぞれは、マルチスレッドプロセッサ中の１つの特定のスレッドに関連付けられている。特定の実施形態では、プロセッサ１００は6つのスレッドをもつ、インターリーブマルチスレッドプロセッサであり、ＣＩＲ１３６−１４６のそれぞれは、該インターリーブマルチスレッドプロセッサの1つのスレッドを含む。
【００１３】
ＣＩＲ１３６−１４６は、バス１０７を介してシーケンサ１０４に連結されている。特定の実施形態では、バス１０７は６４ビットバスであり、シーケンサ１０４は、３２ビットの長さをもつメモリ１０２から命令を検索するように構成される。バス１０７は、第１の命令実行ユニット１０８、第２の命令実行ユニット１１０、第３の命令実行ユニット１１２および第４の命令実行ユニット１１４に連結される。図１は、各命令実行ユニット１０８、１１０、１１２、１１４は、第１のバス１１８を介して汎用レジスタファイル１１６に連結できることを示す。汎用レジスタファイル１１６も第２のバス１２０を介してシーケンサ１０４およびメモリ１０２に連結できる。
【００１４】
特定の実施形態では、メモリ１０２は連想メモリ(content addressable memory：CAM)であり、命令キャッシュ１３４は複数の命令、各命令についての命令ステアリングデータ（instruction steering data）、及び各命令についての命令プレデコードデータ（instruction pre-decode data）を含むことができる。動作中、ＣＩＲ１３６−１４６は命令キャッシュ１３４から命令を取り出し、ＣＩＲ１３６−１４６はシーケンサ１０４により互いに無関係にアクセスすることができる。
【００１５】
特定の実施形態では、シーケンサ１０４は単純命令実行ユニット１０５を含む。シーケンサ１０４は、さらに、電力制御ロジック回路１０６を含む。さらに、シーケンサ１０４は制御レジスタ１０３に連結でき、制御レジスタ１０３は、プロセッサ１００に、いつ、単純命令実行ユニット１０５および電力制御ロジック回路１０６を選択的にアクティブにできるかを決定させることができる。
【００１６】
図１に描かれているように、汎用レジスタ１１６は、第１の統一レジスタファイル１４８、第２の統一レジスタファイル１５０、第３の統一レジスタファイル１５２、第４の統一レジスタファイル１５４、第５の統一レジスタファイル１５６および第６の統一レジスタファイル１５８を含む。各統一レジスタファイル１４８、１５０、１５２、１５４、１５６、１５８は、ＣＩＲ１３６−１４６のうちの１つに対応する。さらに、特定の実施形態では、各統一レジスタファイル１４８、１５０、１５２、１５４、１５６、１５８は、同じ構成を有し、等しい数のデータオペランドおよびアドレスオペランドを含む。
【００１７】
プロセッサ１００の動作中、命令はバス１３０を介してＣＩＲ１３６−１４６によって命令キャッシュ１３４からフェッチされる。その後、該命令はシーケンサによって処理され、指定された命令実行ユニット１０８、１１０、１１２、１１４に送られ、命令実行ユニット１０８、１１０、１１２、１１４で実行される。各命令実行ユニット１０８、１１０、１１２、１１４の結果は、汎用レジスタ１１６、すなわち、統一レジスタファイル１４８、１５０、１５２、１５４、１５６、１５８のうちの１つに、に書き込まれる。
【００１８】
特定の実施形態では、シーケンサ１０４は、制御レジスタ１０３中の値に基づき単純命令実行ユニット１０５を選択的にイネーブルにすることができる。イネーブルになると、単純命令実行ユニット１０５は、選択されたＣＩＲからの命令をデコードし、いつ、マルチステージデータ処理パイプラインで利用可能なステージの数より少ない数のステージを使用して該命令を実行できるかを決定する。その後、単純命令実行ユニット１０５は、該デコードされた命令の実行の間に、マルチステージデータ処理パイプラインの少なくとも1つのステージをスキップできる。パイプラインのステージをスキップするために、プロセッサ１００は、それぞれのＣＩＲ内に命令を、該命令を実行すべきステージまで、スキップされた１つまたは複数のステージのサイクルの間保持できる。単純命令実行ユニット１０５は、また、該デコードされた命令の実行の間に、少なくとも1つのスキップされないステージを実行できる。
【００１９】
特定の実施形態では、電力制御ロジック回路１０６は、スキップされたステージの間、マルチステージデータ処理パイプラインへの電力を低減できる。電力の低減は、該スキップされたステージへの動的電力を切ること、該スキップされたステージへの静的電力を切ること、あるいはその両方を含むことができる。電力制御ロジック回路１０６は、スキップされないマルチステージデータ処理パイプラインのステージの実行の前に、公称の動作レベルに電力を戻すことができる。
【００２０】
図２は、マルチステージデータ処理パイプラインで命令を実行するシステム２００の別の実施形態のブロック図を示している。特定の実施形態では、システム２００は、図１に示されたプロセッサ１００のようなマルチスレッドプロセッサに実装することができる。例えば、マルチステージデータ処理パイプラインは、シーケンサ１０４、および1つまたは複数の実行ユニット１０８、１１０、１１２および１１４を含むことができる。マルチステージデータ処理パイプラインは、ＣＩＲ１３６のようなＣＩＲから命令をフェッチし、該命令を処理し、レジスタファイル１４８のようなレジスタファイルに結果を格納できる。
【００２１】
特定の実施形態では、システム２００は、各スレッドがパイプラインの各ステージについて固定のタイムスロットを持つことができるインターリーブマルチスレッドプロセッサに実装することができる。各スレッドがその割り付けられたタイムスロットを使用する場合、スレッド間に衝突はない。インターリーブ処理を実装しない他のアーキテクチャは、システム２００を実装できるが、スレッド間に衝突があるかもしれない。他のアーキテクチャは衝突解決技術を実装しなければならない。
【００２２】
複数ステージ命令実行パイプラインでは、いくつかの命令は、命令を実行するパイプラインにおいて利用可能なハードウェアのすべてを必要とするとは限らない。特定の実施形態では、命令実行パイプラインは、パイプライン中の1つまたは複数のステージをスキップし、命令を実行するのに必要なステージのみを実行できる。パイプラインのステージをスキップするために、その命令は、該命令を実行すべきステージまで、スキップされた１つまたは複数のステージのサイクルの間、それぞれのＣＩＲに保持され得る。保持されるサイクルは、コントローラあるいは別個のタイミング回路のような制御ロジックによって決定することができる。別の特定の実施形態では、命令実行パイプラインは、１つの完全な命令を実行するのに必要な単一ステージのハードウェアの一部を実行するのみでもよい。実行された複数のステージまたは１つのステージの一部は、マルチステージ命令実行パイプラインの任意のステージでもよい。システム２００は、マルチステージ命令実行パイプラインの全ステージより少ない数のステージを使用して命令を実行する、パイプラインの３つの例を提供する。命令実行パイプラインの複数のステージをスキップすることは、各スレッドがパイプラインの各ステージについて固定のタイムスロットをもつことができる、インターリーブマルチスレッドプロセッサにおいて、特によく機能する。
【００２３】
システム２００は、第１のカレント命令レジスタ（ＣＩＲ）２０２を含む。第１のＣＩＲ２０２は、マルチスレッドプロセッサの第１のスレッドに関連付けることができる。第１のＣＩＲ２０２は、命令を実行する複数のステージを持つ第１の命令実行パイプラインを含む、第１のマルチプレクサ２０４および第２のマルチプレクサ２０６に連結できる。第１のＣＩＲ２０２は、また、第３のマルチプレクサ２３０、第４のマルチプレクサ２３８、第５のマルチプレクサ２６０および第６のマルチプレクサ２７０に連結することができる。特定の実施形態では、各命令実行パイプラインは、命令の実行に利用可能な６つのステージをもつことができる。インターリーブマルチスレッドプロセッサでは、命令実行パイプライン中の各ステージはパイプライン中で実行するために固定のタイムスロットを持つことができる。第１のマルチプレクサ２０４および第２のマルチプレクサ２０６の両方は、第１の命令実行パイプラインがどのＣＩＲから命令を受け取るのかを選択するための制御ライン２０５を持つことができる。制御ライン２０５は、マルチスレッドプロセッサの単一のスレッドの選択のために、図１に示したシーケンサ１０４のような制御ロジック回路に連結できる。
【００２４】
第１の命令実行パイプラインは、第１ステージ２１０、第２ステージ２１２、第３ステージ２１４、第４ステージ２１６、第５ステージ２１８および第６ステージ２２０を含む。第１の命令実行パイプラインは、マルチプレクサ２２４によって選択され得る２つの動作モードをもつ。第1の動作モードは第１ステージ２１０、第２ステージ２１２、第３ステージ２１４、第４ステージ２１６、第５ステージ２１８および第６ステージ２２０で命令を実行することを含む。第２の動作モードは、省電力モード２２１中に第１ステージ２１０、第２ステージ２１２、第３ステージ２１４、第４ステージ２１６および第５ステージ２１８をスキップし、次に、第６ステージ２２０を実行することを含む。省電力モード２２１は、複数のステージの実行に使用される1つまたは複数のクロックサイクルの長さがあってもよい。省電力モードの長さは、実行される命令に基づき可変でもよい。マルチプレクサ２２４は、第２の動作モード中に、第１のＣＩＲ２０２から第６ステージ２２０の入力に選択的に命令を提供でき、あるいは、第１の動作モード中に、第５ステージ２１８から第６ステージ２２０の入力に出力を供給できる。マルチプレクサ２２４は、第１の動作モードと第２の動作モードのどちらが選択されるかを選択するための制御ライン２２３を持つことができる。制御ライン２２３は、第１の動作モードあるいは第２の動作モードを選択するために、図１に示したシーケンサ１０４のような制御ロジック回路に連結できる。第６ステージ２２０の出力は、レジスタファイル２２６に連結できる。
【００２５】
実例となる特定の実施形態では、システム２００は、さらに、マルチスレッドプロセッサの第２のスレッドに関連付けられている第２のＣＩＲ２２８を含むことができる。第２のＣＩＲ２２８は、第1のマルチプレクサ２０４、第２のマルチプレクサ２０６、第３のマルチプレクサ２３０、第４のマルチプレクサ２３８および第５のマルチプレクサ２６０に連結できる。第３のマルチプレクサ２３０および第４のマルチプレクサ２３８は、命令を実行する複数のステージをもつ第２の命令実行パイプラインを含む。第３のマルチプレクサ２３０および第４のマルチプレクサ２３８のそれぞれは、第２の命令実行パイプラインがどのＣＩＲから命令を受けとるのかを選択するための制御ライン２２９を持つ。制御ライン２２９は、マルチスレッドプロセッサの単一スレッドを選択するための制御ロジック回路に連結できる。
【００２６】
第２の命令実行パイプラインは、第１ステージ２４０、第２ステージ２４２、第３ステージ２４４、第４ステージ２４６、第５ステージ２４８および第６ステージ２５０を含む。第２の命令実行パイプラインは、マルチプレクサ２５２によって選択され得る２つの動作モードをもつ。第１の動作モードは、第１ステージ２４０、第２ステージ２４２、第３ステージ２４４、第４ステージ２４６、第５ステージ２４８および第６ステージ２５０で、命令を実行することを含む。
【００２７】
第２の動作モードは、省電力モード２３２中に、第１ステージ２４０、第２ステージ２４２および第３ステージ２４４をスキップし、次に、第４ステージ２４６、第５ステージ２４８および第６ステージ２５０を実行すること、を含む。省電力モード２３２は、スキップされた複数のステージの実行に使用された、1つまたは複数のクロックサイクルの長さがあってもよい。省電力モードの長さは、実行される命令に基づき可変でもよい。マルチプレクサ２５２は、第２の動作モード中に、第２のＣＩＲ２２８から第４ステージ２４６の入力に選択的に命令を提供でき、あるいは第１の動作モード中に、第３ステージ２４４から第４ステージ２４６の入力に出力を供給できる。マルチプレクサ２５２は、第１の動作モードと第２の動作モードのどちらが選択されるかを選択するための制御ライン２５１を持つことができる。制御ライン２５１は、第１の動作モードあるいは第２の動作モードを選択するために、図１に示したシーケンサ１０４のような制御ロジック回路に連結できる。第６ステージ２５０の出力はレジスタファイル２２６に連結できる。
【００２８】
別の実例となる実施形態では、システム２００は、第５のマルチプレクサ２６０および第６のマルチプレクサ２７０を含む第３の命令実行パイプラインを持つことができる。第５のマルチプレクサ２６０および第６のマルチプレクサ２７０は、第３の命令実行パイプラインがどのＣＩＲから命令を受けとるのかを選択するための制御ライン２６２を持つことができる。制御ライン２６２は、マルチスレッドプロセッサの単一のスレッドを選択するための制御ロジック回路に連結できる。
【００２９】
第３の命令実行パイプラインは、第１ステージ２７２、第２ステージ２７４、第３ステージ２７６、第４ステージ２７８、第５ステージ２８０および第６ステージ２８２を含む。第３の命令実行パイプラインは、マルチプレクサ２６８によって選択され得る２つの動作モードをもつ。マルチプレクサ２６８は、第１の動作モードと第２の動作モードのどちらが選択されるかを選択するための制御ライン２６９を持つことができる。制御ライン２６９は、第１の動作モードあるいは第２の動作モードを選択するために、図１に示したシーケンサ１０４のような制御ロジック回路に連結できる。
【００３０】
第１の動作モードは、第1ステージ２７２、第２ステージ２７４、第３ステージ２７６、第４ステージ２７８、第５ステージ２８０および第６ステージ２８２で命令を実行することを含む。第２の動作モードは命令実行ステージ２６６を含む。命令実行ステージ２６６は、第３の命令実行パイプラインの任意のステージまたは１つのステージの一部でもよい。命令実行ステージ２６６以外のパイプラインのステージはスキップされ得、省電力モード２６４はエネルギーを節約するために実装され得る。例えば、６ステージパイプラインでは、命令実行ステージ２６６は、第３の命令実行パイプラインの第３ステージあるいは第３ステージの一部でもよい。したがって、第１、第２、第４、第５、及び第６ステージはスキップされ得、それらのステージが実行したであろう時間に、省電力モードが実装できる。マルチプレクサ２６８は、レジスタファイル２２６に、第１の動作モードの出力あるいは第２の動作モードの出力を選択的に供給できる。
【００３１】
特定の実施形態において、システム２００は、２つのスレッドをもつ実施形態を示すが、システム２００は任意の数のスレッドをサポートするために拡張できる。特定の実施形態では、システム２００は６つのスレッドを含む。
【００３２】
動作中、ＣＩＲ２０２からの第１の命令はデコードされて、いつ、第１の命令実行パイプラインにおいて利用可能なステージの数より少ない数のステージを使用して該命令を実行することができるかを決定する。該命令のオペコード（opcode）は、該命令を実行するために必要とされるステージの数を決定するためにリード（read）される。特定の実施形態では、該命令はライトオンリー（write only）命令である。別の特定の実施形態では、該命令はレジスタファイルリード（read）を含まない命令である。さらに別の特定の実施形態では、該命令はコンバイン（combine）命令である。
【００３３】
第１の命令実行パイプラインにおいて利用可能なステージの数より少ない数のステージを使用し、しかも、第２の動作モードにおいて利用可能なステージを使用するだけで、該命令を実行できるとき、制御ライン２２３が、該命令の実行に第２の動作モードを選択するためにアクティブにされる。その後、第１のＣＩＲ２０２は、第１のマルチプレクサ２０４へ命令を渡す。制御ライン２０５が第１のＣＩＲ２０２に対応するスレッドを選択するとき、第１のマルチプレクサ２０４は、第１のＣＩＲ２０２からの命令をマルチプレクサ２２４へ提供する。
【００３４】
第１のパイプラインの第２の動作モードでの命令の実行中に、システム２００は、命令を実行する必要がないステージによって消費される電力を低減するために、省電力モード２２１を入力することにより、第１の命令実行パイプラインへの電力を低減できる。省電力モード２２１は、パワーダウン（power down）ステージの間、動的電力を切ること、パワーダウンステージの間、静的電力を切ること、あるいはその両方を含むことができる。電力は、実行される必要のあるステージに先立って、動作レベルに戻すことができる。省電力モード２２１が終了した後、第６ステージ２２０は命令を実行し、レジスタファイル２２６に提供されるために、マルチプレクサ２２４に出力を提供する。インターリーブマルチスレッドプロセッサでは、省電力モード２２１は、スキップされたステージおよび第６ステージ２２０に割り当てられたタイムスロットに基づいて終了される。特定の実施形態では、第６ステージ２２０は、レジスタファイル・ライト実行を含む。
【００３５】
第１の命令実行パイプライン中のステージ数より少ない数のステージを使用して、該命令を実行することができないとき、制御ライン２２３は、該命令を実行するために第１の動作モードを選択すべくアクティブにされる。その後、第１のＣＩＲ２０２は、第２のマルチプレクサ２０６へ該命令を渡す。第２のマルチプレクサ２０６は、第１のＣＩＲ２０２からの該命令を、該命令を実行するために、命令実行ステージ２１０に提供する。次に、その命令は、命令実行ステージ２１０、２１２、２１４、２１６、２１８および２２０によって実行され、その後、レジスタファイル２２６に記憶すべき出力を送る。
【００３６】
第２のＣＩＲ２２８からの命令は、第１のＣＩＲ２２８に関する上記説明と同様に実行できる。さらに、第３のマルチプレクサ２３０、第４のマルチプレクサ２３８、第２の命令実行パイプラインおよびマルチプレクサ２５２の動作は、上記説明と同様に動作する。しかし、図２に示したように、第２の命令実行パイプラインの第２の動作モードは、実行することができる３つのステージ(第４ステージ２４６、第５ステージ２４８および第６ステージ２５０）をもつ。
【００３７】
第３の命令実行パイプラインも、上記説明と同様に動作できる。第３の命令実行パイプラインの第１の動作モードにおいて利用可能なステージ数より少ない数のステージを使用して、ＣＩＲからの命令を実行することができ、しかも、命令は、第２の動作モードでの実行に利用可能なステージ、複数のステージまたは１つのステージのうちの一部のみを使用して実行できるとき、第２の動作モードがマルチプレクサ２６８によって選択できる。第３の命令実行パイプラインの第２の動作モードを使用して、ＣＩＲからの命令を実行することができないとき、第１の動作モードがマルチプレクサ２６８によって選択される。
【００３８】
図３は、マルチステージデータ処理パイプラインで命令を実行する方法３００の実施形態のフローチャートを示す。方法３００は、３０２で、マルチステージデータ処理パイプラインで利用可能なステージ数より少ない数のステージを使用して命令を実行することができるときを決定するために、該命令をデコードすることを含む。特定の実施形態では、該デコードすることは命令の実行に先立って行なわれる。別の特定の実施形態では、該デコードすることは、命令のオペコードを識別することにより命令を決定することを含む。さらに別の実施形態では、該命令はカレント命令レジスタ(CIR)から受け取られる。
【００３９】
方法３００は、さらに、３０４で、デコードされた命令の実行の間に、マルチステージデータ処理パイプラインの少なくとも1つのステージをスキップすることを含む。該スキップされた少なくとも1つのステージは、マルチステージデータ処理パイプラインの第１ステージ、最終ステージ、あるいは第１ステージと最終ステージとの間のステージでもよい。
【００４０】
該方法は、さらに、３０６で、該デコードされた命令の実行の間に、少なくとも1つのスキップされないステージを実行することを含む。特定の実施形態では、命令はライトオンリー命令である。別の特定の実施形態では、命令はレジスタファイルリードを含まない命令である。さらに別の特定の実施形態では、命令はコンバイン命令である。
【００４１】
特定の実施形態では、方法３００は、３０８で、該少なくとも1つのスキップされたステージの間、マルチステージデータ処理パイプラインへの電力を低減することを含む。別の特定の実施形態では、該電力を低減することは、該少なくとも1つのスキップされたステージへの動的電力を切ることを含む。さらに別の特定の実施形態では、該電力を低減することは、該少なくとも1つのスキップされたステージへの静的電力を切ることを含む。方法３００は、スキップされないマルチステージデータ処理パイプラインの１つのステージに先立って、電力を増加することを含む。
【００４２】
特定の実施形態では、マルチステージデータ処理パイプラインは、インターリーブマルチスレッドプロセッサ中の複数のマルチステージデータ処理パイプラインのうちの1つである。さらに、マルチステージデータ処理パイプラインは、複数のスレッドのうちの少なくとも１つから命令を受けとるように構成されている。
【００４３】
図４は、図１−３に関して説明したように、マルチステージデータ処理パイプラインで命令を実行する装置及びマルチステージデータ処理パイプラインで命令を実行する方法を用いるポータブル通信装置の典型的で限定されない実施形態を示し、これは通常、４００と示されている。ポータブル通信装置４００は、(図１−３に関して説明されたように)単純命令実行ユニット４１２および電力制御ロジック４１４をもつデジタル信号プロセッサ４１０のようなプロセッサを含む、オンチップシステム４２２を含む。図４は、さらに、上記デジタル信号プロセッサ４１０およびディスプレイ４２８に連結されるディスプレイコントローラ４２６を示す。さらに、入力デバイス４３０はデジタル信号プロセッサ４１０に連結される。さらに、メモリ４３２はデジタル信号プロセッサ４１０に連結される。コーダ/デコーダ（ＣＯＤＥＣ）４３４もデジタル信号プロセッサ４１０につなぐことができる。スピーカ４３６およびマイクロホン４３８はＣＯＤＥＣ  ４３４につなぐことができる。図４は、さらに、無線コントローラ４４０がデジタル信号プロセッサ４１０および無線アンテナ４４２に連結されることを示す。特定の実施形態では、電源４４４はオンチップシステム４４２に連結される。特定の実施形態において、図４に示したように、ディスプレイ４２８、入力デバイス４３０、スピーカ４３６、マイクロホン４３８、無線アンテナ４４２および電源４４４は、オンチップシステム４２２の外部にある。しかし、それぞれは、オンチップシステム４２２のコンポーネントに連結されている。
【００４４】
特定の実例となる実施形態では、単純命令実行ユニット４１２は、マルチステージデータ処理パイプラインで利用可能なステージ数より少ない数のステージを使用して命令が実行されるときを決定するために、該命令をデコードする。次に、単純命令実行ユニット４１２は、該デコードされた命令の実行の間、マルチステージデータ処理パイプラインの少なくとも1つのステージをスキップする。単純命令実行ユニット４１２は、また、該デコードされた命令の実行の間、少なくとも1つのスキップされていないステージを実行できる。別の特定の実施形態では、電力制御ロジック４１４は、該少なくとも1つのスキップされたステージの間、マルチステージデータ処理パイプラインへの電力を低減する。該電力を低減することは、該少なくとも１つのスキップされたステージへの動的電力を切ることを含むことができる。該電力を低減することは、さらに、該少なくとも１つのスキップされたステージへの静的電力を切ることを含むことができる。電力制御ロジック４１４は、スキップされないマルチステージデータ処理パイプラインの１つのステージでの実行の前に、電力を増加することができる。
【００４５】
当業者は、ここに開示に関連して述べられた様々な例示の論理ブロック、構成、モジュール、回路、及びアルゴリズムステップが電子ハードウェア、コンピュータソフトウェア、または双方の組合せとして実施されることを認識するであろう。ハードウェア及びソフトウェアのこの互換性を明確に例証するために、様々な例示のコンポーネント、ブロック、構成、モジュール、回路、及びステップは一般にそれらの機能に関して上で述べられてきた。そのような機能がハードウェアまたはソフトウェアとして実施されるか否かは特定のアプリケーション及び全体システムに課せられた設計制限に依存する。熟練者は記述した機能を特定の各アプリケーションのために様々な方法で実施するかもしれないが、そのような実施決定は本開示の範囲から逸脱するものと解釈されるべきでない。
【００４６】
ここに開示に関連して述べた方法またはアルゴリズムのステップは直接ハードウェアにおいて、プロセッサによって実行されるソフトウェアモジュールにおいて、またはその２つの組合せにおいて具体化される。ソフトウェアモジュールはＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、または当技術分野で既知である他の形の任意の記憶メディアに在駐する。典型的記憶メディアはプロセッサ記憶メディアから情報を読出し、そして記憶メディアへ情報を書込むためにプロセッサへ結合される。これに代るものでは、記憶メディアはプロセッサへ一体化される。プロセッサ及び記憶メディアはＡＳＩＣに在駐する。ＡＳＩＣはコンピュータ機器またはユーザ端末に在駐する。これに代るものでは、プロセッサ及び記憶メディアはコンピュータ機器またはユーザ端末において個別部品（discrete component）として在駐する。
【００４７】
開示された実施形態の前述の説明は、任意の当業者が開示された実施形態を作るか使用することを可能にするために提供される。これら実施形態への様々な修正は当業者には直ちに明白であり、そしてここに定義された一般的原理はその開示の精神または範囲から逸脱することなく他の実施形態に適用できる。従って、本開示は、ここに示した実施形態に限定されることを意図していないが、次のクレームにより定義されるような原理及び新規な特徴と一致する可能性のある最も広い範囲を与えられるべきである。
【図１】
2010538398.tif 000003
【図２】
2010538398.tif 000004
【図３】
2010538398.tif 000005
【図４】
2010538398.tif 000006
2010538398.tif 000007
2010538398.tif 000008
2010538398.tif 000009
2010538398.tif 000010
【国際調査報告】
2010538398.tif 000011
2010538398.tif 000012
2010538398.tif 000013