JP2009535721A - 汎用アレイ処理 - Google Patents

汎用アレイ処理 Download PDF

Info

Publication number
JP2009535721A
JP2009535721A JP2009508002A JP2009508002A JP2009535721A JP 2009535721 A JP2009535721 A JP 2009535721A JP 2009508002 A JP2009508002 A JP 2009508002A JP 2009508002 A JP2009508002 A JP 2009508002A JP 2009535721 A JP2009535721 A JP 2009535721A
Authority
JP
Japan
Prior art keywords
multiplication
parallel processing
opcode
data
external
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.)
Pending
Application number
JP2009508002A
Other languages
English (en)
Inventor
シー、ガレット・ウェブスター
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2009535721A publication Critical patent/JP2009535721A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
    • G06F9/3897Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)

Abstract

処理方法および装置を含む汎用アレイ処理技術。プロセッサは、乗算器、マルチプレクサおよびALUなどの再使用可能な計算コンポーネントによって設計されている並列処理経路を含むことがある。該経路を介するデータの流れおよび実行される演算はオペコードに基づいてコントロール可能である。プロセッサは共有され、スケーラブルであり、かつ行列演算を実行するように構成されてもよい。とりわけ、このような演算は、MIMO−OFDM通信システムの物理セクションに有用である。

Description

