(57)【要約】マルチスレッドシステムの各スレッドについてのマルチモードレジスタファイルが記述される。１つの実施形態では、マルチモードレジスタファイルは第１のモード内のスレッドについてのオペランドを含む。マルチモードレジスタファイルは第２のモード内のオペランドを置換する分岐予測情報をさらに含む。
2011521382.tif 000002
【特許請求の範囲】
【請求項１】
第１のモード内に蓄積されたオペランド；および
補助情報、ここにおいて前記補助情報は第２のモード内の前記オペランドを置換する、
を具備するマルチモードレジスタファイル。
【請求項２】
前記補助情報は分岐予測情報である、請求項１記載のマルチモードレジスタファイル。
【請求項３】
前記分岐予測情報は、
分岐ターゲットキャッシュ；および
分岐履歴表、
を具備する、請求項２記載のマルチモードレジスタファイル。
【請求項４】
前記レジスタファイルはマルチスレッドアーキテクチャ内の複数のレジスタファイル内にある、請求項２記載のマルチモードレジスタファイル。
【請求項５】
前記オペランドは前記マルチスレッドアーキテクチャによって実行されるべきオペレーションのパイプラインの１オペレーションからである、請求項４記載のマルチモードレジスタファイル。
【請求項６】
前記マルチスレッドアーキテクチャは、
前記マルチモードレジスタファイルが前記第１のモードにあるかどうかを決定する；および
もし前記マルチモードレジスタファイルが前記第１のモードにないことを決定したならば前記マルチモードレジスタファイルが前記第２のモードにあるかどうかを決定する、
ように構成される、請求項５記載のマルチモードレジスタファイル。
【請求項７】
前記複数のレジスタファイルのおのおのはマルチモードレジスタファイルである、請求項４記載のマルチモードレジスタファイル。
【請求項８】
前記マルチスレッドアーキテクチャは前記第２のモードに入るべき前記レジスタファイルの優先度を決定するように構成される、請求項７記載のマルチモードレジスタファイル。
【請求項９】
前記複数のレジスタファイルは前記第２のモードにおいて複数のレジスタファイルの間で前記分岐予測情報を分割するように構成される、請求項８記載のマルチモードレジスタファイル。
【請求項１０】
第１のモードの間マルチモードレジスタファイルによってオペランドを蓄積すること；および
第２のモード内の前記マルチモードレジスタファイルによって前記オペランドを補助情報で置換すること、
を具備する方法。
【請求項１１】
前記補助情報は分岐予測情報である、請求項１０記載の方法。
【請求項１２】
前記分岐予測情報は
分岐ターゲットキャッシュ；および
分岐履歴表、
を具備する、請求項１１記載の方法。
【請求項１３】
前記マルチモードレジスタファイルが前記第１のモードにあるかどうかを決定すること；および
もし前記マルチモードレジスタファイルが前記第１のモードにないことを決定したならば前記マルチモードレジスタファイルは前記第２のモードにあるかどうかを決定すること、
をさらに具備する、請求項１１記載の方法。
【請求項１４】
前記レジスタファイルはマルチスレッドアーキテクチャ内の複数のマルチモードレジスタファイル内にある、請求項１１記載の方法。
【請求項１５】
前記複数のレジスタファイルのおのおのが前記第１のモードにあるかどうかを決定すること；および
前記第１のモードにない前記複数のレジスタファイルのおのおのについて各レジスタファイルが前記第２のモードにあるかどうかを決定すること、
をさらに具備する、請求項１４記載の方法。
【請求項１６】
前記第２のモード内の複数のレジスタファイル間で前記分岐予測情報を分割することをさらに具備する、請求項１５記載の方法。
【請求項１７】
第１のモードの間中オペランドを蓄積するための手段；および
前記オペランドを第２のモード内の補助情報で置換するための手段、
を具備する、マルチモードレジスタファイル。
【請求項１８】
前記補助情報は分岐予測情報である、請求項１７記載のマルチモードレジスタファイル。
【請求項１９】
前記マルチモードレジスタファイルが前記第１のモードにあるかどうかを決定するための手段；および
もし前記マルチモードレジスタファイルが前記第１のモードにないことを決定したならば前記マルチモードレジスタファイルは前記第２のモードにあるかどうかを決定するための手段、
をさらに具備する、請求項１８記載のマルチモードレジスタファイル。
【請求項２０】
請求項１９記載のマルチモードレジスタファイル：
前記第２のモードに入るべき複数のマルチモードレジスタファイルのおのおのについて前記優先権を決定するための手段をさらに具備し、ここにおいて前記マルチモードレジスタファイルは複数のマルチモードレジスタファイルの１つである、請求項１９記載のマルチモードレジスタファイル。
【請求項２１】
マルチスレッドシステムであって、
前記マルチスレッドシステムの各スレッドについてのマルチモードレジスタファイル、ここにおいて前記マルチモードレジスタファイルは第１のモード内の前記スレッドについてのオペランドおよび第２のモード内の異なるスレッドについての分岐履歴表を蓄積するように構成される；および
前記マルチモードレジスタファイルが前記第１のモードまたは前記第２のモードにあるかどうかを決定するために各マルチモードレジスタファイルについてのマルチモードレジスタファイルレジスタ、
を具備するマルチスレッドシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この中に開示された発明概念の実施形態は一般にデータ処理システムの分野に関する。より具体的には、この中に開示された発明概念の実施形態はマルチモードレジスタファイルに関する。
【背景技術】
【０００２】
プロセッサ内で命令を処理するために、処理のステージは（命令を得るために）フェッチする、（命令をオペレーションおよび複数オペランド、例えば、オペランドＡプラスオペランドＢに分類するために）デコードする、レジスタファイルからオペランドを検索する、命令を実行する、およびその結果（例えば、オペランドＡプラスオペランドＢの合計）をライトバック（writeback）することを含むことができる。パイプライニングの前に、プロセッサは次の命令に進む前に１つの命令についてのステージのすべてを実行するであろう。計算速度を増加させるべく、パイプラインは１命令を種々のステージの処理に分けるために複数プロセッサ内で実施された。従って、１つの命令を処理する１つのステージは、次の命令を処理するもう１つのステージが同じクロックサイクルの間に実行されるのと同時に実行されることができる。例えば、第１の命令が第１のクロックサイクルの間にデコードされる一方で、第２の命令は第１のクロックサイクルの間にフェッチされることができる。その後、オペランドが第２のクロックサイクルの間に第１の命令についてレジスタファイルから検索されている一方で、第２の命令はデコードされることができ、そして第３の命令は第２のクロックサイクルの間フェッチされることができる。パイプライニングによる複数の命令の同時処理はプロセッサの計算速度を増加さることができる。
【０００３】
分岐命令はプログラム内の異なる位置で命令を計算し始めることにプロセッサを向けることができる。例えば、分岐命令である第５の命令は第２０番目の命令を処理し始めるためにプロセッサをジャンプすることができる。けれども、パイプライニングを使用して、プロセッサは分岐命令を実行する前に次の命令（例えば、命令６，７，および８）を検索してデコードし始めることができる。従って、もし分岐が必要とされれば、処理されている最中の命令は取り除かれ、そして分岐された新命令が処理される。処理されるべきでない命令を処理することは時間を要し、したがって処理速度に影響を及ぼす。さらに、誤推測の命令もエネルギーを浪費する。
【０００４】
結果として、プロセッサは分岐命令後のどの命令がフェッチされるべきかをプロセッサについて予測する（即ち、分岐が必要とされるか否かを決定する）ために分岐予測ロジックを含むことができる。分岐予測ロジックはプロセッサが失敗した分岐のための命令を間違ってフェッチする回数を減らす。分岐予測ロジックは分岐履歴表および／または分岐ターゲットキャッシュを含むことができる。分岐履歴表は予測されるべき各分岐命令についての分岐履歴のある変更を蓄積する。分岐履歴は分岐が各分岐命令の実行のために必要とされるかまたはされないかの記録である。分岐履歴表は２ビット・バイ・ｎビット（two by net bit）のテーブルであってもよく、ここにおいてｎ列のおのおのはプログラムの異なる分岐命令に対応し、そしてｎ列のおのおのについての２ビットはその列に対応する分岐命令について分岐を必要とするか否かを予測するためにプロセッサによって使用される。より多くの列は、より多くの分岐命令が予測されうることを意味する。２つのビットは、等しい１−１は分岐を必要とすると予測することを意味し、０−０は分岐を必要としないと予測することを意味し、そして１−０または０−１は不確かを意味しうるカウンタとして動作することができる。それらのビットは、予測されるべき各分岐命令について分岐履歴を観察することによって訓練される。もし分岐が必要とされれば、その時カウンタは（１−１に達するまで）増加される。もし分岐が必要とされなければ、その時カウンタは（０−０に達するまで）減少される。
【０００５】
分岐ターゲットキャッシュは予測されるべき各分岐命令についての通報受端を蓄積する。１つの実施形態では、分岐ターゲットキャッシュは分岐ターゲットキャッシュの列またはレジスタの数（例えば、分岐ターゲットごとに１列またはレジスタ）に等しい数の分岐命令について通報受端を蓄積することができる。分岐ターゲットキャッシュは１分岐命令について１分岐によって指摘された命令のアドレスを蓄積することができる。プロセッサ内に分岐履歴表および／または分岐ターゲットキャッシュを含むことと共に１つの問題は分岐履歴表および分岐ターゲットキャッシュが追加のロジックであることであり、従ってプロセッサの面積およびそれによる電力消費を増加させることである。
【発明の概要】
【０００６】
１実施形態では、マルチモードレジスタファイルが記述される。マルチモードレジスタファイルは第１のモードの間１オペランドを含む。マルチモードレジスタファイルはさらに第２のモード内のオペランドを置換する補助情報を含む。
【０００７】
この中で開示された１つまたは複数の実施形態の利点は分岐予測ロジックおよび電力保存を含むための回路への最小のサイズ増加を含むことができる。
【０００８】
この実例となる実施形態はこの中に開示された発明の概念を制限または限定することはないが、しかしそれの理解を助けるべく実例を提供することに言及される。本開示の他の局面、利点、および特徴は、以下のセクション：図面の簡単な説明、詳細な説明、および請求項を含む、本願全体を検討した後に明白になるであろう。
【０００９】
これらのおよび他の特徴、局面、およびこの中に開示された本発明の概念の利点は以下の詳細説明が添付図面を参照して読まれる時によりよく理解される。
【図面の簡単な説明】
【００１０】
【図１】図１は、分岐予測を実施するためのプロセッサ内の例示的な回路を示す概略図である。
【図２】図２は、図１における概略図の例示的なレジスタファイルユニットを示す概略図である。
【図３】図３は、図１における概略図の例示的なレジスタファイルユニットを示す代替の概略図である。
【図４】図４は、第１のモードにおける使用のためのまたは第２のモードにおける使用のための図３における概略図のレジスタファイルの例示的な分離を示す概略図である。
【図５】図５は、１つのマルチモードレジスタファイル内で情報を蓄積するための例示的な方法を示すフローチャートである。
【図６】図６は、マルチモードレジスタファイルの各モードによる複数のマルチモードレジスタファイル内の情報を蓄積するための例示的な方法を示すフローチャートである。
【図７】図７は、マルチモードレジスタファイルを含むことができるディジタル信号プロセッサを組み込んでいる１例の携帯型通信装置を示す一般的な図である。
【図８】図８は、マルチモードレジスタファイルを含むことができるディジタル信号プロセッサを組み込んでいる１例のセルラー電話機を示す一般的な図である。
【図９】図９は、マルチモードレジスタファイルを含むことができるディジタル信号プロセッサを組み込んでいる１例の無線インターネットプロトコル電話機を示す一般的な図である。
【図１０】図１０は、マルチモードレジスタファイルを含むことができるディジタル信号プロセッサを組み込んでいる１例の携帯型ディジタルアシスタントを示す一般的な図である。
【図１１】図１１は、マルチモードレジスタファイルを含むことができるディジタル信号プロセッサを組み込んでいる１例のオーディオファイルプレーヤーを示す一般的な図である。
【詳細な説明】
【００１１】
明細書全体を通して、説明のため、この中に開示された発明の概念の徹底的な理解を提供するために多数の特定の詳細が述べられる。しかしながら、この中に開示された発明の概念がいくつかのこれらの特定の詳細無しに実行されうることはこの分野の技術者には明白であるだろう。他の事例では、周知の構成および装置がこの中に開示された発明の概念の基礎をなす原理を不明瞭にすることを避けるためにブロック図の形式で示される。
【００１２】
この中に開示された発明の概念の実施形態は分岐予測における使用のためのマルチモードレジスタファイルに関連する。プロセッサの各スレッドはそれ自身のレジスタファイルを有することができる。例えば、６スレッドプロセッサは６レジスタファイルを有することができる。スレッドの実行中、レジスタファイルはスレッド用のプロセッサによって退けられたオペランドを蓄積する。例えば、命令／オペレーション“オペランドＡプラスオペランドＢ”について、レジスタファイルは後の検索のためにその合計を蓄積ことができる。
【００１３】
マルチスレッドアーキテクチャでは、すべてのスレッドが同時に実行しなくもよい。例えば、オーディオファイルを聞くことは１つのスレッドを動作させることができるが、しかし他のスレッドは必要とされないかもしれない。したがって、１つの実施形態では、インアクティブスレッドに関連するレジスタファイルはそれぞれのアクテイブスレッドに対応しない、分岐予測情報のような、補助情報を蓄積するために使用されることができる。分岐予測情報は動作中の命令の流れについての分岐を予測するためにプロセッサによって使用されることができる。結果として、マルチスレッドアーキテクチャのレジスタファイルは、第１のモードでは、それのそれぞれのスレッドのためのオペランドを蓄積し、あるいは第２のモードでは、分岐予測情報のような、補助情報を蓄積していることができる。
【００１４】
分岐予測情報は分岐履歴表および／または分岐ターゲットキャッシュを含むことができる。マルチモードレジスタファイルが第２のモードにありそして分岐予測情報を蓄積している時に、レジスタファイルは分岐履歴表およびアクティブスレッドのための分岐ターゲットキャッシュの１つまたは両方を蓄積することができる。結果として、レジスタファイル内に蓄積されたテーブルはこのレジスタファイルと関連しないアクティブスレッド内の分岐を予測するために使用される。一度第２のモード内のレジスタファイルに対応するスレッドは再びアクティブになるべきであり(即ち、このスレッドの命令はプロセッサによって実行されるべきであり)、新しくアクティブなスレッドのためのオペランドを蓄積するためにこのレジスタファイルは第２のモードから第１のモードに切り替えられる。１つの実施形態では、レジスタファイルが第１のモードに切り替わる時に、レジスタファイル内に蓄積された任意の補助情報はマルチスレッドアーキテクチャ内の現在インアクティブなスレッドのための１つまたは複数のレジスタに転送されることができる。もう１つの実施形態では、レジスタファイル内に蓄積された全部または一部の補助情報は失われるかもしれない。分岐予測情報の損失がプロセッサに分岐予測情報を再編集させる一方で、分岐予測の正当性はプロセッサがそのような情報を再編集する時に保証される。
【００１５】
もしマルチスレッドアーキテクチャの全スレッドがアクティブであれば、その時レジスタファイルのすべてはそれらそれぞれのスレッドのためのオペランドを蓄積している第１のモード内にある。結果として、どのレジスタファイルも分岐予測情報を蓄積するために第２のモード内にはないので分岐予測は実行されることはできない。他方、複数のスレッドはインアクティブであることができ、そしてインアクティブスレッドのためのレジスタファイルの全部とは限らず分岐予測情報を蓄積するために必要であるかもしれない。従って、プロセッサはどのレジスタファイルが第２のモード内にあるべきかに優先順位をつけるための（例えば、分岐予測情報を蓄積するための）ロジックを含むことができる。さらに、プロセッサはどのスレッドが命令ストリームを実行すべきかそしてどのスレッドがインアクティブであるべきかを決定するためのロジックを含み、従って複数のスレッドの間で命令実行に優先順位をつけることができる。
【００１６】
図１〜４の概略図は分岐予測を実施するためのプロセッサ内の例示的な回路の実施形態を示す。図１の概略図は分岐予測のためのプロセッサ１００内の例示的な回路を示す。図２の概略図は図１内の概略図の例示的なレジスタファイルユニット１０２を示し、ここにおいてレジスタファイルユニット１０２は複数のレジスタファイルを含む。図３の概略図は複数のレジスタファイルおよびそれらのそれぞれのレジスタファイルレジスタを含んでいる図１内の概略図の例示的なレジスタファイルユニット１０２を示す。図４の概略図は第１のモード内での使用のためのまたは第２のモード内での使用のための図３におけるレジスタファイルユニット１０２のレジスタファイルの例示的な分離を示す。
【００１７】
プロセッサ１００（図１）は分岐を予測するための分岐予測ロジックを含むことができ、ここにおいて分岐予測情報１０４はレジスタファイルユニット１０２内に蓄積される。このロジックはプロセッサ１００内に含まれた他の演算回路のほかにあってもよい。以前に述べたように、分岐予測情報１０４は分岐履歴表および分岐ターゲットキャッシュの１つまたは両方であってもよい。もう１つの実施形態では、分岐予測情報はプロセッサに分岐を予測することを試みさせるための任意の情報であってもよい。図１では、分岐予測情報１０４は分岐ターゲットキャッシュである。レジスタファイルユニット１０２はレジスタファイルユニット１０２からデータを読み出すための読出しポート１０６、レジスタファイルユニット１０２にデータを書き込むための書込みデータポート１０８、およびアクセス（読出しまたは書込み）されるべきレジスタファイルユニット１０２の特定のアドレスを識別するためのアドレスバス１１０を含む。図示されたように、レジスタファイルユニット１０２は制御ロジック１１２に結合されてもよい。
【００１８】
１つの実施形態では、制御ロジック１１２は分岐命令が命令パイプライン１１４からの命令を処理することに出会うかどうかおよび分岐が出会った分岐命令について予測されるべきかどうかを決定する。１つの実施形態では、分岐命令はパイプライン内の命令の復号の間に決定される。分岐が出会われるかどうかの決定において、制御ロジック１１２は出会った命令のアドレスが分岐命令の既知のアドレスと一致するかどうかを決定できる。１つの実施形態では、出会った命令のアドレスはその命令のプログラムカウンタ１１６から引き出されることができる。既知の分岐命令のアドレスは分岐予測情報１０４からまたは別個のリストからアクセスされることができる。もし出会った命令のアドレスが分岐命令のアドレスと一致すれば、その時制御ロジック１１２は出会った命令が分岐命令であると想定する。
【００１９】
プロセッサ１００はその後この分岐履歴情報１０４をアクセスすることによってこの分岐の通報受端を決定できる。１つの実施形態では、プロセッサ１００は予測情報１１８についてレジスタファイルユニット１０２をアクセスするためにアドレスバス１１０上に送られるべき分岐命令についてのプログラムカウンタ１１６からのアドレスを作り出す。分岐予測情報１０４は（分岐のターゲットアドレスを含む）分岐アクセス表を含むので、予測情報１１８は出会った分岐命令についてのターゲットアドレスを含む。もし分岐が必要とされるようならば、その時予測情報１１８からのターゲットアドレスは分岐を獲得することに使用される。
【００２０】
マルチプレクサ１２０は分岐が必要とされるべきかどうかを決定することができ、ここにおいてマルチプレクサ１２０への制御入力は分岐履歴情報であってもよい。マルチプレクサ１２０への１つの入力は予測情報１１８からのターゲットアドレスであってもよい。１つの実施形態では、もし分岐が必要とされないならばマルチプレクサは分岐予測１２４上にロジックゼロを出力するように、マルチプレクサ内へのもう１つの入力はロジックゼロ（例えば、地気）である。もう１つの実施形態では、もし分岐が必要とされないならばマルチプレクサ１２０は分岐予測１２４上に高インピーダンス信号を出力するように構成される。
【００２１】
図１の概略図では、分岐履歴情報はプログラムカウンタ１１６内に蓄積されることができる。例えば、（分岐履歴表として以前に記述されたような）出会った分岐についての２ビット分岐履歴はプログラムカウンタ１１６内に蓄積されることができる。結果として、この回路は分岐が必要とされようが必要とされまいがマルチプレクサ１２０が分岐予測１２４上に出力するのを制御するために制御１２２上にプログラムカウンタ１１６からの分岐履歴情報を出力することができる。例えば、もしプログラムカウンタ内の分岐履歴の２ビットが１−１であれば、その時制御１２２は分岐を必要とすべき予測を分岐予測１２４上に出力するためにマルチプレクサ１２０を切り替えるための信号を含む。
【００２２】
１つの実施形態では、もし分岐が必要とされるべきである（例えば、分岐履歴が１−１に等しい）ならば、それを制御ロジック１１２にフィードバックするためにターゲットアドレスが分岐予測１２４に送られる。制御ロジック１１２はその後分岐が必要とされべきであることをこの信号から決定して、ストリームをターゲットアドレスにある命令にジャンプする。もう１つの実施形態では、ロジック１は制御ロジック１１２について分岐が必要とされるべきであることを決定するために分岐予測１２４を介して制御ロジック１１２に送られることができる。もし分岐が必要とされるべきでない（例えば、分岐履歴が０−０に等しい）ならば、その時ロジックゼロまたは高インピーダンスは分岐予測１２４を介して制御ロジック１１２によって受信されることができる。制御ロジックはその後、ストリームが分岐を必要とすることなく、分岐命令の次の命令を処理することに進まねばならないことをこの信号から決定する。
【００２３】
もう１つの実施形態では、そして以前に述べたように、分岐履歴は分岐履歴表としてレジスタファイルユニット１０２内に蓄積されることができる。そのように、レジスタファイルユニット１０２内の分岐履歴表はマルチプレクサ１２０の出力を制御するために制御１２２の上に読出しデータポート１０６からオプションとして出力することができる。１つの実施形態では、このように分岐履歴表の情報および分岐ターゲットキャッシュの情報を組み合わせて、分岐履歴および分岐命令についてのターゲットアドレスは１つのレジスタ内に蓄積されることができる。
【００２４】
図２を参照して、レジスタファイルユニット１０２は複数のレジスタファイル２０４〜２１４を含む蓄積装置２０２を含むことができる。図示された実施形態では、６レジスタファイルが示され、ここにおいてプロセッサは６スレッドアーキテクチャであることができる。他の実施形態では、レジスタファイルの数は１より大きい任意数(例えば、２)であってもよく、ここにおいて少なくとも１つのレジスタファイルは第１のモード内にあってもよく、そして少なくとも１つのレジスタファイルは第２のモード内にあってもよい。レジスタファイル２０４〜２１４のおのおのは６スレッドアーキテクチャプロセッサのそれぞれのスレッドと結合される。例えば、レジスタファイル１  ２０４はこのプロセッサの第１のスレッドと結合されることができる。レジスタファイル２０４〜２１４はバス２１６により相互接続されることができる。従って、第２のモード内のレジスタファイルのための分岐予測情報は第２のモード内のレジスタファイルの間で分割されることができる。もう１つの実施形態では、残りのレジスタファイルがマルチモードレジスタファイルである一方で一部分のレジスタファイルは（単にオペランドを蓄積している）シングルモードであってもよい。
【００２５】
図２を再び参照して、蓄積装置２０２はフェッチユニット２１８および書送りユニット２２０に接続される。フェッチユニット２１８はアクセスしてレジスタファイル２０４〜２１４の１つのレジスタ値をフェッチするためにアドレス２２２を蓄積装置２０２に送る。アクセスされた値は、レジスタファイルユニット１０２からの値を出力する、レジスタファイルデータインターフェイス２２４に送られる。書送りユニット２２０はそれにデータが書き込まれて蓄積される蓄積装置２０２内のレジスタのためのアドレス２２２を送る。１つの実施形態では、フェッチユニット２１８および書送りユニット２２０は第１のモード内のレジスタファイルから／へのオペランドおよび第２のモード内のレジスタファイルから／への補助情報（例えば、分岐予測情報）をアクセスすることができる。
【００２６】
図３を参照して、レジスタファイルユニット１０２は(例えば、蓄積装置２０２内の)レジスタファイルレジスタ３０２〜３１２をさらに含むことができる。１つの実施形態では、各レジスタファイルレジスタ３０２〜３１２はレジスタファイル２０４〜２１４と関連する。例えば、ＲＦ１レジスタ３０２はレジスタファイル１  ２０４と関連し、ＲＦ２レジスタ３０４はレジスタファイル２  ２０６と関連する、等である。レジスタファイルレジスタ３０２〜３１２は、レジスタをいつ第２のモードに切り替えるべきかに関する優先情報を、レジスタはいつ第１のモードにあるべきかに関する優先情報を、あるいは対応するレジスタにどのスレッドが関連するかに関する情報を含んでいる、それらのそれぞれのレジスタ２０４〜２１４についての情報を含むことができる。例えば、ＲＦ１レジスタ３０２は、レジスタファイル１  ２０４がスレッド０と関連し、レジスタファイル１  ２０４はオペランドを蓄積するために第１のモード内にあるべき第１のレジスタであり、および／またはレジスタファイル１  ２０４は補助情報を蓄積するために第２のモード内にあるべき最後のレジスタである情報を含むことができる。もう１つの実施形態では、レジスタファイルレジスタは対応するレジスタが第１のモードまたは第２のモードのどちらにあるかについての情報を含むことができる。
【００２７】
１つの実施形態では、各レジスタ２０４〜２１４についてレジスタファイルレジスタ３０２〜３１２はそれぞれのレジスタファイルがいつ第１のモードにあるべきかおよびそれぞれのレジスタファイルがいつ第２のモードに切り替えられるべきかの優先度についての情報を含み、プロセッサ１００はどのレジスタファイルが第１のモードにあり、そしてどのレジスタファイルが第２のモードにあるかを制御するためにこの情報を使用することができる。例えば、プロセッサはバス２１４を介してレジスタファイルレジスタ３０２〜３１２を制御することによってレジスタファイルを第１のモードから第２のモードへ／第２のモードから第１のモードへ切り替えることができる。
【００２８】
図４の概略図はレジスタファイル２０４〜２０８が第１のモードにあり、そしてレジスタファイル２１０〜２１４が第２のモードにある１例を図示する。以前に記述したように、レジスタファイルレジスタ３０２〜３１２はいつレジスタファイル２０４〜２１４が第１のモードにあるべきかの優先情報を含むことができる。例えば、この優先情報はレジスタファイル１  ２０４が第１のモードにあるべき（即ち、それの関連するスレッドは命令の実行について第１である）第１のレジスタファイルであり、レジスタファイル２  ２０６が第１のモードにあるべき（即ち、それの関連するスレッドは命令の実行について第２である）第２のレジスタファイルであり、レジスタファイル３  ２０８が第１のモードにあるべき（即ち、それの関連するスレッドは命令の実行について第３である）第３のレジスタファイルであり、レジスタファイル４  ２１０が第１のモードにあるべき（即ち、それの関連するスレッドは命令の実行について第４である）第４のレジスタファイルであり、レジスタファイル５  ２１２が第１のモードにあるべき（即ち、それの関連するスレッドは命令の実行について第５である）第５のレジスタファイルであり、そしてレジスタファイル６  ２１２が第１のモードにあるべき（即ち、それの関連するスレッドは命令の実行について第６である）第６のそして最後のレジスタファイルである。よって、もし５つのスレッドが命令を実行しているようであるならば、その時レジスタファイル２０４〜２１２は第１のモード（例えば、それらのそれぞれのスレッドのためのオペランドを蓄積している）にあるべきであり、そしてレジスタファイル６  ２１４は第１のモードにある必要はない。
【００２９】
また以前に記述したように、レジスタファイルレジスタ３０２〜３１２はいつレジスタファイル２０４〜２１４が第２のモードにあるべきかの優先情報を含むことができる。例えば、この優先情報はレジスタファイル１  ２０４が第２のモードにあるべき（例えば、アクティブスレッドについて分岐予測情報を蓄積すべき）第６のそして最後のレジスタファイルであり、レジスタファイル２  ２０６が第２のモードにあるべき第５のそして最後に最も近いレジスタファイルであり、レジスタファイル３  ２０８が第２のモードにあるべき第４のレジスタファイルであり、レジスタファイル４  ２１０が第２のモードにあるべき第３のレジスタファイルであり、レジスタファイル５  ２１２が第２のモードにあるべき第２のそして第１に最も近いレジスタファイルであり、そしてレジスタファイル６  ２１２が第２のモードにあるべき第１のレジスタファイルである。よって、もし２つのスレッドが命令を実行しているならば、その時レジスタファイル２０８〜２１４は第２のモードにあるように使用できる。もし２つのレジスタファイルが第２のモードにあるようであれば、その時レジスタファイル２１２〜２１４は第２のモードにある。１つの実施形態では、レジスタファイルが第１のモードにある（即ち、それぞれのスレッドがアクティブ／命令を実行中である）かどうかはレジスタファイルが第２のモードに切り替えるかどうかよりも優先度を有する。
【００３０】
再び図４を参照して、この例では、３つのスレッドがアクティブであるべきであり、そして３つのレジスタファイルが第２のモードにあるべきである。よって、レジスタファイル２０４〜２０８はアクティブスレッドについてのオペランドを蓄積している第１のモードにある。レジスタファイル２１０〜２１４は、例えば、３つのアクティブスレッドについての分岐予測情報を蓄積するために第２のモードにある。１つの実施形態では、分岐予測情報は第２のモード内のすべての蓄積装置４０２の間に分割または展開されることができる。従って、より多くのレジスタファイル２０４〜２１４が第２のモードにある時には、より多くの蓄積装置が分岐予測情報を蓄積するために存在し、したがってより多くの分岐命令の予測を可能とするために分岐履歴表および分岐ターゲットキャッシュをもっと大きく(例えば、各表内でより多くの列に)させる。
【００３１】
図５は図１〜３の１つのマルチモードレジスタファイル内に情報を蓄積するための例示的な方法５００を示すフローチャートである。５０２で始まり、プロセッサ１００はマルチモードレジスタファイル（例えば、図３におけるレジスタファイル１  ２０４）が第１のモードにあるかどうかを決定する。レジスタファイル１  ２０４が第１のモードにあるかどうかを決定する１つの実施形態では、プロセッサ１００はＲＦ１レジスタ３０２をアクセスし、それはレジスタファイル１  ２０４と関連し、そしてレジスタファイル１  ２０４がインであるモードに関する情報を含むことができる。もう１つの実施形態では、プロセッサ１００はＲＦ１レジスタ３０２の優先情報およびレジスタファイル１  ２０４が第１のモードにあるかどうかを決定するためにアクティブスレッドの数を検討することができる。もう１つの実施形態では、プロセッサ１００はレジスタファイル１  ２０４についてのそれぞれのスレッド（例えば、スレッド０）を決定し、そしてそれぞれのスレッドがアクティブであるかどうかを決定することができる。もしレジスタファイル１  ２０４が第１のモードにあれば、その時レジスタファイル１  ２０４についてのそれぞれのスレッドはアクティブであり、そしてレジスタファイル１  ２０４は５０４において書送りユニット２２０（図３）からオペランドを受信することができる。このオペランドを受信して、レジスタファイルは書送りユニット２２０によって識別されたレジスタ位置にこのオペランドを蓄積することができる（５０６）。
【００３２】
もし５０２でプロセッサ１００がレジスタファイルは第１のモードにないことを決定すれば、５０８でプロセッサ１００はマルチモードレジスタファイル１  ２０４が第２のモードにあるかどうかを決定することができる。１つの実施形態では、プロセッサ１００はもしレジスタファイル１  ２０４が第１のモードにないならばこのレジスタファイル１  ２０４は第２のモードにあると想定することができる。もう１つの実施形態では、レジスタファイル１  ２０４はインアクティブであることができ、したがって第１または第２のモードにないかもしれない。このように、もしプロセッサ１００がレジスタファイル１  ２０４は第２のモードにないことを決定すれば、その時レジスタファイル１  ２０４は第１または第２のモードのどちらにもなく、そして同時に情報を受け入れることはできない。もしマルチモードレジスタファイルが第２のモードにあれば、その時レジスタファイル１  ２０４は５１０で書送りユニット２２０（図３）から補助情報（例えば、分岐予測情報）を受信する。補助情報を受信して、レジスタファイル１  ２０４は書送りユニット２２０によって識別されたレジスタ位置にこの補助情報を蓄積することができる（５０６）。
【００３３】
図６のフローチャートはマルチモードレジスタファイル２０４〜２１４のおのおののモードによる図１〜３内のレジスタファイルユニット１０２の複数のマルチモードレジスタファイル２０４〜２１４内に情報を蓄積するための例示的な方法６００を示す。６０２で始まり、プロセッサ１００はレジスタファイルユニット１０２のどのマルチモードレジスタファイル２０４〜２１４が第１のモードにあるかを決定する。１つの実施形態では、プロセッサ１００はどのスレッドがアクティブでありそして、レジスタファイルレジスタ３０２〜３１２から、どのレジスタファイル２０４〜２１４がこのアクティブスレッドと関連するかを決定する。もう１つの実施形態では、プロセッサ１００は関連するレジスタファイルレジスタからどのレジスタファイルが第１のモードにあるかの情報を読み出すことができる。
【００３４】
どのレジスタファイル２０４〜２１４が第１のモードにあるかを決定して、６０４でプロセッサ１００はどのレジスタファイル２０４〜２１４が第２のモードにあるかを決定することができる。１つの実施形態では、プロセッサ１００はレジスタファイルが第２のモードにあるかどうかを決定するために第１のモードにないレジスタファイル２０４〜２１４のそれぞれのレジスタファイルレジスタ３０２〜３１２を読み出すことができる。もう１つの実施形態では、プロセッサ１００は第１のモードにない全レジスタ２０４〜２１４が第２のモードにあると想定する。もう１つの実施形態では、プロセッサ１００は第２のモードにあるべきレジスタファイル２０４〜２１４の数を決定し、そしてレジスタファイル２０４〜２１４のそれぞれのレジスタファイルレジスタ３０２〜３１２から第２のモードについての優先情報を読み出す。
【００３５】
６０６に進んで、プロセッサ１００はオペランドを第１のモード内のレジスタファイル２０４〜２１４に送る。例えば、もしスレッド０が実行された命令からの結果としてのオペランドを含むならば、プロセッサ１００は蓄積されるべきレジスタファイル１  ２０４（図３）にこのオペランドを送る。このオペランドはその後６０８で第１のモード内の受信レジスタファイル２０４〜２１４によって蓄積される。
【００３６】
６１０に進んで、プロセッサ１００は補助情報を第２のモード内のレジスタファイル２０４〜２１４に送る。例えば、プロセッサ１００は最近実行した分岐命令についての分岐予測情報を送ることができ、それはあとで同じ分岐を予測する時に使用されることができる。１つの実施形態では、プロセッサ１００は第２のモード内のどのレジスタファイル２０４〜２１４が補助情報のどの部分を蓄積すべきかを決定する。例えば、図４を再び参照して、プロセッサ１００はレジスタファイル２１０〜２１２が分岐ターゲットキャッシュを蓄積すべきであり、そしてレジスタファイル６  ２１４が実行命令ストリームについての分岐履歴表を蓄積すべきであることを決定することができる。再び図６を参照して、補助情報はその後６１２で第２のモード内の受信レジスタファイル２０４〜２１４によって蓄積される。
【００３７】
上記特徴を含んでいる実例の装置
マルチモードレジスタファイルは、ディジタル信号プロセッサのような、レジスタファイルを含む任意のプロセッサ内に含まれることができる。図７〜１１の一般的な図は、例えば、第１のモード内のオペランドおよび実行している分岐命令の分岐を予測することについて使用されるために第２のモード内の分岐予測情報を組み込むことができる実例の装置を示す。
【００３８】
図７は携帯型通信装置７００の例示的な実施形態を示す図である。図７の一般的な図に示されたように、携帯型通信装置はディジタル信号プロセッサ（ＤＳＰ）７０４を含むオンチップシステム７０２を含む。図７の一般的な図はまたディジタル信号プロセッサ７０４およびディスプレイ７０８に結合されるディスプレイコントローラ７０６も示す。さらに、入力装置７１０はＤＳＰ７０４に結合される。示されたように、メモリ７１２はＤＳＰ７０４に結合される。その上、コーダ／デコーダ（ＣＯＤＥＣ）７１４はＤＳＰ７０４に結合されることができる。スピーカ７１６およびマイクロホン７１８はＣＯＤＥＣ７１４に結合されることができる。
【００３９】
図７の一般的な図はさらにディジタル信号プロセッサ７０４および無線アンテナ７２２に結合された無線コントローラ７２０を示す。特定の実施形態では、電源７２４はオンチップシステム７０２に結合される。さらに、特定の実施形態では、図７に示されたように、ディスプレイ７０８、入力装置７１０、スピーカ７１６、マイクロホン７１８、無線アンテナ７２２、および電源７２４はオンチップシステム７０２の外部にある。しかしながら、おのおのはオンチップシステム７０２のコンポーネントに結合される。
【００４０】
特定の実施形態では、ＤＳＰ７０４は、例えば、レジスタファイルが第１のモードにない（アクティブスレッドについてのオペランドを蓄積していない）時の分岐予測情報を蓄積するために１つまたは複数のマルチモードレジスタファイル７２６を含む。例えば、分岐命令がプロセッサ７０４によって出会われ、そしてマルチモードレジスタファイル７２６が分岐予測情報を蓄積している時には、その後プロセッサ７０４は分岐が必要とされるかあるいは必要とされないかを予測せねばならないかどうかを決定するためにマルチモードレジスタファイル７２６内の分岐予測情報を使用する。プロセッサ７０４はその後その分岐予測から次に予測された命令を処理し始める。
【００４１】
図８はセルラー電話機８００の例示的な実施形態を示す図である。示されたように、セルラー電話機８００は共に結合されるディジタルベースバンドプロセッサ８０４およびアナログベースバンドプロセッサ８０６を含むオンチップシステム８０２を含む。特定の実施形態では、ディジタルベースバンドプロセッサ８０４はディジタル信号プロセッサである。図８の一般的な図の中に示されたように、ディスプレイコントローラ８０８およびタッチスクリーンコントローラ８１０はディジタルベースバンドプロセッサ８０４に結合される。順番に、オンチップシステム８０２への外部のタッチスクリーンディスプレイ８１２はディスプレイコントローラ８０８およびタッチスクリーンコントローラ８１０に結合される。
【００４２】
図８の一般的な図はさらにビデオエンコーダ８１４、例えば、フェーズオルタネーティングライン（ＰＡＬ）エンコーダ、シーケンシャルクーレールアメモアール（ＳＥＣＡＭ）エンコーダ、あるいはナショナルテレビジョンシステム委員会（ＮＴＳＣ）エンコーダは、ディジタルベースバンドプロセッサ８０４に結合される。さらに、ビデオ増幅器８１６はビデオエンコーダ８１４およびタッチスクリーンディスプレイ８１２に結合される。また、ビデオポート８１８はビデオ増幅器８１６に結合される。図８の一般的な図に描写されたように、ユニバーサルシリアルバス（ＵＳＢ）コントローラ８２０はディジタルベースバンドプロセッサ８０４に結合される。また、ＵＳＢポート８２２はＵＳＢコントローラ８２０に結合される。メモリ８２４および加入者アイデンティティモジュール(ＳＩＭ)カード８２６もまたディジタルベースバンドプロセッサ８０４に結合されることができる。さらに、図８の一般的な図に示されたように、ディジタルカメラ８２８はディジタルベースバンドプロセッサ８０４に結合されることができる。例示的な実施形態では、ディジタルカメラ８２８は電荷結合デバイス（ＣＣＤ）カメラまたは相補型金属酸化膜半導体（ＣＭＯＳ）カメラである。.
さらに図８の一般的な図に示されたように、ステレオオーディオＣＯＤＥＣ８３０はアナログベースバンドプロセッサ８０６に結合されることができる。さらに、オーディオ増幅器８３２はステレオオーディオＣＯＤＥＣ８３０に結合されることができる。例示的な実施形態では、第１のステレオスピーカ８３４および第２のステレオスピーカ８３６はオーディオ増幅器８３２に結合される。マイクロホン増幅器８３８はまたステレオオーディオＣＯＤＥＣ８３０にも結合される。そのうえ、マイクロホン８４０はマイクロホン増幅器８３８に結合されることができる。特定の実施形態では、周波数変調（ＦＭ）無線チューナ８４２はステレオオーディオＣＯＤＥＣ８３０に結合されることができる。また、ＦＭアンテナ８４４はＦＭ無線チューナ８４２に結合される。さらに、ステレオヘッドホン８４６はステレオオーディオＣＯＤＥＣ８３０に結合されることができる。
【００４３】
図８の一般的な図はさらに無線周波数（ＲＦ）トランシーバ８４８がアナログベースバンドプロセッサ８０６に結合されうることを示す。ＲＦスイッチ８５０はＲＦトランシーバ８４８およびＲＦアンテナ８５２に結合されることができる。キーパッド８５４はアナログベースバンドプロセッサ８０６に結合されることができる。さらに、バイブレータ装置８５８はアナログベースバンドプロセッサ８０６に結合されることができる。図８の一般的な図はまた電源８６０がオンチップシステム８０２に結合されうることを示す。特定の実施形態では、電源８６０はセルラー電話機８００のいろいろなコンポーネントに電力を供給する直流（ＤＣ）電源である。さらに、特定の実施形態では、電源は２次直流電池あるいは交流（ＡＣ）電源からＡＣ電源に結合されるＤＣ変圧器に引き出されるＤＣ電源である。
【００４４】
図８の一般的な図に描写されたように、タッチスクリーンディスプレイ８１２、ビデオポート８１８、ＵＳＢポート８２２、カメラ８２８、第１のステレオスピーカ８３４、第２のステレオスピーカ８３６、マイクロホン８４０、ＦＭアンテナ８４４、ステレオヘッドホン８４６、ＲＦスイッチ８５０、ＲＦアンテナ８５２、キーパッド８５４、バイブレータ８５８、および電源８６０はオンチップシステム８０２の外部にあってもよい。特定の実施形態では、ディジタルベースバンドプロセッサ８０４は、例えば、レジスタファイル８６２が第１のモード（アクティブスレッドについてのオペランドを蓄積していない）にない時に例えば分岐予測情報を蓄積するために１つまたは複数のマルチモードレジスタファイル８６２を含むことができる。
【００４５】
図９は無線インターネットプロトコル（ＩＰ）電話機９００の例示的な実施形態を示す図である。示されたように、無線ＩＰ電話機９００はディジタル信号プロセッサ(ＤＳＰ)９０４を含むオンチップシステム９０２を含む。ディスプレイコントローラ９０６はＤＳＰ９０４に結合されることができ、そしてディスプレイ９０８はディスプレイコントローラ９０６に結合される。例示的な実施形態では、ディスプレイ９０８は液晶ディスプレイ（ＬＣＤ）である。図９はさらにキーパッド９１０がＤＳＰ９０４に結合されることができることを示す。
【００４６】
フラッシュメモリ９１２はＤＳＰ９０４に結合されることができる。同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）９１４、静的ランダムアクセスメモリ（ＳＲＡＭ）９１６、および電気的消去可能プログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）９１８もまたＤＳＰ９０４に結合されることができる。図９の一般的な図はまた発光ダイオード（ＬＥＤ）９２０がＤＳＰ９０４に結合されうることを示す。さらに、特定の実施形態では、ボイスＣＯＤＥＣ９２２はＤＳＰ９０４に結合されることができる。増幅器９２４はボイスＣＯＤＥＣ９２２に結合されることができ、そしてモノスピーカ９２６は増幅器９２４に結合されることができる。図９の一般的な図はさらにボイスＣＯＤＥＣ９２２に結合されたモノヘッドセット９２８を示す。特定の実施形態では、モノヘッドセット９２８はマイクロホンを含む。
【００４７】
無線ローカルエリアネットワーク（ＷＬＡＮ）ベースバンドプロセッサ９３０はＤＳＰ９０４に結合されることができる。ＲＦトランシーバ９３２はＷＬＡＮベースバンドプロセッサ９３０に結合されることができ、そしてＲＦアンテナ９３４はＲＦトランシーバ９３２に結合されることができる。特定の実施形態では、ブルートゥース（登録商標）コントローラ９３６もＤＳＰ９０４に結合されることができ、そしてブルートゥース（登録商標）アンテナ９３８はコントローラ９３６に結合されることができる。図９の一般的な図はまたＵＳＢポート９４０もまたＤＳＰ９０４に結合されることを示す。さらに、電源９４２はオンチップシステム９０２に結合され、そして無線ＩＰ電話機９００のいろいろなコンポーネントに電力を供給する。
【００４８】
図９の一般的な図に示されたように、ディスプレイ９０８、キーパッド９１０、ＬＥＤ９２０、モノスピーカ９２６、モノヘッドセット９２８、ＲＦアンテナ９３４、ブルートゥースアンテナ９３８、ＵＳＢポート９４０、および電源９４２はオンチップシステム９０２の外部にあり、そしてオンチップシステム９０２の１つまたは複数のコンポーネントに結合されることができる。特定の実施形態では、ＤＳＰ９０４は、例えば、レジスタファイル９６０が第１のモードにない（アクティブスレッドについてのオペランドを蓄積していない）時に、例えば、分岐予測情報を蓄積するために１つまたは複数のマルチモードレジスタファイル９６０を含むことができる。
【００４９】
図１０は携帯型ディジタルアシスタント（ＰＤＡ）９００の例示的な実施形態を示す図である。示されたように、ＰＤＡ１０００はディジタル信号プロセッサ（ＤＳＰ）１００４を含むオンチップシステム１００２を含む。タッチスクリーンコントローラ１００６およびディスプレイコントローラ１００８はＤＳＰ１００４に結合される。さらに、タッチスクリーンディスプレイ１０１０はタッチスクリーンコントローラ１００６におよびディスプレイコントローラ１００８に結合される。図１０の一般的な図はまたキーパッド１０１２がＤＳＰ１００４に結合されうることも示す。
【００５０】
特定の実施形態では、ステレオオーディオＣＯＤＥＣ１０２６はＤＳＰ１００４に結合されることができる。第１のステレオ増幅器１０２８はステレオオーディオＣＯＤＥＣ１０２６に結合されることができ、そして第１のステレオスピーカ１０３０は第１のステレオ増幅器１０２８に結合されることができる。そのうえ、マイクロホン増幅器１０３２はステレオオーディオＣＯＤＥＣ１０２６に結合されることができ、そしてマイクロホン１０３４はマイクロホン増幅器１０３２に結合されることができる。図１０の一般的な図はさらに第２のステレオ増幅器１０３６はステレオオーディオＣＯＤＥＣ１０２６に結合されることができ、そして第２のステレオスピーカ１０３８は第２のステレオ増幅器１０３６に結合されることができることを示す。特定の実施形態では、ステレオヘッドホン１０４０もステレオオーディオＣＯＤＥＣ１０２６に結合されることができる。
【００５１】
図１０の一般的な図はまた８０２．１１コントローラ１０４２がＤＳＰ１００４に結合されることができ、そして８０２．１１アンテナ１０４４が８０２．１１コントローラ１０４２に結合されることができることも示す。さらに、ブルートゥース（登録商標）コントローラ１０４６はＤＳＰ１００４に結合されることができ、そしてブルートゥース（登録商標）アンテナ１０４８はブルートゥース（登録商標）コントローラ１０４６に結合されることができる。ＵＳＢコントローラ１０５０はＤＳＰ１００４に結合されることができ、そしてＵＳＢポート１０５２はＵＳＢコントローラ１０５０に結合されることができる。そのうえ、スマートカード１０５４、例えば、マルチメディアカード（ＭＭＣ）またはセキュアディジタルカード（ＳＤ）は、ＤＳＰ１００４に結合されることができる。さらに、電源１０５６はオンチップシステム１００２に結合されることができ、そして電力をＰＤＡ１０００のいろいろなコンポーネントに供給することができる。
【００５２】
図１０の一般的な図に示されたように、ディスプレイ１０１０、キーパッド１０１２、ＩｒＤＡポート１０２２、ディジタルカメラ１０２４、第１のステレオスピーカ１０３０、マイクロホン１０３４、第２のステレオスピーカ１０３８、ステレオヘッドホン１０４０、８０２．１１アンテナ１０４４、ブルートゥース（登録商標）アンテナ１０４８、ＵＳＢポート１０５２、および電源１０５０はオンチップシステム１００２の外部にあり、そしてこのオンチップシステム上の１つまたは複数のコンポーネントに結合されることができる。特定の実施形態では、ＤＳＰ１００４は、例えば、レジスタファイル１０６０が第１のモードにない（アクティブスレッドのためのオペランドを蓄積していない）時の分岐予測情報を蓄積するために１つまたは複数のマルチモードレジスタファイル１０６０を含むことができる。
【００５３】
図１１はオーディオファイルプレーヤー（例えば、ＭＰ３プレーヤー）１１００の例示的な実施形態を示す図である。示されたように、オーディオファイルプレーヤー１１００はディジタル信号プロセッサ（ＤＳＰ）１１０４を含むオンチップシステム１１０２を含む。ディスプレイコントローラ１１０６はＤＳＰ１１０４に結合されることができ、そしてディスプレイ１１０８はディスプレイコントローラ１１０６に結合される。例示的な実施形態では、ディスプレイ１１０８は液晶ディスプレイ（ＬＣＤ）である。キーパッド１１１０はＤＳＰ１１０４に結合されることができる。
【００５４】
図１１の一般的な図にさらに描写されたように、フラッシュメモリ１１１２および読出し専用メモリ(ＲＯＭ)１１１４はＤＳＰ１１０４に結合されることができる。さらに、特定の実施形態では、オーディオＣＯＤＥＣ１１１６はＤＳＰ１１０４に結合されることができる。増幅器１１１８はオーディオＣＯＤＥＣ１１１６に結合されることができ、そしてモノスピーカ１１２０は増幅器１１１８に結合されることができる。図１１の一般的な図はさらにマイクホン入力１１２２およびステレオ入力１１２４もまたオーディオＣＯＤＥＣ１１１６に結合されうることを示す。特定の実施形態では、ステレオヘッドホン１１２６もまたオーディオＣＯＤＥＣ１１１６に結合されることができる。
【００５５】
ＵＳＢポート１１２８およびスマートカード１１３０はＤＳＰ１１０４に結合されることができる。さらに、電源１１３２はオンチップシステム１１０２に結合されることができ、そしてオーディオファイルプレーヤー１１００のいろいろなコンポーネントに電力を供給することができる。
【００５６】
図１１の一般的な図に示されたように、ディスプレイ１１０８、キーパッド１１１０、モノスピーカ１１２０、マイクロホン入力１１２２、ステレオ入力１１２４、ステレオヘッドホン１１２６、ＵＳＢポート１１２８、および電源１１３２はオンチップシステム１１０２の外部にあり、そしてオンチップシステム１１０２上の１つまたは複数のコンポーネントに結合される。特定の実施形態では、ディジタル信号プロセッサ１１０４は、例えば、レジスタファイル１１６０が第１のモードにない（アクティブスレッドについてのオペランドを蓄積していない）時の分岐予測情報を蓄積するために１つまたは複数のマルチモードレジスタファイル１１６０を含むことができる。
【００５７】
全般
この中に開示されたこの発明の概念の実施形態の前述の説明は図示および説明のためだけを示し、そしてこの中に開示された発明の概念を開示された正確な形式に徹底すべきことまたは限定すべきことを意味しない。多くの修正および改造はこの中に開示された発明の概念の精神および範囲から逸脱すること無しに当業者には明白である。
【図１】
2011521382.tif 000003
【図２】
2011521382.tif 000004
【図３】
2011521382.tif 000005
【図４】
2011521382.tif 000006
【図５】
2011521382.tif 000007
【図６】
2011521382.tif 000008
【図７】
2011521382.tif 000009
【図８】
2011521382.tif 000010
【図９】
2011521382.tif 000011
【図１０】
2011521382.tif 000012
【図１１】
2011521382.tif 000013
【手続補正書】
【提出日】平成23年3月4日(2011.3.4)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１９
【補正方法】変更
【補正の内容】
【００１９】
プロセッサ１００はその後この分岐予測情報１０４をアクセスすることによってこの分岐の通報受端を決定できる。１つの実施形態では、プロセッサ１００は予測情報１１８についてレジスタファイルユニット１０２をアクセスするためにアドレスバス１１０上に送られるべき分岐命令についてのプログラムカウンタ１１６からのアドレスを作り出す。分岐予測情報１０４は（分岐のターゲットアドレスを含む）分岐アクセス表を含むので、予測情報１１８は出会った分岐命令についてのターゲットアドレスを含む。もし分岐が必要とされるようならば、その時予測情報１１８からのターゲットアドレスは分岐を獲得することに使用される。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２８
【補正方法】変更
【補正の内容】
【００２８】
図４の概略図はレジスタファイル２０４〜２０８が第１のモードにあり、そしてレジスタファイル２１０〜２１４が第２のモードにある１例を図示する。以前に記述したように、レジスタファイルレジスタ３０２〜３１２はいつレジスタファイル２０４〜２１４が第１のモードにあるべきかの優先情報を含むことができる。例えば、この優先情報はレジスタファイル１  ２０４が第１のモードにあるべき（即ち、それの関連するスレッドは命令の実行について第１である）第１のレジスタファイルであり、レジスタファイル２  ２０６が第１のモードにあるべき（即ち、それの関連するスレッドは命令の実行について第２である）第２のレジスタファイルであり、レジスタファイル３  ２０８が第１のモードにあるべき（即ち、それの関連するスレッドは命令の実行について第３である）第３のレジスタファイルであり、レジスタファイル４  ２１０が第１のモードにあるべき（即ち、それの関連するスレッドは命令の実行について第４である）第４のレジスタファイルであり、レジスタファイル５  ２１２が第１のモードにあるべき（即ち、それの関連するスレッドは命令の実行について第５である）第５のレジスタファイルであり、そしてレジスタファイル６  ２１４が第１のモードにあるべき（即ち、それの関連するスレッドは命令の実行について第６である）第６のそして最後のレジスタファイルである。よって、もし５つのスレッドが命令を実行しているようであるならば、その時レジスタファイル２０４〜２１２は第１のモード（例えば、それらのそれぞれのスレッドのためのオペランドを蓄積している）にあるべきであり、そしてレジスタファイル６  ２１４は第１のモードにある必要はない。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２９
【補正方法】変更
【補正の内容】
【００２９】
また以前に記述したように、レジスタファイルレジスタ３０２〜３１２はいつレジスタファイル２０４〜２１４が第２のモードにあるべきかの優先情報を含むことができる。例えば、この優先情報はレジスタファイル１  ２０４が第２のモードにあるべき（例えば、アクティブスレッドについて分岐予測情報を蓄積すべき）第６のそして最後のレジスタファイルであり、レジスタファイル２  ２０６が第２のモードにあるべき第５のそして最後に最も近いレジスタファイルであり、レジスタファイル３  ２０８が第２のモードにあるべき第４のレジスタファイルであり、レジスタファイル４  ２１０が第２のモードにあるべき第３のレジスタファイルであり、レジスタファイル５  ２１２が第２のモードにあるべき第２のそして第１に最も近いレジスタファイルであり、そしてレジスタファイル６  ２１４が第２のモードにあるべき第１のレジスタファイルである。よって、もし２つのスレッドが命令を実行しているならば、その時レジスタファイル２０８〜２１４は第２のモードにあるように使用できる。もし２つのレジスタファイルが第２のモードにあるようであれば、その時レジスタファイル２１２〜２１４は第２のモードにある。１つの実施形態では、レジスタファイルが第１のモードにある（即ち、それぞれのスレッドがアクティブ／命令を実行中である）かどうかはレジスタファイルが第２のモードに切り替えるかどうかよりも優先度を有する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００３２
【補正方法】変更
【補正の内容】
【００３２】
もし５０２でプロセッサ１００がレジスタファイルは第１のモードにないことを決定すれば、５０８でプロセッサ１００はマルチモードレジスタファイル１  ２０４が第２のモードにあるかどうかを決定することができる。１つの実施形態では、プロセッサ１００はもしレジスタファイル１  ２０４が第１のモードにないならばこのレジスタファイル１  ２０４は第２のモードにあると想定することができる。もう１つの実施形態では、レジスタファイル１  ２０４はインアクティブであることができ、したがって第１または第２のモードにないかもしれない。このように、もしプロセッサ１００がレジスタファイル１  ２０４は第２のモードにないことを決定すれば、その時レジスタファイル１  ２０４は第１または第２のモードのどちらにもなく、そして同時に情報を受け入れることはできない。もしマルチモードレジスタファイルが第２のモードにあれば、その時レジスタファイル１  ２０４は５１０で書送りユニット２２０（図３）から補助情報（例えば、分岐予測情報）を受信する。補助情報を受信して、レジスタファイル１  ２０４は書送りユニット２２０によって識別されたレジスタ位置にこの補助情報を蓄積することができる（５１２）。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００５２
【補正方法】変更
【補正の内容】
【００５２】
図１０の一般的な図に示されたように、ディスプレイ１０１０、キーパッド１０１２、ＩｒＤＡポート１０２２、ディジタルカメラ１０２４、第１のステレオスピーカ１０３０、マイクロホン１０３４、第２のステレオスピーカ１０３８、ステレオヘッドホン１０４０、８０２．１１アンテナ１０４４、ブルートゥース（登録商標）アンテナ１０４８、ＵＳＢポート１０５２、および電源１０５６はオンチップシステム１００２の外部にあり、そしてこのオンチップシステム上の１つまたは複数のコンポーネントに結合されることができる。特定の実施形態では、ＤＳＰ１００４は、例えば、レジスタファイル１０６０が第１のモードにない（アクティブスレッドのためのオペランドを蓄積していない）時の分岐予測情報を蓄積するために１つまたは複数のマルチモードレジスタファイル１０６０を含むことができる。
【国際調査報告】
2011521382.tif 000014
2011521382.tif 000015
2011521382.tif 000016