JP5584781B2 - データ選択とデータ整列またはデータ複製とを組み合わせることを含む多段階の多重化操作 - Google Patents

データ選択とデータ整列またはデータ複製とを組み合わせることを含む多段階の多重化操作 Download PDF

Info

Publication number
JP5584781B2
JP5584781B2 JP2012549124A JP2012549124A JP5584781B2 JP 5584781 B2 JP5584781 B2 JP 5584781B2 JP 2012549124 A JP2012549124 A JP 2012549124A JP 2012549124 A JP2012549124 A JP 2012549124A JP 5584781 B2 JP5584781 B2 JP 5584781B2
Authority
JP
Japan
Prior art keywords
data
stage
bit
multiplexing
alignment
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.)
Active
Application number
JP2012549124A
Other languages
English (en)
Other versions
JP2013517576A5 (ja
JP2013517576A (ja
Inventor
アジャイ・アナント・イングレ
ジェンサン・リン
ラフル・アール・トレイ
Original Assignee
クアルコム,インコーポレイテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by クアルコム,インコーポレイテッド 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

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1678Details of memory controller using bus width

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Description

本開示は全般に、多段階の多重化操作に関する。
技術の進歩により、コンピューティングデバイスはより小型でより強力になってきた。たとえば、現在では、小型で、軽量で、かつユーザーが簡単に持ち運べる、携帯式のワイヤレス電話、携帯情報端末(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論理回路

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 JP2013517576A5 (ja) 2014-07-17
JP5584781B2 true 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

Also Published As

Publication number Publication date
CN102713875A (zh) 2012-10-03
US20110179242A1 (en) 2011-07-21
EP2524315A1 (en) 2012-11-21
WO2011088351A1 (en) 2011-07-21
TW201140318A (en) 2011-11-16
JP2013517576A (ja) 2013-05-16
US8356145B2 (en) 2013-01-15
CN102713875B (zh) 2016-01-20

Similar Documents

Publication Publication Date Title
KR100325430B1 (ko) 상이한 워드 길이의 산술연산을 수행하는 데이터 처리장치 및 그 방법
JP6243000B2 (ja) マルチモードベクトル処理を提供するためのプログラム可能データ経路構成を有するベクトル処理エンジン、ならびに関連ベクトルプロセッサ、システム、および方法
TWI489382B (zh) 改良的萃取指令背景之設備及方法
EP2962187B1 (en) Vector register addressing and functions based on a scalar register data value
JP2016514330A (ja) マルチモード基数2のx乗のバタフライベクトル処理回路を提供するためのプログラマブルなデータパス構成を有するベクトル処理エンジン、ならびに関連ベクトルプロセッサ、システム、および方法
CN111183418B (zh) 可配置硬件加速器
CN107145335B (zh) 用于大整数运算的向量指令的装置和方法
JP2008513903A (ja) シャッフル演算のためのマイクロプロセッサデバイス及び方法
US5787025A (en) Method and system for performing arithmetic operations with single or double precision
JP2016530631A (ja) ベクトルの算術的削減
JPH10187661A (ja) コンピュータにおけるスカラ値をベクトルに記入する方法
JP2018500651A (ja) マスクレジスタとベクトルレジスタとの間で可変に拡張するための方法および装置
JP5584781B2 (ja) データ選択とデータ整列またはデータ複製とを組み合わせることを含む多段階の多重化操作
CN111752618A (zh) 浮点加法器的交错流水线
TW201342005A (zh) 改良型排列指令之裝置及方法
CN114930311A (zh) Fpga重复单元之间的级联通信
KR20140078764A (ko) 상단 n개 또는 하단 n개의 값들의 결정
EP2223204B1 (en) System and method of determining an address of an element within a table
JP2004501470A (ja) スキームレジスタを用いたメモリアドレスの生成
CN111158757B (zh) 并行存取装置和方法以及芯片
JP2013517576A5 (ja)
TW201730749A (zh) 用於不引發算術旗標的三輸入運算元加法指令之方法及處理器(二)
CN111352658A (zh) 用于在从存储器加载时在进行中转置向量的系统和方法
WO2004042602A1 (en) Apparatus to implement dual hash algorithm
JP5664198B2 (ja) 演算処理装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140519

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20140529

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140623

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140718

R150 Certificate of patent or registration of utility model

Ref document number: 5584781

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250