(U.S.C35条119項に基づく優先権請求)
本特許出願は、この譲受人に譲渡され、かつ参照して本明細書に明示的に組み込まれている、2006年4月28日に出願された「汎用アレイプロセッサ(General Purpose Array Processor)」と題された仮特許出願第60/795,981号の優先権を請求するものである。
本開示は概してアレイ処理に、より具体的には汎用アレイ処理技術に関する。
通信システムならびに他の多様なシステムにおいて、データを処理するために多数の行列演算が実行されることがある。例えば、多様な完全行列関連アルゴリズムは、送信信号をコード化/復号化するために、および/または複数の通信チャネル(つまりマルチプレクサ/デマルチプレクサ)にデータを分割またはこれからデータを構築するために通信システムで使用されることがある。このようなアルゴリズムは、特定のシーケンスで多数の行列演算によって実現可能なフーリエ変換などの多様な行列関連アルゴリズムを実行することができる。
とりわけ通信システムは、演算の物理層において多数の行列演算を実行することがある。通信システムのこの物理層は、データのチャネル化およびコード化、ならびにデータリンク層などの高レベルデータ層とのインタフェース化に関する機能性を提供可能である。直交周波数分割多重化(OFDM)などの一部の通信技術における直交性の現代的使用ゆえに、データの送受信時に実行される行列関連演算数が多いこともある。さらに、多入力多出力(MIMO)技術の使用は、通信システムにおける行列演算への依存性を大きくする。
従来の通信システムは、特殊回路を介して種々のアルゴリズムを実行するようにコンポーネントレベルから設計されていることもある。例えば、通信システムの物理層は、各々が物理層のデータ経路に沿って具体的なアルゴリズムを実行する1セットの特殊コンポーネントによって設計可能である。各アルゴリズムは、フーリエ変換回路や他の算術および/または論理回路などの特殊回路にハードウェア化されることもある。
旧来の電気電子技術者協会(IEEE)基準のレガシーサポートおよび通信システムの複雑さの増大は、通信システムによる実行が予想されている潜在的な行列関連アルゴリズムの全てを実行するように、特殊回路の開発に関連するリソースを多く使用してきた。具体的には、従来の設計技術を使用して設計された用途において、予算、空間および電力使用リソースが大量消費されてきた。
発明の概要
汎用アレイ処理用技術がここに開示されている。本開示の一態様では、汎用アレイプロセッサはシステム設計リソースのひずみを緩和することができる点が認識される。このような汎用アレイプロセッサは、複数の行列関連アルゴリズムにおいて、および/または複数の高レベル処理要素によって使用可能な複数の行列関連演算を実行するように構成可能である。一部の実施形態では、該複数の行列関連演算は行列の成分に実行される算術演算を含むことがある。
汎用アレイプロセッサの一部の実施形態は通信システムの物理層で使用される。一部の実施形態では、該汎用アレイプロセッサは、乗算器、ALU、マルチプレクサおよびレジスタなどの基本ハードウェアコンポーネントを使用するオーナーリソース(owner resources)によって使用される複数の汎用演算を満たす機能性を提供可能である。一部の実施形態では、該オーナーリソースは、例えば、高速フーリエ変換、空間処理、最小平均二乗誤差判断、チャネル判断、重み算出および/または位相補正を実行可能である。一部の実施形態では、該汎用アレイプロセッサは、実数および/または複素数の行列乗算を伴う任意のアルゴリズムの一部を実行するように構成される。
本開示の一態様はアレイプロセッサ装置を含んでいる。一部の実施形態では、該アレイプロセッサ装置は、複数のマルチプレクサと、複数の乗算器と、複数の算術論理演算ユニット(ALU)と、少なくとも1つのオペコードコントロール要素とを備える。一部の実施形態では、該複数のマルチプレクサ、該複数の乗算器および該複数のALUは2つの並列処理経路を形成するように構築および配列されており、各並列処理経路は、該オペコードコントロール要素によって受信されたオペコードに従ってそれぞれ1セットの行列演算を実行するように構成されている。
一部の実施形態では、該オペコードは、アイドルオペコードと乗算オペコードのうちの少なくとも1つを含んでいる。一部の実施形態では、該乗算オペコードは、乗算、外部加算による乗算、外部減算による乗算、累算による乗算、加算結果による乗算、減算結果による乗算、加算結果および外部加算による乗算、加算結果および外部減算による乗算、減算結果および外部加算による乗算、減算結果および外部加算による乗算、加算結果および累算による乗算、および、減算結果および累算による乗算のうちの少なくとも1つの表示を含んでいる。
一部の実施形態では、該2つの並列処理経路は、該乗算、該外部加算による乗算、該外部減算による乗算、該累算による乗算、該加算結果による乗算、該減算結果による乗算、該加算結果および外部加算による乗算、該加算結果および外部減算による乗算、該減算結果および外部加算による乗算、該減算結果および外部加算による乗算、該加算結果および累算による乗算、および、該減算結果および累算による乗算の各々を実行するように構成されている。
一部の実施形態では、該2つの並列処理経路の第1の並列処理経路は第1のパイプライン並列処理経路を含んでおり、該2つの並列処理経路の第2の並列処理経路は第2のパイプライン並列処理経路を含んでいる。一部の実施形態では、該第1の並列処理経路の第1のパイプラインステージへの入力は、該第2の並列処理経路の第2のパイプラインステージの出力を含むことがある。一部の実施形態では、該オペコードコントロール要素は、該オペコードに基づいて、該第1のパイプラインステージへの該入力および該第2のパイプラインステージへの該入力を選択するように構成されている。一部の実施形態では、該第2の並列処理経路の第3のパイプラインステージへの入力が、該第1の並列処理経路の第4のパイプラインステージの出力を含むことがある。
一部の実施形態では、該第1のパイプラインステージは乗算ステージを含んでおり、該第2のパイプラインステージは算術論理ステージを含んでいる。一部の実施形態では、該第1のパイプラインステージは算術論理ステージを含んでおり、該第2のパイプラインステージは乗算ステージを含んでいる。一部の実施形態では、該第1のパイプラインステージは第1の算術論理ステージを含んでおり、該第2のパイプラインステージは第2の算術論理ステージを含んでいる。一部の実施形態では、該2つの並列処理経路の第1の並列処理経路は実数行列値を処理するための処理経路を含んでおり、該2つの並列処理経路の第2の並列処理経路は、虚数行列値を処理するための処理経路を含んでいる。
一部の実施形態では、該複数の乗算器は2つの乗算器を含んでいる。一部の実施形態では、該2つの並列処理経路の第1の並列処理経路は該2つの乗算器のうちの第1の乗算器を含んでおり、該2つの並列処理経路の第2の並列処理経路は該2つの乗算器のうちの第2の乗算器を含んでいる。一部の実施形態では、該複数のALUは2つのALUを含んでいる。一部の実施形態では、該2つの並列処理経路の第1の並列処理経路は該2つのALUのうちの第1のALUを含んでおり、該2つの並列処理経路の第2の並列処理経路は該2つのALUのうちの第2のALUを含んでいる。一部の実施形態では、該第1のALUの第1の入力は該複数の乗算器のうちの第1の乗算器の出力を含んでおり、該第1のALUの第2の入力は該複数の乗算器のうちの第2の乗算器の出力を含んでおり、該第2のALUの入力は該第2の乗算器の出力を含んでいる。
一部の実施形態では、該オペコードコントローラーは、該オペコードに基づいて該複数のALUのうちの少なくとも1つによって実行された算術演算を選択するように構成されている。一部の実施形態では、該オペコードコントローラーは、該オペコードに基づいて該複数のマルチプレクサを介するデータの流れをコントロールするように構成されている。一部の実施形態では、該データの流れのコントロールは、該2つの並列処理経路間のデータ依存性および外部データの入力をコントロールすることを含んでいる。一部の実施形態では、MIMO OFDM受信装置は少なくとも1つのアレイプロセッサ装置を備えている。一部の実施形態では、該MIMO OFDM受信装置は複数のアレイプロセッサ装置を備えている。一部の実施形態では、MIMO OFDM送信装置は少なくとも1つのアレイプロセッサ装置を備えている。一部の実施形態では、該MIMO OFDM送信装置は複数のアレイプロセッサ装置を備えている。
本開示の一態様はアレイプロセッサ装置を含んでいる。一部の実施形態では、該アレイプロセッサ装置は、オペコードに基づいて2つの並列処理経路を介するデータの経路をコントロールする手段と、該2つの並列処理経路の各々において2つの並列行列演算をデータに実行する手段と、該オペコードに基づいて該2つの並列行列演算を選択する手段とを含んでいる。
一部の実施形態では、該オペコードは、アイドルオペコードおよび乗算オペコードのうちの少なくとも1つを含んでいる。一部の実施形態では、該乗算オペコードは、乗算、外部加算による乗算、外部減算による乗算、累算による乗算、加算結果による乗算、減算結果による乗算、加算結果および外部加算による乗算、加算結果および外部減算による乗算、減算結果および外部加算による乗算、減算結果および外部加算による乗算、加算結果および累算による乗算、および、減算結果および累算による乗算のうちの少なくとも1つの表示を含んでいる。
一部の実施形態では、2つの並列行列演算を実行する該手段は、該乗算、該外部加算による乗算、該外部減算による乗算、該累算による乗算、該加算結果による乗算、該減算結果による乗算、該加算結果および外部加算による乗算、該加算結果および外部減算による乗算、該減算結果および外部加算による乗算、該減算結果および外部加算による乗算、該加算結果および累算による乗算、および、該減算結果および累算による乗算の各々を実行する手段を含んでいる。
一部の実施形態では、該データ経路をコントロールする該手段は、該2つの並列処理経路間のデータの依存性をコントロールする手段と、該2つの並列処理経路への外部データの入力をコントロールする手段とを備えている。一部の実施形態では、2つの並列行列演算を実行する該手段は、実数行列値を処理する手段と、該実数行列値と平行して虚数行列値を処理する手段とを備えている。一部の実施形態では、該オペコードに基づいて該データ経路をコントロールする該手段は、複数のマルチプレクサの出力を選択する手段を備えている。一部の実施形態では、該オペコードに基づいて該2つの並列行列演算を選択する該手段は、少なくとも1つのALUによって実行された算術演算を選択する手段を備えている。
本開示の一態様は、行列演算を実行する方法を含んでいる。一部の実施形態では、該方法は、オペコードに基づいて2つの並列処理経路を介するデータの流れをコントロールすることと、該オペコードに基づいて該2つの並列処理経路の第1の並列処理経路で第1の行列演算を実行することと、該オペコードに基づいて該2つの並列処理経路の第2の並列処理経路で第2の行列演算を実行することとを備えている。
一部の実施形態では、該オペコードは、アイドルオペコードと乗算オペコードのうちの少なくとも1つを含んでいる。一部の実施形態では、該乗算オペコードは、乗算、外部加算による乗算、外部減算による乗算、累算による乗算、加算結果による乗算、減算結果による乗算、加算結果および外部加算による乗算、加算結果および外部減算による乗算、減算結果および外部加算による乗算、減算結果および外部加算による乗算、加算結果および累算による乗算、および、減算結果および累算による乗算のうちの少なくとも1つの表示を含んでいる。
一部の実施形態では、該2つの並列処理経路を介する該データの流れをコントロールすることは、該2つの並列処理経路の第1の並列処理経路の第1のパイプラインステージの出力を、該2つの並列処理経路の第2の並列処理経路の第2のパイプラインステージの入力に方向付けることを含んでいる。一部の実施形態では、該2つの並列処理経路を介する該データの流れをコントロールすることは、該オペコードに基づいて該第1の並列処理経路の該第1のパイプラインステージおよび該第2の並列処理経路の該第2のパイプラインステージへの入力を選択することを含んでいる。
一部の実施形態では、該第1のパイプラインステージは乗算ステージを含んでおり、該第2のパイプラインステージは算術論理ステージを含んでいる。一部の実施形態では、該第1のパイプラインステージは算術論理ステージを含んでおり、該第2のパイプラインステージは乗算ステージを含んでいる。一部の実施形態では、該第1のパイプラインステージは第1の算術論理ステージを含んでおり、該第2のパイプラインステージは第2の算術論理ステージを含んでいる。一部の実施形態では、該2つの並列処理経路を介する該データの流れをコントロールすることは、該第2の並列処理経路の第3のパイプラインステージの出力を、該第1の並列処理経路の第4のパイプラインステージの入力に方向付けることを含んでいる。
一部の実施形態では、該オペコードに基づいて該2つの並列処理経路の該第1の並列処理経路で該第1の行列演算を実行することは、実数行列値を処理することを備えており、該オペコードに基づいて該2つの並列処理経路の該第2の並列処理経路で該第2の行列演算を実行することは、虚数行列値を処理することを備えている。一部の実施形態では、該オペコードに基づいて2つの並列処理経路を介する該データの流れをコントロールすることは、該オペコードに基づいて複数のマルチプレクサをコントロールすることを含んでいる。
一部の実施形態では、該2つの並列処理経路を介する該データの流れをコントロールすることは、該2つの並列処理経路間のデータ依存性をコントロールすることと、外部データの入力をコントロールすることとを含んでいる。一部の実施形態では、該2つの並列処理経路を介する該データの流れをコントロールすることは、該2つの並列処理経路の第1の並列処理経路の第1の乗算器の出力を方向付けることと、該2つの並列処理経路の第2の並列処理経路の第2の乗算器の該出力を方向付けることとを含んでいる。一部の実施形態では、該第1の乗算器の該出力を方向付けることは、該第1の乗算器の該出力を該第1の並列処理経路の第1のALUの第1の入力に方向付けることを備えており、該第2の乗算器の該出力を向けることは、該第2の乗算器の該出力を該第1のALUの第2の入力および該第2の並列処理経路の第2のALUの入力に方向付けることを備えている。
一部の実施形態では、該オペコードに基づいて該2つの並列処理経路の該第1の並列処理経路で該第1の行列演算を実行することは、該オペコードに基づいて第1のALUに対する第1の演算を選択することを含んでおり、該オペコードに基づいて該2つの並列処理経路の該第2の並列処理経路で該第2の行列演算を実行することは、該オペコードに基づいて第2のALUに対して第2の演算を選択することを含んでいる。
本開示の一態様は、命令を記憶している機械読み取り可能な媒体を含んでいる。一部の実施形態では、該命令は、オペコードに基づいて並列行列演算を実行するために2つの並列処理経路のそれぞれの乗算ステージにおけるデータ依存性を選択する第1の命令セットと、該オペコードに基づいて該2つの並列処理経路のそれぞれの算術論理ステージにおけるそれぞれの算術論理演算およびデータ依存性を選択する第2の命令セットとを備えている。
一部の実施形態では、該オペコードは、アイドルオペコードと乗算オペコードのうちの少なくとも1つを含んでいる。一部の実施形態では、該乗算オペコードは、乗算、外部加算による乗算、外部減算による乗算、累算による乗算、加算結果による乗算、減算結果による乗算、加算結果および外部加算による乗算、加算結果および外部減算による乗算、減算結果および外部加算による乗算、減算結果および外部加算による乗算、加算結果および累算による乗算、および、減算結果および累算による乗算のうちの少なくとも1つの表示を含んでいる。
添付の図面は等縮尺で図示されているわけではない。図面において、種々の図に示されている各同一またはほぼ同一の要素は同一の参照番号で表されている。明確にするために、全コンポーネントが各図面でラベル付けされていないこともある。
詳細な説明
本開示の実施形態は、この用途を、以下の説明に記されたり、図面に示されたりしているコンポーネントおよび動作の構築および配列の詳細に制限されない。本開示は他の実施形態も可能であり、また種々の方法で実践または実行可能である。また、ここで使用されている言い回しおよび用語は説明目的のもので、制限とみなされるべきではない。「含む」、「備える」または「有する」、「含有する」、「伴う」およびこれらの変形例の使用は、以下列挙されているアイテムおよびこの同等物ならびに追加アイテムを包含するものである。本明細書で使用されている用語「例示的」およびこの変形例は、「実施例、例または図示として作用すること」を意味している。「例示的」としてここに説明されている実施形態や設計は、必ずしも他の実施形態や設計よりも好ましいまたは好都合であると解釈されるものではない。
ここに説明されている汎用アレイ処理技術は、無線広域ネットワーク(WWAN)、無線メトロポリタンエリアネットワーク(WMAN)、例えばIEEE802.11a、802.11gおよび/または802.11nなどを実現する無線ローカルエリアネットワーク(WLAN)などの種々の通信システムに使用可能である。用語「ネットワーク」および「システム」はここでは互換的に使用可能である。ここに説明されている汎用アレイ処理技術はまた、周波数分割多重アクセス(FDMA)、符号分割多重アクセス(CDMA)、時分割多重アクセス(TDMA)、空間分割多重アクセス(SDMA)、直交FDMA(OFDMA)、シングルキャリアFDMA(SC−FDMA)、直交周波数分割多重化(OFDM)などの種々の多重アクセススキームと併用可能である。OFDMAネットワークは直交周波数分割多重化(OFDM)を利用する。SC−FDMAネットワークはシングルキャリア周波数分割多重化(SC−FDM)を利用する。OFDMおよびSC−FDMはシステム帯域幅を複数(K個)の直交サブキャリアに分割し、これらはトーンおよび/またはビンと称されることもある。各サブキャリアはデータによって変調可能である。一般的に、変調シンボルは、OFDMによる周波数ドメインおよびSC−FDMによる時間ドメインで送信されることもある。
図1は、無線通信ネットワーク105における2つのステーション101および103の実施形態のブロック図を示している。図1において、ステーション101はデータ送信機として作用しており、ステーション103はデータ受信機として作用している。一部の実施形態では、単一ステーションがデータの送信機および受信機の両方として作用することがある点が理解されるはずである。
ステーション101および103は各々、アクセスポイント、ベースステーション、ノード、端末、モバイルステーション、ユーザー機器、加入者ユニットおよび/またはある他のデバイスや他のネットワークエンティティの機能の一部であってもよく、かつ/またはこれらの一部または全部を含有してもよい。
図1に図示されている実施形態のステーション101は複数のアンテナを具備してもよい。図1に図示されている実施形態のステーション103もまた複数のアンテナを具備してもよい。受信ステーションおよび送信ステーションが各々複数の入力/出力(例えば、アンテナ)を有する通信ネットワークは、多入力多出力(MIMO)ネットワークと称されることもある。IEEE802.11n開発基準は、MIMOネットワークの一部の具現化において使用可能な通信プロトコルについて説明している。各送信アンテナおよび各受信アンテナは、物理アンテナまたはアンテナアレイであってもよい。ステーション101および/またはステーション103の他の実施形態は複数のアンテナではなく単一のアンテナを含む場合がある点が理解されるはずである。
送信ステーション101において、送信データプロセッサ107はデータソース109からデータを受信し、このデータを通信ネットワーク105を介して出力するように処理することができる。このデータはデータシンボルおよび/またはパイロットシンボルを含んでもよい。データシンボルおよびパイロットシンボルは、位相シフトキーイング(PSK)や直交振幅変調(QAM)などの変調スキームからの変調シンボルであってもよい。一部の具現化では、送信データプロセッサ107は、複数の出力アンテナを介して複数のストリームで送信するためにコード化データ信号を多重化可能である。
一部の実施形態では、データ信号は(例えば、複数の受信アンテナによって)受信ステーション103で受信可能である。受信ステーション103において、受信データプロセッサ111は、受信アンテナからデータ信号を受信して、このデータを、データ宛先113で使用するために処理することができる。
受信データプロセッサ111および/または送信データプロセッサ107によって実行される処理の一部は物理層処理を含むことがある。物理層処理は、送信用および/または受信後のデータのオリジナルビットを処理することを含んでもよい。物理層処理は通常、通信の周知のオープンシステム相互接続(OSI)モデルの最下層と関連した動作を含むことがある。無線通信システムにおいて、物理層処理は、潜在的に問題のある信頼性の複数のビットストリームから結合ビットストリームを判断すること、および/または1つのビットストリームを複数のビットストリームに分割することを含んでもよい。このような処理は、当分野で公知であるように、複数の行列演算を含むことがある。物理層処理が実行された後、情報(例えば、処理済みビットストリーム)が高次通信層(例えば、MACサブ層を含むことがあるデータリンク層)に提供されたり、かつ/または遠隔位置に送信されたりすることがある。一部の具現化において、受信データプロセッサ111および送信データプロセッサ107の一方または両方によって実行された処理は、高レベル処理を含むことがある。他の用途において、このような高次層処理は、例えばデータソース109および/またはデータ宛先113によって実行可能である。
図2は、物理層処理を実行するために、送信データプロセッサ107または受信データプロセッサ111のいずれかで使用可能なデータプロセッサの例示的物理セクション201を図示している。図示されているように、物理セクション201は、データリンク層処理のために、物理セクション201で処理されたデータがデータリンクセクション205に出力されるようにし、かつ/または送信前の物理セクション201による物理層処理のためにデータリンク層205からデータが受信されるようにする物理/データリンクインタフェース203を含んでもよい。
物理セクション201は、情報が遠隔通信システムに対してまたはこれから受信および/または送信可能な入力および/または出力デバイス213に結合されてもよい。一部の実施形態では、入力および/または出力デバイス213は、受信および/または送信ステーション101、103のアンテナを含んでもよい。
物理セクション201は、複数の汎用アレイプロセッサ207およびオーナーリソース209を含んでもよい。複数の汎用アレイプロセッサ207およびオーナーリソース209は通信ネットワーク211(例えば、システムバス)によって結合されてもよい。複数の汎用アレイプロセッサ207およびオーナーリソース209は物理層処理に関する動作を実行してもよい。本開示の一部の実施形態では、オーナーリソース209は、1つ以上の行列関連演算を含むことがある1つ以上の物理層プロセスを実行するように構成されているコントロール要素を含んでもよい。一部の実施形態では、オーナーリソース209は、汎用アレイプロセッサ207を使用して物理層処理アルゴリズムを実行し、これらのアルゴリズムの行列関連演算の少なくとも一部を実行することができる。一部の具現化では、オーナーリソース209は行列データおよびオペコードを汎用アレイプロセッサ207に通信してもよい。汎用アレイプロセッサ207は、オペコードによって示された演算を行列データに実行して、結果をオーナーリソース209に送信してもよい。
例えば、高速フーリエ変換のオーナーリソースは、データと、汎用アレイプロセッサ207のうちの1つが高速フーリエ性能に関する1つ以上の行列演算を実行することをリクエストするオペコードとを送信可能である。この汎用アレイプロセッサ207のうちの1つは1つ以上の行列演算を実行して、この結果を高速フーリエ変換のオーナーリソースに提供することができ、これは、残りのステップを実行し、この結果を使用して高速フーリエ変換を完了させることができる。
一部の実施形態では、汎用アレイプロセッサ207のうちの1つは、乗算、加算および減算などの算術演算を実行するように構成されてもよい。このような演算は、例えば、汎用アレイプロセッサの各クロックサイクルで行列の個別部分に実行されてもよい。算術演算の結合された複数のサイクルシリーズは汎用アレイプロセッサに出力され、受信され、行列演算の結果を生成するように処理されてもよい。例えば、行列A:
Figure 2009535721
および行列B:
Figure 2009535721
の行列乗算は、行列乗算に関する一連のスカラー演算によって判断可能である。このような一連の演算は、得られる行列C:
Figure 2009535721
を判断可能であり、このうちの4つの値は、4つの個別スカラー算出によって判断可能である。一部の実施形態では、汎用アレイプロセッサは、行列演算から得られる行列の各値についてスカラー算出の各々を実行するために使用可能である。例えば、a11、a12、a21、a22、b11、b12、b21およびb22の値は、行列Cの値の各々に対応する組み合わせで汎用アレイプロセッサに入力されてもよい。後述されるように乗算および加算を示すオペコードは、値の組み合わせの各々によって入力されることもある。これら4つの算出の各々の出力はオーナーリソースによって受信されて、得られる行列Cとして処理されることが可能である。
一部の実施形態では、汎用アレイプロセッサ207のうちの1つ以上は、オーナーリソースのうちの1つ以上によって共有されることがある。一部の例示的具現化において、オーナーリソースからの共有入力数は3から6個に及ぶことがある。オーナーリソースごとに専用の特殊アレイ処理回路を使用するのではなく、このような汎用アレイプロセッサは、複数のオーナーリソースによって使用される行列演算を実行可能な標準機能を提供してもよい。
一部の実施形態では、オーナーリソースごとに特殊回路ではなく1つ以上の汎用アレイプロセッサ207を使用して行列演算を実行することは、システム設計のハードウェアコスト全体を削減可能である。さらに、一部の実施形態では、汎用アレイプロセッサ207は時間共有スキーム(例えば、時分割多重アクセス(TDMA)スケジュール)に従ってアクセス可能である。このような時間共有は、一部の通信システムで経験されうるクロック速度およびデータサンプリング速度の差(例えば、200MHz対20MHz)を利用することができる。極めて大きな差のあるシステムにおいて、複数のアルゴリズムが、処理速度にそれ程悪影響を与えずに、特殊専用ハードウェアによって実行されるのではなく汎用アレイプロセッサ207間で時間多重化されてもよい。MIMO−OFDM処理タイムラインに基づいて、種々のオーナーリソースは、単純なTDMAアービターによって1つ以上の汎用アレイプロセッサのコントロールが付与されることもある。このようなTDMAアービターは当分野で周知である。
一部の実施形態では、汎用アレイプロセッサ207は、システムの設計要件によってスケーリングするように配列および構成されてもよい。例えば、2×2MIMO設計がN個の汎用アレイプロセッサを含む場合、4×4MIMO設計は、2*N個の汎用アレイプロセッサによる略類似のハードウェアアーキテクチャを使用することがある。多数の汎用アレイプロセッサは、処理スループットの略線形増大をもたらすことがある。
図3は、例えば、図2に図示されている汎用アレイプロセッサ207の1つとして使用可能な例示的汎用アレイプロセッサ301のブロック図を示している。一部の実施形態では、汎用アレイプロセッサ301は、オーナーリソースから受信されたオペコードに基づいてオーナーリソースから受信された行列関連データに複数の可能な算術演算のうちの1つを実行するように構成されてもよい。
一部の実施形態では、この複数の算術演算は、行列演算を実行する際にMIMO−OFDMモデムにとって有用な算術演算を含むことがある。一部の具現化では、複数の算術演算は、高速フーリエ変換、空間処理、最小平均二乗誤差判断、チャネル判断、重み算出および/または位相補正などの複数のディジタル信号処理関連アルゴリズムを実現するための演算を含んでもよい。一具現化では、算術演算は、乗算、加算、減算および累算を含んでもよい。
一部の実施形態では、汎用アレイプロセッサ301は、所望ならば、クロックサイクル当たり少なくとも1つの乗算を完了させるように構成されてもよい。一部の実施形態では、汎用アレイプロセッサ301によって実行された単一乗算の待ち時間は複数のパイプラインステージを含むことがある。一部の具現化においては、パイプラインステージ数は約3つである。一部の具現化において、以下のクロックサイクルが加算、記憶、累算および/または他の方法で事前サイクルの結果と組み合わされてもよく、これによってサイクル待ち時間を増大させることができる。
一部の実施形態では、汎用アレイプロセッサ301は2つの並列処理経路303、305を含んでもよい。一部の具現化では、各処理経路303、305は概して、1セットの入力データに関する演算処理を実行する。一部の具現化において、この2つの並列処理経路は、詳細に後述されるように、オペコードに従って相互のデータ依存性および/または送受信を見込んでいる場合がある。
一部の実施形態では、2つの並列処理経路は、多様な行列演算に使用可能であるように配列されている複数の計算要素を含むことがある。個別演算に対する特殊要素を設計するのではなく多様な行列演算に使用可能であるように計算要素を配列することによって、この計算要素は、種々の演算を実行するように再使用可能であり、これによってコストおよび空間を節約することができる。
2つの処理経路303、305の使用によって、汎用アレイプロセッサ301は実数および複素数のデータの並列処理を実行することができる。一部の具現化では、第1の処理経路は、直交振幅変調通信信号のI成分に関するデータに行列演算を実行することができ、第2の処理経路は、直交振幅変調通信信号のQ成分に関するデータに行列演算を実行することができる。他の実施形態では、汎用アレイプロセッサは単一のIまたはQ成分を処理することができる。一部の具現化では、1対の汎用アレイプロセッサはそしてIおよびQの処理を平行して実行可能であり、あるいは単一の汎用アレイプロセッサはIおよびQの処理を順次実行することができる。
一部の実施形態では、各並列処理経路303、305は、複数のマルチプレクサと、複数のレジスタと、1つの乗算器と1つの算術論理演算ユニットとを含んでもよい。コンポーネントは、図3に示されているように、2つの並列処理経路303、305を形成するために通信ネットワークによって結合可能である。
処理経路303のマルチプレクサ307および309と、処理経路305のマルチプレクサ311および313は、(例えば、通信ネットワーク211から受信された)複数の共有オーナーリソースの中からそれぞれの処理経路への入力を選択することができる。対応するオペコードがオペコードマルチプレクサ315によって選択可能である。一部の実施形態では、対応する追加入力が、より詳細に後述されるように、汎用アレイプロセッサ301の後半のパイプラインステージにおいてオペコードマルチプレクサ315によって選択されたオペコードによって示される演算で使用するために、マルチプレクサ317、319および321で選択可能である。一部の実施形態では、マルチプレクサ307、309、311、313、315、317、319および321への入力は、汎用アレイプロセッサ310を共有する複数のオーナーリソースのうちの1つから単一通信パケットとして受信されてもよい。
一部の実施形態では、マルチプレクサ307、309、311および313への入力は、オーナーリソースの登録出力から受信されてもよい。一部の具現化では、オーナーリソースの物理的配置は予測不可能な相互接続遅延を発生させることもあるため、マルチプレクサ307、309、311、313および315の出力は選択後に登録されることもある。一部の実施形態では、マルチプレクサ307、309、311、313および315の選択出力は、汎用アレイプロセッサ301の後続パイプラインステージで使用するために、それぞれレジスタ323、325、327、329および331に入力されてもよい。
クロックサイクルごとに、新たな入力がレジスタ323、325、327、329および331に提供されてもよく、また記憶された古い値は出力されてよい。一部の具現化において、各レジスタは、それぞれのマルチプレクサへの入力のビット幅に対応する多数のビットを記憶可能である。
一部の実施形態では、マルチプレクサ317、319および321の選択出力はそれぞれレジスタ333、335および337に入力されてもよい。一部の具現化では、レジスタ333、335および337の各々は複数のレジスタを含むこともあるため、レジスタ333、335および337は、複数のクロックサイクルに対応する複数の入力値を記憶することもある。一部の具現化において、レジスタ333、335および337の各々は入力の2つのクロックサイクルを記憶することもある。各クロックサイクルにおいて、各レジスタ333、335および337は、それぞれのマルチプレクサから新たな入力を受信可能である。各レジスタは、後述されるように、記憶されている入力値のうちの1つを新たな入力と置換して、汎用アレイプロセッサ301の他のコンポーネントによって使用するために、記憶されている当該入力を出力することがある。一部の具現化では、記憶されている最古の入力値は、(例えば、先入れ先出し(FIFO)スキームに従って)各クロックサイクルで置換されてもよい。
一部の実施形態では、レジスタ323の出力はマルチプレクサ339に提供されてもよい。各クロックサイクルで、マルチプレクサ339への入力はレジスタ323からの出力と、算術論理演算ユニット(ALU)359およびALU361の出力とを含むことがあり、これら両方についてより詳細に後述する。入力の選択は、より詳細に後述されるように、受信されたオペコードに基づいて第1のオペコードデコーダー341によってなされてもよい。
一部の実施形態では、レジスタ327のコンテンツはマルチプレクサ343に提供されてもよい。各クロックサイクルにおいて、マルチプレクサ343への入力は、より詳細に後述されるように、レジスタ327からの出力およびALU361からの出力を含むことがある。入力の選択は、マルチプレクサ339の入力の選択と略同様に、受信されたオペコードに基づいて第1のオペコードデコーダー341によってなされてもよい。
一部の具現化において、マルチプレクサ339および343はフィードバック経路を乗算器345および347に提供する。例えば、汎用アレイプロセッサ301によって実行された後続演算が事前の演算の結果を参照可能な場合、マルチプレクサはこの事前の演算(例えば、ALU359および361の一方または両方の出力)から結果を選択することがある。このような選択によってオーナーリソースは、演算速度を増大させるために後半の演算を実行する際に、バイパスされることが可能である。
一部の実施形態では、マルチプレクサ343の出力およびレジスタ325のコンテンツは乗算器345に提供されてもよく、またマルチプレクサ343の出力およびレジスタ329のコンテンツは乗算器347に提供されてもよい。乗算器345および347は、これらの受信されたそれぞれの入力に乗算を実行可能である。一部の具現化において、乗算器345および347はパイプライン乗算器を含むことがある。パイプライン乗算器は当分野では周知である。各クロックサイクルにおいて、乗算器345および347の各々はそれぞれの乗算結果を出力可能である。
乗算器345の出力はシフト要素349に提供されてもよい。この出力がシフト要素349に提供されるパイプラインステージにおいて、レジスタ335の対応するコンテンツはシフト要素333に提供されてもよい。この入力は、乗算器345の出力を生成するために使用されたマルチプレクサ307の出力がマルチプレクサ307で選択されたのと同じクロックサイクルでマルチプレクサ319の選択出力に対応することもある。一部の具現化において、後述されるように、乗算器345の出力のビットは大きさがシフトされてもよく、またシフト要素349は、レジスタ335から受信された値に従って乗算器345の結果のビットをシフトしてもよく、この結果のビット大きさは、ALU359によって受容されたビットの予想された大きさと一致する。一部の具現化において、例えば、シフト要素349は、レジスタ335から受信された値の大きさに等しい多数のビットをシフトすることがある。一部の具現化では、これらの値は0(つまりシフトなし)からLogN個のビットに及ぶことがあり、ここでNはシフト要素349によって受信されたビット数である。ビットシフトは当分野では周知である。シフト要素349は次いで、シフト結果をALU351に提供してもよい。
乗算器347の出力はシフト/多重化要素351およびマルチプレクサ353に提供されてもよい。シフト/多重化要素351は、シフト349と同様に、レジスタ335から受信された値に従って結果のビットをシフト可能である。シフト/多重化要素351はまたALU361から入力を受信可能であり、これもまた、レジスタ335から受信された値に従ってシフト可能である。一部の実施形態では、シフト/多重化要素351の出力は、受信されたオペコードに従って第2のオペコードデコーダー355によって選択されてもよい。シフト/多重化要素351の出力は次いでALU361に提供されてもよい。
乗算器347の出力に加えて、マルチプレクサ353はまた、ALU359の出力およびレジスタ333のコンテンツを含む入力を受信可能である。レジスタ333からの入力は、乗算器345の結果を生成するために使用される入力がマルチプレクサ309で選択されたのと同じクロックサイクルでマルチプレクサ317において選択された入力に対応してもよい。マルチプレクサ353の出力は、受信されたオペコードに従って第2のオペコードデコーダー355によって選択可能である。マルチプレクサ353の出力はALU359に提供されてもよい。
一部の実施形態では、マルチプレクサ357はALU361およびレジスタ337から入力を受信可能である。レジスタ337からの入力は、乗算器345の結果を生成するために使用された入力がマルチプレクサ308で選択されたのと同じクロックサイクルでマルチプレクサ321において選択された入力に対応してもよい。マルチプレクサ357の出力は、受信されたオペコードに従って第2のオペコードデコーダー355によって選択可能である。マルチプレクサ357の出力はALU361に提供されてもよい。
一部の実施形態では、ALU359はシフト要素349およびマルチプレクサ353の出力を受信可能である。一部の実施形態では、ALU361はシフト/多重化351およびマルチプレクサ要素357の出力を受信可能である。ALU359およびALU361は、これらのそれぞれの受信入力に対してそれぞれ所望の算術演算を実行してもよい。所望の算術演算は、受信されたオペコードに従って第2のオペコードデコーダー355によって選択されてもよい。一部の具現化では、これらの演算は、加算、ID加算(例えば、ゼロへの加算)および減算のうちの1つを含むことがある。ALUは当分野では周知である。ALU359およびALU361は所望の算術演算の結果をそれぞれのレジスタ363および365に出力可能である。
ALU359および361によって実行された算術演算は、汎用アレイプロセッサ301の各クロックサイクルの重要な特徴の1つである場合がある。一部の具現化において、乗算器345および347の出力は独立結果として取り扱われてもよく、あるいはALUによって組み合わされてもよい。さらに、一部の具現化では、乗算器345および347の出力は、例えば行列乗算の一部を実行する際に有用であるように、複数のクロックサイクルで平行して累算されてもよい。一部の具現化では、乗算器345および347の出力はまた、マルチプレクサ353および357を介する外部値によって演算されてもよい。
レジスタ363はALU359の出力を受容し、レジスタ363はこの出力を、以下のクロックサイクルのデータ依存性算出で使用するために、マルチプレクサ333および353とシフト/多重化要素351に提供してもよい。レジスタ363はまた、ALU359からの出力を、(例えば、通信ネットワーク211を介して)この出力をもたらす演算の性能をリクエストしたオーナーリソースに提供してもよい。
レジスタ365はALU361の出力を受容し、レジスタ365はALU361の出力を、以下のクロックサイクルのデータ依存性算出で使用するために、マルチプレクサ357、343および339に提供してもよい。レジスタ365はまた、この出力を、(例えば、通信ネットワーク211を介して)当該出力をもたらす演算の性能をリクエストしたオーナーリソースに提供してもよい。
上記のように、種々のマルチプレクサおよびALU演算の出力選択は、汎用アレイプロセッサ301によって受信されたオペコードによって判断されてもよい。オペコードは、いずれのマルチプレクサ入力を選択するか、およびいずれのALU演算を実行するかを第1および第2のオペコードデコーダー341および355に示すマルチビットシーケンスを含んでもよい。一部の具現化では、レジスタ367は、汎用アレイプロセッサ301のそれぞれのステージで使用するために、第1のオペコードデコーダーがオペコードを復号化した後にオペコード値を記憶してもよい。次のパイプラインステージについて、レジスタ367は、次のステージで使用するために、オペコードをオペコードデコーダー355に提供してもよい。このステージの後に、オペコードはレジスタ369に記憶されてもよい。レジスタ363および365によって結果がオーナーリソースに出力されると、対応するオペコードもまた、(例えば、オーナーリソースに)有効な演算が完了されたことを示すためにレジスタ369によって出力されてもよい。
一部の実施形態では、第1および第2のオペコードデコーダー341および355によって実行されたオペコードの復号化は、マルチプレクサおよびALUに対して所望の入力を生成する任意のオペコード復号方法に従って実行されてもよい。オペコード復号化は当分野では周知である。他の実施形態では、ALUおよび/またはマルチプレクサをコントロールするための任意の数のオペコードデコーダーや他の機構が使用されてもよい。
一具現化において、認識されたオペコードは2つの部分に分割されてもよく、一方は第1のオペコードデコーダー341によって復号化されるもので、もう一方は第2のオペコードデコーダー355によって復号化されるものである。以下の表は、第1のオペコードデコーダー部分の例示的定義を提供する。
Figure 2009535721
左欄は、2ビットの受信オペコードの値を示しており、右欄はマルチプレクサ339および343によって選択された出力を示している。例えば、受信オペコードが第1のオペコードデコーダー部分00を含む場合、マルチプレクサ339はマルチプレクサ307からの入力を出力として選択し、マルチプレクサ343はマルチプレクサ311からの入力を出力として選択する。
以下の表は第2のオペコードデコーダー部分の例示的定義を提供する。
Figure 2009535721
左欄は4ビットの受信オペコードの値を示しており、右欄はALU359、361のうちの1つ以上によって出力された1つ以上の結果を示している。例えば、受信オペコードが第2のオペコードデコーダー部分0000を含む場合、ALUはデフォルトアイドル値(例えば、すべてゼロ)を出力してもよい。一部の具現化では、アイドルオペコードはストール機構として使用されてもよいため、アイドル周期中に、処理経路は依然として前の演算からアクティブのままである。
別の例として、受信オペコードが第2のオペコードデコーダー部分0001を含む場合、累算なしの乗算結果が各ALU359、361の出力であってもよい。この出力は、ALU359に対するマルチプレクサ307および309の出力の乗算と、ALU361に対するマルチプレクサ311および313の出力の乗算とに対応してもよい。このような出力は、ALU359および361の各々によって実行された演算がID加算(例えば、ゼロに対する入力値の加算)に対応するか否かを結論付けることが可能であり、シフト/多重化要素351の出力は乗算器347の出力として選択される。第2のオペコードデコーダー部分が0010を含む場合、出力は、ALU359に対するマルチプレクサ317の出力に加算されたマルチプレクサ307および309の出力の乗算と、ALU361に対するマルチプレクサ321の出力に加算されたマルチプレクサ311および313への出力の乗算とに対応できる。このような出力は、各ALUによって実行された演算がそれぞれのALU入力の加算に対応するか否かを結論付けることができ、マルチプレクサ353の出力としてレジスタ333のコンテンツが選択され、マルチプレクサ357の出力としてレジスタ337の出力が選択され、シフト/多重化要素351の出力として乗算器347の出力が選択される。
さらに別の例として、受信オペコードが第2のオペコードデコーダー部分0111を含む場合、外部加算による乗算および加算の結果はALU361の出力であってもよい。一部の具現化では、ALU359の出力はアイドル出力値(例えば、すべてゼロ)であってもよい。このような結果の生成は、上記の結果と比較して(つまり、第2のオペコードデコーダー部分0000、0001および0010について)1つの追加クロックサイクルを用いることがある。一部の具現化では、このような結果は、第1のクロックサイクル時にALU359によって加算演算を実行することによって生成可能である。第1のクロックサイクル時に、マルチプレクサ353の出力は、乗算器347の出力を含むように選択されてもよい。また、一部の具現化では、マルチプレクサ357の出力はレジスタ337の出力として選択されてもよく、ALU361によって実行された演算はID加算であってもよい。第2のクロックサイクル時には、ALU361は加算演算を実行してもよく、シフト/多重化要素351の出力はレジスタ363から入力されるものとして選択されてもよく、マルチプレクサ357の出力はレジスタ365からの入力(つまり、前のクロックサイクルからの、ALU361によるID加算の出力)として選択されてもよい。
異なる数のクロックサイクルを使用する演算の適用は、新たな入力が事前入力と衝突する際のデータの上書きによる複雑さを発生させることがある。一部の具現化では、ストール機構が、追加のクロックサイクルを必要とする演算が実行中に汎用アレイプロセッサによるデータの進行をストールするために含まれてもよい。このようなデータのストールは当分野では周知である。
他の具現化では、オーナーリソースは、演算によって必要とされるこの追加クロックサイクルに対応する多数のアイドル演算を挿入することによって、このようなストールをコントロール可能である。このような具現化は個別ストール機構を含まない場合もある。アイドル(例えば、NOP)命令のこのような挿入は当分野では周知である。アイドルサイクル時に、ALUはアクティブであってもよく、また事前オペコードコントロール演算の結果を出力可能である。
一部の実施形態では、汎用アレイプロセッサ301の要素間のデータ経路は所望のビット幅を含んでもよい。この所望のビット幅は、所望の性能および予算目的に従って選択されてもよい。ビット幅が大きくなると、コストが増大することもあり、算出精度もまた高くなる。以下の表は、オリジナルビット幅Nがマルチプレクサ307、309、311および313の各々に入力される実施形態に使用可能な例示的1セットのビット幅を示している。種々の具現化では、Nは任意の値を含んでもよい。2つの例示的具現化では、Nは16および18を含んでもよい。Nの減少は処理データの定量エラーを増加させ、汎用アレイプロセッサ301によって使用されるエリアを縮小することがある。
Figure 2009535721
左欄はデータ経路部分(例えば、識別要素からの出力)を示している。中央欄は当該部分のビット幅を示している。右欄はデータ経路部分のビットのフォーマットを示している。例えば、マルチプレクサ307、309、311、313、317および321からの出力は、それぞれのマルチプレクサへの入力として受信されたビットの全てを表すN個のビットを含むことがある。別の例として、乗算器345および347からの出力はN+3個のビットを含むことがある。ビットの乗算はビット数をN+3以上に増加させることがあるため、N+3個のビットは完全な乗算結果を表さないこともある。それぞれのフォーマット欄に示されているように、出力されたビットは、(サインビットを含んでいない)最上位ビットからN−4番目の最下位ビットを表すことができる。
汎用アレイプロセッサ301、オペコードおよびビット幅に関する上記説明は単なる例としてなされている点が認識されるはずである。本開示の他の実施形態では、要素の所望の配列が、任意の1セットのオペコードに基づいて任意の所望の演算を実行するために任意の所望のビット幅を使用して動作する汎用アレイ処理を生成するように組み合わされてもよい。
例示的汎用アレイプロセッサについて説明してきたが、汎用アレイ処理を実行する方法についても説明可能である。図4は、ブロック401から開始し、かつ本開示の一部の実施形態に従って汎用アレイ処理を実行するために使用可能な例示的プロセス400を図示している。
ブロック403に示されているように、プロセス400は、1つ以上のオーナーリソースから入力を受信することを含んでもよい。上記のように、この入力は、単一の汎用アレイプロセッサを共有する1つ以上のオーナーリソースからの通信で受信されてもよい。
ブロック405に示されているように、プロセス400は、処理する入力を選択することを含んでもよい。この入力の選択は、ブロック403で受信された入力のうちの1つを選択することを含んでもよい。この選択された入力は演算データ(例えば、算術演算が実行可能なビットシーケンス)およびオペコードを含んでもよい。この入力の選択は、時分割多重アクセススキームに基づいて入力を選択することを含んでもよい。このようなスキームは、汎用アレイプロセッサを共有する複数のオーナーリソースによってデータが処理される順序に基づいて入力を選択してもよい。一部の実施形態では、各オーナーリソースには十分な時間が割り当てられることもあるため、データはそれぞれのオーバーリソースによって、またはこれに対してこの時間に処理されてもよく、またオーナーリソースあるいは別の処理または送信要素のうちの次の1つによって使用されてもよい。
ブロック407に示されているように、プロセス400は、入力の少なくとも一部を2つの並列処理経路に提供することを含んでもよい。処理経路の各々は、上記のように、オペコードに従って1つ以上の所望の演算を演算データに実行するように構成および配列された複数の計算コンポーネントを含んでもよい。
ブロック409に示されているように、プロセス400は、オペコードに基づいて2つの処理経路を介する入力の流れをコントロールすることを含んでもよい。この入力の流れはオペコード自体、ならびに演算データおよびこの演算データに演算を実行することの結果を含んでもよい。このデータの流れは、特定の所望の行列関連演算がこのデータを使用して実行可能なようにコントロール可能である。
一部の具現化では、データの流れを方向付けることは、処理経路のうちの1つの出力がもう一方の処理経路の入力として使用されるようにデータの流れを方向付けることを含んでもよい。例えば、あるパイプライン処理経路ステージの入力は、異なる処理経路の事前パイプライン処理経路ステージの出力を含むことがある。一部の実施形態では、データの流れの方向付けは、オペコードに従って1つ以上の処理ステージで入力を選択することを含んでもよい。
ブロック411に示されているように、プロセス400は、オペコードに基づいて第1の並列処理経路の第1の行列関連演算を実行することを含んでもよい。行列関連演算は、オペコードに基づいて選択された算術演算を含んでもよい。
ブロック413に示されているように、プロセス400は、オペコードに基づいて第2の並列処理経路で第2の行列関連演算を実行することを含んでもよい。行列関連演算は、オペコードに基づいて選択された算術演算を含んでもよい。
一部の具現化では、第1および第2の行列演算の結果は、オーナーリソースに出力され、かつ/または後続の処理で使用されてもよい。プロセス400はブロック415で終了してもよい。
ここに説明されている技術はMIMO無線通信システム、ならびに、1つ以上のパイロットトーンが用いられる無線または他の任意の通信システムで実現可能である。ここに説明されている技術は、ハードウェア実現、ソフトウェア実現またはこれらの組み合わせを含む多様な方法で実現可能である。ハードウェア実現について、送信ステーションでの送信用および/または受信ステーションでの受信用にデータを処理するために使用される処理ユニットは、1つ以上の特定用途向け集積回路(ASIC)、ディジタル信号プロセッサ(DSP)、ディジタル信号処理デバイス(DSPD)、プログラマブル論理デバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、プロセッサ、コントローラー、マイクロコントローラー、マイクロプロセッサ、電子デバイス、ここに説明されている機能を実行するように設計されている他の電子ユニットまたはこれらの組み合わせで実現可能である。送信および受信ステーションが複数のプロセッサを含む実施形態では、各ステーションのプロセッサはハードウェアユニットを共有してもよい。
ソフトウェア実現について、データ送受信技術は、ここに説明されている機能を実行するソフトウェアモジュール(例えば、手順、関数など)によって実現可能である。ソフトウェアコードはメモリユニットに記憶され、かつプロセッサによって実行可能である。このメモリユニットはプロセッサ内またはプロセッサ外で実現可能である。
1つ以上の例示的実施形態では、説明されている機能は、ハードウェア、ソフトウェア、ファームウェアあるいはこれらの組み合わせで実現されてもよい。ソフトウェアで実現された場合、この機能は、1つ以上の命令やコードとしてコンピュータ読み取り可能な媒体に記憶されたり送信されたりしてもよい。コンピュータ読み取り可能な媒体は、コンピュータ記憶媒体と、ある場所から他へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセス可能な任意の使用可能な媒体であってもよい。制限ではなく例証として、このようなコンピュータ読み取り可能な媒体はRAM、ROM、EEPROM、CD−ROMまたは他の光ディスク記憶装置、磁気ディスク記憶装置または他の磁気記憶デバイス、あるいは命令やデータ構造の形態で所望のプログラムコードを搬送または記憶するために使用可能であり、かつコンピュータによってアクセス可能な任意の他の媒体を備えることができる。また、任意の接続はコンピュータ読み取り可能な媒体と適切に称される。例えば、ソフトウェアがウェブサイト、サーバー、あるいは、同軸ケーブル、光ファイバーケーブル、ツイストペア、ディジタル加入者回線(DSL)、または赤外線、無線およびマイクロ波などの無線技術を使用する他の遠隔ソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、あるいは赤外線、無線およびマイクロ波などの無線技術は媒体の定義に含まれている。ここで使用されているディスク(diskおよびdisc)は、コンパクトディスク(CD)、レーザーディスク(登録商標)、光ディスク、ディジタル多用途ディスク(DVD)、フロッピー(登録商標)ディスクおよびブルーレイディスクを含んでおり、この場合ディスク(disk)は普通、データを磁気的に再生するのに対して、ディスク(disc)はレーザーによって光学的にデータを再生するものである。上記の組み合わせもまたコンピュータ読み取り可能な媒体の範囲の含まれるべきである。
開示されている実施形態に関する上記説明は、当業者が本開示をなし、あるいはこれは使用することができるように提供されている。これらの実施形態の種々の修正は当業者には容易に明らかになり、ここに定義されている一般原理は、本開示の主旨または範囲から逸脱することなく他の実施形態に適用可能である。したがって、本開示はここに示されている実施形態に制限されないが、ここに開示されている原理および新規の特徴と矛盾しない広い範囲に従うべきである。
図1は、本開示の一部の実施形態に従った2つの通信ステーションのブロック図を示している。 図2は、本開示の一部の実施形態に従ったデータプロセッサの例示的物理セクションを示している。 図3は、本開示の一部の実施形態に従った例示的汎用アレイプロセッサのブロック図を示している。 図4は、本開示の一部の実施形態に従った汎用アレイ処理を実行するために使用可能な例示的プロセスを示している。

