(57)【特許請求の範囲】
【請求項１】
多段階の多重化操作の第1の段階の間に、
第1の複数のデータソースから第1のデータソースを選択するステップと、
前記選択された第1のデータソースからの第1のデータに対して、第1のデータ整列操作と第1のデータ複製操作のうちの少なくとも1つを実行するステップと、
第2の複数のデータソースから第2のデータソースを選択するステップと、
前記選択された第2のデータソースからの第2のデータに対して、第2のデータ整列操作と第2のデータ複製操作のうちの少なくとも1つを実行するステップとを含む、方法。
【請求項２】
前記第1のデータが、第1の64ビットのダブルワードを含み、前記第1のデータ整列操作と前記第1のデータ複製操作のうちの前記少なくとも1つが、前記第1のデータの32ビットのワードに関して実行される、請求項1に記載の方法。
【請求項３】
前記第2のデータが、第2の64ビットのダブルワードを含み、前記第2のデータ整列操作と前記第2のデータ複製操作のうちの前記少なくとも1つが、前記第2のデータの32ビットのワードに関して実行される、請求項1に記載の方法。
【請求項４】
前記第1の段階の次の、前記多段階の多重化操作の第2の段階の間に、
第3のデータに対して、第3のデータ整列操作と第3のデータ複製操作のうちの少なくとも1つを実行するステップをさらに含み、
前記第3のデータが、前記第1のデータと前記第2のデータのうちの1つから選択される、請求項1に記載の方法。
【請求項５】
前記第3のデータが64ビットのダブルワードを含み、前記第3のデータ整列操作と前記第3のデータ複製操作のうちの前記少なくとも1つが、前記第3のデータの16ビットのハーフワードに関して実行される、請求項4に記載の方法。
【請求項６】
前記第2の段階の次の、前記多段階の多重化操作の第3の段階の間に、
データ整列操作と、データ複製操作と、符号拡張操作と、ゼロパディング操作とのうちの少なくとも1つを、前記第3のデータに対して実行して、最終的なデータを生成するステップをさらに含む、請求項4に記載の方法。
【請求項７】
前記多段階の多重化操作の前記第3の段階の間に、
前記最終的なデータを、レジスタファイルとメモリの少なくとも1つに保存するステップをさらに含む、請求項6に記載の方法。
【請求項８】
前記メモリが、前記第1の複数のデータソースと、前記第2の複数のデータソースのうちの1つまたは複数を含む、請求項7に記載の方法。
【請求項９】
前記最終的なデータが、ダブルワード、2つの複製されたワード、少なくとも2つの複製されたハーフワード、少なくとも1つの符号拡張のバイト、少なくとも1つのゼロパディングのバイト、少なくとも2つの複製されたバイト、および、少なくとも1つの再整列されたバイトのうちの、1つまたは複数を含む、請求項6に記載の方法。
【請求項１０】
前記第1の複数のデータソースの少なくとも1つのデータソースが、第1のメモリバンクであり、前記第2の複数のデータソースの少なくとも1つのデータソースが、第3のメモリバンクである、請求項1に記載の方法。
【請求項１１】
第1の複数のデータソースおよび第2の複数のデータソースを含むメモリと、
データ整列操作とデータ複製操作のうちの少なくとも1つを選択的に実行するように構成される、ロード整列器であって、前記データ整列操作とデータ複製操作のうちの少なくとも1つが、前記第1の複数のデータソースから選択された第1のデータソースのうちの第1のデータと、前記第2の複数のデータソースから選択された第2のデータソースのうちの第2のデータとに対して実行され、前記データ整列操作とデータ複製操作のうちの少なくとも1つが、前記第1のデータを選択する第1の多重化操作を実行するのと同時におよび前記第2のデータを選択する第2の多重化操作を実行するのと同時に、実行される、ロード整列器とを含む、装置。
【請求項１２】
前記データ整列操作を実行は、データを左にシフトすることまたはデータを右にシフトすることを含む、請求項11に記載の装置。
【請求項１３】
前記第1の複数のデータソースの各々および前記第2の複数のデータソースの各々が、複数バイトのデータソースであり、前記ロード整列器がさらに、バイトごとに、前記データ整列操作と前記データ複製操作の前記少なくとも1つを実行するように構成される、請求項11に記載の装置。
【請求項１４】
前記第1の多重化操作の実行と同時におよび第2の多重化操作を実行と同時に、前記データ整列操作と前記データ複製操作の前記少なくとも1つを選択的に実行するステップが、前記第1のデータの各ビットおよび前記第2のデータの各ビットを、少なくとも1つの4入力のand-orマルチプレクサに入力するステップを含む、請求項11に記載の装置。
【請求項１５】
第1の複数のデータソースおよび第2の複数のデータソースを含むメモリと、
前記第1の複数のデータソースから選択された第1のデータソースのうちの第1のデータと、前記第2の複数のデータソースから選択された第2のデータソースのうちの第2のデータとを、選択的に符号拡張するように構成される、符号拡張論理回路であって、前記符号拡張が、前記第1のデータを選択する第1の多重化操作を実行するのと同時におよび前記第2のデータを選択する第2の多重化操作を実行するのと同時に、実行される、符号拡張論理回路とを含む、装置。
【請求項１６】
前記第1の多重化操作および前記第2の多重化操作と並行して前記第1のデータおよび前記第2のデータを選択的にゼロパディングするように構成される、ゼロパディング論理回路をさらに含む、請求項15に記載の装置。
【請求項１７】
前記第1の複数のデータソースの各々および前記第2の複数のデータソースの各々が複数バイトのソースであり、前記符号拡張論理回路がさらに、バイトごとに前記第1のデータおよび前記第2のデータを符号拡張するように構成され、前記ゼロパディング論理回路がさらに、バイトごとに前記第1のデータおよび前記第2のデータの各々をゼロパディングするように構成される、請求項16に記載の装置。
【請求項１８】
前記第1の多重化操作の実行と並行して前記第1のデータを選択的に符号拡張するステップが、前記第1のデータの各ビットを、4入力のand-orマルチプレクサに入力するステップを含む、請求項15に記載の装置。
【請求項１９】
前記第1のデータが64ビットからなる、請求項15に記載の装置。
【請求項２０】
第1の複数のデータを保存するための手段および第2の複数のデータを保存するための手段と、
データ整列操作とデータ複製操作のうちの少なくとも1つを選択的に実行するための、ロード整列器手段であって、前記データ整列操作とデータ複製操作のうちの少なくとも1つが、前記第1の複数のデータを保存するための手段から選択された第1のデータソースのうちの第1のデータと、前記第2の複数のデータを保存するための手段から選択された第2のデータソースのうちの第2のデータとに対して実行され、前記データ整列操作とデータ複製操作のうちの少なくとも1つが、前記第1のデータを選択する第1の多重化操作を実行するのと同時におよび前記第2のデータを選択する第2の多重化操作を実行するのと同時に、実行される、ロード整列器手段と、
前記多重化操作と並行して前記第1のデータを選択的に符号拡張するための、拡張手段と、
前記多重化操作と並行して前記第1のデータを選択的にゼロパディングするための、パディング手段とを含む、装置。
【請求項２１】
音楽プレーヤー、ビデオプレーヤー、娯楽ユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末(PDA)、およびコンピュータからなる群から選択されるデバイスをさらに含み、前記デバイスに、前記ロード整列器手段、前記拡張手段、および前記パディング手段が統合される、請求項20に記載の装置。
【請求項２２】
1つまたは複数のマイクロプロセッサ命令を記録するコンピュータ可読記録媒体であって、前記1つまたは複数のマイクロプロセッサ命令が、マイクロプロセッサにより実行されると、前記マイクロプロセッサに、
多段階の多重化操作の第1の段階を実行させ、前記第1の段階が、
第1の複数のデータソースから第1のデータソースを選択するステップを含む、第1の部分的な多重化操作を実行するステップと、
前記選択された第1のデータソースから受け取られた第1のデータに対して、第1のデータ整列操作と第1のデータ複製操作のうちの少なくとも1つを実行するステップであって、前記第1のデータ整列操作と前記第1のデータ複製操作のうちの前記少なくとも1つが、前記第1のデータに関してワードレベルで実行される、ステップと、
第2の複数のデータソースから第2のデータソースを選択するステップを含む、第2の部分的な多重化操作を実行するステップと、
前記選択された第2のデータソースから受け取られた第2のデータに対して、第2のデータ整列操作と第2のデータ複製操作のうちの少なくとも1つを実行するステップであって、前記第2のデータ整列操作と前記第2のデータ複製操作のうちの前記少なくとも1つが、前記第2のデータに関してワードレベルで実行される、ステップと
を含む、コンピュータ可読記録媒体。
【請求項２３】
前記1つまたは複数のマイクロプロセッサ命令を実行するステップが、さらに、前記マイクロプロセッサに、
前記第1の段階の実行の次の、前記多段階の多重化操作の第2の段階を実行させ、前記第2の段階が、
前記第1のデータおよび前記第2のデータのうちの1つから第3のデータを選択するステップを含む、多重化操作を実行するステップと、
前記第3のデータに対して、第3のデータ整列操作と第3のデータ複製操作のうちの少なくとも1つを実行するステップであって、前記第3のデータ整列操作と前記第3のデータ複製操作のうちの前記少なくとも1つが、前記第3のデータに関してハーフワードレベルで実行される、ステップとを含む、請求項22に記載のコンピュータ可読記録媒体。
【請求項２４】
前記1つまたは複数のマイクロプロセッサ命令を実行するステップが、さらに、前記マイクロプロセッサに、
前記第2の段階の実行の次の、前記多段階の多重化操作の第3の段階を実行させ、前記第3の段階が、
データ整列操作と、データ複製操作と、符号拡張操作と、ゼロパディング操作とのうちの少なくとも1つを、前記第3のデータに対してバイトレベルで実行して、最終的なデータを生成するステップと、
前記最終的なデータを、レジスタファイルとメモリの少なくとも1つに保存するステップとをさらに含む、請求項23に記載のコンピュータ可読記録媒体。
【請求項２５】
前記メモリが、前記第1の複数のデータソースおよび前記第2の複数のデータソースを含む、請求項24に記載のコンピュータ可読記録媒体。
【請求項２６】
前記1つまたは複数のマイクロプロセッサ命令が、ロード命令、保存命令、またはこれらの任意の組み合わせを含む、請求項22に記載のコンピュータ可読記録媒体。
【請求項２７】
前記1つまたは複数のマイクロプロセッサ命令の少なくとも1つが、取り出されるべきデータのメモリアドレス、取り出されるべきデータのメモリのオフセット、取り出されるべきデータのサイズ、符号拡張のビット、ゼロパディングのビット、左シフトビット、右シフトビット、またはこれらの任意の組み合わせを含む、請求項26に記載のコンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は全般に、多段階の多重化操作に関する。
【背景技術】
【０００２】
技術の進歩により、コンピューティングデバイスはより小型でより強力になってきた。たとえば、現在では、小型で、軽量で、かつユーザーが簡単に持ち運べる、携帯式のワイヤレス電話、携帯情報端末(PDA)、およびページングデバイスのような、ワイヤレスコンピューティングデバイスを含む、様々な携帯式のパーソナルコンピューティングデバイスが存在する。より具体的には、携帯電話およびインターネットプロトコル(IP)電話のような携帯式のワイヤレス電話は、ワイヤレスネットワークを通じて、音声およびデータパケットを通信することができる。さらに、多くのそのようなワイヤレス電話は、中に組み込まれる他の種類のデバイスを含む。たとえば、ワイヤレス電話は、デジタルスチルカメラ、デジタルビデオカメラ、デジタルレコーダ、およびオーディオファイルプレーヤーも含み得る。また、そのようなワイヤレス電話は、インターネットにアクセスするのに用いられ得るウェブブラウザアプリケーションのような、ソフトウェアアプリケーションを含む、実行可能命令を処理することができる。したがって、これらのワイヤレス電話は、かなりのコンピューティング能力を含み得る。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ワイヤレス電話のような電子デバイスは、一般に、メモリのようなデータ記憶デバイスを含む。メモリに存在するデータに対して操作を行う、電子デバイスにおける実行命令(たとえば、プロセッサ命令)は、一般に、3つの別々の段階を含む。第1の段階では、所望のデータが選択され、メモリから取り出される。第2の段階では、選択されたデータが操作される(たとえば、整列される、符号パディングもしくはゼロパディングされる、符号拡張もしくはゼロ拡張される、または複製される)。第3の段階では、操作されたデータが、命令に従って処理される。第1の段階および第2の段階は、複数のプロセッササイクルにわたってもよい。したがって、ある場合には、データを処理して所望の命令の結果を得ることよりも、処理されるべきデータを取り出して準備することに、長く時間がかかる(すなわちより多くのプロセッササイクルにわたる)ことがある。
【課題を解決するための手段】
【０００４】
データ選択がデータ操作と同時に行われ得る、データのローディングおよび保存の処理を実現する、システム、方法、およびコンピュータ可読記憶媒体が開示される。データの操作は、データ複製(たとえば、1つまたは複数のワード、ハーフワード、またはデータのバイトの複製)またはデータ整列(たとえば、データの左シフト、データの右シフト、データの符号拡張もしくはゼロ拡張、またはデータの符号パディングもしくはゼロパディング)を含み得る。メモリからデータを取り出すのに用いられる、多段階の多重化操作の1つまたは複数の段階は、複数のデータソースから同時に選択できるとともに、選択されたデータソースからのデータを修正する(たとえば、データ複製またはデータ整列により)ことができる。したがって、データの取り出しおよびデータ操作は統合することができ、メモリに関する操作の性能が向上する可能性がある。
【０００５】
特定の一実施形態では、多段階の多重化操作の第1の段階の間に、複数のデータソースから第1のデータソースを選択するステップを含む、方法が開示される。この方法はまた、第1の段階の間に、選択された第1のデータソースから受け取られた第1のデータに対して、第1のデータ整列操作と第1のデータ複製操作のうちの少なくとも1つを実行するステップを含む。
【０００６】
別の特定の実施形態では、装置は、複数のデータソースを含むメモリを含む。装置はまた、複数のデータソースの1つから取り出されたダブルワードの複数のセグメントに対して、データ整列操作とデータ複製操作のうちの少なくとも1つを選択的に実行するように構成される、ロード整列器を含む。多重化操作も、複数のデータソースに対して実行される。データ整列操作またはデータ複製操作は、多重化操作と同時に実行される。
【０００７】
別の特定の実施形態では、装置は、複数のデータソースの1つから取り出されたダブルワードの複数のセグメントを、選択的に符号拡張またはゼロ拡張するように構成される、記号またはゼロ拡張論理回路を含む。符号拡張またはゼロ拡張は、多重化操作と同時に実行される。
【０００８】
別の特定の実施形態では、装置は、データを保存するための複数の手段を含む。装置はまた、データを保存するための複数の手段に対して多重化操作を実行するのと並行して、データを保存するための、複数の手段の1つから取り出されたダブルワードの複数のセグメントに対して、データ整列操作とデータ複製操作のうちの少なくとも1つを選択的に実行するための、ロード整列器手段を含む。装置はまた、多重化操作と並行してダブルワードの複数のセグメントを選択的に符号拡張またはゼロ拡張するための、拡張手段を含む。装置はさらに、多重化操作と並行してダブルワードの複数のセグメントを選択的に符号パディングまたはゼロパディングするための、パディング手段を含む。
【０００９】
別の特定の実施形態では、コンピュータ可読媒体が開示される。コンピュータ可読媒体は、マイクロプロセッサにより実行されると、マイクロプロセッサに、多段階の多重化操作の第1の段階を実行させる、マイクロプロセッサ命令を含む。第1の段階を実行するステップは、第1の複数のデータソースから第1のデータソースを選択することを含む、第1の部分的な多重化操作を実行するステップを含む。第1の段階を実行するステップはまた、選択された第1のデータソースから受け取られた第1のデータに対して、第1のデータ整列操作と第1のデータ複製操作のうちの少なくとも1つを実行するステップを含む。第1のデータ整列操作または第1のデータ複製操作は、第1のデータに関して、ワードレベルで実行される。
【００１０】
開示される実施形態の少なくとも1つにより提供される1つの具体的な利点は、多段階の多重化操作の単一の段階の間に、選択および操作(たとえば、整列または複製による)が行えることである。開示される実施形態の少なくとも1つにより提供される別の具体的な利点は、マイクロプロセッサ命令に従って実行ユニットにより処理されることになるデータを、取り出し、選択し、準備するためのプロセッササイクルが、少なくなることである。
【００１１】
本開示の他の態様、利点、および特徴は、以下のセクション、すなわち、図面の簡単な説明、発明を実施するための形態、および特許請求の範囲を含む出願全体を概観した後で、明らかになるだろう。
【図面の簡単な説明】
【００１２】
【図１】組み合わされたデータ整列またはデータ複製を有する段階を含む、多段階の多重化(MUX)操作を実行するシステムの、具体的かつ例示的な実施形態のブロック図である。
【図２】図1の多段階のMUX論理回路の、具体的かつ例示的な実施形態のブロック図である。
【図３】図2の論理回路の動作を例示するためのブロック図である。
【図４】図1の多段階のMUX論理回路および図2の論理回路を含む回路の、具体的かつ例示的な実施形態の回路レベルの図である。
【図５】図3に示されるような図2の論理回路の動作を例示するための回路レベルの図である。
【図６】図1の多段階のMUX論理回路、図2の論理回路、および図4の回路によりサポートされる、データアクセスパターンの具体的な実施形態を例示するための図である。
【図７】データ選択とデータ整列またはデータ複製を組み合わせることを含む、多段階の多重化操作を実行する方法の、具体的かつ例示的な実施形態の流れ図である。
【図８】データ選択とデータ整列またはデータ複製を組み合わせることを含む、多段階の多重化操作を含む、ワイヤレスデバイスのブロック図である。
【発明を実施するための形態】
【００１３】
図1を参照すると、データ整列、データ複製と、データ選択とを組み合わせた段階を含む、多段階の多重化(MUX)操作を実行するシステムの、具体的かつ例示的な実施形態が開示され、全般に100と指定されている。システム100は、メモリ110に保存されたデータを取り出し、(たとえば、整列または複製によって)操作するように構成される、メモリ110および多段階の多重化(MUX)論理回路120を含む。論理回路120は、操作されたデータを、メモリ110およびレジスタファイル130に保存するようにも構成される。
【００１４】
特定の一実施形態では、メモリ110は、ロードおよび保存命令102を介してアクセス可能である。たとえば、ロードおよび保存命令102は、マイクロプロセッサのマイクロプロセッサ命令であってよく、システム100は、マイクロプロセッサの実行ユニットに統合され得る。ロードおよび保存命令102は、取り出されるべきデータのメモリアドレス、取り出されるべきデータのメモリのオフセット、取り出されるべきデータのサイズ(たとえば、バイト数またはビット数)、符号拡張もしくはゼロ拡張のビット、符号パディングもしくはゼロパディングのビット、左シフトもしくは右シフトのビット、または、これらの任意の組み合わせを含み得る。たとえば、特定のロード命令は、メモリ110の特定のアドレスに保存されるデータを取り出して、レジスタファイル130の特定のレジスタに保存することを要求することができる。特定の一実施形態では、メモリ110は、メモリバンクに分割される。たとえば、メモリ110は、図1に示されるように、4つのメモリバンク111、112、113、および114に分割され得る。特定の一実施形態では、メモリバンク111〜114の各々は、64ビットのダブルワードを保存する。各々の64ビットのダブルワードは、2つの32ビットのワードを含むことができ、各々の32ビットのワードは、2つの16ビットのハーフワードを含むことができ、各々の16ビットのハーフワードは、2つの8ビットのバイトを含むことができる。
【００１５】
論理回路120は、メモリ110から取り出されたデータに対して、多段階のMUX操作を実行するように構成される。多段階のMUX操作は、2つ以上の段階を含む。特定の一実施形態では、多段階のMUX操作は3つの段階を含み、3つの段階の各々は、データ選択動作とデータ操作動作の両方を含む。論理回路120は、メモリ110から取り出されたデータを、メモリ110およびレジスタファイル130に戻して保存するようにも構成される。したがって、特定の一実施形態では、論理回路120は、メモリ110の第1のアドレスから、メモリ110の同じアドレスまたは第2のアドレスに、データを移すために用いられ得る。論理回路120の具体的な実施形態が、図2および図4を参照してさらに説明される。
【００１６】
レジスタファイル130は、データを保存するように構成される1つまたは複数のレジスタを含み得る。たとえば、レジスタファイル130は、複数の64ビットのレジスタを含む、64ビットのレジスタファイルであってよく、各々のレジスタは、64ビットのデータ項目を保存するように構成される。特定の一実施形態では、レジスタファイル130は、マイクロプロセッサによる演算(たとえば、加算、減算、論理積、論理和)がメモリ110から取り出されたデータに対して実行される前に、その取り出されたデータを保存するために用いられる。レジスタファイル130はまた、マイクロプロセッサの操作の結果を保存するためにも用いられ得る。
【００１７】
動作時、1つまたは複数のロードまたは保存命令102は、メモリ110に保存されたデータに関する多段階のMUX操作を引き起こすことができる。たとえば、多段階のMUX操作の第1の段階の間、論理回路120は、第1のメモリバンク111から取り出された第1のダブルワード(たとえば64ビット)と、第2のメモリバンク112から取り出された第2のダブルワードから、選択することができる。論理回路120はまた、第3のメモリバンク113から取り出された第3のダブルワードと、第4のメモリバンク114から取り出された第4のダブルワードから、選択することができる。論理回路120はさらに、データ選択と並行して、ワードレベル(たとえば32ビット)のデータ操作の動作(たとえば、符号拡張、ゼロパディング、および整列)を、選択されたデータに対して実行することができる。したがって、多段階のMUX操作の第1の段階は、第1のメモリバンク111または第2のメモリバンク112のいずれかから、第1の選択されたダブルワードを生成し、第3メモリバンク113または第4メモリバンク114いずれかから、第2の選択されたダブルワードを生成することができ、第1の選択されたダブルワードと第2の選択されたダブルワードの両方が、データ操作を受ける。
【００１８】
多段階のMUX操作の第2の段階の間、論理回路120は、第1の段階の間に生成された、第1の選択されたダブルワードおよび第2の選択されたダブルワードから、選択することができる。論理回路120はまた、ハーフワードレベル(たとえば16ビット)のデータ操作の動作(たとえば、符号拡張、ゼロパディング、および整列)を、選択されたデータに対して実行することができる。したがって、多段階のMUX操作の第2の段階は、4つのメモリバンク111〜114の1つからダブルワードを生成することができ、このダブルワードは、ワードレベルとハーフワードレベルの両方で、選択的なデータ操作を受けている。データ操作は、データの複製(たとえば、1つまたは複数のワード、ハーフワード、またはデータのバイトの複製)またはデータの整列(たとえば、データの左シフト、データの右シフト、データの符号拡張もしくはゼロ拡張、またはデータ符号パディングもしくはゼロパディング)を含み得る。いくつかの状況では、データ整列は、データの元の配列を変更することを含まなくてもよいことに、留意されたい。たとえば、メモリ110から取り出されるデータは、所望のワードの境界において既に整列されていてもよい。例示的なデータ操作の動作が、図6を参照してさらに説明される。
【００１９】
多段階のMUX操作の第3の段階の間、論理回路120はさらに、データ操作(たとえば、符号拡張もしくゼロ拡張、符号パディングもしくはゼロパディング、および整列)を、第2の段階で生成された、ダブルワード、またはダブルワードの選択された部分に対して、バイトレベルで実行することができる。たとえば、得られる最終的なデータは、2つの複製されたワード、少なくとも2つの複製されたハーフワード、少なくとも1つの符号拡張のバイト、少なくとも1つのゼロパディングのバイト、少なくとも2つの複製されたバイト、少なくとも1つの再整列されたバイト、またはこれらの組み合わせを含み得る。第3の段階が終結すると、得られた最終的なデータは、ロードまたは保存命令102の要求に従って、メモリ110またはレジスタファイル130に戻され保存され得る。
【００２０】
図1のシステム100は、多段階のMUX操作の単一の段階の間に、データ選択とデータ操作(たとえば、整列または複製による)を組み合わせることを可能にし得るということが、理解されよう。したがって、図1のシステム100は、マイクロプロセッサ命令に従って、処理されるべきデータを取り出し、選択し、準備するためのプロセッササイクルを減らせるということが、理解されよう。
【００２１】
図2を参照すると、図1の多段階のMUX論理回路120の、具体的かつ例示的な実施形態のブロック図が示され、200と指定されている。論理回路200は、ワードレベルの整列および複製を含む第1の部分的なMUX221と、ワードレベルの整列および複製を含む第2の部分的なMUX222と、ハーフワードレベルの整列および複製を含む最終MUX223と、バイトレベルの整列、複製、および変換を実行するように構成されるデータ操作論理回路224とを含む。論理回路200は、4つのメモリバンク211、212、213、214の各々から64ビットのデータを受け取り、出力として64ビットのデータを生成することができる。例示的な一実施形態では、メモリバンク211〜214は、図1のメモリバンク111〜114である。
【００２２】
第1の部分的なMUX221は、第1のメモリバンク211から第1の64ビットのデータを受け取り、第2のメモリバンク212から第2の64ビットのデータ受け取ることができる。たとえば、第1の64ビットのデータは、(最上位のバイトから最下位のバイトまで順番に)バイトB7〜B0と指定されていてもよく、第2の64ビットのデータは、バイトB15〜B8と指定されていてもよい。第1の部分的なMUX221は、第1の64ビットのデータおよび第2の64ビットのデータから、選択することができる。第1の部分的なMUX221は、選択された64ビットのデータの複数のセグメントに対して、ワードレベル(すなわち32ビット)の整列および複製を実行することもできる。したがって、第1の部分的なMUX221は、第1の選択された64ビットのダブルワード231を出力として生成することができ、第1の選択された64ビットのダブルワード231は、第1のメモリバンク211からのバイトB7〜B0と、第2のメモリバンク212からのバイトB15〜B8のいずれかが、ワードレベルで整列/複製されたものである。特定の一実施形態では、第1の部分的なMUX221は、ロード整列器、記号またはゼロ拡張論理回路、符号パディングもしくはゼロパディング論理回路、またはこれらの任意の組み合わせに統合される。別の特定の実施形態では、第1の部分的なMUX221は、ロード整列器、符号拡張もしくはゼロ拡張論理回路、符号パディングもしくはゼロパディング論理回路、またはこれらの任意の組み合わせを含む。
【００２３】
第2の部分的なMUX222は、第1の部分的なMUX221と並行して(たとえば第1の段階の間に)動作することができる。第2の部分的なMUX222は、第3のメモリバンク213から第3の64ビットのデータを受け取り、第4のメモリバンク214から第4の64ビットのデータ受け取ることができる。たとえば、第3の64ビットのデータは、バイトB23〜B16と指定されてもよく、第4の64ビットのデータは、バイトB31〜B24と指定されてもよい。第2の部分的なMUX222は、第3の64ビットのデータおよび第4の64ビットのデータから、選択することができる。第2の部分的なMUX222は、選択された64ビットのデータの複数のセグメントに対して、ワードレベル(すなわち32ビット)の整列および複製を実行することもできる。したがって、第2の部分的なMUX222は、第2の選択された64ビットのダブルワード232を生成することができ、第2の選択された64ビットのダブルワード232は、第3のメモリバンク213からのバイトB23〜B16と、第4のメモリバンク214からのバイトB31〜B24のいずれかが、ワードレベルで整列/複製されたものである。特定の一実施形態では、第2の部分的なMUX222は、ロード整列器、符号拡張論理回路、ゼロパディング論理回路、またはこれらの任意の組み合わせに統合される。別の特定の一実施形態では、第2の部分的なMUX222は、ロード整列器、符号拡張論理回路、ゼロパディング論理回路、またはこれらの任意の組み合わせを含む。
【００２４】
最終MUX223は、第1の選択された64ビットのダブルワード231と、第2の選択された64ビットのダブルワード232のどちらかを、受け取って選択することができる。最終MUX223はまた、ハーフワードレベル(すなわち16ビット)の整列および複製を実行することもできる。したがって、最終MUX223は、64ビットのダブルワード233という出力を生成することができ、64ビットのダブルワード233は、バイトB7〜B0、バイトB15〜B8、バイトB23〜B16、または、バイトB31〜B24のうちの1つが、ワード/ハーフワードレベルで整列/複製されたものである。
【００２５】
データ操作論理回路224は、最終MUX223から64ビットのダブルワード233を受け取り、バイトレベルの整列、複製、および変換を、64ビットのダブルワード233に対して実行し、64ビットの最終的な出力データ234を生成することができる。8バイトの最終的な出力データ234は、バイトD7〜D0と指定されてもよい。
【００２６】
論理回路200の動作の具体的な実施形態が、図3を参照して説明され得る。例示的な一実施形態では、メモリバンク311、312、313、314は、図2のメモリバンク211、212、213、214であり、部分的なMUX321、322は、図2の部分的なMUX221、222であり、最終MUX323は、図2の最終MUX223であり、データ操作論理回路324は、図2のデータ操作論理回路224である。
【００２７】
特定の例では、マイクロプロセッサ命令は、オペランドのバイトと、第1のメモリバンク311に保存されるデータの特定のバイト302「E1」との、論理和の演算を実行することができる。特定のバイト302は、図3に示されるように、第1の64ビットのダブルワード301「F0E1D2C3B4A59687」の一部であってよい。特定の一実施形態では、特定のバイト301は、論理和の演算が行われる前に取り出され、最下位の位置にゼロパディングされる。たとえば、論理和を実行する前にゼロパディングを行うことで、オペランドの非必須のビットが、論理和の演算を「飛ばして」変わらないままになることが可能になり得る。
【００２８】
多段階のMUX操作の第1の段階の間、第1の部分的なMUX321は、第1のメモリバンク311から第1の64ビットのダブルワード301を受け取ることができ、第2のメモリバンク312から第2の64ビットのダブルワードを受け取ることができる。所望のバイト302は、第1の64ビットのダブルワード301の第1のワード「F0E1D2C3」の中にあるので、第1の部分的なMUX321は、第1の64ビットのダブルワード301を選択し、第1の64ビットのダブルワード301の最初のワードに関して、ワードレベルの複製を実行する。第1の部分的なMUX321は、第1の選択された64ビットのダブルワード331「F0E1D2C3F0E1D2C3」を生成することができる。
【００２９】
多段階のMUX操作の第2の段階の間、最終MUX323は、第1の部分的なMUX321から第1の選択された64ビットのダブルワード331を受け取ることができ、第2の部分的なMUX322から第2の選択された64ビットのダブルワード(図示せず)を受け取ることができる。所望のバイト302は、第1の選択された64ビットのダブルワード331の第3のハーフワード「F0E1」の中にあるので、最終MUX323は、第1の選択された64ビットのダブルワード331を選択し、第1の選択された64ビットのダブルワード331の第3のハーフワードに関して、ハーフワードレベルの複製を実行する。最終MUX323は、64ビットのダブルワード333「F0E1F0E1F0E1F0E1」を、出力として生成することができる。
【００３０】
多段階のMUX操作の第3の段階の間、データ操作論理回路324は、64ビットのダブルワード333に関して、他の必要なデータ変換を実行することができる。たとえば、データ操作論理回路324は、64ビットのダブルワード333にゼロパディングを行い、最終的な出力データ334「00000000000000E1」を生成することができる。最終的な出力データ334は、次いで、論理和の演算に用いられ得る。
【００３１】
図2および図3に示される論理回路は、データ取り出し/選択論理回路およびデータ操作論理回路を統合できることが、理解されよう。したがって、図2の最終的な出力データ234(図3の334)は、マイクロプロセッサ命令(たとえば論理和)に従って処理される前に、さらなる操作を必要としなくてもよいことが、理解されよう。
【００３２】
図4を参照すると、図1の多段階のMUX論理回路120および図2の多段階のMUX論理回路200の、具体的かつ例示的な実施形態の回路レベルの図が示され、全般に400と指定されている。
【００３３】
特定の一実施形態では、図4に示されるように、データ選択とデータ整列/複製を組み合わせた、多段階のMUX論理回路は、and/or MUXを用いて実装され得る。たとえば、図2の第1の部分的なMUX221は、4入力の8つのand/or MUX401、402、403、404、405、406、407、および408を用いて実装され得る。図2の第2の部分的なMUX222は、4入力の8つのand/or MUX411、412、413、414、415、416、417、および418を用いて実装され得る。様々なメモリバンクから入力されたバイトは、様々なand/or MUX 401〜418に拡散され得ることに留意されたい。たとえば、and/or MUX401は、図2の第1のメモリバンク211からバイトB0およびB4を受け取ることができ、図2の第2のメモリバンク212からバイトB8およびB12を受け取ることができる。別の例として、and/or MUX418は、図2の第3のメモリバンク213からバイトB19およびB23を受け取ることができ、図2の第4のメモリバンク214からバイトB27およびB31を受け取ることができる。
【００３４】
図2の最終MUX223および図2のデータ操作論理回路224はまた、and/or MUXを用いて実装され得る。たとえば、図2の最終MUX223は、4入力の8つのand/or MUX421、422、423、424、425、426、427、および428を用いて実装され得る。and/ or MUX421〜428の各々の各入力は、and/or MUX401〜418のうちの1つのある出力であってよい。図2のデータ操作論理回路224は、4入力の8つのand/or MUX431、432、433、434、435、436、437、および438を用いて実装され得る。and/or MUX431〜438の各入力は、and/or MUX421〜428のうちの1つのある入力、または、そうした入力が、符号拡張もしくはゼロ拡張/符号パディングもしくはゼロパディングされた(「SZ」)ものであってよい。and/or MUX431〜438の各々は、最終的なデータの1つのバイトD7〜D0を生成することができる。
【００３５】
分かりやすくするために、回路400の全ての接続が示されてはいないことに留意されたい。たとえば、図4においては接続されていないが、and/or MUX408の出力「A」は、and/or MUX428とand/or MUX426の両方に入力される。図4に示される各々のバイトレベルのand/or MUXは、8つのビットレベルのand/or MUXを含み得ることに、さらに留意されたい。つまり、図4に示される各々のバイトレベルのand/or MUXは、8つのビットレベルのand/or MUXを表すことができ、各々の入力ビットは、異なる4入力のビットレベルのand/or MUXに与えられ得る。
【００３６】
and/or MUXが図1の多段階のMUX論理回路120を実装するために用いられる場合、ゼロ拡張およびゼロパディングを、特定のand/or MUXの全ての選択を無効にすることで、またはアサート停止する(たとえば、ゼロに設定する)ことで、実行することができ、そうして、特定のand/or MUXの出力として、ゼロの値を生成する。記号による拡張は、8ビット長の4入力のand/or MUXへの入力の1つを記号ビットとして指定し、その記号ビットを特定の入力の全ての8ビットと接続することによって、実行され得る。次いで、その8ビットが、and/or MUXの出力全体に記号のビットを拡張するように、(たとえば符号拡張器の選択により)選択され得る。
【００３７】
代わりに、本明細書で説明されるような多段階の多重化操作、またはその一部は、他の論理要素を用いて実装されてもよいことに、留意されたい。たとえば、第1および第2の段階のMUXは、and/or MUXの代わりに、パスゲートによる4対1のMUXを用いて実装されてもよい。第3の段階のMUXは、ゼロパディングおよびゼロ拡張が求められない場合には、パスゲートによる4対1のMUXを用いて実装されてもよい。ゼロパディングまたはゼロ拡張が求められる場合には、第3の段階のMUXは、代わりに、5つの入力のうちの1つがゼロに設定された、5対1のMUXにより実装されてもよい。符号拡張は、8ビット長のパスゲートによる4対1のMUXへの入力の1つを記号ビットとして指定し、その記号ビットを特定の入力の全ての8ビットとつなげることによって、実行され得る。その8ビットは、パスゲートによるMUXの出力全体に記号のビットを拡張するように、(たとえば符号拡張器の選択により)選択され得る。パスゲートによるMUXでは、入力のうちの1つは常にアサートされている(たとえば、1である)ことに留意されたい。したがって、パスゲートによるMUXの出力としてゼロを生成するために(たとえば、ゼロパディングまたはゼロ拡張のために)、ゼロが、パスゲートによるMUXの入力の1つに追加され得る。別の具体的な実施形態では、第3の段階のみが、4対1のand/or MUXを用いて実装されてもよく、最初の2つの段階は、パスゲートによる4対1のMUXを用いて実装されてもよい。
【００３８】
図4の回路400の動作の具体的な実施形態が、図5を参照して示され得る。例示的な一実施形態では、and/or MUX511〜518、521〜528、531〜538、および541〜548は、それぞれ、図4のand/or MUX411〜418、421〜428、431〜438、および441〜448である。
【００３９】
たとえば、図3の例を参照して説明されたように、マイクロプロセッサ命令は、オペランドのバイトと、メモリ内の64ビットのダブルワード(たとえば、「F0E1D2C3B4A59687」)に保存される特定のバイト(たとえば、「E1」)との論理和の演算を実行することができる。特定のバイトは、回路500によって取り出され、選択され、ゼロパディングされ得る。
【００４０】
ダブルワード「F0E1D2C3B4A59687」のバイトがB7〜B0に指定される場合、所望のバイト「E1」はB6の位置にある。したがって、多段階のMUX操作の第1の段階の間、図5に示されるように、ワード「F0E1D2C3」が、and/or MUX501〜508により、選択され複製されて、第1の結果のダブルワード「F0E1D2C3F0E1D2C3」を生成することができる。
【００４１】
多段階のMUX操作の第2の段階の間、図5に示されるように、and/or MUX521〜528により、第1の結果のダブルワード「F0E1D2C3F0E1D2C3」のハーフワード「F0E1」が選択され複製され得る。こうして、第2の結果のダブルワード「F0E1F0E1F0E1F0E1」が生成され得る。
【００４２】
多段階のMUX操作の第3の段階の間、図5に示されるように、第2の結果のダブルワード「F0E1F0E1F0E1F0E1」がand/or MUX531〜538によりゼロパディングされ、最終的な出力のダブルワード「00000000000000E1」を生成することができる。
【００４３】
図4〜5に示されるようにand/or MUXを用いることで、マイクロプロセッサの論理回路を単純化できるということが理解されよう。たとえば、1つの複製されたゲート構造のみが、データパスの3つの多重化段階の各々に対する、マイクロプロセッサの64ビットのデータパスに配置されてもよい。
【００４４】
図6を参照すると、入力ダブルワード600「F0E1D2C3B4A59687」に関するデータアクセスパターンの具体的な実施形態が示される。図6に示されるように、入力ダブルワード600は、8つのバイトB0〜B7(610〜617)、4つのハーフワードH0〜H3(620〜623)、または2つのワードW0〜W1(630〜631)に分割され得る。
【００４５】
図4〜5を参照して説明されるように、入力ダブルワード600「F0E1D2C3B4A59687」の多くの異なる変形形態が、多段階のMUX処理の間に生成され得る。たとえば、ワードが複製された変形形態が生成され得る。例示すると、ダブルワード641は、ワードW0(630)に関して複製されたワードであり、ダブルワード642は、ワードW1(631)に関して複製されたワードである。入力ダブルワード600の、ハーフワードが複製された変形形態も生成され得る。例示すると、ダブルワード643は、ハーフワードH1(621)に関して複製されたハーフワードであり、ダブルワード644は、ハーフワードH2(622)に関して複製されたハーフワードである。ダブルワード645は、ハーフワードの複製に続いて、ワードを複製することで生成され得る。
【００４６】
入力ダブルワード600の、ゼロパディングおよび符号拡張された変形形態も生成され得る。たとえば、ダブルワード646は、ハーフワードH0(620)に対してハーフワードレベルでゼロパディングされた、入力ダブルワード600を示し、ダブルワード647は、ハーフワードH0(620)に対してハーフワードレベルで符号拡張された、入力ダブルワード600を示す。別の例として、ダブルワード648は、バイトB0(610)に対してバイトレベルでゼロパディングされた、入力ダブルワード600を示し、ダブルワード649は、バイトB0(610)に対してバイトレベルで符号拡張された、入力ダブルワード600を示す。
【００４７】
入力ダブルワード600の特定のバイトはまた、個別に再整列され得る。たとえば、ダブルワード650は、ワードW1(631)の個々のバイトに対するゼロパディングおよび再整列を示し、ダブルワード651は、ワードW1(631)の個々のバイトに対する符号拡張および再整列を示す。別の例として、ダブルワード652は、ハーフワードH0(620)の個々のバイトに対するゼロパディングおよび再整列を示し、ダブルワード653は、ハーフワードWH0(620)の個々のバイトに対する符号拡張および再整列を示す。
【００４８】
図6に示されるようなデータ操作は、データを左にシフトすること、右にシフトすること、またはこれらの組み合わせによって実施され得ることが、理解されよう。図6に示されるようなデータ操作は、ダブルワードレベル、ワードレベル、ハーフワードレベル、またはバイトレベルのうちの1つまたは複数で実行され得ることも、理解されよう。したがって、多くの異なるデータアクセスパターンが、本明細書で開示されるような多段階のMUX操作に対応し得る。
【００４９】
図7を参照すると、データ選択とデータ整列またはデータ複製を組み合わせることを含む、多段階の多重化操作を実行する方法700の、具体的かつ例示的な実施形態の流れ図が示される。例示的な一実施形態では、方法700は、図1のシステム100、図2の論理回路200、または図4の回路400により実行され得る。
【００５０】
方法700は、710において、多段階の多重化操作の第1の段階を実行するステップを含む。第1の段階を実行するステップは、711において、第1の複数のデータソースから第1のデータソースを選択するステップと、712において、選択された第1のデータソースから受け取られた第1のデータに対して、第1のデータ整列操作と第1のデータ複製操作の少なくとも1つを実行するステップとを含む。たとえば、図2において、第1の部分的なMUX221は第1のメモリバンク211を選択することができ、第1のメモリバンク211から受け取られたデータに対して、ワードレベルの整列/複製を実行することができる。
【００５１】
第1の段階を実行するステップはまた、713において、第2の複数のデータソースから第2のデータソースを選択するステップと、714において、選択された第2のデータソースから受け取られた第2のデータに対して、第2のデータ整列操作と第2のデータ複製操作の少なくとも1つを実行するステップを含む。たとえば、図2において、第2の部分的なMUX222は第3のメモリバンク213を選択することができ、第3のメモリバンク213から受け取られたデータに対して、ワードレベルの整列/複製を実行することができる。
【００５２】
方法700はまた、第1の段階の次の、多段階の多重化操作の第2の段階の間に、720において、第3のデータ整列操作と第3のデータ複製操作の少なくとも1つを、第3のデータに対して実行するステップを含む。第3のデータは、第1のデータと第2のデータのうちの1つから選択される。たとえば、図2において、最終MUX223は、第1の部分的なMUX221から受け取られた第1の選択されたダブルワード231に対して、ハーフワードレベルの整列/複製を選択し実行する。
【００５３】
方法700はさらに、第2の段階の次の、多段階の多重化操作の第3の段階の間に、730において、データ整列操作、データ複製操作、符号拡張またはゼロ拡張操作、および符号パディングまたはゼロパディング操作のうちの少なくとも1つを、第3のデータに対して実行して、最終的なデータを生成するステップを含む。たとえば、図2において、データ操作論理回路224は、バイトレベルの整列、複製、および変換を実行して、最終的な出力データ234を生成することができる。
【００５４】
方法700は、740において、レジスタファイルに最終的なデータを保存するステップ、または750において、メモリに最終的なデータを保存するステップを含む。メモリは、第1の複数のデータソースおよび第2の複数のデータソースを含み得る。たとえば、図2において、最終的な出力データ234は、レジスタファイルまたはメモリに保存され得る。例示的な一実施形態では、最終的な出力データ234は、図1のレジスタファイル130を参照して説明されるようにレジスタファイルにおいて、または、図1のメモリ110を参照して説明されるようにメモリにおいて、保存される。
【００５５】
図7の方法700は、多段階のMUX操作の様々な段階の間に、データ選択とデータ操作(たとえば、整列または複製による)を組み合わせることを可能にし得るということが、理解されよう。したがって、図7の方法700は、マイクロプロセッサ命令に従って、処理されるべきデータを取り出し、選択し、準備するためのプロセッササイクルを減らせるということが、理解されよう。
【００５６】
図8を参照すると、整列/複製/選択を組み合わせた段階を含む、多段階のMUX操作を実行するように動作可能な電子デバイスの、具体的かつ例示的な実施形態のブロック図が示され、全般に800と指定されている。デバイス800は、メモリ832に結合されるデジタルシグナルプロセッサ(DSP)810のような、プロセッサを含む。デジタルシグナルプロセッサ810は、整列/複製/選択を組み合わせた1つまたは複数の段階を含む、多段階のMUX論理回路864を含む。例示的な一実施形態では、論理回路864は、図1の論理回路120、図2の論理回路200、および図4の回路400のうちの1つまたは複数を含む。
【００５７】
図8はまた、デジタルシグナルプロセッサ810およびディスプレイ820に結合される、ディスプレイコントローラ826を示す。コーダ/デコーダ(CODEC)834も、デジタルシグナルプロセッサ810に結合され得る。スピーカー836およびマイクロフォン838が、CODEC 834に結合され得る。
【００５８】
図8はまた、ワイヤレスコントローラ840が、デジタルシグナルプロセッサ810およびワイヤレスアンテナ842に結合され得ることを示す。ある具体的な実施形態では、DSP810、ディスプレイコントローラ826、メモリ832、CODEC834、およびワイヤレスコントローラ840は、システムインパッケージデバイスまたはシステムオンチップデバイス822に含まれる。ある具体的な実施形態では、入力デバイス830および電源844が、システムオンチップデバイス822に結合される。さらに、ある具体的な実施形態では、図8に示されるように、ディスプレイ828、入力デバイス830、スピーカー836、マイクロフォン838、ワイヤレスアンテナ842、および電源844が、システムオンチップデバイス822の外部にある。しかし、ディスプレイ828、入力デバイス830、スピーカー836、マイクロフォン838、ワイヤレスアンテナ842、および電源844の各々は、インターフェースまたはコントローラのような、システムオンチップ822のあるコンポーネントに結合されてもよい。
【００５９】
ある具体的な実施形態では、デバイス800は、通信デバイス(たとえばワイヤレス電話)、音楽プレーヤー、ビデオプレーヤー、娯楽ユニット、ナビゲーションデバイス、携帯情報端末(PDA)、またはコンピュータである。動作中、DSP810は、メモリ832からのデータを取り出すことおよび操作することを含む、命令を実行することができる。多段階のMUX論理回路864は、データを同時に選択して操作する(たとえば、符号拡張、ゼロパディング、およびワード/ハーフワード/バイトの複製により)、1つまたは複数の段階を含み得る。多段階のMUX操作が完了すると、データは、命令に従って処理することができ、結果は、メモリ832またはDSPのレジスタファイルに保存することができる。
【００６０】
本明細書で開示される実施形態とともに説明された、様々な例示的な論理ブロック、構成、モジュール、回路、およびアルゴリズムのステップは、電子的なハードウェア、コンピュータソフトウェア、またはこれら両方の組み合わせとして実装され得ることを、当業者はさらに理解するだろう。様々な例示的なコンポーネント、ブロック、構成、モジュール、回路、およびステップが、全般にそれらの機能に関して説明されてきた。そのような機能がハードウェアとして実装されるかソフトウェアとして実装されるかは、具体的な用途およびシステム全体に課される設計制約により決まる。当業者は、各々の具体的な用途に対して、説明された機能を様々な方法で実装できるが、そのような実装に関する決定は、本開示の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【００６１】
本明細書で開示される実施形態とともに説明された方法またはアルゴリズムのステップは、直接ハードウェアとして、プロセッサにより実行されるソフトウェアモジュールとして、またはこれら2つの組み合わせとして具現化され得る。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読み取り専用メモリ(ROM)、プログラム可能読み取り専用メモリ(PROM)、消去可能なプログラム可能読み取り専用メモリ(EPROM)、電気的に消去可能なプログラム可能読み取り専用メモリ(EEPROM)、レジスタ、ハードディスク、取り外し可能ディスク、コンパクトディスク読み取り専用メモリ(CD-ROM)、または、当技術分野で知られている任意の他の形態の記憶媒体に存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取れるように、または記憶媒体に情報を書き込めるように、プロセッサに結合される。代替的には、記憶媒体は、プロセッサと一体であってもよい。プロセッサおよび記憶媒体は、特定用途向け集積回路(ASIC)の中に存在してもよい。ASICは、コンピューティングデバイスまたはユーザー端末に存在してもよい。代替的には、プロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザー端末の中に個別のコンポーネントとして存在してもよい。
【００６２】
開示される実施形態の上記の説明は、当業者が、開示される実施形態を実現し使用できるようにするために提供される。これらの実施形態に対する様々な修正形態が当業者には容易に明らかであり、本明細書で定義される原理は、本開示の範囲から逸脱することなく、他の実施形態に適用され得る。したがって、本開示は、本明細書に示される実施形態に限定されることは意図されず、以下の特許請求の範囲で定義される原理および新規の特徴と矛盾しない、可能な最大の範囲を認められるべきである。
【符号の説明】
【００６３】
100  システム
102  ロード/保存命令
110  メモリ
111  メモリバンク
120  多段階のMUX論理回路
130  レジスタファイル
200  論理回路
211  メモリバンク
221  第1の部分的なMUX
222  第2の部分的なMUX
223  最終MUX
224  データ操作論理回路
311  メモリバンク
321  第1の部分的なMUX
322  第2の部分的なMUX
323  最終MUX
324  データ操作論理回路
401  and/or MUX
501  and/or MUX
600  ダブルワード
610  バイト
620  ハーフワード
630  ワード
800  デバイス
810  デジタルシグナルプロセッサ
822  システムオンチップデバイス
826  ディスプレイコントローラ
828  ディスプレイ
830  入力デバイス
832  メモリ
834  CODEC
836  スピーカー
838  マイクロフォン
840  ワイヤレスコントローラ
842  ワイヤレスアンテナ
844  電源
864  多段階MUX論理回路
【図１】
0005584781.tif 000002
【図２】
0005584781.tif 000003
【図３】
0005584781.tif 000004
【図４】
0005584781.tif 000005
【図５】
0005584781.tif 000006
【図６】
0005584781.tif 000007
【図７】
0005584781.tif 000008
【図８】
0005584781.tif 000009