(57)【要約】いくつかの実施形態によれば、命令はダイレクトメモリアクセスユニットにおいてプリデコードされる。
2007514244.tif 000002
【特許請求の範囲】
【請求項１】
メモリユニットから命令を読み出す工程と、
ダイレクトメモリアクセスユニットにおいて前記命令をプリデコードする工程と、
前記ダイレクトメモリアクセスユニットからプロセッシングエレメントに前記プリデコードされた命令を提供する工程とを含む方法。
【請求項２】
前記提供する工程は、前記プロセッシングエレメントに提供される前記プリデコードされた命令をローカルメモリ内に格納する工程を含む請求項１に記載の方法。
【請求項３】
前記プリデコードされた命令は、前記プロセッシングユニットによって実行される目的で、完全にデコードされた命令である請求項２に記載の方法。
【請求項４】
前記プロセッシングエレメントにおいて前記プリデコードされた命令をデコードし、
プロセッサパイプラインを介して前記デコードされた命令を実行する工程を更に含む請求項１に記載の方法。
【請求項５】
ブートアップ処理の間に、前記メモリユニットに命令をロードする工程を更に含む請求項１に記載の方法。
【請求項６】
前記プロセッシングエレメントは、縮小命令セットコンピュータデバイスである請求項１に記載の方法。
【請求項７】
前記プリデコードされた命令は、実行制御信号を含む請求項６に記載の方法。
【請求項８】
メモリユニットから命令を受信するための入力パスと、
前記命令をプリデコードするための命令プリデコーダを含むダイレクトメモリアクセスユニットと、
前記ダイレクトメモリアクセスユニットからプロセッシングエレメントにプリデコードされた命令を提供するための出力パスとを含む装置。
【請求項９】
前記入力パスに結合した前記メモリユニットを更に含む請求項８に記載の装置。
【請求項１０】
前記出力パスに結合した前記プロセッシングエレメントを更に含む請求項９に記載の装置。
【請求項１１】
前記プロセッシングエレメントは、前記プリデコードされた命令を格納するためのローカルメモリを含む請求項１０に記載の装置。
【請求項１２】
命令プリデコーダを含むダイレクトメモリアクセスユニットにそれぞれが関連している複数のプロセッシングエレメントを含む請求項１０に記載の装置。
【請求項１３】
前記入力パスはnビットで、前記出力パスはqビットであり、ｎ＜qである請求項１０に記載の装置。
【請求項１４】
前記ダイレクトメモリアクセスユニット、前記メモリユニット及び前記プロセッシングエレメントは１つの集積回路上に形成される請求項１０に記載の装置。
【請求項１５】
前記プロセッシングエレメントは、命令パイプラインを備える縮小命令セットコンピュータデバイスデバイスである請求項１０に記載の装置。
【請求項１６】
マシンによって実行されるとき、
メモリユニットから命令を読み出す工程と、
ダイレクトメモリアクセスユニットにおいて前記命令をプリデコードする工程と、
前記ダイレクトメモリアクセスユニットからプロセッシングエレメントに前記プリデコードされた命令を提供する工程とをもたらす命令を格納する記憶媒体を含む物品。
【請求項１７】
前記提供する工程は、前記プロセッシングエレメントに提供される前記プリデコードされた命令をローカルメモリ内に格納する工程を含む請求項１６に記載の物品。
【請求項１８】
命令を格納するためのグローバルメモリと、
命令プリデコーダと、
プロセッサとを含む装置であって、
前記命令プリデコーダは、前記グローバルメモリから前記プロセッサに転送されるよう命令をプリデコードする装置。
【請求項１９】
前記グローバルメモリユニットから読み出される前記命令の手配、及び
前記プロセッサに提供されるプリデコードされた命令の手配をするためのダイレクトメモリアクセスユニットを更に含む請求項１８に記載の装置。
【請求項２０】
前記プリデコードされた命令は、実行制御信号を含む請求項１８に記載の装置。
【請求項２１】
多方向アンテナと、
ダイレクトメモリアクセスユニットを備える装置とを含むシステムであって、
前記ダイレクトメモリアクセスユニットは、
メモリユニットから命令を受信するための入力パスと、
前記命令をプリデコードするための命令プリデコーダと、
プロセッシングエレメントにプリデコードされた命令を提供するための出力パスとを含むシステム。
【請求項２２】
前記装置は、デジタルベースバンドプロセッサである請求項２１に記載のシステム。
【請求項２３】
前記デジタルベースバンドプロセッサは、ワンチップ上システムとして形成される請求項２２に記載のシステム。
【請求項２４】
前記システムは、符号分割多重接続基地局である請求項２１に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
プロセッサは命令パイプラインを用いて、命令を実行する場合がある。プロセッサパイプラインは、例えば命令をフェッチ、デコード及び実行するステージを含んでいてもよい。プロセッサが実行ステージにおいて命令を実行する間に、次のシーケンシャル命令はデコードステージにおいて同時にデコードされる。(更にフェッチステージにおいて、次の命令も同時にフェッチされる)。各ステージは、１つ以上のクロックサイクルに関連することに留意されたい(例えば、デコードステージはプリデコードステージ及びデコードステージを含んでも良く、これらのステージのそれぞれは、１つのクロックサイクルに関連している)。異なるパイプラインステージは、異なる命令の上で同時に動作できるので、プロセッサのパフォーマンスは向上される。
【発明の開示】
【発明が解決しようとする課題】
【０００２】
しかしながら、命令がデコードされた後で、プロセッサは次のシーケンシャル命令が実行されるべきでないことを判断するかもしれない(例えば、デコードされた命令がジャンプ又は分岐命令に関連しているとき)。この場合、デコート及びフェッチステージにおいてその時点に存在する命令はパイプラインから除かれてもよい。この状況は、分岐予測ミスペナルティと呼ばれるが、プロセッサのパフォーマンスを低下させる。
【図面の簡単な説明】
【０００３】
【図１】装置のブロック図である。
【０００４】
【図２】命令パイプラインステージを表す。
【０００５】
【図３】いくつかの実施形態における、装置のブロック図である。
【０００６】
【図４】いくつかの実施形態における方法である。
【０００７】
【図５】いくつかの実施形態における命令パイプラインステージを表す。
【０００８】
【図６】いくつかの実施形態における装置の一例である。
【０００９】
【図７】いくつかの実施形態におけるシステムのブロック図である。
【発明を実施するための最良の形態】
【００１０】
図１は命令(例えば、ブートアップ処理の間にグローバルメモリ１１０にロードされる命令)を格納するためのグローバルメモリ１１０を含む装置１００のブロック図である。グローバルメモリ１１０は、例えば、ワード当たりｎビット(例えば３２ビット)であるｍワード(例えば１０００００ワード)を格納してもよい。
【００１１】
ダイレクトメモリアクセス(ＤＭＡ)エンジン１２０はグローバルメモリ１１０から命令をシーケンシャルに読み出して、プロセッシングエレメントにおいてローカルメモリ１３０(例えば、プロセッシングエレメントのキャッシュメモリ)に命令を転送してもよい。例えば、ＤＭＡエンジン１２０へのｎビット入力パスはグローバルメモリ１１０から命令を読み出す目的で使われてもよい。ＤＭＡエンジン１２０はその後、nビット出力パスを介してローカルメモリ１３０に命令を転送する目的で、ライト信号(ＷＲ)及びライトアドレス(ＷＲアドレス)を用いてもよい。
【００１２】
プロセッサ１４０はその後で、ｎビットパスを介してローカルメモリ１３０からシーケンシャル命令を読み出す目的で、リード信号(ＲＤ)及びリードアドレス(ＲＤアドレス)を用いてもよい。プロセッサ１４０はその後、命令を実行してもよい。パフォーマンスを向上する目的で、プロセッサ１４０は図２に示す命令パイプライン２００を用いて、命令を実行してもよい。プロセッサ１４０が実行ステージ２３０において命令を実行する間に、次のシーケンシャル命令はデコードステージ２２０、２２２において同時にデコードされる(更にフェッチステージ２１０において、次の命令も同時にフェッチされる)。
【００１３】
１つのステージは、特に比較的高いクロックレートにおいて、１つ以上のクロックサイクルに関連してもよいことに留意されたい。例えば、図２で示すパイプライン２００において、命令をフェッチする(Ｃ０、Ｃ１)ことに２つのクロックサイクルが必要とされる。同様に、命令をデコードすることには、命令を「プリデコードされた」命令に部分的に変換するための１つのクロックサイクル(Ｃ２)、及びプリデコードされた命令を実行可能な完全にデコードされた命令に変換するためのもう１つのクロックサイクル(Ｃ３)が必要である。
【００１４】
命令がデコードされた後で、プロセッサ１４０は次のシーケンシャル命令は実行しないと判断する場合がある(例えばデコードされた命令がジャンプ又は分岐命令に関連しているとき)。この場合、デコードステージ２２０、２２２及びフェッチステージ２１０にその時点である命令は、パイプライン２００から除かれてもよい。実行されない命令のフェッチ及びデコードをした結果として無駄になったクロックサイクルは「分岐遅れスロット」と呼ばれる。
【００１５】
分岐遅れスロットの数を減らすことは、プロセッサ１４０のパフォーマンスを向上させるであろう。例えば、もし部分的に又は完全にデコードされた命令がグローバルメモリ１１０に格納された場合、プリデコードステージ２２０はパイプライン２００から除かれてもよく、分岐遅れスロットの数は減少するであろう。しかしながら、プリデコードされた命令は、元の命令より著しく大きくなるであろう。例えば、３２ビットの命令はデコードされた後では、１００ビットになるかもしれない。それゆえ、グローバルメモリ１１０にデコードされた命令を格納することは実用的でない(なぜなら、必要とされるメモリエリアがあまりにも大きくなってしまうからである)。
【００１６】
図３はいくつかの実施形態における装置３００のブロック図である。前記と同様に、ＤＭＡユニット３２０はシーケンシャルに入力パスを介してメモリユニット３１０から命令を読み出す。しかしこの形態においては、ＤＭＡユニット３２０は更に命令をプリデコードするための命令プリデコーダを含む。
【００１７】
図４はいくつかの実施形態における、ＤＭＡユニット３２０によって実行されてもよい方法である。ここに記されたいくつかの方法はハードウェア、ソフトウェア(マイクロコードを含む)、又はハードウェアとソフトウェアとの組み合わせによって実行されてもよいことに留意されたい。例えば、記憶媒体はマシンによって実行されたとき、ここで記されたどれかの形態に準じたパフォーマンスをもたらす命令を該媒体上に格納してもよい。
【００１８】
４０２において、命令はメモリユニット３１０から読み出される。ＤＭＡユニット３２０はそれから４０４において命令をプリデコードする。ＤＭＡユニット３２０は、例えば、部分的にもしくは完全に命令をデコードしてもよい。プリデコードされた命令は、４０６において、ＤＭＡユニット３２０からプロセッシングエレメントにおけるローカルメモリ３３０へ提供される。
【００１９】
図３に戻る。プロセッサ３４０はそれからローカルメモリ３３０からプリデコードされた命令を読み出し、命令を実行することができる。図５はいくつかの実施形態における命令パイプライン５００を表す。ＤＭＡユニット３２０は命令をすでにプリデコードしているので、プロセッサ３４０が完全にデコードされた命令(分岐遅れスロットＣ０〜Ｃ２)を生成するのに要求されるクロックサイクルの数は図２と比べて減少するであろう。そして、プロセッサ３４０のパフォーマンスは向上されるであろう。更に、ローカルメモリ３３０だけがプリデコードされた命令を格納するのに十分な大きさである必要があり(メモリユニット３１０はより少ない元の命令を格納する)、結果として生じるメモリエリアにおける増加は限られたものになるであろう。もしＤＭＡユニット３２０が完全に命令をデコードした場合、分岐遅れスロットの数はさらに減少するであろう(ローカルメモリ３３０のサイズは完全にデコードされた命令を格納する目的で更に増加する必要はあるだろうが)。
【００２０】
図６はいくつかの実施形態における、nビット命令を格納するためのグローバルメモリ６１０を含む装置６００の一例である。ＤＭＡエンジン６２０はシーケンシャルに命令を読み出し、命令プリデコードロジック６２２はqビットのプリデコードされた命令を生成する目的で、各命令をプリデコードする(これは例えばキャッシュ・ミスに関するものであり、又はソフトウェアで制御されるＤＭＡコマンドによって成される)。
【００２１】
ＤＭＡエンジン６２０はその後、qビット出力パスを介してローカルメモリ６３０にプリデコードされた命令を転送する目的で、ライト信号(ＷＲ)及びpビットライトアドレス(ＷＲアドレス)を用いてもよい。ローカルメモリ６３０は、例えばプリデコードされた２pワードを格納できるプロセッサキャッシュであってもよい(例えば１０ビットライトアドレスは１０２４の命令にアクセスできる)。命令はプリデコードされているので、ｑはｎより大きくなるであろうことに留意されたい(例を挙げると、プリデコードされた命令は元の命令より大きいからである)。ローカルメモリ６３０に格納されるプリデコードされた命令は、例えば実行ユニット制御信号及び/又はフラグを含んでもよい。
【００２２】
プロセッサ１４０はその後、qビットパスを介してローカルメモリ６３０からプリデコードされた命令を読み出す目的でリード信号(ＲＤ)及びpビットリードアドレス(ＲＤアドレス)を用いてもよい。プロセッサ６４０は、例えば、図２と比べてより少ないパイプラインステージを持つ命令を実行する縮小命令セットコンピュータ(ＲＩＳＣ)デバイスを含んでもよい(例えばデコードに関連する分岐遅れスロットの少なくともいくつかは必要とされなくなるからである)。
【００２３】
図７はいくつかの実施形態におけるシステム７００のブロック図である。具体的には、システム７００は多方向アンテナ７４０を備えたワイアレスデバイスである。システム７００は、例えば符号分割多重接続(ＣＤＭＡ)基地局であってもよい。
【００２４】
ワイアレスデバイスはワンチップ上システム(ＳＯＣ)装置７１０、同期ダイナミックランダムアクセスメモリ(ＳＤＲＡＭ)ユニット７２０、「ＰＣＩ Ｅｘｐｒｅｓｓ １.０」(２００２)という題のＰＣＩ標準業界団体(ＳＩＧ)文書に従って動作するユニット等の周辺機器接続(ＰＣＩ)インターフェースユニット７３０を含む。ＳＯＣ装置７１０は、例えば、デジタル信号プロセッサ(ＤＳＰ)命令及びデータを格納するグローバルメモリを備えるデジタルベースバンドプロセッサであってもよい。更に、複数のＤＭＡエンジンはここに記されたいくつかの形態に従って、グローバルメモリから命令を読み出し、その命令をデコードし、プリデコードされた命令を複数のＤＳＰ(例えばＤＳＰ１〜ＤＳＰＮ)に提供してもよい。
【００２５】
以下に多様な更なる形態を示す。これらは全ての成し得る形態の定義を構成するものではなく、当業者であれば他の多くの形態が実行できることは理解できるであろう。更に、明確にする目的で以下の形態は簡潔に記されるが、これら及び他の形態、応用を適宜適合する目的で上記記載に対して変更を行う手法は当業者であれば理解できるであろう。
【００２６】
いくつかの実施形態において、ＤＭＡユニットは内部命令プリデコーダを含む記載があるが、その代わりに命令プリデコーダはＤＭＡユニットの外部にあってもよい。例えば、ＤＭＡユニットの外部にあるユニットは部分的に又は完全に、プロセッシングエレメント外部のメモリから「インフライト」であるように命令をデコードしてもよい。更にいくつかの実施形態はＳＯＣ実装の形で記載されているが、ここに記載のいくつかの、又は全ての要素は複数の集積回路を用いることにより実現されてもよい。
【００２７】
ここに記されたいくつかの形態は実例のためだけにある。この記載から、他の形態も請求項の範囲内における修正及び変更を伴い実施されてもよいことは当業者であれば理解できるであろう。
【図１】
2007514244.tif 000003
【図２】
2007514244.tif 000004
【図３】
2007514244.tif 000005
【図４】
2007514244.tif 000006
【図５】
2007514244.tif 000007
【図６】
2007514244.tif 000008
【図７】
2007514244.tif 000009
【国際調査報告】
2007514244.tif 000010
2007514244.tif 000011
2007514244.tif 000012