Claims (49)

  1. 複数のマルチプレクサと、
    複数の乗算器と、
    複数の算術論理演算ユニット(ALU)と、
    少なくとも1つのオペコードコントロール要素と、
    を備えており、
    前記複数のマルチプレクサ、前記複数の乗算器および前記複数のALUは2つの並列処理経路を形成するように構築および配列されており、各並列処理経路は、前記オペコードコントロール要素によって受信されたオペコードに従って、1セットの行列演算をそれぞれ実行するように構成されている、アレイプロセッサ装置。
  2. 前記オペコードは、アイドルオペコードと乗算オペコードのうちの少なくとも1つを含む、請求項1に記載の装置。
  3. 前記乗算オペコードは、乗算、外部加算による乗算、外部減算による乗算、累算による乗算、加算結果による乗算、減算結果による乗算、加算結果および外部加算による乗算、加算結果および外部減算による乗算、減算結果および外部加算による乗算、減算結果および外部加算による乗算、加算結果および累算による乗算、および、減算結果および累算による乗算のうちの少なくとも1つの表示を含む、請求項2に記載の装置。
  4. 前記2つの並列処理経路は、前記乗算、前記外部加算による乗算、前記外部減算による乗算、前記累算による乗算、前記加算結果による乗算、前記減算結果による乗算、前記加算結果および外部加算による乗算、前記加算結果および外部減算による乗算、前記減算結果および外部加算による乗算、前記減算結果および外部加算による乗算、前記加算結果および累算による乗算、および、前記減算結果および累算による乗算の各々を実行するように構成されている、請求項3に記載の装置。
  5. 前記2つの並列処理経路の第1の並列処理経路が第1のパイプライン並列処理経路を含み、前記2つの並列処理経路の第2の並列処理経路が第2のパイプライン並列処理経路を含む、請求項1に記載の装置。
  6. 前記第1の並列処理経路の第1のパイプラインステージへの入力が前記第2の並列処理経路の第2のパイプラインステージの出力を含む、請求項5に記載の装置。
  7. 前記オペコードコントロール要素は、前記オペコードに基づいて前記第1のパイプラインステージへの前記入力および前記第2のパイプラインステージへの前記入力を選択するように構成されている、請求項6に記載の装置。
  8. 前記第2の並列処理経路の第3のパイプラインステージへの入力が前記第1の並列処理経路の第4のパイプラインステージの出力を含む、請求項6に記載の装置。
  9. 前記第1のパイプラインステージは乗算ステージを含み、前記第2のパイプラインステージは算術論理ステージを含む、請求項6に記載の装置。
  10. 前記第1のパイプラインステージは算術論理ステージを含み、前記第2のパイプラインステージは乗算ステージを含む、請求項6に記載の装置。
  11. 前記第1のパイプラインステージは第1の算術論理ステージを含み、前記第2のパイプラインステージは第2の算術論理ステージを含む、請求項6に記載の装置。
  12. 前記2つの並列処理経路の第1の並列処理経路が実数行列値を処理する処理経路を含み、前記2つの並列処理経路の第2の並列処理経路が虚数行列値を処理する処理経路を含む、請求項1に記載のアレイプロセッサ装置。
  13. 前記複数の乗算器は2つの乗算器を含む、請求項1に記載のアレイプロセッサ装置。
  14. 前記2つの並列処理経路の第1の並列処理経路が前記2つの乗算器の第1の乗算器を含み、前記2つの並列処理経路の第2の並列処理経路が前記2つの乗算器の第2の乗算器を含む、請求項13に記載のアレイプロセッサ装置。
  15. 前記複数のALUは2つのALUを含む、請求項1に記載のアレイプロセッサ装置。
  16. 前記2つの並列処理経路の第1の並列処理経路が前記2つのALUの第1のALUを含み、前記2つ並列処理経路の第2の並列処理経路が前記2つのALUの第2のALUを含む、請求項15に記載のアレイプロセッサ装置。
  17. 前記第1のALUの第1の入力が前記複数の乗算器の第1の乗算器の出力を含み、前記第1のALUの第2の入力が前記複数の乗算器の第2の乗算器の出力を含み、前記第2のALUの入力が前記第2の乗算器の出力を含む、請求項16に記載のアレイプロセッサ装置。
  18. 前記オペコードコントローラーは、前記オペコードに基づいて前記複数のALUの少なくとも1つによって実行された算術演算を選択するように構成されている、請求項1に記載のアレイプロセッサ装置。
  19. 前記オペコードコントローラーは、前記オペコードに基づいて前記複数のマルチプレクサを介するデータの流れをコントロールするように構成されている、請求項1に記載のアレイプロセッサ装置。
  20. 前記データの流れをコントロールすることは、前記2つの並列処理経路間のデータ依存性および外部データの入力をコントロールすることを含む、請求項19に記載のアレイプロセッサ装置。
  21. 請求項1に記載の前記アレイプロセッサ装置の少なくとも1つを備える、MIMO OFDM受信装置。
  22. 請求項1に記載の複数のアレイプロセッサ装置を備える、請求項21に記載のMIMO OFDM受信装置。
  23. 請求項1に記載の前記アレイプロセッサ装置の少なくとも1つを備える、MIMO OFDM送信装置。
  24. 請求項1に記載の複数のアレイプロセッサ装置を備える、請求項23に記載のMIMO OFDM送信装置。
  25. オペコードに基づいて2つの並列処理経路を介するデータの経路をコントロールする手段と、
    前記2つの並列処理経路の各々において2つの並列行列演算をデータに実行する手段と、
    前記オペコードに基づいて前記2つの並列行列演算を選択する手段と、
    を備える、アレイプロセッサ装置。
  26. 前記オペコードは、アイドルオペコードと乗算オペコードのうちの少なくとも1つを含む、請求項25に記載の装置。
  27. 前記乗算オペコードは、乗算、外部加算による乗算、外部減算による乗算、累算による乗算、加算結果による乗算、減算結果による乗算、加算結果および外部加算による乗算、加算結果および外部減算による乗算、減算結果および外部加算による乗算、減算結果および外部加算による乗算、加算結果および累算による乗算、および、減算結果および累算による乗算のうちの少なくとも1つの表示を含む、請求項26に記載の装置。
  28. 2つの並列行列演算を実行する前記手段は、前記乗算、前記外部加算による乗算、前記外部減算による乗算、前記累算による乗算、前記加算結果による乗算、前記減算結果による乗算、前記加算結果および外部加算による乗算、前記加算結果および外部減算による乗算、前記減算結果および外部加算による乗算、前記減算結果および外部加算による乗算、前記加算結果および累算による乗算、および、前記減算結果および累算による乗算の各々を実行する手段を含む、請求項27に記載の装置。
  29. 前記データの経路をコントロールする前記手段は、
    前記2つの並列処理経路間のデータの依存性をコントロールする手段と、
    前記2つの並列処理経路への外部データの入力をコントロールする手段と、
    を備える、請求項25に記載の装置。
  30. 2つの並列行列演算を実行する前記手段は、
    実数行列値を処理する手段と、
    前記実数行列値と平行して虚数行列値を処理する手段と、
    を備える、請求項25に記載の装置。
  31. 前記オペコードに基づいて前記データの経路をコントロールする前記手段は、複数のマルチプレクサの出力を選択する手段を備える、請求項25に記載の装置。
  32. 前記オペコードに基づいて前記2つの並列行列演算を選択する前記手段は、少なくとも1つのALUによって実行される算術演算を選択する手段を備える、請求項25に記載の装置。
  33. 行列演算を実行する方法であって、
    オペコードに基づいて2つの並列処理経路を介するデータの流れをコントロールすることと、
    前記オペコードに基づいて前記2つの並列処理経路の第1の並列処理経路で第1の行列演算を実行することと、
    前記オペコードに基づいて前記2つの並列処理経路の第2の並列処理経路で第2の行列演算を実行することと、
    を備える方法。
  34. 前記オペコードは、アイドルオペコードと乗算オペコードのうちの少なくとも1つを含む、請求項33に記載の方法。
  35. 前記乗算オペコードは、乗算、外部加算による乗算、外部減算による乗算、累算による乗算、加算結果による乗算、減算結果による乗算、加算結果および外部加算による乗算、加算結果および外部減算による乗算、減算結果および外部加算による乗算、減算結果および外部加算による乗算、加算結果および累算による乗算、および、減算結果および累算による乗算のうちの少なくとも1つの表示を含む、請求項34に記載の方法。
  36. 前記2つの並列処理経路を介する前記データの流れをコントロールすることは、前記2つの並列処理経路の第1の並列処理経路の第1のパイプラインステージの出力を前記2つの並列処理経路の第2の並列処理経路の第2のパイプラインステージの入力に方向付けることを含む、請求項33に記載の方法。
  37. 前記2つの並列処理経路を介する前記データの流れをコントロールすることは、前記オペコードに基づいて前記第1の並列処理経路の前記第1のパイプラインステージおよび前記第2の並列処理経路の前記第2のパイプラインステージへの入力を選択することを含む、請求項36に記載の方法。
  38. 前記第1のパイプラインステージは乗算ステージを含み、前記第2のパイプラインステージは算術論理ステージを含む、請求項36に記載の方法。
  39. 前記第1のパイプラインステージは算術論理ステージを含み、前記第2のパイプラインステージは乗算ステージを含む、請求項36に記載の方法。
  40. 前記第1のパイプラインステージは第1の算術論理ステージを含み、前記第2のパイプラインステージは第2の算術論理ステージを含む、請求項36に記載の方法。
  41. 前記2つの並列処理経路を介する前記データの流れをコントロールすることは、前記第2の並列処理経路の第3のパイプラインステージの出力を前記第1の並列処理経路の第4のパイプラインステージの入力に方向付けることを含む、請求項36に記載の方法。
  42. 前記オペコードに基づいて前記2つの並列処理経路の前記第1の並列処理経路で前記第1の行列演算を実行することは、実数行列値を処理することを備えており、
    前記オペコードに基づいて前記2つの並列処理経路の前記第2の並列処理経路で前記第2の行列演算を実行することは、虚数行列値を処理することを備える、請求項33に記載の方法。
  43. 前記オペコードに基づいて2つの並列処理経路を介する前記データの流れをコントロールすることは、前記オペコードに基づいて複数のマルチプレクサをコントロールすることを含む、請求項33に記載の方法。
  44. 前記2つの並列処理経路を介する前記データの流れをコントロールすることは、前記2つの並列処理経路間のデータ依存性をコントロールすることと、外部データの入力をコントロールすることとを含む、請求項43に記載の方法。
  45. 前記2つの並列処理経路を介する前記データの流れをコントロールすることは、前記2つの並列処理経路の第1の並列処理経路の第1の乗算器の出力を方向付けることと、前記2つの並列処理経路の第2の並列処理経路の第2の乗算器の前記出力を方向付けることとを含む、請求項43に記載の方法。
  46. 前記第1の乗算器の前記出力を方向付けることは、前記第1の乗算器の前記出力を前記第1の並列処理経路の第1のALUの第1の入力に方向付けることを備え、前記第2の乗算器の前記出力を方向付けることは、前記第2の乗算器の前記出力を前記第1のALUの第2の入力および前記第2の並列処理経路の第2のALUの入力に方向付けることを備える、請求項45に記載の方法。
  47. 前記オペコードに基づいて前記2つの並列処理経路の前記第1の並列処理経路で前記第1の行列演算を実行することは、前記オペコードに基づいて第1のALUに対する第1の演算を選択することを含み、
    前記オペコードに基づいて前記2つの並列処理経路の前記第2の並列処理経路で前記第2の行列演算を実行することは、前記オペコードに基づいて第2のALUに対する第2の演算を選択することを含む、請求項33に記載の方法。
  48. 命令を記憶している機械読み取り可能な媒体であって、前記命令は、
    オペコードに基づいて並列行列演算を実行する2つの並列処理経路のそれぞれの乗算ステージでデータ依存性を選択する第1の命令セットと、
    前記オペコードに基づいて前記2つの並列処理経路のそれぞれの算術論理ステージでそれぞれの算術論理演算およびデータ依存性を選択する第2の命令セットと、
    を備える、機械読み取り可能な媒体。
  49. 前記オペコードは、アイドルオペコードと乗算オペコードのうちの少なくとも1つを含む、請求項48に記載の機械読み取り可能な媒体。
