JP2013517576A5 - - Google Patents

Download PDF

Info

Publication number
JP2013517576A5
JP2013517576A5 JP2012549124A JP2012549124A JP2013517576A5 JP 2013517576 A5 JP2013517576 A5 JP 2013517576A5 JP 2012549124 A JP2012549124 A JP 2012549124A JP 2012549124 A JP2012549124 A JP 2012549124A JP 2013517576 A5 JP2013517576 A5 JP 2013517576A5
Authority
JP
Japan
Prior art keywords
data
stage
sources
multiplexing
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012549124A
Other languages
English (en)
Other versions
JP2013517576A (ja
JP5584781B2 (ja
Filing date
Publication date
Priority claimed from US12/688,091 external-priority patent/US8356145B2/en
Application filed filed Critical
Publication of JP2013517576A publication Critical patent/JP2013517576A/ja
Publication of JP2013517576A5 publication Critical patent/JP2013517576A5/ja
Application granted granted Critical
Publication of JP5584781B2 publication Critical patent/JP5584781B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

ワイヤレス電話のような電子デバイスは、一般に、メモリのようなデータ記憶デバイスを含む。メモリに存在するデータに対して操作を行う、電子デバイスにおける実行命令(たとえば、プロセッサ命令)は、一般に、3つの別々の段階を含む。第1の段階では、所望のデータが選択され、メモリから取り出される。第2の段階では、選択されたデータが操作される(たとえば、整列される、符号パディングもしくはゼロパディングされる、符号拡張もしくはゼロ拡張される、または複製される)。第3の段階では、操作されたデータが、命令に従って処理される。第1の段階および第2の段階は、複数のプロセッササイクルにわたってもよい。したがって、ある場合には、データを処理して所望の命令の結果を得ることよりも、処理されるべきデータを取り出して準備することに、長く時間がかかる(すなわちより多くのプロセッササイクルにわたる)ことがある。
データ選択がデータ操作と同時に行われ得る、データのローディングおよび保存の処理を実現する、システム、方法、およびコンピュータ可読記憶媒体が開示される。データの操作は、データ複製(たとえば、1つまたは複数のワード、ハーフワード、またはデータのバイトの複製)またはデータ整列(たとえば、データの左シフト、データの右シフト、データの符号拡張もしくはゼロ拡張、またはデータの符号パディングもしくはゼロパディング)を含み得る。メモリからデータを取り出すのに用いられる、多段階の多重化操作の1つまたは複数の段階は、複数のデータソースから同時に選択できるとともに、選択されたデータソースからのデータを修正する(たとえば、データ複製またはデータ整列により)ことができる。したがって、データの取り出しおよびデータ操作は統合することができ、メモリに関する操作の性能が向上する可能性がある。
別の特定の実施形態では、装置は、複数のデータソースの1つから取り出されたダブルワードの複数のセグメントを、選択的に符号拡張またはゼロ拡張するように構成される、記号またはゼロ拡張論理回路を含む。符号拡張またはゼロ拡張は、多重化操作と同時に実行される。
別の特定の実施形態では、装置は、データを保存するための複数の手段を含む。装置はまた、データを保存するための複数の手段に対して多重化操作を実行するのと並行して、データを保存するための、複数の手段の1つから取り出されたダブルワードの複数のセグメントに対して、データ整列操作とデータ複製操作のうちの少なくとも1つを選択的に実行するための、ロード整列器手段を含む。装置はまた、多重化操作と並行してダブルワードの複数のセグメントを選択的に符号拡張またはゼロ拡張するための、拡張手段を含む。装置はさらに、多重化操作と並行してダブルワードの複数のセグメントを選択的に符号パディングまたはゼロパディングするための、パディング手段を含む。
特定の一実施形態では、メモリ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ビットのバイトを含むことができる。
動作時、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の部分的な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は、ロード整列器、符号拡張論理回路、ゼロパディング論理回路、またはこれらの任意の組み合わせを含む。
図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を生成することができる。
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を用いて実装されてもよい。
入力ダブルワード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)の個々のバイトに対する符号拡張および再整列を示す。
方法700はさらに、第2の段階の次の、多段階の多重化操作の第3の段階の間に、730において、データ整列操作、データ複製操作、符号拡張またはゼロ拡張操作、および符号パディングまたはゼロパディング操作のうちの少なくとも1つを、第3のデータに対して実行して、最終的なデータを生成するステップを含む。たとえば、図2において、データ操作論理回路224は、バイトレベルの整列、複製、および変換を実行して、最終的な出力データ234を生成することができる。
ある具体的な実施形態では、デバイス800は、通信デバイス(たとえばワイヤレス電話)、音楽プレーヤー、ビデオプレーヤー、娯楽ユニット、ナビゲーションデバイス、携帯情報端末(PDA)、またはコンピュータである。動作中、DSP810は、メモリ832からのデータを取り出すことおよび操作することを含む、命令を実行することができる。多段階のMUX論理回路864は、データを同時に選択して操作する(たとえば、符号拡張、ゼロパディング、およびワード/ハーフワード/バイトの複製により)、1つまたは複数の段階を含み得る。多段階のMUX操作が完了すると、データは、命令に従って処理することができ、結果は、メモリ832またはDSPのレジスタファイルに保存することができる。

Claims (27)

  1. 多段階の多重化操作の第1の段階の間に、
    第1の複数のデータソースから第1のデータソースを選択するステップと、
    前記選択された第1のデータソースからの第1のデータに対して、第1のデータ整列操作と第1のデータ複製操作のうちの少なくとも1つを実行するステップと、
    第2の複数のデータソースから第2のデータソースを選択するステップと、
    前記選択された第2のデータソースからの第2のデータに対して、第2のデータ整列操作と第2のデータ複製操作のうちの少なくとも1つを実行するステップとを含む、方法。
  2. 前記第1のデータが、第1の64ビットのダブルワードを含み、前記第1のデータ整列操作と前記第1のデータ複製操作のうちの前記少なくとも1つが、前記第1のデータの32ビットのワードに関して実行される、請求項1に記載の方法。
  3. 前記第2のデータが、第2の64ビットのダブルワードを含み、前記第2のデータ整列操作と前記第2のデータ複製操作のうちの前記少なくとも1つが、前記第2のデータの32ビットのワードに関して実行される、請求項1に記載の方法。
  4. 前記第1の段階の次の、前記多段階の多重化操作の第2の段階の間に、
    第3のデータに対して、第3のデータ整列操作と第3のデータ複製操作のうちの少なくとも1つを実行するステップをさらに含み、
    前記第3のデータが、前記第1のデータと前記第2のデータのうちの1つから選択される、請求項1に記載の方法。
  5. 前記第3のデータが64ビットのダブルワードを含み、前記第3のデータ整列操作と前記第3のデータ複製操作のうちの前記少なくとも1つが、前記第3のデータの16ビットのハーフワードに関して実行される、請求項4に記載の方法。
  6. 前記第2の段階の次の、前記多段階の多重化操作の第3の段階の間に、
    データ整列操作と、データ複製操作と、符号拡張操作と、ゼロパディング操作とのうちの少なくとも1つを、前記第3のデータに対して実行して、最終的なデータを生成するステップをさらに含む、請求項4に記載の方法。
  7. 前記多段階の多重化操作の前記第3の段階の間に、
    前記最終的なデータを、レジスタファイルとメモリの少なくとも1つに保存するステップをさらに含む、請求項6に記載の方法。
  8. 前記メモリが、前記第1の複数のデータソースと、前記第2の複数のデータソースのうちの1つまたは複数を含む、請求項7に記載の方法。
  9. 前記最終的なデータが、ダブルワード、2つの複製されたワード、少なくとも2つの複製されたハーフワード、少なくとも1つの符号拡張のバイト、少なくとも1つのゼロパディングのバイト、少なくとも2つの複製されたバイト、および、少なくとも1つの再整列されたバイトのうちの、1つまたは複数を含む、請求項6に記載の方法。
  10. 前記第1の複数のデータソースの少なくとも1つのデータソースが、第1のメモリバンクであり、前記第2の複数のデータソースの少なくとも1つのデータソースが、第3のメモリバンクである、請求項1に記載の方法。
  11. 第1の複数のデータソースおよび第2の複数のデータソースを含むメモリと、
    データ整列操作とデータ複製操作のうちの少なくとも1つを選択的に実行するように構成される、ロード整列器であって、前記データ整列操作とデータ複製操作のうちの少なくとも1つが、前記第1の複数のデータソースから選択された第1のデータソースのうちの第1のデータと、前記第2の複数のデータソースから選択された第2のデータソースのうちの第2のデータとに対して実行され、前記データ整列操作とデータ複製操作のうちの少なくとも1つが、前記第1のデータを選択する第1の多重化操作を実行するのと同時におよび前記第2のデータを選択する第2の多重化操作を実行するのと同時に、実行される、ロード整列器とを含む、装置。
  12. 前記データ整列操作を実行は、データを左にシフトすることまたはデータを右にシフトすることを含む、請求項11に記載の装置。
  13. 前記第1の複数のデータソースの各々および前記第2の複数のデータソースの各々が、複数バイトのデータソースであり、前記ロード整列器がさらに、バイトごとに、前記データ整列操作と前記データ複製操作の前記少なくとも1つを実行するように構成される、請求項11に記載の装置。
  14. 前記第1の多重化操作の実行と同時におよび第2の多重化操作を実行と同時に、前記データ整列操作と前記データ複製操作の前記少なくとも1つを選択的に実行するステップが、前記第1のデータの各ビットおよび前記第2のデータの各ビットを、少なくとも1つの4入力のand-orマルチプレクサに入力するステップを含む、請求項11に記載の装置。
  15. 第1の複数のデータソースおよび第2の複数のデータソースを含むメモリと、
    前記第1の複数のデータソースから選択された第1のデータソースのうちの第1のデータと、前記第2の複数のデータソースから選択された第2のデータソースのうちの第2のデータとを、選択的に符号拡張するように構成される、符号拡張論理回路であって、前記符号拡張が、前記第1のデータを選択する第1の多重化操作を実行するのと同時におよび前記第2のデータを選択する第2の多重化操作を実行するのと同時に、実行される、符号拡張論理回路とを含む、装置。
  16. 前記第1の多重化操作および前記第2の多重化操作と並行して前記第1のデータおよび前記第2のデータを選択的にゼロパディングするように構成される、ゼロパディング論理回路をさらに含む、請求項15に記載の装置。
  17. 前記第1の複数のデータソースの各々および前記第2の複数のデータソースの各々が複数バイトのソースであり、前記符号拡張論理回路がさらに、バイトごとに前記第1のデータおよび前記第2のデータを符号拡張するように構成され、前記ゼロパディング論理回路がさらに、バイトごとに前記第1のデータおよび前記第2のデータの各々をゼロパディングするように構成される、請求項16に記載の装置。
  18. 前記第1の多重化操作の実行と並行して前記第1のデータを選択的に符号拡張するステップが、前記第1のデータの各ビットを、4入力のand-orマルチプレクサに入力するステップを含む、請求項15に記載の装置。
  19. 前記第1のデータが64ビットからなる、請求項15に記載の装置。
  20. 第1の複数のデータを保存するための手段および第2の複数のデータを保存するための手段と、
    データ整列操作とデータ複製操作のうちの少なくとも1つを選択的に実行するための、ロード整列器手段であって、前記データ整列操作とデータ複製操作のうちの少なくとも1つが、前記第1の複数のデータを保存するための手段から選択された第1のデータソースのうちの第1のデータと、前記第2の複数のデータを保存するための手段から選択された第2のデータソースのうちの第2のデータとに対して実行され、前記データ整列操作とデータ複製操作のうちの少なくとも1つが、前記第1のデータを選択する第1の多重化操作を実行するのと同時におよび前記第2のデータを選択する第2の多重化操作を実行するのと同時に、実行される、ロード整列器手段と、
    前記多重化操作と並行して前記第1のデータを選択的に符号拡張するための、拡張手段と、
    前記多重化操作と並行して前記第1のデータを選択的にゼロパディングするための、パディング手段とを含む、装置。
  21. 音楽プレーヤー、ビデオプレーヤー、娯楽ユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末(PDA)、およびコンピュータからなる群から選択されるデバイスをさらに含み、前記デバイスに、前記ロード整列器手段、前記拡張手段、および前記パディング手段が統合される、請求項20に記載の装置。
  22. 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のデータに関してハーフワードレベルで実行される、ステップとを含む、請求項22に記載のコンピュータ可読記録媒体。
  24. 前記1つまたは複数のマイクロプロセッサ命令を実行するステップが、さらに、前記マイクロプロセッサに、
    前記第2の段階の実行の次の、前記多段階の多重化操作の第3の段階を実行させ、前記第3の段階が、
    データ整列操作と、データ複製操作と、符号拡張操作と、ゼロパディング操作とのうちの少なくとも1つを、前記第3のデータに対してバイトレベルで実行して、最終的なデータを生成するステップと、
    前記最終的なデータを、レジスタファイルとメモリの少なくとも1つに保存するステップとをさらに含む、請求項23に記載のコンピュータ可読記録媒体。
  25. 前記メモリが、前記第1の複数のデータソースおよび前記第2の複数のデータソースを含む、請求項24に記載のコンピュータ可読記録媒体。
  26. 前記1つまたは複数のマイクロプロセッサ命令が、ロード命令、保存命令、またはこれらの任意の組み合わせを含む、請求項22に記載のコンピュータ可読記録媒体。
  27. 前記1つまたは複数のマイクロプロセッサ命令の少なくとも1つが、取り出されるべきデータのメモリアドレス、取り出されるべきデータのメモリのオフセット、取り出されるべきデータのサイズ、符号拡張のビット、ゼロパディングのビット、左シフトビット、右シフトビット、またはこれらの任意の組み合わせを含む、請求項26に記載のコンピュータ可読記録媒体。
JP2012549124A 2010-01-15 2011-01-14 データ選択とデータ整列またはデータ複製とを組み合わせることを含む多段階の多重化操作 Active JP5584781B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/688,091 2010-01-15
US12/688,091 US8356145B2 (en) 2010-01-15 2010-01-15 Multi-stage multiplexing operation including combined selection and data alignment or data replication
PCT/US2011/021342 WO2011088351A1 (en) 2010-01-15 2011-01-14 Multi-stage multiplexing operation including combined selection and data alignment or data replication

Publications (3)

Publication Number Publication Date
JP2013517576A JP2013517576A (ja) 2013-05-16
JP2013517576A5 true JP2013517576A5 (ja) 2014-07-17
JP5584781B2 JP5584781B2 (ja) 2014-09-03

Family

ID=43827766

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012549124A Active JP5584781B2 (ja) 2010-01-15 2011-01-14 データ選択とデータ整列またはデータ複製とを組み合わせることを含む多段階の多重化操作

Country Status (6)

Country Link
US (1) US8356145B2 (ja)
EP (1) EP2524315A1 (ja)
JP (1) JP5584781B2 (ja)
CN (1) CN102713875B (ja)
TW (1) TW201140318A (ja)
WO (1) WO2011088351A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8484433B2 (en) * 2010-11-19 2013-07-09 Netapp, Inc. Dynamic detection and reduction of unaligned I/O operations
US10423353B2 (en) 2016-11-11 2019-09-24 Micron Technology, Inc. Apparatuses and methods for memory alignment
US10372452B2 (en) * 2017-03-14 2019-08-06 Samsung Electronics Co., Ltd. Memory load to load fusing

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5394133A (en) * 1977-01-28 1978-08-17 Hitachi Ltd Data converter
US4583199A (en) 1982-07-02 1986-04-15 Honeywell Information Systems Inc. Apparatus for aligning and packing a first operand into a second operand of a different character size
JP3181001B2 (ja) 1993-06-01 2001-07-03 インターナショナル・ビジネス・マシーンズ・コーポレ−ション キャッシュ・メモリ・システム並びにキャッシュ・メモリ・アクセス方法及びシステム
US5627975A (en) 1994-08-02 1997-05-06 Motorola, Inc. Interbus buffer for use between a pseudo little endian bus and a true little endian bus
US5882620A (en) * 1995-06-07 1999-03-16 International Carbitech Industries, Inc. Pyrometallurgical process for forming tungsten carbide
US5627773A (en) 1995-06-30 1997-05-06 Digital Equipment Corporation Floating point unit data path alignment
US5761469A (en) 1995-08-15 1998-06-02 Sun Microsystems, Inc. Method and apparatus for optimizing signed and unsigned load processing in a pipelined processor
US5907865A (en) 1995-08-28 1999-05-25 Motorola, Inc. Method and data processing system for dynamically accessing both big-endian and little-endian storage schemes
US5822620A (en) 1997-08-11 1998-10-13 International Business Machines Corporation System for data alignment by using mask and alignment data just before use of request byte by functional unit
US7197625B1 (en) 1997-10-09 2007-03-27 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US6539467B1 (en) * 1999-11-15 2003-03-25 Texas Instruments Incorporated Microprocessor with non-aligned memory access
US6622242B1 (en) 2000-04-07 2003-09-16 Sun Microsystems, Inc. System and method for performing generalized operations in connection with bits units of a data word
US20030002474A1 (en) 2001-03-21 2003-01-02 Thomas Alexander Multi-stream merge network for data width conversion and multiplexing
US6877019B2 (en) * 2002-01-08 2005-04-05 3Dsp Corporation Barrel shifter
US7877581B2 (en) * 2002-12-12 2011-01-25 Pmc-Sierra Us, Inc. Networked processor for a pipeline architecture
CN100545804C (zh) * 2003-08-18 2009-09-30 上海海尔集成电路有限公司 一种基于cisc结构的微控制器及其指令集的实现方法
US20070088772A1 (en) * 2005-10-17 2007-04-19 Freescale Semiconductor, Inc. Fast rotator with embedded masking and method therefor
CN101256546A (zh) * 2007-03-01 2008-09-03 黄新亚 32位微处理器
US8285766B2 (en) * 2007-05-23 2012-10-09 The Trustees Of Princeton University Microprocessor shifter circuits utilizing butterfly and inverse butterfly routing circuits, and control circuits therefor
BRPI0906968A2 (pt) * 2008-01-30 2015-07-14 Google Inc Notificação de eventos de dispositivo móvel.
US8291002B2 (en) * 2009-06-01 2012-10-16 Arm Limited Barrel shifter

Similar Documents

Publication Publication Date Title
US9557994B2 (en) Data processing apparatus and method for performing N-way interleaving and de-interleaving operations where N is an odd plural number
TW201820125A (zh) 執行複數的熔合乘-加指令的系統與方法
JP2008535115A (ja) データアクセス及び置換ユニット
TW201113717A (en) Unpacking packed data in multiple lanes
JP2009545823A (ja) マイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステム
TW201346734A (zh) 改良的萃取指令背景之設備及方法
US20140047218A1 (en) Multi-stage register renaming using dependency removal
TWI481991B (zh) 改良型排列指令之裝置及方法
CN107145335B (zh) 用于大整数运算的向量指令的装置和方法
JP2008513903A (ja) シャッフル演算のためのマイクロプロセッサデバイス及び方法
KR20190028426A (ko) Simd 아키텍처에서 레인 셔플을 위한 셔플러 회로
US20170031682A1 (en) Element size increasing instruction
JP2018500651A (ja) マスクレジスタとベクトルレジスタとの間で可変に拡張するための方法および装置
TWI603261B (zh) 用以執行離心操作的指令及邏輯
CN111831334A (zh) 经改进的插入指令的装置和方法
JP6773378B2 (ja) 3d座標から3dのz曲線インデックスを計算するための機械レベル命令
JP2013517576A5 (ja)
TWI567640B (zh) 用於不引發算術旗標的三輸入運算元加法指令之方法及處理器
TWI644256B (zh) 用以執行向量飽和雙字/四字加法的指令及邏輯
JP5584781B2 (ja) データ選択とデータ整列またはデータ複製とを組み合わせることを含む多段階の多重化操作
JP7385009B2 (ja) 圧縮支援命令
US11036506B1 (en) Memory systems and methods for handling vector data
TWI628595B (zh) 用以執行反離心操作之處理設備和非暫態機器可讀取媒體
JP2000322235A (ja) 情報処理装置
CN111352658A (zh) 用于在从存储器加载时在进行中转置向量的系统和方法