多段階の多重化操作の第1の段階の間に、第1の複数のデータソースから第1のデータソースを選択するステップと、前記選択された第1のデータソースからの第1のデータに対して、第1のデータ整列操作と第1のデータ複製操作のうちの少なくとも1つを実行するステップとを含む、方法。前記第1のデータが、第1の64ビットのダブルワードを含み、前記第1のデータ整列操作と前記第1のデータ複製操作のうちの前記少なくとも1つが、前記第1のデータの32ビットのワードに関して実行される、請求項1に記載の方法。前記多段階の多重化操作の前記第1の段階の間に、第2の複数のデータソースから第2のデータソースを選択するステップと、前記選択された第2のデータソースからの第2のデータに対して、第2のデータ整列操作と第2のデータ複製操作のうちの少なくとも1つを実行するステップとをさらに含む、請求項1に記載の方法。前記第2のデータが、第2の64ビットのダブルワードを含み、前記第2のデータ整列操作と前記第2のデータ複製操作のうちの前記少なくとも1つが、前記第2のデータの32ビットのワードに関して実行される、請求項3に記載の方法。前記第1の段階の次の、前記多段階の多重化操作の第2の段階の間に、第3のデータに対して、第3のデータ整列操作と第3のデータ複製操作のうちの少なくとも1つを実行するステップをさらに含み、前記第3のデータが、前記第1のデータと前記第2のデータのうちの1つから選択される、請求項3に記載の方法。前記第3のデータが64ビットのダブルワードを含み、前記第3のデータ整列操作と前記第3のデータ複製操作のうちの前記少なくとも1つが、前記第3のデータの16ビットのハーフワードに関して実行される、請求項5に記載の方法。前記第2の段階の次の、前記多段階の多重化操作の第3の段階の間に、データ整列操作と、データ複製操作と、記号拡張操作と、ゼロ拡張操作と、記号パディング操作と、ゼロパディング操作とのうちの少なくとも1つを、前記第3のデータに対して実行して、最終的なデータを生成するステップをさらに含む、請求項5に記載の方法。前記多段階の多重化操作の前記第3の段階の間に、前記最終的なデータを、レジスタファイルとメモリの少なくとも1つに保存するステップをさらに含む、請求項7に記載の方法。前記メモリが、前記第1の複数のデータソースと、前記第2の複数のデータソースのうちの1つまたは複数を含む、請求項8に記載の方法。前記最終的なデータが、ダブルワード、2つの複製されたワード、少なくとも2つの複製されたハーフワード、少なくとも1つの記号拡張のバイト、少なくとも1つのゼロ拡張のバイト、少なくとも1つの記号パディングのバイト、少なくとも1つのゼロパディングのバイト、少なくとも2つの複製されたバイト、および、少なくとも1つの再整列されたバイトのうちの、1つまたは複数を含む、請求項7に記載の方法。前記第1の複数のデータソースの少なくとも1つのデータソースが、第1のメモリバンクであり、前記第2の複数のデータソースの少なくとも1つのデータソースが、第3のメモリバンクである、請求項1に記載の方法。複数のデータソースを含むメモリと、前記複数のデータソース対して多重化操作を実行するのと同時に、前記複数のデータソースの1つから取り出されたダブルワードの複数のセグメントに対して、データ整列操作とデータ複製操作のうちの少なくとも1つを選択的に実行するように構成される、ロード整列器とを含む、装置。前記ロード整列器がさらに、データを左から右にシフトすることによって、前記データ整列操作を実行するように構成される、請求項12に記載の装置。前記複数のデータソースの各々が、複数バイトのデータソースであり、前記ロード整列器がさらに、バイトごとに、前記データ整列操作と前記データ複製操作の前記少なくとも1つを実行するように構成される、請求項12に記載の装置。前記多重化操作の実行と同時に、前記データ整列操作と前記データ複製操作の前記少なくとも1つを選択的に実行するステップが、前記ダブルワードの各ビットを、4入力のandorマルチプレクサに入力するステップを含む、請求項12に記載の装置。複数のデータソースを含むメモリと、前記複数のデータソースの1つから取り出されたダブルワードの複数のセグメントを、選択的に記号拡張するように構成される、記号拡張論理回路であって、前記記号拡張が、前記複数のデータソースの多重化操作と同時に実行される、記号拡張論理回路とを含む、装置。前記多重化操作と並行して前記ダブルワードの前記複数のセグメントを選択的にゼロパディングするように構成される、ゼロパディング論理回路をさらに含む、請求項16に記載の装置。前記複数のデータソースの各々が複数バイトのソースであり、前記記号拡張論理回路がさらに、バイトごとに前記ダブルワードの前記複数のセグメントを記号拡張するように構成され、前記ゼロパディング論理回路がさらに、バイトごとに前記ダブルワードの前記複数のセグメントの各々をゼロパディングするように構成される、請求項17に記載の装置。前記多重化操作と並行して前記ダブルワードの複数のセグメントを選択的に記号拡張するステップが、前記ダブルワードの各ビットを、4入力のandorマルチプレクサに入力するステップを含む、請求項16に記載の装置。前記ダブルワードが64ビットを含む、請求項16に記載の装置。データを保存するための複数の手段と、データを保存するための前記複数の手段に対して多重化操作を実行するのと並行して、データを保存するための前記複数の手段の1つから取り出されたダブルワードの複数のセグメントに対して、データ整列操作とデータ複製操作のうちの少なくとも1つを選択的に実行するための、ロード整列器手段と、前記多重化操作と並行して前記ダブルワードの複数のセグメントを選択的に記号拡張またはゼロ拡張するための、拡張手段と、前記多重化操作と並行して前記ダブルワードの前記複数のセグメントを選択的に記号パディングまたはゼロパディングするための、パディング手段とを含む、装置。音楽プレーヤー、ビデオプレーヤー、娯楽ユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末、およびコンピュータからなる群から選択されるデバイスをさらに含み、前記デバイスに、前記ロード整列器手段、前記記号拡張手段、および前記ゼロパディング手段が統合される、請求項21に記載の装置。1つまたは複数のマイクロプロセッサ命令を記録するコンピュータ可読記録媒体であって、前記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のデータに関してワードレベルで実行される、ステップとを含む、請求項23に記載のコンピュータ可読記録媒体。前記1つまたは複数のマイクロプロセッサ命令を実行するステップが、さらに、前記マイクロプロセッサに、前記第1の段階の実行の次の、前記多段階の多重化操作の第2の段階を実行させ、前記第2の段階が、前記第1のデータおよび前記第2のデータのうちの1つから第3のデータを選択するステップを含む、多重化操作を実行するステップと、前記第3のデータに対して、第3のデータ整列操作と第3のデータ複製操作のうちの少なくとも1つを実行するステップであって、前記第3のデータ整列操作と前記第3のデータ複製操作のうちの前記少なくとも1つが、前記第3のデータに関してハーフワードレベルで実行される、ステップとを含む、請求項24に記載のコンピュータ可読記録媒体。前記1つまたは複数のマイクロプロセッサ命令を実行するステップが、さらに、前記マイクロプロセッサに、前記第2の段階の実行の次の、前記多段階の多重化操作の第3の段階を実行させ、前記第3の段階が、データ整列操作と、データ複製操作と、記号拡張操作と、ゼロパディング操作とのうちの少なくとも1つを、前記第3のデータに対してバイトレベルで実行して、最終的なデータを生成するステップと、前記最終的なデータを、レジスタファイルとメモリの少なくとも1つに保存するステップとをさらに含む、請求項25に記載のコンピュータ可読記録媒体。前記メモリが、前記第1の複数のデータソースおよび前記第2の複数のデータソースを含む、請求項26に記載のコンピュータ可読記録媒体。前記1つまたは複数のマイクロプロセッサ命令が、ロード命令、保存命令、またはこれらの任意の組み合わせを含む、請求項23に記載のコンピュータ可読記録媒体。前記1つまたは複数のマイクロプロセッサ命令の少なくとも1つが、取り出されるべきデータのメモリアドレス、取り出されるべきデータのメモリのオフセット、取り出されるべきデータのサイズ、記号拡張のビット、ゼロ拡張のビット、記号パディングのビット、ゼロパディングのビット、左シフトビット、右シフトビット、またはこれらの任意の組み合わせを含む、請求項28に記載のコンピュータ可読記録媒体。ワイヤレス電話のような電子デバイスは、一般に、メモリのようなデータ記憶デバイスを含む。メモリに存在するデータに対して操作を行う、電子デバイスにおける実行命令は、一般に、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を参照すると、データ整列、データ複製と、データ選択とを組み合わせた段階を含む、多段階の多重化操作を実行するシステムの、具体的かつ例示的な実施形態が開示され、全般に100と指定されている。システム100は、メモリ110に保存されたデータを取り出し、操作するように構成される、メモリ110および多段階の多重化論理回路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のダブルワードと、第2のメモリバンク112から取り出された第2のダブルワードから、選択することができる。論理回路120はまた、第3のメモリバンク113から取り出された第3のダブルワードと、第4のメモリバンク114から取り出された第4のダブルワードから、選択することができる。論理回路120はさらに、データ選択と並行して、ワードレベルのデータ操作の動作を、選択されたデータに対して実行することができる。したがって、多段階のMUX操作の第1の段階は、第1のメモリバンク111または第2のメモリバンク112のいずれかから、第1の選択されたダブルワードを生成し、第3メモリバンク113または第4メモリバンク114いずれかから、第2の選択されたダブルワードを生成することができ、第1の選択されたダブルワードと第2の選択されたダブルワードの両方が、データ操作を受ける。多段階のMUX操作の第2の段階の間、論理回路120は、第1の段階の間に生成された、第1の選択されたダブルワードおよび第2の選択されたダブルワードから、選択することができる。論理回路120はまた、ハーフワードレベルのデータ操作の動作を、選択されたデータに対して実行することができる。したがって、多段階のMUX操作の第2の段階は、4つのメモリバンク111~114の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ビットのデータの複数のセグメントに対して、ワードレベルの整列および複製を実行することもできる。したがって、第1の部分的なMUX221は、第1の選択された64ビットのダブルワード231を出力として生成することができ、第1の選択された64ビットのダブルワード231は、第1のメモリバンク211からのバイトB7~B0と、第2のメモリバンク212からのバイトB15~B8のいずれかが、ワードレベルで整列複製されたものである。特定の一実施形態では、第1の部分的なMUX221は、ロード整列器、記号またはゼロ拡張論理回路、記号パディングもしくはゼロパディング論理回路、またはこれらの任意の組み合わせに統合される。別の特定の実施形態では、第1の部分的なMUX221は、ロード整列器、記号拡張もしくはゼロ拡張論理回路、記号パディングもしくはゼロパディング論理回路、またはこれらの任意の組み合わせを含む。第2の部分的なMUX222は、第1の部分的なMUX221と並行して動作することができる。第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ビットのデータの複数のセグメントに対して、ワードレベルの整列および複製を実行することもできる。したがって、第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はまた、ハーフワードレベルの整列および複製を実行することもできる。したがって、最終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に保存されるデータの特定のバイト302E1との、論理和の演算を実行することができる。特定のバイト302は、図3に示されるように、第1の64ビットのダブルワード301F0E1D2C3B4A59687の一部であってよい。特定の一実施形態では、特定のバイト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ビットのダブルワード331F0E1D2C3F0E1D2C3を生成することができる。多段階の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ビットのダブルワード333F0E1F0E1F0E1F0E1を、出力として生成することができる。多段階のMUX操作の第3の段階の間、データ操作論理回路324は、64ビットのダブルワード333に関して、他の必要なデータ変換を実行することができる。たとえば、データ操作論理回路324は、64ビットのダブルワード333にゼロパディングを行い、最終的な出力データ33400000000000000E1を生成することができる。最終的な出力データ334は、次いで、論理和の演算に用いられ得る。図2および図3に示される論理回路は、データ取り出し選択論理回路およびデータ操作論理回路を統合できることが、理解されよう。したがって、図2の最終的な出力データ234は、マイクロプロセッサ命令に従って処理される前に、さらなる操作を必要としなくてもよいことが、理解されよう。図4を参照すると、図1の多段階のMUX論理回路120および図2の多段階のMUX論理回路200の、具体的かつ例示的な実施形態の回路レベルの図が示され、全般に400と指定されている。特定の一実施形態では、図4に示されるように、データ選択とデータ整列複製を組み合わせた、多段階のMUX論理回路は、andorMUXを用いて実装され得る。たとえば、図2の第1の部分的なMUX221は、4入力の8つのandorMUX401、402、403、404、405、406、407、および408を用いて実装され得る。図2の第2の部分的なMUX222は、4入力の8つのandorMUX411、412、413、414、415、416、417、および418を用いて実装され得る。様々なメモリバンクから入力されたバイトは、様々なandorMUX401~418に拡散され得ることに留意されたい。たとえば、andorMUX401は、図2の第1のメモリバンク211からバイトB0およびB4を受け取ることができ、図2の第2のメモリバンク212からバイトB8およびB12を受け取ることができる。別の例として、andorMUX418は、図2の第3のメモリバンク213からバイトB19およびB23を受け取ることができ、図2の第4のメモリバンク214からバイトB27およびB31を受け取ることができる。図2の最終MUX223および図2のデータ操作論理回路224はまた、andorMUXを用いて実装され得る。たとえば、図2の最終MUX223は、4入力の8つのandorMUX421、422、423、424、425、426、427、および428を用いて実装され得る。andorMUX421~428の各々の各入力は、andorMUX401~418のうちの1つのある出力であってよい。図2のデータ操作論理回路224は、4入力の8つのandorMUX431、432、433、434、435、436、437、および438を用いて実装され得る。andorMUX431~438の各入力は、andorMUX421~428のうちの1つのある入力、または、そうした入力が、記号拡張もしくはゼロ拡張記号パディングもしくはゼロパディングされたものであってよい。andorMUX431~438の各々は、最終的なデータの1つのバイトD7~D0を生成することができる。分かりやすくするために、回路400の全ての接続が示されてはいないことに留意されたい。たとえば、図4においては接続されていないが、andorMUX408の出力Aは、andorMUX428とandorMUX426の両方に入力される。図4に示される各々のバイトレベルのandorMUXは、8つのビットレベルのandorMUXを含み得ることに、さらに留意されたい。つまり、図4に示される各々のバイトレベルのandorMUXは、8つのビットレベルのandorMUXを表すことができ、各々の入力ビットは、異なる4入力のビットレベルのandorMUXに与えられ得る。andorMUXが図1の多段階のMUX論理回路120を実装するために用いられる場合、ゼロ拡張およびゼロパディングを、特定のandorMUXの全ての選択を無効にすることで、またはアサート停止することで、実行することができ、そうして、特定のandorMUXの出力として、ゼロの値を生成する。記号による拡張は、8ビット長の4入力のandorMUXへの入力の1つを記号ビットとして指定し、その記号ビットを特定の入力の全ての8ビットと接続することによって、実行され得る。次いで、その8ビットが、andorMUXの出力全体に記号のビットを拡張するように、選択され得る。代わりに、本明細書で説明されるような多段階の多重化操作、またはその一部は、他の論理要素を用いて実装されてもよいことに、留意されたい。たとえば、第1および第2の段階のMUXは、andorMUXの代わりに、パスゲートによる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つは常にアサートされていることに留意されたい。したがって、パスゲートによるMUXの出力としてゼロを生成するために、ゼロが、パスゲートによるMUXの入力の1つに追加され得る。別の具体的な実施形態では、第3の段階のみが、4対1のandorMUXを用いて実装されてもよく、最初の2つの段階は、パスゲートによる4対1のMUXを用いて実装されてもよい。図4の回路400の動作の具体的な実施形態が、図5を参照して示され得る。例示的な一実施形態では、andorMUX511~518、521~528、531~538、および541~548は、それぞれ、図4のandorMUX411~418、421~428、431~438、および441~448である。たとえば、図3の例を参照して説明されたように、マイクロプロセッサ命令は、オペランドのバイトと、メモリ内の64ビットのダブルワードに保存される特定のバイトとの論理和の演算を実行することができる。特定のバイトは、回路500によって取り出され、選択され、ゼロパディングされ得る。ダブルワードF0E1D2C3B4A59687のバイトがB7~B0に指定される場合、所望のバイトE1はB6の位置にある。したがって、多段階のMUX操作の第1の段階の間、図5に示されるように、ワードF0E1D2C3が、andorMUX501~508により、選択され複製されて、第1の結果のダブルワードF0E1D2C3F0E1D2C3を生成することができる。多段階のMUX操作の第2の段階の間、図5に示されるように、andorMUX521~528により、第1の結果のダブルワードF0E1D2C3F0E1D2C3のハーフワードF0E1が選択され複製され得る。こうして、第2の結果のダブルワードF0E1F0E1F0E1F0E1が生成され得る。多段階のMUX操作の第3の段階の間、図5に示されるように、第2の結果のダブルワードF0E1F0E1F0E1F0E1がandorMUX531~538によりゼロパディングされ、最終的な出力のダブルワード00000000000000E1を生成することができる。図4~5に示されるようにandorMUXを用いることで、マイクロプロセッサの論理回路を単純化できるということが理解されよう。たとえば、1つの複製されたゲート構造のみが、データパスの3つの多重化段階の各々に対する、マイクロプロセッサの64ビットのデータパスに配置されてもよい。図6を参照すると、入力ダブルワード600F0E1D2C3B4A59687に関するデータアクセスパターンの具体的な実施形態が示される。図6に示されるように、入力ダブルワード600は、8つのバイトB0~B7、4つのハーフワードH0~H3、または2つのワードW0~W1に分割され得る。図4~5を参照して説明されるように、入力ダブルワード600F0E1D2C3B4A59687の多くの異なる変形形態が、多段階のMUX処理の間に生成され得る。たとえば、ワードが複製された変形形態が生成され得る。例示すると、ダブルワード641は、ワードW0に関して複製されたワードであり、ダブルワード642は、ワードW1に関して複製されたワードである。入力ダブルワード600の、ハーフワードが複製された変形形態も生成され得る。例示すると、ダブルワード643は、ハーフワードH1に関して複製されたハーフワードであり、ダブルワード644は、ハーフワードH2に関して複製されたハーフワードである。ダブルワード645は、ハーフワードの複製に続いて、ワードを複製することで生成され得る。入力ダブルワード600の、ゼロパディングおよび記号拡張された変形形態も生成され得る。たとえば、ダブルワード646は、ハーフワードH0に対してハーフワードレベルでゼロパディングされた、入力ダブルワード600を示し、ダブルワード647は、ハーフワードH0に対してハーフワードレベルで記号拡張された、入力ダブルワード600を示す。別の例として、ダブルワード648は、バイトB0に対してバイトレベルでゼロパディングされた、入力ダブルワード600を示し、ダブルワード649は、バイトB0に対してバイトレベルで記号拡張された、入力ダブルワード600を示す。入力ダブルワード600の特定のバイトはまた、個別に再整列され得る。たとえば、ダブルワード650は、ワードW1の個々のバイトに対するゼロパディングおよび再整列を示し、ダブルワード651は、ワードW1の個々のバイトに対する記号拡張および再整列を示す。別の例として、ダブルワード652は、ハーフワードH0の個々のバイトに対するゼロパディングおよび再整列を示し、ダブルワード653は、ハーフワードWH0の個々のバイトに対する記号拡張および再整列を示す。図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に結合されるデジタルシグナルプロセッサ810のような、プロセッサを含む。デジタルシグナルプロセッサ810は、整列複製選択を組み合わせた1つまたは複数の段階を含む、多段階のMUX論理回路864を含む。例示的な一実施形態では、論理回路864は、図1の論理回路120、図2の論理回路200、および図4の回路400のうちの1つまたは複数を含む。図8はまた、デジタルシグナルプロセッサ810およびディスプレイ820に結合される、ディスプレイコントローラ826を示す。コーダデコーダ834も、デジタルシグナルプロセッサ810に結合され得る。スピーカー836およびマイクロフォン838が、CODEC834に結合され得る。図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は、通信デバイス、音楽プレーヤー、ビデオプレーヤー、娯楽ユニット、ナビゲーションデバイス、携帯情報端末、またはコンピュータである。動作中、DSP810は、メモリ832からのデータを取り出すことおよび操作することを含む、命令を実行することができる。多段階のMUX論理回路864は、データを同時に選択して操作する、1つまたは複数の段階を含み得る。多段階のMUX操作が完了すると、データは、命令に従って処理することができ、結果は、メモリ832またはDSPのレジスタファイルに保存することができる。本明細書で開示される実施形態とともに説明された、様々な例示的な論理ブロック、構成、モジュール、回路、およびアルゴリズムのステップは、電子的なハードウェア、コンピュータソフトウェア、またはこれら両方の組み合わせとして実装され得ることを、当業者はさらに理解するだろう。様々な例示的なコンポーネント、ブロック、構成、モジュール、回路、およびステップが、全般にそれらの機能に関して説明されてきた。そのような機能がハードウェアとして実装されるかソフトウェアとして実装されるかは、具体的な用途およびシステム全体に課される設計制約により決まる。当業者は、各々の具体的な用途に対して、説明された機能を様々な方法で実装できるが、そのような実装に関する決定は、本開示の範囲からの逸脱を引き起こすものと解釈されるべきではない。本明細書で開示される実施形態とともに説明された方法またはアルゴリズムのステップは、直接ハードウェアとして、プロセッサにより実行されるソフトウェアモジュールとして、またはこれら2つの組み合わせとして具現化され得る。ソフトウェアモジュールは、ランダムアクセスメモリ、フラッシュメモリ、読み取り専用メモリ、プログラム可能読み取り専用メモリ、消去可能なプログラム可能読み取り専用メモリ、電気的に消去可能なプログラム可能読み取り専用メモリ、レジスタ、ハードディスク、取り外し可能ディスク、コンパクトディスク読み取り専用メモリ、または、当技術分野で知られている任意の他の形態の記憶媒体に存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取れるように、または記憶媒体に情報を書き込めるように、プロセッサに結合される。代替的には、記憶媒体は、プロセッサと一体であってもよい。プロセッサおよび記憶媒体は、特定用途向け集積回路の中に存在してもよい。ASICは、コンピューティングデバイスまたはユーザー端末に存在してもよい。代替的には、プロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザー端末の中に個別のコンポーネントとして存在してもよい。開示される実施形態の上記の説明は、当業者が、開示される実施形態を実現し使用できるようにするために提供される。これらの実施形態に対する様々な修正形態が当業者には容易に明らかであり、本明細書で定義される原理は、本開示の範囲から逸脱することなく、他の実施形態に適用され得る。したがって、本開示は、本明細書に示される実施形態に限定されることは意図されず、以下の特許請求の範囲で定義される原理および新規の特徴と矛盾しない、可能な最大の範囲を認められるべきである。