JP2009508002A 2006-04-28 2007-04-29 汎用アレイ処理 Pending JP2009535721A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US79598106P 2006-04-28 2006-04-28
PCT/US2007/067721 WO2007127971A1 (en) 2006-04-28 2007-04-29 General purpose array processing

Publications (1)

Publication Number Publication Date
JP2009535721A true JP2009535721A (ja) 2009-10-01

Family

ID=38421744

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009508002A Pending JP2009535721A (ja) 2006-04-28 2007-04-29 汎用アレイ処理

Country Status (6)

Country Link
US (1) US8250337B2 (ja)
EP (1) EP2013762B1 (ja)
JP (1) JP2009535721A (ja)
KR (1) KR101047768B1 (ja)
CN (1) CN101432723A (ja)
WO (1) WO2007127971A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9483442B2 (en) 2013-09-13 2016-11-01 Kabushiki Kaisha Toshiba Matrix operation apparatus

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8855040B1 (en) * 2008-04-21 2014-10-07 Google Inc. Cross-cell MIMO
US8755515B1 (en) 2008-09-29 2014-06-17 Wai Wu Parallel signal processing system and method
KR101107784B1 (ko) * 2010-11-16 2012-01-20 (주)대흥이엔지 파일형 방벽
US8804764B2 (en) 2010-12-21 2014-08-12 International Business Machines Corporation Data path for data extraction from streaming data
US20120198213A1 (en) * 2011-01-31 2012-08-02 International Business Machines Corporation Packet handler including plurality of parallel action machines
US9424043B1 (en) * 2012-12-27 2016-08-23 Altera Corporation Forward-flow selection
US10514911B2 (en) * 2014-11-26 2019-12-24 International Business Machines Corporation Structure for microprocessor including arithmetic logic units and an efficiency logic unit
CN110825439B (zh) * 2018-08-10 2021-03-09 北京百度网讯科技有限公司 信息处理方法和处理器
US10963256B2 (en) * 2018-09-28 2021-03-30 Intel Corporation Systems and methods for performing instructions to transform matrices into row-interleaved format

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0447454A (ja) * 1990-06-13 1992-02-17 Oki Electric Ind Co Ltd ディジタルデータの離散フーリエ又はコサイン変換装置
JPH05346935A (ja) * 1992-06-15 1993-12-27 Sony Corp 行列データ乗算装置および行列データ乗算方法
JPH09185602A (ja) * 1995-12-28 1997-07-15 Nec Corp ベクトルプロセッサ
JP2001092808A (ja) * 1999-09-24 2001-04-06 Sanyo Electric Co Ltd データ処理装置
JP2002269067A (ja) * 2001-12-26 2002-09-20 Matsushita Electric Ind Co Ltd 行列演算装置
JP2003016051A (ja) * 2001-06-29 2003-01-17 Nec Corp 複素ベクトル演算プロセッサ
JP2003346139A (ja) * 2002-05-23 2003-12-05 Canon Inc 画像処理装置、画像処理方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62140137A (ja) * 1985-12-16 1987-06-23 Toshiba Corp Aluを用いたデータ保持方法
US5117499A (en) * 1988-01-22 1992-05-26 Sharp Kabushiki Kaisha Data flow type processing apparatus having external and cache memories for fetching paired executing instruction when mishit occurs
US4996661A (en) * 1988-10-05 1991-02-26 United Technologies Corporation Single chip complex floating point numeric processor
US5633897A (en) * 1995-11-16 1997-05-27 Atmel Corporation Digital signal processor optimized for decoding a signal encoded in accordance with a Viterbi algorithm
US6029267A (en) * 1997-11-25 2000-02-22 Lucent Technologies Inc. Single-cycle, soft decision, compare-select operation using dual-add processor
US6421698B1 (en) * 1998-11-04 2002-07-16 Teleman Multimedia, Inc. Multipurpose processor for motion estimation, pixel processing, and general processing
US7072929B2 (en) * 2000-11-01 2006-07-04 Pts Corporation Methods and apparatus for efficient complex long multiplication and covariance matrix implementation
US20030055861A1 (en) * 2001-09-18 2003-03-20 Lai Gary N. Multipler unit in reconfigurable chip
US7567997B2 (en) * 2003-12-29 2009-07-28 Xilinx, Inc. Applications of cascading DSP slices
US7463628B2 (en) * 2004-03-30 2008-12-09 Extreme Networks, Inc. Packet data modification processor command instruction set

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0447454A (ja) * 1990-06-13 1992-02-17 Oki Electric Ind Co Ltd ディジタルデータの離散フーリエ又はコサイン変換装置
JPH05346935A (ja) * 1992-06-15 1993-12-27 Sony Corp 行列データ乗算装置および行列データ乗算方法
JPH09185602A (ja) * 1995-12-28 1997-07-15 Nec Corp ベクトルプロセッサ
JP2001092808A (ja) * 1999-09-24 2001-04-06 Sanyo Electric Co Ltd データ処理装置
JP2003016051A (ja) * 2001-06-29 2003-01-17 Nec Corp 複素ベクトル演算プロセッサ
JP2002269067A (ja) * 2001-12-26 2002-09-20 Matsushita Electric Ind Co Ltd 行列演算装置
JP2003346139A (ja) * 2002-05-23 2003-12-05 Canon Inc 画像処理装置、画像処理方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9483442B2 (en) 2013-09-13 2016-11-01 Kabushiki Kaisha Toshiba Matrix operation apparatus

Also Published As

Publication number Publication date
US8250337B2 (en) 2012-08-21
US20080109635A1 (en) 2008-05-08
EP2013762A1 (en) 2009-01-14
EP2013762B1 (en) 2018-09-19
WO2007127971A9 (en) 2008-10-16
CN101432723A (zh) 2009-05-13
KR20090005399A (ko) 2009-01-13
KR101047768B1 (ko) 2011-07-07
WO2007127971A1 (en) 2007-11-08

Similar Documents

Publication Publication Date Title
JP2009535721A (ja) 汎用アレイ処理
Alkim et al. ISA Extensions for Finite Field Arithmetic Accelerating Kyber and NewHope on RISC-V.
KR101821066B1 (ko) 보안 암호 해시 라운드 기능성을 제공하기 위한 명령어 및 로직
US8046401B2 (en) Canonical signed digit multiplier
Kaiser et al. Prototyping for MIMO systems-an overview
Park et al. Efficient FPGA-based implementations of MIMO-OFDM physical layer
Ahn et al. Implementation of an SDR platform using GPU and its application to a 2× 2 MIMO WiMAX system
Farahmand et al. Implementing and benchmarking seven round 2 lattice-based key encapsulation mechanisms using a software/hardware codesign approach
Shahabuddin et al. Programmable ASIPs for multimode MIMO transceiver
Wang et al. Asip-based design and implementation of rsa for embedded systems
Fritzmann et al. Post-quantum key exchange mechanism for safety critical systems
WO2022061788A1 (en) Versatile systolic array for maximum likelihood mimo detectors
Hänninen et al. Novel detector implementations for 3G LTE downlink and uplink
Li et al. CuSora: real-time software radio using multi-core graphics processing unit
Chen et al. Design space exploration of SDR vector processor for 5G micro base stations
Mehdaoui et al. The efficiency of the CORDIC Operator in the MIMO MC-CDMA receiver.
US20050102341A1 (en) Method, system, and computer program product for executing SIMD instruction for real/complex FFT conversion
Bellini et al. Near optimal blind deconvolution
Tang et al. Mapro: A tiny processor for reconfigurable baseband modulation mapping
Södergren Risc-v based application-specific instruction set processor for packet processing in mobile networks
Eberli et al. An IEEE 802.11 a baseband receiver implementation on an application specific processor
Wittig et al. General multicarrier modulation hardware accelerator for the internet of things
Tamagnone et al. An application specific instruction set processor based implementation for signal detection in multiple antenna systems
Ahmed et al. Parallel overloaded CDMA interconnect (OCI) bus architecture for on-chip communications
Eberli et al. Implementation of a 2× 2 MIMO-OFDM receiver on an application specific processor

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100615

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100915

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100924

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101115

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101122

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101215

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110510

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110909

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110914

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20111216

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120507

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120510